Cách đánh giá

 Lý thuyết: 50%

 Thực hành: 30%

CƠ SỞ DỮ LIỆU

 Bài tập: 20%

ThS. Nguyễn Thị Thúy Loan

10/4/2012 2 Nguyễn Thị Thúy Loan

Nội dung chương trình

Tài liệu tham khảo

 Nhập môn cơ sở dữ liệu, Bùi Minh Từ Diễm, Đại

 Tổng quan về cơ sở dữ liệu

học Khoa học Tự nhiên Tp.HCM.

 Mô hình thực thể kết hợp

 Cơ sở dữ liệu, Đồng Thị Bích Thủy và các tác giả,

 Mô hình quan hệ

nhà xuất bản Khoa học và Kỹ thuật.

 SQL

 Nhập môn cơ sở dữ liệu, Đồng Thị Bích Thủy –

Nguyễn An Tế.

 Đại số quan hệ

 A First course

in Database Systems, Feffrey

 Phép tính quan hệ

D.Ullman, Prentice Hall A First course in Database

 Ràng buộc toàn vẹn

Systems, Feffrey D.Ullman, Prentice Hall.

1

10/4/2012 3 10/4/2012 4 Nguyễn Thị Thúy Loan Nguyễn Thị Thúy Loan

Nội dung chi tiết

Chương I:

 Cơ sở dữ liệu

 Hệ cơ sở dữ liệu

 Hệ quản trị cơ sở dữ liệu

TỔNG QUAN VỀ CƠ SỞ DỮ LIỆU

 Các loại mô hình

ThS. Nguyễn Thị Thúy Loan

10/4/2012 6 Nguyễn Thị Thúy Loan

Giới thiệu

Quá trình quản lý dữ liệu

 Dữ liệu là một mô tả hình thức thích hợp

Giai đoạn đầu

về những sự kiện, khái niệm hay chỉ thị để

 Dữ liệu không được lưu trữ trên đĩa.

 Lập trình viên định nghĩa cấu trúc dữ liệu

giúp con người giao tiếp, diễn giải, hay xử

logic và cấu trúc vật lý.

lý hoặc thực hiện một cách tự động.

 Dữ liệu được mô tả bất kỳ dạng nào,

 Một tập dữ liệu một chương trình trùng

chẳng hạn ký tự hay số gắn liền với ngữ

lắp thông tin rất nhiều.

nghĩa.

2

10/4/2012 7 10/4/2012 8 Nguyễn Thị Thúy Loan Nguyễn Thị Thúy Loan

Quá trình quản lý dữ liệu

Quá trình quản lý dữ liệu

CHƯƠNG TRÌNH 1

TẬP DỮ LIỆU 1

Hạn chế:

Quản lý dữ liệu 1

 Thiếu tính bền vững.

CHƯƠNG TRÌNH 2

TẬP DỮ LIỆU 2

 RAM: đắc và giới hạn.

Quản lý dữ liệu 2

 Hiệu suất của lập trình viên thấp.

CHƯƠNG TRÌNH 3

TẬP DỮ LIỆU 3

Quản lý dữ liệu 3

Hình 1 Một tập dữ liệu ứng với một chương tình

10/4/2012 9 10/4/2012 10 Nguyễn Thị Thúy Loan Nguyễn Thị Thúy Loan

Quá trình quản lý dữ liệu

Quá trình quản lý dữ liệu

Xử lý tập tin

CHƯƠNG TRÌNH 1

D ữ

Quản lý dữ liệu 1

l i

 Dữ liệu được lưu trữ trong các tập tin.

Tập tin 1

ệ u d ư

 Nhiều phương thức truy xuất khác nhau

CHƯƠNG TRÌNH 2

Quản lý dữ liệu 2

t h ừ a

Các dịch vụ Hệ thống thông tin

Tập tin 2

ra đời.

CHƯƠNG TRÌNH 3

 Trong tiếp cận xử lý tập tin, mỗi ứng

Quản lý dữ liệu 3

dụng sử dụng các tập tin riêng của mình.

Hình 2 Một tập tin tương ứng với một hay nhiều chương tình

3

10/4/2012 11 10/4/2012 12 Nguyễn Thị Thúy Loan Nguyễn Thị Thúy Loan

Quá trình quản lý dữ liệu

Quá trình quản lý dữ liệu

Tiếp cận CSDL

Chức năng của hệ thống tập tin  Ánh xạ giữa các tập tin logic và tập tin physic.

Tập các dịch vụ và một giao diện .

DBMS DBMS

CHƯƠNG TRÌNH 1

Quản lý dữ liệu 1

CSDL tích hợp

Xử lý truy vấn QL giao dịch

Hạn chế:  Dữ liệu không có cấu trúc.  Dữ liệu được lưu trữ trùng lắp thông tin trong

CHƯƠNG TRÌNH 2

nhiều tập tin.

Quản lý dữ liệu 2

 Không có quản lý giao dịch và xử lý đồng thời

Hình 3 Tiếp cận CSDL trong việc quản lý dữ liệu

giữa nhiều người dùng,…

10/4/2012 13 10/4/2012 14 Nguyễn Thị Thúy Loan Nguyễn Thị Thúy Loan

Ví dụ về CSDL

Sơ đồ tổng quát về CSDL

SVIEN

LOP

MASV

TEN

MALOP

MALOP

TENLOP

SISO

TCTH01

Sơn

TCTHA

TCTHA

TCTH32A

80

TCTH02

TCTHB

Bảo

TCTHB

TCTH32B

65

82

TCTHC

TCTH32C

TCTH03

Trang

TCTHA

MONHOC

KQUA

MASV

MAMH

DIEM

MAMH

TENMH

TINCHI

KHOA

TCTH01

THVP

8

THVP

4

CNTT

Nhập môn TH

TCTH01

CSDL

6

TCTH01

CTDL

7

CSDL

4

CNTT

Cấu trúc dữ liệu

TCTH02

THVP

9

Toán rời rạc

CTDL

3

TOAN

TCTH02

CSDL

8

TCTH03

THVP

10

4

10/4/2012 15 10/4/2012 16 Nguyễn Thị Thúy Loan Nguyễn Thị Thúy Loan

Hệ cơ sở dữ liệu

Hệ cơ sở dữ liệu

Các mức biểu diễn CSDL

Khái niệm

 Mức lược đồ ngoài: Là mức ngoài cùng

 Hệ CSDL là 1 tập hợp dữ liệu được tổ

dành cho người sử dụng.

chức một cách chọn lọc, ghi trên các thiết

VD: Bộ phận quản lý công trình cần lập danh

bị lưu trữ, nhằm phục vụ đồng thời cho

sách phân công nhân viên theo công trình,

nhiều người, với nhiều mục đích khác

với các thông tin: STT, Họ tên, Chuyên môn,

nhau.

Công trình.

10/4/2012 17 10/4/2012 18 Nguyễn Thị Thúy Loan Nguyễn Thị Thúy Loan

Hệ cơ sở dữ liệu

Hệ cơ sở dữ liệu

Các mức biểu diễn CSDL

 Mức quan niệm: Là mức mô tả tổng thể

CSDL, cho biết CSDL chứa những đối

tượng dữ liệu nào, mối quan hệ giữa các đối

Các mức biểu diễn CSDL  Mức lược đồ vật lý: Là mức cài đặt thật sự của CSDL, liên quan đến cách tổ chức và lưu trữ, và cách truy xuất dữ liệu được lưu trữ.

tượng.

VD: Nhanvien: Họ tên, bậc lương, chuyên môn

VD: Mô tả thông qua các tập tin chứa dữ liệu gồm tên, cách tổ chức, cấu trúc mẫu tin, cách truy cập...

Chedo_phucap: Bậc lương, hệ số phụ cấp

5

10/4/2012 19 10/4/2012 20 Nguyễn Thị Thúy Loan Nguyễn Thị Thúy Loan

Hệ cơ sở dữ liệu

NGƯỜI SỬ DỤNG …

MỨC NGOÀI

KHUNG NHÌN NGOÀI

KHUNG NHÌN NGOÀI

Ánh xạ ngoài/ Quan niệm

LƯỢC ĐỒ QUAN NIỆM

MỨC QUAN NIỆM

Ánh xạ quan niệm/trong

LƯỢC ĐỒ TRONG

MỨC TRONG

CƠ SỞ DỮ LIỆU LƯU TRỮ

Lược đồ và thể hiện  Lựợc đồ CSDL-Database Schema: Mô tả về CSDL. Bao gồm mô tả về cấu trúc CSDL và các ràng buộc trên CSDL đó.  Thể hiện CSDL-Database Instance: Dữ liệu hiện thời được lưu trong một CSDL ở một thời điểm nào đó. Cũng được gọi là trạng thái CSDL

Minh họa kiến trúc 3 mức về lược đồ

10/4/2012 21 10/4/2012 22 Nguyễn Thị Thúy Loan Nguyễn Thị Thúy Loan

Hệ cơ sở dữ liệu

Hệ cơ sở dữ liệu

Đặc tính của môi trường CSDL

Đặc tính của môi trường CSDL

 Dữ liệu được chia sẽ cho nhiều người sử

 Có tính độc lập dữ liệu và chương trình

o Độc lập vật lý: người dùng chỉ quan tâm đến

dụng khác nhau, để tiết kiệm được không

nội dung dữ liệu, không quan tâm đến tổ

gian lưu trữ, tăng hiệu quả khai thác.

chức bên trong và cách thức truy xuất.

 Làm giảm tình trạng lưu trữ trùng lắp dữ liệu,

o Độc lập logic: Nếu sửa cấu trúc CSDL thì

bảo đảm được tính nhất quán trong việc truy

không cần viết lại chương trình ứng dụng.

xuất dữ liệu và tính toàn vẹn dữ liệu.

6

10/4/2012 23 10/4/2012 24 Nguyễn Thị Thúy Loan Nguyễn Thị Thúy Loan

Hệ quản trị cơ sở dữ liệu

Hệ quản trị cơ sở dữ liệu

 Các DBMS có nhiệm vụ hỗ trợ tích cực cho

Khái niệm:

các nhà phân tích thiết kế CSDL cũng như

 Hệ QTCSDL là một môi trường phần mềm

những người sử dụng khai thác CSDL.

cho phép xây dựng và khai thác CSDL của

DBMS cần phải có các thành phần cho phép

các đề án tin học hóa.

khai báo cấu trúc lưu dữ liệu và xây dựng

VD: Oracle, MS Access, Poxpro,….

các thao tác xử lý chúng.

10/4/2012 25 10/4/2012 26 Nguyễn Thị Thúy Loan Nguyễn Thị Thúy Loan

Hệ quản trị cơ sở dữ liệu

Hệ quản trị cơ sở dữ liệu

Các thành phần của DBMS:

Các thành phần của DBMS:

 Ngôn ngữ thao tác dữ liệu: Cho phép người

 Ngôn ngữ định nghĩa dữ liệu: Là phương tiện

sử dụng xây dựng các thao tác cập nhật dữ

cho phép khai báo cấu trúc lưu trữ dữ liệu,

liệu (T, X, S), khai thác dữ liệu với các mục

khai báo các mối liên hệ giữa các loại dữ liệu,

đích khác nhau.

cũng như các quy tắc quản lý áp đặt trên các

 Từ điển dữ liệu: Chứa thông tin về các thành

phần cấu trúc CSDL (các thuộc tính, các mối

dữ liệu được lưu trữ.

liên hệ,…), các quan hệ, RBDL.

7

10/4/2012 27 10/4/2012 28 Nguyễn Thị Thúy Loan Nguyễn Thị Thúy Loan

Các loại mô hình dữ liệu

Các loại mô hình dữ liệu

Định nghĩa:

 Thông qua mô hình dữ liệu, người thiết kế

 Mô hình dữ liệu là một tập hợp các khái

sẽ mô tả toàn cảnh CSDL được thiết kế bao

niệm, các quy ước biểu diễn dữ liệu cần

gồm:

quản lý ở mức quan niệm.

o Các đối tượng, thực thể được quản lý

o Các mối quan hệ giữa các đối tượng

o Các RBDL thể hiện các quy tắc quản lý ảnh

hưởng đến các đối tượng quản lý.

10/4/2012 29 10/4/2012 30 Nguyễn Thị Thúy Loan Nguyễn Thị Thúy Loan

Mô hình thực thể kết hợp

Mô hình thực thể kết hợp

 Thuộc tính (Attribute): Là các yếu tố thông

Đây là loại mô hình phổ biến để thiết kế CSDL

tin để nhận được thực thể.

ở mức quan niệm.

VD: Họ tên, Ngày sinh, Quê quán,…, của SV

 Thực thể (Entity): Là đối tượng cụ thể hay

 Loại thực thể: Là tập các thực thể có chung

trừu tượng trong thế giới thực.

thuộc tính.

VD: Sinh viên Nguyễn Văn B. Lớp CNTT3.

VD: Loại thực thể Sinh Viên.

8

10/4/2012 31 10/4/2012 32 Nguyễn Thị Thúy Loan Nguyễn Thị Thúy Loan

Mô hình thực thể kết hợp

Mô hình thực thể kết hợp

 Khóa của loại thực thể: Là thuộc tính mà giá

 Ký hiệu hình thức của loại thực thể:

trị của nó xác định duy nhất 1 thực thể.

VD: Mã số sinh viên (MSSV), mã số nhân viên

Sinh viên MSSV HovaTen MaLop

Lớp MaLop TenLop SiSo

(MSNV),…

 Ký hiệu hình thức của mối kết hợp:

 Loại mối kết hợp: Dùng diễn tả các liên hệ

ngữ nghĩa giữa các loại thực thể.

Thuộc

Sinh viên MSSV HovaTen MaLop

Lớp MaLop TenLop SiSo

10/4/2012 33 10/4/2012 34 Nguyễn Thị Thúy Loan Nguyễn Thị Thúy Loan

Mô hình thực thể kết hợp

Bản số của mối kết hợp

 Thuộc tính của mối kết hợp: Là thuộc tính

(1,n)

(0,n)

song

chung của các loại thực thể tham gia mối kết

hợp.

(1,1)

(0,n)

Nguoi

sohuu

Caooc

 Bản số mỗi nhánh của mối kết hợp: Là một

bộ gồm hai thành phần (min, max), đây là

Nguoi

Nguoi

Caooc

Caooc

một RBTV về số lượng tối thiểu và tối đa của

sohuu

song

một thực thể của nhánh đó tham gia vào các

n1 n2 n3 . . .

n1 n2 n3 . . .

thể hiện của mối kết hợp.

c1 c2 c3 c4 . . .

c1 c2 c3 c4 . . .

9

10/4/2012 35 10/4/2012 36 Nguyễn Thị Thúy Loan Nguyễn Thị Thúy Loan

Mối kết hợp 1-1

Mối kết hợp 1-n

N hanvien

lam viec

P hongban

Nhanvien

quanly

Phongban

(1,1)

(0,n)

(0,1)

(1,1)

lam viec

N hanvien

P hongban

quanly

r1

Nhanvien

Phongban

r1

r2

p1

r2

r3

p2

r3

r4

p3

.

r5

.

.

.

.

n1 n2 n3 n4 n5 . . .

p1 p2 p3 . . .

.

.

.

n1 n2 n3 n4 n5 . . .

.

10/4/2012 37 10/4/2012 38 Nguyễn Thị Thúy Loan Nguyễn Thị Thúy Loan

Các bước thiết lập mô hình ER

Mối kết hợp n-n

B1: Phân tích yêu cầu bài toán, chọn ra các

Nhanvien

thamgia

Dean

thông tin cần quản lý hình thành từ điển dữ

(0,n)

(1,n)

liệu.

thamgia

Nhanvien

Dean

r1

B2: Tiến hành gom nhóm các thuộc tính theo

r2

d1

các thực thể thật.

r3

d2

r4

d3

B3: Xác định các mối kết hợp giữa các thực thể.

r5

.

.

.

B4: Xác định các thuộc tính của các mối kết hợp.

n1 n2 n3 n4 n5 . . .

.

.

B5: Xác định bản số của mối kết hợp.

.

10

10/4/2012 39 10/4/2012 40 Nguyễn Thị Thúy Loan Nguyễn Thị Thúy Loan

Mô hình thực thể kết hợp

Mô hình thực thể kết hợp

Ví dụ:

 Hướng dẫn:

 Xây dựng mô hình dữ liệu phục vụ cho việc

Thông

tin Sinh viên bao gồm: MaSV,

quản lý điểm thi các môn học để tính điểm

TenSV, NgSinh, Phai

trung bình của từng học kỳ của sinh viên

Thông tin lớp bao gồm: MaLop, Tenlop

các lớp, với các quy tắc quản lý như sau:

Thông

tin môn học bao gồm:MaMH,

Mỗi môn học sinh viên được phép thi 2 lần.

TenMH, sogioLT, sogioTH

10/4/2012 41 10/4/2012 42 Nguyễn Thị Thúy Loan Nguyễn Thị Thúy Loan

Mô hình thực thể kết hợp

Mô hình thực thể kết hợp

Một số quy định của mô hình ER

(1,n)

(1,1)

Thuộc

LOP MSLOP TENLOP

 Không có các thuộc tính trùng tên giữa các

thực thể.

SINHVIEN MSSV HOTEN NGAYSINH PHAI

 Mọi thuộc tính của thực thể phải phụ thuộc

(0,n)

trực tiếp vào khóa của thực thể.

(0,n)

 Thuộc tính có liên quan với các thực thể của

KQHT Học kì ĐL1 ĐL2

một mối kết hợp thì đặt ở mối kết hợp.

MONHOC MSMH TENMH SOGIOLT SOGIOTH

11

10/4/2012 43 10/4/2012 44 Nguyễn Thị Thúy Loan Nguyễn Thị Thúy Loan

Ví dụ 1

Ví dụ 1

Họ chỉ quan tâm về dữ liệu của đợt ghi danh

Những người phụ trách đào tạo của Trường

hiện tại. Một khi học viên kết thúc môn học thì

cao đẳng cộng đồng núi Ayers mong muốn

nhà trường sẽ không còn quan tâm đến họ và

tạo lập một CSDL về các môn đào tạo của

những học viên này phải được xóa khỏi CSDL.

trường (như: chứng chỉ leo núi, công nghệ bay)

Thông tin cần lưu trữ về một học viên bao gồm:

và học viên ghi danh vào những môn học này.

Mã học viên, Tên học viên, địa chỉ, ngày sinh, số

Trường cũng có qui định là cùng một lúc, học

điện thoại, ngày nhập học. Thông tin về môn học

viên chỉ có thể ghi danh vào một môn học.

gồm mã môn học, tên môn học, thời lượng.

10/4/2012 45 10/4/2012 46 Nguyễn Thị Thúy Loan Nguyễn Thị Thúy Loan

Phân tích

Phân tích  Phần đặc tả vấn đề chứa đựng các qui

tắc quản lý và dữ liệu yêu cầu của vấn

Qui tắc quản lý gồm:  Cùng một lúc, một học viên chỉ có thể ghi

đề.

danh vào một môn học.

 Nhiều học viên có thể ghi danh vào một

 Dữ liệu của vấn đề là: chi tiết về học viên

môn học.

có mã học viên, tên học viên, địa chỉ,

 Nhà trường chỉ quan tâm đến những học

ngày sinh, số điện thoại và ngày nhập

viên của môn học hiện tại

học, chi tiết về môn học có mã môn học,

tên môn học và thời lượng.

12

10/4/2012 47 10/4/2012 48 Nguyễn Thị Thúy Loan Nguyễn Thị Thúy Loan

Ví dụ 3

Ví dụ 2  Phòng cảnh sát mong muốn quản lý lý lịch cá

Người phụ trách đào tạo Trường cao đẳng

nhân những người lái xe và bằng lái của họ.

cộng đồng núi xanh mong muốn thiết lập

Một người chỉ lấy được một bằng lái và một

một csdl về các môn học mà họ cung cấp

bằng lái chỉ thuộc về một người. Thông tin về

(như chứng chỉ

leo núi, công nghệ bay,…)

lái xe mà phòng cảnh sát quan tâm là: mã

và các học viên ghi danh vào các môn học

người lái xe, tên, địa chỉ, ngày sinh.

này. Nhà trường qui định là một học viên

 Thông tin về bằng lái cần lưu trữ là: mã bằng

được ghi danh học tối đa ba môn học trong

lái, loại bằng lái, ngày hết hạn.

cùng một lúc.

10/4/2012 49 10/4/2012 50 Nguyễn Thị Thúy Loan Nguyễn Thị Thúy Loan

Mô hình dữ liệu mạng

Dùng các khái niệm:

 Loại mẫu tin: Thay cho khái niệm loại thực

thể, chứa các mẫu tin mà mỗi mẫu tin là một

thực thể.

 Loại liên hệ: Là sự quan hệ ngữ nghĩa giữa

1 loại mẫu tin chủ và một loại mẫu tin thành

viên.

Ví dụ 3 Họ chỉ quan tâm đến dữ liệu của môn học hiện tại. Một khi học viên kết thúc môn học, họ sẽ không còn thuộc diện quản lý của nhà trường và phải được xóa khỏi csdl trừ khi học viên này ghi danh học tiếp môn mới. Thông tin về một học viên gồm: mã học viên, tên học viên, địa chỉ, ngày sinh, số điện thoại, ngày nhập học. Thông tin về môn học gồm: mã môn học, tên môn học, thời lượng.

13

10/4/2012 51 10/4/2012 52 Nguyễn Thị Thúy Loan Nguyễn Thị Thúy Loan

Mô hình dữ liệu mạng

Mô hình dữ liệu mạng

SINHVIEN

1:n

Ngoài ra còn có một số loại liên hệ khác:  Kiểu 1:1; 1 mẫu tin chủ liên hệ với 1 mẫu tin

thành viên

1:n

KHOA

LOP

 Kiểu n:1; Mỗi thể hiện là một tập gồm nhiều

mẫu tin chủ và 1 mẫu tin thành viên.

 Kí hiệu 1:n; diễn tả ý nghĩa 1 mẫu tin lớp có

thể gồm nhiều sinh viên.

 Tương tư,̣ 1 mẫu tin khoa có thể có nhiều

lớp

10/4/2012 53 10/4/2012 54 Nguyễn Thị Thúy Loan Nguyễn Thị Thúy Loan

Chuyển từ ER sang MHM

Mô hình dữ liệu mạng

 QT1: Mỗi thực thể hình thành 1 kiểu mẫu tin.

 QT2: Mối kết hợp thuộc loại (?,1) –(?,n) hay

LOP

SINHVIEN

MONHOC

(?,1) – (?,1) thì hình thành 1 loại liên hệ chiều

1:n

1:n

1:n

mũi tên đi từ (?,n)  (?,1).

 QT3: Mối kết hợp thuộc loại (?,n) – (?,n) thì

KQHT

hình thành 1 kiểu mẫu tin mới, kiểu mẫu tin này

chứa các thuộc tính khóa của 2 mẫu tin liên

quan.

14

