BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƢỜ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
BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƢỜ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
2
LỜ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 q 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
3
LỜ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 q 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 hồ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 hồ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
4
MỤ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
5
2.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
6
DANH MỤC CÁC TỪ VIẾT TẮT
TT
Từ viết tắt Cụm từ đầy đủ
1
BT
BiTemporal
2
CSDL
Cơ sở dữ liệu
3
DBMS
Database Management System
4
ER
Entity Relationship
5
EER
Extended - Entity Relationship
6
LS
LifeSpan
7
LT
LifeTran
8
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
13
TT
Transaction Time
14
VT
Valid Time
7
MỞ ĐẦ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.
8
Chí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:
9
Chƣơ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.
10
CHƢƠ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à
11
thuộ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.
MSNV
HoTen
NgaySinh
Luong
VTs
VTe
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
NV001
Trần An
07/01/1980
7.000.000
6/2013
Now
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.
12
NHAN_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 ngồ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
MSSV
LSs
LSe
SV001
9/2004
8/2005
SV001
9/2005
5/2008
SV002
9/2004
8/2005
SV003
9/2012
8/2014
SV004
9/2012
8/2014
SV004
9/2014
6/2016
1.2. Mơ hình TimeER
Đã 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.
13
Jensen (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.
1.2.1. Tập thực thể
Thực thể là một đối tƣợng trong thế giới thực có sự tồn tại độc lập, có
các thuộc tính, đó là các đặc trƣng cụ thể mơ tả thực thể đó.
Tập thực thể thƣờng đƣợc biểu diễn bởi hình chữ nhật. Đối với tập thực
thể yếu, ta sử dụng hình chữ nhật nét đơi. Nếu tập thực thể đó có hỗ trợ thời
gian sống, hoặc thời gian giao tác, hoặc cả hai, thì thêm ký hiệu LS, TT, hoặ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.
14
1.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 ngồ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.
Ngồ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ó.
15
MSSV
NCT VT
TenLop
MaLop
(1,1)
(1,n)
SINHVIEN LS
LOP
HocTai VT
(1,1)
NgNgu BT
SDT TT
ChuNhiem
TenNN
(0,1)
TrinhDo
CoVo/Chong LS
(0,n)
GIAOVIEN
(1,n)
(0,1)
PhuThuoc
(1,1)
NGUOIBH LT
BIENCHE
HOPDONG TT
HoTen
Hì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 độ).
16
- LOP: có các thuộc tính sau:
MaLop: mã lớp (khóa chính).
TenLop: tên lớp.
- GIAOVIEN: có giáo viên biên chế (tập thực thể BIENCHE) và giáo viên
hợp đồng (tập thực thể HOPDONG), tập thực thể HOPDONG có hỗ trợ thời
gian TT.
- 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ợ
thời gian VT.
- ChuNhiem: Thể hiện ngữ nghĩa giáo viên (GIAOVIEN) chủ nhiệm lớp
(LOP).
- CoVo/Chong: Thể hiện ngữ nghĩa giáo viên (GIAOVIEN) có vợ hoặc chồng
cũng là giáo viên.
- PhuThuoc: Thể hiện ngữ nghĩa sinh viên phụ thuộc vào ngƣời bảo hộ
(NGUOIBH).
1.3. Tiểu kết chƣơng 1
Chƣơng này đã giới thiệu về các loại thời gian trong CSDL thời gian,
biểu diễn yếu tố thời gian trong mơ hình CSDL quan hệ và mơ hình TimeER.
Tƣơng tự nhƣ mơ hình ER, mơ hình TimeER cũng có ba thành phần chính là
tập thực thể, mối quan hệ và thuộc tính; ba thành phần này đều có thể hỗ trợ
yếu tố thời gian.
17
CHƢƠ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 ngồ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ị. Ngồ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
18
{
string SoNha;
string Duong;
string TenTpho;
};
Class Person
{
attribute 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 (superclass). Ngồ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
19
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 ngồ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.
20
Kế thừa
Cũng nhƣ nhiều mơ hình đối tƣợng khác, mơ hình đối tƣợng ODMG hỗ
trợ những mối quan hệ kế thừa, là mối quan hệ kiểu cha - kiểu con. Kiểu cha
là kiểu tổng quát hơn; kiểu con là kiểu cụ thể hơn.
Ví dụ
interface Employee {...};
interface 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;
21
};
// 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;
};
class ManagerPerson extends EmployeePerson : Manager
{
relationship set<Employee> subordinates inverse Employee:: boss;
};
Mối quan hệ EXTENDS là mối quan hệ bắc cầu; vì vậy trong ví dụ trên
mỗi ManagerPerson sẽ có một name, birthDate, hireDate, payRate và boss.
Lớp EmployeePerson kế thừa hành vi (ISA) từ Employee, các thể hiện của
EmployeePerson và ManagerPerson sẽ hỗ trợ tất cả hành vi đƣợc định nghĩa
trong giao diện này.
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.
22
Khó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à khố. Một khố đơn bao gồm một thuộc
tính đơn. Một khố 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ạo đối tƣợng
Sử dụng phƣơng thức new để tạo đối tƣợng. Ví dụ
interface ObjectFactory
{
Object
new();
};
Định danh đối tƣợng
Định danh đối tƣợng đƣợc tạo ra bởi ODMS nhằm phân biệt đối tƣợng
này với đối tƣợng khác và giúp tìm kiếm đối tƣơng trong miền lƣu trữ của nó.
Định danh đối tƣợng là duy nhất. Đối tƣợng thể thay đổi các thuộc tính hoặc
các mối quan hệ mà nó tham gia nhƣng khơng thay đổi định danh của nó.
Tên đối tƣợng
Ngồ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
23
dụ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 hồ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 ngun 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.
24
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 khố. 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;