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

Giáo trình Cơ sở dữ liệu (Ngành Công nghệ thông tin – Trình độ Cao đẳng)

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

TẬP ĐỒN DỆT MAY VIỆT NAM
TRƢỜNG CAO ĐẲNG CƠNG NGHỆ THÀNH PHỐ HỒ CHÍ MINH

Giáo Trình

CƠ SỞ DỮ LIỆU
Nghề: Cơng nghệ thơng tin
Trình độ: Cao Đẳng
(Ban hành theo Quyết định số:

ngày

tháng năm

của trường Cao đẳng Kinh tế - Kỹ thuật Vinatex Tp.HCM)

TP.HỒ CHÍ MINH, THÁNG 06 NĂM 2021


Tuyên bố bản quyền
Giáo trình này sử dụng làm tài liệu giảng dạy lƣu hành nội bộ trong trƣờng Cao đẳng
Công nghệ Tp.HCM
Cao đẳng Công nghệ Tp.HCM không sử dụng và không cho phép bất kỳ cá nhân hay
tổ chức nào sử dụng giáo trình này với mục đích kinh doanh.
Mọi trích dẫn, sử dụng giáo trình này với mục đích khác hay ở nơi khác đều phải
đƣợc sự đồng ý bằng văn bản của Cao đẳng Công nghệ Tp.HCM


LỜI GIỚI THIỆU
Cơ sở dữ liệu là môn học cơ sở chuyên ngành quan trọng của tin học. Mục đích
của giáo trình Cơ sở dữ liệu này là nhằm chuẩn hóa tài liệu học tập cho sinh viên học


sinh các hệ cao đẳng và trung cấp nghề chuyên ngành Quản trị mạng máy tính, đồng
thời cũng là tài liệu tham kháo đối với các chuyên ngành khác trong lĩnh vực Tin học.
Giáo trình giúp các học viên tiếp cận vấn đề cốt lõi nhất về mặt lý thuyết: các
định nghĩa, khái niệm, hệ quả, định lý, giải thuật,…từ đó có thể áp dụng vào bài toán
thực tế thiết kế chuẩn hóa cơ sở dữ liệu nói riêng cũng nhƣ thiết kế hệ thống thơng tin
nói chung.
Giáo trình khơng đi sâu vào việc chứng minh các định lý mà chú trọng đến
việc giải thích ý nghĩa thực tế của các cơng thức lý thuyết để từ đó hƣớng dẫn học
viên cách tiếp cận tƣ duy logic, nắm vững kỹ thuật tính toán cũng nhƣ các bƣớc triển
khai giải quyết các bài tốn thực tế trên khía cạnh cơng nghệ.
Nội dung giáo trình đƣợc chia làm 5 chƣơng:
Chương 1: giới thiệu những khái niệm cơ bản nhất về mơ hình cơ sở dữ liệu. Tìm
hiểu về mơ hình thực thể kết hợp.
Chương II: giới thiệu về mơ hình dữ liệu quan hệ, các quy tắc chuyển đổi từ
mơ hình ER sang mơ hình dữ liệu quan hệ. Ngồi ra chƣơng 2 cịn trình bày các quy
tắc, phép tốn của ngơn ngữ đại số quan hệ.
Chương III : trình bày về ngơn ngữ truy vấn dữ liệu quan hệ (SQL), chủ yếu là
câu lệnh truy vấn Select và các mệnh đề kết hợp với câu lệnh.
Chương IV: Khái lƣợc về rang buộc toàn vẹn.
Chương V: đi sâu vào một số khái niệm nhƣ: phụ thuộc hàm, khóa, bao đóng,
các dạng chuẩn,..Tìm hiểu giới thiệu một số thuật tốn liên quan đến tìm khóa hay
cách xác định các dạng chuẩn cho lƣợc đồ quan hệ. Đây là chƣơng đóng vai trị quan
trọng trong việc tƣ duy logic, giúp q trình thiết kế chuẩn hóa cơ sở dữ liệu đƣợc rõ
rang và chính xác hơn.
Ngồi ra, giáo trình cịn trình bày thêm vấn đề thiết kế cơ sở dữ liệu bằng các
kỹ thuật phân rã theo chuẩn 3 và chuẩn BC.
Sau mỗi chƣơng đều có bài tập hƣớng dẫn và bài tập tự làm.


Hy vọng cuốn sách còn là tài liệu tham khảo hữu ích cho các đồng nghiệp

trong giảng dạy, nghiên cứu trên các lĩnh vực có liên quan.
Giáo trình này ngồi tài liệu tham khảo chính cịn có sử dụng các tài liệu tham
khảo nội bộ của các đồng nghiệp khác. Rất mong nhận đƣợc nhiều ý kiến đóng góp,
trao đổi của bạn đọc.
Xin chân thành cảm ơn!


Mục lục

i

CHƢƠNG TRÌNH MƠN HỌC......................................................................................................... a
I. Vị trí, tính chất của môn học: ............................................................................................... a
II. Mục tiêu môn học:................................................................................................................ a
III. Nội dung môn học: ............................................................................................................ a
IV. Điều kiện thực hiện môn học: .......................................... Error! Bookmark not defined.
V. Nội dung và phƣơng pháp đánh giá:........................................ Error! Bookmark not defined.
VI. Hƣớng dẫn thực hiện môn học:........................................ Error! Bookmark not defined.
BÀI 1: TỔNG QUAN VỀ CƠ SỞ DỮ LIỆU ................................................................................... 1
I. HỆ THỐNG TẬP TIN CỔ ĐIỂN : ..........................................................................................1
1. Thực trạng :.........................................................................................................................1
2. Nhận xét : ...........................................................................................................................1
II. CƠ SỞ DỮ LIỆU : .................................................................................................................2
1. Khái niệm: ..........................................................................................................................2
2. Các đối tượng sử dụng CSDL: ............................................................................................3
3. Các mức trừu tượng hóa của CSDL: có 3 mức ...................................................................3
4. Hệ quản trị CSDL (Database Management System – DBMS): .........................................4
III. CÁC MÔ HÌNH DỮ LIỆU : .................................................................................................5
1. Khái niệm: ..........................................................................................................................5
2. Phân loại: ............................................................................................................................5

BÀI 2: MƠ HÌNH DỮ LIỆU QUAN HỆ .......................................................................................10
I. CÁC KHÁI NIỆM CƠ BẢN : ............................................................................................... 10
1. Lược đồ quan hệ (relation schema): ................................................................................. 10
2. Thuộc tính (attribute): ....................................................................................................... 10
3. Bộ (tuple): ......................................................................................................................... 12
4. Quan hệ (Relation): ..........................................................................................................12
5. Các loại khóa : .................................................................................................................. 12
6. Thao tác trên CSDL quan hệ (Relation): ..........................................................................14
II. CÁC THAO TÁC CƠ SỞ TRÊN CÁC QUAN HỆ : ........................................................... 14
 Quy ước chung về cách dùng các điều kiện: ...................................................................... 14
1. Phép chiếu (Project Operation): ....................................................................................... 15
2. Phép chọn (Selection Operation):..................................................................................... 15
3. Phép gán (Assignment Operator): .................................................................................... 16
4. Phép đổi tên (Rename Operation): ................................................................................... 16
III. CÁC PHÉP TOÁN TẬP HP TRÊN CÁC QUAN HỆ : ................................................... 17
1. Phép hội (Union Operation): ............................................................................................ 17


Mục lục

ii

