资源描述:
《中南大学硕士数据库第1章绪论》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、数据库原理与技术PrincipleandTechniqueofDatabase第一章绪论(续)学习目标掌握最常用的数据模型掌握数据库系统的三级模式结构掌握数据库系统的二级映象功能理解数据库系统的组成了解数据库技术的研究领域1.2数据模型概念模型数据模型的组成要素最常用的数据模型层次模型网状模型关系模型最常用数据模型层次模型(HierarchicalModel)网状模型(NetworkModel)关系模型(RelationalModel)面向对象模型(ObjectOrientedModel)其中层次模型和网状模型统称为非关系模型,它们的数据结构
2、是以基本层次联系为基本单位,基本层次联系是两个记录及其一对多的联系;关系模型的数据结构是表;面向对象模型的数据结构是对象。层次模型:典型代表是IBM公司于1968年推出的第一个大型商用数据库管理系统IMS。数据结构:满足下面两个条件的基本层次联系的集合为层次模型:有且只有一个结点没有双亲结点,这个结点称为根结点;根以外的其它结点有且只有一个双亲结点。多对多联系在层次模型中的表示:利用冗余结点或虚拟结点将多对多联系分解成一对多联系。数据操纵与完整性约束:数据操纵包括查询、插入、删除、更新;完整性约束包括无相应的双亲结点值就不能插入子女结点值;如
3、果删除双亲结点值,则相应的子女结点值也被同时删除;更新操作时,应更新所有相应记录,以保证数据的一致性。存储结构邻接法:按照层次树前序遍历的顺序把所有记录值依次邻接存放,即通过物理空间的位置相邻来实现层次顺序。链接法:用指引元来反映数据之间的层次联系。子女-兄弟链接法见P26,层次序列链接法见P26。特点优点:层次数据模型简单,对具有一对多的层次关系的部门描述自然、直观,容易理解。性能优于关系模型,不低于网状模型。层次数据模型提供了良好的完整性支持。缺点:多对多联系表示不自然。对插入和删除操作的限制多。查询子女结点必须通过双亲结点。层次命令趋于
4、程序化。网状模型:典型代表是20世纪70年代数据库系统语言研究会CODASYL(ConferenceOnDataSystemLanguage)下属数据库任务组DBTG(DataBasetaskGroup)提出的DBTG系统数据结构:满足下面两个条件的基本层次联系集合为网状模型允许一个以上的结点无双亲。一个结点可以有多于一个的双亲。数据操纵与完整性约束:数据操纵包括查询、插入、删除、更新,但网状模型对数据操纵加了一些限制,提供了一定的完整性约束。支持记录码的概念,码是唯一标识记录的数据项的集合。双亲结点与子女结点之间是一对多联系。支持双亲记录和
5、子女记录之间某些约束条件,如允许插入尚未确定双亲结点值的子女结点值,允许只删除双亲结点值。存储结构:使用单向链接、双向链接、环状链接、向首链接等链接法实现记录之间的联系。特点优点能更为直接地描述现实世界,如一个结点可以有多个双亲。具有良好的性能,存取效率较高。缺点结构比较复杂,而且随着应用环境的扩大,数据库的结构就变得越来越复杂,不利于最终用户掌握。DDL、DML语言复杂,用户不容易使用。因记录之间联系是通过存取路径实现的,应用程序在访问数据时必须选择适当的存取路径,故用户须了解系统结构的细节,加重了编程的负担。关系模型:典型代表是1970年
6、美国IBM公司SanJose研究室的研究员E.F.Codd在美国计算机学会会刊《CommunicationoftheACM》上发表的题为“ARelationalModelofDataforSharedDataBank”的论文,是最重要的数据模型。数据结构:逻辑结构是一张二维表,它由行和列组成。关系模型的一些术语:关系(Relation):一个关系对应一张二维表。元组(Tuple):表中的一行即为一个元组。属性(Attribute):表中的一列即为一个属性,每一属性都有一个属性名。主码(Key):表中的某个属性组,它可以唯一确定一个元组。域(D
7、omain):属性的取值范围。分量:元组中的一个属性值。关系模式:对关系的描述,一般形式为关系名(属性1,属性2,…,属性n)。如学生(学号,姓名,年龄,性别,系别,年级)。相当于概念模型中的实体型关系模型中实体及实体间的联系都是用关系来表示的,如学生、课程、学生与课程间的多对多联系在关系模型中表示如下:学生(学号,姓名,年龄,性别,系别,年级)课程(课程号,课程名,学分)选修(学号,课程号,成绩)关系必须是规范化的,满足一定的规范条件。最基本的规范条件是关系的每一个分量必须是一个不可分的数据项。一个反例数据操纵与完整性约束:数据操纵包括查询
8、、插入、删除、更新,这些操作是集合操作,操作对象和操作结果都是关系,即若干元组的集合,同时关系模型中存取路径对用户隐蔽,用户只要指出“干什么”,不必详细说明“怎么干