Tải bản đầy đủ (.doc) (81 trang)

Lý thuyết và thực hành cơ sở dữ liệu

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.24 MB, 81 trang )

Giảng viên: Hồ Xuân Kiên
CHƯƠNG I – CƠ SỞ DỮ LIỆU
I.1. Hệ thống tập tin cổ điển (File System)
- Ta xét ví dụ về việc ứng dụng tin học hóa trong quản lý của một trường đại học, phòng đào tạo đã tổ
chức lưu trữ thông tin về đội ngũ các giáo sư, cán bộ giảng dạy và nghiên cứu…của trường nhằm phục
vụ cho các công tác đào tạo và nghiên cứu khoa học. Thông tin về một cán bộ gồm: họ tên, ngày sinh,
học hàm, học vị, chuyên môn, khoa,…

Hồ sơ
CBGD

Hồ sơ
Phòng ốc
Thiết bị

Lập kế hoạch
tuyển sinh

Kế hoạch
tuyển sinh

- Trong khi đó, ở từng khoa của trường, do yêu cầu tổ chức giảng dạy và nghiên cứu riêng của mình mà
các khoa cũng đã tổ chức lưu trữ hồ sơ của các giáo sư, cán bộ giảng dạy của khoa mình. Hồ sơ cán bộ
một phần được trích ra từ hồ sơ gốc của phòng đào tạo và thêm một số thông tin cần thiết khác…

Hồ sơ
CBGD
Khoa X

Học phần
Chuyên môn



Lập kế hoạch
Giảng dạy

Kế hoạch
Giảng dạy

- Ưu điểm của việc triển khai riêng rẽ từng hệ thống tập tin là thời gian triển khai ngắn, không đòi hỏi
ngay khả năng đầu tư lớn về vật chất, nhân sự.
- Khuyết điểm của hệ thống tập tin này là sự trùng lặp thông tin gây ra lãng phí (lưu trữ, bảo trì). Sự
trùng lặp này dẫn đến thiếu nhất quán về dữ liệu: Tại một thời điểm, thông tin về một cán bộ có thể
khác nhau ở hai hệ thống tập tin (phòng đào tạo và khoa). Cách tổ chức này thiếu sự chia sẻ thông tin
Giáo trình cơ sở dữ liệu

1


Giảng viên: Hồ Xuân Kiên
giữa các hệ thống và khó mở rộng hệ thống hoặc kêt nối các hệ thống riêng rẽ thành một hệ thống quản
lý chung.
- Để giải quyết những khuyết điểm của cách tổ chức dữ liệu theo hệ thống tập tin cổ điển, người ta xây
dựng nên khái niệm cơ sở dữ liệu.
I.2. Cơ sở dữ liệu (Database)
I.2.1. Khái niệm về cơ sở dữ liệu
- Cơ sở dữ liệu (CSDL) Là tập hợp có cấu trúc của dữ liệu được lưu trữ trên các thiết bị nhớ để có thể
thỏa mãn đồng thời cho nhiều người dùng sử dụng với nhiều mục đích khác nhau.
- Ví dụ, CSDL quản lý sinh viên, CSDL quản lý siêu thị, …
- Minh họa một cơ sở dữ liệu như sau:

- Ưu điểm của tổ chức thành một CSDL là làm giảm tối thiểu sự trùng lặp thông tin và đảm bảo được

tính nhất quán, tính toàng vẹn của dữ liệu, dễ dàng chia sẻ thông tin cho nhiều người dùng khác nhau,
tiết kiệm được tài nguyên và tăng hiệu quả khai thác.
- Để tổ chức và khai thác tốt CSDL thì phải có những hệ quản trị cơ sở dữ liệu (HQTCSDL).
I.2.2. Hệ quản trị cơ sở dữ liệu (Database Management System-DBMS)
- HQTCSDL là phần mềm cung cấp môi trường thuận lợi và hiệu quả để tạo lập, lưu trữ và khai thác
thông tin của CSDL.
- HQTCSDL giải quyết tốt những vấn đề mà cách tổ chức cơ sở dữ liệu đặt ra như tính bảo mật, cạnh
tranh truy xuất, an toàn dữ liệu,…
- Các HQTCSDL thường dùng là: MS Access, MS SQL Server, Oracle, Foxro,…
- Một HQTCSDL phải có ngôn ngữ mô tả dữ liệu (data definition language). Ngôn ngữ này cho phép
khai báo cấu trúc của dữ liệu, môt tả các mối quan hệ của dữ liệu cũng như những quy tắc quản lý áp
lên trên dữ liệu đó.
- Một HQTCSDL cũng phải có ngôn ngữ thao tác dữ liệu (data manipulation language) cho phép
người sử dụng có thể cập nhật dữ liệu (thêm, sửa, xóa), khai thác dữ liệu cho nhiều mục đích khác
nhau.
- Một HQTCSDL cũng phải có một ngôn ngữ con truy vấn dữ liệu (structured query language-SQL) để
thực hiện khai thác dữ liệu.
- Mỗi HQTCSDL cũng cài đặt một cơ chế để giải quyết các vấn đề tranh chấp dữ liệu.
- Mỗi HQTCSDL cung cấp cho người dùng cơ chế bảo mật và phục hồi dữ liệu khi có sự cố xẩy ra.
I.2.3. Các loại mô hình dữ liệu
- Mô hình dữ liệu là một sự hình thức hóa toán học với một tập ký hiệu để mô tả dữ liệu và
một tập các phép toán được sử dụng để thao tác các dữ liệu này.
- Ba loại mô hình thường dùng là:
 Mô hình thực thể - kết hợp (entity-relationship model)
 Mô hình dữ liệu quan hệ (relational data model)
 Mô hình hướng đối tượng (object-oriented data model)

Giáo trình cơ sở dữ liệu

2



Giảng viên: Hồ Xuân Kiên
I.2.3.1. Mô hình thực thể kết hợp (Entity Relationship - E/R)
- Mô hình dữ liệu quan hệ thường được dùng trong các HQTCSDL, đây là mô hình dữ liệu ở mức vật
lý. Để thành lập được mô hình này, thường là phải dùng mô hình dữ liệu ở mức quan niệm để đặc tả,
một trong những mô hình ở dạng đó là mô hình thực thể kết hợp. Đây là mô hình tiêu biểu nhất để thiết
kế bước đầu của một ứng dụng tin học.
- Ta có thể thấy quá trình thiết kế CSDL theo sơ đồ sau:

- Các khái niệm của mô hình thực thể kết hợp.
I.2.3.1.1. Thực thể
- Một thực thể là một đối tượng của thế giới thực.
I.2.3.1.2. Tập Thực thể
- Một tập thực thể là tập hợp các thực thể giống nhau.
- Ví dụ “Quản lý đề án công ty” thì:
 Một nhân viên là một thực thể
 Tập hợp các nhân viên là tập thực thể
I.2.3.1.3. Thuộc tính
- Là những đặc tính riêng biệt của tập thực thể. Miền giá trị của một thuộc tính là một tập các số
nguyên hoặc các số thực hoặc các xâu ký tự.
- Ví dụ, tập thực thể nhân viên có các thuộc tính:
 Họ tên
 Ngày sinh
 Địa chỉ
 …
I.2.3.1.4. Mối quan hệ
- Là sự liên kết giữa 2 hay nhiều tập thực thể.
- Ví dụ, giữa tập thực thể nhân viên và phòng ban có mối liên kết:
 Một nhân viên thuộc một phòng ban nào đó

 Một phòng ban có một nhân viên làm trưởng phòng
 …
I.2.3.1.5. Lược đồ thực thể (E-R)
- Là đồ thị biểu diễn các tập thực thể, thuộc tính và mối quan hệ.
- Các ký hiệu của lược đồ
Đỉnh:

Cạnh là đường nối giữa:
o Tập thực thể và thuộc tính
o Mối quan hệ và tập thực thể
Giáo trình cơ sở dữ liệu

3


Giảng viên: Hồ Xuân Kiên
- Ví dụ về lược đồ thực thể E-R:

I.2.3.1.6. Thể hiện của lược đồ thực thể (E-R)
- Một CSDL được mô tả bởi lược đồ E/R sẽ chứa đựng những dữ liệu cụ thể gọi là thể hiện CSDL.
- Mỗi tập thực thể sẽ có tập hợp hữu hạn các thực thể
 Giả sử tập thực thể NHANVIEN có các thực thể như NV1, NV2, …NVn
- Mỗi thực thể sẽ có 1 giá trị cụ thể tại mỗi thuộc tính
 NV1 có TENNV=“Tung”, NGSINH=“08/12/1955”, PHAI=“‘Nam”
 NV2 có TENNV= “Hang”, NGSINH=“07/19/1966”, PHAI=“Nu”
- Chú ý:
 Không lưu trữ lược đồ E/R trong CSDL.
 Lược đồ E/R chỉ giúp ta thiết kế CSDL trước khi chuyển các quan hệ và dữ liệu xuống
mức vật lý.
I.2.3.1.7. Mối quan hệ - thể hiện

- Thể hiện CSDL còn chứa các mối quan hệ cụ thể:
 Cho mối quan hệ R kết nối n tập thực thể E1, E2, …, En
 Thể hiện của R là tập hữu hạn các danh sách (e1, e2, …, en)
 Trong đó ei là các giá trị được chọn từ các tập thực thể Ei
- Xét mối quan hệ sau:

Giáo trình cơ sở dữ liệu

4


Giảng viên: Hồ Xuân Kiên
I.2.3.1.8. Mối quan hệ - Multiplicity
- Xét mối quan hệ nhị phân R (binary relationship) giữa 2 tập thực thể E và F, tính Multiplicity bao
gồm:

- (Min, Max) chỉ định mỗi thực thể e ∈ E tham gia ít nhất và nhiều nhất vào thể hiện của R






(0,1) – không hoặc 1
(1,1) – duy nhất 1
(0,n) – không hoặc nhiều
(1,n) – một hoặc nhiều

- Ví dụ:


I.2.3.1.9. Mối quan hệ - vai trò
- Một loại thực thể có thể tham gia nhiều lần vào một quan hệ với nhiều vai trò khác nhau.
- Ví dụ:

I.2.3.1.10. Thuộc tính trên mối quan hệ
- Thuộc tính trên mối quan hệ mô tả tính chất cho mối quan hệ đó.
- Thuộc tính này không thể gắn liền với những thực thể tham gia vào mối quan hệ.

Giáo trình cơ sở dữ liệu

5


Giảng viên: Hồ Xuân Kiên
I.2.3.1.11. Thuộc tính khóa
- Các thực thể trong tập thực thể cần phải được phân biệt
- Khóa K của tập thực thể E là một hay nhiều thuộc tính sao cho
 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
- Chú ý:
 Mỗi tập thực thể phải có 1 khóa
 Một khóa có thể có 1 hay nhiều thuộc tính
 Có thể có nhiều khóa trong 1 tập thực thể, ta sẽ chọn ra 1 khóa làm khóa chính cho tập
thực thể đó
- Ví dụ:

I.2.3.1.12. Tập thực thể yếu
- Là thực thể mà khóa có được từ những thuộc tính của tập thực thể khác
- Thực thể yếu (weak entity set) phải tham gia vào mối quan hệ mà trong đó có một tập thực thể chính
- Ví dụ 1:


Giáo trình cơ sở dữ liệu

6


Giảng viên: Hồ Xuân Kiên
- Ví dụ 2:

I.2.3.1.13. Các bước thiết kế cơ sở dữ liệu
- (1) Xác định tập thực thể
- (2) Xác định mối quan hệ
- (3) Xác định thuộc tính và gắn thuộc tính cho tập thực thể và mối quan hệ
- (4) Quyết định miền giá trị cho thuộc tính
- (5) Quyết định thuộc tính khóa
- (6) Quyết định (min, max) cho mối quan hệ
I.2.3.1.14. Quy tắc thiết kế
- Chính xác
- Tránh trùng lắp
- Dễ hiểu
- Chọn đúng mối quan hệ
- Chọn đúng kiểu thuộc tính
I.2.3.2. Mô hình dữ liệu quan hệ
- Là mô hình được phát triển vào năm 1970 do Codd E.F tại công ty IBM ở Sanjoe, Mỹ đề xuất.
 Đối tượng lưu trữ dữ liệu thể hiện như một bảng 2 chiều được gọi là các quan hệ (Relation
Table)
 Mô hình này có một cơ sở lý thuyết vững chắc nên là mô hình được phát triển rộng rãi nhất
hiện nay.
- Ví dụ:


Giáo trình cơ sở dữ liệu

7