10/4/2012 55 10/4/2012 56 Nguyễn Thị Thúy Loan Nguyễn Thị Thúy Loan

Mô hình dữ liệu phân cấp

Mô hình dữ liệu phân cấp

 Giống như mô hình mạng, với các khái niệm

 Những kiểu mẫu tin không có cha là gốc của

kiểu mẫu tin và loại liên hệ. Nhưng 1 kiểu

cây. Các kiểu mẫu tin cuối cùng không con

mẫu tin thành viên chỉ có thể phụ thuộc duy

tạo thành các lá của cây.

nhất 1 kiểu mẫu tin cha. Nghĩa là chỉ có kiểu

MONHOC

LOP

SINHVIEN

liên hệ 1:1, 1:n. Do đó mô hình được thể

hiện như 1 rừng cây.

KQHT

KQHT

10/4/2012 57 10/4/2012 58 Nguyễn Thị Thúy Loan Nguyễn Thị Thúy Loan

Mô hình dữ liệu quan hệ

Chuyển từ ER sang MHQH

QT1: Chuyển mỗi loại thực thể (trừ loại thực thể yếu) thành 1 quan hệ có cùng tên và cùng thuộc tính.

 Mô hình Cơ sở dữ liệu Quan hệ do E.F Codd đề xuất năm 1971. Mô hình này bao gồm: o Các khái niệm liên quan đến cấu trúc dữ liệu dưới dạng dòng và cột như quan hệ, bộ, thuộc tính, khóa chính, khoá ngoại, ... o Phép toán tập hợp và phép toán quan hệ. o Ràng buộc toàn vẹn quan hệ.

 Các HQTCSDLQH được xây dựng dựa theo

QT2: Mối quan hệ n – n tạo 1 quan hệ mới có tên là tên mối liên hệ và khóa là khóa của các thực thể tham gia. Mối kết hợp 1 – n thì thêm thuộc tính khóa của bên n vào trong bên 1.

lý thuyết mô hình quan hệ.

15

10/4/2012 59 10/4/2012 60 Nguyễn Thị Thúy Loan Nguyễn Thị Thúy Loan

Chuyển từ ER sang MHQH

Mô hình thực thể kết hợp

(1,n)

(1,1)

Mối kết hợp 1 – 1 thì thêm thuộc tính khóa

Thuộc

LOP MSLOP TENLOP

của quan hệ này vào quan hệ kia hoặc

thêm vào cả hai bên.

SINHVIEN MSSV HOTEN NGAYSINH PHAI

QT3: Loại thực thể yếu chuyển thành quan

(0,n)

hệ thêm thuộc tính khóa của quan hệ liên

(0,n)

hệ.

KQHT Học kì ĐL1 ĐL2

MONHOC MSMH TENMH SOGIOLT SOGIOTH

10/4/2012 61 10/4/2012 62 Nguyễn Thị Thúy Loan Nguyễn Thị Thúy Loan

Chuyển từ ER sang MHQH

Chuyển từ ER sang MHQH

Lop(MSLOP, TENLOP)

SINHVIEN(MSSV, MSLOP, hoten, ngaysinh,

phai)

MONHOC(MSMH, TenMH, SoGioLT,

SoGioTH)

KQHT(MSSV,MSMH,hocky,diemL1, diemL2)

16

10/4/2012 63 10/4/2012 64 Nguyễn Thị Thúy Loan Nguyễn Thị Thúy Loan

Chuyển từ ER sang MHQH

Mô hình DL hướng đối tượng

 Mô hình này dựa trên cách tiếp cận hướng

đối tượng, với các khái niệm như: Lớp

(class), sự kế thừa (Inheritence), tính đóng

gói (Encapsulation)… Nhưng hiện nay chưa

được sử dụng rộng rãi một phần chưa có

nhiều DBMS cài đặt theo kiểu này.

Danh_muc_hang_hoa(ma_so_hang, ten_hang,don_vi_tinh) Kho(ma_kho,ten_kho, dia_chi_kho) Khach(ma_khach,ten_khach,dia_chi_khach) Phieu_NX(so_phieu,ngay,ma_khach,ma_kho) Ton_kho(ma_kho,ma_so_hang,so_luong_ton) Chitiet_PNX(so_phieu,ma_so_hang, so_luong, don_gia)

10/4/2012 65 10/4/2012 66 Nguyễn Thị Thúy Loan Nguyễn Thị Thúy Loan

Mô hình DL hướng đối tượng

Bài tập

 Thiết lập mô hình quan niệm dùng quản lý

việc cho mượn sách tại 1 thư viện (Xem tại

chỗ hoặc mang về nhà) với các quy tắc quản

SVien hoc Ten Lop Nganh HPhan Ten SLuong 1..* 1..* 0..* 0..* LapTKB() InBangDiem() 1 1

lý như sau:

 Sách gồm mã sách, tên sách, nguyên tác

(tiếng Việt hay nước ngoài), tác giả. Sách

được phân chia theo thể loại gồm MaTL,

TenTL.

mo Diem DiemTH DiemLT DiemPrj 0..* 0..* SuaDiem() MHoc +MHoc truoc Ten Khoa SoTinChi 0..* 0..* CapNhatSTC() Dieu kien 0..* 0..* +MHoc sau

17

10/4/2012 67 10/4/2012 68 Nguyễn Thị Thúy Loan Nguyễn Thị Thúy Loan

Bài tập

Mô hình ER

 Độc giả muốn mượn sách phải lập thẻ độc

(1,n)

(1,1)

Thuộc

THELOAI MSTL TENTL

giả. Thẻ ghi nhận các thông tin gồm: MaĐG,

TenĐG, địa chỉ ngày cấp, thông tin các sách

SACH MASACH TENSACH NGUYENTAC TACGIA

đã mượn, ngày mượn, ngày trả. Hàng năm,

HGNAM NAM

(0,n)

độc giả phải đóng lệ phí để gia hạn thẻ mới

(1,n)

được mượn sách, trên sổ có ghi thêm thông

(1,n)

MUON NGMUON NGTRA

(1,n)

tin: Ngày nộp, số tiền.

LEPHI NGNOP SOTIEN

THEĐG MSĐG TENĐG DIACHI NGAY

10/4/2012 69 10/4/2012 70 Nguyễn Thị Thúy Loan Nguyễn Thị Thúy Loan

Mô hình dữ liệu mạng

Mô hình dữ liệu phân cấp

THEĐG

THEĐG

SACH

HGNAM

SACH

HGNAM

THELOAI

THELOAI

MUON

MUON

MUON

LEPHI

LEPHI

LEPHI

18

10/4/2012 71 10/4/2012 72 Nguyễn Thị Thúy Loan Nguyễn Thị Thúy Loan

Mô hình quan hệ

Chương II:

 SACH(MAS,TENS,NGTAC, TACGIA, MATL)

 THELOAI(MATL, TENTL)

MÔ HÌNH THỰC THỂ KẾT HỢP (ER)

 MUON(MADG, MAS, NGMUON, NGTRA)

 THEDG(MADG,TENDG,DIACHI,NGAY)

 LEPHI(MSDG,NAM,NGNOP,SOTIEN)

ThS. Nguyễn Thị Thúy Loan

Nguồn: Bài giảng Khoa CNTT ĐHKHTN

10/4/2012 73 Nguyễn Thị Thúy Loan

Nội dung chi tiết

Giới thiệu

 Mô hình ER được đề xuất bởi P.Chen

 Quá trình thiết kế CSDL

(1976). Đây là một mô hình mức khái niệm

 Mô hình ER

dựa vào việc nhận thức thế giới thực

 Thiết kế

thông qua tập các đối tượng được gọi là

 Ví dụ

các thực thể và các mối quan hệ giữa các

đối tượng này.

19

10/4/2012 75 10/4/2012 76 Nguyễn Thị Thúy Loan Nguyễn Thị Thúy Loan

Quá trình thiết kế CSDL

Quá trình thiết kế CSDL

Thế giới thực

Phân tích yêu cầu

Các yêu cầu về chức năng

Các yêu cầu về dữ liệu

Phân tích chức năng

Thông tin

Mô hình ER

Phân tích quan niệm

Cài đặt trên HQT CSDL

Mô hình quan hệ

Các đặc tả chức năng

Lược đồ quan niệm

Độc lập HQT

Thiết kế mức logic

Lược đồ logic

Phụ thuộc HQT cụ thể

Thiết kế chương trình ứng dụng

Thiết kế mức vật lý

Chương trình ứng dụng

Lược đồ trong

10/4/2012 77 Nguyễn Thị Thúy Loan

Nội dung chi tiết

Mô hình ER

 Được dùng để thiết kế CSDL ở mức quan

niệm.

 Quá trình thiết kế CSDL  Mô hình thực thể - kết hợp

 Biểu diễn trừu tượng cấu trúc của CSDL.

 Lược đồ thực thể - kết hợp

(Entity-Relationship Diagram)

o Tập thực thể (Entity Sets)

o Thực thể o Thuộc tính o Mối kết hợp o Lược đồ thực thể - kết hợp o Thực thể yếu

o Thuộc tính (Attributes)

 Thiết kế  Ví dụ

o Mối quan hệ (Relationship)

20

10/4/2012 79 10/4/2012 80 Nguyễn Thị Thúy Loan Nguyễn Thị Thúy Loan

Tập thực thể

Thuộc tính  Là những đặc tính riêng biệt của tập thực

 Một thực thể là một đối tượng của thế giới

thể.

Ví dụ tập thực thể NHANVIEN có các thuộc

thực. Ví dụ: Sinh viên: Nguyễn Văn A

tính: MaSV, TenSV, NSinh, ĐChi,…

 Tập hợp các thực thể giống nhau tạo thành

 Là những giá trị nguyên tố: Kiểu chuỗi,

kiểu số nguyên, kiểu số thực.

1 tập thực thể. Ví dụ: SinhVien

 Có hai loại thuộc tính:

Một thể hiện của thực thể SinhVien bao gồm: (SV01,Lê Văn A,10/12/93,Nam,Lê Hữu Thọ)

o Thuộc tính đơn: Mã sinh viên o Thuộc tính hợp: Tên sinh viên

10/4/2012 81 10/4/2012 82 Nguyễn Thị Thúy Loan Nguyễn Thị Thúy Loan

Thuộc tính

Thuộc tính dẫn xuất

 Giá trị của thuộc tính:

 Là thuộc tính mà giá trị của nó được suy

o Đơn trị: với 1 thực thể cụ thể, giá trị của

ra từ các thuộc tính khác.

thuộc tính là giá trị đơn.

 Ví dụ: Thành tiền

o Đa trị: với 1 thực thể cụ thể, giá trị của

thuộc tính là một tập hợp các giá trị.

Ví dụ: Màu sắc

o Null: Chưa biết hoặc không áp dụng

21

10/4/2012 83 10/4/2012 84 Nguyễn Thị Thúy Loan Nguyễn Thị Thúy Loan

Mối quan hệ

Bậc của mối quan hệ

 Là số lượng loại thực thể tham gia vào

 Là sự liên kết giữa 2 hay nhiều tập thực

mối kết hợp. Loại mối kết hợp bậc 2 gọi là

thể mang một ý nghĩa nào đó.

mối kết hợp nhị phân. Hầu hết các loại

 Ví dụ giữa tập thực thể NHANVIEN và

mối kết hợp trong cơ sở dữ liệu là nhị

PHONGBAN có các liên kết

phân.

o Một nhân viên thuộc một phòng ban nào đó

o Một phòng ban có một nhân viên làm

trưởng phòng.

10/4/2012 85 10/4/2012 86 Nguyễn Thị Thúy Loan Nguyễn Thị Thúy Loan

Lược đồ ER

Lược đồ ER

 Là đồ thị biểu diễn các tập thực thể, thuộc

o Cạnh là đường nối giữa

tính và mối quan hệ. Bao gồm đỉnh và cạnh

 Tập thực thể và thuộc tính

 Mối quan hệ và tập thực thể

o Đỉnh

Tên tập thực thể

Tập thực thể

Tên thuộc tính

Thuộc tính

Tên quan hệ

Mối quan hệ

22

10/4/2012 87 10/4/2012 88 Nguyễn Thị Thúy Loan Nguyễn Thị Thúy Loan

Ví dụ lược đồ ER

Thể hiện của lược đồ ER

 Một CSDL được mô tả bởi lược đồ ER sẽ

NGSINH

LUONG

DCHI

TENPHG

HONV

chứa đựng những dữ liệu cụ thể gọi là thể

Lam_viec

NHANVIEN

PHONGBAN

TENNV

hiện CSDL.

PHAI

La_truong_phong

o Mỗi tập thực thể sẽ có tập hợp hữu hạn các

thực thể.

Phu_trach

o Ví dụ: Giả sử tập thực thể SVIEN có các

DDIEM_DA

Phan_cong

DEAN

thực thể như SV1, SV2, …SVn

TENDA

10/4/2012 89 10/4/2012 90 Nguyễn Thị Thúy Loan Nguyễn Thị Thúy Loan

Ví dụ về CSDL

Thể hiện của lược đồ ER

SVIEN

LOP

MASV

TEN

MALOP

MALOP

TENLOP

SISO

o Mỗi thực thể sẽ có 1 giá trị cụ thể tại mỗi

TCTH01

Sơn

TCTHA

TCTHA

TCTH32A

80

thuộc tính.

TCTH02

TCTHB

Bảo

TCTHB

TCTH32B

65

82

TCTHC

TCTH32C

TCTH03

Trang

TCTHA

o Ví dụ:

MONHOC

KQUA

 SV1 có TENSV=“Son”,

MASV

MAMH

DIEM

MAMH

TENMH

TINCHI

KHOA

NGSINH=“08/12/1955”, PHAI=“‘Nam”

TCTH01

THVP

8

THVP

4

CNTT

Nhập môn TH

TCTH01

CSDL

6

 SV2 có TENSV= “Bao”,

TCTH01

CTDL

7

CSDL

4

CNTT

NGSINH=“07/19/1966”, PHAI=“Nam”

Cấu trúc dữ liệu

TCTH02

THVP

9

Toán rời rạc

CTDL

3

TOAN

TCTH02

CSDL

8

TCTH03

THVP

10

23

10/4/2012 91 10/4/2012 92 Nguyễn Thị Thúy Loan Nguyễn Thị Thúy Loan

Thể hiện của lược đồ ER

Mối quan hệ – thể hiện

 Thể hiện CSDL còn chứa các mối quan hệ

 Chú ý

cụ thể.

o Lược đồ ER không được lưu trữ trong

o Cho mối quan hệ R kết nối n tập thực thể

CSDL, mà chỉ mô tả khái niệm trừu tượng.

o Lược đồ ER chỉ giúp ta thiết kế CSDL trước

E1, E2, …, En

o Thể hiện của R là tập hữu hạn các danh

khi chuyển qua mô hình quan hệ và chuyển

dữ liệu xuống mức vật lý.

sách (e1, e2, …, en)

o Trong đó ei là các giá trị được chọn từ các

tập thực thể Ei

10/4/2012 93 10/4/2012 94 Nguyễn Thị Thúy Loan Nguyễn Thị Thúy Loan

Mối quan hệ

Mối quan hệ – thể hiện

 Xét mối quan hệ

 Xét mối quan hệ nhị phân R (binary

relationship) giữa 2 tập thực thể E và F,

Lam_viec

NHANVIEN

PHONGBAN

tính multiplicity bao gồm

o Một-Nhiều

NHANVIEN

PHONGBAN

(Tung, Nghien cuu)

Tung

Nghien cuu

 Một E có quan hệ với nhiều F

(Hang, Dieu hanh)

Hang

Dieu hanh

(Vinh, Quan ly)

Vinh

Quan ly

 Một F có quan hệ với một E

n

1

Quan_hệ

E

F

24

10/4/2012 95 10/4/2012 96 Nguyễn Thị Thúy Loan Nguyễn Thị Thúy Loan

Mối quan hệ

Mối quan hệ

o Một-Một

 (min, max) chỉ định mỗi thực thể e  E

 Một E có quan hệ với một F

tham gia ít nhất và nhiều nhất vào thể hiện

 Một F có quan hệ với một E

(min, max)

(min, max)

Quan_hệ

E

F

của R

1

1

Quan_hệ

E

F

 (0,1) – không hoặc 1

o Nhiều-Nhiều

 (1,1) – duy nhất 1

 Một E có quan hệ với nhiều F

 (0,n) – không hoặc nhiều

 Một F có quan hệ với nhiều E

 (1,n) – một hoặc nhiều

n

n

Quan_hệ

E

F

10/4/2012 97 10/4/2012 98 Nguyễn Thị Thúy Loan Nguyễn Thị Thúy Loan

Mối quan hệ

Mối quan hệ

 Ví dụ

 Ví dụ

o Một phòng ban có nhiều nhân viên

o Một nhân viên có thể được phân công vào

(1,n)

nhiều đề án hoặc không được phân công

Lam_viec

NV

PB

vào đề án nào

(0,n)

Phan_cong

NV

DA

o Một nhân viên chỉ thuộc 1 phòng ban

(1,1)

o Một nhân viên có thể là trưởng phòng của 1

Lam_viec

NV

PB

phòng ban nào đó

(0,1)

La_truong_phong

NV

PB

25

10/4/2012 99 10/4/2012 100 Nguyễn Thị Thúy Loan Nguyễn Thị Thúy Loan

Mối quan hệ - Vai trò

Thuộc tính trên mối quan hệ

 Một loại thực thể có thể tham gia nhiều lần

 Thuộc tính trên mối quan hệ mô tả tính

vào một quan hệ với nhiều vai trò khác

chất cho mối quan hệ đó.

nhau.

 Thuộc tính này không thể gắn liền với

La nguoi quan ly

những thực thể tham gia vào mối quan hệ.

Quan_ly

NHANVIEN

(0,n)

(0,n)

(1,n)

Phan_cong

NHANVIEN

DEAN

Duoc quan ly boi

(0,1)

THGIAN

10/4/2012 101 10/4/2012 102 Nguyễn Thị Thúy Loan Nguyễn Thị Thúy Loan

Thuộc tính khóa

Thuộc tính khóa

 Các thực thể trong tập thực thể cần phải

 Chú ý

o Mỗi tập thực thể phải có 1 khóa

được phân biệt.

o Một khóa có thể có 1 hay nhiều thuộc tính

 Khóa K của tập thực thể E là một hay nhiều

o Có thể có nhiều khóa trong 1 tập thực thể,

thuộc tính sao cho:

ta sẽ chọn ra 1 khóa làm khóa chính cho tập

thực thể đó.

o Lấy ra 2 thực thể bất kỳ e1, và e2 trong E, thì e1 và e2 không thể có các giá trị giống nhau tại các thuộc tính trong K.

26

10/4/2012 103 10/4/2012 104 Nguyễn Thị Thúy Loan Nguyễn Thị Thúy Loan

Ví dụ thuộc tính khóa

Tập thực thể yếu

MANV

NGSINH

LUONG

DCHI

MAPHG

TENPB

 Là loại thực thể mà không có tập thuộc tính

HONV

Lam_viec

NHANVIEN

PHONGBAN

TENNV

khóa.

PHAI

 Thực thể yếu (weak entity set) phải tham

La_truong_phong

gia vào mối quan hệ trong đó có một loại

Phu_trach

thực thể chính hay loại thực thể xác định.

DDIEM_DA

Phan_cong

DEAN

TENDA

MADA

10/4/2012 105 10/4/2012 106 Nguyễn Thị Thúy Loan Nguyễn Thị Thúy Loan

Tập thực thể yếu

Tập thực thể yếu

MAHD

 Ví dụ 1

 Ví dụ 2

NGAYHD

MANV

NGSINH

LUONG

DCHI

HOA_DON

TONGTIEN

HONV

(1,n)

(1,n)

HD_CT

QUANHE

NHANVIEN

Co_than_nhan

TENNV

(1,1)

SL_HH

NGSINH

(1,1)

PHAI

CHI_TIET

SOTIEN

PHAI

(1,1)

THANNHAN

TENTN

HH_CT

(1,n)

TENHH

HANG_HOA

DGIA

MAHH

27

10/4/2012 107 10/4/2012 108 Nguyễn Thị Thúy Loan Nguyễn Thị Thúy Loan

Nội dung chi tiết

Các bước thiết kế

B1: Phân tích yêu cầu bài toán, chọn ra các

 Quá trình thiết kế CSDL

thông tin cần quản lý hình thành từ điển dữ

 Mô hình thực thể - kết hợp

liệu.

 Thiết kế

B2: Tiến hành gom nhóm các thuộc tính theo

o Các bước thiết kế

các thực thể thật.

o Quy tắc thiết kế

B3: Xác định các mối kết hợp giữa các thực thể.

 Ví dụ

B4: Xác định các thuộc tính của các mối kết hợp.

B5: Xác định bản số của mối kết hợp.

10/4/2012 109 10/4/2012 110 Nguyễn Thị Thúy Loan Nguyễn Thị Thúy Loan

Nội dung chi tiết

Qui tắc thiết kế

 Chính xác

 Quá trình thiết kế CSDL

 Tránh trùng lắp

 Mô hình thực thể - kết hợp

 Dễ hiểu

 Thiết kế

 Chọn đúng mối quan hệ

 Ví dụ

o Quản lý đề án công ty

 Chọn đúng kiểu thuộc tính

28

10/4/2012 111 10/4/2012 112 Nguyễn Thị Thúy Loan Nguyễn Thị Thúy Loan

Ví dụ ‘Quản lý đề án công ty’

Ví dụ ‘Quản lý đề án công ty’

 Cty có nhiều phòng ban, mỗi phòng ban có tên duy nhất, mã phòng duy nhất, một trưởng phòng và ngày nhận chức. Mỗi phòng ban có thể ở nhiều địa điểm khác nhau.

 Nhân viên có mã số, tên, địa chỉ, ngày sinh, phái và lương. Mỗi nhân viên làm việc ở 1 phòng ban, tham gia vào các đề án với số giờ làm việc khác nhau. Mỗi nhân viên đều có một người quản lý trực tiếp.

 Đề án có tên duy nhất, mã duy nhất, do 1 một phòng ban chủ trì và được triển khai ở 1 địa điểm.

 Một nhân viên có thể có nhiều thân nhân. Mỗi thân nhân có tên, phái, ngày sinh và mối quan hệ với nhân viên đó.

10/4/2012 113 10/4/2012 114 Nguyễn Thị Thúy Loan Nguyễn Thị Thúy Loan

Nội dung chi tiết

Chương III:

 Các khái niệm của mô hình quan hệ

 Các ràng buộc của mô hình

 Chuyển lược đồ E/R sang mô hình quan

MÔ HÌNH DỮ LIỆU QUAN HỆ

hệ

ThS. Nguyễn Thị Thúy Loan

Nguồn: Bài giảng Khoa CNTT ĐHKHTN

29

10/4/2012 116 Nguyễn Thị Thúy Loan

Quan hệ

Các KN của mô hình QH

 Quan hệ là các thông tin lưu trữ trong

CSDL được tổ chức thành bảng (table) 2

