Tải bản đầy đủ (.ppt) (50 trang)

Bài giảng điện tử môn tin học: Mô hình dữ liệu quan hệ pot

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 (295.83 KB, 50 trang )


BÀI 2 – MÔ HÌNH DỮ LIỆU QUAN HỆ
CƠ SỞ DỮ LIỆU

I. Các khái niệm cơ bản
II. Các phép toán cơ bản
III. Tổ chức dữ liệu vật lý
BÀI 2 – MÔ HÌNH DỮ LIỆU QUAN HỆ

I. Các khái niệm cơ bản
1. Quan hệ
* Miền (Domain)
- Là một tập các giá trị.
- Ví dụ:

Tập các số nguyên là một miền.

Tập các xâu ký tự tạo thành tên người trong tiếng anh có dài không quá 30
ký tự là một miền.

Tập hai số {0,1} là một miền …
- Các thuộc tính của đối tượng sẽ nhận các giá trị trong miền.
BÀI 2 – MÔ HÌNH DỮ LIỆU QUAN HỆ

1. Quan hệ
* Tích đề các của các miền
- Gọi D
1
, D
2
, D


3
, …, Dn là n miềm. Tích đề các của n miền là D
1
x D
2
x
D
3
x …x D
n
là tập tất cả n bộ (n-tuples) (V
1
, V
2
,…, V
n
) sao cho V
i

thuộc D
i
với i = 1 n.
-
Ví dụ, với n = 2, D1= {0,1}, D2 = {a,b,c}
 Tích đề các của D1 x D2 = {(0,a), (0,b), (0,c),(1,a), (1,b), (1,c)}.
I. Các khái niệm cơ bản
BÀI 2 – MÔ HÌNH DỮ LIỆU QUAN HỆ

1. Quan hệ
* Quan hệ (Ralation)

- Quan hệ 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 ta có thể xem quan hệ là bảng 2 chiều (bảng quan hệ) có
các dòng và các cột:

Các cột ứng với các miền.

Các dòng ứng với các bộ của tích đề các.
- Do tích chất của tích đề các, thứ tự các cột cũng như thứ tự các
dòng trong bảng là không quan trọng.
* Thuộc tính (Atribute)
- Thuộc tính của một quan hệ là cột của bảng quan hệ, đặc trưng bởi
một tên.
I. Các khái niệm cơ bản
BÀI 2 – MÔ HÌNH DỮ LIỆU QUAN HỆ

1. Quan hệ
* Định nghĩa quan hệ một cách hình thức
Định nghĩa 1: Gọi R = {A
1
,…, A
n
} là tập hữu hạn các thuộc tính, mỗi
thuộc tính A
i
với i = 1 n có miền giá trị tương ứng là dom(A
i
). Khi đó r
là quan hệ xác định trên tập thuộc tính R ký hiệu là r(R) hoặc r(A
1
,

…,A
n
) nếu r là tập con của tích đề các.
r dom(A
1
)xdom(A
2
)x…xdom(A
n
)
 Với định nghĩa quan hệ này thì chúng ta gọi R là sơ đồ (lược đồ)
quan hệ và nói quan hệ r xác định trên sơ đồ (lược đồ) quan hệ R.
I. Các khái niệm cơ bản
BÀI 2 – MÔ HÌNH DỮ LIỆU QUAN HỆ

1. Quan hệ
- Ví dụ: Hình 1 cho thấy quan hệ NHAN_VIEN bao gồm các thuộc tính
HO_TEN, NAM_SINH, NOI_LAM_VIEC và LUONG.
 Khi đó t1 = (Lê văn A, 1960, Viện KHNV, 425) là một bộ của quan
hệ NHAN_VIEN.
I. Các khái niệm cơ bản
BÀI 2 – MÔ HÌNH DỮ LIỆU QUAN HỆ

