1. Trang chủ
  2. » Giáo án - Bài giảng

bài giảng cơ sở dữ liệu hướng đối tượng

69 833 1

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 69
Dung lượng 264 KB

Nội dung

Nội dung chi tiết Mô hình cơ sở dữ liệu hướng đối tượng - Từ CSDL quan hệ đến CSDL hướng đối tượng - Hệ quản trị cơ sở dữ liệu hướng đối tượng  Ngôn ngữ mô tả và truy vấn CSDL Hướng đố

Trang 1

Chương 8 CSDL HƯỚNG ĐỐI TƯỢNG

Trang 2

Nội dung chi tiết

Mô hình cơ sở dữ liệu hướng đối tượng

- Từ CSDL quan hệ đến CSDL hướng đối tượng

- Hệ quản trị cơ sở dữ liệu hướng đối tượng

Ngôn ngữ mô tả và truy vấn CSDL Hướng đối tượng theo chuẩn ODMG

- Mô hình đối tượng

- Ngôn ngữ khai báo lược đồ: ODL(Object Define Language)

- Ngôn ngữ truy vấn đối tượng: OQL (Object

Trang 3

Mô hình csdl hướng đối tượng

Từ csdl quan hệ đến csdl đối tượng

- Đánh giá csdl quan hệ

- Các loại ứng dụng csdl mới

- Một số hướng giải quyết

Hệ quản trị CSDL hướng đối tượng

- Khái niệm về đối tượng trong CSDL

- Các đặc trưng của một hệ quản trị CSDL đối tượng

- Các sản phẩm của hệ quản trị CSDL đối tượng

Trang 4

Mô hình csdl hướng đối tượng

Từ csdl quan hệ đến csdl đối tượng

- Đánh giá csdl quan hệ

- Các loại ứng dụng csdl mới

- Một số hướng giải quyết

Hệ quản trị CSDL hướng đối tượng

- Khái niệm về đối tượng trong CSDL

- Các đặc trưng của một hệ quản trị CSDL đối tượng

- Các sản phẩm của hệ quản trị CSDL đối tượng

Trang 5

Đánh giá CSDL quan hệ

Ưu điểm

- Nền tảng toán học vững chắc, đã được nghiên cứu sâu, kết quả khả quan

- Có nhiều hqt csdl làm môi trường để phát triển

- Mô hình dữ liệu đơn giản, rõ ràng chính xác

- Phù hợp cho nhiều dạng ứng dụng CSDL, đặc biệt là ứng dụng quản lý

- Ngôn ngữ truy vấn phi thủ tục => tối ưu câu truy vấn

- Đảm bảo tính toàn vẹn dữ liệu

Trang 6

Đánh giá CSDL quan hệ

dưới khái niệm quan hệ giữa hai đối tượng)

- Ngôn ngữ truy vấn không đầy đủ, một số nhà sản xuất Hqt csdl phải xây dựng thêm trình biên dịch riêng của Hqtcsdl, xây dựng giao diện liên kết để tận dụng tính năng của các trình biên dịch(C,Java,

…)

có những thứ không thể biểu diễn bằng thuộc tính

và quan hệ.)

tiến hóa của đối tượng

Trang 7

Mô hình csdl hướng đối tượng

Từ csdl quan hệ đến csdl đối tượng

- Đánh giá csdl quan hệ

- Các loại ứng dụng csdl mới

- Một số hướng giải quyết

Hệ quản trị CSDL hướng đối tượng

- Khái niệm về đối tượng trong CSDL

- Các đặc trưng của một hệ quản trị CSDL đối tượng

- Các sản phẩm của hệ quản trị CSDL đối tượng

Trang 8

Các loại ứng dụng csdl mới

Hệ thống hỗ trợ ra quyết định

Hệ thống thông tin địa lý GIS

Hệ cơ sở dữ liệu thống kê

Hệ thống quản lý dòng công việc

Nhận xét: Các loại ứng dụng csdl trên hiện nay vẫn được xây dựng với hqt csdl quan hệ nhưng rất phức tạp và thường phải bỏ tính đặc thù của ứng dụng.

Trang 9

Mô hình csdl hướng đối tượng

Từ csdl quan hệ đến csdl đối tượng

- Đánh giá csdl quan hệ

- Các loại ứng dụng csdl mới

- Một số hướng giải quyết

Hệ quản trị CSDL hướng đối tượng

- Khái niệm về đối tượng trong CSDL

- Các đặc trưng của một hệ quản trị CSDL đối tượng

- Các sản phẩm của hệ quản trị CSDL đối tượng

Trang 10

