129
TRƯỜNG ĐẠI HC NHA TRANG KHOA CÔNG NGHTHÔNG TIN BMÔN HTHNG THÔNG TIN (Lưu hành nội b) Nha Trang, tháng 04 năm 2011 BÀI GING TIN HỌC ỨNG DỤNG DÀNH CHO SINH VIÊN CÁC NGÀNH KINH TẾ

Gt tin hocungdung_access

  • Upload
    lam04dt

  • View
    290

  • Download
    2

Embed Size (px)

DESCRIPTION

access

Citation preview

Page 1: Gt tin hocungdung_access

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Ế

Page 2: Gt tin hocungdung_access
Page 3: Gt tin hocungdung_access

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Ế

Page 4: Gt tin hocungdung_access
Page 5: Gt tin hocungdung_access

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 ..............................................................................................

Page 6: Gt tin hocungdung_access

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ố .................................................................................................

Page 7: Gt tin hocungdung_access

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 ............................................................................................................

Page 8: Gt tin hocungdung_access

iv

Page 9: Gt tin hocungdung_access

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

Page 10: Gt tin hocungdung_access

vi

Page 11: Gt tin hocungdung_access

Phần I

NHẬP MÔN CƠ SỞ DỮ LIỆU

Page 12: Gt tin hocungdung_access

2

Page 13: Gt tin hocungdung_access

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.

Page 14: Gt tin hocungdung_access

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

Page 15: Gt tin hocungdung_access

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

Page 16: Gt tin hocungdung_access

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- .

Page 17: Gt tin hocungdung_access

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)

Page 18: Gt tin hocungdung_access

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ính tên quan hệ

bộ

Page 19: Gt tin hocungdung_access

(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

Page 20: Gt tin hocungdung_access

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

Page 21: Gt tin hocungdung_access

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:

Page 22: Gt tin hocungdung_access

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

Page 23: Gt tin hocungdung_access

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

Page 24: Gt tin hocungdung_access

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

Page 25: Gt tin hocungdung_access

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

Page 26: Gt tin hocungdung_access

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

Page 27: Gt tin hocungdung_access

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

Page 28: Gt tin hocungdung_access
Page 29: Gt tin hocungdung_access

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

Page 30: Gt tin hocungdung_access

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)

Page 31: Gt tin hocungdung_access

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)

Page 32: Gt tin hocungdung_access

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.

Page 33: Gt tin hocungdung_access

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ế

Page 34: Gt tin hocungdung_access

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)

Page 35: Gt tin hocungdung_access

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

Page 36: Gt tin hocungdung_access

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

Page 37: Gt tin hocungdung_access

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

Page 38: Gt tin hocungdung_access

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

Page 39: Gt tin hocungdung_access

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

Page 40: Gt tin hocungdung_access
Page 41: Gt tin hocungdung_access

Phần II

HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU

MICROSOFT ACCESS

Page 42: Gt tin hocungdung_access

2

Page 43: Gt tin hocungdung_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

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

Page 44: Gt tin hocungdung_access

Ở 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

Page 45: Gt tin hocungdung_access

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 đỏ

Page 46: Gt tin hocungdung_access

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)

Page 47: Gt tin hocungdung_access

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)

Page 48: Gt tin hocungdung_access

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.

Page 49: Gt tin hocungdung_access

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.

Page 50: Gt tin hocungdung_access

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

Page 51: Gt tin hocungdung_access

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ông Tạo chỉ mục

Page 52: Gt tin hocungdung_access

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)

Page 53: Gt tin hocungdung_access

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

Page 54: Gt tin hocungdung_access

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

Page 55: Gt tin hocungdung_access

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.

Page 56: Gt tin hocungdung_access

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.

Page 57: Gt tin hocungdung_access

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.

Page 58: Gt tin hocungdung_access

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.

Page 59: Gt tin hocungdung_access

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ệ )

Page 60: Gt tin hocungdung_access

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.

Page 61: Gt tin hocungdung_access

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.

Page 62: Gt tin hocungdung_access

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

Page 63: Gt tin hocungdung_access

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:

Page 64: Gt tin hocungdung_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ả

Page 65: Gt tin hocungdung_access

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:

Page 66: Gt tin hocungdung_access

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

Page 67: Gt tin hocungdung_access

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:

Page 68: Gt tin hocungdung_access

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

Page 69: Gt tin hocungdung_access

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

Page 70: Gt tin hocungdung_access

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.

Page 71: Gt tin hocungdung_access

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)

Page 72: Gt tin hocungdung_access

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.

Page 73: Gt tin hocungdung_access

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.

Page 74: Gt tin hocungdung_access

6.3.2. Update Query

Sau khi đã nhập dữ liệu vào các table, nếu muốn thay đổi dữ liệu, một cách thực hiện

là mở các table để cập nhật trực tiếp trên các table đó. Tuy nhiên nếu dữ liệu cần sửa đổi

nhiều, thì việc cập nhật tốn nhiều công sức. Trong thực tế, việc thay đổi dữ liệu thường

theo một quy tắc nào đó. Ví dụ: tăng học bổng các sinh viên thêm 50%, hay bổ sung các

môn học thêm một tín chỉ.

Access cung cấp query update để có thể thực hiện việc cập nhật đó một cách tự động.

Ví dụ 1 : Tăng học bổng cho các sinh viên nữ thêm 50%.

Để thực hiện truy vấn này, trước tiên tạo một Select Query cho bảng SinhVien với 2

trường được chọn là HocBong và GioiTinh

Sau đó vào menu Query Update Query.

Sau khi chọn kiểu query là Update Query, phần thiết kế xuất hiện dòng Update To.

- Cột HocBong là cột sẽ phải cập nhật dữ liệu mới, do đó trong dòng Update to,

nhập vào biểu thức [HocBong]*1,5

- Cột GioiTinh, nhập điều kiện chọn là No để chọn ra các sinh viên nữ tăng học

bổng (Giả sử khi thiết kế bảng SinhVien ta thiết lập giá trị No ở trường GioiTinh để chỉ

sinh viên nữ)

Sau khi thiết kế truy vấn xong, click Run để thật sự cập nhật dữ liệu (biểu tượng

View để xem trước các dòng được chọn).

Nhấn nút Yes để cập nhật. Kết quả của bảng SinhVien sau khi update là:

Page 75: Gt tin hocungdung_access

6.3.3. Delete Query

Tương tự như Update Query, Delete Query cũng được dùng để xóa cùng lúc nhiều

dòng trong bảng. Các dòng cần xóa phải thỏa mãn một điều kiện nào đó.

Ví dụ 14: Hủy bỏ kết quả của lớp học có mã ‘ ’.

MaSV MaLop Diem

5202 01 4

5202 02 7

5202 03 8

5202 04

5308 01 3

5308 02

5308 03

Để thực hiện truy vấn này, trước tiên ta tạo một Select Query cho bảng KetQua với

trường được chọn là MaLop

Sau đó vào menu Query Delete Query.

Ở dòng Criteria nhập giá trị mã môn học cần xóa là ‘ ’. Click Run, sau đó click

Yes, Access sẽ tiến hành xóa trong bảng KetQua.

6.3.4. Append Query

Tương tự như Make-Table Query, Append Query cũng được dùng để lưu lại kết quả

truy vấn. Điểm khác nhau là Make-Table Query tạo ra một bảng mới. Còn Append thì lưu

kết quả vào một bảng đã có sẵn.

Ví dụ, để lưu trữ điểm trung bình của từng sinh viên trong từng học kỳ (xem ví dụ

10), chúng ta có thể thiết kế thêm một bảng DiemTrungBinh như sau:

Page 76: Gt tin hocungdung_access

Sau đó để lưu trữ điểm trung bình của từng sinh viên trong học kỳ năm học 2010,

thực hiện truy vấn như trong ví dụ 10 và chuyển thành Append Query, vào menu Query

Append Query.

Một hộp thoại xuất hiện yêu cầu cho biết bảng dữ liệu đích:

Thực hiện chứ năng Run tương tự như các query Update, Delete. Kết quả của truy

vấn sẽ được lưu vào table DiemTrungBinh. Sau đó có thể lưu trữ tiếp điểm trung bình của

các học kỳ khác.

Page 77: Gt tin hocungdung_access

6.4. Truy vấn có tham số

Xét câu truy vấn: Liệt kê các sinh viên đạt mức học bổng từ đến

