TRƢỜNG ĐẠI HỌC HÀNG HẢI

KHOA CÔNG NGHỆ THÔNG TIN
BỘ MÔN HỆ THỐNG THÔNG TIN
-----***-----






BÀI GIẢNG

CƠ SỞ DỮ LIỆU




TÊN HỌC PHẦN : CƠ SỞ DỮ LIỆU
MÃ HỌC PHẦN : 17401
TRÌNH ĐỘ ĐÀO TẠO : ĐẠI HỌC CHÍNH QUY
DÙNG CHO SV NGÀNH : CÔNG NGHỆ THÔNG TIN












HẢI PHÒNG - 2011
2
MỤC LỤC

Chƣơng 1. Giới thiệu 7
1.1. Tổng quan về cơ sở dữ liệu 7
1.2. Hệ thống tệp tin và hệ quản trị dữ liệu 7
1.3. Các mô hình dữ liệu 9
1.4. Các mức độ trừu tượng trong cơ sở dữ liệu 17
Chƣơng 2. Mô hình Thực thể-Liên kết 21
2.1. Tổng quan về thiết kế cơ sở dữ liệu 21
2.2. Mô hình Thực thể-Liên kết 21
2.3. Thực thể và thuộc tính 21
2.4. Quan hệ giữa các thực thể 22
Chƣơng 3: Mô hình dữ liệu quan hệ 24
3.1. Các khái niệm cơ bản 24
3.2. Các ràng buộc dữ liệu 24
3.3. Chuyển đổi sơ đồ Thực thể-Liên kết sang cơ sở dữ liệu quan hệ 27
Chƣơng 4. Đại số quan hệ 29
4.1. Phép chọn 29
4.2. Phép chiếu 29
4.3. Phép hợp 30
4.4. Phép giao 30
4.5. Phép trừ 30
4.6. Tích Descartes 31
4.7. Các phép kết nối 31
4.8. Phép chia 32
Chƣơng 5. Ngôn ngữ truy vấn có cấu trúc- SQL 33
5.1. Tổng quan về SQL 33
5.2. Truy vấn SQL cơ bản 33
5.3. Truy vấn sử dụng các hàm thống kê 34
5.4. Các lệnh sửa đổi dữ liệu 35
Chƣơng 6. Chuẩn hóa và rút gọn cơ sở dữ liệu quan hệ 37
6.1. Các vấn đề về dư thừa dữ liệu 37
6.2. Các phụ thuộc hàm 37
6.3. Các dạng chuẩn của lược đồ quan hệ 44
3
6.3.1. Dạng chuẩn 1 (1NF) 44
6.3.2. Dạng chuẩn 2 (2NF) 44
6.3.3. Dạng chuẩn 3 (3NF) 44
6.3.4. Dạng chuẩn Boyce-Codd (BCNF) 44
6.4. Phép tách lược đồ quan hệ 45
6.4.1. Phép tách bảo toàn thông tin 45
6.4.2. Phép tách bảo toàn phụ thuộc 45
6.5. Chuẩn hóa lược đồ quan hệ 47
6.5.1. Tách lược đồ quan hệ về 3NF 47
6.5.2. Tách lược đồ quan hệ về BCNF 47
Một số đề thi mẫu 49

4
Tên học phần: Cơ sở dữ liệu Loại học phần: 1
Bộ môn phụ trách giảng dạy: Hệ thống Thông tin Khoa phụ trách: CNTT.
Mã học phần: 17401 Tổng số TC: 2
Tổng số tiết Lý thuyết Thực hành/ Xemina Tự học Bài tập lớn Đồ án môn học
45 45 0 0 không không

Học phần học trƣớc: Không yêu cầu.
Học phần tiên quyết: Không yêu cầu.
Học phần song song: Không yêu cầu.
Mục tiêu của học phần:
Cung cấp các kiến thức cơ bản về mô hình cơ sở dữ liệu quan hệ; Thiết kế một cơ sở dữ liệu hiệu
quả.
Nội dung chủ yếu:
Giới thiệu về cơ sở dữ liệu; Mô hình Thực thể-Liên kết; Mô hình dữ liệu quan hệ; Đại số quan hệ;
Giới thiệu về ngôn ngữ truy vấn dữ liệu có cấu trúc SQL; Thiết kế cơ sở dữ liệu quan hệ.
Nội dung chi tiết:

TÊN CHƢƠNG MỤC
PHÂN PHỐI SỐ TIẾT
TS LT TH BT KT
Chƣơng 1. Giới thiệu 3 3
1.1. Tổng quan về cơ sở dữ liệu
1.2. Hệ thống tệp tin và hệ quản trị dữ liệu
1.3. Các mô hình dữ liệu
1.4. Các mức độ trừu tượng trong cơ sở dữ liệu
Chƣơng 2. Mô hình Thực thể-Liên kết 6 6
2.1. Tổng quan về thiết kế cơ sở dữ liệu
2.2. Mô hình Thực thể-Liên kết
2.3. Thực thể và thuộc tính
2.4. Quan hệ giữa các thực thể
Chƣơng 3: Mô hình dữ liệu quan hệ 6 6
3.1. Các khái niệm cơ bản
3.2. Các ràng buộc dữ liệu
3.3. Chuyển đổi sơ đồ Thực thể-Liên kết sang cơ sở dữ liệu
quan hệ

Chƣơng 4. Đại số quan hệ 6 6
4.1. Phép chọn
5

TÊN CHƢƠNG MỤC
PHÂN PHỐI SỐ TIẾT
TS LT TH BT KT
4.2. Phép chiếu
4.3. Phép hợp
4.4. Phép giao
4.5. Phép trừ
4.6. Tích Descartes
4.7. Các phép kết nối
4.8. Phép chia
Chƣơng 5. Ngôn ngữ truy vấn có cấu trúc- SQL 9 9
5.1. Tổng quan về SQL
5.2. Truy vấn SQL cơ bản
5.3. Truy vấn sử dụng các hàm thống kê
5.4. Các lệnh sửa đổi dữ liệu
Chƣơng 6. Chuẩn hóa và rút gọn cơ sở dữ liệu quan hệ 15 15
6.1. Các vấn đề về dư thừa dữ liệu
6.2. Các phụ thuộc hàm
6.3. Các dạng chuẩn của lược đồ quan hệ
6.3.1. Dạng chuẩn 1 (1NF)
6.3.2. Dạng chuẩn 2 (2NF)
6.3.3. Dạng chuẩn 3 (3NF)
6.3.4. Dạng chuẩn Boyce-Codd (BCNF)
6.4. Phép tách lược đồ quan hệ
6.4.1. Phép tách bảo toàn thông tin
6.4.2. Phép tách bảo toàn phụ thuộc
6.5. Chuẩn hóa lược đồ quan hệ
6.5.1. Tách lược đồ quan hệ về 3NF
6.5.2. Tách lược đồ quan hệ về BCNF
Nhiệm vụ của sinh viên:
Tham dự các buổi học lý thuyết và thực hành, làm các bài tập được giao, làm các bài thi giữa học
phần và bài thi kết thúc học phần theo đúng quy định.
Tài liệu học tập:
1. Nguyễn Kim Anh, Nguyên lý của các hệ cơ sở dữ liệu, NXB Giáo dục, 2005.
2. Lê Tiến Vương, Nhập môn cơ sở dữ liệu quan hệ, NXB Khoa học và kỹ thuật, 1997.
3. Raghu Ramakrishnan, Database Management Systems, McGraw-Hill, 1998.
6
Hình thức và tiêu chuẩn đánh giá sinh viên:
- Hình thức thi: thi trắc nghiệm hoặc tự luận
- Tiêu chuẩn đánh giá sinh viên: căn cứ vào sự tham gia học tập của sinh viên trong các buổi
học lý thuyết và thực hành, kết quả làm các bài tập được giao, kết quả của các bài thi giữa học phần
và bài thi kết thúc học phần.
Thang điểm: Thang điểm chữ A, B, C, D, F.
Điểm đánh giá học phần: Z = 0,2X + 0,8Y.

Bài giảng này là tài liệu chính thức và thống nhất của Bộ môn Hệ thống Thông tin, Khoa Công
nghệ Thông tin và được dùng để giảng dạy cho sinh viên.

Ngày phê duyệt: / /

Trƣởng Bộ môn
7
Chương 1. Giới thiệu
1.1. Tổng quan về cơ sở dữ liệu
Cơ sở dữ liệu là một tập hợp có tổ chức các dữ liệu có liên quan luận lý với nhau. Nói cách
khác đó là một hệ thống các thông tin có cấu trúc được lưu trữ trên các thiết bị lưu trữ thông tin
thứ cấp, ví dụ như: đĩa từ, băng từ, bộ nhớ flash,… nhằm mục đích thỏa mãn yêu cầu tổ chức dữ
liệu, để giúp cho việc khai thác dữ liệu được nhanh chóng và chính xác. Cơ sở dữ liệu phải được
thiết kế sao cho có thể cho phép nhiều người dùng và nhiều ứng dụng khác nhau cùng khai thác.

Hình 1.1: Sơ đồ tổng quát về một hệ cơ sở dữ liệu
1.2. Hệ thống tệp tin và hệ quản trị dữ liệu
1.2.1. Hệ thống tệp tin kiểu cũ
Trước khi các hệ quản trị cơ sở dữ liệu ra đời, dữ liệu được lưu trữ theo kiểu điện tử trên các
hệ thống máy tính thành nhiều tập tin riêng biệt, sử dụng các hệ quản lý tập tin (từ đây về sau ta gọi
hệ tập tin theo lối cũ). Những tập tin này được xử lý bằng các ngôn ngữ lập trình thế hệ thứ ba như
COBOL, FORTRAN, PASCAL và ngay cả BASIC để tạo ra các giải pháp cho các vấn đề của
doanh nghiệp. Mỗi ứng dụng, chẳng hạn như hệ tính lương, hệ kho hay hệ thống kế toán sẽ có một
tập các tập tin riêng chứa dữ liệu riêng. Các ứng dụng như vậy đặt ra ba vấn đề sau:
- Có sự ràng buộc chặt chẽ giữa cấu trúc luận lý và cấu trúc vật lý của các tập tin và chương trình
ứng dụng khai thác chúng. Điều này khiến việc tạo nên các ứng dụng này rất khó khăn, tốn nhiều
thời gian và do vậy mà tốn kém trong bảo trì hệ thống.
- Có sự dư thừa dữ liệu rất lớn qua việc trùng lắp các tập tin trong các ứng dụng khác nhau. Điều
này tạo ra những vấn đề như: dữ liệu thiếu nhất quán, không gian đĩa bị lãng phí, thời gian bảo trì
và lưu phòng hờ các tập tin gia tăng, vấn đề về quản trị như không chú trọng bảo mật và tổ chức dữ
liệu thiếu thống nhất. Một ví dụ điển hình về sự trùng lắp dữ liệu là:
Hệ thống quản lý nhân sự bao gồm ba hệ thống con:
8
- Hệ thống chấm công và quản lý lương: hệ thống này duy trì thông tin về ngày công và
quản lý việc tính lương cho tất cả nhân viên.
- Hệ thống quản lý hồ sơ nhân sự: hệ thống này duy trì lý lịch cá nhân, dữ liệu về tổ chức,
công việc đào tạo và vị trí thăng tiến.
- Hệ thống quản lý thông tin hưu trí: hệ thống này quản trị các qui tắc liên quan đến nghỉ
hưu, loại nghỉ hưu. Chi tiết về chế độ hưu trí của từng nhân viên.
Vấn đề phức tạp là Hệ thống chấm công và quản lý lương thông thường được quản lý bởi
phòng Tài vụ, trong khi Hệ thống quản lý nhân sự và Hệ thống quản lý thông tin hưu trí được quản
lý bởi phòng Tổ chức. Rõ ràng, có nhiều dữ liệu về nhân viên là chung cho cả ba hệ. Thường những
hệ này được thực hiện và giữ riêng biệt do đó chúng tạo sự trùng lặp dữ liệu nhân viên mà chúng sử
dụng.
- Người sử dụng có ít khả năng khai thác trực tiếp dữ liệu mà hoàn toàn phải thông qua phần mềm
tác nghiệp.
1.2.2. Hệ quản trị cơ sở dữ liệu
Hệ quản trị cơ sở dữ liệu là một tập hợp chương trình giúp cho người sử dụng có thể tạo ra,
duy trì và khai thác một cơ sở dữ liệu. Đó là một hệ thống phần mềm phổ dụng, cung cấp môi
trường và công cụ giúp cho việc định nghĩa, xây dựng và thao tác cơ sở dữ liệu cho các ứng dụng
khác nhau một cách dễ dàng.
Định nghĩa một cơ sở dữ liệu là đặc tả các kiểu dữ liệu, các cấu trúc, các ràng buộc cho các
dữ liệu sẽ được lưu trữ.
Xây dựng cơ sở dữ liệu là lưu trữ dữ liệu lên các phương tiện lưu trữ được hệ quản trị cơ sở
dữ liệu kiểm soát.
Thao tác trên một cơ sở dữ liêu là quá trình truy vấn cơ sở dữ liệu để lấy ra các dữ liệu cụ thể,
cập nhật cơ sở dữ liệu, tạo ra các báo cáo từ dữ liệu.

Hình 1.2: Mô hình hệ quản trị cơ sở dữ liệu
9
Mỗi hệ quản trị cơ sở dữ liệu có một ngôn ngữ định nghĩa dữ liệu riêng (DDL - Data
Definition Languague). Đây là ngôn ngữ dùng để định nghĩa, khai báo cấu trúc của của cơ sở dữ
liêu. Những người thiết kế và quản trị cơ sở dữ liệu thực hiện các công việc khai báo cấu trúc cơ sở
dữ liệu. Các chương trình khai báo cấu trúc CSDL được viết bằng ngôn ngữ DDL mà hệ quản trị
CSDL cho phép.
Các chương trình ứng dụng được viết bằng các ngôn ngữ lập trình C++/C#/Java/Delphi… kết
hợp với các ngôn ngữ thao tác dữ liệu (DML - Data Manipulation Language) thông qua các thư
viện hoặc đối tượng kết nối CSDL được ngôn ngữ lập trình hỗ trợ: ODBC, RDO, ADO,…
Các hệ quản trị cơ sở dữ liệu quan hệ ngày nay phổ biến sử dụng các ngôn ngữ DDL và DML
dựa trên ngôn ngữ SQL.
Đối với hệ quản trị cơ sở dữ liệu SQL Server của Microsoft thì ngôn ngữ dùng để tương tác
với cơ sở dữ liệu là T – SQL. Đây là một phiên bản của ngôn ngữ SQL. Ngôn ngữ T – SQL trên
SQL Server bao gồm nhiều câu lệnh khác nhau, có thể chia thành 2 nhóm:
Nhóm ngôn ngữ định nghĩa dữ liệu DDL: với các lệnh cho phép tạo, thay đổi cấu trúc và xóa
các đối tượng CSDL: database, table, view,…
Nhóm ngôn ngữ thao tác dữ liệu DML: với các lệnh (như SELECT / INSERT / UPDATE /
DELETE) cho phép lấy về dữ liệu cụ thể, thay đổi giá trị của dữ liệu.

Hình 1.3: Tƣơng tác với hệ quản trị cơ sở dữ liệu
Nhìn chung các hệ quản trị cơ sở dữ liệu có nguyên lý hoạt động như sau (xem hình 1.4):
Các yêu cầu của chương trình ứng dụng được chuyển tới hệ quản trị CSDL (theo con đường
số 1). Tại đây hệ quản trị CSDL sẽ tham khảo các từ điển dữ liệu (Meta DataBase) để tìm kiếm các
ánh xạ cấu trúc ngoài với cấu trúc quan niệm và cấu trúc vật lý (các ngõ a, b và c). Tại đây hệ quản
10
trị CSDL có thể sẽ tham khảo tới vùng đệm của nó để xác định xem câu trả lời đã có sẵn ở đó
chưa, nếu có thì trả lại cho chương trình ứng dụng thông qua con đường số 8b; ngược lại sẽ yêu cầu
hệ điều hành truy xuất thông tin theo con đường số 2. Tới đây hệ điều hành sẽ gửi yêu cầu truy xuất
thông tin trong CSDL thông qua hệ thống xuất nhập của HĐH (các con đường số 3 và 5). Nếu việc
truy xuất không thành công nó sẽ trả lại yêu cầu về cho hệ quản trị CSDL (có thể thông qua các mã
lỗi) qua con đường số 6; nếu thành công thì dữ liệu sẽ được chuyển vào vùng đệm của hệ quản trị
CSDL. Qua xử lý, hệ quản trị CSDL sẽ chuyển dữ liệu vào vùng đệm của chương trình ứng dụng đề
nó xử lý (qua con đường 8a) và cho ra kết quả trả lời của chương trình ứng dụng qua con đường số
10.

Hình 1.4: Hoạt động của hệ quản trị cơ sở dữ liệu
1.3. Các mô hình dữ liệu
Sự cần thiết tổ chức lưu trữ dữ liệu theo một cách thức xác định và chặt chẽ đã dẫn đến sự
phát triển các mô hình dữ liệu. Từ những mô hình mạng, mô hình phân cấp và mô hình dữ liệu quan
hệ là những mô hình cơ sở dữ liệu kinh điển, truyền thống cho đến các mô hình cơ sở dữ liệu phân
tán, cơ sở dữ liệu hướng đối tượng...là những mô hình dữ liệu hiện đại được áp dụng nhiều trên thị
trường hiện nay.
Đối tượng nghiên cứu các hệ CSDL là các thực thể và các mối liên kết giữa các thực thể. Một
mô hình CSDL phải có khả năng biểu diễn thực thể và liên kết giữa các thực thể. Các liên kết là một
dạng đặc biệt của thực thể. Các cách tiếp cận CSDL là các cách nhìn và các cách biểu diễn liên kết
của người sử dụng.
Nghiên cứu mô hình cơ sở dữ liệu dựa trên các yêu cầu sau:
11
- Mục tiêu độc lập dữ liệu: Phải xác định rõ ràng các khía cạnh logic và khía cạnh vật
lý của việc quản trị cơ sở dữ liệu, bao gồm việc thiết kế các hệ cơ sở dữ liệu, các thao tác
và tìm kiếm dữ liệu bằng các công cụ ngôn ngữ con dữ liệu.
- Mục tiêu trao đổi: Mô hình dữ liệu đơn giản về cấu trúc, sao cho người sử dụng có cách
nhìn trong suốt khi truy nhập vào các hệ cơ sở dữ liệu và có khả năng trao đổi với nhau
về cơ sở dữ liệu.
- Mục tiêu xử lý tệp: Người sử dụng có thể sử dụng ngôn ngữ bậc cao để biểu diễn các
phép toán trên trên các mảng thông tin, kỹ thuật xử lý theo lô (batch), mà không phải xử
lý tuần tự theo từng bản ghi.
- Mô hình được xây dựng trên cơ sở lý thuyết vững chắc, chặt chẽ.
Một mô hình dữ liệu là một hệ thống hình thức toán học, bao gồm:
- Hệ thống các ký hiệu biểu diễn dữ liệu.
- Tập hợp các phép toán thao tác trên cơ sở dữ liệu.
Đặc trưng của một mô hình dữ liệu bao gồm:
- Tính ổn định khi thiết kế mô hình dữ liệu.
- Tính đơn giản có nghĩa là dễ hiểu và dễ thao tác.
- Tính dư thừa cần phải kiểm tra kỹ lưỡng .
- Tính đối xứng phải được bảo toàn và
- Có cơ sở lý thuyết vững chắc.
Tổ chức dữ liệu theo mô hình nào là tốt nhất. Thực tế chưa có mô hình dữ liệu nào là tốt nhất.
Tốt nhất phụ thuộc vào yêu cầu truy xuất và khai thác thông tin của đơn vị quản lý nó. Nó được sử
dụng ở đâu và vào lúc nào là tốt nhất. Tuy nhiên, thường người ta dựa vào các tiêu chí sau để nói
rằng mô hình dữ liệu tốt nhất khi:
 Mục đích: Phần lớn các mô hình dữ liệu sử dụng hệ thống ký hiệu để biểu diễn dữ
liệu và làm nền tảng cho các hệ ứng dụng và ngôn ngữ thao tác dữ liệu. Các mô
hình thực thể quan hệ không có hệ thống ký hiệu để xây dựng các phép toán thao
tác dữ liệu, mà sử dụng để thiết kế lược đồ khái niệm, cài đặt trong một mô hình
dữ liệu với một hệ quản trị cơ sở dữ liệu nào đó.
 Hướng giá trị hay hướng đối tượng: Các mô hình dữ liệu quan hệ và mô hình
logic là các mô hình dữ liệu hướng giá trị. Trong các mô hình dữ liệu hướng giá
trị có tính khai báo (declarativeness) và có tác động đến các ngôn ngữ được nó hỗ
trợ. Các mô hình mạng, phân cấp, mô hình dữ liệu hướng đối tượng cung cấp đặc
tính nhận dạng đối tượng, nên có thể xem chúng là các mô hình hướng đối tượng.
Mô hình thực thể quan hệ cũng được có đặc tính nhận dạng hướng đối tượng.
 Tính dư thừa: Tất cả các mô hình dữ liệu đều có khả năng hỗ trợ lưu trữ dữ liệu
vật lý và hạn chế sự dư thừa dữ liệu. Tuy nhiên các mô hình dữ liệu hướng đối
12
tượng giải quyết sự dư thừa tốt hơn, bằng cách tạo ra sử dụng con trỏ trỏ đến
nhiều vị trí khác nhau.
 Giải quyết mối quan hệ nhiều – nhiều: Phần lớn trong các mô hình cơ sở dữ liệu
có chứa các mối quan hệ nhiều – nhiều, một – nhiều hay quan hệ môt – một. Một
quan hệ có nhiều phần tử của các quan hệ khác và ngược lại. Tuy nhiên trong mô
hình dữ liệu mạng không chấp nhận mối quan hệ nhiều – nhiều.
1.3.1. Mô hình cơ sở dữ liệu quan hệ (Relational model)
Mô hình này dựa trên lý thuyết tập hợp và đại số quan hệ. Vì tính chất chặt chẽ của toán học
về lí thuyết tập hợp nên mô hình này đã mô tả dữ liệu một cách rõ ràng, mềm dẻo và là mô hình
thông dụng nhất hiện nay. Hầu hết các hệ quản trị cơ sở dữ liệu thông dụng hiện nay đều tổ chức dữ
liệu theo mô hình dữ liệu quan hệ.
Mô hình cơ sở dữ liệu quan hệ (gọi tắt là Mô hình Quan hệ) do E.F Codd đề xuất năm 1971.
Mô hình này bao gồm:
- Một hệ thống các ký hiệu để mô tả dữ liệu dưới dạng dòng và cột như: quan hệ, bộ, thuộc
tính, khóa chính, khoá ngoại, ...
- Một tập hợp các phép toán thao tác trên dữ liệu như phép toán tập hợp, phép toán quan hệ.
- Ràng buộc toàn vẹn quan hệ.
1.3.2. Mô hình phân cấp (Hierarchical model)
1.3.2.1 Cấu trúc biểu diễn dữ liệu phân cấp
Trong mô hình CSDL phân cấp, dữ liệu được biểu diễn bằng cấu trúc cây. Một CSDL phân
cấp là tập các cây (rừng cây). Trong mỗi một cây chỉ chứa một và chỉ một xuất hiện của bản ghi
gốc, gọi là bản ghi đỉnh, và dưới nó là tập các xuất hiện của các bản ghi phụ thuộc. Các bản ghi phụ
thuộc có thể là tuỳ ý hoặc không tồn tại. Một bản ghi gốc có thể có một số bất kỳ các bản ghi phụ
thuộc và các bản ghi phụ thuộc có thể có một số các bản ghi phụ thuộc mức thấp hơn... Hình 2.1
biểu diễn một mô hình CSDL phân cấp về tuyến cáp và các loại cáp. Dữ liệu được biểu diễn bằng 4
cấu trúc cây đơn giản, trong đó gốc là xuất hiện kiểu bản ghi loại cáp bao gồm các thông tin mã cáp,
tên cáp, số lượng, mã nước sản xuất, tên nước sản xuất. Các bản ghi phụ thuộc là kiểu các bản ghi
các tuyến cáp có lắp đặt các loại cáp đó, bao gồm các thông tin về số hiệu tuyến cáp, tên gọi tuyến
cáp, độ dài và ngày hoàn thành việc xây dựng tuyến cáp đó. Như vậy các bản ghi gốc là các kiểu
bản ghi về các loại cáp đã được lắp đặt và các bản ghi phụ thuộc là các bản ghi về thông tin các
tuyến cáp.
Theo định nghĩa, không thể có các bản ghi phụ thuộc mà không tồn tại bản ghi gốc, nghĩa là
không thể tồn tại các loại cáp mà chưa được lắp đặt trên một tuyến nào cả. Như vậy có thể có thể
tồn tại các loại cây vừa có xuất hiện của bản ghi gốc và các bản ghi phụ thuộc, nghĩa là mỗi một
loại cáp có thể được lắp đặt trên nhiều tuyến cáp khác nhau và trên một tuyến cáp có thể có nhiều
loại cáp khác nhau được lắp đặt. Có loại cây chỉ tồn tại bản ghi gốc thoái hoá, dưới nó không tồn tại
13
bản ghi phụ thuộc, nghĩa là có ít nhất một loại cáp chưa được đưa vào lắp đặt sử dung. Theo định
nghĩa, không tồn tại loại cây chỉ có các bản ghi phụ thuộc mà không có bản gốc, tức là trên mọi
tuyến cáp phải có ít nhất một loại cáp. Điều gì sẽ xẩy ra khi trên trên một tuyến nào đó có duy nhất
một loại cáp bị huỷ bỏ.
1.3.2.1. Ngôn ngữ thao tác trên CSDL phân cấp
- Biểu diễn phụ thuộc trong mô hình phân cấp: Các đường nối từ bản ghi gốc trỏ xuống các
bản ghi phụ thuộc, hay từ bản ghi cha trỏ xuống bản ghi con biểu diễn mối quan hệ giữa các
bản ghi trong mô hình phân cấp. Ví dụ trong bản ghi Phiếu xuất kho có thể xác định được
mã và đơn giá của các loại cáp.
- Chèn thêm: Trong cấu trúc hình cây, có một và chỉ một xuất hiện bản ghi gốc, tức là bắt
buộc phải có xuất hiện bản ghi về các loại cáp. Nếu muốn lưu trữ thông tin về một tuyến cáp
mới vào CSDL, thì điều này không thể thực hiện được, vì không thể thêm thông tin về các
xuất hiện kiểu bản ghi phụ thuộc (thông tin về các tuyến cáp) vào CSDL phân cấp khi chưa
có thông tin về các loại cáp.
- Loại bỏ: Trong một số cấu trúc cây dữ liệu, thông tin về một vấn đề nào đấy được chứa
trong một xuất hiện kiểu bản ghi phụ thuộc duy nhất thì khi loại bỏ sẽ làm mất thông tin về
vấn đề trên. Ví dụ khi loại bỏ loại cáp M04 trên tuyến T03, sẽ kéo theo thông tin về tuyến
cáp T03 bị mất và thông tin về cáp mang mã hiệu M04 cũng bị mất luôn. Như vậy có thể
xẩy ra hiện tượng mất thông tin về các tuyến cáp hoặc thông tin về các loại cáp khi thực hiện
các thao tác loại bỏ.


Hình 1.5: Cơ sở dữ liệu về các tuyến cáp viễn thông

14
- Sửa đổi: Nếu cần phải sửa đổi một số thông tin trong các xuất hiện kiểu bản ghi phụ
thuộc thì phải duyệt toàn bộ mô hình dữ liệu, bằng cách phải dò tìm trong từng xuất hiện.
Như vậy khả năng dò tìm không hết có thể xẩy ra, sẽ dẫn đến sự xuất hiện mâu thuẫn
thông tin và không nhất quán dữ liệu trong lưu trữ. Ví dụ cần thay đổi tên gọi của các
tuyến cáp hoặc tên gọi các loại cáp, nếu số các xuất hiện kiểu bản ghi loại này rất lớn, khả
năng duyệt sót vẫn có thể xẩy ra, nghĩa là mâu thuẫn thông tin, không nhất quán thông tin
sẽ xẩy ra.
- Các phép tìm kiếm: Các xuất hiện của các bản ghi phụ thuộc chỉ tồn tại khi và chỉ khi tồn
tại xuất hiện kiểu bản ghi gốc.
Ví dụ: Q1: Tìm số hiệu của các tuyến, Q2: Tìm số hiệu các loại cáp có lắp đặt cáp MC#="M02", lắp
đặt trên tuyến TC#=‟T02‟.
Các truy vấn thường đối xứng nhau nhưng kết quả của các phép tìm kiếm không đối xứng .Vì
vậy trong cấu trúc lưu trữ của mô hình phân cấp rất hạn chế khi thực hiện việc tìm kiếm thông tin.
Nếu CSDL phân cấp càng lớn thì tính phức tạp càng cao. Gây nhiều phức tạp cho người sử dụng,
nhất là đối với lập trình viên phải mất nhiều thời gian công sức để lập trình và bảo trì, hiệu chỉnh
các chương trình.
Tóm lại thông tin tổ chức lưu trữ theo mô hình phân cấp được biểu diễn dữ liệu trong một tệp
duy nhất theo cấu trúc cây. Trong mỗi một cây, tồn tại một và chỉ duy nhất một xuất hiện kiểu bản
ghi gốc và cùng với nó có một tập các xuất hiện kiểu bản ghi phụ thuộc. Khi thao tác trên CSDL
phân cấp bằng ngôn ngữ thao tác dữ liệu, có nhiều khả năng xẩy ra thừa hoặc thiếu thông tin, mâu
thuẫn thông tin dẫn đến sự không nhất quán dữ liệu trong lưu trữ. Tính toàn vẹn của dữ liệu không
được đảm bảo. Các câu truy vấn, tìm kiếm không có tính đối xứng. Tính độc lập của dữ liệu dễ bị vi
phạm. Tính ổn định không cao.
1.3.3. Mô hình mạng(Network model)
Trong mô hình này dữ liệu được tổ chức thành một đồ thị có hướng, trong đó các đỉnh là các
thực thể, các cung là quan hệ giữa hai đỉnh, một kiểu bản ghi có thể liên kết với nhiều kiểu bản ghi
khác. Một con có thể có nhiều cha do đó có thể có nhiều đường truy nhập đến một dữ liệu cho
trước. Tập dữ liệu được tổ chức theo cấu trúc của mô hình dữ liệu mạng gọi là CSDL mạng.

