Tải bản đầy đủ (.doc) (22 trang)

Truy vấn hệ cơ sở dữ liệu quản lý lương của Xưởng may Thanh Lan

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 (1.09 MB, 22 trang )

LỜI MỞ ĐẦU
Quản lý là một khái niệm chung dùng để chỉ việc điều hành hoạt động trong
các tổ chức cơ quan nhà máy, xí nghiệp Nó đóng vai trò quan trọng, là nhân tố
quyết định sự tồn tại và phát triển của cơ quan, xí nghiệp.
Quản lý lương là một trong các chức năng chính của quản lý nhân sự. Làm
tốt công tác quản lý lương góp phần không nhỏ giúp các nhà quản lý nắm được
tình hình tài chính, năng suất làm việc của nhân viên…giúp cho công tác quản lý
nhanh gọn, hiệu quả hơn.
Cùng với sự phát triển mạnh mẽ của công nghệ thông tin, nhiều doanh nghiệp
vừa và nhỏ ở Việt Nam đã và đang tiếp cận với các công cụ hỗ trợ quản lý lương
như phần mềm tính lương, phần mềm kế toán…
Đối với các công ty, nhà xưởng quy mô nhỏ, với tài chính hạn chế nhưng có
nhu cầu vẫn có thể sử dụng các hệ quản trị cơ sở dữ liệu đơn giản, gọn nhẹ như
Microsoft Access để xây dựng cơ sở dữ liệu quản lý lương cho đơn vị mình. Với
phạm vi đó, nhóm 5 quyết định chọn đề tài “Truy vấn hệ cơ sở dữ liệu quản lý
lương của Xưởng may Thanh Lan”- với mong muốn mang đến tính thiết thực, có
thể ứng dụng đươc.
Trong quá trình làm bài, do hạn chế trong kiến thức, chắc chắn không tránh
khỏi thiếu sót. Rất mong nhận được ý kiến đóng góp của thầy cô và các bạn.
Xin chân thành cảm ơn !
Nhóm thực hiện.
I. Mô tả bài toán:
Xưởng may Thanh Lan là một xưởng may có uy tín ở Xã Cổ Nhuế- huyện Từ
Liêm- Hà Nội. Xưởng hiện có hơn 30 công nhân với các công việc khác nhau như thợ
may, thợ cắt, thợ xếp vải, thợ là, thợ gấp quần áo.
Quy trình tính lương cho nhân viên của xưởng may:
Nhân viên làm việc theo ngày, mỗi ngày làm 8 tiếng, số tiếng làm hơn được tính là
tăng ca. Mỗi tháng làm 29 ngày,.
Mức lương chính cho mỗi vị trí công việc trong xưởng:
Thợ may: 8 000 000 đồng/tháng
Thợ cắt: 6 500 000 đồng/tháng.


Thợ xếp vải: 3000 000 đồng/ tháng.
Thợ là, gấp : 3 500 000 đồng/ tháng.
Tính theo giờ : 9000 đồng/ tiếng.
Tăng ca: 15 000 đồng/ tiếng.
Ngày tăng ca: 100 000 đồng/ ngày.
Bên cạnh đó, tùy vào năng suất làm việc và chất lượng sản phẩm, nhân viên có thể
đươc nhận thêm tiền thưởng, lĩnh cùng với lương cuối tháng. Nếu làm hỏng sản phẩm
( làm cháy, rách ) thì sẽ phải đền bù tùy theo thiệt hại.Nếu nghỉ thì sẽ trừ lương số tiền
theo quy định của xưởng là 9 000 đồng * số tiếng nghỉ, nghỉ một ngày quy ra số giờ
tương đương là 8 tiếng.
Xưởng có chế độ bảo hiểm cho nhân viên. Bảo hiểm được đóng tùy theo chế độ
đóng bảo hiểm của công ty bảo hiểm và lương của từng nhân viên. Hiện bảo hiểm của
nhân viên trong xưởng là 5% lương chính.
Tổng lương được tính: Lương chính+ thưởng + tiền tăng ca.
Lương thực lĩnh của nhân viên được tính : Lương chính+ thưởng+ tiền tăng ca- bảo
hiểm- ứng trước-phạt- nghỉ= Tổng lương- bảo hiểm-ứng trước-phạt-nghỉ.
Mô tả bài toán quản lý lương của xưởng:
Xưởng quản lý thông tin về nhân viên bao gồm : mã nhân viên ( duy nhất),tên
nhân viên, giới tính,địa chỉ.
Xưởng có nhiều vị trí công việc khác nhau, mỗi nhân viên chỉ làm ở một vị trí công
việc duy nhất. một vị trí có thể có nhiều nhân viên cùng làm.
Có nhiều mức lương cơ bản khác nhau tùy thuộc vào vị trí công việc khác nhau.
Các nhân viên được theo dõi bằng một sổ chấm công hàng tháng, dựa trên các
thông tin: mã nhân viên, số ngày làm việc, số giờ nghỉ, số ngày tăng ca, số giờ tăng ca,
lương cơ bản, tạm ứng, tiền thưởng,tiền phạt….Mỗi nhân viên được theo dõi ở một bảng
chấm công, một bảng chấm công dùng để theo dõi nhiều nhân viên. Mỗi nhân viên có
một mã chấm công duy nhất.
Một nhân viên có thể được thưởng hoặc bị phạt nhiều lần trong một tháng.
Việc tính lương cho nhân viên phụ thuộc vào quá trình làm việc của nhân viên mỗi
tháng.

