cach thiet ke co so du lieu 9858

Upload: phong-tran

Post on 11-Jul-2015

143 views

Category:

Documents


0 download

TRANSCRIPT

Bi 1Mc tiu bi hc: Tm hiu cc khi nim thit k CSDL v m hnh ha d liu M t m hnh E-R v s E-R trong thit k CSDL Lit k cc thnh phn ca s E-R Tm hiu qu trnh chun ha Lit k cc dng chun Tm hiu cc quy tc chun ha

Thit K CSDL

Gii thiu CSDL dng lu tr d liu mt cch c t chc v hiu qu. CSDL gip ta qun l d liu mt cch d dng v nhanh chng. SQL Server 2000 cung cp mt nn tng qun l d liu cp doanh nghip. SQL Server 2000 l phin bn mi nht ca CSDL SQL Server. Trong k hc trc chng ta nghin cu cc khi nim c bn ca CSDL quan h cng nh SQL Server 2000. Trong k hc ny chng ta s i tm hiu tip mt s ch nng cao hn v SQL Server 2000. Cc ch ny bao gm: m hnh ha CSDL, x l theo l, kha, truy vn con/lin kt, ch mc, cc th tc lu tr (stored procedure), trigger v cc c ch bo mt. 1.1 Thit k v m hnh ha CSDL

CSDL l mt tp hp d liu c t chc v c mi quan h gip ta c th d dng truy xut, quan l v cp nht. Trong bi ny chng ta s tm hiu cch thit k CSDL. Hy xem v d v mt cng ty hng li t vic thit k CSDL lu tr cc thng tin ca mnh. Trong th gii kinh doanh hin nay, vic d on cc s kin v chun b cho cc s kin c th tit kim tin bc v thi gian cho doanh nghip. Chng ta cng tm hiu v d sau. Mt cng ty sn xut hp nha cht lng cao ang ln k hoch nhp nguyn liu th hng nm. Vi d liu bn hng trong 10 nm qua, ban lnh o cng ty c th tnh ra t l tng trng ca lng hng tiu th c. Gi s h tnh ra t l tng trng hng nm t 22% n 27%. Da vo tnh ton ny, h c th ln k hoch sn xut vi sn lng tng khong 30%. Lc ny cng ty s ch t s lng nguyn liu ph hp, nh tit kim c ngoi t, nh xng v cc ti nguyn lin quan khc. Kt qu l nh s phn tch trn cng ty c th giao hng ng hn cho khch hng. V d ny cho ta thy mt cng ty c th lp k hoch v ln lch mua nguyn liu da trn cc thng tin c kt t d liu v khch hng ca h cng hng li. y ch l mt v d nh cho chng ta thy vic phn tch d liu mt cch thng minh cho ta nhng thng tin c gi tr.

1.1.1 Mc ch thit k CSDL phn tch c d liu ta cn c mt CSDL tt, mun vy cn phi thit k CSDL mt cch hiu qu.Thit k CSDL 1

Thit k CSDL l g ? Thit k CSDL l qu trnh lp k hoch v cu trc cc i tng d liu cng vi cc quan h gia chng (nu c) trong CSDL.

Hnh 1.1: CSDL thng tin hc vin Hnh 1.1 l v d v CSDL thng tin v im thi ca hc vin. S trn cng ch ra mi quan h gia cc i tng d liu Student, Test v Marks. Ti sao li phi thit k CSDL? Cc i tng d liu c to ra trong CSDL v cc mi quan h phc tp c xy dng quanh cc i tng d liu ny ng vai tr ht sc quan trng quyt nh n hiu qu ca CSDL. Mt CSDL thit k ti c th dn ti: 1. Hiu qu thp 2. Sai st trong cp nht v truy xut d liu Ngc li, mt CSDL thit k tt mang li: 1. Hiu qu cao 2. D dng m rng CSDL 3. D pht trin ng dng Thit k CSDL c kh khng? Thit k bt k mt file hay mt CSDL khng phi l mt cng vic n gin. C mt s vn lin quan n thit k CSDL. Do vy chng ta phi nm vng cch thit k CSDL. Mt trong nhng bin php tt v hiu qu l m hnh ha CSDL. Chng ta s nghin cu m hnh ha CSDL phn sau ca bi. 1.1.2 Qu trnh thit k CSDL Bc u tin ca thit k CSDL l lp k hoch cho CSDL, k hoch ny ng vai tr l bn hng dn khi thc hin thit k ng thi lm ti liu k thut cho CSDL khi hon thnh

2

Thit k CSDL v lm vic vi CSDL SQL Server

thit k. Chi tit v phc tp ca CSDL c quyt nh bi mt s yu t nh s phc tp v ln ca ng dng, s lng ngi s dng. phc tp ca CSDL v tin trnh lp k hoch c th bin i. Mt CSDL c th c thit k bi mt ngi v c th kh n gin hoc cng c th rt ln v phc tp, v d, CSDL x l hng trm nghn giao dch ngn hng. Vi trng hp u, vic thit k CSDL n gin ch cn mt vi chi ch ln giy. Trong trng hp sau ta cn phi c ti liu chnh thc hng trm trang cha tt c cc thng tin chi tit c th c trong CSDL.

Mt s bc c bn sau c th c s dng khi thit k CSDL bt k ln v phc tp ca CSDL:

1. Thu thp thng tin

2. Xc nh cc i tng

3. Thit k m hnh

4. Xc nh loi thng tin cho mi i tng

