You are on page 1of 9

Chng Mi Ba - C s d liu (Database)

Table, Record v Field Ni n c s d liu, ta lp tc ngh n SQLServer, Access hay Oracle .v.v., nhng ni cha rt nhiu d liu ta c th lu tr hay ly chng ra mt cch tin li v nhanh chng. Hu ht cc chng trnh ta vit u c truy cp c s d liu, v ta dng n nh mt cng c lm vic vi rt nhiu d liu trong khi tp trung vo vic lp trnh phn giao din vi ngi dng (users). Do ta cn c mt kin thc cn bn v kin trc ca c s d liu hiu l do to sao ta thit k hay truy cp n theo nhng cch nht nh. Ta s dng Access Database biblio.mdb, nm C:\Program Files\Microsoft Visual Studio\VB98\biblio.mdb minh ha cc nim cn bit v c s d liu. Trong database ny c 4 tables: Authors (tc gi), Publishers (nh xut bn), Titles ( mc) v Title Author.

Table Authors cha nhiu records. Mi record trong table Authors cha 3 fields: Au_ID, Author v Year Born (nm sanh). Ta c th trnh by Table Authors di dng mt spreadsheet nh sau:

V cng mt field ca cc records hin th trong cng mt ct ca spreadsheet, nn ta cng ni n mt field nh mt column (ct). V v mi data record chim mt row (hng) ca spreadsheet, nn c khi ta cng ni n mt record nh mt row. Tht tnh m ni, ta khng cn phi c mt computer lu tr hay lm vic vi mt table nh Authors ny. Ta c th dng mt hp ct, trn mi ct ta ghi cc chi tit Au_ID, Author v Year Born ca mt

Author. Nh th mi tm ct tng ng vi mt record v nguyn ci hp l tng ng vi Table Authors. Ta s sp cc ct trong hp theo th t ca s Au_ID c th truy cp record nhanh chng khi bit Au_ID. Ch kh mt ni, nu mun bit c bao nhiu tc gi, trong s 300 ct trong hp, gi hn 50 tui th phi mt vi pht mi c th tr li c. Database trong computer nhanh hn mt h thng bng tay (Manual) l ch . Primary Key v Index trnh s trng hp, thng thng c mt field ca record, th d nh Au_ID trong Table Authors, c dnh ra cha mt tr s c o (unique). Tc l trong Table Authors ch c mt record vi field Au_ID c tr s y m thi. Ta gi n l Primary Key.

Khng phi lc no ta cng mun truy cp mt record Author da vo Au_ID. Nhiu khi ta mun dng chnh tn ca Author truy cp, do ta cng cn phi sort sn cc records theo th t alphabet. Ta cng c th hp nhiu fields li sort cc records. Tht ra, chnh cc records khng cn phi c di i nm ng v tr th t. Ta ch cn nh v tr ca n u trong table l ri. Ci field hay tp hp ca nhiu fields (th d surname v firstname ) dng vo vic sorting ny c gi l Index (ngn tay ch). Mt Table c th c mt hay nhiu Index. Mi Index s l mt table nh ca nhng pointers, cha v tr ca cc records trong Table Authors. N ging nh mc lc index cui mt cun sch cha trang s ch ta n ng phn ta mun tm trong quyn sch. Khi thit k mt Table ta ch nh Datatype ca mi field c th kim tra data cho vo c hp l hay khng. Cc Datatypes thng dng l Number, String ( cha Text), Boolean (Yes/No), Currency ( cha tr s tin) v Date ( cha date/time). Datatype Number li gm c nhiu loi datatypes v con s nh Integer, Long (integer chim 32 bits), Single, Double, .v.v. Di y l Datatypes ca cc fields trong record Author:

C loi Datatype c bit tn l AutoNumber. Tht ra n l Long nhng tr s c pht sinh t ng mi khi ta thm mt record mi vo Table. Ta khng lm g hn l phi chp nhn con s y. Relationship v Foreign Key By gi, nu bn ang chy Microsoft Access quan st database biblio.mdb, bn c th dng Menu Command Tools | Relationships nh sau xem s lin h (relationships) gia cc tables.

