I. Mô hình thực thể - kết hợp (Entity Relationship
Model)
Giáo trình này sẽ tập trung vào mô hình thực thể kết hợp (TT-KH) – mô hình được sử
dụng nhiều nhất trong việc thiết kế quan niệm dữ liệu. Mô hình TT-KH được giới thiệu
bởi CHEN vào nằm 1976 và đã trở nên phổ biến ngày càng nhiều hơn. Đến năm 1988,
ANSI chọn mô hình TT-KH là mô hình chuẩn cho Hệ thống tự điển tài nguyên thông tin
(IRDSS: Information Resource Dictionary System).
Đầu tiên, mô hình TT-KH chỉ bao gồm các khái niệm thực thể, kết hợp và thuộc tính. Về
sau, một số khái niệm khác như là thuộc tính kết hợp, cấu trúc cây tổng quát hóa được bổ
sung vào mở rộng hơn mô hình TT-KH. Trong phần tiếp theo chúng ta sẽ xem xét các
khái niệm cơ bản, sau đó sẽ xét đến các khái niệm mở rộng.
Mô hình thực thể kết hợp là một sự trình bày chi tiết, luận lý về dữ liệu cho một đơn vị tổ
chức hoặc một phạm vi nghiệp vụ xác định. Mô hình TT-KH được diễn đạt bằng các
thuật ngữ thực thể trong môi trường nghiệp vụ, các mối kết hợp hoặc các liên kết giữa các
thực thể này, và các thuộc tính hoặc các đặc trưng của tất cả thực thể và mối kết hợp. Một
mô hình TT-KH thường được thể hiện dưới dạng sơ đồ và được gọi là sơ đồ TT-KH
(ERD – Entity-Relationship Diagram). Cho đến bây giờ đã tồn tại nhiều khái niệm dùng
để biểu diễn các thành phần của mô hình TT-KH, trong giáo trình này chúng ta sẽ tiếp
cận một tập các khái niệm cơ bản, nếu chúng ta dùng một ký hiệu khác thì chúng ta cũng
dễ dàng chuyển đổi giữa chúng.
I.1 Các yếu tố cơ bản của mô hình thực thể kết hợp
Mô hình TT-KH giới thiệu các khái niệm cơ bản là thực thể, mối kết hợp và thuộc tính.
Nên lưu ý rằng chúng ta dùng thuật ngữ thực thể và mối kết hợp để biểu thị một lớp các
đối tượng, Trong một số tài liệu khác, các tác giả có thể dùng thuật ngữ tương đương là
loại thực thể và loại mối kết hợp.
I.1.1. Thực thể
Thực thể biểu diễn lớp các đối tượng của thế giới thực. Các đối tượng này có thể phân
thành 2 loại:
- Đối tượng hữu hình: các đối tượng có thể quan sát một cách trực quan. Ví dụ:
PHÒNG, TOÀ NHÀ, NHÂN VIÊN, SINH VIÊN,
- Các đối tượng vô hình: là các đối tượng trừu tượng không cảm nhận được một
cách trực quan. Ví dụ: DỰ ÁN, LỚP HỌC, PHÒNG BAN,
115 trang |
Chia sẻ: Thục Anh | Ngày: 12/05/2022 | Lượt xem: 406 | Lượt tải: 1
Bạn đang xem trước 20 trang nội dung tài liệu Giáo trình Phân tích thiết kế hệ thống thông tin (Phần 2) - Phạm Nguyễn Cương, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
sinh liên quan như gởi tiền vào,
rút tiền ra hay tính lãi tiền gởi ngân hàng. Mỗi
biến động phát sinh bao gồm các thông tin như số
phát sinh, ngày, loại phát sinh và trị giá.
Phần 3 – Thiết kế Chương 10 – Thiết kế dữ liệu
232
Khaùch haøng
Taøi khoaûn
Phaùt sinh
chuû
lieân quan
1,n
1,3
1,n
1,2
Maõ soá KH
Soá taøi khoaûn
Soá phaùt sinh
Teân
Ñieän thoaïi (1,n)
Ñiaï chæ
Caân soá KH
Soá löôïng taøi
khoaûn
Dö soá tôùi haïn
Caân soá taøi kh
Ngaøy
Loaïi phaùt sinh
Trò giaù
AVG=2
AVG=1,5
AVG=1,33
Hình 7.2 a: Lược đồ thực thể kết hợp
Khái niệm Loại Khối lượng
Khách hàng Thực thể 15.000
Tài khoản Thực thể 20.000
Phát sinh Thực thể 600.000
Chủ Kết hợp 30.000
Liên quan Kết hợp 800.000
Mã số KH Thuộc tính 15.000
Tên KH Thuộc tính 15.000
Điện thoại Thuộc tính 22.000
Địa chỉ Thuộc tính 15.000
Cân số KH Thuộc tính 15.000
Số lượng tài khoản Thuộc tính 10
Dư số tới hạn Thuộc tính 50
Số tài khoản Thuộc tính 20.000
Cân số tài khoản Thuộc tính 20.000
Số phát sinh Thuộc tính 600.000
Ngày Thuộc tính 730
Loại Thuộc tính 10
Trị giá Thuộc tính 600.000
Hình 7.2 b: Bảng tổng kết khối lượng
Tên tác vụ Khái niệm Loại Đọc
Ghi
Tần suất
(/ngày) /
Bản số t.bình
01: Mở tài khoản Tài khoản
Khách hàng
Chủ
Thực thể
Thực thể
Kết hợp
Ghi
Ghi
Ghi
100
100 x 1,5 =
150
100 x 1,5 =
150
02: Đọc cân số khách
hàng
Khách hàng Thực thể Đọc 3000
Phần 3 – Thiết kế Chương 10 – Thiết kế dữ liệu
233
03: Hiển trị 10 phát
sinh gần nhất
Tài khoản
Liên quan
Phát sinh
Thực thể
Kết hợp
Thực thể
Đọc
Đọc
Đọc
200
200 x 40 =
8000
Chọn 2000
trong 8000
04: Rút tiền Tài khoản
Khách hàng
Thực thể
Thực thể
Đọc
Ghi
Đọc
2000
2000
2000x1,5 =
3000
05: Gởi tiền Tài khoản
Khách hàng
Thực thể
Thực thể
Đọc
Ghi
Đọc
1000
1000
1000x1,5 =
1500
06: In sổ phụ hàng
tháng
07: In các tài khoản
liên quan đến một
khách hàng
08: Hiển thị các phát
sinh của các tài khoản
có cân số âm
1 lần / tháng
75
20
Hình 7.2 c: Bảng tác vụ truy vấn / khối lượng
Chúng ta hãy xem xét thuộc tính Cân số khách hàng của thực thể Khách
hàng. Thuộc tính này có thể tính toán bằng lấy tổng của các thuộc tính
Cân số tài khoản của tất cả tài khoản của khách hàng đó.
Chúng ta lưu ý các điểm sau:
Tác vụ O1 (mở tài khoản), O3 (hiển thị 10 phát sinh
gần nhất), và O6 (in sổ phụ cuối tháng) không sử
dụng tài khoản cân số khách hàng.
Lợi ích: Tác vụ O2 (đọc cân số khách hàng) rất tiện
lợi nếu có thuộc tính cân số khách hàng. Nếu không,
O2 phải truy cập đến mối kết hợp chu ̉và thực thể tài
khoản với khối lượng trung bình 6000 (3000 x 2) lần
Chi phí: Tác vụ O4 (rút tiền) và O5 (gởi tiền) phải
cập nhật lại cân số khách hàng, phải thực hiện
khoảng 3000 (2000x1,5) và 1500 (1000x1,5) truy cập
đến mối kết hợp chủ và thực thể khách hàng. Điều này
phát sinh thêm 4500 lần truy cập và 4500 tác vụ ghi.
Khối lượng vùng nhớ phát sinh thêm khoảng 90 Kbytes
(15.000 khách hàng x 6 bytes/khách-hàng)
Kết luận: Phải loại bỏ thuộc tính cân số khách hàng
do phát sinh thêm 4500 tác vụ ghi mà chỉ giảm được
1500 tác vụ truy cập (6000-4500). Riêng khối lượng
vùng nhớ phát sinh không đáng kể nên không xét đến
Loại bỏ phân cấp tổng quát hóa
Các mô hình luận lý như mô hình quan hệ, mô hình phân cấp và mô
hình mạng đều không biểu diễn được cấu trúc tổng quát hóa và tập
con. Trong trường hợp này, chúng ta phải mô hình chúng bằng thực
thể và các mối kết hợp.
Các việc cần xem xét thực hiện như sau:
1. Biễu diễn các thuộc tính kế thừa từ thực thể tổng
quát của thực thể tập con
2. Mối liên kết Is A: cho biết quan hệ giữa thực thể
tập con và thực thể tổng quát
Phần 3 – Thiết kế Chương 10 – Thiết kế dữ liệu
234
Chúng ta có 03 chọn lựa để giải quyết vần đề như sau:
Phá vỡ cầu trúc tổng quát hóa thành một thực thể
đơn bằng cách hội các thuộc tính của thực thể con
và thực thể tổng quát hóa.
Không phân biệt được các thực thể tập con và
sẽ dư thừa một số thuộc tính cho một số thực
thể tập con
Loại bỏ thực thể tổng quát và chuyển các thuộ
ctính kế thừa sang thực thể tập con
Giũ nguyên các thực thể và cài đặt quan hệ giữa
các thực thể tổng quát và thực thể con
Mô hình tổng quát hóa dùng thực thể tổng quát
Ví dụ:
Ñaøn oâng Phuï nöõ
Nhaân vieân
Maõ soá SV
Ñiaï chæ
Dieän thoaïi
Soá laàn nghæ
saûn
Nghóa vuï quaân s
Nhaân vieân
Maõ soá SV
Ñiaï chæ
Dieän thoaïi
Nghóa vuï quaân söï
Soá laàn nghæ haäu
saûn
Hình 7,3: Ví dụ về mô hình tổng quát hóa dùng thực thể tổng quát hóa
Nhận xét:
Ưu điểm Khuyết điểm
Giải pháp đơn giản nhất,
không phát sinh thêm các mối
kết hợp
Có thể phát sinh ra một số
lớn các giá trị rỗng cho các
thuộc tính mà chỉ dùng cho
một loại thực thể tập con mà
thôi. Ví dụ: Nghĩa vụ quân sự
và Số lần nghỉ hậu sản
Áp dụng cho tất cả các cấu
trúc tổng quát hóa như toàn
bộ (t) và bán phần (p),
chồng lắp (o) và riêng biệt
(e)
Tất cả các tác vụ chỉ truy
cập đến một thực thể tập con
phải truy cập toàn bộ tất cả
các thực thể tập con
Mô hình tổng quát hóa dùng thực thể tập con
Ví dụ:
Phần 3 – Thiết kế Chương 10 – Thiết kế dữ liệu
235
Thö kyù Kyõ sö
Nhaân vieân
Maõ soá NV
Teân
Kyõ naêng (1,n) Chuyeân ngaønh
t,e
Quaûn lyù
Phaàn meàm vaên
phoøng
söû duïng
0,m
0,n
quaûn lyù
1,n
0,1
thuoäc
Boä phaän
phuï traùch
1,1
1,n
1,1
1,1
Soá nhaân vieân tröïc
thuoäc
Thö kyù Kyõ sö
Maõ soá NV
Teân
Chuyeân ngaønh
Quaûn lyù
Phaàn meàm vaên
phoøng
söû duïng
0,m
0,n
quaûn lyù 1
thuoäc 1
Boä phaän
phuï traùch
0.n
1,1
1,1
Soá nhaân vieân t
thuoäc
thuoäc 2
0,n
thuoäc 3
0,n
1,1 1,1 1,1
Kyõ naêng (1,n)
quaûn lyù 3quaûn lyù 2
0,1
0,1
0,n
0,n
0,1
0,n
Hình 7,4: Ví dụ về mô hình tổng quát hóa dùng thực thể tập con
Nhận xét:
Ưu điểm Khuyết điểm
Thuộc tính riêng của thực
thể tập con chỉ biểu diễn
riêng cho loại thực thể tập
con đó
Cách chọn lựa này không áp
dụng được cho cấu trúc tổng
quát hóa loại chồng chéo (o)
và bán phần (p), chỉ dùng
được cho toàn phần (t) và
riêng biệt (e)
Các tác vụ liên quan đến một
loại thực thể tập con chỉ
truy cập đến loại thực thể
tập con đó
Quan niệm các thực thể tập
con trước đây cùng là chuyên
biệt hóa của một thực thể
tổng quát không còn nữa. Quan
niệm này có thể là chủ yếu
liên quan đến một số xử lý.
Ví dụ thư ký, kỹ sư và quản
lý là nhân viên
Nếu thuộc tính của thực thể
tổng quát là đáng kể thì sự
lập lại trong lược đồ đáng
xem xét lại
Các tác vụ trước đây thao tác
lên thực thể tổng quát nay
phải thao tác lên tất cả các
thực thể tập con
Phần 3 – Thiết kế Chương 10 – Thiết kế dữ liệu
236
Kết luận Chỉ nên chọn lựa cách này khi các khái niệm chung của
thực thể tổng quát hóa nên đòi hỏi phải biểu diễn trong mô hình
luận lý và các thuộc tính chung của các thực thể tập con rất ít so
với các thuộc tính riêng
Mô hình tổng quát hóa dùng mối kết hợp
Ví dụ:
Ñeà aùn coù Thaønh vieân
ÑA phaàn meàm ÑA phaàn cöùng ÑA gia coâng
duøng
Phaàn cöùng
(p,o)
Nhaø thaàu chính
ngaân saùch
Soá ngöôøi / thaùng Soá boards
1,n
0.m
Maõ soá ÑA
Teân ÑA
1,m 1,n
Ñeà aùn coù Thaønh vieân
ÑA phaàn cöùng ÑA gia coâng
duøng
Phaàn cöùng
Nhaø thaàu chính
ngaân saùch
Soá ngöôøi / thaùng Soá boards
1,n
0.m
Maõ soá ÑA
Teân ÑA
1,m 1,n
ÑA phaàn meàm
laø ÑA phaàn
meàm
laø ÑA phaàn
cöùng
laø ÑA gia
coâng
0,1
0,1 0,1
1,1 1,1 1,1
Hình 7,5: Ví dụ về mô hình tổng quát hóa dùng mối kết hợp IS-A
Nhận xét:
Ưu điểm Khuyết điểm
Có thể mô hình tất cả các
loại cấu trúc tổng quát hóa
toàn bộ / bán phần và chồng
chéo / riêng biệt
Lược đồ kết quả khá phức tạp.
Ví dụ như thêm một thể hiện
cho một thực thể tập con phải
thêm mới một thể hiện cho
quan hệ và một thể hiện cho
thực thể tổng quát hóa
Rất uyển chuyển khi thay đổi
yêu cầu của ứng dụng
Phải chấp nhận sự dư thừa khi
biểu diễn mối liên kết IS A
thành mối kết hợp
Kết luận Chỉ nên chọn lựa cách này khi các khái niệm chung của
thực thể tổng quát hóa nên đòi hỏi phải biểu diễn trong mô hình
luận lý và các thuộc tính chung của các thực thể tập con rất ít so
với các thuộc tính riêng
Phần 3 – Thiết kế Chương 10 – Thiết kế dữ liệu
237
Phân chia dữ liệu
Bao gồm hai tình huống: phân chia thực thể và phân chia mối kết
hợp
Phân chia thực thể
Một lý do để phân chia thực thể là để bố trí phân tán các thể hiện
(phân chia theo chiều ngang) hay phân tán các thuộc tính (phân
chia theo chiều dọc). Việc phân chia thực thể cho phép tạo ra các
thực thể mới bao gồm các thuộc tính hay thể hiện được thường xuyên
truy cập bởi các tác vụ.
Phân chia thực thể được thực hiện bằng cách chia một thực thể E
thành hai hay nhiều thực thể gọi là E1,E2,,En.
Có hai cách phân chia như sau:
Phân chia ngang (Horizontal partitioning): chia
theo các thể hiện của E: mỗi thực thể E1,E2,,En
có một nhóm riêng các thể hiện và tất cả các
thuộc tính của E.
Phân chia dọc (Vertical partitioning): chia theo
các thuộc tính của E: mỗi thực thể E1,E2,,En có
cùng các thể hiện của E nhưng có một nhóm riêng
các thuộc tính. Tất cả các thực thể E1,E2,,En
phải có định danh. Các thực thể Ei,EI+1
(I=2,3.,,,.n) có liên hệ bằng mối kết hợp một –
một.
Trong quá trình phân chia các thực thể có thể dẫn đến sự chồng lắp
như sau:
Chồng lắp của phân chia ngang là trường hợp một
thể hiện có thể phụ thuộc vào nhiều thực thể phân
chia
Chồng lắp của phân chia dọc là một thuộc tính phụ
thuộc vào nhiều thực thể phân chia
Hình 7.6 tiếp theo sẽ giới thiệu ví dụ minh họa về việc phân chia
thực thể
Taøi khoaûn
Phaùt sinh
coù
0,n
1,m
Taøi khoaûn
Tieát kieäm
Phaùt sinh
coù 2
0,n
Taøi khoaûn
Thanh toaùn
Taøi khoaûn
vay
coù 1 coù 3
0,n 0,n
0,m
0,m
0,m
a) Phân chia ngang
Phần 3 – Thiết kế Chương 10 – Thiết kế dữ liệu
238
Nhaân vieân
Löông
Maõ soá nhaân vieân
Hoï teân
Ñòa chæ
Teân coâng vieäc
Moâ taû coâng vieäc
Kyõ naêng coâng
vieäc
Ñaùnh giaù
Nhaân vieân
Thoâng tin caù
nhaân
Maõ soá nhaân v
Hoï teân
Ñòa chæ
Nhaân vieân
Thoâng tin löông
Löông
Maõ soá nhaân vieân
Ñaùnh giaù
Nhaân vieân
Thoâng tin coâng
vieäc
Maõ soá nhaân vieân
Teân coâng vieäc
Moâ taû coâng vieäc
Kyõ naêng coâng
vieäc
b) Phân chia dọc
Hình 7.6: Phân chia thực thể dọc và ngang
Phân chia mối kết hợp
Mối kết hợp tự động sẽ phân chia một khi các thực thể liên quan được
phân chia. Ngoài ra, trong một số tình huống đặc biệt, các mối kết hợp
một-nhiều hay nhiều-nhiều có thể tự nó phân chia ngang để phù hợp theo
một yêu cầu quản lý nào đó.
Ví dụ trong hình 7.7 tiếp theo sẽ giới thiệu sự phân chia của mối kết
hợp ghi danh
Sinh vieân
Ghi danh
Moân hoïc
Hoïc kyø
Sinh vieân
Ghi danh hoïc
kyø 2/98
Moân hoïc
Ghi danh
hoïc kyø 1/98
Ghi danh
Hoïc kyø 1/99...
Hình 7.7: Sự phân chia mối kết hợp
Gộp các thực thể & mối kết hợp
Gộp các thực thể và mối kết hợp là ngược lại với sự phân chia. Gộp
được ứng dụng khi hai hay nhiều thực thể được sử dụng chung bởi
nhiều tác vụ và cần thiết phải hủy bỏ chúng để tạo nên một thực
thể đơn thống nhất.
Gộp các thực thể là một bước quan trọng của thiết kế cho các ứng
dụng phức tạp với các tác vụ liên quan đồng thời đến nhiều thực
thể và các mối kết hợp. Gộp các thực thể vàmối kết hợp sẽ biểu
diễn chung trong một vùng chứa thông tin chung (nghĩa là cùng thực
thể / mối kết hợp) sẽ nâng cao hiệu quả của ứng dụng khi khai
thác.
Hiệu ứng ngược của gộp là phá hủy các chuẩn hóa (de-normalization)
trong một số trường hợp: lược đồ quan niệm chuẩn hóa sẽ được
chuyển sang mô hình ít chuẩn hóa hơn.
Các hiệu ứng phá hủy chuẩn hóa của gộp thông thường là:
Phần 3 – Thiết kế Chương 10 – Thiết kế dữ liệu
239
Nếu mối kết hợp giữa các thực thể là một-một thì
không ảnh hưởng đến việc chuẩn hóa
Nếu mối kết hợp giữa các thực thể là một-nhiều
thì gộp thực thể sẽ vi phạm dạng chuẩn 3
Nếu mối kết hợp là nhiều-nhiều thì sẽ vi phạm
dạng chuẩn 2
Hình 7.8 tiếp theo sẽ giới thiệu các ví dụ về gộp thực thể
Ñôn ñaët haøng
Coù
Phieáu giao haøng
Trò giaù
0,1
1,1
Soá ÑÑH
Teân khaùch haøng
Ngaøy giao
Soá PGH
Ñôn ñaët haøng
Trò giaù (0,1)
Ngaøy giao (0,1)
Soá PGH
Soá PGH
Teân khaùch ha
(a) Gộp thực thể với mối kết hợp một-một giữa
chúng
Sinh vieân
Toát nghieäp
Ñaïi hoïc
1,1
0,n
Maõ soá SV
Teân SV
Ñiaï chæ
Teân ÑH
Sinh vieân
Ñòa chæ ÑH
Maõ soá SV
Teân SV
Teân ÑH
(b) Gộp thực thể với mối kết hợp một-nhiều giữa
chúng
Ñeà aùn
Thöïc hieän
bôûi
Boä phaän
1,n
1,n
Maõ soá ÑA
Teân tröôûng ÑA
Soá nhaân vieân
Maõ soá BP
Ñeà aùn thöïc hieän
bôûi boä phaän
Töø ngaøy
Ñeán ngaøy
Maõ soá ÑA
Teân tröôûng Ñ
Soá nhaân vieân
Maõ soá BP
Töø ngaøy
Ñeán ngaøy
(c) Gộp thực thể với mối kết hợp nhiều-nhiều giữa
chúng
Hình 7.8: Gộp các thực thể và mối kết hợp
Chọn lựa khóa chính
Phần 3 – Thiết kế Chương 10 – Thiết kế dữ liệu
240
Hầu hết các hệ quản trị CSDL đòi hỏi phải có một định danh được chọn lựa
như là khóa chính:
(1) Thông thường, khóa chính đồng nghĩa với việc
thực hiện nhanh chóng hơn khi truy cập thực thể.
Do đó, một trong các tiêu chuẩn để chọn lựa khóa
chính là được dùng để truy cập bởi số tối đa các
tác vụ
(2) Tiêu chuẩn thứ hai là nên ưu tiên cho định
danh đơn hơn là định danh phối hợp và định danh
bên trong hơn là định danh bên ngoài. Có nghĩa là
khóa chính nên tối thiểu về kích thước và đơn
giản về cầu trúc.
Trong ví dụ tiếp theo trong hình 7.9, thực thể nhân viên có 04 định
danh:
1. Cặp thuộc tính tên và ngày sinh
2. Thuộc tính Số CMND (chứng minh nhân dân)
3. Thuộc tính Mã số nhân viên trong bộ phận và mã số
bộ phận
4. Thuộc tính Số hợp đồng khi ký hợp đồng với công
ty
5. Theo tiêu chuẩn thứ hai, chúng ta chọn định danh
đơn giản và bên trong: số CMND hay số hợp đồng.
Sau đó, xem xét đến số các tác vụ liên quan,
chúng ta sẽ chọn số hợp đồng vì là định danh được
dùng truy cập nhiều hơn
Nhaân vieân
Tröïc thuoäc
Boä phaän
1,1
1,n
Maõ soá BP
Maõ soá NV
teân
Ngaøy sinh
Soá CMND
Soá hôïp ñoàn
Hình 7.9: Chọn lựa khóa chính
Thiết kế luận lý cấp thấp
Trong phần này sẽ trình bày phương pháp luận để chuyển đổi từ thiết kế
luận lý sang mô hình quan hệ của Codd.
Việc chuyển đổi sẽ được tiến hành theo 02 bước như sau:
1. Chuẩn bị chuyển đổi: bao gồm
Loại bỏ các định danh bên ngoài
Loại bỏ các thuộc tính đa giá trị và thuộc tính
kết hợp
2. Chuyển đổi từ mô hình TT-KH sang mô hình quan hệ:
bao gồm
Chuyển đổi mỗi thực thể trong lược đồ thành quan
hệ
Chuyển đổi các mối kết hợp: mối kết hợp nhiều
nhiều cần một quan hệ riêng; mối kết hợp một-một
Khoá chính
Phần 3 – Thiết kế Chương 10 – Thiết kế dữ liệu
241
và một-nhiều có thể mô hình bằng cách thêm thuộc
tính vào các quan hệ có sẵn
Loại bỏ định danh bên ngoài
Do không thể dùng định danh bên ngoài trong mô hình quan hệ, chúng ta sẽ
chuyển đổi chúng thành định danh bên trong
Giả sử khóa chính của thực thể E1 (hình 7.10) là định danh bên ngoài hay
phối hợp và E2 cung ứng định danh bên ngoài cho E1 qua mối kết hợp R.
Chúng ta giả sử rằng E2 có một định danh bên trong cũng là khóa chính là
e2 Để loại bỏ định danh bên ngoài của E1, chúng ta cần phải đưa vào thực
thể E1 khóa chính của E2 . Sau đó, chúng ta có thể loại bỏ mối liên kết
R
E1
R
E2
e1
e2
E1
e1
e2
E2
e2
Hình 7.10: Loại bỏ định danh bên ngoài
Trong hình 7.11 sẽ giới thiệu một ví dụ về loại bỏ định danh bên ngoài.
Định danh của thực thể Sinh viên là Mã số sinh viên và mối kết hợp đăng
ký giữa thực thể sinh viên và đại-học. Khi loại bỏ định danh bên ngoài,
chúng ta sẽ đưa khóa chính của thực thể đại học là Mã số đại học thành
một thuộc tính của thực thể sinh viên. Khóa chính của sinh viên lúc này
là mã số sinh viên và mã số đại học
Sinh vieân
Ñaêng kyù
Ñaïi hoïc
1,1
0,n
Maõ soá SV
Teân SV
Teân ÑH
Maõ soá ÑH
Sinh vieân
Ngaøy sinh
Maõ soá ÑH
Maõ soá SV
Teân SV
Thaønh phoá
Ngaøy sinh
Ñaïi hoïc
Teân ÑH
Maõ soá ÑH
Thaønh pho
Hình 7.11: Ví dụ về loại bỏ định danh bên ngoài
Loại bỏ thuộc tính đa giá trị và kết hợp
Mô hình quan hệ chỉ chứa các thuộc tính đơn và đơn giá trị. Do đó, các
thuộc tính kết hợp và thuộc tính đa giá trị phải được chuyển đổi thành
thuộc tính đơn và đơn giá trị
Chuyển đổi thuộc tính kết hợp
Đối với thuộc tính kết hợp, chúng ta có hai cách chọn lựa như sau:
Phần 3 – Thiết kế Chương 10 – Thiết kế dữ liệu
242
(1) Loại bỏ các thuộc tính kết hợp bằng cách
chuyển các thuộc tính thành phần của nó thành thuộc
tính đơn
(2) Loại bỏ các thuộc tính thành phần và chuyển
thuộc tính kết hợp thành thuộc tính đơn
Con ngöôøi
Hoï teân
Ngaøy sinh
Giôùi tính
Ñòa chæ
Soá nhaø
Ñöôøng phoá
Thaønh phoá
Quoác gia
Con ngöôøi
Hoï teân
Ngaøy sinh
Giôùi tính
Ñiaï chæ
Con ngöôøi
Hoï teân
Ngaøy sinh
Giôùi tính
Soá nhaø
Ñöôøng phoá
Thaønh phoá
Quoác gia
(a) Löôïc ñoà vôùi thuoäc tính keát hôïp
(c) Thuoäc tính keát hôïp phaân raõ
theo thuoäc tính keát hôïp(b) Thuoäc tính keát hôïp phaân raõ
theo thuoäc tính thaønh phaàn
Hình 7.12: Ví dụ về chuyển đổi thuộc tính kết hợp
Trong hình 7.12 giới thiệu một ví dụ về chuyển đổi thuộc tính kết hợp.
Lược đồ gốc bao gồm thực thể con người (hình 7.12a).
Chúng ta có hai chọn lựa như sau:
Trong trường hợp các thuộc tính thành phần được truy
cập nhiều, chúng ta sẽ chuyển các thuộc tính thành
phần thành thuộc tính đơn (hình 7.12b). Ví dụ như
trong bài toán quản lý nhân khẩu, chúng ta cần thống
kê và truy vấn nhân khẩu (con người) theo đường phố
hay thành phố nên cần tồn tại các thuộc tính này
Trong trường hợp chỉ có thuộc tính kết hợp là được
truy cập thường xuyên, chúng ta sẽ chuyển thuộc tính
kết hợp thành thuộc tính đơn (hình 7.12c). Chẵng hạn
như trong các bài toán quản lý sinh viên, khách hàng
hay nhà cung cấp, chúng ta chỉ cần điạ chỉ như là
một thuộc tính đơn.
Chuyển đổi thuộc tính đa trị của thực thể
Thuộc tính đa trị của thực thể cần phải chuyển đổi thành một thực thể
mối, thực thể này sẽ chứa thuộc tính đa trị và định danh của thực thể
nguồn. Định danh của thực thể mới là tập hợp tất cả các thuộc tính của
nó
Phần 3 – Thiết kế Chương 10 – Thiết kế dữ liệu
243
Saûn phaåm
Maõ soá saûn phaåm
Maõ soá vaät lieäu
(1,n)
Dieãn giaûi
Ñôn giaù
Saûn phaåm
Maõ soá saûn phaåm
Dieãn giaûi
Ñôn giaù
Saûn phaåm-Vaät
lieäu
Maõ soá saûn ph
Maõ soá vaät lieä
Hình 7.13: Ví dụ về chuyển đổi thuộc tính đa trị của thực thể
Trong ví dụ trên, chúng ta có sự kiện mỗi sản phẩm sẽ được sản xuất từ
một so loại vật liệu khác nhau. Trong mô hình TT-KH, chúng ta có thực
thể sản phẩm và thực thể này có thuộc tính mã số vật liệu là thuộc tính
đa trị (1,n). Thuộc tính đa trị này sẽ được chuyển đổi thành thực thể
sản phẩm-vật liệu với hai thuộc tính là mã số sản phẩm và mã số vật liệu
Chuyển đổi thuộc tính đa trị của mối kết hợp
Nếu thuộc tính đa trị của mối kết hợp phụ thuộc vào mối kết hợp R giữa
các thực thể E1 và E2, chúng ta sẽ tạo một thực thể mới và riêng biệt là
NE để biễu diễn nó (hình 7.14).
E1
R
E2
e1
e2
NE
Hình 7.14: chuyển đổi thuộc tính đa trị của mối kết hợp
Thực thể mới NE bao gồm một hay hai thuộc tính định danh của của E1 và
E2 tuỳ thuộc vào loại mối kết hợp như sau:
Nếu loại của mối kết hợp R là một-một: NE sẽ bao gồm
khoá chính của E1 hay E2
Nếu mối kết hợp giữa E1 và E2 là một nhiều: NE bao
gồm khóa chính của E2 (giả sử E2 là phía nhiều)
Nếu mối kết hợp giữa E1 và E2 là nhiều nhiều: NE bao
gồm khóa chính của cả hai E1 và E2
Khóa chính của NE sẽ được tạo bởi các thuộc tính của nó, không sử dụng
các thuộc tính vay mượn của E1 và E2 (dạng định danh bên ngoài) và thuộc
tính đa trị. Các thuộc tính còn lại của mối kết hợp R vẫn là thuộc tính
của R.
Hình 7.15 tiếp theo sẽ giới thiệu một ví dụ minh họa việc chuyển đổi
thuộc tính đa trị của mối kết hợp. Mối kết hợp dạy có thuộc tính học kỳ
là thuộc tính đa trị. Thuộc tính này sẽ được chuyển đổi thành thực thể
Môn học mở. Môn học mở có các thuộc tính là mã số giáo viên, mã số môn
Phần 3 – Thiết kế Chương 10 – Thiết kế dữ liệu
244
học và học kỳ. Khóa chính của môn học mở bao gồm cả ba thuộc tính đã
nêu.
Giaûng vieân
Moân hoïc
daïy
Maõ soá GV
Maõ soá MH
Hoïc kyø
Maõ soá MH
teân MH
Soá SV toái ña
Hoïc kyø (1,n)
0,m
1,n
Giaûng vieân
Moân hoïc
daïy
Maõ soá GV
Khoa
Ñieän thoaïi
Maõ soá MH
teân MH
Soá SV toái ña
0,m
1,n
Moân hoïc môû+
Hình 7.15: ví dụ về chuyển đổi thuộc tính đa trị của mối kết hợp
Chuyển đổi thực thể
Công việc chuyển đổi khá đơn giản, chúng ta sẽ chuyển đổi mỗi thực thể
thành một quan hệ. Các thuộc tính và khóa chính của thực thể thành các
thuộc tính và khóa chính của quan hệ
Hình 7.16 tiếp theo sẽ giới thiệu một ví dụ về chuyển đổi thực thể Nhân
viên
Sinh vieân Teân SV
Ngaøy sinh
Soá CMND
NHAN_VIEN (SO_CMND, TEN_SV, NGAY_SINH)
Hình 7.16: ví dụ về chuyển đổi thực thể
Chuyển đổi mối kết hợp
Trong việc chuyển đổi mối kết hợp, đầu tiên chúng ta sẽ xem xét đến mối
kết hợp nhị phân một cách tổng quát theo từng loại riêng biệt là: một-
một, một-nhiều và nhiều-nhiều
Việc xử lý chuyển đổi cũng sẽ bị ảnh hưởng bởi bản số tối thiểu của hai
thực thể tham gia mối kết hợp
Chuyển đổi mối kết hợp một-một
Giả sử ta có hai thực thể E1 và E2 tham gia trong mối kết hợp R . Chúng
ta có hai trường hợp như sau:
Cả hai E1 và E2 tham gia toàn phần trong mối kết
hợp: chúng ta sẽ gộp thành một quan hệ
Một hay cả hai tham gia bán phần trong mối kết hợp:
chúng ta sẽ tách thành một quan hệ riêng
* Gộp thành quan hệ: cách chuyển đổi này có thể dùng
khi tham gia của hai thực thể trong mối kết hợp là
toàn phần.
Có hai tình huống như sau:
Phần 3 – Thiết kế Chương 10 – Thiết kế dữ liệu
245
Tình huống 1: cả hai thực thể cùng khóa
chính Gộp cả hai vào chung một quan hệ
có tất cả thuộc tính (hình 7.17a)
Tình huống 2: cả hai thực thể có hai
khóa chính khác nhau Gộp cả hai vào
chung một quan hệ có tất cả các thuộc
tính kể cả hai khóa chính. Sau đó, chọn
một khóa chính trong hai khóa trên làm
khóa chính của quan hệ (hình 7.17b)
Khaùch haøng
KH-HANG_GIAO-NHAN (MA_SO_KH, TEN_KH, DIA_CHI_GN)
vôùi Thoâng tin giaonhaän
1,1 1,1
Maõ soá KH
Teân KH
Maõ soá KH
Ñòa chæ giao nhaän
Hình 7.17a: Tình huoáng hai thöïc theå coù cuøng khoùa chính
Khaùch haøng
KHACH-HANG (MA_SO_KH, TEN_KH, SO_CMND_NDD, DIA_CHI_GD)
ñöôïc ñaïi dieän
bôûi Ngöôøi ñaïi dieän
1,1 1,1
Maõ soá KH
Teân KH
Soá CMND
Ñòa chæ giao dòch
Hình 7.17b: Tình huoáng hai thöïc theå coù hai khoùa chính
Hình 7.17: ví dụ về gộp hai thực thể của mối kết hợp một-một
thành một quan hệ
* Tách thành quan hệ riêng: cách này được sử dụng khi
một trong hai, hay cả hai tham gia bán phần trong mối
kết hợp
Có hai tình huống như sau:
Tình huống 1: một thực thể tham gia
bán phần (hình 7.18a)
Tình huống 2: cả hai thực thể tham gia
bán phần (hình 7.18b)
Phần 3 – Thiết kế Chương 10 – Thiết kế dữ liệu
246
Khaùch haøng
KHACH-HANG (MA_SO_KH, TEN_KH)
THE_TIN_DUNG (LOAI_THE, SO_THE, TIN_DUNG_TOI_DA)
SO_HUU_THE (LOAI_THE, SO_THE, MA_SO_KH)
sôû höõu Theû tín duïng
1,1 1,1
Maõ soá KH
Teân KH
Soá theû
Hình 7.18a: Tình huoáng moät thöïc theå tham gia baùn phaàn
Ñaøn oâng
DAN_ONG (SO_CMND_DAN_ONG, TEN_DAN_ONG)
PHU_NU (SO_CMND_PHU_NU, TEN_PHU_NU)
KET_HON (SO_CMND_DAN_ONG, SO_CMND_PHU_NU, NGAY, THOI_GIAN)
keát hoân Phuï nöõ
0,1 0,1
Soá CMND
Teân ñaøn oâng
Soá CMND
Teân phuï nöõ
Hình 7.18b: Tình huoáng hai thöïc theå tham gia baùn phaàn
Loaïi theû
Tín duïng toái ña
Ngaøy
Thôøi gian
Hình 7.18: ví dụ về tách mối kết hợp một một thành các quan hệ riêng
Chuyển đổi mối kết hợp một- nhiều
Giả sử chúng ta có mối kết hợp R giữa hai thực thể E1 và E2. Cho R là
mối kết hợp một-nhiều. Chúng ta có hai tình huống như sau:
Tình huống 1: thực thể phía “nhiều” tham gia bắt
buộc gộp mối kết hợp và thực thể phía “nhiều”
thành một quan hệ (hình 7.19a)
Tình huống 2: thực thể phía “nhiều” tham gia bán
phần chuyển đổi các thực thể, mối kết hợp thành
các quan hệ riêng
Phần 3 – Thiết kế Chương 10 – Thiết kế dữ liệu
247
Thaønh phoá
THANH_PHO (TEN_TP, TEN_QG, DAN_SO_TP)
QUOC_GIA(TEN_QG, TONG_THONG, DAN_SO_QG)
Thuoäc Quoác Gia
1,1 1,n
Teân TP
Daân soá TP
Toång thoán
Hình 7.19a: Tình huoáng thöïc theå phía "nhieàu" tham gia baét buoäc
Nhaân vieân baùn
haøng
NHAN_VIEN_BAN_HANG (TEN_NVBH, SO_DIEN_THOAI)
DAT_HANG (SO_DDH, TEN_NVBH, NGAY)
LAP_DHH(SO_DDH, TEN_NVBH, TY_LE_GIAM_GIA)
Laäp Ñaët haøng
1,n 0,1
Teân
Soá ñieän thoaïi
Soá DDH
Ngaøy
Hình 7.19b: Tình huoáng thöïc theå phía "nhieàu" tham gia baùn phaàn
Teân QG
Daân soá QG
Tyû leä giaûm giaù
Hình 7.19: ví dụ về chuyển đổi mối kết hợp một nhiều
Chuyển đổi mối kết hợp nhiều nhiều
Cho R là mối kết hợp n
Các file đính kèm theo tài liệu này:
- giao_trinh_phan_tich_thiet_ke_he_thong_thong_tin_phan_2_pham.pdf