5. Xc nh quan h gia cc i tng Chng ta i nghin cu chi tit ca tng bc trn. 1. Thu thp thng tin Trc khi thit k CSDL ta cn nm vng nhng yu cu ca mt CSDL v vai tr ca n. Nu CSDL c to ra thay th cho h thng d liu giy hay h thng qun l thng tin th cng th cc h thng c s l ngun thng tin chnh cn thu thp. Vic phng vn nhng ngi dng h thng tm hiu cng vic v yu cu ca h cng rt quan trng. Cng cn thit phi xc nh c chc nng ca h thng mi cng nh xc nh cc vn , hn ch v im tc ca h thng c. Cn thu thp cc bn sao ca cc giy t lin quan n khch hng, danh sch hng trong kho v bt k ti liu no lin quan n h thng c, bi v cc ti liu ny rt c ch trong thit k CSDL v giao din.

2. Xc nh cc i tng Trong qu trnh thu thp thng tin, chng ta phi xc nh cc i tng hay thc th chnh cn qun l trong CSDL. Cc i tng ny c th l nhng vt hu hnh nh ngi hay sn phm hay nhng vt v hnh nh mt giao dch kinh doanh, mt phng ban ca cngt y hay

Thit k CSDL

3

mt k lng. Thng thng ta s xc nh mt s i tng chnh sau cc i tng lin quan s dn nh hnh. Mi i tng xc nh c s tng ng vi mt bng d liu trong CSDL. 3. M hnh ha cc i tng Khi cc i tng trong h thng c xc nh, ta cn a chng vo m hnh sao cho c th th hin mt cch trc quan ton b h thng. M hnh CSDL ny sau c th c s dng tham kho trong qu trnh thc thi CSDL. Ch : SQL Server 2000 Enterprise Manager l cng c thit k trc quan gip thit k v to cc i tng trong CSDL. 4. Xc nh cc loi thng tin cho mi i tng Sau khi cc i tng chnh ca CSDL c xc nh, bc tip theo l xc nh cc thng tin c lu tr cho mi i tng. Cc thng tin ny thng c th hin di dng cc trng d liu trong bng i tng v c th c phn loi nh sau: Cc trng d liu Cc trng d liu th Cc trng d liu phn loi M t Cc trng ny cha cc thng tin hu hnh nh tn, c quyt nh bi cc ngun ngoi CSDL. Cc trng ny phn loi hay nhm d liu, chng cha nhng d liu n gin nh true/false, married/single, VP/Director/Group Manager, v.v. Cc trng xc thc Cc trng ny gip xc nh mi thc th lu trong bng. Chng (ID) thng c nhng t id hay number (v d, employee_id, invoice_number). Trng xc thc l thnh phn chnh c s dng bi c ngi dng v cc c ch s l bn trong CSDL truy xut mt bn ghi d liu trong bng. Cc trng quan h Cc trng ny thit lp kt ni gia thng tin trong mt bng vi tham chiu thng tin trong bng khc. V d, bng lu thng tin v cc giao dch bn hng thng c lin kt vi bng customers gip truy xut ton b thng tin ca khch hng trong giao dch bn hng. Bng 1.1: Cc trng d liu 5. Xc nh mi quan h gia cc i tng Mt trong nhng th mnh ca CSDL quan h l kh nng gn kt thng tin gia nhiu i tng trong CSDL. Cc loi thng tin c lu tr c lp nhng CSDL c kh nng truy xut kt hp d liu khi cn thit. Vic xc nh mi quan h gia cc i tng trong qu trnh thit k i hi ta phi xem xt cc bng v tm ra mi quan h logic gia chng, thm vo cc trng d liu quan h v thit lp kt ni gia cc bng.

4

Thit k CSDL v lm vic vi CSDL SQL Server

1.1.3 M hnh ha CSDL S m hnh d liu th hin mi quan h gia cc bng (thc th). S ny rt c ch vi ngi thit k, qun tr hay lp trnh vi CSDL. M hnh ha CSDL c th c chia thnh 3 bc chnh sau. Hnh 1.2 m t qu trnh thit k CSDL.Cc yu cu v thng tin nghip v

M hnh ha khi nim (Conceptual Data Modeling) Thit k CSDL Logic (Logical Database Design) Xy dng CSDL vt l (Physical Database Build)

Business view

Systems view

Hnh 1.2: Qu trnh pht trin CSDL M hnh d liu khi nim l m hnh tru tng ha d liu mc cao. M hnh ny rt gn vi cch nhn ca ngi dng v h thng. M hnh ny cng l phng tin giao tip gia ngi dng v lp trnh vin. M hnh ha khi nim c lp vi cc h qun tr CSDL. Trong bi ny, chng ta s tm hiu chi tit v cch thit k CSDL logic. Thit k CSDL vt l lin quan n cch lu tr, truyu xut v rng buc d liu m bo tc ph hp. 1.2 Thit k CSDL logic

CSDL hot ng (Operational Database)

Thit k CSDL logic bao gm qu trnh xy dng m hnh thng tin trong doanh nghip da trn mt m hnh d liu c th, nhng c lp vi CSDL hay cc vn vt l khc. Cng c m hnh ha ph bin nht c dng cho vic thit k CSDL logic l S quan h thc th (E-R diagram). M hnh ny l nn tng cho nhiu m hnh khc. N m t d liu v cc mi quan h gia cc d liu trong mt h thng. Trong m hnh E-R d liu c m t l cc thc th, thuc tnh v cc quan h. S The E-R c s dng ch yu trong qu trnh thit k CSDL v th hin cu trc logic chung ca CSDL.

