您好,欢迎访问三七文档
数据库原理与应用信息管理教研室第3章关系数据库3.1关系模型概述3.2关系数据模型的基本术语与形式化定义3.3关系模型的完整性约束3.4关系代数3.1关系数据模型概述关系数据结构关系操作数据完整性约束3.1关系数据结构关系数据模型源于数学。用二维表来组织数据,这个二维表在关系数据库中就称为关系。关系数据库就是表或者说是关系的集合。关系系统要求让用户所感觉的数据库就是一张张表。在关系系统中,表是逻辑结构而不是物理结构。关系操作传统的关系运算:并(Union)交(Intersection)差(Difference)广义笛卡尔乘积(ExtendedCartesianProduct)专门的关系运算:选择(Select)投影(Project)连接(Join)除(Divide)关系模型的数据操作主要包括:查询、插入、删除和修改数据。是基于集合的操作,操作对象和操作结果都是集合(或关系)。是非过程化的。数据完整性约束数据完整性是指数据库中存储的数据是有意义的或正确的。主要包括三大类:实体完整性参照完整性用户定义的完整性关系数据模型的基本术语关系:关系就是二维表。并满足如下性质:关系表中的每一列都是不可再分的基本属性;表中的行、列次序并不重要。属性:表中的每一列是一个属性值集,列可以命名,称为属性名。值域:属性的取值范围。如,性别只能是‘男’和‘女’两个值。关系数据模型的基本术语(续)元组:表中的每一行称作是一个元组,它相当于一个记录值。分量:元组中的每一个属性值称为元组的一个分量,n元关系的每个元组有n个分量。关系模式:关系模式是关系的“型”或元组的结构共性的描述。关系模式实际上对应关系表的表头。设关系名为R,属性分别为A1,A2,…,An,则关系模式可以表示为:R(A1,A2,…,An)关系数据模型的基本术语(续)关系数据库:对应于一个关系模型的所有关系的集合称为关系数据库。候选码:能够惟一标识关系中的一个元组的一个属性或最小属性组。主码:指定候选码中的一个作为主码。关系数据模型的基本术语(续)主属性:包含在任一候选码中的属性称为是主属性。非主属性:不包含在任一候选码中的属性称为是非主属性。外码:如果某个属性不一定是所在关系的码,但是其他关系的码,则称该属性为外码。关系数据结构及其形式化定义1.关系的形式化定义笛卡尔积:设D1,D2,…,Dn为任意集合,定义笛卡尔积D1,D2,…,Dn为:D1×D2×…×Dn={(d1,d2,…,dn)|di∈Di,i=1,2,…,n}其中每一个元素(d1,d2,…,dn)称为一个n元组,简称元组。元组中每一个di称为是一个分量。笛卡儿乘积示例设:D1={计算机专业,信息科学专业}D2={张珊,李海,王宏}D3={男,女}则D1×D2×D3笛卡尔积为:D1×D2×D3={(计算机软件专业,张珊,男),(计算机软件专业,张珊,女),(计算机软件专业,李海,男),(计算机软件专业,李海,女),(计算机软件专业,王宏,男),(计算机软件专业,王宏,女),(信息科学专业,张珊,男),(信息科学专业,张珊,女),(信息科学专业,李海,男),(信息科学专业,李海,女),(信息科学专业,王宏,男),(信息科学专业,王宏,女)}笛卡尔积实际上就是一个二维表计算机专业信息科学专业D1张珊李海王宏D2×男女D3×计算机软件专业计算机软件专业计算机软件专业计算机软件专业计算机软件专业计算机软件专业信息科学专业信息科学专业信息科学专业信息科学专业信息科学专业信息科学专业=张珊张珊李海李海王宏王宏张珊张珊李海李海王宏王宏男女男女男女男女男女男女D1D2D3笛卡尔积D1,D2,…,Dn的任意一个子集称为D1,D2,…,Dn上的一个n元关系。形式化的关系定义同样可以把关系看成二维表,给表的每个列取一个名字,称为属性。n元关系有n个属性,一个关系中的属性的名字必须是唯一的。属性Di的取值范围(i=1,2,…,n)称为该属性的值域(domain)。从集合论的观点也可以将关系定义为:关系是一个有K个属性的元组的集合。2.对关系的限定关系中的每个分量都必须是不可再分的最小数据项。表中列的数据类型是固定的,即每个列中的分量是同类项的数据,来自相同的值域。不同的列的数据可以取自相同的值域,每个列称为一个属性,每个属性有不同的属性名。关系表中行、列的顺序不重要。同一个关系中元组不能重复。3.3关系模型的完整性约束3.3.1实体完整性3.3.2参照完整性3.3.3用户定义的完整性实体完整性实体完整性是保证关系中的每个元组都是可识别的和惟一的。而且表中不允许存在如下的记录:无主码值的记录主码值相同的记录参照完整性用于描述实体之间的联系。参照完整性一般是指多个实体(表)之间的关联关系。一般用外码实现。外码:取作本表(子表)属性之一的外表(父表,主表)主码。主码值先在主表中生成,后在子表中引用外码引用例1学生班属于(学号,姓名,班号,…)(班号,专业,人数,…)外码引用例2学生课程修课(学号,姓名,…)(课程号,课程名,…)(学号,课程号,成绩,…)外码引用例3职工(职工号,姓名,性别,直接领导)参照完整性规则参照完整性规则就是定义外码与主码之间的引用规则。对于外码,一般应符合如下要求:或者值为空;或者等于其所应用的关系中的某个元组的主码值。用户定义的完整性按应用语义,属性数据有:类型与长度限制:方便计算机操作取值范围限制:防止属性值与应用语义矛盾语义许可取值范围约束例:成绩取[0..100],{优、良、中、及格、不及格}3.4关系代数关系模型源于数学,关系是由元组构成的集合,可以通过关系的运算来表达查询要求,关系代数是关系操作语言的一种传统的表示方式,它是一种抽象的查询语言。关系代数的运算可分为两大类:传统的集合运算:广义笛卡尔积运算、并、交和差运算。专门的关系运算:选择、投影、连接和除运算。关系运算符运算符含义传统的集合运算∪并∩交-差×广义笛卡尔积专门的关系运算∏选择σ投影连接÷除关系运算符(续)运算符含义比较运算符大于小于=等于≠不等于≤小于等于≥大于等于逻辑运算符非∧与∨或3.4.1传统的集合运算传统的集合运算是二目运算,设关系R和S均是n元关系,且相应的属性值取自同一个值域,则可以定义三种运算:并运算(∪)交运算(∩)差运算(―)1.并运算关系R与关系S的并记为:R∪S={t|t∈R∨t∈S}其结果仍是n目关系,由属于R或属于S的元组组成。顾客号姓名性别年龄S01张宏男45S02李丽女34S03王敏女28顾客号姓名性别年龄S02李丽女34S04钱景男50S06王平女24顾客号姓名性别年龄S01张宏男45S02李丽女34S03王敏女28S04钱景男50S06王平女242.交运算关系R与关系S的交记为:R∩S={t|t∈R∧t∈S}其结果仍是n目关系,由属于R并且也属于S的元组组成。顾客号姓名性别年龄S01张宏男45S02李丽女34S03王敏女28顾客号姓名性别年龄S02李丽女34S04钱景男50S06王平女24顾客号姓名性别年龄S02李丽女343.差运算关系R与关系S的差记为:R-S={t|t∈R∧tS}其结果仍是n目关系,由属于R并且也属于S的元组组成。顾客号姓名性别年龄S01张宏男45S02李丽女34S03王敏女28顾客号姓名性别年龄S02李丽女34S04钱景男50S06王平女24顾客号姓名性别年龄S01张宏男45S03王敏女284.广义笛卡尔积两个分别为n目和m目的关系R和关系S的广义笛卡尔积是一个(m+n)列的元组的集合。元组的前n个列是关系R的一个元组,后m个列是关系S的一个元组。若R有K1个元组,S有K2个元组,则关系R和关系S的广义笛卡尔积有K1×K2个元组,记做:R×S={tr^ts|trR∧tsS}tr^ts表示由两个元组tr和ts前后有序连接而成的一个元组。广义笛卡尔积示例ABa1b1a2b2CDEc1d1e1c2d2e2c3d3e3ABCDEa1b1c1d1e1a1b1c2d2e2a1b1c3d3e3a2b2c1d1e1a2b2c2d2e2a2b2c3d3e33.4.2专门的关系运算专门的关系运算包括:投影、选择、连接和除等操作,其中第一个为一元操作,后三者为二元操作。选择:投影连接除三元一元1.选择(Selection)σF(R)={r|r∈R∧F(t)=‘真’}其中:σ是选择运算符,R是关系名,r是元组,F是逻辑表达式,取逻辑“真”值或“假”值。例,选择系为计算机系的学生信息:σSdept=‘计算机系’(学生表)2.投影(Projection)∏A(R)={r.A|r∈R}其中:∏是投影运算符,R是关系名,A是被投影的属性或属性组。r.A表示r这个元组中相应于属性(集)A的分量,也可以表示为r[A]。例如,选择sname,sdept两个列构成新关系:∏sname,sdept(Student)3.连接其中:A和B分别是关系R和S上可比的属性组,θ是比较运算符,连接运算从R和S的广义笛卡尔积R×S中选择(R关系)在A属性组上的值与(S关系)在B属性组上值满足比较运算符θ的元组。AθBRS={tr^ts|tr∈R∧ts∈S∧tr[B]θts[B]}等值连接当θ为“=”时的连接为等值连接,是从关系R与关系S的广义笛卡尔积中选取A,B属性值相等的那些元组。A=BRS={tr^ts|tr∈R∧ts∈S∧tr[B]=ts[B]}自然连接自然连接去掉结果中的重复列。自然连接与等值连接的差别为:自然连接要求相等的分量必须有共同的属性名,等值连接则不要求;自然连接要求把重复的属性名去掉,等值连接却不这样做。RS={tr^ts|tr∈R∧ts∈S∧tr[B]=ts[B]}4.除(Division)(1)除法的简单形式设关系S的属性是关系R的属性的一部分,则R÷S为这样一个关系:此关系的属性是由属于R但不属于S的所有属性组成;R÷S的任一元组都是R中某元组的一部分。但必须符合下列要求,即任取属于R÷S的一个元组t,则t与S的任一元组连接后,都为R中原有的一个元组。5.除(续)(2)除法的一般形式设有关系R(X,Y)和S(Y,Z),其中X、Y、Z为关系的属性组,则:R(X,Y)÷S(Y,Z)=R(X,Y)÷∏Y(S)4.除(续)象集:给定一个关系R(X,Y),X和Y为属性组。定义,当t[X]=x时,x在R中的象集为:Yx={t[Y]|tR∧t[X]=x}上式中:t[Y]和t[X]分别表示R中的元组t在属性组Y和X上的分量的集合。5.除(续)除法的一般形式:设有关系R(X,Y)和S(Y,Z),其中X、Y、Z为关系的属性组,则:R÷S={tr[X]|trR∧∏Y(S)Yx}除示例查询修c02号课程的学生的学号和成绩。∏sno,grade(σcno=‘c02’(SC))查询计算机系修c02号课程的学生的姓名和成绩。∏sname,grade(σcno=‘c02’(SC)σsdept=‘计算机系’(Student))查询修了第2学期课程的学生的姓名和所在系。∏sname,sdept(σsemester=2(Course)SCStudent)查询修了全部课程的学生的学号和姓名。∏sno,sname(Student(SC÷∏cno(Course)))示例
本文标题:第3章关系数据库
链接地址:https://www.777doc.com/doc-2155629 .html