Cơ sở dữ liệu quan hệ và phân tích thiết kế cơ sở dữ liệu - Pdf 35

1 / 20

Cơ sở dữ liệu quan hệ và phân tích thiết kế cơ sở dữ liệu – Nhóm CSDL

CHƯƠNG I: CÁC KHÁI NIỆM CƠ BẢN VỀ MÔ HÌNH DỮ LIỆU QUAN HỆ....................................2
I. CÁC KHÁI NIỆM CƠ BẢN:
2
I.1. Khái niệm cơ bản về hệ cơ sở dữ liệu:...........................................................................................2
Ðịnh nghĩa Hệ thống cơ sở dữ liệu (database systems)................................................................................2
Ðịnh nghĩa kho dữ liệu (Datawarehouse).....................................................................................................3

I.2. Lược đồ quan hệ:............................................................................................................................3
Khóa của lược đồ quan hệ:............................................................................................................................4

I.3 Các phép tính trên cơ sở dữ liệu quan hệ, đại số quan hệ và câu lệnh SQL tương ứng:................6
I.3.1. Các phép tính trên quan hệ:..................................................................................................................6
I.3.1.a. Phép khởi tạo lược đồ:.......................................................................................................................6
I.3.1.a. Phép chèn thêm một phần tử:............................................................................................................6
I.3.1.b. Phép xóa bỏ:......................................................................................................................................6
I.3.1.c. Phép cập nhật:....................................................................................................................................6
I.3.2 Ðại số quan hê:......................................................................................................................................7
Các phép toán tập hợp:..................................................................................................................................7
a. Phép hợp (UNION, DISJUNCTION, OR):..............................................................................................7
SELECT * FROM r..............................................................................................................................................7
b. Phép giao (Intersection, conjonction, and):..............................................................................................8
c. Phép hiệu:...................................................................................................................................................8
d. Tích Ðêcac:................................................................................................................................................8
e. Phép bù:......................................................................................................................................................9
Các phép toán quan hệ:..................................................................................................................................9
a. Phép chiếu:.................................................................................................................................................9
b. Phép chọn:................................................................................................................................................10


Cơ sở dữ liệu quan hệ và phân tích thiết kế cơ sở dữ liệu – Nhóm CSDL

CHƯƠNG I: CÁC KHÁI NIỆM CƠ BẢN VỀ MÔ HÌNH DỮ LIỆU
QUAN HỆ
Chương này trình bày khái quát về mô hình dữ liệu quan hệ: các khái niệm
cơ bản về hệ cơ sở dữ liệu, lược đơ quan hệ, các phép tính trên cơ sở dữ liệu
quan hệ, đại số quan hệ, cách tối ưu câu lệnh truy vấn dữ liệu SQL.
I. CÁC KHÁI NIỆM CƠ BẢN:
I.1. Khái niệm cơ bản về hệ cơ sở dữ liệu:
Ðịnh nghĩa Dữ liệu: Dữ liệu là các sự kiện, văn bản, đồ họa, hình ảnh, và
các đoạn phim video có ý nghĩa trong môi trường người dùng.
Ðịnh nghĩa thông tin: Thông tin là dữ liệu được xử lí theo các cách để làm
tăng hiểu biết của người đang sử dụng dữ liệu này.
Thông thường đối với việc thiết kế xây dựng một hệ thống tin quản lí, chúng
ta cần xử 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ề nội dung có quan hệ với nhau tạo thành một cơ sở dữ
liệu (Data base _ viết tắt CSDL).
Cơ Sở Dữ Liệu là tập hợp thông tin (dữ liệu) có tổ chức nhằm thỏa mãn
một hay nhiều mục đích quản lí thông tin của con người.
Hệ các chương trình nhằm quản lí khai thác dữ liệu này là Hệ quản trị Cơ
Sở Dữ Liệu (viết tắt HQTCSDL, Database management system). (Như
Access, SQL server, Oracle...)
Hệ thống thông tin gồm bộ phận xử lý thông tin, kênh thông tin vào ra.
Thông tin vào

Thông tin ra
Xử lí thông tin
Môi trường hệ thống


