slide1 n.
Download
Skip this Video
Loading SlideShow in 5 Seconds..
SEMINAR PowerPoint Presentation
Download Presentation
SEMINAR

Loading in 2 Seconds...

play fullscreen
1 / 91

SEMINAR - PowerPoint PPT Presentation


  • 149 Views
  • Uploaded on

BỘ MÔN: CƠ SỞ DỮ LIỆU NÂNG CAO. SEMINAR. SELECT Ten, MSSV, hinhAnh. FROM SINHVIEN sv JOIN PHANCONGSEMINAR pc ON sv.MSSV = pc.MSSV. WHERE pc.nhomTruong = ‘ 0912469 ’. CAD/CAM. Floats. Fixed collection. Complex kind of data. ?. Small. Integers. Relational Database.

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about 'SEMINAR' - jun


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
slide1

BỘ MÔN: CƠ SỞ DỮ LIỆU NÂNG CAO

SEMINAR

SELECT Ten, MSSV, hinhAnh

FROM SINHVIEN sv JOIN PHANCONGSEMINAR pc ON sv.MSSV = pc.MSSV

WHERE pc.nhomTruong = ‘0912469’

slide2

CAD/CAM

Floats

Fixed collection

Complex kind of data

?

Small

Integers

Relational

Database

GIS

Dates

Boolean

Document management

Multimedia

Repositories

Strings

slide3

Hỗ trợ nhiều loại dữ liệu phức tạp

Vớihaihướngpháttriểnchính

  • Object-Oriented Database Systems
  • Nơi mà các đối tượng phức tạp đóng vai trò là trung tâm
  • Bị ảnh hưởng nhiều bởi ngôn ngữ lập trình HĐT
  • Thêm các hàm vào DBMS như một môi trường lập trình
  • Object Data Model & Object Query Language được phát triển
  • Object-Relational Database Systems
  • Hỗ trợ một lớp rộng lớn của các ứng dụng

Object-Database

  • Là cầu nối giữa mô hình quan hệ và hướng đối tượng
  • Các nhà cung cấp RDBMS đang thêm các chức năng ORDBMS

Database Management System, Raghu Ramakrishnan & Johanes Gehrke

slide4

Vituoso Universal Server

FirstSQL/J

SQL:1999

GibaBase

Object-Database

DB2

Oracle

EnterpriseDB

Daffodil DB

Cache

Nguồn: Wikipedia

slide5

LOẠI NÀO TỐT HƠN?

Không thể trả lời chính xác loại nào tốt hơn loại nào được

Tùy vào trường hợp sử dụng

slide6

Compare

Extend

New data

ODL, OQL

Object-Database

Identity

Challenge

Inheritance

Design

slide7

Một số từ viết tắt

  • RDBMS: Relational Database Management System
  • OODBMS: Object-Oriented Database Management System
  • ORDBMS: Object-Relational Database Management System
slide9

THIẾT KẾ CSDL?

Hệquảntrịphảihỗtrợcácloạidữliệuphongphúhơnnhữngloạihiệncó

slide10

CÁC TÍNH NĂNG KHÔNG

CÓ SẴN TRONG MÔ HÌNH QUAN HỆ

RDBMS CÓ GIẢI QUYẾT ĐƯỢC?

Binary Large Object (BLOB)

Chỉ một dòng dài byte

slide11

Do người dùng định nghĩa

Dữ liệu của Dinky Entertainment

Hình ảnh, giọng nói, video…

Phải được lưu trữ trong cơ sở dữ liệu

Phải có những phương thức đặc biệt

slide13

Một số kiểu phổ biến được hỗ trợ:

  • ROW(n­1 t1, …, nn tn): Là kiểu dữ liệu dùng để thể hiện cho một dòng, một bộ của n cột dữ liệu với n1,…,nn thuộc loại t1,…,tn tương ứng.
  • VD: SinhVien(mssv int, ten text, lop text)
  • ARRAY(base): Tương tự như mảng bên lập trình.
  • VD: DaySo(int)
  • VD: DSSV(ROW(mssv int, ten text, lop text))
  • Listof(base): Là kiểu dữ liệu thể hiện các phẩn tử có thứ tự. Với 2 phần tử đặc biệt và head và tail. Và phương thức append, prepend.
  • Setof(base): Là kiểu thể hiện mà các phẩn tử nằm trong tập nằm không trùng nhau. Và có các phương thức của tập hợp: , ,
  • Bagof(base): Là kiểu thể hiện mà các phần tử có thể là các Set hoặc multiset
