数据库原理知识点整理(共29页).doc
精选优质文档-倾情为你奉上目录专心-专注-专业 四个基本概念数据(Data)是数据库中存储的基本对象,数据库中的数据具有永久储存、有组织和可共享三个特点。数据(Data)的定义:描述事物的符号记录数据库(Database,简称DB)长期储存在计算机内、有组织的、可共享的大量数据的集合、基本特征数据按一定的数据模型组织、描述和储存、可为各种用户共享、冗余度较小数据独立性较高、易扩展、数据库管理系统(DBMS)数据定义功能 提供数据定义语言(DDL)、定义数据库中的数据对象数据组织、存储和管理 分类组织、存储和管理各种数据、确定组织数据的文件结构和存取方式 实现数据之间的联系、提供多种存取方法提高存取效率数据操纵功能 提供数据操纵语言(DML)、实现对数据库的基本操作(查询、插入、删除和修改)数据库的事务管理和运行管理 数据库在建立、运行和维护时由DBMS统一管理和控制、保证数据的安全性、完整性、多用户对数据的并发使用、发生故障后的系统恢复数据库的建立和维护功能(实用程序) 数据库初始数据装载转换、数据库转储、介质故障恢复、数据库的重组织、性能监视分析等其它功能 DBMS与网络中其它软件系统的通信、两个DBMS系统的数据转换、 异构数据库之间的互访和互操作、数据库系统(DBS)数据库、数据库管理系统(及其开发工具)、应用系统、数据库管理员(DBA)组成的储存、管理、处理和维护数据的系统。 数据管理技术的产生和发展数据管理定义:对数据进行分类、组织、编码、存储、检索和维护,是数据处理的中心问题数据管理技术的发展过程人工管理阶段(20世纪40年代中-50年代中)文件系统阶段(20世纪50年代末-60年代中)数据库系统阶段(20世纪60年代末-现在)人工管理特点数据的管理者:用户(程序员),数据不保存数据面向的对象:某一应用程序 数据的共享程度:无共享、冗余度极大数据的独立性:不独立,完全依赖于程序数据的结构化:无结构数据控制能力:应用程序自己控制文件系统特点数据的管理者:文件系统,数据可长期保存数据面向的对象:某一应用程序 数据的共享程度:共享性差、冗余度大数据的结构化:记录内有结构,整体无结构数据的独立性:独立性差,数据的逻辑结构改变必须修改应用程序数据控制能力:应用程序自己控制 数据库系统的特点 数据结构化整体数据的结构化是数据库的主要特征之一 整体结构化不再仅仅针对某一个应用,而是面向全组织不仅数据内部结构化,整体是结构化的,数据之间具有联系数据库中实现的是数据的真正结构化数据的结构用数据模型描述,无需程序定义和解释、数据可以变长、数据的最小存取单位是数据项、数据的共享性高,冗余度低,易扩充、数据独立性高数据共享的好处是减少数据冗余,节约存储空间、避免数据之间的不相容性与不一致性、 使系统易于扩充、数据独立性高物理独立性指用户的应用程序与存储在磁盘上的数据库中数据是相互独立的。当数据的物理存储改变了,应用程序不用改变。逻辑独立性指用户的应用程序与数据库的逻辑结构是相互独立的。数据的逻辑结构改变了,用户程序也可以不变。数据独立性是由DBMS的二级映像功能来保证的数据由DBMS统一管理和控制DBMS提供的数据控制功能(1)数据的安全性(Security)保护保护数据,以防止不合法的使用造成的数据的泄密和破坏。(2)数据的完整性(Integrity)检查将数据控制在有效的范围内,或保证数据之间满足一定的关系。(3)并发(Concurrency)控制对多用户的并发操作加以控制和协调,防止相互干扰而得到错误的结果。(4)数据库恢复(Recovery)将数据库从错误状态恢复到某一已知的正确状态。 两大类数据模型:概念模型、逻辑模型和物理模型数据模型应满足三方面要求:能比较真实地模拟现实世界、容易为人所理解、便于在计算机上实现。概念模型也称信息模型它是按用户的观点来对数据和信息建模,用于数据库设计。 逻辑模型主要包括网状模型、层次模型、(已淘汰)关系模型和面向对象模型等,按计算机系统的观点对数据建模,用于DBMS实现。物理模型是对数据最底层的抽象描述数据在系统内部的表示方式、存取方法,在磁盘磁带上的存储方式和存取方法。 数据模型的组成要素:数据结构、数据操作、数据的完整性约束条件数据结构:描述数据库的组成对象,以及对象之间的联系是对系统静态特性的描述。数据操作:对数据库中各种对象(型)的实例(值)允许执行的操作及有关的操作规则数据操作的类型:查询、更新(包括插入、删除、修改)数据的完整性约束条件:是一组完整性规则的集合包括参照完整性,实体完整性、数据和用户自定义完整性。数据模型应该反映和规定其必须遵守的基本的和通用的完整性约束条件。例如在关系模型中,任何关系必须满足实体完整性和参照完整性两个不变性条件。 关系模型关系(Relation):一个关系对应通常说的一张表。元组(Tuple):表中的一行即为一个元组属性(Attribute):表中的一列即为一个属性,给每一个属性起一个名称即属性名主码(Key):表中的某个属性组,它可以唯一确定一个元组。域(Domain):属性的取值范围。分量:元组中的一个属性值。关系模式:对关系的描述,一般表示为关系名(属性1,属性2,属性n)数据操作是集合操作,操作对象和操作结果都是关系,即若干元组的集合。关系数据模型的优缺点优点:建立在严格的数学概念的基础上、关系模型概念单一,实体与实体之间的联系都用关系表示、关系模型的存取路径对用户透明,具有更高的数据独立性更好的安全保密性、简化程序员的工作和数据库开发建立的工作。缺点:存取路径对用户透明导致查询效率往往不如非关系数据模型。 数据库系统模式的概念型(Type):对某一类数据的结构和属性的说明值(Value):是型的一个具体赋值模式(Schema)数据库逻辑结构和特征的描述、型的描述、反映数据的结构及其联系、模式相对稳定、实例(Instance)模式的一个具体值、反映数据库某一时刻的状态、同一个模式可以有很多实例、实例随数据库中的数据的更新而变动、 数据库系统的三级模式结构外模式External Schema(也称子模式或用户模式),数据库用户(包括应用程序员和最终用户)能够看见和使用的局部数据的逻辑结构和特征的描述,是数据库用户的数据视图,是与某一应用有关的数据的逻辑表示。一个数据库可以有多个外模式,每个用户只能看见和访问所对应的外模式中的数据。模式Schema(也称逻辑模式)数据库中全体数据的逻辑结构和特征的描述,是所有用户的公共数据视图,一个数据库只有一个模式。内模式Internal Schema(也称存储模式)数据物理结构和存储方式的描述,是数据在数据库内部的组织方式。一个数据库只有一个内模式。 数据库的二级映像功能与数据独立性 模式:描述的是数据的全局逻辑结构外模式:描述的是数据的局部逻辑结构 外模式/模式映像:保证数据的逻辑独立性当模式改变时,数据库管理员修改有关的外模式模式映象,使外模式保持不变应用程序是依据数据的外模式编写的,从而应用程序不必修改,保证了数据与程序的逻辑独立性,简称数据的逻辑独立性。模式/内模式映象:保证数据的物理独立性定义了数据全局逻辑结构与存储结构之间的对应关系。当数据库的存储结构改变时,数据库管理员修改模式内模式映象,使模式保持不变。应用程序不受影响。保证了数据与程序的物理独立性,简称数据的物理独立性。这两层映像保证了数据库系统中的数据具有较高的逻辑独立性和物理独立性。 数据库系统的组成数据库、数据库管理系统(及其开发工具)、应用系统、数据库管理员(DBA)数据库管理员(DBA)职责:1.决定数据库中的信息内容和结构2.决定数据库的存储结构和存取策略3.定义数据的安全性要求和完整性约束条件4.监控数据库的使用和运行5. 数据库的改进和重组 关系域(Domain):是一组具有相同数据类型的值的集合候选码(Candidate key) 若关系中的某一属性组的值能唯一地标识一个元组,则称该属性组为候选码全码(All-key) 最极端的情况:关系模式的所有属性组是这个关系模式的候选码,称为全码(All-key)主码(Primary key)若一个关系有多个候选码,则选定其中一个为主码(Primary key)主属性候选码的诸属性称为主属性(Prime attribute)不包含在任何侯选码中的属性称为非主属性( Non-Prime attribute)或非码属性(Non-key attribute)基本关系操作常用的关系操作查询:选择、投影、连接、除、并、交、差数据更新:插入、删除、修改 !查询的表达能力是其中最主要的部分选择、投影、并、差、笛卡尔积是5种基本操作关系操作的特点集合操作方式:操作的对象和结果都是集合,一次一集合的方式 关系的三类完整性约束实体完整性和参照完整性: 称为关系的两个不变性,是关系模型必须满足的完整性约束条件,由关系系统自动支持用户定义的完整性: 应用领域需要遵循的约束条件,体现了具体领域中的语义约束 实体完整性:主码不为空若属性A是基本关系R的主属性,则属性A不能取空值 参照完整性:外码要么为空要么为被参照表的主码值 用户定义的完整性关系模型应提供定义和检验这类完整性的机制,以便用统一的系统的方法处理它们,不需要应用程序承担这一功能 专门的关系运算:选择、投影、连接、除象集Zx:本质是一次选择运算和一次投影运算给定一个关系R(X,Z),X和Z为属性组。当tX=x时,x在R中的象集(Images Set)为:Zx= tZ | t R,tX=x 它表示R中属性组X上值为x的诸元组在Z上分量的集合。悬浮元组不存在公共属性上相等的元组外连接如果把舍弃的元组也保存在结果关系中,而在其他属性上填空值(Null),这种连接就叫做外连接(OUTER JOIN)。左外连接如果只把左边关系R中要舍弃的元组保留就叫做左外连接(LEFT OUTER JOIN)右外连接如果只把右边关系S中要舍弃的元组保留就叫做右外连接(RIGHT OUTER JOIN)。 除:查找在被除数R中能够完全覆盖除数S的部分的剩余值设关系R ÷ S的结果为关系T,则T包含所有在R但不在S中的属性及其值,且T的元组与S的元组的所有组合都在R中。 SQL的特点1.综合统一集数据定义语言(DDL),数据操纵语言(DML),数据控制语言(DCL)功能于一体。2.高度非过程化SQL只要提出“做什么”,无须指明“怎么做”。存取路径的选择以及SQL的操作过程由系统自动完成。3.面向集合的操作方式操作对象、查找结果、一次插入、删除、更新操作的对象都可以是元组的集合。4.以同一种语法结构提供多种使用方式SQL是独立的语言,又是嵌入式语言。5. 语言简洁,易学易用 模式的定义与删除CREATE SCHEMA <模式名> AUTHORIZATION <用户名><表定义子句>|<视图定义子句>|<授权定义子句>在CREATE SCHEMA中可以接受CREATE TABLE,CREATE VIEW和GRANT子句。定义模式实际上定义了一个命名空间在这个空间中可以定义该模式包含的数据库对象,例如基本表、视图、索引等。DROP SCHEMA <模式名> <CASCADE|RESTRICT>CASCADE(级联) 删除模式的同时把该模式中所有的数据库对象全部删除RESTRICT(限制) 如果该模式中定义了下属的数据库对象(表、视图等),则拒绝该删除语句的执行。 当该模式中没有任何下属的对象时才能执行。 基本表的定义、删除与修改CREATE TABLE <表名>(<列名> <数据类型> <列级完整性约束条件> ,<列名> <数据类型> <列级完整性约束条件> );ALTER TABLE <表名> ADD <新列名> <数据类型> 完整性约束 DROP <完整性约束名> ALTER COLUMN<列名> <数据类型> ;DROP TABLE <表名>RESTRICT| CASCADE;RESTRICT:删除表是有限制的。欲删除的基本表不能被其他表的约束所引用如果存在依赖该表的对象,则此表不能被删除CASCADE:删除该表没有限制。在删除基本表的同时,相关的依赖对象一起删除 索引的建立与删除CREATE UNIQUE CLUSTER INDEX <索引名> ON <表名>(<列名><次序>,<列名><次序> );采用B+树或HASH索引由RDBMS决定,索引是关系数据库内部实现技术,属于内模式CREATE INDEX语句定义索引时,可以定义索引是唯一索引、非唯一索引或聚簇索引、PRIMARY KEY、UNIQUE每一个索引值对应唯一数据记录、CLUSTER一表一聚簇、 数据查询SELECT ALL|DISTINCT <目标列表达式>,<目标列表达式> FROM <表名或视图名>,<表名或视图名> WHERE <条件表达式> GROUP BY <列名1> HAVING <条件表达式> ORDER BY <列名2> ASC|DESC ;消除取值重复的行:如果没有指定DISTINCT关键词,则缺省为ALL 字符匹配: NOT LIKE<匹配串>ESCAPE <换码字符>,匹配串为固定字符串。%任意长度字符,_单个任意字符,匹配串为含通配符的字符串。ESCAPE '' 表示“”为换码字符,使用换码字符将通配符转义为普通字符。空值查询:IS NULL 或 IS NOT NULL !“IS” 不能用 “=” 代替ORDER BY子句可以按一个或多个属性列排序,升序:ASC;降序:DESC;缺省值为升序当排序列含空值时ASC:排序列为空值的元组最后显示;DESC:排序列为空值的元组最先显示;聚集函数:计数:COUNT(DISTINCT|ALL *);COUNT(DISTINCT|ALL <列名>);计算总和:SUM(DISTINCT|ALL <列名>)计算平均值:AVG(DISTINCT|ALL <列名>)最大最小值:MAX(DISTINCT|ALL <列名>);MIN(DISTINCT|ALL <列名>);GROUP BY子句分组:细化聚集函数的作用对象未对查询结果分组,聚集函数将作用于整个查询结果对查询结果分组后,聚集函数将分别作用于每个组 作用对象是查询的中间结果表。按指定的一列或多列值分组,值相等的为一组。HAVING短语与WHERE子句的区别:!作用对象不同WHERE子句作用于基表或视图,从中选择满足条件的元组HAVING短语作用于组,从中选择满足条件的组。自身连接:一个表与其自己进行连接,需要给表起别名以示区别由于所有属性名都是同名属性,因此必须使用别名前缀SELECT , FROM Course FIRST,Course SECOND WHERE = ;外连接与普通连接的区别:普通连接操作只输出满足连接条件的元组外连接操作以指定表为连接主体,将主体表中不满足连接条件的元组一并输出SELECT ,Sname,Ssex,Sage,Sdept,Cno,GradeFROM StudentLEFT OUT JOINSCON =;子查询的限制:不能使用ORDER BY子句不相关子查询: 子查询的查询条件不依赖于父查询由里向外逐层处理。每个子查询在上一级查询处理前求解,它的结果用于建立其父查询的查找条件。相关子查询:子查询的查询条件依赖于父查询。首先取外层查询中表的一个元组,根据它与内层查询相关的属性值处理内层查询,若WHERE子句返回值为真,则取此元组放入结果表,再取外层表的下一个元组,重复这一过程,直至外层表全部检查完为止。一、带有IN谓词的子查询:此为不相关子查询二、带有比较运算符的子查询当能确切知道内层查询返回单值时,可用比较运算符(>,<,=,>=,<=,!=或< >)。与ANY或ALL谓词配合使用!子查询一定要跟在比较符之后三、带有ANY(SOME)或ALL谓词的子查询ANY:任意一个值;ALL:所有值;执行此查询时,首先处理子查询,找出满足条件的项构成一个集合2.处理父查询四、带有EXISTS谓词的子查询1. EXISTS谓词 子查询找到的提交存在量词带EXISTS谓词的子查询不返回任何数据,只产生逻辑真值”true”或逻辑假值”false”。若内层查询结果非空,则外层的WHERE子句返回真值若内层查询结果为空,则外层的WHERE子句返回假值由EXISTS引出的子查询,其目标列表达式通常都用* ,因为带EXISTS的子查询只返回真值或假值,给出列名无实际意义。2. NOT EXISTS谓词 子查询中 找不到的提交若内层查询结果非空,则外层的WHERE子句返回假值若内层查询结果为空,则外层的WHERE子句返回真值所有带IN谓词、比较运算符、ANY和ALL谓词的子查询都能用EXISTS子查询替换用EXISTS/NOT EXISTS实现全称量词(难点)SQL语言中没有全称量词(For all)把带有全称量词的谓词转换为等价的带有存在量词的谓词:(x)P ( x(P) 安全标准简介:TCSEC标准、CC标准TCSEC/TDI,从安全策略、责任、保证、文档四个方面来描述安全性级别划分的指标 存取控制存取控制机制由定义用户权限和合法权限检查两部分组成用户权限定义和合法权检查机制一起组成了DBMS的安全子系统 自主存取控制方法用户权限组成:数据对象、操作类型、定义存取权限称为授权 授权与回收GRANT语句的一般格式: GRANT <权限>,<权限>. ON <对象类型> <对象名> TO <用户>,<用户>. WITH GRANT OPTION;1、WITH GRANT OPTION:指定:可以再授予;没有指定:不能传播;不允许循环授权2、GRANT ALL PRIVILIGESON TABLE STUDENTTO PUBLIC;-将STUDENT表的所有权限授予所有用户3、 对属性列的授权时必须明确指出相应属性列名REVOKE语句的一般格式为: REVOKE <权限>,<权限>. ON <对象类型> <对象名>FROM <用户>,<用户>.;1、 FROM USER CASCADE;系统收回直接或间接从USER处获得的权限 2、REVOKE ALL PRIVILIGESON TABLE STUDENTFROM PUBLIC;-将STUDENT表的所有用户的所有权限收回CREATE USER语句格式:CREATE USER <username> WITHDBA | RESOURCE | CONNECT;DBA可CREATE USER|SCHEMA|TABLE + 登录数据库查询数据和操纵RESOURCE可CREATE TABLE + 登录数据库查询数据和操纵CONNECT可登录数据库查询数据和操纵 数据库角色:是被命名的一组与数据库操作相关的权限,角色是权限的集合作用:管理数据库权限,简化用户授权过程角色创建:CREATE ROLE <角色名>角色授权: GRANT <权限>,<权限> ON <对象类型>对象名 TO <角色>,<角色> 强制存取控制方法强制存取控制(MAC):保证更高程度的安全性使用户不能直接感知或进行控制主体是系统中的活动实体DBMS所管理的实际用户 代表用户的各进程客体是系统中的被动实体,是受主体操纵的文件、基表、索引、视图强制存取控制规则 (1)仅当主体的许可证级别大于或等于客体的密级时,该主体才能读取相应的客体 (2)仅当主体的许可证级别等于客体的密级时,该主体才能写相应的客体先DAC检查,通过的数据对象再由系统进行MAC检查,通过检查的数据对象方可存取。 视图机制主要功能是提供数据独立性,无法完全满足要求间接实现了支持存取谓词的用户权限定义CREATE VIEW CS_Student AS 审计(Audit)审计日志(Audit Log) 将用户对数据库的所有操作记录在上面DBA利用审计日志 找出非法存取数据的人、时间和内容C2以上安全级别的DBMS必须具有AUDIT语句:设置审计功能AUDIT ALTER,UPDATE ONSC;NOAUDIT语句:取消审计功能NOAUDIT ALTER,UPDATE ON SC;数据库的完整性:数据的正确性和相容性为维护数据库的完整性,DBMS必须:1.提供定义完整性约束条件的机制2.提供完整性检查的方法3.违约处理插入或对主码列进行更新操作时,RDBMS按照实体完整性规则自动进行检查。包括:1. 检查主码值是否唯一,如果不唯一则拒绝插入或修改2. 检查主码的各个属性是否为空,只要有一个为空就拒绝插入或修改 关系模型的参照完整性定义在CREATE TABLE中用FOREIGN KEY短语定义哪些列为外码用REFERENCES短语指明这些外码参照哪些表的主码 用户定义的完整性用户定义的完整性就是针对某一具体应用的数据必须满足的语义要求 RDBMS提供,而不必由应用程序承担列值唯一 UNIQUE用CHECK短语指定列值应该满足的条件 完整性约束命名子句CONSTRAINT <完整性约束条件名>PRIMARY KEY短语|FOREIGN KEY短语|CHECK短语可以先删除原来的约束条件,再增加新的约束条件ALTER TABLE StudentDROP CONSTRAINT C1;ALTER TABLE StudentADD CONSTRAINT C1 CHECK (Sno BETWEEN AND ); 关系数据理论问题的提出数据依赖的类型:函数依赖、多值依赖关系模式Student<U, F>中存在的问题1. 数据冗余太大2. 更新异常3. 插入异常4. 删除异常原因:由存在于模式中的某些数据依赖引起的解决方法:通过分解关系模式来消除其中不合适的数据依赖 2NF若R1NF,且每一个非主属性完全函数依赖于码,则R2NF。 3NF若R3NF,则每一个非主属性既不部分依赖于码也不传递依赖于码。 BC范式(BCNF)每一个决定属性因素都包含码。 数据库设计的特点,数据库建设的基本规律:三分技术,七分管理,十二分基础数据,结构(数据)设计和行为(处理)设计相结合。 数据库设计方法新奥尔良(New Orleans)方法:将数据库设计分为若干阶段和步骤 基于E-R模型的数据库设计方法:概念设计阶段广泛采用3NF(第三范式)的设计方法:逻辑阶段可采用的有效方法 ODL(Object Definition Language)方法:面向对象的数据库设计方法 数据库设计的基本步骤需求分析:了解与分析用户需求概念结构设计:画E-R图逻辑结构设计:将E-R图转化为表物理结构设计:选取存取结构和存取方法数据库实施阶段、数据库运行和维护阶段 数据字典:进行详细的数据收集和数据分析所获得的主要结果数据字典的内容:数据项、数据结构、数据流、数据存储、处理过程