( HocBong>=300 AND HocBong<=500 (SinhVien)

Trong câu truy vấn này, hai con số 00 và được ghi cố định trong lúc thiết kế ở

màn hình Design. Nếu cần thay đổi phạm vi của HocBong (ví dụ, từ đến ) thì phải

mở lại màn hình thiết kế và sửa lại.

Một cách thực hiện khác hiệu quả hơn là quy các con số giới hạn trên thành các tham

số. Khi thực hiện truy vấn thì Access mới yêu cầu nhập giá trị tham số.

Khi nhấn nút xem kết quả, Access yêu cầu nhập giá trị tham số để xử lý truy vấn:

Chú ý: Tham số phải được đặt trong dấu [ ] và không được trùng tên bất kỳ

trường nào của các bảng tham gia truy vấn.

Page 78: Gt tin hocungdung_access

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

7.1. Khái niệm Form

Form là một thành phần trong CSDL Access hỗ trợ thiết kế giao diện giữa người sử

dụng và CSDL.

Có hai cách để xây dựng Form trong Access:

Sử dụng Form Wizard: Đây là cách rất đơn giản, nhanh chóng, dễ dùng giúp

tạo nhanh một Form. Tuy nhiên Form được tạo ra theo những mẫu (templates)

có sẵn nên chỉ có thể đáp ứng những nhu cầu đơn giản.

Sử dụng Form Design View: một công cụ giúp tạo ra các form đáp ứng nhiều

yêu cầu khác nhau của người sử dụng,

Chú ý: Thông thường nên sử dụng Form Wizard để hình thành các Form đơn

giản sau đó sử dụng tiếp Form Design View để tiếp tục thiết kế.

7.2. Sử dụng Form Wizard để tạo Form

Phần này trình bày việc tạo Form bằng cách sử dụng Form Wizard với ví dụ là trình

bày và nhập liệu cho bảng SinhVien.

Bước 1: Trong cửa sổ CSDL đang sử dụng,

Chọn Forms → Create form by using wizard.

Bước 2: Chọn thông tin cần đưa lên Form

Tại mục Tables/ Queries chọn Table: SinhVien

Chọn bảng (table) hay truy vấn

(query) cần thiết cho Form

Page 79: Gt tin hocungdung_access

Việc chọn table SinhVien có nghĩa là Form sẽ tương tác với các giá trị trong các cột

của bảng SinhVien. Trong Available Fields hiển thị các trường có trong bảng SinhVien mà

chưa được chọn để hiển thị trên Form. Trong Selected Fields chứa các trường sẽ hiển thị

trên Form.

Để chọn một vài trường vào Selected Fields, chọn trường ở Available Fields rồi click

. Để lấy tất cả các trường từ Available Fields, click .

Ngược lại, các nút và để loại bỏ một vài hoặc tất cả các trường

trong Selected Fields.

Sau khi chọn được các trường cần thiết vào Selected Fields, click Next

Bước 3: Chọn kiểu trình bày (layout) của Form

Tại giao diện này, Access cung cấp một số mẫu (template) cho việc hiển thị dữ liệu

lên Form. Có 4 kiểu chính

- Columnar: hiển thị dữ liệu của một bản ghi trên một trang Form.

- Tabular: hiển thị dữ liệu của tất cả các record trên một trang Form

- Datasheet: hiển thị dữ liệu của tất cả các bản ghi trên một trang Form dưới dạng

bảng (tương tự như bảng được mở ở dạng Open)

- Justified: Phân bố dữ liệu của bản ghi trên Form theo cấu trúc định sẵn của Access.

Thông thường chọn Columnar Next

Bước 4: Chọn kiểu dáng (Style) cho form.

Trong giao diện này Access cung cấp một danh sách các kiểu dáng. Hãy thử từng

mẫu và chọn cho Form một kiểu dáng phù hợp.

Thông thường chọn Standard Next

Page 80: Gt tin hocungdung_access

Bước 5: Hoàn thiện công việc

- Đặt tiêu đề hiển thị cho Form, tiêu đề này cũng sẽ là tên của Form (tuy nhiên tên

Form có thể được thay đổi ở cửa sổ các đối tượng CSDL mà không ảnh hưởng đến tiêu đề

Form).

- Lựa chọn Open the form to view or enter information: hiển thị Form sau khi click Finish

- Lựa chọn Modify the form’s design: mở giao diện Form Design để chỉnh sửa Form.

Nếu lựa chọn hiển thị Form thì:

Chỉnh sửa lại tên các nhãn, tiêu đề trong Form: click biểu tượng thiết kế Form

Xem/Thiết

kế Form

Hiển thị bản

ghi đầu tiên

Hiển thi bản

ghi trước đó

Hiển thị bản

ghi tiếp theo

Hiển thị bản

ghi cuối cùng

Thêm bản ghi

mới

Page 81: Gt tin hocungdung_access

7.3. Sử dụng Design View để tạo Form

Để tạo ra được form mang tính chuyên nghiệp và đáp ứng được sát yêu cầu thực tế

bắt buộc phải sử dụng đến Form Design View. Nói như vậy không có nghĩa là không dùng

Form Wizard để tạo form, mà trong nhiều tính huống vẫn dùng Form Wizard rồi sử dụng

đến Form Design View để tiếp tục hoàn thiện yêu cầu.

Tạo form mới ngay từ đầu

Chọn Forms → Create form in Design view.

Thiết kế lại form đã tạo trước đó bằng Form Wizard

Chọn Form click vào biểu tượng thiết kế

Page 82: Gt tin hocungdung_access

2

Màn hình thiết kế form xuất hiện như sau

1) Cửa sổ thuộc tính (Properties): mô tả chi tiết về đối tượng của form đang được thiết kế

Chú ý:

- Nguồn dữ liệu được sử dụng để hiển thị trên form được khai báo ở thẻ All của

đối tượng Form

- Muốn thay đổi định dạng của đối tượng trên form (ví dụ: font chữ, màu nền,

màu chữ…) thì chọn đối tượng tinh chỉnh ở cửa sổ thuộc tính.

2) Thanh công cụ Toolbox: nơi chứa những đối tượng, những công cụ có thể đưa lên

form với mục đích thiết kế giao diện và điều khiển dữ liệu theo mục đích thiết kế.

3) Field List: hiển thị danh sách các trường của nguồn dữ liệu được khai báo ở cửa sổ

thuộc tính. Muốn hiển thị dữ liệu của trường nào trên form chỉ cần kéo trường đó

trong Field List vào Form Design.

Phần tiêu đề

đầu

Phần thân

form

Phần tiêu đề

cuối

Danh sách các trường

của nguồn dữ liệu

(Table/Query)

Bật/Tắt cửa sổ

nguồn dữ liệu

Bật/Tắt cửa sổ

Toolbox

Bật/Tắt cửa sổ

thuộc tính của form

Cửa sổ thuộc tính

của form

Cửa sổ các

công cụ thiết kế

(Toolbox)

Nguồn dữ liệu

Đối tượng đang

thiết kế

Page 83: Gt tin hocungdung_access

7.4. Main-Sub Form

Đặt vấn đề: cần xây dựng một Form hiển thị thông tin các Khoa, khi một Khoa được

hiển thị thì phải hiển thị luôn danh sách sinh viên thuộc Khoa đó.

Trong trường hợp này, Access cung cấp kỹ thuật tạo form có thể thỏa mãn yêu cầu

trên, form được tạo ra được gọi là Main-Sub form. Có thể hiểu Sub form là form này lồng

trong form kia (có thể lồng trong nhau nhiều lớp). Form chứa gọi là form cha (Main form);

form được lồng vào gọi là form con (Sub form). Việc xử lý dữ liệu trên từng form có thể

xử lý độc lập hoặc có quan hệ với nhau tuỳ theo mục đích công việc.

Ví dụ: các bước tạo một một Main-Sub form cho bảng Khoa và SinhVien như hình

bên dưới:

Cách 1: Tạo Main Form và Sub Form riêng rồi liên kết lại với nhau:

Bước 1: Tạo Form hiển thị cho bảng Khoa bằng Wizard và chọn Style Columnar.

Đặt tên cho Form này là Khoa_MainForm

Page 84: Gt tin hocungdung_access

Bước 2: Tạo Form hiển thị cho bảng SinhVien bằng Wizard và chọn Style DataSheet, tên

là SinhVien_SubForm. Form này có hình dạng tương tự như phần DataView của table

SinhVien.

Bước 3: Mở Form Khoa ở chế độ Design View → Mở rộng phần Detail → Kéo

Form SinhVien_SubForm vào phần trống vừa được tạo ra.

Page 85: Gt tin hocungdung_access

Bước 4: Điều chỉnh giao diện và chuyển qua Form View

