赞
踩
本章内容:关系数据结构及形式化定义、关系操作、关系的完整性、关系代数
本章主要考点:概念、关系的完整性、■■关系代数
关系数据库,关系的完整性,关系代数(70页第6题会考一个类似的)
关系模型的组成
关系模型由数据结构、关系操作集合和关系完整性约束三部分组成
域:域是一组具有相同数据类型的值的集合
笛卡尔积:是域上的一种集合运算
笛卡尔积可表示一张二维表,表中都每行对应一个元组,表中的每一列的值来自一个属性。
候选码:若关系中的某一属性组的值能唯一的标识一个元组
主码:若一个关系中有多个候选码,则选定其中一个为主码
候选码的诸称为主属性。不包含在任何候选码中的属性称为非主属性或非码属性
全码:在最极端的情况下,关系模式中的所有属性是这个关系模式的候选码
全码:在最极端的情况下,关系模式中的所有属性是这个关系模式的候选码
关系的三种类型:基本关系(又称基本表、基表)、查询表、视图表
基本表是实际存在的表,它是实际存储数据的逻辑表示
查询表是查询结果对应的表
视图表是基本表或其他视图表导出的表,是虚表,不对应实际存储的数据
关系模式:关系的表述
关系是关系模式在某一时刻的状态或内容。关系模式是静态的、稳定的,而关系是动态的,随时间不断变化的,因为关系操作在不断地更新这数据库中的数据。
关系模型基本操作:1.查询操作;2.插入、删除、修改操作
查询操作分为:选择、投影、连接、除、并、差、交、笛卡尔积(5种基本操作)
关系操作特点:集合操作方式,即操作的对象和结果都是集合,也称一次一集合的方式。非关系数据模型的数据操作方式则是一次一记录的方式。
关系数据语言分类:1.关系代数语言(ISBL);2.关系演算语言(元组关系演算语言APLHA、QUEL,域关系演算语言QBE)3.具有关系代数和关系演算双重特点的语言(SQL)
SQL(Structured Query Language):结构化查询语言
sql具有丰富的查询功能,而且具有数据定义和数据控制功能,是集数据查询、数据定义(CREATE、DROP、ALTER)、数据操纵(INSERT、UPDATE、DELETE)和数据控制(GRANT、REVOKE)功能于一体
关系完整性
1.实体完整性2.参照完整性3.用户自定义完整性
实体完整性
若属性(一个或一组属性)A是基本关系R的主属性,则A不能取空值,所谓空值就是“不知道”或“不存在”或“无意义”的值。
主属性——所有候选码的属性,并不是主码不能为null
外码和主码
设F是基本关系R的一个或一组属性,但不是关系R的码,Ks是基本关系S的主码,如果F域Ks相对应,则称F是R的外码,并称基本关系R为参展关系,级别关系S为被参照关系或目标关系。
参照完整性规则
若属性(或属性组)F是基本关系R的外码,他与基本关系S的主码Ks相对应,(基本关系R和S不一定是不同的关系),则对于R中的每一个元组在F上的值必须:
或着取空值(F中的每个属性值均为空值)
或者等于S中的某个元组的主码值
关系模型的实体完整性在CREATE TABLE中用PRIMARY KEY定义。对单属性构成的码有两种说明方法,一种是列级约束条件,另一种是第一位表级约束条件。对多属性构成的码只有一种说明方法,即定义为表级约束条件
用户定义的完整性:针对某一具体关系数据库的约束条件,反映某一具体应用所涉及的数据 必须满足的语义要求
等值连接和自然连接的区别和联系:1.连接运算符是“=”的连接运算成为等值连接,他是从关系R和S的广义笛卡尔积中选取A、B属性值相等的那些元组;2.自然连接是一种特殊的等值连接,他要求两个关系中进行比较的分量必须是相同的属性组,并且结果中把重复的属性列去掉
关系代数
(1)R∪S仍为n目关系,由属于R或属于S的元组组成
(2)R - S 仍为n目关系,由属于R而不属于S的所有元组组成
(3)R∩S仍为n目关系,由既属于R又属于S的元组组成
(4)笛卡尔积:R×S 列:(n+m)列元组的集合,元组的前n列是关系R的一个元组,后m列是关系S的一个元组,行:k1×k2个元组
(5)选择:
选择运算符的含义:在关系R中选择满足给定条件的诸元组 σF(R) = {t|tÎR∧F(t)= '真'} F:选择条件,是一个逻辑表达式
例如:查询信息系(IS系)全体学生σSdept='IS' (Student)
(6)投影:
投影运算符的含义:从R中选择出若干属性列组成新的关系
πA(R) = { t[A] | tÎR } A是R中的属性列例如:查询学生的姓名和所在系,即求Student关系上学生姓名和所在系两个属性上的投影 πSname,Sdept(Student)
(7)连接:
连接运算的含义:从两个关系的笛卡尔积中选取属性间满足一定条件的元组
正在上传…重新上传取消分为等值连接、一般连接、自然连接
例如:关系R和关系S 如下所示:
(8)除:
给定关系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上投影的集合,记作: R÷S = {tr [X] | tr ÎR∧πY (S) Í Yx }例如:设关系R、S分别为下图的(a)和(b),R÷S的结果为图(c)
■例:设有一个SPJ数据库,包括S,P,J,SPJ四个关系模式:
S( SNO,SNAME,STATUS,CITY);
P(PNO,PNAME,COLOR,WEIGHT);
J(JNO,JNAME,CITY);
SPJ(SNO,PNO,JNO,QTY);
供应商表S由供应商号码(SNO)、供应商姓名(SNAME)、供应商状态(STATUS)、供应商所在城市(CITY)组成;零件表P由零件代码(PNO)、零件名(PNAME)、颜色(COLOR)、重量(WEIGHT)组成;工程项目表J由工程项目代码(JNO)、工程项目名(JNAME)、工程项目所在城市(CITY)组成;供应情况表SPJ由供应商代码(SNO)、零件代码(PNO)、工程项目代码(JNO)、供应数量(QTY)组成,表示某供应商供应某种零件给某工程项目的数量为QTY。
试用关系代数完成如下查询:
(1) 求供应工程J1零件的供应商号码SNO;
(2) 求供应工程J1零件P1的供应商号码SNO;
(3) 求供应工程J1零件为红色的供应商号码SNO;
(4) 求没有使用天津供应商生产的红色零件的工程号JNO;
(5) 求至少用了供应商S1所供应的全部零件的工程号JNO。
解:
(1)求供应工程J1零件的供应商号码SNO:
πSno(σJno=‘J1’(SPJ))
(2)求供应工程J1零件P1的供应商号码SNO:
πSno(σJno=‘J1’∧Pno=‘P1‘(SPJ))
(3)求供应工程J1零件为红色的供应商号码SNO:
πSno(σJno=‘J1‘(σCOLOR=’红‘(P)wv SPJ))或
πSno(σJno=‘J1‘(SPJ)wv(σCOLOR=’红‘(P))
(4)求没有使用天津供应商生产的红色零件的工程号JNO:
πJno(SPJ)- πJNO(σcity=‘天津’∧Color=‘红‘(Swv SPJwv P))或
πJno(SPJ)- πJNO(σcity=‘天津’(S)wv SPJ wv σColor=‘红‘(P))
(5)求至少用了供应商S1所供应的全部零件的工程号JNO:
πJno,Pno(SPJ)÷ πPno(σSno=‘S1‘(SPJ))
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。