SEMINAR - PowerPoint PPT Presentation

slide1 n.
Download
Skip this Video
Loading SlideShow in 5 Seconds..
SEMINAR PowerPoint Presentation
play fullscreen
1 / 85
SEMINAR
180 Views
Download Presentation
rodd
Download Presentation

SEMINAR

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

  1. 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’

  2. CAD/CAM Floats Fixed collection Complex kind of data ? Small Integers Relational Database GIS Dates Boolean Document management Multimedia Repositories Strings

  3. Hỗ trợ nhiều loại dữ liệu phức tạp Với hai hướng phát triển chí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 class 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

  4. Vituoso Universal Server FirstSQL/J SQL:1999 GibaBase Object-Database DB2 Oracle EnterpriseDB Daffodil DB Cache Nguồn: Wikipedia

  5. Relation Model Object Model ThemeGallery is a Design Digital Content & Contents mall developed by Guild Design Inc. Similar Different Similar Similar Relation Class Instance Object Tuple Column Attribute Store Procedure Method Theo slide ODBMS, Hong Yang, NJIT

  6. 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

  7. Bốn yếu tố chính: • Nhu cầu của doanh nghiệp • Hiệu suất cao • Dữ liệu phức tạp • Một mô hình giảm bớt chi phí phát triển và bảo trì • Và gần đây, người ta vẫn xem xét chọn ODBMS ngay cả khi dữ liệu của họ không đặc biệt phức tạp. Một ODBMS có thể cho phép một nhóm nhỏ hơn, phát triển nhanh hơn. Theo slide ODBMS, Hong Yang, NJIT

  8. Compare Extend New data ODL, OQL Object-Database Identity Challenge Inheritance Design

  9. THIẾT KẾ CSDL? Hệ quản trị cần hỗ trợ các loại dữ liệu phong phú hơn những loại hiện có

  10. 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 Tạo bản nén của một hình ảnh

  11. Setof, listof, arrays, tuples…

  12. Tính kế thừa

  13. 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

  14. 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)

  15. 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ột hình ảnh Gấu Xanh ở phía trước mặt trời mọ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)

  16. 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 đảm bảo là có một số phim Gấu Xanh đang được chiếu ở Singapore khi mà Alete được trưng bà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 KhungHinh K, 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)

  17. 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)

  18. Đị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

  19. Nhãn ‘abtract’ được áp cho các kiểu dữ liệu Bởi vì hệ thống CSDL không cần biết dữ liệu được lưu trữ cũng như phương thức của nó làm việc như 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)

  20. Đối với một kiểu dữ liệu mới được định nghĩa: • Xác định phương pháp cho phép các DBMS có thể đọc và xuất ra các đối tượng của kiểu dữ liệu nà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

  21. Làm thế nào để khai báo cáo phương thức này? • Người dùng phải viết code cho các phương thứ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’ …

  22. Dựa trên các kiểu dữ liệu có cấu trúc phức tạp Để định nghĩa kiểu dữ liệu mới phức tạp hơn Một số kiểu phổ biến được hỗ trợ: ROW(n­1 t1, …, nn tn) Listof(base) ARRAY(base) Setof(base) Bagof(base)

  23. FILE SYSTEM Data object

  24. DBMS ? FILE SYSTEM Data object

  25. Oid URL

  26. Deep equal : Two objects having the same type are defined, if and only if:

  27. Shallow equal: two objects that have the same reference type (if they both refer to the same object).

  28. Example: create table frames (frameno integer, image jpeg, category integer); create table categories (cid integer, name text, lease_price float, comments text); create type theater_t as row (tno integer, nametext, address text, phone integer) create table theaters of theater_t; create table nowshowing (film integer, theaterref(theater_t), start date, enddate); create table films (filmno integer, title text,starssetof(text), director text, budget float); create table countries (name text, boundarypolygon, population integer, language text)

  29. ROW(538, t89, 6-3-97, 8-7-97) ROW(538, t33, 6-3-97, 8-7-97) deep equal Shallow equal

  30. Defining Types with Inheritance Binding of Methods Collection Hierarchies, Type Extents, and Queries

  31. Instance: THEATER tno integer Name text address text phone integer THEATER-CAFÉ Menu text tno integer Name text address text phone integer supertype subtype CREATE TYPE theatercafe UNDER theater (menu text)

  32. Note: the inheritance mechanism creates rlationship between the subtype and supertype.(an object of the subtype is also considered to be an object of the supertype.) The substitution priciple: given a supertype A and a subtype B, it always possible to substitute an object of type B into a legal expression written for objects of type A, without producing type errors. Inheritance can also be used for atomic types, in addition to row types.

  33. Instance: INMAGE JPEG-IMAGE supertype subtype The display() method for IMAGE does not work for JPEG images!!! CREATE FUNCTION display(jpeg_image) RETURNS jpeg_image AS EXTERNAL NAME ‘/a/b/cjpeg.class’ LANGUAGE ‘java’;

  34. Collection Hierarchies, type Extents, and Queries

  35. Loạicấutrúcvà ADT Probe

  36. Loạicấutrúcvà ADT Camera type

  37. Loạicấutrúcvà ADT Video stream

  38. Loạicấutrúcvà ADT Location (latitude, longitude) Time

  39. Loạicấutrúcvà ADT Location (latitude, longitude) Probe Time Video stream

  40. Thiếtkế cơ sở dữ liệu RDBMS Phụthuộchàm • PTLN  CV • P CV Probe (pid: integer, time: timestamp, latitude: real, longitude: real, camera: string, video: BLOB)

  41. 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ới probe 10, hiểnthịđoạn video đượcthutừ 1:10pm đến 1:15pm vàongày 10, 1996” • Thông tin liêntiếpbịphântán qua cácbộ • Thông tin video và location bịphântáchra

  42. Thiếtkế cơ sở dữ liệu ORDBMS SELECTdisplay (P.video, 1:10pm, May 10 1996, 1:15pm, May 10 1996) FROMProbes_Allinfo P WHERE P.id = 10 Probes_AllInfo(pid: integer, locseq: location_seq, camera: string, video: mpeg_stream)

  43. Địnhdanhđốitượng

  44. Địnhdanhđốitượng • Địnhdanh • đốitượng • (Oid) • Khóangoại • (Foreign key)

  45. MởrộngmôhìnhER

  46. Sửdụngcáctậphợplồngnhau 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