đến nay mô hình quan hệ đã được sử dụng rộng rãi.
Theo mô hình quan hệ, dữ liệu được thể hiện về khái niệm trong hai chiều,
gồm các cột và dòng. Các bảng gọi là các “quan hệ”, các dòng là các “bộ”
hay “_tuple” và cột là “thuộc tính”. Nói rõ hơn mỗi dòng là một bản ghi
(record), các “thuộc tính” cho biết ý nghĩa của các giá trị trong bản ghi.
Ðịnh nghĩa kho dữ liệu (Datawarehouse)
Kho dữ liệu là cơ sở dữ liệu trợ giúp quyết định tích hợp, bao gồm thông tin
trích từ các cơ sở dữ liệu khác.
Trong phần dưới đây sẽ định nghĩa một cách cụ thể hơn.
I.2. Lược đồ quan hệ:
Cho tập các thuộc tính U={A1,...,An}, ở đây luôn giả thiết n là hữu hạn.
Các thuộc tính Ai nhận giá trị trong một miền giá trị nào đó, ký hiệu
dom(Ai).

Trung tâm Công Nghệ Phần Mềm Thừa Thiên Huế

3/ 20


4 / 20

Cơ sở dữ liệu quan hệ và phân tích thiết kế cơ sở dữ liệu – Nhóm CSDL

- Một lược đồ quan hệ R được xây dựng trên U, ta ký hiệu R(U). Khi
đó R là một lược đồ dữ liệu thể hiện ở dạng quan hệ.
- Một bộ là các thông tin của một đối tượng thuộc một lược đồ quan hệ.
Một bộ cũng thường được gọi là một mẩu tin hay một bản ghi(record).
Về mặt toán học thì một bộ t là một vector gồm n thành phần thuộc
tập hợp con của tập tích Ðề Các giữa các miền giá trị của các thuộc
tính.

Là một quan hệ được xây dựng trên lược đồ R.
t =(Le A, A1, 7, Hue) là một bộ của quan hệ trên.
Nhận xét:
- Trên cùng 1 lược đồ quan hệ sẽ có nhiều quan hệ
- Trên cùng 1 quan hệ không có 2 bộỷ trùng nhau.
- Trên tập thuộc tính U={A1,...,An} ngoài lược đồ R(U) còn có thể xây
dựng được các lược đồ con khác T(V) với V ⊂ U.
Khóa của lược đồ quan hệ:
Cho R(A1,.....An) và r(R) là quan hệ trên R. K ⊂{A1,....An}
K được gọi là khóa của quan hệ r, nếu K thỏa mãn các tính chất sau:
a. ∀ t1, t2 ∈ r, t1≠t2 ⇒ t1[K] ≠ t2[K]

Trung tâm Công Nghệ Phần Mềm Thừa Thiên Huế

4/ 20


5 / 20

Cơ sở dữ liệu quan hệ và phân tích thiết kế cơ sở dữ liệu – Nhóm CSDL

b. K’⊂ K thì K’ không có tính chất a.
ở đây ký hiệu t[K] chính là bộ t chỉ giữ lại các thuộc tính Ai ∈ K.
Ví dụ: R(hoten, diachi).
Nhânviên(R) =
(hoten, diachi)
A
QN
B
ÐN

Ví dụ: Xét quan hệ Sinhviên(Mã số, Họtên, ngày sinh, khoa) và quan hệ
Dựthi(Mã số, Mônthi, Ðiểmthi)
Khi đó: K={Mã số}, K'={Họ tên, ngày sinh} là các khóa chỉ định của quan
hệ Sinhviên (giả sử không có sinh viên nào trùng tên và ngày sinh). Nhưng
khi truy cập ta qui định sử dụng khóa K. Lúc này K được gọi là khóa chính.

Trung tâm Công Nghệ Phần Mềm Thừa Thiên Huế

5/ 20


6 / 20

Cơ sở dữ liệu quan hệ và phân tích thiết kế cơ sở dữ liệu – Nhóm CSDL

