1/30/2012
1
T chc d liu vt lýT chc d liu vt lý
Ng nNg n
HngHng
PhươngPhương
1
Ng
uy
nNg
uy
n
HngHng
PhươngPhương
phuongnh@soict.hut.edu.vnphuongnh@soict.hut.edu.vn
http://is.hut.edu.vn/~phuongnhhttp://is.hut.edu.vn/~phuongnh
BBmônmôn HHthngthng thôngthông tintin
VinVinCôngCông nghnghthôngthông tin tin và TruynTruyn thôngthông
ĐạiĐạihchcBáchBách KhoaKhoa NiNi
Ni dungNi dung
1. Mô hình t chc b nh ngoài
•2. T chc tp đống
•3. T chc tp băm
•4. T
c
h
c
tp
c
h
d
n
2
cctpc d
•5. Cây cân bng
1. Mô hình t chc b nh ngoài1. Mô hình t chc b nh ngoài
•B nh ngoài (b nh th cp): đĩa t, băng
t,...
3
Đĩa được chia thành các khi vt lý (sector) -
512 byte đến 4096 byte được đánh địa ch
khi gi là địa ch tuyt đối
•Mi tp d liu chiếm 1 hoc nhiu khi
•Mi khi cha 1 hoc nhiu bn ghi
1. Mô hình t chc b nh ngoài1. Mô hình t chc b nh ngoài
•Thao tác vi d liu ca tp thông qua
địa ch tuyt đối ca các khi.
•Các bn ghi đều có địa ch:
địa ch tuyt đối ca byte đầu tiên
4
địa ch khi và s byte tính t đầu khi
đến v trí đầu bn ghi
Địa ch ca các bn ghi/khi được lưu
1 tp => s dng con tr (pointer) để
truy cp d liu ca tp.
2. T chc tp đống (Heap file)2. T chc tp đống (Heap file)
•T chc d liu
–Bn ghi lưu tr kế tiếp trong các khi,
không tuân theo mt th t đặc bit nào.
k1 k2 k3
k4 k5 k6
k7 k8
5
Các thao tác
–Tìm kiếm mt bn ghi: tìm kiếm mt bn
ghi có giá tr khóa cho trước => quét toàn
b tp.
–Thêm mt bn ghi: thêm bn ghi mi vào
sau bn ghi cui cùng
2. T chc tp đống (Heap file)2. T chc tp đống (Heap file)
Các thao tác (tiếp)
–Xóa mt bn ghi: thao tác xóa bao hàm
thao tác tìm kiếm. Nếu có bn ghi cn xóa
thì nó s được đánh du là xóa => h
thng cn t chc li đĩa định k.
6
thng cn t chc li đĩa định k.
–Sa mt bn ghi: tìm bn ghi ri sa mt
hay nhiu trường.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
1/30/2012
2
2. T chc tp đống (Heap file)2. T chc tp đống (Heap file)
Ví d:
Thêm
bn ghi
g
iá tr
7
g
khóa là
32
Xóa bn
ghi có giá
tr khóa
là 64
3. T chc tp băm (Hashed files)3. T chc tp băm (Hashed files)
•Hàm băm: h(x) nhn mt giá tr trong
đon [0,k], ví d: h(x)=x mod k
•T chc tp d liu
Phân chia các bn ghi vào các cm.
Mi cm gm mt hoc nhiu khi
8
Mi cm gm mt hoc nhiu khi
.
–Mi khi cha s lượng bn ghi c định.
–T chc lu tr d liu trong mi cm áp
dng theo t chc đống
Tiêu chí chn hàm băm: phân b các
bn ghi tương đối đồng đều theo các
cm.
3. T chc tp băm (Hashed files)3. T chc tp băm (Hashed files)
9
3. T chc tp băm (Hashed files)3. T chc tp băm (Hashed files)
1
2
4
3Store hash
h(x) = x mod 5
10
1
1
2
2
3
3
4
4
0
3. T chc tp băm (Hashed files)3. T chc tp băm (Hashed files)
12
10
17
18 Store hash
h(x) = x mod 5
11
1
1
2
2
3
3
4
4
0
12
10
17
18
3. T chc tp băm (Hashed files)3. T chc tp băm (Hashed files)
Các thao tác
–Tìm kiếm mt bn ghi: để tìm bn ghi có
khóa x, tính h(x) s được cm cha bn
ghi, sau đó tìm kiếm theo t chc đống.
12
tr khóa là x.
•nếu trong tp đã có mt bn ghi có trùng khóa
x =>bn ghi mi sai (vì khóa là duy nht!)
•nếu không có bn ghi trùng khóa, bn ghi được
thêm vào khi còn ch trng đầu tiên trong
cm, nếu hết ch thì to khi mi.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
1/30/2012
3
3. T chc tp băm (Hashed files)3. T chc tp băm (Hashed files)
–Xóa mt bn ghi: tìm kiếm bn ghi ri xóa
–Sa đổi mt bn ghi:
•nếu trường cn sa có tham gia vào trong khóa
thì vic sa s là loi b bn ghi này và thêm
mi 1 bn ghi (bn ghi có th thuc vào 1 cm
13
khác)
•nếu trường cn sa không thuc khóa: tìm
kiếm ri sa. Nếu bn ghi không tn ti thì
xem như có li.
4. T chc tp ch dn(Indexed Files)4. T chc tp ch dn(Indexed Files)
•Gi s giá tr các khóa ca các bn ghi được
sp xếp tăng dn.
•Tp ch dn được to bng cách chn các giá
tr khóa trong các bn ghi
•Tp ch dn bao gm các cp (k,d), trong đó
k là
g
iá tr
khoá ca bn
g
hi đầu tiên
,
d là
14
gg ,
địa ch ca khi (hay con tr khi).
4. T chc tp ch dn(Indexed Files)4. T chc tp ch dn(Indexed Files)
•Tìm kiếm trên tp ch dn
–Cho mt giá tr khóa ki, tìm mt bn ghi
(km,d) trong tp ch dn sao cho km<=ki
và:
•hoc (km,d) là bn ghi cui cùng trong tp ch
d
15
d
n
•hoc bn ghi tiếp theo (km+1,d') tha mãn
ki<km+1
–Khi đó, chúng ta nói kmph ki
–Tìm kiếm này có th là:
•tun t
•nh phân
4. T chc tp ch dn(Indexed Files)4. T chc tp ch dn(Indexed Files)
Các thao tác
–Tìm kiếm mt bn ghi
–Thêm mt bn ghi: xác định khi i s cha bn
ghi đó
•nếu trong khi i còn ch thì đặt bn ghi này vào đúng
ch theo th t sp xếp ca khóa dn toa các bn ghi
16
ch theo th t sp xếp ca khóa
,
dn toa các bn ghi
đằng sau nó.
•nếu khi i hết ch thì vic thêm này s đẩy bn ghi cui
cùng trong khi sang làm bn ghi đầu tiên ca khi tiếp
theo i+1 => sa bn ghi ch dn tương ng
•nếu bn ghi mi này có giá tr khóa ln hơn tt c mi
khóa trong tp d liu chính và không còn ch thì to
thêm mt khi mi.
4. T chc tp ch dn(Indexed Files)4. T chc tp ch dn(Indexed Files)
–Xóa mt bn ghi: ging như thêm mt bn
ghi, nếu xóa mà to thành 1 khi rng, khi
đó có th loi b c khi đó.
–Sa mt bn ghi:
S dng th tc tìm kiếm để xác định bn ghi
17
S dng th tc tìm kiếm để xác định bn ghi
cn sa
•nếu các trường cn sa không phi là khóa thì
sa bình thường
•nếu các trường cn sa tham gia vào khóa thì
quá trình sa s là quá trình thêm và xóa 1
bn ghi.
5. Cây cân bng(Balanced5. Cây cân bng(Balanced--trees)trees)
B-tree được t chc theo cp m, có các
tính cht sau đây:
–Gc ca cây hoc là mt nút lá hoc ít
nht có hai con.
Mi nút (tr nút gc và nút lá) có t [m/2]
18
Mi nút (tr nút gc và nút lá) có t [m/2]
đến m con.
–Mi đường đi t nút gc đến bt k nút lá
nào đều có độ dài như nhau.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
1/30/2012
4
5. Cây cân bng(Balanced5. Cây cân bng(Balanced--trees)trees)
19
•Cu trúc ca mi nút trong B-cây có dng
(p0, k1, p1, k2,...,kn, pn) vi pi(i=1..n) là con
tr tr ti khi i ca nút có kilà khoá đầu
tiên ca khi đó. Các khoá k trong mt nút
được sp xếp theo th ttăng dn.
5. Cây cân bng(Balanced5. Cây cân bng(Balanced--trees)trees)
•Mi khoá trong cây con, tr bi con tr
p0đều nh hơn k1;
•Mi khoá trong cây con, tr bi con tr
piđều nh hơn ki+1.
20
•Mi khoá trong cây con, tr bi con tr
pnđều ln hơn kn.
5. Cây cân bng(Balanced5. Cây cân bng(Balanced--trees)trees)
Các thao tác
–Tìm kiếm mt bn ghi: xác định đường
dn t nút gc ti nút lá cha bn ghi này
–Thêm mt bn ghi:
•Xác định v trí nút s cha bn
g
hi này (như
21
g
tìm kiếm)
•Nếu còn ch thì thêm bình thường
•Nếu hết ch thì phi to thêm nút lá mi,
chuyn na d liu cui ca nút lá hin ti
sang nút mi, sau đó thêm bn ghi mi này
vào v trí phù hp nút lá hin ti hoc nút mi
to
•Rt có kh năng “động chm” đến nút
cha,….nút gc.
5. Cây cân bng(Balanced5. Cây cân bng(Balanced--trees)trees)
–Loi b 1 bn ghi:
Dùng th tc tìm kiếm mt bn ghi để xác định
nút L có th cha bn ghi đó.
•Rt có kh năng “động chm” đến nút
cha,…,nút gc.
22
Kết lunKết lun
•T chc tp ch dn:
được áp dng ph biến
–Vi các ng dng yêu cu c x tun ttruy
nhp trc tiếp đến các bn ghi
–Hiu năng s gim khi kích thước tp tăng =>ch
23
d
n B-cây
•T chc băm:
–Da trên 1 hàm băm, cho phép tìm thy địa ch
khon mc d liu mt cách trc tiếp
–Hàm băm tt? Phân b các bn ghi đồng đều
trong các cm
24
CuuDuongThanCong.com https://fb.com/tailieudientucntt
1/30/2012
5
Li hay ý đẹpLi hay ý đẹp
Bn cht ca tình bn chân tht là
khoan dung vi nhng li nh ca bn
25
David Storey
CuuDuongThanCong.com https://fb.com/tailieudientucntt