Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 28 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
28
Dung lượng
3,45 MB
Nội dung
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN KHOA CÔNG NGHỆ PHẦN MỀM BÁO CÁO MƠN PHƯƠNG PHÁP MƠ HÌNH HĨA Lớp SE10.K21 Đề tài: Chuyển đổi mơ hình ERD mơ hình quan hệ Giảng viên hướng dẫn: Lê Thanh Trọng Sinh viên thực hiện: Nhóm 10: Châu Minh Quang Lê Minh Vương Nguyễn Hữu Trí 18521290 18521678 18521528 TP Hồ Chí Minh, ngày 15 tháng 05 năm 2020 Mục Lục I.Giới thiệu mơ hình ER mơ hình quan hệ 1.Giới thiệu mơ hình quan hệ -thực thể ER: a) Loại thực thể: .4 b) Thực thể: .4 c) Thuộc tính loại thực thể: .5 d) Khóa loại thực thể: .5 e) Loại mối kết hợp: f) Số loại mối kết hợp: g) Thuộc tính loại mối kết hợp: h) Bản số: 2.Giới thiệu mơ hình quan hệ a) Thuộc tính (attribute) b) Quan hệ (relation) .8 c) Bộ (tuple) .9 d) Tân từ e) Khóa (primary key) f) Khóa ngoại(foreign key): 10 3.Sự khác mơ hình ER mơ hình quan hệ: 10 4.Lí phải chuyển đổi mơ hình: .11 II.Cách chuyển mơ hình quan hệ ER mơ hình quan hệ 11 III Mơ hình EER: 17 Tính kế thừa 18 Ràng buộc 18 a Ràng buộc rời rạc 19 b Ràng buộc chồng chéo 20 c Ràng buộc đầy đủ 20 Chuyên biệt phân cấp lưới .21 Kiểu hợp (union) 23 Tại nên dùng EER ? .23 IV Chuẩn hóa mơ hình quan hệ : 23 Dạng chuẩn 1NF 24 Dạng chuẩn 2NF 25 Dạng chuẩn 3NF 26 Dạng chuẩn Boyce-Codd .27 V Tài liệu tham khảo: 28 I.Giới thiệu mơ hình ER mơ hình quan hệ 1.Giới thiệu mơ hình quan hệ -thực thể ER: -Lịch sử: Được CHEN giới thiệu vào năm 1976 mơ hình sử dụng rộng rãi thiết kế sở liệu mức khái niệm, xây dựng việc nhận thức giới thông qua tập đối tượng gọi thực thể mối quan hệ đối tượng - Vai trị q trình thiết kế sở liệu: phân tích liệu, xác định đơn vị thông tin cần thiết tổ chức, mô tả cấu trúc mối liên hệ chúng E-R mơ hình trung gian để chuyển yêu cầu quản lý liệu giới thực thành mơ hình sở liệu quan hệ -Mục đích: làm thống quan điểm liệu người tham gia hệ thống: Người quản lý, người dùng cuối, người thiết kế hệ thống Xác định xử lý liệu ràng buộc liệu Giúp đỡ việc thể sở liệu mặt cấu trúc: Sử dụng thực thể mối liên kết thực thể -Các thành phần cụ thể: a) Loại thực thể: -Là loại đối tượng hay vật giới thực tồn cụ thể cần quản lý -Ví dụ: Học sinh, Môn học, Khách hàng, Nhân viên, … -Kí hiệu: Học sinh b) Thực thể: -Là thể loại thực thể -Ví dụ: Loại thực thể Học sinh có thực thể : (‘HS001’,’Nguyen Van A’,’10/2/1999’,’Nam’) (‘HS002’,’Nguyen Thi B’,’8/5/2001’,’Nu’) c) Thuộc tính loại thực thể: -Là tính chất đặc trưng loại thực thể -Ví dụ: Khách hàng có thuộc tính: Mã khách hàng , Ngày sinh , Địa , Số điện thoại, … -Ký hiệu: Mã khách hàng Khách hàng Ngày sinh Địa Số điện thoại -Các loại thuộc tính: +Đơn trị: thực thể có giá trị tương ứng với thuộc tính Ví dụ: Mã học sinh, Họ tên, … +Đa hợp (Composite): thuộc tính tạo thành từ nhiều thành phần Ví dụ: Địa chỉ(Số nhà, Đường, Phường, Quận) Họ Tên(Họ, Tên lót, Tên) +Đa trị (Multi-valued): thuộc tính có nhiều giá trị thực thể Ví dụ: Bằng cấp {Bằng lái xe, Bằng kỹ sư, Bằng bác sĩ, …} d) Khóa loại thực thể: -Khóa loại thực thể thuộc tính nhận diện thực thể -Căn vào giá trị khóa xác định thực thể Ví dụ: Mỗi học sinh có mã số => Khố loại thực thể Học sinh Mã học sinh e) Loại môối kếốt hợp: -Là liên kết hai hay nhiều loại thực thể Ví dụ: hai loại thực thể Học sinh Lớp có loại mối kết hợp Thuộc Ký hiệu: hình oval hình thoi Học sinh Lớp Thuộc f) Sôố loại môối kếốt hợp: -Là số loại thực thể tham gia vào loại mối kế hợp Ví dụ: Loại mối kết hợp Thi kết hợp loại thực thể Học sinh, Môn học, Lần thi nên có số ngơi Học sinh Mơn học Thi Điểm Lần thi Ngày thi g) Thuộc tính loại mơối kếốt hợp: -Bao gồm thuộc tính khố loại thực thể tham gia vào loại mối kết hợp Ngồi ra, cịn có thêm số thuộc tính khác Ví dụ: Loại mối kết hợp Thi ba loại thực thể Học sinh, Môn học Lần thi có thuộc tính Mã học sinh, Mã mơn học, Lần thi, ngồi cịn có thuộc tính riêng Điểm, Ngày thi h) Bản sơố: -Loại mối kết hợp thể liên kết thực thể, liên kết gọi nhánh -Là số lượng tối thiểu số lượng tối đa thực thể thuộc nhánh tham gia vào loại mối kết hợp -Ký hiệu: (số lượng tối thiểu, số lượng tối đa) Ví dụ: Loại thực thể Học sinh Lớp có loại mối kết hợp Thuộc Học sinh 1:1 1:n Thuộc Lớp Nghĩa : học sinh thuộc lớp lớp bao gồm nhiều học sinh -Có loại liên kết loại thực thể A B : +Liên kết 1-1: Ví dụ : Một nhân viên thuộc phịng ban +Liên kết 1-n: Ví dụ : Một phịng ban có nhiều nhân viên +Liên kết n-n: Ví dụ: Mỗi nhân viên làm việc cho nhiều phòng ban khác phòng ban bao gồm nhiều nhân viên 1-n 1-n Lam_viec PB NV 2.Giới thiệu mô hình quan hệ - Được giới thiệu E.F.Codd để mơ hình hóa liệu dạng quan hệ bảng Sau thiết kể mơ hình mức khái niệm sơ đồ ER, cần chuyển đổi mô hình khái niệm mơ hình quan hệ ngôn ngữ RDMVS Oracle SQL, MySQL, v.v - Mô hình quan hệ thể liệu lưu trữ Cơ sở liệu quan hệ Một sở liệu quan hệ lưu trữ dạng quan hệ Ví dụ quan hệ Sinh viên quan hệ với thuộc tính ROLL_NO, Tên, Địa chỉ, Điện Thoại tuổi, … - Các thành phần cụ thể: a) Thuộc tính (attribute) Thuộc tính bao gồm : -Tên gọi: dãy ký tự (gợi nhớ) -Kiểu liệu: Số, Chuỗi, Thời gian, Luận lý -Miền giá trị: tập giá trị mà thuộc tính nhận.Ví dụ:GIOITINH kiểu liệu Chuỗi, miền giá trị Dom(GIOITINH)=(‘Nam’,’Nu’) Tại thời điểm, thuộc tính khơng có giá trị chưa xác định giá trị => giá trị Null b) Quan hệ (relation) Định nghĩa: quan hệ tập hữu hạn thuộc tính Ký hiệu: Q(A1,A2,A3,…) Trong Q tên quan hệ, (A1,A2,A3,…) tập thuộc tính quan hệ Q Ví dụ: HOCVIEN (Mahv, Hoten, Ngsinh, Gioitinh, Noisinh, Malop) LOP (Malop, Tenlop, Siso, Trglop, Khoa) c) Bộ (tuple) Định nghĩa: Bộ thông tin đối tượng thuộc quan hệ, gọi mẫu tin (record), dòng Quan hệ bảng (table) với cột thuộc tính dịng gọi Ví dụ: HOCVIEN(Mahv, Hoten, Ngsinh, Noisinh) có : (1003,Nguyen Van Lam, 1/1/1987,Dong Nai) nghĩa học viên có mã số 1003, họ tên Nguyen Van Lam, sinh ngày 1/1/1987 Dong Nai d) Tân từ Định nghĩa: tân từ quy tắc dùng để mô tả quan hệ Ví dụ: THI (Mahv, Mamh, Lanthi, Diem) ||THI||: học viên phép thi môn học nhiều lần, lần thi lưu trữ học viên thi mơn gì? lần thi thứ mấy? điểm bao nhiêu? e) Khóa (primary key) Khóa dùng để định danh record (dòng) quan hệ (table) sở liệu Các thuộc tính nằm khóa liệt kê quan hệ phải gạch Ví dụ: HOCVIEN (Mahv,Hoten,Gioitinh,Noisinh,Malop) GIANGDAY(Mamh,Malop,Magv,Hocky,Nam) f) Khóa ngoại(foreign key): Khóa ngoại bảng xem trỏ trỏ tới khóa bảng khác Ví dụ: Cho quan hệ: LOP (Malop,Tenlop,Siso,Khoahoc) HOCVIEN (Mahv,Hoten,Gioitinh,Noisinh,Malop) Thuộc tính Malop quan hệ LOP khóa quan hệ LOP Thuộc tính Malop quan hệ HOCVIEN khóa ngoại, tham chiếu đến Malop quan hệ LOP 3.Sự khác mơ hình ER mơ hình quan hệ: Mơ hình ER Mơ hình quan hệ Là mơ hình khái niệm cấp cao Là mơ hình đại diện thực 10 Mơ hình ER cho EMPLOYEE DEPENDENT: Chuyển thực thể sang mơ hình mơ hình quan hệ: EMPLOYEE( Em_id, Address, Name) -Với lược đồ DEPENDENT khóa Em_id De_id DEPENDENT( Em_id,De_id, Name, Sex, Relationship) Bước 3: Chuyển quan hệ 1:1 - Đầu tiên chuyển thực thể mối quan hệ sang bảng Thuộc tính khóa bên lấy làm khóa ngoại bên ngược lại 14 Bước 4: Chuyển quan hệ 1:N - Cho liên kết mơ hình ER Chuyển khóa quan hệ sang làm khóa ngoại quan hệ N - Với mối quan hệ đệ quy 1:N ( mối kết hợp phản thân ) ta thêm khóa thực thể bên ngơi số vào thuộc tính quan hệ 15 Bước 5: Chuyển mối quan hệ N:N - Sinh quan hệ mới, chuyển khóa hai mối quan hệ thành khóa ngoại quan hệ mới, khóa quan hệ kết hợp khóa ngoại *Code SQL Quản lí đề án cơng ty: create table PHONGBAN ( MaPB int primary key, TenPB varchar(10), ) create table DIADIEM (MaDD int primary key, TenDD varchar(10) ) create table NHANVIEN (MaNV int primary key, MaQL int, MaPB int foreign key references PHONGBAN(MaPB), TenNV varchar(15), GioiTinh varchar(5), DiaChi varchar(30), Luong money, 16 ) create table THANNHAN ( MaTN int primary key, TenTN varchar(15), GioiTinh varchar(5), NgaySinh datetime ) create table DEAN ( MaDA int primary key, MaPB int foreign key references PHONGBAN(MaPB), TenDA varchar(10), DiaDiemDA varchar(25) ) create table NHANVIEN_DEAN ( MaNV int foreign key references NHANVIEN(MaNV), MaDA int foreign key references DEAN(MaDA), constraint PK_NHANVIEN_DEAN primary key (MaNV,MaDA), ThoiGian smalldatetime ) create table TRUONGPHONG ( MaNV int foreign key references NHANVIEN(MaNV), MaPB int foreign key references PHONGBAN(MaPB), constraint PK_TRUONGPHONG primary key (MaNV,MaPB), NgayNhanChuc smalldatetime ) create table QUANHE ( MaTN int foreign key references THANNHAN(MaTN), MaNV int foreign key references NHANVIEN(MaNV), TenQuanHe varchar(10) ) create table DIADIEM_PHONGBAN ( MaDD int foreign key references DIADIEM(MaDD), MaPB int foreign key references PHONGBAN(MaPB), constraint PK_DIADIEM_PHONGBAN primary key (MaDD,MaPB) ) III Mơ hình EER: - Các khái niệm mơ hình ER khơng đủ để biểu diễn số ứng dụng phức tạp: CSDL dùng cho công nghệ sản xuất viễn thơng, khai phá liệu, cần thêm vào ER số khái niệm để tăng khả 17 mô tả đối tượng rõ ràng xác hơn… Mơ hình EER giải pháp việc thể khái niệm trừu tượng ràng buộc rõ ràng - Một số khái niệm mơ hình EER : đặc tính có kế thừa chun biệt, lưới kiểu hợp Tính kế thừa - Lớp thừa kế thuộc tính quan hệ lớp cha có số thuộc tính quan hệ riêng Mối quan hệ lớp cha lớp gọi kiểu IS-A liên kết 1:1 Nhân viên Quản lí, nhân viên kĩ thuật,… - Mơ hình EER cịn có tính chất tổng quát hóa đặc biệt hóa Ràng buộc 18 a Ràng buộc rời rạc - Ràng buộc rời rạc mô tả mối quan hệ lớp cha lớp phải độc lập hoàn toàn ( thực thể lớp cha thuộc lớp đặc biệt hóa) - Trong sơ đồ EER, ràng buộc rời rạc kí hiệu chữ d (disjoint) nằm vịng trịn b Ràng buộc chơồng chéo 19 - Ràng buộc chồng chéo cho biết mối quan hệ lớp cha thực thể lớp khơng thể tách rời ( thực thể thành viên của nhiều lớp theo đặc biệt hóa) - Trong lược đồ EER, ràng buộc mô tả chữ o bên vòng tròn c Ràng buộc đâồy đủ - Ràng buộc đầy đủ bao gồm : o Ràng buộc toàn cho biết tất thực thể lớp cha phải thành viên lớp đặc biệt hóa ( Thể đường nét đơi lớp cha vịng trịn chun biệt) 20 o Ràng buộc phần cho phép thực thể lớp cha khơng thuộc lớp đặc biệt hóa ( Thể đượng nét đơn) Chuyên biệt phân cấp lưới Trong chuỗi quan hệ lớp lại cha lớp khác : - Phân cấp ràng buộc tất lớp tham gia vào liên kết lớp cha/con (thừa kế đơn ánh) - Lưới ràng buộc lớp tham gia vào nhiều liên kết cha/con ( thừa kế bội) - Lớp khơng thừa kế thuộc tính cha mà cịn thừa kế thuộc tính lớp bên ( cha lớp cha nó) 21 VD: Chuyên biệt phân cấp Phân cấp lưới 22 Kiểu hợp (union) - Trong chuyên biệt lưới lớp thừa kế từ nhiều lớp cha, thừa hưởng tất thuộc tính lớp cha Tại nên dùng EER ? - Cả mơ hình EER ER hữu ích cho nhìn trừu tượng liệu Và nên dùng lược đồ tùy vào độ lớn chi tiết liệu Dữ liệu phức tạp cần EER để tổ chức quan hệ liệu IV Chuẩn hóa mơ hình quan hệ : - Chủ yếu nhằm hai mục đích : +Giảm thiểu dư thừa liệu +Loại bỏ bất thường cập nhật liệu -Có dạng chuẩn hóa là: First Normal Form (1NF): dạng chuẩn 1NF Second Normal Form (2NF): dạng chuẩn 2NF 23 Third Nomal Form (3NF): dạng chuẩn 3NF Boyce-Codd Normal Form (BCNF): dạng chuẩn Boyce-Codd Các dạng chuẩn xếp theo thứ tự từ thấp đến cao Để chuẩn hóa 2NF sở liệu phải đạt chuẩn 1NF, tương tự đạt chuẩn 3NF phải đạt chuẩn 1NF 2NF Và chuẩn Boyce-Codd bao gồm loại chuẩn 1NF, 2NF 3NF Dạng chuẩn 1NF Ví dụ 1: Bảng chưa chuẩn hóa: Bảng có khóa customer_id, order_id product_id Bảng liệu vi phạm điều kiện chuẩn 1NF vì: address chứa giá trị trùng lặp, nữa, giá trị address hàng đơn trị (chỉ có giá trị), thêm vào đó, thuộc tính total_amount hồn tồn tính tốn cách quantity * unit_price, không thiết phải đưa vào bảng, gây dư thừa liệu Qua nhận xét trên, ta hình dung điều kiện cần phải tn theo là: Các thuộc tính bảng phải nguyên tố Giá trị thuộc tính hàng phải đơn trị, khơng chứa nhóm lặp Khơng có thuộc tính có giá trị tính tốn từ thuộc tính khác Từ đó, ta thiết kế lại bảng liệu sau: 24 Tách thuộc tính lặp bảng như: customer_name, phone thành bảng customers Tách address thành bảng riêng có khóa customer_id để biết địa thuộc customer Loại bỏ thuộc tính total_amount Dạng chuẩn 2NF Quy tắc chuẩn hóa từ chuẩn 1NF thành 2NF: Bước 1: Loại bỏ thuộc tính khơng khóa phụ thuộc vào phận khóa tách thành bảng riêng, khóa bảng phận khóa mà chúng phụ thuộc vào Bước 2: Các thuộc tính cịn lại lập thành quan hệ, khóa khóa ban đầu Bảng liệu mà ta thiết kế chưa đạt chuẩn 2NF vì: số thuộc tính description , unit_price phụ thuộc vào phần khóa product_id không cần phụ thuộc vào tập khóa (customer_id, order_id, product_id), hay thuộc tính customer_name phone phụ thuộc vào customer_id, thuộc tính order_date phụ thuộc vào customer_id order_id, thuộc tính quantity phụ thuộc vào order_id product_id 25 Vậy nên để đạt chuẩn 2NF ta thiết bảng liệu chuẩn 1NF sau: Tách thuộc tính (product_id, description, unit_price) thành bảng riêng products Các thuộc tính (customer_id, order_id, order_date) làm thành bảng, đặt tên orders Cịn lại thuộc tính (order_id, product_id, quantity) làm thành bảng trung gian products orders, đặt tên order_products Chỉ cần tuân thủ chuẩn mà ta sở liệu chuẩn hóa sau: Dạng chuẩn 3NF Điều kiện: Phải đạt chuẩn 2NF Mọi thuộc tính khơng khóa phụ thuộc bắc cầu vào thuộc tính khóa (nghĩa tất thuộc tính khơng khóa phải suy trực tiếp từ thuộc tính khóa) Quy tắc chuẩn hóa từ 2NF thành 3NF: Bước 1: Loại bỏ thuộc tính phụ thuộc bắc cầu khỏi quan hệ tách chúng thành quan hệ riêng có khóa thuộc tính bắc cầu 26 Bước 2: Các thuộc tính cịn lại lập thành quan hệ có khóa khóa ban đầu Để ý thấy sở liệu mà ta thiết kế chuẩn 2NF đạt chuẩn 3NF Nên lấy ví dụ sau: Ví dụ bảng sau vi phạm chuẩn 3NF: Ta thấy thuộc tính country_name phụ thuộc vào country_id, mà country_id lại phụ thuộc vào khóa id Vì ta nên tách bảng thành bảng sau: Dạng chuẩn Boyce-Codd Điều kiện: Phải đạt chuẩn 3NF Khơng có thuộc tính khóa phụ thuộc vào thuộc tính khơng khóa Quy tắc chuẩn hóa 3NF thành Boyce-Codd: Bước 1: Loại bỏ thuộc tính khóa phụ thuộc hàm vào thuộc tính khơng khóa khỏi quan hệ 27 Bước 2: Tách thuộc tính vừa loại bỏ thành quan hệ riêng có khố thuộc tính khơng khóa gây phụ thuộc V Tài liệu tham khảo: - https://voer.edu.vn/c/chuyen-tu-mo-hinh-er-sang-mo-hinh-quanhe/d11e79e2/3a0b6c88 - https://www.geeksforgeeks.org/difference-between-e-r-model-andrelational-model-in-dbms/?ref=rp - https://www.geeksforgeeks.org/mapping-from-er-model-to-relationalmodel/?ref=rp - https://www.geeksforgeeks.org/relational-model-in-dbms/?ref=rp - https://viblo.asia/p/mo-hinh-quan-he-thuc-the-entity-relationship-modeloOVlYEenl8W - Mô hỉnh EER: https://fr.slideshare.net/thanhrossi/c2-2-29022363? fbclid=IwAR14b5fIbnJCJTG6akX_2hm0wvmYO6gx2T7nzV2zwmCYy s8swWvLl0ot094 - Giáo Trình Cơ Sở Dữ Liệu ĐHKHTN : Đồng Thị Bích Thủy 28