Kỹ thuật lập trình - Chương 3: Thiết kế mô hình ý niệm bằng ORM

Modeling = a language + a procedure (dùng để mô tả làm thế nào sử dụng ngôn ngữ đó để xây dựng mô hình)

Language = associated syntax (marks), semantics (meaning), and pragmatics (use).

 

ppt76 trang | Chia sẻ: Mr Hưng | Lượt xem: 858 | Lượt tải: 0download
Bạn đang xem trước 20 trang nội dung tài liệu Kỹ thuật lập trình - Chương 3: Thiết kế mô hình ý niệm bằng ORM, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
BM HTTT - Khoa CNTT - HUI*Nhắc lại mô hình ý niệmBảy bước của CSDPBM HTTT - Khoa CNTT - HUI*Modeling = a language + a procedure (dùng để mô tả làm thế nào sử dụng ngôn ngữ đó để xây dựng mô hình)Language = associated syntax (marks), semantics (meaning), and pragmatics (use). BM HTTT - Khoa CNTT - HUI*Mô hình hóa ý niệm dùng để mô tả miền nghiệp vụ (business domain) ở mức cao, bằng cách dùng các thuật ngữ (terms ) và các khái niệm (concepts) liên quan đến người dùng nghiệp vụ đó, không quan tâm đến ngữ cảnh bên ngoài ( như form dùng nhập liệu..)Có thể dùng ORM, ER, và UML để mô hình hóa ý niệm BM HTTT - Khoa CNTT - HUI*Mặc dù UML được sử dụng rộng rãi hơn ORM, nhưng các ký hiệu chu thích dùng trong ORM thì diễn tả ý nghĩa đầy đủ hơn các lược đồ UML hay ER. BM HTTT - Khoa CNTT - HUI*Nếu miền nghiệp vụ (business domain) phức tạp thì đầu tiên phân nó thành các miền con (subareas). Các miền con này thường xếp thứ tự ưu tiên để xác định miền nào nên phát triển trước và mỗi miền sẽ được thiết kế 1 lược đồ con (subschema) bằng CSDP (Conceptual Schema Design Procedure)Các đội modeler sẽ thống nhất các thuật ngữ được dùng trong các lược đồ con. BM HTTT - Khoa CNTT - HUI*Phương pháp thiết kế top-down này gồm 3 bước chính như sau:Chia miền nghiệp vụ thành các vùng con (subarea) có thể kiểm soát được.Áp dụng CSDP cho mỗi vùng conTích hợp (Integrate) các lược đồ con (subschema) lại thành lược đồ ý niệm tổng thể (global conceptual schema)BM HTTT - Khoa CNTT - HUI*Transform familiar examples into elementary facts. Draw the fact types, and apply a population check. Check for entity types to be combined, and note any arithmetic derivations. Add uniqueness constraints, and check the arity of fact types. Add mandatory role constraints, and check for logical derivations. Add value, set-comparison, and subtyping constraints. Add other constraints and perform final checks.BM HTTT - Khoa CNTT - HUI*Nếu mô hình hóa miền nghiệp vụ mà hiện đang điều hành bằng tay hay máy tính, các số liệu mẫu (example) luôn sẵn có. Nếu không thì có thể làm việc với các chuyên gia (domain expert ) để có được số liệu mẫu (examples).Ba loại mẫu: output reports, input forms, và sample queries. Thường chúng ở dạng bảng, form, lược đồ hay văn bản. BM HTTT - Khoa CNTT - HUI*Luật sơ cấp (Elementary fact) là một xác nhận (assertion) hay một mệnh đề nhỏ nhất (atomic proposition) về miền nghiệp vụ. Có thể xem miền nghiệp vụ như 1 tập các đối tượng (object) đóng các vai trò (role) nào đó. Loại elementary fact đơn giản nhất ở dạng “a single object plays a given role” . Ví dụ: Ann smokes. BM HTTT - Khoa CNTT - HUI*Luật sơ cấp (Elementary fact) không dùng các kết nối luận lý (như not, and, or) hay các định lượng ( như all, some).Ví dụ: các câu sau không phải là elementary fact. Ann smokes and Bob smokes. If Bob smokes then Bob is cancer prone. All people who smoke are cancer prone.BM HTTT - Khoa CNTT - HUI*Role của 1 đối tượng (object) đôi khi được gọi là “property”Nếu 1 đối tượng chỉ có 1 role thì được gọi là quan hệ đơn phân (unary relationship) Thường mối quan hệ liên quan ít nhất hai role  quan hệ nhị phân (binary relationship) Ví dụ: Ann employs Bob  Ann đóng vai trò employer và Bob đóng vai trò employee. BM HTTT - Khoa CNTT - HUI*Hai dạng của đối tượng cơ bản (basic object): ValueEntityValue là hằng số mà tự nó xác định một ý nghĩa nào đó. Value có thể được tham khảo trực tiếp không cần phải mô tả. Hai dạng thông thường của value có thể là:character string number BM HTTT - Khoa CNTT - HUI*Entity được xem như mô tả xác định (definitive description). Ví dụ: city có tên là ParisHầu hết các entity có thể thay đổi theo thời gianMột entity có thể là Tangible object (e.g., the City named 'Paris')Abstract object (e.g., the Course with code 'CS 114'). Cả hai loại entity và value đều được xem là objects và tồn tại trong UoD. BM HTTT - Khoa CNTT - HUI*OO thường sử dụng thuật ngữ "entity“ hơn ”object” và để tham chiếu đến 1 entity nào đó thì sẽ dùng value. Ví dụ:1. Australia has six states. 2. "Australia" has nine letters. Trong (1) từ "Australia" dùng để tham chiếu đến 1 entity. Trong (2) từ "Australia" đơn giản chỉ là chú thích tham chiếu đến chính nó. Dấu “” để chỉ ra 1 biểu tượng (distinction) nào đó. BM HTTT - Khoa CNTT - HUI*Trong giao tiếp hàng ngày, các entity thường được tham chiếu đến thông qua tên gọi chính thức (proper name) của nó. Ví dụ tổng thống tiền nhiệm của Mỹ là Bill Clinton.Tên gọi chính thức này chỉ đúng khi tên chính chính thức này tham chiếu đến cái gì trong những tình huống cụ thể đang được nói đến. Trong (1) làm mọi người liên tưởng đến 1 country có tên gọi là "Australia". Tuy nhiên nếu câu này được nói trong 1 hoàn cảnh khác và dùng để chỉ đến 1 dog có tên là "Australia“, con chó này có 6 tâm trạng (moods) khác nhau như sleepy, playful, hungry, BM HTTT - Khoa CNTT - HUI*Các entity cần được định nghĩa rõ ràng bằng mô tả xác định (definite description) Mô tả xác định luôn bắt đầu bằng loại thực thể được tham chiếu đến.Loại thực thể (Entity type): là một tập hợp các thực thể. Mỗi entity đều là điển hình (instance) của 1 loại thực thể nào đó. Ví dụ: loại thực thể Person để chỉ tập hợp tất cả mọi người liên quan đến dự án. Thường 1 số người gọi tắt "entity" thay cho entity type“, đôi khi lại dùng "entity" để chỉ "entity instance" với mục đích tránh nhầm lẫn. BM HTTT - Khoa CNTT - HUI*Ví dụ: khảo sát câu sau:(3) Lee is located in 10B. Câu này dùng để nói đến 1 con ngựa trong chuồng, hay 1 máy tính trong phòng Để tránh nhâm lẫn, mô tả xác định được đưa thêm vào câu và được viết hoa ký tự đầu tiênThe Patient 'Lee' is located in the Ward '10B'. The Patient 'Lee' has a Temperature of 37. Các câu nói trên đã rõ ràng chưa? Có gây nhầm lẫn cho mọi người không???BM HTTT - Khoa CNTT - HUI*Giả sử UoD có tới 2 patient có tên là "Lee Jones" và "Mary Lee“ Hoặc nhiệt độ là 37 nhưng nếu là 37 độ Celsius thì thân nhiệt bình thường như nếu là 37 độ Fahrenheit thì người đó chắc hẳn đã bị đông cứng!.Để tránh mập mờ thì phải đính kèm cả reference mode vào mỗi entity. (4) The Patient with surname 'Lee' has a Temperature of 37 Celsius. (5) The Patient with firstname 'Lee' has a Temperature of 37 Fahrenheit. BM HTTT - Khoa CNTT - HUI*Một loại thực thể được mô tả đầy đủ gồm 3 thành phần:Entity type (e.g., Patient, Temperature) Reference mode (e.g., surname, Celsius) Value (e.g., 'Lee', 37)BM HTTT - Khoa CNTT - HUI*Thường role được mô tả bằng vị từ logic (logical predicate)Predicate là một câu khai báo (declarative sentence) có chứa các object trong nó. Nơi chứa object được gọi là “object hole” hay “placeholder”(6) The Person with firstname 'Ann' smokes. BM HTTT - Khoa CNTT - HUI*Object termPredicate có dạng “ . Smokes” Object holeVị từ 1 ngôi (unary predicate) nếu câu chỉ có 1 object hole.Vị từ hai ngôi (binary predicate) là câu có 2 object holes. Để mô tả role đa số là vị từ hai ngôi. (7) The Person with firstname 'Ann' employs the Person with firstname 'Bob'. Vị từ ba ngôi (ternary predicate) là câu có 3 object hole.Vị từ n-ngôi (n-ary predicate) là câu có n object hole (n > 0). BM HTTT - Khoa CNTT - HUI*Thứ tự của các object trong vị từ rất quan trọng thường được ký hiệu:Ro1... On R là vị từ n ngôi, 01...0 n là một chuỗi gồm n object-term. BM HTTT - Khoa CNTT - HUI*Predicate thường được dùng dạng “mixfix” (các thuật ngữ được dùng xen kẽ với predicate)Ví dụ: The Scientist with surname 'Einstein' moved to the Country with code 'USA‘ during the Year 1933 CEPredicate “. move to during..”BM HTTT - Khoa CNTT - HUI*Bước 1 của CSDP dùng để chuyển đổi các ví dụ chứa các thông tin liên quan thành các luật sơ cấp (elementary facts)Cùng fact nhưngCú pháp khác nhau BM HTTT - Khoa CNTT - HUI*The Person with surname 'Wirth' designed the Language named 'Pascal'.The Language named 'Pascal' was designed by the Person with surname 'Wirth'.Có thể viết rút gọn như sau:The Person with surname 'Wirth' designed / was designed by the Language named 'Pascal'. Khi nghịch đảo các object term thì predicate cũng được bị đảo ngược theo designed  designed byPredicate nằm bên trái của "/" sẽ được đọc từ trái sang. Predicate nằm bên phải “/” được đọc từ phải sang. BM HTTT - Khoa CNTT - HUI*Từ hàng đầu tiên của bảng mẫu, thử diễn tả thành elementary fact The Person with surname 'Wirth' designed the Language named 'Pascal' in the Year 1971 CE.  Có phải là elementary fact không? BM HTTT - Khoa CNTT - HUI*Từ predicate ba ngôi, chia thành 2 predicate 2 ngôi như sau:The Person with surname 'Wirth' designed the language named 'Pascal'. The Language named 'Pascal' was designed in the Year 1971 CE. Việc phân chia này có làm mất mát thông tin ("no information loss“) hay không? Không mất mát thông tin khi biết (1) và (2) thì có thể suy ra lại predicate trước đóBM HTTT - Khoa CNTT - HUI*Việc phân chia trên sẽ không mất mát thông tin nếu như ngầm định mỗi ngôn ngữ chỉ được thiết kế trong vòng 1 năm. Predicate "was designed in" được hiểu như là "had its design completed in“Nhưng nếu việc thiết kế ngôn ngữ kéo dài nhiều năm và có thể do nhiều người cùng thiết kế thì việc phân chia trên sẽ không đúng nữa. BM HTTT - Khoa CNTT - HUI*Sau khi chuyển đổi thành elementary fact thì nên rút gọn lại bằng cách:Loại bỏ các từ "the" , "with" Đặt các Reference modes vào cặp ngoặc đơn ngay sau object types.Dấu chấm(dot) đặt trước reference mode nameDấu : sau reference mode để chỉ đơn vị đo lườngTên đối tượng bắt đầu chữ hoa, tên reference modes bắt đầu chữ thường. BM HTTT - Khoa CNTT - HUI*Kết quả của việc chuyển từ ví dụ mẫu thành elementary fact:Person (surname) 'Wirth' designed Language (.name) 'Pascal'. Language (.name) 'Pascal' was designed in Year (CE) 1971.BM HTTT - Khoa CNTT - HUI*Hãy phát biểu các elementary fact cho bảng ví dụ trên Giả sử các reference schemes sau đã được khai báo sẵn: Politician(.name);Country(.code); Year(CE). BM HTTT - Khoa CNTT - HUI*Từ 2 bảng trên, có thể đọc thành 2 phát biểu (fact) sau:(1) The Politician 'George W. Bush' was born in the Country 'US' in the Year 1946. (2) The Politician 'George W. Bush' visited the Country 'GB' in the Year 2003. Trong 2 phát biểu trên, phát biểu nào là elementary??BM HTTT - Khoa CNTT - HUI*(1) vẫn có thể phân thành 2 câu(1a) The Politician 'George W. Bush' was born in the Country 'US'. (1b) The Politician 'George W. Bush' was born in the Year 1946. Hai câu 1a và 1b có thể nối lại với nhau bằng “and”, kết quả tương đương với phát biểu (1)(1) có thể phân chia (splitable) nên nó không thể là elementaryNhưng phát biểu (2) là elementary vì khi phân chia không thể kết hợp lại cho cùng ý nghĩa lúc đầu BM HTTT - Khoa CNTT - HUI*Kết luận: Có 3 elementary fact:Politician was born in CountryPolitician was born in Year Politician visited Country in Year.BM HTTT - Khoa CNTT - HUI*Hãy xác định các elementary fact cho bảng trên?BM HTTT - Khoa CNTT - HUI*Từ hàng đầu tiên của bảng, có thể đọc 4 phát biểu sau:The Lecturer with name 'Adams JB' was born in the Year 1946 CE. The Lecturer with name 'Adams JB' has the Age 42 years. The Lecturer with name 'Adams JB' holds the Degree with code 'BSc'. The Lecturer with name 'Adams JB' holds the Degree with code 'PhD'. BM HTTT - Khoa CNTT - HUI*Có 3 loại entity: Lecturer (.name), Year (CE), Age (y:), Có 3 loại elementary fact:Lecturer was born in Year; Lecturer has AgeLecturer holds Degree.Loại entity Year và Age có ngữ nghĩa hoàn toàn khác nhau: Year liên quan đến thời điểm bắt đầu (starting point) còn Age để chỉ 1 khoảng thời gian (tính bằng số năm)BM HTTT - Khoa CNTT - HUI*Bảng phân phối các nhóm thực tậpPhát biểu (verbalize) các Elementary fact cho bảng trênBM HTTT - Khoa CNTT - HUI*Bước 1a: đọc thông tin từ hàng đầu tiên của bảng (verbalize the information)Tute group A meets at 3 p.m. Monday in Room CS-718. Student 302156 belongs to group A and is named 'Bloggs FB'.BM HTTT - Khoa CNTT - HUI*Bước 1b: tinh chỉnh các thông tin đọc được thành elementary facts kết quả là 4 elementary fact:The TuteGroup with code 'A' meets at the Time with dhcode 'Mon 3 p.m.'. The TuteGroup with code 'A' meets in the Room with roomNr 'CS-718'. The Student with studentNr 302156 belongs to the TuteGroup with code 'A'. The Student with studentNr 302156 has the StudentName 'Bloggs FB'. BM HTTT - Khoa CNTT - HUI*Khi thông dịch từ số liệu mẫu thành elementary fact, có thể cần đưa ra các giả định (assumption):Giả sử các sinh viên có studentNr khác nhau và chỉ thuộc duy nhất 1 nhóm.Các sinh viên có thể trùng tên nhau (có tới 2 sinh viên tên 'Bloggs FB’)Mỗi nhóm gặp nhau chỉ 1 lần mỗi tuần (each tutorial group meets only once a week). Nhờ giả sử này có thể tạo các elementary riêng về thời gian và phòng.BM HTTT - Khoa CNTT - HUI*Nếu các ví dụ để dịch không quen thuộc với modeler thì nên giải quyết mọi nghi ngờ bằng cách hỏi ý kiến các domain expertBM HTTT - Khoa CNTT - HUI*Bài tập trang 93BM HTTT - Khoa CNTT - HUI*Dựa vào luật sơ cấp (elementary fact) của bước 1, nhiệm vụ của bước 2 bao gồm:Vẽ lược đồ điển hình Vẽ lược đồ ý niệm (conceptual schema diagram)Kiểm tra lược đồ với phân bố mẫu (sample population).Lược đồ điển hình (Instance diagram) dùng để mô tả các điển hình của đối tượng cùng với mối quan hệ của chúng. BM HTTT - Khoa CNTT - HUI*Từ bảng số liệu mẫu trên, xác định được 3 elementary fact sauThe Person named 'Adams B' drives the Car with regNr '235PZN'. The Person named 'Jones E' drives the Car with regNr '235PZN'. The Person named 'Jones E' drives the Car with regNr '108AAQ'. BM HTTT - Khoa CNTT - HUI*Lược đồ điển hình mô tả các đối tượng điển hình và mối quan hệ giữa chúng với nhau. Thuận lợi: thể hiện được bản tính cụ thể (concrete nature) của các thực thể.Rõ ràng có 2 đối tượng là person và car. Biểu diễn giá trị (values) của các đối tượng này dưới dạng chuỗi ký tựMối quan hệ (relationship) giữa person và car được biểu diễn bằng đường liền nét (solid)Tham chiếu cụ thể giữa 1 giá trị và 1 thực thể được biểu diễn bằng đường đứt nét (broken line)BM HTTT - Khoa CNTT - HUI*Lược đồ điển hình (instance diagram)BM HTTT - Khoa CNTT - HUI*Lược đồ điển hình (Instance diagrams) và lược đồ ý niệm (conceptual diagrams ) đều cùng mô tả:Loại thực thể (entity type) dưới dạng hình chữ nhật góc tròn, đường liền nét, có đặt tên. Tên loại đối tượng (object type) được viết bên trong hộp.Loại giá trị (value type) dưới dạng hình chữ nhật góc tròn, đường đứt nét, có đặt tên.Trong lược đồ điển hình, các đối tượng riêng lẻ được biểu diễn tường minh bằng biểu tượng hay text. Còn trong lược đồ ý niệm, các đối tượng riêng lẻ bị bỏ qua. BM HTTT - Khoa CNTT - HUI*BM HTTT - Khoa CNTT - HUI*Role (relationship parts) được biểu diễn dưới dạng các hộp (box). Role có thể có tên hay không, nếu có tên role sẽ đặt trong [] như "[driver]“ và nằm kế bên role box. Mỗi vị từ (predicate) được biểu diễn dưới dạng 1 hay nhiều hộp role nằm liền kề nhau và có đặt tênBM HTTT - Khoa CNTT - HUI*Với mối quan hệ 2 ngôi (2 roles), cả 2 cách đọc predicate thuận và ngược đều được chỉ ra và phân cách nhau bằng dấu /. Dấu mũi tên  hay  để chỉ hướng đọc predicate, nếu không thì mặc định đọc từ trái qua phải và từ trên xuống dướiMỗi role được nối với 1 loại object bởi đường thẳng (line) để chỉ role được thực thi chỉ bởi các đối tượng của loại đối tượng đó. BM HTTT - Khoa CNTT - HUI*Luật sơ cấp (Elementary fact) là mối quan hệ giữa các thực thể (entities) Mối tham chiếu (References) là mối quan hệ giữa thực thể (entity) và giá trị (value).References là cầu nối giữa thế giới các thực thể và thế giới các giá trị.BM HTTT - Khoa CNTT - HUI*BM HTTT - Khoa CNTT - HUI*Using reference modes for 1:1 reference: (a) model and (b) abbreviation. Mặc dù cả hai vị từ loại tham chiếu (reference predicate) đều được đọc là "has", nhưng chúng là các vị từ khác hẳn nhau. Có thể xác định các vị từ bằng ký tự thay thế (e.g., "P2", "P3") hay dùng tên mở rộng (e.g., "PersonHasPersonName", "CarHasRegNr").Mặc dù predicate có thể đọc là "has" nhưng tốt hơn nên tránh nếu có cách đọc khác rõ ràng hơn. Ví dụ nên dùng "Person drives Car“ tốt hơn là "Person has Car", rất có thể bị hiểu nhầm thành “Person owns Car”BM HTTT - Khoa CNTT - HUI*Reference mode chỉ ra mode hay cách thức mà các đối tượng (điển hình là các giá trị) tham chiếu đến thực thể. Bằng cách sử dụng reference mode sẽ hạn chế việc cần phải hiển thị tường minh các loại giá trị.Để hiểu được sơ đồ rút gọn cần phải biết làm thế nào để chuyển đổi giữa reference modes và các loại giá trị. BM HTTT - Khoa CNTT - HUI*Ký hiệu "E (r)  V" có nghĩa là "Entity type E with reference mode r generates the Value type V". Các reference modes có thể rất thông dụng như name, code, title, nr, # và id.Khi đặt trong ngoặc đơn, các reference mode thông dụng được đặt trước bởi dấu chấm. Để chuyển thành tên loại giá trị (value type name) reference mode có ký tự đầu viết hoa và được thêm vào tên của entity type.BM HTTT - Khoa CNTT - HUI*Product(.name)  ProductName; Country(.code)  CountryCode;Item(.code)  ItemCode;Song(.title)  SongTitle;Rating(.nr)  RatingNr; Room(.#)  Room#; Member(.id)  MemberId. BM HTTT - Khoa CNTT - HUI*Nếu là mode tham chiếu dạng đơn vị (e.g., cm, kg, mile) hay dạng tiền tệ (e.g., USD, XEU) thì đuợc chuyển đổi như sau (kg:)  kgValue; (USD:) USDValue.Nếu mode tham chiếu dạng tổng quát thì tên loại sẽ tương tự như loại giá trị của nó (ISBN) ~ ISBN; (URL) ---> URL. BM HTTT - Khoa CNTT - HUI*Để kiểm tra tính đúng đắn của lược đồ, nên phân bố mỗi loại quan hệ (fact) trên lược đồ với 1 số các số liệu điển hình gốc dưới dạng bảng (fact table) chứa các cột thích hợp. BM HTTT - Khoa CNTT - HUI*BM HTTT - Khoa CNTT - HUI*Hãy vẽ lược đồ ý niệm cho bảng trênBM HTTT - Khoa CNTT - HUI*BM HTTT - Khoa CNTT - HUI*Hãy vẽ lược đồ ý niệm cho bảng trênMột cách để biểu diễn fact trên hàng 1 là: Person (firstname) 'Arnie' smokes; Person (firstname) 'Lee' is a nonsmoker. Mỗi một loại fact này là điển hình của loại fact 1 ngôi. Hai fact 1 ngôi này có thể được biến đổi thành 1 fact 2 ngôi bằng cách dùng SmokingStatus như 1 loại thực thể khác với mã "S" dành cho người hút thuốc và "N" cho người không hút thuốc. Hàng đầu tiên sẽ được sửa lại thành Person(.firstname) 'Pat' has SmokingStatus(.code) 'S'; Person 'Norma' has SmokingStatus 'N'. BM HTTT - Khoa CNTT - HUI*BM HTTT - Khoa CNTT - HUI*Unary versionBinary versionKhảo sát bảng báo cáo sau:Thuộc loại quan hệ tam phân (ternary fact type).Sơ đồ tham chiếu là Student(.nr), Course(.code), và Rating(.nr).BM HTTT - Khoa CNTT - HUI*Fact của hàng 1 sẽ là: Student '1001' for Course 'CS 100' scored Rating 4. BM HTTT - Khoa CNTT - HUI*Bảng phân bố mẫuSample populationThay cho câuStudent '1001' for Course 'CS 100' scored Rating 4Diễn tả mối quan hệ tam phân, có thể chuyển thành 2 câu sau:Student ' 1001' enrolled in Course 'CS 100'. This Enrollment resulted in Rating 4. "This Enrollment" dùng để chỉ mối quan hệ đăng ký giữa 1 người và 1 môn học nào đó. Bất kỳ việc đăng ký nào cũng đều có thể được xử lý như 1 đối tượng thực sự. BM HTTT - Khoa CNTT - HUI*Hành động tách thành một đối tượng từ mối quan hệ được gọi là đối tượng hóa (objectification or reification) .Đối tượng được tạo bởi đối tượng hóa được gọi là objectified relationship. Loại đối tượng được tạo thành gọi là objectified association (hay objectification type), được ký hiệu hình chữ nhật góc tròn có đặt tên nằm trong “”. Loại đối tượng này thường có 2 role, nhưng có thể chỉ có 1 role hay nhiều hơn. BM HTTT - Khoa CNTT - HUI*Nested versionBM HTTT - Khoa CNTT - HUI*Mối quan hệ đối tượng hóa thường hay dùng khi mối quan hệ này có 1 role tùy chọn(optional role) hay khi bổ sung thêm 1 role mới. Ví dụ: bổ sung thêm ngày đăng ký (enrolment dates) vào bảng báo cáo. Nếu dùng quan hệ tam phân thì cần thêm 1 quan hệ tam phân nữa: Student enrolled in Course on Date. Nếu dùng dạng objectification (nested version) thì chỉ cần thêm 1 quan hệ nhị phân: Enrollment occurred on Date. Dạng nested version này còn làm đơn giản các ràng buộc giữa các đối tượng. BM HTTT - Khoa CNTT - HUI*BM HTTT - Khoa CNTT - HUI*Cần xây dựng 1 CSDL lưu trữ việc bán hàng (sale). Hai sản phẩm được bán là ACAD và BCADXác định elementary fact và lược đồ ý niệm cho đồ thị trên,Bước 1a: (verbalize the sales information) đọc thông tin từ đồ thị"BCAD in the first quarter had sales of one million dollars".Bước 1b: (refining this into one or more elementary facts): phát biểu thành quan hệ tam phân:"The Product with code 'BCAD' in the Quarter numbered 1 had sales of MoneyAmount 1000000 USD". Dùng loại đối tượng "MoneyAmount" thay cho "Sales" để làm rõ hơn ý nghiã nghiệp vụ.BM HTTT - Khoa CNTT - HUI*Kết thúc bước 1 (xác định elementary fact): Product(.code)in Quarter(.nr) had sales of MoneyAmount (USD:) Bước 2: vẽ lược đồ ý niệmBM HTTT - Khoa CNTT - HUI*BM HTTT - Khoa CNTT - HUI*Bài tập trang 105BM HTTT - Khoa CNTT - HUI*

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

  • pptchuong_3_part_1_9572.ppt