chuong2- thiet ke oodb

66
Chương 2. Thiết kế OODB Th.s Triệu Thu Hương

Upload: dandyboy9x

Post on 20-Dec-2015

221 views

Category:

Documents


0 download

DESCRIPTION

oodb

TRANSCRIPT

Page 1: Chuong2- Thiet Ke OODB

Chương 2. Thiết kế OODB

Th.s Triệu Thu Hương

Page 2: Chuong2- Thiet Ke OODB

Thiết kế OODB

• Định nghĩa lược đồ khái niệm trong một ngôn ngữ (mô hình) sao cho gần với người dùng và độc lập với cài đặt cuối cùng. Mô hình được dùng trong bước này phải có khả năng biểu diễn mọi yêu cầu của người dùng (UML – Unified Modeling Language).

• Dịch chuyển trực tiếp sang cài đặt cuối cùng trong một hệ QTCSDL hướng đối tượng xác định.

• Có thể qua một bước trung gian để có một lược đồ được mô tả trong ODL (Object Definition Language), biểu diễn các chi tiết thiết kế độc lập với sản phẩm cuối cùng.

2

Page 3: Chuong2- Thiet Ke OODB

Bước thiết kế OODB

3

Thiết kế khái niệm sử dụng kí pháp

UML

Thiết kế cài đặt.

Hệ QTCSDL HĐT

Thiết kế chuẩn ODL

Quá trình thiết kế một lược đồ CSDL HĐT

Page 4: Chuong2- Thiet Ke OODB

Thiết kế OODB

Minh hoạ ở các trang 178->187• Thiết kế khái niệm (UML)• Thiết kế lược đồ tiêu chuẩn (ODMG)• Thiết kế lược đồ cài đặt (Poet 4.0)

4

Page 5: Chuong2- Thiet Ke OODB

1. Thiết kế khái niệm với UML

• Các kí pháp UML• Thiết kế khái niệm với UML

Page 6: Chuong2- Thiet Ke OODB

Đối tượng-lớp đối tượng

• Đối tượng là khái niệm cơ sở quan trọng nhất trong cách tiếp cận hướng đối tượng. Đối tượng là một khái niệm, một sự trừu tượng hóa hay một sự vật có nghĩa trong bài toán đang khảo sát. Đó chính là các mục mà ta đang nghiên cứu, đang thảo lận về chúng. Đối tượng là thực thể của hệ thống, của CSDL và được xác định thông qua định danh.

• Lớp đối tượng là mô tả về nhóm các đối tượng ó những tính chất (thuộc tính) giống nhau, có chung các hành vi ứng xử (thao tác gần nhau), cùng có mối liên quan đến các đối tượng của lớp khác và có chung ngữ nghĩa trong hệ thống. Lớp và các mối quan hệ của chúng có thể mô tả trong các biểu đồ lớp đối tượng.

Page 7: Chuong2- Thiet Ke OODB

Kí pháp đối tượng-lớp đối tượng

7

‘+’ đứng trước tên thuộc tính, hàm xác định tính công khai (public). Trong Rose kí hiệu là ổ khoá không bị khoá.‘#’ đứng trước tên thuộc tính, hàm xác định tính được bảo vệ (protected). Trong Rose kí hiệu là ổ khoá bị khoá nhưng có chìa để bên cạnh.‘-’ đứng trước tên thuộc tính, hàm xác định tính sở hữu riêng (private). Trong Rose kí hiệu là ổ khoá bị khoá nhưng không có chìa để bên cạnh

‘+’ đứng trước tên thuộc tính, hàm xác định tính công khai (public). Trong Rose kí hiệu là ổ khoá không bị khoá.‘#’ đứng trước tên thuộc tính, hàm xác định tính được bảo vệ (protected). Trong Rose kí hiệu là ổ khoá bị khoá nhưng có chìa để bên cạnh.‘-’ đứng trước tên thuộc tính, hàm xác định tính sở hữu riêng (private). Trong Rose kí hiệu là ổ khoá bị khoá nhưng không có chìa để bên cạnh

Page 8: Chuong2- Thiet Ke OODB