2. Khóa (key)
Định nghĩa 2.1: Khóa của một quan hệ r trên tập thuộc tính R={A
1
,
…,A
n
} là một tập con K{A

1
,…,A
n
} thỏa mãn tính chất sau:
-
Với bất kỳ 2 bộ t1, t2 thuộc r đều tồn tại một thuộc tính A thuộc K sao
cho t1(A) ≠ t2(A).
-
Nói 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. Khi đó ta 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.
I. Các khái niệm cơ bản
BÀI 2 – MÔ HÌNH DỮ LIỆU QUAN HỆ

2. Khóa (key)
- Để có thể định nghĩa khóa một cách tốt hơn, lưu ý rằng, nếu K’ là khóa
của quan hệ r(A
1
,…,A
n
) thì với mọi K sao cho K’ K, K cũng là khóa của
r, nghĩa là bất kỳ t
1
, t
2
thuộc r từ t
1
(K’)≠t
2
(K’) luôn có t

1
(K)≠t
2
(K).
Định nghĩa 2.2: Khóa tối thiểu của quan hệ r xác định trên tập thuộc
tính R là tập con K R sao cho bất kỳ 2 bộ khác nhau t
1
, t
2
thuộc r luôn
thỏa t
1
(K)≠t
2
(K) và bất kỳ tập con thực sự K’ của K đều không có tính
chất đó.
- Thông thường người ta lựa chọn một khóa tối thiểu tốt nhất làm
khóa chính của quan hệ, các khóa tối thiểu khác được xem là khóa dự
phòng.
I. Các khái niệm cơ bản
BÀI 2 – MÔ HÌNH DỮ LIỆU QUAN HỆ

2. Khóa (key)
Định nghĩa 2.3: Một tập con K R được gọi là khóa ngọai của quan hệ r
xác định trên tập thuộc tính R tham chiếu đến quan hệ r’ nếu K là khóa
chính của quan hệ r’.
- Ví dụ, Ta có quan hệ HANG_HOA như sau:

Trong quan hệ này thì MSMH là khóa. Mỗi giá trị MSMH đều xác
định duy nhất một loại mặt hàng trong quan hệ HANG_HOA.

I. Các khái niệm cơ bản
BÀI 2 – MÔ HÌNH DỮ LIỆU QUAN HỆ

II. Các phép toán trên cơ sở dữ liệu quan hệ
-
Các phép toán cơ bản nhờ đó là CSDL được thay đổi là

Chèn (insert)

Loại bỏ (delete)

Thay đổi (change)
- Trong mô hình quan hệ được nên trên thì các phép toán này đước áp
dụng cho từng bộ của các quan hệ lưu trữ trong máy.
BÀI 2 – MÔ HÌNH DỮ LIỆU QUAN HỆ

1. Phép chèn (INSERT)
- Phép chèn là phép thêm một bộ vào quan hệ r(A
1
,…, A
n
) có dạng r = r t.
- Nó có dạng: INSERT(r; A
1
=d
1
, A
2
=d
2

,…,A
n
=d
n
). Trong đó Ai với i=1 n
là tên của các thuộc tính và di thuộc vào dom(Ai) là các giá trị thuộc miền trị tương
ứng của thuộc tính Ai.
- Ví dụ: Thêm một bộ t4 = (Vũ văn tần, 1960, Trường ĐHBK, 425) vào
quan hệ NHAN_VIEN trong hình 1 như sau:
INSERT(NHAN_VIEN; HO_TEN = Vũ văn tần, NAM_SINH =
1960, NOI_LAM_VIEC = Trường ĐHBK, LUONG = 425).
- Nếu xem thứ tự các trường là cố định, khi đó ta có thể biểu diễn phép
chèn như sau:
INSERT(r; d1,d2,…,dn).
II. Các phép toán trên cơ sở dữ liệu quan hệ
BÀI 2 – MÔ HÌNH DỮ LIỆU QUAN HỆ

1. Phép chèn (INSERT)
- Kết quả của phép chèn có thể gây ra một số sai sót với những
lý do sau:
II. Các phép toán trên cơ sở dữ liệu quan hệ
BÀI 2 – MÔ HÌNH DỮ LIỆU QUAN HỆ

Bộ mới được thêm vào là không phù hợp với lược đồ quan hệ cho
trước.

