8/25/2017
Nội dung
Chương 2.
Cấu trúc lưu trữ và phương
pháp truy xuất
1.
2.
3.
4.
5.
6.
7.
8.
GV: Lê Thị Minh Nguyện
Email:
Tổ chức dữ liệu
Các bộ phận của tổ chức tổ chức dữ liệu
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
Tổ chức băm
Tổ chức B cây
Chỉ mục (index)
Hệ quản trị Cơ sở dữ liệu
1. Tổ chức dữ liệu
1.1. Khái niệm
1.1. Khái niệm
• Tổ chức dữ liệu là tiến trình phân tích và cấu trúc lại dữ
liệu (đơi khi chỉ là các giá trị dữ liệu, phức tạp hơn là cơ
sở dữ liệu) của hệ thống
• Kết quả của việc tổ chức dữ liệu là có được hệ thống
tổ chức và quản lý dữ liệu tốt hơn, có thể có một cơ sở
dữ liệu chuẩn với các mơ hình dữ liệu được cài đặt
1.2. Sự cần thiết của tổ chức dữ liệu
1.3. Các thuận lợi và khó khăn khi tổ chức dữ liệu
1.4. Các giải pháp tổ chức dữ liệu
Hệ quản trị Cơ sở dữ liệu
3
Hệ quản trị Cơ sở dữ liệu
2
4
1
8/25/2017
1.1. Khái niệm (tt)
1.2. Sự cần thiết của tổ chức dữ liệu
• Các hoạt động khi tổ chức dữ liệu thường gặp:
• Tổ chức dưới dạng tập tin đơn giản trong hệ thống
• Tổ chức thành cơ sở dữ liệu được quản lý bởi DBMS
• Chuyển hệ thống dùng một DBMS này sang hệ thống dùng một
DBMS khác
• Chuyển đổi dữ liệu toàn cục dùng chung cho toàn bộ hệ thống
thành các đối tượng hay các dạng dữ liệu với cấu trúc trừu tượng
Hệ quản trị Cơ sở dữ liệu
5
Hệ quản trị Cơ sở dữ liệu
6
1.2. Sự cần thiết của tổ chức dữ liệu (tt)
1.3. Các thuận lợi và khó khăn khi tổ chức dữ liệu
• Đối với các hệ thống cũ, những khó khan bao gồm:
• Thuận lợi
• Những người tham gia tổ chức dữ liệu khơng cịn làm việc
trong cơng ty.
• Một số hệ thống hoạt động trên máy tính lớn, dữ liệu lưu trữ ở
một nơi, khó khan cho việc khai thác phân bố ở nhiều nơi
khác nhau.
• Một số hệ thống sử dụng các cơ sở dữ liệu cũ hay các tập tin
đã lỗi thời có sự gia tang lớn về sự trùng lắp dữ liệu.
Hệ quản trị Cơ sở dữ liệu
7
• Tăng tính hiệu quả khi khai thác dữ liệu
• Giảm thiểu rủi ro trong tương lai
• Tận dụng các tri thức đã tích lũy trong hệ thống cũ,…
• Khó khăn
• Vấn đề chi phí
• Đối với các hệ thống cũ, nếu thay đổi cách tiếp cận khi phân
tích, thiết kế nhằm phục vụ cho việc tổ chức dữ liệu thì gần
như xây dựng lại từ đầu
• Đào tạo nhân sự tiếp cận cơng nghệ mới,…
Hệ quản trị Cơ sở dữ liệu
8
2
8/25/2017
1.4. Các giải pháp tổ chức dữ liệu
2. Các bộ phận của tổ chức tổ chức dữ liệu
• Tổ chức Dữ liệu theo tập tin
• Tổ chức dữ liệu theo cơ sở dữ liệu
2.1. Bộ phận quản lý tập tin (File Manager)
2.2. Bộ phận quản lý đĩa (magnetic disk)
2.3. Tổ chức vật lý Tổ chức vật lý
• Nêu ứng dụng, ưu và khuyết điểm của 2
chức dữ liệu?????
loại tổ
Hệ quản trị Cơ sở dữ liệu
9
Bộ phận quản lý tập tin (File Manager)
Hệ quản trị Cơ sở dữ liệu
10
2.1. Bộ phận quản lý đĩa (magnetic disk)
• Lưu trữ thơng tin trên đĩa từ dưới dạng các file. Các file
sẽ có con trỏ xác định điểm vào các sector đầu tiên
chứa thông tin. Các file được quản lý dưới dạng cây gọi
là cây thư mục
CPU
Registers
C
A
C
H
E
Memory Bus
I/O Bus
I/O Devices
Memory
Size
Speed
Virtural
Memory
Disk
File
System
Second
storage
Tertiary storage
11
Hệ quản trị Cơ sở dữ liệu
12
3
8/25/2017
2.1. Bộ phận quản lý đĩa (magnetic disk) (tt)
2.1. Bộ phận quản lý đĩa (magnetic disk) (tt)
• Dung lượng lớn
• Dữ liệu không bị mất khi hệ thống mất điện
hay gặp sự cố (non-volatile)
• Tốc độ truy xuất
• Làm sao bố trí dữ liệu trên đĩa?????
• Muốn lưu trữ dữ liệu
•
•
•
•
• Thời gian định vị track (seek time): ? ms
• Thời gian định vị sector (rotational delay): ? ms
• Thời gian chuyển dữ liệu (transfer time): ? kb
• Dữ liệu được biểu diễn bằng chuỗi các bytes
• Truy xuất dữ liệu
• Đọc trực tiếp dữ liệu ở 1 vị trí bất kỳ trên đĩa
• Theo đơn vị lưu trữ - block hay page
Hệ quản trị Cơ sở dữ liệu
Mã tài khoản
Tên chi nhánh
Số dư
Ngày rút tiền
8
bits
13
2.3. Tổ chức vật lý
Hệ quản trị Cơ sở dữ liệu
14
Tổ chức trên SQL Server
• Hai cách tổ chức lưu trữ dữ liệu cơ bản của hệ thống là lưu trữ
ở dạng văn bản (text) và nhị phân (binary).
• Thường tổ chức ở dạng nhị phân
Hệ quản trị Cơ sở dữ liệu
15
Hệ quản trị Cơ sở dữ liệu
16
4
8/25/2017
Tổ chức trên Oralce
3. Mẫu tin (record)
• Tập hợp các dữ liệu có liên quan với nhau tạo thành một mẫu
tin
• Ví dụ
• Mẫu tin account có những thơng tin
• Account-number
• Branch-name
• Balance
• Có 2 loại mẫu tin
• Mẫu tin có chiều dài cố định (Fixed-Length Record)
• Mẫu tin có chiều dài động (Variable-Length Record)
Hệ quản trị Cơ sở dữ liệu
17
3.1. Mẫu tin có chiều dài cố định
Hệ quản trị Cơ sở dữ liệu
18
3.1. Mẫu tin có chiều dài cố định(tt)
• Ví dụ
• Mỗi mẫu tin có thêm 1 bit (tương tự .dbf)
• =0: Xóa
• =1: Đang dùng
type deposit = record
account-number: char(10);
branch-name: char(22);
balance: real;
end
Hệ quản trị Cơ sở dữ liệu
• Danh sách các mẫu tin trống (free list)
0 1
1011
3233 40
1 A-102 Perryridge
400
1 A-215
Mianus
700
1 A-222
Redwood
700
1 A-217
Brighton
750
1 A-218 Perryridge
700
0
19
Hệ quản trị Cơ sở dữ liệu
41
1
1
1
1
0
0
A-305
A-101
A-201
A-110
Round Hill
Downtown
Perryridge
Downtown
350
500
900
600
20
5
8/25/2017
3.1. Mẫu tin có chiều dài cố định(tt)
3.1. Mẫu tin có chiều dài cố định(tt)
• Hủy mẫu tin
• 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
• Đá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
FH
FH
1
A-102 Perryridge
400
1
A-305
Round Hill
350
0
A-215
Mianus
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
A-111
800
0
Redwood
1
1
A-102
A-111
Perryridge
Downtown
400
700
1
1
A-305
A-101
Round Hill
Downtown
350
500
1
0
1
A-222
A-217
A-218
Redwood
Brighton
Perryridge
700
750
700
1
1
0
A-201
A-110
Perryridge
Downtown
900
600
0
0
• Tìm kiếm
0
• Qt tuần tự trên tập tin
Hệ quản trị Cơ sở dữ liệu
21
3.2. Mẫu tin có chiều dài động
Hệ quản trị Cơ sở dữ liệu
22
3.2. Mẫu tin có chiều dài động (tt)
• Trong DBMS, mẫu tin có chiều dài động
• Byte-String Representation
• Lưu trữ nhiều loại mẫu tin trong 1 tập tin
• Các loại mẫu tin chứa các trường có chiều dài động
• 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
• Có 2 cách biểu diễn
• Byte-String
• Fixed-Length
• Ví dụ:
type account-list = record
branch-name: char(22);
account-info: array [1..n] of
record
account-number: char(10);
balance: real;
end
end
Hệ quản trị Cơ sở dữ liệu
23
Perryridge
A-102
400
A-201
Round Hill
A-305
350
-
Downtown
A-101
500
A-110
Mianus
A-215
700
-
Redwood
A-222
700
-
900
A-218
Brighton
600
A-217
700
750
-
-
Hệ quản trị Cơ sở dữ liệu
24
6
8/25/2017
3.2. Mẫu tin có chiều dài động (tt)
3.2. Mẫu tin có chiều dài động (tt)
• 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
• 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-201
Round Hill
A-305
350
-
Downtown
A-101
500
A-110
Mianus
A-215
700
-
Redwood
A-222
700
-
900
A-218
Brighton
600
A-217
700
-
750
-
Byte-String Representation
Tốn nhiều chi phí khi chiều dài mẫu tin thay đổi
Perryridge
A-102
400
A-201
Round Hill
A-305
350
Brighton
A-202
950 A-217
Downtown
A-101
500
A-110
900
A-218
Mianus
A-215
700
-
Redwood
A-222
700
-
600
700
750
-
-
-
Hệ quản trị Cơ sở dữ liệu
25
Hệ quản trị Cơ sở dữ liệu
26
3.2. Mẫu tin có chiều dài động (tt)
3.2. Mẫu tin có chiều dài động (tt)
• Fixed-Length Representation
• 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
• Point
Hệ quản trị Cơ sở dữ liệu
27
• 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
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-110
600
Hệ quản trị Cơ sở dữ liệu
A-218
700
28
7
8/25/2017
3.2. Mẫu tin có chiều dài động (tt)
4. Sắp xếp các mẫu tin vào block
• Fixed-Length Representation
records
Anchor block
• 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
• Anchor block – Chứa mẫu tin
đầu tiên của mảng accountinfo
• Overflow block – Chứa các
mẫu tin tiếp theo của mảng
account-info
Perryridge
Round Hill
Mianus
Downtown
Redwood
Brighton
Overflow block
A-102
A-305
A-215
A-101
A-222
A-217
400
350
700
500
700
750
A-201
A-218
A-110
900
700
600
Hệ quản trị Cơ sở dữ liệu
Kích thước
cố định
blocks
a file
29
5. Tổ chức mẫu tin trên tập tin
30
• 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 (searchkey)
• Khóa tìm kiếm khơng nhất thiết là khóa chính hay siêu
khóa
• Tổ chức các mẫu tin trên tập tin như thế nào?
Sequential
Clustering
Indexing
Hashing
B-Tree
Hệ quản trị Cơ sở dữ liệu
Hệ quản trị Cơ sở dữ liệu
Giả sử chỉ có 1 file
5.1. Tuần tự (Sequential)
• Cho 1 tập các mẫu tin
•
•
•
•
•
…
31
Hệ quản trị Cơ sở dữ liệu
32
8
8/25/2017
5.1. Tuần tự (Sequential) (tt)
5.1. Tuần tự (Sequential) (tt)
• 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 (searchkey)
• Khóa tìm kiếm khơng nhất thiết là khóa chính hay siêu
khóa
• 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
Hệ quản trị Cơ sở dữ liệu
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
33
Hệ quản trị Cơ sở dữ liệu
34
5.2. Clustering
5.1. Tuần tự (Sequential) (tt)
• Nhận xét
• Xét 2 quan hệ depositor và customer
• Thực hiện câu truy vấn
• 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
select account-number, customer-name, customer-street
from depositor, customer
where depositor.customer-name=customer.customer-name
• 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
Hệ quản trị Cơ sở dữ liệu
35
Hệ quản trị Cơ sở dữ liệu
36
9
8/25/2017
5.2. Clustering (tt)
Chỉ mục
• 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
• 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
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
Hệ quản trị Cơ sở dữ liệu
search-key
pointer
• 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
37
Hệ quản trị Cơ sở dữ liệu
Chỉ mục (tt)
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 dày (Dense index)
• Chỉ mục sơ cấp (Primary index)
38
• Tập tin gốc có bao nhiêu mẫu tin thì tập tin chỉ mục có bấy nhiêu
• 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
Hệ quản trị Cơ sở dữ liệu
39
Hệ quản trị Cơ sở dữ liệu
40
10
8/25/2017
Chỉ mục (tt)
Chỉ mục (tt)
• Chỉ mục thưa (Sparse index)
• Cú pháp:
CREATE INDEX ON <tên bảng>(<cột 1>,<cột 2>,…)
• Ví dụ:
CREATE INDEX ON MonHoc(TenMH)
• 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
Hệ quản trị Cơ sở dữ liệu
41
Hệ quản trị Cơ sở dữ liệu
42
43
Hệ quản trị Cơ sở dữ liệu
44
Chỉ mục (tt)
• Nhận xét
• Tìm kiếm nhanh trong trường hợp so sánh
với hằng số và phép kết
• Làm chậm đi các thao tác thêm, xóa và
sửa
• Tốn chi phí
• Lưu trữ chỉ mục
• Truy xuất đĩa nhiều
• Chọn lựa cài đặt chỉ mục hợp lý???
Hệ quản trị Cơ sở dữ liệu
11