Một số hướng giải quyết

Mở rộng mô hình quan hệ (bắt đầu từ thập niên 70)

- 1976: Mô hình thực thể kết hợp

- 1978: SDM(Semantic Data Model)

- 1979-1981: RM/T(Relational Model/Tasmanis)…

Đưa ra mô hình mới

Cách tiếp cận suy dẫn

Cách tiếp cận đối tượng: nguồn gốc chính là là sự kết hợp giữa thành tựu CSDL với ngôn ngữ lập trình hướng đối tượng

Trang 11

Một số hướng giải quyết

Hai chiều hướng nghiên cứu

CSDL NNLT HĐT:

- Cho ra đời CSDL thuần đối tượng: xây dựng các ứng dụng mang tính hệ thống, ví dụ: ứng dụng viễn thông, giám sát hệ thống mạng diện rộng…

Trang 12

Một số hướng giải quyết

Mô hình CSDL đối tượng + Ngôn ngữ truy vấn đối tượng

Quan hệ Mô hình CSDL đối tượng quan hệ

Trang 13

Mô hình csdl hướng đối tượng

Từ csdl quan hệ đến csdl đối tượng

- Đánh giá csdl quan hệ

- Các loại ứng dụng csdl mới

- Một số hướng giải quyết

Hệ quản trị CSDL hướng đối tượng

- Khái niệm về đối tượng trong CSDL

- Các đặc trưng của một hệ quản trị CSDL đối tượng

- Các sản phẩm của hệ quản trị CSDL đối tượng

Trang 14

Mô hình csdl hướng đối tượng

Từ csdl quan hệ đến csdl đối tượng

- Đánh giá csdl quan hệ

- Các loại ứng dụng csdl mới

- Một số hướng giải quyết

Hệ quản trị CSDL hướng đối tượng

- Khái niệm về đối tượng trong CSDL

- Các đặc trưng của một hệ quản trị CSDL đối tượng

- Các sản phẩm của hệ quản trị CSDL đối tượng

Trang 15

Khái niệm về đối tượng trong CSDL

Đối tượng

Dữ liệu Data Structure

Thao tác (phép toán) Method

Trang 16

Khái niệm về đối tượng trong CSDL

NHÂN VIÊN

MASV TÊN NV NTNS

Tạo NV mới Sửa thông tin 1 NV Xóa 1 NV

Tính tuổi Lấy lương NV

….

Trang 17

Khái niệm đối tượng trong CSDL

Trang 18

Khái niệm đối tượng trong CSDL

Quan hệ kết hợp

1:1

m:n 1:n

Extends, Isa

Trang 19

Mô hình csdl hướng đối tượng

Từ csdl quan hệ đến csdl đối tượng

- Đánh giá csdl quan hệ

- Các loại ứng dụng csdl mới

- Một số hướng giải quyết

Hệ quản trị CSDL hướng đối tượng

- Khái niệm về đối tượng trong CSDL

- Các đặc trưng của một hệ quản trị CSDL đối tượng

- Các sản phẩm của hệ quản trị CSDL đối tượng

Trang 20

Các đặc trưng của Hqtcsdl HĐT

Luật vàng: Đây là các luật bắt buộc, bao gồm

- 5 Luật mà mọi hệ quản trị csdl đều có

- 7 luật đặc trưng của hệ quản trị csdl hướng đối tượng

Luật tùy chọn

Luật mở

Trang 21

Các đặc trưng của Hqtcsdl HĐT

Luật vàng

Luật 1: Tồn tại với sự cố

Luật 2: Quản lý đĩa

Luật 3: Ổn định và trung thực

Luật 4: Chia xẻ

Luật 5: Khả năng truy vấn trực tiếp

Luật 6: Đối tượng phức bao bọc những xử lý

Luật 7: Chỉ danh đối tượng(tự động phát sinh)

Trang 22

Các đặc trưng của Hqtcsdl HĐT

Tính đa xạ: liên kết động là một phần của tính đa xạ

cho csdl hướng đối tượng có cơ sở vững chắc giống như csdl quan hệ

Trang 23

Mô hình csdl hướng đối tượng

Từ csdl quan hệ đến csdl đối tượng

- Đánh giá csdl quan hệ

- Các loại ứng dụng csdl mới

- Một số hướng giải quyết

Hệ quản trị CSDL hướng đối tượng

- Khái niệm về đối tượng trong CSDL

- Các đặc trưng của một hệ quản trị CSDL đối tượng

- Các sản phẩm của hệ quản trị CSDL đối tượng

Trang 24

Các sản phẩm của hqtcsdl đối tượng

