SlideShare uma empresa Scribd logo
1 de 59
One Size fits All




                             David Funaro
domenica 3 aprile 2011
-
                         One Size fits-All




                             David Funaro
domenica 3 aprile 2011
Why i’m Here

                         “There must be a better way to
                         design this model”
                         ?????????????????????????????????


domenica 3 aprile 2011
Evolution of the persistence

                                          TIME
                           ’60

                         Application




                SINGLE USER

               Everything in inside the
               application, every time
               we have to spend time
               to reinvent the wheel


domenica 3 aprile 2011
Evolution of the persistence

                                                  TIME
                           ’60                  ’70/80

                                                Application
                         Application
                                                  Library



                SINGLE USER                SINGLE USER

               Everything in inside the
                                          a good way to develop. All
               application, every time
                                          the business logic is in the
               we have to spend time
                                          Library
               to reinvent the wheel


domenica 3 aprile 2011
Evolution of the persistence

                                                  TIME
                           ’60                  ’70/80                          ’90

                                                Application
                         Application
                                                  Library
                                                                              RDBMS


                SINGLE USER                SINGLE USER                      MULTI-USER

               Everything in inside the
                                          a good way to develop. All
               application, every time
                                          the business logic is in the   Centralized storage of the
               we have to spend time
                                          Library                        model
               to reinvent the wheel


domenica 3 aprile 2011
Data-Driven
                         Application Design


                                   Data




                               Application
domenica 3 aprile 2011
Way to Develop

          • Define ER:
           • Indentify every Entities
           • Foeach entity find all the
                         attributes




domenica 3 aprile 2011
Active Record


                “Active record is an approach to accessing data in a
                 database. A database table or view is wrapped into
                                      a class.”
                                                             Wikipedia




domenica 3 aprile 2011
...but NOT always



domenica 3 aprile 2011
...but NOT always
                           is the right way


domenica 3 aprile 2011
1:Real Case: plugin
                    UserEvent                  Event
                   User_id    100              id : 12
                   event_id   12




domenica 3 aprile 2011
1:Real Case: plugin
                    UserEvent                  Event
                   User_id    100              id : 12
                   event_id   12

                                           Document
                                            id : 54




domenica 3 aprile 2011
1:Real Case: plugin
                    UserEvent                  Event
                   User_id    100              id : 12
                   event_id   12

                                           Document
                                            id : 54


                                               Group
                                               id : 78


domenica 3 aprile 2011
1:Real Case: plugin
                    UserEvent                  Event
                   User_id    100              id : 12
                   event_id   12

                                              Document
                           UserEntity          id : 54
                     User_id          100
                       Class       Document
                     entity_id         12      Group
                                               id : 78


domenica 3 aprile 2011
1:Real Case: plugin
                    UserEvent                  Event
                   User_id    100              id : 12
                   event_id   12

                                              Document
                           UserEntity          id : 54
                     User_id          100
                       Class       Document
                     entity_id         12      Group
                                               id : 78


domenica 3 aprile 2011
1:Real Case: plugin
                    UserEvent                  Event
                   User_id    100              id : 12
                   event_id   12

                                              Document
                           UserEntity          id : 54
                     User_id          100
                       Class       Document
                     entity_id         12      Group
                                               id : 78


domenica 3 aprile 2011
1:Real Case: plugin
                    UserEvent                  Event
                   User_id    100              id : 12
                   event_id   12

                                              Document
                           UserEntity          id : 54
                     User_id          100
                       Class       Document
                     entity_id         12      Group
                                               id : 78


domenica 3 aprile 2011
1:Real Case: plugin
                    UserEvent                             Event
                   User_id    100                         id : 12
                   event_id   12

                                                         Document
                           UserEntity                     id : 54
                     User_id          100
                       Class       Document
                     entity_id         12                 Group
                                                          id : 78
                                    Integrity : Broken
domenica 3 aprile 2011
1:Real Case: Redundance
                 UserEvent
                                  Event
                User_id    100
                                  id : 12
                event_id   12

           UserDocument
            User_id   100        Document
          document_id 12          id : 54

             UserGroup
                                  Group
            User_id   100
                                  id : 78
          document_id 12


domenica 3 aprile 2011
1:Real Case: menu
      Home:
      •page
      •event
      •group
      •document




domenica 3 aprile 2011
1:Real Case: menu
                                      Menu
                              name           home
      Home:                menu_item_id        2
      •page
      •event
      •group
      •document




