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

tin học ứng dụng (trong kinh tế)

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (3.13 MB, 108 trang )

12/11/13
1
Giảng viên: TS. Phạm Thị Thu Thúy
Email:
Phương pháp đánh giá
 Giáo viên giảng: Theo phương pháp diễn giải có dẫn chứng, hướng dẫn học sinh thực
hành, làm mẫu theo các vấn đề yêu cầu.
 Sinh viên:
 Nghe giảng và thực hành.
 Dự lớp không dưới 80% số tiết.
 Tham gia đầy đủ các bài kiểm tra.
 Cách chấm điểm:
 Tỷ lệ kiểm tra: 50% (50% TH + 50% LT).
 Tỷ lệ điểm thi: 50%
 Hình thức thi: làm bài trên máy
2
12/11/13
2
Nội dung học phần
Phần 1. Nhập môn CSDL
1. Tổng quan về CSDL
2. Mô hình dữ liệu quan hệ
3. Đại số quan hệ
Phần 2. Hệ QT CSDL MS ACCESS
4. Tổ chức cơ sở dữ liệu và thiết kế bảng (Table)
5. Thiết kế truy vấn (Query)
6. Thiết kế biểu mẫu nhập liệu (Form)
7. Thiết kế Báo cáo (Report)
3
Tài liệu tham khảo
 Bài giảng Tin học ứng dụng trong kinh tế, Bộ môn Hệ thống Thông tin, Khoa CNTT,


ĐH Nha Trang, XB tháng 9/2013
 Microsoft Access step by step 2013, MS Press.
4
12/11/13
3
• Tổng quan về CSDL
•Mô hình DLQH
•Đại số quan hệ
1.1. Các khái niệm cơ sở dữ liệu (Database)
1. Dữ liệu (data): Là những số liệu rời rạc, như tên, địa chỉ, số điện thoại của một
khách hàng.
2. Cơ sở dữ liệu là gì? (database): Là một sưu tập của những dữ
liệu có liên quan.
Ví dụ: Thông tin của SV: MASV, Họ tên, ngày tháng
năm sinh, quê quán,…
Các dữ liệu này có thể được lưu trên các thiết bị trữ tin
khác nhau như sổ sách, băng đĩa từ, …
6
12/11/13
4
1.1. Các khái niệm cơ sở dữ liệu (Database) (tt)
3. Hệ quản trị CSDL (DataBase Management System - DBMS)
 HQTCSDL là một hệ thống các phần mềm hệ thống cho phép tạo và quản lý một
CSDL. Chức năng:
o Định nghĩa DL: tạo cấu trúc để lưu trữ DL
o Thao tác DL: truy vấn hoặc cập nhật DL
o Chia sẻ: nhiều users có thể đồng thời truy cập DL
o Bảo vệ hệ thống: bảo đảm CSDL luôn an toàn đối với các hành vi phá hoại từ bên ngoài.
• Một số hệ QTCSDL: Foxpro, Access, SQL, My SQL, Oracle, DB2…
7

1.1. Các khái niệm cơ sở dữ liệu
(Database) (tt)
Mô tả đơn giản một hệ thống CSDL
8
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ữ liệu
Cơ sở
dữ liệu
12/11/13
5
Ví dụ CSDL Bán hàng
 Quản lý các thông tin: Khách hàng, các mặt hàng, các lần bán hàng, số
lượng bán của Cty :
9
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
Cấu trúc và một vài DL cho CSDL
Vấn đề:
Có bao nhiêu bảng, tên gì?
Những bảng nào có quan hệ với nhau?
Trong một bảng có bao nhiêu cột?
Mục đích là để tránh trùng lắp, dư thừa dữ
liệu.
10
12/11/13
6
Cách giải quyết:
Để đảm bảo tính đúng đắn, việc định nghĩa
cấu trúc của 1 CSDL phải tuân theo 1
trong các mô hình dữ liệu chuẩn nào đó.
Mô hình dữ liệu (MHDL) là gì?
11
12
Mô hình dữ liệu
Là một hệ hình thức toán học gồm có 2 phần:
Một hệ thống ký hiệu để mô tả dữ liệu.
Một tập hợp các phép toán thao tác trên dữ liệu
đã cho.
12/11/13
7
13
Các mô hình dữ liệu
 Mô hình thực thể kết hợp (Entity Relationship Model)

 Mô hình dữ liệu quan hệ (Relational Data Model)
 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 hướng đối tượng (Object Orient Model)