Access s hin th giao thoi Relationships, trong mi table c cha tn cc fields. Mi table li c mt hay hai si dy ni qua cc tables klhc. Mi si dy l mt mi lin h (relationship), n ni mt field trong mt table vi mt field c cng tn trong table kia. Th d nh gia hai tables Publishers v Titles c mi lin h da trn field PubID (Publisher IDentification - s l lch ca nh xut bn). Hn na, nu bn s thy u dy pha table Publishers c con s 1, cn u dy bn pha table Titles c du v cc (). Ta gi mi lin h (1- ) l one-to-many, ni mt nh xut bn c th pht hnh nhiu mc sch/CD.

Tng t nh vy, trong mi lin h one-to-many gia table Authors v Title Author, ta thy mt tc gi (bn u c con s 1) c th sng tc nhiu tc phm c i din bi cc record Title Author. Trong khi gia hai tables Titles v Title Author, ta c mt mi lin h one-to-one, tc l tng ng vi mi record Title ch c mt record Title Author. Cu hi t ra l cc mi lin h one-to-many c ci g quan trng. Tng tng khi ta lm vic vi table Titles (tm gi l Tc phm), nhiu khi ta mun bit chi tit ca nh xut bn ca tc phm y. Tht ra ta c th cha chi tit ca nh xut bn ca mi tc phm ngay trong table Titles. Tuy nhin, lm nh th c im bt li l records ca cc tc phm c cng nh xut bn s cha nhng d liu ging nhau. Mi ln mun sa i chi tit ca mt nh xut bn ta phi sa chng trong mi record Title thuc nh xut bn y. V mun cha chi tit ca mi nh xut bn mt ch duy nht, trnh s lp li, nn ta cha chng trong mt table ring, tc l table Publishers. Nu gi s ta bt u thit k database vi Table Titles, ri quyt nh tch cc chi tit v nh xut bn vo mt table mi, tn Publishers, th k thut y c gi l normalization. Ni mt cch khc, normalization l thit k cc tables trong database lm sao mi loi mnh d kin (khng phi l Key) ch xut hin mt ch. Trong mi lin h one-to-many gia tables Publishers v Titles, field PubID l Primary Key trong table Publishers. Trong table Titles, field PubID c gi l Foreign Key, c ngha rng y l Primary Key ca mt table l (foreign). Hay ni mt cch khc, trong khi lm vic vi table Titles, lc no cn chi tit mt nh xut bn, ta s ly cha kha l (Foreign Key) dng lm Primary Key ca Table Publishers truy cp record ta mun. l chnh Table Titles c Primary Key ISBN ca n. Relational Database Mt database c nhiu tables v h tr cc lin h, nht l one-to-many, c gi l Relational Database. Khi thit k mt database, ta s tm cch sp t cc d liu t th gii tht bn ngoi vo trong cc tables. Ta s quyt nh chn cc ct (columns/fields) no, chn Primary Key, Index v thit lp cc mi lin h, tc l t cc Foreign Key u. Cc li ch Trong s cc li ch ca mt thit k Relational Database c:

Sa i d kin, cho vo records mi hay delete (gch b) records c sn rt hiu qu (nhanh). Truy cp d kin, lm bo co (Reports) cng rt hiu qu.

V d kin c sp t th t v c quy c nn ta c th tin cy tnh tnh ca database (khng c ba trn, khi th th ny, khi th th khc - git git). V hu ht d kin nm trong database, thay v trong chng trnh ng dng, nn database t c documentation (ti liu ct ngha). D sa i chnh cu trc ca cc tables.