domenica 3 aprile 2011
1:Real Case: menu
                                       Menu
                              name               home
      Home:                menu_item_id            2
      •page
      •event                          MenuItem
      •group                   name              home
      •document             menu_item_id            2
                                class            Group
                              entity_id            id




domenica 3 aprile 2011
1:Real Case: menu
                                       Menu
                              name               home
      Home:                menu_item_id            2
      •page
      •event                          MenuItem
      •group                   name              home
      •document             menu_item_id            2
                                class            Group
                              entity_id            id



         Event
         id : 12


domenica 3 aprile 2011
1:Real Case: menu
                                       Menu
                              name               home
      Home:                menu_item_id            2
      •page
      •event                          MenuItem
      •group                   name              home
      •document             menu_item_id            2
                                class            Group
                              entity_id            id



         Event                                           Document
         id : 12                                          id : 54


domenica 3 aprile 2011
1:Real Case: menu
                                       Menu
                              name               home
      Home:                menu_item_id            2
      •page
      •event                          MenuItem
      •group                   name              home
      •document             menu_item_id            2
                                class            Group
                              entity_id            id



         Event                        Group              Document
         id : 12                      id : 78             id : 54


domenica 3 aprile 2011
1:Real Case: menu
                                       Menu
                              name               home
      Home:                menu_item_id            2
      •page
      •event                          MenuItem
      •group                   name              home
      •document             menu_item_id            2
                                class            Group
                              entity_id            id



         Event                        Group              Document
         id : 12                      id : 78             id : 54


domenica 3 aprile 2011
1:Real Case: menu
                                       Menu
                              name               home
      Home:                menu_item_id            2
      •page
      •event                          MenuItem
      •group                   name              home
      •document             menu_item_id            2
                                class            Group
                              entity_id            id



         Event                        Group              Document
         id : 12                      id : 78             id : 54


domenica 3 aprile 2011
1:Real Case: menu
                                       Menu
                              name               home
      Home:                menu_item_id            2
      •page
      •event                          MenuItem
      •group                   name              home
      •document             menu_item_id            2
                                class            Group
                              entity_id            id



         Event                        Group              Document
         id : 12                      id : 78             id : 54


domenica 3 aprile 2011
Impedence
           mismatch

domenica 3 aprile 2011
Design Model




domenica 3 aprile 2011
Design Model           Application Needs




domenica 3 aprile 2011
Design Model           |
                         =   Application Needs




domenica 3 aprile 2011
Design Model                           |
                                         =           Application Needs

                 Comportamenti che i modelli non sono in grado di supportare




domenica 3 aprile 2011
Arrangement


  Design Model                           |
                                         =           Application Needs

                 Comportamenti che i modelli non sono in grado di supportare




domenica 3 aprile 2011
Technology focus




domenica 3 aprile 2011
Technology focus




domenica 3 aprile 2011
Bad RDBMS Cases



domenica 3 aprile 2011
Data Mapping
                 Struttura Dati           RDBMS

                                          id    10


                                      name     pippo


                                   parent_id    19




domenica 3 aprile 2011
The Alien


                            Different Behaviour
                            Different Model




domenica 3 aprile 2011
Unpredictable
                            Tomorrow

                    • User Story never complete
                    • User Story evolve


domenica 3 aprile 2011
Bad DBMS Cases
                • Dynamic Pages
                • Data mapping
                • The Alien
                • Producer/Consumer
                • Overnormalized
                • Unpredictable tomorrow
domenica 3 aprile 2011
Bad DBMS Cases
                • Dynamic Pages
                • Data mapping
                • The Alien
                • Producer/Consumer
                • Overnormalized
                                           =
                • Unpredictable tomorrow
domenica 3 aprile 2011
Bad DBMS Cases
                • Dynamic Pages
                • Data mapping
                • The Alien
                • Producer/Consumer
                • Overnormalized
                                           =
                • Unpredictable tomorrow
domenica 3 aprile 2011
NoSql




domenica 3 aprile 2011
NoSql

                           Not Only
                             Sql


domenica 3 aprile 2011
NoSql

                             Not Only
                               Sql
                         Just find the right way
                         to manage our data-set
domenica 3 aprile 2011
NoSql



domenica 3 aprile 2011
document-                   document-
          TYPE             oriented
                                        key-value
                                                       oriented
                                                                      graph


                          Reliability /             Performance /
       FOCUS             doc-oriented
                                        Performance
                                                    doc-oriented
                                                                  edge relations

                                                                   Schema-less
     SCHEMA              Schema-less   Schema-less   Schema-less   Schema-full
                                                                      Mixed