Giá trị của các thuộc tính của đối tượng

• Giá trị (value) là một phần của dữ liệu. Các giá trị thường là cac số hoặc ký tự. Thuộc tính của đối tượng là thuộc tính của lớp được mô tả bởi giá trị của mỗi đối tượng trong lớp đó.

“Van Ba” và 20 là hai giá trị tương ứng thuộc tính HoTen, tuoi của đối

tượng sv1 trong lớp Sinh viên

Page 9: Chuong2- Thiet Ke OODB

Thao tác và phương thức

• Thao tác là một hàm hay thủ tục cho bởi các đối tượng của một lớp.

• Phương thức là cách thức cài đặt một thao tác trong một lớp.

Phương thức hienThi() của lớp MonHoc khi gọi để hiển thị các môn

học của thể của Sinh viên.

Page 10: Chuong2- Thiet Ke OODB

Liên kết giữa các lớp đối tượng

• Giữa các lớp có bốn quan hệ cơ bản:– Quan hệ kết hợp– Quan hệ kết tập– Quan hệ tổng quát hóa, kế thừa.– Quan hệ phụ thuộc.

Page 11: Chuong2- Thiet Ke OODB

Quan hệ giữa các lớp

11

Mối liên kết

Là một kết nối vât lý hoặc logic giữa các đối tưuợng với nhau. Phần lớn các liên kết là kết nối giữa hai đối tượng với nhau. Tuy nhiên cũng có những liên kết giữa ba hoặc nhiều hơn 3 đối tượng.

Hai đối tượng thuộc lướp SanBay: Nội Bài và

Gia Lâm cùng liên kết với đối tượng Hà Nội

của lớp Tỉnh thành theo quan hệ phục vụ

Page 12: Chuong2- Thiet Ke OODB

Quan hệ kết hợp giữa các lớp

12

Sự kết hợp

Là một mô tả về một nhóm các liên kết có chung cấu trúc và ngữ nghĩa như nhau. Vậy liên kết là thể hiện của Lớp.

Biểu diễn mối quan hệ một chiều thì sử dụng dấu mũi tên chỉ rõ mối

quan hệ.

Page 13: Chuong2- Thiet Ke OODB

Quan hệ kết hợp giữa các lớp

13

Sự kết hợp

Là một mô tả về một nhóm các liên kết có chung cấu trúc và ngữ nghĩa như nhau. Vậy liên kết là thể hiện của Lớp.

Sự nhập nhằng trong quan hệ xuất hiện giữa hai lớp khi có nhiều quan hệ kết hợp. Ví

dụ: Như hình bên.

Page 14: Chuong2- Thiet Ke OODB

Bội số

14

Quan hệ kết hợp

Để xác định số các đối tượng có thể tham gia vào mỗi đầu của mối quan hệ ta có thể sử dụng khái niệm bội số. Bội số xác định số lượng các thể hiện (đối tượng) của một lớp trong quan hệ kết hợp với các dối tượng của lớp khác.

Page 15: Chuong2- Thiet Ke OODB

Bội số

15

Quan hệ kết hợp

Để xác định số các đối tượng có thể tham gia vào mỗi đầu của mối quan hệ ta có thể sử dụng khái niệm bội số. Bội số xác định số lượng các thể hiện (đối tượng) của một lớp trong quan hệ kết hợp với các dối tượng của lớp khác.

Page 16: Chuong2- Thiet Ke OODB

Vai trò trong quan hệ kết hợp.

16

Là tên gọi một nhiệm vụ thường là một danh từ gán cho một đầu ra của quan hệ kết hợp- Một sân bay có thể là điểm đếncủa chuyến bay này và lại có thể là điểm xuất phát của chuyến bay khác. Ngược lại một chuyến bay bao giờ cũng phải bay từ một sân bay này đến một sân bay khác.

Page 17: Chuong2- Thiet Ke OODB

Quan hệ kết tập (quan hệ gộp)

17

•Là một loại các quan hệ kết hợp, tập trung thể hiện quan hệ giữa tổng thể và bộ phận (Whole/part).•Thường biểu diễn quan hệ có (has-a), quan hệ bộ phận (is-a-part-of) hoặc bao gồm (contains)…•Chia thành 3 loại

