1 / 83

Chương 4: ORM và UML

Chương 4: ORM và UML. Giới thiệu UML. Các phương pháp ngữ nghĩa để mô hình hóa hệ thống thông tin xuất hiện ngày càng nhiều Hình ảnh "Yama" (Yet Another Modeling Approach) theo nghĩa tiếng Nhật là "Mountain". Giới thiệu UML.

shaina
Download Presentation

Chương 4: ORM và UML

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Chương 4: ORM và UML Bai giang BM HTTT - Khoa CNTT - HUI

  2. Giới thiệu UML Bai giang BM HTTT - Khoa CNTT - HUI • Các phương pháp ngữ nghĩa để mô hình hóa hệ thống thông tin xuất hiện ngày càng nhiều • Hình ảnh "Yama" (Yet Another Modeling Approach) theo nghĩa tiếng Nhật là "Mountain".

  3. Giới thiệu UML Bai giang BM HTTT - Khoa CNTT - HUI Gần đây, UML được xem như 1 phương pháp thích hợp để mô hình hóa CTUD.  Đã có đề xuất "the modeling wars are over--UML has won".

  4. Vai trò của UML Bai giang BM HTTT - Khoa CNTT - HUI UML được ứng dụng chủ yếu trong thiết kế mã chương trình hướng đối tượng. Hiện nay UML cũng được dùng trong thiết kế database nhưng chưa thay thế được phương pháp ER. Tuy nhiên trong tương lai khi phát triển HT theo hướng đối tượng thì UML là 1 ngôn ngữ quan trọng để thiết kế database.

  5. So sánh UML và ORM Bai giang BM HTTT - Khoa CNTT - HUI Tương tự ER, UML sử dụng attributes, tuy số lượng attribute có thể quá lớn nhưng dùng attribute thì dễ mô hình được mối quan hệ giữa các thực thể, ít bị ảnh hưởng khi thực thể thay đổi. Cách tốt nhất để phát triển mô hình dữ liệu bằng UML là “first do an ORM model and then map it to UML”.

  6. So sánh UML và ORM Bai giang BM HTTT - Khoa CNTT - HUI • No language is perfect, ORM cũng không ngoại lệ. • UML cung cấp 1 loạt các ký hiệu để mô hình hóa cả dữ liệu và qui trình (process) • ORM hiện chỉ tập trung vào việc mô hình hóa dữ liệu.

  7. Lược đồ class của UML và ORM Bai giang BM HTTT - Khoa CNTT - HUI Ví dụ của 1 lược đố class UML

  8. Lược đồ class của UML và lược đồ ORM Bai giang BM HTTT - Khoa CNTT - HUI • Lược đồ class mô tả các lớp Employee và Car và mối kết hợp giữa chúng. • Tương ứng với quan hệ ORM Employee drives Car

  9. Lược đồ class của UML và lược đồ ORM Bai giang BM HTTT - Khoa CNTT - HUI Role "driver" phía bên trái mối kết hợp làm rõ ngữ nghĩa Mũi tên ở bên phải mối kết hợp để chỉ rằng một điển hình của employee có thể truy xuất đến 1 điển hình car của nó. Mối kết hợp này chỉ liên quan đến việc thực thi và không chỉ ra ý niệm của mô hình nghiệp vụ.

  10. Lược đồ class của UML và lược đồ ORM Bai giang BM HTTT - Khoa CNTT - HUI Bằng cách bỏ qua chi tiết, lược đồ class có thể được dùng để phân tích ý niệm. Khi dùng theo cách này thì lược đồ class rất giống với mô hình ER. Nhưng có 1 sự khác biệt đáng kế nếu xét theo hướng OO Khác biệt gì??

  11. Lược đồ UML Bai giang BM HTTT - Khoa CNTT - HUI Không có sơ đồ xác định (identification schemas) trong class. Với lập trình OO, các đối tượng có thể được nhận biết thông qua địa chỉ bộ nhớ, vì vậy UML không cần đến sơ đồ này. Nhưng nếu dùng để phân tích ý niệm thì cần phải có sơ đồ tham chiếu hướng người dùng.

  12. Lược đồ UML Bai giang BM HTTT - Khoa CNTT - HUI • UML cho phép thêm 1 số thuộc tính với các ký hiệu không theo tiêu chuẩn để khai báo cách nhận biết và ràng buộc của class • “{P}” để chỉ tham chiếu hay dùng (preferred reference ) • "{ Un }" để chỉ tính duy nhất (n > 0), với n là số trường hợp có cùng nghĩa khi cùng ràng buộc U được áp dụng cho 1 tổ hợp các thuộc tính.

  13. Ví dụ lược đồ class Bai giang BM HTTT - Khoa CNTT - HUI Lược đồ class với các ký hiệu không theo tiêu chuẩn để chỉ khóa Primary key và ràng buộc duy nhất

  14. Lược đồ ORM Bai giang BM HTTT - Khoa CNTT - HUI • ORM chia object thành 2 loại: entities (non-lexical objects) và values (lexical objects) và bắt buộc mỗi entity phải được xác định bởi một sơ đồ tham chiếu (reference scheme ). ORM sử dụng "object", "entity", và "value" để chỉ "object instance", "entity instance“và "value instance“. • Các entities có thể được tham chiếu theo nhiều cách, và có thể thay đổi trạng thái (state) theo thời gian

  15. So sánh UML và ORM Bai giang BM HTTT - Khoa CNTT - HUI • UML chia các instances thành objects và data values. • Các UML objects tương ứng với các ORM entities. Các UML data values tương ứng với các ORM values, chúng đều là hằng số. • Các loại entity trong UML được gọi là classes và các loại value thì được gọi là data types. • "object" có nghĩa là 1 "object instance", chứ không phải là "object type". • Mối điển hình quan hệ (relationship instance) trong UML được gọi là 1 link, và loại quan hệ được gọi là một association.

  16. So sánh UML và ORM Bai giang BM HTTT - Khoa CNTT - HUI

  17. So sánh UML và ORM Bai giang BM HTTT - Khoa CNTT - HUI • Trong UML, mặc định các thuộc tính (attribute) là bắt buộc (mandatory) và có giá trị đơn. • Trong ORM, predicate 1 ngôi "smokes" là tùy chọn (optional). UML không hỗ trợ quan hệ 1 ngôi, mà chỉ dùng thuộc tính Boolean "isSmoker“. • Trong UML, domain của mỗi thuộc tính có thể được hiển thị ngay sau tên thuộc tính, ngăn cách bởi dấu : .

  18. So sánh UML và ORM Bai giang BM HTTT - Khoa CNTT - HUI • Attribute multiplicity constraint • Trong mô hình ORM, birth country, social security number, hay passport number đều là tùy chọn. Trong UML tùy chọn này được thể hiện thông qua việc thêm multiplicity [0..1] vào mỗi thuộc tính tương ứng. • Uniqueness constraints (UC): • Trong ORM, các UC dùng để chỉ mỗi employee number, social security number, và passport number chỉ tham chiếu duy nhất đến 1 employee mà thôi. • UML không có ký hiệu chuẩn để chỉ "attribute uniqueness constraints", vì vậy nó được bổ sung bởi ký hiệu do ta tự quy định lấy, chẳng hạn {P} và {Un }

  19. Thuộc tính trong UML và ORM Bai giang BM HTTT - Khoa CNTT - HUI UML cũng không có ký hiệu để chỉ ràng buộc loại trừ (inclusive-or constraint), ràng buộc này có thể diễn tả bằng note đính kèm, hay đặt ràng buộc vào {}.

  20. Thuộc tính trong UML và ORM Bai giang BM HTTT - Khoa CNTT - HUI • Loại quan hệ ORM Employee was born in Country được mô hình như thuộc tính birthcountry trong lược đồ class UML. • Nếu sau này khi cần lưu trữ lại phân bố của country thì cần phải đưa vào lớp Country và để làm rõ kết nối giữa birthcountry và Country có thể cần phải biến đổi thuộc tính birthcountry thành mối kết hợp giữa 2 class Employee và Country. • ORM tránh được sự bất ổn ngữ nghĩa này vì nó luôn sử dụng quan hệ thay vì dùng thuộc tính.

  21. Thuộc tính trong UML và ORM Bai giang BM HTTT - Khoa CNTT - HUI Có giải thuật để phát triển lược đồ UML và ER từ lược đồ ORM. Các giải thuật này gán các mức độ quan trọng khác nhau vào các loại đối tượng tùy thuộc vào role và các ràng buộc. Mức độ quan trọng này có thể thay đổi theo thời gian khi ta khám phá được nhiều hơn mô hình tổng thể và bản thân nghiệp vụ cũng bị thay đổi theo thời gian.

  22. Thuộc tính đa trị Bai giang BM HTTT - Khoa CNTT - HUI • Thuộc tính đa trị “sports“ trong UML được chỉ ra bằng ràng buộc "[0..*]" (một người có thể chơi nhiều môn thể thao khác nhau hoặc không chơi môn nào) • Trong sơ đồ ORM tương đương, loại quan hệ many:many được dùng thay cho thuộc tính đa trị sports.

  23. Ví dụ về thuộc tính đa trị • Class Flag dùngđể lưutrữ nickname và màucờ củacácquốcgia • Cácràngbuộc: • Mỗi flag có nhiềunhất 2 nickname • Mỗi Flag có ítnhất 1 màu • Một UC phụ kháccũngcầnxácđịnh là mỗi nickname thamchiếunhiềunhấtđếnmột flag. Bai giang BM HTTT - Khoa CNTT - HUI

  24. Ví dụ về thuộc tính đa trị Bai giang BM HTTT - Khoa CNTT - HUI • Không chỉ mỗi nicknames phải là duy nhất đối với mỗi flag mà mỗi phần tử trong mỗi tập hợp cũng phải duy nhất. Mối ràng buộc phức này được xác định trong UML dưới dạng 1 note đính kèm (attached note)

  25. Miền giá trị (domain) Bai giang BM HTTT - Khoa CNTT - HUI • Thuộc tính Nickname: miền giá trị là một loại dữ liệu nào đó, có thể là string • Thuộc tính countries hay colors: • Nếu không cần lưu trữ thêm thông tin , có thể chọn string như miền giá trị (domain) • Nếu muốn có thêm thông tin để dùng sau này, tốt hơn là nên dùng class Country và Color để xác định domain cho nó.

  26. Sơ đồ ORM tương ứng Bai giang BM HTTT - Khoa CNTT - HUI

  27. Attribute và association Bai giang BM HTTT - Khoa CNTT - HUI • UML cho phép ta mô hình 1 tính chất nào đó như một attribute hay một association. Để phân tích ý niệm thì dùng association thường có nhiều thuận lợi hơn so với attributes, đặc biệt là với thuộc tính đa trị. • Dễ mô hình hóa và tạo phân bổ cho association hơn. • Cho phép diễn tả các ràng buộc có dạng "role played by the attribute" ở dạng chuẩn hơn là phải dùng các mở rộng không đúng tiêu chuẩn.

  28. Attribute và association Bai giang BM HTTT - Khoa CNTT - HUI • Nếu dùng association Flag is of Country thì ràng buộc each country has at most one flag có thể đưa vào thông qua ràng buộc "0..1" đặt bên trái mối kết hợp này. • Dùng associations thì ổn định hơn attributes. Thay vì mô hình 1 tính chất thành 1 attribute, đầu tiên thay thế attribute này thành 1 association. Sau đó dù là UML hay ORM đều đễ dàng tạo ra đối tượng từ một association và đính kèm vào nó 1 số chi tiết mới.

  29. Attribute và association Bai giang BM HTTT - Khoa CNTT - HUI • Khảo sát association Employee plays Sport. Nếu cần lưu trữ lại skill level cho một lần chơi nào đó play, ta có thể đối tượng hóa association này thành Play, và đưa thêm vào 1 loại quan hệ: Play has SkillLevel. Trong mô hình UML việc này được thực hiện dễ dàng nếu play được mô hình như 1 association. • Trong ví dụ thì play được mô hình như attribute sports , thì cần thay thế thành 1 association tương đương trước khi thêm chi tiết mới skill level vào.

  30. Thuộc tính đa trị Bai giang BM HTTT - Khoa CNTT - HUI Khi truy vấn đến các thuộc tính đa trị thì sẽ phức tạp hơn thuộc tính đơn trị. Ví dụ: so sánh các truy vấn Q1,

  31. Thuộc tính đa trị Bai giang BM HTTT - Khoa CNTT - HUI Thuộc tính đa trị (multivalued attribute) nên tránh dùng trong mô hình phân tích. Tuy nhiên vẫn có thể sử dụng thuộc tính đa trị trong thực thi sau này.

  32. Association Bai giang BM HTTT - Khoa CNTT - HUI • UML dùng thuộc tính Boolean để chỉ mối quan hệ 1 chiều (unary relationship). • Với các quan hệ 2 chiều trở lên (association): • Thường được đặt tên bắt đầu bằng 1 ký tự chữ hoa. • Các associations 2 chiều được ký hiệu là đường thẳng nối giữa 2 class. • Association role được ký hiệu như đầu cuối của đường thẳng (line end) thay vì là các box.

  33. Association Bai giang BM HTTT - Khoa CNTT - HUI Trong UML, tên association là tùy chọn nhưng tên role là bắt buộc. Nếu không đặt tên role thì tên lớp cũng được xem là tên role. Nếu có 2 hay nhiều role cho cùng 1 class thì các role phải có các tên khác nhau để phân biệt. Trong ORM, các predicate thuận và ngược cần được chỉ rõ, hoặc chỉ cần chỉ rõ 1 trong 2 loại. Tên role là tùy chọn và được đặt trong ngoặc vuông.

  34. Ví dụ association 2 ngôi Bai giang BM HTTT - Khoa CNTT - HUI

  35. Các ràng buộc tương đương trong UML và ORM Bai giang BM HTTT - Khoa CNTT - HUI

  36. Các ràng buộc tương đương trong UML và ORM Bai giang BM HTTT - Khoa CNTT - HUI

  37. Ví dụ association 3 ngôi Bai giang BM HTTT - Khoa CNTT - HUI Association từ 3 ngôi trở lên được ký hiệu như 1 diamond và nối đến các class bằng các đường thẳng.

  38. Association 3 ngôi Bai giang BM HTTT - Khoa CNTT - HUI Thường không có ký hiệu chỉ hươńg đọc (reading direction indicator), nên các lược đồ class của UML không được dùng để giao tiếp trong dạng câu nói thông thường. Lược đồ class cũng không thuận tiện trong việc tạo phân bố cho các association nếu không đặt tên role cho các cột tương ứng trong bảng phân bố.

  39. Ràng buộc multiplicity của association Bai giang BM HTTT - Khoa CNTT - HUI • Tương tự như các ràng buộc trong thuộc tính

  40. Ràng buộc của association 3 ngôi Bai giang BM HTTT - Khoa CNTT - HUI Trong lược đồ UML, cả hai cặp Room-HourSlot và HourSlot-Activity đều là duy nhất. Trong ORM là các UC tương ứng.

  41. Ràng buộc của association Bai giang BM HTTT - Khoa CNTT - HUI • Các ký hiệu ràng buộc multiplicity của UML thì phong phú hơn của ER. Tuy nhiên có nhiều trường hợp ký hiệu multiplicity của UML không thể diễn đạt được ràng buộc của role bắt buộc hay ràng buộc thường xuyên tối thiểu lớn hơn 1 (minimum frequency constraint above 1). • Các ký hiệu ràng buộc của ORM có thể diễn đạt được bất kỳ ràng buộc nào trên các role hay các predicate nhiều ngôi. Vì vậy ORM phong phú hơn trong việc diễn đạt ràng buộc.

  42. Ví dụ ràng buộc bắt buộc Bai giang BM HTTT - Khoa CNTT - HUI • Vì UML cố đưa cả hai loại ràng buộc bắt buộc và duy nhất vào cùng 1 ký hiệu nên không thể diễn đạt được cho từng hoạt động book phòng  buộc phải đưa thêm 1 note vào lược đồ. • Lược đồ ORM tương ứng có thể diễn đạt được ràng buộc role bắt buộc một cách dễ dàng.

  43. Ràng buộc trong UML và ORM Bai giang BM HTTT - Khoa CNTT - HUI Nguyên nhân của việc khó diễn đạt ràng buộc trong UML là do đính kèm ràng buộc multiplicity tối thiểu vào role mà không qua 1 role trung gian. Với cùng lý do này, UML không thể diễn đạt được các ràng buộc thường xuyên (frequency constraints )khác của ORM.

  44. Ràng buộc trong UML và ORM Bai giang BM HTTT - Khoa CNTT - HUI In general, given any n-ary (n > 2) association, if an ORM mandatory or frequency constraint applies to at least 1 and at most n - 2 roles, this cannot be captured by a UML multiplicity constraint.

  45. Một số ràng buộc ORM không thể diễn đạt được trong UML Bai giang BM HTTT - Khoa CNTT - HUI

  46. Đối tượng hóa association Bai giang BM HTTT - Khoa CNTT - HUI • Cả UML và ORM đều cho phép đối tượng hóa các mối kết hợp (association) thành các loại đối tượng. • Trong UML: tạo thành các association class nhưng cần phải giữ nguyên tên trong association gốc lúc đầu và association class tương ứng • Trong ORM: tạo thành các objectified association hay các loại nested object, không bắt buộc mối kết hợp và đối tượng lồng nhau phải cùng tên (1 cụm động từ được đối tượng hóa thành cụm danh từ, nên cả hai đều có thể phát biểu thành câu có đủ ngữ nghĩa thông thường)

  47. Đối tượng hóa association Bai giang BM HTTT - Khoa CNTT - HUI Trong UML, thuộc tính period chỉ ra một person mất bao nhiêu lâu để viết 1 paper. Trong ORM, Writing được đánh dấu độc lập bởi ký hiệu "!“ để chỉ ra đối tượng writing có thể tồn tại một cách độc lập không cần quan tâm đến việc có lưu trữ lại period hay không. ORM hiển thị Period như 1 loại đối tượng, không phải là thuộc tính.

  48. Ràng buộc Set-Comparision Bai giang BM HTTT - Khoa CNTT - HUI • Ràng buộc Set-comparison bao gồm: • Ràng buộc tập con (subset) • Ràng buộc ngang bằng (equality) • Ràng buộc quan hệ loại trừ (exclusion relationship) • giữa các phân bố của các role khác nhau. • UML cho phép tạo các ràng buộc subset giữa các mối kết hợp bằng cách đính kèm nhãn ràng buộc "{ subset }" kế bên mũi tên đứt nét nối giữa các mối kết hợp (association)

  49. Ví dụ ràng buộc subset Bai giang BM HTTT - Khoa CNTT - HUI Ràng buộc subset “any person who chairs a committee must be a member of that committee”

  50. Ràng buộc equality Bai giang BM HTTT - Khoa CNTT - HUI • Trong ORM, ràng buộc equality giữa hai quan hệ có thể tích hợp (compatible), là cách viết tắt của 2 ràng buộc subset theo 2 chiều ngược nhau, được ký hiệu "=“ khoanh tròn. Phân bổ ứng với mỗi ràng buộc subset phải bằng nhau. • Nếu 2 role của cùng 1 object đều bắt buộc thì giữa chúng sẽ ngầm định có 1 ràng buộc equality • UML không có ký hiệu dành cho ràng buộc equality, có thể dùng note để chú thích ràng buộc loại này.

More Related