Tải bản đầy đủ
CHƯƠNG 2.XML VÀ CƠ SỞ DỮ LIỆU QUAN HỆ

CHƯƠNG 2.XML VÀ CƠ SỞ DỮ LIỆU QUAN HỆ

Tải bản đầy đủ

Vì vậy, một CSDL là một tập dữ liệu được tổ chức sao cho dễ dàng truy cập,
quản lý và cập nhật.

Phân loại CSDL:
CSDL được phân thành nhiều loại khác nhau:
- CSDL dạng file: dữ liệu được lưu trữ dưới dạng các file có thể là text, ascii,
*.dbf. Tiêu biểu cho CSDL dạng file là Foxpro.
- CSDL quan hệ: dữ liệu được lưu trong các bảng dữ liệu gọi là các thực thể,
giữa các thực thể này có mối quan hệ với nhau gọi là các quan hệ, mỗi quan hệ
có các thuộc tính, trong đó có một thuộc tính là khoá chính. Các hệ quản trị hỗ
trợ CSDL quan hệ như: SQL Server, Ocracle, MySQL,…Chúng ta sẽ tìm hiểu cơ
bản CSDL quan hệ trong những phần tiếp theo.
- CSDL hướng đối tượng: dữ liệu cũng được lưu trữ trong các bảng dữ liệu
nhưng các bảng có bổ sung thêm các tính năng hướng đối tượng như lưu trữ thêm
các hành vi, nhằm thể hiện hành vi của đối tượng. Mỗi bảng xem như một lớp dữ
liệu, một dòng dữ liệu trong bảng là một đối tượng. Các hệ quản trị có hỗ trợ cơ
sở dữ liệu quan hệ như: MS SQL server, Oracle, Postgres.
- CSDL bán cấu trúc: dữ liệu được lưu dưới dạng XML, với định dạng này
thông tin mô tả về đối tượng thể hiện trong các tag. Đây là CSDL có nhiều ưu
điểm do lưu trữ được hầu hết các loại dữ liệu khác nhau nên cơ sở dữ liệu bán
cấu trúc là hướng mới trong nghiên cứu và ứng dụng.

Quản lý dữ liệu:
Quản lý dữ liệu là xử lý số lượng lớn thông tin bao gồm sự lưu trữ và thao
tác thông tin.
Có hai cách tiếp cận khác nhau để quản lý dữ liệu:
- Các hệ thống file
- Các hệ thống cơ sở dữ liệu
Các đặc trưng của các hệ thống file .
- Mỗi chương trình ứng dụng có một file lưu trữ dữ liệu riêng biệt. Ví dụ:
Phòng quản lý sinh viên, sử dụng hệ thống quản lý danh sách sinh viên, lưu trữ

29

thông tin cá nhân của sinh viên. Phòng đào tạo dùng hệ thống quản lý điểm theo
dõi thông tin về học tập của sinh viên. Hai chương trình có các file dữ liệu riêng.
- Trong hệ thống này, một nhóm các file được lưu trữ trên một máy tính và có
thể được truy cập bởi một điều hành viên.
- Nhược điểm của các hệ thống file:
+ Dư thừa và không nhất quán dữ liệu .
+ Những truy vấn dị thường .
+ Sự cô lập dữ liệu .
+ Dị thường khi truy cập dữ liệu.
+ Các vấn đề về bảo mật .
+ Các vấn đề về toàn vẹn .
Các hệ thống CSDL
- Các hệ thống CSDL dùng để lưu trữ dữ liệu một cách hiệu quả và có tổ chức
sao cho quản lý được nhanh chóng và dễ dàng.
- Các ưu điểm của các hệ thống CSDL:
+ Giảm bớt sự dư thừa dữ liệu
+ Nhất quán dữ liệu
+ Dữ liệu lưu trữ có thể được chia sẻ
+ Có thể thiết lập các luật lên dữ liệu
+ Toàn vẹn dữ liệu
+ Bảo mật dữ liệu

Mô hình cơ sở dữ liệu (Database Model)
Một mô hình cơ sở dữ liệu là hệ hình thức toán học gồm có 2 phần:
- Một hệ thống ký hiệu để mô tả dữ liệu
- 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:
- Mô hình thực thể liên hệ
- Mô hình mạng
- Mô hình phân cấp
- Mô hình quan hệ
30

- Mô hình hướng đối tượng

