SlideShare una empresa de Scribd logo
1 de 129
Descargar para leer sin conexión
TRƯỜNG ĐẠI HỌC NHA TRANG
KHOA CÔNG NGHỆ THÔNG TIN
BỘ MÔN HỆ THỐNG THÔNG TIN
(Lưu hành nội bộ)
Nha Trang, tháng 04 năm 2011
BÀI GIẢNG
TIN HỌC ỨNG DỤNG
DÀNH CHO SINH VIÊN CÁC NGÀNH KINH TẾ
TRƯỜNG ĐẠI HỌC NHA TRANG
KHOA CÔNG NGHỆ THÔNG TIN
BỘ MÔN HỆ THỐNG THÔNG TIN
(Lưu hành nội bộ)
BÀI GIẢNG
TIN HỌC ỨNG DỤNG
DÀNH CHO SINH VIÊN CÁC NGÀNH KINH TẾ
i
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 ..............................................................................................
ii
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ố.................................................................................................
iii
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 ............................................................................................................
iv
v
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
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.
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.
Hệ Quản trị
Cơ sở dữ liệu
Người dùng
Chương trình ứng dụng
Phần mềm quản lý lưu trữ dữ
liệu
Phần mềm xử lý thao tác trên
dữ liệu
Cấu trúc
cơ sở dữ
Cơ sở
dữ liệu
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- .
KhachHang HoTenKH DiaChi
Nguyễn Trang 12 Hồng Bàng
Lê Cường 60 Trần Phú
Mai Hòa 22 Bạch Đằng
MatHang MaMH TenMH DonViTinh DonGia
S03 Sữa chua Vinamilk Lốc 4.000
B02 Bánh Choco-Pie Hộp 15.000
K01 Kem Mote-Rosa Ký 20.000
BanHang STT NgayBan HoTenKH MaMH SoLuong
1 12/2/2010 Nguyễn Trang S03 20
2 12/2/2010 Lê Cường B02 30
3 17/2/2010 Mai Nguyễn K01 100
4 25/3/2010 Nguyễn Trang K01 10
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 Lê Cường 60 Trần Phú
C003 Mai Nguyễn 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 Kiểu dữ liệu Ví dụ
HoTen Text ‘Nguyễn Thị Trang’
DiaChi Text ‘120 Ngô Gia Tự’
NgaySinh datetime 12/10/1 0
DonGia number 300.000
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’ , 7/7/ 990 , 400 }
t3 = { ‘5306’ , ‘Nga’ , ‘777’ , 22/3/ 992 , 200 }
t4 = { ‘5308’ , ‘Trang’ , ‘ 23’ , 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 :
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
sv MaSV HoTen SoCMND NgaySinh DiemTOEIC
5202 Cường 333 21/5/1 1 500
5207 Sơn 456 17/7/1 0 400
5306 Nga 777 22/3/1 2 200
5308 Trang 123 12/7/1 0 700
thuộc tínhtên quan hệ
bộ
(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 }
Hình I-5 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.
Khoa
MaKhoa TenKhoa
SinhVien
MaSV HoSV TenSV NgaySinh GioiTinh HocBong MaKH
MonHoc
MaMH TenMH SoTinChi
LopHoc
MaLop MaMH HocKy NamHoc GiaoVien
KetQua
MaSV MaLop Diem
Hình I- . Lược đồ cơ sở dữ liệu quan hệ DaiHoc
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
Khoa MaKhoa TenKhoa
CN Công nghệ Thông tin
KT Kinh tế
SinhVien MaSV HoSV TenSV NgaySinh GioiTinh HocBong MaKH
5202 Lê Cường 21/5/1 1 Nam 200 KT
5207 Nguyễn Sơn 17/7/1 0 Nữ 800 KT
520 Ngô Hòa 16/8/1 0 Nam 200 CN
5306 Huỳnh Nga 22/3/1 2 Nữ 400 CN
5308 Phạm Trang 12/7/1 0 Nữ 800 CN
MonHoc 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
LopHoc MaLop MaMH HocKy NamHoc GiaoVien
01 306 1 2010 Tuấn
02 403 1 2010 Nga
03 306 2 2011 Sơn
04 207 1 2010 Nam
KetQua MaSV MaLop Diem
5202 01 4
5202 02 7
5202 03 8
5202 04
5308 01 3
5308 02
5308 03
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:
2
 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
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
Khoa
MaKhoa TenKhoa
SinhVien
MaSV HoSV TenSV NgaySinh GioiTinh HocBong MaKH
MonHoc
MaMH TenMH SoTinChi
LopHoc
MaLop MaMH HocKy NamHoc GiaoVien
KetQua
MaSV MaLop Diem
Khoa MaKhoa TenKhoa
CN Công nghệ Thông tin
KT Kinh tế
SinhVien MaSV HoSV TenSV NgaySinh GioiTinh HocBong MaKH
5202 Lê Cường 21/5/1 1 Nam 200 KT
5207 Nguyễn Sơn 17/7/1 0 Nữ 800 KT
520 Ngô Hòa 16/8/1 0 Nam 200 CN
5306 Huỳnh Nga 22/3/1 2 Nữ 400 CN
5308 Phạm Trang 12/7/1 0 Nữ 800 CN
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.
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ụ :
Đâ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ệ.
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 Ho Ten NgaySinh GioiTinh HocBong MaKH
Khoa MaKhoa TenKhoa
CN Công nghệ Thông tin
KT Kinh tế
SinhVien MaSV HoSV TenSV NgaySinh GioiTinh HocBong MaKH
5202 Lê Cường 21/5/1 1 Nam 200 KT
5207 Nguyễn Sơn 17/7/1 0 Nữ 800 KT
520 Ngô Hòa 16/8/1 0 Nam 200 NN
5306 Huỳnh Nga 22/3/1 2 Nữ 400 NN
5308 Phạm Trang 12/7/1 0 Nữ 800 CN
Khoa MaKhoa TenKhoa
CN Công nghệ Thông tin
KT Kinh tế
NN Ngoại ngữ
SinhVien MaSV HoSV TenSV NgaySinh GioiTinh HocBong MaKH
5202 Lê Cường 21/5/1 1 Nam 200 KT
5207 Nguyễn Sơn 17/7/1 0 Nữ 800 KT
520 Ngô Hòa 16/8/1 0 Nam 200 NN
5306 Huỳnh Nga 22/3/1 2 Nữ 400 NN
5308 Phạm Trang 12/7/1 0 Nam 800 CN
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- .
Khoa
MaKhoa TenKhoa
SinhVien
MaSV HoSV TenSV NgaySinh GioiTinh HocBong MaKH
MonHoc
MaMH TenMH SoTinChi
LopHoc
MaLop MaMH HocKy NamHoc GiaoVien
KetQua
MaSV MaLop Diem
2.4.1. Thêm (Insert, Append)
1. 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.
2. 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.
3. 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.
4. 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. Xóa môn học có TenMH là ‘Quản trị học’
 Xóa thành công.
2. 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).
2.4.3. Sửa (Update)
1. 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.
2. 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’.
MonHoc 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
LopHoc MaLop MaMH HocKy NamHoc GiaoVien
01 306 1 2010 Tuấn
02 403 1 2010 Nga
03 306 2 2011 Sơn
04 207 1 2010 Nam
cascade
delete
3. Sửa MaKhoa của khoa ‘Công nghệ Thông tin’ thành ‘IT’
 Thao tác sửa này vi phạm ràng buộc toàn vẹn khóa ngoại vì trong quan hệ
SinhVien có 3 có sinh viên có MaKH là ‘CN’. Thao tác này bị từ chối. Một
phương án xử lý khác để tránh vi phạm ràng buộc toàn vẹn là sửa luôn
MaKH của các sinh viên này thành ‘IT’ (CASCADE UPDATE)
2.5. Bài tập
1) Một công ty du lịch cần tổ chức một cơ sở dữ liệu nhằm quản lý hoạt động kinh
doanh du lịch của công ty. Các thông tin cần quản lý như sau:
 Danh sách các khách hàng của công ty
 Danh sách các điểm du lịch công ty có mở tour, số ngày đến điểm du lịch đó,
và đơn giá cho một người.
 Danh sách các tour du lịch cụ thể, mỗi tour có một điểm đến và xuất phát vào
một ngày nào đó.
 Khách hàng nào đăng ký tour du lịch nào, với số lượng bao nhiêu.
Yêu cầu:
a) Hãy định nghĩa lược đồ cơ sở dữ liệu quan hệ cho mô hình trên và thiết lập các
ràng buộc toàn vẹn về khóa chính và khóa ngoại tương tự như trong Hình I- .
b) Tạo một số dữ liệu mẫu cho cơ sở dữ liệu trên như trong Hình I-5
Khoa MaKhoa TenKhoa
IT Công nghệ Thông tin
KT Kinh tế
SinhVien MaSV HoSV TenSV NgaySinh GioiTinh HocBong MaKH
5202 Lê Cường 21/5/1 1 Nam 200 KT
5207 Nguyễn Sơn 17/7/1 0 Nữ 800 KT
520 Ngô Hòa 16/8/1 0 Nam 200 IT
5306 Huỳnh Nga 22/3/1 2 Nữ 400 IT
5308 Phạm Trang 12/7/1 0 Nữ 800 IT
cascade
update
2) Xét cơ sở dữ liệu BanHang như sau:
a) Hãy thiết lập các ràng buộc toàn vẹn về khóa chính và khóa ngoại.
b) Cho biết các thao tác sau có vi phạm ràng buộc toàn vẹn hay không, nêu lý do:
 Thêm bộ { ‘A00 ’, ‘Sơn Hà’, ’33 Hồng Lĩnh’ } vào quan hệ KhachHang.
 Thêm bộ { ‘S02, ‘Sữa chua Yomost’, ’Lốc’, 4500 } vào quan hệ
MatHang.
 Thêm bộ { ‘005’, ‘ 2/2/20 0’, ‘A004’ } vào quan hệ HoaDon
 Xóa khách hàng có tên ‘Lê Cường’ trong quan hệ KhachHang
 Xóa mặt hàng có tên ‘Kem Monte-Rosa’ trong quan hệ MatHang
 Xóa hóa đơn ‘ ’ trong quan hệ HoaDon (có CASCADE DELETE)
 Xóa mặt hàng bán ‘S ’ của hóa đơn ‘ 2’ trong quan hệ MatHangBan.
 Trong quan hệ KhachHang, sửa MaKH ‘A ’ thành ‘A 2’
 Trong quan hệ KhachHang, sửa MaKH ‘B 2’ thành ‘B ’ (có
CASCADE UPDATE)
 Trong quan hệ MatHang sửa đơn giá của mặt hàng ‘S ’ thành .
 Trong quan hệ HoaDon, sửa MaKH của hóa đơn thành ‘D ’
KhachHang MaKH HoTen DiaChi
A001 Nguyễn Trang 12 Hồng Bàng
B002 Lê Cường 60 Trần Phú
C003 Mai Nguyễn 22 Bạch Đằng
MatHang MaMH TenMH DonViTinh DonGia
S03 Sữa chua Vinamilk Lốc 4.000
B02 Bánh Choco-Pie Hộp 15.000
K01 Kem Monte-Rosa Ký 20.000
HoaDon MaHD NgayHD MaKH
001 12/2/2010 A001
002 12/2/2010 B002
003 20/4/2011 B002
004 25/7/2011 A001
MatHangBan MaHD MaMH SoLuong
001 S03 2
001 B02 5
002 K01 6
002 S03 8
003 S03 10
004 B02 7
CHƯƠNG . ĐẠI SỐ QUAN HỆ
Các thao tác trên cơ sở dữ liệu có thể được chia thành hai loại. Loại thứ nhất là cập
nhật dữ liệu vào các quan hệ, đó là các thao tác thêm, xóa, sửa đã được trình bày trong
chương 2. Loại thứ hai là truy xuất dữ liệu từ các quan hệ, hay còn gọi là truy vấn (query).
Sau đây là một ví dụ về truy vấn trong cơ sở dữ liệu DaiHoc:
Hãy cho biết bảng điểm (gồm tên các môn học và điểm số tương ứng) của sinh viên
có mã số ‘ ’. Kết quả của truy vấn này cũng có dạng quan hệ như sau:
MaSV HoTen MaMH TenMH SoTinChi Diem
5308 Phạm Trang 306 Tin học cơ sở 2
5308 Phạm Trang 403 Kế toán tài chính 3
Mô hình dữ liệu quan hệ định nghĩa các phép toán dùng để truy vấn. Tập hợp các
phép toán này được gọi là đại số quan hệ. Một dãy các phép toán tạo thành một biểu thức
đại số quan hệ. Trước khi đi vào các phép toán đại số quan hệ, phần 3.1 trình bày lại một
số khái niệm về các biểu thức cơ bản.
3.1. Biểu thức cơ bản
Có 4 loại biểu thức cơ bản
1) Biểu thức số học:
Tương tự như biểu thức số học thông thường, các toán hạng của biểu thức có kiểu số.
Ví dụ :
Biểu thức Kết quả
HocBong 100 600 (nếu HocBong 500
Sqrt(x) 5 (nếu x=25)
SoLuong*DonGia 100000 (nếu SoLuong = 5, DonGia=20000)
2) Biểu thức chuỗi:
Là biểu thức mà các toán hạng thuộc kiểu chuỗi. Ví dụ :
Biểu thức Kết quả
'Nguyen' + 'Son' 'NguyenSon'
Ho + Ten 'LeMai' (nếu Ho='Le' và Ten='Mai')
Ho + ' ' + Ten 'Le Mai'
Len(Ten) 3 (nếu Ten = 'Mai')
5 (nếu Ten = 'Nguyen')
Left(Ten, 2) 'Ma'
3) Biểu thức ngày tháng:
Biểu thức ngày tháng thường liên quan đến kiểu dữ liệu ngày tháng và kiểu số. Ví dụ:
Biểu thức Kết quả
Month(#8/12/2011#) 8
Day(#5/2/2011#) 2
Year(Now()) 2011
Year(Now()) – Year(NgaySinh) Tính số tuổi của sinh viên
2
4) Biểu thức logic:
Biểu thức logic là một biểu thức mà kết quả chỉ có hai giá trị là đúng (true) hoặc sai
(false). Ví dụ:
Biểu thức Kết quả
8 5 Đúng
12 4 15 Sai
'Nam' < 'Nga' Đúng
HocBong >= 200 Đúng nếu HocBong = 300, 500
Sai (nếu HocBong = 100)
Ten like 'N*' Đúng nếu TenSV bắt đầu bằng chữ N như: Nam, Nga,
Nhân…
NgaySinh < 1/2/1 1 Đúng, nếu sinh viên sinh trước ngày 2/1/1991
Ngoài các phép so sánh, chúng ta còn có các phép AND, OR, XOR. Mục đích là để
kết hợp hai biểu thức logic thành một biểu thức logic khác theo bảng bên dưới :
a b a AND b a OR b NOT a
đúng đúng đúng đúng sai
đúng sai Sai đúng sai
sai đúng sai đúng đúng
sai sai sai sai đúng
Ví dụ :
Biểu thức Kết quả
Year(NgaySinh)= 1992 AND HocBong> 0 Sinh viên sinh năm 1 2 và học bổng trên 500
(HocBong>=200) AND (HocBong<=500) Có học bổng từ 200 đến 500
(Ten= 'Trang') OR (Ten= 'Lan') Sinh viên tên Trang hoặc tên Lan
3.2. Phép chọn (SELECT)
Phép chọn dùng để lấy ra một số bộ từ một quan hệ mà các bộ này thỏa mãn một
điều kiện chọn nào đó.
Cú pháp: (điều-kiện-chọn) (TenQuanHe)
Điều-kiện-chọn là một biểu thức logic. Điều kiện chọn phải có giá trị là true đối với
các bộ được chọn ra từ quan hệ.
Ví dụ 1: Cho biết các môn học có số tín chỉ từ 3 trở lên.
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
MaMH TenMH SoTinChi
207 Cấu trúc dữ liệu 3
403 Kế toán tài chính 3
(SoTinChi >=3) (MonHoc)
2
Ví dụ 2: Liệt kê các sinh viên sinh năm và có học bổng trên
(Year(NgaySinh) = 1990 AND DiemTOEIC > 300) (SinhVien)
MaSV HoSV TenSV NgaySinh GioiTinh HocBong MaKH
5202 Lê Cường 21/5/1 1 Nam 200 KT
5207 Nguyễn Sơn 17/7/1 0 Nữ 800 KT
520 Ngô Hòa 16/8/1 0 Nam 200 CN
5306 Huỳnh Nga 22/3/1 2 Nữ 400 CN
5308 Phạm Trang 12/7/1 0 Nữ 800 CN
3.3. Phép chiếu (PROJECT)
Phép chiếu dùng để lấy ra một số thuộc tính của các bộ trong một quan hệ. Nếu quan
niệm một quan hệ là một bảng gồm nhiều cột, phép chọn dùng để chọn ra một số dòng thì
phép chiếu chọn ra một số cột.
Cú pháp:  (danh-sách-thuộc-tính) (TenQuanHe)
Ví dụ : Liệt kê các sinh viên với MaSV, HoSV, TenSV
Phép chiếu cũng có thể tạo ra một thuộc tính mới cho quan hệ kết quả:
Ví dụ 4: MaSV, HoTen: HoSV+ ' ' + TenSV(SinhVien)
MaSV HoTen
5202 Lê Cường
5207 Nguyễn Sơn
520 Ngô Hòa
5306 Huỳnh Nga
5308 Phạm Trang
MaSV HoSV TenSV NgaySinh GioiTinh HocBong MaKH
5202 Lê Cường 21/5/1 1 Nam 200 KT
5207 Nguyễn Sơn 17/7/1 0 Nữ 800 KT
520 Ngô Hòa 16/8/1 0 Nam 200 CN
5306 Huỳnh Nga 22/3/1 2 Nữ 400 CN
5308 Phạm Trang 12/7/1 0 Nữ 800 CN
MaSV HoSV TenSV
5202 Lê Cường
5207 Nguyễn Sơn
520 Ngô Hòa
5306 Huỳnh Nga
5308 Phạm Trang
MaSV, HoSV, TenSV(SinhVien)
22
Sau đây là một ví dụ minh họa phép chiếu kết hợp với phép chọn:
Ví dụ : Liệt kê các sinh viên sinh năm và có điểm HocBong trên , chỉ liệt
kê các cột MaSV, Ho, Ten, NgaySinh
MaSV, HoSV, TenSV, NgaySinh [ Year(NgaySinh)=1990 AND HocBong > 300 (SinhVien)]
MaSV HoSV TenSV NgaySinh
5207 Nguyễn Sơn 17/7/1 0
5308 Phạm Trang 12/7/1 0
Tuy nhiên nếu thực hiện phép chiếu trước sẽ gây ra lỗi vì sau khi thực hiện phép
chiếu thì không còn thuộc tính HocBong để thực hiện phép chọn. Biểu thức sau đây là biểu
thức sai:
Year(NgaySinh) = 1990 AND HocBong > 300[MaSV, HoSV, TenSV, NgaySinh (SinhVien)]
3.4. Phép tích Descartes (CARTESIAN PRODUCT)
Trong lý thuyết tập hợp, phép tích Descartes dùng để nhân hai tập hợp với nhau. Ví
dụ: cho tập A = { a , a }, tập B = { b , b , b } thì tích Descartes của A và B là:
A × B = { a b , a b , a b , a b , a b , a b }
Tập kết quả có 6 phần tử, bằng số lượng của tập A nhân số lượng tập B.
Từ đó phép tích Descartes cho hai quan hệ được định nghĩa như sau:
Cho hai quan hệ r và s phát sinh từ hai lượt đồ R(A , A ,…, An) và S(B , B , …, Bm)
trong đó r có nR bộ và s có nS bộ. Tích Descartes của r và s là một quan hệ có lượt đồ
Q(A , A ,…, An, B , B , …, Bm). Quan hệ này có nR * nS bộ. Những bộ này hình thành bằng
cách kết hợp một bộ trong r và một bộ trong s.
2
Ví dụ: SinhVien × Khoa
Hình I- . Phép tích Descartes
Bản thân phép tích Descartes ít có ý nghĩa thực tế. Tuy nhiên phép tích Descartes là
cơ sở cho phép kết nối được trình bày trong phần tiếp theo.
3.5. Phép kết nối bằng (EQUI JOIN)
Ví dụ Xét truy vấn sau đây: hãy cho biết tên khoa ứng với từng sinh viên.
Truy vấn trên có thể thực hiện được dùng phép tích Descartes, sau đó áp dụng thêm
một một phép chọn dựa vào điều kiện MaKH = MaKhoa.
MaSV HoSV TenSV NgaySinh GioiTinh HocBong MaKH
5202 Lê Cường 21/5/1 1 Nam 200 KT
5207 Nguyễn Sơn 17/7/1 0 Nữ 800 KT
520 Ngô Hòa 16/8/1 0 Nam 200 CN
5306 Huỳnh Nga 22/3/1 2 Nữ 400 CN
5308 Phạm Trang 12/7/1 0 Nữ 800 CN
MaKhoa TenKhoa
CN Công nghệ Thông tin
KT Kinh tế
MaSV HoSV TenSV NgaySinh GioiTinh HocBong MaKH MaKhoa TenKhoa
5202 Lê Cường 21/5/1 1 Nam 200 KT CN Công nghệ Thông tin
5202 Lê Cường 21/5/1 1 Nam 200 KT KT Kinh tế
5207 Nguyễn Sơn 17/7/1 0 Nữ 800 KT CN Công nghệ Thông tin
5207 Nguyễn Sơn 17/7/1 0 Nữ 800 KT KT Kinh tế
520 Ngô Hòa 16/8/1 0 Nam 200 CN CN Công nghệ Thông tin
520 Ngô Hòa 16/8/1 0 Nam 200 CN KT Kinh tế
5306 Huỳnh Nga 22/3/1 2 Nữ 400 CN CN Công nghệ Thông tin
5306 Huỳnh Nga 22/3/1 2 Nữ 400 CN KT Kinh tế
5308 Phạm Trang 12/7/1 0 Nữ 800 CN CN Công nghệ Thông tin
5308 Phạm Trang 12/7/1 0 Nữ 800 CN KT Kinh tế
2
Cách thực hiện một tích Descartes và sau đó là một phép chọn có điều kiện bằng như
vậy được gọi là phép kết nối bằng.
Cú pháp:
QuanHe1 ⋈ điều-kiện-bằng QuanHe2
Ví dụ trên được viết lại là:
SinhVien ⋈ MaKH = MaKhoa Khoa
Trong trường hợp các thuộc tính để kết nối bằng ở cả hai quan hệ giống tên nhau thì
phép kết nối bằng được gọi là phép kết nối tự nhiên. Lúc này chỉ cần viết phép toán kết nối
mà không cần viết danh sách điều-kiện-bằng đi kèm.
Ví dụ Hãy cho biết tên môn học ứng với các lớp học
LopHoc ⋈ MonHoc
(ngầm hiểu điều kiện bằng là thuộc tính MaMH ở cả hai quan hệ)
Kết quả:
Trong quan hệ kết quả, do có 2 thuộc tính MaMH nên có hai cách xử lý:
 Chỉ giữ lại một thuộc tính MaMH
 Dùng tên quan hệ để phân biệt: LopHoc.MaMH và MonHoc.MaMH
MaSV HoSV TenSV NgaySinh GioiTinh HocBong MaKH MaKhoa TenKhoa
5202 Lê Cường 21/5/1 1 Nam 200 KT CN Công nghệ Thông tin
5202 Lê Cường 21/5/1 1 Nam 200 KT KT Kinh tế
5207 Nguyễn Sơn 17/7/1 0 Nữ 800 KT CN Công nghệ Thông tin
5207 Nguyễn Sơn 17/7/1 0 Nữ 800 KT KT Kinh tế
520 Ngô Hòa 16/8/1 0 Nam 200 CN CN Công nghệ Thông tin
520 Ngô Hòa 16/8/1 0 Nam 200 CN KT Kinh tế
5306 Huỳnh Nga 22/3/1 2 Nữ 400 CN CN Công nghệ Thông tin
5306 Huỳnh Nga 22/3/1 2 Nữ 400 CN KT Kinh tế
5308 Phạm Trang 12/7/1 0 Nữ 800 CN CN Công nghệ Thông tin
5308 Phạm Trang 12/7/1 0 Nữ 800 CN KT Kinh tế
MaSV HoSV TenSV NgaySinh GioiTinh HocBong MaKH MaKhoa TenKhoa
5202 Lê Cường 21/5/1 1 Nam 200 KT KT Kinh tế
5207 Nguyễn Sơn 17/7/1 0 Nữ 800 KT KT Kinh tế
520 Ngô Hòa 16/8/1 0 Nam 200 CN CN Công nghệ Thông tin
5306 Huỳnh Nga 22/3/1 2 Nữ 400 CN CN Công nghệ Thông tin
5308 Phạm Trang 12/7/1 0 Nữ 800 CN CN Công nghệ Thông tin
MaLop MaMH HocKy NamHoc GiaoVien MaMH TenMH SoTinChi
01 306 1 2010 Tuấn 306 Tin học cơ sở 2
02 403 1 2010 Nga 403 Kế toán tài chính 3
03 306 2 2011 Sơn 306 Tin học cơ sở 2
04 207 1 2010 Nam 207 Cấu trúc dữ liệu 3
(MaKH=MaKhoa) (SinhVien × Khoa)
2
Ví dụ Hãy cho biết MaSV, HoSV, TenSV các sinh viên có theo học những lớp do
giáo viên ‘Tuấn’ giảng dạy:
 MaSV, HoSV, TenSV ( GiaoVien=’Tuấn’ [(LopHoc ⋈ KetQua) ⋈ SinhVien])
Hoặc:
 MaSV, HoSV, TenSV ( GiaoVien=’Tuấn’ [LopHoc ⋈ (KetQua ⋈ SinhVien)])
Hoặc:
 MaSV, HoSV, TenSV ([ GiaoVien=’Tuấn’ (LopHoc)] ⋈ KetQua ⋈ SinhVien)
Tuy nhiên, viết như bên dưới là không hợp lệ:
 MaSV, HoSV, TenSV ( GiaoVien=’Tuấn’ [LopHoc ⋈ SinhVien⋈ KetQua])
vì giữa LopHoc và SinhVien không có thuộc tính kết nối.
Ví dụ Hãy cho biết TenMH, SoTinChi, Diem của các môn học mà sinh viên có
MaSV = ‘ 2 2’ đã học:
 TenMH, SoTinChi, Diem ([ MaSV=’5202’ (KetQua ⋈ LopHoc ⋈ MonHoc))
3.6. Phép nhóm dữ liệu (GROUP)
Ví dụ 10: Giả sử có truy vấn sau: Dựa vào bảng SinhVien, tính số lượng sinh viên và
tổng học bổng của từng khoa. Kết quả như ở bảng dưới:
Cách thức thực hiện như trên được gọi là phép nhóm.
MaSV HoSV TenSV NgaySinh GioiTinh HocBong MaKH
5202 Lê Cường 21/5/1 1 Nam 200 KT
5207 Nguyễn Sơn 17/7/1 0 Nữ 800 KT
520 Ngô Hòa 16/8/1 0 Nam 200 CN
5306 Huỳnh Nga 22/3/1 2 Nữ 400 CN
5308 Phạm Trang 12/7/1 0 Nữ 800 CN
MaKhoa SoSV TongHB
KT 2 1.000
CN 3 1.400
Thuộc tính dùng để
tách nhóm các bộ
Count là hàm đếm số MaSV
(số bộ) trong từng nhóm
MaKH G SoSV: Count(MaSV), TongHB: Sum(HocBong) (SinhVien)
2
3
Tách nhóm
theo mã khoa
Đếm số SV
trong nhóm
2
Cú pháp:
Thuộc-tính-nhóm G Các-hàm-gộp (QuanHe)
Hàm Count được được gọi là hàm gộp (aggregate function). Danh sách các hàm gộp
được liệt kê bên dưới
Tên hàm Mục đích
Count Đếm số bộ
Sum Tính tổng các giá trị
Avg Tính giá trị trung bình
Max Tìm giá trị lớn nhất
Min Tìm giá trị nhỏ nhất
Ví dụ 11: Tính học bổng cao nhất, thấp nhất, và trung bình của các sinh viên theo
từng khoa
MaKH G Max(HocBong), Min(HocBong), Avg(HocBong) (SinhVien)
MaKhoa Max Min Avg
KT 800 200 500
CNTT 800 200 466
Ví dụ 12: mở rộng ví dụ , tính số sinh viên của từng Khoa, liệt kê các thuộc tính:
MaKhoa, TenKhoa, SoSV.
Để có thêm cột TenKhoa, cần thực hiện phép kết giữa bảng SinhVien và bảng Khoa,
sau đó thực hiện phép nhóm như bình thường, tuy nhiên cột TenKhoa phải được đưa vào
làm thuộc tính nhóm chung với MaKhoa
MaKhoa, TenKhoa G SoSV: Count(MaSV) (SinhVien ⋈ MaKH = MaKhoa Khoa)
MaSV HoSV TenSV NgaySinh GioiTinh HocBong MaKH MaKhoa TenKhoa
5202 Lê Cường 21/5/1 1 Nam 200 KT KT Kinh tế
5207 Nguyễn Sơn 17/7/1 0 Nữ 800 KT KT Kinh tế
520 Ngô Hòa 16/8/1 0 Nam 200 CN CN Công nghệ Thông tin
5306 Huỳnh Nga 22/3/1 2 Nữ 400 CN CN Công nghệ Thông tin
5308 Phạm Trang 12/7/1 0 Nữ 800 CN CN Công nghệ Thông tin
MaKhoa TenKhoa SoSV
KT Kinh tế 2
CN Công nghệ Thông tin 3
Thuộc tính nhóm gồm
MaKhoa và TenKhoa
2
Ví dụ 1 : Cho biết sĩ số của từng lớp học. Liệt kê: MaLop, TenMH, SiSo
MaLop, TenMH G SiSo: Count(MaSV) (LopHoc ⋈ MonHoc ⋈ KetQua)
MaLop TenMH SiSo
01 Tin học cơ sở 2
02 Kế toán tài chính 2
03 Tin học cơ sở 1
04 Cấu trúc dữ liệu 1
Ví dụ 14: Dựa vào bảng KetQua và bảng MonHoc, tính điểm trung bình học kỳ 1
năm 2 của các sinh viên theo quy tắc.
∑
∑
tam   NamHoc=2010 AND HocKy= 1 (KetQua ⋈ LopHoc ⋈ MonHoc)
Kết quả của tam:
MaSV MaLop Diem MaMH HocKy NamHoc GiaoVien TenMH SoTinChi
5202 01 4 306 1 2010 Tuấn Tin học cơ sở 2
5202 02 7 403 1 2010 Nga Kế toán tài chính 3
5202 04 207 1 2010 Nam Cấu trúc dữ liệu 3
5308 01 3 306 1 2010 Tuấn Tin học cơ sở 2
5308 02 403 1 2010 Nga Kế toán tài chính 3
MaSV G DiemTB: Sum(Diem*SoTinChi)/Sum(SoTinChi) (tam)
Kết quả:
MaSV DiemTB
5302 7.0
5308 6.6
2
3.7. Bài tập
1) Cho cơ sở dữ liệu về BanHang như bên dưới:
Hãy cho biết biểu thức đại số quan hệ để thực hiện các câu truy vấn sau và cho biết
nội dung kết quả của từng câu truy vấn:
a) Liệt kê tên các mặt hàng có đơn giá lớn hơn 10.000 (MaMH, TenMH, DonGia)
b) Cho biết tên khách hàng ứng với từng hóa đơn (MaHD, NgayHD, TenKH)
c) Hãy cho biết tên các khách hàng đã mua mặt hàng ‘Sữa chua Vinamilk’
d) Liệt kê tên các mặt hàng bán được trong ngày 12/2/2010
e) Tính thành tiền của từng hóa đơn (MaHD, NgayHD, TenKH, ThanhTien)
f) Cho biết tên các mặt hàng mà khách hàng ‘Nguyễn Trang’ đã mua, với tổng số
lượng và trị giá là bao nhiêu.
g) Tính doanh thu bán hàng theo từng ngày (NgayHD, DoanhThu)
h) Tính doanh thu bán hàng theo từng ngày của từng mặt hàng (NgayHD,
TenMatHang, DoanhThu)
KhachHang MaKH HoTen DiaChi
A001 Nguyễn Trang 12 Hồng Bàng
B002 Lê Cường 60 Trần Phú
C003 Mai Nguyễn 22 Bạch Đằng
MatHang MaMH TenMH DonViTinh DonGia
S03 Sữa chua Vinamilk Lốc 4.000
B02 Bánh Choco-Pie Hộp 15.000
K01 Kem Monte-Rosa Ký 20.000
HoaDon MaHD NgayHD MaKH
001 12/2/2010 A001
002 12/2/2010 B002
003 20/4/2011 B002
004 25/7/2011 A001
MatHangBan MaHD MaMH SoLuong
001 S03 2
001 B02 5
002 K01 6
002 S03 8
003 S03 10
004 B02 7
2
2) Cho cơ sở dữ liệu về quản lý các dự án của một công ty như sau:
 Hãy cho biết khóa chính, mối liên hệ và ràng buộc khóa ngoại giữa các quan hệ trong