•Kết tập thông thường•Kết tập chia sẻ•Kết tập hợp thành hay quan hệ hợp thành.

Page 18: Chuong2- Thiet Ke OODB

Quan hệ kết tập (quan hệ gộp)

18

•Thể hiện mối liên kết giữa hai lớp, trong đó đối tượng của lớp này bao gồm một số đối tượng của lớp kia, song không tồn tại trong nội tại lớp đó. •Ví dụ: một hạm đội của lớp HamDoi gồm một số (3…10) tàu chiến của lớp TauChien, nhưng tàu chiến không chứa trong lớp HamDoi. Vậy lớp HamDoi có quan hệ kết tập với TauChien

Ta có thể loại bỏ một số hạm đội sao cho số còn lại ít nhất là 3. cũng có thể bô sung vào hạmmột số tàu chiến sao không quá 10. Nhưngkhi đã loại 1hạm đội thì phải loại bỏ tất cả tàu chiến của hạm đội đó. Vì mỗi tàu chiến thuộc 1

hạm đội.

Page 19: Chuong2- Thiet Ke OODB

Quan hệ kết tập (quan hệ gộp)

19

•Trong đó phía bộ phận có thể tham gia vào nhiều phía tổng thể. Ví dụ: một dự án của lớp Dự Án có thể có nhiều nhân viên của lớp Nhân Viên tham gia và một nhân viên có thể tham gia vào nhiều (hai) dự án.

Trong quan hệ này, ta có thể loại bỏ, hay thành lập 1 dự án (phía tổng thể) nhưng không nhất thiết loại bỏ, hay tuyển thêm những người tham gia

(phía bộ phận) vào dự án như kiểu kết tập ở trên.

Page 20: Chuong2- Thiet Ke OODB

Quan hệ kết tập (quan hệ gộp)

20

•Chỉ ra một vật có chứa một số bộ phận và các bộ phận đó tồn tại vật lý bên trong vật tổng thể. •Do vậy khi hủy bỏ, thiết lập mới bên tổng thể thì các bộ phận bên thành phần cũng bị hủy bỏ hoặc phải được bổ sung.

Ví dụ lớp Window

Page 21: Chuong2- Thiet Ke OODB

Quan hệ tổng quát hóa

21

•Là cách nhìn từ dưới lên/từ trên xuống về sự phân cấp các lớp, mô tả khả năng quan rlý cấp độ phức tạp của hệ thống bằng trừu tượng hóa các lớp.•Tổng quát hóa cho phép hình thành các lớp tổng quát (lớp cha)•Chuyên biệt hóa cho phép hình thành các lớp dưới (lớp con)

Trong UML, tổng quát hóa chính là mối quan hệ kế

thừa giữa hai lớp. Nó cho phpé lớp con kế thừa trực tiếp các thuộc tính và các hàm thuộc loại công khai, hay được bảo vệ bởi lớp

cha.

Page 22: Chuong2- Thiet Ke OODB

Quan hệ tổng quát hóa

22

•Lớp cụ thể: là lớp có các đại diện, các thể hiện cụ thể.•Lớp trừu tượng: lớp không có thể hiện (đối tượng) cụ thể trong hệ thống thực. Các lớp con cháu của lớp trừu tượng có thể là lớp trừu tượng. Tuy nhiên trong cấu trúc phân cấp theo quan hệ tổng quát hóa thì mọi nhánh kết thúc (lớp lá) phải là lớp cụ thể.

Lớp Nhân viên là lớp Trừu tượng

Lớp Người bán hàng và Công Nhân là lớp cụ thể.

Page 23: Chuong2- Thiet Ke OODB

Quan hệ tổng quát hóa

23

• Cho phép môt lớp được kế thừa các thuộc tính, các thao tác và các quan hệ kết hợp từ nhiều lớp cơ sở.•Kế thừa đơn thường tạo ra cấu trúc cây. •Kế thừa bội thường tạo ra các đồ thị hướng phi chu trình.

Kế thừa bội từ những lớp khác nhau và có lớp cơ sở

