停车场管理系统论文.doc
停车场管理系统论文题目:停车场管理系统的设计与实现摘 要 伴随着科技的飞速发展,交通工具的越来越普及。汽车作为人类社会中一个最主要的交通工具之一,起着重大作用。随着人们生活水平的提高,汽车的数量也与日俱增,于是停车正在成为世界性的一个问题。以前落后的人力停车管理即将被高科技化的自动停车管理系统所取代,高度自动化的停车场管理系统节省了大量时间和人力物资的消耗,大大提高了效率。本文论述了在Delphi 7.0可视化开发软件工具下分析,设计,开发的停车场管理系统的过程。通过对计算机硬件和软件解决方案的论证,对应用领域进行调查分析,参考各种资料和进行数据库编程实践,以Microsoft SQL Server 2000数据库作为系统的后台操作,该设计的数据库系统能够实现IC卡管理,系统设这,车辆进出管理,记录查询,统计报表等等。全文共分为七章:第一章是绪论,介绍了该项目的社会背景,实际意义,以及开发环境介绍;第二章主要是系统的可行性分析,第三、四章主要是系统的需求分析,系统设计和详细设计。第五、六章主要是对本系统的实现过程及实现效果进行测试和运行。第七章是对该系统的简单阐述及总结。关健字:停车;Delphi;SQL Server 2000;数据库;可视化 ABSTRACTAlong with the rapid development of science and technology, transport is becoming increasingly popular. Car as a human society in one of the most important means of transport, plays an important role to play. With the improvement of people's living standards, increasing the number of motor vehicles, so parking is becoming a global problem. Before stopping behind the human management of high-tech will soon be automatically replaced by a parking management system, highly automated car park management systems save a lot of time and human consumption of materials, greatly improving the efficiency. In this paper, in Delphi 7.0 visualization software development tools under the analysis, design, development of the car park management system process. Through the computer hardware and software solutions for the demonstration, the application areas of investigation, all kinds of reference information and database programming practice to Microsoft SQL Server 2000 database system as a background operation, the design of the database system can be realized IC card Management, set up this system, vehicles entering and leaving the management, for records, statistics and so on. The full text is divided into seven chapters: Chapter 1 is the introduction, introduced the item of social background, practical significance, and the development of the environment on the second chapter is the feasibility of the third and four chapters is the main demand of the system , System design and detailed design. Fifth, the six chapters of this system is the realization of the process and achieve results for testing and operation. Chapter VII of the system is simple and summed up on Key words : park;delphi;SQL Server 2000;database;Visualization目 录第一章 绪论111 系统社会背景112 系统实际意义113 相关技术介绍1第二章 系统开发可行性分析 22.1 国内外概况22.2 开发工具的选择32.2.1 DELPHI7.0 的特点32.2.2 主要控件以其属性介绍 32.2.3 数据库连接方式42.3 管理可行性52.4 技术可行性52.5 设计思路5第三章 系统需求分析531 需求分析背景5 32 需求分析目的633 系统需求分析6第四章 系统详细设计641 系统功能分析642 数据库模块设计743 数据库详细设计9第五章 系统实现过程和实现效果展示135.1系统功能设计135.2系统系统流程图145.2.1 发卡收费功能模块设计155.2.2综合查询模块设计215.2.3管理设置模块设计245.2.4报表打印系统功能设计255.3 设计中的关键问题30.5.3.1 OOP简介305.3.2 表间关系的建立31第六章 系统测试和运行31第七章 系统的发展前景31参考文献32致谢第一章 绪 论11 系统社会背景 随着社会生活方式的不断变化,科技的不断进步,人们要求更加人性化、智能化的生活条件。不用事必躬亲,尽可能地让智能系统代替手工方式,来进行有效的管理和执行。当前越来越复杂的交通状况,如行路难、停车难等问题大大降低了城市的工作和生活效率,迫使我们寻找一个能够方便解决问题的办法。智能化的停车场便在这样的背景下应运而生了。智能停车场的产生不但规范了城市交通管理和车辆管理水平,扩充了城市的容量,在安全防范方面也有巨大的保障,同时还能方便的和其他智能系统接口(如智能大厦、智能小区等),组成更完善的物流及设备管理系统。12 系统实际意义 随着社会的进步和发展,车辆也在迅速增加,城市交通的瓶颈不仅体现在道路交通的拥挤上,也体现在传统停车场管理效率和安全性大大滞后于社会的需要,给人们的生活带来了极大的不便。随着智能大厦和智能小区等智能建筑的不断发展,与之配套的停车场管理系统应运而生。停车场管理系统本着安全性、可靠性、实用性、开放性、可扩充性、高效性、智能化的指导思想和分布式结构进行设计,规划好系统硬件和软件功能模块的分工和协调。 停车场管理应用可涉及多个方面,临时卡,月卡以及年卡的办理,车辆进出的管理以及各个不同地方停车收费标准的设定和管理等。运用停车场管理系统对车辆进行统一管理,可真正做到事半功倍的效果,是现代智能化停车场管理的好帮手。13 相关技术介绍131 DELPHI简介Delphi这个名字源于古希腊的城市名。它集中了第三代语言的优点。以Object Pascal为基础,扩充了面向对象的能力,并且完美地结合了可视化的开发手段。Delphi自1995年3 月一推出就受到了人们的关注,并在当年一举夺得了多项大奖。 Delphi的出现打破了V承可视化编程领域一统天下的局面。并且Delphi使用了本地编译器直接生成技术,使程序的执行性能远远高于其它产品生成的程序。它还是真正的面向对象的编程语言。PASCAL语言的严谨加上可视化的优势和强大的数据库功能使得它有充分的资本和微软的VB叫板。许多人当时都认为Pascal 是最有前途的程序设计语言,并预测Delphi将会成为可视化编程的主流环境。Delphi在你编好程序后自动转换成.EXE文件它运行时速度比VB快,而且编译后不需要其他的支持库就能运行。它的数据库功能也挺强的,是开发中型数据库软件理想的编程工具。 Delphi适用于应用软件、数据库系统、系统软件等类型的开发。而且它拥有和VB差不多一样的功能,而且一样能应用API函数,这在控制Windows很有用。 Delphi是全新的可视化编程环境,为我们提供了一种方便、快捷的Windows应用程序开发工具。它使用了Microsoft Windows图形用户界面的许多先进特性和设计思想,采用了弹性可重复利用的完整的面向对象程序语言(Object-Oriented Language)、当今世界上最快的编辑器、最为领先的数据库技术。对于广大的程序开发人员来讲,使用Delphi开发应用软件,无疑会大大地提高编程效率。132 Microsoft SQL Server 2000简介SQL Server 2000 是Microsoft公司推出的基于Client/Server模式的新一代大型关系数据库管理系统。它功能强大、操作简便,广泛应用于数据库后台系统。SQL Server 2000代表着下一代Microsoft.NET Enterprise Servers(企业分布式服务器)数据库的发展趋势。它在电子商务、数据仓库和数据库解决方案等应用中起着重要的核心作用。zzzz与ACCESS数据库相比,SQL Server 2000数据库的规模更大,它可以将用户的数据存储在多个服务器上,并利用复制技术跨越多个服务器进行分布式处理,实现真正意义上的分布式数据库。SQL Server 2000的安全性更好,它可以对登录用户的身份进行认证,并对用户的操作权限进行控制。SQL Server 2000的故障恢复功能更强,它提供了强大的数据库备份和恢复功能,当故障发生时,能根据备份和日志迅速恢复到某一正确时刻。同时,SQL Server 2000还提供了更好的并发控制功能以及大量的监控和管理数据库系统的工具。综上所述,SQL Server 2000无论是从规模上还是从功能上都更优于ACCESS,更适合于做投入实际运营的较大规模的网站的后台数据库。SQL Server 2000是一个全面的数据库平台,使用集成的商业智能工具,提供了企业级的数据管理。SQL Server 2000 数据库引擎为关系型数据和结构化数据提供了更安全可靠的存储功能,使用户可以构建和管理用于业务的高可用和高性能的数据应用程序。此处SQL Server 2000结合了分析,报表,集成和通知功能,使企业可以构建和部署经济有效的BI解决方案,帮助用户通过记分卡,Dashboard(仪表板),Web services和移动设备将数据应用推向业务的各个领域。第二章 系统开发可行性分析目前,停车场的车辆进出比较频繁。停车场管理者为了掌握车辆的收费情况,要对每一辆车每一次出入情况都要做好详尽的记录,用手工的方法记录和管理是一项很繁琐的工作,且工作效率低下,耗费大量宝贵时间,也不便于日后管理者对停车场的车辆出入情况进行查询与统计。鉴于此,有必要开发一套停车场管理系统软件,利用计算机来完成这项工作,使得停车场管理者抛弃以往繁杂的人工管理手段,提高工作效率,能够使停车场管理者更好的提供其他服务,提高管理质量。2.1国内外概况停车场管理系统是针对物业管理的大量业务处理工作而开发的管理软件,是典型的管理信息系统(Management Information System)。它是一个停车场单位不可缺少的部分,它的内容对于停车场的决策者和管理者来说都至关重要,它能够为用户提供充足的信息和快捷的查询手段。能有效的帮助停车场管理者掌握车辆出入的情况,为车辆出入的查询及更新服务。管理信息系统(简称MIS)是集计算机技术与网络通信技术为一体的信息系统工程,由信息的采集、信息的传递、信息的储存、信息的加工、信息的维护和信息的使用五个方面组成。完成数据的输入、数据处理以及数据输出得到最终用户的使用数据.由于开发高质量 MIS 的能力大大落后计算机硬件日新月异的进展,加上社会对MIS 发展和完善需求的增加以及对MIS开发过程中出现的错误认识和行为而导致MIS开发的失败,这些情况已严重妨碍了计算机技术的进步。因此对MIS 有关的内容进行深入研究,提高工作效率,提高MIS开发成功率以及应用范围将变得十分重要。在发达国家,自动化的管理信息系统以融入社会的方方面面.很多日常繁琐的工作都由计算机自动化处理代替。人们的双手在一定程序上得到了解放,而当前我国信息化水平一直处于初级发展阶段。但随着计算机技术的飞速发展,信息管理在日常管理中的应用的普及,利用计算机开发的MIS系统实现停车场信息的管理将势在必行。2.2 开发工具简介221 Delphi 7.0的特点Delphi是Borland公司出品的开发工具,在众多的开发工具中,我们为什么要选择Delphi呢?因为Delphi具有众多其它开发工具所没有的优点!具体介绍如下:u 开发的高效u 语言的高效u 编译的高效u 执行的高效u 维护的高效基于以上理由,我毫不犹豫的选择了Delphi做为开发工具!223 主要的控件及其属性简介u TForm类的控件:1) BorderIcons属性:用来控制程序标题按钮的可用性。2) BorderStyle属性:用来控制程序边框的样式。3) Color属性:用来控制程序界面的颜色。4) Font属性:用来控制程序界面的字体。5) Position属性:用来控制程序运行时界面的显示位置。u TADOConnection类的控件:1) ConnectionString属性:用来控制链接字符串。2) LoginPrompt属性:用来控制链接时是否要输入密码。3) Connected属性:用来控制是否进行链接。u TADOQuery类的控件:1) Connection属性:用来指定和哪个TADOConnection控件相连。2) SQL属性:用来添加向数据库提交的SQL语句。3) Add方法:用来向SQL属性添加SQL语句。4) Open方法:用来执行SQL语言中的Select语句。5) ExecSQL方法:用来执行任何SQL语句。6) FieldByName属性:用来给数据库的字段赋值。7) FidldValues属性:用来取出数据库的字段的。8) Append方法:用来向数据库添加一条记录。9) Edit方法:用来编辑当前的记录。10) Post:用来向数据库提交所做的修改。u TADOTable类的控件:1) Connection属性:用来指定和哪个TADOConnection控件相连。2) Open方法:用来打开数据库中指定的表。3) FieldByName属性:用来给数据库的字段赋值。4) FidldValues属性:用来取出数据库的字段的。5) Append方法:用来向数据库添加一条记录。6) Edit方法:用来编辑当前的记录。7) Post:用来向数据库提交所做的修改。u TDataSource类的控件:1) DataSet:用来指定和哪个数据集相连。u TDBGrid类的控件:1) DataSource:用来指定和哪个TDataSource控件相连。u TPageControl类的控件:1) ActivePage属性:用来指定当前活动的Page页。u TCheckTree类的控件:1) ReadOnly属性:用来控制TCheckTree内的Item是否可编辑。2) Item属性:用来控制TCheckTree包含的所有树形结点。3) Images属性:用来指点TCheckTree中结点的图标。4) OnMouseUp事件:用来添加鼠标放开事件所执行的程序代码。5) OnStateChange事件:用来添加结点状态改变时的程序代码。u TFlatButton类的控件:1) Caption属性:用来指定TFlatButton的标题。OnClick事件:用来添加按钮的单击事件所执行的程序代码。224数据库连接方式Delphi连接数据库的主要方式有两种:一是:BDE ,二是ADO 。现在我们来大致比较一下这两种技术的优缺点:BDE(Borland Database Engine)是Delphi颇具特色的数据库连接管理技术。凭借窗体和报表,BDE可以访问诸如Paradox,dBASE,本地InterBase服务器的数据库,也可访问远程数据库服务器上的数据库,如Oracle,SyBase,Informix等CS数据库中的数据库,也可访问经ODBC可访问的数据库管理系统中的数据库。ADO(ActiveX Data Objects)是微软提供的一项技术。通过ADO,可以方便的访问各种类型的数据库,特别是OLEDB数据库。ADO已成为访问数据库的新的标准接口。从Delphi 6.0开始Delphi添加了对ADO的支持,以便让用户能迅速实现对终端用户用来做商业决策的数据库的一致性访问,结合Delphi本身的开发式数据组件结构,程序员可以很快地建立应用程序,用来把自己的商业数据库通过Internet发送给客户,最终用户以及整个销售环节。通过ADO,Delphi 7.0也能让用户快速访问关系或非关系数据库以及E-Mail和商务文件系统。这两者提供了几乎相同的功能,在进行产品开发时,势必要做一个精心的比较。虽然ADO技术提出的时间不长,并被定位为工业标准的,而且其在性能上由于当前没有良好的数据库引擎支持,其性能还不够完美,但是,我们应该要注意到Borland公司已经宣布停止发展BDE了,其性能被ADO超越也是迟早的事,因此,在开发长期应用的产品时,推荐采用ADO技术。这样还有另一个好处是,在进行产品分发时,可以避开大量BDE的链接库DLL的分发。23 管理可行性在现代停车场管理中,应用停车场管理系统将大大提高工作效率。全国各地大型智能大厦,智能小区都陆续采用停车场管理系统,充分验证了停车场管理系统的可行性,可靠性,安全性,开放性,高效性以及可扩充性。24技术可行性 DEPHI是良好的前端开发工具,它功能强大,如:1 采用可视化编程:可以自动产生部分界面代码,程序人员只需绘制界面,这样大大的提高了程序设计的效率。2 面向对象的设计 3 结构化程序设计语言 访问数据库:具有很强的数据库管理功能。特别是对数据库的操作比较方便。对于初次接触信息系统的使用者,SQL Server 2000比其他的数据库更容易了解和掌握。VS/SQL 2000的结合足以给企业带来信息化的优势。2.5设计思路Delphi所使用的程序语言是面向对象的Pascal语言(Object Pascal),其代码结构清晰明了、可读性强,代码执行速度快、效率高,并提供了大量的组件,用户可轻松上手,开发出功能丰富强大的应用程序。尤其在数据库应用程序方面表现突出,能与ODBC和SQL很好地链接,且支持Foxpro和Access,具有丰富的功能和灵活的设计风格。Delphi5/6 还增添了对ADO的支持。ADO(ActiveX Data Objects)是微软提供对各种数据格式的高层接口(high-level-interface),该接口已经成为访问数据库的新的标准。使用这种接口的数据库又称为OLE DB数据库。Delphi中的ADO本身是一些数据对象,使用这些对象,应用程序可访问OLE DB数据库。Delphi 封装了这些ADO数据对象的功能,使这些功能可在Delphi 组件的环境中使用。例如,最常使用的ADO对象是连接(Connection)、命令(Command)、数据集(Recordset)对象,这些ADO对象在Delphi中相对应的组件是TADOConnection ,TADOCommand 和ADO数据组件。结合Delphi本身的开放式数据元件结构,如借助DBGrid ,DBEdit等感知组件,从而使用户能迅速的实现对数据的一致性访问。用户可不需使用BDE就可很快的建立应用程序。ADO技术与以往的数据库访问技术相比最大的优点是易于使用、速度快、内存支出少,是目前最新的一种数据库访问技术。中学生成绩管理系统在设计时采用了ADO技术来连接和访问数据库。此系统是一个单机运行系统。第三章 系统的需求分析31 需求分析背景需求分析是对用户需求的真正明确,是对要解决的问题能够比较彻底的理解。只有真正的理解问题才能更好的解决问题。需求分析也就是描述系统的需求,通过定义系统中的关键域类来建立模型,分析的根本目的是在开发者和提出需求的人之间建立一种理解和沟通的机制,因此,停车场管理系统的需求也该是开发人员和客户必须共同完成的一项任务,各种突发情况等要求更应通过需求分析进一步描述此信息系统所应有的功能,即定义用例,以此确定系统的功能需求。32需求分析目的 为了使系统更加实用,更好地解决实际问题,进行详细的需求分析是必不可缺的。3.3需求分析软件功能模块的划分根据实际的情况,我们将整个软件划分为五个功能模块1、发卡收费模块2、综合查询模块3、报表打印模块4、管理设置模块5、帮助模块具体分析如下:发卡收费模块提供固定用户注册发卡、临时用户发卡、固定收费用户、程序的退出出口。综合查询模块包括固定用户注册查询、目前停车情况浏览、个人收费查询,全体收费查询、车辆进出查询、收费设置查询报表打印模块包括个人收费统计、全体收费统计管理设置模块包括系统应用设置、更改用户口令、更改登陆用户、锁定系统帮助模块包括帮助主题等。 第四章 系统的详细设计数据库 ADO技术数据流录入 数据查询统计数据流数据流: manager数据流: manager报表 打印数据流4.1系统结构设计如图1所示,用户先通过ADO把数据录入到数据库中,又通过ADO连接、访问、调用数据库中的数据来完成系统查询、统计、打印等功能。这里ADO技术起着关键的作用,它是连接用户界面和数据库的桥梁。 4.2数据库结构设计图1 系统结构图信息系统的主要任务是通过大量的数据获得管理所需要的信息,这就必须存储和管理大量的数据。因此建立一个良好的数据组织结构和数据库,使整个系统都可以迅速、方便、准确地调用和管理所需的数据,是衡量信息系统开发工作好坏的主要指标之一。4.2.1 数据库系统设计数据库设计主要是进行数据库的逻辑设计,即将数据按一定的分类、分组系统和逻辑层次组织起来,是面向用户的。数据库设计时需要综合企业各个部门的存档数据和数据需求,分析各个数据之间的关系,按照DBMS提供的功能和描述工具,设计出规模适当、正确反映数据关系、数据冗余少、存取效率高、能满足多种查询要求的数据模型。数据库设计的步骤是:(1) 数据库结构定义:目前的数据库管理系统(DBMS)有的是支持联机事务处理CLTP(负责对事务数据进行采集、处理、存储)的操作型DBMS,有的可支持数据仓库、有联机分析处理CLAP(指为支持决策的制定对数据的一种加工操作)功能的大型DBMS,有的数据库是关系型的、有的可支持面向对象数据库。针对选择的DBMS,进行数据库结构定义。(2) 数据表定义:数据表定义指定义数据库中数据表的结构,数据表的逻辑结构包括:属性名称、类型、表示形式、缺省值、校验规则、是否关键字、可否为空等。关系型数据库要尽量按关系规范化要求进行数据库设计,但为使效率高,规范化程度应根据应用环境和条件来决定。数据表设计不仅要满足数据存储的要求,还要增加一些如反映有关信息、操作责任、中间数据的字段或临时数据表。(3) 存储设备和存储空间组织:确定数据的存放地点、存储路径、存储设备等,备份方案,对多版本如何保证一致性和数据的完整性。(4) 数据使用权限设置:针对用户的不同使用要求,确定数据的用户使用权限,确保数据安全。(1) 数据字典设计:用数据字典描述数据库的设计,便于维护和修改。为了更好地组织数据和设计出实际应用数据库,应该注意如下问题:规范化地重组数据结构:对数据进行规范化表达,这在后面将会具体讨论。关系数据结构的建立:在进行了数据基本结构的规范化重组后,还必须建立整体数据的关系结构。这一步设计完成后数据库和数据结构设计工作基本完成,只待系统实现时将数据分析和数据字典的内容代入到所设计的数据整体关系结构中,一个规范化数据库系统结构就建立起来了。建立关系数据结构涉及三方面内容:确定关联的关键指标项并建立关联表;确定单一的父系记录结构;建立整个数据库的关系结构。(1) 链接关系的确定在进行了上述数据规范化重组后,已经可以确保每一个基本数据表(我们简称为表)是规范的,但是这些单独的表并不能完整地反映事物,通常需要通过指标体系整体指标数据才能完整全面地反映问题。也就是说在这些基本表的各宇段中,所存储的是同一事物不同侧面的属性。那么计算机系统如何能知道哪些表中的哪些记录应与其它表中的哪些记录相对应,它们表示的是同一个事物呢?这就需要在设计数据结构时将这种各表之间的数据记录关系确定下来。这种表与表之间的数据关系一般都是通过主或辅关键词之间的连接来实现的。因为在每个表中只有主关键词才能唯一地标识表中的这一个记录值(因为根据第三范式的要求,表中其它数据字段函数都依赖于主关键词),所以将表通过关键词连接就能够唯一地标识出某一事物不同属性在不同表中的存放位置。 (2)确定单一的父子关系结构所谓确定单一的父系关系结构就是要在所建立的各种表中消除多对多(以下用M:N来表示)的现象,即设法使得所有表中记录之间的关系呈树状结构(只能由一个主干发出若干条分支,而不能有若干条主干交错发出若干条分支状况)。所谓的“父系”就是指表的上一级关系表。消除多对多关系可以借助于E-R图的方法来解决,也可以在系统分析时予以注意,避免这种情况的发生。消除这种M:N情况的办法也很简单,只需在二表之间增加一个表,则原来M:N的关系就改成了M:1,1:N的关系了。确定数据资源的安全保密属性:一般DBMS都提供给我们自己定义数据安全保密性的功能。系统所提供的安全保密功能一般有8个等级(0-7级),4种不同方式(只读、只写、删除、修改),而且允许用户利用这8个等级的4种方式对每一个表自由地进行定义。定义安全保密性的方法一般有如下几种: a原则上所有文件都定义为4级,个别优先级特别高的办公室(终端或微机的入网账号)可定义高于4级的级别,反之则定义为低于4的级别。 b统计文件(表)和数据录入文件一般只对本工作站定义为只写方式,对其它工作站则定义为只读方式。 c财务等保密文件一般只对中工作站(如财务科等)定义为可写、可改、可删除方式,对其它工作站则定义为只读方式,而且不是每个人都能读,只有级别相同和高级别者才能读。4.2.2 数据库设计范式分析建立起一个良好的数据指标体系,是建立数据结构和数据库的最重要的一环。一个良好的数据指标体系是建立DB的必要条件,但不是充分条件。我们完全可以认为所建指标体系中的一个指标类就是关系数据库中的一个基本表,而这个指标类下面的一个个具体指标就是这个基本表中的一个字段。但如果直接按照这种方式建库显然还不能算最佳。对于指标体系中数据的结构在建库前还必须进行规范化的重新组织。 a. 数据组织的规范化形式 在数据的规范化表达中,一般将一组相互关联的数据称为一个关系(relation),而在这个关系下的每个数据指标项则被称为数据元素(data element),这种关系落实到具体数据库上就是基本表,而数据元素就是基本表中的一个字段(field)。规范化表达还规定在每一个基本表中必须定义一个数据元素为关键字(key),它可以唯一地标识出该表中其它相关的数据元素。在规范化理论中表是二维的,它有如下四个性质:l 在表中的任意一列上,数据项应属于同一个属性(如图中每一列都存放着不同合同记录的同一属性数据)。 l 表中所有行都是不相同的,不允许有重复组项出现(如图中每一行都是一个不同的合同记录)。l 在表中,行的顺序无关紧要(如图中每行存的都是合同记录,至于先放哪一个合同都没关系)。 l 在表中,列的顺序无关紧要,但不能重复(如图中合同号和合同名谁先谁后都没关系,但二者不可重复或同名)。 在对表的形式进行了规范化定义后,数据结构还有五种规范化定义,定名为规范化模式,称为范式。在这五种范式中,一般只用前三种,对于常用系统就足够了。而且这五种范式是“向上兼容”的,即满足第五范式的数据结构自动满足一、二、三、四范式,满足第四范式的数据结构自动满足第一、二、三范式,依此类推。第一范式(first normal form,简称1st NF)就是指在同一表中没有重复项出现,如果有则应将重复项去掉。这个去掉重复项的过程就称之为规范化处理。在本文所讨论的开发方法里,1st NF实际上是没有什么意义的。因为我们按规范化建立的指标体系和表的过程都自动保证了所有表都满足1st NF。 第二范式(second normal form,简称 2nd NF)是指每个表必须有一个(而且仅一个)数据元素为主关键字(primary key),其它数据元素与主关键字一一对应。例如,在图l9.7中如果我们将合同号定义为主关键字(其它数据元素中的记录数据都有可能重名,故不能作为主关键字),故只要知道了一个合同记录的合同号,就可以唯一地在同一行中找到该合同的任何一项具体信息。通常我们称这种关系为函数依赖(functional depEndence)关系。即表中其它数据元素都依赖于主关键字,或称该数据元素唯一地被主关键字所标识。第三范式(third normal form,简称 3rd NF)就是指表中的所有数据元素不但要能够唯一地被主关键字所标识,而且它们之间还必须相互独立,不存在其它的函数关系。也就是说对于一个满足了 2nd NF的数据结构来说,表中有可能存在某些数据元素依赖于其它非关键宇数据元素的现象,必须加以消除。为防止数据库出现更新异常、插入异常、删除异常、数据冗余太大等现象,关系型数据库要尽量按关系规范化要求进行数据库设计。4.3 数据库设计4.3.1 SQL基础SQL(Structured Query Language,结构查询语言)是一个功能强大的数据库语言。SQL通常使用于数据库的通讯。ANSI(美国国家标准学会)声称,SQL是关系数据库管理系统的标准语言。SQL语句通常用于完成一些数据库的操作任务,比如在数据库中更新数据,或者从数据库中检索数据。使用SQL的常见关系数据库管理系统有:Oracle、 Sybase、 Microsoft SQL Server、 Access、 Ingres等等。虽然绝大多数的数据库系统使用SQL,但是它们同样有它们自立另外的专有扩展功能用于它们的系统。但是,标准的SQL命令,比如"Select"、 "Insert"、 "Update"、 "Delete"、 "Create"和 "Drop"常常被用于完成绝大多数数据库的操作。MS SQL Server 就是用的Transact- SQL。SQL语言有着非常突出的优点,主要是:n 非过程化语言n 统一的语言n 是所有关系数据库的公共语言非过程化语言:SQL是一个非过程化的语言,因为它一次处理一个记录,对数据提供自动导航。SQL允许用户在高层的数据结构上工作,而不对单个记录进行操作,可操作记录集,所有SQL 语句接受集合作为输入,返回集合作为输出。SQL的集合特性允许一条SQL语句的结果作为另一条SQL语句的输入。SQL不要求用户指定对数据的存放方法, 这种特性使用户更易集中精力于要得到的结果;所有SQL语句使用查询优化器,它是RDBMS的一部分,由它决定对指定数据存取的最快速度的手段,查询优化器知道存在什么索引,在哪儿使用索引合适,而用户则从不需要知道表是否有索引、有什么类型的索引。统一的语言:SQL可用于所有用户的DB活动模型,包括系统管理员、数据库管理员、 应用程序员、决策支持系统人员及许多其它类型的终端用户。SQL为许多任务提供了命令,其中包括:n 查询数据n 在表中插入、修改和删除记录n 建立、修改和删除数据