chiều.

 Mỗi bảng được gọi là một quan hệ.

 Quan hệ (Relation)  Thuộc tính (Attribute)  Bộ (Tuple)  Lược đồ (Schema)  Miền giá trị (Domain)  Định nghĩa hình thức  Các đặc trưng của quan hệ  Các kí hiệu mô hình

10/4/2012 117 10/4/2012 118 Nguyễn Thị Thúy Loan Nguyễn Thị Thúy Loan

Quan hệ

Quan hệ

 Quan hệ ~ Tập thưc thể

NHANVIEN

MaNV

Ho

TenNV

Ngaysinh

Gioitinh

o Tên o Tập hợp các cột

NV01

Le Van

An

10/04/1975

Nam

NV02

Tran Thi

Binh

12/01/1979

Nu

Tên quan hệ

NV03

Ha Van

Hung

23/02/1980

Nam

NV04

Đao Thi

Tham

20/12/1976

Nu

Dòng ứng với 1 nhân viên

 Cố định  Được đặt tên  Có kiểu dữ liệu o Tập hợp các dòng

Cột ứng với một thuộc tính

 Thay đổi theo thời gian  Một dòng ~ Một thực thể

30

10/4/2012 119 10/4/2012 120 Nguyễn Thị Thúy Loan Nguyễn Thị Thúy Loan

Thuộc tính

Thuộc tính

Các thuộc tính

 Tên các cột của quan hệ

 Mô tả ý nghĩa cho các giá trị tại cột đó

 Tất cả các dữ liệu trong cùng 1 một cột

NHANVIEN

MaNV

Ho

TenNV

Ngaysinh

Gioitinh

NV01

Le Van

An

10/04/1975

Nam

đều có cùng kiểu dữ liệu

NV02

Tran Thi

Binh

12/01/1979

Nu

NV03

Ha Van

Hung

23/02/1980

Nam

NV04

Đao Thi

Tham

20/12/1976

Nu

10/4/2012 121 10/4/2012 122 Nguyễn Thị Thúy Loan Nguyễn Thị Thúy Loan

Bộ

Bộ

 Là các dòng của quan hệ (trừ dòng tên

NHANVIEN

MaNV

Ho

TenNV

Ngaysinh

Gioitinh

của các thuộc tính).

NV01

Le Van

An

10/04/1975

Nam

 Chứa dữ liệu cụ thể của các thuộc tính

NV02

Tran Thi

Binh

12/01/1979

Nu

Bộ dữ liệu

trong quan hệ.

NV03

Ha Van

Hung

23/02/1980

Nam

NV04

Đao Thi

Tham

20/12/1976

Nu

31

10/4/2012 123 10/4/2012 124 Nguyễn Thị Thúy Loan Nguyễn Thị Thúy Loan

Lược đồ

Lược đồ

 Lược đồ quan hệ được tạo thành từ tên

 Lược đồ CSDL bao gồm nhiều lược đồ

của quan hệ và danh sách các thuộc tính.

quan hệ

NHANVIEN(MANV, TENNV, HONV, NGSINH, DCHI, PHAI, LUONG, PHG)

NHANVIEN(MANV, TENNV, HONV, NGSINH, DCHI, PHAI, LUONG, PHG)

PHONGBAN(MAPHG, TENPHG, TRPHG, NG_NHANCHUC)

DIADIEM_PHG(MAPHG, DIADIEM)

THANNHAN(MA_NVIEN, TENTN, PHAI, NGSINH, QUANHE)

DEAN(TENDA, MADA, DDIEM_DA, PHONG)

10/4/2012 125 10/4/2012 126 Nguyễn Thị Thúy Loan Nguyễn Thị Thúy Loan

Định nghĩa hình thức

Miền giá trị

 Là tập các giá trị nguyên tố gắn liền với

 Cho lược đồ quan hệ

một thuộc tính. o Kiểu dữ liệu cơ sở

 Chuỗi ký tự (string)  Số (integer)

o Các kiểu dữ liệu phức tạp: Chưa được

R(A1:D1, A2:D2, …, An:Dn) o R: là tên quan hệ o A1, A2, …, An là các thuộc tính o D1, D2, …, Dn là các miền giá trị tương ứng o Bậc của lược đồ quan hệ là số lượng thuộc

chấp nhận

tính trong lược đồ.

 Ví dụ: TENNV: string; LUONG: integer

 Ví dụ: SV(MaSV, TenSV, Phai)

32

10/4/2012 127 10/4/2012 128 Nguyễn Thị Thúy Loan Nguyễn Thị Thúy Loan

Định nghĩa hình thức (tt)

Định nghĩa hình thức (tt)

 Quan hệ (hay thể hiện quan hệ)

TENNV

HONV

NGSINH

DCHI

PHAI

LUONG

PHG

o Một thể hiện r của lược đồ quan hệ R(A1, A2,

Tung

Nguyen

12/08/1955

638 NVC Q5

Nam

40000

5

Hang

Bui

07/19/1968

332 NTH Q1

Nu

25000

4

…, An), ký hiệu r(R), là một tập các bộ

Nhu

Le

06/20/1951

291 HVH QPN

Nu

43000

4

Hung

Nguyen

09/15/1962

null

Nam

38000

5

t1 t2 t3 t4

vi

r = {t1, t2, …, tm} o Trong đó mỗi ti là 1 danh sách có thứ tự của

n giá trị ti=  vj  Dj hoặc vj = Null (giá trị rỗng) là giá trị

tương ứng với thuộc tính Aj hay DOM(Aj)

10/4/2012 129 10/4/2012 130 Nguyễn Thị Thúy Loan Nguyễn Thị Thúy Loan

Các đặc trưng của quan hệ

Tóm tắt các kí hiệu

 Lược đồ quan hệ R bậc n

 Thứ tự các bộ trong quan hệ là không

o R(A1, A2, …, An)

quan trọng.

 Thứ tự giữa các giá trị trong một bộ là

quan trọng.

 Không có bộ nào trùng nhau.

 Tập thuộc tính của R: R+  Tên quan hệ (thể hiện quan hệ): R, S, P, Q  Bộ: t, u, v  Miền giá trị của thuộc tính A

o DOM(A) hay MGT(A)

 Giá trị tại thuộc tính A của bộ thứ t

o t.A hay t[A]

33

10/4/2012 131 10/4/2012 132 Nguyễn Thị Thúy Loan Nguyễn Thị Thúy Loan

Nội dung chi tiết

Ràng buộc toàn vẹn

 RBTV (Integrity Constraint)

o Là những qui tắc, điều kiện, ràng buộc cần được thỏa mãn cho mọi thể thiện của CSDL quan hệ.

 RBTV được mô tả khi định nghĩa lược đồ

quan hệ.

 Các khái niệm của mô hình quan hệ  Ràng buộc của mô hình o Siêu khóa (Super key) o Khóa o Khóa chính (Primary key) o Tham chiếu o Khóa ngoại (Foreign key)

 RBTV được kiểm tra khi các quan hệ có

 Chuyển lược đồ E/R sang thiết kế quan hệ

thay đổi.

10/4/2012 133 10/4/2012 134 Nguyễn Thị Thúy Loan Nguyễn Thị Thúy Loan

Siêu khóa

Siêu khóa

 Các bộ trong quan hệ phải khác nhau

từng đôi một.

o Siêu khóa là tập các thuộc tính dùng để xác định tính duy nhất của mỗi bộ trong quan hệ.

 Siêu khóa (Super Key)

o Mọi lược đồ quan hệ có tối thiểu một siêu

o Gọi SK là một tập con khác rỗng các thuộc

khóa.

tính của R: SK là siêu khóa khi

o r,t1, t2  r, t1 ≠ t2  t1[SK] ≠ t2[SK]

34

10/4/2012 135 10/4/2012 136 Nguyễn Thị Thúy Loan Nguyễn Thị Thúy Loan

Khóa

Khóa

 Nhận xét

 Định nghĩa

o Khóa là siêu khóa nhỏ nhất

o Gọi K là một tập con khác rỗng các thuộc

o Lược đồ quan hệ có thể có nhiều khóa

tính của R

o Khóa được xây dựng dựa trên ý nghĩa của

o K là khóa nếu thỏa đồng thời 2 điều kiện

một số thuộc tính.

 K là một siêu khóa của R

 K’  K, K’ ≠ K, K’ không là siêu khóa của R

10/4/2012 137 10/4/2012 138 Nguyễn Thị Thúy Loan Nguyễn Thị Thúy Loan

Khóa chính

Khóa chính

 Xét quan hệ:

 Khi cài đặt quan hệ thành bảng (table):

NVIEN(MANV,TENNV,HONV,NSINH)

o Chọn khóa có ít thuộc tính hơn

 Có 2 khóa

o Khóa được chọn để cài đặt gọi là khóa

o MANV

chính:

o TENNV,HONV,NSINH

 Các thuộc tính khóa chính phải có giá trị

khác null.

 Các thuộc tính khóa chính thường được

gạch dưới.

35

10/4/2012 139 10/4/2012 140 Nguyễn Thị Thúy Loan Nguyễn Thị Thúy Loan

Tham chiếu

Tham chiếu

TENPHG

MAPHG

 Một bộ trong quan hệ R, tại thuộc tính A

Nghien cuu

5

S

Dieu hanh

4

nếu nhận một giá trị từ một thuộc tính B

Quan ly

1

của quan hệ S, ta gọi R tham chiếu S.

TENNV

HONV

NGSINH

DCHI

PHAI

LUONG

PHG

Tung

Nguyen

12/08/1955

638 NVC Q5

Nam

40000

5

 Bộ được tham chiếu phải tồn tại trước.

Hang

Bui

07/19/1968

332 NTH Q1

Nu

25000

4

R

Nhu

Le

06/20/1951

291 HVH QPN

Nu

43000

4

Hung

Nguyen

09/15/1962

Ba Ria VT

Nam

38000

5

10/4/2012 141 10/4/2012 142 Nguyễn Thị Thúy Loan Nguyễn Thị Thúy Loan

Khóa ngoại

Khóa ngoại

 Xét 2 lược đồ R và S

 Ví dụ

o Gọi FK là tập thuộc tính khác rỗng của R

o FK là khóa ngoại (Foreign Key) của R khi

NHANVIEN(MANV, TENNV, HONV, NGSINH, DCHI, PHAI, LUONG, PHG)

PHONGBAN(TENPHG, MAPHG)

 Các thuộc tính trong FK phải có cùng miền

Khóa ngoại

Khóa chính

giá trị với các thuộc tính khóa chính của S.

 Giá trị tại FK của một bộ t1R: hoặc bằng giá trị tại khóa chính của một bộ t2S; hoặc bằng giá trị rỗng.

36

10/4/2012 143 10/4/2012 144 Nguyễn Thị Thúy Loan Nguyễn Thị Thúy Loan

Khóa ngoại

Khóa ngoại

 Nhận xét

o Trong một lược đồ quan hệ, một thuộc tính vừa có thể tham gia vào khóa chính, vừa tham gia vào khóa ngoại

o Khóa ngoại có thể tham chiếu đến khóa

chính trên cùng 1 lược đồ quan hệ

o Có thể có nhiều khóa ngoại tham chiếu đến

cùng một khóa chính

o Ràng buộc tham chiếu = Ràng buộc khóa

ngoại

10/4/2012 145 10/4/2012 146 Nguyễn Thị Thúy Loan Nguyễn Thị Thúy Loan

Nội dung chi tiết

Các quy tắc chuyển đổi

 (1) Tập thực thể

 Các khái niệm của mô hình quan hệ

 Ràng buộc toàn vẹn

 Chuyển lược đồ E/R sang thiết kế quan

o Các tập thực thể (trừ tập thực thể yếu) chuyển thành các quan hệ có cùng tên và tập thuộc tính

hệ

37

10/4/2012 147 10/4/2012 148 Nguyễn Thị Thúy Loan Nguyễn Thị Thúy Loan

Các quy tắc chuyển đổi

Các quy tắc chuyển đổi

 (2) Mối quan hệ

MANV

NGSINH

LUONG

DCHI

TENPHG

MAPHG

o (2a) Nhiều-Nhiều

HONV

(1,1)

(1,n)

 Tạo một quan hệ mới có

Lam_viec

NHANVIEN

PHONGBAN

TENNV

 Tên quan hệ là tên của mối quan hệ

PHAI

(1,1)

(1,1)

La_truong_phong

 Thuộc tính là những thuộc tính khóa của các

tập thực thể liên quan

PHONGBAN(TENPHG, MAPHG)

NHANVIEN(MANV, TENNV, HONV, NGSINH, DCHI, PHAI, LUONG)

10/4/2012 149 10/4/2012 150 Nguyễn Thị Thúy Loan Nguyễn Thị Thúy Loan

Các quy tắc chuyển đổi

Các quy tắc chuyển đổi

 (2) Mối quan hệ

MANV

NGSINH

LUONG

DCHI

DDIEM_DA

o (2b) Một-Nhiều

HONV

MADA

THOIGIAN

NHANVIEN

DEAN

 Thêm vào quan-hệ-một thuộc tính khóa của

TENNV

TENDA

(1,n)

(1,n)

PHAI

quan-hệ-nhiều

Phan_cong

PHANCONG(MANV, MADA, THOIGIAN)

38

10/4/2012 151 10/4/2012 152 Nguyễn Thị Thúy Loan Nguyễn Thị Thúy Loan

Các quy tắc chuyển đổi

Các quy tắc chuyển đổi

 (2) Mối quan hệ

MANV

o (2c) Một-Một

NGSINH

LUONG

DCHI

TENPHG

MAPHG

HONV

 Hoặc thêm vào quan hệ này thuộc tính khóa

(1,1)

(1,n)

Lam_viec

NHANVIEN

PHONGBAN

TENNV

của quan hệ kia

PHAI

 Hoặc thêm thuộc tính khóa vào cả 2 quan

hệ

NHANVIEN(MANV, TENNV, HONV, NGSINH, DCHI, PHAI, LUONG, MAPHG)

10/4/2012 153 10/4/2012 154 Nguyễn Thị Thúy Loan Nguyễn Thị Thúy Loan

Các quy tắc chuyển đổi

Các quy tắc chuyển đổi

 (3) Thực thể yếu

MANV

NGSINH

LUONG

DCHI

TENPHG

MAPHG

o Chuyển thành một quan hệ

HONV

NG_NHANCHUC

NHANVIEN

PHONGBAN

TENNV

 Có cùng tên với thực thể yếu

(1,1)

(1,1)

PHAI

La_truong_phong

 Thêm vào thuộc tính khóa của quan hệ liên

quan

PHONGBAN(MAPHG, TENPHG, MANV, NG_NHANCHUC)

39

10/4/2012 155 10/4/2012 156 Nguyễn Thị Thúy Loan Nguyễn Thị Thúy Loan

Các quy tắc chuyển đổi

Các quy tắc chuyển đổi

 Đối với thuộc tính đa trị

MANV

NGSINH

LUONG

DCHI

MAPHG

TENPHG

TRPHG

HONV

(1,n)

QUANHE

NHANVIEN

Co_than_nhan

TENNV

DIADIEM

PHONGBAN

NGSINH

(1,1)

PHAI

PHAI

THANNHAN

 PHONGBAN(MAPHG,TENPHG,TRPHG)

TENTN

 DD_PHG(MAPHG,DIADIEM)

THANNHAN(MANV, TENTN, PHAI, NGSINH, QUANHE)

10/4/2012 157 10/4/2012 158 Nguyễn Thị Thúy Loan Nguyễn Thị Thúy Loan

HONV

TENLOT

TENNV

Chuyển ER sang MHQH

TEN

DCHI

PHAI

MAPB

nhanvien( 1,1)

phongban (4,4)

TENPB

DIADIEM

MANV

LUONG

LAMVIEC

MaHP

Diem

Hocky

NHANVIEN

PHONGBAN

NGSINH

SO LUONG NV

NG_NHAN CHUC

(0,1)

Nam

Gvien

(1,1)

(0,n)

Pt_phutrach (0,N)

HPhan

hoc

mo

Nhanvien

nguoiql (0,1)

Pb_duocql (1,1)

QUANLY

mhoctruoc

GIAMSAT

giamsat (0,N)

THOIGIAN

(0,n)

(1,n)

MaMH TenMH

MaSV Ten

TenHP

SoTC

Svien

MHoc

PHANCONG

Lop

Khoa

nhanvien (0,N)

PHUTRACH

Tinchi

Nganh

(0,n)

doan (1,N)

da_duocpt (1,1)

dieukien

DEAN

(0,n)

TENDA

TENDA

mhocsau

MADA

COTHAN NHAN

nguoithan  (1,1)

THANNHAN

TENTN

PHAI

QUANHE

NGSINH

40

10/4/2012 159 Nguyễn Thị Thúy Loan

Nội dung chi tiết

Chương IV:

 Giới thiệu

 Định nghĩa dữ liệu

 Truy vấn dữ liệu

SQL (Structured Query Language)

 Cập nhật dữ liệu

 Khung nhìn (view)

ThS. Nguyễn Thị Thúy Loan

 Chỉ mục (index)

Nguồn: Bài giảng Khoa CNTT ĐHKHTN

10/4/2012 162 Nguyễn Thị Thúy Loan

Giới thiệu

Giới thiệu

o Được phát triển bởi IBM (1970s)

 SQL

o Được gọi là SEQUEL

o Ngôn ngữ cấp cao

o Được ANSI công nhận và phát triển thành

o Người sử dụng chỉ cần đưa ra nội dung

chuẩn

cần truy vấn.

 SQL-86

 SQL-92

 SQL-99

41

10/4/2012 163 10/4/2012 164 Nguyễn Thị Thúy Loan Nguyễn Thị Thúy Loan

Định nghĩa dữ liệu

Định nghĩa dữ liệu

 SQL sử dụng các khái niệm

 Lệnh chính để định nghĩa trong SQL là

o Bảng ~ quan hệ

CREATE

o Dòng ~ bộ

o Lược đồ CSDL

o Cột ~ thuộc tính

o Bảng

o Khung nhìn

o Ràng buộc

10/4/2012 165 10/4/2012 166 Nguyễn Thị Thúy Loan Nguyễn Thị Thúy Loan

Kiểu dữ liệu

Kiểu dữ liệu

 Số (numeric)

Ngoài ra

Số nguyên

o MUMERIC(i,j)

o INTEGER or INT

o DECIMAL(i,j)

o SMALLINT

 Chuỗi ký tự (character string)

Số thực

o CHAR(n), CHARACTER(n)

o FLOAT

o VARCHAR(n), CHAR VARYING(n)

o REAL

o DOUBLE PRECISION

42

10/4/2012 167 10/4/2012 168 Nguyễn Thị Thúy Loan Nguyễn Thị Thúy Loan

Kiểu dữ liệu

Kiểu dữ liệu

 Chuỗi bit (bit string)

o BIT(n)

o BIT VARYING(n)

 Ngày giờ (datetime)

o DATE gồm ngày, tháng và năm

o TIME gồm giờ, phút và giây

o TIMESTAMP gồm ngày và giờ

 BOOLEAN: TRUE, FALSE.

10/4/2012 169 10/4/2012 170 Nguyễn Thị Thúy Loan Nguyễn Thị Thúy Loan

Kiểu dữ liệu

Truy vấn dữ liệu

 Để định nghĩa một bảng

o Tên bảng

o Các thuộc tính

 Tên thuộc tính

 Kiểu dữ liệu

 Các RBTV trên thuộc tính

43

10/4/2012 171 10/4/2012 172 Nguyễn Thị Thúy Loan Nguyễn Thị Thúy Loan

Truy vấn dữ liệu

Quản lý lao động

 Cú pháp

Để quản lý việc phân công các nhân viên

 CREATE TABLE (

tham gia vào đề án xây dựng các công

[],

trình. Công ty xây dựng ABC tổ chức quản

[],

lý như sau:

[]

)

10/4/2012 173 10/4/2012 174 Nguyễn Thị Thúy Loan Nguyễn Thị Thúy Loan

Quản lý lao động

Quản lý lao động

Mỗi nhân viên của công ty ABC có một mã số

Mỗi nhân viên có thân nhân, ứng với mỗi

nhân viên duy nhất (MANV), mỗi mã nhân

ma_nvien có tên thân nhân, phái, ngày

viên xác định các thông tin như: Họ tên

sinh và quan hệ.

(HOTEN), ngày sinh (NGAYSINH), Phái

(PHAI), địa chỉ (DIACHI), phòng ban, mã

người

quản

lý(MA_NQL),

Lương

(LUONG)…

44

10/4/2012 175 10/4/2012 176 Nguyễn Thị Thúy Loan Nguyễn Thị Thúy Loan

Quản lý lao động

Quản lý lao động

Công ty phân công các nhân viên tham gia

Công ty có nhiều phòng ban (Phòng kế toán,

vào các đề án, mỗi đề án có thể được

phòng kinh doanh, phòng kỹ thuật, phòng

phân cho nhiều nhân viên và mỗi nhân

tổ chức, phòng chuyên môn, phòng phục

viên cùng lúc tham gia vào nhiều đề án.

vụ,…). Mỗi phòng ban có một mã số

Với mỗi đề án có mada, tenda, diadiem và

phòng ban (MAPB) duy nhất, một phòng

do một phòng ban phụ trách.

ban ứng với một tên phòng ban (TENPB),

trphg, ng_nhanchuc.

10/4/2012 177 10/4/2012 178 Nguyễn Thị Thúy Loan Nguyễn Thị Thúy Loan

Quản lý lao động

Ví dụ – Tạo bảng

CREATE TABLE NHANVIEN

NHANVIEN (manv, honv, tenlot, tennv, ngsinh, dchi,

MANV

CHAR(9),

(

HONV

VARCHAR(10),

phai, luong, ma_nql, phg)

TENLOT

VARCHAR(20),

PHONGBAN (maphg, tenphg, trphg, ng_nhanchuc)

TENNV

VARCHAR(10),

NGSINH

DATETIME,

DIADIEM_PHG (maphg, diadiem)

DCHI

VARCHAR(50),

THANNHAN (ma_nvien, tentn, phai, ngsinh,

PHAI

CHAR(3),

quanhe)

LUONG

INT,

MA_NQL

CHAR(9),

DEAN (tenda, mada, ddiem_da, phong)

PHG

INT

PHANCONG (ma_nvien, soda, thoigian)

);

45

10/4/2012 179 10/4/2012 180 Nguyễn Thị Thúy Loan Nguyễn Thị Thúy Loan

Ràng buộc trên bảng

Tạo ràng buộc

 Đặt tên cho RBTV

o NOT NULL

CONSTRAINT

o NULL

o UNIQUE

o DEFAULT

o CHECK

o PRIMARY KEY

o FOREIGN KEY / REFERENCES

10/4/2012 181 10/4/2012 182 Nguyễn Thị Thúy Loan Nguyễn Thị Thúy Loan

Ví dụ – Tạo bảng

Ví dụ – Tạo bảng

CREATE TABLE NHANVIEN