Thit k CSDL

5

1.2.1 M hnh Quan h - Thc th M hnh E-R l cng c thn thin v hiu qu m hnh ha d liu. M hnh ny th hin th gii thc di dng cc i tng c bn v cc mi quan h gia chng. Cc thnh phn ca m hnh E-R c lit k di y:

Thc th - Thc th l mt i tng tn ti v c th phn bit vi cc i tng khc. Vd, John c s an sinh x hi l 890-12-3456 l mt thc th bi ngi ny c th c xc nh l mt ngi duy nht trong x hi. Mt thc th c th l hu hnh (mt quyn sch) hay tru tng (nh mt k ngh hay mt khi nim).

Mt tp hp thc th - L mt tp cc thc th cng loi( v d, nhng ngi c ti khontrong ngn hng).

Cc thuc tnh Mt thc th c m t bng mt tp cc thuc tnh. V d: Name, SSN,Age, Street, City l cc thuc tnh ca thc th Person.

Quan h v tp quan h - Quan h l s gn kt gia hai hoc nhiu thc th. Mt tp quanh l mt tp hp cc quan h cng kiu. Chng ta xem v d v 2 tp thc th Customers v Accounts. Ta dng quan h CustAcct m t s gn kt gia customers v cc accounts ca h..

Customers

Cus tAcHnh 1.3: Quan h gia 2 tp thc th

Accounts

Mt tp quan h c th cha nhiu hn 2 tp thc th nh trong hnh 1.4. Cc tp thc th nh customers, loans v branches c th c lin kt vi nhu bng cc quan h Borrow. Quan h Borrow ch ra rng mt khch hng c th vay tin mt chi nhnh no ca ngn hng.

Customers

Borrow

Loans

BranchesHnh 1.4: Quan h gia 3 tp thc th Tp thc th trong mt quan h khng cn thit phi l duy nht. Vai tr qu mt thc th chnh l chc nng ca n trong quan h. V d, quan h works-for c th xut hin gia cc cp thc th employee. Thc th employee u ng vai tr l ngi qun l, v c mt ngi khc ng vai tr l nhn vin nh trong hnh sau:

6

Thit k CSDL v lm vic vi CSDL SQL Server

Worker Employee ManagerHnh 1.5: Self Relationship Cc nhn Manager v Worker c gi l cc vai tr (roles); chng ch ra tng tc gia cc thc th employee qua quan h Works for. Ta c th nh ngha mt tp cc thc th v quan h gia chng theo nhiu cch. S khc bit ln nht gia nhng cch ny ch ta x l cc thuc tnh nh th no. Chng ta xem tp thc th employee c cc thuc tnh Employee_Name, Phone_Number. Chng ta c th lp lun rng thuc tnh phone c th c coi l mt thc th vi cc thuc tnh Phone_Number v Location. Vy ta s c hai thc th Employee v Phone, v quan h EmpPhn th hin s rng buc gia 2 thc th ny. nh ngha mi ny c th th hin chnh xc hn th gii thc Tuy nhin chng ta khng d m rng lp lun ny v vic quyt nh i tng no l thuc tnh ph thuc ch yu vo cu trc ca hon cnh th gii thc chng ta ang m hnh ha, v ng ngha ca thuc tnh ta ang bn n.

Work s

Rng buc s lng Rng buc s lng th hin s thc th m mt thc th c quan hrng buc. Trong mi quan h gia thc th X v Y, rng buc s lng c th l mt trong nhng loi sau: 1. Mt-mt: Mt thc th X c quan h vi ti a 1 thc th Y v ngc li. 2. Mt-nhiu: Mt thc th X c quan h vi v s thc th Y. Mt thc th Y c quan h rng buc vi ti a 1 thc th X. 3. Nhiu-mt: Mt thc th X c quan h vi ti a 1 thc th Y. Mt thc th Y c quan h vi v s thc th X. 4. Nhiu-nhiu: Cc thc th X v Y c quan h vi v s cc thc th ca nhau.

X X X X Mt mt X X X X Nhiu mt

Y Y Y Y

X X X X Mt nhiu

Y Y Y Y

Y Y Y

X X X X Nhiu nhiu

Y Y Y Y

Thit k CSDL

7

Hnh 1.6: Rng buc s lng Vic la chn rng buc s lng ph hp cho mt quan h ph thuc vo cc thc th c m hnh ha trong i sng thc. Nu s tn ti ca thc th X ph thuc vo s tn ti ca thc th Y ta ni Y l thc th cha v X l thc th con. V d, ta xem tp thc th account v transaction, v quan h log gia 2 thc th ny. y l quan h mt-nhiu vi mt account c nhiu transaction. Nu mt thc th account b xa cc thc th transaction c quan h vi thc th account cng phi c xa. Do account l thc th cha cn transaction l thc th con.