domenica 3 aprile 2011
Performance


                    • Redis : about 110000 SETs per second,
                         about 81000 GETs per second.




domenica 3 aprile 2011
TYPE
                             Key - Value


                         ‘nome’ -> ‘Davidino’


domenica 3 aprile 2011
TYPE              document-Oriented


         ‘person’ -> ‘{
         ‘name’ : ‘david’,
         ‘surname’ : ‘funaro’,
         phones: [
              34702323,
              233234124,
              134014
            ]
         }’
                                                     JSon
domenica 3 aprile 2011
TYPE
                         Graph DB




                                    JSon
domenica 3 aprile 2011
More ...


domenica 3 aprile 2011
So ?




domenica 3 aprile 2011
So ?
                    • Removing impedence mismatch is a
                         good reason to avoid the relational
                         model




domenica 3 aprile 2011
So ?
                    • Removing impedence mismatch is a
                         good reason to avoid the relational
                         model
                    • Performances aren’t the only reason to
                         choose NoSQL




domenica 3 aprile 2011
So ?
                    • Removing impedence mismatch is a
                         good reason to avoid the relational
                         model
                    • Performances aren’t the only reason to
                         choose NoSQL
                    • A RDBMS isn’t always the proper
                         choice

domenica 3 aprile 2011
Thanks

                    • David Funaro
                    • http://www.davidfunaro.com
                    • @ingdavidino
                    • ing.davidino@gmail.com

domenica 3 aprile 2011

Mais conteúdo relacionado

Último

Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyKhushali Kathiriya
 
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfRising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfOrbitshub
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Victor Rentea
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MIND CTI
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobeapidays
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...apidays
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesrafiqahmad00786416
 
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...Zilliz
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Jeffrey Haguewood
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingEdi Saputra
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native ApplicationsWSO2
 
AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024The Digital Insurer
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...Zilliz
 
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Orbitshub
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century educationjfdjdjcjdnsjd
 
[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdfSandro Moreira
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxRustici Software
 
Cyberprint. Dark Pink Apt Group [EN].pdf
Cyberprint. Dark Pink Apt Group [EN].pdfCyberprint. Dark Pink Apt Group [EN].pdf
Cyberprint. Dark Pink Apt Group [EN].pdfOverkill Security
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024The Digital Insurer
 

Último (20)

Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfRising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challenges
 
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
 
AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
 
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptx
 
Cyberprint. Dark Pink Apt Group [EN].pdf
Cyberprint. Dark Pink Apt Group [EN].pdfCyberprint. Dark Pink Apt Group [EN].pdf
Cyberprint. Dark Pink Apt Group [EN].pdf
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024
 

Destaque

2024 State of Marketing Report – by Hubspot
2024 State of Marketing Report – by Hubspot2024 State of Marketing Report – by Hubspot
2024 State of Marketing Report – by HubspotMarius Sescu
 
Everything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPTEverything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPTExpeed Software
 
Product Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage EngineeringsProduct Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage EngineeringsPixeldarts
 
How Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthHow Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthThinkNow
 
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfAI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfmarketingartwork
 
PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024Neil Kimberley
 
Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)contently
 
How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024Albert Qian
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsKurio // The Social Media Age(ncy)
 
Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Search Engine Journal
 
5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summarySpeakerHub
 
ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd Clark Boyd
 
Getting into the tech field. what next
Getting into the tech field. what next Getting into the tech field. what next
Getting into the tech field. what next Tessa Mero
 
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentGoogle's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentLily Ray
 
Time Management & Productivity - Best Practices
Time Management & Productivity -  Best PracticesTime Management & Productivity -  Best Practices
Time Management & Productivity - Best PracticesVit Horky
 
The six step guide to practical project management
The six step guide to practical project managementThe six step guide to practical project management
The six step guide to practical project managementMindGenius
 
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...RachelPearson36
 

Destaque (20)

2024 State of Marketing Report – by Hubspot
2024 State of Marketing Report – by Hubspot2024 State of Marketing Report – by Hubspot
2024 State of Marketing Report – by Hubspot
 
Everything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPTEverything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPT
 
Product Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage EngineeringsProduct Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage Engineerings
 
How Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthHow Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental Health
 
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfAI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
 
Skeleton Culture Code
Skeleton Culture CodeSkeleton Culture Code
Skeleton Culture Code
 
PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024
 
Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)
 
How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie Insights
 
Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024
 
5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary
 
ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd
 
Getting into the tech field. what next
Getting into the tech field. what next Getting into the tech field. what next
Getting into the tech field. what next
 
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentGoogle's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search Intent
 
