1.2 数据库系统结构

news2024/11/25 16:46:05

思维导图:

 学习目标:

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

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.coloradmin.cn/o/949427.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

多用户商城系统常见的安全性和数据保护措施有哪些?

电子商务的迅速发展,越来越多的企业选择搭建多用户商城系统来扩展业务。然而,随之而来的是对数据安全和保护的日益关注。在选择多用户商城系统时,我们需要考虑一系列的安全性和数据保护措施,以确保商城系统的稳定性和用户数据的完…

【数据结构】带头双向循环链表---C语言版(单链表我们分手吧,不要再找我玩了!!!)

文章目录 🐸一、前言🐸二、链表的分类🍄1. 单向或者双向链表🍄2. 带头或者不带头链表🍄3. 循环或者非循环🍄4. 最常用链表 🐸三、带头双向循环链表详解🍎创建带头双向循环链表⭕接口…

Power Pivot 实现数据建模

一、简介 Excel中的透视表适合小规模数据;如果想在稍微大一些的数据中进行高性能透视表分析,就要使用Power Pivot;再大一些数据,可能就需要大数据分析服务来进行分析。 Power Pivot,可以让没有技术背景的企业业务人员…

【前端demo】将二进制数转换为十进制数 原生实现

https://github.com/florinpop17/app-ideas 总结 文章目录 效果JavaScript实现进制转换原生代码遇到的问题 效果 二进制转换为十进制若输入为空或不是二进制,提示清空 JavaScript实现进制转换 parseInt parseInt(111,2)手动实现 bin是输入的字符串。 functio…

设备分配与回收、缓冲区管理

设备分配与回收 是什么:设备分配的任务是按照一定的策略,为提出I/O请求的进程分配合适的设备,确保CPU与I/O设备之间能正常通信,还应分配相应的控制器和通道。设备分配管理中的数据结构 设备控制表DCT:每个设备对应一张…

Spring Bean 生命周期顺序验证

看到一篇写的很好的 Spring Bean 生命周期的博客:一文读懂 Spring Bean 的生命周期,在此写个简单的 Bean 进行验证。 1. 创建Springboot项目 基于 springboot 的2.1.8.RELEASE 创建一个简单项目,只添加 spring-aop 包以引入spring依赖。 &…

关于流控RTS/CTS ,DTR/DSR的说明

最近在调试代码过程中遇到一些流控的问题,关于相关概念做了一些总结。 以9针脚232串口为例子: DCD:接受信号检出,也叫数据载波检出线(Data Carrier detection,DCD),主要用于表示Modem已经接通通…

六、事务-2.事务操作

解决问题:要把转账的三步操作控制在一个事务之内 当前每一个SQL语句就是一个事务,默认MySQL的事务是自动提交的,也就是说,当执行一条DML语句,MySQL会立即隐式的提交事务。 一、方式一:修改当前窗口事务提…

全球化时代的文化代言人:海外网红如何影响消费行为?

随着全球化的推进,互联网和社交媒体的普及,海外网红在当今社会中扮演着越来越重要的角色。这些在网络平台上拥有大量粉丝的人物不仅仅是娱乐的代表,更成为了文化的代言人,影响着人们的消费行为。 从美妆产品到时尚潮流&#xff0…

我们到底在用Hibernate还是Spring Data JPA还是JPA???

Hibernate 和 JPA 和Spring Data JPA JPA JPA的全称是Java Persistence API, 即Java 持久化API,是SUN公司推出的一套基于ORM的规范 Hibernate Hibernate是一个JPA规范的具体实现,是ORM类型的框架,对象映射模型。 Hibernate 可以自…

ModuleNotFoundError: No module named ‘google‘

这个错误表明你的代码在执行过程中遇到了一个模块导入问题。根据报错信息,问题似乎出现在导入google.protobuf模块时,提示找不到google模块。 解决这个问题的一种可能方法是确保你的环境中安装了protobuf库,因为google.protobuf实际上是prot…

持续性能优化:确保应用保持高性能

在当今数字化时代,应用程序的性能已经成为用户体验和业务成功的关键因素之一。无论是Web应用、移动应用还是企业级软件,用户对于速度和响应性的要求越来越高。因此,持续性能优化已经成为保证应用在竞争激烈的市场中脱颖而出的重要策略。 什么…

FTP传文件传易丢失且运维管理难,是否有好的替代解决方案?

文件传输协议(FTP),诞生于1971年,自20世纪70年代发明以来,FTP已成为传输大文件的不二之选。内置有操作系统的 FTP 可提供一个相对简便、看似免费的文件交换方法,因此得到广泛使用。 后来由于FTP缺乏足够的安…

计算机字节单位以及换算

字节 字节(Byte)是计算机信息技术用于计量存储容量的一种计量单位,同时也表示一些计算机编程语言中的数据类型和语言字符。字节是二进制数据的单位。一个字节通常8位长。 字节单位 换算 1字节(Byte) 8位(bit) 1KB( KB,千字节) …

Lnmp架构-Redis

redis 部署 make的时候需要gcc和make 如果在纯净的环境下需要执行此命令 [rootserver3 redis-6.2.4]# yum install make gcc -y 注释一下这几行 vim /etc/redis/6739.conf 2.Redis主从复制 设置 11 是master 12 13 是slave 在12 上 其他节点以此内推 此时在 11 master …

【JAVA+Geoserver】使用Geoserver的REST API发布样式,文本丢失问题,已解决

文章目录 问题描述原因分析在geoserver检查sld文本推测一、是否是geoserver-manager的API优化sld文本,导致文本内容丢失结论:geoserver-manager并没有优化文本 推测二、API接口本身就有问题结论:可以确定是geoserver的内部出现问题 解决方法在…

CSS布局,表格按钮无线延长

C有时候有有时候没有,如下样式会导致B在ctrl滚轮放大缩小中的表格会无限加宽 .A{ display: flex; width: 100% } .B{ flex: 1 } 解决方案: 1.如果C一直在 .A{display: flex; width: 100% justify-content: space-between; } .B{width: calc(100% - 200…

移动隔断墙的用途和空间布局,设计合适的结构,包括固定方式

移动隔断墙的用途: 1. 划分空间:移动隔断墙可以在需要时将一个大空间划分为多个小空间,以满足不同的使用需求。 2. 提供隐私:移动隔断墙可以为需要隐私的区域提供屏障,例如办公室中的会议室或私人办公室。 3. 增加灵活…

C语言程序设计——小学生计算机辅助教学系统

题目:小学生计算机辅助教学系统 编写一个程序,帮助小学生学习乘法。然后判断学生输入的答案对错与否,按下列任务要求以循序渐进的方式分别编写对应的程序并调试。 任务1 程序首先随机产生两个1—10之间的正整数,在屏幕上打印出问题…

2023年高教社杯 国赛数学建模思路 - 案例:感知机原理剖析及实现

文章目录 1 感知机的直观理解2 感知机的数学角度3 代码实现 4 建模资料 # 0 赛题思路 (赛题出来以后第一时间在CSDN分享) https://blog.csdn.net/dc_sinor?typeblog 1 感知机的直观理解 感知机应该属于机器学习算法中最简单的一种算法,其…