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

本文涉及的产品
云数据库 RDS SQL Server,基础系列 2核4GB
RDS SQL Server Serverless,2-4RCU 50GB 3个月
推荐场景:
简介: 本节书摘来自华章出版社《 数据库基础及实践技术——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
相关文章
|
1天前
|
SQL 关系型数据库 MySQL
SQL命令行退出操作指南:轻松掌握不同数据库环境下的退出技巧
在数据库管理与开发过程中,经常需要通过SQL命令行工具(如MySQL的mysql客户端、PostgreSQL的psql、SQL Server的sqlcmd等)与数据库进行交互
89 59
|
20小时前
|
SQL 监控 数据处理
SQL数据库数据修改操作详解
数据库是现代信息系统的重要组成部分,其中SQL(StructuredQueryLanguage)是管理和处理数据库的重要工具之一。在日常的业务运营过程中,数据的准确性和及时性对企业来说至关重要,这就需要掌握如何在数据库中正确地进行数据修改操作。本文将详细介绍在SQL数据库中如何修改数据,帮助读者更好
15 4
|
2天前
|
SQL 关系型数据库 MySQL
如何创建SQL数据库——初学者指南
在现代信息技术的浪潮中,数据库管理系统(DBMS)已经成为数据处理的核心工具之一。结构化查询语言(SQL)作为数据库管理系统的核心语言,在数据库创建、管理以及优化方面扮演着关键角色。本文将详细指导初学者如何使用SQL创建数据库,涉及的内容包括但不限于安装数据库系统、使用SQL命令创建数据库、设置用户
15 5
|
20小时前
|
SQL 存储 Oracle
Oracle数据库SQL语句详解与应用指南
在数字化时代,数据库已成为各类企业和组织不可或缺的核心组件。Oracle数据库作为业界领先的数据库管理系统之一,广泛应用于各种业务场景。掌握Oracle数据库的SQL语句是数据库管理员、开发人员及运维人员的基本技能。本文将详细介绍Oracle数据库SQL语句的基本概念、语法、应用及最佳实践。一、Or
12 3
|
20小时前
|
SQL 数据管理 数据库
文章初学者指南:SQL新建数据库详细步骤与最佳实践
引言:在当今数字化的世界,数据库管理已经成为信息技术领域中不可或缺的一部分。作为广泛使用的数据库管理系统,SQL已经成为数据管理和信息检索的标准语言。本文将详细介绍如何使用SQL新建数据库,包括准备工作、具体步骤和最佳实践,帮助初学者快速上手。一、准备工作在开始新建数据库之前,你需要做好以下准备工作
14 3
|
21小时前
|
SQL 存储 安全
SQL查询数据库:基础概念与操作指南
在数字化时代,数据库已成为信息管理的重要工具之一。作为管理和操作数据库的核心语言,SQL(结构化查询语言)已成为数据管理和查询的关键技能。本文将全面介绍SQL查询数据库的基本概念、语句和操作指南,以帮助初学者快速上手,同时为进阶用户提供有价值的参考。一、数据库与SQL简介数据库是一种存储、管理和检索
13 3
|
1天前
|
SQL 关系型数据库 MySQL
创建SQL数据库的基本步骤与代码指南
在信息时代,数据管理显得尤为重要,其中数据库系统已成为信息技术架构的关键部分。而当我们谈论数据库系统时,SQL(结构化查询语言)无疑是其中最核心的工具之一。本文将详细介绍如何使用SQL创建数据库,包括编写相应的代码和必要的步骤。由于篇幅限制,本文可能无法达到您要求的2000字长度,但会尽量涵盖创建数
12 3
|
1天前
|
SQL 开发框架 .NET
ASP连接SQL数据库:从基础到实践
随着互联网技术的快速发展,数据库与应用程序之间的连接成为了软件开发中的一项关键技术。ASP(ActiveServerPages)是一种在服务器端执行的脚本环境,它能够生成动态的网页内容。而SQL数据库则是一种关系型数据库管理系统,广泛应用于各类网站和应用程序的数据存储和管理。本文将详细介绍如何使用A
15 3
|
1天前
|
SQL 存储 数据库
掌握SQL,轻松查看数据库
在当今信息化时代,数据库已经成为许多企业和组织不可或缺的一部分。数据库管理系统的使用已经变得越来越普遍,其中SQL语言是最广泛使用的数据库查询语言之一。本文将介绍如何使用SQL查询语言来查看数据库,帮助读者更好地理解和使用数据库。一、SQL语言简介SQL是一种用于管理关系数据库管理系统(RDBMS)
13 3
|
20小时前
|
SQL 存储 关系型数据库
SQL文件导入MySQL数据库的详细指南
数据库中的数据转移是一项常规任务,无论是在数据迁移过程中,还是在数据备份、还原场景中,导入导出SQL文件显得尤为重要。特别是在使用MySQL数据库时,如何将SQL文件导入数据库是一项基本技能。本文将详细介绍如何将SQL文件导入MySQL数据库,并提供一个清晰、完整的步骤指南。这篇文章的内容字数大约在
13 1