1.2 数据库系统结构

思维导图:

 学习目标:

学习数据库系统结构是一个结构性和系统性的过程。如果是我,我会采用以下策略:

1. **确定目标和动机**:
   - 明确为什么要学习数据库系统。是为了应对工作的需求、为了研究还是出于兴趣?这有助于确定学习的深度和广度。

2. **选择合适的资源**:
   - 选择一本经典的数据库教材,如“Database System Concepts” by Silberschatz, Korth, and Sudarshan。这种教材通常会从基础概念到高级主题进行全面介绍。
   - 利用在线教育平台,如Coursera、edX、Udacity等,参加相关的数据库课程。
   - 参考官方文档,特别是针对某一具体的数据库系统,如MySQL、PostgreSQL或Oracle。

3. **自上而下的学习方法**:
   - 从数据库的大体结构和组件开始。
   - 学习关系数据库的基本概念,如数据模型、关系代数、SQL等。
   - 深入到数据库系统的内部,了解存储管理、查询处理、事务管理等。
   - 逐步探索更高级的主题,如数据库的并发控制、恢复技术、数据库安全性和完整性等。

4. **实践为上**:
   - 安装和设置一个数据库系统,并进行实践。通过真实的操作来理解理论概念。
   - 尝试设计简单的数据库应用,如个人信息管理系统、图书管理系统等。
   - 用SQL写查询,优化查询,并尝试不同的数据库功能。

5. **讨论和分享**:
   - 加入相关的在线社区或论坛,与其他学习者或专家进行交流。
   - 通过教导他人或分享学习笔记来加深对知识的理解。

6. **挑战自己**:
   - 尝试更复杂的项目,如构建一个简单的数据库管理系统或实现某个数据库算法。
   - 阅读数据库领域的研究论文,了解最新的技术和趋势。

7. **定期回顾**:
   - 数据库是一个广泛的领域,定期回顾之前的知识点可以帮助巩固记忆。
   - 试图将学到的知识与实际工作或其他领域的知识结合起来。

学习数据库系统结构是一个持续的过程,需要时间、耐心和实践。但随着学习的深入,你会发现它是一个非常有趣和有挑战性的领域。

前言

数据库系统虽然是一个庞大、复杂的系统,但它都要一个总的框架。虽然数据库系统软件产品众多,且建立在不同的操作系统上,但从数据库系统管理角度看,数据库系统管理角度看,数据库系统通常采用三级模式结构。

1.2.1 数据库系统的三级模式结构

        数据库系统通常采用三级模式结构:外模式、模式和内模式。三级模式结构如图1-5所示

 

 

1.模式

数据库系统中的三种模式结构,通常被称为三级模式结构,是数据库管理系统的一个核心概念。这三个层次分别是:模式(Schema)、子模式(Subschema)或用户视图(User Views)以及内模式(Internal Schema)或物理模式(Physical Schema)。

下面我将详细介绍其中的“模式”:

1. **模式 (Schema)**:
   - **定义**:模式是数据库的逻辑设计和整体逻辑视图,描述了数据库中全体数据的逻辑结构和特点。简单来说,它是数据库中所有全局逻辑信息的集合。
   - **特点**:
     - 它是稳定的。一旦定义,除非整体重新设计,否则不经常变化。
     - 它不是用户直接看到或与之交互的部分。用户通常看到的是子模式或特定的用户视图。
   - **内容**:模式描述了数据对象、关系、约束条件、视图定义、触发器、存储过程等的定义。
   - **独立性**:由于模式是数据库的逻辑视图,它与实际的物理存储无关。这意味着,即使我们更改数据的物理存储方式或位置,只要不影响整体的逻辑结构,模式就保持不变。这为数据库的逻辑独立性提供了基础。

2. **与其他层次的关系**:
   - **子模式/用户视图**:子模式或用户视图是针对特定用户或用户组的数据库的逻辑视图,它是从整体模式中抽取的一个子集。子模式可以提供部分数据的逻辑视图,满足某一类用户的特定需求。
   - **内模式/物理模式**:物理模式描述了数据在物理存储介质上的存放方式,涉及文件组织、索引策略、数据压缩和存储等。它确定了数据如何在物理设备上存储,以优化存取效率。

