您好,欢迎访问三七文档
当前位置:首页 > IT计算机/网络 > 数据库 > SQLSever2008数据库技术实用教程.
1.8四种数据模型•非关系模型(以图论为理论基础)–层次模型(HierarchicalModel)–网状模型(NetworkModel)在非关系模型中,实体用记录表示,实体属性对应记录的数据项(或字段),实体之间的联系转化为记录之间的两两联系,图中用结点表示记录。数据结构:以基本层次联系为基本单位基本层次联系:两个记录以及它们之间的一对多(包括一对一)的联系RIRJLIJ双亲结点Parent子结点Child联系名(注意与E-R图的形式区别;联系由指针链接完成)•关系模型(RelationalModel)–数据结构:表•面向对象模型(ObjectOrientedModel)–数据结构:对象1.层次数据模型的数据结构(树状结构)层次模型:满足下面两个条件的基本层次联系的集合为层次模型1.有且只有一个结点没有双亲结点,这个结点称为根结点2.根以外的其它结点有且只有一个双亲结点(父节点)层次模型中的几个术语:根结点,双亲结点,子节点,兄弟结点,叶结点1.8.1层次模型典型代表:1968年IBM公司IMS(InformationManagementSystem)R1R2R3R4R5根节点兄弟节点叶节点叶节点叶节点图示:•表示方法实体型:用记录类型描述。每个结点表示一个记录类型。属性:用字段描述。每个记录类型可包含若干个字段。联系:用结点之间的连线表示记录(类)型之间的一对多的联系例:教员-学生数据模型(P26)系编号系名办公地点职工号姓名研究方向教研室编号教研室学号姓名成绩系D教研室R教师T学生S•特点–结点的双亲是唯一的–只能直接处理一对多的实体联系–每个记录类型定义一个排序字段,也称为码字段–任何记录值只有按其路径查看时,才能显出它的全部意义–没有一个子女记录值能够脱离双亲记录值而独立存在•多对多联系在层次模型中的表示–用层次模型间接表示多对多联系–方法将多对多联系分解成一对多联系–分解方法•冗余结点法•虚拟结点法(虚拟节点就是一个指引元,指向所替代的节点。)多对多关系冗余结点法虚拟结点法2.层次模型的数据操纵与完整性约束•查询、插入、删除、更新,要满足层次模型的完整性约束条件•无相应的双亲结点值就不能插入子女结点值•如果删除双亲结点值,则相应的子女结点值也被同时删除•更新操作时,应更新所有相应记录,以保证数据的一致性3.层次数据模型的存储结构•邻接法按照层次树前序遍历的顺序把所有记录值依次邻接存放,即通过物理空间的位置相邻来实现层次顺序…链接法用指引元来反映数据之间的层次联系子女-兄弟链接法层次序列链接法(即邻接法)(邻接法)5.层次模型的优缺点•优点–层次数据模型简单,对具有一对多的层次关系的部门描述自然、直观,容易理解–性能优于关系模型,不低于网状模型–层次数据模型提供了良好的完整性支持•缺点–多对多联系表示不自然–对插入和删除操作的限制多–查询子女结点必须通过双亲结点层次模型1.8.2网状模型网状数据库系统采用网状模型作为数据的组织方式,典型代表DBTG系统70年代数据系统语言研究会CODASYL(ConferenceOnDataSystemLanguage)下属的数据库任务组DBTG(DataBaseTaskGrupe)提出的系统方案。(不是具体的软件系统.DBTG奠定了基本概念、方法、技术其它公司开发的软件系统都采用了DBTG模型)实际系统CullinetSoftwareInc.公司的IDMSUnivac公司的DMS1100Honeywell公司的IDS/2HP公司的IMAGE1.网状数据模型的数据结构网状模型满足下面两个条件的基本层次联系的集合为网状模型。1.允许一个以上的结点无双亲;2.一个结点可以有多于一个的双亲。•表示方法(与层次数据模型相同)实体型:用记录类型描述。每个结点表示一个记录类型。属性:用字段描述。每个记录类型可包含若干个字段。联系:用结点之间的连线表示记录(类)型之间的一对多的父子联系。•网状模型与层次模型的区别–网状模型允许多个结点没有双亲结点–网状模型允许结点有多个双亲结点–网状模型允许两个结点之间有多种联系(复合联系)–网状模型可以更直接地去描述现实世界(层次模型实际上是网状模型的一个特例)网状模型的例:学生宿舍学生教研室系教师父母人子女树种植砍伐养育赡养网状模型的例:实际的商品网状DBMS对数据结构有很多限制,例如HP公司的IMAGE3000限制网状结构只有两层,不能直接表示多对多关系。多对多联系在网状模型中的表示–用网状模型间接表示多对多联系–方法将多对多联系直接分解成一对多联系例:‘学生’与‘课程’是多对多关系,引进了‘学生选课’的联接记录,分解成一对多关系。2.网状数据模型的操纵和完整性约束(一般网状模型没有层次模型那样严格的完整性约束条件,例如允许插入尚未确定双亲结点值的子女结点值,允许只删除双亲结点值,但具体的系统都加了一定的限制)网状数据库系统(如DBTG)对数据操纵加了一些限制,提供了一定的完整性约束•支持记录码:唯一标识记录的数据项的集合,不重复•保证双亲结点与子女结点之间是一对多联系•支持双亲记录和子女记录的某些约束条件(例如有些子女记录要求双亲记录存在方可插入;双亲记录删除时子记录一并删除)3.网状数据模型的存储结构•关键–实现记录之间的联系•常用方法–单向链接–双向链接–环状链接–向首链接单向链接法4.网状模型的优缺点•优点能够更为直接地描述现实世界,如一个结点可以有多个双亲具有良好的性能,存取效率较高•缺点–结构比较复杂,而且随着应用环境的扩大,数据库的结构就变得越来越复杂,不利于最终用户掌握–DDL、DML语言复杂,用户不容易使用1.8.3关系模型•最重要的一种数据模型。也是目前主要采用的数据模型•1970年由美国IBM公司SanJose研究室的研究员E.F.Codd提出《ARelationModelofDataforLargeSharedDataBank》(大型共享数据银行数据的关系模型)•是本课程的重点1.关系数据模型的数据结构和基本概念从数学上看,关系就是一个元数为K(K=1)的元组的集合。关系模型的基本概念–关系(Relation)一个关系对应通常说的一张表。–元组(Tuple)表中的一行即为一个元组。–属性(Attribute)表中的一列即为一个属性,给每一个属性起一个名称即属性名。特征---属性名、类型、长度•主码(Key关键字、关系键、主键)表中的某个属性组,它可以唯一确定一个元组。•域(Domain)属性的取值范围。•分量元组中的一个属性值。•关系模式对关系的描述关系名(属性1,属性2,…,属性n)例:学生(学号,姓名,年龄,性别,系,年级)关系实例关系模式的值,即关系的数据、表中数据见P29例)•实体及实体间的联系的表示方法–实体型:直接用关系(表)表示。–属性:用属性名表示。–一对一联系:隐含在实体对应的关系中。–一对多联系:隐含在实体对应的关系中。–多对多联系:直接用关系表示。例1学生、系(实体):系与学生之间的一对多联系学生(学号,姓名,年龄,性别,系号,年级)系(系号,系名,办公地点)例2系、系主任(实体):系与系主任间的一对一联系例3学生、课程(实体):学生与课程之间的多对多联系:学生(学号,姓名,年龄,性别,系号,年级)课程(课程号,课程名,学分)选修(学号,课程号,成绩)•关系必须是规范化的,满足一定的规范条件最基本的规范条件:关系的每一个分量必须是一个不可分的数据项。(不允许表中还有表)术语对比,要求熟知2.关系模型的数据操纵•查询、插入、删除、更新•数据操作是集合操作,操作对象和操作结果都是关系,即若干元组的集合•存取路径对用户隐蔽,用户只要指出“干什么”,不必详细说明“怎么干”3.关系模型的完整性约束•实体完整性•参照完整性•用户定义的完整性4.关系数据模型的存储结构•实体及实体之间的联系都用表来表示•表以文件形式存储•有的DBMS一个表对应一个操作系统文件•有的DBMS自己设计文件结构5.关系模型的优缺点•优点–建立在严格的数学概念的基础上–概念单一。数据结构简单、清晰,用户易懂易用•实体和各类联系都用关系来表示。•对数据的检索结果也是关系。–关系模型的存取路径对用户透明•具有更高的数据独立性,更好的安全保密性•简化了程序员的工作和数据库开发建立的工作关系模型和层次、网状模型的最大差别是用主键而不是用指针导航数据,其表格简单,用户易懂,用户只需用简单的查询语句就可以对数据库进行操作,并不涉及存储结构、访问技术等细节。关系模型是数学化的模型。由于把表格看成一个集合,因此集合论、数理逻辑等知识可引入到关系模型中来。•缺点存取路径对用户透明导致查询效率往往不如非关系数据模型为提高性能,必须对用户的查询请求进行优化增加了开发数据库管理系统的难度1.8.4面向对象模型面向对象(Object-Oriented)概念于1968年出现在Smalltalk语言中。现在亦使用在数据库技术中。•第一代DBS:层次、网状数据库系统第二代DBS:关系数据库系统•这两代DBS的应用领域主要在商务领域,其特点是所处理的事务比较小,诸如存款取款、购票订票、财务管理、仓库管理、人事管理、统计管理等。•随着计算机应用领域的拓广,这两代DBS已不能适用新的应用需要,譬如多媒体数据、空间数据、时态数据、复合数据等。同时,传统数据库的数据结构比较简单,不能支持新的数据类型和嵌套、递归的数据结构。•因此,这两代DBMS很难满足CAD/CAM、CASE、图像处理、GIS等新的应用领域的需要。为适应新的应用需要,应提出新的数据模型、数据库系统。•对于第二代以后的新一代DBS,有两种观点。这两种观点虽然都是从OO技术和DB技术相结合的角度考虑,但方法不一样。•1989年9月,一批专门研究OO技术的学者著文“面向对象数据库系统宣言”,提出继第一、二代DBS后,新一代DBS将是OODBS,即在面向对象程序设计语言中引入数据库技术。•而另外一批长期从事关系数据库研究的学者在1990年9月著文“第三代数据库系统宣言”,提出不同的看法,认为新一代DBS是从关系DBMS自然地加入OO技术进化到具有新功能的结果。从这两种观点出发,各自研制了一批DBS。–对象和对象标识•对象是现实世界中实体的模型化。•对象标识独立于对象的内容和存储位置,是一种逻辑标识符,通常由系统产生,它在整个系统范围内是惟一的。•两个对象即使内部状态值和方法都相同,如标识符不同,仍认为是两个相等而不同的对象。•每个对象都包含一组属性和一组方法。–类(Class)和继承(Inheritance)•具有同样属性和方法集的所有对象构成了一个对象类,一个对象是某一类的实例。•类的属性域可以是基本数据类型(如整型、实型、字符型等),也可以是类。•类的表示具有层次性和继承性。对象类型值类:选课课程●学生●分数类:课程课号课程名任课教师●学号姓名年龄性别。类:学生教师号教师姓名教研室。类:教师例:•面向对象模型的优缺点能完整地描述现实世界的数据结构具有丰富的表达能力优点模型相对比较复杂缺点涉及的知识比较多因此,面向对象数据库尚未达到关系数据库的普及程度1.9数据库系统的发展关系数据模型格式化数据模型(层次数据模型和网状数据模型)面向对象的数据模型1.支持三级模式的体系结构;2.用存取路径来表示数据之间的联系;3.独立的数据定义语言;4.导航的数据操纵语言。1.概念单一,实体以及实体之间的联系都用关系来表示;2.以关系代数为基础,形式化基础好;3.数据独立性强,数据的物理存取路径对用户隐蔽;4.关系数据库语言是非过程化的,大大降低了用户编程的难度。1.支持面向对象的数据模型;2.保持或继承第二代数据库系统的优点;3.具有开放性。第一代第二代第三代传统数据库缺点:1.面向机器的语法数据模型;2.数据类型简单、固定;3.结构与行为完全分离;4.被动响应;5.事务处理能力较差。关系数据模型格式化数据模型(层次数据模型和网状数据模型)第一代第二代层次模型网状模型关系模型面向对象模型创始1968年IBM公司的IMS系统1969
本文标题:SQLSever2008数据库技术实用教程.
链接地址:https://www.777doc.com/doc-2860321 .html