2. Phép giao (Set.Intersection Operation) : ..........................................................................17
3. Phép trừ (Minus Operation): ............................................................................................. 18
4. Phép tích Cartersian (Cartersian Product Operation): ...................................................... 19
5. Phép .kết (theta.join): ..................................................................................................... 20
IV. CÁC PHÉP TOÁN KHÁC : ............................................................................................... 22
1. Phép chia (Division Operator): ......................................................................................... 22
2. Phép bù (Complement): .................................................................................................... 24
3. Phép kết nối nội (Inner Join): ........................................................................................... 24

4. Phép kết nối trái (Left Join): ............................................................................................ 25
5. Phép kết nối phải (Right Join): ......................................................................................... 26
6. Phép chiếu tổng quát: ....................................................................................................... 27
7. Hàm kết hợp: (Aggregate Functions) ............................................................................... 28
8. Phép toán gom nhóm trong đại số quan hệ : (Grouping . ) ............................................28
V. CÁC THAO TÁC CẬP NHẬT TRÊN QUAN HỆ : ............................................................ 28
1. Thêm: (Insertion) .............................................................................................................. 28
2. Xóa: (Deletion) ................................................................................................................. 28
3. Sửa: (Updating) ................................................................................................................. 28
BÀI 3: NGÔN NGỮ TRUY VẤN SQL .......................................................................................... 25
(Structured Query Language) ......................................................................................................... 25
I. GIỚI THIỆU : ....................................................................................................................... 25
II. CÁC LỆNH VỀ KIẾN TRÚC CSDL : ................................................................................ 25
1) Tạo cấu trúc cho 1 bảng mới : ......................................................................................... 25
2. Thêm các cột của 1 bảng : ................................................................................................ 27
3. Hủy bỏ các cột của 1 bảng : ............................................................................................. 27
4. Hủy bỏ 1 bảng : ................................................................................................................ 27
III. LỆNH CẬP NHẬT DỮ LIỆU : .......................................................................................... 28
1. Thêm các bộ vào 1 bảng : ................................................................................................ 28
2. Sửa đổi nội dung các bộ trong 1 bảng : ............................................................................28
3. Hủy bỏ các bộ 1 bảng : ..................................................................................................... 29
IV. LỆNH TRUY VẤN DỮ LIỆU : ......................................................................................... 29
1. Công dụng :....................................................................................................................... 29
2. Cú pháp chung: ................................................................................................................. 30
3. Giải thích : ........................................................................................................................ 30
4. Thí dụ : .............................................................................................................................. 33
5. Truy vấn lồng nhau nhiều cấp : ........................................................................................ 33
BÀI 4: RÀNG BUỘC TỒN VẸN (Integrity Constraint) .............................................................. 35



Mục lục

iii

I. RÀNG BUỘC TOÀN VẸN (RBTV) . CÁC YẾU TỐ CỦA RBTV : ................................... 35
1. RBTV (Integrity constraint): ............................................................................................. 35
2. Các yếu tố của RBTV :..................................................................................................... 35
II. CÁC LOẠI RÀNG BUỘC TOÀN VẸN : ............................................................................36
1. RBTV miền giá trị : ..........................................................................................................36
2. RBTV liên thuộc tính : ...................................................................................................... 37
3. RBTV liên bộ : ................................................................................................................. 37
1. RBTV phụ thuộc tồn tại : .................................................................................................. 38
2. RBTV liên bộ – liên quan hệ : ......................................................................................... 38
3. RBTV liên thuộc tính – liên quan hệ: .............................................................................. 39
4. Ràng buộc toàn vẹn về thuộc tính tổng hợp: .................................................................... 39
5. RBTV do có chu trình trong đồ thị biểu diễn của lược đồ CSDL: .................................... 39
III. CÁC BƯỚC (ĐỀ NGHỊ) KHI XÁC ĐỊNH CÁC RBTV : .................................................. 40
IV. BIỀU DIỄN RBTV BẰNG PHỤ THUỘC HÀM : ............................................................. 41
1. Phụ thuộc hàm : (functional dependency) ........................................................................ 41
2. Biểu diễn phụ thuộc hàm bằng đồ thị có hướng : ............................................................. 43
3. Hệ luật dẫn Amstrong :..................................................................................................... 44
4. Bao đóng của tập phụ thuộc hàm F : (closure) ................................................................. 44
5. Bao đóng của tập thuộc tính : ........................................................................................... 44
V. QUAN HỆ GIỮA HAI TẬP PHỤ THUỘC HÀM : ............................................................. 45
1. Tập phụ thuộc hàm tương đương : .................................................................................... 45
2. Phụ thuộc hàm đầy dủ : .................................................................................................... 45
3. Tìm phụ thuộc hàm thừa : ................................................................................................. 46
4. Phủ tối tiểu (Minimal cover): ........................................................................................... 48
VI. XÁC ĐỊNH KHÓA CỦA MỘT QUAN HỆ : ..................................................................... 48
1. Thuật toán xác định tất cả các khóa của một lược đồ quan hệ (nguyên thủy) ................. 48

2. Thuật toán cải tiến : ..........................................................................................................49
3. Nhận xét : ......................................................................................................................... 50
Bài 5: CHUẨN HÓA LƢỢC ĐỒ CƠ SỞ DỮ LIỆU .....................................................................50
I. ĐẶT VẤN ĐỀ : ..................................................................................................................... 50
1. Giới thiệu: ......................................................................................................................... 50
2. Thí dụ : .............................................................................................................................. 50
II. CÁC DẠNG CHUẨN : ........................................................................................................ 51
1. Một số khái niệm liên quan đến các dạng chuẩn : ........................................................... 51
2. Dạng chuẩn 1: (First Normal Form – 1NF) ...................................................................... 52
3. Dạng chuẩn 2 (2NF): ........................................................................................................ 53


Mục lục

iv

4. Dạng chuẩn 3 (3NF): ........................................................................................................ 54
5. Dạng chuẩn BC: (Boyce – Codd) ..................................................................................... 56
III. CHUẨN HÓA LƯC ĐỒ CSDL ....................................................................................... 57
1. Định lý Delobel (1973) : ................................................................................................... 57
2. Lược đồ quan hệ phổ quát : .............................................................................................. 57
1. Mô tả: ............................................................................................................................... 57
2. Phương pháp : ................................................................................................................... 58
3. Thuật toán: ........................................................................................................................ 58
4. Thí dụ:............................................................................................................................... 58
1. Mô tả: ............................................................................................................................... 59
2. Phương pháp : ................................................................................................................... 60
3. Thuật toán : ....................................................................................................................... 60
4. Thí dụ : .............................................................................................................................. 60
5. Nhận xét về thuật toán tổng hợp : .................................................................................... 61

IV. CÁC LƯU ÝKHI THỰC HIỆN PHÂN RÃ:....................................................................... 61
1. Lưu ýï:................................................................................................................................ 61
2. Các yếu tố cần bảo đảm khi thực hiện phân rã: ............................................................... 61
3. Phép kiểm tra nối bảo toàn thông tin: .............................................................................. 62


Chƣơng trình mơn học

a

Tên mơn học: Cở sở dữ liệu
Mã môn học: MH 14
Thời gian thực hiện môn học: 45 giờ; (Lý thuyết: 43 giờ; Thực hành, thí nghiệm, thảo
luận, bài tập: 0 giờ; Kiểm tra: 2 giờ)
I. Vị trí, tính chất của mơn học:
- Vị trí: mơn học đƣợc bố trí sau khi ngƣời học học xong các mơn Tin học; Lập trình căn
bản.
- Tính chất: là mơn học cơ sở ngành bắt buộc.
II. Mục tiêu môn học:
- Về kiến thức:
 Trình bày đƣợc các khái niệm về các thực thể, bộ, quan hệ, khóa, phụ thuộc hàm.
 Trình bày đƣợc các mơ hình cơ sở dữ liệu quan hệ.
 Trình bày đƣợc cú pháp của ngơn ngữ SQL.
 Trình bày đƣợc các dạng chuẩn của lƣợc đồ quan hệ.
