数据库知识的总结大概

第一章 绪论

1.

物理独立性:指用户的应用程序与存储在磁盘上的数据库中数据是相互独立的。当数据的物理存储改变了,应用程序不用改变。

逻辑独立性:指用户的应用程序与数据库的逻辑结构是相互独立的。数据的逻辑结构改变了,用户程序也可以不变。

数据独立性是由DBMS的二级映像功能来保证的

2.

   1)数据模型是数据库系统的核心和基础;

   2)两类数据模型:第一类是概念模型,第二类是逻辑模型和物理模型;

   3)数据模型的组成要素:数据结构、数据操作和完整性约束;

   4)概念模型的基本概念:

1)         实体(Entity):客观存在并可相互区别的事物称为实体。可以是具体的人、事、物或抽象的概念;

2)         属性(Attribute):实体所具有的某一特性称为属性。一个实体可以由若干个属性来刻画;

3)         码(Key):唯一标识实体的属性集称为码;

4)         (Domain):属性的取值范围称为该属性的域。

5)         实体型(Entity Type):用实体名及其属性名集合来抽象和刻画同类实体称为实体型;

6)         实体集(Entity Set):同一类型实体的集合称为实体集;

7)         联系(Relationship):实体内部的联系通常是指组成实体的各属性之间的联系,实体之间的联系通常是指不同实体集之间的联系;

3.数据库系统结构:

 1)模式是数据库中全体数据的逻辑结构和特征的描述。

 2)三级模式:内模式、模式、外模式。

         模式:是数据库中全体数据的逻辑结构和特征的藐视,是所有用户的公共视图;一个数据库只有一个模式;

         外模式:是数据库用户能够看见和使用的局部数据的逻辑结构和特征的描述,是数据库用户的数据视图,是与某一应用有关的数据的逻辑表示;一个数据库可以有多个外模式;

         内模式:是数据物理结构和存储方式的描述,是数据在数据库内部的表示方式;一个数据库只有一个内模式。

    3)二级映像:外模式/模式,模式/内模式;

          保证了数据库系统中的数据能够有较高的逻辑独立性和物理独立性。

 

第二章 关系数据库

1、关系

1)码

     候选码(Candidate key):若关系中的某一属性组的值能唯一地标识一个元组,则称该属性组为候选码;

      主码(Primary key):若有多个候选码,则选定其中一个为主码;

      全码(All-key):最极端的情况:关系模式的所有属性组是这个关系模式的候选码,称为全码;

       主属性(Prime attribute):候选码的诸属性称为主属性;

       非主属性( Non-Prime attribute):而不包含在任何侯选码中的属性称为非主属性或非码属性。

  2)关系的三种类型:基本关系、查询表、视图表;

  3)基本关系的性质:

1)         列是同质的(Homogeneous

2)         不同的列可出自同一个)         其中的每一列称为一个属性

b)         不同的属性要给予不同的属性名

3)         列的顺序无所谓,,列的次序可以任意交换

4)         任意两个元组的候选码不能相同

5)         行的顺序无所谓,行的次序可以任意交换

6)         分量必须取原子值(最基本的一条)

  (4)关系模型要求关系必须是规范化的,即要求关系必须满足一定的规范条件;最基本的一条就是:关系的每一个分量必须是一个不可分的数据项。

  (5)关系数据库中,关系模型是型,关系是值;关系模式是对关系的描述。

2、关系操作

  1)基本关系操作:

       常用的关系操作包括查询操作和插入、删除、修改操作两大部分;

查询:选择、投影、连接、除、并、交、差;

数据更新:插入、删除、修改;

查询的表达能力是其中最主要的部分;

选择、投影、并、差、笛卡尔基是5种基本操作。

  (2)关系操作的特点:集合操作方式,即操作的对象和结果都是集合,一次一集合的方式。

3、关系的完整性

   三类完整性约束:实体完整性、参照完整性、用户定义的完整性;其中前两种是关系模式中必须满足的,被称作是关系的两个不变性。

1)实体完整性:若属性A是基本关系R的主属性,则属性A不能取空值且必须唯一。

    说明:

1)         实体完整性规则是针对基本关系而言的;

2)         关系模型中以主码作为唯一性标识;

3)         主码中的属性即主属性不能取空值。

  2)参照完整性:

外码:

F是基本关系R的一个或一组属性,但不是关系R的码。如果F与基本关系S的主码Ks相对应,则称F是基本关系R的外码;基本关系R称为参照关系(Referencing  Relation);基本关系S称为被参照关系(Referenced Relation)或目标关系(Target Relation)。

       说明:

1)         关系RS不一定是不同的关系;

2)         目标关系S的主码Ks 和参照关系的外码F必须定义在同一个(或一组)域上;