Các sản phẩm của phòng thí nghiệm rất nhiều, trên 20 sản phẩm

Sản phẩm Hqt csdl đối tượng- quan hệ:

- Sản phẩm của hướng nghiên cứu CSDL

→ NNLT hướng đối tượng

- O2, Gemstone, Ontos, Orion II, Ob Server,

Hệ thuần đối tượng:

- Sản phẩm của hướng nghiên cứu CSDL

← NNLT hướng đối tượng

- Jasmin : của Fujutsu, sau này được Computer Associate (CA) mua lại

Trang 25

Nội dung chi tiết

Mô hình cơ sở dữ liệu hướng đối tượng

Ngôn ngữ mô tả và truy vấn CSDL Hướng đối tượng theo chuẩn ODMG

Define Language)

Query Language)

Trang 26

Nội dung chi tiết

Mô hình cơ sở dữ liệu hướng đối tượng

Ngôn ngữ mô tả và truy vấn CSDL Hướng đối tượng theo chuẩn ODMG

- Giới thiệu

Define Language)

Query Language)

Trang 28

Nội dung chi tiết

Mô hình cơ sở dữ liệu hướng đối tượng

Ngôn ngữ mô tả và truy vấn CSDL Hướng đối tượng theo chuẩn ODMG

- Mô hình đối tượng

Define Language)

Query Language)

Trang 29

Mô hình đối tượng

Có các kiểu:

- Lớp(Class): khai báo đầy đủ cả 2 phần

Đặc trưng

Thao tác

- Giao diện(Interface): chỉ có thao tác

- Phần xử lý ngoại lệ(nếu có): đi kèm trong phần thao tác

Nhận xét:

Thừa kế hành vi: Không cho thừa kế đặc trưng

Giao diện: chỉ có phần xử lý, không có phần thông tin lưu trong CSDL

Thông tin chỉ thật sự lưu trữ trong Lớp(Class)

Trang 30

Mô hình đối tượng(tt)

Kiểu con: có hai loại thừa kế

- Thừa kế ISA: kiểu con thừa kế từ Interface

→ chỉ thừa kế hành vi

- Thừa kế EXTENDS: kiểu con thừa kế từ Class→ cho thừa kế cả hành vi và đặc trưng.

Thừa kế bội:

- Chỉ cho thừa kế hành vi(giao diện) ISA

- Không chấp nhận mẫu thuẩn thao tác trùng tên(nếu thao tác trùng tên thì không chấp

Trang 31

Mô hình đối tượng(tt)

Qui ước ký hiệu:

Ví dụ

Trang 32

Mô hình đối tượng(tt)

Ví dụ: Lược đồ csdl cho một trường đại học

ISA ISA

Trang 33

Mô hình đối tượng(tt)

Nhận xét:

- Quan hệ thừa kế extends đối với lớp

- Quan hệ thừa kế isa đối với giao diện

- Chỉ cho thừa kế bội với isa

- Cần đặt tên cả hai chiều của quan hệ:

- Dựa vào số mũi tên ở hai đầu quan hệ để xác định loại quan hệ(1:1, 1:n, n:m)

Trang 34

Mô hình đối tượng(tt)

Trang 35

Mô hình đối tượng(tt)

Nhận xét(tt):

- Xét quan hệ giữa GD_SV và LỚP_HỌC

Thực chất giao diện GD_SV không lưu được đặc trưng.

Quan hệ này thật sự được khai báo và lưu trữ trong lớp SV và TG.

Giao diện GD_SV chỉ khai báo nhưng không lưu trữ.

- Kiểu của một đối tượng

Lớp: có đủ đặc trưng, quan hệ ngữ nghĩa, thao tác, xử lý ngoại lệ

GD: chỉ có thao tác, xử lý ngoại lệ

- Đặc trưng = thuộc tính + mối quan hệ ngữ nghĩa( 2chiều )

Trang 36

Nội dung chi tiết

Mô hình cơ sở dữ liệu hướng đối tượng

Ngôn ngữ mô tả và truy vấn CSDL Hướng đối tượng theo chuẩn ODMG

- Ngôn ngữ khai báo lược đồ: ODL(Object Define Language)

Query Language)

Trang 37

Ngôn ngữ khai báo lược đồ- ODL

Từ khóa khai báo lớp/giao diện:

Interface <tên giao diện>[:<tên lớp cha|tên giao diện>]

{

[<đặc trưng>]

<thao tác>

};

Trang 38

Ngôn ngữ khai báo lược đồ- ODL(tt)

Lớp:

Class <tên lớp>[EXTENDS <tên lớp cha 1>]

