欢迎光临
我们一直在努力

课题:综合训练2-3

授课课时:2 授课地点:三教202
授课形式:教学做合一

教学目标
(一)知识目标:

  1. 掌握MySQL基础操作和数据库设计原理。
  2. 理解范式理论,学会数据备份与恢复。

(二)能力目标:

  1. 能设计并实现人力资源管理系统数据库。
  2. 能进行数据增删改查和数据库优化。

(三)素质目标:

  1. 培养团队合作和沟通能力。
  2. 增强数据安全意识和问题解决能力。

教学重难点
(一)重点:数据库设计原理与SQL操作技能。
(二)难点:范式理论的应用与索引优化。

教学资源
教科书、PPT、 Navicat 、’头歌’在线实验平台

教学方法
(一)教法
1.讲授法 2.示范法 3.讨论法
(二)学法
1.自主学习 2.实践操作 3.归纳总结

教学过程设计
(一)课前任务
请同学们预习MySQL数据库基础,安装并熟悉环境,准备基本SQL语句操作,并思考人力资源管理系统的基本需求。

(二)课程导入
让我们开始探索《人力资源管理系统》的数据库设计之旅,通过MySQL实现数据的有效管理与优化。

(三)综合实训目标

  • 通过实际项目操作,加深对数据库设计和MySQL使用的理解
  • 培养学生解决实际问题的能力
  • 使学生能够独立完成一个简单的数据库应用项目

(四)实训内容

1. 需求分析

  • 功能需求
    • 员工管理:添加、删除、更新、查询员工信息
    • 部门管理:添加、删除、更新、查询部门信息
    • 职位管理:添加、删除、更新、查询职位信息
    • 薪资管理:记录员工薪资信息
  • 非功能需求
    • 数据库性能优化
    • 安全性要求
    • 备份与恢复

2. 数据库设计

  • 实体关系图 (ER图)

3. 数据库实现

  • 创建数据库和表的SQL语句
CREATE DATABASE hr_management;

USE hr_management;

CREATE TABLE Department (
    department_id INT PRIMARY KEY AUTO_INCREMENT,
    department_name VARCHAR(50) NOT NULL
);

CREATE TABLE Position (
    position_id INT PRIMARY KEY AUTO_INCREMENT,
    position_name VARCHAR(50) NOT NULL,
    salary DECIMAL(10, 2) NOT NULL
);

CREATE TABLE Employee (
    employee_id INT PRIMARY KEY AUTO_INCREMENT,
    first_name VARCHAR(50) NOT NULL,
    last_name VARCHAR(50) NOT NULL,
    birth_date DATE NOT NULL,
    hire_date DATE NOT NULL,
    position_id INT,
    department_id INT,
    FOREIGN KEY (position_id) REFERENCES Position(position_id),
    FOREIGN KEY (department_id) REFERENCES Department(department_id)
);

CREATE TABLE Salary (
    salary_id INT PRIMARY KEY AUTO_INCREMENT,
    employee_id INT,
    base_salary DECIMAL(10, 2) NOT NULL,
    bonus DECIMAL(10, 2),
    pay_date DATE NOT NULL,
    FOREIGN KEY (employee_id) REFERENCES Employee(employee_id)
);

4. 基本操作

  • 插入示例数据
INSERT INTO Department (department_name) VALUES ('Human Resources');
INSERT INTO Department (department_name) VALUES ('Finance');
INSERT INTO Department (department_name) VALUES ('IT');

INSERT INTO Position (position_name, salary) VALUES ('Manager', 8000);
INSERT INTO Position (position_name, salary) VALUES ('Developer', 6000);
INSERT INTO Position (position_name, salary) VALUES ('Analyst', 5000);

INSERT INTO Employee (first_name, last_name, birth_date, hire_date, position_id, department_id) VALUES ('John', 'Doe', '1985-03-20', '2010-01-15', 1, 1);
INSERT INTO Employee (first_name, last_name, birth_date, hire_date, position_id, department_id) VALUES ('Jane', 'Smith', '1990-07-25', '2015-04-23', 2, 3);

INSERT INTO Salary (employee_id, base_salary, bonus, pay_date) VALUES (1, 8000, 1000, '2023-05-01');
INSERT INTO Salary (employee_id, base_salary, bonus, pay_date) VALUES (2, 6000, 500, '2023-05-01');

查询数据

-- 查询所有员工信息
SELECT * FROM Employee;

-- 查询某个部门的所有员工
SELECT e.* FROM Employee e
JOIN Department d ON e.department_id = d.department_id
WHERE d.department_name = 'IT';

-- 查询某个职位的所有员工
SELECT e.* FROM Employee e
JOIN Position p ON e.position_id = p.position_id
WHERE p.position_name = 'Manager';

-- 查询某个员工的薪资信息
SELECT s.* FROM Salary s
JOIN Employee e ON s.employee_id = e.employee_id
WHERE e.first_name = 'John' AND e.last_name = 'Doe';

5.高级操作

  • 创建视图
CREATE VIEW EmployeeInfo AS
SELECT e.employee_id, e.first_name, e.last_name, d.department_name, p.position_name
FROM Employee e
JOIN Department d ON e.department_id = d.department_id
JOIN Position p ON e.position_id = p.position_id;

使用存储过程

DELIMITER //

CREATE PROCEDURE GetEmployeeSalaries(IN emp_id INT)
BEGIN
    SELECT * FROM Salary WHERE employee_id = emp_id;
END //

DELIMITER ;

使用触发器

DELIMITER //

CREATE TRIGGER UpdateSalary BEFORE INSERT ON Salary
FOR EACH ROW
BEGIN
    SET NEW.base_salary = NEW.base_salary + (NEW.bonus * 0.1);
END //

DELIMITER ;

6. 系统测试

  • 测试各个功能模块,确保系统运行正常
  • 检查数据一致性和完整性
  • 进行性能测试和优化

课程总结

通过本项目的实训,学生将掌握从需求分析、数据库设计到实际实现的全过程。通过具体的实训操作,学生不仅能够加深对MySQL数据库的理解,还能提高解决实际问题的能力。

课后作业
请同学们根据今天的实训内容,完成一个小型的人力资源管理系统数据库设计,并提交一份包含ER图、SQL创建语句、基本数据操作的报告。

反思整改

我将评估学生对数据库设计和MySQL操作的掌握程度,同时考虑如何改进教学方法以提升学生的实践能力和理解深度。

赞(0) 打赏
未经允许不得转载:留留工作室 » 课题:综合训练2-3

评论 抢沙发

更好的WordPress主题

支持快讯、专题、百度收录推送、人机验证、多级分类筛选器,适用于垂直站点、科技博客、个人站,扁平化设计、简洁白色、超多功能配置、会员中心、直达链接、文章图片弹窗、自动缩略图等...

联系我们联系我们

觉得文章有用就打赏一下文章作者

非常感谢你的打赏,我们将继续提供更多优质内容,让我们一起创建更加美好的网络世界!

支付宝扫一扫

微信扫一扫

登录

找回密码

注册