数据库系统概论学习笔记(一)---数据模型

数据模型是对现实世界数据的一种抽象–数据分为两部分:具体的数据(数字或文本或其他)和对数据的描述,脱离描述的数据是没有意义的。比如数字75,在我们解释它之前没有实际的意义。
那么数据模型的存在是为了解决数据的描述和数据的存储以及数据的使用。那么问题也随之诞生,数据的描述应该容易被理解,数据的存储应该便于被实现,以及数据能够真实的描述世界中各种复杂的关系。为此,数据模型分为两大类:概念模型(数据的描述),以及逻辑模型和物理模型。

1.概念模型

概念模型是用户对现实世界的抽象,我们使用一些概念来表示这些现实中的事物:实体,属性,联系,码,实体型;在这个建模的过程中,我们通常使用的方法是E-R图建模,这种方法以实体和联系 为基本描述现实,其中存在很多技巧,也有一些基本的原则,可以说数据库的设计最重要的一节就是概念模型的设计。

2.逻辑模型

这个是我们在对概念模型的转化成数据库系统能识别的模型的一种方式,比如同样的实体学生,课程,选课,如果出于层次模型,我们会这样设计:一个学生记录作为根节点,然后选课记录记为其子节点,最后把课程设计为叶子节点。很明显可以看出这个模型不适合于这个处理这个概念模型,原因是层次模型是处理一对多的最好的模型,但是这是学生和课程是多对多的。如果是关系模型的话,很容易就可以描述,学生和课程的多对多用单独的记录来记录就可以完成多对多的模型的描述。
每个模型都有其优缺点和约束,但是关系模型是目前最好的描述事物联系的模型。

3.数据库系统的模型结构

数据库系统的整个构成可以分为外部,内部和底层。外部是指用户在使用的时候看到的数据,内部是数据的整个逻辑结构,是所有用户共享的,底层是指数据库系统在存储数据的时候使用的各种数据结构和具体实现。
那么与之对应的概念就是外模式、模式、内模式。
3.1外模式
具有不同权限的用户或者说对数据的显示具有不同要求的用户,我们需要一种方式来满足这种要求,比如,用户A只能查看自己的账号,用户B可以查看符合某些条件的账号,这就要求我们对数据集具有选择性的选取,而这个就是视图,我们可以基于数据建立一个视图,然后视图规定了一些规则,它是一张虚表,其数据会根据具体的数据变动。那么用户查询的时候使用视图,就可以在模型变动的情况下依然不需要改变程序。
外模式就是用户可以看见的数据的逻辑结构表示,其由视图进行实际的数据集的选择。
3.2模式
数据库的模式是指数据的全局数据逻辑结构的描述,以关系模型为例,在学生模型里,我们对学生实体进行描述,一般只会建立一张描述学生属性的表,而不是两张或更多的关于学生实体的不同的描述,所以模式是具有全局唯一性的。
模式定义实体联系,是存储数据时的模型,对基本数据的描述。相对于外模式,它提供了基本数据的定义。
3.3内模式
这个是数据库系统在实现数据存储的时候使用的各种手段的描述,索引是hash还是Btree,是否支持事务,存储是文本还是二进制等。
3.4数据库的二级映象功能
外模式和内模式之间存在数据库维护的映象,我们在定义视图的时候是定义了一组对基本表的具有选择性的数据选取的规则,那么数据库负责维护这组规则,在基本表的数据变动的时候,用户通过视图的访问所获得数据依然是有效的。
这种映象提供了数据的逻辑独立性,我们定义好模式之后,在需要变更的时候不需要改变模式定义,只需要改变视图就可以了,而改变视图付出的代价是很小的,因为既不需要改变应用程序的逻辑,也不需要改变模式定义。
模式和内模式的映象也是易于理解的,模式定义好之后,内模式需要提供的是对数据的访问是按照模式定义的逻辑结构来的。为了达成这个目的,内模式按照逻辑结构结合物理存储的策略以及时间空间的优化来完成数据的存储。
如果数据库的存储结构发生了改变,我们也只需要调整模式/内模式的映象就可能在不改变模式的情况下完成存储方式的改变。
这就提供了数据库数据的物理独立性,即在定义模式的时候不需要考虑物理模型。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值