数据库原理及应用:SQL Server 2016
上QQ阅读APP看书,第一时间看更新

1.1 数据库的相关概念及特点

案例1-1】数据库技术已被广泛应用到各个行业和业务领域。美国未来学家托尔勒曾指出:“谁掌握了信息,谁控制了网络,谁就将拥有整个世界。”客观世界,信息无处不在、数据无处不用,数据库技术是各种业务数据处理与应用系统的核心。数据库的建设规模、数据量和使用频率已成为衡量一个国家信息化程度的重要标志,数据资源和数据库高新技术已经成为世界各国极为重要的优先发展战略。

1.1.1 数据和数据处理的概念

1.数据的概念

数据(Data)是对客观事物、事件的记录与描述,是可由人工或自动化手段加以处理的数字、文字、图形、图像和声音等符号的集合。在计算机科学中,数据是指所有能输入到计算机并被计算机程序处理的符号的介质的总称。数据是信息的表现形式和载体,是利用信息技术进行采集、处理、存储和传输的基本对象。通常,数据可分为两大类:数值型数据和非数值型数据。数值型数据一般为数字,如整数、实数和浮点数等;非数值型数据比较复杂,可以是文字、符号、表格、图形、图像、声音和视频等形式。从具体的应用上可细分为数值型、字符型、时间型、货币型或其他类型,具体参见“2.5.2数据类型”一节介绍。

数据与其语义密不可分。数据的语义是指数据的含义,例如,85是一个数据,可以描述一个学生某门课的成绩,也可以指某专业的学生人数,还可以指某人的体重等。因此,数据与其语义是不可分的,离开了具体的语义环境,数据毫无意义。在实际业务处理过程中,各种信息只有经过数据载体的描述和表示,才能进行采集、传输、存储、管理与处理,并产生新的更有价值的数据(提供信息)。

数据与信息的区别和联系。数据是信息的一种符号化表示,是信息的载体和具体表示形式,是物理性的。信息来源于数据,是经过加工处理后的有意义的结构化的数据,反映数据的内涵,是观念性的。信息以数据的形式存储、传输和处理,同一信息可以表示为不同形式的数据,如同一条信息内容可用文字、图像或语音数据表示,而信息不随着数据的表现形式而改变。

数据和信息是不可分割的,数据是信息的表达,信息是数据的内涵。数据本身没有意义,数据只有对实体行为产生影响时才成为信息。

2.数据处理与数据管理

数据处理(Data Processing)是对数据进行采集、存储、检索、加工、变换和传输的过程。对多种业务数据进行的查询、分类、修改、变换、运算、统计和汇总等都属于数据处理。其目的是根据实际需要,从原有大量、庞杂、难理解的数据中抽取出有价值的新数据(信息),作为决策的依据,其实质是信息处理。可以借助数据库等技术处理和存取各种业务数据,快捷方便地利用各种数据(信息)资源。

数据处理方式有多种,主要由于数据处理设备的结构方式、工作方式和数据的时间空间分布方式的不同而不同。不同的处理方式要求不同的硬件和软件支持。每种处理方式都有各自的特点,可以根据应用问题的实际环境选择合适的处理方式。

数据处理方式主要有4种:①以处理设备的结构方式区分,有联机处理方式和脱机处理方式;②以数据处理时间的分配方式区分,有批处理方式、分时处理方式和实时处理方式;③以数据处理空间的分布方式区分,有集中式处理方式和分布处理方式;④以中央处理器的工作方式区分,有单道作业处理方式、多道作业处理方式和交互式处理方式。

数据管理(Data Management)是利用计算机硬件和软件技术对数据进行有效的收集、存储、处理和应用的过程。其目的是有效地发挥数据的作用。有效数据管理的关键是合理的数据组织。如在数据处理过程中,数据采集、存储、检索、分类和传输等基本环节统称为数据管理。

案例1-2】进销存管理系统主要用于企业产品数据管理。其中对产品基本信息的添加、修改、删除和查询等操作都属于数据管理范畴,而对库存产品的盘点、月汇总和年汇总等操作则属于数据处理范畴。