chung.

Page 24: Chuong2- Thiet Ke OODB

Quan hệ tổng quát hóa

24

• Cho phép môt lớp được kế thừa các thuộc tính, các thao tác và các quan hệ kết hợp từ nhiều lớp cơ sở.•Kế thừa đơn thường tạo ra cấu trúc cây. •Kế thừa bội thường tạo ra các đồ thị hướng phi chu trình.

Kế thừa bội từ những lớp khác nhau và không có lớp

cơ sở chung.

Page 25: Chuong2- Thiet Ke OODB

Quan hệ phụ thuộc

25

• Là một loại quan hệ liên kết giữa hai phần tử trong mô hình, trong đó thể hiện sự thay đổi trong một phần tử sẽ kéo theo sự thay đổi của phần tử kia.•Quan hệ này thường là quan hệ một chiều, thể hiện một lớp phụ thuộc vào lớp khác.

•Lớp A sử dụng một đối tượng của lớp B như là tham số trong thao tác.

•Trong các thao tác của lớp A có truy nhập tới các đối tượng của lớp B.

•Khi thực hiện thao tác nào đó của lớp A lại phải tham chiếu đến miền xác định lớp B

•Lớp A sử dụng các giao diện của lớp B

Page 26: Chuong2- Thiet Ke OODB

Các bước thiết kế biểu đồ lớp trong UML

• Xác định các lớp đối tượng• Xác định mối quan hệ giữa các lớp đối tượng

Page 27: Chuong2- Thiet Ke OODB

Xác định các lớp đối tượng• Dựa vào văn bản, kịchbản mô tả bài toán: thông

thường các danh từ có thể là các đại biểu của lớp.• Dựa vào danh sách phân loại các phạm trù khái niệm• Dựa vào mục đích của ca sử dụng.• Dựa vào kinh nghiệm và kiến thức của người phân

tích.• Dựa vào hồ sơ tài liệu những hệ thống liên quan.• Dựa vào ý kiến tham khảo với cac chuyên gia.• Trong quá trình phân tích thường phải kết hợp các

cách trên để tìm ra các lớp trong một hệ thống.

Page 28: Chuong2- Thiet Ke OODB

1. Dựa vào văn bản, kịch bản mô tả bài toán để tìm các lớp.• Trong các mô tả bài toán, các danh từ thường đại

biểu cho lớp hoặc thuộc tính của lớp.

Lưu ý: không phải danh từ nào cũng là những thực thể cần quan tâm trong hệ thống. Một số danh từ đồng nghĩa với nhau hay mô tả cho những thực thể vai trò như nhau trong hệ thống có thể chọn một trong số chúng.

Page 29: Chuong2- Thiet Ke OODB

1. Dựa vào văn bản, kịch bản mô tả bài toán để tìm các lớp.• Dựa vào kinh nghiệm, trình độ, kiến thức và loại bỏ

những khái niệm không phù hợp với khái niệm lớp.

Page 30: Chuong2- Thiet Ke OODB

Dựa vào kịch bản mô tả ca sử dụng• Ví dụ mô tả ca sử dụng “Bán Hàng”

Page 31: Chuong2- Thiet Ke OODB

Dựa vào kịch bản mô tả ca sử dụng• Rút ra được:

Page 32: Chuong2- Thiet Ke OODB

2. Dựa vào danh sách mô tả khái niệm phạm trù• Ví dụ: xem xét các khái niệm của hệ thống “bán hàng” và hệ thống “Đặt vé máy bay”

Page 33: Chuong2- Thiet Ke OODB

Dựa vào danh sách mô tả khái niệm phạm trù• Ví dụ: xem xét các khái niệm của hệ thống “bán hàng” và hệ thống “Đặt vé máy bay”

Page 34: Chuong2- Thiet Ke OODB

Dựa vào danh sách mô tả khái niệm phạm trù• Ngoài ra, ta còn có thể dựa vào các câu hỏi sau để tìm ra các đối tượng:

– Những thông tin nào cần phân tích, cần lưu trữ?– Những hệ thống ngoài nào cần thiết cho hệ thống và ngược lịa?– Những mẫu (pattern), thư viện lớp, thành phần nào được sử dụng trong hệ thống?– Hệ thống quản lý những thiết bị ngoại vi nào?– Vai trò của các tác nhân đối với hệ thống là gì?

Page 35: Chuong2- Thiet Ke OODB

3. Dựa vào mục đích ca sử dụng để xác định các lớp đối tượng.

Page 36: Chuong2- Thiet Ke OODB

Mối quan hệ giữa các lớp đối tượng

• Một hệ thống bao giờ cũng thống nhất• Mô hình khái niệm gồm những đối tượng khác nhau

nhưng có sự tương tác, hợp tác với nhau.• Tên của quan hệ

– Mệnh đề động từ đơn, dễ đọc thể hiện mối liên kết giữa các lớp.

• Các phương pháp xác định mối quan hệ kết hợp– Dựa vào nguyên lý “Cần để biết”– Dựa vào sự phân loại các phạm trù quan hệ trong hệ

thống.

Page 37: Chuong2- Thiet Ke OODB

Xác định quan hệ kết hợp theo nguyên lý “Cần để biết”• Ví dụ nguyên lý “cần để biết” áp dụng vào ca sử dụng

“Mua hàng bằng tiền mặt”, chúng ta có những quan hệ sau:

Page 38: Chuong2- Thiet Ke OODB

Xác định mối quan hệ kết hợp dựa vào phân loại phạm trù quan hệ.• Ví dụ xem xét hệ thống HBH và hệ thống đặt vé máy

bay.

Page 39: Chuong2- Thiet Ke OODB

Xác định mối quan hệ kết hợp dựa vào phân loại phạm trù quan hệ.• Tóm lại: dựa vào việc phân loại các phạm trù kết hợp

như trên, dựa và kinh nghiệm, kiến thức về hệ thống và dựa vào các kết quả khảo sát hệ thống trong thực tế để liệt kê tất cả các mối quan hệ kết hợp thực giữa các lớp trong hệ thống. Các lớp trong HBH có các quan hệ như sau:

Page 40: Chuong2- Thiet Ke OODB

Biểu đồ lớp.

• Là mô tả quan sát tĩnh của hệ thống thông qua các mối quan hệ của chúng.

• Nó được sử dụng để hiện hị các lớp và các gói lớp cùng các mối quan hệ của chúng. Biểu đồ lớp giúp người phát triển phần mềm quna sát và lập kế hoạch cấu trúc hệ thống trước khi lập trình.

• Các loại lớp trong biểu đồ lớp:– Lớp thông thường– Lớp tham số hóa– Lớp hiện thực– Lớp tiện ích– Lớp metaclass

Page 41: Chuong2- Thiet Ke OODB

Biểu đồ lớp.

• Lớp tham số hóa (Parameterized Class): sử dụng để tạo một họ các lớp khác. Trong C++ lớp tham số hóa hóa là lớp mẫu (template).

• Trong UML, có thể khai báo lớp tham số hóa (lớp mẫu) Set cho họ các lớp có các phần tử là kiểu T bấy kỳ, được xem như tham số như sau:

Lớp tham số hóa sử dụng để thể hiện quyết định thiết kế các giao thức trao đổi giữa các lớp. Lớp tham số hóa ít được sử dụng trong mô hình khái niệm.

Page 42: Chuong2- Thiet Ke OODB

Biểu đồ lớp.

• Lớp hiện thực (Instantiated Class): là loại lớp tham số hóa mà đối số của nó là kiểu giá trị cụ thể. Như vậy, lớp tham số hóa là khôn để tạo ra các lớp hiện thực. Ví dụ lớp Set <Complex> tậ các số phức là lớp hiện thực

Lớp tham số hóa sử dụng để thể hiện quyết định thiết kế các giao thức trao đổi giữa các lớp. Lớp tham số hóa ít được sử dụng trong mô hình khái niệm.

Page 43: Chuong2- Thiet Ke OODB

Biểu đồ lớp.• Lớp tiện ích (Class Utility): là tập hợp các thao tác được sử