Một số giá trị của một số thuộc tính nằm nằm ngoài miền giá trị của
thuộc tính đó.

Giá trị khóa của bộ mới có thể là giá trị đã có trong quan hệ đang

lưu trữ.

2. Phép loại bỏ (DEL)
-
Phép loại bỏ là phép xóa một bộ ra khỏi quan hệ cho trước, nó có dạng: r=r – t
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ụ, cần loại bỏ t1 từ quan hệ NHAN_VIEN trong hình 1 như sau:
DEL (NHAN_VIEN; Lê văn A, 1960, Viện KHNV, 425)
II. Các phép toán trên cơ sở dữ liệu quan hệ
BÀI 2 – MÔ HÌNH DỮ LIỆU QUAN HỆ


2. Phép loại bỏ (DEL)
- Tuy nhiên không phải lúc nào phép loại bỏ cũng cần đầy đủ thông tin
về cả bộ. Nếu có giá trị về bộ đó tại thuộc tính khóa K={B
1
,…,B
n
}khi đó
phép loại bỏ chỉ cần viết:
DEL (r; B
1
=e
1
, B
2
=e
2
,…,B
i
=e
i
).
- Ví dụ, cần loại bỏ sắt phi 6 ra khỏi quan hệ HANG_HOA (hình 2), khi
đó chỉ cần viết:
DEL (HANG_HOA; MSMH=10101)
II. Các phép toán trên cơ sở dữ liệu quan hệ
BÀI 2 – MÔ HÌNH DỮ LIỆU QUAN HỆ

3. Phép thay đổi (CH)
- Dùng để sửa đổi một số giá trị nào đó tại một số thuộc tính nào đó của
quan hệ r.

-
Gọi tập {C
1
, ,C
p
} {A
1
, ,A
n
} là tập các thuộc tính mà tại đó các giá trị
của bộ cần thay đổi, khi đó phép thay đổi có dạng: r = r\t t.
CH(r;A
1
=d
1
,A
2
=d
2
,…,A
n
=d
n
; C
1
=e
1
,C
2
=e

2
,…,C
p
=e
p
)
- Nếu K={B1,…,Bm}là khóa của quan hệ, khi đó chỉ cần viết phép thay
đổi như sau:
CH(r;B
1
=d
1
,B2=d
2
,…,B
m
=d
m
; C
1
=e
1
,C
2
=e
2
,…,C
p
=e
p

)
-
Ví dụ, cần thay đổi số lượng sắt phi 8 trong quan hệ HANG_HOA (hình
2) còn 150 tấn như sau:
CH(HANG_HOA; MSMH=10102;SOLUONG=150)
II. Các phép toán trên cơ sở dữ liệu quan hệ
BÀI 2 – MÔ HÌNH DỮ LIỆU QUAN HỆ

III. Tổ chức dữ liệu vật lý
1. Mô hình tổ chức bộ nhớ ngoài
BÀI 2 – MÔ HÌNH DỮ LIỆU QUAN HỆ
2. Tổ chức dữ liệu dạng Tệp băm (Hashed File)
3. Tổ chức dữ liệu dạng Tệp chỉ số (Indexed Files)
4. Tổ chức dữ liệu dạng B-cây (Balanced trees) (cây cân bằng)

III. Tổ chức dữ liệu vật lý
1. Mô hình tổ chức bộ nhớ ngoài
- Bộ nhớ ngoài được phân chia thành các khối vật lý có kích cỡ như
nhau. Mỗi khối chiếm khoảng 512 bytes đến 4090 bytes và được đánh
địa chỉ khối. Địa chỉ này là địa chỉ tuyệt đối trên đĩa.
- Mỗi tệp dữ liệu lưu trữ trên đĩa sẽ 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 của tệp mà thực chất là thông qua địa chỉ tuyệt đối
của các khối.
BÀI 2 – MÔ HÌNH DỮ LIỆU QUAN HỆ