[:<tên lớp cha 2|tên giao diện cha 2>]

(

extent <tên tập đối tượng thuộc lớp>

[Key(s) <khóa 1>[<khóa2>,…]]

CSDL hướng đối tượng không dùng khóa này để quản lý đối tượng nhưng NSD sẽ sử dụng

Trang 39

Ngôn ngữ khai báo lược đồ- ODL(tt)

Lưu ý: Đối với lớp, phải khai báo quan hệ thừa kế EXTENDS trước, khai báo quan hệ kế thừa ISA sau.

- Khai báo thuộc tính:

[readonly] attribute <tên miền giá trị> <tên thuộc tính>

Trang 40

Ngôn ngữ khai báo lược đồ- ODL(tt)

- Khai báo mối quan hệ

Phải có đủ cặp relationship và inverse để xác định cả hai chiều của một quan hệ(quan hệ chiều xuôi và chiều ngược)

Dùng từ khóa Realationship để khai báo quan hệ chiều xuôi.

∗ Quan hệ 1:1 theo chiều xuôi: không dùng từ khóa set,bag, list hay array.

∗ Quan hệ 1:n theo chiều xuôi phải khai báo rõ là set, bag, list hay array

Từ khóa inverse chỉ dùng để cho biết quan ngược.

Relationship [set|bag|list|array] <tên lớp có qhệ đến><tên qhệ chiều xuôi> Inverse <tên lớp có qhệ đến>::<tên qhệ chiều ngược>

Trang 41

Ngôn ngữ khai báo lược đồ- ODL(tt)

Phân biệt set, bag, list và array

- Set: các đối tượng thuộc lớp không được trùng, không có thứ tự.

- Bag: các đối tượng thuộc lớp được phép trùng, không có thứ tự.

- List: các đối tượng thuộc lớp được sắp xếp theo thứ tự, truy xuất tuần tự.

- Array: các đối tượng thuộc lớp được sắp xếp theo thứ tự, truy xuất ngẫu nhiên.

Trang 42

Ngôn ngữ khai báo lược đồ- ODL(tt)

Ví dụ: Định nghĩa cho class LUONG

Vì lớp LUONG chỉ gồm thông tin thuộc tính, không có thông tin về quan hệ ngữ nghĩa Đây là phần lớn thông tin trong đối tượng NV được tách ra thành lớp riêng nên không đặc tên cho tập đối tượng.

Class LUONG

{

attribute float luong_co_ban;

attribute float luong_ngoai_gio;

attribute thuong;

};

Trang 43

Ngôn ngữ khai báo lược đồ- ODL(tt)

Ví dụ định nghĩa cho lớp NV

Class NV

(extent DM_NV)

{

attribute string ten_nv;

attribute short ma_nv;

attribute LUONG luong_nv;

….

};

Tên tập đối tượng

Trang 44

Ngôn ngữ khai báo lược đồ- ODL(tt)

attribute string ho_ten;

attribute short ma_so;

attribute struct dia_ch;

relationship set <LỚP_HỌC> đăng_ký_dự

inverse <LỚP_HỌC> :: có_sv_đk;

….

};

Trang 45

Ngôn ngữ khai báo lược đồ- ODL(tt)

Nhận xét:

- Nếu không khai báo tên tập đối tượng thuộc lớp TG(khai báo với từ khóa extent) thì các đối tượng này sẽ được lưu trữ chung với đối tượng NV.

- Nếu khai báo tên tập đối tượng thuộc lớp

TG thì các đối tượng này sẽ được lưu trữ riêng

Trang 46

Ngôn ngữ khai báo lược đồ- ODL(tt)

Ví dụ: định nghĩa cho lớp MÔN

relationship set <MÔN> có_môn_tq;

inverse <MÔN> :: là_môn_tq_của;

relationship set <MÔN> là_môn_tq_của;

inverse <MÔN> :: có_môn_tq;

Boolean mở(in unsigned short học_kỳ)

raise (đã có mở)

Boolean hủy(in unsigned short học_kỳ) Xử lý ngoại lệ

Trang 47

Nội dung chi tiết

Mô hình cơ sở dữ liệu hướng đối tượng

Ngôn ngữ mô tả và truy vấn CSDL Hướng đối tượng theo chuẩn ODMG

Define Language)

- Ngôn ngữ truy vấn đối tượng: OQL (Object Query Language)

Trang 48

Ngôn ngữ truy vấn đối tượng- OQL

Nguyên tắc:

- Mô hình đối tượng của ODMG

- Mở rộng SQL2(SQL92): khái niệm về đối tượng phức, OID(Object ID), biểu thức đường dẫn, tính đa xạ, kích hoạt thao tác, kết buộc động.

