热门标签 | HotTags
当前位置:  开发笔记 > 前端 > 正文

数据库系统的基本概念(第一章)数据抽象的级别

数据抽象过程根据数据抽象的级别定义了四种模型:概念模型:表达用户需求观点的数据全局逻辑结构的模型特点:1表达了数据的整体逻辑结构
数据抽象过程

根据数据抽象的级别定义了四种模型:

概念模型:表达用户需求观点的数据全局逻辑结构的模型

特点:

  1>表达了数据的整体逻辑结构,它是系统用户对整个应用项目涉及的数据的全面描述

  2>从用户需求的观点出发,对数据建模

  3>独立于硬件和软件,即概念模型不依赖于硬件设备和实现时的DBMS软件

  4>是数据库设计人员与用户进行交流的工具     

逻辑模型:表达计算机实现观点的DB全局逻辑结构的模型(主要有层次、网状、关系模型等三种)

特点:

  1>表达了DB的整体逻辑结构,但它是设计人员对整个应用项目数据库的全面描述

  2>是从数据库实现的观点出发,对数据进行建模

  3>独立于硬件,但是依赖于软件

  4>是数据库设计人员与应用程序之间进行交流的工具

层次模型:用树形(层次)结构表示实体类型及实体间联系的数据模型

特点:

  记录之间的联系通过指针来实现,查询效率高

缺点:

  1>只能表示1:N联系,虽然系统有多种辅助手段实现M:N联系但比较复杂

  2>由于层次顺序的严格和复杂,引起数据的查询和更新操作很复杂,因此程序的编写也比较复杂

网状模型:用有向图结构表示实体间联系的数据模型称为网状模型

特点:

  记录之间的联系通过指针实现,M:N联系也容易实现(一个M:N联系可拆成俩个1:N联系),查询效率较高

缺点:

  数据结构复杂,编程复杂

关系模型:用二维表格表达实体集

特点:

  1>关系模型与层次、网状模型的最大区别使用关键码而不是用指针导航的数据

  2>数据结构简单,用户易懂,只需用简单的查询语句就可以对数据库进行操作,而不涉及村存储结构访问技术等细节

三种逻辑模型的比较图:

外部模型:表达用户使用观点的DB局部逻辑结构的模型

 外部模型中的模式称为“视图”(View),视图只是一个定义,视图中的数据可以从逻辑模型的数据库中得到

特点:

  1>外部模型是逻辑模型的一个逻辑子集

  2>外部模型独立于硬件,依赖于软件

  3>外部模型反应了用户使用数据库的观点

 优点:

  1>简化了用户的观点,只针对具体用户应用需要的数据而设计的,与该用户无关的数据就不必放入,只关心并提取数据库中有用的数据

   2>有助于数据库的安全性保护,用户不能看的数据,不放入外部模型,提高了安全性

  3>是对概念模型的支持

内部模型:表达DB物理结构的模型

内部模型又称为物理模型,是数据库最底层的抽象,它描述数据在磁盘或磁带上面的存储方式(文件的结构)、存取设备(外存的空间分配)和存取方法(主索引和辅助索引)

数据抽象的过程也是数据库设计的过程,具体步骤如下:

1>根据用户的要求,设计数据库的概念模型,这是一个“综合”的过程

2>根据转换规则,把概念模型转换成数据库的逻辑模型,这时候一个“转换”的过程

3>根据用户的业务特点,设计不同的外部模型,给程序员使用,也就是应用程序使用的数据库的外部模型,外部模型与逻辑模型之间的对应称为映像

4>数据库实现时,要根据逻辑模型设计其内部模型,内部模型与逻辑模型之间的对应性称为映像

 三层模式和两级映像

三层模式体系结构

用户(或应用程序)到数据库之间,DB的数据结构有三个层次:外部模型、逻辑模型和内部模型

数据定义语言(DDL),数据操作语言(DML),数据控制语言(DCL)和事务控制语言(TCL)

1>外模式是用户与数据库系统的接口,是用户用到的那部分数据的描述

2>逻辑模式是数据库中全部数据的整体逻辑结构的描述

3>内模式是数据库在物理存储方面的描述,定义所有内部记录类型,索引和文件的组织方式,以及数据控制方面的细节

三层模式体系结构具有以下特点:

  1>用户使用DB的数据操纵语言(DML)语句对数据库进行操作,实际上是对外模式的外部记录进行操作

  2>逻辑模式必须不涉及到存储存储结构,访问技术等细节

  3>内模式并不涉及到物理设备的约束

两级映像

由于三层模式的数据结构可能不一致,即记录类型,字段类型的命名和组成可能不一样,需要三层模式之间的映像来说明外部记录,逻辑记录和内部记录之间的对应性

1>外模式/逻辑模式映像存在于外模式和逻辑模式之间,用于定义外模式和逻辑模式之间的对应性

2>逻辑模式/内模式映像存在于逻辑模式和内模式之间,用于定义逻辑模式和内模式之间的对应性

高度的数据独立性

指应用程序和数据库的数据结构之间相互独立,不受影响,数据独立性分为物理数据独立性和逻辑数据独立性两种

物理数据独立性

如果数据库的内模式要修改,即数据库的物理结构有所变化,那么只要对逻辑模式/内模式映像(对应性)作相应的修改,可以是逻辑模式尽可能保持不变

逻辑数据独立性

