授课课时:2 授课地点:三教202
授课形式:教学做合一
教学目标
(一)知识目标:
- 掌握银行信贷管理系统概念及数据库设计基础。
- 理解SQL语言在数据库操作中的应用。
(二)能力目标:
- 能够设计实现银行信贷管理系统数据库。
- 熟练进行数据库的数据操作和过程编写。
(三)素质目标:
- 培养解决数据库设计问题的分析能力。
- 提高团队协作和自主学习的能力。
教学重难点
(一)重点:掌握数据库设计流程和SQL语句编写。
(二)难点:理解并应用表间关系及复杂SQL查询。
教学资源
教科书、PPT、 Navicat 、’头歌’在线实验平台
教学方法
(一)教法
1.讲授法 2.示范法 3.讨论法
(二)学法
1.自主学习 2.实践操作 3.归纳总结
教学过程设计
(一)课前任务
预习银行信贷管理系统需求,熟悉SQL基础语法。
(二)课程导入
探讨银行信贷管理的重要性,引出数据库设计与SQL应用的核心技能。
(三)数据库设计
- 讲解E-R图、逻辑数据模型和物理数据模型的重要性和基本概念。
- 详细分析银行信贷管理系统的E-R图、逻辑数据模型和物理数据模型。
- 介绍表2.10.1中的字段定义,解释每个字段的含义和用途。
字段名 | 字段说明 | 字段名 | 字段说明 |
---|---|---|---|
t_customer_info | 客户基本信息表 | reg_address | 注册地址 |
t_cust_credit_level | 客户信用等级表 | post_code | 邮政编码 |
t_his_cust_credit_level | 客户信用等级历史表 | id | 序号 |
cust_id | 客户编号 | credit_level | 信用级别 |
cust_name | 客户名称 | begin_date | 评级有效起始日期 |
legal_name | 法人代表 | end_date | 评级有效中止日期 |
(四)实训内容
第三部分:任务分解与实现
- 任务一:创建数据库
- 教师演示如何创建数据库。
- 学生在自己的计算机上操作,教师巡回指导。
- 任务二:创建数据表
- 教师逐步讲解创建数据表的SQL语句。
- 学生在自己的计算机上操作,教师解答疑问并提供指导。
- 任务三:创建数据表间的关系及约束
- 教师讲解设置主键、外键及默认值的SQL语句。
- 学生在自己的计算机上操作,教师提供个别指导。
- 任务四:数据操作
- 教师讲解并演示数据插入、查询、视图创建和存储过程编写的SQL语句。
- 学生在自己的计算机上操作,教师巡回检查并解答疑问。
任务一:创建数据库
创建数据库 BankCreditLoanDB
。
CREATE DATABASE BankCreditLoanDB;
任务二:创建数据表
创建数据表 T_customer_info
、T_cust_credit_level
、T_his_cust_credit_level
。
USE BankCreditLoanDB;
CREATE TABLE T_customer_info (
cust_id INT PRIMARY KEY AUTO_INCREMENT,
cust_name VARCHAR(100) NOT NULL,
legal_name VARCHAR(100),
reg_address VARCHAR(200),
post_code VARCHAR(10)
);
CREATE TABLE T_cust_credit_level (
cust_id INT PRIMARY KEY,
credit_level CHAR(2) DEFAULT '01',
FOREIGN KEY (cust_id) REFERENCES T_customer_info(cust_id)
);
CREATE TABLE T_his_cust_credit_level (
id INT PRIMARY KEY AUTO_INCREMENT,
cust_id INT,
credit_level CHAR(2),
begin_date DATE,
end_date DATE,
FOREIGN KEY (cust_id) REFERENCES T_customer_info(cust_id)
);
任务三:创建数据表间的关系及约束
- 设置表的主键已经在上面的
CREATE TABLE
语句中完成。 - 创建数据表之间的关系:
- 在
T_cust_credit_level
表中,cust_id
是外键,引用T_customer_info
表中的cust_id
。 - 在
T_his_cust_credit_level
表中,cust_id
是外键,引用T_customer_info
表中的cust_id
。
- 在
任务四:数据操作
- 向三个表中插入一条测试数据:
INSERT INTO T_customer_info (cust_name, legal_name, reg_address, post_code)
VALUES ('XX公司', '法人代表', '注册地址', '123456');
INSERT INTO T_cust_credit_level (cust_id, credit_level)
SELECT cust_id, '01' FROM T_customer_info WHERE cust_name = 'XX公司';
INSERT INTO T_his_cust_credit_level (cust_id, credit_level, begin_date, end_date)
SELECT cust_id, '01', '2024-01-01', '2024-12-31' FROM T_customer_info WHERE cust_name = 'XX公司';
2.查询客户名称为“XX公司”的信用等级:
SELECT c.cust_name, l.credit_level
FROM T_customer_info c
JOIN T_cust_credit_level l ON c.cust_id = l.cust_id
WHERE c.cust_name = 'XX公司';
3.创建视图 V_his_cust_credit_level
用于查询客户的信用级别历史记录:
CREATE VIEW V_his_cust_credit_level AS
SELECT c.cust_name, h.credit_level, h.begin_date, h.end_date
FROM T_customer_info c
JOIN T_his_cust_credit_level h ON c.cust_id = h.cust_id;
4.创建带输入参数的存储过程 P_cust_credit_level
,根据输入参数更新客户信用等级表,并将更新前的记录插入到客户信用等级历史表:
DELIMITER //
CREATE PROCEDURE P_cust_credit_level (IN p_cust_id INT, IN p_new_credit_level CHAR(2), IN p_begin_date DATE, IN p_end_date DATE)
BEGIN
DECLARE v_old_credit_level CHAR(2);
-- 获取更新前的信用等级
SELECT credit_level INTO v_old_credit_level FROM T_cust_credit_level WHERE cust_id = p_cust_id;
-- 插入到历史表
INSERT INTO T_his_cust_credit_level (cust_id, credit_level, begin_date, end_date)
VALUES (p_cust_id, v_old_credit_level, p_begin_date, p_end_date);
-- 更新客户信用等级表
UPDATE T_cust_credit_level
SET credit_level = p_new_credit_level
WHERE cust_id = p_cust_id;
END //
DELIMITER ;
课程总结
通过本次实训课程,我们深入学习了银行信贷管理系统的数据库设计和实现,掌握了SQL语言在数据操作中的关键应用,并通过实际操作加深了对数据库概念、设计流程和数据管理的理解。
课后作业
完成银行信贷管理系统数据库的扩展设计,包括添加新数据表、编写复杂查询语句,以及实现数据的增删改查操作。
反思整改
反思学生在实训中的掌握情况,调整教学方法以强化理解与应用。