Professional Documents
Culture Documents
3.data Management
3.data Management
QUẢN LÝ DỮ LIỆU
NỘI DUNG
• Thiết bị lưu trữ
• Phân loại
• Truy cập dữ liệu
• Tổ chức tệp dữ liệu
• Chỉ mục - Indexing
• Khái niệm
• Một số chỉ mục đơn mức
• Chỉ mục nhiều mức
• Chỉ mục động nhiều mức sử dụng B-Tree và B+-
Tree
Lưu trữ dữ liệu
• Vấn đề quan trọng trong DBMS, ảnh hưởng đến hiệu năng
của toàn bộ DBMS
• Sử dụng chiến thuật phân cấp bộ nhớ với ba tham số: dung
lượng, tốc độ và chi phí
Phân lớp thiết bị lưu trữ
Thiết bị lưu trữ dữ liệu
• Việc lưu trữ dữ liệu thường hay sử dụng thiết bị lưu trữ thứ cấp
để có được dung lượng lớn/chi phí nhỏ.
• Với các loại ổ đĩa cứng (hard-disk), dữ liệu được lưu trên
những vùng từ trên các mặt đĩa từ.
Sector Gap
Terms: Platter, Head,
Cylinder, Track,
Sector (physical),
Block (logical), Gap
Hard-disks
• Cylinder => Track => Sector
• Mỗi platter có khoảng 50-100K tracks
• Mỗi track có khoảng 500 – 1000 sectors
• Kích thước sector thường là 512B
• Block = tập các sectors mà OS có thể đọc/ghi đồng thời
• Kích thước block B cố định đối với mỗi OS, từ 4KB đến 16KB
• Tương tác disk main memory dựa trên việc chuyển dời các blocks.
• Truy xuất dữ liệu từ ổ đĩa được thực hiện thông qua Disk
Controler
...
= 25 + (16.66/2) + .117 = 33.45 ms
Ví dụ
• Giả sử DBMS sẽ xử lý dữ liệu theo block có kích thước 4KB, 1
block chứa được 10 bộ kích thước 100B. Xác định thời gian
đọc bảng dữ liệu chứa 1 triệu bộ?
Ví dụ
• Giả sử DBMS sẽ xử lý dữ liệu theo block có kích thước 4KB, 1
block chứa được 10 bộ kích thước 100B. Xác định thời gian đọc
bảng dữ liệu chứa 1 triệu bộ?
1 2 3 4 ...
1 block
T4 = 25 + (16.66/2) + (.117) x 1 + (.130) X 3 = 33.83ms
[trong khi T1 đã là 33.45 ms]
• DAS
• NAS
• SAN
DAS
NAS
SAN
Storage Area Networks
• Nhu cầu lưu trữ dữ liệu quy mô lớn ngày càng tăng (bank,
finance, facebook, google, flick, …).
• SAN là một trong những giải pháp lưu trữ cho các hệ quản trị
CSDL lớn
• Mỗi thiết bị lưu trữ được cấu hình như một nốt trong mạng tốc độ dao,
có thể kích hoạt/dừng tuỳ theo nhu cầu
• Tách biệt hệ thống lưu trữ và hệ thống xử lý dữ liệu, tạo sự linh động
về hiệu năng và khả năng kết nối.
SAN
• Ưu điểm của SANs :
• Cho phép kết nối nhiều-nhiều mềm dẻo giữa các thiết bị
lưu trữ và servers thông qua mạng quang (thông lượng
lớn).
• Tách biệt thiết bị lưu trữ và hệ thống tính toán, có thể
cách xa nhau hàng 10km nếu sử dụng các quang.
• Cho phép nâng cấp/hiệu chỉnh năng lực lưu trữ độc lập
(on fly) với các hệ thống tính toán.
• Nhược:
• Vấn đề tích hợp các thiết bị từ nhiều nhà sản xuất khác
nhau, nhiều chuẩn khác nhau.
• Chi phí còn tương đối cao.
Nội dung
• Thiết bị lưu trữ
• Phân loại
• Truy cập dữ liệu
• Tổ chức tệp dữ liệu
• Chỉ mục - Indexing
• Khái niệm
• Một số chỉ mục đơn mức
• Chỉ mục nhiều mức
• Chỉ mục động nhiều mức sử dụng cây B-Tree và
B+-Tree
• CSDL được lưu trữ được một tập các tệp - files
• Mỗi tệp được tổ chức dưới dạng chuỗi các bản ghi – records
• Mỗi bản ghi là một tập các trường dữ liệu - fields.
Files or Records
• File descriptor (file header): chứa thông tin miêu tả
tệp, như tên và kiểu dữ liệu các trường , địa chỉ các
blocks trên đĩa …
• Các bản ghi được lưu trữ trên các disk blocks
• blocking factor bfr: số records trung bình được lưu trữ trên
1 disk block
• Tệp CSDL có thể được tổ chức từ các bản ghi kích
thước cố định hoặc thay đổi
• Bản ghi có thể ở dạng unspanned hoặc spanned
• Unspanned: không cho phép lưu trữ trên 2 blocks
• Spanned: cho phép lưu trữ nhiều hơn 1 block
Files or Records
• Các khối đĩa vật lý có thể được cấp phát liên tục, liên kết
hoặc được đánh chỉ mục để lưu trữ các bản ghi
• Với tệp CSDL kiểu bản ghi độ dài cố định, các bản ghi
có cùng khuôn dạng và thường là unspanned record.
• Tệp CSDL kiểu bản ghi độ dài thay đổi, cần lưu thông
tin bổ xung kèm theo mỗi bản ghi như đặc trưng phân
cách, kiểu trường, …. Thường dạng spanned record
được sử dụng với kiểu tệp này
• Các tệp CSDL có thể được tổ chức dưới dạng chuỗi có
thứ tự (ordered file, hay sequential file) hay không có
thứ tự (unordered file, hay heap/pile file) các bản ghi
Các thao tác trên tệp CSDL
• Đặc điểm:
• Phép chèn được thực hiện đơn giản.
• Việc tìm kiếm trung bình cao, ½ số khối, với kỹ thuật tìm
kiếm tuần tự.
• Phép đọc bản ghi tương đương với phép tìm kiếm tuần tự
Ordered Files
• Các bản ghi trong tệp được lưu trữ
xếp theo thứ tự của một trường
ordering field.
• Đặc điểm:
• Phép chèn (Insertion): phức tạp vì bản
ghi phải được chèn vào đúng vị trí.
• Có thể sử dụng phương pháp chèn ngẫu nhiên rồi
sắp xếp sau (giao tác khác, tệp khác).
• Cho phép tìm kiếm kiểu nhị phân trên
trường ordering field, độ phức tạp là
log2 số bản ghi.
• Phép đọc bản ghi sẽ được thi hành hiệu
quả.
Thời gian truy cập trung bình
Hashed Files
• Hashing for disk files is called External Hashing
• The file blocks are divided into M equal-sized buckets,
numbered bucket0, bucket1, ..., bucketM-1.
• Typically, a bucket corresponds to one (or a fixed number of) disk
block.
• One of the file fields is designated to be the hash key of the
file.
• The record with hash key value K is stored in bucket i, where
i=h(K), and h is the hashing function.
• Search is very efficient on the hash key.
• Collisions occur when a new record hashes to a bucket that is
already full.
• An overflow file is kept for storing such records.
• Overflow records that hash to each bucket can be linked together.
Hashed Files
• There are numerous methods for collision resolution, including the
following:
• Open addressing: Proceeding from the occupied position specified by
the hash address, the program checks the subsequent positions in order
until an unused (empty) position is found.
• Chaining: For this method, various overflow locations are kept, usually
by extending the array with a number of overflow positions. In addition,
a pointer field is added to each record location. A collision is resolved by
placing the new record in an unused overflow location and setting the
pointer of the occupied hash address location to the address of that
overflow location.
• Multiple hashing: The program applies a second hash function if the
first results in a collision. If another collision results, the program uses
open addressing or applies a third hash function and then uses open
addressing if necessary.
Hashed Files
Hashed Files
• To reduce overflow records, a hash file is typically kept
70-80% full.
• The hash function h should distribute the records
uniformly among the buckets
• Otherwise, search time will be increased because many
overflow records will exist.
• Main disadvantages of static external hashing:
• Fixed number of buckets M is a problem if the number
of records in the file grows or shrinks.
• Ordered access on the hash key is quite inefficient
(requires sorting the records).
Hashed Files - Overflow handling
Dynamic And Extendible Hashed Files
• Dynamic and Extendible Hashing Techniques
• Hashing techniques are adapted to allow the dynamic
growth and shrinking of the number of file records.
• These techniques include the following: dynamic hashing,
extendible hashing, and linear hashing.
• Both dynamic and extendible hashing use the binary
representation of the hash value h(K) in order to
access a directory.
• In dynamic hashing the directory is a binary tree.
• In extendible hashing the directory is an array of size 2d
where d is called the global depth.
Dynamic And Extendible Hashing
• The directories can be stored on disk, and they
expand or shrink dynamically.
• Directory entries point to the disk blocks that contain the
stored records.
• An insertion in a disk block that is full causes the
block to split into two blocks and the records are
redistributed among the two blocks.
• The directory is updated appropriately.
• Dynamic and extendible hashing do not require an
overflow area.
• Linear hashing does require an overflow area but
does not use a directory.
• Blocks are split in linear order as the file expands.
Extendible Hashing
Nội dung
• Thiết bị lưu trữ
• Phân loại
• Truy cập dữ liệu
• Tổ chức tệp dữ liệu
• Chỉ mục - Indexing
• Khái niệm
• Một số chỉ mục đơn mức
• Chỉ mục nhiều mức
• Chỉ mục động nhiều mức sử dụng cây B-Tree và B+-Tree
SELECT *
FROM Employee
WHERE Name = “Bob”
Giải pháp 1: Full Table Scan
•Storage:
• Employee được sắp xếp theo thuộc tính Name
•Query plan:
• Binary search
Giải pháp 2
•Chi phí:
•Kích thước block: 1024 bytes
•Số bản ghi/block: 1024 / 100 = 10
•Tổng số blocks: 10 M / 10 = 1 M
•Số lượng block cần truy cập với binary
search: 20
•Tổng thời gian: 20 ms x 20 = 400 ms
Giải pháp 2: Các vấn đề khác
• Điều kiện lọc trên các thuộc tính không được sắp xếp, chẳng
hạn:
SELECT *
FROM Employee
WHERE Dept = “Sales”
• Insert và Delete
???
Indexes
• Định nghĩa: là một cấu trúc dữ liệu đặc biệt, giúp việc
truy vấn dữ liệu trong database được thực hiện hiệu
quả hơn.
• Việc lưu trữ trên thiết bị lưu trữ phải đảm bảo
• Dữ liệu phù hợp để có thể tải vào buffer
• Bền vững
A B
a1 a1 b1
a2 a2 b2
A = val
A > low ai ai bi
A < high
an an bn
Các chỉ mục đơn mức
• Primary Index
• Được sử dụng trên tệp có thứ
tự, thường được sắp xếp theo
trường khoá (key field)
• Một mục chỉ mục (index
entry) tương ứng với một
block dữ liệu; index entry lấy
giá trị của key field của bản
ghi đầu tiên trong khối (neo
khối)
• Cũng có thể lựa chọn bản ghi
cuối cùng trong khối.
• Là dạng index thưa.
Các chỉ mục đơn mức
• Clustering Index
• Được sử dụng trên tệp có thứ tự,
dữ liệu được sắp xếp theo một
trường không phải khoá →
không đòi hỏi mỗi bản ghi phải
có giá trị duy nhất tại cột đó. A clustering index
• Mỗi index entry tương ứng với on the
một giá trị không trùng lặp của DEPTNUMBER
cột; con trỏ của index entry sẽ ordering non-key
trỏ tới block dữ liệu đầu tiên có field of an
chứa giá trị này. EMPLOYEE file.
• Đây cũng là dạng index thưa;
thao tác Insert cũng như Delete
được thực hiện tương đối dễ
dàng.
Ví dụ Clustering Index
Các chỉ mục đơn mức
• Secondary Index
• Cung cấp một cách thức truy cập dữ liệu thứ cấp trên
các tệp đã tồn tại một hoặc nhiều primary index.
• Có thể được xây dựng trên thuộc tính là khoá dự tuyển
cũng như trên các thuộc tính thông thường.
• Là một tệp có thứ tự với 2 cột:
• Cột thứ nhất có kiểu dữ liệu giống với cột dữ liệu
tương ứng trong file dữ liệu.
• Cột thứ hai có thể là con trỏ khối hoặc con trỏ trỏ tới
bản ghi dữ liệu.
• Có thể có nhiều secondary indexes trong cùng một
tệp.
• Mỗi entry tương ứng với một bản ghi dữ liệu, do đó nó
là dạng index dày.
Ví dụ với chỉ mục thứ cấp
Ví dụ với chỉ mục thứ cấp
Đặc điểm của các kiểu index
Chỉ mục nhiều mức
• Lặp lại như vậy cho tới khi số lượng entry trong index file
mức cao nhất vừa đủ một disk block.
• Có thể thực hiện với mọi loại chỉ mục đơn mức (primary,
secondary, clustering), chỉ với điều kiện tệp index đầu tiên
có kích thước lớn hơn 1 disk block
Ví dụ với chỉ mục chính hai mức
Chỉ mục nhiều mức
• Cây tìm kiếm cũng là một dạng chỉ mục nhiều mức
• Vấn đề insert và delete một entry khá phức tạp do mọi
mức index đều là tệp có thứ tự.
• Mỗi nút trong cây tìm kiếm có chứa con trỏ trỏ tới cây con
bên dưới
Ví dụ: cây tìm kiếm với q = 3
Chỉ mục động nhiều mức sử dụng cây B&B+
• Phần lớn chỉ mục nhiều mức sử dụng cấu trúc B-tree hoặc
B+-tree
• Các cấu trúc này là biến thể của cây tìm kiếm, cho phép việc
insert và delete được thực hiện hiệu quả.
• Trong cấu trúc B-Tree và B+-Tree, mỗi nút tương ứng với
một disk block.
• Mỗi nút được lưu trữ ở mức half-full cho tới completely-full
So sánh B-tree and B+-tree
• Trong B-tree, các con trỏ trỏ tới các bản ghi dữ liệu tồn
tại ở mọi mức trong cây
• Trong B+-tree, các con trỏ trỏ tới các bản ghi dữ liệu chỉ
tồn tại ở các nút lá
• Phép chèn vào một nút chưa đầy được thực hiện khá hiệu quả
• Nếu một nút bị đầy, quá trình chèn sẽ chia nút đó thành 2 nút
khác
• Việc phân tách này có thể lan truyền tới các mức khác trong cây.
• Phép xoá cũng hiệu quả trong trường hợp nó khiến cho một nút
không bị nhỏ hơn half-full, nếu không nút này sẽ bị gộp vào các
nút láng giềng.
Ví dụ chèn dữ liệu trong B+-Tree
49 n=2
15 36 49 62
Insert: 62
Delete: Các bước thực hiện
72 … 67 85
54 58 64 68 75
Gộp các lá liền kề
72 … 67 85
54 58 64 68 75
Gộp các lá liền kề
72 … 85
54 58 64 68 75
Gộp các nút anh em
… 59 …
41 48 52 63 74
… 59 …
41 48 52 59 63
• Nắm rõ mô hình phân cấp thiết bị lưu trữ dữ liệu, cách thức
tổ chức và truy cập dữ liệu trên thiết bị lưu trữ, sự cần thiết
phải tổ chức dữ liệu theo khối/trang, một số thiết bị lưu trữ
hiện đại, …
• Hiểu tổng quan một số kiểu, phương pháp tổ chức và lưu trữ
CSDL trên tệp; nắm được các loại tệp điển hình như
ordered/unordered files, hashing files,…
• Hiểu sâu, rõ khái niệm chỉ mục, một số loại chỉ mục đơn
mức, đa mức; phương pháp xây dựng chỉ mục động nhiều
mức với B-Tree và B+-Tree. Nắm được ảnh hưởng của chỉ
mục đến hiệu năng truy xuất dữ liệu.