银行核心业务系统案例_第1页
银行核心业务系统案例_第2页
银行核心业务系统案例_第3页
银行核心业务系统案例_第4页
银行核心业务系统案例_第5页
已阅读5页,还剩53页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、银行核心业务系统案例现有一商业银行需要用计算机完成其核现有一商业银行需要用计算机完成其核心业务系统心业务系统完成任务的步骤准备工作准备工作需求分析需求分析 限定业务范围限定业务范围 业务流程及数据调查业务流程及数据调查 建立模型建立模型 物理实现物理实现 测试、运行与维护测试、运行与维护需求分析-业务限定业务限定业务限定:业务限定: 存款账户的开户、存款、取款、行内转账、存款账户的开户、存款、取款、行内转账、挂失、销户;挂失、销户; 存款及客户信息的查询和统计。存款及客户信息的查询和统计。开户业务流程开户业务流程: 用户填写基本信息 根据用户身份证号查询该用户是否已经是本行客户 如果不是,先登

2、记基本信息,再开户。 如果是,则直接开户。 开户:确定存款账户类型及金额;填写账户相关信息;用户预留密码;打印存折或发卡开户需要数据项客户身份证编号客户身份证编号 客户姓名客户姓名客户所在城市客户所在城市联系联系 性别性别 职业职业 帐号帐号开户日期开户日期账户余额账户余额账户类型账户类型银行操作人员银行操作人员开户银行分支机构开户银行分支机构存款业务流程存款业务流程 用户提供账号(通过卡或存折)和存款数额信息 查询指定账号是否存在,如果不存在,则提示错误并终止业务;否则继续。 收取相应数量的现金,更改相应账户的余额,记录本次业务明细信息。存款数据项 帐号帐号 存款日期 存款额 账户余额 银行

3、操作人员取款业务流程取款业务流程: 用户提供账户,输入密码,取款数额 查询指定账号是否存在,如果不存在,则提示错误并终止业务;否则继续。 查询用户输入的密码与系统预留密码是否一致,如果不一致,则重新输入密码;否则继续。 查询指定账户是否为正常账户,是则继续,否则提示错误并终止业务。 查询指定账户的余额是否足够支取,如果不够,则提示错误并终止业务;否则继续。 给用户支取相应数量的现金,更改相应账户的余额,记录本次业务明细信息。取款数据项 帐号帐号 取款日期 取款额 账户余额 银行操作人员行内转账业务流程行内转账业务流程: 用户提供转出账户,输入密码、对方账户和转账数额信息 查询上述指定账号是否都

4、存在,如果任一个账户不存在,则提示错误并终止业务;否则继续。 查询用户输入的密码与系统预留密码是否一致,如果不一致,则提示重新输入密码;否则继续。 查询转出账户是否为正常账户,是则继续,否则提示错误并终止业务。 查询转出账户的余额是否足够转账,如果不够,则提示错误并终止业务;否则继续。 更改转出账户与对方账户的余额,记录本次业务明细信息。行内转账数据项 转出帐号帐号 对方账号 转账金额 转账日期 银行操作人员其它业务流程其他业务流程请同学们讨论 挂失 销户 查询余额、交易明细需要哪些数据项?需求数据汇总开户:客户身份证编号 ,客户姓名,客户所在城市 ,联系 ,性别 ,职业 、 帐号 ,开户日期

5、,账户余额,账户类型,银行操作人员,开户银行分支机构存款 :帐号 ,存款日期,存款额,账户余额,银行操作人员取款:帐号 ,取款日期, 取款额,账户余额,银行操作人员转账:转出帐号 ,对方账号,金额 ,转账日期,银行操作人员销户:帐号 ,账户余额,销户日期,账户状态挂失:帐号 ,挂失日期,账户状态客户查询:账号,余额,存取款历史(时间,业务类型,发生额,当时余额)问题这些业务数据代表的现实世界如何在计算机内表示? 用几张表存储?数据模型 在数据库中用数据模型这个工具来抽象、表示和处理抽象、表示和处理现实世界中的数据和信息。通俗地讲数据模型就是现实世界的模拟。 数据模型应满足三方面要求能比较真实地

