30
D – ACCT302 – Guido Geerts – Fall 2009 L4

UD – ACCT302 – Guido Geerts – Fall 2009L4. Customer code name country Enterprise Model (E-R Diagram) Relational Database Structure codenamecountry

Embed Size (px)

Citation preview

Page 1: UD – ACCT302 – Guido Geerts – Fall 2009L4. Customer code name country Enterprise Model (E-R Diagram) Relational Database Structure codenamecountry

UD – ACCT302 – Guido Geerts – Fall 2009 L4

Page 2: UD – ACCT302 – Guido Geerts – Fall 2009L4. Customer code name country Enterprise Model (E-R Diagram) Relational Database Structure codenamecountry

Customer

code

name

country

Enterprise Model(E-R Diagram)

Relational DatabaseStructure

code name country

Page 3: UD – ACCT302 – Guido Geerts – Fall 2009L4. Customer code name country Enterprise Model (E-R Diagram) Relational Database Structure codenamecountry

Detailed definitions of

fields/attributes (code)

Definition of fields/attributes

Definition of Table Structure

(Customer)

1

Table Structure (Customer)

2

Instances

Table Structure

Page 4: UD – ACCT302 – Guido Geerts – Fall 2009L4. Customer code name country Enterprise Model (E-R Diagram) Relational Database Structure codenamecountry

Mapping E-R relationships to Relational Databases

A B

Solution 1

a’a’’

a’’’

b’b’’

b’’’

a’ a” a’’’

A

b’ b” b’’’

B

a’ b’

A-B

Solution 2a’ a” a’’’ b’ b” b’’’b’

Solution 3a’ a” a’’’ b’ b” b’’’ a’

Page 5: UD – ACCT302 – Guido Geerts – Fall 2009L4. Customer code name country Enterprise Model (E-R Diagram) Relational Database Structure codenamecountry

Customer Sale

code

name

country

invoice#

date

amount

[0,N] [1,1]

code name country

1 Michael Jordan USA

2 Steffi Graf Germany

3 Jerry Seinfeld USA

invoice# date amount

1 11/13/2004 $125

2 11/13/2004 $110

3 11/14/2004 $80

4 11/14/2004 $35

5 11/15/2004 $40

Customer

Sale

How To Implement The Relationship Between Customer and Sale?

Page 6: UD – ACCT302 – Guido Geerts – Fall 2009L4. Customer code name country Enterprise Model (E-R Diagram) Relational Database Structure codenamecountry

Customer Sale

code

name

country

invoice#

date

amount

[0,N] [1,1]

code name country SALE

1 Michael Jordan USA 1

1 Michal Jordan USA 2

1 Michael Jordan USA 4

2 Steffi Graf Germany 3

2 Steffi Graf Germany 5

3 Jerry Seinfeld USA null

invoice# date amount

1 11/13/2004 $125

2 11/13/2004 $110

3 11/14/2004 $80

4 11/14/2004 $35

5 11/15/2004 $40

Customer

Sale

Page 7: UD – ACCT302 – Guido Geerts – Fall 2009L4. Customer code name country Enterprise Model (E-R Diagram) Relational Database Structure codenamecountry

Customer Sale

code

name

country

invoice#

date

amount

[0,N] [1,1]

code name country

1 Michael Jordan USA

2 Steffi Graf Germany

3 Jerry Seinfeld USA

invoice# date amount CUSTOMER

1 11/13/2004 $125 1

2 11/13/2004 $110 1

3 11/14/2004 $80 2

4 11/14/2004 $35 1

5 11/15/2004 $40 2

Customer

Sale

Page 8: UD – ACCT302 – Guido Geerts – Fall 2009L4. Customer code name country Enterprise Model (E-R Diagram) Relational Database Structure codenamecountry

name country code/CUSTOMER invoice# date amount

Michael Jordan USA 1 1 11/13/2004 $125

Michal Jordan USA 1 2 11/13/2004 $110

Michael Jordan USA 1 4 11/14/2004 $80

Steffi Graf Germany 2 3 11/14/2004 $35