Hình 1.6: Một ví dụ về cơ sở dữ liệu mạng
15
Mô hình dữ liệu mạng là mô hình thực thể quan hệ, trong đó các mối liên kết bị hạn chế
trong kiểu một - một và nhiều – một. Trong mô hình CSDL mạng, dữ liệu được biểu diễn trong các
bản ghi liên kết với nhau bằng các mối nối liên kết (link) tạo thành một đồ thị có hướng. CSDL
mạng có cấu trúc tổng quát hơn so với cấu trúc CSDL phân cấp. Mỗi một xuất hiện của một bản ghi
có thể có rất nhiều các xuất hiện kiểu bản ghi trên nó và các xuất hiện kiểu bản ghi dưới nó. Ngoài
các kiểu bản ghi biểu diễn dữ liệu còn có kiểu bản ghi các phần tử kết nối, biểu diễn sự kết hợp giữa
các biểu diễn dữ liệu. Cho phép mô hình hoá tương ứng nhiều - nhiều. Hình 2.2 biểu diễn một mô
hình CSDL mạng về các tuyến cáp và các loại cáp được lắp đặt. Ngoài các xuất hiện kiểu bản ghi
tuyến cáp và các xuất hiện kiểu các bản ghi các loại cáp còn có các xuất hiện kiểu các bản ghi về
các phần tử kết nối đó là các phần tử số lượng. Các phần tử này kết nối tuyến cáp và các loại cáp là
thông tin về tình hình lắp đặt. Sơ đồ T1 → 10 → M01 chỉ ra rằng tuyến T1 có 10 cáp M01, T1 →
18 → M02 có nghĩa là T1 có 18 cáp loại có mã số là M02...
- Mạng chứa hai kiểu thực thể: Trong mỗi một tuyến cáp, có nhiều loại cáp khác nhau với
số lượng khác nhau. Mỗi một loại cáp có thể có mặt trong nhiều tuyến cáp khác nhau. Kiểu
bản ghi số lượng có chức năng liên kết hai kiểu bản ghi tuyến cáp và các loại cáp. Mỗi một
xuất hiện kiểu bản ghi số lượng biểu diễn mối liên kết giữa các bản ghi tuyến cáp với các
bản ghi loại cáp. Thiết lập mối liên kết giữa một tuyến cáp và một loại cáp sao cho mỗi xuất
hiện tương ứng của số lượng đều có mặt trong xuất hiện các tuyến cáp và loại cáp. Ví dụ
tuyến cáp “T1” và loại cáp mã “M01” có mối liên kết với số lượng là 10. “T5” và “M07”
không có mối liên kết, điều này có nghĩa là loại cáp “M07” chưa có mặt trong một tuyến nào
cả và tuyến “T5” chưa có một loại cáp nào được lắp đặt.
- Mạng chứa hơn hai kiểu thực thể: Liên kết n kiểu thực thể biểu diễn bằng một kiểu bản
ghi liên kết n kiểu bản ghi đó với nhau. Mỗi xuất hiện của bản ghi liên kết sẽ là thành viên
của đúng một xuất hiện của một trong số n kiểu bản ghi. Như vậy sẽ biểu diễn mối liên kết n
thực thể tương ứng. Ví dụ thêm một kiểu thực thể mới - đơn vị thi công tuyến cáp. Có thể
một đơn vị thi công nhiều tuyến cáp và trong một tuyến cáp có nhiều đơn vị thi công. Thêm
kiểu thực thể ngày nhập kho (NHAP) của của các loại cáp trước khi đưa vào sử dụng hoặc
đưa thêm thông tin về hãng sản xuất...
- Mạng chỉ chứa một kiểu thực thể: Tồn tại cơ sở dữ liệu chỉ chứa một thực thể. Ví dụ cơ sở
dữ liệu chứa thông tin về phụ tùng và linh kiện, trong đó một linh kiện tự nó có thể là một
phụ tùng và tự nó có thể chứa các phụ tùng khác. Như vậy mạng cơ sởp dữ liệu chỉ chứa duy
nhất một kiểu bản ghi phụ tùng. Và mỗi một phụ tùng lại có thể là tổ hợp của một số chi tiết
thành phần, lại vừa có thể là thành phần của các tổ hợp khác. Như vậy cơ sở dữ liệu mạng
có hai thực thể, hai kiểu bản ghi nhưng thực chất chỉ là một.

16

Hình 1.7: Mô hình cơ sở dữ liệu mạng

Ngôn ngữ dữ liệu thao tác trên CSDL mạng thường bao gồm các thao tác cơ bản sau đây:
- Chèn thêm: Khi thêm các các kiểu bản ghi mới, có thể con trỏ (mối nối) tự trỏ vào nó. Ví
dụ, có chèn thêm các thông tin xuất hiện bản ghi về tuyến cáp hoặc xuất hiện kiểu bản ghi
về các loại cáp mà chưa có trong CSDL và chưa có các bản ghi kết nối, nghĩa là chưa có
thông tin về các loại cáp được lắp đặt, nhưng mô hình CSDL mạng vẫn đảm bảo được tính
nhất quán của dữ liệu và tính toàn vẹn của dữ liệu.
- Loại bỏ: Có thể loại bỏ các xuất hiện kiểu bản ghi dữ liệu và xuất hiện kiểu bản ghi kết nối
trong mô hình CSDL mạng mà không ảnh hưởng tới tính nhất quán và tính toàn vẹn dữ liệu.
Có thể xoá một loại cáp nào đó khi không còn sử dụng. Ví dụ cần xóa bỏ 8 cáp M04 trong
T1 bằng cách xoá bỏ các con trỏ giữa T1 và 8; giữa 8 và M04 mà không làm mất thông tin,
không xuất hiện dị thường thông tin.
- Sửa đổi: Có thể sửa đổi nội dung dữ liệu mà không cần duyệt qua mô hình và cũng không
làm xuất hiện mâu thuẫn dữ liệu.
- Tìm kiếm: Các câu hỏi đối xứng và kết quả của phép tìm kiếm cũng đối xứng với nhau như
trong mô hình cơ sở dữ liệu quan hệ.
17
Mô hình CSDL mạng là mô hình đối xứng, vì vậy các câu hỏi và kết quả các câu hỏi tìm
kiếm thường đối xứng với nhau. Khi thực hiện các phép lưu trữ như chèn thêm, loại bỏ hay sửa đổi
dữ liệu trong mô hình CSDL mạng vẫn bảo đảm được sự nhất quán của dữ liệu và tính toàn vẹn của
dữ liệu. Cách tiếp cận CSDL mạng là phương pháp biểu diễn dữ liệu trong các tệp theo cấu trúc dữ
liệu chặt chẽ. Các xuất hiện kiểu bản ghi được kết nối với nhau bằng các xuất hiện kiểu bản ghi liên
kết. Khi thao tác các phép cập nhật không xuất hiện các dị thường thông tin.. Tuy nhiên cấu trúc dữ
liệu rất trong mô hình CSDL mạng quá phức tạp vì quá nhiều liên kết giữa các xuất hiện dữ liệu với
nhau bằng các xuất hiện kết nối. Vì vậy việc thiết kế và cài đặt cơ sở dữ liệu mạng thường rất khó
khăn, nhất là xây dựng các phép toán thao tác trên nó.
1.3.4. Mô hình dữ liệu hƣớng đối tƣợng (Object Oriented model)
Cơ sở dữ liệu hướng đối tượng và hệ quản trị cơ sở dữ liệu hướng đối tượng (Object
Oriented Database management Systems – OO DBMS) mô tả các kiểu dữ liệu được xây dụng bằng
phương pháp tạo bản ghi và tạo tập hợp. Các quan hệ được xây dựng từ các bộ bằng thao tác tạo
một tập hợp các bản ghi có khuôn dạng thống nhất.
Che dấu dữ liệu (Encapsulation): Khi có yêu cầu truy xuất đến các đối tượng thuộc kiểu đặc
biệt, phải qua các thủ tục đã được định nghĩa cho các đối tượng đó. Chẳng hạn định nghĩa stack như
là một kiểu và định nghĩa các thao tác PUSH, POP áp dụng cho stack.
Đặc tính nhận dạng đối tƣợng (Object Indentity): Là khả năng phân biệt các đối tượng .
Nghĩa là cấu trúc các kiểu cơ bản như nhau. Các kiểu cơ bản là chuỗi ký tự, số.
1.4. Các mức độ trừu tượng trong cơ sở dữ liệu
Các mức độ trừu tượng trong CSDL bao gồm: Mức trong, mức mô hình dữ liệu (Mức quan
niệm) và mức ngoài. Giữa các mức tồn tại các ánh xạ quan niệm trong và ánh xạ quan niệm ngoài.
Trung tâm của hệ thống là mức quan niệm, tức là mức mô hình dữ liệu. Ngoài ra còn có khái niệm
người sử dụng, hệ quản trị CSDL và người quản trị CSDL.
Ngƣời sử dụng: Là những người tại thiết bị đầu cuối truy nhập vào các hệ CSDL theo chế độ trực
tuyến hay tương tác bằng các chương trình ứng dụng hay bằng các ngôn ngữ con dữ liệu. Thường là
các chuyên viên kỹ thuật tin học, có trình độ thành thạo biết lập trình và biết sử dụng ngôn ngữ con
thao tác dữ liệu (SQL Server, Oracle... ). Người sử dụng có thể truy nhập toàn bộ hay một phần
CSDL mà họ quan tâm, phụ thuộc vào quyền truy nhập của họ. Cách nhìn CSDLcủa người sử dụng
nói chung là trìu tượng. Họ nhìn CSDL bằng mô hình ngoài, gọi là mô hình con dữ liệu. Chẳng hạn
người sử dụng là một nhân viên của phòng kế toán tài chính, chỉ nhìn thấy tập các xuất hiện kiểu
bản ghi ngoài về doanh thu, sản lượng trong tháng, không thể nhìn thấy các xuất hiện kiểu bản ghi
lưu trữ về các chỉ tiêu kỹ thuật cuả đường thông, mạng lưới...
Mô hình ngoài: Mô hình ngoài là nội dung thông tin của CSDL dưới cách nhìn của người sử dụng.
Là nội dung thông tin của một phần dữ liệu tác nghiệp đựơc một người hoặc một nhóm người sử
18
dụng quan tâm. Nói cách khác, mô hình ngoài mô tả cách nhìn dữ liệu của người sử dụng và mỗi
người sử dụng có cách nhìn dữ liệu khác nhau. Nhiều mô hình ngoài khác nhau có thể cùng tồn tại
trong một hệ CSD, nghĩa là có nhiều người sử dụng chia sẻ chung cùng một cơ sở dữ liệu. Hơn nữa,
có thể mô hình ngoài quan hệ, mô hình ngoài phân cấp hay mô hình ngoài kiểu mạng cũng có thể
tồn tại trong một cơ sở dữ liệu. Sơ đồ ngoài không làm “hiện “ mà được nhúng vào trong logic một
đơn tác có liên quan.
- Mô hình ngoài gồm nhiều xuất hiện kiểu bản ghi ngoài, nghĩa là mỗi một người sử
dụng có một sơ đồ dữ liệu riêng, một khung nhìn dữ liệu riêng. Bản ghi ngoài của
người sử dụng có thể khác với bản ghi lưu trữ và bản ghi quan niệm.
- Mô hình ngoài được xác định bởi một sơ đồ ngoài bao gồm các mô tả về kiểu bản ghi
ngoài như tên các trường, kiểu dữ liệu các trường, độ rộng của trường....
- Ngôn ngữ con dữ liệu của người sử dụng thao tác trên các bản ghi ngoài.
- Người sử dụng khác nhau có khung nhìn dữ liệu khác nhau.
- Người sử dụng đầu cuối có thể là các ứng dụng hay thao tác trực tiếp bằng ngôn ngữ
thao tác, truy vấn dữ liệu.
Mô hình dữ liệu (mô hình quan niệm): Mô hình quan niệm là cách nhìn dữ liệu một cách tổng
quát của người sử dụng. Nghĩa là có rất nhiều cách nhìn dữ liệu ở mô hình ngoài, nhưng chỉ có duy
nhất một cách nhìn dữ liệu ở mức quan niệm. Biểu diễn toàn bộ thông tin trong CSDL là duy nhất.
- Mô hình dữ liệu gồm nhiều xuất hiện của nhiều kiểu bản ghi dữ liệu. Ví dụ kiểu xuất
hiện bản ghi về nhân sự, kiểu xuất hiện bản ghi về doanh thu, sản lượng, kiểu xuất
hiện bản ghi về cước đàm thoại...
- Mô hình dữ liệu được xác định bởi một sơ đồ dữ liệu mô tả của nhiều kiểu thực thể,
chẳng hạn như mô tả thực thể tuyến cáp, các loại cáp, thầy giáo, học sinh... Sơ đồ dữ
liệu bao gồm các định nghĩa về các kiểu bản ghi, đó là các ràng buộc cho quyền và
tính toàn vẹn thích hợp. Những ràng buộc này chính là các tính chất của dữ liệu, tính
liên kết các thuộc tính cùng một kiểu dữ liệu. Các định nghĩa này không bao hàm về
cấu trúc lưu trữ, cũng như về chiến lược truy nhập, chúng chỉ là các định nghĩa về nội
dung thông tin, về tính độc lập của dữ liệu trong mô hình quan niệm.
- Sơ đồ quan niệm luôn luôn ổn định, nghĩa là nếu mô tả thêm một kiểu thực thể đặc
biệt sát nhập vào sơ đồ dữ liệu, không được làm thay đổi sơ đồ dữ liệu cũ. Nếu sơ đồ
dữ liệu không ổn định thì các ứng dụng và mô hình ngoài cũng không ổn định. Sơ đồ
dữ liệu chỉ được thay đổi khi có sự điều chỉnh trong thế giới thực, đòi hỏi điều chỉnh
lại định nghĩa sao cho nó phản ảnh thế giới hiện thực khách quan hơn, chân lý hơn.
- Thiết kế mô hình dữ liệu là giai đoạn quan trọng và quyết định trong việc thiết kế và
cài đặt các hệ cơ sở dữ liệu. Quá trình thiết kế không phụ thuộc quá nhiều vào cấu trúc
lưu trữ vật lý và chiến lược truy nhập của dữ liệu. Như vậy việc thiết kế sơ đồ dữ liệu
19
phải được tiến hành độc lập với việc thiết kế sơ đồ trong và các sơ đồ ngoài liên
kết, vì nếu không việc thiết kế sẽ không ổn định và thường xuyên phải xem xét lại tác
động thường xuyên đến nhiều thành phần khác của hệ thống.
- Với cách thiết kế truyền thống hiện nay, người thiết kế chỉ cung cấp một số sơ đồ
trong và một tập các sơ đồ ngoài và họ coi đó là sơ đồ dữ liệu, là mô hình dữ liệu. Vì
vậy tính không ổn định hệ thống, tính không phù hợp với các ứng dụng nảy sinh sau
một thời gian hoạt động. Mâu thuẫn và dị thường thông tin sẽ xẩy ra. Vi phạm tính
toàn vẹn của dữ liệu.
- Ngoài các định nghĩa về xuất hiện nhiều kiểu bản ghi quan niệm, sơ đồ dữ liệu còn
chứa các định nghĩa về quyền truy nhập của người sử dụng, các thủ tục kiểm tra tính
đúng đắn của dữ liệu nhằm bảo đảm tính toàn vẹn của CSDL. Các luồng lưu chuyển
thông tin, quy định cách thức sử dụng thông tin..
Như vậy mô hình dữ liệu là cách nhìn toàn bộ nội dung thông tin của CSDL, sơ đồ quan niệm
là định nghĩa của cách nhìn ấy. Là bước đi đầu tiên , quan trọng trong việc thiết kế và cài đặt các hệ
cơ sở dữ liệu.
Mô hình trong: Mô hình trong là mô hình lưu trữ vật lý dữ liệu. Chỉ có duy nhất một và chỉ một
cách biểu diễn CSDL dưới dạng lưu trữ vật lý. Mô hình trong là cách biểu diễn cơ sở dữ liệu trìu
tượng ở mức thấp nhất.
- Mô hình trong gồm nhiều xuất hiện của nhiều kiểu bản ghi lưu trữ được xác định bởi
một sơ đồ trong. Thông tin biểu diễn trong mô hình trong là duy nhất.
- Sơ đồ trong bao gồm các định nghĩa mô hình trong. Không chỉ xác định các kiểu khác
nhau của bản ghi lưu trữ mà còn xác định rõ sự tồn tại của các chỉ dẫn, cách sắp xếp
các bản ghi theo thứ tự nào...Nó xác định dữ liệu lưu trữ và truy nhập như thế nào
thông qua các đường dẫn truy nhập tới dữ liêụ
- Ánh xạ quan niệm trong được xác định giữa mô hình trong và mô hình dữ liệu nhằm
bảo đảm tính độc lập của dữ liệu. Nếu cấu trúc lưu trữ của CSDL thay đổi, nghĩa là
thay đổi định nghĩa về cấu trúc lưu trữ dữ liệu thì ánh xạ này phải cũng phải thay đổi
tương ứng sao cho sơ đồ quan niệm (mô hình dữ liệu) không thay đổi.
- Ánh xạ quan niệm-ngoài: Là ánh xạ được xác định tương ứng môt-một giữa mô hình
ngoài của người sử dụng với mô hình dữ liệu.
Bài tập
1. Cơ sở dữ liệu là gì, hiểu thế nào là một hệ cơ sở dữ liệu tác nghiệp.
2. Sự cần thiết tổ chức lưu trữ dữ liệu theo lý thuyết cơ sở dữ liệu.
3. Trình bày tổng quát kiến trúc mô hình hệ cơ sở dữ liệu 3 lớp.
4. Mục tiêu của các hệ cơ sở dữ liệu? Ví dụ minh hoạ.
20
5. Tại sao nói, mô hình dữ liệu là cách nhìn toàn bộ nội dung thông tin của CSDL, sơ
đồ quan niệm là định nghĩa của cách nhìn ấy. Ví dụ minh hoạ.
6. Hiểu như thế nào về tính độc lập của dữ liệu.
7. Khái niệm File có gì khác với khái niệm cơ sở dữ liệu, ví dụ minh họa?
8. Chức năng & vai trò của hệ quản trị CSDL & người quản trị CSDL.


21
Chương 2. Mô hình Thực thể-Liên kết
2.1. Tổng quan về thiết kế cơ sở dữ liệu
Quá trình thiết kế một cơ sở dữ liệu bắt đầu với một sự phân tích những thông tin nào của thế
giới thực mà cơ sở dữ liệu phải lưu trữ và các mối quan hệ giữa các thành phần của những thông tin
này. Thông thường, cấu trúc của cơ sở dữ liệu hay còn được gọi là sơ đồ cơ sở dữ liệu được đặc tả
bởi một ngôn ngữ đặc biệt hay một tập các ký hiệu thích hợp để biểu thị một thiết kế cơ sở dữ liệu.
Mô hình dữ liệu là một sự hình thức hóa toán học đối 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.
2.2. Mô hình Thực thể-Liên kết
Mô hình thực thể liên kết dựa trên cơ sở sự nhận thức của thế giới thực bao gồm một tập các
đối tượng cơ sở được gọi là các thực thể và một tập các liên kết giữa các đối tượng này. Mô hình dữ
liệu ER là một trong các mô hình dữ liệu ngữ nghĩa. Khía cạnh ngữ nghĩa của mô hình ở chỗ cố
gắng biểu diễn các ngữ nghĩa của dữ liệu trong thế giới thực. Mô hình ER cực kỳ có ích trong việc
ánh xạ các ngữ nghĩa và các tương tác của các đối tượng trong thế giới thực về các lược đồ khái
niệm.

2.3. Thực thể và thuộc tính
Có ba ký hiệu cơ sở mà mô hình ER sử dụng: Tập các thực thể, các liên kết và thuộc tính.
Một thực thể là một đối tượng cụ thể hay trừu tượng trong thế giới thực mà nó tồn tại và có thể phân
biệt được với các đối tượng khác. Ví dụ một quyển sách là một thực thể. Một nhóm bao gồm các
thực thể giống nhau hình thành một tập thực thể. Ví dụ tập thực thể khách hàng.
Các tập thực thể có các đặc tính, được gọi là các thuộc tính, mà nó kết hợp với một thực thể trong
tập thực thể một giá trị từ miền giá trị của thuộc tính. Thông thường, miền giá trị của một thuộc tính
là tập các số nguyên, số thực hay các xâu kí tự.
Nhân viên Phòng ban
Người quản

Điện thoại
Tên
Lương Tên
Tên
Vị trí Thuộc
Quản lý
22
Việc lựa chọn các thuộc tính thích đáng đối với các tập thực thể là một bước quan trọng
trong việc thiết kế cơ sở dữ liệu. Một thuộc tính hay một tập con các thuộc tính mà giá trị của nó
xác định duy nhất mỗi thực thể trong tập thực thể được gọi là một khóa đối với tập thực thể này. Về
nguyên tắc, mỗi tập thực thể có một khóa do chúng ta giả định rằng mỗi thực thể là được phân biệt
với các thực thể khác.
2.4. Quan hệ giữa các thực thể
Một liên kết là sự kết hợp giữa một số thực thể. Ví dụ, có thể xác định một liên kết mà nó kết
hợp một nhân viên A với một phòng D. Liên kết này đặc tả rằng nhân viên A là một thành viên của
phòng D. Một tập liên kết là một tập các liên kết cùng kiểu. Một cách hình thức, một liên kết giữa
các tập thực thể là một danh sách có thứ tự các tập thực thể, một tập thực thể đặc biệt có thể xuất
hiện nhiều hơn một lần trong danh sách.
Việc tóm tắt những thông tin cần lưu trữ trong một cơ sở dữ liệu đối với một thiết kế sử dụng
các sơ đồ ER là rất có ích. Trong sơ đồ ER chúng ta sử dụng các kí hiệu sau để biểu diễn các thành
phần của sơ đồ.
- Các hình chữ nhật biểu diễn các tập thực thể.
- Các hình ô van biểu diễn các thuộc tính. Chúng được nối đến các tập thực thể của chúng
bởi các cạnh vô hướng. Đôi khi, các thuộc tính thuộc khóa đối với tập thực thể của
chúng sẽ được gạch chân.
- Các hình thoi biểu diễn các liên kết. Chúng được nối đến các tập thực thể cấu thành bởi
các cạnh, các cạnh có thể là có hướng hay không hướng.
Để mô hình hóa thế giới thực một cách thích hợp, người ta thường cần phải phân loại các liên
kết phù hợp với thực tế có bao nhiêu thực thể từ một tập thực thể có thể được kết hợp với bao nhiêu
thực thể của một tập thực thể khác.
Liên kết một – một:
Dạng liên kết đơn giản nhất và hiếm gặp của liên kết trên hai tập thực thể là dạng một – một,
có nghĩa với mỗi thực thể trong tập thực thể này có nhiều nhất một thực thể trong tập thực thể kia
kết hợp với nó và ngược lại. Ví dụ, liên kết Quản lý giữa Phòng ban và Người quản lý trong hình
3.1. có thể được khai báo là liên kết một – một. Nó thể hiện trong một phòng không thể có nhiều
hơn 1 người quản lý, cũng không có một người quản lý hai hay nhiều phòng.
Liên kết nhiều – một:
Trong một liên kết nhiều – một, một thực thể trong tập thực thể E2 được kết hợp với không
hay nhiều thực thể trong tập thực thể E1, nhưng mỗi thực thể trong tập thực thể E1 chỉ được kết hợp
nhiều nhất với một thực thể trong tập thực thể E2. Điều này có nghĩa là liên kết này là một hàm bộ
phần từ E1 đến E2. Ví dụ, liên kết giữa Nhân viên và Phòng ban như hình 3.1 có thể là liên kết
23
nhiều một từ Nhân viên đến Phòng ban. Có nghĩa là mỗi nhân viên được sắp xếp vào nhiều nhất
một phòng.
Liên kết nhiều – nhiều:
Chúng ta cũng hay bắt gặp các liên kết nhiều – nhiều, ở đây không có sự hạn chế nào trên số
các thực thể của một tập thực thể này liên kết với không hoặc nhiều thực thể của một tập thực thể
khác và ngược lại.
Trong các sơ đồ ER, chúng ta sử dụng các cung, có nghĩa là các cạnh có một hướng được chỉ
định bởi một mũi tên để xác định một liên kết. Trong trường hợp đơn giản nhất, một liên kết nhiều
–một R từ A đến B, chúng ta đặt một cung từ hình hình chữ nhật biểu diễn A qua hình thoi biểu
diễn R đến hình chữ nhật biểu diễn B. Nếu R là một liên kết một – một giữa A và B, chúng ta vẽ
các mỗi tên từ R đến cả hai A và B. Các liên kết nhiều – nhiều thì được biểu diễn bằng các cạnh vô
hướng. Tuy nhiên khi thiết kế sơ đồ ER người ta thường tìm cách đưa các liên kết nhiều – nhiều về
thành các liên kết nhiều một bằng cách thêm các thực thể mới.
Bài tập
1. Hãy sử dụng mô hình thực thể quan hệ để mô tả dữ liệu về Học viên (bao gồm về mô hình
tổ chức, các phòng ban, các khoa, quản lý sinh viên quản lý đào tạo, học bổng, các danh hiệu
thi đua...).
2. Hãy vẽ sơ đồ mô hình thực thể quan hệ về mối quan hệ trong gia đình: bố - mẹ, vợ -
chồng, con cái... và chuyển về các mô hình:
a) Mô hình quan hệ. b) Mô hình phân cấp. c) Mô hình mạng.

24
Chương 3: Mô hình dữ liệu quan hệ

3.1. Các khái niệm cơ bản
Mô hình dữ liệu quan hệ, là một trong các mô hình được ứng dụng nhiều nhất hiện nay. Nó được
hầu hết các hệ quản trị cơ sở dữ liệu hiện đại dùng để cài đặt các cơ sở dữ liệu. Trong các cơ sở dữ
liệu theo mô hình dữ liệu quan hệ tất cả các dữ liệu được ghi trong các bảng được gọi là các quan
hệ. Các bảng đều có một tập hợp hàng và cột ví dụ như:
Ví dụ 2.1. Quan hệ Mặt hàng
Mặt hàng Mã số Tên hàng Đơn vị Quy cách
1 Tivi Chiếc Sony 29”
2 Đầu DVD Chiếc Sony
3 Ram Thanh Kingston 512
Mỗi dòng trong bảng lưu giữ thông tin cơ bản về các đối tượng trong bài toán thực tế ví dụ như (1,
Tivi, Chiếc, Sony 29”) thể hiện mặt hàng Tivi có mã số là 1, đơn vị tính là „Chiếc‟, và quy cách là
„Sony 29”‟. Tuỳ vào đặc tính của từng cột thì các dữ liệu ghi vào các ô trên các cột đó sẽ có kiểu dữ
liệu khác nhau ví dụ như cột Mã số thì dữ liệu có kiểu số, trong khi cột Tên hàng thì dữ liệu có kiểu
là một xâu ký tự.
Trong cách gọi thông thường thì các hàng của bảng còn được gọi là bản ghi, các cột của bảng được
gọi là trường. Tuy nhiên khi nghiên cứu lý thuyết quan hệ người ta hay dùng các thuật ngữ khác:
„Thuộc tính‟ để chỉ cột (trường), „Bộ‟ để chỉ hàng (bản ghi).
3.2. Các ràng buộc dữ liệu
Đối với mỗi thuộc tính của quan hệ, khi thiết kế người ta đều hạn chế về giá trị dữ liệu mà thuộc
tính đó có thể nhận. Phạm vị giá trị có thể dùng cho một thuộc tính được gọi là miền giá trị, ví dụ
như: miền số nguyên, miền chuỗi ký tự, miền giá trị ngày tháng.... Ngoài việc giới hạn phạm vi
nhận giá trị của các thuộc tính, miền giá trị còn xác định các thao tác được phép sử dụng trên các dữ
liệu. Ví dụ như đối với các dữ liệu số, người ta mới có thể dùng các phép toán số học...
Trong thiết kế các quan hệ, sau khi xác định được một thuộc tính của quan hệ người ta cần tính
ngay đến tên và miền giá trị của thuộc tính đó. Miền giá trị thường đơn giản và luôn nhận các giá trị
đơn (không tách được). Ví dụ như việc mô tả thuộc tính địa chỉ nhà của một người như: 484 Lạch
Tray, Ngô Quyền, Hải Phòng. Đây là một giá trị kép nó gồm số nhà, tên phố, quận, thành phố; và
miền địa chỉ được gọi là miền đa giá trị. Khi đó nên tách thuộc tính này ra nhiều thuộc tính nhỏ hơn
để đảm bảo giá trị thuộc tính là đơn giản. Tuy nhiên nhiều khi để dễ dàng cho việc thiết kế người ta
thường bỏ qua việc làm này.
25
Có một lưu ý là khi ghi dữ liệu vào các bảng, thì tại một ô nào đó người ta có thể bỏ qua việc
nhập dữ liệu ví dụ như:
Ví dụ 2.2: Giá trị rỗng (NULL)
Mặt hàng Mã số Tên hàng Đơn vị Quy cách
1 Tivi Chiếc Sony 29”
2 Đầu DVD Chiếc Sony
3 RAM Kingston 512 Thanh
Để có thể thể hiện được hiện tượng này người ta đưa ra một khái niệm là giá trị rỗng ký kiệu là
NULL.
Giá trị rỗng: là giá trị có thể gán cho một thuộc tính khi không dùng giá trị khác được, hay khi
người ta chưa biết giá trị cần gán.
NULL là một giá trị đặc biệt với nghĩa “không giống với bất kỳ giá trị nào” thậm trí không giống
với bất kỳ giá trị NULL khác; Và nó thuộc về mọi miền giá trị.
Định nghĩa 2.1: Quan hệ là một tập con của tập tích đề các của một hoặc nhiều miền giá trị.
Ví dụ 2.3: Cho D1 = {0,1}, D2 = {a, b, c} là hai miền giá trị.
Tập tích đề các D1xD2 = {(0,a), (0,b), (0,c), (1,a), (1,b), (1,c)}
Khi đó tập R = {(0,a),(0,b)} là một quan hệ xác định trên các miền D1, D2
Theo định nghĩa trên thì mỗi một quan hệ có thể là vô hạn phần tử, tuy nhiên người ta luôn giả thiết
quan hệ là một tập hữu hạn.
Định nghĩa 2.2: Gọi R = {A
1
, A
2
,..., A
n
} là tập hữu hạn của các thuộc tính, mỗi thuộc tính A
i
với i =
1, 2,..., n có miền giá trị tương ứng ký hiệu là dom(A
i
). Quan hệ r trên tập thuộc tính R là tập con
của tích đề các giữa các miền giá trị dom(A
i
)
r _ dom(A
1
) x dom(A
2
) x ... x dom(A
n
)
Khi đó ký hiệu là r(R) hoặc r(A
1
, A
2
,..., A
n
)
Ví dụ 2.4: Bảng sau thể hiện quan hệ Can_bo bao gồm các thuộc tính Ma_So, Ho_ten, Ngay_sinh,
Que_quan, Chuc_vu
Can_bo Ma_so Ho_ten Ngay_sinh Que_quan Chuc_vu
t1 0001 Lê Thanh Hằng 12/04/1970 Quảng Ninh Trưởng phòng
t2 0002 Hoàng Văn Cảnh 15/10/1981 Nam Định Nhân viên
t3 0003 Trần Bình Dương 20/01/1979 Ninh Bình Nhân viên
Ví dụ 2.5. Quan hệ Can_bo
Trong đó t1 = (“0001”, “Lê Thanh Hằng”, “12/04/1970”, “Quảng Ninh”, “Trưởng phòng”) là một
bộ của quan hệ Can_bo
Khoá của quan hệ
26
Trong các bảng quan hệ, nhiều khả năng sẽ có các bộ dữ liệu trùng nhau khiến cho việc thể hiện
và phân biệt các đối tượng trong thế giới thực bị nhầm lẫn. Để tránh việc này người ta đưa ra các
khái niệm khóa.
Khoá
Khái niệm: Khoá của một quan hệ là một hoặc một tập thuộc tính dùng để định tên duy nhất các bộ
trong quan hệ.
Xét lại ví dụ 2.3 thì Ma_so là khoá của quan hệ Can_bo. Trong một số trường hợp người ta có thể
kết hợp nhiều thuộc tính để tạo thành khoá như có thể kết hợp thuộc tính (Ho_ten, Ngay_sinh,
Que_quan) hoặc (Ma_so, Ho_ten) của quan hệ Can_bo thành một khoá.
Giả sử: R = {A
1
, A
2
,..., A
N
}, K _ R, r là một quan hệ xác định trên R
t1, t2 là 2 bộ bất kỳ thuộc r, người ta ký hiệu t1(K) = t2(K) thể hiện cho mệnh đề sau: Tồn tại ít nhất
một thuộc tính A e r sao cho giá trị của bộ t1 và t2 khác nhau tại vị trí thuộc tính A.
Định nghĩa: Khoá của quan hệ r trên tập thuộc tính R = {A
1
, A
2
,..., A
N
} là tập con K _ R sao cho
bất kỳ hai bộ khác nhau t1, t2 e r luôn thoả t1(K) = t2(K) và không có tập con thực sự K

nào của K
thỏa mãn điều đó.
Theo định nghĩa như trên thì trong một quan hệ có thể có rất nhiều khoá. Một khoá là một tập con
của tập các thuộc tính có trong quan hệ trừ tập rỗng. Nếu gọi số thuộc tính của quan hệ là N, thì số
lượng các khoá tối đa của quan hệ có được sẽ là 2
N
-1.
Khoá nhỏ nhất
Khái niệm Khoá nhỏ nhất: Khoá nhỏ nhất của quan hệ r trên tập thuộc tính R = {A
1
, A
2
,..., A
N
} là
tập con K _ R sao cho:
+ K là khoá của r
+ ¬K‟ là khóa của r thì |K‟| > |K|.
Khoá ngoại
Trong cơ sở dữ liệu có thể có rất nhiều các quan hệ, và đôi khi quan hệ này có những thuộc tính lấy
dữ liệu từ một quan hệ khác, hay nói các khác là các thuộc tính này có miền giá trị là những giá trị
được lưu tại một hoặc nhiều trường trong quan hệ khác hoặc chính nó.
Ví dụ 2.6: Quan hệ Khen_thuong ghi nhận những thông tin khen thưởng của các cán bộ trong đơn
vị, trong đó thuộc Ma_so_can_bo có miền giá trị là những giá trị lưu trong quan hệ Can_bo tại
trường Ma_so, miền đó có các giá trị: 0001, 0002, 0003.
Can_bo Ma_so Ho_ten Ngay_sinh Que_quan Chuc_vu
0001 Lê Thanh Hằng 12/04/1970 Quảng Ninh Trưởng phòng
0002 Hoàng Văn Cảnh 15/10/1981 Nam Định Nhân viên
0003 Trần Bình Dương 20/01/1979 Ninh Bình Nhân viên

