SQL Server 2008数据库应用技术(第二版)
上QQ阅读APP看书,第一时间看更新

1.2 数据库系统概述

1.2.1 数据库的概念

数据库、数据库管理系统和数据库系统是数据库技术中常用的基本术语,下面简单介绍。

1.数据库

数据库(DataBase,DB)是指长期存储在计算机内,按一定数据模型组织存储、可共享的数据集合。它可以供各种用户共享,具有最小冗余度和较高的数据独立性。

2.数据库管理系统

数据库管理系统(DataBase Management System,DBMS)是用户和操作系统之间的数据管理软件。它使用户方便地定义数据和操纵数据,并能够保证数据的安全性、完整性、多用户对数据的并发使用及发生故障后的数据恢复。其功能如下:

①数据定义功能。数据库管理系统具有专门的数据定义语言(Data Description Language,DDL),用户可以方便地创建、修改、删除数据库及数据库对象。

②数据操纵功能。数据库管理系统提供数据操纵语言(Data Manipulation Language,DML),可以实现对数据库中数据的检索、插入、删除和修改等操作。

③数据库运行管理功能。数据库运行过程中,由数据库管理系统统一控制管理,以保证数据的安全性、完整性。当多个用户同时访问相同数据时,由数据库管理系统进行并发控制,以保证每个用户的运行结果都是正确的。

④数据库的维护功能。它包括数据库初始数据的输入、转换功能,数据库的转储、恢复功能,数据库的重组织功能和性能监测、分析功能,等等。这些功能通常由一些实用程序完成。

总之,数据库管理系统是用户和数据库之间的交互界面,在各种计算机软件中,数据库管理系统软件占有极其重要的位置。用户只需通过它就可以实现对数据库的各种操作与管理。数据库管理系统在计算机层次结构中的地位如图1-5所示。

图1-5 DBMS在计算机层次结构中的地位

目前,广泛应用的大型网络数据库管理系统有SQL Server、DB2、Oracle、Sybase等,常用的桌面数据库管理系统有Visual FoxPro、Access等。

3.数据库系统

数据库系统(DataBase System,DBS)是指在计算机系统中引入数据库后的系统,一般由数据库、操作系统、数据库管理系统、应用开发工具、应用系统、数据库管理员、应用程序员和用户构成。数据库系统可用图1-6表示。

图1-6 数据库系统

其中,数据库管理员、应用程序员和用户主要是指存储、维护和检索数据的各类使用者,主要有三类:

①最终用户(End User,EU)。最终用户是应用程序的使用者,通过应用程序与数据库进行交互。

②应用程序员(Application Programmer,AP)。应用程序员是在开发周期内进行数据库结构设计、完成应用程序开发的人员,通常多于1人,并保证程序在运行周期中功能和性能正确无误。

③数据库管理员(Database Administrator,DBA)。数据库管理员对数据库进行日常的管理,负责全面管理和控制数据库系统,是数据库系统中最重要的人员,其职责包括:设计与定义数据库系统,帮助最终用户使用数据库系统;监督与控制数据库系统的使用和运行;改进和重组数据库系统,优化数据库系统的性能;备份与恢复数据库;当用户的应用需求增加或改变时,对数据库进行较大的改造,即重构数据库。

1.2.2 数据库系统的模式结构

在数据模型中有“型”(Type)和“值”(Value)的概念。型是对某一类数据的结构和属性的说明,值是型的一个具体赋值。例如,学生人事记录定义为(学号,姓名,性别,系别,年龄,籍贯)这样的记录型,而(900201,李明,男,计算机,22,江苏)则是该记录型的一个记录值。

模式(Schema)是数据库中全体数据的逻辑结构和特征的描述,它仅仅涉及型的描述,不涉及具体的值。模式的一个具体值称为模式的一个实例(Instance)。同一个模式可以有很多实例。模式是相对稳定的,而实例是相对变动的。模式反映的是数据的结构及其关系,而实例反映的是数据库某一时刻的状态。

虽然实际的数据库系统软件产品种类很多,它们支持不同的数据模型,使用不同的数据库语言,建立在不同的操作系统之上,数据存储结构也各有不同,但从数据库管理系统角度看,它们在体系结构上通常都具有相同的特征,即采用三级模式结构(微机上的个别小型数据库系统除外),并提供二级映像功能。

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

数据库系统的三级模式结构是指数据库系统由外模式、模式和内模式三级构成,如图1-7所示。

图1-7 数据库系统的三级模式

(1)模式

