Bài giảng Chương 9: Thiết kế tầng quản lý dữ liệu cung cấp đến người học kiến thức về tầng quản lý dữ liệu bao gồm thao tác và truy cập dữ liệu và thiết kế thực sự về lưu trữ dữ liệu của hệ thống; tối ưu hóa định dạng lưu trữ dữ liệu; ánh xạ các đối tượng từ tầng miền bài toán (problem domain layer) sang định dạng lưu trữ dữ liệu đã lựa chọn...
Trang 1Chương 9: Thiết kế tầng quản lý dữ liệu
1
Trang 3Tầng quản lý dữ liệu
Tầng quản lý dữ liệu bao gồm thao tác và truy cập dữ liệu và thiết kế thực
sự về lưu trữ dữ liệu của hệ thống
- Quá trình thiết kề tầng dữ liệu bao gồm 4 bước:
1 Chọn định dạng lưu trữ các đối tương để hỗ trợ hệ thống Các định
dạng lưu trữ bao gồm tệp (tệp chủ, tệp giao tác, tệp lịch sử, tệp tra
cứu,…), cơ sở dữ liệu (csdl quan hệ, quan hệ - đối tượng, đối tượng)
2 Ánh xạ các đối tượng từ tầng miền bài toán (problem domain layer)
sang định dạng lưu trữ dữ liệu đã lựa chọn
3 Tối ưu hóa định dạng lưu trữ dữ liệu
4 Thiết kế các lớp truy cập và thao tác dữ liệu
3
Trang 4Các định dạng lưu trữ dữ liệu
Trang 5Các định dạng lưu trữ dữ liệu có thể được sử dụng để lưu trữ các đối
tượng:
- Các tệp
- CSDL quan hệ
- CSDL quan hệ-đối tượng
- CSDL hướng đối tượng
5
Trang 6CSDL quan hệ
- Tập các bảng:
Bao gồm các trường xác định các thực thể
Khóa chính có duy nhất các giá trị ở mỗi dòng của bảng
Khóa ngoại lai là khóa chính của bảng khác
- Các bảng có quan hệ với nhau:
Trường khóa chính của một bảng là một trường của bảng khác thì
được gọi là khóa ngoại lai
Các quan hệ được thiêt lập bởi một khóa ngoại lai của một bảng kêt
nối với khóa chính của một bảng khác
Trang 7Ví dụ về CSDL quan hệ
7
Trang 8Hệ quản trị cơ sở dữ liệu quan hệ (DBMS)
- Là phần mềm để tạo lập và xử lý một cơ sở dữ liệu
- Hệ quản trị cơ sở dữ liệu quan hệ là hệ quản trị cơ sở dữ liệu quản trị cơ
sở dữ liệu quan hệ
- Hệ quản trị cơ sở dữ liệu quan hệ luôn hỗ trợ tính toàn vẹn tham chiếu
Ý tưởng đảm bảo rằng các giá trị kết nối các bảng với nhau thông qua
các khóa chính và khóa ngoại lai là hợp lệ và thực sự đồng bộ
Trang 9Ví dụ về ràng buộc tham chiếu dữ liệu:
- Số hiệu khách hàng là khóa chính của bảng khách hàng
- Số hiệu khách hàng lại là khoa ngoại lai của bảng đơn hàng
- Một sự vi phạm sự toàn vẹn tham chiếu sẽ xảy ra nếu một đơn hàng
được nhập vào bảng đơn hàng cho một số hiệu khách hàng chưa được
nhập vào bảng khách hàng trước đó
- Mỗi hệ quản trị cơ sở dữ liệu quan hệ ngăn cấm việc nhập những bản
ghi như vậy
9
Trang 10Ngôn ngữ truy vấn có cấu trúc (SQL)
- Đây là ngôn ngữ chuẩn để truy cập dữ liệu dưới dạng bảng
- Các lệnh SQL Commands
- Tạo lập, soạn thảo, hủy các bảng(Create, edit, and delete
tables)
- Bổ sung, soạn thảo và xóa dữ liệu (Add, edit, ,delete data)
- Hiển thị dữ liệu từ một hay nhiều bảng
- Hiển thị dữ liệu được tính toán từ dữ liệu của một hay nhiều
bảng
Trang 11Việc lựa chọn định dạng lưu trữ nào cho hệ thống nên dựa trên bảng đánh
giá các định dạng lưu trữ dựa trên các tiêu chí khác nhau
11
Trang 12Ánh xạ các đối tượng thuộc tầng miền bài toán sang các định dạng
lưu trữ dữ liệu
Trang 13Các quy tắc ánh xạ các đối tượng thuộc tầng miền bài toán sang mô
hình CSDL quan hệ:
- Rule 1: Ánh xạ mỗi lớp cụ thể (conrete class, lớp được dùng để tạo ra
đối tượng) thuộc tầng miền bài toán thành một bảng dữ liệu
- Rule 2: Ánh xạ các thuộc tính đơn trị thành các thuộc tính trong bảng
tương ứng
- Rule 3: Ánh xạ các phương thức trong mỗi lớp thành các thủ tục lưu trú
(trên hệ quản trị CSDL) hoăc thành các chương trình con trong chương
trình ứng dụng
- Rule 4: Ánh xạ các quan hệ liên kết và kết hợp có lực lượng tham gia
liên kết hai phía là một – một thành một thuộc tính khóa ngoài vào của
một bảng trong quan hệ (cụ thể: lấy thuộc tính khóa của bảng bên này
đặt vào bảng bên kia làm khóa ngoài để tạo liên kết một – một giữa hai
bảng, ngược lại)
- Rule 5: Ánh xạ thuộc tính đa trị thành một bảng mới và tạo liên kết một
- nhiều từ bảng gốc tới các bảng mới
13
Trang 14- Rule 6: Ánh xạ những quan hệ liên kết và kết hợp có lực lượng tham
gia quan hệ ở hai phía là nhiều – nhiều bằng cách tạo một bảng mới
Bảng này có khóa chính là các thuộc tính chính khóa của hai bảng gốc
và các thuộc tính riêng của liên kết
- Rule 7: Với những quan hệ kiên kết và kết hợp có lực lượng tham gia
liên kết hai phía là một – nhiều, lấy các thuộc tính khóa chính từ bên
một (1 1 hay 0 1) của quan hệ đưa vào bảng phía nhiều (1 * hoặc
0 *) để tạo thành khóa ngoài liên kết hai bảng
- Rule 8: Đảm bảo rằng các khóa chính của lớp con cũng chính là khóa
chính của lớp cha hoặc làm phẳng kế thừa
Trang 15Ví dụ minh họa quá trình ánh xạ các lớp trong bài toán đặt lịch hẹn khám
sang biểu đồ cơ sở dữ liệu quan hệ
15
Trang 16Tối ưu hóa CSDL quan hệ
Trang 17Tối ưu hóa lưu trữ
Mục tiêu tối ưu hóa lưu trữ:
- Loại bỏ dư thừa dữ liệu vì dư thừa dữ liệu gây lãng phí bộ nhớ lưu trữ
và sinh ra các dị thường khi cập nhật dữ liệu (xem lại môn CSDL)
- Trong bảng nếu có chứa giá trị null, ngữ nghĩa của giá trị null đó rất
khó để diễn tả
17
Trang 18Chuẩn hóa dữ liệu:
- Chuẩn hóa dữ liệu như là một tiêu chí để đánh giá một CSDL quan hệ
- Việc đưa các bảng về các dạng chuẩn sẽ giúp giảm đi các dư thừa dữ
liệu
- Bốn mức độ chuẩn hóa đầu tiên của bảng dữ liệu bao gồm:
- Dạng chuẩn 0 (0NF): không có điều kiện chuẩn hóa nào thỏa
mãn
- Chuẩn 1 (1NF): Không có các thuộc tính đa trị
Trang 19Các bước thực hiện quá trình chuẩn hóa
19
Trang 20Ví dụ minh họa dạng chuẩn 0
Trang 21Ví dụ minh họa dạng chuẩn 1
21
Trang 22Ví dụ minh họa dạng chuẩn 1
Trang 23Ví dụ minh họa dạng chuẩn 2
23
Trang 24Ví dụ minh họa dạng chuẩn 2
Trang 25Ví dụ minh họa dạng chuẩn 3
25
Trang 26Tối ưu hóa tốc độ truy cập dữ liệu:
Các phương thức để tối ưu hóa tốc độ truy cập dữ liệu bao gồm:
- Phi chuẩn hóa dữ liệu
- Phân cụm các bản ghi
- Đánh chỉ mục thuộc tính
Trang 27Phi chuẩn hóa dữ liệu:
- Trong CSDL quan hệ, nếu một truy vấn cần kết hợp thông tin từ nhiều
bảng thì các bảng đó cần được kết nối với nhau trong quá trình thực
hiện truy vấn Việc kết nối các bảng sẽ tốn nhiểu thời gian và nếu truy
vấn đó lại là truy vấn thường xuyên thì sẽ ảnh hưởng đến tốc đọ xử lý
của hệ thống
- Để giảm bớt các phép kết nối bảng đối với các truy vấn thường xuyên,
chúng ta dùng kỹ thuật phi chuẩn dữ liệu
- Ví dụ, thêm tên khách hàng vào bảng đơn hàng để tránh việc kết nối hai
bảng đơn hàng và khách hàng khi cần lấy ra tên khách hàng mua đơn
hàng
27
Trang 28Ví dụ 2 về phi chuẩn dữ liệu
Trang 29Ví dụ 3 về phi chuẩn dữ liệu
29
Trang 30Phân cụm các bản ghi
- Phân cụm vật lý các bản ghi trong định dạng lưu trữ làm sao để các bản
ghi tương tự được lưu trữ gần nhau
- Phân cụm trong một bảng: Các bản ghi trong một bảng được lưu trữ
cùng nhau cùng nhau Ví dụ, theo thứ tự giá trị khóa chính
- Phân cụm liên bảng: kết hợp các bản ghi từ nhiều bảng hay được truy
vấn cùng nhau vào một nhóm
Trang 31Đánh chỉ mục cho các thuộc tính hay được truy cập thông tin
31
Trang 32Ước lượng kích thước dữ liệu lưu trữ
Trang 33Ước lượng kích thước dữ liệu lưu trữ
33
Trang 34Thiết kế các lớp truy cập và thao tác dữ liệu (DAM class)
Trang 35- Các lớp DAM hoạt động giống như một người biên dịch giữa các đối
tượng lưu trữ và các đối tượng thuộc tầng miền bài toán
- Với mỗi lớp cụ thể (concrete class) nên có tương ứng một lớp DAM
35
Trang 36Ví dụ về thiết kế các lớp DAM trong hệ thống đăng kí lịch khám bệnh
Trang 37Mối quan hệ giữa các yêu cầu phi chức năng và tầng quản lý dữ liệu
37