0% found this document useful (0 votes)
7 views

04-Functionaldependencies 2

The document describes student enrollment records and relationships between tables. It defines functional dependencies and discusses lossless and lossy decomposition. Key attributes are identified for each relation.

Uploaded by

saukaguya0101
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
7 views

04-Functionaldependencies 2

The document describes student enrollment records and relationships between tables. It defines functional dependencies and discusses lossless and lossy decomposition. Key attributes are identified for each relation.

Uploaded by

saukaguya0101
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 72

student(sid,cid,room,grade,name,address)

sid cid room grade name address


123 15-445 GHC 6115 A Andy Pittsburgh
456 15-721 GHC 8102 B Tupac Los Angeles
789 15-445 GHC 6115 A Obama Chicago
012 15-445 GHC 6115 C Waka Flocka Atlanta
789 15-721 GHC 8102 A Obama Chicago
student(sid,cid,room,grade,name,address)
sid cid room grade name address
123 15-445 GHC 6115 A Andy Pittsburgh
456 15-721 GHC 8102 B Tupac Los Angeles
789 15-445 GHC 6115 A Obama Chicago
012 15-445 GHC 6115 C Waka Flocka Atlanta
789 15-721 GHC 8102 A Obama Chicago


student(sid,name,address) courses(sid,cid,grade)
sid name address sid cid grade
123 Andy Pittsburgh 123 15-415 A
456 Tupac Los Angeles 456 15-721 B
789 Obama Chicago 789 15-415 A
012 Waka Flocka Atlanta 012 15-415 C
789 15-721 A
rooms(cid,room)
cid room
15-415 GHC 6115
15-721 GHC 8102
X→Y
→ X
Y
R1(sid,name,address)
sid name address
→ X→Y ⇒ (t1[x]=t2[x] ⇒ t1[y]=t2[y]) 123 Andy Pittsburgh
t1 t2 X 456 Tupac Los Angeles
789 Obama Chicago
Y 012 Waka Flocka Atlanta
R1(sid,name,address)
sid name address
→ X→Y ⇒ (t1[x]=t2[x] ⇒ t1[y]=t2[y]) 123 Andy Pittsburgh
t1 t2 X 456 Tupac Los Angeles
789 Obama Chicago
Y 012 Waka Flocka Atlanta

X Y

sid→name
R1(sid,name,address)
sid name address
123 Andy Pittsburgh
456 Tupac Los Angeles
789 Obama Chicago
012 Waka Flocka Atlanta
555 Andy Providence

name→address
X→Y X→Z
X→YZ

XY→Z
X→Z Y→Z
FD1: sid → name

CREATE ASSERTION student-name


CHECK (NOT EXISTS
(SELECT * FROM students AS s1,
students AS s2
WHERE s1.sid = s2.sid
AND s1.name <> s2.name))
FD1: sid → name
FD2: sid → address

CREATE ASSERTION student-name-addr