模式又称逻辑模式,是数据库中全体数据的逻辑结构和特征的描述,是所有用户的公共数据视图。它是数据库系统模式结构的中间层,不涉及数据的物理存储细节和硬件环境,与具体的应用程序、所使用的应用开发工具及高级程序设计语言无关。

实际上模式是数据库在逻辑级上的视图。一个数据库只有一个模式。数据库模式以某一种数据模型为基础,统一综合地考虑了所有用户的需求,并将这些需求有机地结合成一个逻辑整体。定义模式时不仅要定义数据的逻辑结构(例如,数据记录由哪些数据项构成,数据项的名字、类型、取值范围等),而且要定义与数据有关的安全性、完整性要求,定义这些数据之间的联系。

(2)外模式

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

一个数据库可以有多个外模式。由于它是各个用户的数据视图,如果不同的用户在应用需求、看待数据的方式、对数据保密的要求等方面存在差异,则他们的外模式描述就是不同的。即使对模式中的同一数据,在外模式中的结构、类型、长度、保密级别等都可以不同。另一方面,同一外模式也可以为某一用户的多个应用系统所使用,但一个应用程序只能使用一个外模式。

外模式是保证数据库安全性的一个有力措施。每个用户只能看见和访问所对应的外模式中的数据,数据库中的其余数据对他们来说是不可见的。

(3)内模式

内模式又称存储模式,是数据物理结构和存储结构的描述,是数据在数据库内部的表示方式。例如,记录的存储方式是顺序存储、按照B树结构存储还是按Hash方法存储,索引按照什么方式组织;数据是否压缩存储,是否加密;数据的存储记录结构有何规定等。一个数据库只有一个内模式。

2.数据库系统的二级映像

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

模式描述的是数据的全局逻辑结构,外模式描述的是数据的局部逻辑结构。对应于同一个模式可以有任意多个外模式。对于每一个外模式,数据库系统都有一个外模式/模式映像,它定义了该外模式与模式之间的对应关系。这些映像定义通常包含在各自外模式的描述中。当模式改变时(例如,增加新的数据类型、新的数据项、新的关系等),由数据库管理员对各个外模式/模式的映像作相应改变,可以使外模式保持不变,从而使应用程序不必修改,保证了数据的逻辑独立性。

数据库中只有一个模式,也只有一个内模式,所以模式/内模式的映像是唯一的,它定义了数据全局逻辑结构与存储结构之间的对应关系。例如,说明逻辑记录和字段在内部是如何表示的。该映像定义通常包含在模式描述中。当数据库的存储结构改变了(例如,采用了更先进的存储结构),由数据库管理员对模式/内模式映像作相应改变,可以使模式保持不变,从而保证了数据的物理独立性。

1.2.3 数据库系统的特点

数据库系统的主要特点包括数据结构化、数据共享和数据独立性,以及统一的数据控制功能。

1.数据结构化

数据库中的数据是以一定的逻辑结构存储的,这种结构是由数据库管理系统所支持的数据模型决定的。数据库系统不仅可以表示事物内部各数据项之间的联系,而且可以表示事物与事物之间的联系。只有按照一定结构组织和存储的数据,才便于对它们实现有效的管理。

2.数据共享

数据共享是数据库系统最重要的特点。数据库中的数据能够被多个用户、多个应用程序所共享。此外,由于数据库中的数据被集中管理和统一组织,因而避免了不必要的数据冗余。

3.数据独立性

在数据库系统中,数据与程序基本上是相互独立的,其相互依赖的程度已大大减小。对数据结构的修改将不会对程序产生大的影响。反过来,对程序的修改也不会对数据产生大的影响。

4.统一的数据控制

数据库系统必须提供必要的数据安全保护措施,主要包括:

①安全性控制。数据库系统提供了安全措施,使得只有合法用户才能进行其权限范围内的操作,防止非法操作造成数据的破坏或泄密。

②完整性控制。数据的完整性包括数据的正确性、有效性和相容性。数据库系统可以提供必要的手段来保证数据库中的数据在处理过程中始终符合其事先规定的完整性要求。

③并发操作控制。对数据的共享将不可避免地出现对数据的并发操作,也就是说,多个用户或者多个应用程序同时使用同一个数据库、同一个数据库表或者同一条记录。如果不加以控制将导致相互干扰而出现错误的结果,使得数据的完整性遭到破坏,所以必须对并发操作进行控制协调。一般采用数据锁定的方法来处理并发操作,当某个用户访问并修改某个数据时,应先将该数据锁定,当这个用户完成对此数据的写操作之后消除锁定,然后才允许其他的用户访问此数据。