




已阅读5页,还剩44页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
一、教学要求: 熟悉关系的数据模型及其相关的概念术语。 掌握关系的运算:并、差、交和选择、投影、连接等 掌握关键字和外关键字的概念。,第2章 关系数据库数学模型,二、教学重点: 关系的数据模型及其相关的概念术语。 关系的运算:并、差、交和选择、投影、连接,三、教学难点:关系代数表达式的运用技巧,引入:,前面介绍了数据模型的分类,基本层次模型、网状模型、 关系数据模型。那么 ,关系数据模型又是什么样的呢? 为什么关系数据模型能够成为当今市场的主流呢?,一、关系数据库概述,关系数据库系统是支持关系模型的数据库系统。 关系模型组成:关系数据结构、关系操作集合、完整性约束。(从形式上定义) 1、关系数据结构:二维表 2、关系操作集合:操作的对象和结果都是集合。 常用的关系操作:选择、投影、连接、除、并、交、差等查询操作和增、删、改更新操作。 关系代数语言-例如ISBL 关系数据语言 关系演算语言(元组关系演算语言(APLHA)和域关系 演算语言(QBE) 具有关系代数和关系演算双重特点的语言(SQL) 3、完整性约束 实体完整性、参照完整性、用户定义的完整性 。,二、 关系数据结构,一个关系,从用户的观点来说,它是一张二维表。整个关系在磁盘上以文件形式存储。 一行,表示一条记录。 一列,表示一个字段。,1、关系 域(值域):一组具有相同数据类型的值的集合。 笛卡尔积(carttesian product):给定一组域D1、D2、Dn,这些域可以完全相同,也可以部分或全部相同,D1、D2、Dn的笛卡尔积为 D1D2Dn= (d1,d2, , dn)diDi,i=1,2,n 元组:每一个(d1,d2,dn) 分量:每一个di 域基数:域中数据个数。(注:在域中相同的值被视为同一值) 笛卡尔积基数:各域基数的乘。 关系:D1D2Dn的子集叫作在域D1、D2、Dn上的关系,用 R(D1、D2、Dn)表示 度(目、元数):属性的个数就是关系的度。,例:0,1和0,1,1等价基数都为2,D1=男人的集合=张二,王三,李四 D2=女人的集合=丁梅,王芳 D3=孩子的集合=张英,王世,用二维表表示笛卡尔积D1 D2 D3,笛卡尔积基数 m= 3 2 2=12 二维表中元组的个数是12,家庭关系 (父亲,母亲,孩子),3目关系,笛卡尔积D1 D2 D3=(张二,丁梅,张英), (张二,王芳,王世),,属性:表的每列都对应一个域,由于域可以相同,必须为每列起一个名字,称为属性。 候选码(candidate key码):若关系中的某一属性组的值能唯一标识每一个元组,则称该属性组为候选码。 主码:(primary key)若一个关系中有多个候选码,则选定一个为主码。 主属性:(primary attribute)主码的诸属性。 非码属性:不包含在任何候选码中的属性。 全码:(all key)关系模式的所有属性组是这个关系模式的候选码。 外码:设F是基本关系R的一个或一组属性,但不是关系R的码,如果F与基本关系S的主码KS相对应,则称F是基本关系R的外码(foreign key)。,关系1 学生(学号,身份证号,姓名,性别,系名) 关系2 系别(系名,系主任,系学生人数) 关系3 存折(日期,账号,户名,单位,取款额,余额) 关系4 片约(影院名,日期,片名),课堂练习:试指出下列关系的候选码、主码、主属性、若有全码、外码,请指出。,关系1 学生(学号,身份证号,姓名,性别,系名) 关系2 系别(系名,系主任,系学生人数) 关系3 存折(日期,账号,户名,单位,取款额,余额) 关系4 片约(影院名,日期,片名),主码,关系类型:基本关系(基本表)、查询表(查询结果结应的表)和视图(虚表)。 基本关系性质: 列是同质的 不同列可出自同一个域 列的顺序无关 任意两个元组不能相同 行的顺序无关 分量必须取原子值(不能再分),人(张二,王三,李四,丁梅,王芳,张英,王世), 家庭关系 (父亲,母亲,孩子),定义:关系的描述,简记为R(U)。 R:关系名; U:属性名集合; 关系实际上就是关系模式在某一时刻的状态和内容。关系模式是型,关系是它的值。 即关系的结构就是关系模式,关系模式,关系:一个关系就是一个二维表,每个关系有一个关系名,在计算机中可以作为一个文件存储起来 关系模式:一组被命名的相关属性的集合 关系模型:为一个应用系统所建立的一组关系模式,每个模式之间的联系是通过公共属性(即具有相同定义域的属性)实现的。,关系的完整性,实体完整性、参照完整性、用户定义的完整性 1、实体完整性(entity integrity) 规则:若属性A是关系R的主属性,则属性A不能取空值。,例: 1 . 学生(学号,姓名,性别,专业号,年龄) 2. 专业(专业号,专业名) 3 . 课程(课程号,课程名) 4.选修(学号,课程号,成绩) 5. 存折(日期,账号,户名,单位,取款额,余额) 6. 片约(影院名,日期,片名),实体完整性,又称为行完整性。它把表中的每行都看作一个实体,要求所有行都具有惟一标识。在SQL Server中,可以通过建立PRIMARY KEY约束. 例如,对“客户信息表”,客户编号就可以作为主键,每个客户的编号能够惟一地确定该客户对应的记录信息,那么在输入数据时,则不能有相同客户编号的记录存在,通过对客户编号这一字段建立主键约束,可实现“客户信息表”的实体完整性。 CREATE TABLE 客户信息表 (客户编号 int, 客户名称 varchar(50), PRIMARY KEY (客户编号) ),2、参照完整性(referential integrity) 一个关系中的某个属性的取值应参照另一关系中的某个属性的取值。 定义:外码、参照关系、被参照关系 设F是基本关系R的一个或一组属性,但不是关系R的码,如果F与基本关系S的主码KS相对应,则称F是基本关系R的外码(foreign key),并称基本关系R为参照关系,基本关系S为被参照关系或目标关系。关系R和S不一定是不同的关系。,1 . 学生(学号,姓名,性别,专业号,年龄) 专业(专业号,专业名) 2 .学生(学号,姓名,性别,专业号,年龄) 课程(课程号,课程名) 选修(学号,课程号,成绩) 3.学生2(学号,姓名,性别,专业号,年龄,班长学号),规则:若属性(或属性组)F是基本关系R的外码,它与基本关系S的主码KS相对应,则对于R中每个元组在F上的值必须为: l 或者取空值(F的每个属性值均为空值) l 或者等于S中某个元组的主码值 前两条规则在使用时,应注意三点: l 外码和相应主码可以不同名,只要在同一域 l R和S可以是同一关系模式,表示属性间联系 l 外码F是否允许为空,视具体情况 前两类规则是由系统自动支持的,即:在建立关系(表)时,只要指明了主码、外码,系统将自动进行此类完整性检查。,规则:,参照完整性,又称为引用完整性。它保证主表(被参照表)中的数据与从表(参照表)中数据的一致性。在SQL Server中,它通过主键约束PRIMARY KEY和外键FOREIGN KEY 约束实现。在数据库管理系统中,保证数据库的完整性是非常重要的。参照完整性确保键值在所有表中一致。 在被参照的表中,当其主键值被其他表参照时,该行记录既不能被删除,也不允许被改变。,例:学生(学号,姓名,性别,班级,年龄,入学成绩,专业号) 专业(专业号,专业名),CREATE TABLE 专业 (专业号 varchar(10) PRIMARY KEY, 专业名 varchar(50) CREATE TABLE 学生 ( 学号 int PRIMARY KEY,姓名 varchar(50), 性别 bit, 班级 varchar(50),年龄 INT, 入学成绩 float, 专业号 varchar(10) FOREIGN KEY REFERENCES 专业(专业号), ),3.用户定义的完整性(user-defined integrity),例: 定义一个关系S1(SNO,AGE),要求“年龄大于等于15,且小于等于25” 定义一个关系S2(SNO,SEX,NAME),要求SEX为“男”或“女” 定义一个关系S3(SNO,NAME,ADDRESS,TEL),ADDRESS不为空,TEL(字符型):位数为8位,且第一位数字为8,附加约束用户定义的约束 某些属性的取值有特定的要求 这是针对某一应用环境的完整性约束条件,它反映了某一具体应用所涉及的数据应满足的要求。系统提供定义和检验这类规则的机制(一般在建立表的同时进行定义),其目的是用统一的方式由系统来处理它们,不再由应用程序来完成这项工作。,用户定义的完整性,例: CREATE TABLE 学生 ( 记录编号 int IDENTITY(1,1), -定义该列为标识列 姓名 varchar(50) NOT NULL, 性别 bit DEFAULT(0), -定义该列的默认值为0 班级 varchar(50) NOT NULL, 入学成绩 float DEFAULT(0), 所属院系 int NOT NULL PRIMARY KEY (记录编号), UNIQUE (姓名), CHECK (入学成绩=0) ),小节:,关系模型组成: 关系数据结构 关系操作集合 完整性约束 习题类型: 1.试指出下列关系的候选码、主码、主属性、若有全码、外码,用-标出。 2.找出下列一组关系中的主码,外码,指出哪个是参照关系, 哪个是被参照关系,三、关系代数,数据库的核心应用是数据库的查询 查询语言 用户用来从数据库中请求获取信息的语言 关系代数是一种抽象的查询语言,是用对关系的运算来表达查询的。 运算的三个要素:运算对象、运算符、运算结果 关系代数运算: 运算对象:关系 运算结果:关系 运算符:集合运算符、专门的关系运算符、算术比较符和逻辑运算符。,关系代数运算符,几个记号及举例,R(A1,A2,An) : 关系模式 例:R(C,D,E) , S(A,B,C), STUDENT(SNO,SNAME,SSEX,SDEPT,SAGE) R : 关系 例:关系R和关系 S、关系STUDENT tR : t是R的一个元组 例:a1,b1,c1是R的一个元组,95001,赵四,女,CS,19是STUDENT的一个元组 tAi : 元组t中相应于属性Ai的一个分量 例: b1是元组a1,b1,c1中相应于属性D的一个分量 : 若A= Ai1, Ai2, Aik ,其中Ai1, Ai2, Aik是A1, A2, An的一部分,A是属性列, 是A1, A2, An中去掉 Ai1, Ai2, Aik 后剩余的若干属性列 例: A=C,=D,E tA : tA= tAi1, tAi2 ,tAik 表示元组t中相应于属性A上诸分量的集合 例: tC = a1, a1, a2,关系R,关系S,关系STUDENT,几个记号及举例,关系R,关系S, trts : R是n目关系S是m目关系, trts是元组的连接,是一个n+m列的元组 trts :a1,b2,c2, a1,b3,c2是一个n+m列的元组 象集Zx : 给定一个关系R(X,Z),X和Z是属性组,定义当tX=x时, x在R中的象集为 Zx= tZ tR , tX=x 它表示R中属性组X上值为x的诸元组在Z上分量的集合 例: 对于关系R,a1的 象集(b1,c1),(b2,c2),a2的 象集(b2,c1) 对于关系P,2,B的 象集(C,D),(E,F),9,A的 象集(E,F),(D,E),7,G的 象集(E,F),关系P,(一) 传统的集合运算: 1.并(Union):运算符为“” RS= t tR tS 例:T1=R1R2 表示关系R1,R2的并运算,生成一个新的关系T1 . 例如:R1=1、2、3、4、5 R2=3、4、5、6、7 T1=R1R2=1、2、3、4、5、6、7,关系运算有两大类:传统的集合运算,专门的关系运算,2.差(difference): 运算符为“- ” RS= t tRtS 例:T2=R1-S1 表示关系R1,S1的差运算,生成一个新的关系T2 例如: R1=红、黄、绿 S1=红、黑、紫 T2=R1-S1=黄、绿,3.交(intersection) 运算符为“ ” RS= ttRtS T3R1R2 表示关系R1,R2的交运算,生成一个新的关系T3 例如:R1=红、黄、绿 S1=红、黑、紫 T3R1R2 =红,4。 广义笛卡尔积(extended cartesian product) RS=trts trRtsS 两个分别为N和M目的关系R和S的广义笛卡尔积是一个(N+ M)列的元组的集合,元组的前N列是关系R的一个元组,后M列是关系S的一个元组.若R有K1个元组,若S有K2个元组,则R和S的广义笛卡尔积有K1 K2个元组.,R,S,RS,RS,RS,R-S,传统集合运算,RS,注意:,并、交、差运算要求:关系R和关系S具有相同的目,且相应属性取自同一个域。 广义笛卡尔积没有这样的要求,课堂练习: 1 设有关系R和关系S 关系R 关系S,计算:RS、R-S、 S-R、 RS、RS,课堂作,STUDENT,COURSE,SC,(二) 专门的关系运算,学生-课程数据库有三个表,模式为: STUDENT(SNO,SNAME,SSEX,SAGE,SDEPT) COURSE(CNO,CNAME,CPNO,CCREDIT) SC(SNO,CNO,GRADE),在关系R中选择满足给定条件(使逻辑表达式F为真)的诸元组 F(R)= ttRF(t)=真 F为选择条件,基本形式: X1Y1X2Y2 , 其中是比较运算符, 是逻辑运算符, X1等是属性名、常量或简单函数( X1、 Y1 不能同时为常数), 表示可以重复下去。这是从行的角度进行的运算。 例:SDEPT=IS(STUDENT) /sage 19 sdept = CS(student) / SAGE20(STUDENT) / 520(STUDENT)/ sno=95001 CNO=2(SC)/ sdept CS(student),选择(selection),STUDENT,SAGE20(STUDENT),列号5,从R中选择若干属性列组成新的关系。记作 A(R)= tA tR 其中A为R中的属性列 从列的角度进行的运算 例:SDEPT(STUDENT) 注:投影之后不仅取消了原关系中的某些列,还可能取消了某些元组。 例: SDEPT(STUDENT)/sno,sname(sdept = CS(student) )/ 2,5(STUDENT)/ cno,cname(COURSE)/ cno (ccredit = 3(COURSE) ),投影(projection),STUDENT, sdept (STUDENT),SDT,从两个关系的笛卡尔积中选取属性间满足一定条件的元组,记作 R S = trts trRtsStr A ts B AB A和B分别为同一个域上且可比的属性组. 是比较运算符,连接(join) 见图,:CE(一般连接),RS,等值连接:为“=”的连接运算。 R S = trts trRtsStr A =ts B AB 自然连接: 特殊的等值连接(要求两个关系中进行比较的分量必须是相同的属性组,并且要在结果中把重复的属性去掉。记作 R S = trts trRtsStr B =ts B,注:从行和列的角度进行的运算 注:从RS的结果集中,选取在某些公共属性上具有相同值的元组,组成新的关系 R、S的公共属性(名称及类型相同) 重复的列去掉,连接(join) 见图,R,S,:CE(一般连接),: R.B=S.B(等值连接),: C=E (等值连接),自然连接,连接运算举例,R S CE,R S R.B=S.B,R S C=E,R S,1 设有关系R和关系S 关系R 关系S 计算:3,2(S)、B5(R)、 SS、R S、,课堂练习:,除运算,给定关系R(X,Y)和S(Y,Z),其中X,Y,Z为属性组,R中的Y和S中的Y可以有不同的属性名,但必须出自相同的域。R 与S的除运算得到一个新的关系P(X),其中P是R中满足下列条件的元组在X属性列上的投影:元组在X上分量值x的象集Yx包含S在Y上投影的集合。记作: RS= trXtrR Yx Y(S) 其中Yx为x在 R中的象集,x= trX,=,在除运算中,若被除关系R为m元关系,除关系S为n元关系,则运算结果为一个m-n元关系。(R S 或对S作一相关属性的投影处理) 在进行除运算时,先将被除关系中的m-n列按值的不同分成若干组,然后检查每个组,看m-n列以外的那些列中是否包含除关系的全部元组,包含则取该m-n列的值作为商关系的一个元组,否则不取。,查询语句的关系代数表达式的一般形式, A ( F(R S)或 A( F(R S) 首先把涉及到的关系取来,执行笛卡尔积或自然连接操作得到一张大的表格,然后对表格执行水平分割(选择操作)和垂直分割(投影操作),F为选择条件, X1Y1X2Y2 , 其中是比较运算符, 是逻辑运算符, X1等是属性名、常量或简单函数 例:Sdept=CS Sage20 SDEPT=IS(STUDENT)/ SAGE20(STUDENT) / Ssex (STUDENT)(设SSEX为逻辑型数据),A是若干属性列:一个或多个,之间用逗号隔开 例: cno,cname(COURSE),但当查询涉及到否定或全部值时,上述形式就不能表达了,就要用到差操作或除法操作, SNO,SSEX,SDEPT(SDEPT CS(student) ),学生-课程数据库有三个表,模式为: STUDENT(SNO,SNAME,SSEX,SAGE,SDEPT) COURSE(CNO,CNAME,CPNO,CCREDIT) SC(SNO,CNO,GRADE),多对多的联系的不行(要用差操作),一对多的可以。,通过教务管理模式实例完成关系代数操作。设关系模式为: STUDENT (SNO(学号 ),SNAME(姓名),SEX(性别),CLASS(班级名),AGE(年龄) TEACHER (TNO(职工号),TNAME(教师名),DNAME(系名),SPECIALTY(专长) COURSE(CNO(课程号),CNAME(课程名),CREDIT(学分),HOURS(学时) STC(SNO,TNO,CNO,SCORE(成绩) 查找“物理8”班,年龄为18至20岁的学生姓名。 查找选修课程名为“数据库原理”的学生名单,该课程的学习成绩在85分以上,课堂练习,3. 查找同时选修两门课程,其课程号为 C01和C02的学生学号。 很容易犯逻辑性错误,分析一下下列查询表达式是否正确? SNO ( CNO C01 CNO= C02 (STC)) 其错误在什么地方?其正确的表示为? 4. 查找讲授课程名为“UNIX操作系统”的教师信息。,课堂练习答案,1。 SNAME (CLASS=程8 AGE=18 AGE 85 (STC CNO (CNAME 数据库原理 ( COURSE ) 或 SNAME, (CNAME 数据库原理 SCORE 85 ( ST
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年辅警招聘考试综合提升试卷及答案详解(名校卷)
- (2025)辅警招聘考试试题库及答案详解1套
- 2022年2月马鞍山市直遴选面试真题回忆版
- 2025年行政执法基础知识综合练习题及一套完整答案详解
- 2024年甘肃陕煤集团韩城煤矿招聘笔试真题含答案详解(精练)
- 2025年皖北煤电集团总医院招聘24人笔试备考题库完整参考答案详解
- 安全员明年工作计划
- 丽江云南丽江市交通运输综合行政执法支队执法辅助人员招聘6人笔试历年参考题库及1套完整答案详解
- 2025项目经理聘用合同2
- Iodomethane-d1-NSC-9366-d-sub-1-sub-生命科学试剂-MCE
- 幼儿教师信息素养养成(运城幼儿师范高等专科学校)知到智慧树答案
- 女孩青春期生理健康教育
- 2024年物理实验室安全教育:从理论到实践
- 《有机化学》课件-第九章 醛和酮
- 典型质量问题培训
- 文献管理与信息分析学习通超星期末考试答案章节答案2024年
- 新型材料6G关键技术
- 公路水泥混凝土路面施工技术规范(JTGF30-2024)
- 高三英语一轮复习备考实践经验分享 课件
- 代销销售合同协议书
- 广东省珠海市香洲区2023-2024学年七年级下学期期末历史试题(原卷版)
评论
0/150
提交评论