Steffi Graf Germany 2 5 11/15/2004 $40

code name country

1 Michael Jordan USA

2 Steffi Graf Germany

3 Jerry Seinfeld USA

invoice# date amount CUSTOMER

1 11/13/2004 $125 1

2 11/13/2004 $110 1

3 11/14/2004 $80 2

4 11/14/2004 $35 1

5 11/15/2004 $40 2

Customer

Sale

== JOIN ==

Page 9: UD – ACCT302 – Guido Geerts – Fall 2009L4. Customer code name country Enterprise Model (E-R Diagram) Relational Database Structure codenamecountry

Product Sale

code

description

invoice#

date

amount

[0,N] [1,N]

code description SALE

1 Rolls Royce Silver Shadow 1

1 Rolls Royce Silver Shadow 3

2 VW Beetle 1

2 VW Beetle 5

3 Jaguar Mark 10 2

4 Ford Mustang Classic 2

5 Citroen 2PK 4

6 Rolls Royce Phantom III null

7 Volvo Classic null

invoice# date amount

1 11/13/2004 $125

2 11/13/2004 $110

3 11/14/2004 $80

4 11/14/2004 $35

5 11/15/2004 $40

Product

Sale

Page 10: UD – ACCT302 – Guido Geerts – Fall 2009L4. Customer code name country Enterprise Model (E-R Diagram) Relational Database Structure codenamecountry

Product Sale

code

description

invoice#

date

amount

[0,N] [1,N]

code description

1 Rolls Royce Silver Shadow

2 VW Beetle

3 Jaguar Mark 10

4 Ford Mustang Classic

5 Citroen 2PK

6 Rolls Royce Phantom III

7 Volvo Classic

invoice# date amount PRODUCT

1 11/13/2004 $125 1

1 11/13/2004 $125 2

2 11/13/2004 $110 3

2 11/13/2004 $110 4

3 11/14/2004 $80 1

4 11/14/2004 $35 5

5 11/15/2004 $40 2

Product Sale

Page 11: UD – ACCT302 – Guido Geerts – Fall 2009L4. Customer code name country Enterprise Model (E-R Diagram) Relational Database Structure codenamecountry

Product Sale

code

description

invoice#

date

amount

[0,N] [1,N]

invoice# date amount

1 11/13/2004 $125

2 11/13/2004 $110

3 11/14/2004 $80

4 11/14/2004 $35

5 11/15/2004 $40

Product

Sale

amount

PRODUCT SALE amount

1 1 $85

1 3 $80

2 1 $40

2 5 $40

3 2 $80

4 2 $30

5 4 $35Product-Sale

code description

1 Rolls Royce Silver Shadow

2 VW Beetle

3 Jaguar Mark 10

4 Ford Mustang Classic

5 Citroen 2PK

6 Rolls Royce Phantom III

7 Volvo Classic

Page 12: UD – ACCT302 – Guido Geerts – Fall 2009L4. Customer code name country Enterprise Model (E-R Diagram) Relational Database Structure codenamecountry

Employee Department

ssn#

name

code

name

[0,1] [1,N]

code name

1 Accounting

2 Marketing

ssn# name code

1 Elvis Costello 1

2 Mick Jagger null

3 Monica Bing null

4 Van Morisson null

5 Jackie Chan null

6 Julia Roberts null

7 Elvis Presley null

8 Marion Jones 2

9 Ben Wallace null

10 Jimmy Buffet null

Department

Employee

Page 13: UD – ACCT302 – Guido Geerts – Fall 2009L4. Customer code name country Enterprise Model (E-R Diagram) Relational Database Structure codenamecountry

Employee Department

ssn#

name

code

name

[0,1] [1,N]

code name

1 Accounting

2 Marketing

ssn# name

1 Elvis Costello

2 Mick Jagger

3 Monica Bing

4 Van Morisson

5 Jackie Chan

6 Julia Roberts

7 Elvis Presley

8 Marion Jones

9 Ben Wallace

10 Jimmy Buffet

Department

Employeessn# code

1 1

8 2

Works-For

Works-For