1.1.2 数据库、数据库管理系统与数据库系统的概念

1.数据库

数据库(Data Base,DB)是长期存储的、有组织的、可共享的相关数据的集合,是存储在计算机设备(包括PC、服务器、平板或手机等)上的有组织、可共享、持久性的数据空间。其数据按照一定的数据模型进行组织、描述和存储,具有较小的冗余度、较高的独立性和扩展性,可在用户之间共享。通常,数据库数据具有结构化、永久性、独立性、共享性、低冗余度、易扩展和海量性等特点。

2.数据库管理系统

数据库管理系统(Database Management System,DBMS)是指建立、运用、管理和维护数据库,并对数据进行统一管理和控制的系统软件。主要用于用户定义(建立)及操作、管理和控制数据库和数据,并保证数据的安全性、完整性、多用户对数据进行并发使用及出现意外时的数据库恢复等。

DBMS是整个数据库系统的核心,对数据库中的各种业务数据进行统一管理、控制和共享。DBMS的主要功能和结构将在1.5节中进行介绍,其重要地位和作用如图1-1所示。支持关系型数据模型的DBMS称为关系型数据库管理系统(Relational Database Management System,RDBMS)。常用的大型DBMS有SQL Server、Oracle、MySQL、Sybase、DB2和Informix等,小型的DBMS有VFP(Visual FoxPro)和Office Access等。

3.数据库系统

数据库系统是指在计算机系统中引入数据库后的系统,一般由数据库、数据管理系统(及其开发工具)、应用系统和数据管理员构成,如图1-2所示。数据库的创建、使用和维护等工作不能只靠一个DBMS,需要有专门的人员来管理和维护。负责此类事件的人员称为数据库管理员(DataBase Administrator,DBA)

图1-1 DBMS的重要地位和作用

图1-2 数据库系统的构成

为了避免不必要的歧义,通常将数据库系统简称为数据库

1.1.3 数据库技术的发展、特点及应用

1.数据库技术的发展和趋势

数据库技术的产生是为了满足人们对数据处理和数据管理的需求,也就是实现对数据的采集、分类、组织、编码、存储、维护和应用的实际需求。在应用需求的推动下,在计算机硬件、软件及信息技术不断发展的基础上,数据管理技术的发展主要经历了人工管理、文件系统、数据管理系统和高级数据库管理4个阶段。下面分别对这4个阶段进行介绍。

(1)人工数据管理阶段

20世纪50年代中期以前,计算机的主要作用是科学计算。当时,计算机的主要元器件以电子管为主,计算机的体积庞大,世界上第一台计算机ENIAC长30.48m,宽6m,占地面积约170m2,重达30t。没有直接数据存取设备,如磁盘,外存只有纸带、卡片和磁带等。软件状况也较为落后,没有操作系统,无专门的数据管理软件,数据处理的主要方式是批处理。

人工数据管理阶段的主要特点如下。

1)数据不保存。受计算机软硬件和主要用于科学计算的应用实际,一般不需要将数据长期保存,在需要计算时输入数据,用完后数据就撤走。

2)数据面向应用。数据与应用程序相对应,如果多个程序使用相同数据,则需要在各个程序中分别存储同一数据,数据无法共享,存在数据冗余和不一致等问题。

3)数据无独立性。数据的逻辑结构或物理结构发生改变后,相应地,使用该数据的应用程序也需要进行相应的修改,增加了程序员的负担。

4)无专门数据管理软件。数据由程序员设计和组织,程序和数据之间的关系是一一对应的,数据无法相互利用和参照,导致数据的大量冗余和不一致问题的产生。

(2)文件系统阶段

在20世纪50年代中期到60年代中期,计算机开始用于数据管理。硬件方面出现了磁带和磁鼓等直接存取的存储设备;软件方面在操作系统中出现了专门的数据管理软件,即文件系统。

文件系统管理数据的特点如下。

1)数据长久保存。以大容量磁盘作为存储设备,各种数据以文件形式存于计算机中。

2)数据共享能力差。由于每一个文件都是独立的,当需要使用相同的数据时,必须建立各自的数据文件,数据无法在各个程序之间共享,因此造成大量数据冗余。