dụng nhiều nơi trong hệ thống, chúng được tổ chức thành lớp tiện ích để các lớp khác có thể cùng sử dụng. Trong biểu đồ, lớp tiện ích được thể hiện bằng lớp có đường viền bóng.

• Lớp giao diện là tập những thao tác quan sát được từ bên ngoài một lớp và/hoặc một thành phần, và không có nội dung cài đặt riêng lớp đó. Giao diện thuộc quan sát logic và có thể hiện trong cả biều đồ lớp và biểu đồ thành phần.

Page 44: Chuong2- Thiet Ke OODB

Mẫu rập không của các lớp• Mẫu rập khuôn là cơ chế mở rộng các phần tử của

mô hình để tạo ra những phần tử mới. Nó cho phép dễ dàng bổ sung thêm các thông tin cho các phần tử của mô hình và những phần tử này được đặc tả rong các dự án hay trong quá trình phát triển mềm.

• Lớp biên (Boundary Class): là lớp nằm trên đường biên của hệ thống với phần thế giới bên ngoài. Nó có thể là:– Biểu mẫu, báo cáo, giao diện với các thiết bị phần cứng

như máy in, máy đọc ảnh...

• Lớp thực thể (Entitly Class): là lớp lưu giữa các thông tin mà nó được ghi vào bộ nhớ ngoài. – Lớp thực thể có thể tìm thấy trong luồng sự kiện và biểu

đồ tương tác.

Page 45: Chuong2- Thiet Ke OODB

Mẫu rập không của các lớp• Lớp điều khiển (Control Class): là lớp làm nhiệm vụ

diều phối hoạt động của các lớp khác. – Thông thường mỗi ca sử dụng có một lớp điều khiển để

điều khiển trình tự các sự kiện xảy ra trong nó.

Page 46: Chuong2- Thiet Ke OODB

Biểu đồ lớp trong Hệ HBH

Page 47: Chuong2- Thiet Ke OODB

Câu hỏi và bài tập

Page 48: Chuong2- Thiet Ke OODB

Câu hỏi và bài tập

Page 49: Chuong2- Thiet Ke OODB

Câu hỏi và bài tập

Page 50: Chuong2- Thiet Ke OODB

2. Thiết kế lược đồ tiêu chuẩn

Chuyển một lược đồ khái niệm biểu thị trong kí pháp UML về một lược đồ ODMG (Object Database Management Group)

50

Page 51: Chuong2- Thiet Ke OODB

ODMG

• ODMG (Object Database Management Group): xây dựng các chuẩn cho OODBMS từ 1991

• Chuẩn mới (ODMG standard) được xây dựng dựa trên SQL-92, và ANSI để định nghĩa mô hình khung ứng dụng cho các OODBMS.

Page 52: Chuong2- Thiet Ke OODB

Chuẩn của ODMG

Standard:

ODMG-93

ODMG 2.0 standard:

ODMG-93: trả lời theo SQLODMG-93: mở rộng của CORBA Persistent Object ServiceODMG-93 có ba thành phần chính:Object Definition Language (ODL)Object Query Language (OQL)C++ and Smalltalk language bindings

•ODMG liên kết mới cho Java, được chuẩn hóa và đơn giản hóa trong việc lưu trữ các đối tượng Java trong các CSDL•Xây dựng mô hình siêu ngữ nghĩa (metamodel) cung cấp những mô tả sơ đồ CSDL độc lập với các ngôn ngữ để tạo ra các công cụ và các ứng •Nâng cấp các mối liên kết giữa C++ và Smalltalk

Page 53: Chuong2- Thiet Ke OODB

Chuẩn của ODMG• ODMG đề xuất một CSDL tiêu chuẩn với mục tiêu thống nhất mô hình

đối tượng hạt nhân của nhiều hệ QTCSDL đối tượng khác nhau.• ODMG đưa ra một chuẩn mới cho OODM:

– Một mô hình đối tượng (OM)– Một ngôn ngữ định nghĩa đối tượng (ODL)– Một ngôn ngữ hỏi đối tượng với cú pháp tựa SQL– Ràng buộc ngôn ngữ C++(Java/Smalltalk)