Hàng tháng thông tin được cập nhật lại để tính lương cho tháng mới.
II. Xây dựng mô hình ER và mô hình quan hệ.
1. Xác định các tập thực thể và các thuộc tính, thuộc tính khóa.
SOCHAMCONG
Macong
maNV
Songaylam
Sogionghi
Songaytc
Sogiotc
Mucluong
Tamung
Thuong
Phat
VTCONGVIEC
MaCV
tenCV
Mucluong
2. Xác định các mối quan hệ:
Mỗi nhân viên làm tại một vị trí công việc duy nhất, mỗi công việc có thể có nhiều
nhân viên cùng làm:
Sổ chấm công theo dõi nhân viên thông qua mã nhân viên. Mỗi nhân viên được
theo dõi qua một sổ chấm công, một sổ chấm công dùng để theo dõi nhiều nhân viên.
3. Mô hình ER:
4. Chuyển đổi về mô hình quan hệ .
Quy tắc chuyển đổi từ mô hình thực thể liên kết sang mô hình quan hệ:
(1) Tập thực thể.
Các tập thực thể (trừ tập thực thể yếu) chuyển thành các quan hệ có cùng tên và tập
thuộc tính.

2) Mối quan hệ
Một-Một
Hoặc thêm vào quan hệ này thuộc tính khóa của quan hệ kia. Hoặc thêm thuộc tính
khóa vào cả 2 quan hệ.
Một-Nhiều
Thêm vào quan-hệ-một thuộc tính khóa của quan-hệ-nhiều
Nhiều-Nhiều
Tạo một quan hệ mới có tên quan hệ là tên của mối quan hệ, Thuộc tính là những
thuộc tính khóa của các tập thực thể liên quan
(3) Thực thể yếu
Chuyển thành một quan hệ có cùng tên với thực thể yếu. Thêm vào thuộc tính khóa
của quan hệ liên quan.
Thuộc tính đa trị
Chuyển thành một quan hệ có cùng tên với thuộc tính đa trị. Thuộc tính khóa của
quan hệ này là khóa ngoài của quan hệ chứa thuộc tính đa trị
Liên kết đa ngôi (n>2)
Chuyển thành một quan hệ có cùng tên với tên mối liên kết đa ngôi. Khóa chính là
tổ hợp các khóa của tập các thực thể tham gia liên kết.
Dựa vào các nguyên tắc trên, ta có mô hình quan hệ:
NHANVIEN(MaNV,TenNV ,gioitinh,ngaysinh,diachi)
VTCONGVIEC ( MaCV,tenCV,mucluong)
THUONG ( MaNV,Macong,mucthuong)
PHAT (MaNV,Macong,mucphat)
SOCHAMCONG(Macong,MaNV,songaylam,sogionghi,tamung,mucluong,
songaytc,sogiotc,baohiem).
III. Thiết kế các bảng dữ liệu cho CSDL trên hệ quản trị CSDL Microsoft
Access.
Quan hệ NHANVIEN:
Thuộc tính Loại giá trị Giải thích
MaNV Long integer Mã nhân viên

