introduction to database design with entity relationship diagrams

Post on 14-Jan-2015

3.799 Views

Category:

Technology

3 Downloads

Preview:

Click to see full reader

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

top related