Tải bản đầy đủ (.doc) (27 trang)

đề cương cơ sở dữ liêu

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 (467.62 KB, 27 trang )

1.

2.

Chương 1: Nhập môn CSDL
Nào là giải pháp hệ thống tệp? Nhược điểm của nó ra sao?
Hệ thống quản lí tệp truyền thống thường được tổ chức riêng rẽ, phục vụ cho
một mục đích của một đơn vị hoặc một đơn vị con trực thuộc cụ thể.
Hệ thống quản lý tệp truyền thống cho phép ta tạo các loại tệp, truy cập và xử lý
thông tin trong các tệp thông qua các chương trình ứng dụng. Các phần mềm
ứng dụng này được viết bằng ngôn ngguwx lập trình đa năng nhu PASCAL, C,..
Nhược:
- Thông tin được tổ chức riêng rẽ ở nhiều nơi nên việc cập nhật dễ làm mất
tính nhất quán dữ liệu
- Hệ thống thông tin được tổ chức thành các hệ thống file riêng lẻ nên thiếu
sự chia sẻ thông tin giữa các nơi
- Có sự dư thừa dữ liệu rất lớn qua việc trùng lặp các tệp tin trong các ứng
dụng khác nhau
- Không gian đĩa bị lãng phí, khó khăn trong việc bảo trì hệ thống
- Khó khăn trong việc truy xuất dữ liệu
Hệ cơ sở dữ liệu là gì?Ưu điểm của Hệ CSDL
a. Các thành phần của một hệ CSDL

b. Ưu điểm của việc xây dựng một hệ CSDL:
- Đảm bảo sự độc lập dữ liệu: Dữ liệu độc lập với chương trình làm cho dữ
liệu được sử dụng rộng rãi và thuận lợi hơn
- Giảm thiểu việc dư thừa dữ liệu: Khác với hệ thống tệp, hệ thống CSDL tổ
chức theo cấu trúc thống nhất, hợp lý hạn chế việc lưu trữ tại nhiều nơi.
- Đảm bảo tính nhất quán và toàn vẹn dữ liệu: Do ít dư thừa nên hạn chế được
sự dị thường khi thay đổi, cập nhật.



3.

4.

5.

6.

7.

- Tăng tính dùng chung: CSDL có khả năng cho nhiều người truy cập sử dụng
mỗi người nhìn vào CSDL như nó là của riêng mình không bị ảnh hưởng
bởi người khác
- Tăng khả năng phát triển các ứng dụng: Do có sự mở rộng giao lưu nên khả
năng sáng lạo cải tiến thuận lợi hơn
- Tính chuẩn hoá cao
- Chất lượng dữ liệu được cải thiện
- Giảm bớt chi phí bảo trì hệ thống
Dị thường dữ liệu là gì
Dị thường là những vấn đề xảy ra do sự dư thừa trong các bảng. Không phải tất
cả các bảng đều phát sinh dị thường, nó chỉ xảy ra khi một bảng chưa được
chuẩn hóa hoàn thiện. Một bảng chuẩn hóa lỗi có thể xảy ra những dị thường
sau: Dị thường khi cập nhật, xóa, thêm
Việc không nhất quán dữ liệu sẽ ảnh hưởng gì
Sự không nhất quán dữ liệu trong lưu trữ làm cho dữ liệu mất đi tính toàn vẹn
của nó.
Tính toàn vẹn dữ liệu đảm bảo cho cái gì
Tính toàn vẹn dữ liệu đảm bảo cho sự lưu trữ dữ liệu luôn đúng. Toàn vẹn dữ
liệu là việc đặt ra các quy tắc trong một CSDL nhằm kiểm tra các giá trị của dữ

liệu trước khi được lưu trữ phải đảm bảo tính chính xác và hợp lí bên trong một
CSDL
Mô hình hệ cơ sở dữ liệu ntn (mức logic, mức vật lí, mức ngoài)
Kiến trúc của một hệ CSDL

Cấu trúc một hệ CSDL gồm ba mức:
- Mức ngoài: Là mức sát với người sử dụng nhất, là cách nhìn, là quan
niệm của từng người sử dụng đối với CSDL mức khái niệm. Khả năng
truy nhập tuỳ thuộc vào quyền hạn từng USER.
- Mức logic (CSDL mức khái niệm): Là tập các dữ liệu được biểu diễn
dưới dạng trừu tượng của CSDL vật lý.
- Mức vật lý: Là tập các dữ liệu được biểu diễn theo một cấu trúc nào
đó, được lưu trên các thiết bị nhớ thứ cấp (như đa từ, băng từ . . . ).
Thế nào là độc lập mức vật lí? Mức logic?


Tính độc lập dữ liệu là sự bất biến của chương trình ứng dụng đối với các thay
đổi trong cấu trúc lưu trữ và chiến lược truy nhập vào CSDL. Tính độc lập dữ
liệu ở đây có hai mặt:
Độc lập về vật lý: Là sự độc lập trong lưu trữ, chương trình ứng dụng không
phụ thuộc vào việc dữ liệu được lưu giữ ở đâu và lưu giữ như thế nào trên thiết
bị nhớ thứ cấp
Độc lập về lôgic: Sự thay đổi, thêm bớt thông tin về các thực thể ở mức quan
niệm không đòi hỏi thay đổi các khung nhìn của người sử dụng dẫn tới không
cần thay đổi chương trình ứng dụng.
8. Dữ liệu được biểu diễn ntn trong
a. Mô hình phân cấp
Mô hình dữ liệu phân cấp (Hierachical Data Model) được gọi tắt là mô hình
phân cấp được đưa ra vào những năm 60, trong mô hình dữ liệu này dữ liệu
được tổ chức thành cấu trúc cây, trong đó các nút (node) của cây biểu diễn các

