21
Introduction to Database Design / ER Diagrams Introduction to Database Design / ER Diagrams Intro to Database Design with Entity- Relationship (ER) Diagrams Mark Abramson, CEO, Forward Thought, Inc. 1 @mark__a 17 May 2012 © 2012 Mark Abramson / @mark__a

Introduction to database design with Idef1X entity relationship (ER) diagrams

  • Upload
    mark-a

  • View
    3.272

  • Download
    0

Embed Size (px)

DESCRIPTION

Tonight I delivered a fun presentation on the topic of designing a relational database using entity relationship diagrams. The group was very diverse (QA, Product Managers, DBAs, Software Architects, startup folks, etc.) and we had a great time talking about the nuts and bolts of designing a database.

Citation preview

Page 1: Introduction to database design with Idef1X entity relationship (ER) diagrams

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

Page 2: Introduction to database design with Idef1X entity relationship (ER) diagrams

Introduction to Database Design / ER DiagramsIntroduction to Database Design / ER Diagrams

Pop Quiz!

217 May 2012 © 2012 Mark Abramson / @mark__a

Page 3: Introduction to database design with Idef1X entity relationship (ER) diagrams

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

Page 4: Introduction to database design with Idef1X entity relationship (ER) diagrams

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

Page 5: Introduction to database design with Idef1X entity relationship (ER) diagrams

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

Page 6: Introduction to database design with Idef1X entity relationship (ER) diagrams

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

Page 7: Introduction to database design with Idef1X entity relationship (ER) diagrams

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

Page 8: Introduction to database design with Idef1X entity relationship (ER) diagrams

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

Page 9: Introduction to database design with Idef1X entity relationship (ER) diagrams

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

Page 10: Introduction to database design with Idef1X entity relationship (ER) diagrams

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

Page 11: Introduction to database design with Idef1X entity relationship (ER) diagrams

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

Page 12: Introduction to database design with Idef1X entity relationship (ER) diagrams

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

Page 13: Introduction to database design with Idef1X entity relationship (ER) diagrams

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

Page 14: Introduction to database design with Idef1X entity relationship (ER) diagrams

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

Page 15: Introduction to database design with Idef1X entity relationship (ER) diagrams

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

Page 16: Introduction to database design with Idef1X entity relationship (ER) diagrams

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

Page 17: Introduction to database design with Idef1X entity relationship (ER) diagrams

Introduction to Database Design / ER DiagramsIntroduction to Database Design / ER Diagrams

17

Exercise! Legacy Baggage

17 May 2012 © 2012 Mark Abramson / @mark__a

Page 18: Introduction to database design with Idef1X entity relationship (ER) diagrams

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

Page 19: Introduction to database design with Idef1X entity relationship (ER) diagrams

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

Page 20: Introduction to database design with Idef1X entity relationship (ER) diagrams

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

Page 21: Introduction to database design with Idef1X entity relationship (ER) diagrams

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