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

Khóa (tt)

• 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 (tt)

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

Lược đồ quan hệ

• 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

Lược đồ quan hệ (tt)

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ược đồ cơ sở dữ liệu

• 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

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Ệ

55

Quy tắc 1

56

28

2/13/2012

Quy tắc 2

57

Quy tắc 2 (tt)

58

29

2/13/2012

Quy tắc 2 (tt)

59

Quy tắc 3

60

30