ToB企服应用市场:ToB评测及商务社交产业平台

标题: 数据库系统概论 ---知识点大全(期末复习版) [打印本页]

作者: 自由的羽毛    时间: 2024-6-22 12:55
标题: 数据库系统概论 ---知识点大全(期末复习版)
 (一)绪论


数据(Data):是数据库中存储的基本对象
数据的定义:形貌事物的符号记载
数据的种类:笔墨、图形、图象、声音等
数据的特点:数据与其语义是不可分的
数据库(Database,简称DB):是长期储存在计算机内、有构造的、可共享大量数据集合
 


数据库管理系统(Database  Management System,简称DBMS):是位于用户与操纵系统之间的一层数据管理软件。
DBMS的用途:科学地构造和存储数据、高效地获取和维护数据。
DBMS的主要功能
   数据库的运行管理      保证数据的安全性、完整性        多用户对数据的并发使用
   发生故障后的系统恢复     数据库的建立和维护功能(实用步伐)    数据库数据批量装载
    数据库转储   介质故障恢   数据库的重构造        性能监视等
  
数据库系统(Database System,简称DBS)是指在计算机系统中引入数据库后的系统构成。
    数据库系统的构成:由数据库、数据库管理系统(及其开辟工具)、应用系统、数据库管理员(和用户)构成。(三树一人)

          数据管理:对数据举行分类、构造、编码、存储、检索和维护,是数据处理的中心题目
数据模子这个工具来抽象、表示和处理现实天下中的数据和信息。



数据模子分成两个差别的层次


(1) 概念模子   也称信息模子,它是按用户的观点来对数据和信息建模。 
(2) 数据模子   主要包罗网状模子、层次模子、关系模子等,它是按计算机系统的观点对数据建模。 

      客观对象的抽象过程---两步抽象:① 现实天下中的客观对象抽象为概念模子;② 把概念模子转换为某一DBMS支持的数据模子。
数据结构:对象类型的集合     即数据结构是对系统静态特性的形貌

两类对象:①与数据类型、内容、性质有关的对象   ②与数据之间接洽有关的对象
数据操纵:对数据库中各种对象(型)的实例(值)允许实行的操纵及有关的操纵规则
数据操纵的类型:检索       更新(包罗插入、删除、修改)

数据模子对操纵的定义:
①操纵简直切寄义 ;②操纵符号;③操纵规则(如优先级);④ 实现操纵的语言数据模子对操纵的定义

数据操纵是对系统动态特性的形貌。

数据模子对约束条件的定义:和规定本数据模子必须遵守的基本的通用的完整性约束条件。提供定义完整性约束条件的机制,以反映具体应用所涉及的数据必须遵守的特定的语义约束条件


信息天下中的基本概念
(1) 实体(Entity) 
客观存在并可相互区别的事物称为实体。
 (2) 属性(Attribute) 
实体所具有的某一特性称为属性。
一个实体可以由若干个属性来描画。  
(3) 码(Key) 
唯一标识实体的属性集称为码。 
(4) 域(Domain) 
属性的取值范围称为该属性的域。 
(5) 实体型(Entity Type) 
用实体名及其属性名集合来抽象和描画
同类实体称为实体型
(6) 实体集(Entity Set) 
同型实体的集合称为实体集

接洽(Relationship)  
现实天下中事物内部以及事物之间的接洽在信息天下中反映为实体内部的接洽和实体之间的接洽。
实体内部的接洽通常是指构成实体的各属性之间的接洽 。
实体之间的接洽通常是指差别实体集之间的接洽。

 

两个实体型间的接洽 


概念模子的表示方法
实体-接洽方法(E-R方法):
①用E-R图来形貌现实天下的概念模子;
②E-R方法也称为E-R模子;


常用数据模子
非关系模子:层次模子(Hierarchical Model网状模子(Network Model )

      2.数据结构:以基本层次接洽为基本单元
  基本层次接洽:两个记载以及它们之间的一对多(包罗一对一)的接洽
表示方法
实体型:用记载类型形貌。每个结点表示一个记载类型。
属性:用字段形貌。每个记载类型可包含若干个字段。
接洽:用结点之间的连线表示记载(类)型之间的一对多的接洽。

层次模子的特点: 

 层次模子的优缺点:


网状数据模子的数据结构
网状模子:满足下面两个条件的基本层次接洽的集合为网状模子。①允许一个以上的结点无双亲;②一个结点可以有多于一个的双亲
表示方法(与层次数据模子相同)
实体型:用记载类型形貌。     每个结点表示一个记载类型。
属性:用字段形貌。 每个记载类型可包含若干个字段。
接洽:用结点之间的连线表示记载(类)型之间的一对多的父子接洽。


       网状模子与层次模子的区别 : 网状模子允许多个结点没有双亲结点 ;网状模子允许结点有多个双亲结点; 网状模子允许两个结点之间有多种接洽(复合接洽) ;网状模子可以更直接地去形貌现实天下 ;层次模子现实上是网状模子的一个特例

网状模子的优缺点: 


关系模子的基本概念
关系(Relation)一个关系对应通常说的一张表。
元组(Tuple)表中的一行即为一个元组。
 属性(Attribute)表中的一列即为一个属性,给每一个属性起一个名称即属性名。关系必须是规范化的,满足肯定的规范条件
表示方法
实体型:用关系表表示
属性:用属性名表示
接洽:  一对一:隐含在实体对应关系中 
           一对多:隐含在实体对应关系中 
             多对多:用新的关系表表示

关系必须是规范化的,满足肯定的规范条件,如 不允许表中还有表最基本的规范条件:关系的每一个分量必须是一个不可分的数据项。  

关系数据模子的优缺点 

关系数据模子的操纵与完整性约束

关系模子的完整性约束

关系数据模子的存储结构
① 表以文件形式存储
② 有的DBMS一个表对应一个操纵系统文件
③ 有的DBMS自己设计文件结构

关系模子的优缺点
①  存取路径对用户透明导致查询效率往往不如非关系数据模子
②  为进步性能,必须对用户的查询请求举行优化
③  增加了开辟数据库管理系统的难度

数据库系统结构



 数据库系统的三级模式结构


 



数据库的二级映像功能与数据独立性


 外模式/模式映像

       映象定义通常包含在各自外模式的形貌中保证数据的逻辑独立性 ;当模式改变时,数据库管理员修改有关的外模式/模式映象,可以使外模式保持不变; 应用步伐是依据数据的外模式编写的,从而应用步伐不必修改,保证了数据与步伐的逻辑独立性,简称数据的逻辑独立性。 修改 外模式/模式 的映射(create view)  外模式/模式映象可以保证获得肯定程度的数据的逻辑独立性(非 完全独立)。

模式/内模式映象
      模式/内模式映象定义了数据全局逻辑结构与存储结构之间的对应关系 。比方,说明逻辑记载和字段在内部是如何表示的。
      数据库中模式/内模式映象是唯一的。 该映象定义通常包含在模式形貌中。保证数据的物理独立性。
         当数据库的存储结构改变了,数据库管理员修改模式/ 内模式映象,使模式保持不变。比方,存储结构:由堆存储—hash存储, 从而应用步伐不受影响。
      保证了数据与步伐的物理独立性,简称数据的物理独立性 。
 模式/内模式映象保证获得完全的数据物理独立性
总结:

 


 



分布式结构的数据库系统

数据库管理员(DBA)


(二)关系数据库


关系
域(Domain)  
    域是一组具有相同数据类型的值的集合。例:
  1. 整数
  2.介于某个取值范围的日期
  3.{‘男’,‘女’}
  4.长度指定长度的字符串集合
  5.介于某个取值范围的整数
  6.实数
  
 笛卡尔积(Cartesian Product)给定一组域D1,D2,…,Dn,这些域中可以有相同的。D1,D2,Dn的笛卡尔积为:
 DD2×…×Dn={(d1,d2,…,dn)|diÎDii=1,2,…,n
所有域的所有取值的一个组合   不能重复

        元组(Tuple)笛卡尔积中每一个元素(d1,d2,…,dn)叫作一个n元组(n-tuple)或简称元组。
   

关系(Relation)
1) 关系
DD2×…×Dn的子集叫作在域D1,D2,…,Dn上的关系,表示为 RD1,D2,…,Dn
         R关系名
         n关系的目或度(Degree)
2) 元组
关系中的每个元素是关系中的元组,通常用t表示。