3)数据不能独立。软件与数据紧密耦合,当数据结构发生变化时,需要修改相应的应用程序;反之,若应用程序发生了变化,也需要改变数据结构。

4)只有简单数据管理功能。在程序和数据之间由文件系统提供存取方法进行转换,程序和数据之间有一定的独立性,在一定程度上减少了程序员的工作量。此阶段的应用程序和数据文件之间的关系如图1-3所示。

图1-3 应用程序和数据文件间的关系

(3)数据库系统阶段

20世纪60年代后期,随着信息技术的蓬勃发展,各种应用系统产生的数据量急剧增长,同时多种语言和多种应用相互共享数据的要求日趋强烈,硬件价格下降,软件价格上涨,联机实时处理要求越来越多。在这种背景下,以文件系统作为数据管理手段已无法满足应用需求,为了解决多用户、多应用共享数据的问题,需要有专业的数据管理软件来实现对数据的全方位管理(共享性、独立性、冗余性和不一致性),数据库技术应运而生,出现了专门的数据管理软件——数据库管理系统。

数据库系统的主要特点如下。

1)数据整体结构化。数据库中的数据不再只针对某一应用,而是面向全组织;数据不仅是内部结构化,而且是整体结构化,数据之间具有联系。

2)数据高共享、低冗余。数据库系统从整体角度描述数据,数据面向整个系统,不再面向单一应用,数据可被多用户、多应用所共享。数据库与网络技术结合扩展应用,数据共享程度极大地减少了冗余度,节约了存储空间,且避免了数据之间的不相容和不一致性。

3)数据独立性高。应用程序与数据库中的数据相互独立,当数据的物理结构和逻辑结构更新变化时,不影响应用程序使用数据,反之,修改应用程序时也不影响数据。

4)数据统一由DBMS管理和控制。由DBMS完成对数据的统一管理和控制,实现了数据的安全性和完整性。数据库系统自动检查访问用户的身份及其操作合法性、数据的一致性及相容性,保证数据符合完整性约束条件,以并发控制手段有效控制多用户同时对数据进行操作,保证共享及并发操作。其恢复功能可保障出现意外时自动恢复。

(4)高级数据库发展阶段

从20世纪80年代以后,传统数据库技术日趋成熟,在各个领域的应用也逐步深入。在网络技术和各行业的新需求的不断推动下,数据库技术的发展呈现出前所未有的新气象,分布式数据库、数据仓库、数据集市和商业智能等新技术纷纷涌现。下面对其中的一部分进行简要介绍。

1)分布式数据库系统。随着地域上分散而管理上集中的企业的不断增加,对数据的需求不再局限于本地,而要求能存取异地数据。此外,网络技术的飞速发展为实现这一需求提供了物质基础,于是产生了分布式数据库系统(Distributed Database Systems),具有以下几个主要特点

① 物理分布性。数据不是存储在一个场地上,而是存储在网络的多个场地上。

② 逻辑整体性。数据在物理上分布于各场地,但逻辑上是一个整体,它们被所有用户(全局用户和局部用户)共享,并由一个分布式数据库管理系统(DDBMS)统一管理。

③ 站点自治性。各站点上的数据由本地的DBMS管理,具有自治处理能力,实现本地场地的应用(局部应用)。

④ 站点协作性。各站点虽然具有高度的自治性,但是又相互协作,构成一个整体。

⑤ 数据分布透明性。

⑥ 存在适当的数据冗余度。

⑦ 事务管理的分布性。分布式数据库系统兼顾集中管理和分布处理两项任务,因而具有良好的性能,其具体结构如图1-4所示。

2)面向对象数据库系统。随着数据库技术的不断发展,其应用领域从传统的商务数据处理扩展到许多新的应用领域,如计算机辅助设计(CAD)、计算机辅助软件工程(CASE)和图像处理等,关系数据库管理系统很难适应上述领域中复杂对象和对象行为的模拟。此外,传统的商务数据处理也有了新的需求,如存储和检索照片、手写证据等。关系数据库在处理上述数据时显得力不从心,需要更新的技术和理论来解决上述问题。新的应用需求推动了数据库新技术的研究,将面向对象技术与数据库技术相结合,便产生了面向对象数据库系统,详细的内容将在1.2节中进行介绍。

