Bài giảng Thiết kế và quản trị cơ sở dữ liệu - Bài 2: Tinh chỉnh lược đồ cơ sở dữ liệu - Vũ Tuyết Trinh

Thiết kế và quản trị cơ sở dữ liệu  
Tinh chỉnh lược đồ CSDL  
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  
Nội dung  
Thiết kế cơ sở dữ liệu  
Dạng chuẩn và chuẩn hóa  
Vấn đề hiệu năng  
Các giải pháp, kỹ thuật (Thiết kế bảng)  
phân đoạn dọc (vertical partitioning)  
chuẩn hóa vs. phi chuẩn hóa  
2
1
Vũ Tuyết Trinh  
Thiết kế và quản trị cơ sở dữ liệu  
Lược đồ quan hệ - ví dụ  
Lược đồ 1  
Onorder1(supplier_ID, part_ID, quantity,  
supplier_address)  
Lược đồ 2  
Onorder2(supplier_ID, part_ID, quantity)  
Supplier(supplier_ID, supplier_address)  
Giả thiết  
100,000 order & 2000 supplier  
|Supplier_ID| = 8 bytes, |supplier_address| = 50 bytes  
3
Nhận xét  
Không gian lưu trữ  
Cập nhật và bảo trì dữ liệu  
Tốc độ xử lý  
4
2
Vũ Tuyết Trinh  
Thiết kế và quản trị cơ sở dữ liệu  
Ví dụ (2)  
R (account_ID, balance, address)  
account_ID address  
account_ID balance  
Chuẩn hóa  
R (account_ID, balance, address)  
hoặc  
R1 (account_ID, address)  
R2 (account_ID, balance)  
Lược đồ CSDL nào tốt hơn?  
5
Nhận xét  
Kích thước index trên account_id (khóa chính)  
Tần suất truy cập các trường dữ liệu  
6
3
Vũ Tuyết Trinh  
Thiết kế và quản trị cơ sở dữ liệu  
Ví dụ (3)  
Lược đồ CSDL  
R1 (account_ID, street_address, zip_code)  
R2 (account_ID, balance)  
hoặc  
R1 (account_ID, street_address)  
R2 (account_ID, zip_code)  
R3 (account_ID, balance)  
Lược đồ CSDL nào tốt hơn?  
7
Lưu ý  
1 quan hệ chuẩn hóa XYZ thường tốt hơn  
2 quan hệ chuẩn hóa XY & XZ  
Tách 2 quan hệ là tốt hơn khi:  
Người dùng thường truy nhập trên Y hoặc Z  
Kích thước dữ liệu của Y và Z lớn  
4
Vũ Tuyết Trinh  
Thiết kế và quản trị cơ sở dữ liệu  
Phi chuẩn hóa  
Lược đồ  
Onorder1(supplier_ID, part_ID, quantity,  
supplier_address)  
hoặc  
Onorder2(supplier_ID, part_ID, quantity)  
Supplier(supplier_ID, supplier_address)  
Lược đồ CSDL nào tốt hơn?  
Phi chuẩn hóa tốt trong trường hợp đọc nhiều,  
ghi ít (ít cập nhật dữ liêu)  
9
Ví dụ  
lineitem ( L_ORDERKEY, L_PARTKEY , L_SUPPKEY,  
L_LINENUMBER, L_QUANTITY, L_EXTENDEDPRICE ,  
L_DISCOUNT, L_TAX , L_RETURNFLAG, L_LINESTATUS ,  
L_SHIPDATE, L_COMMITDATE,  
L_RECEIPTDATE, L_SHIPINSTRUCT ,  
L_SHIPMODE , L_COMMENT );  
region( R_REGIONKEY, R_NAME, R_COMMENT );  
nation( N_NATIONKEY, N_NAME, N_REGIONKEY, N_COMMENT,);  
supplier( S_SUPPKEY, S_NAME, S_ADDRESS, S_NATIONKEY,  
S_PHONE, S_ACCTBAL, S_COMMENT);  
Size: lineitem (600000 rows), supplier (500 rows)  
nation (25 rows), region (5 rows)  
5
Vũ Tuyết Trinh  
Thiết kế và quản trị cơ sở dữ liệu  
lineitemdenormalized ( L_ORDERKEY, L_PARTKEY ,  
L_SUPPKEY, L_LINENUMBER, L_QUANTITY,  
L_EXTENDEDPRICE ,  
L_DISCOUNT, L_TAX , L_RETURNFLAG, L_LINESTATUS ,  
L_SHIPDATE, L_COMMITDATE,  
L_RECEIPTDATE, L_SHIPINSTRUCT ,  
L_SHIPMODE , L_COMMENT, L_REGIONNAME);  
600000 rows in lineitemdenormalized  
Cold Buffer  
Truy vấn  
select L_ORDERKEY, L_PARTKEY, L_SUPPKEY, L_LINENUMBER,  
L_QUANTITY, L_EXTENDEDPRICE, L_DISCOUNT, L_TAX,  
L_RETURNFLAG, L_LINESTATUS, L_SHIPDATE, L_COMMITDATE,  
L_RECEIPTDATE, L_SHIPINSTRUCT, L_SHIPMODE, L_COMMENT,  
R_NAME  
from LINEITEM, REGION, SUPPLIER, NATION  
Where L_SUPPKEY = S_SUPPKEY and S_NATIONKEY = N_NATIONKEY  
and N_REGIONKEY = R_REGIONKEY and R_NAME = 'EUROPE';  
select L_ORDERKEY, L_PARTKEY, L_SUPPKEY, L_LINENUMBER,  
L_QUANTITY, L_EXTENDEDPRICE, L_DISCOUNT, L_TAX,  
L_RETURNFLAG, L_LINESTATUS, L_SHIPDATE, L_COMMITDATE,  
L_RECEIPTDATE, L_SHIPINSTRUCT, L_SHIPMODE, L_COMMENT,  
L_REGIONNAME  
from LINEITEMDENORMALIZED  
where L_REGIONNAME = 'EUROPE';  
6
Vũ Tuyết Trinh  
Thiết kế và quản trị cơ sở dữ liệu  
Exercises  
13  
14  
7
Vũ Tuyết Trinh  
pdf 7 trang Thùy Anh 11820 Free
Bạn đang xem tài liệu "Bài giảng Thiết kế và quản trị cơ sở dữ liệu - Bài 2: Tinh chỉnh lược đồ cơ sở dữ liệu - Vũ Tuyết Trinh", để tải tài liệu gốc về máy hãy click vào nút Download ở trên

File đính kèm:

  • pdfbai_giang_thiet_ke_va_quan_tri_co_so_du_lieu_bai_2_tinh_chin.pdf