Cc trng kha S khc bit gia cc thc th phi c th hin bng cc thuc tnh.Kha chnh l mt hay nhiu thuc tnh cho php ta xc nh duy nht mt thc th trong mt tp thc th. V d, trong tp thc th customer, cc thuc tnh customer_name v S.S.N, kt hp li, c coi l kha chnh. Cn ch rng customer_name khng c coi l kha chnh v 2 khch hng c th c cng tn. Mt kha chnh khng c cc tp bn ghi con c coi l kha ng vin (candidate key). Trong v d trn S.S.N c coi l kha ng vin do thuc tnh ny c th xc nh duy nht mt thc th customer trong tp thc th. Mt tp thc th khng c cc thuc tnh hnh thnh kha chnh c gi l tp thc th yu (weak entity set). Tp thc th c kha chnh c gi l tp thc th mnh (strong entity set). V d, tp thc th transaction c cc thuc tnh transaction_number,date v amount. Cc transactions khc nhau c thc hin bi nhng accounts khc nhau c th chia s chungcng mt m s transction, iu ny cho thy khng c thuc tnh no c kh nng lm kha chnh (gip xc nh duy nht mt transaction) trong tp thc th ny. Do vy transaction l mt tp thc th yu. mt thc th yu tn ti, n phi tham gia vo quan h mt nhiu. tng cc thc th mnh v yu lin quan n s khc bit v quan h tn ti bn trn. Cc thnh vin ca mt tp thc th yu khng c kha chnh, nhng chng vn cn c cng c phn bit vi nhau. Yu t phn tch cc thc th trong tp thc th yu l mt tp cc thuc tnh cho php ta phan bit c cc thc th. Kha chnh ca mt thc th yu c to ra bng cch ly kha chnh ca thc th mnh kt hp vi trng phn bit trong thc th yu. Transaction l mt thc th yu. N tn ti ph thuc vo thc th account. Kha chnh ca thc th account l account_number. Thuc tnh Transaction_Number phn bit cc thc th transaction trong cng mt account (account_number,transaction_number). Do vy, kha chnh ca thc th yu ny c hnh thnh bng cch ly kha chnh ca thc th mnh m n ph thuc cng vi thuc tnh phn bit ca tp thc th yu. Cc thuc tnh ca mt tp quan h l cc thuc tnh bao gm cc kha chnh ca cc tp thc th trong quan h. V d:: S.S.N l kha chnh ca thc th customer, v account-number l kha chnh ca thc th account. Do cc thuc tnh ca quan h CustAcct chnh l (Account_Number, S.S.N). y l nhng thng tin gip chng ta rng buc mt account vi mt person. Nu quan h cha cc thuc tnh m t, chng cng c a vo tp thuc tnh ca quan h. V d, chng ta c th thm thuc tnh date vo tp quan h trn, thuc tnh ny m t ngy truy vn account gn nht ca mt customer. Ch rng thuc tnh ny khng th a vo bt k thc th no do n lin quan n c customer v account, v mi quan h gia hai thc th ny l nhiu nhiu. 1.2.2 S quan h thc th

8

Thit k CSDL v lm vic vi CSDL SQL Server

Chng ta c th m t cu trc logic tng th ca CSDL mt cch trc quan bng s quan h thc th (ERD). Cc thnh phn ca ERD bao gm: 1. Hnh ch nht th hin cc tp thc th. 2. Hnh Ellipses th hin cc thuc tnh. 3. Hnh thoi th hin cc tp quan h. 4. Cc ng thng lin kt cc thuc tnh vi cc tp thc th v cc tp thc th vi cc tp quan h. Cc ng thng c th directed (c mi tn) ch cc rng buc s lng trong cc tp quan h. Hnh 1.7 l mt s v d m t s lng cc thc th lin quan m mt thc th c quan h. V tr ca mi tn rt n gin, u mi tn ch n thc th m thc th one tr n. 1:1 Mt customer c ti a mt account v mt account c s hu ti a bi mt customer. 1:N Mt customer c th c v s accounts nhng mt account ch c s hu bi ti a mt customer. M: N Mi customer c th c v s accounts v mi account c th c s hu bi v s customers. Cc k hiu ca s E-R: K hiu ngha THC TH THC TH YU LOI QUAN H THUC TNH THUC TNH CHNH THUC TNH NHIU GI TR

THUC TNH TNG HP

THUC TNH PHT SINH Bng 1.2: Cc k hiu trong s E-R

Thit k CSDL

9

Cc thuc tnh tp hp Cc thuc tnh ca cc tp thc th c th c chia thnh cc tp nh hn c gi l cc thuc tnh tp hp (composite attributes), cha nhng thuc tnh c bn vi cc ngha khc nhau. V d, thuc tnh Address ca thc th employee c th bao gm Street, City, State and Zip. Mt thuc tnh nhiu gi tr (multivalued attribute) l thuc tnh cha cc gi tr cn trn v cn di cho gi tr ca thc th. V d, thuc tnh colors ca mt thc th c th cha 5 gi tr. Vy colors c th cha cc gi tr t 1 (cn di) n 5 (cn trn). Trong mt s trng hp hai (hay nhiu hn) cc gi tr thuc tnh c lin quan n nhau v d, cc thuc tnh Age v Birthdate ca thc th person. Vi mt thc th person, thuc tnh tui c th c quyt nh bi ngy hin ti v ngy sinh ca thc th person. Thuc tnh Age do c gi l thuc tnh phi sinh (derived attribute) v c coi l pht sinh t thuc tnh Birthdate, c gi l thuc tnh lu tr (stored attribute). Chng ta xem xt mt s v d v s E-R m t cc quan h 1:1, 1:N v N:N.

Street

Date City

Acct_Number

Cust_Nam e

Acct_Type

Customer

CustAcc t Deposito r

Account

One to One (1:1)

Street

Date City

Acct_Number

Cust_Nam e

Acct_Type

Customer

CustAcc t Deposito r

Account

10

