数据库的错误点
💻

数据库的错误点

重点

  • 数据库的三个特点:可共享性、永久存储、有组织
  • 数据模型:是对现实世界数据特征的抽象。
  • 数据模型:数据结构、数据操作、数据的完整性约束
  • 数据结构:描述数据库的组成对象以及对象之间的联系
  • 概念模型:实体、属性、码、实体型、实体集、联系
  • 码:能够唯一标识实体
  • 数据库的三级模式结构:模式、外模式(逻辑)、内模式(物理、内模式映像)
  • 关系数据库:IBM公司的San Jose提出
  • 域:一组具有相同数据类型的值的集合
  • 笛卡尔积:不同的集合各取一个放到一起列成一个二维表
  • 候选码:某一属性组能够唯一地标识一个元组,而其子集不能
  • 主码:选一个候选码作为主码
  • 主属性:候选码的属性组,其余为非主属性
  • 关系模式:R(U,D,DOM,F)
  • 关系操作:
    • 查询操作:选择、投影、连接、除、并、差、交、笛卡尔积等
    • 基本的关系操作:选择、投影、并、差、笛卡尔积
    • 操作的对象和结果都是集合
  • 关系的完整性:
    • 实体完整性
      • 主属性不能取空值
    • 参照完整性
      • 外码只能取另一个基本关系存在的主码或直接取空值
    • 用户定义完整性
  • 关系代数:
    • 传统的集合运算
    • 笛卡尔积
    • 专门的关系运算
    • 选择 (相当于WHERE)
    • 投影 (相当于SELECT后选择的属性列)
    • 连接 (相当于SELECT多个表)
    • (遇到相同的属性列,只选择左边不同的,并且一一对应)
  • SQL 语句
    • 创建模式 CREATE SCHEMA 模式名 AUTHORIZATION 用户名
    • 删除模式 DROP SCHEMA 模式名
    • 创建表 CREATE DATABASE 表名 (属性名 类型 其他参数)
    • 修改表信息 ALTER DATABASE 表名(ADD COLUMN 属性名 类型 其他参数 DROP COLUMN 列名)
    • 建立索引 CREATE [UNIQUE] INDEX 索引名 ON 表名(属性列名)
    • 删除索引 DROP INDEX
    • 数据查询 SELECT ALL|DISTINCT 目标列 FROM 表名 WHERE
      • 单字匹配:_
      • 通配:%
      • ORDER BY 属性名 [DESC|ASC]
        • DESC 降序,大的在上面
        • ASC 升序,小的在上面
      • GROUP BY 分组提取相似的
        • 组使用 HAVING 进行筛选,使用了GROUP BY就不能使用HAVING
        • 单个实体使用 WHERE 进行筛选
    • 插入数据 INSERT INTO 表名(属性列名) VALUES(常量)
    • 更新数据 UPDATE 表明 SET 属性列名=常量 WHERE 条件
    • 建立视图 CREATE VIEW 视图名 AS SELECT xxx
    • 删除视图 DROP VIEW 视图名
    • 视图是一个虚表,只存放视图的定义,而不存放视图对应的数据
    • 视图的作用
      • 简化用户操作
      • 使用户能够以多种角度看待同一数据
      • 视图对重构数据库提供了一定程度的逻辑独立性
      • 对机密数据提供安全保护
      • 更清晰地表达查询
  • 数据库的安全性是指保护数据库以防止不合法使用所造成的数据泄漏、更改或破坏。
  • 关系数据库的存取权限
    • notion image
  • 给予权限 GRANT xxx ON TABLE xxx TO sb [WITH GRANT OPTION]
  • 去除权限 REVOKE xxx ON TABLE xxx FROM sb
  • 给予创建数据库模式的权限 CREATE USER username WITH DBA
  • 角色的创建 CREATE ROLE 角色名
  • 角色授予用户 GRANT 角色名 TO 用户
  • 强制存取控制是对数据本身进行密级标记,无论数据如何复制,标记与数据是一个不可分的整体,只有符合密级标记要求的用户才可以操作数据。
  • 数据的完整性是指数据的正确性和相容性,是为了防止数据库中存在不符合语义的数据,也就是防止数据库中存在不正确的数据。数据的安全性是保护数据库防止恶意破坏和非法存取。
  • 完整性通过实体完整性、参照完整性和用户定义完整性实现。
  • 触发器是用户定义在关系表上的一类由事件驱动的特殊过程。
  • 触发器的使用 CREATE TRIGGER ON 表名 FOR 操作 WHEN 条件 AS 执行的代码
  • 使用旧的数据:UPDATED DELETED INSERTED
  • 数据依赖
    • 一个关系内部属性与属性的约束关系
    • 现实世界属性相互联系的抽象
    • 数据内在的性质
    • 语义的体现
  • 传递依赖:X可以推出Y(X不包含Y,Y不可以退出X),Y可以推出Z(Y不包含Z),则传递
  • 平凡依赖:X推出的东西是X的子集(没啥意义嗷)
  • 非平凡依赖:推出的东西不是X的子集,识别的东西(有意义起来了)
  • 完全函数依赖:主属性的子集不能推出一个实体
  • 部分函数依赖:主属性的子集能够推出一个实体出来
    • 比如说用学号和姓名推学生的宿舍,明明你有学号就够唯一确定了嘛,姓名其实没啥用
  • 范式
    • 1NF:能在数据库建表就是成功
    • 2NF:说,候选码不能让他的子集也能推出其他非主属性
    • 3NF:我不能有非主属性的传递依赖!非主属性你怎么能推出其他东西!
    • BCNF:主属性的传递依赖也别了吧
  • 规范化的基本思想是逐步消除数据依赖中不合适的部分,使模式中的各关系模式达到某种程度的『分离』,即『一事一地』的模式设计原则。规范化实质上是概念的单一化。
  • 数据库设计的六个阶段:需求分析;概念结构设计;逻辑结构设计;物理结构设计;数据库实施;数据库运行和维护
    • 需求分析:对现实世界要要处理的对象进行详细的调查,通过对原系统的了解,收集支持新系统的基础数据并对其进行处理,在此基础上确定新系统的功能
      • 调查分析用户活动
      • 收集和分析需求数据,确定系统边界信息需求,处理需求,安全性和完整性要求
      • 编写系统分析报告
  • 数据字典:包括数据项、数据结构、数据流、数据存储和处理过程几部分。
  • E-R描述现实世界的概念模型:
    • 实体间的联系:1:1, 1:n, m:n
    • 实体用矩形表示,属性用椭圆形表示,联系用菱形表示,注意联系和实体间的无向边要写联系的类型
    • 如果一个联系具有具有属性,则这些属性也要用无向边与该联系连接起来
    •  
 
