



















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.