"数据库教学课件 - 介绍关系数据库的基础知识,包括关系理论、关系模型、数据操纵语言、关系代数和关系演算。重点讨论了关系的基本概念,如域、笛卡尔积、元组、分量以及关系的定义。"
在关系数据库中,关系理论是基于集合代数的,这一理论在1970年代初期由E.F.Codd提出,他因此荣获了1981年的ACM图灵奖。Codd不仅定义了关系数据模型,还引入了关系代数和关系演算的概念,这些为后来成为标准的SQL(结构化查询语言)奠定了基础。早期的代表系统有IBM的System R和加州Berkeley分校的INGRES,而如今常见的商业数据库系统包括Oracle、Informix、Sybase、SQL Server、DB2以及桌面数据库系统如Access、Foxpro、Foxbase。
关系数据库的基础概念包括以下几个方面:
1. **域**(Domain):域是一组具有相同数据类型的值的集合,例如整数集合、字符串集合或是特定对象的集合。
2. **笛卡尔积**(Cartesian Product):当多个域D1, D2,..., Dn相乘时,其结果是所有可能的n元组(n-tuple)组合,每个元组由来自不同域的值组成。每个元组的值称为分量。例如,教师集合、学生集合和课程集合的笛卡尔积将生成所有可能的(教师,学生,课程)组合。
3. **关系**:在域D1, D2,..., Dn上的笛卡尔积的一个子集被称为关系,表示为R(D1, D2,..., Dn),其中R是关系名,n是关系的度或目。关系是笛卡尔积中具有特定含义的子集,通常以二维表格的形式呈现。
以关系"TEACH"为例,它包含三个属性(T, S, C)分别代表教师、学生和课程。关系TEACH中的每个元组代表一个特定的教课情况,如教师t1教学生s1课程c1,或者教师t2教学生s3课程c2等。
关系数据操纵语言(如SQL)提供了对这些关系进行操作的方法,包括选择(Selection)、投影(Projection)、并(Union)、交(Intersection)和连接(Join)等基本运算。此外,关系代数和关系演算是表达这些操作的两种形式,它们提供了无歧义地描述查询的数学工具。
在上述示例中,"除运算(Ⅰ)"即象集(Image Set)的概念被提及,它是指在关系R(X, Z)中,对于X上的某个特定值x,所有满足条件t[X]=x的元组t去掉X上的分量后剩下的部分,形成一个新的集合Zx。例如,如果我们想知道"张军"同学选修的所有课程,我们可以从关系中选择所有姓名为"张军"的元组,并忽略"姓名"列,保留"课程"列,得到"张军"的象集Zx,即他选修的课程列表。