CREATE TABLE PHONGBAN

(

HONV

VARCHAR(10)

NOT NULL,

(

TENPB VARCHAR(20) UNIQUE,

TENLOT

VARCHAR(20)

NOT NULL,

MAPHG INT NOT NULL,

VARCHAR(10)

NOT NULL,

TENNV

TRPHG CHAR(9),

CHAR(9)

PRIMARY KEY,

MANV

NG_NHANCHUC DATETIME DEFAULT (GETDATE())

NGSINH

DATETIME,

);

DCHI

VARCHAR(50),

CREATE TABLE PHANCONG

PHAI

CHAR(3)

CHECK (PHAI IN (‘Nam’, ‘Nu’)),

MA_NVIEN CHAR(9) FOREIGN KEY (MA_NVIEN)

(

LUONG

INT

DEFAULT (10000),

REFERENCES NHANVIEN(MANV),

MA_NQL

CHAR(9),

SODA INT REFERENCES DEAN(MADA),

PHG

INT

THOIGIAN DECIMAL(3,1)

);

);

46

10/4/2012 183 10/4/2012 184 Nguyễn Thị Thúy Loan Nguyễn Thị Thúy Loan

Đặt tên cho RBTV

Đặt tên cho RBTV

CREATE TABLE NHANVIEN

(

HONV VARCHAR(10) CONSTRAINT NV_HONV_NN NOT NULL,

CREATE TABLE PHANCONG

TENLOT VARCHAR(20) NOT NULL,

(

MA_NVIEN CHAR(9),

TENNV VARCHAR(10) NOT NULL,

SODA INT,

MANV CHAR(9) CONSTRAINT NV_MANV_PK PRIMARY KEY,

THOIGIAN DECIMAL(3,1),

NGSINH DATETIME,

CONSTRAINT PC_MANVIEN_SODA_PK PRIMARY KEY (MA_NVIEN, SODA),

DCHI VARCHAR(50),

CONSTRAINT PC_MANVIEN_FK FOREIGN KEY (MA_NVIEN)

PHAI CHAR(3) CONSTRAINT NV_PHAI_CHK

REFERENCES NHANVIEN(MANV),

CHECK (PHAI IN (‘Nam’, ‘Nu’)),

CONSTRAINT PC_SODA_FK FOREIGN KEY (SODA)

LUONG INT CONSTRAINT NV_LUONG_DF DEFAULT (10000),

REFERENCES DEAN(MADA)

MA_NQL CHAR(9),

)

PHG INT

);

185 10/4/2012 186 10/4/2012 Nguyễn Thị Thúy Loan Nguyễn Thị Thúy Loan

Lệnh sửa bảng

Lệnh sửa bảng

 Mở rộng cột

 Được dùng để

ALTER TABLE ALTER COLUMN

o Thay đổi cấu trúc bảng

o Thay đổi RBTV

 Thêm RBTV

 Thêm cột

ALTER TABLE ADD

ALTER TABLE ADD

CONSTRAINT ,

[]

CONSTRAINT ,

 Xóa cột

 Xóa RBTV

ALTER TABLE DROP COLUMN

ALTER TABLE DROP

47

10/4/2012 187 10/4/2012 188 Nguyễn Thị Thúy Loan Nguyễn Thị Thúy Loan

Thay đổi cấu trúc bảng

Ví dụ - Thay đổi RBTV

CREATE TABLE PHONGBAN (

TENPB VARCHAR(20),

 ALTER TABLE NHANVIEN ADD

MAPHG INT NOT NULL,

NGHENGHIEP CHAR(20)

TRPHG CHAR(9),

NG_NHANCHUC DATETIME

 ALTER TABLE NHANVIEN DROP

)

COLUMN NGHENGHIEP

ALTER TABLE PHONGBAN ADD

CONSTRAINT PB_MAPHG_PK PRIMARY KEY (MAPHG),

 ALTER TABLE NHANVIEN ALTER

CONSTRAINT PB_TRPHG FOREIGN KEY (TRPHG)

REFERENCES NHANVIEN(MANV),

COLUMN NGHENGHIEP CHAR(50)

CONSTRAINT PB_NGNHANCHUC_DF DEFAULT (GETDATE())

FOR (NG_NHANCHUC),

CONSTRAINT PB_TENPB_UNI UNIQUE (TENPB)

10/4/2012 189 10/4/2012 190 Nguyễn Thị Thúy Loan Nguyễn Thị Thúy Loan

Lệnh xóa bảng

Lệnh xóa bảng (tt)

 Được dùng để xóa cấu trúc bảng

o Tất cả dữ liệu của bảng cũng bị xóa

NHANVIEN

HONV TENLOT

TENNV

MANV NGSINH DCHI

PHAI

LUONG MA_NQL

PHG

 Cú pháp

DROP TABLE

PHONGBAN

TENPHG MAPHG

TRPHG

NG_NHANCHUC

 Ví dụ

DROP TABLE NHANVIEN

DROP TABLE PHONGBAN

DROP TABLE PHANCONG

48

10/4/2012 191 10/4/2012 192 Nguyễn Thị Thúy Loan Nguyễn Thị Thúy Loan

Lệnh INSERT

Lệnh tạo miền giá trị

 Tạo ra một kiểu dữ liệu mới kế thừa

 Dùng để thêm 1 hay nhiều dòng vào bảng

những kiểu dữ liệu có sẳn

 Cú pháp

 Để thêm dữ liệu

CREATE DOMAIN AS

o Tên quan hệ

o Danh sách các thuộc tính cần thêm dữ liệu

 Ví dụ

o Danh sách các giá trị tương ứng

CREATE DOMAIN Kieu_Ten AS VARCHAR(30)

10/4/2012 193 10/4/2012 194 Nguyễn Thị Thúy Loan Nguyễn Thị Thúy Loan

Lệnh INSERT

Ví dụ

 Cú pháp (thêm 1 dòng)

INSERT INTO NHANVIEN(HONV, TENLOT, TENNV, MANV)

VALUES (‘Le’, ‘Van’, ‘Tuyen’, ‘635635635’)

INSERT INTO ()

INSERT INTO NHANVIEN(HONV, TENLOT, TENNV, MANV, DCHI)

VALUES ()

VALUES (‘Le’, ‘Van’, ‘Tuyen’, ‘635635635’, NULL)

INSERT INTO NHANVIEN

VALUES (‘Le’, ‘Van’, ‘Tuyen’, ‘635635635’, ’12/30/1952’, ’98 HV’, ‘Nam’, ‘37000’, 4)

49

10/4/2012 195 10/4/2012 196 Nguyễn Thị Thúy Loan Nguyễn Thị Thúy Loan

Lệnh INSERT

Lệnh INSERT

o Câu lệnh INSERT sẽ gặp lỗi nếu vi phạm

 Nhận xét

RBTV

o Thứ tự các giá trị phải trùng với thứ tự các

 Khóa chính

cột.

 Tham chiếu

o Có thể thêm giá trị NULL ở những thuộc

 NOT NULL - các thuộc tính có ràng buộc

tính không là khóa chính và NOT NULL.

NOT NULL bắt buộc phải có giá trị

10/4/2012 197 10/4/2012 198 Nguyễn Thị Thúy Loan Nguyễn Thị Thúy Loan

Lệnh INSERT

Ví dụ

CREATE TABLE THONGKE_PB (

TENPHG VARCHAR(20),

 Cú pháp (thêm nhiều dòng)

SL_NV INT,

LUONG_TC INT

INSERT INTO ()

)

INSERT INTO THONGKE_PB(TENPHG, SL_NV, LUONG_TC)

SELECT TENPHG, COUNT(MANV), SUM(LUONG)

FROM NHANVIEN, PHONGBAN

WHERE PHG=MAPHG

GROUP BY TENPHG

50

10/4/2012 199 10/4/2012 200 Nguyễn Thị Thúy Loan Nguyễn Thị Thúy Loan

Lệnh DELETE

Ví dụ

 Dùng để xóa các dòng của bảng

DELETE FROM NHANVIEN

WHERE HONV=‘Tran’

 Cú pháp

DELETE FROM NHANVIEN

DELETE FROM

WHERE MANV=‘345345345’

[WHERE <điều kiện>]

DELETE FROM NHANVIEN

10/4/2012 201 10/4/2012 202 Nguyễn Thị Thúy Loan Nguyễn Thị Thúy Loan

Ví dụ

Lệnh DELETE

 Xóa đi những nhân viên ở phòng ‘Nghien

 Nhận xét

cuu’

o Số lượng số dòng bị xóa phụ thuộc vào

DELETE FROM NHANVIEN

điều kiện ở mệnh đề WHERE.

WHERE PHG IN (

o Nếu không chỉ định điều kiện ở mệnh đề

SELECT MAPHG

WHERE, tất cả các dòng trong bảng sẽ bị

FROM PHONGBAN

xóa.

WHERE TENPHG=‘Nghien cuu’)

51

10/4/2012 203 10/4/2012 204 Nguyễn Thị Thúy Loan Nguyễn Thị Thúy Loan

Lệnh DELETE

Lệnh UPDATE

 Dùng để thay đổi giá trị của thuộc tính cho

o Lệnh DELETE có thể gây ra vi phạm RB

các dòng của bảng.

tham chiếu:

 Cú pháp

 Không cho xóa.

UPDATE

 Xóa luôn những dòng có giá trị đang tham

SET =,

chiếu đến.

 Đặt NULL cho những giá trị tham chiếu.

=, …

[WHERE <điều kiện>]

10/4/2012 205 10/4/2012 206 Nguyễn Thị Thúy Loan Nguyễn Thị Thúy Loan

Ví dụ

Ví dụ

Thay đổi ngày sinh của nhân viên có mã

 Với đề án có mã số 10, hãy thay đổi nơi

‘333445555’ thành ’08/12/1965’

thực hiện đề án thành ‘Vung Tau’ và

UPDATE NHANVIEN

phòng ban phụ trách là phòng 5

SET NGSINH=’08/12/1965’

UPDATE DEAN

WHERE MANV=‘333445555’

SET DIADIEM_DA=’Vung Tau’, PHONG=5

Tăng lương của nhân viên lên 10%

WHERE MADA=10

UPDATE NHANVIEN

SET LUONG=LUONG*1.1

52

10/4/2012 207 10/4/2012 208 Nguyễn Thị Thúy Loan Nguyễn Thị Thúy Loan

Lệnh UPDATE

Lệnh UPDATE

o Lệnh UPDATE có thể gây ra vi phạm RB

 Nhận xét:

tham chiếu:

o Những dòng thỏa điều kiện tại mệnh đề

 Không cho sửa.

WHERE sẽ được cập nhật giá trị mới.

 Sửa luôn những dòng có giá trị đang tham

o Nếu không chỉ định điều kiện ở mệnh đề

chiếu đến.

WHERE, tất cả các dòng trong bảng sẽ bị

cập nhật.

10/4/2012 209 10/4/2012 210 Nguyễn Thị Thúy Loan Nguyễn Thị Thúy Loan

Truy vấn dữ liệu

Truy vấn cơ bản

 Là ngôn ngữ rút trích dữ liệu thỏa một số

 Gồm 3 mệnh đề

điều kiện nào đó.

SELECT

 Dựa trên

FROM

WHERE <điều kiện>

Phép toán ĐSQH

Một số bổ sung

o Cho phép 1 bảng có nhiều dòng trùng nhau

53

10/4/2012 211 10/4/2012 212 Nguyễn Thị Thúy Loan Nguyễn Thị Thúy Loan

Quản lý nhân viên

Truy vấn cơ bản o : Tên các cột cần

NHANVIEN (manv, honv, tenlot, tennv, ngsinh, dchi,

được hiển thị trong kết quả truy vấn

phai, luong, ma_nql, phg)

o : Tên các bảng liên

PHONGBAN (maphg, tenphg, trphg, ng_nhanchuc)

quan đến câu truy vấn

DIADIEM_PHG (maphg, diadiem)

o <điều kiện>:

THANNHAN (ma_nvien, tentn, phai, ngsinh,

 Biểu thức boolean xác định dòng nào sẽ

quanhe)

được rút trích

DEAN (tenda, mada, ddiem_da, phong)

 Nối các biểu thức: AND, OR, và NOT  Phép toán:  ,  ,  ,  ,  , , LIKE và

PHANCONG (ma_nvien, soda, thoigian)

BETWEEN

10/4/2012 213 10/4/2012 214 Nguyễn Thị Thúy Loan Nguyễn Thị Thúy Loan

Ví dụ

Ví dụ

1. Lấy ra MaNV và Luong được tăng lên 10%

1. Lấy ra all nhân viên phòng số 5

của những NV nam thuộc phòng số 5

2. Lấy ra MaNV, HoNV, TenLot, TenNV của

2. Lấy ra MaNV, TenNV của NV thuộc phòng

những NV nam thuộc phòng số 5.

Nghiên cứu.

3. Lấy ra MaNV, Họ và Tên NV của những

3. Lấy ra MaNV, TenNV của NV thuộc phòng

NV nam thuộc phòng số 5.

Nghiên cứu hoặc phòng Quản lý.

4. Lấy ra MaNV, Luong của những NV nam

4. Lấy ra MaNV, TenNV có mức lương từ

thuộc phòng số 5.

2000 đến 3000.

54

10/4/2012 215 10/4/2012 216 Nguyễn Thị Thúy Loan Nguyễn Thị Thúy Loan

Ví dụ

Ví dụ

1. Lấy ra MaNV, TenNV có họ là Nguyen.

1. Cho biết tên phòng ban và địa điểm của

2. Lấy ra MaNV, TenNV có họ không phải

từng phòng ban.

là họ Nguyen.

2. Cho biết TenNV, NgSinh của nhân viên

3. Lấy ra MaNV, TenNV có tên bắt đầu là kí

và TenTN, NgSinh thân nhân của họ.

tự H.

4. Lấy ra MaNV, TenNV không có người

quản lý.

10/4/2012 217 10/4/2012 218 Nguyễn Thị Thúy Loan Nguyễn Thị Thúy Loan

Ví dụ

Mệnh đề SELECT

Lấy tất cả các cột của quan hệ kết quả

SELECT *

SELECT MANV, HONV, TENLOT, TENNV

FROM NHANVIEN

FROM NHANVIEN

WHERE PHG=5

WHERE PHG=5 AND PHAI=‘Nam’

MANV

MA_NQL

HONV

TENLOT

TENNV

NGSINH

DCHI

PHAI

LUONG

PHG

MANV

HONV

TENLOT

TENNV

888665555

333445555

Nguyen

Thanh

12/08/1955

638 NVC Q5

Nam

40000

Tung

5

333445555

Nguyen

Thanh

Tung

333445555

987987987

Nguyen

Manh

09/15/1962

Ba Ria VT

Nam

38000

Hung

5

987987987

Nguyen

Manh

Hung

55

10/4/2012 219 10/4/2012 220 Nguyễn Thị Thúy Loan Nguyễn Thị Thúy Loan

Mệnh đề SELECT (tt)

Mệnh đề SELECT (tt)

Tên bí danh

Mở rộng

SELECT MANV, HONV AS HO, TENLOT AS ‘TEN LOT’, TENNV AS TEN

SELECT MANV, HONV + ‘ ’ + TENLOT + ‘ ’ + TENNV AS ‘HO TEN’

FROM NHANVIEN

FROM NHANVIEN

WHERE PHG=5 AND PHAI=‘Nam’

WHERE PHG=5 AND PHAI=‘Nam’

MANV

HO

TEN LOT

TEN

MANV

HO TEN

333445555

Nguyen

Thanh

Tung

333445555

Nguyen Thanh Tung

987987987

Nguyen

Manh

Hung

987987987

Nguyen Manh Hung

10/4/2012 221 10/4/2012 222 Nguyễn Thị Thúy Loan Nguyễn Thị Thúy Loan

Mệnh đề SELECT (tt)

Mệnh đề SELECT (tt)

Mở rộng

Loại bỏ các dòng trùng nhau

SELECT MANV, LUONG*1.1 AS ‘LUONG10%’

SELECT LUONG

SELECT DISTINCT LUONG

FROM NHANVIEN

FROM NHANVIEN

FROM NHANVIEN

WHERE PHG=5 AND PHAI=‘Nam’

WHERE PHG=5 AND PHAI=‘Nam’

WHERE PHG=5 AND PHAI=‘Nam’

MANV

LUONG10%

LUONG

333445555

33000

LUONG

987987987

27500

30000

30000

- Tốn chi phí

25000

25000

- Người dùng muốn thấy

25000

38000

38000

56

10/4/2012 223 10/4/2012 224 Nguyễn Thị Thúy Loan Nguyễn Thị Thúy Loan

Ví dụ

Mệnh đề WHERE

 Cho biết MANV và TENNV làm việc ở

phòng ‘Nghien cuu’

SELECT MANV, TENNV

Biểu thức luận lý

FROM NHANVIEN, PHONGBAN

SELECT MANV, TENNV

WHERE TENPHG=‘Nghien cuu’ AND PHG=MAPHG

FROM NHANVIEN, PHGBAN

TRUE

TRUE

WHERE TENPHG = 'NGHIEN CUU' AND

MAPHG = PHG

10/4/2012 225 10/4/2012 226 Nguyễn Thị Thúy Loan Nguyễn Thị Thúy Loan

Mệnh đề WHERE (tt)

Mệnh đề WHERE (tt)

BETWEEN

Độ ưu tiên

SELECT MANV, TENNV

SELECT MANV, TENNV

FROM NHANVIEN

FROM NHANVIEN, PHONGBAN

WHERE LUONG>=20000 AND LUONG<=30000

WHERE (TENPHG=‘Nghien cuu’ OR TENPHG=‘Quan ly’) AND PHG=MAPHG

SELECT MANV, TENNV

FROM NHANVIEN

WHERE LUONG BETWEEN 20000 AND 30000

57

10/4/2012 227 10/4/2012 228 Nguyễn Thị Thúy Loan Nguyễn Thị Thúy Loan

Kí tự đại diện

Mệnh đề WHERE (tt)

KÍ TỰ

MÔ TẢ

VÍ DỤ

NOT BETWEEN

SELECT TENNV FROM NHANVIEN

-

Đại diện cho 1 kí tự

WHERE TENNV LIKE ‘_UNG’

bất kỳ

SELECT MANV, TENNV

SELECT TENNV FROM NHANVIEN

%

Đại diện cho nhiều ký

FROM NHANVIEN

WHERE DCHI LIKE ‘%TPHCM’

tự

WHERE LUONG NOT BETWEEN 20000 AND 30000

SELECT * FROM NHANVIEN WHERE TENNV

[]

Là 1 trong những ký

LIKE ‘[Q-T]%’

tự trong [..]

[^]

Loại trừ những ký tự

SELECT * FROM DIADIEM_PHG

trong [..]

WHERE DIADIEM LIKE ‘%[^I-M]’

10/4/2012 229 10/4/2012 230 Nguyễn Thị Thúy Loan Nguyễn Thị Thúy Loan

Mệnh đề WHERE (tt)

Mệnh đề WHERE (tt)

LIKE

NOT LIKE

SELECT MANV, TENNV

SELECT MANV, TENNV

FROM NHANVIEN

FROM NHANVIEN

WHERE DCHI LIKE ‘Nguyen _ _ _ _’

WHERE HONV LIKE ‘Nguyen’

Ký tự bất kỳ

SELECT MANV, TENNV

SELECT MANV, TENNV

FROM NHANVIEN

FROM NHANVIEN

WHERE DCHI LIKE ‘Nguyen %’

WHERE HONV NOT LIKE ‘Nguyen’

Chuỗi bất kỳ

58

10/4/2012 231 10/4/2012 232 Nguyễn Thị Thúy Loan Nguyễn Thị Thúy Loan

Mệnh đề WHERE (tt)

Mệnh đề WHERE (tt)

ESCAPE

Ngày giờ

SELECT MANV, TENNV

SELECT MANV, TENNV

FROM NHANVIEN

FROM NHANVIEN

WHERE DCHI LIKE ‘% Nguyens_%’ ESCAPE ‘s’

WHERE NGSINH BETWEEN ‘1955-12-08’ AND ‘1966-07-19’

‘1955-12-08’

’17:30:00’

YYYY-MM-DD

HH:MI:SS

‘Nguyen_’

’16/08/1955’

’05:30 PM’

MM/DD/YYYY

‘December 8, 1955’

‘1955-12-08 17:30:00’

10/4/2012 233 10/4/2012 234 Nguyễn Thị Thúy Loan Nguyễn Thị Thúy Loan

Mệnh đề WHERE (tt)

Mệnh đề WHERE (tt)

NULL

NULL

 Những biểu thức tính toán có liên quan

 Sử dụng trong trường hợp

đến giá trị NULL sẽ cho ra kết quả là

o Không biết (value unknown)

NULL.

o Không thể áp dụng (value inapplicable)

o x có giá trị là NULL

o Không tồn tại (value withheld)

o x + 3 cho ra kết quả là NULL

o x + 3 là một biểu thức không hợp lệ trong

SQL

59

10/4/2012 235 10/4/2012 236 Nguyễn Thị Thúy Loan Nguyễn Thị Thúy Loan

Mệnh đề WHERE (tt)

Mệnh đề WHERE (tt)

NULL

NULL

SELECT MANV, TENNV

o Những biểu thức so sánh có liên quan đến giá

FROM NHANVIEN

trị NULL sẽ cho ra kết quả là UNKNOWN

WHERE MA_NQL IS NULL

 x = 3 cho ra kết quả là UNKNOWN

 x = 3 là một so sánh không hợp lệ trong SQL

SELECT MANV, TENNV

FROM NHANVIEN

WHERE MA_NQL IS NOT NULL

10/4/2012 237 10/4/2012 238 Nguyễn Thị Thúy Loan Nguyễn Thị Thúy Loan

Mệnh đề FROM

Mệnh đề FROM (tt)

Không sử dụng mệnh đề WHERE

Tên bí danh

SELECT MANV, MAPHG

SELECT TENPHG, DIADIEM

SELECT TENPHG, DIADIEM

FROM NHANVIEN, PHONGBAN

FROM PHONGBAN AS PB, DDIEM_PHG AS DD

FROM PHONGBAN, DDIEM_PHG

WHERE TRUE

WHERE PB.MAPHG=DD.MAPHG

WHERE MAPHG=MAPHG

MANV

MAPHG

333445555

1

333445555

4

SELECT TENNV, NGSINH, TENTN, NGSINH

333445555

5

987987987

1

FROM NHANVIEN, THANNHAN

987987987

4

SELECT TENNV, NV.NGSINH, TENTN, TN.NGSINH

WHERE MANV=MA_NVIEN

987987987

5

FROM NHANVIEN NV, THANNHAN TN

WHERE MANV=MA_NVIEN

60

10/4/2012 239 10/4/2012 240 Nguyễn Thị Thúy Loan Nguyễn Thị Thúy Loan

Quản lý ràng buộc

Ví dụ 1

 Xem ràng buộc

 Với những đề án ở ‘Ha Noi’, cho biết mã

