Tải bản đầy đủ (.pdf) (7 trang)

Bài giảng cơ sở dữ liệu thầy Trần Việt Trung

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (763.05 KB, 7 trang )

Nhập môn cơ sở dữ liệu

Hệ
CSDL

Tổ chức dữ liệu vật lý

Ứng dụng
Hệ QTCSDL

Trần Việt Trung
Vũ Tuyết Trinh


Bộ môn Hệ thống thông tin, Viện CNTT&TT
Đại học Bách Khoa Hà Nội

CSDL

Bộ xử lý
câu hỏi

Quản lý lưu trữ
•  Tổ chức tệp: sắp xếp các
bản ghi trên thiết bị nhớ
ngoài

Bộ quản lý
lưu trữ

Bộ quản lý lưu trữ



–  RID (record id): xác định địa
chỉ vật lý của các bản ghi
–  Chỉ số: cấu trúc dữ liệu xác
định sự tương ứng giữa RID
của bản ghi và giá trị của
trường (khoá)

•  Vùng nhớ đệm: trung gian
giữa thiết bị nhớ ngoài và bộ
nhớ trong

Bộ quản lý
Giao dịch

Quản

giao
dịch

Quản lý buffer
Quản lý tệp

CSDL

Storage of Databases
•  Databases are too large to fit entirely in main
memory.
•  Data persistency
–  Disk = nonvolatile storage

–  Memory = volatile storage

•  The cost of storage per unit
Metadata &
Data dictionary

Data & index

Các thiết bị nhớ ngoài

Đĩa từ vs. bộ nhớ trong

•  Đĩa từ, băng từ, trống từ, ...
•  Đĩa từ: được tổ chức thành từng trang

–  Chí phí truy nhập đến các trang bất kỳ là tương
đương
–  Chí phí đọc nhiều trang liền nhau < chí phí đọc các
trang đó theo thứ tự bất kỳ

•  Băng từ:

–  chỉ có thể đọc được các trang liền nhau
–  rẻ hơn đĩa từ nhưng chi phí truy nhập thương lớn
hơn

•  ...

HTTT, SoICT


•  Tốc độ truy nhập bộ
ms vs. ns (~1000 lần)

•  Kích thước
TB vs. GB (~ 100 lần với cùng chi phí)

•  Lưu trữ
ổn định (kể cả khi mất điện) vs. tạm thời

•  Phân chia block
4KB vs. 1Byte

1


Nhập môn cơ sở dữ liệu

Buffering of blocks
•  To speed up I/O transfer
–  Reading
–  Writing

•  Cache consistency?

Records serialized into a file
•  struct employee{
–  char name[30];
–  char ssn[9];
–  int salary;
–  int job_code;

–  char department[20];

•  } ;

Records serialized into a file

Primary file organizations
•  Refer to how the file records are physically
placed on the disk, and how the records can
be accessed
•  Heap file (unordered file)
•  Sorted file
•  Hashed file
•  B-tree

Tổ chức bộ nhớ ngoài
•  Mục đích: giảm thiểu truy xuất đến dữ liệu
không cần thiết trên thiết bị nhớ ngoài
•  Các vấn đề cần quan tâm

Auxiliary access structure
•  A secondary organization or auxiliary access
structure allows efficient access to file
records based on alternate fields
–  Indexes

–  Cấu trúc lưu trữ
–  Các phép toán (thêm, xoá, sửa, tìm kiếm)

HTTT, SoICT


2


Nhập môn cơ sở dữ liệu

Heap files

Ordered files

•  Simplest and most basic type of organization
•  Records are placed in the file in the order
they are inserted
•  Insert?
•  Delete?

•  Physically order the records of a file on disk
based on the values of one of their fields (the
ordering field)
•  Binary search
•  Scan?

Tổ chức tệp băm (Hash File)
•  Mục đích
–  Sử dụng chỉ số để hạn chế số lượng phép truy
xuất đĩa bằng các phân nhóm các bản ghi (giả
thiết n nhóm)
–  Mapping giá trị khoá với vị trí của (nhóm) bản ghi
tương ứng


•  Dựa trên bảng băm (hash table)
–  Hàm băm (hash function)

Internal hashing

Ví dụ

•  Position of records in file

HTTT, SoICT

3


Nhập môn cơ sở dữ liệu

Collision resolution

External hashing
•  Hashing for disk files
•  To suit disk access characteristics
–  address space = {bucket}
–  bucket = one disk block or a cluster of
contiguous disk blocks

•  Hash function
–  To map a key into a relative bucket number

•  Collision?


External hashing

Handling overflow

Tiêu chí chọn hàm băm

Tổ chức tệp chỉ dẫn (Index File)

•  Phân bố các bản ghi tương đối đồng đều
(theo các cụm)
•  Hạn chế việc sử dụng nhiều trang bộ nhớ
cho 1 cụm
•  Static hashing
•  Extendible hashing
•  Dynamic hashing
•  Linear hashing

HTTT, SoICT

