《数据库基础及实践技术——SQL Server 2008》一1.4 数据库系统的结构

本文涉及的产品
RDS SQL Server Serverless,2-4RCU 50GB 3个月
推荐场景:
云数据库 RDS SQL Server,基础系列 2核4GB
简介: 本节书摘来自华章出版社《 数据库基础及实践技术——SQL Server 2008》一 书中的第1章,第1.4节,作者:何玉洁,更多章节内容可以访问云栖社区“华章计算机”公众号查看。

1.4 数据库系统的结构

数据库系统的结构可以从多种不同的层次或角度进行考查。
从数据库管理角度来看,数据库系统通常采用三级模式结构。这是数据库管理系统内部的结构。
从数据库最终用户角度来看,数据库系统的结构分为集中式结构、文件服务器结构、客户端/服务器结构等。这是数据库系统外部的体系结构。
本节我们仅讨论数据库管理系统内部的结构。
数据库系统的结构是一个框架结构,这个框架用于描述一般数据库系统的概念,但并不是说所有的数据库系统都一定使用这个框架,这个框架结构在数据库中并不是唯一的,特别是一些“小”的数据库管理系统将难以支持这个体系结构的所有方面。但这里介绍的数据库管理系统的体系结构基本上能很好地适应大多数系统,而且,它基本上和ANSI/SPARC DBMS研究组提出的数据库管理系统的体系结构(称做ANSI/SPARC体系结构)是相同的。
虽然实际的数据库管理系统产品种类很多,支持的数据模型和数据库语言也不尽相同,但它们在体系结构上通常都具有相同的特征,即采用三级模式结构并提供两级映像功能。

1.4.1 三级模式结构

数据库系统的三级模式结构是指数据库系统的外模式、模式和内模式。图1-11说明了各级模式之间的关系。

screenshot

从广义上讲,它们的描述如下。
内模式:最接近物理存储,是数据的物理存储方式。
外模式:最接近用户,是用户所看到的数据视图。
模式:介于内模式和外模式之间的中间层次。
从图1-11可以看出,外模式是单个用户的数据视图,而模式是一个部门或公司的整体数据视图。换句话说,外模式(外部视图)可以有许多,每一个都或多或少地抽象表示整个数据库的某一部分;而模式(概念视图)只有一个,它包含对现实世界数据库的抽象表示,注意这里的抽象指的是记录和字段这些更加面向用户的概念,而不是位和字节那样的面向机器的概念。大多数用户只对整个数据库的某一部分感兴趣。内模式(内部视图)也只有一个,它表示数据库的物理存储。
关系系统中的模式一定是关系的,在该层可见的实体是关系表和关系的操作符。
外模式也是关系的或接近关系的,它们的内容来自模式。例如,我们可以定义两个外模式,一个记录学生的姓名、性别(表示为:学生基本信息1(姓名,性别)),另一个记录学生的姓名和所在系(表示为:学生基本信息2(姓名,所在系)),这两个外模式的内容均来自“学生基本信息”这个模式。外模式对应到关系数据库中就是“外部视图”(或简称为“视图”),它在关系数据库中有特定的含义,将在第9章详细讨论视图的概念。
内模式不是关系的,因为该层的实体不是关系表的“原样照搬”。其实,不管是什么系统,其内模式都是一样的,都是存储记录、指针、索引、哈希表等。事实上,关系模型与内模式无关,它关心的是用户的数据视图。
下面从外模式开始进一步讨论这个三层结构。整个讨论过程都以图1-11为基础,该图显示了体系结构的主要组成部分和它们之间的联系。

  1. 外模式
    外模式也称为用户模式或子模式,它是对现实系统中用户感兴趣的整体数据结构的局部描述,用于满足不同数据库用户需求的数据视图,是对数据库用户能够看见和使用的局部数据的逻辑结构和特征的描述,是数据库整体数据结构的子集或局部重构。

外模式通常是模式的子集。一个数据库可以有多个外模式。由于它是各个用户的数据视图,如果不同的用户在应用需求、看待数据的方式、对数据保密要求等方面存在差异,则其外模式描述就是不相同的。即使对模式中同样的数据,在外模式中的结构、类型、长度等都可以不同。
外模式同时是保证数据库安全的一个措施。每个用户只能看到和访问其需要操作的外模式中的数据,将其不需要操作的数据屏蔽起来,因此保证不会出现由于用户的误操作和有意破坏而造成数据损失。
外模式就是特定用户所看到的数据库的内容,对那些用户来说,外模式就是数据库。例如,学校人事部门的用户可能把各系的教师数据的集合作为他的外模式,而不考虑各个系的用户所看见的课程和学生的记录值。

  1. 模式
    模式也称为逻辑模式或概念模式,是数据库中全体数据的逻辑结构和特征的描述,是所有用户的公共数据视图。模式表示数据库中的全部信息,其形式要比数据的物理存储方式抽象。它是数据库系统结构的中间层,既不涉及数据的物理存储细节和硬件环境,也与具体的应用程序、与所使用的应用开发工具和环境无关。

