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ị [email protected] 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 bai_giang_co_so_du_lieu_nang_cao_chuong_4_co_so_du_lieu_quan.pdf




