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

co so du lieu www kho sach blogspot com

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 (719.32 KB, 119 trang )

Chơng I: Tổng quan về cơ sở dữ liệu

1. Một số khái niệm
1.1. Cơ sở dữ liệu

Cơ sở dữ liệu (Database, viết tắt l CSDL) l một lĩnh vực nghiên cứu
các mô hình, nguyên lý, phơng pháp tổ chức dữ liệu trên các vật mang tin.

Để dễ dng cho việc giải thích các khái niệm, trớc hết xem xét hệ
thống bán vé máy bay bằng máy tính. Dữ liệu lu trữ trong máy tính bao
gồm thông tin về hnh khách, chuyến bay, đờng bay v...v. Mọi thông tin về
mối quan hệ ny đợc biểu diễn trong máy thông qua việc đặt chỗ của khách
hng. Vậy lm thế no để biểu diễn đợc dữ liệu đó v đảm bảo cho hnh
khách đi đúng chuyến. Dữ liệu nêu trên đợc lu trong máy theo một quy
định no đó v đợc gọi l cơ sở dữ liệu.
Nh vậy, CSDL l tập hợp các thông tin có quan hệ với nhau đợc
lu trữ trong máy tính theo một qui định nhất định nhằm phục vụ cho một
mục đích no đó.
1.2 Hệ quản trị cơ sở dữ liệu (Database Management System- HQTCSDL)

Hệ quản trị cơ sở dữ liệu l hệ thống các chơng trình nhằm tạo lập,
xử lý, thay đổi, quản lý v khai thác các CSDL.

Một số HQTCSDL thông dụng hiện nay: Foxpro, Access, Oracle,..với
các phiên bản khác nhau.

Có hai đặc điểm để phân biệt một HQTCSDL với các hệ thống lập
trình khác:
1)

Khả năng quản lí những dữ liệu cố định.



2)

Khả năng truy xuất có hiệu quả một số lợng lớn dữ liệu.

Điểm (1) khẳng định rằng có một CSDL tồn tại thờng xuyên v nội
dung của CSDL ny l những dữ liệu đợc HQTCSDL truy xuất v quản lí.
Lờ Th Cm Nhung

1




Điểm (2) phân biệt một HQTCSDL với các hệ thống quản lí tập tin cùng
quản lí dữ liệu cố định nhng nói chung không cho phép truy xuất nhanh
chóng các thnh phần tuỳ ý của dữ liệu. Ngoi ra còn có một số khả năng
khác thờng gặp trong các HQTCSDL trên thị trờng.
3) HQTCSDL hỗ trợ ít nhất một mô hình dữ liệu nhờ đó ngời sử
dụng có thể xem đợc dữ liệu.
4) HQTCSDL hỗ trợ một số ngôn ngữ bậc cao cho phép ngời sử
dụng định nghĩa các câu trúc dữ liệu, truy xuất dữ liệu và thao tác dữ liệu.
5) HQTCSDL quản lí các giao dịch, nghĩa là cho phép nhiều ngời
sử dụng truy xuất đồng thời và chính xác đến một CSDL.
6) HQTCSDL điều khiển quá trình truy xuất, là khả năng giới hạn
các quá trình truy xuất dữ liệu của những ngời không đợc phép và khả
năng kiểm tra độ tin cậy của dữ liệu.
7) HQTCSDL có khả năng tự thích ứng là khả năng phục hồi lại
dữ liệu do sự cố của hệ thống mà làm mất dữ liệu.
2. Các mô hình dữ liệu

Mô hình CSDL( Database Model )
Mô hình CSDL l một hệ hình thức toán học gồm có hai phần:
1) Một hệ thống ký hiệu để mô tả dữ liệu.
2) Một tập hợp các phép toán thao tác trên dữ liệu đó.
Một số mô hình CSDL thông dụng
2.1. Mô hình mạng
Khái niệm: Mô hình mạng l một mô hình sơ đồ thực thể liên kết vi
tất cả các liên kết đợc hạn chế l liên kết hai ngôi nhiều một. Hn ch
n y cho phép chúng ta s dng th có hng n gin biu din d
liu trong mô hình n y. Trong mô hình mng, các tp thc th c chuyn

Lờ Th Cm Nhung

2




th nh các kiu bn ghi logic. Các kiu bn ghi logic bao gm mt tp các
trng, mi trờng chứa giá trị l một số nguyên hay một xâu ký tự Tập
tên các trờng v các kiểu của chúng cấu th nh quy cách bản ghi logic.
2.2. Mô hình phân cấp
Một mô hình phân cấp đơn giản l một mô hình mạng m l một
rừng (tập các cây) trong có tất cả các móc nối trỏ theo hớng từ con đến
cha. Chúng ta sẽ tiếp tục sử dụng các thuật ngữ của mô hình mạng: kiểu bản
ghi logic khi chúng ta nói về mô hình phân cấp.
2.3. Mô hình quan hệ : L mô hình dựa vo ký hiệu l tập các tên v cơ sở
toán học của nó l các phép toán tập hợp v ánh xạ. Nó l mô hình phổ biến
hiện nay. Tập các phép toán trong mô hình ny dựa trên hai hệ ký hiệu: hệ
ký hiệu đại số v hệ ký hiệu logic.

2.4. Mô hình thực thể liên kết : L mô hình cho phép mô tả các thực thể
thông qua các thuộc tính v mối liên hệ giữa các thực thể. Một trong các
cách biểu thị mô hình thực thể l dùng đồ thị, sơ đồ khối.
Mục đích của mô hình thực thể- liên hệ l cho phép mô tả lợc đồ khái niệm
của một tổ chức m không cần chú ý đến tính hiệu quả hoặc thiết kế CSDL
vật lý đợc mong đợi nh ở phần lớn các mô hình khác. Ngời ta thừa nhận
rằng Sơ đồ thực thể liên kết ( Entity Relationship Diagram) có thể
chuyển về lợc đồ khái niệm ở các mô hình khác (ví dụ mô hình quan hệ) m
trên đó các hệ thống CSDL thực sự đợc xây dựng một cách khá đơn giản.
2.4.1 Thực thể
Thuật ngữ thực thể (Entity) không có một định nghĩa hình thức. Thực
thể l một sự vật tồn tại v phân biệt đợc, nghĩa l có thể phân biệt đợc
thực thể ny với thực thể khác. Ví dụ mỗi con ngời l một thực thể, mỗi
chiếc xe máy l một thực thể. Khái niệm về Tính phân biệt đợc rất gần
với đặc tính nhận dạng đối tợng vì thế mô hình thực thể liên hệ đợc
xem nh l mô hình hớng đối tợng.