slide15

CREATE TABLE KhungHinh

(soKhung integer,hinhAnh jpeg_image, theLoai integer)

CREATE TABLE TheLoai

(maTheLoai integer, tenTheLoai text, giaChoThue float , ghiChu text)

CREATE TYPE kieu_RapPhim

ROW(maRap integer, tenRap text, diaChi text, soDienThoai text)

CREATE TABLE DanhSachRap OF kieu_RapPhim

CREATE TABLE DangChieu

(phim integer, rap ref(kieu_RapPhim) with scope DanhSachRap ,

batDau date, ketThuc date)

CREATE TABLE DanhSachPhim

(maPhim integer, tuaPhim text , nhanVat setof(text), daoDien text, chiPhi float)

CREATE TABLE QuocGia

(ten text, ranhGioi daGiac, danSo int, ngonNgutext)

slide16

Thách thức đầu tiên:

  • Công ty sản xuất ngủ cốc Nestlé có chi nhánh ở Singapore
  • ThuêmộthìnhảnhGấuXanh ở phíatrướcmặttrờimọc
  • Thiết kế hợp ngủ cốc Alete

SELECT K.soKhung, banThuNho(K.hinhAnh), T.giaChoThue

FROM KhungHinh K, TheLoai T

WHERE K.theLoai = T.maTheLoai AND co_MatTroi(K.hinhAnh)

AND la_GauXanh(K.hinhAnh)

slide17

Thách thức thứ hai:

  • Đến từ giám đốc điều hành Dinky
  • Biết rằng Alete rất phổ ở quốc gia Singapore
  • MuốnđảmbảolàcómộtsốphimGấuXanhđangđượcchiếu ở Singapore khimàAleteđượctrưngbày.

SELECT D.rap->tenRap, N.rap->diaChi, P.tuaPhim

SELECT K.soKhung, banThuNho(K.hinhAnh), T.giaChoThue

FROM DangChieu D, Phim P, QuocGia Q

FROM KhungHinhK, TheLoai T

WHERE D.phim = P.maPhim AND

namTren(Q.ranhGioi, banKinh(N.rap->diaChi, 100)

AND Q.ten = ‘Singapore’

AND ‘Gấu Xanh’ ϵ F. nhatVat)

WHERE K.theLoai = T.maTheLoai AND co_MatTroi(K.hinhAnh)

AND la_GauXanh(K.hinhAnh)

slide18

CREATE TABLE KhungAnh

(soKhung integer,hinhAnh jpeg_image, theLoai integer)

  • Dùng để lưu trữ hình ảnh cho khung hình trong một bộ phim
  • Kiểu dữ liệu jpeg_image không nằm trong nhân DBMS
  • jpeg_image được xây dựng bởi người dùng để lưu trữ hình ảnh theo tiêu chuẩn JPEG.

CREATE TABLE QuocGia

(ten text, ranhGioi daGiac, danSo int, ngonNgu text)

slide19

Định nghĩa kiểu dữ liệu mới tùy ý

Là tính năng quan trọng của ORDBMS

Cho phép lưu trữ và truy xuất đối tượng loại jpeg_images nhưng mọi đối tượng khác (ví dụ: kiểu int)

Cần phải có các phương thức được định bởi người tạo ra chúng

Ví dụ kiểu jpeg_images sẽ có các phương thức: nén, xoay, thuNhỏ, cắt…

Sự kết hợp của kiểu dữ liệu (atomic) và các phương thức liên quan được gọi là Abtract Data Type (ADT)

SQL truyền thống cũng đã xây dựng các ADTs, chẳng hạn như kiểu int và các toán tử liên quan (+, -, >, = …) hoặc string (LIKE).

