Thiết kế quản trị Cơ sở dữ liệu - Notes 2 (HUST) GV. Vũ Tuyết Trinh

LI
lienhejb
0 lượt tải
7
0

Nội dung tài liệu

Trang 1

Thiết kế và quản trị cơ sở dữ liệu Tinh chỉnh lược đồ CSDL Vũ Tuyết Trinh trinhvt-fit@mail.hut.edu.vn 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 goupee.com fb.com/groups/goupee Vũ Tuyết Trinh 1

Trang 2

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 goupee.com fb.com/groups/goupee Vũ Tuyết Trinh 2

Trang 3

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 goupee.com fb.com/groups/goupee Vũ Tuyết Trinh 3

Trang 4

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 goupee.com fb.com/groups/goupee Vũ Tuyết Trinh 4

Trang 5

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) goupee.com fb.com/groups/goupee Vũ Tuyết Trinh 5

Trang 6

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'; goupee.com fb.com/groups/goupee Vũ Tuyết Trinh 6

Hiển thị 6 trang đầu. Tải tài liệu để xem đầy đủ.

Bình luận (0)

Đăng nhập để tham gia bình luận

Chưa có bình luận nào. Hãy là người đầu tiên!