SQL Server 2014数据库设计与开发教程(微课版)
上QQ阅读APP看书,第一时间看更新

1.1 数据库系统简介

数据库系统(Data base System,DBS)通常由软件、数据库和数据库管理员组成。其软件主要包括操作系统、各种宿主语言、实用程序以及数据库管理系统。数据库由数据库管理系统统一管理,数据的插入、修改和检索均要通过数据库管理系统进行。数据库管理员负责创建、监控和维护整个数据库,使数据能被任何有权使用的人有效使用。数据库管理员一般是由业务水平较高、资历较深的人员担任。

数据库系统的个体含义是指一个具体的数据库管理系统软件和用它建立起来的数据库;它的学科含义是指由研究、开发、建立、维护和应用数据库系统涉及的理论、方法、技术构成的学科。在这一含义下,数据库系统是软件研究领域的一个重要分支,常称为数据库领域。

数据库系统是为适应数据处理的需要而发展起来的一种较为理想的数据处理的核心机构。计算机的高速处理能力和大容量存储器提供了实现数据管理自动化的条件。

1.1.1 数据库系统发展历程

微课:数据库系统发展历程

1.从数据库厂商和数据库产品角度

从数据库厂商和数据库产品角度来看,数据库系统的发展共经历了以下三个阶段。

(1)萌芽阶段

“Database”一词最早是在20世纪60年代,美国系统发展公司为美国海军基地研制数据中引用。

1963年,C·W·Bachman设计开发的IDS(Integrate Data Store)系统开始投入运行,它可以为多个COBOL程序共享数据库。

1968年,网状数据库系统TOTAL等开始出现。

1969年,IBM公司的McGee等人开发的层次式数据库系统的IMS系统发表,它可以让多个程序共享数据库。

1969年10月,CODASYL数据库研制者提出了网络模型数据库系统规范报告DBTG,使数据库系统开始走向规范化和标准化。正因为如此,许多专家认为数据库技术起源于20世纪60年代末。数据库技术的产生来源于社会的实际需要,而数据技术的实现必须有理论作为指导,系统的开发和应用又不断地促进数据库理论的发展和完善。

(2)发展阶段

20世纪80年代,大量商品化的关系数据库系统问世并被广泛推广使用,既有适应大型计算机系统的,也有适用于中、小型和微型计算机系统的。这一时期,分布式数据库系统也开始使用。

1970年,IBM公司San Jose研究所的E·F·Code发表了题为《大型共享数据库的数据关系模型》论文,开创了数据库的关系方法和关系规范化的理论研究。关系方法理论上的完美和结构上的简单,对数据库技术的发展起了至关重要的作用,成功地奠定了关系数据理论的基石。

1971年,美国数据系统语言协会在正式发表的DBTG报告中,提出了三级抽象模式,即对应用程序所需的那部分数据结构描述的外模式,对整个客体系统数据结构描述的概念模式,对数据存储结构描述的内模式,解决了数据独立性的问题。

1974年,IBM公司的San Jose研究所研制成功了关系数据库管理系统SystemR,并投放到软件市场。

1976年,美籍华人陈平山提出了数据库逻辑设计的实体联系方法。

1978年,新奥尔良发表了DBDWD报告,他把数据库系统的设计过程划分为4个阶段:需求分析、信息分析与定义、逻辑设计和物理设计。

1980年,J·D·Ulman所著的《数据库系统原理》一书正式出版。

1981年,E·F·Code获得了计算机科学的最高奖——ACM图林奖。

1984年,David Marer所著的《关系数据库理论》一书,标志着数据库在理论上的成熟。

(3)成熟阶段

从20世纪80年代到21世纪初,数据库得到了空前的发展,从厂商竞争格局来看,国际软件巨头占据市场的绝大多数份额。Oracle、IBM、Microsoft 和 Sybase 牢牢占据国内数据库软件市场前四位,拥有93.8%的市场份额。

在此时期,数据库理论和应用进入成熟发展时期,中国的数据库管理软件市场规模也一直在不断扩大,据易观国际发布的中国数据库软件市场数据监测的数据显示,从2007年开始到现在,每年都保持在15%左右的增长。以2008年为例,中国商业数据库市场整体规模达到了28.25亿元,比2007年度增长了30%。其中,Oracle占据了44%的市场份额,IBM占据了20%的份额、微软占据了18%的份额,Sybase占据了10%。

国产数据库的市场份额也在不断提升,国内各数据库厂商以“有自主知识产权”的产品为契机,满足国家和地方政府的信息整合平台需求,在2008年也已经占据了8%的市场份额。国产数据库占据份额最多的是达梦、南大和神通三家,其中,达梦数据库为国产数据库中市场份额最大的。到目前,达梦数据库已经在中国国家电网、南方电网、中铁建、中航信、中国神华等一大批央企的核心系统中获得了大规模的应用,并且已经走出国门,在东南亚、非洲、南美也有应用。

