1. Trang chủ
  2. » Giáo Dục - Đào Tạo

Đề tài phân tích, thiết kế và cài Đặt csdl cho phần mềm quản lý nhân sự

35 0 0
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Phân Tích, Thiết Kế Và Cài Đặt CSDL Cho Phần Mềm Quản Lý Nhân Sự
Tác giả Phạm Cao Hùng, Nguyễn Minh Khang, Nguyễn Duy Dương
Người hướng dẫn Trần Minh Thái
Trường học Trường Đại Học Ngoại Ngữ Tin Học Thành Phố Hồ Chí Minh
Chuyên ngành Công Nghệ Thông Tin
Thể loại Báo Cáo Đồ Án
Năm xuất bản 2024
Thành phố TP HCM
Định dạng
Số trang 35
Dung lượng 347,33 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Cấu trúc

  • Chương I: GIỚI THIỆU ĐỀ TÀI (6)
    • 1.1 Giới Thiệu (6)
      • 1.1.1 Mở đầu (6)
    • 1.2 Khảo sát thực tế (7)
      • 1.2.1 Thông tin chung (7)
      • 1.2.2 Cơ cấu tổ chức (8)
    • 1.3 Yêu cầu lưu trữ (8)
  • CHƯƠNG II: CƠ SỞ LÝ THUYẾT (11)
    • 2.1 Mô hình thực thể kết hợp (11)
    • 2.2 Phụ thuộc hàm (11)
    • 2.3 Các dạng chuẩn (11)
    • 2.4 Bảo toàn thông tin (13)
    • 2.5 Lập trình cơ sở dữ liệu (13)
    • 2.6 Ràng buộc toàn vẹn (14)
    • 2.7 noSQL và newSQL (14)
      • 2.7.1 noSQL (14)
      • 2.7.2 newSQL (15)
  • CHƯƠNG III: THIẾT KẾ CƠ SỞ DỮ LIỆU (16)
    • 3.1 Mô hình thực thể kết hợp (16)
    • 3.2 Mô tả thực thể (16)
    • 3.3 Lược đồ cơ sở dữ liệu quan hệ (19)
    • 3.4 Phân tích chuẩn của lược đồ quan hệ (20)
      • 3.4.1. Lược đồ chuẩn 1 (20)
      • 3.4.2 Lược đồ chuẩn 2 (20)
      • 3.4.3 Lược đồ đạt chuẩn 3 (21)
    • 3.5 Lược đồ cơ sở dữ liệu quan hệ sau khi chuẩn hóa thành 3NF (22)
    • 3.6 ràng buộc toàn vẹn (23)
    • CHƯƠNG 4 TRIỂN KHAI CƠ SỞ DỮ LIỆU TRÊN MS SQL SERVER (24)
      • 4.1 Tạo cơ sở dữ liệu (24)
      • 4.2 Nhập liệu mẫu (27)
      • 4.3 Cài đặt các ràng buộc toàn vẹn (29)
        • 4.3.2 cài đặt ràng buộc toàn vẹn : email phải khác nhau và đúng định dạng (có ít nhất 1 kí tự "@" và 1 dấu ".") (29)
        • 4.3.3 cài đặt ràng buộc toàn vẹn : nếu xoá nhân viên nào thì ghi log ngày xoá, ai xoá và xoá nhân viên nào (30)
      • 4.4 Cài các store procedure (31)
        • 4.4.1 Tính tổng tiền hóa đơn (31)
        • 4.4.2 Tìm địa chỉ của chi nhánh (32)
        • 4.4.3 Xem thân nhân của nhân viên (32)
        • 4.4.4 Xem lịch làm nhân viên (32)
        • 4.4.5 xem tình trạng của nhân viên (33)
        • 4.4.6 nhập mã nhân viên, tìm khỏan phí của nhân viên đó (33)
        • 4.4.7 tạo proc thêm phòng ban mới (34)
        • 4.4.8 Tạo proc thêm chi nhánh mới (34)
        • 4.4.9 Tạo proc xóa chi nhánh (35)
        • 4.4.10 Sửa chi nhánh (35)

Nội dung

BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC NGOẠI NGỮ TIN HỌC THÀNH PHỐ HỒ CHÍ MINH KHOA CÔNG NGHỆ THÔNG TIN -- --BÁO CÁO ĐỒ ÁN MÔN: Cơ Sở Dữ Liệu Nâng Cao ĐỀ TÀI: PHÂN TÍCH, THIẾT KẾ VÀ C

GIỚI THIỆU ĐỀ TÀI

Giới Thiệu

Trong thời đại công nghệ thông tin phát triển nhanh chóng, mọi doanh nghiệp, ngành nghề đều hướng tới việc ứng dụng công nghệ vào hệ thống quản lý của mình để thay thế việc nhập và quản lý dữ liệu thủ công, tốn nhiều vốn dễ nhầm lẫn và mắc sai lầm Ngành nhân sự cũng không ngoại lệ khi hàng năm phải nhận nhiều nhân sự mới, bên cạnh đó còn phải xử lý thông tin về nhân sự,… Vì vậy, cần phải có một hệ thống quản lý dữ liệu tiên tiến, đảm bảo bắt kịp thời đại và giải quyết tốt yêu cầu của công ty. Đề tài này nhằm thiết kế và xây dựng một hệ thống cơ sở dữ liệu (CSDL) cho phần mềm quản lý nhân sự của một doanh nghiệp Hệ thống CSDL này sẽ lưu trữ và quản lý toàn bộ thông tin liên quan đến nguồn nhân lực của công ty, bao gồm thông tin cá nhân của nhân viên, quản lý hợp đồng lao động, theo dõi chấm công, tính toán lương thưởng, cũng như theo dõi hoạt động đào tạo và phát triển nhân sự.

