Giáo trình trình bày lý thuyết cơ bản về CSDL. Giáo trình trình bày rất chi tiết và đặc biệt có hệ thống bài thực hành, lời giải được chuẩn bị sẵn rất cơ bản. Đây là tài liệu rất hữu ích dành cho giáo viên dạy môn CSDL cũng như sinh viên dùng để tham khảo,...
Giảng viên: Hồ Xuân Kiên CHƯƠNG I – CƠ SỞ DỮ LIỆU I.1 Hệ thống tập tin cổ điển (File System) - Ta xét ví dụ việc ứng dụng tin học hóa quản lý trường đại học, phòng đào tạo tổ chức lưu trữ thông tin đội ngũ giáo sư, cán giảng dạy nghiên cứu…của trường nhằm phục vụ cho công tác đào tạo nghiên cứu khoa học Thông tin cán gồm: họ tên, ngày sinh, học hàm, học vị, chuyên môn, khoa,… Hồ sơ CBGD Hồ sơ Phòng ốc Thiết bị Lập kế hoạch tuyển sinh Kế hoạch tuyển sinh - Trong đó, khoa trường, yêu cầu tổ chức giảng dạy nghiên cứu riêng mà khoa tổ chức lưu trữ hồ sơ giáo sư, cán giảng dạy khoa Hồ sơ cán phần trích từ hồ sơ gốc phòng đào tạo thêm số thông tin cần thiết khác… Hồ sơ CBGD Khoa X Học phần Chuyên môn Lập kế hoạch Giảng dạy Kế hoạch Giảng dạy - Ưu điểm việc triển khai riêng rẽ hệ thống tập tin thời gian triển khai ngắn, không đòi hỏi khả đầu tư lớn vật chất, nhân - Khuyết điểm hệ thống tập tin trùng lặp thông tin gây lãng phí (lưu trữ, bảo trì) Sự trùng lặp dẫn đến thiếu quán liệu: Tại thời điểm, thông tin cán khác hai hệ thống tập tin (phòng đào tạo khoa) Cách tổ chức thiếu chia sẻ thông tin Giáo trình sở liệu Giảng viên: Hồ Xuân Kiên hệ thống khó mở rộng hệ thống kêt nối hệ thống riêng rẽ thành hệ thống quản lý chung - Để giải khuyết điểm cách tổ chức liệu theo hệ thống tập tin cổ điển, người ta xây dựng nên khái niệm sở liệu I.2 Cơ sở liệu (Database) I.2.1 Khái niệm sở liệu - Cơ sở liệu (CSDL) Là tập hợp có cấu trúc liệu lưu trữ thiết bị nhớ để thỏa mãn đồng thời cho nhiều người dùng sử dụng với nhiều mục đích khác - Ví dụ, CSDL quản lý sinh viên, CSDL quản lý siêu thị, … - Minh họa sở liệu sau: - Ưu điểm tổ chức thành CSDL làm giảm tối thiểu trùng lặp thông tin đảm bảo tính quán, tính toàng vẹn liệu, dễ dàng chia sẻ thông tin cho nhiều người dùng khác nhau, tiết kiệm tài nguyên tăng hiệu khai thác - Để tổ chức khai thác tốt CSDL phải có hệ quản trị sở liệu (HQTCSDL) I.2.2 Hệ quản trị sở liệu (Database Management System-DBMS) - HQTCSDL phần mềm cung cấp môi trường thuận lợi hiệu để tạo lập, lưu trữ khai thác thông tin CSDL - HQTCSDL giải tốt vấn đề mà cách tổ chức sở liệu đặt tính bảo mật, cạnh tranh truy xuất, an toàn liệu,… - Các HQTCSDL thường dùng là: MS Access, MS SQL Server, Oracle, Foxro,… - Một HQTCSDL phải có ngôn ngữ mô tả liệu (data definition language) Ngôn ngữ cho phép khai báo cấu trúc liệu, môt tả mối quan hệ liệu quy tắc quản lý áp lên liệu - Một HQTCSDL phải có ngôn ngữ thao tác liệu (data manipulation language) cho phép người sử dụng cập nhật liệu (thêm, sửa, xóa), khai thác liệu cho nhiều mục đích khác - Một HQTCSDL phải có ngôn ngữ truy vấn liệu (structured query language-SQL) để thực khai thác liệu - Mỗi HQTCSDL cài đặt chế để giải vấn đề tranh chấp liệu - Mỗi HQTCSDL cung cấp cho người dùng chế bảo mật phục hồi liệu có cố xẩy I.2.3 Các loại mô hình liệu - Mô hình liệu hình thức hóa toán học với tập ký hiệu để mô tả liệu tập phép toán sử dụng để thao tác liệu - Ba loại mô hình thường dùng là: Mô hình thực thể - kết hợp (entity-relationship model) Mô hình liệu quan hệ (relational data model) Mô hình hướng đối tượng (object-oriented data model) Giáo trình sở liệu Giảng viên: Hồ Xuân Kiên I.2.3.1 Mô hình thực thể kết hợp (Entity Relationship - E/R) - Mô hình liệu quan hệ thường dùng HQTCSDL, mô hình liệu mức vật lý Để thành lập mô hình này, thường phải dùng mô hình liệu mức quan niệm để đặc tả, mô hình dạng mô hình thực thể kết hợp Đây mô hình tiêu biểu để thiết kế bước đầu ứng dụng tin học - Ta thấy trình thiết kế CSDL theo sơ đồ sau: - Các khái niệm mô hình thực thể kết hợp I.2.3.1.1 Thực thể - Một thực thể đối tượng giới thực I.2.3.1.2 Tập Thực thể - Một tập thực thể tập hợp thực thể giống - Ví dụ “Quản lý đề án công ty” thì: Một nhân viên thực thể Tập hợp nhân viên tập thực thể I.2.3.1.3 Thuộc tính - Là đặc tính riêng biệt tập thực thể Miền giá trị thuộc tính tập số nguyên số thực xâu ký tự - Ví dụ, tập thực thể nhân viên có thuộc tính: Họ tên Ngày sinh Địa … I.2.3.1.4 Mối quan hệ - Là liên kết hay nhiều tập thực thể - Ví dụ, tập thực thể nhân viên phòng ban có mối liên kết: Một nhân viên thuộc phòng ban Một phòng ban có nhân viên làm trưởng phòng … I.2.3.1.5 Lược đồ thực thể (E-R) - Là đồ thị biểu diễn tập thực thể, thuộc tính mối quan hệ - Các ký hiệu lược đồ Đỉnh: Cạnh đường nối giữa: o Tập thực thể thuộc tính o Mối quan hệ tập thực thể Giáo trình sở liệu Giảng viên: Hồ Xuân Kiên - Ví dụ lược đồ thực thể E-R: I.2.3.1.6 Thể lược đồ thực thể (E-R) - Một CSDL mô tả lược đồ E/R chứa đựng liệu cụ thể gọi thể CSDL - Mỗi tập thực thể có tập hợp hữu hạn thực thể Giả sử tập thực thể NHANVIEN có thực thể NV1, NV2, …NVn - Mỗi thực thể có giá trị cụ thể thuộc tính NV1 có TENNV=“Tung”, NGSINH=“08/12/1955”, PHAI=“‘Nam” NV2 có TENNV= “Hang”, NGSINH=“07/19/1966”, PHAI=“Nu” - Chú ý: Không lưu trữ lược đồ E/R CSDL Lược đồ E/R giúp ta thiết kế CSDL trước chuyển quan hệ liệu xuống mức vật lý I.2.3.1.7 Mối quan hệ - thể - Thể CSDL chứa mối quan hệ cụ thể: Cho mối quan hệ R kết nối n tập thực thể E1, E2, …, En Thể R tập hữu hạn danh sách (e1, e2, …, en) Trong ei giá trị chọn từ tập thực thể Ei - Xét mối quan hệ sau: Giáo trình sở liệu Giảng viên: Hồ Xuân Kiên I.2.3.1.8 Mối quan hệ - Multiplicity - Xét mối quan hệ nhị phân R (binary relationship) tập thực thể E F, tính Multiplicity bao gồm: - (Min, Max) định thực thể e ∈ E tham gia nhiều vào thể R (0,1) – không (1,1) – (0,n) – không nhiều (1,n) – nhiều - Ví dụ: I.2.3.1.9 Mối quan hệ - vai trò - Một loại thực thể tham gia nhiều lần vào quan hệ với nhiều vai trò khác - Ví dụ: I.2.3.1.10 Thuộc tính mối quan hệ - Thuộc tính mối quan hệ mô tả tính chất cho mối quan hệ - Thuộc tính gắn liền với thực thể tham gia vào mối quan hệ Giáo trình sở liệu Giảng viên: Hồ Xuân Kiên I.2.3.1.11 Thuộc tính khóa - Các thực thể tập thực thể cần phải phân biệt - Khóa K tập thực thể E hay nhiều thuộc tính cho Lấy thực thể e1, e2 E Thì e1 e2 có giá trị giống thuộc tính K - Chú ý: Mỗi tập thực thể phải có khóa Một khóa có hay nhiều thuộc tính Có thể có nhiều khóa tập thực thể, ta chọn khóa làm khóa cho tập thực thể - Ví dụ: I.2.3.1.12 Tập thực thể yếu - Là thực thể mà khóa có từ thuộc tính tập thực thể khác - Thực thể yếu (weak entity set) phải tham gia vào mối quan hệ mà có tập thực thể - Ví dụ 1: Giáo trình sở liệu Giảng viên: Hồ Xuân Kiên - Ví dụ 2: I.2.3.1.13 Các bước thiết kế sở liệu - (1) Xác định tập thực thể - (2) Xác định mối quan hệ - (3) Xác định thuộc tính gắn thuộc tính cho tập thực thể mối quan hệ - (4) Quyết định miền giá trị cho thuộc tính - (5) Quyết định thuộc tính khóa - (6) Quyết định (min, max) cho mối quan hệ I.2.3.1.14 Quy tắc thiết kế - Chính xác - Tránh trùng lắp - Dễ hiểu - Chọn mối quan hệ - Chọn kiểu thuộc tính I.2.3.2 Mô hình liệu quan hệ - Là mô hình phát triển vào năm 1970 Codd E.F công ty IBM Sanjoe, Mỹ đề xuất Đối tượng lưu trữ liệu thể bảng chiều gọi quan hệ (Relation Table) Mô hình có sở lý thuyết vững nên mô hình phát triển rộng rãi - Ví dụ: Giáo trình sở liệu Giảng viên: Hồ Xuân Kiên I.2.3.3 Mô hình liệu hướng đối tượng - Từ cuối năm 1980, nhiều ngôn ngữ mô hình liệu hướng đối tượng (Object Oriented Data Model) đề xuất Mỗi ngôn ngữ có hệ thống ký hiệu riêng, phương pháp biểu diễn riêng Năm 1997, tập đoàn Rational công bố ngôn ngữ UML (Unified Modeling Language) ngôn ngữ thông dụng việc mô tả mô hình liệu hướng đối tượng UML sử dụng khái niệm : o Lớp (class) đối tượng: bao gồm thuộc tính phương thức (method) xử lý liệu đối tượng thuộc lớp - Mối quan hệ lớp: Giữa lớp có dạng quan hệ như: o Quan hệ kết hợp (Associaton): thể liên quan ngữ nghĩa hai lớp đối tượng độc lập o Sự kế thừa (inheritance): Lớp thành phần phương thức riêng kế thừa thành phần phương thức lớp cha Giáo trình sở liệu Giảng viên: Hồ Xuân Kiên - Ví dụ mô hình hướng đối tượng: I.2.4 Bài tập Bài tập 1: Hãy lập mô hình thực thể kết hợp để quản lý việc phân công thực đề án công ty với quy tắc quản lý sau: - Mỗi phòng ban công ty có mã số phân biệt tên phòng ban phân biệt Mỗi nhân viên có mã số phân biệt, có tên, làm việc phòng ban - Mỗi đề án gán mã đề án phân biệt, có tên đề án, ngày bắt đầu thực đề án ngày kết thúc thực đề án - Với đề án công ty phân công cho nhiều nhân viên tham gia thực hiện, ghi nhận lại ngày nhân viên bắt đầu tham gia đề án Mỗi nhân viên tham gia nhiều đề án Bài tập 2: Hãy lập mô hình thực thể kết hợp để quản lý hóa đơn bán hàng siêu thị với quy tắc quản lý sau: - Mỗi mặt hàng có mã số phân biệt, có tên, đơn vị tính đơn giá bán hành - Mỗi nhân viên có mã số phân biệt, tên, ngày sinh, giới tính - Khi khách mang hàng đến quầy tính tiền, nhân viên quầy tính tiền quét mã số mặt hàng khách mua in cho khách hóa đơn tính tiền Mỗi hóa đơn tính tiền có mã số phân biệt, có ngày lập chi tiết mặt hàng ghi hóa đơn bao gồm số thứ tự, tên mặt hàng, số lượng, đơn giá thành tiền Mỗi hóa đơn nhân viên lập Bài tập 3: Hãy lập mô hình liệu cho toán quản lý siêu thị với quy tắc sau: - Siêu thị chia thành nhiều khu vực, khu vực có mã số phân biệt có tên, chuyên bán loại mặt hàng, có người quản lý nhiều nhân viên làm việc khu vực - Mỗi nhân viên làm việc khu vực có mã số phân biệt, cần lưu trữ thông tin như: họ tên, ngày sinh, địa chỉ, ngày vào làm việc - Mỗi loại hàng có mã số phân biệt, có tên bao gồm nhiều mặt hàng - Mỗi mặt hàng siêu thị có mã số phân biệt, có tên, đơn vị tính, đơn giá bán hành Mỗi mặt hàng cung cấp nhiều nhà cung ứng Mỗi nhà cung ứng có mã số phân biệt, tên công ty, địa chỉ, số phone, số fax mặt hàng mà nhà cung ứng cung cấp - Mỗi khách hàng mua hàng, quầy tính tiền in bill gồm số hóa đơn, ngày lập hóa đơn, tên khách mua, địa chỉ, danh sách mặt hàng mua kèm theo đơn giá bán Bài tập 4: Hãy lập mô hình liệu cho toán quản lý điểm sinh viên phát biểu sơ sau: - Mỗi sinh viên cần quản lý thông tin như: họ tên (HOTENSV), ngày tháng năm sinh(NGAYSINH), giới tính (NU), nơi sinh(NOISINH), hộ thường trú (TINH) Mỗi sinh viên cấp mã số sinh viên (MASV) để phân biệt với sinh viên khác trường, sinh viên thuộc lớp Giáo trình sở liệu Giảng viên: Hồ Xuân Kiên - Mỗi lớp học có mã số lớp (MALOP) để phân biệt với tất lớp học khác trường: có tên gọi (TENLOP) lớp, lớp thuộc khoa - Mỗi khoa có tên gọi (TENKHOA) mã số (MAKHOA) để phân biệt với khoa khác - Mỗi môn học có tên gọi (TENMH) cụ thể, học số đơn vị học trình (DONVIHT) ứng với môn học mã số (MAMH) để phân biệt với môn học khác - Mỗi giảng viên cần quản lý thông tin: họ tên (HOTENGV), cấp học vị (HOCVI), thuộc chuyên ngành (CHUYENNGANH) gán cho mã số gọi mã giảng viên (MAGV) để phân biệt với giảng viên khác Mỗi giảng viên dạy nhiều môn nhiều khoa, thuộc quản lý hành khoa - Mỗi sinh viên với môn học phép thi tối đa lần, lần thi (LANTHI), điểm thi (DIEMTHI) - Mỗi môn học lớp học phân công cho giảng viên dạy (tất nhiên giảng viên dạy nhiều môn lớp) Giáo trình sở liệu 10 Giảng viên: Hồ Xuân Kiên Lặp 4: Ta thấy X+ = ABCDEG chứa đủ thuộc tính U vây đến bước ta không cần lặp Vậy ta thu kết X+ = ABCDEG Vậy X+ = ABCDEG * Ví dụ 3: Cho • U = {A, B, C, D, F} • Tập phụ thuộc hàm F = {ABC, AED, BCD, CE, EDF} Kiểm tra ABEF có thuộc vào F+ hay không? Hướng dẫn: Ta cần kiểm tra EF ⊆ {AB}+ V.3.3 Bài tập Câu 1: Cho U = {A, B, C, D, E, G, H} Tập phụ thuộc hàm F = {BA, DACE, DH, GHC, ACD} X1 = {BD} X2 = {BCG} Tính a) X1+; b) X2+ Câu 2: Cho F={ABC, AD, DE, ACB} Hai phụ thuộc hàm ABE DC có suy diễn từ F không? Giáo trình sở liệu 67 Giảng viên: Hồ Xuân Kiên V.4 PHỦ CỦA TẬP PHỤ THUỘC HÀM Trong nhiều toán liên quan đến phụ thuộc hàm độ phức tạp tùy thuộc vào số phụ thuộc hàm thuộc tính bên vế trái, vế phải phụ thuộc hàm Do để giảm độ phức tạp người ta thường xây dựng tập phụ thuộc hàm tương đương với tập phụ thuộc hàm ban đầu V.4.1 Định nghĩa phụ thuộc hàm tương đương a) Định nghĩa Giả sử quan hệ R có tập phụ thuộc hàm F G G gọi tương đương với F, ký hiệu F ≡ G F+ = G+ Nói cách khác, F G tương đương phụ thuộc hàm F suy diễn logic từ G ngược lại Nghĩa ∀ f ∈ F f ∈ G+ ∀ g ∈ G g ∈ F+ b) Thuật toán xác định F G tương đương Bước 1: Với phụ thuộc hàm XY∈ F ta xác định xem XY có thành viên G hay không thông qua việc xét Y ⊆ X+ G hay không Bước 2: Với phụ thuộc hàm XY∈ G ta xác định xem XY có thành viên F hay không thông qua việc xét Y ⊆ X+ F hay không Nếu bước F ≡ G Ví dụ 1: Cho phụ thuộc hàm xác định R(ABCDE) sau: F = {ABC, AD, CDE} G = {ABCE, AABD, CDE} F có tương đương với G hay không? F có tương đương với G’ = {ABCDE} hay không? Giải: F có tương đương với G hay không? Bước 1: CDE ∈ F thành viên G A+G ABCDE nên ABC, AD F thành viên G Bước 2: CDE ∈ G thành viên F A+F = ABCDE nên ABCE, AABD G thành viên F Ta thấy bước thỏa mãn nên F G tuơng đương với F có tương đương với G’ = {A BCDE} hay không? Ta thấy {CD}+G’ = CD G’ không chứa phụ thuộc hàm CDE F Vì F G’ không tương đương với Bài tập: Cho G= {ABC, AB, BC, AC} F = {ABC, AB, BC} có tương đương với G hay không? V.4.2 Định nghĩa phủ phụ thuộc hàm - Một tập phụ thuộc hàm G gọi phủ tập phụ thuộc hàm F G ≡ F - Trong ví dụ G xem PHỦ F V.4.3 Phủ tối thiểu Ta hiểu phủ tối thiểu tập phụ thuộc hàm F phủ với số lượng phụ thuộc hàm cho ta loại bỏ bớt phụ thuộc hàm tập phụ thuộc hàm kết không gọi phủ F hay không tương đương với F V.4.3.1 Phụ thuộc hàm có vế trái dư thừa F tập phụ thuộc hàm lược đồ quan hệ R, Z tập thuộc tính, ZY ∈ F Nói phụ thuộc hàm ZY có vế trái dư thừa (phụ thuộc không đầy đủ) có A ∈ Z cho: F ≡ F – {ZY} ∪ {(Z-A)Y} Giáo trình sở liệu 68 Giảng viên: Hồ Xuân Kiên Ngược lại ZY phụ thuộc hàm có vế trái không dư thừa hay Y phụ thuộc hàm đầy đủ vào Z hay phụ thuộc hàm đầy đủ Vi dụ 2: R(A, B, C) F = {ABC, BC} F ≡ F – {ABC} ∪ {(AB-A)C} = {BC} ABC phụ thuộc hàm không đầy đủ BC phụ thuộc hàm đầy đủ Chú ý: Phụ thuộc hàm có vế trái chứa thuộc tính phụ thuộc hàm đầy đủ Ví dụ 3: Cho tập phụ thuộc hàm F = {ABC, BC, ABD} phụ thuộc hàm ABD có vế trái dư thừa B vì: F ≡ F – {ABD} ∪ {(AB-B)D} = {AD} ≡ {ABC, BC, AD} Như vậy: Ta F tập phụ thuộc hàm có vế trái không dư thừa F không chứa phụ thuộc hàm có vế trái dư thừa Thuật toán loại khỏi F phụ thuộc hàm có vế trái dư thừa Bước 1: Lần lượt thực bước cho phụ thuộc XY F Bước 2: Với tập thực X’ ≠ ∅ X Nếu X’ Y ∈ F+ thay XY F X’Y thực lại bước Ví dụ 4: Ở ví dụ phụ thuộc hàm ABD có A+ = ABCD nên AD ∈ F+ Trong F ta thay ABD AD Như F tập phụ thuộc hàm có vế trái không dư thừa Ví dụ 5: Cho F = {ABCD, BCDE, CDEI} Hãy thực loại khỏi F phụ thuộc hàm có vế trái dư thừa? Giải: Ta thấy CD tập BCD CDE ∈ F+ {CD}+ = CDEI Như BCDE phụ thuộc hàm không đầy đủ => F ={ABCD, CDE, CDEI} V.4.3.2 Tập phụ thuộc hàm có vế phải thuộc tính Mỗi tập phụ thuộc hàm F tương đương với tập phụ thuộc hàm G mà vế phải phụ thuộc hàm G gồm thuộc tính Ví dụ 6: Cho F= {ABC, BC, ABD} ta suy F ≡ {AB, AC, BC, ABD} = G G gọi tập phụ thuộc hàm có vế phải thuộc tính V.4.3.3 Tập phụ thuộc hàm không dư thừa Nói F tập phụ thuộc hàm không dư thừa không tồn F’ ⊂ F cho F’ ≡ F Ngược lại F tập phụ thuộc hàm dư thừa Ví dụ 7: Cho F = {ABC, BD, ABD} F dư thừa F ≡ F’ = {ABC, BD} Thuật toán loại khỏi F phụ thuộc hàm dư thừa Bước 1: Lần lượt xét phụ thuộc hàm XY ∈ F Bước 2: Nếu XY thành viên F – {XY} loại XY khỏi F Bước 3: Thực bước cho phụ thuộc hàm F V.4.3.4 Tập phụ thuộc hàm tối thiểu F gọi tập phụ thuộc hàm tối thiểu (hay gọi Phủ tối thiểu) F thỏa mãn đồng thời điều kiện sau: F tập phụ thuộc hàm có vế trái không dư thừa F tập phụ thuộc hàm có vế phải thuộc tính F phụ thuộc hàm không dư thừa Giáo trình sở liệu 69 Giảng viên: Hồ Xuân Kiên Thuật toán tìm phủ tối thiểu tập phụ thuộc hàm Bước 1: Loại khỏi F phụ thuộc hàm có vế trái dư thừa Bước 2: Tách phụ thuộc hàm có vế phải thuộc tính thành phụ thuộc hàm có vế phải thuộc tính Bước 3: Loại khỏi F phụ thuộc hàm dư thừa Chú ý: Theo thuật toán trên, từ tập phụ thuộc hàm F tìm phủ tối thiếu Ftt để F ≡ Ftt thứ tự loại phụ thuộc hàm F khác thu phủ tối thiểu khác Ví dụ 8: Cho lược đồ quan hệ R(A, B, C, D) tập phụ thuộc hàm F sau: F = {ABCD, BC, CD} Hãy tìm phủ tối thiểu F Giải: Bước 1: ABCD phụ thuộc hàm có vế trái dư thừa? Do BCD ∈ F+ B+ = BCD Vậy ABCD phụ thuộc hàm có vế trái dư thừa A =>Kết bước là: F = {BCD, BC, CD} Bước 2: Tách phụ thuộc hàm F thành phụ thuộc hàm có vế phải thuộc tính áp dụng luật tách tiên đề ArmStrong ta được: F ≡ {BD, BC, CD} = F1tt Bước 3: Trong F1tt, BC phụ thuộc hàm dư thừa? - BC ∈ G+ ? với G+ = F1tt – {BC} = {BD, CD} - B+ = BD => BC ∉ G+ => Trong F1tt BC không dư thừa Trong F1tt, BD phụ thuộc hàm dư thừa? - BD∈ G+ ? với G+ = F1tt – {BD} = {BC, CD} - B+ = BCD =>BD ∈ G+ => Trong F1tt BD dư thừa Kết bước cho ta phủ tối thiểu sau: F ≡ {BC, CD} = Ftt V.4.3.5 Bài tập Bài 1: Cho F = {ABC, AB, BC, ABC} Tìm phủ tối thiểu F Bài 2: Cho F= {ABC, BAC, CA, ABD} Tìm phủ tối thiểu F Bài 3: Cho F = {ABC, AB, BA} Tìm phủ tối thiểu F Bài 4: Cho F = {AB, BA, BC, AC, CA} Tìm phủ tối thiểu F Bài 5: Cho lược đồ quan hệ R(MSCD, MSSV, CD, HG} tập phụ thuộc hàm F sau: F = {MSCDCD; CDMSCD; CD,MSSVHG; MSCD,HGMSSV; CD,HGMSSV; MSCD,MSSVHG} Hãy tìm phủ tối thiểu F Giáo trình sở liệu 70 Giảng viên: Hồ Xuân Kiên V.5 KHÓA CỦA LƯỢC ĐỒ QUAN HỆ V.5.1 Định nghĩa Cho R lược đồ quan hệ xác định tập thuộc tính U={A 1, A2, …, An}, với tập phụ thuộc hàm F={f1, f2, …, fn} xác định R K ⊆ U khóa R thỏa mãn điều kiện: (1) KU (2) Không tồn K’ ⊂ K cho K’U Nhận xét: - Tập thuộc tính S gọi siêu khóa S ⊇ K - Thuộc tính A gọi thuộc tính khóa A ∈ K với K khóa R Ngược lại A gọi thuộc tính không khóa - Một lược đồ quan hệ có nhiều khóa tập thuộc tính không khóa rỗng - Việc xác định chuẩn lược đồ quan hệ có liên quan mật thiết với thuật toán tìm khóa V.5.2 Thuật toán tìm khóa lược đồ quan hệ R a Thuật toán Input: Tập phụ thuộc hàm F xác định lược đồ quan hệ R(U) Output: Khóa K R Bước 1: K = U = {A1, A2, …, An}; i:=1; Bước 2: Nếu U ⊆ (K-Ai)+F Thì K:= K – Ai; i:=i+1; Nếu i > n chuyển sang bước 3, không lặp lại bước Bước 3: Xuất K kết thúc Ghi chú: Nếu muốn tìm khóa khác có lược đồ quan hệ R, ta thay đổi thứ tự loại bỏ phần tử K b Ví dụ Cho R(U), U = {A, B, C, D, E, F, G} tập phụ thuộc hàm F xác định R sau: F = {BA, DC, DBE, DFG} ?Tìm khóa R Giải: Áp dụng thuật toán tìm khóa sau: Bước 1: K = ABCDEFG Bước 2: Lặp 1: (BCDEFG)+F = BCDEFGA => K= BCDEFG Lặp 2: (CDEFG)+F = CDEFGBA => K = CDEFG Lặp 3: (DEFG)+F = DEFGCBA => K = DEFG Lặp 4: (EFG)+F = EFG => K = DEFG Lặp 5: (DFG)+F = DFGCBEA => K = DFG Lặp 6: (DG)+F = DGCBEA => K = DFG Lặp 7: (DF)+F = DFCBEAG => K = DF Bước 3: Khóa K DF Giáo trình sở liệu 71 Giảng viên: Hồ Xuân Kiên c Bài tập Bài tập 1: Cho quan hệ R(ABCDEH) với tập phụ thuộc hàm: F = {ABC, CDE, ECA, CDH, HB} Hãy tìm khóa R Bài tập 2: Cho R(U) với U = {ABCDEG} tập phụ thuộc hàm sau: F = {ABC, BD, ADE, CDA} Tìm khóa R V.5.3 Thuật toán tìm tất khóa a Một số khái niệm - Gọi TN tập thuộc tính nguồn chứa: Tất thuộc tính có xuất vế trái không xuất vế phải phụ thuộc hàm Các thuộc tính không xuất vế trái lẫn vế phải phụ thuộc hàm - Gọi TD tập thuộc tính đích chứa tất thuộc tính có xuất vế phải không xuất vế trái phụ thuộc hàm - Gọi TG tập thuộc tính trung gian chứa tất thuộc tính xuất vế trái lẫn vế phải phụ thuộc hàm b Hệ Nếu K khóa R TN ⊆ K TD ∩ K = ∅ c Thuật toán Dựa vào hệ ta có thuật toán tím tất khóa sau: - Input: R(U,F) - Output: Tất khóa R Thuật toán tìm tất khóa R Bước 1: Tạo tập thuộc tính nguồn TN, tập thuộc tính trung gian TG Bước 2: Nếu TG = ∅ Thì Lược đồ quan hệ có khóa K K = TN Kết thúc Ngược lại: Chuyển qua bước Bước 3: Xây dựng 2m tập Xi tập trung gian TG với m = số lượng thuộc tính TG Bước 4: Tìm siêu khóa Si cách ∀ Xi Nếu (TN ∪ Xi)+ = U Thì Si = TN ∪ Xi Bước 5: Tìm khóa cách loại bỏ siêu khóa không tối thiểu ∀ Si, Sj ∈ S Nếu Si ⊂ Sj Thì loại Sj khỏi tập siêu khóa S S lại tập khóa cần tìm d Ví dụ: Cho R(U,F) sau: U = (C,S,Z) F = {CSZ, ZC} Tìm tất khóa R Giải: Áp dụng thuật toán tìm tất khóa ta giải sau: - Tạo tập thuộc tính nguồn TN trung gian TG sau: TN = {S} TG = {C, Z} Giáo trình sở liệu 72 Giảng viên: Hồ Xuân Kiên - Gọi Xi tập tập trung gian TG ta có tất (22) tập TG sau: Xi (TN ∪ Xi) (TN ∪ Xi)+ Siêu khóa Khóa ∅ S S C SC U SC SC Z SZ U SZ SZ CZ SCZ U SCZ - Như quan hệ R có khóa {SC} {SZ} e Bài tập Bài 1: Cho R(U,F) U = {ABCDEG} F = {ABC, BD, ADE, CDA} Tìm tất khóa R Hướng dẫn: - Tìm tập thuộc tính nguồn trung gian TN = {G} TG = {A, B, C, D} - Gọi Xi tập tập trung gian TG ta có tất 16 (24) tập TG sau: Xi (TN ∪ Xi) (TN ∪ Xi)+ Siêu khóa Khóa ∅ G G A GA U GA GA AB GAB U GAB AC GAC U GAC AD GAD U GAD ACD GACD U ABC GABC U GABC ABD GABD U GABD ABCD GABCD U GABCD B GB GBD BC GBC U GBC GBC BD GBD GBD BCD GBCD U GBCD C GC GC CD GCD U GCD GCD D GD GD - Như quan hệ R có khóa {GA}, {GBC} {GCD} Bài 2: Cho R(U,F) U = {ABCD} F = {ABC, DB, CABD} Tìm tất khóa R Bài 3: Cho R(U,F) U = (ABCDEG) F={AB→C, C→ A, BC→D, ACD→B, D→EG, BE→C, CG→BD, CE→G} Hãy tìm tất khóa R Bài 4: Cho R(U,F) U = (ABCDEH) F={A → E, C → D, E → DH} Chứng minh K={ABC} khóa R Bài 5: Cho R(U,F) Giáo trình sở liệu 73 Giảng viên: Hồ Xuân Kiên U = (ABCEIH) F={ABE, ACI, BEI, EC, CIH} Chứng minh ABCH Tìm tất khóa R Giáo trình sở liệu 74 Giảng viên: Hồ Xuân Kiên CHƯƠNG VI – CHUẨN HÓA LƯỢC ĐỒ CƠ SỞ DỮ LIỆU VI.1 DẠNG CHUẨN CỦA LƯỢC ĐỒ QUAN HỆ - Mục đích việc thiết kế tạo tập sơ đồ quan hệ (các bảng liệu) cho phép lưu trữ thông tin cách không dư thừa, đồng thời cho phép tìm kiếm thông tin cách dễ dàng Vậy thiết kế bảng liệu hợp lý? - Ta khảo sát ví dụ sơ đồ quan hệ người cung cấp sau: NGUOICC(MA_NCC, TEN_NCC, DCHI_NCC, MAT_HANG, GIA) - Bây ta xem xét số vấn đề sinh thiết kế sơ đồ quan hệ a Dữ thừa liệu - Khi người cung cấp cung cấp nhiều mặt hàng thông tin người lặp lại nhiều lần nhiều quan hệ - Cụ thể: Mỗi xuất MA_NCC TEN_NCC DCHI_NCC xuất theo b Không quán - Xuất sửa liệu - Ví dụ: Dữ liệu người cung cấp lặp lại nhiều bộ, sửa đổi địa người cung cấp sửa đổi khác giữ nguyên Khi xẩy tượng người cung cấp địa c Dị thường thêm - Nếu người cung cấp chưa cung cấp MAT_HANG cả, thêm giá trị người cung cấp này, đưa MAT_HANG GIA vào d Dị thường xóa - Nếu người cung cấp cung cấp mặt hàng, quan hệ có lưu trữ liệu người cung cấp Khi xóa liệu cung cấp MAT_HANG làm thông tin người Tất vấn đề loại bỏ ta thay sơ đồ NGUOICC sơ đồ quan hệ sau: NGUOICC(MA_NCC, TEN_NCC, DCHI_NCC) CUNGCAP(MA_NCC, MAT_HANG, GIA) - Trong sơ đồ quan hệ NGUOICC TEN_NCC, DCHI_NCC xuất lần, dư thừa liệu quan hệ - Khi cần sửa đổi DCHI_NCC người đó, ta cần thay đổi giá trị địa cũ lưu thông tin người cung cấp quan hệ NGUOICC - Ta bổ sung thêm người cung cấp dù người chưa cung cấp mặt hàng - Trong quan hệ CUNGCAP, lưu trữ thông tin cung cấp người cung cấp, cụ thể lưu trữ mặt hàng giá mặt hàng mà cung cấp Khi ta xóa thông tin NGUOI cung cấp cung không Một cách tiếp cận việc thiết kế liệu thiết kế sơ đồ quan hệ theo dạng chuẩn thích hợp Giáo trình sở liệu 75 Giảng viên: Hồ Xuân Kiên VI.1.1 Dạng chuẩn (First Normal Form – 1NF) Định nghĩa: Một lược đồ quan hệ R dạng chuẩn (1NF), miền giá trị thuộc tính chứa giá trị đơn, tức chứa giá trị chia nhỏ Ví dụ: Xét quan hệ SINHVIEN(MASV, HOTEN, KHOA, TENMH, DIEM) với giá trị sau: MASV HOTEN KHOA TENMH DIEM SV001 Lê Văn Anh CNTT Tin học đại cương Cơ sở liệu Toán rời rạc 10 SV002 Nguyễn Thị Quế Toán Toán cao cấp Ta thấy quan hệ không đạt chuẩn 1NF thuộc tính TENMH DIEM thứ không chứa giá trị nguyên tố (chẳng hạn sinh viên có mã SV001 có giá trị thuộc tính TENMH Tin học đại cương, Cơ sở liệu, Toán rời rạc) Như ta đưa quan hệ dạng chuẩn 1NF sau: MASV HOTEN KHOA TENMH DIEM SV001 Lê Văn Anh CNTT Tin học đại cương SV001 Lê Văn Anh CNTT Cơ sở liệu SV001 Lê Văn Anh CNTT Cơ sở liệu 10 SV002 Nguyễn Thị Quế Toán Toán cao cấp Chú ý: Khi xét dạng chuẩn, ta không nói thêm ta hiểu dạng chuẩn xét phải đạt chuẩn 1NF Quan hệ đạt chuẩn 1NF có vi phạm trùng lặp thông tin VI.1.2 Dạng chuẩn hai (Second Normal Form – 2NF) Định nghĩa: Một lược đồ quan hệ R dạng chuẩn 2NF nếu: R dạng chuẩn 1NF Mọi thuộc tính không khóa R phụ thuộc hàm đầy đủ vào khóa Thuật toán kiểm tra dạng chuẩn 2NF: - Input: R(U,F) - Output: R đạt chuẩn hay không đạt chuẩn Bước 1: Tìm tất khóa R Bước 2: Với khóa K, tìm bao đóng tất tập thực K Bước 3: Nếu có bao đóng S+ chứa thuộc tính không khóa R không đạt dạng chuẩn 2NF Ngược lại R đạt chuẩn 2NF Các ví dụ: Ví dụ 1: Cho R(U,F) sau: U = {A, B, C, D} F = {ABC, BD, BCA} Hỏi: R có đạt chuẩn 2NF? Giải: - Tạo tập thuộc tính nguồn TN trung gian TG sau: TN = {B} TG = {A, C} Giáo trình sở liệu 76 Giảng viên: Hồ Xuân Kiên - Gọi Xi tập tập trung gian TG ta có tất tập TG sau: Xi (TN ∪ Xi) (TN ∪ Xi)+ Siêu khóa Khóa ∅ B BD A AB ABCD AB AB C BC BCDA BC BC AC ACB ACBD ACB - Khóa R K1 = AB, K2 = BC - Ta thấy B tập K1 B+ = BD có chứa thuộc tính không khóa D => Thuộc tính không khóa không phụ thuộc hàm đầy đủ vào khóa => R không đạt chuẩn 2NF Ví dụ 2: Cho R(U,F) U = {G, M, V, N, H, P} F = {GM, GN, GH, GP, MV, NHPM} Hỏi R có đạt chuẩn 2NF hay không? Giải: - Tạo tập thuộc tính nguồn TN trung gian TG sau: TN = {G} TG = {M, N, H, P} - Gọi Xi tập tập trung gian TG ta có tập TG sau: - Ta thấy lược đồ quan hệ R có khóa khóa có thuộc tính nên thuộc tính phụ thuộc đầy đủ vào khóa => R đạt chuẩn 2NF Hệ quả: Nếu R đạt chuẩn tập thuộc tính không khóa R rỗng R đạt chuẩn Nếu tất khóa quan hệ gồm thuộc tính quan hệ đạt chuẩn Giáo trình sở liệu 77 Giảng viên: Hồ Xuân Kiên Bài tập: Cho R(U,F) sau: U = {A, B, C, D, E, H} F = {AE, CD, EDH} Hỏi R có đạt chuẩn NF? VI.1.3 Dạng chuẩn ba (Third Normal Form – 3NF) VI.1.3.1 Thuộc tính phụ thuộc bắc cầu Cho lược đồ quan hệ R xác định tập thuộc tính U X, Y tập U A thuộc tính U Ta nói A phụ thuộc bắc cầu vào X điều sau thỏa mãn Ví dụ: Cho R(A, B, C, D) tập F = {ABC, CD, DC} ta thấy ABD phụ thuộc hàm bắc cầu ABC, CD VI.1.3.2 Định nghĩa dạng chuẩn 3NF Định nghĩa Lược đồ quan hệ R (U,F) đạt dạng chuẩn 3NF phụ thuộc hàm XA ∈ F+ với A ∉ X có: Hoặc X siêu khóa Hoặc A thuộc tính khóa Định nghĩa Lược đồ quan hệ R đạt chuẩn 3NF thuộc tính không khóa R không phụ thuộc bắc cầu vào khóa R Nhận xét Định nghia định nghĩa tương đương với nhau, nhiên việc cài đặt thuật toán kiểm tra dạng chuẩn theo định nghĩa hiệu kiểm tra tính phụ thuộc bắc cầu Hệ Nếu R đạt chuẩn NF R đạt chuẩn 2NF Hệ Nếu R thuộc tính không khóa R đạt chuẩn 3NF VI.1.3.3 Thuật toán kiểm tra dạng chuẩn 3NF Input: R(U,F) Output: R đạt chuẩn 3NF hay R không đạt chuẩn 3NF Bước 1: Tìm tất khóa R Bước 2: Từ F tạo phụ thuộc hàm tương đương F 1tt có vế phải thuộc tính (dựa vào luật tách hệ tiên đề ArmStrong) Bước 3: Nếu với phụ thuộc hàm XA ∈ F1tt với A ∉ X có X siêu khóa A thuộc tính khóa R đạt chuẩn 3NF, ngược lại R không đạt chuẩn 3NF VI.1.3.4 ví dụ Cho R(U,F) sau: U = {A, B, C, D} F = {ABC, DB, CABD} Hỏi R có đạt chuẩn 3NF hay không? Giải: Bước 1: Tìm tất khóa R - Tạo tập thuộc tính nguồn trung gian TN = { ∅ } TG = {ABCD} - Gọi Xi tập tập trung gian TG ta có tập TG sau: Giáo trình sở liệu 78 Giảng viên: Hồ Xuân Kiên Xi (TN ∪ Xi) (TN ∪ Xi)+ Siêu khóa Khóa ∅ ∅ ∅ A A A B B B AB AB ABCD AB AB C C ABCD C C AC AC ABCD AC BC BC ABCD BC ABC ABC ABCD ABC D D BD AD AD ABCD AD AD BD BD BD ABD ABD ABCD ABD CD CD ABCD CD ACD ACD ABCD ACD BCD BCD ABCD BCD ABCD ABCD ABCD ABCD - Ta có tất khóa K1 = {AB}, K2 = {C}, K3 = {AD} => Các thuộc tính khóa A, B, C, D Bước 2: Dựa vào luật tách ArmStrong ta có F1tt có vế phải thuộc tính sau: F1tt = {ABC, DB, CA, CB, CD} Bước 3: Ta thấy với thuộc tính XA ∈ F1tt có A thuộc tính khóa R đạt chuẩn 3NF VI.1.3.5 Bài tập Bài tập 1: Cho R(U,F) sau: U = {N, G, P, M} F = {NGPM, MP} Chứng minh R đạt chuẩn 3NF? Bài tập 2: Cho KE_HOACH(U,F) sau: U = {GIAMTHI, MAMH, GV_DAY, NG_THI, GIO_THI, PHG_THI} F={ GIAMTHIMAMH, NG_THI, GIO_THI, PHG_THI; MAMHGV_DAY; NG_THI, GIO_THI, PHGMAMH; } Chứng minh KE_HOACH không dạng chuẩn 3NF? Giáo trình sở liệu 79 Giảng viên: Hồ Xuân Kiên VI.1.4 Dạng chuẩn BC (Boyce – Codd Normal Form - BCNF) VI.1.4.1 Định nghĩa Một quan hệ R xác định tập thuộc tính U có tập phụ thuộc hàm F dạng chuẩn BCNF với phụ thuộc hàm XA ∈ F+ với A ∉ X có X siêu khóa Hệ 1: Nếu R đạt chuẩn BCNF R đạt chuẩn 3NF Hệ 2: Mỗi lược đồ có thuộc tính đạt chuẩn BCNF (xét phụ thuộc hàm có R) VI.1.4.2 Thuật toán kiểm tra dạng chuẩn BCNF Input: R(U,F) Output: R đạt chuẩn BCNF hay R không đạt chuẩn BCNF? Bước 1: Tìm tất khóa R Bước 2: Từ F tạo phụ thuộc hàm tương đương F 1tt có vế phải thuộc tính (dựa vào luật tách hệ tiên đề ArmStrong) Bước 3: Nếu với phụ thuộc hàm XA ∈ F1tt với A ∉ X có X siêu khóa R đạt chuẩn BCNF, ngược lại R không đạt chuẩn BCNF VI.1.4.3 Ví dụ Cho R(U,F) sau: U = {A, B, C, D, E, I} F= {ACDEBI, CEAD} Hỏi R có đạt chuẩn BCNF hay không? Giải: Bươc 1: Xác định tất khóa R - Tạo tập nguồn tập trung gian TN = {C} TG = {ADE} - Gọi Xi tập tập trung gian TG ta có tập TG sau: Bước 2: Tạo F1tt tương đương với F sau: F1tt = {ACDE, ACDB, ACDI, CEA, CED} Bước 3: Ta thấy với phụ thuộc hàm XA ∈ F1tt có vế trái siêu khóa => R đạt chuẩn BCNF VI.1.4.4 Bài tập Cho R(U,F) sau: U = {A, B, C, D} F= {ABC, DB, CABD} Chứng minh R đạt chuẩn 3NF không đạt chuẩn BCNF Giáo trình sở liệu 80 Giảng viên: Hồ Xuân Kiên VI.2 THUẬT TOÁN KIỂM TRA DẠNG CHUẨN CỦA LƯỢC ĐỒ QUAN HỆ Input: R(U,F) Output: R đạt chuẩn gì? Bước 1: Tìm tất khóa R Bước 2: Kiểm tra chuẩn BCNF R đạt chuẩn BCNF kết thúc thuật toán Ngược lại chuyển qua bước Bước 3: Kiểm tra chuẩn 3NF R R đạt chuẩn 3NF kết thúc thuật tóan Ngược lại chuyển qua bước Bước 4: Kiểm tra chuẩn 2NF R đạt chuẩn 2NF kết thúc thuật toán Ngược lại R đạt chuẩn 1NF VI.3 BÀI TẬP Bài 1: Cho biết dạng chuẩn lược đồ quan hệ sau: R(ABCDEG); F={A→BC, C→DE, E→G} R(ABCDEGH); F={C→AB, D→E, B→G} R(ABCDEGH) F={A→BC, D→E, H→G} R(ABCDEG); F={AB→C, C→B, ABD→E, G→A} R(ABCDEGHI); F={AC→B,BI→ACD,ABC→D,H→I,ACE→BCG,CG→AE} Bài 2: Giả sử ta có lược đồ quan hệ Q(C,D,E,G,H,K) tập phụ thuộc hàm F sau: F = {CK→ H; C →D; E→C; E →G; CK →E} Từ tập F, chứng minh EK → DH Tìm tất khóa Q Xác định dạng chuẩn Q -HẾT - Giáo trình sở liệu 81 [...]... trình cơ sở dữ liệu 33 Giảng viên: Hồ Xuân Kiên III.2 NGÔN NGỮ THAO TÁC DỮ LIỆU Ngôn ngữ thao tác dữ liệu cung cấp cho người dùng khả năng tiến hành các thao tác thêm mới, cập nhật, xóa và truy xuất dữ liệu trong một hay nhiều bảng dữ liệu trong cơ sở dữ liệu Ngôn ngữ thao tác dữ liệu bao gồm các câu lệnh: INSERT, UPDATE, DELETE và SELECT III.2.1 Thêm mới dữ liệu - Dùng để thêm một hay nhiều dòng dữ liệu. .. - Ví dụ: Để có thể lưu trữ dữ liệu là danh sách nhân viên và các đơn vị trong công ty ở trên bộ nhớ của máy tính thì công việc đầu tiên là ta tạo một tập cơ sở dữ liệu có tên là QLNHANVIEN theo câu lệnh sau: CREATE DATABASE QLNHANVIEN III.1.3 Tạo bảng dữ liệu III.1.3.1 Các thuộc tính liên quan đến việc tạo bảng a Kiểu dữ liệu - Mỗi thuộc tính của bảng đều phải có một kiểu dữ liệu. .. DONVI(MADONVI, TENDONVI, DIENTHOAI) Dữ liệu mẫu trong 2 quan hệ trên cho trong 2 bảng dưới đây: Giáo trình cơ sở dữ liệu 26 Giảng viên: Hồ Xuân Kiên III.1.1 Quy tắc đặt tên cho các đối tượng trong cơ sở dữ liệu SQL chuẩn quy định về cách đặt tên các đối tượng như tên cơ sở dữ liệu, tên quan hệ, tên thuộc tính… như sau: Tên tối đa là 32 ký tự bao gồm các chữ cái, chữ số và ký tự gạch dưới Tên phải bắt... [HAVING ] Giáo trình cơ sở dữ liệu 34 Giảng viên: Hồ Xuân Kiên - Ví dụ: Giả sử ta có bảng LUONG_NV bao gồm 2 cột HOTEN và LUONG, câu lệnh dưới đây bổ sung dữ liệu vào bảng LUONG_NV bằng cách lấy dữ liệu trong bảng NHANVIEN INSERT INTO LUONG_NV SELECT HOTEN, HSLUONG*540 FROM NHANVIEN III.2.2 Cập nhật dữ liệu - Dùng để thực hiện sửa đổi dữ liệu đã tồn tại trong bảng - Cú pháp: UPDATE... Bài tập Thực hiện chuyển đổi các mô hình thực thể kết hợp của các bài tập trong chương I thành mô hình thực thể quan hệ Giáo trình cơ sở dữ liệu 14 Giảng viên: Hồ Xuân Kiên II.3 Ngôn ngữ đại số quan hệ - Đại số quan hệ: Là tập hợp các phép toán cơ sở của mô hình dữ liệu quan hệ Biểu thức đại số quan hệ là một chuỗi các phép toán Kết quả của một biểu thức là một thể hiện quan hệ - Ý nghĩa: Cơ sở hình... Byte) TEXT: Dữ liệu kiểu chuỗi với độ dài lớn NTEXT: Dữ liệu kiểu chuỗi với độ dài lớn và hỗ trợ UNICODE b Các ràng buộc dữ liệu (Constraints) Trên các bảng, các ràng buộc dữ liệu được sử dụng nhằm mục đích: Giáo trình cơ sở dữ liệu 27 Giảng viên: Hồ Xuân Kiên Quy định các giá trị dữ liệu hay khuôn dạng dữ liệu được phép chấp nhận trên các thuộc tính của bảng, sử dụng ràng buộc CHECK Quy định... trong một bảng dữ liệu và toàn vẹn tham chiếu trong giữa các bảng dữ liệu trong cơ sở dữ liệu, ràng buộc về khóa chính (PRIMARY KEY, UNIQUE) ràng buộc về khóa ngoại (FOREIGN KEY) Quy định giá trị dữ liệu một một thuộc tính bất kỳ có được để rông hay không, sử dụng ràng buộc NOT NULL, NULL III.1.3.2 Tạo bảng bằng SQL Để tạo một bảng ta cần xác định: Tên bảng Tên các cột Kiểu dữ liệu của các thuộc... của một bộ q, người sử dụng phải huỷ bỏ bộ q và sau đó thêm một bộ q’ với giá trị khoá đã được sửa đổi II.2 Chuyển đổi mô hình thực thể kết hợp sang mô hình dữ liệu quan hệ II.2.1 Các quy tắc chuyển đổi: - Quy tắc 1: Tập thực thể Các tập thực thể (trừ tập thực thể yếu) chuyển thành các quan hệ có cùng tên và tập thuộc tính Ví dụ: Giáo trình cơ sở dữ liệu 12 Giảng viên: Hồ Xuân Kiên - Quy tắc 2:... nghĩa dữ liệu • Ngôn ngữ con thao tác dữ liệu • Ngôn ngữ con điều khiển truy cập SQL thường sử dụng các thuật ngữ: • Quan hệ dùng để chỉ bảng • Thuộc tính dùng để chỉ cột • Bộ giá trị dùng để chỉ các dòng dữ liệu III.1 NGÔN NGỮ ĐỊNH NGHĨA DỮ LIỆU Cơ sở dữ liệu mẫu dùng để thể hiện các ví dụ trong ngôn ngữ SQL sẽ trình bày ở các phần dưới đây là CSDL có tên QLNHANVIEN với 2 quan hệ là NHANVIEN và DONVI... Dữ liệu trong khung nhìn thực chất là dữ liệu được xác định từ một hay nhiều bảng trong CSDL - Khung nhìn được sử dụng nhằm mục đích là: Để che dấu tính phức tạp của dữ liệu Đơn giản hóa các câu truy vấn Hiển thị dữ liệu dưới dạng tiện dụng nhất An toàn dữ liệu - Cú pháp tạo khung nhìn: CREATE VIEW AS Ta sẽ thu được một bảng ảo có tên là tên khung nhìn và