Integrity Rules (cc quy lut lim chnh) Integrity Rules c dng ni v nhng qui lut cn phi tun theo trong khi lm vic vi database m bo l database cn tt. C hai loi quy lut: lut tng qut (General Integrity Rules) v lut ring cho database (Database-Specific Integrity Rules). Cc lut ring ny thng ty thuc vo cc quy lut v mu dch (Business Rules). General Integrity Rules C hai quy lut lim chnh lin h hon ton vo database: Entity (bn th) Integrity Rule v Referential (ch n) Integrity Rule. Entity Integrity Rule ni rng Primary Key khng th thiu c, tc l khng th c tr s NULL. Quy lut ny xc nhn l v mi Primary Key a n mt row c o trong table, nn d nhin n phi c mt tr s ng hong. Lu l Primary Key c th l mt Composite Key, tc l tp hp ca mt s keys (columns/fields), nn nht nh khng c key no trong s cc columns l NULL c. Referential Integrity Rule ni rng database khng th cha mt Foreign Key m khng c Primary Key tng ng ca n trong mt table khc. iu y hm rng: Ta khng th thm mt Row vo trong mt Table vi tr s Foreign Key trong Row y khng tm thy trong danh sch Primary Key ca table bn pha one (1) m n lin h. Nu c thay i tr s ca Primary Key ca mt Row hay delete mt Row trong table bn pha one (1) th ta khng th cc records trong table bn pha many () cha nhng rows tr thnh m ci (orphans).

Ni chung, c ba nhim (options) ta c th chn khi thay i tr s ca Primary Key ca mt Row hay delete mt Row trong table bn pha one (1):

1. Disallow (khng cho lm): Hon ton khng cho php chuyn ny xy ra. 2. Cascade (nh hng dy chuyn): Nu tr s Primary Key b thay i th tr s Foreign Key
tng ng trong cc records ca table bn pha many () c thay i theo. Nu Row cha Primary Key b deleted th cc records tng ng trong table bn pha many () b deleted theo. 3. Nullify (cho thnh NULL): Nu Row cha Primary Key b deleted th tr s Foreign Key tng ng trong cc records ca table bn pha many () c i thnh NULL, hm ng c i tm thm chi tit u c. Database-Specific Integrity Rules Nhng quy lut lim chnh no khc khng phi l Entity Integrity Rule hay Referential Integrity Rule th c gi l Database-Specific Integrity Rules. Nhng quy lut ny da vo chnh loi database v nht l ty thuc vo cc quy lut v mu dch (Business Rules) ta dng cho database, th d nh mi record v tin lng ca cng nhn phi c mt field S Thu (Tax Number) do s Thu V pht hnh cho cng dn. Lu l cc quy lut ny cng quan trng khng km cc quy lut tng qut v lim

chnh. Nu ta khng p dng cc Database-Specific Integrity Rules nghim chnh th database c th b h v khng cn dng c. Microsoft Access Database Management System (MSAccess DBMS) Microsoft Access Database Management System gm c Database Engine v nhng cng c i chung cung cp cho users mt mi trng lm vic thn thin vi database, nh Database Design (thit k cc tables v mi lin h), Data entry v bo co (reports). Km theo vi Visual Basic 6.0 khi ta mua l mt copy ca Database Engine ca MSAccess. Tn n l Jet Database Engine, ci li ca MSAccess DBMS. Cc chng trnh VB6 c th truy cp database qua Jet Database Engine. Nu trn computer ca bn c ci sn MSAccess, th bn c th dng thit k cc tables ca database hay cho data vo cc tables. Properties Required v Allow Zero Length Khi thit k mt table field, lu property Required v nht l property Allow Zero Length ca Text. Nu property Required ca mt field l Yes th ta khng th update (vit) mt record vi field y c tr s NULL. Nu mt Text field c property Allow Zero Length l No th th ta khng th update mt record khi field y cha mt empty string.

Khi ta to mt record ln u, nu khng cho tr s ca mt field, th field y c tr s l NULL. Thng thng, Visual Basic 6.0 khng thch NULL value nn ta phi th mt field vi Function IsNULL() m bo n khng c tr s NULL trc khi lm vic vi n. Nu IsNULL tr v tr s False th ta c th lm vic vi field y. Nh l khi tr s NULL c dng trong mt expression, ngay c khi chng trnh khng cho Error, kt qu cng l NULL. Lm vic vi cc versions khc nhau Nu my bn ang chy MSAccess2002 th bn c th lm vic vi Access database file version 97, 2000 v 2002. Nu cn phi convert t version ny qua version khc, bn c th dng Access DBMS Menu Command Tools | Database Utilities | Convert Database | To Access 2002 File Format.... Nu mun gi nguyn version, bn c th convert database qua File Format 2002 sa i, ri sau convert tr li File Format c.

