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

pdf 47 trang yennguyen 2760
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ị

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:

  • pdfbai_giang_co_so_du_lieu_nang_cao_chuong_4_co_so_du_lieu_quan.pdf