1 / 72

Chuaån hoùa CSDL

Chuaån hoùa CSDL. Caùc vaán ñeà trong caùc baûng quan heä Ví duï 1 :. part. warehouse. quantity. Inventory. warehouse-address. Chuaån hoùa CSDL. Caùc vaán ñeà trong caùc baûng quan heä. Inventory. part warehouse quantity warehouse-address. bolt King Bros. 20 Long St. 20

greg
Download Presentation

Chuaån hoùa CSDL

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Chuaån hoùa CSDL Caùc vaán ñeà trong caùc baûng quan heä Ví duï 1: part warehouse quantity Inventory warehouse-address

  2. Chuaån hoùa CSDL Caùc vaán ñeà trong caùc baûng quan heä Inventory part warehouse quantity warehouse-address bolt King Bros.20 Long St. 20 nut King Bros.40Long St. 20 screw King Bros. 10 Long St. 20 NULL Lucid Ltd. NULL Compton Pl. 10

  3. Chuaån hoùa CSDL Caùc vaán ñeà trong caùc baûng quan heä INVENTORY table • Ñòa chæ nhaø kho laäp laïi trong nhieàu boä chöùa maët haøng coù taïi nhaø kho ñoù • Neáu ñòa chæ moät nhaø kho thay ñoåi, caùc boä löu caùc maët haøng chöùa trong nhaø kho naøy ñeàu phaûi thay ñoåi theo • Neáu coù thôøi ñieåm naøo ñoù moät nhaø kho khoâng coù maët haøng naøo thì khoâng coù boä ñeå löu ñòa chæ nhaø kho, hoaëc caàn phaûi coù 1 boä maø thuoäc tính veà maët haøng vaø soá löôïng phaûi NULL

  4. Chuaån hoùa CSDL Caùc vaán ñeà trong caùc baûng quan heä Ví duï 2: Institution Employee Department Location Peter ITACS 15.101 Paul ITACS 15.101 KateITACS 15.104 Mike Math 10.001 Jane Math 10.008 NULL Physics 15.78

  5. Chuaån hoùa CSDL Caùc vaán ñeà trong caùc baûng quan heä Institution table • Vò trí cuûa phoøng ban laäp laïi trong moïi boä chöùa nhaân vieân cuûa phoøng ban ñoù • Neáu vò trí phoøng ban thay ñoåi thì moïi boä löu nhaân vieân cuûa phoøng ban ñoù phaûi ñöôïc caäp nhaät • Neáu moät phoøng ban chöa coù nhaân vieân thì khoâng coù boä ñeå löu vò trí cuûa phoøng ban hoaëc coù boä maø moät soá thuoäc tính phaûi laø NULL

  6. Chuaån hoùa CSDL Caùc vaán ñeà trong caùc baûng quan heä Ví duï 3: Insertion test Employee emp# car child 100 TRS200 John 100 TRS200 Kate 100 SWG100 John 100 SWG100 Kate 100 ??? Peter

  7. Chuaån hoùa CSDL Caùc vaán ñeà trong caùc baûng quan heä • Employee table • Vieäc ñaêng kyù soá xe phaûi ñöôïc laäp laïi cho töøng ngöôøi con • Teân cuûa moät ngöôøi con caàn ñöôïc laäp laïi vôùi moãi soá ñaêng kyù xe (buøng noå soá boä !) • Do söï dö thöøa döõ lieäu, döõ lieäu coù theå trôû neân maát tính nhaát quaùn • Neáu 1 ngöôøi khoâng coù con (hoaëc xe) thì trò thuoäc tính con (hoaëc xe) caàn phaûi ñeå NULL

  8. Chuaån hoùa CSDL Caùc vaán ñeà trong caùc baûng quan heä Ví duï 4: Keát 2 baûng thoâng qua thuoäc tínhcity Supplier Company s# sname salary city 10 Peter 100K Paris 20 Joan 120K Rome cname city Golden Bolts Paris Red Nuts Rome Green Tomatoes Rome

  9. Chuaån hoùa CSDL Caùc vaán ñeà trong caùc baûng quan heä Nhaø cung caáp 'Peter' soáng vaø laøm vieäc cho moät coâng ty ôû 'Paris‘. Nhaø cung caáp 'Joan' soáng taïi 'Rome' vaø laøm vieäc cho coâng ty 'Green Tomatoes' nhöng khoâng laøm vieäc cho coâng ty ‘Red Nuts' Supplier JOIN Company s# sname salary city cname 10 Peter 100K Paris Golden Bolts 20 Joan 120K Rome Red Nuts 20 Joan 120K Rome Green Tomatoes ?

  10. Chuaån hoùa CSDL Caùc vaán ñeà trong caùc baûng quan heä Baûng Supplier vaø Company • Keát 2 baûng thoâng qua thuoäc tínhcity coù theå sinh ra caùc boä bieåu dieãn thoâng tin sai Supplier JOIN Company s# sname salary city cname 10 Peter 100K Paris Golden Bolts 20 Joan 120K Rome Red Nuts 20 Joan 120K Rome Green Tomatoes

  11. Chuaån hoùa CSDL Söï baát thöôøng cuûa pheùp caäp nhaät (Update anomalies) Söï baát thöôøng cuûa pheùp theâm vaøo (Insertion anomaly) Employee • Vieäc theâm 1 haøng keùo theo vieäc theâm caùc haøng khaùc (vaán ñeà buøng noå soá haøng) • Vieäc theâm 1 haøng taïo ra moät soá thuoäc tính NULL emp# car child 100 TRS200 John 100 TRS200 Kate 100 SWG100 John 100 SWG100 Kate 100 ??? Peter

  12. Chuaån hoùa CSDL Söï baát thöôøng cuûa pheùp caäp nhaät Söï baát thöôøng cuûa pheùp loaïi boû (Deletion anomaly) Institution • Vieäc loaïi moät haøng daãn ñeán vieäc maát thoâng tin • Vieäc xoùa boû 1 thoâng tin daãn ñeán vieäc loaïi nhieàu hôn 1 haøng Employee Department Location Peter ITACS 15.101 Paul ITACS 15.101 Kate ITACS 15.104 Mike Math 10.001 Jane Math 10.008

  13. Chuaån hoùa CSDL Söï baát thöôøng cuûa pheùp caäp nhaät Söï baát thöôøng cuûa pheùp söûa ñoåi (Modification anomaly) Employee emp# car child • Vieäc söûa ñoåi moät haøng ñoøi hoûi vieäc söûa ñoåi ôû caû moät soá haøng khaùc 100 TRS200 John 100 TRS200 Kate 100 SWG100 John 100 SWG100 Kate

  14. Chuaån hoùa CSDL Nguyeân taéc chæ ñaïo trong thieát keá CSDL • Thieát keá caùc baûng quan heä sao cho vieäc giaûi thích yù nghóa cuûa noù ñöôïc deã daøng. Khoâng keát hôïp nhieàu thuoäc tính khoâng lieân quan trong cuøng moät baûng • Thieát keá caùc baûng quan heä sao cho traùnh ñöôïc nhöõng söï baát thöôøng trong vieäc theâm, bôùt hay söûa ñoåi caùc boä • Thieát keá caùc baûng quan heä sao cho soá thuoäc tính coù theå NULL laø toái thieåu

  15. Chuaån hoùa CSDL Nguyeân taéc chæ ñaïo trong thieát keá CSDL • Thieát keá caùc baûng quan heä sao cho chuùng coù theå ñöôïc keát bôûi caùc ñieàu kieän baèng nhau treân caùc thuoäc tính khoùa chính hoaëc khoùa ngoaïi, maø khoâng sinh ra caùc boä khoâng coù trong thöïc teá

  16. Chuaån hoùa CSDL Phuï thuoäc haøm (Functional dependency-FD) Cho löôïc ñoà quan heä R = ( A1, ..., An) vaø 2 taäp X, Y khaùc roãng laø 2 taäp con cuûa taäp thuoäc tính cuûa R. FD X -> Y (ñoïc laø: "X xaùc ñònh haøm Y" ) laø ñuùng trong R neáu, vôùi moïi theå hieän r cuûa R, khoâng coù hai haøng coù truøng caùc trò treân taäp thuoäc tính X maø coù trò khaùc nhau treân moät hoaëc hôn caùc thuoäc tính trong taäp Y

  17. Chuaån hoùa CSDL Phuï thuoäc haøm Ví duï: EMPLOYEE( e#,ename, dept_name, dept_addr, class ) Vôùi X = { dept_name }, Y= { dept_addr }, thì FD X -> Y laø ñuùng trong EMPLOYEE Teân phoøng ban xaùc ñònh haøm ñòa chæ cuûa phoøng ban, hoaëc, 1 phoøng ban coù duy nhaát 1 ñòa chæ

  18. Chuaån hoùa CSDL • Phuï thuoäc haøm Employee e# ename dept_name dept_addr class 10Peter Math G16 2nd 20Joan CS G15 1st 30Mike CS G15 1st 40Kate CS G15 1st 50 Peter Law G20 2nd 60 Albert Physics G20 1st e# -> ename

  19. Chuaån hoùa CSDL • Phuï thuoäc haøm Employee e# ename dept_name dept_addr class 10 Peter Math G16 2nd 20 Joan CS G15 1st 30 Mike CS G15 1st 40 Kate CS G15 1st 50 Peter Law G20 2nd 60 Albert Physics G20 1st e# -> dept_name

  20. Chuaån hoùa CSDL • Phuï thuoäc haøm Employee e# ename dept_name dept_addr class 10 Peter Math G16 2nd 20 Joan CS G15 1st 30 Mike CSG15 1st 40 Kate CS G15 1st 50 Peter Law G20 2nd 60 Albert Physics G20 1st e# -> dept_addr

  21. Chuaån hoùa CSDL • Phuï thuoäc haøm Employee e# ename dept_name dept_addr class 10 Peter Math G16 2nd 20 Joan CS G15 1st 30 Mike CS G15 1st 40 Kate CS G15 1st 50 Peter Law G20 2nd 60 Albert Physics G20 1st e# -> class

  22. Chuaån hoùa CSDL • Phuï thuoäc haøm Employee e# ename dept_name dept_addr class 10 Peter Math G16 2nd 20 Joan CS G15 1st 30 Mike CS G15 1st 40 Kate CS G15 1st 50 Peter Law G20 2nd 60 Albert Physics G20 1st dept_name -> class

  23. Chuaån hoùa CSDL • Phuï thuoäc haøm Employee e# ename dept_name dept_addr class 10 Peter Math G16 2nd 20 Joan CS G15 1st 30 Mike CS G15 1st 40 Kate CS G15 1st 50 Peter Law G20 2nd 60 Albert Physics G20 1st e# -> ename, e# -> dept_name, e# -> dept_addr, e# -> class, minimal key -> any other attribute

  24. Chuaån hoùa CSDL • Phuï thuoäc haøm Employee e# ename dept_name dept_addr class 10Peter Math G16 2nd 50 Peter Law G20 2nd 20 Joan CS G15 1st 30 Mike CS G15 1st 40 Kate CS G15 1st 60 Albert Physics G20 1st e# -> ename, but ename -/> e# e# -> dept_name, but dept_name -/> e# e# -> dept_addr, e# -> class, dept_name -> class

  25. Chuaån hoùa CSDL Phuï thuoäc haøm • Chuù yù raèng: • e# -> e# • class -> class • e#, ename -> ename • if (e# -> ename) then (e#, dept_name -> ename) • if (e# -> ename) and (e# -> dept_name) and (e# -> dept_addr) then e# -> ename,dept_name,dept_address • if (e# -> dept_name) and (dept_name -> class) then e# -> class

  26. Chuaån hoùa CSDL Tieân ñeà Armstrong • If X ÊY then X -> Y (reflexivity) • If X -> Y then XZ -> YZ (augmentation) • If X -> Y and Y -> Z then X -> Z (transitivity) Taäp tieân ñeà ñaày ñuû vaø toái tieåu

  27. Chuaån hoùa CSDL Caùc quy taéc boå sung • If X -> Y and X -> Z then X ->YZ (union) • If X -> Y and WY -> Z then WX ->Z (pseudotransitivity) • If X -> Y and YÊZ then X -> Z (decomposition)

  28. Chuaån hoùa CSDL Daãn xuaát töø caùc phuï thuoäc haøm Ví duï: Given F = {A->B, B->C}, is it true that A->C ? A -> B & B -> C A -> C transitivity axiom

  29. Chuaån hoùa CSDL Daãn xuaát töø caùc phuï thuoäc haøm Ví duï: Given F = {A->BC}, is it true that A->B and A->C ? BC-> B A->BC & BC-> B A-> B Töông töï, suy raA->C reflexivity axiom transitivity axiom

  30. Chuaån hoùa CSDL Daãn xuaát töø caùc phuï thuoäc haøm Ví duï: Given F = {A->B, A ->C}, is it true that A->BC? A->B A->C A->AB & AB->BC A->BC augmentation axiom augmentation axiom transitivity axiom

  31. Chuaån hoùa CSDL Daãn xuaát töø caùc phuï thuoäc haøm Ví duï: Given F = {A->B}, is it true that AC->B? AC->A AC->A & A->B AC->B reflexivity axiom transistivity axiom

  32. Chuaån hoùa CSDL • FD vs. entity sid# Student name address language sid# -> name sid# -> address sid# -/> language name ? sid# name ? address

  33. Chuaån hoùa CSDL • FD vs. relationship building# cname title dname manages Chairperson Department dname -> building# dname -> cname cname -> dname cname -> title dname -> title cname -> building# dname, cname -> building#, title

  34. Chuaån hoùa CSDL • Functional dependency vs. relationship e# ename budget cdate title Employee works-on Project e# -> ename title -> budget title -> cdate e# -> title e# -> ename, title e# -> budget e# -> cdate

  35. Chuaån hoùa CSDL Daïng chuaån 1 (First Normal Form - 1NF) Löôïc ñoà quan heä ñaït daïng chuaån 1 neáu moïi haøng trong baûng quan heä töông öùng coù cuøng soá thuoäc tính vaø chæ chöùa caùc trò nguyeân toá, coù nghóa laø khoâng coù söï laäp laïi caùc thuoäc tính vaø caùc nhoùm trò Ví duï 1ï: löôïc ñoà quan heä sau khoâng ñaït daïng chuaån 1 Family person_name children cars Peter { Mike Joan}, {PPP777} Paul {} { KGN004, MN3345}

  36. Chuaån hoùa CSDL Khoùa (Keys) • Sieâu khoùa (Superkey) Sieâu khoùa laø moät taäp con khaùc roãng caùc thuoäc tính cuûa löôïc ñoà quan heä R sao cho vôùi baát kyø 2 boä t1, t2 trong baûng quan heä ñònh nghóa treân R thì t1 [X] ¹ t2 [X] Löu yù raèng khi X laø sieâu khoùa trong R thì X xaùc ñònh haøm moïi thuoäc tính cuûa R: X -> R • Khoùa toái tieåu (Minimal key) Khoùa toái tieåu K laø sieâu khoùa keøm theâm tính chaát laø neáu loaïi khoûi K baát kyø thuoäc tính naøo cuõng laøm cho K khoâng coøn laø sieâu khoùa

  37. Chuaån hoùa CSDL Khoùa • Khoùa chính (Primary key) Khoùa chính laø moät khoùa toái tieåu ñöôïc ngöôøi phaân tích choïn ñeå caøi ñaët • Khoùa döï tuyeån (Candidate key) Caùc khoùa döï tuyeån laø caùc khoùa toái tieåu khaùc maø khoâng phaûi laø khoùa chính

  38. Chuaån hoùa CSDL Thuoäc tính • Thuoäc tính nguyeân toá (Prime attribute) Thuoäc tính nguyeân toá laø moät thuoäc tính cuûa löôïc ñoà quan heä R maø laø thaønh phaàn cuûa ít nhaát moät khoùa döï tuyeån • Thuoäc tính khoâng nguyeân toá (Nonprime attribute) Thuoäc tính khoâng nguyeân toá laø thuoäc tính khoâng phaûi laø thuoäc tính nguyeân toá

  39. Chuaån hoùa CSDL Phuï thuoäc haøm ñaày ñuû (full FD) vaø phuï thuoäc haøm rieâng phaàn (partial FD) • Phuï thuoäc haøm ñaày ñuû Phuï thuoäc haøm ñaày ñuû laø phuï thuoäc haøm X -> Y maø neáu loaïi baát kyø thuoäc tính A naøo trong X thì (X-A) not-> Y • Phuï thuoäc haøm rieâng phaàn Phuï thuoäc haøm rieâng phaàn laø phuï thuoäc haøm maø khoâng phaûi laø phuï thuoäc haøm ñaày ñuû

  40. Chuaån hoùa CSDL Daïng chuaån 2 (Second Normal Form -2NF) Löôïc ñoà quan heä ñaït daïng chuaån 2 neáu moïi thuoäc tính khoâng nguyeân toá A trong Rphuï thuoäc haøm ñaày ñuû vaøo khoùa chính cuûa R Ví duï 2: FD: warehouse -> warehouse-address Inventory part, warehouse -> quantity part warehousequantitywarehouse-address bolt King Bros. 20 Long St. 20 nut King Bros. 40 Long St. 20 screw King Bros. 10 Long St. 20 NULL Lucid Ltd. NULL Compton Pl. 10

  41. Chuaån hoùa CSDL Daïng chuaån 2 INVENTORY (part, warehouse, quantity, warehouse-address) F= { part, warehouse -> quantity, warehouse -> warehouse-address } Khoùa : ??? Vì warehouse -> warehouse-address, • part, warehouse -> warehouse-address Khoùa :part, warehouse INVENTORY khoâng ñaït 2NF vì coù warehouse-address (thuoäc tính khoâng nguyeân toá) khoâng phuï thuoäc ñaày ñuû vaøo khoùa

  42. Chuaån hoùa CSDL Daïng chuaån 2 Löôïc ñoà INVENTORY neân ñöôïc phaân raõ thaønh caùc löôïc ñoà sau: P ( part, warehouse, quantity ) F = { part, warehouse -> quantity } Khoùa: part, warehouse W ( warehouse, warehouse-address ) F = { warehouse -> warehouse-address } Khoùa: warehouse 2NF 2NF

  43. Chuaån hoùa CSDL Phuï thuoäc haøm baéc caàu (Transitive FD) Phuï thuoäc haøm X -> Y ñuùng trong R laø baéc caàu neáu toàn taïi taäp con khaùc roãng Z cuûa R, Zø khoâng phaûi laø taäp con cuûa moät khoùa naøo trong R, vaø caùc phuï thuoäc haøm X->Z vaø Z->Y laø ñuùng trong R Ñoïc laø: “Y phuï thuoäc baéc caàu vaøo X trong löôïc ñoà R” neáu X->Y laø ñuùng trong R vaø X->Y laø phuï thuoäc haøm baéc caàu

  44. Chuaån hoùa CSDL Daïng chuaån 3 (Third Normal Form -3NF) Löôïc ñoà quan heä R ñaït daïng chuaån 3 neáu R ñaït daïng chuaån 2 vaø khoâng coù moät thuoäc tính khoâng nguyeân toá naøo cuûa R phuï thuoäc baéc caàu vaøo khoùa chính cuûa R Ñònh nghóa khaùc: Löôïc ñoà quan heä R ñaït 3NF neáu vôùi moïi FD X -> A ñuùng trong R thì: (i) X laø sieâu khoùa trong R, hoaëc (ii) A laø thuoäc tính nguyeân toá trong R

  45. Chuaån hoùa CSDL Daïng chuaån 3 Ví duï 3: SUPPLIER ( s#, sname, cname, city ) F= { s# -> sname, s# -> cname, cname -> city, s# -> city } Khoùa :s# Löôïc ñoà SUPPLIER khoâng ñaït 3NF vì thuoäc tính city phuï thuoäc baéc caàu vaøo s# 2NF

  46. Chuaån hoùa CSDL Daïng chuaån 3 Löôïc ñoà SUPPLIER neân ñöôïc phaân raõ thaønh caùc löôïc ñoà sau: S ( s#, sname, cname ) F= { s# -> sname, s# -> cname } Khoùa :s# C ( cname, city ) F= { cname -> city } Khoùa :cname 3NF 3NF

  47. Chuaån hoùa CSDL Daïng chuaån 3 Ví duï 4: LOCATION ( city, street, zip-code ) F = { city, street -> zip-code, zip-code -> city Khoùa1 : city, street Khoùa2 : street, zip-code Löôïc ñoà LOCATION ñaït 3NF vì thuoäc tính city ôû veá phaûi cuûa FDzip-code -> city laø thuoäc tính nguyeân toá

  48. Chuaån hoùa CSDL Daïng chuaån 3 LOCATION ( city, street, zip-code ) Location Vaán ñeà coøn toàn taïi: Söï laëp laïi cuûa <LA ... 473> vaø <NY ... 484>, bò raøng buoäc bôûi FD: zip-code -> city laø dö thöøa trong baûng LOCATION city street zip-code NY55th484 NY 56th484 LA55th 473 LA56th473 LA 57th 474

  49. Chuaån hoùa CSDL Daïng chuaån Boyce-Codd (Boyce-Codd Normal Form - BCNF) Löôïc ñoà quan heä R ñaït BCNF neáu vôùi moïi FDX->A ñuùng trong R thì X laø sieâu khoùa trong R

  50. Chuaån hoùa CSDL Daïng chuaån Boyce-Codd Ví duï 5:SCL ( student, course, lecturer) F= { student, course -> lecturer, lecturer -> course } Khoùa1 : student, course; Khoùa2: student, lecturer Löôïc ñoà quan heä SCL khoâng ñaït BCNF vì thuoäc tính lecturer khoâng laø sieâu khoùa Löôïc ñoà quan heä SCL ñaït 3NF vì thuoäc tính course ôû veá phaûi cuûa FD student, course -> lecturer laøthuoäc tính nguyeân toá

More Related