第2章-数据库
在信息处理领域,由于数据量庞大,如何有效组织、存储数据对实现高效率的信息处理至关重要。数据库技术是目前最有效的数据管理技术。数据库(DataBase,DB)是指长期存储在计算机内、有组织的、统一管理的相关数据的集合。它不仅描述事物的数据本身,而且还包括相关事物之间的联系。数据库可以直观地理解为存放数据的仓库,只不过这个仓库是在计算机的存储设备上,而且数据是按一定格式存放的,具有较小的冗余度、较高的数据独立性和易扩展性,可为多个用户共享。
早期数据库种类有3种,分别是层次式数据库、网络式数据库和关系型数据库。目前最常见的数据库种类是关系型数据库和非关系型数据库。根据数据库存储体系分类,还可分为关系 型数据库、键值(Key-Value)数据库、列存储数据库、文档数据库和搜索引擎数据库等类型。
- 关系型数据库。这种类型的数据库是最传统的数据库类型,关系型数据库模型是把复杂的数据结构归结为简单的二元关系,在数据库中,对数据的操作几乎全部建立在一个或多个关系表格上。在大型系统中通常有多个表,且表之间有各种关系。实际使用就是通过对这些关联的表格进行分类、合并、连接或选取等运算来实现数据库的管理。
- 键值数据库。键值数据库是一种非关系型数据库,它使用简单的键值方法来存储数据。键值数据库将数据存储为键值对集合,其中键作为唯一标识符。
- 列存储数据库。列式存储(Column-Based)是相对于传统关系型数据库的行式存储(Row-Basedstorage)来说的。简单来说两者的区别就是对表中数据的存储形式的差异。
- 文档数据库。此类数据库可存放并获取文档,可以是XML、JSON、BSON等格式,这些文档具备可述性(Self-Describing),呈现分层的树状结构 (Hierarchical Tree Data Structure),可以包含映射表、集合和纯量值。数据库中的文档彼此相似,但不必完全相同。文档数据库所存放的文档,就相当于键值数据库所存放的“值”。文档数据库可视为其值可查的键值数据库。
- 搜索引擎数据库。搜索引擎数据库是应用在搜索引擎领域的数据存储形式,由于搜索引擎会爬取大量的数据,并以特定的格式进行存储,这样在检索的时候才能保证性能最优。
下面简要介绍常用的关系数据库和分布式数据库。
- 关系数据库
数据模型是数据特征的抽象,它是对数据库组织方式的一种模型化表示,是数据库系统的核心与基础。它具有数据结构、数据操作和完整性约束条件三要素。
关系可以理解为二维表。一个关系模型就是指用若干关系表示实体及其联系,用二维表的形式存储数据。例如,对某高校学生的选课(不同年级甚至同一年级学生所选课程可以不同) 进行管理,可以用二维表表示,如图2-4所示。
用关系表示如下,其中带下画线的属性为主码,主码能唯一确定某个实体,如学号能唯一 确定某个学生。
学生(学号,姓名,年龄,系别)
课 程 (课程号,课程名,学分)
选 课 (学 号,课程号,分数)
- 关系数据库设计的特点及方法
数据库设计是指对于一个给定的应用环境构造最优的数据库,建立数据库及其应用系统,使之能有效地存储数据,满足各种用户的需求。数据库设计包括结构特性和行为特性的设计两 方面的内容。
数据库设计的很多阶段都可以和软件工程的各阶段对应起来,数据库设计的特点有:从数据结构即数据模型开始,并以数据模型为核心展开,这是数据库设计的一个主要特点;静态结构设计与动态行为设计分离;试探性;反复性和多步性。
目前已有的数据库设计方法可分为4类,即直观设计法、规范设计法、计算机辅助设计法和自动化设计法。常用的有基于3NF的设计方法、基于实体联(E-R)模型的数据库设计方法、基于视图概念的数据库设计方法、面向对象的关系数据库设计方法、计算机辅助数据库设计方法、敏捷数据库设计方法等。 - 关系数据库设计的基本步骤
数据库设计分为需求分析、概念结构设计、逻辑结构设计、物理结构设计、应用程序设计和运行维护6个阶段,如图2-5所示。
需求分析阶段的任务是对现实世界要处理的对象(组织、部门和企业等)进行详细调查,在了解现行系统的概况和确定新系统功能的过程中,收集支持系统目标的基础数据及其处理方 法。需求分析是在用户调查的基础上,通过分析逐步明确用户对系统的需求,包括数据需求和围绕这些数据的业务处理需求。
数据库概念结构设计是在需求分析的基础上,依照需求分析中的信息需求,对用户信息加以分类、聚集和概括,建立信息模型,并依照选定的数据库管理系统软件,把它们转换为数据的逻辑结构,再依照软硬件环境,最终实现数据的合理存储。这一过程也称为数据建模。
设计数据库概念模型的最著名、最常用的方法是E-R方法。采用E-R方法的数据库概念结构设计可分为三步:设计局部E-R模型、设计全局E-R模型以及全局E-R模型的优化。
逻辑结构设计是在概念结构设计基础上进行的数据模型设计,可以是层次、网状模型和关系模型。逻辑结构设计阶段的主要任务是确定数据模型,将E-R图转换为指定的数据模型,确定完整性约束,确定用户视图。
数据库在物理设备上的存储结构与存取方法称为数据库的物理结构。数据库的物理结构设计是对已确定的数据库逻辑结构,利用DBMS所提供的方法、技术,以较优的存储结构和数据 存取路径、合理的数据存放位置以及存储分配,设计出一个高效的、可实现的数据库物理结构。
数据库应用系统开发是DBMS的二次开发,一方面是对用户信息的存储;另一方面就是对用户处理要求的实现。
数据库应用程序设计要做的工作有选择设计方法、制订开发计划、选择系统架构和设计安全性策略。在应用程序设计阶段,设计方法有结构化设计方法和面向对象设计方法两种。安全性策略主要是指硬件平台、操作系统、数据库系统、网络及应用系统的安全。
数据库的正常运行和优化也是数据库设计的内容之一 。在数据库运行维护阶段要做的工作主要有数据库的转储和恢复,数据库的安全性和完整性控制,数据库性能的监督、分析和改造,数据库的重组和重构等。
- 分布式数据库
分布式数据库系统(Distributed DataBase System,DDBS) 是针对地理上分散,而管理上又需要不同程度集中管理的需求而提出的一种数据管理信息系统。满足分布性、逻辑相关性、地透明性和场地自治性的数据库系统被称为完全分布式数据库系统。
分布式数据库系统的特点是数据的集中控制性、数据独立性、数据冗余可控性、场地自治性和存取的有效性。
- 分布式数据库体系结构
我国在多年研究与开发分布式数据库及制定《分布式数据库系统标准》中,提出了把分布式数据库抽象为4层的结构模式,如图2-6所示。这种结构模式得到了国内外一定程度的支持和认同。
4层模式划分为全局外层、全局概念层、局部概念层和局部内层,在各层间还有相应的层 间映射。这种4层模式适用于同构型分布式数据库系统,也适用于异构型分布式数据库系统。 - 分布式数据库的应用
分布式数据库的应用领域有分布式计算、Internet应用、数据仓库、数据复制以及全球联网查询等,Sybase公司的Replication Server即是一种典型的分布式数据库系统。
- 常用数据库管理系统
计算机科学技术不断发展,数据库管理系统也不断发展进化,MySQLAB公司(2009年被Oracle公司收购)MySQL、Microsoft公司的Access等是小型关系数据库管理系统的代表,Oracle公司的Oracle、Microsoft公司的SQL Server、IBM公司的DB2等是功能强大的大型关系数据库管理系统的代表。
- Oracle
Oracle 是一种适用于大型、中型和微型计算机的关系数据库管理系统。Oracle的结构包括数据库的内部结构、外存储结构、内存储结构和进程结构。在Oracle中,数据库不仅指物理上的数据,还包括处理这些数据的程序,即DBMS本身。Oracle使用PL/SQL(ProceduralLanguage/SQL)语言执行各种操作。Oracle除了以关系格式存储数据外,Oracle8以上的版本还支持面向对象的结构(如抽象数据类型)。
Oracle产品主要包括数据库服务器、开发工具和连接产品三类。Oracle还提供了一系列的工具产品,如逻辑备份工具Export、Import等。 - IBM DB2
DB2是IBM的一种分布式数据库解决方案。简单地说,DB2就是IBM开发的一种大型关系型数据库平台,它支持多用户或应用程序在同一条SQL语句中查询不同Database甚至不同DBMS中的数据。
DB2核心数据库的特色有支持面向对象编程,支持多媒体应用程序,支持备份和恢复功能,支持存储过程和触发器,支持SQL查询,支持异构分布式数据库访问,支持数据复制。
DB2采用多进程多线索体系结构,可运行于多种操作系统之上。IBM还提供了Visualizer、Visualage、Visualgen等开发工具。 - Sybase
Sybase是美国SYBASE公司在20世纪80年代中期推出的客户机/服务器(Client/Server,C/S)结构的关系数据库系统,也是世界上第一个真正的基于客户机/服务器结构的RDBMS产品。
Sybase数据库主要由三部分组成:进行数据库管理和维护的联机关系数据库管理系统Sybase SQLServer,支持数据库应用系统建立与开发的一组前端工具Sybase SQLToolset,可把异构环境下其他厂商的应用软件和任何类型的数据连接在一起的接口Sybase OpenClient/OpenServer。
Sybase提供了Sybase Adaptive Server Enterprise高性能企业智能型关系数据库管理系统、EAServer电子商务解决方案应用服务器、系统分析设计工具PowerDesigner和应用开发工具PowerBuilder。 - Microsoft SQL Server
Microsoft SQL Server是一种典型的关系型数据库管理系统,可运行于多个操作系统上,它使用Transact-SQL 语言完成数据操作。