Lờ Th Cm Nhung

3




2.4.2. Tập thực thể
Một nhóm bao gồm tất cả các thực thể tơng tự tạo ra một tập thực
thể.
Ví dụ 1.4: Các tập thực thể
+ Tất cả mọi ngời trong một cơ quan.
+ Tất cả mọi ngời có tóc đỏ.

+ Tất cả mọi xe gắn máy.
Một trong các bớc mấu chốt để chọn một lợc đồ cho thế giới thực
khi nó thuộc về một CSDL cụ thể l lựa chọn các tập thực thể. Khái niệm tập
thực thể l một khái niệm ở mức lợc đồ. Khái niệm ở mức thể hiện tơng
ứng l tập con hiện hnh của tất cả các phần tử của một tập thực thể cho
trớc đang hiện diện trong CSDL.
2.4.3. Thuộc tính và khoá
+ Thuộc tính: Các đặc tính của tập thực thể gọi l các thuộc tính. Mỗi thuộc
tính của tập thực thể lấy giá trị trên một miền dnh cho thuộc tính đó.
Thờng thì miền giá trị đối với mỗi thuộc tính l một tập số nguyên, tập các
số thực hoặc chuỗi ký tự nhng cũng không loại trừ các kiểu giá trị khác.
Thí dụ một tập thực thể con ngời có thể khai báo có các thuộc tính nh họ
v tên (chuỗi ký tự), chiều cao (số thực), ngy sinh (ngy tháng năm),...
Chọn thuộc tính thích hợp cho các tập thực thể l một bớc quan trọng trong
việc thiết kế lợc đồ CSDL khái niệm.
+ Khóa: Mỗi thuộc tính hoặc một tập các thuộc tính dùng để xác định một
cách duy nhất mỗi thực thể trong một tập thực thể gọi l khóa đối với tập
thực thể đó. Về nguyên tắc, mỗi thực thể có một khóa, bởi vì mỗi thực thể
đều có thể phân biệt đợc với thực thể khác. Nếu không chọn đợc một tập
các thuộc tính có chứa một khóa cho một tập thực thể thì không có khả năng

Lờ Th Cm Nhung

4




phân biệt đợc thực thể ny với thực thể kia trong tập thực thể đó. Trong
trờng hợp ny thì các số đếm thờng đợc gán lm thuộc tính khóa.

Ví dụ 1.5: Một tập thực thể chỉ bao gồm các công dân Việt Nam có thể dùng
thuộc tính Số chứng minh th (IDNO) lm khoá. Tuy nhiên, nếu muốn
xác định một cách duy nhất các công dân của nhiều quốc gia thì không thể
đảm bảo đợc hai quốc gia sẽ không dùng hai số chứng minh th giống
nhau. Vì vậy, một khoá thích hợp phải gồm một cặp thuộc tính IDNO v
COUNTRY (nớc).
2.4.4. Mối liên hệ
Mối liên hệ (Relationship) giữa các tập thực thể l một danh sách có
thứ tự của các tập thực thể. Một tập thực thể đặc biệt có thể xuất hiện nhiều
lần trong danh sách. Danh sách các tập thực thể ny l một khái niệm ở mức
lợc đồ của một mối liên hệ. Nếu có một mối liên hệ R giữa các tập thực
thể E1, E2, E3, ..., EK thì thể hiện của R l một tập các k bộ, một tập nh
thế đợc gọi l một tập liên hệ. Mỗi k bộ (e1,. .., ek) trong tập liên hệ R
khảng định rằng các thực thể e1, e2, ,ek trong đó ei Ei ; i =1,

, k liên kết

với nhau thnh một nhóm trong mối liên hệ R. Trờng hợp thông dụng nhất
l k =2.
Ví dụ 1.7: Có một tập thực thể PERSONS có mối liên hệ MOTHER_OF v
danh sách các thực thể của nó l PERSONS, PERSONS. Tập liên hệ tơng
ứng với mối liên hệ MOTHER_OF gồm tất cả những cặp (P1, P2) sao cho cá
thể P2 l mẹ cá thể P1.
Một cách khác để biểu diễn thông tin ny l thừa nhận tồn tại tập thực
thể MOTHERS v mối liên hệ MOTHERS isa PERSONS. Do vậy mối liên
hệ MOTHER_OF l danh sách các tập PERSONS, MOTHERS

Lờ Th Cm Nhung

5





2.4.5. Thuộc tính khoá vay mợn
Trong mối liên hệ ISA nếu A isa B thì đơng nhiên khoá của A sẽ l
khoá của B v những thuộc tính ny không xuất hiện nh thuộc tính của tập
A m vay mợn của tập B.
Ví dụ 1.8: (Trong ví dụ 1.6) Khoá của tập DANGVIEN sẽ l thuộc tính
MANV của NHANVIEN. Vì vậy, một Đảng viên đợc xác định một cách
duy nhất nhờ vo MaNV của NHANVIEN.
Nhiều khi thuộc tính khoá của tập thực thể A l một thuộc tính của tập
thực thể B nhờ mối liên hệ R không phải ISA. Điều ny cần thiết để cung cấp
cho mỗi thực thể a trong A một thực thể b trong B.
Ví dụ 1.9: Chẳng hạn, (trong ví dụ 1.5) mỗi công dân đều có thuộc tính
Country v cùng với IDNO để tạo ra một khoá cho mỗi công dân điều đó có
nghĩa l việc thiết kế CSDL đã xem các quốc gia nh một kiểu thực thể khác
v có một mối liên hệ Country_of liên kết giữa các công dân với các quốc
gia. Vì vậy, các công dân đã phải mợn thuộc tính Country để cùng với
IDNo lm khoá. Trong các ví dụ trên thuộc tính MANV, Country l các
thuộc tính khoá vay mợn.
2.4.6. Sơ đồ thực thể liên kết
Qui ớc:
a. Các hình chữ nhật biểu diễn các tập thực thể.
b. Các vòng tròn hoặc elíp biểu diễn các thuộc tính. Chúng đợc liên kết
với các tập thực thể bằng các cạnh ( vô hớng). Các thuộc tính l các
thnh phần của một khóa cho một tập thực thể sẽ đợc gạch dới.
Trờng hợp đặc biệt nếu một tập thực thể chỉ có một thuộc tính thì có
thể gọi tập thực thể đó bằng tên thuộc tính của tập. Khi đó tập thực thể
sẽ l một vòng tròn chứ không phải l hình chữ nhật v nó gắn kết với

