数据库是什么

学习重点

  • 数据库是将大量数据保存起来,通过计算机加工而成的可以进行高效访问的数据集合。

  • 用来管理数据库的计算机系统称为数据库管理系统(DBMS)。

  • 通过使用DBMS,多个用户便可安全、简单地操作大量数据。

  • 数据库有很多种类,本书将介绍如何使用专门的SQL语言来操作关系数据库。

  • 关系数据库通过关系数据库管理系统(RDBMS)进行管理。

一、我们身边的数据库

大家都有过下面这样的经历吧?

  • 收到曾经为自己诊治过的牙医寄来的明信片,上面写着“距上次检查已有半年,请您再来做个牙齿健康检查”。

  • 在生日的前一个月,收到曾入住过的旅店或宾馆发来的“生日当月入住优惠”的邮件或者明信片。

  • 在网上商城购物之后,收到内附“推荐商品列表”的邮件。

这可能是因为牙医、旅店或商城的经营者掌握了顾客上一次的就诊日期、生日和购买历史等信息,并且拥有能够从大量汇总信息中快速获取所需信息(比如你的住址或爱好)的设备(计算机系统)。如果利用人工完成同样的工作,真不知道要多长时间呢。

另外,现在所有地区的图书馆都配备了计算机,实现了图书的自动查询。使用该系统,可以通过检索书名或出版年份快速查找出希望借阅的图书的所在位置,以及是否已经借出等信息。正是因为拥有了可以保存图书名称、出版年份以及保管位置和外借情况等信息,并且可以按需查询的设备,才使这一切成为可能。

