您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 项目/工程管理 > 数据库复习提纲-2014
复习提纲第二章:关系模型的基本概念与基本理论2.1数据库的基本概念数据库是为了某个特殊目的存储在一起的相关数据记录的集合。数据库是表或者说是关系的集合。数据库管理系统,简称DBMS。是一种软件产品,它把一个企业的数据以记录的形式在计算机中保存起来(保存在磁盘上)DataModel(数据模型)1.是一组描述如何用计算机化的信息表示现实世界中的数据的定义2.它同时也描述了访问和更新这些信息的操作类型数据模型由数据结构、数据操作和完整性约束三部分组成。2.2关系模型的基本概念数据结构:表(关系),属性(column/attribute),元组(row/tuple),表头(模式),域(domain)关系模型的基本数据结构是二维表表的标题也被称作关系模式,是表的列名的集合数据独立性:查询和表的内容无关约束规则(relationalrule)Rule1.第一范式规则关系模型不允许含有多值属性(有时称为重复字段)和含有内部结构(比如记录类型)的列Thuscan'thaveemployeestablewithcolumndependentswhichcontainsmultipledependent'snamesRule2.只能基于内容存取行规则不可以要求检索表的第三行不允许建立指向行的指针Rule3.行唯一性规则关系中的任何两个元组(表中的行)的值在同一时刻不能是完全相同的。所以关系可以被看作是元组的无序集合。键(key)与超键(superkey)键就是候选键超键isasetofcolumnsthathastheuniquenessproperty[e.g.]AsuperkeyforCUSTOMERS:(cid,cname)keyisaminimalsuperkey:nosubsetofcolumnsalsohasuniquenessproperty.[e.g.]AkeyforCUSTOMERS:cid每个表都至少有一个键空值(nullvalue)表T中的任意行在主键列的取值都不允许为空值(实体完整性规则)2.3关系模型的基本理论—关系代数(relationalalgebra)表/关系在关系代数中的表示关系代数中的运算符:传统的集合运算符&关系运算符关系代数的两种运算:集合论:并、交、差、乘积自然关系:投影、选择、连接(等值连接、自然连接)、除法:=称为赋值运算符。可以简单地称S为表R的别名,简写为S:=R投影运算删除重复的行ifR=T×S,thenT=R÷S,S=R÷TifT=R÷S,thenT×S∈RThesetofbasicrelationaloperations:(并,差,乘积,选择,投影)基本运算&扩充运算难点:减法、除法和表自身的连接运算关系代数的应用ThetaJoinRFS=(R×S)whereF第三章:关系数据库语言SQL3.1数据访问命令的基本结构数据查询命令的语句成分selectstatementSELECT*|colname{,colname...}FROMtablename{,tablename...}[WHEREsearch_condition][GROUPBYcolname{,colname...}[HAVINGsearch_condition]][ORDERBYcolname[ASC|DESC]{,colname[ASC|DESC]...}];tablealiasinFROMclause方法1table_nameasalias_name方法2table_namealias_namecolumnaliasinSELECTclause:expressionasalias_nameUNION无重复,UNIONALL可能有重复数据更新命令的语句成分3.2基本的数据查询命令单表查询多表查询:联接(join)查询嵌套查询(subquery)表自身的连接查询扩展的查询谓词:between…and…isnull,isnotnulllikein,notinsome,any,allexists3.3复杂的数据查询命令统计查询COUNTSUMAVGMAXMINselectcidfromcustomersc1wherediscntall(selectmax(c2.discnt)fromcustomersc2)分组统计查询(…GROUPBY)分组选择统计查询(…GROUPBY…HAVING…)多层嵌套的NOTEXISTS查询3.4数据更新命令元组的插入、修改、删除功能INSERTINTOorders(ordno,month,cid,aid,pid)VALUES(1107,‘aug’,‘c006’,‘a04’,‘p01’);UPDATEagentsSETpercent=1.1*percentWHEREcity=‘NewYork’DELETEFROMtablename[WHEREsearch-condition];第四章:对象-关系SQLOracle中的对象类型:对象类型,对象引用类型CREATETYPEtypenameASOBJECT(attrnamedatatype,......);DROPTYPEtypename;Scopefor子句用于限制REF属性的取值范围ISDANGLING用于判断所引用的元组对象是否存在;ISNULL谓词来查找取值为空(NULL)的REF属性‘isdangling’不等于‘isnull’AdanglingREFisnon-nullbutuseless.Ifo.ordcustisnullordangling,theno.ordcust.cnameisnull.Oracle中的集合类型:数组类型,嵌套表类型CREATETYPEdependents_tASTABLEOFperson_t;第五章:数据库的应用开发嵌入式SQL与交互式SQL在命令格式上的区别execsqlselectcount(*)into:host_varfromcustomers;differentsyntaxthantheISQL:startwith‘execsql’,endedby‘;’intoclausereceivetheresultofselectstatementwithsinglerowhostvariable(orprogramvariable)冒号前缀使用嵌入式SQL的数据库应用程序的基本程序流程游标游标的用处One-Row-at-a-TimePrinciple与游标有关的四条语句declareacursoropenthecursorfetcharowbythecursorclosethecursor游标指针在数据更新语句中的使用方法第六章:数据库设计6.1概念设计ER模型基本组成:实体(entity),属性(attribute),联系(relationship)实体就是具有公共性质的可区别的现实世界对象的集合。属性是描述实体或者关系的性质的数据项。一个联系R定义了这些实体实例的对应规则。如果实体的所有实例都通过一个联系R依赖于另一个实体的实例而存在,那么这个实体就称为弱实体,而另一个实体称为强实体CardinalityofEntityParticipationinaRelationshipOne-to-One,Many-to-Many,andMany-to-OneRelationship看max-cardER图ER图中用方框表示实体,用椭圆表示属性,用菱形表示关系从ER模型到关系模型的转换规则6.2规范化规范化的目的与手段规范化的目的:解决关系数据库中的:1.删除异常:不该删除的数据被删除2.插入异常:应该插入的数据未被插入3.数据冗余函数依赖(FD-FunctionalDependency)关键字(key),主属性(primeattribute),非主属性(non-primeattribute)在表T中,一个属性A称为是主属性当且仅当属性A存在于这个表的某个键K中,notnecessarilyaprimarykey函数依赖集的覆盖(FDsetcover)表T上的两个函数依赖集合F和G,如果函数依赖集G可以从F用蕴涵规则推导出来,或者换句话说,如果GF+,那么我们说F覆盖G。最小函数依赖集/最小覆盖(minimalcover)算法:属性集闭包(ClosureofaSetofAttributes)的计算算法,关键字的发现算法,最小函数依赖集的计算算法范式:1NF,2NF,3NF,BCNF1NF:数据库表中的字段都是单一属性的,不可再分2NF:数据库表中不存在非关键字段对任一候选关键字段的部分函数依赖(部分函数依赖指的是存在组合关键字中的某些字段决定非关键字段的情况),也即所有非关键字段都完全依赖于任意一组候选关键字。不允许组合关键字中的字段决定非关键字3NF:不能有非关键字段x→非关键字段yBCNF:1所有非主属性对每一个候选键都是完全函数依赖;2所有的主属性对每一个不包含它的候选键,也是完全函数依赖;3没有任何属性完全函数依赖于非候选键的任何一组属性。模式分解无损联结性(LosslessDecomposition)给定表T和它的有效函数依赖集F,一个把T分为两个表{T1,T2}的分解是T的一个无损分解当且仅当Head(T1)和Head(T2)都是Head(T)的真子集,Head(T)=Head(T1)UHead(T2),同时如下函数依赖之一可以通过F推导出来:Head(T1)Head(T2)Head(T1)Head(T1)Head(T2)Head(T2)依赖保持性(FDPreserved)给定一个数据库模式和一个通用表T以及函数依赖集F,令{T1,T2,......,Tk}是T的一个无损分解,那么对于F的一个函数依赖X-Y,如果对分解中的某一个表Ti,有XYHead(Ti),则称该函数依赖在T的分解中被保持,或者说,T的分解保持了函数依赖XY。此时,我们也说函数依赖XY“在Ti被保持”,或者说“存在于Ti中”或者“在Ti中”。算法:到3NF且能够满足无损联结性和依赖保持性的分解算法第七章:数据定义基表定义命令基本的建表命令createtableorders(ordnointegernotnull,monthchar(3),cidchar(4)notnull,aidchar(3)notnull,pidchar(3)notnull,qtyintegernotnullconstraintqtyckcheck(qty=0),dollarsfloatdefault0.0constraintdollarsckcheck(dollars=0.0),primarykey(ordno),constraintcidrefforeignkey(cid)referencescustomers,constraintaidrefforeignkey(aid)referencesagents,constraintpidrefforeignkey(pid)referencesproducts);createtableorders(ordnointegernotnull,monthchar(3),cidchar(4)notnullreferencescustomers,aidchar(3)notnullreferencesagents,pidchar(3)notnullreferencesproducts,qtyintegernotnullconstraintqtyckcheck(qty=0),dollarsfloatdefault0.0constraintdollarsckcheck(dollars=0.0),primarykey(ordno));各种数据完整性约束的含义及其定义方法完整性约束:实体完整性(主关键字不允许为空且具有唯一性)、参照完整性、用户定义完整性
本文标题:数据库复习提纲-2014
链接地址:https://www.777doc.com/doc-1843720 .html