các mối liên hệ m tập đó hm chứa.
Lờ Th Cm Nhung

6




c. Các hình thoi biểu diễn các mối liên hệ. Chúng đợc liên kết với các
các tập thnh viên bởi các cạnh vô hớng hoặc có hớng (các cung).
Ví dụ 1.10: Giả sử ta có 3 tập thực thể EMPS (Nhân viên) có các thuộc tính
Location

Salary

EMPS

DEPTS

ASSIGNED_TO

DNAME

ENO

ENAME
DNO
MANAGES
S


ENO
Hình 2.1: Ví dụ sơ đồ thực thể - liên kết.

ENO, EName, Salary ( ENO l khoá), DEPTS (Phòng) có các thuộc tính
DNO, DName, Location (DnO l khoá), MANAGERS (Trởng phòng) có
duy nhất thuộc tính ENO (ENO l khoá). Hai tập đầu liên kết nhờ mối liên
hệ ASSIGNED_TO (thuộc phòng) v hai tập sau nhờ liên hệ MANAGES
(quản lí).

Lờ Th Cm Nhung

7




2.4.7.Tính chất hàm của mối liên hệ
Để mô hình hóa đầy đủ thế giới thực cần phải phân loại các mối liên
hệ theo số lợng các thực thể từ mỗi tập tham gia vo trong mối liên hệ.
a) Mối liên hệ một một
Một mối liên hệ một - một (one to one ralationship) l một mối liên hệ
m với mỗi thực thể trong một tập thực thể ny chỉ có nhiều nhất một phần tử
đợc liên kết trong tập thực thể kia.
Ví dụ 1.11: Mối liên hệ MANAGES giữa depts v MANAGER trong ví dụ
trên đợc khai báo l mối liên hệ một - một. Nếu nh vậy trong CSDL không
bao giờ tìm đợc nhiều trởng phòng cho một phòng v cũng không có ngời
no quản lý nhiều phòng. Có thể l tại một thời điểm một phòng no đó
không có trởng phòng, thậm chí cũng có thể có ngời có tên trong danh
sách trởng phòng lại không quản lý một phòng no cả. Tính một- một của
mối liên hệ ny chỉ l một giả thiết về thế giới thực. Vì vậy, ngời thiết kế

CSDL có thể tuỳ ý chọn lựa. Vẫn có thể cho rằng một ngời lãnh đạo 2
phòng thậm chí 1 phòng có 2 trởng phòng khi đó mối quan hệ trên l nhiều
- nhiều. Tuy nhiên nếu cho MANAGES l mối liên hệ một - một sẽ có ích
hơn khi thiết kế CSDL vật lý.
b) Mối liên hệ nhiều một
Một mối liên hệ giữa các tập thực thể E1 v E2 đợc gọi l mối liên hệ
nhiều một (many - one relationship) nếu mỗi thực thể trong tập E2 có thể
không liên kết với thực thể no hoặc liên kết với một hay nhiều thực thể
trong tập E1, nhng mỗi thực thể trong tập thực thể E1 chỉ liên kết nhiều nhất
với một thực thể trong tập thực thể E2.
Ví dụ 1.12: Mối liên hệ ASSGNED_TO giữa EMPS v DEPS ở ví dụ trên l
mối liên hệ nhiều-một, có nghĩa l mỗi nhân viên chỉ lm việc trong một
phòng, một vi nhân viên nh giám đốc chẳng hạn không gán cho một phòng
no cả v một phòng có nhiều nhân viên.

Lờ Th Cm Nhung

8




Khái niệm liên hệ nhiều - một tổng quát hóa thnh mối liên hệ giữa ba
tập trở lên. Nếu có một mối liên hệ R giữa các tập E1, E2,..., Ek v với các
thực thể trong tất cả các tập thực thể trừ Ei chỉ có nhiều nhất một thực thể
của Ei có liên hệ với chúng thì ta gọi R l mối liên hệ nhiều một từ E1, E2,
..., Ek (trừ Ei) đến Ei.
c) Mối liên hệ nhiều nhiều
Chúng ta cũng gặp mối liên hệ nhiều nhiều, ở đó không có môt hạn
chế no trên tập k bộ của các thực thể khi xuất hiện trong tập liên hệ.

Một mối liên nhiều - nhiều (many-many relationship) l một mối liên hệ
m với mỗi thực thể trong một tập thực thể ny có thể không liên kết với thực
thể no hoặc liên kết với một hay nhiều thực thể trong tập thực thể kia.
Ví dụ 1.13: Mối liên hệ SUPPLIES giữa tập thực thể SUPPLIERS gồm các
thuộc tính SNO, SNAME, SADDR v tập thực thể PRODUCTS gồm các
thuộc tính PNO, PNAME, COLOR, WEIGHT l mối liên hệ nhiều - nhiều.
Trong thực hnh các mối liên hệ nhiều - nhiều thờng hay gặp nên phải
cẩn thận trong cách diễn đạt những mối liên hệ ny trong lợc đồ khái niệm
của CSDL thực sự (thiết kế thực thể - liên hệ không phải l lợc đồ khái
niệm, đúng hơn chỉ l bảng phác thảo v cần chuyển đổi các tập thực thể v
các mối liên hệ về mô hình dữ liệu m DBMS hỗ trợ). Nhiều mô hình dữ liệu
không cho phép biểu diễn trực tiếp các mối liên hệ nhiều - nhiều, yêu cầu
phải phân chúng ra thnh các mối liên hệ nhiều - một.
2.5. Mô hình hớng đối tợng : L mô hình cung cấp đặc tính nhận dạng
đối tợng. Trong đó mỗi lớp đối tợng đợc đặc trng bởi hai yếu tố:
a) Tập các thuộc tính (properties) để nhận dạng đối tợng.
b) Tập các phơng thức (methods) để thao tác với đối tợng.