3)         外码并不一定要与相应的主码同名。

       参照完整性规则:

       若属性(或属性组)F是基本关系R的外码它与基本关系S的主码Ks相对应(基本关系RS不一定是不同的关系),则对于R中每个元组在F上的值必须为:或者取空值(F的每个属性值均为空值),或者等于S中某个元组的主码值。

       参照完整性规则就是定义外码与主码之间的引用规则。

  3)用户定义的完整性

针对某一具体关系数据库的约束条件,反映某一具体应用所涉及的数据必须满足的语义要求。

 

第三章 关系数据库标准语言SQL

1SQL特点

   SQL集数据查询、数据定义、数据操纵、数据控制功能于一体;

1)         数据定义

a)         创建数据对象  create        e.g.  Create database

b)         修改数据对象  alter         e.g.   alter table

c)         删除数据对象  drop         e.g   drop view

2)         数据查询

a)         一般查询    select 

b)         集合查询    count,  avg,  sum,  max,  min

3)         数据操纵

a)         Insert   delete   update

    主要特点:综合统一,高度非过程化,面向集合的操作方式,以同一种语法结构提供多种使用方式,语言简洁、易学易用。

2、外模式对应于视图和部分基本表,模式对应于基本表,内模式对应于存储文件。

3、数据定义

操作对象

操作方式

创建

删除

修改

数据库

Create database

Drop database

Alter database

Create table

Drop table

Alter table

视图

Create view

Drop view

索引

Create index

Drop view

  1)定义数据库

Create database <数据库名>

Drop database <数据库名>

Alter database <数据库名>   <新数据库名>

  2)定义基本表

       创建表:

       Create table <表名>

(<列名> <数据类型> [列完整性约束条件]

[,<列名> <数据类型> [列完整性约束条件]]…

[,表级完整性约束条件])

表级完整性约束包括:

Primary key (字段[,字段2])    

foreign key reference 2(字段[,字段2]

Check 内容 

default

       修改表:

Alter table <表名

          [add <新列名>  <数据类型>[完整性约束]]

          [drop <完整性约束名>]

          [alter column <列名>  <数据类型>]

       删除表:

       Drop table <表名>             

  3)数据查询

       Select [all | distinct] <目标列表达式> [别名][ <目标列表达式> [别名]]…

       From <表名或视图名> [别名][ <表名或视图名> [别名]]…

       Where <条件表达式>

       Group by <列名> [having <条件表达式>]

       Order by <列名1> [ASC | Desc] [, <列名1> [ASC | Desc]]

  4)数据更新

       插入数据:

        格式1

        Insert into <基本表名> [(列名表)] value (元组值)

        格式2

        Insert into <基本表名> [(列名表)]

        value (元组值) (元组值) (元组值)

        格式3

        Insert into <基本表名> [(列名表)]

        Select 查询语句

       修改数据:

update <表名>

        set <列名>=<>[, <列名>=<>,…]

        [where <条件表达式>]

       删除数据:

Delete from <表名> [where <条件表达式>]

 

 

第五章 数据库完整性

1、数据库的完整性:数据的正确性和相容性。

2、为维护数据库的完整性,DBMS必须能够:

1)         提供定义完整性约束条件的机制

2)         提供完整性检查的方法

3)         违约处理

3、实体完整性

1)关系模型的实体完整性在CREATE  TABLE中用PRIMARY KEY定义;

  2)实体完整性检查和违约处理:

插入或对主码列进行更新操作时,RDBMS按照实体完整性规则自动进行检查。包括:

1)         检查主码值是否唯一,如果不唯一则拒绝插入或修改;

2)         检查主码的各个属性是否为空,只要有一个为空就拒绝插入或修改。

4、参照完整性

1)关系模型中的参照完整性在CREATE  TABLE中用FOREIGN KEY短语定义哪些列为外码,用REFERENCES指明其参照的主码。

  2)可能破坏参照完整性的情况和违约处理:

被参照表(例如Student

参照表(例如SC

违约处理

可能破坏参照完整性

    插入元组

拒绝

可能破坏参照完整性

    修改外码值

拒绝

删除元组

可能破坏参照完整性

拒绝/级连删除/设置为空值

修改主码值

可能破坏参照完整性

拒绝/级连修改/设置为空值

 

第六章 关系数据理论

1、范式

   按属性间依赖情况划分。

  1)第一范式:每一分量必须是不可分的数据项;

       存在问题:数据冗余太大,更新异常,插入异常,删除异常;

  2)第二范式:每一个非主属性完全依赖于码;

       存在问题:插入异常,删除异常,修改复杂;

  3)第三范式:每一个非主属性既不部分依赖于码也不传递依赖于码;

 

第七章 数据库设计

1E-R图向关系模型转换

  1E-R图由实体型、实体的属性、实体型之间的联系三个要素组成;

  2)遵循原则:一个实体型转换为一个关系模式,实体的属性就是关系的属性,实体的码就是关系的码;

 

