一 需求描述

某银行准备开发一个银行业务管理系统,通过调查,得到以下的主要需求:银行有多个支行。各个支行位于某个城市,每个支行有唯一的名字。银行要监控每个支行的资产。银行的客户通过其身份证号来标识。银行存储每个客户的姓名及其居住的街道和城市。客户可以有帐户,并且可以贷款。客户可能和某个银行员工发生联系,该员工是此客户的贷款负责人或银行帐户负责人。银行员工也通过身份证号来标识。员工分为部门经理和普通员工,每个部门经理都负责领导其所在部门的员工,并且每个员工只允许在一个部门内工作。每个支行的管理机构存储每个员工的姓名、电话号码、家庭地址及其经理的身份证号。银行还需知道每个员工开始工作的日期,由此日期可以推知员工的雇佣期。 银行提供两类帐户——储蓄帐户和支票帐户。帐户可以由2个或2个以上客户所共有,一个客户也可有两个或两个以上的帐户。每个帐户被赋以唯一的帐户号。银行记录每个帐户的余额、开户的支行以及每个帐户所有者访问该帐户的最近日期。另外,每个储蓄帐户有其利率,且每个支票帐户有其透支额。 每笔贷款由某个分支机构发放,能被一个或多个客户所共有。每笔贷款用唯一的贷款号标识。银行需要知道每笔贷款所贷金额以及逐次支付的情况(银行将贷款分几次付给客户)。虽然贷款号不能唯一标识银行所有为贷款所付的款项,但可以唯一标识为某贷款所付的款项。对每次的付款需要记录日期和金额。

二 E/R图实体、属性和联系确定

经分析可知实体及其属性如表一所示,说明如下:

1、  总共包含8个实体

2、  支付为弱实体,依赖于强实体贷款。

3、储蓄账户实体和支票账户实体继承于账户实体

实体及属性基本信息表如下:

/*==============================================================*/
/* 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)
/*==============================================================*/
/* Index: open_FK                                               */
/*==============================================================*/
create index open_FK on account (
branch_name ASC
/*==============================================================*/
/* 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)
/*==============================================================*/
/* Table: checkAccount                                          */
/*==============================================================*/
create table checkAccount (
   account_id           varchar(20)          not null,
   branch_name          varchar(50)          null,
   account_balance      money                null,
   overdraft            money                null,
   constraint PK_CHECKACCOUNT primary key (account_id)
/*==============================================================*/
/* Table: custom                                                */
/*==============================================================*/
create table custom (
   custom_id            char(18)             not null,
   loan_id              varchar(20)          null,
   custom_name          varchar(20)          null,
   custom_street        varchar(50)          null,
   custom_city          varchar(50)          null,
   constraint PK_CUSTOM primary key nonclustered (custom_id)
/*==============================================================*/
/* Index: apply_FK                                              */
/*==============================================================*/
create index apply_FK on custom (
loan_id ASC
/*==============================================================*/
/* Table: have                                                  */
/*==============================================================*/
create table have (
   account_id           varchar(20)          not null,
   custom_id            char(18)             not null,
   recent_time          datetime             null,
   constraint PK_HAVE primary key (account_id, custom_id)
/*==============================================================*/
/* Index: have_FK                                               */
/*==============================================================*/
create index have_FK on have (
account_id ASC
/*==============================================================*/
/* Index: have2_FK                                              */
/*==============================================================*/
create index have2_FK on have (
custom_id ASC
/*==============================================================*/
/* Table: loan                                                  */
/*==============================================================*/
create table loan (
   loan_id              varchar(20)          not null,
   branch_name          varchar(50)          not null,
   loan_sum             money                null,
   constraint PK_LOAN primary key nonclustered (loan_id)
/*==============================================================*/
/* Index: grant_FK                                              */
/*==============================================================*/
create index grant_FK on loan (
branch_name ASC
/*==============================================================*/
/* Table: payment                                               */
/*==============================================================*/
create table payment (
   loan_id              varchar(20)          not null,
   pay_time             datetime             not null,
   pay_sum              money                null,
   constraint PK_PAYMENT primary key nonclustered (loan_id, pay_time)
/*==============================================================*/
/* Index: "loan-pay_FK"                                         */
/*==============================================================*/
create index "loan-pay_FK" on payment (
loan_id ASC
/*==============================================================*/
/* Table: responsible                                           */
/*==============================================================*/
create table responsible (
   staff_id             char(18)             not null,
   custom_id            char(18)             not null,
   "identity"           "identity"           null,
   constraint PK_RESPONSIBLE primary key (staff_id, custom_id)
/*==============================================================*/
/* Index: responsible_FK                                        */
/*==============================================================*/
create index responsible_FK on responsible (
staff_id ASC
/*==============================================================*/
/* Index: responsible2_FK                                       */
/*==============================================================*/
create index responsible2_FK on responsible (
custom_id ASC
/*==============================================================*/
/* Table: savingAccount                                         */
/*==============================================================*/
create table savingAccount (
   account_id           varchar(20)          not null,
   branch_name          varchar(50)          null,
   account_balance      money                null,
   rate                 decimal(8,3)         null,
   constraint PK_SAVINGACCOUNT primary key (account_id)
/*==============================================================*/
/* Table: staff                                                 */
/*==============================================================*/
create table staff (
   staff_id             char(18)             not null,
   sta_staff_id         char(18)             null,
   branch_name          varchar(50)          not null,
   staff_name           varchar(20)          null,
   staff_tel            varchar(20)          null,
   staff_addr           varchar(50)          null,
   start_time           datetime             null,
   constraint PK_STAFF primary key nonclustered (staff_id)
/*==============================================================*/
/* Index: work_FK                                               */
/*==============================================================*/
create index work_FK on staff (
branch_name ASC
/*==============================================================*/
/* Index: lead_FK                                               */
/*==============================================================*/
create index lead_FK on staff (
sta_staff_id ASC
alter table account
   add constraint FK_ACCOUNT_OPEN_BRANCH foreign key (branch_name)
      references branch (branch_name)
alter table checkAccount
   add constraint FK_CHECKACC_CAINHERIT_ACCOUNT foreign key (account_id)
      references account (account_id)
alter table custom
   add constraint FK_CUSTOM_APPLY_LOAN foreign key (loan_id)
      references loan (loan_id)
alter table have
   add constraint FK_HAVE_HAVE_ACCOUNT foreign key (account_id)
      references account (account_id)
alter table have
   add constraint FK_HAVE_HAVE2_CUSTOM foreign key (custom_id)
      references custom (custom_id)
alter table loan
   add constraint FK_LOAN_GRANT_BRANCH foreign key (branch_name)
      references branch (branch_name)
alter table payment
   add constraint "FK_PAYMENT_LOAN-PAY_LOAN" foreign key (loan_id)
      references loan (loan_id)
alter table responsible
   add constraint FK_RESPONSI_RESPONSIB_STAFF foreign key (staff_id)
      references staff (staff_id)
alter table responsible
   add constraint FK_RESPONSI_RESPONSIB_CUSTOM foreign key (custom_id)
      references custom (custom_id)
alter table savingAccount
   add constraint FK_SAVINGAC_SAINERITA_ACCOUNT foreign key (account_id)
      references account (account_id)
alter table staff
   add constraint FK_STAFF_LEAD_STAFF foreign key (sta_staff_id)
      references staff (staff_id)
alter table staff
   add constraint FK_STAFF_WORK_BRANCH foreign key (branch_name)
      references branch (branch_name)
                    一 需求描述某银行准备开发一个银行业务管理系统,通过调查,得到以下的主要需求:银行有多个支行。各个支行位于某个城市,每个支行有唯一的名字。银行要监控每个支行的资产。银行的客户通过其身份证号来标识。银行存储每个客户的姓名及其居住的街道和城市。客户可以有帐户,并且可以贷款。客户可能和某个银行员工发生联系,该员工是此客户的贷款负责人或银行帐户负责人。银行员工也通过身份证号来标识。员工分为部门经理
				
数据库课程设计报告--银行管理系统。 生活在21世纪,我们每个人的日常生活免不了跟银行打交道。安全、规范、操作简单、功能齐全的银行管理系统能使业务得以顺利流畅的办理,使人们获得极好的用户体验。基于这样的背景,我的选题是银行管理系统。 日常生活中的银行管理系统很复杂,对安全性和完整性要求都很高。在此我运用数据库课上所学知识,结合自己平时的银行业务体验,认为一个合格的银行管理系统至少应该具备以下几点要素: 1.安全性,不会泄露相关信息,造成损失; 2.功能齐全,各种业务可以高效办理; 3.操作简单,可以快速上手。    为了兼备以上的要素,我认为银行管理系统至少需要4类用户的参与,他们依权限可以分为银行注册师、银行营业员(以下简称营业员)、存款用户、贷款用户。
1、 类图综述 银行ATM分析类类图主要包括实体类,描述了类与类之间的关系,以及说明类有何种属性和操作。该系统可以为用户提供“存款”、“取款”、“转账”、“查询账户信息”等操作,这些操作都需要与银行服务器发生信息交互。
本文着重阐述了银行管理系统的整体开发过程。介绍了系统的开发环境以及开发工具,对于设计思想和设计流程也做出了全面的叙述,在数据库创建思想以及各个数据表之间的具体关联等方面也做出了详细说明,力求更加清晰地表明设计 思想以及对整个程序设计的规划及具体实现。本论文包括一下几个部分: 本系统基于B/S模式,采用JSP开发技术,Tomcat应用服务器,以SQL Server作为数据库,使用MyEclipse作为开发工具进行开发。 第一部分系统分析,通过对用户需求的分析,说明了项目开发的背景、项目开发的目的和项目开发的意义,通过实际的业务流程调研,分析了系统的组织结构,完成了业务流程分析,并具体完成了数据流分析和数据字典。 第二部分基础知识简介,对所应用软件的介绍。 第三部分详细设计,对各个模块的属性进行了详细分析,数据库的设计先进行了概念结构设计,之后进行了逻辑结构设计,最后完成了数据库表的设计。 第四部分系统实现,通过详细设计的代码开发完成了银行业务管理系统的开发过程。
字段名称 说明 备注 customerID 顾客编号 自动编号(标识列),从1开始,主键 用序列sequence实现,用其属性:nextval customerName 开户名 必填 PID 身份证号 必填,智能是18位或15位,唯一约束 check约束length()函数 telephone 联系电话 必填,11位手机号 check约束,’[0-9]’ address 居住地址 银行卡信息表cardinfo 字段名称 说明 cardID 卡号 必填,主键,银行的卡号规则和电话好吗一样,一般前8位代表特殊含义,如某综合某支行等,假定该行要求其营业厅的卡号格式为10103576**** ***开始,每4位号码后有空格,卡号一般是随机产生。 curType 货币种类 必填,默认为RMB savingTate 存款类型 活期/定活两便/定期 openDate 开户日期 必填,默认为系统当前日期 openMoney 开户金额 必填,不低于1元 balance 余额 必填,不低于1元,否则将销户 pass 密码 必填,6位数字,开户时默认为6个“6” IsReportloss 是否挂失 必填,是/否值,默认为“否” customerID 顾客编号 外键,必填,表示该卡对应的顾客编号,一位顾客允许办理多张卡号 交易信息表transinfo 字段名称 说明 transDate 交易日期 必填,默认为系统当前日期 cardID 卡号 必填,外键 transType 交易类型 必填,只能是存入/支取 transMoney 交易金额 必填,大于0 remark 备注 可选,其他说明 2、使用SQL语言在每个表上添加约束 主键约束、外键约束、CHECK约束、默认约束、非空约束 二、插入测试数据 使用SQL语言向每个表中插入至少3条记录 三、模拟常规业务 1)修改客户密码 2)办理银行卡挂失 3)统计银行资金流通余额和盈利结算 银行资金流通余额=总存入金额-总支取金额 盈利结算=总支取金额 * 0.008 – 总存入金额 * 0.003 4)查询本周开户的卡号,显示该卡相关信息 5)查询本月交易金额最高的卡号 6)查询挂失账号的客户信息 四、利用视图实现数据查询 1)为客户提供以下3个视图供其查询该客户数据 客户基本信息:vw_userInfo 银行卡信息:vw_cardInfo 银行卡交易信息:vw_transInfo 2)提供友好界面,要求各列名称为中文描述 3)调用创建的视图获得查询结果 五、用存储过程实现业务处理 1)完成开户业务 2)完成取款或存款业务 3)根据卡号打印对账单 4)查询、统计指定时间段内没有发生交易的账户信息
文章目录数据库介绍MySql介绍添加数据导入数据查询数据内连接左外连接/右外连接子查询约束函数聚合函数分组函数数学函数字符串函数日期时间函数条件判断函数系统信息函数加密函数格式化函数自定义函数视图事务存储引擎存储过程循环 数据库介绍 数据库(Database,DB) 概述:存储数据的处所,用户可对数据进行增删改查等操作,用一定方式存储数据,可用户共享,即一个数据库多张表的结构。 数据库管理系统(Database Management System,DBMS) 概述:操作和管理数据库的软件,用于建立,使用,维护数据库,对数据库进行统一管理,以确保数据库的安全性和完整性,用户通过数据库管理系统访问
为方便储户,某银行拟开发计算机储蓄系统。储户填写的存款单或取款单由业务员键入系统,如果是存款,系统记录存款人姓名、住址、存款类型、存款日期、利率等信息,并印出存款单给储户﹔如果是取款,系统计算利息并印出利息清单给储户。 主要包括以下两部分功能: (1)存款功能,以储户的存款为主要活动,相关记录根据存款结果进行调整,以使信息保持一致。系统需要在原账户信息中增加一条记录,包括存款人姓名、住址、存款类型、存款日期、利率等信息。若为新储户须建立一个账户,并记录此次的记录。印存款单给储户。 (2)取款功...
课题说明 题目:银行系统网络的建设方案 以某城市工行总行为中心,与处于不同地区的四家支行互联,要求采用DDN专线。四个支行的IP节点数分别为500(一支行)、380(二支行)、150(三支行)、500(四支行)。起始IP地址从194.68.18.0/21开始,且四个支行中一、二支行属于自治系统AS1,三、四支行属于自治系统AS2。 要求: 各支行独立成立一个子网,说明总行与个支行连接情况; 采用CIDR子网划分技术,详细说明每个支行的网络号,子网掩码,该子网内IP情况; 假设现在一支行中的一台主机需要与四支行中一台主机通信,说明如何用边界网关协议BGP路由算法进行路由发现并生成路由表,查表完成通信过程。(内部网关协议为RIP) 成员任务 孙宇:题目分析以及总结,框架搭建,PPT 张光:银行系统网络的设计 吴杰:文字处理和书写实验总结 张晓:word文档的整理和排版。 沈磊:目录整理、上机实验和拓扑图的绘制。 目录 前言 2 一、课程设计目的 3 二、设计分析 3 2.1 需求分析 3 2.2 设计目的 4 2.3 设计要求 4 三、专业名词注解 4 3.1 IP 4 3.2 TCP 4 3.3 BGP 5 3.4 DDN专线 6 3.5 CIDR 7 3.6 网络七层结构 8 四、方案设计 9 4.1 拓扑图 9 4.2 IP地址 9 4.3实验截图 10 五、实验总结 11 前言 20世纪90年代中期,随着Internet的普及应用,商业银行开始驶上网络快车道,银行经营方式也呈现了网络化趋势。随着以因特网技术为核心的现代计算机网络技术在银行业的应用与推广,银行的服务效率和功能得到了很大的提高,金融全球化和综合化的发展趋势进一步增强。从此银行业开始进入了一个新的历史发展阶段——网上银行发展阶段。 社会的发展,以及信息的变更,使我们的生活产生了巨大变化。网络的进军我们的现实生活,信息化不断冲击着我们的生活。网络银行也越来越广泛地影响人们的生活与工作,它也将会取代我们传统的银行业务发展的趋势,成为我们不可缺少的一部分。另一方面银行为加强自身的竞争优势,在提高服务质量的前提下也不断推出更多的金融服务产品来满足客户的需求。而近年来Internet在全世界的发展普及应用也给银行业带来新的挑战与机遇。在金融领域特别是银行业近来再现的新生事物,它对银行业务与企业电子商务的发展具有巨大的影响。 网络银行是在Internet时代里金融电子化与信息化建设的最新内容,是电子银行的高级发展阶段,这是伴随Internet近来来在全世界的广泛应用而出现的新术语与新商务形式。网络银行银行利用公用信息网络将客户的终端连接到银行网站,从而实现将银行的金融服务直接送到客户办公室,家中和手中的金融服务系统。网络银行是一种崭新的网上金融系统。它突破实物媒介等传统的空间与时间上的局限性,缩短了客户与银行的距离,为用户提供全方位、全天候、便捷、实时的快捷金融服务。网络银行是新生的事物,它是网络发展的必然结果,是电子商务发展的需要,同时也是自身发展并取得竞争优势的需要。 银行系统网络的建设方案   摘要: 银行系统网络是银行运营信息系统的基础。网络平台将信息交换、安全防护、安全管理和监控有机结合起来,贯穿整个信息系统的所有层次,是系统正常运转的重要保障。 关键词:DDN专线 ,CIDR子网划分 ,网络拓扑,边界网关协议(BGP); 一、课程设计目的 课程设计的目的,实际上是为了让学生更深入的掌握计算机网络的核心内容,实现理论与实践相结合的教学目的,让学生能用具体的实践成果来体现对理论知识掌握的程度,有利于学生提高计算机网络方面的实践能力和加深计算机网络理论知识的理解。其具体来讲,安排计算机网络课程设计的目的主要有两个:一是引导学生将书本上抽象的概念和具体实现技术结合起来,使学习深化;二是消除学生对计算机网络理论知识的神秘感,调动学生学习的积极性与主动性,进而锻炼解决实际问题的能力。 通过这次课程设计,学生应该能加深对网络基本知识的理解,全面的了解DDN专线,CIDR子网划分的具体内容和应用。通过网络拓扑的构建,加深对网络七层结构的理解。 课程设计是以分组的形式进行的,各成员之间应该学会互相合作,分工细致,努力完成各自的任务,把课程设计尽量做得完善。真正达到学有所得的目的。 二、设计分析 2.1 需求分析 近年来,信息化和网络化迎来了飞速的发展。上网设备的普及,以及网络提供的高效的资源和服务,网络已经渗透到了我们生活的方方面面。在当今的时代,计算机网络已经对社会的进步产生了深刻并且深远的影响。随着Internet的普及应用,商业银行开始驶上网络快车道,银行经营方式也呈现了网络化趋势。随着以因特网技术为核心的现代计算机网络技术在银行业的应用与推广,银行的服务效率和功能得到了
0、试述采用E-R方法进行数据库概念设计的过程。 答:采用E-R方法进行数据库概念设计,可以分成3步进行:首先设计局部E-R模式,然后把各局部E-R模式综合成一个全局的E-R模式,最后对全局E-R模式进行优化,得到最终的E-R模式,即概念模式。 1、某大学实现学分制,学生可根据自己情况选课。每名学生可同时选修多门课程,每门课程可由多位教师主讲;每位教师可讲授多门课程。其不完整的E-R图如图1所
近期在做一个业务系统的分析和数据模型设计,工作这几年也做过好几个项目的数据库模型的设计,期间也算是积累了一定的经验吧,这次有机会就写写我的数据库模型设计过程与方法。 在数据库设计中,设计的目标就是要建立E-R图(实体-关系图),在PowerDesigner中就是要建立概念模型或者逻辑模型。既然是实体-关系图,所以整个建模的核心就是围绕建立“实体”对象和找到实体之间的“关系”。实体分为两部分:标识...
银行业务管理系统是一个复杂的系统,需要考虑到许多方面的因素,包括安全性、数据的完整性、可靠性等。以下是一些数据库系统设计的建议: 1. 数据库结构设计银行业务管理系统需要存储大量的客户信息、账户信息、交易记录等数据,因此需要设计一个合理的数据库结构来存储这些数据。可以根据实际需求设计多个表,并建立适当的关系,以便进行数据的查询和管理。 2. 数据库安全性设计银行业务管理系统需要保护客户的隐私和数据的安全。为了确保数据库的安全性,可以采用以下措施: - 设计一个严格的用户权限管理系统,限制用户对数据库的访问和操作权限; - 使用加密技术来保护敏感信息的安全; - 定期备份数据库,以便在数据丢失或损坏的情况下进行恢复。 3. 数据库性能设计银行业务管理系统需要支持高并发和快速的数据查询和操作。为了提高数据库性能,可以采用以下措施: - 使用索引优化查询性能; - 设计合理的表结构,以便快速查询和操作数据; - 使用缓存技术来提高数据访问速度。 4. 数据库可扩展性设计银行业务管理系统需要支持不断增长的数据,因此需要设计一个可扩展的数据库系统,以便随着业务需求的增长而扩展数据库。 总之,银行业务管理系统的数据库系统设计需要考虑到多个方面的因素,包括安全性、性能、可扩展性等,以便为用户提供高质量的服务。