14
Chương 2. Mô hình dữ liệu quan hệ
Do E.F.Codd đề xuất năm 1970
• Các khái niệm cơ bản
• Các thao tác cơ bản trên quan hệ
• Các phép toán tập hợp
• Các phép toán quan hệ
12/11/13
8
15
Các khái niệm cơ bản
• Thuộc tính (Attribute)
• Quan hệ (Relation)
• Bộ giá trị (Tuple)
• Lược đồ quan hệ (Relation Schema)
• Thể hiện của quan hệ
• Khóa (Key)
• Phụ thuộc hàm (Functional Dependency)
• Ràng buộc toàn vẹn (Integrity Constraint)
16
1. Thuộc tính (Attribute)
 Thuộc tính:
 là một tính chất riêng biệt của một đối tượng.
 cần được lưu trữ trong CSDL để phục vụ cho việc khai thác dữ liệu về đối tượng.
 Ví dụ:
 Loại thực thể MÔN-HỌC có một số thuộc tính Mãmôn,Tên-môn, Số-Đv-Học-Trình.

 Loại thực thể HỌC-VIÊN có một số thuộc tính Mãkhoa,Mã-học-viên, Tên-học-viên,
Ngày-sinh, Quêquán.
12/11/13
9
17
Thuộc tính (Attribute) (tt)
 Các đặc trưng của thuộc tính:
 Tên gọi (Name)
 Kiểu dữ liệu (Data Type)
 Miền giá trị (Domain)
Ví dụ: Tên và địa chỉ của 1 người kiểu chuỗi (Text)
Ngày sinh kiểu ngày giờ (Datatime)
18
Thuộc tính (Attribute) (tt)
 Tên thuộc tính
 Có tính chất gợi nhớ
 Đặt đúng quy định của hệ QTCSDL
 Không nên đặt quá dài
 Nếu không cần lưu ý đến ngữ nghĩa thì tên thuộc
tính thường được ký hiệu bằng các chữ cái A, B,
C, D, …, còn X, Y, Z, W,… dùng thay cho 1 nhóm
thuộc tính.
12/11/13
10
19
Thuộc tính (Attribute) (tt)
 Kiểu dữ liệu (Data Type): Mỗi thuộc tính đều phải thuộc một kiểu dữ liệu nhất
định.
 Kiểu văn bản
 Kiểu số

 Kiểu luận lý (boolean)
 Kiểu ngày giờ
Ví dụ:
Thuộc tính Kiểu dữ liệu Ví dụ
HoKH ShortText ‘Nguyễn Thị’
TenKH ShortText ‘Trang’
DiaChi ShortText ‘120 Ngô Gia Tự’
NgaySinh DateTime 12/10/1990
DonGia Number 300.000
20
Thuộc tính (Attribute) (tt)
 Miền giá trị (Domain):
 Mỗi thuộc tính chỉ chọn những giá trị trong một tập hợp con của kiểu dữ liệu.
 Tập hợp các giá trị mà một thuộc tính A có thể nhận được gọi là miền gi trị của A
 Ký hiệu: Dom(A), MGT(A)
 Giá trị NULL:
 Trong nhiều hệ QTCSDL, người ta đưa thêm vào miền giá trị của các thuộc tính một giá
trị đặc biệt gọi là giá trị rỗng (NULL)
12/11/13
11
21
Lược đồ quan hệ (Relation Schema)
Một lược đồ quan hệ R, biểu thị bởi R(A
1
, A
2
, …, A
n
), gồm có tên quan hệ
R và danh sách n thuộc tính A

1
, A
2
, …, A
n
.
Lược đồ quan hệ được dùng để mô tả một quan hệ. Ví dụ một lược đồ có
5 thuộc tính dùng để mô tả khách hàng được thể hiện như sau:
KhachHang(MaKH, HoKH, TenKH, DiaChi, DienThoai)
Trong đó KhachHang là tên lược đồ quan hệ. MaKH, HoKH, TenKH,
DiaChi, DienThoai 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:
KhachHang(MaKH: shorttext, HoKH: shorttext, TenKH: shorttext,
DiaChi: shorttext, DienThoai: shorttext)
KhachHang
MaKH HoKH TenKH DiaChi DienThoai
22
Quan hệ (Relation)
Một quan hệ r phát sinh từ lược đồ quan hệ R(A
1
, A
2
, …, A
n
) là một
tập hợp m bộ r = {t
1
, t
2

, …, t
m
}, trong đó mỗi bộ là một danh
sách n giá trị t = {v
1
,v
2
,…, v
n
}, mỗi giá trị v
i
là tương ứng với
thuộc tính A
i
 Ví dụ: xét quan hệ kh phát sinh từ lược đồ quan hệ KhachHang
