文档介绍:第2章关系数据库
关系模型具有严格的数学基础,应用数学方法处理数据
库中的数据,。模型的提出是在1970年,
“A Relational Model of Data for Shared Data Banks”开创了数据库系统的新纪元,系统、严格的提出了关系模型。
20世纪70年代末关系方法的理论研究已经取得了很大的成果,其中,有两大研究机构及其试验系统,一个是IBM公司的System R系统,另一个是美国加州大学伯克利分校的INGRES系统。1981年关系数据库的软件产品就问世了。
目前主流的商业数据库系统
Oracle,Informix(IBM收购),Sybase,SQL Server,DB2
Access,Foxpro,Foxbase
1
关系模型的组成
关系数据结构(实体及实体间的联系均用二维表来表示)
关系操作(查询及增、删、改操作两大部分)
关系代数语言
元组关系演算语言(ALPHA,QUEL)
关系数据语言关系演算语言
域关系演算语言(QBE)
关系代数和关系演算结合的语言(SQL)
关系的完整性(实体完整性,参照完整性,用户定义完整性)
2
基本概念
域(domain)
——一组具有相同数据类型的值的集合。
例:整数,实数,≤500的整数,性别(男、女)、字符串。
笛卡尔积(Cartesian product)
1. 定义
给定一组域D1,D2,…,Dn,则其笛卡积为:
D1 D2… Dn={(d1,d2,…,dn)dnDj,j=1,2,…,n}
2. 说明
1)(d1,…,dn)为集合中的一个元素,称为n元组(n–tuple),简称元组。
2)元组中每个值di称为分量
3
3)集合中元素无序
{a,b,c}={b,a,c}={c,b,a}
4)元组中分量有序
(a,b,c)≠(b,a,c) 属性及其值的对应性。
5)笛卡尔积称为一个二维表
例设有三个域:
D1=男士集合={刘英,刘加}
D2=女士集合={白雪,白灵}
D=儿童集合={刘学,刘水,刘牛}
则D1,D2,D3的笛卡尔积为如下一张二维表:
4
5
关系
1. 定义
D1 D2…Dn的任意子集称为在域D1,D2,…,Dn上的关系。
记为:R(D1,D2,…,Dn)
2. 说明
1)R为关系名,n为关系的目或度(degree);
2)关系是一张二维表;
3)可多个候选KEY(candidate key);
4)任选候选KEY之一为主码(primary key)。
例:可从上表中取出一个有意义子集作为一个关系
6
例:EMPL(ENO,ENAME,DNO)
DEPT(DNO,DNAME)
则对于EMPL中每个DNO的值必须为:
取空(说明该职工还未分配到某部门)
DEPT中某个元组的DNO值(该职工不可能分配到一个不存在的部门)
3. 用户定义完整性(user-defined integrity)
——用户定义的约束。
跳高≤100米, 人手≤2只
9
关系代数
概述
1、含义:用对关系的运算来表达查询的一种传统方式。
2、分类:
1)传统集合运算
并(∪),交(∩),差(–),笛卡尔积(×)
2)专门的关系运算
投影(),选择(),连接( ),除()
3、运算符
1)集合运算符:∪、∩、–、×
2)专门运算符:、、、
3)比较运算符:>、≥、<、≤、=、≠
4)逻辑运算符:、、
5)括号运算符:( )
10