关系模型
关系型数据库系统是采用关系模型来组织数据的数据库系统。关系模型建立在严格的数学概念的基础上。
数据结构
关系模型的数据结构是基本表。涉及到的术语有:
记录:表中的一行。
字段:表中的一列。
主键:可以用来唯一标识一个记录的一个或多个字段。
主字段:主键包含的字段。
外键:与其他字段有关联的字段。
数据操作
关系模型的数据操作主要包括查询、插入、删除和更新这四种操作。关系模型中的数据操作都是集合操作。
完整性约束
关系模型的完整性约束包括三个方面:
实体完整性:主字段不能为空。
参照完整性:外键的取值要么为空,要么是关联字段中存在的值。
用户定义完整性:字段的取值必须满足用户定义的约束条件。
存储结构
在关系数据库的物理组织中,有的关系数据库管理系统中一个表对应一个操作系统文件,将物理数据组织交给操作系统完成;有的关系数据库管理系统从操作系统那里申请若干个大的文件,自己划分文件空间,组织表、索引等存储结构,并进行存储管理。
优点
- 关系模型与格式化模型不同,它是建立在严格的数学概念的基础上的。
- 关系模型的概念单一,其数据结构简单、清晰,用户易懂易用。
- 关系模型的存取路径对用户透明,从而具有更高的数据独立性、更好的安全保密性,也简化了程序员的工作和数据库开发建立的工作。
缺点
- 由于存储路径对用户是透明的,查询效率不如格式化数据模型。
- 为了提高性能,数据库管理系统必须对用户的查询请求进行优化,因此增加了开发数据库管理系统的难度。
数据字典
数据字典是关系型数据库内部的一组系统表,它记录了数据库中所有的定义信息,包括模式定义、视图定义、索引定义、约束定义、各类用户对数据库的操作权限、统计信息等。
关系数据库管理系统执行数据定义,实际上就是在更新数据字典里的相应信息。
结构化查询语言
结构化查询语言(Structured Query Language,SQL)是关系型数据库的标准语言,也是一个通用的、功能极强的语言。
功能
数据定义:定义数据库的三级模式结构。
数据操纵:对基本表和视图的数据进行查询、插入、删除和更新操作。
数据控制:对用户的访问权限加以控制,保证系统的安全性。
分类
- 数据定义语言(Data Definition Language,DDL):用于对数据库、基本表、视图、索引等的管理。
- 数据查询语言(Data Query Language,DQL):用于对基本表或视图数据的查询操作。
- 数据操纵语言(Data Manipulation Language,DML):用于对基本表或视图数据的插入、删除和更新操作。
- 数据控制语言(Data Control Language,DCL):用于实现权限控制,定义用户对数据库、基本表或字段的访问权限。
- 事务控制语言(Transaction Control Language,TCL):确保基本表的数据得以及时更新。
语句规范
- SQL语句不区分大小写,建议关键字、函数名等大写,数据库名、基本表名、视图名等小写。
- 每个SQL语句以“;”结尾,表示一个SQL语句结束。
- SQL语句有两种注释:
- 单行注释:#注释
- 多行注释:/* 注释 */
特点
- 综合统一:SQL集数据定义、数据操纵、数据控制于一体。
- 高度非过程化:用户无须了解存取路径,存取路径的选择以及SQL的操作过程由系统自动完成。
- 面向集合的操作方式:SQL采用集合操作方式,查询、插入、删除、更新操作的对象可以是记录的集合。
- 以同一种语法结构提供多种使用方式:作为独立的语言,SQL可以用于联机交互的使用方式,用户可以在终端键盘上直接键入SQL命令对数据库进行操作;作为嵌入式语言,SQL可以嵌入到高级语言程序中,供程序员设计程序时使用。
- 语言简洁,易学易用:SQL核心功能只用了9个动词,分别为:数据定义(create、alter、drop)、数据操纵(select、insert、delete、update)、数据控制(grant、revoke)。