- Về kỹ năng:
 Phân tích dữ liệu và vẽ đƣợc các mơ hình dữ liệu thực thể - kết hợp (mơ hình ER); chuyển đổi E-R sang lƣợc đồ quan hệ. Xác định đƣợc các khóa, chuẩn hóa
đƣợc lƣợc đồ ở mức tốt nhất có thể.
 Sử dụng thành thạo ngôn ngữ truy vấn dữ liệu SQL chuẩn cho việc truy vấn dữ
liệu đã cài đặt.
- Về năng lực tự chủ và trách nhiệm:

Cẩn thận, tự tìm thêm tài liệu tham khảo, sƣu tầm các mơ hình cơ sở dữ liệu của các
doanh nghiệp để tự học hỏi thêm.
III. Nội dung môn học:


Bài 1: Tổng quan về cơ sở dữ liệu

1

I. HEÄ THỐNG TẬP TIN CỔ ĐIỂN :
1. Thực trạng :
Việc tin học hóa trong các đơn vị kinh tế, hành chánh thường thực hiện độc lập với
nhau về thời gian và nội dung.
Thí dụ : tại 1 trường đại học, phòng Tổ chức đã tổ chức lưu trữ thông tin về tất cả các
CBCNV của trường.
Trong khi đó, ở từng Khoa của trường, do yêu cầu tổ chức giảng dạy và nghiên cứu của
Khoa cũng đã tổ chức lưu trữ hồ sơ của các giáo sư, cán bộ giảng dạy của Khoa mình.
Thông tin lưu trữ một phần được trích ra từ hồ sơ gốc của phòng Đào tạo và có bổ sung
thêm 1 số thông tin cần thiết riêng.
2. Nhận xét :
a) Ưu điểm : không lớn và không đáng kể
a.1. Tính độc lập cao, có thể triển khai song song, nối tiếp hay gối đầu.
a.2. Thời gian triển khai ngắn.
a.3. Không đòi hỏi ngay khả năng đầu tư lớn về vật chất , nhân sự.
a.4. Khả năng đáp ứng nhanh chóng kịp thời (do thông tin được khai thác chỉ phục vụ
cho mục đích hẹp).
b) Khuyết điểm :
b.1. Trùng lắp thông tin nên gây ra :
 Lãng phí :  Cùng 1 thông tin phải nhập nhiều lần.
 Vấn đề bảo trì khi có thay đổi.

 Lưu trữ .
 Thiếu nhất quán của dữ liệu : tại 1 thời điểm, thông tin về 1 cán bộ không nhất
quán.
b.2. Thông tin đã lưu trữ không thể chia sẻ giữa các hệ thống. Vì vậy không có quản
lý giao dịch và xử lý đồng thời giữa nhiều người dùng.
Thí dụ: không thể chia sẻ những thông tin riêng của Khoa cho Phòng Đào tạo.
b.3. Khó mở rộng hệ thống hoặc kết nối các hệ thống.
Thí dụ : cùng 1 người nhưng có thể tồn tại nhiều mã số khác nhau. Các mã số này hoàn
toàn khác nhau về cấu trúc lẫn nội dung của bộ mã.
 Giả sử Phòng đào tạo gán mã số theo dạng AutoNumber.
 Trong khi đó Khoa lại áp dụng mã số dạng : <Tên Học vị> <STT>
b.4. Không có cơ chế phục hồi (phụ thuộc phần lớn vào hệ điều hành).
b.5. Chi phí bảo hành cao.


2

Bài 1: Tổng quan về cơ sở dữ liệu

II. CÔ SỞ DỮ LIỆU :
1. Khái niệm:
Từ những khuyết điểm trên của hệ thống tập tin cổ điển, người ta đưa ra phương pháp
tổ chức dữ liệu mới là Cơ sở dữ liệu.
Khái niệm : Cơ sở dữ liệu có thể được xem là tập hợp có cấu trúc của thông tin, được
lưu trữ trên các thiết bị trữ tin (như băng từ, dóa từ, . . .) để có thể thỏa mãn yêu cầu khai
thác thông tin đồng thời cho nhiều người sử dụng hay nhiều chương trình ứng dụng với
nhiều mục đích khác nhau.
Chương trình
ứng dụng 1
Chương trình

ứng dụng 2
Chương trình
ứng dụng m

CƠ SỞ DỮ LIỆU

Người khai thác
CSDL 1
Người khai thác
CSDL 2
Người khai thác
CSDL n

Hệ thống các chương trình ứng dụng (mỗi ứng dụng được
biểu diễn bởi 1 hình chữ nhật) khai thác CSDL.

b) Ưu điểm của CSDL :
b.1. Về bản thân thông tin lưu trữ :
 Giảm thiểu sự trùng lắp thông tin đến mức thấp nhất, do đó giúp:
 Đảm bảo tính nhất quán.
 Tính toàn vẹn của dữ liệu.
 Đảm bảo dữ liệu có thể được truy xuất theo nhiều cách khác nhau.
 Khả năng chia sẻ thông tin cho nhiều người sử dụng và nhiều ứng dụng khác nhau.
b.2. Về hiệu quả sử dụng thông tin:
 Chia sẻ thông tin cho nhiều người dùng khác nhau.
 Tiết kiệm tài nguyên .
 Tăng hiệu quả khai thác.
c) Những vấn đề nảy sinh :
c.1. Cần xác định rõ trách nhiệm đối với:
 Sự an toàn của dữ liệu.

 Tính chính xác của dữ liệu.
Cụ thể là phải xác định:
 Ai có trách nhiệm cập nhật, chỉnh sửa?
 Những thông tin nào được phép sửa.
Nếu không, có thể sẽ nảy sinh trường hợp : người biết thì không được quyền sửa, người
có quyền sửa thì lại không biết. Sau 1 quá trình sử dụng thông tin lưu trữ trở nên lỗi thời,
không ai còn muốn sử dụng.
c.2. Cần một cơ chế bảo mật hay phân quyền khai thác thông tin của người sử dụng.


Bài 1: Tổng quan về cơ sở dữ liệu

3

Do coù nhiều người được phép khai thác đồng thời nên cần phải có một cơ chế bảo mật
và phân quyền khai thác CSDL.
Hiện nay, cơ chế này có thể được cung cấp bởi các hệ điều hành nhiều người dùng
(multi.users), hệ điều hành mạng cục bộ (Novell Netwarw, Windows for WorkGroup,
WinNT, . . .) hoặc do các hệ quản trị CSDL.
c.3. Giải quyết sự tranh chấp trong truy cập dữ liệu khi có nhiều người dùng cùng truy
cập đến 1 nguồn dữ liệu. Tức là xác định độ ưu tiên truy cập dựa trên:
 Quyền hạn khai thác của từng người sử dụng (ưu tiên cho người có quyền khai
thác cao hơn).
 Đặc tính của sự truy cập (phân loại biến cố, phân loại truy cập).
 Thời điểm truy cập (ai có yêu cầu truy xuất trước thì có quyền truy nhập dữ liệu
trước).
Theo cơ chế lập lịch truy xuất hay các cơ chế khóa, . . .
c.4. CSDL cũng có một chu kỳ sống tương tự như một phần mềm, bao gồm nhiều giai
đoạn phân tích, thiết kế, cài đặt, khai thác, bảo trì. Trong từng giai đoạn đều đòi hỏi
người phân tích . thiết kế có chuyên môn, nhiều kinh nghiệm.

2. Các đối tượng sử dụng CSDL:
 Người sử dụng không chuyên về lónh vực tin học và CSDL : CSDL cần có các công
