版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
库原据数理.关系数据库的基本概念关系模型概述关系数据库系统是支持关系模型的数据库系统关系模型由三部分组成:
数据结构关系操作集合关系的完整性。在关系模型中最重要的数据结构就是关系;关系就是一张表,设计关系就是设计一张表;元组是表中的一行;属性是表中的一列,属性名是给属性起的名字;关键字是表中的某个属性组,唯一确定一个元组;关系模式是对关系的描述,一般表示为关系名(属性1,属性2,···,属性n);外键是关系中不是该关系的关键字或只是关键字的一部分的某个属性或属性组合,但它同时是另一个关系的关键字;主表是以外键作为主键的表;从表指外键所在的表。在为数据库设计关系时,必须为每个关系指定一个关键字或主码,并且在该关系中,关键字的值不能为空,即关键字的值为空的元组在关系中是不允许存在的。在有些关系中关键字是由单个属性组成的,在另一些关系中关键字是由若干个属性的组合而构成的,即这种关系中的元组不能由任何一个属性惟一表示,必须由多个属性的组合才能惟一表示。关系模式是稳定的,而关系是随时间不断变化的,因为数据库中的数据在不断更新。一.单一的数据结构----关系在关系模型中,无论是实体还是实体之间的联系均由单一的结构类型即关系来表示。关系模型中数据的逻辑结构是一张二维表。二.关系操作关系操作指存储操作和检索操作,且以检索操作为核心。关系模型给出了关系操作的能力和特点,但不对DBMS的语言给出具体的语法要求。关系语言的特点是高度非过程化。用户不必请求DBA为他建立特殊的存取路径,存取路径由DBMS的优化机制来完成。此外,用户也不必求助于循环、递归来完成数据操作。上一页下一页退出要点目录
关系操作包括:θ选择、投影、连接、除、并、交、差等查询操作和增加操作、删除、修改操作,非关系的数据操作方式则为一次一记录方式。关系操作的特点是集合操作方式,即操作的对象和结果都是集合。这种操作方式也称为一次一集合的方式。三、关系的三类完整性约束关系模型的三类完整性是实体完整性、参照完整性和用户定义的完整性。实体完整性和参照完整性是关系模型必须满足的完整性约束条件,应该由关系自动支持。关系数据结构及形式化定义在关系模型中,无论是实体还是实体之间的联系均由单一的结构类型即关系来表示。1.关系定义:域(Domain)是值的集合。(属性的取值范围)例如:域名
基数姓名={张力,李红,王芳,刘吉}4职称={高工,工程师,助工,技术员}4X={男,女}2定义:给定一组域D1,D2,…,Dn,则D1×D2×…×Dn={(d1,d2,…,dn)|di∈Di,I=1,2,…,n}称为D1,D2,…,Dn的笛卡尔积。其中每一个(d1,d2,…,dn)叫做一个n元组(表中的一行,称为一个元组),元组中的每一个di是Di域中的一个值,称为一个分量(元组中的属性)。若Di(i=1,2,…,n)为有限集,其基数为mi(i=1,2,…,n),则D1×D2×…×Dn的基数为:m=m1*m2*…*mn其中:m=笛卡尔积的基数例:给定三个域:D1={王芳,刘吉},D2={高工,助工},D3={男,女},则D1×D2×D3笛卡尔积是D1,D2,D3各域的各元素间的一切可能的组合。如表1:姓名
职称
性别王芳
高工
男王芳
高工
女王芳
助工
男王芳
助工
女刘吉
高工
男刘吉
高工
女刘吉
助工
男刘吉
助工
女D1×D2×D3的基数m=2×2×2=8给定一组域D1,D2,…,Dn则D1×D2×…×D3的子集称为D1×D2×…×Dn上的关系。记作R(D1,D2,…,Dn),其中,R为关系名,n为关系R的度或目。当n=1时,称该关系为单元关系,当n=2时,称该关系为二元关系
定义根据实际情况,能从上表中找到两个元组。如表2。构成名为“职工”关系(表文件名)。可以记作:职工(姓名,职称,性别)表2关系中的某一属性组,若它的值唯一地标识一个元组(记录),则称该属性组为候选键(码)若一个关系有多个候选键,则选定其中一个为主键(码),主键的诸属性称为主属性。不包含在任何候选码中的属性称为非码属性。关系模式的所有属性组是这个关系模式的候选码,称为全码。关系可以有三种类型:基本关系(通常又称为基本表或基表)、查询表、视图表关系的性质
(1)任意两个元组(即二行)不能完全相同。(2)关系中元组(行)的次序是不重要的,可以任意交换。(3)属性(列)的次序也是不重要的,可以任意交换。(4)同一列中的分量,必须来自同一个域,是同类型的数据。(5)属性必须有不同的名称,但不同的属性可以出自相同的域,即它们的分量可以取值于同一个域。例如在表3,职业与兼职是两个不同的域,但都取自同一个域集合。
(6)每一分量必须是原子的,即是不可再分的数据项。满足上述性质的关系称为规范化关系。表32.关系的一阶谓词表示
定义:设有关系模式R,其原子谓词表示形式为P(t),其中P是谓词,t是个体变元,以元组为其表现形式。关系R与原子谓词P之间的关系如下:集合的表示方法为:R={t|P(t)}表示所有使谓词为真的元组t都属于关系R。4.1.3关系模式
定义
关系的描述称为关系模式。它可以形式化地表示为:R(U,D,dom,F)其中R为关系名,U为组成该关系的属性名集合,D为属性组U中所来自的域,dom为属性向域的映像集合。F为属性间数据的依赖关系集合。关系模式通常可以简记为R(U),通常简记为:关系名(属性名1,属性名2,…,属性n)。属性向域的映象常用属性的类型、长度来说明。如表2的职工关系其域可定义为:
DOMAIN姓名PICA(8)DOMAIN职称PICA(4)DOMAIN性别PICA(2)以上三行分别定义了三个域。姓名、职称、性别为三个域名;PIC说明域的数据类型和长度。某一时刻对应某个关系模式的内容称为相应模式的状态,它是元组的集合,称为关系。关系模式和关系常常统称为关系。对于关系数据库要分清型和值的概念。关系数据库的型即数据库描述,它包括若干域定义以及在这些域上定义的若干关系模式(是这些域的子集);数据库的值是这些关系模式在某一时刻对应的关系的集合。数据库的型亦称为数据库的内涵(二维表格的框架),数据库的值亦称为数据库的外延。关系模式是稳定的,而关系是随时间不断变化的,因为数据库中的数据在不断更新。
关系数据库模式多个关系的集合构成了关系数据库例:学生选课数据库系统的模式:由三个关系模式构成。S(S#,SN,SEX,SA,SD)C(C#,CN,PC#)S-C(S#,C#,G)四种基本数据操纵功能:(1)
数据检索(2)
数据插入(3)
数据删除(4)
数据修改对关系模型的数据操纵可描述为:(1)操纵的对象(2)基本操纵方式五种:属性指定、元组选择、关系合并、元组插入、元组删除
1.关系模式数据库系统的结构2.关系数据语言的分类
独立型宿主型3.关系数据语言与宿主语言的接口方式
显式过程调用隐式过程调用按系统固有语法调用关系数据库的用户接口和关系数据语言关系代数
关系数据库的数据操作分为查询和更新两类。查询语句用于各种检索操作,更新操作用于插入、删除和修改等操作。
关系查询语言根据其理论基础的不同分成两大类:1.关系代数语言:查询操作是以集合操作为基础运算的DML语言。2.关系演算语言:查询操作是以谓词演算为基础运算的DML语言。关系代数是以关系为运算对象的一组高级运算的集合。关系定义为元数相同的元组的集合。集合中的元素为元组,关系代数中的操作可分为两类:
传统的集合操作:并、差、交、笛卡尔积。
扩充的关系操作:投影,选择,联接和自然联接,除。关系代数的基本运算传统的集合运算主要指并、交、差、笛卡尔积四种运算。它们传统地用于两个集合之间的运算。当用于关系运算时,参加运算的关系必须是相容的和可并的,即它们应有相同的度(属性个数相等),且相应的属性值来自同一域。如下表中的关系R和S就是两个相容的关系。4.3.1传统的集合运算记作R∪S,由属于R和属于S的元组合并而得,但须除去重复的元组。可用于元组的插入操作。1.关系R与关系S之并2.关系R与关系S之差记作R一S,由属于R但不属于S的元组组成。可用于删除操作。记作R∩S,由属于R又属于S的元组组成。3.关系R与关系S之交
两个分别为n目和m目的关系R和S的广义笛卡尔积是一个(n+m)列的元组的集合。元组的前n列是关系R的一个元组,后m列是关系S的一个元组。若R有k1个元组,S有k2个元组,则关系R和关系S的广义笛卡尔积有k1╳k2个元组。记作:R╳S={trts|tr∈R∧ts∈S}4.广义笛卡尔积在存储操作中,并运算可实现插入;差运算可实现删除;修改相当于“删除加插入”。例:见P63例4-24-34.3.2专门的关系运算(选择、投影、连接、除)(1)选择运算性质:单目运算,即操作对象仅有一个关系。文字表示:SELECT<关系名>WHERE<条件>公式表示:<关系名>[<条件>]记为:σc(R)≡{t∣t属于R∧C(t)=true}C表示逻辑条件表达式,这个表达式按以下规则组成:αθβ
关系模型中θ表示大于、小于、等于、不等于、大于或等于、小于或等于这些比较运算符中的一种。作用:在关系的水平方向上选取符合给定条件的子集。其中的条件是以逻辑表达式给出的,该逻辑表达式的值为真的元组被选取。这是从行的角度进行的运算,即水平方向抽取元组。经过选择运算得到的结果可以形成新的关系,其关系模式不变,但其中元组的数目小于或等于原来的关系中的元组的个数,它是原关系的一个子集.例:找出关系GP中单价小于或等于1.80元的通用零件。
这实际上是从关系GP中找一个水平子集。用公式表示可写成:σ单价≤1.80(GP)≡{t∣t属于GP∧C(t)=true}性质:单目运算,即操作对象仅有一个关系。文字表示:∏[<属性表>](关系名)作用:在关系的垂直方向取含有给定属性的子集。注意:在属性表中可包括一至若干个属性。(2)投影运算从关系中挑选若干属性组成的新的关系称为投影。这是从列的角度进行运算。经过投影运算可以得到一个新关系,其关系所包含的属性个数往往比原关系少,或者属性的排列顺序不同。如果新关系中包含重复元组,则要删除重复元组
(2)投影运算例:列出关系P中所有产品的名称与型号。其公式应写为:∏[产品名,产品型号](P)
(2)投影运算注意:投影后,如出现内容完全相同的元组,应将重复的元组取消。所以投影不仅会取消一些列,也可能会取消某些行。例:找出所有选用了通用零件的产品号即取关系PGP在属性“产品号”上的投影:∏[产品号](PGP)如左图产品号P1P2 P4
(2)投影运算联接有三种类型:θ-连接(条件连接)自然连接半连接(3)连接JOIN运算性质:二目运算。θ联接是从关系R和S的笛卡尔积中选取属性值满足某一θ操作的元组。连接可看成是有选择的笛卡尔乘积。记为:RiθjS,这里i和j分别是关系R和S中第i个、第j个属性的序号。它的含义是:RiθjS≡
σiθ(n+j)(R×S)如果θ是等号“=”,该联接操作称为“等值联接”。
●
θ-连接例:给定两个关系R、S:RR.z=s.zS两个关系R和S的自然联接用RS表示。具体计算过程如下:
①计算R×S
②设R和S的公共属性是A1,……,Ak,挑选R×S中满足下列条件的那些元组。R.A1=S.A1,……,R.Ak=S.Ak
③去掉S.A1,……,S.Ak的这些列。●自然连接如果R与S的等值属性表中含有n(n≥1)个属性,则新关系P的原关系R与S的度数之间应满足以下条件:dp=dr+ds-n,选择R和S公共属性值均相等的元组,并去掉R×S中重复的公共属性列。如果两个关系中没有公共属性,那么其自然联接就转化为广义笛卡尔积操作。例:求选用通用零件号为GP1的零件单价及使用GP1的产品名称和型号。第一步可先将它们自然连接,得出新关系NEW=PGPP,NEWNEW1=σ零件号=’GP1’(NEW)NEW2=∏[零件名,单价,产品名,产品型号](NEW1)然后用选择和投影求得所需要的信息●半连接
两个关系R和S的半连接运算定义为:两个关系R和S的连接运算可以用半连接运算作为中间步骤来实现:例:求P与PGP自然连接。先对关系P与PGP进行半连接运算,一个连接运算可用半连接运算作为中间步骤来实现。它的意义在于减少参与连接运算的数据量半连接的结果如表PP,连接的结果如表PL。表PP表PLP66例4-8例4-9性质:二目运算,但被除数关系必须包含除数关系的全部属性。文字表示:<关系1>DIVIDEBY<关系2>公式表示:<关系1>/<关系2>作用:设T=R/S,由于R包含了S的全部属性,故可以表示为T=R(X,Y)/S(Y),其中:X、Y均可为单个属性或属性组。在商关系T中,只包含属性表X(或者说属性表Y已被除去)。但T中只允许保留这样的元组:当它们与S连接所组成的新元组全部能在原来的关系R中找到.(4)除法运算例:找出同时选用通用零件GP3与GP4和同时选用GP1、GP2、GP3的产品号。PG/S1=T1PG/S2=T2PGS1S2T1T2在关系代数运算中,把由基本操作经过有限次复合的式子称为关系代数表达式。这种表达式的结果仍然是一个关系。可以使用关系代数表达式表示各种数据查询操作。关系代数表达式及其应用实例例题:设教学库中有三个关系:
学生关系S(SNO,SNAME,SAGE,SEX)
学习关系SC(SNO,CNO,GRADE)
课程关系C(CNO,CNAME,TEACHER)
下面用关系代数表达式表达各个查询语句
1.检索学习课程号为C2的学生学号与成绩。3.检索选修课程名为MATHS的学生学号与姓名。上一页下一页退出要点目录4.检索选修课程号为C2或C4的学生学号。5.检索至少选修课程号为C2和C4的学生学号。6.检索不学C2课的学生姓名与年龄。7.检索学习全部课程的学生姓名。8.检索所学课程包含S3所学课程的学生学号。关系演算用谓词演算作为关系数据查询语言的思想,最早见于Kuhns的论文,而把它真正用于关系数据语言,提出关系演算概念的则是E.F.Cdd。他首先给出了关系演算语言ALPHA,把数理逻辑的谓词演算引入到关系运算中,就可以得到以关系演算为基础的运算。关系演算又可分为元组关系演算和域关系演算,前者以元组为变量,后者以属性为变量,分别称为元组演算和域演算。元组关系演算元组关系演算表达式的一般形式为:{t︱P(t)}。其中,t是元组变量,表示一个元数固定的元组;P是公式。{t︱P(t)}表示满足公式P的所有元组t的集合。定义4-3:关系演算的原子公式(简称原子公式)定义如下:在元组表达式中,公式由原子公式组成。原子公式有三种形式:上一页下一页退出要点目录(1)原子谓词R(u)是原子公式。其中,R是关系名,u是元组变量。它表示这样一个命题:“u是关系R的一个元组”。(2)u[i]θv[j]。其中,v和u是元组变量,θ是算术比较运算符,u[i]和v[j]分别是u的第i个分量和v的第j个分量。u[i]θv[j]表示这样一个命题:“元组u的第i个分量和v的第j个分量之间满足θ关系。”例如:s[1]<u[2]表示元组s的第1个分量值必须小于元组u的第2个分量值。(3)u[i]θa或aθv[j]。这里a是常量。s[i]θa表示命题:“元组s的第i个分量值与常量a之间满足θ关系。”例如:s[4]=3,表示元组s的第4个分量值为3。(4)原子公式仅有上面三种定义方式。上一页下一页退出要点目录在定义关系演算操作时,要用到“自由”和“约束”变量概念。
在一个公式中,如果元组变量未用存在量词或全称量词符号定义,那么称为自由元组变量,否则称为约束变量。约束变量类似于程序设计语言过程内部定义的局部变量,自由变量类似于过程外部定义的外部变量或全局变量。
上一页下一页退出要点目录公式的递归定义如下:1.每个原子公式是一个公式。其中的元组变量是自由变量。2.如果P1和P2是公式,那么P1、P1∨P2、P1∧P2、P1P2都是公式。分别表示如下命题:“P1不是真”,“P1或P2或两者是真”,“P1和P2都是真”,“若P1为真则P2为真”。公式中的元组变量性质如同在P1和P2中一样,依然是自由的或约束的。上一页下一页退出要点目录3.如果P1是公式,那么(s)(P1)也是公式。它表示这样一个命题,“存在一个元组s使得公式P1为真”。元组变量s在P1中是自由的,在(s)(P1)中是约束的。P1中其它元组变量的自由约束性,在(s)(P1)中也没有变化。4.如果P1是公式,那么(s)(P1)也是公式。它表示这样一个命题,“对于所有元组s都使得公式P1为真”。元组变量的自由约束性与前一个命题相同。上一页下一页退出要点目录5.在公式中各种运算符的优先级从高到低依次为:θ;和;∧和∨;。在公式外可以加括号,以改变上述优先顺序。6.公式只能由上述五种形式组成,除此之外构成的都不是公式。在元组表达式{t︱P(t)}中,t必须是P(t)中惟一的自由元组变量。上一页下一页退出要点目录
在元组关系演算的公式中,有下列三个等价的规则:1.P1∧P2等价于(P1∨P2);P1∨P2等价于(P1∧P2)2.(s)(P1(S))等价于(s)(P1(S))(s)(P1(S))等价于(s)(P1(S));3.P1P2等价于P1∨P2。关系模型一般提供五种基本操作:元组插入、元组删除、元组指定、属性指定和关系合并,对应于关系代数中的五种运算:并、差、选择、投影和笛卡尔积。这五种运算可用一阶谓词演算中的公式表示出来。设r目关系R和S目关系S的谓词分别为R(u)和S(v),用它们表示并、差、选择、投影和笛卡尔积。关系代数表达式到元组表达式的转换上一页下一页退出要点目录1.R∪S={t︱R(t)∨S(t)}2.R-S={t︱R(t)∧S(t)}3.R×S={t(r+s)︱(u(r))(v(s))(R(u)∧S(v)∧t[1]=u[1]∧t[2]=u[2]∧…t[r]=u[r]∧t[r+1]=v[1]∧t[2]=v[2]∧t[r+s]=v[s])}4.设投影操作是∏i1,i2,...,ik(R),那么元组表达式可写成:{t︱(u)(R(u)∧t[1]=u[i1]∧t[2]=u[i2]…∧t[k]=u[ik])}5.σF(R)={t︱R(t)∧F}表示。σ2=‘b’(R)可写成{t︱R(t)∧t[2]=‘d’}上一页下一页退出要点目录例题:设关系R和S都是二元关系,将∏1,4(σ2=3(R×S))转换成元组表达式。R×S={t(4)︱(u(2))(v(2))(R(u)∧S(v)∧t[1]=u[1
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025企业法律风险之合同履行过程中应注意的事项
- 2025湖南潭邵高速邵阳东互通第合同段施组
- 2025户外广告牌出租合同样本
- 班主任德育工作总结
- 课题申报参考:孪生数据驱动的退役产品人机协同拆解动态优化与自适应评估研究
- 课题申报参考:联合教研提升农村中小学科学教师跨学科素养的机制与策略研究
- 自我驱动学习培养学生自主能力的策略与实践案例
- 科技在提升个人防护装备舒适度中的应用
- 2024年家畜转基因胚胎项目资金需求报告代可行性研究报告
- 物联网时代下嵌入式系统的多层防护策略
- GB/T 16895.3-2024低压电气装置第5-54部分:电气设备的选择和安装接地配置和保护导体
- 计划合同部部长述职报告范文
- 人教版高一地理必修一期末试卷
- GJB9001C质量管理体系要求-培训专题培训课件
- 二手车车主寄售协议书范文范本
- 窗帘采购投标方案(技术方案)
- 五年级上册小数除法竖式计算练习300题及答案
- 语言规划讲义
- 生活用房设施施工方案模板
- 上海市杨浦区2022届初三中考二模英语试卷+答案
- GB/T 9755-2001合成树脂乳液外墙涂料
评论
0/150
提交评论