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

thiết kế va quan tri cơ sở dữ liệu vũ tuyết trinh notes2 tinh chỉnh lược đồ csdl sinhvienzone com

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 (292.62 KB, 7 trang )

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



SinhVienZone.com

Vũ Tuyết Trinh

/>
1


Thiết kế và quản trị cơ sở dữ liệu

Lược đồ quan hệ - ví dụ


Lược đồ 1




Lược đồ 2





Onorder1(supplier_ID, part_ID, quantity,
supplier_address)
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

SinhVienZone.com

Vũ Tuyết Trinh

/>
2



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

SinhVienZone.com

Vũ Tuyết Trinh

/>
3


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:



SinhVienZone.com

Vũ Tuyết Trinh

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


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)

SinhVienZone.com

Vũ Tuyết Trinh

/>
5


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';

SinhVienZone.com

Vũ Tuyết Trinh

/>
6


Thiết kế và quản trị cơ sở dữ liệu

Exercises

13


14

SinhVienZone.com

Vũ Tuyết Trinh

/>
7



×