SlideShare ist ein Scribd-Unternehmen logo
1 von 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

Weitere ähnliche Inhalte

Kürzlich hochgeladen

Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Igalia
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxKatpro Technologies
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024The Digital Insurer
 
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
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024Results
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure servicePooja Nehwal
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Servicegiselly40
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processorsdebabhi2
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEarley Information Science
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...apidays
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 

Kürzlich hochgeladen (20)

Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
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
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 

Empfohlen

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
 

Empfohlen (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