Phép nhóm dữ liệu (GROUP)

Một phần của tài liệu Bài giảng tin học ứng dụng dành cho sinh viên ngành kinh tế (Trang 35)

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

MaKHG SoSV: Count(MaSV), TongHB: Sum(HocBong) (SinhVien)

2 3 Tách nhóm theo mã khoa Đếm số SV trong nhóm

2

Cú pháp:

Thuộc-tính-nhóm G Các-hàm-gộp (QuanHe)

Hàm Count được được gọi là hàm gộp (aggregate function). Danh sách các hàm gộp được liệt kê bên dưới

Tên hàm Mục đích

Count Đếm số bộ

Sum Tính tổng các giá trị Avg Tính giá trị trung bình Max Tìm giá trị lớn nhất

Min Tìm giá trị nhỏ nhất

Ví dụ 11: Tính học bổng cao nhất, thấp nhất, và trung bình của các sinh viên theo từng khoa

MaKH G Max(HocBong), Min(HocBong), Avg(HocBong) (SinhVien)

MaKhoa Max Min Avg

KT 800 200 500

CNTT 800 200 466

Ví dụ 12: mở rộng ví dụ , tính số sinh viên của từng Khoa, liệt kê các thuộc tính: MaKhoa, TenKhoa, SoSV.

Để có thêm cột TenKhoa, cần thực hiện phép kết giữa bảng SinhVien và bảng Khoa, sau đó thực hiện phép nhóm như bình thường, tuy nhiên cột TenKhoa phải được đưa vào làm thuộc tính nhóm chung với MaKhoa

MaKhoa, TenKhoa G SoSV: Count(MaSV) (SinhVien ⋈MaKH = MaKhoa Khoa)

MaSV HoSV TenSV NgaySinh GioiTinh HocBong MaKH MaKhoa TenKhoa

5202 Lê Cường 21/5/1 1 Nam 200 KT KT Kinh tế 5207 Nguyễn Sơn 17/7/1 0 Nữ 800 KT KT Kinh tế

520 Ngô Hòa 16/8/1 0 Nam 200 CN CN Công nghệ Thông tin 5306 Huỳnh Nga 22/3/1 2 Nữ 400 CN CN Công nghệ Thông tin 5308 Phạm Trang 12/7/1 0 Nữ 800 CN CN Công nghệ Thông tin

MaKhoa TenKhoa SoSV

KT Kinh tế 2

CN Công nghệ Thông tin 3

Thuộc tính nhóm gồm MaKhoa và TenKhoa

2

Ví dụ 1 : Cho biết sĩ số của từng lớp học. Liệt kê: MaLop, TenMH, SiSo

MaLop, TenMH G SiSo: Count(MaSV) (LopHoc ⋈ MonHoc ⋈ KetQua)

MaLop TenMH SiSo

01 Tin học cơ sở 2 02 Kế toán tài chính 2 03 Tin học cơ sở 1 04 Cấu trúc dữ liệu 1

Ví dụ 14: Dựa vào bảng KetQua và bảng MonHoc, tính điểm trung bình học kỳ 1 năm 2 của các sinh viên theo quy tắc.

∑ ∑

tam  NamHoc=2010 AND HocKy= 1 (KetQua ⋈ LopHoc ⋈ MonHoc) Kết quả của tam:

MaSV MaLop Diem MaMH HocKy NamHoc GiaoVien TenMH SoTinChi

5202 01 4 306 1 2010 Tuấn Tin học cơ sở 2 5202 02 7 403 1 2010 Nga Kế toán tài chính 3 5202 04 207 1 2010 Nam Cấu trúc dữ liệu 3 5308 01 3 306 1 2010 Tuấn Tin học cơ sở 2 5308 02 403 1 2010 Nga Kế toán tài chính 3

MaSV G DiemTB: Sum(Diem*SoTinChi)/Sum(SoTinChi) (tam)

Kết quả:

MaSV DiemTB

5302 7.0 5308 6.6

2

3.7.Bài tập

1) Cho cơ sở dữ liệu về BanHang như bên dưới:

Hãy cho biết biểu thức đại số quan hệ để thực hiện các câu truy vấn sau và cho biết nội dung kết quả của từng câu truy vấn:

a) Liệt kê tên các mặt hàng có đơn giá lớn hơn 10.000 (MaMH, TenMH, DonGia) b) Cho biết tên khách hàng ứng với từng hóa đơn (MaHD, NgayHD, TenKH) c) Hãy cho biết tên các khách hàng đã mua mặt hàng ‘Sữa chua Vinamilk’ d) Liệt kê tên các mặt hàng bán được trong ngày 12/2/2010

e) Tính thành tiền của từng hóa đơn (MaHD, NgayHD, TenKH, ThanhTien)

f) Cho biết tên các mặt hàng mà khách hàng ‘Nguyễn Trang’ đã mua, với tổng số lượng và trị giá là bao nhiêu.

g) Tính doanh thu bán hàng theo từng ngày (NgayHD, DoanhThu)

h) Tính doanh thu bán hàng theo từng ngày của từng mặt hàng (NgayHD, TenMatHang, DoanhThu)

KhachHang MaKH HoTen DiaChi

A001 Nguyễn Trang 12 Hồng Bàng B002 Lê Cường 60 Trần Phú C003 Mai Nguyễn 22 Bạch Đằng

MatHang MaMH TenMH DonViTinh DonGia

S03 Sữa chua Vinamilk Lốc 4.000 B02 Bánh Choco-Pie Hộp 15.000 K01 Kem Monte-Rosa Ký 20.000

HoaDon MaHD NgayHD MaKH

001 12/2/2010 A001 002 12/2/2010 B002 003 20/4/2011 B002 004 25/7/2011 A001

MatHangBan MaHD MaMH SoLuong

001 S03 2 001 B02 5 002 K01 6 002 S03 8 003 S03 10 004 B02 7

2 2) Cho cơ sở dữ liệu về quản lý các dự án của một công ty như sau:

 Hãy cho biết khóa chính, mối liên hệ và ràng buộc khóa ngoại giữa các quan hệ trong cơ sở dữ liệu trên.

 Thực hiện các câu truy vấn sau bằng biểu thức đại số quan hệ và cho biết nội dung kết quả của từng câu truy vấn:

a) Liệt kê các phòng ban và tên trưởng phòng của từng phòng ban (họ tên đầy đủ). b) Tìm các nhân viên lương ít hơn . . ở ‘Phòng Kinh doanh’ hoặc ít hơn

. . ở ‘Phòng Kế toán’.

c) Liệt kê các nhân viên và cho biết tên trưởng phòng của từng nhân viên đó. d) Hãy cho biết các phòng ban nào có thực hiện dự án tại ‘Nha Trang’. e) Tính mức lương trung bình của từng phòng ban.

f) Trong các dự án thực hiện tại Nha Trang, tính tổng số giờ nhân viên của từng dự án.

g) Với mỗi giờ làm việc cho dự án, một nhân viên sẽ được thưởng 1% tiền lương. Tính số tiền thưởng của từng nhân viên.

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

PhongBan MaPB TenPB TruongPhong

KD Phòng Kinh doanh N01 KT Phòng Kế toán V02

NhanVien MaNV HoNV TenNV Luong MaPB

N01 Hoài Nam 3.000.000 KD V02 Bình Phương 4.000.000 KT N03 Mỹ Hòa 5.000.000 KD V04 Phương Anh 5.000.000 KT

DuAn MaDA TenDA DiaDiem NgayBD MaPB

D1 Hồ Con Rùa Sài Gòn 27/3/2011 KD D2 Chùa Tây Phương Hà Nội 10/6/2012 KD D3 Chùa Linh Sơn Nha Trang 16/8/2011 KD D4 Dinh Bảo Đại Nha Trang 22/1/2010 KT

PhanCong MaDA MaNV SoGio

D1 N01 2 D1 N03 5 D2 N01 6 D2 V02 8 D3 V02 10 D4 V04 7

Phần II

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

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

MICROSOFT ACCESS 4.1.Giới thiệu Microsoft Access

MS Access là một Hệ quản trị cơ sở dữ liệu quan hệ (RDBMS - Relational Database Management System), là một phần mềm trong bộ ứng dụng Microsoft Office chạy trên môi trường Windows của hãng phần mềm Microsoft.

MS Access có giao diện thân thiện, dễ sử dụng, hiệu năng cao, cho phép xử lý dữ liệu và kết xuất vào các biểu mẫu, báo cáo theo dạng thức chuyên nghiệp rất phù hợp cho các bài toán quản lý vừa và nhỏ.

