您好,欢迎访问三七文档
当前位置:首页 > 财经/贸易 > 资产评估/会计 > 数据库基础知识个人整理版-强烈推荐
1数据库知识要点总结第一章关系数据模型数据模型(静态)的三要素一关系数据结构(一)基本概念包括:1属性(Attribute):实体所具有的某一特征。(如学生的特征是学号、姓名、----)域(Domain):属性对应的一组具有相同数据类型的值的集合。每个属性有一个域。(关系模型限定域必须原子性1NF)2键(key)(1)候选键(candidatekey)关系的某一属性或属性组的值唯一标识一个元组,而其任何真子集无此性质。候选键的诸属性称为主属性,不包含在任何候选键中的属性称为非主属性。(2)主键(primarykey)一个关系至少有一个侯选键,可以有几个侯选键。一般从侯选键中选择一个作为主键(primarykey),其他的称为侯补键(alternatekey)每个主键的值是不能相同的,(3)外键(foreignkey)如关系中的属性或属性组不是本关系的主键,而引用其他关系或本关系的主键,则称为本关系的外键。3关系(Relation):(1)关系:定义在事物的所有属性域上的多元关系,一个关系就是一张二维表。(2)关系模式:关系的描述称为关系模式,它可以形式化的表示为R(U,D,DOM,F)R为关系名U为组成该关系的属性名集合D为属性组U中属性所来自的域DOM为属性向域的映像集合F为属性间数据的依赖关系集合关系模式通常简记为:R(U)或R(A1,A2,A3,……,An)关系的三种基本类型基本表:是实际存在的表,它是实际存储数据的逻辑表示。查询表:是查询结果对应的表。视图表:是由基本表或其他视图导出的表,是虚表,不对应实际存储内容。二关系操作(一)两种关系操作1查询(Query)查询可以分为选择(SELECT),投影(Project),连接(Join),交(Intersection),并(Union),差(Except),除(Divide),笛卡尔乘积。其中选择,投影,并,差,笛卡尔乘积是5种基本操作,其他的操作可用这些基本操作定义和导出2插入(Insert),删除(Delete),修改(Update)(二)关系操作的特点集合式的操作方式,即操作的对象和结果都是集合。2(三)关系数据语言可以分为三类1关系代数语言2关系演算语言(元组关系演算和域关系演算)3具有关系代数和关系演算双重特点的语言(SQL语言)三关系完整性约束关系数据库的数据必须遵循的约束实体完整性(EntityIntegrity)参照完整性(ReferentialIntegrity)用户自定义完整性(User-DefinedIntegrity)实体完整性和参照完整性是关系模型必须满足的完整性约束条件,被称为关系的两个不变性。(一)实体完整性实体完整性规则:关系模式R的主属性值不可为空指所有主属性均不可取空值,不仅仅是主键不可为空(二)参照完整性1外键(ForeignKey)定义:设F是基本关系R的一个或一组属性,但不是关系R的码,KS是基本关系S的主码。如果F与KS相对应,则称F是R的外码(ForeignKey)R称为参照关系(ReferentialRelation),S称为被参照关系(ReferencedRelation)2参照完整性规则若属性(或属性组)F是基本关系R的外码,它与基本关系S的主码KS相对应(基本关系到R和S不一定是不同关系),则对于R中每个元组在F上的值必须为:(1)等于被参照关系S中所参照的候选键的某个值(2)空值(三)用户自定义完整性针对某一具体数据的约束条件,反映某一具体应用所涉及的数据必须满足的特殊语义由应用环境决定四关系代数关系代数按运算符的不同可分为传统关系运算和专门关系运算(一)传统关系运算(交,并,差,笛卡尔乘积)1∪(并)R1∪R2=b2db3bc2d3d3ba3ce5fg662∩(交AND)R1∩R2=b2dc2d3━(差)R1━R2=b3bd3b4╳(笛卡尔乘积)R1╳S=b2d2db2d3bb3b2db3b3bc2d2dc2d3bd3b2dd3b3b(二)专门关系运算1选择(SELECT)(选择符合条件的元组)δ选择条件(关系名)如:δ性别=男(STUDENT)表的水平划分2投影(Project)(选择符合条件的属性)Π属性表(关系名)如:Π学号,姓名(STUDENT)表的垂直划分3连接操作(Join)笛卡尔乘积R╳S={t,g|t∈RANDg∈S}(1)连接分为等值连接和自然连接连接操作:R|╳|S其中A和B分别为R和S上度数相等且具有可比性的属性组1)等值连接(ф为=)R1.A1R1.A2R1.A3S.A2S.A3如上例R1|╳|S=b2d2dR1.A2=S.A2b3b3bc2d2dd3b3b2)自然连接(只有|╳|)AфB4一般连接是从行的角度出发的,但自然连接还要取消重复的列,是从行和列的角度进行运算S.A2S.A3R1.A1R1.A2R1.A3如R1|╳|S=b2dB3b4除运算(÷)R1.A1如R1÷S=b在R1上b印象集合是{(2,d),(3,d)}S在(A1,A2)上的投影为{(2,d),(3,d)}第二章关系数据库的标准语言SQL一SQL动词表SQL功能动词数据查询SELECT数据定义CREATE,DROP,ALTER数据操纵INSERT,UPDATE,DELETE数据控制GRANT,REVOKE二数据定义操作对象操作方式创建删除修改模式CREATESCHEMADROPSCHEMA表CREATETABLEDROPTABLEALTERTABLE视图CREATEVIEWDROPVIEW索引CREATEINDEXDROPINDEX注意SQL通常不提供修改模式定义,修改视图定义,修改索引定义的操作(一)模式的定义和删除1模式的定义CREATESCHEMA模式名AUTORIZATION用户例如:CREATESCHEMA“s-t”AUTORIZATIONwang;(1)要创建模式,调用该命令的用户必须具有DBA权限,或者获得了DBA授予的CREATESCHEMA权限(2)如果没指定模式名那么模式名隐含为用户名(3)定义模式,实际上是定义了一个命名空间,在这个空间中可以进一步定义该模式包含的数据库对象,例如基本表,视图,索引。2模式的删除DROPSCHEMA模式名CASCADE|RESTRICT(两者必选其一)5例如:DROPSCHEMA“s-t”CASCADE;(1)CASCADE(级联)表示在删除模式的同时把该模式中所有的数据库对象全部一起删除。(2)RESTRICT(限制)表示在删除该模式中已经定义了下属数据库对象(表,视图索引),则拒绝该删除语句。(二)表的定义,删除和修改1表的定义CREATETEBLA表名(列名数据类型[列级完整性约束][,列名数据类型[列级完整性约束]][,表级完整性约束])列定义的完整格式:列名列类型[DEFAULT默认值][[NOT]NULL][列约束]CREATETEBLA表名ASSELECT查询若要定义模式式下的表:CREATETABLE模式名.表名(1)数据类型ANSI/ISOOracle字符型Char(n)Char(n)Character(n)CharacterVarying(n)Varchar2(n)CharVarying(n)数值型NumericNumberDecimalIntegerIntFloatDoubleReal日期型DateDateTime(2)完整性约束主键约束(PrimaryKey)实体完整性外键约束(ForeignKey)参照完整性检查约束(Check)用户自定义完整性唯一键约束(Unique)非空约束(Null|NotNull)默认值(Defautl)(3)例子CREATETABLEstudent(SnoCHAR(8)PRIMARYKEY,SnameCHAR(20)UNIQUE,SsexCHAR(2)DEFALULT‘男’,6SageSMALLINTCHECK(Sage0)SdeptCHAR(20))CREATETABLECourse(CnoCHAR(4)PRIMARYKEY,CnameCHAR(40),CpnoCHAR(4)REFERENCESCourse(Cno),CcreditSMALLINT,CHECK(Ccredit0))CREATETABLEsc(SnoCHAR(9),CnoCHAR(4),GradeSMALLINT,PRIMARYKEY(Sno,Cno),//注意一定要有括号FOREIGNKEY(Sno)REFERENCESCourse(Cno),//sno一定要有括号)(4)说明1)列约束:在每个列后定义,可以有多个约束子句,不能定义多个列上的约束2)表约束:在全部列定义完成后定义,可以有多个约束子句,多个列上的约束必须使用表约束,单列上的约束可以用列约束,也可用表约束2表的删除DROPTABLE表名[CASCADE|RESTRICT](1)CASCADE(级联)删除该表没有任何限制,删除表的同时,相关的依赖对象(如视图)也一起删除。(2)RESTRICT(限制)删除该表是有限制条件的。欲删除的表不能被其他表的约束所引用(如CHECK,FOREIGNKEY等约束),不能有视图,不能有触发器(trigger),不能存储过程或函数。(3)缺省情况下是RESTRICT3表的修改ALTERTABLE表名[ADD列名数据类型[完整性约束]]|[MODIFY列名数据类型[完整性约束]]|[DROPCOLUMN列名]|[ADD表约束]|[DROPCONSTRAINT约束名]例如(1)ALTERTABLEStudentADDDeptVarchar2(10)UNIQUE(2)AlterTableStudentDROPCOLUMNage`(3)AlLTERTABLEStudentMODIFYagenumber(3)NOTNULL(4)ALTERTABLEStudentADDCONSTRAINTPK_StudentPRIMARYKEY(S#)(5)ALTERTABLESCDROPCONSTRAINTFK_SC(三)视图的定义和删除71视图的定义CREATEVIEW视图名(列名1,列名2,…)//列名一定要放在括号里AS查询[WITHCHECKOPTION|WITHREADONLY]例如:CREATEVIEWcs_view(sno,name,age)ASSELECTs#,sname,ageFROMstudentWHEREDept=‘计算机系‘WITHREADONLY;(1)WITHCHECKOPTION表示对视图进行UPTATE,INSERT,DELETE操作时要保证更新,插入,删除的行满足视图定义中的谓词条件(即子查询中的条件表达式)WITHREADONLY表示视图是只读的(2)视图的属性列名只能是全部缺省或全部指定,没有别的选择。但在下列两种情况下必须明确指定组成视图的列名。1)某个目标列不是单纯的属性名,而是聚集函数或列表达式。2)多表连接时选出几个同名列作为视图的字段。(3)子查询可以是任意的SELECT子句,但通常不允许含有OREERBY子句各DISDINCT短语。(4)不是所有视图都是可更新的1)基于联接查询的视图不可更新2)使用了函数的视图不可更新3)使用了分组操作的视图不可更新4)只有建立在单个表上而且没有使用函数的视图才是可更新的2视图的删除DROPVIEW视图名[CASCADE](四)索引的定义和删除1索引的定义CREATE[UNIQUE|CLUSTER]INDEX索引名ON表名(列名[次序][,列名[次序]]…)例如:CREATEUNIQUEINDEXSCnoonSC(SnoASC,CnoDESC);(1)UNIQUE表明此索引的每一个索引值只对应唯一的数据记录(2)CLUSTER表示要建立的索引是聚簇索引。聚簇索引是指索引项的顺序与表中的物理顺序一致的
本文标题:数据库基础知识个人整理版-强烈推荐
链接地址:https://www.777doc.com/doc-1517869 .html