Giảng viên: Hồ Xuân Kiên
I.2.3.3. Mô hình dữ liệu hướng đối tượng
- Từ cuối những năm 1980, nhiều ngôn ngữ mô hình dữ liệu hướng đối tượng (Object Oriented Data
Model) được đề xuất. Mỗi ngôn ngữ đều có hệ thống ký hiệu riêng, phương pháp biểu diễn riêng.
 Năm 1997, tập đoàn Rational đã công bố ngôn ngữ UML (Unified Modeling Language)
hiện đang là một ngôn ngữ thông dụng trong việc mô tả mô hình dữ liệu hướng đối
tượng hiện nay.
 UML sử dụng các khái niệm như :
o Lớp (class) đối tượng: bao gồm các thuộc tính và các phương thức (method) xử
lý trên dữ liệu của các đối tượng thuộc lớp.

- Mối quan hệ giữa các lớp:
Giữa các lớp có các dạng quan hệ cơ bản như:
o Quan hệ kết hợp (Associaton): thể hiện sự liên quan về ngữ nghĩa giữa hai lớp đối
tượng độc lập.

o Sự kế thừa (inheritance): Lớp con ngoài các thành phần và phương thức riêng còn
có thể kế thừa các thành phần và phương thức của lớp cha.

Giáo trình cơ sở dữ liệu

8


Giảng viên: Hồ Xuân Kiên

- Ví dụ về mô hình hướng đối tượng:

I.2.4. Bài tập
Bài tập 1: Hãy lập mô hình thực thể kết hợp để quản lý việc phân công thực hiện đề án của một công ty
với các quy tắc quản lý như sau:
- Mỗi phòng ban trong công ty có một mã số phân biệt và tên phòng ban phân biệt. Mỗi nhân
viên đều có một mã số phân biệt, có tên, và làm việc tại một phòng ban.
- Mỗi đề án đều được gán một mã đề án phân biệt, có tên đề án, ngày bắt đầu thực hiện đề án và
ngày kết thúc thực hiện đề án.
- Với mỗi đề án công ty phân công cho nhiều nhân viên cùng tham gia thực hiện, và ghi nhận
lại ngày nhân viên bắt đầu tham gia đề án. Mỗi nhân viên có thể tham gia nhiều đề án.
Bài tập 2: Hãy lập mô hình thực thể kết hợp để quản lý hóa đơn bán hàng tại một siêu thị với các quy
tắc quản lý như sau:
- Mỗi mặt hàng có một mã số phân biệt, có tên, đơn vị tính và đơn giá bán hiện hành
- Mỗi nhân viên có một mã số phân biệt, tên, ngày sinh, giới tính.
- Khi khách mang hàng đến các quầy tính tiền, nhân viên tại quầy tính tiền quét mã số các mặt
hàng khách mua và in cho khách một hóa đơn tính tiền. Mỗi hóa đơn tính tiền có một mã số
phân biệt, có ngày giờ lập và chi tiết các mặt hàng ghi trên hóa đơn bao gồm số thứ tự, tên mặt
hàng, số lượng, đơn giá và thành tiền. Mỗi hóa đơn chỉ do một nhân viên lập.
Bài tập 3: Hãy lập mô hình dữ liệu cho bài toán quản lý siêu thị với các quy tắc như sau:
- Siêu thị chia thành nhiều khu vực, mỗi khu vực đều có một mã số phân biệt và có 1 tên,
chuyên bán 1 loại mặt hàng, có 1 người quản lý và nhiều nhân viên làm việc trong khu vực đó.
- Mỗi nhân viên chỉ làm việc tại một khu vực và đều có một mã số phân biệt, ngoài ra cần lưu
trữ các thông tin như: họ tên, ngày sinh, địa chỉ, ngày vào làm việc.
- Mỗi loại hàng đều có một mã số phân biệt, có tên và bao gồm nhiều mặt hàng.
- Mỗi mặt hàng trong siêu thị đều có một mã số phân biệt, có tên, đơn vị tính, đơn giá bán hiện
hành. Mỗi mặt hàng đều có thể cung cấp bởi nhiều nhà cung ứng. Mỗi nhà cung ứng đều có một
mã số phân biệt, tên công ty, địa chỉ, số phone, số fax và các mặt hàng mà nhà cung ứng đó
cung cấp.
- Mỗi khách hàng khi mua hàng, quầy tính tiền sẽ in ra 1 bill gồm số hóa đơn, ngày lập hóa đơn,

tên khách mua, địa chỉ, và danh sách các mặt hàng mua kèm theo đơn giá bán.
Bài tập 4: Hãy lập mô hình dữ liệu cho bài toán quản lý điểm của sinh viên được phát biểu sơ bộ như
sau:
- Mỗi sinh viên cần quản lý các thông tin như: họ và tên (HOTENSV), ngày tháng năm
sinh(NGAYSINH), giới tính (NU), nơi sinh(NOISINH), hộ khẩu thường trú (TINH). Mỗi sinh
viên được cấp một mã số sinh viên duy nhất (MASV) để phân biệt với mọi sinh viên khác của
trường, mỗi sinh viên chỉ thuộc về một lớp nào đó.
Giáo trình cơ sở dữ liệu

9


Giảng viên: Hồ Xuân Kiên
- Mỗi lớp học có một mã số lớp (MALOP) duy nhất để phân biệt với tất cả các lớp học khác
trong trường: có một tên gọi (TENLOP) của lớp, mỗi lớp chỉ thuộc về một khoa.
- Mỗi khoa có một tên gọi (TENKHOA) và một mã số duy nhất (MAKHOA) để phân biệt với
các khoa khác.
- Mỗi môn học có một tên gọi (TENMH) cụ thể, được học trong một số đơn vị học trình
(DONVIHT) và ứng với môn học là một mã số duy nhất (MAMH) để phân biệt với các môn
học khác.
- Mỗi giảng viên cần quản lý các thông tin: họ và tên (HOTENGV), cấp học vị (HOCVI), thuộc
một chuyên ngành (CHUYENNGANH) và được gán cho một mã số duy nhất gọi là mã giảng
viên (MAGV) để phân biệt với các giảng viên khác. Mỗi giảng viên có thể dạy nhiều môn ở
nhiều khoa, nhưng chỉ thuộc về sự quản lý hành chính của một khoa.
- Mỗi sinh viên với một môn học được phép thi tối đa 3 lần, mỗi lần thi (LANTHI), điểm thi
(DIEMTHI).
- Mỗi môn học ở mỗi lớp học chỉ phân công cho một giảng viên dạy (tất nhiên là một giảng
viên thì có thể dạy nhiều môn ở một lớp).