Hệ quản trị cơ sở dữ liệu quan hệ (Relational Database
Management System_ Viết tắt là RDBMS):
Một hệ thống quản lý cơ sở dữ liệu (Database Management System_ viết tắt
là DBMS) là hệ thống phần mềm cho phép định nghĩa, xây dựng và bảo trì
CSDL. Toàn bộ các thao tác truy cập, cập nhật CSDL của người dùng đều do
DBMS điều khiển. Một số DBMS hiện nay: Foxpro, Access, Ocracle,… với các
phiên bản khác nhau. Có hai đặc điểm phân biệt một DBMS với các hệ thống lập
trình khác:
- Khả năng quản lý những dữ liệu cố định: Điều này khẳng định có một
CSDL tồn tại thường xuyên và nội dung của CSDL này là những dữ liệu được
DBMS truy suất và quản lý.
- Khả năng truy suất có hiệu quả một số lượng lớn dữ liệu: Điều này phân
biệt DBMS với các hệ thống quản lý tập tin cùng quản lý dữ liệu cố định nhưng
nói chung không cho phép truy suất nhanh chóng những thành phần tùy ý của dữ
liệu.
DBMS 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.
DBMS 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 suất dữ liệu và thao tác dữ liệu.
DBMS quản lý các giao dịch, nghĩa là cho phép nhiều người sử dụng truy
suất đồng thời và chính xác đến một CSDL.
DBMS điều khiển quá trình truy suất, là khả năng giới hạn các quá trình truy
suấ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.
DBMS có khả năng tự thích ứng là khả năng tự 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.
Các lợi ích phổ biến của DBMS:
- Lưu trữ dữ liệu
- Định nghĩa dữ liệu
31

- Thao tác trên dữ liệu
- Bảo mật và toàn vẹn dữ liệu
- Khôi phục dữ liệu
Truy cập đồng thời và điều khiển đa truy cập
Các ngôn ngữ truy xuất CSDL và các giao diện lập trình ứng dụng
Hệ quản trị cơ sở dữ liệu quan hệ (Relational Database Management System
_ RDBMS) là một loại DBMS lưu trữ thông tin dưới dạng các bảng được tạo
quan hệ. RDBMS được dựa vào mô hình quan hệ.

2.1.2 Thiết kế cơ sở dữ liệu quan hệ
Khi thiết kế một CSDL quan hệ thường đòi hỏi phải chọn một lược đồ quan
hệ. Vì vậy cần thiết phải nghiên cứu các tính chất cơ bản cũng như các thuật toán
để có thể nhận được những tập lược đồ phù hợp. Trọng tâm của việc thiết kế
CSDL là các phụ thuộc dữ liệu, tức là các mối quan hệ ràng buộc có thể giữa các
giá trị hiện hữu của các lược đồ. Vậy làm thế nào để thiết kế một CSDL tốt ?

Phụ thuộc hàm :
Định nghĩa:
Khái niệm về phụ thuộc hàm (trong một quan hệ) là một quan niệm có tầm
quan trọng hết sức lớn đối với việc thiết kế lược đồ CSDL.
Cho lược đồ quan hệ với U= { A1,A2,,…,An} là tập thuộc tính. X,Y là tập
con của U.
Ta nói rằng X → Y (X xác định Y hay Y phụ thuộc hàm X) nếu với bất kỳ
quan hệ r nào đó là giá trị hiện hành của R và bất kỳ hai bộ t1, t2 r mà t1[X] =
t2[X] thì t1[Y] = t2[Y].
Phụ thuộc hàm ký hiệu là FD
Ví dụ: Xét lược đồ CSDL với 2 bảng
1) Emps (ENO, ENAME, SALARY)
2) Managers (ENO)
3) Depts (DNO, DNAME)
4) Oders (ONO, ODATE)
5) Suppliers (SNO, SNAME, SADDR)
32

6) Supplies (SNO, INO, PRICE)
7) Customers (CNO, CNAME, CADDR, BALANCE)
8) Items (INO, INAME)
9) Work-in (ENO, DNO)
10) Manages (ENO, DNO)
11) Carries (INO, DNO)
12) Includes (ONO, INO, QUANTITY)
13) Placed-by (ONO, CNO)
- Một số phụ thuộc hàm cơ bản, nhất là những phụ thuộc hàm khẳng định
rằng một khoá xác định được tất cả các thuộc tính của lược đồ quan hệ:
Trong bảng Suppliers: SNO → SNAME, SNO → SADDR
Trong bảng Supplies: SNO INO → PRICE
Trong Customers: CNO → CNAME CADDR BALANCE
- Một số phụ thuộc hàm tầm thường:
SNAME →SNAME SADDR→SADDR SNAME SADDR → SADDR
- Một số phụ thuộc hàm khác:
SNO INO→SADDR SNAME INAME