ORDBMS cũng cho phép người dùng định nghĩa kiểu riêng của mình

slide20

Nhãn ‘abtract’ đượcápchocáckiểudữliệu

Bởivìhệthống CSDL khôngcầnbiếtdữliệuđượclưutrữcũngnhưphươngthứccủanólàmviệcnhưthếvào.

Đơn thuần chỉ cần biết input và output cho các phương thức

Các phương thức được tích hợp vào ADT được gọi là tinh đóng gói.

Ngay cả các kiểu int, string … cũng là ADT với tính đóng gói.

CREATE ABTRACT DATA TYPE jpeg_image

(internallength = VARIABLE,input jpeg_in, output jpeg_out)

CREATE ABTRACT DATA TYPE polygon

(internallength = VARIABLE,input poly_in, output poly_out)

slide21

Đối với một kiểu dữ liệu mới được định nghĩa:

  • Xácđịnhphươngphápchophépcác DBMS cóthểđọcvàxuấtracácđốitượngcủakiểudữliệunày
  • Tính toán dung lượng cần thiết để lưu trữ đối tượng
  • Vậy người dùng phải khai báo tối thiếu các phương thức sau với DBMS:
  • Size
  • Import
  • Export
slide22

Làmthếnàođểkhaibáocáophươngthứcnày?

  • Ngườidùngphảiviết code chocácphươngthức.
  • Thông báo cho DBMS biết về phương thức này.
  • Ngôn ngữ dùng để viết các phương thức này phụ thuộc vào ngôn ngữ được hỗ trợ bởi DBMS
  • Ví dự ORDBMS có thể xử lý ngôn ngữ Java chạy trên Linux

CREATE FUNCTION coMatTroi(jpeg_image) RETURNS boolean

AS EXTERNAL NAME ‘a/b/c/dinky.class’ LANGUAGE ‘java’

CREATE FUNCTION thuNho(jpeg_image) RETURNSjpeg_image

AS EXTERNAL NAME ‘a/b/c/dinky.class’ LANGUAGE ‘java’

slide23

Compare

Extend

New data

ODL, OQL

Object-Database

objects

Challenge

Inheritance

Design

slide24

objects

  • Object identifier - oid
  • Kháiniêmvềđẳngthức
  • Dereferencing Reference Type
object identifier oid
Object identifier - oid
  • cácđốitượngđượcgán 1 giátrịoidtrong object-database systems.
    • cógiátrịduynhấttrongcsdlsuốtthờigiantồntại
      • DBMS chịutráchnhiệmtạo, vàtựđộngquảnlý
    • Thườnggiátrịkiểunguyên 32 hoặc 64 bit
  • oidcủa 1 đốitượngcóthểđượcdùngđểtrỏđếnđốitượngđódùvịtrịlưucủađốitượngđó ở bấtkỳđâu.

Oid

object identifier oid1
Object identifier - oid

kiểu REF: làkiểumàgiátrịcủanólàcácđịnhdanhduynhấthoặciod

Hàmdựng: REF(base)

Vídụlệnhtrong sql:1999

CREATE TYPE kieu_RapPhim

ROW(maRapinteger, tenRaptext, diaChitext, soDienThoaitext)

CREATE TABLE DanhSachRap OF kieu_RapPhim

CREATE TABLE DangChieu

(phiminteger, rap ref(kieu_RapPhim) with scope DanhSachRap,

batDaudate, ketThucdate)

kh i ni m ng th c
Kháiniệmđẳngthức

deep equal : đốitượngcócùngkiểuđượcxemlà deep equal khivàchỉkhi:

kh i ni m ng th c1
Kháiniệmđẳngthức

2 đốitượngthoả shallow equal thìthoả deep equal.

Trườnghợpngươclạikhôngthoả

shallow equal :

Nếucácđốitượnglànguyêntốhoặckiểucấutrúcthìkháiniêmgiống deep equal.

Nếucácđốitượnglàkiểuthamchiếuthìgiá 2 đốitượngthamchiếuđóphảicùngtrỏđến 1 đốitượngduynhất.

