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

Thiết kế CSDL mức quan niệm

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 (418.35 KB, 97 trang )


Thiết kế CSDL mức quan niệm
Trình bày: Nguyễn Đăng Khoa

Nội dung

Dẫn nhập - Những mục tiêu chính

Dạng chuẩn

Cấu trúc CSDL tương đương

2 cách tiếp cận để thiết kế CSDL

Dẫn nhập

Đầu vào: kết quả của giai đoạn phân tích nhu cầu, có thể


Sơ phác cấu trúc CSDL (bằng 1 mô hình dữ liệu: mô hình
quan hệ, thực thể kết hợp, …) gồm các quan hệ con Q'
1
, Q'
2
,
… Q'
3
và các phụ thuộc dữ liệu định nghĩa trên mỗi quan hệ
con: D'
1
, D'


2
, …, D'
m
C
0
' = {<Q
1
', D'
1
>, <Q
2
', D'
2
>,…<Q
m
', D'
m
> } (a)

1 sơ phác tổng thể bao gồm 1 quan hệ duy nhất Q
0
và 1 tập
các phụ thuộc D
0
C
0
= <Q
0
, D
0

> (b)

Dẫn nhập

Thiết kế CSDL mức quan niệm

Biến đổi đầu vào thành 1 cấu trúc CSDL quan
niệm “tốt” hơn, “phù hợp” hơn với các yêu cầu của
môi trường ứng dụng

Dựa trên 1 số tiêu chuẩn thiết kế
C
0
' = <Q'
i
, D'
i
> C
0
= <Q
0
, D
0
>
Thiết kế CSDL mức
quan niệm
C = <Q
j
, D
j

>

Giả thuyết quan hệ phổ quát

Là nền tảng của các nghiên cứu về mô hình
quan hệ và phụ thuộc dữ liệu ứng dụng vào
việc thiết kế CSDL

Khái niệm quan hệ phổ quát

Mỗi môi trường ứng dụng đều có thể được mô
hình hóa bằng 1 quan hệ duy nhất, gọi là quan hệ
phổ quát, ký hiệu U

Quan hệ phổ quát tập trung tất cả các thuộc tính
của môi trường ứng dụng

Giả thuyết quan hệ phổ quát

Nếu cấu trúc sơ phác CSDL là C
0
' (trường hợp
a), ngầm hiểu quan hệ phổ quát U như sau:

U chứa tất cả các thuộc tính của quan hệ con Q'
i

Mỗi quan hệ con Q'
i
là kết quả của phép chiếu của U

lên Q'
i
+
: ∀i, Q'
i
= U[Q'
i
+
]

Nếu cấu trúc sơ phác là C
0
(trường hợp b), khái
niệm quan hệ phổ quát đã ngầm được sử dụng

Giả thuyết quan hệ phổ quát

Hệ quả
i. Mỗi 1 thuộc tính có 1 ý nghĩa duy nhất. Dù thuộc
tính này hiện diện trong quan hệ con hay quan hệ
phổ quát, ý nghĩa của nó vẫn như nhau
ii. Giữa 2 thuộc tính chỉ có 1 mối kết hợp mang ý
nghĩa duy nhất

Ví dụ 3.1

Cho môi trường ứng dụng với 3 quan hệ con như
sau
ĐẶT_HÀNG (Mã_ĐH, Ngày),


ĐH
= {Mã_ĐH → Ngày}
THỐNG_KÊ_HÀNG_GIAO (Mã_HG, Ngày, Lượng)

TKHG
= {Mã_HG, Ngày → Lượng}
CHI_TIẾT_ĐẶT_HÀNG (Mã_ĐH, Mã_HG, Lượng)

CTĐH
= {Mã_ĐH, Mã_HG → Lượng}

Ví dụ 3.1

Các thuộc tính Ngày và Lượng có ý nghĩa
khác nhau trong các quan hệ khác nhau

Gây ra tình trạng nhập nhằng về ngữ nghĩa,
dẫn đến kết quả sai trong quá trình thiết kế lại
cấu trúc CSDL khi áp dụng luật dẫn cho phụ
thuộc dữ liệu trên toàn cục

Từ (Mã_ĐH → Ngày) và (Mã_HG, Ngày →
Lượng) ta suy dẫn được PTH (Mã_HG, Mã_ĐH →
Lượng), dù PTH này không đúng trên thực tế