Sp_helpconstraint

đề án, mã phòng ban chủ trì đề án, họ tên

 Xóa ràng buộc

trưởng phòng cùng với ngày sinh và địa

Alter table

chỉ của người ấy.

Drop [constraint]

 Tắt chức năng ràng buộc

Alter table

Nocheck constraint {all | [,…]}

10/4/2012 241 10/4/2012 242 Nguyễn Thị Thúy Loan Nguyễn Thị Thúy Loan

Ví dụ 2

Ví dụ 3

 Tìm họ tên của nhân viên phòng số 5 có

 Tìm họ tên của từng nhân viên và người

tham gia vào đề án “Sản phẩm X” với số

phụ trách trực tiếp nhân viên đó.

giờ làm việc trên 10 giờ.

61

10/4/2012 243 10/4/2012 244 Nguyễn Thị Thúy Loan Nguyễn Thị Thúy Loan

Ví dụ 4

Mệnh đề ORDER BY  Dùng để hiển thị kết quả câu truy vấn theo

 Tìm họ tên của những nhân viên được

một thứ tự nào đó

“Nguyen Thanh Tung” phụ trách trực tiếp.

 Cú pháp

SELECT

FROM

WHERE <điều kiện>

ORDER BY

o ASC: tăng (mặc định)

o DESC: giảm

10/4/2012 245 10/4/2012 246 Nguyễn Thị Thúy Loan Nguyễn Thị Thúy Loan

Ví dụ

Phép toán tập hợp trong SQL

 Liệt kê danh sách MaNV, TenNV theo thứ

 SQL có cài đặt các phép toán

tự tên giảm dần.

o Hội (UNION)

 Liệt kê MaNV, SoDA theo thứ tự MaNV

o Giao (INTERSECT)

tăng dần, SoDA giảm dần.

o Trừ (EXCEPT)

62

10/4/2012 247 10/4/2012 248 Nguyễn Thị Thúy Loan Nguyễn Thị Thúy Loan

Phép toán tập hợp trong SQL

Phép toán tập hợp trong SQL

 Cú pháp

 Kết quả trả về là tập hợp

SELECT FROM WHERE <điều kiện>

UNION [ALL]

o Loại bỏ các bộ trùng nhau

SELECT FROM WHERE <điều kiện>

o Để giữ lại các bộ trùng nhau

SELECT FROM WHERE <điều kiện>

 UNION ALL

INTERSECT [ALL]

SELECT FROM WHERE <điều kiện>

 INTERSECT ALL

 EXCEPT ALL

SELECT FROM WHERE <điều kiện>

EXCEPT [ALL]

SELECT FROM WHERE <điều kiện>

10/4/2012 249 10/4/2012 250 Nguyễn Thị Thúy Loan Nguyễn Thị Thúy Loan

Ví dụ

Ví dụ

 Tìm nhân viên có người thân cùng tên và

 Cho biết các mã đề án có

cùng giới tính

o Nhân viên với họ là ‘Nguyen’

tham gia

hoặc,

o Trưởng phòng chủ trì đề án đó với họ là

‘Nguyen’

63

10/4/2012 251 10/4/2012 252 Nguyễn Thị Thúy Loan Nguyễn Thị Thúy Loan

Ví dụ

Truy vấn lồng

 Tìm những nhân viên không có thân nhân

SELECT

nào

FROM

Câu truy vấn cha (Outer query)

WHERE (

SELECT

FROM

Câu truy vấn con (Subquery)

WHERE <điều kiện>)

10/4/2012 253 10/4/2012 254 Nguyễn Thị Thúy Loan Nguyễn Thị Thúy Loan

Truy vấn lồng

Truy vấn lồng

 Các câu lệnh SELECT có thể lồng nhau ở

 Mệnh đề WHERE của câu truy vấn cha

o

nhiều mức.

con>

 Các câu truy vấn con trong cùng một mệnh

o So sánh tập hợp thường đi cùng với một số

đề WHERE được kết hợp bằng phép nối

toán tử:

logic.

 IN, NOT IN

 Câu truy vấn con thường trả về một tập các

 ALL

giá trị.

 ANY hoặc SOME

o Kiểm tra sự tồn tại: EXISTS, NOT EXISTS

64

10/4/2012 255 10/4/2012 256 Nguyễn Thị Thúy Loan Nguyễn Thị Thúy Loan

Truy vấn lồng

Truy vấn lồng

o Lồng tương quan

 Có 2 loại truy vấn lồng

 Mệnh đề WHERE của truy vấn con tham

o Lồng phân cấp (không tương quan)

chiếu ít nhất một thuộc tính của các quan hệ

 Mệnh đề WHERE của truy vấn con không

trong mệnh đề FROM ở truy vấn cha.

tham chiếu đến thuộc tính của các quan hệ

 Khi thực hiện, câu truy vấn con sẽ được

trong mệnh đề FROM ở truy vấn cha.

thực hiện nhiều lần, mỗi lần tương ứng với

 Khi thực hiện, câu truy vấn con sẽ được

một bộ của truy vấn cha.

thực hiện trước.

10/4/2012 257 10/4/2012 258 Nguyễn Thị Thúy Loan Nguyễn Thị Thúy Loan

Ví dụ

SELECT SODA

Lồng phân cấp Cho biết MaNV, TenNV làm việc tại các phòng ban có địa điểm tại TP HCM

FROM NHANVIEN NV, PHANCONG PC

SELECT MANV, TENNV

WHERE NV.MANV=PC.MA_NVIEN AND NV.HONV=‘Nguyen’

FROM NHANVIEN, DIADIEM_PHG

UNION

WHERE DIADIEM=‘TP HCM’ AND PHG=MAPHG

SELECT MADA

SELECT MANV, TENNV

FROM NHANVIEN NV, PHONGBAN PB, DEAN DA

FROM NHANVIEN

WHERE PHG IN (

WHERE NV.MANV=PB.TRPHG AND PB.MAPHG=DA.PHONG

SELECT MAPHG

AND NV.HONV=‘Nguyen’

FROM DIADIEM_PHG

WHERE DIADIEM=‘TP HCM’ )

65

10/4/2012 259 10/4/2012 260 Nguyễn Thị Thúy Loan Nguyễn Thị Thúy Loan

Ví dụ

Ví dụ 5

 Tìm những nhân viên có lương lớn hơn

SELECT DISTINCT TENDA

FROM DEAN

lương của ít nhất một nhân viên phòng 4

WHERE MADA IN (

SELECT SODA

FROM NHANVIEN, PHANCONG

WHERE MANV=MA_NVIEN AND HONV=‘Nguyen’ )

OR MADA IN (

SELECT MADA

FROM NHANVIEN, PHONGBAN, DEAN

WHERE MANV=TRPHG AND MAPHG=PHONG

AND HONV=‘Nguyen’ )

10/4/2012 261 10/4/2012 262 Nguyễn Thị Thúy Loan Nguyễn Thị Thúy Loan

Ví dụ

Ví dụ

 Tìm những nhân viên không có thân nhân

 Tìm những nhân viên có lương lớn hơn

nào

lương của tất cả nhân viên phòng 4

66

10/4/2012 263 10/4/2012 264 Nguyễn Thị Thúy Loan Nguyễn Thị Thúy Loan

Ví dụ

Lồng tương quan

 Tìm những trưởng phòng có tối thiểu một

SELECT MANV, TENNV

FROM NHANVIEN, PHONGBAN

thân nhân

WHERE TENPHG=‘Nghien cuu’ AND PHG=MAPHG

SELECT MANV, TENNV

FROM NHANVIEN

WHERE EXISTS (

SELECT *

FROM PHONGBAN

WHERE TENPHG=‘Nghien cuu’ AND PHG=MAPHG )

10/4/2012 265 10/4/2012 266 Nguyễn Thị Thúy Loan Nguyễn Thị Thúy Loan

Ví dụ

Ví dụ

 Tìm nhân viên có người thân cùng tên và

 Tìm những nhân viên không có thân nhân

cùng giới tính

nào

67

10/4/2012 267 10/4/2012 268 Nguyễn Thị Thúy Loan Nguyễn Thị Thúy Loan

Ví dụ

Ví dụ  Tìm những trưởng phòng có tối thiểu một

 Tìm những nhân viên có lương lớn hơn

thân nhân

lương của ít nhất một nhân viên phòng 4

10/4/2012 269 10/4/2012 270 Nguyễn Thị Thúy Loan Nguyễn Thị Thúy Loan

Nhận xét IN và EXISTS

Nhận xét IN và EXISTS

 EXISTS

 IN

o Không cần có thuộc tính, hằng số hay biểu

o IN

thức nào khác đứng trước.

o Thuộc tính ở mệnh đề SELECT của truy

o Không nhất thiết liệt kê tên thuộc tính ở

vấn con phải có cùng kiểu dữ liệu với thuộc

mệnh đề SELECT của truy vấn con.

tính ở mệnh đề WHERE của truy vấn cha.

o Những câu truy vấn có = ANY hay IN đều

có thể chuyển thành câu truy vấn có

EXISTS.

68

10/4/2012 271 10/4/2012 272 Nguyễn Thị Thúy Loan Nguyễn Thị Thúy Loan

Phép chia trong SQL

Phép chia trong SQL

 Biểu diễn bằng SQL:

 Giả sử có Q1(AB), Q2(B). Viết bằng SQL

Q1  Q2

SELECT X.A FROM Q1 X WHERE NOT EXISTS

(SELECT FROM WHERE

Y.B Q2 Y NOT EXISTS

 Diễn đạt lại: Q1  Q2 là tập hợp các giá trị ai trong Q1 sao cho: không có giá trị bj nào trong Q2 làm cho bộ (ai, bj) không tồn tại trong Q1

(SELECT * FROM Q1 Z WHERE Z.A=X.A AND Z.B=Y.B))

10/4/2012 273 10/4/2012 274 Nguyễn Thị Thúy Loan Nguyễn Thị Thúy Loan

Phép chia trong SQL

Phép chia trong SQL

R

E

C

D

C

A

B

A

B

RS

Q1

S

D

E

Q2

1

a

a

a

a

1

bi

ai

1

a

a

a

1

b

1

b

a

1

a

a

3

b

a

Q1  Q2 A  

B 1 2

1

a

a

1

b

a

1

b

a

A B  1  2  1  1  2

69

10/4/2012 275 10/4/2012 276 Nguyễn Thị Thúy Loan Nguyễn Thị Thúy Loan

Phép chia trong SQL

Ví dụ

 Lược đồ CSDL:

KHACHHANG (MAKH, HOTEN, DCHI, SODT,

NGSINH, DOANHSO, NGDK)

NHANVIEN (MANV,HOTEN, NGLV, SODT)

 RS là tập các giá trị ai trong R sao cho không có giá trị bi nào trong S làm cho bộ (ai, bi) không tồn tại trong R

SANPHAM (MASP,TENSP, DVT, NUOCSX, GIA)

HOADON (SOHD, NGHD, MAKH, MANV, TRIGIA)

CTHD (SOHD,MASP,SL)

10/4/2012 277 10/4/2012 278 Nguyễn Thị Thúy Loan Nguyễn Thị Thúy Loan

Ví dụ

Ví dụ

 Khi phân tích ta có thể thấy đây là câu hỏi sử

 Tìm số hóa đơn đã mua tất cả sản phẩm

dụng phép trừ để thực hiện.

do Singapore sản xuất.Trước khi giải đáp

Cụ thể: Những Sản phẩm của Singapore mà

câu hỏi minh họa, chúng ta cùng làm câu

SoHD ’1001′ chưa mua = Tất cả Sản phẩm của

hỏi PHỤ sau:

Singapore - (Những Sản phẩm của Singapore

 Tìm những sản phẩm của Singapore mà

mà SoHD ’1001′ đã mua)

SoHD ’1001′ chưa mua.

Trong SQL ta có thể sử dụng NOT IN hoặc NOT

EXISTS để thực hiện phép trừ này.

70

10/4/2012 279 10/4/2012 280 Nguyễn Thị Thúy Loan Nguyễn Thị Thúy Loan

Ví dụ

Ví dụ

 Sử dụng NOT IN

 Câu truy vấn con sẽ trả về giá trị của

SELECT *

MASP thỏa mãn điều kiện SOHD=’1001′

FROM SANPHAM

và các giá trị này xem như là một mảng.

WHERE NUOCSX='SINGAPORE' AND MASP

Câu truy vấn cha khi sử dụng NOT IN sẽ

NOT IN(--Câu truy vấn con

duyệt qua từng phần tử của mảng và so

SELECT MASP

sánh để chọn những MASP nào không

FROM CTHD

nằm trong mảng trên.

WHERE SOHD='1001')

10/4/2012 281 10/4/2012 282 Nguyễn Thị Thúy Loan Nguyễn Thị Thúy Loan

Ví dụ

Ví dụ

 Sử dụng NOT EXISTS

 Câu truy vấn con sẽ chọn ra những bộ

SELECT *

thỏa mãn điều kiện SOHD=’1001′ và có

FROM SANPHAM A

MASP nằm

trong 2 bảng CTHD và

WHERE NUOCSX='SINGAPORE' AND NOT

SANPHAM.

EXISTS(--Câu truy vấn con

SELECT *

Điều đáng chú ý ở đây là NOT EXIST chỉ

FROM CTHD B

trả về giá trị True hoặc False

WHERE SOHD='1001' AND A.MASP=B.MASP)

71

10/4/2012 283 10/4/2012 284 Nguyễn Thị Thúy Loan Nguyễn Thị Thúy Loan

Ví dụ

Ví dụ

 Giá trị của NOT EXIST chỉ đúng khi câu

 Điều kiện NOT EXISTS đúng câu truy vấn

truy vấn con không trả về bộ giá trị nào (Lý

chính trả về tất cả những bộ sản phẩm do

thuyết). Và ngược lại giá trị của NOT

SINGAPORE sản xuất (những sản phẩm

EXIST sai khi có các bộ giá trị trả về.

này chính là những sản phẩm mà SOHD

’1001′ chưa mua). Thỏa yêu cầu câu hỏi

 Nếu câu truy vấn con không trả về bộ giá

đặt ra.

trị nào có nghĩa là SOHD ’1001′ CHƯA

MUA BẤT KỲ SẢN PHẨM NÀO.

10/4/2012 285 10/4/2012 286 Nguyễn Thị Thúy Loan Nguyễn Thị Thúy Loan

Nhận xét

Nhận xét

 Khi sử dụng NOT IN, câu truy vấn cha sẽ

 Đây có thể xem như là khác biệt quan

duyệt qua rất nhiều lần để đưa ra những

trọng nhất giữa NOT IN và NOT EXISTS.

bộ giá trị thỏa mãn.

Sử dụng NOT EXISTS có vẻ “phức tạp”,

khó hiểu hơn nhưng thực ra Sever thực

 Với NOT EXISTS câu truy vấn cha xem

hiện câu truy vấn dễ dàng hơn.

NOT EXIST như một điều kiện, thực hiện

truy vấn nếu NOT EXIST đúng và ngược

lại.

72

10/4/2012 287 10/4/2012 288 Nguyễn Thị Thúy Loan Nguyễn Thị Thúy Loan

Ví dụ

Ví dụ  Câu hỏi phụ yêu cầu chúng ta tìm những

 Như vậy vấn đề: Tìm những sản phẩm

sản phẩm của Singapore mà một Số hóa

của Singapore mà SoHD ’1001′ chưa mua

đơn bất kỳ chưa mua, để đơn giản như ở

đã giải quyết xong! Từ đó ta có thể dễ

trên mình đã chỉ định số hóa đơn là 1001.

dàng tìm những sản phẩm của Singapore

 Vậy nếu giá trị của câu hỏi phụ trả về là

mà một SoHD BẤT KỲ chưa mua.

không có sản phẩm nào thì có nghĩa là Số

hóa đơn đó đã mua tất cả sản phẩm của

Singapore.

10/4/2012 289 10/4/2012 290 Nguyễn Thị Thúy Loan Nguyễn Thị Thúy Loan

Ví dụ

Ví dụ

SELECT DISTINCT SOHD

 Ta lại liên tưởng tới một câu truy vấn sử

FROM CTHD A

dụng NOT EXISTS, và bây giờ câu hỏi

WHERE NOT EXISTS(--câu hỏi phụ

phụ chính là điều kiện NOT EXIST của

SELECT * FROM SANPHAM B

câu hỏi chính.

WHERE NUOCSX='SINGAPORE' AND NOT

EXISTS(

SELECT * FROM CTHD C

WHERE C.MASP=B.MASP AND

C.SOHD=A.SOHD))

73

10/4/2012 291 10/4/2012 292 Nguyễn Thị Thúy Loan Nguyễn Thị Thúy Loan

Ví dụ

Ví dụ  Tìm tên các nhân viên được phân công

 Rõ ràng ta có thể thấy rằng, phép trừ

làm tất cả các đề án.

chính là “con” của phép chia. Hay nói cách

o Tìm tên các nhân viên mà không có đề án

khác, khi thực hiện phép chia là đồng thời

nào là không được phân công làm

lồng 2 phép trừ vào trong đó.

o Tập bị

chia: PHANCONG(MA_NVIEN,

 Vậy ta có thể sử dụng 2 NOT IN lồng vào

SODA)

o Tập chia: DEAN(MADA)

nhau để thực hiện phép trừ hay không?

o Tập kết quả: KQ(MA_NVIEN)

o Kết KQ với NHANVIEN để lấy ra TENNV

10/4/2012 293 10/4/2012 294 Nguyễn Thị Thúy Loan Nguyễn Thị Thúy Loan

Hàm kết hợp

Hàm kết hợp

 COUNT

 MIN

o COUNT(*) đếm số dòng

 MAX

o COUNT() đếm số giá trị

 SUM

khác NULL của thuộc tính

 AVG

o COUNT(DISTINCT ) đếm

số giá trị khác nhau và khác NULL của

 Các hàm kết hợp được đặt ở mệnh đề

thuộc tính.

SELECT

74

10/4/2012 295 10/4/2012 296 Nguyễn Thị Thúy Loan Nguyễn Thị Thúy Loan

Ví dụ

Ví dụ

 Cho biết số lượng nhân viên của phòng

 Tìm tổng lương, lương cao nhất, lương

‘Nghien cuu’

thấp nhất và lương trung bình của các

nhân viên

SELECT SUM(LUONG), MAX(LUONG), MIN(LUONG), AVG(LUONG)

FROM NHANVIEN

10/4/2012 10/4/2012 Nguyễn Thị Thúy Loan Nguyễn Thị Thúy Loan 297 297 298 298

Ví dụ

Gom nhóm

 Cú pháp

 Cho biết số lượng nhân viên của từng

SELECT

phòng ban.

FROM

WHERE <điều kiện>

GROUP BY

 Sau khi gom nhóm

o Mỗi nhóm các bộ sẽ có cùng giá trị tại các

thuộc tính gom nhóm

75

10/4/2012 299 10/4/2012 300 Nguyễn Thị Thúy Loan Nguyễn Thị Thúy Loan

Ví dụ

Ví dụ

 Cho biết số lượng nhân viên của từng

 Với mỗi nhân viên cho biết mã số, họ tên,

phòng ban.

số lượng đề án và tổng thời gian mà họ

MA_NVIEN

SODA

THOIGIAN

tham gia.

123456789

1

32.5

123456789

2

7.5

333445555

2

10.0

333445555

3

10.0

333445555

10

10.0

888665555

20

20.0

987987987

10

35.0

987987987

30

5.0

987654321

30

20.0

987654321

20

15.0

453453453

1

20.0

453453453

2

20.0

10/4/2012 301 10/4/2012 302 Nguyễn Thị Thúy Loan Nguyễn Thị Thúy Loan

Điều kiện trên nhóm

Ví dụ  Cho biết những mã nhân viên tham gia từ

 Cú pháp

2 đề án trở lên

MA_NVIEN

SODA

THOIGIAN

SELECT

123456789

1

32.5

123456789

2

7.5

FROM

333445555

2

10.0

333445555

3

10.0

WHERE <điều kiện>

333445555

10

10.0

888665555

20

20.0

bị loại ra

GROUP BY

987987987

10

35.0

987987987

30

5.0

987654321

30

20.0

HAVING <điều kiện trên nhóm>

987654321

20

15.0

453453453

1

20.0

453453453

2

20.0

76

10/4/2012 303 10/4/2012 304 Nguyễn Thị Thúy Loan Nguyễn Thị Thúy Loan

Ví dụ

Ví dụ  Cho biết những nhân viên tham gia từ 2

 Cho biết những phòng ban (TENPHG) có

đề án trở lên.

lương trung bình của các nhân viên lớn

lơn 20000.

10/4/2012 305 10/4/2012 306 Nguyễn Thị Thúy Loan Nguyễn Thị Thúy Loan

Nhận xét

Nhận xét

o Chỉ kiểm tra điều kiện trên nhóm, không là

 Mệnh đề GROUP BY

điều kiện lọc trên từng bộ.

o Các thuộc tính trong mệnh đề SELECT (trừ

o Sau khi gom nhóm điều kiện trên nhóm mới

những thuộc tính trong các hàm kết hợp)

được thực hiện.

phải xuất hiện trong mệnh đề GROUP BY.

 Mệnh đề HAVING

o Sử dụng các hàm kết hợp trong mệnh đề

SELECT để kiểm tra một số điều kiện nào

đó.

77

10/4/2012 307 10/4/2012 308 Nguyễn Thị Thúy Loan Nguyễn Thị Thúy Loan

Nhận xét

Nhận xét o (4) Áp dụng các hàm kết hợp cho mỗi

 Thứ tự thực hiện câu truy vấn có mệnh đề

nhóm, bỏ qua những nhóm không thỏa

GROUP BY và HAVING

điều kiện trong mệnh đề HAVING.

o (1) Lấy ra các bảng trong mệnh đề FROM.

o (5) Rút trích các giá trị của các cột và hàm

o (2) Chọn ra những dòng thỏa điều kiện

kết hợp trong mệnh đề SELECT.

trong mệnh đề WHERE.

o (3) Những dòng này sẽ được gom thành

nhiều nhóm tương ứng với mệnh đề

GROUP BY.

10/4/2012 309 10/4/2012 310 Nguyễn Thị Thúy Loan Nguyễn Thị Thúy Loan

Ví dụ

Ví dụ

 Tìm những phòng ban có lương trung bình

 Tìm những phòng ban có lương trung bình

cao nhất.

cao nhất.

78

10/4/2012 311 10/4/2012 312 Nguyễn Thị Thúy Loan Nguyễn Thị Thúy Loan

Ví dụ

Ví dụ

 Tìm tên các nhân viên được phân công

 Tìm 3 nhân viên có lương cao nhất.

làm tất cả các đồ án.

10/4/2012 313 10/4/2012 314 Nguyễn Thị Thúy Loan Nguyễn Thị Thúy Loan

Một số dạng truy vấn khác

Truy vấn con ở mệnh đề From

 Kết quả trả về của một câu truy vấn phụ là

 Truy vấn con ở mệnh đề FROM