Trong Sub Form SinhVien hiển thị các sinh viên thuộc Khoa Công nghệ Thông tin.

Giao diện Main-Sub như trên trình bày những sinh viên trong từng khoa. Đồng thời

có thể tiến hành thêm, xóa, sửa thông tin SinhVien.

Cách 2: Tạo Main-Sub Form cùng lúc:

Bước 1: Sử dụng form Wizard, chọn các thuộc tính của bảng Khoa:

Page 86: Gt tin hocungdung_access

Bước : Chọn tiếp các thuộc tính của bảng SinhVien:

Bước : trong mục này chọn là “by Khoa” để tạo Main-Sub form (nếu chọn “by

SinhVien” thì chỉ là form thường)

Bước : trong mục này chọn là “by Khoa” để tạo Main-Sub form. Access tự động

hiểu rằng Khoa là Main-Form còn SinhVien là Sub-Form.

Bước 4: Chọn kiểu cho Sub form là Datasheet

Page 87: Gt tin hocungdung_access

Bước 5: Lưu lại tên của form Main và form Sub

Kết quả đạt được cũng tương tự như việc tạo 2 form riêng rồi liên kết lại với nhau:

7.5. Sử dụng nút lệnh (Command Button)

Nút lệnh là một biểu tượng ở trên form mà khi click chột vào thì form sẽ thực hiện

một công việc nào đó, ví dụ: khi nhấn lên nút

- Một bảng lương sẽ được in ra.

- Form đang làm việc sẽ được đóng lại.

Access cung cấp tính năng Control Button Wizard giúp người thiết kế tạo một số

loại nút lệnh mà không cần biết nhiều đến lập trình. Dưới đây là các bước sử dụng:

Ví dụ: Tạo nút

Bước : Mở form ở chế độ Design và mở cửa sổ các công cụ thiết kế (Toolbox).

Chú ý phải kích hoạt tính năng Control Wizard của toolbox

Page 88: Gt tin hocungdung_access

Bước : Mở rộng phần Detail của Form, chọn biểu tượng tạo nút lệnh trên

Toolbox, dùng chuột vẽ nút lệnh ở vị trí thích hợp

Control Wizard

Page 89: Gt tin hocungdung_access

Bước : Một hộp thoại xuất hiện yêu cầu chọn hành động cho nút lệnh

- Categories: chứa các nhóm thao tác mà một nút lệnh có thể nhận

- Actions: chứa danh sách các lệnh của mỗi nhóm.

Nhóm / Lệnh Ý nghĩa

Record Navigation Định hướng trỏ chuột trên bản ghi

- Go To First Record - Chuyển về bản ghi đầu

- Go To Last Record - Chuyển đến bản ghi cuối cùng

- Go To Next Record - Chuyển đến bản ghi kề sau

- Go To Previous Record - Chuyển về bản ghi kề trước

Record Operations Các xử lý với bản ghi

- Add New Record - Thêm bản ghi mới

- Delete Record - Xoá bản ghi hiện tại

- Update Record - Cập nhật bản ghi hiện tại

- Undo Record - Phục hồi thay đổi dữ liệu bản ghi

Form Operations Các xử lý với Form

- Close Form - Đóng form

- Open Form - Mở một form khác

Report Operations Các xử lý với Report

- Preview report - Xem trước nội dung (Preview) report

- Print report - In report

- Send report to file - Xuất report ra một tập tin khác

Applications Xử lý ứng dụng

- Quit Application - Thoát khỏi Access

- Run Application - Chạy một ứng dụng nào đó (ví dụ, file .exe)

Miscellaneous Một số thao tác khác

- Print table - In nội dung một bảng

- Run macro - Thi hành một macro

- Run query - Thi hành một query

Page 90: Gt tin hocungdung_access

Với yêu cầu đóng form thì chọn: Categories là Form Actions và Actions là Close Form.

Chọn xong nhấn Next:

Bước : Chọn hiển thị cho nút lệnh

- Tuỳ chọn Text nếu muốn hiển thị nội dung bằng chữ trên nút lệnh.

- Tuỳ chọn Picture nếu muốn thể hiện một hình ảnh lên nút lệnh.

Cuối cùng, nhấn Finish để kết thúc việc tạo một nút lệnh.

Page 91: Gt tin hocungdung_access

CHƯƠNG . BÁO CÁO (REPORT)

Report là công cụ dùng thiết kế in ấn dữ liệu hữu hiệu trong Access. Trong chương

này có các nội dung cụ thể bao gồm:

Các khái niệm về Report.

Sử dụng Report Wizard.

8.1. Khái niệm về Report

Report là một thành phần trong CSDL Access cho phép thiết kế các bảng biểu, báo

cáo để có thể in ra. Khác với Form, Report chỉ có thể truy xuất dữ liệu để hiện thị mà

không có khả năng thay đổi dữ liệu.

Cấu trúc Report gồm có các phần:

Page Header và Page Footer: tương tự như Header và Footer của Word.

Report Header và Report Footer: phần này dùng để hiển thị mọi thứ dùng

chung cho các trang của báo cáo. Ví dụ: tên báo cáo, ngày lập, người lập…

Report Detail: phần này dùng để hiển thị các nội dung được truy xuất từ

CSDL. Ví dụ: danh sách sinh viên của Khoa Kinh tế…

8.2. Sử dụng Report Wizard để tạo báo cáo

Phần này trình bày việc tạo báo cáo bằng cách sử dụng Report Wizard.

Ví dụ: tạo một báo cáo cho bảng Khoa.

Bước 1: Trong cửa sổ CSDL đang sử dụng,

click chọn Reports → Create report by using wizard.

Page 92: Gt tin hocungdung_access

2

Bước 2: Tại mục Tables/Queries chọn Khoa

Việc chọn table Khoa có nghĩa là giá trị của các cột trong bảng Khoa sẽ được sử

dụng để hiển thị trên báo cáo.

Tương tự như khi tạo Form, Available Fields hiển thị các trường của bảng Khoa,

Selected Fields hiển thị các cột được chọn hiển thị trong báo cáo. Nút (>) để chọn trường,

nút (>>) để chọn tất cả các trường, nút (<) để loại bỏ trường và nút (<<) để loại bỏ tất cả

các trường.

Bước 3: Chọn trường vào trong Selected Fields và click Next.

Page 93: Gt tin hocungdung_access

Trong giao diện Grouping muốn hiển thị dữ liệu theo nhóm giá trị của trường nào thì

Add trường đó từ danh sách bên trái hộp thoại sang hộp preview bên phải hộp thoại.

Ví dụ: nếu tiến hành grouping sinh viên theo MaKhoa thì dữ liệu hiển thị trên báo

cáo có dạng như sau:

MaSV HoSV TenSV NgaySinh GioiTinh HocBong

KT

5202 Lê Cường 21/5/1 1 Nam 200

5207 Nguyễn Sơn 17/7/1 0 Nữ 800

CN

520 Ngô Hòa 16/8/1 0 Nam 200

5306 Huỳnh Nga 22/3/1 2 Nữ 400

5308 Phạm Trang 12/7/1 0 Nữ 800

Bước 4: Trong ví dụ này chỉ cần hiển thị một danh sách chung nên không cần

thiết lập nhóm ở bước này. Click Next

Giao diện này cho phép chọn trường để sắp xếp kết quả hiện thị trên báo cáo (các

dòng dữ liệu trên báo cáo sắp xếp theo trường được chọn).

Report wizard cho phép tối đa mức ưu tiên sắp xếp dữ liệu được đánh số từ đến 4.

Trường nào thiết lập trước, sẽ được ưu tiên sắp xếp trước.Trong trường hợp các giá trị

trường đó trùng nhau, Access sẽ chuyển đến các mức tiếp theo để sắp xếp. Kiểu sắp xếp

(theo chiều tăng hoặc giảm) có thể thiết lập khi nhấn nút Ascending hoặc Descending bên

cạnh trường được chọn.

Page 94: Gt tin hocungdung_access

Bước 5: Chọn TenKhoa và click Next.

Giao diện này cung cấp 3 lựa chọn bố cục báo cáo (Layout) là: Columnar, Tabular,

Justified và 2 cách bố trí hướng trang giấy (Orentation) là: Portrait và Landscape. Mỗi tùy

chọn trên Access đều cung cấp hình ảnh xem trước (Preview).

Bước 6: Giữ nguyên tùy chọn mặc định và click Next

Trong giao diện này Access cung cấp danh sách các phong cách (style) để chọn.

Page 95: Gt tin hocungdung_access

Bước 7: Chọn Formal và click Next.