cụ để những người này có thể sử dụng, khai thác CSDL khi cần thiết.
 Chuyên viên tin học biết khai thác CSDL: những người này có thể xây dựng các ứng
dụng khác nhau phục vụ cho nhiều mục đích khác nhau trên CSDL.
 Người quản trị CSDL: là những người hiểu biết về tin học, về các hệ quản trị CSDL
và hệ thống máy tính. Họ là người tổ chức CSDL (khai báo cấu trúc CSDL, ghi nhận các
yêu cầu bảo mật cho các dữ liệu cần bảo vệ, . . .) do đó họ phải nắm rõ các vấn đề kỹ
thuật về CSDL để có thể phục hồi dữ liệu khi có sự cố. Họ là những người cấp quyền
hạn khai thác CSDL, do vậy họ có thể giải quyết được các vấn đề tranh chấp dữ liệu,
nếu có.
3. Các mức trừu tượng hóa của CSDL: có 3 mức
Thể hiện
a) Vật lý :
Quan niệm
và được lưu trữ như thế nào? ở đâu (đóa từ, băng từ, track, sector . .
Vật lý
. nào)? Cần các chỉ mục gì? Việc truy xuất là tuần tự (Sequential
Access) hay ngẫu nhiên (Random Access) đối với từng loại dữ liệu.
Những người hiểu và làm việc với CSDL tại mức này là người quản trị CSDL
(Administrator), chuyên viên tin học.
b) Quan niệm (mức logic): cho biết :
Tại mức này sẽ giải quyết các câu hỏi:
 CSDL cần phải lưu giữ bao nhiêu loại dữ liệu? Đó là những dữ liệu gì?
 Mối quan hệ giữa các loại dữ liệu này như thế nào?
Từ thế giới thực (Real Universe) các chuyên viên tin học qua quá trình khảo sát và
phân tích, cùng với những người sẽ đảm nhận vai trò quản trị CSDL, sẽ xác định đượ c


Bài 1: Tổng quan về cơ sở dữ liệu


4

những loại thông tin gì được cho là cần thiết phải đưa vào CSDL, đồng thời mô tả rõ mối
liên hệ giữa các thông tin này.
c) Thể hiện (còn gọi là mức ngoài): là mức của người sử dụng và các chương trình ứng
dụng. Làm việc tại mức này có các nhà chuyên môn, các kỹ sư tin học và những người
sừ dụng không chuyên.
Mỗi người sử dụng hay mỗi chương trình ứng dụng có thể được "nhìn" (View) CSDL
theo một góc độ khác nhau. Có thể "nhìn" thấy toàn bộ hay chỉ một phần hoặc chỉ là các
thông tin tổng hợp từ CSDL hiện có. Người sử dụng hay chương trình ứng dụng có thể
hoàn toàn không được biết về cấu trúc tổ chức lưu trữ thông tin trong CSDL, thậm chí
ngay cả tên gọi của các loại dữ liệu hay tên gọi của các thuộc tính. Họ chỉ có thể làm
việc trên một phần CSDL theo cách "nhìn" do người quản trị hay chương trình ứng dụng
quy định, gọi là khung nhìn (View).
4. Hệ quản trị CSDL (Database Management System – DBMS):
a) Nhu cầu :
Để bảo đảm các yêu cầu về bảo mật, cạnh tranh truy xuất, an toàn dữ liệu, . . . cần
thiết phải có những phần mềm chuyên dùng thường được gọi tên là hệ quản trị CSDL.
b) Khái niệm về hệ quản trị CSDL :
 Các hệ quản trị CSDL có nhiệm vụ hổ trợ một cách tích cực cho các nhà phân
tích.thiết kế CSDL và những người khai thác CSDL.
 Các hệ CSDL cũng có cơ chế riêng để giải quyết các vấn đề tranh chấp dữ liệu.
 Có một số hệ CSDL cung cấp cho người sử dụng những cơ chế bảo mật và phục
hồi dữ liệu khi có sự cố xảy ra.
c) Các hệ quản trị CSDL : hiện nay có những hệ quản trị CSDL như : Oracle, SQL
Server, Paradox, MS Access, Visual Foxpro, Foxpro, DB2, Sybase, Paradox, Informix,...
với chất lượng khác nhau.
d) Các tiêu chuẩn để đánh giá một hệ quản trị CSDL:
d.1. Phải có ngôn ngữ mô tả dữ liệu (Data Definition Language . DDL) cho phép :

 Khai báo cấu trúc của dữ liệu.
 Mô tả các mối liên hệ của dữ liệu.
Các ngôn ngữ mô tả này thường được xây dựng dựa trên 1 trong các loại mô hình dữ
liệu sẽ được đề cập ở phần V .
d.2. Phải có ngôn ngữ thao tác dữ liệu (Data Manipulation Language . DML) cho phép
người dùng có thể :
 Cập nhật dữ liệu (thêm, sửa, xóa).
 Khai thác dữ liệu theo nhiều mục đích khác nhau.
d.3. Ngôn ngữ truy vấn dữ liệu, hay ngôn ngữ hỏi đáp có cấu trúc (Structured Query
Language. SQL) cho phép những người khai thác CSDL (chuyên nghiệp hoặc không
chuyên) sử dụng để truy vấn các thông tin cần thiết trong CSDL.
d.4. Ngôn ngữ quản lý dữ liệu (Data Control Language . DCL) cho phép những người
quản trị hệ thống:


5

Bài 1: Tổng quan về cơ sở dữ liệu

 Thay đổi cấu trúc của các bảng dữ liệu.
 Khai báo bảo mật thông tin và cấp quyền hạn khai thác CSDL cho người sử dụng.
 Có biện pháp giải quyết tranh chấp.
d.5. Cho phép phục hồi dữ liệu khi có sự cố (vì do tính tập trung nên khi có sự cố sẽ
ảnh hưởng rất lớn).
III. CÁC MÔ HÌNH DỮ LIỆU :
1. Khái niệm:
 Là sự biểu diễn dữ liệu ở mức quan niệm (sự trừu tượng hóa).
 Mỗi loại mô hình đặc trưng cho một phương pháp tiếp cận dữ liệu của người phân
tích.thiết kế.
2. Phân loại:

a) Mô hình dữ liệu mạng (Network Data Model) :
a.1. Mô hình này còn được gọi tắt là mô hình mạng hoặc mô hình lưới (Network
Model) là mô hình được biểu diễn bởi một đồ thị có hướng. có sử dụng các khái niệm
chính là :
 Loại mẫu tin (Record Type): được đặc trưng cho 1 đối tượng riêng biệt, được ký
hiệu bằng 1 hình chữ nhật. Trong đồ thị biểu diễn mô hình mạng mỗi loại mẫu tin được
biểu diễn bởi một hình chữ nhật.
Thí dụ như : KHOA, SINH VIEN, MON HOC, . . .
 Mẫu tin (Record): là thể hiện của 1 loại mẫu tin (Instance) được gọi là bản ghi.
Thí dụ: loại mẫu tin KHOA có các mẫu tin là thông tin về các Khoa có trong Trường.
 Loại liên hệ (Set Type):
 Là sự liên kết giữa 1 loại mẫu tin chủ và 1 loại mẫu tin thành viên, được ký hiệu bằng
1 hình bầu dục với các mũi tên đi từ loại mẫu tin chủ đến loại mẫu tin thành viên .
1n

11
LÝ LỊCH



1n
PHÒNG
BAN

gồm

NHÂN VIÊN

n1
gồm


có thân
nhân

11
PHÒNG
BAN

 Trong mô hình dữ liệu này có 1 số loại liên hệ sau :
 1:n
: 1 mẫu tin chủ có liên hệ với nhiều mẫu tin thành viên.
 1:1
