数据库管理系统

  数据库管理系统(Database Management System,DBMS)是在文件管理系统基础上发展起来的数据管理技术,它建立在操作系统的基础上,对数据操作语句进行统一的管理和控制,并维护数据库的安全性和完整性,是数据库系统的核心组成部分。它是位于用户与操作系统之间的一层数据管理软件,帮助企业开发、使用、维护组织的数据库。它既能将所有数据集成在数据库中,又允许不同的用户应用程序方便地存取相同的数据库。

组成

  数据库管理系统通常由以下三部分组成:

  ,数据描述语言(Data Description Language,简称DDL)。为了对数据库中的数据进行存取,必须正确地描述数据以及数据之间的联系,DBMS根据这些数据定义从物理记录导出全局逻辑记录,从而导出应用程序所需的记录。DBMS提供数据描述语言以完成这些描述工作。

  第二,数据操纵语言(Data Manipulation Language,简称DML)。DML是DBMS中提供应用程序员存储、检索、修改、删除数据库中数据的工具,又称数据子语言(DSL)。DML有两种基本类型:过程化DML和非过程化DML。过程化DML不仅要求用户指出所需的数据是什么,还要指出如何存取这些数据;非过程化DML只要求用户指出所需的数据而不必指出存取这些数据的过程。

  第三,数据库例行程序。从程序的角度看,DBMS是由许多程序组成的一个软件系统,每个程序都有自己的功能,他们互相配合完成DBMS的工作,这些程序就是数据库管理例行程序。在DBMS中,这些程序主要有以下三种:语言处理程序,系统运行控制程序,日常管理和服务性程序。

功能

  有两种功能使数据库管理系统区别于其他设计系统:

  1)管理固有数据的能力,以及

  2)高效访问大量数据的能力。

  点只是表明现有一个固定存在的数据库;而这个数据库的内容也就是 DBMS 所要 访问和管理的那些数据。第二点将 DBMS 和同样能管理固有数据的文件系统区分开来。通 常在数据量非常大的时候才需要用到 DBMS 系统的功能,因为对于小量数据而言,简单的 访问技术(如对数据的线性扫描)就足够了。

  虽然我们将以上两点作为 DBMS 的基本特性,但是其他一些功能也是在商业 DBMS 系 统中常见的,它们是:

  ·支持至少一种用户可以据之浏览数据的数据模式或数学提取方式。

  ·支持某种允许用户用来定义数据的结构、访问和操纵数据的语言。

  ·事务管理,即对多个用户提供正确、同时访问数据库的能力。

  ·访问控制,即限制未被授权用户对数据的访问能力,以及检测数据有效性的能力。

  ·恢复功能,即能够从系统错误中恢复过来而不丢失数据的能力。

  数据模型

  每个 DBMS 提供了至少一种允许用户不是以原始比特位的方式, 而是以更容 易理解的术语来观看信息的抽象数据模型。 实际上, 通常要观察以几个不同级别提取出来的 数据是可能的。在相关的低级别中,DBMS 一般允许我们将数据形象化为文件的组成部分。

  高效数据访问

  存储一个文件的能力并不特别: 操作系统中结合的文件系统都能够如此。 DBMS 的能力在我们访问文件的数据时才能显露出来。 比如, 假设我们希望找到员工经理“克 拉克·肯特”。如果这个公司有上万员工,则要通过 NAME=“克拉克·肯特”搜索整个文件来找 到这个人是非常费时的。而 DBMS 帮助我们建立“索引文件”或“索引”,不管文件有多大, 它都使我们能够一举访问到“克拉克·肯特”的记录。同样的,新记录的插入或者原有记录的 删除都可以在较短并且本质上恒定的时间内完成,而不依赖于文件的长度。DBMS 还可以 帮助我们进行文件间的导航,即,通过结合两个或更多文件的值来获得我们所需的信息。

  查询语言

  为了使访问文件更容易,DBMS 提供了查询语言(或者说数据控制语言)来 表达对文件的操作。 查询语言对用户所提供的细节的详细程度要求有所不同, 基于关系数据 模型的系统通常比基于其他模型的系统所需的细节要少。

  事务管理

  DBMS 的另外一项重要功能就是同时管理大量事务的能力。事务即是数据库 中运行的进程。 某些数据库是如此之大, 它们只有在被多台计算机同时操作时才有用武之地: 通常这些计算机分散在全国甚至世界各地。 银行中使用的数据库系统就是这类数据库的一个典型, 它们儿乎同时被成千上万的自动取款机所访问, 也同时被同样多甚至更多的支行员工 所访问。机票预定系统是另一个好例子。

  两个访问不会互相打扰。 举个例了说, 任意多的事务可以同时读取你银行的结余而不引 起任何冲突。但是如果你正在银行里查询工资,与此同时,你的爱人在一台自动取款机上取 款,两个事务同时发生且没有彼此协调,那你的查询结果就很难说了。因此,会引起数据项 改变的事务必须“上锁”, 将其他在同一时刻试图读写该项数据的事务关在外面。 因此, DBMS 必须提供某种并发控制状态以阻止多个事务对于同一数据项的非协调访问。 更复杂的问题发生在数据库分布在许多不同计算机系统上的时候, 它们多半使用数据副 本来允许高速的本地访问以及避免由于某台计算机崩溃而破坏数据。

  数据安全

  DBMS 不只可以在计算机崩溃时保护数据不被丢失,正如上文提到的那样, 而且它还能够阻止非法访问。 比如, 只有拥有特定权限的用户可以访问职工文件的工资区域, DBMS 还能结合不同用户的权利来判定他们有权看到哪些文件,文件的哪些区域或者数据 库中数据的哪些子集。因此 DBMS 必须拥有一个表,表中给出每个用户对于每个对象的访 问权限。比如,某个用户可能被允许读取文件,但不能够插入或删除数据;另一个用户可能 根本都不被允许看文件,而第三个用户可能被允许读取或随意修改文件。

