Tải bản đầy đủ (.pdf) (40 trang)

Bài giảng tin học ứng dụng phần 1 đh nha trang

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 (1.15 MB, 40 trang )

TRƯỜNG ĐẠI HỌC NHA TRANG
KHOA CÔNG NGHỆ THÔNG TIN
BỘ MÔN HỆ THỐNG THÔNG TIN

BÀI GIẢNG

TIN HỌC ỨNG DỤNG
DÀNH CHO SINH VIÊN CÁC NGÀNH KINH TẾ

(Lưu hành nội bộ)

Nha Trang, tháng 04 năm 2011



TRƯỜNG ĐẠI HỌC NHA TRANG
KHOA CÔNG NGHỆ THÔNG TIN
BỘ MÔN HỆ THỐNG THÔNG TIN

BÀI GIẢNG

TIN HỌC ỨNG DỤNG
DÀNH CHO SINH VIÊN CÁC NGÀNH KINH TẾ
(Lưu hành nội bộ)



MỤC LỤC
LỜI MỞ ĐẦU .................................................................................................................................... v

Phần I NHẬP MÔN CƠ SỞ DỮ LIỆU ...................................................................


CHƯƠNG . TỔNG QUAN VỀ CƠ SỞ DỮ LIỆU .......................................................................

1.1. Các khái niệm .............................................................................................................
1.2. Ví dụ ...........................................................................................................................
1.3. Mô hình dữ liệu ..........................................................................................................
1.4. Bài tập ........................................................................................................................
CHƯƠNG 2. MÔ HÌNH DỮ LIỆU QUAN HỆ..............................................................................

2.1. Thuộc tính, bộ, lược đồ quan hệ và quan hệ ..............................................................
2.2. Lược đồ cơ sở dữ liệu và cơ sở dữ liệu ......................................................................
2.3. Ràng buộc toàn vẹn ..................................................................................................
2.3.1. Ràng buộc Khóa của lược đồ quan hệ .............................................................
Mối liên hệ giữa các quan hệ. Ràng buộc Khóa ngoại ....................................
2.3.3. Các ràng buộc khác ..........................................................................................
2.4. Cập nhật dữ liệu và vi phạm ràng buộc toàn vẹn .....................................................
2.4.1. Thêm (Insert, Append) ......................................................................................
2.4.2. Xóa (Delete) .....................................................................................................
2.4.3. Sửa (Update) ....................................................................................................
2.5. Bài tập ......................................................................................................................
CHƯƠNG . ĐẠI SỐ QUAN HỆ ..................................................................................................

3.1. Biểu thức cơ bản ......................................................................................................
3.2. Phép chọn (SELECT) ............................................................................................... 2
3.3. Phép chiếu (PROJECT)............................................................................................ 2
3.4. Phép tích Descartes (CARTESIAN PRODUCT) .................................................... 22
3.5. Phép kết nối bằng (EQUI JOIN) .............................................................................. 2
3.6. Phép nhóm dữ liệu (GROUP) .................................................................................. 2
3.7. Bài tập ...................................................................................................................... 2

Phần II HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU MICROSOFT ACCESS ................

CHƯƠNG 4. GIỚI THIỆU HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU MICROSOFT ACCESS .......

4.1. Giới thiệu Microsoft Access ....................................................................................
4.2. Khởi động MS Access .............................................................................................
4.3. Tạo cơ sở dữ liệu mới ..............................................................................................
i


4.4. Mở một CSDL đã có trong máy tính ........................................................................
. . Các đối tượng chính của một CSDL Access ............................................................
4.6. Các toán tử sử dụng trong MS Access .....................................................................
4.7. Một số hàm sử dụng trong MS Access.....................................................................
4.8. Bài tập ......................................................................................................................
CHƯƠNG 5. BẢNG (TABLE) ......................................................................................................

5.1. Các khái niệm ...........................................................................................................
5.1.1. Bảng ..................................................................................................................
Trường dữ liệu (field) .......................................................................................
5.1.3. Bản ghi (record) ...............................................................................................
5.1.4. Khóa chính (primary key) .................................................................................
5.1.5. Mối liên hệ giữa các bảng (relationship) .........................................................
5.2. Xây dựng cấu trúc bảng............................................................................................
5.2.1. Sử dụng chế độ Design View để tạo bảng ........................................................
5.2.2. Tạo khóa chính .................................................................................................
Lưu bảng ...........................................................................................................
5.2.4. Hiệu chỉnh bảng................................................................................................
5.3. Thiết lập mối quan hệ giữa các bảng ........................................................................
5.4. Cập nhật bảng ...........................................................................................................
5.4.1. Xem và nhập dữ liệu .........................................................................................
5.4.2. Nhập dữ liệu sử dụng Lookup...........................................................................

5.4.3. Một số lỗi có thể xảy ra khi nhập dữ liệu .........................................................
5.4.4. Xóa bản ghi .......................................................................................................
5.4.5. Sắp xếp dữ liệu .................................................................................................
.6. Lọc dữ liệu ........................................................................................................
CHƯƠNG 6. TRUY VẤN (QUERY) ............................................................................................ 5

6.1. Các khái niệm ...........................................................................................................
.2. Query truy vấn ..........................................................................................................
6.2.1. Select Query (truy vấn với phép chọn, chiếu, kết nối) ......................................
6.2.2. Group by Select Query (truy vấn với phép nhóm) ............................................
6.2.3. Crosstab Query .................................................................................................
6.3. Query thêm, xóa, sửa ................................................................................................ 2
6.3.1. Make – Table Query .........................................................................................
6.3.2. Update Query ...................................................................................................
6.3.3. Delete Query .....................................................................................................
6.3.4. Append Query ...................................................................................................
6.4. Truy vấn có tham số .................................................................................................