Giáo trình cơ sở dữ liệu


10


Giảng viên: Hồ Xuân Kiên
CHƯƠNG II – MÔ HÌNH DỮ LIỆU QUAN HỆ
II.1. Các khái niệm cơ bản
II.1.1. Thuộc tính
- Là các đặc điểm riêng của một đối tượng. Ví dụ, mỗi sinh viên đều có mã số (MASV), họ (HOSV),
tên (TENSV), ngày sinh (NGAYSINH), khoa (MAKHOA).
- Các thuộc tính phân biệt với nhau thông qua tên của chúng và phải thuộc về một kiểu dữ liệu nhất
định (số, chuỗi, ngày tháng, logic, hình ảnh,…).
- 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 đó. Ví dụ, thuộc tính màu da có miền giá trị là {trắng, vàng, đen, đỏ}; thuộc tính
điểm thi là các số thuộc tập {0,1,2,…,10};…
- Lưu ý:
 Nếu không để ý đến ngữ nghĩa thì tên của các thuộc tính thường được ký hiệu bằng các
chữ cái in hoa đầu tiên trong bảng chữ cái Latinh: A,B,C,D,…Những chữ cái in hoa
X,Y,Z,W,…thường dùng thay cho một nhóm nhiều thuộc tính. Đôi khi còn dùng các ký
hiệu chữ cái và các chỉ số A1,A2,A3,…,An để chỉ các thuộc tính trong trường hợp tổng
quát hay muốn đề cập đến số lượng các thuộc tính.
 Tên thuộc tính phải đặt gợi nhớ, không đặt quá ngắn hoặc quá dài, không đặt trùng tên 2
thuộc tính mang ngữ nghĩa khác nhau thuộc 2 đối tượng khác nhau.
II.1.2. Lược đồ quan hệ
- 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 gọi là lược
đồ quan hệ. Lược đồ quan hệ Q với tập thuộc tính {A 1,A2,A3,…,An} được viết là Q(A1,A2,A3,…,An) , ký
hiệu Q+ = {A1,A2,A3,…,An}
- Ví dụ, lược đồ quan hệ Sinhvien và Ketqua với các thuộc tính như sau:
 Sinhvien(MASV, HOTENSV, NU, NGAYSINH, NOISINH, TINH, MALOP)
 Ketqua(MASV, MAMH, LANTHI,DIEMTHI)

- Thông thường khi lập lược đồ quan hệ người ta gắn cho nó một ý nghĩa nhất định, gọi là tân từ của
lược đồ.
- Ví dụ, tân từ của lược đồ Sinhvien là: “mỗi sinh viên có một MASV duy nhất. Mỗi MASV xác định
các thuộc tính còn lại của sinh viên đó như HOTENSV, NU, NGAYSINH, NOISINH, TINH, MALOP.
- Nhiều lược đồ quan hệ cùng nằm trong một hệ thống được gọi là một lược đồ cơ sở dữ liệu.
II.1.3. Quan hệ
- Sự thể hiện của lược đồ quan hệ ở một thời điểm nào đó gọi là quan hệ. Trên một lược đồ quan hệ có
thể xác định được nhiều quan hệ. Thường ta dùng ký hiệu R,S,Q để chỉ các lược đồ quan hệ, còn
quan hệ thường được dùng bởi các ký hiệu r,s,q,…
- Về trực quan thì quan hệ như là một bảng hai chiều gồm có các dòng và các cột.
- Một quan hệ có n thuộc tính gọi là quan hệ n ngôi.
- Để chỉ quan hệ r xác định trên lược đồ quan hệ Q ta có thể viết r(Q).
- Ví dụ:
 Quan hệ r(Sinhvien) được định nghĩa trên lược đồ quan hệ Sinhvien:
MASV HOTENSV
NU
NGAYSINH NOISINH
TINH
MALOP
91023
Phạm nguyễn Anh
Nữ
05/03/1983
Đồng Nai
Đồng Nai
CNTT
91045
Lê Thanh Trung
Nam 22/06/1983
Đồng Nai

Đồng Nai
CNTT
91088
Nguyễn Hồng Vân
Nữ
12/07/1983
Đồng Nai
Đồng Nai
CNTT
 Quan hệ r(Ketqua) được định nghĩa trên lược đồ quan hệ Ketqua:
MASV
MAMH
LANTHI
DIEMTHI
91023
CSDL
1
8
91045
CSDL
1
6
91088
CSDL
1
8
Giáo trình cơ sở dữ liệu

11



Giảng viên: Hồ Xuân Kiên
91023
TTNT
1
7
91045
TTNT
1
4
91088
TTNT
1
9
91045
TTNT
2
6
II.1.4. Bộ
- Mỗi bộ là những thông tin về một đối tượng thuộc một quan hệ, bộ cũng được gọi là mẫu tin.
- Thường dùng các chữ cái như t,u,… để biểu diễn bộ trong quan hệ. Khi nói t là một bộ trong quan hệ
r thì ta viết t ∈ r.
- Ví dụ, t = (91023, Phạm nguyễn Anh, Nữ, 05/03/1983, Đồng Nai, Đồng Nai, CNTT) là một bộ
trong quan hệ r(Sinhvien).
II.1.5. Siêu khóa – Khóa chỉ định
- Một tập hợp con S của Q được gọi là siêu khóa của Q nếu r là quan hệ bất kỳ trên Q, t 1,t2 là hai bộ bất
kỳ thuộc r thì t1.S ≠t2.S.
- Một lược đồ quan hệ có thể có một hoặc nhiều siêu khóa.
- Ví dụ, lược đồ quan hệ Sinhvien ở trên có các siêu khoá là: {MASV}, {MASV,HOTENSV},
{MASV,HOTENSV,NU}, {MASV,HOTENSV,NU,TINH },…

