开发者社区> 华章计算机> 正文

《数据库原理与应用(第3版)》——1.3 数据独立性

简介:
+关注继续查看

本节书摘来自华章出版社《数据库原理与应用(第3版)》一 书中的第1章,第1.3节,作者:何玉洁,更多章节内容可以访问云栖社区“华章计算机”公众号查看。

1.3 数据独立性

数据独立性是指应用程序不会因数据的物理表示方式和访问技术的改变而改变,即应用程序不依赖于任何特定的物理表示方式和访问技术。数据独立性包含两个方面:物理独立性和逻辑独立性。物理独立性是指当数据的存储位置或存储结构发生变化时,不影响应用程序的特性;逻辑独立性是指当表达现实世界的信息内容发生变化时,比如增加一些列、删除无用列等,也不影响应用程序的特性。要理解数据独立性的含义,最好先搞清什么是非数据独立性。在数据库技术出现之前,也就是在使用文件管理数据的时候,实现的应用程序常常是数据依赖的,也就是说数据的物理表示方式和有关的存取技术都要在应用程序中考虑,而且,有关物理表示的知识和访问技术直接体现在应用程序的代码中。例如,如果数据文件使用了索引,那么应用程序必须知道有索引存在,也要知道记录的顺序是索引的,这样应用程序的内部结构就是基于这些知识而设计的。一旦数据的物理表示方式改变了,就会对应用程序产生很大的影响。例如,如果改变了数据的排序方式,则应用程序不得不进行相应的修改。而且在这种情况下,应用程序修改的部分恰恰是与数据管理密切联系的部分,而与应用程序最初要解决的问题毫不相干。
在数据库管理方式中,可以尽量避免应用程序对数据的依赖,这有如下两种情况。
1)不同的用户关心的数据并不完全相同,即使对同样的数据不同用户的需求也不尽相同。比如前述的学生基本信息数据,包括学号、姓名、性别、出生日期、联系电话、所在系、专业、班号,分配宿舍的部门可能只需要学号、姓名、班号、性别,教务部门可能只需要学号、姓名、所在系、专业和班号。好的实现方法应根据全体用户对数据的需求存储一套完整的数据,而且只编写一个针对全体用户的公共数据的应用程序,但能够按每个用户的具体要求只展示其需要的数据,当公共数据发生变化时(比如增加新信息),可以不修改应用程序,每个不需要这些变化数据的用户也不需要知道有这些变化。这种独立性(逻辑独立性)在文件管理方式下是很难实现的。
2)随着科学技术的进步以及应用业务的变化,有时必须要改变数据的物理表示方式和访问技术以适应技术发展及需求变化,比如改变数据的存储位置或存储方式(就像一个单位可以搬到新的地址,或者是调整单位各科室的布局)以提高数据的访问效率。在理想情况下,这些变化不应该影响应用程序(物理独立性)。这在文件管理方式下也是很难实现的。
因此,数据独立性的提出是一种客观应用的要求。数据库技术的出现正好克服了应用程序对数据的物理表示和访问技术的依赖。

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
心中有“树”!图文并茂介绍数据结构中常见的树(二)
计算机科学家尼古拉斯·沃斯(Niklaus Wirth)曾说过:编程=数据结构+算法 ,可见数据结构在编程中的重要性。
5 0
心中有“树”!图文并茂介绍数据结构中常见的树(一)
提到数据结构中的树(Tree) ,大家应该都不陌生,相关书籍中都有大段篇幅的介绍,刷 Leetcode 的时候会遇到很多相关问题。很多人往往会用 “手写红黑树” 来形容面试难度很高。
10 0
心中有“树”!图文并茂介绍数据结构中常见的树(三)
在前面两篇文章中,我们简要介绍了数据结构中的各种【树】在搜索、数据库等领域的使用场景,希望对大家有所帮助。
11 0
如何在小游戏制作工具中使用云函数
本节试图以最简单的方式带你了解如何在小程序后台申请和开通云开发服务,创建并编写第一个云函数并在小游戏制作工具中对其进行调用。
10 0
手撸一款简单高效的线程池(五)
在之前的内容中,我们给大家介绍了 C++实现线程池过程中的一些常用线优化方案,并分析了不同机制使用时的利弊。这一篇,是线程池系列的最后一章。我们会介绍一下 CGraph 中的 threadpool 如何使用,给出性能对比,并对接下来的工作做一些展望。让我们在线程池性能优化和功能提升的道路上,越走越远。
5 0
在函数中使用局部变量并且通过局部变量返回函数值的方案来了
感谢小游戏可视化体验官群中的一位叫做“@天羽地王”的朋友提供的思路。本文内容主要包括如何在函数中使用局部变量并且通过局部变量来返回函数的结果值。
12 0
微信小游戏推广运营专业术语汇总
本文内容包括与微信小游戏运营推广相关的专业术语的汇总和解释。作为一个游戏开发者,不光要知道如何做游戏,也要知道如何让别人玩自己做的游戏。
4 0
Win系统 - 重装系统(微PE、MSDN镜像)【绝对纯净】
Win系统 - 重装系统(微PE、MSDN镜像)【绝对纯净】
14 0
Vue入门 基本使用 与 事务管理【1】
Vue入门 基本使用 与 事务管理【1】
9 0
10059
文章
0
问答
来源圈子
更多
+ 订阅
文章排行榜
最热
最新
相关电子书
更多
OceanBase 入门到实战教程
立即下载
阿里云图数据库GDB,加速开启“图智”未来.ppt
立即下载
实时数仓Hologres技术实战一本通2.0版(下)
立即下载