ii


CHƯƠNG . BIỂU MẪU (FORM) ............................................................................................... 6

7.1. Khái niệm Form .......................................................................................................
7.2. Sử dụng Form Wizard để tạo Form..........................................................................
7.3. Sử dụng Design View để tạo Form ..........................................................................
7.4. Main-Sub Form ........................................................................................................
7.5. Sử dụng nút lệnh (Command Button) ......................................................................
CHƯƠNG . BÁO CÁO (REPORT).............................................................................................


8.1. Khái niệm về Report ................................................................................................
8.2. Sử dụng Report Wizard để tạo báo cáo ....................................................................
. . Tạo báo cáo có phân nhóm.......................................................................................
CHƯƠNG . BÀI TẬP THỰC HÀNH..........................................................................................

9.1. Bài tập 1 – Quản lý Sinh viên ..................................................................................
9.2. Bài tập 2 – Quản lý Bán hàng ................................................................................
9.3. Bài tập 3 – Quản lý Thư viện .................................................................................
9.4. Bài tập 4 – Quản lý Dự án ......................................................................................
TÀI LIỆU THAM KHẢO ............................................................................................................

iii


iv


LỜI MỞ ĐẦU
Ngày nay các hệ thống thông tin đóng một vai trò quan trọng trong hoạt động
của doanh nghiệp. Các hệ thống thông tin như kế toán, khách hàng, thông tin về sản
xuất, phân phối hàng hóa… giúp quản trị doanh nghiệp một cách hiệu quả, đưa ra
các quyết định hợp lý. Sự phát triển của công nghệ thông tin làm cho việc xây dựng
và vận hành các hệ thống cơ sở dữ liệu trên được dễ dàng, tiện lợi.
Trong phạm vi của môn học Tin học ứng dụng dành cho sinh viên các ngành
kinh tế, chúng tôi quyết định chọn chủ đề cơ sở dữ liệu để giảng dạy, nhằm cung
cấp các kiến thức và kỹ năng căn bản, làm tiền đề cho người học tiếp cận với việc
xây dựng hay sử dụng các hệ thống thông tin sau này. Nội dung của môn học gồm
hai phần chính:
Phần I: Nhập môn Cơ sở dữ liệu. Phần này cung cấp các kiến thức lý thuyết
về cơ sở dữ liệu, cụ thể là mô hình tổ chức dữ liệu quan hệ và các phép toán xử lý

số liệu.
Phần II: Hệ quản trị Cơ sở dữ liệu Microsoft Access.Trong phần này, người
học ứng dụng các kiến thức trong phần I cho một phần mềm cụ thể là Microsoft
Access, rèn luyện các kỹ năng về thiết lập cơ sở dữ liệu, thực hiện các câu truy vấn,
xây dựng các biểu mẫu nhập liệu, các báo cáo…
Với thời lượng là 2 tín chỉ cho cả lý thuyết và thực hành, chúng tôi cố gắng
cung cấp những kiến thức cơ bản nhất nên cũng không thể tránh những thiếu sót.
Chúng tôi mong nhận được những ý kiến đóng góp để môn học được hoàn thiện
hơn.
KHOA CÔNG NGHỆ THÔNG TIN
BỘ MÔN HỆ THỐNG THÔNG TIN

v


vi


Phần I
NHẬP MÔN CƠ SỞ DỮ LIỆU


2


CHƯƠNG . TỔNG QUAN VỀ CƠ SỞ DỮ LIỆU
1.1. Các khái niệm
1) Dữ liệu (Data)
Dữ liệu là các sự kiện có thể ghi nhận lại được và có một ngữ nghĩa nào đó. Ví dụ:






Tên của một người: 'Nguyễn Văn Tuấn'
Số điện thoại: '
. 2 . '
Địa chỉ: '120 Ngô Gia Tự'
Ngày sinh: 21/12/1990

2) Cơ sở dữ liệu (Database)
Cơ sở dữ liệu là một tập hợp các dữ liệu có liên quan với nhau, được lưu trữ trên các
thiết bị trữ tin, thỏa mãn yêu cầu sử dụng cho nhiều người dùng khác nhau và cho những
mục đích khác nhau.
Ví dụ: Thông tin của sinh viên Trường Đại học Nha Trang như họ tên, địa chỉ, quê
quán, giới tính, ngày sinh được lưu trữ trong sổ sách (trước đây) hoặc trong hệ thống máy
tính (hiện nay). Các thông tin này hình thành nên một cơ sở dữ liệu về sinh viên và được
các phòng ban của trường sử dụng nhằm phục vụ cho các nhu cầu quản lý khác nhau.
Các tính chất của cơ sở dữ liệu:
 Một cơ sở dữ liệu đại diện cho một vấn đề nào đó trong thế giới thực. Chẳng hạn
như cơ sở dữ liệu về sinh viên của một trường đại học, cơ sở dữ liệu về hàng hóa
và khách hàng của một công ty… Những thay đổi trong thế giới thực sẽ được
phản ánh lại trong cơ sở dữ liệu.
 Các dữ liệu trong cơ sở dữ liệu phải liên quan với nhau theo một ý nghĩa logic nào
