当前位置: 首页 > 操作系统&&数据库, 数据库 > 正文

C++自制Redis 数据库 (十六)【重构】数据库学习(二)

关系数据库

关系数据模型由,关系数据结构,关系数据操作,关系完整性约束组成

关系的定义

1.域

域是一组具有相同数据类型的值的集合。

2.笛卡尔积

笛卡尔积是域上一种集合的运算,有时构成笛卡尔积的域可能是无限集,这时笛卡尔积也是无限集。

3.关系

在笛卡尔积中取出一个子集,可以构成关系。若关系中的每个元素是关系中的元组,通常用T来表示,若关系中的某一个属性组的值能唯一地标识一个元组,则称该属性组为候选键,若一个关系有多个候选键,则选定其中一个为主键。

4.关系的性质

任意两个元组不能完全相同

关系中地元组次序是不重要地,即行地次序可以任意交换

关系中属性地次序也是不重要的,即列地次序也是可以任意交换的

同一列中地分量必须来自同一个域,是同一个类型的数据

属性必须有不同的名称,但不同的属性可出自相同的域,即他们都取同一个域的集合。

每一分量都必须取原子值,即每一个分量都是必须不可以再分的数据项

5.关系模式

关系是关系模式再某一个时刻的状态和内容。关系模式是静态的,稳定的,而关系是动态的,随时间不断变化的。

6.关系数据库

在关系模型中,实体以及实体之间的联系都是关系来表示的,再一个给定的应用领域中,所有实体以及实体之间联系的集合构成一个关系数据库。

7.关系数据库的操作

一般包括以下的一些操作:选择,投影,连接,除,并,交,差,笛卡尔积等

8.SQL 的特点

1.综合统一,使用方便

2.高度非过程化,提高了数据的独立性

3.面向集合的操作方式

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

5.简单易学,易学易用

存储过程和触发器

存储过程:

是指经过预先编译的SQL 的语句的集合,可以以一种可执行的形式永久地存储在数据库值之中。存储过程其实就类似于事务。

存储过程有以下一些优点:

1.运行速度快,服务器接收,编译语句,优化产生查询计划,数据库引擎执行查询,执行结果发回给客户程序。

2.模块化编程,增强代码的重用性和共享性。

3.减少网络通信量。

4.保证系统的安全性。

触发器:

触发器是指在满足某个特定条件时自动触发执行的专用存储过程,用于保证表中的数据遵循数据库设计者的约束。与存储过程不同的是,存储过程是通过名称,而被显示调用执行的,而触发器则是通过事件进行触发而被执行的。

数据库建立准则:

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

 

关系型数据概况,以上。

本文固定链接: http://zmrlinux.com/2016/03/02/c%e8%87%aa%e5%88%b6redis-%e6%95%b0%e6%8d%ae%e5%ba%93-%ef%bc%88%e5%8d%81%e4%ba%94%ef%bc%89%e3%80%90%e9%87%8d%e6%9e%84%e3%80%91%e6%95%b0%e6%8d%ae%e5%ba%93%e5%ad%a6%e4%b9%a0%ef%bc%88%e4%ba%8c%ef%bc%89/ | Kernel & Me

该日志由 root 于2016年03月02日发表在 操作系统&&数据库, 数据库 分类下, 你可以发表评论,并在保留原文地址及作者的情况下引用到你的网站或博客。
原创文章转载请注明: C++自制Redis 数据库 (十六)【重构】数据库学习(二) | Kernel & Me