SQL Server从入门到精通(第3版)
上QQ阅读APP看书,第一时间看更新

第1章 数据库基础

视频讲解:34分钟

本章主要介绍数据库的相关概念,包括数据库系统简介、数据库的体系结构、数据模型和常见关系数据库。通过本章的学习,读者应该掌握数据库系统、数据模型、数据库三级模式结构以及数据库规范化等概念,以及常见的关系数据库。

通过阅读本章,您可以:

了解数据库技术的发展

掌握数据库系统的组成

掌握数据库的体系结构

熟悉数据模型

掌握常见的关系数据库

1.1 数据库系统简介

数据库系统(DataBase System,DBS)是由数据库及其管理软件组成的系统,人们常把与数据库有关的硬件和软件统称为数据库系统。

1.1.1 数据库技术的发展

数据库技术是应数据管理任务的需求而产生的。随着计算机技术的发展,人们对数据管理技术不断地提出更高的要求,先后经历了人工管理、文件系统、数据库系统3个阶段。

1.人工管理阶段

20世纪50年代中期以前,计算机主要用于科学计算。当时硬件和软件设备都很落后。数据基本依赖于人工管理。人工管理数据具有如下特点。

数据不保存。

使用应用程序管理数据。

数据不共享。

数据不具有独立性。

2.文件系统阶段

20世纪50年代后期到60年代中期,硬件和软件技术都有了进一步发展,有了磁盘等存储设备和专门的数据管理软件(即文件系统)。该阶段具有如下特点。

数据可以长期保存。

由文件系统管理数据。

共享性差,数据冗余大。

数据独立性差。

3.数据库系统阶段

20世纪60年代后期以来,计算机开始应用于管理系统,而且规模越来越大,应用越来越广泛,数据量急剧增长,对共享功能的要求越来越强烈。此时使用文件系统管理数据已经不能满足要求,为了解决一系列问题,出现了数据库系统来统一管理数据。数据库系统满足了对多用户、多应用共享数据的需求,和文件系统相比具有明显的优点,标志着管理技术的飞跃。

1.1.2 数据库系统的组成

数据库系统是采用数据库技术的计算机系统,是由数据库(数据)、数据库管理系统、数据库管理员(人员)、支持数据库系统的硬件和软件(应用开发工具、应用系统等)、用户5部分构成的运行实体,如图1.1所示。其中,数据库管理员(DataBase Administrator,DBA)是对数据库进行规划、设计、维护和监视等的专业管理人员,在数据库系统中起着非常重要的作用。

图1.1 数据库系统的组成

1.2 数据库的体系结构

数据库具有一个严谨的体系结构,这样可以有效地组织、管理数据,提高数据库的逻辑独立性和物理独立性。数据库领域公认的标准结构是三级模式结构,如图1.2所示。

图1.2 数据库体系结构

1.2.1 数据库三级模式结构

数据库系统的三级模式结构指模式、外模式和内模式,下面分别进行介绍。

1.模式

模式也称为逻辑模式或概念模式,是数据库中全体数据的逻辑结构和特征的描述,是所有用户的公共数据视图。模式处于三级结构的中间层,一个数据库只有一个模式。

注意

定义模式时,不仅要定义数据的逻辑结构,而且要定义数据之间的联系,以及与数据有关的安全性、完整性要求。

2.外模式

外模式也称为用户模式,它是数据库用户(包括应用程序员和最终用户)能够看见和使用的局部数据的逻辑结构和特征的描述,是数据库用户的数据视图,是与某一应用有关的数据的逻辑表示。外模式是模式的子集,一个数据库可以有多个外模式。

说明

外模式是保证数据安全性的一个有力措施。

3.内模式

内模式也称为存储模式,一个数据库只有一个内模式。它是数据物理结构和存储方式的描述,是数据在数据库内部的表示方式。

1.2.2 三级模式之间的映射

为了能够在内部实现数据库的3个抽象层次的联系和转换,数据库管理系统在三级模式之间提供了两层映射。

1.外模式/模式映射