另外,像MySQL等开源数据库也具有大量的政府及中小企事业用户,近几年发展也很迅速,得到越来越多用户的青睐。

2.从数据管理发展角度

从数据管理发展角度,数据库系统发展经历了3个阶段:人工管理阶段、文件系统阶段和数据库系统阶段。

(1)人工管理阶段(初等数据文件阶段)

时期:20世纪50年代中期以前,计算机主要用于科学计算。

硬件状况:外存只有纸带、卡片、磁带,没有磁盘等直接存取的设备。

软件状况:没有操作系统,没有管理数据的软件。

数据处理方式:批处理。

人工管理数据的特点如下。

① 数据不保存。

② 应用程序管理数据。

③ 数据冗余,数据不共享。

④ 数据不具有独立性。

(2)文件系统阶段(独立文件管理系统)

时期:20世纪50年代后期到20世纪60年代中期。

硬件方面:拥有磁盘、磁鼓等直接存取设备。

软件方面:操作系统中已经有专门的数据管理软件,一般称为文件系统。

数据处理方式:批处理、联机实时处理。

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

① 数据长期保存。

② 文件系统管理数据由专门的软件即文件系统进行数据管理,文件系统把数据组织成相互独立的数据文件,利用“按文件名访问,按记录存取”的管理技术,可以对文件进行修改、插入、删除等操作。

③ 文件系统实现了记录内的结构性,但是整体无结构。

④ 数据共享性差,冗余度大。

在文件系统中,一个文件基本上对应于一个应用程序,即文件仍然是面向应用的。

⑤ 数据独立性差。

一旦数据的逻辑结构改变,就必须修改应用程序和文件结构的定义。例如,应用程序改用不同的高级语言等,将引起文件的数据结构改变,因此数据与程序之间仍缺乏独立性。

(3)数据库系统阶段

时期:20世纪60年代后期以来。

硬件方面:拥有大容量磁盘,硬件价格下降。

软件方面:软件价格上升,编制和维护系统软件及应用程序的成本相对增加。

数据处理方式:由专门的软件系统统一管理数据,即数据库管理系统。

数据库系统的特点如下。

① 数据结构化。

数据结构化是数据库与文件系统的根本区别。在文件系统中,虽然记录内部已经有了某些结构,但记录之间没有联系。

② 数据共享性高,冗余度低,易扩充。

数据库系统从整体角度描述数据,数据不再面向某个应用,而是面向整个系统,因此数据可以被多个用户、多个应用共享使用。数据共享可以大大减少数据冗余,节约存储空间。

③ 数据独立性高。

数据独立性包括物理独立性、逻辑独立性。数据的物理存储改变,应用程序不需改变。数据与程序独立,把数据的定义从程序中分离,数据的存取由DBMS(Database Management System,数据库管理系统)负责,简化应用程序的复杂程度,大大减少应用程序维护和修改的工作量。

④ 数据由DBMS统一管理和控制。

数据库的共享是并发的共享,即多个用户可以同时存取数据库中的数据,甚至可以同时存取数据库中的同一个数据。

1.1.2 数据库系统基本组成

1.硬件

硬件是构成计算机系统的各种物理设备,包括存储所需的外部设备。硬件的配置应满足整个数据库系统的需要,要求有足够大的空间存放操作系统、数据库管理系统的核心模块、数据缓冲区和应用程序,而且需要较高的通道能力。

2.软件

软件主要包括操作系统、数据库管理系统、应用程序以及核心开发工具。数据库管理系统是数据库系统的核心软件,是具有数据库接口的高级语言及其编译系统,是便于开发应用程序,解决如何科学地组织和存储数据,如何高效获取和维护数据的系统软件。其主要功能包括:数据定义、数据操纵、数据库的运行管理和数据库的建立与维护。

3.人员

人员主要有以下4类。

(1)系统分析员和数据库设计人员

系统分析员负责应用系统的需求分析和规范说明,他们和用户及数据库管理员一起确定系统的硬件配置,并参与数据库系统的概要设计。数据库设计人员负责确定数据库中的数据、设计数据库各级模式。

(2)应用程序员

应用程序员负责编写使用数据库的应用程序。这些应用程序可对数据进行检索、建立、删除和修改。

(3)最终用户

他们利用系统的接口或查询语言访问数据库。

(4)数据库管理员(Database Administrator,DBA)

DBA负责数据库的总体管理和控制,具体职责包括以下几项。

① 管理数据库中的信息内容和结构。

② 定义数据库的存储结构和存取策略。

③ 定义数据库的安全性要求和完整性约束条件。

④ 监控数据库的使用和运行,负责改进数据库的性能。

⑤ 数据库的重组和重构,以提高系统的性能。

1.1.3 数据库系统基本概念

微课:数据库系统基本概念

1.数据

数据(Data)是描述事物的符号记录。在计算机系统中,各种字母、数字符号的组合,语音、图形、图像等统称为数据,数据经过加工后就成为信息。

