lOMoARcPSD| 58950985
Họ Tên: Nguyễn Hải Đăng
Lớp: 68IT4
Mã sinh viên: 0008068
Chương 3: Mô hình quan hệ
(Relaonal Data Model)
I. Mô hình quan hệ:
1. Khái niệm mô hình quan hệ:
Mô hình quan hệ (RM) là một cách ếp cận để quản lý dữ liu bằng cách sử dụng cấu trúc và
ngôn ngữ phù hợp với logic vị từ bậc nhất, được nhà khoa học máy nh người Anh Edgar F.
Codd tả lần đầu vào năm 1969, trong đó tất cả dữ liệu được biểu diễn dưới dạng các bộ
giá trị, được nhóm lại thành các mối quan hệ.
Cơ sở dữ liệu được tchức theo mô hình quan hệ là cơ sở dữ liệu quan hệ.
2. Tại sao gọi là quan hệ (relaon):
Quan hệ giữa các dòng dữ liệu trong bảng.
Bộ dữ liệu tương đồng (enty) tập hợp thành tập thực thể (enty set).
Các dòng có sự phân biệt.
Quan hệ quyết đnh - phụ thuộc: phụ thuộc nh năng: Từ giá trị ở thuộc nhy ta có thể suy
ra giá trị ở thuộc nh khác.
Quan hệ giữa các bảng.
3. Mức độ phbiến của mô hình quan hệ:
Mô hình Dữ liệu Quan hệ (Relaonal Data Model – RDM) lần đầu ên được Ted Codd của
IBM phát triển vào những năm 1970. Sau đó khoảng 10 năm, RDM chính thức được đưa vào
triển khai thương mại nhằm mục đích lưu trữ, xử lí dữ liệu trong sở dữ liệu. Sở dĩ RDM tr
nên phổ biến như vy chính bởi nh đơn giản trong sử dụng sở dữ liệu, cũng như nền tng
hỗ trợ tốt cho các nhà phát triển.
hình dữ liu quan hệ đóng vai trò quan trọng của hệ thống thông n hiện đại trong việc
tổ chức, lưu trữ và quản trị thông n.
Phần lớn hệ thống cơ sở dữ liệu hiện nay đều được xây dựng bằng mô hình dữ liệu quan hệ.
4. Các khối cấu thành nên mô hình quan hệ:
lOMoARcPSD| 58950985
Thực thể:
+ Bảng: tập hợp các dòng cột tương ứng với các bản ghi trường . Mỗi bảng một tên
duy nhất.
Thuộc nh :
+ Cột :Mỗi cột là một trường trong bản ghi ví dụ như tên, địa chỉ, ngày sinh, …
Quan hệ :
+ Tên
+ Tập hợp các cột : o Cố
định o Được đặt tên o
kiểu dữ liệu + Tập hợp
các dòng o Thay đổi theo
thời gian
+Một dòng ~ Một thực thể (enty) +Quan
hệ ~ Tập thực thể (enty set)
Ràng buộc :
+Trong một CSDL, ta nhiều quan hệ, nhiều thuộc nh, nhiều thể, nhiều liên kết giữa những
thành phần này lại có một số mối liên hệ với nhau, tương tác lẫn nhau. Để hệ CSDL hoạt động hiệu
quả, không bị hỏng hóc, những thành phần này cần phải chịu những ràng buc nhất đnh.
II. Building Blocks
1. Thực thể:
-Thực thể (Enty): Thực thể là một đối tượng có danh nh riêng biệt, không thay đổi trong suốt vòng
đời của nó. dụ, một người dùng trong hệ thống thể thay đổi tên, địa chỉ, nhưng danh nh của
người dùng đó vẫn không thay đổi.
2. Thuộc nh:
a) Khái niệm khóa:
Là tập hợp gồm 1 hay 1 số thuộc nh trong 1 bảng có nh chất vừa đủ để phân biệt được các
bộ hay không thể loại bớt một thuộc thính nào.
b) Các loại khóa trong mô hình quan hệ:
Siêu khóa: Một thuộc nh hoặc tổ hợp các thuộc nh xác định duy nhất mỗi hàng trong bảng.
Khóa ứng viên: Một siêu khóa tối thiểu (không thể gim bớt thuộc nh); superkey không chứa
tập hợp con các thuộc nh mà bản thân nó là superkey.
lOMoARcPSD| 58950985
Khóa chính: Một khóa ứng viên được chọn để xác định duy nhất tất cả các giá trị thuộc nh
khác trong bất kỳ hàng nhất đnh nào; không thchứa các mục nhập rng.
Khóa ngoại: Một thuộc nh hoặc tổ hợp các thuộc nh trong một bảng giá trị phải khớp
với khóa chính trong bảng khác hoặc là giá trị rỗng (null).
Khóa phụ: Một thuộc nh hoặc tổ hợp các thuộc nh được sử dụng cho mục đích truy xuất
dữ liệu: giới hạn lại số hàng cần m kiếm.
*Khóa ngoại và Khóa phụ thường gây nhầm lẫn cần phân biệt.
c) Khóa chính tốt:
Một khóa chính tốt thường có những đặc điểm sau:
Nó nhận dạng duy nhất mỗi hàng.
Nó không bị bỏ trống hoặc có giá trị null - nó luônchứa
một giá trị.
Các giá trị chứa hiếm khi (hoặc không baogiờ)
thay đổi.
d) nh toàn vẹn dữ liu:
là việc duy trì và đảm bảo nh chính xác và nh nhất quán của dliệu trong toàn bvòng đời
của nó. Đây là khía cạnh quan trọng đối với thiết kế, triển khai và sử dụng bất kỳ hệ thng nào
lưu trữ, xử lý hoặc truy xuất dữ liệu. Thuật ngữ y phạm vi rộng và có thể có nhiều ý nghĩa
khác nhau tùy thuộc vào ngữ cảnh cụ thể ngay cả trong cùng một lĩnh vực chung là điện toán.
Đôi khi nó được sử dụng như mt thuật ngữ đại diện cho cht lượng dữ liệu trong khi xác thực
dữ liệu là điều kiện ên quyết cho nh toàn vẹn dữ liệu. e) Quyết định - Phụ thuc:
Quyết định: Đây là một mô hình học máy được sử dụng để phân loại hoặc dự đoán dựa trên
các thuộc nh của dữ liệu. Cây quyết định sử dụng các thuộc nh để tạo ra các nút và nhánh,
từ đó đưa ra quyết định cuối cùng.
Phụ thuộc: Trong cơ sở dữ liệu, phụ thuộc là một mối quan hệ giữa các thuộc nh trong một
bảng. 3. Quan hệ:
a) Associaon (Liên kết): Đây là mối quan hệ cơ bản nhất, biểu thị sự kết nối giữa hai thực thể.
b) Aggregaon (Tổng hợp): Đây một loại liên kết đặc biệt, trong đó một thực thể (thực thể gốc)
chứa các thực thể khác. Các thực thể con có thể tồn tại độc lập với thực th gốc
c) Composion (Thành phần): Đây một dạng đặc biệt của tổng hợp, trong đó các thực thể con
không thể tồn tại độc lập với thực thể gốc.
d) Inheritance (Kế thừa): Đây mối quan hệ giữa các lớp, trong đó một lớp con kế thừa các thuộc
nh và phương thức của lớp cha.
e) Dependency (Phụ thuộc): Đây là mối quan hệ trong đó một thực thể phụ thuộc vào một thực thể
khác để thực hiện một chức năng nào đó
lOMoARcPSD| 58950985
4. Ràng buộc:
a) Ràng buộc toàn vẹn: Toàn vẹn thực thể
Yêu cầu: Tt c các khóa chính phải là độc nhất, và không phần nào của khóa chính là rỗng
(null).
Mục đích: Mỗi hàng nhận diện duy nhất, khóa ngoại tham chiếu tới khóa chính phù hợp
của bảng được tham chiếu.
Ví dụ: Không có hóa đơn nào có số hóa đơn trùng nhau, cũng không được rng.
b) Ràng buộc toàn vẹn: Toàn vẹn tham chiếu
Yêu cầu: Khóa ngoại chỉ được nhận một trong hai giá trị:Rỗng (null) hoặc Giá trị khớp với khóa
chính trong bảng mà nó tham chiếu tới.
Mục êu: Là hợp lệ nếu thuộc nh không giá trphù hợp cho (nhận rỗng null), nhưng
không được chứa giá trị không phù hợp (giá trị chưa trong khóa chính bảng tham
chiếu tới). Không được xóa đi dòng trong bảng mà giá trị khóa chính của nó đã là giá trị khóa
ngoại của một bảng khác.
Ví dụ: Không được có mã số đại lý không phù hợp.
c) Ràng buộc NOT NULL
Được đặt trên một cột để đảm bảo rằng mi hàngtrong bảng đều phải có giá trị cho cột đó. d)
Ràng buộc DUY NHẤT
Giới hạn được đặt trên một cột để đảm bảo rằng không có giá trị trùng lặp nào tồn tại cho cột
đó.
III. Thực hành:
a) Thực thể SinhVien
MaSinhVien: Mã số sinh viên, là định danh duy nhất (Primary Key).
HoTen: Họ tên của sinh viên.
NgaySinh: Ngày sinh của sinh viên.
GioiTinh: Giới nh (Nam/Nữ).
DiaChi: Địa chỉ liên hệ của sinh viên.
Email: Địa chỉ email của sinh viên.
lOMoARcPSD| 58950985
SoDienThoai: Số điện thoại của sinh viên.
MaLopMonHoc: Mã lớp môn học mà sinh viên tham gia (Foreign
Key).
b) Thực thể LopMonHoc
MaLopMonHoc: Mã số lớp môn học, là định danh duy nhất (Primary Key).
TenLopMonHoc: Tên của lớpn học.
MaMonHoc: Mã số môn học, dùng để liên kết với thông n môn học (nếu có).
GiangVienPhuTrach: Tên giảng viên phụ trách lớp.
PhongHoc: Phòng học của lớp môn học.
ThoiGianHoc: Thời gian học của lớp môn hc.
2. Lựa chọn các thuộc nh khóa
a) Thực thể SinhVien
Khóa chính (Primary Key): MaSinhVien
Khóa ngoại (Foreign Key): MaLopMonHoc (liên kết đến LopMonHoc)
b) Thực thể LopMonHoc
Khóa chính (Primary Key): MaLopMonHoc
Khóa ngoại (Foreign Key) có thể có: MaMonHoc (nếu có bảng MonHoc liên quan)
3. Các quan hệ
Giữa hai thực thể SinhVien và LopMonHoc, có thể thiết lập các quan hệ như sau:
Quan hệ 1 – Nhiều
(One-to-Many):
+ Mỗi sinh viên thuộc về một lớp môn học duy nhất (MaLopMonHoc trong bảng SinhVien tham chiếu
đến MaLopMonHoc trong bảng LopMonHoc).
+ Mỗi lớp môn học có thể chứa nhiu sinh viên.
lOMoARcPSD| 58950985
4. Các ràng buộc
a) Ràng buộc cho bảng SinhVien
PRIMARY KEY (MaSinhVien): Đảm bảo rằng mỗi sinh viên có mã
số duy nhất.
FOREIGN KEY (MaLopMonHoc): Đảm bảo rằng mỗi sinh viên
thuộc về mt lớp môn học hợp lệ.
NOT NULL: MaSinhVien, HoTen, NgaySinh, MaLopMonHoc
không được để trng.
UNIQUE: Email, SoDienThoai có thể là duy nhất để tránh trùng
lặp.
b) Ràng buộc cho bảng LopMonHoc
PRIMARY KEY (MaLopMonHoc): Đảm bảo rằng mỗi lớp môn
học có mã số duy nhất.
NOT NULL: MaLopMonHoc, TenLopMonHoc,
GiangVienPhuTrach không được để trng.
CHECK: ThoiGianHoc phải nằm trong khoảng thời gian hợp lệ.
IV. Đại số quan hệ - CSDL quan hệ
1. Khái niệm cơ sở dữ liệu quan hệ:
-CSDL quan hệ (Cơ sở dữ liu quan hệ) là một tập hợp các dữ liệu được tổ chc dưới dạng bảng (quan
hệ). Mi bảng bao gồm các dòng (bản ghi) và các cột (thuộc nh). Mỗi dòng trong bảng là một tập hp
dữ liệu tương ứng với một thực thể cụ thể. CSDL quan hệ sử dụng SQL (Structured Query Language)
để quản lý và truy vấn dữ liu.
2. 8 phép toán của đại số quan hệ.
a) Select
- Định nghĩa:
Select/Phép chọn: Là toán tử một ngôi trả về tập các hàng nào đó của bảng.
Phép chọn
- Phép chọn select được biểu diễn bởi ký pháp sigma
- Sigma biểu thức điều kiện viết theo kiểu chỉ số ới (subscript), còn quan hệ (tên bảng) được
để trong cặp ngoặc đơn
lOMoARcPSD| 58950985
- Bảng COURSE là bảng có ý nghĩa như thế nào? Cấu trúc của nó?
Bảng COURSE trong cơ sở dữ liu có ý nghĩa như sau:
Ý nghĩa: Bảng COURSE chứa thông n về các khóa học, bao gồm mã khóa học, mã khoa,
tả khóa học và số n chỉ.
Cấu trúc:
CRS_CODE: Mã môn học (khóa chính).
DEPT_CODE: Mã khoa.
CRS_DESCRIPTION: Mô tả môn học.
CRS_CREDIT: Số n chỉ của môn học.
- Với một bảng có bao nhiêu phép toán SELECT có thể thực hiện với bảng đó?
Số ợng phép toán SELECT thể thực hiện trên một bảng là không giới hạn. Bạn có thể thực hiện
nhiều loại truy vấn khác nhau để lấy dữ liệu từ bảng. Có thể kết hợp các loại truy vấn này để tạo ra các
truy vấn phức tạp hơn tùy theo nhu cầu của mình.
Ví dụ:
σ DEPT_CODE=CIS(COURSE) sẽ in ra:
σ DEPT_CODE=ACCT(COURSE) sẽ in ra:
σ CRS_CREDIT=3(COURSE) sẽ in ra:
lOMoARcPSD| 58950985
σ CRS_CREDIT=4(COURSE) sẽ in ra:
σ CRSDESCRIPTION=Accounng I(COURSE) sẽ in ra:
b) Phép Project
- Định nghĩa
Project/Phép chiếu: Là toán tử một ngôi trả về tập các cột của bảng
Phép chiếu
Phép chiếu được biểu diễn bởi ký tự pi (π)
Để lấy các cột thuộc nh CUS_FNAME CUS_LNAME trong bảng CUSTOMER, ta dùng biểu thức...
Ta có thể kết hợp 2 toán tử trên: phép chọn và phép chiếu để đưa ra họ và tên của khách hàng có mã
10010.
- Với một bảng có bao nhiêu phép toán Project có ththực hiện với bảng đó?
Số ợng phép toán Project có thể thực hiện trên một bảng là không giới hạn. Bạn có thể thực hiện
nhiều loại khác nhau để lấy dữ liệu từ bảng.
Ví dụ:
CRS_CODE(COURSE) sẽ in ra bảng:
PROF_NUM(CLASS) sẽ in ra bng:
lOMoARcPSD| 58950985
CLASS_SECTION(CLASS) sẽ in ra bảng:
CRS_CODE(CLASS) sẽ in ra bảng:
CLASS_CODE,CLASS_TIME(CLASS) sẽ in ra bảng:
lOMoARcPSD| 58950985
c) Phép Diference
Là trả về tất cả các hàng trong một bảng mà không được m thấy trong bảng khác; nghĩa là nó trừ đi
một bảng từ bảng khác
d) Phép giao
Trong đại số quan hệ, đây một toán tử được sử dụng để trvề chcác hàng chung giữa hai bảng
tương thích với nhau. INTERSECT chỉ trả về các hàng xuất hiện trong cả hai bảng.
e) Phép ch descartes: trả về tt cả các cặp hàng có thể có từ hai bảng
f) JOIN: cho phép thông n từ hai hoặc nhiều bảng được kết hợp một cách thông minh. JOIN sức
mạnh thực sự đằng sau sở dữ liệu quan hệ, cho phép sdụng các bảng độc lập được liên kết
thông qua các thuộc nh chung.
g) DIVIDE: được sử dụng để trlời các câu hỏi về một tập dữ liệu được liên kết với tất cả các giá trị
của dữ liệu trong tập dữ liệu khác.
h) Phép hợp: Trong đại số quan hệ, đây là một toán tử được sử dụng để hợp nhất (nối) hai bảng thành
một bảng mới, loại bỏ các hàng trùng lặp. Các bảng phải tương thích với nhau.
3. Các quan hệ 1-n, n-n, 1-1 thể hiện như nào trong CSDL quan hệ
- Trong sdữ liệu quan hệ, các loại quan hệ giữa các bảng thường được biểu diễn bằng cách sử
dụng các khóa (keys) và các ràng buộc (constraints). Dưới đây là cách thhiện các mối quan hệ 1-n, n-
n và 1-1 trong cơ sở dữ liệu quan hệ:
a) Quan hệ 1-N (One-to-Many)
Trong mối quan hệ 1-N, một bản ghi trong bảng A có thliên kết với nhiều bản ghi trong bảng B, nhưng
mỗi bản ghi trong bảng B chỉ có thliên kết với một bản ghi trong bảng A.
b) Quan hệ N-N (Many-to-Many)
-Trong mối quan hệ N-N, nhiều bản ghi trong bảng A có thể liên kết với nhiều bản ghi trong bảng B và
ngược lại. Để biểu diễn mối quan hệ y, cần một bảng kết nối (juncon table) hoặc bảng trung gian.
-VD: Trong bảng Tinycollege ta có thể thấy được bảng CLASS và bảng STUDENT là quan hệ n-n bời mỗi
class sẽ có nhiều học sinh và ngược lại mỗi học sinh sẽ có thể nằm trong nhiều lớp
lOMoARcPSD| 58950985
-Trong bảng Saleco thì bảng PRODUCT bảng CUSTOMER hai bảng mối quan hệ n-n bới mỗi
customer có thể mua được nhiều sản phẩm và ngượi lại mỗi PRODUCT cũng sẽ được mua bởi nhiều
ngưi
c) Quan hệ 1-1 (One-to-One)
- Trong mối quan hệ 1-1, mỗi bản ghi trong bảng A chỉ liên kết với một bản ghi duy nhất trong bảng B
và ngược lại.
- VD: Trong bảng Tinycollege ta có thể thy được bảng PROFESSOR và bảng DEPARTMENT là quan hệ
1-1 bời mỗi PROFESSOR là một giáo của Tiny College. Do đó, việc xác định PROFESSOR thông qua
EMP_NUM. Và mỗi giáo sư thì sẽ có mt phòng ban tương ứng
- Với Saleco ta có thể thấy không có mỗi quan hệ 1-1 trong bảng
4. Data diconary
- một thành phần của hệ thống quản sở dữ liệu (DBMS) lưu trữ siêu dữ liu - dữ liệu về dữ
liệu. Thư mục dữ liệu chứa mô tả dữ liệu cũng như các đặc điểm và mối quan hệ của chúng. Một thư
mục dữ liệu cũng thể bao gồm dữ liệu bên ngoài của DBMS. Còn được gọi từ điển tài nguyên
thông n. Xem thêm về thư mục dữ liệu hoạt động, siêu dữ liệu thư mục dliệu bị động. Trong
Tinycollege chn 2 bảng STUDENT và EMPLOYEE ta co ththấy được bảng STUDENT có 12 thuộc nh:
STU_NUM có kiểu dữ liệu là char
STU_LNAME có kiểu dữ liệu là varchar
STU_FNAME có kiểu dữ liệu là varchar
STU_INNITIAL có kiểu dữ liệu là char
STU_HRS có kiểu dliệu là int
STU_CLASS có kiểu dữ liệu là char
STU_GPA có kiểu dữ liệu là oat
STU_TRANSFER có kiểu dữ liệu là bool
DEPT_CODE có kiểu dữ liệu là CHAR
STU_PHONE có kiểu dữ liệu là char
PROF_NUMBER có kiểu dữ liệu char ta co thể thấy được bảng EMPLOYEE 7 thuộc
nh:
EMP_NUM có kiểu dữ liệu là char
lOMoARcPSD| 58950985
EMP_LNAME có kiểu dữ liệu là varchar
EMP_FNAME có kiểu dữ liu là varchar
EMP_INNITIAL có kiểu dữ liệu là char
EMP_JOBCODE có kiểu dữ liệu là char
EMP_HIRED có kiểu dữ liệu là DATE
EMP_DOB có kiểu dữ liệu là DATE
V. Coronel
A. Review Quesons
1.Sự khác biệt giữa cơ sở dữ liệu và bảng
- Bảng là một cấu trúc logic biểu diễn một tập thực thể, và chỉ là một trong các thành phần của cơ sở
dữ liu.
-Cơ sở dữ liệu là cấu trúc chứa một hoặc nhiều bảng và metadata (dữ liệu mô tả dữ liệu khác).
2. Một cơ sở dữ liệu hiển thị cả nh toàn vẹn thực thể và nh toàn vẹn tham chiếu có nghĩa là gì?
-Tính toàn vẹn của thực thể mô tả một điều kiện trong đó tất cả các bộ trong một bảng được xác định
duy nhất bằng khóa chính của chúng. Yêu cầu về giá trị duy nhất không bao gồm khóa chính NULL,
giá trị null không phải là duy nhất.
-Tính toàn vẹn tham chiếu tả một điều kiện trong đó giá trị khóa ngoại skhớp trong bảng
tương ứng hoặc trong đó giá trị khóa ngoại là NULL. Giá trị khóa ngoại NULL khiến có thể không giá
trtương ứng, nhưng yêu cầu khớp trên các giá trị không phải là NULL khiến không thểgiá trị không
hợp lệ.
3. Tại sao nh toàn vẹn thực thể và nh toàn vẹn tham chiếu lại quan trọng trong cơ sở dữ liu?
-Tính toàn vẹn của thực thể rất quan trọng vì nó có nghĩa là m kiếm đúng cho một bộ hiện có sẽ luôn
thành công và việc không m thấy kết quả khớp trong m kiếm hàng sẽ luôn có nghĩa là hàng mà m
kiếm được thực hiện không tồn tại trong bảng đó.
-Tính toàn vẹn tham chiếu rất quan trng vì sự tồn tại của nó đảm bảo rằng không thể gán giá trị khóa
ngoại không tồn tại cho mt bng.
4. Hai mối quan hệ phi đáp ứng những yêu cầu nào để được coi là tương thích với phép hợp?
-Số ng thuộc nh phải bằng nhau: Để có thể ghép các hàng của hai mối quan h lại với nhau, chúng
phải có cùng cấu trúc, tức là cùng sợng cột để các giá trị tương ứng có thể được đặt cạnh nhau.
-Phải có cùng kiểu dữ liệu: Các cột phải có cùng kiểu dữ liệu để có thể thực hiện các phép toán so sánh
và kết hợp giữa các giá trị. Nếu kiểu dữ liệu khác nhau, hệ thống sẽ không biết cách kết hợp chúng.
lOMoARcPSD| 58950985
5. Đại số quan hệ nào có thể được áp dụng cho một cặp bảng không tương thích với phép hợp?-Vi
những cặp bảng không thích hợp để thực hiện phép hợp chúng ta vẫn thể sử dụng các đại số
quan hệ khác như SELECT, PROJECT, DIVIDE, PRODUCT và JOIN.
6. Giải thích tại sao data diconary thường được gọi "cơ sở dữ liệu của nhà thiết kế sở dữ
liệu".
-Bởi chứa metadata liên quan đến kiểu dữ liệu được sử dụng kích thước cũng như các mối
quan hệ trong cơ sở dữ liệu. Bên cạnh đó còn là bản thiết kế cho cấu trúc cơ sở dữ liệu, cần thiết
cho phát triển và bảo trì cơ sở dữ liu.
7. Người dùng sở dữ liệu ghi chú thủ công rằng Tệp chứa hai trăm bản ghi, mỗi bản ghi chứa
chín trường”. Sử dụng thuật ngữ cơ sở dliệu quan hệ phù hợp để “dịch” câu lệnh đó.
- Một tập thực thể chứa hai trăm bộ với mỗi bản ghi bao gồm chín thuộc nh.
8. Sử dụng bảng STUDENT và PROFESSOR, minh họa sự khác biệt giữa phép natural JOIN, equiJOIN,
outerJOIN.
*Khi sử dụng phép JOIN thông thường với 2 bảng trên ta sẽ in ra bảng:
* Kết quả của equiJOIN phụ thuộc vào điều kiện được chỉ định. dụ, nếu equiJOIN chỉ định
rằng PROF_CODE là 2 sẽ được liệt kê, đầu ra sẽ là:
* Còn outerJOIN, các cặp không khớp sẽ được giữ lại và các giá trị không khớp trong bảng khác
sẽ được để là null. Do đó, sẽ cho ra các kết quả sau:
lOMoARcPSD| 58950985
9.Tạo bảng là kết quả của STU_CODE(STUDENT)
10. Tạo bảng là kết quả của STU_CODE,DEPT_CODE(STUDENT PROFESSOR)
11. Tạo ERD cơ bản cho cơ sở dữ liệu được hiển thị Hình Q3.8.
12. Tạo sơ đồ quan hệ cho cơ sở dữ liu được hiển thị Hình Q3.8.
13. Viết công thức đại số quan hệ để áp dụng toán tử quan hệ UNION vào các bảng được hiển thị
trong Hình Q3.13.
BOOTH_PRODUCT(BOOTH) MACHINE_PRODUCT(MACHINE)
lOMoARcPSD| 58950985
14. Tạo bảng thu được từ việc áp dụng toán tử quan hệ UNION vào các bảng được hiển thị trong
Hình Q3.13.
15. Viết công thức đại squan hệ để áp dụng toán tử quan hệ INTERSECT vào các bảng được hiển
thị trong Hình Q3.13.
BOOTH_PRODUCT(BOOTH) MACHINE_PRODUCT(MACHINE)
16. Tạo bảng thu được từ việc áp dụng toán tử quan hệ INTERSECT vào các bảng được hiển thị trong
Hình Q3.13.
17. Sử dụng các bảng trong Hình Q3.13, hãy tạo bảng thu được từ MACHINE DIFFERENCE BOOTH.
18. Gisử bạn có ERD được hiển thị trong Hình Q3.18. Bạn sẽ chuyển đổi hình này thành ERM
chhiển thị mối quan hệ 1:M như thế nào? (Hãy đảm bảo bạn tạo ERD đã sửa đổi.)
-Quan hệ M: N ban đầu đã được phân ch thành hai mối quan hệ 1:M dựa trên các quy tắc kinh doanh
sau:
+Một tài xế thể nhận được nhiều nhiệm vụ.
+Mỗi nhiệm vđược thực hiện cho một tài xế duy nhất.
+Một chiếc xe tải có thể được lái trong nhiều nhiệm vụ.
+Mỗi nhiệm vđược thực hiện cho một chiếc xe tải duy nhất.
lOMoARcPSD| 58950985
19. Trùng tên và đồng nghĩa là gì và tại sao nên tránh sử dụng chúng trong thiết kế cơ sở dữ liu?
-Trùng tên xuất hiện khi nhiều hơn một thuộc nh cùng tên. Đồng nghĩa xuất hiện khi cùng một
thuộc nh nhiều hơn một tên. Tránh cả hai để tránh skhông nhất quán. dụ, giả sử chúng ta
kiểm tra cơ sở dữ liệu để m một thuộc nh cụ thể như NAME. Nếu NAME tham chiếu đến tên khách
hàng cũng như tên đại diện bán hàng, một trường hợp ràng của việc cùng tên, chúng ta đã tạo ra
sự mơ hồ, vì không còn rõ ràng NAME thuộc về thực thể nào nữa.
-Đồng nghĩa khiến việc theo dõi các khóa ngoại trở nên khó khăn nếu chúng được đặt tên khác với
khóa chính mà chúng trỏ đến. Việc sử dụng nhiều tên thuộc nh khác nhau để mô tả cùng một thuộc
nh cũng sẽ khiến từ điển dữ liệu trở nên cồng kềnh hơn khi sử dụng.
-Một số RDBMS dữ liệu cho phép từ điển dữ liệu kiểm tra từ đồng âm và từ đồng nghĩa để cảnh báo
người dùng về sự tn tại của chúng, do đó làm giảm khả năng sử dụng chúng.
20. Bạn sẽ triển khai mối quan hệ l:M trong sở dữ liệu gồm hai bảng như thế nào? Hãy đưa ra
một ví dụ.
-Giả sử một doanh nghiệp sửa chữa ô tô muốn theoi hoạt động của mình theo từng khách hàng. Ở
mức cơ bản nhất, có thể cho rằng bất kỳ thiết kế cơ sở dữ liệu nào bạn tạo ra sẽ bao gồm ít nhất mt
thực thể ô tô một thực thể khách hàng. Ngoài ra, giả sử có thể cho rng:
+Một chiếc ô tô chỉ thuộc sở hữu của một khách hàng.
+Một khách hàng có thể sở hữu nhiều hơn một chiếc ô tô.
21. Xác định và mô tả các thành phần của bảng được hiển thị trong Hình Q3.11, sử dụng thuật ng
chính xác. Sử dụng kiến thức của bạn về quy ước đặt tên để xác định khóa ngoại có thể của
bảng.
-Một tập hợp thực thể: EMPLOYEE.
-Năm thuộc nh: EMP_NUM, EMP_LNAME, EMP_INIT, EMP_FNAME, DEPT_CODE và JOB_CODE.
-ời thực thể: mười công nhân được hiển thị trong các hàng 1-10.
-Một khóa chính: thuộc nh EMP_NUM vì nó xác định duy nhất từng hàng.
lOMoARcPSD| 58950985
-Hai khóa ngoại: thuộc nh DEPT_CODE, thể tham chiếu đến một phòng ban nhân viên được
phân công thuộc nh JOB_CODE thể tham chiếu đến một bảng khác trong đó bạn sẽ m thấy
mô tả về công việc và có thể là thông n bổ sung liên quan đến công việc.
22. Xác định các khóa chính.
-DIR_NUM là khóa chính của bảng DIRECTOR.
-PLAY_CODE là khóa chính của bảng PLAY.
23. Xác định các khóa ngoại.
-Khóa ngoại DIR_NUM, nằm trong bảng PLAY. (Mỗi đạo diễn có thể chđạo nhiều vở kịch ... nhưng
mỗi vở kịch chỉ do một đạo diễn chỉ đạo.)
24. Tạo ERM.
25. Tạo sơ đồ quan hệ để thhiện mối quan hệ giữa DIRECTOR và PLAY.
26. Giả sử bạn muốn có khả năng tra cứu nhanh để có danh sách tất cả các vở kịch do một đạo din
nhất định chỉ đạo. Bảng nào sẽ là cơ sở cho bảng INDEX và khóa chỉ mục sẽ là gì?
-Bảng PLAY sẽ là cơ sở cho bảng chỉ mục. Khóa chỉ mục sẽ là thuộc nh DIR_NUM.
27. Góc nhìn khái niệm của bảng INDEX được mô tả trong Câu hỏi 26 sẽ gì? tả nội dung của
bảng INDEX khái niệm.
lOMoARcPSD| 58950985
B. Problems
We
1. Đối với mỗi bảng, y xác định khóa chính và khóa ngoại. Nếu một bảng không có khóa ngoại,
hãy viết Không.
2. Các bảng có thể hiện nh toàn vẹn của thực thể không? Trả lời có hoặc không, sau đó giải thích
câu trả lời của bạn.
lOMoARcPSD| 58950985
3. Các bảng thể hiện nh toàn vẹn tham chiếu không? Trả lời hoặc không, sau đó giải thích
câu trả lời của bạn. Viết NA nếu bảng không có khóa ngoại.
4. Mô tả loại mối quan hệ giữa STORE và REGION.
-Vì giá trị REGION_CODE xuất hiện nhiều lần trong STORE, chúng ta có thể kết luận rằng mỗi REGION
thể chứa nhiều STORE. Nhưng mỗi STORE chỉ nằm trong một REGION, nên mối quan hệ gia
STORE và REGION là M:1. (Mối quan hệ giữa REGION và STORE là 1: M.)
5. Tạo ERD để thhiện mối quan hgiữa STORE và REGION.
6. Tạo sơ đồ quan hệ để thhiện mối quan hệ giữa STORE và REGION.
7. Mô tả loại mối quan hệ giữa EMPLOYEE và STORE.
-Có 2 mối quan hgiữa STORE và EMPLOYEE. Mối quan hệ đầu ên, được thhiện bằng nhân viên làm
việc tại cửa hàng, mối quan hệ 1:M, một cửa hàng thể tuyển dụng nhiều nhân viên mỗi nhân
viên được một cửa hàng tuyển dụng. Mối quan hệ thhai, được thể hiện bằng nhân viên quản lí quản
cửa hàng, mối quan hệ 1:1, mỗi cửa hàng được một nhân viên quản một nhân viên chỉ
quản lý một cửa hàng.
8. Tạo ERD để hiển thị mối quan hệ gia EMPLOYEE, STORE và REGION.
lOMoARcPSD| 58950985
9. Tạo sơ đồ quan hệ để hiển thị mối quan hệ giữa EMPLOYEE, STORE và REGION.
10. Đối với mỗi bảng trong sdữ liệu, hãy xác định khóa chính khóa ngoại. Nếu một bảng
không có khóa ngoại, hãy viết None.

