You are on page 1of 7

Chæång 1.

TÄØNG QUAN VÃÖ CÅ SÅÍ DÆÎ LIÃÛU

Chæång 1: TÄØNG QUAN VÃÖ CÅ SÅÍ DÆÎ LIÃÛU

1 Chæïc Nàng Cuía Mäüt Hãû Quaín Trë Cå Såí Dæî Liãûu
1.1. Caïc Khaïi Niãûm Vãö Cå Såí Dæî Liãûu
Âãø dãù daìng cho viãûc giaíi thiïch caïc khaïi niãûm vãö Cå Såí Dæî Liãûu, træåïc hãút ta
xem xeït hãû thäúng baïn veï may bay bàòng maïy tênh. Dæî liãûu læu træî trong maïy tênh
bao gäöm caïc thäng tin vãö haình khaïch, chuyãún bay, âæåìng bay ... Moüi thäng tin vãö
mäúi quan hãû naìy âæåüc biãøu diãùn trong maïy tênh thäng qua viãûc âàût chäø cuía khaïch
haìng. Váûy laìm thãú naìo âãø biãøu diãùn âæåüc dæî liãûu âoï vaì âãø âaím baío cho khaïch
haìng âi âuïng chuyãún bay.
Táûp håüp dæî liãûu trãn âæåüc læu træî trong maïy tênh theo mäüt quy âënh naìo âoï
vaì âæåüc goüi laì Cå Såí Dæî Liãûu( Database - CSDL)
1.2. Hãû quaín trë Cå Såí Dæî Liãûu
1.2.1. Âënh nghéa: Pháön Chæång trçnh coï thãø xæí lyï, thay âäøi dæî liãûu goüi laì hãû quaín
trë Cå Såí Dæî Liãûu (Database management System - viãút tàõt DBMS)
1.2.2 Nhæîng khaí nàng cuía Hãû quaín trë Cå Såí Dæî Liãûu
Coï hai âàûc tênh âãø phán biãût DBMS våïi caïc hãû thäúng láûp trçnh khaïc, âoï laì:
1. Khaí nàng quaín lyï nhæîng dæî liãûu cäú âënh
2. Khaí nàng truy xuáút coï hiãûu quaí mäüt khäúi læåüng dæî liãûu låïn
Âiãøm (1) khàón âënh ràòng coï mäüt CSDL täön taûi thæåìng xuyãn ; näüi dung cuía Cå
Såí Dæî Liãûu naìy laì nhæîng dæî liãûu âæåüc DBMS truy xuáút vaì quaín lyï. Âiãøm (2) phán
biãût mäüt DBMS våïi mäüt hãû thäúng táûp tin cuîng quaín lyï dæî liãûu nhæng noïi chung
khäng cho pheïp truy xuáút nhanh choïng caïc thaình pháön tuìy yï cuía dæî liãûu . Nhæîng
khaí nàng cuía mäüt DBMS seî ráút cáön thiãút khi säú læåüng dæî liãûu ráút låïn.
Hai âàûc tênh trãn laì hai âàûc tênh cå baín cuía mäüt DBMS, ngoaìi ra mäüt
DBMS thæåìng coï caïc khaí nàng sau:
- Häù tråü êt nháút mäüt mä hçnh dæî liãûu (Data model) nhåì âoï ngæåìi sæí duûng coï thãø
xem âæåüc dæî liãûu.
- Häù tråü mäüt säú ngän ngæî báûc cao cho pheïp ngæåìi sæí duûng âënh nghéa caïc cáúu truïc
dæî liãûu, truy xuáút vaì thao taïc dæî liãûu .
- Quaín lyï giao dëch, nghéa laì cho pheïp nhiãöu ngæåìi sæí duûng truy xuáút âäöng thåìi vaì
chênh xaïc âãún mäüt Cå Såí Dæî Liãûu .
- Âiãöu khiãøn caïc quaï trçnh truy xuáút, laì khaí nàng giåïi haûn caïc quaï trçnh truy xuáút
dæî liãûu cuía nhæîng ngæåìi khäng âæåüc pheïp , vaì khaí nàng kiãøm tra âäü tin cáûy cuía
dæî liãûu

Baìi soaûn män Cå såí dæî liãûu Nguyãùn Vàn Chæïc