- Đặt tiêu đề hiển thị cho Report, tiêu đề này cũng sẽ là tên của Report (tuy nhiên

tên Report có thể được thay đổi ở cửa sổ các đối tượng CSDL mà không ảnh hưởng đến

tiêu đề Report).

- Lựa chọn Preview the report: hiển thị Report sau khi click Finish

- Lựa chọn Modify the report’s design: mở giao diện Report Design để chỉnh sửa

Nếu lựa chọn hiển thị Report thì

Xem 4 trang cùng lúc

Chuyển đổi chế độ

xem/sửa báo cáo

Hiển thị trang cuối cùng Hiển thị trang đầu tiên

Hiển thị trang trước đó

Page 96: Gt tin hocungdung_access

Bước : Chỉnh sửa báo cáo

Click Report Design.

Chỉnh sửa nội dung báo cáo như sau:

Chuyển qua chế độ View để xem báo cáo

Page 97: Gt tin hocungdung_access

8.3. Tạo báo cáo có phân nhóm

Trong thực tế có rất nhiều báo cáo hiển thị dữ liệu theo từng nhóm. Ví dụ: Hiển thị

danh sách sinh viên theo từng khoa, hiển thị danh sách hàng được mua theo từng đơn đặt

hàng... Microsoft Access cũng hỗ trợ việc tạo ra các báo cáo có phân nhóm một cách đơn

giản thông qua Report Wizard.

Phần này minh họa việc tạo báo cáo hiển thị danh sách sinh viên theo từng khoa.

Bước 1: Trong cửa sổ CSDL đang sử dụng,

click chọn Reports → Create report by using wizard. Chọn table

Khoa và sau đó chọn cột TenKhoa.

Phân nhóm

(Group header)

Detail

Page 98: Gt tin hocungdung_access

Bước 2: Tiếp theo chọn table SinhVien và các trường MaSV, HoSV, TenSV,

NgaySinh, GioiTinh, HocBong.

Page 99: Gt tin hocungdung_access

Bước 3: Trong giao diện Grouping, ta chọn nhóm “By Khoa” rồi click nút (>)

Trong khung Preview chúng ta thấy báo cáo sẽ hiển thị MaSV, HoSV và TenSV theo

từng TenKhoa.

Bước 4: Click Next

Page 100: Gt tin hocungdung_access

Bước 5: Chọn MaSV và click Next.

Giao diện này cung cấp 6 lựa chọn bố cục báo cáo (Layout) và 2 cách bố trí hướng

trang giấy (Orentation). Mỗi tùy chọn trên Access đều cung cấp hình ảnh xem trước

(Preview).

Bước 6: click Next chọn Style là “Corporate” và click Next

Page 101: Gt tin hocungdung_access

Bước : Nhập vào tên Report và nhấn Finish

Chỉnh sửa báo cáo như sau:

Chuyển qua chế độ View để xem báo cáo

Report Header: Xuất hiện duy nhất trong trang

đầu tiên của báo cáo. (Report footer xuất hiện

duy nhất trong trang cuối của báo cáo)

Page Header: Xuất hiện trong mọi trang

của báo cáo. (Page Footer cũng tương tự -

Giống như header và footer trong Word)

TenKhoa Header: Xuất

hiện lại khi dữ liệu trong

nhóm đã hiện thị hết

Report Detail: hiển

thị dữ liệu trong bảng

Page 102: Gt tin hocungdung_access

2

Page 103: Gt tin hocungdung_access

CHƯƠNG . BÀI TẬP THỰC HÀNH

9.1. Bài tập – Quản lý Sinh viên

Tạo Database với tên DaiHoc.mdb. Thực hiện lại bài tập đã học trong phần lý thuyết

về cơ sở dữ liệu DaiHoc như sau:

1) Thiết kế cơ sở dữ liệu gồm các bảng sau:

(Chú ý thực hiện mối liên hệ giữa các bảng và thiết kế lookup cho các thuộc tính

khóa ngoại)

Khoa(MaKhoa, TenKhoa)

Field Name Data Type Field Size Format Required

MaKhoa Text 2 > Yes

TenKhoa Text 50 Yes

SinhVien(MaSV, HoSV, TenSV, NgaySinh, GioiTinh, HocBong, MaKH)

Field Name Data Type Field Size Format Required

MaSV Text 4 > Yes

HoSV Text 50 Yes

TenSV Text 0 Yes

NgaySinh Date/Time Short Date Yes

GioiTinh Yes/No Nam, Nữ Yes

HocBong Number Long Integer Yes

MaKh Text 2 Yes

MonHoc(MaMH, TenMH, SoTinChi)

Field Name Data Type Field Size Format Required

MaMH Text 3 > Yes

TenMH Text 50 Yes

SoTinChi Number byte Yes

LopHoc(MaLop, MaMH, HocKy, NamHoc, GiaoVien)

Field Name Data Type Field Size Format Required

MaLop Text 2 > Yes

MaMH Text 3 Yes

HocKy Number byte Yes

NamHoc Number Long Integer Yes

GiaoVien Text 50 Yes

KetQua(MaSV, MaLop, Diem)

Field Name Data Type Field Size Format Required

MaSV Text 4 > Yes

MaLop Text 2 > Yes

Diem Number Decimal

Page 104: Gt tin hocungdung_access

Mối liên hệ:

2) Nhập dữ liệu cho các bảng theo hình bên dưới

Khoa MonHoc

MaKhoa TenKhoa MaMH TenMH SoTinChi

CN Công nghệ Thông tin 02 Quản trị học 2

KT Kinh tế 207 Cấu trúc dữ liệu 3

NN Ngoại ngữ 306 Tin học cơ sở 2

403 Kế toán tài chính 3

SinhVien

MaSV HoSV TenSV NgaySinh GioiTinh HocBong MaKH

5202 Lê Cường 2 /5/ 99 Nam 200 KT

5207 Nguyễn Sơn 7/7/ 990 Nữ 800 KT

5209 Ngô Hòa 6/8/ 990 Nam 200 CN

5306 Huỳnh Thị Nga 22/3/ 992 Nữ 400 CN

5308 Phạm Thị Trang 2/7/ 990 Nữ 800 CN

LopHoc KetQua

MaLop MaMH HocKy NamHoc GiaoVien MaSV MaLop Diem

0 306 20 0 Tuấn 5202 0 4

02 403 20 0 Nga 5202 02 7

03 306 2 20 Sơn 5202 03 8

04 207 20 0 Nam 5202 04 9

5207 02 8

5207 03 7

5209 0 5

5306 02 6

5306 04 8

5308 0 3

5308 02 9

5308 03 9

Page 105: Gt tin hocungdung_access

3) Thực hiện các câu truy vấn sau:

Truy vấn chọn (Select Query)

1. 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, NgaySinh, TenKhoa.

2. Cho biết thông tin môn học của lớp có mã lớp ‘ 2’. Liệt kê các thông tin MaLop,

MaMH, TenMH, SoTinChi, HocKy, NamHoc, GiaoVien.

3. Liệt kê các sinh viên sinh năm và có học bổng trên 500.

4. Liệt kê các sinh viên đạt mức học bổng từ đến 500

5. Liệt kê các sinh viên có ngày sinh vào tháng .

6. Liệt kê các sinh viên có tên bắt đầu là ‘T’ hoặc là ‘K’

7. Liệt kê những sinh Nữ mà họ có chứa chữ ‘Thị’ gồm các thông tin: MaSV, HoSV,

TenSV

8. Cho biết những SV có ngày sinh từ ngày đến ngày gồm

các thông tin: MaSV, HoSV, TenSV, NgaySinh, HocBong.

9. Tương tự như câu nhưng tạo cột HoTenSV thay cho hai cột HoSV và TenSV.

10. Hiển thị danh sách SV gồm các thông tin: MaSV, HoSV, TenSV, NamSinh, Tuoi

và Tuoi được sắp xếp giảm dần. Biết rằng Tuoi được tính như sau: Tuoi = năm

hiện hành – năm sinh.

11. Hiển thị bảng điểm các sinh viên gồm các thông tin: MaSV, HoTenSV, TenMH,

Diem, KetQua. Biết rằng nếu Diem < 5 thì KetQua = “Rớt”, ngược lại thì KetQua =

“Đậu”.

12. Hiển thị danh sách SV có tuổi từ 2 đến 2 , thông tin gồm: HoTenSV, Tuoi,

TenKhoa.

13. Cho biết hai sinh viên đạt mức học bổng cao nhất.