Access database file ln ln rt nhanh, v cc records b deleted vn cn nm nguyn, nn mi tun bn nn nh nn n li b ht cc records b deleted bng cch dng Access DBMS Menu Command Tools | Database Utilities | Compact and Repair Database... hay dng function DBEngine.CompactDatabase trong VB6. Dng Query vit SQL Mt cch truy cp database l dng ngn ng Structured Query Language (SQL) theo chun do ISO/IEC pht hnh nm 1992, gi tt l SQL92. Tt c mi database thng dng u h tr SQL, mc du nhiu khi chng cn cho thm nhiu chc nng rt hay nhng khng nm trong chun. Cc lnh SQL thng dng l SELECT, UPDATE, INSERT v DELETE. Ta c th dng phng tin thit k Query ca MSAccess vit SQL. Sau khi thit k Query bng cch drag drop cc fields, bn c th dng Menu Command View | View SQL nh sau:

Tip theo y l SQL statement ca Query bn trn m bn c th copy paste vo trong code VB6:

Dng Link Table lm vic trc tip vi database loi khc Ta c th dng mt database loi khc, nh DBase, trc tip trong VB6 nh dng mt Access database bnh thng. Mun thit lp mc ni y, bn dng Menu Command File | Get External Data | Link Tables... ri chn loi DBase v chnh file ca table m bn mun dng nht n vo Access database ang m:

Database Server v mt s nim D Jet Database Engine l mt relational database rt tt v hiu nng, n thuc loi File Based database, tc l n th ng, khng chy mt mnh nhng phi ty thuc vo chng trnh dng n. File Based database khng thch hp vi nhng ng dng c nhiu ngi dng cng mt lc. Trong khi , mt Database Server nh SQLServer chy ring phc v bt c chng trnh khch (client) no cn. Database Server thich hp cho cc ng dng c nhiu users v ch c mt mnh n chu trch nhim truy cp d liu cho mi clients. N c th cha nhiu routines a phng, gi l Stored Procedures, thc hin cc cng tc client yu cu rt hiu nng. Database Server thng c cch i ph hu hiu khi c s c v phn cng nh a h hay cp in. Ngoi ra, Database Server c sn cc phng tin v an ninh v backup. N cng c thm cc chc nng dng cho mng. Ngy nay ta thu thp d liu di nhiu hnh thc nh Email, Word documents, Speadsheet. Khng nht thit d liu lun lun c cha di dng table ca nhng records v khng nht thit d liu lun lun c lu tr trong mt database ng hong. D vy, chng vn c xem nh database di mt mt chng trnh ng dng. Do , ta dng t Data Store (Kho d liu) thay th cho database ni n ni cha d liu. V i vi chng trnh tiu th d liu, ta ni n Data Source (Ngun d liu) thay v database. Khi lp trnh bng VB6 truy cp database, ta nhn databse mt cch tru tng, tc l du n l

Access, DBase, SQLServer hay Oracle ta cng xem nh nhau. Nu c thay i loi database bn di, cch lp trnh ca ta cng khng thay i bao nhiu. Trong tng lai, mt XML file cng c th c xem nh mt database nho nh. N c th ng mt mnh hay l mt table trch ra t mt database chnh huy. XML l mt chun m ta c th dng import/export d liu vi tt c mi loi database h tr XML. Ta c th trao i d liu trn mng Intenet di dng XML. Ngoi ra, thay v lm vic trc tip vi mt database ln, ta c th trch ra vi tables t database y thnh mt XML file. K ta ch lp trnh vi XML file cho n khi kt thc s ha (merge/reconcile) XML file vi database ln. Nu phn ln cc chng trnh p dng c thit k lm vic cch ny, th trong tng lai ta khng cn mt Database Server tht mnh.

You might also like