数据库系统概论期末总复习

第一章 绪论

image-20250602180222584


数据模型的三要素:

  1. 数据结构
  2. 数据操作
  3. 数据的约束条件

image-20250602180641751

第七章 数据库设计概述

数据库设计的六个步骤:

  1. 需求分析
  2. 概念结构设计
  3. 逻辑结构设计
  4. 物理结构设计
  5. 数据库实施阶段
  6. 数据库运维

第二章 关系数据库

**关系:**D1×D2×…×Dn的子集叫作在域D1,D2,…,Dn上的 关系,表示为 R(D1,D2,… ,Dn)

关系的六条性质:

  1. 列是同质的
  2. 不同的列可出自同一个域
  3. 列的顺序无所谓
  4. 行的顺序无所谓
  5. 任意两个元组的码不能取相同的值
  6. 分量必须取原子值

关系模型的三要素:

  1. 关系数据结构
  2. 关系操作集合
  3. 关系完整性约束

image-20250602145658682


image-20250602150347821image-20250602150359143


第十二章 并发控制

并发控制保证了事务的隔离性和一致性

**并发控制的作用:**对并发操作进行正确调度 保证事务的隔离性 保证数据库的一致性

**隔离级别:**1.读未提交 2.读已提交 3.可重复读 4.可串行化

一级封锁协议:修改数据前对其加X锁直至事务结束,但读数据不加锁,可解决丢失修改问题。(读未提交)

**二级封锁协议:**在一级基础上读数据时加S锁直至读完,可在一级基础上进一步解决脏读问题。(读已提交)

**三级封锁协议:**在一级基础上读数据时加S锁直至事务结束,可解决丢失修改、脏读、不可重复读等问题。(可串行化)

**冲突操作:**读写和写写

第十一章 数据库恢复技术

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

事务的四个特性:

  1. 原子性
  2. 一致性
  3. 隔离性
  4. 持续性/永久性

故障的种类:

  1. 事务内部的故障(输入数据有误 运算溢出 并发事务发生死锁而被选中撤销该事务 违反了某些完整性限制等)(事务撤消(UNDO))
  2. 系统故障(软故障)( 特定类型的硬件错误(如CPU故障)  操作系统故障  DBMS代码错误  系统断电 25  导致系统崩溃的计算机病毒)(强行撤消(UNDO)所有未完成事务+重做(REDO)所有已提交的事务)
  3. 介质故障(硬故障)(磁盘损坏 磁头碰撞 操作系统的某种潜在错误 瞬时强磁场干扰 破坏硬盘数据的计算机病毒)
    •  需要借助存储在其他地方的数据备份来恢复数据库
    •  装入数据库发生介质故障前某个时刻的数据副本
    •  重做自此时始的所有成功事务,将这些事务已提交 的结果重新记入数据库

恢复技术主要保证事务的原子性和持久性。

第五章 数据库完整性

数据库完整性定义:数据库数据的正确性(数据是符合现实世界语义,反映了当前的实际状况)和相容性(数据库同一对象在不同关系表中的数据是相同的)。

数据的完整性: 防止数据库中存在不符合语义的数据。防范对象:不合语义的、不正确的数据。

数据的安全性: 保护数据库防止恶意的破坏和非法的存取。 防范对象:非法用户和非法操作。

为维护数据库的完整性,DBMS必须:

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

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

3.进行违约处理

第四章 数据库安全性

一、自主存取控制方法(DAC )

 同一用户对于不同的数据对象有不同的存取权限

 不同的用户对同一对象也有不同的权限

 用户还可将其拥有的存取权限转授给其他用户

  1. 什么是数据库的安全性?

    数据库的安全性是指保护数据库系统和数据,以防止不合法使用所造成的数据泄露、更改或破坏。

  2. 试述实现数据库安全性控制的常用方法和技术。

    (1)用户身份鉴别:系统提供一定的方式让用户标识自己的名字或身份。每次用户要求进入系统时,由系统进行核对,通过鉴定后才提供系统的使用权。

    (2)存取控制:通过用户权限定义和合法权检查确保只有合法权限的用户访问数据库,所有未被授权的人员无法存取数据。

    (3)视图机制:为不同的用户定义视图,通过视图机制把要保密的数据对无权存取的用户隐藏起来,从而自动地对数据提供一定程度的安全保护。

    (4)审计:建立审计日志,把用户对数据库的所有操作自动记录下来放入审计日志中,DBA 可以利用审计跟踪的信息,重现导致数据库现有状况的一系列事件,找出非法存取数据的人、时间和内容等。

    (5)数据加密:对存储和传输的数据进行加密处理,从而使得不知道解密算法的人无法获知数据的内容。

  3. image-20250529200422232

  4. 今有两个关系模式:

    职工(职工号 ,姓名 ,年龄 ,职务 ,工资 ,部门号)

    部门(部门号,名称,经理名,地址,电话号)

    请用 SQL 的 GRANT 和 REVOKE 语句(加上视图机制)完成以下授权定义或存取控制功能:

    1. 用户王明对两个表有 SELECT 权限。
    2. 用户李勇对两个表有 INSERT 和 DELETE 权限。
    3. 每个职工只对自己的记录有 SELECT 权限;
    4. 用户刘星对职工表有 SELECT 权限 ,对工资字段具有更新权限。
    5. 用户张新具有修改这两个表的结构的权限。
    6. 用户周平具有对两个表所有权限(读,插,改,删数据),并具有给其他用户授权的权限。
    7. 用户杨兰具有从每个部门职工中 SELECT 最高工资.最低工资 .平均工资的权限,他 不能查看每个人的工资。
    /*职工:EMP     部门:DEPT*/
    1.
    GRANT INSERT
    ON TABLE EMP,DEPT
    TO '王明';

    2.
    GRANT INSERT,DELETE
    ON TABLE EMP,DEPT
    TO '李勇';

    3.
    GRANT SELECT
    ON TABLE EMP
    WHEN USER()=NAME
    TO ALL;

    4.
    GRANT SELECT,UPDATE('工资')
    ON TABLE EMP
    TO '刘星'

    5.
    GRANT ALTER TABLE
    ON TABLE EMP,DEPT
    TO '张新'

    6.
    GRANT ALL PRIVILIGES ON 职工,部门
    ON TABLE EMP,DEPT
    TO '周平'
    WITH GRANT OPTION;

    7.
    首先建立一个视图。然后对这个视图定义杨兰的存取权限。
    CREATE VIEW 部门工资 AS
    SELECT DEPT.名称,MAX(工资) ,MIN(工资) ,AVG(工资)
    FROM EMP ,DEPT
    WHERE EMP.部门号=DEPT.部门号
    CROUP BY EMP.部门号;

    CRANT SELECT ON TABLE 部门工资 TO '杨兰';
  5. image-20250529200949249