文档介绍:第二章关系数据库
简介
,他因此获得1981年的ACM图灵奖。
关系理论是建立在集合代数理论基础上的,有着坚实的数学基础。
早期代表系统
SystemR:由IBM研制。
INGRES:由加州Berkeley分校研制。
目前主流的商业数据库系统
Oracle,Sybase,SQL Server,DB2。
Access,FoxPro,Foxbase。
关系数据模型
关系模型是关系数据库系统的基础,它由以下部分组成:
数据结构:关系(二维表)。关系模型的数据结构非常单一,无论是实体还是实体间的联系均由关系表示。
完整性约束:包括关系模型所要求的完整性约束(实体完整性约束,参照完整性约束),以及应用领域需要遵循的用户定义完整性约束。
关系数据模型(续I)
DEPT(D# , DN , DEAN)
S(S# , SN , SEX , AGE , D#)
C(C# , CN , PC# , CREDIT)
SC(S# , C# , GRADE)
PROF(P# , PN, D# , SAL)
TEACH(P# , C#)
学生
课程
选修
属于
系
教师
教授
工作
关系数据模型(续II)
关系操作:包括:选择、投影、连接、除、并、交、差等查询操作和增加、删除、修改操作两大部分。其特点是集合操作方式,操作的对象及结果都是集合。
关系数据语言:
关系代数:用对关系的运算来表达查询,需要指明所用操作。
关系演算:用谓词来表达查询,只需描述所需信息的特性。
元组关系演算:谓词变元的基本对象是元组变量。
域关系演算:谓词变元的基本对象是域变量。
SQL语言
关系数据模型(续III)
特点:
面向集合的存取方式。关系操作是集合操作,操作的对象及结果都是集合,是一次一集合(Set-at-a-time)的方式。而非关系型的数据操作方式是一次一记录(Record-at-a-time)。
非过程化。关系操作不要求用户提供存取路径,存取路径的选择由DBMS完成。用户只需提出“做什么”,无须说明“怎么做”,存取路径的选择和操作过程由系统自动完成。
数据结构
域(Domain)
一组具有相同的数据类型的值的集合。
如整数的集合、字符串的集合、全体学生的集合。
笛卡尔积(Cartesian Product)
给定一组域D1 , D2 ,…, Dn,这些域中可以有相同的。 D1 , D2 ,…, Dn的笛卡尔积为:
D1×D2×…×Dn = {(d1 , d2 , …, dn) | di∈Di , i=1,…,n}
笛卡尔积的每个元素(d1 , d2 , …, dn)称作一个n-元组(n-tuple)或简称元组。
ponent)。
若Di( i=1,…,n )为有限集,其基数(Cardinal number)为mi,则笛卡尔积的基数为
数据结构(续I)
例:
设D1为教师集合(Teacher)= {T1,T2}
D2为专业集合(Speciality)= {CS,MATH}
D3为学生集合(Student)= {S1,S2 ,S3}
则D1×D2×D3是个三元组集合,元组个数为2×2×3是所有可能的(教师,专业,学生)元组集合。
笛卡尔积可表为二维表的形式:
数据结构(续II)
Teacher
Speciality
Student
T1
CS
S1
T1
CS
S2
T1
CS
S3
T1
MATH
S1
T1
MATH
S2
T1
MATH
S3
T2
CS
S1
T2
CS
S2
T2
CS
S3
T2
MATH
S1
T2
MATH
S2
T2
MATH
S3
数据结构(续III)
关系
笛卡尔积D1×D2×…×Dn的子集叫做在域D1 , D2 ,…, Dn上的关系,用R(D1 , D2 ,…, Dn )表示。
R是关系的名字,n是关系的度或目(Degree)。当n=1时称为单元关系,当n=2时称为二元关系,依此类推。
关系可以表示为二维表,表的每一行对应一个元组,每列对应一个域。由于域有可能相同,为了加以区分,必须对每个列起一个名称,称为属性。n元关系必有n个属性。
关系TEACH(Teacher, Speciality, Student)
Teacher
Speciality
Student
T1
CS
S1
T1
CS
S2
T2
MATH
S3
属性
元组