中北大学成人教育学院2009届本科毕业设计说明书
(2)先进性原则: 采用目前先进的计算机软硬件技术,使系统具有较高的技术水平和较长的生命周期,便于系统的升级和维护。
(3)开放性,安全性,可靠性及可扩展性原则。
(4)兼容性原则:对于所选软硬件系统及平台,能很好地适应开发和使用的需要。 (5)规范性原则:软件设计过程严格按照“软件工程”的规定,系统编码、文档、操作系统平台以及开发方法采用相应的国际标准、国家标准和行业标准。
2 数据库理论基础
一个成功的信息管理系统,是建立在许多条件之上的,而数据库是其中一个非常重要的条件和关键技术。在数据库应用系统开发之前,对数据库的基本概念、数据库的结构等理论应当了解和认识。 2.1 数据库概论 2.1.1 数据库的简介
计算机的数据处理应用,首先要把大量的信息以数据形式存放君存储器中。存储器的容量、存储速率直接影响到数据管理技术的发展。1956年生产的第一台计算机磁盘容量仅为5M字节,而现在已达10000M字节。目前光盘已经广泛使用,容量已达数百G字节。存储器的发展,为数据库技术提供了良好的物质基础。使用计算机以后,数据处理的速度和规模,无论是相对于手工方式,还是机械方式,都是无可比拟的在数据处理中,通常计算是比较简单的而数据的管理比较复杂。数据管理是指数据的收集、整理、组织、存储、维护、检索、传送等操作,这部分操作是数据处理业务的基本环节,而且是任何数据处理业务中必不可少的共有部分。数据管理技术的优劣,将直接影响数据处理的效率。数据管理技术的发展,与硬件(主要是外存)、软件、计算机应用的范围有密切的联系。数据管理技术的发展经过三个阶段:人工管理阶段、文件系统阶段和数据库阶段。
从文件系统发展到数据库系统是信息处理领域的一个重大变化。在文件系统阶段,人们关注的中心问题是系统功能的设计,因而程序设计处于主导地位,数据只起着服从程序需要的作用。在数据库方式下,信息处理观念已为新体系所取代,数据占据了中心位置。数据结构的设计成为信息系统首先关心的问题,而利用这些数据的应用程序设计则退居到以既定的数据结构为基础的外围地位。数据库技术还在不断的发展,并且不断地与其它计算机技术相
- 3 -
中北大学成人教育学院2009届本科毕业设计说明书
互渗透。数据库技术与网络通信技术相结合,产生了分布式数据库系统。数据库技术与面向对象技术相结合,产生了面向对象数据库系统。 在数据库技术中有四个名词:
(1)数据库(database,DB):DB是统一管理的相关数据的集合。DB能为各种用户共享,具有最小冗余度,数据间联系密切,而又有较高的数据独立性。
(2)数据库管理系统(Database Management System,DBMS):DBMS是位于用户与操作系统之间的一层数据管理软件,为用户或应用程序提供访问DB的方法,包括DB的建立、查询、更新及各种数据控制。DBMS总是基于某种数据模型,可以分为层次型、网状型、关系型和面向对象型DBMS。
(3)数据库系统(Database System,DBS):DBS是实现有组织地、动态地存储大量关联数据,方便多用户访问的计算机软件、硬件和数据资源组成的系统,即采用了数据库技术的计算机系统。
(4)数据库技术:这是一门研究数据库的结构、存储、管理和使用的软件学科。数据库技术是操作系统的文件系统基础上发展起来的。而DBMS本身要在操作系统的支持下才能工作。数据库不仅用到数据结构的知识,而且丰富了数据结构的内容。在关系数据库中要用到集合论、数理逻辑的理论。因此,数据库技术是一门综合性较强的学科。 2.1.2 数据库结构
从
20世纪50年代中期开始,计算机的应用由科学研究部门逐步扩展到企业、行政部门。
至60年代,数据处理成为计算机的主要应用。数据库技术作为数据管理技术,是计算机软件领域的一个重要分支,产生于60年代末。现已形成相当规模的理论体系和实用技术。模型是对现实世界的抽象。在数据库技术中,我们用模型的概念描述数据库的结构与语义,对现实世界进行抽象,表示实体类型及实体间联系的模型称为“数据模型” 。
目前广泛作用的数据模型可分为两种类型。一种是独立于计算机系统的模型,完全不涉及信息在系统中的表示,只是用来描述某个特定组织所关心的信息结构,这类模型称为“概念数据模型” 。另一种数据模型是直接面向数据库的逻辑结构,它是现实世界的第二层抽象。 这类模型涉及到计算机系统和数据库管理系统,又称为“结构数据模型” 。
(1)层次模型 用树型结构表示实体类型及实体间联系的数据模型。树的结点是记录类型,每个非根结点有且只有一个父结点。上一层记录类型和下一层记录类型间联系是1∶N联系。
(2)网状模型 用有向图结构表示实体类型及实体间联系的数据模型。
(3)关系模型 关系模型的主要是用二维表格结构表达实体集,用外键表示实体间联
- 4 -
中北大学成人教育学院2009届本科毕业设计说明书
系。关系模型是由若干个关系模式组成的集合。关系模式相当于前面提到的记录类型,它的实例称为关系,每个关系实际上是一张二维表格。现在市场上典型的关系DBMS产品有DB2、ORACLE、SYBASE、INFORMIX和微机型产品Foxpro、Access等。
(4)面向对象模型 面向对象模型能完整地描述现实世界的数据结构,具有丰富的表达能力,但模型相对较复杂,涉及的知识面也广,因此面向对象数据库尚未达到关系数据库那样的普及程度。
数据库的体系结构分三级:内部级(internal),概念级(conceptual)和外部级(external)。这个三级结构有时也称为“三级模式结构”,或“数据抽象的三个级别”,大多数系统在总的体系结构上都具有三级模式的结构特征。 从某个角度看到的数据特性称为“数据视图”(data view)。
外部级最接近用户,是单个用户所能看到的数据特性。单个用户使用的数据视图的描述称为“外模式”。
概念级涉及到所有用户的数据定义,是全局的数据视图。全局数据视图的描述称为“概念模式”。
内部级最接近于物理存储设备,涉及到实际数据存储的结构。物理存储数据视图的描述称为“内模式”。
数据库的三级模式结构是数据的三个抽象级别。它把数据的具体组织留给DBMS去做,用户只要抽象地处理数据,而不必关心数据在计算机中的表示和存储,这样就减轻了用户使用系统的负担。三级结构之间往往差别很大,为了实现这三个抽象级别的联系和转换,DBMS在三级结构之间提供两个层次的映像(mappings):外模式/模式映像,模式/内模式映像。此处模式是概念模式的简称。
由于数据库系统采用三级模式结构,因此系统具有数据独立性的特点。在数据库技术中,数据独立性是指应用程序和数据之间相互独立,不受影响。数据独立性分成物理数据独立性和逻辑数据独立性两级。
(1)物理数据独立性 如果数据库的内模式要进行修改,即数据库的存储设备和存储方法有所变化,那么模式/内模式映像也要进行相当的修改,使概念模式尽可能保持不变。也就是对内模式的修改尽量不影响概念模式,当然,对于外模式和应用程序的影响更小,这样我们称数据库达到了物理数据独立性。
(2)逻辑数据独立性 如果数据库的概念模式要进行修改,譬如增加记录类型或增加数据项,那么外模式/模式映像也要进行相应的修改,使外模式尽可能保持不变。也就是对概念模式的修改尽量不影响外模式和应用程序,这样,我们称数据库达到了逻辑数据独立性。
- 5 -
中北大学成人教育学院2009届本科毕业设计说明书
2.1.3 SQL语言基础
用户对数据库的使用,是通过数据库管理系统提供的语言来实现的。不同的数据库管理系统提供不同的数据库语言。关系数据库管理系统几乎都提供关系数据库标准语言——SQL。 SQL是STRUCTURE QUERY LANGUAGE(结构化查询语言)的缩写,它是操作数据库的工业标准语言。由于SQL使用方便、功能丰富、语言简洁易学,很快得到推广和应用。例如关系数据库产品DB2、ORACLE等都实现了SQL语言。同时,其它数据库产品厂家也纷纷推出各自的支持SQL的软件或者与SQL的接口软件。这样SQL语言很快被整个计算机界认可。1986年10月美国国家标准局(ANSI)颁布了SQL语言的美国标准。
SQL数据库的体系结构,它基本上也是三级结构,但有些术语与传统的关系数据库术语不同。在SQL中,关系模式被称为“基本表”,存储模式称为“存储文件”,子模式称为“视图”,元组称为“行”,属性称为“列”。
(1)一个SQL数据库是表(Table)的汇集,它用一个或若干个SQL模式义。
(2)一个SQL表由行集构成,一行(Row)是列(Column)的序列,每列对应一个数据项。 (3)一个表或者一个基本表(Base Table),或者是一个视图(View)。基本表是实际存储在数据库中的表;而视图是若干个基本表或其它视图构成的子集,用二个SQL的查询语句定义,它的数据是基本表的数据,不实际存储在数据库中因此它是个虚表。
(4)一个基本表可以跨一个或多个存储文件,而一个存储文件可存放一个或多个基本表。每个存储文件与外部存储器上的一个物理文件对应。
(5)用户可以用SQL语句对视图和基本表进行查询等操作。在用户看来,视图和基本表是一样的,都是关系(即表格)。
(6)SQL用户可以是应用程序,也可以是最终用户。使用SQL可以对数据库进行各种操作,例如,可以使用SQL语句生成新的数据库、生成或加入表格、修改数据库等。但SQL最常用于从数据库中获取数据。从数据库中获取数据被称为“查询数据库”。 2.2 涉及的后台编程技术
2.2.1 存储过程(stored procedue)
存储过程是一组先编译好的
Transact-SQL语句。它可能作为一个独立的数据库对象也可
以作为一个单元被用户的应用程序调用,在这个系统中的逾期未还书检查中就在前台调用了存储过程,在记录借书和还书时,所有的数据处理都是调用存储过程。使用存储过程有很多的好处:
- 6 -
中北大学成人教育学院2009届本科毕业设计说明书
(1)执行速度快:存储过程第一次调用后就驻留内存中,特别是重复处理大量数据时,可以极大的是高运行效率。
(2)模块化的程序设计:存储过程经过一次修改后,可以无数次的调用。
(3)减少网络流量:所有数据处理都是在服务器进行,所以,前台只发送调用存储过程的指令和参数,这样能大减少了网络上数据的流量。
(4)保证系统的安全性:
存储过程的定义:
CREATE PROC procedure_name
[{@parameter date_type} [VARYING][=default][OUTPUT]?] AS
Sql_statement[?.n] 2.2.2 触发器
触发器是一种特殊的存储过程,它与表格紧密相连,可能看作是表格定义的一部分,当用户指定表或视图的数据时,触发器将会自动执行。触发器基于一个表创建,但是可以针对多个表进行驶操作。触发器常用来实现复杂的商业规则。使用触发器的最终目的是更好地维护企业的业务规则。在实际运用中,主要提供了以下的功能:
1. 级联修改数据库中的怕有相关表。
2. 撤消违反了完整性的操作,防止非法修改数据。 3. 执行比CHECK更复杂的约束操作。 4. 查找在数据修改前后,表状态的差别。 触发器的定义:
CREATE TRIGGER trigger_name ON table
{FOR{[DELETE],[INSERT],[UPDATE]}} AS
Sql_statement[?]
2.2.3 游标
数据库中的游标是像C语言指针一样的语言结构。在通常情况下,数据库招待的大多数SQL命令都是同时处理集合内部的所有数据。但是,有时候用户也需要对这些数据库集合中的每一行进行作。在没有游标的情况下,这种工作不得不放到数据库前端,有高级语言来实现。这将导致不必要的数据传输,面而延长执行的时间。通过使用游标,可能在服务器端有效的解决这个问题。游标的定义:
- 7 -