How to have difficult conversations
How to have difficult conversations How to have difficult conversations
How to have difficult conversations
 
Introduction to Data Science
Introduction to Data ScienceIntroduction to Data Science
Introduction to Data Science
 
Time Management & Productivity - Best Practices
Time Management & Productivity -  Best PracticesTime Management & Productivity -  Best Practices
Time Management & Productivity - Best Practices
 
The six step guide to practical project management
The six step guide to practical project managementThe six step guide to practical project management
The six step guide to practical project management
 
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
 

One size fit All

  • 1. One Size fits All David Funaro domenica 3 aprile 2011
  • 2. - One Size fits-All David Funaro domenica 3 aprile 2011
  • 3. Why i’m Here “There must be a better way to design this model” ????????????????????????????????? domenica 3 aprile 2011
  • 4. Evolution of the persistence TIME ’60 Application SINGLE USER Everything in inside the application, every time we have to spend time to reinvent the wheel domenica 3 aprile 2011
  • 5. Evolution of the persistence TIME ’60 ’70/80 Application Application Library SINGLE USER SINGLE USER Everything in inside the a good way to develop. All application, every time the business logic is in the we have to spend time Library to reinvent the wheel domenica 3 aprile 2011
  • 6. Evolution of the persistence TIME ’60 ’70/80 ’90 Application Application Library RDBMS SINGLE USER SINGLE USER MULTI-USER Everything in inside the a good way to develop. All application, every time the business logic is in the Centralized storage of the we have to spend time Library model to reinvent the wheel domenica 3 aprile 2011
  • 7. Data-Driven Application Design Data Application domenica 3 aprile 2011
  • 8. Way to Develop • Define ER: • Indentify every Entities • Foeach entity find all the attributes domenica 3 aprile 2011
  • 9. Active Record “Active record is an approach to accessing data in a database. A database table or view is wrapped into a class.” Wikipedia domenica 3 aprile 2011
  • 10. ...but NOT always domenica 3 aprile 2011
  • 11. ...but NOT always is the right way domenica 3 aprile 2011
  • 12. 1:Real Case: plugin UserEvent Event User_id 100 id : 12 event_id 12 domenica 3 aprile 2011
  • 13. 1:Real Case: plugin UserEvent Event User_id 100 id : 12 event_id 12 Document id : 54 domenica 3 aprile 2011
  • 14. 1:Real Case: plugin UserEvent Event User_id 100 id : 12 event_id 12 Document id : 54 Group id : 78 domenica 3 aprile 2011
  • 15. 1:Real Case: plugin UserEvent Event User_id 100 id : 12 event_id 12 Document UserEntity id : 54 User_id 100 Class Document entity_id 12 Group id : 78 domenica 3 aprile 2011
  • 16. 1:Real Case: plugin UserEvent Event User_id 100 id : 12 event_id 12 Document UserEntity id : 54 User_id 100 Class Document entity_id 12 Group id : 78 domenica 3 aprile 2011
  • 17. 1:Real Case: plugin UserEvent Event User_id 100 id : 12 event_id 12 Document UserEntity id : 54 User_id 100 Class Document entity_id 12 Group id : 78 domenica 3 aprile 2011
  • 18. 1:Real Case: plugin UserEvent Event User_id 100 id : 12 event_id 12 Document UserEntity id : 54 User_id 100 Class Document entity_id 12 Group id : 78 domenica 3 aprile 2011
  • 19. 1:Real Case: plugin UserEvent Event User_id 100 id : 12 event_id 12 Document UserEntity id : 54 User_id 100 Class Document entity_id 12 Group id : 78 Integrity : Broken domenica 3 aprile 2011
  • 20. 1:Real Case: Redundance UserEvent Event User_id 100 id : 12 event_id 12 UserDocument User_id 100 Document document_id 12 id : 54 UserGroup Group User_id 100 id : 78 document_id 12 domenica 3 aprile 2011
  • 21. 1:Real Case: menu Home: •page •event •group •document domenica 3 aprile 2011
  • 22. 1:Real Case: menu Menu name home Home: menu_item_id 2 •page •event •group •document domenica 3 aprile 2011
  • 23. 1:Real Case: menu Menu name home Home: menu_item_id 2 •page •event MenuItem •group name home •document menu_item_id 2 class Group entity_id id domenica 3 aprile 2011
  • 24. 1:Real Case: menu Menu name home Home: menu_item_id 2 •page •event MenuItem •group name home •document menu_item_id 2 class Group entity_id id Event id : 12 domenica 3 aprile 2011
  • 25. 1:Real Case: menu Menu name home Home: menu_item_id 2 •page •event MenuItem •group name home •document menu_item_id 2 class Group entity_id id Event Document id : 12 id : 54 domenica 3 aprile 2011
  • 26. 1:Real Case: menu Menu name home Home: menu_item_id 2 •page •event MenuItem •group name home •document menu_item_id 2 class Group entity_id id Event Group Document id : 12 id : 78 id : 54 domenica 3 aprile 2011
  • 27. 1:Real Case: menu Menu name home Home: menu_item_id 2 •page •event MenuItem •group name home •document menu_item_id 2 class Group entity_id id Event Group Document id : 12 id : 78 id : 54 domenica 3 aprile 2011
  • 28. 1:Real Case: menu Menu name home Home: menu_item_id 2 •page •event MenuItem •group name home •document menu_item_id 2 class Group entity_id id Event Group Document id : 12 id : 78 id : 54 domenica 3 aprile 2011
  • 29. 1:Real Case: menu Menu name home Home: menu_item_id 2 •page •event MenuItem •group name home •document menu_item_id 2 class Group entity_id id Event Group Document id : 12 id : 78 id : 54 domenica 3 aprile 2011
  • 30. Impedence mismatch domenica 3 aprile 2011
  • 31. Design Model domenica 3 aprile 2011
  • 32. Design Model Application Needs domenica 3 aprile 2011
  • 33. Design Model | = Application Needs domenica 3 aprile 2011
  • 34. Design Model | = Application Needs Comportamenti che i modelli non sono in grado di supportare domenica 3 aprile 2011
  • 35. Arrangement Design Model | = Application Needs Comportamenti che i modelli non sono in grado di supportare domenica 3 aprile 2011
  • 38. Bad RDBMS Cases domenica 3 aprile 2011
  • 39. Data Mapping Struttura Dati RDBMS id 10 name pippo parent_id 19 domenica 3 aprile 2011
  • 40. The Alien Different Behaviour Different Model domenica 3 aprile 2011
  • 41. Unpredictable Tomorrow • User Story never complete • User Story evolve domenica 3 aprile 2011
  • 42. Bad DBMS Cases • Dynamic Pages • Data mapping • The Alien • Producer/Consumer • Overnormalized • Unpredictable tomorrow domenica 3 aprile 2011
  • 43. Bad DBMS Cases • Dynamic Pages • Data mapping • The Alien • Producer/Consumer • Overnormalized = • Unpredictable tomorrow domenica 3 aprile 2011
  • 44. Bad DBMS Cases • Dynamic Pages • Data mapping • The Alien • Producer/Consumer • Overnormalized = • Unpredictable tomorrow domenica 3 aprile 2011
  • 46. NoSql Not Only Sql domenica 3 aprile 2011
  • 47. NoSql Not Only Sql Just find the right way to manage our data-set domenica 3 aprile 2011
  • 49. document- document- TYPE oriented key-value oriented graph Reliability / Performance / FOCUS doc-oriented Performance doc-oriented edge relations Schema-less SCHEMA Schema-less Schema-less Schema-less Schema-full Mixed domenica 3 aprile 2011
  • 50. Performance • Redis : about 110000 SETs per second, about 81000 GETs per second. domenica 3 aprile 2011
  • 51. TYPE Key - Value ‘nome’ -> ‘Davidino’ domenica 3 aprile 2011
  • 52. TYPE document-Oriented ‘person’ -> ‘{ ‘name’ : ‘david’, ‘surname’ : ‘funaro’, phones: [ 34702323, 233234124, 134014 ] }’ JSon domenica 3 aprile 2011
  • 53. TYPE Graph DB JSon domenica 3 aprile 2011
  • 54. More ... domenica 3 aprile 2011
  • 55. So ? domenica 3 aprile 2011
  • 56. So ? • Removing impedence mismatch is a good reason to avoid the relational model domenica 3 aprile 2011
  • 57. So ? • Removing impedence mismatch is a good reason to avoid the relational model • Performances aren’t the only reason to choose NoSQL domenica 3 aprile 2011
  • 58. So ? • Removing impedence mismatch is a good reason to avoid the relational model • Performances aren’t the only reason to choose NoSQL • A RDBMS isn’t always the proper choice domenica 3 aprile 2011
  • 59. Thanks • David Funaro • http://www.davidfunaro.com • @ingdavidino • ing.davidino@gmail.com domenica 3 aprile 2011