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

Tài liệu Giáo trình về dữ liệu và các mô hình cơ sở dữ liệu docx

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 (547.54 KB, 58 trang )


Giáo Trình
Dữ liệu và các mô hình
cơ sở dữ liệu
1

MỤC LỤC
H C TRÈNH I Ọ 5
CÁC KHÁI NI M C B N V D LI U VÀ CÁC M HÈNH C S D LI UỆ Ơ Ả Ề Ữ Ệ Ễ Ơ Ở Ữ Ệ 5
Nguyễn Đỡnh Hõn 5
Phần này bao gồm cỏc nội dung sau đõy 5
1.1 C C KH I NI M C B N V D LI U V H QTCSDLÁ Á Ệ Ơ Ả Ề Ữ Ệ À Ệ 6
1.1.1 D li uữ ệ 6
1.1.2 File d li uữ ệ 6
1.1.3 C s d li uơ ở ữ ệ 6
1.1.4 nh ngh a h c s d li uĐị ĩ ệ ơ ở ữ ệ 7
1.1.5 S v t lý h c s d li uơ đồ ậ ệ ơ ở ữ ệ 8
1.1.6 H th ng c s d li u m c logicệ ố ơ ở ữ ệ ứ 8
1.1.7 M t s t nh ch t c tr ng c a c s d li uộ ố ớ ấ đặ ư ủ ơ ở ữ ệ 8
Nguyễn Đỡnh Hõn 8
1.2 C C MÁ Ễ HÈNH C S D LI UƠ Ở Ữ Ệ 8
1.2.1 C c kh i ni m c b n xõy d ng m t h th ng th ng tin.ỏ ỏ ệ ơ ả để ự ộ ệ ố ụ 8
1.2.2 C c m h nh d li uỏ ụ ỡ ữ ệ 9
1.3 KH I NI M TO N H C HO MÁ Ệ Á Ọ Á Ễ HÈNH QUAN HỆ 10
1.3.1 Thu c t nh (Attribute)ộ ớ 10
1.3.2 Quan h (Relation)ệ 11
1.3.3 Kh i ni m ph thu c hàm (Function dependency)ỏ ệ ụ ộ 12
1.3.4 Kho (Key)ỏ 12
1.3.5 L c quan h (Relation Schema)ượ đồ ệ 13
1.3.6 Ph p t ch lộ ỏ c quan hượ đồ ệ 14
1.3.7 Bao úng c a t p ph thu c hàmđ ủ ậ ụ ộ 16


1.3.8 H ti n cho ph thu c hàmệ ờ đề ụ ộ 16
1.3.9 C c d ng ph thu c hàmỏ ạ ụ ộ 17
1.4 C C PHÁ ẪP TO N C A NGÁ Ủ ỄN NG THAO T C D LI UỮ Á Ữ Ệ 17
1.4.1 Ph p ch n (Insert)ộ ố 17
1.4.2 Ph p lo i b (Del)ộ ạ ỏ 18
1.4.3 Ph p thay i (Change)ộ đổ 18
1.5 C CH TH C T CH C D LI U V T LÁ Ứ Ổ Ứ Ữ Ệ Ậ Í 18
1.5.1 Gi i thi u c ch th c t ch c d li uớ ệ ỏ ứ ổ ứ ữ ệ 19
1.5.2 M h nh t ch c b nh ngoàiụ ỡ ổ ứ ộ ớ 19
2

1.6 T CH C C C T P C S D LI UỔ Ứ Á Ệ Ơ Ở Ữ Ệ 19
1.6.1 T p b mệ ă 19
1.6.2 T p ch sệ ỉ ố 21
1.6.3 B - Cõy (Balanced tree) 23
H C TRÈNH II Ọ 25
CÁC NG N NG Đ NH NGH A,Ễ Ữ Ị Ĩ 25
VÀ THAO TÁC D LI UỮ Ệ 25
Nguyễn Đỡnh Hõn 25
Phần này bao gồm cỏc nội dung sau đõy 25
2.1 I S QUAN HĐẠ Ố Ệ 26
2.1.1 Gi i thi u v i s quan hớ ệ ề đạ ố ệ 26
2.1.2 Ph p h p (Union)ộ ợ 26
2.1.3 Ph p giao (Intersection)ộ 26
2.1.4 Ph p tr (Deference)ộ ừ 27
2.1.5 T ch c c m r ng (Extended Cartesian Product)ớ Đề ỏ ở ộ 27
2.1.6 Ph p chi u (Projection)ộ ế 28
2.1.7 Ph p ch n (Selection)ộ ọ 28
2.1.8 Ph p k t n i (Join)ộ ế ố 28
2.1.9 Ph p chia (Division)ộ 30

2.1.10 C c v d v t m ki m b ng i s quan hỏ ớ ụ ề ỡ ế ằ đạ ố ệ 31
2.2 NGỄN NG CON D LI U DSL - ALPHAỮ Ữ Ệ 31
2.2.1 Bi u th c ALPHAể ứ 31
2.2.2 Ph p t m ki mộ ỡ ế 32
2.2.3 C c ph p c p nh t d li uỏ ộ ậ ậ ữ ệ 35
2.2.4 C c hàm th vi nỏ ư ệ 36
2.3 NGỄN NG CON D LI U SQLỮ Ữ Ệ 37
2.3.1 Gi i thi u ng n ng SQLớ ệ ụ ữ 37
2.3.2 Thao t c b ngỏ ả 38
2.3.3 Kh i SELECTố 41
M t s tr ng h p v n d ng l nh SELECTộ ố ườ ợ ậ ụ ệ 44
a. Kiểm tra từ điển dữ liệu 44
b. Kết hợp nhiều lệnh SELECT 44
2.3.4. C c m nh c p nh t d li uỏ ệ đề ậ ậ ữ ệ 45
2.3.5 C c m nh v an toàn d li uỏ ệ đề ề ữ ệ 45
3

H C TRÈNH IIIỌ 47
CHU N HOÁ D LI U VÀ ĐI U KHI N AN TOÀN D LI UẨ Ữ Ệ Ề Ể Ữ Ệ 47
Nguyễn Đỡnh Hõn 47
Phần này bao gồm cỏc nội dung sau đõy 47
3.1 CHU N HO QUAN HẨ Á Ệ 48
3.1.1 Gi i thi u chu n hoớ ệ ẩ ỏ 48
3.1.2 C c d ng chu n hoỏ ạ ẩ ỏ 48
BANHANG (I) 49
BANHANG (I.1) 50
MATHANG (I.2) 50
BANHANG (I.1.1) 50
HOADON (I.1.2) 50
NHANVIEN (I.1.1.1) 50

BANHANG (I.1.1.2) 50
3.2 PH N T CH C C C U H IÂ Í Á Â Ỏ 50
3.2.1 Phõn t ch s b v c ph pớ ơ ộ ề ỳ ỏ 51
3.2.2 Phõn t chớ 51
3.2.2.1 Cụng cụ dựng trong phõn tớch cõu hỏi 51
3.2.2.2 Tớnh đỳng đắn của cõu hỏi 52
3.2.2.3 Cỏc cõu hỏi tương đương do truyền ứng 52
3.2.2.4 Cỏc cõu hỏi tương đương do tớnh toàn vẹn 53
3.3 S P X P TH T C C C U H IẮ Ế Ứ Ự Á Â Ỏ 53
3.3.1 Cõy i s quan h (Relational Algebra Tree)đạ ố ệ 53
3.3.2 Lu t bi n i cõy i s quan hậ ế đổ đạ ố ệ 54
3.3.3 C c b c t i u cõy i s quan hỏ ướ ố ư đạ ố ệ 55
3.3.4 S p th t b ng c ch phõn ró c c cõu h i conắ ứ ự ằ ỏ ỏ ỏ 55
3.3.4.1 Tỏch thành cỏc cõu hỏi con 55
3.3.4.2 Thay thế cỏc n_bộ 55
3.4 C C PH NG PH P I U KHI N AN TO N D LI UÁ ƯƠ Á Đ Ề Ể À Ữ Ệ 56
3.4.1 An toàn trong c s d li uơ ở ữ ệ 56
3.4.2 C c i u khi n an toànỏ đ ề ể 56
3.4.2.1 Điều khiển luồng thụng tin 56
3.4.2.2 Điều khiển suy diễn 57
3.4.2.3 Điều khiển truy nhập 57
4

HỌC TRèNH I
CÁC KHÁI NIỆM CƠ BẢN VỀ DỮ LIỆU VÀ CÁC Mễ
HèNH CƠ SỞ DỮ LIỆU
Nguyễn Đỡnh Hõn
Phần này bao gồm cỏc nội dung sau đõy
 Cỏc khỏi niệm cơ bản về dữ liệu và hệ quản trị cơ sở dữ liệu
 Cỏc mụ hỡnh cơ sở dữ liệu

 Khỏi niệm toỏn học hoỏ mụ hỡnh quan hệ
 Cỏc phộp toỏn của ngụn ngữ thao tỏc dữ liệu
 Cỏch thức tổ chức dữ liệu vật lý
 Tổ chức cỏc tệp cơ sở dữ liệu
5