Thit k CSDL v lm vic vi CSDL SQL Server

One to Many (1:N)

Thit k CSDL

11

Street

Date

Acct_Number

Cust_Nam e

City

Acct_Type

Customer

CustAcc t Deposito r

Account

Many to Many (M:N)

Hnh 1.7: S E-R Cc tp thc th yu trong s E-R: Mt tp thc th yu c xc nh bng mt hnh hp c vin i. V d, tp thc th transaction ph thuc vo tp thc th mnh account trn tp quan h log. Hnh 1.8 m t v d ny. Kha chnh ca mt tp thc th yu c to bi kha chnh ca tp thc th mnh m n ph thuc kt hp vi trng pgn bit ca tp thc th yu.Trans_Number Acct_numbe r Amount

Acct_Type

Date

Account Lo

Transaction

Hnh 1.8: S E-R c tp thc th yu M t tp thc th mnh:

12

Thit k CSDL v lm vic vi CSDL SQL Server

Ta dng bng trnh by thc th vi mi trng ca bng tng ng vi mi thuc tnh ca tp thc th. Mi bn ghi ca bng tng ng vi mt thc th ca tp thc th. Chng ta c th thm mi, xa hay sa i cc bn ghi ca bng ( th hin nhng thay i trong th gii thc). Trong hnh 1.9, cc tp quan h l nhiu mt, v khng cha cc thuc tnh m t. Kha chnh ca tp thc th yu l kha chnh ca tp thc th mnh. Bng cho tp quan h s c cng cc thuc tnh v do vy b d tha.

Street

Date City

Acct_Number

Cust_Name

Acct_Type

Customer

CustAcct Deposito r

Account

Amount

Lo

Date

Transaction

Trans_Number

Hnh 1.9: S E-R c cc tp thc th mnh v yu Bc u tin to ra mt CSDL quan h thnh cng l phi c thit k logic tt. iu ny bao gm vic thit k cc bng v nh ngha quan h gia chng. Thit k mt CSDL hiu qu bt u bng vic thit k mt CSDL chun ha. Mt CSDL logic c thit k tt l nn tng thit k CSDL v ng dng c hiu nng tt. Mt thit k CSDL logic ti li c tc ng tiu cc ti hiu nng ca ton b h thng. Chun ha l mt thut ng m miu dng cho mt ch rt bnh thng. Chun ha l qu trnh loi b nhng d tha d liu khi CSDL. Hy coi CSDL nh l mt t cha tt. Phi c ch cho mi th v mi th phi c sp t ph hp. Nu ta gi nhng i tt lch nhiu ni ta s khng th tm thy i tt va i trong ngy hm sau. Nu ta ln ln tt vi tm cng mt ch th rt c th ta s mc nhm nu khng ch . Cng nh vy, tt c cc d liu cn nm trong nhng nhm ph hp. Khng c xut hin nhng d liu trong bng ging nh nhng i tt lch. D liu cn c t trong nhng bng ph hp. Chun ha l mt k thut gip cho ngi dng nhm d liu v t chng trong nhng bng ph hp. Do vy m chun ha CSDL l bc rt quan trng trc khi ta lm vic vi n. C mt s quy tc dng chun c chp nhn rng ri quy nh qu trnh to CSDL quan h. Ba dng chun u c chp nhn rng ri v ng vai tr quan trng hn 2 dng chun sau. Chng ta s xem xt cc dng chun ny cc phn sau.

Thit k CSDL

13

1.3 Chun ha CSDL Qu trnh loi b nhng d liu d tha t d liu thu thp c thit k cc bng ca CSDL quan h c gi l chun ha. Nu c dng mt cch ng n, chun ha l cch tt nht v d dng nht t chc cc bng trong CSDL quan h. Khi chng ta a d liu v dng chun ha, ta : a cu trc d liu v dng n gin nht

Loi b cc trng d liu d tha t cc bng

Xc nh cc d liu ph thuc nhau

Ngi ta a ra 5 dng chun, nhng d liu khi dng chun 3 thng c coi l hon ton chun ha. Tuy nhin, mc chun ha d liu ph thuc vo tng ng dng c th. Nu d liu khng c chun ha ph hp, s c rt nhiu d liu b lp li trong bng v ta s phi tm kim trong ng d liu lp li ny tm ra nhng d liu quan trng v nhng bt thng khi cp nht d liu c th xy ra. Nu d liu c chun ha qu mc, vic truy xut d liu s b chm hn do ta phi lin kt nhiu bng. Thng thng mi bn ghi ca mt bng s m t mt d liu. Cc dng chun ha bao gm: Dng chun 1 (1NF), Dng chun 2 (2NF), Dng chun 3 (3NF), Dng chun 4 (4NF) v Dng chun 5 (5NF). Trong hu ht nhng tnh hung thc t, ta thng dng dng chun 3 (3NF) do dng chun ny loi b tt c nhng bt thng trong vic cp nht d liu. Ta cng cn phi thc rng khng c s bt buc phi chun ha cc bng mc cao nht c th. Tc truy xut d liu phi c quan tm v iu ny dn n vic b qua mt s bc chun ha. Mc d cc mc chun ha u c th t c nhng thng dng chun 3 c coi l mc chun ha cao nht cn thc hin trong hu ht cc ng dng. CSDL l mt tp hp cc thng tin lin quan vi nhau v do vy khng th trnh khi vic mt s i tng thng tin trong CSDL s ph thuc ln nhau. Cc thng tin ny c th cha 1 gi tr hay nhiu gi tr. Tn ca mt ngi (person) v ngy sinh l nhng gi tr n; cc bng cp (qualifications) ca mt ngi hay cc mn hc (subjects) m mt ging vin (instructor) dy l nhng s liu nhiu gi tr. Trc ht chng ta s xem xt cc d liu n gi tr v bn v khi nim s ph thuc chc nng. Khi nim thng tin ph thuc ln nhau l rt c bn. V d, ti bt k thi im no mt m ti khon trong bng Accounts cng gip ta xc nh c tn khch hng v ngy m ti khon. u tin Codd (1972) a ra 3 dng chun (1NF, 2NF v 3NF) tt c u da vo khi nim s ph thuc chc nng gia cc thuc tnh ca mt bng. Cc dng chun 4 v chun 5 da vo s ph thuc lin kt v nhiu gi tr v c a ra sau ny.

