sql基本知识大全第三章.ppt
《sql基本知识大全第三章.ppt》由会员分享,可在线阅读,更多相关《sql基本知识大全第三章.ppt(102页珍藏版)》请在三一办公上搜索。
1、数据库原理,主讲:赵海霞,河南科技大学电信学院,第二章 关系数据库,学习要点关系模型概述关系数据结构及形式化定义关系的完整性关系代数关系演算,关系模型简史,E.F.Codd的论文”A Relational Model of Data for Large Shared Data Banks”,Communication of the ACM,(1970年)IBM在加里福利亚的San Jose研究所开发的实验性关系数据库管理系统System R(1976年)加州大学伯克利分校开发的INGRES(交互式图形检索系统)项目(1976年)IBM在Peterlee的科研中心所开发的Peterlee关系测试
2、工具(1976年)上世纪80-90年代,涌现了几百个关系数据库管理系统,值得记住的1970年,E.F.Codd提出关系数据库理论基础关系数据库试验系统System R,INGRES目前流行的RDBMSDB2,Oracle,Ingres,Sybase,Informix等,2.1 关系模型概述,关系模型由以下三部分组成:单一的数据结构-关系任何一个关系数据库都是由若干张互相关联的表组成关系模式和关系关系操作查询操作:选择、投影、连接、除、并、交、差更新操作:增加、删除、修改关系的三类完整性约束实体完整性、参照完整性和用户定义的完整性,关系的两个不变性,由系统自动支持,由应用语义约束,关系模型语言,
3、关系操作特点:操作对象和结果都是集合高度非过程化的语言,不必借助循环结构就可以完成数据操作,能嵌入高级语言中使用,关系数据语言,关系代数语言,关系演算语言,具有关系代数和关系演算双重特点的语言,元组关系演算语言,域关系演算语言,例如ISBL,例如APLHA,QUEL,例如QBE,例如SQL,关系模型语言,关系代数语言把关系当作集合,用集合运算和特殊的关系运算来表达查询要求和条件是一种抽象的查询语言关系演算语言用谓词来表达查询要求和条件谓词变元的基本对象可以是元组变量或域变量,故可分为元组关系演算和域关系演算两类是一种抽象的查询语言SQL介于关系代数和关系演算之间集DDL、DML和DCL一身的关
4、系数据语言,2.2关系数据结构及形式化定义,关系的定义及基本术语关系模式关系数据库,关系的形式化定义,定义1:域(Domain)一组具有相同数据类型的值的集合。每个属性有一个允许的值的集合称为该属性的域。定义2:笛卡儿积(Cartesian Product)D1 D2 Dn=(d1,d2,dn)|di Di,i=1,2,n(d1,d2,dn)叫做一个n元组(n-tuple),或简称元组di 叫做一个分量(Component),笛卡尔积,计算实例例1:D1=甲,乙,D2=1,2,D3=a,b,c1)D1,D2,D3基数分别是多少?2)D1D2?(基数?)3)D1D2D3?(基数?)笛卡尔集可表示
5、为一个二维表表中的每行对应一个元组,表中的每列对应一个域,请将例子表示为二维表,例2已知三个域D1=导师集合张清正,刘逸D2=专业集合计算机,信息D3=学生集合李勇,刘晨,王敏,计算思考1)每个域的基数?2)计算D1D2D3?基数?3)计算结果中的元组有无实际意义?,关系的形式化定义,定义:关系 D1 D2 Dn的子集叫做在域D1,D2,Dn上的关系,表示为R(D1,D2,Dn)。即:将关系定义为一系列域上的笛卡尔集的子集。,例已知三个域D1=导师集合S张清正,刘逸D2=专业集合SP计算机,信息D3=学生集合P李勇,刘晨,王敏计算思考从笛卡尔集中取出一个子集,选择有意义的结果组成关系R(导师,
6、专业,研究生)一个研究生只能有一个专业,如李勇和王敏是计算机专业、刘晨是信息专业,导师S,专业SP,研究生P,张清正计算机李勇张清正计算机刘晨张清正计算机王敏张清正信息李勇张清正信息刘晨张清正信息王敏刘逸计算机李勇刘逸计算机刘晨刘逸计算机王敏刘逸信息李勇刘逸信息刘晨刘逸信息王敏,D1,D2,D3的笛卡尔积(上图),现在导师与研究生是什么关系?,限定一个学生只能有一个导师,如张是计算机导师,刘是信息专业导师,现在导师与研究生是什么关系?,关系的基本术语,关系模型(relational model)用二维表格结构表示实体类型,外键表示实体间联系的模型称为关系模型。属性(指字段、数据项)属性值、属性
7、的值域DOM(A)(指字段值、字段的值域)元组(指记录)关系模式(指记录类型)关系或实例(指纪录的集合)元数(指关系中属性的个数)基数(指关系中元组的个数),属性(列),元组(行),属性名,学生登记表,关系,整数,字符串,16,17.,字符串,男女,域,.,.,.,.,.,元数,基数,基本术语,基本术语,键(码)超键(super key):在一个关系中,能唯一标识元组的属性集称为关系模式的超键;候选键(candidate key):如果一个属性集能唯一标识元组,且又不含有多余属性,则该属性集称为候选键;候选关键字必为超关键字,反之不一定成立主键(primary key):关系模式中用户正在使用
8、的候选键称为主键;外键(foreign key):如果关系R中某属性集是其它模式的主键,则该属性集对模式R而言是外键。,基本术语,主属性指主键的诸属性非码属性不包含在任何候选码中的属性,基本术语,三类关系基本关系(基本表或基表)实际存在的表,是实际存储数据的逻辑表示查询表查询结果对应的表视图表由基本表或其他视图表导出的表,是虚表,不对应实际存储的数据,基本关系的6个性质,列是同质的每一列中的分量是同一类型的数据,来自同一个域不同的列可出自同一个域其中的每一列称为一个属性不同的属性要给予不同的属性名列的顺序无所谓遵循这一性质的数据库产品(如ORACLE),增加新属性时,永远是插至最后一列但也有许
9、多关系数据库产品没有遵循这一性质,例如FoxPro仍然区分了属性顺序,基本关系的6个性质,任意两个元组不能完全相同由笛卡尔积的性质决定但许多关系数据库产品没有遵循这一性质(Oracle,FoxPro)行的顺序无所谓遵循这一性质的数据库产品(如ORACLE),插入一个元组时永远插至最后一行但也有许多关系数据库产品没有遵循这一性质,例如FoxPro仍然区分了元组的顺序,基本关系的6个性质,分量必须取原子值每一个分量都必须是不可分的数据项这是规范条件中最基本的一条,2.2.2关系模式和关系,关系模式对关系的描述静态的、稳定的关系关系模式在某一时刻的状态或内容动态的、随时间不断变化的实际应用中常常将关
10、系模式和关系都称为关系,关系模式的定义,关系的描述称为关系模式(Relation Schema)关系模式形式化地表示为:,关系模式举例,表示学生实体类型和课程实体类型间多对多关系的ER图,关系模式举例,学生关系模式 S(S#,SNAME,AGE,SEX)学生课程关系描述 SC(S#,C#,GRADE)课程关系模式 C(C#,CNAME,TEACHER),S,SC,C,子模式举例,子模式是用户用到的那部分数据。除了用户用到的数据外,还应指出数据与概念模式中相应数据的关系。,G,S,SC,成绩子模式 G(S#,SNAME,C#,GRADE),2.2.3关系数据库,关系数据库在一个给定的应用领域中,
11、所有实体及实体之间联系的关系的集合构成一个关系数据库关系数据库也有型和值之分,思考:给出导师、学生、专业三个实体可能组成的关系数据库及其概念模型(E-R图),2.3 关系模型的三类完整性规则,实体完整性:元组在组成主键的属性上不能有空值;参照完整性(引用完整性):不允许引用不存在的元组。用户定义的完整性(域完整性)其中:前二者是关系模型必须满足的完整性约束条件,是关系的两个不变性,应当有关系系统自动满足。,实体完整性(Entity Integrity),若属性A是基本关系R的主属性,则属性A不能取空值例如:学生(学号,姓名,性别,专业号,年龄)课程(课程号,课程名,学分)选修(学号,课程号,成
12、绩)实体应该是可区分的,主键是区分实体的唯一性标识,因此不能为空(即不能不知道)。,例:学生实体与专业实体间的关系:学生(学号,姓名,性别,专业号,年龄)专业(专业号,专业名)关系参照图,例:学生,课程,学生与课程之间的多对多联系:学生(学号,姓名,性别,专业号,年龄)课程(课程号,课程名,学分)选修(学号,课程号,成绩)关系参照图,参照关系,学生关系专业关系,专业号,学生关系 选修关系课程关系,学号,课程号,参照完整性,主码?外码?,参照完整性,定义:外码设F是参照关系R的一个或一组属性,但不是R的码,若F与被参照关系S的主码相对应,则称F是R的外码(详细定义见教材P54)规则:参照关系R中
13、每个元组在外码F上的值必须为:或者取空值(F的每个属性值均为空值)或者等于S中某个元组的主码值,例:学生(学号,姓名,性别,专业号,年龄,班长),参照关系,被参照关系,外码,用户定义完整性(User-defined Integrity),用户定义的、具体应用中的数据必须满足的约束条件例如:成绩:0100之间 身份证、身份证和生日对应关系,2.3关系的完整性规则,完整约束条件是数据模型的一个重要组成部分,它保证数据库中数据与现实世界的一致性考虑属性的取值、主关键字以及诸关系属性之间的一些制约此外许多系统支持数据库设计者说明特殊的约束以及违反约束时的处理过程,关系模型的优点,关系模型提供单一的数据
14、结构形式,具有高度的简明性和精确性;关系模型的逻辑结构和相应的操作完全独立于数据存储方式,具有高度的数据独立性;关系模型使数据库的研究建立在比较坚实的数学基础上。,本讲简要总结,目的与要求:掌握关系模型有关术语、关键字和完整性约束的概念;理解基本关系的6条性质授课重点:关系的定义、关系模式、候选关键字、关系的完整约束等授课难点:侯选关键字、引用完整性约束,2.4 关系代数(Relational Algebra),概述传统的集合运算专门的关系运算综合应用,概述,关系代数语言用传统的集合运算和专门的关系运算来表达查询的抽象语言。关系代数运算符集合运算符:(并)(交)(差)关系运算符:(笛卡儿积)(
15、选择)(投影)(连接)(除)比较运算符:逻辑运算符:,说明,关系代数按运算符的不同可以分为:传统的集合运算并、交、差、广义笛卡尔积专门的关系运算选择、投影、连接、除法,2.4 关系代数(Relational Algebra),概述传统的集合运算专门的关系运算综合应用,1.并(union),R和S具有相同的目n(即两个关系都有n个属性)相应的属性取自同一个域RS 仍为n目关系,由属于R或属于S的元组组成 RS=t|t Rt S,并(续),R,S,RS,2.差(Difference),R和S具有相同的目n相应的属性取自同一个域R-S 仍为n目关系,由属于R而不属于S的所有元组组成 R-S=t|tR
16、tS,差(续),R,S,R-S,S-R?,3.交(Intersection),R和S具有相同的目n相应的属性取自同一个域RS仍为n目关系,由既属于R又属于S的元组组成 RS=t|t Rt S 思考:RS 用差能不能表示?,交(续),R,S,R S,4.广义笛卡尔积(Extended Cartesian Product),Rn目关系,k1个元组Sm目关系,k2个元组RS 列:(n+m)列的元组的集合元组的前n列是关系R的一个元组后m列是关系S的一个元组行:k1k2个元组RS=tr ts|tr R tsS,广义笛卡尔积(续),R,S,R S,2.4 关系代数(Relational Algebra)
17、,概述传统的集合运算专门的关系运算综合应用,1.选择,记号:tR表示t是R的一个元组选择从关系R中选取使逻辑表达式F为真的元组,行选。记作逻辑表达式F由逻辑运算符连接算术表达式,算术表达式基本形式为X1 Y1 其中表示比较运算符,X1,Y1是属性名或常量或简单函数,属性名可以用它的序号来代替,例:学生课程数据库,包括Student,Course,SC三个关系,Sno Sname Ssex Sage Sdept95001 李勇 男 20 CS95002 刘晨 女 19 IS95003 王敏 女 18 MA95004 张立 男 19 IS,Student,Cno Cname Cpqo Ccredi
18、t1 数据库 5 42数学 2信息系统 1 44 操作系统 6 35 数据结构 7 4 6 数据处理 27 Pascal语言 6 4,Course,Sno Cno Grade95001 1 9295001 2 8595001 3 8895002 2 9095002 3 80,SC,查询信息系全体学生:Sdept=IS(Student)或=IS(Student)查询年龄小于20岁的学生:Sage(Student)或(Student)结果如下:,Sno Sname Ssex Sage Sdept95002 刘晨女 19 IS95004 张立男 19 IS,Sno Sname Ssex Sage S
19、dept95002 刘晨女 19 IS95003 王敏女 18 MA95004 张立男 19 IS,Example,课堂练习:1)查询CS系的所有女生2)查询先行课代号为6的所有课程,2.投影,定义:从关系R中选择出满足条件F的若干属性列并组成新的关系,列选 其中 表示元组t中相应于属性Ai的一个分量。注意:运算结果要去掉重复元组。,Example,查询学生的姓名和所在系:Sname,Sdept(Student)或2,5(Student)查询学生关系中有哪些系:Sdept(Student)或5(Student)结果如下:,Sname Sdept 李勇 CS 刘晨 IS 王敏 MA 张立 IS,
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- sql 基本知识 大全 第三
链接地址:https://www.31ppt.com/p-6520896.html