1.1 CÁC KHÁI NIỆM CƠ BẢN VỀ DỮ LIỆU VÀ HỆ QTCSDL
1.1.1 Dữ liệu
Chỳng ta đang sống trong kỷ nguyờn thụng tin. Xu hướng xó hội hoỏ tin học tiếp đến là toàn cầu
hoỏ là xu hướng tất yếu khụng thể đảo ngược. Trong bối cảnh đú việc nắm bắt được cỏc thụng tin
nhanh chúng và chuẩn xỏc là yếu tố tối cần thiết quyết định sự thắng lợi trong quản lý điều hành.
Việc tin học hoỏ xó hội đó dẫn tới nhu cầu quản lý điều hành cụng việc trờn mỏy tớnh điện tử, như
vậy thực chất của cụng tỏc quản lý chớnh là quản lý thụng tin. Mọi thụng tin được quản lý trờn
mỏy tớnh theo bất kỳ phương cỏch gỡ cũng đều phải được thể hiện bằng cỏc dữ liệu ghi trờn một
thiết bị lưu trữ nào đú. Dữ liệu cũng rất phong phỳ cú thể là dữ liệu ở dạng văn bản, õm thanh hay
hỡnh ảnh, … Trong thực tế người ta lưu dữ liệu dưới nhiều dạng khỏc nhau mục đớch chung là đạt
hiệu quả cao trong lưu trữ và khai thỏc.
Như vậy dữ liệu chớnh là thụng tin, chỉ xột ở gúc độ tin học theo nghĩa hẹp thỡ đú chớnh là phần
nội dung của cỏc file.
1.1.2 File dữ liệu
File là một khối thụng tin được lưu trữ trong mỏy tớnh, được đặc trưng bởi tờn gọi. File được xỏc
định duy nhất bởi tờn (bao gồm cả đường dẫn) hoặc số hiệu file. Cú rất nhiều cỏc loại file khỏc
nhau như file ảnh (.BMP, .GIF, .JPG, …), file hệ thống (.SYS), file thực hiện được (.COM, .EXE,
…), file dữ liệu (.DBF, .MDB, .DAT, .DOC, …). Tuy nhiờn ở đõy chỳng ta chỉ xem xột cỏc file dữ
liệu, những file này bao gồm nhiều bản ghi cú cựng cấu trỳc xỏc định (loại bản ghi), đồng thời mỗi
bản ghi được phõn chia thành cỏc trường dữ liệu.
Vớ dụ:
File dữ liệu HOSO.MDB dựng để lưu trữ hồ sơ của tất cả cỏc cỏn bộ cụng nhõn viờn chức của
Trường CĐSPKT I như sau:
Tờn file: HOSO.MDB

MaNV HoTen NgaySinh DiaChi ChucDanh HeSoL
A01 Nguyễn Văn A 22/10/1984 Dõn tiến Nhõn viờn 1.92
A02 Trần Minh Anh 12/12/1983 Dạ trạch Nhõn viờn 1.78
B01 Nguyễn Văn B 12/06/1984 Dõn tiến Trưởng phũng 2.82
B02 Vũ Thị Bảy 02/12/1983 Tõn Dõn Nhõn viờn 1.92
C01 Nguyễn Văn C 27/11/1984 Phựng hưng Nhõn viờn 1.92
… … … … … …
Hỡnh 1.1 File dữ liệu HOSO.MDB
1.1.3 Cơ sở dữ liệu
a. Định nghĩa
6

Khỏi niệm cơ sở dữ liệu được định nghĩa mụ tả như sau: Cơ sở dữ liệu là một tập hợp dữ liệu của
một tổ chức được lưu trữ trờn mỏy tớnh (được nhiều người sử dụng) và việc thực hiện nú được chi
phối bởi một mụ hỡnh dữ liệu. Núi theo nghĩa hẹp một cơ sở dữ liệu là một hệ thống cỏc file dữ liệu,
mỗi file này cú cấu trỳc bản ghi khỏc nhau, nhưng về mặt nội dung cú quan hệ với nhau. Cần lưu ý
là một cơ sở dữ liệu khỏc với một ngõn hàng dữ liệu.
b. Cỏc tiờu chuẩn của một cơ sở dữ liệu
Một cơ sở dữ liệu thụng thường thoả món 5 tiờu chuẩn sau đõy:
• Biểu diễn tốt thế giới thực: một cơ sở dữ liệu phải cú khả năng cung cấp một hỡnh ảnh
trung thực của thế giới thực cho phộp người sử dụng cú được cỏc thụng tin sử dụng tốt và
cập nhật được.
• Khụng dư thừa thụng tin: điều này cú nghĩa là khụng cú sự lặp lại thụng tin trong cơ sở dữ
liệu, mỗi thụng tin chỉ cú mặt một lần trong cơ sở dữ liệu, nhờ đú cú sự lựa chọn duy nhất.
• Tớnh độc lập của cỏc chương trỡnh đối với dữ liệu: điều này tương ứng với sự cần thiết làm
giảm giỏ thành bảo trỡ cỏc chương trỡnh, những thay đổi về cấu trỳc của cơ sở dữ liệu là do
sự thay đổi của thế giới thực chứ khụng phải do một ỏp dụng cụ thể nào cả và nú cho phộp
nhiều ỏp dụng cựng chia sẻ cựng một bộ dữ liệu.
• Tớnh an toàn và bảo mật của dữ liệu: cần cú sự bảo đảm an toàn cho cỏc trang thiết bị lưu
trữ cơ sở dữ liệu chống lại mọi sự huỷ hoại, ngoài ra khi cú nhiều người sử dụng chỉ cú

những người cú trỏch nhiệm mới cú thể truy cập đến toàn bộ hoặc một phần cơ sở dữ liệu.
• Hiệu suất ứng dụng: mặc dự chia sẻ cựng một nguồn chung, cỏc ứng dụng phải cú hiệu suất
trong cơ sở dữ liệu giống như trong sử dụng thụng tin truyền thống.
 Chỳ ý: Năm tiờu chuẩn nờu trờn là yờu cầu đối với một cơ sở dữ liệu được thiết kế hoàn
thiện, trong thực tiễn khụng phải bao giờ cũng thực hiện được đầy đủ, tuỳ từng trường hợp cụ thể
và do những yờu cầu khỏc nhau mà mỗi tiờu chuẩn trờn được tụn trọng hoặc bị vi phạm nhiều ớt
khỏc nhau.
1.1.4 Định nghĩa hệ cơ sở dữ liệu
Như ta đó biết cơ sở dữ liệu là một tập hợp dữ liệu cú liờn quan với nhau được lưu trữ trờn mỏy
tớnh, phần chương trỡnh cho phộp khai thỏc cơ sở dữ liệu này gọi là hệ quản trị cơ sở dữ liệu, núi
cỏch khỏc nú cho phộp mụ tả, lưu giữ, thao tỏc, xử lý cỏc tập hợp dữ liệu tạo nờn cơ sở dữ liệu,
đồng thời nú bảo đảm sự an toàn và bớ mật của cỏc dữ liệu trong mụi trường cú nhiều người sử
dụng.
 Chỳ ý: với mỗi hệ quản trị cơ sở dữ liệu cần thiết phải tồn tại một cơ sở dữ liệu nhưng điều
ngược lại khụng đỳng.
Cỏc hệ quản trị cơ sở dữ liệu cú nhiệm vụ hỗ trợ cho cỏc nhà phõn tớch thiết kế cơ sở dữ liệu cũng
như cho cỏc người khai thỏc cơ sở dữ liệu. Thụng thường một hệ quản trị cơ sở dữ liệu phải đạt
được 5 yờu cầu sau:
7

• Một hệ quản trị cơ sở dữ liệu phải cú ngụn ngữ khai bỏo dữ liệu. Ngụn ngữ khai bỏo dữ
liệu một phương tiện 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ũng như những qui tắc quản lý ỏp đặt lờn trờn dữ liệu đú. Ngụn ngữ khai bỏo dữ liệu
được xõy dựng trờn một loại mụ hỡnh nào đú. Hiện nay phần lớn cỏc hệ QTCSDL được
xõy dựng dựa trờn mụ hỡnh dữ liệu quan hệ
• Một hệ quản trị cơ sở dữ liệu phải cú ngụn ngữ thao tỏc dữ liệu. Ngụn ngữ thao tỏc dữ
liệu cho phộp người sử dụng cú thể cập nhật dữ liệu (thờm, sửa , xoỏ) khai thỏc dữ liệu cho
nhiều mục đớch khỏc nhau
• Một hệ quản trị cơ sở dữ liệu phải cú ngụn ngữ con truy vấn dữ liệu
• Mỗi hệ quản trị cơ sở dữ liệu cũng cú thể được cài đặt một cơ chế riờng để giải quyết vấn đề

tranh chấp dữ liệu
• Một hệ quản trị cơ sở dữ liệu cũn 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.
1.1.5 Sơ đồ vật lý hệ cơ sở dữ liệu
Một cơ sở dữ liệu được phõn thành cỏc mức khỏc nhau, mức thấp nhất là cơ sở dữ liệu vật lý. Cơ
sở dữ liệu vật lý là sự cài đặt cụ thể của cơ sở dữ liệu ở mức khỏi niệm, núi cỏch khỏc chớnh là cỏc
tệp dữ liệu theo một cấu trỳc nào đú được lưu trờn cỏc thiết bị lưu trữ và được thực hiện trờn cỏc
trang thiết bị tin học.
1.1.6 Hệ thống cơ sở dữ liệu mức logic
Mức khỏi niệm là mức biểu thị ý niệm của cấu trỳc mà chỳng ta định mụ hỡnh hoỏ trong cơ sở dữ
liệu. Mục tiờu của mức này là mụ tả nội dung thụng tin của cơ sở dữ liệu chứ khụng phải là mụ tả
cỏc cấu trỳc lưu trữ do việc quản lý thụng tin yờu cầu.
Cấu trỳc mong đợi ở mức này là trỡnh bày cỏch tổ chức, cho một hỡnh ảnh trung thành nhất cú thể
được của cỏc hiện tượng đang tồn tại và phỏt triển ở tổ chức. Cần phải cố gắng mụ tả và thể hiện để
nhận được một tập hợp chặt chẽ cỏc thụng tin sẽ được dựng cho mỗi nhu cầu đặc thự của những
người sử dụng.
Mức cài đặt logic là sự bổ sung của cấu trỳc nhận được ở mức trờn. Cấu trỳc ở mức này sẽ thực tế
hơn, hiệu quả hơn để mụ tả cỏc đường vào cho phộp đi khắp khụng gian cơ sở dữ liệu. Cỏc yếu tố
định lượng như khối lượng, cỏc chu kỳ, cỏc tần số tiếp cận thụng tin được tớnh đến ở mức này.
1.1.7 Một số tớnh chất đặc trưng của cơ sở dữ liệu
Ta xem xột cỏc tiờu chuẩn của một cơ sở dữ liệu đó đưa ra ở trờn.
1.2 CÁC Mễ HèNH CƠ SỞ DỮ LIỆU
1.2.1 Cỏc khỏi niệm cơ bản để xõy dựng một hệ thống thụng tin.
Hệ thống thụng tin là một tập hợp cỏc thụng tin được lưu giữ và tập hợp cỏc xử lý cho phộp xõy
dựng lại một hỡnh ảnh trung thành nhất cú thể được của tổ chức.
8
Nguyễn Đỡnh Hõn