Page 14: UD – ACCT302 – Guido Geerts – Fall 2009L4. Customer code name country Enterprise Model (E-R Diagram) Relational Database Structure codenamecountry

Employee Department

ssn#

name

code

name

[0,1] [1,N]

code name

1 Accounting

2 Marketing

3 Purchase

ssn# name code

1 Elvis Costello 1

2 Mick Jagger 3

3 Monica Bing 2

4 Van Morisson null

5 Jackie Chan 3

6 Julia Roberts 1

7 Elvis Presley 2

8 Marion Jones 2

9 Ben Wallace null

10 Jimmy Buffet 1

Department

Employee

Page 15: UD – ACCT302 – Guido Geerts – Fall 2009L4. Customer code name country Enterprise Model (E-R Diagram) Relational Database Structure codenamecountry

Employee Department

ssn#

name

code

name

[0,1] [1,N]

code name

1 Accounting

2 Marketing

3 Purchase

ssn# name

1 Elvis Costello

2 Mick Jagger

3 Monica Bing

4 Van Morisson

5 Jackie Chan

6 Julia Roberts

7 Elvis Presley

8 Marion Jones

9 Ben Wallace

10 Jimmy Buffet

Department

Employee

EMPLOYEE DEPARTMENT

1 1

2 3

3 2

5 3

6 1

7 2

8 2

10 1 Works-For

Page 16: UD – ACCT302 – Guido Geerts – Fall 2009L4. Customer code name country Enterprise Model (E-R Diagram) Relational Database Structure codenamecountry

Vendor Order

code

name

number

date

[0,N] [1,1]

code name ORDER

1 Jimmy John 1

1 Jimmy John 2

1 Jimmy John 4

2 Pablo Picasso 3

Vendor

code date

1 10/1/2004

2 10/5/2004

3 10/7/2004

4 10/8/2004

Order

code name

1 Jimmy John

2 Pablo Picasso

Vendor

code date VENDOR

1 10/1/2004 1

2 10/5/2004 1

3 10/7/2004 2

4 10/8/2004 1

Order

Assignment (1)

Solution A Solution B

Page 17: UD – ACCT302 – Guido Geerts – Fall 2009L4. Customer code name country Enterprise Model (E-R Diagram) Relational Database Structure codenamecountry

SaleCash

Receipt

inv#

date

ra#

date

[1,N] [0,1]

inv# date

1 9/12/04

2 9/15/04

3 9/21/04

4 9/25/04

Sale

ra# date

1 10/1/2004

2 10/5/2004

3 10/7/2004

4 10/10/2004

Cash Receipt

Assignment (2)

Solution A Solution B

SALE CASH RECEIPT

1 1

Sale-CashReceipt

inv# date

1 9/12/04

2 9/15/04

3 9/21/04

4 9/25/04

Sale

ra# date SALE

1 10/1/2004 1

2 10/5/2004 null

3 10/7/2004 null

4 10/10/2004 null

Cash Receipt

Page 18: UD – ACCT302 – Guido Geerts – Fall 2009L4. Customer code name country Enterprise Model (E-R Diagram) Relational Database Structure codenamecountry

SaleCash

Receipt

inv#

date

ra#

date

[1,1] [0,1]

inv# date CASH RECEIPT

1 9/12/04 1

2 9/15/04 2

3 9/16/04 3

Sale

ra# date

1 10/1/2004

2 10/5/2004

3 10/7/2004

4 10/10/2004

Cash Receipt

Assignment (3)

Solution A Solution B

inv# date

1 9/12/04

2 9/15/04

3 9/16/04

Sale

ra# date SALE

1 10/1/2004 1

2 10/5/2004 2

3 10/7/2004 3

4 10/10/2004 null

Cash Receipt

Page 19: UD – ACCT302 – Guido Geerts – Fall 2009L4. Customer code name country Enterprise Model (E-R Diagram) Relational Database Structure codenamecountry

SaleCash

Receipt

inv#

date

ra#

date

[0,1] [0,1]

ra# date SALE

1 10/1/2004 1

2 10/5/2004 2

