60

Database Design - Louis Davidson

Embed Size (px)

DESCRIPTION

Presentation from Louis Davidson at SQL In The City US Tour 2013.

Citation preview

Page 1: Database Design - Louis Davidson
Page 2: Database Design - Louis Davidson

2

Page 3: Database Design - Louis Davidson

3

–•

Page 4: Database Design - Louis Davidson

5

Page 5: Database Design - Louis Davidson

6

Page 6: Database Design - Louis Davidson

7

Page 7: Database Design - Louis Davidson

8

Page 8: Database Design - Louis Davidson

9

Page 9: Database Design - Louis Davidson

10

Page 10: Database Design - Louis Davidson

11

Page 11: Database Design - Louis Davidson

12

–•

Page 12: Database Design - Louis Davidson

13

Page 13: Database Design - Louis Davidson

14

Page 14: Database Design - Louis Davidson

15

Page 15: Database Design - Louis Davidson

Page 16: Database Design - Louis Davidson

17

Name: MessageDescription: Short messages sent either to an entire group, or to a single individualPredicates: A message with the same text may only be sent once per hour by the same sender

Page 17: Database Design - Louis Davidson

18

••

Name: MessageTextDescription: Used to present messages to usersType of Data: unformatted values, less than or equal to 200 charactersPredicates: Must not be empty or Null, Must not include hate speech, bad language, etc.

Name: SurrogateKeyDescription: Used as a stand-in for the natural keyType of Data: AnyPredicates: The data should be of some format that is small, yet still sufficiently capable of being unique

Name: PointInTimeToHourDescription: Used to capture the hour of a day when something occurred, probably to limit an action to one an hourType of Data: point in time, rounded to nearest hourPredicates:

Page 18: Database Design - Louis Davidson

19

Example: If you want to cascade operations on two relationships, this cannot be built as two cascading foreign key constraints

Page 19: Database Design - Louis Davidson

20

••

Page 20: Database Design - Louis Davidson

21

Domain table, added to implement a domain

“Physical” columns added, like RowCreateTime, RowLastUpdateTime

Schemas implemented to segregate tables into “families” for usage/security purposes

Page 21: Database Design - Louis Davidson

22

Page 22: Database Design - Louis Davidson

23

Page 23: Database Design - Louis Davidson

24

Page 24: Database Design - Louis Davidson

25

Page 25: Database Design - Louis Davidson

26

Page 26: Database Design - Louis Davidson

27

Page 27: Database Design - Louis Davidson

29

MascotId Name

=========== -----------

1 Smokey

112 Smokey

4567 Smokey

979796 Smokey

Color

-----------

Black/Brown

Black/White

Smoky

Brown

School

-----------

UT

Central High

Less Central High

Southwest Middle

~~~~~~~~~~~ ~~~~~~~~~~~

Page 28: Database Design - Louis Davidson

30

–•

Page 29: Database Design - Louis Davidson

31

BookISBN BookTitle BookPublisher Author

=========== ------------- --------------- -----------

111111111 Normalization Apress Louis

222222222 T-SQL Apress Michael

333333333 Indexing Microsoft Kim

444444444 DB Design Apress Jessica

444444444-1 DB Design Apress Louis

, Louis& Louisand Louis

Page 30: Database Design - Louis Davidson

32

BookISBN BookTitle BookPublisher …

=========== ------------- ---------------

111111111 Normalization Apress …

222222222 T-SQL Apress …

333333333 Indexing Microsoft …

444444444 Design Apress …

Author1 Author2 Author3

----------- ----------- -----------

Louis

Michael

Kim

Jessica Louis

Page 31: Database Design - Louis Davidson

33

BookISBN BookTitle BookPublisher

=========== ------------- ---------------

111111111 Normalization Apress

222222222 T-SQL Apress

333333333 Indexing Microsoft

444444444 DMV Book Simple Talk

BookISBN Author

=========== =============

111111111 Louis

222222222 Michael

333333333 Kim

444444444 Jessica

ContributionType

----------------

Principal Author

Principal Author

Principal Author

Contributor

Principal Author444444444 Louis

Page 32: Database Design - Louis Davidson

34

UserId UserName PersonName

=========== ~~~~~~~~~~~~~~ ---------------

1 Drsql Louis Davidson

2 Kekline Kevin Kline

3 Datachix2 Audrey Hammonds

4 PaulNielsen Paul Nielsen

Page 33: Database Design - Louis Davidson

35