Hệ tiên đề cho phụ thuộc hàm:
Gọi F là tất cả các phụ thuộc hàm đối với lược đồ quan hệ R và X→Y là một
phụ thuộc hàm với X, Y ⊆U. Ta nói rằng X→Y được suy diễn logic từ F.
Ví dụ: F = {A→B, B→C} thì A→C được suy diễn từ F.
Gọi F+ là bao đóng (Closure) của F, tức là tất cả các phụ thuộc hàm được suy
diễn logic từ F. Nếu F = F+ thì F là họ đầy đủ của các phụ thuộc hàm.
Để xác định khoá của một lược đồ quan hệ và hiểu được các phép suy diễn
logic cho các phụ thuộc hàm cần tính được F+ từ F, hoặc ít nhất phải khẳng định
được X→Y có thuộc F+ hay không. Do đó đòi hỏi phải có những quy tắc suy diễn
cho biết làm sao để có thể suy ra một hay nhiều phụ thuộc hàm từ các phụ thuộc
hàm khác.Armstrong đã đưa ra những quy tắc này năm 1974 và được gọi là tiên
đề Armstrong.

Hệ tiên đề Armstrong:
33

Cho R là lược đồ quan hệ với U ={ A1,A2,,…,An} là tập các thuộc tính của
nó và X, Y, Z, W ⊆ U. Hệ tiên đề Armstrong bao gồm:
- A1 (Phản xạ): Nếu Y ⊆ X thì X→Y.
Quy tắc này đưa ra những phụ thuộc tầm thường là những phụ thuộc hàm mà
vế trái chứa vế phải. Sử dụng quy tắc này chỉ phụ thuộc vào U, không phải vào F.
- A2 (tăng trưởng): Nếu Z ⊆ U, và X→Y thì XZ→YZ
Trong đó ký hiệu XZ thay cho X

Z và X→Y có thể phụ thuộc F hoặc được

suy diễn từ F.
- A3 (bắc cầu): Nếu X→Y và Y→Z thì X→Z.
Ví dụ: Cho lược đồ quan hệ ABCD với các phụ thuộc hàm A→C, B→D.
Chứng
minh AB→ABCD.
Thật vậy, ta có:
A→C (Giả thiết)
AB→ABC (luật tăng trưởng)
Và B→D (giả thiết)
ABC→ABCD (luật tăng trưởng)
Vậy AB→ABCD (luật bắc cầu).
Tính đúng đắn của hệ tiên đề Armstrong :

Bổ đề 4.1:
Hệ tiên đề Armstrong là đúng. Có nghĩa là F là tập phụ thuộc hàm đúng trên
quan hệ R. Nếu X→Y là một phụ thuộc hàm được suy diễn từ F nhờ hệ tiên đề
Armstrong thì X→Y là đúng trên quan hệ R.
Từ hệ tiên đề Armstrong suy ra một số luật sau:

Bổ đề 4.2 :
a) Nếu X→Y và X→Z thì X →YZ
b) Luật tựa bắc cầu: Nếu X→Y, WY→Z thì XW→Z
c) Luật tách: Nếu X→Y và Z ⊆ Y thì X→Z
Bao đóng của tập thuộc tính:
Gọi F là tập các phụ thuộc hàm trên tập thuộc tính U, X ⊆ U. X+ là bao đóng
34

của X (đối với F) được định nghĩa như sau:
X+ = {A | X →A ∈ F+}
Với: X+ là tập tất cả các thuộc tính A mà phụ thuộc hàm X→A có thể được
suy diễn logic từ F nhờ hệ tiên đề Armstrong.

Bổ đề 4.3 :
X→Y suy dẫn từ hệ tiên đề Armstrong khi và chỉ khi Y ⊆ X+.

Định lý 4.1:
Hệ tiên đề Armstrong là đúng và đầy đủ (Chứng minh xem trong sách Giáo
trình CSDL quan hệ_Nhà Xuất bản Hà Nội, 2005).
Tính toán bao đóng: ∪
Việc tính bao đóng F+ của tập các phụ thuộc hàm F trong trường hợp tổng
quát là rất khó khăn và tốn kém thời gian bởi vì tập các phụ thuộc hàm F+ là rất
lớn mặc dù F có thể là rất nhỏ. Việc tính bao đóng F+ được thể hiện qua thuật
toán sau:
Thuật toán 4.1: Tính bao đóng của tập các thuộc tính đối với một tập các phụ
thuộc hàm:
Vào: Tập U hữu hạn các thuộc tính, tập các phụ thuộc hàm F trên U và X⊆U.
Ra: X+, bao đóng của X đối với F.
Phương pháp: Tính liên tiếp tập các thuộc tính X0, X1,…theo quy tắc:
X0 = X
Xi+1 = Xi ∪ A sao cho (Y→Z) ∈ F, A ∈ Z và Y ⊆ Xi.
Bởi vì X = X0 ⊆ …⊆ U, U là hữu hạn nên sẽ tồn tại một chỉ số i mà Xi =
Xi+1.