một bảng

 Điều kiện kết ở mệnh đề FROM

o Bảng trung gian trong quá trình truy vấn

o Phép kết tự nhiên

o Không có lưu trữ thật sự

o Phép kết ngoài

 Cú pháp

 Cấu trúc CASE

SELECT

FROM R1, R2, () AS tên_bảng

WHERE <điều kiện>

79

10/4/2012 315 10/4/2012 316 Nguyễn Thị Thúy Loan Nguyễn Thị Thúy Loan

Ví dụ

Ví dụ

 Cho biết những phòng ban (TENPHG) có

 Cho biết những phòng ban (TENPHG) có

lương trung bình của các nhân viên lớn

lương trung bình của các nhân viên lớn

lơn 20000.

lơn 20000. Sử dụng bảng tạm.

SELECT PHG, TENPHG, AVG(LUONG) AS LUONG_TB

FROM NHANVIEN, PHONGBAN

WHERE PHG=MAPHG

GROUP BY PHG, TENPHG

HAVING AVG(LUONG) > 20000

10/4/2012 317 10/4/2012 318 Nguyễn Thị Thúy Loan Nguyễn Thị Thúy Loan

Điều kiện kết ở mệnh đề From

Ví dụ

 Tìm mã và tên các nhân viên làm việc tại

 Kết bằng

phòng ‘Nghien cuu’.

SELECT

FROM R1 [INNER] JOIN R2 ON

WHERE <điều kiện>

 Kết ngoài

SELECT

FROM R1 LEFT|RIGHT [OUTER] JOIN R2 ON

WHERE <điều kiện>

80

10/4/2012 319 10/4/2012 320 Nguyễn Thị Thúy Loan Nguyễn Thị Thúy Loan

Ví dụ

Ví dụ

 Cho biết họ tên nhân viên và tên phòng

TENNV

HONV

TENPHG

Tung

Nguyen

Nghien cuu

ban mà họ là trưởng phòng nếu có.

Hang

Bui

null

Nhu

Le

null

TENNV

HONV

TENPHG

Vinh

Pham

Quan ly

Tung

Nguyen

Nghien cuu

Mở rộng dữ liệu cho bảng NHANVIEN

Hang

Bui

null

Nhu

Le

null

join

NHANVIEN

PHONGBAN

Vinh

Pham

Quan ly

MANV=TRPHG

SELECT TENNV, HONV, TENPHG

FROM NHANVIEN, PHONGBAN

SELECT TENNV, HONV, TENPHG

WHERE MANV=TRPHG

FROM NHANVIEN LEFT JOIN PHONGBAN ON MANV=TRPHG

10/4/2012 321 10/4/2012 Nguyễn Thị Thúy Loan Nguyễn Thị Thúy Loan 322 322

Ví dụ

Cấu trúc CASE

 Cho phép kiểm tra điều kiện và xuất thông

 Tìm họ tên các nhân viên và tên các đề án

tin theo từng trường hợp

nhân viên tham gia nếu có.

 Cú pháp

PHANCONG join DEAN

join

NHANVIEN

CASE

MA_NVIEN=MANV

WHEN THEN

WHEN THEN

[ELSE ]

END

81

10/4/2012 323 10/4/2012 324 Nguyễn Thị Thúy Loan Nguyễn Thị Thúy Loan

Ví dụ

Ví dụ

 Cho biết họ tên các nhân viên và năm về

 Cho biết họ tên các nhân viên đã đến tuổi

hưu.

về hưu (nam 60 tuổi, nữ 55 tuổi).

SELECT HONV, TENNV

FROM NHANVIEN

WHERE YEAR(GETDATE()) – YEAR(NGSINH) >= (CASE PHAI

WHEN 'Nam' THEN 60

WHEN 'Nu' THEN 55

END)

10/4/2012 325 10/4/2012 326 Nguyễn Thị Thúy Loan Nguyễn Thị Thúy Loan

Ví dụ

Ví dụ

 Hiển thị danh sách (Malop, Tenlopmoi và

 Hiển thị danh sách các vật tư trong bảng

sĩ số) các lớp trong bảng LOP theo tên

VATTU, thông tin bổ sung thêm chuỗi

mới. Với tên mới là 1 kí tự bên phải của

ghi chú, tùy thuộc vào giá trị của cột

