Tải bản đầy đủ (.ppt) (41 trang)

cơ sở dữ liệu - vũ song tùng

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (265.57 KB, 41 trang )


CƠ SỞ DỮ LIỆU
Vũ Song Tùng
Khoa Điện tử - Viễn Thông
ĐHBK – Hà Nội

Chương 1. Các khái niệm cơ bản

Cơ sở dữ liệu (CSDL): Tập hợp các dữ liệu của
một hệ thống thông tin, được lưu trữ theo một
cung cách nhất định để có thể xử lý bằng máy
tính điện tử.

MS Access, SQL server, MySQL, Oracle

Hệ quản trị (HQT) CSDL: Tập hợp các chương
trình, thuật toán để thao tác trên CSDL.

Kiến trúc của CSDL:
Gồm 3 mức: vật lý (physical), khái niệm (logical)
và khung nhìn (view)

Chương 1. Các khái niệm cơ bản
Khung nhìn
Khái niệm
Vật lý

Chương 1. Các khái niệm cơ bản

Quan hệ (Relation): Tập con của tích Đề-các
của các miền.



Miền (domain): Tập các giá trị.

Gọi D
i
là một miền.

Tích Đề-các của n miền D
1
x D
2
x … x D
n
là tập tất
cả n-bộ (tuple), mỗi bộ là một tập hợp của n giá
trị (v
1
, v
2
, …, v
n
) với v
i
∈ D
i
| i = 1…n

Chương 1. Các khái niệm cơ bản
VD:
VD:


Miền THIÊN CAN (10 giá trị): Giáp, Ất,
Bính, Đinh, Mậu, Kỷ, Canh, Tân, Nhâm, Quý

Miền ĐỊA CHI (12 giá trị): Tý, Sửu, Dần,
Mão, Thìn, Tỵ, Ngọ, Mùi, Thân, Dậu, Tuất,
Hợi

Tích Đề-các của THIÊN CAN x ĐỊA CHI là
120 bộ:
{ (Giáp, Tý), (Giáp, Sửu), …, (Quý, Hợi) }

Chương 1. Các khái niệm cơ bản

Một số ký hiệu:

R = {A
1
, A
2
, …, A
n
} – Tập các thuộc tính

r(R) – Quan hệ trên tập thuộc tính của R

r(A
1
, A
2

, …, A
n
) – Quan hệ trên tập thuộc tính
{A
1
, A
2
, …, A
n
}

Chương 1. Các khái niệm cơ bản

Nếu biểu diễn quan hệ dưới dạng bảng thì mỗi hàng
là một bộ và mỗi cột là một thuộc tính của quan hệ.
A
1
… A
n
Giá trị
Thuộc tính (Cột)Biến quan hệ
(Tên bảng)
r
Tiêu đề
Thân
Quan hệ
Bản ghi (Hàng)

Chương 1. Các khái niệm cơ bản
VD:

VD:

nếu R = { THIÊN CAN, ĐỊA CHI }

thì quan hệ tuổi(R) là tập hợp của 60 trong 120
bộ của tích Đề-các THIÊN CAN x ĐỊA CHI:
t
1
= (Giáp, Tý)
t
2
= (Ất, Sửu)

t
11
= (Giáp, Tuất)
t
13
= (Bính, Tý)

t
60
= (Quý, Hợi)

Chương 1. Các khái niệm cơ bản
VD:
VD:

Quan hệ năm_tuổi(NĂM, THIÊN CAN, ĐỊA CHI) là
một tập vô hạn các bộ:

t
1
= (1984, Giáp, Tý)
t
2
= (1985, Ất, Sửu)

t
60
= (2043, Quý, Hợi)
t
61
= (2044, Giáp, Tý)

Chương 1. Các khái niệm cơ bản

Khóa (Key):
Khóa của quan hệ r(R) là tập con K ⊆ R
sao cho, với hai bộ bất kỳ t1, t2 ∈ r, luôn
tồn tại một thuộc tính A ∈ K mà t1(A) ≠
t2(A) hay t1(K) ≠ t2(K)

Chương 1. Các khái niệm cơ bản
VD:
VD:

Khóa của quan hệ tuổi(THIÊN CAN, ĐỊA CHI)
là tập hợp của cả 2 thuộc tính