这三个模式的主要目标是支持数据的抽象、数据的物理独立性和逻辑独立性,从而使应用程序与存储的数据相互独立,提高系统的灵活性和可维护性。

 

2.外模式

 

当我们提到外模式时,我们实际上是指子模式或用户视图。在数据库的三级模式结构中,外模式位于最高级,对应于特定用户或用户组的视角。

以下是外模式的详细讲解:

1. **外模式 (子模式/用户视图)**:
   - **定义**:外模式是数据库的一个子集,为特定用户或用户组设计。它提供了数据库的一种逻辑视图,展示了某一类用户需要访问的数据。
   - **特点**:
     - **定制化**:根据不同的用户或用户组的需求,可以有多个不同的外模式。例如,销售部门的外模式可能会强调客户和销售数据,而人事部门的外模式可能会侧重于员工信息。
     - **逻辑表示**:尽管它提供了针对某类用户的逻辑视图,但外模式仍然与物理存储细节无关。
     - **保护性**:通过为不同的用户群体提供不同的外模式,数据库系统可以隐藏某些数据,以实现数据的访问控制和安全保护。
     
2. **与模式的关系**:
   - 外模式是模式的一个子集。它反映了整体模式中的部分数据,这部分数据正是某个用户或用户组所关心的。外模式中的数据的定义和约束条件实际上来自整体模式。

3. **为什么需要外模式**:
   - **数据隔离**:不同的用户或应用程序可能只需要访问数据库的一部分数据。外模式可以确保用户只看到和访问他们需要的数据。
   - **安全性**:通过提供有限的数据视图,可以限制用户访问某些敏感数据,增加数据安全性。
   - **易用性**:用户不必被整个数据库的复杂性所困扰,他们可以专注于与他们任务相关的数据。

在实际的数据库管理系统中,外模式的实现可以通过视图、查询等手段来实现。例如,在关系数据库系统中,通常使用SQL语句创建的视图可以为用户提供特定的数据视图,这些视图反映了外模式的内容。

3.内模式

内模式,也被称为物理模式,是数据库三级模式结构中的最底层。它描述了数据在物理存储介质上的组织和存放方式,关注的是数据的物理表示和存储效率。

以下是内模式的详细讲解:

1. **内模式 (物理模式)**:
   - **定义**:内模式描述了数据在物理存储介质上的布局和组织。它定义了如何在物理设备上存储数据,包括文件的组织方式、索引、存储结构、数据压缩技术等。
   
   - **特点**:
     - **物理存储**:内模式涉及数据库中数据的实际物理存储细节。
     - **优化**:其设计往往考虑了数据存取的效率,希望在可能的范围内优化存取时间和存储空间。
     - **独立性**:由于物理模式是与实际的物理存储有关的,因此,如果数据库的物理存储方式或存储设备发生变化,内模式可能需要进行调整。但由于三级模式结构的设计,这种变化不应影响到上层的模式或外模式。
     
2. **与其他层次的关系**:
   - **模式**:模式是数据库的逻辑结构,与物理存储无关。但内模式则为这个逻辑结构提供了物理存储细节。这种分离确保了逻辑数据结构与物理存储之间的独立性,使得数据库设计更加灵活。
   
   - **外模式**:外模式提供给用户的视图基于模式,而模式的实体和关系在物理层面是依赖于内模式的实现。但通常,用户或应用程序开发者不需要关心内模式的细节。
   
3. **为什么需要内模式**:
   - **物理优化**:有效的物理设计可以显著提高查询和事务的性能。
   - **灵活性**:由于逻辑结构(模式)与物理结构(内模式)的分离,数据库设计者可以更换或修改存储策略而不影响到应用程序或逻辑结构。
   - **数据完整性和恢复**:内模式还关心如何备份和恢复数据,以及如何维护数据的完整性。

总之,内模式关注的是数据的物理方面,它为上层的逻辑结构和用户视图提供了基础的存储和访问机制。在实际的数据库设计过程中,物理模式的设计同样非常关键,因为它直接影响到系统的性能和效率。

1.2.2 数据库系统的二级映像

 

1.外模式/模式映像

