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

简介:

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

1.3 数据独立性

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

相关文章
|
1月前
|
存储 缓存 数据库
数据库数据删除策略:硬删除vs软删除的最佳实践指南
在项目开发中,“删除”操作常见但方式多样,主要分为硬删除与软删除。硬删除直接从数据库移除数据,操作简单、高效,但不可恢复;适用于临时或敏感数据。软删除通过标记字段保留数据,支持恢复和审计,但增加查询复杂度与数据量;适合需追踪历史或可恢复的场景。两者各有优劣,实际开发中常结合使用以满足不同需求。
110 4
|
6月前
|
存储 人工智能 Cloud Native
云栖重磅|从数据到智能:Data+AI驱动的云原生数据库
在9月20日2024云栖大会上,阿里云智能集团副总裁,数据库产品事业部负责人,ACM、CCF、IEEE会士(Fellow)李飞飞发表《从数据到智能:Data+AI驱动的云原生数据库》主题演讲。他表示,数据是生成式AI的核心资产,大模型时代的数据管理系统需具备多模处理和实时分析能力。阿里云瑶池将数据+AI全面融合,构建一站式多模数据管理平台,以数据驱动决策与创新,为用户提供像“搭积木”一样易用、好用、高可用的使用体验。
云栖重磅|从数据到智能:Data+AI驱动的云原生数据库
|
4月前
|
数据采集 数据库 Python
有哪些方法可以验证用户输入数据的格式是否符合数据库的要求?
有哪些方法可以验证用户输入数据的格式是否符合数据库的要求?
241 75
|
2月前
|
数据库 Python
【YashanDB知识库】python驱动查询gbk字符集崖山数据库CLOB字段,数据被驱动截断
【YashanDB知识库】python驱动查询gbk字符集崖山数据库CLOB字段,数据被驱动截断
|
1月前
|
人工智能 关系型数据库 分布式数据库
让数据与AI贴得更近,阿里云瑶池数据库系列产品焕新升级
4月9日阿里云AI势能大会上,阿里云瑶池数据库发布重磅新品及一系列产品能力升级。「推理加速服务」Tair KVCache全新上线,实现KVCache动态分层存储,显著提高内存资源利用率,为大模型推理降本提速。
|
3月前
|
SQL 数据建模 BI
【YashanDB 知识库】用 yasldr 配置 Bulkload 模式作单线程迁移 300G 的业务数据到分布式数据库,迁移任务频繁出错
问题描述 详细版本:YashanDB Server Enterprise Edition Release 23.2.4.100 x86_64 6db1237 影响范围: 离线数据迁移场景,影响业务数据入库。 外场将部分 NewCIS 的报表业务放到分布式数据库,验证 SQL 性能水平。 操作系统环境配置: 125G 内存 32C CPU 2T 的 HDD 磁盘 问题出现的步骤/操作: 1、部署崖山分布式数据库 1mm 1cn 3dn 单线启动 yasldr 数据迁移任务,设置 32 线程的 bulk load 模式 2、观察 yasldr.log 是否出现如下错
|
3月前
|
JSON Java 关系型数据库
Hutool创建数据源工厂动态查询不同数据库不同数据表的数据
Hutool创建数据源工厂动态查询不同数据库不同数据表的数据
74 2
|
2月前
|
SQL Java 数据库连接
【YashanDB数据库】由于网络带宽不足导致的jdbc向yashandb插入数据慢
由于网络带宽不足导致的jdbc向yashandb插入数据慢
|
6月前
|
存储 监控 数据处理
flink 向doris 数据库写入数据时出现背压如何排查?
本文介绍了如何确定和解决Flink任务向Doris数据库写入数据时遇到的背压问题。首先通过Flink Web UI和性能指标监控识别背压,然后从Doris数据库性能、网络连接稳定性、Flink任务数据处理逻辑及资源配置等方面排查原因,并通过分析相关日志进一步定位问题。
481 61

热门文章

最新文章