1. Trang chủ
  2. » Luận Văn - Báo Cáo

CSDL PTIT CSDL PTIT CSDL PTIT CSDL PTIT CSDL PTIT

55 200 2

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 55
Dung lượng 12,18 MB

Nội dung

GIỚI THIỆU: Mô hình thực thể là mô hình ban đầu để từ đó người ta biến đổi nó thành mô hình dữ liệu; Nó cho phép mô tả sơ đồ ý niệm của thế giới thực mà không quan tâm đến hiệu quả hoặc

Trang 1

CƠ SỞ DỮ LiỆU

Giảng viên : ThS Lưu Nguyễn Kỳ Thư

Học viện công nghệ bưu chính viễn thông

Khoa công nghệ thông tin 2

Trang 2

NỘI DUNG MÔN HỌC

➢ MỤC TIÊU MÔN HỌC

➢ CHƯƠNG 1:

➢ MÔ HÌNH THỰC THỂ MỐI LIÊN KẾT

(MỨC QUAN NIỆM)

➢ CHƯƠNG 2: PHỤ THUỘC HÀM

➢ CHƯƠNG 3: THIẾT KẾ CƠ SỞ DỮ LIỆU MỨC LOGIC

➢ CHƯƠNG 4: THIẾT KẾ CƠ SỞ DỮ LIỆU MỨC VẬT LÝ

Trang 3

Chương 1 MÔ HÌNH THỰC THỂ

MỐI LIÊN KẾT

I GIỚI THIỆU: Mô hình thực thể là mô hình

ban đầu để từ đó người ta biến đổi nó thành mô hình dữ liệu; Nó cho phép mô tả sơ đồ ý

niệm của thế giới thực mà không quan tâm

đến hiệu quả hoặc thiết kế CSDL vật lý

ERD (Entity Relationship Diagram ) sau này sẽ được biến đổi thành mô hình quan hệ.

Mô hình ERD gồm có 2 thành phần: thực thể và

liên kết.

Trang 4

THỰC THỂ

Thực thể là một sự vật hay sự việc mà ta có thể phân biệt được, nó tồn tại trong 1 thế giới khách quan mà ta có thể liên kết thực thể

này với 1 thực thể khác

Thực thể có thể là 1 thực thể cụ thể (Sinh

viên) hoặc trừu tượng (Môn học)

Trang 5

TẬP THỰC THỂ

Tập thực thể là 1 tập bao gồm những thực thể giống nhau

Trang 6

MỐI LIÊN KẾT

Một mối liên kết giữa các tập thực thể là 1 danh sách có thứ tự của các tập thực thể.

Ví dụ: Mối liên kết giữa thực thể Sinhvien và thực thể Lop

Trang 7

SƠ ĐỒ THỰC THỂ MỐI

LIÊN KẾT (ERD)

ERD thể hiện mối liên kết giữa các thực thể Lưu ý: Nếu 1 tập thực thể chỉ có 1 thuộc tính thì ta nên gọi tên tập thực thể bằng tên

thuộc tính và tập thực thể đó được ghi trong vòng tròn.

Trang 8

Tập thực thểThuộäc tínhThuộäc tính dẫn xuấtMối liên kết

Mối liên kết n-nliên kết có hướng

Để biểu diễn sơ đồ thực thể mối liên kết, ta có các ký hiệu sau:

Trang 9

TÍNH HÀM CỦA MỐI LIÊN KẾT

▪ Mối liên kết 1 – 1 ( one-to-one)

▪ Mối liên kết 1 – n ( one-to-many)

▪ Mối liên kết n – n ( many-to-many)

Trang 10

Ví dụ về ERD của siêu thị

Một siêu thị có nhiều nhân viên Thông tin về nhân viên: MANV, TênNV, Luong Mỗi nhân viên làm việc ở 1 bộ phận, 1 bộ phận có thể có nhiều nhân viên Thông tin về bộ phận: MaBP và tênBP Trong các nhân viên có người làm quản lý, một người chỉ quản lý tối đa 1 bộ phận, và 1 bộ phận chỉ có 1 người quản lý.

