Bài giảng Cơ sở dữ liệu - Chương 2: Các mô hình dữ liệu - Vũ Tuyết Trinh
Mô hình dữ liệu gồm [Codd, 1980]
z Một tập hợp các cấu trúc của dữ liệu
z Một tập các phép toán để thao tác với các dữ liệu
z Một tập các ràng buộc về dữ liệu
Ví dụ: mô hình mạng, mô hình phân cấp, mô hình
quan hệ, mô hình thực thể-liên kết, mô hình
hướng đối tượng
z Một tập hợp các cấu trúc của dữ liệu
z Một tập các phép toán để thao tác với các dữ liệu
z Một tập các ràng buộc về dữ liệu
Ví dụ: mô hình mạng, mô hình phân cấp, mô hình
quan hệ, mô hình thực thể-liên kết, mô hình
hướng đối tượng
Bạn đang xem 20 trang mẫu của tài liệu "Bài giảng Cơ sở dữ liệu - Chương 2: Các mô hình dữ liệu - Vũ Tuyết Trinh", để tải tài liệu gốc về máy hãy click vào nút Download ở trên.
File đính kèm:
- bai_giang_co_so_du_lieu_chuong_2_cac_mo_hinh_du_lieu_vu_tuye.pdf
Nội dung text: Bài giảng Cơ sở dữ liệu - Chương 2: Các mô hình dữ liệu - Vũ Tuyết Trinh
- Vài nét về lịch sử Mô hình DB2,DB2, ORACLE-10i, quan hệ ORACLE-10i, Mô hình Mô hình SQLSQL Server Server phân cấp quan hệ mở rộng SystemSystem R(81), R(81), DB2, DB2, XML ORACLE,ORACLE, SQL SQL IMS, IMS, Server,Server, Sybase, Sybase, dbXML,natix, System 2k, dbXML,natix, System 2k, Tamino, Tamino, 1965 1970 1975 1980 1985 1990 1995 2000 2005 2010 Mô hình O2,O2, ORION, ORION, IRIS, Thựcthể-liên kết IRIS, Mô hình IRDS(87),IRDS(87), mạng CDD+,CDD+,Mô hình DMS(65), hướng đối Mô hình bán DMS(65), LoreLore (97), (97), CODASYLCODASYL (71), (71), tượng cấutrúc 3 IDMS,IDMS, IDS IDS Một vài mô hình dữ liệu { Mô hình phân cấp { Mô hình mạng { Mô hình quan hệ { Mô hình thựcthể - liên kết { Mô hình hướng đốitượng { Mô hình bán cấu trúc { Mô hình dữ liệucủaXML 4 2
- Ví dụ lop giao_vien sinh_vien mon_hoc mon_hoc diem_thi 7 Nhậnxét { Ưu điểm { Dễ xây dựng và thao tác { Tương thích vớicáclĩnh vựctổ chức phân cấp(vd: tổ chức nhân sự trong các đơnvị, ) { Ngôn ngữ thao tác đơngiản (duyệtcây) { Nhược điểm { Sự lặplạicủacáckiểubản ghi → dư thừadữ liệuvà dữ liệu không nhất quán ¾ Giải pháp: bảnghiảo { Hạnchế trong biểudiễnngữ nghĩacủacácmócnối giữacácbản ghi (chỉ cho phép quan hệ 1-n) 8 4
- Nhậnxét { Ưu điểm { Đơngiản { Có thể biểudiễn các ngữ nghĩa đadạng vớikiểubản ghi và kiểumócnối { Truy vấn thông qua phép duyệt đồ thị (navigation) { Nhược điểm { Số lượng các con trỏ lớn { Hạnchế trong biểudiễnngữ nghĩacủacácmócnối giữacácbản ghi 11 Mô hình dữ liệu quan hệ (Relational data model) { Sự ra đời z vào năm1970[Codd, 1970] { Biểudiễn: dướidạng bảng { Các khái niệmcơ bản z Thuộc tính: một tính chất riêng biệt của một đối tượng { Tên { Kiểu, miềngiátrị z Quan hệ: được định nghĩa trên mộttậpcácthuộctính z Bộ giá trị: các thông tin củamột đốitượng thuộc quan hệ z Khoá: z Các phép toán: hợp, giao, tích đề-các, lựachọn, chiếu, kết nối, 12 6
- Mô hình dữ liệuthựcthể - liên kết (Entity-Relational data model) { Sự ra đời z Xuất phát từ nhu cầu mô hình hoá ngữ nghĩadữ liệuvà phát triểnphầnmềm z đề xuất 1975 [Chen, 1976] [Chen, 2002] { Biểudiễn: bằng sơ đồ thựcthể - liên kết { Các khái niệmcơ bản z Thựcthể: một đốitượng trong thế giớithực z Thuộc tính: một đặc tính củamộttậpthựcthể o Khoá:xác định sự duy nhấtcủa 1 thựcthể o Liên kết: mối liên hệ có nghĩagiữa nhiềuthựcthể o Mỗi liên kếtcóthể có các thuộc tính o 1-1, 1-n, n-m, đệ quy 15 Ví dụ maMH tenmon soHT diem_thi mon_hoc chuong_trinh maSV tenSV ngaysinh sinh_viên gom lop nam loptruong diachi GVCN malop lop khoa 16 8
- Ví dụ class sinh_vien { string maSV; string tenSV; date ngaysinh; boolean nam; string diachi; string lop; string ten(); string ngay_sinh(); string dia_chi(); string lop(); void gan_DC(string DC_moi); void gan_lop(string lop); } 19 Nhậnxét { Ưu điểm z Cho phép định nghĩakiểu đốitượng phứctạp z Tính chất: bao đóng (encapsulation), kế thừa (heritage), đa hình (polymorphism) { Nhược điểm z Cấutrúclưu trữ phứctạpvàcóthể sử dụng nhiều con trỏ z Khả năng tối ưu hoá các xử lý bị hạnchế trong nhiều trường hợp 20 10
- Biến đổigiữa các mô hình dữ liệu { Yêu cầu z Chuyểnmột sơ đồ dữ liệutừ mộtmôhìnhdữ liệu sang mộtmôhìnhkhác z Đảm bảo tính « tương đương » của sơ đồ dữ liệu nguồnvàđích { Các biến đổitương đương giữa các mô hình z Thựcthể/liên kết - mạng z Thựcthể/liên kết - hướng đốitượng z Quan hệ -hướng đốitượng 23 Các bướcxâydựng mộtCSDL 1: PHÂN TÍCH Mô tảứng dụng Mô hình hoá DL (vd: Sơđồthựcthể-liên kết) 2: THIẾTKẾ 3: CÀI ĐẶT Cài đặt với1 hệ quảntrị CSDL Mô tả DL logic với 1 mô hình DL cụ thể 24 (vd: ORACLE) (vd: Sơđồquan hệ) 12
- Thựcthể và thuộc tính { Thựcthể: một đốitượng trong thế giớithực sinh_viên { Tậpthựcthể: gồmcácthực thể có tính chấtgiống nhau •sv1 •sv2 •sv3 { Thuộc tính: một đặctínhcủa mộttậpthựcthể z Miềngiátrị ~ tập các giá trị maSV có thể diachi z Khoá ~ xác định sự duy nhất tenSV của1 thựcthể nam ngaysinh 27 Kiểuthuộc tính { Thuộc tính đơn giản tenSV = ‘‘TrầnT. Bình’’ (thuộc tính nguyên tố) tenSV = ‘‘Ng. Đ. Trung’’ z có kiểudữ liệunguyên tố sinh_viên { Thuộc tính phức z có kiểuphức, định nghĩa nam bởicácthuộctínhkhác tenSV maSV ngaysinh diachi so_pho quan thanh_pho 28 14
- Ràng buộccủakếtnối { 1-1: Liên kết 1 thựcthể của mộttậpthựcthể vớinhiều 1 1 nhất1 thựcthể củatậpthực lop_hoc chu_nhiem giao_vien thể khác { 1-n: Liên kết 1 thựcthể của 1 m mộttậpthựcthể vớinhiều lop_hoc gom sinh_vien thựcthể củatậpthựcthể khác { n-m: Liên kết 1 thựcthể của mộttậpthựcthể vớinhiều n m thựcthể củatậpthựcthể sinh_viên dang_ky mon_hoc khác và ngượclại { đệ quy: Liên kết giữacác thựcthể cùng kiểu mon_hoc dieu_kien 31 Lậpsơđồthựcthể - liên kết { B1: Xác định các thựcthể { B2: Xác định các liên kếtgiữacácthựcthể z Bậccủaliên kết z Ràng buộc (1-1, 1-n, n-m, đệ quy) 32 16
- Mô hình dữ liệu quan hệ Đặc điểm { Dựa trên lý thuyếttậphợp { dễ dàng ánh xạ đến cấu trúc lưu trữ vậtlý { Các khái niệm cơ bản z Thuậtngữ toán học: quan hệ, bộ và thuộc tính z Thuậtngữ hướng dữ liệu: bảng, bảnghivàtrường { Đượcbiểudiễnbởilược đồ quan hệ 36 18
- Bộ -bản ghi { Đ/n: các thông tin củamột đốitượng thuộc quan hệ { Ký hiệu t(a1,a2, an) { t(a1,a2, an) ∈ Dom(A1) x x Dom(An) SV0011 TrầnT. Bình 1/4/1981 0 21 T. Q. B IT4 SV0025 Ng. Đ. Trung 3/2/1980 1 56 Đ. C. V IT5 SV0067 TrầnM. Quế 26/3/1982 0 45 H. B. T IT6 SV0034 Ng. T. Phương 29/2/1980 0 86 L. T. N IT7 39 Lược đồ quan hệ { Lược đồ quan hệ (S): là sự trừu tượng hoá của quan hệ ở mức độ cấu trúc của một bảng 2 chiều z S = {Ri} z SINH_VIEN(maSV,tenSV, ngaysinh, nam, diachi,malop) LOP(malop,lop, khoa, GVCN, loptruong) MON_HOC(maMH,tenmon,soHT) { Thể hiện của quan hệ: tậphợpcácbộ giá trị của quan hệ R vào mộtthời điểm 40 20
- Biến đổi: Sơ đồ thựcthể - liên kết → Sơ đồ quan hệ { Biến đổitậpcácthựcthể { Biến đổi các liên kết { Các khoá củacácsơđồquan hệ { Các sơđồquan hệ với khoá chung 43 Biến đổicáctậpthựcthể B1: 1 tậpthựcthể ¾ 1 quan hệ, z thuộc tính → thuộc tính (trường), z 1 thựcthể → 1 bộ z khoá củatậpthựcthể → khoá củaquanhệ, sinh_viên maSV tenSV ngaysinh nam diachi malop SINH_VIEN •sv1 maSV •sv1tenSV ngaysinh nam diachi malop SV0011 TrầnT. Bình 1/4/1981 0 21 T. Q. B IT4 •sv2 •sv2 •sv3 SV0025 Ng. Đ. Trung 3/2/1980 1 56 Đ. C. V IT5 SV0067 •sv3TrầnM. Quế 26/3/1982 0 45 H. B. T IT6 •sv4 SV0034 Ng. T. Phương 29/2/1980 0 86 L. T. N IT7 44 22
- Biến đổi các liên kết (2) maSV B4: Liên kết 1-n tenSV ngaysinh malop 1 n lop lop_hoc gom sinh_vien nam khoa diachi ¾ Dùng khoá ngoài: thêm khoá chính củaquanhệ bên 1 vào quan hệ bên n làm khoá ngoài SINH_VIEN(maSV,tenSV,ngaysinh,nam, diachi, malop) 47 Biến đổi các liên kết (3) B5: Liên kết n-n diem maSV maMH tenSV n m ten ngaysinh sinh_viên dang_ky mon_hoc nam soHT diachi ¾ Thêm 1 quan hệ mớixácđịnh bởicácthuộc tính nằm trong khóa củacácthựcthể có liên quan và các thuộc tính của liên kết DANG_KY(maSV,maMH, diem) 48 24
- 51 Kếtluận { Điểm khác nhau của các mô hình dữ liệu z khả năng biểudiễndữ liệuvề mặtngữ nghĩa z khả năng biểudiễntruyvấndữ liệu z hiểuquả củacàiđặt trong máy tính { Mô hình thựcthể-liên kết cho phép biểudiễndữ liệugầnvớinhậnthứccủacon người { Mô hình quan hệ z Cho phép biểudiễn logic dữ liệu z dễ ánh xạ sang cấu trúc lưu trữ vậtlý z Dựatrênnềntảng toán học cho phép tối ưu hoá các truy xuấtdữ liệu “More than 90% of current database applications are built on relational database systems which utilise relational model as its underlying data model”* 52 * R. Elmasri and S. Navathe. Fundamentals of Database Systems 26