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
Một mặt đĩa chia thành nhiều track, 1 track chia thành nhiều
6
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
type deposit = record
account-number: char(10);
branch-name: char(22);
balance: real;
end
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…
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
17
Thời gian sau cùng truy xuất block
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)
0 1
10 11
32 33 40
1 A-102 Perryridg 400
e
1 A-215
Mianus
700
1 A-222 Redwood 700
1 A-217 Brighton 750
1 A-218 Perryridg 700
e
0
18
41
1
1
1
1
0
0
A-305
A-101
A-201
A-110
Round
Hill
Downtow
n
Perryridg
e
Downtow
n
350
500
900
600
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
1
0
1
0
1
0
19
A-102
A-215
A-222
A-217
A-218
Perryridg
e
Mianus
Redwood
Brighton
Perryridg
e
400
700
700
750
700
1
1
1
1
0
0
A-305
A-101
A-201
A-110
A-111
Round
Hill
Downtow
n
Perryridg
e
Downtow
n
Redwood
350
500
900
600
800
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
FH
1
A-102
Perryridge
400
1
A-305
Round Hill
350
1
A-111
Downtown
700
1
A-101
Downtown
500
1
A-222
Redwood
700
1
A-201
Perryridge
900
0
A-217
Brighton
750
1
A-110
Downtown
600
1
A-218
Perryridge
700
0
0
Tìm kiếm
Quét tuần tự trên tập tin
20
0
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
400
A-201
Round Hill
A-305
350
-
Downtown
A-101
500
A-110
Mianus
A-215
700
-
Redwood
21
A-102
A-222
700
-
900
A-218
Brighton
600
A-217
-
700
750
-
-
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
400
A-201
Round Hill
A-305
350
-
Downtown
A-101
500
A-110
Mianus
A-215
700
-
Redwood
22
A-102
A-222
700
-
900
A-218
Brighton
600
A-217
-
700
750
-
-
Mẫu tin có chiều dài động (tt)
Byte-String Representation
Tốn nhiều chi phí khi chiều dài mẫu tin thay đổi
Perryridge
400
A-201
Round Hill
A-305
350
A-202 Brighton
950
Downtown
A-101
500
A-110
Mianus
A-215
700
-
Redwood
23
A-102
900
A-222
700
-
600
A-218
A-217
-
700
750
-
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
24
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
Round
Hill
Mianus
Downtow
n
Redwood
Brighton
A-102
A-305
A-215
A-101
A-222
A-217
400
350
700
500
700
750
A-201
900
A-110
600
A-218
700
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 accountinfo
o Overflow block – Chứa các
mẫu tin tiếp theo của mảng
account-info
25
Anchor block
Perryridge
A-102
400
Round Hill
A-305
350
Mianus
A-215
700
Downtown
A-101
500
Redwood
A-222
700
Brighton
A-217
750
A-201
900
A-218
700
A-110
600
Overflow block