外模式/模式映像(External/Conceptual Mapping)是数据库系统中的一个重要概念,主要关注如何将用户视图(外模式)映射到整体的数据库逻辑结构(模式)上。这种映射确保了外模式中定义的数据能够正确地从整体的逻辑结构中检索出来。

以下是这种映射的详细讲解:

1. **映射的需要**:
   - 外模式为特定的用户或应用程序提供了数据库的逻辑子集。不同的用户或应用可能有不同的视图需求。因此,需要一种机制来确定这些视图中的数据如何与整体数据库逻辑结构中的数据关联。
   - 通过映射,数据库系统知道如何为特定用户或应用获取所需的数据。

2. **工作原理**:
   - 当用户通过其外模式(或用户视图)查询数据时,数据库系统使用外模式/模式映像来将该查询转换为可以在整体逻辑结构(模式)上执行的查询。
   - 这种映射可能涉及对查询条件的转换、选择特定的属性或实体、连接不同的实体等。

3. **映射的复杂性**:
   - 在简单的情况下,映射可能只是直接的一对一映射,即外模式中的一个元素直接对应于模式中的一个元素。
   - 在复杂的情况下,映射可能涉及多对一或一对多的关系,甚至需要进行计算或聚合操作来满足用户视图的需求。

4. **实现**:
   - 在实际的关系数据库管理系统中,映射通常通过SQL视图实现。视图是一种虚拟的表,它定义了如何从实际的物理表中检索数据。当用户查询视图时,系统使用定义视图的SQL查询来从基础表中获取数据。

5. **优势**:
   - **数据独立性**:由于外模式和模式之间的映射,任何对模式的更改(如添加新的属性或更改关系)都不会直接影响到外模式。同样,外模式的更改也不会影响到模式或物理存储。
   - **灵活性**:可以为不同的用户或应用创建不同的外模式,满足各种数据访问需求。

总之,外模式/模式的映像为数据库系统提供了将用户视图与整体逻辑结构关联起来的机制,确保了数据的逻辑独立性和查询的正确性。

2.模式/内模式的映像

模式/内模式的映像,也被称为概念/物理映像(Conceptual/Physical Mapping),描述了如何将逻辑数据模型(模式)映射到物理存储结构(内模式)上。这种映射为数据库提供了从逻辑设计到物理实现的桥梁。

 

以下是这种映射的详细讲解:

1. **映射的需要**:
   - 数据库的逻辑模型(如实体关系模型)为设计者提供了一个清晰、一致的方式来表示数据和它们之间的关系。但为了真正在物理存储设备上存储和检索这些数据,我们需要知道这些逻辑结构如何映射到实际的存储结构上,例如文件、索引、磁盘块等。
   - 这种映射提供了逻辑模型和物理存储之间的转换机制。

2. **工作原理**:
   - 当用户或应用程序向数据库发出查询或更新请求时,数据库管理系统使用模式/内模式映像来确定如何在物理存储上定位、存储或检索相关的数据。
   - 这种映射可能涉及数据的物理位置、文件的组织、索引结构的使用等。

3. **映射的细节**:
   - **文件组织**:如何组织数据文件,例如顺序文件、散列文件或B树文件等。
   - **索引结构**:选择哪些字段进行索引,以及选择哪种索引结构,如B树、位图索引等。
   - **存储策略**:如何分配磁盘块、数据压缩技术的使用等。
   - **数据碎片化**:如何将数据分布到不同的物理位置,例如分区、水平分片或垂直分片。

4. **实现**:
   - 在关系数据库管理系统中,模式/内模式映像通常是由数据库管理员(DBA)进行的,通过选择适当的文件组织、索引、存储策略等来实现。
   - 数据库系统提供了一系列工具和技术,如查询优化器,来辅助这个映射过程。

5. **优势**:
   - **性能优化**:通过精心设计的模式/内模式映像,可以大大提高数据库的查询和事务处理性能。
   - **逻辑与物理的分离**:这种映射确保了数据库的逻辑设计(模式)与物理实现(内模式)之间的独立性。这意味着,逻辑设计的更改不必导致物理存储的更改,反之亦然。

总之,模式/内模式的映像为数据库提供了将逻辑结构与物理实现关联起来的机制,并为性能优化和数据的物理管理提供了基础。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/92110.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Docker私有镜像仓库(Harbor)安装