kh i ni m ng th c2
Kháiniệmđẳngthức

Kieu_RapPhim

BẢNG DanhSachRap1

ROW1 ( 13, ‘Galaxy’, ‘TânBình’, ‘01254747740’)

BẢNG DanhSachRap2

ROW2 ( 13, ‘Galaxy’, ‘TânBình’, ‘01254747740’)

BảngDangChieu

ROW1( 1, 13, 12/12/2011, 21/03/2011)

ROW2(1, 21, 12/12/2011, 21/03/2011)

x

Shallow equal

Deep equal

dereferencing reference types
Dereferencing reference types

Tạoragiátrịthamchiếu REF có type constructor REF(base).

Lấygiátrịcủacácthuộctínhcủađốitượngmà REF thamchiếu??

deref()

Vídụ: DangChieu.deref(rap).tenRap

HoặcDangChieu.raptenRap

k th a
KẾ THỪA
  • Địnhnghĩakiểuvớikếthừa
  • Cơchế binding củaphươngthức
  • Tậpphâncấp, phạm vi kiểuvàtruyvấn

Inheritance

nh ngh a ki u v i k th a
Địnhnghĩakiểuvớikếthừa

Kieu_RapPhim

maRap integer

tenRap text

điaChi text

sdt integer

Kieu_rapPhimdichVu

Menu text

maRap integer

tenRap text

diaChi text

Sdt integer

supertype

subtype

CREATE TYPE Kieu_RapPhim UNDER Kieu_rapPhimDichVu(menu text)

Minh hoạ:

c ch binding c a ph ng th c
Cơchế binding củaphươngthức

IMAGE_T

Display()

JPEG_IMAGE_T

Display()

supertype

subtype

CREATE FUNCTION display (jpeg_image) RETURNS jpeg_image

AS EXTERNAL NAME ‘/a/jpeg.class’ LANGUAGE ‘java’;

overloading

c ch binding c a ph ng th c1
Cơchế binding củaphươngthức

Cơchế?

binding

  • Early binding: quátrình binding đượcthựchiện
  • khikhiphântíchbiểuthức.
  • Late binding: quátrình binding thựchiêntronglúc
  • chạychươngtrình
t p ph n c p ph m vi ki u v truy v n
Tậpphâncấp, phạm vi kiểuvàtruyvấn

CREATE TYPEkieu_RapPhim

ROW(maRapinteger, tenRaptext, diaChitext, soDienThoaitext)

CREATE TYPE Kieu_RapPhimUNDER Kieu_rapPhimDichVu(menu text)

CREATE TABLEDanhSachRap OF kieu_RapPhim

nếutạobảngsd_rapPhimDichVukiểuKieu_rapPhimDichVuthìthựchiên query trêncácbộcủabảngDanhSachRapcókiểuKieu_rapPhim???

t p ph n c p ph m vi ki u v truy v n1
Tậpphâncấp, phạm vi kiểuvàtruyvấn

CREATE TABLE ds_rapPhimDichVu OF TYPE Kieu_RapPhimDichVu UNDER DanhSachRap

cáctruyvấntrênbảngDanhSachBangcũngsẽđượctruyvấntrênbảngds_rapPhimDichVu!!!

t p ph n c p ph m vi ki u v truy v n2
Tậpphâncấp, phạm vi kiểuvàtruyvấn

Tậpphâncấp: dựavàomệnhđề under đểtạoracácphâncấptrongcsdl, khiđócsdlsẽtạo 1 câycácbảngcóquanhệcấpbậcvớinhau.

Phạm vi kiểu: bảngchứacácthamchiếuđếncácđốitượngcùngkiểu (cóthểnằm ở cácbảngkhácnhau) trongcsdl dễthựchiệntruyvấntrêntổngthểcácđốitượngcùngloại ở vịtríkhácbảng.

slide39

Compare

Extend

New data

ODL, OQL

Object-Database

Challenge

Identity

Inheritance

Design

slide44

Kiểucấutrúcvà ADT

Location (latitude, longitude)

Time

slide45

Kiểucấutrúcvà ADT