Trong quan hệ Dự thi khóa chính của nó sẽ là {Mã số,Mônthi}. Nhưng khóa
ngoại nhằm để nhận biết một sinh viên Nguyễn Văn A nào đó thi một môn
nào đó được bao nhiêu điểm là {Mã số}.
I.3 Các phép tính trên cơ sở dữ liệu quan hệ, đại số quan hệ và câu lệnh
SQL tương ứng:
Trong phần này trình bày các phép tính trên cơ sở dữ liệu quan hệ, đại số
quan hệ, và các lệnh tương ứng trong ngôn ngữ khai thác CSDL SQL.
I.3.1. Các phép tính trên quan hệ:
I.3.1.a. Phép khởi tạo lược đồ:
U= R(U) : U ={ A1,..,An}
Create R(A1,A2,..,An)
Lệnh tương ứng trong ngôn ngữ SQL:
CREATE TABLE {table_name}
(
column_name datatype [...]


6/ 20


7 / 20

Cơ sở dữ liệu quan hệ và phân tích thiết kế cơ sở dữ liệu – Nhóm CSDL

SET
Column_name1={expression1}
[, column_name2=..]
[WHERE search_conditions]
Nhận xét:
- Việc thêm hay một phần tử thì phải phù hợp với lược đồ quan hệ . Ðó là:
• Tương ứng thuộc tính
• Giá trị đưa vào năm trong miền giá trị của các thuộc tính.
- Khi cập nhật hay chèn, thêm một phần tử cần phải lưu ý tới khóa, để tránh
trường hợp khoá là rỗng hay trùng khoá với các phần tử khác.
I.3.2 Ðại số quan hê:
Ðại số quan hệ được trình bày xem như một phương pháp để mô hình hoá
các phép toán trên CSDL quan hệ. Ðồng thời đây cũng là một trong những
ưu điểm của mô hình dữ liệu quan hệ, đó là việc tiếp nhận các kết quả của
công cụ toán học trong việc xây dựng ngôn ngữ khai thác, xử lý dữ liệu.
Nhìn chung các phép toán của đại số quan hệ là khá đơn giản, nhưng nó khá
mạnh và là một đại số có tính đầy đủ, phi thủ tục. Tuy nhiên đây là một cơ
sở cho việc thiết lập các ngôn ngữ con dữ liệu bậc cao hơn.
Trong phần này ta nói rằng hai quan hệ r và s là khả hợp nếu chúng được
xây dựng trên cùng một lược đồ hay xây dựng trên các lược đồ khác nhau,
nhưng lược đồ này là lược đồ con của lược đồ kia.
Cho r, s là 2 quan hệ khả hợp, ta có:


Cơ sở dữ liệu quan hệ và phân tích thiết kế cơ sở dữ liệu – Nhóm CSDL

b. Phép giao (Intersection, conjonction, and):
r ∩ s = {t / t ∈ r ∧ t∈ s}.
Phép giao tác động lên hai QH: QH1, QH2 của cùng một lược đồ để tạo nên
QH3 có các bộ cùng thuộc QH1 lẫn QH2.
Lấy lại ví dụ a:
r ∩ s = (A B C)
a1 b1 c1
Dùng ngôn ngữ SQL:
SELECT * FROM r WHERE EXISTS (SELECT * FROM r WHERE
(r.A=s.A) and (r.B=s.B) and (r.C=s.C))
c. Phép hiệu:
r \ s = { t / t ∈ r ∧ t ∉ s}.
Phép hiệu tác động vào hai QH cùng một lược đồ: QH1, QH2 dể thu được
QH3 cùng lược đồ có các bộ thuộc QH1 nhưng không thuộc QH2.
Ví dụ:
Lấy lại ví dụ a:
r \ s = (A B C)
a2 b1 c2
a2 b2 c1
Dùng ngôn ngữ SQL:
SELECT * FROM r WHERE NOT EXISTS (SELECT * FROM r
WHERE (r.A=s.A) and (r.B=s.B) and (r.C=s.C))
d. Tích Ðêcac:
Cho hai lược đồ quan hệ
R(A1,....An) và S(B1,...Bn). Tích Ðề các của R và S ký hiệu R xS sẽ là một
lược đồ quan hệ được xây dựng trên tập các thuộc tính {A1,...,An,B1,...,Bn}
và với r ∈ R và s ∈ S.

a2 b1 c2 a2 b2 c2
a2 b2 c1 a1 b1 c1
a2 b2 c1 a2 b2 c2
(6 row(s) affected)
e. Phép bù:
Cho R là một lược đồ quan hệ R(A1,...,An); r ∈ R; miền giá trị của thuộc
tính Ai là dom(Ai). Ta gọi r' là quan hệ bù của r Nếu r'= {t/ t=(a1,...,an); ai ∈
dom(Ai) và t ∉ r}
Ví dụ:
Miền: NướcSX{Nhật, Vnam, Tquốc}, Màu{Ðà, Ðỏ, Trắng}
M_Xemay( NướcSX,
Mau)
Nhật
Ðà
Nhật
Ðỏ
Vnam
Ðà
Tquốc
Ðỏ
Tquốc
Trắng
NOT M_Xemay( NướcSX, Mau)
Nhật
Trắng
Vnam
Ðỏ
Vnam
Trắng
Tquốc

b. Phép chọn:
Phép chọn tác động trên QH1 tạo nên QH2 cùng một lược đồ nhưng chỉ gồm
những bộ thoả điều kiện mà tiêu chuẩn đã chỉ ra.
Kí hiệu:
 F ( r) = { t ⊂ r / F ( t ) =
đúng }
ở đây F(t) là giá trị của biểu thức F ứng với bộ t
Ví dụ:σA=a1 (r)
(A B)
a1 b1
Chọn lại trong danh sách r những bộ thỏa mãn điều kiện F.
c. Phép kết nối (join):
Phép kết nối là tác tử mà tác động của nó giúp kết hợp các bộ hai QH: QH1,
QH2 theo một điều kiện nhằm tạo nên QH3 chứa tất cả các bộ kết hợp thõa
điều kiện gọi là kết nối.
Cụ thể như sau:
Cho r(R); R={A1,........An}, S(U); U={B1,........Bn}
Gọi θ là một trong các phép so sánh >,
hệ r cho s như sau:
r / s ={ t / ∀ u ∈ s thì (t, u) ∈ r}
Phép chia là tác tử cho phép tìm thương của QH D(A1,A2,…, Ap,…, An)
Với QH d(Ap,..,An) là QH Q(A1, A2, …,Ap) mà trong đó các bộ khi kết nối
với tất cả các bộ của d sẽ cho một bộ của D.
Nhận xét:
Phép chia r / s thực hiện được khi mà U⊂ R
e) Kết ngoại: (Out join)
Các phép kết nối ở trên khi thực hiện sẽ làm mất những bộ ít nhất của một
QH khi nhưng QH phải kết nối không có hình chiếu đồng dạng với Thuộc
tính chiếu. Ðể có thể giử lại những phép kết có thể bảo toàn những bộ không
tương thích, với các giá trị rỗng ở cột liên quan. Chính với mục đích này
người ta đưa ra phép kết ngoại.
Trung tâm Công Nghệ Phần Mềm Thừa Thiên Huế