Ở 1 bộ phận có nhiều mặt hàng , nhưng 1 mặt hàng chỉ được đặt ở 1 bộ phận mà thôi Thông tin về mặt hàng: MSMH, TenMH 1 mặt hàng do nhiều người cung cấp bán, 1 người cung cấp c ĩ thể cung cấp nhiều mặt hàng, mỗi mặt hàng sẽ cĩ giá kh ác nhau Thông tin về người cung cấp: MaNCC,TenCC, Diachi.

Siêu thị có nhiều khách hàng Thông tin về khách hàng: MAKH, TenKH, Diachi Mỗi khách hàng có nhiều đơn đặt hàng nhưng 1 đơn đặt hàng thì chỉ có 1 khách hàng mà thôi Thông tin về đơn đặt hàng: SoHieuDDH, NgayDH Mỗi đơn đặt hàng bao gồm nhiều mặt hàng với mỗi măït hàng có 1 số lượng mua và đơn giá.

Trang 11

Nhân viên Làm việc Bộ phận

NgQLy

Bày bán Mặt hàng

Qlý CT ĐĐH Ccấpisa

Giá NccSlượng

Đơn đặt hàng Có

Khách hàng

Trang 12

CHUYỂN ĐỔI ERD SANG BẢNG

Trang 13

CHUYỂN ĐỔI ERD SANG

DonDatHang(SoHieu, Ngay, MAKH )

CungCap( MaMH, MANCC , Gia)

CTDDH ( SoHieu, MaMH , SoLuong, Dongia)

Sau đó , ta tổ hợp các quan hệ có cùng khóa chính lại với nhau:

Bophan + NguoiQLy → Bophan(MaBP, TenBP, MANVQL )

Trang 14

MHDLQH SAU KHI TỔ

HỢP

Nhanvien(MANV,Tennv, luong, MaBP )

Bophan(MaBP, TenBP, MANVQL)

NguoiCC(MANCC,TenCC, Diachi)

MatHang(MaMH , TenMH, MaBP )

KhachHang(MAKH,TenKH, Diachi)

DonDatHang(SoHieu, Ngay, MAKH )

CungCap( MaMH, MANCC , Gia)

CTDDH ( SoHieu, MaMH , SoLuong, Dongia)

Trang 15

CHƯƠNG 2 PHỤ THUỘC HÀM

Định nghĩa : Cho R(U) là 1 lược đồ quan hệ với U = {A1, A2, …, An} là tập thuộc tính

- r là 1 thể hiện của quan hệ R(U)

- X, Y là tập con của U

Ta nói X->Y là phụ thuộc hàm trên R(U) nếu t1, t2  r mà t1[X]=t2[X] thì t1[Y]=t2[Y]

Trang 16

PHỤ THUỘC HÀM ĐẦY ĐỦ

Ta nói X->Y là PTH đầy đủ trên R(U) nếu

không tồn tại X’ X sao cho X’->Y

Mệnh đề:

▪ X-> Y là phụ thuộc hàm trên r nếu và chỉ nếu

X là siêu khóa của r[XY]

▪ X-> Y là phụ thuộc hàm đầy đủ trên r nếu và chỉ nếu X là khóa của r[XY]

Trang 17

HỆ LUẬT DẪN ARMSTRONG

Cho R(U) là 1 lược đồ quan hệ với U = {A1, A2, …,

An} là tập thuộc tính

Xét X, Y, Z, W là tập con của U.

1 Luật phản xạ: Y  X => X-> Y

2 Luật thêm vào: X->Y và Z  W => XW->YZ

X->Y thì XZ -> YZ (tăng trưởng)

3 Luật bắc cầu: X->Y và Y->Z => X->Z

4 Luật tựa bắc cầu: X->Y và WY->Z => XW->Z