像这样将大量数据保存起来,通过计算机加工而成的可以进行高效访问的数据集合称为数据库(Database,DB)。将姓名、住址、电话号码、邮箱地址、爱好和家庭构成等数据保存到数据库中,就可以随时迅速获取想要的信息了。用来管理数据库的计算机系统称为数据库管理系统(Database Management System,DBMS1

KEYWORD

  • 数据

  • 数据库(DB)

  • 数据库管理系统(DBMS)

系统的使用者通常无法直接接触到数据库。因此,在使用系统的时候往往意识不到数据库的存在。其实大到银行账户的管理,小到手机的电话簿,可以说社会的所有系统中都有数据库的身影(图 1)。

数据库无处不在

图 1 数据库无处不在

二、为什么 DBMS 那么重要

那么,为什么要使用专用系统(DBMS)来管理数据呢?我们通过计算机管理数据的时候,通常使用文本文件 2 或者 Excel 那样的电子制表软件就可以完成了,非常简单。

确实,通过文本文件或者电子制表软件来管理数据的方法非常简便,但也有不足。下面就举几个有代表性的例子。

  • 无法多人共享数据

    保存在已连接网络的计算机中的文件,可以通过共享设定实现多个用户在线阅读或编辑。但是,当某个用户打开该文件的时候,其他用户就无法进行编辑了。如果是网上商城的话,当某个用户购买商品的时候,其他用户就无法购买了。

  • 无法提供操作大量数据所需的格式

    要想瞬间从几十万或者上百万的数据中获取想要的数据,必须把数据保存为适当的格式,但是文本文件和 Excel 工作表等无法提供相应的格式。

  • 实现读写自动化需要编程能力

    通过编写计算机程序(以下简称程序)可以实现数据读取和编辑自动化,但这必须以了解数据结构为前提,还需具备一定的计算机编程技术。

  • 无法应对突发事故

    当文件被误删、硬盘出现故障等导致无法读取的时候,可能会造成重要数据丢失,同时数据还可能被他人轻易读取或窃用。

DBMS 可以克服这些不足,实现多个用户同时安全简单地操作大量数据(图 2)。这也是我们一定要使用 DBMS 的原因。

DBMS 能够实现多个用户同时安全简单地操作大量数据

图 2 DBMS 能够实现多个用户同时安全简单地操作大量数据

三、DBMS 的种类

DBMS 主要通过数据的保存格式(数据库的种类)来进行分类,现阶段主要有以下 5 种类型。

  • 层次数据库(Hierarchical Database,HDB

    最古老的数据库之一,它把数据通过层次结构(树形结构)的方式表现出来。层次数据库曾经是数据库的主流,但随着关系数据库的出现和普及,现在已经很少使用了。

  • 关系数据库(Relational Database,RDB

    关系数据库是现在应用最广泛的数据库。关系数据库在 1969 年诞生,可谓历史悠久。和 Excel 工作表一样,它也采用由行和列组成的二维表来管理数据,所以简单易懂(表 1)。同时,它还使用专门的 SQL(Structured Query Language,结构化查询语言)对数据进行操作。

    KEYWORD

    • 层次数据库

    • 关系数据库(RDB)

    • SQL

    表 1 关系数据库中的数据

    商品编号 商品名称 商品种类 销售单价 进货单价 登记日期
    0001 T 恤衫 衣服 1000 500 2009-09-20
    0002 打孔器 办公用品 500 320 2009-09-11
    0003 运动 T 恤 衣服 4000 2800
    0004 菜刀 厨房用具 3000 2800 2009-09-20
    0005 高压锅 厨房用具 6800 5000 2009-01-15
    0006 叉子 厨房用具 500 2009-09-20
    0007 擦菜板 厨房用具 880 790 2008-04-28
    0008 圆珠笔 办公用品 100 2009-11-11

    这种类型的 DBMS 称为关系数据库管理系统(Relational Database Management System,RDBMS)。比较具有代表性的 RDBMS 有如下 5 种。

    • Oracle Database :甲骨文公司的 RDBMS

    • SQL Server :微软公司的 RDBMS

    • DB2 :IBM 公司的 RDBMS

    • PostgreSQL :开源的 RDBMS

    • MySQL :开源的 RDBMS

    KEYWORD

    • RDBMS

    • 开源

      将软件的内容(代码)无偿地公开在互联网上,任何人都可以进行修改并再次发布。开发项目可以由志同道合的有志之士集体来运营。

    另外,Oracle Database 通常简称为 Oracle,因此,本教程在接下来的章节中也使用这一简称。

  • 面向对象数据库(Object Oriented Database,OODB

    编程语言当中有一种被称为面向对象语言的语言 3。把数据以及对数据的操作集合起来以对象为单位进行管理,因此得名。面向对象数据库就是用来保存这些对象的数据库。

    KEYWORD

    • 面向对象数据库(OODB)
  • XML 数据库(XML Database,XMLDB

    最近几年,XML 4 作为在网络上进行交互的数据的形式逐渐普及起来。XML 数据库可以对 XML 形式的大量数据进行高速处理。

    KEYWORD

    • XML 数据库(XMLDB)
  • 键值存储系统(Key-Value Store,KVS

    这是一种单纯用来保存查询所使用的主键(Key)和值(Value)的组合的数据库。具有编程语言知识的读者可以把它想象成关联数组或者散列(hash)。近年来,随着键值存储系统被应用到 Google 等需要对大量数据进行超高速查询的 Web 服务当中,它正逐渐为人们所关注。

    KEYWORD

    • 键值存储系统(KVS)

本教程将向大家介绍使用 SQL 语言的数据库管理系统,也就是关系数据库管理系统(RDBMS)的操作方法。接下来还会深入讲解 RDBMS。如无特殊说明,本教程所提到的数据库以及 DBMS 都是指 RDBMS。

另外,有的 RDBMS 也可以像 XML 数据库那样操作 XML 形式的数据,或者具有面向对象数据库的功能。本教程并不会介绍用于这些扩展功能的 SQL,如果要了解这些内容,请参考 RDBMS 附带的 SQL 手册或者针对不同的 RDBMS 介绍 SQL 的资料。

请参阅

(完)


  1. 数据库(DB)和 DBMS 经常被混淆。为了加以区别,本教程将数据库管理系统统称为 DBMS。 ↩︎

  2. 保存只通过文字记录的数据的文件。 ↩︎

  3. 主要的面向对象语言包括 Java 和 C++ 等。 ↩︎

  4. eXtensible Markup Language 的缩写,一种使用 HTML 那样的标签来表现数据结构的语言。以 <name>忆初</name> 这样的形式来保存数据。 ↩︎

comments powered by Disqus