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... Mẫu tin có chiều dài cố định tt Record header Lược đồ của
Trang 1Chương V Cấu trúc lưu trữ
và phương pháp truy xuất
1
Trang 2Nộ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
Trang 4Đĩa (Disk)
4
Trang 6Quả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.
Block cũng là đơn vị để lưu trữ và chuyển dữ liệu.
Trang 7Lưu tập tin trên đĩa
7
Trang 8Mục đích
8
Trang 9Mẩu tin
9
Trang 10Tập tin
10
Trang 11Tập tin (tt)
11
Trang 12Tập tin (tt)
12
Trang 13Lưu mẩu tin vào block
13
Trang 14Tổ chức file block trên đĩa
14
Trang 15Thao tác trên file
15
Trang 16Mẫ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
Trang 17Mẫ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
Trang 18Mẫu tin có chiều dài cố định (tt)
Hill
350 Mianus
0 1 10 11 32 33 40 41
18
Trang 19Mẫ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
800 A-111 Redwood
19
Trang 20Mẫ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
Trang 21Mẫu tin có chiều dài động
-A-218 700
21
Trang 22Mẫu tin có chiều dài động (tt)
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
Trang 23Mẫu tin có chiều dài động (tt)
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
Trang 24Mẫu tin có chiều dài động (tt)
A-102 400 A-305
Round Hill
350 Mianus A-215 700 Downtow
n
A-101 500 Redwood A-222 700
Trang 25Mẫ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
A-201 900 A-110 600 A-218 700
Anchor block
Overflow block
25
Trang 26Tổ 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?
Trang 27Tuầ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
Trang 28block 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
Trang 30 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
Trang 32Chỉ 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
32
Trang 33Chỉ 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
Trang 34Chỉ 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
Trang 35Chỉ 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
Trang 36Bă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
Trang 3838
Trang 39Bă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
Trang 40Câ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
Trang 41Cây cân bằng (tt)
41