一个模式可以有任意多个外模式。对于每个外模式,数据库系统都有一个外模式/模式映射。当模式改变时,由数据库管理员对各个外模式/模式映射做相应的改变,使外模式保持不变。这样,依据数据外模式编写的应用程序就不用修改,保证了数据与程序的逻辑独立性。

2.模式/内模式映射

数据库中只有一个模式和一个内模式,所以模式/内模式映射是唯一的,它定义了数据库的全局逻辑结构与存储结构之间的对应关系。当数据库的存储结构改变时,由数据库管理员对模式/内模式映射做相应改变,使模式保持不变,应用程序也相应地不做变动。这样,保证了数据与程序的物理独立性。

1.3 数据模型

数据模型就是一种对客观事物抽象化的表现形式。它对客观事物加以抽象,通过计算机来处理现实世界中的具体事物。它客观地反映了现实世界,易于理解,与人们对外部事物描述的认识相一致。

1.3.1 数据模型的概念

数据模型是数据库系统的核心与基础,是关于描述数据与数据之间的联系、数据的语义、数据一致性约束的概念性工具的集合。

数据模型通常由数据结构、数据操作和完整性约束3部分组成。

数据结构:是对系统静态特征的描述。描述对象包括数据的类型、内容、性质和数据之间的相互关系。

数据操作:是对系统动态特征的描述。具体来说,是对数据库中各种对象实例的操作。

完整性约束:是完整性规则的集合。它定义了给定数据模型中数据及其联系所具有的制约和依存规则。

1.3.2 常见的数据模型

常见的数据库数据模型主要有层次模型、网状模型和关系模型,下面分别进行介绍。

(1)层次模型:用树状结构表示实体类型及实体间联系的数据模型称为层次模型,它具有以下特点。

每棵树有且仅有一个无双亲结点,称为根。

树中除根外,所有结点有且仅有一个双亲。

层次模型示例图如图1.3所示。

图1.3 层次模型

(2)网状模型:用有向图结构表示实体类型及实体间联系的数据模型称为网状模型。用网状模型编写应用程序极其复杂,数据的独立性较差。网状模型示例图如图1.4所示。

(3)关系模型:以二维表来描述数据。关系模型中,每个表有多个字段列和记录行,每个字段列有固定的属性(如数字、字符、日期等)。关系模型数据结构简单、清晰,具有很高的数据独立性,因此是目前数据库主流的数据模型。

关系模型的基本术语如下。

关系:一个二维表就是一个关系。

元组:就是二维表中的一行,即表中的记录。

属性:就是二维表中的一列,用类型和值表示。

域:每个属性取值的变化范围,如性别的域为{男,女}。

关系中的数据约束如下。

实体完整性约束:约束关系的主键中属性值不能为空值。

参照完整性约束:关系之间的基本约束。

用户定义的完整性约束:它反映了具体应用中数据的语义要求。

关系模型示例图如图1.5所示。

图1.4 网状模型

图1.5 关系模型

1.3.3 关系数据库的规范化

关系数据库的规范化理论认为:关系数据库中的每一个关系都要满足一定的规范。根据满足规范的条件不同,可以分为5个等级:第一范式(1NF)、第二范式(2NF)、……、第五范式(5NF)。其中,NF是Normal Form的缩写。一般情况下,只要把数据规范到第三个范式标准,就可以满足需要了。

第一范式(1NF):在一个关系中,消除重复字段,且各字段都是最小的逻辑存储单位。

第二范式(2NF):若关系模型属于第一范式,则关系中每一个非主关键字段都完全依赖于主关键字段,不能只部分依赖于主关键字的一部分。

第三范式(3NF):若关系属于第一个范式,且关系中所有非主关键字段都只依赖于主关键字段。第三范式要求去除传递依赖。

1.3.4 关系数据库的设计原则

数据库设计是指对于一个给定的应用环境,根据用户的需求,利用数据模型和应用程序模拟现实世界中该应用环境的数据结构和处理活动的过程。

数据库设计原则如下。

(1)数据库内数据文件的数据组织应获得最大限度的共享、最小的冗余度,消除数据及数据依赖关系中的冗余部分,使依赖于同一个数据模型的数据达到有效的分离。

(2)保证输入、修改数据时数据的一致性与正确性。