27
Khen_thuong Ma_so_can_bo Khen_thuong Ngay_khen Ly_do
0001 Bằng khen công
đoàn
15/10/2001 Đã đạt thành tích xuất
sắc trong lao động
0002 Bằng khen Bộ
GTVT
25/05/2002 Chiến sĩ thi đua cấp Bộ
Khái niệm khoá ngoài (foreign key): Khoá ngoài là một hoặc một tập thuộc tính trong một quan hệ
của cơ sở dữ liệu tham chiếu đến một hoặc một tập thuộc tính của quan hệ khác trong cùng cơ sở dữ
liệu đó.
Các khoá ngoại rất quan trọng đối với cơ sở dữ liệu quan hệ. Chúng có ý nghĩa thể hiện dữ liệu
bảng này liên kết với dữ liệu bảng khác.
3.3. Chuyển đổi sơ đồ Thực thể-Liên kết sang cơ sở dữ liệu quan hệ
Tập các lược đồ quan hệ được sử dụng để biểu diễn thông tin đối với một tổ chức được gọi là một
lược đồ cơ sở dữ liệu quan hệ hay đơn giản gọi tắt là lược đồ cơ sở dữ liệu quan hệ nếu không có sự
hiểu nhầm. Các giá trị hiện thời của các quan hệ hình thành cơ sở dữ liệu quan hệ hay gọi tắt là cơ
sở dữ liệu. Tất nhiên, chúng ta hoàn toàn tự do tạo lập các quan hệ với một tập thuộc tính nào đó
như một lược đồ quan hệ và có thể đặt một sự diễn giải trên các bộ nếu chúng ta muốn. Tuy nhiên,
có một kiểu thiết kế điển hình các sơ đồ cơ sở dữ liệu quan hệ mà chúng ta có thể xác định được các
sơ đồ quan hệ khi biến đổi sơ đồ thực thể liên kết sang mô hình quan hệ.
Biến đổi các tập thực thể
Một tập thực thể E được biến đổi thành một quan hệ mà lược đồ quan hệ của nó bao gồm tập các
thuộc tính của tập thực thể. Mỗi bộ của quan hệ biểu diễn một thực thể trong thể hiện hiện thời của
E.
Nếu E là một tập thực thể mà các thực thể của nó được xác định thông qua một liên kết với một tập
thực thể khác F nào đó thì lược đồ quan hệ tương ứng với E chỉ chứa các thuộc tính khóa của F.
Biến đổi các liên kết
Mỗi liên kết R giữa tập các thực thể E
1
, E
2
,…, E
k
được biến đổi thành một quan hệ mà lược đồ quan
hệ của nó bao gồm các thuộc tính trong khóa của mỗi E
1
, E
2
,…, E
k
. Thông qua phép đặt lại tên nếu
cần thiết, chúng ta đảm bảo chắc chắn không có hai tập thực thể trong danh sách có các thuộc tính
cùng tên, thập chí nếu chúng thuộc cùng một tập thực thể.
Bài tập
1. Giả sử trong nghiệp vụ quản lý phát hành báo chí, thông tin gồm có:
a. Thông tin về khách hàng đặt mua báo (tạp chí) :
- Mã khách hàng đặt mua, 5 ký tự, kiểu character.
- Họ và tên khách hàng, 21 ký tự, kiểu character.
- Địa chỉ khách hàng, 21 ký tự, kiểu character.
28
- Số điện thoại , 7 ký tự, kiểu character.
- Địa điểm giao nhận báo(tạp chí) hàng ngày, 25 ký tự, kiểu character.
b. Thông tin về các loại báo (tạp chí) bao gồm:
- Mã báo khách đặt mua., 3 ký tự, kiểu character.
- Tên báo (tạp chí), 15 ký tự, kiểu character.
- Giá báo, 5 số.
- Kỳ phát hành báo ( báo ngày, báo tuần, báo tháng...). 3 ký tự chữ
c. Thông tin về phiếu đặt báo gồm
- Ngày khách đặt báo, chí.
- Mã hiệu khách hàng đặt mua báo.
- Mã báo khách đặt mua.
- Số lượng báo, chí khách đặt mua .
- Thành tiền từng loại báo.
Hãy phác hoạ mô hình CSDL quan hệ với các dữ liệu trên.


29
Chương 4. Đại số quan hệ