- Siêu khóa không chứa một siêu khóa nào khác được gọi là khóa chỉ định (khóa chính). Ví dụ, khóa
chỉ định trong quan hệ Sinhvien là {MASV}.
- Thường các thuộc tính khóa được gạch dưới theo kiểu liền nét.
- Một thuộc tính được gọi là thuộc tính khóa ngoại nếu nó không là thuộc tính khóa của lược đồ quan
hệ này nhưng là thuộc tính khóa của một quan hệ khác.
- Ví dụ, MALOP là khoá ngoại của lược đồ quan hệ Sinhvien, nhưng là khóa chính của quan hệ Lop
cho dưới đây.
 Sinhvien(MASV, HOTENSV, NU, NGAYSINH, TINH, MALOP)
 Lop(MALOP,TENLOP,MAKHOA)
- Người ta cũng quy ước rằng:
 Trong một bộ của quan hệ các thuộc tính khoá không chứa giá trị rỗng.
 Không được phép sửa đổi giá trị thuộc tính khoá của một bộ q. Nếu muốn sửa đổi giá trị
thuộc tính khoá của một bộ q, người sử dụng phải huỷ bỏ bộ q và sau đó thêm một bộ q’
với giá trị khoá đã được sửa đổi.
II.2. Chuyển đổi mô hình thực thể kết hợp sang mô hình dữ liệu quan hệ
II.2.1. Các quy tắc chuyển đổi:
- Quy tắc 1: Tập thực thể
 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.
 Ví dụ:

Giáo trình cơ sở dữ liệu

12


Giảng viên: Hồ Xuân Kiên
- Quy tắc 2: Mối quan hệ
 (2a) Nhiều-Nhiều
 Tạo một quan hệ mới có:

∗ Tên quan hệ là tên của mối quan hệ
∗ 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
∗ Ví dụ:



(2b) Một-Nhiều
 Thêm vào quan-hệ-một thuộc tính khóa của quan-hệ-nhiều
 Ví dụ:



(2c) Một-Một
 Hoặc thêm vào quan hệ này thuộc tính khóa của quan hệ kia
 Hoặc thêm thuộc tính khóa vào cả 2 quan hệ
 Ví dụ:

- Quy tắc 3: Thực thể yếu
Giáo trình cơ sở dữ liệu

13


Giảng viên: Hồ Xuân Kiên


Chuyển thành một quan hệ
 Có cùng tên với thực thể yếu
 Thêm vào thuộc tính khóa của quan hệ liên quan
 Ví dụ:


II.2.2. Bài tập
Thực hiện chuyển đổi các mô hình thực thể kết hợp của các bài tập trong chương I thành mô
hình thực thể quan hệ.

Giáo trình cơ sở dữ liệu

14


Giảng viên: Hồ Xuân Kiên
II.3. Ngôn ngữ đại số quan hệ
- Đại số quan hệ: Là tập hợp các phép toán cơ sở của mô hình dữ liệu quan hệ. Biểu thức đại số quan
hệ là một chuỗi các phép toán. Kết quả của một biểu thức là một thể hiện quan hệ.
- Ý nghĩa: Cơ sở hình thức cho các phép toán của mô hình quan hệ. Cơ sở để cài đặt và tối ưu hóa các
truy vấn trong các hệ quản trị cơ sở dữ liệu quan hệ. Được sử dụng trong SQL.
II.3.1. Phép toán một ngôi
- Là phép toán chỉ tác động lên một quan hệ.
- Gồm có các phép toán:
 Phép toán chọn (Select)
 Phép toán chiếu (Project)
 Phép toán đổi tên (Rename)
II.3.1.1. Phép toán chọn (SELECT)
- Phép toán SELECT được dùng để chọn lọc ra một tập con gồm những bộ (Tuple) từ một quan hệ
thỏa điều kiện chọn lọc. Có thể xem phép toán SELECT như một bộ lọc chỉ lưu trữ những bộ (Tuple)
thỏa điều kiện chọn lọc.
- Phép toán SELECT được biểu diễn như sau:
σ <Điều kiện chọn>(<r>) Hoặc (<r>:<Điều kiện chọn>)
- Trong đó kí hiệu: σ (sigma) dùng để biểu diễn toán tử SELECT và điều kiện chọn lọc là một biểu
thức logic được chỉ ra trên các thuộc tính của quan hệ r. Biểu thức logic chỉ ra trong <Điều kiện chọn>

được cấu tạo từ một số mệnh đề có dạng:
 <Tên thuộc tính ><Toán tử so sánh><giá trị hằng số >
 <Tên thuộc tính><Toán tử so sánh ><Tên thuộc tính>
Trong đó: <Toán tử so sánh > thông thường sẽ là một trong những toán tử {=, ≤ , <, > , ≥ , ≠
}, các phép toán logic là AND (và) OR (hoặc) NOT (không) tương ứng với các ký hiệu là: ∧ , ∨ , ¬ .
- Hình thức hóa phép chọn được định nghĩa như sau:
σ F (r) = {t ∈ r | F(t)=đúng}
F(t) được hiểu là giá trị của thuộc tính xuất hiện trong biểu thức F tại bộ t thỏa mãn điều kiện
chọn F.
- Ví dụ 1: Cho quan hệ r có các bộ tương ứng với các thuộc tính A, B, C, D như sau:
r
(A
B
C
D)
a1
b1
c1
d1
a1
b1
c1
d2
a2
b2
c2
d2
a2
b2
c3

d3
- Khi đó ta có kết quả của các phép chọn như sau:
σ A=a1 (r) =
(A
B
C
D)
a1
b1
c1
d1
a1
b1
c1
d2
σ A=a1 and D=d2 (r) =
(A
B
C
D)
a1
b1
c1
d2
- Ví dụ 2: Chọn ra những sinh viên lớp “TH1” từ quan hệ SinhVien như sau: SinhVien(Mã Sv, Họ
Tên, Ngày Sinh, Phai, Mã Lớp):

 Khi đó phép chọn σ

Mã Lớp = “TH1”


Giáo trình cơ sở dữ liệu

(SinhVien) cho kết quả như sau:
15


Giảng viên: Hồ Xuân Kiên

II.3.1.2. Phép toán chiếu (Project)
- Phép toán Chiếu (Project) là chọn lọc ra những cột cụ thể từ bảng và bỏ qua những cột khác.
- Hình thức hóa phép chiếu được định nghĩa như sau:
Gọi X là tập con của thuộc tính R. Phép chiếu trên tập X của quan hệ r, ký hiệu là π x (r)
được định nghĩa như sau:
π x (r) = {t[x] / t ∈ r)
- Phép toán Project xóa bỏ những bộ trùng lặp bất kỳ.
- Ví dụ 1: R (A,B,C,D), X(A,B), Y(A,C)
r
(A
B
C
D)
a1
b1
c1
d1
a1
b1
c1
d2

