Hệ thống phân cấp và quan hệ kế thừa

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

- 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.2.2 Hệ thống phân cấp và quan hệ kế thừa

Một lược đồ kiểu dữ liệu hướng đối tượng bao hàm một cấu trúc phân cấp ISA giữa các lớp đối tượng theo quan hệ kế thừa (IS - A). Cấu trúc phân cấp lớp (kiểu) bao gồm 3 thành phần sau: (1) tập các lớp, (2) các kiểu liên quan đến các lớp, (3) đặc điểm của các quan hệ ISA giữa các lớp. Một cách hình thức, cấu trúc phân cấp lớp ISA là một bộ ba (C, ,), trong đó, C là tập hữu hạn tên các lớp,  là ánh xạ từ C vào Types(C),  là thứ tự bộ phận trên tập các lớp C. Thông thường thì quan hệ thứ tự bộ phận có tính phản xạ. Lớp c2 là lớp con của lớp c1 hay nói cách khác lớp c2 kế thừa lớp c1 nếu kiểu của lớp c2 là tinh hơn kiểu của lớp c1, ký hiệu là c2  c1. Chúng ta sử dụng quan hệ kiểu con () để biểu diễn một kiểu là tinh hơn kiểu khác [6].

Định nghĩa 6.2. Cho (C, ,) là một cấu trúc phân cấp lớp, quan hệ kiểu con trên Types(C) là thứ tự bộ phận nhỏ nhất trên Types(C), ký hiệu , thỏa mãn các điều kiện sau:

(i) Nếu c  c’ thì c  c’ (ii) Nếu ' i i    (1 i  n, n  m ) thì bộ ] : ,..., : , : [ ] : ,..., : ..., , : , : [A1 1 A2 2 Ann AmmA1 1' A2 2' Ann' (iii) Nếu  'thì tập {}{'}

Với mọi  ,  any(any là lớp gốc của cây phân cấp)

Thí dụ 6.4. Xét hệ thống các lớp (kiểu) của hệ thống quản lý nhân sự trong trường đại học được mô tả trong hình 2-12.

NhanSu

SinhVien GiangVien

GVBienChe GVThinhGiang

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

 Xét phân cấp lớp (C, ,) của lược đồ kiểu dữ liệu HĐT quản lý nhân sự trong trường đại học như trong hình 2-12, trong đó, Tập các lớp: C = {NhanSu, SinhVien, GiangVien, GVBienChe, GVThinhGiang},

 Quan hệ thứ tự bộ phận giữa các lớp trong C là: SinhVien  NhanSu, GiangVien  NhanSu, GVBienChe  GiangVien, GVThinhGiang  GiangVien

  xác định các kiểu tương ứng của các lớp trong C như sau: (NhanSu) = [hoTen: string, gioiTinh: boolean, diaChi: string]  Types(C)

(SinhVien) = [hoTen: string, gioiTinh: boolean, diaChi: string, khoa: Khoa_type, lop: string]  Types(C)

(GiangVien) = [hoTen: string, gioiTinh: boolean, diaChi: string, hocVi: string, chuyenNganh: Nganh_type, khoa: Khoa_type]  Types(C)

(GiangVien) = [hoTen: string, gioiTinh: boolean, diaChi: string, hocVi: string, chuyenNganh: Nganh_type]  Types(C)

(GVBienChe) = [hoTen: string, gioiTinh: boolean, diaChi: string, hocVi: string, chuyenNganh: Nganh_type, khoa: Khoa_type, namVaoNganh: integer]  Types(C)

(GVThinhGiang) = [hoTen: string, gioiTinh: boolean, diaChi: string, hocVi: string, chuyenNganh: Nganh_type, monDay: {HocPhan_type}]  Types(C)

Một phân cấp lớp (C, ,) được tổ chức tốt nếu với mỗi cặp (c,c')mà '

c c thì ) ( ) (cc'

  . Cấu trúc phân cấp trong Thí dụ 2.1 được tổ chức tốt vì SinhVien  NhanSu và (SinhVien)  (NhanSu), GiangVien  NhanSu và (GiangVien)  (NhanSu), GVBienChe 

GiangVien và (GVBienChe)  (GiangVien), GVThinhGiang  GiangVien và (GVThinhGiang)  (GiangVien).

Định nghĩa 6.3. Cho (C, ,) là một phân cấp lớp, một phép gán định danh là một hàm  ánh xạ mỗi tên lớp c  C vào tập hữu hạn các định danh, được gọi là thể hiện của c, ký hiệu (c), và một thể hiện đầy đủ của c là tập các định danh của lớp cha sẽ chứa các tập định danh của các lớp con của nó, được kýhiệu *(c) và được xác định như sau:

} ' , ' | ) ' ( { ) ( * c   c cC cc  .

Nếu  là một phép gán định danh thì *(c')*(c)khi và chỉ khi c'c. Nghĩa là mọi đối tượng của lớp con c’cũng là đối tượng của lớp cha c, hoàn toàn thỏa mãn hai nguyên lý cơ bản của hệ thống hướng đối tượng là nguyên lý thành viên (is-a) và nguyên lý 100% [6]. Thí dụ, các đối tượng GVBienChe (trong Thí dụ2.2) cũng là đối tượng của lớp GiangVien.

Dựa trên phép gán định danh đối tượng , ngữ nghĩa tập kiểu được định nghĩa trong một phân cấp lớp (C, ,) như sau:

Định nghĩa 6.3. Cho L là tập các kiểu dữ liệu nguyên thủy, C là tập các lớp và tập các đối tượng (xác định thông qua định danh) O{(c)|cC}, (Sup) =  (Sup là một tên lớp đặc biệt – lớp gồctrừu tượng), thể hiện của một kiểu , ký hiệu Ext(), được định nghĩa như sau:

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

(i)    L, Ext() là một sự thể hiện thông thường của kiểu , đó chính là miền giá trị của kiểu nguyên thủy.

(ii) Ext (Sup) = Val(O) tập tất cả các giá trị của các đối tượng trong hệ thống (iii) c  C, Ext(c) = *(c){nil}, nil là gia trị không xác định

(iv) Ext ({}) = {{v1, v2, ..., vn}| n  0, vi  Ext ({}), i  [1, n]}

(v) Ext([A1: 1, A2: 2, .., Ak: k]) = {[A1: v1, A2: v2, ..., Ak: vk] | vi  Ext (i), i  [1, k]} Với qui ước (C) =  {(c) | c  C}, ta có thể dễ dàng chứng minh được định lý.

Định lý 6.1.

 1 , 2  (C), 1 ≤ 2  Ext(1)  Ext(2)

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