Trang 1
Chæång 1. TÄØNG QUAN VÃÖ CÅ SÅÍ DÆÎ LIÃÛU
- Caïc âàûc tênh tæû thêch æïng, laì khaí nàng tæû phuûc häöi laûi dæî liãûu do sæû cäú cuía hãû
thäúng maì khäng laìm máút dæî liãûu
1.3 Caïc mä hçnh dæî liãûu
Mäüt DBMS cáön phaíi cung cáúp êt nháút mäüt mä hçnh træìu tæåüng qua âoï ngæåìi
sæí duûng coï thãø tháúy âæåüc dæî liãûu khäng phaíi bàòng caïc bit “thä” maì bàòng caïc daûng
dãù hiãøu, dãù nháûn biãút hån.
Trong thæûc tãú caïc Cå Såí Dæî Liãûu coï thãø coï mäüt vaìi mæïc træìu tæåüng , trong
âoï mæïc tháúp nháút laì táûp håüp caïc file dæî liãûu ( Mæïc váût lyï)
Vê duû: Xeït mäüt täøng cäng ty coï nhiãöu cäng ty con vaì häö så vãö caïc nhán viãn cuía
täøng cäng ty coï thãø âæåüc læu træî trong mäüt file dæî liãûu gäöm caïc træåìng MNV( maî
nhán viãn), HOTEN, LUONG_NV, ÂIACHI... âãø âån giaín ta giaí thiãút cáúu truïc
baín ghi gäöm 2 træåìng sau:
TEN_NV: hoü tãn nhán viãn
NGUOI_QL: Hoü tãn giaïm âäúc cäng ty nåi nhán viãn laìm viãûc.
Khi âoï cáúu truïc baín ghi nhæ sau:
Record
TEN_NV: char[30];
NGUOI_QL: char[30];
end;
Khi âoï file dæî liãûu laì táûp caïc baín ghi vaì mäùi baín ghi chæïa thäng tin vãö mäüt nhán
viãn cuía cäng ty.
Trong nhiãöu mä hçnh Cå Såí Dæî Liãûu ngæåìi ta sæí duûng caïc quan hãû thay cho caïc file
Quan hãû : NHAN_VIEN(TEN_NV,NGUOI_QL)
Ta cáön phán biãût giæîa file vaì quan hãû
Trong file caïc baín ghi khäng nháút thiãút phaíi phán biãût
Trong quan hãû, caïc baín ghi(bäü) cáön phaíi phán biãût nhau.
1.4 Hiãûu quaí truy cáûp dæî liãûu
Caïc hãû âiãöu haình âãöu coï khaí nàng täø chæïc vaì læu træî caïc táûp tin vç váûy viãûc læu træî
caïc táûp tin dæî liãûu âäúi våïi DBMS laì khäng âaïng chuï yï. Hiãûu quaí cuía caïc DBMS trong
viãûc xæí lyï trãn caïc táûp tin laì täø chæïc caïc táûp tin phuû hoàûc caïc cäng cuû häù tråü âãø truy cáûp
dæî liãûu nhanh choïng, këp thåìi . Chàón haûn caïc file INDEX, hoàûc caïc haìm HASH.
1.5 Quaín lyï giao dëch
Ngaìy nay do sæû phaït triãøn cuía maûng maïy tênh maì caïc Cå Såí Dæî Liãûu låïn coï thãø
âæåüc sæí duûng båíi nhiãöu ngæåìi trãn caïc maïy tênh khaïc nhau vç váûy caïc DBMS cáön phaíi
cung cáúp mäüt khaí nàng quaín lyï sæû truy cáûp dæî liãûu cuía nhiãöu ngæåìi sæí duûng. Chàón haûn
caïc dæî liãûu vãö taìi khoaín cuïa ngán haìng âæåüc sæí duûng båíi haìng vaûn khaïch haìng trãn caïc
maïy tênh khaïc nhau hoàûc trãn caïc maïy âäøi tiãön tæû âäüng; Cå Såí Dæî Liãûu phuûc vuû cho viãûc
âàût chäø cho mäüt haîng haìng khäng âæåüc sæí duûng båíi haìng ngaìn âaûi lyï cuía haîng haìng
khäng âoï trãn khàõp thãú giåïi. Viãûc truy cáûp âäöng thåìi thæåìng xaíy ra hiãûn tæåüng xung âäüt

Baìi soaûn män Cå såí dæî liãûu Nguyãùn Vàn Chæïc


