SQL Server 2012数据库技术及应用(微课版·第5版)
上QQ阅读APP看书,第一时间看更新

1.2 数据库系统概述

数据库系统(Database System,DBS)是指在计算机系统中引入数据库、数据库管理系统、数据库开发工具、数据库应用系统和用户组成的存储、管理、处理和维护数据的系统,如图1-2所示。其中,数据库与数据库管理系统是数据库系统的基础和核心。数据库系统的主要组成部分简述如下。

1.2.1 数据库

数据库(Database,DB)是指长期保存在计算机的存储设备上,按照某种数据模型组织起来的、可以被各种用户或应用程序共享的数据集合。

为了使数据库具有数据独立性(不因数据库逻辑结构和存储结构的改变而需要修改应用程序),以及降低系统维护的代价和提高系统的可靠性,美国国家标准学会(American National Standards Institute,ANSI)的数据库管理系统研究小组于1978年提出了标准化的建议,即将数据库建立为三级模式结构,如图1-3所示。

图1-3 数据库的三级模式结构

1.数据库的三级模式结构

(1)内模式。内模式也被称为物理结构、存储模式或物理模式,是对数据的物理结构和存储方式的描述。它是数据库中全体数据的内部表示或底层描述,是三级模式结构的最底层。内模式对应着实际存储在外存储介质上的数据库(DATABASE),通常以文件形式存在。内模式反映数据库的存储观。

DBMS提供描述内模式的定义语言,如CREATE DATABASE。

(2)模式。模式也被称为整体逻辑结构、逻辑模式或全局模式,是对数据的全体数据逻辑结构和特征的描述。它是现实世界某个应用环境(企事业单位)中的所有信息内容集合的表示,是三级模式结构的中间层,是由数据库设计者综合所有用户的数据、按照统一的观点构造的全局逻辑结构,是所有用户的公共数据视图。它通常通过建立逻辑数据模型和表(TABLE)的方法来抽象、表示和处理现实世界中的数据和信息。模式反映数据库的整体观。

DBMS提供描述模式的定义语言,如CREATE TABLE。

(3)外模式。外模式也被称为局部逻辑结构、用户模式或子模式,是对数据库用户看到并允许使用的局部数据的逻辑结构和特征的描述,是三级结构的最外层。外模式是从模式导出的一个子集,包含模式中允许特定用户使用的那部分数据,是数据库用户的数据视图(VIEW),是保护数据库安全的一个有力结构。外模式反映数据库的用户观。

DBMS提供描述外模式的定义语言,如CREATE VIEW。

2.数据库的两层存储映像

数据库的三级模式是对数据的3个抽象层次,它把数据的具体组织留给DBMS管理,使用户能面向数据的逻辑结构抽象地处理数据,而不必关心数据在计算机中的具体表示方式与存储方式。为了能够在内部实现这3个抽象层次的联系和转换,DBMS在这三级模式之间提供了两层存储映像。

(1)外模式/模式映像。当数据库的整体逻辑结构发生变化时,DBMS通过调整外模式和模式之间的映像,使得外模式中的局部数据及其结构(定义)不变,因此不用修改应用程序,从而确保了数据的逻辑独立性。

(2)模式/内模式映像。当数据库的存储结构发生变化时,DBMS通过调整模式和内模式之间的映像,使得整体模式不变,当然外模式及应用程序也不用改变,从而实现了数据的物理独立性。

1.2.2 数据库管理系统

数据库管理系统(Database Management System,DBMS)是一种操作和管理数据库的大型软件,用于建立、使用和维护数据库,以及对数据库进行统一的管理和控制,以保证数据库的完整性和安全性。常见的DBMS有用于大中型企业的Oracle、SQL Server和DB2等,有用于中小型网站的MySQL,还有Microsoft Office中的Access。各种DBMS的重要技术及功能均广泛遵循数据库结构化查询语言(Structured Query Language,SQL)标准。因此,读者不必纠结学习哪一种DBMS更好。DBMS的主要功能如下。

1.数据定义功能

DBMS提供数据定义语言(Data Definition Language,DDL),以实现对数据库三级模式结构的描述,包括定义数据的完整性约束等。

2.数据操作功能

DBMS提供数据操作语言(Data Manipulation Language,DML),以实现对数据的操作。基本的数据操作有两类:修改(插入、删除数据行以及更新数据)与检索(数据查询)。

3.数据控制功能

DBMS提供数据控制语言(Data Control Language,DCL)以及DDL,以实现对数据库的运行控制。其对数据库的保护主要通过以下5个方面实现。

• 数据完整性控制。保证数据库中数据及语义的正确性和有效性,防止任何可造成数据错误的操作。

• 数据库安全性控制。防止未经授权的用户存取数据库中的数据,以避免数据的泄露、更改或破坏。