图1-4 分布式数据库

面向对象数据库系统的主要特征如下。

① 面向对象数据库系统必须支持面向对象的数据模型,具有面向对象的特征,包括支持复杂对象、具有对象标识、具有封装性,以及支持继承性等。

② 面向对象数据库系统必须具有数据库管理系统的基本功能。

(5)数据库的发展趋势

根据数据库应用及多家分析机构的评估,数据库技术发展将以应用为导向,面向业务服务,并与计算机网络和人工智能等技术结合,为新型应用提供多种支持。

1)数据集成与数据仓库。数据仓库(Data Warehouse)是一个面向主题、集成、相对稳定、反映历史变化的数据集合,其建设目的是为了支持企业管理决策。其特征有以下4点:面向主题、集成性、稳定性和反映历史变化。充分利用云计算和云存储技术的优势,针对不同的数据功能和使用价值进行数据集成建设,面向不同的数据应用主题建设数据仓库,可以充分利用企业的现有数据,为决策提供数据支撑。新一代数据库的出现,使数据集成和数据仓库的实施更简单,连续处理、实时处理和小范围数据处理成为数据集成和分析人员面临的新课题。鉴于数据应用逐步过渡到数据服务,开始注重处理关系型与非关系型数据的融合、数据分类,以及国际化多语言数据。

2)主数据管理和商业智能。主数据是指在整个企业范围内各个系统间需要共享的数据,如客户信息和供应商信息等。当前,企业内部对上述主数据在定义和存取等方面存在大量数据冗余和不一致问题,严重阻碍了主数据的使用,如何发现和有效使用主数据来提高企业核心竞争力,是企业长期需要面对的一个问题。因此,主数据管理将会成为一个新的热点。

商业智能(Business Intelligence)是利用数据仓库及数据挖掘技术对客户数据进行系统的储存和管理,并通过各种数据统计分析工具对客户数据进行分析,提供各种分析报告,为企业提供决策信息,是企业利用现代信息技术收集、管理和分析结构化和非结构化的商务数据和信息,改善决策水平,提升绩效,增强综合竞争力的智慧和能力,是融合了先进信息技术与创新管理理念的结合体,集成了企业内外的数据,进行加工并从中提取能够创造商业价值的信息,面向企业战略并服务于管理层。

3)基于网络的自动化管理。网络数据库应用系统应用广泛,如网购、网银等系统。从Enterprise-class到World-class的转变,使数据库管理更加自动化,并将提供更多基于Internet环境的管理工具,完成数据库管理网络化。数据管理的应用程序编程接口(Application Programming Interface,API)更开放,基于浏览器端技术的Intranet/Internet管理套件,便于分布在各地的数据管理员和开发人员通过浏览器管理另一端的数据库。

4)DBMS的自适应管理。随着RDBMS复杂性增强及新功能的增加,数据库的性能会不断下降,需要DBA对数据库系统进行整体分析,根据系统的磁盘IO、线程池及并发等状态对数据库进行性能调优,实现对数据库系统性能优化的目的。既然DBA可以根据数据库参数对系统进行调优,说明DBMS有大量“调节按钮”,允许专家从可操作的系统上获得最佳性能,因此,数据库系统自调优和自管理工具的需求增加,对数据库自调优和自管理的研究也逐渐成为热点。

5)移动数据管理。随着移动互联网的发展,智能手机、掌上型电脑等移动设备的出现,使得人们随时随地访问信息的愿望得以实现。随之而来的就是在移动计算环境中的数据管理问题,这个问题已成为目前分布式数据库研究的一个新方向,即移动数据库技术。

6)云数据库。云数据库是在软件即服务(Software-as-a-service,SaaS)成为应用趋势的大背景下发展起来的云计算技术,它极大地增强了数据库的存储能力,消除了人员、硬件和软件的重复配置,具有高可扩展性和高可用性,是数据库技术的未来发展方向。云数据库的定义不尽相同,此处给出一种:云数据库是部署和虚拟化在云计算环境中的数据库。云数据的数据模型有两种:键/值模型和关系模型。

