Giới thiệu
Đĩa (magnetic disk)
Mẫu tin (record)
Sắp xếp các mẫu tin vào block
Tổ chức mẫu tin trên tập tin
41 trang |
Chia sẻ: NamTDH | Lượt xem: 1327 | Lượt tải: 0
Bạn đang xem trước 20 trang nội dung tài liệu Cấu trúc lưu trữ và phương pháp truy xuất, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
Chương V. Cấu trúc lưu trữ
và phương pháp truy xuất
1
Nội dung
Giới thiệu
Đĩa (magnetic disk)
Mẫu tin (record)
Sắp xếp các mẫu tin vào block
Tổ chức mẫu tin trên tập tin
2
Giới thiệu (tt)
Phân cấp lưu trữ
Bộ nhớ chính
Dữ liệu hiện hành
Đĩa
CSDL chính thức
Băng từ (tape) hay đĩa quang (optical disk)
Phiên bản cũ của CSDL
3
Đĩa (Disk)
4
5
Quản lý đĩa
6
Một mặt đĩa chia thành nhiều track, 1 track chia thành nhiều
block(page). 1 cluster = n block.
Dùng đĩa từ (magnetic disk) để lưu CSDL vì:
Khối lương lưu trữ lớn.
Lưu một cách bền bỉ, lâu dài, phục vị truy cập và xử lý lặp lại.
Chi phí rẻ.
Dữ liệu trên đĩa phải được chép vào bộ nhớ chính khi cần xử lý.
Nếu dữ liệu này có thay đổi thì sẽ được ghi trở lại vào đĩa.
Bộ điều khiển đĩa(Disk controller - DC): giao tiếp giữa ổ đĩa và
máy tính, nhận lệnh I/O, định vị đầu đọc và làm cho hành động
R/W diễn ra.
Block cũng là đơn vị để lưu trữ và chuyển dữ liệu.
Lưu tập tin trên đĩa
7
Mục đích
8
Mẩu tin
9
Tập tin
10
Tập tin (tt)
11
Tập tin (tt)
12
Lưu mẩu tin vào block
13
Tổ chức file block trên đĩa
14
Thao tác trên file
15
Mẫu tin có chiều dài cố định
Xét 1 tập tin gồm các mẫu tin account
Giả sử
1 char : 1 byte
Real : 8 bytes
1 mẫu tin account : 40 bytes
40 bytes đầu tiên là mẫu tin thứ 1
40 bytes tiếp theo là mẫu tin thứ 2…
type deposit = record
account-number: char(10);
branch-name: char(22);
balance: real;
end
16
Mẫu tin có chiều dài cố định (tt)
Record header
Lược đồ của mẫu tin
Chiều dài của mẫu tin
Thời gian sau cùng cập nhật mẫu tin
Không nhất thiết để các thông tin này ở record header
Block header
Con trỏ nối các block có liên quan với nhau
Thông tin về mối quan hệ giữa các mẫu tin trong block
Block ID
Thời gian sau cùng truy xuất block
17
Mẫu tin có chiều dài cố định (tt)
Ví dụ
Mỗi mẫu tin có thêm 1 bit
=0: Xóa
=1: Đang dùng
Danh sách các mẫu tin trống (free list)
Perryridg
e
1 A-102 400 1 A-305 Round
Hill
350
Mianus1 A-215 700 Downtow
n
1 A-101 500
Redwood1 A-222 700 Perryridg
e
1 A-201 900
Brighton1 A-217 750 Downtow
n
1 A-110 600
Perryridg
e
1 A-218 700 0
0 0
0 411 10 11 32 33 40
18
Mẫu tin có chiều dài cố định (tt)
Hủy mẫu tin
Đánh dấu xóa vào bit thông tin
Đưa mẫu tin bị đánh dấu xóa vào free list
F
H Perryridg
e
1 A-102 400 1 A-305 Round
Hill
350
Mianus0 A-215 700 Downtow
n
1 A-101 500
Redwood1 A-222 700 Perryridg
e
1 A-201 900
Brighton0 A-217 750 Downtow
n
1 A-110 600
Perryridg
e
1 A-218 700 0
0 0
800A-111 Redwood
19
Mẫu tin có chiều dài cố định (tt)
Thêm một mẫu tin
Hoặc thêm vào những mẫu tin bị đánh dấu xóa hoặc thêm vào cuối
tập tin
Cập nhật lại free list
Tìm kiếm
Quét tuần tự trên tập tin
FH
Perryridge1 A-102 400 1 A-305 Round Hill 350
Downtown1 A-111 700 Downtown1 A-101 500
Redwood1 A-222 700 Perryridge1 A-201 900
Brighton0 A-217 750 Downtown1 A-110 600
Perryridge1 A-218 700 0
0 0
20
Mẫu tin có chiều dài động
Byte-String Representation
Cuối mỗi mẫu tin có 1 byte ký tự đặc biệt cho biết kết thúc
mẫu tin
Perryridge -A-102 400
-
A-305Round Hill 350
Mianus
-
A-215 700
Downtown A-101 500
Redwood
-
A-222 700
A-201 900
Brighton
-
A-217 750
A-110 600
-
A-218 700
21
Mẫu tin có chiều dài động (tt)
Byte-String Representation
Sử dụng lại không gian trống sau khi xóa 1 mẫu tin không
hiệu quả
Dẫn đến tình trạng phân mãnh
Perryridge -A-102 400
-
A-305Round Hill 350
Mianus
-
A-215 700
Downtown A-101 500
Redwood
-
A-222 700
A-201 900
Brighton
-
A-217 750
A-110 600
-
A-218 700
22
Mẫu tin có chiều dài động (tt)
A-202 950
Byte-String Representation
Tốn nhiều chi phí khi chiều dài mẫu tin thay đổi
-
Perryridge -A-102 400
A-305Round Hill 350
A-201 900 A-218 700
Brighton A-217 750 -
-
Mianus A-215 700
Downtown A-101 500
Redwood
-
A-222 700 -
A-110 600
23
Mẫu tin có chiều dài động (tt)
Fixed-Length Representation
Sử dụng 1 hay nhiều mẫu tin có chiều dài cố định biểu diễn
cho những mẫu tin có chiều dài động
Có 2 kỹ thuật
Reserved space
Sử dùng độ dài lớn nhất của 1 mẫu tin nào đó cài đặt cho tất cả
các mẫu tin còn lại
Độ dài này phải đảm bảo không bao giờ dài thêm được nữa
Perryridg
e
A-102 400
A-305Round
Hill
350
Mianus A-215 700
Downtow
n
A-101 500
Redwood A-222 700
A-201 900
Brighton A-217 750
A-110 600
A-218 700
24
Mẫu tin có chiều dài động (tt)
Fixed-Length Representation
Pointer
Các mẫu tin có chiều dài động
móc xích với nhau thông qua
danh sách các mẫu tin có chiều
dài cố định
Có 2 loại blocks trong tập tin
o Anchor block – Chứa mẫu tin
đầu tiên của mảng account-
info
o Overflow block – Chứa các
mẫu tin tiếp theo của mảng
account-info
Perryridge A-102 400
A-305Round Hill 350
Mianus A-215 700
Downtown A-101 500
Redwood A-222 700
Brighton A-217 750
A-201 900
A-110 600
A-218 700
Anchor block
Overflow block
25
Tổ chức mẫu tin trên tập tin
Cho 1 tập các mẫu tin
Tổ chức các mẫu tin trên tập tin như thế nào?
Sequential
Clustering
Indexing
Hashing
B-Tree
26
Tuần tự (Sequential)
Các mẫu tin được tổ chức lưu trữ tuần tự theo 1 thứ tự nào
đó, thông thường theo trường khóa tìm kiếm (search-key)
Khóa tìm kiếm không nhất thiết là khóa chính hay siêu khóa
Mỗi mẫu tin có 1 con trỏ trỏ
đến mẫu tin khác theo thứ tự
khóa tìm kiếm
27
Tuần tự (tt)
Xóa mẫu tin
Sử dụng danh sách các con trỏ trỏ đến vùng trống
Thêm mẫu tin
Tìm vị trí thích hợp trên tập tin
Nếu có vị trí trống trong cùng 1
block thì thêm vào
Ngược lại sẽ thêm vào vùng
overflow block
Cập nhật lại con trỏ theo đúng thứ
tự của khóa tìm kiếm
28
Tuần tự (tt)
Nhận xét
Giảm tối thiểu khối lượng block cần đọc khi truy
xuất tập tin
Tốn nhiều chi phí di chuyển các mẫu tin sau khi thêm
hoặc xóa 1 mẫu tin
Phải tổ chức lại tập tin theo thứ tự khóa tìm kiếm sau mỗi
lần thêm hoặc xóa
29
Clustering
Xét 2 quan hệ depositor và customer
Thực hiện câu truy vấn
Nếu các bộ của quan hệ depositor và customer nằm gần nhau
trong tập tin thì câu truy vấn sẽ được thực hiện 1 cách hiệu
quả
Khi 1 bộ của customer được đọc thì nguyên cả khối chứa bộ
này cũng được đưa vào bộ nhớ chính
Lúc đó các bộ của depositor có liên quan đến customer đã có
sẳn và được xử lý ngay
select account-number, customer-name, customer-street, customer-city
from depositor, customer
where depositor.customer-name=customer.customer-name
30
Clustering (tt)
Tổ chức clustering lưu trữ các mẫu tin tương ứng của 2 hay
nhiều quan hệ trong cùng 1 block
Nhận xét
Có hiệu quả khi truy vấn có phép
kết
Chưa thật sự tốt nếu truy vấn trên
1 quan hệ
Một block có nhiều loại mẫu tin
31
Chỉ mục (Indexing)
Chỉ mục được dùng để truy xuất dữ liệu nhanh hơn
Một tập tin dữ liệu sẽ có 1 hoặc nhiều tập tin chỉ mục kèm
theo
Tập tin chỉ mục gồm
Tập tin chỉ mục sẽ nhỏ hơn rất nhiều so với tập tin dữ liệu ban
đầu
Tập tin chỉ mục được sắp xếp thứ tự theo khóa tìm kiếm
pointersearch-key
32
Chỉ mục (tt)
Nếu 1 tập tin chứa các mẫu tin đã được sắp thứ tự
Chỉ mục sơ cấp (Primary index)
Là chỉ mục có khóa tìm kiếm định nghĩa ra thứ tự sắp xếp
các mẫu tin của tập tin gốc
Còn được gọi là clustering index
Chỉ mục thứ cấp (Secondary index)
Là chỉ mục có khóa tìm kiếm đưa ra 1 thứ tự sắp xếp khác với
thứ tự tuần tự của tập tin gốc
Còn được gọi là nonclustering index
33
Chỉ mục (tt)
Chỉ mục dày (Dense index)
Tập tin gốc có bao nhiêu mẫu tin thì tập tin chỉ mục có bấy
nhiêu
34
Chỉ mục (tt)
Chỉ mục thưa (Sparse index)
Tập tin chỉ mục chỉ lưu lại 1 số khóa của tập tin gốc
Để xác định vị trí của 1 khóa k
Tìm trong tập tin chỉ mục khóa lớn nhất nhưng vẫn bé hơn k
Tìm trong tập tin gốc bắt đầu từ địa chỉ vừa xác định trong tập tin chỉ mục
35
Băm (hashing)
Chia các mẫu tin trong tập tin thành từng
vùng (bucket) tùy theo giá trị khóa của mẫu
tin
Mẫu tin thuộc về vùng nào tùy thuộc vào hàm
băm được áp dụng trên mẫu tin đó
Sử dụng hàm băm để xác định vị trí của mẫu tin
Các mẫu tin có khóa khác nhau có thể được
băm vào cùng 1 vùng, vì vậy cần phải tìm
tuần tự trên vùng để định vị mẫu tin
36
Băm (tt)
Xét 1 tập tin gồm các mẫu tin account có trường branch-name là
khóa
Giả sử
10 vùng
Thứ tự thứ i của các ký tự trong bảng chữ cái là các số
nguyên i
Hàm băm sum(các ký tự) modulo 10
h(Perryridge) = 5
h(Round Hill) = 3
h(Brighton) = 3
37
38
Băm (tt)
Các vùng có thể xãy ra hiện tượng tràn khi
Không đủ kích thước
Phân phối mẫu tin vào các vùng không cân xứng
Có nhiều mẫu tin trùng giá trị khóa
Hàm băm cho ra kết quả băm không tốt
Vấn đề tràn vùng được giải
quyết bằng cách sử dụng
thêm các vùng tràn (overflow
buckets)
39
Cây cân bằng (B-Tree)
B-Tree là 1 cây có gốc thỏa điều kiện
Tất cả các đường đi từ nút gốc đến đến nút là đều bằng
nhau
Ngoại trừ nút gốc, mỗi nút có từ n/2 đến n cây con
n là bậc của cây
Nút lá có từ (n-1)/2 đến n-1 khóa
Cấu trúc 1 nút
Khóa tìm kiếm trên 1 nút được sắp thứ tự tăng dần
K1 < K2 < K3 < . . . < Kn–1
40
Cây cân bằng (tt)
41
Các file đính kèm theo tài liệu này:
- chuong_v_3869.pdf