a2
b2
c2
d2
a2
b2
c3
d3
π X (r) =
(A
B)
a1
b1
a2
b2
π Y (r) =
(A
C)
a1
c1
a2
c2
a2
c3
- Ví dụ 2: Cho quan hệ SinhVien(Mã Sv, Họ Tên, Ngày Sinh, Phai, Mã Lớp). Thực hiện đưa ra
những thông tin là Mã Sv và Họ Tên:

 Khi đó phép chiếu π Mã SV, Họ Tên (SinhVien) cho kết quả như sau:

Giáo trình cơ sở dữ liệu


16


Giảng viên: Hồ Xuân Kiên
II.3.1.3. Trình tự phép toán
- Chúng ta muốn lần lượt áp dụng một số phép toán đại số quan hệ. Hoặc là chúng ta có thể viết những
phép toán như là một biểu thức đại số quan hệ đơn lẻ bằng cách lồng các phép toán với nhau, hoặc là
chúng ta chúng ta có thể áp dụng một phép toán tại một thời điểm và tạo ra những quan hệ kết quả
trung gian. Ở trừờng hợp sau chúng ta phải đặt tên cho những quan hệ giữa các kết quả trung gian.
- Ví dụ: Để chọn lọc ra họ, tên và lương bổng của tất cả các nhân viên đang làm việc trong phòng số 5
chúng ta phải áp dụng một phép toán SELECT và một phép toán Project. Chúng ta có thể viết một biểu
thức đơn lẻ như sau:
π Họ,Tên,Lương( σ MS_PB=5(NHANVIEN))
- Tuy nhiên chúng ta có thể trình bày một cách tường minh trình tự các phép toán, đặt tên cho mỗi quan
hệ trung gian:
NV_PBAN ¬ σ MS_PB=5(NHANVIEN)
Kết quả ¬ π Họ,Tên,Lương(NV_PBAN)
II.3.1.4. Phép toán đổi tên (Rename)
- Để đổi tên quan hệ và các thuộc tính.
- Cú pháp: Cho quan hệ r(A1,A2,…,An)
 Đổi tên quan hệ r thành s: ρ s (r)
 Đổi tên quan hệ r thành s và các thuộc tính Ai thành Bi: ρ s(B1, B2, …, Bn) (r)
 Đổi tên các thuộc tính Ai thành Bi: ρ (B1, B2, …, Bn) (r)
 Đổi tên quan hệ r thành s và thuộc tính A1 thành B1: ρ s(B1, A2, …, An) (r)
 Đổi tên thuộc tính A1 thành B1: ρ (B1, A2, …, An) (r)
II.3.1.5. Bài tập áp dụng
- Cho lược đồ quan hệ của một công ty như hình sau:

Câu 1: Tìm những nhân viên làm việc trong phòng ban số 4 và có lương 1000000 đến 2000000.

Câu 2: Cho biết họ tên, giới tính, mức lương của các nhân viên.
Câu 3: Cho biết họ tên, giới tính, mức lương của các nhân viên làm việc trong phòng ban số 5.

Giáo trình cơ sở dữ liệu

17


Giảng viên: Hồ Xuân Kiên
II.3.2. Phép toán hai ngôi
- Là phép toán tác động lên hai quan hệ.
- Gồm có 2 loại:
* Phép toán tập hợp:
 Phép hợp (Union)
 Phép giao (Intersection)
 Phép trừ (Minus)
 Phép tích đề các
* Phép toán phi tập hợp:
 Phép kết (Join)
 Phép Chia (Division)
II.3.2.1. Các phép toán tập hợp
- Chỉ được áp dụng khi hai quan hệ được tác động là khả hợp.
- Hai quan hệ r và s gọi là khả hợp nếu: Chúng được xác định trên cùng tập thuộc tính và các thuộc
tính trùng tên có cùng miền giá trị.
a. Phép hợp
- Hợp của 2 quan hệ r và s khả hợp, ký hiệu là r ∪ s là tập các bộ thuộc r hoặc s hoặc cả 2 quan hệ.
- Định nghĩa hình thức thì phép hợp có dạng:
r ∪ s = {t | t ∈ r hoặc t ∈ s hoặc t ∈ r và s}
- Ví dụ:
r(A

B
C)
s(A
B
C)
r ∪ s = (A
B
C)
a1
b1
c1
a1
b1
c1
a1
b1
c1
a2
b1
c2
a2
b2
c2
a2
b1
c2
a2
b2
c1
a2

b2
c2
a2
b2
c1

- Chú ý: Nếu trong 2 quan hệ r và s có bộ giống nhau thì thì r s sẽ lấy một bộ giá trị.
b. Phép giao
- Giao của 2 quan hệ r và s khả hợp, ký hiệu là r ∩ s là tập các bộ thuộc cả 2 quan hệ r và s.
- Định nghĩa hình thức của phép giao như sau:
r ∩ s = {t | t ∈ r và t ∈ s}
- Ví dụ:
r(A
B
C)
s(A
B
C)
a1
b1
c1
a1
b1
c1
a2
b1
c2
a2
b2
c2

a2
b2
c1
r ∩s=

(A

B

C)

a1
b1
c1
c. Phép trừ
- Hiệu của 2 quan hệ r và s khả hợp, ký hiệu r-s, là tập các bộ thuộc r nhưng không thuộc vào s.
- Định nghĩa hình thức của phép trừ như sau:
r-s = {t | t ∈ r và t ∉ s}
- Ví dụ:
r(A
B
C)
s(A
B
C)
a1
b1
c1
a1
b1

c1
a2
b1
c2
a2
b2
c2
a2
b2
c1
Giáo trình cơ sở dữ liệu

18


Giảng viên: Hồ Xuân Kiên
r-s = (A
B
C)
a2
b1
c2
a2
b2
c1
- Chú ý: Phép giao của 2 quan hệ r và s có thể được biểu diễn thông qua phép trừ như sau:
r ∩ s = r-(r-s)
d. Phép tích đề các
- Gọi r là quan hệ xác định trên tập thuộc tính {A 1,…,An) và s là quan hệ xác định trên tập thuộc tính
{B1,…,Bm}. Tích đề các của r và s (không nhất thiết phải khả hợp) ký hiệu là r x s là tập n + m bộ với n

