Báo cáo Chuyển đổi mô hình lớp trong UML sang quan hệ

Tài liệu Báo cáo Chuyển đổi mô hình lớp trong UML sang quan hệ: MỤC LỤC TÓM TẮT Phân tích và thiết kế hệ thống đóng vai trò rất quan trọng trong quá trình sản xuất phần mềm, nhất là trong thời đại ngày nay cùng với sự phát triển phần mềm có qui mô lớn với tính năng đa dạng thì yêu cầu bảo trì đối với hệ thống lớn và phức tạp ngày càng trở thành vấn đề nghiêm trọng. Thực tế hiện nay đang tồn tại song song 2 hướng phân tích thiết kế, đó là: Phương pháp phân tích theo hướng cấu trúc đã ra đời và được áp dụng rất sớm bởi kết quả của việc thiết kế là Cơ sở dữ liệu quan hệ mà các quan hệ đã đạt được các chuẩn đặt ra và đã được cài đặt bởi các công cụ hữu hiệu là các hệ quản trị CSDL quan hệ như: Foxpro, Access, My SQL, SQL Server, Oracle, … Tuy nhiên việc phát triển, nâng cấp, mở rộng hệ thống sau này để đáp ứng được nhu cầu của người dùng là rất khó. Phân tích thiết kế hệ thống theo hướng đối tượng với Ngôn ngữ mô hình hoá thống nhất UML (Unified Modeling Language) ra đời sau với kết quả của việc thiết kế là các lớp đối tượng cùng với các thao tác ...

