ớ ệ ệ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 là một mô hình được sử dụng rộng rãi trong các bản thiết kế cơ sở dữ liệu ở mức khái niệm, xây
Trang 1TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
Châu Minh Quang 18521290
Nguyễn Hữu Trí 18521528
TP Hồ Chí Minh, ngày 15 tháng 05 năm 2020
1
Trang 2M ụ c L ụ c
I.Giới thiệu mô hình ER và mô hình quan hệ 4
1.Giới thiệu mô hình quan hệ -thực thể ER: 4
a) Loại thực thể: 4
b) Thực thể: 4
c) Thuộc tính của loại thực thể: 5
d) Khóa của loại thực thể: 5
e) Loại mối kết hợp: 6
f) Số ngôi của loại mối kết hợp: 6
g) Thuộc tính của loại mối kết hợp: 6
h) Bản số: 6
2.Giới thiệu mô hình quan hệ 8
a) Thuộc tính (attribute) 8
b) Quan hệ (relation) 8
c) Bộ (tuple) 9
d) Tân từ 9
e) Khóa chính (primary key) 9
f) Khóa ngoại(foreign key): 10
3.Sự khác nhau giữa mô hình ER và mô hình quan hệ: 10
4.Lí do tại sao phải chuyển đổi giữa 2 mô hình: 11
II.Cách chuyển mô hình quan hệ ER và mô hình quan hệ 11
III Mô hình EER: 17
1 Tính kế thừa 18
2 Ràng buộc 18
a Ràng buộc rời rạc 19
Trang 3c Ràng buộc đầy đủ 20
3 Chuyên biệt phân cấp và lưới 21
4 Kiểu hợp (union) 23
5 Tại sao nên dùng EER ? 23
IV Chuẩn hóa mô hình quan hệ : 23
1 Dạng chuẩn 1NF 24
2 Dạng chuẩn 2NF 25
3 Dạng chuẩn 3NF 26
4 Dạng chuẩn Boyce-Codd 27
V Tài liệu tham khảo: 28
3
Trang 4I.Gi i thi u mô hình ER và 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 là một mô hình được sử dụng rộng rãi trong các bản thiết kế cơ sở dữ liệu ở mức khái niệm, xây dựng việc nhận thức thế giới thông qua tập các đối tượng được gọi là các thực thể và mối quan hệ giữa các đối tượng đó
- Vai trò trong quá trình thiết kế cơ sở dữ liệu: phân tích dữ liệu, xác định các đơn vị thông tin cần thiết của các tổ chức, mô tả cấu trúc và mối liên hệ giữa chúng E-R là mô hình trung gian để chuyển những yêu cầu quản lý dữ liệu trong thế giới thực thành mô hình cơ sở dữ liệu quan hệ
-Mục đích: làm thống nhất quan điểm về dữ liệu của những 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 các xử
lý về dữ liệu cũng như các ràng buộc trên các dữ liệu Giúp đỡ việc thể hiện cơ sở
dữ liệu về mặt cấu trúc: Sử dụng thực thể và các mối liên kết giữa các thực thể -Các thành phần cụ thể:
Trang 5-Ví dụ: Loại thực thể là Học sinh có cá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 c a lo i th c th :ộ ủ ạ ự ể
-Là những tính chất đặc trưng của loại thực thể
-Ví dụ: Khách hàng có các thuộc tính: Mã khách hàng , Ngày sinh , Địa chỉ , Số điện thoại, …
-Ký hiệu:
-Các loại thuộc tính:
+Đơn trị: mỗi thực thể chỉ có 1 giá trị tương ứng với 1 thuộc tính
Ví dụ: Mã học sinh, Họ tên, …
+Đa hợp (Composite): thuộc tính có thể được 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ó thể có nhiều giá trị đối với một 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 c a lo i th c th :ủ ạ ự ể
-Khóa của loại thực thể là thuộc tính nhận diện thực thể
-Căn cứ vào giá trị của khóa có thể xác định duy nhất một thực thể
Ví dụ: Mỗi học sinh có một mã số duy nhất => Khoá của loại thực thể Học sinh là
Mã học sinh
5
Mã khách hàngNgày sinhKhách hàng
Số điện thoạiĐịa chỉ
Trang 6e) Lo i môối kếốt h p:ạ ợ
-Là sự liên kết giữa hai hay nhiều loại thực thể
Ví dụ: giữa hai loại thực thể Học sinh và Lớp có loại mối kết hợp Thuộc
Ký hiệu: bằng một hình oval hoặc hình thoi
f) Sôố ngôi c a 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 3 loại thực thể Học sinh, Môn học, Lần thi nên có số ngôi là 3
g) Thu c tính c a lo i môối kếốt h p:ộ ủ ạ ợ
-Bao gồm các thuộc tính khoá của các loại thực thể tham gia vào loại mối kết hợp đó
Ngoài ra, còn có thể có thêm 1 số thuộc tính khác
Ví dụ: Loại mối kết hợp Thi giữa ba loại thực thể Học sinh, Môn học và Lần thi có các thuộc tính là Mã học sinh, Mã môn học, Lần thi, ngoài ra còn có thuộc tính riêng là Điểm, Ngày thi
Trang 7-Là số lượng tối thiểu và số lượng tối đa các 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 và Lớp có loại mối kết hợp Thuộc
Lớp
1-n
Trang 82.Giới thiệu mô hình quan hệ
- Được giới thiệu bởi E.F.Codd để mô hình hóa dữ liệu dưới dạng quan hệ hoặc bảng Sau khi thiết kể mô hình mức khái niệm bằng sơ đồ ER, chúng ta cần chuyển đổi mô hình khái niệm trong mô hình quan hệ bằng các ngôn ngữ RDMVS như Oracle SQL, MySQL, v.v
- Mô hình quan hệ thể hiện các dữ liệu được lưu trữ trong Cơ sở dữ liệu quan hệ Một cơ sở dữ liệu quan hệ lưu trữ dưới dạng quan hệ Ví dụ một quan hệ Sinh viên quan hệ với các thuộc tính ROLL_NO, Tên, Địa chỉ, Điện Thoại và 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 dữ liệu: Số, Chuỗi, Thời gian, Luận lý
-Miền giá trị: tập giá trị mà thuộc tính có thể nhận.Ví dụ:GIOITINH kiểu dữ liệu
là Chuỗi, miền giá trị Dom(GIOITINH)=(‘Nam’,’Nu’)
Tại một thời điểm, một thuộc tính không có giá trị hoặc chưa xác định được giá trị
=> giá trị Null
NV
Trang 9b) Quan h (relation)ệ
Định nghĩa: quan hệ là một tập hữu hạn các thuộc tính Ký hiệu: Q(A1,A2,A3,…)Trong đó Q là tên quan hệ, (A1,A2,A3,…) là tập các thuộc tính của quan hệ Q
Ví dụ:
HOCVIEN (Mahv, Hoten, Ngsinh, Gioitinh, Noisinh, Malop)
LOP (Malop, Tenlop, Siso, Trglop, Khoa)
d) Tân từ
Định nghĩa: tân từ là một quy tắc dùng để mô tả một quan hệ
Ví dụ: THI (Mahv, Mamh, Lanthi, Diem)
||THI||: mỗi học viên được phép thi một môn học nhiều lần, mỗi lần thi lưu trữ học viên nào thi môn gì? lần thi thứ mấy? và điểm là bao nhiêu?
e) Khóa chính (primary key)
Khóa chính dùng để định danh mỗi một record (dòng) trong quan hệ (table) duy nhất của cơ sở dữ liệu
9
Trang 10Các thuộc tính nằm trong khóa chính khi liệt kê trong quan hệ phải được gạch dưới
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 của 1 bảng được xem như là con trỏ trỏ tới khóa chính của các bảng khác
3.Sự khác nhau giữa mô hình ER và 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 hiện
Trang 11Có thể dùng cho người không biết cơ
sở dữ liệu thực thi thế nào Dược dùng bởi lập trình viênĐại diện cho một bộ các thực thể và
mối quan hệ giữa chúng Biểu thị dữ liệu dưới dạng bảng vàmối quan hệ của chúngBao gồm các gói như thực thể, loại
thực thể Bao gồm tên miền, thuộc tính, bộ dữliệu
Có thể hiểu được mối quan hệ giữa
các thực thể dễ dàng
Rút ra các mối quan hệ giữa các bảngkhác nhau khó hơn
4.Lí do tại sao phải chuyển đổi giữa 2 mô hình:
Giúp việc quản lí cơ sở dữ liệu trên máy tính trở nên dễ dàng hơn và mang tính tổ chức và giúp người dùng dễ hình dung , nắm bắt mọi thông tin cần quản lí cũng như giúp người xây dựng hệ thống có cái nhìn trực quan về hệ thống mình đang xây dựng
II.Cách chuy n mô hình quan h ER và mô hình quan h ể ệ ệ
Ba thành phần của quá trình chuyển đổi:
Trang 12Chuyển thành quan hệ mới có khoá chính gồm thuộc tính đa trị và thuộc tính
khoá của thực thể Sau khi chuyển thành quan hệ mới, thuộc tính đa trị sẽ biến mất khỏi thực thể cũ
Mô hình ER cho Project:
Trang 13 Chuyển thực thể Project sang mô hình quan hệ:
Thuộc tính Location không có trong quan hệ vì nó là thuộc tính đa trị.Project (project_id, name, number)
Project_Location(project_id,location)
Bước 2: Cho mỗi thực thể yếu ( Weak Entity) trong mô hình ER, tạo thành quan hệ
R, tất cả thuộc tính đơn giản của thực thể trở thành thuộc tính của R Thêm vào đó, thuộc tính định danh của thực thể chủ trở thành khóa ngoại của R
Khóa chính của R là sự kết hợp giữa thuộc tính định danh của thực thể chủ và thuộc tính đinh danh của thực thể yếu
13
Trang 14 Mô hình ER cho EMPLOYEE và 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 thì khóa chính sẽ là Em_id và De_id
DEPENDENT( Em_id,De_id, Name, Sex, Relationship)
Bước 3: Chuyển quan hệ 2 ngôi 1:1
- Đầu tiên chuyển mỗi thực thể và mối quan hệ sang các bảng Thuộc tính
khóa của bên này được lấy làm khóa ngoại bên kia hoặc ngược lại
Trang 15Bước 4: Chuyển quan hệ 1:N
- Cho mỗi liên kết trong mô hình ER Chuyển khóa chính của quan hệ 1
sang làm khóa ngoại của 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
chính của thực thể bên ngôi số 1 vào trong thuộc tính của quan hệ
15
Trang 16Bước 5: Chuyển mối quan hệ N:N
- Sinh ra quan hệ mới, chuyển khóa chính của hai mối quan hệ thành khóa
ngoại của quan hệ mới, khóa chính của quan hệ mới là sự kết hợp của cáckhó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 ( ),
Trang 17create table THANNHAN
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 cơ bản về mô hình ER không đủ để biểu diễn một số ứng
dụng phức tạp: CSDL dùng cho công nghệ và sản xuất như viễn thông, khai phá dữ liệu, vì vậy cần thêm vào ER một số khái niệm để tăng khả
17
Trang 18năng mô tả đối tượng rõ ràng và chính xác hơn… Mô hình EER là giải pháp bằng việc thể hiện các khái niệm trừu tượng và ràng buộc rõ ràng hơn.
- Một số khái niệm cơ bản trong mô hình EER như : các đặc tính có trong
kế thừa và chuyên biệt, lưới và kiểu hợp
1 Tính kế thừa
- Lớp con thừa kế thuộc tính và quan hệ của lớp cha và có thể có một số
thuộc tính và quan hệ riêng của nó Mối quan hệ giữa lớp cha và lớp con còn gọi là kiểu IS-A và là liên kết 1:1
Nhân viên có thể là 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 và đặc biệt hóa.
2 Ràng buộc
Trang 19a Ràng bu c r i r cộ ờ ạ
- Ràng buộc rời rạc mô tả mối quan hệ giữa lớp cha và lớp con phải độc
lập hoàn toàn ( một thực thể của lớp cha chỉ thuộc một lớp con được đặc biệt hóa)
- Trong sơ đồ EER, ràng buộc rời rạc được kí hiệu bởi chữ d (disjoint) nằm
trong vòng tròn
b.
Ràng bu c chôồng chéoộ
19
Trang 20- Ràng buộc chồng chéo cho biết mối quan hệ giữa lớp cha và các thực thể
ở lớp con không thể tách rời được ( một thực thể có thể là thành viên của của nhiều lớp con theo sự đặc biệt hóa)
- Trong lược đồ EER, ràng buộc này được mô tả bởi chữ o bên trong 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 bộ cho biết tất cả các thực thể của lớp cha phải là thành viên của ít nhất một lớp con nào đó trong đặc biệt hóa ( Thể hiện bằng đường nét đôi giữa lớp cha và vòng tròn chuyên biệt)
Trang 21o Ràng buộc từng phần cho phép một thực thể ở lớp cha không thuộcbất kì một lớp con nào khi đặc biệt hóa ( Thể hiện bằng đượng nét đơn)
3 Chuyên biệt phân cấp và lưới
Trong chuỗi quan hệ thì một lớp con có thể lại là cha của lớp khác :
- Phân cấp là ràng buộc trong đó tất cả các lớp con chỉ tham gia vào 1 liên
kết lớp cha/con (thừa kế đơn ánh)
- Lưới là ràng buộc trong đó lớp con có thể tham gia vào nhiều hơn 1 liên
kết cha/con ( thừa kế bội)
- Lớp con không chỉ thừa kế thuộc tính của cha nó mà còn thừa kế thuộc
tính của lớp bên trên ( cha của lớp cha nó)
21
Trang 22VD: Chuyên biệt phân cấp
Trang 234 Kiểu hợp (union)
- Trong chuyên biệt lưới lớp con thừa kế từ nhiều lớp cha, thừa hưởng tất
cả thuộc tính của lớp cha
5 Tại sao nên dùng EER ?
- Cả 2 mô hình EER và ER rất hữu ích cho cái nhìn trừu tượng về dữ liệu
Và nên dùng lược đồ nào thì tùy vào độ lớn và chi tiết của dữ liệu
Dữ liệu càng phức tạp thì càng cần EER để có thể tổ chức mọi quan hệ trong dữ 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 dữ liệu
+Loại bỏ các bất thường khi cập nhật dữ liệu
-Có 4 dạng chuẩn hóa cơ bản đó là:
First Normal Form (1NF): dạng chuẩn 1NF
Second Normal Form (2NF): dạng chuẩn 2NF
23
Trang 24Third 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 được sắp xếp theo thứ tự từ thấp đến cao Để chuẩn hóa 2NF thì cơ
sở dữ liệu phải đạt chuẩn 1NF, tương tự nếu đạt chuẩn 3NF thì phải đạt chuẩn 1NF
và 2NF Và chuẩn Boyce-Codd sẽ bao gồm 3 loại chuẩn 1NF, 2NF và 3NF
1 Dạng chuẩn 1NF
Ví dụ 1: Bảng chưa chuẩn hóa:
Bảng có 3 khóa chính là customer_id, order_id và product_id
Bảng dữ liệu này vi phạm cả điều kiện của chuẩn 1NF vì:
address chứa các giá trị trùng lặp, hơn thế nữa, giá trị address trong từng hàng không phải là đơn trị (chỉ có 1 giá trị), thêm vào đó, thuộc tính total_amount hoàn toàn có thể tính toán được bằng cách quantity * unit_price, không nhất thiết phải đưa vào bảng, gây ra dư thừa dữ liệu
Qua nhận xét trên, ta có thể hình dung ra 3 điều kiện cần phải tuân theo đó là:
Các thuộc tính của bảng phải là nguyên tố
Giá trị của các thuộc tính trên các hàng phải là đơn trị, không chứa nhóm lặp Không có một thuộc tính nào có giá trị có thể tính toán được từ một thuộc tính khác
Trang 25Tách các thuộc tính lặp trong bảng như: customer_name, phone ra thành một bảng mới là customers
Tách address thành một bảng riêng có khóa là customer_id để biết địa chỉ đó thuộc
về customer nào
Loại bỏ thuộc tính total_amount
2 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ỏ các thuộc tính không khóa phụ thuộc vào một bộ phận khóa chính
và tách ra thành một bảng riêng, khóa chính của bảng là bộ phận của 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 một quan hệ, khóa chính của nó là khóa chính ban đầu.
Bảng dữ liệu mới mà ta thiết kế vẫn chưa đạt chuẩn 2NF là vì: một số thuộc tính như description , unit_price phụ thuộc vào 1 phần của khóa là product_id chứ không cần phụ thuộc cả vào tập khóa (customer_id, order_id, product_id), hay thuộc tính customer_name và phone cũng chỉ phụ thuộc vào customer_id, thuộc tính order_date phụ thuộc vào customer_id và order_id, thuộc tính quantity phụ thuộc vào order_id và product_id
25
Trang 26Vậy nên để đạt chuẩn 2NF thì ta sẽ thiết kế tiếp bảng dữ liệu chuẩn 1NF như sau:
Tách các thuộc tính (product_id, description, unit_price) thành một bảng riêng
Bước 1: Loại bỏ các thuộc tính phụ thuộc bắc cầu ra khỏi quan hệ và tách chúng