14

Thit k CSDL v lm vic vi CSDL SQL Server

Qu trnh chun ha d liu hiu qu bao gm nhng cng vic sau: Loi b cc trng d liu lp li khi bng t c dng chun 1. V d, nu cc thng tin v cc ln lng c lu trong bng EMPLOYEES th cc thng tin ny l nhng d liu lp li. Loi b nhng d liu khng ph thuc hon ton vo kha chnh khi bng a v dng chun 2. Vy, nu bng cha kha chnh tng hp (kha chnh da trn nhiu trng) v mt s trng d liu li ph thuc vo mt phn ca trng kha tng hp, ta loi nhng trng d liu ny v phn kha m n ph thuc sang mt bng khc. Loi b nhng d liu khng thuc bng (nhng d liu hon ton ph thuc vo mt trng d liu khc hay ph thuc vo kha ph) a d liu v dng chun 3. m bo mi bn ghi ca bng ch cha d liu v mt thc th.

C th a mt s d liu d tha vo bng tng tc truy xut d liu bng cch loib nhng lin kt cc bng khng cn thit. V d, khi ta thm cc trng FIRST_NAME v LAST_NAME ca thc th employee vo bng SALARY_HISTORY, ta b d tha d liu. D rng 2 trng d liu ny s lm cho d liu trong bng b d tha nhng tc truy xut d liu c ci thin hn. Qu trnh thm nhng d liu d tha vo bng tng tc ca CSDL c gi l phi chun ha (de-normalization). Chng ta cng thy cc bng cu thnh CSDL phi tha mn mt s thuc tnh. V d, cc bng khng c tn ti cc bn ghi d liu trng nhau v th t ca cc bn ghi l khng quan trng, mi thnh phn trong bng l thc th n nht. Cc bng tha mn nhng yu cu c bn ny vn c th tn ti nhng thuc tnh khng cn thit. Chng ta s xem xt cc thuc tnh ny v tm hiu cch bin i v chun ha cc bng loi b chng. Chng ta xem v d v bng Accounts. Bng ny cha thng tin ti khon v chi tit cc giao dch ca ti khon khch hng trong ngn hng. AccN o 85001 85002 85003 86005 Custome r name Smith James Ritcha Jones Addres s 1, Main 2, Main 3, Main 12, 7th OpenedO n 1/4/03 3/4/03 4/4/03 5/4/03 Type Savings Savings Savings Current Transactio n No. 1 2 3 4 Transactio n Amount 1000 200 100 400 Transactio n Date 2/4/03 4/4/03 5/4/03 6/4/03

Bng 1.3: Bng Account V mt khi nim nu ta tt c thng tin trong mt bng th vic truy vn d liu s rt tin li v d dng hn. Nhng bng m t trn tn ti nhng c tnh khng cn thit: Thng tin lp li: C rt nhiu thng tin b lp li. Trng d liu Type c cc thng tin v kiu ti khon b lp li. Vic lp li thng tin ny dn n tn cng lu tr v cc vn khc. Cp nht bt thng (Update abnomalies):

Thit k CSDL

15

D tha d liu khng ch dn n ph phm trong lu tr m cn lm cho vic cp nht d liu kh khn hn. Trong trng hp ta phi cp nht ti khon tin gi sang Savings Account thay v Savings, ta s phi cp nht tt c cc bn ghi c gi tr ny. Nu v mt l do no mt s bn ghi khng c cp nht, chng ta s c mt CSDL cha hai loi ti khon tin gi (Mt l Savings v Savings Account). Vn ny gi l cp nht bt thng. Thm mi bt thng (Insertion Anomalies) (Khng th th hin d liu): Gi s kha chnh ca bng trn l (Accno, TransactionNo). Bt k bn ghi mi no c thm vo bng u phi c gi tr cho kha chnh do c tn ti rng buc ton vn i hi c kha chnh hay mt phn ca kha chnh khng c cha gi tr NULL. Tuy nhin ta khng th thm mi d liu chi tit ca ti khon trc khi cc giao dch c thc hin m phi n khi mt giao dch ca ti khon c thc hin. Vn ny c gi l thm mi bt thng. Xa d liu bt thng (Deletion Anomalies) (Mt cc thng tin hu ch): Trong mt s trng hp, cc thng tin hu ch c th b mt nu mt bn ghi b xa. V d, nu ta xa bn ghi c s ti khon (AccNo) l 86005, ta c th mt cc thng tin lin quan n loi ti khon (l ti khon chi tiu - current account). Vn ny c gi l xa d liu bt thng. Vn trn xy ra ch yu do bng ny cha c cc thng tin v Accounts, Account Types v Transactions. Gii php a ra l chia nh bng thnh 2 hay nhiu bng chi tit. Vic chia nh ny c th mang li nhiu li ch, v d, trong mt CSDL phn tn cc bng c th c lu tr nhiu ni khc nhau nu cn thit. Tt nhin, vic chia nh ny s dn n truy vn phi x l nhiu hn do cc bng c chia nh s phi lin kt vi nhau v i khi l rt thng xuyn. Bng d liu trn c th d dng c chia nh thnh 3 bng loi b hu ht nhng thuc tnh khng cn thit: Ta c th to bng AccountType cha m v m t ca cc loi ti khon. Lc d liu trong bng ch cn c cp nht mt ni (trong bng AccountType). AccN o 85001 85002 85003 86005 Custome r name Smith James Ritcha Jones Addres s 1, Main 2, Main 3, Main 12, 7th OpenedO n 1/4/03 3/4/03 4/4/03 5/4/03 TypeCod e 1 1 1 2 Transactio n No 1 2 3 4 Transactio n Amount 1000 200 100 400 Transactio n Date 2/4/03 4/4/03 5/4/03 6/4/03

