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=
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ộ t1R: hoặc bằng giá trị tại khóa chính của một bộ t2S; 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
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
UNION [ALL]
o Loại bỏ các bộ trùng nhau
SELECT
o Để giữ lại các bộ trùng nhau
SELECT
UNION ALL
INTERSECT [ALL]
SELECT
INTERSECT ALL
EXCEPT ALL
SELECT
EXCEPT [ALL]
SELECT
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 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 SELECT SODA 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 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 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 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 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 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 EXISTS IN o Không cần có thuộc tính, hằng số hay biểu o 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 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 E C D C A B A B Q1 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 1 a a 1 b a 1 b a 69 10/4/2012 275 10/4/2012 276 Nguyễn Thị Thúy Loan Nguyễn Thị Thúy Loan Lược đồ CSDL: KHACHHANG (MAKH, HOTEN, DCHI, SODT, NGSINH, DOANHSO, NGDK) NHANVIEN (MANV,HOTEN, NGLV, SODT) RS 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 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 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 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 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 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 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 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 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 COUNT MIN o COUNT(*) đếm số dòng MAX o COUNT( SUM khác NULL của thuộc tính AVG o COUNT(DISTINCT 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 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 Cú pháp Cho biết số lượng nhân viên của từng phòng ban. 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 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 Cú pháp 2 đề án trở lên MA_NVIEN SODA THOIGIAN 123456789 1 32.5 123456789 2 7.5 333445555 2 10.0 333445555 3 10.0 333445555 10 10.0 888665555 20 20.0 bị loại ra 987987987 10 35.0 987987987 30 5.0 987654321 30 20.0 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 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 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 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 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 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 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 79 10/4/2012 315 10/4/2012 316 Nguyễn Thị Thúy Loan Nguyễn Thị Thúy Loan 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 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’. Kết ngoài 80 10/4/2012 319 10/4/2012 320 Nguyễn Thị Thúy Loan Nguyễn Thị Thúy Loan 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 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 MA_NVIEN=MANV [ELSE 81 10/4/2012 323 10/4/2012 324 Nguyễn Thị Thúy Loan Nguyễn Thị Thúy Loan 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 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 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 GV(MAGV,HOTEN,LUONG,PHAI,NGSINH, SONHA,DUONG,QUAN,TPHO,GVQLCM,MABM) 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 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 Cú pháp Bảng ảo này có o Danh sách thuộc tính trùng với các thuộc tính trong mệnh đề SELECT 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 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 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 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 dữ liệu làm cho việc tìm kiếm mẫu tin có Cú pháp
CREATE INDEX ( chứa A hiệu quả hơn. SELECT * Đọc 10.000 bộ FROM NHANVIEN DROP INDEX 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 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 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 Bảng so sánh chi phí 4 10 4 10 Q1 4 4 10 10 Q2 6 4 4 2 Q3 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 Chương V: Đạ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 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 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 Đạ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 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 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 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 Cho 2 quan hệ R và S khả hợp Ví dụ Phép hội của R và S R S = { t / tR tS } o Ký hiệu R S A B 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 Cho 2 quan hệ R và S khả hợp Ví dụ Phép giao của R và S R S = { t / tR tS } o Ký hiệu R S A B A B A B 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 Cho 2 quan hệ R và S khả hợp Ví dụ Phép giao của R và S R S = { t / tR tS } o Ký hiệu R S A
A B
B A
A B
B A B 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 Đượ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 A B A B 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 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 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 có tính giao hoán Ví dụ p1 ( p2 (R)) = p2 ( p1 (R)) = p1 p2 (R) (A=B)(D>5) (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 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 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 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 Ví dụ Được dùng để lấy ra một vài cột của quan hệ R. C 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 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 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 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 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 Đượ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 Đượ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 Kết quả trả về là một quan hệ Q Ví dụ R S 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 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 Ví dụ Tenpb Trphg unambiguous A B 5 Nghien cuu 3334 D S.B C R.B A 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 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 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ớ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 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 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 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 MAPHG5 (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 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 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 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 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 D E A B A B C C 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 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 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’ 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ớ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 Đị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. RS = RS ((RS) (SR)) R CS = C(RS) 10/4/2012 417 10/4/2012 418 Nguyễn Thị Thúy Loan Nguyễn Thị Thúy Loan 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 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. E C D D E A B C A B 1 a a a 1 a 1 a a 1 b a 1 b a 1 a a 3 b a 1 a a 1 b a 1 b a 10/4/2012 421 10/4/2012 422 Nguyễn Thị Thúy Loan Nguyễn Thị Thúy Loan 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 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 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 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 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 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 Ký hiệu Ví dụ G1, G2, …, GnIF1(A1), F2(A2), …, Fn(An)(E) SUM_C A B C 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 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 Quan hệ đơn vị: 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 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 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 hai quan hệ R với S trên 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 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 Đượ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 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 Đượ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 PHANCONGMA_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 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 Chương VI: Là 1 điều kiện được định nghĩa liên quan 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 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 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 Đ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 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 Để quản lý hóa đơn bán hàng ta cần xây dựng một CSDL gồm các bảng sau: + – – Q1: SanPham(Masp, Tensp, Donvitinh, DongiaMua, Slton) 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 124 10/4/2012 495 10/4/2012 496 Nguyễn Thị Thúy Loan Nguyễn Thị Thúy Loan 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 7. RBTV do thuộc tính tổng hợp: 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 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 PHANCONG Ví dụ: NHANVIEN (HONV, TENLOT, TENNV, MANV,…, PHG) 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 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 LoanTruy vấn lồng
Truy vấn lồng
Ví dụ
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
Ví dụ
Ví dụ 5
Ví dụ
Ví dụ
Ví dụ
Lồng tương quan
Ví dụ
Ví dụ
Ví dụ
Ví dụ
Tìm những trưởng phòng có tối thiểu một
Nhận xét IN và EXISTS
Nhận xét IN và EXISTS
Phép chia trong SQL
Phép chia trong SQL
Phép chia trong SQL
Phép chia trong SQL
R
RS
S
Q1 Q2
A
B
1
2
A B
1
2
1
1
2
Phép chia trong SQL
Ví dụ
Ví dụ
Ví dụ
Ví dụ
Ví dụ
Ví dụ
Ví dụ
Ví dụ
Ví dụ
Nhận xét
Nhận xét
Ví dụ
Ví dụ
Câu hỏi phụ yêu cầu chúng ta tìm những
Ví dụ
Ví dụ
Ví dụ
Ví dụ
Tìm tên các nhân viên được phân công
Hàm kết hợp
Hàm kết hợp
Ví dụ
Ví dụ
Ví dụ
Gom nhóm
SELECT
FROM
WHERE <điều kiện>
GROUP BY
Ví dụ
Ví dụ
Điều kiện trên nhóm
Ví dụ
Cho biết những mã nhân viên tham gia từ
SELECT
FROM
WHERE <điều kiện>
GROUP BY
HAVING <điều kiện trên nhóm>
Ví dụ
Ví dụ
Cho biết những nhân viên tham gia từ 2
Nhận xét
Nhận xét
Nhận xét
Nhận xét
o (4) Áp dụng các hàm kết hợp cho mỗi
Ví dụ
Ví dụ
Ví dụ
Ví dụ
Một số dạng truy vấn khác
Truy vấn con ở mệnh đề From
SELECT
FROM R1, R2, (
WHERE <điều kiện>
Ví dụ
Ví dụ
Điều kiện kết ở mệnh đề From
Ví dụ
SELECT
FROM R1 [INNER] JOIN R2 ON
WHERE <điều kiện>
SELECT
FROM R1 LEFT|RIGHT [OUTER] JOIN R2 ON
WHERE <điều kiện>
Ví dụ
Ví dụ
Ví dụ
Cấu trúc CASE
CASE
WHEN
WHEN
END
Ví dụ
Ví dụ
Ví dụ
Ví dụ
ghi chú, tùy thuộc vào giá trị của cột
Kết luận
CSDL Quản lý đề tài NCKH
SELECT
FROM
Khung nhìn
Khung nhìn
Định nghĩa khung nhìn
Định nghĩa khung nhìn
CREATE VIEW
DROP VIEW
Ví dụ
Truy vấn trên khung nhìn
Truy vấn trên khung nhìn
Cập nhật trên khung nhìn
Cập nhật trên khung nhìn
Cập nhật trên khung nhìn
Chỉ mục (tt)
Chỉ mục
Chỉ mục trên thuộc tính A là một cấu trúc
Chỉ mục
Ví dụ
Ví dụ
Ví dụ
Giả sử có 3 thao tác được thực hiện
Ví dụ
Bài tập
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
Chí phí TB
Nội dung chi tiết
ĐẠI SỐ QUAN HỆ
Giới thiệu
Giới thiệu
Giới thiệu (tt)
Giới thiệu (tt)
Nhắc lại
Nhắc lại
Đại số quan hệ
Đại số quan hệ
Đại số quan hệ (tt)
Phép toán tập hợp
Phép toán tập hợp
Phép toán tập hợp (tt)
Phép hội
Phép hội
R S
R
S
Phép giao
Phép giao
R
S
R S
Phép trừ
Phép trừ
R
R
S
S
R S
Phép chọn
Ví dụ
R
S
T
Phép chọn
Phép chọn (tt)
Phép chọn (tt)
Phép chọn (tt)
R
Ví dụ 1
Các tính chất
Ví dụ 2
Ví dụ 2
(LUONG>25000 PHG=4) (LUONG>30000 PHG=5) (NHANVIEN)
Phép chiếu
Phép chiếu
R
Phép chiếu (tt)
Ví dụ 3
Phép chiếu tổng quát
Phép chiếu tổng quát
Phép chiếu tổng quát (tt)
Chuỗi các phép toán
Phép gán
CSDL ví dụ
Phép đổi tên
Ví dụ 7
Phép tích Cartesian
Ví dụ 7
Phép tích Cartesian
Phép tích Cartesian (tt)
R
S
S
Phép tích Cartesian (tt)
Ví dụ
Diadiem_phg
Diadiem
Phongban
Mapb
R
R S
S
Phép tích Cartesian (tt)
Ví dụ 8
Ví dụ 8 (tt)
Ví dụ 9
Ví dụ 9 (tt)
Ví dụ 10
Ví dụ 10
Ví dụ 10 (tt)
Phép kết
Phép kết
Phép kết (tt)
Phép kết (tt)
Phép kết (tt)
R
S
Phép kết (tt)
Phép kết (tt)
R
S
R
S
R
S
S
Ví dụ 11
Ví dụ 11
LUONG, PHG)
Ví dụ 12
Ví dụ 13
Phép chia
Tập đầy đủ các phép toán ĐSQH
Phép chia
Phép chia (tt)
Ví dụ
Phép chia (tt)
R
S
Q3
KetQuaHT
Q2
MaSV
MaSV MaMon Diem
MaMon Diem
01
CSDL
8
01
CSDL
8
03
CTDL
7
01
CTDL
7
02
CSDL
8
02
CTDL
9
03
CSDL
8
03
CTDL
7
Ý nghĩa của phép chia
Ý nghĩa của phép chia
Định nghĩa lại phép chia
Ví dụ 14
Ví dụ 15
Ví dụ 3
Ví dụ
Hàm kết hợp
Hàm kết hợp (tt)
Phép gom nhóm
R
Phép gom nhóm (tt)
Phép gom nhóm
ISUM(C)(R)
R
Ví dụ 16
Ví dụ 17
Phép kết ngoài
Phép kết ngoài
Mở rộng phép kết để tránh mất mát thông
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
Phép kết nối trái
Phép kết nối trái
Phép kết nối phải
Phép kết nối phải
Định nghĩa: Vẫn với các quan hệ R,S các
Ví dụ 18
Phép kết nối phải
Thao tác thêm
Các thao tác cập nhật
Thao tác xóa
Ví dụ 19
Thao tác sửa
Ví dụ 20
Bài tập
Bài tập
Khái niệm RBTV
Định nghĩa:
RÀNG BUỘC TOÀN VẸN
(Schema Constraint)
Khái niệm RBTV
Các đặc trưng của RBTV
Mục đích:
Bảng tầm ảnh hưởng:
Các đặc trưng của RBTV
Các đặc trưng của RBTV
Hành động:
Bối cảnh:
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
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:
Bảng tầm ảnh hưởng
Ví dụ CSDL
Tên RBTV
Thêm(T)
Sửa(S)
Xóa (X)
R1
R2
…
…
…
…
Rn
Ví dụ CSDL
Ví dụ CSDL
Ví dụ CSDL
Ví dụ CSDL
Phân loại RBTV
Phân loại RBTV
RBTV có bối cảnh là 1 QH cơ sở
RBTV có bối cảnh là 1 QH cơ sở
RBTV có bối cảnh là 1 QH cơ sở
RBTV có bối cảnh là 1 QH cơ sở
RBTV có bối cảnh là 1 QH cơ sở
RBTV có bối cảnh là 1 QH cơ sở
RBTV có bối cảnh là 1 QH cơ sở
RBTV có bối cảnh là 1 QH cơ sở
RBTV có bối cảnh là 1 QH cơ sở
RBTV có bối cảnh là 1 QH cơ sở
RBTV có bối cảnh là 1 QH cơ sở
RBTV có bối cảnh là 1 QH cơ sở
RBTV có bối cảnh là 1 QH cơ sở
RBTV có bối cảnh là NQH cơ sở
RBTV có bối cảnh là NQH cơ sở
RBTV có bối cảnh là NQH cơ sở
RBTV có bối cảnh là NQH cơ sở
RBTV có bối cảnh là NQH cơ sở
RBTV có bối cảnh là NQH cơ sở
RBTV có bối cảnh là NQH cơ sở
RBTV có bối cảnh là NQH cơ sở
RBTV có bối cảnh là NQH cơ sở
Ví dụ
Ví dụ
SOLUONG
DONGIA
THANHTIEN
MASV
MAMH
DIEM
MAMH
TENMH
99004
RBTV có bối cảnh là NQH cơ sở
RBTV có bối cảnh là NQH cơ sở
RBTV có bối cảnh là NQH cơ sở
RBTV có bối cảnh là NQH cơ sở
RBTV do sự hiện diện của chu trình: Là
RBTV có bối cảnh là NQH cơ sở
RBTV có bối cảnh là NQH cơ sở
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:
NHANVIEN
PHG=PHONG
SODA=MADA
DEAN
RBTV có bối cảnh là NQH cơ sở