什么是数据库?什么是SQL?怎么入门SQL?


什么是数据库?什么是SQL?怎么入门SQL?

文章插图
 
什么是数据库?大家都有过下面这样的经历吧?
  • 收到曾经为自己诊治过的牙医寄来的明信片,上面写着“距上次检查已有半年,请您再来做个牙齿健康检查” 。
  • 在生日的前一个月,收到曾入住过的旅店或宾馆发来的“生日当月入住优惠”的邮件或者明信片 。
  • 在网上商城购物之后,收到内附“推荐商品列表”的邮件 。
这可能是因为牙医、旅店或商城的经营者掌握了顾客上一次的就诊日期、生日和购买历史等信息,并且拥有能够从大量汇总信息中快速获取所需信息(比如你的住址或爱好)的设备(计算机系统) 。如果利用人工完成同样的工作,真不知道要多长时间呢 。
另外,现在所有地区的图书馆都配备了计算机,实现了图书的自动查询 。使用该系统,可以通过检索书名或出版年份快速查找出希望借阅的图书的所在位置,以及是否已经借出等信息 。正是因为拥有了可以保存图书名称、出版年份以及保管位置和外借情况等信息,并且可以按需查询的设备,才使这一切成为可能 。
像这样将大量数据保存起来,通过计算机加工而成的可以进行高效访问的数据集合称为数据库(Database,DB) 。将姓名、住址、电话号码、邮箱地址、爱好和家庭构成等数据保存到数据库中,就可以随时迅速获取想要的信息了 。
数据库管理系统(DBMS)
用来管理数据库的计算机系统称为数据库管理系统(Database Management System,DBMS) 。为什么要使用专用系统(DBMS)来管理数据呢?
我们通过计算机管理数据的时候,通常使用文本文件或者Excel 那样的电子制表软件就可以完成了,非常简单 。但也有不足 。下面就举几个有代表性的例子 。
  • 无法多人共享数据
保存在已连接网络的计算机中的文件,可以通过共享设定实现多个用户在线阅读或编辑 。但是,当某个用户打开该文件的时候,其他用户就无法进行编辑了 。如果是网上商城的话,当某个用户购买商品的时候,其他用户就无法购买了 。
  • 无法提供操作大量数据所需的格式
要想瞬间从几十万或者上百万的数据中获取想要的数据,必须把数据保存为适当的格式,但是文本文件和Excel 工作表等无法提供相应的格式 。
  • 实现读写自动化需要编程能力
通过编写计算机程序(以下简称程序)可以实现数据读取和编辑自动化,但这必须以了解数据结构为前提,还需具备一定的计算机编程技术 。
  • 无法应对突发事故
当文件被误删、硬盘出现故障等导致无法读取的时候,可能会造成重要数据丢失,同时数据还可能被他人轻易读取或窃用 。
DBMS 可以克服这些不足,实现多个用户同时安全简单地操作大量数据(图1-2) 。这也是我们一定要使用DBMS 的原因 。
什么是数据库?什么是SQL?怎么入门SQL?

文章插图
图1-2 DBMS能够实现多个用户同时安全简单地操作大量数据
数据库管理系统(DBMS)的种类
DBMS 主要通过数据的保存格式(数据库的种类)来进行分类,现阶段主要有以下5 种类型 。
1.层次数据库(Hierarchical Database,HDB)
最古老的数据库之一,它把数据通过层次结构(树形结构)的方式表现出来 。层次数据库曾经是数据库的主流,但随着关系数据库的出现和普及,现在已经很少使用了 。
2.关系数据库(Relational Database,RDB)
关系数据库是现在应用最广泛的数据库 。关系数据库在1969 年诞生,可谓历史悠久 。和Excel 工作表一样,它也采用由行和列组成的二维表来管理数据,所以简单易懂(表1) 。同时,它还使用专门的SQL(Structured Query Language,结构化查询语言)对数据进行操作 。
什么是数据库?什么是SQL?怎么入门SQL?

文章插图
表1 关系数据库中的数据
这种类型的DBMS 称为关系数据库管理系统(Relational Database Management System,RDBMS) 。比较具有代表性的RDBMS 有如下5 种 。
  • Oracle Database:甲骨文公司的RDBMS(通常简称为Oracle)
  • SQL Server :微软公司的RDBMS
  • DB2:IBM 公司的RDBMS
  • PostgreSQL:开源的RDBMS
  • MySQL :开源的RDBMS
3.面向对象数据库(Object Oriented Database,OODB)
编程语言当中有一种被称为面向对象语言的语言 。把数据以及对数据的操作集合起来以对象为单位进行管理,因此得名 。面向对象数据库就是用来保存这些对象的数据库 。


推荐阅读