cơ sở dữ liệu trên.
 Thực hiện các câu truy vấn sau bằng biểu thức đại số quan hệ và cho biết nội dung
kết quả của từng câu truy vấn:
a) Liệt kê các phòng ban và tên trưởng phòng của từng phòng ban (họ tên đầy đủ).
b) Tìm các nhân viên lương ít hơn . . ở ‘Phòng Kinh doanh’ hoặc ít hơn
. . ở ‘Phòng Kế toán’.
c) Liệt kê các nhân viên và cho biết tên trưởng phòng của từng nhân viên đó.
d) Hãy cho biết các phòng ban nào có thực hiện dự án tại ‘Nha Trang’.
e) Tính mức lương trung bình của từng phòng ban.
f) Trong các dự án thực hiện tại Nha Trang, tính tổng số giờ nhân viên của từng dự
án.
g) Với mỗi giờ làm việc cho dự án, một nhân viên sẽ được thưởng 1% tiền lương.
Tính số tiền thưởng của từng nhân viên.
h) Tính số tiền thưởng của từng nhân viên theo từng dự án.
PhongBan MaPB TenPB TruongPhong
KD Phòng Kinh doanh N01
KT Phòng Kế toán V02
NhanVien MaNV HoNV TenNV Luong MaPB
N01 Hoài Nam 3.000.000 KD
V02 Bình Phương 4.000.000 KT
N03 Mỹ Hòa 5.000.000 KD
V04 Phương Anh 5.000.000 KT
DuAn MaDA TenDA DiaDiem NgayBD MaPB
D1 Hồ Con Rùa Sài Gòn 27/3/2011 KD
D2 Chùa Tây Phương Hà Nội 10/6/2012 KD
D3 Chùa Linh Sơn Nha Trang 16/8/2011 KD
D4 Dinh Bảo Đại Nha Trang 22/1/2010 KT
PhanCong MaDA MaNV SoGio
D1 N01 2
D1 N03 5
D2 N01 6
D2 V02 8
D3 V02 10
D4 V04 7
Phần II
HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU
MICROSOFT ACCESS
2
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
MS Access là một Hệ quản trị cơ sở dữ liệu quan hệ (RDBMS - Relational Database
Management System), là một phần mềm trong bộ ứng dụng Microsoft Office chạy trên
môi trường Windows của hãng phần mềm Microsoft.
MS Access có giao diện thân thiện, dễ sử dụng, hiệu năng cao, cho phép xử lý dữ
liệu và kết xuất vào các biểu mẫu, báo cáo theo dạng thức chuyên nghiệp rất phù hợp cho
các bài toán quản lý vừa và nhỏ.
Microsoft Access còn cung cấp nhiều công cụ phát triển đầy năng lực để nâng cao
hiệu suất công việc. Bằng cách dùng các Wizard của MS Access và các lệnh có sẵn
(macro) người sử dụng có thể dễ dàng tự động hóa công việc mà không cần lập trình.
4.2. Khởi động MS Access
Start  All Programs  Microsoft Office  Microsoft Office Access
4.3. Tạo cơ sở dữ liệu mới
Một cơ sở dữ liệu Access được lưu trên đĩa dưới dạng một tập tin. Để tạo một CSDL
mới thì chọn menu File  New  Blank Database
Ở hộp thoại tiếp theo, chọn nơi lưu trữ và tên tập tin cơ sở dữ liệu
Sau khi chọn nơi lưu trữ và tên tập tin thì nhấn vào nút để tạo cơ
sở dữ liệu mới.
4.4. Mở một CSDL đã có trong máy tính
Sử dụng một trong các cách sau
 Vào menu File  Open
 Chọn thư mục và double-click vào tập tin CSDL.
4.5. Các đối tượng chính của một CSDL Access
Access là một hệ quản trị theo mô hình cơ sở dữ liệu quan hệ, vì vậy vì vậy Access
có các đối tượng để thể hiện các khái niệm quan hệ, lược đồ quan hệ và truy vấn:
 Bảng (Table) : thể hiện khái niệm quan hệ trong cơ sở dữ liệu. Bảng có hai chế
độ: design view - lược đồ quan hệ và data view - quan hệ. Trong bảng gồm
nhiều dòng - bộ và cột – thuộc tính
 Truy vấn (Query): Để thực hiện các truy vấn và một số thao tác thêm, xóa, sửa
trên các bảng.
Các thành phần tiện ích khác:
 Biểu mẫu (Form): Giao diện do người dùng tự tạo cho phép làm việc với dữ
liệu, chủ yếu được sử dụng trong việc nhập và hiển thị dữ liệu.
 Báo cáo (Report) : Kết quả của quá trình khai thác dữ liệu được tổ chức và
định dạng để tạo thành bản in.
 Pages: Tương tự như Form nhưng hoạt động trên nền Web.
 Macro : Tập hợp các lệnh nhằm tự động hóa các thao tác.
 Module: Cho phép lập trình thao tác trên các bảng và truy vấn.
Nơi lưu tập tin cơ sở dữ liệu
Tên tập tin cơ sở dữ liệu
4.6. Các toán tử sử dụng trong MS Access
Toán tử Ý nghĩa
( ) Kết nhóm biểu thức
Not Phủ định mệnh đề
And
Kết hợp mệnh đề: tất cả mệnh đề thành phần đúng thì cho kết quả
đúng, nếu có ít nhất 1 mệnh đề thành phần sai thì cho kết quả sai.
Or
Kết hợp mệnh đề: tất cả mệnh đề thành phần sai thì cho kết quả sai,
nếu có ít nhất 1 mệnh đề thành phần đúng thì cho kết quả đúng.
Xor 2 mệnh đề có giá trị trái ngược nhau thì cho kết quả đúng
Epv 2 mệnh đề có giá trị trái ngược nhau thì cho kết quả sai
^ Luỹ thừa (5^3=75)
+ - * / Cộng, Trừ, Nhân, Chia
 Phép chia lấy phần nguyên
Mod Phép chia lấy phần dư
<, >, = Nhỏ hơn, Lớn hơn, Bằng
<=, >= Nhỏ hơn hoặc bằng, Lớn hơn hoặc bằng
<> Không bằng
Is So sánh 2 đối tượng
In Thuộc, trong tập hợp hoặc miền giá trị (dùng trong các câu truy vấn)
Between ...
And ...
Trong khoảng từ…đến…
Like Giống: * (tổ hợp kí tự bất kỳ),
? ( ký tự bất kỳ),
# (Một ký số bất kỳ)
Ví dụ: like "A*", like "Access????", like 1#00
& Ghép chuỗi
+ Ghép chuỗi hoặc cộng số
Toán tử Ý nghĩa Toán tử Ý nghĩa
True Giá trị đúng "…" hoặc '…' Giá trị chuỗi, ví dụ "ACCESS"
False Giá trị sai […] Giá trị tham số, ví dụ [tham so]
Null Giá trị rỗng #...#
Giá trị thời gian, ví dụ
2 2
Date Ngày hiện hành
[Color]
Màu, ví dụ
Now
Ngày giờ hiện
hành
[white] : màu trắng
Time Giờ hiện hành [red] : màu đỏ
4.7. Một số hàm sử dụng trong MS Access
1) Các hàm về chuỗi
Hàm Kết quả
Ten LIKE 'N*' Tên bắt đầu bằng chữ N
Ten LIKE '*a*' Tên có chứa chữ a
Len(Ten)
3 (nếu Ten = 'Mai')
5 (nếu Ten = 'Nguyen')
Left(Ten, 2) 'Ma'
Right(TenSV,2) 'ai' (nếu TenSV = 'Mai')
Mid(TenSV,2,3) 'guy' (nếu TenSV = 'Nguyen')
2) Các hàm về ngày tháng
Hàm Kết quả
Now() Ngày giờ hiện tại
Month(#8/12/2011#)
Day(#5/27/2011#) 2
Year(Now()) 2
Year(Now()) – Year(NgaySinh) Tính số tuổi của sinh viên
Hour(#06:30#)
Minute(#13: 2
DatePart('q', Tính quý  2
3) Hàm IIF
 Cú pháp: IIF(điều-kiện, A, B)
(với điều-kiện là biểu thức logic. A, B là các biểu thức bất kỳ)
 Ý nghĩa: nếu điều-kiện đúng thì kết quả của biểu thức IIF là biểu thức A,
nếu điều-kiện sai thì kết quả của biểu thức IIF là biểu thức B.
 Ví dụ: IIF(Diem>=5, 'Đạt', 'Không đạt')
Vậy nếu Diem = 6, 7, 8 thì kết quả của IIF là 'Đạt'. Nếu Diem = 2, 4 thì kết quả của
IIF là 'Không đạt'.
4.8. Bài tập
Hãy thực hiện các thao tác sau trên máy tính:
1) Khởi động Access
2) Tạo một cơ sở dữ liệu mang tên bạn và lưu vào ổ đĩa C hoặc D
3) Trong cơ sở dữ liệu vừa tạo, quan sát các mục Table, Query, Form, Report,
Macro và Module
4) Đóng cơ sở dữ liệu và đóng Access
5) Khởi động lại Access, mở lại cơ sở dữ liệu vừa tạo (lưu ý: dùng menu File ->
Open, không được dùng menu File -> New)
CHƯƠNG 5. BẢNG (TABLE)
5.1. Các khái niệm
5.1.1. Bảng
Bảng là thành phần cơ bản và quan trọng nhất của CSDL Access, thể hiện khái niệm
lược đồ quan hệ và quan hệ.
Một bảng dữ liệu của CSDL Access bao gồm các thành phần: tập hợp các trường dữ
liệu (thuộc tính trong mô hình quan hệ), trường khoá chính, tập hợp các thuộc tính cần
thiết cho mỗi trường dữ liệu, tập hợp các bản ghi (bộ).
Ví dụ:
 Bảng dữ liệu trong trạng thái Datasheet (dùng để cập nhập, xem, sửa dữ liệu)
 Bảng dữ liệu trong trạng thái Design view (dùng để thiết kế cấu trúc – lược đồ
quan hệ)
Bản ghi (record)
Trường dữ liệu (field)
Tên bảng
Các thuộc tính mô
tả trường dữ liệu
Trường khóa chính
(primary key)
5.1.2. Trường dữ liệu (field)
Trường dữ liệu, tương ứng với cột của bảng, mô tả từng đặc điểm riêng của đối
tượng. Mỗi trường dữ liệu sẽ có một tên gọi, kiểu dữ liệu và tập hợp các tính chất mô tả
trường dữ liệu đó.
Ví dụ: Trường MaKhoa có kiểu dữ liệu là Text, kích thước 2 ký tự, được hiển thị là
chữ in hoa,…
5.1.3. Bản ghi (record)
Mỗi dòng dữ liệu của bảng được gọi một bản ghi.
Ví dụ: Bảng Khoa có 3 bản ghi là (“CN”, “Khoa Công nghệ thông tin”), (“KT”, “Khoa
Kinh tế”), (“NN”, “Khoa Ngoại ngữ”)
5.1.4. Khóa chính (primary key)
Khóa chính của bảng là trường hoặc tập trường dùng để phân biệt các bản ghi trong
cùng một bảng.
Ví dụ: Ở một trường đại học, mỗi sinh viên khi nhập học đều được cấp 1 mã sinh
viên không giống nhau, do đó có bảng SinhVien được thiết kế như sau:
Như vậy trường MaSV chứa dữ liệu mã sinh viên sẽ là khóa chính của bảng
SINHVIEN vì mã sinh viên là duy nhất, các sinh viên có thể trùng họ tên, ngày
sinh,…nhưng không thể có mã sinh viên giống nhau.
Ví dụ: Kết quả học tập của sinh viên bao gồm các dữ liệu sau: mã sinh viên, mã các
lớp học sinh viên đó đã đăng ký và điểm kết quả của các lớp học đó. Trong CSDL của
trường đó có bảng KetQua được thiết kế như sau
Như vậy 2 trường MaSV (chứa dữ liệu mã sinh viên) và MaLop (chứa mã lớp học mà
sinh viên đó đăng ký) sẽ tạo thành khóa chính của bảng KetQua, không thể có 1 sinh viên
đăng ký lớp học mà có 2 điểm kết quả khác nhau.
 Chú ý: MS Access không chấp nhận các giá trị trùng nhau hay trống (null)
trong trường khóa chính.
5.1.5. Mối liên hệ giữa các bảng (relationship)
Thể hiện khái niệm mối liên hệ giữa các quan hệ trong mô hình lý thuyết (xem phần
Phần I2.3.2). Đi kèm với mối liên hệ là ràng buộc toàn vẹn về khóa ngoại.
Trong Access tồn tại 2 kiểu quan hệ: quan hệ - và quan hệ -∞ (một-nhiều)
a) Quan hệ 1-1
Mỗi bản ghi của bảng này sẽ không liên kết hoặc liên kết với duy nhất tới một bản
ghi của bảng kia và ngược lại
Ví dụ: Mỗi số báo danh của thí sinh
thi đại học chỉ có 1 số phách bài thi và số
phách của mỗi bài thi chỉ thuộc về 1 số
báo danh.
Mô tả dữ liệu 2 bảng như sau:
b) Quan hệ 1- ∞
Một bản ghi trong bảng A không kết hợp hoặc kết hợp với một hay nhiều bản ghi
trong bảng B, nhưng ngược lại một bản ghi trong bảng B chỉ có thể kết hợp duy nhất với
một bản ghi trong bảng A.
Ví dụ: một khoa của trường Đại học Nha Trang
có nhiều sinh viên nhưng một sinh viên chỉ thuộc về
duy nhất một khoa.
Mô tả dữ liệu 2 bảng như sau:
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
Tab Tables  Create Table in Design View hoặc Tab Tables 
Sau đó ta được bảng thiết kế như sau:
Tên trường
Lựa chọn kiểu dữ liệu
Mô tả ngắn gọn của trường
Bảng thiết kế sau khi đã được nhập giá trị:
a) Tên trường
Tên trường có thể đặt tùy ý, tuy nhiên để dễ quản lý nên đặt ngắn gọn, dễ gợi nhớ,
không chứa ký tự trắng và không dùng chữ tiếng Việt có dấu.
b) Kiểu dữ liệu (Data Type)
MS Access cung cấp một số kiểu dữ liệu cơ bản sau:
 Text: kiểu chuỗi có độ dài tối đa 2 ký tự
 Memo: kiểu chuỗi có độ dài tối đa . ký tự
 Number: kiểu số
 Date/Time: kiểu ngày (nếu cần có thể lưu thêm thông tin về giờ)
 Currency: kiểu số có định dạng theo loại tiền tệ
 AutoNumber: kiểu số nhưng tự động tăng do Microsoft Access cung cấp và
