数据库开发技术-第2章关系数据库系统理论基础.ppt
《数据库开发技术-第2章关系数据库系统理论基础.ppt》由会员分享,可在线阅读,更多相关《数据库开发技术-第2章关系数据库系统理论基础.ppt(155页珍藏版)》请在三一办公上搜索。
1、第2章,关系数据库系统理论基础,内容提要,2.1关系模型概述,2.2关系数据结构及形式化定义,2.3 关系的完整性,2.4 关系代数,2.5关系数据库标准语言SQL,2.6 关系规范化理论,2.1关系模型概述,关系模型是建立在数学概念上的,与层次模型、网状模型相比,关系模型是一种最重要的数据模型。它主要由关系数据结构、关系操作集合、关系完整性约束三部分组成。实际上,关系模型可以理解为用二维表格结构来表示实体及实体之间联系的模型,表格的列表示关系的属性,表格的行表示关系中的元组。关系模型允许定义三类完整性约束:实体完整性、参照完整性和用户定义的完整性。,2.2关系数据结构及形式化定义,在关系模型
2、中,数据是以二维表的形式存在的,这是一种非形式化的定义。但关系理论是以集合代数理论为基础的,因此这里使用集合代数的形式给出关系的数学定义。(1)域(Domain)(2)笛卡尔积(Cartesian Product)(3)关系(Relation),域,域是一组具有相同数据类型的值的集合,域中数据的个数称为域的基数。D1=王丽丽,张亭,李中 D1是姓名的集合,基数为3 D2=英语系,中文系 D2是系别的集合,基数是2,笛卡尔积,两个域D1、D2的笛卡尔积定义为:多个域的笛卡尔积为:笛卡尔积的基数是构成该积所有域的基数累乘积。,关 系,笛卡尔积 的子集称作在域D1,D2,,Dn上的关系,记作:R(D
3、1,D2,Dn)关系的相关概念 候选键(Candidate Key)主键(Primary Key)主属性(Primary Attribute)外键(Foreign Key),基本关系(基本表或基表):实际存在的表,它是实际存储数据的逻辑表示。查询表:查询结果对应的表。视图表:有基本表或其他视图导出的表,是虚表,不对应实际存储的数据。,关系的三种类型,2.2.2 关系的性质,关系是一种规范化了的二维表中行的集合。为了使相应的数据操作简化,在关系模型中对关系进行了限制。因此关系具有以下六条性质:(1)列是同质的,即每一列中的分量是同一类型的数据,来自同一个域。(2)关系中的任意两个元组不能相同。(
4、3)关系中不同的列来自相同的域,每一列中有不同的属性名。(4)关系中列的顺序可以任意互换,不会改变关系的意义。,(5)行的次序和列的次序一样,也可以任意交换。(6)关系中每一个分量都必须是不可分的数据项,元组分量具有原子性。,2.2.3关系模式,关系模式指出了关系由哪些属性组成。关系模式是静态的、稳定的,而关系是动态的、不断变化的,它是关系模式在某一时刻的状态和内容。关系模式是型,关系是值。一组关系模式的集合构成了关系数据库模式。,2.3 关系的完整性,关系模型的完整性规则是指对关系的某种约束条件。为了维护数据库中数据与现实世界的一致性,对关系数据库的插入、删除和修改操作必须有一定的约束条件,
5、这就是关系的完整性。关系的完整性有三类:实体完整性、参照完整性和用户定义的完整性。,实体完整性规则是指若属性A是基本关系R的主属性,则属性A不能取空值。如果主码是由若干个属性的集合构成,则要求构成主码的每一个属性的值都不能取空值。,2.3.1 实体完整性,2.3.2 参照完整性,如果关系R2的外码X与关系R1的主码相对应,则外码X的每个值必须在关系Rl中主码的值中找到,或者为空值。实体完整性是为了保证关系中主键属性值的正确性,而参照完整性是为了保证关系之间能够进行正确的联系。两个关系能否进行正确的联系,外键起着很重要的作用。,参照完整性规则,数据库模式导航图一个含有主码和外码依赖的数据库模式可
6、以通过模式导航图来表示。,2.3.3 用户定义完整性,用户定义的完整性就是用户按照实际的数据库应用系统运行环境要求,针对某一具体关系数据库的约束条件。例如某个属性“成绩”的取值范围必须在0100之间。用户定义完整性反映某一具体应用所涉及的数据必须满足的语义要求。,2.4 关系代数,关系代数是一种抽象的查询语言,用对关系的运算来表达查询。每个运算都以一个或者多个关系作为他的运算对象,并生成另外一个关系作为该运算的查询结果。关系代数的基本有两类:一类是传统的集合运算,另一类是专门的关系运算。其运算符包括四类:集合运算符(、-、)、专门的关系运算符(、)、算术比较符(、)和逻辑运算符(、)。,2.4
7、.1 传统的集合运算,传统的集合运算包括并、交、差和笛卡尔积。(1)并 关系R和关系S的所有元组合并,再删去重复的元组,组成一个新关系,称为R和S相并,记为 RS。(2)差 关系R和关系S的差是由属于R而不属于S的所有元组组成的集合,即关系R中删去与S关系中相同的元组,组成一个新关系,记为RS。(3)关系的交 关系R和关系S的交是由既属于R又属于S的元组组成的集合,即在两个关系R与S中取相同的元组,组成一个新关系,记为 RS。,(4)笛卡尔积两个分别为n目和m目的关系r和s的笛卡尔积是一个n+m目元组的集合。元组的前n列是关系r的一个元组,后m列是关系s的一个元组若关系r有kr个元组,关系s有
8、ks个元组,则关系r和s的笛卡尔积有krks个元组。记作:rs=trtstrrtss,传统的集合运算,Class关系ClassNoClassName instiute grade ClassNumAC070 会计学08(3)班 会计学院 2008 46CS0701 计算机07(1)班 信息学院 2007 48ISO802 信息系统08(2)班 信息学院 2008 43,Course关系CourseNo CourseName creditHour courseHour priorCourseAC001 基础会计 48 3 nullCN028大学语文 48 3 nullCS012操作系统 80 5
9、 nullCS015 数据库系统 64 4 CS012,2.4.2 专门的关系运算,专门的关系运算包括:选择、投影、连接、除。下面介绍关系运算的定义:(1)选择(Selection)(2)投影(projection)(3)连接(join)(4)除,专门的关系运算,(1)选择 从关系中找出满足给定条件的所有元组称为选择。其中的条件是以逻辑表达式给出的。选择运算记为F(R),其中R为一个关系,F为布尔函数,该函数中可以包含算术比较符(,)和逻辑运算符(,),专门的关系运算,选择举例 例如,在数据库ScoreDB中,查找2007级的所有班级情况grade=2007(Class),ClassNo Cl
10、assName instiute grade ClassNumAC0703 会计学08(3)班 会计学院 2007 46CS0701 计算机07(1)班 信息学院 2007 48,例如,在数据库ScoreDB中,查找所有1992年及以后出生 的女学生情况,year(birthday)=1992sex=女(Student),StudentNoStudentName sex birthday native nation classNo 0703010 李宏冰 女 1992-03-09 太原 蒙古族 AC0703,(2)投影 从关系中挑选若干属性组成新的关系称为投影。这是从列的角度进行的运算,相当于
11、对关系进行垂直分解。如果新关系中包含重复元组,则要删除重复元组。投影运算记为X(R),其中R为一个关系,X为一组属性名或属性序号组,属性序号是对应属性在关系中的顺序编号。,专门的关系运算,专门的关系运算,投影举例 例如,在数据库ScoreDB中,查找所有学生的姓名和民族 studentName,nation(Student),例如,在数据库ScoreDB中,查找所有“蒙古族”学生的 姓名和籍贯,StudentName nation 李小勇 汉族 王红 汉族 王宏冰 蒙古族 刘方晨 傣族 王红敏 蒙古族,StudentName native 王宏冰 太原 王红敏 上海,studentName,n
12、ative(nation=蒙古族(Student),(3)连接 连接是将两个关系的属性名拼接成一个更宽的关系,生成的新关系中包含满足连接条件的元组。运算过程是通过连接条件来控制的。连接 连接操作是从关系R和S的笛卡尔积中选取属性值满足某一 操作的元组,记为这里i和j分别是关系R和S中第i和第j个属性的序号。如果是等号“,该连接操作称为“等值连接”。,专门的关系运算,自然连接 自然连接是除去重复属性的等值连接,它是连接运算的一个特例,是最常用的连接运算。自然连接记为其中R和S是两个关系,并且具有一个或多个同名属性。,专门的关系运算-连接,F 连接 F 连接操作是从关系R和S的笛卡尔积中选取属性值
13、满足某一公式F的元组,记为这里 F 是形 F1 F2 Fn的公式,每个FP是形为 i j 的式子,而 i 和 j 应分别为 R和 S的第 i、第 j个分量的序号。,专门的关系运算-连接,关系代数,专门的关系运算例如,在数据库ScoreDB中,查找所有2008级的“蒙古族”学生的姓名,StudentName 王红敏,分析:nation=蒙古族(Student)可以找到所有蒙古族学生的情况,但关系Student中没有年级的信息,因此必须将关系Student与关系Class关联起来。,根据模式导航图可知,关系Student与关系Class可通过外码classNo关联起来,这种外码引用关系可通过自然连
14、接表示 Student Class=Student.classNo=Class.classNo(StudentClass),最后的查询可表达为:studentName(nation=蒙古族(Student)grade=2008(Class),关系代数查询综合举例,给定一个查询需求,构造其关系代数表达式的步骤 明确该查询涉及到哪些属性;明确该查询涉及到哪些关系;根据数据库模式导航图,通过多对一联系(或一对多联系)把所有涉及的关系连接起来,每一个多对一联系(或一对多联系)都可以表示为外码属性的自然连接。,关系代数查询综合举例,ScoreDB数据库中,查找“蒙古族”学生所修各门课程的情况,要求输出学
15、生姓名、课程名和成绩。分析:该查询共涉及4个属性,分别是民族nation、姓名studentName、课程名courseName和成绩score,其中,nation属性用于选择条件notion=蒙古族。共涉及3个关系,分别是学生关系Student、课程关系Course和成绩关系Score。成绩关系Score分别通过外码studentNo和courseNo与学生关系Student和课程关系Course建立多对一的联系。,studentName,courseName,score(nation=蒙古族(Student Score)Course),关系代数查询综合举例,ScoreDB数据库中,查找20
16、07级的“南昌”籍同学修读 了哪些课程,要求输出学生姓名、课程名。分析:该查询共涉及4个属性,分别是年级grade、籍贯native、姓名studentName和课程名courseName,其中年级grade和籍贯native用于选择条件。共涉及3个关系,分别是班级关系Class、学生关系Student和课程关系Course。学生关系Student与班级关系Class之间是多对一联系;学生关系Student和课程关系Course之间是多对多联系,并借助关系Score才能建立。因此,该查询还需涉及Score关系。,studentName,courseName(grade=2007Class na
17、tive=南昌Student)Score)Course),关系代数查询综合举例,例如,SCDB数据库中,查找“吴文君”老师教过的2008级 学生的姓名。分析:该查询共涉及3个属性,分别是职工名teacherName、年级grade和学生姓名studentName,职工名teacherName和年级grade都是用于选择条件。共涉及3个关系,分别是教师关系Teacher、班级关系Class和学生关系Student。学生关系Student与班级关系Class之间是多对一联系;学生关系Student和教师关系Teacher之间是多对多联系,这种多对多联系不是直接通过一个联系关系就能建立。,stude
18、ntName(grade=2008Class Student)SC)CourseClass)teacherName=吴文君Teacher),关系代数查询综合举例,例如,SCDB数据库中,查找“吴文君”老师在“操作系统”课程中教过的“信息学院”学生的姓名。分析:该查询共涉及4个属性,分别是职工名teacherName、课程名courseName、学院名称instituteName和学生姓名studentName,职工名teacherName、课程名courseName和学院名称instituteName都是用于选择条件。共4个关系,分别是教师关系Teacher、课程关系Course、学院关系In
19、stitute和学生关系Student。学生关系Student与班级关系Class之间是多对一联系。班级关系Class又与学院关系Institute之间是多对一联系。学生关系Student和教师关系Teacher之间是多对多联系,这种多对多联系不是直接通过一个联系关系就能建立。,studentName(instituteName=信息学院Institute Class)Student)SC)(CourseClass courseName=操作系统Course)teacherName=吴文君Teacher),2.5关系数据库标准语言SQL,SQL(Structure Query Language
20、)全称是结构化查询语言,是1974年IBM圣约瑟实验室的Boyce和Chamberlin为关系数据库管理系统System-R设计的一种查询语言,当时称为SEQUEL语言(Structured English Query Language),后简称为SQL。,2.5.1 SQL语言基本知识,(1)SQL的特点 综合统一 高度非过程化 面向集合的操作方式 以同一种语法结构提供两种使用方式,一种是自含式语言,以独立交互式使用,另一种是嵌入式语言,主要嵌入到其他高级语言中使用。不是一个应用程序开发语言,只提供对数据库的操作能力,不能完成屏幕控制、菜单管理等功能。书写简单、易学易用。,(2)SQL语言的
21、组成 数据定义语言(Data Definition Language,DDL)数据操纵语言(Data Manipulation Language,DML)数据控制语言(Data Control Language,DCL),2.5.2 数据定义命令,SQL语言的数据定义命令用于定义表(CREATE TABLE)、定义视图(CREATE VIEW)和定义索引(CREATE INDEX)等。1.定义基本表 2.修改基本表 3.删除基本表 4.建立索引 5.删除索引,定义基本表,CREATE TABLE(列级完整性约束条件,列级完整性约束条件,)列级完整性约束条件NOT NULLPRIMARY KEY
22、UNIQUEDEFAULTFOREIGN KEY REFERENCESCHECK,数据类型,int或integer:整数,4个字节decimal或numeric:数字数据类型,格式:decimal(数据长度,小数位数)float 或 real:浮点数datatime:日期时间型,如2008-5-6char:固定长度字符类型,格式:char(n),n介于18000.字符型数据要用或”括起来。,创建表,【例】在“test1”数据库中创建“学生表”。CREATE TABLE 学生表(学号 varchar(12)PRIMARY KEY,姓名 nchar(20)NOT NULL,性别 nchar(1)c
23、heck(sex in(男,女),出生日期 datetime,入学日期 datetime,院系名称 nchar(20),民族 nchar(20)default 汉族),外键约束,CREATE TABLE authors(authorid int PRIMARY KEY,authorname char(20),address char(30)CREATE TABLE book(bid int NOT NULL PRIMARY KEY,bname char(8)NOT NULL,authorid int FOREIGN KEY REFERENCES authors(authorid),CREATE
24、 TABLE Student(-定义学生表Student studentNo char(7)NOT NULL-学号 studentName varchar(20)NOT NULL,-姓名 sex nchar(1),-性别 birthday datetime,-出生日期 native varchar(20),-籍贯 nation varchar(30)default 汉族,-民族 classNo char(6),-所属班级 CONSTRAINT StudentPK PRIMARY KEY(studentNo),CONSTRAINT StudentFK FOREIGN KEY(classNo)RE
25、FERENCES Class(classNo),CONSTRAINT StudentCK CHECK(sex in(男,女),表级约束,列之间的约束,create table tab2(id int primary key,fld2 int,fld3 int,constraint t2_ck check(fld2fld3),2.5.2 数据定义命令,SQL语言的数据定义命令用于定义表(CREATE TABLE)、定义视图(CREATE VIEW)和定义索引(CREATE INDEX)等。1.定义基本表 2.修改基本表 3.删除基本表 4.建立索引 5.删除索引,修改表结构,通过ALTER TA
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据库 开发 技术 关系 系统 理论基础

链接地址:https://www.31ppt.com/p-6296463.html