• 数据库恢复。在数据库被破坏或数据不正确时,系统有能力把数据库恢复到正确的状态。

• 数据库维护。包括数据库的数据载入、转换、转储以及数据库的改组和性能监控等功能。

• 数据库并发控制。在多个用户同时对同一个数据进行操作时,系统应能加以控制,防止数据库中的数据被破坏。

4.数据字典

DBMS会自动建立和维护数据字典(Data Dictionary,DD),用于存放有关数据的数据(元数据),供DBMS和用户使用。数据库三级模式结构的定义均自动保存在数据字典中,如表、视图和索引的定义以及用户的权限等。此外,数据字典还用于自动存放来自系统的状态和数据库的统计信息,如数据库和磁盘的映射关系以及数据使用频率的统计信息等。

本书将以SQL Server 2012为平台介绍数据库开发与维护的基本方法与技术,读者可参考第4章的内容下载并安装SQL Server 2012,熟悉其组件与操作界面,使用其管理平台(SQL Server Management Studio,SSMS)进行简单操作。

随着新型数据模型及数据管理实现技术的推进,可以预期各种DBMS产品的性能还将不断更新与完善,应用领域也将得到进一步拓宽。

1.2.3 数据库开发工具

数据库开发工具(Database Development Tool,DDT)主要用于数据库应用系统的开发,一般分为数据库设计和应用程序设计两个方面。

数据库设计主要采用规范设计法与辅助的数据库设计工具(Database Design Tool)进行,常用的工具软件有PowerDesigner、ERWin、DbSchema和Office Visio(详见第2章)等。

对于应用程序设计,DBMS提供SQL,可以使用交互命令或者服务器编程方式实现对数据库的应用,还可以将SQL语句直接写入各种高级语言中实现对数据库的访问。其中,SQL Server 2012提供的T-SQL(符合SQL标准)是本书要介绍的重点内容。

对于程序设计语言,常用的有Java、Python、C#和VB.NET等。动态网页技术JSP、ASP.NET和PHP等与数据访问接口JDBC和ADO.NET等,这些内容超出本书的范畴,将不做介绍。

1.2.4 数据库应用系统

数据库应用系统(Database Application System,DBAS)是在DBMS和数据库开发工具支持下建立的计算机应用系统。数据库应用系统通常提供可视化操作界面,以供终端用户进行日常数据处理工作,如企事业单位的财务管理系统和人力资源管理系统、企业采购和销售管理系统、学校教务管理系统、图书馆图书管理系统、民航和铁路售票管理系统、企业资源计划ERP等。

1.2.5 用户

用户(User)是数据库系统中从事设计、开发、维护和应用的人员,分别为数据库管理员、数据库设计师、应用程序员和终端用户,这些用户均是读者将来可能面向的职业岗位。其中,数据库设计师和应用程序员是软件公司数据库开发岗位上的工作人员,数据库管理员和终端用户是企事业单位信息管理部门和各应用部门岗位上的工作人员。

1.数据库管理员

数据库管理员(Database Administrator,DBA)是对从事管理和维护数据库系统的相关工作人员的统称,主要负责整个数据库系统的建立、管理、运行、维护和监控等系统性工作,核心目标是保证数据库系统的稳定性、安全性、完整性和高性能。

数据库管理员必须具有计算机和数据库方面的专业知识,还要对整个计算机软、硬件系统的构成比较熟悉,特别是要精通所使用的DBMS(如Oracle和SQL Server等)。通常数据库管理员由经验丰富的计算机专业人员担任。

2.数据库设计师

数据库设计师(Database Designer,DBD)主要负责根据数据库在某一方面的应用,同相关业务人员一起进行系统需求分析,形成需求分析报告。然后根据数据库设计理论与方法,借助数据建模工具(如PowerDesigner等)建立概念数据模型和逻辑数据模型;搜集和整理数据,使用数据库管理系统的数据库定义语言或操作界面建立相应的数据库(见1.4节)。

3.应用程序员

应用程序员(Application Programmer)主要负责根据数据库设计和用户的功能需求,利用Java、C#或VB.NET等程序设计语言开发出功能完善、操作简便、满足用户需求的数据库应用系统,供终端用户使用。应用程序员既要掌握数据库方面的知识,又要精通至少一种程序设计语言,还要了解数据库应用系统相关部门的业务流程。

4.终端用户

终端用户(End User)是使用数据库应用系统最广泛的群体,是数据库为之服务的对象。如企事业单位的财务和人事管理员、企业销售员、仓库管理员、学校学籍管理员、银行出纳员、窗口售票员等都是相应数据库应用系统的终端用户。他们通过已经开发好的数据库应用系统,利用含有菜单、按钮和对话框等各种控件的可视化窗口,能够方便自如地使用数据库开展业务工作。终端用户通常为仅熟悉本身业务工作的非计算机专业的人员。