本PDF文档深入探讨了针对银行业务管理系统的关系型数据库设计,涵盖了数据模型建立、表结构优化及安全控制策略等内容。
关系型数据库设计——银行业务管理系统
一、需求描述
某银行准备开发一个银行业务管理系统,通过调查得到以下主要需求:银行有多个支行;每个支行位于某个城市,并且有一个唯一的名称;银行需要监控各分支的资产情况。
客户信息方面,每位客户的标识为身份证号。除了姓名和居住地址(包括街道与所在的城市),还应存储有关其账户的信息以及是否进行了贷款申请等事项。此外,一名员工可以是某位客户的贷款负责人或账户管理人,并且所有银行职员也通过身份证号码进行识别。
员工业务方面,员工分为部门经理和平级的普通工作人员;每位部门经理负责领导所在部门的所有人员,并且每个员工只能在一个特定的工作团队中服务。对于这些信息,需要记录每一位员工的名字、电话号码、家庭住址及其直接上司(即经理)的身份证明编号等数据资料。
账户管理部分则包括两类账户——储蓄账户和支票存款账户;一个客户可以拥有多个不同类型的银行帐户,并且每个帐户都有唯一的标识符。此外,该系统还需要记录各个客户的最近访问日期及具体账目余额、开户支行等相关信息。另外,对于每笔贷款业务,则需要明确其发放的具体支行以及相关支付情况(包括每次付款的详细时间和金额)。
二、E/R图实体、属性和联系确定
通过分析可以发现共有8个主要实体:
1. 支行:名称、所在城市及资产总额;
2. 贷款记录:贷款编号与放贷额度信息;
3. 付款明细表(弱实体,依赖于强实体“贷款”);时间戳和金额数值等字段;
4. 员工档案库;包含身份证号、姓名、联系方式以及家庭地址及入职日期等内容。
5. 客户数据库:客户标识符为身份证明号码,并且记录其个人信息如全名及其居住街道信息与城市名称;
6. 账户登记簿(强实体);此表中包括账户唯一编号和余额等核心数据项。
7-8.具体类型分类,分别是储蓄型存款帐户及支票类银行存折。前者需要添加利率参数,后者则需增加透支额度这一字段。
三、使用Visio绘制E/R草图
四、利用PowerDesigner工具创建完整的ER关系模型图表
五、将逻辑结构转化为物理数据库架构,并生成SQL脚本进行实际部署:
```sql
/*==============================================================*/
/* Table: account */
/*==============================================================*/
create table account (
account_id varchar(20) not null,
branch_name varchar(50) not null,
account_balance money null,
constraint PK_ACCOUNT primary key nonclustered (account_id)
);
go
/* Index: open_FK */
/*==============================================================*/
create index open_FK on account(branch_name ASC );
go
/* Table: branch */
/*==============================================================*/
create table branch (
branch_name varchar(50) not null,
branch_city varchar(50) null,
branch_assets money null,
constraint PK_BRANCH primary key nonclustered (branch_name)
);
go
```