作者:whisper
链接:http://proprogrammar.com:443/article/499
声明:请尊重原作者的劳动,如需转载请注明出处
能比较真实地模拟现实世界;
容易为人所理解;
便于在计算机上实现;
1.2.1 两类数据模型
1.2.2 概念模型
1.2.3 数据模型的组成要素
1.2.4 常用的数据模型
1.2.5 层次模型
1.2.6 网状模型
1.2.7 关系模型
(1) 概念模型,也称信息模型
它是按用户的观点来对数据和信息建模,用于数据库设计。
(2) 逻辑模型和物理模型
按计算机系统的观点对数据建模, 用于DBMS实现。
描述数据在系统内(磁盘上) 的表示方式和存取方法。
概念模型用于信息世界的建模
是现实世界到机器世界的一个中间层次
是数据库设计的有力工具
数据库设计人员和用户之间进行交流的语言
较强的语义表达能力
简单、 清晰、 易于用户理解
例:工厂物质管理的概念模型
1. 信息世界中的基本概念
(1) 实体(Entity)
客观存在并可相互区别的事物称为实体。
可以是具体的人、 事、 物或抽象的概念。
(2) 属性(Attribute)
实体所具有的某一特性称为属性。 一个实体可以由若干个属性来刻画。
(3) 码(Key)
唯一标识实体的属性集称为码。
(4) 实体型(Entity Type)
用实体名及其属性名集合来抽象和刻画同类实体称为实体型
(5) 实体集(Entity Set)
同一类型实体的集合称为实体集
(6) 联系(Relationship)
实体之间的联系有一对一(1:1) 、 一对多(1:n) 和多对多(m:n) 等多种类型
实体-联系方法
用E-R图来描述现实世界的概念模型
E-R方法也称为E-R模型
精确地描述了系统的静态特性、动态特性和完整性约束条件(Integrity Constraints)。
1 数据结构--描述系统的静态特性
2 数据操作--描述系统的动态特性
3 完整性约束
1. 数据结构
数据结构的类型来命名数据模型
层次结构-层次模型、 网状结构--网状模型、 关系结构—关系模型
2. 数据操作
对数据库中各种对象的实例允许执行的操作的集合
包括操作及有关的操作规则
查询
更新(包括插入、 删除、 修改)
定义数据操作的确切含义、 符号、 优先级别
实现数据操作的语言
查询语言——Query Language
更新语言——Insert、 Delete、 Update
3. 数据的完整性约束条件
完整性规则:给定的数据模型中数据及其联系所具有的制约和依存规则。
用以限定符合数据模型的数据库状态以及状态的变化,以保证数据的正确、有效和相容。
反映和规定必须遵守的基本的通用的完整性约束条件。
提供定义完整性约束条件的机制, 以反映具体应用所涉及的数据必须遵守的特定的语义约束条件。
实体型: 用记录类型描述
每个结点表示一个记录类型(实体)
属性: 用字段描述
每个记录类型可包含若干个字段
联系: 用结点之间的连线表示记录类型(实体) 之间的一对多的父子联系
满足下面两个条件的基本层次联系的集合为层次模型
1. 有且只有一个结点没有双亲结点, 这个结点称为根结点
2. 根以外的其它结点有且只有一个双亲结点
1. 层次模型的数据结构
2. 层次模型的数据操纵与完整性约束
查询
插入
删除
更新
无相应的双亲结点值就不能插入子女结点值
如果删除双亲结点值,则相应的子女结点值也被同时删除
更新操作时,应更新所有相应记录,以保证数据的一致性
3.层次模型的优缺点
层次模型的数据结构比较简单清晰
查询效率高, 性能优于关系模型, 不低于网状模型
层次数据模型提供了良好的完整性支持
结点之间的多对多联系表示不自然
对插入和删除操作的限制多,应用程序的编写比较复杂
查询子女结点必须通过双亲结点
层次数据库的命令(语言)趋于程序化
实体型: 用记录类型描述
每个结点表示一个记录类型(实体)
属性: 用字段描述
每个记录类型可包含若干个字段
联系: 用结点之间的连线表示记录类型(实体) 之间的一对多的父子联系
满足下面两个条件的基本层次联系的集合:
1. 允许一个以上的结点无双亲;
2. 一个结点可以有多于一个的双亲。
1. 网状模型的数据结构
2. 网状模型的数据操纵与完整性约束
允许插入尚未确定双亲结点值的子女结点值
允许只删除双亲结点值
支持码的概念:唯一标识记录的数据项的集合,取唯一的值;
保证一个联系中双亲记录与子女记录之间是一对多联系;
可以定义双亲记录和子女记录之间某些约束条件。
例:“属籍类别”的概念
要求双亲记录存在才能插入子女记录,双亲记录删除时也连同删除。
选课记录就应该满足这种约束条件:
学生选课记录值中学号必须是学生记录中存在的某一学生的学号,
课程号必须是课程记录中存在的某一门课程号。
3. 网状模型的优缺点
能够更为直接地描述现实世界, 如一个结点可以有多个双亲;
具有良好的性能, 存取效率较高。
结构比较复杂,而且随着应用环境的扩大,数据库的结构就变得越来越复杂,不利于最终用户掌握;
DDL、 DML语言复杂,用户不容易使用;
记录之间联系是通过存取路径实现的,应用程序必须选择存取路径,加重了程序员的负担。
1. 关系模型的数据结构
属性的取值范围来自某个域。
例:学生年龄属性的域(15~45岁) ,
性别的域是(男, 女) ,
系名的域是一个学校所有系名的集合;
关系名(属性1,属性2, …,属性n)
学生(学号, 姓名,年龄,性别,系名,年级)
最基本的规范条件:关系的每一个分量必须是一个不可分的数据项, 不允许表中还有表。 图1.15中工资和扣除是可分的数据项 ,不符合关系模型要求
2. 关系模型的操纵与完整性约束
查询
插入
删除
提高了数据的独立性, 提高了用户生产率。
3. 关系模型的优缺点
优点
实体和各类联系都用关系来表示
对数据的检索结果也是关系
具有更高的数据独立性, 更好的安全保密性
简化了程序员的工作和数据库开发建立的工作
缺点
① 需要了解的
层次数据模型及网状数据模型的基本概念
层次和网状数据库的内容十分精简
这两类系统虽然有它们的缺点,但是执行效率高是他们的显著优点
② 需要牢固掌握的
概念模型的基本概念
数据模型的3个组成要素
关系数据模型的相关概念
③难点
数据模型的概念对于刚刚学习数据库的读者来说会感到比较抽象。
亲爱的读者:有时间可以点赞评论一下
全部评论