11/ 20


12 / 20

Cơ sở dữ liệu quan hệ và phân tích thiết kế cơ sở dữ liệu – Nhóm CSDL

Ðịnh nghĩa: Kết ngoại là tác tử tạo nên QH3 từ QH1 và QH2 bằng cách kết
nối hai QH và thêm vào các bộ của QH1 và Qh2 không thuộc vào quá trình
kết nối với các giá trị rỗng cho thuộc tính tương ứng.
Câu lệnh SQL tương ứng:
Lấy lại ví dụ a:
SELECT *
FROM r full outer join s
on (r.A=s.A)and (r.B=s.B)and(r.C=s.C)

FROM r left outer join s
on (r.A=s.A)and (r.B=s.B)and(r.C=s.C)
Kết quả:
A B C A B C
---- ---- ---- ---- ---- ---a1 b1 c1 a1 b1 c1
a2 b1 c2 NULL NULL NULL
a2 b2 c1 NULL NULL NULL
(3 row(s) affected)
Right join: Trã về mọi dòng của QH(bảng) bên phải của toán tử join và các
dòng của QH(bảng) bên trái toán tử join có giá trị bằng với dòng của bảng
bên phải.
Lấy lại ví dụ a:
SELECT *
FROM r right outer join s
on (r.A=s.A)and (r.B=s.B)and(r.C=s.C)
Trung tâm Công Nghệ Phần Mềm Thừa Thiên Huế

