第一章第一章引论1、数据库技术产生于20世纪60年代,是信息系统的核心技术和重要基础;2、计算机科学与技术学科划分为四个专业方向:计算机科学(CS);计算机工程(CE);软件工程(SE);信息技术(IT)。1.1基本概念1.1.1信息与数据1、信息、物质、能量是组成客观世界并促进社会发展的三大基本要素;2、信息(Information)--是客观世界事物的存在方式和运动状态的反映,是对事物之间相互联系、相互作用的描述。信息具有可感知、可存储、可加工、可传递和可再生的自然属性。3、数据(Data)--是描述现实世界事物的符号记录,是用物理符号记录下来的可以识别的信息。不同的物理符号体现出数据的不同表现形式。4、信息与数据间存在固有联系,数据是信息的符号表示,或称为载体。信息则是数据的语义解释,是数据的内涵,信息以数据的形式表现出来,并为人们理解和接受。5、数据处理(DataProcessing)--是指对数据进行分类、收集、组织、存储,进而从已数据出发,抽取或推导出新的数据,这些数据表示了新的信息。6、数据管理(DataManagement)--是指对数据的分类、收集、组织、编码、存储、检索和维护,是数据处理业务的重要环节。7、数据处理与数据管理的区别在于,数据处理除了具有数据管理功能外,还可通过数据管理得到的数据进一步深加工,从中获取新的数据和信息。1.1.2数据库系统1、数据库(DB,DataBase)--是长期存储在计算机内有组织的、大量的、共享的数据集合;2、数据库管理系统(DBMS,DatabaseManagementSystem)--是指在计算机系统中,位于用户与操作系统之间的数据管理系统软件,是数据库系统的核心。3、数据库系统(DBS,DataBaseSystem)--是指在计算机系统中引入数据库后的软硬件系统构成,DBS一般分成三个层次:(1)计算机硬件平台;(2)系统软件和应用软件;(3)用户;在不引起混淆和歧义的情况下,数据库系统简称为数据库。4、(狭义的)数据库系统-是由数据库和数据库管理系统组成的软件系统,主要为用户提供数据存储和查询、插入、修改、删除、更新等数据管理功能。5、(狭义的)数据库应用系统(DBAS,DataBaseApplicationSystem)-是由数据库、数据库管理系统、数据库应用程序组成的软件系统,它面向具体应用领域,提供了更为复杂的数据处理功能。6、数据库技术-是研究数据库的结构、存储、设计、管理和使用的一门计算机应用学科。7、数据库技术与其它计算机科学有密切关系:(1)数据库技术以文件系统为基础发展而来,DBMS需要操作系统的支持,数据库以文件形式存储在外部存储上的;(2)数据库与数据结构的关系很密切,数据库技术不仅用到数据结构中的链表、树、图等知识,各种数据模型本身就属于复杂数据结构;(3)主流的关系数据库系统,其理论基础是关系数据模型,而该模型是在离散数学集合论中“关系”这一基本概念上发展起来的;(4)当用户访问数据库,DBMS对用户提交的查询操作类似于,计算机编译系统对程序的编译过程;(5)开发一些大型的DBS或DBMS的过程,要遵循软件工程的开发模式。1.2数据模型1.2.1数据模型概念1、数据模型(DataModel)--是数据库系统的形式框架,是用来描述数据的一组概念和定义,包括描述数据、数据联系、数据操作、数据语义以及数据一致性的概念工具;2、数据模型应满足:(1)能够比较真实地模拟现实世界;(2)容易为人们所理解;(3)便于在计算机上实现。1、数据模型的组成:(1)数据结构:用于描述系统的静态特征,从语法角度表述了客观世界中数据对象本身的结构和数据对象之间的关联关系,是刻画一个数据模型性质最重要的方面。在数据库系统中,通常按照数据结构的类型来区分、命名各种数模,如层次、网状、关系数模。(2)数据操作:用于描述系统的动态特征,是一组对数据库中各种数据对象允许执行的操作和操作规则组成的集合。数据操作可以是检索、插入等,数模必须定义这些操作的确切含义、操作符号、操作规则以及实现操作的数据库语言。(3)数据完整性约束:是一组完整性规则的集合,它定义了数模必须遵守的语义约束,也规定了数据库中数据内部及数据之间联系所必须满足的语义约束。它限定了数据库的状态以及状态的变化,以便维护数据的正确性、有效性。1.2.2数据模型分类1、用数据模型这一概念来描述数据库的结构和语义,通过现实世界-信息世界-机器世界的抽象转换过程构建数据库,并根据模型所定义的规范去管理和使用数据。2、建模过程:(1)将现实世界的数据对象抽象为信息世界中的某一信息结构;(2)再将信息结构转换为机器世界中某一具体DBMS支持的数据模型,并存储于计算机中。3、数据模型分类:(1)概念数据模型(概念模型):按用户的观点对数据和信息进行建模,是现实世界到信息世界的第一层抽象,强调其语义表达功能,易于用户理解,是用户与设计人员交流的语言,主要用于数据库设计。最常用的是实体-联系模型。(2)数据结构模型(表示型/实现型):是机器世界中与具体DBMS相关的数据模型,包括关系模型、网状模型和层次模型(3)物理数据模型:属底层数据模型,描述数据的实际存储方式。1.3数据视图与模式结构1.3.1数据视图与数据抽象1、数据视图:指从某个角度看到的客观世界数据对象的特征,是对数据对象某一方面特征的描述。2、数据抽象:是一种数据描述和数据库设计原则,是指专注于数据对象的某方面特征,而忽略其他特征。3、集和值:集是指对某一类数据的结构和属性的说明,值是集的一个具体赋值;4、数据模式:对数据库中数据某方面结构和特征的描述,它仅涉及集的描述,不涉及具体的值。1.3.2三级模式结构1、数据库三级模式结构-外部级、概念级和内部级,分别定义了外模式、模式和内模式,用于从不同角度描述数据库结构。2、模式:(1)也称逻辑模式、概念模式;(2)对数据库中全体数据的逻辑结构和特征的描述,是所有用户的公共数据视图;(3)模式不仅定义了数据的逻辑结构,还定义了数据之间的联系、与数据的关的安全性和完整性要求;(4)一个数据库只有一个模式,建立在某种数据结构模型基础上。3、外模式:(1)也称子模式、用户模式、用户视图;(2)是对数据库用户能够看见和使用的局部数据的逻辑结构和特征的描述。(3)一个数据库可以有多个外模式,每个外模式描述了某个特定用户所使用的局部数据的逻辑结构和特征,是与某一应用有关的数据的逻辑表示。(4)外模式还是保证数据安全的有力措施,每个用户只能看见和访问所对应的外模式中的数据,其它数据对他是不可见的。4、内模式:(1)也称物理模式、存储模式;(2)是对数据库中数据的物理结构和存储方式的描述,代表了数据在数据库内部的表示方式和物理组织结构;1.3.3二级映象与数据独立性1、外模式/模式映象:(1)定义了数据库中不同用户的外模式与数据库逻辑模式之间的对应关系;(2)可有多个外模式/模式映象,对于每个外模式,需要一个外模式/模式映象来定义该外模式与模式之间的对应关系;(3)当模式发生变化时,只需调整外模式/模式间的映象关系,而外模式无需修改,保证了数据与应用程序的逻辑独立性,称为数据的逻辑独立性。2、模式/内模式映象:(1)定义了数据库中数据全局逻辑结构,与这些数据在系统中的物理存储组织结构之间的对应关系。(2)模式/内模式映象是唯一的;当内模式发生变化时,只需调整模式/内模式映象关系,而模式无需修改,保证了数据库中的数据与应用程序间的物理独立性,称为数据的物理独立性。1.4数据库系统体系结构1、数据库系统体系结构:是指数据库系统的组成构件、各构件的功能及各构件间的协同工作方式;2、分类:(1)集中式:全部数据和数据管理功能均集中在一台计算机上的数据库系统;包括单用户和主从式两种,单用户DBS是指系统由一个用户独占,不同机器间不能共享数据;主从式DBS是指一个主机带多个分时多用户的DBS;(2)分布式:数据库中的数据在逻辑上是一个整体,但在物理上却可以分布在网络中不同数据管理节点上;(3)客户/服务器:将DBMS和数据库应用分开,网络中某些节点上的计算机专门执行DBMS功能,负责数据管理服务,称为数据库服务器;其他节点的计算机上安装DBMS的外围应用开发工具,支持用户的应用,主要负责数据表示服务,称为客户端;(4)并行式:硬件平台是并行计算机系统,使用多个CPU和多个磁盘进行并行数据处理和磁盘访问操作,以提高执行速度;(5)WEB式:由通过互联网连接起来的客户端、WEB服务器、数据库服务器组成。1.5数据库管理系统1.5.1数据库管理系统的功能(1)数据定义功能:DBMS提供了数据定义语言(DDL),用户利用DDL定义数据库对象的三级模式结构,描述数据库的结构特征。(2)数据操纵功能:DBMS提供数据操纵语言(DML),用户利用DML对数据进行查询、插入、删除或更新;(3)数据库运行管理和控制功能(4)数据库的建立和维护功能1.5.2数据库系统的全局结构1、DBS可分为用户、人机交互界面、DBMS和磁盘四个层次;2、用户可分为四类:数据库管理员DBA;专业用户;应用程序员;终端用户;3、DBMS可分为两部份:(1)查询处理器:面向用户查询请求;包括以下几个功能模块:DML编译器、嵌入式DML的预编译器、DDL编译器、查询执行引擎;(2)存储管理器:面向数据存储访问,包括以下几个功能模块:权限和完整性管理器、事务管理器、文件管理器、缓沖区管理器;4、磁盘存储的类型:(1)以数据库文件方式存储的应用数据;(2)数据字典;(3)为提高查询速度而设置的数据库引擎;(4)DMS运行时的统计分析数据;(5)日志信息。1.6数据库技术的发展和应用1、第一代DBS:60年代末70年代初,层次型和网状型DBS;2、第二代DBS:70年代后期,关系数据库系统;新型DBS:80年代,分布式数据库系统;90年代,面向对象数据库系统、网络数据库系统第二章2.1数据库应用系统生命周期2.1.1软件工程与软件开发方法1、软件工程:指导计算机软件开发和维护的工程科学,它采用工程化的概念、原理、技术和方法,以及正确的项目管理技术,来开发和维护软件;它将系统化、规范化、定量化方法应用于软件的开发、操作和维护,也就是将工程化应用于软件生产;2、软件工程的目标:在给定成本、进度的前提下,开发出满足用户需求并具有下述特征的软件产品:可修改性、有效性、可靠性、可理解性、可维护性、可重用性、可适应性、可移植性、可追踪性和可互操作性。3、软件生命周期:指软件产品从考虑其概念开始,到该产品交付使用的整个时期,包括概念阶段、需求阶段、设计阶段、实现阶段、测试阶段、安装部署及交付阶段;4、软件项目管理:为了能使软件开发按预定的质量、进度和成本进行,而对成本、质量、进度、人员、风险等进行分析和有效管理的一系列活动。5、软件工程以关注软件质量为特征,由方法、工具和过程三部分组成;6、软件过程模型(软件开发模型):是对软件过程的一种抽象表示,表示了软件过程的整体框架和软件开发活动各阶段间的关系,常见的有:瀑布模型、快速原形模型、增量模型和螺旋模型。2.1.2DBAS软件组成1、数据库应用软件在内部可看作由一系列软件模块/子系统组成,这些模块/子系统可分成两类:(1)与数据访问有关的数据库事务模块:利用DBMS提供的数据库管理功能,以数据库事务方式直接对数据库中的各类应用数据进行操作,模块粒度较小;(2)与数据访问无直接关联的应用模块:在许多与数据处理有关的应用系统中,对数据库的访问只是整体中的一部分,其他功能则与数据库访问无直接关系,这部分模块粒度可以比较大。2、DBAS设计开发的硬件方面:主要涉及根据系统的功能、性能、存储等需求选择和配置合适的计算机硬件平台,并与开发好的DBAS软件系统进行集成,组成完整的数据库应用系统;2.1.3DBAS生命周期模型1、数据库应用系统的生命周期模型:(1)参照软件开发瀑布模型的原理,DBAS的生命周期由项目规划、需求分析、系统设计、实现和部署、运行管