Bng 1.4: Bng Account Account(Accno, Customername, Address, OpenedOn, TypeCode) AccountType(TypeCode, TypeDesc) Transaction(Accno, TransactionNo, TransactionAmount, TransactionDate) Vic chia nh nh vy c gi l chun ha v rt cn thit nu ta mun loi b cc bt thng khng mong i trong thao tc d liu. Nh cp trn, chun ha cng thng c nhng tc ng ngc nh hng n tc . Nhng d liu m trc khi chun hach cn c truy xut t mt bng nay phi c truy xut t nhiu bng c lin kt vi nhau sau khi chun ha. Tuy nhin chun ha thng gip cp nht d liu hiu qu hn, vic ny trc khi chun ha cn phi cp nht nhiu bn ghi, sau khi chun ha ta ch cn cp nht mt bn ghi.

16

Thit k CSDL v lm vic vi CSDL SQL Server

Mc d trong trng hp trn ta c th xem bng gc v a ra mt phng php phn chia d liu ph hp loi b cc bt thng, nhng ni chung cch tip cn nh vy l khng th. Mt bng c th cha hng trm cc thuc tnh v nh vy rt kh c th khi nim ha tt c cc thng tin v a ra phng n chia nh ph hp x l cc vn v d liu. Do ta cn c mt cch tip cn s hc tm ra cc vn ny sinh trong khi thit k CSDL v cch loi b chng. Mc ch chnh ca chun ha l trnh mt s bt thng v cp nht d liu m ta bn trn.

Thit k CSDL

17

Dng chun 1 (1NF) Bng d liu tha mn cc c tnh ca mt quan h (relation) c coi l dng chun 1. Mt relation khng th cha cc thuc tnh tp hp hay c nhiu gi tr. Di y l quy tc ca dng chun 1. Mt quan h c coi l dng chun 1 khi v ch khi cc min gi tr ca quan h cha cc gi tr n nht. Dng chun 1 ch quan tm n cu trc c bn ca bng m khng gii quyn vn d tha d liu hay cc bt thng khi thao tc d liu bn trn. Ba bng Account, AccountType v Transaction dng chun 1. Dng chun 2 (2NF) iu kin t c dng chun 2 l bng d liu phi dng chun 1. Mc ch ca dng chun 2 l m bo rng thng tin cha trong quan h ch m t mt thc th duy nht. Mt quan h dng chun 2 khi v ch khi n dng chun 1 v tt c cc trng khng phi kha chnh phi ph thuc hon ton vo kha chnh ca quan h hiu r hn nh ngha dng chun 2 trn ta cn nh ngha khi nim key attribute. Mi thuc tnh ca quan h tham gia vo t nht mt kha ng vin (candidate key) c coi l key attribute ca quan h. Tt c cc thuc tnh khc c gi l non-key. Dng chun 2 quy nh rng tt c cc thuc tnh khng phi thnh phn ca kha ng vin phi ph thuc hon ton vo kha ng vin. Chng ta xem xt v d v cc bng sau: Account(AccountNo, Customername, Address, OpenedOn, TypeCode) Mt khch hng c th c nhiu ti khon. Trong trng hp nytrng CustomerName khng ph thuc vo AccountNo. Cng vy trng Address ca mt khch hng ph thuc vo tn ca khch hng ch khng ph thuc vo trng kha chnh AccountNo. Tuy nhin cc thuc tnh OpenedOn v TypeCode ph thuc vo kha chnh. Do vy bng ny c th c chia nh hn thnh Customer v Account. Account(AccountNo, CustomerCode, OpenedOn, TypeCode) Customer (CustomerCode, Customername, Address) Cc bng nh sau:

AccountType(TypeCode, TypeDesc) Transaction(Accno, TransactionNo, TransactionAmount, TransactionDate)Bng trn dng chun 2 (2NF) do bng khng c cc thuc tnh khng phi kha. Cc bc chun ha cao hn cn thc hin gii quyt nhng vn khc lin quan n bng dng chun 2 (2NF) v cc dng chun tip theo s dn n vic chia nh cc bng nh vy. Dng chun 3 (3NF)

18

Thit k CSDL v lm vic vi CSDL SQL Server