Trang 2
Chæång 1. TÄØNG QUAN VÃÖ CÅ SÅÍ DÆÎ LIÃÛU
giao dëch giæîa caïc khaïch haìng trãn cuìng mäüt haûng muûc dæî liãûu , vç váûy DBMS cáön phaíi
cung cáúp mäüt khaí nàng khoïa dæî liãûu (clock data) khi coï ngæåìi sæí duûng truy cáûp âãún haûng
muûc dæî liãûu âoï.
1.6 An toaìn dæî liãûu
Mäüt DBMS cáön phaíi coï khaí nàng phuûc häöi laûi dæî liãûu khi coï sæû hoíng hoïc xaíy ra,
âäöng thåìi vaì ráút quan troüng laì baío vãû sæû truy cáûp cuía caïc ngæåìi sæí duûng khäng âæåüc pheïp
. Âãø thæûc hiãûn cäng viãûc naìy caïc DBMS cho pheïp taûo ra caïc khung nhçn (View) maì ngæåìi
sæí duûng chè âæåüc pheïp quan saït dæî liãûu trãn caïc view. Chàón haûn chuïng ta coï mäüt file dæî
liãûu laì NHAN_VIEN gäöm caïc træåìng
TEN ( Hoü tãn nhán viãn)
DIA_CHI(âëa chè nhán viãn)
TEN_CTY( tãn cäng ty)
LUONG(læång nhán viãn)
nãúu sæí duûng mä hçnh Quan hãû ta coï Quan hãû sau:
NHAN_VIEN(TEN, DIA_CHI, TEN_CTY,LUONG)
Âãø moüi ngæåìi coï thãø truy cáûp vaìo file dæî liãûu naìy nhæng khäng âæåüc biãút læång cuía nhán
viãn. Trong ngän ngæî SQL khung nhçn âæåüc taûo ra nhæ sau:
CREAT VIEW L_NHAN_VIEN
SELECT TEN, DIA_CHI,TEN_CTY
FROM NHAN_VIEN;
Khi âoï khung nhçn âæåüc taûo ra nhæ mäüt quan hãû våïi tãn L_NHAN_VIEN(TEN,
DIA_CHI, TEN_CTY). Khung nhçn naìy khäng täön taûi váût lyï nhæ táûp tin , nhæng coï thãø
váún tin noï giäúng nhæ táûp tin.
2. Kiãún truïc mäüt Hãû quaín trë Cå Såí Dæî Liãûu
Mäüt Hãû quaín trë Cå Såí Dæî Liãûu âæåüc mä taí båíi 3 mæïc træìu tæåüng sau

Nhoïm UESR 1 Khung nhçn 1


Cå Såí Dæî Liãûu
CSDL váût
khaïi niãûm
Nhoïm UESR 2 Khung nhçn 2 lyï

. .
. .
. .
Nhoïm UESR n Khung nhçn n

Âæåüc viãút bàòng


Âæåüc viãút bàòng ngän Âæåüc caìi âàût trãn
ngän ngæî âënh
ngæî âënh nghéa dæî liãûu thiãút bë váût lyï
nghéa dæî liãûu
læåüc âäö con

Baìi soaûn män Cå såí dæî liãûu Nguyãùn Vàn Chæïc