(3)保证数据与使用数据的应用程序之间的高度独立性。

1.3.5 实体与关系

实体是指客观存在并可相互区别的事物。实体既可以是实际的事物,也可以是抽象的概念或关系。

实体之间有以下3种关系。

一对一关系:是指表A中的一条记录确实在表B中有且只有一条相匹配的记录。在一对一关系中,大部分相关信息都在一个表中。

一对多关系:是指表A中的行可以在表B中有许多匹配行,但是表B中的行只能在表A中有一个匹配行。

多对多关系:是指关系中每个表的行在相关表中具有多个匹配行。在数据库中,多对多关系的建立是依靠第3个表(称作连接表)实现的,连接表包含相关的两个表的主键列,然后从两个相关表的主键列分别创建与连接表中的匹配列的关系。

1.4 常见关系数据库

关系数据库是建立在关系数据库模型基础上的数据库,通过集合代数等概念和方法来处理数据。在这里主要介绍Access、SQL Server、Oracle和MySQL 4个主流的数据库。

1.4.1 Access数据库

Microsoft Access是当前流行的关系型数据库管理系统之一,其核心是Microsoft Jet数据库引擎。通常情况下,安装Microsoft Office时选择“默认安装”,Access数据库即会被安装到计算机上。

Microsoft Access是一个非常容易掌握的数据库管理系统。利用它可以创建、修改、维护数据库和数据库中的数据,并且可以利用向导来完成对数据库的一系列操作。Access能够满足小型企业客户/服务器解决方案的要求,是一种功能较完备的系统。Access几乎包含数据库领域的所有技术和内容,对于初学者学习数据库知识非常有帮助。

1.4.2 SQL Server数据库

SQL Server是微软公司开发的一个大型关系数据库系统,它为用户提供了一个安全、可靠、易管理和高端的客户/服务器数据库平台。

SQL Server数据库的主要特点是操作简单,以Client/Server为设计结构,支持多个不同的开发平台,支持企业级的应用程序,支持XML,支持数据仓库,支持虚拟根,支持用户自定义函数和全文搜索,以及具有文档管理功能、索引视图、存储过程、触发器、事务和分布式查询功能等。

SQL Server数据库经过微软的大力发展和创新,经历了多个版本的升级,目前最新版本为SQL Server 2017。

1.4.3 Oracle数据库

Oracle是美国Oracle公司(甲骨文)提供的以分布式数据库为核心的一组软件产品,也是目前世界上使用最为广泛的关系型数据库之一。它具有完整的数据管理功能,同时兼顾了数据的大量性、数据保存的持久性、数据的共享性和数据的可靠性。

Oracle在并行处理、实时性、数据处理速度方面都有较好的性能。一般情况下,大型企业会选择Oracle作为后台数据库来处理海量数据。

1.4.4 MySQL数据库

MySQL是目前最为流行的开放源代码的数据库管理系统,是完全网络化的、跨平台的关系型数据库系统。MySQL由瑞典的MySQL AB公司开发,由David Axmark和Michael "Monty" Widenius于1995年建立,目前属于Oracle公司。它的象征符号是一只名为Sakila的海豚,代表着MySQL数据库在速度、能力、精确性方面的优秀品质。

MySQL数据库可以称得上是目前运行速度最快的SQL数据库。除了具有许多其他数据库所不具备的功能和选择之外,MySQL数据库还是一种完全免费的产品,用户可以直接从网上下载使用,不必支付任何费用。

1.5 小结

本章介绍了数据库的基本概念、数据库系统的组成、数据库三级模式结构及映射、关系数据库的规范化及设计原则等知识。通过本章的学习,读者可以对当下主流的数据库有一个系统的了解,为进一步的学习奠定基础。

1.6 实践与练习

1.数据库技术的发展经历了哪3个阶段?(答案位置:资源包\TM\sl\1\1)

2.数据模型通常是由哪3部分组成的?(答案位置:资源包\TM\sl\1\2)

3.下面哪些是关系数据库?(答案位置:资源包\TM\sl\1\3)

(1)Access

(2)SQL Server

(3)Oracle

(4)XML