层次结构

  根据处理对象的不同,数据库管理系统的层次结构由到低级依次为应用层、语言翻译处理层、数据存取层、数据存储层、操作系统。

  (1)应用层

  应用层是DBMS与终端用户和应用程序的界面层,处理的对象是各种各样的数据库应用。

  (2)语言翻译处理层

  语言翻译处理层是对数据库语言的各类语句进行语法分析、视图转换、授权检查、完整性检查等。

  (3)数据存取层

  数据存取层处理的对象是单个元组,它将上层的集合操作转换为单记录操作。

  (4)数据存储层

  数据存储层处理的对象是数据页和系统缓冲区。

  (5)操作系统

  操作系统是DBMS的基础。操作系统提供的存取原语和基本的存取方法通常是作为和DBMS存储层的接口。

性能与特点

  数据管理技术的发展大致经历了人工管理阶段(20世纪50年代中期前)、文件系统阶段(20世纪50年代后期到60年代中期)、数据库阶段(20世纪60年代末到70年代末)和数据库技术阶段(20世纪80年代初开始)。

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

  数据库管理系统(DBMS)是一种负责数据库的定义、建立、操作、管理和维护的软件系统。其目的是保证数据安全可靠,提高数据库应用的简明性和方便性。DBMS的工作机理是把用户对数据的操作转化为对系统存储文件的操作,有效地实现数据库3级之间的转化。数据库管理系统的主要职能有数据库的定义和建立、数据库的操作、数据库的控制、数据库的维护、故障恢复和数据通信。

  数据库系统(DBS)是实现有组织地、动态地存储大量关联数据方便多用户访问的计算机软件、硬件和数据资源组成的系统。一个典型的数据库系统包括数据库、硬件、软件(应用程序)和数据库管理员(DBA)4个部分。根据计算机的系统结构,DBS可分成集中式、客户/串口服务器式、并行式和分布式4种。

  与文件系统阶段相比,数据库技术的数据管理方式具有以下特点。

  (1)采用复杂的数据模型表示数据结构,数据冗余小,易扩充,实现了数据共享。

  (2)具有较高的数据和程序独立性,数据库的独立性有物理独立性和逻辑独立性。

  (3)数据库系统为用户提供了方便的用户接口。

  (4)数据库系统提供4个方面的数据控制功能,分别是并发控制、恢复、完整性和安全性。数据库中各个应用程序所使用的数据由数据库系统统一规定,按照一定的数据模型组织和建立,由系统统一管理和集中控制。

  (5)增加了系统的灵活性。

  数据库技术阶段的主要标志是分布式数据库系统和面向对象数据库系统的出现。

  集中式系统的弱点是随着数据量的增加,系统相当庞大、操作复杂、开销大,而且因为数据集中存储,大量的通信都要通过主机,造成拥挤。分布式数据库系统的主要特点是数据在物理上分散存储,在逻辑上是统一的。分布式数据库系统的多数处理就地完成,各地的计算机由数据通信网络相联系。

  面向对象数据库系统是面向对象的程序设计技术与数据库技术相结合的产物。面向对象数据库系统的主要特点是具有面向对象技术的封装性和继承性,提高了软件的可重用性。

  从目前的数据库系统来看,主要存在以下缺点。

  (1)采用静态数据模型,数据类型和操作简单、固定,只能处理短寿命事务。

  (2)不能适应计算机辅助设计、计算机辅助软件工程、图像处理、超文本和多媒体等新的应用。