Quá trình thực hiện đề tài bao gồm các bước chính như phân tích yêu cầu hệ thống, thiết kế mô hình CSDL logic dựa trên mô hình thực thể-quan hệ (ER) hoặc sơ đồ lớp (UML), chuyển đổi sang thiết kế vật lý CSDL, cài đặt CSDL bằng hệ quản trị CSDL phù hợp, tích hợp CSDL vào phần mềm quản lý nhân sự, và cuối cùng là triển khai, kiểm thử cũng như tối ưu hóa và bảo trì CSDL trong quá trình vận hành hệ thống.

Việc xây dựng CSDL chất lượng cho phần mềm quản lý nhân sự sẽ giúp doanh nghiệp quản lý thông tin nhân sự một cách hiệu quả, chính xác và đồng bộ, từ đó nâng cao năng suất và chất lượng công việc của nhân viên.

Nắm bắt được nhu cầu áp dụng công nghệ vào quản lý nhân sự của các cơ quan,nhóm chúng em đã quyết định xây dựng một hệ thống cơ sở dữ liệu dành cho việc quản lý nhân sự Đề tài tập trung vào quản lý các thông tin nhân sự như thông tin cá nhân, lương, Đề tài này được chọn do tầm quan trọng và nhu cầu cấp thiết của việc xây dựng một hệ thống quản lý nhân sự hiệu quả cho doanh nghiệp Nhân sự là tài sản quan trọng nhất của tổ chức, do đó quản lý nhân sự một cách chặt chẽ và chính xác sẽ góp phần nâng cao năng suất và hiệu quả hoạt động Tuy nhiên, nhiều doanh nghiệp vẫn đang sử dụng phương pháp quản lý nhân sự thủ công dẫn đến nhiều khó khăn và hạn chế Việc xây dựng một hệ thống quản lý nhân sự tích hợp với CSDL là giải pháp quan trọng để tự động hóa và số hóa các quy trình, từ đó tăng tính hiệu quả và chính xác Thiết kế CSDL cho hệ thống quản lý nhân sự đòi hỏi hiểu biết sâu về các yêu cầu quản lý nhân sự cũng như kỹ năng phân tích và thiết kế CSDL, vì vậy đây là một đề tài có tính chuyên sâu và có thể được áp dụng rộng rãi trong các doanh nghiệp Chính vì những lý do này mà đề tài "Phân tích, thiết kế và cài đặt CSDL cho phần mềm quản lý nhân sự" được lựa chọn.

Khảo sát thực tế

Bảng 1: Phỏng vấn Người được phỏng vấn: Nguyễn

Câu 1: Các cơ quan có được chia ra làm nhiều phòng ban không? Được chia làm nhiều phòng ban với các chức năng như Giám Đốc, Trưởng phòng,

Câu 2: Số hiệu nhân viên được tạo ra như thế nào? Được tạo tự động theo số thứ tự và năm vào làm

Câu 3: Dữ liệu của nhân sự do ai quản lý? Dữ liệu sẽ thường được ban Giám Đốc quản lý

Câu 4: Làm thế nào để quản lý email nhân viên?

Cung cấp cho nhân viên mỗi người một tài khoản sau đó đồng bộ lên hệ thống

Câu 5: Làm sao để biết nhân viên có đi làm hay không? Mỗi nhân viên khi đến cơ quan đều phải điểm danh cập nhật lên hệ thống Câu 6: Hệ thống có tự động lưu thông tin không?

Nếu lỡ xóa thông tin thì vẫn còn vì hệ thống sẽ tự lưu lên đám mây

Yêu cầu lưu trữ

Bảng 2: Thông tin lưu trữ của nhân viên

STT Dữ liệu Kiểu Mô tả thông tin Ràng buộc

1 Mã nhân viên Chuỗi Dữ liệu mô tả mã nhân viên Không trùng nhau

2 Họ tên Text Dữ liệu mô tả họ tên nhân viên

3 Email Chuỗi Dữ liệu mô tả email nhân viên

Phải đúng định dạng và không trùng nhau

4 Tình trạng Text Dữ liệu mô tả tình trạng đi làm của nhân viên

5 Mã phòng ban Chuỗi Dữ liệu mô tả mã phòng ban mà

Phòng tài chính- kế toán Phòng tổ chức hành chính Phòng nhân sự

Nhân viên nhân viên đó đang làm Bảng 3: Thông tin lưu trữ của thông tin nhân viên

STT Dữ liệu Kiểu Mô tả thông tin Ràng buộc

1 Mã thông tin nhân viên Chuỗi Dữ liệu mô tả mã nhân viên Khóa chính

Dữ liệu mô tả ngày sinh nhân viên

Dữ liệu mô tả giới tính nhân viên

Dữ liệu mô tả số CCCD nhân viên

Số CCCD phải khác nhau

Dữ liệu mô tả số điện thoại nhân viên

Phải đủ 10 số và khác nhau

Dữ liệu mô tả đị chỉ nhân viên