14. Cho biết hai kết quả thi cao nhất. Gồm các thông tin: HoSV, TenSV, TenMH,

NamHoc, HocKy, Diem.

15. Cho biết tên các môn học chưa mở lớp

16. Cho biết tên của các khoa chưa có sinh viên.

17. Liệt kê các kết quả học tập và cho biết thông tin sinh viên tương ứng. Gồm

MaSV, HoTenSV, MaLop, Diem.

Truy vấn trên từng nhóm (Group By Select Query)

18. Tính số lượng sinh viên và tổng học bổng của từng khoa. Gồm MaKhoa,

TenKhoa, SoSV, TongHB.

19. Tính số lượng sinh viên nữ của từng khoa.

20. Cho biết sĩ số của từng lớp học: gồm MaLop, NamHoc, HocKy, TenMH, SiSo.

21. Tính tổng số tín chỉ và điểm trung bình học kỳ năm 2 của các sinh viên.

Gồm MaSV, HoSV, TenSV, TongTinChi, DiemTB

Page 106: Gt tin hocungdung_access

22. Cho biết họ tên của hai sinh viên có điểm trung bình học kỳ năm 2 cao nhất.

23. Cho biết họ tên của sinh viên nữ xuất sắc nhất học kỳ năm 2 .

24. Cho biết bảng điểm tất cả các môn học của sinh viên có mã số ‘ 2 2’. (nếu một

môn học 2 lần thì chọn điểm số cao nhất). Gồm: MaSV, HoSV, TenSV, TenMH,

SoTinChi, Diem.

25. Cho biết điểm cao nhất của môn học ‘Tin học cơ sở’

Truy vấn chéo ( Crosstab query)

26. Cho biết số lượng sinh viên của từng Khoa theo từng giới tính nam, nữ. Gồm:

MaKhoa, TenKhoa, SoSVNu, SoSVNam.

27. Cho biết số lượng sinh viên của từng Khoa theo từng giới tính nam, nữ. Gồm:

MaKhoa, TenKhoa, SoSVNu, SoSVNam, TongSoSV.

28. Cho biết bảng thống kê điểm cuối cùng của từng sinh viên theo từng môn học như

hình bên dưới.

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

Truy vấn thêm xóa sửa

29. Từ bảng SinhVien, KetQua, LopHoc, MonHoc hãy tạo ra bảng sau có tên

BangDiem_SV gồm các thông tin: MaSV, HoTenSV, TenMH, SoTinChi, Diem,

KetQua. Trong đó KetQua sẽ là “Đậu” nếu Diem>= ngược lại là “Rớt”, và có

sắp xếp theo thứ tự MaSV tăng dần.

30. Hãy tạo ra bảng có tên Diem_TB_HK1_2010 gồm các thông tin: MaSV,

HoTenSV, SoTinChi, DiemTB. Bảng này lưu số tín chỉ và điểm trung bình của

từng sinh viên trong học kỳ năm học 2 .

31. Tăng thêm học bổng cho các SV khoa ‘Công nghệ Thông tin’ mỗi người 2

32. Tăng học bổng cho các sinh viên nữ thêm 50%.

33. Cộng thêm . điểm thi môn “Tin học cơ sở” cho những SV đã thi có điểm thấp

hơn .

34. Cộng thêm điểm cho môn “Kế toán tài chính” cho SV thuộc khoa ’Kinh tế’,

điểm tối đa của môn này là .

35. Hãy chuyển các sinh viên đang học khoa ‘Kinh Tế’ sang khoa có mã là ‘CN’

36. Xóa tất cả điểm thi của các sinh viên thuộc khoa ‘Công nghệ Thông tin’ đã thi

môn “Tin học cơ sở”.

37. Hủy bỏ kết quả của các lớp học trong học kỳ 2 năm 2 .

Truy vấn có tham số

38. Liệt kê các sinh viên có học bổng cao hơn giá trị nhập từ bàn phím.

Page 107: Gt tin hocungdung_access

Thực hiện các biểu mẫu (Form) : Hãy dùng công cụ Wizard để tạo biểu mẫu

1) Tạo Form cho phép nhập dữ liệu vào bảng Khoa, SinhVien, MonHoc

2) Tạo Form Main-Sub Form cho phép nhập dữ liệu vào bảng Lớp Học và nhập kết

quả cho các sinh viên trong lớp học đó. Main-Form lấy dữ liệu từ bảng LopHoc và

Sub-Form lấy dữ liệu từ Query 17

Page 108: Gt tin hocungdung_access

4) Dùng Report Wizard để tạo các báo cáo sau:

1) Lập báo cáo danh sách các môn học.

2) Danh sách sinh viên theo từng khoa. Lấy dữ liệu từ hai bảng Khoa và SinhVien

Page 109: Gt tin hocungdung_access

3) Cho biết bảng điểm của lớp học có mã số ‘ 2’: Dữ liệu lấy từ Query 2 và Query

4) Bảng điểm học tập theo của sinh viên có mã số ‘ 2 2’. Lấy dữ liệu từ bảng

SinhVien và Query 24.

Page 110: Gt tin hocungdung_access

9.2. Bài tập – Quản lý Bán hàng

Tạo file CSDL có tên là QLBH.MDB (Quản lý bán hàng)

1) Thiết kế cơ sở dữ liệu gồm các bảng sau :

NhaCungCap(MaNhaCC, TenNhaCC)

Field Name Data Type Description Field Properties

MaNhaCC Text Mã nhà cung cấp Field size : 2

Input Mask : 00 Required : Yes

Indexed : Yes (No Duplicates)

TenNhaCC Text Tên nhà cung cấp Field size : 50

NhanVien(MaNV, HoNV, TenNV, GioiTinh, DienThoai, Luong)

Field Name Data Type Description Field Properties

MaNV Text Mã số nhân viên Field size : 2

Input Mask : 00 Required : Yes

Indexed : Yes (No Duplicates)

HoNV Text Họ nhân viên Field size : 35

TenNV Text Tên nhân viên Field size : 10

GioiTinh Yes/No Format : ;”Nam”;”Nu”

Display control : TextBox

DienThoai Text Số điện thoại nhân viên Field size : 15

Luong Curency Lương của nhân viên

KhachHang(MaKH, HoKH, TenKH, DiaChi, DienThoai)

Field Name Data Type Description Field Properties

MaKH Text Mã số khách hàng Field size : 5

Input Mask : LL000 Required : Yes

Indexed : Yes (No Duplicates)

HoKH Text Họ khách hàng Field size : 35

TenKH Text Tên khách hàng Field size : 0

DiaChi Text Địa chỉ khách hàng Field size : 50

DienThoai Text Điện thoại khách hàng Field size : 15

LoaiMH(MaLoaiMH, TenLoaiMH)

Field Name Data Type Description Field Properties

MaLoaiMH Text Mã loại mặt hàng Field size : 2

Input Mask : 00 Required : Yes

Indexed : Yes (No Duplicates)

TenLoaiMH Text Tên loại mặt hàng Field size : 30

Page 111: Gt tin hocungdung_access

MatHang(MaMH, TenMH, DVT, MaLoaiHH, MaNhaCC)

Field Name Data Type Description Field Properties

MaMH Text Mã mặt hàng Field size : 2

Input Mask : 00

Required : Yes

Indexed : Yes (No Duplicates )

TenMH Text Tên mặt hàng Field size : 30

Required : Yes

DVT Text Đơn vị tính Field size : 5

MaLoaiMH Text Mã loại mặt hàng Dùng LOOKUP (làm tương tự)

Row Source : LOAIMH

MaNhaCC Text Mã nhà cung cấp Dùng LOOKUP (làm tương tự)

Row Source : NHACUNGCAP

HoaDonBan(SoHDB, NgayBan, MaKH, MaNV)

Field Name Data Type Description Field Properties

SoHDB Text Số hóa đơn bán Field size : 4

Input Mask : L000 Required : Yes

Indexed : Yes (No Duplicates)

NgayBan Date/Time Ngày bán Format : dd/mm/yy

Input Mask : 00/00/00

MaKH Text Mã khách hàng Thẻ Lookup :

Display Control : Combo Box

Row Source Type : Table/Query

Row Source : KHACHHANG

MaNV Text Mã nhân viên Dùng LOOKUP (làm tương tự )

Row Source : NHANVIEN

CTHDB(SoHDB, MaMH, SoLuong, DonGiaBan)

Field Name Data Type Description Field Properties

SoHDB Text Số hóa đơn bán Dùng LOOKUP (làm tương tự)

Row Source : HOADONBAN

MaMH Text Mã mặt hàng Dùng LOOKUP (làm tương tự)

