关系数据库

来自ITwiki,开放的信息技术大百科

关系数据库是建立在集合代数基础上,应用数学方法来处理数据库中的数据。现实世界中的各种实体以及实体之间的各种联系均用关系模型来表示。换句话说,关系数据库是建立在关系模型基础上的数据库。关系模型是由IBM公司的埃德加·科德于1970年首先提出的。现如今虽然对此模型有一些批评意见,但它还是数据存储的传统标准。标准数据查询语言SQL就是一种基于关系数据库的语言,这种语言执行对关系数据库中数据的检索和操作。

关系模型关系数据结构关系操作集合关系完整性约束三部分组成。

目录

实体关系模型

实体关系模型(Entity-Relationship Model),简称E-R Model是陈品山(Peter P.S Chen)博士于1976年提出的一套资料库的设计工具,他运用真实世界 中事物与关系的观念,来解释资料库中的抽象的资料架构。实体关系模型利用图形的方式(实体-关系图(Entity-Relationship Diagram))来表示资料库的概念设计,有助于设计过程中的构思及沟通讨论。

关系操作

关系模块中常用的操作包括:

  • 数据查询
    • 选择
    • 投影
    • 连接
  • 数据操作
  • 增加
  • 删除
  • 修改

完整性约束

完整性约束包括:

  • 实体完整性-表示实体对象(即表)的主键不能全部或部分地空缺或为空。
  • 参照完整性-表示对象(即表)的外键必须为空或者与它所引用的主键当前存放的值相一致。
  • 用户定义完整性

关系数据语言SQL

SQL(Structured Query Language)语言是1974年由Boyce和Chamberlin提出的一种介于关系代数关系演算之间的结构化查询语言,是一个通用的、功能极强的关系性数据库语言。

模式结构

  • 外模式
  • 模式
  • 内模式

关系(或称:表)

   一个拥有相同属性的元组的集合就是一个关系。

这通常通过表格来表示,表格以行和列的形式来组织数据。在一个关系中,所有被保存在一列中的数据应该在同一个范围(domain)内(如数据类型)。在关系模型中,元组不应该有任何的次序。这同时意味元组没有顺序且元组不应该向属性强加顺序。同样,行与列也是没有顺序的。

而这正是期望的结果,但并不是都被实现。SQL标准需列拥有被定义的顺序。所有在一个计算机中的数据不得不拥有一个顺序,因为计算机的内存是线状的。同时,当数据被返回,数据也拥有一个顺序(因为所有的传输协议都是线性的,并且足够巧合地,人类阅读也是以线性的模式进行)。这里的关键是顺序不会在系统中产生逻辑的不同。通常强加顺序会引起对性能影响,但是顺序不应改变数结库中的查询结果。实际上,某些被认为是“关系的”数据库管理系统(DBMSs)强加顺序使逻辑发生变化。

视图

索引

      一个索引是在关系数据库中提供一种对数据更快访问的一种方法。

索引可以在一个关系(表)中以任意属性组合的形式被创建。然后,当一个在关系中的元组需要被查找出来时,索引的作用就像书的目录(索引)一样工作,索引能被访问。索引能在不检查所有的元组的情况下,告诉数据库管理系统元组在什么位置。索引通常通过B+树来实现。

索引通常不会被认为是数据库的一部份,它们被认为是细节的一种实现,即使索引像数据库的其它部份一样都是由相同的程序组来实现。

全关系系统十二准则

全关系系统应该完全支持关系模型的所有特征。关系模型的奠基人埃德加·科德具体地给出了全关系系统应遵循的基本准则。

准则0 
一个关系形的关系数据库管理系统必须能完全通过它的关系能力来管理数据库。
准则1 信息准则 
关系数据库管理系统的所有信息都应该在逻辑一级上用表中的值这一种方法显式的表示。
准则2 保证访问准则 
依靠表名、主码和列名的组合,保证能以逻辑方式访问关系数据库中的每个数据项。
准则3 空值的系统化处理 
全关系的关系数据库管理系统支持空值的概念,并用系统化的方法处理空值。
准则4 基于关系模型的动态的联机数据字典 
数据库的描述在逻辑级上和普通数据采用同样的表述方式。
准则5 统一的数据子语言 
一个关系数据库管理系统可以具有几种语言和多种终端访问方式,但必须有一种语言,它的语句可以表示为严格语法规定的字符串,并能全面的支持各种规则。
准则6 视图更新准则 
所有理论上可更新的视图也应该允许由系统更新。
准则7 高级的插入、修改和删除操作 
系统应该对各种操作进行查询优化。
准则8 数据的物理独立性 
无论数据库的数据在存储表示或存取方法上作任何变化,应用程序和终端活动都保持逻辑上的不变性。
准则9 数据逻辑独立性 
当对基本关系进行理论上信息不受损害的任何改变时,应用程序和终端活动都保持逻辑上的不变性。
准则10 数据完整的独立性 
关系数据库的完整性约束条件必须是用数据库语言定义并存储在数据字典中的。
准则11 分布独立性 
关系数据库管理系统在引入分布数据或数据重新分布时保持逻辑不变。
准则12 无破坏准则 
如果一个关系数据库管理系统具有一个低级语言,那么这个低级语言不能违背或绕过完整性准则。

替代关系数据库模式包括heirarchical模型网络模型对象模型.


数据库管理系统(DBMS)中的主题

概念
数据库 | 数据库模型 | 关系数据库 | 关系模型 | 关系代数 | 主码 - 外码 - 代理码 - 超码
规范化 | 参照完整性 | 关系型DBMS | 分布式DBMS | ACID

对象
触发器 | 视图 | | 游标 | 事务日志 | 事务 | 索引 | 存储过程 | 分区

SQL中的主题
Select | Insert | Update | Merge | Delete | Join | Union | Create | Drop
语义比较

数据库管理系统实现

实现类型
Flat file | Deductive | Dimensional | 树状 | 面向对象 | 时态

产品
db4o | dBASE | Oracle | Caché | OpenLink Virtuoso | Sybase | Ingres | MySQL | SQLite | Microsoft SQL Server | Essbase | PostgreSQL | DB2 | Informix | Helix database | Teradata | 比较 - 关系型 | 比较 - 对象-关系型

组件
查询语言 | 查询优化 | 查询方法 | ODBC | JDBC
列表
面向对象数据库管理系统列表
关系数据库管理系统列表
全关系数据库管理系统列表