•  Tệp chỉ dẫn theo khoá được chọn trong bản ghi
•  Tệp chỉ dẫn bao gồm các cặp (k,d), trong đó k là
giá trị của khoá của bản ghi đầu tiên, d là địa chỉ
của khối (hay con trỏ khối).
•  Tệp chỉ dẫn được sắp xếp theo giá trị của khoá.

4


Nhập môn cơ sở dữ liệu


Cây cân bằng (BalanceTree)

Ví dụ

•  B-tree cân bằng được tổ chức theo cấp m, có
các tính chất sau đây:
–  Gốc của cây hoặc là một nút lá hoặc ít nhất có
hai con.
–  Mỗi nút (trừ nút gốc và nút lá) có từ [m/2] đến m
con.
–  Mỗi đường đi từ nút gốc đến bất kỳ nút lá nào
đều có độ dài như nhau.

Nhận xét
•  Cấu trúc của mỗi nút trong B-tree
(p0, kl, p1, k2,...,kn, pn)
–  pi (i=l..n) là con trỏ trỏ tới khối i của nút có ki là
khoá đầu tiên của khối đó.
–  Các khoá k trong một nút được sắp xếp theo thứ
tự tăng dần.

•  Mọi khoá trong cây con, trỏ bởi pi đều nhỏ
hơn ki+1
•  Mọi khoá trong cây con, trỏ bởi pn đều lớn
hơn kn.

Kết luận
•  Truy cập đến CSDL thường liên quan đến
một phần nhỏ các bản ghi trong một tệp dữ
liệu hay một vài trường (đặc biệt là các

trường khoá) của các bản ghi dữ liệu.
Ø Xác định các yêu cầu này cho phép thiết kế dữ
liệu vật lý hiệu quả thông qua việc sử dụng các tổ
chức lưu trữ đặc biệt

•  Tệp chỉ dẫn được tạo lập trên khoá tìm kiếm
để tăng hiệu quả của lưu trữ dữ liệu
Ø Hiệu quả của các cấu trúc chỉ dẫn khác nhau phụ
thuộc vào điều kiện áp dụng chúng

Các điểm cần lưu ý

HTTT, SoICT

5


Nhập môn cơ sở dữ liệu

B+ Tree Index

B+ Tree Example

With B+ tree, a full index is maintained, allowing the ordering of the
records in the file to be independent of the index. This allows multiple B+
tree indices to be kept for the same set of data records.

60

n  the lowest level in the index has one entry for each data record.

n  the index is created dynamically as data is added to the file.
n  as data is added the index is expanded such that each record requires the
same number of index levels to reach it (thus the tree stays ‘balanced’).
n  the records can be accessed via an index or in insertion order.

B+ Tree Build Example
60

30 55
10 30

55

90

60

69 70
60

55

65 69

70

60 90

Add 90


Add 60

55 60

55 60

Add 55

10

69

60

60
90

30

90

B+ Tree Build Example Cont…

30 55

90

65

70


70

70 90
10 30

Add 70

55

60

65 70

90

Add 10

60

60

60 70
55
55 60

65 70

70


30 55

30 55

60

Add 65

65 70

90

10 30

•  Để thực hiện các phép toán, cần:

– 

Ghi nhớ số trang trong 1 tệp
Ghi nhớ không gian trống trên các trang
Ghi nhớ các bản ghi trên các trang

Ø  Có

các con trỏ trỏ tới tất cả các trang của tệp và
các con trỏ này được lưu trữ ở bộ nhớ trong.

HTTT, SoICT

60


65 69

70

90

Add 69

Cài đặt tệp đống bằng danh sách

•  Lưu trữ kế tiếp các bản ghi trong các trang
không tuân theo một thứ tự đặc biệt nào

– 

55

Add 30

Tổ chức tệp đống (Heap File)

– 

69 70

90

Data
Page


Data
Page

Data
Page

Full Pages

Header
Page
Data
Page

Data
Page

Data
Page

Pages with
Free Space

•  Cần lưu trữ HeaderPage và tên của tệp
•  Mỗi trang gồm dữ liệu và 2 con trỏ

6


Nhập môn cơ sở dữ liệu


Các phép toán

Sử dụng trang danh bạ

•  Tìm kiếm 1 bản ghi
•  Thêm 1 bản ghi

Data
Page 1

Header
Page

Data
Page 2

•  Xoá 1 bản ghi
DIRECTORY

•  Sửa đổi một bản ghi

Data
Page N

•  Lưu thông tin về số byte còn trống
trên trang đó
•  Danh bạ là 1 tập các trang

Tìm kiếm 1 bản ghi

•  Tìm kiếm tuần tự
–  Duyệt tệp chỉ dẫn từ bản ghi đầu tiên đến khi tìm
thấy bản ghi có khoá k cần tìm
–  Nhận xét
•  chậm đối với các tệp chỉ dẫn nói chung.
•  Thích hợp với các tệp chỉ dẫn nhỏ đủ để lưu ở bộ nhớ
trong

•  Tìm kiếm nhị phân
–  Chia đôi tệp chỉ dẫn đã sắp xếp để hạn chế số
bản ghi cần duyệt
–  Tại mỗi lần chia hạn chế được ½ số bản ghi cần
xem xét

HTTT, SoICT

7



×