Tất cả các đề xuất này đều cung cấp ít nhất một mô hình đối tượng hỗ trợ thời gian hợp lệ, và một số kiểu thời gian khác, các ngôn ngữ định nghĩa, các ngôn ngữ truy vấn và khả năng liên
Trang 1TRƯỜNG ĐẠI HỌC VINH _
VÕ THỊ ÁNH
NGHIÊN CỨU VIỆC CHUYỂN ĐỔI MÔ HÌNH TimeER
SANG MÔ HÌNH ĐỐI TƯỢNG ODMG
LUẬN VĂN THẠC SĨ CÔNG NGHỆ THÔNG TIN
NGHỆ AN - 2017
Trang 2TRƯỜNG ĐẠI HỌC VINH _
VÕ THỊ ÁNH
NGHIÊN CỨU VIỆC CHUYỂN ĐỔI MÔ HÌNH TimeER
SANG MÔ HÌNH ĐỐI TƯỢNG ODMG
Chuyên ngành: CÔNG NGHỆ THÔNG TIN
Mã số: 60.48.02.01
LUẬN VĂN THẠC SĨ CÔNG NGHỆ THÔNG TIN
Người hướng dẫn khoa học: TS PHAN LÊ NA
NGHỆ AN - 2017
Trang 3LỜI CAM ĐOAN
Tôi cam đoan các kết quả nghiên cứu đƣa ra trong luận văn này dựa trên các kết quả thu đƣợc trong quá trình nghiên cứu của riêng tôi, không sao chép bất kỳ kết quả nghiên cứu nào của các tác giả khác Nội dung của luận văn có tham khảo và sử dụng một số thông tin, tài liệu từ các nguồn sách, tạp chí đƣợc liệt kê trong danh mục các tài liệu tham khảo
Học viên
Võ Thị Ánh
Trang 4LỜI CẢM ƠN
Lời đầu tiên, tôi xin chân thành cảm ơn quý thầy cô trong Khoa công nghệ thông tin - Trường Đại học Vinh đã tận tình hướng dẫn, giảng dạy, truyền đạt cho tôi các kiến thức quý báu trong quá trình học tập
Tôi xin gửi lời cảm ơn sâu sắc tới cô giáo TS Phan Lê Na đã tận tình hướng dẫn, động viên giúp tôi hoàn thành luận văn này
Xin cảm ơn Ban giám hiệu, toàn thể cán bộ giáo viên Trường THPT Hà Huy Tập đã giúp đỡ, tạo điều kiện thuận lợi để tôi hoàn thành khóa học
Cuối cùng, tôi xin gửi lời cảm ơn tới gia đình, bạn bè đã động viên, khích lệ tinh thần trong suốt thời gian qua
Vinh, tháng 4 năm 2017
Trang 5MỤC LỤC
MỤC LỤC 4
DANH MỤC CÁC TỪ VIẾT TẮT 6
MỞ ĐẦU 7
CHƯƠNG 1 MÔ HÌNH TimeER 10
1.1 Mô hình cơ sở dữ liệu có yếu tố thời gian 10
1.1.1 Các loại thời gian 10
1.1.2 Kết hợp yếu tố thời gian trong mô hình dữ liệu quan hệ 10
1.2 Mô hình TimeER 12
1.2.1 Tập thực thể 13
1.2.2 Thuộc tính 13
1.2.3 Khóa của tập thực thể 14
1.2.4 Mối quan hệ 14
1.2.5 Mối quan hệ kế thừa 14
1.3 Tiểu kết chương 1 16
CHƯƠNG 2 MÔ HÌNH ĐỐI TƯỢNG ODMG 17
2.1 Mô hình cơ sở dữ liệu hướng đối tượng 17
2.1.1 Lớp và đối tượng 17
2.1.2 Tính đóng gói 18
2.1.3 Tính kế thừa 18
2.2 Mô hình đối tượng ODMG 19
2.2.1 Mô hình dữ liệu đối tượng ODMG 3.0 19
2.2.1.1 Kiểu 19
2.2.1.2 Đối tượng 22
2.2.1.3 Literal 24
2.2.1.4 Biểu diễn trạng thái của đối tượng bằng các thuộc tính 25
2.2.1.5 Biểu diễn hành vi của đối tượng bằng các phương thức 27
Trang 62.4.1.6 Siêu dữ liệu 27
2.2.2 Ngôn ngữ đặc tả đối tượng 28
2.2.2.1 Ngôn ngữ định nghĩa đối tượng 28
2.2.2.2 Ngôn ngữ định dạng chuyển đổi đối tượng 29
2.3 Tiểu kết chương 2 30
CHƯƠNG 3 CHUYỂN ĐỔI MÔ HÌNH TimeER SANG MÔ HÌNH ĐỐI TƯỢNG ODMG 31
3.1 Phương pháp chuyển đổi mô hình TimeER sang mô hình đối tượng ODMG 31
3.1.1 Chuyển đổi các thành phần không có yếu tố thời gian 32
3.1.1.1 Chuyển đổi tập thực thể 32
3.1.1.2 Chuyển đổi các mối quan hệ 36
3.1.2 Chuyển đổi các thành phần có yếu tố thời gian 42
3.1.2.1 Chuyển đổi tập thực thể có hỗ trợ yếu tố thời gian 42
3.1.2.2 Chuyển đổi các thuộc tính có yếu tố thời gian của một tập thực thể 45 3.1.2.3 Chuyển đổi mối quan hệ có yếu tố thời gian 47
3.2 Chương trình chuyển đổi mô hình TimeER sang mô hình đối tượng ODMG 50
3.3 Tiểu kết chương 3 55
KẾT LUẬN 57
TÀI LIỆU THAM KHẢO 58
Trang 78 ODMG Object Database Management Group
9 ODL Object Define Language
10 OIF Object Interchange Format
11 OQL Object Query Language
12 TimeER Time Extended EER
Trang 8MỞ ĐẦU
1 Sự cần thiết của vấn đề nghiên cứu
Khi thiết kế cơ sở dữ liệu, nhiều khi chúng ta gặp các đối tượng mà một
số thông tin thường xuyên thay đổi theo thời gian Ví như, hệ số lương, chức
vụ của một nhân viên sẽ thay đổi theo thời gian; tỷ giá ngoại tệ, giá bán sản phẩm thường xuyên thay đổi theo thời gian; Hay các ứng dụng dạng lập lịch như lập lịch các chuyến bay, tàu hỏa, đặt phòng khách sạn; các ứng dụng khoa học như dự báo thời tiết,… Vì vậy, khi thiết kế mô hình quan niệm, một trong những vấn đề quan tâm nhất hiện nay là làm sao để thông tin lưu trữ thể hiện đầy đủ ở cả hiện tại và quá khứ Để làm được điều này người thiết kế phải đưa yếu tố thời gian vào khi xây dựng hệ thống Đã có một số mô hình được đề xuất để xây dựng CSDL thời gian ở mức quan niệm như: TERM, RAKE, MOTAR,…trong đó nổi bật lên là mô hình TimeER
Trong những năm gần đây, mô hình hướng đối tượng cũng đã và đang phát triển theo xu thế của việc đưa khái niệm hướng đối tượng vào trong một
số lĩnh vực của khoa học máy tính Việc áp dụng cách tiếp cận hướng đối tượng vào lĩnh vực CSDL đã tạo khả năng linh hoạt cho mô hình dữ liệu này trong việc mô hình hóa thế giới thực vốn ngày càng phức tạp Việc mở rộng yếu tố thời gian trên CSDL hướng đối tượng là hết sức cần thiết đối với các nhà nghiên cứu Cho đến nay vẫn chưa có một chuẩn nào cho CSDL hướng đối tượng được công nhận Gần đây, một đề xuất về chuẩn trên CSDL hướng đối tượng đó là ODMG Đã có một số đề xuất về việc mở rộng yếu tố thời gian trong chuẩn ODMG đã được đưa ra sau đó Tất cả các đề xuất này đều cung cấp ít nhất một mô hình đối tượng hỗ trợ thời gian hợp lệ, và một số kiểu thời gian khác, các ngôn ngữ định nghĩa, các ngôn ngữ truy vấn và khả năng liên kết giữa những ngôn ngữ này với nhau
Trang 9Chính vì vậy, tôi chọn vấn đề “Nghiên cứu việc chuyển đổi mô hình TimeER sang mô hình đối tượng ODMG” làm đề tài luận văn của mình
2 Mục tiêu nghiên cứu
Đề xuất một phương pháp chuyển đổi không dư thừa, nhất quán về mặt
dữ liệu, thể hiện đúng ngữ nghĩa từ mô hình TimeER sang mô hình đối tượng ODMG
3 Đối tượng và phạm vi nghiên cứu
- Đối tượng nghiên cứu:
+ Mô hình cơ sở dữ liệu có yếu tố thời gian TimeER
+ Mô hình đối tượng ODMG
- Phạm vi nghiên cứu:
Luận văn chỉ tập trung nghiên cứu việc chuyển đổi cấu trúc dữ liệu của các mô hình dữ liệu nên chỉ quan tâm đến phần cấu trúc các thuộc tính của mỗi lớp đối tượng Vì vậy các phương thức của mỗi lớp đối tượng là chưa đề cập đến
4 Mục đích, nhiệm vụ nghiên cứu
- Tìm hiểu mô hình cơ sở dữ liệu có yếu tố thời gian TimeER
- Tìm hiểu mô hình đối tượng ODMG
- Đề xuất một phương pháp chuyển đổi từ mô hình TimeER sang mô hình đối tượng ODMG
- Cài đặt phần mềm chuyển đổi trên phương phương pháp đưa ra
5 Kết cấu của luận văn
Ngoài phần mở đầu và phần kết luận, luận văn được sắp xếp theo bố cục sau đây:
Trang 10Chương 1 nhằm giới thiệu về CSDL có yếu tố thời gian, mô hình TimeER bao gồm tập thực thể, thuộc tính, các mối quan hệ,…
Chương 2 giới thiệu mô hình CSDL hướng đối tượng, mô hình đối tượng ODMG
Chương 3 đề xuất một phương pháp chuyển đổi từ mô hình TimeER sang
mô hình đối tượng ODMG
Trang 11CHƯƠNG 1 MÔ HÌNH TimeER 1.1 Mô hình cơ sở dữ liệu có yếu tố thời gian
Cơ sở dữ liệu (CSDL) có yếu tố thời gian là mở rộng của CSDL truyền thống bằng cách cho phép lưu trữ và truy nhập các thông tin về thời gian Sự khác biệt giữa CSDL thời gian và CSDL phi thời gian là ở khoảng thời gian gắn với dữ liệu khi nó là hợp lệ hoặc được lưu trữ trong CSDL Các dữ liệu được lưu trữ bởi CSDL phi thời gian thường được xem xét tại thời điểm hiện tại, khi dữ liệu đó được sửa đổi hoặc xóa thì trang thái của nó bị ghi đè lên để chuyển thành một trạng thái mới
1.1.1 Các loại thời gian
Mô hình TimeER hỗ trợ năm loại thời gian: thời gian sống (LifeSpan – LS) là thời gian mà một thực thể tồn tại trong thực tế; thời gian hợp lệ (ValidTime – VT) là thời gian mà một sự kiện được xem là đúng trong thực tế; thời gian giao tác (TransactionTime – TT) là thời gian đối tượng được lưu, hiện diện trong CSDL; thời gian sống và thời gian giao tác (LS+TT=LT - LifeTran); thời gian hợp lệ và thời gian giao tác (VT+TT=BT - BiTemporal)
Đối với các thực thể, hệ thống có thể hỗ trợ thời gian sống, hoặc thời gian giao tác, hoặc cả hai loại thời gian này Đối với các thuộc tính, hệ thống cho phép hỗ trợ thời gian hợp lệ, hoặc thời gian giao tác, hoặc cả hai loại thời gian này
1.1.2 Kết hợp yếu tố thời gian trong mô hình dữ liệu quan hệ
Trong mô hình CSDL quan hệ, dữ liệu lưu trữ cố định, phi thời gian
Để kết hợp yếu tố thời gian trong mô hình dữ liệu quan hệ, trong trường hợp thuộc tính có yếu tố thời gian, ta chuyển quan hệ phi thời gian thành quan hệ thời gian bằng cách thêm vào các thuộc tính thời gian bắt đầu (VTs, TTs) và
Trang 12thuộc tính thời gian kết thúc (VTe, TTe) để thiết lập khoảng thời gian của dữ liệu Khóa chính của quan hệ thời gian là sự kết hợp giữa khóa phi thời gian
và thuộc tính thời gian bắt đầu
Ví dụ 1.1: Xét quan hệ phi thời gian
NHAN_VIEN(MSNV, HoTen, NgaySinh, Luong)
Quan hệ này có thuộc tính Lương là thuộc tính thay đổi theo thời gian Ta chuyển thành quan hệ thời gian như sau:
NHAN_VIEN_VT(MSNV, HoTen, NgaySinh, Luong, VTs, VTe)
Bảng 1.1 Một số bộ trong bảng NHAN_VIEN với thuộc tính Lương thay đổi
theo thời gian
NV001 Trần An 07/01/1980 4.000.000 9/2004 8/2008 NV001 Trần An 07/01/1980 5.500.000 9/2008 5/2013
NV002 Nguyễn Hà 04/08/1987 3.500.000 9/2009 4/2013 NV002 Nguyễn Hà 04/08/1987 5.000.000 5/2013 Now NV003 Hoàng Minh 05/09/1986 3.500.000 9/2008 7/2012 NV004 Võ Quang 06/07/1993 4.000.000 8/2014 Now Trong trường hợp quan hệ có hỗ trợ hai loại thời gian, để chuyển quan
hệ phi thời gian thành quan hệ có hỗ trợ yếu tố thời gian, ta thêm vào bốn thuộc tính VTs, VTe, TTs, TTe Khóa chính của quan hệ này là sự kết hợp giữa khóa phi thời gian và các thuộc tính VTs, VTe, TTs
Trang 13NHAN_VIEN_BT(MSNV, HoTen, NgaySinh, Luong, VTs, VTe, TTs, TTe)
Trong trường hợp tập thực thể E có hỗ trợ yếu tố thời gian, thì ta bổ sung thêm một quan hệ mới là quan hệ thời gian của tập thực thể E, có tâp thuộc tính là thuộc tính khóa ngoài tham chiếu đến quan hệ R(E), thuộc tính thời gian bắt đầu và thuộc tính thời gian kết thúc
Ví dụ 1.2: Xét quan hệ phi thời gian
SINH_VIEN(MSSV, HoTen, GioiTinh)
Tập thực thể SINH VIÊN có hỗ trợ thời gian sống Ta bổ sung một quan hệ mới
SINH_VIEN_LS(MSSV, LSs, LSe) Bảng 1.2 Một số bộ trong bảng SINH_VIEN_LS
Đã có một số mô hình đề xuất để xây dựng mô hình quan niệm dữ liệu
hỗ trợ yếu tố thời gian như: TERM, RAKE, MOTAR,… tiêu biểu nhất là mô hình TimeER Mô hình TimeER được đề xuất bởi H Gregersen và C S
Trang 14Jensen (2000), phát triển dựa vào mô hình EER, cho phép hỗ trợ khá đầy đủ các yếu tố thời gian so với các mô hình khác
LT vào sau tên tập thực thể tương ứng
1.2.2 Thuộc tính
Khác với mô hình quan hệ, mô hình TimeER hỗ trợ cả thuộc tính đa trị
và phức hợp Thuộc tính đơn trị được biểu diễn bởi hình oval nét đơn, thuộc tính đa trị biểu diễn bởi hình oval nét đôi, thuộc tính phức hợp biểu diễn bởi hình oval có các cung nối đến các thuộc tính thành phần của nó
Nếu thuộc tính có hỗ trợ thời gian hợp lệ, hoặc thời gian giao tác, hoặc
cả hai, thì thêm ký hiệu VT, TT, hoặc BT ở bên phải thuộc tính đó Nếu thuộc tính phức hợp có hỗ trợ yếu tố thời gian gì thì các thuộc tính thành phần của
nó cũng được hỗ trợ thời gian đó Các tập thực thể có hỗ trợ yếu tố thời gian hoặc phi thời gian đều có thể có các thuộc tính có yếu tố thời gian và phi thời gian
Thuộc tính phi thời gian là thuộc tính mà giá trị của nó không thay đổi theo thời gian, thuộc tính có yếu tố thời gian là thuộc tính mà giá trị của nó có thể thay đổi theo thời gian Ví dụ ngày sinh, ngày mất,… của một người là các thuộc tính phi thời gian; lương, chức vụ của một nhân viên là các thuộc tính có yếu tố thời gian
Trang 151.2.3 Khóa của tập thực thể
Khóa của tập thực thể là tập vừa đủ các thuộc tính dùng để phân biệt các thực thể trong một tập thực thể với nhau Tên của thuộc tính khóa đƣợc gạch chân Các thuộc tính khóa có thể đƣợc hỗ trợ thời gian hoặc không
1.2.4 Mối quan hệ
Một mối quan hệ giữa các tập thực thể đƣợc biểu diễn bởi hình thoi, bao gồm mối quan hệ có yếu tố thời gian và mối quan hệ phi thời gian Mối quan hệ cũng có thể có thuộc tính giống nhƣ tập thực thể Nếu mối quan hệ đƣợc xem nhƣ một thuộc tính của thực thể tham gia thì nó có thể hỗ trợ thời gian hợp lệ (VT) hoặc thời gian giao tác (TT) hoặc cả hai loại thời gian (BT), nếu mối quan hệ đƣợc xem nhƣ là một tập thực thể thì nó hỗ trợ thời gian sống (LS) hoặc thời gian giao tác (TT) hoặc cả hai loại thời gian (LT)
1.2.5 Mối quan hệ kế thừa
Trong mô hình TimeER, một lớp con ngoài việc kế thừa tất cả các thuộc tính thì nó còn kế thừa các hỗ trợ về thời gian từ lớp cha của nó Vì vậy,
ta quy ƣớc rằng ký hiệu hỗ trợ yếu tố thời gian chỉ cần nêu trong lớp cha Ngoài ra nó còn có thể bổ sung thêm yếu tố thời gian cho các thuộc tính riêng của nó
Trang 16Hình 1.1 Một ví dụ về mô hình TimeER
Trong mô hình trên, bao gồm các tập thực thể sau:
- SINHVIEN: tập thực thể này có hỗ trợ thời gian LS, có các thuộc tính sau:
MSSV: mã số sinh viên (khóa chính)
NCT: nơi cƣ trú có hỗ trợ thời gian VT
SDT: số điện thoại có hỗ trợ thời gian TT
NgNgu: Ngoại ngữ là thuộc tính phức hợp có hỗ trợ thời gian BT, gồm hai thuộc tính đơn: TenNN (tên ngoại ngữ), TrinhDO (trình độ)
(1,n)
(1,1)
Trang 17- LOP: có các thuộc tính sau:
- NGUOIBH: tập người bảo hộ của sinh viên, là tập thực thể yếu của tập thực
thể SINHVIEN, có hỗ trợ thời gian LT, có các thuộc tính HoTen (Họ tên người bảo hộ)
Trong mô hình TimeER này còn có các mối quan hệ sau:
- HocTai: Thể hiện ngữ nghĩa sinh viên (SINHVIEN) học tại lớp (LOP), hỗ trợ
Trang 18CHƯƠNG 2 MÔ HÌNH ĐỐI TƯỢNG ODMG 2.1 Mô hình cơ sở dữ liệu hướng đối tượng
Trong số các mô hình dữ liệu hiện nay, mô hình dữ liệu hướng đối tượng là mô hình đảm bảo tính mềm dẽo và linh hoạt của hệ thống Mặc dù chưa có chuẩn nào được công nhận, nhưng mô hình này vẫn tồn tại một tập khái niệm nền tảng
2.1.1 Lớp và đối tượng
Đối tượng là một thực thể trong thế giới thực bao gồm các trạng thái và hành vi liên quan Mỗi đối tượng có một định danh duy nhất cho phép tham chiếu đến nó Định danh này bất biến trong suốt chu trình sống của đối tượng Một đối tượng lưu trữ trạng thái của nó trong các trường (thuộc tính) và thể hiện các hành vi của mình ra bên ngoài thông qua các phương thức
Thuộc tính miêu tả trạng thái của đối tượng Mỗi thuộc tính có thể là thuộc tính đơn trị hoặc thuộc tính đa trị Ngoài ra, một thuộc tính có thể là thuộc tính phức hợp - là thuộc tính được xác định từ tập các thuộc tính khác
Phương thức mô tả các hành vi liên kết với một đối tượng Chúng miêu
tả các hành động có thể được thực hiện bởi đối tượng đó Các hành vi của một đối tượng chỉ có thể truy cập thông qua việc sử dụng các phương thức đã được khai báo này
Lớp bao gồm tập các đối tượng có cùng cấu trúc và hành vi Mỗi đối tượng là một thể hiện của một lớp Một mối quan hệ giữa các lớp đối tượng cũng có thể xem như một thuộc tính của các lớp đối tượng này - thuộc tính mối quan hệ
Ví dụ khai báo lớp:
struct Diachi
Trang 19attribute string Ten ;
attribute Diachi DiaChiNha;
relationship Person chongvo inverse Person:: chongvo;
void dichuyen (in string diachimoi);
};
2.1.2 Tính đóng gói
Một trong những tính chất quan trọng của hệ thống hướng đối tượng đó
là tính đóng gói Các thuộc tính và các phương thức được gộp vào trong một cấu trúc lớp cho phép quản lí truy cập Không thể thao tác trực tiếp trên giá trị của đối tượng, chỉ có thể thao tác thông qua các phương thức được cho phép Một đối tượng có thể trao đổi với các đối tượng khác bằng cách gửi và nhận thông điệp Các phương thức được cung cấp bởi các đối tượng sẽ xác định một tập thông điệp cần trao đổi với nhau
2.1.3 Tính kế thừa
Những lớp mới có thể mở rộng, kế thừa những lớp khác có sẵn class) Ngoài những thuộc tính, phương thức được kế thừa, ta có thể bổ sung thêm những thuộc tính, phương thức mới trong lớp con (subclass) Kế thừa
Trang 20(super-của mô hình dữ liệu hướng đối tượng tạo thuận lợi trong việc tái sử dụng các thuộc tính và các phương thức của lớp cha trong các lớp con
Một lớp kế thừa các thuộc tính và phương thức từ chỉ một lớp cha được gọi là kế thừa đơn, ngược lại một lớp kế thừa các thuộc tính và phương thức
từ nhiều hơn một lớp được gọi là kế thừa bội
2.2 Mô hình đối tượng ODMG
Sự phát triển mạnh mẽ của các ngôn ngữ lập trình hướng đối tượng đã tạo môi trường tốt để nhiều hệ cơ sở dữ liệu hướng đối tượng được nghiên cứu và xuất hiện: Itasca, Gemstone, Iris, O2, Encore,… Nhóm quản trị cơ sở
dữ liệu đối tượng Object Database Management Group đã phát triển chuẩn cơ
sở dữ liệu đối tượng ODMG 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ệ quản trị CSDL đối tượng khác nhau
Trong phần này tôi sẽ trình bày về mô hình dữ liệu đối tượng ODMG 3.0 và ngôn ngữ đặc tả đối tượng [5]
2.2.1 Mô hình dữ liệu đối tượng ODMG 3.0
Phiên bản mới nhất cho đến nay của ODMG là ODMG 3.0 Nó được xây dựng dựa trên những chuẩn CSDL đối tượng và ngôn ngữ lập trình đối
tượng đã tồn tại (OMG, SQL-92, INCITS,…)
2.2.1.1 Kiểu
Để định nghĩa kiểu người ta xem xét trên hai khía cạnh đó là một đặc tả
hình thức (Specifications) và một thể hiện (Implementations) Đặc tả hình
thức xác định đặc điểm bên ngoài của kiểu, nó nhấn mạnh tính trừu tượng; thể hiện xác định những khía cạnh bên trong của kiểu, chứa đựng bí mật của các hành vi
Trang 21interface Professor : Employee { };
interface Associate_Professor : Professor { };
Trong ví dụ trên thì Associate_Professor là kiểu con của Professor; Professor là kiểu con của Employee Một thể hiện của kiểu con cũng là một thể hiện logic của kiểu cha Như vậy, một thể hiện Associate_Professor cũng
là thể hiện logic của một thể hiện Professor
Ngoài mối quan hệ ISA là định nghĩa kế thừa hành vi giữa những kiểu đối tượng, mô hình đối tượng ODMG còn định nghĩa thêm một mối quan hệ EXTENDS cho cả kế thừa trạng thái và hành vi Mối quan hệ EXTENDS cũng chỉ áp dụng vào những kiểu đối tượng; vì vậy chỉ những lớp có thể kế thừa trạng thái còn những literal thì không Mối quan hệ EXTENDS là một mối quan hệ kế thừa đơn giữa hai lớp thông qua mối quan hệ này lớp cấp dưới
kế thừa tất cả những thuộc tính và tất cả những hành vi của lớp mà nó mở rộng
Ví dụ
class Person
{
attribute string name;
attribute Date birthDate;
Trang 22};
// Dấu hai chấm sau đây biểu thị mối quan hệ ISA;
//extends biểu thị mối quan hệ EXTENDS
class EmployeePerson extends Person : Employee
{
attribute Date hireDate;
attribute Currency payRate;
relationship Manager boss inverse Manager::subordinates;
Miền
Miền của một kiểu là tập tất cả những thể hiện của kiểu trong một ODMS Nếu một đối tƣợng là một thể hiện của kiểu A, thì nó là thành viên của miền của A Nếu kiểu A là một kiểu con của kiểu B thì miền của A là tập con của miền của B
Trang 23Khóa
Các thể hiện khác nhau của một kiểu có thể phân biệt thông qua giá trị của tập thuộc tính nào đó được gọi là khoá Một khoá đơn bao gồm một thuộc tính đơn Một khoá hỗn hợp gồm có một tập những thuộc tính
2.2.1.2 Đối tượng
Trong mục này ta xem xét một số khía cạnh của đối tượng như: tạo đối tượng, định danh đối tượng, tên của đối tượng, thời gian sống và cấu trúc đối tượng
Tên đối tượng
Ngoài việc được gán một định danh, một đối tượng có thể được nhận một hoặc nhiều tên do người lập trình hoặc người sử dụng đầu cuối đặt ODMS cung cấp một hàm để ánh xạ từ tên một đối tượng sang một đối tượng Trình ứng dụng có thể tham chiếu đến đối tượng thông qua tên; ODMS áp
Trang 24dụng hàm này để xác định định danh của đối tượng mong muốn Phạm vi của tên được quy định bởi một ODMS
Thời gian sống của đối tượng
Thời gian sống của đối tượng được xác định khi đối tượng được tạo ra
Có hai loại thời gian sống của đối tượng được hỗ trợ trong mô hình đối tượng
đó là thời gian sống tức thời và thời gian sống bền vững Một đối tượng có thời gian sống tức thời được tạo và cấp phát bộ nhớ lưu trữ bởi một thủ tục và
bộ nhớ này được giải phóng ngay sau khi thủ tục thực hiện hoàn thành Một đối tượng có thời gian sống bền vững được tạo ra và cấp phát bộ nhớ bởi một thủ tục hoặc một tiến trình trong ODMS và đối tượng này vẫn tiếp tục tồn tại sau khi thủ tục hoặc tiến trình kết thúc
Cấu trúc đối tượng
Đối tượng có thể là đối tượng kiểu nguyên tử, đối tượng kiểu tập hoặc đối tượng kiểu cấu trúc
Đối tượng kiểu nguyên tử được định nghĩa bởi người sử dụng Không
có đối tượng kiểu nguyên tử được xây dựng sẵn trong mô hình ODMG
Trong mô hình đối tượng ODMG, thể hiện của những đối kiểu tượng tập bao gồm những phần tử xác định Tất cả các phần tử trong một kiểu tập phải cùng một kiểu Những kiểu tập được hỗ trợ trong mô hình đối tượng ODMG bao gồm:
Set<t> : Không kể thứ tự, không lặp, không cố định số phần tử
Bag<t>: Không kể thứ tự, có lặp, không cố định số phần tử
List<t>: Có kể thứ tự, có lặp, không cố định số phần tử
Array<t>: Có kể thứ tự, có lặp, cố định số phần tử tối đa
Trang 25 Dictionary<t, v>: Mỗi phần tử là một cặp (khoá, giá trị), trong đó không kể thứ tự của những khoá Những giá trị trong các cặp có thể trùng nhau
Mô hình đối tượng ODMG định nghĩa những đối tượng có những cấu trúc sau: Date, Interval, Time và TimeStamp
2.2.1.3 Literal
Những literal không có định danh và không đứng một mình như những đối tượng; chúng được nhúng vào trong những đối tượng và không thể tham chiếu độc lập Mô hình đối tượng hỗ trợ những kiểu literal sau:
- Literal nguyên tử (atomic): Chẳng hạn như những số và những ký tự
Mô hình ODMG hỗ trợ những kiểu literal nguyên tử sau: long, long long, short, unsigned long, unsigned short, float, double, boolean, octet, char , string, enum
- Literal tập (collection): Mô hình đối tượng ODMG hỗ trợ những kiểu sau: set<t>, bag<t>, list<t>, array<t>, dictionary<t,v> Những kiểu tập hợp này tương tự với những kiểu của những đối tượng tập, nhưng những tập này không có định danh đối tượng Những phần tử trong các tập này có thể là kiểu literal hoặc kiểu đối tượng
- Literal cấu trúc (structured): Literal cấu trúc bao gồm một số thành phần, mỗi thành phần có một tên biến và có thể lưu trữ một giá trị literal hoặc một đối tượng Một phần tử của một cấu trúc được tham chiếu đến bởi tên biến Ví dụ:
struct Diachi
{
string Duong;
Trang 26string TPho;
string SoDT;
}
Ta có thể thực hiện gán như sau: Diachi.SoDT = “0913333444”, Diachi.Tpho
= “Tp Vinh” Ngoài ra những kiểu cấu trúc do người dùng định nghĩa, những kiểu cấu trúc được hỗ trợ bởi mô hình ODMG đều liên quan đến yếu tố thời gian, bao gồm: date, interval, time, timestamp
2.2.1.4 Biểu diễn trạng thái của đối tượng bằng các thuộc tính
Một lớp định nghĩa một tập thuộc tính thông qua đó người sử dụng có thể truy cập Mô hình ODMG định nghĩa hai kiểu thuộc tính đó là thuộc tính thông thường và thuộc tính mối quan hệ Một thuộc tính thông thường là một kiểu Một thuộc tính mối quan hệ được định nghĩa giữa hai kiểu, mỗi kiểu trong hai kiểu đó phải có thể hiện được tham chiếu bởi định danh đối tượng Như vậy, những kiểu literal không có định danh đối tượng nên không thể tham gia vào thuộc tính mối quan hệ
Thuộc tính thông thường
Mỗi thuộc tính thông thường của lớp chứa một giá trị Giá trị đó có thể
là literal hoặc là đối tượng Ví dụ, Lớp Person có những khai báo thuộc tính
kèm theo
class Nguoi
{
attribute short age;
attribute string name;
attribute enum gender {male, female};
attribute Address home_address;
Trang 27attribute set <Phone_no> phonei;
attribute Department dept;};
Mối quan hệ
Mô hình đối tƣợng ODMG chỉ hỗ trợ mối quan hệ nhị nguyên mà không hỗ trợ mối quan hệ đa nguyên Một mối quan hệ nhị nguyên có thể là mối quan hệ một - một, một - nhiều, hoặc nhiều - nhiều, phụ thuộc vào số thể hiện của mỗi kiểu tham gia trong mối quan hệ
Trang 282.2.1.5 Biểu diễn hành vi của đối tượng bằng các phương thức
Trong một lớp, ngoài tập thuộc tính còn có các phương thức Phương thức biểu diễn hành vi của đối tượng Mỗi phương thức xác định tên của phương thức, tên và kiểu của mỗi tham số trong phương thức đó, kiểu của giá trị trả về và tên của các ngoại lệ (lỗi điều kiện)
Một phương thức chỉ được định nghĩa trên một kiểu Một tên phương thức chỉ duy nhất trong một định nghĩa kiểu Như vậy, những kiểu khác nhau có thể có những phương thức được định nghĩa cùng tên Tên của những phương thức này được xem như tái nạp Khi một phương thức được yêu cầu sử dụng tên tái nạp, một phương thức cụ thể có thể được chọn để thực hiện Việc lựa chọn
này, có thể được gọi là giải quyết theo tên phương thức hoặc điều phối phương thức dựa trên kiểu đặc trưng nhất của đối tượng được cung cấp, như tham số đầu
tiên của lời gọi phương thức
ODMG có một số lý do khác nhau cho việc lựa chọn để chấp nhận mô hình kế thừa đơn hơn là mô hình kế thừa bội Lý do chính là để nhất quán với những ngôn ngữ lập trình C++, Smalltalk và Java Một phương thức có thể có những hiệu ứng phụ Một số phương thức có thể không trả lại giá trị
2.2.1.6 Siêu dữ liệu
Siêu dữ liệu là thông tin miêu tả về những đối tượng có thời gian sống bền vững, chúng định nghĩa những lược đồ của một ODMS Siêu dữ liệu được sử dụng bởi ODMS để định nghĩa cấu trúc lưu trữ đối tượng, khi thực hiện ứng dụng chúng dẫn nhập đến những đối tượng bền vững trong ODMS Siêu dữ liệu được lưu trữ trong một vùng nhớ lược đồ ODL (ODL Schema Repository) Chúng cũng có thể tiếp cận đến những công cụ và những ứng dụng bằng cách sử dụng cùng những phương thức kiểu người dùng định nghĩa
Trang 292.2.2 Ngôn ngữ đặc tả đối tượng
Ngôn ngữ đặc tả đối tượng là ngôn ngữ được sử dụng để miêu tả những
hệ quản trị CSDL hướng đối tượng thoả mãn ODMG Có hai ngôn ngữ đặc tả: ngôn ngữ định nghĩa đối tượng (ODL) và ngôn ngữ định dạng chuyển đổi đối tượng (OIF)
2.2.2.1 Ngôn ngữ định nghĩa đối tượng
Ngôn ngữ định nghĩa đối tượng được sử dụng để định nghĩa đặc tả kiểu đối tượng theo mô hình ODMG ODL hỗ trợ tất cả cấu trúc ngữ nghĩa của mô hình ODMG Ngôn ngữ này không phải là ngôn ngữ lập trình đầy đủ nhưng là ngôn ngữ định nghĩa cho phép đặc tả đối tượng và nó độc lập với ngôn ngữ lập trình ODL thích hợp với ngôn ngữ định nghĩa giao diện của OMG Đây
là ngôn ngữ đặc tả kiểu, bao gồm những thuộc tính và phương thức Tuy nhiên, chúng chỉ định nghĩa những giao diện của các phương thức mà không định nghĩa nội dung chi tiết các phương thức này
Ví dụ Xét khai báo các lớp trong ngôn ngữ đặc tả đối tượng như sau:
Class Person (extent People)
{
attribute string Ten
attribute struct Diachi { unsigned short sonha, string Duong,
string TenTpho} diachi;
relationship Person chongvo inverse Person:: chongvo;
relationship set<Person> concai inverse Person :: bome;
relationship list<Person> bome inverse Person :: concai;
void sinhcon (in string ten);