bản ghi, giữa các bản ghi liên kết với nhau theo mối quan hệ cha con:
- 1 cha nhiều con
- 1 con chỉ có 1 cha
Ưu:
- thể hiện dễ dàng quan hệ 1-n
- Việc phân chia dữ liệu dễ thể hiện, đảm bảo an toàn dữ liệu
- Tính độc lập của chương trình và các dữ liệu được đảm bảo
Nhược:
- Không thể hiện quan hệ n-n
- Trong 1 hệ thống phân cấp, dữ liệu được tổ chức như trên dẫn đến khó
sửa đổi dữ liệu
- Lặp lại dữ liệu, lãng phí bộ nhớ và tốn nhiều công sức tạo lập
b. Mô hình mạng
Mô dình dữ liệu mạng (Network Dât Model) được gọi tắt là mô hình mạng
(Network Model) là mô hình dữ liệu biieeru diễn bởi 1 đồ thị có hướng. Trong
mô hình mạng người ta dùng 2 yếu tố là bản ghi và liên kết. Khái niệm bản ghi
giống mô hình phân cấp, liên kết là tập các con trỏ vật lí thiết lập quan hệ chủ
sở hữu giữa tập bản ghi này với tập bản ghi khác.
Mô hình mạng người ta đã khắc phục được việc dư thừa dữ liệu của mô hình
phân cấp. Tuy vậy cấu trúc hệ thống phức tạp ngooài nội dung thông tin, mỗi
bản ghi còn có thêm thông tin nữa là địa chỉ để truy nhập tới các bản ghi thành
viên. Với mỗi liên kết phải có nhãn để xác định liên kết
Ưu:
- Dễ thể hiện mối liên hệ n-n
- Kiểu truy cập dữ liệu mềm dẻo hơn kiểu phân cấo
Nhược:


c.


9.
10.

11.

- Sửa đổi dữ liệu khó khăn
- Với lập trình viên, việc thiết kế CSDL khó
Mô hình thực thể liên kết (Entity-Relationship)
E-R là mô hình trung gian để chuyển những yêu cầu quản lý dữ liệu trong thế
giới thực thành mô hình CSDL quan hệ, được dùng để thiết kế CSDL ở mức
quan niệm
Biểu diễn trừu tượng cấu trúc của CSDL
Mô hình thực thể- liên kết (Entity-Relationship Diagram) gồm:
- Tập thực thể (Entity Sets)
- Thuộc tính (Attributes)
- Mối quan hệ (Relationship)
Mối quan hệ 1-1, 1-n, n-n
Mô hình thực thể liên kết diễn đạt bằng các khái niệm gì?Mô hình này
dùng để biểu diễn CSDL ở mức nào? (Khái niệm)
Tổ chức dữ liệu theo mô hình nào là tốt nhất phụ thuộc vào điều gì?
Tổ chức dữ liệu theo mô hình nào là tốt nhất phụ thuộc vào yêu cầu truy xuất và
khai thác thông tin của đơn vị quản lý nó. Nó được sử dụng ở đâu và vào lúc
nào là tốt nhất. Tuy nhiên thường người ta dựa vào các tiêu chí sauu để nói rằng
mô hình nào là tốt nhất khi
- Mục đích: Phần lớn các mô hình dữ liệu sd hệ thống ký hiệu để biểu diễn dữ
liệu và làm nền tảng cho các hệ ứng dụng và ngôn ngữ thao tác dữ liệu. Các
mô hình thực thể quan hệ không có hệ thống kí hiệu để xây dựng các phép
toán thao tác dữ liệu mà sử dụng để thiết kế lược đồ khái niệm, cài đặt trong
một mô hình dữ liệu với một hệ quả trị CSDL nào đó.
- Hướng giá trị hay hướng đối tượng: các mô hình dữ liệu quan hệ và mô hình

logic là các mô hình dữ liệu hướng giá trị. Trong các mô hình dữ liệu hướng
giá trị có tính khai báo và có tác động đến các ngôn ngữ được nó hỗ trợ. Các
mô hình mạng, phân cấp, mô hình dữ liệu hướng đối tượng cung cấp đặc tính
nhận dạng đối tương, nên có thể xem chúng là các mô hình hướng đối tượng.
- Tính dư thừa: tất cả các mô hình dữ liệu đều có khả năng hỗ trợ lưu trữ dữ
liệu vật lý và hạn chế sự dư thừa dữ liệu. Tuy nhiên các mô hình dữ liệu
hướng đối tượng giải quyết sự dư thừa tốt hơn, bằng cách tạp ra sử dựng con
trỏ đến nhiều vị trí khác nhau
- Giải quyết mỗi quan hệ n-n: phần lớn trong các mô hình CSDL có chứa các
mối quan hệ n-n, 1-n, hay 1-1. Một quan hệ có nhiều phần tử của các quan hệ
khác và ngược lại. Tuy nhiên trong mô hình dữ liệu mạng không chấp nhận
mối quan hệ n-n
Mỗi mô hình CSDL bao gồm gì? (Tập các kí hiệu để mô tả dữ liệu và tập
các phép toán để thao tác trên CSDL)


Mô hình dữ liệu là khuôn dạng của dữ liệu, cho phép người dùng biểu diễn dữ
liệu dưới cấu trúc thuật ngữ dễ hiểu. Một mô hình dữ liệu là một hình thức toán
học bao gồm:
+ Một hệ thống các ký hiệu để mô tả dữ liệu.
+ Tập các phép toán để thao tác lên CSDL
12. Các mô hình CSDL:
a. Hệ tập trung
Hệ CSDL tập trung là hệ trong đó CSDL được lưu trữ tại một vị trí nhất định,
gồm các hệ CSDL sau:
- Hệ CSDL cá nhân (Personal Database): mô hình này là 1 hệ CSDL nhỏchỉ gồm
một máy tính cá nhân với 1 vài người sử dụng làm nhiệm vụ đơn lẻ với quy mô
nhỏ.