thành phần đầu có dạng một bộ thuộc r và m thành phần sau có dạng của một bộ thuộc s
- Định nghĩa hình thức của phép tích đề các như sau:
r x s = { t | t có dạng (a1,a2,…,an, b1,b2,…,bm), trong đó a1,a2,…,an ∈ r và b1,b2,…,bm ∈ s}
- Ví dụ:
r(A
B
C)
s(D
E
F)
rxs = (A B C D E F)
a1
b1
c1
d
e
f
a1 b1 c1 d e f
a2
b2
c2
d’
e’
f
a1 b1 c1 d’ e’ f
a2 b2 c2 d e f
a2 b2 c2 d’ e f
e. Ví dụ áp dụng các phép toán tập hợp
- Trong các quan hệ sau:


Câu 1: Tìm mã số của các nhân viên làm việc ở phòng số 4 hoặc giám sát trực tiếp của các nhân viên
làm việc ở phòng số 4.
Hướng dẫn:
1. NV4  σ MaPB = 4 (NHANVIEN)
2. KQ1 π MaNV (NV4)
3. KQ2  π MaGSat (NV4)
4. KQ  KQ1 ∪ KQ2
Câu 2: Cho biết họ tên của các nhân viên nữ và tên của các thân nhân của họ.
Hướng dẫn:
1. NVNU  σ Gioitinh = nu (NHANVIEN)
2. KQ1  π Ho, Ten, MaNV (NVNU)
3. KQ1’  ρ (Honv, Tennv, Manv1) (KQ1)
4. KQ2  KQ1’ x THANNHAN
5. KQ3  σ MaNV = Manv1 (KQ2)
6. KQ  π Honv, Tennv, Ten (KQ3)

Giáo trình cơ sở dữ liệu

19


Giảng viên: Hồ Xuân Kiên
II.3.2.2. Các phép toán phi tập hợp
a. Phép kết nối
- Để định nghĩa phép kết nối của các quan hệ, trước hết ta làm quen với khái niệm “xếp cạnh nhau”.
Giả sử cho bộ t = (t1,t2,…,tm) và bộ u = (u1,u2,…,um) thì phép xếp cạnh nhau của t và u định nghĩa qua:
t ∩ u = (t1,t2,…,tm, u1,u2,…,um)
- Gọi θ là một trong các phép tính {=, >, >=, <, <=, ≠). Phép kết nối đựợc định nghĩa như sau:
Phép kết nối của quan hệ r đối với thuộc tính A với quan hệ s đối với thuộc tính B được
định nghĩa qua:

r
s = {(t ∩ u) | t ∈ r; u ∈ s và t[A] θ u[B]}
Aθ B
Dĩ nhiên ỏ đây chúng ta giả thiết rằng mỗi giá trị của cột r[A] đều có thể so sánh được
(qua phép θ ) với mỗi giá trị của cột s[B].
- Trong trường hợp phép so sánh θ là “=” gọi là kết nối bằng.
- Trường hợp kết nối bằng tại thuộc tính cùng tên của 2 quan hệ và một trong 2 thuộc tính đó được loại
bỏ qua phép chiếu, thì phép kết nối được gọi là “kết nối tự nhiên” và sử dụng ký tự *.
- Khi đó phép kết nối tự nhiên của 2 quan hệ được biểu diễm qua:
r(ABC)*s(CDE) = {t[ABCDE] | t[ABC] ∈ r và t[CDE] ∈ s}
- Ví dụ 1: cho 2 quan hệ r và s như sau:
r(A
B
C)
s(D
E)
a1
b1
1
1
e1
a2
b2
2
2
e2
a3
b3
3
3

e3
- Khi đó ta có các phép kết nối như sau:
r
s=
K(A B
C
D
E)
C<=D

a1
a1
a1
a2
a2
a3

b1
b1
b1
b2
b2
b3

1
1
1
2
2
3


1
2
3
2
3
3

e1
e2
e3
e2
e3
e3

k(A

B

C

D

E)

a1
b1
1
1
a2

b2
2
2
a3
b3
3
3
- Ví dụ 2: cho 2 quan hệ r và s như sau:
r(A
B
C)
s(C
D
E)
a1
1
1
1
d1
e1
a2
2
1
2
d2
e2
a3
2
2
3

d3
e3
 Kết quả của phép kết nối tự nhiên như sau:
r(ABC)*s(CDE) =
(A
B
C
a1
1
1
a2
2
1
a3
2
2

e1
e2
e3

r

s=

C=D

Giáo trình cơ sở dữ liệu

D

d1
d1
d2

E)
e1
e1
e2

20


Giảng viên: Hồ Xuân Kiên
b. Phép chia
- Gọi r là quan hệ n ngôi xác định trên tập thuộc tính U và s là quan hệ m ngôi xác định trên tập thuộc
tính V với n>m và s khác rỗng. Phép chia quan hệ r cho s, ký hiệu là r ÷ s, là tập tất cả các bộ t sao cho
với mọi bộ v thuộc s thì t ghép với v thuộc r.
- Định nghĩa hình thức:
r ÷ s = {t | với mọi v thuôc s thì (t,v) thuộc r}
- Ví dụ 1: cho quan hệ và r và s như sau:
r(A
B
C
D)
s(C
D)
r÷s=
(A
B)
a

b
c
d
c
d
a
b
a
b
e
f
e
f
e
d
b
c
e
f
e
d
c
d
e
d
e
f
a
b
d

e
- Ví dụ 2: Cho quan hệ KET_QUA. Chọn ra những sinh viên có điểm môn CSDL là 8 và CTDL là 7.

Hướng dẫn: Ta thiết lập một quan hệ YEU_CAU như sau:

Thực hiện phép chia: KET_QUA ÷ YEU_CAU ta sẽ thu được kết quả như sau:

- Ví dụ 3: Cho biết các phi công có khả năng lái được cả loại máy bay 100 và 103?

Giáo trình cơ sở dữ liệu

21


