《数据库技术总复习.pptx》由会员分享,可在线阅读,更多相关《数据库技术总复习.pptx(174页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、11.1 概述数据处理客观世界中对事物,现象的研究转换成:计算机中对数据的处理批量数据多种方式处理,包括:数据加工、转换、计算、传输、存取、采集、发布等数据处理两个方向:事务处理:数据 数据分析处理:数据 规则第1页/共174页21.1 概述数据处理流程客观世界的现象与事物数据数据管理数据处理客观世界的研究结果抽象管理支撑语义解释数据结果语义解释图1.1数据处理流程第2页/共174页31.1 概述数据库技术三大要点数据库技术研究目标是数据(数据库)数据库技术研究内容是数据管理数据库技术应用方向是数据处理第3页/共174页41.2 数据及其特性表示广泛性是一种重要信息资源可以创造财富、创造文明第
2、4页/共174页51.4 数据管理数据管理基本部分扩展部分数据服务数据服务数据接口核心数据组织数据操纵数据保护图1.2数据管理内容第5页/共174页61.5 数据管理的变迁人工管理阶段(上世纪4050年代)文件管理阶段(上世纪5060年代)第一代数据库管理(上世纪6070年代)第二代数据库管理(上世纪7090年代)第三代数据库管理(上世纪90年代至今)图1.3数据管理的变迁第6页/共174页72.1数据库中的基本概念2 数据库DB(database)数据集合统一结构、统一存储、统一管理多种应用集成、被多种应用共享第7页/共174页82.1数据库中的基本概念3 数据库管理系统DBMS(datab
3、ase management system)统一管理数据库的软件,属系统软件。功能数据模式定义数据操纵数据保护数据交换与扩展数据服务数据字典第8页/共174页92.1数据库中的基本概念数据语言DL(data langnage)数据库管理系统的统一语言分类 -DDL(数据定义语言)-DML(数据操纵语言)-DCL(数据控制语言)特点:非过程性常用语言:SQL第9页/共174页102.1数据库中的基本概念4.数据库管理员DBA(database administrator)数据库高层次管理由一组人组成功能数据库建立数据库调整数据库维护系统性能改善其它:人员培训、制度制订、检查、技术咨询第10页/共
4、174页112.1数据库中的基本概念5.数据库系统DBS(database system)采用数据库技术的计算机系统以数据库为核心的完整运行实体向应用提供支撑的系统组成数据库DB (数据)数据库管理系统DBMS(软件)数据库管理员DBA (人员)软件平台 (平台)硬件平台 (平台)第11页/共174页122.1数据库中的基本概念6.数据库应用系统DBAS数据处理中以数据库系统及相关开发工具为支撑 所开发出来的系统属应用软件数据库系统是需要开发的:数据结构、数据录入数据库设置约束条件数据保护设置运行参数编制应用程序、接口编制界面第12页/共174页132.2 数据库内部结构体系应 用应 用应 用
5、外模式(用户数据库)外模式(用户数据库)外模式(用户数据库)外模式-概念模式映射概念模式(概念数据库)概念模式-内模式映射内模式(物理数据库)图2.5三级模式两级映射关系图第13页/共174页142.2 数据库内部结构体系三级模式:数据模式(schema)数据库中数据全局、统一结构具体表示概念模式外模式内模式两级映射:映射1概念模式 内模式映射2外模式 概念模式第14页/共174页152.3 数据库系统特点数据集成性:统一结构全局结构/局部结构数据的高共享性与低冗余性数据独立性:物理独立性:物理结构改变不影响逻辑结构逻辑独立性:逻辑结构性改变不影响应用程序数据统一管理与控制第15页/共174页
6、163.1 3.1 数据模型的基本概念数据模型的基本概念数据模型是数据管理特征的抽象,是数据管理的核心;数据模型是数据管理特征的抽象,是数据管理的核心;数据模型描述三部分内容:数据模型描述三部分内容:数据结构数据结构数据操纵数据操纵数据约束数据约束第16页/共174页173.1 3.1 数据模型的基本概念数据模型的基本概念数据模型按不同的应用层次分成三种类型:数据模型按不同的应用层次分成三种类型:概念数据模型(概念模型)概念数据模型(概念模型)逻辑数据模型(逻辑模型)逻辑数据模型(逻辑模型)物理数据模型(物理模型)物理数据模型(物理模型)第17页/共174页183.2 3.2 数据模型的四个世
7、界数据模型的四个世界现实世界概念化形式化计算机概念世界信息世界计算机世界物理化图3.1四个世界的转化示意图用户现实世界:用户所关注的世界,是客观世界中划定边界的一个部分环境;概念世界:是对现实世界的抽象,从纷繁的现实世界中抽取出能反映现实本质的概念和基本关系,它与具体的数据库和计算机平台无关;信息世界:将概念世界中的概念和关系,以一定的形式映射到计算机世界中去;计算机世界:将信息世界中的模型在计算机物理结构上实现。第18页/共174页193.3 3.3 概念世界与概念模型概念世界与概念模型1 E-R模型又称实体-联系模型,它于1976年由PeterChen提出。第19页/共174页203.3
8、3.3 概念世界与概念模型概念世界与概念模型(1)E-R模型的基本要素实体客观存在并可相互区分的事物叫实体客观存在并可相互区分的事物叫实体如学生张三、工人李四、计算机系、数据库概论如学生张三、工人李四、计算机系、数据库概论属性实体所具有的某一特性实体所具有的某一特性一个实体可以由若干个属性来刻画一个实体可以由若干个属性来刻画例如,学生可由学号、姓名、年龄、系等组成例如,学生可由学号、姓名、年龄、系等组成联系实体之间的相互关联实体之间的相互关联联系也可以有属性,如学生与课程之间有选课联系,每个选课联系都有联系也可以有属性,如学生与课程之间有选课联系,每个选课联系都有一个成绩作为其属性一个成绩作为
9、其属性 第20页/共174页213.3 3.3 概念世界与概念模型概念世界与概念模型(2)E-R模型中联系的分类两个实体集间的联系多个实体集间的联系一个实体集内部的联系两个实体集之间的联系又可分为:一对一的联系(1:1)一对多或多对一的联系(1:m或m:1)多对多的联系(m:n)第21页/共174页223.3 3.3 概念世界与概念模型概念世界与概念模型(3)E-R图的表示方法实体集表示法属性表示法联系表示法学生课程学号姓名年龄选修第22页/共174页23学生课程选修姓名学号年龄课程名课程号学分成绩用无向边把实体与其属性连接起来将参与联系的实体用线段连接mn联系的数量图3.2学生学修课程E-R
10、图第23页/共174页243.3 3.3 概念世界与概念模型概念世界与概念模型多个实体集之间的联系(例如工厂,产品与用户)FPUFPU第24页/共174页253.3 3.3 概念世界与概念模型概念世界与概念模型n自反联系employeemanagen实体集间多种联系teacherstudentef第25页/共174页263.3 3.3 概念世界与概念模型概念世界与概念模型例:在一个工厂物资管理系统中,有职工、仓库、项目、零件、供应商五个实体集以及供应、库存、领导、工作四个关系组成,试画出E-R图。第26页/共174页273.3 3.3 概念世界与概念模型概念世界与概念模型供应商项目零件供应供应
11、商号姓名地址项目号预算单价预算名称规格仓库职工库存库存量工作领导仓库号面积职工号姓名供应量mpnmn1n1n图3.3某工厂物资管理E-R图第27页/共174页283.4 3.4 信息世界与逻辑模型信息世界与逻辑模型1 概述层次模型网状模型关系模型面向对象模型对象-关系模型第28页/共174页293.4 3.4 信息世界与逻辑模型信息世界与逻辑模型(1)关系数据结构用二维表来表示实体集用二维表来表示实体集用二维表来表示实体集之间的联系用二维表来表示实体集之间的联系属性元组907580成绩01S0202S0101S01课程号学号男女男性别192221年龄D01李红S02D02王伟S03D01张军S
12、01系号姓名学号分量第29页/共174页303.4 3.4 信息世界与逻辑模型信息世界与逻辑模型关系的一列称为属性关系的一行称为元组;属性的取值范围称为域;属性的个数称为关系的元;关系框架 关系名及关系中的属性构成了关系框架。设关系名为R,其属性为a1,a2,an,则该关系的框架是R(a1,a2,an)第30页/共174页313.4 3.4 信息世界与逻辑模型信息世界与逻辑模型关系的性质关系的性质关系是一个二维表,每行对应一个元组,每列是一个属性,关系是一个二维表,每行对应一个元组,每列是一个属性,有一个属性名,对应一个域;有一个属性名,对应一个域;列是同质的,即列值来自同一个域,不同列可以出
13、自同一列是同质的,即列值来自同一个域,不同列可以出自同一个域,但列名不同;个域,但列名不同;关系中每一个属性是不可分解的,即所有域都是原子数据关系中每一个属性是不可分解的,即所有域都是原子数据的集合;的集合;第31页/共174页323.4 3.4 信息世界与逻辑模型信息世界与逻辑模型关系的性质关系的性质关系中任两个元组不能完全相同;关系中任两个元组不能完全相同;每个关系都有关键字唯一标识各个元组;每个关系都有关键字唯一标识各个元组;关系中行的排列顺序、列的排列顺序是无关紧要的关系中行的排列顺序、列的排列顺序是无关紧要的第32页/共174页333.4 3.4 信息世界与逻辑模型信息世界与逻辑模型
14、键键(Key)(Key)关系中凡能惟一标识元组的属性集称为该关系中凡能惟一标识元组的属性集称为该关系的关系的键键;关系中可能有若干个键,它们称为关系中可能有若干个键,它们称为候选键候选键;假设学生的姓名不能重复,这时学生的学号和姓假设学生的姓名不能重复,这时学生的学号和姓名都可以标识一个学生,学号和姓名都是候选健名都可以标识一个学生,学号和姓名都是候选健第33页/共174页343.4 3.4 信息世界与逻辑模型信息世界与逻辑模型键键(Key)(Key)从所有候选键中选定一个用来区别同一关系中的不同元从所有候选键中选定一个用来区别同一关系中的不同元组,称作组,称作主键主键;关系一定有主键关系一定
15、有主键一个实体集中任意两个实体在主键上的取值不能相同一个实体集中任意两个实体在主键上的取值不能相同如学号是学生实体的主键如学号是学生实体的主键外键:若关系外键:若关系A A中的某属性集是关系中的某属性集是关系B B的键,则称该属性的键,则称该属性集是集是A A的外键。的外键。第34页/共174页353.4 3.4 信息世界与逻辑模型信息世界与逻辑模型(2)关系操纵数据查询数据删除数据插入数据修改空值处理第35页/共174页363.4 3.4 信息世界与逻辑模型信息世界与逻辑模型(3 3)关系中的数据约束)关系中的数据约束实体完整性约束实体完整性约束关键字必须唯一,其属性值不能为关键字必须唯一,
16、其属性值不能为NULLNULL参照完整性约束参照完整性约束外关键字必须取自参照关系的参照属性值,但可以为外关键字必须取自参照关系的参照属性值,但可以为NULLNULL用户自定义完整性约束用户自定义完整性约束学生的年龄在学生的年龄在15-3015-30之间之间第36页/共174页373.4 3.4 信息世界与逻辑模型信息世界与逻辑模型3面向对象逻辑模型和对象关系模型面向对象逻辑模型面向对象逻辑模型对象关系模型对象关系模型扩充的数据类型和复杂的数据类型扩充的数据类型和复杂的数据类型继承继承引用引用第37页/共174页383.5 3.5 计算机世界与物理模型计算机世界与物理模型图3.7数据存储空间逻
17、辑结构图第38页/共174页394.1 4.1 关系基本概念关系基本概念v例:例:设设 D D1 1为教师集合(为教师集合(T T)=t=t1 1,t t2 2 D D2 2为学生集合(为学生集合(S S)=s=s1 1,s s2 2,s s3 3 D D3 3为课程集合(为课程集合(C C)=c=c1 1,c c2 2 则则D D1 1DD2 2DD3 3是个三元集合,元组个数为是个三元集合,元组个数为232232,是所有可能的(教师,学生,课程)元组集合是所有可能的(教师,学生,课程)元组集合.第39页/共174页404.1 4.1 关系基本概念关系基本概念笛卡尔积可表为二维表的形式笛卡尔
18、积可表为二维表的形式TSCt1s1c1t1s1c2t1s2c1t2s3c2第40页/共174页412.1.2 关系的形式化定义关系的型与值关系(表)的型:关系的结构(字段名、字段个数、域等)关系(表)的值:关系中具体的元组,也称关系的实例(Instance)。关系模式(RelationSchema)即关系的型的定义数据依赖属性到域上的映射关系关系的域属性集R(U,D,dom(),F)关系名关系模式通常简记为:R(U)第41页/共174页422.3 关系代数关系代数(RelationalAlgebra):以集合为基础,定义一组运算,由已知关系经过一列运算,得到需要的查询结果。关系代数是过程化的查
19、询语言。关系代数继承传统的集合运算:并()、交()、差()、广义笛卡尔积()。其中并、交、差要求参与运算的两个关系要有相同的结构。将关系看成元组的集合运算是从关系的“水平”方向即行的角度来进行第42页/共174页432.3 关系代数关系上的传统集合运算并:RS=t|t Rt S 差:R S=t|tRtS交:RS=t|t Rt S RS=R(R S)广义笛卡尔积:RS(其中R为k1行n列,S为k2行m列)列:(n+m)列的元组的集合元组的前n列是关系R的一个元组后m列是关系S的一个元组行:k1k2个元组nRS=tr ts|tr R tsS 第43页/共174页442.3 关系代数n传统的集合运算
20、举例c1b2a2c2b3a1c2b2a1CBASc1b2a2c2b2a1c1b1a1CBARCBARSc1b2a2c2b2a1c1b1a1c1b1a1CBARSa1a3a2第44页/共174页452.3关系代数c1b2a2c2b2a1c1b1a1CBARc1b2a2c2b3a1c2b2a1CBASR.A R.B R.C S.A S.BS.Ca1b1c1a1b2c2a1b1c1a1b1c1a1b2c2a1b2c2a1b2c2a1b2c2a1b2c2a2b2c1a2b2c1a2b2c1a1b3c2a1b3c2a1b3c2a2b2c1a2b2c1a2b2c1R S第45页/共174页462.3 关系
21、代数专门的关系运算选择()含义:在关系R中选择满足给定条件的诸元组F(R)=t|tRF(t)=真其中:F:选择条件,是一个逻辑表达式,基本形式为:(X1Y1)(X2Y2):比较运算符(,或)X1,Y1等:属性名、常量、简单函数;属性名也可以用它的序号来代替;:逻辑运算符(或):表示任选项:表示上述格式可以重复下去第46页/共174页472.3 关系代数选择运算的直观意义:学 号Sno姓 名Sname性 别Ssex年 龄Sage所 在 系Sdept95001李勇李勇男男20CS95002刘晨刘晨女女19IS95003王敏王敏女女18MA学 号Sno姓 名Sname性 别Ssex年 龄Sage所
22、在 系Sdept95002刘晨刘晨女女19IS95003王敏王敏女女18MASsex=女(S)第47页/共174页482.3 关系代数投影()含意:从R中选择出若干属性列组成新的关系A(R)=tA|t RA:R中的属性列的集合投影操作主要是从列的角度进行运算投影运算的直观意义:注:但投影之后不仅取消了原关系中的某些列,而且还可能取消某些元组(避免重复行)第48页/共174页492.3 关系代数投影举例学 号Sno姓 名Sname性 别Ssex年 龄Sage所 在 系Sdept95001李勇李勇男男20CS95002刘晨刘晨女女19IS95003王敏王敏女女18MA95004张立张立男男19IS
23、 Sno,Sname(S)学 号Sno姓 名Sname95001李勇李勇95002刘晨刘晨95003王敏王敏95004张立张立第49页/共174页502.3 关系代数例:学生表Student如下(1)查询信息系(IS系)全体学生 Sdept=IS(Student)或 5=IS(Student)(2)查询年龄小于20岁的学生 Sage 20(Student)或 4 20(Student)学 号Sno姓 名Sname性 别Ssex年 龄Sage所 在 系Sdept95001李勇李勇男男20CS95002刘晨刘晨女女19IS95003王敏王敏女女18MA95004张立张立男男19IS第50页/共17
24、4页512.3 关系代数(3)查询学生的姓名和所在系 即求Student关系上学生姓名和所在系两个属性上的投影Sname,Sdept(Student)或2,5(Student)(4)查询学生关系Student中都有哪些系Sdept(Student)或5(Student)n例:学生表Student如下学 号Sno姓 名Sname性 别Ssex年 龄Sage所 在 系Sdept95001李勇李勇男男20CS95002刘晨刘晨女女19IS95003王敏王敏女女18MA95004张立张立男男19IS第51页/共174页522.3 关系代数连接()ABtr tsR S=|tr Rts StrAtsBn含
25、义:从两个关系的笛卡尔积中选取属性间满足一定条件的元组。nA和B:分别为R和S上度数相等且可比的属性组n:比较运算符n连接运算从R和S的广义笛卡尔积RS中选取(R关系)在A属性组上的值与(S关系)在B属性组上值满足比较关系的元组。n带有比较运算符的连接运算称为连接。第52页/共174页532.3 关系代数n连接操作是从行和列的角度进行运算 ABRS自然连接还需要取消重复列,所以是同时从行和列的角度进行运算。第53页/共174页542.3 关系代数例:R SC EABCa1b15a1b26a2b38a2b412R:BEb13b27b310b32b52S:10b38b3a210b36b2a17b2
26、6b2a110b35b1a17b25b1a1ES.BCR.BAn连接解题思路:解题思路:1.确定结果中的属性列2.确定参与比较的属性列3.逐一取R中的元组分别和S中与其符合比较关系的元组进行拼接。第54页/共174页552.3 关系代数两类常用连接运算等值连接(equi-join)什么是等值连接为“”的连接运算称为等值连接等值连接的含义从关系R与S的广义笛卡尔积中选取A、B属性值相等的那些元组,即等值连接为:tr ts A=BR S=|tr RtsStrA=tsB第55页/共174页562.3 关系代数ABCa1b15a1b26a2b38a2b412R:BEb13b27b310b32b52S:
27、AR.BCS.BEa1b15b13a1b26b27a2b38b310a2b38b32n等值连接解题思路:解题思路:1.确定结果中的属性列2.确定参与运算的关系的公共属性列(同名属性区分)3.逐一取R中的元组分别和S中与其公共属性组取值相同的元组拼接。R SB=B例:第56页/共174页572.3 关系代数自然连接(Natural join)什么是自然连接自然连接是一种特殊的等值连接两个关系中进行比较的分量必须是同名的属性(组)在结果中把重复的属性列去掉自然连接的含义R和S具有相同的属性组Btr ts R S=tsB|tr Rts StrB=tsB 第57页/共174页582.3 关系代数例:A
28、BCa1b15a1b26a2b38a2b412R:BEb13b27b310b32b52S:R SABCEa1b153a1b267a2b3810a2b382n自然连接解题思路:解题思路:1.确定结果中的属性列2.确定参与运算的关系的公共属性列(同名属性取其一)3.逐一取R中的元组分别和S中与其公共属性组取值相同的元组拼接。第58页/共174页592.3 关系代数SnoSnameSsexSageSdept95001李勇李勇男男20CS95002刘晨刘晨女女19IS95003王敏王敏女女18MA95004张立张立男男19ISS:SdeptDnameCS计算机系计算机系IS信息系信息系MS数据系数据系
29、D:S DSnoSnameSsexSageSdeptDname95001李勇李勇男男20CS计算机系计算机系95002刘晨刘晨女女19IS信息系信息系95003王敏王敏女女18MA数据系数据系95004张立张立男男19IS信息系信息系意义:将两个有关联的表合成为一张有意义的表。第59页/共174页602.4 关系代数例:c1b2a1c3b3a2c6b6a4c3b2a1c6b4a3c7b3a2c2b1a1CBARDCBb1c2d1d1d2c1c3b2b2SRSAa1第60页/共174页612.4 关系代数关系代数中所用到的各类符号:关系代数表达式:由关系的运算经过有限次的复合后形成的式子。=集合
30、运算符关系运算符比较符逻辑运算符第61页/共174页622.4 关系代数1902男钱七8052002女赵六8042001男王五8032001男李四8021901女张三801sagesdepssexsnamesnoSc488c480390c480282c380285c280178c380192801gradecnosnoSC关系代数综合举例:(本小节的所有查询均用到以下关系实例)关系模式:S(sno,sname,ssex,sdep,sage)C(cno,cname,credit,cpno)SC(sno,cno,grade)Pascalc4编译原理c3数据结构c2数据库c1creditcnamec
31、no3.5443Ccpnoc2c4c6第62页/共174页632.4 关系代数关系模式:S(sno,sname,ssex,sdep,sage)C(cno,cname,credit,cpno)SC(sno,cno,grade)(SC)cno=c2sno,grade()(1)查询选修了C2课程的学生学号和成绩。c488c480390c480282c380285c280178c380192801gradecnosnoSC第63页/共174页642.4 关系代数关系模式:S(sno,sname,ssex,sdep,sage)C(cno,cname,credit,cpno)SC(sno,cno,grad
32、e)(1)查询选修了C2课程的学生学号和成绩。S SC)(cno=c2)(sno,sname(3)查询选修了数据库课程的学生学号、姓名和成绩。(2)查询选修了C2课程的学生学号和姓名。S C SCcname=数据库()sno,sname,grade()(SC)cno=c2sno,grade()c488c480390c480282c380285c280178c380192801gradecnosnoSCcno=c2sno,grade1902男钱七8052002女赵六8042001男王五8032001男李四8021901女张三801sagesdepssexsnamesnoSSnoSnameSsex
33、SdepSageCnograde801张三张三女女0119c492801张三张三女女0119c378801张三张三女女0119c285802李四李四男男0120c382802李四李四男男0120c490803王五王五男男0120c488第64页/共174页652.4 2.4 关系代数关系代数关系模式:S(sno,sname,ssex,sdep,sage)C(cno,cname,credit,cpno)SC(sno,cno,grade)(5)查询选修了C2和C4课程的学生学号。sno(cno=c2cno=c4(SC)c488c480390c480282c380285c280178c3801928
34、01gradecnosnoSC原因:没有哪一条记录会在一个属性列上取两个不同的值!(4)查询选修了C2或C4课程的学生学号。cno=c2cno=c4(SC)sno()第65页/共174页662.4 2.4 关系代数关系代数关系模式:S(sno,sname,ssex,sdep,sage)C(cno,cname,credit,cpno)SC(sno,cno,grade)(4)查询选修了C2或C4课程的学生学号。(5)查询选修了C2和C4课程的学生学号。sno(cno=c2cno=c4(SC)cno=c2cno=c4(SC)sno()c488c480390c480282c380285c280178c
35、380192801gradecnosnoSCSc1.snoSoSc1.gradeeSc2.snoSoSc2.gradee801c492801c492801c492801c378801c492801c285801c378801c492801c378801c378801c378801c285801c285801c492801c285801c378801c285801c285802c382802c382802c382802c490802c490802c382802c490802c490803c488803c4881=4(SC SC)包含相同的信息1(1=42=c2 5=c4(SC SC)第66页/共
36、174页672.4 2.4 关系代数关系代数关系模式:S(sno,sname,ssex,sdep,sage)C(cno,cname,credit,cpno)SC(sno,cno,grade)(6)查询不学C2课的学生学号。(SC)cno c2sno()sno(S)sno(cno=c2(SC)c488c480390c480282c380285c280178c380192801gradecnosnoSC原因:如果该学生选c2课外还选了别的课,则非c2课的记录是符合条件的,此时会将该记录的学号置入结果集。解决方法:先求出所有选c2课的学生,再从全体学生集合中减去这些学生。第67页/共174页682.
37、4 2.4 关系代数关系代数关系模式:S(sno,sname,ssex,sdep,sage)C(cno,cname,credit,cpno)SC(sno,cno,grade)(7)查询c5课的先修课的先修课(课程号)。Pascalc4编译原理c3数据结构c2数据库c1creditcnamecno4443Ccpnoc2c4c6cno1cname1credit1cpno1c1数据库数据库3.5c2c2数据结构数据结构4c4c3编译原理编译原理4c6c4Pascal3cno2cname2credit2cpno2c2数据结构数据结构4c4c4Pascal3c6操作系统操作系统5c74=5(SC SC)
38、1,8(4=5(SC SC)第68页/共174页692.4 2.4 关系代数关系代数关系模式:S(sno,sname,ssex,sdep,sage)C(cno,cname,credit,cpno)SC(sno,cno,grade)(8)查询选修全部课程的学生学号。PascalC4编译原理c3数据结构c2数据库c1creditcnamecno4442Cc488c480390c480282c380285c280178c380192801gradecnosnoSC应满足什么关系?第69页/共174页702.4 2.4 关系代数关系代数关系模式:S(sno,sname,ssex,sdep,sage)C
39、(cno,cname,credit,cpno)SC(sno,cno,grade)(8)查询选修全部课程的学生学号。PascalC4编译原理c3数据结构c2数据库c1creditcnamecno4442Cc488c480390c480282c380285c280178c380192801gradecnosnoSC运算的运算思路:1.确定XYZ属性组2.确定关系R、SYsno,cno(SC)cno(C)XZ第70页/共174页712.4 2.4 关系代数关系代数关系模式:S(sno,sname,ssex,sdep,sage)C(cno,cname,credit,cpno)SC(sno,cno,gr
40、ade)(9)查询选修学号为“802”的学生所选全部课程的学生学号和姓名。c488c480390c480282c380285c280178c380192801gradecnosnoSCc488c480390c480282c380285c280178c380192801gradecnosnoSCcno(sno=802(SC)sno,cno(SC)sno,csname(S)()第71页/共174页721 关系模式的设计问题信息的冗余问题数据冗余:一个学生学习50门课程,学生信息重复50遍,而与之相应的系信息重复更多数据不一致:若某学生修改姓名,修改了其中40个,遗漏了10个,则造成数据的不一致性。
41、信息的更新问题插入异常:如果有新生还没有学习课程,则新生名单就难以插入删除异常:如果删除全部学生,则其它关于课程、系等信息也随之删除了第72页/共174页732 函数依赖定义设R(U)是属性集U上的关系模式,X,Y U,r是R(U)上的任意一个关系,如果成立对对 t t,s s r r,若,若tX=sXtX=sX,则,则tY=sYtY=sY那么称“X函数决定Y”,或“Y函数依赖于X”,记作XY称X为决定因素,Y称为依赖因素。如SNO SNAME,(SNO,CNO)GRADE第73页/共174页742 函数依赖非平凡函数依赖/平凡函数依赖如果X Y,满足Y X,则称其为非平凡的函数依赖,否则称为
42、平凡的函数依赖。如X X,XZ X,(SNO,SNAME)SNAME都是平凡的函数依赖。若无特殊说明,所涉及到的依赖均为非平凡函数依赖。第74页/共174页752 函数依赖完全函数依赖/部分函数依赖在R(U)中,如果XY,且对于任意X的真子集X,都有 ,则称Y对X完全函数依赖,记作否则称为Y对X部分函数依赖,记作X YX YX Y(SNO,SNAME)SDEPT(SNO,CNO)GRADE第75页/共174页762 函数依赖传递函数依赖在R(U)中,如果则称Z对X传递函数依赖 SNO DNO,DNO DNAMEX Y,Y Z,Y X,且Z Y第76页/共174页77n主码的两个性质:决定性:K
43、U最小性:KK,使得K Un主属性(Prime Attribute):所有候选码中出现的属性n非主属性(Nonprime Attribute):不出现在任何候选码中的属性n全码(All Key):由关系模式的所有属性构成码例:设关系模式S(Sno,Sname,Sdept,Sage),若无重名,则Sno,Sname是候选码,Sno,Sname是主属性,Sdept,Sage是非主属性。定义:设K为关系模式R中的属性或属性组。若KFU,则K称为R的一个候选码(CandidateKey)。若关系模式R有多个候选码,则选定其中的一个做为主码(Primarykey)。第77页/共174页78定义:关系模式
44、 R 中属性或属性组X 并非R 的码,但X 是另一个关系模式的码,则称 X 是R 的外部码(Foreign key),也称外码。例:在关系SC(Sno,Cno,Grade)中,码为(Sno,Cno),Sno是另一关系 S(Sno,Sname,)的码,而非SC的码,故Sno是SC的外码,同样Cno也是SC的外码。主码又和外部码一起提供了表示关系间联系的手段。注:给出多个候选码时,以及“,”分隔不同的候选码,当候选码为多个属性时,属性间用“,”隔开,候选码用()括起来。如:关系模式S(Sno,Sname,Sdept,Sage)的候选码为:Sno,Sname。关系模式SC(Sno,Cno,Grade
45、)的候选码为(Sno,Cno)。候选码常常简称为码。第78页/共174页793 范式定义范式(NF)是对关系的不同数据依赖程度的要求也就是衡量一个关系好坏的等级通过模式分解将一个低级范式转换为若干个高级范式的过程称作规范化第79页/共174页803 范式1NF2NF3NF4NFBCNF5NF图4.1范式之间的包含关系示意图第80页/共174页813 范式1NF:关系中每一分量为不可再分的原子值。即不能以集合、序列等作为属性值SNOCNOS1C1,C2,C3SNOCNOS1C1S1C2S1C3第81页/共174页823 范式2NF:若R 1NF,且每个非主属性完全依赖于码,则称R 2NF消除非主
46、属性对码的部分依赖如SCG 2NF,因为(SNO,CNO)SNAME(SNO,CNO)CNAME第82页/共174页833 范式3NF:关系模式R(U,F),如果R属于1NF,且每个非主属性都不传递依赖于R的候选码,那么称R 3NF消除非主属性对码的传递依赖 S(SNO,SNAME,DNO,DNAME)S 3NF,因为有SNODNO,DNODNAME第83页/共174页844 模式分解例:有关系模式SCG(sno,sn,sd,ss,cno,g)其函数依赖为:snosn,snosd,snoss,sssd,(sno,cnog)分析:R1NF第84页/共174页854 模式分解R 2NF其键为(sn
47、o,cno)主属性 sno,cno非主属性 sn,sd,ss,gsn,sd,ss均不完全依赖于(sno,cno)将其分解为SCG1,SCG2SCG1(sno,cno,g,(sno,cno)g)SCG2(sno,sn,sd,ss,snosn,snosd,snoss,sssd)SCG12NF,SCG22NF第85页/共174页864 模式分解SCG13NFSCG2 3NFSCG2(sno,sn,sd,ss,snosn,snosd,snoss,sssd)存在非主属性对键的传递函数依赖将SCG2分解SCG21(sno,sn,ss)SCG22(ss,sd)SCG21,SCG22均满足3NFSCG最终分解
48、为 SCG1 SCG21 SCG22三个关系第86页/共174页874 模式分解练习:设有一关系模式R(A,B,C,D,E,F),其函数依赖为AC,(A,BD),CE,D(B,F),请按下述要求进行模式分解,并给出分解后的结果关系模式上存在的函数依赖。(1)给出关系模式R的候选键(2)分解R,使之满足2NF(3)将上题的结果分解,使之满足3NF第87页/共174页88寻求候选键的方法若W是候选键,则必须满足两个条件:W的闭包是U;W没有冗余。设关系模式R中U=ABC.等N个属性,U中的属性在FD中有四种范围:(1)左右出现;(2)只在左部出现;(3)只在右部出现;(4)不在左右出现;第88页/
49、共174页89寻求候选键的方法算法:按以下步骤求候选键:1.只在FD右部出现的属性,不属于候选码;2.只在FD左部出现的属性,一定存在于某候选码当中;3.外部属性一定存在于任何候选码当中;4.其他属性逐个与2,3的属性组合,求属性闭包,直至X的闭包等于U,若等于U,则X为候选码。第89页/共174页90寻求候选键的方法例1:R,U=(ABCDEG),F=AB-C,CD-E,E-A.A-G,求候选码。因G只在右边出现,所以G一定不属于候选码;而B,D只在左边出现,所以B,D一定属于候选码;BD的闭包还是BD,则对BD进行组合,除了G以外,BD可以跟A,C,E进行组合先看ABDABD本身自包ABD
50、,而AB-C,CD-E,A-G,所以ABD的闭包为ABDCEG=U再看BDCCD-E,E-A,A-G,BDC本身自包,所以BDC的闭包为BDCEAG=U最后看BDEE-A,A-G,AB-C,BDE本身自包,所以BDE的闭包为BDEAGC=U因为(ABD)、(BCD)、(BDE)的闭包都是ABCDEG所以本问题的候选码有3个分别是ABD、BCD和BDE第90页/共174页91寻求候选键的方法例2:举例R,U=(ABCDEF),F=AB-C,BD-E,E-A,求候选键。因为BD只在FD的左边出现,故BD一定属于候选码当中;又因F是FD的外部属性,所以F也属于候选码当中;BDF的闭包,是否等于U,若