UserId UserName PersonFirstName PersonLastName

=========== ~~~~~~~~~~~~~~ --------------- --------------

1 Drsql Louis Davidson

2 Kekline Kevin Kline

3 Datachix2 Audrey Hammonds

4 PaulNielsen Paul Nielsen

Page 34: Database Design - Louis Davidson

36

Page 35: Database Design - Louis Davidson

37

X Y Z

1 1 2

2 2 4

3 2 4

Page 36: Database Design - Louis Davidson

39

Driver Car Style Height EyeColor MaxWeight

======== ================ ------- --------- ----------

Louis Station Wagon 6’0” Blue 2900

Louis Hatchback 6’0” Blue 2500

Ted Coupe 5’8” Brown 2200

Page 37: Database Design - Louis Davidson

40

Driver Car Style

======== ================

Louis Station Wagon

Louis Hatchback

Ted Coupe

Driver Height EyeColor

======== ------- ---------

Louis 6’0” Blue

Ted 5’8” Brown

Car Style MaxWeight

================ ----------

Station Wagon 2900

Hatchback 2500

Coupe 2200

Page 38: Database Design - Louis Davidson

41

Driver Vehicle Owned Height EyeColor WheelCount

======== ---------------- ------- --------- ----------

Louis Hatchback 6’0” Blue 4

Ted Coupe 5’8” Brown 4

Rob Tractor trailer 6’8” NULL 18

Page 39: Database Design - Louis Davidson

42

Driver Vehicle Owned (FK) Height EyeColor

======== ------------------- ------- ---------

Louis Hatchback 6’0” Blue

Ted Coupe 5’8” Brown

Rob Tractor trailer 6’8” NULL

Vehicle Owned WheelCount

================ -----------

Hatchback 4

Coupe 4

Tractor trailer 18

Page 40: Database Design - Louis Davidson

45

Or

A B

Page 41: Database Design - Louis Davidson

46

Page 42: Database Design - Louis Davidson

47

Page 43: Database Design - Louis Davidson

48

Page 45: Database Design - Louis Davidson

50

Trainer Class Book

========== ============== ================================

Louis Normalization DB Design & Implementation

Chuck Normalization DB Design & Implementation

Fred Implementation DB Design & Implementation

Fred Golf Topics for the Non-Technical

Page 46: Database Design - Louis Davidson

51

Trainer Class Book

========== ============== ================================

Louis Normalization DB Design & Implementation

Chuck Normalization DB Design & Implementation

Fred Implementation DB Design & Implementation

Fred Golf Topics for the Non-Technical

Class Book

=============== ==========================

Normalization DB Design & Implementation

Implementation DB Design & Implementation

Golf Topics for the Non-Technical

SELECT DISTINCT Class, Book

FROM TrainerClassBook

Question: What classes do we have available and what books do they use?

Doing a very slow operation, sorting your data,

unnecessarily… please wait

Page 47: Database Design - Louis Davidson

52

Class Trainer

=============== =================

Normalization Louis

Normalization Chuck

Implementation Fred

Golf Fred

Class Book

=============== ==========================

Normalization DB Design & Implementation

Implementation DB Design & Implementation

Golf Topics for the Non-Technical

Page 48: Database Design - Louis Davidson

53

Page 49: Database Design - Louis Davidson

54

Driver Car Style Car Brand

=================== ======================== ===============

Louis Station Wagon Ford

Louis Hatchback Hyundai

Ted Coupe Chevrolet

Page 50: Database Design - Louis Davidson

55

Driver Car Style Car Brand

=================== ======================== ===============

Louis Station Wagon Ford

Louis Hatchback Hyundai

Ted Coupe Chevrolet

Page 51: Database Design - Louis Davidson

56

•Driver Car Style

=================== =======================

Louis Station Wagon

Louis Hatchback

Ted Coupe

Driver Car Brand

=================== =======================

Louis Ford

Louis Hyundai

Ted Chevrolet

Car Style Car Brand

============================= =======================

Station Wagon Ford

Hatchback Hyundai

Coupe Chevrolet

Page 52: Database Design - Louis Davidson

60

Page 53: Database Design - Louis Davidson

61

Page 54: Database Design - Louis Davidson

63

••

•–

Page 55: Database Design - Louis Davidson

64

–•

–•

Page 56: Database Design - Louis Davidson

65

Page 57: Database Design - Louis Davidson

66

Page 58: Database Design - Louis Davidson

68

Page 60: Database Design - Louis Davidson