Docker私有镜像仓库(Harbor)安装 1、什么是Harbor Harbor是类似与DockerHub 一样的镜像仓库。Harbor是由VMware公司开源的企业级的Docker Registry管理项目,它包括权限管理(RBAC)、LDAP、日志审核、管理界面、自我注册、镜像复制和中文支持等功能。Docker容器应用的…

Jenkins测试报告样式优化

方式一:修改Content Security Policy(临时解决,Jenkins重启后失效) 1、jenkins首页—>ManageJenkins—>Tools and Actions标题下—>Script Console 2、粘贴脚本输入框中:System.setProperty("hudson.model.Directo…

Oracle的学习心得和知识总结(二十九)|Oracle数据库数据库回放功能之论文三翻译及学习

目录结构 注:提前言明 本文借鉴了以下博主、书籍或网站的内容,其列表如下: 1、参考书籍:《Oracle Database SQL Language Reference》 2、参考书籍:《PostgreSQL中文手册》 3、EDB Postgres Advanced Server User Gui…

关于 MySQL、PostgresSQL、Mariadb 数据库2038千年虫问题

MySQL 测试时间:2023-8 启动MySQL服务后,将系统时间调制2038年01月19日03时14分07秒之后的日期,发现MySQL服务自动停止。 根据最新的MySQL源码(mysql-8.1.0)分析,sql/sql_parse.cc中依然存在2038年千年虫…

傅里叶变换(FFT)笔记存档

参考博客:https://www.luogu.com.cn/blog/command-block/fft-xue-xi-bi-ji 目录: FFT引入复数相关知识单位根及其相关性质DFT过程(难点)DFT结论(重要)IDFT结论(重要)IDFT结论证明&…

Apipost:API文档、调试、Mock与测试的一体化协作平台

随着数字化转型的加速,API(应用程序接口)已经成为企业间沟通和数据交换的关键。而在API开发和管理过程中,API文档、调试、Mock和测试的协作显得尤为重要。Apipost正是这样一款一体化协作平台,旨在解决这些问题&#xf…

基于ssm+vue舞蹈网站的设计与实现

基于ssmvue舞蹈网站的设计与实现111 开发工具:idea 数据库mysql5.7 数据库链接工具:navcat,小海豚等 技术:ssm 摘 要 随着科学技术的飞速发展,社会的方方面面、各行各业都在努力与现代的先进技术接轨,通过科技…

Redis进阶 - JVM进程缓存

原文首更地址,阅读效果更佳! Redis进阶 - JVM进程缓存 | CoderMast编程桅杆https://www.codermast.com/database/redis/redis-advance-jvm-process-cache.html 传统缓存的问题 传统的缓存策略一般是请求到达 Tomcat 后,先查询 Redis &…

7 集群基本测试

1. 上传小文件到集群 在hadoop路径下执行命令创建一个文件夹用于存放即将上传的文件: [atguiguhadoop102 ~]$ hadoop fs -mkdir /input上传: [atguiguhadoop102 hadoop-3.1.3]$ hadoop fs -put wcinput/work.txt /input2.上传大文件 [atguiguhadoop1…

R语言nlme、nlmer、lme4用(非)线性混合模型non-linear mixed model分析藻类数据实例...

原文链接:http://tecdat.cn/?p23426 混合线性模型,又名多层线性模型(Hierarchical linear model)。它比较适合处理嵌套设计(nested)的实验和调查研究数据(点击文末“阅读原文”获取完整代码数据)。 相关视频 序言 此外&#xff0…

2023年全国职业院校技能大赛网络系统管理赛项模块A:网络构建卷II

2023年全国职业院校技能大赛 GZ073网络系统管理赛项 模块A:网络构建 卷II 目 录 任务清单 (一)基础配置 (二)有线网络配置 (三)无线网络配置 (四)出口网络配置 &am…

Data truncation: Out of range value for column ‘id‘ at row 1

错误信息:Data truncation: Out of range value for column id at row 1 数据截断:第1行“id”列的值超出范围 很多人会回复:数据库 类型由int改为 bigInt 我看了表结构 可以放的下的。 是 bigint(20) 没有问题啊。 默认的 bigint 类型…