: 1 mẫu tin chủ có liên hệ với 1 mẫu tin thành viên.
 n:1
: nhiều mẫu tin chủ có liên hệ với 1 mẫu tin thành viên.
 Đệ quy
: (Recursive): Một loại mẫu tin chủ cũng có thể đồng thời là
loại mẫu tin thành viên với chính nó.


6

Bài 1: Tổng quan về cơ sở dữ liệu

a.2. Moâ hình dữ liệu mạng tương đối đơn giản, dễ sử dụng nhưng nó không thích hợp
trong việc biểu diễn các CSDL có quy mô lớn bởi trong một đồ thị có hướng khả năng
diễn đạt ngữ nghóa của dữ liệu, nhất là các dữ liệu và các mối liên hệ phức tạp của dữ
liệu trong thực tế là rất hạn chế.
a.3. Nhận xét về loại mô hình mạng :
 Ưu : tương đối đơn giản, dễ sử dụng.

 Nhược : không thích hợp trong việc biểu diễn các CSDL có quy mô lớn bởi trong một
đồ thị có hướng khả năng diễn đạt ngữ nghóa của dữ liệu, nhất là các dữ liệu và các mối
liên hệ phức tạp của dữ liệu trong thực tế là rất hạn chế.
b. Mô hình dữ liệu quan hệ (Relational data model) :
Nguồn gốc của mô hình cơ sở dữ liệu quan hệ đầu tiên là do tiến só E.F.Codd thiết kế
đã được công bố rộng rãi trên tạp chí vào tháng 7/1970 với bài ‚Mô hình dữ liệu quan
hệ cho các ngân hàng dữ liệu lớn‛.
Mô hình này :
 Sử dụng các khái niệm: thuộc tính (Attribute), quan hệ (Relation), lược đồ quan hệ
(Relation Schema), bộ (Tuple), khóa (Key).
 Hiện được áp dụng rộng rãi trong việc phân tích và thiết kế CSDL vì nó được xây
dựng trên cơ sở lý thuyết rất vững chắc.
Mô hình này sẽ được bàn sâu trong các chương sau.
c. Mô hình thực thể kết hợp (Entity Relationship Model):
c.1. Do P.P.Chen đề xuất vào năm 1976, sau đó vào khoảng năm 1980 được mở rộng
thêm với 1 số dạng đặc biệt của loại thực thể và mối kết hợp như "loại thực thể chuyên
biệt hóa" (Specialized Entity) và "mối kết hợp đệ quy" (Recursive RelationShip).
c.2. Các khái niệm chính trong mô hình này gồm :
 Thực thể : là 1 đối tượng hoặc 1 khái niệm có thể nhận biết 1 cách duy nhất (tương
tự như khái niệm mẫu tin của mô hình dữ liệu mạng và mô hình dữ liệu phân cấp).
Thí dụ: Các record trong các loại thực thể SINHVIEN, KHOA, MONHOC.
Người ta có thể chia thực thể thành 2 loại là:
 Thực thể yếu :
 Là thực thể mà sự tồn tại của nó phụ thuộc vào sự tồn tại của thực thể khác.
Thí dụ :
Thực thể yếu
Chi tiết hóa đơn
Các thân nhân

Thực thể mà nó phụ thuộc

Hóa đơn
Nhân viên

 Ký hiệu : đường viền kẻ đôi.
Thí dụ :

Chi tiết hóa đơn

 Thực thể mạnh :
 Là thực thể mà có 1 hay nhiều thực thể yếu phụ thuộc vào sự tồn tại của nó.
Thí dụ :
Thực thể mạnh
Hóa đơn
Nhân viên

Thực thể yếu phụ thuộc vào nó
Chi tiết hóa đơn
Các thân nhân


7

Bài 1: Tổng quan về cơ sở dữ liệu

 Kyù hiệu : đường viền kẻ đơn.
Hóa đơn

Thí dụ :

 Loại thực thể : là 1 loại đối tượng hoặc khái niệm tồn tại độc lập (tương tự như khái

niệm loại mẫu tin của mô hình dữ liệu mạng và mô hình phân cấp).
Thí dụ :
SINHVIEN, XE, . . .
là cụ thể.
Thời khóa biểu, bán hàng, . . . là khái niệm.
Loại thực thể
Quản lý

Tập
kết hợp

Loại thực thể
Chi nhánh

S1

r1

B1

Các
thuộc
tính

S2

r2

B2


S3

r3

B3

Các
thuộc
tính

 Thuộc tính của loại thực thể: các đặc tính riêng biệt của loại thực thể.
Thí dụ : MaSV trong SinhVien, hoặc Tên Khoa trong Khoa.
 Ký hiệu : bằng hình ellipse. Có thể chia ra:
 Thuộc tính đơn nhất.
 Thuộc tính hợp.
 Thuộc tính đơn trị (nguyên tố).
 Thuộc tính đa trị.
 Thuộc tính dẫn xuất: có được từ việc suy ra từ những thuộc tính khác.
Thí dụ :
Thuộc tính Tongđiem trong loại thực thể ĐIỂM(MaSV, Diem1, Diem2, Diem3,
TongDiem).hay
Thuộc tính Thanhtien trong loại thực thể VATTU(MaVT, SoLuong, DonGia, ThanhTien).
VATTU

ThanhTien

SoLuong
DonGia

MaVT


QuyCách

 Khóa của loại thực thể: là các thuộc tính nhận diện của loại thực thể. Căn cứ vào
các giá trị của các thuộc tính nhận diện này người ta có thể xác định một thực thể duy
nhất của một loại thực thể. Ví dụ, khóa của loại thực thể LỚP.HỌC có thể là Mã.Lớp;
khóa của loại thực thể HỌC.VIÊN có thể là Mã.Học.Viên; . . . Khái niệm này cũng
tương tực như khái niệm khóa (Key) trong mô hình dữ liệu quan hệ.
 Loại của mối kết hợp (Entity Relationship):
 Là sự liên kết giữa 1 loại thực thể mạnh và 1 loại thực thể yếu (tương tự loại liên hệ
của mô hình dữ liệu mạng).


8

Bài 1: Tổng quan về cơ sở dữ liệu

Thí dụ : trong thí dụ về Khoa, Sinh Viên, Môn học thì Thuộc và Kiểm tra là loại của mối
kết hợp.
 Giữa 2 thực thể có nhiều mối kết hợp.
Thí dụ :

Dạy
SINHVIEN

GIAOVIEN
Anh ruột

 Số ngôi của mối kết hợp (Relationship Degree): tổng số loại thực thể tham gia vào
mối kết hợp.

Thí dụ 1: trong thí dụ về KHOA, SINH VIÊN, MÔN HỌC thì số ngôi của mối kết hợp là
2.
Thí dụ 2: có số ngôi của mối kết hợp = 3 như 2 trường hợp sau:
Giáo
Viên

(1,n)

(1,n)

Dạy

Lớp

