Nội dung trình bàyĐặt vấn đề Mô hình AS Tiếp cận ngôn ngữ lập trình Kết luận... Đặt vấn đềLàm sao xây dựng mô hình hướng đối tượng và mô hình truy vấn hướng đối tượng cho phép tương tác
Trang 1Sự chuẩn hóa cơ sở dữ liệu
đối tượng thế hệ mới
Next-Generation Object Database Standardization [2007]
GVHD: PGS TS Đồng Thị Bích Thủy HVTH: Nguyễn Bá Quang Lâm 1212019
Trang 2Nội dung trình bày
Đặt vấn đề
Mô hình AS
Tiếp cận ngôn ngữ lập trình Kết luận
Trang 3Đặt vấn đề
• Sau khi giải thể Object Data Management Group (ODMG) vào năm 2001, những nỗ lực tiêu chuẩn hóa cho cơ sở dữ liệu đối tượng gần như kết thúc.
• Trong năm 2005, OMG’s Object Database Technology Working Group được thành lập như là sự kế thừa cho các ODMG.
Trang 4Đặt vấn đề
• OMG mua lại quyền sở hữu trí tuệ của ODMG
và ODBTWG tiến hành một cuộc khảo sát của các nhà cung cấp cơ sở dữ liệu đối tượng trên các lĩnh vực quan tâm về tiêu chuẩn hóa
• ODBTWG đề ra 3 cách có thể để có thể chuẩn hóa
Trang 5Đặt vấn đề
1 Xây dựng một nền tảng lý thuyết cho các cơ
sở dữ liệu đối tượng và cơ bản của tất cả các tiêu chuẩn trên đó
2 Nhanh chóng đưa ra một tiêu chuẩn trên một
công nghệ trung lập giống tiêu chuẩn XML
3 Nhanh chóng phát triển một tiêu chuẩn cho
C# / ngôn ngữ lập trình NET
Trang 6Đặt vấn đề
Làm sao xây dựng mô hình hướng đối tượng và mô hình truy vấn hướng đối tượng cho phép tương tác với các ứng dụng được xây dựng bởi các ngôn ngữ lập trình hướng đối tượng?
Trang 7Nội dung trình bày
Đặt vấn đề
Mô hình AS
Tiếp cận ngôn ngữ lập trình Kết luận
Trang 8Mô hình AS (Abstract Store)
Mô hình AS0 (Abstract Store 0)
Mô hình AS1 (Abstract Store 1)
Mô hình AS2 (Abstract Store 2)
Trang 9Mô hình AS (Abstract Store)
Mô hình AS0 (Abstract Store 0)
Tất cả mọi thứ là đối tượng và đối tượng quyết định một giá trị duy nhất.
Đối tượng có 3 thành phần
Id: Mỗi đối tượng có một id phân biệt
Name: Tên đối tượng
Giá trị:
+Đơn: Chuỗi, số,…
+Id của đối tượng khác +Tập hợp các đối tượng {dt1,dt2,….dtn}
Trang 10Mô hình AS (Abstract Store)
Mô hình AS0 (Abstract Store 0)
1 đối tượng có thể biểu diễn dưới 3 hình thức:
Atomic object <i,n,v> (Đối tượng nguyên tố)
- i2: id của đối tượng tham chiếu đến
Aggregation object <i,n,T> (Đối tượng tập hợp)
- i: id
- n: tên
- T: tập hợp các đối tượng
Trang 11Mô hình AS (Abstract Store)
Mô hình AS0 (Abstract Store 0)
Ví dụ đối tượng có thể biểu diễn dưới 3 hình thức:
Atomic object: <i,n,v>
< i ,n, v >
• i : id của đối tượng
• v : Giá trị đơn
Ví dụ
• < i1 , hoten , “An” >
• < i2 , namsinh , 2000 >
Trang 12Mô hình AS (Abstract Store)
Mô hình AS0 (Abstract Store 0)
Ví dụ đối tượng có thể biểu diễn dưới 3 hình thức:
Pointer (rerference) object: <i1,n,i2>
< i1 , n , i2 >
chiếu đến
Ví dụ
• < i1 , dangky , id2 >
Trang 13Mô hình AS (Abstract Store)
Mô hình AS0 (Abstract Store 0)
Ví dụ đối tượng có thể biểu diễn dưới 3 hình thức:
Aggregation object: <i,n,T>
< i , n , t >
• i : id của đối tượng
• n : tên đối tượng
• t : tập hợp các đối tượng
Ví dụ
< id1 , hocsinh , {<id2,hoten,“An” > ,
<id3,namsinh,2000> } >
Trang 14Mô hình AS (Abstract Store)
Mô hình AS0 (Abstract Store 0)
<S, R>
S: tập hợp các đối tượng
R: tập các id của đối tượng “root”
(là đầu vào cho các ứng dụng bên ngoài để có thể truy xuất các đối tượng khác trong mô hình)
Trang 15Mô hình AS (Abstract Store)
Trang 16Mô hình AS0 (Abstract Store 0)
Để truy vấn các nội dung của một lưu trữ AS0, ngôn ngữ truy vấn chúng ta sẽ sử dụng là Abstract Object Query Language (AOQL)
Các quy tắc cú pháp cho AOQL cho một lưu trữ AS0 như sau:
Trang 17Mô hình AS (Abstract Store)
Trang 19Mô hình AS0 (Abstract Store 0)
Ví dụ: một báo cáo với tên của từng phòng và tổng lương của nhân viên
mà không phải là chủ.
Trang 20Mô hình AS (Abstract Store)
"deptemp" là một tên dùng để lưu trữ dữ liệu XML của AS0.deptemp"deptemp" là một tên dùng để lưu trữ dữ liệu XML của AS0 là một tên dùng để lưu trữ dữ liệu XML của AS0.
Một đối tượng department (đổi tên thành "deptemp" là một tên dùng để lưu trữ dữ liệu XML của AS0.d"deptemp" là một tên dùng để lưu trữ dữ liệu XML của AS0.) với tổng giá trị salary của nhân viên trong phòng trừ đi salary của boss, tổng số này được đổi tên thành “s”
Truy vấn sau đó trả về một cặp có chứa tên phòng và tổng số “s”.
Trang 21Mô hình AS (Abstract Store)
Mô hình AS1 (Abstract Store 1)
CC: Định nghĩa sự kế thừa của các đối tượng
SC: Định nghĩa các class thành viên
Trang 22Mô hình AS (Abstract Store)
Mô hình AS1 (Abstract Store 1)
S={< i 1 , Person, {< i 2, name, ”Doe”>, } >,
< i 5 , Emp, { < i 6, name, ”Poe”>,
C= { < i 40 , PersonClass, {< i 41 , age, ( the code of the method age } >,
< i 50 , EmpClass, { < i 51 , changeSal, ( the code of the method changeSal )>, } >
}
R={i 1 , i 5 , i 9}
CC={< i 50 , i 40>}
SC={< i 1 , i 40 >, < i 5 , i 50 >, < i 9 , i 50>}
Trang 23Mô hình AS (Abstract Store)
Mô hình AS2 (Abstract Store 2)
Thừa kế tĩnh đôi khi không đủ để mô hình hóa các tình huống trong thế giới thực.
Ví dụ: Một đối tượng thuộc lớp Person có việc làm sẽ có vai trò của một đối tượng thuộc lớp Employee!!!
Trang 24Mô hình AS (Abstract Store)
Mô hình AS2 (Abstract Store 2)
Khi một đối tượng Person đòi hỏi vai trò của Employees, các đối tượng Employee có thể được tạo ra và được liên kết với đối tượng Person khi cần thiết và sẽ bị phá hủy khi Person không còn hoạt động trong vai trò đó
Mô hình lưu trữ AS2 bao gồm các tính năng thừa
kế tĩnh của AS1 cộng với tính năng thừa kế động
Trang 25Mô hình AS (Abstract Store)
Mô hình AS2 (Abstract Store 2)
AS2: <S,C,R,CC,SC, SS>
S, C, R, CC và SC theo định nghĩa của AS1
SS: biểu diễn sự kế thừa động (roles) giữa các
đối tượng
Trang 26Mô hình AS (Abstract Store)
Trang 28Mô hình AS2 (Abstract Store 2)
Cú pháp ngôn ngữ truy vấn trừu tượng (AOQL) thêm 2 quy định mới để hỗ trợ các lưu trữ AS2
Trang 29Nội dung trình bày
Đặt vấn đề
Mô hình AS
Tiếp cận ngôn ngữ lập trình Kết luận
Trang 30Tiếp cận ngôn ngữ lập trình
Ánh xạ cú pháp AOQL sang NNLT HĐT?
Trang 31Tiếp cận ngôn ngữ lập trình
Tập trung vào ánh xạ từ AOQL vào Ruby
Ngôn ngữ giải thích của cả hai hướng đối tượng
và khái niệm lập trình chức năng
Ruby đã được lựa chọn vì phổ biến, rõ ràng, và
cú pháp ngắn gọn
Trang 32Tiếp cận ngôn ngữ lập trình
Trang 35Nội dung trình bày
Đặt vấn đề
Mô hình AS
Tiếp cận ngôn ngữ lập trình Kết luận
Trang 36Kết luận
Các định nghĩa chính xác và đầy đủ của các lưu trữ AOQL giáo sư Subieta cho phép nhóm tác giả xây dựng cơ sở dữ liệu đối tượng với khả năng truy vấn rất mạnh mẽ
Nhóm tác giả vẫn đang làm việc để thay đổi và hoàn thiện cú pháp
Trang 37Kết luận
Trang 38Cảm ơn cô và các bạn
đã chú ý theo dõi!