5 Luật phân rã : X->Y và Z  Y => X->Z

6 Luật hợp : X->Y và X->Z => X->YZ

Trang 18

Ví dụ: Cho quan hệ R (A,B,C) và tập phụ

thuộc hàm F = { AB->C, C-> A}.

Dựa vào hệ luật dẫn ArmStrong, Hãy chứng

minh: BC->ABC

Trang 19

F = { AB->C, C-> A} Chứng minh BC->ABC

➢Ta có C-> A ( giả thiết)

➢BC -> BA ( luật tăng trưởng)

➢BC -> ABC ( luật tăng trưởng)

Trang 20

2.2.1 Định nghĩa PTH suy dẫn:

Cho tập các PTH F X,Y  U Ta nói:

f : X->Y là PTH suy dẫn từ F nếu nó được suy từ F bằng các luật dẫn của hệ tiên đề ArmStrong.

-Ký hiệu : F |= f

Tập F + = { f/ F |= f} được gọi là bao đóng của F

2.2.2 Mệnh đề: Cho tập các PTH F, ta có:

a F  F +

b f là hệ quả của F  F |= f  f  F +

2.2 BAO ĐÓNG

Trang 21

Bao đóng của tập thuộc tính

Cho lược đồ quan hệ Q với tập PTH F

Trang 22

Cho lược đồ quan hệ Q ( A B C D E G) với:

F = { AE-> C, CG -> A , BD -> G, GA->E}Chứng minh : BDC -> Q+  F+

Trang 23

KHÓA CỦA QUAN HỆ

XÁC ĐỊNH KHÓA

B1 Tìm các nút gốc X= {vế trái } - {vế phải} + {các thuộc tính khơng cĩ trong các PTH} B2 Tính bao đóng của các nút gốc X

Nếu X F + = U thì X là khóa Ngược lại X = X U Y với Y  U Quay lại bước 2

Trang 24

Ví dụ: Cho Q( A B C D E H)

F ={AB->C, CD -> E, EC->A, CD-> H , H->B}Tìm 1 khóa của Q

Bài làm:

B1 Nút gốc= {vế trái } - {vế phải}

= {A B C D E H} – {C E A H B }

= { D }Gọi X = { D }B2.Vì XF+ = { D } nên ta chọn X = X U {C}

= { C D }

Vì XF+ = { C D }F+ = {C D E A H B } = Q+

nên {CD} là khóa

Trang 25

PHỦ CỦA TẬP PHỤ THUỘC HÀM

Định nghĩa: Cho 2 tập PTH F và G

a)Ta nói F suy ra G ký hiệu là F |=G nếu G +  F +

b)Ta nói F tương đương G ký hiệu là F  G nếu F |=G và G |=F

Cho tập PTH F Xét tập PTH G, nếu G |=F thì ta nói

G là 1 phủ của F

Trang 26

PHỦ TỐI THIỂU CỦA TẬP PHỤ THUỘC HÀM

Một tập PTH F được gọi là tối thiểu nếu:

▪  f  F, f có dạng X->A, A chỉ có 1 thuộc tính

▪ Không tồn tại f:X->A và Z  X sao cho:

F  F – {X->A} U {Z->A}

▪ Không tồn tại f: X->A để F  F – {X->A}

Trang 27

CHƯƠNG 3 THIẾT KẾ CƠ SỞ

DỮ LIỆU MỨC LOGIC

I MỤC TIÊU CHÍNH

II DẠNG CHUẨN

III CẤU TRÚC CƠ SỞ DỮ LIỆU TƯƠNG ĐƯƠNG

IV HAI CÁCH TIẾP CẬN ĐỂ THIẾT KẾ

CƠ SỞ DỮ LIỆU

Trang 28

MỤC ĐÍCH

Thiết kế cơ sở dữ liệu sao cho đạt tối thiểu DC3 để đảm bảo không dư thừa dữ liệu

Trang 29