Lờ Th Cm Nhung

9




Câu hỏi và bài tập chơng 1
1.1 Nêu khái niệm về CSDL.
1.2 Nêu khái niệm HQTCSDL, phân biệt nó với các hệ thống lập trình khác.
1.3 Nêu kiến trúc một hệ CSDL v phân biệt các mức của nó.
1.4 Nêu khái niệm lợc đồ v thể hiện, cho ví dụ.

1.5 Nêu khái niệm mô hình dữ liệu.
1.6 Nêu các khái niệm thực thể v tập thực thể. Cho ví dụ.
1.7 Nêu các khái niệm khoá của tập thực thể v cho ví dụ.
1.8 Nêu các mối liên hệ giữa các tập thực thể v cho ví dụ.

Chơng II: Mô hình cơ sở dữ liệu quan hệ
1.Các khái niệm cơ bản
1.1.Thuộc tính(Attribute):
Thuộc tính l một tính chất riêng biệt của một đối tợng cần đợc lu trữ
trong CSDL để phục vụ cho việc khai thác dữ liệu về đối tợng.
Ví dụ 1.1:
Đối tợng KHOA ( tơng ứng với loại thực thể KHOA trong mô hình
thực thể kết hợp ) có các thuộc tính Ma-khoa, Ten-khoa.
Loại thực thể LOP-HOC có một số thuộc tính Ma-lop, Ten-lop, Nienkhoa, So-hoc-vien.
Loại thực thể MON-HOC có một số thuộc tính Ma-mon, Ten-mon.
Chng hn vi b i toán qun lý im thi ca sinh viên: vi i tng sinh
viên ta cn chú ý n các c trng riêng nh h tên, ng y sinh, gii tính,
a ch, lp

các c trng n y gi l thuc tính

Các thuc tính c phân bit qua tên gi v

phi thuc v o 1 kiu d liu

nht nh (s, chui, ng y tháng,
có 2 thuc tính cùng tên.

). Trong cùng 1 i tng không c


Lờ Th Cm Nhung

10




- Mi thuc tính c xác nh trên 1 min giá tr gi l

min thuc tính

Ký hiu DOM (<tên thuc tính>)
Ví d: DOM (h tên ) = {char(30)}
DOM (tui ) = N
Ví dụ 1.2: Thuc tính ng y trong tháng có kiu d liu l
giá tr ca nó l
n 10

s nguyên, min

t 1 n 31. Hoc im thi ca sinh viên có min giá tr t 0

Ngi ta dựng các ch cái hoa A, B, C, biu din các thuc tính, hoc
A1, A2, biu din mt s lng ln các thuc tính.
1.2. Quan hệ
Miền (domain) l một tập các giá trị, chẳng khác gì một kiểu dữ liệu (data
type). Ví dụ tập các số nguyên l một miền, tập các xâu kí tự tạo thnh
tên ngời trong tiếng Anh có độ di không quá 30 kí tự l một miền, tập
hai số{0,1} cũng l một miền v.v.
Tích Đề - Các: Gọi D1, D2, ..., Dn l các miền. Tích Đề - Các của n miền

ny ký hiệu l D1xD2x...xDn l tập tất cả n- bộ (n tuples) (v1, v2,. .., vn) sao
cho vi thuộc Di, với i = 1...n.
Ví dụ 2.1: n=2, D1={0,1}, D2={a,b,c}.
Khi đó:
D1 x D2={(0,a),(0,b),(0,c),(1,a)(1,b),(1,c)}.
Quan hệ (Relation) l một tập con của tích Đề - Các của một hoặc nhiều
miền. Nh vậy, mỗi quan hệ có thể l vô hạn. ở đây luôn giả thiết rằng,
quan hệ l một tập hữu hạn.
Ví dụ 2.2: {(0,a),(0,c),(1,a)(1,b)} l một quan hệ đó l tập con của tích đề
các D1xD2 đợc đề cập ở trên. Tập rỗng cũng l một quan hệ.

Lờ Th Cm Nhung

11




Mỗi phần tử của quan hệ gọi l một bộ (tuples). Quan hệ n - ngôi l
tập con của tích đề các D1 x D2 x. .. x Dn của n - miền. Khi đó mỗi bộ của
quan hệ có n thnh phần (v1, v2, ..., vn) đợc gọi l một n-bộ.
1.3. Bộ giá trị (Tuple)
B l tp hp mi giá tr liên quan n tt c các thuc tính ca 1 lc
quan h
Ngi ta thng dựng các ch cái thng (t, p, q, ) biu din các b.
Nu b t thuc quan h r thì: t r
V trc quan thì mi quan h xem nh 1 bng, trong ó mi ct l
v 1 thuc tính v

mi dòng l


thông tin

thông tin v mt b.

MASV

HOTEN

NGAYSINH MALOP

1462

Nguyn vn 15/03/1990
B

1390

Trn Vn A

03/07/1989

DIACHI

HOCBONG

CTIN1

Hi
Dng


120000

CTIN2

Nam nh 120000