quản lý, người dùng không thể cập nhật
 Yes/No: kiểu Logic
 OLE Object: kiểu đối tượng kết nhúng: Word, Excel,..
 Hyperlink: kiểu chuỗi chỉ đường dẫn của một tập tin trên ổ cứng hay trên máy
chủ của mạng hay một địa chỉ URL trên mạng.
 Lookup Wizard: tạo một cột để chọn giá trị và tìm kiếm từ một bảng khác
Khóa
chính
Kích thước của trường
Quy định dạng hiển thị dữ liệu
Quy định dạng thức dữ liệu
phải nhập
Tiêu đề cột mà
trường hiển thị
Giá trị mặc định
của trường khi
nhập dữ liệu
Các quy tắc hợp lệ của dữ
liệu nhập
Cho phép nhập
chuỗi rỗng
Thông báo khi nhập dữ liệu sai
quy tắc
Bắt buộc phải nhập dữ
liệu hay khôngTạo chỉ mục
2
Khai báo thuộc tính cho trường ở thẻ General:
c) Field Size
Xác định kích thước tối đa cho dữ liệu kiểu Number hay Text của trường.
Đối với kiểu số (number) thì Access cung cấp các kiểu sau
Loại số Độ lớn
Byte số nguyên byte
Integer số nguyên 2 byte
Long Integer số nguyên byte
Single số thực byte
Double số thực 2 byte
Decimal số thực byte
d) Format
Định dạng cách thể hiện của dữ liệu khi hiển thị hoặc khi in ấn.
 Kiểu chuỗi: gồm 3 phần
[Phần 1];[Phần 2];[Phần 3]
Trong đó:
- Phần 1: Chuỗi định dạng tương ứng trong trường hợp có chứa văn bản.
- Phần 2: Chuỗi định dạng tương ứng trong trường hợp không chứa văn bản.
- Phần 3: Chuỗi định dạng tương ứng trong trường hợp null
Các ký tự dùng để định dạng chuỗi
Ký tự Tác dụng
@ Chuỗi ký tự
"123ABC" Hiển thị những gì trong ngoặc kép như ký tự
> Đổi tất cả ký tự nhập vào thành in hoa
< Đổi tất cả ký tự nhập vào thành in thường

Hiển thị ký tự kế tiếp như ký tự bình thường
(dùng để hiển thị các ký tự đặc biệt)
Ví dụ
Cách định dạng Dữ liệu nhập vào Hiển thị
@@@-@@@
2
abcdef
2 -
abc-def
> Tinhoc TINHOC
< TinHoc tinhoc
@; "Không có"; "Chưa nhập"
ABC
Null
ABC
Không có
Chưa nhập
 Kiểu số (Number) và kiểu số tiền tệ (Currency)
Định dạng do ACCESS cung cấp
Loại số Dữ liệu nhập vào Hiển thị
General Number 2 . 2 .
Currency 2 . ,2 .
Euro 2 . € ,2 .
Fixed 2 . 2
Standard 2 . ,2 .
Pecent . 2 2.
Scientific 2 . 1.23E+0
Định dạng do người sử dụng:
[Phần 1];[Phần 2];[Phần 3];[Phần 4]
Trong đó:
- Phần 1: Chuỗi định dạng tương ứng trong trường hợp số dương.
- Phần 2: Chuỗi định dạng tương ứng trong trường hợp số âm.
- Phần 3: Chuỗi định dạng tương ứng trong trường hợp số bằng zero.
- Phần 4: Chuỗi định dạng tương ứng trong trường hợp null.
Ví dụ
Định dạng Hiển thị
0;(0);;"Null"
Số dương hiển thị bình thường
Số âm được bao giữa 2 dấu ngoặc ( )
Số bị bỏ trống
Null hiện chữ Null
. - . .
Hiển thị dấu + phía trước nếu số dương
Hiển thị dấu - phía trước nếu số âm
Hiển thị . nếu âm hoặc Null
 Kiểu Date/Time
Định dạng do ACCESS cung cấp
Định dạng Hiển thị
General date 10/30/99 5:10:30PM
Long date Friday, may 30 , 1999
Medium date 30-jul-
Short date
Long time 6:20:00 PM
Medium time 6:20 PM
Short time :2
 Kiểu Yes/No
Định dạng do ACCESS cung cấp
Định dạng Tác dụng
Yes / No Đúng Sai
True / False Đúng Sai
On / Off Đúng Sai
Định dạng do người sử dụng: Gồm 3 phần
;[Phần 1];[Phần 2]
Trong đó:
- Phần : Trường hợp giá trị trường đúng
- Phần 2: Trường hợp giá trị trường sai
Ví dụ
Định dạng Hiển thị
Trường hợp True Trường hợp False
"Nam" "Nữ" Nam Nữ
;"Có";"Không" Có Không
Chú ý: Để xem được hiển thị của kiểu Yes/No ta phải thay đổi thuộc tính
Display Control ở thẻ Lookup thành Text Box
e) Input Mask
Mặt nạ định dạng dữ liệu, người sử dụng bắt buộc phải nhập dữ liệu cho trường đúng
theo quy định đã cài đặt ở thuộc tính này.
Ký tự Tác dụng
Bắt buộc nhập ký tự số
Không bắt buộc nhập, ký tự số
# Không bắt buộc nhập, số 0-9, khoảng trắng, dấu + và -
L Bắt buộc nhập, ký tự chữ
? Không bắt buộc nhập, ký tự chữ hoặc khoảng trắng
a Bắt buộc nhập, ký tự chữ hoặc số
A Không bắt buộc nhập, ký tự chữ hoặc số
& Bắt buộc nhập, ký tự bất kỳ
C Không bắt buộc nhập ký tự bất kỳ
< Các ký tự bên phải được đổi thành chữ thường
> Các ký tự bên phải được đổi thành chữ hoa
! Dữ liệu được ghi từ phải sang trái
Ví dụ:
Input Mask Dữ liệu nhập vào
( ) - ( ) 2 - 2 2
(000)AAA-A ( 23)124-E
Ngoài ra ta có thể sử dụng những Input Mask có sẵn do Access cung cấp
f) Caption
Dùng làm tiêu đề cho các trường trong chế độ Datasheet của bảng, có thể dùng tiếng
Việt. Chuỗi ký tự này cũng xuất hiện tại nhãn các của các điều khiển trong các biểu mẫu
hoặc báo cáo.
Nếu không xác định Caption thì Access sẽ lấy tên trường để làm tiêu đề.
g) Default Value
Quy định giá trị mặc định cho trường trừ Auto number và OEL Object. Có thể là một
biểu thức, hằng, các hàm mẫu và các phép toán.
h) Validation rule và Validation Text
Quy định quy tắc hợp lệ dữ liệu (Validation rule) để giới hạn giá trị nhập vào cho
một trường. Khi giới hạn này bị vi phạm sẽ có câu thông báo ở Validation text.
Ví dụ:
Validation rule Tác dụng
0 Khác số không
Like "*HUE*" Trong chuỗi phải chứa HUE
>= #10/10/99# and <= #12/11/99# Trong khoảng từ đến 12/12/99
i) Required (tương tự ràng buộc toàn vẹn NOT NULL)
Dùng để quy định dữ liệu cần phải nhập hay không. Nếu chọn Yes thì phải nhập giá
trị cho cột đó mỗi khi thêm dòng mới, ngược lại nếu cho đưa giá trị Null vào thì chọn No.
Thuộc tính này có giá trị mặc định là No
j) AllowZeroLength
Cho phép quy định một trường có kiểu Text hay memo có thể hoặc không có thể có
chuỗi có độ dài bằng 0.
Thuộc tính này có giá trị mặc định là No
 Chú ý: Cần phân biệt một trường chứa giá trị null (chưa có dữ liệu) và một
trường chứa chuỗi có độ dài bằng 0 (có dữ liệu nhưng chuỗi rỗng "").
k) Index
Tạo chỉ mục trên một trường, giúp việc tìm kiếm dữ liệu nhanh hơn.
 Yes(Dupplicate OK) : Tạo chỉ mục có trùng lặp
 Yes(No Dupplicate) : Tạo chỉ mục không trùng lặp
 No : Không tạo chỉ mục
5.2.2. Tạo khóa chính
Thực hiện lần lượt các bước sau
1. Mở bảng ở chế độ Design View
2. Chọn trường (các trường) cần làm khóa
3. Click vào biểu tượng khóa
trên thanh công cụ để tạo khóa hoặc
Right-Click tên trường cần làm khóa 
Primary Key
Chú ý: Các trường có kiểu dữ liệu là Memo,
OLE Object, Hyper Link không thể làm khóa chính.
5.2.3. Lưu bảng
Thực hiện bởi 1 trong nhiều cách sau
 Ctrl+S
 Click biểu tượng trên thanh công cụ.
 Menu File  Save
5.2.4. Hiệu chỉnh bảng
 Di chuyển trường: Đưa con trỏ ra đầu trường
cần di chuyển, giữ và kéo đến vị trí mới.
 Chèn thêm trường mới: Chọn trường hiện thời
là trường sẽ nằm sau trường được chèn vào 
Right Click  Insert Row
 Xóa trường: Chọn trường cần xóa
 Right Click  Delete Row
5.3. Thiết lập mối quan hệ giữa các bảng
 Bước 1: Chọn biểu tượng Relationship hoặc vào menu Tool Relationships.
 Bước 2: Đưa các bảng muốn tạo mối quan hệ vào cửa sổ Relationships bằng cách lần
lượt chọn bảng  Add
Sau khi chọn xong thì click Close
Nếu cần chọn thêm bảng thì Right Click (tại vùng cửa
sổ Relationships) Show Table
 Bước 3: Trong cửa sổ Relationships dùng
chuột kéo và thả trường liên hệ từ bảng này
sang bảng kia.
 Bước 4: Xác định các qui tắc ràng buộc
của mối quan hệ này bằng cách chọn vào ô
kiểm tra hiệu lực của ràng buộc toàn vẹn
(Enforce Referential Integrity)
Đồng ý thiết lập toàn vẹn tham chiếu, nghĩa là dữ liệu trên
trường tham chiếu của bảng con phải tương ứng với dữ liệu đã tồn tại trên trường của bảng
cha. Ngoài ra thiết lập này còn cho biết kiểu quan hệ giữa 2 bảng
Đảm bảo toàn vẹn dữ liệu khi cập nhật dữ liệu giữa 2
bảng liên quan. Khi đó, nếu giá trị trường khoá liên kết ở bảng 1 bị thay đổi, toàn bộ giá trị
trường khoá liên kết ở bảng nhiều cũng bị thay đổi theo.
Đảm bảo toàn vẹn dữ liệu khi xoá dữ liệu giữa 2 bảng
liên quan. Khi đó, nếu một bản ghi ở bảng có quan hệ 1 bị xoá, toàn bộ các bản ghi có quan
hệ với bản ghi hiện tại sẽ được tự động xoá ở bảng có quan hệ nhiều (nếu xoá 1 CHA, toàn
bộ các con của cha đó sẽ tự động bị xoá khỏi bảng CON)
Hộp Relationship Type: cho biết kiểu quan hệ giữa 2 bảng đang thiết lập:
 One – To – One Kiểu -
 One – To – Many Kiểu -∞
 Indeterminate Không xác định được kiểu liên kết
 Bước 5: Chọn Create
 Bước 6: Lưu lại các mối quan hệ vào cửa sổ quan hệ: chọn menu File  Save
hoặc click vào biểu tượng trên thanh công cụ.
Chú ý: Khi thiết lập mối quan hệ phải đóng tất cả các bảng tham gia.
5.4. Cập nhật bảng
5.4.1. Xem và nhập dữ liệu
Có thể xem và nhập dữ liệu trong bảng bằng các cách sau
 Double click vào bảng cần xem (hoặc nhập dữ liệu)
 Click chọn bảng, sau đó click vào biểu tượng
5.4.2. Nhập dữ liệu sử dụng Lookup
Để việc nhập các giá trị cho các thuộc tính khóa ngoại được dễ dàng, nhanh chóng và
tránh sai sót, có thể nhập dữ liệu cho các thuộc tính này dùng lookup. Ví dụ bên dưới là
thiết lập lookup cho khóa ngoại MaKH của bảng SinhVien
Màn hình khi nhập liệu:
Trường khóa
ngoại đến
bảng quan hệ
Bảng có
quan hệ
nhiều (∞)
Kiểu thể hiện
dữ liệu
Bảng được tham chiếu
(bảng có quan hệ )
5.4.3. Một số lỗi có thể xảy ra khi nhập dữ liệu
Lỗi do: Nhập vào giá trị không tương thích với kiểu dữ liệu của trường đã chỉ định.
Ví dụ: trường kiểu Numeric mà gõ vào chữ cái; hoặc không gõ đầy đủ các giá trị
ngày, tháng, năm cho trường kiểu Date/Time,..
Khắc phục: Nhập lại cho đúng, đủ giá trị các trường đã yêu cầu đến khi không xuất
hiện thông báo lỗi.
Lỗi do: Không nhập giá trị hoặc để trống giá trị trường khoá.
Khắc phục: phải nhập đầy đủ giá trị cho trường khoá.
Lỗi do: Giá trị trường khoá trùng nhau. Giá trị trường khoá vừa nhập vào đã trùng
với giá trị của một khóa của bản ghi khác trên bảng dữ liệu.
Khắc phục: nhập lại giá trị trường khoá khác sao cho vừa đúng, đủ và không bị
trùng khoá.
Lỗi do: Không nhập dữ liệu ở trường bắt buộc nhập dữ liệu (những trường được thiết
lập thuộc tính Required=Yes)
Khắc phục: Phải nhập đủ dữ liệu cho các trường bắt buộc phải nhập dữ liệu.
Lý do: Lỗi do thực hiện một thao tác vi phạm các nguyên tắc đảm bảo toàn vẹn dữ liệu.
Ví dụ: Nhập dữ liệu trên một bảng có quan hệ mà bản ghi đang nhập không thể liên kết
được tới được một bản ghi nào của bảng có quan hệ 1 với nó (nhập một hàng bán mà mã
hàng đó chưa có trong bảng danh mục hàng hoá).
5.4.4. Xóa bản ghi
Với bảng dữ liệu đang mở có thể thực hiện 2 bước sau để xoá các bản ghi:
Bước 1: Chọn những bản ghi cần xoá. Có thể chọn một hoặc nhiều bản ghi bằng
cách dùng chuột đánh dấu đầu dòng những bản ghi cần chọn;
Bước 2: Ra lệnh xoá bằng một trong các cách sau
 Nhấn phím Delete.
 Right Click trên vùng đã chọn  Delete Record
 Click vào biểu tượng trên thanh công cụ
Một hộp thoại xuất hiện để bạn khẳng định một lần nữa việc xoá dữ liệu:
Chọn Yes để đồng ý xoá, No để huỷ lệnh xoá.
5.4.5. Sắp xếp dữ liệu
Sắp xếp là việc thay đổi thứ tự hiển thị một bảng dữ liệu theo một trật tự nào đó. Kết
quả của việc sắp xếp giúp người dùng có thể quan sát được tốt hơn dữ liệu trên bảng, tất
nhiên muốn quan sát bảng dữ liệu theo trường nào phải thực hiện sắp xếp bảng theo dữ liệu
trường ấy.
Cách sắp xếp dữ liệu trên bảng đang mở như sau:
Bước 1: Đặt con trỏ lên trường (cột) muốn sắp xếp;
Bước 2: Nhấn nút lệnh sắp xếp trên thanh công cụ:
- Sắp xếp tăng dần
- Sắp xếp giảm dần.
2
5.4.6. Lọc dữ liệu
Lọc dữ liệu là việc chọn ra những bản ghi trên bảng có cùng một số giá trị. Kết quả
việc lọc dữ liệu sẽ giúp người dùng làm việc một cách hiệu quả trên tập hợp các bản ghi họ
mong muốn.
Các bước để lọc dữ liệu trên một bảng đang mở như sau:
Bước 1: Click chọn trường cần lọc dữ liệu.
Bước : Click chọn biểu tượng Filter by Form
Bước 3: Thiết lập điều kiện lọc trên trường đang chọn
CHƯƠNG 6. TRUY VẤN (QUERY)
6.1. Các khái niệm
Sau khi xây dựng được CSDL, người dùng sẽ cần kết xuất dữ liệu trên CSDL nhằm
phục vụ cho những yêu cầu khác nhau. Một trong những công cụ xử lý dữ liệu mà MS
Access cung cấp là Query. Query cho phép thực hiện các phép toán đại số quan hệ như
phép chiếu, chọn kết, gom nhóm.
Có các loại query sau trong Access:
Query truy vấn:
 Select Query
 Group by Select Query
 Crosstab Query
Query thêm, xóa, sửa dữ liệu:
 Append Query
 Delete Query
 Update Query
 Make Table Query
6.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)
Phần này minh họa lại cách thực hiện Query cho các ví dụ về các phép chọn, chiếu,
kết nối trong chương về đại số quan hệ.
Ví dụ 01: Cho biết tên khoa của sinh viên có mã số ‘ 2 2’. Liệt kê các thông tin
MaSV, HoSV, TenSV, TenKhoa.
Biểu thức đại số quan hệ cho truy vấn trên:
 MaSV, HoSV, TenSV, TenKhoa [ MaSV=’5202’ (SinhVien ⋈ MaKH = MaKhoa Khoa)]
Tạo truy vấn trong Access:
Trong màn hình cơ sở dữ liệu, chọn mục Queries, sau đó chọn Create query in
Design view để mở màn hình Show Table.
Trong màn hình Show Table, chọn và nhấn nút Add các table tham gia truy vấn
(Khoa và SinhVien). Sau khi chọn xong, nhấn nút Close để trở về màn hình Design Query.
Màn hình design Query gồm hai phần:
 Phần A dùng để thể hiện các bảng tham gia truy vấn. Phần này cũng thể hiện mối
quan hệ giữa các bảng và mối quan hệ đó được sử dụng làm phép kết nối bằng.
 Phần B gồm nhiều cột dùng để thực hiện các phép chọn và chiếu. Một cột trong
phần B tương ứng với một cột trong phép chiếu.
Kéo thả (hoặc Double-Click) các trường liên quan đến truy vấn từ phần A vào các
cột phần B. Dấu * đại diện cho tất cả các cột trong bảng.
Nhấn nút View Design để chuyển đổi giữa chế độ thiết kế
Query và chế độ xem kết quả thực hiện phép kết nối giữa bảng
SinhVien và Khoa:
A
B
Các trường (cột)
được chọn
Bảng tham gia
truy vấn
Vùng nhập điều
kiện của phép chọn
Sắp xếp
Cho phép (không cho phép)
hiển thị kết quả
Bổ sung phép chọn và phép chiếu:
 Kéo bốn cột MaSV, HoSV, TenSV, TenKhoa vào phần B.
 Thực hiện phép chọn MaSV = ' 2 2': gõ mệnh đề = ' 2 2' vào dòng Criteria
