Introduction to Database Design / ER DiagramsIntroduction to Database Design / ER Diagrams
1
Intro to Database Design with Entity-Relationship
(ER) Diagrams
Mark Abramson, CEO, Forward Thought, Inc.
@mark__a17 May 2012 © 2012 Mark Abramson / @mark__a
Introduction to Database Design / ER DiagramsIntroduction to Database Design / ER Diagrams
Pop Quiz!
217 May 2012 © 2012 Mark Abramson / @mark__a
Introduction to Database Design / ER DiagramsIntroduction to Database Design / ER Diagrams
3
THEORY & ELEMENTS
DEMO
Q&A
Edgar F Codd17 May 2012 © 2012 Mark Abramson / @mark__a
Introduction to Database Design / ER DiagramsIntroduction to Database Design / ER Diagrams
4
About Me (and disclosures)
• Schema-first kind of guy• MS BizSpark Startup Partner• www.bizsparksf.com• Friend of Red Gate• @mark__a• linkedin.com/in/abramsonmark
17 May 2012 © 2012 Mark Abramson / @mark__a
Introduction to Database Design / ER DiagramsIntroduction to Database Design / ER Diagrams
5
What is a database design?
17 May 2012 © 2012 Mark Abramson / @mark__a
Introduction to Database Design / ER DiagramsIntroduction to Database Design / ER Diagrams
6
What’s the data look like?
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
17 May 2012 © 2012 Mark Abramson / @mark__a
Introduction to Database Design / ER DiagramsIntroduction to Database Design / ER Diagrams
7
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
17 May 2012 © 2012 Mark Abramson / @mark__a
Introduction to Database Design / ER DiagramsIntroduction to Database Design / ER Diagrams
8
Entity / Relationship Model
• An Entity is some “thing” of interest• A Relationship defines the interaction
between one or more Entities
17 May 2012 © 2012 Mark Abramson / @mark__a
Contains
Introduction to Database Design / ER DiagramsIntroduction to Database Design / ER Diagrams
9
Entity
• Definition• Attributes• Data Types• NULL option• Primary Key• Foreign Key• Identity Columns
17 May 2012 © 2012 Mark Abramson / @mark__a
Introduction to Database Design / ER DiagramsIntroduction to Database Design / ER Diagrams
10
Relationship
• Definition• Identifying• Non-Identifying
Non-Identifying Relationship
17 May 2012 © 2012 Mark Abramson / @mark__a
Introduction to Database Design / ER DiagramsIntroduction to Database Design / ER Diagrams
11
Relationship (2)
• Recursive references• Associative / Many-To-Many /
“Join Tables”
17 May 2012 © 2012 Mark Abramson / @mark__a
Introduction to Database Design / ER DiagramsIntroduction to Database Design / ER Diagrams
12
Cardinality• How many instances of each entity may be
involved or must be involved?
17 May 2012 © 2012 Mark Abramson / @mark__a
Introduction to Database Design / ER DiagramsIntroduction to Database Design / ER Diagrams
13
Keys
• Primary Keys• Foreign Keys• Candidate Keys• Composite Keys
17 May 2012 © 2012 Mark Abramson / @mark__a
Introduction to Database Design / ER DiagramsIntroduction to Database Design / ER Diagrams
14
Normalization
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
17 May 2012 © 2012 Mark Abramson / @mark__a
Introduction to Database Design / ER DiagramsIntroduction to Database Design / ER Diagrams
15
Getting Fancy
• First, second, third-normal form• Generalization• Nonspecific relations• Three-way relationships• Constraints• Referential Integrity actions / triggers• Zachman’s Framework
17 May 2012 © 2012 Mark Abramson / @mark__a
Introduction to Database Design / ER DiagramsIntroduction to Database Design / ER Diagrams
Questions?
• 1 Exercise• Demo• Questions + wrap up
1617 May 2012 © 2012 Mark Abramson / @mark__a
Introduction to Database Design / ER DiagramsIntroduction to Database Design / ER Diagrams
17
Exercise! Legacy Baggage
17 May 2012 © 2012 Mark Abramson / @mark__a
Introduction to Database Design / ER DiagramsIntroduction to Database Design / ER Diagrams
18
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
17 May 2012 © 2012 Mark Abramson / @mark__a
Introduction to Database Design / ER DiagramsIntroduction to Database Design / ER Diagrams
19
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/
• CA ERWin ($3975)
– http://erwin.com/products/
• Tabs Studio ($49)
– http://www.tabsstudio.com
17 May 2012 © 2012 Mark Abramson / @mark__a
Introduction to Database Design / ER DiagramsIntroduction to Database Design / ER Diagrams
20
ResourcesDesigning 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
17 May 2012 © 2012 Mark Abramson / @mark__a
Introduction to Database Design / ER DiagramsIntroduction to Database Design / ER Diagrams
21
SQL Server SF GroupMark Ginnebaugh
Attendees
Mom + Dad
Loving WifeThomas Bruce
Edgar Codd
17 May 2012 © 2012 Mark Abramson / @mark__a
Red Gate