3) 单元关系与二元关系
n=1时,称该关系为单元关系(Unary relation)。
n=2时,称该关系为二元关系(Binary relation)

4) 关系的表示
关系也是一个二维表,表的每行对应一个元组,表的每列对应一个域。

5) 属性
关系中差别列可以对应相同的域,为了加以区分,必须对每列起一个名字,称为属性(Attribute)。   n目关系必有n个属性。

6) 码
候选码(Candidate key
①若关系中的某一属性组的值能唯一地标识一个元组,则称该属性组为候选码
②在最简单的情况下,候选码只包含一个属性。称为全码(All-key
在最极端的情况下,关系模式的所有属性组是这个关系模式的候选码,称为全码(All-key)

主码
若一个关系有多个候选码,则选定此中一个为主码(Primary key)主码的诸属性称为主属性(Prime attribute)。不包含在任何侯选码中的属性称为非码属性(Non-key attribute) 

7) 三类关系
基本关系(基本表或基表)现实存在的表,是现实存储数据的逻辑表示。
查询表    结果对应的表。
视图表      由基本表或其他视图表导出的表,是虚表,不对应现实存储的数据。

基本关系的性质
① 列是同质的(Homogeneous)
每一列中的分量是同一类型的数据,来自同一个域

② 差别的列可出自同一个域
此中的每一列称为一个属性       差别的属性要给予差别的属性名

③ 列的顺序无所谓
列的序次可以任意交换  ,遵循这一性质的数据库产品(如ORACLE),增加新属性时,永远是插至最后一列,但也有许多关系数据库产品没有遵循这一性质,比方FoxPro仍旧区分了属性顺序。

④ 任意两个元组不能完全相同
由笛卡尔积的性质决定但许多关系数据库产品没有遵循这一性质。比方:Oracle,FoxPro等都允许关系表中存在两个完全相同的元组,除非用户特别定义了相应的约束条件。

⑤ 行的顺序无所谓
行的序次可以任意交换,遵循这一性质的数据库产品(如ORACLE),插入一个元组时永远插至最后一行,但也有许多关系数据库产品没有遵循这一性质,比方FoxPro仍旧区分了元组的顺序。

⑥ 分量必须取原子值
每一个分量都必须是不可分的数据项。这是规范条件中最基本的一条

关系模式(Relation Schema)是型。关系是值关系模式是对关系的形貌,它包罗以下要素:


定义关系模式
关系模式可以形式化地表示为:
     RUD,dom,F
 R  关系名
U       构成该关系的属性名集合
D     属性组U中属性所来自的域
dom  属性向域的映象集合
F     属性间的数据依靠关系集合
    
 关系模式通常可以简记为  R (U)    或    R (A1,A2,…,An )   
                                         R   关系名  
                                       A1,A2,…,An      属性名
注:A1,A2,…,An为属性名;域名及属性向域的映象常常直接说明为属性的类型、长度。

关系模式:对关系的形貌静态的、稳固的
关系:关系模式在某一时刻的状态或内容动态的、随时间不断厘革的,关系模式和关系往往统称为关系。两者通过上下文加以区别。

1. 关系数据库
在一个给定的应用范畴中,所有实体及实体之间接洽的关系的集合构成一个关系数据库。
2. 关系数据库的型与值
关系数据库也有型和值之分,关系数据库的型称为关系数据库模式,是对关系数据库的形貌
若干域的定义,在这些域上定义的若干关系模式,关系数据库的值是这些关系模式在某一时刻对应的关系的集合,通常简称为关系数据库

3  关系的完整性
    关系模子的完整性规则是对关系的某种约束条件。
关系模子中三类完整性约束:
实体完整性
参照完整性
用户定义的完整性
      实体完整性和参照完整性是关系模子必须满足的完整性约束条件,被称作是关系的两个不变性,应该由关系系统自动支持。

实体完整性
实体完整性规则(Entity Integrity)
若属性A是基本关系R的主属性,则属性A不能取空值。
关系模子必须遵守实体完整性规则的原因:
(1) 实体完整性规则是针对基本关系而言的。一个基本表通常对应现实天下的一个实体集或多对多接洽。
(2) 现实天下中的实体和实体间的接洽都是可区分的,即它们具有某种唯一性标识。
(3) 相应地,关系模子中以主码作为唯一性标识。
(4) 主码中的属性即主属性不能取空值。  空值就是“不知道”或“无意义”的值。
     主属性取空值,就说明存在某个不可标识的实体,即存在不可区分的实体,这与第(2)点相矛盾,因此这个规则称为实体完整性。
留意   :实体完整性规则规定基本关系的所有,主属性都不能取空值。

参照完整性
1. 关系间的引用
2. 外码
3. 参照完整性规则
关系间的引用
在关系模子中实体及实体间的接洽都是用关系来形貌的,因此可能存在着关系与关系间的引用。

2.外码(Foreign Key
F是基本关系R的一个或一组属性,但不是关系R的码。假如F与基本关系S的主码Ks相对应,则称F是基本关系R的外码。基本关系R为参照关系(Referencing  Relation)基本关系S为被参照关系(ReferencedRelation)或目标关系(Target Relation)。
说明
   当外码与相应的主码属于差别关系时,往往取相同的名字,以便于辨认。

3. 参照完整性规则
若属性(或属性组)F是基本关系R的外码,它与基本关系S的主码Ks相对应(基本关系RS不肯定是差别的关系),则对于R中每个元组在F上的值必须为:
· 或者取空值(F的每个属性值均为空值)
· 或者等于S中某个元组的主码值。
 
 用户定义的完整性

Operation  运算,操纵
Operator    算子
Operand     操纵数

1.关系代数
一种抽象的查询语言,用对关系的运算来表达查询

2.关系代数运算的三个要素
运算对象:关系
运算结果:关系
运算符:2类(集合运算和关系运行)

关系代数运算符 
运算符寄义
集合运算符
×笛卡尔积
专门的关系运算符σ选择
投影
毗连
÷



4.关系代数运算的分类
 传统的集合运算
            并、差、交、广义笛卡尔积
专门的关系运算
            选择、投影、毗连、除

5.常用的表示记号 
(1) R,t∈R,t[Ai]
 设关系模式为R(A1,A2,…,An),它的一个关系设为RtR表示tR的一个元组,t[Ai]则表示元组t中相应于属性Ai的一个分量 。
(2)
 


(3) 
 


(4) 




传统的集合运算(关系代数运算是以集合运算为底子的运算)

并(Union)关系R与关系S的并记作   RS = { t|t∈Rt S } 仍为n目关系,由属于R或属于S的元组构成

差(execpt)关系R与关系S的差记作  R -S = { t|tRtS }  仍为n目关系,由属于R而不属于S的所有元组构成

③交  关系R与关系S的交记作    RS = { t|t∈ Rt S }或者  RS = R –(R-S)仍为n目关系,由既属于R又属于S的元组构成
 
④ 笛卡尔积 广义笛卡尔积(Extended Cartesian Product




专门的关系运算
1. 选择(Selection 



2. 投影(Projection 



3. 毗连(Join 

 关于毗连的一些概念:
悬浮元祖( dangling tuple ) :两个关系R和S在做自然毗连时,关系R中某些元 组有可能在S中不存在公共属性上值相称的元组 ,从而造成R中这些元组在操纵时被舍弃了,这 些被舍弃的元组称为悬浮元组。
外毗连 (OUTER JOIN)
假如把舍弃的元组也保存在结果关系中,而在其他 属性上填空值(Null),这种毗连就叫做外毗连。 

左外毗连(LEFT OUTER JOIN或LEFT JOIN)(留哪边就叫 啥外毗连)
 假如只把左边关系R中要舍弃的元组保留就叫做左外毗连
右外毗连
假如只把右边关系S中要舍弃的元组保留就叫做右外毗连(RIGHT OUTER JOIN或RIGHT JOIN)。


4. 除(Division 
 




(三)关系数据库尺度语言SQL

3.1 SQL概述





 

 

 



 


   概念增补:
  SQL可以分为数据定义、数据查询、数据更新、数据控制四大部分。
  基本表 :
  自己独立存在的表,关系表,是实表;
  SQL中一个关系就对应一个基本表;
  一个(或多个)基本表对应一个存储文件;
  一个表可以带若干索引;
  存储文件 :
  逻辑结构构成了关系数据库的内模式;
  物理结构是任意的,对用户透明;
  视图:
  从一个或几个基本表导出的表;
  数据库中只存放视图的定义而不存放视图对应的数据;
  视图是一个虚表;
  用户可以在视图上再定义视图 (比方,查询语句实行之后的结果);
  
3.2      

 



3.2.1模式的定义与删除

 定义模式 

删除模式



3.2.2基本表

定义基本表



 常用完整性约束

PRIMARY KEY与 UNIQUE的区别

       PRIMARY KEY  可空,可以在一个表里的一个或多个字段定义;PRIMARY KEY 不可空不可重复,在一个表里可以定义联合主键;
   简单的说,PRIMARY KEY  =UNIQUE  + NOT NULL
  

  删除基本表 

 


⑵ 删除属性列
 直接/间接删除

直接删除属性列新)
例:ALTER TABLE Student  Drop Scome;
ALTER TABLE Student MODIFY Sage SMALLINT;
注:修改原有的列定义有可能会破坏已有数据

修改基本表





表与模式





3.3  建立与删除索引 


 建立索引 



唯一值索引




 聚簇索引&非聚簇索引 
 


更新索引

 
删除索引 




3.5      

查询语句:

①SELECT子句:指定要显示的属性列
②FROM子句:指定查询对象(基本表或视图)
③ WHERE子句:指定查询条件
④ GROUP BY子句:对查询结果按指定列的值分组,该属性列值相称的元组为一个组。通常会在每组中作用集函数。
⑤HAVING短语:筛选出只有满足指定条件的组
⑥ORDER BY子句:对查询结果表按指定列值的升序或降序排序





  单表查询 
查询仅涉及一个表,是一种最简单的查询操纵
⑴ 选择表中的若干列
⑵ 选择表中的若干元组
⑶ 对查询结果排序
 ⑷ 使用集函数
⑸ 对查询结果分组 

查询经过计算的值 
SELECT子句的<目标列表达式>为表达式
①算术表达式     ②字符串常量     ③函数      ④列别名

二、选择表中的若干元组 
WHERE子句常用的查询条件


(1) 比较大小
在WHERE子句的<比较条件>中使用比较运算符

(2) 确定范围
使用谓词   BETWEEN …  AND  …
                 NOT BETWEEN  …  AND  …

(3) 确定集合
使用谓词     IN <值表>,  NOT IN <值表>
          <值表>:用逗号分隔的一组取值

(4) 字符串匹配
<匹配串>:指定匹配模板
      匹配模板:固定字符串或含通配符的字符串
      当匹配模板为固定字符串时,
      可以用 = 运算符取代 LIKE 谓词
      用 != 或 < >运算符取代 NOT LIKE 谓词

通配符

查询DB_Design课程的课程号和学分。
      SELECT Cno,Ccredit
      FROM Course
      WHERE Cname LIKE 'DB\_Design'      
                       ESCAPE '\'

(5) 涉及空值的查询

(6) 多重条件查询
用逻辑运算符AND和 OR来联结多个查询条件

可用来实现多种其他谓词

三、对查询结果排序 
使用ORDER BY子句
          可以按一个或多个属性列排序: 升序:ASC;降序:DESC;缺省值为升序

当排序列含空值时

四、使用集函数 
 主要集函数

注:处COUNT(*) 外,都跳过空值只处理非空值。

五、对查询结果分组 
使用GROUP BY子句 分组 
细化集函数的作用对象

使用HAVING短语筛选最终输出结果

毗连查询 
同时涉及多个表的查询称为毗连查询
用来毗连两个表的条件称为毗连条件或毗连谓词 


毗连操纵的实行过程

排序归并法(SORT-MERGE)


索引毗连(INDEX-JOIN)
对表2按毗连字段建立索引;
对表1中的每个元组,依次根据其毗连字段值查询表2的索引,从中找到满足条件的元组,找到后就将表1中的第一个元组与该元组拼接起来,形成结果表中一个元组 

SQL中毗连查询的主要类型
广义笛卡尔积;等值毗连(含自然毗连);  非等值毗连查询;自身毗连查询;外毗连查询;复合条件毗连查询


一、广义笛卡尔积 

二、等值与非等值毗连查询 
等值毗连
自然毗连
非等值毗连查询 
毗连运算符 不是 = 的毗连操纵

三、自身毗连 

     2.需要给表起别名以示区别。

      3.由于所有属性名都是同名属性,因此必须使用别名前缀。

四、外毗连(Outer Join 
外毗连与普通毗连的区别
 ① 普通毗连操纵只输出满足毗连条件的元组
② 外毗连操纵以指定表为毗连主体,将主体表中不满足毗连条件的元组一并输出
③在表名后面加外毗连操纵符(*)或(+)指定非主体表
④非主体表有一“万能”的虚行,该行全部由空值构成
⑤虚行可以和主体表中所有不满足毗连条件的元组举行毗连
⑥由于虚行各列全部是空值,因此与虚行毗连的结果中,来自非主体表的属性值全部是空值 
  留意:
 左外毗连:外毗连符出现在毗连条件的左边      右外毗连:外毗连符出现在毗连条件的右边 
五、复合条件毗连
WHERE子句中含多个毗连条件时,称为复合条件毗连

  2. 不相关子查询
      子查询的查询条件不依靠于父查询,是由里向外逐层处理。即每个子查询在上一级查询处理之前求解,子查询的结果用于建立其父查询的查找条件。

3.相关子查询
子查询的查询条件依靠于父查询
①起首取外层查询中表的第一个元组,根据它与内层查询相关的属性值处理内层查询,若WHERE子句返回值为真,则取此元组放入结果表;②然后再取外层表的下一个元组;③重复这一过程,直至外层表全部检查完为止。


引出子查询的谓词

⒈带有IN谓词的子查询
⒉带有比较运算符的子查询


⒊带有ANYALL谓词的子查询
谓词语义
ANY:任意一个值          ALL:所有值
需要共同使用比较运算符
> ANY大于子查询结果中的某个值       
 > ALL大于子查询结果中的所有值
< ANY小于子查询结果中的某个值 
< ALL小于子查询结果中的所有值
>= ANY大于等于子查询结果中的某个值
>= ALL大于等于子查询结果中的所有值
<= ANY小于等于子查询结果中的某个值    
<= ALL小于等于子查询结果中的所有值
= ANY等于子查询结果中的某个值
=ALL等于子查询结果中的所有值(通常没有现实意义)
!=(或<>ANY不等于子查询结果中的某个值
!=(或<>ALL不等于子查询结果中的任何一个值
        

⒋带有EXISTS谓词的子查询


   

3. 差别形式的查询间的更换
       一些带EXISTS或NOT EXISTS谓词的子查询不能被其他形式的子查询等价更换
      所有带IN谓词、比较运算符、ANY和ALL谓词的子查询都能用带EXISTS谓词的子查询等价更换。

 


5.用EXISTS/NOT EXISTS实现全称量词(难点)
        ("x)P ≡ Ø ($ x(Ø P))

6. EXISTS/NOT EXISTS实现逻辑蕴函(难点)
                   p ® q  Ø pq


3.3.5  集合查询

尺度SQL直接支持的集合操纵种类:并操纵(UNION)

一般商用数据库支持的集合操纵种类
并操纵(UNION)
交操纵(INTERSECT)
差操纵(MINUS)

1 并操纵


留意:到场UNION操纵的各结果表的列数必须相同;对应项的数据类型也必须相同

2 交操纵 

尺度SQL中没有提供集合交操纵,但可用其他方法间接实现。
3 差操纵

4. 对集合操纵结果的排序

3.4 数据更新


3.4.1  插入数据
 




2. 插入子查询结果




3.4.2  修改数据



三种修改方式

   UPDATE SC
          SET  Grade=0
          WHERE  'CS'=
                (SELETE Sdept
                 FROM  Student
                 WHERE  Student.Sno = SC.Sno)
  


SET子句      指定修改方式    
  要修改的列
  修改后取值

WHERE子句        指定要修改的元组
缺省表示要修改表中的所有元组
DBMS在实行修改语句时会检查修改操纵
是否破坏表上已定义的完整性规则

DELETE
       FROM     <表名>
       [WHERE <条件>]

DBMS在实行插入语句时会检查所插元组
是否破坏表上已定义的完整性规则

更新数据与数据一致性
DBMS在实行插入、删除、更新语句时必须保证数据库一致性

3.5      

视图的特点

基于视图的操纵
1. 建立视图


DBMS实行CREATE VIEW语句时只是把视图的定义存入数据字典,并不实行此中的SELECT语句。在对视图查询时,按视图的定义从基本表中将数据查出。构成视图的属性列名全部省略或全部指定。

​​​​​​​省略:
    由子查询中SELECT目标列中的诸字段构成​​​​​​​明确指定视图的所有列名:
(1) 某个目标列是集函数或列表达式
(2) 目标列为  *
(3) 多表毗连时选出了几个同名列作为视图的字段
(4) 需要在视图中为某个列启用新的更符合的名字

WITH CHECK OPTION
    透过视图举行增编削操纵时,不得破坏视图定义中的谓词条件(即子查询中的条件表达式)带表达式的视图。
定义一个反映门生出生年份的视图。
           CREATE  VIEW BT_S(SnoSnameSbirth)
                 AS
             SELECT SnoSname2000-Sage
             FROM  Student
  设置一些派生属性列, 也称为假造列--Sbirth
带表达式的视图必须明确定义构成视图的各个属性列名
     一类不易扩充的视图 SELECT * 方式创建的视图可扩充性差,应尽可能避免
2. 删除视图
​​​​​​​



3.5.2  查询视图



3.5.3  更新视图

    DBMS在更新视图时会举行检查,防止用户通过视图对不属于视图范围内的基本表数据举行更新

更新视图的限制


 3.5.4  视图的作用 


(四)数据库安全性

4.1授权
4.2 收回权限
数据控制亦称为数据掩护,包罗数据的:
SQL语言的数据控制功能
SQL语言提供了数据控制功能,可以或许在肯定程度上保证数据库中数据的完全性、完整性,并提供了肯定的并发控制及恢复能力。

1. 完整性
CREATE TABLE语句
ALTER TABLE语句



2. 并发控制

3. 恢复


4. 安全性
存取控制:控制用户只能存取他有权存取的数据
规定差别用户对于差别数据对象所允许实行的操纵
DBMS实现数据安全性掩护的过程

41  

       GRANT <权限>[,<权限>]...
          [ON <对象类型> <对象名>]
           TO <用户>[,<用户>]...
          [WITH GRANT OPTION];

(1) 操纵权限


对象TABLE操纵权限
属性列TABLE SELECT ,INSERT,UPDATE 
DELECT,ALL  PIVIEGES 
视图TABLE SELECT ,INSERT,UPDATE 
DELECT,ALL  PIVIEGES 
基本表TABLE SELECT ,INSERT,UPDATE 
DELECT ,ALTER ,INDEX,ALL  PIVIEGES 
数据库DATABASECREATETAB




(2) 用户的权限
   一个或多个具体用户
   PUBLIC(全体用户)

(3) WITH GRANT OPTION子句
  获得某种权限的用户还可以把这种权限再授予别的用户。

      2.没有指定WITH GRANT OPTION子句:
  获得某种权限的用户只能使用该权限,不能流传该权限
查询Student表权限授给用户U1
         GRANT   SELECT
        ON   TABLE   Student
        TO   U1;
  
把对Student表和Course表的全部权限授予用户U2和U3
         GRANT ALL PRIVILIGES
        ON TABLE Student, Course
        TO U2, U3;
  
  4.2  收回权限

         REVOKE <权限>[,<权限>]...
        [ON <对象类型> <对象名>]
        FROM <用户>[,<用户>]...;
  功能:从指定用户那里收回对指定对象的指定权限


第4章  数据库安全性
数据库系统的安全掩护步伐是否有效是数据库系统主要的性能指标之一
4.1  计算机安全性概论
什么是计算机系统安全性
      为计算机系统建立和接纳的各种安全掩护步伐,以掩护计算机系统中的硬件、软件及数据,防止其因偶尔或恶意的原因使系统遭到破坏,数据遭到更改或泄漏等。
技能安全
       指计算机系统中采用具有肯定安全性的硬件、软件来实现对计算机系统及其所存数据的安全掩护,当计算机系统受到无意或恶意的攻击时仍能保证系统正常运行,保证系统内的数据不增加、不丢失、不泄漏。
管理安全
        软硬件不测故障、园地的不测变乱、管理不善导致的计算机设备和数据介质的物理破坏、丢失等安全题目
政策法律类
     政府部分建立的有关计算机犯罪、数据安全保密的法律道德准则和政策法规、法令。

安全尺度简介
发展历史:

安全尺度简介 

TCSEC/TDI安全级别划分 


  R1.1 自主存取控制 (Discretionary Access  Control,简记为DAC)
  R1.2 客体重用(Object Reuse)
  R1.3 标记(Labels)
  R1.4 逼迫存取控制(Mandatory Access Control,简记为MAC)

 2.R2 责任(Accountability)
  R2.1 标识与鉴别(Identification &  Authentication)
  R2.2 审计(Audit)

3.R3 保证(Assurance)
  R3.1 操纵保证(Operational Assurance)
  R3.2 生命周期保证(Life Cycle Assurance)

R4 文档(Documentation)
  R4.1 安全特性用户指南(Security Features User's Guide)
  R4.2 可信设施手册(Trusted Facility  Manual)
  R4.3 测试文档(Test Documentation)
  R4.4 设计文档(Design Documentation)

CC评估保证级划分




  数据库安全性控制
  用户标识与鉴别
系统提供的最外层安全掩护步伐
基本方法
  存取控制
用户权限定义和正当权检查机制一起构成了DBMS的安全子系统

常用存取控制方法

 自主存取控制的特点
 逼迫存取控制的特点


  自主存取控制方法

 授权与接纳

 接纳:

 SQL灵活的授权机制


关系数据库中授权的数据对象粒度

   逼迫存取控制方法
什么是逼迫存取控制




   视图机制

 审计
审计的定义



 审计功能的可选性:①审计很费时间和空间   ②DBA可以根据应用对安全性的要求,灵活地打开或关闭审计功能。

4.2.8  数据加密


     美国1977年订定的官方加密尺度:数据加密尺度(Data Encryption Standard,简称DES)
4.3  统计数据库安全性
规则1:任何查询至少要涉及N(N富足大)个以上的记载
规则2:任意两个查询的相交数据项不能凌驾M个
规则3:任一用户的查询次数不能凌驾1+(N-2)/M                


第五章  数据库完整性
什么是数据库的完整性
完整性约束条件定义
完整性约束条件作用的对象
1. 静态列级约束
五类静态列级约束
1) 数据类型约束:数据的类型、长度、单元、精度等
2) 对数据格式的约束
3) 取值范围或取值集合的约束
4) 对空值的约束
5) 其他约束
2. 静态元组约束
   规定元组的各个列之间的约束关系
   静态元组约束只局限在元组上 
3. 静态关系约束
    关系的各个元组之间或若干关系之间存在的各种接洽或约束
    常见静态关系约束:
1) 实体完整性约束
2) 参照完整性约束
3) 函数依靠约束
4) 统计约束
4. 动态列级约束
   动态列级约束是修改列定义或列值时应满足的约束条件
1) 修改列定义时的约束
   2) 修改列值时的约束