Trang 3
Chæång 1. TÄØNG QUAN VÃÖ CÅ SÅÍ DÆÎ LIÃÛU
2.1 Mæïc Cå Såí Dæî Liãûu váût lyï( physical level)
Laì mäüt táûp caïc táûp tin (file) vaì caïc file chè muûc (Index) hoàûc caïc cáúu truïc læu træî
khaïc duìng âãø truy xuáút chuïng mäüt caïch coï hiãûu quaí , goüi laì Cå Såí Dæî Liãûu váût lyï. Cå Såí
Dæî Liãûu váût lyï täön taûi thæåìng xuyãn trong thiãút bë læu træî nhæ âéa tæì.
2.2 Mæïc Cå Såí Dæî Liãûu khaïi niãûm (Concept level )
Cå Såí Dæî Liãûu khaïi niãûm laì sæû træìu tæåüng hoïa cuía thãú giåïi thæûc khi noï dæåüc gàõn
våïi ngæåìi sæí duûng Cå Såí Dæî Liãûu. Caïc DBMS cung cáúp ngän ngæî âëng nghéa dæî liãûu
(data definition language DDL), âãø mä taí læåüc âäö khaïi niãûm (conceptual scheme)vaì noï
seî âæåüc caìi âàût bàòng læåüc âäö váût lyï (physical scheme). DDL cho chuïng ta mä taí Cå Såí Dæî
Liãûu khaïi niãûm nhåì caïc thuáût ngæî cuía “Mä hçnh dæî liãûu “ , chàón haûn nhæ trong mä hçnh
quan hãû dæî liãûu âæåüc trçnh baìy qua caïc baíng våïi caïc cäüt laì caïc thuäüc tênh caïc haìng laì caïc
“bäü” tæång tæû nhæ caïc máùu tin.
2.3 Khung nhçn(VIEW)
Khung nhçn(view) hay læåüc âäö con (Subscheme)laì mäüt pháön cuía Cå Såí Dæî Liãûu
khaïi niãûm hoàûc laì sæû træìu tæåüng hoïa mäüt pháön Cå Såí Dæî Liãûu khaïi niãûm . háöu hãút caïc
DBMS âãöu cung cáúp phæång tiãûn âãø khai baïo khung nhçn , âæåüc goüi laì ngän ngæî âënh
nghéa dæî liãûu læåüc âäö con( subscheme data definition language) vaì caïc phæång tiãûn âãø
thao taïc vaì váún tin trãn khung nhçn goüi laì ngän ngæî thao taïc dæî liãûu læåüc âäö con
(subscheme data manipulation language)
Thê duû1
Chuïng ta thæí phán têch caïc khaïc biãût giæîa caïc mæïc váût lyï, khêa niãûm, khung nhçn
nhåì vaìo tênh tæång tæû cuía chuïng våïi caïc ngän ngæî láûp trçnh. Cuû thãø ta seî noïi vãö maíng:
- ÅÍ mæïc khaïi niãûm maíng coï thãø khia baïo nhæ sau:
Integer array A[1..n,1..m]
Coìn åí mæïc váût lyï, maíng A âæåüc læu træî trong mäüt vuìng liãn tuûc bàõt âáöu tæì âëa chè a0 theo
thæï tæû hãút cäüt âãún doìng. Pháön tæí A[i,j] seî åí vë trê a0 +4(m(i-j)+j-1)
ÅÍ mæïc khung nhçn, ta coï thãø taûo ra nhiãöu khung nhçn tuìy yï. Chàón haûn
m
f(i)= ∑ A[i, j] cho biãút täøng caïc pháön tæí trãn doìng thæï i.
j=1

Læåüc âäö vaì thãø hiãûn


Ngoaìi viãûc phán chia mæïc træìu tæåüng nhæ trong pháön (2) chuïng ta coìn coï mäüt
caïch hiãøu khaïc vãö Cå Såí Dæî Liãûu . Khi thiãút kãú chuïng ta quan tám âãún nhæîng hoaûch âënh
(plan) trãn Cå Såí Dæî Liãûu ; nhæng khi sæí duûng chuïng ta laûi quan tám âãún nhæîng dæî liãûu
thæûc sæû täön taûi trong Cå Såí Dæî Liãûu . Cáön phaíi hiãøu ràòng dæî liãûu trong Cå Såí Dæî Liãûu
thæoìng xuyãn thay âäøi , trong khi caïc plan váùn nhæ cuî.
Näüi dung hiãûn thåìi cuía Cå Såí Dæî Liãûu goüi laì thãø hiãûn (instance) cuía Cå Såí Dæî
Liãûu .Thuáût ngæî Læåüc âäö (Scheme) âæåüc duìng âãø noïi âãún caïc hoaûch âënh naìy vç váûy khi
noïi âãún læåüc âäö khaïi niãûm laì noïi vãö hoaûch âënh cho Cå Såí Dæî Liãûu khaïi niãûm , vaì chuïng
ta goüi hoaûch âënh Cå Såí Dæî Liãûu váût lyï laì læåüc âäö váût lyï.
Thê duû 2

Baìi soaûn män Cå såí dæî liãûu Nguyãùn Vàn Chæïc


