170 likes | 348 Views
BỘ MÔN: CƠ SỞ DỮ LIỆU NÂNG CAO. SEMINAR. OBJECT-DATABASE SYSTEMS. Compare. Extend. New data. ODL, OQL. Object-Database. objects. Challenge. Inheritance. Design. objects. Object identifier - oid Khái niêm về đẳng thức Dereferencing Reference Type. Object identifier - oid.
E N D
BỘ MÔN: CƠ SỞ DỮ LIỆU NÂNG CAO SEMINAR OBJECT-DATABASE SYSTEMS
Compare Extend New data ODL, OQL Object-Database objects Challenge Inheritance Design
objects • Object identifier - oid • Kháiniêmvềđẳngthức • Dereferencing Reference Type
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 - 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)
Sựkhácbiệtgiữaoidvà URL Oid URL
Kháiniệmđẳngthức deep equal : đốitượngcócùngkiểuđượcxemlà deep equal khivàchỉkhi:
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á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 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.raptenRap
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
Địnhnghĩakiểuvớikếthừa Kieu_RapPhim maRapinteger tenRap text điaChitext 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ủ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ủ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ậ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 CREATE TABLE ds_rapPhimDichVuOF kieu_rapPhimDichVu Thựchiên query trêncácbộcủabảngDanhSachRapcókiểuKieu_rapPhim???
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ậ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 vikiể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.