đó. Tập hợp các dữ liệu ngẫu nhiên không thể được xem là một cơ sở dữ liệu
 Cơ sở dữ liệu đáp ứng được các yêu cầu khác nhau của nhiều người sử dụng.

3) Hệ quản trị cơ sở dữ liệu (Database Management System - DBMS)
Cơ sở dữ liệu có thể được tạo ra và quản lý thủ công trên sổ sách hoặc trên máy tính.
Ở đây chỉ quan tâm đến cơ sở dữ liệu trên máy tính.

Một hệ quản trị cơ sở dữ liệu là một hệ thống các phần mềm máy tính cho phép
người sử dụng có thể tạo và quản lý một cơ sở dữ liệu. Hệ quản trị CSDL có các chức năng
chính sau:
 Định nghĩa dữ liệu: tạo cấu trúc để lưu trữ dữ liệu tùy theo mục đích của cơ sở dữ
liệu.
 Thao tác dữ liệu: cho phép người dùng có thể truy vấn các dữ liệu trong cơ sở dữ
liệu, hay cập nhật các thay đổi trong thế giới thực vào cơ sở dữ liệu.
 Chia sẻ: cho phép nhiều người dùng có thể khai thác dữ liệu một cách đồng thời.


 Bảo vệ hệ thống: nhằm bảo đảm cho cơ sở dữ liệu luôn an toàn trong trường hợp
xảy ra hỏng hóc phần cứng cũng như phần mềm máy tính. Bảo vệ khỏi các hành
vi phá hoại từ bên ngoài.
Người dùng

Chương trình ứng dụng

Hệ Quản trị
Cơ sở dữ liệu
Phần mềm xử lý thao tác trên
dữ liệu
Phần mềm quản lý lưu trữ dữ
liệu

Cấu trúc
cơ sở dữ

Cơ sở
dữ liệu


Hình I- . Mô tả đơn giản một hệ thống cơ sở dữ liệu

Một số hệ quản trị cơ sở dữ liệu phổ biến hiện nay:
 Microsoft Access: thích hợp cho người dùng cá nhân, các doanh nghiệp nhỏ.
 Oracle, DB2, SQL Server: dành cho các doanh nghiệp có các hệ thống thông tin lớn.

1.2. Ví dụ
Chúng ta hãy xem xét một ví dụ về cơ sở dữ liệu BanHang nhằm quản lý các thông
tin về khách hàng, các mặt hàng, các lần bán hàng cùng với số lượng hàng bán của một
công ty. Hình 1-2 bên dưới thể hiện cấu trúc và một vài dữ liệu ví dụ cho cơ sở dữ liệu
trên. Cơ sở dữ liệu được tổ chức thành ba hồ sơ. Mỗi hồ sơ lưu trữ dữ liệu về các đối tượng
có kiểu giống nhau. Hồ sơ KhachHang lưu trữ thông tin của các khách hàng của công ty.
Hồ sơ MatHang lưu trữ thông tin về các mặt hàng mà công ty có bán. Hồ sơ BanHang ghi
nhận các lần bán hàng.
Quá trình thiết lập cơ sở dữ liệu trên gồm hai bước. Đầu tiên là định nghĩa cấu trúc
cho các hồ sơ. Hồ sơ KhachHang được định nghĩa gồm có hai thông tin là tên khách hàng
(HoTen) và địa chỉ (DiaChi). Hồ sơ MatHang có các thông tin là mã hàng, tên hàng, đơn vị
tính và đơn giá. Tương tự như vậy cho hồ sơ BanHang. Chú ý rằng các hồ sơ có thể liên
quan với nhau, chẳng hạn như trong hồ sơ BanHang có thông tin về HoTenKH, cho biết
hóa đơn đó bán cho khách hàng nào, hoặc có thông tin về MaMH, cho biết mặt hàng nào
được bán với số lượng bao nhiêu.


KhachHang

MatHang

BanHang

HoTenKH


DiaChi

Nguyễn Trang

12 Hồng Bàng

Lê Cường
Mai Hòa

60 Trần Phú
22 Bạch Đằng

MaMH

TenMH

S03
B02

Sữa chua Vinamilk
Bánh Choco-Pie

K01

Kem Mote-Rosa

DonViTinh

DonGia


Lốc
Hộp

4.000
15.000



20.000

STT

NgayBan

HoTenKH

MaMH

SoLuong

1
2

12/2/2010
12/2/2010

Nguyễn Trang
Lê Cường


S03
B02

20
30

3

17/2/2010

Mai Nguyễn

K01

100

4

25/3/2010

Nguyễn Trang

K01

10

Hình I- . Cơ sở dữ liệu BanHang

Bước thứ hai là thao tác trên cơ sở dữ liệu, liên quan đến cập nhật và truy vấn. Cập
nhật là phản ánh sự thay đổi trong thế giới thực vào cơ sở dữ liệu chẳng hạn như: ghi nhận

thêm một mặt hàng mới là ‘Sô cô la sữa’ với đơn giá .
một ‘túi’. Hoặc: bán 50 hộp
‘Bánh Choco-Pie’ cho khách hàng ‘Lê Cường’ vào ngày 20/03/2011. Một ví dụ liên quan
đến truy vấn là: tính doanh thu ngày ‘ 2/2 2
’.

1.3. Mô hình dữ liệu
Để đảm bảo tính đúng đắn, việc định nghĩa cấu trúc của một cơ sở dữ liệu phải tuân theo
một mô hình dữ liệu nào đó. Bên dưới là một số mô hình được sử dụng từ trước đến nay:





Mô hình dữ liệu mạng (Network Data Model)
Mô hình dữ liệu phân cấp (Hierachical Data Model)
Mô hình dữ liệu quan hệ (Relational Data Model)
Mô hình dữ liệu hướng đối tượng (Object-Oriented Model)

Việc đề cập chi tiết đến các mô hình trên nằm ngoài phạm vi của tài liệu này. Ở đây
chỉ nhấn mạnh rằng Mô hình dữ liệu quan hệ là một mô hình đơn giản, có nền tảng toán
học chặt chẽ. Do đó mô hình này được sử dụng phổ biến rộng rãi trên khắp thế giới trong
các hệ quản trị cơ sở dữ liệu thương mại ngày nay như Access, Oracle, DB2, SQL
Server… Đó cũng là mô hình được trình bày trong các chương tiếp theo.

1.4. Bài tập
1) Một trung tâm Anh ngữ cần tổ chức một cơ sở dữ liệu nhằm quản lý hoạt động giảng
dạy của trung tâm. Các thông tin cần quản lý như sau:
 Danh sách các học viên đăng ký học.
 Danh sách các lớp học cụ thể, môn học của lớp (TOEIC, IELTS, Headway…)

ngày khai giảng lớp.
 Học viên nào đăng ký lớp nào, cuối khóa thi đạt điểm bao nhiêu.
Yêu cầu: Hãy định nghĩa cấu trúc cho cơ sở dữ liệu nói trên và cung cấp một số dữ
liệu mẫu như trong ví dụ Hình I- .


2) Một công ty sản xuất bánh kẹo cần tổ chức một cơ sở dữ liệu nhằm quản lý nhân sự
của công ty. Các thông tin cần quản lý như sau:
 Danh sách các phòng ban và các nhân viên theo từng phòng ban. Dữ liệu về
nhân viên bao gồm họ tên, địa chỉ, năm sinh, hệ số lương của nhân viên đó.
 Bảng lương chi trả hàng tháng cho từng nhân viên, biết rằng lương được tính
theo ngày công làm việc của nhân viên trong tháng:
Lương =
.
x Số ngày công x Hệ số lương.
Yêu cầu: Hãy định nghĩa cấu trúc cho cơ sở dữ liệu nói trên và cung cấp một số dữ
liệu mẫu như trong ví dụ Hình I- .


CHƯƠNG . MÔ HÌNH DỮ LIỆU QUAN HỆ
Trong mô hình dữ liệu quan hệ, một cơ sở dữ liệu là một tập hợp các quan hệ. Mỗi
quan hệ có thể được xem là một bảng các giá trị.
KhachHang

MaKH

HoTen

DiaChi


A001

Nguyễn Trang

12 Hồng Bàng

B002
C003

Lê Cường
Mai Nguyễn

60 Trần Phú
22 Bạch Đằng

Mỗi dòng trong bảng thể hiện một đối tượng hay một sự kiện trong thế giới thực.
Mỗi dòng gồm nhiều giá trị có liên quan với nhau. Tên cột giúp thể hiện ý nghĩa của các
giá trị trong một dòng. Ví dụ bảng trên được gọi là bảng KhachHang vì mỗi dòng cho biết
thông tin về một đối tượng khách hàng cụ thể. Các tên cột MaKH, HoTen, DiaChi cho biết
ý nghĩa của từng giá trị trong dòng đó.
Theo thuật ngữ của mô hình quan hệ, mỗi dòng được gọi là một bộ, tiêu đề của các
cột được gọi là thuộc tính, một bảng được gọi là một quan hệ. Phần tiếp theo sẽ định nghĩa
các khái niệm bộ, thuộc tính, quan hệ một cách chính xác hơn.

2.1. Thuộc tính, bộ, lược đồ quan hệ và quan hệ
1) Thuộc tính và kiểu dữ liệu:
Thuộc tính thể hiện tính chất, đặc điểm của một đối tượng nào đó trong thực tế. Ví
dụ đối tượng sinh viên có thể có các thuộc tính như họ tên, giới tính, ngày sinh, địa chỉ,
quê quán…. Đối tượng hàng hóa có thể có các thuộc tính tên hàng hóa, đơn vị tính, đơn
giá…

Mỗi thuộc tính thuộc một kiểu dữ liệu. Chẳng hạn tên và địa chỉ của một người gồm
các ký tự nên được gọi là kiểu chuỗi (text). Ngày sinh thuộc khái niệm ngày tháng nên
được gọi là kiểu ngày giờ (datetime). Đơn giá một mặt hàng có thể dùng để tính toán nên
thuộc kiểu số (number). Một kiểu dữ liệu khác cũng được sử dụng phổ biến là kiểu logic
(yes/no – xem chương ).
Thuộc tính
HoTen

Kiểu dữ liệu
Text

Ví dụ
‘Nguyễn Thị Trang’

DiaChi

Text

NgaySinh

datetime

‘120 Ngô Gia Tự’
12/10/1

DonGia

number

300.000


0

2) Lược đồ quan hệ:
Một lược đồ quan hệ R, biểu thị bởi R(A , A , …, An), gồm có tên quan hệ R và danh
sách n thuộc tính A , A , …, An .
Lược đồ quan hệ được dùng để mô tả một quan hệ. Ví dụ một lược đồ có năm thuộc
tính dùng để mô tả đối tượng sinh viên của trường đại học được thể hiện như sau:
SinhVien(MaSV, HoTen, SoCMND, NgaySinh, DiemTOEIC)


