Bài giảng Hệ quản trị cơ sở dữ liệu: Chương 3 - Phạm Nguyên Thảo

40 2 0
Bài giảng Hệ quản trị cơ sở dữ liệu: Chương 3 - Phạm Nguyên Thảo

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

Bài giảng cung cấp cho người học các kiến thức: Khái niệm về phụ thuộc hàm, khái niệm về dạng chuẩn, chuẩn bị cài đặt CSDL, cài đặt chỉ mục với SQL Server. Mời các bạn cùng tham khảo nội dung chi tiết.

Chương 3: Cơ thiết kế sở liệu Phạm Nguyên Thảo Trường Đại học Khoa học Tự nhiên Khoa Công nghệ Thông tin Bộ môn Hệ thống Thơng tin pnthao@fit.hcmuns.edu.vn Nội dung • Khái niệm phụ thuộc hàm • Khái niệm dạng chuẩn • Chuẩn bị cài đặt CSDL • Cài đặt mục với SQL Server Khái niệm phụ thuộc hàm • Phụ thuộc hàm (PTH) – functional dependency thể phụ thuộc tập thuộc tính (Y) tập thuộc tính khác(X) – Định nghĩa dựa ngữ nghĩa, qui tắc tìm hiểu từ mơi trường ứng dụng – Ký hiệu XY Khái niệm PTH (tt) • Cho quan hệ Q(X, Y, Z), với X, Y, Z tập thuộc tính, X  , Y   – Một thể TQ Q thỏa PTH XY nếu: q,q’TQ, q.X = q’.X =>q.Y = q’.Y – TQ vi phạm PTH XY nếu: q,q’ TQ: q.X = q’.X q.Y  q’.Y – PTH XY gọi định nghĩa Q TQ thể Q, TQ thỏa PTH – PTH XY gọi phụ thuộc hàm hiển nhiên  Y X PTH – ví dụ • Xét lịch xếp lớp sở giảng dạy ngày, ta có phụ thuộc hàm sau: – (1) GV, Giờ  Lớp ( biết giảng viên dạy, ta biết lớp mà giảng viên dạy vào đó) – (2) Giờ, Lớp  Phịng (Cho học lớp học cụ thể, ta biết lớp học phịng vào đó)  Nếu biết giảng viên dạy, ta biết Phịng mà giảng viên dạy vào  (3) GV,Giờ  Phòng Hệ tiên đề Amstrong để suy dẫn PTH • Luật phản xạ: Y X, XY • Luật cộng: Nếu X Y Z  W X,W Y,Z • Luật bắc cầu: Nếu X Y Y Z X Z Một số luật dẫn thơng dụng khác • Từ luật dẫn tiên đề Amstrong ta suy luật dẫn khác, số sau thường sử dụng: – Luật bắc cầu giả: Nếu X Y Y,W  Z X,W  Z – Luật hội: Nếu X Y X Z X Y,Z – Luật phân rã: Nếu X Y Z Y X Z Ghi chú: X,Y hay XY có nghĩa X Y Khái niệm khóa dựa PTH • Cho quan hệ Q F tập PTH định nghĩa Q • K  Q+ khóa Q nếu: i f: K Q+  F+ (K xác định tất thuộc tính cịn lại Q+) ii K’  K | K’  Q+ (ghi chú: Q+ tập thuộc tính quan hệ Q ) Nội dung • Khái niệm phụ thuộc hàm • Khái niệm dạng chuẩn • Chuẩn bị cài đặt CSDL • Cài đặt mục với SQL Server Tình trạng trùng lắp thơng tin • Phụ thuộc hàm loại ràng buộc tồn vẹn • Khi thêm, xóa, cập nhật liệu phải đảm bảo khơng vi phạm PTH – Các PTH mà vế trái khóa: kiểm tra hiệu chế khóa HQT – Các PTH mà vế trái khơng khố: khó kiểm tra, thường gây tình trạng trùng lắp thông tin 10 Lựa chọn mục (tt) • Nghĩ đến việc cài đặt mục cho trường hợp sau: – Trường hợp 1: Có nhu cầu truy vấn thường xuyên bảng Q theo số (tập)thuộc tính Ví dụ: GiaoDich(MãGD, …,NgàyGD) Có nhu cầu truy xuất thường xuyên giao dịch ngày khoảng thời gian định: cài đặt mục thuộc tính NgayGD quan hệ GiaoDich 26 Lựa chọn mục (tt) – Trường hợp 2: tập thuộc tính tham gia vào phép kết câu truy vấn xảy thường xuyên Ví dụ: HocSinh(STT, Lop, HoTen,…) KetQua(STTHS, Lop, Mon, Diem) Thường xuyên có nhu cầu truy vấn: cho biết kết học tập học sinh select hs.STT, hs.Lop, hs.HoTen, kq.Mon, kq.Diem from HocSinh hs join KetQua kq on hs.STT = kq.STT and hs.Lop = kq.Lop Cài đặt mục (STT, Lop) cho quan hệ KetQua 27 Lựa chọn mục (tt) – Trường hợp (tt) Tổng qt: mơ hình quan hệ, xác định đường truy xuất thường xuyên: Q1(AX) Q2(ABY)  Từ Q1(có giá trị cụ thể A a) có nhu cầu truy xuất thường xuyên Q2 tương ứng (tìm kiếm Q2 với A = a) : khai báo mục (A) cho Q2 Truy xuất thường xuyên có ngữ nghĩa tương tự phép kết Lưu ý: mục (AB) khác với hai mục (A) (B) 28 Các loại mục • Có hai loại mục: – Clustered index – Nonclustered index 29 Clustered index • Các xếp vật lý theo mục (thật nằm nút cây) • Mỗi bảng có clustered index, thường khóa 30 Nonclustered index: • Chỉ mục logic, liệu thật không xếp vật lý theo mục • Nút trỏ trỏ đến vị trí liệu, trỏ đến giá trị clustered index (trong trường hợp bảng có clustered index) 31 Nonclustered index (tt): – Khơng có clustered index: 32 Nonclustered index (tt) – Có clustered index 33 Lựa chọn mục (tt) • Một số cân nhắc chọn mục: – Sử dụng nhiều mục tăng tốc độ truy vấn, làm giảm hiệu thao tác thêm/xoá/ cập nhật liệu – Không nên tạo mục bảng nhỏ (vài trăm dòng) – Chỉ nên chọn mục mà giá trị tương ứng với số Nếu giá trị mục ứng với 20% số lượng bảng, thực truy vấn bình thường cách duyệt qua dòng bảng hiệu 34 Một số cân nhắc chọn mục (tt) – Các giá trị mục phải phân bố bảng – Cố gắng dùng mục với số thuộc tính (chiếm khơng gian cần chi phí trì mục với số thuộc tính lớn) – Clustered index phải nhỏ (số thuộc tính ít, kích thước nhỏ), mục nonclustered phải gắn kết tới 35 Nội dung • Khái niệm phụ thuộc hàm • Khái niệm dạng chuẩn • Chuẩn bị cài đặt CSDL • Cài đặt mục với SQL Server 36 Một số qui định • Một bảng có tối đa 249 nonclustered index (bao gồm index ngầm định khai báo khoá mục) • Kích thước tối đa mục (tổng kích thước thuộc tính tham gia vào mục) khơng q 900 bytes • Mặc định: mục clustered khai báo ngầm định với khai báo khố chính, trường hợp khác nonclustered (tất nhiên định khác đi) 37 Cú pháp khai báo mục Create [ Unique ][ Cluster| Nonclustered] Index index_name On {table | view } (column [ Asc | Desc] [ , n ] ) 38 Cài đặt mục – Ví dụ Create nonclustered index idx_STTHS_Lop On KETQUA (STTHS, Lop) 39 Q&A 40 ... nhiên  Y X PTH – ví dụ • Xét lịch xếp lớp sở giảng dạy ngày, ta có phụ thuộc hàm sau: – (1) GV, Giờ  Lớp ( biết giảng viên dạy, ta biết lớp mà giảng viên dạy vào đó) – (2) Giờ, Lớp  Phòng... học lớp học cụ thể, ta biết lớp học phịng vào đó)  Nếu biết giảng viên dạy, ta biết Phòng mà giảng viên dạy vào  (3) GV,Giờ  Phòng Hệ tiên đề Amstrong để suy dẫn PTH • Luật phản xạ: Y X,... Q2(Q+ - Y) – Đệ qui, phân rã tiếp Q1 Q2 quan hệ kết đạt dạng chuẩn mong muốn 20 Nâng cấp lược đồ - Thuật toán phân rã (tt) • Ví dụ: LỊCH_COI_THI (GV_CT, N,G,P,M,GV) F = {f1: GV_CTN,G,P: giảng

Ngày đăng: 11/05/2021, 00:45

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan