TT.CNTT - Đại học Huế
1
Mô hình dữ liệu quan hệ
Relation Model
Nội dung trình bày
TT.CNTT - Đại học Huế
2
Định nghĩa mô hình dữ liệu quan hệ
Ngôn ngữ truy vấn SQL
Định nghĩa dữ liệu
Cập nhật dữ liệu
Truy vấn dữ liệu
Mô tả ràng buộc
Tạo sao phải nghiên cứu mô hình
quan hệ?
TT.CNTT - Đại học Huế
3
Là mô hình được dùng rộng rãi nhất.
Vendors: IBM, Informix, Microsoft, Oracle,
Sybase, etc.
Đối thủ cạnh tranh: mô hình hướng đối
tượng
ObjectStore, Versant, Ontos
a synthesis emerging: object-relational model
Informix Universal Server, UniSQL, O2, Oracle, DB2
Các định nghĩa
TT.CNTT - Đại học Huế
4
Cơ sở dữ liệu quan hệ: tập hợp các quan hệ
(relation).
Quan hệ: gồm 2 phần:
Thể hiện: là một table, với các hàng và cột.
Lược đồ (Schema): đặc tả tên quan hệ cũng như
tên và kiểu của mỗi cột.
Ví dụ. Students(sid: string, name: string, login: string,
age: integer, gpa: real)
Có thể coi quan hệ như tập hợp các
dòng (rows) hoặc bộ (tuples).
Ví dụ: Thể hiện của quan hệ Sinh
viên
TT.CNTT - Đại học Huế
5
Ví dụ:
Thể hiện quan hệ Tài khoản
TT.CNTT - Đại học Huế 6
Acct Name
Balance
1005 Jones
$1023.22
1002 Smith
$22.43
1003 Smith
$11000.12
1008 Green $1077.23
Address
11 First St
12 First St
12 First St
14 Fourth St
1010 Gates
$5,000,000,000.00
20 Tenth St
1012 Smith
$443.77
15 Second St
Nội dung trình bày
TT.CNTT - Đại học Huế
7
Định nghĩa mô hình dữ liệu quan hệ
Ngôn ngữ truy vấn SQL
Định nghĩa dữ liệu
Cập nhật dữ liệu
Truy vấn dữ liệu
Mô tả ràng buộc
Chuyển mô hình ER thành mô hình quan hệ
Ngôn ngữ truy vấn quan hệ
TT.CNTT - Đại học Huế
8
Lợi ích chính của mô hình quan hệ: hỗ
trợ việc truy vấn dữ liệu đơn giản mà
hiệu quả.
Các truy vấn có thể mô tả bằng trực
giác, và DBMS chịu trách nhiệm thực
hiện truy vấn.
Ngôn ngữ truy vấn SQL
TT.CNTT - Đại học Huế
9
Được phát triển bởi IBM (system R) vào
những năm 1970
Bao gồm các chuẩn:
SQL-86
SQL-89
SQL-92 (chuẩn hiện tại đang sử dụng)
SQL-99 (đề xuất mở rộng)
Tạo một bảng trong SQL
TT.CNTT - Đại học Huế
10
CREATE TABLE Students
(sid CHAR(20),
name CHAR(20),
login CHAR(10),
age INTEGER,
gpa REAL)
CREATE TABLE Enrolled
(sid CHAR(20),
cid CHAR(20),
grade CHAR(2))