1、1/168,An Introduction to Database Systems,第一章 绪论,2/168,An Introduction to Database Systems,第一章 绪论,1.1 数据库系统概述1.2 数据模型1.3 数据库系统结构1.4 数据库系统的组成1.5 小结,3/168,An Introduction to Database Systems,数据库的地位,数据库技术产生于六十年代末,是计算机科学的重要分支。数据库技术是信息系统的核心和基础,它的出现极大地促进了计算机应用向各行各业的渗透。数据库的建设规模、数据库信息量的大小和使用频度已成为衡量一个国家信息化程度
2、的重要标志。,4/168,An Introduction to Database Systems,常见的数据库产品,IBM DB2 and InformixMicrosoft SQL Server SybaseOracleMicrosoft AccessMySql,5/168,An Introduction to Database Systems,中国数据库市场,6/168,An Introduction to Database Systems,中国数据库市场,大数据时代的数据库,NoSQL数据库Key-value数据库,如Voldemort列存储数据库,如Hbase文档数据库,如MongoD
3、B图存数据库,如Neo4j,An Introduction to Database Systems,7/168,8/168,An Introduction to Database Systems,第一章 绪论,1.1 数据库系统概述 1.1.1 四个基本概念 1.1.2 数据管理技术的产生和发展 1.1.3 数据库系统的特点,9/168,An Introduction to Database Systems,1.1.1 四个基本概念,数据(Data)数据库(Database)数据库管理系统(DBMS)数据库系统(DBS),10/168,An Introduction to Database S
4、ystems,一、数据,数据(Data)是数据库中存储的基本对象数据的定义描述事物的符号记录数据的种类文本、图形、图像、音频、视频、学生的档案记录、货物的运输情况等数据的特点数据与其语义是不可分的,11/168,An Introduction to Database Systems,数据举例,数据的含义称为数据的语义,数据与其语义是不可分的。例如 93是一个数据语义1:学生某门课的成绩语义2:某人的体重语义3:计算机系2003级学生人数语义4:请同学给出。,12/168,An Introduction to Database Systems,数据举例,学生档案中的学生记录(李明,男,19720
5、5,江苏南京市,计算机系,1990)语义:学生姓名、性别、出生年月、籍贯、所在院系、 入学时间解释:李明是个大学生,1972年5月出生,江苏南京市人,1990年考入计算机系请给出另一个解释和语义,13/168,An Introduction to Database Systems,二、数据库,数据库的定义数据库(Database,简称DB)是长期储存在计算机内、有组织的、可共享的大量数据的集合。数据库的基本特征数据按一定的数据模型组织、描述和储存可为各种用户共享冗余度较小数据独立性较高易扩展,14/168,An Introduction to Database Systems,三、数据库管理系
6、统,什么是DBMS位于用户与操作系统之间的一层数据管理软件。是基础软件,是一个大型复杂的软件系统 DBMS的用途科学地组织和存储数据、高效地获取和维护数据,15/168,An Introduction to Database Systems,硬件平台,基础软件平台,软件基础构架平台,应用软件平台,软件产品,协同软件办公软件,数据库系统操作系统,中间件 应用服务器,数据库在计算机系统中的位置,16/168,An Introduction to Database Systems,DBMS的主要功能,数据定义功能 提供数据定义语言(DDL) 定义数据库中的数据对象数据组织、存储和管理 分类组织、存储
7、和管理各种数据 确定组织数据的文件结构和存取方式 实现数据之间的联系 提供多种存取方法提高存取效率,17/168,An Introduction to Database Systems,DBMS的主要功能(续一),数据操纵功能 提供数据操纵语言(DML) 实现对数据库的基本操作 (查询、插入、删除和修改)数据库的事务管理和运行管理 数据库在建立、运行和维护时由DBMS统一管理和控制保证数据的安全性、完整性、多用户对数据的并发使用发生故障后的系统恢复,18/168,An Introduction to Database Systems,DBMS的主要功能(续二),数据库的建立和维护功能(实用程序
8、) 数据库初始数据装载转换 数据库转储 介质故障恢复 数据库的重组织 性能监视分析等其它功能 DBMS与网络中其它软件系统的通信 两个DBMS系统的数据转换 异构数据库之间的互访和互操作,19/168,An Introduction to Database Systems,四、数据库系统,什么是数据库系统(Database System,简称DBS) 在计算机系统中引入数据库后的系统构成数据库系统的构成数据库数据库管理系统(及其开发工具)应用系统数据库管理员,20/168,An Introduction to Database Systems,数据库,应用系统,应用开发工具,操作系统,数据库管
9、理系统,数据库管理员,用户,用户,用户,数据库系统,21/168,An Introduction to Database Systems,1.1 数据库系统概述,1.1.1 四个基本概念 1.1.2 数据管理技术的产生和发展 1.1.3 数据库系统的特点,22/168,An Introduction to Database Systems,数据管理技术的产生和发展,什么是数据管理对数据进行分类、组织、编码、存储、检索和维护数据处理的中心问题数据管理技术的发展过程人工管理阶段(20世纪40年代中-50年代中)文件系统阶段(20世纪50年代末-60年代中)数据库系统阶段(20世纪60年代末-现在)
10、,23/168,An Introduction to Database Systems,数据管理技术的产生和发展(续),数据管理技术的发展动力应用需求的推动计算机硬件的发展计算机软件的发展,24/168,An Introduction to Database Systems,一、人工管理阶段,时期20世纪40年代中-50年代中产生的背景应用需求科学计算硬件水平无直接存取存储设备软件水平没有操作系统处理方式批处理,25/168,An Introduction to Database Systems,人工管理阶段(续),特点数据的管理者:用户(程序员),数据不保存数据面向的对象:某一应用程序 数据
11、的共享程度:无共享、冗余度极大数据的独立性:不独立,完全依赖于程序数据的结构化:无结构数据控制能力:应用程序自己控制,26/168,An Introduction to Database Systems,应用程序与数据的对应关系(人工管理阶段),人工管理阶段应用程序与数据之间的对应关系,27/168,An Introduction to Database Systems,二、文件系统阶段,时期20世纪50年代末-60年代中产生的背景应用需求科学计算、管理硬件水平磁盘、磁鼓软件水平有文件系统处理方式联机实时处理、批处理,28/168,An Introduction to Database Sys
12、tems,文件系统阶段(续),特点数据的管理者:文件系统,数据可长期保存数据面向的对象:某一应用程序 数据的共享程度:共享性差、冗余度大数据的结构化:记录内有结构,整体无结构数据的独立性:独立性差,数据的逻辑结构改变必须 修改应用程序数据控制能力:应用程序自己控制,29/168,An Introduction to Database Systems,应用程序与数据的对应关系(文件系统阶段),文件系统阶段应用程序与数据之间的对应关系,30/168,An Introduction to Database Systems,文件系统中数据的结构,记录内有结构。数据的结构是靠程序定义和解释的。数据只能是
13、定长的。可以间接实现数据变长要求,但访问相应数据的应用程序复杂了。文件间是独立的,因此数据整体无结构。可以间接实现数据整体的有结构,但必须在应用程序中对描述数据间的联系。数据的最小存取单位是记录。,31/168,An Introduction to Database Systems,三、数据库系统阶段,时期20世纪60年代末以来产生的背景应用背景大规模管理硬件背景大容量磁盘、磁盘阵列软件背景有数据库管理系统处理方式联机实时处理,分布处理,批处理,32/168,An Introduction to Database Systems,1.1 数据库系统概述,1.1.1 四个基本概念 1.1.2 数
14、据管理技术的产生和发展 1.1.3 数据库系统的特点,33/168,An Introduction to Database Systems,1.1.3 数据库系统的特点,数据结构化数据的共享性高,冗余度低,易扩充数据独立性高数据由DBMS统一管理和控制,34/168,An Introduction to Database Systems,数据结构化,整体数据的结构化是数据库的主要特征之一 整体结构化不再仅仅针对某一个应用,而是面向全组织不仅数据内部结构化,整体是结构化的,数据之间具有联系数据库中实现的是数据的真正结构化数据的结构用数据模型描述,无需程序定义和解释数据可以变长数据的最小存取单位是
15、数据项,35/168,An Introduction to Database Systems,数据的共享性高,冗余度低,易扩充,数据库系统从整体角度看待和描述数据,数据面向整个系统,可以被多个用户、多个应用共享使用。数据共享的好处减少数据冗余,节约存储空间避免数据之间的不相容性与不一致性 使系统易于扩充,36/168,An Introduction to Database Systems,数据独立性高,物理独立性指用户的应用程序与存储在磁盘上的数据库中数据是相互独立的。当数据的物理存储改变了,应用程序不用改变。逻辑独立性指用户的应用程序与数据库的逻辑结构是相互独立的。数据库的逻辑结构改变了,用
16、户程序也可以不变。数据独立性是由DBMS的二级映像功能来保证的,37/168,An Introduction to Database Systems,数据由DBMS统一管理和控制,DBMS提供的数据控制功能(1)数据的安全性(Security)保护保护数据,以防止不合法的使用造成的数据的泄密和破坏。(2)数据的完整性(Integrity)检查将数据控制在有效的范围内,或保证数据之间满足一定的关系。(3)并发(Concurrency)控制对多用户的并发操作加以控制和协调,防止相互干扰而得到错误的结果。(4)数据库恢复(Recovery)将数据库从错误状态恢复到某一已知的正确状态。,38/168,
17、An Introduction to Database Systems,应用程序与数据的对应关系(数据库系统),数据库系统阶段应用程序与数据之间的对应关系,39/168,An Introduction to Database Systems,第一章 绪论,1.1 数据库系统概述1.2 数据模型1.3 数据库系统结构1.4 数据库系统的组成1.5 小结,40/168,An Introduction to Database Systems,1.2 数据模型,1.2.1 两大类数据模型 1.2.2 数据模型的组成要素 1.2.3 概念模型 1.2.4 最常用的数据模型 1.2.5 层次模型 1.2.
18、6 网状模型 1.2.7 关系模型,41/168,An Introduction to Database Systems,数据模型,在数据库中用数据模型这个工具来抽象、表示和处理现实世界中的数据和信息。通俗地讲数据模型就是现实世界的模拟。数据模型应满足三方面要求能比较真实地模拟现实世界容易为人所理解便于在计算机上实现,42/168,An Introduction to Database Systems,1.2.1 两大类数据模型,数据模型分为两类(分属两个不同的层次)(1) 概念模型 也称信息模型,它是按用户的观点来对数据和信息建模,用于数据库设计。 (2) 逻辑模型和物理模型 逻辑模型主要包
19、括网状模型、层次模型、关系模型、面向对象模型等,按计算机系统的观点对数据建模,用于DBMS实现。物理模型是对数据最底层的抽象,描述数据在系统内部的表示方式和存取方法,在磁盘或磁带上的存储方式和存取方法。,43/168,An Introduction to Database Systems,两大类数据模型 (续),客观对象的抽象过程-两步抽象现实世界中的客观对象抽象为概念模型;把概念模型转换为某一DBMS支持的数据模型。,44/168,An Introduction to Database Systems,两大类数据模型 (续),DBMS支持的数据模型,概念模型,认识抽象,信息世界,机器世界,现
20、实世界中客观对象的抽象过程,现实世界,45/168,An Introduction to Database Systems,1.2 数据模型,1.2.1 两大类数据模型 1.2.2 数据模型的组成要素 1.2.3 概念模型 1.2.4 最常用的数据模型 1.2.5 层次模型 1.2.6 网状模型 1.2.7 关系模型,46/168,An Introduction to Database Systems,1.2.2 数据模型的组成要素,数据结构 数据操作 完整性约束条件,47/168,An Introduction to Database Systems,一、 数据结构,什么是数据结构描述数据库
21、的组成对象,以及对象之间的联系描述的内容与数据类型、内容、性质有关的对象与数据之间联系有关的对象数据结构是对系统静态特性的描述,48/168,An Introduction to Database Systems,二、数据操作,数据操作对数据库中各种对象(型)的实例(值)允许执行的 操作及有关的操作规则数据操作的类型查询更新(包括插入、删除、修改),49/168,An Introduction to Database Systems,数据操作(续),数据模型对操作的定义操作的确切含义操作符号操作规则(如优先级)实现操作的语言数据操作是对系统动态特性的描述,50/168,An Introduct
22、ion to Database Systems,三、数据的完整性约束条件,数据的完整性约束条件一组完整性规则的集合。完整性规则:给定的数据模型中数据及其联系所具有的制约和储存规则用以限定符合数据模型的数据库状态以及状态的变化,以保证数据的正确、有效、相容。,51/168,An Introduction to Database Systems,数据的完整性约束条件(续),数据模型对完整性约束条件的定义反映和规定本数据模型必须遵守的基本的通用的完整性约束条件。例如在关系模型中,任何关系必须满足实体完整性和参照完整性两个条件。提供定义完整性约束条件的机制,以反映具体应用所涉及的数据必须遵守的特定的语
23、义约束条件。,52/168,An Introduction to Database Systems,1.2 数据模型,1.2.1 两大类数据模型 1.2.2 数据模型的组成要素 1.2.3 概念模型 1.2.4 最常用的数据模型 1.2.5 层次模型 1.2.6 网状模型 1.2.7 关系模型,53/168,An Introduction to Database Systems,1.2.3 概念模型,信息世界中的基本概念两个实体型之间的联系两个以上实体型之间的联系单个实体型内的联系概念模型的一种表示方法一个实例,54/168,An Introduction to Database System
24、s,概念模型,概念模型的用途概念模型用于信息世界的建模是现实世界到机器世界的一个中间层次是数据库设计的有力工具数据库设计人员和用户之间进行交流的语言对概念模型的基本要求较强的语义表达能力能够方便、直接地表达应用中的各种语义知识简单、清晰、易于用户理解,55/168,An Introduction to Database Systems,一、信息世界中的基本概念,(1) 实体(Entity) 客观存在并可相互区别的事物称为实体。可以是具体的人、事、物或抽象的概念。(2) 属性(Attribute) 实体所具有的某一特性称为属性。一个实体可以由若干个属性来刻画。 (3) 码(Key) 唯一标识实体
25、的属性集称为码。,56/168,An Introduction to Database Systems,信息世界中的基本概念(续),(4) 域(Domain) 属性的取值范围称为该属性的域。 (5) 实体型(Entity Type) 用实体名及其属性名集合来抽象和刻画同类实体称为实体型(6) 实体集(Entity Set) 同一类型实体的集合称为实体集,57/168,An Introduction to Database Systems,信息世界中的基本概念(续),(7) 联系(Relationship) 现实世界中事物内部以及事物之间的联系在信息世界中反映为实体内部的联系和实体之间的联系。实
26、体内部的联系通常是指组成实体的各属性之间的联系实体之间的联系通常是指不同实体集之间的联系,58/168,An Introduction to Database Systems,二、两个实体型之间的联系,用图形来表示两个实体型之间的这三类联系,59/168,An Introduction to Database Systems,二、两个实体型之间的联系(续),一对一联系(1:1) 实例一个班级只有一个正班长一个班长只在一个班中任职定义: 如果对于实体集A中的每一个实体,实体集B中至多有一个(也可以没有)实体与之联系,反之亦然,则称实体集A与实体集B具有一对一联系,记为1:1,60/168,An
27、Introduction to Database Systems,两个实体型之间的联系 (续),一对多联系(1:n)实例一个班级中有若干名学生,每个学生只在一个班级中学习定义:如果对于实体集A中的每一个实体,实体集B中有n个实体(n0)与之联系,反之,对于实体集B中的每一个实体,实体集A中至多只有一个实体与之联系,则称实体集A与实体集B有一对多联系,记为1:n,61/168,An Introduction to Database Systems,两个实体型之间的联系 (续),多对多联系(m:n)实例课程与学生之间的联系:一门课程同时有若干个学生选修一个学生可以同时选修多门课程定义: 如果对于实
28、体集A中的每一个实体,实体集B中有n个实体(n0)与之联系,反之,对于实体集B中的每一个实体,实体集A中也有m个实体(m0)与之联系,则称实体集A与实体B具有多对多联系,记为m:n,62/168,An Introduction to Database Systems,三、两个以上实体型之间的联系,两个以上实体型之间一对多联系若实体集E1,E2,.,En存在联系,对于实体集Ej(j=1,2,.,i-1,i+1,.,n)中的给定实体,最多只和Ei中的一个实体相联系,则我们说Ei与E1,E2,.,Ei-1,Ei+1,.,En之间的联系是一对多的,63/168,An Introduction to D
29、atabase Systems,两个以上实体型之间的联系(续),实例 课程、教师与参考书三个实体型一门课程可以有若干个教师讲授,使用若干本参考书,每一个教师只讲授一门课程,每一本参考书只供一门课程使用,64/168,An Introduction to Database Systems,两个以上实体型之间的联系(续),多个实体型间的一对一联系两个以上实体型间的多对多联系实例 供应商、项目、零件三个实体型一个供应商可以供给多个项目多种零件每个项目可以使用多个供应商供应的零件每种零件可由不同供应商供给,65/168,An Introduction to Database Systems,四、单个实
30、体型内的联系,一对多联系实例 职工实体型内部具有领导与被领导的联系某一职工(干部)“领导”若干名职工一个职工仅被另外一个职工直接领导这是一对多的联系一对一联系 请举例,66/168,An Introduction to Database Systems,单个实体型内的联系,多对多联系请举例,67/168,An Introduction to Database Systems,五、 概念模型的一种表示方法,实体联系方法(E-R方法)用E-R图来描述现实世界的概念模型E-R方法也称为E-R模型,68/168,An Introduction to Database Systems,E-R图,实体型用
31、矩形表示,矩形框内写明实体名。属性用椭圆形表示,并用无向边将其与相应的实体连接起来,学生,教师,69/168,An Introduction to Database Systems,E-R图(续),联系联系本身: 用菱形表示,菱形框内写明联系名,并用无向边分别与有关实体连接起来,同时在无向边旁标上联系的类型(1:1、1:n或m:n),70/168,An Introduction to Database Systems,联系的表示方法,71/168,An Introduction to Database Systems,联系的表示方法示例,72/168,An Introduction to Da
32、tabase Systems,联系的属性,联系的属性:联系本身也是一种实体型,也 可以有属性。如果一个联系具有属性,则这些属性也要用无向边与该联系连接起来,73/168,An Introduction to Database Systems,六、一个实例,用E-R图表示某个工厂物资管理的概念模型实体仓库: 仓库号、面积、电话号码零件 :零件号、名称、规格、单价、描述供应商:供应商号、姓名、地址、电话号码、帐号项目:项目号、预算、开工日期职工:职工号、姓名、年龄、职称,74/168,An Introduction to Database Systems,一个实例,实体之间的联系如下: (1)一个
33、仓库可以存放多种零件,一种零件可以存放在多个仓库中。仓库和零件具有多对多的联系。用库存量来表示某种零件在某个仓库中的数量。(2)一个仓库有多个职工当仓库保管员,一个职工只能在一个仓库工作,仓库和职工之间是一对多的联系。职工实体型中具有一对多的联系 (3)职工之间具有领导-被领导关系。即仓库主任领导若干保管员。(4)供应商、项目和零件三者之间具有多对多的联系,75/168,An Introduction to Database Systems,一个实例,76/168,An Introduction to Database Systems,1.2 数据模型,1.2.1 两大类数据模型 1.2.2
34、数据模型的组成要素 1.2.3 概念模型 1.2.4 最常用的数据模型 1.2.5 层次模型 1.2.6 网状模型 1.2.7 关系模型,77/168,An Introduction to Database Systems,1.2.4 最常用的数据模型,非关系模型层次模型(Hierarchical Model)网状模型(Network Model)关系模型(Relational Model) 面向对象模型(Object Oriented Model)对象关系模型(Object Relational Model),78/168,An Introduction to Database System
35、s,1.2.5 层次模型,层次模型是数据库系统中最早出现的数据模型 层次数据库系统的典型代表是IBM公司的IMS(Information Management System)数据库管理系统层次模型用树形结构来表示各类实体以及实体间的联系,79/168,An Introduction to Database Systems,一、 层次数据模型的数据结构,层次模型 满足下面两个条件的基本层次联系的集合为层次模型1. 有且只有一个结点没有双亲结点,这个结点称为根结点2. 根以外的其它结点有且只有一个双亲结点层次模型中的几个术语根结点,双亲结点,兄弟结点,叶结点,80/168,An Introduct
36、ion to Database Systems,层次数据模型的数据结构(续),图1.16 一个层次模型的示例,81/168,An Introduction to Database Systems,层次数据模型的数据结构(续),层次模型的特点:结点的双亲是唯一的只能直接处理一对多的实体联系每个记录类型可以定义一个排序字段,也称为码字段任何记录值只有按其路径查看时,才能显出它的全部意义没有一个子女记录值能够脱离双亲记录值而独立存在,82/168,An Introduction to Database Systems,层次数据模型的数据结构(续),图1.17 教员学生层次数据库模型,根结点,记录型系
37、的子女结点记录型教员的双亲结点,叶结点,叶结点,字段,83/168,An Introduction to Database Systems,层次数据模型的数据结构(续),图1.18 教员学生层次数据库的一个值,84/168,An Introduction to Database Systems,二、多对多联系在层次模型中的表示,多对多联系在层次模型中的表示用层次模型间接表示多对多联系方法将多对多联系分解成一对多联系分解方法冗余结点法虚拟结点法,85/168,An Introduction to Database Systems,三、层次模型的数据操纵与完整性约束,层次模型的数据操纵查询插入删除
38、更新,86/168,An Introduction to Database Systems,层次模型的数据操纵与完整性约束(续),层次模型的完整性约束条件 无相应的双亲结点值就不能插入子女结点值如果删除双亲结点值,则相应的子女结点值也被同时删除更新操作时,应更新所有相应记录,以保证数据的一致性,87/168,An Introduction to Database Systems,四、层次数据模型的存储结构,邻接法按照层次树前序遍历的顺序把所有记录值依次邻接存放,即通过物理空间的位置相邻来实现层次顺序,88/168,An Introduction to Database Systems,层次数据
39、模型的存储结构(续),图1.20 层次数据库及其实例,A1,A2,C8,C6,C4,B6,C9,C2,B4,C14,C7,C5,C3,B1,A1,图1.21 邻接法,按邻接法存放图1.20(b)中以根记录A1为首的层次记录实例集,按邻接法存放图1.20(b)中以根记录A1为首的层次记录实例集,89/168,An Introduction to Database Systems,层次数据模型的存储结构(续),链接法用指引来反映数据之间的层次联系子女兄弟链接法层次序列链接法,90/168,An Introduction to Database Systems,层次数据模型的存储结构(续),子女-兄
40、弟链接法每个记录设两类指针,分别指向最左边的子女(每个记录型对应一个)和最近的兄弟,91/168,An Introduction to Database Systems,层次数据模型的存储结构(续),层次序列链接法按树的前序穿越顺序链接各记录值,92/168,An Introduction to Database Systems,五、层次模型的优缺点,优点层次模型的数据结构比较简单清晰 查询效率高,性能优于关系模型,不低于网状模型层次数据模型提供了良好的完整性支持缺点多对多联系表示不自然对插入和删除操作的限制多,应用程序的编写比较复杂 查询子女结点必须通过双亲结点由于结构严密,层次命令趋于程序
41、化,93/168,An Introduction to Database Systems,1.2 数据模型,1.2.1 两大类数据模型 1.2.2 数据模型的组成要素 1.2.3 概念模型 1.2.4 最常用的数据模型 1.2.5 层次模型 1.2.6 网状模型 1.2.7 关系模型,94/168,An Introduction to Database Systems,1.2.6 网状模型,网状数据库系统采用网状模型作为数据的组织方式 典型代表是DBTG系统:亦称CODASYL系统70年代由DBTG提出的一个系统方案奠定了数据库系统的基本概念、方法和技术实际系统Cullinet Softwar
42、e Inc.公司的 IDMSUnivac公司的 DMS1100Honeywell公司的IDS/2HP公司的IMAGE,95/168,An Introduction to Database Systems,1.网状数据模型的数据结构,网状模型满足下面两个条件的基本层次联系的集合:1. 允许一个以上的结点无双亲;2. 一个结点可以有多于一个的双亲。,96/168,An Introduction to Database Systems,网状数据模型的数据结构(续),表示方法(与层次数据模型相同)实体型:用记录类型描述 每个结点表示一个记录类型(实体)属性:用字段描述 每个记录类型可包含若干个字段联系
43、:用结点之间的连线表示记录类型(实体)之 间的一对多的父子联系,97/168,An Introduction to Database Systems,网状数据模型的数据结构(续),网状模型与层次模型的区别网状模型允许多个结点没有双亲结点网状模型允许结点有多个双亲结点网状模型允许两个结点之间有多种联系(复合联系)网状模型可以更直接地去描述现实世界层次模型实际上是网状模型的一个特例,98/168,An Introduction to Database Systems,网状数据模型的数据结构(续),网状模型中子女结点与双亲结点的联系可以不唯一要为每个联系命名,并指出与该联系有关的双亲记录和子女记录,
44、R1与R3之间的联系L1,R2与R3之间的联系L2,99/168,An Introduction to Database Systems,网状数据模型的数据结构(续),网状模型的例子,100/168,An Introduction to Database Systems,网状数据模型的数据结构(续),多对多联系在网状模型中的表示用网状模型间接表示多对多联系方法: 将多对多联系直接分解成一对多联系,101/168,An Introduction to Database Systems,网状数据模型的数据结构(续),例如:一个学生可以选修若干门课程,某一课程可以被多个学生选修,学生与课程之间是多对
45、多联系 引进一个学生选课的联结记录,由3个数据项组成学号课程号成绩表示某个学生选修某一门课程及其成绩,102/168,An Introduction to Database Systems,网状数据模型的数据结构(续),图1.24 学生/选课/课程的网状数据模型,103/168,An Introduction to Database Systems,网状数据模型的操纵与完整性约束(续),网状数据库系统(如DBTG)对数据操纵加了一些限制,提供了一定的完整性约束码:唯一标识记录的数据项的集合 一个联系中双亲记录与子女记录之间是一对多联系支持双亲记录和子女记录之间某些约束条件,104/168,An
46、 Introduction to Database Systems,三、网状数据模型的存储结构,关键实现记录之间的联系常用方法单向链接双向链接环状链接向首链接,105/168,An Introduction to Database Systems,网状数据模型的存储结构(续),图1.25 学生/选课/课程的网状数据库实例,学生记录,课程记录,选课记录,106/168,An Introduction to Database Systems,四、网状数据模型的优缺点,优点能够更为直接地描述现实世界,如一个结点可以有多个双亲具有良好的性能,存取效率较高缺点结构比较复杂,而且随着应用环境的扩大,数据库
47、的结构就变得越来越复杂,不利于最终用户掌握DDL、DML语言复杂,用户不容易使用,107/168,An Introduction to Database Systems,1.2 数据模型,1.2.1 两大类数据模型 1.2.2 数据模型的组成要素 1.2.3 概念模型 1.2.4 最常用的数据模型 1.2.5 层次模型 1.2.6 网状模型 1.2.7 关系模型,108/168,An Introduction to Database Systems,1.2.7 关系模型,关系数据库系统采用关系模型作为数据的组织方式 1970年美国IBM公司San Jose研究室的研究员E.F.Codd首次提出了数据库系统的关系模型 计算机厂商新推出的数据库管理系统几乎都支持关系模型,