Bài giảng Thiết kế cơ sở dữ liệu - ThS. Trần Sơn Hải

pdf 154 trang phuongnguyen 5650
Bạn đang xem 20 trang mẫu của tài liệu "Bài giảng Thiết kế cơ sở dữ liệu - ThS. Trần Sơn Hải", để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên

Tài liệu đính kèm:

  • pdfbai_giang_thiet_ke_co_so_du_lieu_ths_tran_son_hai.pdf

Nội dung text: Bài giảng Thiết kế cơ sở dữ liệu - ThS. Trần Sơn Hải

  1. THI T K CƠ S D LI U GVHD: ThS. Tr n S ơn H i Email: transonhai@hcmup.edu.vn Ni dung Ch ươ ng 1 : T ng quan các h thông tin và cơ s d li u Ch ươ ng 2 : H qu n tr cơ s d li u SQL Server Ch ươ ng 3 : T ng quan quá trình thi t k CSDL Ch ươ ng 4 : Lý thuy t mô hình CSDL quan h Ch ươ ng 5 : Thi t k CSDL mc quan ni m Ch ươ ng 6 : Thi t k CSDL mc lô-gíc Ch ươ ng 7 : Thi t k CSDL mc v t lý Báo Cáo và Ôn T p 2
  2. 1. Tài Li u Tham Kh o Thomas M. Connolly, Carolyn E. Begg, A Practical Approach to Design, Implementation, and Management, Addion-Wesley, 1999. J. Ullman, Database and knowledge base systems,Vol 1. Computer Science Press, 1988 Ramez Elmasri, Shamkant B. Navathe , Fundamentals of database systems, Addison Wesley - 4th edition, 2003 Joseph M. Hellerstein, Michael Stonebraker, Readings in Database Systems. Fourth Edition, MIT Press, 2005 3 Ch ươ ng 1 : T ng quan các h thông tin và cơ s d li u 4
  3. 3. Cơ s d li u (1) ðnh ngh ĩa: Cơ s d li u là mt h th ng các thông tin có cu trúc, ñưc lưu tr trên các thi t b lưu tr nh m th a mãn yêu cu khai thác thông tin ñng th i ca nhi u ng ưi s dng hay nhi u ch ươ ng trình ng dng vi nh ng mc ñích khác nhau ðH S ư ph m TPHCM 5 5 3. Cơ s d li u (2) Ưu ñim:  Gi m trùng lp thông tin xu ng mc th p nh t, ñm bo tính nh t quán và toàn vn d li u.  ðm bo d li u ñưc truy xu t theo nhi u cách khác nhau.  Kh năng chia s thông tin cho nhi u ng ưi, nhi u ng dng khác nhau. ðH S ư ph m TPHCM 6 6
  4. 3. Cơ s d li u Nh ng vn ñ cn gi i quy t:  Tính ch quy n d li u.  Tính bo mt và quy n khai thác thông tin ca ng ưi s dng  Tranh ch p d li u  ðm bo d li u khi có s c ðH S ư ph m TPHCM 7 7 5. H qu n tr cơ s d li u (1)  H qu n tr cơ s d li u (DBMS – DataBase Management System) là h th ng các ph n mm h tr tích cc cho các nhà phân tích, thi t k và khai thác CSDL.  Các DBMS thông dng: Visual FoxPro, Microsoft Access, SQL Server, DB2, Oracle hu ht các DBMS hi n nay ñu da trên mô hình quan h. ðH S ư ph m TPHCM 8 8
  5. 5. H qu n tr cơ s d li u (2)  Mt DBMS ph i có:  Ngôn ng giao ti p gi a ng ưi s dng và CSDL  T ñin d li u (Data Dictionary)  Có bi n pháp bo mt khi có yêu cu  Cơ ch gi i quy t tranh ch p d li u  Có cơ ch sao lưu (backup), ph c hi (restore)  ðm bo tính ñc lp gi a d li u và ch ươ ng trình ðH S ư ph m TPHCM 9 9 5. H qu n tr cơ s d li u (3) Ngôn ng giao ti p:  Ngôn ng mô t d li u (DDL – Data Definition Language ): cho phép khai báo cu trúc CSDL, các mi liên h ca d li u, các quy ñnh, ràng bu c d li u.  Ngôn ng thao tác d li u (DML – Data Manipulation Language ): cho phép th c hi n thao tác thêm, xóa, sa d li u.  Ngôn ng truy vn có cu trúc (SQL – Structured Query Language ): cho phép ng ưi khai thác s dng ñ truy vn thông tin cn thi t.  Ngôn ng qu n lý d li u (DCL – Data Control Language ) cho phép thay ñi cu trúc bng, khai báo bo mt, cp quy n cho ng ưi s dng. ðH S ư ph m TPHCM 10 10
  6. Các Thành Ph n Liên Quan B ph n qu n lý tp tin  .mdf : meta data file  .ldf : log data file  .bak : bakup data file B ph n qu n lý ñĩa B ph n qu n lý d li u vt lý 11 T Ch c Vt Lý trên SQL Server D li u trong CSDL ñưc t ch c thành các thành ph n (Component) logic cho user s dng nh ư: Table, View . D li u vt lý có th lưu trên nhi u file hay th m chí nhi u ñĩa. Ng ưi dùng (tr các DBA) ch làm vi c trên các thành ph n logic ca SQL Server. 12
  7. Ki n trúc ca SQL Server 13 Ki n trúc ca SQL Server • Các database h th ng ca SQL Server – master Database ch a thông tin v cu hình, ph n quy n ca h th ng – tempdb Database ch a d li u tm cn lưu tr – model Database ch a database mu ñ to mt database mi – msdb Database ñ h tr SQL Server Agent 14
  8. Ki n trúc ca SQL Server 15 H th ng 16 Mt t p h p các thành ph n liên k t v i nhau, th hi n qua mt ph m vi (boundary) xác ñnh, ho t ñng k t h p v i nhau nh m ñt ñn nh ng m c ñích xác ñnh. ðu vào Thành phn Phm vi Giao din Liên h gia các ðu ra thành phn 16
  9. Các ñc ñim c a h th ng 17 Thành ph n (component) ðu vào Liên h gi a các thành ph n Thành phn Ranh gi i (boundary) Phm Mc ñích (purpose) vi Môi tr ưng (environment) Giao di n (interface) ðu vào (input) ðu ra (output) Giao Liên h ðu ra Ràng bu c (constraints)t din gia các thành phn 17 H th ng – Ví d 18 Xem c a hàng bán n ưc gi i khát nh ư m t h th ng: Môi tr ưng : khách hàng, nhà cung c p, ngân hàng, ðu vào: ðu ra : Nưc gi i Kho Nưc gi i khát, khát, ti n m t, Phòng ti n m t, lao ñng, bán bng giá, tài s n, Văn phòng hàng hóa ñơ n, . Ranh gi i 18
  10. H th ng thông tin 19 Thông tin: khái ni m ph n ánh s hi u bi t c a con ng ưi v mt ñi t ưng DD liliuu SSnn xuxu tt thth ngng tintin ThôngThông tintin DD liliuu nhnh pp hànghàng BáoBáo cáocáo tt nn LLpp báobáo cáocáo tt nn khokho khokho DD liliuu xuxu tt hànghàng 19 H th ng và HTTT 20 H th ng g n li n v i m t t ch c c th nh m ñiu hành t ch c m t cách t t nh t. Hai y u t quan tâm: T ch c: cơ quan hành chính, trưng h c, doanh nghi p, Môi tr ưng c a t ch c: Các c ơ quan hành chính khác mà cơ quan cn làm vi c chung ho c h th ng lu t ph i tuân theo. T ch c kinh t : ngân hàng, khách hàng, nhà cung ng, h th ng lu t kinh doanh, 20
  11. Câu h i th o lu n H th ng thông tin là gì? Vai trò c a CSDL trong h th ng thông tin. Phân bi t d li u, thông tin và tri th c? ð xu t m t quy trình thi t k cơ s d li u. 21 Tóm l i Khái ni m c ơ s d li u Mc tiêu c a các h CSDL Ki n trúc và ch c n ăng c a m t h CSDL Vai trò c ơ s d li u trong các h th ng thông tin 22
  12. Ch ươ ng 2 : H qu n tr cơ s d li u SQL Server 1 of 100
  13. GI I THI U T NG QUAN V SQL SERVER I.I. T Tngng quan quan : : 1. SQL SerVer la øø mt h qu n tr CSDL quan h A. Cơ S D Li u Quan H :  D li u ñư c t ch c lưu tr tha øønh tng bng  Mt bng du øøng ñ lưu tr thoâng tin ca mt ñi tưng ngoa øøi th gi i th c  Mt bng ñư c to t do øøng va øø ct 2 of 100 TTngng Quan Quan : : (tt)(tt)  CCtt: :DuøngDu øøng ññ llưưuutr tr thuthu cct tínhính c caa ññiit tưưngng  MMttb bngngph ph iico coùùù to toáiáái thi thi uum mttc ct,Tht,Th tt cctt khôngkhôngquan quantr tr ngng  MMttco coätäät co coùùù ba bathu thu cct tínhính c cơơ bbnn  ColumnColumn NameName ::TeânnTeânn c ct,trongt,trongm mtt bbngngkhoâng khoângth th cocoùùù hai haico coätäät tru truøngøøng teân teân  DataData TypeType ::KiKi uud d lili uu  LengthLength ::chichi uuda daøiøøi c caad d lili uu 3 of 100
  14. Tng Quan(tt)  DoøngDoøng :t :tpp h hpp d d lili uu c caa nhi nhi uu c ctt  TrongTrong m mtt b bngng khoâng khoâng theå theå coù coù hai hai doøngdoøng truøng truøng thoâng thoâng tin tin  MoätMoät doøng doøng cho cho bieát bieát thoâng thoâng tin tin cuïcuï theå theå cuûacuûa moät moät ñoái ñoái töôïng töôïng löu löu tröõ tröõ trong trong baûngbaûng  MMtt b bngng coù coù th th khoângkhoâng coù coù doøng doøng naøonaøo 4 of 100 Tng Quan(tt)  KhoaKhoaùùù Ch Chínhính (Primary (Primary Key)Key) ::  TTpph hppc caam mtthay hay nhi nhi uuc ctttrong trongb bngng  DD lili uut tiic cttnaøyna øøy kha khaùcùùc r rngng  DD lili uut tiic cttna naøyøøy la laøøø duy duynh nh tttrong trongb bngng 5 of 100
  15. Tng Quan (tt)  KhoaKhoaùùù ngo ngo ii(Foreign (Foreign Key)Key) ::  TTpph hppc caam mtthay hay nhi nhi uuc ctttrong trong bbng,mang,maøøø ca caùcùùc co coätäät na naøyøøy la laøøø khoa khoaùùù ch chínhính c caab bngng khakhaùcùùc  DD lili uut tiica caùcùùc c cttna naøyøøy ho ho ccr rng,hong,ho ccph ph ii llyyt t bbngngma maøøø c cttla laømøøm khoa khoaùùù ch chínhính 6 of 100 Tng Quan(tt ) B.HB.H QuQu nnTr Tr CSDLCSDL QuanQuanH H ::  LaLaøøø La Laøøø m mtth h thth ngngca caùcùùc ch ch ươươ ngngtr trìnhình co coùùù cacaùcùùc ch ch ccn năăngng  TToova vaøøø qu qu nnly lyùùù m mttCSDL CSDL QuanQuanh h  khaikhaitha thaùcùùc M MttCSDL CSDL QuanQuanh h  BBoom mttM MttCSDL CSDL QuanQuanh h  TToob bngngsao sao(Backup) (Backup) MMttCSDL CSDL QuanQuanh h  PhPh cch hI(RestoreI(Restore)) MMttCSDL CSDL QuanQuanh h  SQLSQL ServerServer lalaøøø m mtth h ququ nntr tr CSDLCSDL QuanQuanh h 7 of 100
  16. Caùc heä thoáng SQL Server Heä Thoáng SQL Server coù theå trieån khai cho moät heä thoáng kieåu Client-Server hoaëc trieån khai cho moät heä thoáng maùy ñôn Heä thoáng ñöôïc trieån khai phuï thuoäc vaøo soá ngöôøi truy caäp ñoàng thôøi ñeán CSDL ñeå thöïc hieän moät coâng vieäc 8 of 100 Caùc heä thoáng SQL Server  Trong moâ hình Client- Server ta coù theå trieån khai theo moâ hình 2 lôùp hoaëc 3 lôùp 9 of 100
  17. Caùc heä thoáng SQL Server 10 of 100 Caøi ðt SQL Server A.YeâuA.Yeâuc cuuph ph nnc cngng: : Ph n cng Yêu cu CPU T Pentium 166 MHz tr lên RAM T 64MB tr lên ðĩa cng Còn tr ng 100MB tr lên Màn hình VGA có ñ phân gi i 800X600 tr lên 11 of 100
  18. Caøi ðt SQL Server A.YeâuA.Yeâuc cuuph ph nnM Mmm:: Phiên bn SQL H ñiu Hành Server Enterprise Edition Microsoft Windows Standard Edition Server(nt,2000,Xp Server) Personal Edition Coù th ch y treân tt c caùc h ñiu haønh 12 of 100 Caøi ñt Personal Edition SQL Server 1.1. ðưðư aañó ñóaa CD CD chchöôngöông tr trìnhình va vaøoøøo , ,maønma øøn h hìnhình sau sauxua xuaátáát hiehieänään Choïn 13 of 100
  19. Caøi ñaët Personal Edition SQL Server(tt) 2.Ma2.Maønøøn hhìnhình sau sauxua xuaátáát hie hieänään Choïn 14 of 100 Caøi ñaët Personal Edition SQL Server(tt) 3.Ma3.Maønøøn hhìnhình sau sauxua xuaátáát hie hieänään Choïn 15 of 100
  20. Caøi ñaët Personal Edition SQL Server(tt) 4.Ma4.Maønøøn hhìnhình sau sauxua xuaátáát hie hieänään Choïn 16 of 100 Caøi ñaët Personal Edition SQL Server(tt) 5.Ma5.Maønøøn hhìnhình sau sauxua xuaátáát hie hieänään Choïn 17 of 100
  21. Caøi ñaët Personal Edition SQL Server(tt) 6.Ma6.Maønøøn hhìnhình sau sauxua xuaátáát hie hieänään Nhaäp vaøo teân ngöôøi duøng 18 of 100 Caøi ñaët Personal Edition SQL Server(tt) 7.Ma7.Maønøøn hhìnhình ca caûnhûûnh ba baùoùùo xua xuaátáát hie hieän,choïnään,cho ïïn yes yes 19 of 100
  22. Caøi ñaët Personal Edition SQL Server(tt) 8.Ma8.Maønøøn hhìnhình ñ ñaêngaêng nha nhaäpääp xua xuaátáát hie hieänään , ,nhaäpnha ääp va vaøoøøo CD CD KeyKey 20 of 100 Caøi ñaët Personal Edition SQL Server(tt) 9.Cho9.Choïnïïn kiekieåuååu ca caøiøøi ñ ñaëtaëët Choïn 21 of 100
  23. Caøi ñaët Personal Edition SQL Server(tt) 10.Cho10.Choïnïïn DaDaïngïïng ca caøiøøi ñ ñaëtaëët 22 of 100 Caøi ñaët Personal Edition SQL Server(tt) 11.Cho11.Choïnïïn kie kieåuååu ñ ñaêngaêng nha nhaäpääp va vaøoøøo SQL SQL ServerServer 23 of 100
  24. Caøi ñaët Personal Edition SQL Server(tt) 12.Cho12.Choïnïïn kie kieåuååu ñ ñaêngaêng nha nhaäpääp va vaøoøøo SQL SQL ServerServer 24 of 100 Caøi ñaët Personal Edition SQL Server(tt)  NhaNhaápááp Next Next ññeåeåå ch chöôngöông tr trìnhình ca caøiøøi ñ ñaëtaëët va vaøoøøo ma maùyùùy  SauSaukhi khica caøiøøi ñ ñaëtaëët xong,khô xong,khôûiûûi ñ ñoängoääng la laïiïïi ma maùy,ùùy, sausau khikhikhô khôûiûûi ñ ñoängoääng xong,tha xong,thaáyááy xua xuaátáát hie hieänään bie bieåuååu t töôïngöôïïng TreânTreânthanh thanhStatus Status cucuûaûûa Windows Windows 25 of 100
  25. Caùc tieän ích cuûa SQL Server 1.Tie1.Tieänään ííchch EnterPriseManager:Ma EnterPriseManager:Maønøøn h hìnhình qua quaûnûûn lylyùùù ca caùcùùc ñ ñoáioáái t töôïngöôïïng co coùùù trong trongSQL SQL ServerServer 26 of 100 Caùc tieän ích cuûa SQL Server A>A> MicrosoftMicrosoft SQLSQL Server:ChServer:Chöùaöùa ca caùcùùc nho nhoùmùùm ServerServer  TaTaïoïïo mô môùiùùi mo moätäät nho nhoùmùùm Server Server tatala laømøøm nh nhöö sau sau: : ClickClick chuochuoätäät pha phaûiûûi va vaøoøøo Microsoft Microsoft SQLSQL Server,choServer,choïnïïn New New SQLSQL ServerServer GroupGroup 27 of 100
  26. Caùc tieän ích cuûa SQL Server MaMaønøøn h hìnhình sau sauxua xuaátáát hie hieänään ChoChoïnïïn Top Top LevelLevel GroupGroup :: TaTaïoïïo momoätäät nho nhoùmùùm go goácáác ChoChoïnïïn Sub Sub-group-group of:of: tataïoïïo mo moätäät nhonhoùmùùm la laøøø con con cucuûaûûa momoätäät nho nhoùmùùm kha khaùcùùc Name:teânName:teânnho nhoùmùùm 28 of 100 Caùc tieän ích cuûa SQL Server B>B>ÑaêngÑaêng ky kyùùù mo moätäät Server Server vavaøoøøo he heäää tho thoángááng :Click :Click chuochuoätäät pha phaûiûûi va vaøoøøo SQL SQL ServerServer Group,choGroup,choïnïnï New New SQLSQL ServerServer RegistrationRegistration 29 of 100
  27. Caùc tieän ích cuûa SQL Server MaMaønøøn h hìnhình sau sauxua xuaátáát hie hieänään : : NhaNhaánáán Next Next 30 of 100 Caùc tieän ích cuûa SQL Server MaMaønøøn h hìnhình sau sauxua xuaátáát hie hieänään : : chochoïnïïn Server Server cacaànààn ñ ñaêngaêng kykyù,nhaánùù,nha áán Add,sau Add,sauñ ñoùoùù nha nhaánáán next next 31 of 100
  28. .Caùc tieän ích cuûa SQL Server MaMaønøøn h hìnhình sau sauxua xuaátáát hie hieänään : :MaønMa øøn h hìnhình sau sauxua xuaátáát hie hieänään chochoïnïïn da daïngïïng ke keátáát no noáiáái , ,choïncho ïïn l löïaöïa cho choïnïïn 1: 1: 32 of 100 Caùc tieän ích cuûa SQL Server MaMaønøøn h hìnhình sau sauxua xuaátáát hie hieänään : :NhaäpNha ääp Login Login name,PassWordname,PassWordñ ñeåeåå ñ ñaêngaêng nha nhaäpääp va vaøoøøo SQL SQL ServerServer  ChuChuùùù y yùùù : : NeâuNeâuùùù qua quaùùù trtrìnhình ca caøiøøi ñ ñaëtaëët ô ôûûû bböôùcöôùùc 11 11 vavaøøø 12 12 chochoïnïïn nh nhöö treân treân ththìì : :  LoginLogin namename :Sa:Sa  PasswordPassword :: 33 of 100
  29. Caùc tieän ích cuûa SQL Server C>C>DataBases:ChöùaDataBases:Ch öùa ca caùcùùc CSDL CSDL TrongTrongSQL SQL Server,Server, cocoùùù 7 7 CSDLCSDL cocoùùù sa saúnúún , ,chiachia la laømøøm 2 2 loaloaïiïïi CSDL Heä thoáng :khoâng ñöôïc xoaù,söûa Teân CSDL YÙ nghóa Master Laø CSDL quaûn lyù thoâng tin cuûa caùc CSDL coøn laïi Mode Laø CSDL maåu Msdb Là CSDL ph c v cho dch v SQL Server Agent 34 of 100 Caùc tieän ích cuûa SQL Server Tempdb Laø CSDL chöùa caùc baûng taïm ñöôïc phaùt sinh trong quaù trình xöõ lyù CSDL maãu Teân CSDL YÙ nghóa Jobs Northwind pubs 35 of 100
  30. Caùc tieän ích cuûa SQL Server C>ClientC>Client NetworkNetwork UtilityUtility :: duduøngøøng ñ ñeåeåå ññaêngaêng ky kyùùù mo moätäät Server Server chochohe heäää tho thoángááng 36 of 100 Caùc tieän ích cuûa SQL Server CaCaùchùùch ñ ñaêngaêng ky kyùùù : : chochoïnïïn Tab Tab AliasAlias nhanhaánáán nu nuùtùùt Add,maAdd,maønøøn h hìnhình sau sauxua xuaátáát hie hieänään  ChoChoïnïïn TCP/IP TCP/IP  ServerServer AliasAlias ::nhaäpnha ääp va vaøoøøo nhaõn nhaõn  ServerServer namename :: nhanhaäpääp va vaøoøøo ñ ñòaòa ch chææ IPIP cucuûaûûa Server Server ChuChuùùù y yù:ùù: TieTieänään í íchch na naøyøøy ch chææ s söûöû du duïngïïng trong tronghe heäää thothoángááng ma maïngïïng 37 of 100
  31. Caùc tieän ích cuûa SQL Server TiTi nní íchch Query Query EnalyzerEnalyzer: :laøla øø ma maønøøn h hìnhình vi vi ttl lnhnh ccaaSQL SQL ServerServer 38 of 100 Caùc tieän ích cuûa SQL Server TiTi nní íchch Book Book OnlineOnline ::TaøiTa øøi lie lieäuääu h höôùngöôùùng daãn daãnca caùchùùch ssöûöû du duïngïïng SQL SQL ServerServer 39 of 100
  32. Caùc tieän ích cuûa SQL Server TiTi nní íchch Service Service ManagerManager ::quaûnqua ûûn ly lyùùù ca caùcùùc dòch dòchvu vuïïï lieânlieânquan quanñ ñeáneáán SQL SQL ServerServer MuoMuoánáán s söûöû du duïngïïng SQL SQL ServerServer phaphaûiûûi khô khôûiûûi ñ ñoängoääng dòch dòch vuvuïïï na naøyøøy Caùc dòch vuï naøy khôûi ñoäng baèng caùch : Start -> Programs- >Mcrosoft SQL Server->Dòch vuï 40 of 100 Caùc tieän ích cuûa SQL Server Ti n ích Import and Export DataTi n ích này cho phép chuy n d li u (Export) t CSDL SQL Server ra các lo I CSDL khác nh ư Access,Excel và ng ưc lI Cách kh I ñng :Start- >Programes->Microsoft SQL Server,màn hình sau xu t hi n, click Next 41 of 100
  33. Caùc tieän ích cuûa SQL Server Ti n ích Import and Export MànData hình sau xu t hi n •Data Sourse :Ch n lo i d li u ngu n •Nu d li u ngu n ch n là SQL Server:ch n Microsoft OLE DB for SQL Server •Server :Ch n tên Server •Ch n ki u ñă ng nh p •Database : Ch n CSDL 42 of 100 Caùc tieän ích cuûa SQL Server Ti n ích Import and Export Data•Nu d li u ngu n là Microsoft Access :ch n Microsoft Access •File Name : ðưng dn + Tên CSDL •Username,PassWord :nh p vào nu CSDL có yêu cu ñă ng nh p •nh n Next 43 of 100
  34. Caùc tieän ích cuûa SQL Server Ti n ích Import and Export Data•Destination: ch n lo I d li u ñích •Nu ch n SQL Server :ch n Server,nh p Username, Password và ch n CSDL ñích •Nu ch n Access :ph i ch n CSDL ñích •Chú ý :ch Import ho c Export ñưc d li u ,không có các ràng bu c 44 of 100 Xaây döïng moät CSDL trong SQL Server  MMtt(CSDL) (CSDL) ccaaSQL SQL ServerServer llàà t tpp hhppc cácác ññiit tưưngng  bbngng( (Table):ChTable):Ch aad d lili uu  bbngng oo( (View):chView):ch aad d lili uul lyyt t BBngng  thth ttccn niit tii(Stored (Stored Procedure):Procedure): ChCh aac cácác l lnhnhthao thaot tácác v viiD D lili uu 45 of 100
  35. Xaây döïng moät CSDL trong SQL Server TrigerTriger: :ChCh aac cácác l lnhnhthao thaot tácác v viiD D lili u,kiu,ki mmtra trar ràngàng bu bu cct tñ ñngng ConstraintConstraint ::ChCh aac cácác r ràngàng bu bu ccd d lili uu  MMttCSDL CSDL dodo mmttho ho ccnhi nhi uung ng ưưiit too nhnh ưưngngc cóó th th ñư ñưccnhi nhi uung ng ưưiitruy truyc cpp  TrongTrongSQL SQL ServerServer ccóó th th ttoo ñươñươ cc 3276732767 CSDL CSDL kháckhác nhau nhau 46 of 100 Xaây döïng moät CSDL trong SQL Server  CCuutr trúcúc l lưưuutr tr ccaamm ttCSDL CSDL :: MMttCSDLCSDL trongtrongSQL SQL ServerServer ttii thithi uuss ddùngùùng hai hait tpptintin vvttlý lý ññ llưưuutr tr dd lili uuu::  MMtt d dùngùng l lưưuutr tr dd lili uu (Data(Data file)file)  MMtt d dùngùng ññ llưưuutr tr ccácác vv tt giaogiaott tácác (Transaction (Transaction loglog file)file) 47 of 100
  36. Xaây döïng moät CSDL trong SQL Server ThTh ưưngng ñưñưcc t t chch cc l lưưuu tr tr trongtrong 33 ttpp tin tin :: CSDL Data Files Log Files Primary Secondary Log file DataFile Data Fie (*.LDF) (*.MDF) (*.NDF) 48 of 100 Xaây döïng moät CSDL trong SQL Server TToo m mii m mtt CSDL CSDL trongtrong SQL SQL ServerServer CáchCách 1: 1: SS ddngng titi nn ích ích EnterPriseManaEnterPriseMana gerger :Click :Click chuchu cc phph ii vào vào ññii ttưưngng Databases Databases chch nn New New DatabaseDatabase 49 of 100
  37. Xaây döïng moät CSDL trong SQL Server  Xu t hi n hp tho i : Nh p tên CSDL 50 of 100 Xaây döïng moät CSDL trong SQL Server  Ch n Tab Data Files:  Filename :Tên tp tin Data Files  Location: V trí lưu tr  Initial size(Mb) :Kích th ưc ban ñu  Automatically grow file: T ñng tăng kích th ưc • In megabytes : tăng bao nhiêu mB • By percent :Tăng theo ph n tr ăm  Maximun file size : kích th ưc ti ña ca CSDL • Unrestricted file growth :Không gi i hn kích th ưc • Restrict file growth(MB) :gi i hn  Tươ ng t cho Transaction Log 51 of 100
  38. Chöông II: Xaây döïng moät CSDL trong SQL Server  To CSDL bng cách vi t lnh trong Query Enalyzer CREATE DATABASE QLBANHANG ON PRIMARY ( NAME= QLBANHANG_DATA, FILENAME=’C:\MSSQL\DATA\ QLBANHANG_DATA.MDF’, SIZE=50MB, MAXSIZE=200MB, FILEGROWTH=10%) LOG ON ( NAME= QLBANHANG_LOG, FILENAME=’C:\MSSQL\DATA\ QLBANHANG_LOG.LDF’, SIZE=10MB, MAXSIZE=UNLIMITED, FILEGROWTH=5MB ) 52 of 100 Chöông II: Xaây döïng moät CSDL trong SQL Server  Các ki u d li u trong SQL Server Kiu d liu Kích Min giá tr d liu lưu tr thưc > Các kiu d liu dng s nguyên Int 4 t2,147,483,648ñn bytes +2,147,483,647 SmallInt 2 t 32768 ñn +32767 bytes TinyInt 1 byte t 0 ñn 255 Bit 1 byte 0, 1 hoc Null > Các kiu d liu dng s thp phân Decimal, 17byt t 10 ^38 ñn +10 ^38 Numeric es > Các kiu d liu dng s thc Float 8 t 1.79E+308 ñn +1.79E+308 bytes Real 4 t 3.40E+38 ñn +3.40E+38 bytes 53 of 100
  39. Chöông II: Xaây döïng moät CSDL trong SQL Server  Các ki u d li u trong SQL Server > Các kiu d liu dng chui có ñ dài c ñnh Char N bytes t 1 ñn 8000 ký t, mi ký t là mt byte > Các kiu d liu dng chui có ñ dài bin ñi VarChar N bytes t 1 ñn 8000 ký t, mi ký t là 1 byte Text N bytes t 1 ñn 2,147,483,647 ký t, mi ký t là 1 byte > Các kiu d liu dng chui dùng font ch Unicode NChar 2*N t 1 ñn 4000 ký t, mi ký t là 2 bytes bytes NVarCh 2*N t 1 ñn 4000 ký t, mi ký t là 2 ar bytes bytes NText 2*N t 1 ñn 1,073,741,823 ký t, mi bytes ký t là 2 bytes 54 of 100 Xaây döïng moät CSDL trong SQL Server  Các ki u d li u trong SQL Server > Các kiu d liu dng tin t Money 8 bytes t 922,337,203,685,477.5808 ñn +922,337,203,685,477.5807 SmallMoney 4 bytes t 214,748.3648 ñn + 214,748.3647 > Các kiu d liu dng ngày và gi DateTime 8 t01/01/1753ñn31/12/99 bytes 99 SmallDateTime 4 t01/01/1900ñn06/06/20 bytes 79 > Các kiu d liu dng chui nh phân (Binary String) Binary N bytes t 1 ñn 8000 bytes VarBinary N bytes t 1 ñn 8000 bytes Image N bytes t 1 ñn 2,147,483,647 55 of 100 bytes
  40. Chöông II: Xaây döïng moät CSDL trong SQL Server Các thu c tính cơ bn ca Mt Bng  Tên bng (Table Name) ð dài<= 128 ký t. Tên bng ph i duy nh t bên trong ph m vi ca ng ưi ñã to ranótrong mt CSDL  Tên ct (Column Name): là tên ca các ct bên trong bng, tên ca các ct bên trong bng ph i duy nh t. 56 of 100  Ki u d li u (Data Type):qui ñnh Chöông II: Xaây döïng moät CSDL trong SQL Server  ð dài d li u (Data Length): dùng ñ qui ñnh ñ dài d li u mà ct s lưu tr ñi vi các ki u d li u dng chu i, s.  S ký s lưu tr (Precision): là s ký s ti ña mà các ki u d li u dng s có th lưu tr ñưc.  S l lưu tr (Scale): là s l ti ña mà các ki u d li u dng s th p phân dùng ñ lưu tr . 57 of 100
  41. Chöông II: Xaây döïng moät CSDL trong SQL Server  Ct ñnh danh (Identity): Giá tr ca ct ñnh danh là s nguyên không trùng lp do h th ng Microsoft SQL Server t ñng cp phát. • Các ki u d li u ca ct ñnh danh : Int, SmallInt, TinyInt, Decimal , Numeric • Thu c tính Identity Seed :S ñu tiên • Thu c tính Identity58 of 100 Chöông II: Xaây döïng moät CSDL trong SQL Server  Cho phép ñ tr ng d li u (Allow Null): qui ñnh d li u có th ñưc phép ñ tr ng hay là ph i nh p  Giá tr mc ñnh (Default Value): là giá tr mc nhiên s ñưc gán vào ct d li u khi ng ưi s dng thêm mi mt mu tin nh ưng li ñ tr ng giá tr ti ct d li u ñó. 59 of 100
  42. Chöông II: Xaây döïng moät CSDL trong SQL Server  To Bng trong Sql Server  Cách 1: S dng ti n ích Enterprise Manager • M CSDL Click chu t ph i trên ñi tưng Tables , ch n ch c năng New Table trong th c ñơ n tt. 60 of 100 Chöông II: Xaây döïng moät CSDL trong SQL Server  Màn hình sau xu t hi n : Nh p tên bng,nh p OK  Màn hình thi t k bng xu t hi n :nh p thông tin và ch n ct làm khoá chính 61 of 100
  43. Chöông II: Xaây döïng moät CSDL trong SQL Server  To bng bng lnh trong màn hình Query Elyzer To cu trúc bng ñơ n gi n Cú pháp: CREATE TABLE Tên_b ng ( Tên_c t_1 Ki u_d _li u [NOT NULL] , Tên_c t_2 Ki u_d _li u [NOT NULL] [ , ] ) Trong ñó: + Tên bng, tên ct và ki u d li u ñã ñưc mô t trên + T khóa NOT NULL ch ñnh không cho phép d li u ti ct ñó ñưc phép b tr ng. 62 of 100 Chöông II: Xaây döïng moät CSDL trong SQL Server  To bng bng lnh trong màn hình Query Elyzer To cu trúc bng có giá tr mc ñnh Cú pháp: CREATE TABLE Tên_b ng ( Tên_c t_1 Ki u_d _li u DEFAULT Giá_tr |Hàm , Tên_c t_2 Ki u_d _li u [NOT NULL] [ , ] ) Trong ñó: + Giá tr : là giá tr c th s ñưc gán vào ct. + Hàm: là tên hàm cùng vi các tham s (nu có), tuy nhiên ki u d li u mà hàm tr v ph i là cùng vi ki u d li u mà ct s lưu tr . 63 of 100
  44. Chöông II: Xaây döïng moät CSDL trong SQL Server  To bng bng lnh trong màn hình Query Elyzer Ví d 1 CREATE TABLE VATTU ( MAVTU CHAR(4) NOT NULL, TENVTU VARCHAR(100) NOT NULL, DVTINH VARCHAR(10) NOT NULL, PHANTRAM REAL DEFAULT 20 ) Ví d 2 CREATE TABLE DONDH ( SODH CHAR(4) NOT NULL, NGAYDH DATETIME DEFAULT GETDATE(), MANHACC CHAR(3) NOT NULL ) 64 of 100 Chöông II: Xaây döïng moät CSDL trong SQL Server CúT pháp:o cu trúc bng có ct ñnh danh CREATE TABLE Tên_b ng ( Tên_c t_1 Ki u_d _li u_s IDENTITY [(S_b t_ñu, Ch _s _tăng)] , Tên_c t_2 Ki u_d _li u [NOT NULL] [ , ] ) •Trong mt bng ch có ti ña mt ct ñưc ch ñnh làm ct ñnh danh . •S bt ñu: là s mà SQL Server s dng ñ cp phát cho mu tin ñu tiên. Mc ñnh là 1. •Ch s tăng: là ch s mà SQL Server cng lên ñ cp phát cho tng mu tin kt ti p. Mc ñnh là 1. 65 of 100
  45. Chöông II: Xaây döïng moät CSDL trong SQL Server  Tính toàn vn d li u trong cơ s d li u : các ràng bu c trong SQL Server ñưc qu n lý bI hai ñI tưng :CONSTRAINT và TRIGGER  Constraint : qu n lý các ràng bu c nh ư :  Ràng bu c d li u duy nh t  Ràng bu c d li u tn ti  Ràng bu c mi n giá tr  Trigger :Qu n lý các ràng bu c ph c tp,liên quan ñn d li u trên nhi u bng 66 of 100 Chöông II: Xaây döïng moät CSDL trong SQL Server  Xây dng các Constraint  A> Ki m tra duy nh t d li u :có hai lo i • Primary Key (khoá chính ) :d li u khác rng và duy nh t • Unique : d li u có th rng và d li u tn ti duy nh t 67 of 100
  46. Chöông II: Xaây döïng moät CSDL trong SQL Server ðnh ngh ĩa ràng bu c khoá chính : CREATE TABLE Tên_b ng ( Tên_c t_1 Ki u_d _li u DEFAULT Giá_tr |Hàm , Tên_c t_2 Ki u_d _li u [NOT NULL] [ , ] [CONSTRAINT PK_Tên_bng_TenCot ] PRIMARY KEY (Danh_sách_ct_khóa_chính) ) 68 of 100 Chöông II: Xaây döïng moät CSDL trong SQL Server ðnh ngh ĩa ràng bu c d li u duy nh t : CREATE TABLE Tên_b ng ( Tên_c t_1 Ki u_d _li u DEFAULT Giá_tr |Hàm , Tên_c t_2 Ki u_d _li u [NOT NULL] [ , ] [CONSTRAINT UQ_Tên_bng_Tên_ct] TrongUNIQUE mt bng ch (Danh_sách_các_ct) ñnh ngh ĩa mt ràng bu c) khoá chính nh ưng có th ñnh ngh ĩa nhi u ràng bu c d li u duy nh t 69 of 100
  47. Xaây döïng moät CSDL trong SQL Server Ví d : CREATE TABLE VATTU ( MAVTU varchar(4) not null, TenVtu varchar(100), Constraint PK_Vattu_Mavtu_tenvtu primary key(Mavtu,tenvtu), constraint UQ_Vattu_tenvtu unique(tenvtu) ) 70 of 100 Xaây döïng moät CSDL trong SQL Server B>Ki m tra tn ti D li u :ðnh ngh ĩa khoá ngo i CREATE TABLE Tên_b ng ( Tên_c t_1 Ki u_d _li u DEFAULT Giá_tr |Hàm , Tên_c t_2 Ki u_d _li u [NOT NULL] [ , ] [CONSTRAINT FK_Tên_bng_Tên_ct] FOREIGN KEY Trong(Danh_sách_ct_khóa_ngoi) mt bng có th ñnh ngh ĩa nhi u khoá ngo i REFERENCES Tên_bng_tham_chiu (Danh_sách_ct_tham_chiu) ) 71 of 100
  48. Chöông II: Xaây döïng moät CSDL trong SQL Server B>Ví d : CREATE TABLE CTHOADON ( SOHD Varchar(3) not null , MAVTU Varchar(3) not null, Soluong int, Dongia float, CONSTRAINT FK_CTHOADON_SOHD FOREIGN KEY (SOHD) REFERENCES HOADON(SOHD), CONSTRAINT FK_CTHOADON_MAVTU FOREIGN KEY (MAVTU) REFERENCES VATTU(MAVTU) ) 72 of 100 Xaây döïng moät CSDL trong SQL Server C>Ki m tra ràng bu c mi n giá tr : Cú pháp : CREATE TABLE Tên_b ng ( Tên_c t_1 Ki u_d _li u DEFAULT Giá_tr |Hàm , Tên_c t_2 Ki u_d _li u [NOT NULL] [ , ] [CONSTRAINT CK_Tên_bng_Tên_ct] CHECK (Biu_thc_lun_lý) ) 73 of 100
  49. Xaây döïng moät CSDL trong SQL Server B>Ví d : CREATE TABLE CTHOADON ( SOHD Varchar(3) not null , MAVTU Varchar(3) not null, Soluong int, Dongia float, CONSTRAINT CK_CTHOADON_SOLUONG CHECK (Soluong>0), CONSTRAINT CK_CTHOADON_DonGia CHECK (Dongia>0) ) 74 of 100 Xaây döïng moät CSDL trong SQL Server B>Thêm Costraint vào bng ñã có Cú pháp chung: ALTER TABLE Tên_bng ADD [ CONSTRAINT Tên_Constraint ] LOI Các_tham_s [ , ] 75 of 100
  50. Xaây döïng moät CSDL trong SQL Server Cú pháp chi tit tng loi constraint PRIMARY KEY ALTER TABLE Tên_bng ADD [ CONSTRAINT PK_Tên_bng ] PRIMARY KEY (Danh_sách_ct_khóa_chính) 76 of 100 Xaây döïng moät CSDL trong SQL Server UNIQUE ALTER TABLE Tên_b ng ADD [ CONSTRAINT UQ_Tên_bng_Tên_ct ] UNIQUE (Danh_sách_các_ct) 77 of 100
  51. Xaây döïng moät CSDL trong SQL Server FOREIGN KEY ALTER TABLE Tên_b ng ADD [ CONSTRAINT FK_Tên_bng_Tên_ct ] FOREIGN KEY (Danh_sách_ct_khóa_ngoi) REFERENCES Tên_Bng (Danh_sách_ct_tham_chiu) 78 of 100 Xaây döïng moät CSDL trong SQL Server Ki m tra mi n giá tr : ALTER TABLE Tên_b ng ADD [ CONSTRAINT CK_Tên_bng_Tên_ct ] CHECK (Biu_thc_lun_lý) 79 of 100
  52. Xaây döïng moät CSDL trong SQL Server Thêm giá tr mc ñnh : ALTER TABLE Tên_b ng ADD [ CONSTRAINT DF_Tên_bng_Tên_ct ] DEFAULT Giá_tr _mc_ñnh FOR Tên_c t 80 of 100 Xaây döïng moät CSDL trong SQL Server Hy mt Constraint : ALTER TABLE Tên_bng DROP CONSTRAINT Tên_constraint [ , ] Tt các Constraint : ALTER TABLE Tên_bng NOCHECK CONSTRAINT ALL| Tên_constraint [ , ] Bt các Constraint : ALTER TABLE Tên_bng CHECK CONSTRAINT ALL| Tên_constraint [ , ] 81 of 100
  53. Xaây döïng moät CSDL trong SQL Server Xóa cu trúc bng DROP TABLE Danh_sách_tên_các_b ng Thay ñi cu trúc bng a. Thêm mt ct mi trong bng ALTER TABLE Tên_bng ADD Tên_ct Kiu_d_liu [ , ] b. Hy b ct hi n có bên trong bng ALTER TABLE Tên_bng DROP COLUMN Tên_ct [ , ] 82 of 100 Xaây döïng moät CSDL trong SQL Server Sa ñi ki u d li u ca ct ALTER TABLE Tên_bng ALTER COLUMN Tên_ct Kiu_d_liu_mi ði tên ct EXEC SP_Rename “Tên_b ng.Tên_c t”,”Tên_mi”,”COLUMN” ði tên bng EXEC sp_rename “Tên_b ng”,”Tên_mi” Chú ý :Mu n thay ñi cu trúc ca ct ph i xoá tt c các Constraint liên quan 83 of 100
  54. BÀI 3: BÀNG o(view) 1> ðnh Ngh ĩa :  Bàng ào là mt ñi tưng ch a câu lnh Select ly d li u T các bng trong csdl Khi truy cp vào CSLD ,ng ưi s dng không phân bi t ñưc Bng o và Bng Th t 2> To View Create view Ten_view As Câu lnh Select 84 of 100 Cu trúc câu lnh Select 2>Cu trúc câu lnh Select Select[Ten_Bang.]Ten_Cot[, ] From Ten_Bang1 Ten_Bang2 Where Group by HaVing Order by [Ten_Bang.]Ten_cot [asc/desc, ] Compute Hàm th ng kê [By Ten_cot] 85 of 100
  55. Cu trúc câu lnh Select  Mnh ñ Select :ch a các ct,các hàm mu n hi n th  Nu ct tn ti trong hai bng trong mnh ñ From ta ph i ghi rõ :Tên_B ng.Tên_C t Trong mnh ñ Select ta có th dùng cu trúc lnh Case When ñiu ki n 1 Then Giá tr 1 When ðiu ki n 2 then Giá tr 2 Else Giá tri n End ð hi n th d li u  Mnh ñ from : cho bi t d li u trên câu truy vn ñưc ly t các bng nào  nu d li u ly t nhi u bng thì các bng này ph i có quan h vi nhau: 86 of 100  Cú ph áp : Cu trúc câu lnh Select Inner Bng 1 Left Join Bng 2 on Bng 1.tên ct= bng 2.tên Right ct full  Mnh ñ Where : mnh ñ lc d li u tr v ho c ñ gom nhóm  Trong mnh ñ Where có th s dng các toán t :  Like tìm chu i gn ñúng – % Thay th 1 chu i – _(Gch dưi) thay th 1 ký t  Toán t BETWEEN Gt1 AND GT2 87 of 100
  56. Cu trúc câu lnh Select Mnh ñ Group by : mnh ñ gom nhóm d li u Mnh ñ này ph i có khi trong câu truy vn có s dng hàm th ng kê và trên mnh ñ Select có ly các giá tr không s dng hàm th ng kê Cú pháp : Group By Danh sách ct,Bi u th c Vi Danh sách ct,Bi u th c :ñưc ly trên mnh ñ Select không s dng hàm th ng kê Các Hàm th ng kê: Sum(Ten_Cot) :tính tng vi ct có ki u s Count(Ten_Cot/*) :tính tng s dòng AVG(Ten_Cot) :tính giá tr trung bình Max(Ten_cot) : giá tr ln nh t Min(Ten_Cot ) : gi á tr88 ofnh 100 nh t) Cu trúc câu lnh Select  Mnh ñ HaVing : mnh ñ Lc nhóm d li u Mnh ñ này ch tn ti khi trong câu truy vn có mnh ñ Group By và ñiu ki n lc d li u có hàm th ng kê Chú ý : trong câu truy vn có hai mnh ñ lc d liêu là Where và havinh Where :lc d li u ñ to nhóm ( có ñiu ki n không s dng hàm th ng kê) Having :lc nhóm( các ñiu ki n có th ng kê)  Mnh ñ OrDer By : Mnh ñ sp xp d li u Cú pháp Order by [Ten_bang.]Ten_Cot [asc/Desc] [, ]  Mnh ñ Compute /Compute By : là mnh ñ to giá tr th ng kê cu i kt qu ho c th ng kê theo ct Cú pháp  Compute Hàm th ng kê : to th ng kê cu i kt qu Compute Hàm th ng kê By [Ten_Bang.]Ten_cot :th ng kê theo ct,d li u ph89 ofi 100ñư c sp xp theo ct này
  57. Cu trúc câu lnh Select Các toán t dùng trên mnh ñ Select Cú pháp : Select Toán t Vi các toán t : Distict : lo i b các dòng d li u trùng Top n : ly n dòng ñu tiên Top n with ties : ly nh ng dòng thu c n cp ñu tiên Top n PERCENT : ly N % dòng ñu tiên 90 of 100 Cu trúc câu lnh InSert into Insert into : dùng thêm d li u vào bng,có 2 dng Thêm mt dòng Cú pháp : Inser into Ten_bang(Ten_cot1,Ten_cot2[, ]) Values(Gia_Tri1, ) vi giá tr :  ki u chu i : nm trong hai du ‘’ ví d ‘Tr n thanh nh t’ Ki u Ngày : ‘yyyy-mm-dd’ ví d :’1982-02-29’ Thêm nhi u dòng Cú pháp : Inser into Ten_bang_Dich(Ten_cot1,Ten_cot2[, ]) Select Ten_bang_nguon.ten_cot , from 91 of 100
  58. Cu trúc câu lnh UpDate UpDate : dùng cp nh t d li u ca mt bng D li u Update ch trên mt Bng : Cú pháp : UpDate Ten_Bang Set Ten_Cot= Giá tr /Bi u th c [Where ðiu ki n] D li u Update trên nhi u Bng : Cú pháp : UpDate Ten_Bang Set Ten_Cot= Giá tr /Bi u th c From [Where ðiu ki n] Chú ý : d li u cp nh t có th là mt giá tr th ng kê tr v t câu truy vn con Có th dùng cu trúc Case trong lnh cp nh t Trong câu truy vn update không s dng hàm th ng kê 92 of 100 Cu trúc câu lnh Delete Delete : dùng xóa d li u ca mt bng D li u xóa ch trên mt Bng : Cú pháp : delete Ten_Bang [Where ðiu ki n] D li u delete trên nhi u Bng : Cú pháp : delete Ten_Bang From [Where ðiu ki n] Chú ý : khi xóa d li u trên bng quan h 1 mà d li u này ñã có bên bng quan h nhi u -> có li 93 of 100
  59. Cu trúc câu lnh Select into Select into : dùng to mt bng có cu trúc và d li u ly t các bng có trong CSDL Cú pháp : Select [Ten_Bang.]tenCot [, ] From 94 of 100 Câu truy vn Con (Sub Query) Sub Query :là câu truy vn mà kt qu tr v là ñiu ki n ñ so sánh,gán giá tr cho câu truy vn khác ðt ñim : Ch tr v 1 ct d li u Nu tr v 1 dòng : ñiu ki n so sánh gi a câu truy vn chính và câu truy vn con là các toán t :=,>, ,>=,<= Nu tr v nhi u dòng : ñiu ki n so sách : in (nm trong) ho c Not in(không nm trong) 95 of 100
  60. Bài 4: Lp trình vi SQL SerVer  I>Bi n và các cu trúc lnh trong SQL Server  A>Bi n : 1> Bi n cc b : là bi n do ng ưi lp trình khai báo,Bi n có th ñưc khai báo trong th tc ni ti,hàm, trong mt lô lnh  Lô Lnh : là tp hp các lnh ñưc kt thúc bng t Go  Cú pháp khai báo bi n : Declare @Tên_Biên Ki u_D _Li u Tên Bi n :Luôn bt ñu bng ký t @,không có kho ng tr ng,ký t ñt bi t,ký t s ñng ñu  Gán giá tr cho bi n: Gán bng 1 giá tr : Set @tên_bi n=giátr /hàm ho c Select @tên_bi n=Giátr /hàm Gán bng kt qu tr v ca câu truy vn 96 of 100 Select @ tên_Bi n=Tênc t/H àm from Bài 4: Lp trình vi SQL SerVer  1> Bi n h th ng (t155) : là bi n do SQL Server cung cp,Cho bi t tr ng thái ca h th ng,Bi n h th ng luôn bt ñu bng hai ký t @@,Ch ñc  Mt s các bi n th ưng dùng Tên Bi n Ý ngh ĩa @@Error Cho bi t các lnh tr ưc ñó có li hay không,n u có li @@Error @@Rowcount Cho 0 nu lnh duy t us CurSor gây li 97 of 100
  61. Bài 4: Lp trình vi SQL SerVer  B>Các cu trúc lênh  1>lnh ñiu khi n IF Else  Cú pháp : If ðiu ki n Begin end else Begin End - Nu ñiu ki n ñúng : tp Lnh 1 th c hi n, ng ưc li tp lnh 2 th c hi n - Nu tp hp lnh 1 ,lnh 2 ch có 1 lnh thì không cn Begin End 98 of 100 Bài 4: Lp trình vi SQL SerVer  B>Các cu trúc lênh  2>Cu trúc lp :While While Bi u th c ðiu ki n Begin end  Tp lnh s ñưc th c hi n ñn khi bi u th c ñiu ki n tr v False  -có th dùng lnh Break ñ thoát kh i vòng lp 99 of 100
  62. Bài 4: Lp trình vi SQL SerVer  2>Các hàm cơ bn trong SQL SerVer  A>Các hàm chuy n ñi ki u d li u :th ưng dùng ñ chuy n d li u t s,ngày sang chu i  Hàm Cast : chuy n mt ki u d li u sang ki u bt kỳ  Cú pháp :Cast(Bi u_Th c as Ki u_D Li u) • Ví d : Cast (@tong as varchar(10))  Hàm CONVERT : chuy n t ngày sang chu i  Cú pháp :Convert(Ki u_d _Li u,Bi u_Th c[,ðnh_ Dng]) 100 of 100 Ví d : Convert(char(10),Getdate(),105) Ch ươ ng 3: T ng quan quá trình thi t k CSDL 1
  63. Gi i Thi u 2 Các tiêu chí thi t k  Tính uy n chuy n c a c u trúc CSDL: d dàng thêm, b t, ch nh s a trong t ươ ng lai  Chi phí lưu tr và chi phí truy xu t và chi phí cp nh t  Nhu c u c a các nhóm ng ưi s dng khác nhau  Ph m vi ng d ng 3
  64. Chu k ỳ phát tri n m t CSDL Tr i qua các giai ñon:  Phân tích nhu c u NSD  Thi t K : • Mc quan ni m • Mc logic • Mc v t lý  Cài ñt và cp nh t d li u ban ñu  Khai thác  Bo hành 4 Chu k ỳ phát tri n m t CSDL 5
  65. Giai ñon phân tích yêu c u c a NSD  Mc tiêu: làm vi c v i NSD ñ xác ñnh m t s thông tin sau:  Mc tiêu và yêu c u chung v hi u su t c a h th ng.  Các thông tin c n thi t c a CSDL trong h th ng và ý ñnh khai thác. (lưu thông tin gì, chung chung, chi ti t hay ch ñ tham kh o )  Kh i l ưng và tn su t truy xu t.  Quy ñnh c a tô ch c  Yêu c u v an toàn và ñ phòng s c. 6 Giai ñon phân tích yêu c u c a NSD  Cách th c hi n:  Xác ñnh nh ng ng ưi s dng và lp b ng ưu tiên.  Ph ng v n (interviewing), th o lu n (discussion), làm bài kh o sát (quiz), theo dõi công vi c h ng ngày (shadowing)  V sơ ñ lu ng d li u Data Flow Diagram (DFD) ñ có cái nhìn t ng th .  Xác ñnh các nút tr ng ñim trong s ơ ñ (CSDL ph i ph c v tt cho các nút tr ng ñim.  Lp s ưu li u th hi n k t qu phân tích. 7
  66. Giai ñon phân tích yêu c u c a NSD  Xác ñnh nh ng ng ưi s dng và lp b ng ưu tiên cho csdl qu n lý kho hàng. (b ng)  Ch n ph ươ ng pháp thu th p thông tin thích hp.(tên ph ươ ng pháp)  V sơ ñ lu ng d li u Data Flow Diagram (DFD) và xác ñnh các nút tr ng ñim trong s ơ ñ cho bài toán qu n lý kho.(lưc ñ và danh sách nút)  Lp s ưu li u th hi n k t qu phân tích.(tài li u tng h p) 8 Giai ñon Thi t k CSDL Qua trình thi t k ph i th c hi n 3 m c:  Mc quan ni m.  Mc Logic  Mc v t lý. 9
  67. Mc quan ni m Quan tâm ñn n i dung d li u (what) Ch n m t mô hìnhvà di n ñt d li u theo mô hình ñó. Input: k t qu ca giai ñon phân tích và phát th o c u trúc CSDL. Output: lưc ñ CSDL m c quan ni m (b o ñm lưu v a ñ thông tin, t t h ơn và phù hp h ơn v i môi tr ưng phát tri n ng d ng. 10 Mc quan ni m Quan tâm ñn n i dung d li u (what) Ch n m t mô hìnhvà di n ñt d li u theo mô hình ñó. Input: k t qu ca giai ñon phân tích và phát th o c u trúc CSDL. Output: lưc ñ CSDL m c quan ni m (b o ñm lưu v a ñ thông tin, t t h ơn và phù hp h ơn v i môi tr ưng phát tri n ng d ng. 11
  68. Mc logic Trung gian gi a m c quan ni m và vt lý Quan tâm ñn nhu c u khai thác  Tn su t truy xu t  Các con ñưng truy xu t Input: lưc ñ mc quan ni m và nhu c u khai thác. Output: c u trúc CSDL phù hp v i ng d ng; ñ th quan h và các con ñưng truy xu t. 12 Gi i Thi u 13
  69. Mc v t lý Cài ñt trên m t h qu n tr CSDL c th Quan tâm ñn hi u qu và tc ñ x lý Input:  Kt qu thi t k quan ni m và logic.  Thông tin v h qu n tr CSDL. Output: cài ñt hoàn ch nh, khai báo khóa, ràng bu c và thông s h th ng. 14
  70. Ch ươ ng 4: Lý thuy t mô hình CSDL quan h 1 1. Gi i thi u • Mô hình D li u Quan h (Relational Data Model ) d a trên khái ni m quan h . • Quan h ệ là khái ni m toán h c d a trên n n tng hình th c v lý thuy t t p h p. • Mô hình này do TS. E. F. Codd ñư a ra n ăm 1970. ðH S ư ph m TPHCM 2 2
  71. 2.1 Thu c tính (attribute) • Thu c tính: • Tên g i: dãy ký t (g i nh ) • Ki u d li u: S , Chu i, Th i gian, Lu n lý, OLE. • Mi n giá tr : t p giá tr mà thu c tính có th nh n. Ký hi u mi n giá tr ca thu c tính A là Dom (A). • Ví d:GIOITINH ki u d li u là Chu i,mi n giá tr Dom(GIOITINH)=(‘Nam’,’Nu’)  Ti m t th i ñim, m t thu c tính không có giá tr ho c ch ưa xác ñnh ñư c giá tr => giá tr Null ðH S ư ph m TPHCM 3 3 2.2 Quan h (relation) • ðnh ngh ĩĩĩa: quan h là mt t p h u h n các thu c tính. • Ký hi u: Q ( A1 , A2 , , An ) • Trong ñó Q là tên quan h ,Q + = { A , A , , A } là tp các thu c tính c a quan h Q 1 2 n • Ví d: HOCVIEN (Mahv, Hoten, Ngsinh, Gioitinh, Noisinh, Malop) LOP (Malop, Tenlop, Siso, Trglop, Khoa) ðH S ư ph m TPHCM 4 4
  72. 2.3 B (tuple) • ðnh ngh ĩĩĩa: B là các thông tin c a m t ñi tưng thu c quan h , ñư c g i là mu tin (record), dòng. • Quan h là mt b ng (table) v i các c t là các thu c tính và mi dòng ñư c g i là b. = • Mt b ca quan h Q ( A1 , A2 , , An ) là q (a1 , a 2 , , a n ) ∀ a ∈ Dom ( A ) vi i i • Ví d: HOCVIEN(Mahv, Hoten, Ngsinh, Noisinh) có q=(1003,Nguyen Van Lam, 1/1/1987,Dong Nai) ngh ĩa là hc viên có mã s là 1003, h tên là Nguyen Van Lam, sinh ngày 1/1/1987 Dong Nai ðH S ư 5ph m TPHCM 5 2.4 Th hi n c a quan h (instance) • ðnh ngh ĩĩĩa: th hi n c a m t quan h là tp h p các b giá tr ca quan h ti m t th i ñim. • Ký hi u: th hi n c a quan h Q là TQ • Ví d: THOCVIEN là th hi n c a quan h HOCVIEN ti th i ñim hi n t i g m có các b như sau : HOCVIEN Mahv HoTen Gioitinh Noisinh Malop K1103 Ha Duy Lap Nam Nghe An K11 K1102 Tran Ngoc Han Nu Kien Giang K11 K1104 Tran Ngoc Linh Nu Tay Ninh K11 ðH S ư ph m TPHCM 6 6
  73. 2.5 Tân t • ðnh ngh ĩĩĩa: tân t là mt quy t c dùng ñ mô t mt quan h . • Ký hi u: ||Q|| • Ví d: THI (Mahv, Mamh, Lanthi, Diem) • ||THI||: m i h c viên ñư c phép thi m t môn hc nhi u l n, m i l n thi l ưu tr hc viên nào thi môn gì? l n thi th my? và ñi m là bao nhiêu? ðH S ư ph m TPHCM 7 7 2.6 Phép chi u (1) • Phép chi u : Dùng đ trích giá tr ca m t s thu c tính trong danh sách các thu c tính c a quan h . • Ký hi u: phép chi u c a quan h R lên t p thu c tính X là R[X] ho c R.X . • Ví d: HOCVIEN Mahv HoTen Gioitinh Noisinh Malop K1103 Ha Duy Lap Nam Nghe An K11 • hv 1= hv = • 2 K1102 Tran Ngoc Han Nu Kien Giang K11 • hv 3 = K1104 Tran Ngoc Linh Nu Tay Ninh K11 8 8
  74. 2.6 Phép chi u (2) • Phép chi u c a quan h HOCVIEN lên thu c tính NoiSinh c a quan h HOCVIEN: HOCVIEN[Noisinh] = {‘Nghe An’,’Kien Giang’,’Tay Ninh’} HOCVIEN Mahv HoTen Gioitinh Noisinh Malop K1103 Ha Duy Lap Nam Nghe An K11 K1102 Tran Ngoc Han Nu Kien Giang K11 K1104 Tran Ngoc Linh Nu Tay Ninh K11 ðH S ư ph m TPHCM 9 9 2.6 Phép chi u (3) • Phép chi u lên 1 t p thu c tính X={ Ho ten,Noisinh} c a quan h HOCVIEN HOCVIEN[ Ho ten, Noisinh] = {(‘Ha Duy Lap’, ‘Nghe An’),(‘Tran Ngoc Han’, ‘Kien Giang’),(‘Tran Ngoc Linh’,’Tay Ninh’)} HOCVIEN Mahv HoTen Gioitinh Noisinh Malop K1103 Ha Duy Lap Nam Nghe An K11 K1102 Tran Ngoc Han Nu Kien Giang K11 K1104 Tran Ngoc Linh Nu Tay Ninh K11 10 10
  75. 2.6 Phép chi u (4) • Chi u c a m t b lên t p thu c tính: dùng ñ trích ch n các giá tr c th ca b giá tr ñó theo các thu c tính ñư c ch ra trong danh sách thu c tính c a mt quan h . • Ký hi u: chi u c a m t b giá tr t lên t p thu c tính X c a quan h R là tR[X] ho c t[X] . N u X có 1 thu c tính tR.X • Ví d: cho quan h HOCVIEN v i t p thu c tính HOCVIEN +={Mahv,Hoten,Gioitinh,Noisinh,Malop}, ch a 3 b giá tr hv 1,hv 2 và hv3 ðH S ư ph m TPHCM 11 11 2.6 Phép chi u (5) • Phép chi u 1 b lên 1 thu c tính • hv 1[Ho ten] = (‘Ha Duy Lap’) HOCVIEN Mahv HoTen Gioitinh Noisinh Malop hv 1= K1103 Ha Duy Lap Nam Nghe An K11 hv 2= K1102 Tran Ngoc Han Nu Kien Giang K11 hv 3= K1104 Tran Ngoc Linh Nu Tay Ninh K11 ðH S ư12 ph m TPHCM 12
  76. 2.6 Phép chi u (6) • Phép chi u 1 b lên 1 t p thu c tính • tp thu c tính X={Hoten, Gioitinh} • hv 2[X] = (‘Tran Ngoc Han’,’Nu’) HOCVIEN • hv = 1 Mahv HoTen Gioitinh Noisinh Malop • hv 2 = K1103 Ha Duy Lap Nam Nghe An K11 • hv 3 = K1102 Tran Ngoc Han Nu Kien Giang K11 K1104 Tran Ngoc Linh Nu Tay Ninh K11 ðH S ư ph m TPHCM 13 13 Câu h i ghi nh • Trong mô hình quan h ca Codd, quan h là gì, b là gì, tân t và th hi n. Bi u di n quan h , b , th hi n và tân t cho trưng h p sau: • Lp h c có mã l p, tên l p tr ưng, s ĩ s, ghi chú. Và hi n t i ch có 2 l p c n qu n lý: l p th nh t mã M1, l p tr ưng tên A, s s 61, ghi chú là ñi hc ñu, l p th hai có mã M2, l p tr ưng tên B, s s 69 ghi chú là hay v ng. 14
  77. 2.7 Khóa 2.7.1 Siêu khóa (super key) 2.7.2 Khóa (key) 2.7.3 Khóa chính (primary key) 2.7.4 Khóa t ươ ng ñươ ng 2.7.5 Khóa ngo i (foreign key) ðH S ư ph m TPHCM 15 15 2.7.1 Siêu khóa (super key) (1) • Siêu khóa : là mt t p con các thu c tính c a Q + mà giá tr ca chúng có th phân bi t 2 b khác nhau trong cùng m t th hi n TQ bt k ỳ. ∀ ∈ ≠ ⇔ Ngh ĩa là: t1, t 2 TQ, t 1[K] t2[K] K là siêu khóa ca Q. • Mt quan h có ít nh t m t siêu khóa (Q +) và có th có nhi u siêu khóa. ðH S ư ph m TPHCM 16 16
  78. 2.7.1 Siêu khóa (super key) (2) • Ví d: các siêu khóa c a quan h HOCVIEN là: {Mahv};{Mahv,Hoten};{Hoten};{Noisinh,Hoten} HOCVIEN Mahv HoTen Gioitinh Noisinh Malop K1103 Ha Duy Lap Nam Nghe An K11 K1102 Tran Ngoc Han Nu Kien Giang K11 K1104 Tran Ngoc Linh Nu Tay Ninh K11 K1105 Tran Minh Long Nam TpHCM K11 K1106 Le Nhat Minh Nam TpHCM K11 ðH S ư ph m TPHCM 17 17 2.7.2 Khóa (key) (1) Khóa : K là khóa c a quan h R, th a mãn 2 ñi u ki n: • K là mt siêu khóa. • K là siêu khóa “nh ỏ nh ất” (ch a ít thu c tính nh t và khác r ng) ngh ĩa là ∃ ⊂ ≠ ∅ ¬ K1 K, K 1 sao cho K 1 là siêu khóa. • Thu c tính tham gia vào m t khóa g i là thu ộc tính khóa, ngưc l i là thu ộc tính không khóa. ðH S ư ph m TPHCM 18 18
  79. 2.7.2 Khóa (key) (2) • Ví d: các siêu khóa c a quan h HOCVIEN là: {Mahv};{Mahv,Hoten};{Hoten};{Hoten,Gioitinh}; {Noisinh,Hoten};{Mahv,Hoten,Gioitinh,Noisinh} => thì khóa c a quan h HOCVIEN có th là {Mahv}; {Hoten} • Ví d: khóa c a quan h GIANGDAY (Malop, Mamh, Magv, HocKy, Nam) là K={Malop,Mamh}. Thu c tính khóa s là: Mamh,Malop. Thu c tính không khóa s là Magv, HocKy, Nam. ðH S ư ph m TPHCM 19 19 2.7.3 Khóa chính (primary key) • Khi cài ñt trên m t DBMS c th , n u quan h có nhi u h ơn m t khóa, ta ch ñư c ch n m t và gi là khóa chính • Ký hi u: các thu ộc tính n ằm trong khóa chính khi li t kê trong quan h ph i ñư c gch d ưi. • Ví d: • HOCVIEN (Mahv ,Hoten,Gioitinh,Noisinh,Malop) • GIANGDAY(Mamh,Malop ,Magv,Hocky,Nam) ðH S ư ph m TPHCM 20 20
  80. 2.7.4 Khóa t ươ ng đ ươ ng • Các khóa còn l i (không ñư c ch n làm khóa chính) g i là khóa t ươ ng ñươ ng. • Ví d: trong hai khóa {Mahv},{Hoten} thì khóa chính là {Mahv}, khóa t ươ ng ñươ ng là {Hoten} ðH S ư ph m TPHCM 21 21 2.7.5 Khóa ngo i (1) ⊆ ⊆ • Cho R(U), S(V). K 1 U là khóa chính c a R,K 2 V • Ta nói K2 là khóa ngo i ca S tham chi ếu ñến khóa chính K 1 ca R n u th a các ñiu ki n sau: • K1 và K2 có cùng s lư ng thu c tính và ng ngh ĩa c a các thu c tính trong K 1 và K2 cũng gi ng nhau. • Gi a R và S t n t i m i quan h 1-n trên K 1 và K2, ∀ ∈ ∃ ∈ • s S, ! r RðH S ưsao ph m TPHCM cho r.K =s.K 22 22 1 2
  81. 2.7.5 Khóa ngo i (2) • Ví d, cho 2 quan h LOP (Malop ,Tenlop,Siso,Khoahoc) HOCVIEN (Mahv ,Hoten,Gioitinh,Noisinh,Malop) • Thu c tính Malop trong quan h LOP là khóa chính ca quan h LOP. Thu c tính Malop trong quan h ệ HOCVIEN là khóa ngo ại, tham chi ếu đ ến Malop trong quan h ệ LOP ðH S ư ph m TPHCM 23 23 2.7.5 Khóa ngo i (3) HOCVIEN Mahv HoTen Gioitinh Noisinh Malop K1103 Ha Duy Lap Nam Nghe An K11 K1102 Tran Ngoc Han Nu Kien Giang K11 K1104 Tran Ngoc Linh Nu Tay Ninh K11 K1105 Tran Minh Long Nam TpHCM K11 K1106 Le Nhat Minh Nam TpHCM K11 LOP Malop Tenlop Trglop Siso Magvcn K11 Lop 1 khoa 1 K1106 11 GV07 K12 Lop 2 khoa 1 K1205 12 GV09 K13 Lop 3 khoa 1 K1305 12 GV14 ðH S ư ph m TPHCM 24 24
  82. Lưc đ CSDL QLSV HOCVIEN (MAHV , HO, TEN, NGSINH, GIOITINH, NOISINH, MALOP) Tân t ừ: m i h c viên phân bi t v i nhau b ng mã h c viên, lưu tr h tên, ngày sinh, gi i tính, nơi sinh, thu c l p nào. LOP (MALOP , TENLOP, TRGLOP, SISO, MAGVCN) Tân t ừ: m i l p g m có mã l p, tên l p, h c viên làm l p tr ưng c a l p, s s lp và giáo viên ch nhi m. KHOA (MAKHOA , TENKHOA, NGTLAP, TRGKHOA) Tân t ừ: m i khoa c n l ưu tr mã khoa, tên khoa, ngày thành l p khoa và tr ưng khoa (c ũng là mt giáo viên thu c khoa). MONHOC (MAMH , TENMH, TCLT, TCTH, MAKHOA) Tân t ừ: mi môn h c c n l ưu tr tên môn h c, s tín ch lý thuy t, s tín ch th c hành và khoa nào ph trách. DIEUKIEN (MAMH, MAMH_TRUOC ) Tân t ừ: có nh ng môn h c h c viên ph i có ki n th c t mt s môn h c tr ưc. ðH S ư ph m TPHCM 25 25 Lưc ñ CSDL qu n lý thi h c k ỳ GIAOVIEN (MAGV ,HOTEN,HOCVI,HOCHAM,GIOITINH,NGSINH,NGVL, HESO, MUCLUONG, MAKHOA) Tân t ừ: mã giáo viên đ phân bi t gi a các giáo viên, c n l ưu tr h tên, h c v , hc hàm, gi i tính, ngày sinh, ngày vào làm, h s, m c l ươ ng và thu c m t khoa. GIANGDAY (MALOP,MAMH ,MAGV,HOCKY, NAM,TUNGAY,DENNGAY) Tân t ừ: m i h c k ỳ ca năm h c s phân công gi ng d y: l p nào h c môn gì do giáo viên nào ph trách. KETQUATHI (MAHV, MAMH, LANTHI , NGTHI, DIEM, KQUA) Tân t ừ: lưu tr kt qu thi c a h c viên: h c viên nào thi môn h c gì, l n thi th my, ngày thi là ngày nào, đi m thi bao nhiêu và kt qu là đt hay không đ t. ðH S ư ph m TPHCM 26 26
  83. Câu h i và Ôn t p  Kt qu kh o sát hi n tr ng h th ng qu n lý nhân s ti n l ươ ng t i mt doanh nghi p thu th p ñưc các thông tin sau: • Mi nhân viên có mt mã nhân viên duy nh t, và có h tên, ngày tháng năm sinh và ñưc lãnh l ươ ng theo h bc l ươ ng c a mình. ðng th i mt nhân viên thì ch thu c biên ch ca m t và ch mt phòng ban. Ví d: Nhân viên tên A có mã s NV1 thu c biên ch phòng T ng H p (v i mã phòng TH) sinh năm 1986 lãnh lương chuyên viên ch ính. • Thông tin c n qu n lý v phòng ban bao g m: tên phòng ban, mã phòng ban và s lương nhân viên v à ngưi tr ưng phòng.Ví d: phòng Tng H p có mã TH, s lưng nhân viên là 5 có trưng phòng là Nhân Viên A. • Mc l ươ ng gm tên, s ti n và mô t yêu câu công vi c. Ví d: M c lươ ng chuyên viên chính là 2,5 tri u VN ð, c n t i thi u 5 năm kinh nghi m. 롈 V Lưc ñ CSDL Nhân S Ti n L ươ ng nói trên 27 Ph thu c hàm  28
  84. Ph thu c hàm  29 Ph thu c hàm  30
  85. Ph thu c hàm  31 Ph thu c hàm  32
  86. Ph thu c hàm  33 Ph thu c hàm  34
  87. Ph thu c hàm  35 Ph thu c hàm  36
  88. Ph thu c hàm  37 Ph thu c hàm  38
  89. Ph thu c hàm  39 Ph thu c hàm  BD  ??? Theo luat D  EG {B D E G} Theo luat BE  C {B D E G C} Theo luat BC  D, CG BD, CE AG {B D E G C A G} 40
  90. Ph thu c hàm  41 Ph thu c hàm  42
  91. Ph thu c hàm  43 Ph thu c hàm  44
  92. Ph thu c hàm  45 Ph thu c hàm  46
  93. Ph thu c hàm  47 Ph thu c hàm  48
  94. Ph thu c hàm  49 Ph thu c hàm  50
  95. Ph thu c hàm  51 Ph thu c hàm  52
  96. Ph thu c hàm  53 Ph thu c hàm  54
  97. Ph thu c hàm  55 Ph thu c hàm  56
  98. Ph thu c hàm  57 Ph thu c hàm  58
  99. Ph thu c hàm  59 Ph thu c hàm  60
  100. Ph thu c hàm  61 Ph thu c hàm  62
  101. Ph thu c hàm  63 Ph thu c hàm  64
  102. Ph thu c hàm  65 Ph thu c hàm  66
  103. Ph thu c hàm  67 Ph thu c hàm  68
  104. Ph thu c hàm  69 Ph thu c hàm  70
  105. Ph thu c hàm  71 S tương ng v i mô hình ER  Mi quan h (b ng) tươ ng ng v i m t ki u th c th ho c v i m t ki u m i liên kt nhi u - nhi u.  Mi h àng t ươ ng ng v i m t th hi n th c th ho c v i m t th hi n m i liên kt nhi u - nhi u.  Mi c t t ươ ng ng v i m t thu c t ính.  T quan h (relation ) trong c ơ s d li u quan h không c ó cùng ngh ĩa v i t mi quan h (relationship ) trong mô h ình ER .
  106. Lưc ñ cơ s d li u  Lưc ñ cơ s d li u  database schema  Lược ñồ cơ s ở dữ li ệu là mt t p h p c ác l ưc ñ quan h .  Trong m t l ưc ñ cơ s d li u, c ác tên l ưc ñ quan h là duy nh t. Lưc ñ cơ s d li u: Emp (Empnum , Name, Sal, Tax, Mgrnum, Deptnum ) Dept (Deptnum , Name, Area, Mgrnum ) Supplier (Snum , Name, City ) Supply (Snum, Pnum , Deptnum, Quan ) Ràng bu c toàn v n  Ràng bu c toàn v n  integrity constraint  Ràng bu c toàn v n là mt qui t c mà tt c các d li u trong CSDL ph i th a mãn qui t c này.  Ràng bu c mi n tr  domain constraint  Các giá tr cho phép c a m t thu c tính.  Toàn v n th c th  entity integrity  Thu c tính khóa chính không có giá tr rng ( null value ).
  107. Ràng bu c toàn v n  Qui t c ho t ñng  action assertion  Các qui t c nghi p v (business rule ). Ràng bu c toàn v n ðnh ngh ĩa mi n tr cho các thu c tính
  108. Ràng bu c toàn v n  Ràng bu c toàn v n tham chi u  referential integrity constraint  Ràng bu c toàn v n tham chi u là mt qui t c mà tt c các giá tr ca khóa ngo i (n u khác null ) trong quan h bên phía nhi u ph i có trong các giá tr ca khóa chính trong quan h bên phía mt. Ràng bu c toàn v n  Ràng bu c toàn v n tham chi u  Qui t c x óa c ác h àng d li u  Hn ch (restrict ): không cho ph ép x óa c ác h àng bên ph ía cha ( parent ) n u t n t i c ác h àng liên quan bên ph ía ph thu c ( dependent ).  Tng (cascade ): t ñng x óa c ác h àng bên ph ía ph thu c t ươ ng ng v i c ác h àng bên ph ía cha.  Gán null (set-to-null ): g án null cho kh óa ngo i c a c ác hàng bên ph ía ph thu c t ươ ng ng v i c ác h àng bên ph ía cha. Không áp d ng cho c ác th c th yu.
  109. Ràng bu c toàn v n Referential integrity constraints are drawn via arrows from dependent to parent table Ví d v ràng bu c toàn v n tham chi u Bi n ñi ERD thành các quan h  Qui t c 1: Bi n ñi m t ki u th c th th ành m t quan h.  ði v i ki u th c th thông thư ng ( regular entity type ): kh óa c a quan h là kh óa c a ki u th c th .  Thu c t ính c a quan h là thu c t ính c a ki u th c th .  Quan h ch ch a c ác thu c t ính th ành ph n c a thu c t ính ph c h p.  Quan h không ch a c ác thu c t ính ña tr .
  110. Bi n ñi ERD thành các quan h CUSTOMER entity type with simple attributes CUSTOMER relation Bi n ñi ki u th c th thông thưng Bi n ñi ERD thành các quan h CUSTOMER entity type with composite attribute CUSTOMER relation with address detail Bi n ñi thu c tính ph c h p
  111. Bi n ñi ERD thành các quan h  Qui t c 2: Bi n ñi thu c t ính ña tr th ành m t quan h.  Quan h ch a kh óa c a ki u th c th và thu c t ính ña tr .  Kh óa c a quan h gm kh óa c a ki u th c th và thu c t ính ña tr . Bi n ñi ERD thành các quan h Multivalued attribute becomes a separate relation with foreign key 1–to–many relationship between original entity and new relation Bi n ñi thu c tính ña tr
  112. Bi n ñi ERD thành các quan h  Qui t c 3: Bi u di n m i liên k t 1-ngôi ho c 2-ngôi c ó lưng s mt-mt.  ðt kh óa c a ki u th c th bên ph ía b t bu c v à các thu c t ính c a m i liên k t v ào quan h ca ki u th c th bên ph ía t ùy ch n. Bi n ñi ERD thành các quan h EMPLOYEE entity with Manages relationship EMPLOYEE relation with recursive foreign key Bi n ñi m i liên k t m t ngôi có lưng s mt - mt
  113. Bi n ñi ERD thành các quan h Bi n ñi m i liên k t hai ngôi có lưng s mt - mt Bi n ñi ERD thành các quan h  Qui t c 4: Bi u di n m i liên k t 1-ngôi ho c 2-ngôi c ó lưng s mt-nhi u.  ðt kh óa c a ki u th c th bên ph ía một và các thu c t ính c a m i liên k t v ào quan h ca ki u th c th bên ph ía nhi ều.
  114. Bi n ñi ERD thành các quan h EMPLOYEE entity with Manages relationship EMPLOYEE relation with recursive foreign key Bi n ñi m i liên k t m t ngôi có lưng s mt - nhi u Bi n ñi ERD thành các quan h Note the mandatory one Again, no null value in the foreign key this is because of the mandatory minimum cardinality Bi n ñi m i liên k t hai ngôi có lưng s mt - nhi u
  115. Bi n ñi ERD thành các quan h  Qui t c 5: Bi n ñi m i liên k t 1-ngôi ho c 2-ngôi c ó lưng s nhi u-nhi u th ành m t quan h .  Quan h ch a c ác kh óa c a c ác ki u th c th tham gia v ào m i liên k t.  Kh óa c a quan h gm c hai kh óa c a hai ki u th c th .  Thu c t ính c a quan h là thu c t ính c a m i liên kt. Bi n ñi ERD thành các quan h Bill-of-materials relationships (M:N) ITEM and COMPONENT relations Bi n ñi m i liên k t m t ngôi có lưng s nhi u - nhi u
  116. Bi n ñi ERD thành các quan h The Supplies relationship will need to become a separate Composite primary key relation New intersection Foreign key relation Foreign key Bi n ñi m i liên k t hai ngôi có lưng s nhi u - nhi u Bi n ñi ERD thành các quan h  Qui t c 6: Bi n ñi m i liên k t 3-ngôi th ành m t quan h.  Quan h ch a ba kh óa c a ba ki u th c th tham gia vào m i liên k t.  Mi liên k t c ó bao nhiêu ki u th c th bên ph ía một th ì quan h có by nhiêu kh óa: ñi v i m t ki u th c th bên ph ía một th ì kh óa c a quan h gm c hai kh óa c a hai ki u th c th còn l i. N u không c ó ki u th c th bên ph ía một th ì kh óa c a quan h bao gm c ba kh óa c a ba ki u th c th .  Thu c t ính c a quan h là thu c t ính c a m i liên kt.
  117. Bi n ñi ERD thành các quan h Bi n ñi m i liên k t ba ngôi Bi n ñi ERD thành các quan h Bi n ñi m i liên k t ba ngôi
  118. Chu n hóa d li u  Chu n h óa d li u  data normalization  Chu ẩn h óa d ữ li ệu là mt qu á tr ình thu n ngh ch tng b ưc ñ thay th tp h p c ác quan h cho tr ưc th ành c ác quan h có cấu tr úc ñơ n gi ản h ơn và chu ẩn h ơn.  Chu n h óa d li u nh m ñ ci ti n m t thi t k CSDL th ỏa mãn c ác r àng bu ộc to àn v ẹn và tr ánh d ữ li ệu b ị lặp l ại không c ần thi ết. Chu n hóa d li u  Mc ñích c a chu n h óa d li u  Lo i b các b t th ưng ( anomaly ) c a m t quan h ñ có ñư c c ác quan h có cấu tr úc t ốt h ơn, nh ỏ hơn.  Quan h ệ có cấu tr úc t ốt (well-structured relation )  Có s dư th a d li u l à ti thi u.  Cho ph ép ng ưi s dng thêm v ào, c p nh t v à xóa b d li u m à không gây ra s mâu thu n d li u.
  119. Ph thu c hàm  Ph thu c h àm  FD – Functional Dependency  Cho r là mt quan h , X và Y là hai t p thu c t ính ca r.  Ch úng ta n ói “X x ác ñịnh h àm Y ” ho c “Y ph ụ thu ộc hàm v ào X ”, ký hi u l à X → Y và ñư c g i l à ph ụ thu ộc h àm nu v i m i gi á tr ca X trong r ch tươ ng ng v i m t gi á tr ca Y.  Kh óa c a m t quan h xác ñnh h àm c ác thu c t ính không kh óa c a quan h này. Ph thu c hàm  Ph thu c h àm riêng ph n  partial functional dependency  X → A ñư c g i l à ph ụ thu ộc h àm riêng ph ần nu tn t i Y ⊂ X ñ cho Y → A.  Ph thu c h àm ñy ñ  full functional dependency  X → A ñư c g i l à ph ụ thu ộc h àm ñầy ñủ nu không tn t i Y ⊂ X ñ cho Y → A.  Ph thu c b c c u  transitive dependency  X → A ñư c g i l à ph ụ thu ộc b ắc c ầu nu t n t i Y ñ cho X → Y, Y → A, Y −/→ X và A ∉ XY .
  120. Ph thu c hàm R Mãsv Htên Mãl p Tênl p Mônh c ðim S1 Ti n L1 MT01 M1 9 S1 Ti n L1 MT01 M2 7 S1 Ti n L1 MT01 M3 8 S2 Trúc L1 MT01 M1 9 S2 Trúc L1 MT01 M2 8 S3 Hi n L2 MT02 M1 5 Các ph thu c hàm: Khóa c a R: {Mãsv, Mônh c} Mãsv →→→ {H tên, Mãl p} Mãl p →→→ Tênl p {Mãsv, Mônh c} →→→ ðim {Mãsv, Môn h c} →→→ Htên là ph thu c hàm riêng ph n {Mãsv, Mônh c} →→→ ðim là ph thu c hàm ñy ñ Dng chu n 1  ðnh ngh ĩa Quan h R dạng chu ẩn 1 (1NF - First Normal Form ) n u m i thu c t ính c a R ñu ch a c ác gi á tr ị nguyên t ố (atomic value ), gi á tr này không l à một danh s ách c ác gi á tr ị ho c các gi á tr ị ph ức h ợp (composite value ).  Các thu c t ính c a quan h R  Không l à thu c t ính ña tr (multivalued attribute ).  Không l à thu c t ính ph c h p ( composite attribute ).
  121. Dng chu n 1 R Mãsv Htên Mãl p Tênl p ðimthi S1 Ti n L1 MT01 M1 9 S1 Ti n L1 MT01 M2 7 S1 Ti n L1 MT01 M3 8 S2 Trúc L1 MT01 M1 9 S2 Trúc L1 MT01 M2 8 S3 Hi n L2 MT02 M1 5 Quan h R không dng chu n 1 vì thu c tính ðimthi là thu c tính ph c h p. Dng chu n 1 R Mãsv Htên Mãl p Tênl p Mônh c ðim S1 Ti n L1 MT01 M1 9 S1 Ti n L1 MT01 M2 7 S1 Ti n L1 MT01 M3 8 S2 Trúc L1 MT01 M1 9 S2 Trúc L1 MT01 M2 8 S3 Hi n L2 MT02 M1 5 Quan h R 1NF vì các thu c tính c a R không là thu c tính ña tr , không là thu c tính ph c h p.
  122. Dng chu n 1  Các b t th ưng c a quan h 1NF  Thêm v ào  Không th thêm thông tin c a sinh viên m i c ó mã l à S4 , tên l à Th ành , thu c l p c ó mã l à L1 nu sinh viên n ày ch ưa ñă ng ký h c môn h c n ào c .  Cp nh t  Sa tên c a sinh viên c ó tên l à Ti ến vi tên m i l à Th ành s ph i s a t t c các h àng c a sinh viên n ày.  Xóa b  Xóa thông tin sinh viên S3 ñăng ký môn h c M1 s làm mt thông tin c a sinh viên n ày.  Nguyên nhân  Tn t i thu c t ính không kh óa ph thu c h àm riêng ph n v ào kh óa. Dng chu n 2  ðnh ngh ĩa Quan h R dạng chu ẩn 2 (2NF - Second Normal Form ) n u R dng chu n 1 v à mi thu c t ính không kh óa ñu ph thu c h àm ñy ñ vào m i kh óa c a R.
  123. Dng chu n 2 R Mãsv Htên Mãl p Tênl p Mônh c ðim S1 Ti n L1 MT01 M1 9 S1 Ti n L1 MT01 M2 7 S1 Ti n L1 MT01 M3 8 S2 Trúc L1 MT01 M1 9 S2 Trúc L1 MT01 M2 8 S3 Hi n L2 MT02 M1 5 Các ph thu c hàm: Khóa c a R: {Mãsv, Mônh c} Mãsv →→→ {H tên, Mãl p} Mãl p →→→ Tênl p {Mãsv, Mônh c} →→→ ðim Lưc ñ quan h R không 2NF vì thu c tính không khóa Htên ph thu c hàm riêng ph n vào khóa { Mãsv , Mônh c}. Dng chu n 2 R1 R2 Mãsv Htên Mãl p Tênl p Mãsv Mônh c ðim S1 Ti n L1 MT01 S1 M1 9 S2 Trúc L1 MT01 S1 M2 7 S3 Hi n L2 MT02 S1 M3 8 S2 M1 9 Khóa c a R 1: Mãsv S2 M2 8 S3 M1 5 Khóa c a R 2: {Mãsv, Mônh c} Lưc ñ quan h R1 và R2 ñu 2NF vì các thu c tính không khóa ñu ph thu c hàm ñy ñ vào khóa.
  124. Dng chu n 2  Các b t th ưng c a quan h 2NF  Thêm v ào  Không th thêm thông tin c a l p L3 có tên l à MT03 nu ch ưa c ó sinh viên n ào h c l p n ày.  Cp nh t  Sa tên c a l p c ó mã L1 vi tên m i l à MT_1 s ph i sa t t c các h àng c a l p n ày.  Xóa b  Xóa thông tin c a sinh viên c ó mã S3 s làm m t thông tin c a l p L2 .  Nguyên nhân  Tn t i thu c t ính không kh óa ph thu c b c c u v ào kh óa. Dng chu n 3  ðnh ngh ĩa Quan h R dạng chu ẩn 3 (3NF- Third Normal Form ) n u R dng chu n 1 v à mi thu c t ính không kh óa ñu không ph thu c b c c u v ào m t kh óa c a R.
  125. Dng chu n 3 R1 Mãsv Htên Mãl p Tênl p S1 Ti n L1 MT01 S2 Trúc L1 MT01 S3 Hi n L2 MT02 Lưc ñ quan h R1 không 3NF vì thu c tính không khóa Tênl p ph thu c b c c u vào khóa Mãsv . Mãsv →→→ Mãl p Mãl p →→→ Tênl p Mãl p −−−/→→→ Mãsv Tênl p ∉∉∉ {Mãsv , Mãl p} Dng chu n 3 R11 R12 Mãl p Tênl p Mãsv Htên Mãl p L1 MT01 S1 Ti n L1 L2 MT02 S2 Trúc L1 S3 Hi n L2 Khóa c a R 11 : Mãl p Khóa c a R 12 : Mãsv Lưc ñ quan h R11 và R12 ñu 3NF vì các thu c tính không khóa ñu không ph thu c b c c u vào khóa.
  126. Ngôn ng SQL  Ngôn ng truy v n c ó cu tr úc (SQL -Structured Query Language ) l à mt ngôn ng chu n ñư c d ùng ñ to lp v à truy v n c ác c ơ s d li u quan h .  SQL là mt ngôn ng chu n cho c ác h qu n tr CSDL quan h (RDBMS - Relational DBMS). Ch ươ ng 5: Thi t K CSDL M c Quan Ni m 1
  127. Ni Dung Chính • Mc tiêu thi t k mc quan ni m • Cơ ch ki m tra ràng bu c • Các d ng chu n • Cách ti p c n phân rã và tng h p 2 2 Thit k Mc Quan Nim • Input: Sơ phác c u trúc v CSDL (bi u di n b ng mt mô hình d li u nh ư: mô hình quan h , mô hình th c th kt h p, mô hình ñi t ưng • Output: C u trúc CSDL phù hp h ơn v i môi tr ưng ng d ng. • Processing: d a trên m t s tiêu chu n thi t k . 3 3
  128. Quan h ph quát • Quan h ph quát: n n t ng c a nghiên c u mô hình quan h và ph thu c d li u vào thi t k CSDL • Khái ni m: • Mi CSDL ng d ng ñu có th mô hình b ng mt quan h duy nh t, g i là quan h ph quát ký hi u U. • Quan h ph quát ch a t t c thu c tính c a các quan h trong csdl ng d ng. • Nu csdl có Qi quan h vi i=1 n thì + + + + • U = Q 1 U Q 2 U Q n + • Qi = U[Q i ] 4 4 Quan h ph quát • H qu : • Mi thu c tính có mt ý ngh ĩa duy nh t dù thu c tính này n m trong quan h con hay quan h ph quát. • Gi a hai thu c tính ch có mt m i k t h p mang ý ngh ĩa duy nh t. 5 5
  129. Ví d Quan h ph quát 6 6 Ví d Quan h ph quát U(Ma_DH,Ngay_DH,Ngay_TK,Luong_Dat,Luong_Gia o,Ma_HG) 7 7
  130. Ví d Quan h ph quát 8 8 Cơ ch kim tra ph thuc hàm 9 9
  131. Cơ ch khóa kim tra ph thuc hàm 10 10 Cơ ch kim tra ph thuc hàm 11 11
  132. Cơ ch kim tra ph thuc hàm 12 12 Mc tiêu ca Thit K CSDL 13 13
  133. Mc tiêu ca Thit K CSDL 14 14 Mc tiêu ca Thit K CSDL 15 15
  134. Các dng chun 16 16 Các dng chun • Dng chu n 1: c u trúc csdl ñt d ng chu n m t khi ht ña tr hay trư ng l p (c u trúc ph ng). • Dng chu n 1: chưa chú ý ñ n gi m trùng l p thông tin  cp nh t khó. 17 17
  135. Các dng chun Quan h CHUAN1 Emp_ID Emp_Na Post_Cod Post_Na Prj_ID Prj_name Time Prj_Type me e me E1 A 058 NT P1 P_A 2008 IT E2 B 058 NT P1 P_A 2008 IT E1 A 058 NT P2 P_B 2009 FA E3 C 08 HCM P3 P_C 2009 HR Nhân xét s trùng l p thông tin và khó khăn khi cp nh t d li u. 18 18 Các dng chun • Khi dng chu n 1 c n tách nh quan h theo các tiêu chu n nghiêm ng t h ơn ñ gi m trùng l p thông tin và csdl ho t ñng hi u qu hơn . 19 19
  136. Các dng chun • Dng chu n 2: m t quan h dng chu n 2 khi các thu c tính không khóa ph thu c hoàn toàn (ñy ñ) vào khóa. • Xét quan h CHUAN1 slide trư c: Khóa: Emp_ID và Prj_ID Thu c tính không khóa: Emp_Name, Post_Code, Post_Name, Prj_Name, Time, Prj_Type Prj_ID  Prj_Name. V y Prj_Name ch ph thu c m t ph n vào khóa. Vì vy quan h này ch ưa ñt chu n 2 20 20 Các dng chun Emp_ID Emp_Name Post_Code Post_Name Emp_ID Pro_ID E1 A 058 NT E1 P1 E2 B 058 NT E2 P1 E3 C 08 HCM E1 P2 E3 P3 Prj_ID Prj_name Time Prj_Type P1 P_A 2008 IT P1 P_A 2008 IT P2 P_B 2009 FA P3 P_C 2009 HR 21 21
  137. Các dng chun • Dng chu n 3: m t quan h dng chu n 3 khi các thu c tính không khóa ph thu c hoàn toàn (ñy ñ) và không ph thu c b c c u vào khóa. • Xét quan h CHUAN2 slide trư c: Thu c tính không khóa Post_Name ph thu c b c cu vào khóa Emp_ID: Emp_ID  Post_Code Post_Code  Post_Name Vy ch ưa ñt chu n 3, ph i ti p t c tách b ng ñ gi m trùng l p thông tin. 22 22 Các dng chun Emp_ID Emp_Name Post_Code Emp_ID Pro_ID E1 A 058 E1 P1 E2 B 058 E2 P1 E3 C 08 E1 P2 E3 P3 Prj_ID Prj_name Time Prj_Type P1 P_A 2008 IT Post_Code Post_Name 058 NT P1 P_A 2008 IT 08 HCM P2 P_B 2009 FA P3 P_C 2009 HR 23 23
  138. Thi t k mc logic Thi t k mc logic
  139. Thi t k mc logic Thi t k mc logic
  140. Thi t k mc logic Thi t k mc logic
  141. Thi t k mc logic Thi t k mc logic
  142. Thi t k mc v t lý Cơ s cân nh c:  Ý ñ khai thác  ðc tr ưng k thu t c a h qu n tr csdl Thi t k mc v t lý
  143. Thi t k mc v t lý Thi t k mc v t lý
  144. Thi t k mc v t lý Thi t k mc v t lý
  145. 38 CAÂUCAÂU 11 Cho bie áát ñoáái t öôïïng user na øøo th öïc hie ään ca ùùc ch öùc naêng sau trong He ää tho ááng chi tra ûû cu ûûa 1 coâng ty: a) Vie áát 1 ch öông tr ình ñeåå ta ïoï va øø in ca ùùc ho ùùa ñôn b) Thay ñoååi ñòa ch æ trong CSDL c) Ta ïïo 1 ta øøi khoa ûûn cho user mô ùùi 1
  146. CAÂUCAÂU 22 Mo äät coâng ty, trong ñoùù Teân va øø Ñòa ch æ kha ùùch ha øøng ñö ôïïc l öu trong 1 CSDL cu ûûa Bo ää pha ään ba ùùn ha øøng va øø 1 CSDL kha ùùc cu ûûa Bo ää pha änä ho ùùa ñôn. Ho ûûi s öï dö th öøa d öõ õ lie ääu na øyø vaãn ñeáán va áán ñeàà thie ááu nha áát qua ùùn nh ö the áá na øøo? 2 CAÂUCAÂU 33 User seõ du øøng ngoân ng öõ õ na na øøo (moâ ta ûû, thao ta ùùc, truy va áán, qua ûûn ly ùù) ñeåå th öïc hie ään: a) Ñie ààu ch ænh ñòa ch æ kha ùùch ha øøng b) Ñònh ngh óa Ba ûûng Ha øøng to ààn kho c) Nha ääp thoâng tin cho nhaân vieân mô ùùi 3
  147. CAÂUCAÂU 44 User seõ du øøng ngoân ng öõ õ na na øøo (moâ ta ûû, thao ta ùùc, truy va áán, qua ûûn ly ùù) ñeåå th öïc hie ään: a) Ca ääp nha äät ñie ååm trung b ình cho sinh vieân b) Ñònh ngh óa Ba ûûng Danh sa ùùch lô ùùp c) Theâm 1 co äät mô ùiù va øøo Ba ûûng 4 CAÂUCAÂU 11  Cho quan he ää Q (ABC) A B C 1 4 2 3 5 6 3 4 6 7 3 8 9 1 0 Ho ûûi Q co ùù tho ûûa ca ùùc pth sau khoâng : A → B, A → C, AB → C, → → → C A, BC A, AC B 1
  148. CAÂUCAÂU 22 Cho ta äpä phu ïï thuo ääc ha øøm F = { A →→→→ B, C →→→→ X, BX →→→→ Z } CMR: AC → Z 2 CAÂUCAÂU 33 Cho quan he ää Q (ABCD) vô ùùi ta ääp phu ïï thuo ääc ha ømø F = { A → B, BC → D } Ho ûûi ca ùùc phu ïï thuo ääc ha øøm sau co ùù ñö ôïïc suy dieãn t öø F khoâng (ch öùng minh): a) AC →→→→ D b) B →→→→ D c) AD →→→→ B 3
  149. CAÂUCAÂU 44  Cho quan he ää Q (ABC) A B C f e e d e e b c e a c d a b c Tìm ta ääp phu ïï thuo ääc ha øøm F 4 CAÂUCAÂU 55 Cho quan he ää Q(ABCDEGH) Cho F = { AB → D, B → C, DC → E, DE → GH, G → A } CMR: AB →→→→ Q+ ∈∈∈∈ F+ 5
  150. CAÂUCAÂU 66 Cho quan he ää Q(ABCD) Cho F = { AB →→→→ C, C →→→→ D, D →→→→ A } Tìm kho ùaù 6 CAÂUCAÂU 77 Cho quan he ää Q(ABC) Cho F = { AB →→→→ C, B →→→→ D, D →→→→ B } Tìm kho ùaù 7
  151. CAÂUCAÂU 88 Cho quan he ää Q(XYZWP) Cho F = { Y →→→→ Z, Z →→→→ Y, Z →→→→ W, Y →→→→ P } Tìm kho ùaù 8 CAÂUCAÂU 99 Cho quan he ää Q(ABCDEG) Cho F = { EC →→→→ B, AB →→→→ C, EB →→→→ D, BG →→→→ A, AE →→→→ G } Tìm kho ùaù 9
  152. CAÂUCAÂU 1010 Cho quan he ää Q(ABCDEH) Cho F = { AB →→→→ C, CD →→→→ E, EC →→→→ A, CD →→→→ H, H →→→→ B } Tìm kho ùaù 10 CAÂUCAÂU 1111 Cho ta äpä phu ïï thuo ääc ha øøm F = { X →→→→ YZ, ZW →→→→ P, P →→→→ Z, W →→→→ XPQ, XYQ →→→→ YW, WQ →→→→ YZ } Tìm phu ûû to áái thie åuå 11
  153. CAÂUCAÂU 1212 Cho ta äpä phu ïï thuo ääc ha øøm F = { X →→→→ Y, Y →→→→ X, Y →→→→ Z, Z →→→→ Y, X →→→→ Z, Z →→→→ X } Tìm phu ûû to áái thie åuå 12 CAÂUCAÂU 1313 Cho ta äpä phu ïï thuo ääc ha øøm F = { X →→→→ YW, XW →→→→ Z, Z →→→→ Y, XY →→→→ Z } Tìm phu ûû to áái thie åuå 13
  154. CAÂUCAÂU 1414 Cho quan he ää GIA ÛÛNG_DA ÏÏY ( MS_CBGD, MS_MOÂNHO ÏÏC, TEÂN_CBGD, HO ÏCHAÏ ØØM, MAÕLÔ ÙÙP, SO ÁÁSV ) F = { MS_CBGD →→→→ TEÂN_CBGD, MS_CBGD →→→→ HO ÏÏCHA ØM,Ø MS_CBGD, MS_MOÂNHO ÏÏC →→→→ SO ÁÁSV, MS_MOÂNHO ÏÏC →→→→ HO ÏÏCHA ØM,Ø MAÕLÔ ÙPÙ } Tìm kho ùùa 14