6、模拟现实世界能比较真实地模拟现实世界容易为人所理解容易为人所理解 便于在计算机上实现便于在计算机上实现这三方面的要求是否很容易都满足?数据模型层次(1) 概念模型概念模型 也称信息模型也称信息模型按用户的观点对数据和信息建模。按用户的观点对数据和信息建模。(2) 结构模型结构模型 按计算机系统的观点对数据建模按计算机系统的观点对数据建模。主要包括网状模型、层次模型、关主要包括网状模型、层次模型、关系模型,系模型, 面向对象模型等。面向对象模型等。信息世界信息世界概念化形式化概念数据模型结构数据模型现实世界计算机世界面向用户面向计算机客观对象的抽象过程概念模型中的基本概念 (1) 实体(Enti

7、ty) 客观存在并可相互区别的事物称为实体。(2) 属性(Attribute) 实体所具有的某一特性称为属性。一个实体可以由若干个属性来刻画。(3) 域(Domain) 属性的取值范围称为该属性的域。 (4) 超码与侯选码、主码唯一标识实体的属性集称为超码。唯一标识实体的最小属性集称为侯选码。根据需要,选择一个候选码作为主码。主属性:包含在任意一个候选码中的属性。 非主属性概念模型中的基本概念(续) 实体型(Entity Type)与实体集(Entity Set) 联系(Relationship) 反应实体集之间的关联。一对一联系(1:1) 银行和正行长之间的联系 一对多联系(1:n) 客户和

8、账户之间的联系 多对多联系(m:n) 客户和银行之间的联系E-R图实体型(或实体集) 用矩形表示,矩形框内写明实体名。属性 用椭圆形表示,并用无向边将其与相应的实体连接起来;候选码:属性下加下划线客户客户身份证号身份证号性别性别姓名姓名出生日期E-R图支行支行管理管理行长行长111:1联系联系客户客户服务服务银行银行mnm:n联系联系支行支行隶属隶属存款账户存款账户1n1:n联系联系案例 E-R图m1拥有拥有姓名姓名身份身份证号证号电话电话账号账号类类型型余余额额状状态态开户日期开户日期客户客户存款账户存款账户职业职业对应对应1n金额金额类型类型日期日期名称名称编码编码银行分银行分支机构支机构

9、性别性别城市城市经手经手人人管理管理n1交易交易对方对方账号账号经手经手人人逻辑模型关系模型 银行表 客户表属性名含义类型长度要求Branch_id机构编码字符4主码Branch_name机构名称变长字符40非空属性名含义类型长度要求Customer_id身份证号字符18主码Cust_name姓名变长字符20非空Cust_phone电话变长字符13Cust_gender性别字符1“M”男”F“女Cust_job职业变长字符30Cust_city所在城市变长字符30账户表属性名含义类型长度要求Customer_id身份证号字符18外码Branch_id机构编码字符4外码Account_no账号字

10、符8主码balance余额数值14,2build_date开户日期日期10Acct_type账户类型字符1“0”活期,”数字“表示定期月数status账户状态字符1”0“正常,”1”挂失,”2“销户Suspend_date挂失日期日期Close_date销户日期日期Account_pwd密码字符6存、取款、转账明细表deposit属性名含义类型长度要求Serial_no流水号数值10,0主码Account_no账号字符8外码Oper_date发生日期日期amount金额数值11,2balance余额数值11,2oper_type类型字符1“C”存款”Q“取款”S“转入”Z“转出Account_

11、vs往来账号字符8外码Staff_id经手人字符18外码银行职员表属性名含义类型长度要求staff_id职员编号字符18主码Staff_name姓名变长字符15Branch_id机构编码字符4Staff_role职位字符10staff_pwd密码字符15二维表(或关系)元组属性主码:customer_id关系的完整性约束新增一个客户,身份证号 可以不填吗?身份证号 可以重复吗? 实体完整性(主属性非空) 客户的性别栏可以填写什么? 用户定义的完整性账户表中customer_id栏是否可以出现一个在客户表customer_id栏中不存在的值? 参照完整性外码Customer的主键?的主键?Acc

12、ount的主键?的主键? 注意:一个客户可以有注意:一个客户可以有多个账号多个账号参照完整性学号学号姓名姓名性别性别专业号专业号年龄年龄801张三张三女女0119802李四李四男男0120803王五王五男男0120804赵六赵六女女0220805钱七钱七男男0219专业号专业号专业名专业名01信息信息02数学数学03计算机计算机外码的取值:外码的取值:或者取空值或者取空值或者等于它引用的主码的一个值。或者等于它引用的主码的一个值。关系操作 类型 查询、 增加、 删除、 修改 语言SQL查询操作找出成都的客户找出成都的客户-选择选择查看所有客户的身份证号和姓名查看所有客户的身份证号和姓名-投影投

13、影查看所有客户的身份证号、姓名和存款账户信息查看所有客户的身份证号、姓名和存款账户信息-连接连接连接举例学号计算机会计学号金融000180900001860002769800026600038870000390rsR.学号计算机会计S.学号金融000180900001860002769800026600038870000390学号计算机会计金融000180908600027698660003887090等值连接自然连接SQL概述 SQL(Structured Query Language ) 是关系数据库标准语言,最早由 IBM 公司研制,并在其SYSTEM R系统中实现。 SQL 标准: S