5. 动态元组约束
 修改元组值: 各个字段之间要满足的约束条件
6. 动态关系约束
    关系厘革前后状态:限制条件
粒  度       状态 
列  级 
元 组 级 
关 系 级 
    静  态 
列定义
·类型
·格式
·值域
     ·空值 
元组值应满足的条件

   实体完整性约束
   参照完整性约束
   函数依靠约束
   统计约束 
     动  态 
改变列定义或列值 
元组新旧值之间应满足的约束条件 
关系新旧状态间应满足的约束条件 

10.2  完整性控制
一、DBMS的完整性控制机制
1. 定义功能
一个完满的完整性控制机制应该允许用户定义各类完整性约束条件。
2. 检查功能
    语句实行完后立即检查是否违反完整性约束
    完整性检查延伸到整个事务实行结束后举行
3. 违约反应
拒绝该操纵; 其他处理方法

完整性规则五元组表示:
(D,O,A,C,P)
   当用户发出什么操纵请求时需要检查该完整性规则
   是立即检查照旧延伸检查;
  3.A(Assertion) 数据对象必须满足的断言或语义约束这是规则的主体;
  4. C(Condition) 选择A作用的数据对象值的谓词;
  5. P(Procedure) 违反完整性规则时触发的过程。

1. 外码是否可以接受空值的题目