Những kết cấu chính được đặc tả bởi mô hình dữ liệu của ODMG:– Đối tượng và literal– Kiểu– Các kiểu con và tính kế thừa– Ngoại diên– Khoá– Kiểu sưu tập và kiểu có cấu trúc

53

Page 54: Chuong2- Thiet Ke OODB

ODMG Đối tượng và literal• Đối tượng bền vững (đối tượng CSDL): là các đối

tượng tiếp tục tồn tại khi thủ tục hay quá trình tạo ra chúng đã kết thúc. Chúng được cấp phát bộ nhớ và được lưu trữ bởi hệ QTCSDL HĐT.

• Đối tượng không bền (chuyển tiếp): chỉ tồn tại bên trong thủ tục hay quá trình tạo ra chúng. Chúng được cấp phát bộ nhớ bởi hệ thống thời gian chạy của ngôn ngữ lập trình.

54

Page 55: Chuong2- Thiet Ke OODB

ODMG Kiểu: lớp và giao diện• Một kiểu xác định các tính chất chung (các thuộc tính và liên kết) và hành

vi (thao tác) của một tập các phần tử. Các giá trị của những tính chất của một đối tượng có thể thay đổi bất kì lúc nào.

• Một kiểu có một đặc tả ngoài và một hay nhiều cài đặt. ODL hỗ trợ đặc tả ngoài với ba kết cấu: giao diện, lớp và literal

– Một định nghĩa của giao diện là một đặc tả chỉ định nghĩa hành vi trừu tượng của một kiểu đối tượng.

– Định nghĩa của lớp là một đặc tả định nghĩa dáng điệu trừu tượng và trạng thái trừu tượng của một kiểu đối tượng.

– Định nghĩa của literal chỉ định nghĩa trạng thái trừu tượng của một literal.Việc cài đặt của một kiểu đối tượng phải được thực hiện bởi một ràng buộc ngôn

ngữ

55

Page 56: Chuong2- Thiet Ke OODB

ODMG Các kiểu con và tính kế thừa

Mô hình dữ liệu ODMG hỗ trợ 2 loại liên kết kế thừa:– Liên kết is-a (biểu diễn bởi :): định nghĩa tính kế thừa hành vi

giữa các kiểu đối tượng, hoặc là giao diện hoặc là lớp.– Liên kết EXTENDS (biểu diễn bởi từ extend) chỉ tính kế thừa

trạng thái. Nó chỉ áp dụng cho kiểu đối tượng.Như vậy, chỉ có các lớp có thể kế thừa trạng thái, các literal thì

không.

56

Page 57: Chuong2- Thiet Ke OODB

ODMG• Ngoại diên (extents) của một kiểu là nhóm (bộ sưu

tập) của tất cả các đối tượng (thể hiện-instances) của kiểu.

• Khoá (keys): là một hay một tập thuộc tính xác định duy nhất mỗi đối tượng của một kiểu (giống khái niệm khoá dự tuyển của mô hình quan hệ).

57

Page 58: Chuong2- Thiet Ke OODB

ODMG Kiểu sưu tập và kiểu có cấu trúc• Kiểu sưu tập (collections)

– Một sưu tập là một kiểu có số phần tử biến đổi, tất cả đều cùng kiểu.– Mô hình dữ liệu ODMG hỗ trợ các kiểu sưu tập (đối tượng hay literal):

tập, túi, danh sách, từ điển và bảng.• Kiểu có cấu trúc (structured types)

– Là kiểu có số cố định phần tử, có thể thuộc nhiều kiểu khác nhau.– Mô hình ODMG hỗ trợ các kiểu có cấu trúc (đối tượng hay literal):

date, interval, time và timestamp.– Ngoài ra ODMG còn cho phép người dùng định nghĩa các kiểu có cấu

trúc mới.

58

Page 59: Chuong2- Thiet Ke OODB

Thiết kế lược đồ tiêu chuẩn

59

• Mỗi lớp bền vững trong UML phải được chuyển đổi sang lớp trong ODL (Object Definition Language) thể hiện được cả hành vi trừu tượng lẫn các trạng thái trừu tượng.