Đại số quan hệ là một ngôn ngữ đại số trong đó các bảng mới được định nghĩa bằng các toán tử liên
hệ với các bảng khác. Đây là một ngôn ngữ biểu thức. Trong đó một bảng mới được định nghĩa như
một biểu thức bao gồm các bảng khác và các toán tử.
4.1. Phép chọn
Phép chọn trên quan hệ r ký hiệu o
F
(r) là phép tính để xây dựng một tập con các bộ của r, thoả mãn
biểu thức logic F.
Các phép toán sử dụng trong biểu thức F là:
- Phép toán so sánh: >, <, =, >=, <=, <>
- Phép toán logic: ., v, ÷
Biểu diễn hình thức phép chọn:
o
F
(r) = {t e r | F(t) = TRUE}
F(t) được hiểu là giá trị của các thuộc tính xuất hiện trong biểu thức F tại bộ t thoả các điều kiện của
F.
Ví dụ 4.6:
r ( A B C) F ÷ (A = a1) o
F
(r) = ( A B C )
a1 b2 c1 a1 b2 c1
a2 b5 c4
a3 b2 c2
4.2. Phép chiếu
Giả sử R = {A
1
, A
2
,..., A
N
} là một tập các thuộc tính, A e R, r là một quan hệ trên R, t là một bộ
thuộc r. Khi đó ký hiệu t[A] là giá trị của bộ t tại thuộc tính A. Mở rộng ra, nếu X = {B
1
, B
2
,..., B
M
}
_ R với M s N, B
i
e R với i = 1, 2,..., M thì t[X] = (t[B
1
], t[B
2
],..., t[B
M
]).
Người ta định nghĩa phép chiếu như sau: Phép chiếu trên tập X của quan hệ r, ký hiệu là [
X
(r)
hoặc r[X] được định nghĩa theo công thức [
X
(r) = {t[X] | t e r}
Ví dụ 4.5:
r ( A B C) X = {A, B} [
X
=( A B )
a1 b2 c1 a1 b2
a2 b5 c4 a2 b5
a3 b2 c2 a3 b2
30
4.3. Phép hợp
* Tính khả hợp: r là quan hệ xác định trên tập thuộc tính R = {A
1
, A
2
,..., A
N
}, s là quan hệ xác định
trên tập thuộc tính S = {B
1
, B
2
,..., B
M
}. r và s được gọi là hai quan hệ khả hợp khi và chỉ khi M = N
và miền giá trị của A
i
và B
i
với i = 1, 2,..., N là tương đồng với nhau.
Hợp của hai 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.
Biểu diễn hình thức phép hợp có dạng:
r s = {t | t e r v t e s}
Ví dụ 4.1:
r ( A B C ) S( A B C ) r s =( A B C )
a1 b2 c5 a7 b2 c3 a1 b2 c5
a2 b5 c6 a2 b2 c2 a2 b5 c6
a4 b3 c7 a4 b3 c7
a7 b2 c3
a2 b2 c2
4.4. Phép giao
Giao của hai quan hệ r và s khả hợp, ký hiệu là r · s là tập các bộ thuộc cả quan hệ r và s.
Biểu diễn hình thức phép giao có dạng.
r · s = {t | t e r . t e s}
Ví dụ 4.2:
r ( A B C ) S( A B C ) r · s =( A B C )
a1 b2 c5 a1 b2 c5 a4 b3 c7
a2 b5 c6 a2 b2 c2 a1 b2 c5
a4 b3 c7 a4 b3 c7
4.5. Phép trừ
Hiệu của hai 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 s.
Biểu diễn hình thức phép trừ có dạng:
r - s = {t | t e r . t e s}
Ví dụ 4.3:
r ( A B C ) s( A B C ) r - s =( A B C )
a1 b2 c5 a1 b2 c5 a2 b5 c6
a2 b5 c6 a2 b2 c2
a4 b3 c7 a4 b3 c7
Hệ quả: Phép giao của r và s có thể biểu diễn dưới dang: r · s = r – (r – s)
31
4.6. Tích Descartes
Gọi r là quan hệ xác định trên tập thuộc tính {A
1
, A
2
,..., A
N
} và s là quan hệ xác định trên tập thuộc
tính {B
1
, B
2
,..., B
M
}.
* Phép ghép bộ: Giả sử a = (a
1
, a
2
,..., a
N
) e r, b = (b
1
, b
2
,..., b
M
) e s. Phép ghép bộ a với b được ký
hiệu (a, b) hoặc a.b sẽ có dạng (a,b) = (a
1
, a
2
,..., a
N
, b
1
, b
2
,..., b
M
)
Tích đề các của r và s ký hiệu r x s là tập các 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.
Biểu diễn hình thức phép tích đề các có dạng
r x s = {t | t = (a,b) . a e r . b e s}
Ví dụ 4.4:
r ( A B ) s( E F ) r x s= ( A B E F )
a1 b2 e1 f2 a1 b2 e1 f2
a2 b5 e3 f4 a1 b2 e3 f4
a3 b2 a2 b5 e1 f2
a2 b5 e3 f4
a3 b2 e1 f2
a3 b2 e3 f4
4.7. Các phép kết nối
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 e r . u e s . t[A] u u[B]}
Trong đó u là một phép toán thể hiện mối quan hệ giữa các thuộc tính của hai quan hệ r và s.
Trong trường hợp u là một phép toán so sánh „=‟, chúng ta gọi phép kết nối đó là phép kết nối bằng.
Trường hợp phép kết nối bằng trên các thuộc tính cùng tên của hai quan hệ và sau khi kết nối một
trong hai thuộc tính của phép so sánh „=‟ được loại bỏ thông qua phép chiếu thì phép kết nối này
được gọi là kết nối tự nhiên và sử dụng ký hiệu “*”. Phép kết nối tự nhiên của hai quan hệ được
định nghĩa như sau:
r(U) * s(V) = {t[U V] | t[U] e r . t[V] e s}
Ví dụ 4.7.
r ( A B ) s( E F ) r s= (
B > E
A B E F )
6 1 2 3 5 4 2 3
5 4 3 3 5 4 3 3
4 3 4 3 2 3
32
4.8. Phép chia
Gọi r là quan hệ trên tập R = {A
1
, A
2
,..., A
N
}, s là quan hệ trên tập S = {B
1
, B
2
,..., B
M
} với M < N.
Phép chia r cho s ký hiệu r ÷ s là tập các bộ t sao cho với mọi bộ u e s thì bộ (t,u) e r.
Biểu diễn hình thức phép chia:
r ÷ s = {t | ¬ u e s ¬ (t,u) e r}
Ví dụ 4.8:
r ( A B C) s ( B C ) r ÷ s = ( A )
a1 b2 c1 b2 c1 a1
a2 b2 c1 b2 c2 a2
a1 b2 c2
a3 b3 c3
a2 b2 c2
Bài tập
1. Trình bày khái niệm ngôn ngữ thao tác dữ liệu.
2. Các phép toán đại số quan hệ
a. Phép hợp các quan hệ – UNION
b. Phép giao của các quan hệ – INTERSECT.
c. Hiệu của các quan hệ - MINUS.
d. Tích ĐềCác – (Decalesian Product)
e. Phép chọn – Selection.
f. Phép chiếu – PROJECT.
3. Các tính chất của đại số quan hệ
a. Tính chất giao hoán
b. Kết hợp
b. Tính chất tích luỹ đẳng
4. Cho hai quan hệ HocSinh(MaHS, TenHS, DiemThi, Lop) và Lop(MaLop, TenLop, PhongHoc).
Hãy viết biểu thức đại số quan hệ thực hiện công việc sau:
1. Hiển thị ra các học sinh có điểm thi nằm trong khoảng từ 5 đến 7, thông tin hiển thị bao
gồm: MaHS, TenHS, TenLop, DiemThi.
2. Thống kê số học sinh của mỗi lớp. Thông tin hiển thị bao gồm: MaLop, TenLop,
SoHocSinh.
33
Chương 5. Ngôn ngữ truy vấn có cấu trúc- SQL

5.1. Tổng quan về SQL
SQL là ngôn ngữ hỏi có cấu trúc được giới thiệu từ những năm 1970, nhờ SQL người sử dụng cơ sở
dữ liệu có thể thao tác (bổ xung, chỉnh sửa, xoá bỏ, tìm kiếm) trên các dữ liệu trong quan hệ, tăng
cường các luật toàn vẹn dữ liệu và thực hiện các phép toán của đại số quan hệ. Đây là ngôn ngữ tập
trung vào việc khai thác dữ liệu, không giống như các ngôn ngữ lập trình khác. SQL được chỉnh sửa
và bổ xung lần mới nhất là vào năm 1992. Hiện đây là ngôn ngữ truy vấn được cài đặt khá phổ biến
trong các hệ quản trị cơ sở dữ liệu quan hệ.
Trong các hệ quản trị SQL đều được cài đặt thành 3 lớp ngôn ngữ:
- Ngôn ngữ định nghĩa (xác định) dữ liệu – DDL (data definition language): Gồm các câu lệnh cho
phép xây dựng cơ sở dữ liệu, tức là các lệnh tạo mới, thay đổi và huỷ bỏ cơ sở dữ liệu cũng như các
đối tượng trong cơ sở dữ liệu và các ràng buộc về dữ liệu.
- Ngôn ngữ khai thác dữ liệu – DML (data manipulation language): bao gồm các câu lệnh cho phép
chỉnh sửa, truy vấn cơ sở dữ liệu, bao gồm các công việc như cập nhật, bổ xung, thay đổi và tìm
kiếm dữ liệu.
- Ngôn ngữ điều khiển dữ liệu – DCL (data control language): Ngôn ngữ điều khiển dữ liệu gồm
các câu lệnh dùng để điều khiển cơ sở dữ liệu, gồm các công việc như quyết định quyền truy cập và
khẳng định việc cập nhật dữ liệu.
5.2. Truy vấn SQL cơ bản
5.2.1. Lệnh SELECT
Phép toán cơ bản trong SQL là phép ánh xạ được mô tả về cú pháp như một khối SELECT –
FROM – WHERE.
Cấu trúc cơ sở của lệnh truy vấn SQL
Cấu trúc cơ sở của một biểu thức SQL bao gồm 3 mệnh đề: Select, from và where
- Mệnh đề SELECT trương ứng với phép chiếu của đại số quan hệ. Nó được sử dụng để liệt kê các
cột mong muốn trong kết quả của một truy vấn.
- Mệnh đề FROM tương ứng với phép tích đề các của đại số quan hệ. Nó liệt kê các bảng cần tra
cứu để đánh giá kết quả của biểu thức.
- Mệnh đề WHERE tương ứng với vị từ chọn của đại số quan hệ. Nó bao gồm một vị từ kéo theo
các cột của các bảng xuất hiện trong mệnh đề FROM.
Ngoài ra, để mở rộng khả năng của ngôn ngữ này, khối SELECT – FROM – WHERE sẽ được bổ
sung thêm các mệnh đề GROUP BY, HAVING, ORDER BY, và một số hàm mẫu.
Dạng tổng quát của câu lệnh SELECT được biểu diễn như sau:
SELECT [DISTINCT] {<tên cột> | <biểu thức> [,]} | *
34
FROM {<tên bảng> | <tên view> [,]}
[WHERE <biểu thức điều kiện>]
[GROUP BY {<tên cột> | <tên biểu thức> [,]} [HAVING <biểu thức điều kiện>]]
[ORDER BY {<tên cột> | <tên biểu thức> [ASC | DESC] [,]}
Trong đó mệnh đề WHERE được biểu diễn với các dạng câu
WHERE [NOT] <biểu thức> <phép so sánh> <biểu thức>
WHERE [NOT] <tên cột> [NOT] LIKE <xâu ký tự>
WHERE [NOT] <biểu thức> [NOT] IN (<danh sách> | <Câu truy vấn con>)
WHERE [NOT] EXISTS (<Câu truy vấn con>)
WHERE [NOT] <biểu thức> <phép so sánh> {SOME | ANY | ALL (<Câu truy vấn con>)}
WHERE [NOT] <biểu thức logic>
WHERE [NOT] <biểu thức logic> <AND | OR> <biểu thức logic>
* Các phép toán logic sử dụng trong mệnh đề WHERE: AND, OR, NOT
* Các phép toán so sánh sử dụng trong mệnh đề WHERE: >, <, =, >=, <=, <>
5.2.2. Sử dụng biểu thức và chuỗi trong lệnh SELECT
* Một số các phép toán đặc biệt:
- BETWEEN <giá trị đầu> AND <giá trị cuối>
- LIKE <Chuỗi tìm kiếm>
Trong chuỗi tìm kiếm sử dụng ký tự % để đại diện cho một xâu con, ký tự _ để đại diện cho một ký
tự.
- Phép toán đổi tên AS
5.3. Truy vấn sử dụng các hàm thống kê
Hàm AVG(column)
Hàm AVG trả về giá trị trung bình tính theo cột được chỉ định của các dòng được chọn. Các giá trị
NULL sẽ không được xét đến khi tính giá trị trung bình.
Ví dụ: Câu lệnh sau sẽ tính số tuổi trung bình của những người có tuổi trên 20:
SELECT AVG(Age) FROM Persons WHERE Age > 20
Hàm MAX(column)
Hàm MAX trả về giá trị lớn nhất trong cột. Các giá trị NULL sẽ không được xét đến.
Ví dụ: SELECT MAX(Age) FROM Persons
Hàm MIN(column)
Hàm MIN trả về giá trị nhỏ nhất trong cột. Các giá trị NULL sẽ không được xét đến.
Ví dụ: SELECT MIN(Age) FROM Persons
Lưu ý: Hàm MIN và MAX cũng có thể áp dụng cho các cột có dữ liệu là chuỗi văn bản. Dữ liệu
trong cột sẽ được so sánh theo thứ tự tăng dần của từ điển
35
Hàm SUM(column)
Hàm SUM trả về tổng giá trị của cột. Các giá trị NULL sẽ không được xét đến.
Ví dụ: Tìm tổng số tuổi của tất cả những người có trong bảng:
SELECT SUM(Age) FROM Persons
Ví dụ: Tìm tổng số tuổi của tất cả những người có tuổi lớn hơn 20:
SELECT SUM(Age) FROM Persons WHERE Age > 20
5.4. Các lệnh sửa đổi dữ liệu
5.4.1. Lệnh chèn một bản ghi- INSERT
- Thao tác thêm một bản ghi mới:
INSERT INTO <tên bảng>[(danh sách tên cột)] VALUES(Các giá trị)
Ví dụ 4.9:
Insert into Mat_hang(Ma_hang, Ten_hang, Don_vi, Quy_cach) Values(„0001‟, „Tivi‟, „Chiếc‟,
„Sony 29”‟)
Chú ý: Trong trường hợp không liệt kê danh sách tên cột thì tương đương với việc liệt kê toàn bộ
tên các cột của bảng theo thứ tự khi tạo ra bảng.
5.4.2. Lệnh cập nhật các bản ghi- UPDATE
- Thao tác sửa đổi dữ liệu:
Trong những tình huống nhất định, chúng ta có thể muốn thay đổi một số giá trị trong một dòng mà
không thay đổi mọi giá trị trong dòng đó. Lệnh sửa đổi các giá trị của các dòng trong bảng thỏa mãn
một điều kiện nào đó có cú pháp tổng quát là:
UPDATE <tên bảng>
SET {<tên cột> = <biểu thức> [,]}
[WHERE <biểu thức điều kiện>]
Ví dụ 4.12:
Update Mat_hang Set Quy_cach = „Sony 21”‟ Where Ma_hang = „0001‟
Chú ý: Trong trường hợp không nêu mệnh đề WHERE thì toàn bộ các bản ghi của bảng sẽ bị tác
động.
5.4.3. Lệnh xóa các bản ghi- DELETE
- Thao tác xóa:
Chúng ta có thể xóa một hoặc nhiều bộ trong một bảng thỏa mãn một điều kiện.
Cú pháp tổng quát:
DELETE FROM <tên bảng> [WHERE <biểu thức logic>]
Ví dụ 4.11:
Delete from Mat_hang Where Ma_hang = „0001‟
Chú ý: nếu không đưa ra mệnh đề WHERE thì tất cả các bản ghi của bảng sẽ bị xóa.
36
Bài tập
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:
a. Lập danh sách những sinh viên có hộ khẩu thường trú ở HẢI PHÒNG gồm 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ó mã là CNT43ĐH gồm các thông tin:
MASV, HOTENSV, NGAYSINH, TINH.
37
Chương 6. Chuẩn hóa và rút gọn cơ sở dữ liệu quan hệ

6.1. Các vấn đề về dư thừa dữ liệu
Các lược đồ quan hệ thu được từ biến đổi các sơ đồ ER về các lược đồ quan hệ chưa chắc đã là
một thiết kế lý tưởng. Đôi khi chúng ta phải tìm cách chỉnh sửa, gộp các lược đồ quan hệ lại với
nhau. Đặc biệt sau đó cần phải tiến hành chuẩn hóa lại các lược đồ để tránh các trường hợp:
a. Dư thừa dữ liệu:
Ví dụ xem xét một lược đồ NhaCungCap(Ma, Ten, DiaChi, MatHang, Gia). Dễ dàng thấy rằng
nếu một nhà cung cấp nào đó cung cấp nhiều mặt hàng khác nhau thi dữ liệu về nhà cung cấp đó sẽ
xuất hiện lặp đi lặp lại trong nhiều bộ của quan hệ trên lược đồ này.
b. Không nhất quán: Là hệ quả của việc dư thừa dữ liệu. Ví dụ dữ liệu về một nhà cung cấp lặp
lại trong nhiều bộ dẫn đến khi sửa đổi địa chỉ của người cung cấp này, chúng ta chỉ sửa đổi một bộ
nào đó còn các bộ khác vẫn giữ nguyên. Khi đó có hiện tượng một nhà cung cấp lại không có địa
chỉ duy nhất.
c. Dị thường khi thêm bộ: Nếu một nhà cung cấp chưa cung cấp một mặt hàng nào cả, khi thêm
một bộ giá trị về người cung cấp này, chúng ta không thể đưa mặt hàng và giá cả vào bộ giá trị .
d. Dị thường khi xóa bộ: Là vấn đề ngược lại của dị thường khi thêm bộ. Nếu một nhà cung cấp
nào đó chỉ cung cấp một mặt hàng, khi đó trong quan hệ chỉ có một bộ lưu trữ dữ liệu về nhà cung
cấp này. Khi chúng ta xóa dữ liệu về sự cung cấp mặt hàng bởi nhà cung cấp này hay xóa bộ giá trị
đó chúng ta sẽ làm mất thông tin về người cung cấp này.
6.2. Phụ thuộc hàm
6.2.1. Khái niệm về phụ thuộc hàm
Cho quan hệ PhanCong như sau:
PhanCong (PHICONG, MAYBAY, NGAYKH, GIOKH)

Quan hệ PhanCong diễn tả phi công nào lái máy bay nào và máy bay khởi hành vào thời gian
nào. Không phải sự phối hợp bất kỳ nào giữa phi công, máy bay và ngày giờ khởi hành cũng đều
được chấp nhận mà chúng có các điều kiện ràng buộc qui định sau:
- Mỗi máy bay có một giờ khởi hành duy nhất.
- Nếu biết phi công, biết ngày giờ khởi hành thì biết được máy bay do phi công ấy lái.
38
- Nếu biết máy bay, biết ngày khởi hành thì biết phi công lái chuyến bay ấy.
Các ràng buộc này là các ví dụ về phụ thuộc hàm và được phát biểu lại như sau:
- MAYBAY xác định GIOKH
- {PHICONG,NGAYKH,GIOKH} xác định MABAY
- {MAYBAY,NGAYKH} xác định PHICONG
hay
- GIOKH phụ thuộc hàm vào MAYBAY
- MABAY phụ thuộc hàm vào {PHICONG,NGAYKH,GIOKH}
- PHICONG phụ thuộc hàm vào {MAYBAY,NGAYKH}
và được ký hiệu như sau:
- {MAYBAY}→ GIOKH
- {PHICONG,NGAYKH,GIOKH}→ MABAY
- {MAYBAY,NGAYKH}→ PHICONG
Trong ký hiệu trên ta đã ký hiệu MAYBAY thay cho {MAYBAY}.
Một cách tổng quát:
R(Ω) là lược đồ quan hệ. X, Y là hai tập con của tập thuộc tính Ω ={A1,A2,…,An}.
r là quan hệ trên R(Ω); t
1
, t
2
là hai bộ bất kỳ của r.
X → Y ⇔ (t
1
.X = t
2
.X ⇒ t
1
.Y = t
2
.Y)
(Ta nói X xác định Y hay Y phụ thuộc hàm vào X (X functional determines Y, Y functional
dependent on X )
Tính chất:
- phụ thuộc hàm X → ∅đúng với mọi quan hệ r
- phụ thuộc hàm ∅→ Y chỉ đúng trên quan hệ r có cùng giá trị trên Y.
Ví dụ: Quan hệ sau thỏa mãn phụ thuộc hàm ∅→ GIOKH
PhanCong (PHICONG, MAYBAY, NGAYKH, GIOKH)


Phụ thuộc hàm đƣợc suy diễn logic từ F
39
Nói rằng phụ thuộc hàm X → Y được suy diễn logic từ F nếu một quan hệ r thỏa mãn tất cả
các phụ thuộc hàm của F thì cũng thỏa phụ thuộc hàm X → Y. Ký hiệu F|= X → Y.Bao đóng của F
ký hiệu F+ là tập tất cả các phụ thuộc hàm được suy diễn logic từ F.
Các tính chất của tập F+
1. Tính phản xạ: Với mọi tập phụ thuộc hàm F+ ta luôn luôn có F ⊆ F+
2. Tính đơn điệu: Nếu F ⊆ G thì F+ ⊆ G+
3. Tính lũy đẳng: Với mọi tập phụ thuộc hàm F ta luôn luôn có (F+)+ = F+.
Gọi G là tập tất cả các phụ thuộc hàm có thể có của r, phần phụ của F ký hiệu F- = G - F+
Chứng minh
1. X → Y ∈ F ⇒ r thỏ X → Y ⇒ X → Y ∈ F+
2. Nếu X → Y là phụ thuộc hàm thuộc F+ ta phải chứng minh X → Y thuộc G+
Giả sử r thỏa tất cả các phụ thuộc hàm của G (1)
⇒ r thỏa tất cả phụ thuộc hàm của F vì F ⊆ G
⇒ r thỏa phụ thuộc hàm X → Y (2) vì X → Y∈F+
(1) và (2) ⇒ X → Y ∈ G+ ⇒ F+ ⊆ G+
3. F ⊆ F+ (tính phản xạ ⇒ F+ ⊆ (F+)+ (1)
Nếu X → Y ∈ (F+)+ (2) ⇒ X → Y ∈ F+ thậ vậ: (3)
Giảsửr thỏa tất cả các phụ thuộ hàm của F (4)
⇒ r thỏa tất cả các phụ thuộc hàm của F+ (theo đinh nghĩa)
⇒ r thỏa tất cả các phụ thuộ hàm của (F+)+ (theo đinh nghĩa)
⇒ r thỏa X → Y (vì (2)) ⇒ X → Y ∈ F+
(1) và (3) ⇒ (F+)+ = F+
6.2.2. Bao đóng của tập phụ thuộc hàm
Người ta gọi tập F
+
là bao đóng của F, tức là tập các phụ thuộc hàm được suy diễn logic từ F.
Nếu F = F
+
thì F là họ đầy đủ của các phụ thuộc hàm.
6.2.3. Hệ tiên đề Armstrong
Gọi R(U) là lược đồ quan hệ với U = {A
1
, A
2
,…, A
N
} là tập các thuộc tính và X, Y, Z, W _ U.
Chúng ta ký hiệu XY tương đương với XY
Hệ tiên đề Armstrong:
A1. Phản xạ: Nếu Y _ X thì X ÷ Y
A2. Tăng trưởng: Nếu X ÷ Y, Z _ U thì XZ ÷ YZ
A3. Bắc cầu: Nếu X ÷ Y, Y ÷ Z thì X ÷ Z
40
Bổ đề. Hệ tiên đề Armstrong là đúng. Điều này có nghĩa là nếu X ÷ Y là một phụ thuộc hàm
được suy diễn từ F nhờ hệ tiên đề Armstrong thì X ÷ Y là đúng trên một quan hệ nào đó thoả mãn
các phụ thuộc hàm trong F.
Chứng minh:
Lần lượt kiểm tra tính đúng đắn của 3 tiên đề:
- Tiên đề phản xạ: Rõ ràng tiên đề này là đúng vì không thể có hai bộ bằng nhau trên X mà lại
không bằng nhau trên tập con của nó.
- Tiên đề tăng trưởng: Giả sử quan hệ r thoả mãn X ÷ Y. Tồn tại hai bộ t, u e r sao cho t[XZ] =
u[XZ] mà t[YZ] = u[YZ]
Vì t[Z] = u[Z] nên để có t[YZ] = u[YZ] thì t[Y] = u[Y] (1)
Mà ta có t[XZ] = u[XZ] nên t[X] = u[X] (2)
Từ (1) và (2) ta có t[X] = u[X] và t[Y] = u[Y] điều này là trái với giả thiết quan hệ r thoả mãn
X ÷ Y. Vậy t[YZ] = u[YZ] hay XZ ÷ YZ là đúng trên quan hệ r.
- Tiên đề bắc cầu: Cho X ÷ Y và Y ÷ Z đúng trên quan hệ r.
Giả sử tồn tại hai bộ t, u e r sao cho t[X] = u[X] và t[Z] = u[Z] (3)
Từ X ÷ Y suy ra t[X] = u[X] nên t[Y] = u[Y] (4)
Từ 3 và 4 ta có t[Y] = u[Y] và t[Z] = u[Z] điều này trái với giả thiết Y ÷ Z. Do vậy t[Z] = u[Z]
Suy ra X ÷ Z là đúng trên quan hệ r.
Bổ đề. Cho X, Y, Z, W _ U. Chúng ta có các luật sau:
- Luật hợp: Nếu X ÷ Y, X ÷ Z thì X ÷ YZ.
- Luật tựa bắc cầu: Nếu X ÷ Y, YW ÷ Z thì XW ÷ Z.
- Luật tách: Nếu X ÷ Y, Z _ Y thì X ÷ Z.
Chứng minh.
- Chứng minh luật hợp:
Từ X ÷ Y ta dùng luật tăng trường thêm X có XX ÷ XY tương đương với phụ thuộc hàm X ÷
XY (1)
Từ X ÷ Z ta dùng luật tăng trưởng thêm Y có XY ÷ YZ (2)
Từ (1) và (2) ta dùng luật bắc cầu sẽ có: X ÷ YZ.
41
- Chứng minh luật tựa bắc cầu:
Từ X ÷ Y, dùng luật tăng trưởng thêm W có XW ÷ YW (3)
Mà theo giả thiết chúng ta có YW ÷ Z (4)
Từ (3) và (4) ta dùng luật bắc cầu sẽ có: XW ÷ Z.
- Chứng minh luật tách:
Vì Z _ Y nên Y ÷ Z theo luật phản xạ (5)
Mà theo giả thiết có X ÷ Y (6)
Từ (5) và (6) ta dùng luật bắc cầu sẽ có: X ÷ Z.
6.2.4. Bao đóng của tập thuộc tính
Để dễ dàng chứng minh tính đầy đủ của hệ tiên đề Armstrong, người ta đưa thêm khái niệm bao
đóng của tập các thuộc tính.
Gọi F là tập các phụ thuộc hàm trên tập thuộc tính U, X _ U. Gọi X
+
là bao đóng của X đối với
F, X
+
được định nghĩa như sau:
X
+
= { A e U | X ÷ A e F
+
}
Nói cụ thể: X
+
là tập tất cả các thuộc tính A mà phụ thuộc hàm X ÷ A có thể được suy diễn
logic từ F nhờ hệ tiên đề Armstrong.
Bổ đề. X ÷ Y được suy diễn từ hệ tiên đề Armstrong khi và chỉ khi Y _ X
+
.
Chứng minh:
Giả sử Y = A1....A
N
với A
1
,..., A
N
là các thuộc tính và Y _ X
+

Từ định nghĩa X
+
ta có X ÷ A
i
với i = 1, 2,..., N. Áp dụng hệ tiên đề Armstrong cho mọi i suy
ra từ X ÷ Y nhờ luật hợp.
Ngược lại, giả sử ta có X ÷ Y, áp dụng hệ tiên đề Armstrong cho mỗi i có X ÷ A
i
với A
i
e Y
nhờ luật tách. Từ đó suy ra Y _ X
+
.
Định lý. Hệ tiên đề Armstrong là đúng và đầy đủ.
Chứng minh:
Tính đúng đắn của hệ tiên đề đã được chứng minh qua bổ đề 5.1. Ở đây chúng ta chỉ cần chứng
minh tính đầy đủ tức là X ÷ Y không thoả trên quan hệ r thì X ÷ Y cũng không thể suy diễn logic
từ F.
42
Gọi F là tập các phụ thuộc hàm trên tập thuộc tính U. Giả sử X ÷ Y là không thể suy diễn
được từ hệ tiên đề Armstrong. Xét quan hệ r gồm hai bộ được cho trong bảng dưới đây:
Bảng 5.1. Một quan hệ r chỉ ra F không suy diễn logic ra X ÷ Y.
11................1 11..............1
11................1 00..............0
Các thuộc tính thuộc X
+
Các thuộc tính còn lại
Trước hết cần chỉ ra rằng tất cả các phụ thuộc hàm thuộc F đều thoả trên quan hệ r. Thật vậy,
giả sử V ÷ W e F nhứng không thoả trên r. Do đó, ta có V _ X
+
hoặc hai bộ của r sẽ không bằng
nhau ít nhất trên một thuộc tính của V. Như vậy W không thể là tập con của X
+
hoặc V ÷ W thoả
trên r.
Gọi A e W nhưng A không thuộc X
+
. Vì XV _ X
+
do V _ X
+
nên X ÷ V suy ra từ bổ đề 5.3.
Áp dụng luật bắc cầu và luật tách với X ÷ V và V ÷ W e F suy ra X ÷ A. Nhưng do A không
thuộc X
+
như giả thiết, do vậy là mâu thuẫn. Từ đó đi đến kết luật rằng mỗi V ÷ W e F đều thoả
trên r.
Bây giờ cần chứng minh X ÷ Y không thoả trên r. Giả sử răng X ÷ Y là thoả trên r. Như trên
có X _ X
+
và suy ra Y _ X
+
, nếu không hai bộ thuộc r là bằng nhau trên X nhưng không bằng nhau
trên Y. Theo bổ đề 5.3 thì X ÷ Y có thể suy ra được từ hệ tiên đề, điều đó là hoàn toàn mâu thuẫn
với giả thiết rằng X ÷ Y là không thể suy diễn được từ hệ tiên đề Armstrong. Do vậy X ÷ Y
không thể đúng trên r. Đến đây có thể kết luận: Nếu X ÷ Y không suy diễn được từ hệ tiên đề
Armstrong thì X ÷ Y không thể suy diễn logic được từ F. Vậy hệ tiên đề là đầy đủ.
Tính toán bao đóng của tập thuộc tính.
Việc tính toán bao đóng F
+
của tập các phụ thuộc hàm F trong trường hợp tổng quát là rất khoá
khăn và tốn kém thời gian bởi vì tập các phụ thuộc hàm thuộc F
+
rất lớn cho dù F có thể là khá nhỏ.
Chẳng hạn cho F là tập các phụ thuộc hàm với F = {A ÷ B
1
, A ÷ B
2
,..., A ÷ B
N
}. F
+
khi đó còn
được tính những phụ thuộc hàm A ÷ Y với Y _ {B
1
,B
2
,...,B
N
}. Như vậy sẽ có 2
N
– 1 tập con khác
rỗng của Y. Tuy nhiên việc tính X
+
, bao đóng của tập thuộc tính X lại không khó. Theo bổ đề 5.3
việc kiểm tra X ÷ Y e F
+
không khó hơn việc tính X
+
.
Thuật toán. Tính bao đóng của tập các thuộc tính đối với một tập phụ thuộc hàm.
Vào: Tập hữu hạn các thuộc tính U, tập các phụ thuộc hàm F trên U và X _ U
Ra: Bao đóng của X đối với F.
Phương pháp:
43
Lần lượt tính các tập X
0
, X
1
, X
2
..... theo các bước sau:
Bước 0: Đặt X
0
= X
Bước i: Tính X
i
từ X
i -1
, cụ thể X
i
= X
i-1
A nếu tồn tại một phụ thuộc hàm Y ÷ Z e F mà Y _
X
i-1
với A e Z và A e X
i-1
. Ngược lại đặt X
i
= X
i-1
.
Vì rằng X = X
0
_ ....._ X
i
_....._ U và U là hữu hạn cho nên sẽ tồn tại một chỉ số i nào đó mà
X
i
= X
i-1
, khi đó đặt X
+
= X
i
.
Định lý. Thuật toán tính bao đóng X
+
là đúng.
Chứng minh: chứng minh bằng quy nạp.
Bước cơ sở: Đúng vài A e X rõ ràng X ÷ A.
Bước quy nạp: Giả sử bước j-1 đúng. Cần chứng minh cho bước thứ j. Tức là nếu A được thêm
vào X
j
thì A e X
+
, trong đó X
j-1
chỉ chứa các thuộc tính thuộc X
+
. Thật vậy, theo thuật toán ở bước
thứ j, nếu A là thuộc tính được đưa vào X
j
thì phải tồn tại một phụ thuộc hàm Y ÷ X e F, Y _ X
j-1

và A e Z. Theo giả thiết quy nạp, ta có Y _ X
+
. X ÷ Y theo bổ đề 5.2; áp dụng luật bắc cầu cho X
÷ Y và Y ÷ Z có X ÷ Z. Do A e Z nên Z ÷ A theo luật phản xạ. Áp dụng luật bắc cầu cho X ÷
Z và Z ÷ A, ta có X ÷ A và do đó A e X
+

Ngược lại, cần chứng minh rằng nếu A e X
+
thì A phải thuộc vào X
j
nào đó. Có điều không
quan trọng là thuật toán 5.1 có thể kết thúc sớm hơn trước khi tính toán bước thứ j cho X
j
. Nêu thuật
toán dừng ở bước X
i
= X
i-1
với i < j thì rõ ràng rằng X
i
= X
j
. Do vậy X
i
= X
+
, trong đó có cả thuộc
tính A. Trong quá trình chứng minh cần sử dụng tới hệ tiên đề Armstrong: X ÷ Y suy diễn từ F thì
mỗi thuộc tính A e Y được thêm vào tại mỗi X
j
nào đó. Các bước quy nạp sẽ thực hiện thêm một số
dòng, trong đó mỗi dòng là một phụ thuộc hàm thuộc F và sử dụng luật phản xạ hoặc giả thiết của
bước quy nạp trước hoặc sử dụng luật tăng trưởng và luật bắc cầu. Cuối cùng sẽ là X ÷ Y.
44
6.3. Các dạng chuẩn của lược đồ quan hệ
Định nghĩa. Cho R(U) là lược đồ quan hệ với U = {A
1
, A
2
,…, A
N
} là tập các thuộc tính, F là tập
các phụ thuộc hàm trên R và A e U. Chúng ta nói rằng A là thuộc tính khóa nếu A thuộc một khóa
tối thiểu nào đó của R. Ngược lại A được gọi là thuộc tính không khóa.
Định nghĩa. Cho R(U) là lược đồ quan hệ với U = {A
1
, A
2
,…, A
N
} là tập các thuộc tính, F là tập
các phụ thuộc hàm trên R và X, Y _ U. Chúng ta nói rằng Y phụ thuộc hàm đầy đủ vào X nếu:
- X ÷ Y e F
+

- ¬X‟ c X thì X‟ ÷ Y e F
+

Ngược lại, chúng ta sẽ nói Y phụ thuộc bộ phận vào X.
Như vậy, Y phụ thuộc hàm đầy đủ vào X nếu Y phụ thuộc hàm vào X nhưng không phụ thuộc
hàm vào bất kỳ một tập con thực sự nào của X.
Định nghĩa. Cho R(U) là lược đồ quan hệ với U = {A
1
, A
2
,…, A
N
} là tập các thuộc tính, F là tập
các phụ thuộc hàm trên R và X _ U, A e U. Chúng ta nói rằng A là phụ thuộc bắc cầu vào X nếu
tồn tại một tập thuộc tính Y, Y _ U sao cho X ÷ Y, Y ÷ A thuộc F
+
nhưng Y ÷ X không thuộc
F
+
. Ngược lại, chúng ta sẽ nói rằng A không phụ thuộc hàm bắc cầu vào X hay A phụ thuộc trực
tiếp vào X.
6.3.1. Dạng chuẩn 1 (1NF)
Một quan hệ được chuẩn hóa là quan hệ trong đó mỗi miền giá trị của một thuộc tính chỉ chứa
nhứng giá trị nguyên tố tức là những giá trị không thể phân chia được nữa. Một quan hệ có chứa
một miền giá trị của một thuộc tính nào đó là không nguyên tố được gọi là quan hệ không chuẩn
hay quan hệ phi chuẩn. Tuy nhiên, với một quan hệ không chuẩn nao đó, chúng ta luôn luôn có thể
chuẩn hóa nó về dạng một quan hệ chuẩn hóa.
Định nghĩa. Một lược đồ quan hệ R được gọi là ở dạng chuẩn một (1NF) nếu và chỉ nếu toàn
bộ các miền giá trị của các thuộc tính trong R đều chỉ chứa cá giá trị nguyên tố.
Một quan hệ xác định trên lược đồ quan hệ ở dạng chuẩn 1 được nói là quan hệ ở dạng chuẩn
một.
6.3.2. Dạng chuẩn 2 (2NF)
Định nghĩa. Một lược đồ quan hệ R được gọi là ở dạng chuẩn hai (2NF) nếu nó đã ở dạng
chuẩn một và mọi thuộc tính không khóa của R đều phụ thuộc hàm đầy đủ vào khóa chính.
Một quan hệ xác định trên lược đồ quan hệ ở dạng chuẩn hai được nói là quan hệ ở dạng chuẩn
hai.
6.3.3. Dạng chuẩn 3 (3NF)
45
Định nghĩa. Một lược đồ quan hệ R được gọi là ở dạng chuẩn ba (3NF) nếu nó đã ở dạng
chuẩn hai và mọi thuộc tính không khóa của R đều không phụ thuộc bắc cầu vào khóa chính.
Một quan hệ xác định trên lược đồ quan hệ ở dạng chuẩn ba được nói là quan hệ ở dạng chuẩn
ba.
6.3.4. Dạng chuẩn Boyce-Codd (BCNF)
Định nghĩa. Một lược đồ quan hệ R với tập phụ thuộc hàm F được gọi là ở dạng chuẩn Boye-
Codd nếu với mọi X ÷ A thuộc F
+
và A e X thì X chứa một khóa của R. Nói cách khác, sơ đồ
quan hệ R chỉ có các phụ thuộc hàm không tầm thường là những phụ thuộc hàm trong đó một khóa
xác định hàm một hay nhiều thuộc tính khác.
Đính lý. Mọi sơ đồ quan hệ R với tập phụ thuộc hàm F ở dạng chuẩn Boye-Codd thì cũng ở
dạng chuẩn ba.
6.4. Phép tách lược đồ quan hệ
6.4.1. Phép tách bảo toàn thông tin
Giả sử lược đồ quan hệ R được phân tách thành các sơ đồ con R
1
, R
2
,…, R
k
và F là tập các phụ
thuộc hàm trên R. Ta nói phép tách này là không mất mát thông tin đối với F nếu mọi quan hệ r trên
R mà thỏa mãn F thì:
r = H
R1(r)
* H
R2(r)
*…* H
Rk(r)

tức là quan hệ r là kết nối tự nhiên của những quan hệ là phép chiếu của nó trên mỗi R
i
.
Gọi m
µ
là ánh xạ được định nghĩa như sau:
m
µ
(r) = H
R1(r)
* H
R2(r)
*…* H
Rk(r)

tức m
µ
(r) là kết nối tự nhiên của những quan hệ là phép chiếu của nó trên các sơ đồ con trong µ.
Vì vậy điều kiện để một phép tách là không mất mát thông tin là r = m
µ
.
Bổ đề. Cho lược đồ quan hệ R, µ = {R
1
, R
2
,…, R
k
}, r là một quan hệ trên R và r
i
= H
Ri
(r). Thì
(a) r _ m
µ
(r)
(b) Nếu s = m
µ
® thì H
Ri
(s) = r
i

(c) m
µ
( m
µ
(r)) = m
µ
(r)
Bổ đề có thể chứng minh dễ dàng dựa trên khái niệm phép tách và định nghĩa của m
µ
.
Kiểm tra phép tách là không mất mát thông tin.
Liệu một phép tách có là mất thông tin hay không đối với một tập các phụ thuộc hàm cho trước
được kiểm tra thông qua thuật toán sau:
46
Thuật toán. Kiểm tra phép tách không mất mát thông tin.
Vào: Lược đồ quan hệ R = {A
1
, A
2
,…, A
N
}, tập phụ thuộc hàm F trên R và một phép tách µ =
{R
1
, R
2
,…, R
k
} trên R.
Ra: Khẳng định phép tách có mất mát thông tin hay không?
Phương pháp:
- Xây dựng một bảng n cột, k hàng; cột j tương ứng với thuộc tính A
j
và hàng i tương ứng với
lược đồ con R
i
. Tại vị trí hàng i, cột j, nếu A
j
thuộc R
i
thì ta điền kí hiệu a
j
vào đó, ngược lại ta điền
kí hiệu b
ij
.
- Xét lần lược các phụ thuộc hàm tỏng F và áp dụng các phụ thuộc hàm này cho bảng vừa được
xây dựng. Giả sử chúng ta xét phụ thuộc hàm X ÷ Y e F. Nếu tồn tại hai hàng mà tất cả các cột
tương ứng với các thuộc tính của X có giá trị như nhau thì ta làm cho các cột ứng với các thuộc tính
của Y cũng có giá trị như nhau trong hai hàng này theo nguyên tác sau: Nếu có một kí hiệu a
j
trong
các cột ứng với các thuộc tính của Y thì đồng nhất các kí hiệu là a
j
. Nếu không đồng nhất bằng một
trong các kí hiệu b
ij
.
- Tiếp tục áp dụng các phụ thuộc hàm cho bảng (kể cả việc lặp lại các phụ thuộc hàm đã được
áp dụng) cho tới khi không thể áp dụng được nữa (không thể thay đổi được giá trị nào trong bảng
nữa).
- Nếu trong bảng có một hàng gồm các kí hiệu a
1
, a
2
,…, a
n
thì phép tách là không mất mát thông
tin. Ngược lại thì phép tách là không bảo toàn thông tin.
Định lý. Cho µ = {R
1
, R
2
} là một phép tách trên R và F là tập phụ thuộc hàm trên R thì phép
tách này là không mất mát thông tin nếu R
1
· R
2
÷ R
1
\ R
2
hoặc R
1
· R
2
÷ R
2
\ R
1

Chú ý: các phụ thuộc hàm trên không nhất thiết thuộc F, chỉ cần thuộc F
+
.
6.4.2. Phép tách bảo toàn phụ thuộc
Tách quan hệ: Lược đồ quan hệ đơn R = {A1, A2,..., An} được tách thành một tập hợp các lược đồ
quan hệ D = {R1,R2,...,Rm}. Một cách hình thức, ta có điều kiện bảo toàn thuộc tính: Ri = R.
Tính không đầy đủ của các dạng chuẩn: Mục đích của chúng ta là mỗi quan hệ riêng rẽ Ri trong
phép tách D là ở dạng chuẩn BCNF hoặc 3NF. Tuy nhiên, điều đó không đủ để đảm bảo một thiết
kế CSDL tốt. Bên cạnh việc xem xét từng quan hệ riêng rẽ, chúng ta cần xem xét toàn bộ phép tách.
Việc mỗi phụ thuộc hàm X → Y trong F hoặc được xuất hiện trực tiếp trong một trong các lược đồ
quan hệ Ri trong phép tách D hoặc có thể được suy diễn từ các phụ thuộc hàm có trong Ri là rất có
lợi. Ta gọi đó là điều kiện bảo toàn phụ thuộc.
Định lý: Luôn luôn tìm được một phép tách bảo toàn phụ thuộc D đối với F sao cho mỗi quan hệ Ri
trong D là 3NF
47
Thuật toán: Tạo một phép tách bảo toàn phụ thuộc D = {R1,R2,...,Rm} của một quan hệ R dựa
trên một tập phụ thuộc hàm F sao cho mỗi Ri trong D là ở 3NF. Thuật toán này chỉ đảm bảo tính
chất bảo toàn phụ thuộc, không đảm bảo tính chất nối không mất mát.
Input: Một quan hệ R và một tập phụ thuộc hàm F trên các thuộc tính của R.
1. Tìm phủ tối thiểu G của F.
2. Với mỗi vế trái X của một phụ thuộc hàm xuất hiện trong
G, hãy tạo một lược đồ trong D với các thuộc tính
{X U {A1} U {A2} U ... U {Ak}} trong đó X → A1,X → A2,...,X → Ak chỉ là các phụ thuộc hàm
trong G với X là vế trái (X là khóa của quan hệ này).
3. Đặt các thuộc tính còn lại (những thuộc tính chưa được đặt vào quan hệ nào) vào một quan hệ
đơn để đảm bảo tính chất bảo toàn thuộc tính.
6.5. Chuẩn hóa lược đồ quan hệ
6.5.1. Tách lược đồ quan hệ về 3NF
Thuật toán. Tách một lược đồ thành 3NF.
Vào: Lược đồ quan hệ R, tập các phụ thuộc hàm F; Không làm mất tính tổng quát giả sử rằng F
là một tập phụ thuộc hàm tối thiểu.
Ra: Phép tách không mất mát thông tin trên R sao cho mỗi lược đồ con đều ở 3NF.
Phương pháp:
Bước 1. Loại bỏ tất cả các thuộc tính của R nếu các thuộc tính đó không liên quan đến một phụ
thuộc hàm nào của F, hoặc vế trái, hoặc vế phải. Về nguyên tắc các thuộc tính này có thể hình thành
một sơ đồ quan hệ riêng và không tính nó vào phép tách R về 3NF.
Bước 2. Nếu có phụ thuộc hàm nào của F liên quan tới tất cả các thuộc tính của R thì kết quả
chính là R.
Bước 3. Ngược lại, kết quả ra bao gồm các lược đồ XA ứng với một phụ thuộc hàm X ÷ A
trong F. Tuy nhiên, nếu chúng ta có các phụ thuộc hàm X ÷ A
1
, X ÷ A
2
, …, X ÷ A
N
thì chúng ta
có thể sử dụng lược đồ XA
1
A
2
…A
N
thay cho XA
i
với i = 1, 2,…, N.
6.5.2. Tách lược đồ quan hệ về BCNF
Bổ đề.
a. Giả sử R là một sơ đồ quan hệ với tập phụ thuộc hàm F. Đặt µ = (R
1
, R
2
,…, R
k
) là một phép
tách không mất thông tin của R đối với F. Với mỗi I = 1, 2,…, k, gọi F
i
là hình chiếu của F lên R
i
,
và đặt o = (S
1
, S
2
,…, S
m
) là một phép tách không mất mát thông tin của R
i
đối với F
i
.
48
Thì phép tách R thành (R
1
,…, R
i-1
, S
1
, S
2
,…, S
m
, R
i+1
,…, R
k
) là không mất mát thông tin đối
với F.
b. Giả sử R, F và p như trong (a), t = (R
1
, R
2
,…, R
k
, R
k+1
,…., R
n
) là một phép tách của R thành
tập các lược đồ chứa các lược đồ của µ thì t là một phép tách không mất mát thông tin.
Thuật toán. Tách không mất mát thông tin về dạng chuẩn Boye-Codd
Vào: Lược đồ quan hệ R, tập phụ thuộc hàm F trên R.
Ra: µ - một phép tách không mất mát thông tin bao gồm một tập các lược đồ con trong đó mỗi
lược đồ đều ở dạng chuẩn Boye-Codd với các phụ thuộc hàm là hình chiếu của F lên lược đồ đó.
Phương pháp:
- Chúng ta xây dựng một phép tách µ đối với R theo phương pháp lặp. Mỗi lần lặp, µ sẽ được
tách tiếp với một phép tách không mất mát thông tin đối với F.
- Ban đầu, đặt µ = (R). Nếu S là một sơ đồ quan hệ trong µ, không ở dạng chuẩn Boye-Codd,
xét một phụ thuộc hàm X ÷ A của S, với điều kiện X không chứa khóa của S và A e X. Ta thay
thế S với S
1
, S
2
với S
1
= A {X}, S
2
= S \ {A}
- Tiếp tục quá trình trên cho đến khi mọi lược đồ con đều ở dạng chuẩn Boye-Codd, chúng ta sẽ
xây dựng được phép tách không mất mát thông tin chuẩn hóa R về dạng chuẩn Boye-Codd.

49












MỘT SỐ ĐỀ THI MẪU

50
Trƣờng Đại Học Hàng Hải Việt Nam
Khoa Công nghệ Thông tin
BỘ MÔN HỆ THỐNG THÔNG TIN
-----***-----

THI KẾT THÚC HỌC PHẦN

Tên học phần: CƠ SỞ DỮ LIỆU
Năm học: x
Đề thi số: Ký duyệt đề:
x x
Thời gian: 60 phút

Câu 1: (2 điểm)
a. Cho biết sự khác nhau chính giữa hệ thống xử lý tệp tin và hệ quản trị dữ liệu.
b. Định nghĩa dạng chuẩn 1 (1NF), dạng chuẩn 2 (2NF). Cho ví dụ minh họa.
Câu 2: (4 điểm)
Cho một cơ sở dữ liệu về Ngân hàng như sau:
Ngân hàng có nhiều chi nhánh tại các địa điểm khác nhau. Mỗi chi nhánh lưu giữ thông tin
về chi tiết tài khoản của khách hàng tại chi nhánh đó. Các khách hàng có thể có một tài khoản hoặc
nhiều tài khoản. Ngân hàng cho khách hàng vay với nhiều mục đích sử dụng khác nhau. Ngân hàng
lưu giữ thông tin về các giao dịch được thực hiện bởi các tài khoản khách hàng. Tất cả các chi
nhánh có nhiều nhân viên và một số nhân viên giữ chức vụ người quản lý.
a. Vẽ sơ đồ Thực thể-Liên kết mô tả những thông tin trong cơ sở dữ liệu trên.
b. Chuyển sơ đồ Thực thể-Liên kết trên sang lược đồ quan hệ.
(có thể bổ sung thêm các giả thiết khác để mô tả bài toán nếu cần thiết)
Câu 3: (2 điểm)
Cho lược đồ quan hệ sau:
Suppliers(sid: integer, sname: string, address: string)
Parts(pid: integer, pname: string, color: string)
Catalog(sid: integer, pid: integer, cost: real)
(Suppliers: thông tin về các nhà cung cấp; Parts: thông tin về các loại hàng hóa; Catalog:
thông tin về giá bán các loại hàng hóa của các nhà cung cấp).
a. Viết truy vấn sau trong đại số quan hệ: Tìm tên của những nhà cung cấp có sản phẩm
màu đỏ (RED) hoặc màu xanh (GREEN)
b. Cho biết mục đích của các truy vấn được viết ở dạng đại số quan hệ sau:
cos 100 ' '
cos 100 ' '
( (( ar ) ( ata log) ))
( (( ar ) ( ata log) ))
t sid color red
t sid color green
P ts C Suppliers
P ts C Suppliers
t o o
t o o
< =
< =
·  
 

Câu 4: (2 điểm)
Cho lược đồ quan hệ R với các thuộc tính ABCDE có các phụ thuộc hàm sau:
A  B, BC  E, và ED  A.
Xác định dạng chuẩn cao nhất R thỏa mãn (1NF, 2NF, 3NF, BCNF). Giải thích.
----------------------------***HẾT***----------------------------
Lưu ý: - Không sửa, xóa đề thi, nộp lại đề sau khi thi
51
Trƣờng Đại Học Hàng Hải Việt Nam
Khoa Công nghệ Thông tin
BỘ MÔN HỆ THỐNG THÔNG TIN
-----***-----

THI KẾT THÚC HỌC PHẦN

Tên học phần: CƠ SỞ DỮ LIỆU
Năm học: x
Đề thi số: Ký duyệt đề:
x x
Thời gian: 60 phút

Câu 1: (2 điểm)
a. Giải thích sự khác nhau giữa các mức độ trừu tượng dữ liệu trong hệ quản trị dữ liệu.
b. Giải thích các vấn đề về dư thừa dữ liệu trong cơ sở dữ liệu. Cho ví dụ minh họa.
Câu 2: (4 điểm)
Cho một cơ sở dữ liệu về Bệnh viện như sau:
Bệnh viện có nhiều khoa khám bệnh. Mỗi khoa có nhiều bác sỹ. Một bác sỹ chỉ thuộc vào
một khoa. Một bác sỹ có thể khám cho nhiều bệnh nhân. Một bệnh nhân có thể được khám bởi
nhiều bác sỹ. Thông tin về các lần khám bệnh được lưu giữ trong sổ khám bệnh để theo dõi.
a. Vẽ sơ đồ Thực thể-Liên kết mô tả những thông tin trong cơ sở dữ liệu trên.
b. Chuyển sơ đồ Thực thể-Liên kết trên sang lược đồ quan hệ.
(có thể bổ sung thêm các giả thiết khác để mô tả bài toán nếu cần thiết)
Câu 3: (2 điểm)
Cho lược đồ quan hệ sau:
Suppliers(sid: integer, sname: string, address: string)
Parts(pid: integer, pname: string, color: string)
Catalog(sid: integer, pid: integer, cost: real)
(Suppliers: thông tin về các nhà cung cấp; Parts: thông tin về các loại hàng hóa; Catalog:
thông tin về giá bán các loại hàng hóa của các nhà cung cấp).
a. Viết truy vấn sau trong đại số quan hệ: Tìm tên của những nhà cung cấp có đủ tất cả các
loại sản phẩm.
b. Cho biết mục đích của các truy vấn được viết ở dạng đại số quan hệ sau:
cos 100 ' '
( ( ( ar ) ( atalog) ))
sname t sid color red
P ts C Suppliers t t o o
< =
 
Câu 4: (2 điểm)
Cho lược đồ quan hệ R với bốn thuộc tính ABCD có các phụ thuộc hàm sau:
C  D, C  A, và B  C.
Xác định dạng chuẩn cao nhất R thỏa mãn (1NF, 2NF, 3NF, BCNF). Giải thích.
----------------------------***HẾT***----------------------------
Lưu ý: - Không sửa, xóa đề thi, nộp lại đề sau khi thi
52
Trƣờng Đại Học Hàng Hải Việt Nam
Khoa Công nghệ Thông tin
BỘ MÔN HỆ THỐNG THÔNG TIN
-----***-----

THI KẾT THÚC HỌC PHẦN

Tên học phần: CƠ SỞ DỮ LIỆU
Năm học: x
Đề thi số: Ký duyệt đề:
x x
Thời gian: 60 phút

Câu 1: (2 điểm)
a. Giải thích các khái niệm: dữ liệu, cơ sở dữ liệu, hệ quản trị dữ liệu.
b. Giải thích các khái niệm: khóa, siêu khóa, khóa chính, khóa ứng cử, khóa ngoại.
Câu 2: (4 điểm)
Cho một cơ sở dữ liệu về Công ty bảo hiểm xe hơi như sau:
Công ty bảo hiểm có nhiều khách hàng mua bảo hiểm xe hơi. Mỗi khách hàng sở hữu một
hoặc nhiều xe. Mỗi xe được mua một loại bảo hiểm của công ty. Mỗi xe có thể không có hoặc có
một đến nhiều hồ sơ về tai nạn được yêu cầu bồi thường.
a. Vẽ sơ đồ Thực thể-Liên kết mô tả những thông tin trong cơ sở dữ liệu trên.
b. Chuyển sơ đồ Thực thể-Liên kết trên sang lược đồ quan hệ.
(có thể bổ sung thêm các giả thiết khác để mô tả bài toán nếu cần thiết)
Câu 3: (2 điểm)
Cho lược đồ quan hệ sau:
Suppliers(sid: integer, sname: string, address: string)
Parts(pid: integer, pname: string, color: string)
Catalog(sid: integer, pid: integer, cost: real)
(Suppliers: thông tin về các nhà cung cấp; Parts: thông tin về các loại hàng hóa; Catalog:
thông tin về giá bán các loại hàng hóa của các nhà cung cấp).
a. Viết truy vấn sau trong đại số quan hệ: Tìm tên của những nhà cung cấp có sản phẩm
màu đỏ (RED) và màu xanh (GREEN).
b. Cho biết mục đích của các truy vấn được viết ở dạng đại số quan hệ sau:
cos 100 ' '
cos 100 ' '
( (( ar ) ( ata log) ))
( (( ar ) ( ata log) ))
sname t color red
sname t color green
P ts C Suppliers
P ts C Suppliers
t o o
t o o
< =
< =
·  
 

Câu 4: (2 điểm)
Cho lược đồ quan hệ R với các thuộc tính ABCDE có các phụ thuộc hàm sau:
A  BC, BC  E, và E  DA.
Xác định dạng chuẩn cao nhất R thỏa mãn (1NF, 2NF, 3NF, BCNF). Giải thích.
----------------------------***HẾT***----------------------------
Lưu ý: - Không sửa, xóa đề thi, nộp lại đề sau khi thi
53
Trƣờng Đại Học Hàng Hải Việt Nam
Khoa Công nghệ Thông tin
BỘ MÔN HỆ THỐNG THÔNG TIN
-----***-----

THI KẾT THÚC HỌC PHẦN

Tên học phần: CƠ SỞ DỮ LIỆU
Năm học: x
Đề thi số: Ký duyệt đề:
x x
Thời gian: 60 phút

Câu 1: (2 điểm)
a. Trình bày các bước cơ bản trong quá trình thiết kế cơ sở dữ liệu.
b. Cho biết các tiên đề Amstrong và bổ đề được sử dụng để tìm các phụ thuộc hàm.
Câu 2: (4 điểm)
Cho một cơ sở dữ liệu về Nhân viên công ty như sau:
Một công ty có nhiều phòng ban. Mỗi phòng ban có nhiều nhân viên. Mỗi nhân viên phải
thuộc vào một phòng ban nào đó. Một số nhân viên có thể giữ chức vụ Người quản lý. Nhân viên có
thể được chuyển từ phòng ban này sang phòng ban khác tại các thời điểm khác nhau tùy theo yêu
cầu của công ty.
a. Vẽ sơ đồ Thực thể-Liên kết mô tả những thông tin trong cơ sở dữ liệu trên.
b. Chuyển sơ đồ Thực thể-Liên kết trên sang lược đồ quan hệ.
(có thể bổ sung thêm các giả thiết khác để mô tả bài toán nếu cần thiết)
Câu 3: (2 điểm)
Cho lược đồ quan hệ sau:
Suppliers(sid: integer, sname: string, address: string)
Parts(pid: integer, pname: string, color: string)
Catalog(sid: integer, pid: integer, cost: real)
(Suppliers: thông tin về các nhà cung cấp; Parts: thông tin về các loại hàng hóa; Catalog:
thông tin về giá bán các loại hàng hóa của các nhà cung cấp).
a. Viết truy vấn sau trong đại số quan hệ: Tìm tên của những nhà cung cấp có đủ tất cả các
loại sản phẩm màu đỏ (RED).
b. Cho biết mục đích của các truy vấn được viết ở dạng đại số quan hệ sau:
cos 100 ' '
( ( ar ) ( atalog) )
sname t sid color red
P ts C Suppliers t t o o
< =
 
Câu 4: (2 điểm)
Cho lược đồ quan hệ R với bốn thuộc tính ABCD có các phụ thuộc hàm sau:
B  C, và D  A.
Xác định dạng chuẩn cao nhất R thỏa mãn (1NF, 2NF, 3NF, BCNF). Giải thích.
----------------------------***HẾT***----------------------------
Lưu ý: - Không sửa, xóa đề thi, nộp lại đề sau khi thi
54
Trƣờng Đại Học Hàng Hải Việt Nam
Khoa Công nghệ Thông tin
BỘ MÔN HỆ THỐNG THÔNG TIN
-----***-----

THI KẾT THÚC HỌC PHẦN

Tên học phần: CƠ SỞ DỮ LIỆU
Năm học: x
Đề thi số: Ký duyệt đề:
x x
Thời gian: 60 phút

Câu 1: (2 điểm)
a. Cho biết những ưu điểm khi sử dụng hệ quản trị dữ liệu để quản lý dữ liệu.
b. Định nghĩa dạng chuẩn 3 (3NF), dạng chuẩn 4 (4NF). Cho ví dụ minh họa.
Câu 2: (4 điểm)
Cho một cơ sở dữ liệu về Thư viên:
Một thư viện có nhiều sách. Mỗi cuốn sách được viết bởi một hoặc nhiều tác giả. Mỗi cuốn
sách thuộc vào một hoặc nhiều thể loại sách khác nhau. Thư viện có nhiều giá sách đặt tại nhiều vị
trí khác nhau. Mỗi cuốn sách được đặt ở một giá sách nào đó trong thư viên.
a. Vẽ sơ đồ Thực thể-Liên kết mô tả những thông tin trong cơ sở dữ liệu trên.
b. Chuyển sơ đồ Thực thể-Liên kết trên sang lược đồ quan hệ.
(có thể bổ sung thêm các giả thiết khác để mô tả bài toán nếu cần thiết)
Câu 3: (2 điểm)
Cho lược đồ quan hệ sau:
Suppliers(sid: integer, sname: string, address: string)
Parts(pid: integer, pname: string, color: string)
Catalog(sid: integer, pid: integer, cost: real)
(Suppliers: thông tin về các nhà cung cấp; Parts: thông tin về các loại hàng hóa; Catalog:
thông tin về giá bán các loại hàng hóa của các nhà cung cấp).
a. Viết truy vấn sau trong đại số quan hệ: Tìm tên của những nhà cung cấp có đủ tất cả các
loại sản phẩm màu đỏ (RED) hoặc màu xanh (GREEN).
b. Cho biết mục đích của các truy vấn được viết ở dạng đại số quan hệ sau:
cos 100 ' '
cos 100 ' '
( (( ar ) ( ata log) ))
( (( ar ) ( ata log) ))
t sid color red
t sid color green
P ts C Suppliers
P ts C Suppliers
t o o
t o o
< =
< =
·  
 

Câu 4: (2 điểm)
Cho lược đồ quan hệ R với các thuộc tính ABCDE có các phụ thuộc hàm sau:
AB  C, AB  D, C  A, và D  B.
Xác định dạng chuẩn cao nhất R thỏa mãn (1NF, 2NF, 3NF, BCNF). Giải thích.
----------------------------***HẾT***----------------------------
Lưu ý: - Không sửa, xóa đề thi, nộp lại đề sau khi thi

2

MỤC LỤC
Chƣơng 1. Giới thiệu 1.1. Tổng quan về cơ sở dữ liệu 1.2. Hệ thống tệp tin và hệ quản trị dữ liệu 1.3. Các mô hình dữ liệu 1.4. Các mức độ trừu tượng trong cơ sở dữ liệu Chƣơng 2. Mô hình Thực thể-Liên kết 2.1. Tổng quan về thiết kế cơ sở dữ liệu 2.2. Mô hình Thực thể-Liên kết 2.3. Thực thể và thuộc tính 2.4. Quan hệ giữa các thực thể Chƣơng 3: Mô hình dữ liệu quan hệ 3.1. Các khái niệm cơ bản 3.2. Các ràng buộc dữ liệu 3.3. Chuyển đổi sơ đồ Thực thể-Liên kết sang cơ sở dữ liệu quan hệ Chƣơng 4. Đại số quan hệ 4.1. Phép chọn 4.2. Phép chiếu 4.3. Phép hợp 4.4. Phép giao 4.5. Phép trừ 4.6. Tích Descartes 4.7. Các phép kết nối 4.8. Phép chia Chƣơng 5. Ngôn ngữ truy vấn có cấu trúc- SQL 5.1. Tổng quan về SQL 5.2. Truy vấn SQL cơ bản 5.3. Truy vấn sử dụng các hàm thống kê 5.4. Các lệnh sửa đổi dữ liệu Chƣơng 6. Chuẩn hóa và rút gọn cơ sở dữ liệu quan hệ 6.1. Các vấn đề về dư thừa dữ liệu 6.2. Các phụ thuộc hàm 6.3. Các dạng chuẩn của lược đồ quan hệ 7 7 7 9 17 21 21 21 21 22 24 24 24 27 29 29 29 30 30 30 31 31 32 33 33 33 34 35 37 37 37 44

3
6.3.1. Dạng chuẩn 1 (1NF) 6.3.2. Dạng chuẩn 2 (2NF) 6.3.3. Dạng chuẩn 3 (3NF) 6.3.4. Dạng chuẩn Boyce-Codd (BCNF) 6.4. Phép tách lược đồ quan hệ 6.4.1. Phép tách bảo toàn thông tin 6.4.2. Phép tách bảo toàn phụ thuộc 6.5. Chuẩn hóa lược đồ quan hệ 6.5.1. Tách lược đồ quan hệ về 3NF 6.5.2. Tách lược đồ quan hệ về BCNF Một số đề thi mẫu 44 44 44 44 45 45 45 47 47 47 49

4
Tên học phần: Cơ sở dữ liệu Bộ môn phụ trách giảng dạy: Hệ thống Thông tin Mã học phần: 17401 Tổng số tiết Lý thuyết 45 45 Thực hành/ Xemina 0 Tự học 0 Loại học phần: 1 Khoa phụ trách: CNTT. Tổng số TC: 2 Bài tập lớn không Đồ án môn học không

Học phần học trƣớc: Không yêu cầu. Học phần tiên quyết: Không yêu cầu. Học phần song song: Không yêu cầu. Mục tiêu của học phần: Cung cấp các kiến thức cơ bản về mô hình cơ sở dữ liệu quan hệ; Thiết kế một cơ sở dữ liệu hiệu quả. Nội dung chủ yếu: Giới thiệu về cơ sở dữ liệu; Mô hình Thực thể-Liên kết; Mô hình dữ liệu quan hệ; Đại số quan hệ; Giới thiệu về ngôn ngữ truy vấn dữ liệu có cấu trúc SQL; Thiết kế cơ sở dữ liệu quan hệ. Nội dung chi tiết: PHÂN PHỐI SỐ TIẾT TÊN CHƢƠNG MỤC Chƣơng 1. Giới thiệu 1.1. Tổng quan về cơ sở dữ liệu 1.2. Hệ thống tệp tin và hệ quản trị dữ liệu 1.3. Các mô hình dữ liệu 1.4. Các mức độ trừu tượng trong cơ sở dữ liệu Chƣơng 2. Mô hình Thực thể-Liên kết 2.1. Tổng quan về thiết kế cơ sở dữ liệu 2.2. Mô hình Thực thể-Liên kết 2.3. Thực thể và thuộc tính 2.4. Quan hệ giữa các thực thể Chƣơng 3: Mô hình dữ liệu quan hệ 3.1. Các khái niệm cơ bản 3.2. Các ràng buộc dữ liệu 3.3. Chuyển đổi sơ đồ Thực thể-Liên kết sang cơ sở dữ liệu quan hệ Chƣơng 4. Đại số quan hệ 4.1. Phép chọn 6 6 6 6 6 6 TS 3 LT 3 TH BT KT

5
PHÂN PHỐI SỐ TIẾT TÊN CHƢƠNG MỤC 4.2. Phép chiếu 4.3. Phép hợp 4.4. Phép giao 4.5. Phép trừ 4.6. Tích Descartes 4.7. Các phép kết nối 4.8. Phép chia Chƣơng 5. Ngôn ngữ truy vấn có cấu trúc- SQL 5.1. Tổng quan về SQL 5.2. Truy vấn SQL cơ bản 5.3. Truy vấn sử dụng các hàm thống kê 5.4. Các lệnh sửa đổi dữ liệu Chƣơng 6. Chuẩn hóa và rút gọn cơ sở dữ liệu quan hệ 6.1. Các vấn đề về dư thừa dữ liệu 6.2. Các phụ thuộc hàm 6.3. Các dạng chuẩn của lược đồ quan hệ 6.3.1. Dạng chuẩn 1 (1NF) 6.3.2. Dạng chuẩn 2 (2NF) 6.3.3. Dạng chuẩn 3 (3NF) 6.3.4. Dạng chuẩn Boyce-Codd (BCNF) 6.4. Phép tách lược đồ quan hệ 6.4.1. Phép tách bảo toàn thông tin 6.4.2. Phép tách bảo toàn phụ thuộc 6.5. Chuẩn hóa lược đồ quan hệ 6.5.1. Tách lược đồ quan hệ về 3NF 6.5.2. Tách lược đồ quan hệ về BCNF Nhiệm vụ của sinh viên: Tham dự các buổi học lý thuyết và thực hành, làm các bài tập được giao, làm các bài thi giữa học phần và bài thi kết thúc học phần theo đúng quy định. Tài liệu học tập: 1. Nguyễn Kim Anh, Nguyên lý của các hệ cơ sở dữ liệu, NXB Giáo dục, 2005. 2. Lê Tiến Vương, Nhập môn cơ sở dữ liệu quan hệ, NXB Khoa học và kỹ thuật, 1997. 3. Raghu Ramakrishnan, Database Management Systems, McGraw-Hill, 1998. 15 15 9 9 TS LT TH BT KT

D. B.8Y.6 Hình thức và tiêu chuẩn đánh giá sinh viên: . Thang điểm: Thang điểm chữ A. kết quả làm các bài tập được giao. kết quả của các bài thi giữa học phần và bài thi kết thúc học phần. Bài giảng này là tài liệu chính thức và thống nhất của Bộ môn Hệ thống Thông tin. F.Tiêu chuẩn đánh giá sinh viên: căn cứ vào sự tham gia học tập của sinh viên trong các buổi học lý thuyết và thực hành. Khoa Công nghệ Thông tin và được dùng để giảng dạy cho sinh viên.2X + 0. Ngày phê duyệt: Trƣởng Bộ môn / / . C.Hình thức thi: thi trắc nghiệm hoặc tự luận . Điểm đánh giá học phần: Z = 0.

không gian đĩa bị lãng phí. Hình 1. dữ liệu được lưu trữ theo kiểu điện tử trên các hệ thống máy tính thành nhiều tập tin riêng biệt. PASCAL và ngay cả BASIC để tạo ra các giải pháp cho các vấn đề của doanh nghiệp. Nói cách khác đó là một hệ thống các thông tin có cấu trúc được lưu trữ trên các thiết bị lưu trữ thông tin thứ cấp. vấn đề về quản trị như không chú trọng bảo mật và tổ chức dữ liệu thiếu thống nhất. FORTRAN. . chẳng hạn như hệ tính lương. bộ nhớ flash. Giới thiệu 1.7 Chương 1.1. Các ứng dụng như vậy đặt ra ba vấn đề sau: . Hệ thống tệp tin kiểu cũ Trước khi các hệ quản trị cơ sở dữ liệu ra đời.Có sự ràng buộc chặt chẽ giữa cấu trúc luận lý và cấu trúc vật lý của các tập tin và chương trình ứng dụng khai thác chúng.2. thời gian bảo trì và lưu phòng hờ các tập tin gia tăng. để giúp cho việc khai thác dữ liệu được nhanh chóng và chính xác.… nhằm mục đích thỏa mãn yêu cầu tổ chức dữ liệu. băng từ. Hệ thống tệp tin và hệ quản trị dữ liệu 1. Điều này khiến việc tạo nên các ứng dụng này rất khó khăn.1: Sơ đồ tổng quát về một hệ cơ sở dữ liệu 1.1. Mỗi ứng dụng. ví dụ như: đĩa từ. Tổng quan về cơ sở dữ liệu Cơ sở dữ liệu là một tập hợp có tổ chức các dữ liệu có liên quan luận lý với nhau. tốn nhiều thời gian và do vậy mà tốn kém trong bảo trì hệ thống.2. sử dụng các hệ quản lý tập tin (từ đây về sau ta gọi hệ tập tin theo lối cũ). Những tập tin này được xử lý bằng các ngôn ngữ lập trình thế hệ thứ ba như COBOL. Một ví dụ điển hình về sự trùng lắp dữ liệu là: Hệ thống quản lý nhân sự bao gồm ba hệ thống con: . hệ kho hay hệ thống kế toán sẽ có một tập các tập tin riêng chứa dữ liệu riêng. Điều này tạo ra những vấn đề như: dữ liệu thiếu nhất quán. Cơ sở dữ liệu phải được thiết kế sao cho có thể cho phép nhiều người dùng và nhiều ứng dụng khác nhau cùng khai thác.Có sự dư thừa dữ liệu rất lớn qua việc trùng lắp các tập tin trong các ứng dụng khác nhau.

8    Hệ thống chấm công và quản lý lương: hệ thống này duy trì thông tin về ngày công và quản lý việc tính lương cho tất cả nhân viên. dữ liệu về tổ chức. các ràng buộc cho các dữ liệu sẽ được lưu trữ. duy trì và khai thác một cơ sở dữ liệu. loại nghỉ hưu. Hình 1. Thao tác trên một cơ sở dữ liêu là quá trình truy vấn cơ sở dữ liệu để lấy ra các dữ liệu cụ thể. tạo ra các báo cáo từ dữ liệu. . Định nghĩa một cơ sở dữ liệu là đặc tả các kiểu dữ liệu. Hệ thống quản lý hồ sơ nhân sự: hệ thống này duy trì lý lịch cá nhân. Hệ thống quản lý thông tin hưu trí: hệ thống này quản trị các qui tắc liên quan đến nghỉ hưu. 1. cập nhật cơ sở dữ liệu.Người sử dụng có ít khả năng khai thác trực tiếp dữ liệu mà hoàn toàn phải thông qua phần mềm tác nghiệp. Chi tiết về chế độ hưu trí của từng nhân viên. Rõ ràng. cung cấp môi trường và công cụ giúp cho việc định nghĩa. Vấn đề phức tạp là Hệ thống chấm công và quản lý lương thông thường được quản lý bởi phòng Tài vụ. Xây dựng cơ sở dữ liệu là lưu trữ dữ liệu lên các phương tiện lưu trữ được hệ quản trị cơ sở dữ liệu kiểm soát.2. trong khi Hệ thống quản lý nhân sự và Hệ thống quản lý thông tin hưu trí được quản lý bởi phòng Tổ chức. Hệ quản trị cơ sở dữ liệu Hệ quản trị cơ sở dữ liệu là một tập hợp chương trình giúp cho người sử dụng có thể tạo ra. công việc đào tạo và vị trí thăng tiến.2: Mô hình hệ quản trị cơ sở dữ liệu .2. xây dựng và thao tác cơ sở dữ liệu cho các ứng dụng khác nhau một cách dễ dàng. có nhiều dữ liệu về nhân viên là chung cho cả ba hệ. Thường những hệ này được thực hiện và giữ riêng biệt do đó chúng tạo sự trùng lặp dữ liệu nhân viên mà chúng sử dụng. Đó là một hệ thống phần mềm phổ dụng. các cấu trúc.

Tại đây hệ quản trị CSDL sẽ tham khảo các từ điển dữ liệu (Meta DataBase) để tìm kiếm các ánh xạ cấu trúc ngoài với cấu trúc quan niệm và cấu trúc vật lý (các ngõ a. Các chương trình ứng dụng được viết bằng các ngôn ngữ lập trình C++/C#/Java/Delphi… kết hợp với các ngôn ngữ thao tác dữ liệu (DML . Ngôn ngữ T – SQL trên SQL Server bao gồm nhiều câu lệnh khác nhau. Những người thiết kế và quản trị cơ sở dữ liệu thực hiện các công việc khai báo cấu trúc cơ sở dữ liệu. view. thay đổi giá trị của dữ liệu.4): Các yêu cầu của chương trình ứng dụng được chuyển tới hệ quản trị CSDL (theo con đường số 1). Đây là một phiên bản của ngôn ngữ SQL. Đối với hệ quản trị cơ sở dữ liệu SQL Server của Microsoft thì ngôn ngữ dùng để tương tác với cơ sở dữ liệu là T – SQL. Các chương trình khai báo cấu trúc CSDL được viết bằng ngôn ngữ DDL mà hệ quản trị CSDL cho phép. Tại đây hệ quản . RDO. khai báo cấu trúc của của cơ sở dữ liêu. thay đổi cấu trúc và xóa các đối tượng CSDL: database. ADO.3: Tƣơng tác với hệ quản trị cơ sở dữ liệu Nhìn chung các hệ quản trị cơ sở dữ liệu có nguyên lý hoạt động như sau (xem hình 1. có thể chia thành 2 nhóm: Nhóm ngôn ngữ định nghĩa dữ liệu DDL: với các lệnh cho phép tạo.9 Mỗi hệ quản trị cơ sở dữ liệu có một ngôn ngữ định nghĩa dữ liệu riêng (DDL . Hình 1. Đây là ngôn ngữ dùng để định nghĩa.Data Definition Languague). table.… Các hệ quản trị cơ sở dữ liệu quan hệ ngày nay phổ biến sử dụng các ngôn ngữ DDL và DML dựa trên ngôn ngữ SQL.… Nhóm ngôn ngữ thao tác dữ liệu DML: với các lệnh (như SELECT / INSERT / UPDATE / DELETE) cho phép lấy về dữ liệu cụ thể.Data Manipulation Language) thông qua các thư viện hoặc đối tượng kết nối CSDL được ngôn ngữ lập trình hỗ trợ: ODBC. b và c).

3.10 trị CSDL có thể sẽ tham khảo tới vùng đệm của nó để xác định xem câu trả lời đã có sẵn ở đó chưa. Tới đây hệ điều hành sẽ gửi yêu cầu truy xuất thông tin trong CSDL thông qua hệ thống xuất nhập của HĐH (các con đường số 3 và 5). Các liên kết là một dạng đặc biệt của thực thể. Từ những mô hình mạng. Một mô hình CSDL phải có khả năng biểu diễn thực thể và liên kết giữa các thực thể. Nếu việc truy xuất không thành công nó sẽ trả lại yêu cầu về cho hệ quản trị CSDL (có thể thông qua các mã lỗi) qua con đường số 6. Các cách tiếp cận CSDL là các cách nhìn và các cách biểu diễn liên kết của người sử dụng. hệ quản trị CSDL sẽ chuyển dữ liệu vào vùng đệm của chương trình ứng dụng đề nó xử lý (qua con đường 8a) và cho ra kết quả trả lời của chương trình ứng dụng qua con đường số 10.. Qua xử lý. cơ sở dữ liệu hướng đối tượng.là những mô hình dữ liệu hiện đại được áp dụng nhiều trên thị trường hiện nay. mô hình phân cấp và mô hình dữ liệu quan hệ là những mô hình cơ sở dữ liệu kinh điển. nếu có thì trả lại cho chương trình ứng dụng thông qua con đường số 8b. Các mô hình dữ liệu Sự cần thiết tổ chức lưu trữ dữ liệu theo một cách thức xác định và chặt chẽ đã dẫn đến sự phát triển các mô hình dữ liệu. Nghiên cứu mô hình cơ sở dữ liệu dựa trên các yêu cầu sau: .4: Hoạt động của hệ quản trị cơ sở dữ liệu 1. Đối tượng nghiên cứu các hệ CSDL là các thực thể và các mối liên kết giữa các thực thể.. ngược lại sẽ yêu cầu hệ điều hành truy xuất thông tin theo con đường số 2. truyền thống cho đến các mô hình cơ sở dữ liệu phân tán. nếu thành công thì dữ liệu sẽ được chuyển vào vùng đệm của hệ quản trị CSDL. Hình 1.

mà sử dụng để thiết kế lược đồ khái niệm. sao cho người sử dụng có cách nhìn trong suốt khi truy nhập vào các hệ cơ sở dữ liệu và có khả năng trao đổi với nhau về cơ sở dữ liệu. Hệ thống các ký hiệu biểu diễn dữ liệu. Một mô hình dữ liệu là một hệ thống hình thức toán học. Các mô hình thực thể quan hệ không có hệ thống ký hiệu để xây dựng các phép toán thao tác dữ liệu. nên có thể xem chúng là các mô hình hướng đối tượng. Nó được sử dụng ở đâu và vào lúc nào là tốt nhất.11  Mục tiêu độc lập dữ liệu: Phải xác định rõ ràng các khía cạnh logic và khía cạnh vật lý của việc quản trị cơ sở dữ liệu. Tuy nhiên các mô hình dữ liệu hướng đối . mô hình dữ liệu hướng đối tượng cung cấp đặc tính nhận dạng đối tượng. kỹ thuật xử lý theo lô (batch).  Tính dư thừa: Tất cả các mô hình dữ liệu đều có khả năng hỗ trợ lưu trữ dữ liệu vật lý và hạn chế sự dư thừa dữ liệu.  Mục tiêu trao đổi: Mô hình dữ liệu đơn giản về cấu trúc. Tính đơn giản có nghĩa là dễ hiểu và dễ thao tác. chặt chẽ. cài đặt trong một mô hình dữ liệu với một hệ quản trị cơ sở dữ liệu nào đó. Các mô hình mạng. Tính ổn định khi thiết kế mô hình dữ liệu. bao gồm việc thiết kế các hệ cơ sở dữ liệu. Trong các mô hình dữ liệu hướng giá trị có tính khai báo (declarativeness) và có tác động đến các ngôn ngữ được nó hỗ trợ. Mô hình thực thể quan hệ cũng được có đặc tính nhận dạng hướng đối tượng. bao gồm: - Đặc trưng của một mô hình dữ liệu bao gồm: - Tổ chức dữ liệu theo mô hình nào là tốt nhất. Thực tế chưa có mô hình dữ liệu nào là tốt nhất.  Mục tiêu xử lý tệp: Người sử dụng có thể sử dụng ngôn ngữ bậc cao để biểu diễn các phép toán trên trên các mảng thông tin.  Hướng giá trị hay hướng đối tượng: Các mô hình dữ liệu quan hệ và mô hình logic là các mô hình dữ liệu hướng giá trị. các thao tác và tìm kiếm dữ liệu bằng các công cụ ngôn ngữ con dữ liệu. Tốt nhất phụ thuộc vào yêu cầu truy xuất và khai thác thông tin của đơn vị quản lý nó.  Mô hình được xây dựng trên cơ sở lý thuyết vững chắc. Tính đối xứng phải được bảo toàn và Có cơ sở lý thuyết vững chắc. Tính dư thừa cần phải kiểm tra kỹ lưỡng . Tuy nhiên. phân cấp. mà không phải xử lý tuần tự theo từng bản ghi. Tập hợp các phép toán thao tác trên cơ sở dữ liệu. thường người ta dựa vào các tiêu chí sau để nói rằng mô hình dữ liệu tốt nhất khi:  Mục đích: Phần lớn các mô hình dữ liệu sử dụng hệ thống ký hiệu để biểu diễn dữ liệu và làm nền tảng cho các hệ ứng dụng và ngôn ngữ thao tác dữ liệu.

Một bản ghi gốc có thể có một số bất kỳ các bản ghi phụ thuộc và các bản ghi phụ thuộc có thể có một số các bản ghi phụ thuộc mức thấp hơn. Dữ liệu được biểu diễn bằng 4 cấu trúc cây đơn giản.1. Các bản ghi phụ thuộc là kiểu các bản ghi các tuyến cáp có lắp đặt các loại cáp đó. Một CSDL phân cấp là tập các cây (rừng cây).. tên nước sản xuất.1 Cấu trúc biểu diễn dữ liệu phân cấp Trong mô hình CSDL phân cấp.2. một – nhiều hay quan hệ môt – một. mềm dẻo và là mô hình thông dụng nhất hiện nay.3. Mô hình cơ sở dữ liệu quan hệ (Relational model) Mô hình này dựa trên lý thuyết tập hợp và đại số quan hệ. Như vậy các bản ghi gốc là các kiểu bản ghi về các loại cáp đã được lắp đặt và các bản ghi phụ thuộc là các bản ghi về thông tin các tuyến cáp. nghĩa là không thể tồn tại các loại cáp mà chưa được lắp đặt trên một tuyến nào cả. Mô hình này bao gồm: Một hệ thống các ký hiệu để mô tả dữ liệu dưới dạng dòng và cột như: quan hệ. Mô hình phân cấp (Hierarchical model) 1. Theo định nghĩa. bằng cách tạo ra sử dụng con trỏ trỏ đến nhiều vị trí khác nhau. Một quan hệ có nhiều phần tử của các quan hệ khác và ngược lại. bao gồm các thông tin về số hiệu tuyến cáp. số lượng. khóa chính.1 biểu diễn một mô hình CSDL phân cấp về tuyến cáp và các loại cáp. Một tập hợp các phép toán thao tác trên dữ liệu như phép toán tập hợp. Vì tính chất chặt chẽ của toán học về lí thuyết tập hợp nên mô hình này đã mô tả dữ liệu một cách rõ ràng. phép toán quan hệ. Như vậy có thể có thể tồn tại các loại cây vừa có xuất hiện của bản ghi gốc và các bản ghi phụ thuộc. độ dài và ngày hoàn thành việc xây dựng tuyến cáp đó.12 tượng giải quyết sự dư thừa tốt hơn. dữ liệu được biểu diễn bằng cấu trúc cây. dưới nó không tồn tại .3. bộ. Mô hình cơ sở dữ liệu quan hệ (gọi tắt là Mô hình Quan hệ) do E. Các bản ghi phụ thuộc có thể là tuỳ ý hoặc không tồn tại.  Giải quyết mối quan hệ nhiều – nhiều: Phần lớn trong các mô hình cơ sở dữ liệu có chứa các mối quan hệ nhiều – nhiều.. thuộc tính. Hình 2. không thể có các bản ghi phụ thuộc mà không tồn tại bản ghi gốc. Ràng buộc toàn vẹn quan hệ.. 1. Hầu hết các hệ quản trị cơ sở dữ liệu thông dụng hiện nay đều tổ chức dữ liệu theo mô hình dữ liệu quan hệ. .3. tên cáp. 1. và dưới nó là tập các xuất hiện của các bản ghi phụ thuộc. tên gọi tuyến cáp. trong đó gốc là xuất hiện kiểu bản ghi loại cáp bao gồm các thông tin mã cáp. Tuy nhiên trong mô hình dữ liệu mạng không chấp nhận mối quan hệ nhiều – nhiều. Trong mỗi một cây chỉ chứa một và chỉ một xuất hiện của bản ghi gốc.2. nghĩa là mỗi một loại cáp có thể được lắp đặt trên nhiều tuyến cáp khác nhau và trên một tuyến cáp có thể có nhiều loại cáp khác nhau được lắp đặt. mã nước sản xuất.F Codd đề xuất năm 1971. gọi là bản ghi đỉnh. khoá ngoại.. Có loại cây chỉ tồn tại bản ghi gốc thoái hoá.

13 bản ghi phụ thuộc. Ngôn ngữ thao tác trên CSDL phân cấp Biểu diễn phụ thuộc trong mô hình phân cấp: Các đường nối từ bản ghi gốc trỏ xuống các bản ghi phụ thuộc. có một và chỉ một xuất hiện bản ghi gốc. Nếu muốn lưu trữ thông tin về một tuyến cáp mới vào CSDL. vì không thể thêm thông tin về các xuất hiện kiểu bản ghi phụ thuộc (thông tin về các tuyến cáp) vào CSDL phân cấp khi chưa có thông tin về các loại cáp.3. Điều gì sẽ xẩy ra khi trên trên một tuyến nào đó có duy nhất một loại cáp bị huỷ bỏ. Chèn thêm: Trong cấu trúc hình cây. 1. tức là bắt buộc phải có xuất hiện bản ghi về các loại cáp. Như vậy có thể xẩy ra hiện tượng mất thông tin về các tuyến cáp hoặc thông tin về các loại cáp khi thực hiện các thao tác loại bỏ. thì điều này không thể thực hiện được. hay từ bản ghi cha trỏ xuống bản ghi con biểu diễn mối quan hệ giữa các bản ghi trong mô hình phân cấp. Theo định nghĩa.1.2. - Loại bỏ: Trong một số cấu trúc cây dữ liệu. nghĩa là có ít nhất một loại cáp chưa được đưa vào lắp đặt sử dung. Ví dụ khi loại bỏ loại cáp M04 trên tuyến T03. không tồn tại loại cây chỉ có các bản ghi phụ thuộc mà không có bản gốc. tức là trên mọi tuyến cáp phải có ít nhất một loại cáp.5: Cơ sở dữ liệu về các tuyến cáp viễn thông . thông tin về một vấn đề nào đấy được chứa trong một xuất hiện kiểu bản ghi phụ thuộc duy nhất thì khi loại bỏ sẽ làm mất thông tin về vấn đề trên. Hình 1. Ví dụ trong bản ghi Phiếu xuất kho có thể xác định được mã và đơn giá của các loại cáp. sẽ kéo theo thông tin về tuyến cáp T03 bị mất và thông tin về cáp mang mã hiệu M04 cũng bị mất luôn.

Tính độc lập của dữ liệu dễ bị vi phạm. Như vậy khả năng dò tìm không hết có thể xẩy ra. Tập dữ liệu được tổ chức theo cấu trúc của mô hình dữ liệu mạng gọi là CSDL mạng. Khi thao tác trên CSDL phân cấp bằng ngôn ngữ thao tác dữ liệu. khả năng duyệt sót vẫn có thể xẩy ra. Một con có thể có nhiều cha do đó có thể có nhiều đường truy nhập đến một dữ liệu cho trước. Q2: Tìm số hiệu các loại cáp có lắp đặt cáp MC#="M02". bằng cách phải dò tìm trong từng xuất hiện. các cung là quan hệ giữa hai đỉnh. Các câu truy vấn. trong đó các đỉnh là các thực thể. có nhiều khả năng xẩy ra thừa hoặc thiếu thông tin.3. hiệu chỉnh các chương trình. Các truy vấn thường đối xứng nhau nhưng kết quả của các phép tìm kiếm không đối xứng . không nhất quán thông tin sẽ xẩy ra. nhất là đối với lập trình viên phải mất nhiều thời gian công sức để lập trình và bảo trì.6: Một ví dụ về cơ sở dữ liệu mạng . Hình 1. Các phép tìm kiếm: Các xuất hiện của các bản ghi phụ thuộc chỉ tồn tại khi và chỉ khi tồn tại xuất hiện kiểu bản ghi gốc.14 Sửa đổi: Nếu cần phải sửa đổi một số thông tin trong các xuất hiện kiểu bản ghi phụ thuộc thì phải duyệt toàn bộ mô hình dữ liệu. Ví dụ cần thay đổi tên gọi của các tuyến cáp hoặc tên gọi các loại cáp. Tóm lại thông tin tổ chức lưu trữ theo mô hình phân cấp được biểu diễn dữ liệu trong một tệp duy nhất theo cấu trúc cây. tồn tại một và chỉ duy nhất một xuất hiện kiểu bản ghi gốc và cùng với nó có một tập các xuất hiện kiểu bản ghi phụ thuộc. Mô hình mạng(Network model) Trong mô hình này dữ liệu được tổ chức thành một đồ thị có hướng. Ví dụ: Q1: Tìm số hiệu của các tuyến. nếu số các xuất hiện kiểu bản ghi loại này rất lớn. Nếu CSDL phân cấp càng lớn thì tính phức tạp càng cao. Gây nhiều phức tạp cho người sử dụng. Trong mỗi một cây. sẽ dẫn đến sự xuất hiện mâu thuẫn thông tin và không nhất quán dữ liệu trong lưu trữ. nghĩa là mâu thuẫn thông tin.Vì vậy trong cấu trúc lưu trữ của mô hình phân cấp rất hạn chế khi thực hiện việc tìm kiếm thông tin. mâu thuẫn thông tin dẫn đến sự không nhất quán dữ liệu trong lưu trữ. lắp đặt trên tuyến TC#=‟T02‟. tìm kiếm không có tính đối xứng.3. một kiểu bản ghi có thể liên kết với nhiều kiểu bản ghi khác. Tính ổn định không cao. Tính toàn vẹn của dữ liệu không được đảm bảo. 1.

nhiều. T1 → 18 → M02 có nghĩa là T1 có 18 cáp loại có mã số là M02. - Mạng chỉ chứa một kiểu thực thể: Tồn tại cơ sở dữ liệu chỉ chứa một thực thể. “T5” và “M07” không có mối liên kết. Như vậy sẽ biểu diễn mối liên kết n thực thể tương ứng.đơn vị thi công tuyến cáp. có nhiều loại cáp khác nhau với số lượng khác nhau. Mạng chứa hơn hai kiểu thực thể: Liên kết n kiểu thực thể biểu diễn bằng một kiểu bản ghi liên kết n kiểu bản ghi đó với nhau.. Ví dụ tuyến cáp “T1” và loại cáp mã “M01” có mối liên kết với số lượng là 10.15 Mô hình dữ liệu mạng là mô hình thực thể quan hệ. Ngoài các kiểu bản ghi biểu diễn dữ liệu còn có kiểu bản ghi các phần tử kết nối.một và nhiều – một.. Mạng chứa hai kiểu thực thể: Trong mỗi một tuyến cáp. . trong đó một linh kiện tự nó có thể là một phụ tùng và tự nó có thể chứa các phụ tùng khác.. biểu diễn sự kết hợp giữa các biểu diễn dữ liệu. Như vậy cơ sở dữ liệu mạng có hai thực thể. Và mỗi một phụ tùng lại có thể là tổ hợp của một số chi tiết thành phần. Mỗi xuất hiện của bản ghi liên kết sẽ là thành viên của đúng một xuất hiện của một trong số n kiểu bản ghi. dữ liệu được biểu diễn trong các bản ghi liên kết với nhau bằng các mối nối liên kết (link) tạo thành một đồ thị có hướng. điều này có nghĩa là loại cáp “M07” chưa có mặt trong một tuyến nào cả và tuyến “T5” chưa có một loại cáp nào được lắp đặt. Thiết lập mối liên kết giữa một tuyến cáp và một loại cáp sao cho mỗi xuất hiện tương ứng của số lượng đều có mặt trong xuất hiện các tuyến cáp và loại cáp. Mỗi một xuất hiện kiểu bản ghi số lượng biểu diễn mối liên kết giữa các bản ghi tuyến cáp với các bản ghi loại cáp. Như vậy mạng cơ sởp dữ liệu chỉ chứa duy nhất một kiểu bản ghi phụ tùng. trong đó các mối liên kết bị hạn chế trong kiểu một . Có thể một đơn vị thi công nhiều tuyến cáp và trong một tuyến cáp có nhiều đơn vị thi công. hai kiểu bản ghi nhưng thực chất chỉ là một. Sơ đồ T1 → 10 → M01 chỉ ra rằng tuyến T1 có 10 cáp M01. Các phần tử này kết nối tuyến cáp và các loại cáp là thông tin về tình hình lắp đặt. Kiểu bản ghi số lượng có chức năng liên kết hai kiểu bản ghi tuyến cáp và các loại cáp. CSDL mạng có cấu trúc tổng quát hơn so với cấu trúc CSDL phân cấp. Hình 2. Mỗi một xuất hiện của một bản ghi có thể có rất nhiều các xuất hiện kiểu bản ghi trên nó và các xuất hiện kiểu bản ghi dưới nó.. Ví dụ cơ sở dữ liệu chứa thông tin về phụ tùng và linh kiện. Ngoài các xuất hiện kiểu bản ghi tuyến cáp và các xuất hiện kiểu các bản ghi các loại cáp còn có các xuất hiện kiểu các bản ghi về các phần tử kết nối đó là các phần tử số lượng.2 biểu diễn một mô hình CSDL mạng về các tuyến cáp và các loại cáp được lắp đặt. Mỗi một loại cáp có thể có mặt trong nhiều tuyến cáp khác nhau. lại vừa có thể là thành phần của các tổ hợp khác. Thêm kiểu thực thể ngày nhập kho (NHAP) của của các loại cáp trước khi đưa vào sử dụng hoặc đưa thêm thông tin về hãng sản xuất. Trong mô hình CSDL mạng. Ví dụ thêm một kiểu thực thể mới . Cho phép mô hình hoá tương ứng nhiều .

có thể con trỏ (mối nối) tự trỏ vào nó. giữa 8 và M04 mà không làm mất thông tin.  Loại bỏ: Có thể loại bỏ các xuất hiện kiểu bản ghi dữ liệu và xuất hiện kiểu bản ghi kết nối trong mô hình CSDL mạng mà không ảnh hưởng tới tính nhất quán và tính toàn vẹn dữ liệu. Ví dụ cần xóa bỏ 8 cáp M04 trong T1 bằng cách xoá bỏ các con trỏ giữa T1 và 8. Tìm kiếm: Các câu hỏi đối xứng và kết quả của phép tìm kiếm cũng đối xứng với nhau như trong mô hình cơ sở dữ liệu quan hệ. Có thể xoá một loại cáp nào đó khi không còn sử dụng.   Sửa đổi: Có thể sửa đổi nội dung dữ liệu mà không cần duyệt qua mô hình và cũng không làm xuất hiện mâu thuẫn dữ liệu. có chèn thêm các thông tin xuất hiện bản ghi về tuyến cáp hoặc xuất hiện kiểu bản ghi về các loại cáp mà chưa có trong CSDL và chưa có các bản ghi kết nối. không xuất hiện dị thường thông tin. Ví dụ. nhưng mô hình CSDL mạng vẫn đảm bảo được tính nhất quán của dữ liệu và tính toàn vẹn của dữ liệu. .7: Mô hình cơ sở dữ liệu mạng Ngôn ngữ dữ liệu thao tác trên CSDL mạng thường bao gồm các thao tác cơ bản sau đây:  Chèn thêm: Khi thêm các các kiểu bản ghi mới. nghĩa là chưa có thông tin về các loại cáp được lắp đặt.16 Hình 1.

Khi thực hiện các phép lưu trữ như chèn thêm. tức là mức mô hình dữ liệu. vì vậy các câu hỏi và kết quả các câu hỏi tìm kiếm thường đối xứng với nhau. loại bỏ hay sửa đổi dữ liệu trong mô hình CSDL mạng vẫn bảo đảm được sự nhất quán của dữ liệu và tính toàn vẹn của dữ liệu. Oracle. Các mức độ trừu tượng trong cơ sở dữ liệu Các mức độ trừu tượng trong CSDL bao gồm: Mức trong. Là nội dung thông tin của một phần dữ liệu tác nghiệp đựơc một người hoặc một nhóm người sử . Ngƣời sử dụng: Là những người tại thiết bị đầu cuối truy nhập vào các hệ CSDL theo chế độ trực tuyến hay tương tác bằng các chương trình ứng dụng hay bằng các ngôn ngữ con dữ liệu. phụ thuộc vào quyền truy nhập của họ.3. Nghĩa là cấu trúc các kiểu cơ bản như nhau.17 Mô hình CSDL mạng là mô hình đối xứng. Các kiểu cơ bản là chuỗi ký tự. Người sử dụng có thể truy nhập toàn bộ hay một phần CSDL mà họ quan tâm. Trung tâm của hệ thống là mức quan niệm. 1. 1. Họ nhìn CSDL bằng mô hình ngoài. nhất là xây dựng các phép toán thao tác trên nó. Khi thao tác các phép cập nhật không xuất hiện các dị thường thông tin.4. Cách nhìn CSDLcủa người sử dụng nói chung là trìu tượng. không thể nhìn thấy các xuất hiện kiểu bản ghi lưu trữ về các chỉ tiêu kỹ thuật cuả đường thông. Chẳng hạn người sử dụng là một nhân viên của phòng kế toán tài chính. sản lượng trong tháng. Các xuất hiện kiểu bản ghi được kết nối với nhau bằng các xuất hiện kiểu bản ghi liên kết. POP áp dụng cho stack.. Mô hình dữ liệu hƣớng đối tƣợng (Object Oriented model) Cơ sở dữ liệu hướng đối tượng và hệ quản trị cơ sở dữ liệu hướng đối tượng (Object Oriented Database management Systems – OO DBMS) mô tả các kiểu dữ liệu được xây dụng bằng phương pháp tạo bản ghi và tạo tập hợp. Thường là các chuyên viên kỹ thuật tin học. Giữa các mức tồn tại các ánh xạ quan niệm trong và ánh xạ quan niệm ngoài. Cách tiếp cận CSDL mạng là phương pháp biểu diễn dữ liệu trong các tệp theo cấu trúc dữ liệu chặt chẽ. hệ quản trị CSDL và người quản trị CSDL.. Che dấu dữ liệu (Encapsulation): Khi có yêu cầu truy xuất đến các đối tượng thuộc kiểu đặc biệt. mức mô hình dữ liệu (Mức quan niệm) và mức ngoài. chỉ nhìn thấy tập các xuất hiện kiểu bản ghi ngoài về doanh thu. mạng lưới. Chẳng hạn định nghĩa stack như là một kiểu và định nghĩa các thao tác PUSH. Tuy nhiên cấu trúc dữ liệu rất trong mô hình CSDL mạng quá phức tạp vì quá nhiều liên kết giữa các xuất hiện dữ liệu với nhau bằng các xuất hiện kết nối. Mô hình ngoài: Mô hình ngoài là nội dung thông tin của CSDL dưới cách nhìn của người sử dụng. ). phải qua các thủ tục đã được định nghĩa cho các đối tượng đó. số.. Ngoài ra còn có khái niệm người sử dụng. Các quan hệ được xây dựng từ các bộ bằng thao tác tạo một tập hợp các bản ghi có khuôn dạng thống nhất.. Vì vậy việc thiết kế và cài đặt cơ sở dữ liệu mạng thường rất khó khăn.. gọi là mô hình con dữ liệu. Đặc tính nhận dạng đối tƣợng (Object Indentity): Là khả năng phân biệt các đối tượng . có trình độ thành thạo biết lập trình và biết sử dụng ngôn ngữ con thao tác dữ liệu (SQL Server.4.

Mô hình dữ liệu (mô hình quan niệm): Mô hình quan niệm là cách nhìn dữ liệu một cách tổng quát của người sử dụng. các loại cáp.  Sơ đồ quan niệm luôn luôn ổn định.  Mô hình dữ liệu gồm nhiều xuất hiện của nhiều kiểu bản ghi dữ liệu. Bản ghi ngoài của người sử dụng có thể khác với bản ghi lưu trữ và bản ghi quan niệm.  Thiết kế mô hình dữ liệu là giai đoạn quan trọng và quyết định trong việc thiết kế và cài đặt các hệ cơ sở dữ liệu. đòi hỏi điều chỉnh lại định nghĩa sao cho nó phản ảnh thế giới hiện thực khách quan hơn. truy vấn dữ liệu. Sơ đồ dữ liệu chỉ được thay đổi khi có sự điều chỉnh trong thế giới thực.. Biểu diễn toàn bộ thông tin trong CSDL là duy nhất. Sơ đồ ngoài không làm “hiện “ mà được nhúng vào trong logic một đơn tác có liên quan. thầy giáo. độ rộng của trường. kiểu xuất hiện bản ghi về cước đàm thoại. Sơ đồ dữ liệu bao gồm các định nghĩa về các kiểu bản ghi. Như vậy việc thiết kế sơ đồ dữ liệu . mô hình ngoài mô tả cách nhìn dữ liệu của người sử dụng và mỗi người sử dụng có cách nhìn dữ liệu khác nhau. Nghĩa là có rất nhiều cách nhìn dữ liệu ở mô hình ngoài.18 dụng quan tâm. một khung nhìn dữ liệu riêng.. Ngôn ngữ con dữ liệu của người sử dụng thao tác trên các bản ghi ngoài.. Quá trình thiết kế không phụ thuộc quá nhiều vào cấu trúc lưu trữ vật lý và chiến lược truy nhập của dữ liệu. nghĩa là mỗi một người sử dụng có một sơ đồ dữ liệu riêng. Nếu sơ đồ dữ liệu không ổn định thì các ứng dụng và mô hình ngoài cũng không ổn định. chẳng hạn như mô tả thực thể tuyến cáp. Nói cách khác. Người sử dụng khác nhau có khung nhìn dữ liệu khác nhau. Nhiều mô hình ngoài khác nhau có thể cùng tồn tại trong một hệ CSD. có thể mô hình ngoài quan hệ. mô hình ngoài phân cấp hay mô hình ngoài kiểu mạng cũng có thể tồn tại trong một cơ sở dữ liệu.. nhưng chỉ có duy nhất một cách nhìn dữ liệu ở mức quan niệm. sản lượng. kiểu dữ liệu các trường. học sinh.  Mô hình dữ liệu được xác định bởi một sơ đồ dữ liệu mô tả của nhiều kiểu thực thể.. Hơn nữa. Những ràng buộc này chính là các tính chất của dữ liệu. kiểu xuất hiện bản ghi về doanh thu. đó là các ràng buộc cho quyền và tính toàn vẹn thích hợp. Các định nghĩa này không bao hàm về cấu trúc lưu trữ.     Mô hình ngoài được xác định bởi một sơ đồ ngoài bao gồm các mô tả về kiểu bản ghi ngoài như tên các trường. không được làm thay đổi sơ đồ dữ liệu cũ.  Mô hình ngoài gồm nhiều xuất hiện kiểu bản ghi ngoài. chân lý hơn. chúng chỉ là các định nghĩa về nội dung thông tin. Người sử dụng đầu cuối có thể là các ứng dụng hay thao tác trực tiếp bằng ngôn ngữ thao tác. tính liên kết các thuộc tính cùng một kiểu dữ liệu. nghĩa là có nhiều người sử dụng chia sẻ chung cùng một cơ sở dữ liệu.. Ví dụ kiểu xuất hiện bản ghi về nhân sự. về tính độc lập của dữ liệu trong mô hình quan niệm. nghĩa là nếu mô tả thêm một kiểu thực thể đặc biệt sát nhập vào sơ đồ dữ liệu.. cũng như về chiến lược truy nhập.

Vi phạm tính toàn vẹn của dữ liệu. người thiết kế chỉ cung cấp một số sơ đồ trong và một tập các sơ đồ ngoài và họ coi đó là sơ đồ dữ liệu. Sơ đồ trong bao gồm các định nghĩa mô hình trong.. Mục tiêu của các hệ cơ sở dữ liệu? Ví dụ minh hoạ. vì nếu không việc thiết kế sẽ không ổn định và thường xuyên phải xem xét lại tác động thường xuyên đến nhiều thành phần khác của hệ thống. Mô hình trong là cách biểu diễn cơ sở dữ liệu trìu tượng ở mức thấp nhất. Mâu thuẫn và dị thường thông tin sẽ xẩy ra. Vì vậy tính không ổn định hệ thống. Trình bày tổng quát kiến trúc mô hình hệ cơ sở dữ liệu 3 lớp. Thông tin biểu diễn trong mô hình trong là duy nhất. Chỉ có duy nhất một và chỉ một cách biểu diễn CSDL dưới dạng lưu trữ vật lý.  Với cách thiết kế truyền thống hiện nay. Bài tập 1. Cơ sở dữ liệu là gì. Nếu cấu trúc lưu trữ của CSDL thay đổi.  Ánh xạ quan niệm-ngoài: Là ánh xạ được xác định tương ứng môt-một giữa mô hình ngoài của người sử dụng với mô hình dữ liệu. Sự cần thiết tổ chức lưu trữ dữ liệu theo lý thuyết cơ sở dữ liệu.Nó xác định dữ liệu lưu trữ và truy nhập như thế nào thông qua các đường dẫn truy nhập tới dữ liêụ  Ánh xạ quan niệm trong được xác định giữa mô hình trong và mô hình dữ liệu nhằm bảo đảm tính độc lập của dữ liệu. 2. quy định cách thức sử dụng thông tin. sơ đồ quan niệm là định nghĩa của cách nhìn ấy.   Mô hình trong gồm nhiều xuất hiện của nhiều kiểu bản ghi lưu trữ được xác định bởi một sơ đồ trong.. Là bước đi đầu tiên . các thủ tục kiểm tra tính đúng đắn của dữ liệu nhằm bảo đảm tính toàn vẹn của CSDL. tính không phù hợp với các ứng dụng nảy sinh sau một thời gian hoạt động. 4. 3. Các luồng lưu chuyển thông tin.19 phải được tiến hành độc lập với việc thiết kế sơ đồ trong và các sơ đồ ngoài liên kết. nghĩa là thay đổi định nghĩa về cấu trúc lưu trữ dữ liệu thì ánh xạ này phải cũng phải thay đổi tương ứng sao cho sơ đồ quan niệm (mô hình dữ liệu) không thay đổi. Như vậy mô hình dữ liệu là cách nhìn toàn bộ nội dung thông tin của CSDL. hiểu thế nào là một hệ cơ sở dữ liệu tác nghiệp. cách sắp xếp các bản ghi theo thứ tự nào. Không chỉ xác định các kiểu khác nhau của bản ghi lưu trữ mà còn xác định rõ sự tồn tại của các chỉ dẫn.  Ngoài các định nghĩa về xuất hiện nhiều kiểu bản ghi quan niệm. .. sơ đồ dữ liệu còn chứa các định nghĩa về quyền truy nhập của người sử dụng. Mô hình trong: Mô hình trong là mô hình lưu trữ vật lý dữ liệu. là mô hình dữ liệu. quan trọng trong việc thiết kế và cài đặt các hệ cơ sở dữ liệu.

20 5. Tại sao nói. Ví dụ minh hoạ. mô hình dữ liệu là cách nhìn toàn bộ nội dung thông tin của CSDL. Khái niệm File có gì khác với khái niệm cơ sở dữ liệu. Hiểu như thế nào về tính độc lập của dữ liệu. 7. . sơ đồ quan niệm là định nghĩa của cách nhìn ấy. 6. Chức năng & vai trò của hệ quản trị CSDL & người quản trị CSDL. ví dụ minh họa? 8.

Mô hình Thực thể-Liên kết 2.3. Thực thể và thuộc tính Có ba ký hiệu cơ sở mà mô hình ER sử dụng: Tập các thực thể. miền giá trị của một thuộc tính là tập các số nguyên. Khía cạnh ngữ nghĩa của mô hình ở chỗ cố gắng biểu diễn các ngữ nghĩa của dữ liệu trong thế giới thực. Mô hình ER cực kỳ có ích trong việc ánh xạ các ngữ nghĩa và các tương tác của các đối tượng trong thế giới thực về các lược đồ khái niệm. Thông thường. Lương Tên Điện thoại Nhân viên Thuộc Phòng ban Vị trí Tên Quản lý Tên Người quản lý 2. cấu trúc của cơ sở dữ liệu hay còn được gọi là sơ đồ cơ sở dữ liệu được đặc tả bởi một ngôn ngữ đặc biệt hay một tập các ký hiệu thích hợp để biểu thị một thiết kế cơ sở dữ liệu. 2. Mô hình dữ liệu ER là một trong các mô hình dữ liệu ngữ nghĩa. Các tập thực thể có các đặc tính. Thông thường. số thực hay các xâu kí tự. các liên kết và thuộc tính. được gọi là các thuộc tính.21 Chương 2. Tổng quan về thiết kế cơ sở dữ liệu Quá trình thiết kế một cơ sở dữ liệu bắt đầu với một sự phân tích những thông tin nào của thế giới thực mà cơ sở dữ liệu phải lưu trữ và các mối quan hệ giữa các thành phần của những thông tin này. Một thực thể là một đối tượng cụ thể hay trừu tượng trong thế giới thực mà nó tồn tại và có thể phân biệt được với các đối tượng khác. Một nhóm bao gồm các thực thể giống nhau hình thành một tập thực thể. Ví dụ một quyển sách là một thực thể. Ví dụ tập thực thể khách hàng. . Mô hình Thực thể-Liên kết Mô hình thực thể liên kết dựa trên cơ sở sự nhận thức của thế giới thực bao gồm một tập các đối tượng cơ sở được gọi là các thực thể và một tập các liên kết giữa các đối tượng này. Mô hình dữ liệu là một sự hình thức hóa toán học đối 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. mà nó kết hợp với một thực thể trong tập thực thể một giá trị từ miền giá trị của thuộc tính.1.2.

1 có thể là liên kết . Liên kết này đặc tả rằng nhân viên A là một thành viên của phòng D. có thể được khai báo là liên kết một – một. các cạnh có thể là có hướng hay không hướng. một thực thể trong tập thực thể E2 được kết hợp với không hay nhiều thực thể trong tập thực thể E1. mỗi tập thực thể có một khóa do chúng ta giả định rằng mỗi thực thể là được phân biệt với các thực thể khác. Về nguyên tắc. Trong sơ đồ ER chúng ta sử dụng các kí hiệu sau để biểu diễn các thành phần của sơ đồ. Ví dụ. người ta thường cần phải phân loại các liên kết phù hợp với thực tế có bao nhiêu thực thể từ một tập thực thể có thể được kết hợp với bao nhiêu thực thể của một tập thực thể khác.22 Việc lựa chọn các thuộc tính thích đáng đối với các tập thực thể là một bước quan trọng trong việc thiết kế cơ sở dữ liệu. 2.4. Liên kết nhiều – một: Trong một liên kết nhiều – một. Các hình thoi biểu diễn các liên kết. Điều này có nghĩa là liên kết này là một hàm bộ phần từ E1 đến E2. Các hình chữ nhật biểu diễn các tập thực thể. Một tập liên kết là một tập các liên kết cùng kiểu. Nó thể hiện trong một phòng không thể có nhiều hơn 1 người quản lý. Quan hệ giữa các thực thể Một liên kết là sự kết hợp giữa một số thực thể. Chúng được nối đến các tập thực thể cấu thành bởi các cạnh. Chúng được nối đến các tập thực thể của chúng bởi các cạnh vô hướng. Một thuộc tính hay một tập con các thuộc tính mà giá trị của nó xác định duy nhất mỗi thực thể trong tập thực thể được gọi là một khóa đối với tập thực thể này.1. nhưng mỗi thực thể trong tập thực thể E1 chỉ được kết hợp nhiều nhất với một thực thể trong tập thực thể E2. Một cách hình thức. liên kết Quản lý giữa Phòng ban và Người quản lý trong hình 3. một tập thực thể đặc biệt có thể xuất hiện nhiều hơn một lần trong danh sách. Ví dụ. một liên kết giữa các tập thực thể là một danh sách có thứ tự các tập thực thể. Đôi khi. cũng không có một người quản lý hai hay nhiều phòng. Ví dụ. các thuộc tính thuộc khóa đối với tập thực thể của chúng sẽ được gạch chân. có nghĩa với mỗi thực thể trong tập thực thể này có nhiều nhất một thực thể trong tập thực thể kia kết hợp với nó và ngược lại. Các hình ô van biểu diễn các thuộc tính. Việc tóm tắt những thông tin cần lưu trữ trong một cơ sở dữ liệu đối với một thiết kế sử dụng các sơ đồ ER là rất có ích. Liên kết một – một: Dạng liên kết đơn giản nhất và hiếm gặp của liên kết trên hai tập thực thể là dạng một – một. có thể xác định một liên kết mà nó kết hợp một nhân viên A với một phòng D. Để mô hình hóa thế giới thực một cách thích hợp. liên kết giữa Nhân viên và Phòng ban như hình 3.

các khoa. Có nghĩa là mỗi nhân viên được sắp xếp vào nhiều nhất một phòng. Nếu R là một liên kết một – một giữa A và B.23 nhiều một từ Nhân viên đến Phòng ban.mẹ... Bài tập 1. Tuy nhiên khi thiết kế sơ đồ ER người ta thường tìm cách đưa các liên kết nhiều – nhiều về thành các liên kết nhiều một bằng cách thêm các thực thể mới. vợ chồng. Liên kết nhiều – nhiều: Chúng ta cũng hay bắt gặp các liên kết nhiều – nhiều.. một liên kết nhiều –một R từ A đến B. . và chuyển về các mô hình: a) Mô hình quan hệ.). chúng ta vẽ các mỗi tên từ R đến cả hai A và B. b) Mô hình phân cấp. con cái. ở đây không có sự hạn chế nào trên số các thực thể của một tập thực thể này liên kết với không hoặc nhiều thực thể của một tập thực thể khác và ngược lại. quản lý sinh viên quản lý đào tạo. chúng ta sử dụng các cung. c) Mô hình mạng. chúng ta đặt một cung từ hình hình chữ nhật biểu diễn A qua hình thoi biểu diễn R đến hình chữ nhật biểu diễn B. các danh hiệu thi đua. Trong trường hợp đơn giản nhất. Hãy sử dụng mô hình thực thể quan hệ để mô tả dữ liệu về Học viên (bao gồm về mô hình tổ chức. Trong các sơ đồ ER. các phòng ban. có nghĩa là các cạnh có một hướng được chỉ định bởi một mũi tên để xác định một liên kết. Các liên kết nhiều – nhiều thì được biểu diễn bằng các cạnh vô hướng.. 2. Hãy vẽ sơ đồ mô hình thực thể quan hệ về mối quan hệ trong gia đình: bố . học bổng.

và quy cách là „Sony 29”‟.2. khi thiết kế người ta đều hạn chế về giá trị dữ liệu mà thuộc tính đó có thể nhận. miền chuỗi ký tự. Chiếc. miền giá trị ngày tháng. Ví dụ như việc mô tả thuộc tính địa chỉ nhà của một người như: 484 Lạch Tray. Miền giá trị thường đơn giản và luôn nhận các giá trị đơn (không tách được). Ví dụ như đối với các dữ liệu số. Tuỳ vào đặc tính của từng cột thì các dữ liệu ghi vào các ô trên các cột đó sẽ có kiểu dữ liệu khác nhau ví dụ như cột Mã số thì dữ liệu có kiểu số. là một trong các mô hình được ứng dụng nhiều nhất hiện nay..1. Ngô Quyền... Tuy nhiên nhiều khi để dễ dàng cho việc thiết kế người ta thường bỏ qua việc làm này. sau khi xác định được một thuộc tính của quan hệ người ta cần tính ngay đến tên và miền giá trị của thuộc tính đó. Hải Phòng. Phạm vị giá trị có thể dùng cho một thuộc tính được gọi là miền giá trị. và miền địa chỉ được gọi là miền đa giá trị.. Trong các cơ sở dữ liệu theo mô hình dữ liệu quan hệ tất cả các dữ liệu được ghi trong các bảng được gọi là các quan hệ. thành phố. „Bộ‟ để chỉ hàng (bản ghi). tên phố. Các ràng buộc dữ liệu Đối với mỗi thuộc tính của quan hệ. trong khi cột Tên hàng thì dữ liệu có kiểu là một xâu ký tự. người ta mới có thể dùng các phép toán số học. Sony 29”) thể hiện mặt hàng Tivi có mã số là 1. 3. Khi đó nên tách thuộc tính này ra nhiều thuộc tính nhỏ hơn để đảm bảo giá trị thuộc tính là đơn giản. các cột của bảng được gọi là trường. Trong cách gọi thông thường thì các hàng của bảng còn được gọi là bản ghi.1.. . ví dụ như: miền số nguyên. Ngoài việc giới hạn phạm vi nhận giá trị của các thuộc tính. miền giá trị còn xác định các thao tác được phép sử dụng trên các dữ liệu. Các bảng đều có một tập hợp hàng và cột ví dụ như: Ví dụ 2. Tuy nhiên khi nghiên cứu lý thuyết quan hệ người ta hay dùng các thuật ngữ khác: „Thuộc tính‟ để chỉ cột (trường). đơn vị tính là „Chiếc‟. Nó được hầu hết các hệ quản trị cơ sở dữ liệu hiện đại dùng để cài đặt các cơ sở dữ liệu. Các khái niệm cơ bản Mô hình dữ liệu quan hệ. Đây là một giá trị kép nó gồm số nhà. Quan hệ Mặt hàng Mặt hàng Mã số 1 2 3 Tên hàng Tivi Đầu DVD Ram Đơn vị Chiếc Chiếc Thanh Quy cách Sony 29” Sony Kingston 512 Mỗi dòng trong bảng lưu giữ thông tin cơ bản về các đối tượng trong bài toán thực tế ví dụ như (1. Trong thiết kế các quan hệ.24 Chương 3: Mô hình dữ liệu quan hệ 3. quận. Tivi.

.b). c} là hai miền giá trị. Chuc_vu Can_bo t1 t2 t3 Ma_so 0001 0002 0003 Ho_ten Lê Thanh Hằng Hoàng Văn Cảnh Trần Bình Dương Ngay_sinh Que_quan Chuc_vu Trưởng phòng Nhân viên Nhân viên 12/04/1970 Quảng Ninh 15/10/1981 Nam Định 20/01/1979 Ninh Bình Ví dụ 2. Ho_ten. n có miền giá trị tương ứng ký hiệu là dom(Ai). 2.. (1. Ngay_sinh. (1. NULL là một giá trị đặc biệt với nghĩa “không giống với bất kỳ giá trị nào” thậm trí không giống với bất kỳ giá trị NULL khác.5.. (0.3: Cho D1 = {0. (1. Que_quan. Định nghĩa 2.. thì tại một ô nào đó người ta có thể bỏ qua việc nhập dữ liệu ví dụ như: Ví dụ 2.2: Giá trị rỗng (NULL) Mặt hàng Mã số 1 2 3 Tên hàng Tivi Đầu DVD RAM Kingston 512 Đơn vị Chiếc Chiếc Thanh Quy cách Sony 29” Sony Để có thể thể hiện được hiện tượng này người ta đưa ra một khái niệm là giá trị rỗng ký kiệu là NULL.. A2. x dom(An) Khi đó ký hiệu là r(R) hoặc r(A1.a). (0. A2. Và nó thuộc về mọi miền giá trị...2: Gọi R = {A1. b. “Quảng Ninh”.a).1: Quan hệ là một tập con của tập tích đề các của một hoặc nhiều miền giá trị. An) Ví dụ 2. Quan hệ Can_bo Trong đó t1 = (“0001”. Định nghĩa 2... An} là tập hữu hạn của các thuộc tính. mỗi thuộc tính Ai với i = 1.4: Bảng sau thể hiện quan hệ Can_bo bao gồm các thuộc tính Ma_So. Tập tích đề các D1xD2 = {(0. Giá trị rỗng: là giá trị có thể gán cho một thuộc tính khi không dùng giá trị khác được. “Trưởng phòng”) là một bộ của quan hệ Can_bo Khoá của quan hệ . Ví dụ 2. Quan hệ r trên tập thuộc tính R là tập con của tích đề các giữa các miền giá trị dom(Ai) r  dom(A1) x dom(A2) x .a). D2 Theo định nghĩa trên thì mỗi một quan hệ có thể là vô hạn phần tử.(0. D2 = {a.b).. “12/04/1970”..1}.b)} là một quan hệ xác định trên các miền D1. “Lê Thanh Hằng”.25 Có một lưu ý là khi ghi dữ liệu vào các bảng.c)} Khi đó tập R = {(0.c)... hay khi người ta chưa biết giá trị cần gán.. tuy nhiên người ta luôn giả thiết quan hệ là một tập hữu hạn.

miền đó có các giá trị: 0001. nhiều khả năng sẽ có các bộ dữ liệu trùng nhau khiến cho việc thể hiện và phân biệt các đối tượng trong thế giới thực bị nhầm lẫn. Khoá ngoại Trong cơ sở dữ liệu có thể có rất nhiều các quan hệ. Trong một số trường hợp người ta có thể kết hợp nhiều thuộc tính để tạo thành khoá như có thể kết hợp thuộc tính (Ho_ten. Một khoá là một tập con của tập các thuộc tính có trong quan hệ trừ tập rỗng. Để tránh việc này người ta đưa ra các khái niệm khóa.. Can_bo Ma_so 0001 0002 0003 Ho_ten Lê Thanh Hằng Hoàng Văn Cảnh Trần Bình Dương Ngay_sinh Que_quan Chuc_vu Trưởng phòng Nhân viên Nhân viên 12/04/1970 Quảng Ninh 15/10/1981 Nam Định 20/01/1979 Ninh Bình . t2 là 2 bộ bất kỳ thuộc r.3 thì Ma_so là khoá của quan hệ Can_bo. Khoá nhỏ nhất Khái niệm Khoá nhỏ nhất: Khoá nhỏ nhất của quan hệ r trên tập thuộc tính R = {A1.. Que_quan) hoặc (Ma_so.. Nếu gọi số thuộc tính của quan hệ là N. A2. người ta ký hiệu t1(K)  t2(K) thể hiện cho mệnh đề sau: Tồn tại ít nhất một thuộc tính A  r sao cho giá trị của bộ t1 và t2 khác nhau tại vị trí thuộc tính A. A2. AN} là tập con K  R sao cho: + K là khoá của r + K‟ là khóa của r thì |K‟|  |K|. r là một quan hệ xác định trên R t1. và đôi khi quan hệ này có những thuộc tính lấy dữ liệu từ một quan hệ khác.26 Trong các bảng quan hệ. Ví dụ 2.6: Quan hệ Khen_thuong ghi nhận những thông tin khen thưởng của các cán bộ trong đơn vị. Ngay_sinh. hay nói các khác là các thuộc tính này có miền giá trị là những giá trị được lưu tại một hoặc nhiều trường trong quan hệ khác hoặc chính nó.. 0003. t2  r luôn thoả t1(K)  t2(K) và không có tập con thực sự K‟ nào của K thỏa mãn điều đó. K  R.. Định nghĩa: Khoá của quan hệ r trên tập thuộc tính R = {A1.. Khoá Khái niệm: Khoá của một quan hệ là một hoặc một tập thuộc tính dùng để định tên duy nhất các bộ trong quan hệ... Giả sử: R = {A1. 0002.. AN} là tập con K  R sao cho bất kỳ hai bộ khác nhau t1. Xét lại ví dụ 2. AN}. thì số lượng các khoá tối đa của quan hệ có được sẽ là 2N-1.. Ho_ten) của quan hệ Can_bo thành một khoá.. Theo định nghĩa như trên thì trong một quan hệ có thể có rất nhiều khoá. A2.. trong đó thuộc Ma_so_can_bo có miền giá trị là những giá trị lưu trong quan hệ Can_bo tại trường Ma_so.

Chúng có ý nghĩa thể hiện dữ liệu bảng này liên kết với dữ liệu bảng khác.…. khen Ngay_khen Ly_do sắc trong lao động Bộ 25/05/2002 Chiến sĩ thi đua cấp Bộ Bằng khen công 15/10/2001 Đã đạt thành tích xuất 3. kiểu character.3. có một kiểu thiết kế điển hình các sơ đồ cơ sở dữ liệu quan hệ mà chúng ta có thể xác định được các sơ đồ quan hệ khi biến đổi sơ đồ thực thể liên kết sang mô hình quan hệ. Chuyển đổi sơ đồ Thực thể-Liên kết sang cơ sở dữ liệu quan hệ Tập các lược đồ quan hệ được sử dụng để biểu diễn thông tin đối với một tổ chức được gọi là một lược đồ cơ sở dữ liệu quan hệ hay đơn giản gọi tắt là lược đồ cơ sở dữ liệu quan hệ nếu không có sự hiểu nhầm. Tất nhiên. Bài tập 1. Biến đổi các tập thực thể Một tập thực thể E được biến đổi thành một quan hệ mà lược đồ quan hệ của nó bao gồm tập các thuộc tính của tập thực thể.….  Họ và tên khách hàng. . Ek được biến đổi thành một quan hệ mà lược đồ quan hệ của nó bao gồm các thuộc tính trong khóa của mỗi E1. 21 ký tự.  Địa chỉ khách hàng. thông tin gồm có: a. Thông qua phép đặt lại tên nếu cần thiết. 21 ký tự. Mỗi bộ của quan hệ biểu diễn một thực thể trong thể hiện hiện thời của E. Nếu E là một tập thực thể mà các thực thể của nó được xác định thông qua một liên kết với một tập thực thể khác F nào đó thì lược đồ quan hệ tương ứng với E chỉ chứa các thuộc tính khóa của F. E2. 5 ký tự.27 Khen_thuong Ma_so_can_bo Khen_thuong 0001 đoàn 0002 Bằng GTVT Khái niệm khoá ngoài (foreign key): Khoá ngoài là một hoặc một tập thuộc tính trong một quan hệ của cơ sở dữ liệu tham chiếu đến một hoặc một tập thuộc tính của quan hệ khác trong cùng cơ sở dữ liệu đó. E2. Thông tin về khách hàng đặt mua báo (tạp chí) :  Mã khách hàng đặt mua. kiểu character. Tuy nhiên. Các giá trị hiện thời của các quan hệ hình thành cơ sở dữ liệu quan hệ hay gọi tắt là cơ sở dữ liệu. Ek. Biến đổi các liên kết Mỗi liên kết R giữa tập các thực thể E1. thập chí nếu chúng thuộc cùng một tập thực thể. Giả sử trong nghiệp vụ quản lý phát hành báo chí. kiểu character. Các khoá ngoại rất quan trọng đối với cơ sở dữ liệu quan hệ. chúng ta hoàn toàn tự do tạo lập các quan hệ với một tập thuộc tính nào đó như một lược đồ quan hệ và có thể đặt một sự diễn giải trên các bộ nếu chúng ta muốn. chúng ta đảm bảo chắc chắn không có hai tập thực thể trong danh sách có các thuộc tính cùng tên.

kiểu character. 15 ký tự..  Kỳ phát hành báo ( báo ngày. chí khách đặt mua . chí. kiểu character. Thông tin về phiếu đặt báo gồm  Ngày khách đặt báo. 5 số. 3 ký tự chữ c.). b.  Số lượng báo.  Thành tiền từng loại báo. ...  Mã hiệu khách hàng đặt mua báo.28  Số điện thoại . 3 ký tự.  Địa điểm giao nhận báo(tạp chí) hàng ngày. báo tuần.  Mã báo khách đặt mua. kiểu character. Hãy phác hoạ mô hình CSDL quan hệ với các dữ liệu trên.  Giá báo. Thông tin về các loại báo (tạp chí) bao gồm:  Mã báo khách đặt mua. 25 ký tự. 7 ký tự. kiểu character.  Tên báo (tạp chí). báo tháng.

....6: r( A a1 a2 a3 B b2 b5 b2 C) c1 c4 c2 F  (A = a1) F(r) = ( A B C) c1 a1 b2 4. <=.. BM}  R với M  N. Khi đó ký hiệu t[A] là giá trị của bộ t tại thuộc tính A. Các phép toán sử dụng trong biểu thức F là: . >=....29 Chương 4. Mở rộng ra. 4.. r là một quan hệ trên R.. Ví dụ 4. Đại số quan hệ Đại số quan hệ là một ngôn ngữ đại số trong đó các bảng mới được định nghĩa bằng các toán tử liên hệ với các bảng khác.. <. Phép chọn Phép chọn trên quan hệ r ký hiệu F(r) là phép tính để xây dựng một tập con các bộ của r.5: r( A a1 a2 a3 B b2 b5 b2 C) c1 c4 c2 X = {A.2. Trong đó một bảng mới được định nghĩa như một biểu thức bao gồm các bảng khác và các toán tử. 2.Phép toán so sánh: >.  Biểu diễn hình thức phép chọn: F(r) = {t  r | F(t) = TRUE} F(t) được hiểu là giá trị của các thuộc tính xuất hiện trong biểu thức F tại bộ t thoả các điều kiện của F.. A  R. Người ta định nghĩa phép chiếu như sau: Phép chiếu trên tập X của quan hệ r.. nếu X = {B 1... B2.Phép toán logic: . ký hiệu là X (r) hoặc r[X] được định nghĩa theo công thức X (r) = {t[X] | t  r} Ví dụ 4. M thì t[X] = (t[B1]. AN} là một tập các thuộc tính. =. B} X =( A a1 a2 a3 B) b2 b5 b2 . t[BM]). Đây là một ngôn ngữ biểu thức. t là một bộ thuộc r. thoả mãn biểu thức logic F. Phép chiếu Giả sử R = {A1. <> . . Bi  R với i = 1. t[B2].1. A2..

. BM}.1: r( A a1 a2 a4 B b2 b5 b3 C c5 c6 c7 ) S( a7 a2 A b2 b2 B c3 c2 C ) r  s =( A a1 a2 a4 a7 a2 B b2 b5 b3 b2 b2 C) c5 c6 c7 c3 c2 4. ký hiệu là r  s là tập các bộ thuộc r hoặc s. B2.. ký hiệu là r  s là tập các bộ thuộc cả quan hệ r và s. 2... Hợp của hai quan hệ r và s khả hợp. Biểu diễn hình thức phép hợp có dạng: r  s = {t | t  r  t  s} Ví dụ 4..4.3: r( A a1 a2 a4 B b2 b5 b3 C c5 c6 c7 ) s( A a1 a2 a4 B b2 b2 b3 C c5 c2 c7 ) r . r  s = {t | t  r  t  s} Ví dụ 4..s =( A a2 B b5 C) c6 Hệ quả: Phép giao của r và s có thể biểu diễn dưới dang: r  s = r – (r – s) . ký hiệu r – s là tập các bộ thuộc r nhưng không thuộc s. Phép hợp * Tính khả hợp: r là quan hệ xác định trên tập thuộc tính R = {A1. AN}.5. Phép giao Giao của hai quan hệ r và s khả hợp....30 4.2: r( A a1 a2 a4 B b2 b5 b3 C c5 c6 c7 ) S( A a1 a2 a4 B b2 b2 b3 C c5 c2 c7 ) r  s =( A a4 a1 B b3 b2 C) c7 c5 4.. Phép trừ Hiệu của hai quan hệ r và s khả hợp. r và s được gọi là hai quan hệ khả hợp khi và chỉ khi M = N và miền giá trị của Ai và Bi với i = 1..s = {t | t  r  t  s} Ví dụ 4.. s là quan hệ xác định trên tập thuộc tính S = {B1. A2. Biểu diễn hình thức phép trừ có dạng: r .3. Biểu diễn hình thức phép giao có dạng. N là tương đồng với nhau.

7..b sẽ có dạng (a. Trường hợp phép kết nối bằng trên các thuộc tính cùng tên của hai quan hệ và sau khi kết nối một trong hai thuộc tính của phép so sánh „=‟ được loại bỏ thông qua phép chiếu thì phép kết nối này được gọi là kết nối tự nhiên và sử dụng ký hiệu “*”. Biểu diễn hình thức phép tích đề các có dạng r x s = {t | t = (a.. Tích Descartes Gọi r là quan hệ xác định trên tập thuộc tính {A1. BM}. B2. a2. a2. r( A B ) s( E F ) r s= ( B>E 6 5 4 1 4 3 2 3 3 3 5 5 4 4 4 3 2 3 2 3 3 3 A B E F) . bM)  s.6. b2... r s = {(t. chúng ta gọi phép kết nối đó là phép kết nối bằng.b) = (a1... Phép kết nối tự nhiên của hai quan hệ được định nghĩa như sau: r(U) * s(V) = {t[U  V] | t[U]  r  t[V]  s} Ví dụ 4..4: r( A a1 a2 a3 B b2 b5 b2 ) s( E e1 e3 F f2 f4 ) r x s= ( A B E e1 e3 e1 e3 e1 e3 F) f2 f4 f2 f4 f2 f4 a1 b2 a1 b2 a2 b5 a2 b5 a3 b2 a3 b2 4.7....b)  a  r  b  s} Ví dụ 4. Phép ghép bộ a với b được ký hiệu (a. Trong trường hợp  là một phép toán so sánh „=‟.. aN...u) | t  r  u  s  t[A]  u[B]} Trong đó  là một phép toán thể hiện mối quan hệ giữa các thuộc tính của hai quan hệ r và s.. aN)  r. AN} và s là quan hệ xác định trên tập thuộc tính {B1. * Phép ghép bộ: Giả sử a = (a1..... b = (b1..31 4. A2. Các phép kết nối 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... b2.. b1.. b) hoặc a. bM) Tích đề các của r và s ký hiệu r x s là tập các 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..

3. DiemThi. 2. TenHS. Các tính chất của đại số quan hệ a. Tích ĐềCác – (Decalesian Product) e. d. Tính chất giao hoán b.MINUS. Phép giao của các quan hệ – INTERSECT. .. 2. TenLop. Hiển thị ra các học sinh có điểm thi nằm trong khoảng từ 5 đến 7. s là quan hệ trên tập S = {B1. TenHS. PhongHoc).. c. TenLop.. thông tin hiển thị bao gồm: MaHS. Các phép toán đại số quan hệ a. Cho hai quan hệ HocSinh(MaHS.. Kết hợp b. B2. BM} với M < N.. SoHocSinh.. Hiệu của các quan hệ . Phép hợp các quan hệ – UNION b. Phép chia r cho s ký hiệu r  s là tập các bộ t sao cho với mọi bộ u  s thì bộ (t. Phép chọn – Selection. TenLop. Phép chiếu – PROJECT.32 4. Thông tin hiển thị bao gồm: MaLop. Tính chất tích luỹ đẳng 4.u)  r} Ví dụ 4. f. DiemThi. Phép chia Gọi r là quan hệ trên tập R = {A1. Lop) và Lop(MaLop.u)  r. Hãy viết biểu thức đại số quan hệ thực hiện công việc sau: 1... AN}.8: r( A a1 a2 a1 a3 a2 B b2 b2 b2 b3 b2 C) c1 c1 c2 c3 c2 s (B C) b2 b2 c1 c2 r  s = (A) a1 a2 Bài tập 1.8. Biểu diễn hình thức phép chia: r  s = {t |  u  s  (t. Trình bày khái niệm ngôn ngữ thao tác dữ liệu. Thống kê số học sinh của mỗi lớp. A2.

. .Mệnh đề FROM tương ứng với phép tích đề các của đại số quan hệ. gồm các công việc như quyết định quyền truy cập và khẳng định việc cập nhật dữ liệu. tăng cường các luật toàn vẹn dữ liệu và thực hiện các phép toán của đại số quan hệ. . thay đổi và huỷ bỏ cơ sở dữ liệu cũng như các đối tượng trong cơ sở dữ liệu và các ràng buộc về dữ liệu.1. Truy vấn SQL cơ bản 5. Hiện đây là ngôn ngữ truy vấn được cài đặt khá phổ biến trong các hệ quản trị cơ sở dữ liệu quan hệ. from và where .1. HAVING. Dạng tổng quát của câu lệnh SELECT được biểu diễn như sau: SELECT [DISTINCT] {<tên cột> | <biểu thức> [. Nó bao gồm một vị từ kéo theo các cột của các bảng xuất hiện trong mệnh đề FROM.]} | * .Mệnh đề WHERE tương ứng với vị từ chọn của đại số quan hệ. 5. chỉnh sửa. xoá bỏ. Nó liệt kê các bảng cần tra cứu để đánh giá kết quả của biểu thức. Lệnh SELECT Phép toán cơ bản trong SQL là phép ánh xạ được mô tả về cú pháp như một khối SELECT – FROM – WHERE.Ngôn ngữ điều khiển dữ liệu – DCL (data control language): Ngôn ngữ điều khiển dữ liệu gồm các câu lệnh dùng để điều khiển cơ sở dữ liệu.33 Chương 5.Mệnh đề SELECT trương ứng với phép chiếu của đại số quan hệ. Nó được sử dụng để liệt kê các cột mong muốn trong kết quả của một truy vấn. tìm kiếm) trên các dữ liệu trong quan hệ. Ngôn ngữ truy vấn có cấu trúc. Tổng quan về SQL SQL là ngôn ngữ hỏi có cấu trúc được giới thiệu từ những năm 1970. bao gồm các công việc như cập nhật. khối SELECT – FROM – WHERE sẽ được bổ sung thêm các mệnh đề GROUP BY.Ngôn ngữ định nghĩa (xác định) dữ liệu – DDL (data definition language): Gồm các câu lệnh cho phép xây dựng cơ sở dữ liệu.SQL 5. và một số hàm mẫu.2. để mở rộng khả năng của ngôn ngữ này. ORDER BY. nhờ SQL người sử dụng cơ sở dữ liệu có thể thao tác (bổ xung. . Cấu trúc cơ sở của lệnh truy vấn SQL Cấu trúc cơ sở của một biểu thức SQL bao gồm 3 mệnh đề: Select. không giống như các ngôn ngữ lập trình khác. thay đổi và tìm kiếm dữ liệu. Đây là ngôn ngữ tập trung vào việc khai thác dữ liệu. bổ xung.Ngôn ngữ khai thác dữ liệu – DML (data manipulation language): bao gồm các câu lệnh cho phép chỉnh sửa. truy vấn cơ sở dữ liệu.2. tức là các lệnh tạo mới. SQL được chỉnh sửa và bổ xung lần mới nhất là vào năm 1992. Ngoài ra. Trong các hệ quản trị SQL đều được cài đặt thành 3 lớp ngôn ngữ: .

LIKE <Chuỗi tìm kiếm> Trong chuỗi tìm kiếm sử dụng ký tự % để đại diện cho một xâu con. Ví dụ: SELECT MIN(Age) FROM Persons Lưu ý: Hàm MIN và MAX cũng có thể áp dụng cho các cột có dữ liệu là chuỗi văn bản. Các giá trị NULL sẽ không được xét đến.]} Trong đó mệnh đề WHERE được biểu diễn với các dạng câu WHERE [NOT] <biểu thức> <phép so sánh> <biểu thức> WHERE [NOT] <tên cột> [NOT] LIKE <xâu ký tự> WHERE [NOT] <biểu thức> [NOT] IN (<danh sách> | <Câu truy vấn con>) WHERE [NOT] EXISTS (<Câu truy vấn con>) WHERE [NOT] <biểu thức> <phép so sánh> {SOME | ANY | ALL (<Câu truy vấn con>)} WHERE [NOT] <biểu thức logic> WHERE [NOT] <biểu thức logic> <AND | OR> <biểu thức logic> * Các phép toán logic sử dụng trong mệnh đề WHERE: AND. Các giá trị NULL sẽ không được xét đến.]} [WHERE <biểu thức điều kiện>] [GROUP BY {<tên cột> | <tên biểu thức> [. <=.3.2.]} [HAVING <biểu thức điều kiện>]] [ORDER BY {<tên cột> | <tên biểu thức> [ASC | DESC] [.BETWEEN <giá trị đầu> AND <giá trị cuối> .Phép toán đổi tên AS 5.34 FROM {<tên bảng> | <tên view> [. <> 5. OR. NOT * Các phép toán so sánh sử dụng trong mệnh đề WHERE: >. <. =. Ví dụ: SELECT MAX(Age) FROM Persons Hàm MIN(column) Hàm MIN trả về giá trị nhỏ nhất trong cột. . Các giá trị NULL sẽ không được xét đến khi tính giá trị trung bình.2. Ví dụ: Câu lệnh sau sẽ tính số tuổi trung bình của những người có tuổi trên 20: SELECT AVG(Age) FROM Persons WHERE Age > 20 Hàm MAX(column) Hàm MAX trả về giá trị lớn nhất trong cột. >=. Dữ liệu trong cột sẽ được so sánh theo thứ tự tăng dần của từ điển . Truy vấn sử dụng các hàm thống kê Hàm AVG(column) Hàm AVG trả về giá trị trung bình tính theo cột được chỉ định của các dòng được chọn. ký tự _ để đại diện cho một ký tự. Sử dụng biểu thức và chuỗi trong lệnh SELECT * Một số các phép toán đặc biệt: .

11: Delete from Mat_hang Where Ma_hang = „0001‟ Chú ý: nếu không đưa ra mệnh đề WHERE thì tất cả các bản ghi của bảng sẽ bị xóa.2. Các lệnh sửa đổi dữ liệu 5. „Tivi‟. Lệnh xóa các bản ghi. . Ví dụ: Tìm tổng số tuổi của tất cả những người có trong bảng: SELECT SUM(Age) FROM Persons Ví dụ: Tìm tổng số tuổi của tất cả những người có tuổi lớn hơn 20: SELECT SUM(Age) FROM Persons WHERE Age > 20 5. 5. Ten_hang.]} [WHERE <biểu thức điều kiện>] Ví dụ 4. Don_vi.1.12: Update Mat_hang Set Quy_cach = „Sony 21”‟ Where Ma_hang = „0001‟ Chú ý: Trong trường hợp không nêu mệnh đề WHERE thì toàn bộ các bản ghi của bảng sẽ bị tác động. Các giá trị NULL sẽ không được xét đến. Lệnh chèn một bản ghi.Thao tác thêm một bản ghi mới: INSERT INTO <tên bảng>[(danh sách tên cột)] VALUES(Các giá trị) Ví dụ 4.Thao tác sửa đổi dữ liệu: Trong những tình huống nhất định. chúng ta có thể muốn thay đổi một số giá trị trong một dòng mà không thay đổi mọi giá trị trong dòng đó. „Sony 29”‟) Chú ý: Trong trường hợp không liệt kê danh sách tên cột thì tương đương với việc liệt kê toàn bộ tên các cột của bảng theo thứ tự khi tạo ra bảng.4. Lệnh cập nhật các bản ghi. Cú pháp tổng quát: DELETE FROM <tên bảng> [WHERE <biểu thức logic>] Ví dụ 4. Quy_cach) Values(„0001‟.INSERT .4.Thao tác xóa: Chúng ta có thể xóa một hoặc nhiều bộ trong một bảng thỏa mãn một điều kiện.9: Insert into Mat_hang(Ma_hang.3.DELETE .35 Hàm SUM(column) Hàm SUM trả về tổng giá trị của cột. Lệnh sửa đổi các giá trị của các dòng trong bảng thỏa mãn một điều kiện nào đó có cú pháp tổng quát là: UPDATE <tên bảng> SET {<tên cột> = <biểu thức> [.4. „Chiếc‟. 5.UPDATE .4.

MALOP) Lop(MALOP. NOISINH.MAKHOA) Ketqua(MASV. NGAYSINH.TENKHOA) Monhoc(MAMH.36 Bài tập Cho lược đồ cơ sở dữ liệu Sinhvien(MASV. MAMH. NU.DONVIHT) Giangvien(MAGV.TENLOP.TENMH. Lập danh sách các sinh viên của lớp có mã là CNT43ĐH gồm các thông tin: MASV.CHUYENNGANH. DIEMTHI) Phancong(MALOP.HOCVI. LANTHI.MAGV) Thực hiện các yêu cầu sau: a. NGAYSINH. HOTENSV. HOTENSV. Lập danh sách những sinh viên có hộ khẩu thường trú ở HẢI PHÒNG gồm các thông tin: MASV.TINH. HOTENSV. TENLOP b. TINH.MAMH. MAKHOA) Khoa(MAKHOA. NGAYSINH. .HOTENGV.

1. gộp các lược đồ quan hệ lại với nhau. chúng ta chỉ sửa đổi một bộ nào đó còn các bộ khác vẫn giữ nguyên. Đôi khi chúng ta phải tìm cách chỉnh sửa. GIOKH) Quan hệ PhanCong diễn tả phi công nào lái máy bay nào và máy bay khởi hành vào thời gian nào. Không phải sự phối hợp bất kỳ nào giữa phi công. Khi đó có hiện tượng một nhà cung cấp lại không có địa chỉ duy nhất. khi đó trong quan hệ chỉ có một bộ lưu trữ dữ liệu về nhà cung cấp này.2. Nếu một nhà cung cấp nào đó chỉ cung cấp một mặt hàng. Dễ dàng thấy rằng nếu một nhà cung cấp nào đó cung cấp nhiều mặt hàng khác nhau thi dữ liệu về nhà cung cấp đó sẽ xuất hiện lặp đi lặp lại trong nhiều bộ của quan hệ trên lược đồ này. Dị thường khi xóa bộ: Là vấn đề ngược lại của dị thường khi thêm bộ. d. khi thêm một bộ giá trị về người cung cấp này. b. Đặc biệt sau đó cần phải tiến hành chuẩn hóa lại các lược đồ để tránh các trường hợp: a. Ví dụ dữ liệu về một nhà cung cấp lặp lại trong nhiều bộ dẫn đến khi sửa đổi địa chỉ của người cung cấp này. Phụ thuộc hàm 6. 6. biết ngày giờ khởi hành thì biết được máy bay do phi công ấy lái. Gia).2. . Dư thừa dữ liệu: Ví dụ xem xét một lược đồ NhaCungCap(Ma. Dị thường khi thêm bộ: Nếu một nhà cung cấp chưa cung cấp một mặt hàng nào cả. Ten.37 Chương 6. Khi chúng ta xóa dữ liệu về sự cung cấp mặt hàng bởi nhà cung cấp này hay xóa bộ giá trị đó chúng ta sẽ làm mất thông tin về người cung cấp này.1. MatHang. chúng ta không thể đưa mặt hàng và giá cả vào bộ giá trị . Chuẩn hóa và rút gọn cơ sở dữ liệu quan hệ 6. Khái niệm về phụ thuộc hàm Cho quan hệ PhanCong như sau: PhanCong (PHICONG. Không nhất quán: Là hệ quả của việc dư thừa dữ liệu. máy bay và ngày giờ khởi hành cũng đều được chấp nhận mà chúng có các điều kiện ràng buộc qui định sau:   Mỗi máy bay có một giờ khởi hành duy nhất. MAYBAY. DiaChi. NGAYKH. Nếu biết phi công. Các vấn đề về dư thừa dữ liệu Các lược đồ quan hệ thu được từ biến đổi các sơ đồ ER về các lược đồ quan hệ chưa chắc đã là một thiết kế lý tưởng. c.

NGAYKH}→ PHICONG Nếu biết máy bay.Y) (Ta nói X xác định Y hay Y phụ thuộc hàm vào X (X functional determines Y.X = t2. t2 là hai bộ bất kỳ của r.An}.A2.GIOKH} xác định MABAY {MAYBAY.NGAYKH. GIOKH) Phụ thuộc hàm đƣợc suy diễn logic từ F . MAYBAY. X. biết ngày khởi hành thì biết phi công lái chuyến bay ấy.NGAYKH} {MAYBAY}→ GIOKH {PHICONG. MAYBAY xác định GIOKH {PHICONG.….X ⇒ t1.NGAYKH. Ví dụ: Quan hệ sau thỏa mãn phụ thuộc hàm ∅ → GIOKH PhanCong (PHICONG.GIOKH}→ MABAY {MAYBAY. Y functional dependent on X ) Tính chất:   phụ thuộc hàm X → ∅ đúng với mọi quan hệ r phụ thuộc hàm ∅ → Y chỉ đúng trên quan hệ r có cùng giá trị trên Y. X → Y ⇔ (t1. Y là hai tập con của tập thuộc tính Ω ={A1.38     hay       GIOKH phụ thuộc hàm vào MAYBAY MABAY phụ thuộc hàm vào {PHICONG. t1. r là quan hệ trên R(Ω). NGAYKH. Một cách tổng quát: R(Ω) là lược đồ quan hệ.GIOKH} PHICONG phụ thuộc hàm vào {MAYBAY.NGAYKH} xác định PHICONG Các ràng buộc này là các ví dụ về phụ thuộc hàm và được phát biểu lại như sau: và được ký hiệu như sau: Trong ký hiệu trên ta đã ký hiệu MAYBAY thay cho {MAYBAY}.NGAYKH.Y = t2.

F ⊆ F+ (tính phản xạ ⇒ F+ ⊆ (F+)+ (1) Nếu X → Y ∈ (F+)+ (2) ⇒ X → Y ∈ F+ thậ vậ: (3) Giảsửr thỏa tất cả các phụ thuộ hàm của F (4) ⇒ r thỏa tất cả các phụ thuộc hàm của F+ (theo đinh nghĩa) ⇒ r thỏa tất cả các phụ thuộ hàm của (F+)+ (theo đinh nghĩa) ⇒ r thỏa X → Y (vì (2)) ⇒ X → Y ∈ F+ (1) và (3) ⇒ (F+)+ = F+ 6. A2. Y.…. Tính phản xạ: Với mọi tập phụ thuộc hàm F+ ta luôn luôn có F ⊆ F+ 2. Y  Z thì X  Z . Z  U thì XZ  YZ A3. Z.2. Chúng ta ký hiệu XY tương đương với XY Hệ tiên đề Armstrong: A1. Gọi G là tập tất cả các phụ thuộc hàm có thể có của r. W  U. 6. X → Y ∈ F ⇒ r thỏ X → Y ⇒ X → Y ∈ F+ 2. Bắc cầu: Nếu X  Y.= G . Nếu X → Y là phụ thuộc hàm thuộc F+ ta phải chứng minh X → Y thuộc G+ Giả sử r thỏa tất cả các phụ thuộc hàm của G (1) ⇒ r thỏa tất cả phụ thuộc hàm của F vì F ⊆ G ⇒ r thỏa phụ thuộc hàm X → Y (2) vì X → Y∈F+ (1) và (2) ⇒ X → Y ∈ G+ ⇒ F+ ⊆ G+ 3. Tăng trưởng: Nếu X  Y.Bao đóng của F ký hiệu F+ là tập tất cả các phụ thuộc hàm được suy diễn logic từ F.39 Nói rằng phụ thuộc hàm X → Y được suy diễn logic từ F nếu một quan hệ r thỏa mãn tất cả các phụ thuộc hàm của F thì cũng thỏa phụ thuộc hàm X → Y. Phản xạ: Nếu Y  X thì X  Y A2. Ký hiệu F|= X → Y. Hệ tiên đề Armstrong Gọi R(U) là lược đồ quan hệ với U = {A1. Tính lũy đẳng: Với mọi tập phụ thuộc hàm F ta luôn luôn có (F+)+ = F+.3. phần phụ của F ký hiệu F.2. AN} là tập các thuộc tính và X.F+ Chứng minh 1. tức là tập các phụ thuộc hàm được suy diễn logic từ F. Nếu F = F+ thì F là họ đầy đủ của các phụ thuộc hàm. Tính đơn điệu: Nếu F ⊆ G thì F+ ⊆ G+ 3. Bao đóng của tập phụ thuộc hàm Người ta gọi tập F+ là bao đóng của F. Các tính chất của tập F+ 1.2.

Luật tựa bắc cầu: Nếu X  Y. Z. Bổ đề. W  U. Chứng minh: Lần lượt kiểm tra tính đúng đắn của 3 tiên đề: . . . Y. YW  Z thì XW  Z. u  r sao cho t[XZ] = u[XZ] mà t[YZ]  u[YZ] Vì t[Z] = u[Z] nên để có t[YZ]  u[YZ] thì t[Y]  u[Y] (1) Mà ta có t[XZ] = u[XZ] nên t[X] = u[X] (2) Từ (1) và (2) ta có t[X] = u[X] và t[Y]  u[Y] điều này là trái với giả thiết quan hệ r thoả mãn X  Y. . Tồn tại hai bộ t.Tiên đề bắc cầu: Cho X  Y và Y  Z đúng trên quan hệ r.Chứng minh luật hợp: Từ X  Y ta dùng luật tăng trường thêm X có XX  XY tương đương với phụ thuộc hàm X  XY (1) Từ X  Z ta dùng luật tăng trưởng thêm Y có XY  YZ (2) Từ (1) và (2) ta dùng luật bắc cầu sẽ có: X  YZ. Giả sử tồn tại hai bộ t. . X  Z thì X  YZ. . Chúng ta có các luật sau: . Chứng minh. Do vậy t[Z] = u[Z] Suy ra X  Z là đúng trên quan hệ r.Tiên đề phản xạ: Rõ ràng tiên đề này là đúng vì không thể có hai bộ bằng nhau trên X mà lại không bằng nhau trên tập con của nó. Cho X. Z  Y thì X  Z.Luật tách: Nếu X  Y. Vậy t[YZ] = u[YZ] hay XZ  YZ là đúng trên quan hệ r. . u  r sao cho t[X] = u[X] và t[Z]  u[Z] (3) Từ X  Y suy ra t[X] = u[X] nên t[Y] = u[Y] (4) Từ 3 và 4 ta có t[Y] = u[Y] và t[Z]  u[Z] điều này trái với giả thiết Y  Z.Tiên đề tăng trưởng: Giả sử quan hệ r thoả mãn X  Y. Hệ tiên đề Armstrong là đúng. Điều này có nghĩa là nếu X  Y là một phụ thuộc hàm được suy diễn từ F nhờ hệ tiên đề Armstrong thì X  Y là đúng trên một quan hệ nào đó thoả mãn các phụ thuộc hàm trong F.Luật hợp: Nếu X  Y.40 Bổ đề.

Chứng minh luật tựa bắc cầu: Từ X  Y. .. Bổ đề. Áp dụng hệ tiên đề Armstrong cho mọi i suy ra từ X  Y nhờ luật hợp. Gọi X+ là bao đóng của X đối với F.2.. N. Định lý.41 .. 2. Hệ tiên đề Armstrong là đúng và đầy đủ. Chứng minh: Tính đúng đắn của hệ tiên đề đã được chứng minh qua bổ đề 5. Bao đóng của tập thuộc tính Để dễ dàng chứng minh tính đầy đủ của hệ tiên đề Armstrong. Gọi F là tập các phụ thuộc hàm trên tập thuộc tính U.. Chứng minh: Giả sử Y = A1. X+ được định nghĩa như sau: X+ = { A  U | X  A  F+} Nói cụ thể: X+ là tập tất cả các thuộc tính A mà phụ thuộc hàm X  A có thể được suy diễn logic từ F nhờ hệ tiên đề Armstrong. X  U. X  Y được suy diễn từ hệ tiên đề Armstrong khi và chỉ khi Y  X+.1. 6.. Ở đây chúng ta chỉ cần chứng minh tính đầy đủ tức là X  Y không thoả trên quan hệ r thì X  Y cũng không thể suy diễn logic từ F.4..Chứng minh luật tách: Vì Z  Y nên Y  Z theo luật phản xạ (5) Mà theo giả thiết có X  Y (6) Từ (5) và (6) ta dùng luật bắc cầu sẽ có: X  Z. .AN với A1.. Ngược lại.. áp dụng hệ tiên đề Armstrong cho mỗi i có X  Ai với Ai  Y nhờ luật tách. người ta đưa thêm khái niệm bao đóng của tập các thuộc tính. AN là các thuộc tính và Y  X+ Từ định nghĩa X+ ta có X  Ai với i = 1. Từ đó suy ra Y  X+. dùng luật tăng trưởng thêm W có XW  YW (3) Mà theo giả thiết chúng ta có YW  Z (4) Từ (3) và (4) ta dùng luật bắc cầu sẽ có: XW  Z... giả sử ta có X  Y..

.....B2..1 00. Một quan hệ r chỉ ra F không suy diễn logic ra X  Y.3 việc kiểm tra X  Y  F+ không khó hơn việc tính X+. A  BN}.. Vì XV  X+ do V  X+ nên X  V suy ra từ bổ đề 5. Chẳng hạn cho F là tập các phụ thuộc hàm với F = {A  B1. nếu không hai bộ thuộc r là bằng nhau trên X nhưng không bằng nhau trên Y.. Giả sử răng X  Y là thoả trên r... tập các phụ thuộc hàm F trên U và X  U Ra: Bao đóng của X đối với F.3. Giả sử X  Y là không thể suy diễn được từ hệ tiên đề Armstrong... Phương pháp: . Như trên có X  X+ và suy ra Y  X+.. điều đó là hoàn toàn mâu thuẫn với giả thiết rằng X  Y là không thể suy diễn được từ hệ tiên đề Armstrong.1 Các thuộc tính thuộc X+ 11.42 Gọi F là tập các phụ thuộc hàm trên tập thuộc tính U. Đến đây có thể kết luận: Nếu X  Y không suy diễn được từ hệ tiên đề Armstrong thì X  Y không thể suy diễn logic được từ F....0 Các thuộc tính còn lại Trước hết cần chỉ ra rằng tất cả các phụ thuộc hàm thuộc F đều thoả trên quan hệ r..... Vậy hệ tiên đề là đầy đủ.. Tính bao đóng của tập các thuộc tính đối với một tập phụ thuộc hàm.. Thật vậy.. bao đóng của tập thuộc tính X lại không khó......BN}....1. Việc tính toán bao đóng F+ của tập các phụ thuộc hàm F trong trường hợp tổng quát là rất khoá khăn và tốn kém thời gian bởi vì tập các phụ thuộc hàm thuộc F+ rất lớn cho dù F có thể là khá nhỏ.... Do vậy X  Y không thể đúng trên r...... Theo bổ đề 5.. A  B2... Như vậy W không thể là tập con của X+ hoặc V  W thoả trên r.. Tuy nhiên việc tính X+.. Xét quan hệ r gồm hai bộ được cho trong bảng dưới đây: Bảng 5.. Thuật toán.3 thì X  Y có thể suy ra được từ hệ tiên đề... do vậy là mâu thuẫn. Áp dụng luật bắc cầu và luật tách với X  V và V  W  F suy ra X  A.... Gọi A  W nhưng A không thuộc X+....... Do đó.. F+ khi đó còn được tính những phụ thuộc hàm A  Y với Y  {B1... Theo bổ đề 5. Tính toán bao đóng của tập thuộc tính.1 11.... Như vậy sẽ có 2N – 1 tập con khác rỗng của Y. ta có V  X+ hoặc hai bộ của r sẽ không bằng nhau ít nhất trên một thuộc tính của V.. Vào: Tập hữu hạn các thuộc tính U. 11. giả sử V  W  F nhứng không thoả trên r. Nhưng do A không thuộc X+ như giả thiết. Từ đó đi đến kết luật rằng mỗi V  W  F đều thoả trên r.. Bây giờ cần chứng minh X  Y không thoả trên r.

. ta có X  A và do đó A  X+ Ngược lại. Bước cơ sở: Đúng vài A  X rõ ràng X  A. X . theo thuật toán ở bước thứ j. X  Y theo bổ đề 5. Do vậy Xi = X+.1 có thể kết thúc sớm hơn trước khi tính toán bước thứ j cho Xj.43 Lần lượt tính các tập X .. Ngược lại đặt Xi = Xi-1. X . Áp dụng luật bắc cầu cho X  Z và Z  A. Y  Xj-1 và A  Z.. Thuật toán tính bao đóng X+ là đúng. Xi .. Tức là nếu A được thêm vào Xj thì A  X+. Thật vậy. Định lý. trong đó có cả thuộc tính A.. Cuối cùng sẽ là X  Y. trong đó mỗi dòng là một phụ thuộc hàm thuộc F và sử dụng luật phản xạ hoặc giả thiết của bước quy nạp trước hoặc sử dụng luật tăng trưởng và luật bắc cầu. Vì rằng X = X0  . Nêu thuật toán dừng ở bước Xi = Xi-1 với i < j thì rõ ràng rằng Xi = Xj.2. 0 1 2 .. Chứng minh: chứng minh bằng quy nạp. U và U là hữu hạn cho nên sẽ tồn tại một chỉ số i nào đó mà Xi = Xi-1. khi đó đặt X+ = Xi. áp dụng luật bắc cầu cho X  Y và Y  Z có X  Z. theo các bước sau: Bước 0: Đặt X0 = X Bước i: Tính Xi từ Xi -1. Cần chứng minh cho bước thứ j. Có điều không quan trọng là thuật toán 5. nếu A là thuộc tính được đưa vào Xj thì phải tồn tại một phụ thuộc hàm Y  X  F. trong đó Xj-1 chỉ chứa các thuộc tính thuộc X+.. ta có Y  X+.. cần chứng minh rằng nếu A  X+ thì A phải thuộc vào Xj nào đó... Do A  Z nên Z  A theo luật phản xạ. Các bước quy nạp sẽ thực hiện thêm một số dòng. Theo giả thiết quy nạp. Trong quá trình chứng minh cần sử dụng tới hệ tiên đề Armstrong: X  Y suy diễn từ F thì mỗi thuộc tính A  Y được thêm vào tại mỗi Xj nào đó.. Bước quy nạp: Giả sử bước j-1 đúng.. cụ thể Xi = Xi-1  A nếu tồn tại một phụ thuộc hàm Y  Z  F mà Y  Xi-1 với A  Z và A  Xi-1.

X‟  X thì X‟  Y  F+ Ngược lại. Một quan hệ có chứa một miền giá trị của một thuộc tính nào đó là không nguyên tố được gọi là quan hệ không chuẩn hay quan hệ phi chuẩn. Một lược đồ quan hệ R được gọi là ở dạng chuẩn một (1NF) nếu và chỉ nếu toàn bộ các miền giá trị của các thuộc tính trong R đều chỉ chứa cá giá trị nguyên tố. Chúng ta nói rằng A là phụ thuộc bắc cầu vào X nếu tồn tại một tập thuộc tính Y. Một lược đồ quan hệ R được gọi là ở dạng chuẩn hai (2NF) nếu nó đã ở dạng chuẩn một và mọi thuộc tính không khóa của R đều phụ thuộc hàm đầy đủ vào khóa chính. A  U. A2.3. chúng ta luôn luôn có thể chuẩn hóa nó về dạng một quan hệ chuẩn hóa.3. chúng ta sẽ nói Y phụ thuộc bộ phận vào X. Tuy nhiên. Y phụ thuộc hàm đầy đủ vào X nếu Y phụ thuộc hàm vào X nhưng không phụ thuộc hàm vào bất kỳ một tập con thực sự nào của X. Định nghĩa. AN} là tập các thuộc tính.1. Như vậy.3.X  Y  F+ . 6.…. A2. AN} là tập các thuộc tính. Y  U. chúng ta sẽ nói rằng A không phụ thuộc hàm bắc cầu vào X hay A phụ thuộc trực tiếp vào X. Y  A thuộc F+ nhưng Y  X không thuộc F+.….44 6. 6. Định nghĩa. Cho R(U) là lược đồ quan hệ với U = {A1. F là tập các phụ thuộc hàm trên R và X  U. Ngược lại. Chúng ta nói rằng Y phụ thuộc hàm đầy đủ vào X nếu: . F là tập các phụ thuộc hàm trên R và X. Một quan hệ xác định trên lược đồ quan hệ ở dạng chuẩn 1 được nói là quan hệ ở dạng chuẩn một. F là tập các phụ thuộc hàm trên R và A  U. Cho R(U) là lược đồ quan hệ với U = {A1. Một quan hệ xác định trên lược đồ quan hệ ở dạng chuẩn hai được nói là quan hệ ở dạng chuẩn hai. Dạng chuẩn 2 (2NF) Định nghĩa.3. Cho R(U) là lược đồ quan hệ với U = {A1. A2. Dạng chuẩn 3 (3NF) .3. 6. Chúng ta nói rằng A là thuộc tính khóa nếu A thuộc một khóa tối thiểu nào đó của R. Định nghĩa.2.…. Các dạng chuẩn của lược đồ quan hệ Định nghĩa. AN} là tập các thuộc tính. với một quan hệ không chuẩn nao đó. Dạng chuẩn 1 (1NF) Một quan hệ được chuẩn hóa là quan hệ trong đó mỗi miền giá trị của một thuộc tính chỉ chứa nhứng giá trị nguyên tố tức là những giá trị không thể phân chia được nữa. Ngược lại A được gọi là thuộc tính không khóa. Y  U sao cho X  Y.

Phép tách bảo toàn thông tin Giả sử lược đồ quan hệ R được phân tách thành các sơ đồ con R1. sơ đồ quan hệ R chỉ có các phụ thuộc hàm không tầm thường là những phụ thuộc hàm trong đó một khóa xác định hàm một hay nhiều thuộc tính khác. Một lược đồ quan hệ R với tập phụ thuộc hàm F được gọi là ở dạng chuẩn BoyeCodd nếu với mọi X  A thuộc F+ và A  X thì X chứa một khóa của R. R2. Phép tách lược đồ quan hệ 6. Ta nói phép tách này là không mất mát thông tin đối với F nếu mọi quan hệ r trên R mà thỏa mãn F thì: r = R1(r) * R2(r) *…* Rk(r) tức là quan hệ r là kết nối tự nhiên của những quan hệ là phép chiếu của nó trên mỗi Ri.45 Định nghĩa. Kiểm tra phép tách là không mất mát thông tin.…. Thì (a) r  m(r) (b) Nếu s = m® thì Ri(s) = ri (c) m( m(r)) = m(r) Bổ đề có thể chứng minh dễ dàng dựa trên khái niệm phép tách và định nghĩa của m. Bổ đề. Vì vậy điều kiện để một phép tách là không mất mát thông tin là r = m. Đính lý. 6. Mọi sơ đồ quan hệ R với tập phụ thuộc hàm F ở dạng chuẩn Boye-Codd thì cũng ở dạng chuẩn ba. Rk}.4. Liệu một phép tách có là mất thông tin hay không đối với một tập các phụ thuộc hàm cho trước được kiểm tra thông qua thuật toán sau: . R2. Cho lược đồ quan hệ R. r là một quan hệ trên R và ri = Ri(r). Rk và F là tập các phụ thuộc hàm trên R.….1. Một quan hệ xác định trên lược đồ quan hệ ở dạng chuẩn ba được nói là quan hệ ở dạng chuẩn ba. Một lược đồ quan hệ R được gọi là ở dạng chuẩn ba (3NF) nếu nó đã ở dạng chuẩn hai và mọi thuộc tính không khóa của R đều không phụ thuộc bắc cầu vào khóa chính. 6.4.  = {R1. Nói cách khác. Dạng chuẩn Boyce-Codd (BCNF) Định nghĩa.4. Gọi m là ánh xạ được định nghĩa như sau: m(r) = R1(r) * R2(r) *…* Rk(r) tức m(r) là kết nối tự nhiên của những quan hệ là phép chiếu của nó trên các sơ đồ con trong .3.

46 Thuật toán. R2} là một phép tách trên R và F là tập phụ thuộc hàm trên R thì phép tách này là không mất mát thông tin nếu R1  R2  R1 \ R2 hoặc R1  R2  R2 \ R1 Chú ý: các phụ thuộc hàm trên không nhất thiết thuộc F. cột j tương ứng với thuộc tính Aj và hàng i tương ứng với lược đồ con Ri. A2.. .R2. Bên cạnh việc xem xét từng quan hệ riêng rẽ.Xét lần lược các phụ thuộc hàm tỏng F và áp dụng các phụ thuộc hàm này cho bảng vừa được xây dựng. . ta có điều kiện bảo toàn thuộc tính: Ri = R.Nếu trong bảng có một hàng gồm các kí hiệu a1. nếu Aj thuộc Ri thì ta điền kí hiệu aj vào đó. Kiểm tra phép tách không mất mát thông tin. Một cách hình thức... điều đó không đủ để đảm bảo một thiết kế CSDL tốt.Rm}. . Định lý: Luôn luôn tìm được một phép tách bảo toàn phụ thuộc D đối với F sao cho mỗi quan hệ Ri trong D là 3NF .Xây dựng một bảng n cột. Nếu tồn tại hai hàng mà tất cả các cột tương ứng với các thuộc tính của X có giá trị như nhau thì ta làm cho các cột ứng với các thuộc tính của Y cũng có giá trị như nhau trong hai hàng này theo nguyên tác sau: Nếu có một kí hiệu a j trong các cột ứng với các thuộc tính của Y thì đồng nhất các kí hiệu là aj.….. Tại vị trí hàng i. Ngược lại thì phép tách là không bảo toàn thông tin. chỉ cần thuộc F+. chúng ta cần xem xét toàn bộ phép tách..Tiếp tục áp dụng các phụ thuộc hàm cho bảng (kể cả việc lặp lại các phụ thuộc hàm đã được áp dụng) cho tới khi không thể áp dụng được nữa (không thể thay đổi được giá trị nào trong bảng nữa). ngược lại ta điền kí hiệu bij. Tính không đầy đủ của các dạng chuẩn: Mục đích của chúng ta là mỗi quan hệ riêng rẽ Ri trong phép tách D là ở dạng chuẩn BCNF hoặc 3NF. cột j. Ra: Khẳng định phép tách có mất mát thông tin hay không? Phương pháp: . Phép tách bảo toàn phụ thuộc Tách quan hệ: Lược đồ quan hệ đơn R = {A1. tập phụ thuộc hàm F trên R và một phép tách  = {R1. A2. Ta gọi đó là điều kiện bảo toàn phụ thuộc. Nếu không đồng nhất bằng một trong các kí hiệu bij.2.. AN}.….. Định lý. Cho  = {R1.. k hàng. Rk} trên R. An} được tách thành một tập hợp các lược đồ quan hệ D = {R1. Tuy nhiên.4. Giả sử chúng ta xét phụ thuộc hàm X  Y  F. Việc mỗi phụ thuộc hàm X → Y trong F hoặc được xuất hiện trực tiếp trong một trong các lược đồ quan hệ Ri trong phép tách D hoặc có thể được suy diễn từ các phụ thuộc hàm có trong Ri là rất có lợi. a2. 6. Vào: Lược đồ quan hệ R = {A1. R2.…. an thì phép tách là không mất mát thông tin.

Về nguyên tắc các thuộc tính này có thể hình thành một sơ đồ quan hệ riêng và không tính nó vào phép tách R về 3NF. S2.5. Không làm mất tính tổng quát giả sử rằng F là một tập phụ thuộc hàm tối thiểu. Chuẩn hóa lược đồ quan hệ 6. Với mỗi vế trái X của một phụ thuộc hàm xuất hiện trong G.. Với mỗi I = 1. 2. hoặc vế trái. Loại bỏ tất cả các thuộc tính của R nếu các thuộc tính đó không liên quan đến một phụ thuộc hàm nào của F.. Đặt các thuộc tính còn lại (những thuộc tính chưa được đặt vào quan hệ nào) vào một quan hệ đơn để đảm bảo tính chất bảo toàn thuộc tính. Ngược lại..…. N. tập các phụ thuộc hàm F. Tách một lược đồ thành 3NF. Bước 3.5.Rm} của một quan hệ R dựa trên một tập phụ thuộc hàm F sao cho mỗi Ri trong D là ở 3NF. …. X  A2. a. Đặt  = (R1. k.. Rk) là một phép tách không mất thông tin của R đối với F. Nếu có phụ thuộc hàm nào của F liên quan tới tất cả các thuộc tính của R thì kết quả chính là R.. 2. Tuy nhiên. gọi Fi là hình chiếu của F lên Ri. X  AN thì chúng ta có thể sử dụng lược đồ XA1A2…AN thay cho XAi với i = 1. không đảm bảo tính chất nối không mất mát. Input: Một quan hệ R và một tập phụ thuộc hàm F trên các thuộc tính của R.5. Sm) là một phép tách không mất mát thông tin của Ri đối với Fi. 1. 3. hãy tạo một lược đồ trong D với các thuộc tính {X U {A1} U {A2} U . 6. Bước 2.2. Vào: Lược đồ quan hệ R. Tìm phủ tối thiểu G của F. và đặt  = (S1.X → A2.…. Tách lược đồ quan hệ về 3NF Thuật toán. nếu chúng ta có các phụ thuộc hàm X  A1. Tách lược đồ quan hệ về BCNF Bổ đề.. kết quả ra bao gồm các lược đồ XA ứng với một phụ thuộc hàm X  A trong F..…. hoặc vế phải..…. . R2. Thuật toán này chỉ đảm bảo tính chất bảo toàn phụ thuộc. 6.47 Thuật toán: Tạo một phép tách bảo toàn phụ thuộc D = {R1. 2.1. U {Ak}} trong đó X → A1.R2. Giả sử R là một sơ đồ quan hệ với tập phụ thuộc hàm F.X → Ak chỉ là các phụ thuộc hàm trong G với X là vế trái (X là khóa của quan hệ này). Phương pháp: Bước 1.. Ra: Phép tách không mất mát thông tin trên R sao cho mỗi lược đồ con đều ở 3NF..

Rk+1. Sm. Nếu S là một sơ đồ quan hệ trong .Chúng ta xây dựng một phép tách  đối với R theo phương pháp lặp.….Ban đầu. tập phụ thuộc hàm F trên R. chúng ta sẽ xây dựng được phép tách không mất mát thông tin chuẩn hóa R về dạng chuẩn Boye-Codd. S2 với S1 = A  {X}. .Tiếp tục quá trình trên cho đến khi mọi lược đồ con đều ở dạng chuẩn Boye-Codd. Mỗi lần lặp. Ri+1. với điều kiện X không chứa khóa của S và A  X. Rk.48 Thì phép tách R thành (R1. Phương pháp: . S1. xét một phụ thuộc hàm X  A của S.…. Thuật toán.. Ta thay thế S với S1.  sẽ được tách tiếp với một phép tách không mất mát thông tin đối với F. b. Rn) là một phép tách của R thành tập các lược đồ chứa các lược đồ của  thì  là một phép tách không mất mát thông tin. .…. Rk) là không mất mát thông tin đối với F. không ở dạng chuẩn Boye-Codd.…. Ra:  . S2 = S \ {A} . Ri-1. F và p như trong (a). Giả sử R.một phép tách không mất mát thông tin bao gồm một tập các lược đồ con trong đó mỗi lược đồ đều ở dạng chuẩn Boye-Codd với các phụ thuộc hàm là hình chiếu của F lên lược đồ đó.….  = (R1. S2. Tách không mất mát thông tin về dạng chuẩn Boye-Codd Vào: Lược đồ quan hệ R. R2. đặt  = (R).

49 MỘT SỐ ĐỀ THI MẪU .

sname: string. Ngân hàng cho khách hàng vay với nhiều mục đích sử dụng khác nhau. Các khách hàng có thể có một tài khoản hoặc nhiều tài khoản. Parts: thông tin về các loại hàng hóa. Định nghĩa dạng chuẩn 1 (1NF). Tất cả các chi nhánh có nhiều nhân viên và một số nhân viên giữ chức vụ người quản lý. cost: real) (Suppliers: thông tin về các nhà cung cấp. Cho biết mục đích của các truy vấn được viết ở dạng đại số quan hệ sau: Đề thi số: x Ký duyệt đề: x ( sid (( color 'red ' Parts)  ( cos t 100Cata log)  Suppliers))  ( sid (( color ' green ' Parts)  ( cos t 100Cata log)  Suppliers)) Câu 4: (2 điểm) Cho lược đồ quan hệ R với các thuộc tính ABCDE có các phụ thuộc hàm sau: A  B. Vẽ sơ đồ Thực thể-Liên kết mô tả những thông tin trong cơ sở dữ liệu trên. color: string) Catalog(sid: integer. 3NF. pid: integer. address: string) Parts(pid: integer. và ED  A.50 Trƣờng Đại Học Hàng Hải Việt Nam Khoa Công nghệ Thông tin BỘ MÔN HỆ THỐNG THÔNG TIN -----***----- THI KẾT THÚC HỌC PHẦN Tên học phần: CƠ SỞ DỮ LIỆU Năm học: x Thời gian: 60 phút Câu 1: (2 điểm) a. Câu 2: (4 điểm) Cho một cơ sở dữ liệu về Ngân hàng như sau: Ngân hàng có nhiều chi nhánh tại các địa điểm khác nhau. Ngân hàng lưu giữ thông tin về các giao dịch được thực hiện bởi các tài khoản khách hàng. (có thể bổ sung thêm các giả thiết khác để mô tả bài toán nếu cần thiết) Câu 3: (2 điểm) Cho lược đồ quan hệ sau: Suppliers(sid: integer. Mỗi chi nhánh lưu giữ thông tin về chi tiết tài khoản của khách hàng tại chi nhánh đó. Cho biết sự khác nhau chính giữa hệ thống xử lý tệp tin và hệ quản trị dữ liệu. a. Catalog: thông tin về giá bán các loại hàng hóa của các nhà cung cấp).Không sửa. nộp lại đề sau khi thi . Viết truy vấn sau trong đại số quan hệ: Tìm tên của những nhà cung cấp có sản phẩm màu đỏ (RED) hoặc màu xanh (GREEN) b. 2NF. Cho ví dụ minh họa. xóa đề thi. dạng chuẩn 2 (2NF). Xác định dạng chuẩn cao nhất R thỏa mãn (1NF. b. b. BC  E. ----------------------------***HẾT***---------------------------Lưu ý: . Giải thích. pname: string. BCNF). a. Chuyển sơ đồ Thực thể-Liên kết trên sang lược đồ quan hệ.

Xác định dạng chuẩn cao nhất R thỏa mãn (1NF. Cho biết mục đích của các truy vấn được viết ở dạng đại số quan hệ sau:  sname ( sid (( color 'red ' Parts)  ( cost 100Cata log)  Suppliers)) Câu 4: (2 điểm) Cho lược đồ quan hệ R với bốn thuộc tính ABCD có các phụ thuộc hàm sau: C  D. b. pname: string. Một bác sỹ có thể khám cho nhiều bệnh nhân. address: string) Parts(pid: integer. Parts: thông tin về các loại hàng hóa. 3NF. Thông tin về các lần khám bệnh được lưu giữ trong sổ khám bệnh để theo dõi. Giải thích sự khác nhau giữa các mức độ trừu tượng dữ liệu trong hệ quản trị dữ liệu. Vẽ sơ đồ Thực thể-Liên kết mô tả những thông tin trong cơ sở dữ liệu trên. Catalog: thông tin về giá bán các loại hàng hóa của các nhà cung cấp). C  A. Chuyển sơ đồ Thực thể-Liên kết trên sang lược đồ quan hệ. Câu 2: (4 điểm) Cho một cơ sở dữ liệu về Bệnh viện như sau: Bệnh viện có nhiều khoa khám bệnh.51 Trƣờng Đại Học Hàng Hải Việt Nam Khoa Công nghệ Thông tin BỘ MÔN HỆ THỐNG THÔNG TIN -----***----- THI KẾT THÚC HỌC PHẦN Tên học phần: CƠ SỞ DỮ LIỆU Năm học: x Thời gian: 60 phút Câu 1: (2 điểm) a. sname: string. Một bác sỹ chỉ thuộc vào một khoa. Cho ví dụ minh họa. nộp lại đề sau khi thi Đề thi số: x Ký duyệt đề: x . pid: integer. a. Giải thích các vấn đề về dư thừa dữ liệu trong cơ sở dữ liệu. cost: real) (Suppliers: thông tin về các nhà cung cấp. xóa đề thi. ----------------------------***HẾT***---------------------------Lưu ý: . a. Giải thích. 2NF. Mỗi khoa có nhiều bác sỹ. b. BCNF). color: string) Catalog(sid: integer. (có thể bổ sung thêm các giả thiết khác để mô tả bài toán nếu cần thiết) Câu 3: (2 điểm) Cho lược đồ quan hệ sau: Suppliers(sid: integer. b. Viết truy vấn sau trong đại số quan hệ: Tìm tên của những nhà cung cấp có đủ tất cả các loại sản phẩm. Một bệnh nhân có thể được khám bởi nhiều bác sỹ. và B  C.Không sửa.

----------------------------***HẾT***---------------------------Lưu ý: . Mỗi khách hàng sở hữu một hoặc nhiều xe. Parts: thông tin về các loại hàng hóa. hệ quản trị dữ liệu.Không sửa. xóa đề thi. Câu 2: (4 điểm) Cho một cơ sở dữ liệu về Công ty bảo hiểm xe hơi như sau: Công ty bảo hiểm có nhiều khách hàng mua bảo hiểm xe hơi. BCNF). Cho biết mục đích của các truy vấn được viết ở dạng đại số quan hệ sau: Đề thi số: x Ký duyệt đề: x ( sname (( color ' red ' Parts)  ( cos t 100Cata log)  Suppliers))  ( sname (( color ' green ' Parts)  ( cos t 100Cata log)  Suppliers)) Câu 4: (2 điểm) Cho lược đồ quan hệ R với các thuộc tính ABCDE có các phụ thuộc hàm sau: A  BC. Viết truy vấn sau trong đại số quan hệ: Tìm tên của những nhà cung cấp có sản phẩm màu đỏ (RED) và màu xanh (GREEN). pname: string. Vẽ sơ đồ Thực thể-Liên kết mô tả những thông tin trong cơ sở dữ liệu trên. b. Mỗi xe có thể không có hoặc có một đến nhiều hồ sơ về tai nạn được yêu cầu bồi thường. b. khóa chính. Mỗi xe được mua một loại bảo hiểm của công ty.52 Trƣờng Đại Học Hàng Hải Việt Nam Khoa Công nghệ Thông tin BỘ MÔN HỆ THỐNG THÔNG TIN -----***----- THI KẾT THÚC HỌC PHẦN Tên học phần: CƠ SỞ DỮ LIỆU Năm học: x Thời gian: 60 phút Câu 1: (2 điểm) a. Giải thích các khái niệm: khóa. a. 2NF. Giải thích. a. address: string) Parts(pid: integer. Chuyển sơ đồ Thực thể-Liên kết trên sang lược đồ quan hệ. (có thể bổ sung thêm các giả thiết khác để mô tả bài toán nếu cần thiết) Câu 3: (2 điểm) Cho lược đồ quan hệ sau: Suppliers(sid: integer. color: string) Catalog(sid: integer. và E  DA. siêu khóa. Xác định dạng chuẩn cao nhất R thỏa mãn (1NF. khóa ứng cử. cost: real) (Suppliers: thông tin về các nhà cung cấp. BC  E. pid: integer. b. khóa ngoại. Giải thích các khái niệm: dữ liệu. 3NF. cơ sở dữ liệu. Catalog: thông tin về giá bán các loại hàng hóa của các nhà cung cấp). nộp lại đề sau khi thi . sname: string.

Chuyển sơ đồ Thực thể-Liên kết trên sang lược đồ quan hệ. 3NF. Mỗi phòng ban có nhiều nhân viên. a. Một số nhân viên có thể giữ chức vụ Người quản lý. pid: integer. b. cost: real) (Suppliers: thông tin về các nhà cung cấp. và D  A. xóa đề thi. (có thể bổ sung thêm các giả thiết khác để mô tả bài toán nếu cần thiết) Câu 3: (2 điểm) Cho lược đồ quan hệ sau: Suppliers(sid: integer. sname: string. Trình bày các bước cơ bản trong quá trình thiết kế cơ sở dữ liệu. Mỗi nhân viên phải thuộc vào một phòng ban nào đó. Giải thích. Câu 2: (4 điểm) Cho một cơ sở dữ liệu về Nhân viên công ty như sau: Một công ty có nhiều phòng ban. Nhân viên có thể được chuyển từ phòng ban này sang phòng ban khác tại các thời điểm khác nhau tùy theo yêu cầu của công ty. Vẽ sơ đồ Thực thể-Liên kết mô tả những thông tin trong cơ sở dữ liệu trên. Cho biết mục đích của các truy vấn được viết ở dạng đại số quan hệ sau: Đề thi số: x Ký duyệt đề: x  sname ( sid (color 'red ' Parts)  ( cost 100Cata log)  Suppliers) Câu 4: (2 điểm) Cho lược đồ quan hệ R với bốn thuộc tính ABCD có các phụ thuộc hàm sau: B  C. Xác định dạng chuẩn cao nhất R thỏa mãn (1NF. 2NF. Cho biết các tiên đề Amstrong và bổ đề được sử dụng để tìm các phụ thuộc hàm. ----------------------------***HẾT***---------------------------Lưu ý: . BCNF). b. color: string) Catalog(sid: integer.53 Trƣờng Đại Học Hàng Hải Việt Nam Khoa Công nghệ Thông tin BỘ MÔN HỆ THỐNG THÔNG TIN -----***----- THI KẾT THÚC HỌC PHẦN Tên học phần: CƠ SỞ DỮ LIỆU Năm học: x Thời gian: 60 phút Câu 1: (2 điểm) a.Không sửa. a. Parts: thông tin về các loại hàng hóa. Catalog: thông tin về giá bán các loại hàng hóa của các nhà cung cấp). address: string) Parts(pid: integer. Viết truy vấn sau trong đại số quan hệ: Tìm tên của những nhà cung cấp có đủ tất cả các loại sản phẩm màu đỏ (RED). b. pname: string. nộp lại đề sau khi thi .

Mỗi cuốn sách được viết bởi một hoặc nhiều tác giả. cost: real) (Suppliers: thông tin về các nhà cung cấp. address: string) Parts(pid: integer. Thư viện có nhiều giá sách đặt tại nhiều vị trí khác nhau. AB  D.Không sửa. Vẽ sơ đồ Thực thể-Liên kết mô tả những thông tin trong cơ sở dữ liệu trên. Định nghĩa dạng chuẩn 3 (3NF). ----------------------------***HẾT***---------------------------Lưu ý: . color: string) Catalog(sid: integer. pname: string. b. Viết truy vấn sau trong đại số quan hệ: Tìm tên của những nhà cung cấp có đủ tất cả các loại sản phẩm màu đỏ (RED) hoặc màu xanh (GREEN). Mỗi cuốn sách được đặt ở một giá sách nào đó trong thư viên. pid: integer. a. (có thể bổ sung thêm các giả thiết khác để mô tả bài toán nếu cần thiết) Câu 3: (2 điểm) Cho lược đồ quan hệ sau: Suppliers(sid: integer. và D  B. sname: string. Cho ví dụ minh họa. a. Catalog: thông tin về giá bán các loại hàng hóa của các nhà cung cấp). b. Xác định dạng chuẩn cao nhất R thỏa mãn (1NF. Cho biết mục đích của các truy vấn được viết ở dạng đại số quan hệ sau: Đề thi số: x Ký duyệt đề: x ( sid (( color 'red ' Parts)  ( cos t 100Cata log)  Suppliers))  ( sid (( color ' green ' Parts)  ( cos t 100Cata log)  Suppliers)) Câu 4: (2 điểm) Cho lược đồ quan hệ R với các thuộc tính ABCDE có các phụ thuộc hàm sau: AB  C. Chuyển sơ đồ Thực thể-Liên kết trên sang lược đồ quan hệ.54 Trƣờng Đại Học Hàng Hải Việt Nam Khoa Công nghệ Thông tin BỘ MÔN HỆ THỐNG THÔNG TIN -----***----- THI KẾT THÚC HỌC PHẦN Tên học phần: CƠ SỞ DỮ LIỆU Năm học: x Thời gian: 60 phút Câu 1: (2 điểm) a. b. C  A. Parts: thông tin về các loại hàng hóa. Câu 2: (4 điểm) Cho một cơ sở dữ liệu về Thư viên: Một thư viện có nhiều sách. xóa đề thi. BCNF). Mỗi cuốn sách thuộc vào một hoặc nhiều thể loại sách khác nhau. Cho biết những ưu điểm khi sử dụng hệ quản trị dữ liệu để quản lý dữ liệu. nộp lại đề sau khi thi . dạng chuẩn 4 (4NF). 2NF. Giải thích. 3NF.