CHECK (NOT EXISTS
(SELECT * FROM students AS s1,
students AS s2
WHERE s1.sid = s2.sid
AND ((s1.name <> s2.name
OR (s1.address <> s2.address)))
FD1: sid → name

CREATE TABLE students (


sid INT PRIMARY KEY,
name VARCHAR(32),

CONSTRAINT student_name CHECK (name)
DETERMINED BY (sid)
);

student(sid,cid,room,grade,name,address)
sid cid room grade name address
123 15-445 GHC 6115 A Andy Pittsburgh
456 15-721 GHC 8102 B Tupac Los Angeles
789 15-445 GHC 6115 A Obama Chicago
012 15-445 GHC 6115 A Waka Flocka Atlanta

sid → name,address sid,cid → grade


sid,cid → grade sid,cid → sid
sid,cid → cid
{f1,…,fn}
g


→ X ⊇ Y ⇒ X→Y → (X→Y) ∧ (X→Z) ⇒ X→YZ

→ X→Y ⇒ XZ→YZ → X→YZ ⇒ (X→Y) ∧ (X→Z)

→ (X→Y) ∧ (Y→Z) ⇒ X→Z → (X→Y) ∧ (YW→Z) ⇒ XW→Z


F {f1,…,fn}
F+
student(sid,cid,room,grade,name,address)
sid,cid → grade
F sid → name,address
F {f1,…,fn}
F+
student(sid,cid,room,grade,name,address)
sid,cid → grade
F sid → name,address
sid,name → sid
sid → name
sid → address F+
sid,grade → name,grade
sid,cid → grade,name

→ X X+

X→A

X→A
→ X+
→ A∊X+

INSERT UPDATE
DELETE
F {f1,…,fn}
Fc

sid,cid → grade
sid → name,address F c
F sid,name → name,address
sid,cid → grade,name
Fc

X→Y
Fc
F Fc=F
Fc
F


X→Y

F: F 1:
AB → C (1) AB → C (1)
A → BC (2) A → B (2’)
B → C (3) A → C (2’’)
A → B (4) B → C (3)
A → B (4)
F1: F 2:
AB → C (1) AB → C (1)
A → B (2’) A → C (2’’)
A → C (2’’) B → C (3)
B → C (3) A → B (4)
A → B (4)
F2: F 3:
AB → C (1) AB → C (1)
A → C (2’’) B → C (3)
B → C (3) A → B (4)
A → B (4)
F3: F 4:
AB → C (1) B → C (1')
B → C (3) B → C (3)
A → B (4) A → B (4)
F4: F 5:
B → C (1') B → C (3)
B → C (3) A → B (4)
A → B (4)
Fc
F4: F 5:
B → C (1') B → C (3)
B → C (3) A → B (4)
A → B (4)






R
{R1,…,Rn}







bname → bcity,assets
loanId → amt,bname

loans(bname,bcity,assets,cname,loanId,amt)
bname bcity assets cname loanId amt
Downtown Pittsburgh $9M Andy L-17 $1000
Downtown Pittsburgh $9M Obama L-23 $2000
Compton Los Angeles $2M Andy L-93 $500
Downtown Pittsburgh $9M DJ Snake L-17 $1000
bname → bcity,assets
loanId → amt,bname

loans(bname,bcity,assets,cname,loanId,amt)

R1(bname,bcity,assets,cname) R2(cname,loanId,amt)
bname bcity assets cname cname loanId amt
Downtown Pittsburgh $9M Andy Andy L-17 $1000
Downtown Pittsburgh $9M Obama Obama L-23 $2000
Compton Los Angeles $2M Andy Andy L-93 $500
Downtown Pittsburgh $9M DJ Snake DJ Snake L-17 $1000
bname → bcity,assets
loanId → amt,bname
R1(bname,bcity,assets,cname) R2(cname,loanId,amt)
bname bcity assets cname cname loanId amt
Downtown Pittsburgh $9M Andy Andy L-17 $1000
Downtown Pittsburgh
Compton
$9M
Los Angeles $2M
Obama
Andy
⨝ Obama
Andy
L-23
L-93
$2000
$500
Downtown Pittsburgh $9M DJ Snake DJ Snake L-17 $1000
bname → bcity,assets
loanId → amt,bname
R1(bname,bcity,assets,cname) R2(cname,loanId,amt)
bname bcity assets cname cname loanId amt
Downtown Pittsburgh $9M Andy Andy L-17 $1000
Downtown Pittsburgh
Compton
$9M
Los Angeles $2M
Obama
Andy
⨝ Obama
Andy
L-23
L-93
$2000
$500
Downtown Pittsburgh $9M DJ Snake DJ Snake L-17 $1000

bname bcity assets cname loanId amt


Downtown Pittsburgh $9M Andy L-17 $1000
Downtown Pittsburgh $9M Andy L-93 $500
Downtown Pittsburgh $9M Obama L-23 $2000
Compton Los Angeles $2M Andy L-17 $1000
Compton Los Angeles $2M Andy L-93 $500
Downtown Pittsburgh $9M DJ Snake L-17 $1000
bname → bcity,assets
loanId → amt,bname
R1(bname,bcity,assets,cname) R2(bname,loanId,amt)
bname bcity assets cname bname loanId amt
Downtown Pittsburgh $9M Andy Downtown L-17 $1000
Downtown Pittsburgh
Compton
$9M
Los Angeles $2M
Obama
Andy
⨝ Downtown
Compton
L-23
L-93
$2000
$500
Downtown Pittsburgh $9M DJ Snake
bname → bcity,assets
loanId → amt,bname
R1(bname,bcity,assets,cname) R2(bname,loanId,amt)
bname bcity assets cname bname loanId amt
Downtown Pittsburgh $9M Andy Downtown L-17 $1000
Downtown Pittsburgh
Compton
$9M
Los Angeles $2M
Obama
Andy
⨝ Downtown
Compton
L-23
L-93
$2000
$500
Downtown Pittsburgh $9M DJ Snake

bname bcity assets cname loanId amt


Downtown Pittsburgh $9M Andy L-17 $1000
Downtown Pittsburgh $9M Andy L-23 $2000
Downtown Pittsburgh $9M Obama L-17 $1000
Downtown Pittsburgh $9M Obama L-23 $2000
Compton Los Angeles $2M Andy L-93 $500
Downtown Pittsburgh $9M DJ Snake L-23 $1000
bname → bcity,assets
loanId → amt,bname
R1(bname,assets,cname,loanId) R2(loanId,bcity,amt)
bname assets cname loanId loanId bcity amt
Downtown $9M Andy L-17 L-17 Pittsburgh $1000
Downtown $9M
Compton $2M
Obama
Andy
L-23
L-93
⨝ L-23
L-93
Pittsburgh
Los Angeles
$2000
$500
Downtown $9M DJ Snake L-17
bname → bcity,assets
loanId → amt,bname
R1(bname,assets,cname,loanId) R2(loanId,bcity,amt)
bname assets cname loanId loanId bcity amt
Downtown $9M Andy L-17 L-17 Pittsburgh $1000
Downtown $9M
Compton $2M
Obama
Andy
L-23
L-93
⨝ L-23
L-93
Pittsburgh
Los Angeles
$2000
$500
Downtown $9M DJ Snake L-17

bname bcity assets cname loanId amt


Downtown Pittsburgh $9M Andy L-17 $1000
Downtown Pittsburgh $9M Obama L-23 $2000
Compton Los Angeles $2M Andy L-93 $500
Downtown Pittsburgh $9M DJ Snake L-17 $1000

R1(bname,assets,cname,loanId) R2(loanId,bcity,amt)
bname assets cname loanId loanId bcity amt
Downtown $9M Andy L-17 L-17 Pittsburgh $1000
Downtown $9M Obama L-23 L-23 Pittsburgh $2000
Compton $2M Andy L-93 L-93 Los Angeles $500
Downtown $9M DJ Snake L-17

bname → bcity,assets
loanId → amt,bname
R1(bname,assets,cname,loanId) R2(loanId,bcity,amt)
bname assets cname loanId loanId bcity amt
Downtown $9M Andy L-17 L-17 Pittsburgh $1000
Downtown $9M Obama L-23 L-23 Pittsburgh $2000
Compton $2M Andy L-93 L-93 Los Angeles $500
Downtown $9M DJ Snake L-17

bname → bcity,assets
loanId → amt,bname
R1(bname,assets,cname,loanId) R2(loanId,bcity,amt)
bname assets cname loanId loanId bcity amt
Downtown $9M Andy L-17 L-17 Pittsburgh $1000
Downtown $9M Obama L-23 L-23 Pittsburgh $2000
Compton $2M Andy L-93 L-93 Los Angeles $500
Downtown $9M DJ Snake L-17

bname → bcity,assets
loanId → amt,bname
R={R1,…,Rn} F
→ F+
→ G
F+ {R1,…,Rn}
→ G+
→ F+=G+ {R1,…,Rn}
R={R1,R2} R1(A,B,C) R2(C,D)
F = {A→B, AB→D, C→D}
F+ = {A→B,AB→D,A→D,C→D}
R={R1,R2} R1(A,B,C) R2(C,D)
F = {A→B, AB→D, C→D}
F+ = {A→B,AB→D,A→D,C→D}
G = {A→B} ∪ {C→D}
R={R1,R2} R1(A,B,C) R2(C,D)
F = {A→B, AB→D, C→D}
F+ = {A→B,AB→D,A→D,C→D}
G = {A→B} ∪ {C→D}
G+ = {A→B,C→D}
R={R1,R2} R1(A,B,C) R2(C,D)
(A→D)∈F+ F = {A→B, AB→D, C→D}
F+ = {A→B,AB→D,A→D,C→D}
G = {A→B} ∪ {C→D}
G+ = {A→B,C→D}
F+ ≠ G+ (A→D)∈(F+ - G+)
(A→D)∉G+
R={R1,R2} R1(A,B,D) R2(C,D)
F = {A→B, AB→D, C→D}
R={R1,R2} R1(A,B,D) R2(C,D)
F = {A→B, AB→D, C→D}
F+ = {A→B, AB→D, A→D, C→D}
G = {A→B, A→D, AB→D} ∪ {C→D}
G+ = {A→B, AB→D, A→D, C→D}
F+ = G+
X→Y
X


R=(R1∪ R2) (R1 ∩ R2)→R1
(R1∩ R2)→R2

→ R=(R1 ∪ … ∪ Rn)

R1
R=F



1

2

00 2
01

10

11
2

→ std::hash
std::mutex
Page

→ LRUReplacer

Page
Page6 Page0

Page2 Page1
Page2
→ Page4




You might also like