ỦY BAN NHÂN DÂN TỈNH AN GIANG
TRƯỜNG CAO ĐẲNG NGHỀ AN GIANG
GIÁO TRÌNH
Cơ sở dữ liệu
NGHỀ LẬP TRÌNH MÁY TÍNH & TIN
ỨNG DỤNG
TRÌNH ĐỘ CAO ĐẲNG NGHỀ & TRUNG CẤP NGHỀ
(Ban hành theo Quyết định số:
/QĐ-CĐN ngày tháng năm 20
của Hiệu trưởng trường Cao đẳng nghề An Giang)
Tên tác giả : Trần Thị Kim Ngọc
Năm ban hành: 2018
TUYÊN BỐ BẢN QUYỀN
Tài liệu này thuộc loại sách giáo trình nên các nguồn thơng tin có thể đƣợc
phép dùng nguyên bản hoặc trích dùng cho các mục đích về đào tạo và tham khảo.
Mọi mục đích khác mang tính lệch lạc hoặc sử dụng với mục đích kinh
doanh thiếu lành mạnh sẽ bị nghiêm cấm.
1
LỜI GIỚI THIỆU
Bài giảng cơ sở dữ liệu đƣợc viết nhằm để giảng dạy cho sinh viên chuyên
ngành CNTT trƣờng Cao Đẳng Nghề An giang. Bài giảng đƣợc thiết kế theo
chƣơng trình mơn học cơ sở dữ liệu của Bộ ban hành theo hệ cao đẳng nghề và
trung cấp nghề. Bài giảng này bao gồm 6 chƣơng, Trƣớc tiên bài giảng trình bày về
các kiến thức cơ bản nhƣ: mơ hình cơ sở dữ liệu quan hệ, ngơn ngữ dữ liệu SQL và
các dạng chuẩn và vấn đề chuẩn hóa. Thêm vào đó, cuối chƣơng sẽ có các bài tập
tƣơng ứng để sinh viên có thể ơn lại lý thuyết và tùy vào mỗi chƣơng mà có một số
bài tập nâng cao để khuyến khích sinh viên tự học và nghiên cứu.
Giáo trình này gồm các nội dung chính sau:
Chƣơng 1: Tổng quan về cơ sở dữ liệu
Chƣơng 2: Mô hình cơ sở dữ liệu quan hệ
Chƣơng 3: Ngơn ngữ dữ liệu SQL
Chƣơng 4: Ràng buộc toàn vẹn và phụ thuộc hàm
Chƣơng 5: Dạng chuẩn và chuẩn hóa lƣợc đồ cơ sở dữ liệu quan hệ
Chƣơng 6: Tối ƣu hóa câu hỏi
Trong quá trình biên soạn, mặc dù đã cố gắng tham khảo nhiều tài liệu và
giáo trình khác nhƣng tác giả khơng khỏi tránh đƣợc những thiếu sót và hạn chế.
Tác giả chân thành mong đợi những nhận xét, đánh giá và góp ý để cuốn giáo trình
ngày một hồn thiện hơn.
Cuốn tài liệu giảng dạy này vẫn cịn nhiều thiếu sót và hạn chế. Rất mong nhận
đƣợc ý kiến đóng góp của sinh viên và các bạn đọc để bài giảng ngày càng hoàn
thiện hơn.
Chân thành cảm ơn quý Thầy Cô trong Hội đồng thẩm định của trƣờng Cao
Đẳng Nghề An Giang để bài giảng cơ sở dữ liệu đƣợc hoàn chỉnh.
An Giang, ngày tháng
năm 2018
Tham gia biên soạn
Trần Thị Kim Ngọc
2
MỤC LỤC
ĐỀ MỤC
TRANG
TUYÊN BỐ BẢN QUYỀN
1
LỜI GIỚI THIỆU
2
MỤC LỤC
3
GIÁO TRÌNH MÔN HỌC CƠ SỞ DỮ LIỆU
4
CHƢƠNG I. TỔNG QUAN VỀ CƠ SỞ DỮ LIỆU
5
I. Một số khái niệm
5
II. Các mô hình dữ liệu
6
Bài tập
10
CHƢƠNG II. MƠ HÌNH CƠ SỞ DỮ LIỆU QUAN HỆ
12
I. Các khái niệm cơ bản
12
II. Các phép toán trên đại số tập hợp
18
III. Các phép toán trên đại số quan hệ
21
Bài tập
23
CHƢƠNG III. NGÔN NGỮ DỮ LIỆU SQL
26
I. Khái niệm về ngôn ngữ dữ liệu SQL
26
II. Các lệnh liên quan đến cấu trúc của cơ sở dữ liệu
26
III. Các lệnh cập nhật cơ sở dữ liệu
35
IV. Các lệnh truy vấn cơ sở dữ liệu
38
Bài tập
47
CHƢƠNG IV. RÀNG BUỘC TOÀN VẸN VÀ PHỤ THUỘC HÀM
51
I. Các vấn đề liên quan đến ràng buộc toàn vẹn
51
II. Các loại ràng buộc toàn vẹn
51
III. Phụ thuộc hàm
56
Bài tập
65
CHƢƠNG V. DẠNG CHUẨN VÀ CHUẨN HÓA LƢỢC ĐỒ CƠ SỞ
68
DỮ LIỆU QUAN HỆ
I. Dạng chuẩn
68
II. Chuẩn hóa lƣợc đồ cơ sở dữ liệu
77
Bài tập
83
CHƢƠNG VI. TỐI ƢU HÓA CÂU HỎI
86
I. Các nguyên tắc tổng qt để tối ƣu hóa câu hỏi
86
II. Ví dụ một thuật tốn tối ƣu hóa biểu thức quan hệ
87
III. Thuật tốn tối ƣu hóa câu hỏi trong ngơn ngữ Đại số quan hệ
89
Bài tập
89
CÁC THUẬT NGỮ CHUYÊN MÔN
91
TÀI LIỆU THAM KHẢO
92
3
GIÁO TRÌNH MƠN HỌC CƠ SỞ DỮ LIỆU
Tên mơn học: CƠ SỞ DỮ LIỆU
Mã số mơn học: MH 10
Vị trí, tính chất, ý nghĩa và vai trị của mơn học:
- Vị trí: Thuộc nhóm mơn cơ sở. Đƣợc bố trí sau các mơn: tốn cho tin học
và tin học căn bản.
- Tính chất: Là mơn học chun mơn nghề bắt buộc, là nền tảng để HSSV có
thể thiết kế cơ sở dữ liệu xây dựng ứng dụng và học các mơn học mơ đun liên
quan.
-Ý nghĩa và vai trị của mơn học: giúp các em có kiến thức cơ bản về xây
dựng cơ sở dữ liệu làm nền tảng cho các môn học sau.
Mục tiêu của môn học:
- Về kiến thức
Trình bày đƣợc các bƣớc, ý nghĩa của việc thiết kế cơ sở dữ liệu.
Trình bày đƣợc các khái niệm về cơ sở dữ liệu nhƣ: khóa, lƣợc đồ quan
hệ, phụ thuộc hàm,...
Ghi nhớ đƣợc các ngôn ngữ thao tác dữ liệu, ngôn ngữ truy vấn dữ liệu
SQL.
- Về kỹ năng
Xây dựng đƣợc các mơ hình quan hệ.
Thiết kế đƣợc cơ sở dữ liệu
Phân tích đƣợc chƣơng trình: xác định nhiệm vụ chƣơng trình (phải làm
gì).
- Về năng lực tự chủ và trách nhiệm
Nghiêm túc trong học tập và thực hiện tốt các yêu cầu đƣợc giao.
Luôn động não suy nghĩ. Thƣờng xuyên luyện tập tƣ duy trong việc học
Thực hiện học tập và thực hành nhóm.
4
Chƣơng 1 TỔNG QUAN VỀ CƠ SỞ DỮ LIỆU
Mục tiêu:
Nhằm cung cấp kiến thức về khái niệm cơ sở dữ liệu, hệ quản trị cơ sở dữ
liệu, sơ lƣợc về một số mơ hình cơ sở dữ liệu.
Nội dung:
I. MỘT SỐ KHÁI NIỆM:
1. Cơ sở dữ liệu:
Cơ sở dữ liệu (Database, viết tắt là CSDL) là 1 lĩnh vực nghiên cứu các mơ
hình, ngun lý, phƣơng pháp tổ chức dữ liệu trên các vật mang tin.
Để dễ dàng cho việc giải thích các khái niệm, trƣớc tiên ta hãy thử xem xét
hệ thống bán vé máy bay bằng máy tính. Dữ liệu lƣu trữ trong máy tính bao gồm
thơng tin về hành khách, chuyến bay, đƣờng bay… Mọi thông tin về mối quan hệ
này đƣợc biểu diễn trong máy thông qua việc đặt chỗ của khách hàng. Vậy làm thế
nào để biểu diễn đƣợc dữ liệu đó và đảm bảo cho hành khách đi đúng chuyến? Dữ
liệu nêu trên đƣợc lƣu trữ trong máy theo một quy định nào đó và đƣợc gọi là cơ
sở dữ liệu.
Nhƣ vậy, cơ sở dữ liệu là tập hợp các thơng tin có quan hệ với nhau đƣợc
lƣu trữ trong máy tính theo một quy định nhất định nhằm phục vụ cho một mục
đích nào đó.
2. Hệ quản trị cơ sở dữ liệu (Database Management System):
Hệ quản trị cơ sở dữ liệu là hệ thống các chƣơng trình nhằm tạo lập, xử lý,
thay đổi, quản lý và khai thác các cơ sở dữ liệu.
Một số hệ quản trị cơ sở dữ liệu hiện nay: Foxpro, Access, Oracale, … với
các phiên bản khác nhau. Có hai đặc điểm để phân biệt một hệ quản trị cơ sở dữ
liệu với các hệ thống lập trình khác:
(1) Khả năng quản lý những dữ liệu cố định.
(2) Khả năng truy xuất có hiệu quả một số lƣợng lớn dữ liệu.
Điểm (1) khẳng định rằng có một cơ sở dữ liệu tồn tại thƣờng xuyên và nội
dung của cơ sở dữ liệu này là những dữ liệu đƣợc hệ quản trị cơ sở dữ liệu truy
xuất và quản lý. Điểm (2) phân biệt một hệ quản trị cơ sở dữ liệu với một hệ thống
quản lý tập tin cùng quản lý dữ liệu cố định nhƣng nói chung khơng cho phép truy
xuất nhanh chóng các thành phần tùy ý của dữ liệu. Ngịai ra, cịn có một số khả
năng khác thƣờng gặp trong các hệ quản trị cơ sở dữ liệu trên thị trƣờng:
5
+ Hệ quản trị cơ sở dữ liệu hổ trợ ít nhất một mơ hình dữ liệu, nhờ đó ngƣời
sử dụng có thể xem đƣợc dữ liệu.
+ Hệ quản trị cơ sở dữ liệu hổ trợ một số ngôn ngữ bậc cao cho phép ngƣời
sử dụng định nghĩa các cấu trúc dữ liệu, truy xuất dữ liệu và thao tác dữ liệu.
+ Hệ quản trị cơ sở dữ liệu quản lý các giao dịch, nghĩa là cho phép nhiều
ngƣời sử dụng truy xuất đồng thời và chính xác đến một cơ sở dữ liệu.
+ Hệ quản trị cơ sở dữ liệu điều khiển quá trình truy xuất, là khả năng giới
hạn các quá trình truy xuất dữ liệu của những ngƣời không đƣợc phép và khả năng
kiểm tra độ tin cậy của dữ liệu.
+ Hệ quản trị cơ sở dữ liệu có khả năng tự thích ứng là khả năng phục hồi lại
dữ liệu do sự cố của hệ thống mà làm mất dữ liệu.
II. CÁC MƠ HÌNH DỮ LIỆU:
Phân loại các mơ hình:
Phân cấp
Thế hệ 1
Mạng
Các mơ hình
dựa trên bản
ghi
Quan hệ
Thế hệ 2
Thực thể - liên kết
Các mơ hình
dựa trên đối
tƣợng
Ngữ nghĩa
Thế hệ 3
Đối tƣợng – Quan hệ
Hƣớng đối tƣợng
6
1. Mơ hình mạng (Network model):
Là mơ hình thực thể liên hệ trong đó các mối liên hệ bị hạn chế trong kiểu
nhị phân (hai thực thể) và nhiều - một hoặc một - một và đƣợc biểu diễn bởi một
đồ thị có hƣớng.
- Ƣu điểm: Đơn giản, có thể biểu diễn các ngữ nghĩa đa dạng với kiểu bản
ghi và kiểu móc nối, truy vấn thơng qua phép duyệt đồ thị (navigation)
- Nhƣợc điểm: Số lƣợng các con trỏ lớn, hạn chế trong biểu diễn ngữ nghĩa
của các móc nối giữa các bản ghi
2. Mơ hình phân cấp (Hierachical model):
Là mơ hình mạng có nhiều cây trong đó tất cả các đƣờng nối chỉ đi theo
hƣớng từ con đến cha.
- Ƣu điểm: Dễ xây dựng và thao tác, tƣơng thích với các lĩnh vực tổ chức
phân cấp (vd: tổ chức nhân sự trong các đơn vị, ...), ngôn ngữ thao tác đơn giản
(duyệt cây)
- Nhƣợc điểm: Sự lặp lại của các kiểu bản ghi → dƣ thừa dữ liệu và dữ liệu
không nhất quán , hạn chế trong biểu diễn ngữ nghĩa của các móc nối giữa các bản
ghi (chỉ cho phép quan hệ 1-n)
3. Mơ hình quan hệ (Relation model):
Là mơ hình dựa vào ký hiệu là tập các tên và cơ sở tốn học của nó là các
phép tốn tập hợp và ánh xạ. Nó là mơ hình phổ biến hiện nay. Tập các phép tốn
trong mơ hình này dựa trên hai hệ ký hiệu: hệ ký hiệu đại số và hệ ký hiệu logic.
7
LOP
Malop Lop
Khoa
GVCN
loptruong
IT4
Tin 4 CNTT Ng.V.Anh Trần.T.Bình
IT5
Tin 5 CNTT Lê A.Văn
IT6
Tin 6 CNTT Ng.T.Thảo Trần.M.Quế
Ng.Đ.Trung
SINHVIEN
MaSV
tenSV
Ngyasinh Nam Diachi
Lop
SV0011 Trần T.Bình 1/4/1981
0
21 T.Q.B IT4
SV0025 Ng.Đ.Trung 3/2/1980
1
56 Đ.C.V IT5
SV0067 Trần M.Quế 26/3/1982 0
45 H.B.T IT6
- Ƣu điểm: Dựa trên lý thuyết tập hợp, khả năng tối ƣu hoá các xử lý phong
phú
- Nhƣợc điểm: Hạn chế trong biểu diễn ngữ nghĩa, cấu trúc dữ liệu khơng
linh hoạt
4. Mơ hình thực thể liên kết (Entity Relationship model):
Là mơ hình cho phép mơ tả các thực thể thơng qua các thuộc tính và mối
liên hệ giữa các thực thể. Một trong các cách biểu thị mô hình thực thể là dùng đồ
thị, sơ đồ khối.
- Ƣu điểm: Dễ dàng biểu diễn cái mà con ngƣời nhận thức từ thế giới thực,
biểu diễn ngữ nghĩa phong phú của các thực thể và quan hệ giữa các thực thể
8
- Nhƣợc điểm: Không dễ dàng ánh xạ vào những cấu trúc lƣu trữ trên máy
tính
* Mơ hình hóa dữ liệu: Dựa trên các khái niệm chính
+ Thực thể: một đối tƣợng trong thế giới thực
+ Tập thực thể: các thực thể có cùng các tính chất
+ Thuộc tính: một đặc tính của một tập thực thể
+ Khố:xác định sự duy nhất của 1 thực thể
+ Liên kết: mối liên hệ có nghĩa giữa nhiều thực thể
1-1: Liên kết 1 thực thể của một tập thực thể với nhiều nhất 1 thực thể của
tập thực thể khác
1-n: Liên kết 1 thực thể của một tập thực thể với nhiều thực thể của tập thực
thể khác
n-m: Liên kết 1 thực thể của một tập thực thể với nhiều thực thể của tập thực
thể khác và ngƣợc lại
đệ quy: Liên kết giữa các thực thể cùng kiểu
mon_hoc
Dieu_kie
n
lop_hoc
lop_hoc
sinh_vien
1
1
n
chu_nhiem
gom
dang_ky
1
giao_vien
n
m
sinh_vien
mon_hoc
+ Tập liên kết: tập hợp các liên kết cùng kiểu
* Lập sơ đồ thực thể - liên kết:
B1: Xác định các thực thể
B2: Xác định các liên kết giữa các thực thể: Bậc của liên kết, ràng buộc (1-1,
1-n, n-m, đệ quy)
5. Mơ hình hƣớng đối tƣợng (Object Oriented model):
9
Là mơ hình cung cấp đặc tính nhận dạng đối tƣợng. Trong đó mỗi lớp đối
tƣợng đƣợc đặc trƣng bởi hai yếu tố:
+ Tập các thuộc tính (properties) để nhận dạng đối tƣợng.
+ Tập các phƣơng thức (methods) để thao tác với đối tƣợng.
Ví dụ:
class sinh_vien {
string maSV;
string tenSV;
date ngaysinh;
boolean nam;
string diachi;
string lop;
string ten();
string ngay_sinh();
string dia_chi();
string lop();
void gan_DC(string DC_moi);
void gan_lop(string lop);
}
- Ƣu điểm: Cho phép định nghĩa kiểu đối tƣợng phức tạp, tính chất: bao
đóng (encapsulation), kế thừa (heritage), đa hình (polymorphism)
- Nhƣợc điểm: Cấu trúc lƣu trữ phức tạp và có thể sử dụng nhiều con trỏ,
khả năng tối ƣu hoá các xử lý bị hạn chế trong nhiều trƣờng hợp
Bài tập:
Phân tích và thiết kế 1 CSDL (theo mơ hình thực thể - liên kết) gồm các
thơng tin trong 1 cơng ty (nhân viên, phịng ban, dự án)
Cơng ty đƣợc tổ chức bởi các phòng ban. Mỗi phòng ban có 1 tên duy nhất,
1 số duy nhất và 1 ngƣời quản lý (thời điểm bắt đầu công tác quản lý của ngƣời
này cũng đƣợc lƣu lại trong CSDL).
Mỗi phịng ban có thể có nhiều trụ sở làm việc khác nhau. Mỗi phòng điều
phối một số dự án. Mỗi dự án có 1 tên và 1 mã số duy nhất, thực hiện tại một địa
điểm duy nhất
10
Các thông tin về nhân viên cần đƣợc quan tâm gồm: tên, số bảo hiểm, địa
chỉ, lƣơng, giới tính, ngày sinh. Mỗi nhân viên làm việc tại một phòng ban nhƣng
có thể tham gia nhiều dự án khác nhau.
Những dự án này có thể đƣợc điều phối bởi các phịng ban khác nhau.
Thông tin về số giờ làm việc trong từng dự án (theo tuần) cũng nhƣ ngƣời quản lý
trực tiếp của các nhân viên cũng đƣợc lƣu trữ
Thông tin về con cái của từng nhân viên: tên, giới tính, ngày sinh
11
Chƣơng 2 MƠ HÌNH CƠ SỞ DỮ LIỆU QUAN HỆ
Mục tiêu:
Nhằm cung cấp các kiến thức về khái niệm quan hệ, thuộc tính, các loại
khóa, lƣợc đồ quan hệ, bộ giá trị và phụ thuộc hàm, qua đó thực hiện đƣợc các
phép toán trên đại số tập hợp và các phép toán trên đại số quan hệ.
Nội dung:
I. CÁC KHÁI NIỆM CƠ BẢN:
1. Thuộc tính (Attribute):
Chẳng hạn với bài tóan quản lý điểm thi của sinh viên, với đối tƣợng sinh
viên ta cần phải chú ý đến các đặc trƣng riêng nhƣ họ tên, ngày sinh, giới tính, tỉnh
thƣờng trú, học bổng, lớp mà sinh viên theo học,… các đặc trƣng này gọi là các
thuộc tính.
Các thuộc tính đƣợc phân biệt qua tên gọi và phải thuộc vào một kiểu dữ
liệu nhất định (số, chuỗi, ngày tháng, logic, hình ảnh,…). Kiểu dữ liệu ở đây là
kiểu đơn. Trong cùng một đối tƣợng khơng có hai thuộc tính cùng tên. Thơng
thƣờng mỗi thuộc tính chỉ chọn lấy giá trị trong một tập con của kiểu dữ liệu và tập
hợp con đó gọi là miền giá trị của thuộc tính đó. Thuộc tính ngày trong tháng thì có
kiểu dữ liệu là số nguyên, miền giá trị của nó là 1 đến (tối đa là) 31. Hoặc điểm thi
của sinh viên chỉ là các số nguyên từ 0 đến 10.
Thƣờng ngƣời ta dùng các chữ cái hoa A,B,C,… để biểu diễn các thuộc tính,
hoặc A1,A2,…., An để biểu diễn một số lƣợng lớn các thuộc tính.
2. Quan hệ (Relation):
Sự thể hiện của lƣợc đồ quan hệ Q ở một thời điểm nào đó đƣợc gọi là quan
hệ, rõ ràng là trên một lƣợc đồ quan hệ có thể định nghĩa rất nhiều quan hệ.
Thƣờng ta dùng các ký hiệu nhƣ R, S, Q để chỉ các lƣợc đồ quan hệ, còn quan hệ
đƣợc định nghĩa trên nó tƣơng ứng đƣợc ký hiệu là là r, s, q.
3. Bộ giá trị (Tuple):
Bộ là tập mỗi giá trị liên quan của tất cả các thuộc tính của một lƣợc đồ quan
hệ.
Chẳng hạn quan hệ sau có 2 bộ.
MASV
HOTEN
NU
NGAYSINH
MALOP
TINH
HB
99001
TRAN DAN THU
TRUE
15-03-1977
CĐTH2B
TIEN GIANG
120000
99002
NGUYEN HA DA THAO
TRUE
25-04-1986
TCTH29C
TPHCM
120000
12
Thƣờng ngƣời ta dùng các chữ cái thƣờng (nhƣ t,p,q,…) để biểu diễn các bộ.
Chẳng hạn để nói bộ t thuộc quan hệ r ta viết: t r.
Về trực quan thì mỗi quan hệ xem nhƣ một bảng, trong đó mỗi cột là thơng
tin về một thuộc tính, mỗi dịng là thơng tin về một bộ. Chẳng hạn sau đây là các
thể hiện của các quan hệ định nghĩa trên lƣợc đồ cơ sở dữ liệu quản lý sinh viên ở
trên:
rSv
MASV
HOTEN
NU
NGAYSINH
MALOP
TINH
HB
99001
TRAN DAN
THU
TRUE
15-03-1977
CĐTH2B
TIEN GIANG
120000
99002
NGUYEN HA DA
THAO
TRUE
25-04-1986
TCTH29C
TPHCM
120000
99003
PHẠM ANH
HUY
FALSE
16-08-1977
CĐTH2B
BAC LIEU
99004
NGUYEN NGOC
THUAN
FALSE
24-12-1980
CĐTH2B
CA MAU
99005
LE THANH
TRUNG
FALSE
20-11-1978
CĐAV1
CA MAU
99006
NGUYEN HONG
VAN
FALSE
19-09-1979
CĐAV1
SOC TRANG
99007
VU THI
LOAN
TRUE
15-03-1975
CĐAV1
CA MAU
99008
TRUONG KIM
QUANG
FALSE
15-05-1979
CĐTH2B
HA NOI
99009
TON THAT
QUYEN
FALSE
26-06-1976
CĐTH2B
VUNG TAU
99010
HA VAN
LONG
FALSE
14-04-1973
CĐAV1
BAC LIEU
99011
BUI VAN
ANH
FALSE
22-12-1972
CĐAV1
AN GIANG
99012
LE HUU
CHI
FALSE
28-08-1977
CĐĐT2
CAN THO
60000
99013
VU THANH
CONG
FALSE
29-03-1979
CĐTH2B
KIEN GIANG
60000
99014
TRAN QUANG
CUONG
FALSE
30-05-1981
CĐĐT2
DONG THAP
120000
99015
PHAM VAN
HAI
FALSE
30-06-1976
CĐĐT2
CA MAU
99016
HUYNH THANH
HOANG
FALSE
29-07-1982
CĐĐT2
TPHCM
99017
TRAN MINH
LAM
FALSE
21-08-1977
CĐTH2B
TRA VINH
99018
PHAN VAN
SANG
FALSE
19-05-1979
CĐDL1
DONG THAP
120000
99019
PHAM THI
HUYEN
FALSE
16-06-1982
CĐDL1
CAN THO
120000
99020
NGUYEN THI
NGAN
TRUE
11-11-1981
CĐTH2B
CA MAU
120000
99021
PHAM TAN
QUANG
FALSE
01-01-1980
CĐDL1
CA MAU
120000
60000
80000
13
99022
TRAN PHUOC
QUYEN
FALSE
12-12-1979
CĐTH2B
BAC LIEU
60000
99023
LE THI THANH
VAN
TRUE
11-11-1980
CĐDL1
TPHCM
120000
TENMH
ST
RKh
rMh
MAKH
TENKHOA
SOCBGD
MAMH
CNTT
CONG NGHE THONG TIN
60
CSDL
CO SO DU LIEU
90
AV
ANH VAN
60
FOX
FOXPRO
120
HOA
HOA CHAT
20
THVP
TIN HOC VAN PHONG
90
MT
MOI TRUONG
10
AVTH
ANH VAN TIN HOC
60
XD
XAY DUNG
10
KTS
KY THUAT SO
60
DL
DU LICH
5
CTDL
CAU TRUC DU LIEU
60
TTIN
TOAN - TIN HOC
30
TTNT
TRI TUE NHAN TAO
45
SINH
CONG NGHE SINH HOC
30
MANG
MANG MAY TINH CB
45
VL
VAT LY
20
VB
VISUAL BASIC
90
ĐT
ĐIEN TU
20
AC
ACCESS
180
LR
LAP RAP MAY TINH
60
INTER
CAC DICH VU INTERNET
45
HDH
HE DIEU HANH
60
KTLT
LY THUAT LAP TRINH
45
VIFOX
VISUAL FOXPRO
60
rLop
MALOP
TENLOP
SISO
MAKHOA
CĐTH2B
CAO DANG TIN HOC KHOA 2000B
60
CNTT
TCTH29C
TRUNG CAP TIN HOC KHOA 29C
121
CNTT
CĐAV1
CAO DANG ANH VAN 1
120
AV
CĐĐT2
CAO DANG DIEN TU 2
80
ĐT
CĐDL1
CAO DANG DU LICH 1
42
DL
14
rKq
MASV
MAMH
DIEMTHI
99001
CSDL
3.0
99006
MANG
6.0
99016
KTS
7.0
99002
CSDL
8.0
99007
MANG
2.0
99017
KTS
7.0
99003
CSDL
8.0
99008
MANG
7.0
99017
FOX
7.0
99004
CSDL
3.0
99009
MANG
3.0
99017
MANG
4.0
99005
CSDL
2.0
99010
TTNT
5.0
99017
CSDL
8.0
99001
THVP
6.0
99011
FOX
4.0
99017
TTNT
6.0
99002
THVP
3.0
99012
FOX
5.0
99002
MANG
8.0
99003
THVP
8.0
99013
FOX
7.0
99004
MANG
4.0
99004
THVP
9.0
99014
VB
7.0
99018
TTNT
7.0
99005
THVP
5.0
99015
VB
3.0
99019
CSDL
8.0
99020
THVP
7.0
99023
TTNT
3.0
99021
CSDL
8.0
99021
MANG
7.0
99023
THVP
6.0
99021
THVP
9.0
99022
MANG
6.0
99023
FOX
8.0
99022
FOX
5.0
99023
CSDL
8.0
99023
VB
9.0
99022
TTNT
6.0
99023
MANG
6.0
99023
KTS
6.0
4. Lƣợc đồ quan hệ (Relation Schema):
Tập tất cả các thuộc tính cần quản lý của một đối tƣợng cùng với mối liên hệ
giữa chúng đƣợc gọi là lƣợc đồ quan hệ. Lƣợc đồ quan hệ Q với tập thuộc tính
{A1,A2,...,An} đƣợc viết là Q(A1,A2,...,An). Tập các thuộc tính của Q đƣợc ký
hiệu là Q+. Chẳng hạn lƣợc đồ quan hệ sinh viên (Đặt tên là Sv) với các thuộc tính
nhƣ trên là:
Sv(MASV, HOSV,TENSV,NU, NGAYSINH, MALOP, HOCBONG,
TINH)
Thƣờng khi thành lập một lƣợc đồ, ngƣời thiết kế ln gắn cho nó một ý
nghĩa nhất định, ý nghĩa đó gọi là tân từ của lƣợc đồ quan hệ đó. Dựa vào tân từ
ngƣời ta xác định đƣợc tập thuộc tính khóa của lƣợc đồ quan hệ (khái niệm khố sẽ
đƣợc trình bày ở phần sau).
15
Khi phát biểu tân từ cho một lƣợc đồ quan hệ, ngƣời thiết kế cần phải mô tả
đầy đủ ý nghĩa để ngƣời khác tránh hiểu nhầm. Chẳng hạn tân từ của lƣợc đồ quan
hệ trên là: ”mỗi sinh viên có một mã sinh viên MASV duy nhất, mỗi mã sinh viên
xác định tất cả các thuộc tính của sinh viên đó nhƣ họ tên HOTEN, nữ (NU), ngày
sinh (NGAYSINH), lớp theo học (MALOP), học bổng (HOCBONG), tỉnh cƣ trú
(TINH).
Nhiều lƣợc đồ quan hệ cùng nằm trong một hệ thống quản lý đƣợc gọi là
một lƣợc đồ cơ sở dữ liệu.
Ví dụ 2.1: Lƣợc đồ cơ sở dữ liệu để quản lý điểm sinh viên có thể gồm các
lƣợc đồ quan hệ sau:
Sv(MASV,
HOCBONG)
HOSV,TENSV,
NU,
NGAYSINH,
MALOP,
TINH,
Lop(MALOP,TENLOP,SISO,MAKHOA)
Kh(MAKHOA,TENKHOA, SOCBGD)
Mh(MAMH, TENMH, SOTIET)
Kq(MASV, MAMH, DIEMTHI)
Phần giải thích các thuộc tính:
MASV
Mã sinh viên
HOTEN
Tên sinh viên
NU
Nữ
NGAYSINH
Ngày sinh
LOP
Lớp
TENLOP
Tên lớp
SISO
Sỉ số lớp
MAKHOA
Mã khoa
HOCBONG
Học bổng
TINH
Tỉnh
TENKHOA
Tên khoa
SOCBGD
Số cán bộ giảng dạy
MAMH
Mã môn học
TENMH
Tên môn học
SOTIET
Số tiết
16
DIEMTHI
Điểm thi
5. Thể hiện của quan hệ:
Quan hệ r là một thể hiện (relation instance) của lƣợc đồ quan hệ tại một
thời điểm
6. Khóa – siêu khóa – khóa chỉ định – khóa chính – khóa ngoại:
Cho lƣợc đồ quan hệ R, SR. S đƣợc gọi là một siêu khóa (superkey) của
lƣợc đồ quan hệ R nếu với hai bộ tùy ý trong quan hệ R thì giá trị của các thuộc
tính trong S là khác nhau.
Một lƣợc đồ quan hệ có thể có nhiều siêu khố. Siêu khố chứa ít thuộc tính
nhất đƣợc gọi là khóa chỉ định, trong trƣờng hợp lƣợc đồ quan hệ có nhiều khóa
chỉ định, thì khóa đƣợc chọn để cài đặt gọi là khóa chính (Primary key) (trong các
phần sau khóa chính đƣợc gọi tắt là khóa)
Các thuộc tính tham gia vào một khóa đƣợc gọi là thuộc tính khóa (prime
key), ngƣợc lại đƣợc gọi là thuộc tính khơng khóa (non prime key).
Một thuộc tính đƣợc gọi là khóa ngoại nếu nó là thuộc tính của một lƣợc đồ
quan hệ này nhƣng lại là khóa chính của lƣợc đồ quan hệ khác.
Ví dụ 2.2: Ta hãy xem lƣợc đồ quan hệ sau:
Xe(SODANGBO, QUICACH,
SOMAY, MAXE, QUOCGIA)
HINHDANG,
MAUSAC,
SOSUON,
Siêu khóa: (SOSUON,QUICACH),...
Khóa chỉ định: (SODANGBO,QUOCGIA), (SOSUON), (SOMAY),
(MAXE)
Khóa chính: MAXE
Thuộc tính khóa: SODANGBO,QUOCGIA, SOSUON, SOMAY, MAXE
Thuộc tính khơng khóa: QUICACH, HINHDANG, MAUSAC
Khóa của Sv là (MASV), Khố của Mh là (MAMH), khố của Kh là
(MAKHOA), khóa của Kq là (MASV,MAMH) khóa của Lop là MALOP, trong
Lop thuộc tính MAKHOA là khóa ngoại
7. Phụ thuộc hàm (Functional dependendies):
Là cơng cụ để biểu diễn 1 số ràng buộc toàn vẹn
8. Ràng buộc toàn vẹn (Intergrity constraints):
Ràng buộc toàn vẹn sử dụng các luật để định nghĩa các điều kiện đảm bảo
cho cơ sở dữ liệu ln ở trạng thái an tồn. Chúng quyết định các trạng thái và các
17
biến đổi hợp lệ của cơ sở dữ liệu. Ràng buộc toàn vẹn đƣợc dùng để ngăn chặn
việc đƣa các dữ liệu không hợp lệ vào cơ sở dữ liệu để cơ sở dữ liệu ln an tồn
trong điều kiện đó. Do đó 1 ràng buộc tồn vẹn là một yêu cầu chặt chẽ mà phải
đƣợc đảm bảo đúng sau mỗi thao tác cập nhật cơ sở dữ liệu.
Các phép cập nhật trên cơ sở dữ liệu không nên đƣợc thực hiện một cách tùy
tiện, có thể đƣa cơ sở dữ liệu đến một tình trạng “xấu”, khơng cịn phản ánh đúng
thế giới thực mà nó đại diện. Các phép cập nhật trên cơ sở dữ liệu phải tuân thủ
theo một số quy tắc ràng buộc nhất định. Các quy tắc ràng buộc này đƣợc gọi là
ràng buộc tồn vẹn.
Ví dụ: Mức lƣơng nhân viên không đƣợc vƣợt quá trƣởng phòng.
9. Các thao tác cơ bản trên các quan hệ:
Ngƣời ta có thể truy cập dữ liệu trong cơ sở dữ liệu quan hệ thông qua đại số
quan hệ, gồm một số phép toán cơ bản và phép toán dẫn xuất.
II. CÁC PHÉP TOÁN TRÊN ĐẠI SỐ TẬP HỢP:
1. Phép hợp (Union operation):
Cho hai lƣợc đồ quan hệ Q1 và Q2 có cùng tập thuộc tính {A1,A2,..,An}. r1
và r2 lần lƣợt là hai quan hệ trên Q1 và Q2. Phép hợp của hai lƣợc đồ quan hệ Q1
và Q2 sẽ tạo thành một lƣợc đồ quan hệ Q3. Q3 đƣợc xác định nhƣ sau:
Q3 = {A1,A2,..,An}
r3 = r1+r2 = {t | t r1 hoặc t r2}
Ví dụ 2.3:
r1
r2
r3 = r1 + r2
MASV
MAMH
DIEMTHI
MASV
MAMH
DIEMTHI
MASV
MAMH
DIEMTHI
99001
CSDL
5.0
99002
CTDL
2.0
99001
CSDL
5.0
99002
CSDL
2.0
99001
TTNT
5.0
99002
CTDL
2.0
99003
MANG
8.0
99003
CSDL
6.0
99003
MANG
8.0
99001
TTNT
5.0
99003
CSDL
6.0
2. Phép giao (Intersection):
Cho hai lƣợc đồ quan hệ Q1 và Q2 có cùng tập thuộc tính {A1,A2,..,An}. r1
và r2 lần lƣợt là hai quan hệ trên Q1 và Q2. Phép giao của hai lƣợc đồ quan hệ Q1
và Q2 sẽ tạo thành một lƣợc đồ quan hệ Q3 nhƣ sau:
18
Q3 ={A1,A2,..,An}
r3 = r1*r2= {t | t r1 và t r2}
Ví dụ 2.4:
r1
r2
r3 = r1 * r2
MASV
MAMH
DIEMTHI
MASV
MAMH
DIEMTHI
MASV
MAMH
DIEMTHI
99001
CSDL
5.0
99002
CTDL
2.0
99002
CTDL
2.0
99002
CSDL
2.0
99001
TTNT
5.0
99003
MANG
8.0
99003
CSDL
6.0
3. Phép trừ (Minus, difference):
Cho hai lƣợc đồ quan hệ Q1 và Q2 có cùng tập thuộc tính {A1,A2,..,An}. r1
và r2 lần lƣợt là hai quan hệ trên Q1 và Q2. Phép trừ lƣợc đồ quan hệ Q1 cho Q2
sẽ tạo thành một lƣợc đồ quan hệ Q3 nhƣ sau:
Q3={A1,A2,..,An}
r3 = r1 - r2= {t | t r1 và t ∉ r2}
Ví dụ 2.5:
r1
r2
r3 = r1 - r2
MASV
MAMH
DIEMTHI
MASV
MAMH
DIEMTHI
MASV
MAMH
DIEMTHI
99001
CSDL
5.0
99002
CTDL
2.0
99001
CSDL
5.0
99002
CSDL
2.0
99001
TTNT
5.0
99003
MANG
8.0
99003
MANG
8.0
99003
CSDL
6.0
4. Phép tích Đề các (Cartesian Product, product):
Cho hai lƣợc đồ quan hệ Q1(A1,A2,..,An), Q2(B1,B2,..,Bm). r1 và r2 lần
lƣợt là hai quan hệ trên Q1 và Q2. Tích Descartes của hai lƣợc đồ quan hệ Q1 và
Q2 sẽ tạo thành một lƣợc đồ quan hệ Q3 nhƣ sau:
Q3 = Q1 Q2 = {A1,..., B1,...}
r3 = r1 x r2 = {(t1,t2)| t1 r1 và t2 r2}
Ví dụ 2.6:
19
r1
r3 = r1 x r2
MASV
MAMH
DIEMTHI
MASV
MAMH
DIEMTHI
MAMH
TENMH
99001
CSDL
5.0
99001
CSDL
5.0
CSDL
CO SO DU
LIEU
99002
CSDL
2.0
99001
CSDL
5.0
FOX
FOXPRO
99003
MANG
8.0
99002
CTDL
2.0
CSDL
CO SO DU
LIEU
r2
99002
CTDL
2.0
FOX
FOXPRO
MAMH
TENMH
99003
MANG
8.0
CSDL
CO SO DU
LIEU
CSDL
CO SO DU LIEU
99003
MANG
8.0
FOX
FOXPRO
FOX
FOXPRO
5. Phép chia (division):
Cho hai lƣợc đồ quan hệ Q1(A1,A2,..,An), Q2(B1,B2,..,Bm). r1 và r2 lần
lƣợt là hai quan hệ trên Q1 và Q2. Ai và Bj lần lƣợt là các thuộc tính của Q1 và Q2
sao cho n>m. Phép chia Q1 và Q2 sẽ tạo thành một lƣợc đồ quan hệ Q3 nhƣ sau:
Q3 = {A1,...,An-m}
r3 = r1÷r2 = {t3|t2r2, t1 r1
t3=t1.{A1,...,An-m}
t2=t1.{An-m+1,...,An}}
Ví dụ 2.7:
r1
r2
r3 = r1 ÷ r2
A1
A2
A3
A4
A5
B1
B2
A1
A2
A3
A
b
D
c
g
c
g
a
b
d
A
b
D
e
f
e
f
e
g
c
B
c
E
e
f
E
g
C
c
g
E
G
C
e
f
A
B
E
g
e
20
III. CÁC PHÉP TOÁN TRÊN ĐẠI SỐ QUAN HỆ:
1. Phép chiếu (Projection):
Cho một lƣợc đồ quan hệ Q(A1,A2,..,An). r là quan hệ trên Q. X Q.
Phép chiếu của Q lên tập thuộc tính X sẽ tạo thành lƣợc đồ quan hệ Q‟=
Q[X], trong đó Q‟ chính là X và r‟ chính là r nhƣng chỉ lấy các thuộc tính của X.
Q‟ = X
r‟ = r[X] = r.X = {t‟| t r và t.X = t[X] = t‟}
Phép chiếu chính là phép rút trích dữ liệu theo cột (chiều dọc)
Ví dụ 2.8:
r‟ = r. {MAMH}
r
MASV
MAMH
DIEMTHI
MAMH
99001
CSDL
5.0
CSDL
99002
CSDL
2.0
CSDL
99003
MANG
8.0
MANG
2. Phép chọn (Selection):
Cho lƣợc đồ quan hệ Q(A1,A2,..,An), r là một quan hệ trên Q. X Q và E là
một mệnh đề logic đƣợc phát biểu trên tập X. Phần tử t r thỏa mãn điều kiện E ký
hiệu là t(E).
Phép chọn từ r theo điều kiện E sẽ tạo thành một lƣợc đồ quan hệ Q‟ nhƣ
sau:
Q‟ = Q
r‟= r(E)= r:E ={t | t r và t(E)}
Phép chọn chính là phép rút trích dữ liệu theo dịng (chiều ngang)
Ví dụ 2.9:
r‟ = r:DIEMTHI>=5
R
MASV
MAMH
DIEMTHI
MASV
MAMH
DIEMTHI
99001
CSDL
5.0
99001
CSDL
5.0
99002
CSDL
2.0
99003
MANG
8.0
99003
MANG
8.0
21
3. Phép kết nối (join):
Cho hai lƣợc đồ quan hệ Q1(A1,A2,..,An), Q2(B1,B2,..,Bm). r1 và r2 lần
lƣợt là hai quan hệ trên Q1 và Q2. Ai và Bj lần lƣợt là các thuộc tính của Q1 và Q2
sao cho MGT(AI) = MGT(BJ) (MGT: miền giá trị).θ? là một phép so sánh trên
MGT(AI).
Phép kết giữa Q1 và Q2 sẽ tạo thành một lƣợc đồ quan hệ Q3 nhƣ sau:
Q3 = Q1 Q2 , r3 =
= {t12 | t1 € r1, t2 € r2 sao cho
t12.Q1+ = t1
t12.Q2+ = t2
t1.Ai
t2.Bj}
Ta rút ra các bƣớc cụ thể để thực hiện phép kết nhƣ sau:
- Tạo tích descartes
- Thực hiện phép chọn theo điều kiện E=Ai θ? Bj
Ví dụ 2.10:
Ai là thuộc tính B, Bj là thuộc tính F và θ? là phép so sánh “>=”. Ta đƣợc
kết quả là quan hệ sau:
r1
r3 =
r2
A
B
C
E
F
H
A
B
C
E
F
H
6
5
4
1
5
9
6
5
4
1
5
9
7
5
5
4
6
8
6
5
4
7
5
3
4
2
6
7
5
3
7
5
5
1
5
9
7
5
5
7
5
3
Nếu θ? đƣợc sử dụng trong phép kết là phép so sánh bằng (=) thì ta gọi là
phép kết bằng. Hơn nữa nếu Ai ≡ Bj thì phép kết bằng này đƣợc gọi là phép kết tự
nhiên. Phép kết tự nhiên là một phép kết thƣờng dùng nhất trong thực tế.
Ví dụ 2.11: Với Ai ≡ Bj = MAMH
22
r1
r2
MASV
MAMH
DIEMTHI
MAMH
TENMH
99001
CSDL
5.0
CSDL
CO SO DU LIEU
99002
CSDL
2.0
CTDL
CAU TRUC DU LIEU
99003
MANG
8.0
r3 =
MASV
MAMH
DIEMTHI
TENMH
99001
CSDL
5.0
CO SO DU LIEU
99002
CTDL
2.0
CAU TRUC DU LIEU
4. Các phép kết nối khác:
Phép θ - kết chỉ kết những bộ có liên quan (thoả điều kiện kết), những bộ
không thoả điều kiện kết sẽ không đƣợc kết
Mở rộng: lấy thêm những bộ không liên quan (không thoả điều kiện kết)
thoả quan hệ bên trái hoặc bên phải
- LEFT OUTER JOIN: mở rộng bên trái, ký hiệu: ¯|><|
- RIGHT OUTER JOIN: mở rộng bên trái, ký hiệu: |><|¯
- FULL OUTER JOIN: mở rộng bên trái, ký hiệu: ¯|><|¯
Bài tập:
Bài 1:
Cho lƣợc đồ cơ sở dữ liệu
Sinhvien(MASV, HOTENSV, NU, NGAYSINH, NOISINH, TINH,
MALOP)
Lop(MALOP, TENLOP, MAKHOA)
Khoa(MAKHOA,TENKHOA)
Monhoc(MAMH, TENMH, DONVIHT)
Giangvien(MAGV, HOTENGV, HOCVI, CHUYENNGANH, MAKHOA)
Ketqua(MASV, MAMH, LANTHI, DIEMTHI)
Phancong(MALOP, MAMH, MAGV)
23
Thực hiện các yêu cầu sau bằng ngôn ngữ đại số quan hệ:
a. Lập danh sách những sinh viên có hộ khẩu thƣờng trú ở tỉnh “LONG
AN”, danh sách cần các thông tin: MASV, HOTENSV, NGAYSINH, TENLOP
b. Lập danh sách các sinh viên của lớp có MALOP là CDTH2A, danh sách
cần các thông tin: MASV, HOTENSV, NGAYSINH, TINH.
c. Lập danh sách các giảng viên có cấp học vị là THAC SY của khoa có
MAKHOA là “CNTT”, danh sách cần: MAGV,HOTENGV, CHUYENNGANH.
d. Lập bảng điểm thi lần 1 môn học “869” cho tất cả sinh viên thuộc hai lớp
có
MALOP
là
“CĐTH2A”
và
“CĐTH2B”,
danh sách
cần:
MASV,HOTENSV,DIEMTHI.
e. Lập danh sách các giảng viên đã dạy lớp CĐTH2A, danh sách cần các
thông tin: MAGV, HOTENGV, TENKHOA, HOCVI, TENMH.
f. Lập danh sách các môn mà lớp CDTH2A đã học, danh sách cần các thông
tin: MAMH, TENMH, DONVIHT, HOTENGV.
g. Lập danh sách những giảng viên đã dạy sinh viên có MASV là
“00CDTH189“, danh sách cần MAGV, HOTENGV, HOCVI, CHUYENNGANH,
TENKHOA, TENMH
h. Lập danh sách các sinh viên có mã khoa “CNTT” có điểm thi lần 1 môn
học “869” lớn hơn hoặc bằng 8, danh sách cần MASV, HOTENSV, DIEMTHI,
TENLOP.
Bài 2:
Cho lƣợc đồ cơ sở dữ liệu dùng để quản lý hồ sơ sinh viên bao gồm các
quan hệ Sv(sinh viên), Lop(Lớp), kh(khoa), Mh(môn học), Kq(kết quả) đƣợc mô tả
bởi các lƣợc đồ quan hệ nhƣ sau:
Sv(MASV,HOTEN,NU,NGAYSINH,MALOP,TINH,HOCBONG)
Tân từ: Mỗi sinh viên có mỗi MASV duy nhất. Mỗi MASV xác định tất cả
các thuộc tính cịn lại của sinh viên đó.
Lop(MALOP,TENLOP,SISO,MAKHOA)
Tân từ: Mỗi lớp có một mã lớp duy nhất, mỗi lớp chỉ thuộc về một khoa nào
đó.
Kh(MAKHOA,TENKHOA,SOCBGD)
Tân từ: Mỗi khoa có mỗi MAKHOA duy nhất. Mỗi MAKHOA xác định tất
cả các thuộc tính cịn lại của khoa đó.
24