Row Source : MATHANG

SoLuong Number Số lượng bán Field size : Long Integer

DonGiaBan Number Đơn giá bán Field size : Long integer

2) Thiết lập mối quan hệ giữa các bảng đã cho

Page 112: Gt tin hocungdung_access

2

MaNhaCC TenNhaCC

0 Cty trà Thái Nguyên

02 Văn phòng đại diện sữa Hà Lan

03 Cty sữa VinaMilk

04 Cty sữa đường Khánh Hòa

05 Cty nước giải khát Bến Thành

06 Công ty rượu Bình Tây

07 Cửa hàng bánh ngọt Nha Trang

08 Công ty Bia Bến Thành

09 Chợ Đầm

3) Nhập dữ liệu (tham khảo)

NhanVien

MaNV HoNV TenNV GioiTinh DienThoai Luong

0 Nguyễn Thị Anh Nữ 600 000

02 Lê Thị Anh Nữ 09 4 23456 700 000

03 Nguyễn Văn Hùng Nam 800 000

04 Đỗ Văn Hoàng Nam 700 000

05 Lê Thị Minh Nữ 700 000

06 Nguyễn Văn Lợi Nam 09 2456789 800 000

07 Hoàng Thị Liên Nữ 500 000

KhachHang

MaKH HoKH TenKH DiaChi DienThoai

KH001 Nguyễn Thị Minh Trang 12 Trần Phú, Nha Trang

KH002 Lê Công Thành Trí 34 Bắc Sơn, Nha Trang

KH003 Nguyễn Văn Nghĩa 78 Hồ Văn Huê, TpHCM 09 4235688

KH004 Đỗ Văn Bá Hòa 56 Võ Văn Tần, Đà Nẵng 09 4246899

KH005 Lê Anh Đoàn Trần Nghiệp

KH006 Nguyễn Bình Nguyễn Đình Chiểu

LoaiMH NhaCungCap

MaLoaiMH TenLoaiMH

0 Thức uống

02 Gia vị

03 Đồ làm sẵn

04 Bơ sữa

05 Trái cây khô

06 Vải

Page 113: Gt tin hocungdung_access

MatHang

MaMH TenMH DVT MaLoaiMH MaNhaCC

0 Trà Lipton Gói 0 0

02 Nước khoáng Thanh Da Chai 0 05

03 Xúc xích Cây 03 09

04 Lạp xưởng Kg 03 09

05 Sữa Lon 04 03

CTHDB HoaDonBan

SoHDB MaMH SoLuong DonGiaBan SoHDB MaKH MaNV NgayBan

B001 0 0 0000 B001 KH001 0 0 /0 /20 0

B002 02 200 3000 B002 KH002 02 08/03/20 0

B003 0 20 20000 B003 KH00 02 4/06/20 0

B003 03 70 7000 B004 KH003 03 2 /06/20 0

B001 04 30 5000 B005 KH001 04 3 /07/20 0

B004 05 70 7000 B006 KH003 04 / 0/20 0

B002 04 30 5000 B007 KH004 04 2 / 2/20 0

4) Thực hiện các truy vấn sau :

Truy vấn chọn (Select Query)

1. Liệt kê danh sách nhân viên bán hàng có trong cửa hàng.

2. Liệt kê danh sách mặt hàng có trong cửa hàng (Mã MH, Tên MH, DVT, Tên loại MH).

3. Liệt kê danh sách nhà cung cấp hàng hóa cho cửa hàng (Mã nhà cung cấp, Tên nhà

cung cấp)

4. Lập danh sách các khách hàng mua hàng từ 2 đến ngày 2 (Mã KH,

Tên KH, Địa chỉ, Điện thoại, Ngày mua hàng), sắp xếp theo tên, nếu tên trùng nhau

thì sắp xếp theo họ.

5. Lập danh sách các khách hàng mua hàng trong tháng 6 năm 2 (Mã KH, Tên

KH, Địa chỉ, Điện thoại, Ngày mua hàng).

6. Tìm tên và địa chỉ các khách hàng đã mua hàng trước ngày 2 , sắp xếp theo

ngày bán hàng.

7. Tìm tên và địa chỉ các khách hàng đã mua hàng vào ngày 2 .

8. Liệt kê danh sách khách hàng có ký tự đầu của tên là H.

9. Liệt kê các chi tiết hóa đơn với các thông tin bổ sung (Số HD bán, Ngày bán, Mã

MH, Tên mặt hàng, Số lượng, Đơn giá bán, Thành tiền).

Truy vấn trên từng nhóm (Group by)

10. Liệt kê danh sách các hóa đơn đã bán trong cửa hàng (Số HD bán, Ngày bán, Mã

KH, Họ Tên KH, Mã NV, Họ tên NV, Thành tiền HĐ).

11. Hãy liệt kê toàn bộ tên khách hàng và tổng số hoá đơn của mỗi khách hàng.

Page 114: Gt tin hocungdung_access

12. Liệt kê các mặt hàng cùng với tên loại MH, giá trung bình, giá cao nhất, giá thấp nhất khi

bán ra.

13. Như câu 2 nhưng chỉ đối với mặt hàng có tên “Thức uống“

14. Như câu 2 nhưng chỉ đối với mặt hàng được cung cấp bởi nhà cung cấp có tên

“Chợ Đầm”.

15. Liệt kê mỗi khách hàng nếu phân theo từng mặt hàng thì đã đặt bao nhiêu mặt hàng.

16. Như câu nhưng chỉ quan tâm đến khách hàng có tên là Anh.

17. Thống kê mỗi khách hàng có bao nhiêu hóa đơn trước ngày 2 .

18. Lập danh sách các khách hàng đã mua các mặt hàng nào, số lượng bao nhiêu trong

khoảng thời gian từ 2 đến 26/11/20 .

19. Tính số lượng và số tiền bán hàng của từng mặt hàng trong tháng đầu năm 2 .

20. Tính tổng số tiền bán hàng theo từng loại mặt hàng.

21. Tính số tiền bán hàng của từng loại mặt hàng trong tháng đầu năm 2 .

22. Thống kê số tiền bán hàng theo tháng, theo quí, theo năm (tạo từng query).

23. Hiển thị thông tin 2 khách hàng có số tiền mua hàng cao nhất.

Truy vấn có tham số (Parameter query)

24. Liệt kê Họ, tên khách hàng và tổng số hóa đơn của khách hàng với tên nhập từ bàn

phím.

25. Liệt kê các thông tin về nhân viên với mã nhân viên được nhập từ bàn phím.

26. Lập danh sách các khách hàng mua hàng trong khoảng thời gian từ ngày x đến ngày y

(với x, y được nhập từ bàn phím) (Mã KH, HọTên KH, Địa chỉ, Điện thoại).

27. Thực hiện lại câu số 10 chỉ hiện thị một hóa đơn với số hóa đơn nhập từ bàn phím.

28. Lập danh sách các khách hàng đã mua các mặt hàng, số lượng bao nhiêu trong

khoảng thời gian từ ngày x đến ngày y (với x, y được nhập từ bàn phím).

Truy vấn chéo ( Crosstab query)

29. Thống kê các khách hàng đã mua các mặt hàng hóa nào với số lượng bao nhiêu.

30. Tính số tiền bán hàng cho mỗi khách hàng trong từng quí năm 2 .

31. Tính số tiền bán hàng của khách hàng có tên là “Anh” trong từng quí năm 2 .

Truy vấn thêm, xóa, sửa

32. Tạo một bảng mới gồm các hàng hóa có mã số của nhà cung cấp là “ 2”.

33. Xóa các bản ghi của bảng HANGHOA do nhà cung cấp có mã số là “ 2” cung cấp.

34. Thêm lại các bản ghi đã bị xóa từ bản HANGHOA bởi bảng đã tạo ra ở câu 2.

35. Giảm giá 10% các mặt hàng đã bán do nhà cung cấp có mã số là “ ” cung cấp.

36. Tăng lương cho các nhân viên là nữ.

37. Đổi ký hiện “B” trong số hóa đơn của tất cả các hóa đơn thành “H”. Ví dụ “B ”

thành “H ”. (chú ý mối liên hệ giữa HoaDonBan và CTHDB phải là Cascade

Update).

Truy vấn khác:

Page 115: Gt tin hocungdung_access

38. Tính số tiền phải trả của các khách hàng mua hàng từ ngày 1/4/2 đến ngày

2 . Biết rằng : Nếu số tiền > 2 thì được giảm đi .

39. Liệt kê những nhân viên không tham gia bán hàng trong thời gian qua.