Như vậy, một cơ sở dữ liệu là một bộ phận của hệ thống thụng tin. Tập hợp cỏc xử lý được gọi là
cỏc động thỏi của hệ thống thụng tin.

a. Thực thể
Thế giới nhận biết được chứa cỏc phần tử biểu diễn cỏc đối tượng mà người ta cú thể phõn biệt
chỳng với nhau, cỏc đối tượng này là khụng phõn chia được.
Định nghĩa 1. Thực thể là một hỡnh ảnh tượng trưng cho một đối tượng cụ thể hay một khỏi niệm
trừu tượng nhưng cú mặt trong thế giới thực.
b. Đặc trưng
Định nghĩa 2. Đặc trưng của thực thể là những yếu tố giỳp ta nhận biết thực thể, một thực thể bao
gồm nhiều đặc trưng để phõn biệt nú với cỏc thực thể khỏc.
c. Mối quan hệ giữa cỏc kiểu thực thể
Thế giới thực chịu những sự biến đổi được thể hiện bằng sự tạo ra, sự thay đổi, sự loại bỏ. Tất cả
cỏc thể hiện đú được gọi là sự kiện. Cỏc thực thể cú sự liờn kết với nhau trong khi tham gia vào cỏc
sự kiện của thế giới thực.
1.2.2 Cỏc mụ hỡnh dữ liệu
- Thế hệ đầu tiờn
Từ những năm 70 người ta đó thương mại hoỏ thế hệ đầu tiờn cỏc cơ sở dữ liệu. Thế hệ đầu tiờn
này dựa trờn mụ hỡnh dữ liệu phõn cấp hoặc mụ hỡnh dữ liệu mạng.
Mụ hỡnh dữ liệu phõn cấp đặc trưng bởi cấu trỳc dữ liệu được trỡnh bày dưới dạng phõn cấp cõy
nhiều mức, mỗi một mức bao gồm một hoặc nhiều nhúm dữ liệu và chỳng lại cú thể phõn ra thành
nhiều nhúm dữ liệu hoặc cỏc dữ liệu cơ bản (cỏc lỏ cõy).
Mụ hỡnh dữ liệu mạng đặc trưng bởi cấu trỳc dữ liệu tương ứng với một tổ hợp của nhiều phõn cấp
cõy khỏc nhau. Mỗi một đối tượng của thế giới thực được biểu diễn bởi một phõn cấp, cũn sự liờn
kết giữa cỏc đối tượng được thể hiện bằng cỏc múc nối giữa cỏc phõn cấp này.
- Thế hệ thứ hai
Thế hệ thứ hai của cỏc cơ sở dữ liệu được đặc trưng bởi mụ hỡnh dữ liệu quan hệ và mụ hỡnh dữ
liệu quan hệ thực thể.
Mụ hỡnh dữ liệu quan hệ đặc trưng bởi cấu trỳc dữ liệu được tạo nờn bởi một hệ thống cỏc quan hệ
(biểu diễn dạng bảng), trong đú quan hệ biểu diễn một đối tượng của tổ chức.
Mụ hỡnh dữ liệu quan hệ thực thể cú thể coi như là một loại mụ hỡnh quan hệ, nú tập trung trong
một mụ hỡnh cỏc ưu điểm của mụ hỡnh dữ liệu mạng và mụ hỡnh dữ liệu quan hệ. đúng gúp của
mụ hỡnh này là đưa ra một quan niệm thống nhất giữa cỏc dữ liệu thụng qua sự đi lại dễ dàng cho

phộp trong cơ sở dữ liệu.
- Thế hệ thứ ba
Là cỏc cơ sở dữ liệu hiện nay đang được phỏt triển. Cỏc cơ sở dữ liệu này cho phộp lưu trữ cỏc
thụng tin truyền thống, đồng thời cũng lưu trữ cỏc văn bản, hỡnh ảnh, õm thanh, … mụ hỡnh dữ
liệu đang được nghiờn cứu phỏt triển là mụ hỡnh dữ liệu hướng đối tượng.
9

1.3 KHÁI NIỆM TOÁN HỌC HOÁ Mễ HèNH QUAN HỆ
1.3.1 Thuộc tớnh (Attribute)
Một thuộc tớnh biểu thị một đơn vị thụng tin nhỏ nhất, cú thể được sử dụng tự do và cú ý nghĩa độc
lập với cỏc đơn vị thụng tin khỏc. Trong mọi mụ hỡnh, thuộc tớnh đại diện cho một phần tử cơ sở
của hệ thống thụng tin.
Mỗi đặc trưng của một kiểu thực thể hoặc một kiểu liờn kết dược biểu thị trong hệ thống thụng tin
bằng một thuộc tớnh. Một thuộc tớnh được xỏc định bằng một cặp {Tờn thuộc tớnh, miền giỏ trị}
i) Tờn thuộc tớnh. Để xỏc định một thuộc tớnh, người ta đặt cho nú một cỏi tờn (nờn cú tớnh gợi
nhớ), tờn này được gọi là tờn thuộc tớnh.
Tờn thuộc tớnh là duy nhất cho mỗi thuộc tớnh. Để đảm bảo tớnh duy nhất của tờn thuộc tớnh và
phõn biệt với cỏc tờn thuộc tớnh khỏc, người ta lập ra một từ điển cỏc tờn thuộc tớnh, mỗi tờn
thuộc tớnh là một từ của từ điển đú. Trong chừng mực cú thể, cần loại bỏ tớnh đồng nghĩa hoặc
nhiều nghĩa của từ. Cú thể dựng từ viết tắt để đặt tờn cho thuộc tớnh.
ii) Miền giỏ trị. Mỗi thuộc tớnh đều thuộc một kiểu dữ liệu, kiểu dữ liệu cú thể là vụ hướng hoặc cú
cấu trỳc. Kiểu dữ liệu cú cấu trỳc được định nghĩa dựa trờn cỏc kiểu dữ liệu vụ hướng.
Do ràng buộc toàn vẹn, một thuộc tớnh thường chỉ chọn lấy giỏ trị trong một tập hợp con của kiểu
dữ liệu. Tập hợp cỏc phần tử mà một thuộc tớnh cú thể lấy giỏ trị gọi là miền giỏ trị (domain), núi
cỏch khỏc, miền giỏ trị tà tập hợp cỏc giỏ trị cựng loại cú thể cú của thuộc tớnh.
Núi chung, một giỏ trị của một thuộc tớnh là sự thể hiện trong hệ thống thụng tin một giỏ trị của
một sự kiện của thế giới thực.
Xột tập cỏc thuộc tớnh trong một hệ thống thụng tin, khi giỏ trị của một thuộc tớnh là giỏ trị nhận
được từ cỏc giỏ trị của cỏc thuộc tớnh khỏc thỡ thuộc tớnh này được gọi là thuộc tớnh tớnh toỏn,
trong trường hợp ngược lại thỡ gọi là thuộc tớnh khụng tớnh toỏn. Rừ ràng cỏc giỏ trị của một thuộc

tớnh khụng tớnh toỏn phải được cung cấp từ thế giới thực. Vớ dụ: thuộc tớnh điểm trung bỡnh mụn
(DTB) được tớnh toỏn từ điểm cỏc mụn, điểm cỏc mụn ta phải nhập vào. Do đú DTB là thuộc tớnh
tớnh toỏn, điểm cỏc mụn là thuộc tớnh khụng tớnh toỏn.
 Chỳ ý: Giỏ trị của một thuộc tớnh khụng phải lỳc nào cũng xỏc định được nờn người ta quy
ước: miền giỏ trị của cỏc thuộc tớnh đều cú thể chứa thờm một giỏ trị đặc biệt gọi là giỏ trị rỗng
(null). Giỏ trị rỗng này, tuỳ theo ngữ cảnh, cú thể đặc trưng cho một giỏ trị khụng thể xỏc định
được hoặc được đặc trưng cho một giỏ trị chưa thể xỏc định được ở thời điểm đang xột nhưng cú
thể được biết vào thời điểm khỏc.
iii) Cỏch mụ tả miền giỏ trị của một thuộc tớnh
- Nếu số cỏc phần tử của miền giỏ trị là ớt thỡ liệt kờ tất cả cỏc giỏ trị của cỏc phần tử.
Vớ dụ: {Giới tớnh, (nam, nữ)}, {Màu, (xanh, đỏ, tớm, vàng)}
- Nếu số cỏc phần tử của miền giỏ trị nhiều thỡ dựng cỏch mụ tả tập hợp.
10

Vớ dụ: {Tuổi học sinh, số nguyờn N: N

[6, 18]}
- Nếu số cỏc phần tử của miền giỏ trị rất nhiều hoặc khụng biết trước được mà khụng cú tớnh chất
đặc trưng nào thỡ mụ tả tập hợp đú theo kiểu của dữ liệu.
Vớ dụ: {Họ tờn, chuỗi ký tự cú độ dài nhỏ hơn 50}
- Nếu kiểu dữ liệu của thuộc tớnh cú cấu trỳc thỡ miền giỏ trị của nú là tớch đề cỏc của cỏc miền
giỏ trị thành phần.
Vớ dụ:
Type Toa_do_man_hinh = Record
x: 0 24;
y: 0 79;
End;
{Toa_do_man_hinh, [0 24] x [0 79]}
Tuy nhiờn, cú những trường hợp miền giỏ trị của một thuộc tớnh chỉ là một tập con thực sự của
tớch đề cỏc của cỏc miền giỏ trị thành phần.