Khi đó X+ = Xi.

Ví dụ: Cho F là tập 8 phụ thuộc hàm sau:
AB→C D →EG ACD→B
C→A BE→C CE→AG
BC→D CG→BD
Và X = BD. Tính X+.
Giải:
Áp dụng thuật toán 4.1:
35

Đặt X0 = BD.
Muốn tính X1, hãy chọn các phụ thuộc hàm có vế trái là con của BD (vế trái

B, D hoặc BD) và kết nạp các vế phải của chúng vào X0. Ở đây chỉ có
D→EG. Khi đó có X1 = BDEG.
Tương tự tìm các phụ thuộc hàm có vế trái là con X1 (Có D→EG, BE→C).
Khi đó có:
X2 = BCDEG,.. tiếp tục ta sẽ có:
X3 = X4 = ABCDEG. Và cuối cùng:
(X)+=(BD)+ =ABCDEG.

Khoá của lược đồ quan hệ :
Các mối liên hệ được tượng trưng bằng dữ liệu trong các bảng. Để thiết lập
một mối liên hệ giữa hai bảng, bạn cần có dữ liệu trong một bảng cho phép bạn
tìm các hàng được tạo trong một bảng khác. Đó là nơi mà các khoá (key) được
thực thi và các RDBMS chủ yếu làm việc với hai loại khoá: Khoá chính (Primary
key) và khoá ngoại (Foreign key).

Định nghĩa :
Khoá cho tập thực thể đó là tập các thuộc tính xác định duy nhất một thực thể.
Cho lược đồ quan hệ R, với các thuộc tính U = { A1,A2,,…,An} và các phụ
thuộc hàm F, X ⊆ U. Ta nói X là một khoá của R nếu:
X→U ∈ F+, nghĩa là X xác định hàm tất cả các thuộc tính (các phụ thuộc
hàm này thuộc F hoặc được suy diễn logic từ F). Không có ∅ ≠ Y ⊂ X mà
Y→U ∈ F+.
Các thuộc tính thuộc một khoá nào đó gọi là thuộc tính khoá. Còn các thuộc
tính
không nằm trong một khoá nào cả gọi là thuộc tính không khoá (thuộc tính
thứ cấp).

Thuật toán tìm khóa
Thuật toán 4.2 :
Vào: Lược đồ quan hệ R với tập thuộc tính U và tập phụ thuộc hàm F.
36

Ra: Tập K là khoá của R
Phương pháp:
Đặt K= U
Lặp lại quá trình loại khỏi K thuộc tính A mà {K-A}+ = U.
Mô tả thuật toán:
Begin
K:=U;
FOR each A IN K DO
IF {K-A}+= U THEN K: = K-A
END
Thuật toán này tìm được một khoá của R. Muốn tìm các khoá khác (nếu có) ta
có thể thay đổi thứ tự loại bỏ các thuộc tính trong K.
Ví dụ: Cho lược đồ quan hệ ABCD với các phụ thuộc hàm A→C, B→D. Hãy
tìm khoá của lược đồ quan hệ trên.
Giải: K=U=ABCD
Lần lượt loại bỏ các thuộc tính trong K:
Loại bỏ D: Ta có ABC+ = U (Vì A→C, B→D) nên K = ABC
Loại bỏ C: Ta có AB+ = U (Vì A→C, B→D) nên K = AB
Loại bỏ B: Ta có A+ = AC ≠ U (Vì A→C) nên K = AB
Loại bỏ A: Ta có B+ = BD ≠ U (Vì B→D) nên K = AB
Vậy K=AB.
Nhận xét:
Từ thuật toán khoá ta có các nhận xét sau:
Các thuộc tính không xuất hiện trong cả vế trái và vế phải của tập phụ thuộc
hàm F phải có trong khoá.
Các thuộc tính chỉ xuất hiện bên vế trái của các phụ thuộc hàm trong F cũng
phải thuộc khoá.

37

Trong quá trình tìm khoá có thể bỏ đi tất cả các thuộc tính đơn phía bên phải
của các phụ thuộc hàm trong F. Tuy nhiên cần phải kiểm tra lại vì không phả lúc
nào các thuộc tính đó cũng bỏ được.