1.4.Lợc đồ quan hệ
Tập các tên thuộc tính cho một quan hệ đợc gọi l một lợc đồ quan hệ (
Relation Scheme). Nếu chúng ta đặt tên cho một quan hệ l R v lợc đồ
quan hệ của nó có các thuộc tính A1, A2,..., An thì lợc đồ quan hệ ny có thể
viết dới dạng R(A1, A2,..., An).
Nh vậy khi ta nói cho một lợc đồ quan hệ R(A1, A2,..., An) có nghĩa l ta
đã cho một tập thuộc tính A1, A2,..., An v trên đó đã tồn tại một quan hệ R.
Ví dụ 2.2: Hình 2.3 cho thấy một quan hệ NHAN_VIEN có các thuộc tính
HO_TEN, NAM_SINH, NOI_LAM_VIEC v LUONG l một quan hệ 4
ngôi.
NHAN_VIEN (Ho_Ten

Lờ Th Cm Nhung

Nam_Sinh Noi_lam_viec Luong)

12




T1


Lê Văn A

1960

Viện KHVN

425

T2

Hong Thị B

1970

Trờng ĐHBK 390

T3

Lê Văn Sơn

1945

Viện KHVN

425

Hình 2.3 Quan hệ Nhan_vien
t1= (Lê Văn A 1960, Viện KHVN, 425) l một bộ của quan hệ
NHAN_VIEN. Có thể viết lợc đồ quan hệ ny l NHAN_VIEN (Ho_Ten,
Nam_Sinh, Noi_lam_viec, Luong).

1.5. Thể hiện của quan hệ
Thể hiện (hoặc còn gọi l tình trạng) của quan hệ R, ký hiệu bởi TR, l
tập hợp các bộ giá trị của quan hệ R vo một thời điểm. Tại những thời điểm
khác nhau thì quan hệ sẽ có những thể hiện khác nhau. Thể hiện (hay tình
trạng) của các lợc đồ quan hệ con TRi gọi l tình trạng của lợc đồ cơ sở dữ
liệu .
Ví dụ :
Các thể hiện của quan hệ lớp-học v môn-học
Quan hệ lớp-học :
Mã-lớp Tên-lớp
Niên-khoá Số-Hviên Mã-khoa
QTKD1 Quản trị kinh doanh QT01
96-99
154
QTKD
TCKT1 Ti chính kế toán KT3
97-2000
200
TCKT
CNTT1 Công nghệ thông tin K1
98-2001
120
CNTT
Quan hệ môn-học:
Mã-môn
Tên-môn
TCKT
Ti chính kế toán
CSDL
Cơ sở dữ liệu

KTCT
Kinh tế chính trị
LTCB
Lập trình căn bản C

Số-đv-học-trình
4
5
4
5

1.6. Khoá - Siêu khoá - Khoá chỉ định khoá chính khoá ngoại
Khoá (key): Khoá của một quan hệ R(A1, A2,...,An) l tập con
K { A1, A2,...,An }, thoả mãn các tính chất sau đây:

Lờ Th Cm Nhung

13




1) Với bất kỳ 2 bộ t1, t2 R đều tồn tại một thuộc tính AK sao cho
t1[A] t2[A]. Nói một cách khác. không tồn tại 2 bộ m có giá trị bằng nhau
trên mọi thuộc tính của K. Điều kiện ny có thể viết t1[K] t2[K]. Do vậy
mỗi giá trị của K l xác định duy nhất.
2) Không có tập con thực sự no của K có tính chất (1)
Ví dụ 2.8:
HANG_HOA ( MSMH


TEN_HANG

SO_LUONG )

10101

Sắt phi 6

1000

10102

Sắt phi 8

2000

20001

Xi măng

1000

Quan hệ HANG_HOA
Trong ví dụ trên biểu diễn quan hệ HANG_HOA trong đó mã số mặt
hng (MSMH) l khoá. Mỗi giá trị MSMH đều xác định duy nhất một loại
mặt hng trong quan hệ HANG_HOA.
Một điều quan trọng cần phải nhớ l khoá phụ thuộc vo lợc đồ quan
hệ không phụ thuộc vo thể hiện của quan hệ. Một quan hệ có thể có nhiều
khoá.
Siêu khóa (Super key ): k l 1 khóa ca quan h r(U) thì mi tp hp k

cha k u l khóa ca quan h r(U) k gi l siêu khóa ca quan h
- Siêu khóa cha ít thuc tính nht c gi l

khóa ch nh.

- Khóa chính: l khóa c chn c i t trong mt h qun tr c s d
liu. Khi chn khóa chính ta phi chú ý các tính cht:
Khóa có tính áp dng khi nó không b sót bt k trng hp n o ca
vn
Lờ Th Cm Nhung

14




Khóa phi có tính duy nht dùng phân bit b n y vi b kia trong
quan h
Khóa có tính nh nht khi ta b qua bt k thuc tính n o ca nó thì
nó không còn tính duy nht na
Khóa có tính n nh khi giá tr ca khóa không thay i
- Khóa ngoi: mt thuc tính c gi l khóa ngoi nu nó l thuc tính
ca mt lc quan h n y nhng li l khóa chính ca lc quan h
khác
1.7.Phụ thuộc hàm
Quan hệ R đợc định nghĩa trên tập thuộc tính U = {A1,A2, ,An}.
X , Y U l hai tập con của tập thuộc tính U. Nếu tồn tại một ánh xạ f:
X Y thì ta nói rằng X xác định hm Y, hay Y phụ thuộc hm vo X v ký
hiệu l X Y. Chúng ta sẽ tìm hiểu kỹ hơn về phụ thuộc hm trong Chơng
IV.

1.8.Ràng buộc toàn vẹn
Rng buộc ton vẹn (viết tắt l RBTV) l một quy tắc định nghĩa trên một
(hay nhiều) quan hệ do môi trờng ứng dụng quy định. Đó l quy tắc để đảm
bảo tính nhất quán của dữ liệu trong CSDL.
Mỗi RBTV đợc định nghĩa bằng một thuật toán trong CSDL.
Ví dụ:
Quan hệ CCVC(Mã-CBVC, Họ-tên, Hệ-số-lơng)
Quy tắc: Hệ số lơng của cán bộ viên chức (CBVC) phải lớn hơn hay bằng
1.00 v nhỏ hơn hay bằng 10.00.
Thuật toán: cc CCVC thì cc.Hệ-số-lơng>=1 & cc.Hệ-số-lơng<=10.
Các khái niệm cũng nh vấn đề chủ yếu của RBTV sẽ đợc trình by chi tiết
trong Chơng IV.

