数据库系统概述--数据模型概述

非软件科班出身,一直感觉难以将需求转换省数据库的数据,数据库系统概述中的数据模型部分很好的讲了这部分,进行梳理和记录。

需求转换成数据库中的表和操作系统上的文件的时候,是大致经过下面的步骤,需求 -> 概念模型 -> 数据库管理系统支持的数据模型 ->  物理模型(物理文件)

概念模型

是用于信息世界的建模,数据库设计人员和用户之间交流的语言,需要较强的语义表达能力,简单、清晰、易于用户理解,表示方法即ER图,EA工具的DataBaseEngine->EntityRelationShip,

 ER图有实体、属性和联系三个部分

实体:存在并可互相区别的事务,可以是人、事、物或抽象的概念,因为是可以区别的,必须有一个唯一键,即码

属性:即实体的属性

联系:实体内部的联系(还未学到)、实体间的联系 1:1  1:n  m:n

 逻辑模型

逻辑模型是通过结构、操作、完整性约束表达的,

结构:描述数据库的组成对象(包含类型、内容、性质),及对象之间的联系(设置Type,即归属关系),是静态描述

操作:对象的增删改查,都允许那几个,考虑查询和更新(增删改)即可,是动态描述

完整性约束:一组完整性规则的集合,完整性规则:给定的数据模型中数据及其联系所具有的制约和依存规则,用以限定符合数据模型的数据库状态以及状态的变化,以保证数据的正确、有效和相容,分为基本的通用约束和具体应用需要使用的约束。

逻辑模型的种类有层次模型、网状模型、关系模型、面向对象模型、对象关系数据模型、半结构化数据模型、非结构化数据模型,其中层次和网状模型是格式化模型,使用层次联系描述,已经过时。

层次模型

层次模型用树形结构来表示各类实体以及实体间的联系,XML语言满足下面两个条件的基本层次联系的集合为层次模型

1. 有且只有一个结点没有双亲结点,这个结点称为根结点

2. 根以外的其它结点有且只有一个双亲结点 

结构:

操作与完整性约束:约束可以使用外键处理

  • 无相应的双亲结点值就不能插入子女结点值,只有一个根节点,如果没有父节点,则不能插入
  • 如果删除双亲结点值,则相应的子女结点值也被同时删除
  • 更新操作时,应更新所有相应记录,以保证数据的一致性

缺点:

  • 无法实现多对多的问题
  • 插入和删除操作比较多,查询子节点只能通过双亲一层一层向下

网状模型

解决了层次的单一根节点,即允许一个以上的节点无双亲(多个根节点),解决了层次无法指定多个双亲,即从多个路径寻找,解决多对多的问题。

 重点:多对多问题其实可以通过分解成一对多的联系的方式解决

EA工具的DataModel图,下列将学生和课程多对多的关系分解成如下一对多的关系。

 操作与约束:

(1)必须有码的概念,因为没有根了

(2)保障父节点和子节点是一对多的关系,方便将网层次化

(3)父节点和子节点的联系存在约束,即属籍类别问题,要求双亲存在才能插入子节点,父节点删除,子节点也得删除,例如选课必须依赖于学生和课程都存在才能插入,删除学生时,学生相关的选课都得删除。

缺点

(1)结构复杂,难以看懂

(2)使用数据得按照1对多的路径来查找,得按照路径查询

关系模型

一个关系即一张表,包含元组(一行),属性(列)、主码(可以唯一确定一个元组)、域(属性的取值范围)。

规范条件:

(1)关系的每一个分量必须是一个不可分的数据项,不允许表中还有表

下标中工资,包含基本工资,岗位工资,业绩津贴,是一个小表,扣除也是一样小表。

 优点:

(1)操作对象都是关系

(2)隐藏了路径,方便使用

缺点:

存取路径对用户透明,查询效率往往不如格式化数据模型

为提高性能,必须对用户的查询请求进行优化,增加了开发数据库管理系统的难度

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值