- 4
- 0
- 约7.56千字
- 约 57页
- 2018-10-11 发布于河北
- 举报
第二部分数据库及其应用基础
第二部分数据库及其应用基础第8章 数据库的基础知识 8.1 数据库系统的基本概念 8.2 数据模型 8.3 关系代数 8. 4 关系的规范化 8.1数据库系统的基本概念 8.1.1数据、数据库、数据库管理系统 1.数据 数据(Data)实际上就是描述事物的符号记录。 数据库冗余度 数据库冗余 指的多余的相同数据 举例 表 s (学号, 班级,姓名 )定义学生信息 表c(课程名, 课程号 )定义课程信息 表 cc(学号 课程号)定义选课信息 表 d(学号 班级 课程名) 学生选课关系 , 表 d则属于数据数据 , 因为表d可以用语句 select 学号 班级 课程名 from s,cc where s.学号=cc.学号 来表示 2)关系操纵 关系模式的数据操纵即是建立在关系上的数据操纵,一般有查询、增加、删除及修改四种操作。 ① 数据查询:用户可以查询关系数据库中的数据,它包括一个关系内的查询以及多个关系间的查询。 ② 数据删除:将指定关系内的指定元组删除。 ③ 数据插入:在指定关系中插入一个或多个元组。 ④ 数据修改:在一个关系中修改指定的元组与属性。 3)关系中的数据完整性约束 在关系中允许定义三类数据约束是:实体完整性约束、参照完整性约束以及用户定义的完整性约束。 ① 实体完整性约束:要求关系的主键中属性值,不能为空值(空值就是“不知道”或“无意义的值”)。 例如,在学生关系中,因为学号为主键,所以学号就不能取空值。 ② 参照完整性约束:不允许关系引用不存在的元组:即在关系中的外键,要么是所关联关系中实际存在的元组,要么就为空值。 例如,“系别”是系关系的主键、是学生关系的外键。根据参照完整性约束,学生关系中的“系别”属性的取值有两种可能:取空值:表明该学生还没有分配到任何系;取非空值:因为该学生不能属于一个不存在的系。 ③ 用户定义的完整性约束:是针对具体数据环境与应用环境,由用户具体设置的约束,它反映了具体应用中,数据的语义要求。 例如,性别的取值只能是“男”或“女”两种可能;课程成绩的取值只能限制在0~100之间才合乎实际。 8.3关系代数 关系数据库系统的特点之一是它建立在关系代数数学理论基础之上。 1. 关系模型的基本操作 关系是由若干个不同的元组所组成,因此关系可视为元组的集合。n 元关系是一个 n 元有序组的集合。 设有一个 n 元关系 R,它有 n 个域,分别是D1,D2,…,Dn,此时,它们的笛卡尔积是:D1×D2× … ×Dn 。该集合的每个元素都是具有如下形式的 n 元有序组: (d1,d2,…,dn), di∈Di(i=1,2,…,n ) 该集合与 n 元关系有如下联系: R( D1×D2× … ×Dn) 2. 关系模型的基本运算 关系的操作看成是集合的运算。 1)插入:设有关系 R 需插入若干元组组成关系R′, 则插入可用集合并运算表示为:R∪R′ 2)删除:设有关系 R 需删除一些元组组成关系R′,则删除可用集合差运算表示为:R-R′ 3)修改:修改关系 R 内的元组内容,可用下面的方法实现: ① 设需修改的元组构成关系 R′,则先做删除得: R-R′ ② 设修改后的元组构成关系 R,此时将其插入即得结果: (R-R′)∪R 4) 查询 用于查询的三个操作,无法用传统的集合运算表示,需要引入一些新的运算是,投影、选择和笛卡尔积。 ① 投影运算:从关系中,挑选出指定的属性,并重新排列组成一个新关系的运算。可表示成:πA(R)。其中 A 表示属性表,R 是关系名。例如: 成绩单=π姓名,成绩(学生) ② 选择运算:按给定条件F,从关系R中挑选出满足条件元组的运算,可表示成:σF(R),其中 F 是形如αθβ一个逻辑表达式,。α和β可以是域名或常量,但不能同时为常量,θ是比较符>、<、≥、≤、=、≠或逻辑运算符∨(或)、∧(与)、┐(非)。例如: σ性别=“女”∧成绩≥80 (学生) ③ 笛卡尔积运算:对于两个关系的合并操作可以用笛卡尔积表示。设有 n 元关系 R 及 m 元关系 S,它们分别有p、q个元组,则关系 R 与 S,经笛卡尔积记为 R×S。表8-3 给出了关系 R 和 S 的实例以及 R 与 S 的笛卡儿积 T = R×S 3. 关系代数中的扩充运算 1)交运算:关系 R 与 S 的交可表示成为:R∩S。 例如,表8-4给出了关系 R 与 S 及他们交 T=R∩S。 2)除运算
原创力文档

文档评论(0)