Bài giảng Cơ sở dữ liệu nâng cao - Chương 4: Cơ sở dữ liệu quan hệ & đối tượng - Đỗ Thanh Nghị
Động lực
Yêu cầu của ứng dụng mới
đối tượng phức tạp
tích hợp dữ liệu và ứng xử
thao tác dữ liệu xuyên qua composition
Tích hợp với đối tượng hình thức
đối tượng
phân tích, khái niệm, phát triển, CSDL
tồn lưu của dữ liệu trong môi trường đối tượng
Sự cần thiết
mô hình dữ liệu cung cấp các khái niệm trên
hệ thống hỗ trợ cho các mô hình dữ liệu
Bạn đang xem 20 trang mẫu của tài liệu "Bài giảng Cơ sở dữ liệu nâng cao - Chương 4: Cơ sở dữ liệu quan hệ & đối tượng - Đỗ Thanh Nghị", để tải tài liệu gốc về máy hãy click vào nút Download ở trên
Tóm tắt nội dung tài liệu: Bài giảng Cơ sở dữ liệu nâng cao - Chương 4: Cơ sở dữ liệu quan hệ & đối tượng - Đỗ Thanh Nghị
1Cơ sở dữ liệu nâng cao Cơ sở dữ liệu quan hệ - đối tượng Đỗ Thanh Nghị dtnghi@cit.ctu.edu.vn Cần Thơ 11-10-2016 Động lực 3Động lực Yêu cầu của ứng dụng mới đối tượng phức tạp tích hợp dữ liệu và ứng xử thao tác dữ liệu xuyên qua composition Tích hợp với đối tượng hình thức đối tượng phân tích, khái niệm, phát triển, CSDL tồn lưu của dữ liệu trong môi trường đối tượng Sự cần thiết mô hình dữ liệu cung cấp các khái niệm trên hệ thống hỗ trợ cho các mô hình dữ liệu 4Mô hình hóa dữ liệu Mô hình dữ liệu cho phép trình bày thế giới thực tạo thành từ tập hợp các khái niệm tập hợp các luật để quản lý khái niệm Ví dụ về mô hình mô hình thực thể-liên kết mô hình ngữ nghĩa mô hình quan hệ mô hình đối tượng 5Mô hình dữ liệu Chủ sở hữu Nhà Căn hộ chung cư PhòngTầng {or} 6Khái niệm mô hình thực thể-liên kết Thực thể chủ sở hữu nhà tầng căn hộ chung cư phòng Ràng buộc một căn hộ chung cư phải có ít nhất một phòng tắm một căn nhà có thể nhiều chủ sở hữu 7Khái niệm mô hình thực thể-liên kết Liên kết chủ sở hữu: nhà chủ sở hữu: căn hộ chung cư nhà: tầng tầng: phòng căn hộ chung cư: phòng Kiểu khác nhau của liên kết composition tổng quát, chuyên biệt 8Mô hình hóa dữ liệu Mô hình quan hệ chỉ duy nhất khái niệm: quan hệ chỉ có dữ liệu được trình bày giới hạn: chuẩn 1 (1FN) bắt buộc: chuẩn hóa dữ liệu 9Mô hình hóa dữ liệu Ứng dụng mới trình bày dữ liệu và xử lý dữ liệu phân biệt thực thể và liên kết làm mịn liên kết tổng quát, chuyên biệt composition Khả năng cải tiến mở rộng mô hình quan hệ HQTCSDL quan hệ - đối tượng giới thiệu mô hình mới HQTCSDL đối tượng Mở rộng mô hình quan hệ 11 Mở rộng mô hình quan hệ Mục tiêu đáp ứng yêu cầu ứng dụng mới tận dụng các mô hình quan hệ có sẵn hoàn thiện phần khiếm khuyết của mô hình quan hệ Khiếm khuyết mô hình quan hệ nghèo nàn về kiểu dữ liệu chuẩn 1: thuộc tính chỉ có giá trị nguyên tử không thể định nghĩa phép toán mới => tập hợp đóng kiểu, và phép toán 12 Mở rộng mô hình quan hệ Mở rộng cần thiết vượt qua chuẩn 1 tích hợp khái niệm kiểu trừu tượng Hệ thống mới HQTCSDL quan hệ - đối tượng Vượt qua chuẩn 1 14 Chuẩn 1 Định nghĩa chuẩn 1 (1FN) : Tất cả các thuộc tính có giá trị nguyên tử Hệ quả một thuộc tính không thể một quan hệ khác danh sách giá trị những compositions phải xếp đặt phẳng 15 Giải pháp giới thiệu mô hình chuẩn 2 (NF2) không theo chuẩn 1 khả năng định nghĩa thuộc tính là danh sách giá trị của phép toán mới được giới thiệu NEST và UNNEST mở rộng ngôn ngữ định nghĩa dữ liệu định nghĩa kiểu cấu trúc tạo quan hệ xây dựng từ các kiểu dữ liệu này thay đổi phép toán cơ bản xem lại chọn, chiếu, kết nối 16 Ví dụ Căn hộ chung cư tạo thành từ danh sách các phòng Mô hình quan hệ Phòng NoAp NoR Tên Diện tích 1 1 Khách 30 1 2 Phòng ăn 20 1 3 Bếp 10 1 4 Phòng ngủ 20 1 5 Phòng tắm 6 2 2 Phòng ngủ 15 2 1 Phòng ngủ 40 2 3 Phòng tắm 4 17 Sử dụng mô hình chuẩn 2 Phòng NoAp Phòng 1 2 18 Mô hình chuẩn 2 Phép toán mới: NEST và UNNEST NEST: chuẩn 1 => chuẩn 2 cho phép gom tập hợp các thành phần UNNEST: chuẩn 2 => chuẩn 1 phân rã đưa về chuẩn 1 19 Nest và Unnest NEST UNNEST Phòng NoAp Phòng 1 2 Phòng NoAp NoR Tên Diện tích 1 1 Khách 30 1 2 Phòng ăn 20 1 3 Bếp 10 1 4 Phòng ngủ 20 1 5 Phòng tắm 6 2 2 Phòng ngủ 15 2 1 Phòng ngủ 40 2 3 Phòng tắm 4 20 Mô hình chuẩn 2 Mở rộng mô hình quan hệ thay đổi nhân cơ bản của HQTCSDL hỗ trợ phép toán quan hệ trên đối tượng dữ liệu phức tạp xử lý hiệu quả các thao tác trên đối tượng này cải tiến ngôn ngữ định nghĩa dữ liệu định nghĩa kiểu mới tạo mối liên quan được xác định từ các kiểu mới Thay đổi quá nhiều SQL3 và đối tượng 22 Mục tiêu Cho phép định nghĩa kiểu dữ liệu đặc thù cho ứng dụng tái sử dụng (kế thừa) có thể mở rộng Cho phép tích hợp hàm và thủ tục giới thiệu khái niệm kiểu trừu tượng định nghĩa thủ tục, hàm xử lý kiểu dữ liệu này 23 Kiểu dữ liệu cơ bản trong SQL SQL 2 hay SQL92 mở rộng tập kiểu cơ bản date, time, bit tạo miền giá trị CREATE DOMAIN Name IS VARCHAR (30) giới thiệu ràng buộc toàn vẹn ràng buộc miền ràng buộc tham chiếu 24 Điểm mới trong SQL3 Kiểu mẩu tin sử dụng kiểu mẩu tin để tạo kiểu mới Kiểu tham chiếu cho phép gắn định danh đến mẩu tin Kiểu tập hợp mảng (ARRAY), tập hợp, danh sách, ... Kiểu con, kiểu cha kế thừa 25 Điểm mới trong SQL3 Kiểu trừu tượng người sử dụng định nghĩa cho phép tích hợp thủ tục, hàm xử lý kiểu này Lưu trữ thủ tục cho phép lưu trữ mã chương trình những triggers thủ tục kích hoạt tự động 26 Kiểu mẩu tin Mục tiêu định nghĩa kiểu mới bằng cách tập hợp các kiểu dữ liệu cơ bản có sẵn có thể được sử dụng trong định nghĩa thuộc tính Cú pháp định nghĩa kiểu đơn CREATE ROW TYPE TypeName định nghĩa đệ quy 27 Kiểu mẩu tin Ví dụ 1: CREATE ROW TYPE PropType ( NAS: char(10), LastName: char(20), FirstName: char(20)); Ví dụ 2: CREATE TABLE Appartment ( Nap: integer, Addr: ROW ( No: integer, Str: char(20), City: char(20))); 28 Kiểu tham chiếu Mục tiêu cho phép định nghĩa tham chiếu trên mẩu tin sử dụng cho việc cài đặt định danh đối tượng tham chiếu có thể truy cập trong khi tạo bảng, người ta đặc tả rằng tham chiếu được sinh ra bởi hệ thống Cú pháp REF (TypeName) 29 Kiểu tham chiếu Ví dụ 1: CREATE ROW TYPE BuyType ( Prop: REF(PropType), Appartment: REF(AppType), BuyDate: date, Price: float); Ví dụ 2: CREATE ROW TYPE PropType ( NAS: char(10); LastName: char(20), FirstName: char(20), PropId: REF(PropType)); 30 Tạo bảng Nhiều cách khác nhau sử dụng những kiểu để định nghĩa những lớp kiểu định nghĩa những thuộc tính khi tạo bảng Ví dụ 1: CREATE TABLE Prop OF TYPE PropType VALUES FOR PropId ARE SYSTEM GENERATED; Ví dụ 2: CREATE TABLE Prop AS ( NAS: char(10); LastName: char(20), FirstName: char(20), PropId: REF(PropType)); 31 Những kiểu tập hợp Mục tiêu định nghĩa tập hợp Phép tạo tập hợp: không quan tâm đến thứ tự, không có 2 phần tử giống nhau SET Giỏ: không quan tâm đến thứ tự, có thể có 2 phần tử giống nhau MULTISET Danh sách: thứ tự, có thể có 2 phần tử giống nhau LIST Mảng: thứ tự, có chỉ mục ARRAY 32 Những kiểu tập hợp Trong SQL3 hiện nay chỉ có kiểu mảng các kiểu khác sẽ có trong tương lai (SQL4) Ví dụ định nghĩa thuộc tính FirstName là mảng 3 phần tử CREATE ROW TYPE PropType ( NAS: char(10); LastName: char(20), FirstName: char(20) ARRAY(3), PropId: REF(PropType)); 33 Kiểu con, kiểu cha Mục tiêu cho phép tái sử dụng định nghĩa kiểu cho phép chuyên biệt hóa kiểu Cú pháp CREATE TYPE sontype UNDER fathertype AS (Danh sách thuộc tính chuyên biệt) Ví dụ CREATE TYPE TChild UNDER TPerson AS (PrefGame: char(20)); 34 Bảng, kế thừa bảng Mục tiêu cho phép định nghĩa kế thừa khi tạo bảng Cú pháp CREATE TABLE undertable UNDER table AS (Danh sách thuộc tính chuyên biệt) Ví dụ CREATE TABLE Child UNDER Person AS (PrefGame: char(20)); 35 Kiểu người sử dụng định nghĩa Định nghĩa kiểu được tạo từ các kiểu cơ bản và được tích hợp các phép toán xử lý nó tương tự kiểu trừu tượng Bao gồm định nghĩa cấu trúc dữ liệu phép toán (thủ tục, hàm) 36 Kiểu người sử dụng định nghĩa Cú pháp CREATE TYPE TypeName AS (Danh sách thuộc tính chuyên biệt) [định nghĩa lại các phép toán = và <] [định nghĩa phương thức] Ví dụ CREATE TYPE Point (x integer, y integer, FUNCTION EQUALS (:p Point, :q Point) RETURN BOOLEAN; BEGIN IF :p.x = :q.x AND :p.y = :q.y THEN RETURN TRUE ELSE RETURN FALSE; END; 37 Định nghĩa hàm, thủ tục Sử dụng ngôn ngữ lập trình Oracle: PL/SQL Trong khai báo phương thức, ta có thể định nghĩa signature và mã phương thức Định nghĩa hàm, thủ tục CREATE FUNCTION 38 Ví dụ: định nghĩa dữ liệu Định nghĩa kiểu CREATE TYPE BuyType ( Prop: REF(PropType), Appart: REF(AppType), BuyDate: date, Price: float); CREATE TYPE PropType ( NAS: char(10); LastName: char(20), FirstName: char(20) ARRAY(3), PropId: REF(PropType)); 39 Ví dụ: định nghĩa dữ liệu Tạo kiểu: CREATE TYPE RoomType ( Size: integer, Cat: char(20)); 40 Ví dụ: định nghĩa dữ liệu CREATE TYPE AppType ( Nap: integer, Addr: ROW ( No: integer, Str: char(20), City: char(20)) Rooms: SET (RoomType) FUNCTION SurfaceTotal (A AppType) RETURNS INTEGER RETURN /* mã chtrình .. */ END); 41 Ví dụ: định nghĩa dữ liệu Tạo bảng CREATE TABLE Prop OF TYPE PropType VALUES FOR PropId ARE SYSTEM GENERATED; CREATE TABLE Appartments OF TYPE AppType; CREATE TABLE Buy OF TYPE BuyType; Thao tác dữ liệu 43 Sử dụng kiểu dữ liệu định nghĩa Thao tác trên các thuộc tính tìm kiếm số của những căn hộ chung cư trên đường Logan của thành phố Saint-Lambert SELECT Nap FROM Appartments WHERE Addr.Str = ‘Logan’ AND Addr.City = ‘Saint-Lambert’ 44 Sử dụng những tham chiếu Phép duyệt tìm kiếm ngày mua liên tiếp của căn hộ chung cư tại 341 đường Green thành phố Montréal SELECT BuyDate FROM Buy WHERE Appart->Addr.Str = ‘Green’ AND Appart->Addr.City = ‘Montréal’ AND Appart->Addr.No = 341 45 Gọi hàm Gọi hàm tính tổng diện tích của căn hộ chung cư tại 341 đường Victoria thành phố Québec SELECT SurfaceTotal FROM Appartment A WHERE Addr.Str = ‘Victoria’ AND Addr.City = ‘Québec’ AND Addr.No = 341 46 Duyệt qua phân cấp kế thừa Chuyên biệt hóa trong câu truy vấn từ đồ thị kế thừa tìm kiếm họ của người có tên Adrien SELECT LastName FROM ONLY Person WHERE FirstName = ‘Adrien’ 47
File đính kèm:
- bai_giang_co_so_du_lieu_nang_cao_chuong_4_co_so_du_lieu_quan.pdf