Lờ Th Cm Nhung

15




1.9.Các thao tác cơ bản trên các quan hệ
Ba thao tác cơ bản trên môtj quan hệ, m nhờ đó CSDL đợc thay đổi, đó l
Thêm(Insert), Xoá (Delete) v Sửa (Update) các bộ giá trị của quan hệ.
1.9.1.Phép thêm (chèn) một bộ mới vào quan hệ:
Phép thêm mt bộ v o quan h R = {A1, A2, , An}:
INSERT (R; A1=d1, A2 = d2, , An = dn} trong ó Ai (i = 1, 2, ,
n) l tên các thuc tính v di dom (Ai).
Ví d: Thêm mt b t5 = (V Vn Vit, 1986, Caoangcodien, 3.36)
v o quan h Nhanvien (Hoten, Namsinh, Noilamviec, Luong):
INSERT (Nhanvien; Hoten = VuVanViet, Namsinh = 1986,

Noilamviec = Caodangcodien, Luong = 3.36).
Chú ý:
- Nu xem th t ca các trng l c nh, khi ó ta có th biu din
phép chèn mt cách ngn gn hn:
INSERT (R; d1, d2, , dn).
Mc ích ca phép chèn l thêm mt b v o mt quan h nht nh;
kt qu ca phép tính n y có th gây ra mt s sai sót với nhng lý do sau:
+ B mi thêm v o không phù hp vi lc quan h cho trc.
+ Mt giá tr ca mt thuc tính n o ó nm ngo i min giá tr ca
thuc tính ó.
+ Giá tr khoá ca b mi có th l giá tr ã có trong quan h ang
lu tr.
Do vy, tùy tng h c th s có nhng cách khc phc riêng.
1.9.2. Phép loại bỏ bộ khỏi quan hệ
Phép loi b (DELETE) l phép xoá mt b ra khi mt quan h cho
trc.
DELETE (R; d1, d2, , dn).
Ví d: khi cn loi b mt b, chng hn t2 t quan h Nhanvien:
DELETE (Nhanvien; HaiHa; 1987, Khoatin, 4.45).
Chú ý: không phi lúc n o phép loi b cng cn y thông tin v
c b cn loi. Khi ta có giá tr ca b ó ti các thuc tính khoá K = {B1, ,
Bn}, lúc ó phép loi b có dng:
DELETE (R; B1 =e1, , Bi = ei).
1.9.3. Phép sửa đổi giá trị của các thuộc tính của quan Hử
Khi cn iu chnh mt s giá tr n o ó ti mt s thuc tính, ta s
dng phép thay i.

Lờ Th Cm Nhung

16





Gi tp {C1, , Cp} {A1, , An} l tp các thuc tính m ti ó
casc giá tr ca b cn thay i: CH (R; A1=d1, A1 = d2, , An =d2; C1=e1,
C2 = e2, , Cp=ep}
Nu K = {B1, , Bm} l khoá ca quan h, khi ó ch cn vit:
CH (R; B1=b1, , Bm=bm; C1=e1, , Cp=ep).
Ví d: khi cn thay i lng ca ông H trong quan h Nhanvien ta
vit:
CH (Nhanvien; Hoten = Ha, Luong = 4.56).

2.Các phép toán trên đại số tập hợp
2.1.Phép hợp
Hợp của hai quan hệ R v S l một quan hệ, ký hiệu l RS v l tập
tất cả các bộ t sao cho tR hoặc tS.
Biểu diễn hình thức phép hợp có dạng :
R S = { t / t R hoặc t S }.
Ta chỉ có thể dùng phép hợp cho các quan hệ cùng ngôi, vì vậy tất cả
các bộ trong kết quả sẽ có cùng số lợng thnh phần. Tên thuộc tính trong
các quan hệ sẽ bị bỏ qua khi thực hiện phép hợp v quan hệ thu đợc có thể
gán các thuộc tính tùy ý, thứ tự của các thuộc tính trong các quan hệ phải
đợc tôn trọng. Các điều ny tơng tự đối với các phép toán khác nh hiệu,
giao, tích Descartes.
Ví dụ 2.1:
(a)
R (A B C )
S (A B C)
R S (A B C)

a1 b1 c1
a2 b1 c2
a1 b1 c1
a1 b2 c1
a2 b2 c2
a1 b2 c1
a2 b2 c2
a2 b2 c2
a2 b1 c2
(b)
R (A B C )

S (D E

a b c

b g

d a f
c b d

d

Lờ Th Cm Nhung

F)

R S (A B C)

a


a b c

a f

d a f
c b d

17




b g a
Chú ý: Trong ví dụ trên, ta thấy hai quan hệ R v S cùng ngôi, ta vẫn có thể
lấy hợp của chúng dù các cột của hai quan hệ trên mang tên khác nhau, miễn
l các quan hệ có cùng số lợng các thnh phần. Tuy vậy quan hệ thu đợc
sẽ không có tên rõ rng cho các cột (ta có thể không viết tên cột hoặc đặt tên
cho các cột kết quả l A, B, C nhng nó mang nghĩa mới)
2.2. Phép giao
Giao của hai quan hệ R v S l một quan hệ, ký hiệu l RS v l tập
tất cả các bộ t sao cho t thuộc cả R v S.
Biểu diễn hình thức phép giao có dạng
R S = {t / tR v t S}.
Ví dụ 2.2:
R( A B C )

S( D E F )

a1 b1 c1


d1 e1 f1

a1 b2 c1

a1 b1 c1

RS

(A B C)
a1 b1 c1

d1 e2 f2

2.3.Phép trừ
Hiệu của hai quan hệ R v S khả hợp l một quan hệ ký hiệu l R-S v
l tập tất cả các bộ t sao cho t thuộc R nhng không thuộc S.
Biểu diễn hình thức phép có dạng :
R - S ={ t / tR v t S}.
Ví dụ 2.3: * Với R, S ở ví dụ 2.1 (a) trên:
R-S ( A

B C)

a1 b1 c1
a1 b2 c1
* Với R, S ở ví dụ 2.1 (b) trên:
R-S ( A B C )
Lờ Th Cm Nhung


