Professional Documents
Culture Documents
Cơ sở dữ liệu
Đại số quan hệ
Dữ liệu
50010273 Nguyễn Trung Tiến MT00 20
50100298 Lê Việt Hùng MT01 19
59900012 Trần Hùng Việt MT99 21
50200542 Hồ Xuân Hương MT02 18
50000075 Bùi Đức Duy MT00 20
MT99
20%
MT00
40%
MT02
20%
MT01
20%
Các khái niệm cơ bản và định nghĩa
Siêu dữ liệu
metadata
Siêu dữ liệu là dữ liệu dùng để mô tả các tính
chất / đặc tính của dữ liệu khác (dữ liệu về
dữ liệu).
Các đặc tính: định nghĩa dữ liệu, cấu trúc dữ
liệu, qui tắc / ràng buộc.
Các khái niệm cơ bản và định nghĩa
Entity
symbols
Attribute
symbols
A special
entity that is
also a
relationship
Relationship
degrees
specify
number of
entity types
involved
Relationship
cardinalities
specify how
many of each
entity type is
allowed
Thực thể
Thể hiện thực thể
entity instance
Thể hiện thực thể là người, vị trí, đối tượng,
sự kiện, khái niệm (thường tương ứng với
một hàng của bảng).
Thực thể nên là
đối tượng có nhiều thể hiện trong CSDL.
đối tượng có nhiều thuộc tính.
đối tượng cần được mô hình hóa.
Thực thể không nên là
người sử dụng của hệ CSDL.
kết xuất của hệ CSDL (ví dụ bản báo cáo).
Đặc điểm của thực thể là tính phân biệt
(distinctness): có thể phân biệt giữa thực thể
này với thực thể khác.
Thực thể
Kiểu thực thể
entity type
Kiểu thực thể là tập hợp các thực thể thuộc
cùng một loại (thường tương ứng với một
bảng).
Được biểu diễn bằng hình chữ nhật.
Thuộc tính
Thuộc tính
attribute
Thuộc tính là một đặc tính / tính chất của một
kiểu thực thể (thường tương ứng với một
vùng tin trong một bảng).
Được biểu diễn bằng hình bầu dục.
Các loại thuộc tính
Thuộc tính bắt buộc và thuộc tính tùy chọn.
Thuộc tính đơn và thuộc tính phức hợp.
Thuộc tính đơn trị và thuộc tính đa trị.
Thuộc tính chứa và thuộc tính dẫn xuất.
Thuộc tính khóa và thuộc tính không khóa.
Thuộc tính
Thuộc tính đơn và thuộc tính phức hợp
Thuộc tính đơn (simple attribute) là thuộc
tính không bị phân rã thành nhiều thuộc tính
khác.
Thuộc tính phức hợp (composite attribute) là
thuộc tính bị phân rã thành nhiều thuộc tính
khác.
Thuộc tính
Khóa đơn
1. Vẽ ERD:
-Một sinh viên có thể đăng ký nhiều môn học, một
môn học có thể được đăng ký bởi nhiều sinh viên
hoặc không có sinh viên nào đăng ký
-Một loại mặt hàng có thể được bán cho nhiều
khách hàng, một khách hàng có thể được mua
nhiều loại mặt hàng khác nhau
-Một tòa nhà có nhiều phòng học, một phòng học
chỉ thuộc về một tòa nhà nào đó, trong phòng học
có nhiều loại thiết bị giảng dạy, một loại thiết bị
giảng dạy có thể có ở nhiều phòng học
Ví dụ
2. Vẽ ERD:
-Một sinh viên gồm tên sv, mã số sv, lớp được
mượn nhiều đầu sách tại thư viện, một đầu sách
gồm tên đầu sách, nhà xuất bản, mã số, tác giả có
thể được mượn bởi nhiều sinh viên. Khi mượn cần
có thông tin ngày mượng
-Một dự án có thể được làm bởi nhiều công nhân ở
một thành phố, một công nhân chỉ được tham gia
vào một dự án, một thành phố có thể có nhiều dự
án
Ví dụ
3. Vẽ ERD:
-Sinh viên gồm masv, tên sinh viên, lớp có thể
mượn nhiều đầu sách khác nhau, mỗi đầu sách
gồm tên đầu sách, mã đầu sách, tác giả, nhà xuất
bản, số trang. Mỗi đầu sách có thể được mượng
bởi nhiều sinh viên.
-Mỗi khoa có nhiều sinh viên, sinh viên gồm mã sv,
họ tên, ngày sinh. Mỗi sinh viên chỉ học ở một
khoa. Khoa gồm mã khoa, tên khoa. Khoa gồm
nhiều giảng viên, giảng viên có thông tin tên giảng
viên, mã giảng viên, học vị. Mỗi giảng viên chỉ
thuộc về một khoa
Quan hệ
Quan hệ (relation) là một bảng dữ liệu hai
chiều bao gồm nhiều hàng (mẩu tin, hay là
bộ) và nhiều cột (thuộc tính hoặc vùng tin).
Mỗi hàng là duy nhất: không thể có hai hàng
có cùng các giá trị ở tất cả vùng tin.
Thứ tự của các hàng là không quan trọng.
Thứ tự của các cột là không quan trọng.
Không phải mọi bảng đều là quan hệ. Quan
hệ là một bảng không chứa các hàng giống
hệt nhau.
Quan hệ
Primary Key
Lược đồ cơ sở dữ liệu:
Emp (Empnum, Name, Sal, Tax, Mgrnum, Deptnum)
Dept (Deptnum, Name, Area, Mgrnum)
Supplier (Snum, Name, City)
Supply (Snum, Pnum, Deptnum, Quan)
Biến đổi ERD thành các quan hệ
Qui tắc 1: Biến đổi một kiểu thực thể thành
một quan hệ.
Đối với kiểu thực thể thông thường (regular
entity type): khóa của quan hệ là khóa của
kiểu thực thể.
Thuộc tính của quan hệ là thuộc tính của kiểu
thực thể.
Quan hệ chỉ chứa các thuộc tính thành phần
của thuộc tính phức hợp.
Quan hệ không chứa các thuộc tính đa trị.
Biến đổi ERD thành các quan hệ
CUSTOMER relation
Multivalued attribute
becomes a separate
relation with foreign key
Biến đổi mối liên kết một ngôi có lượng số một - một
Biến đổi ERD thành các quan hệ
Nurse_ID
Biến đổi mối liên kết hai ngôi có lượng số một - một
Biến đổi ERD thành các quan hệ
Qui tắc 4: Biểu diễn mối liên kết 1-ngôi
hoặc 2-ngôi có lượng số một-nhiều.
Đặt khóa của kiểu thực thể bên phía một và
các thuộc tính của mối liên kết vào quan hệ
của kiểu thực thể bên phía nhiều.
Biến đổi ERD thành các quan hệ
Biến đổi mối liên kết một ngôi có lượng số một - nhiều
Biến đổi ERD thành các quan hệ
Biến đổi mối liên kết hai ngôi có lượng số một - nhiều
Biến đổi ERD thành các quan hệ
Qui tắc 5: Biến đổi mối liên kết 1-ngôi hoặc
2-ngôi có lượng số nhiều-nhiều thành một
quan hệ.
Quan hệ chứa các khóa của các kiểu thực thể
tham gia vào mối liên kết.
Khóa của quan hệ gồm cả hai khóa của hai
kiểu thực thể.
Thuộc tính của quan hệ là thuộc tính của mối
liên kết.
Biến đổi ERD thành các quan hệ
Bill-of-materials
relationships
(M:N)
Biến đổi mối liên kết một ngôi có lượng số nhiều - nhiều
Biến đổi ERD thành các quan hệ
The Supplies
relationship will need
to become a separate
Composite primary key relation
New intersection
Foreign key relation
Foreign key
Biến đổi mối liên kết hai ngôi có lượng số nhiều - nhiều
Biến đổi ERD thành các quan hệ
Qui tắc 6: Biến đổi mối liên kết 3-ngôi
thành một quan hệ.
Quan hệ chứa ba khóa của ba kiểu thực thể
tham gia vào mối liên kết.
Mối liên kết có bao nhiêu kiểu thực thể bên
phía một thì quan hệ có bấy nhiêu khóa: đối
với một kiểu thực thể bên phía một thì khóa
của quan hệ gồm cả hai khóa của hai kiểu
thực thể còn lại. Nếu không có kiểu thực thể
bên phía một thì khóa của quan hệ bao gồm
cả ba khóa của ba kiểu thực thể.
Thuộc tính của quan hệ là thuộc tính của mối
liên kết.
Biến đổi ERD thành các quan hệ
r1+ r2 là
Các phép toán đại số trên quan hệ
Phép hợp 2 quan hệ (union)
- Do thứ tự trước/sau của các bộ trong các
quan hệ là không quan trọng nên ta có:
∀ r1, r2 thì r1 + r2 = r2 + r1
∀ r thì r + r = r
- Một cách tổng quát có thể lấy hợp của n
quan hệ tương thích: cho n quan hệ tương
thích r1,r2,…,rn
- Hợp của n quan hệ r1,r2,…,rn là một quan
hệ r1 + r2+ …+ rn gồm các phần tử thuộc r1
hoặc thuộc r2 … hoặc thuộc rn
Các phép toán đại số trên quan hệ
Phép giao 2 quan hệ (intersection)
- Cho lược đồ quan hệ Q(A1,A2,..,An ). r1 và
r2 là hai quan hệ tương thích trên Q.
- Giao của hai quan hệ r1 và r2 ký hiệu là r1 *
r2 là một quan hệ trên Q gồm các phần tử
vừa thuộc r1 vừa thuộc r2.
Vậy: r1 * r2 = { t / t ∈ r1 và t ∈ r2}
Ví dụ: r1*r2
Các phép toán đại số trên quan hệ
Phép trừ 2 quan hệ (Minus)
- Cho hai quan hệ tương thích r1 và r2 có tập
thuộc tính Q(A1,A2,..,An ). Hiệu của r1 cho r2
ký hiệu là r1 – r2 là một quan hệ trên Q gồm
các phần tử chỉ thuộc r1 mà không thuộc r2,
nghĩa là r1 - r2 = {t / t ∈ r1 và t ∉ r2}
Ví dụ: r1-r2
Các phép toán đại số trên quan hệ
Tích decac 2 quan hệ (Cartesian Product)
Cho hai lược đồ quan hệ
Q1(A1,A2,..,An)
Q2(B1,B2,..,Bm)
Giả sử r1 , r2 là hai quan hệ trên Q1,Q2 tương
ứng. Tích Descartes (decac) của r1 và r2 ký
hiệu là r1 x r2 là quan hệ trên lược đồ quan hệ
có tập thuộc tính Q= Q1 ∪ Q2.
Vậy quan hệ r1 x r2 là quan hệ trên lược đồ:
Q = Q1 ∪ Q2 = { A1,A2,..,An,B1,B2,..,Bm } với
r1 x r2 = {(t1,t2) : t1 ∈ r1, t2 ∈ r2 }
Các phép toán đại số trên quan hệ
Tích decac 2 quan hệ (Cartesian Product)
Ví dụ: r1x r2
Các phép toán đại số trên quan hệ
Chia 2 quan hệ
- Cho 2 lược đồ quan hệ
Q1(A1,A2,..,An)
Q2(B1,B2,..,Bm)
r là quan hệ xác định trên Q1; s là quan hệ xác
định trên Q2 (n>m và s khác rỗng), có m thuộc
tính chung (giống nhau về mặt ngữ nghĩa, hoặc
các thuộc tính có thể so sánh được) giữa r và
s. phép chia 2 quan hệ r và s ký hiệu
r ÷ s , là một quan hệ q có n - m thuộc tính
được định nghĩa như sau:
q= r ÷ s={t/ ∀ u ∈ s, (t,u) ∈ r}
Các phép toán đại số trên quan hệ
Chia 2 quan hệ
- Ví dụ:
Các phép toán đại số trên quan hệ
Phép chiếu (projection)
- Cho lược đồ quan hệ Q(A1,A2,..,An), r là
quan hệ trên Q và X ⊆ Q+.
Phép chiếu của r lên tập thuộc tính X, ký hiệu
là r[X] (hoặc r.X) sẽ tạo thành lược đồ quan hệ
r’, trong đó tập thuộc tính của r’ chính là X và
quan hệ r’ được trích từ r bằng cách chỉ lấy
các thuộc tính có trong X.
Phép chiếu chính là phép rút trích dữ liệu theo
cột.
Các phép toán đại số trên quan hệ
Phép chiếu (projection)
- Ví dụ r1 chiếu lên X={A,C} là
Các phép toán đại số trên quan hệ
Phép chọn (selection)
- Cho lược đồ quan hệ Q(A1,A2,..,An), r là một
quan hệ trên lược đồ quan hệ Q. X là một tập
con của Q+ và E là một mệnh đề logic được
phát biểu trên tập X. Phần tử t ∈ r thoả mãn
điều kiện E ký hiệu là t(E). Phép chọn từ quan
hệ r theo điều kiện E (ký hiệu là r : E )sẽ tạo
thành một quan hệ mới ký hiệu là
r(E), trong đó r(E) = {t: t ∈ r và t(E)}
- Phép chọn chính là phép rút trích dữ liệu theo
dòng
Các phép toán đại số trên quan hệ
Phép chọn (selection)
- Ví dụ r2: “F >= 6”
Các phép toán đại số trên quan hệ
Phép θ - Kết
- Cho hai lược đồ quan hệ Q1 và Q2 như sau
Q1(A1,A2,..,An)
Q2(B1,B2,..,Bm)
r và s lần lượt là hai quan hệ trên Q1 và Q2.
Ai và Bj lần lượt là thuộc tính của Q1 , Q2 sao
cho MGT(AI)= MGT(BJ). θ là một trong các phép
so sánh (=, <, >, ≤ , ≥, ≠ ) trên MGT(AI).
Các phép toán đại số trên quan hệ
Phép θ - Kết
- Phép θ kết giữa r và s theo điều kiện Ai θ Bj
ký hiệu là r |><| s là một quan hệ trên lược đồ
quan hệ có tập thuộc tính là Q1 ∪ Q2. gồm
những bộ thuộc tích Descartes của r và s.
Ai θ Bj