3 10/7/2004 3

4 10/10/2004 null

Cash Receipt

Assignment (4)

inv# date

1 9/12/04

2 9/15/04

3 9/21/04

4 9/25/04

Sale

Page 20: UD – ACCT302 – Guido Geerts – Fall 2009L4. Customer code name country Enterprise Model (E-R Diagram) Relational Database Structure codenamecountry

HEURISTICS SUMMARY

RULERepresent relationship with separate table.

To avoid REDUNDANCY.No exceptions.

RULEPost the key of the “many” entity as a foreign key into the “one” entity.

To avoid REDUNDANCY.

EXCEPTIONIF the “One” entity is optional and Low Load (LL) THEN represent relationship with separate table.

To avoid LOAD issues

RULEPost the foreign key in the (1,1) (Min,Max) Entity – Patterns 1,2,3 below

To avoid LOAD issues

N N

Max Max

1 N

Max Max

1 1

Max Max

Many-to-Many Relationships

One-to-Many Relationships

One-to-One Relationships

Pattern 1: Entity-1 (1,1) -- (1,1) Entity-2

Post foreign key (either way)

Pattern 2: Entity-1 (1,1) -- (0,1) Entity-2

Post primary key of Entity-2 as foreign key in Entity-1

Pattern 3: Entity-1 (0,1) -- (1,1) Entity-2

Post primary key of Entity-1 as foreign key in Entity-2

Pattern 4: Entity-1 (0,1) -- (0,1) Entity-2

HL HL FK in Highest Load HL LL FK in Entity 1 (HL) LL HL FK in Entity 2 (HL) LL LL Separate Table

I

II

III

Page 21: UD – ACCT302 – Guido Geerts – Fall 2009L4. Customer code name country Enterprise Model (E-R Diagram) Relational Database Structure codenamecountry

Pattern I: N-N RelationshipRule: Separate Table

SaleCash

Receipt

invoice#

date

ra#

date

[0,N] [1,N]

amount

invoice# date

Sale

ra# date

Cash Receipt