Trong đó SinhVien là tên quan hệ. MaSV, HoTen, SoCMND, NgaySinh,
DiemTOEIC là các thuộc tính. Nếu trình bày đầy đủ kiểu dữ liệu của các thuộc tính thì có
thể viết như sau:
SinhVien(MaSV: text, HoTen: text, SoCMND: text, NgaySinh: datetime,
DiemTOEIC: number)
SinhVien
MaSV

HoTen

SoCMND

NgaySinh

DiemTOEIC

3) Quan hệ
Một quan hệ r phát sinh từ lược đồ quan hệ R(A , A , …, An) là một tập hợp m bộ r
= {t , t , …, tm }, trong đó mỗi bộ là một danh sách n giá trị t = {v ,v ,…, vn}, mỗi giá trị vi

là tương ứng với thuộc tính Ai
Ví dụ: xét quan hệ sv phát sinh từ lược đồ quan hệ SinhVien(MaSV, Ho, Ten,
SoCMND, NgaySinh, TOEIC) trên. Quan hệ này có 4 bộ:
t = { ‘5202’ , ‘Cường’ , ‘333’ , 2 /5/ 99 , 500 }
t2 = { ‘5207’ , ‘Sơn’

, ‘456’ ,

t3 = { ‘5306’ , ‘Nga’

, ‘777’ , 22/3/ 992 , 200 }

t4 = { ‘5308’ , ‘Trang’ , ‘ 23’ ,

7/7/ 990 , 400 }
2/7/ 990 , 700 }

Trong quan hệ trên, mỗi bộ t , t , t , t đại diện cho một đối tượng sinh viên cụ thể.
Trong bộ t giá trị v = ‘Cường’ tương ứng với thuộc tính A là HoTen cho biết HoTen của
sinh viên này là ‘Cường’. Để đơn giản và rõ ràng, quan hệ sv trên được trình bày lại theo
dạng bảng như hình bên dưới :
thuộc tính

tên quan hệ

sv

bộ

MaSV


HoTen

SoCMND

NgaySinh

DiemTOEIC

5202
5207

Cường
Sơn

333
456

21/5/1
17/7/1

1
0

500
400

5306

Nga


777

22/3/1

2

200

5308

Trang

123

12/7/1

0

700

Hình I- . Quan hệ thể hiện dưới dạng bảng

Từ lược đồ quan hệ SinhVien, cũng có thể xây dựng một quan hệ sv2 khác gồm 5 bộ
ứng với 5 sinh viên, hoặc một quan hệ sv3 cũng có bộ nhưng có thông tin MaSV, HoTen
khác.
Định nghĩa trên cho thấy ứng với một lượt đồ quan hệ, thì có thể có nhiều quan hệ
khác nhau. Xét tại một thời điểm nào đó thì chỉ có một quan hệ phản ánh đúng thực tế
trong thế giới thực. Quan hệ đó được gọi quan hệ hiện hành. Khi thế giới thực thay đổi,
quan hệ hiện hành cũng thay đổi theo bằng các thao tác thêm, xóa, sửa. Chẳng hạn như tiếp

nhận thêm một sinh viên mới vào học (thêm), thay đổi DiemTOEIC của một sinh viên


(sửa). Do đó khi nói đến tên của một lược đồ quan hệ, ví dụ R hay SinhVien, chúng ta
ngầm hiểu rằng đó cũng là tên của quan hệ hiện hành của lược đồ đó. Còn tên đi kèm với
danh sách thuộc tính, R(A , A , …, An) hay SinhVien(MaSV, HoTen,…), thì chỉ có một ý
nghĩa duy nhất là lược đồ quan hệ.
Tính thứ tự của các bộ trong quan hệ: Thứ tự của các bộ trong một quan hệ là không
quan trọng: theo định nghĩa quan hệ là một tập hợp của các bộ, nên thứ tự các bộ là không
có ý nghĩa. Theo lý thuyết tập hợp thì {A, B, C} = {C, B, A}
Giá trị NULL:
Trong một số trường hợp, trong một bộ giá trị của một thuộc tính là không có hoặc
có nhưng không được biết. Giá trị NULL được sử dụng trong các trường hợp này. Xét bộ
sau trong quan hệ SinhVien
t = { ‘5306’ , ‘Nga’ , ‘777’ , NULL , NULL }

Bộ trên có giá trị NULL tại thuộc tính ngày sinh và thuộc tính điểm TOEIC. Đối với
thuộc tính điểm TOEIC do sinh viên chưa thi nên chưa có điểm (không có). Đối với thuộc
tính ngày sinh, do giấy tờ bị thất lạc và cha mẹ không nhớ, nên chưa xác định được ngày
sinh chính xác cho sinh viên này (ngày sinh có nhưng không biết, có thể được bổ sung
sau). Cả hai trường hợp đều dùng giá trị NULL.

2.2. Lược đồ cơ sở dữ liệu và cơ sở dữ liệu
Một lược đồ cơ sở dữ liệu S là tập hợp các lược đồ quan hệ S = { R , R , … , Rp}
trong đó Ri là các lược đồ quan hệ có liên quan với nhau.
Một cơ sở dữ liệu DB phát sinh từ lược đồ cơ sở dữ liệu S là tập các quan hệ DB = {
r , r , …, r } trong đó ri là quan hệ phát sinh từ lược đồ Ri.
Ví dụ: với mục đích quản lý sinh viên trong trường đại học, Hình I- thể hiện một
lược đồ cơ sở dữ liệu được gọi là DaiHoc gồm có năm quan hệ: DaiHoc = { Khoa,
SinhVien, MonHoc, LopHoc, KetQua }