P219 图7.11 能了解标准的ER图是怎么写的
P224 概念结构设计 实体属性的概念原则,符合什么条件的事物可以作为属性
ER图的合并 P228 合并的时候要消除冲突
P235 数据库的物理结构 物理设计描述为两步
聚簇的概念了解一下就好
数据库编程
数据库是非过程化的,输入输出是一个集合的概念,控制过程需要其他高级语言,两种语言如何通信
P246 嵌入式SQL语句是怎么实现的,主要通过主变量游标和SQL通信区
P255 存储过程的概念
对于用户是透明的
第九章
代数优化和物理优化 (了解)
例题9.4(不会让你画查询树,理解数据库管理系统处理的过程) 考试不会安排
第十章 数据库恢复技术
P291 事务的基本概念 基本特性 ACID
P293 故障的种类 内部故障
恢复的实现技术,几个点
数据转储的概念:静态转储和动态转储、日志文件、检查点
数据的恢复主要是两个方面的工作:备份、如何界定备份数据,如何使用如何恢复如何建立冗余
恢复策略:撤销、重做
数据库镜像的概念:备份
第十一章 并发控制
P310 为什么需要并发控制:保证一致性和
丢失修改,不可重复读,和脏数据会造成数据不一致性
针对采取什么机制
P310 机制:封锁
P312 活锁死锁,预防、诊断和解除
封锁的力度越大,数据库所能够并发越小,系统开销。。。
意向锁 IS IX SIX 的概念
 