Ví dụ 3.1

Phải đặt tên lại cho các thuộc tính

Ngày trong ĐẶT_HÀNG thành Ngày_ĐH


Ngày trong THỐNG_KÊ_HÀNG_GIAO thành
Ngày_TK



Ví dụ 3.2

Cho quan hệ NHÂN_VIÊN (Mã_NV, Tên_NV,
Ngày)
Ý nghĩa mối kết hợp giữa Mã_NV và Ngày: Ngày
sinh của nhân viên
⇒ Mối kết hợp này là duy nhất: nếu cần thêm
thông tin về ngày tuyển dụng, ta phải dùng thêm 1
thuộc tính Ngày_TD, không thể thêm 1 ý nghĩa
khác cho mối kết hợp giữa Mã_NV và Ngày

Cơ chế kiểm tra PTH

PTH: 1 loại ràng buộc toàn vẹn quan trọng trong
CSDL quan hệ

Cần chọn cấu trúc CSDL sao cho việc kiểm tra
PTH hiệu quả nhất

Xem xét

Cơ chế kiểm tra PTH nào được hệ quản trị CSDL hỗ
trợ


Thời điểm cần kiểm tra PTH trong quá trình khai
thác CSDL?

Cơ chế khóa

Cho 1 quan hệ Q, 1 khóa K của Q
Cơ chế khóa là cơ chế có sẵn của Hệ quản trị CSDL
nhằm đảm bảo:

∀q, q' ∈ Q sao cho q ≠ q', q.K ≠ q'.K

Hệ thống chỉ mục với giá trị duy nhất là 1 ví dụ của cơ
chế khóa

Cơ chế khóa đảm bảo kiểm tra hiệu quả các phụ thuộc
hàm dạng K → A, với A ∈ Q
+
và K là khóa của Q (Không
cần duyệt tuần tự qua tất cả các bộ trong TQ)

Hợp lệ hóa tình trạng 1 quan hệ

Cho 1 quan hệ Q(ABC) với khóa là A, và các PTH
được định nghĩa trên Q
ℱ = {B → C, A → BC}

Cho 1 tình trạng của Q

Tình trạng của Q được hợp lệ hóa đối với các PTH
định nghĩa trên Q nếu TQ thỏa tất cả các PTH này

A B C
a
1
b
1
c
1
a
2
b
2
c
2
a
3
b
3
c
3
a
4
b
2
c
1

Hợp lệ hóa tình trạng 1 quan hệ

Kiểm tra B → C, đảm bảo:
∀q, q’ Q, nếu q.B = q’.B thì q.C = q’.C∈

⇒ Cần duyệt qua tất cả các bộ của TQ để
kiểm tra ⇒ tốn kém và mất thời gian khi TQ
lớn

Kiểm tra A→ BC: nhờ cơ chế khóa của HQT
CSDL, việc kiểm tra PTH này sẽ hiệu quả hơn

Hợp lệ hóa tình trạng 1 quan hệ

Cho một tình trạng TQ
1
đã hợp lệ

TQ
1
được biến đổi thành TQ
2
sau một vài thao tác

Các thao tác biến TQ
1
thành TQ
2
có thể gây ra tình trạng không hợp
lệ cho TQ
2
⇒ cần phải hợp lệ hóa TQ
2
(kiểm tra lại xem F có còn thỏa
trong TQ

2
)

Các thao tác có thể xảy ra trên TQ
1

Thêm một bộ: phải kiểm tra lại các PTH trong ℱ

Xóa một bộ: không cần kiểm tra lại PTH (nhưng có nguy cơ bị mất thông tin)

Sửa một bộ: phải kiểm tra lại PTH và có nguy cơ bị mất thông tin (Sửa = Xoá
+ Thêm)

Các mục tiêu thiết kế

Hai tiêu chuẩn quan trọng cần đạt được trong
quá trình thiết kế CSDL mức quan niệm

Cấu trúc CSDL kết quả (đầu ra của giai đoạn thiết
kế mức quan niệm) cần đạt dạng chuẩn cao nhất

Cấu trúc CSDL kết quả phải tương đương với cấu
trúc ban đầu

Các mục tiêu thiết kế

Tiêu chuẩn về dạng chuẩn

Giảm tối đa sự trùng lắp thông tin, từ đó tránh
được một số bất tiện khi cập nhật CSDL