1. Mô hình tổ chức bộ nhớ ngoà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 thường được lưu ở một tệp hoặc
một vị trí nào đó để khi cần, qua đó có thể truy nhập tới dữ liệu cần thiết.
Chỉ dẫn đó được gọi là con trỏ (pointer).
III. Tổ chức dữ liệu vật lý
BÀI 2 – MÔ HÌNH DỮ LIỆU QUAN HỆ

2. Tổ chức dữ liệu dạng Tệp băm (Hashed File)
2.1. Tổ chức tệp dữ liệu
- Khái niệm hàm băm: Nếu mỗi bản ghi đều có một khóa là giá trị số
(ví dụ là 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 nào đó (thường lấy k là một số
nguyên tố) khi đó ta xác định hàm băm như sau: h(x) = x mod k.
- Tư tưởng cơ bản của tổ chức tệp băm là phân chia tập hợp các bản
ghi của tệp dữ liệu thành các cụm. Mỗi cụm bao gồm một hoặc nhiều
khối. Mỗi khối chứa một số lượng cố định các bản ghi.
III. Tổ chức dữ liệu vật lý
BÀI 2 – MÔ HÌNH DỮ LIỆU QUAN HỆ

2. Tổ chức dữ liệu dạng Tệp băm (Hashed File)
2.1. Tổ chức tệp dữ liệu
- Mỗi cụm ứng với một địa chỉ băm. Địa chỉ băm được đánh số từ 0 tới
k-1. Ở đầu mỗi khối đều chứa con 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 chứa k con trỏ, mỗi con trỏ ứng với mỗi
cụm, đó là địa chỉ của khối đầu tiên trong cụm.
III. Tổ chức dữ liệu vật lý
BÀI 2 – MÔ HÌNH DỮ LIỆU QUAN HỆ

2. Tổ chức dữ liệu dạng Tệp băm (Hashed File)
2.1. Tổ chức tệp dữ liệu

- Ví dụ, hình 3 là mô hình tổ chức tệp băm với k cụm:

Cụm 0 có 2 khối b1 và b2. Khối b2 có con trỏ rỗng “Null”.

Cụm 1 có 1 khối b3 và một con trỏ rỗng.

Cụm k-1 có 3 khối b4, b5, b6. Khối b6 có con trỏ rỗng.
III. Tổ chức dữ liệu vật lý
BÀI 2 – MÔ HÌNH DỮ LIỆU QUAN HỆ

2. Tổ chức dữ liệu dạng Tệp băm (Hashed File)
2.1. Tổ chức tệp dữ liệu
- 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.
III. Tổ chức dữ liệu vật lý
BÀI 2 – MÔ HÌNH DỮ LIỆU QUAN HỆ

2. Tổ chức dữ liệu dạng Tệp băm (Hashed File)
2.2. Các thao tác trên tổ chức tệp băm
2.2.1. Tìm kiếm một bản ghi
-
Đê tìm bản ghi có khóa x trước hết ta phải tính hàm băm h(x).
III. Tổ chức dữ liệu vật lý
BÀI 2 – MÔ HÌNH DỮ LIỆU QUAN HỆ
-
Giả sử h(x) = i, i sẽ là địa chỉ băm của cụm i.
Tìm trong khối này xem liệu có bản ghi có khóa x hay không, theo con
trỏ ở đầu khối tìm đến 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 đó.
-

Trong bảng chỉ dẫn cụm cho biết con trỏ tới khối đầu tiên (nếu có)
tương ứng với i.

2. Tổ chức dữ liệu dạng Tệp băm (Hashed File)
2.2. Các thao tác trên tổ chức tệp băm
2.2.2. Thêm một bản ghi
- Giả sử cần thêm bản ghi có khóa x vào tệp, thủ tục được thực hiện
giống như việc tìm kiếm một bản ghi:

Nếu trong tệp đã có một bản ghi có trùng khóa x chứng tỏ bản ghi mới là sai.

Nếu không có bản ghi trùng khóa, bản ghi có khóa x được thêm vào khối đầu tiên
trong cụm còn chỗ trống.
III. Tổ chức dữ liệu vật lý
BÀI 2 – MÔ HÌNH DỮ LIỆU QUAN HỆ

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 trường hợp
này thì 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.

×