Đọc giả (1,n

Mượn

(1,n)

(1,n

Sách

(1,n

Môn

Thủ thư


 Thuộc tính của mối kết hợp (Relationship Attribute): một mối kết hợp cũng có thể
có nhiều thuộc tính riêng.
Thí dụ : kết hợp mượn có các thuộc tính là Ngày mượn, Ngày trả.
 Khóa của mối kết hợp: là tổ hợp các khóa của các loại thực thể tham gia vào mối
kết hợp.
Thí dụ 1: Mã Khoa là khóa của mối quan hệ giữa SinhVien và Khoa.
Thí dụ 2: Mã Công trình và STT Hạng mục khóa của mối quan hệ giữa HẠNG MỤC và
THU CHI.
CÔNGTRÌNH
MaCT

HẠNGMỤC

Thuộc
(1,n)

(1,1)

MaCT
SttHM

THUCHI


(1,n)

(1,1)

MaCT
SttHM


 Ràng buộc cấu trúc :
 Các ràng buộc dự phần: là có bắt buộc hay không bắt buộc có ràng buộc giữa 2 loại
thực thể.
 Bản số mỗi nhánh của mối kết hợp: mỗi nhánh của mối kết hợp nối 1 loại thực thể với
mối kết hợp. Bản số của mỗi nhánh là 1 bộ 2 thành phần (mincard . maxcard) là số
lượng tối thiểu. tối đa các thực thể của nhánh đó tham gia vào 1 thể hiện của mối kết
hợp.


9

Bài 1: Tổng quan về cơ sở dữ liệu

Thí dụ : Quan hệ Thuộc có 2 nhánh (1,1) và (1,n).
(1,1)

SinhVien

(1,n)

Khoa

Thuộc

MaSV
HoTen

MaKhoa
TenKhoa


Điểm

(0,n)

MonHoc

Kiểm tra
(0,n)

MaMH
TenMH

 Nhận xét giữa 2 mô hình quan hệ và mô hình thực thể kết hợp:
Mô hình quan hệ:
CSDL theo mối quan hệ

Thực tế

Mô hình thực thể kết hợp:
Thực tế

Thực thể
kết hợp

CSDL theo mối quan hệ

d. Mô hình hướng đối tượng (Object Oriented Data Mode):
d.1. Ra đời từ cuối những năm 80 và đầu những năm 90. Đây là loại mô hình tiên tiến
nhất hiện nay dựa trên cách tiếp cận hướng đối tượng đã quen thuộc trong các phương

pháp lập trình hướng đối tượng.
d.2. Mô hình này sử dụng các khái niệm như lớp (class), sự kế thừa (inheritance), kế
thừa bội (tức là kết thừa từ nhiều lớp cơ sở multi.inheritance).
d.3. Đặc trưng cơ bản của cách tiếp cận này là tính đóng gói (encapsulation), tính đa
hình (polymorphism) và tính tái sử dụng (Reusability).
Lớp là một kiểu dữ liệu có cấu trúc bao gồm các thành phần dữ liệu và các phương
thức xử lý thao tác trên cấu trúc dữ liệu đó. Nó là một kiểu (hay cấu trúc) dữ liệu được
trừu tượng hóa, bởi vì các tác động (còn gọi là các phương thức . method) là để phục vụ
hoặc thao tác trên kiểu dữ liệu này. Dữ liệu và phương thức hòa quyện vào nhau thành
một thể thống nhất: dữ liệu cần có những cách thức xử lý thỏa đáng, và phương thức xử
lý được đưa vào trong kiểu dữ liệu đó là để phục vụ cho các đối tượng có cấu trúc như
thế. Người ta gọi sự thống nhất đó là sự đóng gói.
Thí dụ, trong việc định nghóa phép cộng (+) hai số phức c1 và c2 để cho một số phức
kết quả là: COMPLEX (c1.Real+c2.Real, c1.Image+c2.Image) để người ta có thể sử
dụng phép cộng (+) một cách tự nhiên như việc gán kết quả đó cho biến phức c = c1 + c2,
hoàn toàn tự nhiên và trong sáng hơn rất nhiều so với việc phải viết một thủ tục
Add_COMPLEX (COMPLEX &c1, COMPLEX &c2, COMPLEX &c) để cộng hai số phức


Bài 1: Tổng quan về cơ sở dữ liệu
10

và kết quả được gán vào tham đối thứ 3 của hàm thông qua tham chiếu địa chỉ của biến c
theo cách lập trình hướng thủ tục trước đó. Và, hiển nhiên rằng, cách thức cộng như trên
là chỉ được áp dụng cho các đối tượng số phức.
Tương tự, cũng có thể định nghóa phép toán cộng (+) trong lớp ma trận (MATRIX) để
cộng hai ma trận có cùng bậc. Khi đó giả sử A và B là hai ma trận m * n; Phép gán tổng
hai ma trận A và B cho biến ma trận C có thể được viết: C = A + B rõ ràng là tự nhiên và
dễ hiểu hơn đối với các ứng dụng lớp ma trận so với việc gọi thủ tục Add_MATRIX
(MATRIX &A, MATRIX &B, MATRIX &C, int m, int n) . . .

Phương pháp tiếp cận hướng đối tượng trong mô hình dữ liệu mặc dù còn mới mẻ
nhưng hiện nay đang được nhiều người quan tâm nghiên cứu phát triển và áp dụng. Các
hệ quản trị CSDL hướng đối tượng hiện nay vẫn chưa nhiều, một số còn chưa thuần nhất
(nghóa là việc lập trình là hướng đối tượng nhưng CSDL vẫn chủ yếu dựa trên mô hình
quan hệ).
e. Mô hình dữ liệu phân cấp (Hierachical Data Model):
e.1. Được gọi tắt là mô hình phân cấp (Hierachical Model): Mô hình là một cây
(Tree), trong đó mỗi nút của cây biểu diễn một thực thể, giữa nút con và nút cha được
liên hệ với nhau theo một mối quan hệ xác định.
e.2. Mô hình dữ liệu phân cấp sử dụng các khái niệm sau:
 Loại mẫu tin: giống khái niệm mẫu tin trong mô hình dữ liệu mạng.
 Loại mối liên hệ: Kiểu liên hệ là phân cấp, theo cách:
 Mẫu tin thành viên chỉ đóng vai trò thành viên của một mối liên hệ duy nhất, tức là
nó thuộc một chủ duy nhất. Như vậy, mối liên hệ từ mẫu tin chủ tới các mẫu tin thành
viên là 1n, và từ mẫu tin (hay bản ghi . record) thành viên với mẫu tin chủ là 11.
 Giữa 2 loại mẫu tin chỉ tồn tại 1 mối liên hệ duy nhất.
Thí dụ: Trong cuộc Tổng điều tra dân số, dữ liệu được tổ chức như sau:
 Các dòng là các mẫu tin (hay bản ghi) có độ dài thay đổi.
 Có 6 loại mẫu tin:
 Mẫu tin đặc trưng cho tỉnh, thành phố (thí dụ như Hà nội, Thành phố Hồ Chí Minh, .
. .).
 Mẫu tin đặc trưng cho quận huyện (thí dụ như Quận Ba Đình, Quận I, . . .).
 Mẫu tin đặc trưng cho phường xã (thí dụ như Phường Phạm Ngũ Lão, Phường 1, . .
.).
 Mẫu tin đặc trưng cho địa bàn (thí dụ như khu phố V, Tổ 12, p 3, . . .).
 Mẫu tin đặc trưng cho hộ điều tra.
 Mẫu tin đặc trưng cho nhân khẩu của hộ.
Ở đây rõ ràng là một sự phân cấp trong file CSDL. Một tỉnh thành phố (thì) có nhiều
quận huyện, một quận huyện chỉ thuộc một tỉnh thành duy nhất. Một quận huyện (thì) có
nhiều phường xã và một phường xã chỉ thuộc một quận huyện duy nhất. Mỗi phường xã

được chia thành nhiều địa bàn điều tra, mỗi địa bàn chỉ thuộc một phường xã duy nhaát
v.v. . .


Bài 1: Tổng quan về cơ sở dữ liệu
11

Hình sau mô tả cây phân cấp của mô hình dữ liệu đối với CSDL Tổng điều tra số dân
Toàn quốc.
TOÀN QUỐC

Hà Nội

TP.Hồ Chí Minh

Tỉnh Đồng Nai

Tỉnh . . .

Quận1

Quận 2

Quận Tân Bình

Huyện Củ Chi

P.Bến Thành

P.Phạm Ngũ Lão


P.Cô Giang

P. . . .

Địa bàn 01

Địa bàn 02

Địa bàn 03

Địa bàn N

Hộ Đ.TRA 01

Hộ Đ.TRA 02

Hộ Đ.TRA 03

Hộ Đ.TRA N

Nhân khẩu 01

Nhân khẩu 02

Nhân khẩu 03

Nhân khẩu N



Bài 2: Mơ hình dữ liệu quan hệ

10

I. CÁC KHÁI NIỆM CƠ BẢN :
1. Lược đồ quan hệ (relation schema):
a) Lược đồ quan hệ:
a.1. 1 lược đồ quan hệ thường biểu diễn cho
 Trong thực tế là : 1 thực thể tồn tại khách quan (Sinh viên, Hóa đơn, Hàng hóa,
...).
 Sự trừu tượng hóa (thí dụ: thời khóa biểu, công nợ khách hàng,...).
a.2. Một lược đồ quan hệ được đặc trưng bởi:
 1 tên phân biệt (Q).
 1 tập hợp hữu hạn các thuộc tính (A1, A2, . . .,An) của lược đồ quan hệ đó.
Thí dụ :
Q+ = A1, A2, . . .,An
hoặc có thể được viết gọn lại thành Q(A1, A2, . . .,An).
 Mỗi thuộc tính có một kiểu dữ liệu cơ sở, miền gá trị (domain)
 Bậc của lược đồ quan hệ : là số lượng thuộc tính có trong quan hệ .
 Cardinality : là số lượng các bộ có trong quan hệ. Ký hiệu card.
a.3. Một lược đồ cơ sở dữ liệu T gồm nhiều lược đồ quan hệ con.
b) Các đặc điểm của mô hình quan hệ:
b.1. Thứ tự các thuộc tính trong Q+ là không quan trọng, nhưng cần có 1 thứ tự xác
định để tiện lưu trữ.
b.2 Không có bộ nào trùng nhau.
b.3 Giá trị không biết cũng phải được thể hiện, thường dùng giá trị NULL cho trường
hợp này.
c) Miền giá trị :
 Miền giá trị của các thuộc tính Ai trong lược đồ quan hệ là 1 tập các giá trị nguyên