常见的数据库管理系统

  Oracle

  Oracle是一个最早商品化的关系型数据库管理系统,也是应用广泛、功能强大的数据库管理系统。Oracle作为一个通用的数据库管理系统,不仅具有完整的数据管理功能,还是一个分布式数据库系统,支持各种分布式功能,特别是支持 Internet应用。作为一个应用开发环境,Oracle提供了一套界面友好、功能齐全的数据库开发工具。Oracle使用PL/SQL语言执行各种操作,具有可开放性、可移植性、可伸缩性等功能。特别是在Oracle 8i中,支持面向对象的功能,如支持类、方法、属性等,使得Oracle 产品成为一种对象/关系型数据库管理系统。目前版本是Oracle 11g。

  PostgreSQL

  PostgreSQL 是一个自由的对象-关系数据库服务器(数据库管理系统),它在灵活的 BSD-风格许可证下发行。它在其他开放源代码数据库系统(比如 MySQL 和 Firebird),和专有系统比如 Oracle、Sybase、IBM 的 DB2 和 Microsoft SQL Server之外,为用户又提供了一种选择。

  Microsoft SQL Server

  Microsoft SQL Server是一种典型的关系型数据库管理系统。可以在许多操作系统上运行,它使用Transact-SQL语言完成数据操作。由于Microsoft SQL Server是开放式的系统,其它系统可以与它进行完好的交互操作。目前版本的产品为Microsoft SQL Server 2008,它具有可靠性、可伸缩性、可用性、可管理性等特点,为用户提供完整的数据库解决方案。

  Microsoft Access

  作为Microsoft Office组件之一的Microsoft Access是在Windows环境下非常流行的桌面型数据库管理系统。使用Microsoft Access无需编写任何代码,只需通过直观的可视化操作就可以完成大部分数据管理任务。在Microsoft Access数据库中,包括许多组成数据库的基本要素。这些要素是存储信息的表、显示人机交互界面的窗体、有效检索数据的查询、信息输出载体的报表、提高应用效率的宏、功能强大的模块工具等。它不仅可以通过ODBC与其它数据库相连,实现数据交换和共享,还可以与Word、Excel等办公软件进行数据交换和共享,并且通过对象链接与嵌入技术在数据库中嵌入和链接声音、图像等多媒体数据。

相关百科