数据库设计
4.1.1 数据库需求分析
数据库需求分析是数据库结构设计的第一个阶段,这个阶段主要是收集基本数据、数据结构以及数据处理的流程,组成一份详尽的数据字典,为以后进一步设计打下基础。
在仔细调查银行账户管理过程的基础上,我们得到本系统所处理的数据流程如图2-1所示。
图4-1数据路程图
针对本实例,通过对银行账户管理的内容和数据流程分析,我们设计的数据项和数据结构如下 :
- 用户普通信息表。包含所有用户的信息,数据项有:账号、用户姓名、密码、身份证、总金额、状态、住址、开户时间。
- 用户卡信息表。包含的数据项有:用户账号、卡号、卡密码、金额、状态。
- 用户银行存取款信息表。包含的数据项有:操作员(管理员)号码、用户账号、用户卡号、存取款时间、存取款金额、存取款摘要、总金额。
- 用户存取款信息总表。包含的数据项有:用户账号、存取款时间、存取款地点、存取款金额、存取款摘要、总金额。
- 管理员信息表。包含的数据项有:用户、口令。
有了上面的数据结构、数据项和数据流程,我们就能进行下面的数据库设计。
4.1.2 数据库概念结构设计
这一设计阶段是在需求分析的基础上,设计出能够满足用户需求的各种实体,以及它们之间的关系,为以后的逻辑设计打下基础。
根据上面的设计规划本实例的中的实体有:管理员实体、账户实体、账户普通信息实体、账户卡信息实体
4.1.3 数据库逻辑结构设计
我们需要将上面的数据库概念结构转化为Oracle数据库系统所支持的实际数据模型,也就是数据库的逻辑结构。
在上面的实体以及实体之间关系的基础上,形成数据库中的表格以及各个表格之间的关系。
银行账户管理系统的数据库中各个表格的设计结果如下面的几个表格所示。每个表格表示在数据库中的一个表。
表4-1为用户基本信息表。
表4-1 USER 用户基本信息表
列名 | 数据类型 | 可否空缺 | 说明 | |
USER_ID USER_NAME USER_PSWD USER_IDENTITY USER_ALL USER_STATUS USER_ADDRESS USER_NEW | CHARACTER(13) CHARACTER(8) CHARACTER(6) CHARACTER(18) NUMERIC(10.2) CHARACTER(4) CHARACTER(20) DATE | NOTNULL NULL NULL NULL NULL NULL NULL NULL | 账号(索引) 用户姓名 用户密码 用户身份证 总金额 现在状态 用户地址 开户时间 |
表4-2为用户卡信息表。
表4-2 CARD 用户卡信息表
列名 | 数据类型 | 可否空缺 | 说明 | |
USER_ID CARD_ID CARD_PSWD CARD_ALL CARD_STATUS | CHARACTER(13) CHARACTER(16) CHARACTER(6) NUMERIC(10,2) CHARACTER(4) | NOTNULL NULL NULL NULL NULL | 用户账号(索引) 卡号(索引) 卡密码 总金额 现在状态 |
表4-3为用户银行存取款信息表。
表4-5 BANKOUTIN 用户银行存取款信息表
列名 | 数据类型 | 可否空缺 | 说明 | |
TMS_ID USER_ID CARD_ID BANK_TIME USER_ALL USER_STATUS USER_ADDRESS USER_NEW | CHARACTER(6) CHARACTER(13) CHARACTER(16) DATE NUMERIC(10.2) CHARACTER(4) CHARACTER(20) DATE | NOTNULL NULL NULL NULL NULL NULL NULL NULL | 操作员ID(索引) 用户账号(索引) 用户卡号(索引) 存取款时间 存取款摘要 取款金额 存款金额 总金额 |
表4-4为用户存取款信息总表。
表4-6 USERALL 用户存取款信息总表
列名 | 数据类型 | 可否空缺 | 说明 | |
USER_ID CARD_ID OUTIN_TIME OUTIN USER_OUT USER_IN UER_ALL | CHARACTER(13) CHARACTER(16) DATE CHARACTER(4) NUMERIC(10.2) NUMERIC(10.2) NUMERIC(10.2) | NOTNULL NULL NULL NULL NULL NULL NULL | 用户账号(索引) 用户卡号(索引) 存取款时间 存取款摘要 取款金额 存款金额 总金额 |
表4-5为管理系统的TMS用户口令表。
表4-5 TMS 管理系统的用户口令
列名 | 数据类型 | 可否空缺 | 说明 | |
TMS_USER TMS_PSWD | CHARACTER(6) CHARACTER(6) | NOTNULL NOTNULL | 用户名(主键) 口令 |
表4-6 BANK 银行系统的用户信息
列名 | 数据类型 | 可否空缺 | 说明 | |
LAST_USER LAST_CARD | CHARACTER(13) CHARACTER(16) | NOTNULL NOTNULL | 最后一个账号 最后一个卡号 |
4.1.4数据库结构的实现
在需求分析、概念结构设计的继承上得倒数据库的逻辑结构之后,我们就可以在Oracle数据库系统中实现该逻辑结构。
实现数据库的逻辑结构的方式是用项目管理器来实现的,下面讲解的是用以上的数据来创建表格的过程。
首先简单介绍一下项目的创建。
在PL SQL Developer的主菜单中先找到“new”对话框中选中“单击“table”,按钮。此时弹出”create table”对话框,在general选项中填写表名等信息, 在column 选项卡中填写列信息,在keys选项中填写主外键等信息
4.2 系统模块设计
从总体上来看,本银行系统共分为一个总模块:主界面模块,和四个子模块:储户管理模块,业务员管理模块,存款管理模块及取款管理模块。下面将给出各个模块的具体流程。