关系数据库是支持关系模型的数据库系统。
关系模型的数据结构:关系;逻辑结构:扁平的二维表
是一组具有相同数据类型的值的集合。
例如:{a,b,c}、{0,1,2,3}等等
笛卡尔积是域上的一种集合运算。
给定一组域为:D1,D2,D3,…,Dn 【允许有重复的域】
笛卡尔积的计算公式为:
D 1 × D 2 × D 3 × … × D n = { ( d 1 , d 2 , d 3 , … , d n ) ∣ d i ∈ D i , i = 1 , 2 , … , n } D1×D2×D3×…×Dn = {\{(d1,d2,d3,…,dn) | di ∈Di, i = 1,2,…,n\}} D1×D2×D3×…×Dn={(d1,d2,d3,…,dn)∣di∈Di,i=1,2,…,n}
名词解释:
(d1,d2,d3,…,dn)叫做一个n元组(简称元组)
di叫做分量。
一个域允许的不同取值个数称为这个域的基数。
对于一个有限集Di,基数为mi,那么笛卡尔积D1×D2×D3×…×Dn的基数M就是:
M = Π n i = 1 m i \Pi{n \atop i=1}m_i Πi=1nmi
D1×D2×…×Dn的有限子集叫做在域D1、D2、…,Dn上的关系,表示为R(D1,D2,D3,…,Dn)
R表示关系的名字,n是关系的目或者度
关系是一张二维表,表中每行对应一个元组,表中每列对应一个域。
由于域可以相同,所以每列要有一个名字,这个名字称为属性。
n目关系必有n个属性
名词解释:
基本关系(基本表/基表)
是实际存在的表,是实际存储数据的逻辑展示
查询表
是查询结果对应的表
视图表
是由基本表或其他视图表导出的表,是虚表,不对应实际存储的数据
person{张清玫、刘逸、李勇、刘晨、王敏}
和specialty{计算机专业、信息专业}
。person这个域又分为两种属性,研究生和导师
。这种规范化的关系,简称为范式。
关系的描述称为关系模式。
R ( U , D , D O M , F ) R(U,D,DOM,F) R(U,D,DOM,F)
通常也可以简写为 R ( U ) R(U) R(U)
包括:查询和插入修改删除这两类。
SQL语言是高度的非过程化的语言。也就是说,如果要查询某个指标,关系数据库会为其选择最优的查询路径,用以提高查询效率
若属性(一个或一组)A是基本关系R的主属性,则A不能取空值。
设F是基本关系R的一个或者一组属性,但不是关系R的码,Ks是基本关系S的主码。如果F与Ks相对应,则称F是R的外码。并称基本关系R为参照关系,S为被参照关系(目标关系)。
若属性F是基本关系R的外码,它与基本关系S的主码Ks相对应(基本关系R和S不一定是不同的关系),则对于R中的每一个元组在F上的值为:
某一具体应用所涉及的数据必须满足语义要求
运算符 | 含义 |
---|---|
集合运算符 | |
∩ | 交集 |
∪ | 并集 |
- | 差集 |
× | 笛卡尔积 |
关系运算符 | |
σ | 选择 |
Π | 投影 |
∞ | 连接 |
÷ | 除 |
下面以 集合R和集合S为例
R ∪ S = { t ∣ t ∈ R ∪ t ∈ S } R∪S=\{t|t∈R∪t∈S\} R∪S={t∣t∈R∪t∈S}
R − S = { t ∣ t ∈ R ∩ t ∉ S } R - S = \{t|t∈R∩t∉S\} R−S={t∣t∈R∩t∈/S}
R ∩ S = { t ∣ t ∈ R ∩ t ∈ S } R∩S=\{t|t∈R∩t∈S\} R∩S={t∣t∈R∩t∈S}
R × S = { t r t s ∣ t r ∈ R ∩ t s ∈ S } R×S = \{t_rt_s|t_r∈R∩t_s∈S\} R×S={trts∣tr∈R∩ts∈S}