40. Liệt kê những mặt hàng chưa bán được trong thời gian qua.

5) Thực hiện các biểu mẫu (Form) : Hãy dùng công cụ Wizard để tạo biểu mẫu

1. Tạo các biểu mẫu cho bảng NhanVien, KhachHang, MatHang

Ví dụ form NhanVien.

Thao tác: Nhập mới một số nhân viên và quan sát sự thay đổi của dữ liệu trong

bảng NhanVien.

2. Tạo biểu mẫu Loại Mặt Hàng dạng Main Sub Form. Trong đó Form chính : bảng

LoaiMatHang, Form phụ : bảng MatHang.

Thao tác: Nhập mới một số loại mặt hàng và một số mặt hàng, quan sát sự thay đổi

của dữ liệu trong bảng LoaiMH và MatHang.

Page 116: Gt tin hocungdung_access

3. Tạo biểu mẫu Hóa Đơn Bán dạng Main Sub Form để theo dõi chi tiết đơn đặt

hàng. Trong đó Form chính : bảng Query 10, Form phụ : Query 9.

Thao tác: Bổ sung thêm một số chi tiết bán cho hóa đơn, quan sát sự thay đổi của

số tiền tổng cộng hóa đơn

6) Thực hiện các báo cáo (Report): Hãy dùng công cụ Wizard để tạo báo cáo

1. Lập báo cáo hiển thị danh sách mặt hàng.

2. Tạo report Hóa Đơn Bán để in được hóa đơn ra giấy, sử dụng dữ liệu từ Query 2 ,

và Query 9.

Page 117: Gt tin hocungdung_access

3. Lập báo cáo Danh Sách Nhân Viên Bán Hàng để theo dõi quá trình bán hàng của

nhân viên. Dữ liệu lấy từ bảng NhanVien và Query 10.

4. Lập báo cáo Tổng Hợp Bán Hàng để theo dõi doanh số từng mặt hàng. Dữ liệu lấy

từ bảng MatHang và Query 9.

Page 118: Gt tin hocungdung_access
Page 119: Gt tin hocungdung_access

9.3. Bài tập – Quản lý Thư viện

Tạo file CSDL có tên là ThuVien.mdb

1) Thiết kế cơ sở dữ liệu gồm các bảng sau :

LoaiSach(MaLoaiSach, TenLoaiSach, ThoiHanMuon)

Field Name Data Type Description Field Properties

MaLS Text Mã loại sách Field size : 2

Required : Yes

Indexed : Yes (No Duplicates)

TenLoaiSach Text Tên loại sách Field size : 50

ThoiHanMuon Number Số ngày được mượn của

sách thuộc loại này

Field size: Long Integer

Sach(MaSach, TenSach, MaLS, TacGia, SoTrang, GiaBia, SoDauSach)

Field Name Data Type Description Field Properties

MaSach Text Mã số của sách Field size : 4

Input Mask : 0000 Required : Yes

Indexed : Yes (No Duplicates)

TenSach Text Tên sách Field size : 00

MaLS Text Mã loại sách FieldSize: 2

Dùng LOOKUP

Row Source : LoaiSach

TacGia Text Tên các tác giả viết sách Field size : 100

SoTrang Number Số trang của quyển sách Field size: Long Integer

GiaBia Number Giá bìa của sách Field size: Long Integer

SoDauSach Text Số bản sách thư viện mua Field size: Long Integer

DocGia(MaDG, HoTenDG, NgaySinh, DiaChi, DienThoai)

Field Name Data Type Description Field Properties

MaDG Text Mã số độc giả Field size : 5

Input Mask : LL000 Required : Yes

Indexed : Yes (No Duplicates)

HoTenDG Text Họ tên độc giả Field size : 50

NgaySinh DateTime Ngày sinh

DiaChi Text Địa chỉ độc giả Field size : 00

DienThoai Text Điện thoại độc giả Field size : 15

Page 120: Gt tin hocungdung_access

PhieuMuon(MaPhieu, NgayMuon, NgayTra, MaDG)

Field Name Data Type Description Field Properties

MaPhieu Text Mã phiếu Field size : 4

Input Mask : L000

Required : Yes

Indexed : Yes (No Duplicates )

NgayMuon DateTime Ngày mượn sách Required: Yes

NgayTra DateTime Ngày trả sách (nếu

bằng NULL nghĩa là

chưa trả sách)

Required: No

MaDG Text Mã độc giả FieldSize: 5

Dùng LOOKUP, Row Source : DocGia

ChiTietPM(MaPhieu, MaSach)

Field Name Data Type Description Field Properties

MaPhieu Text Mã phiếu mượn Field size : 4

Dùng LOOKUP

Row Source : PhieuMuon

MaSach Text Mã sách mượn Field size : 4

Dùng LOOKUP

Row Source : Sach

2) Thiết lập mối quan hệ giữa các bảng đã cho

3) Nhập dữ liệu cho các bảng

LoaiSach

MaLS TenLoaiSach ThoiHanMuon

VH Văn học 0

KT Kinh tế 20

KH Khoa học kỹ thuật 5

DS Đời sống 0

Sach

MaSach TenSach MaLS TacGia SoTrang GiaBia SoDauSach

0 0 Đất phương nam VH Sơn Nam 300 20 000 5

0 02 Thời xa vắng VH Lê Lựu 400 50 000 0

0 03 Nhắm mắt thấy Paris VH Dương Thụy 250 45 000 5

020 Microsoft Access KH Thiện Tâm 200 30 000 20

030 Chiến lược đại dương xanh KT Mauborgne 370 55 000 25

040 Đời thay đổi khi chúng

ta thay đổi

DS Mathews 220 32 000 30

Page 121: Gt tin hocungdung_access

DocGia

MaDG HoTenDG NgaySinh DiaChi DienThoai

DG00 Lê Hoàng Anh 2/ 0/ 99 20 Trần Phú Q2

DG002 Mai Xuân Thủy 30/07/ 985 22 Ngô Quyền Q5

DG003 Nguyễn Hồng Nam 5/06/ 987 55 Trần Hưng Đạo 09 4235688

DG004 Lê Bích Phượng 08/03/ 990 23 Trần Phú 09 4246899

DG005 Nguyễn Xuân Sơn 23/07/ 989 0 Lý thường Kiệt

PhieuMuon

MaPhieu NgayMuon NgayTra MaDG

P001 2/ 0/20 0 20/ 2/20 0 DG002

P002 22/0 /20 DG001

P003 7/ 0/20 0 25/ 0/20 0 DG001

P004 03/ /20 0 DG003

P005 03/ 2/20 0 DG004

P006 0/02/20 20/02/20 DG00

ChiTietPM

MaPhieu MaSach

P001 0 0

P00 0 02

P002 020

P002 030

P003 0 02

P004 030

P005 0 03

P006 0 0

4) Thực hiện các truy vấn sau :

1. Cho biết các quyển sách mà độc giả ‘Lê Hoàng Anh’ đã mượn.

2. Khi mượn sách, nếu sách có trị giá trên . thì độc giả phải đặt cược 20% giá bìa.

Hãy cho biết số tiền đặt cược của tất cả các cuốn sách được mượn trong năm 2 .

Gồm: MaPhieu, NgayMuon, MaSach, TenSach, GiaBia, TienCuoc.

3. Liệt kê các cuốn sách đang được mượn chưa trả. (MaDG, TenDG, MaSach, TenSach,

NgayMuon)

4. Liệt kê các quyển sách đã hôm nay đã quá hạn trả nhưng độc giả chưa trả. Cho biết số ngày

trễ hạn (MaDG, TenDG, MaSach, TenSach, NgayMuon, SoNgayTre)

5. Khi trả sách trả quá hạn, độc giả sẽ bị phạt 5.000 cho mỗi ngày trễ hạn của mỗi cuốn

sách. Tính số tiền bị phạt của phiếu mượn ‘P ’.

6. Hãy cho biết số lượng đang mượn và số lượng trong kho của quyển sách ‘Đất

phương nam’ (TenSach, SoDauSach, SoLuongMuon, SoLuongCon)

7. Tính tổng số tiền đặt cược trong tháng 10 năm 2 (tiền đặt cược độc giả nộp vào

ngày mượn sách)

Page 122: Gt tin hocungdung_access

2

8. Tính tổng số tiền phạt trong tháng năm 2 (tiền phạt độc giả nộp vào ngày trả

sách)

9. Thống kê số lần mượn sách của từng độc giả trong từng tháng năm 2 10 (crosstab)

