赞
踩
数据库管理系统(DataBase-Management System,DBMS)由一个互相关联的数据的集合和一组用以访问这些数据的程序组成。这个数据集合通常称为数据库(database)。
DBMS的主要目标是提供一种可以方便、高效地存取数据库信息的途径。
设计数据库系统的母的是为了管理大量信息。此外,数据库还必须提供所存储信息的安全性保证,即使在系统崩溃或有人企图越权访问时也应保障信息的安全性。
如果数据被多用户共享,系统还必须设法避免可能产生的异常结果。
在数据库之前,普遍采用文件处理系统(file-processing system)来永久记录数据。其具有以下弊端:
数据库系统是一些互相关联的数据以及一组使得用户可以访问和修改这些数据的程序的集合。数据库系统的一个主要目的是给用户提供数据的抽象视图,也就是说,系统隐藏关于数据存储和维护的某些细节。
一个可用的系统必须能高效的检索数据。抽象的目的在于简化用户与系统的交互,具有已下抽象层次:
应用程序如果不依赖与物理模式,它们就被称为是具有物理数据独立性(physical data independence),因此即使是物理模式改变了它们也无需重写。
数据库的基础就是数据模型(data model)。数据模型是一个描述数据、数据联系、数据予以以及一致性约束的概念工具的集合。数据模型提供了一种物理层、逻辑层以及视图层数据库设计的方式。
数据模型被分为四类:
网状数据模型(network data model)和层次数据模型(hierarchical data model)先于关系数据模型出现。这些模型和底层的实现联系很紧密,并且使数据建模复杂化。因此,除了某些地方仍然在使用的就数据库之外,如今它们呢已经很少被使用了。
数据库系统提供数据定义语言(data-definition language)来定义数据库模式,以及数据操纵语言(data-manipulation language)来表达数据库的查询和更新。数据定义和数据操纵并不是两种分离的语言,一同构成了单一的数据库语言(SQL)的不同部分。
数据操纵语言(Data-Manipulation Language,DML)能够使得用户可以访问或操纵那些按照某种适当的数据模型组织起来的数据。由以下访问类型:
通常由两类基本的数据操纵语言:
查询(query)是要求对信息进行检索的语句。DML中涉及信息检索的部分称作查询语言(query language)。
数据模式是通过一系列定义来说明的,这些定义由一种称作数据定义语言(Data-Definition Language,DDL)的特殊语言来表达。DDL也可用于定义数据的其他特征
数据库系统所使用的存储结构和访问方式是通过一系列特殊的DDL语句来说明的,这种特殊的DDL称作数据存储和定义(data storage and definition)语言。这些语句定义了数据库模式的实现细节,而这些细节对用户来说是不可见的。
存储在数据库中的数据值必须满足某些一致性约束(consistency constraint)。DDL语言提供了这种约束的工具。每当数据库被更新时,数据库系统都会检查这些约束。通常约束检查约束的代价比较高。数据库提供了实现可以以最小代价测试的完整性约束。
关系数据库基于关系模型,使用一系列表来表达数据以及数据之间得联系。关系数据库也包括了DML和DDL。
每个表有多个列,每个列有唯一的名字。
关系模型是基于记录模型的一个实例
SQL查询语句是非过程化的。它以几个表作为输入(也可以是一个),总是近返回一个表。下面有一个SQL查询示例:
select instructor.name
from instructor
where instructor.dept_name = 'History';
SQL提供了一个丰富的DDL语言,通过它,可以定义表、完整性约束、断言,等等。下面为DDL语句示例:
create table department
( dept_name char(20),
building char(15),
budget numeric(12,2)
);
SQL不支持诸如获取用户输入、输出到显示器,或者通过网络通信这样的动作。这些计算和动作必须用一种宿主语言来写,如C、C++或Java。应用程序在这里是指以这种方式和数据库进行交互的程序。
为了访问数据库 ,DML语句需要由宿主语言来执行。有以下两种途径可以做到这一点
数据库是被用来管理大量信息。数据库设计的主要内容是数据库模式的设计。
高层的数据模型为数据库设计者提供了一个概念框架,去说明数据库用户的数据需求,以及将怎样构造数据库结构以满足这些需求。所以在数据库设计的初始阶段就是全面刻画预期的数据库用户的数据需求。该阶段的成果是制定出用户需求的规格文档。
接下来,设计者选择一个数据模型,并运用该选定的数据模型概念,将那些需求转换成一个数据库的概念模式。在这个概念设计(conceptual-design)阶段开发出来的模式提供了企业的详细概述。设计者再复审这个模式,确保所有的数据需求都满足并且相互之间没有冲突,再检查过程中设计者也可以去掉一些冗余的特性。这一阶段的重点是描述数据和它们呢之间的联系,而不是指定物理的存储细节。
从关系模型的角度看,概念设计阶段涉及决定数据库中应该包括那些属性,以及如何将这些属性组织到多个表中。关于将属性组织到多个表主要通过两种方式:
一个开发完全的概念模式还将指出企业的功能需求。在功能需求说明(specification of functional requirement)中,用户描述数据之上的各种操作(或事务),比如更新数据、检索特定的数据、删除数据等。在概念设计的这个阶段,设计者可以对模式进行复审,确保它满足功能需求。
接着,在逻辑设计阶段,设计者将高层的概念模式映射到要使用的数据库系统的实现数据模型上;
然后设计者将得到的特定于系统的数据库模式用到物理设计阶段(physical-design phrase)中,在这个阶段中指定数据库的物理特性,这些特性包括文件组织结构形式以及内部的存储结构。
实体-联系(E-R)数据模型使用一组称为实体的基本对象,以及这些对象间的联系。实体是现实世界中可区别于其他对象的一件“事物”或一个“物体”。
数据库中实体通过属性(attribute)集合来描述。
联系(relationship)是几个实体之间的关联。同一类型的所有实体的集合称作实体集(entity set),同一类型的所有联系的集合称作联系集合(relationship set)。
数据库的总体逻辑结构(模式)可以用实体-联系图(entity-relationship diagram,E-R图)进行图形化表示。有几种话这样的图。最常用的是采用统一建模语言(Unified Modeling Language,UML)。
除了实体和联系外,E-R模型还描述了数据库必须遵守的对其内容的某些约束。一个重要的约束是映射基数(mapping cardinality),它通过某个联系集能于一实体进行关联的实体数目。
设计关系数据库所用到的另一种方法是通常被称为规范化的过程。其目标是生成一个关系模式集合,使我们存储信息时没有不必要的冗余,同时又能很轻易地检索数据。这种方法是设计一种符合适当的范式(normal form)的模式,
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。