Tenlop (t (cao dang ky thuat), c(cao dang

phần trăm giá bán. (<20 lời ít, 20<= and

tin hoc), còn lại là cao dang bao chi.

<=40 lời nhiều, >40 rất lời)

82

10/4/2012 327 10/4/2012 328 Nguyễn Thị Thúy Loan Nguyễn Thị Thúy Loan

Kết luận

CSDL Quản lý đề tài NCKH

 GV(MAGV,HOTEN,LUONG,PHAI,NGSINH,

SELECT

SONHA,DUONG,QUAN,TPHO,GVQLCM,MABM)

FROM

 GV_ĐT(MAGV,ĐTHOAI)  BOMON(MABM,TENBM,PHG,ĐT,TRG_BM,MAKH,

[WHERE <điều kiện>]

NGNHANCHUC)

 KHOA(MAKH,TENKH,NAMTL,PHONG,ĐT,

[GROUP BY ]

TRG_KH, NGNHANCHUC)

[HAVING <điều kiện trên nhóm>]

 ĐETAI(MAĐT,TENĐT,KINHPHI,CAPQL,NGAYBD,

NGAYKT,MACĐ,GVCNĐT)

[ORDER BY ]

 CHUĐE(MACĐ,TENCĐ)  CONGVIEC(MAĐT,STT,TENCV,NGBĐ,NGKT)  T_GIA_ĐT(MAGV,MAĐT,STT,PHUCAP,KETQUA)

10/4/2012 329 10/4/2012 330 Nguyễn Thị Thúy Loan Nguyễn Thị Thúy Loan

Khung nhìn

Khung nhìn

 Bảng là một quan hệ được tổ chức lưu trữ

 Tại sao phải sử dụng khung nhìn?

vật lý trong CSDL.

o Che dấu tính phức tạp của dữ liệu

 Khung nhìn cũng là một quan hệ

o Đơn giản hóa các câu truy vấn

o Không được lưu trữ vật lý (bảng ảo)

o Hiển thị dữ liệu dưới dạng tiện dụng nhất

o Không chứa dữ liệu

o An toàn dữ liệu

o Được định nghĩa từ những bảng khác

o Có thể truy vấn hay cập nhật thông qua

khung nhìn

83

10/4/2012 331 10/4/2012 332 Nguyễn Thị Thúy Loan Nguyễn Thị Thúy Loan

Định nghĩa khung nhìn

Định nghĩa khung nhìn

 Cú pháp

 Bảng ảo này có

CREATE VIEW AS

o Danh sách thuộc tính trùng với các thuộc

tính trong mệnh đề SELECT

DROP VIEW

o Số dòng phụ thuộc vào điều kiện ở mệnh

đề WHERE

o Dữ liệu được lấy từ các bảng ở mệnh đề

FROM

10/4/2012 333 10/4/2012 334 Nguyễn Thị Thúy Loan Nguyễn Thị Thúy Loan

Ví dụ

Truy vấn trên khung nhìn

CREATE VIEW NV_P5 AS

 Tuy không chứa dữ liệu nhưng có thể

SELECT MANV, HONV, TENLOT, TENVN

FROM NHANVIEN

thực hiện các câu truy vấn trên khung nhìn

WHERE PHG=5

CREATE VIEW TONGLNG_SLNV_PB AS

SELECT TENNV

SELECT MAPHG, TENPHG, COUNT(*) AS SLNV,

FROM NV_P5

SUM(LUONG) AS TONGLNG

WHERE HONV LIKE ‘Nguyen’

FROM NHANVIEN, PHONGBAN

WHERE PHG=MAPHG

GROUP BY TENPHG, MAPHG

84

10/4/2012 335 10/4/2012 336 Nguyễn Thị Thúy Loan Nguyễn Thị Thúy Loan

Truy vấn trên khung nhìn

Cập nhật trên khung nhìn

 Có thể viết câu truy vấn dữ liệu từ khung

 Có thể dùng các câu

lệnh

INSERT,

nhìn và bảng

DELETE và UPDATE cho các khung nhìn

đơn giản

SELECT HONV, TENVN, TENDA, THOIGIAN

o Khung nhìn được xây dựng trên 1 bảng và

FROM NV_P5, PHANCONG, DEAN

có khóa chính của bảng

WHERE MANV=MA_NVIEN AND SODA=MADA

10/4/2012 337 10/4/2012 338 Nguyễn Thị Thúy Loan Nguyễn Thị Thúy Loan

Cập nhật trên khung nhìn

Cập nhật trên khung nhìn

 Sửa lại họ cho nhân viên mã ‘123456789’

 Không thể cập nhật dữ liệu nếu

ở phòng 5 là ‘Pham’

o Khung nhìn có dùng từ khóa DISTINCT

o Khung nhìn có sử dụng các hàm kết hợp

UPDATE NV_P5

o Khung nhìn có mệnh đề SELECT mở rộng

SET HONV=‘Pham’

o Khung nhìn được xây dựng từ bảng có RB

WHERE MANV= ‘123456789’

trên cột

o Khung nhìn được xây dựng từ nhiều bảng

85

10/4/2012 339 10/4/2012 340 Nguyễn Thị Thúy Loan Nguyễn Thị Thúy Loan

Chỉ mục (tt)

Chỉ mục  Chỉ mục trên thuộc tính A là một cấu trúc

dữ liệu làm cho việc tìm kiếm mẫu tin có

 Cú pháp  CREATE INDEX ON

()

chứa A hiệu quả hơn.

SELECT *

Đọc 10.000 bộ

FROM NHANVIEN

 DROP INDEX  Ví dụ  CREATE INDEX PHG_IND ON

WHERE PHG=5 AND PHAI=‘Nu’

Đọc 200 bộ

NHANVIEN(PHG)

Bảng NHANVIEN có 10.000 bộ

 CREATE INDEX PHG_PHAI_IND ON

Có 200 nhân viên làm việc cho phòng 5

NHANVIEN(PHG, PHAI)

10/4/2012 341 10/4/2012 342 Nguyễn Thị Thúy Loan Nguyễn Thị Thúy Loan

Chỉ mục

Ví dụ

 Xét quan hệ

 Nhận xét

PHANCONG(MA_NVIEN, SODA, THOIGIAN)

o Tìm kiếm nhanh trong trường hợp so sánh

với hằng số và phép kết

 Giả sử

o Làm chậm đi các thao tác thêm, xóa và

o PHANCONG được lưu trữ trong 10 block

 Chi phí để đọc

toàn bộ dữ liệu của

sửa

PHANCONG là 10

o Tốn chi phí

 Lưu trữ chỉ mục

 Truy xuất đĩa nhiều

86

10/4/2012 343 10/4/2012 344 Nguyễn Thị Thúy Loan Nguyễn Thị Thúy Loan

Ví dụ

Ví dụ  Giả sử có 3 thao tác được thực hiện

o Trung bình một nhân viên tham gia 3 đề án

thường xuyên

và một đề án có khoảng 3 nhân viên làm

SELECT SODA, THOIGIAN

o Q1

 Dữ liệu được trải đều trong 10 block

FROM PHANCONG

 Chi phí để tìm một nhân viên hay một đề án

WHERE MA_NVIEN=‘123456789’

là 3

SELECT MANV

o Q2

FROM PHANCONG

o Khi sử dụng chỉ mục

WHERE SODA=1 AND THOIGIAN=20.5

 Chi phí đọc hay cập nhật chỉ mục

INSERT INTO PHANCONG

o Thao tác thêm cần 2 lần truy xuất đĩa

VALUES ( 123456789’, 1, 20.5)

o Q3

10/4/2012 345 10/4/2012 346 Nguyễn Thị Thúy Loan Nguyễn Thị Thúy Loan

Ví dụ

Bài tập

 Bảng so sánh chi phí

Thao tác

Chỉ mục trên MA_NVIEN

Chỉ mục trên SODA

Không có chỉ mục

Chỉ mục trên cả 2 thuộc tính

4

10

4

10

Q1

4

4

10

10

Q2

6

4

4

2

Q3

Chí phí TB

2 + 8p1 + 8p2

4 + 6p2

4 + 6p1

6 - 2p1 – 2p2

Khoảng thời gian thực hiện Q1 là p1

Khoảng thời gian thực hiện Q2 là p2

Khoảng thời gian thực hiện Q3 là 1 - p1 - p2

87

10/4/2012 347 10/4/2012 348 Nguyễn Thị Thúy Loan Nguyễn Thị Thúy Loan

Nội dung chi tiết

Chương V:

 Đại số quan hệ

ĐẠI SỐ QUAN HỆ

 Phép toán tập hợp

 Phép chọn, phép chiếu

 Phép tích Cartesian, phép kết

 Phép chia

ThS. Nguyễn Thị Thúy Loan

 Các phép toán khác

 Các thao tác cập nhật trên quan hệ

Nguồn: Bài giảng Khoa CNTT ĐHKHTN

10/4/2012 350 Nguyễn Thị Thúy Loan

Giới thiệu

Giới thiệu

 Xét một số xử lý trên quan hệ NHANVIEN

o Thêm mới một nhân viên

o Chuyển nhân viên có tên là “Tùng” sang

TENNV

HONV

NGSINH

DCHI

PHAI

LUONG

PHONG

phòng số 1

638 NVC Q5

Nam

40000

Tung Tung

Nguyen Nguyen

12/08/1955 12/08/1955

1 5

332 NTH Q1

25000

Nu

Hang Hang

Bui Bui

07/19/1968 07/19/1968

4

o Cho biết họ tên và ngày sinh các nhân viên

291 HVH QPN

43000

Nu

4

Nhu Nhu

Le Le

06/20/1951 06/20/1951

Ba Ria VT

38000

Nam

5

Hung Hung

Nguyen Nguyen

09/15/1962 09/15/1962

có lương trên 20000

450 TV HN

55000

Nam

1

Quang Quang

Pham Pham

11/10/1937 11/10/1937

88

10/4/2012 10/4/2012 352 Nguyễn Thị Thúy Loan Nguyễn Thị Thúy Loan 351 351

Giới thiệu (tt)

Giới thiệu (tt)

 Có 2 loại xử lý

 Thực hiện các xử lý

o Làm thay đổi dữ liệu (cập nhật)

o Đại số quan hệ (Relational Algebra)

 Thêm mới, xóa và sửa

 Biểu diễn câu truy vấn dưới dạng biểu thức

o Không làm thay đổi dữ liệu (rút trích)

o Phép tính quan hệ (Relational Calculus)

 Truy vấn (query)

 Biểu diễn kết quả

o SQL (Structured Query Language)

10/4/2012 10/4/2012 354 Nguyễn Thị Thúy Loan Nguyễn Thị Thúy Loan 353 353

Nhắc lại

Nhắc lại

 Đại số

 Trong số học

o Toán tử (operator)

o Toán tử: +, -, *, /

o Toán hạng (operand)

o Toán hạng - biến (variables): x, y, z

o Hằng (constant)

o Biểu thức

 (x+7) / (y-3)

 (x+y)*z and/or (x+7) / (y-3)

89

10/4/2012 355 10/4/2012 356 Nguyễn Thị Thúy Loan Nguyễn Thị Thúy Loan

Đại số quan hệ

Đại số quan hệ

o Rút trích 1 phần của quan hệ

 Biến là các quan hệ

 Chọn  (selection)

o Tập hợp (set)

 Chiếu  (projection)

 Toán tử là các phép toán (operations)

o Kết hợp các quan hệ

o Trên tập hợp

 Tích Cartesian  (Cartesian product)

 Hội  (union)

 Kết (join)

 Giao  (intersec)

o Đổi tên 

 Trừ  (difference)

10/4/2012 357 10/4/2012 Nguyễn Thị Thúy Loan Nguyễn Thị Thúy Loan 358 358

Đại số quan hệ (tt)

Phép toán tập hợp

 Quan hệ là tập hợp các bộ

 Hằng số là thể hiện của quan hệ

o Phép hội R  S

 Biểu thức

o Phép giao R  S

o Được gọi là câu truy vấn

o Phép trừ R  S

o Là chuỗi các phép toán đại số quan hệ

o Kết quả trả về là một thể hiện của quan hệ

90

10/4/2012 359 10/4/2012 360 Nguyễn Thị Thúy Loan Nguyễn Thị Thúy Loan

Phép toán tập hợp

Phép toán tập hợp (tt)

 Tính khả hợp (Union Compatibility)

 Ví dụ

o Hai lược đồ quan hệ R(A1, A2, …, An) và

NHANVIEN

TENNV

NGSINH

PHAI

THANNHAN

TENTN

NG_SINH

PHAITN

Tung

12/08/1955

Nam

Trinh

04/05/1986

Nu

Hang

07/19/1968

Nu

Khang

10/25/1983

Nam

Nhu

06/20/1951

Nu

Phuong

05/03/1958

Nu

S(B1, B2, …, Bn) là khả hợp nếu  Cùng bậc n

Hung

09/15/1962

Nam

Minh

02/28/1942

Nam

Chau

12/30/1988

Nu

 Và có DOM(Ai)=DOM(Bi), i[1,n]

 Kết quả của , , và  là một quan hệ có

cùng tên thuộc tính với quan hệ đầu tiên

Bậc n=3 DOM(TENNV) = DOM(TENTN) DOM(NGSINH) = DOM(NG_SINH) DOM(PHAI) = DOM(PHAITN)

(R)

10/4/2012 361 10/4/2012 362 Nguyễn Thị Thúy Loan Nguyễn Thị Thúy Loan

Phép hội

Phép hội

 Cho 2 quan hệ R và S khả hợp

 Ví dụ

 Phép hội của R và S

R  S = { t / tR  tS }

o Ký hiệu R  S

A

B

R  S

R

S

A

B

A

B

o Là một quan hệ gồm các bộ thuộc R hoặc

1

1

2

2

2

3

thuộc S, hoặc cả hai (các bộ trùng lắp chỉ

1

1

2

được giữ một bộ)

3

91

10/4/2012 363 10/4/2012 364 Nguyễn Thị Thúy Loan Nguyễn Thị Thúy Loan

Phép giao

Phép giao

 Cho 2 quan hệ R và S khả hợp

 Ví dụ

 Phép giao của R và S

R  S = { t / tR  tS }

o Ký hiệu R  S

R

S

A

B

A

B

A

B

R  S

o Là một quan hệ gồm các bộ thuộc R đồng

1

2

2

2

3

thời thuộc S

1

10/4/2012 365 10/4/2012 366 Nguyễn Thị Thúy Loan Nguyễn Thị Thúy Loan

Phép trừ

Phép trừ

 Cho 2 quan hệ R và S khả hợp

 Ví dụ

 Phép giao của R và S

R  S = { t / tR  tS }

o Ký hiệu R  S

R R

S S

A A

B B

A A

B B

A

B

R  S

o Là một quan hệ gồm các bộ thuộc R và

1 1

2 2

1

 

 

2 2

3 3

1

 

 

không thuộc S.

1 1

 

92

10/4/2012 367 10/4/2012 368 Nguyễn Thị Thúy Loan Nguyễn Thị Thúy Loan

Phép chọn

Ví dụ

 Được dùng để lấy ra các bộ của quan hệ R

R  (S  T) = (R  S)  T

R  (S  T) = (R  S)  T

 Các bộ được chọn phải thỏa mãn điều kiện

chọn P

R

A

B

S

A

B

T

A

B

1

2

 Ký hiệu

1

 P (R)

2

3

2

1

3

10/4/2012 369 10/4/2012 370 Nguyễn Thị Thúy Loan Nguyễn Thị Thúy Loan

Phép chọn

Phép chọn (tt)

 P là biểu thức gồm các mệnh đề có dạng

 Kết quả trả về là một quan hệ

o

o Có cùng danh sách thuộc tính với R

số>

o Có số bộ luôn ít hơn hoặc bằng số bộ của

o

R.

thuộc tính>

o gồm  ,  ,  ,  ,  , 

o Các mệnh đề được nối lại nhờ các phép  ,

 , 

93

10/4/2012 371 10/4/2012 372 Nguyễn Thị Thúy Loan Nguyễn Thị Thúy Loan

Phép chọn (tt)

Phép chọn (tt)

 Phép chọn có tính giao hoán

 Ví dụ

 p1 ( p2 (R)) =  p2 ( p1 (R)) =  p1  p2 (R)

 (A=B)(D>5) (R)

R

A

B

C

D

1

7

D

A

B

C

5

7

7

1

12

3

10

23

10

23

10/4/2012 373 10/4/2012 374 Nguyễn Thị Thúy Loan Nguyễn Thị Thúy Loan

Ví dụ 1

Các tính chất

 Giao hoán

 Cho biết các nhân viên ở phòng số 4

R  S = S  R

o Quan hệ: NHANVIEN

R  S = S  R

o Thuộc tính: PHG

 Kết hợp

o Điều kiện: PHG=4

R  (S  T) = (R  S)  T

 PHG=4 (NHANVIEN)

R  (S  T) = (R  S)  T

94

10/4/2012 375 10/4/2012 376 Nguyễn Thị Thúy Loan Nguyễn Thị Thúy Loan

Ví dụ 2

Ví dụ 2

 Tìm các nhân viên có lương trên 25000 ở

phòng 4 hoặc các nhân viên có lương trên

30000 ở phòng 5

 (LUONG>25000  PHG=4)  (LUONG>30000  PHG=5) (NHANVIEN)

o Quan hệ: NHANVIEN

o Thuộc tính: LUONG, PHG

o Điều kiện:

 LUONG>25000 và PHG=4 hoặc

 LUONG>30000 và PHG=5

10/4/2012 377 10/4/2012 378 Nguyễn Thị Thúy Loan Nguyễn Thị Thúy Loan

Phép chiếu

Phép chiếu

 Ví dụ

 Được dùng để lấy ra một vài cột của quan

hệ R.

C

R

A

B

A

C

A1, A2, …, Ak(R)

 Ký hiệu:

1

10

1

1

20

1

A,C (R)

 Kết quả trả về là một quan hệ

1

30

1

40

2

2

o Có k thuộc tính

o Có số bộ luôn ít hơn hoặc bằng số bộ của

R.

95

10/4/2012 379 10/4/2012 380 Nguyễn Thị Thúy Loan Nguyễn Thị Thúy Loan

Phép chiếu (tt)

Ví dụ 3

 Phép chiếu không có tính giao hoán

 Cho biết họ tên và lương của các nhân

viên

X,Y (R) = X (Y (R))

o Quan hệ: NHANVIEN

o Thuộc tính: HONV, TENNV, LUONG

A1, A2, …, An(A1, A2, …, Am(R)) = A1, A2, …, An (R) , với n  m

HONV,TENNV,LUONG (NHANVIEN)

10/4/2012 381 10/4/2012 382 Nguyễn Thị Thúy Loan Nguyễn Thị Thúy Loan

Phép chiếu tổng quát

Phép chiếu tổng quát

 Mở rộng phép chiếu bằng cách cho phép

sử dụng các phép toán số học trong danh

 Ký hiệu F1, F2, …, Fn (E) o E là biểu thức ĐSQH

sách thuộc tính.

o F1, F2, …, Fn là các biểu thức số học liên

quan đến.

 Hằng số

 Thuộc tính trong E

96

10/4/2012 383 10/4/2012 384 Nguyễn Thị Thúy Loan Nguyễn Thị Thúy Loan

Phép chiếu tổng quát (tt)

Chuỗi các phép toán

 Ví dụ

 Kết hợp các phép toán đại số quan hệ

o Cho biết họ tên của các nhân viên và lương

của họ sau khi tăng 10%.

P (A1, A2, …, Ak (R))

o Lồng các biểu thức lại với nhau A1, A2, …, Ak (P (R)) o Thực hiện từng phép toán một

HONV, TENNV, LUONG*1.1 (NHANVIEN)

 B1

P (R) A1, A2, …, Ak (Quan hệ kết quả ở B1)

 B2

Cần đặt tên cho quan hệ

10/4/2012 385 10/4/2012 386 Nguyễn Thị Thúy Loan Nguyễn Thị Thúy Loan

Phép gán

CSDL ví dụ

 NHANVIEN (HONV, TENLOT, TENNV, MANV,

 Được sử dụng để nhận lấy kết quả trả về

NGSINH, DCHI, PHAI, LUONG, MA_NQL, PHG).

của một phép toán

 PHONGBAN (TENPHG, MAPHG, TRPHG,

o Thường là kết quả trung gian trong chuỗi

NG_NHANCHUC).

các phép toán

 DIADIEM_PHG (MAPHG, DIADIEM)  THANNHAN(MA_NVIEN, TENTN, PHAI,

 Ký hiệu 

NGSINH, QUANHE).

 Ví dụ

o B1

 DEAN (TENDA, MADA, DDIEM_DA, PHONG).  PHANCONG (MA_NVIEN, SODA, THOIGIAN).

S  P (R) KQ  A1, A2, …, Ak (S)

o B2

97

10/4/2012 387 10/4/2012 388 Nguyễn Thị Thúy Loan Nguyễn Thị Thúy Loan

Phép đổi tên

Ví dụ 7

 Được dùng để đổi tên

 Cho biết họ và tên nhân viên làm việc ở

o Quan hệ: Xét quan hệ R(B, C, D)

phòng số 4

o S(R) : Đổi tên quan hệ R thành S

o Quan hệ: NHANVIEN

o X, C, D (R) : Đổi tên thuộc tính B thành X

o Thuộc tính: HONV, TENNV

o Thuộc tính:

o Điều kiện: PHG=4

o Đổi tên quan hệ R thành S và thuộc tính B

thành X: S(X,C,D)(R)

10/4/2012 389 10/4/2012 390 Nguyễn Thị Thúy Loan Nguyễn Thị Thúy Loan

Phép tích Cartesian

Ví dụ 7

 Được dùng để kết hợp các bộ của các

 C1:

quan hệ lại với nhau

 Ký hiệu: R  S

HONV, TENNV (PHG=4 (NHANVIEN))  C2:

NV_P4  PHG=4 (NHANVIEN) KQ  HONV, TENNV (NV_P4)

KQ(HO, TEN)  HONV, TENNV (NV_P4) KQ(HO, TEN) (HONV, TENNV (NV_P4))

98

10/4/2012 391 10/4/2012 392 Nguyễn Thị Thúy Loan Nguyễn Thị Thúy Loan

Phép tích Cartesian

Phép tích Cartesian (tt)

 Kết quả trả về là một quan hệ Q

 Ví dụ

R  S

R

A

B

o Mỗi bộ của Q là tổ hợp giữa 1 bộ trong R và

D

X

C

A

B

1

1 bộ trong S.

2

+

10

1

+

10

1

o Nếu R có u bộ và S có v bộ thì Q sẽ có u  v

-

20

1

D D

S S

X B

C C

-

10

1

+

10

2

bộ.

+ +

10 10

 

+

10

2

+ +

10 10

 

-

20

2

o Nếu R có n thuộc tính và S có m thuộc tính

20 20

- -

 

-

10

2

10 10

- -

 

thì Q sẽ có n + m thuộc tính (R+  S+   )

(X,C,D) (S)

10/4/2012 393 10/4/2012 394 Nguyễn Thị Thúy Loan Nguyễn Thị Thúy Loan

Phép tích Cartesian (tt)

Ví dụ

Diadiem_phg Diadiem

 Ví dụ

Phongban Mapb

Tenpb

Trphg

unambiguous

R

A

B

5

Nghien cuu

3334

D

S.B

C

R.B

A

R  S

1

+

10

1

Dieu hanh

2

+

10

1

4 1 Quan ly

9879 8886

Mp 1 TP HCM 4 HA NOI 5 NHA TRANG 5 VUNG TAU 5 TP HCM

-

20

1

-

10

1

D

S

B

C

+

10

2

 Temp

(Maphg, Tenphg, Trphg, Mp,

+

10

+

10

2

+

10

-

20

2

Diadiem)  Phongban  Diadiem_phg

20

-

-

10

2

10

-

 Kết quả trả về sẽ có 15 bộ, nếu có 3 bộ trong

Phongban và 5 bộ trong Diadiem_phg

99

10/4/2012 395 10/4/2012 396 Nguyễn Thị Thúy Loan Nguyễn Thị Thúy Loan

Phép tích Cartesian (tt)

Mapb Tenphg

Trphg Mp Diadiem

 Thông

thường

theo sau phép

tích

Cartesian là phép chọn

R  S

A=S.B (R  S)

D

D

S.B

C

S.B

C

A

R.B

R.B

A

+

+

10

10

1

1

+

+

10

10

2

1

-

-

20

20

2

1

-

10

1

+

10

2

+

10

2

-

20

2

-

10

2

5 4 1 5 4 1 5 4 1 5 4 1 5 4 1

Nghien cuu Dieu hanh Quan ly Nghien cuu Dieu hanh Quan ly Nghien cuu Dieu hanh Quan ly Nghien cuu Dieu hanh Quan ly Nghien cuu Dieu hanh Quan ly

3334 9879 8886 3334 9879 8886 3334 9879 8886 3334 9879 8886 3334 9879 8886

1 1 1 4 4 4 5 5 5 5 5 5 5 5 5

TP HCM TP HCM TP HCM HA NOI HA NOI HA NOI VUNG TAU VUNG TAU VUNG TAU NHA TRANG NHA TRANG NHA TRANG TP HCM TP HCM TP HCM

10/4/2012 398 Nguyễn Thị Thúy Loan

Ví dụ 8

Ví dụ 8 (tt)

 Với mỗi phòng ban, cho biết thông tin của

 B1: Tích Cartesian PHONGBAN và

người trưởng phòng

NHANVIEN

o Quan hệ: PHONGBAN, NHANVIEN

PB_NV  (NHANVIEN  PHONGBAN)

o Thuộc tính: TRPHG, MAPHG, TENNV,

HONV, …

 B2: Chọn ra những bộ thỏa RPHG=MANV

KQ  TRPHG=MANV(PB_NV)

100

10/4/2012 399 10/4/2012 400 Nguyễn Thị Thúy Loan Nguyễn Thị Thúy Loan

Ví dụ 9

Ví dụ 9 (tt)

 Cho biết lương cao nhất trong công ty

 B1: Chọn ra những lương không phải là

o Quan hệ: NHANVIEN

lớn nhất

o Thuộc tính: LUONG

TENNV

HONV

LUONG

LUONG

Tung

Nguyen

40000

40000

Hang

Bui

25000

25000

Nhu

Le

43000

43000

Hung

Nguyen

38000

38000

R1  (LUONG (NHANVIEN)) R2  NHAN_VIEN.LUONG < R1.LUONG(NHANVIEN  R1) R3  NHAN_VIEN.LUONG(R2) B2: Lấy tập hợp lương trừ đi lương trong R3

KQ  R1  R3

10/4/2012 401 10/4/2012 402 Nguyễn Thị Thúy Loan Nguyễn Thị Thúy Loan

Ví dụ 10

Ví dụ 10

 Cho biết các phòng ban có cùng địa điểm

Phòng nào có địa điểm nằm trong trong tập hợp đó?

Phòng 5 có tập hợp những địa điểm nào?

với phòng số 5

MAPHG

DIADIEM

MAPHG

DIADIEM

o Quan hệ: DIADIEM_PHG

1

1

TP HCM

TP HCM

4

4

HA NOI

HA NOI

o Thuộc tính: DIADIEM, MAPHG

5

5

VUNGTAU

VUNGTAU

5

5

NHATRANG

NHATRANG

o Điều kiện: MAPHG=5

5

TP HCM

5

TP HCM

101

10/4/2012 403 10/4/2012 404 Nguyễn Thị Thúy Loan Nguyễn Thị Thúy Loan

Ví dụ 10 (tt)

Phép kết

 B1: Tìm các địa điểm của phòng 5

 Được dùng để tổ hợp 2 bộ có liên quan từ

2 quan hệ thành 1 bộ

DD_P5(DD)  DIADIEM (MAPHG=5 (DIADIEM_PHG))  B2: Lấy ra các phòng có cùng địa điểm với

 Ký hiệu R S

DD_P5

o R(A1, A2, …, An) và S(B1, B2, …, Bm)  Kết quả của phép kết là một quan hệ Q

o Có n + m thuộc tính Q(A1, A2, …, An, B1,

R1  MAPHG5 (DIADIEM_PHG) R2  DIADIEM=DD (R1  DD_P5) KQ  MAPHG(R2)

B2, …, Bm)

10/4/2012 405 10/4/2012 406 Nguyễn Thị Thúy Loan Nguyễn Thị Thúy Loan

Phép kết

Phép kết (tt)

o Mỗi bộ của Q là tổ hợp của 2 bộ trong R và

 Phân loại

S, thỏa mãn một số điều kiện kết nào đó

o Kết theta (theta join) là phép kết có điều

kiện

 Ký hiệu R C S  C gọi là điều kiện kết trên thuộc tính

 Có dạng Ai  Bj  Ai là thuộc tính của R, Bj là thuộc tính của S  Ai và Bj có cùng miền giá trị   là phép so sánh , , , , , 

o Kết bằng (equi join) khi C là điều kiện so

sánh bằng

102

10/4/2012 407 10/4/2012 408 Nguyễn Thị Thúy Loan Nguyễn Thị Thúy Loan

Phép kết (tt)

Phép kết (tt)

o Kết tự nhiên (natural join)

 Ví dụ phép kết theta

 Ký hiệu R S hay R  S

R B

 R+  S+  

C

R

S

A

B

D

E

A

B

C

D

E

3

1

3

1

1

2

3

3

1

2

 Kết quả của phép kết bằng bỏ bớt đi 1 cột

6

2

1

2

3

6

2

4

5

6

4

5

6

6

2

7

8

9

giống nhau

R C S = C(R  S)

10/4/2012 409 10/4/2012 410 Nguyễn Thị Thúy Loan Nguyễn Thị Thúy Loan

Phép kết (tt)

Phép kết (tt)

 Ví dụ phép kết bằng

 Ví dụ phép kết tự nhiên

R C=D S

R S

D

E

C

R

S

D

E

A

B

A

B

C

C

R

S

A

B

C

D

3

1

D

3

3

1

1

1

2

3

C

2

A

B

6

2

6

2

4

5

6

6

4

5

3

1

3

1

2

1

2

3

1

7

8

9

6

2

4

5

6

2

4

5

6

7

8

9

R C=S.C S

S.C

D

C

A

B

R

S S

S.C C

D D

A

B

C

3

1

3

1

3 3

1

1 1

2

3

2

6

2

6

2 2

4

5

6

4

5

6 6

7

8

9

(S.C,D) S

103

10/4/2012 411 10/4/2012 412 Nguyễn Thị Thúy Loan Nguyễn Thị Thúy Loan

Ví dụ 11

Ví dụ 11

 Cho biết nhân viên có lương lớn hơn

 NHAN_VIEN(HONV, TENNV, MANV, …,

lương của nhân viên ‘Tùng’

LUONG, PHG)

o Quan hệ: NHANVIEN

o Thuộc tính: LUONG

 R1(LG)  LUONG (TENNV=‘Tung’ (NHANVIEN))  KQ  NHAN_VIEN LUONG>LG R1  KQ(HONV,TENNV,MANV, …, LUONG, LG)

10/4/2012 413 10/4/2012 414 Nguyễn Thị Thúy Loan Nguyễn Thị Thúy Loan

Ví dụ 12

Ví dụ 13

 Với mỗi phòng ban hãy cho biết các địa

 Với mỗi nhân viên, hãy cho biết thông tin

điểm của phòng ban đó

của phòng ban mà họ đang làm việc

o Quan hệ: PHONGBAN, DDIEM_PHG

o Quan hệ: NHANVIEN, PHONGBAN

104

10/4/2012 415 10/4/2012 416 Nguyễn Thị Thúy Loan Nguyễn Thị Thúy Loan

Phép chia

Tập đầy đủ các phép toán ĐSQH

 Định nghĩa: R là quan hệ n ngôi và S là

 Tập các phép toán , , , ,  được gọi

quan hệ m ngôi (n > m và S  ), có m

là tập đầy đủ các phép toán ĐSQH

thuộc tính chung (giống nhau về mặt ngữ

o Nghĩa là các phép toán có thể được biểu

diễn qua chúng

nghĩa, hoặc các thuộc tính có thể so sánh

o Ví dụ

được) giữa R và S.

 RS = RS  ((RS)  (SR))

 R CS = C(RS)

10/4/2012 417 10/4/2012 418 Nguyễn Thị Thúy Loan Nguyễn Thị Thúy Loan

Phép chia

Phép chia (tt)

R

 Phép chia hai quan hệ R và S, ký hiệu là

A1

A2

A4

A5

A3

C

G

A

D

B

R  S, là một quan hệ Q có n – m ngôi

E

F

A

D

B

được định nghĩa như sau:

E

F

B

E

C

Q = R ÷ S

C

G

E

C

G

Q = R  S = {t / u S, (t,u)  R}

E

F

E

C

G

A1 A2 A3

G

C

A

E

B

A

B

D

S

E

G

C

A5

A4

G

C

F

E

105

10/4/2012 419 10/4/2012 420 Nguyễn Thị Thúy Loan Nguyễn Thị Thúy Loan

Ví dụ

Phép chia (tt)

 Cho biết tất cả mã sinh viên có điểm

 Ví dụ

R  S

CSDL là 8 và điểm CTDL là 7.

R

E

C

D

S

D

E

A

B

C

A

B

Q3

KetQuaHT

Q2

1

a

a

a

1

a

1

a

a

1

b

a

MaSV

MaSV MaMon Diem

MaMon Diem

1

b

a

01

CSDL

8

01

CSDL

8

1

a

a

03

CTDL

7

01

CTDL

7

3

b

a

1

a

a

02

CSDL

8

1

b

a

02

CTDL

9

1

b

a

03

CSDL

8

03

CTDL

7

10/4/2012 421 10/4/2012 422 Nguyễn Thị Thúy Loan Nguyễn Thị Thúy Loan

Ý nghĩa của phép chia

Ý nghĩa của phép chia

R A

B

R A

B

a1

b1

a1

b1

 Tách quan hệ R thành từng

 Kết quả trả về trong T là

a1

b2

a1

b2

S B b1 b2 b3

S B b1 b2 b3

a1

b3

a1

b3

phần căn cứ vào các giá trị

a1

b4

a1

b4

a2

b1

a2

b1

của A tương ứng; với mỗi

mỗi ai sao cho tất cả các giá trị của B trong S kết

a2

b3

a2

b3

a3

b2

a3

b2

thành các bộ

T  R ÷ S A a1 a4

a3

b3

a3

b3

a3

b4

a3

b4

giá trị ai gắn với một tập giá trị của B trong R

hợp với ai trong R

a4

b1

a4

b1

a4

b2

a4

b2

a4

b3

a4

b3

106

10/4/2012 423 10/4/2012 424 Nguyễn Thị Thúy Loan Nguyễn Thị Thúy Loan

Định nghĩa lại phép chia

Ví dụ 14

S

R

T1

T  R ÷ S

T3

A

 Cho biết mã nhân viên tham gia tất cả các

T1  S A B a1 b1

A B a1 b1

a2

a1 b2

A a1 a4

a3

đề án

B b1 b2 b3

a1 b3

A a1 a2 a3 a4

a1 b4

o Quan hệ: PHANCONG, DEAN

a2 b1

R ÷ S = T tương đương với

a2 b3

o Dean (Tenda, Mada, Ddiem_da, Phong)

a3 b2

o Phancong (Ma_nvien, Soda, Thoigian)

a3 b3

a3 b4

o Thuộc tính: MANV

a4 b1

T1  A (R) T2  T1  S T3  A (T2  R) T  T1  T3

a4 b2

a1 b2 a1 b3 a2 b1 a2 b2 a2 b3 a3 b1 a3 b2 a3 b3 a4 b1 a4 b2 a4 b3

a4 b3

10/4/2012 425 10/4/2012 426 Nguyễn Thị Thúy Loan Nguyễn Thị Thúy Loan

Ví dụ 15

Ví dụ 3

Pc (Ma_nvien, Mada)  Ma_nvien, Soda(Phancong)

Liệt kê mã nhân viên được phân công vào

Da_p4  Mada (Phong = 4 (Dean))

tất cả đề án do phòng 4 chủ trì

 Tìm tất cả các mã đề án do phòng 4 chủ

Mada 10 30

trì. Giả sử có hai đề án là 10, 30

Pc ÷ Da_p4

 Kiểm tra trên quan hệ Phancong (đã bỏ đi

thuộc tính Thoigian) và trả về tất cả các

Ma_nvien 999887777 987987987

mã nhân viên có ghép đầy đủ với hai đề

án có mã là 10 và 30.

Ma_nvien 123456789 123456789 666884444 453453453 453453453 333445555 333445555 333445555 333445555 999887777 999887777 999887777 999887777 987987987 987987987 987987987 987987987 987654321 987654321 10/4/2012 888665555

Mada 1 2 3 1 2 2 3 10 20 3030 1010 1010 3030 30 20 20

107

10/4/2012 427 428 Nguyễn Thị Thúy Loan Nguyễn Thị Thúy Loan

Ví dụ

Hàm kết hợp

 Liệt kê Họ nhân viên, Tên nhân viên tham

 Nhận vào tập hợp các giá trị và trả về một

gia tất cả các dự án do phòng 4 chủ trì:

giá trị đơn

o AVG

o MIN

o MAX

Q1  MANV, MADA (PHANCONG) Q2  MADA (PHG = 4 (DEAN)) Q3  Q1 ÷ Q2

o SUM

Q  HoNV, TenNV (Q3 NHANVIEN)

o COUNT

10/4/2012 429 10/4/2012 430 Nguyễn Thị Thúy Loan Nguyễn Thị Thúy Loan

Hàm kết hợp (tt)

Phép gom nhóm

 Ví dụ

 Được dùng để phân chia quan hệ thành

SUM(B) = 10

nhiều nhóm dựa trên điều kiện gom nhóm

R

A

B

AVG(A) = 1.5

1

2

nào đó.

4

3

MIN(A) = 1

1

2

1

2

MAX(B) = 4

COUNT(A) = 4

108

10/4/2012 431 10/4/2012 432 Nguyễn Thị Thúy Loan Nguyễn Thị Thúy Loan

Phép gom nhóm (tt)

Phép gom nhóm

 Ký hiệu

 Ví dụ

ISUM(C)(R)

G1, G2, …, GnIF1(A1), F2(A2), …, Fn(An)(E)

SUM_C

A

B

C

R

o E là biểu thức ĐSQH

27

7

2

7

4

o G1, G2, …, Gn là các thuộc tính gom nhóm

3

2

10

2

AISUM(C)(R)

o F1, F2, …, Fn là các hàm

SUM_C

o A1, A2, …, An là các thuộc tính tính toán

14

3

trong hàm F

10

10/4/2012 433 10/4/2012 434 Nguyễn Thị Thúy Loan Nguyễn Thị Thúy Loan

Ví dụ 16

Ví dụ 17

 Tính số lượng nhân viên và lương trung

 Tính số lượng nhân viên và lương trung

bình của cả công ty

bình của từng phòng ban.

109

10/4/2012 435 10/4/2012 436 Nguyễn Thị Thúy Loan Nguyễn Thị Thúy Loan

Phép kết ngoài

Quan hệ đơn vị:

Phép kết ngoài  Mở rộng phép kết để tránh mất mát thông

Mã đơn vị

10002

Tên đơn vị Trường kỹ thuật nghiệp vụ máy tính

Loại 3

tin.

10003

Phòng quản lý hành chánh

2

10022

Văn phòng đại diện thanh niên

2

o Thực hiện phép kết

10070 10071

Ban quản lý vốn sinh viên Lực lượng quản lý thị trường

5 5

o Lấy thêm các bộ không thỏa điều kiện kết

10900

Hội KN quận X

7

 Có 3 hình thức

Tên loại hình

Quan hệ loại đơn vị Loại 2

Hành chánh

o Mở rộng bên trái

Sự nghiệp hoàn toàn Hạch toán độc lập

3 5

o Mở rộng bên phải

Cơ quan đảng

6

o Mở rộng 2 bên

10/4/2012 437 10/4/2012 438 Nguyễn Thị Thúy Loan Nguyễn Thị Thúy Loan

Phép kết nối trái

Phép kết nối trái

Định nghĩa: Giả sử có 2 quan hệ R (A1, A2, …, An) và S(B1, B2, …, Bm), t và u là hai bộ giá trị của R và S. Gọi v là bộ ghép nối u vào

t (hay bộ giá trị t và u được “xếp cạnh nhau”)

tNull = (Null, Null, …, Null) là một bộ đặc biệt của R gồm n giá trị của các thuộc tính A1, A2, …, An đều là không xác định, và uNull = (Null, Null, …, Null) là một bộ đặc biệt của S gồm

và ký hiệu là:

m giá trị của các thuộc tính B1, B2,…, Bm đều là không xác định.

v =(t,u) = (A1, A2, …, An, B1, B2,…, Bm)

110

10/4/2012 439 10/4/2012 440 Nguyễn Thị Thúy Loan Nguyễn Thị Thúy Loan

Phép kết nối trái

Phép kết nối trái

Phép kết nối trái hai quan hệ R với S trên các

MaĐV

Tên đơn vị

Loại Loại

Tên loại hình

thuộc tính A và B với phép so sánh (=) và với

10002 T KT NV môi trường

3 Sự Ng hoàn toàn

3

10003 Phòng QL HC

2 Hành chánh

2

giả thuyết là giá trị cột R[A] có thể so sánh

10022 VP ĐD TN

2 Hành chánh

2

tương đương được với mỗi giá trị của cột

10070 BQL vốn SV

5 Hoạch toán độc lập

5

S[B], được định nghĩa là:

10071 LL QL thị trường

5 HT độc lập

5

A=B

R S = { v =(t,u) | (t R, u  S  t.A  u.B)

10900 Hội KN quận X

Null Null

7

hoặc (t  R, u = uNull, với t.A  S[B])}

10/4/2012 441 10/4/2012 442 Nguyễn Thị Thúy Loan Nguyễn Thị Thúy Loan

Phép kết nối phải

Phép kết nối phải

Phép kết nối phải hai quan hệ R với S trên

Định nghĩa: Vẫn với các quan hệ R,S các

các thuộc tính A và B với phép so sánh (=)

và với giả thuyết là giá trị cột R[A] có thể so

thuộc tính A, B và các bộ giá trị v, t, u, tNull, uNull được xác định như trên.

sánh tương đương được với mỗi giá trị của

cột S[B], được định nghĩa là:

A=B

R S = { v =(t,u) | (t R, u  S  t.A 

u.B) hoặc (t = tNull, u  S , với t.B  R[A])}

111

10/4/2012 443 10/4/2012 444 Nguyễn Thị Thúy Loan Nguyễn Thị Thúy Loan

Ví dụ 18

Phép kết nối phải

 Cho biết họ tên nhân viên và tên phòng

MaĐV Tên đơn vị

Loại Loại Tên loại hình

ban mà họ phụ trách nếu có

10002 T KT NV môi trường

3 Sự Ng hoàn toàn

3

o Quan hệ: NHANVIEN, PHONGBAN

10003 Phòng QL HC

2 Hành chánh

2

10022 VP ĐD TN

2 Hành chánh

2

o Thuộc tinh: HONV, TENNV, TENPH

10070 BQL vốn SV

5 Hoạch toán độc lập

5

10071 LL QL thị trường

5 HT độc lập

5

Null

Null

Null

6 Cơ quan đảng

10/4/2012 445 10/4/2012 446 Nguyễn Thị Thúy Loan Nguyễn Thị Thúy Loan

Thao tác thêm

Các thao tác cập nhật

 Được diễn đạt

 Nội dung của CSDL có thể được cập nhật

bằng các thao tác

o Rnew  Rold  E o R là quan hệ

o Thêm (insertion)

o E là một biểu thức ĐSQH

o Xóa (deletion)

 Ví dụ

o Sửa (updating)

o Phân công nhân viên có mã 123456789

 Các thao tác cập nhật được diễn đạt

làm thêm đề án mã số 20 với số giờ là 10

thông qua phép toán gán

Rnew  các phép toán trên Rold

PHANCONG PHANCONG (‘123456789’,20, 10)

112

10/4/2012 447 10/4/2012 448 Nguyễn Thị Thúy Loan Nguyễn Thị Thúy Loan

Thao tác xóa

Ví dụ 19

 Xóa những phân công đề án có địa điểm

 Được diễn đạt: Rnew  Rold  E

o R là quan hệ

ở ‘Ha Noi’

o E là một biểu thức ĐSQH

 Ví dụ

o Xóa các phân công đề án của nhân viên

123456789

o PHANCONG  PHANCONG  MANV=‘123456789’(PHANCONG)

10/4/2012 449 10/4/2012 450 Nguyễn Thị Thúy Loan Nguyễn Thị Thúy Loan

Thao tác sửa

Ví dụ 20

 Được diễn đạt: Rnew  F1, F2, …, Fn (Rold)

 Các nhân viên làm việc trên 30 giờ sẽ

được tăng thời gian làm việc lên 1.5 lần,

o R là quan hệ o Fi là biểu thức tính toán cho ra giá trị mới

còn lại tăng lên 2 lần

của thuộc tính

 Ví dụ

o Tăng thời gian làm việc cho tất cả nhân

viên lên 1.5 lần

PHANCONGMA_NVIEN,SODA,THOIGIAN*1.5(PHAN

CONG)

113

10/4/2012 451 10/4/2012 452 Nguyễn Thị Thúy Loan Nguyễn Thị Thúy Loan

Bài tập

Bài tập

Cho lược đồ CSDL như sau:

Câu 1: Cho biết danh sách các khách hàng

(Ten, dc, dt, fax) đã đặt hàng có mã số hàng

 HgHoa(MaHH, TenHH, DVT, SLTon, DG)

01.

 KH(MaKH, TenKH, DC, DT, FAX)

Câu 2: Cho biết các CTDDH của DDH số 111

 DDH(SoDDH, NgLap, MaKH)

gồm (TênHH, DVT, SL, DG, Giamgia)

 CTDDH(SoDDH,MaHH,SL,DG, GiamGia)

10/4/2012 453 10/4/2012 454 Nguyễn Thị Thúy Loan Nguyễn Thị Thúy Loan

Khái niệm RBTV

Chương VI:

Định nghĩa:

 Là 1 điều kiện được định nghĩa liên quan

RÀNG BUỘC TOÀN VẸN (Schema Constraint)

tới 1 hay nhiều quan hệ bối cảnh khác

nhau.

 Các mối quan hệ RB là những điều kiện

ThS. Nguyễn Thị Thúy Loan

bất biến mà mọi thể hiện của quan hệ đều

phải thỏa mãn ở bất kỳ thời điểm nào.

114

10/4/2012 456 Nguyễn Thị Thúy Loan

Khái niệm RBTV

Các đặc trưng của RBTV

Mục đích:

Bảng tầm ảnh hưởng:

 Bảo đảm tính kết dính

 Nhằm xác định thao tác cập nhật (thêm,

 Bảo đảm tính nhất quán.

xóa, sửa) nào cần phải kiểm tra RBTV trên

 Bảo đảm cơ sở dữ liệu luôn biểu diễn

các quan hệ nào.

đúng ngữ nghĩa thực tế.

10/4/2012 457 10/4/2012 458 Nguyễn Thị Thúy Loan Nguyễn Thị Thúy Loan

Các đặc trưng của RBTV

Các đặc trưng của RBTV

Hành động:

Bối cảnh:

 Phản hồi của RBTV là những hành động

 Bối cảnh có thể là một hay nhiều quan hệ

phải được thực hiện nếu RBTV đó bị vi

cần phải sử dụng để kiểm tra RBTV.

phạm.

 Đó là những quan hệ có khả năng bị vi

 Giải pháp: Đưa ra câu thông báo vi phạm

phạm RBTV khi

thực hiện các thao tác

hoặc từ chối cập nhật.

thêm, xóa, sửa dữ liệu.

115

10/4/2012 459 10/4/2012 460 Nguyễn Thị Thúy Loan Nguyễn Thị Thúy Loan

Các đặc trưng của RBTV

Biểu thức biểu diễn RBTV

Điều kiện của một RBTV có thể được biểu

Nội dung:

diễn

 Điều kiện được kiểm tra trên mọi thể hiện

 Một biểu thức toán học.

hay trên mọi thay đổi của thể hiện của các

 Một phép so sánh trên tập hợp.

quan hệ cơ sở

 Một biểu thức vị từ trên các quan hệ bối

 Từ đó xác định cách biểu diễn nội dung.

cảnh của RBTV đó.

 Một thuật toán kiểm tra điều kiện.

10/4/2012 461 10/4/2012 462 Nguyễn Thị Thúy Loan Nguyễn Thị Thúy Loan

Biểu thức biểu diễn RBTV

Bảng tầm ảnh hưởng

Nội dung của RBTV có thể được phát biểu:

Trong quá trình thiết kế một CSDL,

 Ngôn ngữ tự nhiên (dễ hiểu nhưng thiếu

người phân tích cần lập bảng tầm ảnh

chặt chẽ).

hưởng cho một ràng buộc toàn vẹn nhằm

 Ngôn ngữ hình thức (logic hơi khó hiểu).

xác định thời điểm cần phải tiến hành kiểm

tra các ràng buộc toàn vẹn đó. Các thời điểm

cần phải kiểm tra RBTV chính là thời điểm

cập nhập dữ liệu (thêm, sửa, xóa)

116

10/4/2012 463 10/4/2012 464 Nguyễn Thị Thúy Loan Nguyễn Thị Thúy Loan

Bảng tầm ảnh hưởng

Ví dụ CSDL

Để quản lý hóa đơn bán hàng ta cần xây

Tên RBTV

Thêm(T)

Sửa(S)

Xóa (X)

dựng một CSDL gồm các bảng sau:

R1

+

 Q1: SanPham(Masp, Tensp, Donvitinh,

R2

DongiaMua, Slton)

Rn

Tân từ: Mỗisản phẩm có một (Masp) duy

nhất, mỗi Masp xác định một tên sản phẩm

Dấu + phải kiểm tra RBTV.

(tensp), đơn vị tính (donvitinh), Dongiamua

Dấu – không cần kiểm tra RBTV.

và Slton.

10/4/2012 465 10/4/2012 466 Nguyễn Thị Thúy Loan Nguyễn Thị Thúy Loan

Ví dụ CSDL

Ví dụ CSDL

 Q2: KhachHang (Makh, Tenkh, Diachi,

 Q3: Nhanvien (Manv, Honv, Tennv, Phai,

DienThoai)

Ngaysinh, Diachi, DienThoai)

Tân từ: Mỗi khách hàng có một Makh duy

Tân từ: Mỗi nhân viên có duy nhất một

nhất, mỗi Makh xác định một tên KH, một

Manv, mỗi Manv xác định một Honv,

địa chỉ và một số điện thoại.

Tennv,…

117

10/4/2012 467 10/4/2012 468 Nguyễn Thị Thúy Loan Nguyễn Thị Thúy Loan

Ví dụ CSDL

Ví dụ CSDL

 Q4: Hoadon(Mahd, LoaiHD, Makh, Manv,

 Q5: CTHD(Mahd, Masp, Soluong,

NgaylapHD, NgayGNHg, DienGiai)

DongiaBan)

Tân từ: Mỗi hóa đơn có một Mahd duy nhất,

Tân từ: Mỗi Mahd và Masp xác định giá bán

mỗi hoá đơn có thể có nhiều sản phẩm. Mỗi

số lượng bán của một sản phẩm trong một

hóa đơn xác định Ngày lập hóa đơn, Ngày

hoá đơn.

giao nhận hàng và diễn giải.

10/4/2012 469 10/4/2012 470 Nguyễn Thị Thúy Loan Nguyễn Thị Thúy Loan

Phân loại RBTV

Phân loại RBTV

RBTV được chia làm các loại chính sau:

 Ràng buộc toàn vẹn trên phạm vi nhiều

 Ràng buộc toàn vẹn trên phạm vi là một

quan hệ bao gồm: RBTV phụ thuộc tồn tại

quan hệ bao gồm: RBTV miền giá trị,

(tham chiếu), RBTV liên bộ - liên quan hệ,

RBTV liên thuộc tính, ràng buộc toàn vẹn

RBTV liên thuộc tính – liên quan hệ.

liên bộ.

118

10/4/2012 471 10/4/2012 472 Nguyễn Thị Thúy Loan Nguyễn Thị Thúy Loan

RBTV có bối cảnh là 1 QH cơ sở

RBTV có bối cảnh là 1 QH cơ sở

Ví dụ: Với quan hệ CTHD ta có RBTV như sau:

1. Ràng buộc toàn vẹn về miền giá trị: Là sự

RBTV có liên quan đến miền giá trị của

R1: “Số lượng phải lớn hơn không” Bối cảnh: CTHD

các thuộc tính trong một quan hệ. Ràng

Biểu diễn:

buộc này thường gặp. Một số hệ quản trị

 t  CTHD thì

CSDL tự động kiểm tra.

Thêm

Xóa

Sửa

t.SL > 0

R1

CTDH

+

-

+(SL)

Cuối 

Bảng tầm ảnh hưởng

10/4/2012 473 10/4/2012 474 Nguyễn Thị Thúy Loan Nguyễn Thị Thúy Loan

RBTV có bối cảnh là 1 QH cơ sở

RBTV có bối cảnh là 1 QH cơ sở

1. Ràng buộc toàn vẹn về miền giá trị:

1. Ràng buộc toàn vẹn về miền giá trị:

Ví dụ: R2: “Phái của nhân viên chỉ là nam

VD: R3: “Thay đổi lương của nhân viên được

hoặc nữ”

phép tăng chứ không giảm”

119

10/4/2012 475 10/4/2012 476 Nguyễn Thị Thúy Loan Nguyễn Thị Thúy Loan

RBTV có bối cảnh là 1 QH cơ sở

RBTV có bối cảnh là 1 QH cơ sở

 VDV (MA_VDV, TEN_VDV, TTGDINH, DT)

 Ví dụ: Xét quan hệ VDV, thuộc tính

TTGDINH gồm các giá trị sau {‘độc thân’,

 Thuộc tính DT = true nếu vận động viên đó

’li dị’, ’gia đình’, ‘góa’}

là đội trưởng

 R4: “Nếu VĐV là đội trưởng thì đã lập gia

 R5: “Thay đổi TTGDINH của VDV”

đình”.

10/4/2012 477 10/4/2012 478 Nguyễn Thị Thúy Loan Nguyễn Thị Thúy Loan

RBTV có bối cảnh là 1 QH cơ sở

RBTV có bối cảnh là 1 QH cơ sở

2. Ràng buộc toàn vẹn liên bộ: Là sự RBTV

Ví dụ: R6: “Mỗi khách hàng có một mã số

giữa các bộ trong cùng một quan hệ.

duy nhất”

RBTV khóa chính là trường hợp đặc biệt

Bối cảnh: KH

của RBTV liên bộ. Đây là ràng buộc khá

phổ biến, nó có mặt trong mọi lược đồ

quan hệ của CSDL và thường được các

hệ quản trị CSDL tự động kiểm tra.

120

10/4/2012 479 10/4/2012 480 Nguyễn Thị Thúy Loan Nguyễn Thị Thúy Loan

RBTV có bối cảnh là 1 QH cơ sở

RBTV có bối cảnh là 1 QH cơ sở

2. Ràng buộc toàn vẹn liên bộ:

2. Ràng buộc toàn vẹn liên bộ:

Ví dụ: Xét quan hệ DANGKY(MASV,

Ví dụ: R7: “Mỗi đề án được phân cho một hoặc nhiều nhân viên. Một nhân viên có

MAMH,…)

thể tham gia nhiều đề án”

R8: “Một sinh viên được đăng ký tối đa 5

môn học”

10/4/2012 481 10/4/2012 482 Nguyễn Thị Thúy Loan Nguyễn Thị Thúy Loan

RBTV có bối cảnh là 1 QH cơ sở

RBTV có bối cảnh là 1 QH cơ sở

3. Ràng buộc toàn vẹn liên thuộc tính: Là

mối liên hệ giữa các thuộc tính trong một

3. Ràng buộc toàn vẹn liên thuộc tính: Ví dụ: Xét quan hệ CHUYEN_TAU (MA_CT,

lược đồ quan hệ.

Ví dụ: Xét quan hệ HOADON

R9: “Ngày lập hóa đơn phải trước ngày giao

NG_ROI_CANG_DI, NG_CAP_CANG_DEN, CANG_DI, CANG_DEN)

nhận hàng.”

R10: “Ngày rời cảng phải trước ngày cập

cảng. Cảng đi phải khác cảng đến.”

121

10/4/2012 483 10/4/2012 484 Nguyễn Thị Thúy Loan Nguyễn Thị Thúy Loan

RBTV có bối cảnh là 1 QH cơ sở

RBTV có bối cảnh là NQH cơ sở

3. Ràng buộc toàn vẹn liên thuộc tính:

4. Ràng buộc toàn vẹn tồn tại/ tham chiếu:

Ví dụ: Xét quan hệ THI_SINH (SBD, …,

Là sự RBTV về khóa ngoại. Cũng giống

NGSINH, NGTHI)

như RBTV về khóa chính, ràng buộc này

R11: “Thí sinh đăng ký thi không quá 35

khá phổ biến trong CSDL.

tuổi.”

Ví dụ: R12: “Mỗi nhân viên phải thuộc một

phòng ban của công ty.”

10/4/2012 485 10/4/2012 486 Nguyễn Thị Thúy Loan Nguyễn Thị Thúy Loan

RBTV có bối cảnh là NQH cơ sở

RBTV có bối cảnh là NQH cơ sở

4. Ràng buộc toàn vẹn tồn tại/ tham chiếu:

4. Ràng buộc toàn vẹn tồn tại/ tham chiếu:

Ví dụ: R13: “Mỗi CTHD phải thuộc một HD.”

Ví dụ: R14: “Đề án chỉ được phân công cho

các nhân viên của công ty.”

122

10/4/2012 487 10/4/2012 488 Nguyễn Thị Thúy Loan Nguyễn Thị Thúy Loan

RBTV có bối cảnh là NQH cơ sở

RBTV có bối cảnh là NQH cơ sở

4. Ràng buộc toàn vẹn tồn tại/ tham chiếu:

BO_MON[MA_K] KHOA[MA_K]

 Ví dụ 2: Quan hệ phụ thuộc tồn tại với

TO_CDE[MA_K,MA_BM] 

BO_MON[MA_K,MA_BM]

nhiều quan hệ cơ sở:

KHOA(MA_K,TEN_K)

TO_CDE[MA_K]  KHOA[MA_K] (thừa,

không cần kiểm tra phụ thuộc này vì nếu

BO_MON(MA_K, MA_BM, TEN_BM)

hai phụ thuộc tồn tại trên thỏa thì phụ

TO_CDE(MA_K, MA_BM, MA_CD,

thuộc này cũng thỏa)

TEN_CDE)

10/4/2012 489 10/4/2012 490 Nguyễn Thị Thúy Loan Nguyễn Thị Thúy Loan

RBTV có bối cảnh là NQH cơ sở

RBTV có bối cảnh là NQH cơ sở

5. Ràng buộc toàn vẹn liên bộ - liên quan hệ:

5. Ràng buộc toàn vẹn liên bộ - liên quan

VD: R16: “Mỗi hóa đơn bao gồm tối đa 5 mặt hàng

hệ: được xác định trong trường hợp mỗi

khác nhau”

thuộc tính A của lược đồ quan hệ Q

được tính toán giá trị từ các thuộc tính

của lược đồ quan hệ khác

Ví dụ: R15: “Một hóa đơn bán hàng phải có ít

nhất 1 mặt hàng”

123

10/4/2012 491 10/4/2012 492 Nguyễn Thị Thúy Loan Nguyễn Thị Thúy Loan

RBTV có bối cảnh là NQH cơ sở

RBTV có bối cảnh là NQH cơ sở

6. RBTV liên thuộc tính - liên quan hệ:

6. Ràng buộc toàn vẹn liên thuộc tính - liên quan

hệ: Là mối

liên hệ giữa các thuộc tính trong

VD: R18: “Ngày sinh của trưởng phòng phải

nhiều lược đồ quan hệ.

nhỏ hơn ngày nhận chức”

VD: R17: “Đơn giá mua phải nhỏ hơn đơn giá bán”

10/4/2012 493 10/4/2012 494 Nguyễn Thị Thúy Loan Nguyễn Thị Thúy Loan

Ví dụ

Ví dụ

SOLUONG

DONGIA

THANHTIEN

o Ràng buộc toàn vẹn khóa chính

4

50

250

o Ràng buộc toàn vẹn khóa ngoại

MASV

MAMH

DIEM

MAMH

TENMH

o Ràng buộc toàn vẹn liên thuộc tính

99001

DB

5.0

DB

Cơ Sở Dữ Liệu

o Ràng buộc toàn vẹn về miền giá trị

DS

hai

DS

Cấu trúc Dữ Liệu

99002

NW

8.0

99003

NW

Mạng Máy Tính

o Ràng buộc toàn vẹn kiểu dữ liệu

DS

8.0

99002

SQL

11.0

99004

124

10/4/2012 495 10/4/2012 496 Nguyễn Thị Thúy Loan Nguyễn Thị Thúy Loan

RBTV có bối cảnh là NQH cơ sở

RBTV có bối cảnh là NQH cơ sở

7. RBTV do thuộc tính tổng hợp: do sự hiện

R19: “DTB của SV phải bằng điểm bình quân

diện của thuộc tính tính toán (giá trị của

của các môn mà SV đó học”

thuộc tính đó được tính toán từ các thuộc

tính khác).

VD: Xét hai quan hệ:

SV(MASV, TENSV, DTB)

KQ(MASV, MAMH, DIEM)

10/4/2012 497 10/4/2012 498 Nguyễn Thị Thúy Loan Nguyễn Thị Thúy Loan

RBTV có bối cảnh là NQH cơ sở

RBTV có bối cảnh là NQH cơ sở

7. RBTV do thuộc tính tổng hợp:

RBTV do sự hiện diện của chu trình: Là

VD: Trên các quan hệ PX, CTPX

ràng buộc thể hiện sự phụ thuộc tồn tại

PX(SoPhieu, Ngay, TgTriGia)

của một bộ trong một quan hệ được kết

CTPX(SoPh, MaHg, SoLg, DonGia)

giữa các quan hệ khác trong cùng chu

R20: “ TgTriGia của PX chính là tổng của số

trình. Ràng buộc này có hay không tùy

lượng nhân đơn giá”.

thuộc vào qui tắc quản lý.

Đồ thị của LĐCSDL:

125

10/4/2012 499 10/4/2012 500 Nguyễn Thị Thúy Loan Nguyễn Thị Thúy Loan

RBTV có bối cảnh là NQH cơ sở

RBTV có bối cảnh là NQH cơ sở

Nút lược đồ quan hệ

Để thấy được mối liên hệ giữa các quan hệ

Nút thuộc tính

trong một LĐCSDL, người ta thường biểu

Một cung vô hướng trong đồ thị nối

diễn LĐCSDL bằng 1 đồ thị vô hướng,

một nút thuộc tính A với một nút

trong đó:

lược đồ quan hệ Q

Lược đồ CSDL có sự hiện diện của chu

trình khi xuất hiện một đường khép kín trên

đồ thị

10/4/2012 501 502 10/4/2012 Nguyễn Thị Thúy Loan Nguyễn Thị Thúy Loan

RBTV có bối cảnh là NQH cơ sở

RBTV có bối cảnh là NQH cơ sở

MA_NVIEN = MANV

RBTV do sự hiện của chu trình:

PHANCONG

NHANVIEN

Ví dụ: NHANVIEN (HONV, TENLOT,

PHG=PHONG

SODA=MADA

TENNV, MANV,…, PHG)

DEAN

DEAN (TENDA, MADA, …, PHONG)

Một phần của đồ thị biểu diễn lược đồ CSDL

PHANCONG (MA_NVIEN, SODA, …)

quản lý đề án công ty gồm các lược đồ quan

hệ NHANVIEN, DEAN, PHANCONG.

126

10/4/2012 503 10/4/2012 504 Nguyễn Thị Thúy Loan Nguyễn Thị Thúy Loan

RBTV có bối cảnh là NQH cơ sở

 Nhân viên chỉ được phân công vào các đề

án do phòng mình phụ trách (không cần

đầy đủ).

127

10/4/2012 505 Nguyễn Thị Thúy Loan