- Hệ CSDL trung tâm (Central Database):Hệ CSDL trung tâm là một hệ đa người

dùng từ thiết bị đầu cuối (terminal) tại đó có màn hình và phím để trao đổi
thông tin. Mọi xử lý, tính toán được thực hiện tại trung tâm với một máy tính
mạnh có thể xử lí nhiều yêu cầu

- Hệ CSDL Client-Server: (Client/Server Database):CSDL được lưu trữ tại máy
chủ, là nơi quản lý CSDL (Server) và nhiều máy trạm (Client) kết nối sử dụng
chung CSDL này.


b. Hệ phân tán
Hệ CSDL phân tán là hệ CSDL trong đó CSDL được tổ chức phân bố thành
nhiều CSDL địa phương, được lưu trữ trên các máy tính ở các vị trí địa lí khác
nhau nhưng vẫn cùng thuộc 1 hệ thống. Các CSDL này được liên kết với nhau
qua mạng máy tính phục vụ nhu cầu người dùng ở nhiêu địa điểm khác nhau ở
mức trong suốt.

Hệ CSDL phân tán gồm 2 loại
- Hệ thuần nhất: trong các hệ CSDL địa phương biểu diễn theo những mô hình
giống nhau phương thức truyền thông giống nhau.
- Hệ không thuần nhất: Ngược lại với mô hình hệ thuần nhất là hệ thống không
thuần nhất
13. Thế nào hệ quản trị CSDL? Những Hệ quản trị CSDL thông dụng hiện
nay?
Một hệ quản trị CSDL thực hiện các chức năng sau:
- Tạo cấu trúc dữ liệu tương ứng với mô hình dữ liệu được chọn.
- Đảm bảo tính độc lập dữ liệu.
- Cập nhật dữ liệu.
- Phát sinh các báo cáo từ các dữ liệu trong CSDL.
- Đảm bảo tính an toàn và toàn vẹn dữ liệu trong CSDL.
- Cung cấp các tiện ích sao lưu phục hồi dữ liệu.

- Cung cấp các thủ tục điều khiển tương tranh.


Một hệ quản trị thông thường có các thành phần chính sau:
- Ngôn ngữ định nghĩa dữ liệu (Data Definition Language).
- Ngôn ngữ thao tác dữ liệu (Data Manipulation Language).
- Ngôn ngữ hỏi đáp dữliệu (Quay Language).
- Bộ viết báo cáo.
- Từ điển dữ liệu.
- Bộ phát sinh đồ hoạ.
14. Người quản trị CSDL có nhiệm vụ gì
Người quản trị CSDL: trong những tổ chức có nhiều người cùng sử dụng chung
một nguồn dữ liệu thì nhất thiết phải có một người đúng đầu quản lí, chịu trách
nhiệm đối với nguồn dữ liệu này. Đó chính là người quản trị CSDL (Database
Administrators-DBA). DBA có nhiệm vụ tổ chức nội dung của CSDL, tạo và
cấp quyền truy nhập CSDL cho người dùng, đưa ra yêu cầu về phần cứng và
phần mềm… nếu cần thiết. DBA cũng phải chịu trách nhiệm bảo vệ an toàn,
Backup thông tin… khi có sự cố
15. Thực thể là gì? Kiểu thực thể? Trong bảng dữ liệu thì mỗi hàng phản ánh
cái gi?
a. Thực thể
Thực thể (entity) là đối tượng cụ thể hay trừu tượng mà ta cần quan tâm trong
công tác quản lý. Tên thực thể là danh từ.
VD: Quản lý thư viện ta có các thực thể như: "Sách", "Độc giả"... là các đối
tượng cụ thể. Các đối tượng trừu tượng có thể là: Khoa công nghệ thông tin,
Ngành toán ứng dụng,…
b. Kiểu thực thể
Kiểu thực thể là tập hợp các thực thể (đối tượng) cùng được mô tả bằng
những đặc trưng, tính chất giống nhau.
Ví dụ: Một nhân viên là một thực thể, tập hợp các nhân viên của cùng một hệ

thống tạo thành một kiểu thực thể.
Biểu diễn một kiểu thực thể: ta dùng một hình chữ nhật trong ghi tên của kiểu
thực thể.
Ví dụ: << Nhân viên>>, <<Sách>>,<<độc giả>>
Ghi chú: Thể hiện của thực thể là một thực thể cụ thể, nó là một phần tử trong
tập hợp hay lớp của kiểu thực thể. Vì vậy trong các ứng dụng để tránh sử
dụng nhiều khái niệm ta đồng nhất thực thể và kiểu thực thể.
c. Bảng
- Mỗi bảng gọi là một quan hệ/ kiểu thực thể/ tệp.
- Mỗi hàng gọi là một bộ/ thực thể/bản ghi.


- Mỗi cột gọi là một thuộc thính/trường.
16. Liên kết là gì? Thế nào là liên kêt 1-1, 1-n, n-n ? Mô hình nào không biểu
diễn được mối liên kết n-n
a. Liên kết
Liên kết là một sự ghép nỗi giữa 2 hay nhiều thực thể phản ánh
một thực tế quản lý
b. Phân loại liên kết
- Liên kết 1-1: hai kiểu thực thể A và B có mối liên kết 1-1 nếu một
thực thể kiểu A tương ứng với một thực thể kiểu B và ngược lại.

Ghi chú: Trong biểu đồ cấu trúc dữ liệu hai kiểu thực thể có mối liên
kết 1-1 sẽ được đồng nhất.
- Liên kết 1-n : Hai kiểu thực thể A và B có mối liên kết 1-n nếu một
thực thể kiểu A tương ứng với nhiều thực thực thể kiểu B và ngược lại
một thực thể kiểu B tương ứng với duy nhất một thực thể kiểu A.