10. Cho biết tên hai cuốn sách được mượnar nhiều lần nhất trong năm 2 .

11. Cho biết tên độc giả mượn nhiều sách nhất trong năm 2

12. Cho biết tên các độc giả đã mượn hai cuốn sách trở lên.

13. Liệt kê các quyển sách chưa được mượn lần nào.

5) Thực hiện các biểu mẫu (Form) : Hãy dùng công cụ Wizard để tạo biểu mẫu

1. Tạo các biểu mẫu cho bảng LoaiSach, Sach, DocGia

2. Tạo biểu mẫu Phiếu Mượn dạng Main Sub Form để theo dõi chi tiết phiếu mượn.

6) Thực hiện các báo cáo (Report): Hãy dùng công cụ Wizard để tạo báo cáo

1. Lập báo cáo bảng Sach.

Page 123: Gt tin hocungdung_access

2. Tạo report Phiếu mượn để in được phiếu mượn ra giấy

Page 124: Gt tin hocungdung_access

9.4. Bài tập 4 – Quản lý Dự án

Tạo file CSDL có tên là DuAn.mdb

1) Thiết kế cơ sở dữ liệu gồm các bảng sau :

PhongBan(MaPB, TenPB, MaTruongPhong)

Field Name Data Type Description Field Properties

MaPB Text Mã phòng ban Field size : 2

Required : Yes

Indexed : Yes (No Duplicates)

TenPhongBan Text Tên phòng ban Field size : 50

MaTruongPhong Number Mã nhân viên của

trưởng phòng

Field size: 3

Required : No

LOOKUP Row Source : NhanVien

NhanVien(MaNV, HoNV, TenNV, NgayVaoLam, Luong, MaPB)

Field Name Data Type Description Field Properties

MaNV Text Mã số nhân viên Field size : 4

Input Mask : 0000 Required : Yes

Indexed : Yes (No Duplicates)

HoNV Text Họ nhân viên Field size : 50

TenNV Text Tên nhân viên Field size : 0

GioiTinh Yes/No Giới tính nhân viên Format: “;Nam;Nữ”

NgayVaoLam DateTime Ngày nhân viên vào làm

việc tại công ty

Luong Number Lương nhân viên FieldSize: Decimal

MaPB Text Mã phòng ban của nhân

viên

FieldSize: 2

Dùng LOOKUP

Row Source : PhongBan

DuAn(MaDA, TenDA, DiaDiem, NgayBD, MaPB)

Field Name Data Type Description Field Properties

MaDA Text Mã số dự án Field size : 3

Input Mask : L00 Required : Yes

Indexed : Yes (No Duplicates)

TenDA Text Tên dự án Field size : 50

DiaDiem Text Địa điểm thực hiện dự

án

Field size : 50

NgayBD DateTime Ngày bắt đầu dự án

MaPB Text Mã phòng ban quản lý

dự án

Field size : 2

Dùng LOOKUP

Row Source : PhongBan

Page 125: Gt tin hocungdung_access

PhanCong(MaDA, MaNV, SoGio)

Field Name Data Type Description Field Properties

MaDA Text Mã dự án Field size : 3

Dùng LOOKUP

Row Source : DuAn

MaNV Text Mã nhân viên FieldSize: 4

Dùng LOOKUP

Row Source : NhanVien

SoGio Number Số giờ nhân viên được phân

công thực hiện dự án

FieldSize:

Decimal, Scale:18, Precision:1

ThanNhan(MaNV, TenThanNhan, NgaySinh, QuanHe)

Field Name Data Type Description Field Properties

MaNV Text Mã nhân viên FieldSize: 4

Dùng LOOKUP

Row Source : NhanVien

TenThanNhan Text Tên thân nhân của

nhân viên

Field size : 50

NgaySinh DateTime Ngày sinh của thân

nhân

QuanHe Text Mối quan hệ của thân

nhân và nhân viên

Field size : 30

2) Thiết lập mối quan hệ giữa các bảng đã cho

3) Nhập dữ liệu cho các bảng

PhongBan (chú ý: mã trưởng phòng nhập sau khi đã nhập thông tin nhân viên)

MaPB TenPB MaTruongPhong

KT Kế toán V04

KD Kinh doanh N01

PX Phân xưởng N05

NhanVien

MaNV HoNV TenNV GioiTinh NgayVaoLam Luong MaPB

N01 Hoài Nam Nam 2/ 0/ 99 3 000 000 KD

V02 Bình Phương Nữ 30/07/ 985 4 000 000 KT

N03 Mỹ Hòa Nam 5/06/ 987 5 000 000 KD

V04 Phương Anh Nữ 08/03/ 990 5 000 000 KT

N05 Sơn Thủy Nữ 23/07/ 989 4 500 000 PX

Page 126: Gt tin hocungdung_access

DuAn

MaDA TenDA DiaDiem NgayBD MaPB

D1 Hồ Con Rùa Sài Gòn 27/03/20 KD

D2 Chùa Tây Phương Hà Nội 0/06/2009 KD

D3 Chùa Linh Sơn Nha Trang 6/08/20 KD

D4 Dinh Bảo Đại Nha Trang 22/0 /20 0 KT

D5 Chùa Thầy Hà Nội 23/05/20 0 KT

PhanCong

MaDA MaNV SoGio

D1 N01 2

D1 N03 5

D2 N01 6

D2 V02 8

D3 V02 0

D3 V04 7

D3 N01 9

D4 N03 4

ThanNhan

MaNV TenThanNhan NgaySinh QuanHe

N01 Nam 2/ 0/ 990 Con gái

N01 Quốc 22/0 / 98 Con trai

V02 Sơn 7/ 0/200 Vợ chồng

N03 Hà 03/ / 998 Con gái

V04 Việt 03/ 2/2002 Con trai

V04 Nam 0/02/ 985 Vợ chồng

4) Thực hiện các truy vấn sau :

1. 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’.

2. 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 đủ).

3. Tìm tên những nữ nhân viên và tên người thân của họ.

4. Liệt kê các đề án ở "Nha Trang" cùng với tên phòng ban chủ trì đề án, họ tên

trưởng phòng và ngày vào làm của người ấy.

5. Với mỗi nhân viên, cho biết họ tên nhân viên và họ tên trưởng phòng của phòng

ban mà nhân viên đó làm việc.

6. Liệt kê những nhân viên và tên đề án mà nhân viên đó tham gia, với điều kiện đề án

đó do một phòng ban khác quản lý.

7. Với mỗi đề án thực hiện tại Nha Trang, liệt kê tên đề án và tổng số giờ làm việc của

tất cả các nhân viên tham dự đề án đó.

8. Với các phòng ban có mức lương trung bình trên . .000, liệt kê tên phòng ban

và số lượng nhân viên của phòng ban đó.

Page 127: Gt tin hocungdung_access

9. Cho biết lương trung bình của tất cả các nữ nhân viên.

10. 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.

11. Với mỗi giờ làm việc cho dự án, một nhân viên mà có thân nhân sẽ được thưởng

2% tiền lương. Tính số tiền thưởng của các nhân viên này.

12. Tính số tiền thưởng của từng nhân viên theo từng dự án (crosstab).

5) Thực hiện các biểu mẫu (Form) : Hãy dùng công cụ Wizard để tạo biểu mẫu

1. Tạo các biểu mẫu dạng columnar cho bảng PhongBan, DuAn

2. Tạo biểu mẫu Main/Sub Form cho bảng NhanVien (main) và ThanNhan (sub)

3. Tạo biểu mẫu Main/Sub Form cho bảng DuAn (main) và NhanVien (sub)

6) Thực hiện các báo cáo (Report): Hãy dùng công cụ Wizard để tạo báo cáo

1. Lập báo cáo bảng NhanVien.

2. Lập báo cáo thống kê các dự án, mỗi dự án có những nhân viên nào tham gia với số

giờ là bao nhiêu.

Page 128: Gt tin hocungdung_access
Page 129: Gt tin hocungdung_access

TÀI LIỆU THAM KHẢO

[1] Cơ sở dữ liệu 1 - Nguyễn Đức Thuần - Trường Đại học Nha Trang, 2009.

[2] Hệ quản trị CSDL Access - Nguyễn Quỳnh Diệp - Khoa CNTT Trường Đại

học Sư Phạm Hà nội, 2007.

[3] Giáo Trình Microsoft Access 2003 tập 1 - Nguyễn Thiện Tâm - Đại học Quốc

gia TP. Hồ Chí Minh, 2008.

[4] Fundamental of Database System 4th

Edition – Elmasri, Navathe - Addison

Wesley, 2003.