6t) Viết đặc tả use case – mô hình hóa bằng Activity
− Giúp sinh viên hiểu được vai trò của đặc tả use case
− Biết cách viết đặc tả use case
− Vận dụng sơ đồ activity để mô hình hóa đặc tả use case
1 Nội dung của đặc tả use case:
− Tên use case: là tên của use case trong sơ đồ use case
− Mô tả sơ lược: Mộ tả sơ lược chức năng của use case
− Actor chính: là actor kết hợp với use case trong sơ đồ use case
− Actor phụ: là actor hỗ trợ để thực hiện use case
Tiền điều kiện (Pre-condition) là những điều kiện tiên quyết cần thiết cho một use case, đảm bảo rằng trạng thái của hệ thống phải được đáp ứng trước khi bắt đầu thực hiện use case đó Lưu ý rằng các điều kiện tiên quyết này sẽ không được kiểm tra trong use case đang được mô tả.
Hậu điều kiện (Post-condition) là danh sách các trạng thái của hệ thống có thể xảy ra sau khi use case hoàn tất Hậu điều kiện được chia thành hai loại: Đảm bảo tối thiểu và Bảo đảm thành công.
Luồng sự kiện chính là quá trình thực hiện use case, thể hiện sự tương tác giữa actor và hệ thống từ đầu đến cuối Mỗi bước trong luồng được đánh số thứ tự, bắt đầu bằng hành động của actor, tiếp theo là phản hồi từ hệ thống, và sau đó actor thực hiện bước tiếp theo.
Luồng sự kiện thay thế là một phần quan trọng trong quy trình, diễn ra khi người tham gia (actor) phải lựa chọn một nhánh khác tại một bước cụ thể trong luồng sự kiện chính Sự lựa chọn này có thể dẫn đến việc thực hiện các bước khác cho đến khi hoàn tất hoặc quay lại một bước trước đó trong luồng sự kiện chính Mỗi luồng sự kiện thay thế được đánh số theo thứ tự của bước mà tại đó xảy ra sự rẽ nhánh.
− Luồng sự kiện ngoại lệ (exception flow): một cách xử lý cho một trường hợp ngoại lệ.
2 Các ký hiệu trong sơ đồ activity
Dựa vào case study 1 về việc xây dựng hệ thống đăng ký học phần trực tuyến, các use case quan trọng bao gồm: đăng nhập, tạo tài khoản, xem điểm và thay đổi lớp học phần Mỗi use case này cần được đặc tả chi tiết, trong đó, use case "đăng nhập" cho phép người dùng truy cập hệ thống bằng thông tin tài khoản; "tạo tài khoản" giúp người dùng mới đăng ký và thiết lập thông tin cá nhân; "xem điểm" cho phép sinh viên theo dõi kết quả học tập của mình; và "thay đổi lớp học phần" cho phép sinh viên điều chỉnh lựa chọn lớp học Để mô hình hóa các use case này, sơ đồ activity sẽ được sử dụng để minh họa quy trình và các bước thực hiện của từng chức năng trong hệ thống.
Đặc tả use case “Đăng ký học phần”
− Tên use case: Đăng ký học phần
− Mô tả sơ lược: chức năng Đăng ký học phần giúp sinh viên có thể đăng ký học phần trực tuyến.
− Tiền điều kiện (Pre-condition): Đăng nhập thành công.
− Hậu điều kiện (Post-condition): nếu đăng ký thành công thì sỉ số lớp được cập nhật và sinh viê sẽ có lịch học.
− Luồng sự kiện chính (main flow):
1 Sinh viên chọn chức năng Đăng ký học phần
2 Hệ thống hiển thị trang đăng ký học phần
3 Sinh viên chọn học kỳ hiện tại 4 Hệ thống hiễn thị danh sách học phần trong học kỳ đó
5 Sinh viên chọn học phần muốn đăng ký
6 Hệ thống kiểm tra học phần tiên quyết
7 Hệ thống hiển thị danh sách lớp học phần
8 Sinh viên chọn 1 lớp học phần 9 Hệ thống kiểm tra sỉ số lớp
10.Hệ thống thông báo đăng ký thành công.
− Luồng sự kiện thay thế (alternate flow):
6.1.Hệ thống hiển thị thông báo môn tiên quyết không thỏa
6.2.Sinh viên xác nhận 6.3.Hệ thống quay lại bước 4
9.1 Hệ thống hiển thị thông báo lớp đầy
9.2 Sinh viên xác nhận 9.3 Hệ thống quay lại bước 8
− Luồng sự kiện ngoại lệ (exception flow):
9.1.1 Hệ thống kiểm tra nếu là sinh viên năm cuối.
9.1.2 Hệ thống hiển thị thông báo đăng ký thành công.
9.1.3 Sinh viên xác nhận và kết thúc
Sơ đồ activity biểu diễn đặc tả use case “Đăng ký học phần”
Dựa vào case study 2 về việc “Xây dựng website đặt tour du lịch trực tuyến”, sinh viên cần viết đặc tả use case cho hai hoạt động chính Đầu tiên, đối với use case “Đặt tour trực tuyến”, sinh viên sẽ mô tả quy trình đặt tour từ khi người dùng chọn tour cho đến khi hoàn tất thanh toán, đồng thời vẽ sơ đồ activity để biểu diễn các bước trong quy trình này Thứ hai, đối với use case “Tìm kiếm tour”, sinh viên sẽ trình bày cách người dùng tìm kiếm các tour phù hợp theo tiêu chí như địa điểm, thời gian và giá cả, kèm theo sơ đồ activity để minh họa quy trình tìm kiếm.
Trong case study 3 về việc xây dựng hệ thống quản lý thư viện cho một trường đại học, sinh viên cần thực hiện việc viết đặc tả use case cho hai chức năng chính Đầu tiên, đối với chức năng “Đăng ký mượn sách”, sinh viên cần mô tả các bước và quy trình liên quan, đồng thời vẽ sơ đồ activity để minh họa cho quá trình này Thứ hai, đối với chức năng “Quản lý việc mượn sách” của actor thủ thư, sinh viên cũng cần trình bày chi tiết các hoạt động và quy trình, kèm theo sơ đồ activity tương ứng để thể hiện rõ ràng cách thức quản lý mượn sách trong hệ thống.
6t) Phân tích cấu trúc hệ thống - Mô hình hóa bằng Domain
− Xác định các lớp khái niệm dựa vào mô tả của hệ thống
− Xác định thuộc tính của các lớp đã xác định ở trên dựa vào mô tả của hệ thống
− Xác định mối quan hệ, lượng số, vai trò của mối quan hệ giữa các lớp
Lớp khái niệm bao gồm những ý tưởng, sự vật hoặc đối tượng nằm trong một hệ thống, có thể là các đối tượng doanh nghiệp, đối tượng trong thế giới thực hoặc các sự kiện diễn ra.
2 Cách tìm lớp khái niệm: a Dựa vào từ điển dữ liệu
Xác định các danh từ hoặc cụm danh từ :
− Nếu cụm danh từ lưu thông tin trạng thái hoặc nó có nhiều hành vi , thì đó là một lớp.
− Nếu chỉ là một số hoặc một chuỗi , thì đó có thể là một thuộc tính
Trong một số trường hợp, khái niệm "Lớp" có thể được hiểu khác nhau tùy vào ngữ cảnh; trong khi đó, trong một ngữ cảnh khác, nó có thể được xem là thuộc tính Do đó, việc sử dụng danh mục lớp khái niệm là rất cần thiết để làm rõ ý nghĩa trong từng trường hợp cụ thể.
3 Tìm mối quan hệ giữa các lớp khái niệm
Trong hệ thống, tất cả các đối tượng đều có mối liên hệ với nhau, có thể là trực tiếp hoặc gián tiếp, với mức độ mạnh hoặc yếu Những mối quan hệ này phản ánh thông tin về hành vi phụ thuộc lẫn nhau giữa các đối tượng Các mối quan hệ giữa các lớp được phân loại thành bốn loại: Association và Aggregation.
Trong lập trình hướng đối tượng, mối quan hệ Composition và Reflexive thể hiện sự liên kết giữa các lớp Mối quan hệ Association được thiết lập khi hai lớp có liên quan với nhau theo bất kỳ cách nào, trong đó các đối tượng không phụ thuộc lẫn nhau Điều này có nghĩa là sự tồn tại của một lớp không ảnh hưởng đến sự tồn tại của lớp khác, tạo ra tính độc lập cho các đối tượng trong hệ thống.
Ví dụ: Lớp Sách quan hệ với lớp độc giả , thể hiện hành vi Độc giả đọc
Lớp chứa (Whole) được hình thành từ việc kết hợp các lớp thành phần khác (part), và thời gian sống của các lớp thành phần này không chịu ảnh hưởng nhiều từ vòng đời của lớp chứa.
Mối quan hệ composition trong lập trình tương tự như aggregation, nhưng nhấn mạnh sự phụ thuộc của lớp thành phần vào vòng đời của lớp chứa Nếu lớp chứa bị hủy, các lớp thành phần cũng sẽ bị hủy theo, điều này cho thấy sự liên kết chặt chẽ giữa chúng.
Trong lập trình, mối quan hệ giữa lớp Sách và Chương mục thể hiện rằng nếu lớp Sách bị hủy, thì lớp Chương mục cũng sẽ bị hủy theo Ngoài ra, khái niệm reflexive chỉ ra rằng một lớp có thể đảm nhận nhiều chức năng hoặc trách nhiệm liên quan đến chính lớp đó.
4 Xác định vai trò (Roles) của mối quan hệ
Vai trò trong mối quan hệ thể hiện ý nghĩa và số lượng các đối tượng của các lớp tham gia Vai trò bao gồm nhiều thành phần quan trọng.
Lượng số tham gia (multiplicity) là số lượng đối tượng thuộc một lớp tham gia vào mối quan hệ Để xác định lượng số, cần dựa vào các quy tắc nghiệp vụ và các ràng buộc liên quan.
Tên của của quan hệ: chỉ ý nghĩa của mối quan hệ
Điều hướng (navigability): để chỉ lớp này có thể thấy lớp kia
Dựa trên case study 1 về “Xây dựng hệ thống đăng ký học phần trực tuyến”, chúng ta cần xác định các lớp khái niệm như Sinh viên, Môn học, Giảng viên và Đăng ký Mỗi lớp sẽ có những thuộc tính riêng, ví dụ, lớp Sinh viên có thể có các thuộc tính như Mã sinh viên, Tên, và Ngày sinh Các mối quan hệ giữa các lớp bao gồm Sinh viên đăng ký Môn học và Giảng viên giảng dạy Môn học; trong đó, mối quan hệ Sinh viên-Môn học có thể là nhiều-nhiều (nhiều sinh viên có thể đăng ký nhiều môn học) và mối quan hệ Giảng viên-Môn học là một-nhiều (mỗi môn học có thể được giảng dạy bởi một giảng viên) Cuối cùng, sơ đồ Domain sẽ được vẽ để thể hiện các lớp, thuộc tính, và mối quan hệ giữa chúng một cách trực quan.
Đối với case study 2, "Xây dựng website đặt tour du lịch trực tuyến", cần tập trung vào việc phát triển một nền tảng dễ sử dụng, tích hợp các tính năng như tìm kiếm tour, đặt chỗ trực tuyến và thanh toán an toàn Trong khi đó, case study 3, "Xây dựng hệ thống quản lý thư viện của một trường đại học", yêu cầu thiết kế một hệ thống quản lý hiệu quả, cho phép sinh viên tra cứu tài liệu, mượn và trả sách một cách thuận tiện Cả hai dự án đều nhằm nâng cao trải nghiệm người dùng và tối ưu hóa quy trình hoạt động.
1 Xác định các lớp khái niệm, tìm các thuộc tính cho mỗi lớp.
Lớp khái niệm Thuộc tính
Học kỳ Mã học kỳ
Sinh viên Mã sinh viên
2 Xác định loại mối quan hệ giữa các lớp, ứng với mỗi quan hệ, xác định lượng số
Quan hệ Loại quan hệ Giải thích
Học kỳ - Học phần Association
Một học kỳ bao gồm nhiều học phần, mỗi học phần thuộc
Học phần - lớp học phần Association
Một học phần gồm nhiều lớp học phần, một lớp học phần thuộc một học phần.
Lớp học phần – Giảng viên Association
Một lớp học phần do một giảng viên phụ trách, một Giảng viên phụ trách nhiều lớp học phần
Sinh viên – lớp học phần Aggregation
Sinh viên có thể đăng ký nhiều lớp học phần, với mỗi lớp có số lượng từ 10 đến 30 sinh viên Mỗi sinh viên đều là một thành viên trong lớp học.
Lớp kết hợp Sinh viên –
Lớp kết hợp giữa 2 lớp Sinh viên – lớp học phần có quan hệ * và *
6t) Thiết kế hệ thống - Sử dụng sơ đồ Sequence – Hiệu chỉnh sơ đồ
- Xác định các đối tượng, các tương tác giữa các đối tượng trong hệ thống để thực hiện chức năng của use case
- Vẽ sơ Sequence mức thiết kế sơ bộ (chưa theo kiến trúc phần mềm cụ thể)
- Phân bổ các phương thức vào các lớp liên quan đến chức năng của use case tương ứng
- Hiệu chỉnh (bổ sung lớp mới, thay đổi mối quan hệ) lại sơ đồ Domain để chuyển sơ đồ Domain thành sơ đồ Class
Sơ đồ sequence: biểu diện chi tiết quá trình tương tác của người dùng và hệ thống để thực hiện chức năng được biểu diễn bằng use case.
Các ký hiệu trong sơ đồ sequence và cách vẽ sơ đồ sequence.
Mũi tên biểu diễn thông điệp tương tác giữa các đối tượng, với nội dung của thông điệp được đặt trên mũi tên, cho thấy sự liên kết giữa người gửi và người nhận.
Fragment thể hiện một đoạn tương tác phức tạp giữa các đối tượng trong hệ thống, bao gồm các luồng thay thế, cấu trúc lựa chọn và vòng lặp Thuộc tính được sử dụng là message_name (arguments) với return_type.
1 Dựa vào case study 1: Xây dựng hệ thống đăng ký học phần trực tuyến a Phân tích Use case “Đăng ký học phần”:
Luồng sự kiện cơ bản
Sau khi sinh viên đăng nhập thành công vào hệ thống, họ sẽ chọn học kỳ và học phần Hệ thống sẽ kiểm tra các học phần tiên quyết và hiển thị danh sách lớp học phần Sau khi sinh viên chọn lớp học phần, hệ thống sẽ kiểm tra sỉ số Nếu tất cả điều kiện được thỏa mãn, sinh viên sẽ xác nhận và hoàn tất quá trình đăng ký Cuối cùng, hệ thống thông báo đăng ký thành công và in lịch học cho sinh viên.
Hệ thống gửi thông tin thanh toán cho sinh viên đến hệ thống thanh toán để xử lý.
Luồng sự kiện thay thế
− Nếu học phần tiên quyết không thỏa thì hệ thống sẽ hiển thị thông báo và kết thúc quá trình đăng ký.
Khi lớp học phần đã đủ, hệ thống sẽ yêu cầu người dùng chọn lớp khác Để thiết kế sơ đồ Sequence cho Use case Đăng ký học phần, cần bổ sung các Class mới vào sơ đồ Domain liên quan đến chức năng này Ngoài ra, các phương thức cũng cần được phân bổ vào các Class tương ứng trong sơ đồ Domain Để thực hiện chức năng “Đăng ký học phần”, các lớp trong sơ đồ Domain phải bao gồm các phương thức cần thiết.
− Lớp Học phần có các phương thức: o getDSHocPhan(HocKy): trả về danh sách học phần theo học kỳ, với tham số là học kỳ được chọn.
− Lớp Ketqua có phương thức: o getKetquaHPtienquyet(MaSV): trả về kết quả của môn học tiên quyết của sinh viên đăng ký học phần, tham số là MaSV, MaHP
Lớp Lop_Hocphan bao gồm các phương thức quan trọng như getDS_LopHP(MaHP) để trả về danh sách lớp học phần của học phần đã chọn, getSiSo(MalopHP) để lấy sỉ số của lớp học phần, và AddNewSV(MaSV) để thêm sinh viên mới vào lớp học phần Ngoài ra, phương thức CapnhatSiSo(Malop) được sử dụng để cập nhật sỉ số lớp Cuối cùng, cần hoàn thiện sơ đồ lớp tương ứng với chức năng “Đăng ký học phần”.
Ngoài các lớp entity, để thực hiện chức năng “Đăng ký học phần” còn có các lớp boundary và control
Lớp GD_DangkyHP (lớp Boundary) bao gồm các phương thức quan trọng như showDSHP() để hiển thị danh sách học phần trong học kỳ đã chọn, showDSLopHP() để hiển thị danh sách lớp học phần của học phần được chọn, Display_Classfull() nhằm thông báo khi lớp đã đầy, và Message_DKthanhcong() để thông báo đăng ký thành công.
Lớp Ctrl_DKHP (lớp Control) bao gồm các phương thức quan trọng như: TimDSHP(Hocky) để tìm danh sách lớp học phần theo học kỳ đã chọn, checkHPtienquyet(MaSV, MaHP) nhằm kiểm tra xem sinh viên có đáp ứng được học phần tiên quyết của học phần đã chọn hay không, và checkSiSo(MalopHP) để xác định tình trạng sỉ số lớp học phần, xem có còn chỗ đăng ký hay lớp đã đầy.
2 Dựa vào case study 1, Sinh viên thực hiện phân tích chức năng “xem điểm” của actor sinh viên, bao gồm các bước tương tự câu 1.
3 Dựa vào case study 2, sinh viên phân tích chức năng “Đặt tour du lịch”.
4 Dựa vào case study 3, sinh viên hãy phân tích chức năng “Đăng ký mượn sách”
3t) Thiết kế các thành phần của hệ thống
- Hiểu các khái niệm Subsystem và Package
- Cách xác định Subsystem và Package của hệ thống
Package là một tập hợp các lớp hoặc phần tử mô hình có mối quan hệ logic, xác định không gian tên cho nội dung của nó.
Package diagram thể hiện cấu trúc và tổ chức của hệ thống trong các dự án quy mô trung bình và lớn Nó được sử dụng để mô tả mối quan hệ giữa các thành phần của hệ thống, giúp quản lý và phân tích hiệu quả hơn.
Tạo tổng quan về một tập hợp lớn các phần tử mô hình
Nhóm các lớp và các phần tử mô hình có quan hệ logic.
Tách không gian tên của các thành phần trong hệ thống.
Quan hệ giữa các package là quan hệ Dependency, gồm 2 loại:
: nội dung public của target package được thêm vào không gian tên của source package
: nội dung public của target package có sẵn không gian tên của source package
Tiêu chí để phân rã một hệ thống thành các package
Dựa vào Chủ sở hữu: Actor thực hiện chức năng trên sơ đồ
Dựa vào chức năng: mỗi vấn đề có phân vùng rõ ràng
Các lớp có mối liên kết mạnh được nhóm vào một package
Dựa vào mẫu kiến trúc: ví dụ kiến trúc MVC
Giảm sự phụ thuộc giữa các phần tử trong các package khác nhau.
Subsystem: Một hệ thống là một tập hợp các phần tử có tổ chức có thể được phân tách đệ quy thành các hệ thống con nhỏ hơn (subsystem)
Subsystem GUI chịu trách nhiệm cung cấp giao diện người dùng giúp người dùng có thể tương tác với hệ thống.
Subsystem Business processing: xử lý nghiệp vụ chịu trách nhiệm thực hiện chức năng nghiệp vụ
Subsystem Data: thực hiện chức năng lưu trữ dữ liệu
Các khía cạnh bên trong và bên ngoài Subsystem
Một subsystem bao gồm hai khía cạnh quan trọng: khía cạnh bên ngoài, thể hiện các dịch vụ mà subsystem cung cấp, và khía cạnh bên trong, phản ánh cách thức hiện thực hóa của subsystem Sự kết nối giữa hai khía cạnh này tạo thành một ánh xạ rõ ràng, giúp hiểu rõ hơn về chức năng và cấu trúc của subsystem.
1 Dựa vào case study 1: xây dựng hệ thống đăng ký học phần trực tuyến a Tổ chức các Class trong hệ thống thành các Package, giải thích
Phân rã hệ thống theo tiêu chí nhóm các lớp có tính kết dính cao thành một package, cho phép tổ chức hệ thống đăng ký học phần thành các package hiệu quả.
Package Người dùng: chứa các lớp liên quan đến người dùng hệ thống o Sinh viên o Giảng viên o Nhân viên
Package Học vụ: chứa các lớp liên quan đến học phần trong các học kỳ o Học kỳ o Học phần o Lớp học phần o Lịch học
Gói giao diện người dùng bao gồm tất cả các giao diện của hệ thống, bao gồm: form giao diện chính, form giao diện đăng ký học phần, form quản lý học phần, form quản lý thông tin giảng viên và form quản lý thông tin sinh viên Đồng thời, cần vẽ sơ đồ gói của hệ thống để thể hiện cấu trúc và mối quan hệ giữa các thành phần này.
Phân rã hệ thống theo kiến trúc thì Hệ thống đăng ký học phần có thể được tổ chức thành các package sau:
Package Giao diện người dùng: gồm tất cả các giao diện của hệ thống
Package Xử lý nghiệp vụ: chứa các lớp hiện thực các chức năng xử lý nghiệp vụ
Package Data: chứa các lớp hiện thực việc lưu trữ dữ liệu c Phân chia hệ thống đã xây dựng thành các Subsystem, giải thích
Mỗi Subsystem cung cấp dịch vụ cho các Subsystem khác Hệ thống đăng ký học phần có thể được tổ chức thành các Subsystem sau
Subsystem Xử lý nghiệp vụ: hiện thực các chức năng xử lý nghiệp vụ
Subsystem Data: chịu trách nhiệm thực hiện chức năng lưu trữ dữ liệu d Vẽ sơ đồ subsystem của hệ thống Giải thích
Subsystem Xử lý nghiệp vụ cung cấp interface được sử dụng bởi
Package Giao diện người dùng.
Subsystem Data: Cung cấp interface được sử dụng bởi subsystem Xử lý nghiệp vụ.
Dựa vào Case study 2 về việc “Xây dựng website đặt tour du lịch” và sơ đồ lớp từ module 3, hãy xác định các Package cần thiết cho hệ thống và vẽ sơ đồ Package tương ứng Việc này sẽ giúp tổ chức cấu trúc của hệ thống một cách rõ ràng và hiệu quả, đảm bảo tính khả thi và dễ dàng trong việc phát triển và bảo trì website.
Dựa vào Case study 2 về “Xây dựng hệ thống quản lý thư viện” và sơ đồ lớp trong module 3, cần thiết lập các Package cho hệ thống Việc này bao gồm việc xác định các thành phần chính của hệ thống và tổ chức chúng thành các Package hợp lý Sau đó, vẽ sơ đồ Package để thể hiện mối quan hệ giữa các Package, giúp tối ưu hóa cấu trúc và quản lý hệ thống một cách hiệu quả.
3t) Thiết kế hệ thống theo kiến trúc
- Hiểu về kiến trúc phần mềm được chọn để áp dụng cho hệ thống (3 tầng)
- Xác định các thành phần của hệ thống ứng với kiến trúc đã chọn
- Vẽ lại các sơ đồ Sequence ở mức thiết kế cho từng Use case
- Thực hiện tinh chỉnh sơ đồ Class của hệ thống
Kiến trúc 3 tầng chia ứng dụng thành 3 độc lập:
Data layer (which manages data access).
Dựa vào case study 1: xây dựng hệ thống đăng ký học phần trực tuyến
Module 1 Đối với Use case “Đăng Ký học phần”, vẽ sơ đồ Sequence ở mức thiết kế chi tiết theo kiến trúc đã chọn.
Module 2 Sinh viên tiếp tục thực hiện tương tự như câu 1 cho các Use case
Module 3 Thực hiện tinh chỉnh sơ đồ Class của hệ thống
3t)Thiết kế cơ sở dữ liệu
- Chuyển sơ đồ Class sang sơ đồ cơ sở dữ liệu quan hệ
Ánh xạ lớp thực thể vào lược đồ quan hệ là một quá trình quan trọng trong cơ sở dữ liệu Mỗi lớp thực thể sẽ được ánh xạ thành một quan hệ có cùng tên, trong đó mỗi dòng trong bảng biểu diễn một đối tượng duy nhất của lớp thực thể Đồng thời, mỗi thuộc tính của thực thể sẽ tương ứng với một thuộc tính trong quan hệ Để đảm bảo tính toàn vẹn dữ liệu, cần thêm một thuộc tính ID kiểu int làm khóa chính cho quan hệ.
2 Ánh xạ các liên kết 1-1
Thêm một khóa ngoại vào một trong các quan hệ giúp liên kết dữ liệu giữa các bảng Khóa ngoại này sẽ tham chiếu đến khóa chính của một quan hệ khác, tạo ra mối quan hệ chặt chẽ giữa chúng Ngoài ra, có thể gộp hai bảng thành một để tối ưu hóa cấu trúc dữ liệu và nâng cao hiệu suất truy vấn.
3 Ánh xạ các kết 1-n: thêm một khóa ngoại vào bảng “nhiều”
4 Ánh xạ các liên kết n-m: Lớp kết hợp được chuyển thành quan hệ kết hợp, chứa 2 khóa chính của 2 quan hệ tham gia.
1 Case study 1: Dựa vào sơ đồ Class đã thiết kế ở module 5 chuyển sang sơ đồ cơ sở dữ liệu quan hệ.
Chuyển các lớp thành các quan hệ:
Các lớp như Học phần, Lớp học phần, Giảng viên, Sinh viên và Học kỳ sẽ được chuyển đổi thành các quan hệ tương ứng với tên gọi giống nhau Các thuộc tính của lớp sẽ trở thành thuộc tính của quan hệ, trong đó cần chọn một thuộc tính có giá trị duy nhất để làm khóa chính.
Lớp kết hợp Kết quả trở thành quan hệ Kết quả, trong đó Mã sinh viên và Mã học phần là thuộc tính khóa chính của hai quan hệ tham gia Cả hai thuộc tính này cũng trở thành khóa ngoại của quan hệ Kết quả, đồng thời giữ vai trò là khóa chính trong quan hệ này.
Lớp DSSV_LopHP được chuyển đổi thành quan hệ DSSV_LopHP, trong đó Mã sinh viên và Mã lớp học phần đóng vai trò là hai thuộc tính khóa ngoại Hai thuộc tính này cùng nhau tạo thành khóa chính cho quan hệ DSSV_LopHP.
− Học phần - Học kỳ: Quan hệ Học phần chứa khóa ngoại Mã học kỳ
− Học phần - Lớp học phần: Lớp học phần chứa khóa ngoại Mã học phần