Location (latitude, longitude)

Probe

Time

Video stream

thi t k c s d li u rdbms
Thiếtkế cơ sở dữ liệu RDBMS

Probes_Loc(pid: integer, time: timestamp,

latitude: real, longitude: real)

Probes_Video(pid: integer, camera: string:, video: BLOB)

  • “Vớipid= 10, hiểnthịđoạn video đượcthutừ3:00PM đến4:00pm vàongày 10, 1996”
thi t k c s d li u rdbms1
Thiếtkế cơ sở dữ liệu RDBMS

APPLICATION

User

Video: BLOB

Video: BLOB

RDBMS

3:00 pm – 4:00 pm

thi t k c s d li u rdbms2
Thiếtkế cơ sở dữ liệu RDBMS

Probes_Loc(pid: integer, time: timestamp,

latitude: real, longitude: real)

Probes_Video(pid: integer, camera: string:, video: BLOB)

  • Thông tin liêntiếpbịphântán qua cácbộ
  • Thông tin video và location bịphântáchra
thi t k c s d li u ordbms
Thiếtkế cơ sở dữ liệu ORDBMS

CREATE TYPE location_seqlistof ( row (time: timestamp, latitude: real, longitude: real))

SELECTdisplay (P.video, 3:00pm, May 10 1996, 4:00pm, May 10 1996)

FROMProbes_Allinfo P

WHERE P.id = 10

Probes_AllInfo(pid: integer, locseq: location_seq, camera: string, video: mpeg_stream)

thi t k c s d li u ordbms1
Thiếtkế cơ sở dữ liệu ORDBMS

APPLICATION

User

Video: BLOB

RDBMS

3:00 pm – 4:00 pm

3:00 pm – 4:00 pm

nh danh i t ng object identity
Địnhdanhđốitượng(Object identity)

REFERENCE VS REFERENCE - FREE

slide52

Địnhdanh

  • đốitượng
  • (Oid)
  • Khóangoại
  • (Foreign key)
nested collection
Nested Collection

Probes1 (pid: integer, locseq: location_seq)

  • Tìmthờiđiểmsớmnhấtđượcghi ở latitude =5, và longitude =10

Probes2 (pid: integer, time:timestamp, latitude: real, longitude: real)

 Sựlựachọntrongthiếtkếlượcđồphảiphụthuộcvàolượng workload mongmuốn

 Tránhlạmdụngtậphợplồngnhau

  • Vớimỗi probe, hãyxuấtrathờigiansớmnhấtđượcghilạivàloại camera
ch m c tr n lo i d li u m i1
Chỉmụctrênloạidữliệumới
  • Xâydựngmột interface phươngthứctruyvấn
  • Cho phépngườidùngcàiđặtcáccấutrúcchỉmụcbênngoài DBMS.
  • Trongđóchỉmụcvàdữliệucóthểđượclưutrong file system
  • DBMS chỉđưaracácyêucầulặpđilặplạilà open, next, close đếnđoạnmãchỉmụcbênngoàicủangườidùng.

 Tuynhiênphầndữliệu ở chỉmụcbênngoàikhôngđượcbảovệbởi DBMS chotínhđồngthờivàphụchồi.

ch m c tr n lo i d li u m i2
Chỉmụctrênloạidữliệumới
  • Xâydựngmột template cấutrúcchỉmụcchung
  • Càiđặttrựctiếptrong DBMS
  • Khắcphụcđượcvấnđềđồngthờivàphụchồi.
  • Vídụ: GeneralisedSearch Tree (GiST) làmộtcấutrúcnhưvậy. Nólàmột template dựatrêncây B+, chophéphầuhếtcáccấutrúcchỉmụccóthểcàiđặtvớivàidòng ADT code do ngườidùngđịnhnghĩa