- Liên kết n-n : Hai kiểu thực thể A và B có mối liên kết n-n nếu một
thực thể kiểu A tương ứng với nhiều thực thể kiểu B và ngược lại.


Ghi chú: Trong biểu đồ cấu trúc dữ liệu nếu tồn tại mỗi liên kết n-n
giữa các kiểu thực thể, ta cần chuẩn hoá nó đưa về dạng liên kết 1-n


Chương2 : Mô hình dữ liệu quan hệ
1. Hiểu khái niệm, định nghĩa, bản chất của :
a. Thuộc tính (thuộc tính khóa, thuộc tính không khóa, miền trị của thuộc tính…)
Thuộc tính (Atrribute) là dữ liệu dùng để mô tả một đặc trưng của thực thể.
- Các thuộc tính đơn thường kí hiệu là các chữ cái A, B, C,..
- Tập thuộc tính thường kí hiệu là các chữ cái X, Y, Z,...
- Các thuộc tính được phân biệt qua tên gọi và phải thuộc một kiểu dữ
liệu nhất định (kiểu dữ liệu là kiểu đơn).
- Tên nên đặt sát với ý nghĩa của nó, mang tính gợi nhớ và ngắn gọn
- Kiểu giá trị: Mỗi thuộc tính được gán với 1 kiểu giá trị phù hợp: kí tự,
số, logic,…
- Miền giá trị: tập hợp tất cả các giá trị mà 1 thuộc tính có thể nhận
được gọi là miền giá trị thuộc tính
Kí hiệu: MGT hoặc DOM(domain)
VD: DOM(A) hoặc MGT(A): miền giá trị của thuộc tính A
b. Quan hệ, lược đồ quan hệ, bậc của quan hệ, lực lượng của quan hệ
i. Quan hệ: Gọi U=(A1,A2,A3,..An) là tập hữu hạn các thuộc tính, mỗi
thuộc tính Ai với i=1…n có miền giá trị tương ứng là DOM(A i). Quan
hệ R xác định trên tập thuộc tính U là tập con của tích đề-các
n là số ngôi của quan hệ/số lượng thuộc tính
m: lực lượng của quan hệ/số các bộ giá trị của quan hệ

Chú ý: Quan hệ là mô tả toán học cho Bảng dữ liệu, trong đó:
Tên quan hệ
Tên bảng

Tên thuộc tính
Tên cột
Các bộ giá trị
Các dòng trong bảng (bản ghi)
Bảng
Quan hệ
ii. Lược đồ quan hệ
Lược đồ quan hệ r là 1 cặp (U, F) kí hiệu r(U, F)
Trong đó:
- U là tập hữu hạn các thuộc tính: U=(A1,A2,A3,..An)
- F là tập phụ thuộc hàm U={f1,f2,f3,..fn}


- Thể hiện của một lược đồ quan hệ là một quan hệ. Nói cách khác,
quan hệ luôn xác định trên một lược đồ quan hệ
- Một lược đồ quan hệ có thể tưởng đương một tập lược đồ quan hệ nhỏ
hơn nhưng cấu trúc tốt hơn khi theo các thao tác dữ liệu
iii. Bậc của quan hệ
iv. Lực lượng của quan hệ
c. Khóa, Khóa tối thiểu, siêu khóa
i. Khóa: Cho quan hệ R(U), K U
K là khóa mã quan hệ R nếu mọi ti, tj R, ti # tj thì ti[K] # tj[k]
Ý nghĩa: khóa là 1 tập thuộc tính mà giá trị trên nó xác định 1 bộ giá
trị duy nhất của quan hệ (tức là một dòng duy nhất trong bảng)
ii. Khóa của quan hệ
Cho quan hệ R(U) xác định trên F, K U, K là khóa của quan hệ nếu
K thỏa mãn
- (K)+=U
- mọi A K thì (K-A)+ khác U
Chú ý:

- Nếu chỉ thỏa mãn (1) thì K là siêu khóa
- Nếu thỏa mãn (1)+(2) thì K là khóa tối thiểu
d. Phụ thuộc hàm
Cho quan hệ R(U); X, Y là 2 tập thuộc tính (X,Y U) và một PTH f: X Y Ta
nói quan hệ R thoả PTH f và viết R(f) nếu với mọi 2 bộ bất kỳ t i, tj  R giống
nhau trên X thì chúng cũng giống nhau trên Y. Hay ta viết:
R(X

Y)

( u,v R): u.X=v.X

u.Y = v.Y.

Trong đó u, v là hai bộ bất kỳ thuộc quan hệ R.
Nếu f:
- X

Y: Y phụ thuộc hàm vào tập thuộc tính X hay tập thuộc tính X

xác định hàm tập thuộc tính Y.
- X! Y: Y không phụ thuộc hàm vào X hay X không xác định hàm Y
i. Phụ thuộc hàm hiển nhiên
Y X thì X-> Y
ii. Phụ thuộc hàm đầy đủ, không đầy đủ:


X-> Y, X’

X


- Không tồn tại X’->Y thì X-> Y là pth đầy đủ
- tồn tại X’->Y thì X->Y là pth không đầy đủ
Tức là: X->Y là pth đầy đủ nếu X không có dư thừa
iii. Phụ thuộc hàm bắc cầu:
X->Y, Y->Z thì X->Z
Z pth bắc cầu vào X qua Y
Lưu ý :
- Pth là cơ sở để chuẩn hóa các lược đồ quan hệ
- Pth nói lên sự ràng buộc và mối liên hệ giữa các thuộc tính trong quan
hệ
2. Các phép toán đại số quan hệ :
- Phép hợp: các quan hệ tham gia phép toán phải là các quan hệ khả
hợp
- Phép giao: nt
- Phép trừ: nt
- Phép tích đề các
- Phép chiếu
- Phép chọn
- Phép kết nối
- Phép chia
a. Thế nào là các quan hệ khả hợp
Hai quan hệ R,S gọi là khả hợp nếu chúng có cùng bâc (số các thuộc tính bằng
nhau) và miền trị của thuộc tính thứ i của quan hệ này bằng miền trị của thuộc
tính thứ i trong quan hệ kia
b. Biểu diễn hình thức của các phép toán
i. Phép hợp
Phép hợp: Hợp của hai quan hệ R và S khả hợp
là tập các bộ thuộc R hoặc thuộc S.
Kí hiệu:

VD:
R

A
a1
a1

B
b1
b2

C
c1
c2
A

S

B

C

A
a1
a2

B
b1
b2


C
c1
c2


a1
a1
a2

b1
b2
b2

c1
c2
c2

ii. Phép giao
Giao của hai quan hệ R và S khả hợp là tập các
bộ thuộc cả quan hệ R và S
Kí hiệu: R

R

A
a1
a1

B
b1

b2

C
c1
c2

S

A
a1

B
b1

A
a1
a2

B
b1
b2

C
c1
c2

C
c1

iii. Phép trừ (- hoặc \)

Hiệu của hai quan hệ R và S khả hợp là tập các
bộ thuộc R nhưng không thuộc S
Kí hiệu: R
R

A

B

C

a1

b1

a1
a2

S

A

B

C

c1

a1


b1

c1

b2

c2

a2

b2

c2

b2

c2

R-S

A

B

C

a1

b2


c2

iv. Phép tích đề các
Cho R là một quan hệ xác định trên tập thuộc tính (A 1, A2, … An) và
quan hệ S xác định trên tập thuộc tính (B 1, B2, … Bn). Tích đề-các của
R và S là một quan hệ gồm (n+m) thuộc tính và mỗi bộ của quan hệ
kết quả có dạng n thành phần đầu là 1 bộ thuộc R và m thành phần
sau là một bộ thuộc S.
RxS={t|t(a1, a2, …an, b1, b2, …bn) trong đó{a1, a2, …an} R, {b1, b2, …
bn} S}


R

A
a1
a1

B
b1
b2

C
c1
c2

S

D
d

d’

E
e
e’

RxX

A

B

C

D

E

F

a1

b1

c1

d

e


f

a1

b1

c1

d’

e’

f’

a1

b2

c2

d

e

f

a1

b2


c2

d’

e’

f’

F
f
f’

v. Phép chiếu
Phép chiếu là phép rút gọn bảng (lấy ra các cột cần) còn gọi là phép
cắt dọc
={t[X]|t R}
R

A

B

C

A

=

B


a1
b1
c1
a1
b1
a2
b2
c2
a2
b2
a1
b2
c2
a1
b2
vi. Phép chọn
Phép chọn là phép toán lọc trong quan hệ các bộ giá trị thỏa mãn điều
kiện F, còn gọi là phép cắt ngang
Trong F sử dụng:
3. Các phép toán so sánh: =, >, >=, <, <=, <>
4. Các phép toán logic:
R

A

B

C

a1

a2
a1

b1
b2
b2

c1
c2
c2

=
F<>”b1”

A

B

C

a2
a1

b2
b2

c2
c2

i. Phép kết nối

: kết nối thường
: kết nối tự nhiên
Phép kết nối là là kết hợp của hai phép toán tích đề các và phép chọn


Chú ý:
5. Để so sánh được, A, B phải có giá trị phù hợp
6. Nếu phép toán
là phép tooán “=” thì phép kết nối gọi là kết nối
bằng
7. Kết nối bằng của các quan hệ có các thuộc tính cùng tên thì khi kết
nối, các thuộc tính đó (ở quan hệ kết quả) được chập lên nhau thì gọi
là kết nối tự nhiên. Kí hiệu “*”
8. Kết nối tự nhiên là kết nối quan trọng thường xuyên sử dụng trong
việc xử lí CSDL
R
A
B
C
S
D
E
a1
b1
1
d1
1
a2
b2
2

d2
2
a3
b3
3
R X

A

B

C

D

E

F=C>=E

a1
a2
a2
a3
a3

b1
b2
b2
b3
b3


1
2
2
3
3

d1
d’
d2
d1
d2

1
e’
2
1
2

i. Phép chia
Cho R là quan hệ xác định trên tập thuộc tính U, với U={A 1, A2,…
An} và quan hệ S xác định trên tập thợc tính V với V={B 1, B2,…Bm}
sao cho m>n, S

và U V, Phép chia R S là một quan hệ P(M)ó

dạng sau:
R
R


A
a
a
b

B
b
b
c

C
c
e
e

c

d

c

D
d
f
f
d

S

C

c
e

D
d
f

R S

A

B

c
d
e
f
a
a
b
d
e
c
Chú ý: thường sử dụng 1 số hàm tiện ích
SUM(R, A): tính tổng gia trị trên cột A của quan hệ R
AVG(R,A)
MAX(R,A)

b
d



MIN(R,A)
b. Các bài tập về phép toán
c. Chú ý : một số câu hỏi sau
i. Phép kết nối là tổ hợp của các phép toán nào (xem bên trên)
ii. Điều kiện để thực hiện phép chia là gì…(xem bên trên)


1.

Chương 3 : Chuẩn hóa dữ liệu
Hệ tiên đề Amstrong gồm các quy tắc(tiên đề) nào. Hệ tiên đề Amstrong áp
dụng để suy dẫn gì (thuộc tính, giá trị, phụ thuộc hàm, quan hệ)
a. 3 tiên đề
- Tiên đề phản xạ: Nếu Y X thì X->Y