选择题

  • 数据库系统的核心是数据库管理系统
  • 数据库系统的特点:数据结构化,数据冗余度大,数据独立性高
  • 概念模型是现实世界的第一层抽象,这一类模型中最著名的模型是实体-联系模型
  • 关系数据模型由关系数据结构、关系操作和关系完整性约束三部分组成
  • 注意插入到元组中时,char方式要单引号
  • 分E-R图之间的冲突主要有属性冲突、命名冲突和结构冲突三种
  • 关系规范化中的插入操作异常是指应该插入的数据未被插入
  • 事务是DBMS的基本单位,是用户定义的一个数据库操作序列。
  • 所谓X锁(可以进行写入,排它锁),是事务T对数据A加上X锁时,只允许事务T读取和修改数据A
  • 所谓S锁(只能进行读取,共享锁),是事务T对数据A加上S锁时,其他事务只能再对数据A加S锁,而不能加X锁,直到T释放A上的S锁
  • 若事务T对数据对象A加了S锁,则T就可以对A进行读取,但不能进行更新(S锁因此又称为读锁),在T释放A上的S锁以前,其他事务可以再对A加S锁,但不能加X锁,从而可以读取A,但不能更新A.
  • 两段锁协议需要把事务分为两个阶段,也就是前面一部分对数据进行加锁,后面一部分对数据进行解锁,不能中间又加锁又解锁。
  • 遵守两段锁协议的事务可能发生死锁(比如先后锁同一个数据项但又没有先解锁),事务遵守两段锁协议是可串行化调度的充分条件,而不是必要条件
  • 可串行性是并发事务正确性的准则

SQL 语句

  • 创建唯一索引,要注意唯一标签在INDEX前,即 CREATE UNIQUE INDEX ...
  • SELECT语句查询条件中的谓词“!=ALL”(ALL这里指一个数组)与运算符NOT IN等价。

各类运算

  • 运算:选择、投影、连接、除、并、差、交、笛卡尔积
  • 基本运算:选择、投影、并、差、笛卡尔积
  • 设有两个关系R和S
    • 并:相当于UNION,R的所有部分和S的所有部分
    • 差:R-S=在R中有的,去除掉R和S重合的
    • 交:R和S都有的
    • 笛卡尔积:R取一个,S取一个,列出所有可能
  • 专门的关系运算
    • 选择:相当于WHERE条件
    • 投影:相当于SELECT指定属性列
    • 连接:相当于SELECT后指定,并且FROM几个表
    • 除运算:FROM几个表,但是相同属性列不要,只要关系R上除了相同属性列的其他属性列

各类系统

S:结构、I:完整性、M:数据操纵
notion image

一、表式系统

仅支持关系(即表)数据结构,不支持关系(即集合)操作。

二、(最小)关系系统

仅支持关系数据结构和三种关系搡作。即4.1.l中定义的关系系统。许多微机关系数据库系统如FoxBASE、FoxPro等就属于这一类。

三、关系完备的系统

这类系统支持关系数据结构和所有的关系代数操作(功能上与关系代数等价)。

四、全关系系统

这类系统支持关系模型的所有特征。即不仅是关系上完备的而且支持数据结构中域的概念,支持实体完整性和参照完整性。目前,大多数关系系统已不同程度上接近或达到了这个目标。

做题提到的点

  • 数据库系统、数据库管理系统的概念、特点
  • 各类独立性,比如说物理独立性和逻辑数据独立性
  • 各类完整性,其规则的意义
  • 视图的作用
  • xxx的主码是什么,候选码是什么(注意候选码有可能是一个集合)
  • 关系的运算,比如并交加减运算
  • SQL语句的编写
  • 各类范式的含义
  • 规范化各类异常
  • 两段锁协议、X锁、S锁
  • 事务,可串行性
  • E-R图的各类冲突
  • 数据库恢复方面,日志文件的原则

仍未理解的点

  • 为什么 ? 是因为顺序不同吗?
  • 为什么是因为可能之间没有公共属性?
  • 为什么这个没有选A而没有投影?万一他是自然连接呢?
  • ER图中,属性什么时候挂到实体上,什么时候挂到关系上(为什么聘期和工资不能放在职工处)
notion image
notion image
 

参考资料