Tải bản đầy đủ (.pdf) (73 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 (5.95 MB, 73 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

Đà Nẵng, năm 2018


ĐẠ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





ii
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


iii
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 hồ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 q 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


iv
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


vi
DANH MỤC HÌNH VẼ
Số hiệu
Hình 1.1
Hình 2.1

Tên hình
Trigger trong PostgreSQL
Mơ hình Us cas tổng qt của hệ thống

Hình 2.2

Mơ hình Us cas tổng qt của Quản l nhân sự.

18

Hình 2.3


Mơ hình Us cas tổng quát của Quản l lương

19

Hình 2.4
Hình 2.5
Hình 2.6

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

19
20
20

Hình 2.7
Hình 2.8

Mơ hình Us cas Quản l tuyển ụng
Mơ hình Us cas Quản l hợp đồng lao động

21
21

Hình 2.9
Hình 2.10
Hình 2.11
Hình 2.12
Hình 2.13


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

22
22
23
23
24

Hình 2.14
Hình 2.15

Sơ đồ tuần tự Quản l tuyển ụng
Sơ đồ tuần tự Quản l hợp đồng lao động.

25
26

Hình 2.16

Sơ đồ tuần tự Quản l tiền lương

27

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

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
ng câu lệnh

28
29
48
49
50
51
52

ng câu lệnh trigg r

52

Hình 3.6
Hình 3.7
Hình 3.8
Hình 3.9

Hình 3.10

Tốc độ thực thi lệnh
trigger
Tốc độ thực thi lệnh

l t 1 row không
l t 1 row

Trang
12
18

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

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 q 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 q 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 tồ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ý.


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


3
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 tố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


4
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 để hồ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


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


6
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 tố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 tố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 tố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


7

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.


8
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
và một tập các

ảng với một tên khung nhìn

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
liệu độc lập với cấu trúc của các ảng trong CS

cho

ng có được cái nhìn về ữ
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



9
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



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

nhìn và một tập các

ảng với một tên khung

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
ữ liệu độc lập với cấu trúc của các ảng trong CS

cho


ng có được cái nhìn về
các ảng cơ sở có ị thay


10
đổ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ừ khố
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 tố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ừ khố 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 tố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.


11
 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 hồn
tồn khơng có tham số.
Ngồ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ử


khóa ON để xác định.
 Câu lệnh SQ phải được đặt giữa từ khóa BEGIN và END.

ụng từ


12
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


13
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


14
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 q 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


15
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


×