《数据库理论基础》PPT课件.ppt
数据库理论基础,第六章,数据库理论基础,6.1 数据管理技术的发展及各阶段的特点 6.2 数据模型 6.3 关系数据库理论基础 6.4 数据库系统结构,61 数据管理技术的发展及各阶段的特点,表6-1 数据管理技术三个阶段的比较,6.1.1 人工管理阶段,产生的时期40年代中-50年代中产生的背景应用需求科学计算硬件水平无直接存取存储设备软件水平没有操作系统处理方式批处理,人工管理阶段(二),二者一一对应不具有数据独立性,应用程序与数据间的关系,人工管理阶段(三),数据的管理者:应用程序,数据不保存数据面向的对象:某一应用程序 数据的共享程度:无共享、冗余度极大数据的独立性:不独立,完全依赖于程序数据的结构化:无结构数据控制能力:应用程序控制,人工管理阶段的特点是什么?,6.1.2 文件管理阶段,产生的时期50年代末-60年代中产生的背景应用需求科学计算、信息管理硬件水平磁盘、磁鼓软件水平高级语言和操作系统(有文件系统)处理方式联机实时处理、批处理,文件管理阶段(二),应用程序与数据间的关系,文件管理阶段(三),文件系统阶段的数据管理有以下特点数据的管理者:文件系统,数据可长期保存数据面向的对象:某一应用程序 数据的共享程度:共享性差、冗余度大数据的结构化:记录内有结构,整体无结构数据的独立性:独立性差,若数据的逻辑结构改变则必须修改应用程序数据控制能力:主要由应用程序控制随着数据管理规模的扩大,数据量急剧增加,文件系统显露出三个缺陷数据冗余(redundancy)数据不一致(inconsistency)数据联系弱(poor data relationship),6.1.3 数据库系统管理阶段,数据管理技术进入数据库阶段的标志是20世纪60年代末的三件大事1968年美国IBM公司推出层次模型的IMS系统1969年美国CODASYL组织发布了DBTG报告,总结了当时各式各样的数据库,提出网状模型1970年美国IBM公司的E.F.Codd 连续发表论文,提出关系模型,奠定了关系数据库的理论基础产生的背景应用背景大规模管理硬件背景大容量磁盘软件背景有数据库管理系统处理方式联机实时处理,分布处理,批处理,数据库管理阶段(二),程序和数据间的联系,Database Management System数据库管理系统,数据库管理阶段(三),数据库阶段的数据管理具有以下特点数据的管理者:DBMS数据面向的对象:现实世界数据的共享程度:共享性高数据的独立性:高度的物理独立性和一定的逻辑独立性数据的结构化:采用数据模型表示复杂的数据结构,整体结构化数据控制能力:由DBMS统一管理和控制,提供数据库的并发控制,数据库的恢复,数据的完整性和数据安全性等功能数据库系统为用户提供了方便的用户接口。,数据库管理阶段(四),数据库应用的一般结构,用户,数据库应用,DBMS,数据库,6.2 数据模型,6.2.1 概念模型6.2.2 数据模型,事物概念模型和数据模型的关系,现实世界,信息世界,数据世界,抽象化,数据化,(概念模型),(数据模型),(事物),数据模型的概念,根据应用目的,模型分为两个层次:概念模型(信息模型)独立于计算机实现的,只用来描述和组织所关心的信息结构的概念数据模型对应于信息世界数据模型直接面向计算机系统的,描述数据库中数据的逻辑结构的基本数据模型对应于数据世界,6.2.1 概念模型,信息世界中的基本概念(1)实体(Entity)(2)实体集(Entity Set)(3)属性(Attribute)(4)关键字(Key)(5)域(Domain)(6)实体型(Entity Type),概念模型(二),概念模型反映实体型及其联系的结构形式联系(Relationship):两类实体内部的联系实体之间的联系两个实体型之间的联系可分为三类:1对1联系(1:1)1对多联系(1:n)多对多联系(m:n),概念模型实体联系模型,1对1联系定义:若对于实体集A中的每一个实体,实体集B中至多有一个实体与之联系,反之亦然,则称实体集A与实体集B具有一对一联系,记为1:1。,概念模型实体联系模型,1对多联系定义:若对于实体集A中的每一个实体,实体集B中有n个实体(n0)与之联系,反之,对于实体集B中的每一个实体,实体集A中至多只有一个实体与之联系,则称实体集A与实体集B具有一对多联系,记为1:n。,概念模型实体联系模型,多对多联系定义:若对于实体集A中的每一个实体,实体集B中有n个实体(n0)与之联系,反之,对于实体集B中的每一个实体,实体集A中也有m个实体(m0)与之联系,则称实体集A与实体集B具有多对多联系,记为m:n。,6.2.2 数据模型,数据模型的三要素数据结构(最重要)数据操作检索更新(删除、插入、更改)数据的完整性约束,数据模型的分类,当前流行的基本数据模型有4类:层次模型(树)网状模型(图)关系模型(Relational Model)(表)面向对象模型,层次模型,最早使用的一种模型数据结构是一棵有向树特点:,A,B,A_C,C,层次模型举例,网状模型,数据结构是一个有向图特点:能表示实体之间的多种复杂联系缺点:编写应用程序比较复杂,需熟悉数据库的逻辑结构,A,A_B,B_C,B,C,关系模型,数据的逻辑结构是二维表有严格的数学基础及关系数据理论由若干个关系模式组成市场上典型的关系DBMS产品:DB2,ORACLE,SYBASE,SQL Server,Informix等微机型产品:Foxpro,Access,Paradox等,数据模型中基本术语,(1)字段(field)标记实体属性的命名单位称为字段,或数据项。(2)记录(record)字段的有序集合称为记录(3)文件(file)同一类记录的集合称为文件(4)关键码(key)能惟一标识文件中每个记录的字段或字段集,称为记录的关键码(简称为键),6.3 关系数据库理论基础,6.3.1 关系的定义6.3.2 关系模型的常用术语6.3.3 关系代数6.3.4 关系的完整性,6.3.1 关系的定义,1域(Domain)2笛卡尔积(Cartesian Product)3关系,域(Domain),域是一组具有相同数据类型的值的集合例如整数、实数、字符串、大于0且小于500的整数“男”,“女”,笛卡尔积(Cartesian Product),给定一组域D1,D2,Dn,则D1,D2,Dn的笛卡尔积表示为:D1D2Dn=(d1,d2,dn)|diDi,i=1,2,n 其中每一个(d1,d2,dn)叫作一个n元组或简称元组,元组中的每一个值di叫作一个分量笛卡尔积可以表示为一张二维表表中每一行即对应一个元组表中的每一列对应一个域,D1=男人集合Man=王兵,李军,张伟D2=女人集合Woman=丁梅,吴芳D3=孩子集合Children=王一,李一,李二,D1D2D3=(王兵,丁梅,王一),(王兵,丁梅,李一),(王兵,丁梅,李二),(王兵,吴芳,王一),(王兵,吴芳,李一),(王兵,吴芳,李二),(李军,丁梅,王一),(李军,丁梅,李一),(李军,丁梅,李二),(李军,吴芳,王一),(李军,吴芳,李一),(李军,吴芳,李二),(张伟,丁梅,王一),(张伟,丁梅,李一),(张伟,丁梅,李二),(张伟,吴芳,王一),(张伟,吴芳,李一),(张伟,吴芳,李二),该D1,D2,D3的笛卡尔积的基数=323=18,即有18个元组,这18个元组可以组成一张二维表。,关系,D1D2Dn的子集叫作在域D1,D2,Dn上的关系,表示为:R(D1,D2,Dn)。其中R表示关系名,n是关系的度。关系是笛卡尔积的有限子集,所以关系也是一张二维表。表中的每列对应一个域,表中的每行对应一个元组。由于域可以相同,为了加以区分,必须给每列起一个名字,称为属性。,例如针对Man、Woman、Children集合,存在这样事实:王兵与丁梅是一对夫妻,拥有子女王一;李军和吴芳是一对夫妻,拥有李一和李二两个子女,则从原笛卡尔积中可以得到一个子集R:R=(王兵,丁梅,王一),(李军,吴芳,李一),(李军,吴芳,李二)R即称为一个关系,若将该关系命名为Family,可得到二维表6-3。,关系Family,关系具有以下性质,(1)关系中每一列的值都是同一类型的数据,来自同一个域。(2)关系中不同的列可以对应同一个域,但必须给予不同的属性名。(3)关系中任意两个元组不能完全相同。(4)关系中元组的次序可以随意交换。(5)关系中列的次序可以任意交换。(6)关系中每一个分量必须是不可分的数据项。,6.3.2 关系模型的常用术语,高雪,高雪,表6-5 系部一览,(1)关系:即二维表格,如表6-5。(2)元组:表中的一行。(3)属性:表中的一列,通常每列有一个列名,即属性名,如表6-5对应三个属性:部门编号、部门和系主任。(4)主键:表中可以惟一确定一个元组的属性组,如表6-5中部门编号,只要给定一个确定的部门编号,就可以确定该部门的部门名称及电话等其它属性值。注意:主键可以是一个属性,也可能由几个属性构成。(5)域:属性的取值范围。(6)关系模式:对关系的描述,其表示形式为:关系名(属性1,属性2,属性n)例如表6-5的关系可描述为:系部一览(部门编号、部门、系主任),6.3.3 关系代数,关系代数是由一组以关系作为运算对象的特定运算组成的传统的集合运算已知集合R、S并(R S):同属于R、S的元组的集合差(R-S):属于R 而不属于S 的所有元组组成的集合交(R S):同时属于R、S 的元组组成的集合笛卡尔积(R S):关系中的元组为每一个R中的元组与所有的S 中的元组的组合,例6-1 已知关系R、S和T如表6-7、6-8及6-9所示,求出RS、RS、R-S和RT。,表6-7 关系R,表6-7 关系R,表6-9 关系T,表6-8 关系S,表6-10 RS,表6-11 关系RS,表6-12 关系R-S,表6-13 关系RT,专门的关系运算投影,关系R上的投影是从R中选择若干属性列组成新的关系,记作:A(R)=tA|tR 其中A为R中的属性列,例6-2 已知关系S如表6-8所示,计算出A,C(S)。,表6-8 关系S,表6-14 关系A,c(S),注意:关系中任意两个元组不能完全相同,因此进行投影运算后得到的关系应消去重复元组。,专门的关系运算选择,选择是在关系R中选择满足给定条件的元组,记作:(R)=t|tR F(t)=真 其中F表示选择条件,它是一个逻辑表达式,取逻辑值“真”或“假”。F是由比较运算符或逻辑运算符连接组成的表达式,运算对象可以是常量、变量(属性名)或简单函数,属性名也可以用其序号来代替。选择运算实际上就是从关系R中选取使逻辑表达式F为真的元组,它是对关系的水平分割。,例6-3 已知关系S如表6-8所示,计算出A=A1(R)。,表6-15 关系A=A1(R),表6-8 关系S,专门的关系运算连接,连接是从两个关系的笛卡尔积中选取属性间满足一定条件的元组,记作:,例6-4 已知关系R和S如表6-16和6-17所示,计算出RS。,表6-16 关系R,表6-17 关系S,表6-18 关系RS,专门的关系运算除,设关系R(X,Y)和S(Y,Z),其中X,Y,Z为属性组。R中的Y与S中的Y为对应的属性,可以有不同的属性名,但必须出自相同的域集。则R与S的除运算得到一个新的关系P(X),记作:,例6-5 已知关系R、S1和S2如表6-19、表6-20和表6-21所示,计算出RS1及R S2。,表6-19 关系R,表6-20 关系S1,表6-22 关系RS1,表6-23 关系R S2,表6-21 关系S2,表6-19 关系R,例6-6 使用关系运算表示出选修“计算机基础”课程的学生名单。,分析:首先对“课程一览”表进行选择和投影运算,得到一个新的关系R1,其内容是课程名为“计算机基础”的课程号,将此关系(R1)与“学生成绩”表进行自然连接运算及投影运算后,得到选修“计算机基础”课程的学生的学号,再与“学生情况”表进行自然连接运算和投影运算,可得到学生姓名。,R1=课程号(课程名=计算机基础(课程一览)R2=学号(R1学生成绩)R3=姓名(学生情况R2),6.3.4 关系的完整性,实体完整性参照完整性用户自定义完整性,参照完整性,6.4 数据库系统结构,6.4.1 数据库系统的三级模式结构6.4.2 数据库系统的两级映像,6.4.1 数据库系统的三级模式结构,三级模式(数据抽象的三个级别)外模式(用户模式)模式(逻辑模式)(概念模式)内模式(存储模式),6.4.2 数据库系统的两级映像,两级映像外模式/模式映像模式/内模式映像,数据库的体系结构,三级模式是处理数据的结构框架(数据库框架),