Các ràng buộc ngôn ngữ của OODB

Một phần của tài liệu Bài giảng cơ sở dữ liệu nâng cao (Trang 105 - 107)

- Các khái niệm về Lịch biểu trong giao dịch phân tán (Schedule)

6. Quan hệ hiện thực hoá

5.3.8. Các ràng buộc ngôn ngữ của OODB

OQL có thể được nhúng vào chương trình của những ngôn ngữ lập trình khác như Java, C++ hoặc Smalltalk, thông qua ràng buộc ngôn ngữ (language bindings). Các câu truy vấn có thể triệu gọi các phương thức được viết bằng những ngôn ngữ đó. Những ràng buộc ngôn ngữ Java,

C++ và Smalltalk của chuẩn ODMG để định nghĩa ngôn ngữ thao tác dữ liệu OML (Object

Manipulation Languages), mở rộng ngôn ngữ lập trình để hỗ trợ lưu trữ đối tượng bền vững. OML cho phép người phát triển chương trình ứng dụng làm việc trong cùng một môi trường của ngôn ngữ lập trình và không cần phải tách riêng ngôn ngữ CSDL [18].

1. Ràng buộc ngôn ngữ C++: Ràng buộc ngôn ngữ C++ của ODMG đảm bảo sự mở rộng là trong suốt với ngôn ngữ lập trình trong việc tạo lập, đặt tên, thao tác và loại bỏ, hay các giao dịch, thao tác trong CSDL. Nó cho phép các lớp được thiết lập theo quan hệ kế thừa. OQL và OML có thể chuyển đổi qua lại, một câu truy vấn OQL có thể gọi OML và ngược lại.

2. Ràng buộc ngôn Java: Ràng buộc ngôn ngữ Java của ODMG là sử dụng phong cách lập trình tự nhiên và mang nhiều ý nghĩa thực tiễn của Java. Đối tượng của các lớp có thể được đảm bảo bền vững mà không cần thay đổi chương trình nguồn. Sự bền vững đạt được khi một giao dịch trong CSDL được uỷ thác thực hiện, đối tượng đi đến được từ đối tượng gốc (root object) trong CSDL được bảo đảm bền vững trong CSDL. Ràng buộc ngôn ngữ Java của ODMG để bổ sung thêm các lớp Java và những cấu trúc khác vào môi trường Java, hỗ trợ mô hình đối tượng của ODMG, bao gồm các cấu trúc sưu tập, các giao dịch và CSDL, mà không làm thay đổi ngữ nghĩa của ngôn ngữ.

3. Ràng buộc ngôn Smalltalk: Ràng buộc ngôn Smalltalk của ODMG nhằm cung cấp những khả năng lưu trữ, tìm kiếm và sửa đổi các đối tượng bền vững của Smalltalk. Ràng buộc ngôn ngữ Smalltalk nhằm đưa ra một cơ chế để triệu gọi các thủ tục của OQL trong các giao dịch, thao tác ở CSDL. Giốngnhư ràng buộc ngôn ngữ Java, các đối tượng Smalltalk được đảm bảo bền vững khii đi đến được trong các biểu thức đường dẫn. Ràng buộc ngôn ngữ Smalltalk ánh xạ trực tiếp các lớp được định nghĩa trong mô hình đối tượng ODMG sang mô hình lớp của Smalltalk. Những lớp sưu tập và các thao tác của mô hình đối tượng được ánh xạ thành các lớp sưu tập và các phương thức. Các mối quan hệ, giao dịch và các thao tác trong CSDL được ánh xạ sang các cấu trúc (constructs) trong Smalltalk.

Bài giảng “Cơ sở dữ liệu nâng cao” | nvdinh@vnua.edu.vn 105

5.3.9. Lược đồ suy dẫn kiểu trongngôn ngữ truy vấn OQL

Hệ thống các kiểu dữ liệu nguyên thuỷ và các kiểu dữ liệu suy dẫn gắn với phân cấp kiểu được giới thiệu trong hình 3-2. Trên cây phân cấp, ta nhận thấy rằng các kiểu tổng quát là các nút nằm ở nút nhánh trên cây, các kiểu này sẽ không được sử dụng trong các lược đồ CSDL (khai báo hình thức). Kiểu được gọi là kiểu đặc trưng, nếu nó được suy dẫn từ các kiểu cơ sở. Tất cả các nút lá trong hình 3-2 là các kiểu đặc trưng.

Siêu kiểu any

Kiểu phi thủ tục Kiểu hàm

Kiểu nguyên thuỷ Kiểu cấu trúc Kiểu sưu tập

boolean Kiểu có thứ tự class struct set/bag list/array

string int/float char

int float

set bag list array

Hình 5.5:Sự phân cấp các kiểu trong OQL

5.3.10. Truy vấn select … from … where

Cú pháp của khối lệnh trọng tâm selecttrong OQL được qui định như sau:

select [distinct] <Danh sách kết quả>

from <Danh sách lớp/sưu tập lớp>

where <Biểu thức điều kiện>

[group by <Các thuộc tính phân nhóm>] [having <Điều kiện lọc>]

[order by (<Khoá sắp xếp> asc|desc, …)]

Trong đó, từ khoá distinct nếu sử dụng thì kết quả của truy vấn có kiểu tập đối tượng phân biệt. Mệnh đề group by phân nhóm trên lớp sưu tập, các đối tượng được nhóm theo giá trị của các thuộc tính phân nhóm. Mỗi cấu trúc của nhóm chứa một nhóm các thuộc tính và nhóm các đối tượng có cùng giá trị. Mệnh đề order by sắpthứ tự các đối tượng trong lớp sưu tập kết quả.

Sử dụng lược đồ CSDL VienDH được biểu diễn trong hình 3-3 minh hoạ cho các Thí dụvề các dạng thức biểu diễn của truy vấn OQL:

Bài giảng “Cơ sở dữ liệu nâng cao” | nvdinh@vnua.edu.vn 106

+maso : string +hoten : string +tuoi : string Nguoi +hocvi : string +DaiHoc : DaiHoc +luong : float +so_thich : string +gv_hd : SinhVienTN Khoa +KhoaHoc : KhoaHoc +dtb : float +DaiHoc : DaiHoc SinhVien +luanvan : string +gvhd : Khoa SinhVienTN +so_nam : int SVChuaTN +ten_nganh : string +van_phong : string +truong_khoa : Khoa DaiHoc +ten_khoa_hoc : string +so_hieu_kh : string +DaiHoc : DaiHoc KhoaHoc

Hình 5.6:Biểu diễn lược đồ VienDH trong UML

Một phần của tài liệu Bài giảng cơ sở dữ liệu nâng cao (Trang 105 - 107)