模式由许多概念记录类型的值构成。例如,可以包含学生记录值的集合、课程记录值的集合,选课记录值的集合等。概念记录即不等同于外部记录,也不等同于存储记录。
模式实际上是数据库数据在逻辑级上的视图。一个数据库只有一种模式。数据库模式以某种数据模型为基础,综合地考虑了所有用户的需求,并将这些需求有机地结合成一个逻辑整体。定义数据库模式时不仅要定义数据的逻辑结构,如数据记录由哪些数据项组成,以及数据项的名字、类型、取值范围等,而且还要定义数据之间的联系,定义与数据有关的安全性要求、完整性要求。
模式不涉及存储字段的表示,也不涉及对列、索引、指针或其他存储的访问细节。如果模式以这种方式真正地实现了数据独立性,那么根据这些概念模式定义的外模式也会有很强的独立性。
数据库管理系统提供了数据定义语言(DDL)来定义数据库的模式。

  1. 内模式
    内模式也称为存储模式。内模式是对整个数据库的底层表示,它描述了数据的存储结构,如数据的组织与存储方式,又如是顺序存储、B树存储还是Hash存储,以及索引按什么方式组织、是否加密等。注意,内模式与物理层是不一样的,内模式不涉及物理记录的形式(即物理块或页,输入/输出单位),也不考虑具体设备的柱面或磁道大小。换句话说,内模式假定了一个无限大的线性地址空间,地址空间到物理存储的映射细节与特定系统有关,这些并不反映在体系结构中。

1.4.2 两级模式映像功能与数据独立性

数据库系统的三级模式是对数据的3个抽象级别,它把数据的具体组织留给DBMS管理,使用户能逻辑地、抽象地处理数据,而不必关心数据在计算机中的具体表示方式与存储方式。为了能够在内部实现这3个抽象层次的联系和转换,数据库管理系统在3个模式之间提供了两层映像(如图1-11所示):
外模式/模式映像
模式/内模式映像
正是这两层映像保证了数据库系统中的数据能够具有较高的逻辑独立性和物理独立性,使数据库应用程序不随数据库数据的逻辑或存储结构的变动而变动。

  1. 外模式/模式映像
    模式描述的是数据的全局逻辑结构,外模式描述的是数据的局部逻辑结构。对应于同一个模式可以有多个外模式。对于每个外模式,都有一个从外模式到模式的映像,该映像定义了外模式与模式之间的对应关系。这些映像定义通常包含在各自的外模式描述中。

当模式发生变化时(如增加新的关系、新的属性或改变属性的数据类型等),可以通过外模式定义语句,调整外模式/模式映像定义,从而保持外模式不变。由于应用程序是依据数据的外模式编写的,因此应用程序也不必修改,从而保证了程序与数据的逻辑独立性,简称为数据的逻辑独立性。

  1. 模式/内模式映像
    模式/内模式映像定义了数据库的逻辑结构与存储结构之间的对应关系。当数据库的存储结构发生改变,比如选择了另一种存储结构,只需要对模式/内模式映像做相应的调整,就可以保持模式不变,从而使应用程序也不必修改。因此,保证了数据与程序的物理独立性,简称为数据的物理独立性。

在数据库的三级模式结构中,模式是数据库的中心与关键,它独立于数据库的其他层次。设计数据库时也是首先设计数据库的模式。
数据库的内模式依赖于数据库的全局逻辑结构,但独立于数据库的用户视图,也就是外模式,也独立于具体的存储设备。内模式将全局逻辑结构中定义的数据结构及其联系按照一定的物理存储策略进行组织,以达到较好的时间与空间效率。
数据库的外模式面向具体的数据用户,它定义在模式之上,独立于内模式和存储设备。当应用需求发生较大变化,相应的外模式不能满足用户要求时,就需要对外模式做相应的改动,因此设计外模式时应充分考虑到应用的可扩充性。
特定的应用程序是在外模式描述的数据结构上编制的,它依赖于特定的外模式,与数据库的模式和存储结构相互独立。不同的应用程序有时可以共用同一个外模式。数据库的两级映像保证了数据库外模式的稳定性,从而从底层保证了应用程序的稳定性,除非应用需求本身发生变化,否则应用程序一般不需要修改。
程序与数据之间的独立性,使得数据的定义和描述可以从应用程序中分离出来。另外,由于数据的存取由DBMS负责管理和实施,因此,用户不必考虑存取路径等细节,从而简化了应用程序的编写工作,减少了对应用程序的维护和修改工作。

