http://www.ebook.edu.vn Tài liệu Phân Tích Thiết Kế Hệ Thống 73 Chương 8 . MỞ RỘNG KHÁI NIỆM MỐI KẾT HP (ADVANCED RELATIONSHIP CONCEPTS) I MỐI KẾT HP MỘT-MỘT Ta đã có mô hình về NGƯỜI LÁI XE và BẰNG LÁI như sau: Ngoài mô hình trên, vấn đề này có thể có hai dạng mô hình sau: Một trong ba mô hình trên sẽ được chọn lựa căn cứ vào các nguyên tắc: o Ta mô hình thành hai tập thực thể và một mối kết hợp khi các tập thực thể có mức độ quan trọng độc lập và có các xử lý riêng rẽ. Ví dụ trong Hệ Tiếp Liệu PHIẾU YÊU CẦU VẬT LIỆU được lập và gởi đi trước khi ĐƠN ĐẶT MUA HÀNG được phát sinh và gởi cho nhà cung cấp. Hơn nữa Bản yêu cầu vật liệu có khả năng bò tự chối vì giá cả hay bởi lý lẽ khác. Nếu yêu cầu được chấp nhận thì một ĐƠN ĐẶT MUA HÀNG tương ứng được phát sinh. Hình 7.2(a) - Mô hình ER của Hệ tiế p liệu PHIẾU YÊU CẦU VẬT LIỆU ĐƠN ĐẶT MUA HÀNG số phiếu ngày phòng ban chấp thuận số đơn hàng ngày mã nhà cung cấp trò giá tối đa làm phát sinh được phát sinh bởi Mỗi PHẾU YÊU CẦU VẬT LIỆU có thể làm phát sinh một ĐƠN ĐẶT MUA HÀNG Mỗi ĐƠN ĐẶT MUA HÀNG phải được phát sinh bởi một PHIẾU YÊU CẦU VẬT LIỆU o Ta mô hình thành hai tập thực thể và một mối kết hợp khi bản số kết nối của mối kết hợp thường thay đổi. Chẳng hạn trong ví dụ trên có khả năng Một ĐƠN ĐẶT MUA HÀNG phải được phát sinh bởi một hay nhiều BẢN YÊU CẦU VẬT LIỆU http://www.ebook.edu.vn Tài liệu Phân Tích Thiết Kế Hệ Thống 74 o Ta mô hình thành hai tập thực thể và một mối kết hợp khi một trong hai tập thực thể có mối kết hợp với tập thực thể khác Ví dụ : Trong Hệ Tiếp liệu trên một ĐƠN ĐẶT MUA HÀNG phải có một hay nhiều DÒNG ĐƠN HÀNG. Hình 7.2(c) - Mô hình ER của Hệ tiếp liệu có tập thực thể DÒNG ĐƠN HÀN G PHIẾU YÊU CẦU VẬT LIỆU ĐƠN ĐẶT MUA HÀNG số phiếu ngày phòng ban chấp thuận hàng ngày mã nhà cung cấp trò giá tối đa làm phát sinh được phát sinh bởi DÒNG ĐƠN HÀNG số đơn hàng số thứ tự số lượng thuế đơn giá chứ a thuộc về Khóa ngoại o Ta mô hình thành hai tập thực thể và một mối kết hợp vì các thuộc tính cần được nhóm riêng do chẳng hạn mhóm các thuộc tính được khai thác thường xuyên còn nhóm kia thì ngược lại. Ví dụ: Một công ty vận chuyển điều hành một đội các đoàn tầu ghép nối. Một đoàn tàu ghép nối được hiểu là một đoàn tàu nhưng trên thực tế chúng bao gồm một đầu máy và một toa chở hàng Hình 7.2(d) - Mô hình ER của vấn đề đầu máy và toa hàn g ĐẦU MÁY TOA HÀNG máy trọng lượng bì trọng lượng xổi loại trục ké o được kéo bởi g trọng lượng bì trọng lượng xổi loại trục o Nếu không vì một trong 4 lý do trên thì ta hợp nhất hai tập thực thể thành một. II NHIỀU MỐI KẾT HP GIỮA HAI TẬP THỰC THỂ Một công ty mong muốn lưu trữ dữ liệu về các phòng ban của công ty, như phân xưởng sản xuất, phòng kinh doanh, phòng kế toán, và chi tiết về nhân viên. Thông tin cần lưu trữ bao gồm mã phòng, tên phòng, vò trí, mã nhân viên, tên, đòa chỉ. Mỗi phòng có nhiều nhân viên và được phụ trách bởi một trưởng phòng. Một trường phòng chỉ phụ trách một phòng. Mỗi nhân viên chỉ thuộc về một phòng. http://www.ebook.edu.vn Tài liệu Phân Tích Thiết Kế Hệ Thống 75 III MỐI KẾT HP HAY THUỘC TÍNH Một khái niệm có thể là thuộc tính cũng có thể là mối kết hợp tùy thuộc vào qui tắc quản lý. Ta xem hai qui tắc quản lý sau: 1/ Công ty cần lưu trữ các thông tin về XE cấp cho NHÂN VIÊN có tiêu chuẩn trợ cấp tiền và xe cho chuyến du lòch của mình. Rõ ràng chúng ta cần bổ sung thêm tập thực thể XE và mối kết hợp giữa XE và NHÂN VIÊN. Thuộc tính của xe gồm, số lượng máy, số xi lanh, loại nhiên liệu, số cây số đã đi. Kết quả là quan hệ NHÂN VIÊN sẽ có khóa ngoại số đăng bộ để diễn tả mối kết hợp giữa NHÂN VIÊN và XE. 2/ Chúng ta hãy xem xét khía cạnh sau: Công ty không trả trực tiếp số tiền trợ cấp này cho NHÂN VIÊN mà sẽ trả vào kỳ lương. Tuy nhiên công ty vẫn muốn biết nhân viên nào có tiêu chuẩn xe nhân viên nào không. Để quản lý được điều này ta không phải tạo tập thực thể XE mà chỉ ghi nhận số đăng bộ như một thuộc tính của tập thực thể NHÂN VIÊN là đủ. IV MỐI KẾT HP LOẠI TRỪ Mối kết hợp giữa các tập thực thể có tính loại trừ. Nghóa là một thực thể chỉ tham gia vào một quan hệ trong các mối kết hợp. Ví dụ: Công ty máy tính mong muốn lưu trữ dữ liệu về các sản phẩm phần cứng và phần mềm mà họ bán và hỗ trợ. Công ty cần ghi nhớ các lỗi có thể xảy ra cho bất kỳ sản phẩm nào. Một lỗi chỉ xảy ra cho phần cứng hay phần mềm nhưng không xảy ra cho cả hai như vậy những lỗi này có tính loại trừ nhau. Cung tròn của hình trên diễn tả mối kết hợp loại trừ nghóa là một lỗi nào đó là của phần cứng hoặc phần mềm chứ không của cả hai. Tính chất này hoàn toàn phù hợp với tính chất của tập thực thể cha/con. Nếu hai tập thực thể loại trừ có thuộc tính chung thì ta có thể vẽ lại mô hình trên dưới dạng sau: http://www.ebook.edu.vn Tài liệu Phân Tích Thiết Kế Hệ Thống 76 V MỐI KẾT HP BA NGÔI (TERNARY RELATIONSHIP) Ví dụ: Một công ty mong muốn lưu trữ dữ liệu về nhân viên và các kỹ năng được sử dụng trong các dự án mà họ được phân công tham gia. Các thuộc tính mà công ty cần lưu trữ bao gồm: NHÂN VIÊN: mã nhân viên, tên nhân viên KỸ NĂNG: mã kỹ năng, tên kỹ năng DỰ ÁN: mã dự án, tên dự án, vò trí, kinh phí. Công ty cũng muốn biết một nhân viên nào đó có ngày bắt đầu sử dụng kỹ năng nào đó vào một DỰ ÁN nào đó. Nhân viên Kỹ năng Dự án Colette Kế toán Mỏ lộ thiên Colette Chuẩn bò kinh phí Mỏ lộ thiên Colette Kiểm toán Văn phòng chính Mike Quản lý Mỏ lộ thiên Mike quản lý Văn phòng chính Mike quản lý phân xưởng Mike dự toán kinh phí mỏ lộ thiên Mike dự toán kinh phí phân xưởng Gred quản lý phân xưởng Bảng dữ liệu trên diễn tả qui tắc quản lý sau: Mỗi NHÂN VIÊN có thể tham gia vào một hay nhiều DỰ ÁN. Mỗi DỰ ÁN có thể được tham gia bởi một hay nhiều NHÂN VIÊN. Mỗi NHÂN VIÊN có thể thành thạo một hay nhiều KỸ NĂNG Mỗi KỸ NĂNG có thể được sử dụng thành thạo bởi một hay nhiều NHÂN VIÊN Mỗi KỸ NĂNG có thể được dùng bởi một hay nhiều DỰ ÁN Mỗi DỰ ÁN có thể dùng một hay nhiều KỸ NĂNG. Qui tắc quản lý trên dẫn ta đến mô hình ER sau: http://www.ebook.edu.vn Tài liệu Phân Tích Thiết Kế Hệ Thống 77 Mô hình trên là mô hình vòng của ba mối kết hợp nhiều nhiều. Ta không thể gắn thuộc tính ngày bắt đầu sử dụng một kỹ năng nào đó vào một dự án nào đó của một nhân viên vào bất kỳ tập thực thể nào trong mô hình. Vấn đề này được giải quyết bằng cách: - thêm một tập thực thể kết hợp làm trung gian kết nối với các tập thực thể trong mô hình. - Thuộc tính nhận diện của tập thực thể kết hợp là sự kết hợp các thuộc tính nhận diện của các tập thực thể trong mô hình. - Các thuộc tính tạo nên thuộc tính nhận diện này là các khóa ngoại. c o ù l a ø t h u o ä c v e à t h u o ä c v e à Mô hình quan hệ: NHÂN VIÊN(mã nhân viên , tên nhân viên, ngày vào làm) KỸ NĂNG(mã kỹ năng , tên kỹ năng) DỰ ÁN(mã dự án , tên dự án, vò trí thăm dò, kinh phí) KỸ NĂNG ĐƯC DÙNG(mã nhân viên, mã kỹ năng, mã dự án , ngày bắt đầu sử dụng) VI MỐI KẾT HP MỘT NGÔI (UNARY RELATIONSHIP, RECURSIVE RELATIONSHIP) 1 Bản số kết nối một nhiều Một công ty hiện lưu trữ chi tiết về NHÂN VIÊN như: mã nhân viên, tên nhân viên, đòa chỉ, …Công ty cũng lưu trữ chi tiết về người quản lý nghóa là ai là người quản lý. Điều quan trọng của vấn đề là người quản lý cũng là nhân viên, và nhân viên thì chòu sự quản lý của nhân viên khác. Qui tắc quản lý là: http://www.ebook.edu.vn Tài liệu Phân Tích Thiết Kế Hệ Thống 78 Mỗi NHÂN VIÊN có thể quản lý một hay nhiều nhân viên khác Mỗi NHÂN VIÊN có thể chòu sự quản lý bởi một nhân viên khác. Hình 7.9 - Dữ liệu ví dụ của vấn đề nhân viên và người quản lý Mike (101) Colette (217) Tony (318) Vicky (525) deirdre (977) Glenda (925) Greg (097) Yianni (421) Jim (226) Adrian (356)Jack (785) Stan (201) Mô hình ER của vấn đề là: Mô hình quan hệ của vấn đề quản lý nhân viên như sau: NHÂN VIÊN (mã nhân viên , tên nhân viên, …, mã nhân viên quản lý) NHÂN VIÊN mã nhân viên tên nhân viên mã nhân viên quản lý 000 . 000 101 Mike 000 217 Colette 101 318 Tony 217 525 Vicky 217 2 Bản số kết nối một một Trường Cộng đồng Chu toàn đưa ra một kế hoạch cố vấn mới cho các giáo viên của họ và lưu trữ dữ liệu về kế hoạch này trong một csdl. Kế hoạch liên quan đến các giáo viên nhiều kinh nghiệm. Các giáo viên này sẽ cố vấn cho giáo viên mới. Ý tưởng là hỗ trợ giáo viên mới trong giảng dạy, soạn bài giảng, … Để giảm nhẹ khối lượng công việc, giáo viên kinh nghiệm có thể cố vấn cho một giáo viên mới và một giáo viên mới phải có một cố vấn. Dữ liệu được lưu trữ trong csdl bao gồm chi tiết cá nhân của giáo viên và chi tiết về kế hoạch cố vấn. http://www.ebook.edu.vn Tài liệu Phân Tích Thiết Kế Hệ Thống 79 Mỗi GIÁO VIÊN có thể làm cố vấn cho một GIÁO VIÊN Mỗi GIÁO VIÊN có thể chòu sự cố vấn bởi một GIÁO VIÊN Mô hình quan hệ của vấn đề trên như sau: GIÁO VIÊN ( mã giáo viên , tên giáo viên,…., mã giáo viên làm cố vấn) hay GIÁO VIÊN ( mã giáo viên , tên giáo viên,…., mã giáo viên chòu sự cố vấn) 3 Bản số kết nối nhiều nhiều Công ty TNHH Buillem và Sellem thiết kế, xây dựng và lắp đặt các giàn khoan dầu ngoài khơi. Giàn khoan được tạo thành từ các đơn thể có kích thước 6m x 3.6m x 3.6m và có trọng lượng từ 10 đến 25 tấn. Điều này cho phép • Giảm chi phí xây dựng cho một giàn khoan ngoài khơi. • Dễ dàng vận chuyển đến các cầu tàu bằng đường ray. • Dễ dàng vận chuyển đến giàn khoan ngoài khơi bằng sà lan. Các đơn thể được ráp lại tại mỏ dầu để tạo nên các bộ phận như bệ khoan, đầu khoan, thiết bò khoan. Đến lượt mỗi đơn thể được cấu tạo từ các thành phần đơn lẻ như đường ống, van, mô tơ, bảng điều khiển v.v Ta có qui tắc quản lý sau: Phần đơn lẻ là thành phần không thể chia nhỏ hơn nữa. Đơn thể được tạo từ các phần đơn lẻ nhưng nó chưa phải là sản phẩm cuối cùng. Bộ phận (bệ khoan, thiết bò khoan) được tạo từ các đơn thể hay các phần đơn lẻ Phần hoàn chỉnh được tạo từ các đơn thể hay bộ phận. Một loại đơn thể được dùng trong các bộ phận khác nhau. Buildem and Sellem muốn thực hiện một csdl để lưu trữ thông tin về các phần (phần đơn lẻ, đơn thể, bộ phận, phần hoàn chỉnh) trên bao gồm: Mã phần, mô tả, lượng tồn, lượng sử dụng. Như vậy mối kết hợp giữa các phần là như sau: http://www.ebook.edu.vn Tài liệu Phân Tích Thiết Kế Hệ Thống 80 Mỗi PHẦN có thể được sử dụng để tạo nên một hay nhiều PHẦN. Mỗi PHẦN có thể được tạo nên từ một hay nhiều PHẦN. Hình 7.14 - Mô hình ER của vấn đề Buildem và Selle m mã phần mô tả lượng tồn PHẦ N PHẦ N được tạo nên từ được sử dụng để tạo nên PHẦ N mã phần mô tả mã phần mô tả phần sử dụng phần tạo nên Mối kết hợp của vấn đề trên là mối kết hợp nhiều nhiều. Ta không thể gắn thuộc tính lượng sử dụng (lượng sử dụng của một PHẦN để tạo nên một PHẦN khác) vào tập thực thể PHẦN được. Vấn đề này được giải quyết bằng cách: - thêm một tập thực thể kết hợp làm trung gian kết nối với các tập thực thể trong mô hình. - Thuộc tính nhận diện của tập thực thể kết hợp là sự kết hợp các thuộc tính nhận diện của các tập thực thể trong mô hình. - Các thuộc tính tạo nên thuộc tính nhận diện này là các khóa ngoại. Hình 7.15 - Mô hình ER của vấn đề Buildem và Sellem có thuộc tính lượng sử dụng PHẦ N PHẦ N PHẦN KẾT HP mã phần sử dụng mã phần tạo nên lượng sử dụng có nghóa phần X là một thành phần tạo nên phần Y hay phần Y có một thành phần tạo từ phần x no ùi t a ï o nên là thành phần tạo nên của là thành phần sử dụng của diễn tả sử dụng từ PHẦ N PHẦN KẾT HP là thành phần sử dụng của diễn tả sử dụng từ nói tạo nên là thành phần tạo nên của Mô hình trên có đặc điểm sau: - Bản số kết nối của mô hình không phụ thuộc vào bài toán. - Nếu không có thuộc tính lượng sử dụng thì ta sử dụng mô hình không có tập thực thể kết hợp. Mô hình quan hệ: PHẦN(mã phần , mô tả, lượng tồn) PHẦN KẾT HP(mã phần sử dụng, mã phần tạo nên , lượng sử dụng) Có hai khoá ngoại (mã phần sử dụng) và (mã phần tạo nên) Có hai khoá chính: (mã phần) và (mã phần sử dụng, mã phần tạo nên) PHẦN KẾT HP mã phần sử dụng mã phần tạo nên lượng sử dụng 06 04 5 07 04 10 http://www.ebook.edu.vn Tài liệu Phân Tích Thiết Kế Hệ Thống 81 08 04 10 09 04 3 04 01 2 03 01 100 VII BÀI TẬP 1 Bài 7.1 Một gara sửa xe mong muốn xây dựng một cơ sở dữ liệu về các bộ phận trong xe và các thành phần tạo nên chúng (hình trên). Thông tin về bộ phận xe có mã bộ phận (duy nhất) và tên bộ phận. Một bộ phận xe có thể được cấu tạo từ các bộ phận khác. Nhưng một thành phần chỉ nằm trong một bộ phận. a/ Hãy xây dựng mô hình ER của vấn đề trên và chuyển chúng thành mô hình quan hệ. b/ Hãy kiểm tra chức năng đưa dữ liệu của ví dụ trên vào mô hình quan hệ. 2 Bài 7.2 Cơ quan chính phủ về sức khỏe mong muốn ghi nhận dòch vụ nào (như chăm sóc trẻ, phục vụ người khuyết tật, ) được cung cấp bởi tổ chức nào (như Hiệp hội hổ trợ gia đình, Ủy ban chăm sóc người khuyết tật, ), tại vò trí đòa lý nào (như bắc Sydney, hướng tây ngoại ô, Newcatle, ) và ngày mà tổ chức bắt đầu cung cấp dòch vụ cho một vò trí đòa lý. Đối với dòch vụï phục vụ, tổ chức phục vụ và vò trí đòa lý phục vụ, cơ quan chính phủ chỉ quan tâm đến tên và thuộc tính nhận diện của chúng. Hãy lên mô hình ER và chuyển chúng thành mô hình quan hệ. 3 Bài 7.3 Doanh nghiệp Tân Thành là một doanh nghiệp sản xuất hàng may mặc, có một số phòng ban (phòng kỹ thuật, phòng hành chánh, ) và nhiều chuyền sản xuất (chuyền 1, chuyền 2, ). Doanh nghiệp có nhiều nhân viên, nhân viên gián tiếp và nhân viên trực tiếp (còn gọi là công nhân). Thông tin về một nhân viên gồm có: mã nhân viên, họ tên, ngày sinh, đòa chỉ, ngày vào làm. Mỗi nhân viên gián tiếp có một đơn giá ngày công. Lương nhân viên gián tiếp bằng số ngày công nhân với đơn giá ngày công. Đối với công nhân, doanh nghiệp rất quan tâm đến văn bằng, chứng chỉ liên quan đến nghề may mà công nhân đạt được. Mỗi nhân viên gián tiếp/công nhân phải chòu sự quản lý của một phòng ban/chuyền. Doanh nghiệp sản xuất nhiều loại sản phẩm. Mỗi sản phẩm được hoàn thành qua một số công đoạn. Tên và đơn giá mỗi công đoạn phụ thuộc vào từng sản phẩm. Mỗi chuyền hoàn thành các sản phẩm theo từng đợt giao hàng. Mỗi đợt giao hàng chỉ giao hàng để hoàn thành một sản phẩm và giao cho một chuyền với các thông tin ngày giao, số lượng sản phẩm hoàn thành. Các đợt giao hàng có thể giao hoàn thành cùng sản phẩm nhưng không cùng ngày. Mỗi chuyền phải thực hiện đợt giao hàng từ công đoạn đầu đến công đoạn cuối để hoàn http://www.ebook.edu.vn Tài liệu Phân Tích Thiết Kế Hệ Thống 82 thành sản phẩm. Đơn giá công đoạn được dùng để tính lương trả cho người sản xuất. Trong quá trình thực hiện đợt giao hàng, một công nhân có thể làm ở nhiều công đoạn khác nhau trong một chuyền. Trong mỗi công đoạn có nhiều công nhân tham gia làm việc. Mỗi công nhân làm việc trong một công đoạn sẽ được chấm công theo số lượng hoàn thành. Hàng ngày, kế toán phải nhập bảng chấm công do các ban điều hành các chuyền gởi về. Bảng chấm công cho biết số lượng từng công đoạn của từng đợt giao hàng mà công nhân thực hiện trong ngày. Hàng tháng, doanh nghiệp trả lương cho công nhân 2 kỳ: kỳ ứng và kỳ cuối tháng. Mức lương ứng được nhân viên kế toán xác đònh (bằng một nửa mức thu nhập hàng tháng). Kỳ ứng được phát vào ngày 20 mỗi tháng. Cuối tháng, kế toán phải tính và lập bảng lương theo từng phòng ban, từng chuyền (để phát). Yêu cầu : (a) Xây dựng mô hình ER cho vấn đề trên. (b) Chuyển mô hình ER thành mô hình quan hệ. (c) Thiết kế phần xử lý nhập bảng chấm công vào cuối ngày. oOo . http://www.ebook.edu.vn Tài liệu Phân Tích Thiết Kế Hệ Thống 73 Chương 8 . MỞ RỘNG KHÁI NIỆM MỐI KẾT HP (ADVANCED RELATIONSHIP CONCEPTS) I MỐI KẾT HP MỘT-MỘT Ta đã có mô hình về NGƯỜI. http://www.ebook.edu.vn Tài liệu Phân Tích Thiết Kế Hệ Thống 74 o Ta mô hình thành hai tập thực thể và một mối kết hợp khi một trong hai tập thực thể có mối kết hợp với tập thực thể khác Ví dụ : Trong Hệ Tiếp. mã phần tạo nên) PHẦN KẾT HP mã phần sử dụng mã phần tạo nên lượng sử dụng 06 04 5 07 04 10 http://www.ebook.edu.vn Tài liệu Phân Tích Thiết Kế Hệ Thống 81 08 04 10 09 04 3 04 01