Preview text:

lOMoAR cPSD| 58950985
Họ Và Tên: Nguyễn Hải Đăng Lớp: 68IT4 Mã sinh viên: 0008068
Chương 3: Mô hình quan hệ
(Relational Data Model)
I. Mô hình quan hệ:
1. Khái niệm mô hình quan hệ:
● Mô hình quan hệ (RM) là một cách tiếp cận để quản lý dữ liệu bằng cách sử dụng cấu trúc và
ngôn ngữ phù hợp với logic vị từ bậc nhất, được nhà khoa học máy tính người Anh Edgar F.
Codd mô tả lần đầu vào năm 1969, trong đó tất cả dữ liệu được biểu diễn dưới dạng các bộ
giá trị, được nhóm lại thành các mối quan hệ.
● Cơ sở dữ liệu được tổ chức theo mô hình quan hệ là cơ sở dữ liệu quan hệ.
2. Tại sao gọi là quan hệ (relation):
● Quan hệ giữa các dòng dữ liệu trong bảng.
● Bộ dữ liệu tương đồng (entity) tập hợp thành tập thực thể (entity set).
● Các dòng có sự phân biệt.
● Quan hệ quyết định - phụ thuộc: phụ thuộc tính năng: Từ giá trị ở thuộc tính này ta có thể suy
ra giá trị ở thuộc tính khác.
● Quan hệ giữa các bảng.
3. Mức độ phổ biến của mô hình quan hệ:
● Mô hình Dữ liệu Quan hệ (Relational Data Model – RDM) lần đầu tiên được Ted Codd của
IBM phát triển vào những năm 1970. Sau đó khoảng 10 năm, RDM chính thức được đưa vào
triển khai thương mại nhằm mục đích lưu trữ, xử lí dữ liệu trong cơ sở dữ liệu. Sở dĩ RDM trở
nên phổ biến như vậy chính bởi tính đơn giản trong sử dụng cơ sở dữ liệu, cũng như nền tảng
hỗ trợ tốt cho các nhà phát triển.
● Mô hình dữ liệu quan hệ đóng vai trò quan trọng của hệ thống thông tin hiện đại trong việc
tổ chức, lưu trữ và quản trị thông tin.
● Phần lớn hệ thống cơ sở dữ liệu hiện nay đều được xây dựng bằng mô hình dữ liệu quan hệ.
4. Các khối cấu thành nên mô hình quan hệ: lOMoAR cPSD| 58950985 ● Thực thể:
+ Bảng: Là tập hợp các dòng và cột tương ứng với các bản ghi và trường . Mỗi bảng có một tên duy nhất. ● Thuộc tính :
+ Cột :Mỗi cột là một trường trong bản ghi ví dụ như tên, địa chỉ, ngày sinh, … ● Quan hệ : + Tên
+ Tập hợp các cột : o Cố
định o Được đặt tên o
Có kiểu dữ liệu + Tập hợp các dòng o Thay đổi theo thời gian
+Một dòng ~ Một thực thể (entity) +Quan
hệ ~ Tập thực thể (entity set) ● Ràng buộc :
+Trong một CSDL, ta có nhiều quan hệ, nhiều thuộc tính, nhiều cá thể, nhiều liên kết và giữa những
thành phần này lại có một số mối liên hệ với nhau, tương tác lẫn nhau. Để hệ CSDL hoạt động hiệu
quả, không bị hỏng hóc, những thành phần này cần phải chịu những ràng buộc nhất định. II. Building Blocks 1. Thực thể:
-Thực thể (Entity): Thực thể là một đối tượng có danh tính riêng biệt, không thay đổi trong suốt vòng
đời của nó. Ví dụ, một người dùng trong hệ thống có thể thay đổi tên, địa chỉ, nhưng danh tính của
người dùng đó vẫn không thay đổi. 2. Thuộc tính: a) Khái niệm khóa:
● Là tập hợp gồm 1 hay 1 số thuộc tính trong 1 bảng có tính chất vừa đủ để phân biệt được các
bộ hay không thể loại bớt một thuộc thính nào.
b) Các loại khóa trong mô hình quan hệ:
● Siêu khóa: Một thuộc tính hoặc tổ hợp các thuộc tính xác định duy nhất mỗi hàng trong bảng.
● Khóa ứng viên: Một siêu khóa tối thiểu (không thể giảm bớt thuộc tính); superkey không chứa
tập hợp con các thuộc tính mà bản thân nó là superkey. lOMoAR cPSD| 58950985
● Khóa chính: Một khóa ứng viên được chọn để xác định duy nhất tất cả các giá trị thuộc tính
khác trong bất kỳ hàng nhất định nào; không thể chứa các mục nhập rỗng.
● Khóa ngoại: Một thuộc tính hoặc tổ hợp các thuộc tính trong một bảng có giá trị phải khớp
với khóa chính trong bảng khác hoặc là giá trị rỗng (null).
● Khóa phụ: Một thuộc tính hoặc tổ hợp các thuộc tính được sử dụng cho mục đích truy xuất
dữ liệu: giới hạn lại số hàng cần tìm kiếm.
*Khóa ngoại và Khóa phụ thường gây nhầm lẫn cần phân biệt. c) Khóa chính tốt:
Một khóa chính tốt thường có những đặc điểm sau:
• Nó nhận dạng duy nhất mỗi hàng.
• Nó không bị bỏ trống hoặc có giá trị null - nó luônchứa một giá trị.
• Các giá trị mà nó chứa hiếm khi (hoặc không baogiờ) thay đổi.
d) Tính toàn vẹn dữ liệu:
● là việc duy trì và đảm bảo tính chính xác và tính nhất quán của dữ liệu trong toàn bộ vòng đời
của nó. Đây là khía cạnh quan trọng đối với thiết kế, triển khai và sử dụng bất kỳ hệ thống nào
lưu trữ, xử lý hoặc truy xuất dữ liệu. Thuật ngữ này có phạm vi rộng và có thể có nhiều ý nghĩa
khác nhau tùy thuộc vào ngữ cảnh cụ thể ngay cả trong cùng một lĩnh vực chung là điện toán.
Đôi khi nó được sử dụng như một thuật ngữ đại diện cho chất lượng dữ liệu trong khi xác thực
dữ liệu là điều kiện tiên quyết cho tính toàn vẹn dữ liệu. e) Quyết định - Phụ thuộc:
Quyết định: Đây là một mô hình học máy được sử dụng để phân loại hoặc dự đoán dựa trên
các thuộc tính của dữ liệu. Cây quyết định sử dụng các thuộc tính để tạo ra các nút và nhánh,
từ đó đưa ra quyết định cuối cùng.
Phụ thuộc: Trong cơ sở dữ liệu, phụ thuộc là một mối quan hệ giữa các thuộc tính trong một bảng. 3. Quan hệ:
a) Association (Liên kết): Đây là mối quan hệ cơ bản nhất, biểu thị sự kết nối giữa hai thực thể.
b) Aggregation (Tổng hợp): Đây là một loại liên kết đặc biệt, trong đó một thực thể (thực thể gốc)
chứa các thực thể khác. Các thực thể con có thể tồn tại độc lập với thực thể gốc
c) Composition (Thành phần): Đây là một dạng đặc biệt của tổng hợp, trong đó các thực thể con
không thể tồn tại độc lập với thực thể gốc.
d) Inheritance (Kế thừa): Đây là mối quan hệ giữa các lớp, trong đó một lớp con kế thừa các thuộc
tính và phương thức của lớp cha.
e) Dependency (Phụ thuộc): Đây là mối quan hệ trong đó một thực thể phụ thuộc vào một thực thể
khác để thực hiện một chức năng nào đó lOMoAR cPSD| 58950985 4. Ràng buộc:
a) Ràng buộc toàn vẹn: Toàn vẹn thực thể
● Yêu cầu: Tất cả các khóa chính phải là độc nhất, và không phần nào của khóa chính là rỗng (null).
● Mục đích: Mỗi hàng có nhận diện duy nhất, khóa ngoại tham chiếu tới khóa chính phù hợp
của bảng được tham chiếu.
● Ví dụ: Không có hóa đơn nào có số hóa đơn trùng nhau, cũng không được rỗng.
b) Ràng buộc toàn vẹn: Toàn vẹn tham chiếu
● Yêu cầu: Khóa ngoại chỉ được nhận một trong hai giá trị:Rỗng (null) hoặc Giá trị khớp với khóa
chính trong bảng mà nó tham chiếu tới.
● Mục tiêu: Là hợp lệ nếu thuộc tính không có giá trị phù hợp cho nó (nhận rỗng null), nhưng
không được chứa giá trị không phù hợp (giá trị chưa có trong khóa chính bảng mà nó tham
chiếu tới). Không được xóa đi dòng trong bảng mà giá trị khóa chính của nó đã là giá trị khóa
ngoại của một bảng khác.
● Ví dụ: Không được có mã số đại lý không phù hợp.
c) Ràng buộc NOT NULL
● Được đặt trên một cột để đảm bảo rằng mọi hàngtrong bảng đều phải có giá trị cho cột đó. d)
Ràng buộc DUY NHẤT
● Giới hạn được đặt trên một cột để đảm bảo rằng không có giá trị trùng lặp nào tồn tại cho cột đó. III. Thực hành:
a) Thực thể SinhVien
● MaSinhVien: Mã số sinh viên, là định danh duy nhất (Primary Key).
● HoTen: Họ tên của sinh viên.
● NgaySinh: Ngày sinh của sinh viên.
● GioiTinh: Giới tính (Nam/Nữ).
● DiaChi: Địa chỉ liên hệ của sinh viên.
● Email: Địa chỉ email của sinh viên. lOMoAR cPSD| 58950985
● SoDienThoai: Số điện thoại của sinh viên.
● MaLopMonHoc: Mã lớp môn học mà sinh viên tham gia (Foreign ● Key).
b) Thực thể LopMonHoc
● MaLopMonHoc: Mã số lớp môn học, là định danh duy nhất (Primary ● Key).
● TenLopMonHoc: Tên của lớp môn học.
● MaMonHoc: Mã số môn học, dùng để liên kết với thông tin môn học ● (nếu có).
● GiangVienPhuTrach: Tên giảng viên phụ trách lớp.
● PhongHoc: Phòng học của lớp môn học.
● ThoiGianHoc: Thời gian học của lớp môn học.
2. Lựa chọn các thuộc tính khóa
a) Thực thể SinhVien
● Khóa chính (Primary Key): MaSinhVien
● Khóa ngoại (Foreign Key): MaLopMonHoc (liên kết đến LopMonHoc)
b) Thực thể LopMonHoc
● Khóa chính (Primary Key): MaLopMonHoc
● Khóa ngoại (Foreign Key) có thể có: MaMonHoc (nếu có bảng MonHoc liên quan) 3. Các quan hệ
Giữa hai thực thể SinhVien và LopMonHoc, có thể thiết lập các quan hệ như sau: ● Quan hệ 1 – Nhiều (One-to-Many):
+ Mỗi sinh viên thuộc về một lớp môn học duy nhất (MaLopMonHoc trong bảng SinhVien tham chiếu
đến MaLopMonHoc trong bảng LopMonHoc).
+ Mỗi lớp môn học có thể chứa nhiều sinh viên. lOMoAR cPSD| 58950985 4. Các ràng buộc
a) Ràng buộc cho bảng SinhVien
● PRIMARY KEY (MaSinhVien): Đảm bảo rằng mỗi sinh viên có mã số duy nhất.
● FOREIGN KEY (MaLopMonHoc): Đảm bảo rằng mỗi sinh viên
thuộc về một lớp môn học hợp lệ.
● NOT NULL: MaSinhVien, HoTen, NgaySinh, MaLopMonHoc
không được để trống.
● UNIQUE: Email, SoDienThoai có thể là duy nhất để tránh trùng lặp.
b) Ràng buộc cho bảng LopMonHoc
● PRIMARY KEY (MaLopMonHoc): Đảm bảo rằng mỗi lớp môn
học có mã số duy nhất. ● NOT NULL: MaLopMonHoc, TenLopMonHoc,
GiangVienPhuTrach không được để trống.
● CHECK: ThoiGianHoc phải nằm trong khoảng thời gian hợp lệ.
IV. Đại số quan hệ - CSDL quan hệ
1. Khái niệm cơ sở dữ liệu quan hệ:
-CSDL quan hệ (Cơ sở dữ liệu quan hệ) là một tập hợp các dữ liệu được tổ chức dưới dạng bảng (quan
hệ). Mỗi bảng bao gồm các dòng (bản ghi) và các cột (thuộc tính). Mỗi dòng trong bảng là một tập hợp
dữ liệu tương ứng với một thực thể cụ thể. CSDL quan hệ sử dụng SQL (Structured Query Language)
để quản lý và truy vấn dữ liệu.
2. 8 phép toán của đại số quan hệ. a) Select - Định nghĩa:
Select/Phép chọn: Là toán tử một ngôi trả về tập các hàng nào đó của bảng. Phép chọn
- Phép chọn select được biểu diễn bởi ký pháp sigma
- Sigma có biểu thức điều kiện viết theo kiểu chỉ số dưới (subscript), còn quan hệ (tên bảng) được
để trong cặp ngoặc đơn lOMoAR cPSD| 58950985
- Bảng COURSE là bảng có ý nghĩa như thế nào? Cấu trúc của nó?
Bảng COURSE trong cơ sở dữ liệu có ý nghĩa như sau:
Ý nghĩa: Bảng COURSE chứa thông tin về các khóa học, bao gồm mã khóa học, mã khoa, mô
tả khóa học và số tín chỉ. ● Cấu trúc:
CRS_CODE: Mã môn học (khóa chính). DEPT_CODE: Mã khoa.
CRS_DESCRIPTION: Mô tả môn học.
CRS_CREDIT: Số tín chỉ của môn học.
- Với một bảng có bao nhiêu phép toán SELECT có thể thực hiện với bảng đó?
Số lượng phép toán SELECT có thể thực hiện trên một bảng là không giới hạn. Bạn có thể thực hiện
nhiều loại truy vấn khác nhau để lấy dữ liệu từ bảng. Có thể kết hợp các loại truy vấn này để tạo ra các
truy vấn phức tạp hơn tùy theo nhu cầu của mình. Ví dụ:
σ DEPT_CODE=CIS(COURSE) sẽ in ra:
σ DEPT_CODE=ACCT(COURSE) sẽ in ra:
σ CRS_CREDIT=3(COURSE) sẽ in ra: lOMoAR cPSD| 58950985
σ CRS_CREDIT=4(COURSE) sẽ in ra:
σ CRSDESCRIPTION=Accounting I(COURSE) sẽ in ra: b) Phép Project - Định nghĩa
Project/Phép chiếu: Là toán tử một ngôi trả về tập các cột của bảng Phép chiếu
Phép chiếu được biểu diễn bởi ký tự pi (π)
Để lấy các cột thuộc tính CUS_FNAME và CUS_LNAME trong bảng CUSTOMER, ta dùng biểu thức...
Ta có thể kết hợp 2 toán tử trên: phép chọn và phép chiếu để đưa ra họ và tên của khách hàng có mã 10010.
- Với một bảng có bao nhiêu phép toán Project có thể thực hiện với bảng đó?
Số lượng phép toán Project có thể thực hiện trên một bảng là không giới hạn. Bạn có thể thực hiện
nhiều loại khác nhau để lấy dữ liệu từ bảng. Ví dụ:
CRS_CODE(COURSE) sẽ in ra bảng:
PROF_NUM(CLASS) sẽ in ra bảng: lOMoAR cPSD| 58950985
CLASS_SECTION(CLASS) sẽ in ra bảng:
CRS_CODE(CLASS) sẽ in ra bảng:
CLASS_CODE,CLASS_TIME(CLASS) sẽ in ra bảng: lOMoAR cPSD| 58950985 c) Phép Diference
Là trả về tất cả các hàng trong một bảng mà không được tìm thấy trong bảng khác; nghĩa là nó trừ đi
một bảng từ bảng khác d) Phép giao
Trong đại số quan hệ, đây là một toán tử được sử dụng để trả về chỉ các hàng chung giữa hai bảng
tương thích với nhau. INTERSECT chỉ trả về các hàng xuất hiện trong cả hai bảng.
e) Phép tích descartes: trả về tất cả các cặp hàng có thể có từ hai bảng
f) JOIN: cho phép thông tin từ hai hoặc nhiều bảng được kết hợp một cách thông minh. JOIN là sức
mạnh thực sự đằng sau cơ sở dữ liệu quan hệ, cho phép sử dụng các bảng độc lập được liên kết
thông qua các thuộc tính chung.
g) DIVIDE: được sử dụng để trả lời các câu hỏi về một tập dữ liệu được liên kết với tất cả các giá trị
của dữ liệu trong tập dữ liệu khác.
h) Phép hợp: Trong đại số quan hệ, đây là một toán tử được sử dụng để hợp nhất (nối) hai bảng thành
một bảng mới, loại bỏ các hàng trùng lặp. Các bảng phải tương thích với nhau.
3. Các quan hệ 1-n, n-n, 1-1 thể hiện như nào trong CSDL quan hệ
- Trong cơ sở dữ liệu quan hệ, các loại quan hệ giữa các bảng thường được biểu diễn bằng cách sử
dụng các khóa (keys) và các ràng buộc (constraints). Dưới đây là cách thể hiện các mối quan hệ 1-n, n-
n và 1-1 trong cơ sở dữ liệu quan hệ:
a) Quan hệ 1-N (One-to-Many)
Trong mối quan hệ 1-N, một bản ghi trong bảng A có thể liên kết với nhiều bản ghi trong bảng B, nhưng
mỗi bản ghi trong bảng B chỉ có thể liên kết với một bản ghi trong bảng A.
b) Quan hệ N-N (Many-to-Many)
-Trong mối quan hệ N-N, nhiều bản ghi trong bảng A có thể liên kết với nhiều bản ghi trong bảng B và
ngược lại. Để biểu diễn mối quan hệ này, cần một bảng kết nối (junction table) hoặc bảng trung gian.
-VD: Trong bảng Tinycollege ta có thể thấy được bảng CLASS và bảng STUDENT là quan hệ n-n bời mỗi
class sẽ có nhiều học sinh và ngược lại mỗi học sinh sẽ có thể nằm trong nhiều lớp lOMoAR cPSD| 58950985
-Trong bảng Saleco thì bảng PRODUCT và bảng CUSTOMER là hai bảng có mối quan hệ n-n bới mỗi
customer có thể mua được nhiều sản phẩm và ngượi lại mỗi PRODUCT cũng sẽ được mua bởi nhiều người
c) Quan hệ 1-1 (One-to-One)
- Trong mối quan hệ 1-1, mỗi bản ghi trong bảng A chỉ liên kết với một bản ghi duy nhất trong bảng B và ngược lại.
- VD: Trong bảng Tinycollege ta có thể thấy được bảng PROFESSOR và bảng DEPARTMENT là quan hệ
1-1 bời mỗi PROFESSOR là một giáo sư của Tiny College. Do đó, việc xác định PROFESSOR thông qua
EMP_NUM. Và mỗi giáo sư thì sẽ có một phòng ban tương ứng
- Với Saleco ta có thể thấy không có mỗi quan hệ 1-1 trong bảng 4. Data dictionary
- Là một thành phần của hệ thống quản lý cơ sở dữ liệu (DBMS) lưu trữ siêu dữ liệu - dữ liệu về dữ
liệu. Thư mục dữ liệu chứa mô tả dữ liệu cũng như các đặc điểm và mối quan hệ của chúng. Một thư
mục dữ liệu cũng có thể bao gồm dữ liệu bên ngoài của DBMS. Còn được gọi là từ điển tài nguyên
thông tin. Xem thêm về thư mục dữ liệu hoạt động, siêu dữ liệu và thư mục dữ liệu bị động. Trong
Tinycollege chọn 2 bảng STUDENT và EMPLOYEE ta co thể thấy được bảng STUDENT có 12 thuộc tính: ●
STU_NUM có kiểu dữ liệu là char ●
STU_LNAME có kiểu dữ liệu là varchar ●
STU_FNAME có kiểu dữ liệu là varchar ●
STU_INNITIAL có kiểu dữ liệu là char ●
STU_HRS có kiểu dữ liệu là int ●
STU_CLASS có kiểu dữ liệu là char ●
STU_GPA có kiểu dữ liệu là float ●
STU_TRANSFER có kiểu dữ liệu là bool ●
DEPT_CODE có kiểu dữ liệu là CHAR ●
STU_PHONE có kiểu dữ liệu là char ●
PROF_NUMBER có kiểu dữ liệu là char ta co thể thấy được bảng EMPLOYEE có 7 thuộc tính: ●
EMP_NUM có kiểu dữ liệu là char lOMoAR cPSD| 58950985 ●
EMP_LNAME có kiểu dữ liệu là varchar ●
EMP_FNAME có kiểu dữ liệu là varchar ●
EMP_INNITIAL có kiểu dữ liệu là char ●
EMP_JOBCODE có kiểu dữ liệu là char ●
EMP_HIRED có kiểu dữ liệu là DATE ●
EMP_DOB có kiểu dữ liệu là DATE V. Coronel A. Review Questions
1.Sự khác biệt giữa cơ sở dữ liệu và bảng
- Bảng là một cấu trúc logic biểu diễn một tập thực thể, và chỉ là một trong các thành phần của cơ sở dữ liệu.
-Cơ sở dữ liệu là cấu trúc chứa một hoặc nhiều bảng và metadata (dữ liệu mô tả dữ liệu khác).
2. Một cơ sở dữ liệu hiển thị cả tính toàn vẹn thực thể và tính toàn vẹn tham chiếu có nghĩa là gì?
-Tính toàn vẹn của thực thể mô tả một điều kiện trong đó tất cả các bộ trong một bảng được xác định
duy nhất bằng khóa chính của chúng. Yêu cầu về giá trị duy nhất không bao gồm khóa chính NULL, vì
giá trị null không phải là duy nhất.
-Tính toàn vẹn tham chiếu mô tả một điều kiện trong đó giá trị khóa ngoại có sự khớp trong bảng
tương ứng hoặc trong đó giá trị khóa ngoại là NULL. Giá trị khóa ngoại NULL khiến có thể không có giá
trị tương ứng, nhưng yêu cầu khớp trên các giá trị không phải là NULL khiến không thể có giá trị không hợp lệ.
3. Tại sao tính toàn vẹn thực thể và tính toàn vẹn tham chiếu lại quan trọng trong cơ sở dữ liệu?
-Tính toàn vẹn của thực thể rất quan trọng vì nó có nghĩa là tìm kiếm đúng cho một bộ hiện có sẽ luôn
thành công và việc không tìm thấy kết quả khớp trong tìm kiếm hàng sẽ luôn có nghĩa là hàng mà tìm
kiếm được thực hiện không tồn tại trong bảng đó.
-Tính toàn vẹn tham chiếu rất quan trọng vì sự tồn tại của nó đảm bảo rằng không thể gán giá trị khóa
ngoại không tồn tại cho một bảng.
4. Hai mối quan hệ phải đáp ứng những yêu cầu nào để được coi là tương thích với phép hợp?
-Số lượng thuộc tính phải bằng nhau: Để có thể ghép các hàng của hai mối quan hệ lại với nhau, chúng
phải có cùng cấu trúc, tức là cùng số lượng cột để các giá trị tương ứng có thể được đặt cạnh nhau.
-Phải có cùng kiểu dữ liệu: Các cột phải có cùng kiểu dữ liệu để có thể thực hiện các phép toán so sánh
và kết hợp giữa các giá trị. Nếu kiểu dữ liệu khác nhau, hệ thống sẽ không biết cách kết hợp chúng. lOMoAR cPSD| 58950985
5. Đại số quan hệ nào có thể được áp dụng cho một cặp bảng không tương thích với phép hợp?-Với
những cặp bảng không thích hợp để thực hiện phép hợp chúng ta vẫn có thể sử dụng các đại số
quan hệ khác như SELECT, PROJECT, DIVIDE, PRODUCT và JOIN.
6. Giải thích tại sao data dictionary thường được gọi là "cơ sở dữ liệu của nhà thiết kế cơ sở dữ liệu".
-Bởi vì nó chứa metadata liên quan đến kiểu dữ liệu được sử dụng và kích thước cũng như các mối
quan hệ trong cơ sở dữ liệu. Bên cạnh đó nó còn là bản thiết kế cho cấu trúc cơ sở dữ liệu, cần thiết
cho phát triển và bảo trì cơ sở dữ liệu.
7. Người dùng cơ sở dữ liệu ghi chú thủ công rằng “Tệp chứa hai trăm bản ghi, mỗi bản ghi chứa
chín trường”. Sử dụng thuật ngữ cơ sở dữ liệu quan hệ phù hợp để “dịch” câu lệnh đó.
- Một tập thực thể chứa hai trăm bộ với mỗi bản ghi bao gồm chín thuộc tính.
8. Sử dụng bảng STUDENT và PROFESSOR, minh họa sự khác biệt giữa phép natural JOIN, equiJOIN, outerJOIN.
*Khi sử dụng phép JOIN thông thường với 2 bảng trên ta sẽ in ra bảng: *
Kết quả của equiJOIN phụ thuộc vào điều kiện được chỉ định. Ví dụ, nếu equiJOIN chỉ định
rằng PROF_CODE là 2 sẽ được liệt kê, đầu ra sẽ là: *
Còn outerJOIN, các cặp không khớp sẽ được giữ lại và các giá trị không khớp trong bảng khác
sẽ được để là null. Do đó, sẽ cho ra các kết quả sau: lOMoAR cPSD| 58950985
9.Tạo bảng là kết quả của STU_CODE(STUDENT)
10. Tạo bảng là kết quả của STU_CODE,DEPT_CODE(STUDENT PROFESSOR)
11. Tạo ERD cơ bản cho cơ sở dữ liệu được hiển thị Hình Q3.8.
12. Tạo sơ đồ quan hệ cho cơ sở dữ liệu được hiển thị Hình Q3.8.
13. Viết công thức đại số quan hệ để áp dụng toán tử quan hệ UNION vào các bảng được hiển thị trong Hình Q3.13.
BOOTH_PRODUCT(BOOTH) MACHINE_PRODUCT(MACHINE) lOMoAR cPSD| 58950985
14. Tạo bảng thu được từ việc áp dụng toán tử quan hệ UNION vào các bảng được hiển thị trong Hình Q3.13.
15. Viết công thức đại số quan hệ để áp dụng toán tử quan hệ INTERSECT vào các bảng được hiển
thị trong Hình Q3.13.
BOOTH_PRODUCT(BOOTH) MACHINE_PRODUCT(MACHINE)
16. Tạo bảng thu được từ việc áp dụng toán tử quan hệ INTERSECT vào các bảng được hiển thị trong Hình Q3.13.
17. Sử dụng các bảng trong Hình Q3.13, hãy tạo bảng thu được từ MACHINE DIFFERENCE BOOTH.
18. Giả sử bạn có ERD được hiển thị trong Hình Q3.18. Bạn sẽ chuyển đổi mô hình này thành ERM
chỉ hiển thị mối quan hệ 1:M như thế nào? (Hãy đảm bảo bạn tạo ERD đã sửa đổi.)
-Quan hệ M: N ban đầu đã được phân tích thành hai mối quan hệ 1:M dựa trên các quy tắc kinh doanh sau:
+Một tài xế có thể nhận được nhiều nhiệm vụ.
+Mỗi nhiệm vụ được thực hiện cho một tài xế duy nhất.
+Một chiếc xe tải có thể được lái trong nhiều nhiệm vụ.
+Mỗi nhiệm vụ được thực hiện cho một chiếc xe tải duy nhất. lOMoAR cPSD| 58950985
19. Trùng tên và đồng nghĩa là gì và tại sao nên tránh sử dụng chúng trong thiết kế cơ sở dữ liệu?
-Trùng tên xuất hiện khi nhiều hơn một thuộc tính có cùng tên. Đồng nghĩa xuất hiện khi cùng một
thuộc tính có nhiều hơn một tên. Tránh cả hai để tránh sự không nhất quán. Ví dụ, giả sử chúng ta
kiểm tra cơ sở dữ liệu để tìm một thuộc tính cụ thể như NAME. Nếu NAME tham chiếu đến tên khách
hàng cũng như tên đại diện bán hàng, một trường hợp rõ ràng của việc cùng tên, chúng ta đã tạo ra
sự mơ hồ, vì không còn rõ ràng NAME thuộc về thực thể nào nữa.
-Đồng nghĩa khiến việc theo dõi các khóa ngoại trở nên khó khăn nếu chúng được đặt tên khác với
khóa chính mà chúng trỏ đến. Việc sử dụng nhiều tên thuộc tính khác nhau để mô tả cùng một thuộc
tính cũng sẽ khiến từ điển dữ liệu trở nên cồng kềnh hơn khi sử dụng.
-Một số RDBMS dữ liệu cho phép từ điển dữ liệu kiểm tra từ đồng âm và từ đồng nghĩa để cảnh báo
người dùng về sự tồn tại của chúng, do đó làm giảm khả năng sử dụng chúng.
20. Bạn sẽ triển khai mối quan hệ l:M trong cơ sở dữ liệu gồm hai bảng như thế nào? Hãy đưa ra một ví dụ.
-Giả sử một doanh nghiệp sửa chữa ô tô muốn theo dõi hoạt động của mình theo từng khách hàng. Ở
mức cơ bản nhất, có thể cho rằng bất kỳ thiết kế cơ sở dữ liệu nào bạn tạo ra sẽ bao gồm ít nhất một
thực thể ô tô và một thực thể khách hàng. Ngoài ra, giả sử có thể cho rằng:
+Một chiếc ô tô chỉ thuộc sở hữu của một khách hàng.
+Một khách hàng có thể sở hữu nhiều hơn một chiếc ô tô.
21. Xác định và mô tả các thành phần của bảng được hiển thị trong Hình Q3.11, sử dụng thuật ngữ
chính xác. Sử dụng kiến thức của bạn về quy ước đặt tên để xác định khóa ngoại có thể có của bảng.
-Một tập hợp thực thể: EMPLOYEE.
-Năm thuộc tính: EMP_NUM, EMP_LNAME, EMP_INIT, EMP_FNAME, DEPT_CODE và JOB_CODE.
-Mười thực thể: mười công nhân được hiển thị trong các hàng 1-10.
-Một khóa chính: thuộc tính EMP_NUM vì nó xác định duy nhất từng hàng. lOMoAR cPSD| 58950985
-Hai khóa ngoại: thuộc tính DEPT_CODE, có thể tham chiếu đến một phòng ban mà nhân viên được
phân công và thuộc tính JOB_CODE có thể tham chiếu đến một bảng khác trong đó bạn sẽ tìm thấy
mô tả về công việc và có thể là thông tin bổ sung liên quan đến công việc.
22. Xác định các khóa chính.
-DIR_NUM là khóa chính của bảng DIRECTOR.
-PLAY_CODE là khóa chính của bảng PLAY.
23. Xác định các khóa ngoại.
-Khóa ngoại là DIR_NUM, nằm trong bảng PLAY. (Mỗi đạo diễn có thể chỉ đạo nhiều vở kịch ... nhưng
mỗi vở kịch chỉ do một đạo diễn chỉ đạo.) 24. Tạo ERM.
25. Tạo sơ đồ quan hệ để thể hiện mối quan hệ giữa DIRECTOR và PLAY.
26. Giả sử bạn muốn có khả năng tra cứu nhanh để có danh sách tất cả các vở kịch do một đạo diễn
nhất định chỉ đạo. Bảng nào sẽ là cơ sở cho bảng INDEX và khóa chỉ mục sẽ là gì?
-Bảng PLAY sẽ là cơ sở cho bảng chỉ mục. Khóa chỉ mục sẽ là thuộc tính DIR_NUM.
27. Góc nhìn khái niệm của bảng INDEX được mô tả trong Câu hỏi 26 sẽ là gì? Mô tả nội dung của
bảng INDEX khái niệm. lOMoAR cPSD| 58950985 B. Problems We
1. Đối với mỗi bảng, hãy xác định khóa chính và khóa ngoại. Nếu một bảng không có khóa ngoại, hãy viết Không.
2. Các bảng có thể hiện tính toàn vẹn của thực thể không? Trả lời có hoặc không, sau đó giải thích
câu trả lời của bạn. lOMoAR cPSD| 58950985
3. Các bảng có thể hiện tính toàn vẹn tham chiếu không? Trả lời có hoặc không, sau đó giải thích
câu trả lời của bạn. Viết NA nếu bảng không có khóa ngoại.
4. Mô tả loại mối quan hệ giữa STORE và REGION.
-Vì giá trị REGION_CODE xuất hiện nhiều lần trong STORE, chúng ta có thể kết luận rằng mỗi REGION
có thể chứa nhiều STORE. Nhưng vì mỗi STORE chỉ nằm trong một REGION, nên mối quan hệ giữa
STORE và REGION là M:1. (Mối quan hệ giữa REGION và STORE là 1: M.)
5. Tạo ERD để thể hiện mối quan hệ giữa STORE và REGION.
6. Tạo sơ đồ quan hệ để thể hiện mối quan hệ giữa STORE và REGION.
7. Mô tả loại mối quan hệ giữa EMPLOYEE và STORE.
-Có 2 mối quan hệ giữa STORE và EMPLOYEE. Mối quan hệ đầu tiên, được thể hiện bằng nhân viên làm
việc tại cửa hàng, là mối quan hệ 1:M, vì một cửa hàng có thể tuyển dụng nhiều nhân viên và mỗi nhân
viên được một cửa hàng tuyển dụng. Mối quan hệ thứ hai, được thể hiện bằng nhân viên quản lí quản
lí cửa hàng, là mối quan hệ 1:1, vì mỗi cửa hàng được một nhân viên quản lý và một nhân viên chỉ quản lý một cửa hàng.
8. Tạo ERD để hiển thị mối quan hệ giữa EMPLOYEE, STORE và REGION. lOMoAR cPSD| 58950985
9. Tạo sơ đồ quan hệ để hiển thị mối quan hệ giữa EMPLOYEE, STORE và REGION.
10. Đối với mỗi bảng trong cơ sở dữ liệu, hãy xác định khóa chính và khóa ngoại. Nếu một bảng
không có khóa ngoại, hãy viết None.