bai giang csdl - cd

Upload: minh-chau-nguyen

Post on 06-Apr-2018

285 views

Category:

Documents


1 download

TRANSCRIPT

  • 8/3/2019 Bai Giang Csdl - CD

    1/63

    Y BAN NHN DN TNH QUNG NAMTRNGI HC QUNG NAM

    ----- -----

    BI GING

    C S D LIU

    Nghnh hc : C TINS VHT : 04Ging vin : NGUYN TH MINH CHU

    Nm hc 2009 - 2010

  • 8/3/2019 Bai Giang Csdl - CD

    2/63

    Bi ging: C S D Liu---------------------------------------------------------------------------------------------------------------

    A. M U

    1. Tn hc phn: C S D LIU

    2. S n v hc trnh: 04

    3. Trnh : C Tin hc.4. Phn b thi gian: (60 tit)

    - L thuyt + Bi tp: 53 tit.

    - Thc hnh: 05 tit.

    - Kim tra: 02 tit.

    5. iu kin tin quyt: hc cc h qun tr CSDL nh Access, SQL Server2005.

    6. Mc tiu ca hc phn:

    C s d liu l mt mn hc nghin cu v phng php a ra mt csdl ti uda trn m hnh quan h. Mn hc ny cung cp cho sinh vin nhng kin thc c bn v:cc khi nim v cc thnh phn ca m hnh thc th lin kt v m hnh quan h, cc phpton i s quan h trn m hnh quan h, ngn ng truy vn c cu trc, cc l thuyt thitk c s d liu.7. M t vn tt ni dung hc phn: Hc phn gm 4 chng :

    Chng 1 Tng quan v c s d liuChng 2 Cc m hnh c s d liu

    Chng 3 Ngn ng truy vn c cu trcChng 4 L thuyt thit k c s d liu

    8. Nhim v ca sinh vin:

    - D lp : 100%

    - Bi tp : lm bi tp y , nghin cu thm ti liu

    9. Ti liu tham kho:

    1. Nguyn l ca cc h c s d liu, Nguyn kim Anh, nxb i Hc Qucgia H ni, 2004

    2. Nguyn l cc h c s d liu v c s d liu tri thc, JEFFREY D.ULLMAN, Bin dch: Trn c Quang, hiu nh H Thun, nxb Thng k, 1998.10 . Tiu chn nh gi sinh vin:

    - Kim tra gia k :30%.

    - Thi cui k : 70%.

    11 . Thang im:

    2

  • 8/3/2019 Bai Giang Csdl - CD

    3/63

    Bi ging: C S D Liu---------------------------------------------------------------------------------------------------------------

    Tt c cc tiu chun nu mc 10 u c chm theo thang im 10. Tiu chunu s c tng hp t 2 bi kim tra thnh mt ct im c trng s l 30% theo thangim 10 v c cng b ngay trong tun cui cng kt thc ln lp hc phn. im thi cuihc k c trng s l 70% kt hp vi ct im c trng s 30% trn s l im ca hc

    phn.

    3

  • 8/3/2019 Bai Giang Csdl - CD

    4/63

    Bi ging: C S D Liu---------------------------------------------------------------------------------------------------------------

    MC LC

    Chng 1: TNG QUAN V C S D LIU ( 5 Tit)

    1. CC KHI NIM C BN

    1.1. Thng tin v d liu:

    1.2. C s d liu (Database):

    2. H QUN TR C S D LIU (Database Management System - DBMS)

    2.1. Kin trc ca mt DBMS

    2.2. Tnh c lp ca DBMS

    2.3. Khi nim lc (Sheme) v th hin (Instance)2.4. Cc ngn ng ca DBMS:

    2.5. Cc kh nng ca mt DBMS

    3. H C S D LIU V PHN LOI

    BI TP:

    Chng 2:CC M HNH C S D LIU (10 tit)

    1. M HNH THC TH-MI QUAN H ER(Entity-Relationship)

    1.1. Thc th:

    1.2. Mi quan h (Relationship):

    1.3. Khi nim phn cp ISA (L mt)

    2. M HNH C S D LIU QUAN H R(Relation):

    2.1 Quan h:2.2. Bin i m hnh ER sang m hnh R

    3. RNG BUC TON VN (Integrity Constraint)

    3.1. Rng buc trn phm vi mt quan h

    4

  • 8/3/2019 Bai Giang Csdl - CD

    5/63

    Bi ging: C S D Liu---------------------------------------------------------------------------------------------------------------

    3.2. Rng buc trn phm vi nhiu quan h (Rng buc tham chiu)

    4. CC PHP TON I S QUAN H

    4.1. Php hp (Union)

    4.2. Php giao (Intersect)

    4.3. Php tr (Minus)

    4.4. Tch - Cc

    4.5. Php chiu (Projection)

    4.6. Php chn(Selection)

    4.7. Php kt ni (Join)4.8. Php chia (Division)

    5. CC V D V PHP TON I S QUAN H:

    BI TP

    Chng 3: NGN NG TRUY VN C CU TRC-SQL

    (Structured Query Language) (20 tit (15 tit l thuyt 5 tit thc hnh))

    1. GII THIU

    2. TON T V HM

    3. CU LNH SQL NH NGHA D LIU

    4. CU LNH SQL TRCH LC D LIU (Select Query):

    4.1. Truy vn n gin

    4.2. Cu truy vn iu kin

    4.3. Cu truy vn sp xp4.4. Cu truy vn kt ni nhiu bng

    4.5. Cc hm tnh ton

    4.6. Truy vn theo nhm

    4.7. Truy vn con lng nhau

    5

  • 8/3/2019 Bai Giang Csdl - CD

    6/63

    Bi ging: C S D Liu---------------------------------------------------------------------------------------------------------------

    5. CU LNH SQL CP NHT D LIU (Update Query)

    6. CU LNH SQL XO D LIU

    BI TP

    Chng 4: L THUYT THIT K C S D LIU QUAN H (25 tit)1. GII THIU

    2. PH THUC HM (Functional Dependency)

    2.1. Gii thiu

    2.2. nh ngha

    2.3. V d

    3. H TIN CHO PH THUC HM

    3.1. Gii thiu:3.2. Suy din l-gc t F

    3.3. Bao ng ca tp ph thuc hm

    3.4. H tin Armstrong v h qu

    4. BAO NG CA TP THUC TNH V THUT TON TM BAO NG

    4.1. nh ngha

    4.2. Tnh cht

    4.3. Thut ton xc nh bao ng

    5. KHO CA MT QUAN H V THUT TON TM KHO

    5.1. Cc nh ngha v kho

    5.2. Thut ton tm mt kho:

    5.3. Thut ton tm tt c cc kho:

    6. PH CA MT TP PH THUC HM

    6.1. nh ngha

    6.2. B

    6.3. Ph ti thiu

    6.4. V d

    7. PHP TCH LC QUAN H

    7.1. nh ngha

    6

  • 8/3/2019 Bai Giang Csdl - CD

    7/63

    Bi ging: C S D Liu---------------------------------------------------------------------------------------------------------------

    7.2. Php tch khng mt thng tin (lossless-join decomposition)

    7.2.1. t vn

    7.2.3. Kim tra php tch khng mt thng tin

    7.2.4. nh l7.3. Php tch bo ton ph thuc hm

    7.3.1. t vn

    7.3.2. Cc nh ngha

    8. CHUN HO LC QUAN H

    8.1. Dng chun 1NF (First Normal Form)

    8.2. Dng chun 2NF

    8.3. Dng chun 3NF8.4. Dng chun Boyce - Codd (BCNF)

    9. PHP TCH LC QUAN H V DNG CHUN 3NF

    9.1. Php tch lc quan h v dng chun 3 bo ton ph thuc hm

    9.2. Php tch lc quan h v dng chun 3 khng mt thng tin v bo ton ph thuc

    hm

    BI TP

    7

  • 8/3/2019 Bai Giang Csdl - CD

    8/63

    Bi ging: C S D Liu---------------------------------------------------------------------------------------------------------------

    B. NI DUNGChng 1: TNG QUAN V C S D LIU

    1. CC KHI NIM C BN

    1.1. Thng tin v d liu:Trong ng cnh ca ngnh khoa hc my tnh, ngi ta quan nim rng d liu l cc cons, ch ci, hnh nh, m thanh... m my tnh c th tip nhn v x l. Bn thn d liuthng khng c ngha i vi con ngi.Thng tin: L s kt hp mt cch c t chc gia cc d liu. Thng tin cng l d liunhng c x l v c biu din di dng ph hp vi mc ch yu cu ca ngi sdng.V d: Khi cn lu tr thng tin v mt sinh vin, cc k t Nguyn Vn An, A02 l ccd liu. Nhng khi ta t chc d liu dng sau th chng ta u bit c thng tin v sinhvin :

    MASV TENSV NGAYSINH GIOITINH HOCTAPA02 Nguyn Vn An 1/1/70 Nam Kh

    1.2. C s d liu (Database):

    V d: Ti mt trng i hc, ngi s dng qun l sinh vin bng mt h thng chngtrnh qun l trn my tnh. D liu lu tr trong my tnh bao gm thng tin v sinh vin,mn hc, im... Mi thng tin v mi quan h ny c biu din trong my thng qua vicxem kt qu hc tp ca sinh vin. Vy lm th no biu din d liu v m bo sinhvin c th bit kt qu hc tp ca mnh mt cch nhanh nht v khng b sai lch.

    D liu nu trn c lu trong my theo mt quy nh no v c gi l c s d

    liu (CSDL).C s d liu l mt h thng cc thng tin c cu trc c lu tr trn cc thit b lutr thng tin th cp (nh bng t, a t ...) c th tha mn yu cu khai thc thng tinng thi ca nhiu ngi s dng hay nhiu chng trnh ng dng vi nhiu mc chkhc nhau.

    8

  • 8/3/2019 Bai Giang Csdl - CD

    9/63

    Bi ging: C S D Liu---------------------------------------------------------------------------------------------------------------

    C s d liu l lnh vc nghin cu v cc: M hnh, nguyn l, phng php t chc dliu trn cc vt mang tin ( a, bng t). Nghin cu v c s d liu gip chng ta:

    - Lu tr, tm kim, cp nht thng tin mt cch khoa hc, tit kim b nh.- Tm hiu nhng rng buc mang tnh cht ni ti ca mt m hnh c s d liu. V

    d: Khi mt sinh vin b xo khi c s d liu nhng cc thng tin v im ca sinh vin cn c lu tr (bo lu).

    2. H QUN TR C S D LIU (Database Management System - DBMS)

    H qun tr c s d liu l h thng phn mm (b din dch-Interpreter) vi ngn ng bccao nhm gip ngi s dng c th to lp v thao tc (cp nht, xo, xut d liu) vid liu c lu tr m t nhiu khng cn quan tm n thut ton chi tit hoc biu dind liu trong my.Cc DBMS ph bin hin nay: Foxpro, Microsoft Access, SQL Server 2000, Oracle.

    2.1. Kin trc ca mt DBMS

    -CSDL mc vt l: L cc tp d liu theo mt cu trc no c lu tr trn ccthit b nh (a, bng t)

    -CSDL mc khi nim/ mc l-gic: L mt biu din tru tng ca mc vt l.-CSDL mc khung nhn (View): L cch nhn, quan nim ca ngi dng i vi

    CSDL mc khi nim.

    2.2. Tnh c lp ca DBMS

    - c lp mc vt l: L kh nng thay i s vt l m khng dn n chng trnhng dng phi vit li.

    - c lp mc l-gic: L kh nng thay i s l-gic m khng dn n chng trnhphi vit li

    2.3. Khi nim lc (Sheme) v th hin (Instance)

    - Lc : L b khung ca c s d liu. Bao gm cc thuc tnh m t tp thc th.V d SINHVIEN(MASV, TENSV, NGAYSINH,)

    - Th hin: L d liu hin c trong CSDL ng vi lc . V d: A01, NGUYNVN AN, 1/1/1969,

    2.4. Cc ngn ng ca DBMS:

    9

    Khung nhn 2

    Khung nhn 1

    Khung nhn n

    Ngi dng 2

    Ngi dng 1

    Ngi dng n

    CSDLmc vt l

    CSDL mckhi nim

    ..

  • 8/3/2019 Bai Giang Csdl - CD

    10/63

    Bi ging: C S D Liu---------------------------------------------------------------------------------------------------------------

    Cc h qun tr cung cp cho ngi s dng mt h cc cu lnhNgn ng nh ngha d liu (Data Definition Language - DDL): Cho php m t hoc

    nh ngha cc i tng CSDL hay ni mt cch khc l cho php ngi s dng to CSDLmi v ch nh lc ca chng.

    Ngn ng thao tc d liu (Data Manipulation Language - DML): Cung cp cc cu lnh

    thao tc v cp nht d liu.2.5. Cc kh nng ca mt DBMS

    - H tr t nht mt m hnh d liu- m bo tnh c lp d liu- H tr cc ngn ng cp cao cho php ngi s dng nh ngha v thao tc d liu- Qan l giao dch, cung cp kh nng truy cp ng thi, ng n i vi CSDL

    nhiu ngi dng ti mt thi im.- iu khin truy cp: Cho php hay khng cho php ngi dng khi truy cp vo

    CSDL

    - Phc hi d liu: Kh nng phc hi (khng lm mt d liu) khi gp s c ca hthng.- Kh nng bo mt

    3. H C S D LIU V PHN LOI

    H c s d liu l h thng gm 4 thnh phn c bn:- C s d liu hp nht: Cch t chc d liu khng d tha v c tnh cht chia s.- Ngi s dng: Nhng ngi truy cp vo c s d liu: Cp nht, trch d liu,

    xo d liuthng qua DBMS hoc vit cc chng trnh ng dng. Cng c th l nhngngi qun tr c s d liu (ngi iu khin h thng: Cp php quyn truy cp, cp phpti khon, x l cc giao dch-Transaction)

    - Phn mm DBMS- Phn cng: Cc thit b nh c s dng lu tr d liu

    Phn loi cc h c s d liu:

    a) C s d liu c nhn (Personal Database)

    C mt ngi s dng (Ngi dng cui), va l ngi to lp, thao tc vi d liu, vangi vit chng trnh ng dng va l ngi qun tr c s d liu. H c s d liu nythng dng trong cc qun l va v nh, n gin v d s dng.

    b) C s d liu trung tm (Central Database)Gm nhiu ngi dng thng qua thit b u cui (Terminal) ch c mn hnh v bn phmv cc kt ni truyn thng truy cp vo d liu t mt v tr trung tm. Vic tnh ton

    10

    User DB

    DBMS

  • 8/3/2019 Bai Giang Csdl - CD

    11/63

    Bi ging: C S D Liu---------------------------------------------------------------------------------------------------------------

    v x l thc hin ti my trung tm. H c s d liu ny thng p dng cho vic x lcc giao dch nh t v my bay

    c) C s d liu khch/ ch (Client/ Server Database)

    Cc my tnh c ni mng chia s ti nguyn, trong c mt my c kt ni trctip vi c s d liu gi l my ch (Server). My ch cha cc ng dng phn mm dng

    qun l tp, x l cc giao dch, cc thao tc d liu gi l cc dch v, my ch cnhim v p ng cc dch khi my khch gi yu cu. My khch cha cc ng dngphn mm gi cc dch v t my ch.Mc ch ca h c s d liu ny cho php cc ng dng ca my khch (giao din ngis dng) truy cp vo d liu c qun l bi my ch, trong khi x l c s d liuc thc hin trn my ch.

    BI TP:

    1. Phn bit ba khi nim c bn: Thng tin, d liu v tri thc2. Mc ch ca mn hc c s d liu3. Trnh by cc h c s d liu v cch phn loi4. Phn bit c s d liu v h qun tr c s d liu

    Chng 2:CC M HNH C S D LIU

    11

    DBDBMS

    DBDBMS

    My khch

    My ch

    Mng cc b

    My khch

    My khch

  • 8/3/2019 Bai Giang Csdl - CD

    12/63

    Bi ging: C S D Liu---------------------------------------------------------------------------------------------------------------

    xc nh thng tin trong th gii thc cn lu tr, chng hn lu tr thng tin v qun lsch, qun l nhn s, qun l mua bn hngta bt u t vic xy dng m hnh d liuthch hp biu din d liu. Chng a b qua vic nghin cu cch lu tr trn a (c sd liu mc vt l) m ta s xy dng mt hnh d liu mc l-gic. Mt m hnh CSDL lmt h hnh thc gm hai phn:

    - Mt h thng cc k hiu m t d liu- Mt tp hp cc php ton thao tc trn d liu

    chng ny ta dng hai m hnh ph bin:-M hnh thc th-mi quan h (Entity-Relationship, ER)-M hnh quan h (Relational)

    1. M HNH THC TH-MI QUAN H ER(Entity-Relationship)

    1.1. Thc th:

    Thc th l mt ci g tn ti v c th phn bit c, c ngha l ta c th phn bit

    thc th ny vi thc th khc.Thc th l mt i tng c thc hay tru tng m chng ta mun ghi chp nhng thngtin v n.V d:Ci bn l mt thc th, nhng ng vt, c.... l cc thc th c thc.Mn hc, Phng ban l nhng thc th tru tng (do ngi dng nh ngha)Tp thc th: Tp cc thc th c tnh cht ging nhau, chng hn: Ngi, xe myMi tpthc th xc nh bng mt tn.Ch : Dng t thc th v tp thc th l nh nhauThuc tnh:L cc c trng ca thc th, nhm m t thc th. Thc th Nhn Vin gm c cc thuctnh: S CMND, h tn, ngy sinh, gii tnh, lngThc th Sch gm c cc thuc tnh:M sch, tn sch, nm xut bn, n giK hiu thc th v thuc tnh:

    Kho ca mt thc th (Entity Key): l cc thuc tnh nhn din ca loi thc th hay phn bit cc thc th vi nhau. Cnc vo cc gi tr ca cc thuc tnh nhn din ny ngi ta c th xc nh mt thc th duy

    12

    SinhVien

    MaSV

    TenSV

    NgaySinh

    QueQuan

  • 8/3/2019 Bai Giang Csdl - CD

    13/63

    Bi ging: C S D Liu---------------------------------------------------------------------------------------------------------------

    nht ca mt loi thc th. V d, kha ca loi thc th SinhVien c th l MaSV; kha caloi thc th Xe my c th l Bin S Xe.C th kt hp t hai thuc tnh tr ln to thnh mt kho, qun l dn s trn ton thgii ta kt hp MaQG (M quc gia) v SoCMND (s chng minh nhn dn) to thnh mtkho

    1.2. Mi quan h (Relationship):

    Mt mi quan h l kt ni gia mt thc th vi mt hay nhiu thc th khc trong mt tthc.Ta c hai thc th NhanVien v Phong, ta ni mi nhn vin thuc mt phng banCc kiu quan h:n-1 (nhiu-mt): Nhiu thc th c th kt hp vi mt thc th khcK hiu

    Nhiu nhn vin lun thuc mt phng lm vic1-1: Mt thc th c th kt hp vi mt v ch mt thc th khcK hiu

    Mi Phng c Lnh o bi mt v ch mt Trng bann-n: Mt thc th c th kt hp vi mt hoc nhiu thc th khc v ngc li.K hiu

    13Ngy giao hng

    Ngy t hng

    Tn SP

    M SP

    n Hng Sn phmt hng

    M H

    n gi

    Tn NV

    in thoi

    Lng

    Nhn vin Thuc

    M NV

    a ch

    M phng

    Phng

    Tn phng

    a ch

    M phng

    Phng

    Tn phng

    Lnho

    Hc v

    M TB

    Trng ban

    Tn TB

  • 8/3/2019 Bai Giang Csdl - CD

    14/63

    Bi ging: C S D Liu---------------------------------------------------------------------------------------------------------------

    Mi n hng khi t hng lun cha nhiu Sn phm, v ngc li, mi Sn phm ct hng trong nhiu n hng.Mi quan h qui:y l mi quan h gia cc thc th trong cng mt tp thc th.K hiu

    Trong thc th Nhn Vin s c nhng nhn vin qun l nhng nhn vin khc

    1.3. Khi nim phn cp ISA (L mt)

    Cho tp hai thc th A v B. Ta ni A ISA B, c A l mt B nu tp thc th B l nhngthc th tng qut ca tp thc th A. V d B l tp thc th SinhVien gm c cc thuctnh MaSV, TenSV, NgaySinh, GioiTinh, tp thc th A l nhng SinhVienTheDuc cthm cc thuc tnh ChieuCao v CanNang. Khi nim phn cp ISA c tc dng trong vick tha cc thuc tnh.

    2. M HNH C S D LIU QUAN H R(Relation):

    y l m hnh c xut bi E.F.Codd vo nm 1970 v s dng rng rng ri trong ccDBMS, bi:

    - Biu din th gii thc rt n gin, d hiu.- C nn tng l ton hc i s quan h cht ch.

    2.1 Quan h:

    Min (Domain): L mt tp cc gi tr, v d: Min cc s nguyn, tp 2 s {0,1} l mtminTch -cc: Gi D1, D2, Dn l n min, tch -cc ca n min l D1x D2x xDn l tp ttc n-b (n-tuples) (v1, v2, , vn) sao cho viDiV d: vi n=2, D1={0,1}, D2 ={a, b, c}

    14

    Tn NV

    in thoi

    Lng

    Nhn Vin Qun l

    M NV

  • 8/3/2019 Bai Giang Csdl - CD

    15/63

    Bi ging: C S D Liu---------------------------------------------------------------------------------------------------------------

    D1x D2={(0,a), (0,b), (0,c), (1,a), (1,b), (1,c)}Quan h: L tp con ca tch -cc ca mt hoc nhiu minMi hng ca quan h gi l b (tuples). Cc ct ca quan h Di gi l cc thuc tnhnh ngha: Gi R = {A1,...,An}l tp hu hn cc thuc tnh, mi thuc tnh Ai vi i=1,...,nc n min gi tr tng ng l dom(Ai). Quan h trn tp thuc tnh R={A1,...,An}l tp con

    ca tch - Ccr dom(A1)x...xdom(An)Khi k hiu l r(R) hoc r(A1,...,An)

    Tnh cht ca quan h:- Cc gi tr trn ct phi cng min gi tr v n tr- Mi hng l duy nht: khng cho php 2 hng hon ton ging nhau

    Lc quan h R: L tp hp tt c tn cc thuc tnh, y l b khung khi thit k, Tavit: R={A1,...,An}, hoc c th: Cho quan h Nhn vin nh sau:

    NhanVien(MaNV, HoTen, NgaySinh, Noilamviec, Luong)Quan h NhanVien bao gm cc thuc tnh Manv, HoTen, NgaySinh, Noilamviec, Luong, l

    mt quan h 4 ngi.Quan h r: Ta ni ti d liu, l cc dng (cc b)t1 = (A02, Trn Th B, 1975, Khoa CNTT, 318000) l mt b ca quan h NHANVIENTrong cc DBMS mi thuc tnh c cc kiu d liu thch hp v c khai bo trc khinhp d liu

    Thc cht quan h c m t bng bng: Gm cc ct l cc thuc tnh, cc dng l cc b

    Kho ca lc quan hnh ngha: Kha ca quan h r trn tp thuc tnh R={A1,...,An}l tp con KR sao cho

    bt k hai b khc nhau t1, t2 r lun tha t1(K) t2(K) bt k tp con thc s K'K no u khng c tnh cht .Mi gi tr kho xc nh duy nht mt b

    Nu K1 l mt kho v K1 K th K gi l siu kho (Supper key).

    15

  • 8/3/2019 Bai Giang Csdl - CD

    16/63

    Bi ging: C S D Liu---------------------------------------------------------------------------------------------------------------

    Cc thuc tnh tham gia vo mt kha c gi l thuc tnh kha (prime key), ngc lic gi l thuc tnh khng kha (non prime key).V d:Trong lc quan h NhanVien, thuc tnh MaNV l kho.MaNV, TenNV l siu kho

    2.1. Bin i m hnh ER sang m hnh R

    - Trng hp 1:

    Mi thc th trong m hnh ER c biu din thnh mt quan h, trong cc thuc tnhtrong m hnh ER thnh cc thuc tnh trong m hnh quan h, kho ca thc th l kho caquan hCho thc th SinhVien

    Chuyn qua m hnh quan hSinhVien(MaSV, TenSV, NgaySinh, QueQuan)

    - Trng hp 2: Biu din cc mi quan h:

    a) Khi mi quan h dng 1-n v khng c thuc tnh ring trong m hnh ER th haithc th c chuyn thnh hai quan h v kho chnh pha 1 c thm vo quan h

    pha n, thuc tnh thm vo ny gi l kho ngoi (Foreign Key)V d:Ta c m hnh ER nh sau:

    Chuyn qua m hnh quan hNhanVien(MaNV, TenNV, DienThoai, Luong, MaPhong)Phong(MaPhong, TenPhong, DiaChi)

    16

    Tn NV

    in thoi

    Lnga ch

    M phng

    Nhn vin

    Phng

    thuc

    M NV

    Tn phng

    SinhVien

    MaSV

    TenSV

    NgaySinh

    QueQuan

  • 8/3/2019 Bai Giang Csdl - CD

    17/63

    Bi ging: C S D Liu---------------------------------------------------------------------------------------------------------------

    b) Khi mi quan h dng 1-n v c thuc tnh ring, hoc mi quan h l n-n trongm hnh ER th hai thc th c chuyn thnh hai quan h v thm mt quan h na vicc thuc tnh nh sau: cc thuc tnh ring ca mi quan h, cc thuc tnh kho ca haithc th v xc nh kho cho quan h ny.V d:

    Ta c m hnh ER nh sau:

    Chuyn qua m hnh quan hSinhVien(MaSV, TenSV, NgaySinh, QueQuan)

    Khoa(MaKhoa, TenKhoa, DiaChi)ThuocKhoa(MaSV, MaKhoa, NamNhapHoc) (Gi s sinh vin c th nhp hc nhiu ln v nhiu khoa, dng lin thng)V d:Ta c m hnh ER nh sau:

    Chuyn qua m hnh quan hDonHang(MaDH, NgayDatHang, NgayGiaoHang)SanPham(MaSP, TenSP, DonGia)DatHang(MaDH, MaSP, SoLuong)

    c) Khi mi quan h l qui dng 1-n v khng thuc tnh ring trong m hnh ER thchuyn thc sang quan h v thm mt thuc tnh c lm thnh kho ngoi ca n vmin gi tr ca thuc tnh kho.V d:Ta c m hnh ER nh sau:

    17

    Tn SV

    Qu qun

    Ngy sinh

    Sinh vin thuc

    M SV

    a ch

    M Khoa

    Khoa

    Nm nhp hc

    Tn khoa

    Tn NV

    in thoi

    Lng

    Nhn Vin Qan l

    M NV

    Ngy giao hng

    Ngy t hng

    Tn SP

    M SP

    n Hng Sn phmt hng

    M H

    n giS lng

  • 8/3/2019 Bai Giang Csdl - CD

    18/63

    Bi ging: C S D Liu---------------------------------------------------------------------------------------------------------------

    Chuyn qua m hnh quan hNhanVien(MaNV, TenNV, DienThoai, Luong, MaNguoiQL)

    d) Khi mi quan h l ISA th ta dng chin lc nh sau: Biu din cc thc th (chav con) thnh cc quan h kho ca hai quan h c cng min gi trV d:Ta c m hnh ER nh sau:

    Chuyn qua m hnh quan hSinhVien(MaSV, TenSV, NgaySinh, QueQuan)SinhVienTheDuc(MaSV, ChieuCao, CanNang)

    3. RNG BUC TON VN (Integrity Constraint)

    Trong mi CSDL lun tn ti nhiu mi lin h gia cc thuc tnh, gia cc b. S lin h

    ny c th xy ra trong mt lc quan h hoc trong cc lc quan h ca mt cs d liu. Cc mi lin h ny l nhng iu kin bt bin m tt c cc b ca nhngquan h c lin quan trong CSDL u phi tha mn mi thi im. Nhng iu kin bt

    bin c gi l rng buc ton vn. Trong thc t rng buc ton vn l cc quy tcqun l c p t trn cc i tng ca th gii thc.V d:im ca sinh vin khng th nh hn 0.

    Ngy tr sch lun ln hn ngy mn sch

    3.1. Rng buc trn phm vi mt quan h

    a) Rng buc trn min gi tr ca thuc tnhV d: Xt lc THI(Masv, Mamh, Lanthi, Diem)Thuc tnh Diem ch c gi tr t 0 n 10 nu cho im theo thang 10Thuc tnh Lanthi ch c gi tr l 1, 2, 3 nu mi mn ch cho php d thi ti a 3 lnTrong Access rng buc min gi tr c qui nh bi 2 yu t i vi thuc tnh: kiu dliu (Data type) v cc tnh cht (Properties).

    18

    Tn SV

    Qu qun

    Ngy sinh

    Sinh vin

    M SV

    Cn Nng Chiu cao

    ISA Sinh Vin Th Dc

    MaSV

  • 8/3/2019 Bai Giang Csdl - CD

    19/63

    Bi ging: C S D Liu---------------------------------------------------------------------------------------------------------------

    b) Rng buc lin thuc tnhRng buc gia cc thuc tnh trong mt b (Bn ghi)

    V d:Xt lc PHIEUXUAT(Soct, Ngayct, Ngayxuat)

    Khi Ngayxuat >= NgayctXt lc KHACH(Tenkhach, Phong, Ngayden, Ngaydi)

    Khi Ngaydi >= Ngaydenc) KhoKhng th c hai bn ghi c cng gi tr kho hoc cha gi tr null

    3.2. Rng buc trn phm vi nhiu quan h (Rng buc tham chiu)

    Gi tr ca mt thuc tnh quan h ny phi tng xng vi gi tr mt thuc tnh

    quan h khc.V d: Cho quan h ti nh sau:DETAI

    MADT TENDT NGUOICN KINHPHI

    DT1 DE TAI 1 CHU NHIEM 1 7.00VN

    DT2 DE TAI 2 CHU NHIEM 2 6.00VN

    DT3 DE TAI 3 CHU NHIEM 1 4.00VN

    DT4 DE TAI 4 CHU NHIEM 3 5.00VN

    DT5 DE TAI 5 CHU NHIEM 3 9.00VN

    Quan h thc tp: M ti (MADT) trong quan h ny phi ri vo mt trong nhng gitr MADT trong quan h ti

    THUCTAP

    MASV MADT NOITT KC KETQUA

    SV1 DT3 NOI T TAP 1 6 GIOI

    SV3 DT2 TINH 3 KHA

    SV3 DT3 NOI T TAP 3 3 T.BINH

    SV4 DT4 NOI T TAP 3 9 KHA

    19

  • 8/3/2019 Bai Giang Csdl - CD

    20/63

    Bi ging: C S D Liu---------------------------------------------------------------------------------------------------------------

    THUCTAP

    MASV MADT NOITT KC KETQUA

    SV5 DT2 TINH 6 KHA

    Trong Access ta qui nh rng buc ny nh sau:

    4. CC PHP TON I S QUAN H

    Gi r l quan h trn tp thuc tnh R={A1,...,An}(r l tp hu hn cc b)

    4.1. Php hp (Union)

    Hp ca hai quan h r v s, k hiu l r s l tp tt c cc b thuc r hoc s hoc thuc c haiquan h.

    Biu din: r

    s = {t t r hoc t s hoc t r v t s}V d:

    4.2. Php giao (Intersect)

    Giao ca hai quan h r v s, k hiu l r s l tp cc b thuc c hai quan h r v s

    Biu din: r s = {t t r v t s}

    V d: Vi r, s l hai quan h trn, giao ca chng l:

    20

    r(A B C) s(A B C) r s (A BC)

    a1 b1 c1

    a2 b1 c2

    a2 b2 c1

    a1 b1 c1

    a2 b2 c2a1 b1 c1a2 b1 c2a2 b2 c2a2 b2 c1

    rs( A B C)a1 b1c1

  • 8/3/2019 Bai Giang Csdl - CD

    21/63

    Bi ging: C S D Liu---------------------------------------------------------------------------------------------------------------

    4.3. Php tr (Minus)

    Hiu ca hai quan h r v s, k hiu r - s, l tp cc b thuc r nhng khng thuc s

    Biu din: r - s = {t t r v ts}

    Ch : Ta c th biu din php giao ca hai quan h qua php tr nh sau:rs = r - (r - s)

    V d: Vi r, s l hai quan h trn, r - s l:

    4.4. Tch - Cc

    Gi r l quan h xc nh trn tp thuc tnh {A1,...,An}v s l quan h xc nh trn tp thuctnh {B1,...,Bn.}. Tch - Cc r x s ca r v s l tp (n+m) b vi n thnh phn u c dng mt bthuc r v m thnh phn sau c dng ca b thuc s

    Biu din: r x s = {t t c dng (a1, a2,..., an, b1, b2,..., bm), trong (a1,..., an) r v (b1,...,bm) s}

    4.5. Php chiu (Projection)

    Cho quan h r vi lc quan h R(U), U=(A1,...,An). X l tp con ca cc thuc tnh, X U.Php chiu ca quan h r trn tp thuc tnh X, k hiu )(r

    X l tp cc b ca r xc nh trn

    tp thuc tnh X

    Biu din: )(rX

    ={t[X] t r}

    Thc cht ca php chiu l loi b i mt s thuc tnh ca R m ch gi li mt s thuc tnhX cn li ca quan h.

    V d: R={A, B, C, D} X={A, B} Y={A, C}

    21

    r - s (A B C)

    a2 b1 c2a2 b2 c1

    r (A B C) s (D E F) r x s (A B C D E F)a1 b1 c1a2 b2 c2a3 b3 c3

    a1 b1 c1 d e fa1 b1 c1 d' e' fa2 b2 c2 d e fa2 b2 c2 d' e' fa3 b3 c3 d e fa3 b3 c3 d' e' f

    d e fd' e' f

    R (A B C D) x(r) = (A B) Y(r) = (A C)

    a1 b1 c1 d1a1 b1 c1 d2a2 b2 c2 d2

    a2 b2 c3 d3

    a1 c1

    a2 c2

    a2 c3

    a1 b1

    a2 b2

  • 8/3/2019 Bai Giang Csdl - CD

    22/63

    Bi ging: C S D Liu---------------------------------------------------------------------------------------------------------------

    4.6. Php chn(Selection)

    Cho mt quan h r vi lc quan h R(A1, A2,..., An). F l mt biu thc l-gc:

    Biu thc l-gc thng l cc php so snh gia mt thuc tnh v cc hng. Cc php so snh: =, =,

    Trong biu thc l-gc c th dng cc php ton l-gic: (v), (hoc), (ph nh)

    ni cc biu thc vi nhau.

    Php chn trn r vi biu thc chn F, k hiu: )(rF , l tp tt c cc b ca r tho mn F.Biu din )(rF ={t t r v F(t) ng}

    V d:

    Chn F= (B=b2) (C=c2) Chn F= (B=b2) (C= c1)

    4.7. Php kt ni (Join)

    Cho quan h r vi lc quan h R(A1, A2,..., An), cho quan h s vi lc quan h S(B1,B2,..., Bm).

    Ghp cc b: cho hai b u=(a1, a2, , an) v v=(v1, v2,, vm) l mt b (u, v)=(a1, a2, , an,v1, v2,, vm)

    Cho biu thc kt ni F gia hai quan h r v s: Ghp cc b ca hai quan h tho mn iukin , c php ca :

    Php kt ni gia r v s vi biu thc kt ni F, k hiu: r |>= C

    22

    r (A B C)a1 b1 c1a1 b2 c2a1 b2 c1

    F(r) (A B C)a1 b2 c2

    F(r) (A B C)a1 b1 c1a1 b2 c2a1 b2 c1

    r (A B C) s (C D E) r>

  • 8/3/2019 Bai Giang Csdl - CD

    23/63

    Bi ging: C S D Liu---------------------------------------------------------------------------------------------------------------

    Php kt ni t nhin: Php kt ni vi php so snh bng cc thuc tnh cng tn 2 quan h v

    sau kt ni ct i mt ct cng tn bng php chiu th gi l php kt ni t nhin.K hiu php kt ni t nhin: r*s

    V d: Cho r v s nh trn. Kt qu kt ni t nhin

    4.8. Php chia (Division)

    Cho quan h r vi lc quan h R (A1, A2,...,An) v quan h s vi lc quan h S (A1,A2,...,Am) trong m < n, s . Khi php chia r s l tp ca tt c (n-m)-b t sao cho vimi v s th t ghp vi v thuc r.

    Tc l r s = {t| v s (t,v) r}

    V d:

    5. CC V D V PHP TON I S QUAN H:

    Gi s c 3 quan h:

    S (S#, SNAME, STATUS, CITY): Cc hng cung ng

    P (P#, PNAME, COLOR, WEIGHT, CITY): Cc mt hng

    SP (S#, P#, QTY): Cc mt hng cung cpTm s hiu ca nhng hng cung ng mt hng P2

    S# ( P# = 'P2' (SP))

    Tm s hiu ca nhng hng cung ng t nht l mt mt hng mu

    S# ( COLOR = 'RED' (P*SP)) hoc S# (( COLOR = 'P2' (P))*SP)

    a ra S# ca cc hng cung ng mt hng P1 v P2

    23

    a1 1 1 d1 e1a2 2 1 d1 e1a1 2 2 d2 e2

    r (ABC) * s (CDE) = (A B C D E)

    r (A B C D) s (C D) r s = (A B)

    a b c da b e f

    b c e fe d c da b d e

    c d

    e f

    a b

  • 8/3/2019 Bai Giang Csdl - CD

    24/63

    Bi ging: C S D Liu---------------------------------------------------------------------------------------------------------------

    S# ( P# = 'P1' (SP)) S# ( P# = 'P2' (SP))

    a ra S# ca cc hng cung ng tt c cc mt hng

    S#, P# (SP) P# (P)

    a ra S# ca cc hng cha cung ng mt mt hng no

    S#(S) - S# (SP)

    BI TP1. Th no l m hnh d liu2. Trnh by khi nim thc th, cc khi nim lin quan: Kho ca thc th, thuc tnh3. Trnh by m hnh thc th-mi quan h. Xy dng mt m hnh ER qun l sch, tithiu c 3 thc th4. Trnh by m hnh quan h, cch chuyn t m hnh ER sang m hnh quan h. T mhnh ER trong vic qan l sch chuyn sang cc bng5. Cho c s d liu qun l thc tp gm 3 quan h nh sau:SinhVien(MaSinhVien, TenSinhVien, QueQuan, HocLuc)DeTai(MaDeTai, TenDeTai, GiaoVienHuongDan, KinhPhiDeTai)ThucTap(MaSinhVien, MaDeTai, NoiThucTap, KetQua)Yu cu5.1. Tm cc rng buc v d liu c th c5.2. Dng php ton i s quan h biu din cc yu cu sau:

    - Lit k cc ni thc tp- Lit k M sinh vin, tn sinh vin, qu qun, hc lc ca nhng sinh vin c hc lc

    gii- Tm tn ti c kinh ph ln hn 1000000

    - Tm tn ti thc tp ti Quang Nam- Tm nhng m sinh vin thc tp c hai ti c m s l A01 v B02- Tm cc m sinh vin khng tham gia thc tp- Tm tn ca nhng sinh vin tham gia thc tp vi tt c cc ti- Tm tn ca nhng sinh vin thc tp ti qu qun ca mnh.

    24

  • 8/3/2019 Bai Giang Csdl - CD

    25/63

    Bi ging: C S D Liu---------------------------------------------------------------------------------------------------------------

    Chng 3: NGN NG TRUY VN C CU TRC-SQL

    (Structured Query Language)

    1. GII THIU- y l ngn ng phi th tc- Ngn ng da trn i s quan h: nh x t ngn ng i s quan h n cu lnh SQL- Kt qu ca mt cu lnh SQL l mt quan h.- Thao tc nhanh chng vi d liu ch cn mt cu lnh: To lp, chn d liu, trch lc dliu theo iu kin, cp nht, xo d liu

    2. TON T V HM

    Ton t s hc+, - , *, / : Cng, tr, nhn, chia

    Ton t so snh> Ln hn>= Ln hn hoc bng= Bng< B hn

    ( [NOT NULL] , [NOT NULL] ,..... [NOT NULL] ;

    Cc kiu d liuINTEGER: Kiu s nguyn 2 byte (-2.147.483.648 -> 2.147.483.647)

    25

  • 8/3/2019 Bai Giang Csdl - CD

    26/63

    Bi ging: C S D Liu---------------------------------------------------------------------------------------------------------------

    SMALLINT: Kiu s nguyn 1 byte (-32.768 -> 32.767)CHAR(n): Chui k t di n c nh, n

  • 8/3/2019 Bai Giang Csdl - CD

    27/63

    Bi ging: C S D Liu---------------------------------------------------------------------------------------------------------------

    4. CU LNH SQL TRCH LC D LIU (Select Query):

    * C php tng qut:

    SELECT [DISTINCT] [AS ][,...]|*FROM [B danh 1][...][WHERE [AND| OR ]][GROUP BY [...] [ HAVING]][ORDER BY [ASC| DESC][...]];

    * Cc thnh phn c bn ca lnh- Biu thc sau SELECT gm:

    + Danh sch cc biu thc ngn cch bng du phy(,) v c th i tn bng AS+ Du * ngha l ly tt c cc thuc tnh ca bng sau FROM

    + Cc hm tnh ton: COUNT, SUM, AVG, MIN, MAX- Biu thc sau FROM bao gm:+ Mt hoc nhiu bng quan h (c th t b danh cho tng bng, cc bng cchnhau bi du phy)

    - Biu thc sau WHERE bao gm:+ Cc thuc tnh ca cc bng quan h sau FROM+ Cc ton t BOOLEAN: AND, OR, NOT+ Cc ton t ACCESS cung cp: IN, LIKE, BETWEEN

    Cch nhp cu lnh SQL trong ACCESS v thc thi- QUERIES\NEW\DESIGN VIEW\ Khng chn bng\ Chn nt Close- Trn thanh cng c chn biu tng SQL v nhp liu cu lnh vo ca s- Chn biu tng trn thanh cng c

    27

  • 8/3/2019 Bai Giang Csdl - CD

    28/63

    Bi ging: C S D Liu---------------------------------------------------------------------------------------------------------------

    4.1. Truy vn n gin

    * C php:SELECT [DISTINCT] [As ][,....]|*

    FROM * Chc nng: To bng kt qu bao gm cc ct lit k sau SELECT hoc tt c cc ct(dng k t * thay th) ly t . T kha DISTINCT dng lit k nhng gi trduy nht trnh trng lp.* V d: Cho lc CSDL gm cc quan h sau:

    CUNGUNG(Ten, Diachi, Hang, Dongia)KHACH(Ten, Diachi, Sodu)HOPDONG(SoHD, Tenkh, Hang, Soluong);

    - To bng kt qu gm tt c cc ct ca bng CUNGUNGSELECT *

    FROM CUNGUNG;- To bng gm 2 ct Hang, Dongia ca bng CUNGUNGSELECT Hang, DongiaFROM CUNGUNG;

    - To bng gm ct Hang vi gi tr duy nht ca bng CUNGUNGSELECT DISTINCT HangFROM CUNGUNG;

    4.2. Cu truy vn iu kin

    * C php:SELECT [DISTINCT] [As ][,...]|*

    FROM WHERE * Chc nng: To bng kt qu gm cc ct lit k sau SELECT hoc tt c cc ct

    ly t gm cc b tha mn iu kin lc.* Sau WHERE c th dng:- [NOT] BETWEEN AND - [NOT] IN (, ...)- [NOT] LIKE

    28

  • 8/3/2019 Bai Giang Csdl - CD

    29/63

    Bi ging: C S D Liu---------------------------------------------------------------------------------------------------------------

    - IS [ NOT] NULL* V d:- Lit k cc hng cung ng gm Tn, Diachi c gi tr duy nht t bng CUNGUNG

    ca cc nh cung ng ng hay sa.SELECT DISTINCT Ten, Diachi

    FROM CUNGUNGWHERE (Hang = Duong) and (Hang = Sua);HocSELECT DISTINCT Ten, DiachiFROM CUNGUNGWHERE Hang IN (Duong, Sua);

    - Lit k khch hng c s d khng mSELECT *FROM KHACHWHERE Sodu >=0;

    - Lit k cc hp ng c s lng t 100->200SELECT *FROM HOPDONGWHERE Soluong BETWEEN 100 AND 200;

    - Lit k cc hng c tn bt u bng ch Cong tySELECT DISTINCT Ten, DiachiFROM CUNGUNGWHERE Ten like Cong ty *;

    - Lit k cc hng cung ng mt hng biaSELECT DISTINCT Ten, Diachi

    FROM CUNGUNGWHERE Hang like Bia *;- Lit k nhng khch hng cha c a ch

    SELECT *FROM KHACHWHERE Diachi IS NULL;

    - Lit k nhng khch hng c s d xc nhSELECT *FROM KHACHWHERE Sodu IS NOT NULL;

    4.3. Cu truy vn sp xp

    * C php:SELECT [DISTINCT] [As ][,...]|*FROM ORDER BY [ASC| DESC][...]

    * Chc nng: To bng kt qu gm cc ct lit k sau SELECT hoc tt c cc ct (nuchn *) ly t bng gm cc b c sp xp theo biu thc sau ORDER BY

    * Ghi ch: ASC: sp xp tng dn (ngm nh); DESC: sp xp gim dn

    29

  • 8/3/2019 Bai Giang Csdl - CD

    30/63

    Bi ging: C S D Liu---------------------------------------------------------------------------------------------------------------

    * V d:- Lit k tt c cc hng cung ng Sa c sp xp theo th t n gi gim dn

    SELECT *FROM CUNGUNGWHERE Hang = Sua

    ORDER BY Dongia DESC;- Lit k cc hng sp xp theo Tn v Hng ha

    SELECT *FROM CUNGUNGORDER BY Ten, Hang;

    - Lit k cc hng theo th t Ten tng dn, Hng gim dnSELECT *FROM CUNGUNGORDER BY Ten, Hang DESC;

    4.4. Cu truy vn kt ni nhiu bng

    * C php:SELECT [DISTINCT] [As ][,...]|*FROM []

    [] [...]WHERE [AND | OR ];

    * Chc nng: To bng kt qu gm cc ct lit k sau SELECT hoc tt c cc ct (nuchn *) ly t , , gm cc b tha mn .

    * V d:- Lit k tt c hp ng v cc hng cung ng c mt hng trong hp ng

    SELECT a.SoHD, a.Tenkh, a.Hang, a.Soluong, b.Ten, b. Dongia

    FROM HOPDONG a, CUNGUNG bWHERE a.Hang = b.Hang;

    - Lit k tt c hp ng ca khch hng Bach Dang v hng cung ng c mt hngtrong hp ng sp xp theo SohdSELECT a.SoHD, a.Tenkh, a.Hang, a.Soluong, b.Ten, b. DongiaFROM HOPDONG a, CUNGUNG bWHERE a.Hang = b.Hang AND a.Tenkh = Bach DangORDER BY a.Sohd;

    4.5. Cc hm tnh ton

    * Cc hm:COUNT(..): m s bn ghiSUM(..) : tnh tngAVG(..) : tnh tr trunh bnhMAX(..) : tnh tr ln nhtMIN(..) : tnh tr nh nht

    * V d:- m tng s hp ng

    30

  • 8/3/2019 Bai Giang Csdl - CD

    31/63

    Bi ging: C S D Liu---------------------------------------------------------------------------------------------------------------

    SELECT COUNT(*)FROM HOPDONG

    - Tnh n gi ng trung bnh ca cc hng cung ngSELECT AVG(Dongia)FROM CUNGUNG

    WHERE Hang = Duong;- Tnh tng lng ng ca cc hng cung ng

    SELECT SUM(Soluong)FROM HOPDONGWHERE Hang = Duong;

    - Tnh gi go r nhtSELECT MIN(Dongia)FROM CUNGUNGWHERE Hang = Gao;

    - Tnh s d ln nht

    SELECT MAX(Sodu)FROM KHACH;4.6. Truy vn theo nhm

    * C php:SELECT [DISTINCT] [As ][,...]|*FROM []

    [] [...][WHERE [AND | OR ]]GROUP BY , [...][Having ];

    * Chc nng: Nhm cc bn ghi tha mn hoc (nuc) theo danh sch cc kha sau t kha GROUP BY. Sau kt xut kt qu tng hp tha

    * Ghi ch:- Cc thuc tnh sau t kha GROUP BY phi c mt sau SELECT- Cc hm tnh ton c th s dng sau t kha SELECT hoc trong * V d:- Lit k cc hng cng tng s mt hng m n cung ng

    SELECT Ten, COUNT(Hang) As SohangFROM CUNGUNG

    GROUP BY Ten;- Lit k cc mt hng cng tng s lng c trong hp ngSELECT Hang, SUM(Soluong) As TongSLFROM HOPDONGGROUP BY Hang;

    - Lit k cc mt hng cng tng s hng cung ng mt hng SELECT Hang, COUNT(Ten) As SoCTyFROM CUNGUNG

    31

  • 8/3/2019 Bai Giang Csdl - CD

    32/63

    Bi ging: C S D Liu---------------------------------------------------------------------------------------------------------------

    GROUP BY Hang;- Lit k cc mt hng cng gi bnh qun trong CUNGUNG

    SELECT Hang, AVG(Dongia) As BqdgFROM CUNGUNGGROUP BY Hang;

    - Lit k cc khch hng c tng s lng hng t nht l 100SELECT Tenkh, SUM(Soluong) As TongSLFROM HOPDONGGROUP BY TenkhHAVING (Sum(Soluong) >= 100);

    - Lit k mt hng m c nhiu hng cung ng mt hng SELECT Hang, COUNT(Ten) As SoctFROM CUNGUNGGROUP BY Ten

    HAVING (COUNT(Ten) >1);

    4.7. Truy vn con lng nhau* C php:

    SELECT [DISTINCT] [As ][,...]|*FROM []

    [] [...][WHERE ][GROUP BY [...]][HAVING ][ORDER BY [ASC | DESC][...]]

    * Chc nng: Cho php to ra cc iu kin cha quan h tp hp v s liu tng hp

    * Ghi ch: Nu cu truy vn con biu din tp hp th phi t trong du ngoc n.a. Cc v d s dng ton t so snh =, , =, < >- Lit k cc hng cung ng go c n gi = s lng ca mi hp ng go

    32

  • 8/3/2019 Bai Giang Csdl - CD

    33/63

    Bi ging: C S D Liu---------------------------------------------------------------------------------------------------------------

    SELECT *FROM HOPDONG aWHERE a.Soluong > = ALL

    (SELECT b.SoluongFROM HOPDONG b

    WHERE b.Hang = Gao;);c. Cc v d s dng ton t IN (NOT IN) biu din- Lit k Tn, Hng, n gi ca nhng hng cung ng c t nht mt mt hng trong

    HOPDONGSELECT Ten, Hang, DongiaFROM CUNGUNGWHERE Hang IN

    (SELECT HangFROM HOPDONG;);;

    - Lit k Tn, Hng, n gi ca nhng hng cung ng c t nht mt mt hng trong

    HOPDONG m khch hng Bch ng t hng.SELECT Ten, Hang, DongiaFROM CUNGUNGWHERE Hang IN

    (SELECT HangFROM HOPDONGWHERE Tenkh =Bach Dang;);

    - Lit k cc hng cung ng khng bn goSELECT Ten, DiachiFROM CUNGUNG

    WHERE Ten NOT IN(SELECT TenFROM CUNGUNGWHERE Hang =Gao;);

    - Lit k cc hng cung ng c t nht mt mt hng ging cng ty lng thcSELECT Ten, DiachiFROM CUNGUNGWHERE Hang IN

    (SELECT HangFROM CUNGUNGWHERE Ten = Cong ty luong thuc;);

    - Lit k cc hp ng c tn khch hng v hng ging hp ng s 3SELECT *FROM HOPDONGWHERE (Tenkh, Hang) IN

    (SELECT Tenkh, HangFROM HOPDONGWHERE Sohd = 3;);

    33

  • 8/3/2019 Bai Giang Csdl - CD

    34/63

    Bi ging: C S D Liu---------------------------------------------------------------------------------------------------------------

    d. Cc v d s dng [NOT] EXISTS biu din s tn ti- Lit k Tn, a ch ca khch hng t hng

    SELECT DISTINCT Ten, DiachiFROM KHACH aWHERE EXISTS

    (SELECT *FROM HOPDONGWHERE Tenkh = a.Ten;);

    - Lit k tn khch hng cha c hp ngSELECT Ten, DiachiFROM KHACH aWHERE NOT EXISTS

    (SELECT *FROM HOPDONGWHERE Tenkh = a.Ten;);

    5. CU LNH SQL CP NHT D LIU (Update Query)* C php:

    UPDATE (Cp nht bng)SET = (t ct = gtr mi)[WHERE ]; (vi nhng b tha mn k)

    * Chc nng: cp nht vo , gn gi tr cho ,...ca bn ghi hin hnh. Nu c iu kin WHERE th php cp nht thc hin vi cc bnghi tha mn

    * V d:- Thay i Diachi ca cng ty c m CT01 trong bng CONGTY thnh Quy Nhon

    UPDATE CONGTYSET Diachi = Quy NhonWHERE MaCT = CT01;

    - Thay i Diachi ca tt c cc cng ty c a ch l Quang Nam thnh Da NangUPDATE CONGTYSET Diachi = Da NangWHERE Diachi = Quang Nam;

    - Gn s d ca KS Non Nuoc = 0UPDATE KHACHSET Sodu = 0

    WHERE Ten =Ks Non Nuoc;- Tng s d ca Ks Sng Hn ln 1000UPDATE KHACHSET Sodu = Sodu + 1000WHERE Ten = Ks Song Han;

    6. CU LNH SQL XO D LIU

    * C php:

    34

  • 8/3/2019 Bai Giang Csdl - CD

    35/63

    Bi ging: C S D Liu---------------------------------------------------------------------------------------------------------------

    DELETE FROM [WHERE ];

    * Chc nng: Xa bn ghi hin hnh ca . Nu c WHERE th xacc bn ghi tha mn iu kin

    * V d:

    - Xa cng ty c m CT02DELETE FROM CONGTYWHERE MaCT = CT02;

    - Xa mt hng Cafe ca cng ty lng thcDELETE FROM CUNGUNGWHERE Ten = Cong ty luong thuc and Hang = Caf;

    * Lu : Trong SQL khng c php xa ng thi trn nhiu quan h, hay ni cchkhc mi cu lnh xa ch c xa trn mt quan h m thi. Khi thc hin xo ch vtham chiu ton vn d liu.

    BI TPBi1.

    Cho lc CSDL qun l sinh vin.SinhVien(MASV,HOTEN,NU,NGAYSINH,MALOP,TINH,HOCBONG)Tn t: Mi sinh vin c mi MASV duy nht. Mi MASV xc nh tt c ccthuc tnh cn li ca sinh vin .Lop(MALOP,TENLOP,SISO,MAKHOA)Tn t: Mi lp c mt m lp duy nht, mi lp ch thuc v mt khoa no .Kh(MAKHOA,TENKHOA,SOCBGD)

    Tn t: Mi khoa c mi MAKHOA duy nht. Mi MAKHOA xc nh tt ccc thuc tnh cn li ca khoa .Mh(MAMH,TENMH,SOTIET)Tn t: Mi Mn hc c mt MAMH duy nht. Mi MAMH xc nh tt c ccthuc tnh cn li ca mn hc .Kq(MASV,MAMH,DIEMTHI)Tn t: Mi sinh vin cng vi mt mn hc xc dnh duy nht mt im thiHy thc hin cc cu truy vn sau

    a) Lp danh sch nhng sinh vin nam ca tnh LONG AN hc khoa CNTT,danh sch cn tt c cc thuc tnh ca quan h Sv.

    b) Lp danh sch nhng sinh vin c im thi < 5 (thi li), danhsch cnMASV,HOTEN,TENMH, DIEMTHI v c sp tng dn theo ct MASV.

    c) Lp danh sch cc sinh vin c im thi trung bnh cc mn < 5, danhsch cn MASV,HOTEN, DIEMTRUNGBINH v c sp tng dn theo ct MASV.

    d) Tng s tin hc bng ca mi khoae) Nhng sinh vin no ng k hc nhiuhn 3 mn hc, danh

    sch cn MASV,HOTEN,SOLAN_DANGKY

    35

  • 8/3/2019 Bai Giang Csdl - CD

    36/63

    Bi ging: C S D Liu---------------------------------------------------------------------------------------------------------------

    f) Lp danh sch sinh vin c im trung bnh cao nht, danh sch cnMASV, HOTEN, NGAYSINH, DIEMTRUNGBINHBi 2.

    Cho lc CSDL dng qun l lao ng bao gm cc lc quan h sau:

    Nhanvien(MANV,HOTEN,NGAYSINH,PHAI,DIACHI,MAPB)Tn t: Mi nhn vin c mt m s nhn vin (MANV) duy nht. Mt m s nhn vinxc nh cc thng tin nh h tn (HOTEN), ngy sinh (NGAYSINH), phi(PHAI), a ch(DIACHI) v phng ban (MAPB) ni qun l nhn vin.Phongban(MAPB,TENPB)Tn t: Mi phng ban c mt m phng ban (MAPB) duy nht, m phng ban xc nhtn phng ban (TENPB)Cong(MACT,MANV,SLNGAYCONG)Tn t: Lc quan h Cong ghi nhn s lng ngy cng (SLNGAYCONG) ca mtnhn vin (MANV) tham gia vo cng trnh (MACT).Congtrinh(MACT,TENCT,DIADIEM,NGAYCAPGP,NGAYKC,NGAYHT)Tn t: Mi cng trnh c mt m s cng trnh (MACT) duy nht. M s cng trnh xcnh cc thng tin nh tn gi cng trnh (TENCT), a im (DIADIEM), ngy cngtrnh c cp giy php xy dng (NGAYCAPGP), ngy khi cng (NGAYKC),ngy hon thnh(NGAYHT).Hy thc hin cc cu hi sau bng SQL

    a) Danh sch nhng nhn vin c tham gia vo cng trnh c m cng trnh(MACT) l X. Yu cu cc thng tin: MANV,HOTEN, SLNGAYCONG, trong MANVc sp tng dn.

    b) m s lng ngy cng ca mi cng trnh. Yu cu cc thng tin:MACT, TENCT, TONGNGAYCONG (TONGNGAYCONG l thuc tnh t t)

    c) Danh sch nhng nhn vin c sinh nht trong thng 8. yu cu cc thngtin: MANV, TENNV, NGAYSINH, IACHI,TENPB, sp xp quan h kt qu theo th ttui gim dn.

    d) m s lng nhn vin ca mi phng ban. Yu cu cc thng tin:MAPB, TENPB, SOLUONG. (SOLUONG l thuc tnh t t.)Bi 3.

    Cho cc quan h sau:Monhoc(MSMH ,TENMH,SOTINCHI ,TINHCHAT)MSMH: m s mn hc, TENMH: tn mn hc, SOTINCHI: s lng tn ch, TNH CHT

    bng 1 nu l mn hc bt buc, bng 0 nu l mn hc khng bt bucSinhvien(MSSV,HOTEN,NGAYSINH,LOP)MSSV: m s sinh vin, HOTEN: h tn sinh vin, NGAYSINH: ngy sinh, LOP: lpDiem(MSSV,MSMH,DIEMTHI)DIEMTHI im thiHy dng lnh SQL thc hin cc cu lnh sau:

    36

  • 8/3/2019 Bai Giang Csdl - CD

    37/63

    Bi ging: C S D Liu---------------------------------------------------------------------------------------------------------------

    a) Hy cho bit nhng mn hc bt buc c SOTINCHI cao nht.b) Hy lit k danh sch gm MSSV,HOTEN,LOP, DIEMTHI ca nhng sinh vin thimn hc

    CSDL, theo th t LOP,DIEMTHIc) Hy cho bit cc sinh vin c im thi cao nht v mn hc c m l CSDL

    d) Hy cho bit phiu im ca sinh vin c m s l 9900277e) Hy lit k danh sch gm MSSV, HOTEN., LOP, IM TRUNG BNH ca

    nhng sinh vin c im trung bnh cc mn di 5, theo th t LOP,HOTEN.f) Hy lit k danh sch im trung bnh ca sinh vin theo th t ,lp, tn.g) Hy cho bit im ca sinh vin theo tng mn.

    Bi 4.

    Da vo lc c s d liuDocgia(MADG,HOTEN,NGAYSINH,DIACHI,NGHENGHIEP)

    Phieumuon(SOPM,NGAYMUON,MADG)Chitietmuon(SOPM,MADAUSACH,NGAYTRA)Dausach(MADAUSACH,BAN,TAP,MASH)Sach(MASH,TENSACH,TACGIA,NHAXB,NAMXB)Hy thc hin cc cu hi sau y bng SQL

    a) Danh sch cc c gi ng k mn sch trong ngy d. Yu cu cc thngtin: MAG, HOTEN, IACHI.

    b) Cc quyn sch ca phiu mn c SOPM l x. Yu cu cc thng tin MASH,TENSACH, TACGIA, NGAYMUON, NGAYTRA.

    c) Tng s lt m mi c gi n mn sch trong nm 2001. Yu cu

    thng tinMAG,HOTEN,SOLANMUON (SOLANMUON l thuc tnh t t)d) Danh sch cc c gi cao tui nht mn sch trong ngy d. Yu cu ccthng tin

    MAG, HOTEN, NGAYSINH, IACHI, NGHENGHIEP.Bi 5.

    Da vo lc c s d liuKhach(MAKH,HOTEN,DIACHI,DIENTHOAI)Hoadon(SOHD,NGAYLAPHD,NGAYBAN,MAKH)DongHoaDon(SOHD,MAHANG,SLBAN)

    Hang(MAHANG,TENHANG,DONGIA,DVT,MANHOM) Nhom(MANHOM,TENNHOM)Hy thc hin cc cu hi sau bng SQLa) Danh sch cc khch hng mua hng trong ngy d. Yu cu cc thng tin

    MAKH, HOTEN, IACHI, IENTHOAI. b) Danh sch cc mt hng trong s ha n (SOH) l x. Yu cu cc thng tin

    MAHANG, TENHANG, SLBAN, ONGIA, THANHTIEN(THANHTIEN= SLBAN*ONGIA; THANHTIEN l thuc tnh t t).Yu cusp xp tng dn theo ct TENHANG

    37

  • 8/3/2019 Bai Giang Csdl - CD

    38/63

    Bi ging: C S D Liu---------------------------------------------------------------------------------------------------------------

    c) Danh sch cc mt hng thuc m nhm hng l A c n gi cao nht. Yu cucc thng tin : MAHANG, TENHANG,ONGIA

    d) m s lng mt hng ca mi nhm hng. Yu cu cc thng tin :MANHOM, TENNHOM, SOLUONG. (trong SOLUONG l thuc tnh t t)(0,75)

    e) Danh sch cc khch hng mua cc mt hng c m nhm hng l A trongngy d. Yu cu cc thng tin MAKH, HOTEN, IACHI,IENTHOAI,TENHANG.

    f) Thng k vic mua hng trong nm 2002 ca khch hng c m khch hng lKh01 (theo tng ha n). Yu cu cc thng tinMAKH,HOTEN,SOH,TRIGIAH trong TRIGIAH l tng s tin trongmt ha n (TRIGIAH l thuc tnh t t)

    Bi 6.

    Da vo lc c s d liu

    Giaovien(MAGV,HOTEN,DTGV,MAKHOA) Khoa(MAKHOA,TENKHOA,DTKHOA)Lop(MALOP,TENLOP,SISO,MAKHOA) Monhoc(MAMH,TENMH)Phonghoc(SOPHONG,CHUCNANG) Lichbaogiang(MALICH,NGAYDAY,MAGV)Dongbaogiang(MALICH,TUTIET,DENTIET,BAIDAY,GHICHU,LYTHUYET,MAMH,MALOP,SOPHONG)Hy thc hin cc cu hi sau bng SQL

    a) Xem lch bo ging tun t ngy 16/09/2002 n ngy 23/09/2002 ca gio vinc MAGV (m gio vin) l TH3A040.

    Yu cu: MAGV,HOTEN,TENLOP,TENMH,SOPHONG, NGAYDAY, TUTIET,DENTIET, BAIDAY, GHICHU

    b) Xem lch bo ging ngy 23/09/2002 ca cc gio vin c m khoa lCNTT.

    Yu cu:MAGV,HOTEN,TENLOP,TENMH,PHONG,NGAYDAY,TUTIET,DENTIET,BAIDAY,GHICHU)

    38

  • 8/3/2019 Bai Giang Csdl - CD

    39/63

    Bi ging: C S D Liu---------------------------------------------------------------------------------------------------------------

    CHNG IV: THIT K C S D LIU QUAN H

    I. t vn Trong qu trnh thit k 1 CSDL quan h, 1 s vn c th xy ra:

    + D tha Data

    + D thng trong cp nht Data thit k 1 CSDL nhm trnh c nhng d tha v d thng trong cp nhtData, 1 vn quan trng c t ra l phi nghin cu cc rng buc ph thuc Datatrong 1 lc quan h t cho php xy dng cc dng chun i vi cc lc quan h ny.

    Qui c v cc k hiu: Cc thuc tnh: A, B, C, , A1, A2, Tp cc thuc tnh: X, Y, Z, ; ABC {A, B, C} Hp ca cc tp thuc tnh: XY XY; XYZ XYZ; Lc quan h: R, S, , RS = ;(SC : Set of Constraint)

    Quan h: r, s, B: t, t1, t2,

    II. C s l thuyt ca ph thuc hm1. Ph thuc hm

    nh ngha 1: (Quan h tho mn ph thuc hm)Cho lc quan h R = , cho X, Y U. Xt quan h r trn R. Quan h r

    c gi l tho ph thuc hm: X Y (c l, X xc nh hm Y, hoc Y ph thuc hmvo X) nu v ch nu: t1, t2 r sao cho:

    t1[X] = t2[X] t1[Y] = t2[Y]

    (Do , r khng tho XY t1,t2 r : t1[X] = t2[X] t1[Y] t2[Y])V d:

    khng tho : A B r tho : AB C

    r khng tho : B C r tho : C A r tho : CD A r khng tho : AD C r khng tho : D A

    nh ngha 2: (Lc quan h tho mn ph thuc hm)

    r =A

    a

    a

    B

    b

    c

    b c

    C

    c

    a

    D

    a

    a

    b a

    39

  • 8/3/2019 Bai Giang Csdl - CD

    40/63

    Bi ging: C S D Liu---------------------------------------------------------------------------------------------------------------

    Cho lc quan h R = , cho X, Y U. R c gi l tho ph thuc hmXY r R: r tho XY.

    r R, t1, t2 r : t1[X] = t2[X] t1[Y] = t2[Y]Lu : Thng thng ta quy c rng tp cc rng buc SC chnh l tp cc ph

    thuc hm v c k hiu l F. V vy, 1 lc quan h c k hiu l R = .Nhn xt: Cho lc quan h R = : X, Y U. Nu XY c suy ra t F,

    th k hiu: F XY, hay ta ni rng XY l ph thuc hm h qu ca F.

    nh ngha 3: (Bao ng ca tp ph thuc hm)Cho R = . Khi : bao ng ca F, k hiu l F +, l tp tt c cc ph thuc

    hm h qu ca F. Tc l:F+ = {XY | F XY}

    Nhn xt: F F+

    nh ngha 4: (Kho ca lc quan h)Cho R = , cho X U. Khi X c gi l kho ca R nu v ch nu tho

    mn ng thi 2 iu kin:1. XU (hay: X l siu kho ca lc quan h R)2. Khng X X : X l siu kho ca R

    V d: R = U = ABC; F = {AB, BC}{A} l kho ca R

    Lu :+ Kho ca 1 lc quan h l khng duy nht.+ 1 lc quan h lun kho.

    2. H tin Amstrong

    Cho R = , Armstrong a ra 3 qui tc (tin , lut) sau: Lut phn x:

    Nu X, Y U v X Y th YX F+

    Lut gia tng (tng trng):Nu X, Y, Z U v XY F+ th XZYZ F+

    Lut bc cu:Nu X, Y, Z U v XY F+, YZ F+ th XZ F+

    nh l: H tin Armstrong l ng dn v y . Tnh ng n: (Bi tp)

    Tnh y ca h tin trn c hiu l vi bt k ph thuc hm h qu nota lun c th s dng mt s hu hn quy tc trong h tin ny chng minh.V d: Cho R = , trong : U = ABC, F = {AB, AC}Chng minh: A BC F+

    Ta c: AB (1)AC (2)

    T (1) A AB (3) (Lut gia tng)

    40

  • 8/3/2019 Bai Giang Csdl - CD

    41/63

    Bi ging: C S D Liu---------------------------------------------------------------------------------------------------------------

    T (2) AB BC (4) (Lut gia tng)T (3) & (4) A BC (Lut bc cu)pcm

    3. Bao ng ca tp thuc tnh (X+)

    V d: Cho R = , U = ABC.F = {AB, BC} F = {AB}A+F = ABC A+F = ABB+ = BCC+ = C(AB)+ = ABC

    nh ngha: Cho R = . Cho X U. Khi , bao ng ca X, k hiu l X+,c nh ngha nh sau:

    X+ = {A | XA F+}

    Lu : ch r bao ng ca X c xc nh trn tp ph thuc hm F, ta k hiu:X+FNhn xt:

    + X l siu kho X+ = U+ X X+

    nh l: (iu kin cn v XY F+)Cho R = v X, Y U. Khi : X Y F + Y X+F

    4. Thut ton tnh bao ng ca X (X+)+ Vo: R = v X+ Ra: X+F+ Phng php:. Bc 1: X(0) = X. Bc 2: Ln lt tnh cc X(i+1) da vo X(i) nh sau:

    X(i+1) = X(i) {Y | X Y F v X X(i)}Thut ton dng li khi k sao cho: X(k+1) = X(k)

    Kt lun: X+F = X(k)

    Bi tp: Chuyn gii thut trn thnh gii thut Pascal.V d: Cho R = , trong :U = ABCDEG

    F = {AB

    C, C

    A, BC

    D, D

    EG, BE

    C, CG

    BD, CE

    AG}a) Tnh (BD)+X(0) = BDX(1) = BD {EG} = BDEGX(2) = BDEG {C} = BDEGCX(3) = BDDEGC {A, AG} = BDEGCAX(4) = BDEGCA = X(3)

    (BD)+ = ABCDEG

    41

  • 8/3/2019 Bai Giang Csdl - CD

    42/63

    Bi ging: C S D Liu---------------------------------------------------------------------------------------------------------------

    b) Chng minh BD l kho ca RTheo cu a) ta c BD l siu kho.Ta c: B+ = B U B U F+

    D+ = DEG U D U F+

    pcmGii thut vit theo Pascal tnh bao ng ca X:Function Baodong(X)

    BeginNEW:=X;Repeat

    OLD := NEW;For mi XY F do

    If X OLD thenNEW:=NEW Y;

    Until (NEW = OLD);Return NEW;

    End;5. Ph cc tiu (Ph ti thiu)

    nh ngha: (Hai tp ph thuc hm tng ng)Cho 2 tp ph thuc hm F & G. Khi : F c gi l tng ng vi G, k hiu: F

    G, nu v ch nu F+ = G+.V d: Cho F = {AB, BC}, G = {AB, BC, AC}

    F G

    Lu :

    Ta c:+

    + +

    +

    ( / : )F G (1)F = G

    G F (2) G

    C m BT

    X Y F X Y +

    Gi : F F+ = G+(1)

    G G+ = F+(2) (1) F+ G+

    (2) G+ F+

    F+ = G+

    Chng minh 2 b :. B 1: F G F+ G+

    . B 2: (F+)+ = F+

    T (1) & (2) ta c th xy dng thut ton kim tra 2 tp ph thuc hm bt k ctng ng vi nhau hay khng?

    Vo: F & G Ra: Yes / No

    42

  • 8/3/2019 Bai Giang Csdl - CD

    43/63

    Bi ging: C S D Liu---------------------------------------------------------------------------------------------------------------

    Phng php:Procedure Kiemtra;

    1. {Kim tra F G+}For mi XY F do

    If X+G Y thenBegin

    Write(F & G l khng tng ng);Exit;

    End;2. {Kim tra G F+}For mi XY G do

    If X+F Y thenBegin

    Write(F & G l khng tng ng);

    Exit;End;3. Writeln( F tng ng vi G);End;

    Bi tp:1. Kim tra F & G c tng ng khng vi: F={ABC}, G={AB,

    AC}2. F = {AB, AC}, G = {AB, BC}

    B : Cho R=. Khi (bao gi cng 1 ph thuc hm GF): G : + G F

    + V phi ph thuc hm trong G ch c 1 thuc tnh.Chng minh: Da vo nhn xt: (X U, Ai U, i = 1..n)

    +

    1

    +

    + 2

    1 2 n

    +

    n

    X A F

    X A FX A A ..A F

    X A F

    M

    nh ngha: (Ph cc tiu ca mt lc quan h)

    Cho R = , F c gi l ph cc tiu ca R khi v ch khi:a. V phi ca mi ph thuc hm trong F l ch c 1 thuc tnh.b. Mi ph thuc hm trong F khng c thuc tnh d tha v tri.c. Trong F khng c ph thuc hm no l d tha.

    Nhn xt:1) iu kin b) X A F, B X

    ((F \ {XA} ) (X \ {B} A))+ F+

    43

  • 8/3/2019 Bai Giang Csdl - CD

    44/63

    Bi ging: C S D Liu---------------------------------------------------------------------------------------------------------------

    Ta c th xem iu kin trn iu kin sau: X A F, B X: X \ {B} A F+ (C/m: Bi tp) X A F, B X: (X \ {B})+ A

    2) iu kin c) X A F: XA (F \ {XA})+

    X

    A

    F, X+

    F\{X

    A}

    AV d 1:R = , F = {AB, ABC}

    Xt ABC F, ta c:A+F = ABC C Thuc tnh B v tri ca ph thuc hm ABC l d tha F

    khng phi l ph cc tiu ca R.

    V d 2:R = , F = {AB, BC, AC}

    Xt AC F, ta c:

    A+

    {AB, BC} = ABC C Trong F c ph thuc hm AC l d tha F khngphi l ph cc tiu ca R.

    Bi tp: Cho R = . Vit gii thut ta Pascal kim tra F c phi l mtph cc tiu ca R hay khng?

    nh ngha: (Ph cc tiu ca tp ph thuc hm)Cho R = . Tp ph thuc hm G c gi l 1 ph cc tiu ca F nu tho 2

    iu kin:i) G Fii) G l ph cc tiu ca R = Lu :1) Ph cc tiu ca 1 ph thuc hm l khng duy nhtV d: Cho R = , U = ABC

    F = {AB, BA, AC, CA, BC, CB}Khi , F c cc ph cc tiu khc nhau nh sau:

    G1 = {AB, BA, AC, CA}G2 = {AB, BA, BC, CB}

    2) Ta c gii thut tm 1 ph ti thiu ca F Vo: R = Ra: G (G l 1 ph cc tiu ca T)

    Phng php:Bc 1: Phn r cc ph thuc hm trong F m v phi c 2 thuc tnh tr ln (lmcho F tho iu kin a). C th:

    44

  • 8/3/2019 Bai Giang Csdl - CD

    45/63

    Bi ging: C S D Liu---------------------------------------------------------------------------------------------------------------

    1

    2Phan ra

    1 2 n

    n

    X AX A

    X A A ...A

    X A

    %

    M

    Bc 2: (Lm cho F tho iu kin b)For (mi X A F) do

    For (mi B X) doIf ((X \ {B})+F A) then

    X := X \ {B};Bc 3: (Lm cho F tho iu kin c)

    For (mi X A F) doIf (X+F\{XA} A) then

    F := F \ {XA};

    Kt lun: G := F;Bi tp: Cho R = , U = ABC, F = {A BC, AB C}Tm 1 ph cc tiu ca F.Ch : Trong thut ton tm 1 ph cc tiu ca F, khng th thc hin lm cho F tho

    iu kin c) trc khi lm cho F tho iu kin b) (Ni cch khc, vic l cho F tho iukin c) lun phi c thc hin sau khi lm cho F tho iu kin b)).

    V d: F = {BD, BA, DA, ABD}+ Nu ta loi b cc ph thuc hm d tha trc, th ln lt xt:

    - B+F\{BD} = BAD D loi b B D.F = {BA, DA, ABD}

    - B+F\{BA} = B A- D+F\{DA} = D A- (AB)+F\{ABD} = AB D

    + Tip n, loi b thuc tnh d tha v tri, ch xt: AB DTa c: B+F = BAD D loi b AF = {BA, DA, BD}Th nhng, ta thy BA F l ph thuc hm d tha.Phng php ng:+ Loi b thuc tnh d tha v tri, ch xt: ABD

    Ta c: B+

    F = BAD D loi b AF = {BA, DA, BD}+ Loi b cc ph thuc hm d tha:

    - BD:Ta c: B+F\{BD} = BA D- BA:Ta c: B+F\{BA} = BDA A loi b BA

    45

  • 8/3/2019 Bai Giang Csdl - CD

    46/63

    Bi ging: C S D Liu---------------------------------------------------------------------------------------------------------------

    F = {DA, BD}- DA:Ta c: D+F\{DA} = D A

    Kt lun: F = {DA, BD}

    6. Cc thut ton xc nh kho ca mt lc quan ha. Gii thut tm mt kho ca 1 lc quan h.+ Vo: R =+ Ra : K(1 kho ca R)+ Phng php:

    Function Key(R)K:= U;For mi A U do

    If (K\A)+F = U thenK := K \ {A};

    Return K;V d 1: R =

    U = ABCDEGF = {B C,C B,AB}

    K = ABCDEGTa c: + (K\A)F+ = BCDEG U

    + (K\B)F+ = ACDEGB = UK = ACDEG

    + (K\C)F+ = ADEG U+ (K\D)F+ = ACEGBD = U

    K = ACEG+ (K\E)F+ = ACGBD U+ (K\G)F+ = ACEGDB = U

    K = ACENhn xt:

    Chng ta c th ci tin thut ton trn thng qua nh l sau: nh l H Thun - Nguyn Vn Bo: (iu kin cn X l kho)

    Cho R = , cho X U. Khi , nu X l kho ca R th:(U \ P) X (U \ P) (T P)

    Trong : + T =X Y F

    X U+ P =

    X Y F

    Y U

    ngha: nh l ny cho php ta thu hp phm vi tm kim khoV d: Xt v d trn

    46

  • 8/3/2019 Bai Giang Csdl - CD

    47/63

    Bi ging: C S D Liu---------------------------------------------------------------------------------------------------------------

    T =ABCT P=BC

    P = BCDG

    Gi X l kho ca R: AE X AEBCNu gi K l tp tt c cc kho ca RK ch c th cha AE, AEB, AEC, AEBC.

    Ta c: (AE)+ = AEGD U AE K(AEB)+ = AEBGDC = U AEB K(AEC)+ = AEBGDC = U AEC K

    K = {AEB, AEC}H qu 1: Nu (U \ P)F+ = U th U \ P l kho duy nht ca R.V d: Xt R = , vi U = A1A2A3A4A5A6

    F = {A1 A2 , A3 A4, A5 A6}P = A2A4A6 m (U \ P)+ = (A1A3A5)+ = A1A3A5A2A4A6 = UR c 1 kho duy nht l A1A3A5H qu 2: Nu T P = th U \ P l kho duy nht ca R.H qu 3: (U \ P) (T P) l siu kho ca R.

    Nhn xt: T 3 h qu trn cho php ta xc nh gii thut tm 1 kho ca R nhsau :

    + Vo: R = + Ra: Tm 1 kho ca R + Phng php:

    Function Key(R)

    1. T :=X Y F

    X

    U

    2. P :=X Y F

    Y U

    3. X := (U \ P) (T P)4. For do5. If then

    X := X \ A;Return X.

    Lu : Ta c th iu chnh thut ton ny c 1 thut ton xc nh 1 kho da vo1 siu kho S cho trc bng cch :

    Thay: 3. X := S; Thay: 4. For do

    V d: Xt v d 1T =ABC

    T P BCP = BCDG

    =

    X = ABCE

    47

  • 8/3/2019 Bai Giang Csdl - CD

    48/63

    Bi ging: C S D Liu---------------------------------------------------------------------------------------------------------------

    (X \ B)+ = U X = ACE (X \ C)+ = (AE)+ U

    ACE Kb. Gii thut xc nh tt c cc kho ca 1 lc quan h. nh l Lucchesi v Osborn: (iu kin cn v b sung kho)Cho R = . Gi K l 1 tp khc rng cc kho ca lc quan h R. Khi ,

    iu kin cn v c th b sung kho mi vo K l:i) k Kii) XY F

    sao cho T = X (K \ Y) khng cha phn t no ca K.Lu : Phn chng minh ca nh l ny chng t rng nu iu kin trn c tha

    mn th kho mi c b sung vo K l kho k nhn T lm siu kho. T y, ta c th xcnh c gii thut tm tt c cc kho ca R nh sau :

    + Vo: R =

    + Ra: K + Phng php:

    Procedure TimK;1. Tm 1 kho k K2. K := {R};3. For do

    For doT := X (K \ Y) ;If then

    Tm kho k

    nhn T lm siu kho ;K+ := K {K}goto 3;

    EndIf;EndFor;

    EndFor;Return;

    V d: Xt v d trn

    Gi s K = {ACE} Xt K = ACE

    + Xt B CT = BAE : khng cha AEC Tm k = ABE K= {ABE, ACE}

    Xt K = AEC+ Xt B C T = AEB c cha phn t ca K+ Xt C B T = AEC c cha phn t ca K

    48

  • 8/3/2019 Bai Giang Csdl - CD

    49/63

    Bi ging: C S D Liu---------------------------------------------------------------------------------------------------------------

    + Xt A GD T = AEC c cha phn t ca K Xt K = AEB

    + Xt B C T = AEB c cha phn t ca K+ Xt C B T = AEC

    + Xt A

    GD

    T = AEBKt lun: K = {AEC, AEB}III. L thuyt phn tch (Decompose)

    T 1 CSDL ln, c th lm ny sinh s d tha d liu v nhng dthng trong cp nhp d liu. Chnh v vy cn phn tch lc nythnh cc lc con. Trong l thuyt phn tch, yu cu vic phn tchny phi m bo c tnh cht bo ton thng tin.

    Ngoi ra, phn tch ny c th phi m bo tnh bo ton ph thuc .nh ngha: (Phn tch | Php tch)

    Cho lc quan h R = ,cc lc con R1 = , R2 = , ,Rn = . c gi l 1 phn tch ca R thnh cc lc con R1, R2, , Rn, (k

    hiu1 2 n

    1 2 n

    (R ,R ,...,R )

    (U , U , ..., U )

    = =

    ) nun

    i

    i 1

    U U=

    =U .

    V d: Cho R = vi U = ABCD

    = (AB, BC, ACD) l 1 phn tch ca R.

    Nhn xt : Cho r l 1 quan h trn R v = (U1,U2,,Un) l 1 phn tch ca R.Khi , phn tch cho ta cc quan h con tng ng r1, r2, , rn c xc nh nh sau:

    ii Ur (r)= (i = 1,n )1. Phn tch bo ton thng tin (Php tch c kt ni khng mt thng tin)

    nh ngha:Cho R = v php tch = (U1,U2,,Un) trn R. Khi php tch c

    gi l bo ton thng tin nu v ch nu:

    1 2 nU U U(r) (r) ... (r) r, r R = >< >< >R4 =

    + Bc 5: Loi R 0 v R4

    Kt lun: = (AB, BC, ACD)

    Lu : Thut ton khng duy nht (do cch xc nh ph cc tiu l khng duy nht).

    4. Dng chun BCNF (Boyce - Codd)V d: Cho R = , vi U = CSZ v F = {CSZ, ZC}

    Xt r R:

    D tha

    Tch thnh 2:

    r =C

    VN

    VN

    M

    M

    M

    MX

    S

    Hue

    HN

    A

    B

    C

    DA

    Z

    84

    84

    1

    1

    2

    299

    59

  • 8/3/2019 Bai Giang Csdl - CD

    60/63

    Bi ging: C S D Liu---------------------------------------------------------------------------------------------------------------

    Ta thy R 3NF (v R c 2 kho: CS v SZ), nhng R vn d tha.Ta s chng minh R BCNF.

    nh ngha: (R BCNF)Cho R = . Khi :R BCNF XA F+ vi A X th: X l siu kho.

    V d: Xt v d trnR BCNF v ZC F+ vi Z khng l siu kho.(R BCNF XA F+ vi A X sao cho X khng l siu kho)

    Nhng:R1 = vi U1 = CZ v F1 = {Z C}R2 = vi U2 = SZ v F2 =

    Ta c R1, R2 BCNF.Nhn xt:

    i) RBCNF R 3NF

    ii) Ta c thut ton phn tch 1 lc quan h thnh cc lc con thucBCNF v phn tch ny bo ton thng tin nh sau:

    Vo: R = Ra: = (R1, R2, , Rk) vi Ri BCNF (i =1,k )

    l bo ton thng tin

    Phng php: Da vo gii thut sau: procedure PT(U,F)

    beginif ( XA F+ vi AX v X khng l siu kho) then

    beginPT(XA,F1);PT(U\A,F2);

    = rC

    VN

    M

    MX

    Z

    84

    1

    299

    S

    Hue

    HN

    AB

    C

    D

    A

    Z

    84

    84

    11

    2

    2

    99Khng d tha

    Khngd tha

    60

  • 8/3/2019 Bai Giang Csdl - CD

    61/63

    Bi ging: C S D Liu---------------------------------------------------------------------------------------------------------------

    end;end;

    V d: Xt v d trn ta c: = (R1, R2) l 1 kt qu phn tch.

    iii) Ngi ta chng minh: khng tn tai 1 gii thut phn tch 1 lc quan

    h thnh cc lc con thuc BCNF va bo ton thng tin va bo ton phthuc hm.

    BI TP

    Bi 1:Cho quan h sau:r( A B C D E)

    a1 b1 c1 d1 e1a1 b2 c2 d2 d1a2 b1 c3 d3 e1a2 b1 c4 d3 e1a3 b2 c5 d1 e1

    Ph thuc hm no sau y tha r:AD,ABD,CBDE,EA,AE

    Bi 2:Cho F = {ABC,BD,CDE,CEGH,GA}a) Hy chng t ph thuc hm ABE,ABG c suy din t F nh lut dn Armstrong

    b) Tm bao ng ca AB(vi bi ton khng ni g v lc quan h Q ta ngm hiu Q+

    l tp thuc tnh c trong F ngha l Q+={ABCDEGH})Bi 3:

    Cho F = {AD,ABDE,CEG,EH}. Hy tm bao ng ca AB.Bi 4:Cho F={ABE,AGI,BEI,EG,GIH}.a) Hy chng t ph thuc hm ABGH c suy din t F nh lut dn Armstrong

    b) Tm bao ng ca {AB}Bi 5:Cho F={AD,ABE,BIE,CDI,EC} tm bao ng ca {AE}+={ACDEI}Bi 6:Cho G={ABC,AB,BC,AC}. F={ABC,AB,BC} c tng ng vi Gkhng?Bi 7:Cho lc CSDL Kehoach(NGAY,GIO,PHONG,MONHOC,GIAOVIEN)F={NGAY,GIO,PHONG MONHOC

    MONHOC,NGAY GIAOVIENNGAY,GIO,PHONG GIAOVIENMONHOC GIAOVIEN}a) Tnh {NGAY,GIO,PHONG}+ ; {MONHOC}+

    61

  • 8/3/2019 Bai Giang Csdl - CD

    62/63

    Bi ging: C S D Liu---------------------------------------------------------------------------------------------------------------

    b) Tm ph ti thiu ca F

    c) Tm tt c cc kha ca Kehoach

    Bi 8:Cho lc CSDLQ(TENTAU,LOAITAU,MACHUYEN,LUONGHANG,BENCANG,NGAY) F={TENTAU

    LOAITAUMACHUYEN TENTAU, LUONGHANG TENTAU,NGAY BENCANG,MACHUYEN}

    a) Hy tm tp ph ti thiu ca F

    b) Tm tt c cc kha ca Q

    Bi 9:Q(A,B,C,D,E,G)

    ChoF={ABC;CA;BCD;ACDB;DEG;BEC;CGBD;CE AG} X={B,D}, X+=?Y={C,G}, Y+=?

    Bi 10:Cho lc quan h Q v tp ph thuc hm F

    a) F={ABE;AGI;BEI;EG;GI H} chng minh rng AB GH.

    b) F={ABC;BD;CDE;CEGH;GA}chng minh rng AB E; AB GBi 11:Q(A,B,C,D,E,H)

    F={A E; C D; E DH}

    Chng minh K={A,B,C} l kha duy nht ca QBi 12:Q(A,B,C,D)

    F={ABC; DB; CABD}Hy tm tt c cc kha ca Q

    Bi 13:Q(A,B,C,D,E,G)

    F={ABC;C A;BCD;ACDB;DEG;BEC;CGBD;CEG}Hy tm tt c cc kha ca Q.

    Bi 14:

    Xc nh ph ti thiu ca tp ph thuc hm sau:a) Q(A,B,C,D,E,G),

    F={ABC;CA;BCD;ACDB;DEG;BEC;CGBD;CEAG} b) Q(A,B,C) F={AB,AC,BA,CA,BC}

    Bi 15:Xc nh ph ti thiu ca cc tp ph thuc hm sau:

    a) Q1(ABCDEGH)

    62

  • 8/3/2019 Bai Giang Csdl - CD

    63/63

    Bi ging: C S D Liu---------------------------------------------------------------------------------------------------------------

    F1={A H,ABC,BCD;GB} b) Q2(ABCSXYZ) F2={SA;AXB;SB;BYC;CZX}c) Q3(ABCDEGHIJ) F3={BGD;GJ;AIC;CEH;BDG;JHA; DI }d) Q4(ABCDEGHIJ) F4={BHI;GCA;IJ;AEG;DB;IH}

    Bi 16:

    Kim tra s bo ton thng tin ?Q(ABCDE) R1(AD);R2(AB);R3(BE); R4(CDE);R5(AE) F={A C; B C;C D;DE C;CE A}

    Bi 17:Cho lc quan h Q(A,B,C,D) v tp ph thuc hm F = {AB;BC;AD;DC}V mt lc CSDL nh sau: C ={Q1(AB);Q2(AC);Q3(BD)}

    C c bo ton thng tin i vi FBi 18:

    Kim tra dng chun Q(C,S,Z) F={CSZ;ZC}Bi 19:

    Cho lc CSDLKehoach(NGAY,GIO,PHONG,MONHOC,GIAOVIEN)F={NGAY,GIO,PHONGMONHOC MONHOC,NGAYGIAOVIEN

    NGAY,GIO,PHONGGIAOVIEN MONHOCGIAOVIEN}

    a) Xc nh dng chun cao nht ca Kehoach

    b) Nu Kehoach cha t dng chun 3, hy phn r Kehoach thnh lc CSDLdng chun

    3 va bo ton ph thuc hm va bo ton thng tin.Bi 20:Cho lc quan h Q(S,I,D,M)

    F = {f1:SI DM; f2:SD M; f3:D M}a) Tnh bao ng D+, SD+, SI+

    b) Tm tt c cc kha ca Q

    c) Tm ph ti thiu ca F

    d) Xc nh dng chun cao nht ca Q

    e) Nu Q cha t dng chun 3, hy phn r Q thnh lc CSDL dng chun 3va bo ton ph thuc hm va bo ton thng tin.

    f) Nu Q cha t dng chun BCNF, hy phn r Q thnh lc CSDL dng BCNFg) Kim tra php tch Q thnh cc lc con (SID,SIM) c bo ton thng tin ?