18




a b c
c b d
2.4.Phép tích Đề các (Descartes)
R l quan hệ n - ngôi v S l quan hệ m - ngôi. Tích Đề các của hai
quan hệ R v S ký hiệu l RxS l tập tất cả các (n+m) - bộ với n thnh phần
đầu l một bộ thuộc R v m thnh phần sau l của một bộ thuộc S.
Biểu diễn hình thức có dạng
RxS ={t / t có dạng ( a1, a2,..., an, b1, b2,..., bm ), trong đó ( a1,..., an) R v
(b1,..., bm )S}.
Ví dụ 2.4:
R( A B C )

S( D E F )

RxS ( A B C D E F )

a1 b1 c1

d1 e1 f1

a1 b1 c1 d1 e1 f1

a1 b2 c1

d2 e2 f1


a1 b1 c1 d2 e2 f1

d1 e2 f2

a1 b1 c1 d1 e2 f2
a1 b2 c1 d1 e1 f1
a1 b2 c1 d2 e2 f1
a1 b2 c1 d1 e2 f2
S(A B

R(A B C )

C)

a b c

a b c

d a f

d a f

c b d
RxS (A B

C

a b


c

a

b

c

a b

c

d

a

f

Lờ Th Cm Nhung

D

E

19

F)





d a

f

a

b

c

d a

f

d

a

f

c b

d

a

b

c


c b

d

d

a

f

2.5.PhÐp chia
- Trong quan hÖ r x¸c ®Þnh trªn quan hÖ U1 l

quan hÖ bËc n

- Trong quan hÖ s x¸c ®Þnh trªn quan hÖ U2 l

quan hÖ bËc m

Víi n > m
Khi đã phÐp chia cña r cho s l

1 tËp c¸c bé t cã bËc l

n-m sao cho mäi

bé gi¸ trị u ∈ s th× bé ghÐp ®−îc gi÷a (t,u) ∈ r
Có ph¸p: r ÷ s = { t | ∀ u ∈ s ⇒ (t,u) ∈ r}
vÝ dô 2.5:

R(A B C D)

S (C D )

R÷S= (A B )

a

b

c d

c

d

a

b

a

b

e f

e

f


c

d

b c

e f

c

d

c d

c

d

e f

a

b

d e

Lê Thị Cẩm Nhung

20





3.Các phép toán trên đại số quan hệ
3.1.Phép chiếu (( Projection )
Cho quan hệ R(A1, A2,...,An), X { A1, A2,...,An }. Phép chiếu quan hệ
R trên tập thuộc tính X l một quan hệ trên tập thuộc tính X, ký hiệu l

X (R) v đợc biểu diễn hình thức l:
X (R)= { t[X] / t R}.
Trong đó t[X] l giá trị của bộ t trên tập thuộc tính X.
Ví dụ 2.18:
R= { A,B,C,D }, X={ A,B };Y={ A,C}
R(A B C D)

X(R)

(A B )

Y(R) (A C )

a1 b1 c1 d1

a1 b1

a1 c1

a1 b1 c1 d2

a2 b2


a2 c2

a2 b2 c2 d2

a2 c3

a2 b2 c3 d3

3.2. Phép chọn ( Selection )
Phép chọn l phép tính để xây dựng một tập con các bộ của quan hệ đã
cho, thoả mãn biểu thức F xác định. Biểu thức F đợc diễn tả bằng một tổ
hợp Boolean của các toán hạng, mỗi toán hạng l một phép so sánh đơn giản
giữa hai biến l hai thuộc tính hoặc giữa một biến l một thuộc tính v một
hằng, cho giá trị đúng hoặc sai đối với mỗi bộ đã cho khi kiểm tra
riêng bộ ấy.
Các phép so sánh trong biểu thức F l <, =, >, >=, <= v ; Các phép
logic l (v), (hoặc) v ơ (không).
Cho quan hệ R(A1, A2,...,An). Phép chọn quan hệ R với điều kiện F l
một quan hệ trên tập thuộc tính (A1, A2,...,An) ký hiệu l F(R)

Lờ Th Cm Nhung

21




Hình thức hoá phép chọn đợc định nghĩa nh sau
F(R) = { t R | F (t) = đúng }.

F(t) đợc hiểu l giá trị của biểu thức F đối với bộ t
Ví dụ 2.19: Cho quan hệ sau.
R (A B C D)
a1 b1 c1 d1
a1 b1 c1 d2
a2 b2 c2 d2
a2 b2 c2 d3
Các phép chọn
A= a1 (R) = (A

B

C

D)

a1

b1

c1

d1

a1

b1

c1


d2

B

C

D)

a1

b1

c1

d1

a1

b1

c1

d2

a2

b2

c2


d2