TenNV Text Tên nhân viên
Gioitinh Text Giới tính
Ngaysinh Date/time Ngày sinh
Diachi Text Địa chỉ
Quan hệ VTCONGVIEC
Thuộc tính Loại giá trị Giải thích
MaCV Text Mã công việc
TenCV Text Tên công việc
Mucluong Currency Mức lương
Quan hệ SOCHAMCONG
Thuộc tính Loại giá trị Giải thích
Macong Text Mã công
MaNV, Number Mã nhân viên
Songaylam Number Số ngày làm
Sogionghi Number Số giờ nghỉ
Songaytc Number Số ngày tăng ca
Sogiotc Number Số giờ tăng ca
Mucluong Currency Mức lương
Tamung Currency Tạm ứng
Baohiem Currency Bảo hiểm
Quan hệ THUONG
Thuộc tính Loại giá trị Giải thích
Macong Number Mã công
maNV Text Mã nhân viên
Mucthuong Currency Mức thưởng
Quan hệ PHAT
Thuộc tính Loại giá trị Giải thích
Macong Number Mã công
maNV Text Mã nhân viên
Mucphat Currency Mức phạt

IV. Truy vấn Cơ sở dữ liệu quản lý lương của xưởng may Thanh Lan.
Nhập dữ liệu cho các quan hệ như sau:
quan hệ VTCONGVIEC:
Quan hệ NHANVIEN:
Quan hệ SOCHAMCONG
Quan hệ THUONG:
Quan hệ PHAT
Thực hiện các truy vấn:
1. Tính tổng mức thưởng và tổng mức phạt của mỗi nhân viên.
Thực hiện phép gom nhóm với điều kiện gom nhóm là tổng mức thưởng/mức phạt
của mỗi nhân viên, thuộc tính gom nhóm là maNV và macong.
TONGTHUONG  MaNV,macong ℑ
sum (thuong
)
(THUONG)
P
MaNV,macong,tongthuong
(TONGTHUONG)
MaNV,macong ℑ
sum(phat
)
(PHAT)
P
MaNV,macong,tongphat
(TONGPHAT)
Truy vấn bằng ngôn ngữ SQL:
SELECT THUONG.manv, THUONG.macong, Sum(THUONG.mucthuong)
AS tongthuong
FROM THUONG
GROUP BY THUONG.manv,THUONG.macong ;

Các bước truy vấn trong hệ quản trị cơ sở dữ liệu Microsoft Access:
Bước 1: Khởi động Access
Bước 2. Bước 2: Chọn create → query design → chọn Close để đóng cửa sổ
show table chọn View → SQL view.
Bước 3: gõ câu lệnh rồi ấn “Run” để chạy câu lệnh và thực hiện truy vấn
Kết quả của truy vấn trên sẽ hiện ra như bảng:

Tương tự với tổng mức phạt với mỗi nhân viên, ta có kết quả:
2. Cho biết tổng lương và lương thực nhận mà mỗi nhân viên nhận được
cùng với các thông tin về mã nhân viên, tên nhân viên, công việc đang làm, các thông tin
chấm công: mức lương, số ngày làm, số ngày tăng ca, số giờ nghỉ, số giờ tăng ca, bảo
hiểm, tạm ứng, tiền thưởng, tiền phạt.đặt tên cho quan hệ mới này là LUONGCN
Tổng lương= Mucluong+tongthuong+sogiotc*15000+songaytc*100000
Lương thực nhận= Tổng lương- tongphat- baohiem- tamung-sogionghi*9000
Truy vấn bằng ngôn ngữ đại số quan hệ:
Thực hiện phép kết tự nhiên để tổng hợp các bộ dữ liệu từ các quan hệ
NHANVIEN,VTNHANVIEN,SOCHAMCONG,TONGTHUONG,TONGPHAT. Thực
hiện phép chiếu trên quan hệ mới nhận được để lấy thông tin về nhân viên, vị trí công
việc và thông tin liên quan đến chấm công, tính tổng lương và lương thực nhận.
LUONGCN
maNV,tenNV,tenCV,mucluong,songaylam,sogionghi,songaytc,sogiotc,tamung,baohiem,
tienthuong,tongthuong,tongphat,

Mucluong+tongthuong+sogiotc*15000+songaytc*100000,

Mucluong+tongthuong+sogiotc*15000+songaytc*100000- tongphat- baohiem- tamung-
sogionghi*9000(NHANVIEN⨝VTNHANVIEN⨝SOCHAMCONG ⨝
TONGTHUONG⨝TONGPHAT)
P