Trang 4
Chæång 1. TÄØNG QUAN VÃÖ CÅ SÅÍ DÆÎ LIÃÛU
Chuïng ta tiãúp tuûc våïi maíng trong vê duû 1. Mä taí maíng vaì haìm âæåüc âæa ra trong
thê duû âoï thæûc sæû laì thäng tin kiãøu læåüc âäö.
1. Læåüc âäö váût lyï laì mãûnh âãö: Pháön tæí A[i,j] seî åí vë trê a0 +4(m(i-j)+j-1), khàón âënh ràòng
maíng A âæåüc læu taûi vë trê bàõt âáöu laì a0 vaì pháön tæí a[i,j] âæåüc læu åí vë trê a0 +4(m(i-j)+j-1)
2. Læåüc âäö khaïi niãûm laì khai baïo Integer array A[1..n,1..m]; A laì mäüt maíng säú nguyãn
våïi n haìng vaì m cäüt.
3. Læåüc âäö con laì âënh nghéa cuía haìm f, nghéa laì
m
f(i)= ∑ A[i, j]
j=1

Âãø âæa ra mäüt thê duû vãö mäüt thãø hiãûn cuía læåüc âäö khaïi niãûm naìy , chuïng ta coï thãø
cho n=m=3 khi âoï A laì mäüt ma phæång:

8 1 6
3 5 7
4 9 2

Khi âoï thãø hiãûn váût lyï (Physical instance)seî laì 9 word khåíi âáöu tæì vë trê a0 theo thæï
tæû chæïa 8 1 6 3 5 7 4 9 2. Cuäúi cuìng thãø hiãûn khung nhçn view laì haìm
f(1)=f(2)=f(3)=15

Tênh Âäüc láûp dæî liãûu .


Så âäö vãö caïc mæïc træìu tæåüng trong pháön (2) chè roî âi tæì khung nhçn qua Cå Såí Dæî
Liãûu khaïi niãûm âãún Cå Såí Dæî Liãûu váût lyï âæa ra hai mæïc âäüc láûp dæî liãûu (data
independence).
- Âäüc láûp dæî liãûu váût lyï (physcal data independence) : Chuïng ta coï thãø thay âäøi
læåüc âäö váût lyï maì khäng laìm aính hæåíng âãún læåüc âäö khaïi niãûm hay phaí i âënh
nghéa laûi caïc læåüc âäö con. Noï khàón âënh ràòng viãûc sæía âäøi vãö täø chæïc vãö Cå Såí Dæî
Liãûu váût lyï coï thãø aính hæåíng âãún tênh hiãûu cuía caïc chæång trçnh æïng duûng , nhæng
khäng bao giåì phaíi viãút laûi nhæîng chæång trçnh naìy.
- Âäüc láûp dæî liãûu logic (logical data independence) âæåüc âæa ra båíi mäúi quan hãû
giæîa khung nhçn vaì Cå Såí Dæî Liãûu khaïi niãûm. Khi sæí duûng Cå Såí Dæî Liãûu cuîng
coï thãø cáön phaíi sæía âäøi læåüc âäö khaïi niãûm, coï nhiãöu sæía âäøi læåüc âäö khaïi niãûm
khäng laìm aính hæåíng âãún caïc læåüc âäö con hiãûn coï, vaì cuîng coï mäüt säú sæía âäøi
khaïc seî cáön phaíi âënh nghéa laûi caïc aïnh xaû tæì læåüc âäö con âãún læåüc âäö khaïi niãûm .
træåìng håüp naìy khäng cáön thay âäøi chæång trçnh æïng duûng . Mäüt laoüi thay âäøi duy
nháút trong læåüc âäö khaïi niãûm buäüc phaíi thay âäøi læåüc âäö con laìviãûc xoïa caïc thäng

Baìi soaûn män Cå såí dæî liãûu Nguyãùn Vàn Chæïc


