2/13/2012
TRƯỜNG CĐKTKT PHÚ LÂM – KHOA CNTT
CHƯƠNG 2
NHỮNG CÁCH TIẾP CẬN MỘT CSDL
1
GV. Lê Thị Thu Thảo
NỘI DUNG
2
1
Bài 1: Giới thiệu Bài 2: Mô hình dữ liệu thực thể kết hợp Bài 3: Mô hình dữ liệu quan hệ của E.F.CODD Bài 4: Các bước chuyển từ mô hình thực thể kết hợp sang mô hình quan hệ
2/13/2012
BÀI 1
GiỚI THIỆU
3
KHÁI NIỆM MÔ HÌNH DỮ LIỆU
• Mô hình dữ liệu là sự trừu tượng hoá môi
trường thực.
• Mô hình dữ liệu (Data Model) bao gồm:
4
2
- Các khái niệm biểu diễn dữ liệu - Các phép toán xử lý dữ liệu
2/13/2012
KHÁI NIỆM MÔ HÌNH DỮ LIỆU
Mô hình mức cao • Cung cấp các khái niệm gần gũi với người dùng • Mô hình phải tự nhiên và giàu ngữ nghĩa • VD: mô hình thực thể kết hợp (ER) Mô hình cài đặt • Đưa ra các khái niệm người dùng có thể hiểu được
nhưng không quá xa với cách dữ liệu được tổ chức thật sự trên máy tính
• VD: mô hình quan hệ Mô hình mức thấp (mô hình vật lý) • Đưa ra các khái niệm mô tả chi tiết về cách thức dữ liệu
được lưu trữ trong máy tính
5
KHÁI NIỆM MÔ HÌNH DỮ LIỆU
6
3
• Ví dụ mô hình dữ liệu thực thể kết hợp
2/13/2012
KHÁI NIỆM MÔ HÌNH DỮ LIỆU
7
• Ví dụ mô hình dữ liệu quan hệ
BÀI 2
MÔ HÌNH DỮ LIỆU THỰC THỂ KẾT HỢP
8
4
2/13/2012
GIỚI THIỆU
Quy trình thiết kế một CSDL:
9
GIỚI THIỆU
• Mô hình dữ liệu quan hệ được dùng trong các hệ quản trị CSDL, đây là mô hình dữ liệu ở mức vật lý.
10
5
• Để thành lập được mô hình dữ liệu quan hệ, trước hết ta dùng mô hình thực thể kết hợp để để đặc tả. Đây là mô hình dữ liệu ở mức quan niệm. Sau đó mới chuyển hệ thống từ mô hình thực thể kết hợp sang mô hình dữ liệu quan hệ
2/13/2012
KHÁI NIỆM MÔ HÌNH THỰC THỂ KẾT HỢP
11
Mô hình thực thể kết hợp (Entity-Relationship model) • Được xây dựng dựa trên nhận thức rằng thế giới thực muốn phản ánh là một tập hợp các đối tượng cơ sở và các mối quan hệ (còn gọi là liên kết) giữa chúng. Mô hình này dùng các khái niệm “thực thể” (entity-E) và “mối quan hệ” (Relationship-R) do đó còn được gọi là mô hình E-R;
KHÁI NIỆM MÔ HÌNH THỰC THỂ KẾT HỢP
12
6
• Ví dụ:
2/13/2012
CÁC KHÁI NIỆM CỦA MÔ HÌNH THỰC THỂ KẾT HỢP
13
• Thực thể • Loại thực thể • Thuộc tính • Khóa • Mối kết hợp • Bản số
Thực Thể (Entity)
• Là một sự vật tồn tại và phân biệt được
• Sinh viên Nguyễn Văn Thành • lớp 11CDTH01 • Môn học Cơ Sở Dữ Liệu • Xe máy có biển số đăng ký 52-0549
14
7
• Ví dụ:
2/13/2012
Thuộc tính (attribute)
• Các đặc điểm riêng của thực thể gọi là các
thuộc tính.
• Ký hiệu:
Thuộc tính
các thuộc tính là: mã số sinh viên, giới tính, ngày sinh, hộ khẩu thường trú, lớp đang theo học, …
15
• Ví dụ: Thực thể sinh viên Nguyễn Văn Thành có
Thuộc tính (attribute)
• Loại thuộc tính
- Thuộc tính đơn: không thể tách nhỏ ra được - Thuộc tính phức hợp: có thể tách ra thành các
thành phần nhỏ hơn • Loại giá trị của thuộc tính
- Đơn trị: các thuộc tính có giá trị duy nhất cho
một thực thể (VD: số CMND, …)
- Đa trị: các thuộc tính có một tập giá trị cho
cùng một thực thể (VD: bằng cấp, …)
16
8
- Suy diễn được (năm sinh <-> tuổi)
2/13/2012
Loại thực thể (entity type)
• Là tập hợp các thực thể có cùng thuộc tính.
Mỗi loại thực thể được đặt tên riêng
• Ký hiệu: E
17
• Một tập hợp các thực thể của một loại thực thể cụ thể trong cơ sở dữ liệu tại một thời điểm được gọi là một tập thực thể
Loại thực thể (entity type)
• Các sinh viên có mã sinh viên:“02CĐTH019”,
“02CĐTH519”,… nhóm lại thành một loại thực thể, được đặt tên là Sinhvien
• Các môn học có mã môn học:“CSDL”, “NMTH”,… nhóm lại thành một loại thực thể, được đặt tên là Monhoc
18
9
• Ví dụ:
2/13/2012
Loại thực thể (entity type)
• Các sinh viên có mã sinh viên:“02CĐTH019”,
“02CĐTH519”,… nhóm lại thành một loại thực thể, được đặt tên là Sinhvien
• Các môn học có mã môn học:“CSDL”, “NMTH”,… nhóm lại thành một loại thực thể, được đặt tên là Monhoc
19
• Ví dụ:
Khoá (key)
• Khoá của loại thực thể E là một hay một tập
các thuộc tính của E có thể dùng để phân biệt hai thực thể bất kỳ của E.
• Ký hiệu: Thuộc tính khoá được gạch dưới
Thuộc tính
bằng nét liền
20
10
• Ví dụ khoá của loại thực thể Sinhvien là MASV, của Lớp là MALOP, của Khoa là MAKHOA, của Monhoc là MAMH,…
2/13/2012
Ví dụ
Bài toán quản lý điểm của sinh viên được phát biểu như sau: •Mỗi sinh viên cần quản lý các thông tin như: họ và tên (HOTENSV),ngày tháng năm sinh(NGAYSINH), giới tính (NU), nơi sinh(NOISINH), hộ khẩu thường trú (TINH). Mỗi sinh viên được cấp một mã số sinh viên duy nhất (MASV) để phân biệt với mọi sinh viên khác của trường, mỗi sinh viên chỉ thuộc về một lớp nào đó.
21
Ví dụ (tt)
• Mỗi lớp học có một mã số lớp (MALOP) duy nhất để phân biệt với tất cả các lớp học khác trong trường: có một tên gọi (TENLOP) của lớp, mỗi lớp chỉ thuộc về một khoa.
• Mỗi khoa có một tên gọi (TENKHOA) và một mã số
duy nhất (MAKHOA) để phân biệt với các khoa khác.
• Mỗi môn học có một tên gọi (TENMH) cụ thể,
được học trong một số đơn vị học trình (DONVIHT) và ứng với môn học là một mã số duy nhất (MAMH) để phân biệt với các môn học khác.
22
11
2/13/2012
Ví dụ (tt)
• Mỗi giảng viên cần quản lý các thông tin: họ và tên(HOTENGV), cấp học vị (HOCVI), thuộc một chuyên ngành (CHUYENNGANH) và được gán cho một mã số duy nhất gọi là mã giảng viên(MAGV) để phân biệt với các giảng viên khác. Mỗi giảng viên có thể dạy nhiều môn ở nhiều khoa, nhưng chỉ thuộc về sự quản lý hành chính của một khoa.
• Mỗi sinh viên với một môn học được phép thi tối đa 3 lần, mỗi lần thi (LANTHI), điểm thi (DIEMTHI). • Mỗi môn học ở mỗi lớp học chỉ phân công cho một
giảng viên dạy (tất nhiên là một giảng viên thì có thể dạy nhiều môn ở một lớp).
23
Ví dụ (tt)
• Các loại thực thể cần quản lý như: Sinhvien,
Monhọc, Khoa, Lop, Giangvien.
HOTENSV
NU
NGAYSINH
NOISINH
MASV
TINH
SINHVIEN
24
12
• Loại thực thể Sinhviên quản lý các thuộc tính: MASV,HOTENSV, NU, NGAYSINH, NOISINH, TINH
2/13/2012
Mối Kết Hợp (relationship)
• Mối kết hợp diễn tả sự liên hệ giữa các loại thực
và hai bên là hai nhánh gắn kết với các loại thực thể liên quan, tên mối kết hợp thường là: thuộc, gồm , chứa,...
25
thể trong một ứng dụng tin học. • Ví dụ mối kết hợp giữa hai loại thực thể Sinhviên và Lop, mối kết hợp giữa Sinhviên với Mônhọc,... • Mối kết hợp được biểu diễn bằng một hình thoi
Mối Kết Hợp (relationship) (tt)
• Ví dụ: mối kết hợp giữa hai loại thực thể Lớp và
Thuộc
SINHVIEN
LOP
ketqua
SINHVIEN
MONHOC
26
13
Sinh viên, giữa Sinhviên với Mônhọc
2/13/2012
Chiều của mối kết hợp
• Chiều của mối kết hợp là số tập thực thể tham gia
quanly
NHANVIEN
vào mối kết hợp đó.
27
• Mối quan hệ một chiều (đệ quy-phản xạ): mối kết hợp giữa các thực thể của cùng một tập thực thể.
Chiều của mối kết hợp (tt)
Thuộc
SINHVIEN
LOP
• Mối quan hệ hai chiều: là sự kết nối giữa hai tập thực
thể, còn gọi là mô hình nhị nguyên.
• Mối quan hệ nhiều chiều: mối kết hợp có số tập thực
GIAOVIEN
SINHVIEN
day
MONHOC
28
14
thể tham gia lớn hơn 2, còn gọi là mô hình đa nguyên.
2/13/2012
Bản số của mối kết hợp
• Bản số của một nhánh E trong mối kết hợp thể hiện số lượng các thực thể thuộc thực thể ở nhánh F có liên hệ với một thực thể của nhánh E.
lượng tối thiểu và số lượng tối đa của thực thể khi tham gia vào mối kết hợp đó.
29
• Mỗi bản số là một cặp số (min,max), chỉ số
Bản số của mối kết hợp (tt)
30
15
2/13/2012
Bản số của mối kết hợp (tt)
• Ví dụ: mỗi sinh viên thuộc một và chỉ một lớp,
(1,1)
(1,n)
Thuộc
SINHVIEN
LOP
31
mỗi lớp có thể có 1 hoặc nhiều sinh viên • Bản số bên nhánh Sinhviên là (1,1) • Bản số bên nhánh Lop là (1,n)
Bản số của mối kết hợp (tt)
có mối kết hợp ketqua với ý nghĩa: “mỗi sinh viên ứng với mỗi lần thi của mỗi môn học có một kết quả điểm thi duy nhất”.
(1,n)
(1,n)
ketqua
SINHVIEN
MONHOC
DiemThi
LanThi
32
16
• Mối kết hợp có thể có các thuộc tính đi kèm do đó chúng được đặt tên với ý nghĩa đầy đủ hơn. • Ví dụ giữa hai loại thực thể Monhoc và Sinhvien
2/13/2012
Tập thực thể yếu
• Là thực thể mà khóa có được từ những thuộc
tính của tập thực thể khác
• Mô tả kiểu thực thể yếu bằng hình thoi và hình
• Thực thể yếu (weak entity set) phải tham gia vào mối kết hợp mà trong đó có một tập thực thể chính (kiểu thực thể chủ)
33
chữ nhật nét đôi
Khoá của mối kết hợp
• Là hợp của các khoá của các loại thực thể liên quan. • Ví dụ:
• MAGV là thuộc tính khoá của loại thực thể
Giangvien
• MALOP là thuộc tính khoá của loại thực thể Lop • MAMH là thuộc tính khoá của loại thực thể Monhoc • Mối kết hợp phancong (giữa các loại thực thể
Giangvien, Lop, Monhoc) có khoá là {MAGV,MAMH,MALOP}
• phancong là mối kết hợp 3 ngôi.
34
17
2/13/2012
Các bước thành lập mô hình thực thể kết hợp
• B1: Xác định danh sách các loại thực thể • B2: Xác định các mối kết hợp giữa các loại
thực thể để phác thảo mô hình.
35
• B3: Lập bản số của các mối kết hợp.
Mô hình thực thể kết hợp cho bài toán quản lý điểm của sinh viên
36
18
2/13/2012
Bài tập 1: Quản lí đặt và giao hàng
• Một cửa hàng chuyên bán sĩ và lẻ các mặt hàng đủ loại. Mỗi khi hết hàng, cửa hàng đặt mua thêm hàng ở các nhà cung cấp. Mỗi lần đặt hàng, cửa hàng sẽ điền một phiếu đặt hàng. Mỗi lần đặt hàng sẽ có một phiếu giao hàng. Cửa hàng muốn theo dõi việc đặt hàng và giao hàng trên. Sau đây là kết quả của việc phân tích yêu cầu ứng dụng.
• Một nhà cung cấp có tên, địa chỉ và điện thoại của nhà cung cấp. Cần lưu lại thông tin về tất cả các mặt hàng mà cửa hàng có mua bán: mã mặt hàng, tên hàng, đơn vị tính, quy cách, số lượng tồn. Mỗi nhà cung cấp có thể cung ứng nhiều mặt hàng khác nhau và mỗi mặt hàng cũng có thể được cung cấp bởi nhiều nhà cung cấp khác nhau. Mỗi khi đặt hàng, cửa hàng phải điền các thông tin sau vào đơn đặt hàng: số đơn đặt hàng, ngày đặt hàng, 1 nhà cung cấp có thể cung cấp các mặt hàng cần đặt, ghi chú, số mặt hàng cần đặt. Đối với từng mặt hàng trong đơn đặt hàng, cần ghi rõ số lượng đặt và đơn giá đặt. Nhà cung cấp có thể áp dụng những đơn đặt hàng mà nhà cung cấp có cung ứng. Sau khi đặt hàng xong, nếu nhà cung cấp đến giao hàng thì phải lưu các phiếu giao hàng ứng với từng lần giao hàng. Trên phiếu giao hàng cần có các thông tin sau: số phiếu giao hàng, ngày giao, giao cho đơn đặt hàng nào. Mỗi lần đặt hàng, nhà cung cấp chỉ được giao hàng tối đa là 3 lần.
Hãy vẽ mô hình thực thể kết hợp cho ứng dụng trên
37
Bài tập 2: Quản lý đề án
Xây dựng cơ sở dữ liệu đề án công ty theo dõi các thông tin liên quan tới
Nhân viên, Phòng ban, và đề án.
• Công ty được tổ chức thành các phòng ban (PHONGBAN). Mỗi phòng ban có một tên duy nhất, mã số phòng ban duy nhất, và một nhân viên quản l{ phòng đó. Ta ghi nhận lại ngày nhận chức trưởng phòng. Mỗi phòng ban có thể có nhiều địa điểm khác nhau
• Mồi phòng ban chủ trì nhiều Đề án (DEAN). Mỗi đề án có một tên duy nhất,
mã số đề án duy nhất và được triển khai ở một địa điểm
• Ta lưu trữ thông tin liên quan tới nhân viên (NHANVIEN) của công ty: mã
nhân viên, địa chỉ, lương, phái, và ngày sinh. Mỗi nhân viên làm việc ở một phòng ban nhưng có thể tham gia nhiều đề án, trong đó đề án không nhất thiết phải do chính phòng ban của nhân viên đó chủ trì. Ta ghi nhận thời gian tham gia đề án trong tuần của nhân viên ứng với từng đề án mà nhân viên đó tham gia. Ta cũng ghi nhận người quản l{ trực tiếp của từng nhân viên. • Mỗi nhân viên có thể có nhiều thân nhân (THANNHAN). Với mỗi thân nhân, ta lưu trữ tên, phái, ngày sinh, và mối quan hệ với nhân viên trong công ty.
Hãy vẽ mô hình thực thể kết hợp cho ứng dụng trên
38
19
2/13/2012
BÀI 3
MÔ HÌNH DỮ LIỆU QUAN HỆ
39
GIỚI THIỆU
• Mô hình dữ liệu quan hệ được đề xuất bởi EF Codd
năm 1970
• Mô hình này cung cấp một cấu trúc dữ liệu đơn
40
20
giản, đồng bộ quan hệ - và nền tảng l{ thuyết vững chắc (đặt biệt về xử l{ và tối ưu hóa truy vấn) • Mô hình dữ liệu quan hệ là cơ sở của hầu hết các DBMS thương mại như: Oracle, Informix, DB2, Sybase, Foxpro, Microsoft SQL Server, …
2/13/2012
CÁC KHÁI NIỆM CỦA MÔ HÌNH DỮ LiỆU QUAN HỆ
41
• Quan hệ • Thuộc tính • Bộ giá trị • Thể hiện của quan hệ • Khóa
Quan hệ (relation)
• Quan hệ là một bảng 2 chiều được định nghĩa trên
một tập thuộc tính.
• Tập toàn bộ thuộc tính của một quan hệ R được kí
• Vd: Quan hệ NHANVIEN với 3 thuộc tính: MaNV,
hiệu là R+
42
21
HoTen, Luong
2/13/2012
Quan hệ (tt)
• Một dòng trong bảng tương ứng với một thực thể • Một quan hệ tương ứng với một tập thực thể • Một quan hệ có n thuộc tính được gọi là quan hệ n
43
ngôi
Thuộc tính (attribute)
• Thuộc tính là đặc tính của đối tượng cần được
phản ánh trong CSDL.
• Thuộc tính đặc trưng bởi 3 yếu tố:
• Tên gọi: một dãy kí tự bất kz, gợi nhớ • Kiểu dữ liệu: số, chuỗi, ngày, logic, OLE,.. • Miền giá trị của thuộc tính: xác định tập giá trị
44
22
mà thuộc tính có thể nhận. Kí hiệu của miền giá trị A là Dom(A)
2/13/2012
Thuộc tính (tt)
Ví dụ: • Quan hệ SINHVIEN có các thuộc tính MaSV, HoTen,
NgaySinh, QueQuan, Phai
• Thuộc tính MaSV, HoTen, QueQuan, Phai thuộc kiểu
45
chuỗi, thuộc tính NgaySinh thuộc kiểu ngày • Thuộc tính Phai có miền giá trị là ,nam,nữ-
Bộ giá trị (tuple)
46
23
• Bộ là một dòng dữ liệu trong một quan hệ • Bộ thường gọi là mẫu tin hay Record
2/13/2012
Thể hiện của quan hệ
• Thể hiện của một quan hệ là tập hợp các bộ giá trị cụ thể của một quan hệ tại một thời điểm nhất định.
47
• K{ hiệu thể hiện của quan hệ R là TR • Ví dụ: thể hiện của quan hệ KHOA
Khóa
∀ t1, t2 ∈ TR t1*K+ ≠ t2[K] K là siêu khóa của R. • Một quan hệ có ít nhất một siêu khóa (R+) và có thể
Siêu khóa (Super keys): • Là một tập con các thuộc tính của R+ mà nhờ vào đó chúng ta có thể phân biệt 2 bộ khác nhau trong cùng một thể hiện TR bất kz.
có nhiều siêu khóa.
• VD: Các siêu khóa của quan hệ NHANVIEN
48
24
là:,MANV-, ,MANV, HOTEN-,…
2/13/2012
Khóa (tt)
Khóa: • Là một siêu khóa “nhỏ nhất” (chứa ít thuộc tính và
khác rỗng)
• Cho R+ = ,A1, A2… An-, K = ,A1, A2… Am- với m K là siêu khóa của R
Nếu ∃K1⊂K, K1 không là siêu khóa • Thuộc tính tham gia vào một khóa gọi là thuộc tính K⊆ R+, K ≠ ∅ thì K là khóa của R nếu: khóa, ngược lại là thuộc tính không khóa. 49 • VD: MaNV là thuộc tính khóa của quan hệ NHANVIEN • Các thuộc tính nằm trong khóa chính khi liệt kê trong Khóa chính (Primary keys):
• Khi cài đặt trên một HQTCSDL cụ thể, nếu quan hệ có
nhiều hơn một khóa, ta chỉ được chọn một khóa và
gọi là khóa chính. 50 25 quan hệ phải được gạch dưới 2/13/2012 Khóa ngoại
• Cho 2 quan hệ R và S. Một tập thuộc tính K của quan
hệ R được gọi là khóa ngoại của quan hệ R nếu K là
khóa chính của quan hệ S • PHONGBAN (MaPHG, TenPHG)
• NHANVIEN (MaNV, HoTen, MaPHG)
• K1=,MaPHG- là khóa chính của quan hệ • VD: PHONGBAN • K2=,MaPHG- là khóa ngoại của NHANVIEN tham 51 chiếu đến K1 của PHONGBAN • Cấu trúc của một quan hệ là tập thuộc tính hình thành nên quan hệ đó. • Lược đồ quan hệ nhằm mục đích mô tả cấu trúc của
một quan hệ và các mối liên hệ giữa các thuộc tính
trong quan hệ đó • Lược đồ quan hệ được đặc trưng bởi : • Một tên phân biệt
• Một tập hữu hạn các thuộc tính (A1, A2… An)
• Kí hiệu một lược đồ quan hệ R gồm n thuộc tính 52 26 (A1, A2… An) là R(A1, A2… An) 2/13/2012 53 • Vd : Lược đồ quan hệ phòng ban
• PHONGBAN (MaPHG,TenPHG,TR_PHG,NG_NhamChuc)
• Mô tả : Mỗi phòng ban được cấp một mã số duy nhất
để phân biệt với các phòng ban khác trong công ty, và
có tên một phòng ban phân biệt, một trưởng phòng
cùng ngày nhận chức của trưởng phòng. • Là tập hợp gồm các lược đồ quan hệ và các mối liên hệ giữa chúng trong cùng một hệ thống quản l{. NHANVIEN(MaNV, HoNV, TenNV, Phai, Luong, NgaySinh, DiaChi, Ma_NQL ) PHONGBAN(MaPHG, TenPHG, TR_PHG, NG_NhanChuc)
DEAN(MaDA, TenDA, DiaDiem_DA, Phong) 54 27 • Vd : Lược đồ CSDL «Quản l{ đề án công ty » 2/13/2012 55 56 28 2/13/2012 57 58 29 2/13/2012 59 60 30Khóa (tt)
Khóa (tt)
Lược đồ quan hệ
Lược đồ quan hệ (tt)
Lược đồ cơ sở dữ liệu
BÀI 3
CÁC BƯỚC CHUYỂN TỪ MÔ HÌNH THỰC
THỂ KẾT HỢP SANG MÔ HÌNH QUAN HỆ
Quy tắc 1
Quy tắc 2
Quy tắc 2 (tt)
Quy tắc 2 (tt)
Quy tắc 3