tố.

 Một giá trị được coi là nguyên tố khi ta chia cắt nó ra ta không thu được 1 giá trị có
ích nào cả.
d) Tân từ của lược đồ quan hệ Q :
 Ký hiệu là || Q||.
 Dùng để mô tả ý nghóa (ngữ nghóa) của lược đồ quan hệ Q.
Thí dụ : KETQUA(MaSV, MaMH, LanThi, Diem)
Tân từ : Mỗi sinh viên có thể dự thi các môn học tối đa 2 lần.
2. Thuộc tính (attribute):
a) Khái niệm và tên gọi :
a.1. Mỗi dữ liệu, mỗi đối tượng được khảo sát đều có những đặc tính riêng biệt gọi là
thuộc tính.
Thí dụ : Mỗi sinh viên có các thuộc tính MaSV, HoTenSV, NgaySinh, ...


Bài 2: Mơ hình dữ liệu quan hệ

11

a.2. Các thuộc tính được phân biệt với nhau thông qua tên của chúng.
a.3. Không có 2 thuộc tính trùng tên nhau trong cùng 1 lược đồ quan hệ.
a.4. Trong các ứng dụng thực tế , ta nên đặt tên của thuộc tính thỏa các điều kiện sau:
 Gợi nhớ.
Thí dụ: nên đặt thuộc tính PhaiNu hơn là Phai khi thuộc tính có kiểu là logic (Yes/No).
 Không quá dài hoặc quá ngắn.
 Không nên đặt trùng 1 tên cho 2 thuộc tính thuộc 2 đối tượng khác nhau.
Thí dụ : 2 table GIANGVIEN và SINHVIEN đều có thuộc tính Tên.
a.5. Từ đây trở đi, khi không cần lưu ý đến ngữ nghóa của tên thuộc tính thì ta quy ước
đặt tên lại cho các thuộc tính như sau:
 Tên của thuộc tính :
Thông thường là các chữ cái đầu tiên (A, B, C, . . .).

Khi cần nhấn mạnh số lượng các thuộc tính sẽ dùng A1,A2,..., An.
 Tên của 1 tập hợp nhiều thuộc tính : các chữ cái cuối cùng(X, Y, Z,. . .)
b) Kiểu dữ liệu của thuộc tính:
b.1. Mỗi thuộc tính phải có 1 kiểu dữ liệu (data type). Kiểu dữ liệu có thể là :
 Vô hướng : rời rạc hoặc liên tục như :
 Chuỗi.
 Số nguyên
 Luận lý
 Số thực.
 Có cấu trúc : thường được định nghóa trên các kiểu dữ liệu kiểu vô hướng.
b.2. Miền giá trị (MGT):
 Là tập hợp các phần tử mà thuộc tính Ai có thể nhận giá trị.
Thí dụ : Thuộc tính PhaiNu chỉ nhận 1 trong 2 giá trị là 0, 1.
 Nếu thuộc tính Aj có kiểu dữ liệu là có cấu trúc :
 Miền giá trị của A là tích Descartes của các miền giá trị thành phần.
Thí dụ : Thuộc tính Aj có kiểu là tọa độ màn hình , ta có :
MGT(Aj) = 0..79 x0..24
 Trong 1 số trường hợp đặc biệt, miền giá trị của 1 thuộc tính A j chỉ là một tập hợp
miền con (thật sự) của tích Descartes của các miền giá trị thành phần.
Thí dụ : TYPE ngay_dl=RECORD
d: 1..31
m: 1..12
y: 0..2000
END;
Nếu 1 thuộc tính Aj có kiểu ngay_dl, ta có :
MGT(B)  1..31 x 1..12 x 0..2000
Nhưng (30.02.1999)  MGT(Aj)
 Miền giá trị của các thuộc tính đều có thể chứa thêm 1 giá trị đặc biệt gọi là gía trị
rỗng (NULL).
 Giá trị NULL tùy theo ngữ cảnh có thể đặc trưng cho một giá trị :

 Không thể xác định.
Thí dụ : trong table NV có thuộc tính Số lần sinh, vậy NV nam sẽ không thể áp dụng.
 Chưa thể xác định ở thời điểm đang xét, nhưng có thể biết được vào 1 thời điểm khác.


12

Bài 2: Mơ hình dữ liệu quan hệ

Thí dụ : trong table NV có thuộc tính TênVợ, nhưng đối với người độc thân thì không thể
biết.
 Giá trị có thể biết nhưng vắng mặt.
Thí dụ : trong table KetQua có thuộc tính Điểm, và mọi người trong lớp đều đã có điểm
nhưng sinh viên A chưa có điểm vì vắng mặt (không dự kiểm tra).
 Không quan tâm.
 Khuyết điểm của gía trị NULL :
 Tốn không gian lưu trữ.
 Nhập nhằng về mặt ngữ nghóa.
 Nên :
 Tránh đặt các thuộc tính có giá trị NULL trong lược đồ quan hệ (nếu có thể được).
 Nếu bắt buộc phải dùng thì phải chắc chắn áp dụng giá trị rỗng trong những trường
hợp ngoại lệ chứ không phải là hầu hết các bộ như thí dụ sau :
Thí dụ : NV(MaNV, TenNV, Phòng Phụ Trách)
trong trường hợp này thuộc tính Phòng Phụ Trách hầu hết là NULL.
3. Bộ (tuple):
 Một bộ là các thông tin của 1 đối tượng thuộc 1 lược đồ quan hệ.
 Chính là 1 dòng có trong lược đồ quan hệ. Thường được gọi là mẫu tin, bản ghi hay
