1. Các khái niệm cơ bản
1.5. Khĩa của một quan hệ
Khĩacủamột tậpthựcthểlàmộtthuộctính hoặcmột sốthuộctính củathựcth ể,saocho
vớimỗi giátrịcủacácthuộctínhnày,tươngứngmột vàchỉmộtthểhiệncủatậ pthựcthể
(xác định một thực thể duy
nhất).
Trong nhiềutrường hợpkhĩa củatập thựcthể thường là thuộctính chỉđịnh củ a tậpthực
thểđĩ.
Mộtthựcthểcĩthểcĩnhiềukhĩa.Khiđĩcầnchọnramộtkhĩađểlàmkhĩach ính.
Kýhiệu:Làthuộctínhđượcgạchdưới.
1.5.2. Khĩacủamộtmốikếthợp
Khĩa củamột mối kếthợp nhận đượcbằng cách kết hợpkhĩa củacác tậpthự c thểtham
giavàomối kếthợpđĩ.Tậphợptấtcảcácgiátrịcủacácthuộctínhkhĩa củam ộtmốikết
hợpxácđịnhduynhấtmộtthểhiệncủamốikếthợpđĩ. Trang 24/109
Trong mơhình, khĩa của mốikết hợpngầm hiểu màkhơng đượcghi ra nếuk hơngquan
tâm.
1.6. Sốchiều(bậc)củamộtmốikếthợp,mốikếthợptựthân(đệquy) 1.6.1. Sốchiềucủamộtmốikếthợp
1.6.2. Mốikếthợptựthân(đệquy,vaitrị)
Mốikếthợptựthânlàmộtmốikếthợptừmộttậpthựcthểđiđếnchínhtậpthự cthểđĩ.
Ví dụmột nhân viên cĩthể khơng chịu sự quản lýcủa aihoặc một người,mộ t người cĩ
thểkhơngquảnlýaihoặc nhiềungười.
1.7. Tổngquáthĩavàchuyênbiệthĩa
Mặcdùkháiniệmbảnsốcủatậpthựcthểđốivớimốikếthợpchochúngtanhậ nbiếtmỗi
thể hiện của tập thực thể tham giatối thiểu là bao nhiêu, và tối đalà bao nhiê u vào mối
kếthợp.Nhưngtrong thựctế,mộtlớp cácđốitượngtrongtổchứccĩkhitồntại tìnhtrạng
là:mộtsốđốitượng(tậpcon) củanĩtham giavàomộtmối kếthợpnày,sốcịn lạicĩthể
tham giahoặckhơngvào nhữngmối kếthợpkhác,trongkhi cĩthểtấtcảcácp hầntử của
chúng lạicùng tham giavào mối kết hợpkhác nữa.Hoặc một tậpcon này cĩ nhữngđặc
tính này, cịn những phần tử khác thì cĩ thêm những đặc tính khác hoặc khơ ng. Chẳng
hạncùnglànhân viêntrongnhàmáy,thìcơng nhântrựctiếptham giasảnxuất, nhânviên
quảnlýthamgiacơng tácquản lý.Ðốivớinhân viênquản lýngườita quantâ mđếnchức
vụ, cịn đốivới nhân viên cơng nhânthì ngườita lạiquan tâm đếnbậc.Ðể phả n ánhtình
Trang 25/109
trạng đĩtrong phương phápmơhìnhhĩa,ngườitadùngkháiniệmchuyênbiệt hĩa/tổng
Chuyênbiệthĩanghĩalàphânhoạchmộtthựcthểthànhcáctập(thựcthể)con. Tổng quát hĩalà gộp cáctập thựcthể thànhmột tậpthựcthể baohàm tấtcảcá c thểhiện
của các tậpthực thể con.Các chuyên biệt được thừahưởng tất cảcác thuộctí nh củacác
tập thực thể mức trên và chính nĩ cĩ thể cĩ những thuộc tính khác. Các tậ p thực thể
chuyênbiệtcĩthểcĩnhữngmối kếthợpkhácnhauvới nhữngtậpthựcthểkhá cvàdođĩ
cácxửlýsẽcĩthểkhácnhautùytheotừngchuyênbiệtthànhphần. Kýhiệu:
1.8. Tậpthựcthểyếu
Một tập thực thể cĩ thể khơng cĩ đủ các thuộc tính để cấu thànhmột khĩa c hính, được
gọi là tập thực thể yếu. Một tập thực thể mà nĩ cĩ khĩa chính được gọi là tậ p thực thể
mạnh.Tập thực thể yếuphải tham gia vào mối quan hệmà trong đĩ cĩmột tậ p thực thể
mạnh(tậpthựcthểmàtậpthựcthểyếuphụthuộc)
Coi tập thực thể thân nhân (THANNHAN) cĩ các thuộc tính là tên thân nhâ n (TenTN),
ngày sinh (NTNS), phái (Phai), quan hệ với nhân viên (QuanHe). Như vậy tậ p thực thể
nàykhơngcĩkhĩachínhnênnĩlàtậpthựcthểyếu.
Mặc dù tập thực thể yếu khơng cĩ khĩa chính nhưng chúng ta cần một phươ ng tiện để
phân biệt trong số những thực thể thuộc tập thực thể này mà chúng phụ thuộ c vào một
Phần phân biệt của một tập thực thể yếu là tập hợp các thuộc tính ch o phép sự
phânbiệtnĩitrênđượcthựchiện.Vídụthuộctínhtênthânnhân(TenT N) làphần
phânbiệtcủatậpthựcthểyếuthânnhân(THANNHAN). Trang 26/109
Phần phân biệt của một tập thực thể yếu cũng cịn được gọi là khĩa bộ phận của
tậpthựcthểyếu.
Khĩa chínhcủa tậpthực thểyếu được hình thànhbởi khĩa chínhcủa tập thựcthể
mạnhmàtậpthựcthểyếuphụthuộcvào,cộng vớiphần phânbiệtcủatậ p thựcthể
yếu.VídụkhĩachínhcủaTHANNHANlàMaNV,TenTN. Kíhiệu:
Mộttậpthựcthểyếuđượcchỉrabởimộthộpnétđơitronglượcđồ,vàquan hệ địnhdanh
tươngứngđượcvẽbởihình thoinétđơi.Tronghình,phần phânbiệtđượcgạch dướigián
đoạn.
2. Vídụ
2.1. Quảnlýđềán
Giảsửsauđâylàmộtsốyêucầudữliệuđốivớimộtcơngty chuyênthựchiệnc ácđềán:
Cơngtygồm nhiềunhânviên,mỗinhânviênđượcgánmãnhânviên đểtiệnviệ cquản lý,
cĩhọ tên,ngàysinh, mức lươngđượchưởng. Cơngtygồm nhiềuphịng ban, mỗi phịng
ban cĩ chức năng riêng của mình, cĩ mã phịng, tên phịng, cĩ một trưởng p hịng. Mỗi
nhân viên chỉ thuộc vào một phịng ban và một phịng cĩ thể cĩ nhiều nhân viên. Mỗi
nhânviêntrongphịngcịncĩthểchịusựquản lýtrựctiếptừmộtnhânviênkhá c.
Do cơngty thực hiệnđềán,nênmỗi phịng cĩthể cĩnhiềuvănphịng giaodịc h haylàm
việckhácnhauởtạinhữngđịađiểmkhácnhau.
Mỗimột đềánkhiđượcxâydựng,cĩmãđềán, tênđềán,địađiểmthựchiện đ ềánđĩvà
domộtphịngbanchịutráchnhiệmchủtrìđềán.
Quá trình thực hiện đềán cĩ thể đượcchia nhỏ thành nhiều cơng việc và phâ n cơn cho
cácnhân viênthựchiện,khiđĩcơngty sẽghinhậnlạithờigian phâncơngcơn gviệc cho
nhânviên(tínhbằng sốgiờ/tuần)đểtheodõitiếnđộthựchiện.
Nhằm cĩthểchămlođờisống củanhânviên,cơng tycĩghinhậnlạinhữngth ơngtinvề
nhữngthânnhâncủanhânviên,baogồmnhữngngườinhưchamẹ,chồngvợ,v àconcái.
Từmơtảtìnhhuốngtrên,mơhìnhquanhệthựcthểnhưsau: Trang 27/109
TenNV DiaChi
HoNV Phai MaPhg TenPhg
MaNV (1,n) QuanLy (0,n) NHANVIEN Luong (1,1) (1,n) Thuoc (1,1) (1,1) PHONGBAN (1,n) (1,n) (1,n) (1,n) Latruongphong Co NgayNhanChuc
Moiquanhe Chutri (1,n)
Quanhe
(1,n) Thamgia DiaDiem THANNHAN (1,n) (1,1) MaTN HoTN NgaySinh Phai DEAN TenTN
MaDA TenDA DDiemDA
Trang 28/109
3. Bàitập
Hãyxâydựngmơhìnhthựcthểkếthợpchotìnhhuốngsau:
Giảsửsauđâylà mộtsốyêucầudữ liệuđốivớivídụhoạtđộngngânhàng: Ngânhàngđượctổchứcthànhcácchinhánh.Mỗi chinhánhtọalạctạimộtthà nhphốvà
đượcđịnhdanhbởimộttênduynhất.Ngânhàng theodõitàisảncủamỗichinh ánh.
Các kháchhàngcủa ngân hàngđượcđịnh danh bởisốCMND củahọ. Ngânhà nglưutrữ
các tên khách hàng, đường phố và thành phố mà khách hàng sinh sống. Khác h hàng cĩ
thể cĩtàikhoảngởi vàtàikhoảnvay.Một kháchhàngcĩthể đượckếthợpvới một nhân
viênngânhàng.Nhânviênnàycĩthểlànhânviênchovayhoặcnhân viênbình thường.
Các nhân viên ngân hàng được định danh bởi mã sốnhân viên của họ. Bộ ph ận quản lý
ngân hàng lưutrữtên vàsố phonecủa mỗi nhân viên, têncủa các ngườiphụ t huộc nhân
viên vàmãsốnhân viêncủa ngườiquản lýnhânviên. Ngânhàng cũngtheo dõ i ngàybắt
đầulàmviệccủanhân viên,vàthờigianthuênhânviênlàmviệc.
Ngân hàng đưa ra các loại tài khoản gởi, tài khoản tiết kiệm và tài khoản s éc. Các tài
khoản gởicĩthểđượcnắmgiữbởi nhiềuhơnmộtkháchhàng,vàmột kháchh àngcĩthể
cĩ nhiều hơnmột tài khoản. Mỗi tàikhoản gởi được gán bởi một số tàikhoản duy nhất.
Ngân hàng duy trì thơng tin về cân đối của mỗi tài khoản gởi và ngày gần n hất mà tài
khoản gởi được truy cập bởi mỗi khách hàng nắm giữ tài khoản đĩ. Ngồi r a, mỗi tài
khoảntiếtkiệmcịncĩmứclãisuất,vàtàikhoảnséccĩsốtiềnrútvượtmức. Một tàikhoảnvayđầutiênxuấtphát từmộtchinhánhnàođĩ,vànĩcĩthểđượ cnắmgiữ
bởi một hoặc nhiều khách hàng. Mỗi tài khoản vay được gán bởi một số tài khoản duy
nhất. Vớimỗi tàikhoảnvay ngân hàng theodõi sốtiền vayvàsố tiềntrả. Mặc dù sốthứ
tự lần trả tiền vay (gọi tắt là số lần trả) khơng xác định duy nhất lần trả đối với các tài
khoản vay của ngân hàng nhưng nĩ xác định duy nhất lần trả đối với một tài khoản vay
cụthể. Ngàyvàsốtiền trảđốivới mỗilần trảtiềnvaycũng đượcngân hàng th eodõi ghi
nhận.
Trang 29/109
Mơ Hình Dữ Liệu Quan Hệ
Mơ hình dữ liệu quan hệ lần đầu tiên được đề nghị bởi Edgar F. Codd vào năm 1970.
Hiện nay mơ hình quan hệlà mơ hình ưuthế đốivới các ứngdụng xử lý dữ li ệu thương
mại.Chươngnày sẽtrình bàychitiếtvềcáckhái niệmđãnhắctới trong chươn g 1vàcoi
đĩnhưlànhữngcơsởnềntảngđểtiếptụcnghiêncứucácphầntiếptheo.
1. Cáckháiniệmcơbản
1.1. Thuộctính
Thuộctính(attribute)làmộttínhchấtriêngbiệtcủamộtđốitượngcầnđượclư utrữtrong
CSDLđểphụcvụchoviệckhaithácdữ liệuvềđốitượng. Vídụ:
ĐốitượngLOPHOCcĩcácthuộctínhmãlớp,tênlớp,khĩa,sốhọc viên.
ĐốitượngSINHVIENcĩcácthuộctínhmãsinhviên,họtên,ngàysinh, quêquán.
Các thuộctínhđượcđặctrưng bởi mộttênthuộctính, kiểugiátrị(data type) v à miềngiá
trị(domain).
Trongcácứngdụngthựctế,ngườiphântích–thiếtkếthườngđặttênthuộctín hmộtcách
gợi nhớ, tuy nhiênkhơng nên đặt tênquá dài (vìlàm cho việc viết câu lệnh tr uy vấn vất
vảhơn) nhưngcũng khơngnên quángắn (vìkhơng thểhiện đượcngữ nghĩam ột cách rõ
ràng).
Ví dụ:nếu cĩhai đối tượngHỌCVIEN vàGIAOVIEN đều cĩthuộctính tên t hì nên đặt
tên mộtcách rõràng là Tên_học_viên vàTên_giáo_viênvì chúng mangngữn ghĩa hồn
Mỗi mộtthuộctính đềuphải thuộcmột kiểudữliệu.Kiểu dữ liệu cĩthểlà vơ hướng -là
cáckiểudữ liệucơbảnnhưchuỗi,số, logic,ngàytháng…hoặccáckiểucĩcấu trúcđược
địnhnghĩadựatrêncáckiểudữliệuđãcĩsẵn.
MỗihệquảntrịCSDLcĩthểgọitêncáckiểu dữliệunĩitrênbằngcáctêngọi khácnhau,
ngồi ra cịn bổ sung thêm một sốkiểu dữ liệu riêng củamình. Ví dụ, Micros oft Access
cĩ kiểu dữ liệu text,memolà kiểu chuỗi; SQLServercĩ kiểu dữ liệutext, cha r, varchar,
nvarcharlàkiểuchuỗi.
Mỗi một thuộctính cĩthể chỉ chọn lấynhững giátrịtrongmột tậphợpcon c ủakiểu dữ
liệu. Tập hợp các giá trị mà một thuộc tính A cĩ thể nhận được gọi là miền giá trị của
thuộctínhA,thườngđượckýhiệulàMGT(A)hoặcDom(A). Vídụ:
Điểmcủasinhviênlàmộtsố,nhưngluơnnằmtrongđoạntừ0đến10.
Với kiểu dữ liệu cấu trúc thì miền giá trị chính là tích đề các (hoặc tập con c ủa tích đề
các)củacácmiền giátrịthànhphần.
( )nAAAR ,..., 21 .TậpthuộctínhcủaquanhệR cịnđượcký hiệulàR .
Trong nhiềuhệquản trịCSDL,thường đưathêm vào miềngiátrịcủacácthuộ c tính một
giá trị đặc biệt gọi là giá trị null.Tùy theo ngữ cảnh mà giá trịnày cĩthể là một giá trị
khơng thể xác định đượchay một giá trị chưa đượcxác định ở thời điểmnhậ p tinvà cĩ
thểđượcxácđịnhvàomộtthờiđiểmkhác.
Nếu thuộc tính cĩ kiểu dữ liệu vơ hướng thì nĩđược gọi là thuộc tính đơnho ặc nguyên
tố,nếuthuộctínhcĩkiểu dữliệucĩcấutrúcthìtanĩirằngnĩlàthuộctínhkép.
1.2. Quanhệnngơi
Một quanhệR cĩnngơiđượcđịnhnghĩatrêntậpcácthuộctính U = {A1,A2,...
An}vàkèm
theo nĩlàmộttântừ,đểxácđịnhmối quanhệgiữacácthuộctính Ai,vàđược kýhiệulà
+
Với Ai là một thuộc tính cĩ miền giá trị là MGT(Ai), như vậy R(A1,A2,...An) là tập con
củatíchđềcác: MGT(A1)xMGT(A2)x…xMGT(An) Quanhệcịnđượcgọilàbảng(table).
Vídụ:
KHOA(Mã_khoa, Tên_khoa) là một quan hệ 2 ngơi với tân từ : “Mỗi khoa
cĩ một mã
khoa duynhấtđểphânbiệtvớicáckhoakhác,cĩmộttêngọi”.
SINHVIEN (Mã_sinh_viên, Tên_sinh_viên, Ngày_sinh, Quê_quán, Khoa) là một quan
hệ 5 ngơi với tântừ : “Mỗi sinh viên cĩmột mã sinh viên duy nhất đểphân b iệt với các
sinh viên khác, cĩ họ tên, ngày tháng năm sinh, quê quán và học tại một k hoa trong
trường ”.
1.3. Bộ
Một bộ (tuple) giátrị làcác thơng tin của một đối tượng thuộcquan hệ. Bộ g iá trị cũng
thường đượcgọilàmộtmẫutinhaybảnghi(record),dịngcủabảng(row). Trang 31/109
Một bộ q là một vecto gồm n thành phần thuộc tậphợp con của tích đềcác miền gi á trị
củacácthuộctínhvàthỏamãntântừđãchocủaquan hệ.
Vídụ:cácbộgiátrịdựatrêncácthuộctínhcủaquanhệSINHVIEN q1=(SV001,TrầnVănMạnh,10/10/1980,LâmĐồng,CTK27)
q2=(SV002,NguyễnThịHoaHuệ,25/11/1985,KhánhHịa,MTK27) q3=(SV003,TăngThanhHà,11/11/1982,Tp.HồChíMinh, NVK27) Để lấy thành phần Ai – là giá trị thuộc tính Ai của một bộ giá trị q, ký hiệu q.Ai. Đây
đượcgọilàphépchiếumộtbộlênthuộctínhAi
Vídụ: q1.Tên_sinh_viên=“TrầnVănMạnh” q2.Khoa=“MTK27” 1.4. Lượcđồqua nhệ Lượcđồqua nhệ(Relatio nschema) l àsự trừutượ nghĩa củaquan hệ,một sự trừutượng
hĩaởmứccấutrúccủamộtbảng haichiều.Khinĩiđếnlượcđồquan hệtứclà đềcậptới
cấutrúctổng quátcủamộtquan hệ;khinĩiđếnmộtquanhệthìhiểurằngđĩlà một bảng
cĩcấutrúccụthểtrênmộtlượcđồquanhệvới cácbộgiátrịcủanĩ.
Lượcđồcơsởdữ liệulàtậphợpcáclượcđồquanhệcon {Ri},kýhiệu làζ. Thể hiện(hay tìnhtrạng)củaquan hệR,kýhiệu làTR,làtậphợpcácbộgiátr ị củaquan
hệ R vào một thời điểm. Như vậy, tạinhững thờiđiểm khác nhau thì quan hệ cĩ những
thểhiệnkhácnhau.
Thểhiệncủacáclượcđồquan hệconTRigọilàtìnhtrạngcủalược đồCSDLζ VídụvềthểhiệncủaquanhệKHOA vàLOPHOC
Mãkhoa Tênkhoa Ngàythànhlập
CNTT Cơngnghệthơngtin 10/10/1994
TH Tốnhọc 20/10/1976
VL Vậtlý 20/10/1976
Trang 32/109
1.5. Khĩacủamộtquan hệ
QuanhệRđịnhnghĩatrêntậpcácthuộctính U ={A1,A2,...,An} Khiđĩ K ⊆U làkhĩacủaquanhệRnếuthoả:
(i) Kxácđịnhđượcgiátrịcủa Aj,vớimọi j=1,2,...,n
(ii) Khơng tồn tại K' ⊆ K mà K'cĩthể xác định được giá trịcủa
Aj, với mọi
j=1,2,...,n
Bảng3.1.ThểhiệncủaquanhệKHOA
Mãlớp Tênlớp Sốhọcviên Mãkhoa
CTK27 CơngnghệthơngtinK27 75 CNTT
HHK18 HĩahọcK18 95 HH
THK20 Tốn họcK20 120 TH
Theođịnh nghĩa trên, K làtập con nhỏ nhất màgiá trịcủanĩ cĩthể xácđịnh