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

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,

pdf115 trang | Chia sẻ: Thục Anh | Ngày: 12/05/2022 | Lượt xem: 308 | Lượt tải: 1download
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:

  • pdfgiao_trinh_phan_tich_thiet_ke_he_thong_thong_tin_phan_2_pham.pdf
Tài liệu liên quan