数据库原理(二)--数据模型
2016-06-12 15:00
295 查看
一、数据模型分类 1)概念模型 2)逻辑模型(分为层次型、网状型、关系型、面向对象型) 3)物理模型 二、数据模型的三大要素 1)数据结构 2) 数据操作 3)完整性约束 三、概念模型组成部分 1)实体:用矩形表示,表示客观存在的可以描述的事物。 2)属性:用椭圆形表示,表示实体的特征。 3)码:用于唯一标识实体的属性。 4)域:代表属性的取值范围,例如Sex取值范围是男,女。 5)实体型:用实体名及其属性名集合来抽象同类实体的(例如学生(学号,姓名,性别,出生年份,系,入学时间)) 6)实体集:同一类型实体的集合 7) 关系:表示实体间的关联(有1:1 1:n n:1 m:n),用菱形表示。 四、绘制ER图步骤 1)标识实体 2)标识实体的属性 3)标识实体的关联 五、逻辑模型 层次模型:是最早的逻辑模型 a) 每个节点的父节点都是唯一的 b) 只能表示1对多的关系 c) 每个记录类型可以选择一个属性排序,叫做码字段 b) 任何记录只有按照路径查看才有意义 e) 任何子女记录都不能脱离父记录而存在 f) 根节点没有父节点 1)多对对关系在层次模型中的表示 a) 采用冗余节点法:也就是通过增加2个节点,把多对多关系分解成2个1对多关系。 例如: 学生与课程是m:n关系,分解成:学生到课程1:n,课程到学生1:n。 b) 采用虚拟节点法:是通过增加2个虚拟节点,把多对多关系分解成2个1对多关系。 所谓虚拟节点就是一个引用,指向所引用的节点。 2)对层次模型的操作 a) 增加、修改、删除、查询,同时必须满足完整性约束(指的是数据记录能够正确的反应实际情况) b) 层次模型的完整性约束: 1)添加的子节点必须拥有父节点 2)当删除1个节点时,会同时删除该节点所有子节点 3)更新时,必须保证一致性 3)层次模型的存储结构 a)邻接法(又叫层次序列链接法):按照树的前序遍历结果实现相邻存储。 b)子女-兄弟链接发:是通过给每个节点设置2个指针,分别指向做左边的子节点和最近的兄弟节点。 4)层次模型的优缺点 a)优点:1) 结构清晰、查询效率高、提供了较好的完整性支持 b)缺点:2) 对m:n关系表示不自然、插入和删除限制多、访问子女节点必须通过父节点、命令复杂 网状模型: 1)特点 a)可以有多个节点无父节点 b)一个节点可以由多个父节点 2)网状跟层次的区别 a)可以有多个节点无父节点 b)一个节点可以由多个父节点 c)网状模型允许两个结点之间有多种联系(复合联系) d)网状模型可以更直接地去描述现实世界 e)层次模型实际上是网状模型的一个特例 3)网状模型存储结构:常用的方法为:单向链接、双向链接、环状链接、向首链接 4)优缺点 优点: a)能够直观的描述数据 b)具有较高的性能。 缺点: a)结构复杂,规模越大越复杂。 b)操作复杂,不易用户使用。 关系模型 1)术语 a)关系:就是表 b)元组: 就是一行 c)属性: 就是一列 d)主码:就是主键,用于唯一标示一条记录(例如学号) e)域: 是指属性的取值范围,例如性别的域(男,女) f)分量: 是指一行中某一列的值。 g)关系模式:是对关系的描述,例如学生(学号,姓名,性别,年龄) 2)操作:增加、修改、删除、查询。 3)完整性约束 a)实体完整性:用于唯一的区分每条记录,用主键实现 b)参照完整性:指的是子表中某列的值必须源自引用的主表中某列的值,使用外键实现 c)自定义完整性:指的是用户自定义的规则,例如要求性别为(男、女、保密) 4)优点: 1)建立在严格的数学模型上 2)便于用户操作 3)存取路径对于用户透明,具有更好的数据独立性与安全性 缺点: 1)查询效率不如非关系模型 2)开发时需要进行查询语句优化 六、关系的规范化 三大范式 1)第一范式(1NF):表中的每一列都具有原子性,不能分割 2)第二范式(2NF):表中每一列都和主键有关联 3)第三范式(3NF):表中每一列都和主键有直接关联
相关文章推荐
- plsql调试存储过程单步不能进入断点
- SQL语句order by两个字段同时排序
- SQL常用函数
- 数据库原理(一)--数据库课程导入
- Oracle存储过程基本语法 存储过程
- PostgreSQL中数据库,表,等对象的oid与对象名的对应关系
- SQL语法
- springmvc整合redis的小案例
- SQL查询——示列代码(二)
- 为你介绍Oracle 11g数据库每天自动备份的实现方法
- ORA-100501: non-ORACLE exception
- SQL查询——示列代码(一)
- System.Data.SQLite 未加载问题
- Redis3.2+Tomcat实现集群的Session管理 -- tomcat-redis-session-manager的编译和开发部署环境搭建
- MySQL mysqldump数据导出详解
- Oracle EBS R12 电子技术参考手册 - eTRM (电子文档)
- 设置PL/SQL Developer自动提交事务
- navicat运行sql文件导入大文件失败的问题
- trunc(sysdate)的含义是什么
- SQL查询(一)