Vớ dụ:
Type Ngay_duong_lich = Record
d: 1 31;
y: 1 12;
y: 1 2000;
End;
{Ngay_duong_lich, phần tử

[1 31] x [1 12] x [1 2000]}
1.3.2 Quan hệ (Relation)
Cho R = {a
1
, a
2
, …, a
n
} là một tập hữu hạn và khụng rỗng thuộc tớnh. Mỗi thuộc tớnh a
i
cú miền giỏ
trị
i
a
D
(cỏc miền giỏ trị
i
a
D
khụng nhất thiết phải khỏc biệt nhau). Một quan hệ r trờn R là cỏc bộ
{h
1

, h
2
, …, h
m
} với mỗi h
j
(j = 1, 2, …, m) là một hàm:
h
j
: R 

Ra
a
i
i
D

sao cho h
j
(a
i
)


i
a
D
. Núi cỏch khỏc, một quan hệ r trờn R là tập hợp con của tớch
đề cỏc của n miền giỏ trị
i

a
D
x
2
D
a
x … x
n
a
D
. Giỏ trị n được gọi là bậc của r, giỏ trị m được gọi
là lực lượng của r. Theo định nghĩa, lực lượng của một quan hệ cú thể vụ hạn, nhưng chỉ cú ý nghĩa
sử dụng khi lực lượng của quan hệ là hữu hạn mặc dự nú cú thể rất lớn, vỡ vậy khi xột một quan hệ
ta luụn luụn coi rằng lực lượng của nú là hữu hạn.
Quan hệ r cú thể được biểu diễn dưới dạng bảng:
11

a
1
a
2
… a
n
h
1
h
1
(a
1
) h

1
(a
2
) … h
1
(a
n
)
h
2
h
2
(a
2
) h
2
(a
2
) … h
2
(a
n
)
… … … … …
h
m
h
m
(a
1

) h
m
(a
2
) … h
m
(a
n
)
1.3.3 Khỏi niệm phụ thuộc hàm (Function dependency)
Khỏi niệm về phụ thuộc hàm là một khỏi niệm cú tầm quan trọng rất lớn đối với việc thiết kế CSDL
quan hệ. Năm 1970 khỏi niệm này được E.F.Codd đề cập nhằm giải quyết vấn đề phõn ró cỏc quan
hệ (khi chuẩn hoỏ cỏc quan hệ) mà khụng làm mất thụng tin.
Định nghĩa 1. Phụ thuộc hàm trờn quan hệ
Cho R = {a
1
, a
2
, …, a
n
} là một tập hữu hạn và khụng rỗng thuộc tớnh. r = {h
1
, h
2
, …, h
n
} là một
quan hệ r trờn R, và A, B

R. Khi đú ta núi A xỏc định hàm cho B hay B phụ thuộc hàm vào A

trong r (ký phỏp A
>
r
f
B) nếu và chỉ nếu:
(

h
i
, h
j


r) (

a

A) (

h
i
(a) = h
j
(a))

(

b

B) (


h
i
(b) = h
j
(b)).
Núi cỏch khỏc, tập thuộc tớnh B phụ thuộc hàm vào tập thuộc tớnh A nếu ở mọi thời điểm, sự hiểu
biết một giỏ trị của tập A xỏc định sự hiểu biết một giỏ trị của tập B.
Định nghĩa 2. Phụ thuộc hàm trờn tập cỏc thuộc tớnh
Cho R = {a
1
, a
2
, …, a
n
} là một tập hữu hạn và khụng rỗng thuộc tớnh. Một phụ thuộc hàm trờn tập
cỏc thuộc tớnh R là một dóy ký tự cú dạng A

B với A, B

R.
Ta núi phụ thuộc hàm A

B là đỳng trong quan hệ r nếu A
>
r
f
B, khi đú ta cũng núi rằng r thoả
món A


B.
 Chỳ ý: Ta cú thể viết (A, B) hoặc A

B thay cho A
>
r
f
B nếu khụng sợ nhầm lẫn về mặt
ký phỏp.
1.3.4 Khoỏ (Key)
Định nghĩa Giả sử r là một quan hệ trờn R và K

R. Khi đú K là một khoỏ của r nếu K

R.
Gọi K là một khoỏ tối thiểu của r nếu:
- K là một khoỏ của r
- Bất kỳ một tập con thực sự của K khụng là khoỏ của r.
Cỏc thuộc tớnh tham gia vào một khoỏ được gọi là thuộc tớnh khoỏ, cỏc thuộc tớnh khụng tham gia
vào một khoỏ gọi là thuộc tớnh khụng khoỏ.
12

Từ định nghĩa của quan hệ và định nghĩa của khoỏ dễ thấy rằng một quan hệ luụn luụn cú ớt nhất
một khoỏ (tầm thường nhất là lấy R làm khoỏ), cú thể cú nhiều khoỏ và cú thể cú nhiều khoỏ tối
thiểu.
Từ định nghĩa của khoỏ và định nghĩa phụ thuộc hàm trờn quan hệ ta cú thể chứng minh rằng khoỏ
được dựng làm cơ sở để phõn biệt hai bộ tuỳ ý trong một quan hệ. Núi cỏch khỏc, khoỏ của một
quan hệ r trờn R là tập con K

R thoả món cỏc tớnh chất: Với bất kỳ hai bộ h

i
, h
j


r đều tồn tại
thuộc tớnh a

K sao cho h
i
(a)

h
j
(a) tức là khụng tồn tại hai bộ thuộc r mà cú giỏ trị bằng nhau
trờn mọi thuộc tớnh của K. Do vậy mỗi giỏ trị của khoỏ K là xỏc định duy nhất.
Từ đõy ta thấy ý nghĩa thực tế của khoỏ là dựng để nhận diện một bộ trong một quan hệ, nghĩa là
khi cần tỡm một bộ h
i
nào đú ta chỉ cần biết giỏ trị của cỏc thuộc tớnh khoỏ của h
i
là đủ. Xột về mặt
hiệu quả sử dụng thỡ dựng khoỏ tối thiểu là tốt nhất.
Vớ dụ: xột quan hệ r trờn R = {SCMT, SBD, Họ và tờn, Ngày sinh, Điểm mụn 1, Điểm mụn 2,
Điểm mụn 3} ta thấy quan hệ này ớt nhất cú cỏc khoỏ:
K = {SBD}
K = {SBD, Họ và tờn}
K = {SBD, Họ và tờn, Ngày sinh}
K = {SCMT}
K = { SCMT, Họ và tờn}

K = { SCMT, Họ và tờn, Ngày sinh}
Dễ thấy {SBD} và {SCMT} là cỏc khoỏ tối thiểu.
Trong trường hợp quan hệ cú nhiều khoỏ tối thiểu, khi cài đặt trờn một HQT CSDL người sử dụng
chọn một trong số cỏc khoỏ tối thiểu để làm cơ sở nhận diện một bộ trong quan hệ, khoỏ được chọn
này được gọi là khoỏ chớnh (primary key). Khoỏ chớnh chỉ thật sự cú ý nghĩa trong quỏ trỡnh khai
thỏc CSDL, cũn về phương diện lý thuyết, khoỏ chớnh khụng cú vai trũ gỡ khỏc cỏc khoỏ tối thiểu
cũn lại.
Trong một số HQT CSDL như Access, Oracle, DB2, … cú cài đặt cơ chế tự động kiểm tra tớnh duy
nhất trờn khoỏ chớnh. Vớ dụ, nếu thờm một bộ mới h
n
cú giỏ trị khoỏ chớnh trựng với giỏ trị khoỏ
chớnh của một bộ h
i
đó cú thỡ hệ thống sẽ thụng bỏo lỗi và yờu cầu nhập lại một giỏ trị khỏc.
Để cho thuận tiện trong cỏc phộp xử lý, người ta thường quy ước:
1. Trong một bộ của một quan hệ cỏc thuộc tớnh khoỏ khụng chứa cỏc giỏ trị rỗng.
2. Khụng được phộp sửa đổi giỏ trị của thuộc tớnh khoỏ. Nếu muốn sửa đổi giỏ trị của thuộc tớnh
khúa của một bộ h, người sử dụng phải xoỏ bộ h và sau đú thờm mới một bộ h’ với giỏ trị của
thuộc tớnh khoỏ đó được sửa đổi.
1.3.5 Lược đồ quan hệ (Relation Schema)
Định nghĩa: Một lược đồ quan hệ s (hay một sơ đồ quan hệ) là một cặp <R, F> trong đú R là một
tập hữu hạn và khụng rỗng cỏc thuộc tớnh, F là tập cỏc phụ thuộc hàm trờn R.
 Chỳ ý:
13

1. Cần phõn biệt khỏi niệm quan hệ và lược đồ quan hệ, một quan hệ thuộc vào khụng
gian cơ sở dữ liệu, một lược đồ quan hệ thuộc vào sơ đồ thiết kế.
2. Thứ tự cỏc thuộc tớnh trong R, thứ tự cỏc bộ trong r, thứ tự cỏc phụ thuộc hàm trong F
là khụng quan trọng.
3. Trong một quan hệ khụng được cú 2 bộ bất kỳ tựng nhau.

