Chương 2
Tổng quan về cơ sở dữ liệu
2006 Chương 2. Tổng quan về cơ sở dữ liệu Nguyễn Trung Trực - Khoa CNTT
1
Nội dung
(cid:153) Các khái niệm của CSDL quan hệ.
(cid:153) Các ràng buộc toàn vẹn.
(cid:153) Chuẩn hóa dữ liệu.
(cid:153) Các phép toán đại số quan hệ.
(cid:153) Ngôn ngữ SQL.
2006 Chương 2. Tổng quan về cơ sở dữ liệu Nguyễn Trung Trực - Khoa CNTT
2
Các khái niệm của CSDL quan hệ
(cid:153) Cơ sở dữ liệu
(cid:102) database
(cid:102) Cơ sở dữ liệu là sự tập hợp có tổ chức các dữ
liệu có liên quan luận lý với nhau.
(cid:102) Dữ liệu (data)
(cid:102) Có tổ chức (organized)
(cid:102) Có liên quan luận lý (logically related)
(cid:153) Cơ sở dữ liệu quan hệ
(cid:102) relational database
(cid:102) CSDL quan hệ là CSDL mà dữ liệu được lưu
trữ trong các bảng.
2006 Chương 2. Tổng quan về cơ sở dữ liệu Nguyễn Trung Trực - Khoa CNTT
3
Các khái niệm của CSDL quan hệ
(cid:153) Một số thuật ngữ
(cid:102) Miền (domain)
(cid:102) Thuộc tính (attribute).
(cid:102) Lược đồ quan hệ (relation schema).
(cid:102) Vị từ (predicate) của lược đồ quan hệ.
(cid:102) Bậc (degree) của lược đồ quan hệ.
(cid:102) Quan hệ (relation).
(cid:102) Thể hiện quan hệ (relation instance).
(cid:102) Bộ (tuple) của quan hệ.
(cid:102) Bậc (degree) của quan hệ.
(cid:102) Khóa (key) của lược đồ quan hệ.
2006 Chương 2. Tổng quan về cơ sở dữ liệu Nguyễn Trung Trực - Khoa CNTT
4
Các khái niệm của CSDL quan hệ
(cid:153) Một số thuật ngữ
(cid:102) Khóa (key).
(cid:102) Khóa dự tuyển (candidate key).
(cid:102) Khóa chính (primary key).
(cid:102) Khóa ngoại (foreign key).
(cid:102) Lược đồ cơ sở dữ liệu (database schema).
(cid:102) Ràng buộc toàn vẹn (integrity constraint).
2006 Chương 2. Tổng quan về cơ sở dữ liệu Nguyễn Trung Trực - Khoa CNTT
5
Các phép toán đại số quan hệ
(cid:153) Năm phép toán cơ bản
(cid:102) Phép chọn
(cid:102) Phép chiếu
(cid:102) Phép hợp
(cid:102) Phép hiệu
(cid:102) Phép tích Descartes
2006 Chương 2. Tổng quan về cơ sở dữ liệu Nguyễn Trung Trực - Khoa CNTT
6
Các phép toán đại số quan hệ
(cid:153) Các phép toán khác
(cid:102) Phép giao
(cid:102) Phép kết−θ
(cid:102) Phép kết tự nhiên
(cid:102) Phép kết ngoài
(cid:102) Phép nửa kết−θ
(cid:102) Phép nửa kết tự nhiên
(cid:102) Phép chia
2006 Chương 2. Tổng quan về cơ sở dữ liệu Nguyễn Trung Trực - Khoa CNTT
7
Định nghĩa bảng
Cú pháp của lệnh CREATE TABLE
CREATE TABLE
[]
AS SELECT statement;
2006 Chương 2. Tổng quan về cơ sở dữ liệu Nguyễn Trung Trực - Khoa CNTT
8
Thay đổi định nghĩa bảng
(cid:153) Lệnh ALTER TABLE dùng để thay đổi định
nghĩa của một bảng.
Cú pháp của lệnh ALTER TABLE.
ALTER TABLE
[ADD ⏐ MODIFY ⏐ DROP options]
( [])
[ENABLE clause⏐ DISABLE clause];
2006 Chương 2. Tổng quan về cơ sở dữ liệu Nguyễn Trung Trực - Khoa CNTT
9
Hủy bỏ bảng
(cid:153) Lệnh DROP TABLE dùng để hủy bỏ một
bảng trong một lược đồ.
Cú pháp của lệnh DROP TABLE:
DROP TABLE
[CASCADE CONSTRAINTS];
2006 Chương 2. Tổng quan về cơ sở dữ liệu Nguyễn Trung Trực - Khoa CNTT
10
Lệnh INSERT
(cid:153) Thêm dữ liệu vào một bảng
Cú pháp của lệnh INSERT - Thêm một hàng:
INSERT INTO
[()]
VALUES ();
2006 Chương 2. Tổng quan về cơ sở dữ liệu Nguyễn Trung Trực - Khoa CNTT
11
Lệnh DELETE
(cid:153) Xóa bỏ các hàng của một bảng
Cú pháp của lệnh DELETE:
DELETE [FROM]
[WHERE ];
2006 Chương 2. Tổng quan về cơ sở dữ liệu Nguyễn Trung Trực - Khoa CNTT
12
Lệnh UPDATE
(cid:153) Cập nhật dữ liệu của các hàng của một
bảng
Cú pháp của lệnh UPDATE:
UPDATE
[]
SET = {, }
[, = {, } …]
[WHERE ];
2006 Chương 2. Tổng quan về cơ sở dữ liệu Nguyễn Trung Trực - Khoa CNTT
13
Lệnh SELECT
(cid:153) Dùng để truy vấn dữ liệu của một bảng
hoặc nhiều bảng.
(cid:153) Lệnh SELECT thực hiện các phép toán của
đại số quan hệ.
(cid:102) Phép tích
(cid:102) Phép kết
(cid:102) Phép chọn
(cid:102) Phép chiếu
2006 Chương 2. Tổng quan về cơ sở dữ liệu Nguyễn Trung Trực - Khoa CNTT
14
Lệnh SELECT
Cú pháp của lệnh SELECT:
SELECT [DISTINCT]
[INTO ]
FROM
[WHERE ]
[GROUP BY
[HAVING ]]
[ORDER BY ];
2006 Chương 2. Tổng quan về cơ sở dữ liệu Nguyễn Trung Trực - Khoa CNTT
15
Lệnh SELECT
Hình 2.27. Thứ tự xử lý các
mệnh đề của lệnh SELECT.
2006 Chương 2. Tổng quan về cơ sở dữ liệu Nguyễn Trung Trực - Khoa CNTT
16
Hàm kết hợp
(cid:153) Hàm kết hợp (aggregate function) còn
được gọi là hàm nhóm (group function).
Hàm
Giá trị trả về
AVG ([DISTINCT ⏐ ALL] n)
Giá trị trung bình của n, bỏ qua các giá trị
rỗng.
] expr *)
COUNT ([DISTINCT ⏐ ALL
Số hàng mà expr có giá trị khác rỗng.
* làm cho COUNT đếm tất cả các hàng
được chọn, bao gồm các hàng trùng nhau
và các hàng có giá trị rỗng.
Giá trị lớn nhất của expr.
MAX ([DISTINCT ⏐ ALL] expr)
Giá trị nhỏ nhất của expr.
MIN ([DISTINCT ⏐ ALL] expr)
Tổng giá trị của n, bỏ qua các giá trị rỗng.
SUM ([DISTINCT ⏐ ALL] n)
STDDEV ([DISTINCT ⏐ ALL] n)
Độ lệch chuẩn (STanDard DEViation) của n,
bỏ qua các giá trị rỗng.
Phương sai của n, bỏ qua các giá trị rỗng.
VARIANCE ([DISTINCT ⏐ ALL] n)
2006 Chương 2. Tổng quan về cơ sở dữ liệu Nguyễn Trung Trực - Khoa CNTT
17
Các phép toán tập hợp
(cid:153) Hai lệnh SELECT có thể được kết nối với
nhau bằng các phép toán tập hợp bao gồm
phép hợp (union), phép giao (intersection)
và phép hiệu (minus).
SELECT statement_1
UNION [ALL]⏐INTERSECT⏐MINUS
SELECT statement_2;
2006 Chương 2. Tổng quan về cơ sở dữ liệu Nguyễn Trung Trực - Khoa CNTT
18
Xử lý giá trị rỗng
(cid:153) Hàm NVL (Null VaLue) dùng để đổi giá trị
rỗng thành một giá trị khác rỗng.
(cid:153) Hàm NVL có hai tham số: một biểu thức và
một giá trị khác rỗng.
2006 Chương 2. Tổng quan về cơ sở dữ liệu Nguyễn Trung Trực - Khoa CNTT
19
Truy vấn con
(cid:153) Truy vấn con
(cid:102) subquery
(cid:102) Là một truy vấn (lệnh SELECT) nằm trong
một truy vấn khác.
(cid:102) Truy vấn ngoài (outer query)
(cid:102) Truy vấn trong (inner query)
(cid:102) Truy vấn chính (main query)
(cid:153) Xuất hiện
(cid:102) Trong điều kiện của mệnh đề WHERE.
(cid:102) Như là một bảng trong mệnh đề FROM.
(cid:102) Trong điều kiện của mệnh đề HAVING.
2006 Chương 2. Tổng quan về cơ sở dữ liệu Nguyễn Trung Trực - Khoa CNTT
20
Truy vấn con
(cid:153) Các loại truy vấn con
(cid:102) Truy vấn con lồng nhau (nested subquery)
(cid:102) Truy vấn con
tương quan
(correlated
subquery)
2006 Chương 2. Tổng quan về cơ sở dữ liệu Nguyễn Trung Trực - Khoa CNTT
21