610 likes | 836 Views
第二章 数据模型. 2.1 数据建模的过程 2.2 概念模型 2.3 数据模型的组成要素 2.4 结构化数据模型 2.5 非结构化数据模型. 2.1 数据建模的过程. 数据模型( Data Model )是对现实世界中事物和对象数据特征的抽象,是用来描述数据的一组概念和定义 。 数据建模应满足三方面要求 能比较 真实地 模拟现实世界 容易为人所理解 便于在计算机上 实现. 2.1 数据建模的过程. 数据模型分成三类: (1) 概念模型 也称信息模型,它是按用户的观点来对数据和信息建模。 主要用于数据库设计阶段。
E N D
第二章 数据模型 • 2.1 数据建模的过程 • 2.2 概念模型 • 2.3 数据模型的组成要素 • 2.4 结构化数据模型 • 2.5 非结构化数据模型
2.1 数据建模的过程 • 数据模型(Data Model)是对现实世界中事物和对象数据特征的抽象,是用来描述数据的一组概念和定义。 • 数据建模应满足三方面要求 • 能比较真实地模拟现实世界 • 容易为人所理解 • 便于在计算机上实现
2.1 数据建模的过程 • 数据模型分成三类: (1) 概念模型 也称信息模型,它是按用户的观点来对数据和信息建模。 主要用于数据库设计阶段。 (2) 逻辑模型 主要是按计算机系统的观点对数据建模,通过严格的形式化定义描述数据库的逻辑结构。 (3)物理模型 描述数据在计算机内的物理结构,包括表示方法、存储方式和存取方法等,用于实现数据库管理信息系统。
2.1 数据建模的过程 现实世界 → 概念模型: 现实世界通过认识和抽象,成为概念模型, 由数据库设计人员,通过E-R模型完成。 概念模型→逻辑模型: 概念模型通过转换,成为DBMS支持的逻辑模型。由数据库设计人员或者设计工具协助完成。 逻辑模型→物理模型: 由DBMS来完成。
2.2概念模型 • 概念模型的用途 • 概念模型用于信息世界的建模 • 完成从现实世界到机器世界的第一层抽象 • 是数据库设计的有力工具 • 数据库设计人员和用户之间进行交流的语言 • 对概念模型的基本要求 • 较强的语义表达能力,能够方便、直接地表达应用中的各种语义知识 • 简单、清晰、易于用户理解。
2.2概念模型 2.2.1 基本概念 2.2.2 实体-联系模型 2.2.3 UML
2.2.1 基本概念 现实世界的信息是通过实体、属性以及联系等概念的划分来认识的。 (1) 实体(Entity) 客观存在并可相互区别的事物称为实体。 可以是具体的人、事、物或抽象的概念。 (2) 属性(Attribute) 实体所具有的某一特性称为属性。 一个实体可以由若干个属性来刻画。 (3) 码(Key) 唯一标识实体的属性集称为码。
2.2.1 基本概念 (4) 域(Domain) 属性的取值范围称为该属性的域。 (5) 实体型(Entity Type) 具有相同属性的实体必然具有共同的静态特征,理解为类型。用实体名及其属性名集合来抽象和刻画。 例如销售记录中服装编号,顾客编号,购买日期,数量等属性构成一个销售记录的实体型。 (6) 实体集(Entity Set) 相同特征的实体集合称为实体集。所有销售记录就是一个实体集。 实体集是动态的。
2.2.1 基本概念 (7) 联系(Relationship) 现实世界中事物内部以及事物之间的联系在信息世界 中抽象为实体内部的联系和实体之间的联系。 实体型间联系 (两个实体型): 一对一联系(1:1) 一对多联系(1:n) 多对多联系(m:n)
实体型1 实体型1 实体型1 1 1 m 联系名 联系名 联系名 n 1 n 实体型2 实体型2 实体型2 m:n联系 1:n联系 1:1联系 两个实体型间的联系
两个实体型间的联系 • 一对一联系 • 如果对于实体集A中的每一个实体,实体集B中至多有一个实体与之联系,反之亦然,则称实体集A与实体集B具有一对一联系。记为1:1。 • 实例 班级与班长之间的联系: • 一个班级只有一个正班长 一个正班长只在一个班级
数据联系的描述 实体集A 实体集B 乘客 座位 (1:1)联系
两个实体型间的联系 • 一对多联系 • 如果对于实体集A中的每一个实体,实体集B中有n个实体(n≥0)与之联系,反之,对于实体集B中的每一个实体,实体集A中至多只有一个实体与之联系,则称实体集A与实体集B有一对多联系 记为1:n • 实例 服装厂商与服装之间的联系: 一个服装厂商可以生产多款服装, 每款服装只能由一个服装厂商生产
数据联系的描述 实体集A 实体集B 车间 工人 (1:n)联系
两个实体型间的联系 • 多对多联系(m:n) • 如果对于实体集A中的每一个实体,实体集B中有n个实体(n≥0)与之联系,反之,对于实体集B中的每一个实体,实体集A中也有m个实体(m≥0)与之联系,则称实体集A与实体B具有多对多联系。记为m:n • 实例 顾客与服装之间的联系: 一个顾客可以选购多种服装, 而每种服装可以被多个顾客选购
数据联系的描述 实体集A 实体集B 学生 课程 (m:n)联系
多个实体型间的联系 • 多个实体型间的一对多联系 • 若实体集E1,E2,...,En存在联系,对于实体集Ej(j=1,2,...,i-1,i+1,...,n)中的给定实体,最多只和Ei中的一个实体相联系,则我们说Ei与E1,E2,...,Ei-1,Ei+1,...,En之间的联系是一对多的。
多个实体型间的联系 • 实例 课程、教师与参考书三个实体型 如果一门课程可以有若干个教师讲授,使用若干 本参考书,每一个教师只讲授一门课程,每一本 参考书只供一门课程使用 课程与教师、参考书之间的联系是一对多的 • 多个实体型间的一对一联系 • 多个实体型间的多对多联系
同一实体集内各实体间的联系 • 一对多联系 • 实例 职工实体集内部具有领导与被领导的联系 某一职工(干部)“领导”若干名职工 一个职工仅被另外一个职工直接领导 这是一对多的联系 • 一对一联系 • 多对多联系
2.2.2 实体-联系模型 • 概念模型的表示方法很多,最常用的是实体-联系方法(E-R方法)。 • E-R模型是P.P.S Chen(Peter Pin-Shan Chen)于1976年提出的一种语义数据模型。 • 用E-R图来描述现实世界的概念模型 • E-R方法也称为E-R模型 • 本节只介绍E-R图要点。有关如何认识分析现实世界,从而抽取实体之间的联系,建立概念模型的方法将在后面章节详述。
E-R图 顾客 服装 • 实体型 • 用矩形表示,矩形框内写明实体名。
服装 颜色 编号 品牌 型号 E-R图 价格 • 属性 • 用椭圆形表示,并用无向边将其与相应的实体连接起来
E-R图 • 联系 • 联系本身:用菱形表示,菱形框内写明联系名,并用无向边分别与有关实体连接起来,同时在无向边旁标上联系的类型(1:1、1:n或m:n) • 联系的属性:联系本身也是一种实体型,也可以有属性。如果一个联系具有属性,则这些属性也要用无向边与该联系连接起来。
实体型1 实体型1 实体型1 1 1 m 联系名 联系名 联系名 n 1 n 实体型2 实体型2 实体型2 m:n联系 1:n联系 1:1联系 E-R图
职工 课程 1 n 1 领导 讲授 m n 同一实体型内部的1:n联系 教师 参考书 多个实体型间的1:n联系 E-R图
课程 m 成绩 选修 n 学生 E-R图
2.2.3 UML 除了E-R图被广泛应用于数据库的概念模型设计外,UML也能很好的进行数据库设计。 统一建模语言简称UML(Unified Modeling Language)。它是一种通用的建模语言,具有创建系统的静态结构和动态行为等多种模型的能力。 它包含用例图、类图、对象图、状态图、序列图、协作图、活动图、组件图和展开图等九种主要图例。
用例图 1 系统的表示方法: 2 角色的表示方法: 3 用例的表示方法: 4数据流向:
类图 一 类图简介: 类图描述模型的静态结构,包括模型中类的内部结构及类与类之间的关系。类图分概念层类图,说明层类图和实现层类图。 二 类图的结构: 1 类图的内部结构:
类图 类图实例
2.3 数据模型的组成要素 数据结构 数据操作 数据的完整性约束
数据结构 • 数据结构描述数据库的组成对象以及对象之间的联系。通常包含两类: • (1)与对象的类型、内容、性质相关的。(比如关系模型中的域、属性、关系等)。 • (2)与数据之间联系有关的对象。 • 数据结构是刻画一个数据模型性质的最重要方面。 • 数据结构是对系统静态特性的描述
数据操作 • 数据操作。 • 对数据库中各种对象(型)的实例(值)允许执行的操作及有关的操作规则 • 数据操作的类型。 • 检索 • 更新(包括插入、删除、修改) • 数据操作是对系统动态特性的描述。
数据的约束条件 • 数据的约束条件 • 一组完整性规则的集合。 • 完整性规则是给定的数据模型中数据及其联系所具有的制约和储存规则,用以限定符合数据模型的数据库状态以及状态的变化,以保证数据的正确、有效、相容。
数据的约束条件 • 数据模型对约束条件的定义 • 反映和规定本数据模型必须遵守的基本的通用的完整性约束条件。例如在关系模型中,任何关系必须满足实体完整性和参照完整性两个条件。 • 提供定义完整性约束条件的机制,以反映具体应用所涉及的数据必须遵守的特定的语义约束条件。
2.4 结构化数据模型 层次模型( Hierarchical Model ) 网状模型( Network Model ) 关系模型(Relational Model) 面向对象模型(Object Oriented Model)
非关系模型 • 非关系模型 • 层次模型 • 网状模型 • 数据结构:以基本层次联系为基本单位 基本层次联系:两个记录以及它们之间的一对多(包括一对一)的联系
计算机系 系 9 李远 信科大楼 系名 系号 系主任名 地点 图(a) 记录的型 图(b) 记录的一个实例 层次模型概念和数据结构 层次模型是按照层次结构的形式组织数据库数据的数据模型,即用树型结构表示实体集与实体集之间的联系。 其中用结点表示实体集,结点之间联系的基本方式是1:n。 1)记录和字段 记录是用来描述某个事物或事物间关系的命名的数据单位,也是存储的数据单位。 它包含若干字段。每个字段也是命名的,字段只能是简单的数据类型,例如整数、实数、字符串等。 例如:图(a)是一个名为系的记录。 图(b)是其一个实例。
系 计算机系 (a)PCR型(b) 一个PCR实例 1 n 计科0201班 计科0202班 班 计教0201班 双亲子女关系(简称PCR) 这是层次数据模型中最基本的数据关系。它代表了两个记录型之间一对多关系(1:n)。 例如,一个系有多个班,就构成了如图(a)所示的双亲子女关系(即PCR型),在“1”方的记录型称为双亲记录,在“n”方的记录型称为子女记录。图(b)是其一个实例。
系 班 教研室 学生 教师 计算机系 计科0201班 计科0202班 软件教研室 硬件教研室 计教0201班 … … … … … 孙立 胡恒 王五 张三 赵山 周英 李四 钱敏 丁伟 李定 层次数据模式 利用PCR可以构成层次数据模式。 右图是一个层次数据模式的例子。 下图是层次数据模式的一个实例。 层次数据模式是一棵树,其数据结构特点为: • 在每棵树仅有根结点无双亲。 • 除根结点外的任何结点有且有一个双亲结点,但可以有任意个子女结点。 • 树中无子女的结点称为叶结点。
层次模型数据操作 (1)数据插入 插入操作可先将插入数据写入系统I/O区,然后指定一个由根记录开始的插入层次路径,完成数据的插入操作。 (2)数据删除 删除操作是先用查询命令将待删除的记录定位为当前记录,再DELETE命令完成删除任务。当删除一个记录时,则其所从属的所有子女记录都被删除。 (3)数据修改 先用查询语句将要修改的记录定位为当前记录,并将该记录读到I/O区,在I/O区对数据进行修改,然后用REPLACE命令可将修改后的记录值写回到数据库中。
层次模型完整性约束 层次数据模型进行插入、删除、更新操作时要满足层次模型的完整性约束条件: (1)进行插入操作时,如果没有相应的双亲结点值就不能插入子女结点值。 (2)进行删除操作时,如果删除双亲结点值,则相应的子女结点值也被同时删除。 (3)进行更新操作时,应更新所有相应记录,以保证数据的一致性。
社团 班级 1 1 S1 S2 n n 学生 简单的网状结构 网状模型基本概念 为了克服层次模型结构描述非层次型事物的局限,20世纪60年代末美国CODASYL(数据库语言研究)委员会提出了网状数据模型。 1)记录与数据项(Data Items) 与层次数据模型类似,在网状数据模型中,也是以记录为数据的存储单位。记录包含若干数据项,数据项相当于字段。 但与层次数据模型中的字段不同,网状数据模型中的数据项不一定是简单的数据类型,也可以是多值的和复合的数据。 2)系(Set) 在网状数据模型中,数据间的联系用系表示。 系代表了两记录之间的1:n联系,系用一条弧表示,箭头指向“n”方。“1”方的记录称首记录,“n”方的记录称属记录。右图是简单网状结构的例子。
计科0201班 班级 张三 王杰 李四 学生 学校 教师 职工 多属系型 3)系型 (1)单属系型 由主记录型和单一的属记录组成。 例如班级记录型和学生记录型组成的班级-学生系是单属系型。 (2)多属系型 该系型中包含三个以上记录型,其中一个为首记录型,其余为属记录型。 例如,在学校中有教师和职工,他们有不同的记录结构可形成两个记录类型。当建立一个学校――教职工系型时,可将教师记录型和职工记录型作为学校的两个属记录型。如右图。 (3)奇异系型 这是一种只有属记录型而无首记录型的一种特殊系型。 一个单位的所有部门可以组成一个无首记录型的奇异系型。 部门
学生 m:n联系 型值 m n 课程 李四 张三 课程 学生 SL SL 1 1 SL CL 选课2 选课3 选课4 选课1 m n CL CL CL 学生选课 网络安全 C语言 数据库 4)联系记录 但对于二元m:n联系、和多元m:n:p联系也不能直接用系来表示,而是采用联系记录这个辅助数据结构,来将实体集间的m:n联系转换成两个1:n联系。 例如学生记录与课程记录之间的m:n联系可通过引入联系记录――学生选课记录,将其转换为两个1:n联系。如下图所示。
网状模型 网状数据模型是一种比层次模型更具普遍性的结构,它去掉了层次模型的两个限制,允许多个结点没有双亲结点,也允许一个结点有多个双亲结点。因此,网状模型可以方便地表示各种类型的联系。网状模型是一种较为通用的模型,从图论的观点看,它是一个不加任何条件的无向图。一般来说,层次模型是网状模型的特殊形式,网状模型是层次模型的一般形式。
网状模型数据操作和数据约束 网状数据模型的操纵主要包括查询、插入、删除和更新数据。进行插入、删除、更新操作时要满足网状模型的完整性约束条件: (1)插入操作允许插入尚未确定双亲结点值的子女结点值。 (2)删除操作允许只删除双亲结点值。 (3)更新操作只需要更新指定记录即可。 (4)查询操作可以有多种方法,可根据具体情况选用。
关系模型 1.关系模型是目前最重要的一种数据模型,关系数据库系统采用关系模型作为数据的组织方式。 2.美国IBM公司的研究员E.F.Codd于1970年提出关系模型的概念,1981年为此获得图灵奖。 3.目前很多数据库产品都是基于关系模型的,如Oracle(甲骨文)、Microsoft SQL Server、IBM DB2、Sybase、MySql等等。
关系模型 1. 关系数据模型的数据结构 2. 关系数据模型的基本术语 3. 关系数据模型的数据操纵与完整性约束 4. 关系数据模型的优缺点