DẠNG CHUẨN

Thế nào là một quan hệ được chuẩn hóa: Mụcđích của dạng chuẩn nhằm loại bỏ dư thừa dữliệu mà các phụ thuộc hàm có thể gây ra tronglược đồ cơ sở dữ liệu và những bất thường xảy

ra khi thao tác lên dữ liệu

Trang 30

Dạng chuẩn 1: 1NF (Normal Form)

Một quan hệ R được xem ở dạng chuẩn 1 nếu và chỉ nếu tất cả các thuộc tính trong

R đều chứa các giá trị nguyên tố (giá trị không tách ra được nữa).

Ví dụ : R không đạt DC1

Trang 31

300 200 400 200 100 100

P2

300 400

P4 P5

200 300 400

Trang 32

DẠNG CHUẨN 2

Một quan hệ R được xem ở dạng chuẩn 2 nếu và chỉ nếu R đạt DC1 và các thuộc tính không khóa phụ thuộc hàm đầy đủ vào khóa chính

S#

P#

City Status Qty

Xét quan hệ R(S#, P#, City, Status, Qty)

Các PTH : S# -> City, Status

City ->Status S#, P# -> R +

Trang 33

Ta nhận thấy rằng tồn tại PTH: S# -> City, Status

Do City và Status là 2 thuộc tính không khóa

không PTH đầy đủ vào khóa chính là (S#, P#).

Vì vậy, R(S#, P#, City, Status, Qty) chưa đạt DC2

Để R đạt DC2, ta tách R ra thành 2 quan hệ

con R1(S#, P#, Qty) và R2(S#, City, Status)

R (S#, P#, City, Status, Qty)

R1(S#, P#, Qty)

S#,P# -> Qty R2(S#, City, Status)S# -> City, Status

City ->Status

S# -> City, Status

Trang 34

Tuy nhiên sau khi tách thì lược đồ quan hệ R1, R2 vẫn còn có nhược điểm :

-Không thể thêm 1 thành phố (R2) mới nếu chưa có người cung cấp.

- Tốn thời gian khi sửa dữ liệu, ví dụ như sửa Status của London thành 15

Trang 35

DẠNG CHUẨN 3

Một quan hệ R được xem ở dạng chuẩn 3 nếu và chỉ nếu R đạt DC2 và các thuộc tính không khóa không phụ thuộc hàm bắc cầu vào khóa chính

Status

Xét quan hệ R2 (S#, City, Status) và các PTH :

S# -> City, Status City ->Status

Trang 36

Ta nhận thấy rằng trong R2, tồn tại PTH City -> Status làm cho Status bị PTH bắc cầu vào khóa chính là S# Vì vậy, R2(S#, City, Status) chưa đạt DC3.

Để R2 đạt DC3, ta tách R2 ra thành 2

quan hệ con R21(S#, City) và

R22(City, Status)

Trang 37

Boyce-Codd Normal Form

Một quan hệ R được xem ở dạng chuẩn

BCNF, nếu mỗi FD X -> A trên R thỏa 1

trong 2 điều kiện sau:

- A  X; PTH hiển nhiên hoặc

- X là 1 siêu khóa

Trang 38

DẠNG CHUẨN CỦA LƯỢC ĐỒ

CƠ SỞ DỮ LIỆU

Nếu tất cả các quan hệ của lược đồ

cơ sở dữ liệu đạt DCi thì ta nói lược đồ cơ sở dữ liệu đạt DCi .

Trang 39

BÀI TẬP

Exercise 1: Trả lời ngắn gọn các câu hỏi sau:

1 Thế nào là 1 phụ thuộc hàm (functional

dependency)

2 Hãy cho 1 tập FDs trên lược đồ quan hệ

R(A,B,C,D) với khóa chính là AB sao cho R thuộc

1NF nhưng không thuộc 2NF.

3 Hãy cho 1 tập FDs trên lược đồ quan hệ

R(A,B,C,D) với khóa chính là AB sao cho R thuộc

2NF nhưng không thuộc 3NF.

4 Khảo sát lược đồ quan hệ R(A,B,C), R có FD

B->C Nếu A là 1 khóa trên R, thì R có thuộc

BCNF?

Trang 40

Khảo sát quan hệ R (ABCDE) có các PTH sau: A-> B, BC-> E, và ED -> A.

1 Liệt kê tất cả khóa của R.

2 R thuộc 3NF?

3 R thuộc BCNF?

Exercise 2

Trang 41

Exercise 3: Khảo sát 1 tập các quan hệ và PTH Giả

sử rằng các quan hệ có được từ phép phân rã 1 quan

hệ ( ABCDEF ) và các PTH của quan hệ được liệt kê

trong các câu hỏi (Các câu hỏi độc lập với nhau).

Trên mỗi quan hệ: (a) Hãy cho biết quan hệ thuộc

dạng chuẩn nào? (b) Nếu quan hệ chưa thuộc BCNF, phân rã nó thành 1 tập các quan hệ thuộc dạng chuẩn BCNF

1 R1 (A,C,B,D,E), A -> B, C-> D

2 R2 (A,B,F), A -> B, B -> F

3 R3 (A,D), D -> A

Trang 42

PHÂN RÃ LƯỢC ĐỒ QUAN HỆ

Phân rã 1 lược đồ quan hệ R là thay thế

quan hệ đó bởi 2 (hoặc nhiều) quan hệ; Mỗi quan hệ chứa 1 tập con thuộc tính của R và quan hệ còn lại chứa các

thuộc tính còn lại của R.

Trang 43

VÍ DỤ

Hourly Emps(ssn, name, lot, rating (mứclương),

hourly wages, hours worked)

Chúng ta khảo sát lược đồ quan hệ Hourly

Emps với các thuộc tính SNLRWH (W đại diện hourly wages attribute) Giả sử ta có

R-> W Điều này sẽ dẫn đến dư thừa dữ liệutrong quan hệ Hourly Emps như được minhhọa trong hình:

Trang 44

Một số thông tin được lưu trữ nhiều lần, ví dụ mức lương 8 sẽ quyết định lương giờ công 10, và thông tin này lặp lại 3 lần Điều này không những làm lãng phí không gian nhớ mà còn tiềm ẩn một mối nguy về mất tính đồng nhất dữ liệu.

Trang 45

CÁC HẠN CHẾ KHI LƯỢC ĐỒ CƠ

SỞ DỮ LIỆU CHƯA ĐẠT DC3

- Nếu ta cập nhật hourly wages trong bộ thứ 1

mà không cập nhật nó trên bộ thứ 2 và thứ 5 thì sẽ

vi phạm PTH

- Ta không thể thêm 1 bộ mới vào quan hệ nếu

ta không biết mức lương và và lương giờ công

- Nếu ta xóa tất cả các bộ với 1 giá trị mức

lương thì ta sẽ làm mất luôn mối liên kết R->W

Trang 46

Cách giải quyết

Ta sẽ giải quyết sự dư thừa này trong

Hourly Emps bằng cách phân rã nó thành 2

quan hệ:

Hourly Emps2(ssn, name, lot, rating, hours

worked)

Wages(rating, hourly wages)

Thể hiện của 2 quan hệ này tương ứng với thể hiện của Hourly Emps được trình bày trong hình sau:

Trang 47

Thể hiện của Hourly_Emps2 và Wages

Trang 48

PHÂN RÃ BẢO TOÀN THÔNG TIN

Phép phân rã dùng để giới hạn tính dư thừa dữ liệu, phải đảm bảo thông tin sau khi phân rã không bị mất Phát biểu sau đây sẽ giúp ta

chứng minh R sau khi phân rã vẫn bảo toànthông tin:

Cho quan hệ R và tập PTH F trên R Phép

phân rã quan hệ R thành 2 quan hệ R1 và R2 là bảo toàn thông tin nếu và chỉ nếu F+ hoặc chứa R1  R2 -> R1 hoăïc chứa R1  R2 -> R2.

Nói cách khác, các thuộc tính chung của R1 và

R2 phải chứa khóa của R1 hoặc R2.

Trang 49

Chứng minh quan hệ Hourly Emps sau khi phân rã là bảo toàn thông tin

Vì R là thuộc tính chung của 2 quan hệ sau khi phân rã, và R -> W là PTH của Wages, nên

quan hệ Hourly Emps sau khi phân rã là bảotoàn thông tin

Trang 50

TÂN TỪ CỦA QUAN HỆ Contracts

Khảo sát quan hệ Contracts ( C S J D P Q V)

- C : số hiệu hợp đồng ; - S : mã nhà cung cấp

- J : mã dự án ; - D : mã phòng ban

- P : mã linh kiện ; - Q : số lượng

D S-> P 1 chính sách khác là 1 dự án khi mua 1

linh kiện chỉ dùng 1 hợp đồng: J P -> C

Trang 51

PHÂN RÃ BẢO TOÀN PHỤ THUỘC HÀM

Các PTH của quan hệ Contracts là C-> CSJDPQV, JP -> C, and SD -> P Vì SD không phải là khóa, PTH

SD -> P là nguyên nhân làm Contracts vi phạm BCNF Chúng ta phân rã Contracts thành 2 quan hệ với các thuộc tính (CSJDQV) và (SDP) để giải quyết vấn đề này; Tuy nhiên, có 1 vấn đề xảy ra ở đây: Sau khi phân rã xong, thì chúng ta đã làm mất PTH JP->C.

Khuyết điểm : Bất cứ khi nào ta thêm 1 bộ vào quan hệ (CSJDQV) , ta phải kết 2 quan hệ đã phân rã lại để kiểm tra PTH JP->C Điều này sẽ chiếm khá nhiều thời gian thực thi.

Trang 52

Phép chiếu của F trên X

Cho R là 1 lược đồ quan hệ đã được phân rã thành 2 quan hệ với các thuộc tính X và Y, và F là tập các PTH trên R.

Phép chiếu của F trên X (ký hiệu:F X )là tập các PTH

trong bao đóng F+ mà chỉ chứa các thuộc tính trong

X Lưu ý rằng U -> V (trong F+ )  F X chỉ khi tất cả

các thuộc tính trong U và V đều thuộc tập X.

Trang 53

- Phép phân rã lược đồ quan hệ R với tập PTH

F sang 2 lược đồ có tập thuộc tính X và Y là

bảo toàn PTH nếu (F X U F Y )+ = F+

PHÂN RÃ BẢO TOÀN PHỤ THUỘC HÀM

Trang 54

Ví dụ về phân rã bảo toàn phụ thuộc

Dĩ nhiên là {A->B} trong FAB, {B->C} trong FBC

Còn C->A có bị mất hay không ?

CM:

Vì F + = { A->B , B ->C , C->A, A->C, B->A, C->B}

Nên FAB= {A->B , B->A}; FBC ={B->C, C->B}

FAB U FBC = { A->B, B->A, B->C, C->B}

(FAB U FBC ) + =F + ➔ phép phân rã bảo toàn PTH

Trang 55

PHÂN RÃ QUAN HỆ ĐẠT BCNF

Thuật toán để phân rã lược đồ quan hệ R

thành 1 tập các quan hệ đạt BCNF

1 Giả sử rằng R không đạt BCNF Cho X

R, A là 1 thuộc tính đơn trong R, và X->A là 1

PTH làm quan hệ không đạt Ta phân rã R thành R − A và XA.

2 Nếu R − A hay XA không đạt BCNF, ta tiếp

tục phân rã nó theo bước 1

Ngày đăng: 03/10/2019, 23:01

TỪ KHÓA LIÊN QUAN

w