Mc d dng chun 2 loi b c cc bt thng c th xut hin trong cc bng cha dng chun 1, nhng khng phi loi b c tt c v cn thit phi thc hin dng chun ha tip theo m bo loi b ht nhng bt thng . Cc tnh bt thng ny c th xy ra do dng chun 2 c th cha nhng thuc tnh khng lin quan trc tip n thc th c m t bi cc kha ng vin trong quan h. Dng chun 3 c m t di y: Mt bng R dng chun 3 khi v ch khi n dng chun 2 v cc thuc tnh khng phi kha khng ph thuc ngoi suy vo cc trng kha ng vin ca R hiu r hn v dng chun 3 chng ta tm hiu khi nim s ph thuc ngoi suy (transitive dependence), khi nim ny da vo mt trong nhng tin ca Armstrong. Coi A, B v C l ba thuc tnh ca quan h R, ta c cc mi quan h sau AB v BC. T cc mi quan h ny ta suy ra l AC. Nh cp trn, mi quan h gia AC l ph thuc ngoi suy (transitive). Dng chun 3 khc vi dng chun 2 ch tt c cc thuc tnh khng phi kha chnh trong dng chun 3 phi ph thuc trc tip vo kha ng vin ca mi quan h. Nu c thuc tnh ph thuc vo trng kha theo quan h ngoi suy iu c ngha l cc thuc tnh m t khng ch trng kha m cn m t thuc tnh khng phi kha. Do thng tin khng ph thuc trc tip vo kha chnh mc d r rng thuc tnh ny c quan h vi kha chnh. Chng ta xem bng Account. Mi thuc tnh trong bng ny ph thuc hon ton vo kha chnh v u m t mt account. Do vy bng ny dng chun 3 (3NF). C tn ti dng chun 4 v 5 nhng rt t c s dng khi thit k CSDL. B qua cc quy tc ny c th dn n mt CSDL cha hon ho nhng khng nh hng n tnh nng ca CSDL. a s E-R v dng bng Mt CSDL c m t bng s quan h thc th c th c th hin bi mt tp hp cc bng. Vi mi htp thc th v tp quan h ta c mt bng duy nht c gn tn ca tp tng ng. Mi bng c mt s trng (thuc tnh) vi tn duy nht.

Thit k CSDL

19

Tm tt phn tch c d liu ta cn c CSDL tt. Mun vy ta cn thit k CSDL mt cch hiu qu. Thit k CSDL l nh ngha cu trc ca cc i tng d liu v cc mi quan h gia cc i tng d liu trong CSDL. Cc m hnh l nhng hnh nh n gin ha ca cc s kin hay iu kin thc Cc m hnh c th c s dng n gin ha vic thit k CSDL; cc m hnh tt gip thit k CSDL tt v do gip pht trin cc ng dng tt. Khi thit k mt CSDL bt k ln v phc tp, ta nn theo cc bc c bn sau: Thu thp thng tin Xc nh cc i tng Thit k m hnh Xc nh loi thng tin cho tng i tng. Xc nh mi quan h gia cc i tng. Cc giai on thit k CSDL Phn tch yu cu Thit k khi nim (Conceptual Design) M hnh ha d liu Thit k vt l (Physical design)

A data model diagram shows the relationships among database tables (entities). They can be classified as Conceptual Data modeling Logical data modeling Physical database build

Thit k CSDL logic l qu trnh xy dng m hnh cc thng tin c s dng trong doanh nghip da trn mt m hnh d liu c th, nhng c lp vi bt k CSDL no hay vi cc quan tm v vt l. S E-R l mt cng c thn thin v hiu qu trong vic m hnh ha d liu. M hnh ny th hin th gii thc bng cc i tng c bn v cc quan h gia nhng i tng ny.

Qu trnh loi b cc d liu d tha t cc bng ca CSDL quan h c gi l chun ha..Nu c s dng hp l, chun ha s l cch tt nht v d dng nht t chc cc bng d liu trong CSDL quan h. Khi chng ta a d liu v dng chun ha, ta : a cu trc d liu v dng n gin nht

Loi b cc trng d liu d tha t cc bng

20

Thit k CSDL v lm vic vi CSDL SQL Server

Xc nh cc d liu ph thuc nhau

Thit k CSDL

21

Bi kim tra1. M hnh tp trung vo bn cht logic ca d liu c gi l a. M hnh khi nim (Conceptual Model) b. M hnh logic (Logical model) c. M hnh o (Virtual Model) d. M hnh thc thi (Implementation Model) 2. M hnh tp trung vo th hin d liu c gi l a. M hnh khi nim (Conceptual Model) b. M hnh logic (Logical model) c. M hnh o (Virtual Model) d. M hnh thc thi (Implementation Model) 3. S ch ra mi quan h gia cc thc th trong CSDL c gi l ___________. a. S quan h thc th (Entity Relationship diagram) b. S m hnh ha d liu (Data Model diagram) c. S phn loi thc th (Entity Classification diagram) d. Khng c loi no 4. Mt thc th l mt i tng tn ti v c th phn bit c vi cc thc th khc. a. ng b. Sai 5. Nhng quan h no sau y l nhng quan h rng buc hp l? a. Mt mt (One to One) b. Nhiu nhiu (May to Many) c. Nhiu mt (Many to One) d. Tt c cc quan h trn

22

Thit k CSDL v lm vic vi CSDL SQL Server

Th sc 1. Hy ch ra cc bc c bn trong thit k CSDL.

2. Hy gii thch rng buc s lng trong quan h gia hai tp thc th X v Y.

Thit k CSDL

23