如果数据库的逻辑模式要修改,如增加记录类型或增加数据项,那么只要对外模式/逻辑模式映像作相应的修改,可使外模式和应用程序尽可能保持不变

转:https://www.cnblogs.com/luxiaojun/p/8297934.html



推荐阅读
  • 本文介绍了数据库的存储结构及其重要性,强调了关系数据库范例中将逻辑存储与物理存储分开的必要性。通过逻辑结构和物理结构的分离,可以实现对物理存储的重新组织和数据库的迁移,而应用程序不会察觉到任何更改。文章还展示了Oracle数据库的逻辑结构和物理结构,并介绍了表空间的概念和作用。 ... [详细]
  • 禁止程序接收鼠标事件的工具_VNC Viewer for Mac(远程桌面工具)免费版
    VNCViewerforMac是一款运行在Mac平台上的远程桌面工具,vncviewermac版可以帮助您使用Mac的键盘和鼠标来控制远程计算机,操作简 ... [详细]
  • 基于layUI的图片上传前预览功能的2种实现方式
    本文介绍了基于layUI的图片上传前预览功能的两种实现方式:一种是使用blob+FileReader,另一种是使用layUI自带的参数。通过选择文件后点击文件名,在页面中间弹窗内预览图片。其中,layUI自带的参数实现了图片预览功能。该功能依赖于layUI的上传模块,并使用了blob和FileReader来读取本地文件并获取图像的base64编码。点击文件名时会执行See()函数。摘要长度为169字。 ... [详细]
  • 本文是一位90后程序员分享的职业发展经验,从年薪3w到30w的薪资增长过程。文章回顾了自己的青春时光,包括与朋友一起玩DOTA的回忆,并附上了一段纪念DOTA青春的视频链接。作者还提到了一些与程序员相关的名词和团队,如Pis、蛛丝马迹、B神、LGD、EHOME等。通过分享自己的经验,作者希望能够给其他程序员提供一些职业发展的思路和启示。 ... [详细]
  • 本文介绍了OC学习笔记中的@property和@synthesize,包括属性的定义和合成的使用方法。通过示例代码详细讲解了@property和@synthesize的作用和用法。 ... [详细]
  • 如何用UE4制作2D游戏文档——计算篇
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了如何用UE4制作2D游戏文档——计算篇相关的知识,希望对你有一定的参考价值。 ... [详细]
  • 使用Ubuntu中的Python获取浏览器历史记录原文: ... [详细]
  • 图解redis的持久化存储机制RDB和AOF的原理和优缺点
    本文通过图解的方式介绍了redis的持久化存储机制RDB和AOF的原理和优缺点。RDB是将redis内存中的数据保存为快照文件,恢复速度较快但不支持拉链式快照。AOF是将操作日志保存到磁盘,实时存储数据但恢复速度较慢。文章详细分析了两种机制的优缺点,帮助读者更好地理解redis的持久化存储策略。 ... [详细]
  • 后台获取视图对应的字符串
    1.帮助类后台获取视图对应的字符串publicclassViewHelper{将View输出为字符串(注:不会执行对应的ac ... [详细]
  • 解决VS写C#项目导入MySQL数据源报错“You have a usable connection already”问题的正确方法
    本文介绍了在VS写C#项目导入MySQL数据源时出现报错“You have a usable connection already”的问题,并给出了正确的解决方法。详细描述了问题的出现情况和报错信息,并提供了解决该问题的步骤和注意事项。 ... [详细]
  • Go GUIlxn/walk 学习3.菜单栏和工具栏的具体实现
    本文介绍了使用Go语言的GUI库lxn/walk实现菜单栏和工具栏的具体方法,包括消息窗口的产生、文件放置动作响应和提示框的应用。部分代码来自上一篇博客和lxn/walk官方示例。文章提供了学习GUI开发的实际案例和代码示例。 ... [详细]
  • PDF内容编辑的两种小方法,你知道怎么操作吗?
    本文介绍了两种PDF内容编辑的方法:迅捷PDF编辑器和Adobe Acrobat DC。使用迅捷PDF编辑器,用户可以通过选择需要更改的文字内容并设置字体形式、大小和颜色来编辑PDF文件。而使用Adobe Acrobat DC,则可以通过在软件中点击编辑来编辑PDF文件。PDF文件的编辑可以帮助办公人员进行文件内容的修改和定制。 ... [详细]
  • Nginx使用(server参数配置)
    本文介绍了Nginx的使用,重点讲解了server参数配置,包括端口号、主机名、根目录等内容。同时,还介绍了Nginx的反向代理功能。 ... [详细]
  • android listview OnItemClickListener失效原因
    最近在做listview时发现OnItemClickListener失效的问题,经过查找发现是因为button的原因。不仅listitem中存在button会影响OnItemClickListener事件的失效,还会导致单击后listview每个item的背景改变,使得item中的所有有关焦点的事件都失效。本文给出了一个范例来说明这种情况,并提供了解决方法。 ... [详细]
  • ASP.NET2.0数据教程之十四:使用FormView的模板
    本文介绍了在ASP.NET 2.0中使用FormView控件来实现自定义的显示外观,与GridView和DetailsView不同,FormView使用模板来呈现,可以实现不规则的外观呈现。同时还介绍了TemplateField的用法和FormView与DetailsView的区别。 ... [详细]
author-avatar
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有