相关实践学习
使用SQL语句管理索引
本次实验主要介绍如何在RDS-SQLServer数据库中,使用SQL语句管理索引。
SQL Server on Linux入门教程
SQL Server数据库一直只提供Windows下的版本。2016年微软宣布推出可运行在Linux系统下的SQL Server数据库,该版本目前还是早期预览版本。本课程主要介绍SQLServer On Linux的基本知识。 相关的阿里云产品:云数据库RDS SQL Server版 RDS SQL Server不仅拥有高可用架构和任意时间点的数据恢复功能,强力支撑各种企业应用,同时也包含了微软的License费用,减少额外支出。 了解产品详情: https://www.aliyun.com/product/rds/sqlserver
相关文章
|
28天前
|
人工智能 运维 关系型数据库
|
2月前
|
SQL 缓存 分布式数据库
【赵渝强老师】达梦数据库的线程结构
达梦数据库采用单进程、多线程结构,利用对称服务器架构实现高效资源利用与可扩展性。其核心线程类型包括监听线程(管理客户端连接)、I/O线程(处理数据页读写)、工作线程(执行数据操作)、调度线程(定时任务管理)和日志刷新线程(确保REDO日志刷盘)。通过合理分工与同步机制,达梦数据库实现了高性能与稳定性。视频讲解进一步详细介绍了各线程的功能与协作方式。
【赵渝强老师】达梦数据库的线程结构
|
2月前
|
存储 SQL NoSQL
【赵渝强老师】达梦数据库的逻辑存储结构
本文介绍了达梦数据库的存储结构,包括逻辑和物理存储两部分。逻辑存储结构由数据库(Database)、表空间(Tablespaces)、段(Segments)、簇(Cluster)和页(Page)组成。数据库是最大逻辑单元,包含所有表、索引等;表空间由数据文件组成,用于存储对象;段由簇构成,簇包含连续的数据页;页是最小存储单元。文中还提供了查询表空间、段和页大小的SQL语句,并附有视频讲解和示意图。
|
4月前
|
关系型数据库 MySQL 数据库连接
数据库连接工具连接mysql提示:“Host ‘172.23.0.1‘ is not allowed to connect to this MySQL server“
docker-compose部署mysql8服务后,连接时提示不允许连接问题解决
|
2月前
|
SQL 存储 缓存
【赵渝强老师】达梦数据库的内存结构
本文介绍了达梦数据库管理系统的内存结构,包括内存池、缓冲区、排序区和哈希区。内存池分为共享内存池和运行时内存池,能够提高内存申请与释放效率,并便于监控内存使用情况。缓冲区涵盖数据缓冲区、日志缓冲区、字典缓冲区和SQL缓冲区,用于优化数据读写和查询性能。排序区和哈希区分别提供排序和哈希连接所需的内存空间,通过合理配置参数可提升系统效率。文内附有具体配置示例及视频讲解,帮助用户深入理解达梦数据库的内存管理机制。
|
2月前
|
存储 SQL 安全
【赵渝强老师】达梦数据库的物理存储结构
本文介绍了达梦数据库的存储结构及各类物理文件的作用。达梦数据库通过逻辑和物理存储结构管理数据,包含配置文件(如dm.ini、sqllog.ini)、控制文件(dm.ctl)、数据文件(*.dbf)、重做日志文件(*.log)、归档日志文件、备份文件(*.bak)等。配置文件用于功能设置,控制文件记录数据库初始信息,数据文件存储实际数据,重做日志用于故障恢复,归档日志增强数据安全性,备份文件保障数据完整性,跟踪与事件日志辅助问题分析。这些文件共同确保数据库高效、稳定运行。
|
3月前
|
数据管理 关系型数据库 MySQL
数据管理服务DMS支持MySQL数据库的无锁结构变更
本文介绍了使用Sysbench准备2000万数据并进行全表字段更新的操作。通过DMS的无锁变更功能,可在不锁定表的情况下完成结构修改,避免了传统方法中可能产生的锁等待问题。具体步骤包括:准备数据、提交审批、执行变更及检查表结构,确保变更过程高效且不影响业务运行。
167 2
|
8月前
|
关系型数据库 MySQL 网络安全
5-10Can't connect to MySQL server on 'sh-cynosl-grp-fcs50xoa.sql.tencentcdb.com' (110)")
5-10Can't connect to MySQL server on 'sh-cynosl-grp-fcs50xoa.sql.tencentcdb.com' (110)")
|
9月前
|
SQL 安全 Java
访问者模式问题之在上面的 SQL 结构定义中, sealed 接口的作用如何理解
访问者模式问题之在上面的 SQL 结构定义中, sealed 接口的作用如何理解
|
9月前
|
SQL 安全 Java
驱动程序无法通过使用安全套接字层(SSL)加密与 SQL Server 建立安全连接。错误:“The server selected protocol version TLS10 is not accepted by client
驱动程序无法通过使用安全套接字层(SSL)加密与 SQL Server 建立安全连接。错误:“The server selected protocol version TLS10 is not accepted by client
707 0

热门文章

最新文章