关系数据结构关系定义关系性质关系模式关系的完整性实体ppt课件.ppt_第1页
关系数据结构关系定义关系性质关系模式关系的完整性实体ppt课件.ppt_第2页
关系数据结构关系定义关系性质关系模式关系的完整性实体ppt课件.ppt_第3页
关系数据结构关系定义关系性质关系模式关系的完整性实体ppt课件.ppt_第4页
关系数据结构关系定义关系性质关系模式关系的完整性实体ppt课件.ppt_第5页
已阅读5页,还剩83页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

2020 3 28 数据库原理 1 关系数据结构关系的完整性实体完整性参照完整性用户定义完整性 2020 3 28 数据库原理 2 关系数据库系统研究进展 1970年E F Codd ARelationalModelofDataforSharedDataBanks 1978年IBM公司QUERYBYEXAMPLE1979年IBM公司SYSTEMR1981年IBM公司SQL DSORACLE公司ORACLERDBMSINFOMIX公司INFOMIXSYBASE公司SYBASEMicroSoft公司SQL SERVER 奠定关系数据库的理论基础 2020 3 28 数据库原理 3 2 1关系模型概述 关系模型 关系数据结构 关系操作集合 关系完整性约束 数据结构单一 实体间的联系用关系表示 数据的逻辑结构是一张二维表 集合操作方式 即操作对象和结构都是集合 实体完整性 参照完整性和用户完整性 2020 3 28 数据库原理 4 2020 3 28 数据库原理 5 关系数据语言 关系代数语言 关系演算语言 具有关系代数和关系演算双重特点的语言 元组关系演算语言 域关系演算语言 例如 ISBL 例如 APLHA QUEL 例如 QBE 例如 SQL 2020 3 28 数据库原理 6 2 2关系数据结构及形式化定义 2 2 1关系 域 Domain 定义2 1域是一组具有相同数据类型的值的集合 例 D1 A 2 3 4 5 10 J Q K 在关系中用域来表示属性的取值范围域中所包含的值的个数称域的基数 用m表示 D3 数据库原理 面向对象数据库技术 M2 4 M3 2 M1 13 2020 3 28 数据库原理 7 其中每一个元素 d1 d2 dn 叫作一个n元组 n Tuple 或简称为元组 Tuple 元素中的每一个值di叫作一个分量 Component 定义2 2给定一组域D1 D2 Dn 允许部分或全部相同 D1 D2 Dn的笛卡尔积为 D1 D2 Dn d1 d2 dn di Dj j 1 2 n 笛卡尔积 CartesianProduct 笛卡尔积也是一个集合 2020 3 28 数据库原理 8 设有域 D1 A 2 3 J Q K 基数 13 4 52 笛卡尔积可表示为一个二维表 表中的每行对应一个元组 表中的每列对应一个域 则笛卡尔积 2020 3 28 数据库原理 9 3 关系 relation 定义2 3D1 D2 Dn的子集称为在域D1 D2 Dn上的关系 表示为R D1 D2 Dn 其中 R为关系的名 n为关系的度或目 Degree 关系中每个元素是关系中的元组 通常用t表示 当n 1时 称为单元关系 UnaryRelation 当n 2时 称为二元关系 BinaryRelation 同样可以把关系看作是一个二维表 每一行对应一个元组 表的每一列对应一个域 每个域起一个名字 称为属性 2020 3 28 数据库原理 10 关系类型 基本关系 查询表 视图表 实际存在的表 是实际存储数据的逻辑表示 查询结果对应的表 由基本表或其他视图表导出的表 是虚表 不对应实际存储的数据 2020 3 28 数据库原理 11 例 设D1 男人集合 MAN 王强 李东 张兵 D2 女人集合 WOMAN 赵红 吴芳 D3 儿童集合 CHILD 王辉 李明 李亮 1 求上面三个集合的笛卡儿积 2 构造一个家庭关系 可表示为 FAMILY MAN WOMAN CHILD 2020 3 28 数据库原理 12 主码的诸属性称为主属性 若一个关系有多个候选码 则选定其中的一个为主码 关系R的某一属性组X不是R的码 但是其他某一关系的码 称X为R的外部码 5 主码 Primarykey 6 主属性 Primeattribute 若关系中的某一属性组的值能唯一的标识一个元组 称该属性组为候选码 4 候选码 Candidatekey 7 非码属性 Non keyattribute 8 全码 All key 不包含在任何候选码中的属性称为非码属性 9 外部码 foreignkey 关系模式的所有属性组是这个关系模式的候选码 称为全码 2020 3 28 数据库原理 13 例 学生 S S SNAME SA SD 课程 C C CNAME 选课 SC S C GR S 候选码 S SNAME 主码 S 假设没有学生重名 C 候选码 C 主码 C SC 候选码 S C 主码 S C 外部码 S C 2020 3 28 数据库原理 14 列是同质的 Homogeneous 即每一列中的分量是同一类型的数据 来自同一个域 不同的列可对应于同一个域 但给予不同的属性名 列的顺序无所谓 即列的次序可以任意交换 任意两个元组不能完全相同 即无重复行 行的顺序无所谓 即行的次序可以任意交换 分量必须取原子值 即每一个分量都必须是不可分的数据项 基本关系性质 注 许多关系数据产品 不完全具备该性质 2020 3 28 数据库原理 15 2 2 2关系模式 定义2 4对关系的描述称为关系模式 记为R U D dom F 其中 R为关系名 U为组成该关系的属性名集合 D为U中属性所来自的域 dom为属性向域的映象集合 F为属性间数据的依赖关系集合 S S SNAME SA SD 关系模式通常简记为 R U 关系模式就是关系的框架 表框架 它是对关系结构的描述域名及属性向域的映象常直接说明为属性的类型 长度 2020 3 28 数据库原理 16 学生关系模式S S SNAME AGE SEX 学生课程关系模式SC S C GRADE 课程关系模式C C CNAME TEACHER SC C S 2020 3 28 数据库原理 17 2 2 3关系数据库 在关系模型中 实体以及实体间的联系都是用关系来表示 在一个给定的应用领域中 所有实体及实体之间的联系的关系的集合构成一个关系数据库 关系数据库也有型和值之分 型 关系数据库模式 对关系数据库的描述 包括若干域的定义以及在这些域上定义的若干关系模式 值 关系模式在某一时刻对应的关系的集合 通常称为关系数据库 2020 3 28 数据库原理 18 2 3关系的完整性 完整性约束 实体完整性 参照完整性 用户定义的完整性 关系的两个不变性 2020 3 28 数据库原理 19 EntityIntegrity 规则2 1若属性A是基本关系R u A u 上的主属性 则属性A不能取空值 例 选课SC中的S C 均不能取空值 该规则是针对基本关系而言的 现实世界中的实体是可区分的 即它们具有某种唯一性标识 关系模型中以主码作为唯一性标识 主码中的属性即主属性不能取空值 2020 3 28 数据库原理 20 ReferentialIntegrity 规则2 2若属性 或属性组 F是关系R的外码 它与基本关系S的主码Ks相对应 基本关系R和S不一定是不同的关系 则对于R中每个元组在F上的取值必须为 或者取空值 F的每个属性值均为空值 或者等于S中的某个元组的主码值 定义外码与主码之间的引用规则 2020 3 28 数据库原理 21 例 职工EMP EMP ENAME JOB DEPT 部门DEPT DEPT DNAME LOC 例 学生S S SNAME AGE SEX 课程C C CNAME TEACHER 学生课程SC S C GRADE 则 EMP中的DEPT 为空或为DEPT中的DEPT 的值 则 SC中的S 为空或为S中的S 的值 SC中的C 为空或为C中的C 的值 2020 3 28 数据库原理 22 User definedIntegrity 用户自定义完整性是针对某一具体数据的约束条件 反映某一具体应用所涉及的数据必须满足的语义要求 由应用环境决定 例 属性的取值范围 属性的非空限制 2020 3 28 数据库原理 23 关系数据库语言 关系代数 具有关系代数和关系演算双重特点 关系演算 域演算 关系数据库标准语言SQL 用关系运算来表达查询 以ISBL为代表 用谓词公式来表达查询元组演算 以行为变量 以ALPHA为代表 域演算 以列为变量 以QBE为代表 元组演算 元组演算 域演算 2020 3 28 数据库原理 24 2 4关系代数 一种抽象的查询语言 用对关系的运算来表达查询 运算的三大要素 运算对象 关系运算符运算结果 关系 集合运算符 并 差 交 专门的关系运算符 广义笛卡尔积 选择 投影 连接 除 算术比较符 大 小于 大 小于等于 等于 不等于 逻辑运算符 非 与 或 2020 3 28 数据库原理 25 2 4 1传统的集合运算 并 Union 运算 设关系R和关系S具有相同的目n 即两个关系都有n个属性 且相应的属性取自同一个域 则关系R与关系S的并由属于R或属于S的元组组成 其结果关系仍为n目关系 记作 R S t t R t S 2020 3 28 数据库原理 26 差 Difference 运算 2020 3 28 数据库原理 27 R1 R2 设关系R和关系S具有相同的目n 且相应的属性取自同一个域 则关系R与关系S的交由既属于R又属于S的元组组成 其结果仍为n目关系 记作 R S t t R t S 交 Intersection 运算 2020 3 28 数据库原理 28 广义笛卡尔积 ExtendedCartesianProduct 运算 两个分别为n目和m目的关系R和S的广义笛卡尔积是一个 n m 列的元组的集合 元组的前n列是关系R的一个元组 后m列是关系S的一个元组 若R有k1个元组 S有k2个元组 则关系R和关系S的广义笛卡尔积有k1 k2个元组 记作 2020 3 28 数据库原理 29 2 4 2专门的关系运算 S 2020 3 28 数据库原理 30 选择运算是从关系中选取使公式为真的元组 这是从行的角度进行的运算 在关系R中选择满足给定条件的元组 记作 F R t t R F t 真 F是一个公式 表示形式为由逻辑运算符 连接各算术表达式组成 算术表达式的基本形式为 X Y 选择 Selection 运算 b 2020 3 28 数据库原理 31 例1求计算机科学系CS的学生 SD CS S 2020 3 28 数据库原理 32 例2求计算机科学系CS 年龄不超过21岁的学生 SD CS SA 21 S S SD CS S 2020 3 28 数据库原理 33 这是从列的角度进行的运算 关系R上的投影是从R中选择若干属性列组成新的关系 记做 A R t A t R 投影之后不仅取消了某些列 还可能取消某些元组 投影 Projection 运算 2020 3 28 数据库原理 34 例3 SN SD S 即求得学生关系S在学生姓名和所在系这两个属性上的投影结果 SN SD S 学号学生姓名所属系名学生年龄S SNSDSAS1ACS20S2BCS21S3CMA19S4DCI19S5EMA20S6FCS22 a S SA S SA20211922 SNSDACSBCSCMADCIEMAFCS SA S 即求得学生关系S在年龄属性上的投影结果 2020 3 28 数据库原理 35 连接运算是从两个关系的笛卡尔积中选取属性间满足一定条件的元组 记做 连接 Join 运算 其中 F是条件表达式 它涉及到对两个关系中的属性的比较 例4设关系R S如下图 2020 3 28 数据库原理 36 例5设关系R S如下图 为 的连接运算称为等值连接 等值连接 2020 3 28 数据库原理 37 自然连接是一种特殊的等值连接 它要求两个关系中进行比较的分量必须是相同的属性组 并且要在结果中把重复的属性去掉 例6关系R S的自然连结 自然连接 2020 3 28 数据库原理 38 给定关系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 t X t R Yx Y S 其中Yx为x在R中的象集 x t X 除 Division 运算 2020 3 28 数据库原理 39 例7 Z X Y 2020 3 28 数据库原理 40 a1的象集为 a2的象集为 a3的象集为 a4的象集为 b1 c2 b2 c3 b2 c1 b3 c7 b2 c3 b4 c6 b6 c6 S在B C上的投影 b1 c2 b2 c3 b2 c1 R S t X t R Yx Y S R S a1 除 Division 运算 2020 3 28 数据库原理 41 并 差 笛卡儿积 选择 投影 R S R R S 或R S S S R R S t t R t S 123 A B R S R S t X t R Yx Y S 关系代数五种基本运算 交 连接和除可以用上述5种基本运算表示 2020 3 28 数据库原理 42 3除运算 给定关系R X Y 和S Y Z 其中X Y Z为属性组 R S t X t R Yx Y S 其中Yx为x在R中的象集 x t X T x R P y S Q T P R W x Q R S T W R S x R x T y S R 2020 3 28 数据库原理 43 T x R P y S Q T P R W x Q R S T W R S 3除运算 2020 3 28 数据库原理 44 设教学数据库中有三个关系 学生关系S S SNAME SD AGE 课程关系C C CN CP 学习关系SC S C GRADE 例1检索学习课程号为C2的学生学号与成绩 S GRADE C C2 SC C C2 SC 关系代数表达式 2020 3 28 数据库原理 45 例2检索学习课程号为C2的学生学号和姓名 2020 3 28 数据库原理 46 例3求选修 数据库原理 这门课程的学生名和所在系 设教学数据库中有三个关系 学生关系S S SNAME SD AGE 课程关系C C CN CP 学习关系SC S C GRADE 2020 3 28 数据库原理 47 例4检索学习课程号为C2或C3的学生学号和所在系 2020 3 28 数据库原理 48 例5求至少选修C2和C3这两门课程的学生名 解法2 2020 3 28 数据库原理 49 例7求选修全部课程的学生名 例8求至少选修了刘晨所选课程的学生名 S SC S C C2 SC 例6求不学C2这门课程的学生名 S S S C C2 SC 不是所有的学生都选修了课程 2020 3 28 数据库原理 50 2 5关系演算 关系演算是以数理逻辑中的谓词演算为基础的 按谓词变元的不同 关系演算可分为元组关系演算和域关系演算 元组关系演算以元组变量作为谓词变元的基本对象 ALPHA语言主要有 GET PUT HOLD UPDATE DELETE DROP六条语句 域关系演算以元组变量的分量作为谓词变元的基本对象 QBE是QueryByExample 即通过例子进行查询 2020 3 28 数据库原理 51 2 5 1 元组关系演算语言ALPHA 元组关系演算语言ALPHAALPHA语言是元组关系演算语言 谓词变元是元组变量 元组变量的二个用途是 1 简化关系名 2 操作条件中使用量词时必须用元组变量 例查询计算机系学生的姓名元组变量X用来简化关系名StudentRANGEStudentXGETW X Sname X Deptno CS 操作语句工作空间名表达式操作条件 tuplerelationalcalculus 2020 3 28 数据库原理 52 检索操作 更新操作 1 简单检索 即不带条件的检索 2 限定的检索 即带条件的检索 3 带排序的检索 4 带定额的检索 5 用元组变量的检索 6 用存在量词的检索 7 带有多个关系的表达式的检索 8 用全称量词的检索 9 用两种量词的检索 10 用蕴函 Implication 的检索 11 集函数 1 修改操作 2 插入操作 3 删除 元组关系演算 2020 3 28 数据库原理 53 检索操作 1 简单检索 即不带条件的检索 例1查询所有被选修课程的课程号码 例2查询所有学生的数据 书59页的数据库 GETW SC Cno 这里条件为空 表示没有限定条件 W为工作空间名 GETW Student 2020 3 28 数据库原理 54 2 限定的检索 即带条件的检索 例3查询信息系 IS 中年龄小于20岁的学生的学号和年龄 例4查询计算机科学系 CS 学生的学号 年龄 并按年龄降序排序 3 带排序的检索 检索操作 GETW Student Sno Student Sage Student Sdept IS Student Sage 20 GETW Student Sno Student Sage Student Sdept CS DOWNStudent Sage 2020 3 28 数据库原理 55 4 带定额的检索 例5取出一个信息系学生的学号 检索操作 例6查询信息系年龄最大的三个学生的学号及其年龄 结果按年龄降序排序 GETW 1 Student Sno Student Sdept IS GETW 3 Student Sno Student Sage Student Sdept IS DOWNStudent Sage 2020 3 28 数据库原理 56 例7查询信息系学生的名字 5 用元组变量的检索 检索操作 RANGEStudentXGETW X Sname X Sdept IS 2020 3 28 数据库原理 57 检索操作 6 用存在量词的检索 例8查询选修2号课程的学生名字 例9查询选修了其直接先行课是6号课程的课程的学生学号 RANGESCXGETW Student Sname X X Sno Student Sno X Cno 2 RANGECourseCXGETW SC Sno CX CX Cno SC Cno CX Pcno 6 2020 3 28 数据库原理 58 例10查询至少选修一门其先行课为6号课程的学生名字 前束范式 Prenexnormalform 的形式 RANGECourseCXSCSCXGETW Student Sname SCX SCX Sno Student Sno CX CX Cno SCX Cno CX Pcno 6 GETW Student Sname SCX CX SCX Sno Student Sno CX Cno SCX Cno CX Pcno 6 2020 3 28 数据库原理 59 7 带有多个关系的表达式的检索 例11查询成绩为90分以上的学生名字与课程名字 RANGESCSCXGETW Student Sname Course Cname SCX SCX Grade 90 SCX Sno Student Sno Course Cno SCX Cno 检索操作 查询结果表达式中可以有多个关系 本查询所要求的结果学生名字和课程名字分别在Student和Course两个关系中 2020 3 28 数据库原理 60 检索操作 8 用全称量词的检索 例12查询不选1号课程的学生名字 存在量词来表示 RANGESCSCXGETW Student Sname SCX SCX Sno Student Sno SCX Cno 1 RANGESCSCXGETW Student Sname SCX SCX Sno Student Sno SCX Cno 1 2020 3 28 数据库原理 61 9 用两种量词的检索 例13查询选修了全部课程的学生姓名 检索操作 RANGECourseCXSCSCXGETW Student Sname CX SCX SCX Sno Student Sno SCX Cno CX Cno 2020 3 28 数据库原理 62 检索操作 10 用蕴函 Implication 的检索 例14查询最少选修了95002学生所选课程的学生学号 RANGECouseCXSCSCXSCSCYGETW Student Sno CX SCX SCX Sno 95002 SCX Cno CX Cno SCY SCY Sno Student Sno SCY Cno CX Cno 2020 3 28 数据库原理 63 检索操作 11 集函数 Aggregationfunction 例15查询学生所在系的数目 例16查询信息系学生的平均年龄 GETW COUNT Student Sdept GETW AVG Student Sage Student Sdept IS 2020 3 28 数据库原理 64 更新操作 1 修改操作 首先用HOLD语句将要修改的元组从数据库中读到工作空间中然后用宿主语言修改工作空间中元组的属性最后用UPDATE语句将修改后的元组送回数据库中 UPDATE语句实现步骤是 例1795007学生从计算机科学系转到信息系 HOLDW Student Sno Student Sdetp Student Sno 95007 从Student关系中读出95007学生的数据 MOVE IS TOW Sdept 用宿主语言进行修改 UPDATEW Student 把修改后的元组送回Student关系 2020 3 28 数据库原理 65 更新操作 2 插入操作 首先用宿主语言在工作空间中建立新元组然后用PUT语句把该元组存入指定的关系中 PUT语句实现步骤 例18学校新开设了一门2学分的课程 计算机组织与结构 其课程号为8 直接先行课为6号课程 插入该课程元组 MOVE 8 TOW CnoMOVE 计算机组织与结构 TOW CnameMOVE 6 TOW CpnoMOVE 2 TOW CcreditPUTW Course 2020 3 28 数据库原理 66 更新操作 3 删除 用HOLD语句把要删除的元组从数据库中读到工作空间中用DELETE语句删除该元组 DELETE语句实现步骤 例1995110学生因故退学 删除该学生元组 HOLDW Student Student Sno 95110 DELETEW 2020 3 28 数据库原理 67 例20将学号95001改为95102 HOLDW Student Student Sno 95001 DELETEW Student MOVE 95102 TOW SnoMOVE 李勇 TOW SnameMOVE 男 TOW SsexMOVE 20 TOW SageMOVE CS TOW SdeptPUTW Student 2020 3 28 数据库原理 68 例21删除全部学生 HOLDW SC DELETEW HOLDW Student DELETEW SC与Student之间具有参照关系 为保证参照完整性 删除Student中元组时相应的要删除SC中的元组 2020 3 28 数据库原理 69 2 5 3 域关系演算语言QBE 域关系演算用域变量代替元组变量的每一个分量 域变量的变化范围是某个值域而不是一个关系 QBE为基于屏幕表格的查询语言 用户通过终端屏幕编辑程序以填写表格的方式构造查询要求 而查询结果也是以表格形式显示 QBE是QueryByExample 即通过例子进行查询 2020 3 28 数据库原理 70 检索操作 更新操作 1 简单查询 2 条件查询 3 集函数 4 对查询结果排序 1 修改操作 2 插入操作 3 删除操作 域关系演算 2020 3 28 数据库原理 71 检索操作 1 简单查询 例1求信息系全体学生的姓名 1 用户提出要求 2 屏幕显示空白表格 3 用户在最左边一栏输入关系名 4 屏幕显示该关系的栏名 即Student关系的各个属性名 5 用户在上面构造查询要求 6 屏幕显示查询结果 Student SnoSnameSsexSageSdept P TIS P 李勇IS 操作步骤 2020 3 28 数据库原理 72 例2查询全体学生的全部数据 Student SnoSnameSsexSageSdept P 95001P 李勇P 男P 20P CS 示例元素下面要加下划线 P 是表示打印的操作符 示例元素是这个域中可能的一个值 不必是查询结果中的元素 2020 3 28 数据库原理 73 2 条件查询 例3求年龄大于19岁的学生的学号 Student SnoSnameSsexSageSdept P 95001 19 检索操作 2020 3 28 数据库原理 74 例4求计算机科学系年龄大于19岁的学生的学号 Student SnoSnameSsexSageSdept P 95001 19CS Student SnoSnameSsexSageSdept P 95001CS P 95001 19 2020 3 28 数据库原理 75 例5查询计算机科学系或者年龄大于19岁的学生的学号 Student SnoSnameSsexSageSdept P 95001CS P 95002 19 例6查既选修了1号课程又选修了2号课程的学生的学号 SC SnoCnoGrade P 950011 P 950012 2020 3 28 数据库原理 76 与 1 条件写在同一行上 2 把两个条件写在不同行上 但使用相同的示例元素 或 两个条件写在不同行上 且使用不同的示例元素 2020 3 28 数据库原理 77 例7查询选修1号课程的学生姓名 Student SnoSnameSsexSageSdept 95001P 李勇 SC Sno

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论