在计算机科学中,数据是指所有能输入计算机并被计算机程序处理的具有一定意义的数字、字母、符号和模拟量等的通称。

2.数据库

数据库(Database,DB)是指长期存储在计算机内的、有组织的、可共享的数据集合。

数据库是一个单位或是一个应用领域的通用数据处理系统,它存储的是属于企事业单位、部门和个人的有关数据的集合。数据库中的数据是从全局观点出发建立的,它按一定的数据模型进行组织、描述和存储。其结构基于数据间的自然联系,从而可提供一切必要的存取路径,且数据不再针对某一应用,而是面向全组织,具有整体的结构化特征。

数据库中的数据是为众多用户共享信息而建立的,已经摆脱了具体程序的限制和制约。不同的用户可以按各自的用法使用数据库中的数据;多个用户可以同时共享数据库中的数据资源,即不同的用户可以同时存取数据库中的同一个数据。数据共享性不仅满足了各用户对信息内容的要求,也满足了各用户之间信息通信的要求。

3.数据库管理系统

数据库管理系统(Database Management System,DBMS)是数据库的机构,它是一个系统软件,负责数据库中的数据组织、操纵、维护、控制及保护和数据服务等。

数据库管理系统主要有4种类型:文件管理系统、层次数据库系统、网状数据库系统和关系数据库系统,其中关系数据库系统的应用最为广泛。

数据库管理系统是一种操纵和管理数据库的大型软件,用于建立、使用和维护数据库。它对数据库进行统一的管理和控制,以保证数据库的安全性和完整性。用户通过它访问数据库中的数据,数据库管理员也通过它进行数据库的维护工作。它可使多个应用程序和用户用不同的方法在同时或不同时刻建立、修改和询问数据库。DBMS提供数据定义语言(Data Definition Language,DDL)与数据操作语言(Data Manipulation Language,DML),供用户定义数据库的模式结构与权限约束,实现对数据的追加、删除等操作。

4.数据库系统

数据库系统(Database System,DBS)是指引进数据库技术后的整个计算机系统,能够实现有组织地、动态地存储大量相关数据,提供数据处理和信息资源共享的便利手段。

数据库系统由数据库(数据)、数据库管理系统(软件)、计算机硬件、操作系统及数据库管理员5个部分组成。

在数据库系统、数据库管理系统和数据库三者之中,数据库管理系统是数据库系统的组成部分,数据库又是数据库管理系统的管理对象,因此可以说数据库系统包括数据库管理系统,数据库管理系统包括数据库。

1.1.4 常见数据库系统

微课:常见数据库系统

目前常见的数据库系统有 IBM的 DB2、甲骨文的 Oracle、微软的 SQL和Access、Sybase的Sybase、MySQL AB公司的MySQL等。不同的数据库系统,有不同的特点,也有相对独立的应用领域和用户支持。

1.Oracle

Oracle 公司为了最大限度地抢占市场,针对不同规模和应用需求的用户推出了不同功能组合的版本,而且支持的操作系统也可说是全面覆盖,UNIX、Linux和Windows都可以,所以Oracle数据库不仅适用大公司,还可以满足各种不同规模的企业用户。当然不同用户选择的操作系统平台也不一样,大型企业一般选择基于 UNIX或者 Linux操作系统,而中、小型企业则选择基于 Linux或者Windows操作系统。

2.DB2

DB2尽管是IBM开发的,但它与其他数据库系统一样,也不局限于自身的服务器,而同样采取了开放的政策。所以现在许多非IBM自有品牌服务器也提供了对DB2数据库系统的支持。

在UNIX操作系统方面,除了IBM自己的AIX操作系统外,DB2还支持目前主流的Sun Solrais和 HP-UX 操作系统的版本,其他的像主流版本的 Linux 和 Windows 系统,IBM 都提供了相应的DB2数据库系统版本。

3.SQL/Access

因为它们与应用最为普遍的Windows系统一样,都是微软公司的产品,所以SQL和Access的操作系统环境是微软的Windows。目前支持Windows操作系统的服务器架构已非常普遍,可以说所有主流处理器架构都有很好的支持,包括 IBM的 Power处理器、Sun的 UltraSparc处理器。所以在这方面,基于这两大数据库软件的数据库服务器是没有什么限制的。

4.MySQL

MySQL是MySQL AB公司提供的一款开放而且免费的数据库系统。虽然功能不是非常强大,性能也只能算是一般,但在各种中、小型应用中还是非常普及的,毕竟它比起针对小型办公应用而设计的 Access 来说还是非常有优势的。MySQL 可以在 Windows 环境下使用,不过最经典的组合是Apache、PHP、MySQL。现在以这种组合出现的小型网站非常多,这类网站对服务器配置要求非常低,当然由于数据库本身的限制,MySQL也不适合大访问量的商业应用。