12/ 20


13 / 20

Cơ sở dữ liệu quan hệ và phân tích thiết kế cơ sở dữ liệu – Nhóm CSDL

Kết quả:
A
B
C
---------a1
b1

r1

r2

II.2. Các chiến lược tối ưu các câu lệnh truy vấn CSDL:
- Thực hiện các phép chiếu và chọn trước(chiếu trước chọn).
- Các phép toán có 2 quan hệ (2 ngôi) trở lên làm tiếp theo.
- Nên sắp các phép toán 1 ngôi xuống dưới trong cây đại số quan hệ
đễ giảm số lần vào ra dữ liệu.
- Nếu có 2 phép chọn, chiếu trên 1 r thì nhóm lại để đỡ truy cập đến
quan hệ trên disk.
II.3. Tối ưu hoá bằng cách phân rã câu hỏi truy vấn dữ liệu:
Phép tách:
Tách 1 câu hỏi truy vấn thành 2 câu hỏi của cùng biến chung.
Ví dụ: Tìm những học sinh trúng tuyển từ cơ sở dữ liệu THISINH gồm 2
danh sánh HSHS, HSDIEM
Ngôn ngữ SQL:
SELECT *
FROM HSHS, HSDIEM
Trung tâm Công Nghệ Phần Mềm Thừa Thiên Huế

14/ 20


15 / 20

Cơ sở dữ liệu quan hệ và phân tích thiết kế cơ sở dữ liệu – Nhóm CSDL

WHERE (HSHS.MASO =HSDIEM.MASO)
AND (HSDIEM.DIEM>= 5)

HÀNG(SỐHIỆU, MASỐSX)
SX(MASO,TÊNVÙNG)
UỐNG(TÊN,SỐHIỆU,SỐLƯỢNG,THỜIGIAN)

Trung tâm Công Nghệ Phần Mềm Thừa Thiên Huế

15/ 20


16 / 20

Cơ sở dữ liệu quan hệ và phân tích thiết kế cơ sở dữ liệu – Nhóm CSDL