(MaKH, HoKH, TenKh, DiaChi, DienThoai) trên. Quan hệ này có 4
bộ:
 t
1
= {‘00001’, ‘Nguyễn Hùng’, ‘Dũng’, ‘12 Tôn Đản’,
‘08.0897678’}
 t
2
= {‘00002’, ‘Trần Ngọc’, ‘Sơn’, ‘32 Phan Chu Trinh’,
‘058.876543’}
 t
3
= {‘00003’, ‘Nguyễn Thị’, ‘Hoa’, ‘12 Lê Hồng Phong’,
‘08.9876543’}
 t

4
= {‘00004’, ‘Lê Minh’, ‘An’, 56 Trần Nhật Duật’, ‘098957433’}
 Trong quan hệ trên, mỗi bộ t
1
, t
2
, t
3,
t
4
đại diện cho một đối tượng
khách hàng cụ thể. Trong bộ t
2
giá trị v
3
= ‘Sơn’ tương ứng với
thuộc tính A
3
là TenKH cho biết tên của khách hàng này là ‘Sơn’.
12/11/13
12
23
Quan hệ (Relation) (tt)
Để đơn giản và rõ ràng, quan hệ kh trên được
trình bày lại theo dạng bảng như hình bên dưới :
24
Thể hiện của quan hệ
 Thể hiện (tình trạng) của quan hệ R
 ký hiệu bởi TR
 là tập hợp các bộ giá trị của quan hệ R vào một thời điểm.

 Tại những thời điểm khác nhau thì quan hệ sẽ có
những thể hiện khác nhau.
 Ví dụ: Quan hệ MÔN-HỌC
12/11/13
13
25
Các đặc tính của quan hệ
 Trong một lược đồ quan hệ, có thể có nhiều thuộc tính có
cùng miền.
 Thứ tự của các thuộc tính thuộc tính không được xét đến.
 Thứ tự của các bộ trong quan hện không được xét đến, trong
quan hệ không có hai bộ giống nhau.
 Giá trị của mỗi thuộc tính trong một bộ có thể nhận giá trị từ
miền giá trị hay giá trị rỗng (null).
Ví dụ: Xét bộ sau trong quan hệ KhachHang
t
1
= {‘00100’, ‘Trần Hùng’, ‘Dũng’, NULL, NULL}
Bộ trên có giá trị NULL tại thuộc tính địa chỉ và điện thoại
do công ty có thể chưa có thông tin này và sẽ được bổ
sung sau.
Khoá chính (Primary key)
26
• Trong một bảng có một hay nhiều thuộc tính làm khóa (khóa
chính) nhằm phân biệt 2 dòng dữ liệu bất kỳ với nhau.
• Khoá chính là một hay nhiều cột trong một bảng mà dữ liệu tại
các cột này bắt buộc phải có (không được để trống) và đồng thời
phải duy nhất không được phép trùng lặp (ràng buộc về khoá).
 Các hệ QTCSDL yêu cầu người sử dụng phải khai báo khoá,
buộc phải nhập dữ liệu vào và không được trùng nhau.

• Khoá được xác định dựa vào ý nghĩa các thuộc tính trong một
Lược đồ quan hệ.
• Trong mô hình quan hệ, khóa chính được gạch dưới.
• Trong Access, các thuộc tính khóa chính được in đậm.
12/11/13
14
Khoá ngoại (Foreign key)
27
• Khoá ngoại là một hoặc nhiều thuộc tính trong một bảng mà các
thuộc tính này là khoá chính của một bảng khác.
• Do đó dữ liệu tại các thuộc tính khóa ngoại bắt buộc phải tồn tại
và cùng miền giá trị với thuộc tính khoá chính đó hoặc bằng giá
trị trống (null).
• Trong 1 lược đồ quan hệ, một thuộc tính có thể vừa tham gia
vào khoá chính, vừa tham gia vào khóa ngoại.
• Khoá ngoại có thể tham chiếu đến khóa chính của cùng một lược
đồ quan hệ.
Ví dụ: NHANVIEN(MaNV, HoTen, MaNguoiPhuTrach)
• Có thể có nhiều khóa ngoại tham chiếu đến cùng một khóa chính.
• Khóa ngoại được gạch dưới bằng nét đứt.
Khóa ngoại (tt)
 Ví dụ: Xét hai quan hệ KhachHang và HoaDonBan trong cơ sở dữ liệu