Các phụ thuộc dữ liệu được kiểm tra dễ dàng
nhất, đơn giản và tương đối ít tốn kém nhất

Tiêu chuẩn tương đương:

Đảm bảo các thông tin trong quan hệ phổ quát sẽ
được tìm thấy đầy đủ trong CSDL của cấu trúc kết
quả

Các mục tiêu thiết kế

Một CSDL thỏa mãn tiêu chuẩn về dạng chuẩn và tính
tương đương đảm bảo cho việc khai thác nó được
thuận lợi trên cả ba phương diện:

Truy vấn: tiêu chuẩn tương đương đảm bảo các thông tin
được truy xuất từ CSDL là những thông tin đã được phân
tích

Cập nhật: Tiêu chuẩn dạng chuẩn giảm bớt các tình huống
thông tin mâu thuẫn sau khi cập nhật

Kiểm tra ràng buộc toàn vẹn: cả hai tiêu chuẩn đều hướng
đến mục tiêu là kiểm tra RBTV dạng phụ thuộc dữ liệu
được thuận lợi

Nội dung

Dẫn nhập - Những mục tiêu chính


Dạng chuẩn

Cấu trúc CSDL tương đương

2 cách tiếp cận để thiết kế CSDL

Quan hệ được chuẩn hóa

Trước khi Codd đề nghị khái niệm dạng chuẩn (1970),
công nghệ lưu trữ dữ liệu khuyến khích cấu trúc dữ liệu
phân cấp, trong đó có nhiều trường lặp

Ví dụ 3.3
DANH_SÁCH_LỚP (TênLớp, SỉSố, (TênHS, (Điểm)*15)*30)

Điểm được lặp lại 15 lần (mỗi học sinh có tối đa 15 cột điểm)

Thông tin về mỗi học sinh (tên học sinh, các điểm) được lặp lại
30 lần (lớp học có tối đa 30 học sinh)

Quan hệ được chuẩn hóa

Ví dụ 3.3
DANH_SÁCH_LỚP (TênLớp, SỉSố, (TênHS,
(Điểm)*15)*30)

Hình sau minh họa dữ liệu của quan hệ
DANH_SÁCH_LỚP
TênLớp SỉSố TênHS_

1
Điểm_
11
Điểm_
12
Điểm_115 TênHS_2 Điểm_21
11A1 30 Nguyễn
Văn A
8 9 3 Trần Văn
B
7
11A2 28 Lê Thị C 3 8

Quan hệ được chuẩn hóa

E.F. Codd đề nghị cấu trúc lưu trữ chuẩn hóa, theo đó, cấu trúc
CSDL trong ví dụ 3.3 trở thành:
DANH_SÁCH_HS (TênLớp, SỉSố, STT
1
, TênHS)
ĐiỂM_HS_LỚP (TênLớp, STT
1
, STT
2
, Điểm)

Các thuộc tính STT
1
, STT
2

sau đó được thay bằng tên gọi có tính gợi nhớ,
phù hợp với ngữ nghĩa của chúng

STT
1
: mã số học sinh trong lớp, thay bằng “MãHS”.

STT
2
: môn học, thay bằng “Môn”

Hai quan hệ trên trở thành
DANH_SÁCH_HS (TênLớp, SỉSố, MãHS, TênHS)
ĐiỂM_HS_LỚP (TênLớp, MãHS, Môn, Điểm)

Quan hệ được chuẩn hóa

Minh họa cho dữ liệu của cấu trúc đã chuẩn
hóa
DANH_SÁCH_HS ĐIỂM_HS_LỚP
TênLớp SỉSố MãHS TênHS
11B1 30 001 Nguyễn Văn A
11B2 28 002 Nguyễn Thị B
11B2 28 005 Trần Văn C
TênLớp MãHS Môn Điểm
11B1 001 Toán 7
11B1 001 Lý 9
11B2 002 Lý 5
11B2 002 Toán 7
11B2 005 Toán 10

11B2 005 Hóa 8


Dạng chuẩn 1

Các quan hệ trong cấu trúc CSDL được chuẩn
hóa như trên gọi là quan hệ ở dạng chuẩn 1

Dạng chuẩn 1

Một quan hệ ở dạng chuẩn 1 không có các trường
lặp và các trường kép, còn được gọi là cấu trúc
phẳng

×