Tải bản đầy đủ (.docx) (78 trang)

Nghiên cứu ứng dụng khung nhìn thực để nâng cao hiệu suất hệ thống thông tin quản lý nhân sự tại sở giáo dục và thể thao tỉnh saravan (lào)

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.77 MB, 78 trang )

ĐẠI HỌC ĐÀ NẴNG
TRƢỜNG ĐẠI HỌC SƢ PHẠM ĐÀ
NẴNG

SATSAMAY CHANTHAVISOUK

NGHIÊN CỨU ỨNG DỤNG KHUNG NHÌN THỰC
ĐỂ NÂNG CAO HIỆU SUẤT HỆ THỐNG THÔNG TIN
QUẢN LÝ NHÂN SỰ TẠI SỞ GI O DỤC VÀ THỂ TH O
TỈNH S R V NH ÀO

LUẬN VĂN THẠC SĨ
HỆ THỐNG THÔNG TIN


ĐẠI HỌC ĐÀ NẴNG
TRƢỜNG ĐẠI HỌC SƢ PHẠM ĐÀ
NẴNG

SATSAMAY CHANTHAVISOUK

NGHIÊN CỨU ỨNG DỤNG KHUNG NHÌN THỰC
ĐỂ NÂNG CAO HIỆU SUẤT HỆ THỐNG THÔNG TIN
QUẢN LÝ NHÂN SỰ TẠI SỞ GI O DỤC VÀ THỂ TH O
TỈNH S R V NH ÀO

Chuyên ngành: Hệ thống thông tin
Mã số: 848 04 01

LUẬN VĂN THẠC SĨ
Ngƣời hƣớng dẫn khoa học:


TS. Nguyễn Trần Quốc Vinh

Đà Nẵng, năm 2018


LV CAM DOAN
Toi xin cam doan day la cong trinh nghién cfru cua riéng Hi do su huéng
dan truc tiép ciia TS Nguyén Tran Quoc Vinh. Cac so lieu, két qua néu trong Luan van
la trung thuc v:i chua t)i g ducic ai cfing bo trong bat ky cong trinh nao khac. Toi xin
cant doan rang mpi su giup dci cho viec thuc hien Luan van nay da du‹ c cain on va
cac thong tin trich dan trong Luan van da dupc chi ro nguon goc.

Hpc vién

SATSAMAY CHANTHAVISOUK


TRANG THONG TIN LUA) N VAN THAC SI

