1936, 1944, 1950, 1954, 1958, 1966, 1968, 1971, 1980, 1990: Tin học ─> CNTT+ Thời gian đầu tiên, khi mới có ngành tin học, nó chỉ có các môn học cơ bản sau: Thuật toán, Lập chương trình máy tính, ngôn ngữ lập trình, …Chưa có môn học riêng về Cơ sở dữ liệu (CSDL).+ Thực tế đơn giản: Dữ liệu chưa nhiều Chưa có môn học riêng về CSDL, vì có thể giải quyết bài toán thực tế một cách đơn giản như sau.Để quản lý học sinh trong một trường học, người ta chỉ cần tạo lập một bảng danh sách các học sinh (gồm các cột: Họ tên, Ngày sinh, Địa chỉ, …), sau đó ghi vào tệp (File). Rõ ràng làm như vậy có thể dẫn tới dư thừa dữ liệu, tốn bộ nhớ, hậu quả tiếp theo là tìm kiếm thông tin sẽ chậm hay không chính xác. + Thực tế phức tạp: Dữ liệu rất nhiều Dữ liệu ngày một nhiều, nếu ghi nhớ chúng không “ngăn lắp”, không theo một “trật tự” nhất định, thì rất khó tìm kiếm thông tin, và tốn bộ nhớ. Môn học mới cần có, nhằm hướng dẫn cách thức ghi nhớ dữ liệu và phương pháp khai thác dữ liệu một cách hiệu quả. Đó chính là môn CSDL.
NHẬP MÔN CƠ SỞ DỮ LIỆU Chương 1. CÁC KHÁI NIỆM CƠ BẢN 1.1. KHÁI NIỆM CƠ SỞ DỮ LIỆU TRONG TIN HỌC 1.1.1. Các mốc lịch sử phát triển Tin học 1936, 1944, 1950, 1954, 1958, 1966, 1968, 1971, 1980, 1990: Tin học ─> CNTT + Thời gian đầu tiên, có ngành tin học, có môn học sau: Thuật toán, Lập chương trình máy tính, ngôn ngữ lập trình, … Chưa có môn học riêng Cơ sở liệu (CSDL). + Thực tế đơn giản: Dữ liệu chưa nhiều - Chưa có môn học riêng CSDL, giải toán thực tế cách đơn giản sau. Để quản lý học sinh trường học, người ta cần tạo lập bảng danh sách học sinh (gồm cột: Họ tên, Ngày sinh, Địa chỉ, …), sau ghi vào tệp (File). - Rõ ràng làm dẫn tới dư thừa liệu, tốn nhớ, hậu tìm kiếm thông tin chậm hay không xác. + Thực tế phức tạp: Dữ liệu nhiều - Dữ liệu ngày nhiều, ghi nhớ chúng không “ngăn lắp”, không theo “trật tự” định, khó tìm kiếm thông tin, tốn nhớ. - Môn học cần có, nhằm hướng dẫn cách thức ghi nhớ liệu phương pháp khai thác liệu cách hiệu quả. Đó môn CSDL. 1.1.2. Các chuyên ngành CNTT Cách 1: Hai chuyên ngành: Tin học lý thuyết: Thuật toán, CSDL, lập trình, … Tin học ứng dụng: Bài toán KH-KT, Bài toán công tác quản lý, Bài toán hoạt động kinh tế, Cách 2: Năm chuyên ngành: Khoa học máy tính, Máy tính phần cứng, Mạng máy tính truyền thông, Công nghệ phần mềm, Hệ thống thông tin. 1.1.3. Khái niệm Dữ liệu, Cơ sở liệu, Hệ Cơ sở liệu 1/. Khái niệm Dữ liệu - Dữ liệu (data) hiểu đơn giản số liệu họ tên, địa chỉ, số điện thoại học sinh hay khách hàng, . - Dữ liệu phức tạp hình ảnh, âm thanh, liệu đa phương tiện (Multimedia), … 2/. Khái niệm Cơ sở liệu - Cơ sở liệu (Database: CSDL) hiểu đơn giản tập hợp liệu có liên quan, lưu trữ nhớ theo cấu trúc định, xác định trước. - Trong hệ thống thông tin, CSDL thực chất kho chứa liệu. Ví dụ: Để quản lý học sinh trường học, có cách tạo lập danh sách học sinh. + Cách (Khi chưa có môn học CSDL): Người ta cần tạo lập bảng danh sách học sinh (gồm cột: Họ tên, Ngày sinh, Địa chỉ, Ngành học, Lớp học, …), sau ghi vào tệp (File). + Cách (Khi có môn học CSDL): Người ta không tạo bảng danh sách học sinh, mà tạo nhiều bảng liệu liên quan, CSDL có nhiều bảng liệu, ví dụ: - Một bảng liệu gồm cột: Họ tên, Ngày sinh, địa chỉ, Mã ngành học, Mã lớp học, … - Một bảng liệu phụ gồm cột: Mã ngành học, tên ngành học. - Một bảng liệu phụ gồm cột: Mã lớp học, tên lớp học. Với cách thức tạo lập CSDL tránh dư thừa liệu, tốn nhớ, tốc độ tìm kiếm thông tin nhanh hơn, … - Trong bảng liệu chính, thay phải ghi tên ngành học, dài: tốn nhớ, Người ta ghi Mã ngành học: tốn nhớ, mặt khác tìm kiếm nhanh ! 3/. Khái niệm Hệ Cơ sở liệu + Hệ Cơ sở liệu (CSDL) bao gồm thành phần sau: - Cơ sở liệu thông tin (Kho thông tin). - Các chương trình thực quản lý CSDL: Cập nhật khai thác CSDL. (Quản lý Kho thông tin). 1.1.4. Khái niệm Hệ quản trị Cơ sở liệu Hệ quản trị Cơ sở liệu + Hệ quản trị Cơ sở liệu (DataBase Management System: DBMS) Hệ chương trình trợ giúp trình tạo lập Hệ CSDL quản lý CSDL. + Hệ quản trị Cơ sở liệu có ba thành phần chính: - Bộ công cụ hỗ trợ tạo lập Cơ sở liệu. - Bộ công cụ hỗ trợ quản lý Cơ sở liệu (cập nhật, khai thác CSDL). - Ngôn ngữ lập trình để tạo lập chương trình quản lý CSDL (cập nhật, khai thác). Ví dụ: + Hệ QT CSDL Foxpro gồm có: - Bộ công cụ hỗ trợ tạo lập Cơ sở liệu. - Bộ công cụ hỗ trợ quản lý Cơ sở liệu (cập nhật, khai thác CSDL). - Ngôn ngữ lập trình Foxpro để tạo lập chương trình quản lý CSDL. + Hệ QT CSDL Oracle + Hệ QT CSDL SQL Server Ví dụ CSDL KHACH_HANG VAN_CHUYEN MSKH S1 TÊNKH An TP HCM S2 Hoà HN S3 Bình NT S4 Trang NT TP HCM HN NT DAT_HANG MAT_HANG MSMH P1 TÊNMH Táo ĐG 650 P2 Cam 500 P3 Chanh 450 PVC 01 02 03 MSKH S1 S1 S1 S2 S2 S3 S4 MSMH P1 P2 P3 P1 P3 P2 P2 SL 300 200 400 100 300 200 210 Định nghĩa CSDL: định cấu trúc “bảng”, bao gồm phần tử liệu kiểu liệu tương ứng. Xây dựng CSDL: Đưa liệu vào “bảng” KHACHHANG, VANCHUYEN, MATHANG, DATHANG. Xử lý CSDL: Thực truy vấn phép cập nhật, chẳng hạn: “Khách hàng có tên An đặt mặt hàng nào”, “Tên khách hàng đặt mặt hàng Cam”, “Tính thành tiền”… 1.1.5. Khái niệm Hệ thống thông tin Để xây dựng Hệ thống thông tốt, cần phải hiểu rõ chuyên ngành CNTT 1.2. CÁC MÔ HÌNH CƠ SỞ DỮ LIỆU 1.2.1. Phân loại tổng quan 1/. Mô hình CSDL bậc thấp (Mức cụ thể - Mức Vật lý) - Mô hình quan tâm tới cách thức biểu diễn liệu cụ thể (của CSDL) nhớ máy tính. Tức quan tâm tới việc liệu CSDL lưu trữ nhớ máy tính ? - Mô hình có ý nghĩa nhiều với chuyên gia máy tính, có ý nghĩa với người dùng CSDL. Ví dụ: 2/. Mô hình CSDL bậc cao (Mức Quan niệm - Logic) - Mô hình quan tâm đến đối tượng biểu diễn CSDL, quan tâm tới cách thức biểu diễn liệu cụ thể nhớ máy tính. - Mô hình có ý nghĩa nhiều với với người dùng CSDL, có ý nghĩa.với chuyên gia máy tính Ví dụ: - Mô hình CSDL dạng quan hệ thực thể (Entity Relationship Model) - Mô hình CSDL hướng đối tượng (Object Oriented Model) 3/. Mô hình CSDL thể (Mức Logic - Cụ thể) - Mô hình CSDL “thể hiện” nằm hai mô hình trên. - Mô hình có ý nghĩa với chuyên gia máy tính, với người dùng CSDL. Ví dụ: - Mô hình CSDL dạng phân cấp, Mô hình CSDL dạng đồ thị (mạng), Mô hình CSDL dạng quan hệ. 1.2.2. Phân loại cụ thể Chương 2. CƠ SỞ DỮ LIỆU DẠNG QUAN HỆ 2.1. CÁC KHÁI NIỆM TRONG MÔ HÌNH CSDL QUAN HỆ Mô hình CSDL quan hệ Codd đề nghị năm 1970. 2.1.1. Miền, thuộc tính, quan hệ 1/. Khái niệm Miền: + Miền (domain) tập hợp (các giá trị đối tượng) D. Mỗi miền có tên, mô tả, kiểu liệu khuôn dạng. 2/. Quan hệ: + Tích Decac: Gọi D1, D2, …, Dn n miền, Tích Decac n miền D1 x D2 x … x Dn. + Quan hệ tập Tích Decac. Tức Quan hệ r ⊆ D1 x D2 x … x Dn. 3/. Bảng: + Bảng quan hệ hữu hạn, biều diễn thành hàng cột. Giá trị cột thuộc miền Di đó. Mỗi hàng phần tử quan hệ r . Ví dụ Tên miền M_HOTEN M_SOĐT Mô tả Kiểu liệu Khuôn dạng Tập họ tên người VN Xâu ký tự Tập số điện thoại VN Xâu chữ số (ddd)dddddd CMND 220877654 345267656 123123456 Địa Hà nội Hải phòng Hà nội HOTEN Lê Chí Phèo Trần Kim Nở Lý Bá Kiến ĐT_NHA (056)789543 (088)765890 (058)908756 4/. Thuộc tính: ĐT_CQ (08)9876548 (058)876984 (058)888888 TUOI 30 25 50 + Thuộc tính (Attribute) lớp liệu mô tả đặc điểm, tính chất phát sinh CSDL, nghĩa dựa vào tính chất lớp liệu này. Mỗi thuộc tính có giá trị miền (domain) thuộc tính. Một mục liệu (item) thuộc tính giá trị miền thuộc tính này. Một thuộc tính dạng kết nối (joined) định nghĩa từ vài thuộc tính khác; domain tập tích Đề các domain thuộc tính này. Ký hiệu: - Gọi c giá trị thuộc tính C. Nếu C tạo thành từ thuộc tính C1, C2, .,Cn, ta ký hiệu c.C1 c(C1) giá trị c thuộc tính C1. 5/. Lược đồ quan hệ: Ký hiệu R(A1, A2, …, An) Là tập thuộc tính R = {A1, A2, …, An}, thuộc tính Ai có miền giá trị Di . + Lược đồ quan hệ để mô tả đối tượng loại quan hệ đối tượng. + Bậc lược đồ quan hệ số lượng thuộc tính lược đồ quan hệ. Ví dụ: GV(HOTEN, CMND, ĐT_NHA, ĐC, ĐT_CQ, TUOI) GV tên lược đồ quan hệ, có bậc 6. HOTEN thuộc tính, có miền giá trị DOM(TEN) = M_HOTEN. ĐT_NHA, ĐT_CQ thuộc tính, có miền giá trị DOM(ĐT_NHA) = DOM(ĐT_CQ) = M_SĐT (Miền Số ĐT). 6/. Quan hệ + Một quan hệ (Relation) r lược đồ quan hệ R(A1, A2, …, An), ký hiệu r(R). Quan hệ r tập hữu hạn (dòng, ghi, record) R. Trong quan hệ hai giống nhau. + Một (n-tuple) R phần tử tính Đề domain tương ứng với n thuộc tính R. + Một thực thể (entity) r R R thoả mãn vị từ ||R||(r)=true. Chú ý: Thực tế tích Đề hay không thực thể quan hệ R. Ví dụ: Quan hệ r lược đồ quan hệ GV HOTEN Lê Chí Phèo Trần Kim Nở Lý Bá Kiến CMND 220877654 345267656 123123456 ĐT_NHA (056)789543 (088)765890 (058)908756 ĐC Hà nội Hải phòng Hà nội ĐT_CQ (08)9876548 (058)876984 (058)888888 TUOI 30 25 50 Các ký hiệu mô hình CSDL quan hệ Lược đồ quan hệ R bậc n: R(A1, A2, …, An) Tập thuộc tính A: A = {A1, A2, …, An} = A+ Bộ t quan hệ r(R): t = , vi giá trị thuộc tính Ai t[Ai] ( t.Ai , t(Ai) ): giá trị thuộc tính Ai t. t[Au, Aw, …, Az]: giá trị thuộc tính Au, Aw, …, Az t. 2.1.2. Khóa lược đồ quan hệ 1/. Siêu khoá: Tập thuộc tính khác rỗng SK ⊆ R, gọi siêu khóa, ∀ r, ∀ t1, t2 ∈ r, t1 ≠ t2 ⇒ t1[SK] ≠ t2[SK] Nhận xét: Mỗi lược đồ quan hệ có tối thiểu siêu khóa. 2/. Khóa: Tập thuộc tính khác rỗng SK ⊆ R, gọi khoá, thỏa mãn đồng thời hai điều kiện: (Tóm lại: Khóa siêu khóa “nhỏ nhất”) + K siêu khóa lược đồ quan hệ R. + ∀ K’ ⊂ K, K’ ≠ K, K’ siêu khoá R. Chú ý: - Mọi quan hệ có siêu khóa “tầm thường”, tập tất thuộc tính quan hệ này. - Khóa siêu khóa “nhỏ nhất” Khóa tập thuộc tính nhỏ nhất, nhờ phân biệt ghi với nhau. Giá trị khóa dùng để nhận biết quan hệ. - Khoá xác định dựa vào ý nghĩa thuộc tính Lược đồ quan hệ. - Lược đồ quan hệ có nhiều khoá (gọi khóa dự tuyển – Candidate key). Một khóa định làm khóa (primary key) quan hệ. Khóa thường chọn khóa tối thiểu. Ví dụ: GIẢNG_KHÓA(MÔN, GVIÊN, HKỲ, LỚP, PHÒNG, CA, THỨ) Tân từ: Mỗi giáo viên (GVIÊN), vào học kỳ (HKỲ), dạy môn học (MÔN) cho lớp (LỚP), phòng (PHÒNG), vào ca giảng (CA) thứ tuần (THỨ). ⇒ khoá: {HKỲ, PHÒNG, CA, THỨ}, {MÔN, LỚP}, {GVIÊN, HKỲ, CA, THỨ} + Khi cài đặt quan hệ thành bảng (Table), cần chọn khoá làm sở để nhận biết bộ. Khóa chọn gọi khóa (primary key) ⇒ thuộc tính khóa phải khác trống (khác null). Thường chọn khóa có số thuộc tính làm khóa chính. Qui ước: thuộc tính khóa gạch dưới. VD: GIẢNG_KHÓA(MÔN, GVIÊN, HKỲ, LỚP, PHÒNG, CA, THỨ) 2.1.3. Lược đồ CSDL quan hệ ràng buộc toàn vẹn (RBTV) Lược đồ CSDL quan hệ = {lược đồ quan hệ} + {Ràng buộc toàn vẹn} 10 4.4.3. Dạng chuẩn Định nghĩa dạng chuẩn 4: Một lược đồ quan hệ R dạng chuẩn (4NF) tập hợp phụ thuộc F (gồm phụ thuộc hàm phụ thuộc đa trị) với phụ thuộc đa trị không tầm thường X→→Y F+, X siêu khóa R. Như vậy, lược đồ quan hệ vi phạm 4NF chứa phụ thuộc hàm đa trị không mong muốn. Ví dụ, lược đồ quan hệ NHÂNVIÊN ví dụ vi phạm 4NF phụ thuộc hàm đa trị TênNV→→TênDA TênNV→→ TênconNV, TênNV siêu khóa. Giả sử tách bảng NHÂNVIÊN thành hai bảng sau: NV_DA TênNV Nam Nam TênDA DA01 DA02 NV_CON TênNV Nam Nam TênconNV Lan Hoa Hai bảng 4NF phụ thuộc đa trị TênNV→→TênDA TênNV →→ TênconNV phụ thuộc đa trị tầm thường. Trong hai bảng phụ thuộc đa trị không tầm thường phụ thuộc hàm. 4.4.4. Tách có tính chất nối không mát thành quan hệ chuẩn 4NF Khi tách lược đồ quan hệ R thành R1 = (X∪Y) R2 = (R-Y) dựa phụ thuộc hàm đa trị X→→Y R, phép tách có tính chất nối không mát. Đó điều kiện cần đủ cho phép tách lược đồ thành hai lược đồ có tính chất nối không mát. Ta có tính chất sau: Tính chất 1’: Các lược đồ quan hệ R1 R2 tạo thành phép tách có tính chất nối không mát R (R1∩ R2)→→ (R1 –R2) (hoặc (R1∩ R2) →→ (R1 –R2)). Áp dụng tính chất có thuật toán tạo phép tách có tính chất nối không mát thành lược đồ quan hệ dạng 4NF. Thuật toán 4.5 Tách quan hệ thành quan hệ 4NF với tính chất nối không mát. Input: Một quan hệ vũ trụ R, tập phụ thuộc hàm phụ thuộc đa trị F 1. Đặt D := {R} ; 2. Khi có lược đồ quan hệ Q D không 4NF, thực 56 {Chọn lược đồ quan hệ Q D không 4NF; Tìm phụ thuộc đa trị không tầm thường X→→Y Q vi phạm 4NF; Thay Q D hai lược đồ quan hệ (Q – Y) (X ∪ Y); }. Ví dụ áp dụng 1: Xét lược đồ NHÂNVIÊN(TênNV, TênDA, TênconNV). Ta có phụ thuộc hàm đa trị TênNV→→TênDA TênNV siêu khóa, vi phạm 4NF. Ta tách thành NV_DA(TênNV, TênDA), NV_CON(TênNV, TênconNV). Ví dụ áp dụng 2: Cho quan hệ SẢNXUẤT sau: SẢNXUẤT Phânxưởng Nhânviên Phân Hoàng Sảnphẩm Bu lông xưởng Phân Yến Đinh xưởng Phân Hoàng Đinh xưởng Phân Yến Bu lông xưởng Phân Minh Ốc vít xưởng Phân Hải Kìm điện xưởng Phân Minh Kìm điện xưởng Phân Hải Ốc vít xưởng Trong bảng có hai phụ thuộc đa trị Phânxưởng→→Nhânviên, Phânxưởng→→Sảnphẩm. Quan hệ SẢNXUẤT vi phạm 4NF phụ thuộc hàm đa trị có Phânxưởng siêu khóa. Chúng ta tách quan hệ SẢNXUẤT thành hai quan hệ PX_NV(), PX_SP(): 57 4. 5. NV_DA Phânxưởng Nhânviên Phân xưởng Hoàng Các phụ NV_CON Phânxưởng Sảnphẩm Phân xưởng Bu lông Phân xưởng Yến Phân xưởng Đinh Phân xưởng Minh Phân xưởng Ốc vít Phân xưởng Hải Phân xưởng Kìm điện thuộc nối dạng chuẩn (Fifth Normal Form - 5NF) Như thấy, tính chất tính chất 1’ cho điều kiện để lược đồ quan hệ R tách thành hai lược đồ quan hệ R1 R2 phép tách có tính chất nối không mát. Tuy nhiên, số trường hợp, phép tách có tính chất nối không mát R thành hai lược đồ quan hệ có phép tách có tính chất nối không mát thành nhiều hai quan hệ. Hơn nữa, phụ thuộc hàm R chuẩn BCNF phụ thuộc đa trị có R vi phạm 4NF. Khi phải sử dụng đến phụ thuộc khác gọi phụ thuộc nối có phụ thuộc nối thực phép tách đa chiều thành dạng chuẩn (5NF). Một phụ thuộc nối, ký hiệu JD(R1, R2, …, Rn) lược đồ quan hệ R ràng buộc trạng thái r R. Ràng buộc tuyên bố trạng thái hợp pháp r R phải có phép tách có tính chất nối không mát thành R1, R2, ., Rn. Điều nghĩa là: *(πR1(r), πR2(r), …πRn(r)) = r Một phụ thuộc nối JD(R1, R2, …, Rn) phụ thuộc nối tầm thường lược đồ quan hệ Ri JD(R1, R2, …, Rn) R. Định nghĩa dạng chuẩn 5: Một lược đồ quan hệ R dạng chuẩn (5NF) (hoặc dạng chuẩn nối chiếu (PJNF- Project-Join normal form) tấp F phụ thuộc hàm, phụ thuộc đa trị phụ thuộc nối với phụ thuộc nối không tầm thường JD(R1, R2, …, Rn) F+, Ri siêu khóa R. Ví dụ 1: Xét quan hệ CUNGCẤP gồm toàn thuộc tính khóa Tênnhàcungcấp Tênhàng CUNGCẤP 58 TênDựán Ncc1 Bulong Dựán1 Ncc1 Đaiốc Dựán2 Ncc2 Bulong Dựán2 Ncc3 Đaiốc Dựán3 Ncc2 Đinh Dựán1 Ncc2 Bulong Dựán1 Ncc1 Bulong Dựán2 Giả thiết ràng buộc phụ thêm sau đúng: Khi nhà cung cấp S cung cấp hàng P dự án J sử dụng hàng P nhà cung cấp S cung cấp hàng cho dự án J nhà cung cấp S cung cấp hàng P cho dự án J. Ràng buộc phụ thuộc nối JD(R1, R2, R3) ba phép chiếu R1(Tênnhàcungcấp, Tênhàng), R2(Tênnhàcungcấp, Têndựán), R3(Tênhàng, TênDựán) quan hệ CUNGCẤP. Quan hệ CUNGCẤP tách thành ba quan hệ R 1, R2, R3 dạng chuẩn 5. Chú ý ta áp dụng phép nối tự nhiên cho đôi quan hệ sinh giả, áp dụng phép nối tự nhiên cho ba quan hệ không sinh giả. R1 Tênnhàcungcấ p Ncc1 Ncc1 Ncc2 Ncc3 Ncc2 R2 R3 Tênhàng Tênnhàcungcấ Têndựán Tênhàng Têndựán Bulong Đaiốc Bulong Đaiốc Đinh p Ncc1 Ncc1 Ncc2 Ncc3 Ncc2 Dựán1 Dựán2 Dựán2 Dựán3 Dựán1 Bulong Đaiốc Bulong Đaiốc Đinh Dựán1 Dựán2 Dựán2 Dựán3 Dựán1 Ví dụ 2: Cho quan hệ NGOẠIKHÓA NGOẠIKHÓA Họcviên Minh Minh Ngọc Ngọc Hải Minh Hải Hoạtđộng Khiêu vũ Chơi ghi ta Đánh trống Hát Múa Diễn kịch Chơi piano Câulạcbộ Clb1 Clb2 Clb1 Clb3 Clb1 Clb3 Clb2 Quan hệ NGOẠIKHÓA có ràng buộc sau: Họcviên X có hoạt động Y, hoạt động Y thuộc câu lạc Z. Học viên X muốn tham gia hoạt động Y phải đăng ký câu lạc Z. Các ràng buộc phụ thuộc nối JD(R1, R2, R3) phép 59 chiếu R1(Họcviên, hoạtđộng), R2(Họcviên, câulạcbộ), R3(câulạcbộ, hoạtđộng) quan hệ NGOẠIKHÓA. Quan hệ NGOẠIKHÓA tách thành ba quan hệ R 1, R2, R3 dạng chuẩn 5. Họcviên Minh Minh hoạtđộng Khiêu vũ Chơi ghi Ngọc ta Đánh Ngọc Hải Minh Hải trống Hát Múa Diễn kịch Chơi Họcviên Minh Minh Ngọc Ngọc Hải Minh Hải câulạcbộ Clb1 Clb2 Clb1 Clb3 Clb1 Clb3 Clb2 câulạcbộ Clb1 Clb2 hoạtđộng Khiêu vũ Chơi ghi Clb1 ta Đánh Clb3 Clb1 Clb3 Clb2 trống Hát Múa Diễn kịch Chơi piano piano Việc phát phụ thuộc nối sở liệu thực tế với hàng trăm thuộc tính điều khó khăn. Vì vậy, thực tiễn thiết kế sở liệu thường không ý đến nó. Nói chung, thực tế thiết kế sở liệu, người ta chuẩn hóa bảng đến 3NF, BCNF đủ. 4.6. Mô hình liệu 4.6.1. Khái niệm Mô hình liệu (Data model) tập hợp khái niệm dùng để diễn tả tập hợp liệu hành động để thao tác lên liệu Các khái niệm mô hình liệu xây dựng chế trừu tượng hóa mô tả ngôn ngữ hay biểu diễn đồ họa. 4.6.2. Các mô hình liệu thông dụng 4.6.2.1. Mô hình phân cấp Mô hình phân cấp (hierarchy) xây dựng từ thập kỷ 70. Đó mạng có nhiều cây. Hình 4.2 ví dụ minh họa mô hình phân cấp. 60 Hình 4.2 Minh họa mô hình phân cấp 4.6.2.2. Mô hình mạng Mô hình mạng xây dựng từ thập kỷ 70. Trong mô hình này, liệu trình bày dạng tập mẫu tin (record). Các mẫu tin thuộc tính biểu diễn kiểu mẫu tin (record type). Hình 4.3. Các dạng mẫu tin customer, account. Mối quan hệ mẫu tin biểu diễn đường nối (links). Trên đường nối biểu diễn mối quan hệ nhiều – nhiều (many – to – many), – nhiều (one-to-many), – (one – to – one). Hình 4.4. Mối quan hệ mô hình mạng 4.6.2.3. Mô hình hướng đối tượng Mô hình hương đối tượng xây dựng từ thập kỷ 80 – đến nay. Hình 4.5. Ví dụ mô hình hướng đối tượng 4.6.3. Chất lượng mô hình liệu - Tính diễn đạt: cho phép mô tả khối lượng lớn đa dạng khái niệm cho biểu diễn toàn diện giới thực. Do đó, mô hình liệu phải giàu khái niệm tính diễn đạt. 61 - Tính đơn giản: mô hình liệu phải đơn giản lược đồ xây dựng mô hình người thiết kế người sử dụng thông hiểu dễ dàng hơn. - Tính tốt thiểu: Mô hình có tính tối thiểu khái niệm trình bày mô hình có ý nghĩa phân biệt xem xét mối quan hệ đến khía cạnh khác. - Tính hình thức: lược đồ tạo mô hình liệu biểu diễn đặc tả hình thức liệu. Tính hình thức đòi hỏi khái niệm mô hình thể đồng nhất, xác định nghĩa tốt. - Tính mở rộng: mô hình liệu phải có tính mở cho tương lai. 62 Chương 3. CSDL DẠNG QUAN HỆ THỰC THỂ Mô hình thực thể kết hợp (Entity Relationship – ER) 4.7.1. Trừu tượng hóa - Phân loại: Hình 4.6. Mô hình phân loại - Kết hợp: Hình 4.7. Ví dụ minh họa kết hợp 4.7.2. Tổng quát hóa Hình 4.8. Minh họa tổng quát hóa 4.7.3. Mô hình thực thể kết hợp (ER) Mô hình thực thể kết hợp: + Dễ dùng + Hỗ trợ Case tool + Dùng để xây dựng mô hình ý niệm 63 + Mô hình đời năm 1970 Mr.Chen, tiếp tục phát triển Teory, Chang Fry vào năm 1986 Storey vào năm 1991. Được xem chuẩn giúp mô hình hóa liệu. + Là biểu diễn đồ họa thực thể mối liên hệ chúng cấu trúc database. 4.7.3.1. Các thành phần mô hình ER a) Thực thể: Là người, nơi chốn, đối tượng, kiện hay khái niệm thể giới thực (có thể khái niệm trừu tượng) bắt đầu danh từ + Thực thể mạnh: tồn độc lập với kiểu thực thể khác. Thực thể mạnh xác định thực thể yếu qua từ khóa: ký hiệu Ví dụ: SinhVien, Monhoc, KhachHang, NhanVien, SanPham, HoaDon + Thực thể yếu: Không có đủ thuộc tính để hình thành nên khóa, tồn phụ thuộc vào thực thể khác. Ký hiệu - Một tập thực thể yếu có khóa riêng để phân biệt thực thể yếu có mối liên quan với thực thể mạnh. - Khóa tập thực thể yếu = khóa tập thuộc tính cha + khóa riêng tập thực thể yếu Ví dụ: b) Mối kết hợp: Diễn tả mối quan hệ thực thể. Ký hiệu - Mối kết hợp (Phản thân) 64 - Mối kết hợp (nhị phân) - Mối kết hợ (đa phân) c) Bản số mối kết hợp Xét tập quan hệ hai thực thể A B: + Một – (one-to-one): thực thể A kết hợp với nhiều thực thể B thực thể B kết hợp với nhiều thực thể A. Ví dụ: Một phòng ban có trưởng phòng. + Một – nhiều (one to many): Một thực thể A kết hợp với nhiều thực thể B thực thể B kết hợp với nhiều thực thể A. Ví dụ: Một nhân viên thuộc phòng ban phòng ban có nhiều nhân viên 65 + Nhiều – nhiều (many to many): Một thực thể A kết hợp với nhiều thực thể B thực thể B kết hợp với nhiều thực thể A. Ví dụ: Một sinh viên học nhiều môn học môn học có nhiều sinh viên đăng ký học. d) Thuộc tính: đặc tính, tính chất đặc trưng thực thể mối kết hợp nhằm để mô tả thực thể hay mối kết hợp. Ví dụ: thực thể SinhVien có thuộc tính hoten, tuoi, gioitinh, ngaysinh,… Thuộc tính gồm có loại: o Thuộc tính đơn trị o Thuộc tính đa trị o Thuộc tính kết hợp o Thuộc tính dẫn xuất Cách biểu diễn khác 66 4.7.3.2. Các bước thiết kế mô hình thực thể kết hợp - Nhận dạng thực thể. - Nhận dạng mối quan hệ. - Găn kết thuộc tính vào thực thể mối kết hợp. - Xác định cấu trúc tiêu biểu (có thể có không). 4.8. Thiết kế sở liệu Thiết kế CSDL đòi hỏi vài định nhiều mức khác nhau. Tính phức tạp công tác quản lý tốt người ta phân rã toán thành toán giải toán cách độc lập cách dùng phương pháp kỹ thuật đặc biệt. Thiết kế sở liệu chia thiết khái niệm, logic vật lý. Thiết kế sở liệu thể tiếp cận chuyển liệu việc phát triển hệ thống thông tin lẽ toàn trọng tâm trình thiết kế liệu thuộc tính nó. Với tiếp cận chuyển liệu, trước hết người ta thiết kế sở liệu, đến ứng dụng sử dụng sở liệu này. Phương pháp phát triển sau năm 70 với việc đề xuất công nghệ sở liệu. 67 Các yêu cầu liệu Thiết kế khái niệm Lược đồ khái niệm Thiết kế logic Lược đồ logic Thiết kế vật lý Lược đồ vật lý Hình 4.9. Tiếp cận chuyển liệu việc thiết kế hệ thông thông tin 4.8.1. Thiết kế khái niệm Thiết kế khái niệm việc xác định yêu cầu kết lược đồ khái niệm sở liệu. Lược đồ khái niệm mô tả mức cao cấu trúc liệu, độc lập với phần mền quản trị sở liệu cụ thể. Một mô hình khái niệm ngôn ngữ dùng để mô tả lược đồ khái niệm. Mục tiêu thiết kế khái niệm mô tả nội dung thông tin sở liệu, mô tả cấu trúc lưu trữ việc quản lý thông tin yêu cầu. Thực tế, thiết kế khái niệm thực việc cài đặt, hoàn thiện cuối không sử dụng hệ quản trị sở liệu mà dùng hệ quản trị tệp ngôn ngữ lập trình. 4.8.2. Thiết kế logic Thiết kế logic lược đồ khái niệm cho kết lược đồ logic. Lược đồ logic mô tả cấu trúc sở liệu mà hệ quản trị sở liệu xử lý. 68 Một mô hình logic ngôn ngữ để xác định lược đồ logic; mô hình logic hay dùng thuộc lớp: - Mô hình quan hệ, - Mô hình mạng, - Mô hình phân cấp, Mô hình logic phụ thuộc vào lớp mô hình liệu hệ quản trị sở liệu dùng, không phụ thuộc vào hệ quản trị đặc biệt nào. Thí dụ: Khi quan tâm đến mô hình quan hệ, người ta tiến hành thiết kế logic theo cách tất hệ quản trị sở liệu quan hệ chúng dùng mô hình quan hệ. 4.8.3. Thiết kế vật lý Thiết kế vật lý lược đồ logic kết thúc với lược đồ vật lý. Lược đồ vật lý mô tả cài đặt sở liệu nhớ ngoài: mô tả cấu trúc lưu trữ phương pháp truy nhập dùng để truy nhập liệu có hiệu quả. Do thiết kế vật lý sinh cho hệ quản trị sở liệu, định giai đoạn thiết kế vật lý tác động lại cấu trúc lược đồ logic. Một thiết kế sở liệu vật lý hoàn tất, lược đồ vật lý logic thể thông qua ngôn ngữ xác định liệu hệ quản trị sở liệu đích. Các ứng dụng sử dụng sở liệu hoàn toàn xác định, cài đặt thử. Những điều cho phép sở liệu hình thành. 69 KẾT LUẬN Thiết kế sở liệu chủ đề quan trọng lĩnh vực sở liệu phương diện lý thuyết lẫn thực hành. Kết chuyên đề là: Tìm hiểu nghiên cứu qua tài liệu để hệ thống vấn đề sau: 1/. Trình bày số khái niệm CSDL, hệ quản trị CSDL. 2/. Khái niệm mô hình quan hệ: thuộc tính, miền liệu, khóa… phép toán đại số quan hệ: kết nối, chiếu, chọn… 3/. Trình bày số khái niệm khái niệm phụ thuộc hàm sở liệu quan hệ. 4/. Trình bày phương pháp chuẩn hóa liệu. Từ đưa phương pháp thiết kế sở liệu quan hệ. 70 TÀI LIỆU THAM KHẢO [1]. Nguyễn Bá Tường, Lý thuyết sở liệu, HVKTQS, 2000 [2]. Nguyễn Bá Tường, Nhập môn sở liệu phân tán, NXB KHKT, 2004 [3]. Bản dịch Trần Đức Quang, nguyên lý hệ sở liệu sở tri thức, NXB thống kê. [4]. Nguyễn Bá Tường, Cơ sở liệu lý thuyết thực hành, NXB khoa học kỹ thuật - 2001 [5]. Đỗ Trung Tuấn, Lý thuyết sở liệu, NXB khoa học kỹ thuật - 2000 [6]. Lê tiến Vương, Nhập môn sở liệu quan hệ, NXB thống Kê-2000 71 [...]... sau DẠY Giáoviên Hồng Tuyến Hồng Tuyến Đặng Hải Lê Duy Mônhọc Pttk hệ thống Otomat&NNHT Lý thuyết đồ thị Toán A3 Tàiliệu Lý thuyết CSDL q hệ Toán rời rạc Toán rời rạc Toán cao cấp Mới nhìn qua, chúng ta có thể nói có một phụ thuộc hàm Tàiliệu→Mônhọc, tuy nhiên chúng ta không thể khẳng định được vì điều đó chỉ đúng với trạng thái quan hệ này, biết đâu trong trạng thái quan hệ khác có thể có hai môn học... cùng một khóa chính Nên khai báo khoá ngoại (ràng buộc tham chiếu) nếu hệ QTCSDL cho phép Ví dụ : CSDL “CÔNG TY” NHANVIEN 11 Mã-NV Họ tên Ngày sinh Địa chỉ Mã-DV Lương ĐƠN_VỊ Mã-DV Tên Đơn vị Trưởng Đơn vị Địa điểm ĐV Tên Dự án Địa điểm DA DỰ_ÁN Mã-DA PHÂN_CÔNGVIỆC Mã-NV Mã-DA Thời gian làm việc 2.2 CÁC PHÉP TÍNH TRONG MÔ HÌNH CSDL QUAN HỆ 2.2.1 Các phép toán cập nhật trên một quan hệ 12 + Các phép tính...Thể hiện CSDL quan hệ = {Thể hiện quan hệ} trong đó ri là thể hiện của Ri thoả mãn các ràng buộc trong tập các ràng buộc toàn vẹn Ràng buộc toàn vẹn (RBTV) trên 1 CSDL quan hệ Ràng buộc toàn vẹn (RBTV, integrity constraint): là những qui tắc, điều kiện, ràng buộc cần được thoả mãn cho mọi thể hiện CSDL quan hệ Ràng buộc về khóa (key constraint): 2 bộ khác... thấy hai môn Otomat &NNHT và lý thuyết đồ thị sử dụng cùng một tài liệu tham khảo đó là Toán rời rạc Với một trạng thái cụ thể, chúng ta chỉ có thể khẳng định là không có một phụ thuộc hàm giữa nhóm thuộc tính này và nhóm thuộc tính khác Để làm điều đó chúng ta chỉ cần đưa ra một phản ví dụ Chẳng hạn, ở trong quan hệ trên chúng ta có thể khẳng định rằng không có phụ thuộc hàm giữa Giáoviên và Mônhọc... dụ Chẳng hạn, ở trong quan hệ trên chúng ta có thể khẳng định rằng không có phụ thuộc hàm giữa Giáoviên và Mônhọc bằng cách chỉ ra ví dụ là Hồng Tuyến dạy hai môn học “ Pttk hệ thống” và “Otomat&NNHT” vậy Giáo viên không thể xác định duy nhất Môn học Để biểu diễn các phụ thuộc hàm trong một lược đồ quan hệ, chúng ta sử dụng khái niệm sơ đồ phụ thuộc hàm Mỗi FD được biểu diễn bằng một đường nằm ngang... QT CSDL đều bổ sung thêm một số phép toán sau: AVERAGE : tính giá trị trung bình MAX MIN : tính giá trị bé nhất SUM : tính tổng cộng COUNT Cú pháp: : tính giá trị lớn nhất : đếm F () 19 Ví dụ: Với mỗi phòng ban, tìm số lượng nhân viên và mục lương trung bình R(SOPHG, SONV, LUONGTB) ← PHGFCOUNT MANV, AVERAGE (NHANVIEN) LUONG 20 2.3 PHỤ THUỘC HÀM TRONG CSDL. .. lược đồ quan hệ cơ sở sao cho không sinh ra những dị thường cập nhật trong các quan hệ Nếu có xuất hiện những dị thường cập nhật thì phải ghi chép lại một cách rõ ràng và phải đảm bảo rằng các chương trình cập nhật dữ liệu sẽ thực hiện một cách đúng đắn 3.1.3 Các giá trị không xác định trong các bộ Trong một số thiết kế lược đồ, chúng ta có thể nhóm nhiều thuộc tính với nhau vào một quan hệ “béo” Nếu . dữ liệu (cập nhật, khai thác CSDL) . - Ngôn ngữ lập trình Foxpro để tạo lập các chương trình quản lý CSDL. + Hệ QT CSDL Oracle + Hệ QT CSDL SQL Server 4 Ví dụ về CSDL KHACH_HANG VAN_CHUYEN MSKH. có các môn học cơ bản sau: Thuật toán, Lập chương trình máy tính, ngôn ngữ lập trình, … Chưa có môn học riêng về Cơ sở dữ liệu (CSDL) . + Thực tế đơn giản: Dữ liệu chưa nhiều - Chưa có môn học. quản lý Cơ sở dữ liệu (cập nhật, khai thác CSDL) . - Ngôn ngữ lập trình để tạo lập các chương trình quản lý CSDL (cập nhật, khai thác). Ví dụ: + Hệ QT CSDL Foxpro gồm có: - Bộ công cụ hỗ trợ tạo