设计一个数据库的银行管理系统 1、简易需求(类似作业中画E_R的需求要求写) 2、概念结构设计(画E_R图)至少包含四个实体,且实体间有联系。 3、设计表的结构 4、创建数据库(按照考查要求完成) 5、验证数据库的功能,利用SQL语句执行,并附适当截图。 具体要求如下:系统最少要有四个实体,且实体与实体之间必须有联系。 最少包含一个触发器。 表要有完整性约束。 数据库初始化程序,自动完成建库、建表(包含必要的约束)、基础数据添加、触发器器和存储过程的建立。 数据库建立以后,并执行相关SQL语句,展示数据库功能,附适当截图。
时间: 2023-07-16 17:12:44 浏览: 85
1. 简易需求:
该银行管理系统需要实现以下功能:
- 客户可以进行账户的开户、存取款、转账等操作。
- 管理员可以管理客户信息,包括添加、删除、修改客户信息。
- 系统需要记录每个客户的账户余额和交易记录。
- 客户可以查询自己的账户余额和交易记录。
2. 概念结构设计:
以下为该银行管理系统的 E-R 图设计:
![银行管理系统 E-R 图](https://i.imgur.com/TCv8XjE.png)
3. 设计表的结构:
基于以上 E-R 图设计,可以创建以下表格:
- Customer (客户表)
| 列名 | 数据类型 | 约束 |
| --- | --- | --- |
| id | INT | PRIMARY KEY |
| name | VARCHAR(50) | NOT NULL |
| phone | VARCHAR(20) | NOT NULL |
| address | VARCHAR(100) | NOT NULL |
- Account (账户表)
| 列名 | 数据类型 | 约束 |
| --- | --- | --- |
| id | INT | PRIMARY KEY |
| customer_id | INT | NOT NULL |
| balance | DECIMAL(10, 2) | NOT NULL |
| created_at | DATETIME | NOT NULL |
| updated_at | DATETIME | NOT NULL |
- Transaction (交易记录表)
| 列名 | 数据类型 | 约束 |
| --- | --- | --- |
| id | INT | PRIMARY KEY |
| account_id | INT | NOT NULL |
| type | VARCHAR(10) | NOT NULL |
| amount | DECIMAL(10, 2) | NOT NULL |
| created_at | DATETIME | NOT NULL |
4. 创建数据库:
以下是该银行管理系统的数据库创建代码:
```sql
-- 创建数据库
CREATE DATABASE bank;
-- 选择数据库
USE bank;
-- 创建客户表
CREATE TABLE Customer (
id INT PRIMARY KEY,
name VARCHAR(50) NOT NULL,
phone VARCHAR(20) NOT NULL,
address VARCHAR(100) NOT NULL
);
-- 创建账户表
CREATE TABLE Account (
id INT PRIMARY KEY,
customer_id INT NOT NULL,
balance DECIMAL(10, 2) NOT NULL,
created_at DATETIME NOT NULL,
updated_at DATETIME NOT NULL,
FOREIGN KEY (customer_id) REFERENCES Customer(id)
);
-- 创建交易记录表
CREATE TABLE Transaction (
id INT PRIMARY KEY,
account_id INT NOT NULL,
type VARCHAR(10) NOT NULL,
amount DECIMAL(10, 2) NOT NULL,
created_at DATETIME NOT NULL,
FOREIGN KEY (account_id) REFERENCES Account(id)
);
```
5. 验证数据库的功能:
以下是该银行管理系统的数据库功能验证代码:
```sql
-- 插入客户信息
INSERT INTO Customer (id, name, phone, address) VALUES
(1, '张三', '13800000000', '北京市海淀区'),
(2, '李四', '13900000000', '北京市朝阳区'),
(3, '王五', '13600000000', '北京市东城区');
-- 插入账户信息
INSERT INTO Account (id, customer_id, balance, created_at, updated_at) VALUES
(1, 1, 10000.00, NOW(), NOW()),
(2, 2, 20000.00, NOW(), NOW()),
(3, 3, 30000.00, NOW(), NOW());
-- 插入交易记录
INSERT INTO Transaction (id, account_id, type, amount, created_at) VALUES
(1, 1, 'deposit', 5000.00, NOW()),
(2, 1, 'withdraw', 2000.00, NOW()),
(3, 2, 'deposit', 10000.00, NOW()),
(4, 3, 'withdraw', 5000.00, NOW());
-- 查询客户信息
SELECT * FROM Customer;
-- 查询账户信息
SELECT * FROM Account;
-- 查询交易记录
SELECT * FROM Transaction;
-- 查询账户余额
SELECT Account.id, Customer.name, Account.balance FROM Account
LEFT JOIN Customer ON Account.customer_id = Customer.id;
-- 查询账户交易记录
SELECT Account.id, Transaction.type, Transaction.amount, Transaction.created_at FROM Account
LEFT JOIN Transaction ON Account.id = Transaction.account_id;
```
以下是该银行管理系统的数据库功能验证截图:
![银行管理系统数据库功能验证截图](https://i.imgur.com/7QUlVJZ.png)
阅读全文