Bài giảng chương 1 - Cơ sở dữ liệu | Trường Đại học Công nghệ, Đại học Quốc gia Hà Nội

Bài giảng chương 1 - Cơ sở dữ liệu | Trường Đại học Công nghệ, Đại học Quốc gia Hà Nội được sưu tầm và soạn thảo dưới dạng file PDF để gửi tới các bạn sinh viên cùng tham khảo, ôn tập đầy đủ kiến thức, chuẩn bị cho các buổi học thật tốt. Mời bạn đọc đón xem!

H QUN TR CƠ S D LIU
CHƯƠNG I
GII THIU
(Introduction)
MC ĐÍCH
Chương này trình bày mt cái nhìn bao quát v cơ s d li u (CSDL/DB), v h qu n tr
cơ s d li u (HQTCSDL/DBMS) v h cơ s d đ liu (HCSDL/DBS). Các òi h i khi xây
dng mt HQTCSDL đó cũng chính nhng chc năng mt HCSDL c n ph i có. Mt khái
nim quan trng là khái nim giao d ch (Transaction). Các tính cht m t giao d ch ph i có để đảm
bo mt HQTCSDL, được xây dng trên HCSDL tương ng, trong sut quá trình hot động s
luôn cho m t quán). Qut CSDL tin cy (d liu luôn nh n tr giao dch nhm đảm bo mi giao
dch trong h thng các tính cht mt giao dch phi có. Mt điu cn chú ý trong các
tính cht ca mt giao dch, tính cht nht quán tr i lước hết phi được đảm bo bi ngườ p trình-
người viết ra giao dch.
YÊU CU
Hiu các khái nim.
Hiu các v đền đặt ra khi xây dng mt HQTCSDL: thiết kế CSDL, đảm bo tính nht
quán ca CSDL trong sut cuc s ng c a nó, nn t ng ph n c ó mng trên đ t HQTCSDL được
xây dng.
Hiu c ng t u trúc h th ng th
Hiu vai trò ca các người s d ng h thng.
MT S KHÁI NIM
Mt cơ s d liu (CSDL/ DB: DataBase) m t tp hp các tp tin liên quan v i
nhau, được thiết kế nh u s l u. m làm gim thi p li d li
Mt h qun tr cơ s d liu (HQTCSDL/ DBMS: DataBase Management System)
mt h th ng gm mt CSDL và các thao tác trên CSDL đó, được thiết kế trên mt nn
tng phn c ng, ph n mm và vi mt kiến trúc nht định.
Mt h cơ s d liu (HCSDL/ DBS: DataBase System) mt phn mm cho phép
xây d ng m t HQTCSDL.
CHƯƠNG I. GII THIU Trang
1
H QUN TR CƠ S D LIU
H C S DƠ LIU
M t s đ ư i m bt li chính c a vic l u gi thông tin t ch c trong h th ng x file
thông thường:
Dư tha d liu và tính không nht quán (Data redundancy and inconsistency): Do
các file và các trình ng d ng được to ra bi các người lp trình khác nhau, nên các file
định dng khác nhau, các chương trình được viết trong các ngôn ng lp trình khác
nhau, cùng mt thông tin có th được lư u gi trong các file khác nhau. Tính không thng
nht và dư tha này s làm tăng chi phí truy xu ư t và l u tr , h n ơn nũa, nó s d đến tính
không nh . t quán ca d liu: các b n sao c a cùng m t d li u có th không nh t quán
Khó khăn trong vic truy xut d liu: Môi trường c ng xa h th file thông
thường không cung c cho phép truy xup các ng c t thông tin mt cách hiu qu
thun li.
S cô lp d liu (Data isolation): Các giá tr d u li được lưu tr trong cơ s d liu
phi tho mãn mt s các ràng bu c v tính nh t quán c a d liu ( ràng bu c nh t
quán/consistency contraints ). Trong h thng x file thông thường, rt khó khăn
trong vic thay đổi các chương trình để tho c. V mãn các yêu cu thay đổi ràng bu n
đề đế tr nên khó khăn hơn khi các ràng bu c liên quan n các hng m c d liu nm
trong các file khác nhau.
Các vn đề v tính nguyên t (Atomicity problems): Tính nguyên t c a m t hot
động (giao dch) là: hoc được hoàn t t trn vn ho c không c . Điu này
nghĩa là mt hot động (giao dch) ch làm thay đổi các d liu b n v ng khi đã hoàn
tt (kết thúc thành công) nếu không, giao dch không để l ếi m t du v t nào trên CSDL.
Trong h thng x lý file thông thường khó o đảm b được tính cht này.
Tính bt thường trong truy xut cnh tranh: M t h thng cho phép nhiu người s
dng c p nh t d liu đồng thi, th d ế n đến k t qu d liu không nh t quán.
Đ đ iu này òi h i m t s giám t. H thng x file thông thường không cung c p
chc năng này.
Vn đề an toàn (Security problems): mt người s dng h cơ s d li u không cn
thiết cũng không quyn truy xut t t c li các d u. Vn đề này đòi hi h thng
phi đảm bo được tính phân quyn, chng truy xut trái phép ...
Các bt l i mi nêu trên đã g s đề phát tri n các DBMS. Ph n sau c a giáo trình s cp
đế n các quan ni m các thu t toán được s dng để phát trin m t h cơ s d liu nhm gii
quyết các vn đề nêu trên. Mt s khái nim
CHƯƠNG I. GII THIU Trang
2
H QUN TR CƠ S D LIU
GÓC NHÌN D LIU
Tính hiu qu u ph bi u di ca h thng đòi hi phi thiết kế các cu trúc d li c tp để n
d liu trong cơ s d liu. Các nhà phát tri n che d u s ph c tp này thông qua các mc tru
tượng nh m đơn gi n hóa s trao đổi c a người s d ng v i h thng:
Mc vt ( Physical level ): Mc thp nht ca s tru tượng, t d li u hi n
được lư u tr thế nào. m c này, cu trúc d liu m c thp, ph c t p được t chi
tiết.
Mc lun ( Logical level ): Mc kế cao hơn v s tr u tượng, t d liu
được lư u tr trong cơ s d liu các m i quan h gi a các d liu này. M c logic
ca s tru tượng được dùng bi các người qun tr cơ s d liu.
Mc view ( view level ): Mc cao nht ca s tru tượng, mô t ch m t phn c a cơ
s d liu toàn th. M t người s dng cơ s d đế liu liên quan n ch m t b phn c a
cơ s d ư li u. Nh vy s trao đổi ca h v i h thng được làm đơn gin b i vi c định
nghĩa view. H thng có th cung cp nhi u m c view đối vi cùng mt cơ s d li u.
Mc view
...
view 1
view 2
view n
mc lun lý
mc vt lý
Figure 1
Th hin và sơ đồ (instances and schemas): Tp hp các thông tin được lư u tr trong
cơ s d đ li u ti m t thi im được g i m t th hi n (instance) c a cơ s d li u.
Thiết kế t sng th ca cơ d u li được gi là sơ đồ (schema).
Mt h cơ s d đồ liu m t vài sơ , được phân tương ng vi các m c tr u tượng.
mc thp nht sơ đồ vt lý (physical schema), mc trung gian là sơ đồ lun
(logical schema), mc cao nht là sơ đồ con (subschema). Nói chung mt h cơ s d
liu h tr mt sơ vđồ t lý, mt sơ đồ lun lý và m đồt vài sơ con.
Kh năng sa đổi mt định nghĩa mt mc không nh h ng mưở t định nghĩa sơ đồ
mc cao hơn được gi là s độc l p d liu (data independence). Có hai mc độc lp d
liu:
- Độc lp d liu vt lý (Physical data independence) là kh năng sa đổi sơ vđồ t
lý không làm cho các chương trình ng d ng phi viết l i i. Các sa đổ mc vt
lý là cn thiết để ci thin hi u n ăng.
CHƯƠNG I. GII THIU Trang
3
H QUN TR CƠ S D LIU
- Độc lp d liu lun (Logical data independence) kh năng sa đổi sơ đồ
lun lý không làm cho các ch ng dương trình ng phi viết li. Các sa đổi mc
lun lý là cn thiết khi cu trúc lun lý ca cơ s d liu b . thay thế
MÔ HÌNH D LIU
Nm dưới c ơu trúc c a m t c s d liu hình d li u: m t b các công c quan
nim để t d liu, quan h d liu, ng nghĩa d liu các ràng bu c nht quán. ba
nhóm hình: Các hình lun da trên đối tượng (Object-based logical models), các mô
hình lun da trên mu tin (record-based logical models), các hình vt (physical
models).
- Các hình lun lý da trên đối tượng được dùng mô t d liu m c lun
mc view. Chúng được đặc trưng b c chúng cung ci vi p kh năng cu trúc linh hot
cho phép các ràng buc d liu được xác định mt cách tường minh. Dưới đây
mt vài hình được biết rng rãi: hình thc th - quan h (entity-relationship
model), hình hướng đối tượng ( object-oriented model ), hình d liu ng
nghĩa ( semantic data model ), mô hình d liu hàm ( function data model ).
- Các hình lun da trên mu tin được dùng để miêu t d liu mc lun
hay mc view. Chúng được dùng để xác đị nh c u trúc lun toàn th ca cơ s d
liu và cung cp s t m c cao hơn vic th c hin. Cơ s d liu được cu trúc
dng mu tin định dng c định (fixed format record): mi mu tin xác đị nh m t s c
đị độ đị nh các trường, m i trườ ường th ng có dài c nh. M t vài mô hình được biết r ng
rãi là: Mô hình quan h, mô hình mng, mô hình phân cp.
- hình d liu vt lý được dùng để mô t d liu mc thp nht. Hai mô hình d
liu vt được biết rng rãi nh t hình hp nht (unifying model) mô hình
khung-b nh ( frame-memory model ).
NGÔN NG C S DƠ LIU
Mt h cơ s d để đị đồ liu cung c p hai ki u ngôn ng khác nhau: m t xác nh sơ cơ s
d liu, mt để bi u di n các vn tin cơ s d li u và cp nh t.
- Ngôn ng định nghĩa d liu (Data Definition Language: DDL) cho phép định
nghĩa sơ đồ cơ s d liu. Kế t qu biên dch các lnh ca DDL tp h p các b ng
được lư u tr trong m t file đặ đc bit được g i là t in d liu (data dictionary) hay
thư m đc d liu (data directory). T in d liu là m t file cha metadata. File này
đượ được tra c u trước khi d liu hin hành c đọc hay s đổ ư a i. Cu trúc l u tr
phương pháp truy cp được s dng b i h cơ s d đượ liu c xác định bi m t tp
hp các định nghĩa trong mt kiu đặc bit ca DDL được gi ngôn ng định
nghĩa lưu tr d liu (data storage and definition language). Kết qu biên dch
ca các định nghĩa này là mt tp hp các ch th xác định s thc hin chi tiết ca các
sơ c sđồ ơ d liu (thường được che du).
- Ngôn ng thao tác d liu (Data manipulation language: DML) ngôn ng cho
phép người s dng truy xut hoc thao tác d liu. Có hai kiu ngôn ng thao tác d
liu: DML th tc (procedural DML) u cu người s dng đặc t d liu nào cn
và làm th c nó. ế nào để nhn đượ DML không th tc (Nonprocedural DML) yêu cu
người s dng đặc t d liu nào c ến nh ng không cư n đặc t làm th nào để nh n
được nó. M t vn tin (query) m t lnh yêu cu tìm l i d li u (information
CHƯƠNG I. GII THIU Trang
4
H QUN TR CƠ S D LIU
retrieval). Phn ngôn ng DML liên quan đến s tìm li thông tin được gi là
ngôn ng v n tin (query language).
QUN TR GIAO DCH
Thông thường, mt s thao tác trên cơ s d liu t o thành mt đơn v logic công vi c. Ta
hãy xét d chuyn khon, trong đó m n tt s tin x được chuy tài khon A ( A:=A-x )
sang mt tài khon B ( B:=B+x ). Mt yếu t c n thiết c hai thao tác này ho c cùng x y ra
hoc không hot động nào xy ra c. Vic chuyn khon phi xy ra trong tính toàn th ca
hoc không. Đòi hi toàn th-hoc-không này được gi là tính nguyên t (atomicity). Mt yếu t
cn thiết khác là s thc hin vic chuyn kho n b o t n tính nht quán ca cơ s d liu: giá tr
c a t ng A + B phi được bo t n . Đòi hi v tính chính xác này được gi tính nht
quán (consistency). Cui cùng, sau khi th ng chuyc hin thành công hot độ n khon, các giá tr
ca các tài khon A B phi bn vng cho th s c h thng. Đòi hi v nh b n
vng này được gi là tính lâu b n (durability).
Mt giao d ch m t tp các hot động th c hi n ch mt ch c năng logic trong m t ng
dng cơ s d liu. M i giao dch là m t đơn v mang c tính nguyên t ln tính nht quán. Như
vy, các giao dch phi không được vi phm bt k ràng buc nht quán nào: Nếu cơ s d liu là
nht quán khi mt giao dch kh ch ki động thì cũng phi nht quán khi giao d ết thúc
thành công. Tuy nhiên, trong khi đang thc hin giao dch, ph không nhi cho phép s t quán
tm thi. S không nht quán tm thi này tuy là cn thiết nhưng li có th d ăn đến các khó kh n
nếu xy ra s c .
Trách nhim ca người lp trình là xác đị đnh úng đắn các giao dch sao cho mi mt bo
tn tính nht quán ca cơ s d liu.
Đảm b m co tính nguyên t tính lâu bn là trách nhi a h cơ s d liu nói chung
ca thành phn qun tr ch ( transaction-management component ) giao d nói riêng. Nếu không
s c, t t c giao dch hoàn t t thành công tính nguyên t được hoàn thành d dàng. Tuy
nhiên, do s hin din ca các s c, mt giao dich có th không hoàn tt thành công s thc hin
ca nó. Nếu tính nguyên t được đảm bo, mt giao dch tht bi không gây hiu qu đến trng
thái ca cơ s d ư liu. Nh vy, cơ s d liu ph i được hoàn l i tr ng thái ca nó trước khi giao
dch bt đầu. H cơ s d liu ph i trách nhim phát hin s c h thng và tr l ơi c s d
liu v trng thái trước khi xy ra s c .
Khi mt s giao dch cnh tranh cp nht cơ s d liu, tính nht quán c a d liu
th không o tđược b n, ngay c khi mi giao dch chính xác. B qun tr điu khin
cnh tranh (concurency-control manager) trách nhim điu khin các trao đổi gia các giao
dch cnh tranh để đảm bo tính thng nht ca CSDL.
QUN TR LƯU TR
Các CSDL đòi h n không gian li m i lt kh ượng l ưu tr, th lên đến nhiu
terabytes ( 1 terabyte=10
3
Gigabytes=10
6
Megabytes ). Các thông tin phi được lư ưu tr trên l u
tr ngoài (đĩa). D liu được di chuyn gia lưu tr đĩa và b nh chính khi cn thiết. Do vic di
chuyn d liu tlên đĩa tương đối chm so vi tc độ ca đơn v x lý trung tâm, điu này ép
buc h CSDL phi cu trúc d liu sao cho ti ưu hóa nhu cu di chuyn d liu gia đĩa b
nh chính.
CHƯƠNG I. GII THIU Trang
5
H QUN TR CƠ S D LIU
M đc ích c a m t h CSDL làm đơn gin d dàng vic truy xut d li i su. Ngườ
dng h thng có th không cn quan tâm đến chi tiết vt lý ca s thc thi h thng. Phn ln
h ch quan đến hi u n ăng ca h thng (thi gian tr li mt câu vn tin ...).
B qun tr lưu tr ( storage manager ) mt module chương trình cung cp giao din
gia d liu mc thp được lưu tr trong CSDL vi các chương trình ng dng các câu vn
tin được đệ trình cho h th ng. B qun tr lư đổ u tr trách nhim trao i vi b qun tr file
(file manager). D liu thô được lưu tr trên đĩa s d ng h th ng file (file system), h th ng này
thường được cung cp bi h điu hành. B qun tr lư u tr dch các câu lnh DML thành các
lnh ca h thng file mc thp. Như vy, b qun tr lư u tr nhim v lư u tr , tìm l i và cp
nht d liu trong CSDL.
NHÀ QU C DN TR Ơ S LIU
M đốt trong các do chính i vi vic s d đng DBMS s iu khin trung tâm cho
c d đ liu l n các chương trình truy cp các d liu này. Người iu khin trung tâm trên toàn h
thng như v y gi là nhà qu n tr cơ s d liu (DataBase Administrator - DBA). Các ch c năng
ca DBA như sau:
Định nghĩa sơ đồ: DBA to ra sơ đồ CSDL gc bng cách viết m t t p các đị ĩnh ngh a
s được dch bi trình biên dch DDL thành mt tp các bng được lư u tr
thường trc trong t đ i n d liu.
Định nghĩa cu trúc lưu tr và phương pháp truy xut: DBA to ra mt cu trúc lưu
tr thích hp và các phương pháp truy xut bng cách viết mt tp hp các định nghĩa
mà nó s d nh ngh được dch bi trình biên dch lưu tr liu và ngôn ng đị ĩa d liu.
S a đổi sơ đồ và t ch c vt lý
C up quyn truy xut d li : Vic cp các dng quyn truy cp khác nhau cho phép
DBA điu hoà nh ng phn c a CSDL nhiu người th truy xut. Thông tin v
quyn được lưu gi trong mt cu trúc h thng đặc bi t, được tham kh o bi h
CSDL mi khi có s truy xut d li th u c a h ng.
Đặc t ràng buc toàn vn ( integrity-contraint ): Các giá tr d ư liu được l u tr
trong CSDL ph các ràng bui tho mãn mt s c nht quán nht định. Ví d s gi làm
vic ca mt nhân viên trong mt tu n không th vượt quá mt gii hn 80 gi ch ng
hn. Mt ràng buc như v y ph i được đặc t mt cách tường minh bi DBA. Các ràng
buc toàn vn được lưu gi trong mt cu trúc h thng đặc bit được tham kho bi h
CSDL mi khi có s cp nht d liu.
NGƯỜI S DNG CSDL
M đc ích đầ u tiên c a h CSDL cung c p m t môi trường để ư tìm li thông tin l u
thông tin trong CSDL. Các ng ng cười s d ơ s d liu được phân thành b n nhóm tu theo cách
thc h trao đổi v i h thng.
Các người lp trình ng dng: nhà chuyên môn máy tính người trao i vđổ i h
thng thông qua các li gi DML được nhúng trong mt chương trình được viết trong
mt ngôn ng ch - host language (Pascal, C, Cobol ...). Các chương trình này thường
được tham kh o như các chương trình ng d ng. pháp DML thường r t khác v i
cú pháp ca ngôn ng ch c b, các li gi DML thường đượ t đầ u b i mt ký t đặc bit
như v y mã thích h p m i th đặ được sinh. M t b tin x c bi t, được g iti n
CHƯƠNG I. GII THIU Trang
6
H QUN TR CƠ S D LIU
biên dch (precompiler) DML, chuyn các lnh DML thành các li gi th tc chun
trong ngôn ng ch . B biên dch ngôn ng ch s sinh đối tượng thích hp.
nhng ngôn ng l p trình phi hp c u trúc đi u khi n c gia các ngôn ng ng như
Pascal v u trúc i c điu khin để thao tác đối tượng CSDL. Các ngôn ng này (đôi khi
được gi ngôn ng thế h th tư đặ đ đặ để) thường bao g m các c im c bit làm d
dàng vic sinh các dng và hin th d liu trên màn hình.
Các người s d ng thành th o ( Sophisticated users ): Trao đổ i vi h th ng không
qua viết trình. Thay vào đó h đặt ra các yêu c u ca h trong ngôn ng truy v n
CSDL ( Database query language ). Mi câu vn tin như v xy được đệ trình cho b
vn tin, chc năng ca b xvn tin là "d ch" các lnh DML thành các ch th mà b
qun tr lưu tr hi u. Các nhà phân tích đệ trình các câu vn tin thăm dò d liu trong cơ
s d liu thuc vào phm trù này.
Các người s dng chuyên bit ( Specialized users ): các người s dng thành
tho, h vi ng d ết các ng CSDL chuyên bit không nm trong khung x d liu
truyn thng. Trong đó, phi k đến các h thng thiết kế được tr giúp bi máy tính
(computer-aided design systems), Cơ s tri thc (knowledge-base) h chuyên gia
(expert systems), các h thng lưu tr d đồ liu v i ki u d li u ph c tp (d liu h a,
hình nh, âm thanh) các h thng hình môi trường (environment-modeling
systems)
Các người s d ơng ngây th ( Naive users ): các người s dng không thành tho,
h trao đổi vi h thng bi cu dn mt trong các chương trình ng d ng thường tr c
đã được viế t s n.
CU TRÚC H THNG TNG TH
M t h CSDL được phân thành các module, m i m t th c hin m t trách nhim trong h
th ng t ng th. Mt s i h chc n a hăng c CSDL có th p bđược cung c u điu hành. Trong h
hết các trường h p, h điu hành ch cung cp các dch v cơ s nh t, h CSDL ph i xây dng
trên cơ s đ ưó. Nh v ế ếy, thi t k h CSDL ph i xem xét đến giao di n gia h CSDL và h điu
hành.
Các thành phn chc n a hăng c CSDL th được chia thành các thành ph n x v n tin
(query processor components) và các thành phn qun tr lưu tr (storage manager components ).
Các thành phn x lý vn tin gm:
Trình biên dch DML ( DML compiler ): dch các lnh DML trong mt ngôn ng vn
tin thành các ch th mc th p engine định giá v n tin ( query evaluation engine )
th hi u. H n n ơ a, Trình biên dch DML ph ế i bi n đổi mt yêu c u ca người s dng
thành mt đích tương đương nhưng dng hiu qu hơn có nghĩa tìm mt chiến lược
tt để thc hin câu vn tin.
Trình tin biên dch DML nhúng ( Embedded DML Precompiler ): biến đổi các lnh
DML được nhúng trong mt chương trình ng d ng thành các li gi th tc chun
trong ngôn ng ch. Trình ti ch phn biên d đổi trao i vi trình biên dch DML để sinh
mã thích hp.
B thông dch DDL ( DDL interpreter ): thông dch các lnh DDL ghi chúng vào
mt tp hp các bng cha metadata.
CHƯƠNG I. GII THIU Trang
7
H QUN TR CƠ S D LIU
Engine định giá vn tin ( Query evaluation engine ): Thc hin các ch th mc thp
được sinh ra bi trình biên dch DML.
Các thành phn qu u mn tr lưu tr cung cp các giao din gia d li ư c thp được l u tr
trong CSDL các ch ng, các vương trình ng d n tin được đệ trình cho h thng. Các
thành phn qun tr l gưu tr m:
B qun tr quyn và tính toàn vn ( Authorization and integrity manager ): kim tra
s tho mãn các ràng buc toàn v n ki m tra quy n truy xut d liu c a người s
dng.
B qun tr giao dch ( Transaction manager ): Đảm bo rng CSDL được duy trì
trong trng thái nh t quán cho dù h thng có s c c hiđảm bo rng các th n giao
dch cnh tranh tiến trin không xung đột.
B qun tr file ( File manager ): Qun tr cp phát không gian trên lư u tr đĩa và các
cu trúc d liu được dùng để biu din thông tin được lưu tr trên đĩa.
B qun tr b đệm ( Buffer manager ): trách nhim đ em d liu t lư đĩu tr a
vào b nh chính và quyết định d nh liu nào tr trong b .
Hơn n c u n b ph n ca, mt s u trúc d li được c đến như a s thc thi h thng vt lý:
Các file d liu: Lưu tr CSDL
T đin d liu ( Data Dictionary ): lưu metadata v c u trúc CSDL.
Ch mc ( Indices ): cung cp truy xut nhanh đế n các hng m c d liu ch a các giá
tr tìm kiếm.
D liu thng kê ( Statistical data ): lư u tr thông tin th ng kê v ơ d liu trong c s
d liu. Thông tin này được dùng bi b x để vn tin ch n nh ng phương pháp hi u
qu thc hin câu vn tin.
Sơ đồ các thành phn và các ni kết gia chúng
Naive users A
pp
lication
p
ro
g
rammer So
p
histicated users Database administrator
application application query database
interfaces programs scheme
embedded DML DDL
DML compiler interpreter
precompiler
application
programs
object code
query
evaluation
engine
Query processor
CHƯƠNG I. GII THIU Trang
8
H QUN TR CƠ S D LIU
transaction buffer authorization and
manager manager integrity manager
file manager
storage manager
Figure 2
KI N TRÚC H C S DƠ LIU
Kiến trúc h n trúc CSDL b nh h ng nhi u b ng máy nưở i h th n. Các sc thái ca kiế
máy như mng, song song và phân tán được phn ánh trong kiến trúc ca h CSDL.
Mng máy tính cho phép thc hin mt s công vic trên m t h th ng các server, m t
s công vic trên các h thng client. Vic phân chia công vic này dn đến s phát trin
h CSDL client-server.
X song song trong mt h th ng máy tính làm tăng t ng cc độ các hot độ a h
CSDL, tr li các giao dch nhanh hơn. Các v n tin được x theo cách khai thác tính
song song. S c n thiế t x v n tin song song này dn t n ci s phát tri a h CSDL
song song.
D liu phân tán trên các site hoc trên các b phn trong mt cơ quan cho phép các
d liu thường trú ti nơi chúng được sinh ra nhưng vn th truy xut chúng t các
site khác hay các b ph n khác. Vi c lư u nhi u b n sao ca CSDL trên các site khác
nhau cho phép các t ch c l n vn th tiế p tc ho t độ ng khi m t hay m t vài site b
s c. H CSDL phân tán được phát trin để qun lý d liu phân tán, trên phương di n
đị a lý hay qu n tr, tr i r ng trên nhiu h CSDL .
H THNG TP TRUNG
Các h n không trao CSDL tp trung chy trên máy đơ đổi vi các máy khác. Các h
thng như vy tri t i s các h CSDL mt ngườ dng chy trên các máy cá nhân (PC) đến các h
CSDL hiu năng cao chy trên các h mainframe. Mt h máy tính mc đích chung hin đạ i g m
mt hoc mt vài CPU m t s b đ iu khin thiết b được n i vi nhau thông qua mt bus
CHƯƠNG I. GII THIU Trang
9
H QUN TR CƠ S D LIU
chung, cho phép truy xut đế n b nh chia s. CPU b nh cache cc b lư u các bn sao c a
mt s ph nh phn ca b chính nhm tăng tc độ truy xut d liu. Mi b điu khin thiết b
trách mt kiu thi n thiết b xác định. Các CPU và các b điu khi ết b có th thc hin đồng thi,
canh tranh truy cp b . B nh nh cache giúp làm gim s tranh chp truy xut b nh. Ta phân
bit hai cách các máy tính được s d ng: H th ng m t người ng h th ng nhiu người
dùng. H ng m CSDL được thiết kế cho h th t người dùng không h tr điu khin cnh tranh,
chc n c hăng ph i hoc là thiếu hoc ch là mt s chép d đơ phòng n gin.
H THNG CLIENT-SERVER
Các máy tính cá nhân ( PC ) ngày càng tr nên m ơ ơ ơnh h n, nhanh h n, và r h n. Có s
chuyn dch trong h thng tp trung. Các đầu cui (terminal) được n p trung i v i h th ng t
bây gi bđược thế ch i các máy tính cá nhân. Ch c nă ng giao di n người dùng (user interface)
thường được qun trc tiếp bi các h thng tp trung nay được qun bi các máy tính
nhân. Như v y, các h thng t p trung ngày nay ho t động như các h thng server làm tho
mãn các đòi h n tri ca các client. Chc năng CSDL th được chia thành hai phn: ph ước
(front-end) phn sau (back-end). Phn sau qun tr truy xut cu trúc, định giá câu vn tin
t ii ưu hoá, đ u khin s x y ra đồng th i và ph c h i. Ph n trước ca h CSDL gm các công
c như: to mu (form), các b so n báo cáo (report writer), giao di n đồ ho ng ười dùng
(graphical user interface). Giao din gia ph c phn trướ n sau thông qua SQL hoc mt
chương trình ng d ng. Các h thng server có th c phân thành các ph đượ m trù : server giao
dch (transaction server), server d liu (data server).
Network
Client Client Client Client
Server
Figure 3
H thng server giao dch (transaction-server systems): còn được gi h thng
server vn tin (query-server system), cung cp mt giao din mà các client th gi
đế độ đ n các yêu cu th c hin m t hành ng. Để áp ng các yêu c u, h th ng th c
hin các hành động gi l t qu i si client các kế . c ngườ dng th đặc t các
yêu cu trong SQL hoc trong mt giao din trình ng d ng s d ng m t cơ ế ch gi th
tc xa ( remote-procedure-call ).
o Các servers giao d ch ( Transaction servers ): Trong các h thng tp trung,
phn trước (front-end) phn sau (back-end) được thc hin trong mt h
thng. Kiến trúc server giao dch cho phép chia chc năng gia phn trước
phn sau. Chc năng phn trước được h tr trên các máy tính nhân (PC).
Các PC hành động như nh ng khách hàng ca các h thng server nơ ư i l u tr
mt khi lượng l ng phn d liu h tr các chc nă n sau. Các clients gi
các giao dch đến các h thng server ti đó các giao dch được thc hin
CHƯƠNG I. GII THIU Trang
10
H QUN TR CƠ S D LIU
các k c gết qu đượ i tr l i cho các clients, người gi trách nhi m hi n th d
liu.
ODBC ( Open DataBase Connectivity ) được phát trin để t o giao di n
gia các clients các servers. ODBC mt giao din trình ng dng cho
phép các clients sinh ra các lnh SQL gi i đế n m t server t đó lnh được
thc hin. Bt k client nào s dng giao di n có th ni v i b t k mt server
nào cung cp giao din này.
Các giao din client-server khác ODBC cũng được s d ng trong m t s
h thng x lý giao dch. Chúng được xác định bi mt giao din lp trình ng
dng, s dng nó các clients to ra các li gi th tc giao dch t xa
( transactional remote procedure calls ) trên server. Các li gi này ging như
các li g i th i l tc gc đối vi ngườ p trình nhưng tt c i g i th các l t c t
xa ca mt client được bao trong m t giao dch server cu i. Như v ếy n u
giao dch b d , server th hu b hiu qu c a các li g i th tc xa riêng
l.
H thng server d liu ( Data-server systems ): cho phép các clients trao đổi vi các
server bng cách to ra các yêu cu đọc hoc cp nht d li u trong các đơ n v như file
hoc trang. d, các file-servers cung cp m đt giao din v i h th ng file ti ó các
clients th t o, c p nh t, đọc ho c xoá files. Các servers d liu c a cơ s d liu
cung cp nhi ng h n vu chc nă ơn; chúng h tr các đơ d liu nh hơ ưn file nh trang,
b ( tuple ) hoc đối tượng. Chúng cũng cung cp phương tin d dàng để ly ch mc
(indexing) d liu, ph n d tương ti dàng để o giao dch.
o Các server d liu (Data Servers): Các h thng server d liu được s dng
trong các mng cc b, trong đó có mt ni k t tế c độ cao gia các máy clients
y server, các máy clients sc mnh x tương thích vi máy server
các công vic phi được thc hin tăng cường tính toán. Trong mt môi
trường như vy, có th g đế để i d liu n các máy client th c hin t t c các x
t u tri máy clients sau đó gi d li l đế đi n máy server. Kiến trúc này òi
hi các tính năng back-end đầy đủ ti các clients. Kiến trúc server d liu
thường ng được gp trong các h CSDL hướ đối tượng (Object-Oriented
DataBase Systems)
Gi trang đối li vi gi hng mc (Page shipping versus item shipping):
Đơn v liên l c d liu th các "h t thô" (Coarse granularity) như mt
trang, hay ht min (fine granularity) như m t b (tuple)/ đối tượng (object).
Ta dùng thut ng hng mc để ch b đố hay i tượng. Nếu đơn v liên lc
mt hng mc s d n đến tng chi phí truy n thông đi p tăng. Đem v hng
mc (fetching item) trước khi c yêu cđượ u, được gi đem v trước
(Prefetching). Gi trang th được xem như m đt dng c a em v trước nếu
mt trang cha nhiu hng mc.
Cht (Locking): Các cht thường được cp b ng mi server trên các h c
gi cho các máy clients. Khi client gi m t ch t trên m t h ng m c d liu,
nó có quy u này, hn “s dng” h ng m c d li ơn na trong khong thi gian
client gi ch c dt trên hng m liu không mt client nào khác có th s dng
hng mc d liu này. Bt l i c a gi trang các máy client th được cp
các cht "ht quá thô" -- mt cht trên mt trang n cha các cht trên t t c
các hng mc trong trang. Các k thut nh t gim tiế m cht (lock deescalation)
được đề đ ngh, trong ó server th yêu c u các clients truyn tr l i các ch t
CHƯƠNG I. GII THIU Trang
11
H QUN TR CƠ S D LIU
trên các hng mc c c cp phát trước. Nếu máy client không cn h ng m p
phát trước, th truy n tr l i các cht trên h ng mc cho server các
cht này có th được cp phát cho các clients khác.
Tr d liu (Data caching): D liu được gi đến mt client vi danh nghĩa
mt giao dch th được tr client, ngay c khi giao dch đã hoàn tt, nếu
không gian lưu tr sn. Các giao dch liên tiếp ti cùng mt client th
dùng d liu được tr. Tuy nhiên, s kế t dính d liu m t v n đề cn phi
được xem xét: mt giao dch tìm thy d n r liu được tr, nó phi chc ch ng
d liu này là "mi nht" vì các d li u này có th được cp nh t b i m t client
khác sau khi chúng được tr ki. Như vy, v n ph i trao đổi vi server để m tra
tính hp l c u. a d liu và để giành được mt cht trên d li
Tr cht (Lock caching): Các cht cũng th lđược tr i ti máy client.
Nếu m ng mt h c d liu được tìm thy trong cache và ch t yêu cu cho mt
truy xut đế n hng m c d liu này cũng tìm thy trong cache, thì vic truy
xut th tiến hành không cn mt liên lc nào vi server. Tuy nhiên, server
cũng phi lưu li v t cế a các cht được tr. Nếu mt client đ òi h i m t ch t t
server, server phi g i l i t t c các ch đột xung t trên cùng h ng mc d liu
t tt c các máy clients đã tr các cht.
SQL
user-interface
Form
interface
Report writer Graphical
interface
S
Q
L en
g
ine
Phn trước
(front-end)
Phn sau
(Back-end)
interface(SQL&API)
Figure 4
CÁC H SONG SONG (Parallel Systems):
Các h song song ci tiến tc độ x t độc I/O bng cách s dng nhiu CPU
nhiu ng n đĩa song song. Trong x song song, nhiu hot độ được thc hi đồng thi. Mt
máy song song "ht thô" (coarse-grain) gm mt s nh các b x mnh. M t máy song
song đồ s (massively parallel) hay "ht mn" (fine-grain) s d ng hàng ngàn b x nh hơn.
Có hai bin pháp chính để đánh giá hiu năng ca mt h CSDL. Th nht là nă ng lc truy n qua
(throughput): s công vic th được hoàn t ã chot trong m ng tht kho i gian đ . Th hai
thi gian đáp ng (response time): lượng thi gian cn thiết để hoàn thành mt công vic t lúc
được đệ trình. M ng xt h th mt lượng ln các giao dch nh th c ế ăi ti n n ng lc
truyn qua bi x song song nhiu giao d ch. M t h th ng x các giao dch ln th ci
tiến thi gian đáp ng c ng nhũ ư nă ng lc truy n qua b i thc hi n song song các công vi c con
(subtask) ca mi giao dch.
Tăng tc độ t ng quy (Speedup & Scaleup)ă : Tăng tc độ ám ch vic chy
mt công vic đã cho trong thi gian ngn h ng bơn bng cách tă c song song. Tăng quy
ám ch vi ăc qu n các công vi c l n b ng cách t ng bc song song. Chúng ta hãy
xét mt ng dng CSDL ch y trên m t h th i m t s ng song song v processor và mt
s đĩa. Gi s, chúng ta tă ng kích c ca h th ng b ăng cách t ng s processor, đĩa,
các thành phn khác c i gian ta h th ng. M c đích x công vic trong th l
nghch vi s processor và đĩa được cp phát.
CHƯƠNG I. GII THIU Trang
12
H QUN TR CƠ S D LIU
Gi s , th i gian th c hin m t công vic trên m t máy tính ln T
L
, thi gian thc
hin cùng công vic này trên máy tính nh T
S
. T ng t nhă c độ song song được định
nghĩa t s T
S
/T
L
, h ng t u t thng song song được gi tă c độ tuyến tính nế c độ
tăng là N khi h thng ln có N ln tài nguyên (CPU, đĩa ...) ln h n hơ thng nh.
Nếu t t ng nh h ng ng tc độ ă ơn N, h th được gi là tă c độ h tuyến tính (sublinear).
Tăng quy liên quan đến kh nă ng x các công vic l n trong trong cùng mt
lượng thi gian bng cách cung cp thêm tài nguyên. Gi s , Q m t công vic, Q
N
mt công vic N ln ln hơn Q. Gi s thi gian thc hin công vic Q trên mt máy M
S
là T
S
và thi gian thc hin công vic Q
N
trên mt máy song song M
L
, N ln l n h , ơn M
S
T
L
. T ng quy nh ngh . Hă được đị ĩa T
S
/T
L
song song M
L
được gi tăng quy
mô tuyến tính trên công vic Q nếu T
S
= T
L
. N u T , hế
L
> T
S
thng được gi là tăng quy
h tuyến tính. Tăng quy mt độ đo (metric) quan trng hơn trong đo lường
hiu qu ca các h CSDL song song. Đ đảích c a song song trong các h CSDL m
bo h CSDL th m tiếp tc thc hin t tc độ chp nhn được, ngay c khi kích c
ca CSDL và s n giao dch tăng lên. Tăng kh ă ng c a h th ng b ăng cách t ng s song
song cung cp m n h n ht con đường thun ti ơn cho s phát tri ơn là thay thế mt h tp
trung bi mt máy nhanh hơ n. M nh ht s nhân t ưởng x u đến tính hi u qu ca hot
độ ng song song và có th làm gim c tăng t c độ và tăng quy mô là:
o Chi phí khi động ( Startup Costs ): mt chi phí khi động kết hp vi s khi
độ ng m t x lý. Trong m t hot động song song g m hàng ngàn x lý, thi gian
khi động (Startup time) th m lu m thi gian x hin t ng bi, nh hưở t
li t i t ăng t . c độ
o S giao thoa ( Interference ): Các x thc hin trong mt h song song thường
truy nhp đến c tài nguyên chia s, mt s giao thoa ca mi x mi khi
cnh tranh vi các x đang tn ti trên các tài nguyên b chiếm như bus h
thng, đĩa chia s, thm chí c tđồ ng h . Hin t n cượng này nh hướng đế ăng tc
độ ln tăng quy mô.
o S lch ( Skew ): B ng cách chia mt công vi c thành các bước song song, ta làm
gim kích c c a bước trung bình. Tuy nhiên, thi gian ph c v cho bước chm
nht s xác định th i gian ph c v cho toàn b công vic. Thường khó có th chia
mt công vic thành các phn cùng kích c, như vy cách kích c được phân
phi là b l ch. Ví d : m t công vi c có kích c 100 được chia thành 10 ph n và s
phân chia này b l ch, th m t s phn kích c nh hơn 10 mt s
nhim v kích c l ơn h n 10, gi s đ độ trong ó ph n kích c 20, tăng tc
nhn được bi chy các công vic song song ch là 5, thay vì 10.
Các mng hp nht (Interconnection Network): Các h thng song song gm mt
tp hp các thành phn ( Processors, memory và các đĩa ) th liên lc vi nhau thông
qua mt mng h p nh v t. Các ví d các m ng h p nh t là:
o Bus: Toàn b các thành phn h thng có th g i và nhn d liu qua m t bus liên
lc. Các kiến trúc bus làm vic tt vi m t s nh các processor. Tuy nhiên, chúng
không cùng quy khi tăng s u khi song song bus ch đi n liên lc t ch
mt thành phn ti mt thi đim.
CHƯƠNG I. GII THIU Trang
13
bus
P P P P P
M
M
H QUN TR CƠ S D LIU
Figure 5
o Lưới ( Mesh): Các thành phn được sp x p nhế ư các nút ca mt lưới, mi thành
phn được ni vi tt c các thành phn k v i trong lưới. Trong m t lưới hai
chiu mi nút được ni vi 4 nút k.
o Siêu lp phương ( Hypercube ): Các thành phn được đánh s theo nh phân, mt
thành phn được ni vi thành phn khác nếu bi u di n nh nhân s ca chúng sai
khác nhau đ úng m t bit. Như v y, mi mt thành ph n trong n thành ph n được
ni vi log(n) thành phn khác. th kim nghim được rng trong mt s hp
nht siêu lp phương mt thông đip t mt thành phn đế n m t thành phn khác
đ i quá nhi u nh t log(n) n i kết, còn trong lưới là 1n
Các kiến trúc cơ s d liu song song: mt vài hình kiến trúc cho các máy
song song:
( Ký hiu: = processor, = Memory, = đĩa )
o B nh chia s ( Shared memory ): T t c c các processor chia s m t b nh
chung. Trong hình này các processor các đĩa truy xu t m t b nh chung,
thường thông qua mt bus hoc mt m ng h p nh t. Thu n l i ca chia s b nh
liên lc gia các processor cc k hi u qu nh : d liu trong b chia s
th được truy xut b t ki b processor nào không ph i di chuyn b i ph n
mm. Mt processor th g đ ếi thông ip cho m t processor khác bng cách vi t
vào b nh chia s, cách liên lc này nhanh hơn nhiu so vi các liên lc khác. Tuy
nhiên, các máy b nh chia s không th h tr nhi ơ ếu h n 64 processor n u
nhiu h ng hơn, bus hoc m p nht s tr nên d b nghn ( bottle-neck ).
Kiến trúc b nh chia s ng cache l thường nh n cho mi processor, như vy
vic tham kho b nh chia s có th tránh được mi khi có th.
P
M
P P P P
P P P
P
P
P P P
P P P P
mng hp nht hình lưới
P
0 1
P
Siêu lp phương mt chiu
P
10 11
P
P
00 01
P
Siêu lp phương hai chiu
P
101
P
111
P
100
P
110
P
001
P
011
P
000
P
010
Siêu lp phương ba chiu
F
i
g
ure 6
CHƯƠNG I. GII THIU Trang
14
H QUN TR CƠ S D LIU
P
P P P
M
Figure 7
o Đĩa chia s ( Shared disk ): T t c các processor chia s đĩa chung. hình này
còn được gi cm (cluster). Trong hình này tt c các processor th truy
xut trc tiếp đến tt c các đĩa thông qua mt mng hp nht, như ng m i
processor có b riêng. nh
P
P P P
M M M
M
Figure 8
Kiến trúc này có các đim thun li là: th nht, bus b nh không b bottle-neck,
th hai, cho mt phương pháp r cung c để p mt mc độ lượng th l i--m t
processor b hng hóc, các processor khác th tiếp t c công vic c a nó. Ta
th to ra h đĩ th ng con các a t lượng th l i bng cách s dng kiến trúc RAID
(được trình bày sau này). Vn đề chính ca chia s đĩa là s hp nht các h thng
con các đĩa tr nên bottle-neck, đặc bit trong tình hung CSDL truy xut đĩa
nhiu. So sánh vi b nh chia s , chia s đĩa có th h tr m t s lượng processor
ln hơn, nh ng viư c liên lc gia các processor chm hơn.
o Không chia s ( Shared nothing ): Các processor không chia s b nh chung, cũng
không chia s đĩa chung. Trong h thng này mi nút ca máy mt processor,
b nh và mt vài đĩa.
P
P
P
P
M
M
M M
P
M
P
M
Figure 9
CHƯƠNG I. GII THIU Trang
15
H QUN TR CƠ S D LIU
Các processor mi nút có th liên l c v i các processor khác qua m ng h p nh t
tc độ cao. Chc năng ca mt nút, như server, d liu được cha trên các đĩa ca
nó. Mô hình không chia s ch có vn đề v đĩ vic truy xu t các a không c c b
và vic truyn các quan h kết qu qua mng. H n n ng không ơ a, đối vi các h th
chia s c thi gì, các m ng h p nh t thường đượ ết kế tđể có th ăng quy mô, sao cho
kh năng truyn ca chúng tăng khi các nút mi được thêm vào.
o Phân cp ( hierarchical ): Mô hình này là mt s lai kiu ca các kiến trúc trước.
P
P
P
P
P
M
P
P
P
P
P
M
P
P
P
P
P
M
Figure 10
Kiến trúc này t h ế p các đặ ư c tr ng c a các ki n trúc chia s b nh, chia s đĩa và
không chia s gì. m c cao nh t, h th ng bao gm nh ng nút được n i bi mng
hp nht không chia s đĩa cũng như b nh vi nút khác. Như vy, mc cao
nh ết ki n trúc không chia s gì. Mi nút ca h thng có th h th ng chia s
b nh v ế i mt vài processor. K tiế p, m i nút th mt h thng chia s đĩa.
Mi m t h thng chia s đĩa li có th là m t h th ng chia s b nh... Như vy,
h thng có th được xây dng như mt s phân cp.
CÁC H THNG PHÂN TÁN (Distributed Systems):
Trong mt h th ng CSDL phân tán, CSDL được lưu tr trên mt vài máy tính. Các máy
tính trong mt h thng phân tán liên lc vi mt máy khác qua nhiu dng phương tin
liên lc khác nhau: mng tc độ cao, đường đin thoi... Chúng không chia s b nh cũng
như đĩa. Các máy tính trong h thng phân tán th r đt a dng v kích c cũng như
chc năng: t các workstation đến các mainframe. Các máy tính trong h thng phân tán
được tham chiếu bi mt s các tên khác nhau: site , node -- ph thuc vào ng cnh
máy được đề c d p. Ta s s ng thut ng site để nh n m nh s phân tán vt lý ca các h
thng này.
Site A
Site B
Site C
Liên lc thông
qua mng
mng
CHƯƠNG I. GII THIU Trang
16
H QUN TR CƠ S D LIU
Figure 11
S sai khác chính gia CSDL song song không chia s h thng phân tán
CSDL phân tán được tách bit v mt đị a lý, được qu n tr tách bi t và có m t s h p nh t
chm. Hơn na, trong h thng phân tán người ta phân bit gia các giao dch cc b
(local) toàn th (global). Giao d ch c c b m t giao dch truy xut d liu trong m t
site t i đ đó giao dch ã được kh i xướng. Giao dch toàn th mt giao dch mà hoc
truy xut d li u trong mt site t m đt site khác ti ó nó được khi xướng ho c truy xu t
d liu trong mt vài site khác nhau.
BÀI TP CHƯƠNG I
I.1 B đn im khác nhau chính gi a m t h thng x lý file và m t h qun tr CSDL là gì ?
I.2 Gii thích s khác nhau gia độc l p d li liu v p dt lý và độc l u logic
I.3 Lit năm nhim v c a nhà qu n tr CSDL. Đối v i m i nhim v , gii tích nhng
vn đề ny sinh nếu nhim v đó không được hoàn thành.
I.4 Năm ch c năng chính c a nhà qun tr CSDL là gì ?
I.5 S d ng mt mng hai chiu kích c n x m như mt ví d để minh ho s khác nhau:
1. gia ba mc tru tượng d liu
2. gia sơ đồ và th hi n
I.6 Trong các h thng client-server tiêu biu, máy server thường m ơ nh h n máy client r t
nhiu: b x nhanh hơn th m chí th nhi u b x lý, b nh l ơn h n, dung
lượng đĩa ln hơn. Ta xét mt kch bn trong đó c máy client các máy server mnh như
17
H QUN TR CƠ S D LIU
nhau. Xây d n nh vng mt h thng client-server theo kch b ư y có ưu nhược đim gì ? Kch bn
nào phù hp hơn vi kiến trúc server d liu ?
I.7 Gi s mt giao dch được viế t trong C v i SQL nhúng, khong 80% thi gian được
dùng cho code SQL, 20% còn li cho code C. Nếu song song được dùng ch cho code SQL, Tăng
tc độ có th đạt ti bao nhiêu ? Gii thích.
I.8 Nhng nhân t nào chng li vic tăng quy tuyến tính trong mt h thng x giao
dch ? Nhân t nào quan trng nht trong mi mt kiến trúc sau: b đĩ nh chia s , a chia s ,
không chia s gì ?
I.9 Xét mt mng da trên đường đin thoi quay s t độ đ ng, trong ó các site liên lc theo
đị đ ưnh k, d hàng êm. Các mng nh v y thường được cu hình v i mt site server nhiu
site client. Các site client ch nói v i server trao đổi d li u vi client khác bi l liưu d u ti
server l y d liu được lưu trên server bi client khác. Ưu, nhược đim ca kiến trúc như vy
là gì ?
CHƯƠNG I. GII THIU Trang
18
| 1/18

Preview text:

HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU CHƯƠNG I GIỚI THIỆU (Introduction) MỤC ĐÍCH
Chương này trình bày một cái nhìn bao quát về cơ sở dữ liệu (CSDL/DB), về hệ quản trị cơ sở dữ l ệ i u (HQTCSDL/DBMS) và ề
v hệ cơ sở dữ liệu (HCSDL/DBS). Các đòi ỏ h i khi xây
dựng một HQTCSDL đó cũng chính là những chức năng mà một HCSDL cần phải có. Một khái
niệm quan trọng là khái niệm giao dịch (Transaction). Các tính chất ộ
m t giao dịch phải có để đảm
bảo một HQTCSDL, được xây dựng trên HCSDL tương ứng, trong suốt quá trình hoạt động sẽ
luôn cho một CSDL tin cậy (dữ liệu luôn nhất quán). Quản trị giao dịch nhằm đảm bảo mọi giao
dịch trong hệ thống có các tính chất mà một giao dịch phải có. Một điều cần chú ý là trong các
tính chất của một giao dịch, tính chất nhất quán trước hết phải được đảm bảo bởi ngư i ờ lập trình-
người viết ra giao dịch. YÊU CẦU Hiểu các khái niệm.
Hiểu các vấn đề đặt ra khi xây dựng một HQTCSDL: thiết kế CSDL, đảm bảo tính nhất
quán của CSDL trong suốt cuộc sống của nó, nền tảng phần cứng trên ó đ một HQTCSDL được xây dựng.
Hiểu cấu trúc hệ thống tổng thể
Hiểu vai trò của các người sử ụ d ng hệ thống.
MỘT SỐ KHÁI NIỆM
• Một cơ sở dữ liệu (CSDL/ DB: DataBase) là một tập hợp các tập tin có liên quan với
nhau, được thiết kế nhằm làm giảm thiểu s l ự ặp lại dữ liệu.
• Một hệ quản trị cơ sở dữ liệu (HQTCSDL/ DBMS: DataBase Management System) là
một hệ thống gồm một CSDL và các thao tác trên CSDL đó, được thiết kế trên một nền tảng phần c ng, ph ứ
ần mềm và với một kiến trúc nhất định.
• Một hệ cơ sở dữ liệu (HCSDL/ DBS: DataBase System) là một phần mềm cho phép xây dựng một HQTCSDL.
CHƯƠNG I. GIỚI THIỆU Trang 1
HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU
HỆ CƠ SỞ DỮ LIỆU
Một số điểm bất lợi chính của việc ư
l u giữ thông tin có tổ chức trong hệ thống xử lý file thông thường:
Dư thừa dữ liệu và tính không nhất quán (Data redundancy and inconsistency): Do
các file và các trình ứng dụng được tạo ra bởi các người lập trình khác nhau, nên các file
có định dạng khác nhau, các chương trình được viết trong các ngôn ngữ lập trình khác
nhau, cùng một thông tin có thể được lưu giữ trong các file khác nhau. Tính không thống
nhất và dư thừa này sẽ làm tăng chi phí truy xuất và lưu trữ, hơn nũa, nó sẽ dẫn đến tính
không nhất quán của dữ liệu: các bản sao của cùng
m t dữ liệu có thể không n ấ h t quán.
Khó khăn trong việc truy xuất dữ liệu: Môi trường của hệ th ng ố xử lý file thông
thường không cung cấp các công c
ụ cho phép truy xuất thông tin một cách hiệu quả và thuận lợi.
Sự cô lập dữ liệu (Data isolation): Các giá trị dữ liệu được lưu trữ trong cơ sở dữ liệu
phải thoả mãn một số các ràng buộc về tính nhất quán của ữ d liệu ( ràng b ộ u c nhất
quán/consistency contraints ). Trong hệ thống xử lý file thông thường, rất khó khăn
trong việc thay đổi các chương trình để thoả mãn các yêu cầu thay đổi ràng bu c ộ . Vấn
đề trở nên khó khăn hơn khi các ràng buộc liên quan đến các hạng mục dữ liệu nằm trong các file khác nhau.
Các vấn đề về tính nguyên tử (Atomicity problems): Tính nguyên tử của một hoạt
động (giao dịch) là: hoặc nó được hoàn tất trọn vẹn hoặc không có gì cả. Điều này có
nghĩa là một hoạt động (giao dịch) chỉ làm thay đổi các dữ liệu bền vững khi nó đã hoàn
tất (kết thúc thành công) nếu không, giao dịch không để lại một dấu vết nào trên CSDL.
Trong hệ thống xử lý file thông thường khó đảm bảo được tính chất này.
Tính bất thường trong truy xuất cạnh tranh: M t
ộ hệ thống cho phép nhiều người sử
dụng cập nhật dữ liệu đồng thời, có thể dẫn đến kết quả là dữ liệu không n ấ h t quán. Điều này đòi ỏ
h i một sự giám sát. Hệ thống xử lý file thông thường không cung ấ c p chức năng này.
Vấn đề an toàn (Security problems): một người sử dụng hệ cơ sở dữ liệu không cần
thiết và cũng không có quyền truy xuất tất cả các d
ữ liệu. Vấn đề này đòi hỏi hệ thống
phải đảm bảo được tính phân quyền, chống truy xuất trái phép ...
Các bất lợi nêu trên đã gợi mở sự phát triển các DBMS. P ầ
h n sau của giáo trình sẽ đề cập
đến các quan niệm và các thuật toán được sử dụng để phát triển một hệ cơ sở dữ liệu nhằm giải
quyết các vấn đề nêu trên
. Một số khái niệm
CHƯƠNG I. GIỚI THIỆU Trang 2
HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU GÓC NHÌN DỮ LIỆU
Tính hiệu quả của hệ thống đòi hỏi phải thiết kế các cấu trúc dữ liệu phức tạp để biểu diễn
dữ liệu trong cơ sở dữ liệu. Các nhà phát triển che dấu sự phức tạp này thông qua các mức trừu
tượng
nhằm đơn giản hóa sự trao đổi của người sử ụ d ớ ng v i hệ thống:
Mức vật lý ( Physical level ): Mức thấp nhất của sự trừu tượng, mô tả dữ liệu h ệ i n
được lưu trữ thế nào. Ở mức này, cấu trúc dữ liệu mức thấp, phức tạp được mô tả chi tiết.
Mức luận lý ( Logical level ): Mức kế cao hơn về sự trừu tượng, mô tả dữ liệu gì
được lưu trữ trong cơ sở dữ liệu và các mối quan hệ gì g ữ i a các ữ d liệu này. Mức logic
của sự trừu tượng được dùng bởi các người quản trị cơ sở dữ liệu.
Mức view ( view level ): Mức cao nhất của sự trừu tượng, mô tả chỉ một phần của cơ
sở dữ liệu toàn thể. Một người sử dụng cơ sở dữ liệu liên quan đến chỉ một bộ phận của cơ sở dữ liệu. N ư
h vậy sự trao đổi của họ với hệ thống được làm đơn giản bởi việc định
nghĩa view. Hệ thống có thể cung cấp nhiều mức view đối với cùng một cơ sở dữ liệu. Mức view view 1 view 2 view n ... mức luận lý mức vật lý Figure 1
Thể hiện và sơ đồ (instances and schemas): Tập hợp các thông tin được lưu trữ trong cơ sở dữ liệu tại ộ
m t thời điểm được gọi là một thể h ệ
i n (instance) của cơ sở dữ liệu.
Thiết kế tổng thể của cơ sở dữ liệu được gọi là sơ đồ (schema).
Một hệ cơ sở dữ liệu có ộ
m t vài sơ đồ, được phân tương ứng với các mức trừu tượng.
ở mức thấp nhất là sơ đồ vật lý (physical schema), ở mức trung gian là sơ đồ luận
(logical schema), ở mức cao nhất là sơ đồ con (subschema). Nói chung một hệ cơ sở dữ liệu hỗ trợ một sơ v
đồ ật lý, một sơ đồ luận lý và một vài sơ đồ con.
• Khả năng sửa đổi một định nghĩa ở một mức không ảnh hư ng ở
một định nghĩa sơ đồ ở
mức cao hơn được gọi là sự độc lập dữ liệu (data independence). Có hai mức độc lập dữ liệu:
- Độc lập dữ liệu vật lý (Physical data independence) là khả năng sửa đổi sơ đồ vật
lý không làm cho các chương trình ứng dụng phải viết lại. Các sửa i đổ ở mức vật
lý là cần thiết để cải thiện hiệu năng.
CHƯƠNG I. GIỚI THIỆU Trang 3
HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU
- Độc lập dữ liệu luận lý (Logical data independence) là khả năng sửa đổi sơ đồ
luận lý không làm cho các chương trình ng ứ
dụng phải viết lại. Các sửa đổi ở mức
luận lý là cần thiết khi cấu trúc luận lý của cơ sở dữ liệu bị thay thế. MÔ HÌNH DỮ LIỆU
Nằm dưới cấu trúc của một cơ sở dữ liệu là mô hình dữ liệu: một bộ các công cụ quan
niệm để mô tả dữ liệu, quan hệ dữ liệu, ngữ nghĩa dữ liệu và các ràng buộc nhất quán. Có ba
nhóm mô hình: Các mô hình luận lý dựa trên đối tượng (Object-based logical models), các mô
hình luận lý dựa trên mẩu tin (record-based logical models), các mô hình vật lý (physical models).
- Các mô hình luận lý dựa trên đối tượng được dùng mô tả dữ liệu ở mức luận lý và
mức view. Chúng được đặc trưng bởi việc chúng cung cấp khả năng cấu trúc linh hoạt
và cho phép các ràng buộc dữ liệu được xác định một cách tường minh. Dưới đây là
một vài mô hình được biết rộng rãi: Mô hình thực thể - quan hệ (entity-relationship
model), mô hình hướng đối tượng ( object-oriented model ), mô hình dữ liệu ngữ
nghĩa
( semantic data model ), mô hình dữ liệu hàm ( function data model ).
- Các mô hình luận lý dựa trên mẩu tin được dùng để miêu tả dữ liệu ở mức luận lý
hay mức view. Chúng được dùng để xác định cấu trúc luận lý toàn thể của cơ sở dữ
liệu và cung cấp sự mô tả mức cao hơn việc thực hiện. Cơ sở dữ liệu được cấu trúc ở
dạng mẩu tin định dạng cố định (fixed format record): mỗi mẩu tin xác định một số cố
định các trường, mối trường thường có độ dài cố định. Một vài mô hình được biết rộng
rãi là: Mô hình quan hệ, mô hình mạng, mô hình phân cấp.
- Mô hình dữ liệu vật lý được dùng để mô tả dữ liệu ở mức thấp nhất. Hai mô hình dữ
liệu vật lý được biết rộng rãi nhất là mô hình hợp nhất (unifying model) và mô hình
khung-bộ nhớ ( frame-memory model ).
NGÔN NGỮ CƠ SỞ DỮ LIỆU
Một hệ cơ sở dữ liệu cung cấp hai kiểu ngôn ngữ khác nhau: một để xác định sơ đồ cơ sở
dữ liệu, một để biểu diễn các vấn tin cơ sở dữ liệu và cậ ậ p nh t.
- Ngôn ngữ định nghĩa dữ liệu (Data Definition Language: DDL) cho phép định
nghĩa sơ đồ cơ sở dữ liệu. Kết quả biên dịch các lệnh của DDL là tập hợp các bảng
được lưu trữ trong một file đặc biệt được gọi là tự điển dữ liệu (data dictionary) hay
thư mục dữ liệu (data directory). Tự điển dữ liệu là một file chứa metadata. File này
được tra cứu trước khi ữ
d liệu hiện hành được đọc hay sửa đổi. Cấu trúc ư l u t ữ r và
phương pháp truy cập được sử dụng bởi hệ cơ sở dữ liệu được xác định bởi một tập
hợp các định nghĩa trong một kiểu đặc biệt của DDL được gọi là ngôn ngữ định
nghĩa và lưu trữ dữ liệu (data storage and definition language)
. Kết quả biên dịch
của các định nghĩa này là một tập hợp các chỉ thị xác định sự thực hiện chi tiết của các sơ c
đồ ơ sở dữ liệu (thường được che dấu).
- Ngôn ngữ thao tác dữ liệu (Data manipulation language: DML) là ngôn ngữ cho
phép người sử dụng truy xuất hoặc thao tác dữ liệu. Có hai kiểu ngôn n ữ g thao tác dữ
liệu: DML thủ tục (procedural DML) yêu cầu người sử dụng đặc tả dữ liệu nào cần
và làm thế nào để nhận đư c
ợ nó. DML không thủ tục (Nonprocedural DML) yêu cầu
người sử dụng đặc tả dữ liệu nào cần nh ng ư
không cần đặc tả làm t ế h nào để nhận
được nó. Một vấn tin (query) là một lệnh yêu cầu tìm lại dữ liệu (information
CHƯƠNG I. GIỚI THIỆU Trang 4
HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU
retrieval). Phần ngôn ngữ DML liên quan đến sự tìm lại thông tin được gọi là ngôn ng v
ữ ấn tin (query language).
QUẢN TRỊ GIAO DỊCH
Thông thường, một số thao tác trên cơ sở dữ liệu tạo thành một đơn vị logic công việc. Ta
hãy xét ví dụ chuyển khoản, trong đó một số tiền x được chuyển từ tài khoản A ( A:=A-x )
sang một tài khoản B ( B:=B+x ). Một yếu tố cần thiết là cả hai thao tác này hoặc cùng xảy ra
hoặc không hoạt động nào xảy ra cả. Việc chuyển khoản phải xảy ra trong tính toàn thể của nó
hoặc không. Đòi hỏi toàn thể-hoặc-không này được gọi là tính nguyên tử (atomicity). Một yếu tố
cần thiết khác là sự thực hiện việc chuyển khoản bảo tồn tính nhất quán của cơ sở dữ liệu: giá trị
của tổng A + B phải được bảo t n

. Đòi hỏi về tính chính xác này được gọi là tính nhất
quán (consistency). Cuối cùng, sau khi thực hiện thành công hoạt n
độ g chuyển khoản, các giá trị
của các tài khoản A và B phải bền vững cho dù có thể có sự cố hệ thống. Đòi hỏi về tính bền
vững này được gọi là tính lâu bền (durability).
Một giao dịch là một tập các hoạt động thực hiện chỉ một chức năng logic trong một ứng
dụng cơ sở dữ liệu. Mỗi giao dịch là một đơn vị mang cả tính nguyên tử lẫn tính nhất quán. Như
vậy, các giao dịch phải không được vi phạm bất kỳ ràng buộc nhất quán nào: Nếu cơ sở dữ liệu là
nhất quán khi một giao dịch khởi động thì nó cũng phải là nhất quán khi giao dịch kết thúc
thành công
. Tuy nhiên, trong khi đang thực hiện giao dịch, phải cho phép s ự không nhất quán
tạm thời. Sự không nhất quán tạm thời này tuy là cần thiết nhưng lại có thể dẫn đến các khó k ă h n nếu xảy ra sự cố.
Trách nhiệm của người lập trình là xác định đúng đắn các giao dịch sao cho mỗi một bảo
tồn tính nhất quán của cơ sở dữ liệu.
Đảm bảo tính nguyên tử và tính lâu bền là trách nhiệm của hệ cơ sở dữ liệu nói chung và
của thành phần quản trị giao dịch ( transaction-management component ) nói riêng. Nếu không có sự cố, tất ả c giao dịch hoàn ấ
t t thành công và tính nguyên tử được hoàn thành dễ dàng. Tuy
nhiên, do sự hiện diện của các sự cố, một giao dich có thể không hoàn tất thành công sự thực hiện
của nó. Nếu tính nguyên tử được đảm bảo, một giao dịch thất bại không gây hiệu quả đến trạng
thái của cơ sở dữ liệu. N ư
h vậy, cơ sở dữ liệu p ả
h i được hoàn lại trạng thái của nó trước khi giao
dịch bắt đầu. Hệ cơ sở dữ liệu phải có trách nhiệm phát hiện sự cố hệ thống và trả lại cơ sở dữ
liệu về trạng thái trước khi xảy ra sự c . ố
Khi một số giao dịch cạnh tranh cập nhật cơ sở dữ liệu, tính nhất quán của dữ liệu có
thể không được bảo tồn, ngay cả khi mỗi giao dịch là chính xác. Bộ quản trị điều khiển
cạnh tranh (concurency-control manager)
có trách nhiệm điều khiển các trao đổi giữa các giao
dịch cạnh tranh để đảm bảo tính thống nhất của CSDL.
QUẢN TRỊ LƯU TRỮ
Các CSDL đòi hỏi một kh i
ố lượng lớn không gian lưu trữ, có thể lên đến nhiều
terabytes ( 1 terabyte=103 Gigabytes=106 Megabytes ). Các thông tin phải được lưu trữ trên lưu
trữ ngoài (đĩa). Dữ liệu được di chuyển giữa lưu trữ đĩa và bộ nhớ chính khi cần thiết. Do việc di
chuyển dữ liệu từ và lên đĩa tương đối chậm so với tốc độ của đơn vị xử lý trung tâm, điều này ép
buộc hệ CSDL phải cấu trúc dữ liệu sao cho tối ưu hóa nhu cầu di chuyển dữ liệu giữa đĩa và bộ nhớ chính.
CHƯƠNG I. GIỚI THIỆU Trang 5
HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU
Mục đích của một hệ CSDL là làm đơn giản và dễ dàng việc truy xuất dữ liệu. Ngư i ờ sử
dụng hệ thống có thể không cần quan tâm đến chi tiết vật lý của sự thực thi hệ thống. Phần lớn
họ chỉ quan đến hiệu năng của hệ thống (thời gian trả lời một câu vấn tin ...).
Bộ quản trị lưu trữ ( storage manager ) là một module chương trình cung cấp giao diện
giữa dữ liệu mức thấp được lưu trữ trong CSDL với các chương trình ứng dụng và các câu vấn
tin được đệ trình cho hệ thống. Bộ quản trị lưu trữ có trách nhiệm trao đổi với bộ quản trị file
(file manager). Dữ liệu thô được lưu trữ trên đĩa sử dụng hệ thống file (file system), hệ thống này
thường được cung cấp bởi hệ điều hành. Bộ quản trị lưu trữ dịch các câu lệnh DML thành các
lệnh của hệ thống file mức thấp. Như vậy, bộ quản trị lưu trữ có nhiệm ụ v lưu t ữ r , tìm ạ l i và cập
nhật dữ liệu trong CSDL.
NHÀ QUẢN TRỊ CƠ SỞ DỮ LIỆU
Một trong các lý do chính đối với việc sử dụng DBMS là có sự điều khiển trung tâm cho
cả dữ liệu lẫn các chương trình truy cập các dữ liệu này. Người điều khiển trung tâm trên toàn hệ
thống như vậy gọi là nhà quản trị cơ sở dữ liệu (DataBase Administrator - DBA). Các chức năng của DBA như sau:
Định nghĩa sơ đồ: DBA tạo ra sơ đồ CSDL gốc bằng cách viết m t ộ tập các định nghĩa
mà nó sẽ được dịch bởi trình biên dịch DDL thành một tập các bảng được lưu trữ thường trực trong tự đ iể ữ n d liệu.
Định nghĩa cấu trúc lưu trữ và phương pháp truy xuất: DBA tạo ra một cấu trúc lưu
trữ thích hợp và các phương pháp truy xuất bằng cách viết một tập hợp các định nghĩa
mà nó sẽ được dịch bởi trình biên dịch lưu tr d ữ ữ liệu và ngôn ng
ữ định nghĩa dữ liệu.
Sửa đổi sơ đồ
và tổ chức vật lý
Cấp quyền truy xuất dữ liệu: Việc cấp các dạng quyền truy cập khác nhau cho phép
DBA điều hoà những phần của CSDL mà nhiều người có thể truy xuất. Thông tin về
quyền được lưu giữ trong một cấu trúc hệ thống đặc biệt, nó được tham khảo bởi hệ
CSDL mỗi khi có sự truy xuất dữ liệu của hệ thống.
Đặc tả ràng buộc toàn vẹn ( integrity-contraint ): Các giá trị dữ liệu được lưu trữ
trong CSDL phải thoả mãn một s
ố các ràng buộc nhất quán nhất định. Ví dụ số giờ làm
việc của một nhân viên trong một tuần không t ể
h vượt quá một giới hạn 80 giờ chẳng
hạn. Một ràng buộc như vậy phải được đặc tả một cách tường minh bởi DBA. Các ràng
buộc toàn vẹn được lưu giữ trong một cấu trúc hệ thống đặc biệt được tham khảo bởi hệ
CSDL mỗi khi có sự cập nhật dữ liệu.
NGƯỜI SỬ DỤNG CSDL
Mục đích đầu tiên của hệ CSDL là cung cấp một môi trường để tìm lại thông tin và lưu
thông tin trong CSDL. Các người sử d ng ụ
cơ sở dữ liệu được phân thành ố b n nhóm tuỳ theo cách
thức họ trao đổi với hệ thống.
Các người lập trình ứng dụng: Là nhà chuyên môn máy tính người trao i đổ với hệ
thống thông qua các lời gọi DML được nhúng trong một chương trình được viết trong
một ngôn ngữ chủ - host language (Pascal, C, Cobol ...). Các chương trình này thường
được tham khảo như các chương trình ứng dụng. Vì cú pháp DML thường rất khác ớ v i
cú pháp của ngôn ngữ chủ, các lời gọi DML thường đư c
ợ bắt đầu bởi một ký tự đặc biệt
như vậy mã thích hợp mới có thể được sinh. Một bộ tiền ử x lý đặc b ệ
i t, được gọi là tiền
CHƯƠNG I. GIỚI THIỆU Trang 6
HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU
biên dịch (precompiler) DML, chuyển các lệnh DML thành các lời gọi thủ tục chuẩn
trong ngôn ngữ chủ. Bộ biên dịch ngôn ngữ chủ sẽ sinh mã đối tượng thích hợp. Có
những ngôn ngữ lập trình phối hợp cấu trúc điều khiển của các ngôn ng ữ giống như
Pascal với cấu trúc điều khiển để thao tác đối tượng CSDL. Các ngôn ngữ này (đôi khi
được gọi là ngôn ngữ thế hệ thứ tư) thường bao ồ
g m các đặc điểm đặc biệt để làm dễ
dàng việc sinh các dạng và hiển thị dữ liệu trên màn hình.
Các người sử dụng thành thạo ( Sophisticated users ): Trao đổi với hệ thống không
qua viết trình. Thay vào đó họ đặt ra các yêu cầu của họ trong ngôn ngữ truy vấn
CSDL ( Database query language ). Mỗi câu vấn tin như vậy được đệ trình cho bộ xử lý
vấn tin, chức năng của bộ xử lý vấn tin là "dịch" các lệnh DML thành các chỉ thị mà bộ
quản trị lưu trữ hiểu. Các nhà phân tích đệ trình các câu vấn tin thăm dò dữ liệu trong cơ
sở dữ liệu thuộc vào phạm trù này.
Các người sử dụng chuyên biệt ( Specialized users ): Là các người sử dụng thành thạo, họ viết các ng ứ
dụng CSDL chuyên biệt không nằm trong khung xử lý dữ liệu
truyền thống. Trong đó, phải kể đến các hệ thống thiết kế được trợ giúp bởi máy tính
(computer-aided design systems), Cơ sở tri thức (knowledge-base) và hệ chuyên gia
(expert systems), các hệ thống lưu trữ dữ liệu với kiểu dữ liệu phức tạp (dữ liệ đồ u họa,
hình ảnh, âm thanh) và các hệ thống mô hình môi trường (environment-modeling systems)
Các người sử dụng ngây thơ ( Naive users ): là các người sử dụng không thành thạo,
họ trao đổi với hệ thống bởi cầu dẫn một trong các chương trình ứng dụng thường t ự r c đã được viết ẵ s n.
CẤU TRÚC HỆ THỐNG TỔNG THỂ
Một hệ CSDL được phân thành các module, mỗi một thực hiện một trách nhiệm trong hệ
thống tổng thể. Một số chức năng c a
ủ hệ CSDL có thể được cung cấp bởi hệ điều hành. Trong hầu
hết các trường hợp, hệ điều hành chỉ cung cấp các dịch vụ cơ sở nhất, hệ CSDL p ả h i xây dựng trên cơ sở đó. N ư
h vậy, thiết kế hệ CSDL p ả
h i xem xét đến giao diện giữa hệ CSDL và hệ điều hành.
Các thành phần chức năng c a
ủ hệ CSDL có thể được chia thành các thành phần xử lý vấn tin
(query processor components) và các thành phần quản trị lưu trữ (storage manager components ).
Các thành phần xử lý vấn tin gồm:
Trình biên dịch DML ( DML compiler ): dịch các lệnh DML trong một ngôn ngữ vấn
tin thành các chỉ thị mức thấp mà engine định giá ấ
v n tin ( query evaluation engine ) có
thể hiểu. Hơn nữa, Trình biên dịch DML phải b ế
i n đổi một yêu cầu của người sử dụng
thành một đích tương đương nhưng ở dạng hiệu quả hơn có nghĩa là tìm một chiến lược
tốt để thực hiện câu vấn tin.
Trình tiền biên dịch DML nhúng ( Embedded DML Precompiler ): biến đổi các lệnh
DML được nhúng trong một chương trình ứng dụng thành các lời gọi thủ tục chuẩn
trong ngôn ngữ chủ. Trình tiền biên dịch phải trao đổi với trình biên dịch DML để sinh mã thích hợp.
Bộ thông dịch DDL ( DDL interpreter ): thông dịch các lệnh DDL và ghi chúng vào
một tập hợp các bảng chứa metadata.
CHƯƠNG I. GIỚI THIỆU Trang 7
HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU
Engine định giá vấn tin ( Query evaluation engine ): Thực hiện các chỉ thị mức thấp
được sinh ra bởi trình biên dịch DML.
Các thành phần quản trị lưu trữ cung cấp các giao diện giữa dữ liệu mức thấp được lưu trữ
trong CSDL và các chương trình ứng d n
ụ g, các vấn tin được đệ trình cho hệ thống. Các
thành phần quản trị lưu tr g ữ ồm:
Bộ quản trị quyền và tính toàn vẹn ( Authorization and integrity manager ): kiểm tra
sự thoả mãn các ràng buộc toàn vẹn và kiểm tra quyền truy xuất dữ liệu của người sử dụng.
Bộ quản trị giao dịch ( Transaction manager ): Đảm bảo rằng CSDL được duy trì
trong trạng thái nhất quán cho dù hệ thống có sự cố và đảm bảo rằng các th c ự hiện giao
dịch cạnh tranh tiến triển không xung đột.
Bộ quản trị file ( File manager ): Quản trị cấp phát không gian trên lưu t ữ r đĩa và các
cấu trúc dữ liệu được dùng để biểu diễn thông tin được lưu trữ trên đĩa.
Bộ quản trị bộ đệm ( Buffer manager ): có trách nhiệm đem dữ liệu từ lưu trữ đĩa
vào bộ nhớ chính và quyết định dữ liệu nào trữ trong b nh ộ ớ. Hơn nữa, một s c
ố ấu trúc dữ liệu được cần đến nh b ư ph ộ
ận của sự thực thi hệ thống vật lý:
Các file dữ liệu: Lưu trữ CSDL
Tự điển ữ
d liệu ( Data Dictionary ): lưu metadata về cấu trúc CSDL.
Chỉ mục ( Indices ): cung cấp truy xuất nhanh đến các hạng ụ
m c dữ liệu chứa các giá trị tìm kiếm.
Dữ liệu thống kê ( Statistical data ): lưu trữ thông tin thống kê về dữ liệu trong cơ sở
dữ liệu. Thông tin này được dùng bởi bộ xử lý vấn tin để chọn những phương pháp h ệ i u
quả thực hiện câu vấn tin.
Sơ đồ các thành phần và các nối kết giữa chúng N aive users Application pro grammer Sophisticated users Database administrator application application query database interfaces programs scheme embedded DML DDL DML compiler interpreter Q precompiler u e application ry p programs roc e object code sso query r evaluation engine
CHƯƠNG I. GIỚI THIỆU Trang 8
HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU s
transaction buffer authorization and tora
manager manager integrity manager g e m a n a g e file manager r Figure 2
KIẾN TRÚC HỆ CƠ SỞ DỮ LIỆU
Kiến trúc hệ CSDL bị ảnh hư ng ở nhiều bởi hệ th ng ố
máy nền. Các sắc thái của kiến trúc
máy như mạng, song song và phân tán được phản ánh trong kiến trúc của hệ CSDL.
• Mạng máy tính cho phép thực hiện một số công việc trên ộ
m t hệ thống các server, một
số công việc trên các hệ thống client. Việc phân chia công việc này dẫn đến sự phát triển
hệ CSDL client-server.
• Xử lý song song trong một hệ thống máy tính làm tăng tốc độ các hoạt động của hệ
CSDL, trả lời các giao dịch nhanh hơn. Các vấn tin được xử lý theo cách khai thác tính
song song. Sự cần thiết ử
x lý vấn tin song song này dẫn tới sự phát triển của hệ CSDL song song.
• Dữ liệu phân tán trên các site hoặc trên các bộ phận trong một cơ quan cho phép các
dữ liệu thường trú tại nơi chúng được sinh ra nhưng vẫn có thể truy xuất chúng từ các
site khác hay các bộ phận khác. Việc lưu nh ề
i u bản sao của CSDL trên các site khác nhau cho phép các tổ ch c
ứ lớn vẫn có thể tiếp tục hoạt động khi một hay một vài site bị
sự cố. Hệ CSDL phân tán được phát triển để quản lý dữ liệu phân tán, trên phương diện
địa lý hay quản trị, trải rộng trên nhiều hệ CSDL .
HỆ THỐNG TẬP TRUNG
Các hệ CSDL tập trung chạy trên máy đơn và không trao đổi với các máy khác. Các hệ
thống như vậy trải từ các hệ CSDL một ngư i
ờ sử dụng chạy trên các máy cá nhân (PC) đến các hệ
CSDL hiệu năng cao chạy trên các hệ mainframe. Một hệ máy tính mục đích chung hiện đại gồm
một hoặc một vài CPU và một số bộ điều khiển thiết bị được nối với nhau thông qua một bus
CHƯƠNG I. GIỚI THIỆU Trang 9
HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU
chung, cho phép truy xuất đến bộ nhớ chia sẻ. CPU có bộ nhớ cache cục bộ lưu các bản sao của
một số phần của bộ nhớ chính nhằm tăng tốc độ truy xuất dữ liệu. Mỗi bộ điều khiển thiết bị phụ
trách một kiểu thiết bị xác định. Các CPU và các bộ điều khiển thiết bị có thể thực hiện đồng thời,
canh tranh truy cập bộ nhớ. Bộ nhớ cache giúp làm giảm sự tranh chấp truy xuất bộ nhớ. Ta phân
biệt hai cách các máy tính được sử dụng: Hệ thống một người dùng và hệ thống nhiều người
dùng. Hệ CSDL được thiết kế cho hệ th ng ố
một người dùng không hỗ trợ điều khiển cạnh tranh, chức năng ph c
ụ hồi hoặc là thiếu hoặc chỉ là một sự chép dự phòng đơn giản.
HỆ THỐNG CLIENT-SERVER
Các máy tính cá nhân ( PC ) ngày càng trở nên mạnh hơn, nhanh hơn, và rẻ hơn. Có sự
chuyển dịch trong hệ thống tập trung. Các đầu cuối (terminal) được nối với hệ thống tập trung
bây giờ được thế chỗ bởi các máy tính cá nhân. Chức năng giao d ệ
i n người dùng (user interface)
thường được quản lý trực tiếp bởi các hệ thống tập trung nay được quản lý bởi các máy tính cá
nhân. Như vậy, các hệ thống tập trung ngày nay hoạt động như các hệ thống server nó làm thoả
mãn các đòi hỏi của các client. Chức năng CSDL có thể được chia thành hai phần: phần trước
(front-end) và phần sau (back-end). Phần sau quản trị truy xuất cấu trúc, định giá câu vấn tin và tối ưu hoá, i
đ ều khiển sự xảy ra đồng thời và phục hồi. Phần trước của ệ h CSDL gồm các công
cụ như: tạo mẫu (form), các bộ soạn báo cáo (report writer), giao diện đồ hoạ người dùng
(graphical user interface). Giao diện giữa phần trư c
ớ và phần sau thông qua SQL hoặc một chương trình ứ ụ
ng d ng. Các hệ thống server có thể đư c
ợ phân thành các phạm trù : server giao
dịch (transaction server), server dữ liệu (data server). Client Client Client Client Network Server Figure 3
Hệ thống server giao dịch (transaction-server systems): còn được gọi là hệ thống
server vấn tin (query-server system), cung cấp một giao diện mà các client có thể gửi
đến nó các yêu cầu t ự h c hiện ộ
m t hành động. Để đáp ứng các yêu cầu, hệ thống thực
hiện các hành động và gửi lại client các kết quả. Các người sử dụng có thể đặc tả các
yêu cầu trong SQL hoặc trong một giao diện trình ứng dụng sử dụng một cơ chế gọi thủ
tục xa ( remote-procedure-call ).
o Các servers giao dịch ( Transaction servers ): Trong các hệ thống tập trung,
phần trước (front-end) và phần sau (back-end) được thực hiện trong một hệ
thống. Kiến trúc server giao dịch cho phép chia chức năng giữa phần trước và
phần sau. Chức năng phần trước được hỗ trợ trên các máy tính cá nhân (PC).
Các PC hành động như những khách hàng của các hệ thống server nơi lưu trữ
một khối lượng lớn dữ liệu và hỗ trợ các chức năng phần sau. Các clients gửi
các giao dịch đến các hệ thống server tại đó các giao dịch được thực hiện và
CHƯƠNG I. GIỚI THIỆU Trang 10
HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU các kết quả đư c
ợ gửi trả lại cho các clients, người giữ trách nhiệm hiển thị dữ liệu.
ODBC ( Open DataBase Connectivity ) được phát triển để tạo giao diện
giữa các clients và các servers. ODBC là một giao diện trình ứng dụng cho
phép các clients sinh ra các lệnh SQL và gửi đến một server tại đó lệnh được
thực hiện. Bất kỳ client nào sử dụng giao diện có thể nối với bất kỳ một server
nào cung cấp giao diện này.
Các giao diện client-server khác ODBC cũng được sử dụng trong ộ m t số
hệ thống xử lý giao dịch. Chúng được xác định bởi một giao diện lập trình ứng
dụng, sử dụng nó các clients tạo ra các lời gọi thủ tục giao dịch từ xa
( transactional remote procedure calls ) trên server. Các lời gọi này giống như
các lời gọi thủ tục gốc đối với ngư i
ờ lập trình nhưng tất cả các lời gọi thủ tục từ
xa của một client được bao trong một giao dịch ở server cuối. Như vậy nếu
giao dịch bỏ dở, server có thể huỷ bỏ hiệu quả của các lời gọi t ủ h tục xa riêng lẻ.
Hệ thống server dữ liệu ( Data-server systems ): cho phép các clients trao đổi với các
server bằng cách tạo ra các yêu cầu đọc hoặc cập nhật d
ữ liệu trong các đơn vị như file
hoặc trang. Ví dụ, các file-servers cung cấp một giao diện với hệ thống file tại đó các
clients có thể tạo, cập nhật, đọc hoặc xoá files. Các servers dữ liệu của cơ sở dữ liệu
cung cấp nhiều chức năng hơn; chúng hỗ trợ các đơn vị dữ liệu nhỏ hơn file như trang,
bộ ( tuple ) hoặc đối tượng. Chúng cũng cung cấp phương tiện dễ dàng để lấy chỉ mục
(indexing) dữ liệu, phương tiện dễ dàng để tạo giao dịch.
o Các server dữ liệu (Data Servers): Các hệ thống server dữ liệu được sử dụng
trong các mạng cục bộ, trong đó có một nối kết tốc độ cao giữa các máy clients
và máy server, các máy clients có sức mạnh xử lý tương thích với máy server
và các công việc phải được thực hiện là tăng cường tính toán. Trong một môi
trường như vậy, có thể gửi dữ liệ đế u
n các máy client để thực hiện tất cả các xử
lý tại máy clients sau đó gửi d
ữ liệu trở lại đến máy server. Kiến trúc này đòi
hỏi các tính năng back-end đầy đủ tại các clients. Kiến trúc server dữ liệu
thường được gặp trong các hệ CSDL hư ng ớ
đối tượng (Object-Oriented DataBase Systems)
Gửi trang đối lại với gửi hạng mục (Page shipping versus item shipping):
Đơn vị liên lạc dữ liệu có thể là các "hạt thô" (Coarse granularity) như một
trang, hay hạt min (fine granularity) như một bộ (tuple)/ đối tượng (object).
Ta dùng thuật ngữ hạng mục để chỉ bộ hay đối tượng. Nếu đơn vị liên lạc là
một hạng mục sẽ dẫn đến tổng chi phí truyền thông điệp tăng. Đem về hạng
mục (fetching item) trước khi nó đư c
ợ yêu cầu, được gọi là đem về trước
(Prefetching). Gửi trang có thể được xem như một dạng của đem về trước nếu
một trang chứa nhiều hạng mục.
Chốt (Locking): Các chốt thường được cấp bởi server trên các hạng mục mà
nó gửi cho các máy clients. Khi client giữ một c ố
h t trên một hạng mục dữ liệu,
nó có quyền “sử dụng” hạng mục dữ liệu này, hơn nữa trong khoảng thời gian
client giữ chốt trên hạng mục dữ liệu không một client nào khác có thể sử dụng
hạng mục dữ liệu này
. Bất lợi của gửi trang là các máy client có thể được cấp
các chốt "hạt quá thô" -- một chốt trên một trang ẩn chứa các chốt trên tất cả
các hạng mục trong trang. Các kỹ thuật nhằm tiết giảm chốt (lock deescalation)
được đề nghị, trong đó server có thể yêu cầu các clients truyền trả lại các chốt
CHƯƠNG I. GIỚI THIỆU Trang 11
HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU
trên các hạng mục cấp phát trước. Nếu máy client không cần hạng mục cấp
phát trước, nó có thể truyền trả lại các chốt trên hạng mục cho server và các
chốt này có thể được cấp phát cho các clients khác.
Trữ dữ liệu (Data caching): Dữ liệu được gửi đến một client với danh nghĩa
một giao dịch có thể được trữ ở client, ngay cả khi giao dịch đã hoàn tất, nếu
không gian lưu trữ có sẵn. Các giao dịch liên tiếp tại cùng một client có thể
dùng dữ liệu được trữ. Tuy nhiên, sự kết dính dữ liệu là một vấn đề cần phải
được xem xét: một giao dịch tìm thấy dữ liệu được trữ, nó phải chắc chắn rằng
dữ liệu này là "mới nhất" vì các dữ liệu này có thể được cập nhật bởi một client
khác sau khi chúng được trữ. Như vậy, vẫn phải trao đổi với server để kiểm tra
tính hợp lệ của dữ liệu và để giành được một chốt trên dữ liệu.
Trữ chốt (Lock caching): Các chốt cũng có thể được tr ữ lại tại máy client.
Nếu một hạng mục dữ liệu được tìm thấy trong cache và chốt yêu cầu cho một
truy xuất đến hạng mục dữ liệu này cũng tìm thấy trong cache, thì việc truy
xuất có thể tiến hành không cần một liên lạc nào với server. Tuy nhiên, server
cũng phải lưu lại vết của các chốt được trữ. Nếu một client đòi hỏi một chốt từ server, server phải g i
ọ lại tất cả các chốt xung đột trên cùng hạng mục dữ liệu
từ tất cả các máy clients đã trữ các chốt. SQL Form Report writer Graphical Phần trước user-interface interface interface (front-end) interface(SQL&API) Phần sau SQL engine (Back-end) Figure 4
CÁC HỆ SONG SONG (Parallel Systems):
Các hệ song song cải tiến tốc độ xử lý và tốc độ I/O bằng cách sử dụng nhiều CPU và
nhiều đĩa song song. Trong xử lý song song, nhiều hoạt ng độ
được thực hiện đồng thời. Một
máy song song "hạt thô" (coarse-grain) gồm một số nhỏ các bộ xử lý mạnh. Một máy song
song đồ sộ (massively parallel) hay "hạt mịn" (fine-grain) sử dụng hàng ngàn bộ xử lý nhỏ hơn.
Có hai biện pháp chính để đánh giá hiệu năng của một hệ CSDL. Thứ nhất là năng lực truyền qua
(throughput): số công việc có thể được hoàn tất trong một kho n ả g thời gian ã đ cho. Thứ hai là
thời gian đáp ứng (response time): lượng thời gian cần thiết để hoàn thành một công việc từ lúc
nó được đệ trình
. Một hệ thống xử lý một lượng lớn các giao dịch nhỏ có thể cải tiến năng lực
truyền qua bởi xử lý song song nhiều giao dịch. Một hệ thống xử lý các giao dịch lớn có thể cải
tiến thời gian đáp ứng c ng ũ
như năng lực truyền qua ở
b i thực hiện song song các công việc con
(subtask) của mỗi giao dịch.
Tăng tốc độ và t ng ă
quy mô (Speedup & Scaleup): Tăng tốc độ ám chỉ việc chạy
một công việc đã cho trong thời gian ngắn hơn bằng cách tăng bậc song song. Tăng quy
mô ám chỉ việc quản lý các công việc lớn bằng cách tăng bậc song song. Chúng ta hãy
xét một ứng dụng CSDL chạy trên một hệ thống song song với một số processor và một
số đĩa. Giả sử, chúng ta tăng kích ỡ
c của hệ thống bằng cách tăng số processor, đĩa, và
các thành phần khác của hệ thống. Mục đích là xử lý công việc trong thời gian tỷ lệ
nghịch với số processor và đĩa được cấp phát.
CHƯƠNG I. GIỚI THIỆU Trang 12
HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU
Giả sử, thời gian thực hiện một công việc trên một máy tính lớn là TL, thời gian thực
hiện cùng công việc này trên máy tính nhỏ là TS. Tăng tốc
độ nhờ song song được định
nghĩa là tỷ số TS/TL, hệ thống song song được gọi là tăng tốc độ tuyến tính nếu tốc độ
tăng là N khi hệ thống lớn có N lần tài nguyên (CPU, đĩa ...) lớn hơn hệ thống nhỏ. Nếu tốc t độ ăng nh h ỏ ơn N, hệ th ng ố
được gọi là tăng tốc độ hạ tuyến tính (sublinear).
Tăng quy mô liên quan đến khả năng xử lý các công việc lớn trong trong cùng một
lượng thời gian bằng cách cung cấp thêm tài nguyên. Giả sử, Q là một công việc, QN là
một công việc N lần lớn hơn Q. Giả sử thời gian thực hiện công việc Q trên một máy MS là T ớ ơ
S và thời gian thực hiện công việc QN trên một máy song song ML, N lần l n h n MS, là T ă đượ ĩ ệ L. T ng quy mô
c định ngh a là TS/TL. H song song ML được gọi là tăng quy
mô tuyến tính trên công việc Q nếu TS = TL. Nếu T ệ
L > TS, h thống được gọi là tăng quy
mô hạ tuyến tính. Tăng quy mô là một độ đo (metric) quan trọng hơn trong đo lường
hiệu quả của các hệ CSDL song song. Đích của song song trong các hệ CSDL là đảm
bảo hệ CSDL có thể tiếp tục thực hiện ở một tốc độ chấp nhận được, ngay cả khi kích cỡ
của CSDL và số giao dịch tăng lên. Tăng khả năng của hệ thống bằng cách tăng sự song
song cung cấp một con đường thuận tiện hơn cho sự phát triển hơn là thay thế một hệ tập
trung bởi một máy nhanh hơn. Một số nhân tố ảnh hưởng xấu đến tính hiệu quả của hoạt
động song song và có thể làm giảm ả
c tăng tốc độ và tăng quy mô là:
o Chi phí khởi động ( Startup Costs ): Có một chi phí khởi động kết hợp với sự khởi
động một xử lý. Trong một hoạt động song song ồ
g m hàng ngàn xử lý, thời gian
khởi động (Startup time) có thể làm lu mờ thời gian xử lý hiện tại, ảnh hư ng ở bất lợi tới tăng tốc . độ
o Sự giao thoa ( Interference ): Các xử lý thực hiện trong một hệ song song thường
truy nhập đến các tài nguyên chia sẻ, một sự giao thoa của mỗi xử lý mới khi nó
cạnh tranh với các xử lý đang tồn tại trên các tài nguyên bị chiếm như bus hệ
thống, đĩa chia sẻ, thậm chí cả đồng hồ. Hiện tượng này ảnh hướng đến cả tăng tốc độ lẫn tăng quy mô.
o Sự lệch ( Skew ): Bằng cách chia một công v ệ
i c thành các bước song song, ta làm
giảm kích cỡ của bước trung bình. Tuy nhiên, thời gian phục vụ cho bước chậm
nhất sẽ xác định thời gian phục vụ cho toàn bộ công việc. Thường khó có thể chia
một công việc thành các phần cùng kích cỡ, như vậy cách mà kích cỡ được phân
phối là bị lệch. Ví dụ: một công việc có kích cỡ 100 được chia thành 10 phần và sự
phân chia này bị lệch, có thể có một số phần có kích cỡ nhỏ hơn 10 và một số
nhiệm vụ có kích cỡ lớn ơ
h n 10, giả sử trong đó có phần kích ỡ c 20, độ tăng tốc
nhận được bởi chạy các công việc song song chỉ là 5, thay vì 10.
Các mạng hợp nhất (Interconnection Network): Các hệ thống song song gồm một
tập hợp các thành phần ( Processors, memory và các đĩa ) có thể liên lạc với nhau thông
qua một mạng hợp nhất. Các ví d v ụ ề các mạ ợ ng h ấ p nh t là:
o Bus: Toàn bộ các thành phần hệ thống có thể gửi và nhận dữ liệu qua ộ m t bus liên
lạc. Các kiến trúc bus làm việc tốt với một số nhỏ các processor. Tuy nhiên, chúng
không có cùng quy mô khi tăng sự song song vì bus chỉ điều khiển liên lạc từ chỉ
một thành phần tại một thời điểm. M P P P P P bus M
CHƯƠNG I. GIỚI THIỆU Trang 13
HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU Figure 5
o Lưới ( Mesh): Các thành phần được sắp xếp như các nút của một lưới, mỗi thành
phần được nối với tất cả các thành phần kề với nó trong lưới. Trong một lưới hai
chiều mỗi nút được nối với 4 nút kề. P P 0 1
Siêu lập phương một chiều P P P P P P 10 11 P P P P P P 00 01
Siêu lập phương hai chiều P P P P P P 101 111 P P 100 110 P P P P P P 001 011 P P 000 010
mạng hợp nhất hình lưới
Siêu lập phương ba chiều Figure 6
o Siêu lập phương ( Hypercube ): Các thành phần được đánh số theo nhị phân, một
thành phần được nối với thành phần khác nếu biểu diễn nhị nhân số của chúng sai
khác nhau đúng một bit. Như vậy, mỗi một thành phần trong n thành phần được
nối với log(n) thành phần khác. Có thể kiểm nghiệm được rằng trong một sự hợp
nhất siêu lập phương một thông điệp từ một thành phần đến ộ m t thành phần khác đi quá nhiều n ấ
h t log(n) nối kết, còn trong lưới là n − 1
Các kiến trúc cơ sở dữ liệu song song: Có một vài mô hình kiến trúc cho các máy song song: ( Ký hiệu: P = processor, M = Memory, = đĩa )
o Bộ nhớ chia sẻ ( Shared memory ): Tất cảc các processor chia sẻ một bộ nhớ
chung. Trong mô hình này các processor và các đĩa truy xuất một bộ nhớ chung,
thường thông qua một bus hoặc một mạng hợp nhất. Thuận lợi của chia sẻ bộ nhớ
là liên lạc giữa các processor là cực kỳ hiệu quả: dữ liệu trong b ộ nhớ chia sẻ có
thể được truy xuất bởi bất kỳ processor nào mà không phải di chuyển bởi phần
mềm. Một processor có thể gửi thông điệp cho một processor khác bằng cách viết
vào bộ nhớ chia sẻ, cách liên lạc này nhanh hơn nhiều so với các liên lạc khác. Tuy
nhiên, các máy bộ nhớ chia sẻ không thể hỗ trợ nhiều ơ h n 64 processor vì ế n u
nhiều hơn, bus hoặc mạng hợp nhất sẽ trở nên dễ bị nghẽn ( bottle-neck ).
Kiến trúc bộ nhớ chia sẻ thường có nh n
ữ g cache lớn cho mỗi processor, như vậy việc tham khảo b nh ộ
ớ chia sẻ có thể tránh được mỗi khi có thể.
CHƯƠNG I. GIỚI THIỆU Trang 14
HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU P P P P M Figure 7
o Đĩa chia sẻ ( Shared disk ): Tất cả các processor chia sẻ đĩa chung. Mô hình này
còn được gọi là cụm (cluster). Trong mô hình này tất cả các processor có thể truy
xuất trực tiếp đến tất cả các đĩa thông qua một mạng hợp nhất, nhưng mỗi
processor có bộ nhớ riêng. M M M M P P P P Figure 8
Kiến trúc này có các điểm thuận lợi là: thứ nhất, bus bộ nhớ không bị bottle-neck,
thứ hai, cho một phương pháp rẻ đ
ể cung cấp một mức độ lượng thứ lỗi--một
processor bị hỏng hóc, các processor khác có thể tiếp ụ t c công việc ủ c a nó. Ta có
thể tạo ra hệ thống con các đĩa ự
t lượng thứ lỗi bằng cách sử dụng kiến trúc RAID
(được trình bày sau này). Vấn đề chính của chia sẻ đĩa là sự hợp nhất các hệ thống
con các đĩa trở nên bottle-neck, đặc biệt trong tình huống CSDL truy xuất đĩa
nhiều. So sánh với bộ nhớ chia sẻ, chia sẻ đĩa có thể hỗ t ợ
r một số lượng processor lớn hơn, nh ng vi ư
ệc liên lạc giữa các processor chậm hơn.
o Không chia sẻ ( Shared nothing ): Các processor không chia sẻ b nh ộ ớ chung, cũng
không chia sẻ đĩa chung. Trong hệ thống này mỗi nút của máy có một processor,
bộ nhớ và một vài đĩa. M M M P P P P P P M M M Figure 9
CHƯƠNG I. GIỚI THIỆU Trang 15
HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU
Các processor ở mỗi nút có thể liên lạc với các processor khác qua mạng hợp nhất
tốc độ cao. Chức năng của một nút, như server, dữ liệu được chứa trên các đĩa của
nó. Mô hình không chia sẻ gì chỉ có vấn đề về việc truy xuất các đĩa không ụ c c bộ
và việc truyền các quan hệ kết quả qua mạng. Hơn nữa, đối với các hệ th ng ố không
chia sẻ gì, các mạng hợp nhất thường đư c
ợ thiết kế để có thể tăng quy mô, sao cho
khả năng truyền của chúng tăng khi các nút mới được thêm vào.
o Phân cấp ( hierarchical ): Mô hình này là một sự lai kiểu của các kiến trúc trước. M M M P P P P P P P P P P P P P P P Figure 10
Kiến trúc này tổ hợp các đặc trưng của các kiến trúc chia sẻ bộ nhớ, chia sẻ đĩa và
không chia sẻ gì. Ở mức cao nhất, hệ thống bao gồm những nút được nối bởi mạng
hợp nhất và không chia sẻ đĩa cũng như bộ nhớ với nút khác. Như vậy, mức cao
nhất là kiến trúc không chia sẻ gì. Mỗi nút của hệ thống có thể là hệ thống chia sẻ
bộ nhớ với một vài processor. Kế tiếp, mỗi nút có thể là một hệ thống chia sẻ đĩa. Mỗi m t
ộ hệ thống chia sẻ đĩa lại có thể là một hệ thống chia sẻ bộ nhớ... Như vậy,
hệ thống có thể được xây dựng như một sự phân cấp.
CÁC HỆ THỐNG PHÂN TÁN (Distributed Systems):
Trong một hệ thống CSDL phân tán, CSDL được lưu trữ trên một vài máy tính. Các máy
tính trong một hệ thống phân tán liên lạc với một máy khác qua nhiều dạng phương tiện
liên lạc khác nhau: mạng tốc độ cao, đường điện thoại... Chúng không chia sẻ bộ nhớ cũng
như đĩa. Các máy tính trong hệ thống phân tán có thể rất đa dạng về kích cỡ cũng như
chức năng: từ các workstation đến các mainframe. Các máy tính trong hệ thống phân tán
được tham chiếu bởi một số các tên khác nhau: site , node -- phụ thuộc vào ngữ cảnh mà
máy được đề cập. Ta sẽ s ử dụng thuật ng
site để nhấn mạnh sự phân tán vật lý của các hệ thống này. Site A Site C mạng
CHƯƠNG I. GIỚI THIỆU Trang 16 Liên lạc thông qua mạng Site B
HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU Figure 11
Sự sai khác chính giữa CSDL song song không chia sẻ gì và hệ thống phân tán là
CSDL phân tán được tách biệt về mặt địa lý, được quản trị tách biệt và có ộ m t sự hợp nhất
chậm. Hơn nữa, trong hệ thống phân tán người ta phân biệt giữa các giao dịch cục bộ
(local) và toàn thể (global). Giao dịch ụ
c c bộ là một giao dịch truy xuất dữ liệu trong một
site tại đó giao dịch đã được khởi xướng. Giao dịch toàn thể là một giao dịch mà nó hoặc truy xuất d
ữ liệu trong một site từ một site khác tại đó nó được khởi xướng hoặc truy xuất
dữ liệu trong một vài site khác nhau. BÀI TẬP CHƯƠNG I I.1 Bố đ
n iểm khác nhau chính giữa một hệ thống xử lý file và một hệ quản trị CSDL là gì ? I.2
Giải thích sự khác nhau giữa độc lậ ữ
p d liệu vật lý và độc lập d l ữ iệu logic I.3
Liệt kê năm nhiệm vụ của nhà quản trị CSDL. Đối với mỗi nhiệm ụ v , giải tích rõ những
vấn đề nảy sinh nếu nhiệm vụ đó không được hoàn thành. I.4
Năm chức năng chính của nhà quản trị CSDL là gì ? I.5 Sử ụ
d ng một mảng hai chiều kích ỡ
c n x m như một ví dụ để minh hoạ sự khác nhau:
1. giữa ba mức trừu tượng dữ liệu
2. giữa sơ đồ và thể hiện I.6
Trong các hệ thống client-server tiêu biểu, máy server thường mạnh hơn máy client rất
nhiều: Có bộ xử lý nhanh hơn thậm chí có thể có nhiều bộ xử lý, có bộ nhớ lớn hơn, có dung
lượng đĩa lớn hơn. Ta xét một kịch bản trong đó các máy client và các máy server là mạnh như 17
HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU
nhau. Xây dựng một hệ thống client-server theo kịch bản nh v
ư ậy có ưu nhược điểm gì ? Kịch bản
nào phù hợp hơn với kiến trúc server dữ liệu ? I.7
Giả sử một giao dịch được viết trong C với SQL nhúng, và khoảng 80% thời gian được
dùng cho code SQL, 20% còn lại cho code C. Nếu song song được dùng chỉ cho code SQL, Tăng
tốc độ có thể đạt tới bao nhiêu ? Giải thích. I.8
Những nhân tố nào chống lại việc tăng quy mô tuyến tính trong một hệ thống xử lý giao
dịch ? Nhân tố nào là quan trọng nhất trong mỗi một kiến trúc sau: bộ nhớ chia ẻ s , đĩa chia sẻ, không chia sẻ gì ? I.9
Xét một mạng dựa trên đường điện thoại quay số tự động, trong đó các site liên lạc theo định kỳ, ví ụ
d hàng đêm. Các mạng như vậy thường được cấu hình ớ
v i một site server và nhiều
site client. Các site client chỉ nói với server và trao đổi d
ữ liệu với client khác bởi lưu dữ liệu tại
server và lấy dữ liệu được lưu trên server bởi client khác. Ưu, nhược điểm của kiến trúc như vậy là gì ?
CHƯƠNG I. GIỚI THIỆU Trang 18