SQL 概述

SQL 是关系数据库的标准语言,也是一个通用的、功能极强的关系数据库语言。

一、数据库的 4 个基本概念

在系统地介绍数据库的基本概念之前,先介绍一些数据库最常用的术语和基本概念。

1.数据(data)

数据是数据库中存储的基本对象。描述事物的符号记录就是数据。

在计算机中,往往这样描述一个人:

(李明、男、199505、江苏、南京、计算机系)

即把学生的各项信息组织在一起,构成一个记录。这里的记录就是描述学生的数据。

2.数据库(DataBase)

数据库,即存放数据的仓库。

数据库是长期储存在计算机内、有组织的、可共享的大量数据的集合。数据库具有永久存储、有组织和可共享三个特点。

3.数据库管理系统

数据库管理系统是位于用户和操作系统之间的一层数据管理软件。数据库管理系统和操作系统一样是计算机的基础软件,也是一个大型复杂的软件系统。它的主要功能包括以下几个方面:

  • 数据定义功能:数据库管理系统提供数据定义语言,通过它可以方便地对数据库中的数据对象的组成与结构进行定义。

  • 数据组织、存储和管理:数据库管理系统会数据组织、存储和管理各种数据。

  • 数据操控功能:数据库管理系统增、删、改、查等功能。

  • 数据库的事务管理和运行管理:数据库管理系统会保证事务的正确运行,保证数据的安全性、完整性、多用户对数据并发使用和故障后的系统恢复。

  • 数据库的建立和维护:数据库管理系统会提供数据库的建立和维护功能,这些功能通常由一些应用程序或管理工具完成。

  • 其它功能:数据库管理系统与网络中其它软件系统的通信功能,一个数据库管理系统与另一个数据库管理系统或文件系统的数据转换功能,异构数据库之间的互访和互操作功能等。

4.数据库系统

数据库系统由数据库、数据库管理系统、应用程序和数据库管理员组成,是存储、管理、处理和维护数据的系统。

数据库系统可以用下图表示。其中数据库提供数据的存储功能;数据库管理系统系统数据的组织、存取、管理和维护等基础功能;数据库应用系统根据应用需求使用数据库;数据库管理员负责全面管理数据库系统。

二、数据管理技术的产生与发展

1.人工管理阶段

20 世纪 50 年代中期以前,计算机主要用于科学计算。当时的硬件状况是,外存只有纸袋、卡片、磁带,没有磁盘等直接存取的存储设备;软件状况是,没有操作系统,没有管理数据的专用软件;数据处理方式是批处理。

人工管理阶段具有以下特点:

  • 数据不保存。当时的计算机主要用于科学计算,不需要长期保存。
  • 应用程序管理数据。数据需要由应用程序自己设计、说明和管理。
  • 数据不共享。数据面向应用程序,因此多个程序涉及相同数据时,仍然需要各自定义和使用。
  • 数据不具有独立性。数据的逻辑结构或物理结构发生变化后,必须对应用程序做相应的修改,数据完全依赖于应用程序。

2.文件系统阶段

20 世纪 50 年代后期到 60 年代中期,这时硬件方面已有了磁盘、磁鼓等直接存取存储设备;软件方面,操作系统中已经有了专门的数据管理软件,一般称为文件系统;处理方式上不仅有了批处理,而且能够联机实时处理。

文件系统阶段具有以下特点:

  • 数据可以长期保存。数据长期保存在外存上。
  • 由文件系统管理数据。利用操作系统中的文件系统管理数据。
  • 数据共享性差,冗余度大。在文件系统中,一组文件基本上对应于一个应用程序,文件仍然是面向应用的。当不同的应用程序处理相同的数据时,也需要建立各自的文件,而不能共享,因此数据冗余度大,浪费存储空间。同时由于相同数据的重复存储、各自管理,容易造成4数据的不一致性,给数据的修改和维护带来了困难。
  • 数据独立性差。文件为指定的应用服务,依赖于应用程序,缺乏独立性。

3.数据库系统阶段

20 世纪 60 年代中期以来,以文件系统作为数据管理手段已经不能满足应用的需求,为解决多用户、多应用共享数据的需求,使数据为尽可能多的应用服务,数据库技术便应运而生,出现了统一管理数据的专门软件系统——数据库管理系统。

用数据库系统来管理数据比文件系统具有明显的优点,从文件系统到数据库系统标志着数据管理技术的飞跃。

三、数据库系统的特点

使用文件系统时,需要关注记录的结构和不同文件之间记录的联系,并且编程工作量大且复杂,开发速度慢;而数据库系统提供了功能强大的各项操作命令,大大提高了程序员的开发效率。

数据库系统的特点主要有以下几个方面:

1.数据结构化

由数据库系统自身实现整体数据的结构化,这是数据库系统与文件系统的本质区别。数据库中的数据不再仅仅针对某一个应用,而是面向整个系统;不仅数据内部是结构化的,而且整体是结构化的,数据之间是有联系的。

数据不再存储于简单的、只能由对应应用解释的文件;而是整体结构化,被数据库管理系统所维护。

2.数据共享度高

数据不再面向某个应用,而是面向整个系统,因此数据可以被多个用户、多个应用共享使用。数据共享可以大大减少数据冗余,节约存储空间,还可以避免数据之间的不相容和不一致。

3.数据独立性高

数据独立性包含物理独立性和逻辑独立性两个概念。

物理独立性:应用程序与数据的物理存储是相互独立的。

逻辑独立性:应用程序与数据库的逻辑结构是相互独立的。

4.数据由数据库管理系统统一管理和控制

数据库管理系统负责管理和控制数据,并提供安全性保护、完整性检查、并发控制、数据库恢复等功能。

四、总结

数据库系统的出现使得信息系统从以加工数据的程序为中心转向围绕共享的数据库为中心的新阶段。

五、SQL 的特点

SQL 之所以能够为用户和业界所接受并成为国际标准,是因为它是一个综合性的、功能极强同时又简洁易学的语言,它集数据查询、数据操控、数据定义和数据控制于一体,主要有以下几个特点:

1.综合统一

非关系数据库一旦投入运行,如果需要修改模式,必须停止现有数据库运行,转储数据,修改模式,编译,重装数据库,十分麻烦。

而 SQL 的一体性为数据库应用系统的开发提供了良好的环境,可以在数据库系统运行过程中随时地、逐步地修改模式,使系统具有良好地可扩展性。

此外,在关系模式中实体和联系都用关系表示,这种数据结构地单一性带来了数据操作符的统一性。

2.高度非过程化

用 SQL 进行数据操作时,只要提出“做什么”,而无须指明“怎么做”,则大大减轻了用户的负担,而且有利于提高数据独立性。

3.面向集合的操作方式

数据库采用面向集合的操作方式,进行增、删、改、查时无需一条条操作。

4.以同一种语法结构提供多种使用方式

SQL 既是独立的语言,又是嵌入式语言。既可以独立与数据库交互,也可以嵌入到高级语言程序中。

5.语言简洁,易学易用

SQL 功能极强,且语言十分简洁,易于学习和使用。

六、 SQL 的基本概念

支持 SQL 的关系数据库管理系统同样支持关系数据库的三级模式结构。

参考

  • 数据库系统概论