Trang 5
Chæång 1. TÄØNG QUAN VÃÖ CÅ SÅÍ DÆÎ LIÃÛU
tin tæång æïng våïi caïc thäng tin âang täön taûi trong læåüc âäö con . Nhæîng thay âäøi
naìy âoìi hoíi phaíi thay âäøi chæång trçnh æïng duûng.
3. Caïc ngän ngæî cuía Cå Såí Dæî Liãûu
Trong caïc ngän ngæî láûp trçnh caïc chè thë mä taí vaì caïc chè thë thæûc hiãûn laì 2 bäü
pháûn cuía mäüt ngän ngæî, trong caïc Hãû quaín trë Cå Såí Dæî Liãûu hai chæïc nàng mä taí
vaì xæí lyï noïi chung âæåüc chia thaình 2 ngän ngæî khaïc nhau.
1. Ngän ngæî âënh nghéa dæî liãûu(data definition language - DDL)
Âáy khäng phaíi laì ngän ngæî thuí tuûc maì chè laì mäüt hãû thäúng kyï hiãûu âãø mä taí caïc
loaûi âäúi tæåüng vaì quan hãû giæîa chuïng .
Vê duû 3
Chuïng ta coï thãø âënh nghéa mäüt quan hãû mä taí mäüt chuyãún bay thæûc hiãûn båíi mäüt
haîng haìng khäng våïi âënh nghéa dæî liãûu nhæ sau:
CREAT TABLE FLIGHT(NUMBER: INT, DATE CHAR(6), SEAT:INT, FROM
: CHAR(3), TO : CHAR(3))
Âoaûn maî trãn laì mäüt thê duû vãö ngän ngæî âënh nghéa dæî liãûu SQL , noï mä taí quan hãû vaì
caïc thuäüc tênh cuìng våïi viãûc caìi âàût váût lyï cuía chuïng laì caïc säú nguyãn vaì chuäøi coï âäü daìi
cäú âënh.
2. Ngän ngæî thao taïc dæî liãûu
Caïc thao taïc trãn Cå Såí Dæî Liãûu âäöi hoíi phaíi coï mäüt ngän ngæî âàûc biãût goüi laì ngän ngæî
thao taïc dæî liãûu (data manipulation language- DML) hay coìn goüi laì ngän ngæî váún tin
(Query language).

Vê duû 4
Våïi Cå Såí Dæî Liãûu caïc chuyãún bay FLIGHT âæåüc âënh nghéa bàòng ngän ngæî SQL trong
vê duû 3, trong ngän ngæî SQL ta coï thãø thæûc hiãûn caïc thao taïc sau:
a. Giaím 4 chäø ngäöi coìn träúng trãn chuyãún bay 123 ngaìy 31 thaïng taïm
UPDATE FLIGHT
SET SEAT=SEAT-4
WHERE NUMBER=123 AND DATE=’AUG 31’
b. nháûp vaìo chuyãún bay 456 våïi 100 chäø ngäöi tæì haì näüi âi âaì nàông ngaìy 21 thaïng taïm
INSERT INTO FLIGHT
VALUE(456, ‘AUG 21’, ‘HANOI’, ‘DANANG’)

c. Tçm xem trong Cå Såí Dæî Liãûu coï bao nhiãu chäø ngäöi coìn träúng trong chuyãún bay säú
999 ngaìy 24 thaïng 7
SELECT SEAT
FROM FLIGHT
WHERE NUMBER=999AND DATE=’JUL 24’

Baìi soaûn män Cå såí dæî liãûu Nguyãùn Vàn Chæïc


Trang 6
Chæång 1. TÄØNG QUAN VÃÖ CÅ SÅÍ DÆÎ LIÃÛU
3. Ngän ngæî chuí
Caïc chè thë cuía caïc ngän ngæî thao taïc dæî liãûu thæåìng laì âån giaín hay noïi caïch khaïc laì
thæûc hiãûn nhæîng pheïp xæí lyï âån giaín, nhæng trong trong quaï trçnh thæûc hiãûn cäng viãûc
trãn Cå Såí Dæî Liãûu coï thãø phaíi xæí lyï caïc cäng viãûc phæïc taûp hån nhæ soaûn thaío vàn baín
baïo caïo , in áún ... vç váûy caïc Hãû quaín trë Cå Såí Dæî Liãûu cáön phaíi coï sæû häø tråü cuía caïc
ngän ngæî thuáûn tiãûn cho viãûc láûp trçnh nhæ C hay COBOL ... goüi laì caïc ngän ngæî chuí(
host language). Caïc lãûnh cuía DMLb âæåüc nhuïng vaìo ngän ngæî chuí theo hai caïch
a. Caïc lãûnh cuía DML âæåüc kêch hoaût bàòng viãûc goüi caïc thuí tuûc âæåüc cung cáúp båíi Hãû
quaín trë Cå Såí Dæî Liãûu
b. Caïc lãûnh naìy laì caïc chè thë trong ngän ngæî chuí âæåüc måí räüng

Baìi soaûn män Cå såí dæî liãûu Nguyãùn Vàn Chæïc


Trang 7

You might also like