Bài giảng Tin chỉnh lược đồ 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)
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)
Tóm tắt nội dung tài liệu: Bài giảng Tin chỉnh lược đồ cơ sở dũ liệu
![Bài giảng Tin chỉnh lược đồ cơ sở dũ liệu Bài giảng Tin chỉnh lược đồ cơ sở dũ liệu](https://s1.tailieubachkhoa.net/rl6k7x3q9zfh00j8/thumb/2022/01/01/bai-giang-tin-chinh-luoc-do-co-so-du-lieu_24LtGMJNDj.jpg)
1Thiết kế và quản trị cơ sở dữ liệu Vũ Tuyết Trinh 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 2 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 2Thiết kế và quản trị cơ sở dữ liệu Vũ Tuyết Trinh 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 3Thiết kế và quản trị cơ sở dữ liệu Vũ Tuyết Trinh 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 4Thiết kế và quản trị cơ sở dữ liệu Vũ Tuyết Trinh 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 5Thiết kế và quản trị cơ sở dữ liệu Vũ Tuyết Trinh 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) 6Thiết kế và quản trị cơ sở dữ liệu Vũ Tuyết Trinh 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'; 7Thiết kế và quản trị cơ sở dữ liệu Vũ Tuyết Trinh Exercises 13 14
File đính kèm:
bai_giang_tin_chinh_luoc_do_co_so_du_lieu.pdf