Tén de Hi: Nghién cfru ting dung KNT de nfing cao hi(u suat h( thong thong tin qu:in 1y nhan su tai
sci gi:to duc v:i the than tlilh Saravanh (Lao)

Nganh: He Thong Thong Tin
Hp va tén hpc vién: SATSAMAY CHANTHAVISOUK
Nguiri hwéi’ng

'n khoa hcc:

T6m tat: Khung nhin thitc (materialized view) co thé cho phép thuc thi cac truy van phtrc tiyp trén
cac cct scr dli 1i(u vfii dung lupng héng terabytes -trong v:ii gifiy 1ioa)c phan nhfi cua gifiy, nhurig

no it ducic biét den va it duoc ung dpng. Dir khung nhin thqc co the giup nang cao d:ing ké niing
suat cfia h( thong, nhung khfing phai trong mpi truéing hpp.Luan van n:iy gioi thi(u ve khung
nhin thqc va dé nghi giai ph:ip thi c hi(n mpt phfin y tufing khung nhin th;Jc trong c:ie h( qu:in tri cci
sfi dir li(u khfing hfi trp’ khuilg nhin thrrc. Tim hieu va ung dung ve cac to:ji khung nhin thqc, c:ich
xfiy dqng trigger bang C de diim biro dong bo giira khung nhin thirc v:i cac b:ing du 1i(u, phfin
tich h( thong thong tin qu:in li nhdn sq cua So gi:in duc va The thao Saravanh (Lao) va d(mh ra cac
chfrc néng dé :ip dpng kllung nhm thq’c,thuc nghi(m dé thay dupc 1‹yi ich in:I khung nhin thirc dein
lai (toc d ). Xhy d9iig dupe phuong ph:ip viet trigger bang ngfin ngu C, cach thfrc bién dich va sir
dpng he thong trigger
da dup’c tao
tiing c:1c khung nhin thuc co hfi trp’ truy van long, co the ung dpng van
de
CSDL hic›n co. Huéng nghién emu tiép theo cua de tiii pliat hi(n, sfra chua va nang cap he thong cSd1
hi(u quit hon, phat sinh duoc khung nhin thqc cho nhiéu phép truy van vii chuc na,ng hon.
Tir khoa: Khung nhin thuc, trigger, CSDL, h( thong thong tin, qu:in ly nhfin sq.
X:ie nha( n cfia gifio vién hirérng dan


INFORMATION PAGE OF MASTER THESIS

Name of thesis: Research on the use of Materialized views to improve the efficiency Human Resoui’ce
Management information System at Sai avanli Provincial Department of Education and Sports (Laos)

Major: tutor mation system
Full name of Master student: SATSAMAY CHANTHAVISOUK Supervisors:
Dr. Nguyen Tran‘Quoc Vinh
Training institution: Da Nang Uiiivercity of Education
Abstract: Mateiialized views can allow to execute the complex queries upon the large database in a
few seconds or less, they are not well known and that application is not popular. Even though
materialized views can help to significantly improve the performance of the systems, but not for all

cases. This paper introduces the materialized views, and offers the useful solution to carry out a part of
the idea of the materialized views in the database management systems not supporting the materialized
views. Understand and apply the types of materialized views, how to build triggers by C to ensure
synchronization between the materialized views and the data tables, analysis of management
information system of the Depailiiient of Education and Sports Saravanll ( Laos PDR) and define
functions to apply real, eiiipirical views to see the benefits that materialized views brings (speed).
Build the trigger method in C language, how to compile and use the generated trigger system. The
traffic technology supports nested queries, which can be applied to existing databases. Further research
into the topic has discovered, repaiied and upgraded the csdl system more efficiently, generating a real
view for moi e queries and functions.
Key words: Materialized views, Trigger, Database, Information System, HRM.

Supervior’s confirmation

Student


2
MỤC LỤC
LỜI CAM ĐOAN...........................................................................................................i
MỤC LỤC..................................................................................................................... ii
DANH MỤC CÁC TỪ VIẾT TẮT............................................................................... v
DANH MỤC HÌNH VẼ............................................................................................... vi
MỞ ĐẦU....................................................................................................................... 1
1. Lý do chọn đề tài............................................................................................... 1
3. Đối tượng và phạm vi nghiên cứu..................................................................... 2
4. Phương pháp nghiên cứu................................................................................... 2
5. Kết quả dự kiến................................................................................................. 3
6. Bố cục của đề tài............................................................................................... 3
CHƢƠNG 1. NGHIÊN CỨU TỔNG QUAN............................................................ 4

1.1. Những vấn đề chung về quản lý nhân sự............................................................. 4
1.1.1. Khái niệm về quản lý nhân sự..................................................................... 4
1.1.2. Những vấn đề trong công tác quản lý nhân sự............................................. 4
1.2. Tổng quan về khung nhìn thực............................................................................ 4
1.2.1. Khái niệm.................................................................................................... 4
1.2.2. Phân loại...................................................................................................... 6
1.3. Tổng quan về cập nhật gia tăng, đồng bộ khung nhìn thực............................... 7
1.4. Tổng quan về cập nhật gia tăng, đồng bộ khung nhìn thực............................... 9
1.4.1. Tổng quan về cập nhật gia tăng................................................................... 9
1.4.2. Cập nhập đồng bộ khung nhìn thực........................................................... 10
1.5. Cập nhật khung nhìn thực bằng Trigger trên C trong PostgreSql..................11
1.5.1. Khái niệm về Trigger................................................................................. 11
1.5.2. Trigger trên các HQT CSDL...................................................................... 11
1.5.3. Trigger trong PostgreSQL......................................................................... 12
1.5.4. Hàm Trigger trong C................................................................................. 13
1.5.5. Ví dụ tạo Trigger trên C trong PostgreSQL............................................... 14
1.5.6. Ý nghĩa của việc sử dụng Trigger trong việc ứng dụng KNT....................15
CHƢƠNG 2. PHÂN TÍCH ỨNG DỤNG KNT VÀO HỆ THỐNG THÔNG TIN
QUẢN LÝ CỦA SỞ GD VÀ THỂ THAO TỈNH SARAVANH............................... 16
2.1. Tổng quan về hệ thống thông tin quản lý.......................................................... 16


2.1.1. Thực trạng................................................................................................. 17
2.1.2. Đề xuất...................................................................................................... 17
2.2. Sơ đồ UML cơ sở dữ liệu.................................................................................... 18
2.2.1. Các mô hình Us cas.............................................................................. 18
2.2.2. Các sơ đồ hoạt động Activity iagram...................................................... 21
2.2.3. Các sơ đồ tuần tự S qu nc

iagram...................................................... 23


2.3. Mô hình thực thể kết hợp................................................................................... 28
2.4. Mô hình CSDL hoàn chỉnh................................................................................. 29
2.5. C c thuộc t nh của c c thực thể...................................................................... 30
2.6. Cơ sở dữ liệu........................................................................................................ 32
2.6.1. ảng Nhân viên....................................................................................... 32
2.6.2. ảng chức vụ........................................................................................... 34
2.6.3. ảng Ph ng an..................................................................................... 34
2.6.4. ảng ân tộc.................................................................................. 34
2.6.5. ảng Hồ sơ tuyển dụng............................................................................ 35
2.6.6. Bảng kết quả tuyển dụng........................................................................... 37
2.6.7. Bảng trình độ ngoại ngữ............................................................................ 37
2.6.8. Bảng quá trình tuyển dụng......................................................................... 37
2.6.9. Bảng quá trình đào tạo............................................................................... 38
2.6.10. Bảng quốc tịch......................................................................................... 38
2.6.11. Bảng tôn giáo........................................................................................... 38
2.6.12. Bảng trình độ học vấn.............................................................................. 38
2.6.13. Bảng trình độ tin học............................................................................... 39
2.6.14. Bảng vị trị tuyển dụng............................................................................. 39
2.6.15. Bảng lịch sử bạn thân.............................................................................. 39
2.6.16. Bảng lương nhân viên.............................................................................. 39
2.6.17. Bảng ngạch.............................................................................................. 40
2.6.18. Bảng bậc.................................................................................................. 40
2.6.19. Bảng quá trình công tác........................................................................... 41
2.6.20. Bảng quá trình kh n thưởng..................................................................... 41
2.6.21. Bảng quá trình kỷ luật............................................................................. 41
2.6.22. Bảng quá trình thai sản............................................................................ 42
2.6.23. Bảng tham gia lực lượng vũ trang............................................................ 42



2.6.24. Bảng tham gia hoạt động xã hội.............................................................. 43
2.6.25. Bảng hợp đồng lao động.......................................................................... 43
2.6.26. Bảng đánh cán ộ viện chức.................................................................... 44
2.6.27. Bảng ngoại ngữ........................................................................................ 44
2.6.28. Bảng công tác ngoại ngữ......................................................................... 45
2.7. Thiết ế CSD qua hung nh n thực............................................................... 45
CHƢƠNG 3. CÀI ĐẶT HỆ THỐNG THÔNG TIN QUẢN LÝ TẠI SỞ GIÁO
DỤC VÀ THỂ THAO TỈNH SARAVAN (LÀO)..................................................... 46
3.1 Xây dựng trigger.................................................................................................. 46
3.2. Điều chỉnh mã nguồn hệ thống........................................................................... 46
3.3. Thực nghiệm và đ nh gi.................................................................................. 46
KẾT LUẬN................................................................................................................. 55
TÀI LIỆU THAM KHẢO


v
DANH MỤC CÁC TỪ VIẾT TẮT

Từ viết tắt

Nội dung

KNT

Khung nhìn thực

CSDL

Cơ sở dữ liệu


UML

Unified Modeling Language

SQT

System Qualification Test

SQL

Structurce Query Language

BT

Bảng gốc

DSNV

Danh sách nhân viên

MANV

Mã nhân viên

MAPB

Mã phòng ban

MACV


Mã chức vụ

MADT

Mã nhân tộc

MAKQTD

Mã kết quả tuyển dụng

CNGT

Công nghệ giao thông

DSNV

Danh sách nhân viên


DANH MỤC HÌNH VẼ
Số hiệu
Hình 1.1
Hình 2.1
Hình 2.2
Hình 2.3
Hình 2.4
Hình 2.5
Hình 2.6
Hình 2.7
Hình 2.8

Hình 2.9
Hình 2.10
Hình 2.11
Hình 2.12
Hình 2.13
Hình 2.14
Hình 2.15
Hình 2.16
Hình 2.17
Hình 2.18
Hình 3.1
Hình 3.2
Hình 3.3
Hình 3.4
Hình 3.5
Hình 3.6
Hình 3.7
Hình 3.8
Hình 3.9
Hình 3.10

Tên hình
Trigger trong PostgreSQL
Mô hình Us cas tổng quát của hệ thống
Mô hình Us cas tổng quát của Quản l nhân sự.
Mô hình Us cas tổng quát của Quản l lương
Mô hình Us cas Quản l người ng
Mô hình Us cas Quản l tiền lương chi tiết
Mô hình Us cas Quản l nhân viên chi tiết
Mô hình Us cas Quản l tuyển ụng

Mô hình Us cas Quản l hợp đồng lao động
Sơ đồ hoạt động Đăng nhập hệ thống
Sơ đồ hoạt động Đổi mật kh u người ng
Sơ đồ hoạt động t nh lương nhân viên
Sơ đồ hoạt động Thêm nhân viên
Sơ đồ tuần tự Quản l nhân viên
Sơ đồ tuần tự Quản l tuyển ụng
Sơ đồ tuần tự Quản l hợp đồng lao động.
Sơ đồ tuần tự Quản l tiền lương
Sơ đồ thực thể kết hợp
Mô hình cơ sở ữ liệu hoàn chỉnh 1
Tạo mã Nguồn C
Tạo trigg r cho các ảng nguồn
Tốc độ thực thi lệnh S l ct không ng KNT
Tốc độ thực thi lệnh S l ct có ng KNT
Tốc độ thực thi lệnh l t 1 row không ng câu
lệnh trigger
Tốc độ thực thi lệnh l t 1 row ng câu lệnh trigg r
Tốc độ thực thi lệnh up at 1 row không ng câu lệnh
trigger
Tốc độ thực thi lệnh up at 1 row có ng câu lệnh trigg r
Tốc độ thực thi lệnh up at 996 row không ng câu lệnh
trigger
Tốc độ thực thi lệnh up at 996 row có ng câu lệnh trigg r

Trang
12
18
18
19

19
20
20
21
21
22
22
23
23
24
25
26
27
28
29
48
49
50
51
52
52
53
53
53
54


1

MỞ ĐẦU

1. Lý do chọn đề
tài
Ngày nay với sự phát triển không ngừng của xã hội tin học đã trở nên vô cùng
phổ biến và đã có những ước phát triển vượt bậc được thể hiện qua nhiều lĩnh vực
của đời sống xã hội. Tin học đã ần dần trở thành nhu cầu rất cần thiết và không thể
thiếu trong cuộc sống của con người. Ở các quốc gia phát triển hiệu quả do tin học hóa
đ m lại đã góp phần thiết yếu và chiếm giữ một vị trí quan trọng trong các lĩnh vực
kinh tế, chính trị văn hóa giáo ục…
Với số lượng nhân viên của sở Giáo dục và Thể thao tỉnh Saravan ào là
hơn một trăm người và cũng có thể con số này s tăng lên nhiều hơn nữa trong
tương lai nên việc quản lý về hồ sơ cũng như tiền lương của cán bộ nhân viên
s gặp nhiều khó khăn và tốn kém nhiều thời gian hơn. Trước đây để thu nhận
một nhân viên mới, xét duyệt nâng lương quản l quá trình công tác cũng như
chuyển công tác của các nhân viên trong Sở, các nhân viên của Phòng Tổ
Chức phải làm việc với số lượng sổ sách khá lớn, ghi chép thông tin cho tất cả
các nhân viên của sở phải mất rất nhiều công sức và phải mất một thời gian rất
lâu, và sự sai xót trong quá trình ghi chép là khó tránh khỏi khi phải làm việc
thủ công như vậy. Nên an Giám Đốc sở muốn tin học hóa việc quản lý nhân sự
và tiền lương đó với một hệ thống phần mềm quản lý và mong muốn đó đã
được chúng tôi đảm nhiệm thực hiện.
Nhờ t nh hiệu quả và nhanh chóng do hệ thống mới đ m lại làm cho hiệu
suất công việc tăng cao trao đổi thông tin được diễn ra an toàn đồng bộ, chính xác
do tính năng ưu việt của hệ thống máy t nh đ m lại. Vì thế mà việc tra cứu không
còn phải khó khăn phức tạp nữa vì hệ thống s thống kê quản l và chúng ta có thể
tra cứu, tham khảo bất cứ lúc nào khi cần. Do vậy chi phí s giảm thiểu, lợi nhuận
tăng cao tính hiện đại hóa được giải quyết.
Xuất phát từ vấn đề nêu trên tôi chọn đề tài Nghiên cứu ứng dụng khung
nhìn thực để nâng cao hiệu suất hệ thống thông tin quản lý nhân sự tại sở giáo dục
và thể thao tỉnh Saravan (Lào)”
2. Mục tiêu và nhiệm vụ đề tài

2.1. Mục tiêu
- Nghiên cứu tổng quan về hệ thống thong tin quản lý.


- Nghiên cứu ứng dụng KNT để nâng cao hiệu suất hệ thống thong tin quản lý.
- Nghiên cứu cơ sở lý thuyết về cập nhật gia tăng đồng bộ KNT với truy vấn
lồng.
- Nghiên cứu tổng quan về trigger trên C trong PostgreSQL.
- Xây dựng CSDL qua khung nhìn thực.
2.2. Nhiệm vụ
- Tìm hiểu các iên ịch và sử

ụng trigg r viết

ằng ngôn ngữ C trên

PostgreSQL.
- Tìm hiểu và nghiên cứu cơ sở l thuyết về cập nhật gia tăng đồng ộ KNT với
truy vấn lồng.
- Khai thác các thuật toán CNGT KNT đã có để ứng ụng vào đề tài đặc iệt là
thuật toán CNGT KNT với truy vấn lồng.
3. Đối tƣợng và phạm vi nghiên cứu
3.1. Đối tƣợng nghiên cứu
- CSDL quan hệ, HQT CSDL quan hệ
- Ngôn ngữ lập trình C
- Trigger trên các HQT CSDL quan hệ
- Truy vấn lồng
- Khung nhìn thực
- Thuật toán CNGT KNT với truy vấn lồng
3.2. Phạm vi nghiên cứu

- HQT CSDL PostgreSQL
- Kỹ thuật viết trigger cho PostgreSQL bằng ngôn ngữ C
- Cách sử dụng trigg r được viết bằng ngôn ngữ C trên PostgreSQL
- Các thuật toán CNGT cho KNT trên PostgreSQL
- Thuật toán CNGT KNT hỗ trợ truy vấn lồng
4. Phƣơng ph p nghiên cứu
Về phương pháp nghiên cứu, tôi sử dụng hai phương pháp ch nh là nghiên cứu
lý thuyết và nghiên cứu thực nghiệm.


4.1. Phƣơng ph p lý thuyết
Thu thập, chọn lọc, phân loại, ghi chú và nghiên cứu các tài liệu (sách, bài
báo, luận văn trang w có liên quan đến khung nhìn thực, HQTCSDL PostgreSQL,
cập nhật gia tăng KNT đồng bộ KNT, sinh mã trigger trong ngôn ngữ C.
4.2. Phƣơng ph p thực nghiệm
Dựa trên lý thuyết đã nghiên cứu, tiến hành xây dựng chương trình sinh tự động
mã các trigger thực hiện cập nhật gia tăng khung nhìn thực với truy vấn lồng trong hệ
cơ sở dữ liệu PostgreSQL; thử nghiệm trên máy đơn và đánh giá tốc độ cập nhật dữ
liệu trên các bảng gốc (BG) có trigger cập nhật KNT.
5. Kết quả dự kiến
5.1. Lý thuyết
Đề tài s chọn được thuật toán ph hợp có hỗ trợ CNGT cho các KNT sử ụng
truy vấn trong hệ thống thông tin quản lý.
5.2. Thực tiễn
Đề tài s xây ựng được phương pháp viết trigg r ằng ngôn ngữ C cách thức
iên ịch và sử ụng hệ thống trigg r đã được tạo để CNGT các KNT có hỗ trợ truy
vấn lồng có thể ứng ụng vào các CS hiện có.
6. Bố cục của đề tài
Ngoài phần mở đầu và kết luận, cấu trúc nội dung của luận văn ao gồm 3
chương



CHƢƠNG 1
NGHIÊN CỨU TỔNG QUAN
1.1. Những vấn đề chung về quản lý nhân sự
1.1.1. Khái niệm về quản lý nhân sự
Ngày nay, khi nhân loại ước vào nền kinh tế tri thức người ta bắt đầu nói
nhiều đến nguồn lực con người là yếu tố cơ ản để phát triển xã hội tăng trưởng kinh
tế thì đối với các nhà quản lý ở mọi lĩnh vực, vấn đề quản lý nhân sự được đặt lên hàng
đầu. Khi người ta nói đến một tổ chức, một đơn vị làm ăn thất bại, thua lỗ, không phải
vì thiếu vốn, thiếu trang thiết bị, thiếu cơ sở vật chất, mặt bằng … mà người ta nghĩ
ngay đến người lãnh đạo, thủ trưởng của đơn vị đó không đủ năng lực điều hành công
việc, thiếu trang bị về kiến thức quản lý nhân sự hoặc thiếu kinh nghiệm trong chiến
lược con người.
Vậy quản lý nhân sự là gì? Quản lý nhân sự là sự khai thác và sử dụng nguồn
nhân lực của một tổ chức hay một công ty một cách hợp lý và hiệu quả. Bao gồm các
nội ung cơ ản sau đây
 Phân tích công việc
 Tuyển dụng nhân viên
 Đào tạo và nâng cao năng lực chuyên môn cho nhân viên
 Nâng cao hiệu quả sử ung lao động thông qua việc sử dụng hệ thống kích
thích vật chất và tinh thần đối với nhân viên.
1.1.2. Những vấn đề trong công tác quản lý nhân sự
Quản lý nhân sự là công việc thực hiện trên 1 tập dữ liệu lớn được chia ra thực
hiện ở nhiều bộ phận khác nhau. Việc quản lý nhân sự thường gặp phải những vấn đề
sau:
 Sai sót trong việc điều chỉnh, tìm kiếm dữ liệu
 Mất nhiều thời gian để hoàn thành công việc do phải làm việc với 1 lượng
lớn dữ liệu
 Dữ liệu không nhất quán giữa các bộ phận làm việc

1.2. Tổng quan về khung nhìn thực
1.2.1. Khái niệm
Khung nhìn thực (KNT) là một kỹ thuật giúp cải thiện và nâng cao tốc độ thực
thi đối với các truy vấn phức tạp, có tần suất sử dụng cao trên một lượng dữ liệu lớn. Ý
tưởng của KNT là dựa trên các bảng kết quả sẵn có để trả lời truy vấn một cách nhanh
chóng mà không cần thực thi lại truy vấn. Đối với những truy vấn phức tạp bao gồm


nhiều phép nối và các hàm thống kê, hiệu quả sử dụng KNT càng rõ rệt đặc biệt khi
áp dụng trên một lượng dữ liệu đủ lớn o đã ỏ qua các ước thực thi phép nối và các
hàm thống kê vốn là những thành phần chiếm nhiều chi phí trong quá trình thực thi
truy vấn. Đến nay, kỹ thuật KNT đã được triển khai trên các hệ quản trị cơ sở dữ liệu
HTQCS thương mại lớn như Oracl Microsoft SQ S rv r I M 2 … và
ngày càng được ứng dụng rộng rãi.
Một khung nhìn vi w có thể được x m như là một ảng ảo” trong cơ sở ữ
liệu có nội ung được định nghĩa thông qua một truy vấn câu lệnh SE ECT . Điểm
khác iệt giữa khung nhìn và ảng là khung nhìn không được x m là một cấu trúc
lưu trữ ữ liệu tồn tại trong cơ sở ữ liệu. Thực chất ữ liệu quan sát được trong
khung nhìn được lấy từ các ảng thông qua câu lệnh truy vấn ữ liệu.
V dụ:
Khung nhìn thực SNV được mô tả như sau
CREATE VIEW DSNV(manv,hodem,ten,tuoi,tenPB) AS
SELECT masv, hodem, ten,DATEDIFF(YY, ngaysinh, GETDATE()),
tenpb
FROM nhanvien, pban
WHERE nhanvien.mapb = lop.mapb
Khi khung nhìn đã được định nghĩa ta có thể sử ụng câu lệnh SE ECT
để truy vấn ữ liệu từ khung nhìn như đối với các ảng. Khi trong câu truy vấn
xuất hiện khung nhìn hệ quản trị CS s ựa vào định nghĩa của khung nhìn để
chuyển yêu cầu truy vấn ữ liệu liên quan đến khung nhìn và việc truy vấn ữ

liệu được thực hiện
ởi yêu cầu tương đương trên các ảng.
Việc sử ụng khung nhìn trong cơ sở ữ liệu đ m lại các lợi ch sau đây ảo
mật ữ liệu đơn giản hoá các thao tác truy vấn ữ liệu tập trung và đơn giản hoà ữ
liệu độc lập ữ liệu.
Tuy nhiên việc sử ụng khung nhìn cũng tồn tại một số nhược điểm
- o hệ quản trị cơ sở ữ liệu thực hiện việc chuyển đổi các truy vấn trên khung
nhìn thành những truy vấn trên các ảng cơ sở nên nếu một khung nhìn được định
nghĩa ởi một truy vấn phức tạp thì s ẫn đến chi ph về mặt thời gian khi thực hiện
truy vấn liên quan đến khung nhìn s lớn.
- Mặc thông qua khung nhìn có thể thực hiện được thao tác ổ sung và cập
nhật ữ liệu cho ảng cơ sở nhưng chỉ hạn chế đối với những khung nhìn đơn giản.
Đối với những khung nhìn phức tạp thì thường không thực hiện được; hay nói
cách khác là ữ liệu trong khung nhìn là chỉ đọc.


Một khung nhìn có thể được cụ thể hóa ằng cách lưu trữ các ộ ữ liệu của
các khung nhìn trong cơ sở ữ liệu được gọi là khung nhìn thực. KNT là hiện
thân tự nhiên của tưởng t nh toán lại và ộ nhớ đệm trong cơ sở ữ liệu. Thay vì t
nh toán một truy vấn từ đầu từ ữ liệu cơ ản hệ thống cơ sở ữ liệu có thể sử ụng
kết quả đã được t nh toán lưu trữ và uy trì.
Giống như một ộ nhớ cach ộ nhớ đệm – nơi lưu trữ các ữ liệu nằm chờ các
ứng ụng hay phần cứng xử l một KNT cung cấp truy cập ữ liệu nhanh; sự khác
iệt tốc độ có thể là rất quan trọng trong các ứng ụng mà tốc độ truy vấn cao và
khung nhìn rất phức tạp rằng nó không thể t nh toán lại khung nhìn cho mỗi lần truy
vấn. KNT là hữu ch trong các ứng ụng như kho ữ liệu máy chủ sao chép iên niên
sử hoặc các hệ thống ghi ữ liệu trực quan ữ liệu và hệ thống điện thoại i động.
Kiểm tra t nh ràng uộc toàn vẹn và tối ưu hóa truy vấn cũng có thể được lợi ch từ
KNT.
Tuy nhiên việc sử ụng KNT cũng có những nhược điểm; đó là KNT làm tiêu

tốn không gian lưu trữ và phải được cập nhật khi các ảng chi tiết cơ ản được sửa
đổi.
1.2.2. Phân loại

Phân loại khung nhìn thực th o một số loại [15] như sau
1.2.2.1. KNT bản sao (snapshot materialized view)
Mô tả KNT ản sao
- Chiến lược cập nhật: kiểu KNT được cập nhật th o yêu cầu
- Cài đặt: KNT ản sao được cài đặt khá ễ àng ằng cách gọi hàm sau
r fr sh_matvi w . Khi gọi hàm r fr sh_matvi w HQT CS s tự động xóa
nội ung của KNT trước đó rồi thực hiện truy vấn khung nhìn và điền kết quả
vào lại KNT với nội ung hiện tại của khung nhìn đó.
1.2.2.2. KNT hăm hở (eager materialized view)
Mô tả KNT hăm hở
- Chiến lược cập nhật: Chúng được cập nhật ngay sau khi có ất kỳ thay
đổi nào được thực hiện với cơ sở ữ liệu đó mà s ảnh hưởng đến nó. Điều này
được thực hiện với một hệ thống k ch hoạt trên tất cả các ảng cơ sở. Phụ thuộc
vào hàm thay đổi được như now() s gây ra cho KNT trở nên sai lệch nhưng
có thể được sửa chữa với những làm mới nhỏ mà chỉ ảnh hưởng đến các hàng.
- Cài đặt: Việc thực thi KNT hăm hở được thực hiện qua hai hàm sau
o mv_refresh_row(PK): cập nhật ộ giá trị với khóa ch nh PK


o mv_refresh(): sử ụng nếu khung nhìn ựa vào hàm thay đổi được như
now ”
Khi đó các trigg r với các ẫy sự kiện trong các HQT CS tương ứng
với các truy vấn INSERT UP ATE và E ETE s được gọi thông qua hàm
mv_r fr sh_row một cách th ch hợp.
1.2.2.3. KNT rất lười (very lazy materialized view):
Mô tả khung nhìn thực rất lười như sau

- Chiến lược cập nhật: Chúng s ghi lại các hàng trong KNT cần phải
được cập nhật nhưng s không cập nhật cho đến khi hướng đến. Điều này s rất
hữu ch nếu ạn đang cam kết nhiều giao ịch mà ảnh hưởng đến KNT đó
nhưng không muốn thực sự cập nhật KNT cho đến sau này. Chúng có chức năng
tương đương với các KNT ản sao.
- Cài đặt: Việc cài đặt KNT kiểu rất lười qua các ước sau
o Ghi tất cả những thay đổi trên các ảng cơ sở trong một ản ghi sử ụng
một số trigg r và hàm
o Cài đặt một hàm "matvi w_r fr sh " mà đọc ản ghi đó và cập nhật
KNT th o anh sách các thay đổi trong ản ghi
1.2.2.4. KNT lười (lazy materialized view):
Mô tả khung nhìn thực lười như sau
- Chiến lược cập nhật: Chúng s ghi lại các hàng trong KNT cần phải
được cập nhật và cập nhật chúng khi giao ịch được thực hiện. Điều này hữu
ch nếu nhiều sự thay đổi s ảnh hưởng đến các hàng giống nhau và cũng s cho
phép những thay đổi được thực hiện nhanh hơn nhiều.
- Cài đặt: Tương tự như KNT rất lười việc gọi và thực thi khung nhìn thực
thông qua hàm matvi w_r fr sh ” trong đó cơ chế gọi s được gọi th o cam
kết và không th o yêu cầu.
1.3. Tổng quan về cập nhật gia tăng, đồng bộ khung nhìn thực
Bạn đã iết đầu ra của câu lệnh SELECT là một tập kết quả thể hiện ưới dạng
một bảng ảo, bạn có thể lưu trữ bảng ảo bằng cách sử dụng View (Khung nhìn).
Những bảng từ đó khung nhìn được tạo được gọi là bảng co sở. Những bảng cơ sở này
lại có thể là thuộc về cơ sỡ dữ liệu khác nhau. Mỗi View có thể có tối đa 1024 cột và
những hàng và cột của Vi w được sinh ra ở một dạng động khi Vi w được tham chiếu.


View chỉ áp dụng cho câu lệnh SELECT, các cột của Vi w cũng có thể được
lấy từ các cột của View khác.
Bạn có thể có những thao tác trên Vi w tượng tự trên bảng như SE ECT

INSERT, UPDATE, DELETE.
Tổng quan về cập nhật gia tăng
Một Vi w Khung nhìn có thể được x m như là một ảng ảo trong CS có nội
ung được định nghĩa thông qua một câu lệnh truy vấn SE ECT .
– Như vậy một Vi w trông giống như một Ta l ảng với một tên khung
nhìn và một tập các ng cột. Điểm khác iệt giữa Vi w và Ta l là Vi w không
được x m là một cấu trúc lưu trữ ữ liệu tồn tại trong CS .
– Lợi ch của việc sử ụng Vi w trong CS
+ ảo mật ữ liệu Người sử ụng được cấp phát quyền trên các Vi w với
những phần ữ liệu mà người sử ụng được phép -> Hạn chế việc người sử ụng
truy cập trực tiếp ữ liệu.
+ Đơn giản hóa các thao tác truy vấn ữ liệu Một Vi w đóng vai tr như
một đối tượng tập hợp ữ liệu từ nhiều ảng khác nhau vào trong một ảng ->
Người sử ụng có thể thực hiện các yêu cầu truy vấn ữ liệu một cách đơn giản
từ Vi w thay vì phải đưa ra những câu truy vấn phức tạp.
+ Tập trung và đơn giản hóa ữ liệu Thông qua Vi w ta có thể cung cấp
cho người ng những cấu trúc đơn giản ễ hiểu về ữ liệu đồng thời giúp cho
người ng tập trung hơn trên những phần ữ liệu cần thiết.
+ Độc lập ữ liệu Một Vi w có thể cho phép người ng có được cái nhìn về
ữ liệu độc lập với cấu trúc của các ảng trong CS cho các ảng cơ sở có ị thay
đổi phần nào về cấu trúc.
– Một số nhược điểm của việc sử ụng Vi w
+ o hệ quản trị CS thực hiện chuyển đổi các truy vấn trên Vi w thành những
truy vấn trên các ảng cơ sở nên nếu một Vi w được định nghĩa ởi một truy vấn
phức tạp thì s ẫn đến chi ph về mặt thời gian khi thực hiện truy vấn liên quan đến
Vi w lớn.
+ Mặc thông qua Vi w có thể thực hiện được các thao tác ổ sung và cập
nhật
ữ liệu cho ảng cơ sở nhưng chỉ hạn chế đối với những Vi w đơn giản. Đối với các



Vi w phức tạp thì thường không thực hiện được hay nói cách khác ữ liệu trong Vi w
chỉ là đọc.
1.4. Tổng quan về cập nhật gia tăng, đồng bộ khung nhìn thực
Bạn đã iết đầu ra của câu lệnh SELECT là một tập kết quả thể hiện ưới dạng
một bảng ảo, bạn có thể lưu trữ bảng ảo bằng cách sử dụng View (Khung nhìn).
Những bảng từ đó khung nhìn được tạo được gọi là bảng co sở. Những bảng cơ sở này
lại có thể là thuộc về cơ sỡ dữ liệu khác nhau. Mỗi View có thể có tối đa 1024 cột và
những hàng và cột của Vi w được sinh ra ở một dạng động khi Vi w được tham chiếu.
View chỉ áp dụng cho câu lệnh SELECT, các cột của Vi w cũng có thể được
lấy từ các cột của View khác.
Bạn có thể có những thao tác trên Vi w tượng tự trên bảng như SE ECT INSERT
UPDATE, DELETE.
1.4.1. Tổng quan về cập nhật gia tăng
Một Vi w Khung nhìn có thể được x m như là một ảng ảo trong CS có
nội ung được định nghĩa thông qua một câu lệnh truy vấn SE ECT .


Như vậy một Vi w trông giống như một Ta l ảng với một tên khung

nhìn và một tập các ng cột. Điểm khác iệt giữa Vi w và Ta l là Vi w không
được x m là một cấu trúc lưu trữ ữ liệu tồn tại trong CS .
– ợi ch của việc sử ụng Vi w trong CS
+ ảo mật ữ liệu Người sử ụng được cấp phát quyền trên các Vi w với
những phần ữ liệu mà người sử ụng được phép -> Hạn chế việc người sử ụng
truy cập trực tiếp ữ liệu.
+ Đơn giản hóa các thao tác truy vấn ữ liệu Một Vi w đóng vai tr như
một đối tượng tập hợp ữ liệu từ nhiều ảng khác nhau vào trong một ảng ->
Người sử
ụng có thể thực hiện các yêu cầu truy vấn ữ liệu một cách đơn giản từ Vi w thay vì

phải đưa ra những câu truy vấn phức tạp.
+ Tập trung và đơn giản hóa ữ liệu Thông qua Vi w ta có thể cung cấp
cho người ng những cấu trúc đơn giản ễ hiểu về ữ liệu đồng thời giúp cho
người dùng tập trung hơn trên những phần ữ liệu cần thiết.
+ Độc lập ữ liệu Một Vi w có thể cho phép người ng có được cái nhìn
về
ữ liệu độc lập với cấu trúc của các ảng trong CS cho
thay

các ảng cơ sở có ị


đổi phần nào về cấu trúc.
– Một số nhược điểm của việc sử ụng Vi w
+ o hệ quản trị CS thực hiện chuyển đổi các truy vấn trên Vi w thành
những truy vấn trên các ảng cơ sở nên nếu một Vi w được định nghĩa ởi một
truy vấn phức tạp thì s ẫn đến chi ph về mặt thời gian khi thực hiện truy vấn
liên quan đến Vi w lớn.
+ Mặc thông qua Vi w có thể thực hiện được các thao tác ổ sung và cập
nhật ữ liệu cho ảng cơ sở nhưng chỉ hạn chế đối với những Vi w đơn giản. Đối
với các Vi w phức tạp thì thường không thực hiện được hay nói cách khác ữ liệu
trong Vi w chỉ là đọc.
1.4.2. Cập nhập đồng bộ khung nhìn thực
Đối với một số khung nhìn ta có thể tiến hành thực hiện các thao tác cập nhập
ổ sung và xoá ữ liệu. Thực chất những thao tác này s được chuyển thành những
thao tác tương tự trên các ảng cơ sở và có tác động đến những ảng cơ sở.
Về mặt l thuyết để có thể thực hiện thao tác ổ sung cập nhật và xoá một
khung nhìn trước tiên phải thoả mãn các điều kiện sau đây
• Trong câu lệnh SE ECT định nghĩa khung nhìn không được sử ụng từ khoá
DISTINCT, TOP, GROUP BY và UNION.

• Các thành phần xuất hiện trong anh sách chọn của câu lệnh SE ECT phải
là các cột trong các ảng cơ sở. Trong anh sách chọn không được chứa các iểu thức
t nh toán các hàm gộp.
Quan điểm có thể được cập nhật ưới các điều kiện nhất định được đưa ra ưới đây
 Mệnh đề SE ECT không được chứa từ khoá ISTINCT.
 Mệnh đề SE ECT không được chứa các hàm tóm tắt.
 Mệnh đề SE ECT có thể không chứa các hàm thiết lập.
 Mệnh đề SE ECT không được chứa các toán tử được đặt.
 Mệnh đề SE ECT không được chứa mệnh đề OR ER Y.
 Mệnh đề FROM không được chứa nhiều ảng.
 Mệnh đề WHERE không được chứa các truy vấn phụ.
 Truy vấn có thể không chứa GROUP Y hoặc HAVING.
 Các cột được t nh có thể không được cập nhật.


 Tất cả các cột NOT NU từ ảng cơ sở phải được ao gồm trong
vi w để truy vấn INSERT hoạt động.
1.5. Cập nhật khung nhìn thực bằng Trigger trên C trong PostgreSql
1.5.1. Khái niệm về Trigger
Trigger có thể được xem là một dạng đặc biệt của thủ tục nội tại, bởi vì bên
trong nội dung của trigg r lưu trữ các câu lệnh ng để thực hiện một số hành động
nào đó mà người lập trình s chỉ ra. Tuy nhiên khác với thủ tục nội tại, trigger hoàn
toàn không có tham số.
Ngoài ra chúng ta không thể gọi thực hiện trực tiếp trigger bằng lệnh
EXECUTE như thủ tục nội tại hoặc bằng bất kỳ một lệnh nào khác thay vào đó trigg r
s được thực hiện một cách tự động khi dữ liệu của bảng có liên quan đến trigger bị
cập nhật..
1.5.2. Trigger trên các HQT CSDL
Để tạo một Trigg r ạn sử ụng câu lệnh CREATE TRIGGER:
CREATE TRIGGER trigger_name trigger_time trigger_event

ON table_name
FOR EACH ROW
BEGIN
...
END;
Trong đó
 Một Trigg r được khởi tạo sau câu lệnh CREATE TRIGGER. Quy tắc đặt
tên nên tuân th o nguyên tắc [trigger time]_[table name]_[trigger event], ví
ụ before_employees_update.
 Thời gian k ch hoạt BEFORE hoặc AFTER. Cần phải chỉ định thời gian
k ch hoạc khi ạn xác định được tiến trình k ch hoạt của nó. Sử ụng từ
khóa BEFORE nếu ạn muốn xử l hành động trước khi thực hiện thay đổi
trên ản và AFTER nếu ạn cần phải xử l hành động sau khi thay đổi được
thực hiện xong.
 Sự kiện gây ra có thể là INSERT, UPDATE, DELETE.
 Trình k ch hoạt phải được liên kết với một ảng cụ thể sử ụng từ
khóa ON để xác định.
 Câu lệnh SQ phải được đặt giữa từ khóa BEGIN và END.


1.5.3. Trigger trong PostgreSQL
Để tạo một Trigg r ạn sử ụng câu lệnh CREATE TRIGGER:
CREATE [ CONSTRAINT ] TRIGGER name { BEFORE | AFTER | INSTEAD OF }
{ event [ OR ... ] }
ON table
[ FROM referenced_table_name ]
[ NOT DEFERRABLE | [ DEFERRABLE ] { INITIALLY IMMEDIATE |
INITIALLY DEFERRED } ]
[ FOR [ EACH ] { ROW | STATEMENT } ]
[ WHEN ( condition ) ]

EXECUTE PROCEDURE function_name ( arguments )
where event can be one of:
INSERT
UPDATE [ OF column_name [, ... ]
] DELETE
TRUNCATE

Hình 1.1. Trigger trong PostgreSQL
Trigger s được liên kết với bảng hoặc khung được chỉ định và s thực hiện
chức năng function_nam được chỉ định khi xảy ra các sự kiện nhất định.
Trigger có thể được chỉ định để kích hoạt trước khi thao tác được thực hiện trên
một hàng trước khi kiểm tra các ràng buộc và INSERT, UPDATE, hoặc E ETE
được cố gắng); hoặc sau khi hoạt động đã hoàn thành sau khi các ràng uộc được
kiểm tra và INSERT, UPDATE, hoặc E ETE đã hoàn thành ; hoặc thay vì hoạt
động (trong trường hợp chèn, cập nhật hoặc xóa trên một lần xem).
Nếu Trigger kích hoạt trước hoặc thay vì sự kiện, Trigger có thể bỏ qua hoạt
động cho hàng hiện tại hoặc thay đổi hàng đang được chèn (chỉ dành cho thao tác
INSERT và UPDATE). Nếu Trigger kích hoạt sau sự kiện, tất cả các thay đổi, bao
gồm các hiệu ứng của các trình kích hoạt khác, là "hiển thị" với Trigger.
Một trigg r được đánh ấu FOR EACH ROW được gọi là một lần cho mỗi
hàng mà thao tác sửa đổi. Ví dụ, một DELETE ảnh hưởng đến 10 hàng s gây ra bất


kỳ ON DELETE kích hoạt trên quan hệ đ ch được gọi là 10 lần riêng biệt, một lần cho
mỗi hàng đã xóa. Ngược lại, một trigg r được đánh ấu FOR EACH STATEMENT
chỉ được thực hiện một lần cho bất kỳ hoạt động nào, bất kể có bao nhiêu hàng nó sửa
đổi đặc biệt, một thao tác sửa đổi các hàng không s vẫn dẫn đến việc thực hiện bất
kỳ áp lực nào đối với mỗi BỘ TRƯỞNG BẢO TỒN) .
Trigger hoạt được chỉ định để kích hoạt INSTEAD OF sự kiện kích hoạt phải
được đánh ấu FOR EACH ROW và chỉ có thể được định nghĩa trên chế độ xem.

TRƯỚC và sau khi Trigger trên chế độ xem phải được đánh ấu là FOR EACH
STATEMENT.
1.5.4. Hàm Trigger trong C
Trigg r c n được ng tự động lưu nhật k các thao tác ữ liệu xảy ra. V ụ
khi giao ịch ngân hàng một phát sinh giao ịch xảy ra có thể lưu nhật k TỰ
ĐỘNG
ằng trigg r thực hiện một cách đơn giản.
Bảng 1.1. Inserted, deleted
INSERT

DELETE

UPDATE

ữ liệu thêm mới được
lưu vào ảng này
Không sử ụng

ữ liệu mới s thay đổi

Không sử ụng
ữ liệu s xóa được
lưu vào ảng này
ữ liệu cũ trước khi
thay đổi

Khi trigg r xảy ra SQ S rv r sử ụng 2 ảng này để phục vụ cho công việc
mà trigg r đảm trách chức năng của từng ảng như sau
Ngoài cách viết trigg r ằng các sql stat m nt truyền thống HQT Postgr SQ
c n cho phép ta xây ựng các hàm được viết ằng ngôn ngữ C để thực hiện xử l các

hoạt động ins rt up at

l t với một tốc độ nhanh hơn.

Cú pháp
CREATE TRIGGER Trigger_name
ON table_name


FOR [DELETE, INSERT, UPDATE]
AS
Sql_statements
Giải th ch
Trigg r có tên Trigg r_nam được tạo ra trên ảng ta l _nam và trigg r được
gọi chạy khi có thao tác E ETE INSERT UP ATE trên ảng đó
1.5.5. Ví dụ tạo Trigger trên C trong PostgreSQL
Ví dụ 1:
CREATE TRIGGER CheckDiscountUpd
ON Products
FOR UPDATE AS
IF (SELECT discount FROM inserted) > (select max(Maxdisc) from discounts)
BEGIN
PRINT ‘You cannot assign a iscount gr at r than max allow

iscount’

ROLLBACK TRANSACTION
END
Giải th ch v dụ:
Giả sử ràng ảng Pro ucts có trường iscount khi cập nhật giá trị iscount thì

hệ thống kiểm tra x m giá trị iscount có nằm trong phạm vi cho phép hay không?
Nếu vượt quá thì hủy việc thay đổi đó.
V dụ 2: ạn không được phép thay đổi giá trị của trường paym nts trong ảng sal s
CREATE TRIGGER NoUpdatePayterms
ON sales
FOR UPDATE AS
IF UPDATE (payterms)
BEGIN
PRINT ‘You cannot mo ify th paym nt t rms for an or r’
ROLLBACK TRANSACTION
END


1.5.6. Ý nghĩa của việc sử dụng Trigger trong việc ứng dụng KNT
Khung nh n thực khác với khung nhìn ở chỗ nó là 1 ản sao tập thực ữ liệu
từ các ảng được lưu trữ lại. Để có thể tin tưởng sử ụng ữ liệu ở KNT thay cho
khung nhìn ta cần phải đảm ảo ữ liệu của KNT là đồng ộ so với các ảng gốc. o
đó ta cần phải sử ụng trigg r để xử l các thao tác mỗi khi tác động lên ảng gốc thì
nó cũng tác động lên KNT. Tóm lại
 Việc truy vấn trực tiếp lên KNT thay cho truy vấn trực tiếp s nhanh hơn
T nh hiệu năng)
 Trigg r s đảm ảo ữ liệu truy xuất từ KNT là tin cậy T nh đúng đắn


×