introduction to database design with entity relationship diagrams
DESCRIPTION
This presentation was delivered to the Silicon Valley Code Camp in a session entitled "Introduction to Database Design with Entity Relationship Diagrams" on October 9, 2011. The intent of the presentation is to teach people how to understand, create and work with ER diagrams. There are also a number of topics introduced for the purpose of stimulating self-directed learning after the presentation.The presentation featured a demo where the audience participated in the design and normalization of a database in real time.TRANSCRIPT
Introduction to Database Design / ER Diagrams
© 2011 Mark Abramson / #svcc 1
Yes! Database Design can be this fun
Mark Abramson, CEO, Forward Thought, Inc.10/9/2011
@mark__a
Introduction to Database Design / ER Diagrams
© 2011 Mark Abramson / #svcc 2
THEORY & ELEMENTS
DEMO
Q&A
10/9/2011
Edgar F Codd
Introduction to Database Design / ER Diagrams
© 2011 Mark Abramson / #svcc 3
• Microsoft BizSpark Startup Partner• Organizer of BizSparkSF
Meetup Group• Regular customer of all
tools used in demo• Schema-first kind of guy
10/9/2011
Disclosures
Introduction to Database Design / ER Diagrams
© 2011 Mark Abramson / #svcc 4
What is a database design?
10/9/2011
Introduction to Database Design / ER Diagrams
© 2011 Mark Abramson / #svcc 5
Why Database Design?
• Gives everyone a clear picture of your business rules and the data behind it
• Build consensus across business units• Separation of
concerns• Ensure data
accuracy• Fun
10/9/2011
Introduction to Database Design / ER Diagrams
© 2011 Mark Abramson / #svcc 6
Entity / Relationship Model
• An Entity is some “thing” of interest• A Relationship defines the interaction
between one or more Entities
10/9/2011
Introduction to Database Design / ER Diagrams
© 2011 Mark Abramson / #svcc 7
What’s the data look like?
10/9/2011
SalesOrderId OrderStatus OrderDate PlacedBy IsPriorityOrder CustomerId CurrencyId20001 Shipped 1/5/2011 Bob Smith 0 3 220002 Fulfillment 5/5/2011 John Doe 1 2 220003 Placed 5/7/2011 Brenda Lee 0 3 2
CustomerId CustomerName AccountNumber1 Woolworths 8383822 Rick's Café 2911013 Mill Valley Market 957588
Introduction to Database Design / ER Diagrams
© 2011 Mark Abramson / #svcc 8
Entity
• Definition• Attributes• Data Types• NULL option• Primary Key• Foreign Key• Identity Columns
10/9/2011
Introduction to Database Design / ER Diagrams
© 2011 Mark Abramson / #svcc 9
Relationship
• Definition• Identifying• Non-Identifying
10/9/2011
Non-Identifying Relationship
Introduction to Database Design / ER Diagrams
© 2011 Mark Abramson / #svcc 10
Relationship (2)
• Recursive references• Associative / Many-To-Many /
“Join Tables”
10/9/2011
Introduction to Database Design / ER Diagrams
© 2011 Mark Abramson / #svcc 11
Cardinality• How many instances of each entity may be
involved or must be involved?
10/9/2011
Introduction to Database Design / ER Diagrams
© 2011 Mark Abramson / #svcc 12
Keys
• Primary Keys• Foreign Keys• Candidate Keys• Composite Keys
10/9/2011
Introduction to Database Design / ER Diagrams
© 2011 Mark Abramson / #svcc 13
Normalization
10/9/2011
SalesOrderId OrderStatus OrderDate PlacedBy CustomerAccountNumber CreditLimit
20001 Shipped 1/5/2011 Bob Smith 838382 5000
20002 Fulfillment 5/5/2011 John Doe 291101 10000
20003 Placed 5/7/2011 Brenda Lee 957588 7500
Denormalization
Normalization
Introduction to Database Design / ER Diagrams
© 2011 Mark Abramson / #svcc 14
Getting Fancy
• First, second, third-normal form• Generalization• Nonspecific relations• Three-way relationships• Constraints• Referential Integrity actions• Zachman’s Framework
10/9/2011
Introduction to Database Design / ER Diagrams
© 2011 Mark Abramson / #svcc 15
Exercise! Legacy Baggage
10/9/2011
Introduction to Database Design / ER Diagrams
© 2011 Mark Abramson / #svcc 16
Tools for Creating Your Model
• Paper + Pen / Whiteboard• Drawing Tools: PowerPoint, Visio• ER Tools: Open Source / Community Editions– CA ERWin; Toad; SSMS; MySQL Workbench
• ER Tools: Midrange– Sparx Systems EA $199; Toad $479
• ER Tools: High End– CA ERWin $4000; Embarcadero $2000
10/9/2011
Introduction to Database Design / ER Diagrams
© 2011 Mark Abramson / #svcc 17
Demo time!
• SQL Server Management Studio (“free”)– http://www.microsoft.com/download/en/details.aspx?id=7593
• RedGate SQL Data Generator ($295)– http://www.red-gate.com/products/sql-development/sql-data-generator/
• RedGate SQL Prompt Pro ($295)
– http://www.red-gate.com/products/sql-development/sql-prompt/
10/9/2011
Introduction to Database Design / ER Diagrams
© 2011 Mark Abramson / #svcc 18
Resources
10/9/2011
Designing Quality Databases With Idef1X Information ModelsThomas A., M.D. Bruce$3.91 on Amazon!
The Data Model Resource Book, Vol. 1: A Library of Universal Data Models for All EnterprisesLen Silverston$45(also check out Vol. 2 and Vol. 3)
Image CreditsSlide 1: flickr/besser.jetztSlide 2: IBMSlide 3: flickr/Pete ReedSlide 4: flickr/Artful MagpieSlide 14: Amazon.comSlide 15: flickr/Jon AshcroftAll ER diagrams: Mark Abramson
SQL in a Nutshell: A Desktop Quick ReferenceKevin Kline, Brand Hunt, Daniel Kline$18 on Amazon
http://www.databaseanswers.org/data_modelsRepository of simple examples of db modelsFree!
http://publib.boulder.ibm.com/infocenter/wchelp/v5r6/index.jsp?topic=/com.ibm.commerce.data.doc/refs/rdmindex.htmIBM WebSphere data modelAlso search for ER Diagrams for other large systems to see how someone else addressed a set of entities and relationships (MS Dynamics, SAP, etc.)
www.StackOverflow.com
Introduction to Database Design / ER Diagrams
© 2011 Mark Abramson / #svcc 1910/9/2011
SV Code CampPeter Kellner
Attendees
Mom + Dad
Loving WifeThomas Bruce
Edgar Codd