Bảng 4: Thông tin lưu trữ của phòng ban

STT Dữ liệu Kiểu Mô tả thông tin Ràng buộc

1 Số phòng ban Chuỗi Dữ liệu mô tả số phòng ban Khóa chính

2 Số lượng Số Dữ liệu mô tả số lượng văn phòng

Bảng 5: Thông tin lưu trữ vị trí công việc

STT Dữ liệu Kiểu Mô tả thông tin Ràng buộc

1 Vị trí Text Dữ liệu mô tả vị trí công việc của nhân viên

2 Chức vụ Text Dữ liệu mô tả chức vụ theo vị trí

Bảng 6: Thông tin lưu tài chính nhân viên

STT Dữ liệu Kiểu Mô tả thông tin Ràng buộc

1 Mã tài chính Chuỗi Dữ liệu mô tả mã tài chính Khóa chính

2 Tên tài chính Số Dữ liệu mô tả tên tài chính nào

3 Số tiền Số Dữ liệu mô tả số tiền

4 Ngày đóng/nhận Ngày Dữ liệu mô tả ngày đóng/nhận

Bảng 7: Thông tin lưu trữ hóa đơn

STT Dữ liệu Kiểu Mô tả thông tin Ràng buộc

1 Mã hóa đơn Chuỗi Dữ liệu mô tả hóa đơn Khóa chính

2 Số lượng Số Dữ liệu mô tả số lượng hóa đơn

3 Thành tiền Số Dữ liệu mô tả số tiền

4 Mã nhân viên Chuỗi Dữ liệu mô tả mã nhân viên để phân biệt Khóa ngoại

Bảng 8: Thông tin điểm danh lịch làm việc

STT Dữ liệu Kiểu Mô tả thông tin Ràng buộc

1 Mã nhân viên Chuỗi Dữ liệu mô tả mã nhân viên Khóa chính

Dữ liệu mô tả mã phòng ban nhân viên làm việc

CƠ SỞ LÝ THUYẾT

Mô hình thực thể kết hợp

Mô hình thực thể kết hợp (Entity Relationship Diagram – ERD) được sử dụng để biểu diễn cơ sở dữ liệu ở mức khái niệm Mô hình thực thể kết hợp bao gồm có các thực thể, danh sách thuộc tính và những mối kết hợp Thực thể là đối tượng cần quản lý, được biểu diễn thực thể bởi hình chữ nhật và có danh sách các thuộc tính Mối kết hợp thể hiện mối liên quan giữa hai hay nhiều thực thể.Mỗi liên kết có một tên gọi và thường dùng động từ.

Phụ thuộc hàm

Phụ thuộc hàm là công cụ dùng để biểu diễn một cách hình thức mối quan hệ dữ liệu của các thuộc tính bên trong Cơ Sở Dữ Liệu, có thể dễ dàng xác định khóa của quan hệ Phương pháp này có vai trò nhằm tạo ra những quan hệ độc lập nhau, giảm thiểu sự trùng lặp, dư thừa dữ liệu Vì thế giảm bớt các sai sót khi cập nhật dữ liệu của người sử dụng hoặc còn dùng để đánh giá chất lượng thiết kế một Cơ Sở Dữ Liệu.

Các dạng chuẩn

- Dạng chuẩn 1 (1NF) : là một quan hệ mà các giá trị trên từng thuộc tính phải là giá trị nguyên tố và còn được gọi là cấu trúc phẳng.

Bảng dữ liệu chưa đạt chuẩn 1

Mã hóa đơn Ngày Sản phẩm

Bảng dữ liệu đã đạt chuẩn 1

Mã hóa đơn Ngày Sản phẩm

- Dạng chuẩn 2 (2NF) : một quan hệ đạt dạng chuẩn 2 nếu và chỉ nếu nó đạt

DC1 và tất cả các thuộc tính không khóa phụ thuộc đầy đủ vào khóa chính

Bảng dữ liệu chưa đạt chuẩn 2

Mã hóa đơn Ngày Sản phẩm Giá sản phẩm

Bảng dữ liệu đã đạt chuẩn 2

Mã hóa đơn Ngày Sản phẩm

- Dạng chuẩn 3 (3NF) : một quan hệ đạt dạng chuẩn 3(DC3) nếu và chỉ nếu nó đạt DC2 và tất cả các thuộc tính không khóa không phụ thuộc bắc cầu vào khoá chính.

Bảng dữ liệu chua đạt chuẩn 3

Sản phẩm Giá sản phẩm Nhà sản xuất SDT

Bảng dữ liệu đã đạt chuẩn 3

Sản phẩm Giá sản phẩm Nhà sản xuất

- Dạng chuẩn BCK : là một quan hệ đạt dạng chuẩn BOYCE CODDKENT(BCK) nếu với mọi phụ thuộc hàm X->A không hiển nhiên định nghĩa trên quan hệ,

A∉X thì X (mọi vế trái của tất cả các phụ thuộc hàm) là một siêu khóa của quan hệ, nghĩa là X là một khóa hoặc chứa một khóa chính.

Bảo toàn thông tin

Bảo toàn thông tin trong cơ sở dữ liệu (CSDL) là rất quan trọng để đảm bảo tính toàn vẹn, sự an toàn và quyền riêng tư của thông tin.Dưới đây là một số phương pháp giúp bảo toàn thông tin trong cơ sở dữ liệu:

