您好,欢迎访问三七文档
当前位置:首页 > IT计算机/网络 > 数据库 > 数据库原理第一章课件
Spring,2009.1数据库原理主讲:赵海霞河南科技大学电信学院Spring,2009.2第二章关系数据库学习要点关系模型概述关系数据结构及形式化定义关系的完整性关系代数关系演算第二章关系数据库Spring,2009.3关系模型简史E.F.Codd的论文”ARelationalModelofDataforLargeSharedDataBanks”,《CommunicationoftheACM》,(1970年)IBM在加里福利亚的SanJose研究所开发的实验性关系数据库管理系统SystemR(1976年)加州大学伯克利分校开发的INGRES(交互式图形检索系统)项目(1976年)IBM在Peterlee的科研中心所开发的Peterlee关系测试工具(1976年)上世纪80-90年代,涌现了几百个关系数据库管理系统第二章关系数据库Spring,2009.4值得记住的1970年,E.F.Codd提出关系数据库理论基础关系数据库试验系统SystemR,INGRES目前流行的RDBMSDB2,Oracle,Ingres,Sybase,Informix等Spring,2009.52.1关系模型概述关系模型由以下三部分组成:单一的数据结构--关系任何一个关系数据库都是由若干张互相关联的表组成关系模式和关系关系操作查询操作:选择、投影、连接、除、并、交、差更新操作:增加、删除、修改关系的三类完整性约束实体完整性、参照完整性和用户定义的完整性第二章关系数据库2.1关系模型概述关系的两个不变性,由系统自动支持由应用语义约束Spring,2009.6关系模型语言关系操作特点:操作对象和结果都是集合高度非过程化的语言,不必借助循环结构就可以完成数据操作,能嵌入高级语言中使用关系数据语言关系代数语言关系演算语言具有关系代数和关系演算双重特点的语言元组关系演算语言域关系演算语言例如ISBL例如APLHA,QUEL例如QBE例如SQL三种语言在表达能力上完全等价Spring,2009.7关系模型语言关系代数语言把关系当作集合,用集合运算和特殊的关系运算来表达查询要求和条件是一种抽象的查询语言关系演算语言用谓词来表达查询要求和条件谓词变元的基本对象可以是元组变量或域变量,故可分为元组关系演算和域关系演算两类是一种抽象的查询语言SQL介于关系代数和关系演算之间集DDL、DML和DCL一身的关系数据语言Spring,2009.82.2关系数据结构及形式化定义关系的定义及基本术语关系模式关系数据库第二章关系数据库2.2关系数据结构及形式化定义Spring,2009.9关系的形式化定义定义1:域(Domain)一组具有相同数据类型的值的集合。每个属性有一个允许的值的集合称为该属性的域。定义2:笛卡儿积(CartesianProduct)D1D2…Dn={(d1,d2,…,dn)|diDi,i=1,2,…,n}(d1,d2,…,dn)叫做一个n元组(n-tuple),或简称元组di叫做一个分量(Component)第二章关系数据库2.2关系数据结构及形式化定义Spring,2009.10笛卡尔积计算实例例1:D1={甲,乙},D2={1,2},D3={a,b,c}1)D1,D2,D3基数分别是多少?2)D1×D2=?(基数?)3)D1×D2×D3=?(基数?)笛卡尔集可表示为一个二维表表中的每行对应一个元组,表中的每列对应一个域请将例子表示为二维表Spring,2009.11例2.已知三个域D1=导师集合={张清正,刘逸}D2=专业集合={计算机,信息}D3=学生集合={李勇,刘晨,王敏}导师专业研究生张清正计算机李勇张清正计算机刘晨张清正计算机王敏张清正信息李勇张清正信息刘晨张清正信息王敏刘逸计算机李勇刘逸计算机刘晨刘逸计算机王敏刘逸信息李勇刘逸信息刘晨刘逸信息王敏D1,D2,D3的笛卡尔积计算思考1)每个域的基数?2)计算D1×D2×D3=?基数?3)计算结果中的元组有无实际意义?Spring,2009.12关系的形式化定义定义:关系D1D2…Dn的子集叫做在域D1,D2,…,Dn上的关系,表示为R(D1,D2,…,Dn)。即:将关系定义为一系列域上的笛卡尔集的子集。Spring,2009.13例.已知三个域D1=导师集合S={张清正,刘逸}D2=专业集合SP={计算机,信息}D3=学生集合P={李勇,刘晨,王敏}计算思考从笛卡尔集中取出一个子集,选择有意义的结果组成关系R=(导师,专业,研究生)•一个研究生只能有一个专业,如李勇和王敏是计算机专业、刘晨是信息专业导师S专业SP研究生P张清正计算机李勇张清正计算机刘晨张清正计算机王敏张清正信息李勇张清正信息刘晨张清正信息王敏刘逸计算机李勇刘逸计算机刘晨刘逸计算机王敏刘逸信息李勇刘逸信息刘晨刘逸信息王敏D1,D2,D3的笛卡尔积(上图)现在导师与研究生是什么关系?限定一个学生只能有一个导师,如张是计算机导师,刘是信息专业导师现在导师与研究生是什么关系?Spring,2009.14关系的基本术语关系模型(relationalmodel)用二维表格结构表示实体类型,外键表示实体间联系的模型称为关系模型。属性(指字段、数据项)属性值、属性的值域DOM(A)(指字段值、字段的值域)元组(指记录)关系模式(指记录类型)关系或实例(指纪录的集合)元数(指关系中属性的个数)基数(指关系中元组的个数)第二章关系数据库2.2关系数据结构及形式化定义Spring,2009.15学号姓名年龄籍贯性别9801李容20江苏女9802王三19山东男9803张海19湖北男属性(列)元组(行)属性名学生登记表关系整数字符串16,17...字符串男女域...............元数基数基本术语第二章关系数据库2.2关系数据结构及形式化定义Spring,2009.16基本术语键(码)超键(superkey):在一个关系中,能唯一标识元组的属性集称为关系模式的超键;候选键(candidatekey):如果一个属性集能唯一标识元组,且又不含有多余属性,则该属性集称为候选键;候选关键字必为超关键字,反之不一定成立主键(primarykey):关系模式中用户正在使用的候选键称为主键;外键(foreignkey):如果关系R中某属性集是其它模式的主键,则该属性集对模式R而言是外键。第二章关系数据库2.2关系数据结构及形式化定义Spring,2009.17基本术语主属性指主键的诸属性非码属性不包含在任何候选码中的属性第二章关系数据库2.2关系数据结构及形式化定义Spring,2009.18基本术语三类关系基本关系(基本表或基表)实际存在的表,是实际存储数据的逻辑表示查询表查询结果对应的表视图表由基本表或其他视图表导出的表,是虚表,不对应实际存储的数据第二章关系数据库2.2关系数据结构及形式化定义Spring,2009.19基本关系的6个性质➊列是同质的每一列中的分量是同一类型的数据,来自同一个域不同的列可出自同一个域其中的每一列称为一个属性不同的属性要给予不同的属性名列的顺序无所谓遵循这一性质的数据库产品(如ORACLE),增加新属性时,永远是插至最后一列但也有许多关系数据库产品没有遵循这一性质,例如FoxPro仍然区分了属性顺序第二章关系数据库2.2关系数据结构及形式化定义Spring,2009.20基本关系的6个性质任意两个元组不能完全相同由笛卡尔积的性质决定但许多关系数据库产品没有遵循这一性质(Oracle,FoxPro)行的顺序无所谓遵循这一性质的数据库产品(如ORACLE),插入一个元组时永远插至最后一行但也有许多关系数据库产品没有遵循这一性质,例如FoxPro仍然区分了元组的顺序第二章关系数据库2.2关系数据结构及形式化定义Spring,2009.21基本关系的6个性质分量必须取原子值每一个分量都必须是不可分的数据项这是规范条件中最基本的一条第二章关系数据库2.2关系数据结构及形式化定义Spring,2009.222.2.2关系模式和关系关系模式对关系的描述静态的、稳定的关系关系模式在某一时刻的状态或内容动态的、随时间不断变化的★实际应用中常常将关系模式和关系都称为关系第二章关系数据库2.2关系数据结构及形式化定义Spring,2009.23关系模式的定义关系的描述称为关系模式(RelationSchema)关系模式形式化地表示为:R(U,D,dom,F)R为关系名属性名集合属性所来自的域属性向域的映象集合,如属性的类型、长度属性间数据的依赖关系第二章关系数据库2.2关系数据结构及形式化定义Spring,2009.24关系模式举例S#SNAMEAGESEXSCSCGRADEC#CNAMETEACHERMN表示学生实体类型和课程实体类型间多对多关系的ER图第二章关系数据库2.2关系数据结构及形式化定义Spring,2009.25关系模式举例学生关系模式S(S#,SNAME,AGE,SEX)学生课程关系描述SC(S#,C#,GRADE)课程关系模式C(C#,CNAME,TEACHER)S#SNAMEAGESEXS#C#GRADEC#CNAMETEACHERSSCC第二章关系数据库2.2关系数据结构及形式化定义Spring,2009.26子模式举例子模式是用户用到的那部分数据。除了用户用到的数据外,还应指出数据与概念模式中相应数据的关系。S#SNAMEAGESEXS256Wang21FS#C#GRADES256C580GSSC成绩子模式G(S#,SNAME,C#,GRADE)S#SNAMEC#GRADES256WangC580第二章关系数据库2.2关系数据结构及形式化定义Spring,2009.272.2.3关系数据库关系数据库在一个给定的应用领域中,所有实体及实体之间联系的关系的集合构成一个关系数据库关系数据库也有型和值之分第二章关系数据库2.2关系数据结构及形式化定义思考:给出导师、学生、专业三个实体可能组成的关系数据库及其概念模型(E-R图)Spring,2009.282.3关系模型的三类完整性规则实体完整性:元组在组成主键的属性上不能有空值;参照完整性(引用完整性):不允许引用不存在的元组。用户定义的完整性(域完整性)其中:前二者是关系模型必须满足的完整性约束条件,是关系的两个不变性,应当有关系系统自动满足。第二章关系数据库2.3关系的完整性规则Spring,2009.29实体完整性(EntityIntegrity)若属性A是基本关系R的主属性,则属性A不能取空值例如:学生(学号,姓名,性别,专业号,年龄)课程(课程号,课程名,学分)选修(学号,课程号,成绩)实体应该是可区分的,主键是区分实体的唯一性标识,因此不能为空(即不能不知道)。第二章关系数据库2.3关系的完整性规则Spring,2009.30第二章关系数据库2.3关系的完整性规则例1:学生实体与专业实体间的关系:学生(学号,姓名,性别,专业号,年龄)专业(专业号,专业名)关系参照图外码参照关系被参照关系例2:学生,课程,学生与课程之间的多对多联系:学生(学号,姓名,性别,专业号,年龄)课程(课程号,课程名,学分)选修(学号,课程号,成绩)关系参照图被参照关系参照关系学生关系专业关系专业号学生关系选修关系课程关系学号课程号参照完整性主码?外码?Spring,2009.31参照完整性定义:外码设F是参照关系R的一个或一组属性,但不是R的码,若F与被参照关系S的主码相对应,则称F是R的外码(详细定义见教材P54)规则:参照关系R中每个元组在外码F上的值必须为:或者取空值(F的每个属性值均为空值)或者等于S中某个元组的主码值例3:学生(学号,姓名,性别,专业号,年龄,班长)参照关系被参照关
本文标题:数据库原理第一章课件
链接地址:https://www.777doc.com/doc-5677463 .html