Vớ dụ: Trong hệ quản trị cơ sở dữ liệu Foxpro mỗi lược đồ quan hệ được đặt tương ứng với
cấu trỳc của một file dữ liệu, cũn quan hệ chớnh là file dữ liệu đú. Mỗi thuộc tớnh ứng với một
trường, mỗi bộ ứng với một bản ghi. Số lượng cỏc bản ghi chớnh là lực lượng của quan hệ.
1.3.6 Phộp tỏch lược đồ quan hệ
Định nghĩa 1: Phộp phõn ró một lược đồ quan hệ s trờn R = {a
1
, a
2
, …, a
n
} là việc thay thế lược đồ
quan hệ s bằng một tập cỏc sơ đồ quan hệ s
1
, s
2
, …, s
k
tương ứng trờn R
1
, R
1
, …, R
k
, trong đú R
i



R, i = 1, 2, …, k và R =


k
i
i
R
1=
, ở đõy khụng đũi hỏi cỏc R
i
phải phõn biệt với nhau. Mục đớch của
phộp phõn ró này là nhằm loai bỏ cỏc dữ liệu dư thừa (redundancy) và loại bỏ cỏc dị thường: khụng
nhất quỏn (inconsistency), dị thường khi thờm bộ (insertion anormalous), dị thường khi xoỏ bộ
(Deletion anormalous) của quan hệ khi thực hiện cỏc phộp cập nhật (sửa, thờm, xoỏ). Vớ dụ xột
quan hệ HANG {Tờn hóng (TH), Địa chỉ (DC), Mặt hàng (MH), Đơn giỏ(DG)} ta sẽ thấy:
a. Dư thừa dữ liệu: khi cú tờn hóng, thỡ lại cú địa chỉ của hóng đú trong quan hệ.
b. Khụng nhất quỏn, là hệ quả của a); giả sử trong quan hệ cú nhiều bộ ghi tờn hóng và
địa chỉ thỡ khi địa chỉ của hóng thay đổi, nếu ta chỉ sửa địa chỉ này trờn một số bộ thỡ
cỏc bộ khỏc vẫn giữ giỏ trị cũ.
c. Dị thường khi thờm bộ: một hóng chưa cung cấp mặt hàng nào thỡ chưa thể thờm bộ
ứng với hóng đú được (khụng đưa được mặt hàng, đơn giỏ vào).
d. Dị thường khi xoỏ bộ: là vấn đề ngược lại của c); nếu bỏ tất cả cỏc mặt hàng trong quan
hệ thỡ tờn hóng và địa chỉ của hóng cũng bị xoỏ theo (nhất là trong trường hợp nhiều
hóng cựng cung cấp một mặt hàng).
Do vậy, vấn đề đặt ra là: cú thể phõn ró quan hệ trờn thành một tập cỏc quan hệ con nhằm trỏnh tất
cả cỏc điều đó núi ở trờn, nhưng khụng bị mất mỏt thụng tin. Ta định nghĩa phộp phõn ró khụng
mất thụng tin như sau:
Định nghĩa 2: Giả sử lược đồ quan hệ s = <R, F> được phõn ró thành cỏc lược đồ quan hệ s
1
, s
2
, …,
s

k
với s
i
= <R
i
, F
i
>, i = 1, 2, …, k. R
i


R, F
i
là chiếu của F trờn R
i
. Khi đú ta núi rằng, phộp phõn ró
trờn là phõn ró khụng mất thụng tin (lossless join decomposition) đối với F nếu với quan hệ:
r =


1
)(
R
r


2
)(
R
r





Rk
r)(
trờn R thoả F.
Thuật toỏn: kiểm tra phộp phõn ró khụng mất thụng tin
Vào: s = <F, R>, phộp phõn ró
ρ
=(s
1
, s
2
, …, s
k
), s
i
= <R
i
, F
i
>
Ra: kết luận phộp phõn ró
ρ
cú phải là khụng mất thụng tin khụng?
14

Thuật toỏn:
- Thiết lập một bảng với n cột và k hàng; hàng i ứng với sơ đồ quan hệ R

i
, cột j ứng với thuộc
tớnh a
j
. Tại ụ (i, j) điền A
j
nếu a
j


R
i
, ngược lại điền ký hiệu b
ij
.
- Bõy giờ xột cỏc phụ thuộc hàm từ F ỏp dụng cho bảng vừa thiết lập được. Giả sử X → Y


F, xột cỏc hàng và nếu cú giỏ trị bằng nhau trờn thuộc tớnh X thỡ làm bằng cỏc giỏ trị của
chỳng trờn thuộc tớnh Y theo cỏch sau: Nếu một giỏ trị là A
j
thỡ chuyển cỏc giỏ trị thành
A
j
, ngược lại thỡ chuyển cỏc giỏ trị thành 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 phụ thuộc hàm đó được ỏp
dụng) cho đến khi khụng cũn ỏp dụng được nữa.
- Cuối cựng, xem xột bảng kết quả: nếu xuất hiện một hàng cú đủ A

1
, A
2
, …, A
n
thỡ phộp
phõn ró khụng mất thụng tin, ngược lại là phộp phõn ró mất thụng tin.
Vớ dụ:
Cho s = <R, F> với R = {a, b, c, d, e, g}, F = {a → b, cd → a, bc → d, ae → g, ce → d},
ρ
= (s
1
, s
2
,
…, s
k
) với: R
1
= {a, b}, R
2
= {a, c, d}, R
3
= {b, c, d}, R
4
= {a, e, g}, R
5
= {c, d, e}. Kiểm tra xem phộp
phõn ró mất thụng tin?
- Lập bảng:

1 a b c d e g
Xột
a → b
2 a b c d e g
s
1
A
1
A
2
b
13
b
14
b
15
b
16
s
1
A
1
A
2
b
13
b
14
b
15

b
16
s
2
A
1
b
22
A
3
A
4
b
25
b
26
s
2
A
1
A
2
A
3
A
4
b
25
b
26

s
3
b
31
A
2
A
3
A
4
b
35
b
36
s
3
b
31
A
2
A
3
A
4
b
35
b
36
s
4

A
1
b
42
b
43
b
44
A
5
A
6
s
4
A
1
A
2
b
43
b
44
A
5
A
6
s
5
b
51

b
52
A
3
A
4
A
5
b
56
s
5
b
51
b
52
A
3
A
4
A
5
b
56
- Xột phụ thuộc hàm cd → a ta cú bảng sau (xột tiếp bc → d bảng khụng thay đổi):
3 a b c d e g
Xột
ae → g
4 a b c d e g
s

1
A
1
A
2
b
13
b
14
b
15
b
16
s
1
A
1
A
2
b
13
b
14
b
15
b
16
s
2
A

1
A
2
A
3
A
4
b
25
b
26
s
2
A
1
A
2
A
3
A
4
b
25
b
26
s
3
A
1
A

2
A
3
A
4
b
35
b
36
s
3
A
1
A
2
A
3
A
4
b
35
b
36
s
4
A
1
A
2
b

43
b
44
A
5
A
6
s
4
A
1
A
2
b
43
b
44
A
5
A
6
s
5
A
1
b
52
A
3
A

4
A
5
b
56
s
5
A
1
b
52
A
3
A
4
A
5
A
6
- Xột phụ thuộc hàm ce → d bảng khụng đổi (quay lại xột a → b ta cú bảng sau):
5 a b c d e g
Bảng
kết quả
6 a b c d e g
15

s
1
A
1

A
2
b
13
b
14
b
15
b
16
s
1
A
1
A
2
b
13
b
14
b
15
b
16
s
2
A
1
A
2

A
3
A
4
b
25
b
26
s
2
A
1
A
2
A
3
A
4
b
25
b
26
s
3
A
1
A
2
A
3

A
4
b
35
b
36
s
3
A
1
A
2
A
3
A
4
b
35
b
36
s
4
A
1
A
2
b
43
b
44

A
5
A
6
s
4
A
1
A
2
b
43
b
44
A
5
A
6
s
5
A
1
A
2
A
3
A
4
A
5

A
6
s
5
A
1
A
2
A
3
A
4
A
5
A
6
- Tiếp tục ỏp dụng cỏc phụ thuộc hàm cd → a, bc → d, ae → g, ce → d cũn lại, bảng (5)
khụng thay đổi. Cuối cựng ta cú bảng kết quả (6). Trong bảng này hàng thứ 5 cú đủ A
1
, A
2
,
…, A
6
nờn ta kết luận phộp phõn ró này khụng mất thụng tin.
1.3.7 Bao đúng của tập phụ thuộc hàm
Định nghĩa Xột lược đồ quan hệ s = <R, F>; A, B

R, A


B là một phụ thuộc hàm. Ta núi rằng
A

B được suy diễn logic từ F nếu quan hệ r trờn R đều thoả món cỏc phụ thuộc hàm của F thỡ
cũng thoả món phụ thuộc hàm A

B.
Gọi tập tất cả cỏc phụ thuộc hàm được suy diễn logic từ F là bao đúng (closure) của F, ký phỏp là
F
+
. Nếu F = F
+
thỡ F được gọi là họ đầy đủ (full family) cỏc phụ thuộc hàm.
1.3.8 Hệ tiờn đề cho phụ thuộc hàm
Để cú thể xỏc định được khoỏ của một quan hệ và cỏc suy diễn lụgic giữa cỏc phụ thuộc hàm cần
thiết phải tớnh được F
+
từ F, điều này đũi hỏi phải cú cỏc quy tắc, muốn vậy phải xõy dựng hệ tiờn
đề cho phụ thuộc hàm.
Cho R là một tập hữu hạn và khụng rỗng cỏc thuộc tớnh, ký phỏp P(R) là tập cỏc tập con của R, giả
sử A, B, C

P(R).
- Tiờn đề 1 (Phản xạ): B

A thỡ A

B
- Tiờn đề 2 (Tăng trưởng): A


B thỡ A

C

B

C
- Tiờn đề 3 (Bắc cầu): A

B và B

C thỡ A

C
Hệ tiờn đề trờn do W.W. Armstrong phỏt biểu đầu tiờn năm 1974 nờn nú cũn được gọi là hệ tiờn đề
Armstrong.

