关系模型

2018-03-16  本文已影响0人  我好菜啊_

两种非常重要的数据模型
1.关系数据模型
2.半结构化数据模型(XML)


高效性 易用性


关系模型的组成
(1) 关系数据结构:
关系模型中数据的逻辑结构是一张二维表,它由行和列组成。
(2) 关系操作集合:常用的关系操作包括查询、插入、删除、修改等
(3) 关系完整性约束:
<1> 实体完整性约束: 若属性A是基本关系R的主属性,则属性A不能取空值。(注意:说的是主属性,不仅仅指键属性)
<2> 参照完整性约束: 若属性(组)F是基本关系R的外码,它与基本关系S(或者R本身)的主码Ks相对应,则对于R中每个元组在F上的值必须为:空值(F的每个属性值均为空值)或者等于S中某个元组的主码值。
<3> 用户定义的完整性:针对某一具体应用所涉及的数据必须满足的语义要求,对关系数据库中的数据定义的约束条件。




在SQL中定义关系模式
1.数据定义:用于定义数据库模式的子语言
2.数据操纵:用于查询和更新数据库的子语言


SQL区分三类关系
1.表:存储的关系,存储在数据库中
2.视图:通过计算来定义的关系,不在数据库中存储,只在需要的时候被完整或部
分地构造
3。临时表:执行数据查询和更新时由SQL处理程序临时构造,处理结束后被删除
不会存储在数据库里


数据类型
char(n):最大为n个字符的固定长度字符串(未满的空间会被自动填充)
varchar(n):最大n个字符的可变长度字符串(结束符标记,未满空间不会被填充)
bit(n)
bit varying(n)
boolean:true,false,unknown
int/integer
shortint
float/real
double precision:精度更高
decimal(n,d)
numeric
date:DATE'1983-06-17'
time:TIME'15:00:02.5'



关系查询语言


关系代数

一种抽象的查询语言
关系模型数据操纵语言的一种传统的表达方式 ,使用户可以对数据进行查询和修改。

原子操作数:代表关系的变量和代表有限关系的常量
操作:并,交,差;选择(消除某些行),投影(消除某些列);组合两个关系元组:笛卡儿积(所有可能的连接),连接(有选择的连接);重命名
关系代数的表达式称为查询


并,交,差
前提:R和S的模式具有相同的属性集,且顺序相同(属性名不同,可以改名。)


投影:π{小小的下标:title,year,length}(Movies)
会对结果产生的关系进行去重


选择:
σ{小小的下标作为元组选择的条件:length>100 and studioName='fox'}(Movies)


运算施加在单个关系或一对关系上,运算结果也总是单个关系


注:
自然连接由笛卡尔积、选择、投影三个步骤实现的:
笛卡尔积:拼接元组
选择:选出公共属性上相同的行
投影:去掉一组公共属性

自然连接符合结合律:
(R1⋈R2)⋈ R3 等价于 R1⋈(R2⋈ R3)
可简记为 R1⋈R2⋈ R3


关系表达式树


重命名:ρ{小小的下标:S(A1,A2,A3……)}(R)
把关系R的名字改成S,并且属性的名字改成A1,A2……


并,差,选择,投影,积运算,重命名无法用其它操作来实现


一般参与运算(尤其连接运算)的数据越少速度越快(所以优化应该是可以先选择,投影再连接。)


代数表达式的线性符号


用关系代数表示约束
1.引用完整性:在一个关系属性A列中出现的值也必须在同一个或不同关系相应列
B中 π{下标A}(R)⊆π{下标B}(S)(下标中可以有多个属性)
2.键约束:键上值相同,其它属性不同的两个元组是不存在的
σ{下标:MS1.name=MS2.name and MS1.addr≠MS2.addr}(MS1XMS2)=Φ
(MS1,MS2都是movieStar重命名之后的关系)

上一篇 下一篇

猜你喜欢

热点阅读