- Tiên đề tăng trưởng: Nếu X->Y và Z U thì XZ->YZ
- Tiên đề bắc cầu: Nếu X->Y và Y->Z thì X->Z
b. 8 tính chất
- Tính chất chặt: X->X
- Tính chất bắc cầu: Nếu X->Y và YZ->W thì XZ->W
- Tính mở rộng VT và thu hẹp VP: Nếu X->Y thì XZ->Y\W
- Tính cộng đầy đủ: Nếu X->Y và Z->W thì XZ->YW
- Tỉnh mở rộng VT: Nếu X->Y thì XZ->Y
- Tính cộng VP (luật hợp): Nếu X->Y và X->Z thì X->YZ
- Tính bộ phân VT (luật tách): Nếu X->YZ thì X->Y và X->Z
- Tính tích lũy: Nếu X->YZ, Z->W thì X->YZW
2. Định nghĩa, bản chất của phụ thuộc hàm(phụ thuộc hàm đầy đủ/ không
đầy đủ, phụ thuộc hàm dư thừa), bao đóng phụ thuộc hàm, bao đóng tập

thuộc tính,…Tính tương đương của các tập phụ thuộc hàm
a. Bao đóng tập pth
Cho lược đồ quan hệ r(U, F), X, Y U. Nếu lược đồ quan hệ trên cũng thỏa
mãn với f: X-> Y thì F+=F.U(X->Y)
F+ là bao đóng của tập pth F
Bao đóng của tập pth F (F+) là tất cả các pth được suy dẫn logic từ F
F+= {f:X → Y| X,Y ∈ U F f}
F+ =F: họ đầy đủ của tập pth
- Bài toán thành viên:
X->Y  Y X+
X+ là bao đóng của tập thuộc tính X
b. Bao đóng tập thuộc tính
Cho quan hệ R(U) xác định trên F: X, Y U
X+ (bao đóng của tập thuộc tính X) là tập các thuộc tính được suy diễn logic từ
F nhờ tập tiên đề Armstrong
X+= {A| A
3. Phủ không dư thừa, phủ tối thiểu

U, X->A ∈ F+}


Phủ tập pth: 2 tập pth F, G thỏa F+=G+ (F tương đương G) thì ta có thể nói F phủ
G hay G phủ F
a. Phủ khong dư thừa
Cho tập pth F, nếu không tồn tại X->Y thuộc F mà (F-(X->Y)) +=F+ thì F là tập
pth không dư thừa
b. Phủ tối thiểu
thỏa mãn các điều kiện sau:
- VP là thuộc tính đơn
- Không có pth dư thừa

- Không có thuộc tính dư thừa VT trong các pth
4. mục tiêu của phép tách lược đồ quan hệ là gì.Phép tách không mất mát
thông tin là thỏa mãn gì
Cho p={R1,R2} là một phép tác trên R và F là tập pth trên R thì phép tách này là
không mất mát thông tin nếu R1 R2 -> R1\R2 hoặc R1 R2 -> R2\R1
5.

6.
a.

b.

c.

d.

Chú ý: các phụ thuộc hàm trên không nhất thiết thuộc F, chỉ cần thuộc F+
Chuẩn hóa dữ liệu là gì
Chuẩn hóa dữ liệu là quá trình phân rã lược đồ quan hệ chưa chuẩn hóa (có
dạng chuẩn nhất) thành các lược đồ quan hệ nhỏ hơn nhưng ở dạng chuẩn cao
hơn (có cấu tríc tốt hơn) và không làm mất mát thông tin
Định nghĩa 1NF, 2NF, 3NF, BCNF
1NF
Lược đồ quan hệ r được goi là ở dạng chuẩn 1NF nếu toàn bộ các miền trị có
mặt trong quan hệ R đều chỉ chứa các giá trị nguyên tố
2NF
Lược đồ quan hệ r được goi là ở dạng chuẩn 2NF nếu nó ở dạng chuẩn 1 và các
thuộc tính không khóa của quan hệ pth đầy đủ vào khóa chính (tức là các thuộc
tính không khóa của quan hệ không phụ thuộc vào một phần của khóa)
3NF

nếu nó ở dạng chuẩn 2 và các thuộc tính không khóa của quan hệ , không pth
bắc cầu vào khóa chính (tức là các thuộc tính không khóa của quan hệ không
pth vào thuộc tính không khóa)
BCNF
nếu xác định trên các pth X->A, A X thì X là khóa của quan hệ