BanHang
Trong thực tế, giữa hai đối tượng KhachHang và
HoaDonBan có mối liên hệ là một khách hàng thì có
nhiều lần mua hàng và do đó được xuất nhiều
HoaDonBan và một hóa đơn khi xuất ra thì chỉ cho một
và chỉ một khách hàng mà thôi. Ta gọi đây là mối liên hệ
một – nhiều (KhachHang -1, HoaDonBan - ∞ )
28

12/11/13
15
Liên kết các bảng dữ liệu
29
• Liên kết các bảng dữ liệu là một kỹ thuật trong
thiết kế CSDL quan hệ. Chúng là mối liên kết
giữa 2 bảng với nhau theo thiết kế cho trước để
đảm bảo được mục đích lưu trữ dữ liệu cho ứng
dụng.
• Trong Access tồn tại 2 kiểu liên kết:
– liên kết 1-1
– liên kết 1-n (một-nhiều)
Liên kết 1-1
30
• Liên kết 1 – 1: mỗi bản ghi của bảng này sẽ 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ụ liên kết 1-1:
12/11/13
16
Liên kết 1-1
31
• Mô tả dữ liệu 2 bảng này như sau:
Liên kết 1-n
32
• Liên kết 1-n: mỗi trường của bảng 1 sẽ có thể liên
kết với một hoặc nhiều bản ghi của bảng nhiều (n).
Ngược lại, mỗi bản ghi của bảng nhiều sẽ liên kết
tới duy nhất 1 trường của bảng 1.
• Ví dụ liên kết 1-n:

12/11/13
17
Liên kết 1-n
33
• Có thể tham khảo mỗi cha có thể có nhiều con qua
2 bảng sau:
34
Chú ý khi cài đặt:
! Các hệ QTCSDL yêu cầu người sử dụng phải khai báo:
- Khoá chính: buộc phải nhập dữ liệu vào và không được trùng nhau.
- Khóa ngoại: phải tồn tại trong bảng mà nó làm khoá chính và phải
cùng miền giá trị với thuộc tính khoá chính đó, hoặc null)
12/11/13
18
35
Ràng buộc toàn vẹn (Integrity Constraint)
 Khái niệm ràng buộc toàn vẹn (RBTV)
 Các phép cập nhật trên CSDL không nên được thực hiện một cách tuỳ tiện, có thể
đưa CSDL đến một tình trạng “xấu”, không còn phản ánh đúng thế giới thực mà nó
đại diện.
 Các phép cập nhật trên CSDL phải tuân thủ theo một số qui tắc, ràng buộc nhất
định. Các quy tắc, ràng buộc này được gọi là Ràng buộc toàn vẹn (Intergrity
constraints)
 Ví dụ 1: Mức lương nhân viên không vượt quá mức lương trưởng phòng
 Ví dụ 2: Đơn giá của một mặt hàng phải là số dương
36
Ràng buộc toàn vẹn (Integrity Constraint)
 Bảng tầm ảnh hưởng
 Dấu + : Có thể gây nên vi phạm RBTV
 Dấu - : Không thể gây ra vi phạm RBTV

 (*): gây nên vi phạm RBTV khi sửa trên thuộc tính A.
Ri Thêm Xóa Sửa
Quan hệ 1 + + +
Quan hệ n - - +A
(*)
12/11/13
19
37
Ràng buộc toàn vẹn (Integrity Constraint)
 Chú ý:
 Ràng buộc về khóa (khoá chính) là một trường hợp đặc biệt và khá
phổ biến của RBTV liên bộ.
 Ràng buộc về khóa (key constraint): 2 bộ khác nhau trong cùng một