第九章 关系查询处理和查询优化

本章可考题目:

1、根据SQL语句写出等价关系代数表达式

2、对查询树进行优化

 

1、查询处理

  1)查询的四个阶段:查询分析、查询检查、查询优化、查询执行;

  2)查询优化方法:

       代数优化:指关系代数表达式的优化,即按照一定的规则,改变代数表达式中操作的次序和组合,使查询执行更高效;

       物理优化:指存取路径和底层操作算法的选择,选择的依据可以是基于规则、代价或者语义。

2、代数优化

   2)查询树启发式优化规则

1)         选择运算应尽可能先做。在优化策略中这是最重要、最基本的一条

2)         把投影运算和选择运算同时进行

3)         把投影同其前或其后的双目运算结合起来

4)         把某些选择同在它前面要执行的笛卡尔积结合起来成为一个连接运算

5)         找出公共子表达式

3.连接操作实现的四种方式:

1)        循环嵌套

2)         排序合并

3)         索引链接

4)         hash join

 

第十章 数据库恢复技术

1、事务

  1)事务是用户定义的一个数据库操作序列,这些操作要么全做要么全部做,是一个不可分割的工作单位;

  2)事务通常以begin transaction开始,以commitrollback结束;

  3)事务的四大特性:原子性、一致性、隔离性、持续性。

原子性(Atomicity):

事务是数据库的逻辑工作单位,事务中包括的诸操作要么都做,要么都不做

一致性(Consistency):

事务执行的结果必须是使数据库从一个 一致性状态变到另一个一致性状态

一致性状态:数据库中只包含成功事务提交的结果

隔离性(Isolation):

在多个事务并发执行时,系统应保证与这些事务先后单独执行时的结果一样

持续性(Durability):

一个事务一旦完成全部操作后,它对数据库的所有更新应永久地反映在数据库中

2、数据库故障

  1)事务内部的故障:

       有的是可以通过事务程序发现,有的是非预期的;

       如运算溢出、并发事务发生死锁而被撤销该事务、违反了某些完整性限制;

  2)系统故障:

       指造成系统停止运转的任何事件,使得系统要重新启动;

       CPU故障、操作系统故障、DBMS代码错误、系统断电;

  3)介质故障:

       如磁盘损坏、磁头碰撞、瞬间磁场干扰。

  4)计算机病毒

3、恢复的实现操作

  1)恢复操作的基本原理:冗余;

  2)建立冗余数据最常用的技术:数据转储、登录日志文件;

  3)数据转储:

转储是指DBA将整个数据库复制到磁带或另一个磁盘上保存起来的过程,备用的数据称为后备副本或后援副本;

       数据转储分类:动态转储和静态转储,海量转储和增量转储;

  4)登记日志文件:

       日志文件(log)是用来记录事务对数据库的更新操作的文件;

       两种格式:以记录为单位和以数据块为单位的日志文件;

       登记日志文件的原则:登记的次序严格按并行事务执行的时间次序,必须先写日志文件,后写数据库。

 

第十一章 并发控制

1、并发控制

1)并发控制机制的任务:

1)         对并发操作进行正确调度

2)         保证事务的隔离性

3)         保证数据库的一致性

2)并发操作带来的数据不一致性

1)         丢失修改(Lost Update

2)         不可重复读(Non-repeatable Read

3)         数据(Dirty Read

       产生不一致性的主要原因是并发操作破坏了事务的隔离性;

  3)并发控制的主要技术有:封锁(主要)、时间戳、乐观控制法。

2、封锁

  1)基本封锁类型:排它锁(写锁,X锁),共享锁(读锁,S锁);

  2)排它锁:

若事务T对数据对象A加上X锁,则只允许T读取和修改A,其它任何事务都不能再对A加任何类型的锁,直到T释放A上的锁;

保证其他事务在T释放A上的锁之前不能再读取和修改A

  3)共享锁:

若事务T对数据对象A加上S锁,则其它事务只能再对AS锁,而不能加X锁,直到T释放A上的S锁;

保证其他事务可以读A,但在T释放A上的S锁之前不能对A做任何修改;

3、活锁和死锁

  1)活锁:避免活锁的方式是采用先来先服务的策略;

当多个事务请求封锁同一数据对象时,按请求封锁的先后次序对这些事务排队,该数据对象上的锁一旦释放,首先批准申请队列中第一个事务获得锁;

  2)死锁:

       解决死锁的两类方法:一类是采取一定措施预防死锁发生,一类是允许死锁发生,采用一定手段定期诊断系统中有无死锁,若有则解除之;

       死锁的预防:一次封锁法,顺序封锁法;

       死锁的诊断和解除:超时法,等待图法。

请注意,上面是文字搬运工,内容里面可能不完整或者错误的地方。

如果有侵权,请联系删除!

或者,如有错误还望指出,谢谢!

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值