Việc đọc dữ liệu trong CSDL HĐT được thực hiện như sau:• Các đối tượng trong CSDL HĐT được lưu trữ và có mối quan

hệ với nhau thông qua định danh ID. • Một đối tượng có thể tham chiếu tới nhiều ID đối tượng,

nghĩa là mối quan hệ giữa các đối tượng có dạng tổng quát là n:m.

• Mối quan hệ tham chiếu giữa các đối tượng được hệ QT CSDL HĐT thiết lập.j

Chuyển đổi các kiểu đối tượng

Page 60: Chuong2- Thiet Ke OODB

Thiết kế lược đồ tiêu chuẩn

60

Page 61: Chuong2- Thiet Ke OODB

Thiết kế lược đồ tiêu chuẩn

61

•Các mối liên kết được định nghĩa là các mối quan hệ trong ODL•Số bội (multiplicity) (bao gồm số bội cực đại và cực tiểu) biểu diễn có bao nhiêu đối tượng của một lớp có thể được kết hợp với một đối tượng xác định của lớp có liên quan.•Trong ODMG, số bội cực đại hỗ trợ định nghĩa mối quan hệ. Nếu số bội cực đại lớn hơn 1, mối quan hệ được định nghĩa bởi kiểu sưu tập (tập, danh sách hay túi).

Chuyển đổi các mối liên kết

Page 62: Chuong2- Thiet Ke OODB

Thiết kế lược đồ tiêu chuẩn

class HBH{ attribute String(25) hangTruong; attribute String(15) tenTruong; relationship PhienBanHang ghiNhan inverse banHang::PhienBanHang; void HBH(); void ~HBH(); void enterItems(){…} void endSale(){…}}; 62

•Quan hệ kết hợp nhị nguyên được chuyển sang mối quan hệ liên kết relationship trong ODL.

Chuyển đổi quan hệ kết hợp

1 *

ghiNhanbanHang

HBH

hangTruong: String

enterItems()endSale()makePayment()

PhienBanHang

ngayBan: DategioBan: Time

becomeComplete()makeLineItem()makePayment()total()

Page 63: Chuong2- Thiet Ke OODB

Thiết kế lược đồ tiêu chuẩn

•Quan hệ kết hợp nhị nguyên được chuyển sang mối quan hệ liên kết relationship trong ODL.

Chuyển đổi các quan hệ kế thừa

class ThanhToanTM extends ThanhToan(extent ThanhToanTM Key number){ …};class ThanhToanThe extends ThanhToan{ …};

ThanhToanTM ThanhToanThe

ThanhToan

Page 64: Chuong2- Thiet Ke OODB

Thiết kế lược đồ tiêu chuẩn

•Quan hệ kết tập giữa bộ phận và tổng thể (part-whole aggregation). Quan hệ này thể hiện như là lớp cấu trúc gồm hầu như là hai lớp khác nhau.

Chuyển đổi các quan hệ kết tập

class PhienBanHang { attribute Date ngayBan; attribute Time gioBan; attribute List<DongBanHang> gomCo; Boolean becomeComplete(){…} void makeLineItem() void makePayment(){…} Number total(){…} PhienBanHang(); ~PhienBanHang();};class DongBanHang { attribute Integer soLuong; Number subtotal(){…}};

gomCo1..*

PhienBanHang

ngayBan: DategioBan: Time

becomeComplete()makeLineItem()makePayment()total()

DongBanHangsoLuong: Intsubtotal()

Page 65: Chuong2- Thiet Ke OODB

Thiết kế lược đồ tiêu chuẩn Gộp nhậpUML hỗ trợ hai cách biểu diễn gộp nhập:• Gộp nhập phần tử - bộ sưu tập (member-collection

aggregation): biểu diễn một bộ sưu tập các đối tượng, tất cả thuộc cùng một lớp và cùng với nhau làm thành một lớp mới. Ví dụ một bộ sưu tập các cây làm thành một rừng.

• Gộp nhập bộ phận – toàn thể (part-whole aggregation): biểu diễn một lớp có cấu trúc gồm hai lớp hầu như khác nhau

65

Page 66: Chuong2- Thiet Ke OODB