Chương 4: SQL
1.
SQL viết tắt bởi chữ gì?
Structure Query Language
2.
Ý nghĩa của các lệnh:
a. Create table: tạo bảng
Create table <tên_bảng>
(<tên_cột1> <kiểu_dữ_liệu> [ràng buộc dữ liệu],
(<tên_cột2> <kiểu_dữ_liệu> [ràng buộc dữ liệu],

(<tên_cột n> <kiểu_dữ_liệu> [ràng buộc dữ liệu]
)
b. UPDATE
Update <tên_bảng>
Set <tên_cột_1>=<gia_tri1>, <tên cột 2> =<gia_trị 2>…
Where <đk>
VD:
Update SV
Set hoTen=’XYZ’
where maSV=’abc’
c. DELETE
Delete from <tên_bảng> where <đ_k>

VD:

Delete From SINHVIEN
where maSV=’ABC’
d. DROP
e. ALTER
thêm cột
Alter table <tên_bảng>
Add <tên_cột> <kiểu_dữ_liệu> [ràng buộc dữ liệu]
Xóa cột
Alter table <tên_bảng>
Drop Column <tên_cột>
Xóa ràng Alter table <tên_bảng>
Drop constraint <tên_ràng_buộc>
buộc
f. INSERT INTO
Insert into <ten_bang> (cot1,cot2,…cot_n)
Values (‘giatri_1’, ‘giá trị2’,…, ‘giá_trị_n’)
p/s: có dấu thì thêm N
3.
Chức năng của ngôn ngữ định nghĩa dữ liệu, ngôn ngữ thao tác dữ
liệu
- Ngôn ngữ định nghĩa dữ liệu trong một hệ QTCSDL cho phép người
dùng khai báo kiểu và cấu trúc dữ liệu thể hiện thông tin. Khai báo các


ràng buộc trên dữ liệu được lưu trữ trong CSDL. Về cơ bản, ngôn ngữ
định nghĩa dữ liệu bao gồm các lệnh: CREATE (định nghĩa và tạo mới
đối tượng CSDL), ALTER(thay đổi định nghĩa của đối tượng CSDL),
DROP (xóa đối tượng CSDL)

- Ngôn ngữ thao tác dữ liệu: diễn tả cấc yêu cầu, các thao tác cập nhật và
khai thác cơ sở dữ liệu
4.
Ý nghĩa của các từ khóa trong câu lệnh SQL
a. Lệnh truy vấn dữ liệu: SELECT
Select [all|dítinct] <ds_chọn>
From <ds_bảng>
[Where <đk>]
[Group by <ds_cột>]
[HAVING<đk_nhóm>]
[ORDERBY <tên_cột>[ASC|DESC][,…n]]
b. Where: điều kiện
Trong mệnh đề where thường sử dụng:
- Các toán tử kết hợp (and, or)
- Các toán tử so sánh: =, >, <, >=, <=, <>, !=, !<, !>
- Toán tử phạm vi : [not] between a and b
VD: Select * from detai where kp between 20 and 30
- Toán tử tập hợp: In và Not in
VD: Select * from detai where kp in(20, 30)
- Toán tử LIKE (NOT LIKE): mô tả khuôn dạng của dữ liệu
cần tìm kiếm. Thường kết hợp:
o Dấu phần trăm (%): một chuỗi các kí tự bất kì
o Gạch dưới (_): một kí tự bất kì
VD: Select * from sinhvien where ten like ‘L%’
Select * from sinhvien where ten like ‘%ng’
- Các giá trị null: where tên_cột is [not] null
c. AS: Thay đổi tiêu đề các cột:
<tên_thuộc_tính> AS <tiêu_đè_cột>

5.

diện

VD: select MaDT as “Mã đề tài” from sinhvien
d. DISTINCT: Loại bỏ các bản ghi trùng nhau
VD: select distinct Masv from sinhvien
e. ORDER BY: sắp xếp kq truy vấn dữ liệu
ASC: tăng
Desc: giảm
VD: Order by chieucao[ASC], cannang [desc]
Các hàm nhóm sử dụng trong câu lệnh, các phép toán, các kí tự đại


a. GROUP BY:
Được sử dụng để phân các dong dữ liệu thành các nhóm dữ liệu và
thực hiện tính toán, thống kê trên các nhóm.
Các hàm nhóm được sử dụng để tính giá trị thống kê trên toàn
bảng hoặc trên mỗi nhóm dữ liệu
Chúng có thể được sd là các cột trong ds chọn câu lệnh SELECT
hoặc xuất hiện trong mệnh đề HAVING (đk đối với nhóm) những
các hàm không được xuất hiện trong where
- Thống kê trên tooàn bộ dữ liệu: khi cần tính toán giá trị thống
kê trên toàn bộ dữ liệu ta sd hàm nhóm trên câu lệnh
SELECT. Khi này trong danh sách chọn của SELECT không
được sử dụng bất kì thuộc tính hay thuộc biểu thức nào ngooài
hàm nhóm
- Thống kê trên các nhóm dữ liệu:
o Khi cần tính toán giá trị thống kê trên các nhóm danh sách
ta sử dụng group by để phân dữ liệu thành các nhóm riêng
biệt. Các hàm nhóm được sử dụng sẽ thực hiện thao tác
tính toán trên mỗi nhóm và cho biết các giá trị thống kê

trên từng nhóm dữ liệu
o Biểu thức nào đk việc phân nhóm dữ liệu thì phải được liệt
kê sau mệnh đề group by
o Trong thường hợp danh sách chọn của câu lệnh select có
các hàm nhóm và những thuộc tính, biểu thức không phải
là đối số của hàm, nhóm thì những thuộc tính hoặc biểu
thức này phải được liệt kê đầy đủ trong group by
VD: Tìm sĩ số của lớp
Select Lop.MaL, TenL, Count (masv) as ‘Siso’
From SV, Lop
WHERE SV.MaL=Lop.MaL
Group by Lop.MaL, TenL
Having Count (MaSV>=30)
b. Having: mệnh đề thường đi kèm group by là mệnh đề điều kiện tác
động lên các nhóm dữ liệu
c. MAX: giá tị lớn nhất trong cột
Vd: Select Max(hocluc) as diemcaonhat from sinhvien;
d. Min
VD: Select Min(hocluc) as diemthapnhat from sinhvien;
e. Avg:
VD: Select AVG(hocluc) as diemtb from sinhvien;
f. Sum: Tổng giá trị trong cột


VD: Select AVG(hocluc) as tongdiem from sinhvien
g. Count: đếm số phần tử (hàng) trong cột
VD: Select count(hocluc) as sosinhvien from sinhvien
Count *: đếm số dòng



Chương 5: Tối ưu hóa câu hỏi
1. Tối ưu hóa câu hỏi nhằm mục đích gì
Tối ưu hóa câu hỏi để giảm không gian lưu trữ và thời gian tính toán
2. Một trong những chiến lược quan trọng để tối ưu hóa câu hỏi là gì
- Thực hiện phép chọn sớm nhất có thể


Bài tập
1. Cho CSDL gồm 2 quan hệ
CC(MSNCC, TEN_CC, DCCC)
MH(MSNCC, MSMH)
Trong đó:
MSNCC: Mã số người cung cấp
TEN_CC: Tên người cung cấp
DCCC: địa chỉ cung cấp
MSMH: Mã số mặt hàng
Hãy biểu diễn các yêu cầu sau đây bằng ngôn ngữ SQL:
h. Tìm mã số người đã cung cấp
Q1: Ít nhất một mặt hàng
Q2: không cung cấp mặt hàng nào
Q3:cung cấp mặ hàng có MSMH là 15
Q4: cung cấp ít nhất một mặt hàng nhưng không có mặt hàng có
mã số 15
i. Mặt hàng có mã số là 12, 13, 15 được cung cấp bởi các nhà cung
cấp địa chỉ nào?
j. Lập danh sách gồm các cột MSNCC, TEN_CC, MSMH từ CSDL
trên
2. Cho CSDL, gồm các quan hệ sau:
DAIHOC (TENTRUONG, HIEUTRUONG, DIACHI)
KHOA (TENTRUONG, MSKHOA, TENKHOA, SOSINHVIEN)

SINHVIEN(TENTRUONG, MSKHOA, MSSV, TENSV, DIACHISV)
trong đó:
SOSINHVIEN: số lượng là sinh viên
MSKHOA : mã số khoa
TENSV: tên sinh viên
DIACHISV : địa chỉ của sinh viên (hiểu là quê quán)
Biểu diễn các câu hỏi sau bằng ngôn ngữ SQL :
e. Trường đại học nào có khoa TINHOC
f. Tổng số sinh viên học ở tất cả các trường đại học
g. Sinh viên nào học tại quê nhà (Giả sử lấy tên tỉnh, thành phố)
h. Khoa nào của trường có số sinh viên đông nhất
i. Cho biết tên hiệu trưởng của các trường có khoa TINHOC


9. Cho CSDL với các quan hệ :
NHANVIEN(MANV,TENNHANVIEN,MSCOQUAN,CONGVIEC,TH
UTRUONG,LUONG)
COQUAN(MSCOQUAN,TENCOQUAN,DIACHI)
Biểu diễn bằng ngôn ngữ SQL và đại số quan hệ yêu cầu sau đây :
Q1 : Tìm tên những nhân viên ở cơ quan có mã số là 50
Q2 : Tìm mã số tất cả các cơ quan từ quan hệ NHANVIEN
Q3 : Tìm tên các nhân viên cơ quan có mã số là 15,20,25
Q4 : Tìm tên những người làm việc ở Đồ sơn
10.Cho CSDL quản lý dự án gồm các bảng dữ liệu sau
a. Bảng NHANVIEN chứa danh sách các nhân viên gồm các
thuộc tính sau:
Tên thuộc tính
Giải thích
MaNV
Mã nhân viên

Hoten
họ tên nhân viên
Ngaysinh
Ngày sinh
GT
giới tính
b. Bảng DU_AN chứa thông tin về các dự án gồm có các thuộc
tính sau :
Tên thuộc tính
Giải thích
MaDA
Mã dự án
TenDA
Tên dự án
Ngansach
Ngân sách
c. Bảng THAMGIA ghi danh sách sinh viên đăng kí tham gia dự
án
Tên thuộc tính
Giải thích
MaDA
Mã dự án
MaNV
Mã nhân viên
TGBD
thời gian bắt đầu
TGKD
thời gian kết thúc

a.

b.
c.
d.
e.

Biểu diễn bằng ngôn ngữ SQL, và đại số quan hệ các yêu
cầu sau đây
Đưa ra danh sách các nhận viên
Đưa ra danh sách các nhận viên có giới tính bằng 1
Đưa ra danh sách các dự án có ngân sách lớn nhất
Cho biết mỗi nhân viên đã tham gia tổng số bao nhiêu dự án ?
Cho biết mỗi dự án có tổng số bao nhiêu nhân viên tham gia


f. Cho biết mã và tên của các dự án có số tổng sô nhân viên
tham gia >=10 người
g. Cho biết mã và tên của các nhân viên đã tham gia dự án có tên
dự án là ’Dự án nước sạch nông thôn’
h. Đưa ra mã và tên các dự án mà nhân viên có mã là NV01 đã
tham gia
i. Đưa ra danh sách các nhân viên chưa tham gia bát kì dự án
nào
j. Cho biết thông tin về các nhân viễn đã tham gia ít nhất một dự
án
k. Đưa ra danh sách các dự án có sắp xếp giảm dần theo ngân
sách
11.Cho CSDL gồm các bảng dữ liệu sau:
a. Bảng NSX(nước sản xuất)
Tên thuộc tính
Giải thích

MaNSX
Mã nhà sản xuất
TenNSX
Tên nhà sản xuất
b. SANPHAM (sản phẩm)
Tên thuộc tính
MaSP
TenSP
DVT
NgaySX
SoLuong
ChungLoai
MaNSX

Giải thích
Mã sản phẩm
Tên sản phẩm
Đơn vị tính
Ngày sản xuất
số lượng
chủng loại
Mã nhà sản xuất

Biểu diễn bằng ngôn ngữ SQL, và đại số quan hệ các yêu cầu sau
đây
a. Cho biết mã, tên của nhà sản xuất đã sản xuất ra sản phẩm có
tên ‘Máy lọc nước’
b. Cho biết mã, tên, số lượng, ngày sản xuất của các sản phẩm do
nhà sản xuất có mã là ‘N01’ đã sản xuất
c. Hãy tổng hợp thông tin về từng loại sản phẩm của mỗi nhà sản

xuất (MáP, TenSP, DVT, TongSoLuong)
d. Cho biết mỗi nhà sản xuất đã sản xuất tổng số bao nhiêu loại
sản phẩm
e. Cho biết danh sách các sản phẩm do nhà sản xuất có tên là
‘Panasonic’ đã sản xuất?


×