Lưu ý về các khoá chính và khoá ngoại
Các khoá chính:
Trước khi bạn chọn một khoá chính cho một thực thể, một thuộc tính phải có
những đặc tính sau:
Mỗi record của một thực thể phải có giá trị không rỗng.
Giả trị phải duy nhất cho mỗi record được nhập vào thực thể.
Các giá trị không được thay đổi hoặc trở nên rỗng trong thời gian sống của
mọi instance thực thể.
Chỉ có thể có khoá chính được định nghĩa trong một thực thể
Các khoá ngoại: Các khoá ngoại cung cấp một phương pháp để duy trì tính
toàn vẹn cho dữ liệu (được gọi là tính toàn vẹn tham chiếu) và để định hướng
giữa các instance khác nhau của một thực thể. Mọi mối quan hệ trong mô hình
phải được hỗ trợ bởi một khoá ngoại.

Chuẩn hoá lược đồ quan hệ:
Định nghĩa:
Nếu một lược đồ quan hệ thiết kế không tốt sẽ gây ra những dị thường dữ liệu
như dư thừa dữ liệu. Để tránh dị thường dữ liệu, lược đồ quan hệ cần thiết phải
được biến đổi thành các dạng phù hợp. Quá trình đó được xem là quá trình chuẩn
hoá lược đồ quan hệ. Lược đồ quan hệ được chuẩn hoá là lược đồ quan hệ trong
đó miền của mỗi thuộc tính chỉ chứa những giá trị nguyên tố tức là không phân
nhỏ được nữa và do đó mỗi giá trị trong quan hệ cũng là nguyên tố. Hay nói cách
khác, chuẩn hoá là tiến trình tổ chức dữ liệu một cách có hiệu quả trong CSDL.
Ngược lại, gọi là lược đồ quan hệ không chuẩn hoá.
Quá trình chuẩn hoá một lược đồ quan hệ có thể thành một hoặc nhiều lược
đồ quan hệ chuẩn hoá khác và có kết nối không mất mát thông tin. Lược đồ quan
hệ R là chuẩn hoá thì quan hệ r của nó cũng chuẩn hoá. Mục đích của tiến trình
chuẩn hoá: loại bỏ dữ liệu bị dư thừa mà vẫn đảm bảo dữ liệu phụ thuộc (phụ
38

thuộc hàm – là ràng buộc về sự liên quan giữa nhiều thuộc tính trong bảng với
nhau).

Định nghĩa 4.2:
Cho lược đồ quan hệ R trên tập thuộc tính U = { A1, A2, …, Ak}. X và Y là
hai tập thuộc tính khác nhau X ⊆ Y và Y ⊆ U. Y phụ thuộc hàm đầy đủ vào X
nếu Y phụ thuộc hàm vào X nhưng không phụ thuộc hàm vào bất kỳ một tập hợp
con thực sự nào của X.

Các dạng chuẩn:
Dạng chuẩn thứ 1
Định nghĩa 4.3 :
Một lược đồ quan hệ R với tập thuộc tính U được gọi là ở dạng chuẩn thứ
nhất (1NF) nếu miền của mỗi thuộc tính trong U chỉ chứa những giá trị nguyên
tố. Bất kỳ một lược đồ quan hệ chuẩn hoá nào cũng ở dạng 1NF và quan hệ r
cũng ở dạng chuẩn 1.
Quy ước: Một lược đồ quan hệ nếu không nêu rõ nó không là 1NF thì coi
như nó đã ở 1NF.
Như vậy để đạt dạng chuẩn 1:
- Chia dữ liệu thành các bảng riêng biệt cho mỗi nhóm dữ liệu có liên quan
Ví dụ: Bảng dữ liệu sinh viên, bảng kết quả, môn học
- Toàn bộ các cột của bảng phải có giá trị đơn.
- Tất cả các thuộc tính khoá phải được xác định.

Dạng chuẩn thứ 2:
Định nghĩa 4.4:
Một lược đồ quan hệ R với tập thuộc tính U được gọi là ở dạng chuẩn thứ 2
nếu nó ở dạng 1 và mỗi thuộc tính không khoá của R đều phụ thuộc hàm đầy đủ
vào khoá. Hay nói một cách khác, mỗi thuộc tính không khoá của nó không phụ
thuộc hàm vào một tập con thực sự nào đó của khoá.
Các bảng đạt dạng chuẩn hai nếu:
- Chúng phải thoả các yêu cầu của dạng chuẩn một
- Mỗi thuộc tính(cột) không khóa đều phụ thuộc đầy đủ vào khóa chính.
39