- Sao lưu dữ liệu thường xuyên: Điều này giúp phục hồi dữ liệu trong trường hợp có sự cố xảy ra như thiết bị hỏng, virus hoặc lỗi hệ thống.

- Chia sẻ dữ liệu an toàn: Quản lý quyền truy để giới hạn quyền truy cập vào dữ liệu Thông tin được chia sẻ chỉ cho những người được phép truy cập.

- Thiết kế chuẩn hóa CSDL: Sử dụng chuẩn hóa CSDL để giảm thiểu sự trùng lặp và đảm bảo tính toàn vẹn của dữ liệu.

- Xác thực và phân quyền truy cập: Xác định các người dùng được phép truy cập vào dữ liệu và các quyền hạn của họ trong hệ thống CSDL.

Lập trình cơ sở dữ liệu

- Lập trình cơ sở dữ liệu là quá trình xây dựng ứng dụng hoặc hệ thống sử dụng ngôn ngữ lập trình để tương tác và quản lý cơ sở dữ liệu Điều này bao gồm tạo, truy vấn, cập nhật và xóa dữ liệu từ cơ sở dữ liệu Lập trình viên sử dụng các ngôn ngữ như SQL (Structured Query Language) để thực hiện các tác vụ này và tương tác với cơ sở dữ liệu thông qua API hoặc trình điều khiển cơ sở dữ liệu Việc lập trình cơ sở dữ liệu quan trọng để đảm bảo ứng dụng có thể lưu trữ và truy xuất dữ liệu một cách hiệu quả, đồng thời giúp bảo vệ dữ liệu và đảm bảo tính nhất quán của cơ sở dữ liệu

- Các ngôn ngữ lập trình phổ biến để tương tác với CSDL bao gồm SQL (Structured Query Language), PL/SQL (Procedural Language/Structured Query Language), và T-SQL (Transact SQL) Tùy vào hệ quản trị CSDL sử dụng, các ngôn ngữ này có thể có các cú pháp khác nhau để tạo các truy vấn, thêm, xóa hoặc cập nhật dữ liệu trong CSDL.

- Lập trình cơ sở dữ liệu cũng liên quan đến các yếu tố khác như bảo mật dữ liệu, đồng bộ dữ liệu, sao lưu và phục hồi dữ liệu, và các công nghệ liên quan đến phụ thuộc hàm Với sự phát triển nhanh chóng của công nghệ và xu hướng sử dụng dữ liệu Big Data, lập trình cơ sở dữ liệu đang trở thành một lĩnh vực quan trọng và thu hút sự quan tâm của nhiều nhà phát triển và doanh nghiệp.

Ràng buộc toàn vẹn

Trong một CSDL, luôn luôn tồn tại rất nhiều mối liên hệ ảnh hưởng qua lại lẫn nhau giữa các thuộc tính của một quan hệ, giữa các bộ giá trị trong một quan hệ và giữa các thuộc tính của các bộ giá trị trong các quan hệ với nhau Các mối quan hệ phụ thuộc lẫn nhau này chính là những điều kiện bất biến mà tất cả các bộ của những quan hệ có liên quan trong cơ sở dữ liệu đều phải thỏa mãn ở bất kỳ thời điểm nào.

noSQL và newSQL

2.7.1 noSQL noSQL Điểm cộng Điểm trừ

- Thuật toán eventual-consistency đảm bảo tính sẵn sàng của CSDL

- Khả năng mở rộng tốt hơn SQL truyền thống

- Hệ thống dạng này không hỗ trợ giao tác (ACID)

- OLAP query yêu cầu lượng code lớn để thực hiện Do đó sự dễ đọc (readability)

- Rất nhiều hệ thống noSQL được tối ưu để hỗ trợ data không quan hệ ví dụ như

XML sẽ giảm khi CSDL phình to.

2.7.2 newSQL noSQL Điểm cộng Điểm trừ

- Giảm độ phức tạp cho app

- Tính năng SQL quen thuộc

- Phục vụ phân tích tốt hơn và khả năng mở rộng tốt hơn SQL

- Nhiều hệ thống cung cấp theo kiểu data truyền thống và query model

- NewSQL thường phục vụ mục tiêu nhất định chứ không chung chung như SQL

- Kiến trúc nhớ vào bộ nhớ trong có thể không phù hợp cho các khối lượng dữ liệu quá nhiều terabytes

THIẾT KẾ CƠ SỞ DỮ LIỆU

Mô hình thực thể kết hợp

Mô tả thực thể

Bảng 9: Thực thể nhân viên

STT Thuộc tính Kiểu Kích thước Mô tả Ràng buộc

Dùng để lưu mã số nhân viên

2 HoTen nvarchar 50 Lưu họ tên nhân viên

3 Email char 50 Lưu email nhân viên

Phải đúng định dạng và không được trùng nhau

4 TinhTrang nvarchar 20 Lưu tình trạng nhân viên

5 MaPhongBan char 6 Lưu mã phòng nhân viên

STT Thuộc tính Kiểu Kích thước Mô tả Ràng buộc

1 MaThongTinNV int Lưu mã nhân viên

2 NgaySinh date Lưu ngày sinh

Lưu giới tính nhân viên

4 DiaChi nvarchar 100 Lưu địa chỉ nhân viên

5 SDT char 10 Lưu số điện thoại

Phải khác nhau và có đúng 10 số

7 MaNV char 10 Lưu mã sinh viên