Khóa của quan hệ năm_tuổi(NĂM, THIÊN

CAN, ĐỊA CHI) có thể là {NĂM}, {NĂM, THIÊN
CAN}, {NĂM, ĐỊA CHI} hoặc tập hợp của cả 3
thuộc tính

Chương 1. Các khái niệm cơ bản

Các phép toán cập nhật dữ liệu

Phép chèn (insert):

INSERT (r; A
1
=v
1
, A
2
= v
2
, …, A
n
= v
n
)

Phép xóa (delete):

DEL (r; K
1
= k
1

, K
2
= k
2
, …, K
m
= k
m
)

Phép chỉnh sửa (change):

CH (r; K
1
= k
1
, K
2
= k
2
, …, K
m
= k
m
; X
1
= v
1
, X
2

= v
2
, …, X
n
=
v
n
)
A
i
– Thuộc tính của r
K
i
– Khóa của r
X
i
– Thuộc tính không khóa của r
v
i
– giá trị trong miền của thuộc tính i của r

Chương 2. Ngôn ngữ SQL

SQL
Ngôn ngữ truy vấn có cấu trúc (Structured
Query Language)

Có thể chia làm 2 loại

Ngôn ngữ định nghĩa dữ liệu DDL (Data

Definition Language)

Ngôn ngữ thao tác dữ liệu (Data Manipulation
Language)

Chương 2. Ngôn ngữ SQL

Đại số quan hệ
a. Phép hợp (Union): Phép hợp của hai quan
hệ khả hợp r
1
và r
2
, ký hiệu là r
1
∪ r
2
, là tập tất
cả các bộ thuộc r
1
hoặc r
2
hoặc thuộc cả hai
quan hệ, nghĩa là:
r
1
∪ r
2
= { t | t ∈ r
1

∨ t ∈ r
2
}
SELECT *, 1 AS LanThi FROM tblDiem
UNION
SELECT *, 2 AS LanThi FROM tblThiLai

Chương 2. Ngôn ngữ SQL

Đại số quan hệ
b. Phép giao (Intersection): Phép giao của hai
quan hệ khả hợp r
1
và r
2
, ký hiệu là r
1
∩ r
2
, là
tập tất cả các bộ thuộc cả hai quan hệ,
nghĩa là:
r
1
∩ r
2
= { t | t ∈ r
1
∧ t ∈ r
2

}
SELECT * FROM tblSinhVien WHERE SHSV
IN (SELECT SHSV FROM tblThiLai)

Chương 2. Ngôn ngữ SQL

Đại số quan hệ
c. Phép trừ (Minus): Phép trừ của hai quan hệ
khả hợp r
1
và r
2
, ký hiệu là r
1
– r
2
, là tập tất cả
các bộ thuộc r
1
nhưng không thuộc r
2
, nghĩa
là:
r
1
– r
2
= { t | t ∈ r
1
∧ t ∉ r

2
}
SELECT * FROM tblSinhVien WHERE NOT SHSV
IN (SELECT SHSV FROM tblThiLai)

Chương 2. Ngôn ngữ SQL

Đại số quan hệ
d. Tích Đề-các (Cartesian Product): Phép tích Đề-
các của hai quan hệ r
1
(A
1
,…,A
n
) và r
2
(B
1
,…,B
m
), ký
hiệu là r
1
× r
2
, là tập tất cả (n+m)-bộ, mỗi bộ có n
thuộc tính thuộc r
1
và m thuộc tính thuộc r

2
, nghĩa là:
r
1
× r
2
= {t | t = (a
1
,…,a
n
,b
1
,…,b
n
) ∧ (a
1
,…,a
n
) ∈ r
1
∧ (b
1
,…,b
n
) ∈ r
2
}
SELECT SHSV, MaMon FROM tblSinhVien, tblMonHoc

Chương 2. Ngôn ngữ SQL


Đại số quan hệ
e. Phép chiếu (Projection): Phép chiếu trên
tập thuộc tính X ⊆ A của quan hệ r(A), ký
hiệu là ∏
X
(r), là tập các bộ của r xác định
trên X, nghĩa là:

X
(r) = { t[X] | t ∈ r }
SELECT SHSV FROM tblSinhVien

Chương 2. Ngôn ngữ SQL