Bài tập: chứng minh hệ tiờn đề Armstrong là đỳng trờn quan hệ r.
Vớ dụ: Cho F = {A

B

C, C

A}, dựng hệ tiờn đề Armstrong chứng minh rằng B

C


A


B

C.
Chứng minh:
1. C

A (giả thiết)
2. C

B

A

B hay B

C

A

B (tăng trưởng của 1. thờm B)
3. A

B

C (giả thiết)
4. A

B


( A

B)

C

(A

B) hay A

B

A

B

C (tăng trưởng 3. thờm A

B)
16

5. B

C

A

B

C (bắc cầu từ 2. và 4.)

Một số tớnh chất của phụ thuộc hàm:
1) Tớnh chất hợp: nếu A

B và A

C thỡ A

B

C
2) Tớnh chất tựa bắc cầu: nếu A

B và B

D

C thỡ A

D

C
3) Tớnh chất tỏch: nếu A

B và C

B thỡ A

C
1.3.9 Cỏc dạng phụ thuộc hàm
i) Phụ thuộc hàm đầy đủ (fully functional dependence)

Định nghĩa: Giả sử r là một quan hệ trờn tập thuộc tớnh R và A, B

P(R), khi đú B được gọi là
phụ thuộc hàm đầy đủ (fully functional dependence) vào A nếu B phụ thuộc hàm vào A, 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 A.
ii) Phụ thuộc hàm bắc cầu
Định nghĩa: Giả sử r là một quan hệ trờn tập thuộc tớnh R và A, C

P(R), khi đú C được gọi là
phụ thuộc hàm bắc cầu vào A trờn R nếu tồn tại B

P(R) sao cho A

B, B

C, nhưng B khụng
xỏc định hàm cho A với C

A

B. Tớnh bắc cầu thể hiện qua sơ đồ sau:
A
B
C
Sơ đồ chỉ ra rằng C cú thể xỏc định hàm cho B, tuy nhiờn nếu khụng thỡ phụ thuộc hàm bắc cầu
theo định nghĩa trờn gọi là phụ thuộc hàm theo nghĩa chặt.
Điều kiện C

A


B là cần thiết vỡ nếu C

B

A thỡ theo tiờn đề phản xạ luụn cú A

B

C, cũn điều kiện B khụng xỏc định hàm cho A để loại bỏ nhiều khoỏ khỏi quan hệ ở dạng chuẩn 3.
1.4 CÁC PHẫP TOÁN CỦA NGễN NGỮ THAO TÁC DỮ LIỆU
Cỏc phộp tớnh cơ bản mà nhờ đú một cơ sở dữ liệu được thay đổi là chốn (insert), loại bỏ (delete),
và thay đổi (change). Trong mụ hỡnh cơ sở dữ liệu quan hệ được nờu trờn, cỏc phộp tớnh này được
ỏp dụng cho từng bộ của cỏc quan hệ lưu trữ trong mỏy.
1.4.1 Phộp chốn (Insert)
Phộp chốn thờm một bộ vào quan hệ r trờn R = {a
1
, a
2
, …, a
n
} cú dạng r= r

t.

Cỳ phỏp: INSERT (r; a
1
= d
1
, a
2

= d
2
, …, a
n
= d
n
)
Trong đú a
i
với i=
n,1
là cỏc tờn thuộc tớnh, d
i


dom(a
i
) là cỏc giỏ trị thuộc miền trị tương ứng
của thuộc tớnh a
i
.
Vớ dụ: Thờm một bộ h
i
= (Fujitsu, F8 fortuna LH, PC, 1200$) vào quan hệ HANG.
17

INSERT( HANG; TH = Fujitsu, DC = F8 fortuna LH, MH = PC, DG = 1200$)
Nếu xem thứ tự cỏc trường là cố định, khi đú cú thể biểu diễn phộp chốn dưới dạng khụng tường
minh như sau:
INSERT (r; d

1
, d
2
, …, d
n
)
Mục đớch của phộp chốn là thờm một bộ phận vào một quan hệ nhất định. Kết quả của phộp tớnh
này cú thể gõy ra một số sai sút bởi những lý do sau:
1. Bộ mới được thờm vào là khụng phự hợp với lược đồ quan hệ cho trước.
2. Một số giỏ trị của một số thuộc tớnh nằm ngoài miền giỏ trị của thuộc tớnh đú.
3. Giỏ trị khoỏ của bộ mới cú thể là giỏ trị đó cú trong quan hệ đang lưu trữ.
1.4.2 Phộp loại bỏ (Del)
Phộp loại bỏ (Del) là phộp xoỏ một bộ ra khỏi một quan hệ cho trước. Giống như phộp chốn, phộp
loại bỏ cú dạng: r = r – t

Cỳ phỏp: DEL (r; a
1
= d
1
, a
2
= d
2
, …, a
n
= d
n
)
hoặc: DEL (r; d
1

, d
2
, …, d
n
)
Vớ dụ: Xoỏ một bộ h
i
= (Fujitsu, F8 fortuna LH, PC, 1200$) trong quan hệ HANG.
DEL ( HANG; Fujitsu, F8 fortuna LH, PC, 1200$)
Tuy nhiờn khụng phải bao giờ cũng cần cung cấp toàn bộ cỏc thụng tin (giỏ trị thuộc tớnh) trong
phộp loại bỏ, trong trường hợp ta biết khoỏ của quan hệ, chẳng hạn K = {b
1
, b
2
, …, b
m
}, thụng
thường m << n, thỡ khi đú phộp loại bỏ chỉ cần viết: DEL (r; b
1
= d
1
, b
2
= d
2
, …, b
m
= d
m
).

1.4.3 Phộp thay đổi (Change)
Ta cú thể dựng hai phộp tớnh trờn để xử lý toàn bộ cỏc thao tỏc trờn CSDL quan hệ, tuy nhiờn đụi
khi người ta chỉ cần thay đổi giỏ trị của một hay một số cỏc thuộc tớnh nhất định, khi đú sử dụng
phộp tớnh thay đổi (CH) là rất cần thiết, nhằm giảm thiểu cỏc thao tỏc cũng như sự nhầm lẫn cú thể
cú. Phộp thay đổi như sau: Gọi tập {c
1
, c
2
, …, c
p
}

{a
1
, a
2
, …, a
n
} là tập cỏc thuộc tớnh của bộ cần
thay đổi giỏ trị, phộp thay đổi cú dạng:

Cỳ phỏp: CH (r; a
1
= d
1
, a
2
= d
2
, …, a

n
= d
n
; c
1
= e
1
, c
2
= e
2
, …, c
n
= e
p
)
Nếu K = {b
1
, b
2
, …, b
m
} là khoỏ của quan hệ khi đú chỉ cần viết: CH (r; b
1
= d
1
, b
2
= d
2

, …, b
m
= d
m
;
c
1
= e
1
, c
2
= e
2
, …, c
n
= e
p
).
Vớ dụ: Cụng ty Fujitsu đó hết hạn thuờ địa chỉ F8 fortuna LH, họ chuyển toàn bộ tổ chức hiện
cú vào HCM city, khi đú ta cú phộp thay đổi sau.
CH (HANG; TH = Fujitsu, DC = F8 fortuna LH, MH = PC, DG = 1200$; DC = Q1 HCM city).
1.5 CÁCH THỨC TỔ CHỨC DỮ LIỆU VẬT Lí
18

1.5.1 Giới thiệu cỏch thức tổ chức dữ liệu
Dữ liệu vật lý là kết quả thể hiện của việc đưa thụng tin vào quản lý trờn mỏy tớnh. Ở mức này cơ
sở dữ liệu vật lý được tổ chức dưới dạng cỏc tệp (file) dữ liệu, bao gồm cỏc bản ghi cú cựng cấu
trỳc xỏc định (loại bản ghi), đồng thời mỗi bản ghi được phõn chia thành cỏc trường dữ liệu ( field
names), mỗi trường chiếm một số xỏc định cỏc bytes và cú kiểu dữ liệu cố định. Cỏc phộp tớnh đặc
trưng trờn cỏc tệp dữ liệu là:

- Thờm một bản ghi
- Xoỏ một bản ghi
- Sửa một bản ghi
- Tỡm một bản ghi theo giỏ trị xỏc định tại một trường hoặc một số trường nào đú.

Chỳ ý: cần thận trọng trong việc xoỏ một bản ghi trong CSDL, thụng thường trong cỏc hệ
quản trị cơ sở dữ liệu người ta luụn cung cấp cơ chế xoỏ hai lần. Lần thứ nhất là xoỏ về mặt logic,
lần thứ hai mới thực sự xoỏ và trong trường hợp này ta khụng khụi phục lại được.
1.5.2 Mụ hỡnh tổ chức bộ nhớ ngoài
Bộ nhớ ngoài hay cũn gọi là bộ nhớ thứ cấp, bộ nhớ ngoài cú thể là bỡa đục lỗ, băng từ, đĩa từ, đĩa
quang, trồng từ … Hiện nay, đĩa từ được sử dụng rất rộng rói, phổ biến và trở thành một phần
khụng thể thiếu được đối với mỏy tớnh điện tử. Do vậy ta chỉ xột việc tổ chức thụng tin trờn đĩa từ
như một vớ dụ chuẩn mực cho mụ hỡnh tổ chức bộ nhớ ngoài.
Đĩa từ được chia thành nhiều rónh (track - được đỏnh số 0,1,2, … từ ngoài vào trong), tập cỏc rónh
cú cựng số thứ tự được gọi là cỏc cylinder, mỗi rónh lại được chia thành nhiều cỏc sector. Cỏc
sector hay cỏc khối vật lý (physical block) cú kớch cỡ như nhau. Mỗi khối chiếm khoảng 512 bytes
đến 4096 bytes và được đỏnh địa chỉ khối. Địa chỉ này được gọi là địa chỉ tuyệt đối của cỏc khối.
Mỗi tệp dữ liệu lưu trờn đĩa từ chiếm một hoặc nhiều khối, mỗi khối chứa một hoặc nhiều bản ghi.
Việc thao tỏc với cỏc tệp dữ liệu sẽ thụng qua tờn tệp và thực chất là thụng qua địa chỉ tuyệt đối của
cỏc khối.
Cỏc bản ghi đều cú địa chỉ và thường được xem là địa chỉ tuyệt đối của byte đầu tiờn của bản ghi
hoặc là địa chỉ của khối chứa bản ghi đú.
Địa chỉ của cỏc bản ghi hoặc cỏc khối được xỏc định thụng qua cỏc chỉ dẫn được gọi là con trỏ
(pointer).
1.6 TỔ CHỨC CÁC TỆP CƠ SỞ DỮ LIỆU
1.6.1 Tệp băm
Trước hết ta xột khỏi niệm hàm băm (Hash function). Nếu mỗi bản ghi đều cú một khoỏ là giỏ trị số
(vớ dụ x), hàm băm h(x) (đối số là x) nhận một giỏ trị trong khoảng [0, k] với k là một giỏ trị
nguyờn dương đủ lớn nào đú (thường lấy k là một số nguyờn tố) khi đú h(x) = i mod k.
19


