Giáo án cơ sở dữ liệu

  • Số trang: 57 |
  • Loại file: PDF |
  • Lượt xem: 28 |
  • Lượt tải: 0
tranvantruong

Đã đăng 3224 tài liệu

Mô tả:

Chæång 1. TÄØNG QUAN VÃÖ CÅ SÅÍ DÆÎ LIÃÛU Chæång 1: TÄØNG QUAN VÃÖ CÅ SÅÍ DÆÎ LIÃÛU 1 Chæïc Nàng Cuía Mäüt Hãû Quaín Trë Cå Såí Dæî Liãûu 1.1. Caïc Khaïi Niãûm Vãö Cå Såí Dæî Liãûu Âãø dãù daìng cho viãûc giaíi thiïch caïc khaïi niãûm vãö Cå Såí Dæî Liãûu, træåïc hãút ta xem xeït hãû thäúng baïn veï may bay bàòng maïy tênh. Dæî liãûu læu træî trong maïy tênh bao gäöm caïc thäng tin vãö haình khaïch, chuyãún bay, âæåìng bay ... Moüi thäng tin vãö mäúi quan hãû naìy âæåüc biãøu diãùn trong maïy tênh thäng qua viãûc âàût chäø cuía khaïch haìng. Váûy laìm thãú naìo âãø biãøu diãùn âæåüc dæî liãûu âoï vaì âãø âaím baío cho khaïch haìng âi âuïng chuyãún bay. Táûp håüp dæî liãûu trãn âæåüc læu træî trong maïy tênh theo mäüt quy âënh naìo âoï vaì âæåüc goüi laì Cå Såí Dæî Liãûu( Database - CSDL) 1.2. Hãû quaín trë Cå Såí Dæî Liãûu 1.2.1. Âënh nghéa: Pháön Chæång trçnh coï thãø xæí lyï, thay âäøi dæî liãûu goüi laì hãû quaín trë Cå Såí Dæî Liãûu (Database management System - viãút tàõt DBMS) 1.2.2 Nhæîng khaí nàng cuía Hãû quaín trë Cå Såí Dæî Liãûu Coï hai âàûc tênh âãø phán biãût DBMS våïi caïc hãû thäúng láûp trçnh khaïc, âoï laì: 1. Khaí nàng quaín lyï nhæîng dæî liãûu cäú âënh 2. Khaí nàng truy xuáút coï hiãûu quaí mäüt khäúi læåüng dæî liãûu låïn Âiãøm (1) khàón âënh ràòng coï mäüt CSDL täön taûi thæåìng xuyãn ; näüi dung cuía Cå Såí Dæî Liãûu naìy laì nhæîng dæî liãûu âæåüc DBMS truy xuáút vaì quaín lyï. Âiãøm (2) phán biãût mäüt DBMS våïi mäüt hãû thäúng táûp tin cuîng quaín lyï dæî liãûu nhæng noïi chung khäng cho pheïp truy xuáút nhanh choïng caïc thaình pháön tuìy yï cuía dæî liãûu . Nhæîng khaí nàng cuía mäüt DBMS seî ráút cáön thiãút khi säú læåüng dæî liãûu ráút låïn. Hai âàûc tênh trãn laì hai âàûc tênh cå baín cuía mäüt DBMS, ngoaìi ra mäüt DBMS thæåìng coï caïc khaí nàng sau: - Häù tråü êt nháút mäüt mä hçnh dæî liãûu (Data model) nhåì âoï ngæåìi sæí duûng coï thãø xem âæåüc dæî liãûu. - Häù tråü mäüt säú ngän ngæî báûc cao cho pheïp ngæåìi sæí duûng âënh nghéa caïc cáúu truïc dæî liãûu, truy xuáút vaì thao taïc dæî liãûu . - Quaín lyï giao dëch, nghéa laì cho pheïp nhiãöu ngæåìi sæí duûng truy xuáút âäöng thåìi vaì chênh xaïc âãún mäüt Cå Såí Dæî Liãûu . - Âiãöu khiãøn caïc quaï trçnh truy xuáút, laì khaí nàng giåïi haûn caïc quaï trçnh truy xuáút dæî liãûu cuía nhæîng ngæåìi khäng âæåüc pheïp , vaì khaí nàng kiãøm tra âäü tin cáûy cuía dæî liãûu Baìi soaûn män Cå såí dæî liãûu Trang 1 Nguyãùn Vàn Chæïc Chæång 1. TÄØNG QUAN VÃÖ CÅ SÅÍ DÆÎ LIÃÛU - Caïc âàûc tênh tæû thêch æïng, laì khaí nàng tæû phuûc häöi laûi dæî liãûu do sæû cäú cuía hãû thäúng maì khäng laìm máút dæî liãûu 1.3 Caïc mä hçnh dæî liãûu Mäüt DBMS cáön phaíi cung cáúp êt nháút mäüt mä hçnh træìu tæåüng qua âoï ngæåìi sæí duûng coï thãø tháúy âæåüc dæî liãûu khäng phaíi bàòng caïc bit “thä” maì bàòng caïc daûng dãù hiãøu, dãù nháûn biãút hån. Trong thæûc tãú caïc Cå Såí Dæî Liãûu coï thãø coï mäüt vaìi mæïc træìu tæåüng , trong âoï mæïc tháúp nháút laì táûp håüp caïc file dæî liãûu ( Mæïc váût lyï) Vê duû: Xeït mäüt täøng cäng ty coï nhiãöu cäng ty con vaì häö så vãö caïc nhán viãn cuía täøng cäng ty coï thãø âæåüc læu træî trong mäüt file dæî liãûu gäöm caïc træåìng MNV( maî nhán viãn), HOTEN, LUONG_NV, ÂIACHI... âãø âån giaín ta giaí thiãút cáúu truïc baín ghi gäöm 2 træåìng sau: TEN_NV: hoü tãn nhán viãn NGUOI_QL: Hoü tãn giaïm âäúc cäng ty nåi nhán viãn laìm viãûc. Khi âoï cáúu truïc baín ghi nhæ sau: Record end; TEN_NV: char[30]; NGUOI_QL: char[30]; Khi âoï file dæî liãûu laì táûp caïc baín ghi vaì mäùi baín ghi chæïa thäng tin vãö mäüt nhán viãn cuía cäng ty. Trong nhiãöu mä hçnh Cå Såí Dæî Liãûu ngæåìi ta sæí duûng caïc quan hãû thay cho caïc file Quan hãû : NHAN_VIEN(TEN_NV,NGUOI_QL) Ta cáön phán biãût giæîa file vaì quan hãû Trong file caïc baín ghi khäng nháút thiãút phaíi phán biãût Trong quan hãû, caïc baín ghi(bäü) cáön phaíi phán biãût nhau. 1.4 Hiãûu quaí truy cáûp dæî liãûu Caïc hãû âiãöu haình âãöu coï khaí nàng täø chæïc vaì læu træî caïc táûp tin vç váûy viãûc læu træî caïc táûp tin dæî liãûu âäúi våïi DBMS laì khäng âaïng chuï yï. Hiãûu quaí cuía caïc DBMS trong viãûc xæí lyï trãn caïc táûp tin laì täø chæïc caïc táûp tin phuû hoàûc caïc cäng cuû häù tråü âãø truy cáûp dæî liãûu nhanh choïng, këp thåìi . Chàón haûn caïc file INDEX, hoàûc caïc haìm HASH. 1.5 Quaín lyï giao dëch Ngaìy nay do sæû phaït triãøn cuía maûng maïy tênh maì caïc Cå Såí Dæî Liãûu låïn coï thãø âæåüc sæí duûng båíi nhiãöu ngæåìi trãn caïc maïy tênh khaïc nhau vç váûy caïc DBMS cáön phaíi cung cáúp mäüt khaí nàng quaín lyï sæû truy cáûp dæî liãûu cuía nhiãöu ngæåìi sæí duûng. Chàón haûn caïc dæî liãûu vãö taìi khoaín cuïa ngán haìng âæåüc sæí duûng båíi haìng vaûn khaïch haìng trãn caïc maïy tênh khaïc nhau hoàûc trãn caïc maïy âäøi tiãön tæû âäüng; Cå Såí Dæî Liãûu phuûc vuû cho viãûc âàût chäø cho mäüt haîng haìng khäng âæåüc sæí duûng båíi haìng ngaìn âaûi lyï cuía haîng haìng khäng âoï trãn khàõp thãú giåïi. Viãûc truy cáûp âäöng thåìi thæåìng xaíy ra hiãûn tæåüng xung âäüt Baìi soaûn män Cå såí dæî liãûu Trang 2 Nguyãùn Vàn Chæïc Chæång 1. TÄØNG QUAN VÃÖ CÅ SÅÍ DÆÎ LIÃÛU giao dëch giæîa caïc khaïch haìng trãn cuìng mäüt haûng muûc dæî liãûu , vç váûy DBMS cáön phaíi cung cáúp mäüt khaí nàng khoïa dæî liãûu (clock data) khi coï ngæåìi sæí duûng truy cáûp âãún haûng muûc dæî liãûu âoï. 1.6 An toaìn dæî liãûu Mäüt DBMS cáön phaíi coï khaí nàng phuûc häöi laûi dæî liãûu khi coï sæû hoíng hoïc xaíy ra, âäöng thåìi vaì ráút quan troüng laì baío vãû sæû truy cáûp cuía caïc ngæåìi sæí duûng khäng âæåüc pheïp . Âãø thæûc hiãûn cäng viãûc naìy caïc DBMS cho pheïp taûo ra caïc khung nhçn (View) maì ngæåìi sæí duûng chè âæåüc pheïp quan saït dæî liãûu trãn caïc view. Chàón haûn chuïng ta coï mäüt file dæî liãûu laì NHAN_VIEN gäöm caïc træåìng TEN ( Hoü tãn nhán viãn) DIA_CHI(âëa chè nhán viãn) TEN_CTY( tãn cäng ty) LUONG(læång nhán viãn) nãúu sæí duûng mä hçnh Quan hãû ta coï Quan hãû sau: NHAN_VIEN(TEN, DIA_CHI, TEN_CTY,LUONG) Âãø moüi ngæåìi coï thãø truy cáûp vaìo file dæî liãûu naìy nhæng khäng âæåüc biãút læång cuía nhán viãn. Trong ngän ngæî SQL khung nhçn âæåüc taûo ra nhæ sau: CREAT VIEW L_NHAN_VIEN SELECT TEN, DIA_CHI,TEN_CTY FROM NHAN_VIEN; Khi âoï khung nhçn âæåüc taûo ra nhæ mäüt quan hãû våïi tãn L_NHAN_VIEN(TEN, DIA_CHI, TEN_CTY). Khung nhçn naìy khäng täön taûi váût lyï nhæ táûp tin , nhæng coï thãø váún tin noï giäúng nhæ táûp tin. 2. Kiãún truïc mäüt Hãû quaín trë Cå Såí Dæî Liãûu Mäüt Hãû quaín trë Cå Såí Dæî Liãûu âæåüc mä taí båíi 3 mæïc træìu tæåüng sau Nhoïm UESR 1 Nhoïm UESR 2 Khung nhçn 1 Khung nhçn 2 . . . Nhoïm UESR n Cå Såí Dæî Liãûu khaïi niãûm CSDL váût lyï . . . Khung nhçn n Âæåüc viãút bàòng ngän ngæî âënh nghéa dæî liãûu læåüc âäö con Baìi soaûn män Cå såí dæî liãûu Âæåüc viãút bàòng ngän ngæî âënh nghéa dæî liãûu Trang 3 Âæåüc caìi âàût trãn thiãút bë váût lyï Nguyãùn Vàn Chæïc Chæång 1. TÄØNG QUAN VÃÖ CÅ SÅÍ DÆÎ LIÃÛU 2.1 Mæïc Cå Såí Dæî Liãûu váût lyï( physical level) Laì mäüt táûp caïc táûp tin (file) vaì caïc file chè muûc (Index) hoàûc caïc cáúu truïc læu træî khaïc duìng âãø truy xuáút chuïng mäüt caïch coï hiãûu quaí , goüi laì Cå Såí Dæî Liãûu váût lyï. Cå Såí Dæî Liãûu váût lyï täön taûi thæåìng xuyãn trong thiãút bë læu træî nhæ âéa tæì. 2.2 Mæïc Cå Såí Dæî Liãûu khaïi niãûm (Concept level ) Cå Såí Dæî Liãûu khaïi niãûm laì sæû træìu tæåüng hoïa cuía thãú giåïi thæûc khi noï dæåüc gàõn våïi ngæåìi sæí duûng Cå Såí Dæî Liãûu. Caïc DBMS cung cáúp ngän ngæî âëng nghéa dæî liãûu (data definition language DDL), âãø mä taí læåüc âäö khaïi niãûm (conceptual scheme)vaì noï seî âæåüc caìi âàût bàòng læåüc âäö váût lyï (physical scheme). DDL cho chuïng ta mä taí Cå Såí Dæî Liãûu khaïi niãûm nhåì caïc thuáût ngæî cuía “Mä hçnh dæî liãûu “ , chàón haûn nhæ trong mä hçnh quan hãû dæî liãûu âæåüc trçnh baìy qua caïc baíng våïi caïc cäüt laì caïc thuäüc tênh caïc haìng laì caïc “bäü” tæång tæû nhæ caïc máùu tin. 2.3 Khung nhçn(VIEW) Khung nhçn(view) hay læåüc âäö con (Subscheme)laì mäüt pháön cuía Cå Såí Dæî Liãûu khaïi niãûm hoàûc laì sæû træìu tæåüng hoïa mäüt pháön Cå Såí Dæî Liãûu khaïi niãûm . háöu hãút caïc DBMS âãöu cung cáúp phæång tiãûn âãø khai baïo khung nhçn , âæåüc goüi laì ngän ngæî âënh nghéa dæî liãûu læåüc âäö con( subscheme data definition language) vaì caïc phæång tiãûn âãø thao taïc vaì váún tin trãn khung nhçn goüi laì ngän ngæî thao taïc dæî liãûu læåüc âäö con (subscheme data manipulation language) Thê duû1 Chuïng ta thæí phán têch caïc khaïc biãût giæîa caïc mæïc váût lyï, khêa niãûm, khung nhçn nhåì vaìo tênh tæång tæû cuía chuïng våïi caïc ngän ngæî láûp trçnh. Cuû thãø ta seî noïi vãö maíng: - ÅÍ mæïc khaïi niãûm maíng coï thãø khia baïo nhæ sau: Integer array A[1..n,1..m] Coìn åí mæïc váût lyï, maíng A âæåüc læu træî trong mäüt vuìng liãn tuûc bàõt âáöu tæì âëa chè a0 theo thæï tæû hãút cäüt âãún doìng. Pháön tæí A[i,j] seî åí vë trê a0 +4(m(i-j)+j-1) ÅÍ mæïc khung nhçn, ta coï thãø taûo ra nhiãöu khung nhçn tuìy yï. Chàón haûn m f(i)= ∑ A[i, j] cho biãút täøng caïc pháön tæí trãn doìng thæï i. j=1 Læåüc âäö vaì thãø hiãûn Ngoaìi viãûc phán chia mæïc træìu tæåüng nhæ trong pháön (2) chuïng ta coìn coï mäüt caïch hiãøu khaïc vãö Cå Såí Dæî Liãûu . Khi thiãút kãú chuïng ta quan tám âãún nhæîng hoaûch âënh (plan) trãn Cå Såí Dæî Liãûu ; nhæng khi sæí duûng chuïng ta laûi quan tám âãún nhæîng dæî liãûu thæûc sæû täön taûi trong Cå Såí Dæî Liãûu . Cáön phaíi hiãøu ràòng dæî liãûu trong Cå Såí Dæî Liãûu thæoìng xuyãn thay âäøi , trong khi caïc plan váùn nhæ cuî. Näüi dung hiãûn thåìi cuía Cå Såí Dæî Liãûu goüi laì thãø hiãûn (instance) cuía Cå Såí Dæî Liãûu .Thuáût ngæî Læåüc âäö (Scheme) âæåüc duìng âãø noïi âãún caïc hoaûch âënh naìy vç váûy khi noïi âãún læåüc âäö khaïi niãûm laì noïi vãö hoaûch âënh cho Cå Såí Dæî Liãûu khaïi niãûm , vaì chuïng ta goüi hoaûch âënh Cå Såí Dæî Liãûu váût lyï laì læåüc âäö váût lyï. Thê duû 2 Baìi soaûn män Cå såí dæî liãûu Trang 4 Nguyãùn Vàn Chæïc Chæång 1. TÄØNG QUAN VÃÖ CÅ SÅÍ DÆÎ LIÃÛU Chuïng ta tiãúp tuûc våïi maíng trong vê duû 1. Mä taí maíng vaì haìm âæåüc âæa ra trong thê duû âoï thæûc sæû laì thäng tin kiãøu læåüc âäö. 1. Læåüc âäö váût lyï laì mãûnh âãö: Pháön tæí A[i,j] seî åí vë trê a0 +4(m(i-j)+j-1), khàón âënh ràòng maíng A âæåüc læu taûi vë trê bàõt âáöu laì a0 vaì pháön tæí a[i,j] âæåüc læu åí vë trê a0 +4(m(i-j)+j-1) 2. Læåüc âäö khaïi niãûm laì khai baïo Integer array A[1..n,1..m]; A laì mäüt maíng säú nguyãn våïi n haìng vaì m cäüt. 3. Læåüc âäö con laì âënh nghéa cuía haìm f, nghéa laì m f(i)= ∑ A[i, j] j=1 Âãø âæa ra mäüt thê duû vãö mäüt thãø hiãûn cuía læåüc âäö khaïi niãûm naìy , chuïng ta coï thãø cho n=m=3 khi âoï A laì mäüt ma phæång: 8 1 6 3 5 7 4 9 2 Khi âoï thãø hiãûn váût lyï (Physical instance)seî laì 9 word khåíi âáöu tæì vë trê a0 theo thæï tæû chæïa 8 1 6 3 5 7 4 9 2. Cuäúi cuìng thãø hiãûn khung nhçn view laì haìm f(1)=f(2)=f(3)=15 Tênh Âäüc láûp dæî liãûu . Så âäö vãö caïc mæïc træìu tæåüng trong pháön (2) chè roî âi tæì khung nhçn qua Cå Såí Dæî Liãûu khaïi niãûm âãún Cå Såí Dæî Liãûu váût lyï âæa ra hai mæïc âäüc láûp dæî liãûu (data independence). - Âäüc láûp dæî liãûu váût lyï (physcal data independence) : Chuïng ta coï thãø thay âäøi læåüc âäö váût lyï maì khäng laìm aính hæåíng âãún læåüc âäö khaïi niãûm hay phaí i âënh nghéa laûi caïc læåüc âäö con. Noï khàón âënh ràòng viãûc sæía âäøi vãö täø chæïc vãö Cå Såí Dæî Liãûu váût lyï coï thãø aính hæåíng âãún tênh hiãûu cuía caïc chæång trçnh æïng duûng , nhæng khäng bao giåì phaíi viãút laûi nhæîng chæång trçnh naìy. - Âäüc láûp dæî liãûu logic (logical data independence) âæåüc âæa ra båíi mäúi quan hãû giæîa khung nhçn vaì Cå Såí Dæî Liãûu khaïi niãûm. Khi sæí duûng Cå Såí Dæî Liãûu cuîng coï thãø cáön phaíi sæía âäøi læåüc âäö khaïi niãûm, coï nhiãöu sæía âäøi læåüc âäö khaïi niãûm khäng laìm aính hæåíng âãún caïc læåüc âäö con hiãûn coï, vaì cuîng coï mäüt säú sæía âäøi khaïc seî cáön phaíi âënh nghéa laûi caïc aïnh xaû tæì læåüc âäö con âãún læåüc âäö khaïi niãûm . træåìng håüp naìy khäng cáön thay âäøi chæång trçnh æïng duûng . Mäüt laoüi thay âäøi duy nháút trong læåüc âäö khaïi niãûm buäüc phaíi thay âäøi læåüc âäö con laìviãûc xoïa caïc thäng Baìi soaûn män Cå såí dæî liãûu Trang 5 Nguyãùn Vàn Chæïc Chæång 1. TÄØNG QUAN VÃÖ CÅ SÅÍ DÆÎ LIÃÛU tin tæång æïng våïi caïc thäng tin âang täön taûi trong læåüc âäö con . Nhæîng thay âäøi naìy âoìi hoíi phaíi thay âäøi chæång trçnh æïng duûng. 3. Caïc ngän ngæî cuía Cå Såí Dæî Liãûu Trong caïc ngän ngæî láûp trçnh caïc chè thë mä taí vaì caïc chè thë thæûc hiãûn laì 2 bäü pháûn cuía mäüt ngän ngæî, trong caïc Hãû quaín trë Cå Såí Dæî Liãûu hai chæïc nàng mä taí vaì xæí lyï noïi chung âæåüc chia thaình 2 ngän ngæî khaïc nhau. 1. Ngän ngæî âënh nghéa dæî liãûu(data definition language - DDL) Âáy khäng phaíi laì ngän ngæî thuí tuûc maì chè laì mäüt hãû thäúng kyï hiãûu âãø mä taí caïc loaûi âäúi tæåüng vaì quan hãû giæîa chuïng . Vê duû 3 Chuïng ta coï thãø âënh nghéa mäüt quan hãû mä taí mäüt chuyãún bay thæûc hiãûn båíi mäüt haîng haìng khäng våïi âënh nghéa dæî liãûu nhæ sau: CREAT TABLE FLIGHT(NUMBER: INT, DATE CHAR(6), SEAT:INT, FROM : CHAR(3), TO : CHAR(3)) Âoaûn maî trãn laì mäüt thê duû vãö ngän ngæî âënh nghéa dæî liãûu SQL , noï mä taí quan hãû vaì caïc thuäüc tênh cuìng våïi viãûc caìi âàût váût lyï cuía chuïng laì caïc säú nguyãn vaì chuäøi coï âäü daìi cäú âënh. 2. Ngän ngæî thao taïc dæî liãûu Caïc thao taïc trãn Cå Såí Dæî Liãûu âäöi hoíi phaíi coï mäüt ngän ngæî âàûc biãût goüi laì ngän ngæî thao taïc dæî liãûu (data manipulation language- DML) hay coìn goüi laì ngän ngæî váún tin (Query language). Vê duû 4 Våïi Cå Såí Dæî Liãûu caïc chuyãún bay FLIGHT âæåüc âënh nghéa bàòng ngän ngæî SQL trong vê duû 3, trong ngän ngæî SQL ta coï thãø thæûc hiãûn caïc thao taïc sau: a. Giaím 4 chäø ngäöi coìn träúng trãn chuyãún bay 123 ngaìy 31 thaïng taïm UPDATE FLIGHT SET SEAT=SEAT-4 WHERE NUMBER=123 AND DATE=’AUG 31’ b. nháûp vaìo chuyãún bay 456 våïi 100 chäø ngäöi tæì haì näüi âi âaì nàông ngaìy 21 thaïng taïm INSERT INTO FLIGHT VALUE(456, ‘AUG 21’, ‘HANOI’, ‘DANANG’) c. Tçm xem trong Cå Såí Dæî Liãûu coï bao nhiãu chäø ngäöi coìn träúng trong chuyãún bay säú 999 ngaìy 24 thaïng 7 SELECT SEAT FROM FLIGHT WHERE NUMBER=999AND DATE=’JUL 24’ Baìi soaûn män Cå såí dæî liãûu Trang 6 Nguyãùn Vàn Chæïc Chæång 1. TÄØNG QUAN VÃÖ CÅ SÅÍ DÆÎ LIÃÛU 3. Ngän ngæî chuí Caïc chè thë cuía caïc ngän ngæî thao taïc dæî liãûu thæåìng laì âån giaín hay noïi caïch khaïc laì thæûc hiãûn nhæîng pheïp xæí lyï âån giaín, nhæng trong trong quaï trçnh thæûc hiãûn cäng viãûc trãn Cå Såí Dæî Liãûu coï thãø phaíi xæí lyï caïc cäng viãûc phæïc taûp hån nhæ soaûn thaío vàn baín baïo caïo , in áún ... vç váûy caïc Hãû quaín trë Cå Såí Dæî Liãûu cáön phaíi coï sæû häø tråü cuía caïc ngän ngæî thuáûn tiãûn cho viãûc láûp trçnh nhæ C hay COBOL ... goüi laì caïc ngän ngæî chuí( host language). Caïc lãûnh cuía DMLb âæåüc nhuïng vaìo ngän ngæî chuí theo hai caïch a. Caïc lãûnh cuía DML âæåüc kêch hoaût bàòng viãûc goüi caïc thuí tuûc âæåüc cung cáúp båíi Hãû quaín trë Cå Såí Dæî Liãûu b. Caïc lãûnh naìy laì caïc chè thë trong ngän ngæî chuí âæåüc måí räüng Baìi soaûn män Cå såí dæî liãûu Trang 7 Nguyãùn Vàn Chæïc Chæång 2 CAÏC MÄ HÇNH DÆÎ LIÃÛU CHO CAÏC HÃÛ QUAÍN TRË CÅ SÅÍ DÆÎ LIÃÛU CHÆÅNG 2 CAÏC MÄ HÇNH DÆÎ LIÃÛU CHO CAÏC HÃÛ CÅ SÅÍ DÆÎ LIÃÛU 2.1 MÄ HÇNH DÆÎ LIÃÛU Âënh nghéa: Mä hçnh dæî liãûu laì mäüt hãû hçnh thæïc toaïn hoüc gäöm hai pháön: 1. Mäüt hãû thäúng kyï hiãûu âãø mä taí dæî liãûu . 2. Táûp håüp caïc pheïp toaïn thao taïc trãn dæî liãûu âo.ï Trong chæång naìy ta seî tçm hiãøu caïc mä hçnh âæåüc sæí duûng räüng raîi hiãûn nay laì Mä hçnh THÆÛC THÃØ - QUAN HÃÛ ,mä hçnh QUAN HÃ, mä hçnh MAÛNG vaì mä hçnh PHÁN CÁÚP 2.2 MÄ HÇNH THÆÛC THÃØ -QUAN HÃÛ Muûc âêch cuía mä hçnh thæûc thãø -quan hãû (Entity - relationship model) laì cho pheïp mä taí læåüc âäö khaïi niãûm cuía thãú giåïi thæûc(xê nghiãûp, cå quan...) maì khäng cáön chuï yï âãún tênh hiãûu quaí hoàûc thiãút kãú Cå Såí Dæî Liãûu váût lyï. Âáy laì mä hçnh trung gian âãø chuyãøn âäøi qua caïc mä hçnh dæî liãûu khaïc nhæ mä hçnh quan hãû , mä hçnh maûng, mä hçnh phán cáúp... Sau âáy laì caïc khaïi niãûm sæí duûng trong mä hçnh naìy: 2.2.1THÆÛC THÃØ Thuáût ngæî “thæûc thãø ”(entity)khäng âæåüc âënh nghéa mäüt caïch hçnh thæïc , cuîng giäúng nhæ caïc thuáût ngæî “Âiãøm” vaì “âæåìng” trong hçnh hoüc, Chuïng ta coï thãø hiãøu ràòng thæûc thãø laì mäüt sæû váût hay mäüt caïi gç âoï täön taûi vaì phán biãût âæåüc. Thê duû mäùi con ngæåìi laì mäüt thæûc thãø , mäùi chiãúc xe maïy cuîng laì mäüt thæûc thãø , chuïng ta cuîng coï thãø noïi mäùi con kiãún laì mäüt thæûc thãø nãúu chuïng ta coï caïch phán biãût âæåüc con naìy våïi con khaïc( chàón haûn ta âaïnh mäüt säú cæûc nhoí trãn mäùi con kiãún). Khaïi niãûm vãö “tênh phán biãût âæåüc” âäöng nháút våïi khaïi niãûm “ nháûn daûng âäúi tæåüng” , vç lyï do naìy maì mä hçnh thæûc thãø -quan hãû thæåìng âæåüc xem nhæ laì mäüt mä hçnh hæåïng âäúi tæåüng. 2.2.2TÁÛP THÆÛC THÃØ Mäüt nhoïm bao gäöm caïc thæûc thãø “tæång tæû” taûo ra mäüt táûp thæûc thãø (entity set) vê duû 1. Táút caí moüi ngæåìi laì mäüt táûp thæûc thãø 2. Táút caí caïc Giaïo viãn thuäüc ÂHKT&QTKD laì mäüt táûp thæûc thãø 3. táút caí caïc sinh viãn khoa TC_THÄÚNG KÃ cuîng laì mäüt táûp thæûc thãø Âãø xaïc âënh táûp thæûc thãø cáön phaíi xaïc âënh mäüt táûp hæîu haûn caïc tênh cháút khaïc nhau cuía caïc thæûc thãø trong táûp thæûc thãø âoï. Mäüt trong nhæîng bæåïc then chäút trong viãûc læûa choün caïc mä hçnh Cå Såí Dæî Liãûu chæïa thäng tin phaín aïnh vãö mäüt hãû thäúng naìo âoï laì viãûc choün caïc táûp thæûc thãø trong hãû thäúng âoï. Baìi soaûn Cå såí dæî liãûu Trang 1 Chæång 2 CAÏC MÄ HÇNH DÆÎ LIÃÛU CHO CAÏC HÃÛ QUAÍN TRË CÅ SÅÍ DÆÎ LIÃÛU 2.2.3 THUÄÜC TÊNH vaì KHOÏA Mäüt táûp thæûc thãø coï mäüt táûp caïc tênh cháút âàûc træng goüi laì táûp thuäüc tênh(atribute), mäùi thæûc thãø âæåüc xaïc dënh båíi mäüt bäü dæî liãûu cuía caïc thuäüc tênh thãø hiãûn thäng tin vãö thuäüc tênh âoï. ÆÏng våïi mäùi thuäüc tênh coï mäüt táûp giaï trë maì thuäüc tênh âoï coï thãø nháûn goüi laì miãön(domain) giaï trë cuía thuäüc tênh âoï. Vê duû miãön giaï trë cuía thuäüc tênh Tuäøi laì (0,120), cuía thuäüc tênh Tãn laì caïc chuäøi kyï tæû coï âäü daìi täúi âa 30 kyï tæû , hay domain cuía thuäüc tênh Giåïi tênh laì { Nam, Næî},... Viãûc choün caïc thuäüc tênh laì bæåïc quan troüng trong thiãút kãú så âäö Cå Såí Dæî Liãûu. Mäüt thuäüc tênh hay 1 táûp täúi thiãøu caïc thuäüc tênh maì giaï trë cuía noï nháûn daûng 1 thæûc thãø mäüt caïch duy nháút trong táûp thæûc thãø goüi laì khoïa (key) cuía táûp thæûc thãø . vê duû 5 Xeït táûp thæûc thãø Sinh viãn cuía khoa TC_THÄÚNG KÃ våïi caïc thuäüc tênh Htãn, ngaìy sinh, Låïp, Âchè ta coï thãø choün Htãn laìm khoïa nãúu xaïc âënh âæåüc ràòng trong khoa khäng coï 2 ngæåìi naìo truìng hoü vaì tãn nhau, ngæåüc laûi ta coï thãø choü thãm caïc thuäüc tênh khaïc âãø phán biãût nhæ ngaìy sinh âãø laìm khaïo cho táûp thæûc thãø sinh viãn . 2.2.4.CAÏC MÄÚI QUAN HÃÛ Cho caïc táûp thæûc thãø E1, E2,..., Ek. Mäüt mäúi quan hãû R giæîa caïc táûp thæûc thãø laì mäüt danh saïch coï thæï tæû giæîa caïc táûp thæûc thãø âoï, Danh saïch caïc táûp thæûc thãø khäng nháút thiãút phaíi phán biãût. Coï nghéa laì mäüt táûp thæûc thãø coï thãø xuáút hiãûn nhiãöu hån mäüt láön trong Quan hãû. R= trong âoï Fi ∈{ E1, E2,..., Ek}. Mäùi hiãûn haình cuía mäúi quan hãû R laì mäüt táûp caïc bäü trong âoï ei ∈Fi goüi laì n_bäü. Cho 2 táûp thæûc thãø E1 ,E2, R laì mäúi quan hãû giæîa E1 vaì E2 . ta coï caïc âënh nghéa sau: 1.Quan hãû ISA (is a) Nãúu mäùi thæûc thãø cuía E1 cuîng laì thæûc thãø cuía E2 thç quan hãû R goüi laì mäúi quan hãû ISA E1 ISA E2 âoüc laì E1laì “mäüt” E2. vê duû: E2 laì táûp thæûc thãø caïc sinh viãn khoa THÄÚNG KÃ-TIN HOÜC E1 laì táûp thæûc thãø caïc sinh viãn khoa THÄÚNG KÃ-TIN HOÜC coï hoüc bäøng nàm hoüc 98-99 khi âoï ta coï E1 ISA E2. Muûc âêch cuía mäúi quan hãû naìy laì caïc thæûc thãø cuía táûp thæûc thãø E1 thæìa hæåíng caïc thuäüc tênh cuía E2 ngoaìi ra E1 coìn coï nhæîng thuäüc tênh riãng cuía mçnh. Vê duû trong cäng ty coï táûp thæûc thãø NHÁN_VIÃN( MAÎNV, TÃNNV, TUÄØI, ÂËA_CHÈ,LÆÅNG). Nãúu cäng ty thaình láûp mäüt âäüi boïng chuyãön thç täút nháút nãn thiãút kãú mäüt táûp thæûc thãø PLAY(NÀM_ táûp thæûc thãø PLAY coï mäúi quan hãû ISA våïi táûp thæûc thãø NHÁN_VIÃN. Nhæ váûy mäùi thæûc Baìi soaûn Cå såí dæî liãûu Trang 2 Chæång 2 CAÏC MÄ HÇNH DÆÎ LIÃÛU CHO CAÏC HÃÛ QUAÍN TRË CÅ SÅÍ DÆÎ LIÃÛU thãø trong THI_ÂÁÚU, CHIÃÖU_CAO) vaì táûp thæûc thãø PLAY cuîng coï táút caí caïc thuäüc tênh cuía táûp thæûc thãø NHÁN_VIÃN nhæng chè coï nhæîng thæûc thãø trong táûp thæûc thãø PLAY måïi coï caïc thuäüc tênh nhæ NÀM_THI_ÂÁÚU, CHIÃÖU_CAO. 2. Mäúi quan hãû mäüt_mäüt(one_one relationship) Nãúu mäùi thæûc thãø cuía E1 coï quan hãû våïi âuïng 1 thæûc thãø cuía E2 vaì ngæåüc laûi, thç mäúi quan hãû naìy goüi laì mäúi quan hãû mäüt_mäüt giæîa E1 vaì E2. Vê duû Mäúi quan hãû QUAÍN_LYÏ giæîa hai táûp thæûc thã LAÎNH_ÂAÛO vaì táûp thæûc thãø PHOÌNG_BAN laì mäúi quan hãû Mäüt_mäüt nãúu giaí thiãút ràòng mäüt laînh âaûo chè quaín lyï mäüt phoìng vaì mäüt phoìng chè coï mäüt ngæåìi quaín lyï. 3. Mäúi quan hãû nhiãöu_mäüt(many-one relationship) Nãúu mäùi thæûc thãø trong E1 coï quan hãû våïi nhiãöu nháút 1 thæûc thãø trong E2, vaì mäùi thæûc thãø trong E2 coï thãø khäng coï quan hãû våïi thæûc thãø naìo hoàûc coï quan hãû våïi 1 hoàûc nhiãöu thæûc thãø trong E1. Mäúi quan hãû naìy âæåüc goüi laì mäúi quan hãû nhiãöu_mäüt tæì E1 vaìo E2. Vê duû: mäúi quan hãû giæîa hai táûp thæûc thãø NHÁN_VIÃN vaì PHOÌNG_BAN laì mäúi quan hãû nhiãöu_mäüt tæì NHÁN_VIÃN vaìo PHONG_BAN, coï nghéa laì mäùi nhán viãn chè laìm viãûc trong mäüt phoìng vaì mäùi phoìng coï thãø coï nhiãöu nhán viãn laìm viãûc, cuîng coï træåìng håüp mäüt vaìi nhán viãn khäng thuäüc mäüt phoìng naìo caí nhæ giaïm âäúc. Khaïi niãûm mäúi quan hãû nhiãöu_mäüt âæåüc täøng quaït hoïa cho ba táûp thæûc thãø tråí lãn nhæ sau: Nãúu coï mäüt mäúi quan hãû R giæîa caïc táûp thæûc thãø E1,E2,...,Ek vaì våïi caïc thæûc thãø trong táút caí caïc táûp thæûc thãø træì Ei chè coï nhiãöu nháút mäüt thæûc thãø cuía Ei quan hãû våïi chuïng , thç ta goüi R laì mäúi quan hãû nhiãöu_mäüt tæì E1,...,Ei-1 ,...,Ek vaìo Ei. 4. mäúi quan hãû nhiãöu_nhiãöu( many_many relationship) Trong mäúi quan hãû naìy khäng coï mäüt haûn chãú trãn táûp caïc k_bäü cuía caïc thæûc thãø khi xuáút hiãûn trong caïc quan hãû . thê duû mäúi quan hãû CHA_MEÛ_CUÍA cuía táûp thæûc thãø NGÆÅÌI laì mäúi quan hãû nhiãöu nhiãöu, vç mäùi âæïa treí coï thãø tçm âæåüc cha meû cho chuïng vaì mäüt ngæåìi coï thãø coï säú læåüng con tuìy yï. vê duû: E1: táûp caïc sinh viãn cuía khoa TC_THÄÚNG KÃ E2 táûp håüp caïc män thãø thao R laì quan hãû thêch thãø thao laì mäúi quan hãû nhiãöu_nhiãöu Trong thæûc tãú caïc hãû quaín trë cå såí dæî liãûu khäng häù tråü mäúi quan hãû naìy, âãø biãøu diãùn mäúi quan hãû naìy trong thiãút kã thäng thæåìng ngæåìi ta taïch thaình caïc mäúi quan hãû nhiãöu _mäüt 2.2.5 Så âäö mäúi quan-hãû thæûc thãø Âãø mä taí thäng tin vãö caïc táûp thæûc thãø vaì caïc mäúi quan hãû giæîa chuïng ngæåìi ta sæí duûng så âäö goüi laì så âäö mäúi quan hãû thæûc thãø. Trong så âäö naìy: Baìi soaûn Cå såí dæî liãûu Trang 3 Chæång 2 CAÏC MÄ HÇNH DÆÎ LIÃÛU CHO CAÏC HÃÛ QUAÍN TRË CÅ SÅÍ DÆÎ LIÃÛU 1. Hçnh chæî nháût biãøu diãùn táûp thæûc thãø coï ghi tãn bãn trong 2. hçnh Oval biãøu diãùn thuäüc tênh, ghi tãn thuoüc tênh bãn trong 3. Hçnh thoi biãøu diãùn mäúi quan hãû giæîa caïc táûp thæûc thãø ghi tãn mäúi quan hãû bãn trong. 4. Nãúu R laì mäúi quan hãû mäüt_mäüt giæîa 2 táûp thæûc thãø E1 vaì E2 thç veî caïc caûnh âënh hæåïng tæì hçnh Oval nhaîn R âãún caïc hçnh chæî nháût nhaî E1 vaì E2. 5. Nãúu R laì mäúi quan hãû nhiãöu_mäüt tæì vaìo Ek thç veî caïc caûnh khäng âënh hæåïng tæì hçnh thoi nhaîn R âãún caïc HCN coï nhaîn E1,E2,..,Ek-1 vaì veî caûnh âënh hæåïng tæì hçnh thoi coï nhaîn R vaìo HCN nhaîn Ek. 6 Nãúu R laì mäúi quan hãû nhiãöu_nhiãöu giæîa E1 vaì E2 thç veî caïc caûnh khäng âënh hæåïng tæì hçnh thoi nhaîn R âãún hçnh chæî nháût nhaîn E1 vaì E2. Vê duû: så âäö sau trçnh baìy mäüt så âäö âån giaín, gäöm 3 táûp EMPS, DETPS vaì MANAGERS Hai táûp EMPS vaì DEPTS liãn kãút nhåì mäúi quan hãû WORK IN , âáy laì mäúi quan hãû nhiãöu_mäüt tæì EMPS vaìo DEPTS. Táûp thæûc thãø DEPTS vaì MANAGERS liãn kãút våïi nhau qua mäúi quan hãû MANAGES. Âáy laì mäúi quan hãû mäüt mäüt, Mäüt xuáút hiãûn cuía mäúi quan hãû naìy laì mäüt bäü(d,p) noïi ràòng vàn phoìng p âæåüc quaín lyï båíi nhán viãn d. Hoàûc så âäö quan hãû _thuûc thãø sau: Giæîa táûp thæûc thãø PERSONS vaì PERSONS våïi mäúi quan hãû PARENT_OF. Caûnh thæï nháút biãøu diãùn con coìn táûp thæï hai biãøu diãùn cha. Giaï trë hiãûn haình cuía mäúi quan hãû PARENT_OF laì táûp caïc càûp (p1,p2) noïi ràòng p2 laì cha cuía p1 Baìi soaûn Cå såí dæî liãûu Trang 4 Chæång 2 CAÏC MÄ HÇNH DÆÎ LIÃÛU CHO CAÏC HÃÛ QUAÍN TRË CÅ SÅÍ DÆÎ LIÃÛU Vê duû: Sau dáy laì mäüt vê duû tæång âäúi âáöy âuí, så âäö mäúi quan hãû thæûc thãø sau âáy täø chæïc hãû thäúng thäng tin cáön thiãút âãø chè huy hoaût âäüng cuía siãu thë YVCB. Trong så âäö coï caïc táûp thæûc thãø vaì caïc mäúi quan hãû sau: 1.NHAN_VIEN: táûp thæûc thãø bao gäöm caïc nhán viãn laìm viãûc trong siãu thë , caïc thuäüc tênh : TENNV MANV LUONG 2. NGUOI_QL Ngæåìi quaín lyï goìm caïc træåíng phoìng trong siãu thë 3. GIAN_HANG: táûp thæûc thãø caïc gian haìng trong siãu thë goìm caïc thuäüc tênh TEN_GH MA_GH 4. MAT_HANG: táûp thæûc thãø caïc màût haìng baïn trong siãu thë, caïc thuäüc tênh TEN_MH MA_MH 5. NGUOI_CC: táûp thæûc thãø caïc ngæåìi cung cáúp caïc màût haìng cho siãu thë, caïc thuäüc tênh TEN_NCC DIA_CHI_NCC 6. DON_DATH: táûp thæûc thãø gäöm caïc âån dàût haìng cuía khaïch haìng, gäöm caïc thuäüc tênh SO_HOA_DON NGAY_DAT_HANG 7.KHACH_HANG: táûp thæûc thãø caïc khaïch haìng cuía siãu thi, gäöm caïc thuäüc tênh TEN_KH DIA_CHIKH TAI_K_KH Caïc mäúi quan hãû 8. LAM_VIEC: quan hãû laìm viãûc giæîa táûp thæûc thãø NHAN_VIEN vaì táûp thæûc thãø GIAN_HANG ta noïi: “nhán viãn x laìm viãûc åí gian haìng y” 9. QUAN_LY “: mäúi quan hãû quaín lyï giæîa táûp thæûc thãø GIAN_HANG vaì NGUOI_QL, ta noïi : “ gian haìng x âæåüc quaín lyï båíi ngæåìi quaín lyï y” 10. CHUA: quan hãû chæïa giæîa MAT_HANG våïi GIAN_HANG: ta noïi” màût haîng coï trong gian haìng y” 11. CUNG_CAP: quan hãû cung cáúp giæîa NGUOI_CC våïi MAT_HANG ta noïi” màût haìng x âæåüc cung cáúp båíi ngæåìi cung cáúp y”. 12. DAT_HANG: quan hãû âàût haìng giæîa KHACH_HANG våïi DON_DATH, ta noïi “ âån âàût haìng x âæåüc âàût båíi khaïch haìng y” 13. BAO_GOM: quan hãû bao gäöm giæuîa DON_DATH våïi MAT_HANG , ta noïi “ âån âàût haìng x âàût màût haìng y våïi säú læåüng z” Baìi soaûn Cå såí dæî liãûu Trang 5 Chæång 2 CAÏC MÄ HÇNH DÆÎ LIÃÛU CHO CAÏC HÃÛ QUAÍN TRË CÅ SÅÍ DÆÎ LIÃÛU Så âäö mäúi quan hãû -thæûc thãø cuía YVCB nhæ sau (Hçnh veî) Baìi soaûn Cå såí dæî liãûu Trang 6 Chæång 2 Baìi soaûn Cå såí dæî liãûu CAÏC MÄ HÇNH DÆÎ LIÃÛU CHO CAÏC HÃÛ QUAÍN TRË CÅ SÅÍ DÆÎ LIÃÛU Trang 7 Chæång 2 CAÏC MÄ HÇNH DÆÎ LIÃÛU CHO CAÏC HÃÛ QUAÍN TRË CÅ SÅÍ DÆÎ LIÃÛU 2.3 MÄ HÇNH DÆÎ LIÃÛU QUAN HÃÛ Nhæ âaî noïi, mä hçnh quan hãû-thæûc thãø khäng phaíi laì mä hçnh xæí lyï, noï mä hçnh hoïa thãú giåïi thæûc åí mæïc khaïi niãûm. Âãø læu træî thäng tin trãn maïy vaì duìng caïc hãû quaín trë Cå Såí Dæî Liãûu thao taïc trãn chuïng thç dæî liãûu phaíi âæåüc biãøu diãùn dæåïi daûng khaïc. Hiãûn nay mä hçnh dæî liãûu âæåüc sæí duûng räüng raîi nháút laì mä hçnh dæî liãûu quan hãû( Database Relationship Model) âæåüc E.F Code âãö xuáút nàm 1970 vaì ngaìy caìng coï nhiãöu hãû quían trë Cå Såí Dæî Liãûu cho mä hçnh naìy goüi laì caïc hãû quaín trë Cå Såí Dæî Liãûu quan hãû . Mä hçnh dæî liãûu quan hãû coï æu âiãøm laì tênh âäüc láûp dæî liãûu cao vaì mä hçnh âæåüc xáy dæûng dæûa trãn lyï thuyãút táûp håüp nãn dãù hiãøu vaì dãù biãøu diãùn bàòng toaïn hoüc. 2.3.1 Âënh nghéa quan hãû Quan hãû âæåüc âënh nghéa dæûa trãn lyï thuyãút táûp håüp vaì têch Âãö_caïc cuía caïc miãön. Miãön( Domain) laì táûp caïc giaï trë hæîu haûn hoàûc vä haûn. Vê duû: Táûp caïc säú nguyãn laì mäüt miãön, táûp caïc xáu kyï tæû coï âäü daìi 20 laì mäüt miãön, hoàûc táûp{0,1} laì mäüt miãön... Cho k miãön D1,D2,...,Dk. Khi âoï têch Âãö_caïc cuía k miãön D1,D2,...,Dk kyï hiãûu laì D1xD2x...xDk laì táûp caïc bäü coï daûng (v1,v2,...,vk) trong âoï vi thuäüc Di, mäùi bäü coï k thaình pháön goüi laì k_bäü(k_tupe) vê duû: Våïi k=2, D1={0,1},D2={a,b,c} Khi âoï D1xD2={(0,a),(0,b),(0,c),(1,a),(1,b),(1,c)} tæì âoï quan hãû âæåüc âënh nghéa nhæ sau: Mäüt quan hãû (Relation)laì mäüt táûp håüp con báút kyì cuía têch Âãö_caïc cuía mäüt hoàûc nhiãöu miãön. Nhæ váûy mäüt quan hãû coï thãø laì vä haûn nhæng åí âáy luän giaí thiãút ràòng quan hãû laì hæîu haûn. vê duû Våïi D1 vaì D2 trong vê duû trãn thç táûp {(0,a),(0,c),(1,b)} laì mäüt quan hãû , mäüt táûp con cuía têch Âãö_caïc 2 miãön D1 vaì D2 Thaình pháön cuía quan hãû goüi laì bäü (tupe), quan hãû laì táûp con cuía têch Âãö_caïc k miãön goüi laì quan hãû k_ngäi(k_Arity). Mäùi bäü cuía quan hãû k_ngäi gäöm k thaình pháön goüi laì k_bäü coï daûng (v1,v2,...,vk) trong âoï vi thuäüc Di. Trong mä hçnh dæî liãûu quan hãû , mäùi quan hãû n_ngäi âæåüc biãøu diãùn båíi mäüt baíng n cäüt. Trong baíng mäùi cäüt tæång æïng våïi mäüt thaình pháön cuía quan hãû goüi laì thuäüc tênh vaì coï tãn laì tãn cuía thaình pháön tæång æïng trong quan hãû. Mäùi bäü trong quan hãû tæång æïng våïi 1 doìng cuía baíng. Tãn quan hãû cuìng våïi danh saïch caïc thuäüc tênh goüi laì læåüc âäö quan hãû (Relational Scheme). Nãúu quan hãû coï tãn laì REL vaì coï caïc thuäüc tênh laì A1,A2,...,Ak thç læåüc âäö quan hãû tæång æïng laì REL(A1,A2,...,Ak). Vê duû: Thäng tin vãö caïc thaình phäú âæåüc læu træî trong læåüc âäö quan hãû coï tãn laì CITY_INFO gäöm caïc thuäüc tênh nhæ TÃN_TP, SÄÚ_TRÆOÌNG_ÂH, SÄÚ_DÁN. Ta tháúy ràòng âáy laì læåüc âäö quan hãû 3_ngäi(Gäöm 3 thuäüc tênh )khi âoï læåüc âäö quan hãû tæång æïng Baìi soaûn Cå såí dæî liãûu Trang 8 Chæång 2 CAÏC MÄ HÇNH DÆÎ LIÃÛU CHO CAÏC HÃÛ QUAÍN TRË CÅ SÅÍ DÆÎ LIÃÛU laì : CITY_INFO(TÃN_TP, SÄÚ_TRÆOÌNG_ÂH, SÄÚ_DÁN) vaì (HUÃÚ, 6,2.000.000) laì mäüt bäü cuía læåüc âäö quan hãû . Vaì khi âoï TÃN_TP SÄÚ_TRÆOÌNG_ÂH HUÃÚ 6 HAÌ NÄÜI 12 ÂAÌ NÀÔNG 5 SÄÚ_DÁN 2.000.000 5.000.000 3.000.000 Laì mäüt quan hãû cuía læåüc âäö quan hãû CITY_INFO, laì táûp con cuía têch âãö caïc 3 miãön TÃN_TP, SÄÚ_TRÆOÌNG_ÂH, SÄÚ_DÁN. ÆÏng våïi mäùi læåüc âäö quan hãû coï nhiãöu quan hãû goüi laì caïc hiãûn haình(Current Instance) cuía læåüc âäö quan hãû âoï. 2.3.2 Biãøu diãùn så âäöì Quan Hãû - Thæûc Thãø trong mä hçnh Quan Hãû Táûp caïc læåüc âäö quan hãû duìng âãø biãøu diãùn thäng tin cuía mäüt hãû thäúng âæåüc goüi laì læåüc âäö Cå Såí Dæî Liãûu quan hãû . (Relational Database Scheme)vaì nhæîng giaï trë hiãûn haình cuía caïc quan hãû tæång æïng taûo ra Cå Såí Dæî Liãûu quan hãû. Giaí sæí caïc thäng tin cuía hãû thäúng âæåüc biãøu diãùn båíi 1 så âäö vãö mäúi quan hãû thæûc thãø thç ta coï thãø thiãút láûp læåüc âäö Cå Såí Dæî Liãûu quan hãû cho hãû thäúng tæì så âäö mäúi quan hãû thæûc thãø dæûa trãn caïc nguyãn tàõt sau: 1. Mäüt táûp thæûc thãø E trong så âäö quan hãû -thæûc thãø âæåüc biãøu diãùn båíi mäüt læåüc âäö quan hãû coï tãn laì E vaì coï caïc thuäüc tênh laì táûp táút caí caïc thuäüc tênh cuía táûp thæûc thãø E.Mäùi thæûc thãø trong táûp thæûc thãø tæång æïng våïi mäüt bäü trong læåüc âäö quan hãû tæång æïng. Nãúu E laì mäüt táûp thæûc thãø maì caïc thæûc thãø cuía noï âæåüc âënh nghéa thäng qua mäüt mäúi quan hãû våïi mäüt táûp thæûc thãø F khaïc thç læåüc âäö quan hãû tæång æïng coï tãn laì E vaì coï thuäüc tênh laì caïc thuäüc tênh cuía F duìng laìm khoïa cho E 2.Mäüt mäúi quan hãû R giæîa caïc táûp thæûc thãø E1,E2,...,Ek âæåüc biãøu diãùn bàòng mäüt læåüc âäö quan hãû coï tãn laì R vaì coï caïc thuäüc tênh laì caïc thuäüc tênh khoïa cuía E1,E2,...,Ek. ÅÍ âáy coï thãø coï sæû âàût tãn laûi caïc thuäüc tênh nãúu coï hai hoàûc nhiãöu táûp thæûc thãø coï caïc thuäüc tênh truìng tãn âãø âaím baío ràòng giæîa caïc táûp thæûc thãø khäng coï caïc thuäüc tênh truìng tãn. Mäùi bäü t trong quan hãû naìy tæång æïng våïi mäüt danh saïch caïc thæûc thãø (e1,e2,...,ek) trong âoï ei thuäücEi. Âãø minh hoüa, thê duû sau âáy seî chuyãøn så âäö thæûc quan hãû -thæûc thãø cuía siãu thë YVCB sang læåüc âäö Cå Såí Dæî Liãûu quan hãû: Læåüc âäö cho caïc táûp thæûc thãø 1. EMPS(ENAME, SALARY) Baìi soaûn Cå såí dæî liãûu Trang 9 Chæång 2 CAÏC MÄ HÇNH DÆÎ LIÃÛU CHO CAÏC HÃÛ QUAÍN TRË CÅ SÅÍ DÆÎ LIÃÛU 2. MANAGERS(ENAME) 3. DEPTS(DNAME, DEPT#) 4. SUPPLIERS(SNAME, SADDR) 5. ITEMS(INAME, ITEM#) 6. ORDERS(O#, DATE) 7. CUSTUMERS(CNAME, CADDR, BALANCE) Læåüc âäö cho caïc mäúi quan hãû 8. WORK_IN(ENAME, DNAME) 9. MANAGES(ENAME, DNAME) 10. CARRIES(INAME, DNAME) 11. SUPPLIES(SNAME, INAME, PRICE) 12. INCLUDES(O#, INAME, QUANLITY) 13. PLACED_BY(O#, CNAME) 2.3.3 Khoïa cuía quan hãû (Keys of relation) Cuîng giäúng nhæ caïc táûp thæûc thãø , quan hãû cuîng coï khoïa âãø phán biãût caïc bäü trong quan hãû . Táûp con S caïc thuäüc tênh cuía quan hãû R goüi laì khoïa cuía R nãúu thoía maîn hai têch cháút sau: 1. Khäng coï hiãûn haình naìo cuía R coï hai bäü truìng nhau trãn táút caí caïc thuäüc tênh cuía S nhæng khäng phaíi laì mäüt bäü. 2. Khäng coï táûp con tháût sæû naìo cuía S coï têch cháút (1). Coï nghéa laì nãúu S laì khoïa cuía quan hãû R thç trong thiãút kãú Cå Såí Dæî Liãûu åí mæïc váût lyï khäng cho pheïp læu træî hai bäü maì caïc giaï trë cuía chuïng giäúng nhau trãn S. Vê duû: Trong læåüc âäö quan hãû SUPPLIES(SNAME, INAME,PRICE) coï khoïa gäöm hai thuäüc tênh SNAME vaì INAME. Nãúu trong mäüt hiãûn haình naìo âoï cuía læåüc âäö quan hãû SUPPLIES täön taûi hai bäü (s,i,p1) vaì (s,i,p2) coï nghéa laì ngæåìi cung cáúp s cung cáúp màût haìng i våïi hai giaï laì p1 vaì p2 nhæ váûy dæî liãûu bë läùi trong træåìng håüp naìy vç khäng thoía maîn tênh cháút khoïa. Mäüt âiãöu quan troüng cáön phaíi nhåï laì tênh cháút khoïa chè phuû thuäüc vaìo læåüc âäö maì khäng phuû thuäüc vaìo mäüt hiãûn haình naìo cuía læåüc âäö âoï. Vãö nguyãn tàõt âãø phán biãût caïc bäü trong quan hãû thç mäùi quan hãû phaíi coï êt nháút mäüt khoïa, nhæ váûy mäüt læåüc âäö coï thãú coï nhiãöu khoïa. Nãúu læåüc âäö quan hãû coï nhiãöu khoïa thç ta choün mäüt khoïa laìm khoïa chênh(Primary) vaì caïc khoïa coìn laûi âæåüc goüi laì khoïa æïng cæí(indicate). Nguyãn tàõt thaình láûp khoïa 1. Nãúu læåüc âäö quan hãû âæåüc thaình láûp tæì mäüt táûp thæûc thãø thç khoïa cuía táûp thæûc thãø âoï âæåüc láúy laìm khoïa cho læåüc âäö quan hãû. Baìi soaûn Cå såí dæî liãûu Trang 10 Chæång 2 CAÏC MÄ HÇNH DÆÎ LIÃÛU CHO CAÏC HÃÛ QUAÍN TRË CÅ SÅÍ DÆÎ LIÃÛU 2. Nãúu læåüc âäö quan hãû âæåüc thaình láûp tæì mäúi quan hãû nhiãöu_nhiãöu giæîa caïc táûp thæûc thãø E1 vaì E2 thç táûp táút caí caïc thuäüc tênh khoïa cuía E1 vaì E2 âæåüc duìng laìm khoïa cho læåüc âäö quan hãû . 3. Nãúu læåüc âäö quan hãû âæåüc thaình láûp tæì mäúi quan hãû mäüt_mäüt giæîa caïc táûp thæûc thãø E1 vaì E2 thç táûp táút caí caïc thuäüc tênh khoïa cuía E1 hoàûc khoïa E2 coï thãø láúy laìm khoïa cho læåüc âäö quan hãû . 4. Nãúu læåüc âäö quan hãû âæåüc thaình láûp tæì mäúi quan hãû nhiãöu_mäüt tæì E1,E2,...,Ek-1 vaìo Ek thç táûp táút caí thuäüc tênh khoïa cuía E1,E2,...,Ek-1 âæåüc duìng laìm khoïa cho læåüc âäö quan hãû . Báy giåì aïp duûng caïc nguyãn tàõt trãn âãø xaïc âënh khoïa cho 13 læåüc âäö quan hãû âæåüc thiãút láûp åí trãn. Khoïa chênh in âáûm, khoïa æïng cæí in nghiãn. 1. EMPS(ENAME, SALARY) 2. MANAGERS(ENAME) 3. DEPTS(DNAME, DEPT#) 4. SUPPLIERS(SNAME, SADDR) 5. ITEMS(INAME, ITEM#) 6. ORDERS(O#, DATE) 7. CUSTUMERS(CNAME, CADDR, BALANCE) Læåüc âäö cho caïc mäúi quan hãû 8. WORK_IN(ENAME, DNAME) 9. MANAGES(ENAME, DNAME) 10. CARRIES(INAME, DNAME) 11. SUPPLIES(SNAME, INAME, PRICE) 12. INCLUDES(O#, INAME, QUANLITY) 13. PLACED_BY(O#, CNAME) 2.3.3 Caïc pheïp toaïn trãn mä hçnh dæî liãûu quan hãû Coï hai loüai pheïp toaïn : 1. Âaûi säú quan hãû (relatinal algebra) 2. Pheïp tênh logic Trong pháön naìy chuïng ta chè tçm hiãøu caïc pheïp toaïn âaûi säú quan hãû Pheïp toaïn âaûi säú quan hãû coï caïc toaïn haûng laì caïc hàòng quan hãû , biãún quan hãû Coï 5 pheïp toaïn cå baín laì pheïp håüp(Union), Træì(difference), Têch Descarstes, Pheïp chiãúu(Projection), Pheïp choün(Selection) vaì mäüt säú pheïp toaïn måí räüng tæì 5 pheïp toaïn cå baín trãn. Sau âáy chuïng ta tçm hiãøu cuû thãø tæìng pheïp toaïn. Baìi soaûn Cå såí dæî liãûu Trang 11 Chæång 2 Baìi soaûn Cå såí dæî liãûu CAÏC MÄ HÇNH DÆÎ LIÃÛU CHO CAÏC HÃÛ QUAÍN TRË CÅ SÅÍ DÆÎ LIÃÛU Trang 12 Chæång 2 Baìi soaûn Cå såí dæî liãûu CAÏC MÄ HÇNH DÆÎ LIÃÛU CHO CAÏC HÃÛ QUAÍN TRË CÅ SÅÍ DÆÎ LIÃÛU Trang 13
- Xem thêm -