Microsoft Access còn cung cấp nhiều công cụ phát triển đầy năng lực để nâng cao hiệu suất công việc. Bằng cách dùng các Wizard của MS Access và các lệnh có sẵn (macro) người sử dụng có thể dễ dàng tự động hóa công việc mà không cần lập trình.

4.2.Khởi động MS Access

Start All Programs Microsoft Office Microsoft Office Access

4.3.Tạo cơ sở dữ liệu mới

Một cơ sở dữ liệu Access được lưu trên đĩa dưới dạng một tập tin. Để tạo một CSDL mới thì chọn menu File New Blank Database

Ở hộp thoại tiếp theo, chọn nơi lưu trữ và tên tập tin cơ sở dữ liệu

Sau khi chọn nơi lưu trữ và tên tập tin thì nhấn vào nút để tạo cơ sở dữ liệu mới.

4.4.Mở một CSDL đã có trong máy tính

Sử dụng một trong các cách sau

 Vào menu File Open

 Chọn thư mục và double-click vào tập tin CSDL.

4.5.Các đối tượng chính của một CSDL Access

Access là một hệ quản trị theo mô hình cơ sở dữ liệu quan hệ, vì vậy vì vậy Access có các đối tượng để thể hiện các khái niệm quan hệ, lược đồ quan hệ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

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

4.7.Một số hàm sử dụng trong MS Access

1) Các hàm về chuỗi

Hàm Kết quả

Ten LIKE 'N*' Tên bắt đầu bằng chữ N

Ten LIKE '*a*' Tên có chứa chữ a

Len(Ten) 3 (nếu Ten = 'Mai')

5 (nếu Ten = 'Nguyen')

Left(Ten, 2) 'Ma'

Right(TenSV,2) 'ai' (nếu TenSV = 'Mai')

Mid(TenSV,2,3) 'guy' (nếu TenSV = 'Nguyen')

2) Các hàm về ngày tháng

Hàm Kết quả

Now() Ngày giờ hiện tại

Month(#8/12/2011#)

Day(#5/27/2011#) 2

Year(Now()) 2

Year(Now()) – Year(NgaySinh) Tính số tuổi của sinh viên

Hour(#06:30#)

Minute(#13: 2

DatePart('q', Tính quý  2 3) Hàm IIF

 Cú pháp: IIF(điều-kiện, A, B)

(với điều-kiện là biểu thức logic. A, B là các biểu thức bất kỳ)

 Ý nghĩa: nếu điều-kiện đúng thì kết quả của biểu thức IIF là biểu thức A, nếu điều-kiện sai thì kết quả của biểu thức IIF là biểu thức B.

 Ví dụ: IIF(Diem>=5, 'Đạt', 'Không đạt')

Vậy nếu Diem = 6, 7, 8 thì kết quả của IIF là 'Đạt'. Nếu Diem = 2, 4 thì kết quả của IIF là 'Không đạt'.

4.8.Bài tập

Hãy thực hiện các thao tác sau trên máy tính: 1) Khởi động Access

2) Tạo một cơ sở dữ liệu mang tên bạn và lưu vào ổ đĩa C hoặc D

3) Trong cơ sở dữ liệu vừa tạo, quan sát các mục Table, Query, Form, Report, Macro và Module

4) Đóng cơ sở dữ liệu và đóng Access

5) Khởi động lại Access, mở lại cơ sở dữ liệu vừa tạo (lưu ý: dùng menu File -> Open, không được dùng menu File -> New)

CHƯƠNG 5. BẢNG (TABLE)

5.1.Các khái niệm

5.1.1.Bảng

Bảng là thành phần cơ bản và quan trọng nhất của CSDL Access, thể hiện khái niệm lược đồ quan hệ và quan hệ.

Một bảng dữ liệu của CSDL Access bao gồm các thành phần: tập hợp các trường dữ liệu (thuộc tính trong mô hình quan hệ), trường khoá chính, tập hợp các thuộc tính cần thiết cho mỗi trường dữ liệu, tập hợp các bản ghi (bộ).