tin c y c a ph ng th c
Độ tin cậycủaphươngthức
  • Cho phépngườidùngbiêndịchtrênmộtngônngữlậptrìnhnhư C++, nhưngthựcthicácphươngthứcđó ở khônggianđịachỉkhácvới DBMS.
  • DBMS sẽgửigiaotiếpliêntiếntrình (IPC) đếnphươngthứcngườidùng, vàphươngthứctrảvề IPC.
  • Khắcphụcvấnđềlàmhưhỏnghệthốngvàngănchặncácphươngthứcnguyhiểmđọcvàchỉnhsửacơsởdữliệu.
  • Chúý làngườidùngkhiviếtphươngthứckhôngcầnbiết DBMS đangthựcthiphươngthức ở mộttiếntrìnhkhác.

Sửdụng interpret (thôngdịch) phươngthứccủangườisửdụnghơnlà compile.

DBMS cóthểkiểmtraphươngthứccóthựchiệntốt hay khôngtrướckhithựcthinó.

Ngônngữthôngdịchđiểnhìnhlà Java

method caching
Method Caching

Pointer Swizzling

  • Kỹthuậtthaythếoidcủamộtđốitượngtrongbộnhớbằng con trỏtrongbộnhớcủađốitượngđó

Sắpxếpbảngtrêncộthoặcsửdụnglượcđồdựatrên hash

Duytrì cache củaphươngthức input vànhững output trùngkhớpnhưmộtbảngtrongcơsởdữliệu.

ng k ch m c v i b tinh ch nh
Đăngkýchỉmụcvớibộtinhchỉnh

OPTIMIZER

HOW MUCH

WHAT

  • Chi phínạpmộtbộđốivớichỉmụclàbaonhiêu
  • Điềukiệnnàotrongmệnhđề WHERE trùngkhớpvớichỉmục
chi ph t nh to n cho ph ng th c adt
Chi phítínhtoánchophươngthức ADT

Tinhchỉnhcácphépchọn chi phícao

  • Thứtựtốtnhấttrongphépchọnlàmộthàmcủa chi phívàhệsốgiảm, rank = (hệsốgiảm -1 )/cost
  • Rank lớnthìhoãnphépchọnlạisaukhiđãthựchiệnphépkết

Ngườidùngtựtínhtoán

Nếunhưhàmtínhtoánđókhôngđượcđăngkíthìbộtinhchỉnhsửdụngmộthệsốgiảmtùyý

slide66

Compare

Extend

New data

OODBMS

Object-Database

Challenge

Identity

Inheritance

Design

slide67

Object

Class

OQL

OODBMS

Data model

ODL

odmg data model
ODMG Data Model

Đượctạobởi ODMG năm 1991.

Làmôhìnhchuẩnchocác CSDL đốitượng.

Địnhnghĩađốitượng qua ODL.

Truyvấnđốitượng qua OQL.

Hỗtrợnhiềukiểudữliệuvàhàmdựngkiểu.

Cơsởcho OODBMS.

kh i ni m
Kháiniệm

Vídụ:

Collection of object

OBJECT

CLASS

Unique oid

Same properties

1. Đốitượng (Object): cóđịnhdanh (OID) duynhất.

2. Lớp (Class): Mỗiđốitượnglàmộtthểhiệncủalớp.

kh i ni m1
Kháiniệm

3. Thuộctính (Attribute):

- Thuộctínhđơngiản.

- Thuộctínhphứctạp.

Vídụ:

kh i ni m2
Kháiniệm

4. Mốikếthợp (relationship):

- Một – một:

- Một – nhiều:

- Nhiều – nhiều:

- Cómộtquanhệnghịchtươngứng - inverse relationship.

kh i ni m3
Kháiniệm

4. Mốikếthợp (relationship):

Vídụ:

kh i ni m4
Kháiniệm

5. Phươngthức (method):

- Làcáchoạtđộngcủacácđốitượng.

- Khônggiốngvới stored procedure trongmôhìnhquanhệ

object model vs relation model
Object Model vs Relation Model

Object Model

Relation Model

ThemeGallery is a Design Content & Contents mall developed by Guild Design Inc.

Similar

Similar

Similar

Similar

Similar

Object

TupleDigital

Entity

Class

Attribute

Attribute

Relation

Relation

OID

Primary key

object data language odl
Object Data Language – ODL

Hỗtrợcáckháiniệmngữnghĩacủa OODBMS.