2.数据库技术的特点

(1)数据高度集成

数据处理应用系统中的数据源于企事业的多项实际业务,且数据之间相互关联。如在一个商品供销信息系统中,进货数据来源于供货、销售数据来源于售货等。对这些数据进行集中处理,保持相关数据之间的正确关联,才能完成所需的综合数据处理。利用数据库技术和DBMS提供的数据处理功能,可实现多种数据的高度集成。

(2)数据广泛共享

在数据库应用系统中,通过网络可将集中管理的多种数据共享。如供货管理需要参考商品销售管理系统中近期的销售数据,确定进货种类与数量,确定销售单价又需要参照最近的进货单价等,利用数据库技术通过计算机网络可实现数据广泛共享。

(3)数据独立性强、冗余低

数据独立性是指数据库中存储的数据与应用处理程序之间相互独立。传统的数据处理应用系统中,应用程序携带相关数据包,致使修改维护程序与相关数据互相关联影响,而且业务数据在多种不同数据文件中分别存储,出现数据大量冗余且无法统一更新。数据库技术可对所有数据集中管理,并利用有效的数据共享功能,不再需要各项业务单独保存各自的数据文件,极大地减少了数据冗余。

(4)实施统一的数据标准

数据标准是指数据库中数据项的名称、数据类型、数据格式、有效数据的判定准则及要求等数据项特征值的取值规则。在实际应用中,以统一的数据标准进行实施。

(5)数据的完整性和安全性高

数据完整性(Data Integrity)是指数据的精确性(Accuracy)和可靠性(Reliability)。用于防止数据库中存在不符合语义规定的数据,防止因错误数据的输入/输出造成无效操作或错误。DBMS具有用户身份认证和数据完整性检测机制,可以保障数据库应用系统及数据的安全性、机密性和完整性。

(6)保证数据一致性

数据一致性(Data Consistency)通常是指关联数据之间的逻辑关系正确性和同一性。存储在数据库中不同数据集合(表)的相同数据项必须具有相同的值。一个数据库由多种数据文件组成,数据文件之间通过公共数据项相联系,当对一个数据文件中的数据项更新时,相关联文件中的对应数据项也必须自动更新,才能始终保持数据的一致性和正确性。通过DBMS可以自动实现对数据库中的数据进行操作,保证增删改等操作的一致性。

(7)应用程序开发维护效率高

在应用程序开发时,数据的独立性可不必考虑软件和数据关联问题,以及所处理的数据组织等问题,减少了应用程序的开发与维护的工作量。只在应用系统开发初期,需要规划设计数据库中的数据集,规范数据库中相关数据间的关联。只有满足规范化设计要求的数据库,才能够真正实现各类业务数据不同的应用需求。

3.数据库技术的应用

数据库技术研究和处理的基本对象是数据,涉及的主要内容包括4方面:一是通过DBMS对系统及业务数据相关的事务进行统一管理、控制和维护;二是按照指定的结构(数据模型)建立和组织相应的数据库及其处理对象(数据表、视图及索引等);三是业务数据处理操作,包括数据添加、修改、删除、查询、统计、报表和打印等;四是利用DBMS设计出能实现对数据库中的业务数据进行分析和处理的应用系统,并进行综合应用。

数据库技术主要用于根据用户需求自动处理、共享、管理和控制大量业务数据。随着IT技术的快速发展,数据库技术得到了广泛深入的应用。进入21世纪现代信息化社会,由于信息(数据)无处不在且无处不用,所以,数据库技术的应用更迅速、更广泛、更深入,遍布各个领域、行业、业务部门和各个层面。网络数据库系统及数据库应用软件已成为信息化建设和应用中的重要支撑性产业,得到极为广泛的应用,鉴于篇幅所限,在此仅介绍一些典型的应用案例。

讨论思考:

1)DBMS的工作模式有哪些?

2)概述DBMS的主要功能。

3)DBMS模块的组成有哪几方面?