Ví dụ:

 Bảng dữ liệu trong trạng thái Datasheet (dùng để cập nhập, xem, sửa dữ liệu)

 Bảng dữ liệu trong trạng thái Design view (dùng để thiết kế cấu trúc – lược đồ quan hệ)

Bản ghi (record) Trường dữ liệu (field)

Tên bảng

Các thuộc tính mô tả trường dữ liệu Trường khóa chính

5.1.2. Trường dữ liệu (field)

Trường dữ liệu, tương ứng với cột của bảng, mô tả từng đặc điểm riêng của đối tượng. Mỗi trường dữ liệu sẽ có một tên gọi, kiểu dữ liệu và tập hợp các tính chất mô tả trường dữ liệu đó.

Ví dụ: Trường MaKhoa có kiểu dữ liệu là Text, kích thước 2 ký tự, được hiển thị là chữ in hoa,…

5.1.3. Bản ghi (record)

Mỗi dòng dữ liệu của bảng được gọi một bản ghi.

Ví dụ: Bảng Khoa có 3 bản ghi là (“CN”, “Khoa Công nghệ thông tin”), (“KT”, “Khoa Kinh tế”), (“NN”, “Khoa Ngoại ngữ”)

5.1.4. Khóa chính (primary key)

Khóa chính của bảng là trường hoặc tập trường dùng để phân biệt các bản ghi trong cùng một bảng.

Ví dụ: Ở một trường đại học, mỗi sinh viên khi nhập học đều được cấp 1 mã sinh viên không giống nhau, do đó có bảng SinhVien được thiết kế như sau:

Như vậy trường MaSV chứa dữ liệu mã sinh viên sẽ là khóa chính của bảng

SINHVIEN vì mã sinh viên là duy nhất, các sinh viên có thể trùng họ tên, ngày sinh,…nhưng không thể có mã sinh viên giống nhau.

Ví dụ: Kết quả học tập của sinh viên bao gồm các dữ liệu sau: mã sinh viên, mã các lớp học sinh viên đó đã đăng ký và điểm kết quả của các lớp học đó. Trong CSDL của trường đó có bảng KetQua được thiết kế như sau

Như vậy 2 trường MaSV (chứa dữ liệu mã sinh viên) và MaLop (chứa mã lớp học mà sinh viên đó đăng ký) sẽ tạo thành khóa chính của bảng KetQua, không thể có 1 sinh viên đăng ký lớp học mà có 2 điểm kết quả khác nhau.

Chú ý: MS Access không chấp nhận các giá trị trùng nhau hay trống (null) trong trường khóa chính.

5.1.5.Mối liên hệ giữa các bảng (relationship)

Thể hiện khái niệm mối liên hệ giữa các quan hệ trong mô hình lý thuyết (xem phần Phần I2.3.2). Đi kèm với mối liên hệ là ràng buộc toàn vẹn về khóa ngoại.

Trong Access tồn tại 2 kiểu quan hệ: quan hệ - quan hệ - (một-nhiều)

a) Quan hệ 1-1

Mỗi bản ghi của bảng này sẽ không liên kết hoặc liên kết với duy nhất tới một bản ghi của bảng kia và ngược lại

Ví dụ: Mỗi số báo danh của thí sinh thi đại học chỉ có 1 số phách bài thi và số phách của mỗi bài thi chỉ thuộc về 1 số báo danh.

Mô tả dữ liệu 2 bảng như sau:

b) Quan hệ 1- ∞

Một bản ghi trong bảng A không kết hợp hoặc kết hợp với một hay nhiều bản ghi trong bảng B, nhưng ngược lại một bản ghi trong bảng B chỉ có thể kết hợp duy nhất với một bản ghi trong bảng A.

Ví dụ: một khoa của trường Đại học Nha Trang có nhiều sinh viên nhưng một sinh viên chỉ thuộc về duy nhất một khoa.

Mô tả dữ liệu 2 bảng như sau:

5.2.Xây dựng cấu trúc bảng

5.2.1. Sử dụng chế độ Design View để tạo bảng

Tab Tables Create Table in Design View hoặc Tab Tables 

Sau đó ta được bảng thiết kế như sau:

Tên trường

Lựa chọn kiểu dữ liệu

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

Một phần của tài liệu Bài giảng tin học ứng dụng dành cho sinh viên ngành kinh tế (Trang 35)

Tải bản đầy đủ (PDF)

(129 trang)