doc45 trang | Chia sẻ: hunglv | Lượt xem: 1824 | Lượt tải: 0download
Bạn đang xem trước 20 trang mẫu tài liệu Báo cáo Chuyển đổi mô hình lớp trong UML sang quan hệ, để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên
MỤC LỤC TÓM TẮT Phân tích và thiết kế hệ thống đóng vai trò rất quan trọng trong quá trình sản xuất phần mềm, nhất là trong thời đại ngày nay cùng với sự phát triển phần mềm có qui mô lớn với tính năng đa dạng thì yêu cầu bảo trì đối với hệ thống lớn và phức tạp ngày càng trở thành vấn đề nghiêm trọng. Thực tế hiện nay đang tồn tại song song 2 hướng phân tích thiết kế, đó là: Phương pháp phân tích theo hướng cấu trúc đã ra đời và được áp dụng rất sớm bởi kết quả của việc thiết kế là Cơ sở dữ liệu quan hệ mà các quan hệ đã đạt được các chuẩn đặt ra và đã được cài đặt bởi các công cụ hữu hiệu là các hệ quản trị CSDL quan hệ như: Foxpro, Access, My SQL, SQL Server, Oracle, … Tuy nhiên việc phát triển, nâng cấp, mở rộng hệ thống sau này để đáp ứng được nhu cầu của người dùng là rất khó. Phân tích thiết kế hệ thống theo hướng đối tượng với Ngôn ngữ mô hình hoá thống nhất UML (Unified Modeling Language) ra đời sau với kết quả của việc thiết kế là các lớp đối tượng cùng với các thao tác xử lý đối tượng ngay trong lớp và sự trao đổi thông tin giữa các lớp. Ưu điểm là có thể áp dụng các mẫu thiết kế cho các lớp như Mẫu chuyên gia (Expert), Bộ tạo lập (Creator), Bộ điều khiển (Controller), Ghép nối thấp (Low coupling), Kết dính cao (High conhesion) ta được các lớp rất tốt có khả năng mở rộng và sử dụng lại mà không ảnh hưởng lớn đến hệ thống đang hoạt động hiện tại. Tuy nhiên việc lưu trữ các lớp là rất khó khăn bởi chưa có các ngôn ngữ chuẩn hữu hiệu như trong CSDL quan hệ. Vì vậy mục đích của đề tài này là nghiên cứu thuật toán chuyển đổi từ mô hình lớp trong UML sang quan hệ để có thể sử dụng các hệ quản trị CSDL quan hệ để lưu trữ thì hệ thống phân tích thiết kế được sẽ rất tốt. CHƯƠNG 1 BIỂU ĐỒ LỚP THIẾT KẾ TRONG UML VÀ MÔ HÌNH LIÊN KẾT THỰC THỂ EER 1.1 Thành phần và các mối quan hệ trong biểu đồ lớp Biểu đồ lớp chỉ một tập các lớp,các giao diện , các sự cộng tác và các mối quan hệ giữa các lớp. 1.1.1 Lớp, đối tượng Đối tượng là một sự tượng trưng cho một thực thể, hoặc là thực thể tồn tại trong thế giới thực hoặc là thực thể mang tính khái niệm. Một lớp là miêu tả của một nhóm đối tượng có chung thuộc tính, chung phương thức, chung ngữ nghĩa và chung các mối quan hệ với các đối tượng khác. UML thể hiện lớp bằng hình chữ nhật có 3 phần: - Tên lớp: Thường là danh từ đặc tả đối tượng - Thuộc tính: Là bộ phận thông tin liên kết với lớp sử dụng để mô tả những đặc điểm của đối tượng. Thuộc tính thường được xác định trong một phạm vi cho trước các giá trị, một phạm vi là một tập các giá trị xác định. - Thao tác: là hành vi kết hợp với mỗi lớp. Thao tác xác định trách nhiệm của lớp. Thao tác được sử dụng để xử lý thay đổi các thuộc tính cũng như thực hiện các công việc khác. Một tính chất quan trọng của lập trình hướng đối tượng là tính bao gói. Mỗi lớp bao gói thông tin và hành vi nhờ các thuộc tính và hành vi của nó. Visibility là chi tiết dùng để xác định tính chất truy nhập của một thành phần nào đó trong hệ thống. UML có 3 cấp của Visibility : Public : Bất kì lớp trong hệ thống đều có thể sử dụng các thành phần lớp với cấp này. Private: Chỉ các thành phần của lớp này là có thể sử dụng các thành phần này. Protected: Bất kì các lớp kế thừa hoặc các thành phần của lớp này đều có thể sử dụng các thành phần với visibility là protected. Xét ví dụ lớp NHAN VIEN sau: Lớp đối tượng NHAN VIEN có các thuộc tính { Manv, Ten, Ngay sinh, Gioi tinh, Dia chi, Luong} và các thao tác {Tao moi(), Nhap(), Sua(), Xoa(), Xem()}. 1.1.2 Các mối quan hệ giữa các lớp Quan hệ là kết nối ngữ nghĩa giữa các lớp, nó cho phép một lớp biết về các thuộc tính, thao tác và quan hệ của lớp khác Có các kiểu quan hệ chính: Quan hệ kết hợp Quan hệ kết tập Quan hệ tổng quát hoá Quan hệ hiện thực a) Quan hệ kết hợp Quan hệ kết hợp được định nghĩa là một mối quan hệ miêu tả một tập hợp các nối kết, trong khi một nối kết được định nghĩa là một sự liên quan về ngữ nghĩa giữa một nhóm các đối tượng. Khi có quan hệ kết hợp mỗi lớp có thể gửi thông điệp đến lớp khác trong biểu đồ tương tác. Quan hệ kết hợp có thể 1 chiều hay 2 chiều - Quan hệ kết hợp 2 chiều: Đòi hỏi các đối tượng phụ thuộc lẫn nhau, có nghĩa khi một đối tượng này có liên hệ với một đối tượng khác thì cả hai đối tượng này nhận thấy nhau. VD: Xét quan hệ kết hợp 2 chiều giữa lớp NHAN VIEN và lớp PHONG BAN thể hiện lớp nhân viên biết thuộc tính và thao tác của lớp phòng ban và ngược lại. - Quan hệ kết hợp một chiều: Đòi hỏi sự phụ thuộc một chiều, thể hiện bằng một mũi tên. Xét quan hệ kết hợp 1 chiều trên hình 1.3b. Trong ví dụ này lớp NHAN VIEN biết thuộc tính và thao tác của lớp PHONG BAN, nhưng lớp PHONG BAN không biết gì về lớp NHAN VIEN. Trên biểu đồ tương tác, nhân viên có thể gửi thông điệp để phòng ban nhận, nhưng phòng ban không thể gửi thông điệp đến nhân viên. - Quan hệ kết hợp có lớp kết hợp: Lớp kết hợp là lớp được gắn vào một quan hệ nhằm bổ sung thông tin cho quan hệ đó. Ví dụ quan hệ giữa hai lớp NHAN VIEN và DU AN, khi nhân viên làm việc trong dự án thì sẽ sinh ra thuộc tính số giờ làm việc. Lớp Lam viec với thuộc tính số giờ là lớp bổ sung thông tin cho mối quan hệ giữa lớp nhân viên và lớp dự án. - Quan hệ kết hợp có thể đệ qui: Kết hợp đệ qui cho thấy một hiện thực của lớp có quan hệ với một hiện thực khác của cùng lớp đó. Ví dụ với lớp NHAN VIEN, một nhân viên có thể là quản lý của nhiều nhân viên. - Quan hệ phụ thuộc: Là một sự liên quan ngữ nghĩa giữa hai lớp, một mang tính độc lập và một mang tính phụ thuộc. Mọi sự thay đổi trong phần tử độc lập sẽ ảnh hưởng đến phần tử phụ thuộc. Quan hệ phụ thuộc luôn luôn là quan hệ một chiều, chỉ ra một lớp phụ thuộc vào lớp khác. Lớp đối tượng A có quan hệ phụ thuộc với lớp đối tượng B nếu mọi sự thay đổi trong phần tử độc lập A sẽ ảnh hưởng đến phần tử phụ thuộc B. VD: Lớp đối tượng Thời khóa biểu có quan hệ phụ thuộc với lớp đối tượng Giáo viên. b) Quan hệ kết tập Là một dạng đặc biệt của quan hệ kết hợp, biểu thị quan hệ giữa các lớp dựa trên nền tảng của nguyên tắc “ một tổng thể được tạo thành bởi các bộ phận”. Nó được sử dụng khi chúng ta muốn tạo lên một thực thể mới bằng cách tập hợp các thực thể tồn tại với nhau. Lớp đối tượng A có quan hệ kết tập với lớp đối tượng B nếu 1 đối tượng trong A có quan hệ với nhiều đối tượng trong B. Xét ví dụ lớp đối tượng NHAN VIEN có quan hệ kết tập với lớp PHU THUOC, nghĩa là một đối tượng nhân viên có quan hệ với nhiều đối tượng phụ thuộc. c) Quan hệ tổng quát hoá Chuyên biệt hóa: là quá trình tinh chế một lớp thành những lớp chuyên biệt hơn. Chuyên biệt hóa bổ sung thêm chi tiết và đặc tả cho lớp kết quả. Lớp mang tính khái quát được gọi là lớp cha, kết quả chuyên biệt hóa là việc tạo ra các lớp con. Con đường bắt đầu từ môt lớp chuyên biệt và khiến nó ngày càng mang tính khái quát cao hơn được gọi là quá trình khái quát hóa. Xét quan hệ tổng quát hoá giữa các lớp A, lớp B, lớp C. Tổng quát hoá gộp các thành phần chung của tập lớp B và lớp C để hình thành lớp tổng quát hơn là lớp cha A. Mỗi lớp cấp thấp B, C có thể có thuộc tính, thao tác, quan hệ riêng để bổ sung vào các thành phần mà nó kế thừa. VD: Quan hệ tổng quát hoá giữa các lớp hình, hình tròn và hình tam giác. Trong đó lớp hình là lớp cha, lớp hình tròn và tam giác là lớp con. Hai lớp hình tròn và hình tam giác kế thừa các thuộc tính chu vi, diện tích và kế thừa thao tác tính của lớp hình. d) Quan hệ hiện thực Là quan hệ chỉ ra mối quan hệ giữa lớp tham số và lớp hiện thực. Lớp tham số có các tham số hình thức và các tham số này dùng để tạo ra các lớp thực sự. Lớp hiện thực được tạo ra từ lớp tham số bằng cách thay thế tham số hình thức đó bởi các giá trị. VD: Quan hệ hiện thực giữa các lớp Mang, Diemthi, Diachi. Lớp tham số là lớp Mang có tham số hình thức là kieupt. Hai lớp Diemthi và Diachi là hai lớp hiên thực của lớp Mang với các giá trị tương ứng với tham số là diem, dchi. e) Gán đặc tính cho quan hệ Tính nhiều: Là kết hợp biểu diễn mối quan hệ cấu trúc giữa các đối tượng. Tính nhiều của quan hệ cho biết bao nhiêu hiện thực của lớp có quan hệ với một hiện thực của lớp khác vào một thời điểm.Trong UML có các tính nhiều. Tính nhiều Ý nghĩa * Nhiều 0 Không 1 Một 0..* Từ không đến nhiều 1..* Từ một đến nhiều 0..1 Không hay một 1..1 Chỉ một VD: Lớp LOP HOC và SINH VIEN có quan hệ kết hợp với nhau. Tính nhiều của quan hệ trả lời câu hỏi sau: “ Một sinh viên có thể học bao nhiêu môn học trong một kì ” và “Bao nhiêu sinh viên có thể đăng kí một môn học ”. Ví dụ thể hiện một sinh viên có thể học đồng thời từ 0 dến 4 môn học, một lớp có thể có từ 10 đến 20 sinh viên. 1.2 Mô hình kiên kết thực thể mở rộng EER Mô hình liên kết thực thể mở rộng EER bao gồm tất cả các khái niệm của mô hình ER. Ngoài ra nó còn bao hàm khái niệm về lớp cha, lớp con, các khái niệm có liên quan đến chuyên biệt hoá và tổng quát hoá. 1.2.1 Lớp cha, lớp con và sự kế thừa Như ta đã biết, một kiểu thực thể thường dùng để mô tả một kiểu của thực thể và tập thực thể hoặc tập các thực thể của kiểu đó tồn tại trong CSDL. Trong trường hợp một kiểu thực thể có nhiều nhóm con cho các thực thể của nó, các nhóm con này có ý nghĩa cần được miêu tả rõ ràng bởi ý nghĩa của chúng đối với CSDL. Ví dụ: Các thực thể là bộ phận của kiểu thực thể Nhân viên có thể được nhóm vào trong Thư kí, Kĩ sư, … nhân viên lương tháng, nhân viên công nhật. Tập các thực thể của nhóm đó là một tập con của các thực thể thuộc vào tập thực thể Nhân viên. Chúng ta gọi từng nhóm đó là một lớp con của các thực thể thuộc vào tập thực thể Nhân viên và kiểu thực thể Nhân viên được gọi là lớp cha cho từng lớp con đó. Một khái niệm liên quan tới các lớp con là kế thừa kiểu. Kiểu của một thực thể được xác định bởi các thuộc tính mà nó có và các kiểu liên kết mà nó tham gia. Bởi vì một thực thể trong lớp con mô tả cùng một thực thể trong thế giới thực như một thành phần của lớp cha nên nó sẽ có các giá trị cho các thuộc tính cụ thể của nó cũng như các giá trị của các thuộc tính của một bộ phận lớp cha. Thực thể cũng kế thừa tất cả các mối liên kết của các lớp cha tham gia. 1.2.2 Chuyên biệt hoá và tổng quát hoá a) Chuyên biệt hoá - Là một quá trình xác định một tập lớp con của một kiểu thực thể, kiểu thực thể này được gọi là lớp cha của chuyên biệt hoá. Tập lớp con hình thành chuyên biệt hoá được xác định cơ bản dựa trên một số đặc điểm tiêu biểu của các thực thể trong lớp cha. - Có thể có nhiều chuyên biệt hoá của cùng một kiểu thực thể dựa trên những đặc điểm khác nhau tiêu biểu. - VD: Với kiểu thực thể NHAN VIEN dựa trên cách thức trả lương, chuyên biệt hoá lớp thực thể NHAN VIEN tạo ra hai lớp con {NV_HOP DONG, NV_BIEN CHE}. Tien luong Thuoc ve CONG DOAN NHA QUAN LY Hình 2.1 Ví dụ biểu diễn sự chuyên biệt hoá Tra mot luot NV_BIEN CHE NHAN VIEN NV_HOP DONG d Tiến trình chuyên biệt hoá cho phép chúng ta: Xác định một tập các lớp con của một kiểu thực thể. Thiết lập các đặc trưng truyền thống với từng lớp con. Thiết lập các kiểu liên kết đặc trưng truyền thống giữa từng lớp con và các kiểu thực thể khác và giữa các lớp con khác. b) Tổng quát hoá - Là quá trình xác định dặc trưng giữa các kiểu thực thể và tổng quát chúng kiểu thực thể ban đầu là các lớp con riêng biệt của nó. Hình 2.2 Ví dụ biểu diễn sự tổng quát hoá THU KI Ten Bac Tra mot luot Gioi tinh Dia chi NGUOI QL NGUOI QL KS KT VIEN NV_BIEN CHE d d KI SU NHAN VIEN Kieu ki su NV_HOP DONG Hsl Ngay sinh Trinh do - VD: NHAN VIEN là một tổng quát hoá của {THU KI, KI THUAT VIEN va KI SU}. 1.2.3 Các ràng buộc và các đặc điểm trên chuyên biêt hoá và tổng quát hoá a) Các ràng trên chuyên biệt hóa và tổng quát hóa Trong một số chuyên biệt hóa chúng ta có thể xác định các thực thể sẽ trở thành một phần của từng lớp con bởi một điều kiện đưa ra trên giá trị của một số thuộc tính trong lớp cha. Các lớp con như vậy được gọi là các lớp con xác định bằng thuộc tính. VD: nếu kiểu thực thể Nhân viên có một thuộc tính Kiểu công việc, ta có thể xác định điều kiện của các thành viên trong lớp Thư kí bởi vì ( Kiểu công việc = Thư kí). Điều kiện này là một ràng buộc chỉ rõ bộ phận của lớp con thư kí phải thỏa mãn thuộc tính và là các thực thể của kiểu thực thể Nhân viên có thuộc tính Kiểu công việc = Thư kí. Khi không có một điều kiện nào cho việc xác định thành viên trong một lớp con, lớp con đó được gọi là lớp con xác định bởi người dùng. - Hai ràng buộc phù hợp với một chuyên biệt hoá: Ràng buộc riêng rẽ Ràng buộc đầy đủ a1) Ràng buộc riêng rẽ Xác định các lớp của chuyên biệt hoá phải rời nhau. Điều này có nghĩa là một thực thể có thể là thành phần của nhiều nhất một lớp con của chuyên biệt hoá. Một chuyên biệt hoá được xác định bởi thuộc tính xác định tức là ràng buộc riêng rẽ nếu thuộc tính dùng để xác định giá trị thành viên là đơn trị. - Ví dụ: Chuyên biệt hoá {NV_HOP DONG, NV_BIEN CHE} là ràng buộc mà các lớp con được xác định bởi người dùng phải được tách rời. Nếu như lớp con không bắt buộc phải riêng rẽ, tập các thực thể của chúng có thể chồng chéo lên nhau: Các thực thể giống nhau có thể là một bộ phận của nhiều hơn một lớp con của chuyên biệt hóa. Kí hiệu bởi chữ O trong vòng tròn.Ví dụ ( Hình 2.3) BO PHAN BP BAN HANG Mo ta Hình 2.3: Chuyên biệt hóa với các lớp con trùng lặp O Mabp Masx Ngay sx BP SAN XUAT Bang gia Nha cung cap a2) Ràng buộc đầy đủ - Một ràng buộc chuyên biệt hoá toàn bộ chỉ ra rằng các thực thể trong lớp cha phải là một thành phần của một số lớp con nào đó trong chuyên biệt hoá - VD ( Hình 2.2) Nếu tất cả nhân viên phải là Nhân viên hợp đồng hoặc Nhân viên biên chế thì chuyên biệt hoá {NV_HOP DONG, NV_BIEN CHE} là một chuyên biệt hoá toàn bộ của NHAN VIEN; điều này được chỉ ra trong sơ đồ EER bằng cách cùng một đường nối lớp cha với đường tròn. - Chuyên biệt hoá bộ phận, cho phép một thực thể không thuộc về bất kì một lớp con nào. Chuyên biệt hoá {THU KI, KI SU} là một chuyên biệt hoá bộ phận. b) Các hệ thống phân cấp và hệ thống đan chéo Các thực thể có thể có nhiều hơn các lớp con xác định trên chính nó, hình thành một hệ thống phân cấp hoặc một hệ thống đan chéo của các chuyên biệt hóa. Ví dụ ( Hình 2.2 ) Kĩ sư là một lớp con của Nhân viên cũng là lớp cha của Quản lý kĩ sư; điều này miêu tả ràng buộc của thế giới thực mà tất cả những người Quản lý kĩ sư đều phải là một kĩ sư. Một hệ thống phân cấp chuyên biệt hóa có ràng buộc tất cả các lớp con tham gia như một lớp con tham gia chỉ trong một liên kết lớp/ lớp con. Một hệ thống đan chéo chuyên biệt hóa một lớp con có thể là một lớp con trong nhiều hơn một mối liên kết lớp/ lớp con. 1.2.5 Mô hình của các kiểu UNION sử dụng các Category Trong các liên kết lớp cha/ lớp con mà chúng ta thấy có một lớp cha đơn. Một lớp con dung chung như người quản lý trong hệ thống đan chéo ( hình 2.2) là lớp con của ba mối liên kết lớp cha/lớp con phân biệt, ở đây một trong ba mối liên kết có một lớp cha đơn. Điều này không phải là hiếm mà do nhu cầu xuất hiện của một mối liên kết lớp cha/ lớp con đơn lẻ nhiều hơn một lớp cha, ở đây các lớp cha mô tả các kiểu thực thể khác nhau. Trong trường hợp này, lớp con sẽ mô tả một tập các đối tượng đó là một kiểu UNION của các thực thể khác nhau; chúng ta gọi một lớp con như vậy là một kiểu union hoặc category. CONG TY Dia chi NH Ten NH Dia chi Ten NGUOI SO HUU U DANG KI XE U O TO CON O TO TAI Cau tao Trong tai Kieu dang Kieu dang Ngay mua Quyen SH Sở hữu Ma NGAN HANG SoDK Nam SoDK Nam Cau tao Nhan Ten CT Dia chi CT NGUOI Ví dụ: CSDL đăng kí xe cộ, chủ nhân của một chiếc xe có thể là một NGUOI, một NGAN HANG hoặc một CONG TY. Ta cần tạo một tập các thực thể chứa các thực thể của cả ba kiểu để thể hiện được vai trò của người sở hữu xe. Một Category NGUOI SO HUU là một lớp con cho UNION của ba kiểu thực thể NGUOI, NGAN HANG, CONG TY. Sự khác nhau cơ bản của một lớp con dùng chung và một Category là: Mỗi lớp con dùng chung là một lớp con của một trong các lớp cha, vì thế một thực thể là thành phần của một lớp con đó. Ràng buộc mô tả một thực thể của lớp là một tập con giao nhau của ba lớp con. Trong khi một thực thể của một Category chỉ tồn tại trong một lớp cha của nó. Sự khác nhau cơ bản giữa một Category và một lớp cha là: Một Category của một số thực thể là một số thực thể chứ không nhất thiết phải là tất cả chúng. Trong khi một lớp cha phải bao gồm tất cả các lớp con của nó. 1.3 Sự tương thích giữa mô hình liên kết thực thể và biểu đồ lớp CSDL Quan hệ CSDL Hướng đối tượng Mô hình Liên kết thực thể EER Biểu đồ lớp trong UML Thiết kế Chuyển đổi Chuyển đổi Biểu diễn Thiết kế Biểu diễn Từ mô hình trên ta thấy: CSDL quan hệ được biểu diễn mô hình liên kết thực thể, từ mô hình liên kết thực thể ta có thể thiết kế ra được CSDL quan hệ. Đối với CSDL hướng đối tượng được biểu diễn bởi biểu đồ lớp thiết kế trong UML, từ biểu đồ lớp trong UML có thể thiết kế ra được CSDL hướng đối tượng. Vì vậy để có thể chuyển đổi được giữa CSDL quan hệ và CSDL theo hướng đối tượng, ta phải thực hiện việc chuyển đổi giữa mô hình liên kết thực thể EER và biểu đồ lớp thiết kế trong UML. Thuật toán chuyển đổi phải đảm bảo có sự tương thích giữa các thành phần trong mô hình liên kết thực thể mở rộng EER và biểu đồ lớp thiết kế để sau khi chuyển đổi thì dữ liệu không bị mất mát và sai lệch thông tin. Phần trình bày sau trình bày về sự tương thích giữa các thành phần, các mối quan hệ giữa mô hình EER và biểu đồ lớp thiết kế trong UML. UML EER UML là ngôn ngữ mô hình hóa chuẩn để thiết kế CSDL hướng đối tượng EER sử dụng trong mô hình thiết kế cơ sở dữ liệu quan hệ Các thành phần Biểu đồ lớp thiết kế Lớp Đối tượng Thuộc tính Miền giá trị của thuộc tính Mối quan hệ giữa các lớp Bản số tham gia vào quan hệ Mô hình EER Kiểu thực thể Thực thể Thuộc tính Miền giá trị của thuộc tính Kiểu liên kết giữa các thực thể Tỷ số lực lượng tham gia vào liên kết Các kí hiệu - UML hiển thị lớp bằng hình chữ nhật có 3 phần: Phần trên cùng: Tên lớp Phần giữa: Thuộc tính Phần dưới cùng: Thao tác - Kiểu thực thể hiển thị bởi hình chữ nhật Tên kiểu thực thể Thuộc tính được hiển thị bởi hình elip Các thao tác không được hỗ trợ trong mô hình EER Các mối quan hệ - Trong UML gọi là các mối quan hệ giữa các lớp. - Lực lượng tham gia vào liên hệ gọi là bản số. - Bản số được ghi ở phía đầu đường thẳng thể hiện liên hệ, sát vào lớp là miền áp dụng của nó. Phạm vi số lượng phẩn tử có thể có trong liên hệ. - Trong EER gọi là các mối quan hệ giữa các thực thể. - Tỷ số lực lượng cực đại, cực tiểu tham gia vào liên kết. Bản số và lực lượng 0..* 1 hoặc 1..1 0,N 1,1 Thuộc tính riêng của quan hệ - Thuộc tính riêng của quan hệ giữa các lớp đối tượng. - Thuộc tính riêng của kiểu liên kết giữa các thực thể Các mối quan hệ Quan hệ đệ qui Quan hệ kết tập Quan hệ kết hợp Quan hệ có lớp kết hợp Liên kết cấp 1 Liên kết giữa một kiểu thực thể với một kiểu thực thể yếu Liên kết giữa các thực thể Liên kết có thuộc tính riêng của kiểu liên kết Mapb So gio (0,1) N Ngay sinh Dia chi Ten PB Manv (1,N) PHONG BAN lam viec cho Ho ten Gioi tinh M Mapt Ten PT Gioi tinh Ngay sinh (0,N) Quan he PHU THUOC (0,N) (0,1) (1,1) Quan ly NHAN VIEN Lam viec Mada Ten DA DU AN Phu thuoc Ví dụ 0..* CHƯƠNG 2 PHƯƠNG PHÁP CHUYỂN ĐỔI TỪ BIỂU ĐỒ LỚP THIẾT KẾ SANG MÔ HÌNH QUAN HỆ 2.1 Chuyển đổi từ biểu đồ lớp sang mô hình EER 2.1.1 Chuyển đổi một lớp thành một kiểu thực thể A a2 a1 ai an Với mỗi lớp trong biểu đồ lớp, ta tạo ra một kiểu thực thể tương ứng. Tên của kiểu thực thể được lấy trực tiếp từ tên lớp. Các thuộc tính của lớp gốc được chuyển thành các thuộc tính của kiểu (tập) thực thể. Bổ sung thuộc tính định danh vào kiểu thực thể đóng vai trò là thuộc tính khoá. 2.1.2. Chuyển đổi các mối quan hệ 2.1.2.1 Quan hệ kết hợp a) Quan hệ kết hợp Xét mối quan hệ kết hợp giữa lớp đối tượng A và đối tượng B như hình vẽ. Khi chuyển đổi sang mô hình EER lớp đối tượng A, B chuyển thành kiểu thực thể A, B tương ứng. Quan hệ kết hợp một hay hai chiều được chuyển đổi thành các quan hệ. an Id_a Id_b (1,1) (1,N) b1 bm a1 lk A B Tuỳ thuộc vào cơ số của quan hệ kết hợp mà quan hệ tương ứng trong quan hệ thực thể là “1-1”, “1-n”, “n-m”. Ví dụ lớp đối tượng SINH VIEN có quan hệ kết hợp với lớp KHOA. Ngay sinh Ho ten Dia chi Makhoa (1,N) (1,1) Học tai Dien thoai Ten khoa SINH VIEN Masv KHOA được tạo bởi *8* 1 b) Quan hệ kết hợp có lớp kết hợp Xét quan hệ kết hợp có lớp kết hợp là A quan hệ với lớp kết hợp B sinh ra lớp C. Lớp kết hợp C được chuyển thành mối quan hệ giữa các kiểu thực thể A, B. Id_a a1 b1 (1,1) (1,N) c1 C ID_b an A B bm ck Thuộc tính của lớp kết hợp chuyển thành các thuộc tính của mối quan hệ. Manv Ten Ngay sinh (1,N) (1,M) So gio Lam viec Gioi tinh NHAN VIEN Dia chi Ten DA DU AN Mada VD: Quan hệ kết hợp giữa lớp đối tượng Nhân viên và lớp Du an sinh ra lớp kết hợp Làm việc có thuộc tính là số giờ làm việc. Luong c) Quan hệ đệ qui Lớp đối tượng A khi có quan hệ đệ qui sẽ tạo thành kiểu thực thể tương ứng với thuộc tính định danh và liên kết “ một- nhiều” với chính nó. a1 an (0,1) (1,n) ai a2 A lk VD: Lớp đối tượng Nhân viên, một hiện thực của lớp là nhân viên có thể liên kết với một hiện thực của chính nó. (1,1) (1,N) quản lý Luong Gioi tinh Dia chi NHAN VIEN Manv Ten Ngay sinh 2.1.2.2 Quan hệ kết tập a) Quan hệ kết tập Với mỗi quan hệ kết tập, tạo quan hệ “một- nhiều” giữa hai kiểu thực thể tương ứng với hai lớp tham gia liên kết. Lớp bộ phận B khi chuyển đổi sang mô hình liên kết thực thể sẽ tạo thành kiểu thực thể yếu liên kết “ nhiều - một” với kiểu thực thể A. (1,n) (1,1) a1 A an Id_a b1 bm Id b B lk Ví dụ: Lớp đối tượng Nhân viên có quan hệ kết tập với lớp đối tượng Phụ thuộc. (1,1) (1,N) phu thuoc PHU THUOC Manv NHAN VIEN Gioi tinh Dia chi Ten Gioi tinh Ngay sinh Quan he Ten Ngay sinh Luong b) Quan hệ kết tập giữa hai lớp thông qua một lớp khác Id_a Id_b (1,n) (1,1) c b1 a1 c bm A lk B an Với quan hệ kết tập giữa hai lớp A và lớp thông qua lớp C, khi chuyển đổí sang mô hình quan hệ thì lớp đối tượng C sẽ chuyển thành thuộc tính đa trị của hai thực thể tham gia liên kết là thực thể A và B. DU AN Mapb Ten DA (1,1) (1,N) kiem soat Dia diem Dia diem PHONG BAN Ten PB Mada VD: Xét 1 quan hệ kết hợp giữa 2 lớp Phòng ban và lớp Dự án thông qua lớp Địa điểm. 2.1.2.3 Quan hệ tổng quát hoá Quan hệ tổng quát hoá giữa 2 lớp thì được chuyển thành quan hệ chuyên biệt hoá giữa 2 kiểu thực thể biểu diễn lớp cha và lớp con. NGHIEN CUU SINH Thoi gian TRO LY NC Du an Khoa hoc TRO LY GD d 2.1.3.4 Quan hệ hiện thực Với mỗi quan hệ hiện thực, tạo quan hệ is-a giữa hai thực thể tương ứng với lớp tham số và lớp hiện thực. Quan hệ hiện thực cũng là một dạng của quan hệ kế thừa. Do đó quan hệ hiện thực cũng được chuyển đổi thành quan hệ i-sa trong mô hình thực thể- mối quan hệ. kieupt= dchi kieupt= diem Mang kieupt i-sa Diem thi Dia chi i-sa VD: Mối quan hệ hiện thực giữa các lớp Mang, Diemthi , Diachi. Lớp tham số là lớp mảng có tham số hình thức là kieupt. 2.2 Chuyển đổi từ mô hình EER thành quan hệ Thuật toán để chuyển đổi từ mô hình quan hệ thực thể sang mô hình quan hệ bao gồm tất cả các thuật toán ánh xạ từ mô hình quan hệ thực thể ER và có thêm bước ánh xạ từ mô hình quan hệ thực thể mở rộng EER sang mô hình quan hệ. Báo trình bày thuật toán chuyển đổi từ mô hình thực thể EER sang mô hình quan hệ. Chúng ta sử dụng atts(R) để biểu diễn các thuộc tính của quan hệ R và PK(R) để biểu thị khoá chính của R. 2.2.1 Các liên kết lớp cha/ lớp con, chuyên biệt hóa và tổng quát hóa Chuyển đổi từng lớp con chuyên biệt hoá với m lớp con {S1, S2, …., Sm} và (tổng quát hoá) các lớp cha C, các thuộc tính của C là {k, a1, a2, …. an}và k là khoá chính thành các sơ đồ quan hệ sử dụng thuật toán sau. Tạo một quan hệ L cho C với các thuộc tính Atts(L) = { k, a1, a2,..., an} và PK(L ) = k. Tạo một quan hệ Li cho từng lớp con Si, 1<= i<=m, với các thuộc tính attrs(Li) = {k, ki}+ {các thuộc tính của Si} với PK(Li) = {k} là khoá. Ví dụ: Xét một quan hệ chuyên biệt hóa của kiểu thực thể NHAN VIEN với các lớp con { THU KI, KI THUAT VIEN, KI SU } như hình vẽ. 2.2.2 Ánh xạ các lớp con dùng chung Một lớp con dùng chung như QUAN LY KI SU như đã mô tả ở phần trước là một lớp con của nhiều lớp cha. Các lớp này phải có tất cả các thuộc tính khóa giống nhau; mặt khác lớp con dùng chung sẽ được mô hình như một Category. 2.2.3 Ánh xạ từ các loại Category Một Category là một lớp con của việc hợp nhất hai hay nhiều lớp cha có thể có các khóa khác nhau. Việc ánh xạ một Category mà các lớp cha xác định của nó có các khóa khác nhau, là qui tắc để chỉ ra một thuộc tính khóa mới gọi là khóa đại diện khi tạo ra một liên kết để ứng với một Category. Điều này là do các khóa của các lớp xác định là khác nhau, ví thế chúng ta không sử dụng bất kì một trong các khóa đó để nhận biết tất cả các thực thể trong Category. Ví dụ: Tạo sơ đồ liên kết Người sở hữu tương ứng với Category NGUOI SO HUU như đã minh họa và chứa bất kì các thuộc tính trong của Category trong quan hệ này. Khóa chính của Người sở hữu là khóa đại diện MASH. Chúng ta cũng thêm vào thuộc tính khóa đại diện Người sở hữu như là khóa ngoài của từng quan hệ tương ứng với một lớp cha của Category, để nhận biết được sự tương ứng các giá trị giữa khóa đại diện và từng lớp cha. Với một Category mà các lớp cha của nó có khóa giống nhau, ta không cần cho một khóa đại diện mà khóa chính của Category là khóa của các lớp cha đó. NHAN VIEN d KI THUAT VIEN Gioi tinh Dia chi Trinh do Bac Kieu ki su Ngay sinh Họ Loai nghe Dem Ten KI SU THU KI BHXH NHAN VIEN Áp dụng thuật toán chuyển đổi trên ta được các bảng quan hệ: BHXH Ho Dem Gioi tinh Loai nghe Ngay sinh Dia chi THU KI BHXH Trinh do BHXH Kieuks BHXH Bac Mô hình quan hệ: KI THUAT VIEN KI SU KI SU KI SU CHƯƠNG 3 PHƯƠNG PHÁP CHUYỂN ĐỔI TỪ MÔ HÌNH LIÊN KẾT THỰC THỂ EER SANG BIỂU ĐỒ LỚP THIẾT KẾ Thiết kế Cơ sở dữ liệu (CSDL) quan hệ bằng phương pháp Top-Down đã được sử dụng từ rất lâu và được phổ biến rộng rãi và ứng dụng nhiều. Tuy nhiên trong vài năm trở lại đây CSDL hướng đối tượng đã được đưa vào triển khai ứng dụng rộng rãi nhưng việc phân tích thiết kế bằng phương pháp hướng đối tượng UML còn mới mẻ, khó khăn đối với một số người đã quá quen thuộc với CSDL quan hệ. Để giải quyết khó khăn trên thì trong báo cáo sẽ trình bày phương pháp chuyển đổi từ mô hình liên kết thực thể mở rộng EER sang các lớp trong biểu đồ lớp của UML (chuyển đổi dữ liệu). Sau đó sẽ áp dụng một số mẫu thiết kế (mẫu chuyên gia Expert, bộ tạo lập Creator ...) để xác định thêm các phương thức cho các lớp vừa chuyển đổi được thì sẽ nhận được CSDL hướng đối tượng hoàn chỉnh. Phương pháp chuyển đổi này sẽ giúp cho những người đã quá quen thuộc chuyên sâu về thiết kế CSDL quan hệ tiếp cận được dễ dàng với việc thiết kế CSDL hướng đối tượng mà vẫn kế thừa được kiến thức sẵn có từ trước về CSDL quan hệ mà vẫn tiếp cận được với CSDL hướng đối tượng một cách tương đối thuận tiện mang lại hiệu quả cao. Phần trình bày sau trình bày về một sồ phương pháp chuyển đổi từ mô hình liên kết thực thể sang biểu đồ lớp thiết kế trong UML. 3.1 Chuyển đổi một kiểu thực thể thành một lớp 3.1.1 Kiểu thực thể Kiểu thực thể A chuyển thành lớp đối tượng A tương ứng. Thuộc tính định danh a1 của thực thể chuyển thành thuộc tính khóa a1 của lớp, các thuộc tính {a2, ai, an}của thực thể chuyển thành các thuộc tính { a2, ai, an }tương ứng của lớp đối tượng. a2 a1 ai an A 3.1.2 Kiểu thực thể chứa thuộc tính đa trị Xét kiểu thực thể A có thuộc tính đa tri b. Muốn chuyển về biểu đồ lớp thiết kế phải qua 2 bước: Bước 1: Chuyển thuộc tính đa trị về thuộc tính đơn bằng quan hệ liên kết giữa 2 kiểu thực thể A và kiểu thực thể B, với b là thuộc tính riêng của B. A, B liên kết với nhau bởi quan hệ N:M. Bước 2: Chuyển đổi quan hệ liên kết giữa 2 kiểu thực thể về biểu đồ lớp. Kiểu thực thể A, B chuyển thành quan hệ kết hợp giữa 2 lớp đối tượng A, B tương ứng. A b A B N M b Liên kết a a VD: Kiểu thực thể NHAN VIEN có thuộc tính đa trị là ngoai ngu Bước 1: Kiểu thực thể NHAN VIEN chuyển thành quan hệ giữa 2 kiểu thực thể NHAN VIEN và NGOAI NGU. Ngoai ngu Ngay sinh Dia chi SINH VIEN Ho ten Gioi tinh Masv Lop EER Thuộc tính đa trị Lop EER Quan hệ N-M giữa hai kiểu thực thể Masv Ngay sinh Ho ten NGOAI NGU hoc M N SINH VIEN Dia chi Ngoai ngu Gioi tinh Bước 2: Kiểu thực thể SINH VIEN, NGOAI NGU trở thành lớp SINH VIEN, NGOAI NGU tương ứng có quan hệ kết hợp với nhau.N B A a Liên kết b M 3.2 Chuyển đổi các kiểu liên kết 3.2.1 Liên kết giữa hai kiểu thực thể A N M liên kết B a b Kiểu thực thể A liên kết với kiểu thực thể B chuyển thành quan hệ kết hớp giữa hai lớp. VD: Xét kiểu thực thể NHAN VIEN liên kết 1: N với kiểu thực thể PHONG BAN. Ngay sinh Manv Dia chi Gioi tinh Mapb lam viec Ten PB PHONG BAN (1,N) NHAN VIEN (0,1) Ho ten Dia diem 3.2.2 Kiểu liên kết có thuộc tính riêng Xét kiểu thực thể A liên kết với kiểu thực thể B có thuộc tính c sinh ra bởi kiểu liên kết. Chuyển đổi về biểu đồ lớp gổm 2 bước: Bước 1: Chuyển từ quan hệ bậc 2 về mối quan hệ bậc 3 giữa ba kiểu thực thể, thuộc tính c trở thành thuộc tính riêng của kiểu thực thể C. Bước 2: Chuyển từ mô hình liên kết thực thể về biểu đồ lớp. Lớp A quan hệ kết hợp với lớp B sinh ra lớp kết hợp C. A N M c liên kết B A N M B C a a b b c liên kết Xét ví dụ: Khi Nhân viên làm việc trong Dự án ghi lại số giờ và ngày làm việc. Thuộc tính riêng của kiểu liên kết giữa 2 kiểu thực thể NHAN VIEN và DU AN là { So gio, Ngay lv}. Ngay sinh Manv Dia chi Gioi tinh Ten DA Dia diem So gio Ngay lv N M Mada Ho ten DU AN lam viec NHAN VIEN Manv Dia chi Gioi tinh N N Ho ten Ten DA Dia diem N DU AN NHAN VIEN So gio Mada lam viec Ngay lv Lam viec Ngay sinh 3.2.2 Liên kết có kiểu thực thể yếu Xét kiểu thực thể A liên kết với kiểu thực thể yếu B, khi chuyển sang biểu đồ lớp thì chuyển thành quan hệ kết tập giữa hai lớp A và B. Lớp B trở thành lớp bộ phận quan hệ kết tập với lớp tổng thể A. a (1,N) (0,1) b B liên kết A Ví dụ: Kiểu thực thể NHAN VIEN có quan hệ phụ thuộc với lớp PHU THUOC (1,1) (1,N) Manv NHAN VIEN Ho ten Ten Dia chi Quan he Ngay sinh Gioi tinh PHU THUOC Gioi tinh Ngay sinh phu thuoc 3.2.3 Kiểu thực thể có thuộc tính không xác định Kiểu thực thể B có thuộc tính không xác định, khi chuyển về biểu đồ lớp thiết kế, thuộc tính không xác định chuyển thành phương thức của kiểu thực thể tương ứng. Thuộc tính không xác định là thuộc tính không có giá trị cụ thể [ NULL ] hoặc có giá trị không xác định. a b1 M N lk A b B VD: Một Nhân viên làm việc trong Phòng ban, kiểu thực thể PHONG BAN có thuộc tính không xác định là Lương trung bình ( Luong TB). (0,N)N (1,1) NHAN VIEN PHONG BAN Lam viec Luong Luong TB Ten PB MaPB 3.2.4 Kiểu liên kết cấp 1 Kiểu thực thể A có liên kết cấp một với chính nó, khi chuyển sang mô hình lớp chuyển thành quan hệ đệ qui giữa một đối tượng của lớp với chính các đối tượng trong lớp đó. lk a1 an (0,1) (1,n) ai a2 A VD: Xét kiểu thực thể NHAN VIEN có quan hệ bậc một với chính nó (một Nhân viên có thể quản lý nhiều Nhân viên), khi chuyển sang biểu đồ lớp thiết kế chuyển thành quan hệ đệ qui giữa các đối tượng trong lớp Nhân viên. (1,1) (1,N) quản lý Gioi tinh Dia chi NHAN VIEN SSn Ngay sinh Ten Luong 3.2.5 Tổng quát hóa Tổng quát hóa chuyển thành quan hệ chuyên biệt hóa giữa các lớp. O B C D E A d VD: d SV DA TN Trinh do Ten Ma O NHAN VIEN SINH VIEN SV CHUA TN Chuyen nganh Lop Luong NGUOI 3.2.6 Chuyên biệt hóa Chuyên biệt hóa chuyển thành quan hệ tổng quát hóa giữa các lớp. d A C B VD: Chuyên biệt hóa NV_HD và NV_BC của kiểu thực thể NHAN VIEN. NHAN VIEN NV_HD NV_BC d Ngay sinh Ho ten Hesl Luong Dia chi Gioi tinh Manv CHƯƠNG 4 ỨNG DỤNG 4.1 Chuyển đổi từ biểu đồ lớp thiết kế sang quan hệ 4.1.1 Biểu đồ lớp thiết kế 4.1.2 Mô hình liên kết thực thể ER SV CHUA TN NGUOI Man Ngay sinh sinhen Ho ten Gioi tinh Dia chi O SINH VIEN Luong Cap hoc Chuyen d SV TN Trinh do Lop NC_SINH CAN BO THU KI Quan ly So gio Ten PB Dia diem Mada Ten DA Ten TRO LY NC TRO LY GD d Khoa hoc Du an Bac Chuc vu Gioi tinh Ngay sinh Quan he Ngay bd (1,1) PHU THUOC (0,N) (1,N) (1,1) (4,N) lam viec cho Dia diem PHONG BAN (1,1) (1,N) Tham gia (0,N) Kiem soat (1,1) (0,1) NHAN VIEN Nam Phu thuoc (0,1) (1,N) d Quan ly Chuyen nganh Thoi gian (1,1) (1,N) HOC SINH Trinh do thuoc MaPB DU AN 4.1.3 Mô hình quan hệ KẾT LUẬN 1. Kết quả đạt được của đề tài Với yêu cầu của đề tài là: “ Chuyển đổi mô hình lớp trong UML sang quan hệ và ứng dụng”, đến thời điểm hiện tại em đã hoàn thành được những nội dung sau: Nghiên cứu về biểu đồ lớp trong UML, về mô hình liên kết thực thể mở rộng EER. Nghiên cứu thuật toán chuyển đổi từ biểu đồ lớp về mô hình liên kết thực thể mở rộng EER và từ mô hình EER sang quan hệ. Nghiên cứu thuật toán chuyển đổi từ mô hình EER sang biểu đồ lớp thiết kế. Ứng dụng vào bài toán cụ thể. 2. Hướng phát triển của đề tài Tuy đã cố gắng, nhưng do trình độ, thời gian còn hạn chế nên kết quả đạt được còn khá khiêm tốn. Trong thời gian tới, nếu có điều kiện, em sẽ cố gắng phát triển đề tài với nội dung sau: Xây dựng hoàn chỉnh một bài toán cụ thể, chuyển đổi thành công từ biểu đồ lớp sang quan hệ để lưu trữ CSDL và viết các thủ tục cài đặt chương trình. LỜI CẢM ƠN Để hoàn thành đợt tốt nghiệp này em xin gửi lời cảm ơn đến hội đồng quản trị của nhà trường đã tạo điều kiện về cơ sở vật chất, trang thiết bị giúp cho việc học tập và nghiên cứu của em trong suốt thời gian học tại trường. Em xin gửi lời cảm ơn chân thành tới các thầy, cô giáo trong tổ Bộ môn tin học của trường đại học dân lập Hải Phòng, những người đã tận tình giảng dạy. Đặc biệt em xin gửi lời cảm ơn chân thành của mình tới thầy giáo TS.Vũ Anh Hùng là người đã hướng dẫn tận tình cũng như tạo mọi điều kiện thuận lợi về tài liệu và kiến thức liên quan giúp em hoàn thành đợt làm tốt nghiệp này. Em xin chân thành cảm ơn ! Hải Phòng, 8/2007 Sinh viên Nguyễn Thu Thủy TÀI LIỆU THAM KHẢO [1] ELMASRI, Fundamentals of Database Systems, Third Edition [2] Nguyễn Văn Vỵ (2002), Phân tích thiết kế các hệ thống thông tin hiện đại, hướng cấu trúc và hướng đối tượng, NXB Thống kê (2002), Hà Nội.

Các file đính kèm theo tài liệu này:

  • doctomtatmoi.doc
  • pptpp_thuy.ppt