数据库原理(二)--数据模型

一、数据模型分类

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):表中每一列都和主键有直接关联





  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值