Đại số quan hệ
f. Phép chọn (Selection): Phép chọn trên quan hệ r
với biểu thức chọn F, ký hiệu là σ
F
(r), là tập các bộ
của r thỏa mãn F, nghĩa là:
σ
F
(r) = { t | t ∈ r ∧ F(t) = true }
F là một biểu thức gồm các toán tử logic ∧ (AND), ∨ (OR), ¬ (NOT)
và các toán tử so sánh >, <, ≥, ≤, =, ≠.
SELECT SHSV, MaMon FROM tblDiem
WHERE (Diem < 5) OR (Diem IS NULL)

Chương 2. Ngôn ngữ SQL


Đại số quan hệ
g. Phép kết nối (Join): Phép kết nối hai quan hệ r
1
và r
2
, ký hiệu
là r
1
 r
2
, là sự kết nối hai quan hệ dựa trên tương quan nào
đó giữa các thuộc tính của hai quan hệ. Có thể coi phép kết
nối là sự kết hợp của phép tích Đề-các và phép chọn, nghĩa
là:
r
1
 r
2
= {t | t ∈ r
1
× r
2
∧ F(t(A∈r
1
), t(B∈r
2
)) = true}
F
SELECT Ho, Ten, TenMon, Diem FROM

tblSinhVien, tblDiem, tblMonHoc
WHERE
tblSinhVien.SHSV = tblDiem.SHSV AND
tblMonHoc.MaMon = tblDiem.MaMon
SELECT Ho, Ten, TenMon, Diem FROM
(tblSinhVien INNER JOIN tblDiem ON
tblSinhVien.SHSV = tblDiem.SHSV)
INNER JOIN tblMonHoc ON
tblDiem.MaMon = tblMonHoc.MaMon

Chương 2. Ngôn ngữ SQL

Đại số quan hệ
h. Phép chia (Division): Phép chia của hai quan hệ
r
1
(A
1
,…,A
n
) và r
2
(B
1
,…,B
m
) với (n > m ∧ r2 ≠ ∅), ký
hiệu là r
1
÷ r

2
, là tập tất cả (n−m)-bộ {t | t ∩ ∀u

∈ r1},
có thể coi phép chia là nghịch đảo của phép tích Đề-
các, nghĩa là:
r
1
÷ r
2
= r
3
⇒ r
1
⊇ r
3
× r
2

Chương 2. Ngôn ngữ SQL

Khối SELECT
SELECT [predicate] { * | table.* | [table.]field1 [AS alias1] [,
[table.]field2 [AS alias2] [, ]]}
FROM
tableexpression [, ]
[WHERE ]
[GROUP BY ]
[HAVING ]
[ORDER BY ]


Chương 2. Ngôn ngữ SQL

Khối SELECT
predicate
Một trong các tiền tố: ALL, DISTINCT, DISTINCTROW, hoặc TOP.
Dùng tiền tố để chỉ ra số lượng bản ghi được chọn. Mặc định là
ALL.
*
Lấy tất cả các trường của bảng (hoặc các bảng).
table
Tên của bảng chứa trường được chọn.
field1, field2
Tên của trường được chọn. Trong trường hợp các trường được liệt
kê rõ thì thứ tự các cột sẽ là thứ tự các trường trong danh sách.
alias1, alias2
Tên hình thức. Dùng làm tiêu đề của một cột trong table.
tableexpression
Tên bảng dữ liệu
externaldatabase
Tên của CSDL chứa table. Dùng trong trường hợp cần lấy dữ liệu từ
CSDL khác

Chương 2. Ngôn ngữ SQL

Khối SELECT – các hằng
123 Số nguyên
123.5 Số thực
‘abc’ hoặc “abc” Xâu ký tự
#5/19/2010# Ngày tháng


Chương 2. Ngôn ngữ SQL

Mệnh đề WHERE

Các biểu thức với các toán tử so sánh

Sử dụng các toán tử logic AND, OR để nối các biểu
thức

Sử dụng toán tử NOT để phủ định một biểu thức
SELECT * FROM
tblPhongBan
WHERE
((MaPhongBan=1)
OR
(MaPhongBan=2))
MaPhongBan TenPhongBan
1 Phòng hành chính
2 Phòng tài vụ

×