quan hệ phải có giá trị tại khoá khác nhau.
38
Ràng buộc toàn vẹn (Integrity Constraint)
!!! Phải khai báo khoá ngoại (ràng buộc tham chiếu) nếu hệ QTCSDL
cho phép để hệ QTCSDL tự kiểm tra.
 Với hệ QTCSDL Access ta khai báo mối kết hợp (Relationship):
12/11/13
20
39
Ràng buộc toàn vẹn (Integrity Constraint)
- Để tránh nhập sai, đối với các thuộc tính khóa ngoại, khi tạo cấu trúc cho
Table ta khai báo Lookup:
40
Các phép toán cập nhật trên quan hệ
 Có 3 phép cập nhật cơ bản trên quan hệ: thêm, xoá, sửa.
 Phép thêm (INSERT)
 Phép xóa (DELETE)

 Phép sửa (UPDATE)
 Mỗi khi sử dụng các phép toán này, cần đảm bảo ràng các ràng buộc
toàn vẹn không bị vi phạm.
12/11/13
21
Thêm (insert, append)
 Ví dụ: Thêm bộ {NULL, ‘Mai’, ‘Anh’, ’15 Trần Nguyên Hãn,
‘0905668739’ } vào quan hệ KhachHang.
Thao tác thêm này vi phạm ràng buộc toàn vẹn khóa chính phải khác NULL. Vì
vậy thêm không thành công.
 Thêm bộ {‘008’, ‘Lux’, ‘thùng’, ‘04’, ‘01’} vào quan hệ HangHoa.
Thao tác này thỏa mãn các ràng buộc. Thêm thành công.
41
Xóa (delete)
 Ví dụ: Xóa hàng hóa có MaHH là ‘008
Xóa thành công.
 Ví dụ: Xóa khách hàng có mã khách hàng là ‘00001’
Thao tác này không thành công vì trong quan hệ HoaDonBan (bảng con) có
hóa đơn với SoHDB là ‘000000001’ tham chiếu đến khách hàng này. Nếu
xóa bộ này trong bảng KhachHang (bảng cha) thì vi phạm ràng buộc toàn
vẹn.
42
12/11/13
22
Sửa (update)
 Ví dụ: Trong quan hệ KhachHang sửa DiaChi của bộ có MaKH = ‘00001’
thành ’90 Nguyễn Thị Minh Khai’.
Sửa thành công.
 Ví dụ: Sửa MaKH của hóa đơn bán ‘000000001’ thành ‘00150’
Vi phạm ràng buộc toàn vẹn khóa ngoại vì trong quan hệ KhachHang không có

bộ nào có MaKH là ‘00150’
43
Đại số quan hệ
44
12/11/13
23
Biểu thức cơ bản
 Biểu thức số học
 Biểu thức chuỗi
45
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)
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’
Biểu thức cơ bản
 Biểu thức ngày tháng
 Biểu thức logic
46
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

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 Ten bắt đầu bằng chữ N: Nam, Nga,
NgaySinh < #1/2/1991# Đúng, nếu sinh viên sinh trước ngày 2/1/1991
12/11/13
24
Biểu thức logic
 Ví dụ
47
a b a AND b a OR b NOT a
đúng đúng Dúng đúng Sai
đúng sai Sai đúng Sai
sai đúng Sai đúng Dúng
sai sai Sai sai Dúng
Biểu thức Kết quả
Year(NgaySinh)= 1992 AND HocBong> 0 Sinh viên sinh năm 1992 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
Phép chọn (Select)
 Cú pháp: 
(điều-kiện-chọn)
(TenQuanHe)
 Ví dụ: Cho biết các nhân viên có lương >= 500
48
12/11/13

25
Phép chiếu (Project)
 Cú pháp: 
(danh-sách-thuộc-tính)
(TenQuanHe)
 Ví dụ: Liệt kê các nhân viên với HoTenNV, GioiTinh, DienThoai, Luong
49
Phép tích Descartes (Cartesian
product)
 Cho tập A = { a
1
, a
2
}, tập
B = { b
1
, b
2
, b
3
} thì tích
Descartes của A và B là:
A × B = { a
1
b
1
, a
1
b
2

, a
1
b
3
,
a
2
b
1
, a
2
b
2
, a
2
b
3
}
 Ví dụ: : HangHoa × LoaiHH
50

×