thể hiện một cơ sở dữ liệu tương ứng với lược đồ DaiHoc. Chúng ta sẽ sử
dụng cơ sở dữ liệu này để minh họa cho các vấn đề khác về sau.
Hình I-5

Khoa
MaKhoa

TenKhoa

SinhVien
MaSV
MonHoc
MaMH

HoSV

TenSV

TenMH

NgaySinh

GioiTinh

SoTinChi

LopHoc
MaLop

MaMH


HocKy

KetQua
MaSV

MaLop

Diem

NamHoc

GiaoVien

HocBong

MaKH


Hình I- . Lược đồ cơ sở dữ liệu quan hệ DaiHoc
Khoa

SinhVien

MonHoc

LopHoc

KetQua


MaKhoa

TenKhoa

CN

Công nghệ Thông tin

KT

Kinh tế

MaSV

TenSV

NgaySinh

GioiTinh

HocBong

MaKH

5202



HoSV


Cường

21/5/1

1

Nam

200

KT

5207
520

Nguyễn
Ngô

Sơn
Hòa

17/7/1
16/8/1

0
0

Nữ
Nam


800
200

KT
CN

5306

Huỳnh

Nga

22/3/1

2

Nữ

400

CN

5308

Phạm

Trang

12/7/1


0

Nữ

800

CN

MaMH

TenMH

SoTinChi

102

Quản trị học

2

207

Cấu trúc dữ liệu

3

306

Tin học cơ sở


2

403

Kế toán tài chính

3

MaLop
01

MaMH
306

HocKy
1

NamHoc
2010

GiaoVien
Tuấn

02

403

1

2010


Nga

03

306

2

2011

Sơn

04

207

1

2010

Nam

MaSV

MaLop

Diem

5202

5202

01
02

4
7

5202

03

8

5202

04

5308

01

5308
5308

02
03

3


Hình I-5. Một cơ sở dữ liệu phát sinh từ lược đồ cơ sở dữ liệu DaiHoc

Như vậy, khi nói đến một cơ sở dữ liệu, chúng ta ngầm hiểu là nói đến cả lược đồ
của cơ sở dữ liệu đó cùng với trạng thái hiện hành phản ánh thực tế trong thế giới thực
tương ứng.

2.3. Ràng buộc toàn vẹn
Dữ liệu trong các quan hệ của một cơ sở dữ liệu có được là thông qua quá trình tiến
hành các thao tác thêm, xóa, sửa. Tuy nhiên việc xảy ra các sai sót trong quá trình cập nhật
dữ liệu có thể dẫn đến những tình trạng dữ liệu không mong muốn. Ví dụ xét quan hệ
KetQua sau trong cơ sở dữ liệu DaiHoc:
KetQua

MaSV

MaLop

Diem

5308

01

8

5308

02

-1


5202

01

6

5202

03

11


Trong thế giới thực, thuộc tính Diem chỉ có giá trị từ đến . Do đó các giá trị -1
hay 11 là những tình trạng dữ liệu không mong muốn. Có thể khắc phục tình trạng này
bằng cách đưa ra quy định rằng Diem chỉ được phép nhận các giá trị từ đến . Đây là
một ví dụ về ràng buộc toàn vẹn.
Ràng buộc toàn vẹn là các quy tắc cho một cơ sở dữ liệu nhằm đảm bảo nó phản ánh
đúng ngữ nghĩa của thế giới thực. Sau đây là một số loại ràng buộc toàn vẹn phổ biến.

2.3.1. Ràng buộc Khóa của lược đồ quan hệ
Theo định nghĩa, một quan hệ là một tập hợp của các bộ r = {t , t , …, tm }, do đó hai
bộ bất kỳ trong một quan hệ phải khác nhau. Khóa (key) là một công cụ giúp phân biệt các
bộ trong quan hệ.
Định nghĩa:
Khóa của một lược đồ quan hệ R(A , A , …, An) là một tập thuộc tính nhỏ nhất
K  { A , A , …, An } sao cho:
r phát sinh từ R, t , t2  r thì t [K] ≠ t2[K]


(*)

Ví dụ: xét lược đồ quan hệ SinhVien, mọi sinh viên đều có MaSV khác nhau, do đó
MaSV là một khóa của lược đồ quan hệ này. Việc chọn MaSV làm khóa giúp đảm bảo
ràng buộc toàn vẹn rằng trong quá trình cập nhật dữ liệu, không có hai bộ bất kỳ nào có
MaSV giống nhau. Việc thêm, xóa, sửa sẽ bị từ chối nếu làm cho quan hệ có hai bộ giống
nhau ở MaSV.
Lưu ý : K phải có tính ‘nhỏ nhất’, nghĩa là K’  K, thì K’ không có tính chất (*)
Ví dụ: cũng có thể chọn hai thuộc tính {MaSV, HoTen} để phân biệt hai bộ bất kỳ
trong lược đồ quan hệ SinhVien. Tuy nhiên chỉ cần MaSV là đủ. Do đó {MaSV, HoTen}
không được gọi là khóa (được gọi là siêu khóa).
Lưu ý : Một lược đồ có thể có nhiều khóa. Ví dụ SoCMND cũng là khóa vì không
có hai sinh viên nào giống nhau về SoCMND. Thuộc tính này cũng có thể dùng để phân
biệt hai sinh viên với nhau. Tuy nhiên đối với một lược đồ, chỉ chọn một khóa làm đại diện
và được gọi là khóa chính (primary key). Trong ngữ nghĩa của cơ sở dữ liệu DaiHoc,
thuộc tính MaSV có ý nghĩa hơn là SoCMND. Do đó MaSV được chọn làm khóa chính
cho lược đồ quan hệ SinhVien.
Như vậy, khóa chính cho các lược đồ quan hệ trong lược đồ cơ sở dữ liệu DaiHoc là
như sau:


Khoa
MaKhoa

TenKhoa

SinhVien
MaSV

HoSV


TenSV

NgaySinh

GioiTinh

HocBong

MaKH

MonHoc
MaMH

TenMH

LopHoc
MaLop

MaMH

SoTinChi

HocKy

NamHoc

GiaoVien

KetQua

MaSV






MaLop

Diem

MaKhoa : dùng để phân biệt các bộ trong quan hệ Khoa
MaSV : dùng để phân biệt các bộ trong quan hệ SinhVien
MaMH : dùng để phân biệt các bộ trong quan hệ MonHoc
MaLop : dùng để phân biệt các bộ trong quan hệ LopHoc

 {MaSV, MaLop}: trong lược đồ KetQua, khóa có hai thuộc tính là MaSV và
MaLop. Nếu chỉ chọn MaSV để làm khóa thì không đủ vì một sinh viên có thể
theo học nhiều lớp, do đó có nhiều bộ có cùng MaSV. Tương tự, nếu chỉ chọn
MaLop để làm khóa cũng không đủ vì một lớp có nhiều sinh viên theo học, nên có
nhiều bộ có cùng MaLop. Việc chọn {MaSV, MaLop} làm khóa là phù hợp vì
theo ngữ nghĩa thực tế một sinh viên chỉ theo học một lớp một lần và chỉ có một
điểm số.

2.3.2. Mối liên hệ giữa các quan hệ. Ràng buộc Khóa ngoại
Xét hai quan hệ SinhVien và Khoa trong cơ sở dữ liệu DaiHoc
Khoa

MaKhoa
CN

KT

SinhVien

MaSV

HoSV

TenKhoa
Công nghệ Thông tin
Kinh tế
TenSV

NgaySinh

GioiTinh

HocBong

MaKH

5202



Cường

21/5/1

1


Nam

200

KT

5207

Nguyễn

Sơn

17/7/1

0

Nữ

800

KT

520
5306

Ngô
Huỳnh

Hòa

Nga

16/8/1
22/3/1

0
2

Nam
Nữ

200
400

CN
CN

5308

Phạm

Trang

12/7/1

0

Nữ

800


CN

Trong thực tế, giữa hai đối tượng Khoa và SinhVien có mối liên hệ là một Khoa thì
có nhiều sinh viên và một sinh viên thì trực thuộc một Khoa nào đó. Ta gọi đây là mối liên
hệ một – nhiều (Khoa -1, SinhVien - ∞ ) Hay nói cách khác Khoa là quan hệ cha, SinhVien

2


là quan hệ con. Vì vậy trong lược đồ quan hệ SinhVien có thuộc tính MaKH để biểu diễn
mối liên hệ này.
Khoa
MaKhoa

TenKhoa

SinhVien
MaSV

Ho

Ten

NgaySinh

GioiTinh

HocBong


MaKH

Lúc này thuộc tính MaKH được gọi là khóa ngoại của quan hệ SinhVien (quan hệ
con) vì nó tham chiếu đến khóa chính MaKhoa của quan hệ Khoa (quan hệ cha)
Ràng buộc toàn vẹn về khóa ngoại phát biểu rằng: với một giá trị tại thuộc tính khóa
ngoại trong quan hệ con, thì giá trị đó phải tồn tại trước trong quan hệ cha.
Xét ví dụ :
Khoa

MaKhoa

TenKhoa

CN
KT
SinhVien

Công nghệ Thông tin
Kinh tế

MaSV

HoSV

TenSV

NgaySinh

GioiTinh


HocBong

MaKH
KT

5202



Cường

21/5/1

1

Nam

200

5207

Nguyễn

Sơn

17/7/1

0

Nữ


800

KT

520

Ngô

Hòa

16/8/1

0

Nam

200

NN

5306
5308

Huỳnh
Phạm

Nga
Trang


22/3/1
12/7/1

2
0

Nữ
Nữ

400
800

NN
CN

Đây là một trạng thái không hợp lệ vì tại bộ thứ của quan hệ SinhVien, MaKH
‘NN’ chưa tồn tại tại thuộc tính MaKhoa ở bất cứ bộ nào trong quan hệ Khoa. Trạng thái
sau đây mới được gọi là hợp lệ.
Khoa

SinhVien

MaKhoa

TenKhoa

CN

Công nghệ Thông tin


KT

Kinh tế

NN

Ngoại ngữ

MaSV
5202

HoSV


TenSV
Cường

NgaySinh
21/5/1 1

GioiTinh
Nam

HocBong
200

MaKH
KT

5207


Nguyễn

Sơn

17/7/1

0

Nữ

800

KT

520

Ngô

Hòa

5306

Huỳnh

Nga

16/8/1

0


Nam

200

NN

22/3/1

2

Nữ

400

NN

5308

Phạm

Trang

12/7/1

0

Nam

800


CN