STT Thuộc tính Kiểu Kích thước Mô tả Ràng buộc

1 MaPhongBan char 6 Lưu mã phòng ban Khóa chính

Lưu số lượng phòng ban

3 MaViTri char 10 Lưu mã vị trí Khóa ngoại

STT Dữ liệu Kiểu Kích thước Mô tả Ràng buộc

1 MaTaiChinh char 10 Lưu mã tài chính Khóa chính

2 TenTaiChinh nvarchar 100 Lưu tên tài chính

4 NgayDong/nhan date Ngày đóng hoặc nhận

STT Dữ liệu Kiểu Kích thước Mô tả Ràng buộc

1 MaHoaDon char 10 Phân biệt các hóa đơn Khóa chính

2 MaNhanVien char 10 Phân biệt theo từng nhân viên Khóa ngoại

3 SoLuong int Mô tả số lượng

4 ThanhTien int Mô tả tổng tiền

STT Dữ liệu Kiểu Kích thước Mô tả Ràng buộc

1 MaLichLamViec char 10 Lưu mã lịch làm Khóa chính

Phân biệt lịch theo mã nhân viên

Phân biệt lịch theo phòng ban

STT Dữ liệu Kiểu Kích thước Mô tả Ràng buộc

Lưu mã vị trí công việc Khóa chính

Lưu chức vụ theo vị trí

Phân biệt vị trí của từng nhân viên Khóa ngoại

Phân biệt vị trí theo phòng ban Khóa ngoại

Lược đồ cơ sở dữ liệu quan hệ

