毕业设计(论文)-ATM自动取款机系统数据库的设计与实现.doc_第1页
毕业设计(论文)-ATM自动取款机系统数据库的设计与实现.doc_第2页
毕业设计(论文)-ATM自动取款机系统数据库的设计与实现.doc_第3页
毕业设计(论文)-ATM自动取款机系统数据库的设计与实现.doc_第4页
毕业设计(论文)-ATM自动取款机系统数据库的设计与实现.doc_第5页
已阅读5页,还剩40页未读 继续免费阅读

下载本文档

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

文档简介

小毕出品 ATM自动取款机系统数据库的设计与实现摘 要二十世纪末,随着金融服务的迅速发展,银行自动柜员机,ATM已经发展成了各大银行金融服务战略中的重要一环,同时,银行提款机系统也经历了持续的更新换代,为广大用户提供了更加便捷和人性化的服务。为了探索ATM的发展方向,提高ATM的工作效率,通常采取模拟ATM系统,注意承上启下。模拟ATM系统就是对ATM操作系统基本功能在个人PC上及主流操作平台上的编程实现,其开发主要包括后台数据库的建立和维护以及前端应用程序的开发制作两个方面。对于前者要求建立起数据一致性和完整性强、数据安全性好的数据库。而对于后者则要求应用程序功能完备,易使用,界面友好等。 数据库设计主要完成系统分析及数据库构建,系统分析包括需求分析、功能分析。数据库构建包括数据库数据流图、数据字典、E-R模型等。采用语义数据模型(E-R)给出系统的信息模型,从而得出关系模型,完成数据库结构的确定、表的创建等。 关键词:E-R模型;关系模型;数据流图;数据字典;关系模型ABSTRACT The twentieth century, with the rapid development of financial services, banking ATM has evolved into major banks in the financial services strategy an important part of the same time, system ATM machines have also experienced ongoing replacement, for the majority of users provide a more convenient and personalized services. Simulated ATM system is right on the operating system on your PC operating platforms and the mainstream programming, which mainly include database creation and maintenance of front-end application development and production of two aspects. The former required strong data consistency and integrity of the data with good security. For the latter application powerful, easy to use, friendly interface and so on. Database design was completed for system analysis and database construction, system analysis, including requirements analysis, functional analysis.Database, including database building holds data flow diagram, data dictionary, ER model.Using semantic data model (ER) gives the system information model to arrive at the relational model, complete database structure determination to create such a table.Key words: E-R model;relational model;data flow diagrams;data dictionary tables;Relational model目 录第1章 绪论 1.1 课题背景11.2 国内外关于该论题的研究现状和发展趋势21.3 本文内容安排2第2章ATM自动取款机系统简介与需求分析 2.1 软件概述32.1.1 项目介绍32.1.2 产品环境介绍32.1.3 系统结构42.1.4 角色52.1.5 假定和约束条件52.2 功能需求52.2.1 语言选择62.2.2登录功能62.2.3 余额查询功能62.2.4 行内转账功能82.2.5 取款功能82.2.6 取卡92.2.7 修改密码102.2.8 存款112.2.9 交易记录11第3章 数据库系统简介 3.1 数据库的定义133.2 数据库的发展133.2.1 数据管理的诞生133.2.2 关系数据库的由来143.2.3 结构化查询语言 (SQL)143.2.4 数据库巨人的诞生甲骨文公司(Oracle)143.2.5面向对象数据库153.2.6 数据管理的变革153.3 数据库发展阶段153.3.1 人工管理阶段163.3.2.文件系统阶段163.3.3.数据库系统阶段163.4 未来发展趋势173.5 基本属性173.5.1 基本结构173.5.2 主要特点173.5.3 种类18第4章ATM自动取款机系统数据库设计 4.1数据库设计的需求分析214.2 数据库概念设计224.3数据库逻辑设计234.4 建立数据库274.5连接数据库:使用技术 Hibernate36第5章总结与展望 参考文献38致 谢39第1章 绪论1.1 课题背景随着科技发展和社会进步,尤其是计算机大范围的普及,计算机应用逐渐由大规模科学计算的海量数据处理转向大规模的事务处理和对工作流的管理,这就产生了以台式计算机为核心,以数据库管理系统为开发环境的管理信息系统在大规模的事务处理和对工作流的管理等方面的应用,特别是在银行自动存取款帐目管理之中的应用日益收到人们的关注。 数据库是数据管理的最新技术,是计算机科学的重要分支。十余年来,数据库管理系统已从专用的应用程序包发展成为通用的系统软件。由于数据库具有数据结构化、最低冗余度、较高的程序与数据独立性、易于扩充、易于编制程序等特点,较大的信息系统都是建立在数据库设计之上的。目前,对数据库各种模型的研究以及理论上的探讨斗还在蓬勃发展,其应用也从一般管理扩大到计算机辅助设计、人工智能以及科技计算等领域。近年来我国信息产业发展迅速,手工管理方式在银行帐目管理等需要大量事务处理的应用中已显得不相适应,采用IT技术提高服务质量和管理水平势在必行。目前,对外开放必然趋势以使银行业直面外国银行巨头的直接挑战,因此,银行必须提高其工作效率,改善其工作环境,直面外国的挑战。这样,帐户管理的信息化势在必行。在传统的银行帐户管理中,其过程往往是很复杂的,繁琐的,帐户管理以入帐和出帐两项内容为核心,在此过程中又需要经过若干道手续,因为整个过程都需要手工操作,效率十分低下,且由于他们之间关联复杂,统计和查询的方式各不相同;且会出现信息的重复传递问题。因此过程必须实现信息化。我们的系统开发的整体任务是实现银行存取款业务管理的系统化、规范化、自动化和智能化,从而达到提高银行管理效率的目的。 本系统是一个模拟ATM自动取款操作系统的金融项目,具有取款、查询账户、转账模块、修改密码、国际化、语音提示等功能,采用web技术,MVC框架进行开发,加入安全加密技术来保障银行交易的安全,加入语音提示、国际化技术提高用户的体验。 本文主要以数据库设计及实现为主要目的,主要完成系统分析及数据库构建,系统分析包括需求分析、功能分析。数据库构建抱括数据库数据流图、数据字典、E-R模型等。采用语义数据模型(E-R)给出系统的信息模型,从而得出关系模型,完成数据库结构的确定、表的创建等。数据库设计是系统能否设计成功的关键,开发工具为SQL Server2000,采用结构化设计思想完成数据库的设计。1.2 国内外关于该论题的研究现状和发展趋势目前ATM的行业资源集中度较高。在中国ATM市场上,中国工商银行、中国农业银行、中国银行、中国建设银行、交通银行、中国邮政储蓄银行等六大银行由于网点多、客户群大、资金雄厚,拥有大部分的ATM市场份额,约占中国ATM市场总量的85%左右。已安装运行ATM机最多的是建设银行和工商银行,而ATM操作系统比较好的有工商银行和招商银行等。中国的ATM人均拥有量与市场成熟的德国、美国、韩国等国家相比还有很大差距。甚至与世界平均水平相比还有明显的差距,国内ATM市场增长空间巨大。从区域分布来看,国内ATM的分布极不均匀。我们的系统开发的整体任务是实现银行存取款业务管理的系统化、规范化、自动化和智能化,从而达到提高银行管理效率的目的。1.3 本文内容安排本文章节安排如下:第1章 绪论简单介绍了ATM自动取款系统的背景及数据库的发展。第2章 主要介绍ATM自动取款系统及需求分析。第3章 对数据库系统及发展进行简单介绍。第4章 ATM自动取款系统的数据库设计与实现。第5章 总结与展望。第2章ATM自动取款机系统架构及需求分析ATM自动取款机系统的用户主要是银行的广大持卡人,大多都具有使用ATM经验。另外一部分的用户是银行工作人员,大致分为两类:一类是业务人员。其依赖本系统管理ATM交易参数,统计交易信息,打印各类汇总报表,根据ATM提示及时配款。另一类是银行技术人员。其对本系统进行升级,维护工作。我们设计的模拟ATM系统需要同时满足持卡人和银行工作人员的需求,设计人性化的界面和高效率的操作流程。2.1 软件概述2.1.1 项目介绍 本项目是一个基于web的模拟ATM自动操作系统的软件。2.1.2 产品环境介绍 本软件是搭建在struts、hibernate、spring框架上的一个系统。 Struts最早是作为Apache Jakarta项目的组成部分,项目的创立者希望通过对该项目的研究,改进和提高JSP 、Servlet、标签库以及面向对象的技术水准。Struts这个名字来源于在建筑和旧式飞机中使用的支持金属架。这个框架之所以叫Struts,是为了提醒我们记住那些支撑我们房屋,建筑,桥梁,甚至我们踩高跷时候的基础支撑。这也是一个解释Struts在开发Web应用程序中所扮演的角色的精彩描述。当建立一个物理建筑时,建筑工程师使用支柱为建筑的每一层提供支持。同样,软件工程师使用Struts为业务应用的每一层提供支持。它的目的是为了帮助我们减少在运用MVC设计模型来开发Web应用的时间。我们仍然需要学习和应用该架构,不过它将可以完成其中一些繁重的工作。如果想混合使用Servlets和JSP的优点来建立可扩展的应用,Struts是一个不错的选择。 Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库。 Hibernate可以应用在任何使用JDBC的场合,既可以在Java的客户端程序使用,也可以在Servlet/JSP的Web应用中使用,最具革命意义的是,Hibernate可以在应用EJB的J2EE架构中取代CMP,完成数据持久化的重任。Spring是一个开源框架,它由Rod Johnson创建。它是为了解决企业应用开发的复杂性而创建的。Spring使用基本的JavaBean来完成以前只可能由EJB完成的事情。然而,Spring的用途不仅限于服务器端的开发。从简单性、可测试性和松耦合的角度而言,任何Java应用都可以从Spring中受益。2.1.3 系统结构图2.1ATM自动取款机操作系统功能图 ATM自动取款机有以下功能: 登录功能:用户输入账号密码登录。 取款功能:用户对自己账户下的人民币、港元、美元、其它账户下的余 额进行查询。 查询功能:用户对自己账户下的人民币、港元、美元、其它账户下的余额进行查询。 转账功能:用户将自己账户下不大于余额的钞票取出。 修改密码功能:用户修改账号所对应的密码。 取卡功能:用户从系统中注销。 另外,还需将系统进行国际化,只是中文和英文两种语言的现实。2.1.4 角色 用户 :在ATM系统上交易的银行账户拥有者。认为一个持卡人就是一个储户。2.1.5 假定和约束条件 本软件的主要约束是时间期限。 在经费、开发人员及设备方面没有太多消耗;但要在一定的环境下运行,即要有基本的运行设备,设备的要求为一般的PC机即可 2.2 功能需求 本系统的用例图为:图2.2ATM自动取款机操作系统用例图2.2.1 语言选择 图2.3语言选择用例图该用例图描述了用户语言选择模块的参与者和事件流,参与者是使用自动取款机取款的用户。事件流是选择“中文”或者“English”,系统将根据用户所选显示本地化信息。 2.2.2登录功能图2.4用户登录用例图该用例图描述了用户登陆模块的参与者、前置条件、后置条件和事件流。参与者是使用自动取款机取款的用户。首先用户选择语言,然后用户输入账号密码登录,成功后,登录到系统中。事件流是用户选择“中文”或者“English”,系统将根据用户所选显示本地化信息。如果用户没有输入用户名或密码,则显示错误提示信息:“用户名密码不允许为空”;如果用户输入非法的用户名或密码,则显示错误提示信息:“用户名或密码不正确”。 2.2.3 余额查询功能图2.5余额查询用例图该用例图描述了用户余额查询模块的参与者、前置条件、后置条件和事件流。参与者是使用自动取款机取款的用户,用户可以对自己账户下的人民币、港元、美元、其它账户下的余额进行查询。首先用户登陆到系统中,用户在自身账户下的人民币、港元、美元、其它账户四种账户中选择一种,然后选定账户在用户自身账户下的余额,系统显示用户选定账户在用户自身账户下的余额,如果查询过程发生错误,则显示:“操作失败!”。图2.6ATM自动取款机余额查询活动图2.2.4 行内转账功能图2.7行内转账用例图该用例图描述了用户进行行内转帐模块的参与者、前置条件、后置条件和事件流。参与者是使用自动取款机取款的用户,用户可以将自己账户下的不大于余额的金额转到开户银行的其它账户上。首先用户登陆到系统中,进入转帐页面,用户两次输入要转入的账号,然后输入要转入的金额,点击确定,转账成功,系统将用户自身账户下的余额变成原有余额减去转账金额,被转入账户的余额变成原有余额加上现有转账金额。如果转账金额大于账户内的余额,则显示:“操作失败”;如果转入的账号不存在,则显示:“操作失败”;如果两次输入的转入账号不相同,则显示:“两次账号不相同,请重新输入!”。2.2.5 取款功能 图2.8用户取款用例图该用例图描述了用户取款模块的参与者、前置条件、后置条件和事件流。参与者是使用自动取款机取款的用户,用户将自己账户下不大于余额的钞票取出。首先用户登陆到系统中,进入取款页面,用户输入取款金额,点击取款,系统首先判断卡是否为本行的借记卡,然后系统修改数据库余额,系统显示“操作成功”。如果转账金额大于账户内的余额,则显示:“操作失败”;如果转入的账号不存在,则显示:“操作失败”;如果两次输入的转入账号不相同,则显示:“两次账号不相同,请重新输入!”。图2.9ATM自动取款机取款活动图2.2.6 注销 图2.10用户注销用例图该用例图描述了用户注销银行卡模块的参与者、前置条件、后置条件和事件流。参与者是使用自动取款机取款的用户,用户从系统中注销。首先用户登陆到系统中,进入注销页面,用户点击注销后,系统注销用户。如果注销出现错误,则显示:“操作失败”。2.2.7 修改密码图2.11用户修改密码用例图该用例图描述了用户修改密码模块的参与者、前置条件、后置条件和事件流。参与者是使用自动取款机取款的用户,用户修改账号所对应的密码。首先用户登陆到系统中,进入密码修改页面,系统提示用户输入六位旧密码,用户输入六位新密码,用户再次输入六位新密码,然后系统判断两次输入的新密码是否一致,新密码是否为六位,判断旧密码是否正确后,系统修改密码为新密码。如果两次输入的新密码不一致,则显示:“两次输入的密码不一致,请重新输入!”;如果修改的密码不为六位,则显示:“密码长度不为六位,请重新输入!”;图2.12ATM自动取款机修改密码活动图2.2.8 存款用户存款模块主要描述了事件的参与者、前置条件、后置条件和事件流。参与者是使用自动取款机取款的用户,用户存入不大于10000元的金额。首先用户登陆到系统中进入到存款页面,用户输入存款金额,点击确定,系统首先判断卡是否为本行的借记卡,然后修改数据库余额,系统显示“操作成功”。2.2.9 交易记录交易记录模块主要描述了事件的参与者、前置条件、后置条件和事件流。参与者是使用自动取款机取款的用户,用户查询用的交易记录。首先用户登陆到系统中进入到查询页面,用户在主界面选择交易记录,系统判断卡是否为本行的借记卡,查询数据库交易记录表,系统显示交易记录。第3章 数据库系统简介 数据库技术从20世纪60年代中期产生到今天仅仅三十多年的历史,已经经历了三代演变,发展了以数据建模和DBMS核心技术为主,内容丰富的一门学科,带动了一个巨大的软件产业DBMS产品及其相关工具和解决方案。 3.1 数据库的定义 数据库(Database)是按照数据结构来组织、存储和管理数据的仓库,它产生于距今五十年前,随着信息技术和市场的发展,特别是二十世纪九十年代以后,数据管理不再仅仅是存储和管理数据,而转变成用户所需要的各种数据管理的方式。数据库有很多种类型,从最简单的存储有各种数据的表格到能够进行海量数据存储的大型数据库系统都在各个方面得到了广泛的应用。 J.Martin给数据库下了一个比较完整的定义:数据库是存储在一起的相关数据的集合, 这些数据是结构化的,无有害的或不必要的冗余,并为多种应用服务;数据的存储独立于使用它的程序;对数据库插入新数据,修改和检索原有数据均能按一种公用 的和可控制的方式进行。当某个系统中存在结构上完全分开的若干个数据库时,则该系统包含一个“数据库集合”。 数据库发展史数据库技术从诞生到现在,在不到半个世纪的时间里,形成了坚实的理论基础、成熟的商业产品和广泛的应用领域,吸引越来越多的研究者加入。数据库的诞生和发展给计算机信 息管理带来了一场巨大的革命。三十多年来,国内外已经开发建设了成千上万个数据库,它已成为企业、部门乃至个人日常工作、生产和生活的基础设施。同时,随着应用的扩展与深入,数据库的数量和规模越来越大,数据库的研究领域也已经大大地拓广和深化了。30年间数据库领域获得了三次计算机图灵奖(C.W. Bachman,E.F.Codd, J.Gray),更加充分地说明了数据库是一个充满活力和创新精神的领域。3.2 数据库的发展3.2.1 数据管理的诞生 数据库的历史可以追溯到五十年前,那时的数据管理非常简单。通过大量的分类、比较和表格绘制的机器运行数百万穿孔卡片来进行数据的处理,其运行结果在纸上打印出来或者制成新的穿孔卡片。而数据管理就是对所有这些穿孔卡片进行物理的储存和处理。 数据库系统的萌芽出现于60 年代。当时计算机开始广泛地应用于数据管理,对数据的共享提出了越来越高的要求。传统的文件系统已经不能满足人们的需要。能够统一管理和共享数据的数据库管理系统(DBMS)应运而生。数据模型是数据库系统的核心和基础,各种DBMS 软件都是基于某种数据模型的。所以通常也按照数据模型的特点将传统数据库系统分成网状数据库、层次数据库和关系数据库三类。 3.2.2 关系数据库的由来 网状数据库和层次数据库已经很好地解决了数据的集中和共享问题,但是在数据独立性和抽象级别上仍有很大欠缺。用户在对这两种数据库进行存取时,仍然需要明确数据的存储结构,指出存取路径。而后来出现的关系数据库较好地解决了这些问题。3.2.3 结构化查询语言 (SQL) 1974年,IBM的Ray Boyce和Don Chamberlin将Codd关系数据库的12条准则的数学定义以简单的关键字语法表现出来,里程碑式地提出了SQL(Structured Query Language)语言。SQL语言的功能包括查询、操纵、定义和控制,是一个综合的、通用的关系数据库语言,同时又是一种高度非过程化的语言,只要求用户指出做什么而不需要指出怎么做。SQL集成实现了数据库生命周期中的全部操作。SQL提供了与关系数据库进行交互的方法,它可以与标准的编程语言一起工作。自产生之日起,SQL语言便成了检验关系数据库的试金石,而SQL语言标准的每一次变更都指导着关系数据库产品的发展方向。然而,直到二十世纪七十年代中期,关系理论才通过SQL在商业数据库Oracle和DB2中使用。3.2.4 数据库巨人的诞生甲骨文公司(Oracle) 1976年IBM E.F.Codd发表了一篇里程碑的论文“R系统:数据库关系理论”,介绍了关系数据库理论和查询语言SQL。Oracle的创始人Ellison非常仔细地阅读了这篇文章,被其内容震惊,这是第一次有人用全面一致的方案管理数据信息。作者 E.F.Codd十年前就发表了关系数据库理论,并在IBM 研究机构开发原型,这个项目就是R系统,存取数据表的语言就是SQL。Ellison看完后,敏锐意识到在这个研究基础上可以开发商用软件系统。而当时大多数人认为关系数据库不会有商业价值。Ellison认为这是他们的机会,他们决定开发通用商用数据库系统Oracle,这个名字来源于他们曾给中央情报局做过的项目名。几个月后,他们就开发了Oracle 1.0 。但这只不过是个玩具,除了完成简单关系查询不能做任何事情,他们花相当长的时间才使Oracle变得可用,维持公司运转主要靠承接一些数据库管理项目和做顾问咨询工作。3.2.5面向对象数据库 随着信息技术和市场的发展,人们发现关系型数据库系统虽然技术很成熟,但其局限性也是显而易见 的:它能很好地处理所谓的“表格型数据”,却对技术界出现的越来越多的复杂类型的数据无能为力。九十年代以后,技术界一直在研究和寻求新型数据库系统。但 在什么是新型数据库系统的发展方向的问题上,产业界一度是相当困惑的。受当时技术风潮的影响,在相当一段时间内,人们把大量的精力花在研究“面向对象的数据库系统(object oriented database)”或简称“OO数据库系统”。数年的发展表明,面向对象的关系型数据库系统产品的市场发展的情况并不理想。理论上的 完美性并没有带来市场的热烈反应。其不成功的主要原因在于,这种数据库产品的主要设计思想是企图用新型数据库系统来取代现有的数据库系统。这对许多已经运用数据库系统多年并积累了大量工作数据的客户,尤其是大客户来说,是无法承受新旧数据间的转换而带来的巨大工作量及巨额开支的。另外,面向对象的关系型数据库系统使查询语言变得极其复杂,从而使得无论是数据库的开发商家还是应用客户都视其复杂的应用技术为畏途。 3.2.6 数据管理的变革 二十世纪六十年代后期出现了一种新型数据库软件:决定支持系统(DSS),其目的是让管理者在决策过程中更有效地利用数据信息。二十世纪九十年代,随着基于PC的客户/服务器计算模式和企业软件包的广泛采用,数据管理的变革基本完成。数据管理不再仅仅是存储和管理数据,而转变成用户所需要的各种数据管理的方式。Internet的异军突起以及XML语言的出现,给数据库系统的发展开辟了一片新的天地。3.3 数据库发展阶段 数据库发展阶段大致划分为如下几个阶段: 1.人工管理阶段; 2.文件系统阶段; 3.数据库系统阶段; 4.高级数据库阶段。3.3.1 人工管理阶段50年代中期之前,计算机的软硬件均不完善。硬件存储设备只有磁带、卡片和纸带,软件方面还没有操作系统,当时的计算机主要用于科学计算。这个阶段由于还没有软件系统对数据进行管理,程序员在程序中不仅要规定数据的逻辑结构,还要设计其物理结构,包括存储结构、存取方法、输入输出方式等。当数据的物理组织或存储设备改变时,用户程序就必须重新编制。由于数据的组织面向应用,不同的计算程序之间不能共享数据,使得不同的应用之间存在大量的重复数据,很难维护应用程序之间数据的一致性。这一阶段的主要特征可归纳为如下几点:1.计算机中没有支持数据管理的软件。2.数据组织面向应用,数据不能共享,数据重复。3.在程序中要规定数据的逻辑结构和物理结构,数据与程序不独立。4.数据处理方式批处理。3.3.2.文件系统阶段这一阶段的主要标志是计算机中有了专门管理数据库的软件操作系统(文件管理)。上世纪50年代中期到60年代中期,由于计算机大容量存储设备(如硬盘)的出现,推动了软件技术的 发展,而操作系统的出现标志着数据管理步入一个新的阶段。在文件系统阶段,数据以文件为单位存储在外存,且由操作系统统一管理。操作系统为用户使用文件提 供了友好界面。文件的逻辑结构与物理结构脱钩,程序和数据分离,使数据与程序有了一定的独立性。用户的程序与数据可分别存放在外存储器上,各个应用程序可 以共享一组数据,实现了以文件为单位的数据共享。但由于数据的组织仍然是面向程序,所以存在大量的数据冗余。而且数据的逻辑结构不能方便地修改和扩充,数据逻辑结构的每一点微小改变都会影响到应用程序。由于文件之间互相独立,因而它们不能反映现实世界中事物之间的联系,操作系统不负责维护文件之间的联系信息。如果文件之间有内容上的联系,那也只能由应用程序去处理。 3.3.3 数据库系统阶段 60年代后,随着计算机在数据管理领域的普遍应用,人们对数据管理技术提出了更高的要求:希望 面向企业或部门,以数据为中心组织数据,减少数据的冗余,提供更高的数据共享能力,同时要求程序和数据具有较高的独立性,当数据的逻辑结构改变时,不涉及 数据的物理结构,也不影响应用程序,以降低应用程序研制与维护的费用。数据库技术正是在这样一个应用需求的基础上发展起来的。从文件系统发展到数据库系统,这在信息领域中具有里程碑的意义。在文件系统阶段,人们在信息处 理中关注的中心问题是系统功能的设计,因此程序设计占主导地位;而在数据库方式下,数据开始占据了中心位置,数据的结构设计成为信息系统首先关心的问题, 而应用程序则以既定的书结构为基础进行设计。3.4 未来发展趋势 随着信息管理内容的不断扩展,出现了丰富多样的数据模型(层次模型,网状模型,关系模型,面向对象模型,半结构化模型等),新技术也层出不穷(数据流,Web数据管理,数据挖掘等)。 目前每隔几年,国际上一些资深的数据库专家就会聚集一堂,探讨数据库研究现状,存在的问题和未来需要关注的新技术焦点。3.5 基本属性3.5.1 基本结构 数据库的基本结构分三个层次,反映了观察数据库的三种不同角度。 (1)物理数据层。它是数据库的最内层,是物理存贮设备上实际存储的数据的集合。这些数据是原始数据,是用户加工的对象,由内部模式描述的指令操作处理的位串、字符和字组成。(2)概念数据层。它是数据库的中间一层,是数据库的整体逻辑表示。指出了每个数据的逻辑定义及数据间的逻辑联系,是存贮记录的集合。它所涉及的是数据库所有对象的逻辑关系,而不是它们的物理情况,是数据库管理员概念下的数据库。(3)逻辑数据层。它是用户所看到和使用的数据库,表示了一个或一些特定用户使用的数据集合,即逻辑记录的集合。数据库不同层次之间的联系是通过映射进行转换的。3.5.2 主要特点 (1)实现数据共享。 数据共享包含所有用户可同时存取数据库中的数据,也包括用户可以用各种方式通过接口使用数据库,并提供数据共享。 (2)减少数据的冗余度。 同文件系统相比,由于数据库实现了数据共享,从而避免了用户各自建立应用文件。减少了大量重复数据,减少了数据冗余,维护了数据的一致性。 (3)数据的独立性。 数据的独立性包括数据库中数据库的逻辑结构和应用程序相互独立,也包括数据物理结构的变化不影响数据的逻辑结构。 (4)数据实现集中控制。 文件管理方式中,数据处于一种分散的状态,不同的用户或同一用户在不同处理中其文件之间毫无关系。利用数据库可对数据进行集中控制和管理,并通过数据模型表示各种数据的组织以及数据间的联系。 (5)数据一致性和可维护性,以确保数据的安全性和可靠性。 主要包括:安全性控制:以防止数据丢失、错误更新和越权使用;完整性控制:保证数据的正确 性、有效性和相容性;并发控制:使在同一时间周期内,允许对数据实现多路存取,又能防止用户之间的不正常交互作用;故障的发现和恢复:由数据库管理系 统提供一套方法,可及时发现故障和修复故障,从而防止数据被破坏。 (6)故障恢复。 由数据库管理系统提供一套方法,可及时发现故障和修复故障,从而防止数据被破坏。数据库系统能尽快恢复数据库系统运行时出现的故障,可能是物理上或是逻辑上的错误。比如对系统的误操作造成的数据错误等。3.5.3 种类 数据库通常分为层次式数据库、网络式数据库和关系式数据库三种。而不同的数据库是按不同的数据结构来联系和组织的。 1 数据结构模型 (1)数据结构 所谓数据结构是指数据的组织形式或数据之间的联系。如果用D表示数据,用R表示数据对象之间存 在的关系集合,则将DS(D,R)称为数据结构。例如,设有一个电话号码簿,它记录了n个人的名字和相应的电话号码。为了方便地查找某人的电话号码,将 人名和号码按字典顺序排列,并在名字的后面跟随着对应的电话号码。这样,若要查找某人的电话号码(假定他的名字的第一个字母是Y),那么只须查找以Y开头 的那些名字就可以了。该例中,数据的集合D就是人名和电话号码,它们之间的联系R就是按字典顺序的排列,其相应的数据结构就是DS(D,R),即一个数组。 (2)数据结构种类 数据结构又分为数据的逻辑结构和数据的物理结构。数据的逻辑结构是从逻辑的角度(即数据间的联 系和组织方式)来观察数据,分析数据,与数据的存储位置无关。数据的物理结构是指数据在计算机中存放的结构,即数据的逻辑结构在计算机中的实现形式,所以 物理结构也被称为存储结构。这里只研究数据的逻辑结构,并将反映和实现数据联系的方法称为数据模型。 目前,比较流行的数据模型有三种,即按图论理论建立的层次结构模型和网状结构模型以及按关系理论建立的关系结构模型。 2层次、网状和关系数据库系统 (1)层次结构模型 层次结构模型实质上是一种有根结点的定向有序树(在数学中树被定义为一个无回的连通图)。 下图是一个高等学校的组织结构图。这个组织结构图像一棵树,校部就是树根(称为根结点),各系、专业、教师、学生等为枝点(称为结点),树根与枝点之间的 联系称为边,树根与边之比为1:N,即树根只有一个,树枝有N个。 按照层次模型建立的数据库系统称为层次模型数据库系统。IMS(Information Manage-mentSystem)是其典型代表。 (2)网状结构模型 按照网状数据结构建立的数据库系统称为网状数据库系统,其典型代表是DBTG(Data Base Task Group)。用数学方法可将网状数据结构转化为层次数据结构。 (3)关系结构模型 关系式数据结构把一些复杂的数据结构归结为简单的二元关系(即二维表格形式)。例如某单位的职工关系就是一个二元关系。 由关系数据结构组成的数据库系统被称为关系数据库系统。 在关系数据库中,对数据的操作几乎全部建立在一个或多个关系表格上,通过对这些关系表格的分 类、合并、连接或选取等运算来实现数据的管理。dBASEII就是这类数据库管理系统的典型代表。对于一个实际的应用问题(如人事管理问题),有时需要多 个关系才能实现。用dBASEII建立起来的一个关系称为一个数据库(或称数据库文件),而把对应多个关系建立起来的多个数据库称为数据库系统。 dBASEII的另一个重要功能是通过建立命令文件来实现对数据库的使用和管理,对于一个数据库系统相应的命令序列文件,称为该数据库的应用系统。因此, 可以概括地说,一个关系称为一个数据库,若干个数据库可以构成一个数据库系统。数据库系统可以派生出各种不同类型的辅助文件和建立它的应用系统。第4章ATM自动取款机系统数据库设计4.1数据库设计的需求分析 1、用户登陆l 卡号输入:输入银行卡卡号l 密码输入:输入银行卡密码l 登陆成功提示l 登陆失败提示l 账号不存在l 密码不正确,请重新输入 2、选择账户l 人民币账户l 外币账户 3、取款l 取款金额输入:输入取款金额l 取款成功提示:显示“操作已成功”l 取款失败提示:a) 显示“您的余额不足”b) 显示“取款机款项不足,暂时不能取款,敬请原谅” 4、查询账户l 卡号显示:显示卡号l 卡上余额显示:显示卡上余额 5、修改密码l 新密码输入:输入新的密码l 新密码确认:再次输入新的密码l 密码修改成功提示:显示“您的密码已成功修改”l 密码修改失败提示:a) 实现“两次输入的密码不一致,请重新输入”b) 显示“密码位数不正确,请重新输入” 6、转账l 被转账户卡号输入:输入想要转入金额的卡号l 转账金额输入:输入转入的金额l 转账成功提示:显示“转账已成功”l 转账失败提示:显示转账失败原因 7、存款l 存款金额输入:输入存款金额l 取款成功提示:显示“操作已成功”l 取款失败提示:显示“操作失败” 8、交易记录l 点击交易记录l 显示交易记录列表4.2 数据库概念设计实体关系(Entity-Relationship)图 图4.1系统E-R图4.3数据库逻辑设计各表的设计结构分别如下所示:Table1用户表(User)字段名称字段解释数据类型数据长度备注UserId用户表编号Int主键Name用户姓名Varchar(20)20UserName用户名Varchar(20)20UserEmail用户邮箱Varchar(20)60Type用户类型IntUsereStatus用户状态bitTable2账户信息表(Account)字段名称字段解释数据类型数据长度备注AccountID账户编号Int主键AccountNO账号Varchar(20)20AccountDate开户时间dateAccountBank开户行int外键Client客户编号int外键Balance账户余额Decimal(11.2)11Deficit信用额度Decimal(7.2)7AccountStatus账户状态intTable3银行信息表(Bank)字段名称字段解释数据类型数据长度备注BankID银行编号Int主键BankName银行名称Varchar(20)20BankAddress银行地址Varchae(200)200Level银行级别IntBankTtel联系电话Varchar(13)13Table4账单记录表(bill)字段名称字段解释数据类型数据长度备注BillID账单号Int主键BillAccount账户编号Int外键Period周期datePayment本期还款金额Decimal(7.2)7NewChanger本期消费账单Decimal(7.2)7Inerest利息Decimal(7.2)7Expense费用(取现金)Decimal(7.2)v7Total本期还款金额Decimal(7.2)7Table5城市表(city)字段名称字段解释数据类型数据长度备注CityID城市编号Int主键CityName城市名称Varchae(50)50BelongProvince所属省份int外键Table6信用卡信息表(card)字段名称字段解释数据类型数据长度备注CardID卡表编号Int主键CardNO卡号Varchar(20)2CardBank开卡行int外键BelingAccount账户编号int外键CardDate开卡时间DateCardPassword卡密码Varchar(20)20ValidDate有效期DateEnabled是否激活BitCardStatus卡状态intTable7客户信息表(customer)字段名称字段解释数据类型数据长度备注customerID客户编号Int主键DdentityId身份证Varahar(18)FamilyName姓氏Varahar(20)GivenName性别BitGender出生年月DateBirethday籍贯Varahar(200)Address地址Varahar(20060)Email电子邮箱Varahar(60)Tel电话Varahar(13)Mobile移动电话Varahar(13)Table8挂失表(LossReport)字段名称字段解释数据类型数据长度备注LossReportID挂失编号Int主键LossTime挂失时间DateLossCard卡表编号Int外键CLERKiD用户表编号Int外键Table9省份表(Province)字段名称字段解释数据类型数据长度备注ProvinceID省份编号int主键ProvinceName省份名称Varchar(20)20Table10交易记录表(TradRecord)字段名称字段解释数据类型数据长度备注RecordID记录编号Int主键TransferDate交易日DateTradeCard卡表信息Int外键PostDate机长时间DateAmount金额Decimal(7.2)7Location交易地点Varchar(200)200TardeType交易类型Int4.4 建立数据库Table用户表(User) Creat table User(UserIdIntNameVarchar(20)20UserNameVarchar(20)20UserEmailVarchar(20)60TypeIntUsereStatusbitprimary key (UserId);图4.2用户表 在用户表(User)中有UserId、Name、UserName 、UserEmail 、Type 、UsereStatus六个字段,其中UserId是主键。UserId代表用户表编号,Name代表用户姓名,UserName代表用户名,UserEmail代表用户邮箱,Type代表用户类型,UsereStatus代表用户状态

温馨提示

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

评论

0/150

提交评论