Khĩa của một quan hệ

Một phần của tài liệu giáo trình cơ sở dữ liệu dành cho sinh viên ngành công nghệ thông tin (Trang 28 - 51)

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

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

một

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 sinh viên duy nhất đểphân b iệt với các

sinh viên khác, họ tên, ngày tháng năm sinh, quê quán 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đĩ KU 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' ⊆ KK'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

Một phần của tài liệu giáo trình cơ sở dữ liệu dành cho sinh viên ngành công nghệ thông tin (Trang 28 - 51)

Tải bản đầy đủ (DOCX)

(137 trang)
w