2.在被参照关系中删除元组时的题目
出现违约操纵的情况:
    删除被参照关系的某个元组(student)
   而参照关系有若干元组(SC)的外码值与被删除的被参照关系的主码值相同

3.在参照关系中插入元组时的题目

4. 修改被参照关系中主码的题目
(1)不允许修改主码
(2)允许修改主码   




第六章 关系数据理论
二、关系模式的形式化定义
关系模式由五部分构成,即它是一个五元组:
                    R(U, D, DOM, F)
R         关系名
U       构成该关系的属性名集合
D       属性组U中属性所来自的域
DOM:属性向域的映象集合
F        属性间数据的依靠关系集合


三、什么是数据依靠
1. 完整性约束的表现形式
2. 数据依靠
3. 数据依靠的类型
四、关系模式的简化表示

    简化为一个三元组:
                    RU, F

五、数据依靠对关系模式的影响
 数据冗余太大
​​​​​​​  浪费大量的存储空间
    例:每一个系主任的姓名重复出现
 更新异常(Update Anomalies
​​​​​​​数据冗余 ,更新数据时,维护数据完整性代价大。
例:某系更换系主任后,系统必须修改与该系门生有关的每一个元组
 插入异常(Insertion Anomalies
该插的数据插不进去
    例,假如一个系刚建立,尚无门生,我们就无法把这个系及其系主任的信息存入数据库。
 删除异常(Deletion Anomalies
​​​​​​​不应删除的数据不得不删
原因:由存在于模式中的某些数据依靠引起的
解决方法:通太过解关系模式来消除此中不符合的数据依靠。

6.2  规范化
6.2.1 函数依靠

一、函数依靠

 



 R的所有关系实例均要满足:
1. 函数依靠不是指关系模式R的某个或某些关系实例满足的约束条件,而是指R的所有关系实例均要满足的约束条件。
2. 函数依靠是语义范畴的概念。只能根据数据的语义来确定函数依靠。
       比方姓名→年龄这个函数依靠只有在不允许有同名人的条件下建立,若有同名,则年龄不依靠于姓名。
3. 数据库设计者可以对现实天下作逼迫的规定。

二、平凡函数依靠与非平凡函数依靠



在关系SC(Sno, Cno, Grade)中,
      非平凡函数依靠: (Sno, Cno)  Grade
      平凡函数依靠:     (Sno, Cno)  Sno
                                       (Sno, Cno)  Cno

三、完全函数依靠与部分函数依靠



四、转达函数依靠
 





 

 外码:


6.2.3 范式
      范式是符合某一种级别的关系模式的集合 ;关系数据库中的关系必须满足肯定的要求。满足差别程度要求的为差别范式;某一关系模式R为第n范式,可简记为RnNF
 


1NF的定义
   假如一个关系模式R的所有属性都是不可分的基本数据项,则R1NF

留意:第一范式是对关系模式的最最少的要求。不满足第一范式的数据库模式不能称为关系数据库。
(1) 插入异常
(2) 删除异常
(3) 数据冗余度大
(4) 修改复杂

2NF的定义
定义5.6  若关系模式R1NF,而且每一个非主属性都完全函数依靠于R的码,则R2NF

​​​​​​​3NF的定义




5.2.6  BC范式(BCNF
RBCNF
 


5.2.5 多值依靠与第四范式(4NF
 
定义6.10   第四范式

 


 
多值依靠

多值依靠的性质

 多值依靠与函数依靠区别
 


规范化小结




第七章  数据库设计


7.1.1  数据库和信息系统

7.1.2  数据库设计的特点
  2.数据库设计应该与应用系统设计相结合

   3. 结构和行为分离的设计


数据库设计的基本步骤
⒈需求分析阶段

⒉概念结构设计阶段

⒊逻辑结构设计阶段

⒋数据库物理设计阶段
​​​​​​​为逻辑数据模子选取一个最适合应用环境的物理结构(包罗存储结构和存取方法)

⒌数据库实施阶段

⒍数据库运行和维护阶段



数据库各级模式的形成过程

1. 需求分析阶段

2.概念设计阶段
 
3.逻辑设计阶段

4.物理设计阶段

5.数据库实施阶段
6.运行和维护阶段



 数据库设计差别阶段形成的数据库各级模式


 特点:
       然后根据用户处理的要求、安全性的思量,在基本表的底子上再建立须要的视图(View),形成数据的外模式。起首将E-R图转换成具体的数据库产品支持的数据模子,如关系模子,形成数据库逻辑模式。根据DBMS特点和处理的需要,举行物理存储安排,建立索引,形成数据库内模式需。求分析的重点是调查、网络与分析用户在数据管理中的信息要求、处理要求、安全性与完整性要求。

一、数据字典的用途
      数据字典是关于数据库中数据的形貌,即元数据, 不是数据自己,是数据的数据 ; 数据字典在需求分析阶段建立,在数据库设计过程 中不断修改、充实、完满;数据字典是举行具体的数据网络和数据分析所获得 的主要结果。
二、数据字典的内容

 数据项
    数据项是不可再分的数据单元
         对数据项的形貌 数据项形貌={ 数据项名,数据项寄义说明,别名,数据类型,长度, 取值范围,取值寄义,与其他数据项的逻辑关系,数据项之间的接洽 }
       用关系规范化理论为引导,用数据依靠的概念分析和表示 数据项之间的接洽 —函数依靠
          “取值范围” 、 “与其他数据项的逻辑关系”。
     定义了数据的完整性约束条件,是设计数据检验功能的依据,包罗模式设计、完整性检查条件、触发器,存储过程。

 数据结构
数据结构形貌={数据结构名,寄义说明,构成:{数据项或数据结构}}

 数据流




 数据存储



 处理过程



6.3  概念结构设计

7.3.2  概念结构设计的方法与步骤

7.3.3  数据抽象与局部视图设计
一、数据抽象

2. 三种常用抽象
1. 分类(Classification
定义某一类概念作为现实天下中一组对象的类型;
这些对象具有某些共同的特性和行为;
它抽象了对象值和型之间的“is member of”的语义;
E-R模子中,实体型就是这种抽象;

 
2. 聚集(Aggregation
定义某一类型的构成成分;
它抽象了对象内部类型和成分之间“is part of”的语义;
E-R模子中若干属性的聚集构成了实体型,就是这种抽象


3. 概括(Generalization
定义类型之间的一种子集接洽;
它抽象了类型之间的“is subset of”的语义;
概括有一个很重要的性质:继承性。子类继承超类上定义的所有抽象。


设计分E-R图的步骤:
⒈选择局部应用
⒉逐一设计分E-R

(1)归并
① 属性辩论
②  定名辩论
同名异义:差别意义的对象在差别的局部应用中具有相同的名字
异名同义(一义多名):同一意义的对象在差别的局部应用中具有差别的名字

③ 结构辩论
同一对象在差别应用中具有差别的抽象
同一实体在差别局部视图中所包含的属性不完全相同,或者属性的分列序次不完全相同。
实体之间的接洽在差别局部视图中呈现差别的类型

(2)修改与重构
①概念结构设计的步骤:
抽象数据并设计局部视图;集成局部视图,得到全局概念结构;验证整体概念结构
②设计局部视图:
选择局部应用;
逐一设计分E-R图:标定局部应用中的实体、属性、码,实体间的接洽;用E-R图形貌出来
③集成局部视图:归并分E-R图,天生开端E-R图(消除辩论):属性辩论、定名辩论、结构辩论;
修改与重构(消除不须要的冗余,设计天生基本E-R图):分析方法、规范化理论


6.4  逻辑结构设计

 ① 一个实体型转换为一个关系模式。

② 一个m:n接洽转换为一个关系模式。

③ 一个1:n接洽可以转换为一个独立的关系模式,也可以与n端对应的关系模式归并。
 转换为一个独立的关系模式:

 n端对应的关系模式归并

④  一个1:1接洽可以转换为一个独立的关系模式,也可以与任意一端对应的关系模式归并。
转换为一个独立的关系模式
与某一端对应的关系模式归并


⑤ 三个或三个以上实体间的一个多元接洽转换为一个关系模式。

⑥ 同一实体集的实体间的接洽,即自接洽,也可按上述1:11:nm:n三种情况分别处理。

⑦  具有相同码的关系模式可归并。

7.4.2  向特定DBMS规定的模子举行转换

7.4.3  数据模子的优化
数据模子的优化
 确定命据依靠
  对于各个关系模式之间的数据依靠举行极小化处理,消除冗余的接洽。
  按照数据依靠的理论对关系模式逐一举行分析,观察是否存在部分函数依靠、转达函数依靠、多值依靠等,确定各关系模式分别属于第几范式。
   按照需求分析阶段得到的各种应用对数据处理的要求,分析对于这样的应用环境这些模式是否符合,确定是否要对它们举行归并或分解。
  按照需求分析阶段得到的各种应用对数据处理的要求,对关系模式举行须要的分解或归并,以进步数据操纵的效率和存储空间的利用率

水中分解


 垂直分解



逻辑结构设计小结

E-R图向关系模子的转换原则
    一个实体型转换为一个关系模式。
   一个m:n接洽转换为一个关系模式。
   一个1:n接洽可以转换为一个独立的关系模式,也可以与n端对应的关系模式归并。
   一个1:1接洽可以转换为一个独立的关系模式,也可以与任意一端对应的关系模式归并。
   三个或三个以上实体间的一个多元接洽转换为一个关系模式。
   同一实体集的实体间的接洽,即自接洽,也可按上述1:11:nm:n三种情况分别处理。
   具有相同码的关系模式可归并。
  优化数据模子的方法
    确定命据依靠
    对于各个关系模式之间的数据依靠举行极小化处理,消除冗余的接洽。
    确定各关系模式分别属于第几范式。
     分析对于应用环境这些模式是否符合,确定是否要对它们举行归并或分解。
    对关系模式举行须要的分解或归并
  

7.5  数据库的物理设计
定义: 数据库在物理设备上的存储结构与存取方法称为数据库的物理结构,它依靠于选定的数据库管理系统,为一个给定的逻辑数据模子选取一个最适合应用环境的物理结构的过程,就是数据库的物理设计。



关系模式存取方法选择

一、索引存取方法的选择
根据应用要求确定
7.6  数据库的实施
一、定义数据库结构
二、数据装载



 数据库各级模式的形成



 



第八章  数据库编程

    式 SQL:高级步伐语言中嵌入SQL

 


3.7.1嵌入式SQL的一般形式

          EXEC SQL <SQL语句>;



DBMS处理宿主型数据库语言SQL 的方法

预编译
  1.由DBMS的预处理步伐对源步伐举行扫描,辨认出SQL语句
  2.把它们转换成主语言调用语句,以使主语言编译步伐能辨认它
  3.最后由主语言的编译步伐将整个源步伐编译成目标码。


嵌入SQL语句     
说明性语句
嵌入SQL语句       数据定义 
可实行语句     数据控制 

       数据操纵   

3.7.2 嵌入式SQL语句与主语言之间的通讯

     将SQL嵌入到高级语言中混合编程,步伐中会含有两种差别计算模子的语句

工作单元之间的通讯方式
1. SQL通讯区
向主语言转达SQL语句的实行状态信息
主语言可以或许据此控制步伐流程

2. 主变量
 1)主语言向SQL语句提供参数
 2)将SQL语句查询数据库的结果交主语言进一步处理

3. 游标
解决集合性操纵语言与过程性操纵语言的不匹配

1. 说明游标
   EXEC SQL DECLARE <游标名> CURSOR
                           FOR <SELECT语句>;
  功能是一条说明性语句,这时DBMS并不实行SELECT指定的查询操纵。
2. 打开游标
          EXEC SQL OPEN <游标名>;
3. 移动游标指针,然后取当前记载
   EXEC SQL FETCH [[NEXT|PRIOR|
                       FIRST|LAST] FROM] <游标名>
               INTO <主变量>[<指示变量>]
                                [,<主变量>[<指示变量>]]...;
4. 关闭游标
      EXEC SQL CLOSE <游标名>;




第八章  数据库恢复技能
7.1  事务的基本概念


一、什么是事务


二、如何定义事务
   BEGIN TRANSACTION                   BEGIN TRANSACTION
          SQL 语句1                                             SQL 语句1
          SQL 语句2                                             SQL 语句2
          。。。。。                                            。。。。。
      COMMIT                                             ROLLBACK
当用户没有显式地定义事务时,
DBMS按缺省规定自动划分事务
事务结束
COMMIT
事务正常结束   
提交事务的所有操纵(读+更新)
事务中所有对数据库的更新永世生效
ROLLBACK
事务异常终止
回滚事务的所有更新操纵
三、事务的特性(ACID特性)
事务的ACID特性:
1. 原子性
2. 一致性
事务实行的结果必须是使数据库从一个
   一致性状态变到另一个一致性状态
一致性状态:
数据库中只包含乐成事务提交的结果
不一致状态:
数据库中包含失败事务的结果
3. 隔离性
对并发实行而言
一个事务的实行不能被其他事务干扰
4. 持续性
事务的特性 
系统故障的恢复
恢复机制涉及的关键题目
1. 如何建立冗余数据

2. 如何利用这些冗余数据实施数据库恢复
1.静态转储
动态转储
7.4.2  登记日志文件
一、日志文件的内容
1. 什么是日志文件
日志文件(log)是用来记载事务对数据库的
更新操纵的文件

2. 日志文件的格式
以记载为单元的日志文件
以数据块为单元的日志文件
3. 日志文件内容
日志文件中的一个日志记载 (log  record)
4. 基于记载的日志文件
每条日志记载的内容
5. 基于数据块的日志文件
每条日志记载的内容
 (九)关系数据理论


6.1 关系系统


一个数据库管理系统可定义为关系系统,当且仅当它至少支持:
1. 关系数据库(即关系数据结构)
   系统中只有表这种结构
2. 支持选择、投影和(自然)毗连运算
   对这些运算不要求用户定义任何物理存取路径
对关系系统的最低要求

6.2 关系系统的查询优化

6.2.1 查询优化概述
 
(1)  优化器可以从数据字典中获取许多统计信息,而用户步伐则难以获得这些信息 
(2)假如数据库的物理统计信息改变了,系统可以自动对查询重新优化以选择相适应的实行筹划。
  在非关系系统中必须重写步伐,而重写步伐在现实应用中往往是不太可能的。
(3)优化器可以思量数百种差别的实行筹划,而步伐员一般只能思量有限的几种可能性。
(4)优化器中包罗了许多复杂的优化技能
    选择有效策略,求得给定关系表达式的值
1. 将查询转换成某种内部表示,通常是语法树
2. 根据肯定的等价变更规则把语法树转换成尺度
 (优化)形式
3. 选择低层的操纵算法
对于语法树中的每一个操纵


4. 天生查询筹划(查询实行方案)
​​​​​​​      查询筹划是由一系列内部操纵构成的。

6.2.4 关系代数等价变更规则 

6.2.6 优化的一般步骤 
1.把查询转换成某种内部表示
2.代数优化:把语法树转换成尺度(优化)形式
3.物理优化:选择低层的存取路径
4.天生查询筹划,选择代价最小的 

第十章  并发控制
 



并发操纵带来的数据不一致性
1. 丢失修改
丢失修改是指事务1与事务2从数据库中读入同一数据并修改,事务2的提交结果破坏了事务1提交的结果,导致事务1的修改被丢失。

2. 不可重复读
不可重复读是指事务1读取数据后,事务2
实行更新操纵,使事务1无法再现前一次读
取结果。
事务1读取某一数据后:
1.事务2对其做了修改,当事务1再次读该数据时,得到与前一次差别的值。
2. 事务2删除了此中部分记载,当事务1再次读取数据时,发现某些记载神密地消失了。
3. 事务2插入了一些记载,当事务1再次按相同条件读取数据时,发现多了一些记载。
后两种不可重复读偶然也称为幻影现象(phantom row)

3. 数据
事务1修改某一数据,并将其写回磁盘,事务2读取同一数据后,事务1由于某种原因被撤消,这时势务1已修改过的数据恢复原值,事务2读到的数据就与数据库中的数据不一致,是不正确的数据,又称为“脏”数据。

8.2  封锁
一、什么是封锁
二、基本封锁类型

共享锁(Share lock,简记为S锁)


8.3  封锁协议

1级封锁协议

 一级封锁协议 vs 不可重读



2级封锁协议

二级封锁协议 vs 不可重读 

3级封锁协议

 总结


8.4  活锁和死锁
活锁
定义:事务




欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/) Powered by Discuz! X3.4