14、QL-86 (ANSI 1986) (ISO 1987) SQL-89 (ANSI 1989) SQL-92 or SQL2 (ANSI 1992) SQL-99 or SQL3 (ANSI 1999) SQL2003SQL命令动词有关sql语句的说明 SQL是大小写无关的 每个SQL语句用半角分号“;”结束 在SQL语句中字符数据用半角单引号“ ”括起ORACLE SQL中常用基本数据类型 字符型字符型 char(n) 固定长度字符串 varchar2(n) 变长变长长度字符串 数值型数值型 Int 整数 number(p,d) 小数,p为有效数位,d为小数位数。 日期时间型 date. 日

15、期型(4位年)。一般格式: yyyy-mm-dd 例如: 2012-1-27定义基本表CREATE TABLE ( , , );常用完整性约束条件 常用列级完整性约束条件 NOT NULL PRIMARY KEY 仅适用于单属性主码 UNIQUE CHECK( ) 定义域 常用表级完整性约束条件 PRIMARY KEY(主码) CHECK (条件) FOREIGN KEY (外码) REFERENCES 表名(与外码对应的主码) UNIQUE(属性)创建系统中的表 Customer表CREATE TABLE customer ( cust_id CHAR(18) primary key, cu

16、st_name varCHAR2(20) not null,cust_city varchar2(30) ,cust_phone varCHAR2(13),cust_gender CHAR(1) ,cust_job varCHAR2(30); ACCOUNT表 查看表的结构向表中添加数据插入数据:向指定表中插入一条或多条元组;INSERT INTO ( ) VALUES ( );INTO子句子句属性列的顺序可与表定义中的顺序不一致可以只指定部分属性列(必须包含主属性)如果不指定属性列:表示要插入的是一条完整的元组,且属性列顺序与表定义中的顺序一致(不建议使用)练习:插入一个客户及其开户数据SQ

17、L查询 查询语句的一般格式:查询语句的一般格式:SELECT FROM , WHERE GROUP BY HAVING ORDER BY ASC|DESC ; 各子句含义 SELECT子句:指定要显示的属性列表达式(即结果关系的属性)子句:指定要显示的属性列表达式(即结果关系的属性) FROM子句:指定查询需要的表子句:指定查询需要的表 WHERE子句:指定查询条件子句:指定查询条件 GROUP BY子句:分组统计。对表中满足查询条件的行按指定列分子句:分组统计。对表中满足查询条件的行按指定列分组,值相等的行为一个组。通常会在每组中使用集函数(即完成统计组,值相等的行为一个组。通常会在每组中使

18、用集函数(即完成统计功能的函数)。功能的函数)。 HAVING短语:筛选出满足指定条件的组短语:筛选出满足指定条件的组 ORDER BY子句:对查询结果按指定顺序排序子句:对查询结果按指定顺序排序 简单查询简单查询 从表Customer中查询Cust_id,cust_name。 select cust_id,cust_name from customer; 查询表Customer的全部数据。 “*”表示表中所有字段。 SELECT * FROM Customer 查询表Account中有开户记录的客户身份证号。 SELECT DISTINCT cust_id FROM account条件查询

19、条件查询 查询”成都“的客户信息select * from customer where cust_city=成都; 表Customer中查询”成都”的“教师”的信息select * from customer where cust_city=成都 and cust_job=教师 查询余额大于100000或小于20000的帐户信息select * from account where balance1000条件查询 从表account中查询balance在2000元到10000元记录。select * from account where balance between 20000 and 1

20、00000从表customer中查询cust_job是教师工人工程师的记录。 select * from customer where cust_job in (教师,工程师,工人)从表Customer中查询Cust_phone不为空的记录。select * from customer where cust_phone is not null统计查询 函数名称功 能AVG按列计算平均值SUM按列计算值的总和COUNT按列统计个数MAX求一列中的最大值MIN求一列中的最小值统计查询 计算表Account中所有帐户的最高Balance、最低balanceselect max(balance) 最高

21、余额 ,min(balance) 最低余额 from account计算表Customer 成都的客户数。select count(*) from customer where cust_city=成都统计Account中有开户记录的客户数。select count(distinct cust_id) from account 思考:这里的DISTINCT为什么不能省略? 分组查询 关键:确定分类字段、汇总字段, 汇总函数 查询每个客户的帐户数。select cust_id,count(*) as 开户数 from account group by cust_id; 查询每个客户的帐户余额合计

22、。select cust_id,sum(balance) as 余额合计 from account group by cust_id;查询结果排序 从表customer查询结果按cust_city升序排序,cust_city相同的按照cust_job降序排序。select * from customer order by cust_city, cust_job desc多表连接查询 连接 From 表1,表2 where 连接条件 From子句中: 表1 join 表2 on 连接条件 表1 natural join 表2连接查询 查询每个账户的账号、客户姓名和账户余额。select cust_name,account_no,balance from customer,account where customer.cust_id=account.cust_id;注意:对于两个表都有的同名字段,必须用表名或别名加以限制。select cust_name,account_no,balance from customer join account

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论