(A=a1) V (D =d2) (R) = ( A

3.3.Phép kết nối ( Join )
Gọi l một trong các phép so sánh { =, >, >=, <, <=, }.
Phép kết nối của quan hệ R đối với thuộc tính A v quan hệ S đối với
thuộc tính B l những bộ t của tích Descartes RxS sao cho t[A] t[B]
R >< S = { (t t RxS v t[A] t[B] }.
AB
Đặc biệt khi phép sánh l phép = thì phép kết nối đó gọi l kết
nối bằng. Trờng hợp kết nối bằng đối với hai thuộc tính cùng tên l A v
kết quả thu đợc loại bỏ đi một trong hai cột R.A hoặc S.A, thì phép kết nối
đó gọi l kết nối tự nhiên v sử dụng ký hiệu thay cho ><.
Lờ Th Cm Nhung

22




Ví dụ 2.21:
R(A B C )

S( C D E )

(A B C F D E)
R >< S =
BC


a1 1 1

1 d1 e1

a1 1 1 1 d1 e1

a2 2 1

2 d2 e2

a2 2 1 1 d1 e1

a1 2 2

3 d3 e3

a2 2 1 2 d2 e2
a1 2 2 1 d1 e1
a1 2 2 2 d2 e2

Kết quả nối tự nhiên :
(A

B

C

D

E)


a1

1

1

d1

e1

a2

2

1

d1

e1

a1

2

2

d2

e2


R(ABC) S(CDE) =

3.4. Các phép toán kết nối khác
Mục ny trình by 3 phép toán kết nối mở rộng khác đặc biệt quan
trọng, m bản chất của chúng vẫn l kết nối.Chúng đã đợc ci đặt trong
một số hệ quản trị CSDL nh Microsoft Access, SQL Server, Oracle. Các
phép kết nối đó l: Kết nối nội (Inner Join), kết nối tráI (Left Join) v kết
nối phải (Right Join).
3.4.1. phép kết nối nội (Inner Join)
Thực chất l phép kết nối bằng đã trình by trên. Tuy nhiên, ngay cả
trong trờng hợp hai thuộc tính so sánh có cùng tên thì kết quả phép kết nối
vẫn giữ lại 2 tên thuộc tính đó.
Ví dụ 3.4.1: Cho 2 quan hệ R(A B C) v S(A D E F) với các
bộ giá trị nh dới đây. Kết quả phép kết nối nội đợc cho trên bảng phía
bên phải.
R(A B C )

S(A D E F)

(A B C A D E F)
R >< S =
R.A=S.A

Lờ Th Cm Nhung

23





a1 b1 c1

a1 d1 e1 f1

a1 b1 c1 a1 d1 e1 f1

a2 b2 c2

a2 d2 e2 f2

a2 b2 c2 a2 d2 e2 f2

a3 b3 c3

a4 d4 e4 f4

a7 b7 c7 a7 d7 e7 f7

a5 b5 c5

a6 d6 e6 f6

a7 b7 c7

a7 d7 e7 f7

3.4.2. phép kết nối trái (Left Join)
Giả sử có hai quan hệ R(A1 A2
An) v S(B1 B2

Bm).
t=(a1,a2, , an) v u= (b1,b2, ,bm) l hai bộ giá trị của R v S. Gọi r l bộ
ghép nối u vo t (hay bộ giá trị t v u đợc xếp cạnh nhau) v ký hiệu l:
r=(t,u)=(a1,a2, ,an,b1,b2, ,bm)
Bộ tNULL= (NULL,NULL, ,NULL) l một bộ đặc biệt của R gồm n
giá trị của các thuộc tính A1,A2, ,An đều l không xác định v
uNULL=(NULL,NULL, ,NULL) l một bộ đặc biệt của S gồm m giá trị của
các thuộc tính B1,B2, ,Bm đều l không xác định.
A R + v B S + l hai thuộc tính có thể so sánh đợc

Phép kết nối trái hai quan hệ R với S trên các thuộc tính A v B với
phép so sánh bằng, với giả thiết l giá trị cột R[A] có thể so sánh tơng
đơng đợc với mỗi giá trị của cột S[B], đợc định nghĩa l:
R >< S ={r =(t,u)|( t R, u S v t.A u.B)hoặc( t R ,u=uNULL với
t.A S[B])}
A=B
nghĩa l, tất cả các bộ r có đợc nhờ cách đặt bộ giá trị của R v S xếp
cạnh nhau, nếu có giá trị giống nhau trên 2 thuộc tính kết nối v các bộ r có
đợc nhờ cách đặt bộ của R với các bộ NULL của S, nếu không tìm đợc giá
trị tơng ứng của thuộc tính kết nối trên quan hệ S.
Ví dụ 3.4.2: Với quan hệ R v S cùng các bộ giá trị của chúng đã đợc cho
trong ví dụ 3.4.1, kết quả của phép kết nối trái của R v S l:
R >< S = Q(A B

C

A

D E


F)

R.A=S.A

a1 b1 c1 a1 d1 e1 f1
a2 b2 c2 a2 d2 e2 f2
Lờ Th Cm Nhung

24




a3 b3 c3 - - a5 b5 c5 - - a7 b7 c7 a7 d7 e7 f7
Ký hiệu dấu trừ (-) trong các thuộc tính của S đợc hiểu l giá trị không xác
định (giá trị NULL)
Các dòng có giá trị thuộc tính A của R l a3 v a5 không tìm đợc giá trị của
thuộc tính A tơng ứng trong quan hệ S, nên phần còn lại của nó đợc để l
không xác định. Qua bảng kết quả trình by trên, chúng ta thấy ý nghĩa của
phép toán ny l nhằm xác định các bộ giá trị của quan hệ bên trái nhng
không có bộ tơng ứng trong quan hệ phía bên phải.
3.4.3. phép kết nối phải (Right Join)
Vẫn với các quan hệ R,S; Các thuộc tính A, B; v các bộ giá trị v,t,u, tNULL,
uNULL đợc xác định nh trên.
Phép kết nối phải hai quan hệ R với S trên các thuộc tính A v B với
phép so sánh bằng, với giả thiết l giá trị cột R[A] có thể so sánh tơng
đơng đợc với mỗi giá trị của cột S[B], đợc định nghĩa l:
R >< S ={r =(t,u)|( t R, u S v t.A u.B)hoặc( u S ,t=tNULLvới t.B R[A])}
A=B
nghĩa l, tất cả các bộ r có đợc nhờ cách đặt bộ giá trị của R v S xếp

cạnh nhau, nếu có giá trị giống nhau trên 2 thuộc tính kết nối v các bộ
NULL của R với các bộ của S, nếu không tìm đợc giá trị tơng ứng của
thuộc tính kết nối trên quan hệ R.
Ví dụ 3.4.3: Với quan hệ R v S cùng các bộ giá trị của chúng đã đợc cho
trong ví dụ 3.4.1, kết quả của phép kết nối tráI của R v S l:
R >< S = Q(A
R.A=S.A
a1
a2
a7

B

C

A

D E

F)

b1
b2
b7

c1
c2
c7

a1

a2
a4
a6
a7

d1
d2
d4
d6
d7

f1
f2
f4
f6
f7

e1
e2
e4
e6
e7

Ký hiệu dấu trừ (-) trong các thuộc tính của R đợc hiểu l giá trị không xác
định (giá trị NULL)

Lờ Th Cm Nhung

25





×