热门标签 | 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



推荐阅读
  • 1:有如下一段程序:packagea.b.c;publicclassTest{privatestaticinti0;publicintgetNext(){return ... [详细]
  • 优化ListView性能
    本文深入探讨了如何通过多种技术手段优化ListView的性能,包括视图复用、ViewHolder模式、分批加载数据、图片优化及内存管理等。这些方法能够显著提升应用的响应速度和用户体验。 ... [详细]
  • 本文详细分析了JSP(JavaServer Pages)技术的主要优点和缺点,帮助开发者更好地理解其适用场景及潜在挑战。JSP作为一种服务器端技术,广泛应用于Web开发中。 ... [详细]
  • 本文详细介绍了如何在Linux系统上安装和配置Smokeping,以实现对网络链路质量的实时监控。通过详细的步骤和必要的依赖包安装,确保用户能够顺利完成部署并优化其网络性能监控。 ... [详细]
  • 深入理解 SQL 视图、存储过程与事务
    本文详细介绍了SQL中的视图、存储过程和事务的概念及应用。视图为用户提供了一种灵活的数据查询方式,存储过程则封装了复杂的SQL逻辑,而事务确保了数据库操作的完整性和一致性。 ... [详细]
  • 数据库内核开发入门 | 搭建研发环境的初步指南
    本课程将带你从零开始,逐步掌握数据库内核开发的基础知识和实践技能,重点介绍如何搭建OceanBase的开发环境。 ... [详细]
  • 本文详细介绍了如何使用 Yii2 的 GridView 组件在列表页面实现数据的直接编辑功能。通过具体的代码示例和步骤,帮助开发者快速掌握这一实用技巧。 ... [详细]
  • 本文深入探讨 MyBatis 中动态 SQL 的使用方法,包括 if/where、trim 自定义字符串截取规则、choose 分支选择、封装查询和修改条件的 where/set 标签、批量处理的 foreach 标签以及内置参数和 bind 的用法。 ... [详细]
  • 在计算机技术的学习道路上,51CTO学院以其专业性和专注度给我留下了深刻印象。从2012年接触计算机到2014年开始系统学习网络技术和安全领域,51CTO学院始终是我信赖的学习平台。 ... [详细]
  • 技术分享:从动态网站提取站点密钥的解决方案
    本文探讨了如何从动态网站中提取站点密钥,特别是针对验证码(reCAPTCHA)的处理方法。通过结合Selenium和requests库,提供了详细的代码示例和优化建议。 ... [详细]
  • python的交互模式怎么输出名文汉字[python常见问题]
    在命令行模式下敲命令python,就看到类似如下的一堆文本输出,然后就进入到Python交互模式,它的提示符是>>>,此时我们可以使用print() ... [详细]
  • 火星商店问题:线段树分治与持久化Trie树的应用
    本题涉及编号为1至n的火星商店,每个商店有一个永久商品价值v。操作包括每天在指定商店增加一个新商品,以及查询某段时间内某些商店中所有商品(含永久商品)与给定密码值的最大异或结果。通过线段树分治和持久化Trie树来高效解决此问题。 ... [详细]
  • 本文详细介绍了 Dockerfile 的编写方法及其在网络配置中的应用,涵盖基础指令、镜像构建与发布流程,并深入探讨了 Docker 的默认网络、容器互联及自定义网络的实现。 ... [详细]
  • 解决PHP与MySQL连接时出现500错误的方法
    本文详细探讨了当使用PHP连接MySQL数据库时遇到500内部服务器错误的多种解决方案,提供了详尽的操作步骤和专业建议。无论是初学者还是有经验的开发者,都能从中受益。 ... [详细]
  • 使用C#开发SQL Server存储过程的指南
    本文介绍如何利用C#在SQL Server中创建存储过程,涵盖背景、步骤和应用场景,旨在帮助开发者更好地理解和应用这一技术。 ... [详细]
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社区 版权所有