Giảng viên: Hồ Xuân Kiên
II.3.3. Các ví dụ về biểu diễn câu hỏi bằng đại số quan hệ
- Cho CSDL gồm có 3 quan hệ như sau:
 S(S#, SNAME, STATUS, CITY). Các hãng cung ứng
 P(P#, PNAME, COLOR, WEIGHT, CITY). Các mặt hàng
 SP(S#, P#, QTY). Các sự cung ứng
- Các bộ dữ liệu trong các quan hệ như sau:
S(S# SNAME
STATUS
CITY)
S1 Smith
20
London
S2 Jones
10
Paris

S3 Blacke
30
Paris
P(P# PNAME
COLOR
WEIGHT
CITY)
P1 Nut
red
12
London
P2 Bolt
green
17
Paris
P3 Screw
blue
17
Rom
P4 Screw
red
14
London
SP(S# P#
QTY)
S1 P1
300
S1 P2
200
S1 P3

400
S2 P1
300
S2 P2
400
S3 P2
200
- Câu 1: đưa ra danh sách các mặt hàng màu đỏ. σ

COLOR = ‘red’

(P)

- Câu 2: Đưa ra S# của các hãng cung ứng mặt hàng P1 hoặc P2.

π S# ( σ

(P#= ‘P1’ or P# = ‘P2’)

(SP))

- Câu 3: Đưa ra S# của các hãng cung ứng cả 2 mặt hàng P1 và P2

π S# ( σ

(P#= ‘P1’)

(SP))

π S# ( σ


(P#= ‘P2’)

(SP))

- Câu 4: Đưa ra S# của các hãng cung ứng ít nhất một mặt hàng màu đỏ.

π S# (SP * σ

COLOR = ‘red’

(P))

- Câu 5: Đưa ra các hãng cung cấp tất cả các mặt hàng.
π S#, P# (SP) ÷ π P# (P)

Giáo trình cơ sở dữ liệu

22


Giảng viên: Hồ Xuân Kiên
II.3.4.. Bài tập phần Đại Số Quan Hệ
Bài tập 1: Cho lược đồ cơ sở dữ liệu với các quan hệ cụ thể như sau:
NHAN
HO
C_LOT TEN
CMND
NGAY
DIACHI PHAI

VIEN

MA_NGS

MS

Nguyễn Thành

Lộc

Nam

1000.000

PBAN
333445555 5

Phan

9
Kim Q10
Thành 333445555 08/12/55 Nguyễn Đ Nam

1500.000

888665555 5

2000.000

88765432


1200.000

1
888665555 4

3000.000

333445555 5

Trần

Ngọc
Yến

Linh

12345678

SINH
09/07/65 Nguyễn

LUONG

Chiểu Q3
999887777 19/07/68 304Trần B Nữ

Hồ

Đan


Lan

98765432

Trọng Q5
20/06/41 239 Trần Nữ

Lâm

Thiên

Ân

1
66688444

H. Đạo Q1
15/09/62 50
Bình Nam

Bích

Hồng

4
Phú Q6
453453453 31/07/72 220Nguyễn Nữ

Quốc


Phương Q2
Thắng 987987987 29/03/69 111Bùi
Nam

Tuấn

Xuân Q1
888665555 10/11/37 515 Nam Nam


Lưu
Trần

Kiệt

4

2.200.000 333445555 5
2.200.000 98765432

4

1
2.500.000 Null

1

nghĩa Q3
PHONGBAN TEN_PBAN

Nghiên Cứu
Hành Chánh
Ban Giám
Đốc

MS_PBAN
5
4
1

CMND_TR_PHONG
333445555
987654321
888665555

CACDIADIEMPHONG MS_PBAN
5
4
1
5

Giáo trình cơ sở dữ liệu

NGAYBATDAULAMVIEC
22/05/88
01/01/95
19/06/81

DIADIEMPHONG
Huế

TP.HCM
Hà Nội
Cần Thơ

23


Giảng viên: Hồ Xuân Kiên
DANG_LVIECTRONG CMND_NV
123456789
123456789
666884444
453453453
453453453
333445555
333445555
333445555
333445555
999887777
999887777
987987987
987987987
987654321
987654321
888665555
DUAN

Giáo trình cơ sở dữ liệu

TEN_DU_AN

Sản phẩm X
Sản phẩm Y
Sản phẩm Z
Vi tính hóa
Tái cơ cấu
Lợi nhuận mới

MS_DUAN
1
2
3
10
20
30

MS_DUAN
1
2
3
1
2
2
3
10
20
30
10
10
30
30

20
20

SOGIO
35.5
7.5
40.0
20.0
20.0
23.0
10.0
10.0
10.0
30.0
10.0
35.0
5.0
30.0
40.0
Null

DIADIEMDUAN
Huế
TPHCM
Cần Thơ
An Giang
Quy Nhơn
Hà Nội

SO_PBAN

5
5
5
4
1
4

24


Giảng viên: Hồ Xuân Kiên
NG_LIENH
E

CMND_NV TENNGHUOILIENHE PHAI NGAYSINH MOIQUANHE

333445555 Phan Ngọc Tâm
Nữ
05/04/86
Con gái
333445555 Phan Ngọc Sơn
Nam 25/10/83
Con Trai
333445555 Lê Thị Tuyết
Nữ
03/05/58
Vợ
987654321 Trần Thanh Tùng
Nam 28/02/42
Chồng

123456789 Nguyễn Thành Long
Nam 04/01/88
Con Trai
123456789 Nguyễn Quỳnh Giao
Nữ
30/12/86
Con Gái
123456789 Lâm Thúy Hiền
Nữ
05/05/67
Vợ
Câu 1: Lọc ra tên và địa chỉ của tất cả nhân viên đang làm việc ở phòng nghiên cứu.
Câu 2: Đối với tất cả các dự án ở “An Giang”, liệt kê mã số dự án, mã số của phòng ban quản lý và họ
tên, địa chỉ, ngày sinh của người trưởng phòng quản lý đó.
Câu 3: Tìm tên của những nhân viên làm việc trên tất cả các dự án do phòng ban số 5 quản lý.
Câu 4: Lọc tên của những nhân viên không có người liên hệ.
Câu 5: Liệt kê tên của những người quản lý có tối thiểu một người liên hệ.
Câu 6: Lọc ra tên của các nhân viên làm việc trên tất cả những dự án mà Nguyễn Thành Lộc đang làm
việc (sử dụng phép chia).
Bài tập 2: 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)
Thực hiện các yêu cầu sau bằng ngôn ngữ đại số quan hệ:
Câu 1: 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

Câu 2: 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âu 3: 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.
Câu 4: 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.
Câu 5: 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.
Câu 6: 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.
Câu 7: 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
Câu 8: 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.

Giáo trình cơ sở dữ liệu

25


×