- Thủ tục cơ sở: set, bag, list, array

- Ngôn ngữ hàm: ngôn ngữ thủ tục.

Một số đặc điểm cần chú ý:

- Đầu vào một câu truy vấn:

Tên một đối tượng

Tên một lớp đối tượng

Trang 49

Ngôn ngữ truy vấn đối tượng-OQL(tt)

Tên đường dẫn/chuỗi đường dẫn

- Kết quả một câu truy vấn:

∗ c.r: một đối tượng hay một tập đối tượng thuộc lớp có quan hệ với c

∗ c.p(…): thực hiện thao tác p, kết quả trả về là kết quả của thao tác

Trang 50

Ngôn ngữ truy vấn đối tượng-OQL(tt)

Trang 51

Ngôn ngữ truy vấn đối tượng-OQL(tt)

Nhận xét:

- N.vợ_chồng.Đchỉ.th_phố là một biểu thức đường dẫn hợp lệ.

- Muốn đi tiếp theo được thì kết quả của biểu thức đường dẫn phía trước là duy nhất (không được phép là tập hợp)

- Nếu không phải là duy nhất mà là một tập hợp

thì phải dừng lại để sử dụng câu truy vấn.

Trang 52

Ngôn ngữ truy vấn đối tượng-OQL(tt)

Nếu N3 có Đchỉ nhưng th_phố rỗng: báo lỗi(luật d)

Phải là tên tập đối tượng

Trang 53

Ngôn ngữ truy vấn đối tượng-OQL(tt)

Select n.Đchỉ.th_phố

From DMN_SU n

Where Là_XĐ(n.Đchỉ.th_phố)

Việc thực hiện câu truy vấn 2 không bị báo lỗi

Trang 54

Ngôn ngữ truy vấn đối tượng-OQL(tt)

Do N3 có th_phố không xác định nên biểu thức điều kiện Where

là sai

Kết quả câu truy vấn chỉ có N2

Trang 55

Ngôn ngữ truy vấn đối tượng-OQL(tt)

Chèn n.p bất kỳ chổ nào được

Ví dụ:

Select max(select c.tuổi From n2.con c) From DMN_SU n2

Where n2.Tên = ‘Nguyễn Văn A’

Nếu tên hàm và tên thuộc tính trùng nhau, để giải quyết đụng độ tên hàm ta thêm cặp dấu (), (ví dụ: tuổi()).

Nếu hàm có tham số ta chỉ việc đặc tham số vào trong cặp dấu () của hàm.

Hàm tính tuổi của N_SỰ

Trang 56

Ngôn ngữ truy vấn đối tượng-OQL(tt)

Các dạng câu truy vấn

- Đặt tên cho câu truy vấn:

Define NVA() as Select n

From DMN_SU n Where n.Tên = ‘Nguyễn Văn A’

Tên được đặt cho câu truy vấn không được là tên của đối tượng, tên của phương thức, tên hàm, hay tên lớp trong lược đồ.

Sau từ khóa From bắt buộc là Extent(tên của lớp đối tượng), không được phép là tên Class.

Trang 57

Ngôn ngữ truy vấn đối tượng-OQL(tt)

- Các phép toán với câu truy vấn:

First(TV)

Last(TV)

Hàm(TV)

Trang 58

Ngôn ngữ truy vấn đối tượng-OQL(tt)

- Biểu thức tập hợp:

For all <tên biến> in <tên_tập>:<điều kiện>

Exist(TV): kết quả là đúng/sai

Unique(TV): kết quả là đúng/sai

TV in TV: kết quả là đúng/sai Lưu ý vế trái là một đối tượng, hay một kết quả hay một literal Không cho phép vế trái là một tập hợp.

Trang 59

Ngôn ngữ truy vấn đối tượng-OQL(tt)

- Cấu trúc câu truy vấn đầy đủ:

Select [distinct] <ds_thuộc_tính>

From TV [as tên_biến]

[Where TV]

[Group by <ds_thuộc_tính>]

[Order by TV [asc|desc] ]

Trang 61

Bài tập mẫu

Ví dụ 1: Tên các nhà cung ứng và tên khách hàng có mua những sản phẩm màu đỏ đang có lượng tồn trên 100

Select mua.Tên_CƯ, bán.Tên_KH

From DM_SP sp, sp.Đợt_mua mua, sp.Đợt_bán bán

Where (sp.Màu = ‘Đỏ’) And (sp.SL_Tồn > 100)

Ngày đăng: 19/08/2015, 00:58

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w