Tải bản đầy đủ (.pdf) (93 trang)

Giáo trình Cơ sở dữ liệu (Nghề: Lập trình máy tính, Tin học ứng dụng - Trình độ CĐ/TC) - Trường Cao đẳng Nghề An Giang

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.56 MB, 93 trang )

Ủ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, SR. 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|t2r2,  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

MALOP

“CĐTH2A”

“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


×