Như vậy, có thể thiết lập các mối quan hệ và ràng buộc toàn vẹn về khóa ngoại cho
lượt đồ cơ sở dữ liệu DaiHoc như sau:


Khoa
MaKhoa

TenKhoa

SinhVien
MaSV

HoSV

TenSV

NgaySinh

GioiTinh

HocBong

MaKH

MonHoc
MaMH
LopHoc

MaLop

TenMH

MaMH

SoTinChi

HocKy

NamHoc

GiaoVien

KetQua
MaSV

MaLop

Diem

Hình I- . Mối liên hệ và ràng buộc khóa ngoại giữa các lượt đồ quan hệ trong
CSDL DaiHoc

2.3.3. Các ràng buộc khác
1) Ràng buộc về miền giá trị
Quy định Diem chỉ nhận các giá trị từ đến 10 là một ràng buộc miền giá trị.
2) Ràng buộc giá trị NULL
Ràng buộc này cho phép một thuộc tính có được nhận giá trị NULL hay không
(NULL hay NOT NULL). Ví dụ thuộc tính SoTinChi của lược đồ quan hệ MonHoc phải là

NOT NULL vì mỗi môn học phải có số tín chỉ cụ thể.
3) Ràng buộc liên thuộc tính:
Ràng buộc này ảnh hưởng đến nhiều thuộc tính trong một quan hệ. Xét quan hệ đặt
phòng khách sạn sau đây :
DatPhong(TenKhachHang, TenPhong, TuNgay, DenNgay, DonGia)

Thì có ràng buộc liên thuộc tính: TuNgay <= DenNgay

2.4. Cập nhật dữ liệu và vi phạm ràng buộc toàn vẹn
Có ba thao tác liên quan đến cập nhật cơ sở dữ liệu: thêm, xóa, sửa. Thêm nghĩa là
bổ sung thêm một bộ (hay nhiều bộ) vào một quan hệ. Xóa được dùng để loại bỏ một bộ
(hay nhiều bộ) ra khỏi quan hệ. Sửa là thay đổi giá trị một số thuộc tính của một số bộ đã
tồn tại. Một thao tác cập nhật phải không được vi phạm các ràng buộc toàn vẹn, nếu không
thao tác đó sẽ bị từ chối. Trong phần này sẽ trình bày một số ví dụ về thêm, xóa, sửa, sử
dụng cơ sở dữ liệu DaiHoc trong Hình I- và dựa trên các ràng buộc toàn vẹn chỉ định
trong Hình I- .


2.4.1. Thêm (Insert, Append)
1.

2.

3.

4.

Thêm bộ { NULL, ‘Mai’, ‘Anh’, ‘23/ / 989’, ‘Nữ’, 300, ‘CB’ } vào quan hệ SinhVien.
 Thao tác thêm này vi phạm ràng buộc toàn vẹn khóa chính phải khác
NULL. Vì vậy thêm không thành công.

Thêm bộ { ‘5202’, ‘Mai’, ‘Anh’, ‘23/ / 989’, ‘Nữ’, 300, ‘CB’ } vào quan hệ SinhVien.
 Thao tác thêm này vi phạm ràng buộc toàn vẹn khóa chính vì giá trị khóa
‘ 2 2’ đã tồn tại. Thêm không thành công.
Thêm bộ { ‘5205’, ‘Mai’, ‘Anh’, ‘23/ / 989’, ‘Nữ’, 300, ‘CB’ } vào quan hệ SinhVien.
 Thao tác thêm này vi phạm ràng buộc toàn vẹn khóa ngoại MaKH vì trong
quan hệ Khoa không có bộ nào có MaKhoa là ‘CB’. Thêm không thành
công.
Thêm bộ { ‘5205’, ‘Mai’, ‘Anh’, ‘23/ / 989’, ‘Nữ’, 300, ‘KT’ } vào quan hệ SinhVien.
 Thao tác này thỏa mãn các ràng buộc. Thêm thành công.

2.4.2. Xóa (Delete)
1.
2.

Xóa môn học có TenMH là ‘Quản trị học’
 Xóa thành công.
Xóa môn học có TenMH là ‘Tin học cơ sở’
 Thao tác này không thành công vì trong quan hệ LopHoc (bảng con) có lớp
‘ ’ và lớp ‘ ’ tham chiếu đến môn học này. Nếu xóa bộ này trong bảng
MonHoc (bảng cha) thì vi phạm ràng buộc toàn vẹn.

Để tránh vi phạm ràng buộc toàn vẹn khóa ngoại khi xóa một bộ trong bảng cha, một
phương án xử lý khác là xóa luôn các bộ có liên quan trong bảng con (CASCADE
DELETE).
MonHoc

LopHoc

MaMH


TenMH

SoTinChi

102

Quản trị học

2

207
306

Cấu trúc dữ liệu
Tin học cơ sở

3
2

403

Kế toán tài chính

3

cascade
delete

MaLop


MaMH

HocKy

NamHoc

GiaoVien

01

306

1

2010

Tuấn

02

403

1

2010

Nga

03
04


306
207

2
1

2011
2010

Sơn
Nam

2.4.3. Sửa (Update)
1.
2.

Trong quan hệ SinhVien sửa HocBong của bộ có MaSV = ‘
’ thành
.
 Thao tác sửa này thành công.
Sửa MaKH của sinh viên ‘Trang’ thành ‘CK’
 Vi phạm ràng buộc toàn vẹn khóa ngoại vì trong quan hệ Khoa không có bộ
nào có MaKhoa là ‘CK’.


×