Tư tưởng cơ bản của tổ chức tệp băm là phõn chia tập cỏc bản ghi của tệp dữ liệu thành cỏc cụm
(Buckets). Mỗi cụm bao gồm một hoặc nhiều khối (block). Mỗi khối chứa một số lượng cố định cỏc
bản ghi.
Mỗi cụm ứng với một địa chỉ băm. Địa chỉ băm được đỏnh số từ 0 đến k-1. ở đầu mỗi khối đều
chứa con trỏ trỏ tới khối tiếp theo trong cụm, khối cuối cựng trong cụm chứa con trỏ rỗng. Cú một
bảng chỉ dẫn cụm (bucket directory) chứa k con trỏ, mỗi con trỏ ứng với một cụm, đú là địa chỉ của
khối đầu tiờn trong cụm.
Hỡnh 1.2
Tổ chức tệp
băm
0
 
Nul
l
1

b
1
b
2
Nul
l

b
3

k-1
  
Nul

l
Bảng chỉ dẫn cụm b
4
b
5
b
6
 Chỳ ý: Nếu bảng chỉ dẫn cú kớch thước nhỏ thỡ cú thể lưu ở bộ nhớ trong, ngược lại phải
lưu ở bộ nhớ ngoài.
Xột cỏc phộp toỏn trờn tệp băm như sau:
- Tỡm kiếm một bản ghi
Giả sử cần tỡm một bản ghi nào đú cú giỏ trị khoỏ là x (chỳ ý rằng trong trường hợp khoỏ cú nhiều
hơn một trường thỡ thứ tự của cỏc trường trong khoỏ phải là cố định). Để tỡm bản ghi cú khoỏ là x,
trước hết tớnh hàm băm h(x). Giả sử h(x) = i, i là địa chỉ băm của cụm thứ i. Trong bảng chỉ dẫn
cụm cho biết con trỏ trỏ tới khối đầu tiờn (nếu cú). Tỡm trong khối này xem liệu cú bản ghi cú khoỏ
x hay khụng, theo con trỏ ở đầu khối tỡm tiếp tới cỏc khối tiếp theo cho tới khi tỡm được bản ghi
mong muốn hoặc tới khối cuối cựng của cụm i mà khụng cú bản ghi đú.
- Thờm một bản ghi
Giả sử cần thờm một bản ghi cú khoỏ là x vào tệp, thủ tục được thực hiện giống như tỡm kiếm một
bản ghi.
- Nếu trong tệp đó cú một bản ghi cú khoỏ trựng với x, chứng tỏ bản ghi mới là sai (vỡ khoỏ
là duy nhất).
- Nếu khụng cú bản ghi trựng khoỏ, bản ghi cú khoỏ x được thờm vào khối đầu tiờn trong
cụm cũn chỗ trống. Nếu khụng cũn chỗ trống nào trong mọi khối của cụm, thỡ phải tạo
thờm một khối mới, con trỏ null của khối cuối cựng được trỏ sang khối mới này. Trong
20

trường hợp này bản ghi mới sẽ là bản ghi đầu tiờn của khối vừa được thiết lập và khối này
trở thành khối cuối cựng.
- Xoỏ một bản ghi

Để xoỏ một bản ghi với khoỏ x, sử dụng thủ tục tỡm bản ghi. Nếu bản ghi thuộc một khối nào đú cú
nhiều bản ghi khỏc, khi đú bản ghi cú khoỏ x được loại bỏ, nếu bản ghi đú là duy nhất trong khối,
khi đú sẽ đồng thời với việc giải phúng khối khỏi cụm chứa khối.
- Sửa một bản ghi
Giả sử cần sửa một hoặc một số trường của một bản ghi cú khoỏ x. Nếu trường cần sửa cú tham gia
trong khoỏ x, việc sửa chữa sẽ là loại bỏ bản ghi này và thờm vào một bản ghi mới cho tệp (vỡ khi
sửa khoỏ thỡ rất cú thể bản ghi sẽ thuộc vào cụm khỏc). Thủ tục thờm, xoỏ giống như trờn. Nếu
trường cần sửa khụng thuộc khoỏ tiến hành sửa cỏc giỏ trị cỏc trường, nếu bản ghi khụng tồn tại,
xem như cú lỗi.
1.6.2 Tệp chỉ số
Một kiểu tổ chức tệp dữ liệu truy nhập khúa rất thường dựng trong CSDL là tệp chỉ số. Để dễ trỡnh
bày, ta giả thiết rằng tệp dữ liệu chớnh luụn luụn là tệp đó được sắp xếp theo khoỏ (vớ dụ theo thứ
tự tăng dần). Khoỏ luụn luụn được quan niệm rằng, bao gồm một hoặc nhiều trường cú thứ tự và cú
độ dài cố định. Giỏ trị của khoỏ cú thể là số, cú thể là một xõu kớ tự. Nếu là một xõu ký tự, việc sắp
xếp là theo A, B, C, … hay thứ tự từ điển. Chẳng hạn x
i
, y
j
là cỏc xõu ký tự, hai xõu x
1
…x
k
< y
1
…y
m
khi và chỉ khi:
1. k < m và x
1
…x

k
= y
1
…y
k
hoặc
2. với i nào đú, i

min (k, m) cú x
1
= y
1
, …, x
i-1
= y
i-1
, x
i
= y
i
.
Để hỗ trợ cho tệp dữ liệu chớnh, cần tạo một tệp chỉ số theo khoỏ được chọn. Tệp chỉ số bao gồm
cỏc cặp (k, d) trong đú k là giỏ trị của khoỏ, d là địa chỉ của khối (hay con trỏ khối). Cỏc cặp này
được sắp xếp theo giỏ trị của khoỏ.
Hỡnh 1.3
Tổ chức
k
1
(k
1

, d
1
), …

k
2
(k
1
, d
1
)

(k
2
, d
2
), …
 
(k
2
, d
2
)
 
 
 
 
(k
n
, d

n
) (k
n
, d
n
), …
Null
k
n
Bảng khối chỉ số Tệp chỉ số Tệp dữ liệu chớnh
Mỗi khối chứa một số lượng bản ghi cố định và được đại diện bởi một cặp (k, d) của khoỏ và địa
chỉ bản ghi đầu tiờn trong bảng khối chỉ số.
21

Xột cỏc phộp toỏn trờn tệp chỉ số như sau:
- Tỡm kiếm một bản ghi
Giả sử cần tỡm một bản ghi nào đú cú giỏ trị khoỏ là x, cú thể cú nhiều cỏch duyệt trong tệp chỉ số.
Phương phỏp tỡm kiếm tuần tự
Duyệt trong tệp chỉ số cỏc cặp (k, d) trong bảng khối chỉ số, so sỏnh giỏ trị x với k; gặp cặp đầu tiờn
(k’, d’) cú k’ > x thỡ dừng. Như vậy giỏ trị x cú thể thuộc khối đứng ngay trước khối (k’, d’), vớ dụ
khối (k
1
, d
1
). Trong khối (k
1
, d
1
) sẽ tỡm tuần tự theo tệp chỉ số cho tới khi gặp giỏ trị k nào đú bằng
x thỡ giỏ trị d tương ứng là địa chỉ của bộ cần tỡm. Nếu khụng cú giỏ trị k nào trong khối (k

1
, d
1
)
bằng với x, xem như bản ghi khụng tồn tại.
Phương phỏp tỡm kiếm nhị phõn
Phương phỏp tỡm kiếm tuần tự núi chung là chậm, thường cú thể sử dụng cỏc phương phỏp khỏc
như phương phỏp nhị phõn (chia đụi), vỡ tệp chỉ số bao giờ cũng được sắp xếp. Giả sử tệp chỉ số
được lưu trữ trờn n khối (b
1
, b
2
, …, b
n
). Để tỡm một bản ghi cú khoỏ x, trước hết chọn khối b
n/2
, so
sỏnh giỏ trị k thuộc khối b
n/2
và x, nếu k > x thỡ bộ cần tỡm nằm ở một trong cỏc khối b
1
, b
2
, …, b
n/2
,
ngược lại trong cỏc khối từ b
n/2+1
, …, b
n