Hãy in ra tên những người uống rượu hiệu sản xuất tại Bắc Ninh vào
năm 1979 có độ < 40o ?
Dùng đại số quan hệ:
RM=RƯỢU * UỐNG * HÀNG *SX
§K = “Bắc Ninh” ∧ NĂM = 1975 ∧ ÐỘ < 40
∏ TêN ( σ ®K(RM))
Dùng ngôn ngử SQL:
SELECT
UỐNG.TÊN
FROM RƯỢU,UỐNG,HÀNG,SX
WHERE (UỐNG.SỐHIỆU =RƯỢU.SỐHIỆU) AND
(RƯỢU.SỐHIỆU = HÀNG.SỐHIỆU) AND
(HÀNG.MÃSỐSX =SX.MÃSỐ) AND
(SX.TÊNVÙNG=”BẮC NINH”) AND
(RƯỢU.NĂMSX =1975) AND
(RƯỢU.ÐỘ < 40O)
Trong trường hợp CSDL lớn thì câu lệnh trên không tối ưu (có thể gây tràn


T4 = T3 < T2
Kết quả:
∏ TÊN(UỐNG < T4 )
III. XÂY DƯNG VÀ CHUẨN HOÁ QUAN HỆ:
Trong phần này trình bày các chuẩn và một số tiêu chuẩn để chuẩn hoá mô
hình dữ liệu nhằm:
- Có 1 tiêu chuẩn chung về sự đúng đắn của mô hình.
- Tránh được dư thừa dữ liệu bào đảm tính nhất quán dữ liệu, và tối ưu
trong lưu trữ.
III.1. Các dạng chuẩn:
- 0NF: Dạng chuẩn của 1 lược đồ có khóa.
- 1NF: Lược đồ quan hệ R được gọi là ở 1NF nếu mọi thuộc tính là
nguyên tố.
- 2NF: Lược đồ quan hệ R được gọi là ở 2NF nếu ở 1NF và mọi thuộc
tính phải phụ thuộc đầy đủ vào khoá.
- 3NF: Lược đồ quan hệ R được gọi là ở 3NF nếu ở 2NF và mọi thuộc
tính không phụ thuộc bắc cầu vào khoá.(Tức là tồn tại một thuộc tính
phụ thuộc vào thuộc tính không khóa).
III.2. Mô hình thực thể mối quan hệ:
Thực thể: (entity) là mô hình 1 lớp đối tượng cụ thể hoặc trừu tượng của
thế giới thực. Các đối tượng này tồn tại một cách khách quan và độc lập
tương đối với nhau, tồn tại của chúng không phụ thuộc vào hoạt động của hệ
thống và chúng liên hệ với nhau thông qua tổ chức của hệ thống hoặc hoạt
động của hệ thống.
Mổi thể hiện cụ thể gọi là bản thể hay cá thể.
Ví dụ: Trong thực thể SACH thì mổi cuốn sách là 1 cá thể.
Thuộc tính: Những thông tin về 1 thực thể mô hình bằng các thuộc tính.
Các loại thuộc tính:
Thuộc tính đơn (Sơ cấp) và thuộc tính phức hợp: những thuộc tính mà

HO TEN
SOCMND

KET HON

Mối quan hệ ISA:
CONGCHUC
HO TEN
SOCMND

DANG VIEN

Bản số: Xác định mối quan hệ như trên thực ra mới chỉ ra được mối quan hệ
mà chưa chỉ ra được độ phức tạp của mối quan hệ vấn đề đặt ra là làm sao để
biết mỗi cá thể của thực thể có thể có bao nhiêu kết hợp với các cá thể của
thực thể khác (ở đây đang đề cập đến bản số của một thực thể trong mối
quan hệ, trong thực tế người ta thường biểu diển bản số trực tiếp giữa hai
thực thể, theo đó bản số trực tiếp có các loại sau: (1:1), (1:n), (n:n).
Nguyên tắc xây dựng thực thể:
Nguyên tắc 1: Tất cả các thuộc tính của 1 thực thể phải độc lập tuyến tính
nghĩa là không thuộc tính nào được suy ra từ 1 hay nhiều thuộc tính khác.

Trung tâm Công Nghệ Phần Mềm Thừa Thiên Huế

18/ 20


19 / 20

Cơ sở dữ liệu quan hệ và phân tích thiết kế cơ sở dữ liệu – Nhóm CSDL

chức dữ liệu:
a/ Chuyển đổi 1 thực thể thành 1 lược đồ quan hệ:
Quy tắc 1: Biến 1 thực thể thành 1 lược đồ quan hệ. Mổi thực thể trong mối
quan hệ dữ liệu được chuyển thành 1 lược đồ quan hệ, tên của lược đồ quan
hệ là tên thực thể, thuộc tính và khoá của lược đồ quan hệ là thuộc tính và
khoá của thực thể, coa thể có thêm khoá ngoại.
Quy tắc Khoá ngoại:

Trung tâm Công Nghệ Phần Mềm Thừa Thiên Huế

19/ 20


20 / 20

Cơ sở dữ liệu quan hệ và phân tích thiết kế cơ sở dữ liệu – Nhóm CSDL

Thực thể tham gia vào mối quan hệ 2 ngôi và có cặp bản số (1:1)-(1:n) thì
lược đồ quan hệ sinh ra bởi thực thể ở nhánh (1:1) nhận thuộc tính khoá của
thực thể ở nhánh (1:n) là khoá ngoại.
Ví dụ: Tỉnh(MATINH,TENTINH),
Huyện(MAHUYEN,TENHUYEN,MATINH).
Quy tắc 2: Biến thực thể chuyên biệt hoá thành lược đồ quan hệ.
Một thực thể chuyên biệt hoá (thực thể con trong quan hệ ISA) trong mô
hình quan niệm dữ liệu được biến thành 1 lược đồ quan hệ tên là tên thực thể
chuyên biệt hoá có các thuộc tính là thuộc tính của thực thể chuyên biệt hoá
và nhân khoá của thực thể cha làm khoá.
Ví dụ:
CONGCHUC(MACC, TENCC, NGSINH,..)
DANGVIEN(NGVDANG, NGCT, MACC).


Nhờ tải bản gốc

Tài liệu, ebook tham khảo khác

Music ♫

Copyright: Tài liệu đại học © DMCA.com Protection Status