ứng với cột MaSV.
Kết quả thực hiện:
Ví dụ 02: Tạo cột mới (HoTen) từ 2 trường HoSV và TenSV
Kết quả thực hiện:
Chú ý: Tên cột mới đặt ở dòng Field có cấu trúc như sau
<Tên cột> : <Biểu thức>
Ví dụ: HoTen : [HoSV] + ' ' + [TenSV]
Ví dụ 0 : Biểu thức chọn có mệnh đề AND
Xét câu truy vấn: Liệt kê các sinh viên sinh năm và có học bổng trên 500.
Year(NgaySinh)=1990 AND HocBong>300 (SinhVien)
Trong câu truy vấn này, biểu thức logic gồm 2 phần: Year(NgaySinh)=1990 và
HocBong > được đặt ở phần Criteria:
Chú ý: Year([NgaySinh]) giống như là một thuộc tính mới nhưng không được
hiện ra do không được chọn ở dòng Show.
Xét câu truy vấn: Liệt kê các sinh viên đạt mức học bổng từ đến 500
(HocBong>=300 AND HocBong <=500 (SinhVien)
Lúc này có hai điều kiện chọn cho cùng một thuộc tính là HocBong
Hoặc sử dụng mệnh đề: Between AND 5
Ví dụ 04: Biểu thức chọn có mệnh đề OR
Xét câu truy vấn: Liệt kê các sinh viên có tên bắt đầu là ‘T’ hoặc là ‘K’.
(Ten LIKE 'T*' OR Ten LIKE 'K*') (SinhVien)
Mệnh đề Like 'K*' được gõ ở dòng OR
Ví dụ 0 : Liệt kê các môn học chưa mở lớp:
Điều kiện NOT IN (SELECT MaMH FROM LopHoc) nghĩa là: trong bảng môn học,
hãy tìm các môn mà MaMH không có trong bảng LopHoc. Kết quả:
Ví dụ 0 : Sắp xếp và lựa dòng
Xét câu truy vấn: Chọn hai sinh viên đạt mức học bổng cao nhất.
Trước tiên sắp xếp danh sách sinh viên theo học bổng từ cao đến thấp:
Kết quả sắp xếp:
Sau đó trong màn hình Design, trên thanh công cụ, thay từ All thành 2:
Kết quả thực hiện:
6.2.2. Group by Select Query (truy vấn với phép nhóm)
Ví dụ 0 : Xét câu truy vấn: dựa vào bảng SinhVien, đếm số sinh viên và tính tổng
học bổng theo từng khoa:
Trong Access để tạo Group by Select Query, đầu tiên tạo một Select Query như bình
thường. Sau đó nhấn vào nút  trên thanh công cụ để xuất hiện dòng Total.
MaSV HoSV TenSV NgaySinh GioiTinh HocBong MaKH
5202 Lê Cường 21/5/1 1 Nam 200 KT
5207 Nguyễn Sơn 17/7/1 0 Nữ 800 KT
520 Ngô Hòa 16/8/1 0 Nam 200 CN
5306 Huỳnh Nga 22/3/1 2 Nữ 400 CN
5308 Phạm Trang 12/7/1 0 Nữ 800 CN
MaKhoa SoSV TongHB
KT 2 1.000
CN 3 1.400
2
3
Tách nhóm
theo mã khoa
Đếm số SV
trong nhóm
Sau đó đưa ba trường MaKh, MaSV, HocBong vào ba cột bên dưới.
 Trường MaKh dùng để tách nhóm, nên trong dòng Total chọn là Group By.
 Trường MaSV dùng để đếm số lượng sinh viên nên trong dòng Total chọn hàm Count.
 Trường HocBong dùng để tính tổng học bổng nên trong dòng Total chọn hàm Sum.
Kết quả thực hiện.
Ví dụ 0 : Bổ sung thêm trường TenKhoa.
Kết nối bảng SinhVien với bảng Khoa, sau đó chọn trường MaKhoa, TenKhoa là
Group by
Ví dụ 0 : Tính số sinh viên nữ của từng khoa
Câu truy vấn này cũng tương tự như câu tính tổng số sinh viên của từng khoa, tuy
nhiên trước khi tách nhóm thì phải thực hiện phép chọn để lọc ra các sinh viên nữ
Ở đây, trường GioiTinh chỉ dùng để chọn ra các sinh viên nữ, không dùng để tách
nhóm, do đó ở dòng Total của cột GioiTinh chọn Where (không chọn Group By).
Kết quả thực hiện
Ví dụ 10 Dựa vào các bảng SinhVien, LopHoc, KetQua và MonHoc, tính điểm
trung bình học kỳ năm 2 của các sinh viên. Liệt kê: MaSV, HoSV, TenSV, DTB.
tam   NamHoc=2010 AND HocKy= 1 (LopHoc ⋈ MonHoc ⋈ KetQua)
MaSV, HoSV, TenSV G DTB: Sum(Diem*SoTinChi)/Sum(SoTinChi) (tam)
Trong ví dụ trên, vì cách tính điểm trung bình là một công thức toán học nên dòng
Total ở cột DTB:Sum([Diem]*[SoTinChi])/Sum([SoTinChi]) được chọn là Expression
(nghĩa là một biểu thức).
Kết quả thực hiện
 Tóm tắt Chức năng Total cung cấp cho người dùng các phương thức thống kê sau:
 Group By: Gom nhóm các trường cần thống kê.
 Sum: Tính tổng các giá trị trong cùng một nhóm
 Count: Đếm số phần tử trong một nhóm
 AVG: Tính trung bình cộng các phần tử trong cùng một nhóm
 Min: Tính giá trị nhỏ nhất của các phần tử trong cùng một nhóm
 Max: tính giá trị lớn nhất của các phần tử trong cùng một nhóm
 Expresion: Biểu thức toán học.
6.2.3. Crosstab Query
Là dạng query tổng hợp số liệu kết nhóm theo hàng và cột từ số liệu của các table
hay query khác.
Cấu trúc của 1 kết quả crosstab query
 Row heading: là tiêu đề các dòng, có chứa các giá trị của hay nhiều trường
làm đối tượng thống kê. Mỗi crosstab query phải có tối thiểu 1 trường làm Row heading.
 Column heading là tiêu đề các cột, có chứa các giá trị của một trường làm điều
kiện thống kê. Mỗi crosstab query chỉ có duy nhất 01 trường làm Column heading.
 Value là vùng dữ liệu tổng hợp (kiểu số). Chỉ có duy nhất một trường làm
Value, tương ứng với nó là các hàm thống kê: Sum, Count, Avg, Max, Min…
Ví dụ 11: Thống kê điểm số cuối cùng của từng sinh viên theo từng môn học:
Kết quả của phép kết:
 MaSV, Ho,Ten, MaLop, TenMH, Diem (SinhVien ⋈ KetQua ⋈ LopHoc ⋈ MonHoc)
MaSV HoTen MaLop TenMH Diem
5308 Phạm Trang 01 Tin học cơ sở 3
5308 Phạm Trang 03 Tin học cơ sở
5308 Phạm Trang 02 Kế toán tài chính
5202 Lê Cường 01 Tin học cơ sở 4
5202 Lê Cường 03 Tin học cơ sở 8
5202 Lê Cường 04 Cấu trúc dữ liệu 7
5202 Lê Cường 02 Kế toán tài chính
MaSV HoTen Cấu trúc dữ liệu Kế toán tài chính Tin học cơ sở
5202 Lê Cường
5308 Phạm Trang
Để tạo bảng crosstab, trước tiên tạo một Group By Select Query. Sau đó chuyển
thành Crosstab Query bằng cách vào menu Query  Crosstab Query
Value
Row heading
Column heading
Max(3, 9)
Max(4, 8)
2
Phần thiết kế Query xuất hiện thêm dòng Crosstab.
- MaSV, HoTen sắp theo chiều dọc nên tại dòng total là Group By, tại dòng
crosstab chọn là Row Heading.
- TenMH sắp theo chiều ngang nên tại dòng total là Group By, tại dòng crosstab
chọn là Column Heading.
- Diem là giá trị của bảng nên tại dòng total là Max, tại dòng crosstab chọn là
Value.
Kết quả thực hiện:
6.3. Query thêm, xóa, sửa
6.3.1. Make – Table Query
Trong các phần trên, truy vấn được tạo theo hai chế độ: chế độ thiết kế (Design) và
chế độ xem kết quả (View). Để có thể lưu kết quả của query nhằm mục đích sử dụng sau
này, Access cung cấp Make-Table Query.
Make-Table Query hoàn toàn giống như một Select Query bình thường, chỉ khác là
cho phép lưu kết quả thành một bảng.
Ví dụ 12: Tính số sinh viên theo từng Khoa và lưu vào bảng DemSinhVien.
Trước tiên thiết kế Select query đếm số sinh viên theo từng Khoa như bình thường.
Sau đó vào menu Query  Make-Table Query.
Sau đó nhập vào tên của bảng cần lưu kết quả
Để chính thức lưu kết quả vào bảng DemSinhVien, click vào biểu tượng Run (biểu
tượng View vẫn có tác dụng xem trước kết quả như bình thường)
Sau khi nhấn nút Run, chọn Yes ở hộp thoại tiếp theo. Quay trở lại màn hình xem
Table của database, xuất hiện bảng DemSinhVien.
Gt tin hocungdung_access
Gt tin hocungdung_access
Gt tin hocungdung_access
Gt tin hocungdung_access
Gt tin hocungdung_access
Gt tin hocungdung_access
Gt tin hocungdung_access
Gt tin hocungdung_access
Gt tin hocungdung_access
Gt tin hocungdung_access
Gt tin hocungdung_access
Gt tin hocungdung_access
Gt tin hocungdung_access
Gt tin hocungdung_access
Gt tin hocungdung_access
Gt tin hocungdung_access
Gt tin hocungdung_access
Gt tin hocungdung_access
Gt tin hocungdung_access
Gt tin hocungdung_access
Gt tin hocungdung_access
Gt tin hocungdung_access
Gt tin hocungdung_access
Gt tin hocungdung_access
Gt tin hocungdung_access
Gt tin hocungdung_access
Gt tin hocungdung_access
Gt tin hocungdung_access
Gt tin hocungdung_access
Gt tin hocungdung_access
Gt tin hocungdung_access
Gt tin hocungdung_access
Gt tin hocungdung_access
Gt tin hocungdung_access
Gt tin hocungdung_access
Gt tin hocungdung_access
Gt tin hocungdung_access
Gt tin hocungdung_access
Gt tin hocungdung_access
Gt tin hocungdung_access
Gt tin hocungdung_access
Gt tin hocungdung_access
Gt tin hocungdung_access
Gt tin hocungdung_access
Gt tin hocungdung_access
Gt tin hocungdung_access
Gt tin hocungdung_access
Gt tin hocungdung_access
Gt tin hocungdung_access
Gt tin hocungdung_access
Gt tin hocungdung_access
Gt tin hocungdung_access
Gt tin hocungdung_access
Gt tin hocungdung_access
Gt tin hocungdung_access
Gt tin hocungdung_access

Más contenido relacionado

La actualidad más candente

Thuyet minh datn hoang cao khai - 373052 - 52cb1
Thuyet minh datn   hoang cao khai - 373052 - 52cb1Thuyet minh datn   hoang cao khai - 373052 - 52cb1
Thuyet minh datn hoang cao khai - 373052 - 52cb1luuguxd
 
đồ áN thiết kế nhà máy sản xuất bia công suất 50 triệu lít năm
đồ áN thiết kế nhà máy sản xuất bia công suất 50 triệu lít nămđồ áN thiết kế nhà máy sản xuất bia công suất 50 triệu lít năm
đồ áN thiết kế nhà máy sản xuất bia công suất 50 triệu lít nămnataliej4
 
Giao trinh word 2010
Giao trinh word 2010Giao trinh word 2010
Giao trinh word 2010Tran Juni
 
Giao trinh-phan-cung-dien-tu[bookbooming.com]
Giao trinh-phan-cung-dien-tu[bookbooming.com]Giao trinh-phan-cung-dien-tu[bookbooming.com]
Giao trinh-phan-cung-dien-tu[bookbooming.com]bookbooming1
 
Giaotrinh excel 2010
Giaotrinh excel 2010Giaotrinh excel 2010
Giaotrinh excel 2010Thien Le
 
Tri tue-nhan-tao-dinh-manh-tuong
Tri tue-nhan-tao-dinh-manh-tuongTri tue-nhan-tao-dinh-manh-tuong
Tri tue-nhan-tao-dinh-manh-tuongQuyên Đinh
 
Tim kiem ngu_nghia_tren_e_doc
Tim kiem ngu_nghia_tren_e_docTim kiem ngu_nghia_tren_e_doc
Tim kiem ngu_nghia_tren_e_docViet Nam
 
F:\Lehuuhien\Tai Lieu Giao Tiep Kinh Doanh\Business Communication Skills
F:\Lehuuhien\Tai Lieu Giao Tiep Kinh Doanh\Business Communication SkillsF:\Lehuuhien\Tai Lieu Giao Tiep Kinh Doanh\Business Communication Skills
F:\Lehuuhien\Tai Lieu Giao Tiep Kinh Doanh\Business Communication Skillslehuuhien99
 
Thuyet minh tahaka- du an dau tu
Thuyet minh tahaka- du an dau tuThuyet minh tahaka- du an dau tu
Thuyet minh tahaka- du an dau tuMỵ Dương
 

La actualidad más candente (15)

Thuyet minh datn hoang cao khai - 373052 - 52cb1
Thuyet minh datn   hoang cao khai - 373052 - 52cb1Thuyet minh datn   hoang cao khai - 373052 - 52cb1
Thuyet minh datn hoang cao khai - 373052 - 52cb1
 
Luận văn: Bài toán nhận dạng biển số xe, HAY
Luận văn: Bài toán nhận dạng biển số xe, HAYLuận văn: Bài toán nhận dạng biển số xe, HAY
Luận văn: Bài toán nhận dạng biển số xe, HAY
 
Đề tài: Chiến lược huy động vốn tại ngân hàng phát triển, HAY, 9đ
Đề tài: Chiến lược huy động vốn tại ngân hàng phát triển, HAY, 9đĐề tài: Chiến lược huy động vốn tại ngân hàng phát triển, HAY, 9đ
Đề tài: Chiến lược huy động vốn tại ngân hàng phát triển, HAY, 9đ
 
Giao trinh c_can_ban
Giao trinh c_can_banGiao trinh c_can_ban
Giao trinh c_can_ban
 
đồ áN thiết kế nhà máy sản xuất bia công suất 50 triệu lít năm
đồ áN thiết kế nhà máy sản xuất bia công suất 50 triệu lít nămđồ áN thiết kế nhà máy sản xuất bia công suất 50 triệu lít năm
đồ áN thiết kế nhà máy sản xuất bia công suất 50 triệu lít năm
 
Đào tạo ĐH
Đào tạo ĐHĐào tạo ĐH
Đào tạo ĐH
 
Giao trinh word 2010
Giao trinh word 2010Giao trinh word 2010
Giao trinh word 2010
 
Đề tài: Thuật toán khai phá dữ liệu trong quản lý địa chỉ Internet
Đề tài: Thuật toán khai phá dữ liệu trong quản lý địa chỉ InternetĐề tài: Thuật toán khai phá dữ liệu trong quản lý địa chỉ Internet
Đề tài: Thuật toán khai phá dữ liệu trong quản lý địa chỉ Internet
 
Giao trinh-phan-cung-dien-tu[bookbooming.com]
Giao trinh-phan-cung-dien-tu[bookbooming.com]Giao trinh-phan-cung-dien-tu[bookbooming.com]
Giao trinh-phan-cung-dien-tu[bookbooming.com]
 
Creative computing textbook
Creative computing textbookCreative computing textbook
Creative computing textbook
 
Giaotrinh excel 2010
Giaotrinh excel 2010Giaotrinh excel 2010
Giaotrinh excel 2010
 
Tri tue-nhan-tao-dinh-manh-tuong
Tri tue-nhan-tao-dinh-manh-tuongTri tue-nhan-tao-dinh-manh-tuong
Tri tue-nhan-tao-dinh-manh-tuong
 
Tim kiem ngu_nghia_tren_e_doc
Tim kiem ngu_nghia_tren_e_docTim kiem ngu_nghia_tren_e_doc
Tim kiem ngu_nghia_tren_e_doc
 
F:\Lehuuhien\Tai Lieu Giao Tiep Kinh Doanh\Business Communication Skills
F:\Lehuuhien\Tai Lieu Giao Tiep Kinh Doanh\Business Communication SkillsF:\Lehuuhien\Tai Lieu Giao Tiep Kinh Doanh\Business Communication Skills
F:\Lehuuhien\Tai Lieu Giao Tiep Kinh Doanh\Business Communication Skills
 
Thuyet minh tahaka- du an dau tu
Thuyet minh tahaka- du an dau tuThuyet minh tahaka- du an dau tu
Thuyet minh tahaka- du an dau tu
 

Similar a Gt tin hocungdung_access

Các Nhân Tố Ảnh Hưởng Vận Dụng Kế Toán Quản Trị Trong Các Doanh Nghiệp Xây Dựng
Các Nhân Tố Ảnh Hưởng Vận Dụng Kế Toán Quản Trị Trong Các Doanh Nghiệp Xây DựngCác Nhân Tố Ảnh Hưởng Vận Dụng Kế Toán Quản Trị Trong Các Doanh Nghiệp Xây Dựng
Các Nhân Tố Ảnh Hưởng Vận Dụng Kế Toán Quản Trị Trong Các Doanh Nghiệp Xây DựngHỗ Trợ Viết Đề Tài luanvanpanda.com
 
Đề tài luận văn 2024 Đào tạo nghề cho Lao động nông thôn huyện Hiệp Hòa, tỉnh...
Đề tài luận văn 2024 Đào tạo nghề cho Lao động nông thôn huyện Hiệp Hòa, tỉnh...Đề tài luận văn 2024 Đào tạo nghề cho Lao động nông thôn huyện Hiệp Hòa, tỉnh...
Đề tài luận văn 2024 Đào tạo nghề cho Lao động nông thôn huyện Hiệp Hòa, tỉnh...lamluanvan.net Viết thuê luận văn
 
Tailieu.vncty.com giao trinh lap trinh huong doi tuong
Tailieu.vncty.com giao trinh lap trinh huong doi tuongTailieu.vncty.com giao trinh lap trinh huong doi tuong
Tailieu.vncty.com giao trinh lap trinh huong doi tuongTrần Đức Anh
 
Thiết kế, chế tạo thiết bị đo và cảnh báo nồng độ cồn trong hơi thở
Thiết kế, chế tạo thiết bị đo và cảnh báo nồng độ cồn trong hơi thởThiết kế, chế tạo thiết bị đo và cảnh báo nồng độ cồn trong hơi thở
Thiết kế, chế tạo thiết bị đo và cảnh báo nồng độ cồn trong hơi thởMan_Ebook
 
Phonegap cho người mới học
Phonegap cho người mới họcPhonegap cho người mới học
Phonegap cho người mới họcNgo Trung
 
Luận Văn Sự Hài Lòng Của Người Nộp Thuế Đối Với Chất Lượng Dịch Vụ Hành Chính...
Luận Văn Sự Hài Lòng Của Người Nộp Thuế Đối Với Chất Lượng Dịch Vụ Hành Chính...Luận Văn Sự Hài Lòng Của Người Nộp Thuế Đối Với Chất Lượng Dịch Vụ Hành Chính...
Luận Văn Sự Hài Lòng Của Người Nộp Thuế Đối Với Chất Lượng Dịch Vụ Hành Chính...Viết Thuê Luận Văn Luanvanpanda.com
 
Huong dan su dung ban day du
Huong dan su dung ban day duHuong dan su dung ban day du
Huong dan su dung ban day duthanh_k8_cntt
 
04. de cuong hqt sql server
04. de cuong hqt sql server04. de cuong hqt sql server
04. de cuong hqt sql serverĐinh Luận
 
Giáo trình cấu trúc dữ liệu và giải thuật[bookbooming.com]
Giáo trình cấu trúc dữ liệu và giải thuật[bookbooming.com]Giáo trình cấu trúc dữ liệu và giải thuật[bookbooming.com]
Giáo trình cấu trúc dữ liệu và giải thuật[bookbooming.com]bookbooming1
 
Giao trinh cau truc du lieu va giai thuat
Giao trinh cau truc du lieu va giai thuatGiao trinh cau truc du lieu va giai thuat
Giao trinh cau truc du lieu va giai thuatDang Hong
 
Giao trinh cau truc du lieu va giai thuat
Giao trinh cau truc du lieu va giai thuatGiao trinh cau truc du lieu va giai thuat
Giao trinh cau truc du lieu va giai thuatPham Minh Hai
 
OpenERP 7.0 Release Notes Tiếng Việt
OpenERP 7.0 Release Notes Tiếng ViệtOpenERP 7.0 Release Notes Tiếng Việt
OpenERP 7.0 Release Notes Tiếng ViệtOpenerp Việt Nam
 

Similar a Gt tin hocungdung_access (20)

Đề tài: Phần mềm quản lý thư viện và website tra cứu sách, HOT
Đề tài: Phần mềm quản lý thư viện và website tra cứu sách, HOTĐề tài: Phần mềm quản lý thư viện và website tra cứu sách, HOT
Đề tài: Phần mềm quản lý thư viện và website tra cứu sách, HOT
 
Các Nhân Tố Ảnh Hưởng Vận Dụng Kế Toán Quản Trị Trong Các Doanh Nghiệp Xây Dựng
Các Nhân Tố Ảnh Hưởng Vận Dụng Kế Toán Quản Trị Trong Các Doanh Nghiệp Xây DựngCác Nhân Tố Ảnh Hưởng Vận Dụng Kế Toán Quản Trị Trong Các Doanh Nghiệp Xây Dựng
Các Nhân Tố Ảnh Hưởng Vận Dụng Kế Toán Quản Trị Trong Các Doanh Nghiệp Xây Dựng
 
Đề tài: Đẩy mạnh xuất khẩu lao động cho lao động nông thôn, HAY
Đề tài: Đẩy mạnh xuất khẩu lao động cho lao động nông thôn, HAYĐề tài: Đẩy mạnh xuất khẩu lao động cho lao động nông thôn, HAY
Đề tài: Đẩy mạnh xuất khẩu lao động cho lao động nông thôn, HAY
 
Đề tài luận văn 2024 Đào tạo nghề cho Lao động nông thôn huyện Hiệp Hòa, tỉnh...
Đề tài luận văn 2024 Đào tạo nghề cho Lao động nông thôn huyện Hiệp Hòa, tỉnh...Đề tài luận văn 2024 Đào tạo nghề cho Lao động nông thôn huyện Hiệp Hòa, tỉnh...
Đề tài luận văn 2024 Đào tạo nghề cho Lao động nông thôn huyện Hiệp Hòa, tỉnh...
 
Tailieu.vncty.com giao trinh lap trinh huong doi tuong
Tailieu.vncty.com giao trinh lap trinh huong doi tuongTailieu.vncty.com giao trinh lap trinh huong doi tuong
Tailieu.vncty.com giao trinh lap trinh huong doi tuong
 
C plus plus
C plus plusC plus plus
C plus plus
 
Báo cáo
Báo cáoBáo cáo
Báo cáo
 
Thiết kế, chế tạo thiết bị đo và cảnh báo nồng độ cồn trong hơi thở
Thiết kế, chế tạo thiết bị đo và cảnh báo nồng độ cồn trong hơi thởThiết kế, chế tạo thiết bị đo và cảnh báo nồng độ cồn trong hơi thở
Thiết kế, chế tạo thiết bị đo và cảnh báo nồng độ cồn trong hơi thở
 
Phonegap cho người mới học
Phonegap cho người mới họcPhonegap cho người mới học
Phonegap cho người mới học
 
Luận Văn Sự Hài Lòng Của Người Nộp Thuế Đối Với Chất Lượng Dịch Vụ Hành Chính...
Luận Văn Sự Hài Lòng Của Người Nộp Thuế Đối Với Chất Lượng Dịch Vụ Hành Chính...Luận Văn Sự Hài Lòng Của Người Nộp Thuế Đối Với Chất Lượng Dịch Vụ Hành Chính...
Luận Văn Sự Hài Lòng Của Người Nộp Thuế Đối Với Chất Lượng Dịch Vụ Hành Chính...
 
Huong dan su dung ban day du
Huong dan su dung ban day duHuong dan su dung ban day du
Huong dan su dung ban day du
 
Bài giảng excel 2010
Bài giảng excel 2010Bài giảng excel 2010
Bài giảng excel 2010
 
04. de cuong hqt sql server
04. de cuong hqt sql server04. de cuong hqt sql server
04. de cuong hqt sql server
 
Giáo trình cấu trúc dữ liệu và giải thuật[bookbooming.com]
Giáo trình cấu trúc dữ liệu và giải thuật[bookbooming.com]Giáo trình cấu trúc dữ liệu và giải thuật[bookbooming.com]
Giáo trình cấu trúc dữ liệu và giải thuật[bookbooming.com]
 
Giao trinh cau truc du lieu va giai thuat
Giao trinh cau truc du lieu va giai thuatGiao trinh cau truc du lieu va giai thuat
Giao trinh cau truc du lieu va giai thuat
 
Giao trinh cau truc du lieu va giai thuat
Giao trinh cau truc du lieu va giai thuatGiao trinh cau truc du lieu va giai thuat
Giao trinh cau truc du lieu va giai thuat
 
Đề tài: Một số giải pháp giải quyết tranh chấp kinh tế, thương mại tại tòa án...
Đề tài: Một số giải pháp giải quyết tranh chấp kinh tế, thương mại tại tòa án...Đề tài: Một số giải pháp giải quyết tranh chấp kinh tế, thương mại tại tòa án...
Đề tài: Một số giải pháp giải quyết tranh chấp kinh tế, thương mại tại tòa án...
 
OpenERP 7.0 Release Notes Tiếng Việt
OpenERP 7.0 Release Notes Tiếng ViệtOpenERP 7.0 Release Notes Tiếng Việt
OpenERP 7.0 Release Notes Tiếng Việt
 
Code igniter v1
Code igniter v1Code igniter v1
Code igniter v1
 
Php
PhpPhp
Php
 

Más de lam04dt

Thuật dưỡng sinh
Thuật dưỡng sinhThuật dưỡng sinh
Thuật dưỡng sinhlam04dt
 
Ebook yoga thuc hanh cho moi lua tuoi4page
Ebook   yoga thuc hanh cho moi lua tuoi4pageEbook   yoga thuc hanh cho moi lua tuoi4page
Ebook yoga thuc hanh cho moi lua tuoi4pagelam04dt
 
Yoga cơ bản
Yoga cơ bảnYoga cơ bản
Yoga cơ bảnlam04dt
 
Chí cốt sám hối
Chí cốt sám hốiChí cốt sám hối
Chí cốt sám hốilam04dt
 
Góp nhặt ...zen...
Góp nhặt ...zen...Góp nhặt ...zen...
Góp nhặt ...zen...lam04dt
 
Tienthaigiao
TienthaigiaoTienthaigiao
Tienthaigiaolam04dt
 
Chữ hiếu
Chữ hiếuChữ hiếu
Chữ hiếulam04dt
 
Kiểm tra 1 tiết môn CTDL
Kiểm tra 1 tiết môn CTDLKiểm tra 1 tiết môn CTDL
Kiểm tra 1 tiết môn CTDLlam04dt
 
Bai giang-access-2007
Bai giang-access-2007Bai giang-access-2007
Bai giang-access-2007lam04dt
 
Baigiang access ttth
Baigiang access ttthBaigiang access ttth
Baigiang access ttthlam04dt
 
Gt bt access
Gt bt accessGt bt access
Gt bt accesslam04dt
 
Hồi hướng công đức ...
Hồi hướng công đức ...Hồi hướng công đức ...
Hồi hướng công đức ...lam04dt
 
Hoa hồng
Hoa hồngHoa hồng
Hoa hồnglam04dt
 
Vtc bai2
Vtc bai2Vtc bai2
Vtc bai2lam04dt
 
Bai giang-cho-sv-k53-1222928058720353-9
Bai giang-cho-sv-k53-1222928058720353-9Bai giang-cho-sv-k53-1222928058720353-9
Bai giang-cho-sv-k53-1222928058720353-9lam04dt
 
Tim kiem-thong-tin-tren-internet-1222530154801043-8
Tim kiem-thong-tin-tren-internet-1222530154801043-8Tim kiem-thong-tin-tren-internet-1222530154801043-8
Tim kiem-thong-tin-tren-internet-1222530154801043-8lam04dt
 
Excelwww slide-giaotrinh-tk-100123171205-phpapp02
Excelwww slide-giaotrinh-tk-100123171205-phpapp02Excelwww slide-giaotrinh-tk-100123171205-phpapp02
Excelwww slide-giaotrinh-tk-100123171205-phpapp02lam04dt
 
Bai giang soan thao van ban day du
Bai giang soan thao van ban day duBai giang soan thao van ban day du
Bai giang soan thao van ban day dulam04dt
 
Slide word
Slide wordSlide word
Slide wordlam04dt
 

Más de lam04dt (20)

Thuật dưỡng sinh
Thuật dưỡng sinhThuật dưỡng sinh
Thuật dưỡng sinh
 
Ebook yoga thuc hanh cho moi lua tuoi4page
Ebook   yoga thuc hanh cho moi lua tuoi4pageEbook   yoga thuc hanh cho moi lua tuoi4page
Ebook yoga thuc hanh cho moi lua tuoi4page
 
Yoga cơ bản
Yoga cơ bảnYoga cơ bản
Yoga cơ bản
 
Chí cốt sám hối
Chí cốt sám hốiChí cốt sám hối
Chí cốt sám hối
 
Góp nhặt ...zen...
Góp nhặt ...zen...Góp nhặt ...zen...
Góp nhặt ...zen...
 
Tienthaigiao
TienthaigiaoTienthaigiao
Tienthaigiao
 
Chữ hiếu
Chữ hiếuChữ hiếu
Chữ hiếu
 
Kiểm tra 1 tiết môn CTDL
Kiểm tra 1 tiết môn CTDLKiểm tra 1 tiết môn CTDL
Kiểm tra 1 tiết môn CTDL
 
Bai giang-access-2007
Bai giang-access-2007Bai giang-access-2007
Bai giang-access-2007
 
Baigiang access ttth
Baigiang access ttthBaigiang access ttth
Baigiang access ttth
 
Gt bt access
Gt bt accessGt bt access
Gt bt access
 
Hồi hướng công đức ...
Hồi hướng công đức ...Hồi hướng công đức ...
Hồi hướng công đức ...
 
Hoa hồng
Hoa hồngHoa hồng
Hoa hồng
 
Vtc bai2
Vtc bai2Vtc bai2
Vtc bai2
 
Vtcong
VtcongVtcong
Vtcong
 
Bai giang-cho-sv-k53-1222928058720353-9
Bai giang-cho-sv-k53-1222928058720353-9Bai giang-cho-sv-k53-1222928058720353-9
Bai giang-cho-sv-k53-1222928058720353-9
 
Tim kiem-thong-tin-tren-internet-1222530154801043-8
Tim kiem-thong-tin-tren-internet-1222530154801043-8Tim kiem-thong-tin-tren-internet-1222530154801043-8
Tim kiem-thong-tin-tren-internet-1222530154801043-8
 
Excelwww slide-giaotrinh-tk-100123171205-phpapp02
Excelwww slide-giaotrinh-tk-100123171205-phpapp02Excelwww slide-giaotrinh-tk-100123171205-phpapp02
Excelwww slide-giaotrinh-tk-100123171205-phpapp02
 
Bai giang soan thao van ban day du
Bai giang soan thao van ban day duBai giang soan thao van ban day du
Bai giang soan thao van ban day du
 
Slide word
Slide wordSlide word
Slide word
 

Último

TÀI LIỆU BỒI DƯỠNG HỌC SINH GIỎI KỸ NĂNG VIẾT ĐOẠN VĂN NGHỊ LUẬN XÃ HỘI 200 C...
TÀI LIỆU BỒI DƯỠNG HỌC SINH GIỎI KỸ NĂNG VIẾT ĐOẠN VĂN NGHỊ LUẬN XÃ HỘI 200 C...TÀI LIỆU BỒI DƯỠNG HỌC SINH GIỎI KỸ NĂNG VIẾT ĐOẠN VĂN NGHỊ LUẬN XÃ HỘI 200 C...
TÀI LIỆU BỒI DƯỠNG HỌC SINH GIỎI KỸ NĂNG VIẾT ĐOẠN VĂN NGHỊ LUẬN XÃ HỘI 200 C...Nguyen Thanh Tu Collection
 
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...Nguyen Thanh Tu Collection
 
Chuong trinh dao tao Su pham Khoa hoc tu nhien, ma nganh - 7140247.pdf
Chuong trinh dao tao Su pham Khoa hoc tu nhien, ma nganh - 7140247.pdfChuong trinh dao tao Su pham Khoa hoc tu nhien, ma nganh - 7140247.pdf
Chuong trinh dao tao Su pham Khoa hoc tu nhien, ma nganh - 7140247.pdfhoangtuansinh1
 
PHƯƠNG THỨC VẬN TẢI ĐƯỜNG SẮT TRONG VẬN TẢI
PHƯƠNG THỨC VẬN TẢI ĐƯỜNG SẮT TRONG VẬN TẢIPHƯƠNG THỨC VẬN TẢI ĐƯỜNG SẮT TRONG VẬN TẢI
PHƯƠNG THỨC VẬN TẢI ĐƯỜNG SẮT TRONG VẬN TẢImyvh40253
 
Đề cương môn giải phẫu......................
Đề cương môn giải phẫu......................Đề cương môn giải phẫu......................
Đề cương môn giải phẫu......................TrnHoa46
 
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...Nguyen Thanh Tu Collection
 
GIÁO TRÌNH KHỐI NGUỒN CÁC LOẠI - ĐIỆN LẠNH BÁCH KHOA HÀ NỘI
GIÁO TRÌNH  KHỐI NGUỒN CÁC LOẠI - ĐIỆN LẠNH BÁCH KHOA HÀ NỘIGIÁO TRÌNH  KHỐI NGUỒN CÁC LOẠI - ĐIỆN LẠNH BÁCH KHOA HÀ NỘI
GIÁO TRÌNH KHỐI NGUỒN CÁC LOẠI - ĐIỆN LẠNH BÁCH KHOA HÀ NỘIĐiện Lạnh Bách Khoa Hà Nội
 
Kiểm tra cuối học kì 1 sinh học 12 đề tham khảo
Kiểm tra cuối học kì 1 sinh học 12 đề tham khảoKiểm tra cuối học kì 1 sinh học 12 đề tham khảo
Kiểm tra cuối học kì 1 sinh học 12 đề tham khảohoanhv296
 
TỔNG HỢP ĐỀ THI CHÍNH THỨC KỲ THI TUYỂN SINH VÀO LỚP 10 THPT MÔN NGỮ VĂN NĂM ...
TỔNG HỢP ĐỀ THI CHÍNH THỨC KỲ THI TUYỂN SINH VÀO LỚP 10 THPT MÔN NGỮ VĂN NĂM ...TỔNG HỢP ĐỀ THI CHÍNH THỨC KỲ THI TUYỂN SINH VÀO LỚP 10 THPT MÔN NGỮ VĂN NĂM ...
TỔNG HỢP ĐỀ THI CHÍNH THỨC KỲ THI TUYỂN SINH VÀO LỚP 10 THPT MÔN NGỮ VĂN NĂM ...Nguyen Thanh Tu Collection
 
3-BẢNG MÃ LỖI CỦA CÁC HÃNG ĐIỀU HÒA .pdf - ĐIỆN LẠNH BÁCH KHOA HÀ NỘI
3-BẢNG MÃ LỖI CỦA CÁC HÃNG ĐIỀU HÒA .pdf - ĐIỆN LẠNH BÁCH KHOA HÀ NỘI3-BẢNG MÃ LỖI CỦA CÁC HÃNG ĐIỀU HÒA .pdf - ĐIỆN LẠNH BÁCH KHOA HÀ NỘI
3-BẢNG MÃ LỖI CỦA CÁC HÃNG ĐIỀU HÒA .pdf - ĐIỆN LẠNH BÁCH KHOA HÀ NỘIĐiện Lạnh Bách Khoa Hà Nội
 
sách sinh học đại cương - Textbook.pdf
sách sinh học đại cương   -   Textbook.pdfsách sinh học đại cương   -   Textbook.pdf
sách sinh học đại cương - Textbook.pdfTrnHoa46
 
GNHH và KBHQ - giao nhận hàng hoá và khai báo hải quan
GNHH và KBHQ - giao nhận hàng hoá và khai báo hải quanGNHH và KBHQ - giao nhận hàng hoá và khai báo hải quan
GNHH và KBHQ - giao nhận hàng hoá và khai báo hải quanmyvh40253
 
Giới thiệu Dự án Sản Phụ Khoa - Y Học Cộng Đồng
Giới thiệu Dự án Sản Phụ Khoa - Y Học Cộng ĐồngGiới thiệu Dự án Sản Phụ Khoa - Y Học Cộng Đồng
Giới thiệu Dự án Sản Phụ Khoa - Y Học Cộng ĐồngYhoccongdong.com
 
1.DOANNGOCPHUONGTHAO-APDUNGSTEMTHIETKEBTHHHGIUPHSHOCHIEUQUA (1).docx
1.DOANNGOCPHUONGTHAO-APDUNGSTEMTHIETKEBTHHHGIUPHSHOCHIEUQUA (1).docx1.DOANNGOCPHUONGTHAO-APDUNGSTEMTHIETKEBTHHHGIUPHSHOCHIEUQUA (1).docx
1.DOANNGOCPHUONGTHAO-APDUNGSTEMTHIETKEBTHHHGIUPHSHOCHIEUQUA (1).docxTHAO316680
 
GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI DẠY BUỔI 2) - TIẾNG ANH 7 GLOBAL SUCCESS (2 CỘ...
GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI DẠY BUỔI 2) - TIẾNG ANH 7 GLOBAL SUCCESS (2 CỘ...GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI DẠY BUỔI 2) - TIẾNG ANH 7 GLOBAL SUCCESS (2 CỘ...
GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI DẠY BUỔI 2) - TIẾNG ANH 7 GLOBAL SUCCESS (2 CỘ...Nguyen Thanh Tu Collection
 
Các điều kiện bảo hiểm trong bảo hiểm hàng hoá
Các điều kiện bảo hiểm trong bảo hiểm hàng hoáCác điều kiện bảo hiểm trong bảo hiểm hàng hoá
Các điều kiện bảo hiểm trong bảo hiểm hàng hoámyvh40253
 
ĐỀ CHÍNH THỨC KỲ THI TUYỂN SINH VÀO LỚP 10 THPT CÁC TỈNH THÀNH NĂM HỌC 2020 –...
ĐỀ CHÍNH THỨC KỲ THI TUYỂN SINH VÀO LỚP 10 THPT CÁC TỈNH THÀNH NĂM HỌC 2020 –...ĐỀ CHÍNH THỨC KỲ THI TUYỂN SINH VÀO LỚP 10 THPT CÁC TỈNH THÀNH NĂM HỌC 2020 –...
ĐỀ CHÍNH THỨC KỲ THI TUYỂN SINH VÀO LỚP 10 THPT CÁC TỈNH THÀNH NĂM HỌC 2020 –...Nguyen Thanh Tu Collection
 
BỘ LUYỆN NGHE VÀO 10 TIẾNG ANH DẠNG TRẮC NGHIỆM 4 CÂU TRẢ LỜI - CÓ FILE NGHE.pdf
BỘ LUYỆN NGHE VÀO 10 TIẾNG ANH DẠNG TRẮC NGHIỆM 4 CÂU TRẢ LỜI - CÓ FILE NGHE.pdfBỘ LUYỆN NGHE VÀO 10 TIẾNG ANH DẠNG TRẮC NGHIỆM 4 CÂU TRẢ LỜI - CÓ FILE NGHE.pdf
BỘ LUYỆN NGHE VÀO 10 TIẾNG ANH DẠNG TRẮC NGHIỆM 4 CÂU TRẢ LỜI - CÓ FILE NGHE.pdfNguyen Thanh Tu Collection
 
Nhiễm khuẩn tiêu hóa-Tiêu chảy do vi khuẩn.pptx
Nhiễm khuẩn tiêu hóa-Tiêu chảy do vi khuẩn.pptxNhiễm khuẩn tiêu hóa-Tiêu chảy do vi khuẩn.pptx
Nhiễm khuẩn tiêu hóa-Tiêu chảy do vi khuẩn.pptxhoangvubaongoc112011
 

Último (20)

TÀI LIỆU BỒI DƯỠNG HỌC SINH GIỎI KỸ NĂNG VIẾT ĐOẠN VĂN NGHỊ LUẬN XÃ HỘI 200 C...
TÀI LIỆU BỒI DƯỠNG HỌC SINH GIỎI KỸ NĂNG VIẾT ĐOẠN VĂN NGHỊ LUẬN XÃ HỘI 200 C...TÀI LIỆU BỒI DƯỠNG HỌC SINH GIỎI KỸ NĂNG VIẾT ĐOẠN VĂN NGHỊ LUẬN XÃ HỘI 200 C...
TÀI LIỆU BỒI DƯỠNG HỌC SINH GIỎI KỸ NĂNG VIẾT ĐOẠN VĂN NGHỊ LUẬN XÃ HỘI 200 C...
 
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
 
Chuong trinh dao tao Su pham Khoa hoc tu nhien, ma nganh - 7140247.pdf
Chuong trinh dao tao Su pham Khoa hoc tu nhien, ma nganh - 7140247.pdfChuong trinh dao tao Su pham Khoa hoc tu nhien, ma nganh - 7140247.pdf
Chuong trinh dao tao Su pham Khoa hoc tu nhien, ma nganh - 7140247.pdf
 
PHƯƠNG THỨC VẬN TẢI ĐƯỜNG SẮT TRONG VẬN TẢI
PHƯƠNG THỨC VẬN TẢI ĐƯỜNG SẮT TRONG VẬN TẢIPHƯƠNG THỨC VẬN TẢI ĐƯỜNG SẮT TRONG VẬN TẢI
PHƯƠNG THỨC VẬN TẢI ĐƯỜNG SẮT TRONG VẬN TẢI
 
Đề cương môn giải phẫu......................
Đề cương môn giải phẫu......................Đề cương môn giải phẫu......................
Đề cương môn giải phẫu......................
 
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
 
GIÁO TRÌNH KHỐI NGUỒN CÁC LOẠI - ĐIỆN LẠNH BÁCH KHOA HÀ NỘI
GIÁO TRÌNH  KHỐI NGUỒN CÁC LOẠI - ĐIỆN LẠNH BÁCH KHOA HÀ NỘIGIÁO TRÌNH  KHỐI NGUỒN CÁC LOẠI - ĐIỆN LẠNH BÁCH KHOA HÀ NỘI
GIÁO TRÌNH KHỐI NGUỒN CÁC LOẠI - ĐIỆN LẠNH BÁCH KHOA HÀ NỘI
 
Kiểm tra cuối học kì 1 sinh học 12 đề tham khảo
Kiểm tra cuối học kì 1 sinh học 12 đề tham khảoKiểm tra cuối học kì 1 sinh học 12 đề tham khảo
Kiểm tra cuối học kì 1 sinh học 12 đề tham khảo
 
TỔNG HỢP ĐỀ THI CHÍNH THỨC KỲ THI TUYỂN SINH VÀO LỚP 10 THPT MÔN NGỮ VĂN NĂM ...
TỔNG HỢP ĐỀ THI CHÍNH THỨC KỲ THI TUYỂN SINH VÀO LỚP 10 THPT MÔN NGỮ VĂN NĂM ...TỔNG HỢP ĐỀ THI CHÍNH THỨC KỲ THI TUYỂN SINH VÀO LỚP 10 THPT MÔN NGỮ VĂN NĂM ...
TỔNG HỢP ĐỀ THI CHÍNH THỨC KỲ THI TUYỂN SINH VÀO LỚP 10 THPT MÔN NGỮ VĂN NĂM ...
 
1 - MÃ LỖI SỬA CHỮA BOARD MẠCH BẾP TỪ.pdf
1 - MÃ LỖI SỬA CHỮA BOARD MẠCH BẾP TỪ.pdf1 - MÃ LỖI SỬA CHỮA BOARD MẠCH BẾP TỪ.pdf
1 - MÃ LỖI SỬA CHỮA BOARD MẠCH BẾP TỪ.pdf
 
3-BẢNG MÃ LỖI CỦA CÁC HÃNG ĐIỀU HÒA .pdf - ĐIỆN LẠNH BÁCH KHOA HÀ NỘI
3-BẢNG MÃ LỖI CỦA CÁC HÃNG ĐIỀU HÒA .pdf - ĐIỆN LẠNH BÁCH KHOA HÀ NỘI3-BẢNG MÃ LỖI CỦA CÁC HÃNG ĐIỀU HÒA .pdf - ĐIỆN LẠNH BÁCH KHOA HÀ NỘI
3-BẢNG MÃ LỖI CỦA CÁC HÃNG ĐIỀU HÒA .pdf - ĐIỆN LẠNH BÁCH KHOA HÀ NỘI
 
sách sinh học đại cương - Textbook.pdf
sách sinh học đại cương   -   Textbook.pdfsách sinh học đại cương   -   Textbook.pdf
sách sinh học đại cương - Textbook.pdf
 
GNHH và KBHQ - giao nhận hàng hoá và khai báo hải quan
GNHH và KBHQ - giao nhận hàng hoá và khai báo hải quanGNHH và KBHQ - giao nhận hàng hoá và khai báo hải quan
GNHH và KBHQ - giao nhận hàng hoá và khai báo hải quan
 
Giới thiệu Dự án Sản Phụ Khoa - Y Học Cộng Đồng
Giới thiệu Dự án Sản Phụ Khoa - Y Học Cộng ĐồngGiới thiệu Dự án Sản Phụ Khoa - Y Học Cộng Đồng
Giới thiệu Dự án Sản Phụ Khoa - Y Học Cộng Đồng
 
1.DOANNGOCPHUONGTHAO-APDUNGSTEMTHIETKEBTHHHGIUPHSHOCHIEUQUA (1).docx
1.DOANNGOCPHUONGTHAO-APDUNGSTEMTHIETKEBTHHHGIUPHSHOCHIEUQUA (1).docx1.DOANNGOCPHUONGTHAO-APDUNGSTEMTHIETKEBTHHHGIUPHSHOCHIEUQUA (1).docx
1.DOANNGOCPHUONGTHAO-APDUNGSTEMTHIETKEBTHHHGIUPHSHOCHIEUQUA (1).docx
 
GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI DẠY BUỔI 2) - TIẾNG ANH 7 GLOBAL SUCCESS (2 CỘ...
GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI DẠY BUỔI 2) - TIẾNG ANH 7 GLOBAL SUCCESS (2 CỘ...GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI DẠY BUỔI 2) - TIẾNG ANH 7 GLOBAL SUCCESS (2 CỘ...
GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI DẠY BUỔI 2) - TIẾNG ANH 7 GLOBAL SUCCESS (2 CỘ...
 
Các điều kiện bảo hiểm trong bảo hiểm hàng hoá
Các điều kiện bảo hiểm trong bảo hiểm hàng hoáCác điều kiện bảo hiểm trong bảo hiểm hàng hoá
Các điều kiện bảo hiểm trong bảo hiểm hàng hoá
 
ĐỀ CHÍNH THỨC KỲ THI TUYỂN SINH VÀO LỚP 10 THPT CÁC TỈNH THÀNH NĂM HỌC 2020 –...
ĐỀ CHÍNH THỨC KỲ THI TUYỂN SINH VÀO LỚP 10 THPT CÁC TỈNH THÀNH NĂM HỌC 2020 –...ĐỀ CHÍNH THỨC KỲ THI TUYỂN SINH VÀO LỚP 10 THPT CÁC TỈNH THÀNH NĂM HỌC 2020 –...
ĐỀ CHÍNH THỨC KỲ THI TUYỂN SINH VÀO LỚP 10 THPT CÁC TỈNH THÀNH NĂM HỌC 2020 –...
 
BỘ LUYỆN NGHE VÀO 10 TIẾNG ANH DẠNG TRẮC NGHIỆM 4 CÂU TRẢ LỜI - CÓ FILE NGHE.pdf
BỘ LUYỆN NGHE VÀO 10 TIẾNG ANH DẠNG TRẮC NGHIỆM 4 CÂU TRẢ LỜI - CÓ FILE NGHE.pdfBỘ LUYỆN NGHE VÀO 10 TIẾNG ANH DẠNG TRẮC NGHIỆM 4 CÂU TRẢ LỜI - CÓ FILE NGHE.pdf
BỘ LUYỆN NGHE VÀO 10 TIẾNG ANH DẠNG TRẮC NGHIỆM 4 CÂU TRẢ LỜI - CÓ FILE NGHE.pdf
 
Nhiễm khuẩn tiêu hóa-Tiêu chảy do vi khuẩn.pptx
Nhiễm khuẩn tiêu hóa-Tiêu chảy do vi khuẩn.pptxNhiễm khuẩn tiêu hóa-Tiêu chảy do vi khuẩn.pptx
Nhiễm khuẩn tiêu hóa-Tiêu chảy do vi khuẩn.pptx
 

Gt tin hocungdung_access

  • 1. TRƯỜNG ĐẠI HỌC NHA TRANG KHOA CÔNG NGHỆ THÔNG TIN BỘ MÔN HỆ THỐNG THÔNG TIN (Lưu hành nội bộ) Nha Trang, tháng 04 năm 2011 BÀI GIẢNG TIN HỌC ỨNG DỤNG DÀNH CHO SINH VIÊN CÁC NGÀNH KINH TẾ
  • 2.
  • 3. TRƯỜNG ĐẠI HỌC NHA TRANG KHOA CÔNG NGHỆ THÔNG TIN BỘ MÔN HỆ THỐNG THÔNG TIN (Lưu hành nội bộ) BÀI GIẢNG TIN HỌC ỨNG DỤNG DÀNH CHO SINH VIÊN CÁC NGÀNH KINH TẾ
  • 4.
  • 5. i 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 ..............................................................................................
  • 6. ii 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ố.................................................................................................
  • 7. iii 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 ............................................................................................................
  • 8. iv
  • 9. v 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
  • 10. vi
  • 11. Phần I NHẬP MÔN CƠ SỞ DỮ LIỆU
  • 12. 2
  • 13. 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.
  • 14.  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. 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. Hệ Quản trị Cơ sở dữ liệu Người dùng Chương trình ứng dụng Phần mềm quản lý lưu trữ dữ liệu Phần mềm xử lý thao tác trên dữ liệu Cấu trúc cơ sở dữ Cơ sở dữ liệu
  • 15. 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- . KhachHang HoTenKH DiaChi Nguyễn Trang 12 Hồng Bàng Lê Cường 60 Trần Phú Mai Hòa 22 Bạch Đằng MatHang MaMH TenMH DonViTinh DonGia S03 Sữa chua Vinamilk Lốc 4.000 B02 Bánh Choco-Pie Hộp 15.000 K01 Kem Mote-Rosa Ký 20.000 BanHang STT NgayBan HoTenKH MaMH SoLuong 1 12/2/2010 Nguyễn Trang S03 20 2 12/2/2010 Lê Cường B02 30 3 17/2/2010 Mai Nguyễn K01 100 4 25/3/2010 Nguyễn Trang K01 10
  • 16. 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- .
  • 17. 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 Lê Cường 60 Trần Phú C003 Mai Nguyễn 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 Kiểu dữ liệu Ví dụ HoTen Text ‘Nguyễn Thị Trang’ DiaChi Text ‘120 Ngô Gia Tự’ NgaySinh datetime 12/10/1 0 DonGia number 300.000 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)
  • 18. 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’ , 7/7/ 990 , 400 } t3 = { ‘5306’ , ‘Nga’ , ‘777’ , 22/3/ 992 , 200 } t4 = { ‘5308’ , ‘Trang’ , ‘ 23’ , 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 : 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 sv MaSV HoTen SoCMND NgaySinh DiemTOEIC 5202 Cường 333 21/5/1 1 500 5207 Sơn 456 17/7/1 0 400 5306 Nga 777 22/3/1 2 200 5308 Trang 123 12/7/1 0 700 thuộc tínhtên quan hệ bộ
  • 19. (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 } Hình I-5 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. Khoa MaKhoa TenKhoa SinhVien MaSV HoSV TenSV NgaySinh GioiTinh HocBong MaKH MonHoc MaMH TenMH SoTinChi LopHoc MaLop MaMH HocKy NamHoc GiaoVien KetQua MaSV MaLop Diem
  • 20. Hình I- . Lược đồ cơ sở dữ liệu quan hệ DaiHoc 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 Khoa MaKhoa TenKhoa CN Công nghệ Thông tin KT Kinh tế SinhVien MaSV HoSV TenSV NgaySinh GioiTinh HocBong MaKH 5202 Lê Cường 21/5/1 1 Nam 200 KT 5207 Nguyễn Sơn 17/7/1 0 Nữ 800 KT 520 Ngô Hòa 16/8/1 0 Nam 200 CN 5306 Huỳnh Nga 22/3/1 2 Nữ 400 CN 5308 Phạm Trang 12/7/1 0 Nữ 800 CN MonHoc 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 LopHoc MaLop MaMH HocKy NamHoc GiaoVien 01 306 1 2010 Tuấn 02 403 1 2010 Nga 03 306 2 2011 Sơn 04 207 1 2010 Nam KetQua MaSV MaLop Diem 5202 01 4 5202 02 7 5202 03 8 5202 04 5308 01 3 5308 02 5308 03
  • 21. 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:
  • 22. 2  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 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 Khoa MaKhoa TenKhoa SinhVien MaSV HoSV TenSV NgaySinh GioiTinh HocBong MaKH MonHoc MaMH TenMH SoTinChi LopHoc MaLop MaMH HocKy NamHoc GiaoVien KetQua MaSV MaLop Diem Khoa MaKhoa TenKhoa CN Công nghệ Thông tin KT Kinh tế SinhVien MaSV HoSV TenSV NgaySinh GioiTinh HocBong MaKH 5202 Lê Cường 21/5/1 1 Nam 200 KT 5207 Nguyễn Sơn 17/7/1 0 Nữ 800 KT 520 Ngô Hòa 16/8/1 0 Nam 200 CN 5306 Huỳnh Nga 22/3/1 2 Nữ 400 CN 5308 Phạm Trang 12/7/1 0 Nữ 800 CN
  • 23. 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. 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ụ : Đâ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ệ. 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 Ho Ten NgaySinh GioiTinh HocBong MaKH Khoa MaKhoa TenKhoa CN Công nghệ Thông tin KT Kinh tế SinhVien MaSV HoSV TenSV NgaySinh GioiTinh HocBong MaKH 5202 Lê Cường 21/5/1 1 Nam 200 KT 5207 Nguyễn Sơn 17/7/1 0 Nữ 800 KT 520 Ngô Hòa 16/8/1 0 Nam 200 NN 5306 Huỳnh Nga 22/3/1 2 Nữ 400 NN 5308 Phạm Trang 12/7/1 0 Nữ 800 CN Khoa MaKhoa TenKhoa CN Công nghệ Thông tin KT Kinh tế NN Ngoại ngữ SinhVien MaSV HoSV TenSV NgaySinh GioiTinh HocBong MaKH 5202 Lê Cường 21/5/1 1 Nam 200 KT 5207 Nguyễn Sơn 17/7/1 0 Nữ 800 KT 520 Ngô Hòa 16/8/1 0 Nam 200 NN 5306 Huỳnh Nga 22/3/1 2 Nữ 400 NN 5308 Phạm Trang 12/7/1 0 Nam 800 CN
  • 24. 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- . Khoa MaKhoa TenKhoa SinhVien MaSV HoSV TenSV NgaySinh GioiTinh HocBong MaKH MonHoc MaMH TenMH SoTinChi LopHoc MaLop MaMH HocKy NamHoc GiaoVien KetQua MaSV MaLop Diem
  • 25. 2.4.1. Thêm (Insert, Append) 1. 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. 2. 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. 3. 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. 4. 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. Xóa môn học có TenMH là ‘Quản trị học’  Xóa thành công. 2. 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). 2.4.3. Sửa (Update) 1. 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. 2. 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’. MonHoc 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 LopHoc MaLop MaMH HocKy NamHoc GiaoVien 01 306 1 2010 Tuấn 02 403 1 2010 Nga 03 306 2 2011 Sơn 04 207 1 2010 Nam cascade delete
  • 26. 3. Sửa MaKhoa của khoa ‘Công nghệ Thông tin’ thành ‘IT’  Thao tác sửa này vi phạm ràng buộc toàn vẹn khóa ngoại vì trong quan hệ SinhVien có 3 có sinh viên có MaKH là ‘CN’. Thao tác này bị từ chối. Một phương án xử lý khác để tránh vi phạm ràng buộc toàn vẹn là sửa luôn MaKH của các sinh viên này thành ‘IT’ (CASCADE UPDATE) 2.5. Bài tập 1) Một công ty du lịch cần tổ chức một cơ sở dữ liệu nhằm quản lý hoạt động kinh doanh du lịch của công ty. Các thông tin cần quản lý như sau:  Danh sách các khách hàng của công ty  Danh sách các điểm du lịch công ty có mở tour, số ngày đến điểm du lịch đó, và đơn giá cho một người.  Danh sách các tour du lịch cụ thể, mỗi tour có một điểm đến và xuất phát vào một ngày nào đó.  Khách hàng nào đăng ký tour du lịch nào, với số lượng bao nhiêu. Yêu cầu: a) Hãy định nghĩa lược đồ cơ sở dữ liệu quan hệ cho mô hình trên và thiết lập các ràng buộc toàn vẹn về khóa chính và khóa ngoại tương tự như trong Hình I- . b) Tạo một số dữ liệu mẫu cho cơ sở dữ liệu trên như trong Hình I-5 Khoa MaKhoa TenKhoa IT Công nghệ Thông tin KT Kinh tế SinhVien MaSV HoSV TenSV NgaySinh GioiTinh HocBong MaKH 5202 Lê Cường 21/5/1 1 Nam 200 KT 5207 Nguyễn Sơn 17/7/1 0 Nữ 800 KT 520 Ngô Hòa 16/8/1 0 Nam 200 IT 5306 Huỳnh Nga 22/3/1 2 Nữ 400 IT 5308 Phạm Trang 12/7/1 0 Nữ 800 IT cascade update
  • 27. 2) Xét cơ sở dữ liệu BanHang như sau: a) Hãy thiết lập các ràng buộc toàn vẹn về khóa chính và khóa ngoại. b) Cho biết các thao tác sau có vi phạm ràng buộc toàn vẹn hay không, nêu lý do:  Thêm bộ { ‘A00 ’, ‘Sơn Hà’, ’33 Hồng Lĩnh’ } vào quan hệ KhachHang.  Thêm bộ { ‘S02, ‘Sữa chua Yomost’, ’Lốc’, 4500 } vào quan hệ MatHang.  Thêm bộ { ‘005’, ‘ 2/2/20 0’, ‘A004’ } vào quan hệ HoaDon  Xóa khách hàng có tên ‘Lê Cường’ trong quan hệ KhachHang  Xóa mặt hàng có tên ‘Kem Monte-Rosa’ trong quan hệ MatHang  Xóa hóa đơn ‘ ’ trong quan hệ HoaDon (có CASCADE DELETE)  Xóa mặt hàng bán ‘S ’ của hóa đơn ‘ 2’ trong quan hệ MatHangBan.  Trong quan hệ KhachHang, sửa MaKH ‘A ’ thành ‘A 2’  Trong quan hệ KhachHang, sửa MaKH ‘B 2’ thành ‘B ’ (có CASCADE UPDATE)  Trong quan hệ MatHang sửa đơn giá của mặt hàng ‘S ’ thành .  Trong quan hệ HoaDon, sửa MaKH của hóa đơn thành ‘D ’ KhachHang MaKH HoTen DiaChi A001 Nguyễn Trang 12 Hồng Bàng B002 Lê Cường 60 Trần Phú C003 Mai Nguyễn 22 Bạch Đằng MatHang MaMH TenMH DonViTinh DonGia S03 Sữa chua Vinamilk Lốc 4.000 B02 Bánh Choco-Pie Hộp 15.000 K01 Kem Monte-Rosa Ký 20.000 HoaDon MaHD NgayHD MaKH 001 12/2/2010 A001 002 12/2/2010 B002 003 20/4/2011 B002 004 25/7/2011 A001 MatHangBan MaHD MaMH SoLuong 001 S03 2 001 B02 5 002 K01 6 002 S03 8 003 S03 10 004 B02 7
  • 28.
  • 29. CHƯƠNG . ĐẠI SỐ QUAN HỆ Các thao tác trên cơ sở dữ liệu có thể được chia thành hai loại. Loại thứ nhất là cập nhật dữ liệu vào các quan hệ, đó là các thao tác thêm, xóa, sửa đã được trình bày trong chương 2. Loại thứ hai là truy xuất dữ liệu từ các quan hệ, hay còn gọi là truy vấn (query). Sau đây là một ví dụ về truy vấn trong cơ sở dữ liệu DaiHoc: Hãy cho biết bảng điểm (gồm tên các môn học và điểm số tương ứng) của sinh viên có mã số ‘ ’. Kết quả của truy vấn này cũng có dạng quan hệ như sau: MaSV HoTen MaMH TenMH SoTinChi Diem 5308 Phạm Trang 306 Tin học cơ sở 2 5308 Phạm Trang 403 Kế toán tài chính 3 Mô hình dữ liệu quan hệ định nghĩa các phép toán dùng để truy vấn. Tập hợp các phép toán này được gọi là đại số quan hệ. Một dãy các phép toán tạo thành một biểu thức đại số quan hệ. Trước khi đi vào các phép toán đại số quan hệ, phần 3.1 trình bày lại một số khái niệm về các biểu thức cơ bản. 3.1. Biểu thức cơ bản Có 4 loại biểu thức cơ bản 1) Biểu thức số học: Tương tự như biểu thức số học thông thường, các toán hạng của biểu thức có kiểu số. Ví dụ : Biểu thức Kết quả HocBong 100 600 (nếu HocBong 500 Sqrt(x) 5 (nếu x=25) SoLuong*DonGia 100000 (nếu SoLuong = 5, DonGia=20000) 2) Biểu thức chuỗi: Là biểu thức mà các toán hạng thuộc kiểu chuỗi. Ví dụ : Biểu thức Kết quả 'Nguyen' + 'Son' 'NguyenSon' Ho + Ten 'LeMai' (nếu Ho='Le' và Ten='Mai') Ho + ' ' + Ten 'Le Mai' Len(Ten) 3 (nếu Ten = 'Mai') 5 (nếu Ten = 'Nguyen') Left(Ten, 2) 'Ma' 3) Biểu thức ngày tháng: Biểu thức ngày tháng thường liên quan đến kiểu dữ liệu ngày tháng và kiểu số. Ví dụ: Biểu thức Kết quả Month(#8/12/2011#) 8 Day(#5/2/2011#) 2 Year(Now()) 2011 Year(Now()) – Year(NgaySinh) Tính số tuổi của sinh viên
  • 30. 2 4) Biểu thức logic: Biểu thức logic là một biểu thức mà kết quả chỉ có hai giá trị là đúng (true) hoặc sai (false). Ví dụ: Biểu thức Kết quả 8 5 Đúng 12 4 15 Sai 'Nam' < 'Nga' Đúng HocBong >= 200 Đúng nếu HocBong = 300, 500 Sai (nếu HocBong = 100) Ten like 'N*' Đúng nếu TenSV bắt đầu bằng chữ N như: Nam, Nga, Nhân… NgaySinh < 1/2/1 1 Đúng, nếu sinh viên sinh trước ngày 2/1/1991 Ngoài các phép so sánh, chúng ta còn có các phép AND, OR, XOR. Mục đích là để kết hợp hai biểu thức logic thành một biểu thức logic khác theo bảng bên dưới : a b a AND b a OR b NOT a đúng đúng đúng đúng sai đúng sai Sai đúng sai sai đúng sai đúng đúng sai sai sai sai đúng Ví dụ : Biểu thức Kết quả Year(NgaySinh)= 1992 AND HocBong> 0 Sinh viên sinh năm 1 2 và học bổng trên 500 (HocBong>=200) AND (HocBong<=500) Có học bổng từ 200 đến 500 (Ten= 'Trang') OR (Ten= 'Lan') Sinh viên tên Trang hoặc tên Lan 3.2. Phép chọn (SELECT) Phép chọn dùng để lấy ra một số bộ từ một quan hệ mà các bộ này thỏa mãn một điều kiện chọn nào đó. Cú pháp: (điều-kiện-chọn) (TenQuanHe) Điều-kiện-chọn là một biểu thức logic. Điều kiện chọn phải có giá trị là true đối với các bộ được chọn ra từ quan hệ. Ví dụ 1: Cho biết các môn học có số tín chỉ từ 3 trở lên. 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 MaMH TenMH SoTinChi 207 Cấu trúc dữ liệu 3 403 Kế toán tài chính 3 (SoTinChi >=3) (MonHoc)
  • 31. 2 Ví dụ 2: Liệt kê các sinh viên sinh năm và có học bổng trên (Year(NgaySinh) = 1990 AND DiemTOEIC > 300) (SinhVien) MaSV HoSV TenSV NgaySinh GioiTinh HocBong MaKH 5202 Lê Cường 21/5/1 1 Nam 200 KT 5207 Nguyễn Sơn 17/7/1 0 Nữ 800 KT 520 Ngô Hòa 16/8/1 0 Nam 200 CN 5306 Huỳnh Nga 22/3/1 2 Nữ 400 CN 5308 Phạm Trang 12/7/1 0 Nữ 800 CN 3.3. Phép chiếu (PROJECT) Phép chiếu dùng để lấy ra một số thuộc tính của các bộ trong một quan hệ. Nếu quan niệm một quan hệ là một bảng gồm nhiều cột, phép chọn dùng để chọn ra một số dòng thì phép chiếu chọn ra một số cột. Cú pháp:  (danh-sách-thuộc-tính) (TenQuanHe) Ví dụ : Liệt kê các sinh viên với MaSV, HoSV, TenSV Phép chiếu cũng có thể tạo ra một thuộc tính mới cho quan hệ kết quả: Ví dụ 4: MaSV, HoTen: HoSV+ ' ' + TenSV(SinhVien) MaSV HoTen 5202 Lê Cường 5207 Nguyễn Sơn 520 Ngô Hòa 5306 Huỳnh Nga 5308 Phạm Trang MaSV HoSV TenSV NgaySinh GioiTinh HocBong MaKH 5202 Lê Cường 21/5/1 1 Nam 200 KT 5207 Nguyễn Sơn 17/7/1 0 Nữ 800 KT 520 Ngô Hòa 16/8/1 0 Nam 200 CN 5306 Huỳnh Nga 22/3/1 2 Nữ 400 CN 5308 Phạm Trang 12/7/1 0 Nữ 800 CN MaSV HoSV TenSV 5202 Lê Cường 5207 Nguyễn Sơn 520 Ngô Hòa 5306 Huỳnh Nga 5308 Phạm Trang MaSV, HoSV, TenSV(SinhVien)
  • 32. 22 Sau đây là một ví dụ minh họa phép chiếu kết hợp với phép chọn: Ví dụ : Liệt kê các sinh viên sinh năm và có điểm HocBong trên , chỉ liệt kê các cột MaSV, Ho, Ten, NgaySinh MaSV, HoSV, TenSV, NgaySinh [ Year(NgaySinh)=1990 AND HocBong > 300 (SinhVien)] MaSV HoSV TenSV NgaySinh 5207 Nguyễn Sơn 17/7/1 0 5308 Phạm Trang 12/7/1 0 Tuy nhiên nếu thực hiện phép chiếu trước sẽ gây ra lỗi vì sau khi thực hiện phép chiếu thì không còn thuộc tính HocBong để thực hiện phép chọn. Biểu thức sau đây là biểu thức sai: Year(NgaySinh) = 1990 AND HocBong > 300[MaSV, HoSV, TenSV, NgaySinh (SinhVien)] 3.4. Phép tích Descartes (CARTESIAN PRODUCT) Trong lý thuyết tập hợp, phép tích Descartes dùng để nhân hai tập hợp với nhau. Ví dụ: cho tập A = { a , a }, tập B = { b , b , b } thì tích Descartes của A và B là: A × B = { a b , a b , a b , a b , a b , a b } Tập kết quả có 6 phần tử, bằng số lượng của tập A nhân số lượng tập B. Từ đó phép tích Descartes cho hai quan hệ được định nghĩa như sau: Cho hai quan hệ r và s phát sinh từ hai lượt đồ R(A , A ,…, An) và S(B , B , …, Bm) trong đó r có nR bộ và s có nS bộ. Tích Descartes của r và s là một quan hệ có lượt đồ Q(A , A ,…, An, B , B , …, Bm). Quan hệ này có nR * nS bộ. Những bộ này hình thành bằng cách kết hợp một bộ trong r và một bộ trong s.
  • 33. 2 Ví dụ: SinhVien × Khoa Hình I- . Phép tích Descartes Bản thân phép tích Descartes ít có ý nghĩa thực tế. Tuy nhiên phép tích Descartes là cơ sở cho phép kết nối được trình bày trong phần tiếp theo. 3.5. Phép kết nối bằng (EQUI JOIN) Ví dụ Xét truy vấn sau đây: hãy cho biết tên khoa ứng với từng sinh viên. Truy vấn trên có thể thực hiện được dùng phép tích Descartes, sau đó áp dụng thêm một một phép chọn dựa vào điều kiện MaKH = MaKhoa. MaSV HoSV TenSV NgaySinh GioiTinh HocBong MaKH 5202 Lê Cường 21/5/1 1 Nam 200 KT 5207 Nguyễn Sơn 17/7/1 0 Nữ 800 KT 520 Ngô Hòa 16/8/1 0 Nam 200 CN 5306 Huỳnh Nga 22/3/1 2 Nữ 400 CN 5308 Phạm Trang 12/7/1 0 Nữ 800 CN MaKhoa TenKhoa CN Công nghệ Thông tin KT Kinh tế MaSV HoSV TenSV NgaySinh GioiTinh HocBong MaKH MaKhoa TenKhoa 5202 Lê Cường 21/5/1 1 Nam 200 KT CN Công nghệ Thông tin 5202 Lê Cường 21/5/1 1 Nam 200 KT KT Kinh tế 5207 Nguyễn Sơn 17/7/1 0 Nữ 800 KT CN Công nghệ Thông tin 5207 Nguyễn Sơn 17/7/1 0 Nữ 800 KT KT Kinh tế 520 Ngô Hòa 16/8/1 0 Nam 200 CN CN Công nghệ Thông tin 520 Ngô Hòa 16/8/1 0 Nam 200 CN KT Kinh tế 5306 Huỳnh Nga 22/3/1 2 Nữ 400 CN CN Công nghệ Thông tin 5306 Huỳnh Nga 22/3/1 2 Nữ 400 CN KT Kinh tế 5308 Phạm Trang 12/7/1 0 Nữ 800 CN CN Công nghệ Thông tin 5308 Phạm Trang 12/7/1 0 Nữ 800 CN KT Kinh tế
  • 34. 2 Cách thực hiện một tích Descartes và sau đó là một phép chọn có điều kiện bằng như vậy được gọi là phép kết nối bằng. Cú pháp: QuanHe1 ⋈ điều-kiện-bằng QuanHe2 Ví dụ trên được viết lại là: SinhVien ⋈ MaKH = MaKhoa Khoa Trong trường hợp các thuộc tính để kết nối bằng ở cả hai quan hệ giống tên nhau thì phép kết nối bằng được gọi là phép kết nối tự nhiên. Lúc này chỉ cần viết phép toán kết nối mà không cần viết danh sách điều-kiện-bằng đi kèm. Ví dụ Hãy cho biết tên môn học ứng với các lớp học LopHoc ⋈ MonHoc (ngầm hiểu điều kiện bằng là thuộc tính MaMH ở cả hai quan hệ) Kết quả: Trong quan hệ kết quả, do có 2 thuộc tính MaMH nên có hai cách xử lý:  Chỉ giữ lại một thuộc tính MaMH  Dùng tên quan hệ để phân biệt: LopHoc.MaMH và MonHoc.MaMH MaSV HoSV TenSV NgaySinh GioiTinh HocBong MaKH MaKhoa TenKhoa 5202 Lê Cường 21/5/1 1 Nam 200 KT CN Công nghệ Thông tin 5202 Lê Cường 21/5/1 1 Nam 200 KT KT Kinh tế 5207 Nguyễn Sơn 17/7/1 0 Nữ 800 KT CN Công nghệ Thông tin 5207 Nguyễn Sơn 17/7/1 0 Nữ 800 KT KT Kinh tế 520 Ngô Hòa 16/8/1 0 Nam 200 CN CN Công nghệ Thông tin 520 Ngô Hòa 16/8/1 0 Nam 200 CN KT Kinh tế 5306 Huỳnh Nga 22/3/1 2 Nữ 400 CN CN Công nghệ Thông tin 5306 Huỳnh Nga 22/3/1 2 Nữ 400 CN KT Kinh tế 5308 Phạm Trang 12/7/1 0 Nữ 800 CN CN Công nghệ Thông tin 5308 Phạm Trang 12/7/1 0 Nữ 800 CN KT Kinh tế MaSV HoSV TenSV NgaySinh GioiTinh HocBong MaKH MaKhoa TenKhoa 5202 Lê Cường 21/5/1 1 Nam 200 KT KT Kinh tế 5207 Nguyễn Sơn 17/7/1 0 Nữ 800 KT KT Kinh tế 520 Ngô Hòa 16/8/1 0 Nam 200 CN CN Công nghệ Thông tin 5306 Huỳnh Nga 22/3/1 2 Nữ 400 CN CN Công nghệ Thông tin 5308 Phạm Trang 12/7/1 0 Nữ 800 CN CN Công nghệ Thông tin MaLop MaMH HocKy NamHoc GiaoVien MaMH TenMH SoTinChi 01 306 1 2010 Tuấn 306 Tin học cơ sở 2 02 403 1 2010 Nga 403 Kế toán tài chính 3 03 306 2 2011 Sơn 306 Tin học cơ sở 2 04 207 1 2010 Nam 207 Cấu trúc dữ liệu 3 (MaKH=MaKhoa) (SinhVien × Khoa)
  • 35. 2 Ví dụ Hãy cho biết MaSV, HoSV, TenSV các sinh viên có theo học những lớp do giáo viên ‘Tuấn’ giảng dạy:  MaSV, HoSV, TenSV ( GiaoVien=’Tuấn’ [(LopHoc ⋈ KetQua) ⋈ SinhVien]) Hoặc:  MaSV, HoSV, TenSV ( GiaoVien=’Tuấn’ [LopHoc ⋈ (KetQua ⋈ SinhVien)]) Hoặc:  MaSV, HoSV, TenSV ([ GiaoVien=’Tuấn’ (LopHoc)] ⋈ KetQua ⋈ SinhVien) Tuy nhiên, viết như bên dưới là không hợp lệ:  MaSV, HoSV, TenSV ( GiaoVien=’Tuấn’ [LopHoc ⋈ SinhVien⋈ KetQua]) vì giữa LopHoc và SinhVien không có thuộc tính kết nối. Ví dụ Hãy cho biết TenMH, SoTinChi, Diem của các môn học mà sinh viên có MaSV = ‘ 2 2’ đã học:  TenMH, SoTinChi, Diem ([ MaSV=’5202’ (KetQua ⋈ LopHoc ⋈ MonHoc)) 3.6. Phép nhóm dữ liệu (GROUP) Ví dụ 10: Giả sử có truy vấn sau: Dựa vào bảng SinhVien, tính số lượng sinh viên và tổng học bổng của từng khoa. Kết quả như ở bảng dưới: Cách thức thực hiện như trên được gọi là phép nhóm. MaSV HoSV TenSV NgaySinh GioiTinh HocBong MaKH 5202 Lê Cường 21/5/1 1 Nam 200 KT 5207 Nguyễn Sơn 17/7/1 0 Nữ 800 KT 520 Ngô Hòa 16/8/1 0 Nam 200 CN 5306 Huỳnh Nga 22/3/1 2 Nữ 400 CN 5308 Phạm Trang 12/7/1 0 Nữ 800 CN MaKhoa SoSV TongHB KT 2 1.000 CN 3 1.400 Thuộc tính dùng để tách nhóm các bộ Count là hàm đếm số MaSV (số bộ) trong từng nhóm MaKH G SoSV: Count(MaSV), TongHB: Sum(HocBong) (SinhVien) 2 3 Tách nhóm theo mã khoa Đếm số SV trong nhóm
  • 36. 2 Cú pháp: Thuộc-tính-nhóm G Các-hàm-gộp (QuanHe) Hàm Count được được gọi là hàm gộp (aggregate function). Danh sách các hàm gộp được liệt kê bên dưới Tên hàm Mục đích Count Đếm số bộ Sum Tính tổng các giá trị Avg Tính giá trị trung bình Max Tìm giá trị lớn nhất Min Tìm giá trị nhỏ nhất Ví dụ 11: Tính học bổng cao nhất, thấp nhất, và trung bình của các sinh viên theo từng khoa MaKH G Max(HocBong), Min(HocBong), Avg(HocBong) (SinhVien) MaKhoa Max Min Avg KT 800 200 500 CNTT 800 200 466 Ví dụ 12: mở rộng ví dụ , tính số sinh viên của từng Khoa, liệt kê các thuộc tính: MaKhoa, TenKhoa, SoSV. Để có thêm cột TenKhoa, cần thực hiện phép kết giữa bảng SinhVien và bảng Khoa, sau đó thực hiện phép nhóm như bình thường, tuy nhiên cột TenKhoa phải được đưa vào làm thuộc tính nhóm chung với MaKhoa MaKhoa, TenKhoa G SoSV: Count(MaSV) (SinhVien ⋈ MaKH = MaKhoa Khoa) MaSV HoSV TenSV NgaySinh GioiTinh HocBong MaKH MaKhoa TenKhoa 5202 Lê Cường 21/5/1 1 Nam 200 KT KT Kinh tế 5207 Nguyễn Sơn 17/7/1 0 Nữ 800 KT KT Kinh tế 520 Ngô Hòa 16/8/1 0 Nam 200 CN CN Công nghệ Thông tin 5306 Huỳnh Nga 22/3/1 2 Nữ 400 CN CN Công nghệ Thông tin 5308 Phạm Trang 12/7/1 0 Nữ 800 CN CN Công nghệ Thông tin MaKhoa TenKhoa SoSV KT Kinh tế 2 CN Công nghệ Thông tin 3 Thuộc tính nhóm gồm MaKhoa và TenKhoa
  • 37. 2 Ví dụ 1 : Cho biết sĩ số của từng lớp học. Liệt kê: MaLop, TenMH, SiSo MaLop, TenMH G SiSo: Count(MaSV) (LopHoc ⋈ MonHoc ⋈ KetQua) MaLop TenMH SiSo 01 Tin học cơ sở 2 02 Kế toán tài chính 2 03 Tin học cơ sở 1 04 Cấu trúc dữ liệu 1 Ví dụ 14: Dựa vào bảng KetQua và bảng MonHoc, tính điểm trung bình học kỳ 1 năm 2 của các sinh viên theo quy tắc. ∑ ∑ tam   NamHoc=2010 AND HocKy= 1 (KetQua ⋈ LopHoc ⋈ MonHoc) Kết quả của tam: MaSV MaLop Diem MaMH HocKy NamHoc GiaoVien TenMH SoTinChi 5202 01 4 306 1 2010 Tuấn Tin học cơ sở 2 5202 02 7 403 1 2010 Nga Kế toán tài chính 3 5202 04 207 1 2010 Nam Cấu trúc dữ liệu 3 5308 01 3 306 1 2010 Tuấn Tin học cơ sở 2 5308 02 403 1 2010 Nga Kế toán tài chính 3 MaSV G DiemTB: Sum(Diem*SoTinChi)/Sum(SoTinChi) (tam) Kết quả: MaSV DiemTB 5302 7.0 5308 6.6
  • 38. 2 3.7. Bài tập 1) Cho cơ sở dữ liệu về BanHang như bên dưới: Hãy cho biết biểu thức đại số quan hệ để thực hiện các câu truy vấn sau và cho biết nội dung kết quả của từng câu truy vấn: a) Liệt kê tên các mặt hàng có đơn giá lớn hơn 10.000 (MaMH, TenMH, DonGia) b) Cho biết tên khách hàng ứng với từng hóa đơn (MaHD, NgayHD, TenKH) c) Hãy cho biết tên các khách hàng đã mua mặt hàng ‘Sữa chua Vinamilk’ d) Liệt kê tên các mặt hàng bán được trong ngày 12/2/2010 e) Tính thành tiền của từng hóa đơn (MaHD, NgayHD, TenKH, ThanhTien) f) Cho biết tên các mặt hàng mà khách hàng ‘Nguyễn Trang’ đã mua, với tổng số lượng và trị giá là bao nhiêu. g) Tính doanh thu bán hàng theo từng ngày (NgayHD, DoanhThu) h) Tính doanh thu bán hàng theo từng ngày của từng mặt hàng (NgayHD, TenMatHang, DoanhThu) KhachHang MaKH HoTen DiaChi A001 Nguyễn Trang 12 Hồng Bàng B002 Lê Cường 60 Trần Phú C003 Mai Nguyễn 22 Bạch Đằng MatHang MaMH TenMH DonViTinh DonGia S03 Sữa chua Vinamilk Lốc 4.000 B02 Bánh Choco-Pie Hộp 15.000 K01 Kem Monte-Rosa Ký 20.000 HoaDon MaHD NgayHD MaKH 001 12/2/2010 A001 002 12/2/2010 B002 003 20/4/2011 B002 004 25/7/2011 A001 MatHangBan MaHD MaMH SoLuong 001 S03 2 001 B02 5 002 K01 6 002 S03 8 003 S03 10 004 B02 7
  • 39. 2 2) Cho cơ sở dữ liệu về quản lý các dự án của một công ty như sau:  Hãy cho biết khóa chính, mối liên hệ và ràng buộc khóa ngoại giữa các quan hệ trong cơ sở dữ liệu trên.  Thực hiện các câu truy vấn sau bằng biểu thức đại số quan hệ và cho biết nội dung kết quả của từng câu truy vấn: a) Liệt kê các phòng ban và tên trưởng phòng của từng phòng ban (họ tên đầy đủ). b) Tìm các nhân viên lương ít hơn . . ở ‘Phòng Kinh doanh’ hoặc ít hơn . . ở ‘Phòng Kế toán’. c) Liệt kê các nhân viên và cho biết tên trưởng phòng của từng nhân viên đó. d) Hãy cho biết các phòng ban nào có thực hiện dự án tại ‘Nha Trang’. e) Tính mức lương trung bình của từng phòng ban. f) Trong các dự án thực hiện tại Nha Trang, tính tổng số giờ nhân viên của từng dự án. g) Với mỗi giờ làm việc cho dự án, một nhân viên sẽ được thưởng 1% tiền lương. Tính số tiền thưởng của từng nhân viên. h) Tính số tiền thưởng của từng nhân viên theo từng dự án. PhongBan MaPB TenPB TruongPhong KD Phòng Kinh doanh N01 KT Phòng Kế toán V02 NhanVien MaNV HoNV TenNV Luong MaPB N01 Hoài Nam 3.000.000 KD V02 Bình Phương 4.000.000 KT N03 Mỹ Hòa 5.000.000 KD V04 Phương Anh 5.000.000 KT DuAn MaDA TenDA DiaDiem NgayBD MaPB D1 Hồ Con Rùa Sài Gòn 27/3/2011 KD D2 Chùa Tây Phương Hà Nội 10/6/2012 KD D3 Chùa Linh Sơn Nha Trang 16/8/2011 KD D4 Dinh Bảo Đại Nha Trang 22/1/2010 KT PhanCong MaDA MaNV SoGio D1 N01 2 D1 N03 5 D2 N01 6 D2 V02 8 D3 V02 10 D4 V04 7
  • 40.
  • 41. Phần II HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU MICROSOFT ACCESS
  • 42. 2
  • 43. 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 MS Access là một Hệ quản trị cơ sở dữ liệu quan hệ (RDBMS - Relational Database Management System), là một phần mềm trong bộ ứng dụng Microsoft Office chạy trên môi trường Windows của hãng phần mềm Microsoft. MS Access có giao diện thân thiện, dễ sử dụng, hiệu năng cao, cho phép xử lý dữ liệu và kết xuất vào các biểu mẫu, báo cáo theo dạng thức chuyên nghiệp rất phù hợp cho các bài toán quản lý vừa và nhỏ. Microsoft Access còn cung cấp nhiều công cụ phát triển đầy năng lực để nâng cao hiệu suất công việc. Bằng cách dùng các Wizard của MS Access và các lệnh có sẵn (macro) người sử dụng có thể dễ dàng tự động hóa công việc mà không cần lập trình. 4.2. Khởi động MS Access Start  All Programs  Microsoft Office  Microsoft Office Access 4.3. Tạo cơ sở dữ liệu mới Một cơ sở dữ liệu Access được lưu trên đĩa dưới dạng một tập tin. Để tạo một CSDL mới thì chọn menu File  New  Blank Database
  • 44. Ở hộp thoại tiếp theo, chọn nơi lưu trữ và tên tập tin cơ sở dữ liệu Sau khi chọn nơi lưu trữ và tên tập tin thì nhấn vào nút để tạo cơ sở dữ liệu mới. 4.4. Mở một CSDL đã có trong máy tính Sử dụng một trong các cách sau  Vào menu File  Open  Chọn thư mục và double-click vào tập tin CSDL. 4.5. Các đối tượng chính của một CSDL Access Access là một hệ quản trị theo mô hình cơ sở dữ liệu quan hệ, vì vậy vì vậy Access có các đối tượng để thể hiện các khái niệm quan hệ, lược đồ quan hệ và truy vấn:  Bảng (Table) : thể hiện khái niệm quan hệ trong cơ sở dữ liệu. Bảng có hai chế độ: design view - lược đồ quan hệ và data view - quan hệ. Trong bảng gồm nhiều dòng - bộ và cột – thuộc tính  Truy vấn (Query): Để thực hiện các truy vấn và một số thao tác thêm, xóa, sửa trên các bảng. Các thành phần tiện ích khác:  Biểu mẫu (Form): Giao diện do người dùng tự tạo cho phép làm việc với dữ liệu, chủ yếu được sử dụng trong việc nhập và hiển thị dữ liệu.  Báo cáo (Report) : Kết quả của quá trình khai thác dữ liệu được tổ chức và định dạng để tạo thành bản in.  Pages: Tương tự như Form nhưng hoạt động trên nền Web.  Macro : Tập hợp các lệnh nhằm tự động hóa các thao tác.  Module: Cho phép lập trình thao tác trên các bảng và truy vấn. Nơi lưu tập tin cơ sở dữ liệu Tên tập tin cơ sở dữ liệu
  • 45. 4.6. Các toán tử sử dụng trong MS Access Toán tử Ý nghĩa ( ) Kết nhóm biểu thức Not Phủ định mệnh đề And Kết hợp mệnh đề: tất cả mệnh đề thành phần đúng thì cho kết quả đúng, nếu có ít nhất 1 mệnh đề thành phần sai thì cho kết quả sai. Or Kết hợp mệnh đề: tất cả mệnh đề thành phần sai thì cho kết quả sai, nếu có ít nhất 1 mệnh đề thành phần đúng thì cho kết quả đúng. Xor 2 mệnh đề có giá trị trái ngược nhau thì cho kết quả đúng Epv 2 mệnh đề có giá trị trái ngược nhau thì cho kết quả sai ^ Luỹ thừa (5^3=75) + - * / Cộng, Trừ, Nhân, Chia Phép chia lấy phần nguyên Mod Phép chia lấy phần dư <, >, = Nhỏ hơn, Lớn hơn, Bằng <=, >= Nhỏ hơn hoặc bằng, Lớn hơn hoặc bằng <> Không bằng Is So sánh 2 đối tượng In Thuộc, trong tập hợp hoặc miền giá trị (dùng trong các câu truy vấn) Between ... And ... Trong khoảng từ…đến… Like Giống: * (tổ hợp kí tự bất kỳ), ? ( ký tự bất kỳ), # (Một ký số bất kỳ) Ví dụ: like "A*", like "Access????", like 1#00 & Ghép chuỗi + Ghép chuỗi hoặc cộng số Toán tử Ý nghĩa Toán tử Ý nghĩa True Giá trị đúng "…" hoặc '…' Giá trị chuỗi, ví dụ "ACCESS" False Giá trị sai […] Giá trị tham số, ví dụ [tham so] Null Giá trị rỗng #...# Giá trị thời gian, ví dụ 2 2 Date Ngày hiện hành [Color] Màu, ví dụ Now Ngày giờ hiện hành [white] : màu trắng Time Giờ hiện hành [red] : màu đỏ
  • 46. 4.7. Một số hàm sử dụng trong MS Access 1) Các hàm về chuỗi Hàm Kết quả Ten LIKE 'N*' Tên bắt đầu bằng chữ N Ten LIKE '*a*' Tên có chứa chữ a Len(Ten) 3 (nếu Ten = 'Mai') 5 (nếu Ten = 'Nguyen') Left(Ten, 2) 'Ma' Right(TenSV,2) 'ai' (nếu TenSV = 'Mai') Mid(TenSV,2,3) 'guy' (nếu TenSV = 'Nguyen') 2) Các hàm về ngày tháng Hàm Kết quả Now() Ngày giờ hiện tại Month(#8/12/2011#) Day(#5/27/2011#) 2 Year(Now()) 2 Year(Now()) – Year(NgaySinh) Tính số tuổi của sinh viên Hour(#06:30#) Minute(#13: 2 DatePart('q', Tính quý  2 3) Hàm IIF  Cú pháp: IIF(điều-kiện, A, B) (với điều-kiện là biểu thức logic. A, B là các biểu thức bất kỳ)  Ý nghĩa: nếu điều-kiện đúng thì kết quả của biểu thức IIF là biểu thức A, nếu điều-kiện sai thì kết quả của biểu thức IIF là biểu thức B.  Ví dụ: IIF(Diem>=5, 'Đạt', 'Không đạt') Vậy nếu Diem = 6, 7, 8 thì kết quả của IIF là 'Đạt'. Nếu Diem = 2, 4 thì kết quả của IIF là 'Không đạt'. 4.8. Bài tập Hãy thực hiện các thao tác sau trên máy tính: 1) Khởi động Access 2) Tạo một cơ sở dữ liệu mang tên bạn và lưu vào ổ đĩa C hoặc D 3) Trong cơ sở dữ liệu vừa tạo, quan sát các mục Table, Query, Form, Report, Macro và Module 4) Đóng cơ sở dữ liệu và đóng Access 5) Khởi động lại Access, mở lại cơ sở dữ liệu vừa tạo (lưu ý: dùng menu File -> Open, không được dùng menu File -> New)
  • 47. CHƯƠNG 5. BẢNG (TABLE) 5.1. Các khái niệm 5.1.1. Bảng Bảng là thành phần cơ bản và quan trọng nhất của CSDL Access, thể hiện khái niệm lược đồ quan hệ và quan hệ. Một bảng dữ liệu của CSDL Access bao gồm các thành phần: tập hợp các trường dữ liệu (thuộc tính trong mô hình quan hệ), trường khoá chính, tập hợp các thuộc tính cần thiết cho mỗi trường dữ liệu, tập hợp các bản ghi (bộ). Ví dụ:  Bảng dữ liệu trong trạng thái Datasheet (dùng để cập nhập, xem, sửa dữ liệu)  Bảng dữ liệu trong trạng thái Design view (dùng để thiết kế cấu trúc – lược đồ quan hệ) Bản ghi (record) Trường dữ liệu (field) Tên bảng Các thuộc tính mô tả trường dữ liệu Trường khóa chính (primary key)
  • 48. 5.1.2. Trường dữ liệu (field) Trường dữ liệu, tương ứng với cột của bảng, mô tả từng đặc điểm riêng của đối tượng. Mỗi trường dữ liệu sẽ có một tên gọi, kiểu dữ liệu và tập hợp các tính chất mô tả trường dữ liệu đó. Ví dụ: Trường MaKhoa có kiểu dữ liệu là Text, kích thước 2 ký tự, được hiển thị là chữ in hoa,… 5.1.3. Bản ghi (record) Mỗi dòng dữ liệu của bảng được gọi một bản ghi. Ví dụ: Bảng Khoa có 3 bản ghi là (“CN”, “Khoa Công nghệ thông tin”), (“KT”, “Khoa Kinh tế”), (“NN”, “Khoa Ngoại ngữ”) 5.1.4. Khóa chính (primary key) Khóa chính của bảng là trường hoặc tập trường dùng để phân biệt các bản ghi trong cùng một bảng. Ví dụ: Ở một trường đại học, mỗi sinh viên khi nhập học đều được cấp 1 mã sinh viên không giống nhau, do đó có bảng SinhVien được thiết kế như sau: Như vậy trường MaSV chứa dữ liệu mã sinh viên sẽ là khóa chính của bảng SINHVIEN vì mã sinh viên là duy nhất, các sinh viên có thể trùng họ tên, ngày sinh,…nhưng không thể có mã sinh viên giống nhau. Ví dụ: Kết quả học tập của sinh viên bao gồm các dữ liệu sau: mã sinh viên, mã các lớp học sinh viên đó đã đăng ký và điểm kết quả của các lớp học đó. Trong CSDL của trường đó có bảng KetQua được thiết kế như sau Như vậy 2 trường MaSV (chứa dữ liệu mã sinh viên) và MaLop (chứa mã lớp học mà sinh viên đó đăng ký) sẽ tạo thành khóa chính của bảng KetQua, không thể có 1 sinh viên đăng ký lớp học mà có 2 điểm kết quả khác nhau.
  • 49.  Chú ý: MS Access không chấp nhận các giá trị trùng nhau hay trống (null) trong trường khóa chính. 5.1.5. Mối liên hệ giữa các bảng (relationship) Thể hiện khái niệm mối liên hệ giữa các quan hệ trong mô hình lý thuyết (xem phần Phần I2.3.2). Đi kèm với mối liên hệ là ràng buộc toàn vẹn về khóa ngoại. Trong Access tồn tại 2 kiểu quan hệ: quan hệ - và quan hệ -∞ (một-nhiều) a) Quan hệ 1-1 Mỗi bản ghi của bảng này sẽ không liên kết hoặc liên kết với duy nhất tới một bản ghi của bảng kia và ngược lại Ví dụ: Mỗi số báo danh của thí sinh thi đại học chỉ có 1 số phách bài thi và số phách của mỗi bài thi chỉ thuộc về 1 số báo danh. Mô tả dữ liệu 2 bảng như sau: b) Quan hệ 1- ∞ Một bản ghi trong bảng A không kết hợp hoặc kết hợp với một hay nhiều bản ghi trong bảng B, nhưng ngược lại một bản ghi trong bảng B chỉ có thể kết hợp duy nhất với một bản ghi trong bảng A. Ví dụ: một khoa của trường Đại học Nha Trang có nhiều sinh viên nhưng một sinh viên chỉ thuộc về duy nhất một khoa.
  • 50. Mô tả dữ liệu 2 bảng như sau: 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 Tab Tables  Create Table in Design View hoặc Tab Tables  Sau đó ta được bảng thiết kế như sau: Tên trường Lựa chọn kiểu dữ liệu Mô tả ngắn gọn của trường
  • 51. Bảng thiết kế sau khi đã được nhập giá trị: a) Tên trường Tên trường có thể đặt tùy ý, tuy nhiên để dễ quản lý nên đặt ngắn gọn, dễ gợi nhớ, không chứa ký tự trắng và không dùng chữ tiếng Việt có dấu. b) Kiểu dữ liệu (Data Type) MS Access cung cấp một số kiểu dữ liệu cơ bản sau:  Text: kiểu chuỗi có độ dài tối đa 2 ký tự  Memo: kiểu chuỗi có độ dài tối đa . ký tự  Number: kiểu số  Date/Time: kiểu ngày (nếu cần có thể lưu thêm thông tin về giờ)  Currency: kiểu số có định dạng theo loại tiền tệ  AutoNumber: kiểu số nhưng tự động tăng do Microsoft Access cung cấp và quản lý, người dùng không thể cập nhật  Yes/No: kiểu Logic  OLE Object: kiểu đối tượng kết nhúng: Word, Excel,..  Hyperlink: kiểu chuỗi chỉ đường dẫn của một tập tin trên ổ cứng hay trên máy chủ của mạng hay một địa chỉ URL trên mạng.  Lookup Wizard: tạo một cột để chọn giá trị và tìm kiếm từ một bảng khác Khóa chính Kích thước của trường Quy định dạng hiển thị dữ liệu Quy định dạng thức dữ liệu phải nhập Tiêu đề cột mà trường hiển thị Giá trị mặc định của trường khi nhập dữ liệu Các quy tắc hợp lệ của dữ liệu nhập Cho phép nhập chuỗi rỗng Thông báo khi nhập dữ liệu sai quy tắc Bắt buộc phải nhập dữ liệu hay khôngTạo chỉ mục
  • 52. 2 Khai báo thuộc tính cho trường ở thẻ General: c) Field Size Xác định kích thước tối đa cho dữ liệu kiểu Number hay Text của trường. Đối với kiểu số (number) thì Access cung cấp các kiểu sau Loại số Độ lớn Byte số nguyên byte Integer số nguyên 2 byte Long Integer số nguyên byte Single số thực byte Double số thực 2 byte Decimal số thực byte d) Format Định dạng cách thể hiện của dữ liệu khi hiển thị hoặc khi in ấn.  Kiểu chuỗi: gồm 3 phần [Phần 1];[Phần 2];[Phần 3] Trong đó: - Phần 1: Chuỗi định dạng tương ứng trong trường hợp có chứa văn bản. - Phần 2: Chuỗi định dạng tương ứng trong trường hợp không chứa văn bản. - Phần 3: Chuỗi định dạng tương ứng trong trường hợp null Các ký tự dùng để định dạng chuỗi Ký tự Tác dụng @ Chuỗi ký tự "123ABC" Hiển thị những gì trong ngoặc kép như ký tự > Đổi tất cả ký tự nhập vào thành in hoa < Đổi tất cả ký tự nhập vào thành in thường Hiển thị ký tự kế tiếp như ký tự bình thường (dùng để hiển thị các ký tự đặc biệt)
  • 53. Ví dụ Cách định dạng Dữ liệu nhập vào Hiển thị @@@-@@@ 2 abcdef 2 - abc-def > Tinhoc TINHOC < TinHoc tinhoc @; "Không có"; "Chưa nhập" ABC Null ABC Không có Chưa nhập  Kiểu số (Number) và kiểu số tiền tệ (Currency) Định dạng do ACCESS cung cấp Loại số Dữ liệu nhập vào Hiển thị General Number 2 . 2 . Currency 2 . ,2 . Euro 2 . € ,2 . Fixed 2 . 2 Standard 2 . ,2 . Pecent . 2 2. Scientific 2 . 1.23E+0 Định dạng do người sử dụng: [Phần 1];[Phần 2];[Phần 3];[Phần 4] Trong đó: - Phần 1: Chuỗi định dạng tương ứng trong trường hợp số dương. - Phần 2: Chuỗi định dạng tương ứng trong trường hợp số âm. - Phần 3: Chuỗi định dạng tương ứng trong trường hợp số bằng zero. - Phần 4: Chuỗi định dạng tương ứng trong trường hợp null. Ví dụ Định dạng Hiển thị 0;(0);;"Null" Số dương hiển thị bình thường Số âm được bao giữa 2 dấu ngoặc ( ) Số bị bỏ trống Null hiện chữ Null . - . . Hiển thị dấu + phía trước nếu số dương Hiển thị dấu - phía trước nếu số âm Hiển thị . nếu âm hoặc Null  Kiểu Date/Time Định dạng do ACCESS cung cấp Định dạng Hiển thị General date 10/30/99 5:10:30PM
  • 54. Long date Friday, may 30 , 1999 Medium date 30-jul- Short date Long time 6:20:00 PM Medium time 6:20 PM Short time :2  Kiểu Yes/No Định dạng do ACCESS cung cấp Định dạng Tác dụng Yes / No Đúng Sai True / False Đúng Sai On / Off Đúng Sai Định dạng do người sử dụng: Gồm 3 phần ;[Phần 1];[Phần 2] Trong đó: - Phần : Trường hợp giá trị trường đúng - Phần 2: Trường hợp giá trị trường sai Ví dụ Định dạng Hiển thị Trường hợp True Trường hợp False "Nam" "Nữ" Nam Nữ ;"Có";"Không" Có Không Chú ý: Để xem được hiển thị của kiểu Yes/No ta phải thay đổi thuộc tính Display Control ở thẻ Lookup thành Text Box
  • 55. e) Input Mask Mặt nạ định dạng dữ liệu, người sử dụng bắt buộc phải nhập dữ liệu cho trường đúng theo quy định đã cài đặt ở thuộc tính này. Ký tự Tác dụng Bắt buộc nhập ký tự số Không bắt buộc nhập, ký tự số # Không bắt buộc nhập, số 0-9, khoảng trắng, dấu + và - L Bắt buộc nhập, ký tự chữ ? Không bắt buộc nhập, ký tự chữ hoặc khoảng trắng a Bắt buộc nhập, ký tự chữ hoặc số A Không bắt buộc nhập, ký tự chữ hoặc số & Bắt buộc nhập, ký tự bất kỳ C Không bắt buộc nhập ký tự bất kỳ < Các ký tự bên phải được đổi thành chữ thường > Các ký tự bên phải được đổi thành chữ hoa ! Dữ liệu được ghi từ phải sang trái Ví dụ: Input Mask Dữ liệu nhập vào ( ) - ( ) 2 - 2 2 (000)AAA-A ( 23)124-E Ngoài ra ta có thể sử dụng những Input Mask có sẵn do Access cung cấp f) Caption Dùng làm tiêu đề cho các trường trong chế độ Datasheet của bảng, có thể dùng tiếng Việt. Chuỗi ký tự này cũng xuất hiện tại nhãn các của các điều khiển trong các biểu mẫu hoặc báo cáo. Nếu không xác định Caption thì Access sẽ lấy tên trường để làm tiêu đề. g) Default Value Quy định giá trị mặc định cho trường trừ Auto number và OEL Object. Có thể là một biểu thức, hằng, các hàm mẫu và các phép toán.
  • 56. h) Validation rule và Validation Text Quy định quy tắc hợp lệ dữ liệu (Validation rule) để giới hạn giá trị nhập vào cho một trường. Khi giới hạn này bị vi phạm sẽ có câu thông báo ở Validation text. Ví dụ: Validation rule Tác dụng 0 Khác số không Like "*HUE*" Trong chuỗi phải chứa HUE >= #10/10/99# and <= #12/11/99# Trong khoảng từ đến 12/12/99 i) Required (tương tự ràng buộc toàn vẹn NOT NULL) Dùng để quy định dữ liệu cần phải nhập hay không. Nếu chọn Yes thì phải nhập giá trị cho cột đó mỗi khi thêm dòng mới, ngược lại nếu cho đưa giá trị Null vào thì chọn No. Thuộc tính này có giá trị mặc định là No j) AllowZeroLength Cho phép quy định một trường có kiểu Text hay memo có thể hoặc không có thể có chuỗi có độ dài bằng 0. Thuộc tính này có giá trị mặc định là No  Chú ý: Cần phân biệt một trường chứa giá trị null (chưa có dữ liệu) và một trường chứa chuỗi có độ dài bằng 0 (có dữ liệu nhưng chuỗi rỗng ""). k) Index Tạo chỉ mục trên một trường, giúp việc tìm kiếm dữ liệu nhanh hơn.  Yes(Dupplicate OK) : Tạo chỉ mục có trùng lặp  Yes(No Dupplicate) : Tạo chỉ mục không trùng lặp  No : Không tạo chỉ mục 5.2.2. Tạo khóa chính Thực hiện lần lượt các bước sau 1. Mở bảng ở chế độ Design View 2. Chọn trường (các trường) cần làm khóa 3. Click vào biểu tượng khóa trên thanh công cụ để tạo khóa hoặc Right-Click tên trường cần làm khóa  Primary Key Chú ý: Các trường có kiểu dữ liệu là Memo, OLE Object, Hyper Link không thể làm khóa chính.
  • 57. 5.2.3. Lưu bảng Thực hiện bởi 1 trong nhiều cách sau  Ctrl+S  Click biểu tượng trên thanh công cụ.  Menu File  Save 5.2.4. Hiệu chỉnh bảng  Di chuyển trường: Đưa con trỏ ra đầu trường cần di chuyển, giữ và kéo đến vị trí mới.  Chèn thêm trường mới: Chọn trường hiện thời là trường sẽ nằm sau trường được chèn vào  Right Click  Insert Row  Xóa trường: Chọn trường cần xóa  Right Click  Delete Row 5.3. Thiết lập mối quan hệ giữa các bảng  Bước 1: Chọn biểu tượng Relationship hoặc vào menu Tool Relationships.  Bước 2: Đưa các bảng muốn tạo mối quan hệ vào cửa sổ Relationships bằng cách lần lượt chọn bảng  Add Sau khi chọn xong thì click Close Nếu cần chọn thêm bảng thì Right Click (tại vùng cửa sổ Relationships) Show Table  Bước 3: Trong cửa sổ Relationships dùng chuột kéo và thả trường liên hệ từ bảng này sang bảng kia.
  • 58.  Bước 4: Xác định các qui tắc ràng buộc của mối quan hệ này bằng cách chọn vào ô kiểm tra hiệu lực của ràng buộc toàn vẹn (Enforce Referential Integrity) Đồng ý thiết lập toàn vẹn tham chiếu, nghĩa là dữ liệu trên trường tham chiếu của bảng con phải tương ứng với dữ liệu đã tồn tại trên trường của bảng cha. Ngoài ra thiết lập này còn cho biết kiểu quan hệ giữa 2 bảng Đảm bảo toàn vẹn dữ liệu khi cập nhật dữ liệu giữa 2 bảng liên quan. Khi đó, nếu giá trị trường khoá liên kết ở bảng 1 bị thay đổi, toàn bộ giá trị trường khoá liên kết ở bảng nhiều cũng bị thay đổi theo. Đảm bảo toàn vẹn dữ liệu khi xoá dữ liệu giữa 2 bảng liên quan. Khi đó, nếu một bản ghi ở bảng có quan hệ 1 bị xoá, toàn bộ các bản ghi có quan hệ với bản ghi hiện tại sẽ được tự động xoá ở bảng có quan hệ nhiều (nếu xoá 1 CHA, toàn bộ các con của cha đó sẽ tự động bị xoá khỏi bảng CON) Hộp Relationship Type: cho biết kiểu quan hệ giữa 2 bảng đang thiết lập:  One – To – One Kiểu -  One – To – Many Kiểu -∞  Indeterminate Không xác định được kiểu liên kết  Bước 5: Chọn Create  Bước 6: Lưu lại các mối quan hệ vào cửa sổ quan hệ: chọn menu File  Save hoặc click vào biểu tượng trên thanh công cụ. Chú ý: Khi thiết lập mối quan hệ phải đóng tất cả các bảng tham gia.
  • 59. 5.4. Cập nhật bảng 5.4.1. Xem và nhập dữ liệu Có thể xem và nhập dữ liệu trong bảng bằng các cách sau  Double click vào bảng cần xem (hoặc nhập dữ liệu)  Click chọn bảng, sau đó click vào biểu tượng 5.4.2. Nhập dữ liệu sử dụng Lookup Để việc nhập các giá trị cho các thuộc tính khóa ngoại được dễ dàng, nhanh chóng và tránh sai sót, có thể nhập dữ liệu cho các thuộc tính này dùng lookup. Ví dụ bên dưới là thiết lập lookup cho khóa ngoại MaKH của bảng SinhVien Màn hình khi nhập liệu: Trường khóa ngoại đến bảng quan hệ Bảng có quan hệ nhiều (∞) Kiểu thể hiện dữ liệu Bảng được tham chiếu (bảng có quan hệ )
  • 60. 5.4.3. Một số lỗi có thể xảy ra khi nhập dữ liệu Lỗi do: Nhập vào giá trị không tương thích với kiểu dữ liệu của trường đã chỉ định. Ví dụ: trường kiểu Numeric mà gõ vào chữ cái; hoặc không gõ đầy đủ các giá trị ngày, tháng, năm cho trường kiểu Date/Time,.. Khắc phục: Nhập lại cho đúng, đủ giá trị các trường đã yêu cầu đến khi không xuất hiện thông báo lỗi. Lỗi do: Không nhập giá trị hoặc để trống giá trị trường khoá. Khắc phục: phải nhập đầy đủ giá trị cho trường khoá. Lỗi do: Giá trị trường khoá trùng nhau. Giá trị trường khoá vừa nhập vào đã trùng với giá trị của một khóa của bản ghi khác trên bảng dữ liệu. Khắc phục: nhập lại giá trị trường khoá khác sao cho vừa đúng, đủ và không bị trùng khoá. Lỗi do: Không nhập dữ liệu ở trường bắt buộc nhập dữ liệu (những trường được thiết lập thuộc tính Required=Yes) Khắc phục: Phải nhập đủ dữ liệu cho các trường bắt buộc phải nhập dữ liệu.
  • 61. Lý do: Lỗi do thực hiện một thao tác vi phạm các nguyên tắc đảm bảo toàn vẹn dữ liệu. Ví dụ: Nhập dữ liệu trên một bảng có quan hệ mà bản ghi đang nhập không thể liên kết được tới được một bản ghi nào của bảng có quan hệ 1 với nó (nhập một hàng bán mà mã hàng đó chưa có trong bảng danh mục hàng hoá). 5.4.4. Xóa bản ghi Với bảng dữ liệu đang mở có thể thực hiện 2 bước sau để xoá các bản ghi: Bước 1: Chọn những bản ghi cần xoá. Có thể chọn một hoặc nhiều bản ghi bằng cách dùng chuột đánh dấu đầu dòng những bản ghi cần chọn; Bước 2: Ra lệnh xoá bằng một trong các cách sau  Nhấn phím Delete.  Right Click trên vùng đã chọn  Delete Record  Click vào biểu tượng trên thanh công cụ Một hộp thoại xuất hiện để bạn khẳng định một lần nữa việc xoá dữ liệu: Chọn Yes để đồng ý xoá, No để huỷ lệnh xoá. 5.4.5. Sắp xếp dữ liệu Sắp xếp là việc thay đổi thứ tự hiển thị một bảng dữ liệu theo một trật tự nào đó. Kết quả của việc sắp xếp giúp người dùng có thể quan sát được tốt hơn dữ liệu trên bảng, tất nhiên muốn quan sát bảng dữ liệu theo trường nào phải thực hiện sắp xếp bảng theo dữ liệu trường ấy. Cách sắp xếp dữ liệu trên bảng đang mở như sau: Bước 1: Đặt con trỏ lên trường (cột) muốn sắp xếp; Bước 2: Nhấn nút lệnh sắp xếp trên thanh công cụ: - Sắp xếp tăng dần - Sắp xếp giảm dần.
  • 62. 2 5.4.6. Lọc dữ liệu Lọc dữ liệu là việc chọn ra những bản ghi trên bảng có cùng một số giá trị. Kết quả việc lọc dữ liệu sẽ giúp người dùng làm việc một cách hiệu quả trên tập hợp các bản ghi họ mong muốn. Các bước để lọc dữ liệu trên một bảng đang mở như sau: Bước 1: Click chọn trường cần lọc dữ liệu. Bước : Click chọn biểu tượng Filter by Form Bước 3: Thiết lập điều kiện lọc trên trường đang chọn
  • 63. CHƯƠNG 6. TRUY VẤN (QUERY) 6.1. Các khái niệm Sau khi xây dựng được CSDL, người dùng sẽ cần kết xuất dữ liệu trên CSDL nhằm phục vụ cho những yêu cầu khác nhau. Một trong những công cụ xử lý dữ liệu mà MS Access cung cấp là Query. Query cho phép thực hiện các phép toán đại số quan hệ như phép chiếu, chọn kết, gom nhóm. Có các loại query sau trong Access: Query truy vấn:  Select Query  Group by Select Query  Crosstab Query Query thêm, xóa, sửa dữ liệu:  Append Query  Delete Query  Update Query  Make Table Query 6.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) Phần này minh họa lại cách thực hiện Query cho các ví dụ về các phép chọn, chiếu, kết nối trong chương về đại số quan hệ. Ví dụ 01: Cho biết tên khoa của sinh viên có mã số ‘ 2 2’. Liệt kê các thông tin MaSV, HoSV, TenSV, TenKhoa. Biểu thức đại số quan hệ cho truy vấn trên:  MaSV, HoSV, TenSV, TenKhoa [ MaSV=’5202’ (SinhVien ⋈ MaKH = MaKhoa Khoa)] Tạo truy vấn trong Access:
  • 64. Trong màn hình cơ sở dữ liệu, chọn mục Queries, sau đó chọn Create query in Design view để mở màn hình Show Table. Trong màn hình Show Table, chọn và nhấn nút Add các table tham gia truy vấn (Khoa và SinhVien). Sau khi chọn xong, nhấn nút Close để trở về màn hình Design Query. Màn hình design Query gồm hai phần:  Phần A dùng để thể hiện các bảng tham gia truy vấn. Phần này cũng thể hiện mối quan hệ giữa các bảng và mối quan hệ đó được sử dụng làm phép kết nối bằng.  Phần B gồm nhiều cột dùng để thực hiện các phép chọn và chiếu. Một cột trong phần B tương ứng với một cột trong phép chiếu. Kéo thả (hoặc Double-Click) các trường liên quan đến truy vấn từ phần A vào các cột phần B. Dấu * đại diện cho tất cả các cột trong bảng. Nhấn nút View Design để chuyển đổi giữa chế độ thiết kế Query và chế độ xem kết quả thực hiện phép kết nối giữa bảng SinhVien và Khoa: A B Các trường (cột) được chọn Bảng tham gia truy vấn Vùng nhập điều kiện của phép chọn Sắp xếp Cho phép (không cho phép) hiển thị kết quả
  • 65. Bổ sung phép chọn và phép chiếu:  Kéo bốn cột MaSV, HoSV, TenSV, TenKhoa vào phần B.  Thực hiện phép chọn MaSV = ' 2 2': gõ mệnh đề = ' 2 2' vào dòng Criteria ứng với cột MaSV. Kết quả thực hiện: Ví dụ 02: Tạo cột mới (HoTen) từ 2 trường HoSV và TenSV Kết quả thực hiện:
  • 66. Chú ý: Tên cột mới đặt ở dòng Field có cấu trúc như sau <Tên cột> : <Biểu thức> Ví dụ: HoTen : [HoSV] + ' ' + [TenSV] Ví dụ 0 : Biểu thức chọn có mệnh đề AND Xét câu truy vấn: Liệt kê các sinh viên sinh năm và có học bổng trên 500. Year(NgaySinh)=1990 AND HocBong>300 (SinhVien) Trong câu truy vấn này, biểu thức logic gồm 2 phần: Year(NgaySinh)=1990 và HocBong > được đặt ở phần Criteria: Chú ý: Year([NgaySinh]) giống như là một thuộc tính mới nhưng không được hiện ra do không được chọn ở dòng Show. Xét câu truy vấn: Liệt kê các sinh viên đạt mức học bổng từ đến 500 (HocBong>=300 AND HocBong <=500 (SinhVien) Lúc này có hai điều kiện chọn cho cùng một thuộc tính là HocBong Hoặc sử dụng mệnh đề: Between AND 5 Ví dụ 04: Biểu thức chọn có mệnh đề OR Xét câu truy vấn: Liệt kê các sinh viên có tên bắt đầu là ‘T’ hoặc là ‘K’. (Ten LIKE 'T*' OR Ten LIKE 'K*') (SinhVien) Mệnh đề Like 'K*' được gõ ở dòng OR
  • 67. Ví dụ 0 : Liệt kê các môn học chưa mở lớp: Điều kiện NOT IN (SELECT MaMH FROM LopHoc) nghĩa là: trong bảng môn học, hãy tìm các môn mà MaMH không có trong bảng LopHoc. Kết quả: Ví dụ 0 : Sắp xếp và lựa dòng Xét câu truy vấn: Chọn hai sinh viên đạt mức học bổng cao nhất. Trước tiên sắp xếp danh sách sinh viên theo học bổng từ cao đến thấp: Kết quả sắp xếp:
  • 68. Sau đó trong màn hình Design, trên thanh công cụ, thay từ All thành 2: Kết quả thực hiện: 6.2.2. Group by Select Query (truy vấn với phép nhóm) Ví dụ 0 : Xét câu truy vấn: dựa vào bảng SinhVien, đếm số sinh viên và tính tổng học bổng theo từng khoa: Trong Access để tạo Group by Select Query, đầu tiên tạo một Select Query như bình thường. Sau đó nhấn vào nút  trên thanh công cụ để xuất hiện dòng Total. MaSV HoSV TenSV NgaySinh GioiTinh HocBong MaKH 5202 Lê Cường 21/5/1 1 Nam 200 KT 5207 Nguyễn Sơn 17/7/1 0 Nữ 800 KT 520 Ngô Hòa 16/8/1 0 Nam 200 CN 5306 Huỳnh Nga 22/3/1 2 Nữ 400 CN 5308 Phạm Trang 12/7/1 0 Nữ 800 CN MaKhoa SoSV TongHB KT 2 1.000 CN 3 1.400 2 3 Tách nhóm theo mã khoa Đếm số SV trong nhóm
  • 69. Sau đó đưa ba trường MaKh, MaSV, HocBong vào ba cột bên dưới.  Trường MaKh dùng để tách nhóm, nên trong dòng Total chọn là Group By.  Trường MaSV dùng để đếm số lượng sinh viên nên trong dòng Total chọn hàm Count.  Trường HocBong dùng để tính tổng học bổng nên trong dòng Total chọn hàm Sum. Kết quả thực hiện. Ví dụ 0 : Bổ sung thêm trường TenKhoa. Kết nối bảng SinhVien với bảng Khoa, sau đó chọn trường MaKhoa, TenKhoa là Group by Ví dụ 0 : Tính số sinh viên nữ của từng khoa Câu truy vấn này cũng tương tự như câu tính tổng số sinh viên của từng khoa, tuy nhiên trước khi tách nhóm thì phải thực hiện phép chọn để lọc ra các sinh viên nữ Ở đây, trường GioiTinh chỉ dùng để chọn ra các sinh viên nữ, không dùng để tách nhóm, do đó ở dòng Total của cột GioiTinh chọn Where (không chọn Group By). Kết quả thực hiện
  • 70. Ví dụ 10 Dựa vào các bảng SinhVien, LopHoc, KetQua và MonHoc, tính điểm trung bình học kỳ năm 2 của các sinh viên. Liệt kê: MaSV, HoSV, TenSV, DTB. tam   NamHoc=2010 AND HocKy= 1 (LopHoc ⋈ MonHoc ⋈ KetQua) MaSV, HoSV, TenSV G DTB: Sum(Diem*SoTinChi)/Sum(SoTinChi) (tam) Trong ví dụ trên, vì cách tính điểm trung bình là một công thức toán học nên dòng Total ở cột DTB:Sum([Diem]*[SoTinChi])/Sum([SoTinChi]) được chọn là Expression (nghĩa là một biểu thức). Kết quả thực hiện  Tóm tắt Chức năng Total cung cấp cho người dùng các phương thức thống kê sau:  Group By: Gom nhóm các trường cần thống kê.  Sum: Tính tổng các giá trị trong cùng một nhóm  Count: Đếm số phần tử trong một nhóm  AVG: Tính trung bình cộng các phần tử trong cùng một nhóm  Min: Tính giá trị nhỏ nhất của các phần tử trong cùng một nhóm  Max: tính giá trị lớn nhất của các phần tử trong cùng một nhóm  Expresion: Biểu thức toán học.
  • 71. 6.2.3. Crosstab Query Là dạng query tổng hợp số liệu kết nhóm theo hàng và cột từ số liệu của các table hay query khác. Cấu trúc của 1 kết quả crosstab query  Row heading: là tiêu đề các dòng, có chứa các giá trị của hay nhiều trường làm đối tượng thống kê. Mỗi crosstab query phải có tối thiểu 1 trường làm Row heading.  Column heading là tiêu đề các cột, có chứa các giá trị của một trường làm điều kiện thống kê. Mỗi crosstab query chỉ có duy nhất 01 trường làm Column heading.  Value là vùng dữ liệu tổng hợp (kiểu số). Chỉ có duy nhất một trường làm Value, tương ứng với nó là các hàm thống kê: Sum, Count, Avg, Max, Min… Ví dụ 11: Thống kê điểm số cuối cùng của từng sinh viên theo từng môn học: Kết quả của phép kết:  MaSV, Ho,Ten, MaLop, TenMH, Diem (SinhVien ⋈ KetQua ⋈ LopHoc ⋈ MonHoc) MaSV HoTen MaLop TenMH Diem 5308 Phạm Trang 01 Tin học cơ sở 3 5308 Phạm Trang 03 Tin học cơ sở 5308 Phạm Trang 02 Kế toán tài chính 5202 Lê Cường 01 Tin học cơ sở 4 5202 Lê Cường 03 Tin học cơ sở 8 5202 Lê Cường 04 Cấu trúc dữ liệu 7 5202 Lê Cường 02 Kế toán tài chính MaSV HoTen Cấu trúc dữ liệu Kế toán tài chính Tin học cơ sở 5202 Lê Cường 5308 Phạm Trang Để tạo bảng crosstab, trước tiên tạo một Group By Select Query. Sau đó chuyển thành Crosstab Query bằng cách vào menu Query  Crosstab Query Value Row heading Column heading Max(3, 9) Max(4, 8)
  • 72. 2 Phần thiết kế Query xuất hiện thêm dòng Crosstab. - MaSV, HoTen sắp theo chiều dọc nên tại dòng total là Group By, tại dòng crosstab chọn là Row Heading. - TenMH sắp theo chiều ngang nên tại dòng total là Group By, tại dòng crosstab chọn là Column Heading. - Diem là giá trị của bảng nên tại dòng total là Max, tại dòng crosstab chọn là Value. Kết quả thực hiện: 6.3. Query thêm, xóa, sửa 6.3.1. Make – Table Query Trong các phần trên, truy vấn được tạo theo hai chế độ: chế độ thiết kế (Design) và chế độ xem kết quả (View). Để có thể lưu kết quả của query nhằm mục đích sử dụng sau này, Access cung cấp Make-Table Query. Make-Table Query hoàn toàn giống như một Select Query bình thường, chỉ khác là cho phép lưu kết quả thành một bảng.
  • 73. Ví dụ 12: Tính số sinh viên theo từng Khoa và lưu vào bảng DemSinhVien. Trước tiên thiết kế Select query đếm số sinh viên theo từng Khoa như bình thường. Sau đó vào menu Query  Make-Table Query. Sau đó nhập vào tên của bảng cần lưu kết quả Để chính thức lưu kết quả vào bảng DemSinhVien, click vào biểu tượng Run (biểu tượng View vẫn có tác dụng xem trước kết quả như bình thường) Sau khi nhấn nút Run, chọn Yes ở hộp thoại tiếp theo. Quay trở lại màn hình xem Table của database, xuất hiện bảng DemSinhVien.