Bài giảng Cơ sở dữ liệu - Chương 2: Các mô hình dữ liệu cung cấp cho người học các kiến thức: Tổng quan về 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ực thể liên kết,... Mời các bạn cùng tham khảo.
1/30/2012 Nội dung • • • • • • • Các mơ hình liệu Ng ễn Hồng Phương Nguyễn phuongnh@soict.hut.edu.vn http://is.hut.edu.vn/~phuongnh Bộ môn Hệ thống thông tin Viện Công nghệ thông tin Truyền thông Đại học Bách Khoa Hà Nội Tổng quan mơ hình liệu Mơ hình phân cấp Mơ hình mạng Mơ hình quan hệ Mơ hình thực thể liên kết Mơ hình hướng đối tượng Đánh giá, tập Tổng quan mơ hình liệu Tổng quan (tiếp) • Mơ hình liệu [Codd, 1980] gồm: • Nhiều mơ hình cịn bao gồm tập phép toán để thao tác liệu • Mơ hình thuộc dạng ngữ nghĩa: tập trung ngữ nghĩa liệu mơ hình thực thể liên kết, kết sử dụng để hỗ trợ người dùng có nhìn khái qt liệu • Mơ hình thuộc dạng khái niệm: tập trung vào cách thức tổ chức liệu mức khái niệm mơ hình mạng, mơ hình liên kết, mơ hình quan hệ, độc lập với DBMS hệ thống phần cứng để cài đặt sở liệu – Một tập hợp cấu trúc liệu – Một tập hợp phép toán để thao tác với liệu – Một tập hợp ràng buộc liệu • Mơ hình hì h liệ liệu ột tậ tập hợ hợp khái niệm dùng để mô tả: – – – – Dữ liệu Ngữ nghĩa liệu Các mối quan hệ liệu Các ràng buộc liệu Vài nét lịch sử Mơ hình quan hệ Mơ hình phân cấp IMS, System 2k, 1965 XML System R(81), DB2, ORACLE, SQL Server, Sybase, 1970 1975 1980 DMS(65), CODASYL (71), IDMS, IDS dbXML,natix, Tamino, 1985 Mơ hình Thực thể-liên kết Mơ hình mạng Một vài mơ hình liệu DB2, ORACLE10i, SQL Mơ hình quan hệ mở rộng Server IRDS(87) ,CDD+, Mơ hình 1990 1995 2000 2005 2010 O2, ORION, IRIS, hướng đối tượng Mơ hình bán cấu trúc • • • • • • • Mô Mô Mô Mô Mô Mơ Mơ hình hình hình hình hình hình hình phân cấp mạng quan hệ thực thể liên kết hướng đối tượng bán cấu trúc liệu XML Lore (97), CuuDuongThanCong.com https://fb.com/tailieudientucntt 1/30/2012 Mơ hình liệu phân cấp (Hierarchical data model) model) Đặt vấn đề • Đặc điểm mơ hình liệu? • Sự khác mơ hình liệu? • Các Cá mơ hình hì h liệu liệ phổ hổ biến biế ngày • Ra đời năm 60-65 • Biểu diễn – Quan hệ cha-con – Mỗi nút có cha – CSDL = tập ậ â = rừng • Các khái niệm – Bản ghi – Móc nối – Các phép toán: GET, GET UNIQUE, GET NEXT, GET NEXT WITHIN PARENT,… Mơ hình liệu phân cấp Mơ hình liệu phân cấp – Ví dụ • Ưu điểm – Dễ xây dựng thao tác – Tương thích với lĩnh vực tổ chức phân cấp – Ngôn ngữ thao tác đơn giản: duyệt giao_vien lop • Nhược điểm: sinh_vien mon_hoc – Sự lặp lại kiểu ghi liệu dư thừa không quán mon_hoc • Giải pháp: ghi ảo – Hạn chế biểu diễn ngữ nghĩa móc nối ghi (chỉ cho phép quan hệ 1-n) diem_thi Mơ hình liệu mạng (Network data model) model) 10 Mơ hình liệu mạng – Ví dụ • Sự đời – Sử dụng phổ biến từ năm 60, định nghĩa lại vào năm 71 giao_vien • Biểu diễn đồ thị có hướng • Các khái niệm giang_day – Tập ghi (record) l lop • Kiểu ghi (record type) • Các trường (field) – Móc nối • Tên móc nối • Chủ (owner) – thành viên (member): theo hướng móc nối • Kiểu móc nối: 1-1, 1-n, đệ quy – Các phép toán hoc co_diem gom sinh_vien mon_hoc h co diem_thi • Duyệt: FIND, FIND member, FIND owner, FIND NEXT • Thủ tục: GET 11 12 CuuDuongThanCong.com https://fb.com/tailieudientucntt 1/30/2012 Mơ hình liệu quan hệ Mơ hình liệu mạng • Sự đời: vào năm 1970[Codd, 1970] • Dữ liệu biểu diễn dạng bảng • Là mơ hình liệu khái niệm phổ biến tận thời điểm • Dựa lý thuyết toán học, đồng thời gần với cấu trúc tệp cấu trúc liệu nên có hai loại thuật ngữ liên quan: • Ưu điểm – Đơn giản – Có thể biểu diễn ngữ nghĩa đa dạng với kiểu ghi kiểu móc nối – Truy vấn thông qua phép duyệt đồ thị (navigation) • Nhược điểm: – Thuật ngữ toán học: quan hệ, bộ, thuộc tính – Thuật ngữ hướng liệu: bảng, ghi, trường – Số lượng trỏ lớn – Hạn chế biểu diễn ngữ nghĩa móc nối ghi 13 Ví dụ mơ hình liệu quan hệ MON_HOC maMH tenmon CNTT01 Nhập mơn CSDL soHT Truyền DL mạng Ví dụ CNTT02 Phân tích thiết kế hệ thống HTTT01 Quản lý dự án GVCN IT4 Tin CNTT Ng V Anh Trần T Bình IT5 Tin CNTT Lê A Văn Ng Đ Trung • Các khái niệm – Thuộc tính, miền thuộc tính – Quan hệ – Khóa LOP khoa Mơ hình liệu quan hệ CNTT03 malop lop 14 loptruong IT6 Tin CNTT Ng T Thảo Trần M Quế IT7 Tin CNTT Ng V Quý Ng T Phương SINH_VIEN maSV tenSV ngaysinh gt diachi malop SV0011 Trần T Bình 1/4/1981 21 T Q B IT4 SV0025 Ng Đ Trung 3/2/1980 56 Đ C V IT5 SV0067 Trần M Quế 26/3/1982 45 H B T IT6 SV0034 Ng T Phương 29/2/1980 86 L T N IT7 15 Mô hình liệu quan hệ Mơ hình liệu quan hệ • Thuộc tính (~trường): đặc tính đối tượng • Mỗi thuộc tính xác định miền giá trị định gọi miền thuộc tính • Ví dụ dụ: – – – – – – 16 Sinhviên (MãSV, TênSV, Nămsinh, GiớiTính, ĐịaChỉ) dom(MãSV) = {char(5)} dom(TênSV) = {char(30)} dom(Nămsinh) = {date} dom(GiớiTính) = {0, 1} dom(ĐịaChỉ) = {char(50)} • Quan hệ (~bảng):Cho n miền giá trị D1, D2 , …, Dn không thiết phân biệt, r quan hệ n miền giá trị r tập n-bộ (d1 , d2 , …, dn ) cho di Di • Một quan hệ biểu diễn dạng bảng dịng bảng tương đương với , cột bảng tương đương với thuộc tính quan hệ • Bậc quan hệ số thuộc tính quan hệ • Lực lượng quan hệ số quan hệ 17 18 CuuDuongThanCong.com https://fb.com/tailieudientucntt 1/30/2012 Mơ hình liệu quan hệ Mơ hình liệu quan hệ • Định nghĩa (tiếp): Cho U = {A1, A2 , …, An} tập hữu hạn thuộc tính dom(Ai ) = Di, r quan hệ tập thuộc tính U ký hiệu r(U) nếu: • Định nghĩa Khoá quan hệ r r D1 D2 Dn • U gọi sơ đồ quan hệ (lược đồ quan hệ) 19 tập thuộc tính U = {A1 , A2 , …, An} tập K U cho với ộ t1 , t2 thuộc ộ r tồn ộ thuộc tính A thuộc K mà t1[A] ≠ t2 [A] • Một quan hệ có nhiều khố • Nếu K khố r K’ cho K K’ khoá r K’ 20 gọi siêu khố r Mơ hình liệu quan hệ Ví dụ: Mơ hình liệu quan hệ • Định nghĩa: K khoá tối thiểu r K khoá r tập thực g p phải K khơng khố r • Định nghĩa: Một tập K U gọi khố ngồi quan hệ r(U) tham chiếu đến quan hệ r’ K khố r’ • Quan hệ: SinhViên(MãSV, TênSV, NămSinh, GiớiTính, Lớp) SV001 SV002 SV003 SV004 Nguyễn Văn An Nguyễn Văn An Lê Văn Cường Nguyễn Thùy Linh 1982 1985 1981 1981 Tin HTTT HTTT BK65 • Siêu khố: {MãSV, HọTên}; • Khố tối thiểu: {MãSV}; {HọTên, NămSinh} • Khố ngồi: TênLớp coi khố quan hệ Lớp 21 Mơ hình liệu quan hệ nhận xét 1 22 Mô hình thực thể liên kết (Entity Entity Relationship data model model)) • Cho phép mơ tả liệu có liên quan xí nghiệp giới thực dạng đối tượng mối quan hệ chúng • Được sử dụng cho bước đầu thiết kế CSDL, CSDL làm tảng để ánh xạ sang mơ hình khái niệm mà Hệ quản trị CSDL sử dụng • Trong mơ hình thực thể liên kết, CSDL mơ hình hóa là: • Ưu điểm – Dựa lý thuyết tập hợp – Khả tối ưu hoá xử lý phong phú • Nhược điểm – Hạn chế biểu diễn ngữ nghĩa – Cấu trúc liệu không linh hoạt 23 – Một tập hợp thực thể – Liên hệ thực thể 24 CuuDuongThanCong.com https://fb.com/tailieudientucntt 1/30/2012 Mơ hình thực thể liên kết Các khái niệm Mơ hình thực thể liên kết • Thực thể: đối tượng giới thực, tồn độc lập phân biệt với đối tượng khác • Tập thực thể: tập hợp thực thể có tính chất giống • Ví dụ: • Thực thể, tập thực thể • Thuộc tính • Khố Kh • Liên kết, tập liên kết – Thực thể: sinh viên, lớp – Tập thực thể: toàn thể sinh viên lớp, toàn thể lớp khoa 25 26 Mơ hình thực thể liên kết Mơ hình thực thể liên kết Kiểu thuộc tính • Thuộc tính đặc tính tập thực thể – Tập thực thể SinhViên có thuộc tính như: TênSV, NămSinh,… • Mỗi ỗ thực thể ể tập thực thể có giá trị đặc tính nằm miền giá trị thuộc tính – Sinh viên có: Họtên Nguyễn Hải Anh, Năm sinh 1980 • Thuộc tính đơn giản (thuộc tính ngun tố) sinh_viên •sv1 •sv2 •sv3 – có kiểu liệu ngun tố sinh_viên • Thuộc tính phức maSV diachi tenSV gioitinh – có kiểu phức, định nghĩa thuộc tính khác gioitinh tenSV maSV so_pho namsinh quan diachi thanh_pho namsinh 27 Mơ hình thực thể liên kết Kiểu thuộc tính • Một hay tập thuộc tính mà giá trị chúng xác định thực thể tập thực thể maMH tenmon mon_hoc – Tập thực thể SinhViên dùng MãSV làm kh khố soHT giao_vien • Thuộc tính suy diễn sinh_viên – tính tốn từ (các) thuộc tính khác tuoi Mơ hình thực thể liên kết Khóa • Thuộc tính đa giá trị – tương ứng với ự thể,, thực nhận nhiều giá trị 28 tenSV maSV ngaysinh nam diachi 29 • Khố gồm nhiều thuộc tính gọi phức • Một tập thực thể có nhiều số khố chọn làm khố • Trong sơ đồ ER, thuộc tính làm khố gạch chân khố khố chọn 30 CuuDuongThanCong.com https://fb.com/tailieudientucntt 1/30/2012 Mơ hình thực thể liên kết Liên kết - Tập liên kết Mơ hình thực thể liên kết Liên kết - Tập liên kết - Ví dụ: • Một liên kết mối liên hệ có nghĩa nhiều thực thể – Cho thực thể SinhViên1 LớpA, liên kết ThànhViên g SinhViên1 thành viên LớpA • Tập liên kết tập hợp liên kết kiểu – Giữa tập thực thể SinhViên Lớp có tập liên kết ThànhViên, sinh viên thành viên lớp maSV maMH tenSV tenmon sinh_viên ngaysinh mon_hoc diem_thi soHT nam diachi ket_qua • Một liên kết có thuộc tính 31 Mơ hình thực thể liên kết 32 Cách lập sơ đồ thực thể - liên kết Ràng buộc kết nối • 1-1: Liên kết thực thể tập thực thể với nhiều thực thể tập thực thể khác • 1-n: Liên kết thực thể tập thực thể với nhiều thực thể tập thực thể khác • n-n: Liên kết thực thể tập thực thể với nhiều thực thể tập thực thể khác ngược lại • đệ quy: Liên kết thực thể kiểu lop_hoc chu_nhiem lop_hoc sinh_viên n thanh_vien n dang_ky giao_vien n sinh_vien • Bước 1: Xác định thực thể • Bước 2: Xác định liên kết thực thể – Bậc Bậ ủ liên liê kết – Ràng buộc (1-1, 1-n, n-n, đệ quy) mon_hoc mon_hoc dieu_kien 33 Bài tập: Vẽ sơ đồ ER • Bài tốn: phân tích thiết kế CSDL gồm thơng tin cơng ty (nhân viên, phịng ban, dự án) – Cơng ty tổ chức phịng ban Mỗi phịng ban có tên nhất, số người quản lý (thời điểm bắt đầu công tác quản lý người lưu lại CSDL) Mỗi phịng ban có nhiều trụ sở làm việc khác – Mỗi phòng điều phối số dự án Mỗi dự án có tên mã ã số ố d nhất, hấ thực h h ệ ộ địa đ điểm để d – Các thông tin nhân viên cần quan tâm gồm: tên, số bảo hiểm, địa chỉ, lương, giới tính, ngày sinh Mỗi nhân viên làm việc phòng ban tham gia nhiều dự án khác Những dự án điều phối phịng ban khác Thơng tin số làm việc dự án (theo tuần) người quản lý trực tiếp nhân viên lưu trữ – Thông tin nhân viên: tên, giới tính, ngày sinh 35 34 Ho Dem Ten SoBH HoTen Dia_chi Ten _phong Ma_phong nguoiPT Phu_trach Luong Ngay_sinh Gioi_tinh n NHAN_VIEN n n So_gio PHONG_BAN 1 La_NV 1 nguoibiPT Dia_diem Quan_ly Ngay_BD Dieu_phoi co Lam_viec n m CON HoTen Gioi_tinh Ngay_sinh Ten_DA n DU_AN Ma_DA 36 Dia_diem CuuDuongThanCong.com https://fb.com/tailieudientucntt 1/30/2012 Biến đổi sơ đồ thực thể liên kết sang sơ đồ quan hệ • • • • Biến đổi tập thực thể • Bước 1: tập thực thể quan hệ Biến đổi tập thực thể Biến đổi liên kết Các khoá sơ đồ q quan hệ ệ Các sơ đồ quan hệ với khố chung – thuộc tính thuộc tính (trường) – thực thể – khoá tập thực thể khoá quanhệ hệ sinh_viên maSV tenSV ngaysinh nam diachi malop SINH_VIEN 37 •sv1 •sv2 •sv3 •sv4 ngaysin h 1/4/81 gt diachi lop 21 T Q B IT4 3/2/80 56 Đ C V IT5 SV006 tenSV •sv1 Trần T Bình •sv2 Ng Trung •sv3 Trần M Quế 26/3/82 45 H B T IT6 SV003 Ng Hương 29/2/80 86 L T N IT7 maSV SV001 SV002 38 Biến đổi tập thực thể Biến đổi liên kết • Bước 2: tập thực thể xác định từ tập thực thể khác (E) qua liên kết 1quan hệ chứa khoá cuả E: LOPTRUONG(maSV) • Bước 3: Liên kết 1-1 Thêm quan hệ xác định thuộc tính nằm khố thực thể có liên quan CHU_NHIEM_LOP(malop,maGV) Dùng khố ngồi LOP_HOC(malop,lop,khoa,maGV) sinh_viên la_mot lop_truong lop maGV malop lop_hoc ngaysinh giao_vien chu_nhiem khoa trinhdo khoa 39 40 Biến đổi liên kết (tiếp) Biến đổi liên kết (tiếp) • Bước 4: Liên kết 1-n Thêm quan hệ xác định thuộc tính nằm khố thực thể có liên quan • Bước 5: Liên kết n-n Thêm quan hệ xác định thuộc tính nằm khố thực thể có liên quan thuộc tính liên kết SINHVIEN_LOP(malop, maSV) Dùng g khố ngồi: g thêm khố q quan hệ ệ bên vào quan hệ bên n làm khố ngồi SINH_VIEN(maSV, tenSV, ngaysinh, nam, diachi, malop) maSV DANG_KY(maSV,maMH, diem) tenSV diem maSV malop lop lop_hoc khoa ngaysinh n gom sinh_vien nam diachi 41 n tenSV ngaysinh sinh_viên maMH m dang_ky mon_hoc nam ten soHT diachi 42 CuuDuongThanCong.com https://fb.com/tailieudientucntt 1/30/2012 Thuộc tính đa trị • Bước 6: Với thuộc tính đa trị Thêm quan hệ xác định thuộc tính đa trị khoá tập thực thể tương ứng MH_GV(maMH,giao_vien) maMH Mơ hình liệu hướng đối tượng (Object oriented data model) (Object • Sự đời – Khoảng đầu năm 90 • Biễu diễn: sơ đồ lớp • Các khái niệm – Đối tượng: ợ g ộ đối tượng ợ g g g giới thực, ự , ợ xác định định danh – Thuộc tính: biểu diễn đặc tính đối tượng, – Phương thức : thao tác thực đối tượng • Tất truy nhập vào thuộc tính đối tượng phải thực thông qua phương thức tenmon – Lớp: cách thức để khai báo tập đối tượng có chung tập thuộc tính phương thức mon_hoc soHT giao_vien 43 Mơ hình liệu hướng đối tượng Ví dụ: 44 Mơ hình liệu hướng đối tượng Nhận xét: class sinh_vien { string maSV; string tenSV; date ngaysinh; boolean nam; string diachi; string lop; • Ưu điểm – Cho phép định nghĩa kiểu đối tượng phức tạp – Tính chất: bao đóng (encapsulation), kế thừa (heritage), đa hình (polymorphism) • Nhược điểm – Cấu trúc lưu trữ phức tạp sử dụng nhiều trỏ – Khả tối ưu hoá xử lý bị hạn chế nhiều trường hợp string ten(); string ngay_sinh(); string dia_chi(); string lop(); void gan_DC(string DC_moi); void gan_lop(string lop); } 45 46 So sánh đánh giá Phân loại mơ hình Nhắc lại: Mơ hình liệu tập hợp khái niệm dùng để mô tả cấu trúc CSDL Mô hình mạng biểu diễn ngữ nghĩa DL hạn chế Mơ hình Mơ hình phân cấp quan hệ Phân cấp hạn chế tương đối đa dạng đa dạng Mơ hình HĐT đa dạng khó lưu trữ cấu trúc phức tạp lưu trữ DL s/d nhiều trỏ liệu lặp lại dễ dàng hiệu khả truy vấn hiệu truy vấn đơn giản đơn giản đa dạng khả tối ưu khả tối ưu tối ưu hố tốt Mơ hình TT-LK Thế hệ Các mơ hình dựa ghi Mạng Quan hệệ Thế hệ Thực thể-liên kết đa dạng không xem xét (không hiệu quả) không h/q s/d nhiều trỏ Các mơ hình dựa đối tượng ngữ nghĩa Thế hệ Đối tượng - Quan hệ Hướng đối tượng 47 48 CuuDuongThanCong.com https://fb.com/tailieudientucntt 1/30/2012 Các bước xây dựng hệ CSDL Bài tập • Cho sơ đồ thực thể liên kết bên dưới, biến đổi sang mơ hình quan hệ: 1: PHÂN TÍCH StudentName StudentBirth Mơ tả ứng dụng Mơ hình hố DL (vd: Sơ đồ thực thể-liên kết) LecturerName Lecturers LecturerPhone Belong to 3: CÀI ĐẶT ClassID ClassName Mô tả DL logic với mơ hình DL cụ thể (vd: Sơ đồ quan hệ) Students StudentAddress 2: THIẾT KẾ Cài đặt với hệ quản trị CSDL (vd: ORACLE) LecturerID StudentID Classes Learn ClassMonitor Subjects Time SubjectID SubjectName 49 Lời giải 50 Lời giải (tiếp) • Biến đổi tập thực thể quan hệ thành bảng: Lecturers(LecturerID, LecturerName, LecturerPhone) Students(StudentID, StudentName, StudentBirth, StudentAddress) Classes(ClassID, ClassName, ClassMonitor) Subjects(SubjectID, SubjectName) Belongto(StudentID, ClassID) Learn(LecturerID,ClassID, SubjectID, Time) • Cải tiến thiết kế: Bảng Students bảng Belongto có khóa (StudentID), ta nên kết hợp chúng lại: Students’(StudentID, StudentName, StudentBirth, StudentAddress, ClassID) 51 52 Lời hay ý đẹp Trong 10 lần thành cơng có tới lần thành công nhờ hăng hái niềm tin công việc Teewilson 53 CuuDuongThanCong.com https://fb.com/tailieudientucntt ... •sv1 •sv2 •sv3 •sv4 ngaysin h 1/4/81 gt diachi lop 21 T Q B IT4 3 /2/ 80 56 Đ C V IT5 SV006 tenSV •sv1 Trần T Bình •sv2 Ng Trung •sv3 Trần M Quế 26 /3/ 82 45 H B T IT6 SV003 Ng Hương 29 /2/ 80 86 L... T Phương SINH_VIEN maSV tenSV ngaysinh gt diachi malop SV0011 Trần T Bình 1/4/1981 21 T Q B IT4 SV0 025 Ng Đ Trung 3 /2/ 1980 56 Đ C V IT5 SV0067 Trần M Quế 26 /3/19 82 45 H B T IT6 SV0034 Ng T Phương. .. Xác định thực thể • Bước 2: Xác định liên kết thực thể – Bậc Bậ ủ liên liê kết – Ràng buộc ( 1-1 , 1-n, n-n, đệ quy) mon_hoc mon_hoc dieu_kien 33 Bài tập: Vẽ sơ đồ ER • Bài tốn: phân tích thiết