Khôngphụthuộcvàobấtkỳngônngữlậptrìnhnào.

Dùngđểtạocácđặcđiểmcủađốitượng.

Khôngđượcdùngđểxửlý CSDL.

slide77

showAt

nowShowing

slide78

Class

Collection of Class

interface Movie

(extent Movies key movieName)

{

attributedate start;

attributedate end;attributestringmovieName;relationship Set<Theater> shownAtinverse Theater::nowShowing;

}

slide79

interface Theater

(extent Theaters key theaterName)

{

attributestringtheaterName;

attributestring address; attribute integerticketPrice;relationshipSet<Movie> nowShowinginverse Movie:: shownAt;

float numshowing() raises(errorCountingMovies);

}

slide80

interface SpecialShow extends

Movie(extent SpecialShows){ attribute integer

maximumAttendees;

attribute stringbenefilCharity;

}

object query language oql
Object Query Language - OQL

Làngônngữtruyvấncủa ODMG.

Làmviệcgiốngvớingônngữlậptrìnhnhư C++.

Cấutrúctươngtựnhư SQL vớicácđiểmđặctrưngcủađốitượng.

Cúpháp: SELECT – FROM - WHERE

slide82

SELECTmname: M.movieName, tname: T.theaterName

FROM Movies M, M.shownAt T

WHERET.numshowing() > 1

slide83

SELECTT.ticketPrice,

avgNum: AVG(SELECTP.T.numshowing() FROM partition P)

FROM Theaters T

GROUP BYT.ticketPrice

slide84

SELECT low, high,

avgNum: AVG(SELECTP.T.numshowing() FROM partition P)

FROM Theaters T

GROUP BYlow: T.ticketPrice < 5, high:T.ticketPrice >= 5

slide85

(SELECTT.theaterName

FROM Theaters T

ORDER BYT.ticketPrice DESC) [0:4]

slide86

Compare

Extend

New data

ODL, OQL

Object-Database

Challenge

Identity

Inheritance

Design

rdbms versus ordbms
RDBMS versus ORDBMS

RDBMS khônghỗtrợphầnmởrộngcủa ORDBMS.

RDBMS dễsửdụnghơnvìnócóíttínhnănghơn.

RDBMS ítlinhhoạthơn ORDBMS.

oodbms vs ordbms similarities
OODBMS vs ORDBMS Similarities
  • Hỗtrợcáckiểucócấutrúc, kiểuđốitượng, ADTS vàkếthừa.
  • Hỗtrợngônngữtruyvấnđểthaotáctrênkiểu collection:
    • ORDBMS: phầnmởrộngcủa SQL.
    • OODBMS: ODL/OQL.
  • ORDBMS thêmcáctínhnăngcủa OODBMS vào RDBMS.

OODBMSpháttriểnngônngữtruyvấndựatrênngônngữtruyvấnquanhệ.

oodbms vs ordbms differences
OODBMS vs ORDBMS Differences

OODBMSthêmngônngữlậptrìnhvào DBMS, trongkhiORDBMSthêmcáckiểudữliệuphongphúvào RDBMS.

OODBMScómụctiêulàtíchhợpliềnmạchvớingônngữlậptrình, trongkhiđâykhôngphảilàmụctiêuquantrọngcủa ORDBMS.

OODBMS: tậptrungvàocácứngdụngmà ở đóđốitượnglàyếutốtrungtâm, mọixửlýđềuxoayquanhđốitượng.

ORDBMS: tậptrungvàocácứngdụngcókhốilượngdữliệucókiểubộsưutậplớn, tậptrungvàotốiưuhóatruyvấndữliệutrênđĩa.

oodbms vs ordbms differences1
OODBMS vs ORDBMS Differences

OQL khôngđượchỗtrợhiệuquảtronghầuhết OODBMS, ngượclạichúnglàtrungtâmcủa ORDBMS.

OODBMS đãđượctốiưuhóađểhỗtrợchocácứngdụng HĐT vàcácngônngữ OO.

ORDBMSs đượchỗtrợbởhầuhếtcác HQTCSDL hiện nay.