系统分析师(软件设计师)计算机学科部分经典教材共21页第页1专题六:数据库知识数据库管理系统的功能和特征·数据库模型(概念模式、外模式、内模式)·数据模型,ER图,第一范式、第二范式、第三范式·数据操作(集合运算和关系运算)·数据库语言(SQL)·数据库的控制功能(并发控制、恢复、安全性、完整性)·数据仓库和分布式数据库基础知识1、数据库知识1.1数据管理技术的发展数据管理技术的发展阶段:人工阶段:数据处理方式是批处理。其特点是:数据不保存没有专用的软件对数据进行管理只有程序概念,没有文件概念一组数据对应一个程序,即数据是面向程序的文件系统阶段:数据处理方式有批处理,也有联机实时处理。其特点是:数据可长期保存在外存上数据的逻辑结构与物理结构有了区别,但简单文件组织已多样化,有索引文件、链接文件和直接存取文件等,但文件之间相互独立,没有联系数据不再属于某个特定的程序,可重复使用,但数据结构和程序之间的依赖关系并未根本改变。其缺点是:数据冗余性数据不一致性数据联系弱数据库阶段:其特点是:用关系模型表示复杂的数据模型有较高的数据独立性数据库系统为用户提供了方便的用户接口数据库管理系统提供了四个方面的数据控制能力-数据完整性、数据安全性、数据库的并发控制、数据库的恢复数据库的基本概念数据库(DB):是存储在一起的相关数据的集合。DB能为各种用户共享,具有最小冗余度,数据间联系密切,而又有较高的程序与数据的独立性。数据库管理系统(DBMS):DBMS是位于用户与操作系统之间的一层数据管理软件,为用户或应用程序提供访问DB的方法,包括DB的建立、查询、更新及各种数据控制。DBMS可分为层次型、网状型、关系型、面向对象型。数据库系统(DBS):即是采用了数据库技术的计算机系统,是实现有组织地、动态存储大量关联数据,方便多用户访问的计算机软件、硬件和数据资源而组成的系统。数据库技术:研究数据库的结构、存储、设计、管理和使用的一门软件学科。系统分析师(软件设计师)计算机学科部分经典教材共21页第页21.2数据模型表示实体类型及实体之间联系的模型称为“数据模型”。数据模型是严格定义的概念的集合,数据库的数据模型应包括数据结构(指对实体类型和实体之间联系的表达和实现)、数据操作(指对数据库的检索和更新两大类操作)和完整性约束(给出数据及其所具有的制约合依赖规则)3个部分。数据模型的种类很多。目前广泛使用的数据模型可分为两种:概念数据模型和结构数据模型。概念数据模型这是一种独立于任何计算机系统的模型,完全不涉及信息在计算机系统中的表示,用于建立信息世界的数据模型,是现实世界的第一层抽象,是用户和数据库设计人员进行交流的工具,其中最著名的模型是“实体联系模型”(ER模型)。ER模型直接从现实世界中抽取出实体类型及实体间联系图(ER图)表示数据模型。一般遇到实际问题时,总是先设计一个ER模型,然后再把ER模型转换成与DBMS关联的数据模型。结构数据模型(亦称基本数据模型):这是直接面向数据库的逻辑数据结构,通常有一组严格定义了语法和语义的数据库语言,用来定义、操纵数据库中的数据。其主要有层次、网状、关系模型三种。◆层次模型:用树型(层次)结构表示实体类型及实体之间联系的数据模型称为层次模型。层次结构是一棵树,树的结点是记录类型,非根结点有且只有一个父结点。上一层记录类型和下一层记录类型的联系是1:M联系。◆网状模型:用从结构(网络结构)表示实体类型及实体间联系的数据模型称为网状模型。记录之间的联系通过指针实现,M:N联系容易实现(一个M:N联系可拆成两个1:M联系),查询效率高。◆关系模型:用规范化了的二维表格结构表示实体集,用键表示实体间联系。通常是若干个关系模型组成的集合。1.3数据库系统的结构数据库的数据体系结构数据库的数据体系结构分成3个级别:内部级、概念级、外部级。从某个角度看到的数据特性称为数据视图。外部级最接近用户,是用户看到的数据特性,用户的数据视图称为外模型。概念级是涉及到所有用户的数据定义,也就是全局的数据视图,称为概念模型。内部级是最接近于物理存储设备,涉及到实际数据的存储方式。物理存储的数据视图称为内模型。这些模型用数据库的数据定义语言(DDL)描述后,分别得到外模式、概念模式、内模式。为实现这3个抽象级别的转换,数据库和管理系统在这3级结构之间提供了两层映象:外模式/概念模式映象和概念模式/内模式映象数据库管理系统的主要目标:把数据作为可管理的资源处理。数据库管理系统的5个重要功能:数据库的定义功能、数据库的操纵功能、数据库的保护功能、数据库的维护功能、数据字典。数据库的全局结构:DBS的某些功能是由计算机的OS提供的,OS提供了DBS最基本的服务,因此DBS必须在OS基础上工作。在DBS中就应包含DBMS和OS之间的界面。DBS的全局结构由数据库用户、数据库管理系统的查询处理器、数据库管理系统的存储管理器和磁盘存储器中的数据结构等部分组成。1.4关系模型和关系运算系统分析师(软件设计师)计算机学科部分经典教材共21页第页3基本概述关系数据库是应用关系数据模型来建立和处理数据库中的数据。这其中主要涉及几个重要的概念。关系关系实际上就可以看作是一个二维表。其中,表的每一列称为属性,并用属性名来标识。每个属性的取值范围,就是该属性所对应的值域。表的每一行称为元组。约定该表的行、列的次序的改变,不改变关系的语义性质。对于一个关系,应该具备下列性质:关系中每一个属性值都是不可分解的;关系中不允许出现相同的元组;不让用户考虑元组的顺序;用户在使用时应考虑列的顺序。关系模型关系模型是目前最流行的一种数据模型,它是用二维表格结构表示实体集,关键码表示实体间的联系。关键字(键)I.候选键关系中的某一属性或属性组,若它的值可以唯一标识关系中的一个元组而又不含有多余的属性,则称该属性或属性组为候选关键字。II.主键关系模式中用户正使用的候选关键字称为主关键字。III.外关键字若模式R中某属性集是其他模式的候选键,那么该属性集对模式R而言就是外关键字。IV.超键关系模式中,为唯一标识元组的属性集称为超键。关系模型关系模型遵循数据库的3级体系结构。关系模式数据库的概念模式定义为关系模式的集合。每个关系模式就是记录类型。关系子模式这是对用户所用到的那部分数据的描述。除了指出用户用到的数据外,还应指出数据与模式中相应数据的联系,即指出子模式与模式之间的对应性。关系存储模式(关系内模式)这是作为文件看待的,每个元组就是一个记录。关系模型有3个部分构成:数据结构关系模型采用的数据结构是关系。关系操作关系模型提供一组完备的关系运算,以支持对数据库的各种操作。关系运算的理论是关系代数和关系演算。关系的完整性在关系模型中,数据的约束条件通过三类完整性约束条件来描述。即:系统分析师(软件设计师)计算机学科部分经典教材共21页第页4I.实体完整性要求关系中的元组的主键值不能是空值。II.参照完整性要求在关系中不允许引用不存在的实体。III.用户定义的完整性这是针对某一具体数据的约束条件,由应用环境决定,例如属性的值限制。关系代数关系查询语言根据其理论基础的不同分成两大类:关系代数语言:查询操作是以集合操作为基础的运算。关系演算语言:查询操作是以谓词演算为基础的运算。其中,关系代数是以集合代数为基础发展起来的,它是以关系为运算对象的一组高级运算的集合。关系代数的运算可分为两类:基本运算操作:并、差、笛卡尔积、投影和选择。组合运算操作:交、联接、自然联接和除。另外,还有几种扩充的关系代数操作:外联接(左外联接和右外联接)、外部并和半联接。以下对几种常用的关系运算作一个简单的介绍。基本运算1.并设有两个关系R和S具有相同的关系模式,关系R和S的并是由属于R或属于S的元组组成的集合,记为R∪S。形式定义如下:R∪S≡{t│t∈R∨t∈S}2.差设有两个关系R和S具有相同的关系模式,关系R和S的差是由属于R但不属于S的元组组成的集合,记为R-S。形式定义如下:R-S≡{t│t∈R∧t ̄∈S}3.笛卡儿积设关系R和S元数分别为r和s。定义R和S的笛卡儿积是一个(r+s)元的元组集合,每个元组的前r个分量来自R的一个元组,后s个分量来自S的一个元组,记为R×S形式定义如下:R×S≡{t│t=<tr,ts>tr∈R∧ts∈S}若R有m个元组,S有n个元组,则R×S有(mn)个元组。4.投影该操作是对关系进行垂直分割,消去某些列,并重新安排列的顺序,再删去重复元组。5.选择这个操作是根据某些条件对关系作水平分割,即选择符合条件的元组。条件可用命题公式F表示,F中的运算对象是常数(用引号括起来)或元组分量(属性名或列的序号)。运算符有算术比较运算符(≤,<,≥,>,=,≠)和逻辑运算符(∧,∨,┐)。δF(R)≡{t│t∈R∧F(t)=true}δ为选择运算符,δF(R)表示从R中挑选满足公式F的元组所构成的集合。常量用引号括起来,而属性号或属性名不要用引号括起来。组合运算1.交系统分析师(软件设计师)计算机学科部分经典教材共21页第页5设有两个关系R和S具有相同的关系模式,关系R和S的交是由属于R又属于S的元组组成的集合,记为R∩S。形式定义如下:R∩S≡{t│t∈R∧t∈S}2.联接(又称θ联接)从关系R和S的笛卡尔积中选取属性值之间满足一定条件的元组,记为:R│×│S≡δiθ(i+j)(R×S)ijθ这里R的元数是r,θ是算术比较运算符。R│×│S操作是在R和Sijθ的笛卡尔积中挑选第i个分量和第(r+j)个分量满足θ运算的元组组成的新的关系。3.自然联接两个关系R和S的自然联接用R│×│S表示,具体计算过程如下:A)计算R×SB)设R和S的公共属性是A1,A2,A3,..Ak.,挑选R×S中满足R.A1=S.A1,R.A2,...,R.Ak=S.Ak的那些元组C)去掉S.A1,S.A2,..S.AkR│×│S可用下列形式定义:R│×│S≡πi1i2,...,im(δR.A1=S.A1∧...∧R.Ak=S.Ak(R×S)。4.除法设两个关系R和S的元数分别为r和s(rs0),那么R÷S是一个(r-s)元的元组的集合。(R÷S)是满足下列条件的最大关系,其中每个元组t与S中每个元组u组成的新元组t,u必在关系R中。R÷S的具体计算过程如下:A)T=π1,2,..r-s(R)B)W=(T×S)-R求出T×S中不在R的元组C)V=π1,2,...r-s(W)D)R÷S=T-V因此R÷S≡π1,2,..r-s(R)-π1,2,..r-s((π1,2,..r-s(R)×S)-R)。1.5关系数据库SQL语言SQL数据库的数据体系结构SQL数据库的数据体系结构基本上也是3级结构,但术语与传统关系模型术语不同。SQL中,关系模型称为“基本表”,存储模式称为“存储文件”,子模式称为“视图”,元组称为“行”,属性称为“列”。SQL语言的组成一个SQL数据库是表的汇集,它用一个或多个SQL模式定义。一个SQL表由行集构成,一行是列的序列,每列对应一个数据项。一个表或者是一个基本表,或者是一个视图。基本表是实际存储在数据库的表,视图是由若干基本表或其他视图构成的表的定义。SQL包括了所有对数据库的操作,主要有4个部分:数据定义(SQLDDL)、数据操纵(SQLDML)、访问数据控制、嵌入式SQL语言的规定。SQLDDL主要是定义基本表、视图、索引3个部分:◆基本表的定义、修改、撤销基本表的定义可用“CREATETABLE”语句实现,增加属性可以用“ALTER...ADD...”语句,删除属性可系统分析师(软件设计师)计算机学科部分经典教材共21页第页6以用“ALTER...DROP...”语句;删除已存在的表可用“DROPTABLE...”语句。◆视图的定义和撤销视图的定义可以用CREATEVIEW语句实现。视图的撤消可以用DROPVIEW语句实现。◆索引的定义和撤销索引的定义可以用CREATE,用DR