maNV,tenNV,tenCV,mucluong,songaylam,sogionghi,songaytc,sogiotc,tamung,baohiem,
tienthuong,tongthuong,tongphat,tongluong,luongthucnhan
Các câu lệnh truy vấn SQL:
SELECT NHANVIEN.MaNV, NHANVIEN.TenNV, VTCONGVIEC.TenCV,
VTCONGVIEC.Mucluong, SOCHAMCONG.Songaylam, SOCHAMCONG.Sogionghi,
SOCHAMCONG.Tamung, SOCHAMCONG.Sogiotc, SOCHAMCONG.Songaytc,
SOCHAMCONG.Baohiem, TONGTHUONG.tongthuong, TONGPHAT.tongphat,
(LUONGCN)
(SOCHAMCONG.mucluong+TONGTHUONG.tongthuong+SOCHAMCONG.sog
iotc*15000+SOCHAMCONG.songaytc*100000) AS tongluong,
(SOCHAMCONG.mucluong+TONGTHUONG.tongthuong+SOCHAMCONG.sogiotc*
15000+SOCHAMCONG.songaytc*100000-SOCHAMCONG.sogionghi*9000-
SOCHAMCONG.baohiem-TONGPHAT.tongphat-SOCHAMCONG.tamung) AS
luongthucnhan
FROM VTCONGVIEC INNER JOIN (((NHANVIEN INNER JOIN TONGPHAT
ON NHANVIEN.MaNV = TONGPHAT.MaNV) INNER JOIN TONGTHUONG ON
NHANVIEN.MaNV = TONGTHUONG.MaNV) INNER JOIN SOCHAMCONG ON
NHANVIEN.MaNV = SOCHAMCONG.MaNV) ON VTCONGVIEC.MaCV =
NHANVIEN.MaCV;
Kết quả nhận được là một quan hệ mới có tên LUONGCN
3. Cho biết các thông tin của nhân viên có tổng lương lớn hơn hoặc bằng
6000 000, tổng lương bằng 6000 000.
Truy vấn bằng ngôn ngữ đại số quan hệ:
B1. Kết hai bảng NHANVIEN và LUONGCN để lấy thông tin về nhân viên.
B2. Thực hiện phép chọn trên quan hệ mới nhận được với điều kiện tổng lương lớn
hơn hoặc bằng 6000000 ( hoặc bằng 6000000).
B3. Thực hiện phép chiếu để lấy các thông tin thỏa mãn điều kiện.

MaNV,TenNV ,gioitinh,ngaysinh,diachi,maCV (

σ
tongluong>=6000000
( NHANVIEN
⨝ LUONGCN)
Truy vấn bằng ngôn ngữ SQL:
SELECT NHANVIEN.*, LUONGCN.tongluong
FROM NHANVIEN INNER JOIN LUONGCN ON
NHANVIEN.manv=LUONGCN.maNV
WHERE (LUONGCN.tongluong>=6000000);
Hoặc:
SELECT NHANVIEN.*, LUONGCN.tongluong
FROM NHANVIEN,LUONGCN
WHERE (LUONGCN.tongluong>=6000000) AND
NHANVIEN.maNV=LUONGCN.maNV;
Kết quả nhận được:
Nếu thay điều kiện WHERE (LUONGCN.tongluong=6000000);
Kết quả :
4. Cho biết thông tin chấm công của các nhân viên có mức lương là 8000000.
Thực hiện phép chọn trên quan hệ SOCHAMCONG.
σ
MUCLUONG=8000000
( SOCHAMCONG
)
Truy vấn bằng ngôn ngữ SQL:
SELECT *
FROM SOCHAMCONG
WHERE mucluong=8000000;
Kết quả nhận được:
5. Cho biết có bao nhiêu nhân viên có lương thực nhận > 5000000 hoặc nhỏ
hơn 1000000.

B1. Chọn trong LUONGCN những nhân viên có lương >5000000 hoặc <1000000
B2. Thực hiện phép gom nhóm, sử dụng hàm COUNT để đếm danh sách vừa chọn
ra.
ℑ COUNT(
σ
(luongthucnhan>6000000)^(luongthucnhan<1000000)
(
LUONGCN)
Truy vấn bằng ngôn ngữ SQL:
SELECT COUNT(MaNV)
FROM LUONGCN
WHERE luongthucnhan>5000000 OR luongthucnhan<1000000
Kết quả nhận được :
6. Tìm thông tin của những nhân viên vừa được thưởng, vừa bị phạt.
Truy vấn bằng ngôn ngữ đại số quan hệ:

MaNV,TenNV ,gioitinh,ngaysinh,diachi,maCV
(
thuong>0^phat>0
( NHANVIEN
⨝ LUONGCN))
Truy vấn bằng ngôn ngữ SQL:
SELECT NHANVIEN.*, LUONGCN.tongthuong, LUONGCN.tongphat
FROM NHANVIEN INNER JOIN LUONGCN ON NHANVIEN.MaNV =
LUONGCN.MaNV
WHERE (((LUONGCN.tongthuong)>0) AND ((LUONGCN.tongphat)>0));
Kết quả thu được:

×