SALE (invoice#) CASH RECEIPT (ra#)

Sale - Cash Receipt

amount

E

S

Example

Solution

amount

amount

amountamount

Page 22: UD – ACCT302 – Guido Geerts – Fall 2009L4. Customer code name country Enterprise Model (E-R Diagram) Relational Database Structure codenamecountry

Pattern I: N-N RelationshipRule: Separate Table

Tables

INVOICE# DATE AMOUNT

0001 9/7/2008 $125.00

0002 9/7/2008 $110.00

0003 9/8/2008 $80.00

0004 9/8/2008 $35.00

0005 9/9/2008 $40.00

RA# DATE AMOUNT

0001 9/8/2008 $125.00

0002 9/10/2008 $100.00

SALE (INVOICE#) CASH RECEIPT (RA#) AMOUNT

0001 0001 $125.00

0003 0002 $60.00

0005 0002 $40.00

Sale

Cash Receipt

Sale - Cash Receipt

E

S

Page 23: UD – ACCT302 – Guido Geerts – Fall 2009L4. Customer code name country Enterprise Model (E-R Diagram) Relational Database Structure codenamecountry

Pattern II: 1-N RelationshipRule: Foreign Key in “1” Table

SaleCash

Receipt

invoice#

date

ra#

date

[1,1] [0,N]

invoice# date

Sale

ra# date

Cash Receipt

Example

Solution

amount amount

amount CASH RECEIPT (RA#)

S

amount

Page 24: UD – ACCT302 – Guido Geerts – Fall 2009L4. Customer code name country Enterprise Model (E-R Diagram) Relational Database Structure codenamecountry

Tables

INVOICE# DATE AMOUNT CASH RECEIPT (RA#)

0001 9/7/2008 $125.00 0001

0002 9/7/2008 $110.00 0002

0003 9/8/2008 $80.00 0003

0004 9/8/2008 $35.00 0005

0005 9/9/2008 $40.00 0006

RA# DATE AMOUNT

0001 9/8/2008 $125.00

0002 9/8/2008 $110.00

0003 9/9/2008 $80.00

0004 9/9/2008 $66.00

0005 9/9/2008 $35.00

0006 9/10/2008 $40.00

Sale

Cash Receipt

Pattern II: 1-N RelationshipRule: Foreign Key in “1” Table

S

Page 25: UD – ACCT302 – Guido Geerts – Fall 2009L4. Customer code name country Enterprise Model (E-R Diagram) Relational Database Structure codenamecountry

Pattern II: 1-N RelationshipException: IF the “One” entity is optional and Low Load (LL)

THEN represent relationship with separate table.

SaleCash

Receipt

invoice#

date

ra#

date

[0,1] [0,N]Example

Solution

amount amount

LL

invoice# date

Sale

ra# date

Cash Receipt

SALE (invoice#) CASH RECEIPT (ra#)

Sale - Cash Receipt

S

S

amount

amount

Page 26: UD – ACCT302 – Guido Geerts – Fall 2009L4. Customer code name country Enterprise Model (E-R Diagram) Relational Database Structure codenamecountry

Pattern III: 1-1 RelationshipRule: Foreign Key in (1,1) Table

SaleCash

Receipt

invoice#

date

ra#

date

[1,1] [1,1]

invoice# date

Sale

ra# date

Cash Receipt

Example

Solution

amount amount

amount

SALE (invoice#)amount

E

Page 27: UD – ACCT302 – Guido Geerts – Fall 2009L4. Customer code name country Enterprise Model (E-R Diagram) Relational Database Structure codenamecountry

Tables

INVOICE# DATE AMOUNT

0001 9/7/2008 $125.00

0002 9/7/2008 $110.00

0003 9/8/2008 $80.00

0004 9/8/2008 $35.00

0005 9/9/2008 $40.00

RA# DATE AMOUNT SALE (Invoice#)

0001 9/8/2008 $125.00 0001

0002 9/8/2008 $110.00 0002

0003 9/9/2008 $80.00 0003

0004 9/9/2008 $35.00 0004

0005 9/9/2008 $40.00 0005

Sale

Cash Receipt

E

Pattern III: 1-1 RelationshipRule: Foreign Key in (1,1) Table

Page 28: UD – ACCT302 – Guido Geerts – Fall 2009L4. Customer code name country Enterprise Model (E-R Diagram) Relational Database Structure codenamecountry

Pattern III: (0,1)-(0,1) RelationshipHL -- LL

SaleCash

Receipt

invoice#

date

ra#

date

[0,1] [0,1]Example

amount amount

HL LL

invoice# date

Sale

ra# date

Cash Receipt

Solution

amount CASH RECEIPT (ra#)

S

amount

Page 29: UD – ACCT302 – Guido Geerts – Fall 2009L4. Customer code name country Enterprise Model (E-R Diagram) Relational Database Structure codenamecountry

Tables

INVOICE# DATE AMOUNT CASH RECEIPT (RA#)

0001 9/7/2008 $125.00 0001

0002 9/7/2008 $110.00 0002

0003 9/8/2008 $80.00 0003

0004 9/8/2008 $35.00 null

0005 9/9/2008 $40.00 null

RA# DATE AMOUNT

0001 9/8/2008 $125.00

0002 9/8/2008 $110.00

0003 9/9/2008 $80.00

0004 9/9/2008 $66.00

0005 9/9/2008 $50.00

0006 9/10/2008 $70.00

Sale

Cash ReceiptS

Pattern III: (0,1)-(0,1) RelationshipHL -- LL

Page 30: UD – ACCT302 – Guido Geerts – Fall 2009L4. Customer code name country Enterprise Model (E-R Diagram) Relational Database Structure codenamecountry

Pattern III: (0,1)-(0,1) RelationshipLL -- LL

SaleCash

Receipt

invoice#

date

ra#

date

[0,1] [0,1]Example

amount amount

LL LL

Solution

invoice# date

Sale

ra# date

Cash Receipt

SALE (invoice#) CASH RECEIPT (ra#)

Sale - Cash Receipt

S

S

amount

amount