record.
 Trong cùng 1 lược đồ quan hệ:
 Không có 2 bộ giống nhau.

 Thứ tự các bộ không quan trọng.
 Ký hiệu : q
4. Quan hệ (Relation):
a) Khái niệm :
 Lược đồ quan hệ (Q) : là sự trừu tượng hóa ở mức độ cấu trúc của 1 bảng 2 chiều.
 Quan hệ (TQ) : là tình trạng của lược đồ quan hệ và là một bảng đang có chứa các
bộ cụ thể tại 1 thời điểm.
b) Có thể có nhiều Quan hệ được định nghóa trên cùng 1 lược đồ quan hệ.
Thí dụ :ta có 2 quan hệ sau trên cùng 1 lược đồ quan hệ SANPHAM như sau:
TQ1

MaSP
K01
S02

TênSP
Kẽm
Sắt

Đơn giá
700
1100

TQ2

MaSP
K01
S02
T01


TênSP
Kẽm
Sắt
Thép

Đơn giá
700
1100
2700

5. Các loại khóa :
a) Siêu Khóa : (Super Key)
a.1. Siêu khóa là tập hợp con các thuộc tính của Q+ mà nhờ vào chúng ta có cơ sở để
phân biệt 2 bộ khác nhau tùy ý trong cùng 1 quan hệ TQ bất kỳ
a.2. Số lượng siêu khóa trong một lược đồ quan hệ :
 có ít nhất 1 siêu khóa(chính là Q+).
ø có thể có nhiều siêu khóa.


Bài 2: Mơ hình dữ liệu quan hệ

13

Thí dụ:Cho lược đồ quan hệ SINHVIÊN(MaSV,HoSV, TenSV, NgaySinh)
Ta có các siêu khóa sau :
S1 : MaSV
S2 : MaSV, HoSV, TenSV
S3 :  MaSV, NgaySinh
S4 : MaSV, HoSV, TenSV, NgaySinh, SoCMND
S5 : SoCMND

b) Khóa chỉ định : (Candidate Key)
b.1. Mục đích của siêu khóa là để nhận diện 1 bộ trong 1 quan hệ. Nhưng nếu ta dùng
siêu khóa bất kỳ để nhận diện 1 bộ trong 1 quan hệ xét về mặt hiệu quả là không có lợi
do phải tốn chi phí cao cho việc dò tìm.
b.2. Vì vậy, ta cần chọn ra 1 siêu khóa ‚nhỏ nhất‛ (chứa ít thuộc tính nhất và khác
rỗng) rồi gọi nó là khóa chỉ định hay khóa nội. Vậy:
 Khóa chỉ định không bao giờ chứa 1 siêu khóa khác bên trong nó.
 Số lượng siêu khóa luôn >=1. Theo ví dụ trên, ta có 2 khóa chỉ định là : MaSV và
SoCMND.
c) Khóa chính : (Primary Key)
c.1. Trường hợp trong 1 lược đồ quan hệ Q có nhiều khóa chỉ định, khi cài đặt trên 1
hệ quản trị CSDL ta chỉ được chọn 1 trong các khóa chỉ định để tạo chỉ mục chi phối đến
các bộ. Khi đó:
 Khóa chỉ định được chọn sẽ gọi là khóa chính.
 Các khóa chỉ định còn lại gọi là các khóa tương đương.
c.2. Vậy khóa chính chỉ có ý nghóa trong quá trình khai thác CSDL và xét trên phương
diện lý thuyết, khóa chính hoàn toàn không có vai trò gì khác so với các khóa còn lại.
c.3. Trong những phần sau, nếu không có chú thích gì thêm thì các khóa chỉ định sẽ
được gọi tắt là khóa.
d) Thuộc tính khóa – Thuộc tính không khóa :
d.1. Thuộc tính khóa: là các thuộc tính có tham gia vào 1 khóa của quan hệ được gọi
là thuộc tính khóa và khi liệt kê trong 1 lược đồ quan hệ sẽ được gạch dưới và thường
được đặt đầu danh sách các thuộc tính.
d.2. Thuộc tính không khóa: là những thuộc tính không tham gia vào bất ký 1 khóa
nào.
e) Quy ước :
e.1. Trong một bộ của một quan hệ: các thuộc tính khóa không chứa giá trị rỗng (NOT
NULL).
e.2. Không được phép sửa đổi giá trị của thuộc tính khóa. Nếu muốn sửa đổi thuộc
tính khóa, trước tiên ta hủy bộ cũ, sau đó thêm vào bộ mới với khóa đã được sửa đổi và

lấy lại giá trị của các thuộc tính không khóa.
f). Khóa ngoại (Foreign Key) :


Bài 2: Mơ hình dữ liệu quan hệ

14

f.1. Khóa ngoại còn được gọi là ràng buộc toàn vẹn về phụ thuộc tồn tại.
Thí dụ: Xét 2 quan hệ KHOA(MaKhoa, TenKhoa)
SINHVIEN(MaSV, TenSV, MaKH)
Trong quan hệ SinhVien, sự tồn tại của bộ svi=(‚SV03‛, ‚Tran Ty‛,‛CNTT‛) hoàn toàn
phụ thuộc vào sự tồn tại của bộ kj=(‚CNTT‛, ‚Công nghệ thông tin‛).
Khi đó, thuộc tính MaKH của quan hệ SinhVien được gọi là khóa ngoại của quan hệ này
và được ký hiệu:
SINHVIENMaKhoa  KHOAMaKhoa
Lược đồ quan hệ (ldqh) Khoa được gọi là lđqh cha và lđqh SinhVien có chứa khóa chính
của lđqh Khoa nên được gọi là lđqh con.
f.2. Các hình thức của Khóa ngoại:
Giả sử có 2 lđqh Q và R.
 Khóa ngoại tham chiếu: là khóa nội của Q và là thuộc tính không khóa của R.
Thí dụ: KHOA(MaKhoa, TenKhoa)
SINHVIEN(MaSV, TenSV, MaKH)
 Khóa ngoại phân cấp: là khóa nội của Q chứa trong khóa của R.
Thí dụ: SINHVIEN(MaSV, TenSV, MaKH)
KETQUA(MaSV, MaMH, LanThi, DIem)
6. Thao tác trên CSDL quan hệ (Relation):
a) Các loại thao tác :
a.1. Thao tác làm thay đổi dữ liệu (thêm, xóa, sửa).
a.2. Thao tác không làm thay đổi dữ liệu (rút trích, truy vấn).

b) Các cách chính để thực hiện các thao tác trên :
b.1. ‚Ngôn ngữ‛ hình thức:
 Đại số quan hệ (Relational Algebra): cho phép mô tả các cấu trúc truy vấn dưới dạng
một chuỗi các phép toán.
 Phép tính quan hệ (relational Calculus): cho phép mô tả kết quả mong muốn đạt
được.
b.2. Ngôn ngữ thực sự: SQL – ngôn ngữ thao tác CSDL quan hệ chuẩn.
II. CÁC THAO TÁC CƠ SỞ TRÊN CÁC QUAN HỆ :
 Quy ước chung về cách dùng các điều kiện:
 <tên thuộc tính>= <tên thuộc tính> hay <hằng số>.
 Có thể thay vị từ ‚=‛ bởi các vị từ so sánh khác như: , >, <.
 Các điều kiện có thể được liên kết với nhau thông qua ^ (and), v (or),  (not).
 Kết hợp các phép toán đại số qian hệ: có thể chọn 1 trong 2 cách:
 Tạo một biểu thức quan hệ bằng cách lồng các phép toán với nhau.
 p dụng từng phép toán một, sau mỗi lần áp dụng một phép toán sẽ cho ra quan hệ
kết quả.


×