- NhanVien (MaNV, HotenNV, Email, TinhTrang, #MaPhongBan)

- ThongTinNhanVien (MaThongTinNV, CCCD, GioiTinh, SoDienThoai, NgaySinh, DiaChi, #MaNV)

- TaiChinhNhanVien (MaTaiChinh, TenTaiChinh, NgayDong/nhan, SoTien, #MaNV)

- HoaDon (MaHoaDon, SoLuong, ThanhTien, #MaNV)

- ViTriCongViec (MaViTri, ChucVu, #MaNhanVien, #MaPhongBan)

Hình 2: Lược đồ quan hệ dạng bảng

Phân tích chuẩn của lược đồ quan hệ

Tất cả lược đồ đã đạt chuẩn 1 vì không có lượt đồ nào tồn tại thuộc tính đa trị.

- NhanVien(MaNV, HoTenNV, CCCD, TinhTrang, SoDienThoai, NgaySinh, Email, GioiTinh, DiaChi, MaThanNhan, TenThanNhan, SoDienThoaiTN)

MaNV → HoTenNV, CCCD, TinhTrang, SoDienThoai, NgaySinh, Email, GioiTinh, DiaChi.

MaNV, MaThanNhan → HoTenNV, CMND, TinhTrang, SoDienThoai,NgaySinh, Email, GioiTinh, DiaChi, TenThanNhan, SoDienThoaiTN.

 Xác định khóa của lược đồ này: MaNV, MaThanNhan.

=> Vì từ 2 cột này có thể suy ra tất cả các cột

 Xác định tính đầy đủ:

=> thuộc tính TenThanNhan, SoDienThoaiTN không phụ thuộc đầy đủ vào khóa hay còn gọi phụ thuộc một phần của khóa.

Kết luận: Chưa đạt chuẩn 2 Để đạt chuẩn 2: Tách bảng thành các bảng con để khử được phụ thuộc hàm: + NhanVien (MaNV, HoTenNV, CCCD, TinhTrang, MaPhongBan, SDT, NgaySinh, Email, GioiTinh, DiaChi)

F nhanvien = {MaNV→ HoTenNV, CCCD, TinhTrang , SDT, NgaySinh, Email, GioiTinh, DiaChi}

+ ThanNhan (MaThanNhan, MaNV,TenThanNhan, SoDienThoaiTN)

F thannhan = {MaThanNhan, MaNV → TenThanNhan, SoDienThoaiTN}

=> Lược đồ đã đạt chuẩn 2.

PhongBan (MaPhongBan, LoaiPhong, TenChiNhanh, DiaChi)

=> Lược đồ đã đạt chuẩn 2 Vì không có thuộc tính nào không phụ thuộc đầy đủ vào khóa

Xác định phụ thuộc hàm:

+ TenChiNhanh phụ thuộc vào MaPhongBan

=> MaPhongBan → TenChiNhanh → DiaChi => (tính bắt cầu)

Kết luận: Không đạt chuẩn 3 Để đạt chuẩn 3: Tách bảng để khử phụ thuộc hàm

=> Lược đồ đã đạt chuẩn 3 Vì không còn tính bắc cầu

Lược đồ cơ sở dữ liệu quan hệ sau khi chuẩn hóa thành 3NF

- Lược đồ CSDL sau đây đã đạt chuẩn 3 vì :

+ Lược đồ không có tính đa trị

+ Tất cả các thuộc tính không khoá đều phụ thuộc đầy đủ vào khoá

+ Không tồn tại phụ thuộc hàm bắc cầu trong tất cả quan hệ

 NhanVien (MaNV, HotenNV, TinhTrang, #MaPhongBan)

 ThongTinNV (CCCD, SDT, NgaySinh, #MaNV, Email, GioiTinh, DiaChi)

 ViTriCongViec (MaViTri, ChucVu, #MaNhanVien, #MaPhongBan)

 TaiChinhNhanVien (MaTaiChinh, TenTaiChinh, NgayDong/nhan, SoTien,

 HoaDon (MaHoaDon, SoLuong, ThanhTien, #MaNV)

ràng buộc toàn vẹn

 Mã Nhân Viên : Các mã nhân viên phải khác nhau

 CCCD: Số CCCD phải khác nhau

 SĐT : Số điện thoại phải đủ 10 số và khác nhau

 Email : Phải đúng định dạng và không được trùng nhau

 Mã Chi Nhánh : Mã chi nhánh phải khác nhau

 Mã Phòng Ban : Các mã phòng ban phải khác nhau

 Mã Hoá Đơn : Không được trùng

 Mã vị trí công việc: không được trùng

 Mã tài chính: mã tài chính phải khác nhau

 Mã lịch làm việc: phải khác nhau

 Mã thông tin nhân viên: các mã phải khác hoàn toàn nhau

 Khi xoá 1 nhân viên thì ghi lại log ngày xoá, ai xoá và xoá nhân viên nào

TRIỂN KHAI CƠ SỞ DỮ LIỆU TRÊN MS SQL SERVER

4.1 Tạo cơ sở dữ liệu create database QUANLYNHANVIEN go use QUANLYNHANVIEN create table PHONGBAN

SoLuong int, constraint PK_PHONGBAN primary key (MaPhongBan)

MaPhongBan char (6) constraint PK_NHANVIEN primary key (MaNV)

MaNV char (10) constraint PK_THONGTINNHANVIEN primary key (MaThongTinNV)

DiaChi nvarchar (100) constraint PK_CHINHANH primary key (MaChiNhanh)

SoTien int, constraint PK_TAICHINHSINHVIEN primary key (MaTaiChinh) ) create table HOADON

MaTaiChinh char (10) constraint PK_HOADON primary key (MaHoaDon)

MaPhongBan char (10) constraint PK_LICHLAMVIEC primary key (MaLichLamViec) ) create table THANNHAN(

MaSV char (10) constraint PK_THANNHAN primary key (MaThanNhan)

Khoá ngoại alter table LICHLAMVIEC add constraint FK_Lichlamviec_Nhanvien foreign key (MaNV) references NHANVIEN(MaNV) alter table LICHLAMVIEC add constraint FK_Lichlamviec_PhongBan foreign key (MaPhongBan) references PHONGBAN(MaPhongBan) alter table HOADON add constraint FK_Hoadon_Nhanvien foreign key (MaNV) references NHANVIEN (MaNV) alter table HOADON add constraint FK_Hoadon_Taichinhnhanvien foreign key

(MaPhi) references TAICHINHSINHVIEN (MaPhi) alter table PHONGBAN add constraint FK_Phonghoc_Chinhanh foreign key (MaChiNhanh) references CHINHANH (MaChiNhanh) alter table THANNHAN add constraint FK_Thannhan_Nhanvien foreign key (MaNV) references NHANVIEN (MaNV) alter table NHANVIEN add constraint FK_Nhanvien_PhongBan foreign key (MaPhongBan) references PHONGBAN (MaPhongBan) alter table THONGTINNHANVIEN add constraint FK_Thongtinnhanvien_Nhanvien foreign key (MaNV) references NHANVIEN (MaNV) alter table VITRICONGVIEC add constraint FK_Vitricongviec_Nhanvien foreign key (MaNV) references NHANVIEN (MaNV) alter table VITRICONGVIEC add constraint FK_Vitricongviec_Phongban foreign key (MaPhongBan) references PHONGBAN (MaPhongBan)

Thêm dữ liệu vào bang PHONGBAN insert into PHONGBAN values ('TH2119',100) insert into PHONGBAN values ('TH2114',90) insert into PHONGBAN values ('NN2115',60) insert into PHONGBAN values ('KT2110',80) insert into PHONGBAN values ('NN2111',100)

Thêm dữ liệu vào bang NHANVIEN insert into NHANVIEN values ('21113742',N'Nguyên Minh

Khang','21113742@congty.com',N'Còn làm','TH2119') insert into NHANVIEN values ('21113511',N'Phạm Cao

Hùng','21113511@congty.com',N'Còn làm','TH2119') insert into NHANVIEN values ('21113308',N'Nguyê; n Duy

Dương','21113308@congty.com',N'Còn làm','NN2115') insert into NHANVIEN values ('21113351',N'Tôn TrầA n Quang

Vinh','21113351@congty.com',N'Còn làm','TH2114')

Thêm dữ liệu vào bang THONGTINNHANVIEN insert into THONGTINNHANVIEN values ('2004-10-07',1,N'495/8/31 Tô HiêCn Thành P14 Q10','0912345678','079203030914','21113742') insert into THONGTINNHANVIEN values ('2004-04-18',1,N'181 Nghĩa Phát P15 Q.Tần Bình','0842361232','079276339964','21113511') insert into THONGTINNHANVIEN values ('2004-01-28',1,N'C3/15 Phạm Hùng

Q8','0912345678','078876030982','21113308') insert into THONGTINNHANVIEN values ('2004-01-10',1,N'C3/15 Phạm Hùng

Thêm dữ liệu vào bang LICHLAMVIEC insert into LICHLAMVIEC values ('123456',1,'21113742','TH2119') insert into LICHLAMVIEC values ('147258',1,'21113511','TH2114') insert into LICHLAMVIEC values ('369258',1,'21113308','NN2115') insert into LICHLAMVIEC values ('369258',1,'21113351','KT2110')

Thêm dữ liệu vào bang CHINHANH insert into CHINHANH values ('VH',N'Sư Vạn Hạnh',N'828 Sư Vạn Hạnh P15 Q10') insert into CHINHANH values ('SB',N'Trường Sơn',N'23 Cộng Hoà Q.Tần Bình') insert into CHINHANH values ('TS',N'ThầCt Sơn',N'65 ThầC Sơn P15 Q10') insert into CHINHANH values ('CT',N'Cao ThăCng',N'235 Cao Thăng P14 Q10')

Thêm dữ liệu vào bang HOADON insert into TAICHINHSINHVIEN values

Thêm dữ liệu vào bang TAICHINHNHANVIEN insert into TAICHINHNHANVIEN values ('3223476547',N'phí phạt đi trê; ','2024-07- 01',17000000,0,1) insert into TAICHINHNHANVIEN values ('3232165215',N'phí phạt đi trê; ','2024-10- 01',23000000,0.05,1) insert into TAICHINHNHANVIEN values ('3135203782',N'phí phạt đi trê; ','2024-01-05',21000000,0.06,2) insert into TAICHINHNHANVIEN values ('3821032541',N'phí phạt đi trê; ','2024-10- 01',15600000,0.10,3)

Thêm dữ liệu vào ban THANNHAN insert into THANNHAN values ('222222',N'Nguyên Văn

Tần','0912345678','21113742') insert into THANNHAN values ('333333',N'Đô Ngọc Hiêu','0945678912','21113511') insert into THANNHAN values ('123456',N'Nguyên Kê

Thuỳ','0945678912','21113308') insert into THANNHAN values ('456789',N'Đặng NgọcThanh','0914725896','21113351')

4.3 Cài đặt các ràng buộc toàn vẹn

4.3.1 Cài đặt ràng buộc các SĐT được nhập và sửa phải khác nhau và phải đủ 10 số! (bảng THÔNG TIN NHÂN VIÊN) go create trigger tr_SĐT_nhanvien on THONGTINNHANVIEN for insert, update as begin declare @sdt char (10) declare @count int set @count = 0 select @sdt = SĐT from inserted; select @count = count(*) from THONGTINNHANVIEN where @sdt = SĐT if ((LEN(@sdt) != 10) or (@count>1)) begin print @count print @sdt rollback tran raiserror (N'Sô điện thoại bị trùng hoặc không đúng 10 sô',16,1) end end

dữ liệu sai (SĐT bị trùng) insert into THONGTINNHANVIEN values ('079203030914','2004-10-07',1,N'495/8/31

dữ liệu sai (SĐT không đúng 10 sô) insert into THONGTINNHANVIEN values ('079203030918','2004-10-07',1,N'495/8/31

Xoá trigger drop trigger tr_SĐT go

4.3.2 cài đặt ràng buộc toàn vẹn : email phải khác nhau và đúng định dạng (có ít nhất 1 kí tự "@" và 1 dấu ".") go create trigger tr_checkEmailNV on NHANVIEN for insert, update as begin declare @emailnv char(50) declare @count int set @count = 0 select @emailnv = Email from inserted; select @count = count(*) from NHANVIEN where @emailnv = Email if ((@emailnv not like '%@%') or (@emailnv not like '%.%') or (@count >1)) begin print @count print @emailnv rollback tran raiserror (N'Email không đúng định dạng hoặc bị trùng',16,1) end end

thử thêm dữ liệu sai (email không có kí tự "@") insert into NHANVIEN values ('21DH112254',N'Phạm Cao Hùng','21113742congty.com',N'Còn làm','TH2119') thử thêm dữ liệu sai (email không có dấu ".") insert into NHANVIEN values ('21112254',N'Phạm Cao Hùng','21113742@contycom',N'Còn làm','TH2119') thử thêm dữ liệu sai (email bị trùng) insert into SINHVIEN values ('21DH112254',N'Phạm Cao Hùng','21dh113742@congty.comn',N'Còn làm','TH2119')

xoá trigger drop trigger tr_checkEmailNV go

4.3.3 cài đặt ràng buộc toàn vẹn : nếu xoá nhân viên nào thì ghi log ngày xoá, ai xoá và xoá nhân viên nào go create table tr_LOG(

NguoiThucHien nvarchar (100) constraint PK_tr_LOG primary key (MaLog)

) go create trigger tr_logXoaNV on NHANVIEN for delete as begin declare @manv char (5); select @manv = MaNV from deleted; insert into tr_LOG values (getdate(),N'xoá GV ' + @manv, CURRENT_USER); end

thử delete from NHANVIEN where MaNV = 'GV006' drop trigger tr_logXoaNV select * from tr_LOG go

4.4.1 Tính tổng tiền hóa đơn go create proc pr_TinhTong as begin select SUM(ThanhTien) as TongHoaDon from HoaDon end exec pr_TinhTong drop proc pr_TinhTong go

4.4.2 Tìm địa chỉ của chi nhánh go

END exec pr_Timdiachichinhanh 'VH' drop proc pr_Timdiachichinhanh go

4.4.3 Xem thân nhân của nhân viên go

SELECT TN.TenThanNhan, TN.SĐT_TN

END; exec pr_XemthannhanNV '21113308' drop proc pr_XemthannhanNV go

4.4.4 Xem lịch làm nhân viên go

BEGIN select nv.MaNV, MaPhongBan, HoTenNV, NgaySinh from NHANVIEN nv, PHONGBAN pb, LICHLAM ll where nv.MaNV = '21113511' and nv.MaNV = @MaNV and pb.PHONGBAN = pb.MaPhongBan

EXEC pr_XemlichlamNV '21113308' drop proc pr_XemlichlamNV go

4.4.5 xem tình trạng của nhân viên go create proc pr_XemTTcuaNV

Begin select HotenNV, TinhTrang from NhanVien where manv=@MaNV

END exec pr_XemTTcuaNV '21113308' drop proc pr_XemTTcuaNV go

4.4.6 nhập mã nhân viên, tìm khỏan phí của nhân viên đó go create proc pr_SotienNV

@MaNV char(10) as begin select tc.Maphi, tc.TenPhi, tc.SoTien from taichinhnhanvien tc, hoadon hd where tc.MaPhi=hd.MaPhi and hd.MaNV=@MaNV end exec pr_SotienNV '21113308' drop proc pr_SotienNV go

4.4.7 tạo proc thêm phòng ban mới go

INSERT INTO PHONGBAN (MaPhongBan, SOLUONG)

EXEC ThemPhongBanMoi 'TH2116', 'DP', 70; drop proc ThemPhongBanMoi select* from PhongBan go

4.4.8 Tạo proc thêm chi nhánh mới go

INSERT INTO ChiNhanh (MaChiNhanh, TenChiNhanh, DiaChi) VALUES (@MaChiNhanh, @TenChiNhanh,@DiaChi)

EXEC ThemChiNhanhMoi 'BC', N'Bình Chánh', N'1221 Bình Chánh'; drop proc ThemChiNhanhMoi select* from CHINHANH go

Ngày đăng: 25/09/2025, 21:20

HÌNH ẢNH LIÊN QUAN

Bảng 1: Phỏng vấn Người được phỏng vấn: Nguyễn - Đề tài phân tích, thiết kế và cài Đặt csdl cho phần mềm quản lý nhân sự
Bảng 1 Phỏng vấn Người được phỏng vấn: Nguyễn (Trang 7)
Bảng 2: Thông tin lưu trữ của nhân viên - Đề tài phân tích, thiết kế và cài Đặt csdl cho phần mềm quản lý nhân sự
Bảng 2 Thông tin lưu trữ của nhân viên (Trang 8)
Bảng 5: Thông tin lưu trữ vị trí công việc - Đề tài phân tích, thiết kế và cài Đặt csdl cho phần mềm quản lý nhân sự
Bảng 5 Thông tin lưu trữ vị trí công việc (Trang 9)
Bảng 4: Thông tin lưu trữ của phòng ban - Đề tài phân tích, thiết kế và cài Đặt csdl cho phần mềm quản lý nhân sự
Bảng 4 Thông tin lưu trữ của phòng ban (Trang 9)
Bảng 6: Thông tin lưu tài chính nhân viên - Đề tài phân tích, thiết kế và cài Đặt csdl cho phần mềm quản lý nhân sự
Bảng 6 Thông tin lưu tài chính nhân viên (Trang 10)
Bảng 7: Thông tin lưu trữ hóa đơn - Đề tài phân tích, thiết kế và cài Đặt csdl cho phần mềm quản lý nhân sự
Bảng 7 Thông tin lưu trữ hóa đơn (Trang 10)
Bảng dữ liệu chua đạt chuẩn 3 - Đề tài phân tích, thiết kế và cài Đặt csdl cho phần mềm quản lý nhân sự
Bảng d ữ liệu chua đạt chuẩn 3 (Trang 12)
Bảng dữ liệu chưa đạt chuẩn 2 - Đề tài phân tích, thiết kế và cài Đặt csdl cho phần mềm quản lý nhân sự
Bảng d ữ liệu chưa đạt chuẩn 2 (Trang 12)
Hình 1: ERD - Đề tài phân tích, thiết kế và cài Đặt csdl cho phần mềm quản lý nhân sự
Hình 1 ERD (Trang 16)
Bảng 9: Thực thể nhân viên - Đề tài phân tích, thiết kế và cài Đặt csdl cho phần mềm quản lý nhân sự
Bảng 9 Thực thể nhân viên (Trang 16)
Bảng 11: Thực thể PhongBan - Đề tài phân tích, thiết kế và cài Đặt csdl cho phần mềm quản lý nhân sự
Bảng 11 Thực thể PhongBan (Trang 17)
Bảng 10: thực thể ThongTinSV - Đề tài phân tích, thiết kế và cài Đặt csdl cho phần mềm quản lý nhân sự
Bảng 10 thực thể ThongTinSV (Trang 17)
Bảng 13: Thực thể HoaDon - Đề tài phân tích, thiết kế và cài Đặt csdl cho phần mềm quản lý nhân sự
Bảng 13 Thực thể HoaDon (Trang 18)
Hình 2: Lược đồ quan hệ dạng bảng - Đề tài phân tích, thiết kế và cài Đặt csdl cho phần mềm quản lý nhân sự
Hình 2 Lược đồ quan hệ dạng bảng (Trang 20)

TÀI LIỆU CÙNG NGƯỜI DÙNG

  • Đang cập nhật ...

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w