. quỏ trỡnh lặp lại cho đến khi chỉ cũn một khối chứa bản
ghi khoỏ x. Trong khối này tiếp tục tỡm tuần tự trong cỏc cặp (k, d) như phương phỏp tỡm tuần tự.
- Thờm một bản ghi
Muốn thờm một bản ghi mới cú khoỏ là x vào tệp chỉ số, sử dụng thủ tục tỡm kiếm bản ghi như trờn
để xỏc định khối b
i
(i =
n,1
) sẽ chứa bản ghi đú. Nếu trong khối b
i
cũn chỗ thỡ thờm bản ghi này
vào khối đú theo đỳng thứ tự sắp xếp của khoỏ. Việc đặt đỳng vị trớ này đũi hỏi phải chuyển chỗ
cỏc bản ghi đứng sau bản ghi cú khoỏ x trong khối b
i
. Nếu bản ghi khoỏ x là bản ghi đầu tiờn của
khối thỡ phải sửa lại khoỏ k thành x trong bảng chỉ dẫn khối.
Nếu việc thờm bản ghi vào khối b
i
hết chỗ thỡ bản ghi cuối cựng của khối b
i
sẽ chuyển sang làm bản
ghi đầu tiờn của khối b
i+1
, khi đú phải sửa lại giỏ trị (k, d) của khối b
i+1
tương ứng. Nếu bản ghi cú
khoỏ x là bản ghi cuối cựng, tức x lớn hơn mọi khoỏ k trong tệp chỉ dẫn và mọi b
i
đều hết chỗ, khi
đú thiết lập một khối mới b

i+1
, bản ghi khoỏ x sẽ là bản ghi đầu tiờn của khối mới này.
- Xoỏ một bản ghi
Quỏ trỡnh giống như thờm bản ghi, lưu ý nếu khi xoỏ một bản ghi tạo nờn một khối rỗng, khi đú cú
thể loại bỏ cả khối đú.
- Sửa một bản ghi
Sử dụng thủ tục tỡm một bản ghi để xỏc định bản ghi cần sửa.
- Nếu cỏc trường cần sửa khụng phải là trường khoỏ, việc sửa đổi giỏ trị của bản ghi tiến
hành bỡnh thường, giỏ trị của bản ghi sau khi sửa được ghi lại vị trớ cũ.
- Nếu cỏc giỏ trị cỏc trường cần sửa tham gia khoỏ, quỏ trỡnh sửa sẽ là xoỏ và sau đú thờm
mới một bản ghi.
 Chỳ ý: Tệp chỉ số cú thể được cấu trỳc một cỏch đơn giản hơn rất nhiều. Tệp này chỉ gồm hai
trường: khoỏ k, con trỏ d. Mỗi bản ghi của tệp chỉ số tương ứng với một bản ghi của tệp chớnh, cũn
22

con trỏ d là địa chỉ của bản ghi trong tệp chớnh. Trong trường hợp này tệp dữ liệu chớnh khụng
nhất thiết phải được sắp xếp.
1.6.3 B - Cõy (Balanced tree)
Một kiểu tổ chức dữ liệu thường được sử dụng trong cơ sở dữ liệu là tổ chức cõy cõn bằng (B-cõy).
B-cõy được tổ chức theo cấp m, cú cỏc tớnh chất sau đõy:
- Gốc của cõy hoặc là một nỳt lỏ hoặc ớt nhất cú hai con,
- Mỗi nỳt (trừ nỳt gốc và nỳt lỏ) cú từ [m/2] đến m con,
- Mỗi đường đi từ gốc đến bất kỳ lỏ nào đều cú độ dài như nhau.
Hỡnh 3 biểu diễn một cõy phõn cấp 5. Mỗi khối ứng với lỏ chứa tối đa 5 bản ghi. Khối ứng với nỳt
chứa được 5 con trỏ và 4 khoỏ. Cỏc nỳt trong B-cõy thực chất là khối tệp chỉ số. Cỏc khối chỉ số
được phõn theo từng mức, mức càng cao độ chi tiết càng lớn.
Cấu trỳc mỗi nỳt trong B-cõy cú dạng:
(p
0
, k

1
, p
1
, k
2
, …, k
n
, p
n
) với p
i
(i =
n,1
) là con trỏ trỏ tới khối i của nỳt cú k
i
là khoỏ đầu tiờn của
khối đú. Cỏc khoỏ k trong một nỳt được sắp xếp theo thứ tự tăng dần.
- Mọi khoỏ trong cõy con, trỏ bởi con trỏ p
0
đều nhỏ hơn k
1
- Mọi khoỏ trong cõy con, trỏ bởi con trỏ p
i
đều nhỏ hơn k
i+1
. Mọi khoỏ trong cõy con, trỏ
bởi con trỏ p
n
đều lớn hơn k
n

.
Cỏc nỳt lỏ chỉ chứa khoỏ của cỏc bản ghi trong tệp chớnh.
Hỡnh 1.4
Tổ chức
B-cõy

2
 
Null
Nul
l

10

12

Null
     
2 4 6 10 …….
Xột cỏc phộp toỏn trờn B-cõy như sau:
- Tỡm kiếm một bản ghi
Giả sử cần tỡm một bản ghi nào đú cú giỏ trị khoỏ là x, trước hết cần xỏc định đường đi từ nỳt gốc
tới nỳt lỏ cú thể chứa bản ghi này. Muốn vậy liờn tiếp duyệt cỏc nỳt (cỏc nỳt cú dạng (p
0
, k
1
, p
1
, k
2

,
…, k
n
, p
n
)) của B-cõy kể từ nỳt gốc. Tại mỗi nỳt sẽ xỏc định con trỏ đi tới nỳt tiếp theo.
Thủ tục: So sỏnh khoỏ x với cỏc khoỏ k
1
, k
2
, …, k
n
tại nỳt đang xột. Nếu k
i


x <k
i+1
sẽ chọn con trỏ
p
i
để duyệt tiếp nỳt con trỏ từ p
i
tới. Quỏ trỡnh duyệt tiếp tục như trờn. nếu x < k
1
thỡ cú khả năng
tỡm x trong nỳt trỏ p
0
, nếu x


k
n
thỡ tỡm theo nỳt trỏ từ p
n
.
23

Cuối cựng sẽ tới một nỳt lỏ. trong nỳt lỏ tỡm tuần tự bằng cỏch so sỏnh khoỏ x với cỏc giỏ trị khoỏ
trong nỳt lỏ, từ đú sẽ nhận được bản ghi cần tỡm nếu bản ghi đú tồn tại, cũng cú thể khụng tồn tại
bản ghi trong tệp.
- Thờm một bản ghi
Giả sử cần thờm một bản ghi cú khoỏ là x vào tệp B-cõy, trước hết cần xỏc định vị trớ nỳt lỏ sẽ
chứa bản ghi đú. Thủ tục xỏc định nỳt lỏ như thủ tục tỡm kiếm một bản ghi.
Giả sử nỳt lỏ tỡm được là L. Nếu nỳt lỏ L cũn chỗ trống, việc thờm bản ghi mới đỳng vào thứ tự của
khoỏ.
Nếu nỳt L hết chỗ trống, tạo một nỳt lỏ mới L’. Chuyển nửa dữ liệu cuối của L sang L’ rồi bổ sung
bản ghi cú khoỏ x vào vị trớ tương ứng trong L hoặc L’.
Giả sử nỳt L-1 là nỳt ngay trờn nỳt L, khi đú phải thờm cặp (p’, k’) vào L-1, trong đú p’ là con trỏ
trỏ tới lỏ L’ và k’ là khoỏ bộ nhất chứa trong L’. Nếu L-1 đó đủ m con trỏ rồi, việc bổ sung (p’, k’)
vào L-1 dẫn tới việc nỳt l-1 phải tỏch làm 2 như làm với nỳt L. Quỏ trỡnh này cú thể truyền ứng
đến tận nỳt gốc của cõy dọc theo đường đi đó chọn.
- Xoỏ một bản ghi
Giả sử cần loại bỏ bản ghi cú khoỏ x vào B-cõy, trước hết cần xỏc định vị trớ nỳt lỏ sẽ chứa bản ghi
đú. Thủ tục xỏc định nỳt lỏ như thủ tục tỡm kiếm một bản ghi.
Nếu bản ghi cần xoỏ là bản ghi đầu tiờn của nỳt L thỡ phải tỡm tới nỳt p ngay trờn nỳt L để chỉnh
lại giỏ trị khoỏ đầu tiờn của L cú trước đú.
Nếu L lại là nỳt con đầu tiờn của p thỡ khoỏ đầu tiờn của L khụng đặt được ở p, khi đú khụng cần
thiết chỉnh sửa nữa. Tuy nhiờn cú thể khoỏ đầu tiờn đú của p lại xuất hiện ở một nỳt trờn đú. Do
vậy việc tỡm và chỉnh lý khoỏ này vẫn phải tiếp tục ngược lờn cho tới tận gốc như đường đi đó
vạch ra khi dựng thủ tục tỡm kiếm.

Nếu sau khi loại bỏ bản ghi khoỏ x khỏi nỳt L, L trở thành một nỳt rỗng, khi đú cần chỉnh lý lại cặp
(k, p) ứng với L trong nỳt trờn là p để mụ tả lại sự thay đổi xảy ra. Việc thay đổi này cú thể làm nỳt
p cú thể cú ớt hơn [m/2] cặp (k, p) khi đú ta xem xột cỏc nỳt cú hơn [m/2+1] cặp (k, p) sẽ phõn bố
lại cỏc cặp này theo đỳng thứ tự sao cho mỗi nỳt ớt nhất cú [m/2] cặp (k, p). Ngược lại, nếu nỳt bờn
trỏi (hoặc phải) cú đỳng [m/2] cặp, khi đú ghộp p và p’ thành một nỳt mới với 2*[m/2]-1 cặp (k, p)
và chỉnh lại khoỏ và con trỏ ứng với nỳt trờn. Quỏ trỡnh này cú thể truyền ứng ngược lờn tới tận
gốc.
24

HỌC TRèNH II
CÁC NGễN NGỮ ĐỊNH NGHĨA,
VÀ THAO TÁC DỮ LIỆU
Nguyễn Đỡnh Hõn
Phần này bao gồm cỏc nội dung sau đõy
 Đại số quan hệ
 Ngụn ngữ con dữ liệu DSL-ALPHA
 Ngụn ngữ con dữ liệu SQL
25

×