关系数据库管理系统(RDBMS)

来源:互联网 发布:mac怎么对pdf进行编辑 编辑:程序博客网 时间:2024/05/16 14:23

数据库管理系统的关系模型
数据的基础项是关系
在这些表上的操作只产生关系
   一个关系表必须符合某些特定条件,才能成为关系模型的一部分

储存在单元中的数据必须是原子的。
   每个单元只能存储一条数据,叫信息原则(Information Principle)。如果存储多条则违反信息原则。特殊 情况下可能需要违反信息原则。

储存在列下的数据必须具有相同的数据类型。
每一行是唯一的(没有完全相同的行)。
列没有顺序。
行没有顺序
列有一个唯一性的名称。
 

完整性原则:它包括实体完整性原则(Entity integrity rule)和引用完整性原则(Referential integrity rule),如:

主键( Primary key )是能唯一标识行的一列或一组列的集合。
由多个列构成的主键称为连接键(Concatenated key)、组合键(Compound key),或称作为复合键(Composity key )。
 

另外就是外部键(Foreign key)是一个表中的一列或一组列,它们在其它表中作为主键而存在。一个表中的外部键被认为是对另外一个表中主键的引用。实体完整性原则简洁地表明主键不能全部或部分地空缺或为空,引用完整性原则简洁地表明一个外键必须为空或者它所引用的主键当前存在值相一致。

关系数据库系统(RDBMS)的组成
数据库系统内核(软件):RDBMS就是用来控制数据访问的操作系统。它的任务是按照一定的规则存储数据、检索数据及保护数据。

数据字典(内核用于管理数据库系统的数据结构):数据自动存放数据库中所有对象(如表,索引,视图等)所需的信息。

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

SQL全称是“结构化查询语言(Structured Query Language)”,是数据库中使用的标准数据查询语言,IBM公司最早使用在其开发的数据库系统中,1986年10月,美国ANSI对SQL进行规范后作为关系数据库管理系统的标准语言(ANSI X3. 135-1986),1987年得到国际标准化组织的支持成为国际标准。不过各种通行的数据库系统在实现过程中都对SQL规范作了某些扩充,所以实际上不同的数据库系统的SQL语言不能完全相互通用。

SQL是高级的非过程化編程语言,允许用户在高层数据结构上工作。他不要求用户指定对数据的存放方法,也不需要用户了解具体的数据存放方式,所以具有完全不同底层结构的不同数据库系统可以使用相同的SQL语言作为数据输入与管理的接口。它以记录集合作为操纵对象,所有SQL语句接受集合作为输入,返回集合作为输出,这种集合特性允许一条SQL语句的输出作为另一条SQL语句的输入,所以SQL语言可以嵌套,这使他具有极大的灵活性和强大的功能,在多数情况下,在其他语言中需要一大段程序实现的一个单独事件只需要一个SQL语句就可以达到目的,这也意味着用SQL语言可以写出非常复杂的语句。

SQL同時也是数据库文件格式的扩展名。

SQL语言包含4个部分:

数据查询语言(SELECT语句)
数据操纵语言(INSERT, UPDATE, DELETE语句)
数据定义语言(如CREATE, DROP等语句)
数据控制语言(如COMMIT, ROLLBACK等语句)
模式结构
外模式
模式
内模式
关系/表
一个拥有相同属性的元组的集合就是一个关系。
这通常通过表格来表示,表格以行和列的形式来组织数据。在一个关系中,所有被保存在一列中的数据应该在同一个范围(domain)内(如数据类型)。在关系模型中,元组不应该有任何的次序。这同时意味元组没有顺序且元组不应该向属性强加顺序。同样,行与列也是没有顺序的。

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

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

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

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

准则0

一个关系形的关系数据库管理系统必须能完全通过它的关系能力来管理数据库。

准则1信息准则

关系数据库管理系统的所有信息都应该在逻辑一级上用表中的值这一种方法显式的表示。

准则2保证访问准则

依靠表名、主码和列名的组合,保证能以逻辑方式访问关系数据库中的每个数据项。

准则3空值的系统化处理

全关系的关系数据库管理系统支持空值的概念,并用系统化的方法处理空值。

准则4基于关系模型的动态的联机数据字典

数据库的描述在逻辑级上和普通数据采用同样的表述方式。

准则5统一的数据子语言

一个关系数据库管理系统可以具有几种语言和多种终端访问方式,但必须有一种语言,它的语句可以表示为严格语法规定的字符串,并能全面的支持各种规则。

准则6视图更新准则

所有理论上可更新的视图也应该允许由系统更新。

准则7高级的插入、修改和删除操作

系统应该对各种操作进行查询优化。

准则8数据的物理独立性

无论数据库的数据在存储表示或存取方法上作任何变化,应用程序和终端活动都保持逻辑上的不变性。

准则9数据逻辑独立性

当对基本关系进行理论上信息不受损害的任何改变时,应用程序和终端活动都保持逻辑上的不变性。

准则10数据完整的独立性

关系数据库的完整性约束条件必须是用数据库语言定义并存储在数据字典中的。

准则11分布独立性

关系数据库管理系统在引入分布数据或数据重新分布时保持逻辑不变。

准则12无破坏准则

如果一个关系数据库管理系统具有一个低级语言,那么这个低级语言不能违背或绕过完整性准则。

原创粉丝点击