type
status
date
slug
summary
tags
category
icon
password

Chapter1

1.1

数据:描述客观事物及其活动的抽象符号表示。
数据库:长期存储在计算机内,有组织的可共享的大量数据的集合。
数据库管理系统 DBMS:运行在操作系统之上的数据库管理系统软件,由它实施对外存上的数据库的统一管理,并负责执行在DBMS之上开发的应用程序对数据库的全部操作
数据库系统 DBS:由数据库、数据库管理系统(及其应用开发工具)、应用程序和数据库管理员(DBA,Database Administrator)组成的存储、管理、处理和维护数据的系统。

1.2

使用数据库系统进行数据管理的本质特征:整体数据结构化
数据独立性高(物理独立性与逻辑独立性 → 不改变应用程序)

1.3 数据模型

分为概念模型和逻辑模型
ER是概念模型,关系是逻辑模型
E-R(实体联系)模型:
有关 - 实体 联系 属性
  • 实体:客观存在可以互相区别的事物,也可以是抽象的概念(一次选课)和联系(工作关系)
  • 属性:实体所具有的某一特性为属性(如学生实体的学号属性)
  • 码:唯一标识实体的属性集
    • 一个实体可以存在多个码
  • 实体型(一种数据结构):用实体名和其属性名集合(抽取部分属性)来刻画同类实体(如学生(学号,姓名。。)是一个实体型)
  • 实体集:同一类型实体的集合为实体集
  • 域:实体中相应属性的取值范围
  • 联系:实体(型)内部的联系和实体(型)之间的联系
    • 内部联系为组成实体的属性之间的联系,之间联系是不同实体集之间的联系
    • 实体联系分为一对一,一对多,多对多
      • 一对一:如班级和班长的对应关系
      • 一对多:实体A中的每一个实体,在B中有n个实体联系,反之,在实体集B中的每一个实体,在A中至多一个实体联系;如班级和学生的对应关系
      • 多对多:如一门课程可以被多名学生选修,一个学生可以同时选修多门课程
    • 联系的元数(联系的度)联系中涉及的实体型数
      • 一元联系:涉及的两个实体型对应同一个实体
      • 二元联系:…
 
E-R图绘画
实体为矩形,关系为菱形,属性为椭圆
notion image
 
逻辑模型:
三大组成要素:数据结构,数据操作,数据完整性约束
层次数据模型(树形结构) → 网状数据模型(结点可以多亲) → 关系数据模型
关系数据模型:
  • 关系:表
  • 元组:一行
  • 属性:一列
  • 分量:元组中的一个属性值
  • 关系模式:关系名(属性1,2…)
 

1.4 体系结构

数据库系统的三级模式和两级映像
  • 外模式 子模式/用户模式
  • 模式 逻辑模式/概念模式(和概念模型的区分)
  • 内模式 物理模式/存储模式
一个数据库中只有一个内模式和一个模式,外模式可以任意个
数据在不同模式下形式和格式不同,因此需要两级映像(保证独立性,下层改变时只改变映像而不改变上层)
notion image
 
DBMS
DBA的职责:DBA为数据库管理员,
 

Chapter2 关系模型和关系运算

2.1 关系数据结构

表头可以抽象为关系模式,一行是一个关系实例
相关概念
域:一组相同数据类型的集合
基数:一个域允许的不同取值个数
笛卡尔积:集合运算{(d1,d2…dn)} (基数为所有基数的积)
关系:D1xD2…xDn的子集为域D1,D2…Dn上的关系
n=1为一元关系
元组:关系中的每个元素为一个元组
属性:每一列对应一个域,每列的名字为属性
码:
  • 候选码:某一属性组的值唯一标识一个元组,而子集不能,则为候选码
  • 主码:多个候选码中选一个为主码
  • 主属性:包含在候选码中的属性
  • 外码:R中的F与S中的Ks对应,且Ks为主码,则F为R的外码,R为参照关系,S为被参照关系
关系模式:R(U,D,DOM,F) R为关系名,U为属性名集合,D为U中属性所来自的域,DOM为属性向域的映像集合,F为属性间数据的依赖关系的集合
关系关系模式在某一时刻的状态或内容。
 

2.2 关系完整性原则

选课关系中主码由学号和课程号两个属性组成 而单个学号或者课程号是无法做到唯一标识的 因此学号或课程号不能单独作为主码
  • 实体完整性 主属性不能取空值
  • 参照完整性 外码需要为其他元组的主码
  • 用户定义完整性 数据必须满足语义要求
 

2.3 关系运算

关系代数语言
集合运算符(对两个关系内部的元组操作):交 差 并 笛卡尔积(R x S的属性为n+m个,元组个数为k1k2个)
关系运算符:
  • 选择 得到表中的指定元组 下方是选择条件
  • 投影 得到表中的指定列 下方是属性子集(同时会去掉重复的元组
  • 连接 将两个表按指定条件连接
    • 注意:使用的是比较条件R.A o S.B 如> = <
    • 等值连接 R.A=S.B连接(不去掉重复列)
    • 自然连接 把两个关系按照属性名相同进行等值连接,并去掉重复属性列
    • 悬浮元组:自然连接时,R中元组在S中不存在公共属性相等的元组
    • 外连接:保存悬浮元组,而在其他属性填空值
    • 左外连接:只保留左R中的悬浮元组
  • 除运算 R%S=T,则T保留所有在R中而不在S中的属性和值,且T的元组和S的元组结合均可以出现在R中
    • notion image
 
Q 连接运算如何用基本运算表达?
基本运算:并、差、笛卡尔积、投影和选择。
notion image
 
这里的第二种方法少了在下标中要增加A1…Ak
解题trick
  • 求几个属性的特定值:投影(选择(连接))
  • 求满足某属性全部值的其他属性 如B表全部值在A表
    • 如A包括学号与所选课程,B包括课程信息,求选择全部课程的学生学号:投影(学号,课程)(A)%投影(课程)(B),得到的是选了全部课程的学号
  • 差运算:如SC包含姓名成绩,求没有任何一门课程低于80分的学生姓名
    • 投影(姓名)(SC)-投影(姓名)(选择成绩<80)(SC))
    • 一般是求任意的问题,存在可以用选择解释
    •  
       

Chapter3 关系规范化

数据依赖

函数依赖:XY为属性U子集,不出现两个X相等而Y不等,则X → Y
X不包含Y,为非平凡函数依赖,否则为平凡函数依赖
完全函数依赖:若对任何X的真子集都没有X‘→Y,则Y完全函数依赖于X X→(F)Y,否则,为部分函数依赖
传递函数依赖 :X→Y+Y→Z =X→Z
X→Y 有XZ→YZ XZ→Y
X→Y + X→Z = X→YZ
最小函数依赖:X→Y为完全非平凡函数依赖,且Y为单属性
R中所有最小函数依赖构成R中最小函数依赖集
候选码:K→(F)U 否则为超码 候选码是最小的超码
 
Q-求候选码方法
给出集合和函数依赖集
1:只出现在左边的一定是候选码,只出现在右边的一定不是
2:先对确定的属性求闭包,再加入待定属性,直到闭包为U
求全部候选码就是在加入待定时使用BFS
 

关系规范化

Q:找最小函数依赖集,找候选码,判断范式(why),分解为XNF
做题HERE:判断+分解+求最小函数依赖集
  • 1NF:所有属性不可再分(规范化的关系)
notion image
  • 2NF:每一个非主属性完全依赖于任何一个候选码(消除部分函数依赖)
    • 分解:将部分依赖的属性单独拿出来
  • 3NF:满足2NF的前提下,去除非主属性对码的传递依赖(消除传递函数依赖)
    • 同样拿出传递依赖的函数依赖,作为新的关系
  • BCNF:消除任何属性对候选码的传递依赖(函数依赖集中左边的都包含任何一个候选码)
 
异常类型:
Q 2NF的问题?
  1. 插入异常。插入时还需要其他数据(假设学号sno=123,专业sdept=IS,宿舍sloc=N的学生还没有选课(则表示cno为空),则该学生无法将学生信息录入进系统。(因为cno为主属性,不能为空)。
  1. 更新异常。因为数据冗余大,则修改也会复杂。
  1. 删除异常。删除时误删除其他数据(假设一学生只选了一节课,但是现在他想将这门课退了,则将需要将这门课在这名学生系统中删除,但是在删除时,会把该学生的其它信息也会删除(因为cno为主属性)。
  1. 数据冗余。假设一学生选了10节课,则sdept和sloc也会重复10次。
 
Q求最小函数依赖集
  1. 拆分右侧,增加依赖
  1. 去除自身求闭包(即如果没有自己这条依赖,左侧还能推出来(只用左侧推进行闭包),则不需要这一个依赖)
  1. 左侧最小化(在左侧内部有没有依赖关系,有的话删除依赖方)

数据依赖的公理系统

逻辑蕴含:
Armstrong公理系统:

Chapter4 SQL

SQL概述与数据定义

一个关系对应一个基本表,一个/多个基本表对应一个存储文件。视图是虚表,由一个或几个基本表产生出来的关系
notion image

数据库模式的建立和删除

!注意括号和分号的格式
数据字典 关系数据库管理系统内部的一组系统表,记录了数据库中的定义信息
记录信息包括:关系模式定义,视图xx,索引,完整性约束,用户对数据库的操作权限,统计信息
建立数据库模式(需要DBA权限
CASCADE:级联,删除模式同时把其中所有的对象都删除
RESTRICT:限制,如果已经定义了下属对象,则拒绝执行
 

表结构建立/修改/删除

列级完整性约束
  • DEFAULT <常量> 默认值约束
  • NULL/NOT NULL 空值约束
  • PRIMARY KEY 主码约束
  • UNIQUE 单值约束
  • REFERENCES<父表名>(主码) 外码约束
  • CHECK (<逻辑表达式>) 检查约束
表级完整性约束
  • PRIMARY KEY (<列名>) 主码约束
  • UNIQUE (<列名>) 单值约束
  • FOREIGN KEY (<列名>)REFERENCES<父表名>(主码) 外码约束
  • CHECK (<逻辑表达式>) 检查约束
列级完整性约束和表级完整性约束的区别?
列级约束:只能应用于一列上。
表级约束:可以应用于一列上,也可以应用在一个表中的多个列上。
 

索引建立和删除

索引:建立索引是加快查询速度的有效手段,它属于物理存储的路径概念
 

SQL查询

SELECT语句
!用等价查询实现同一查询需求 - 多解问题
执行顺序:
  • 读取FROM子句中数据,进行笛卡尔积
  • 选择满足WHERE子句表达式的元组
  • 按GROUP子句分组,提取满足HAVING表达式的组
  • 按SELECT子句给出的列输出(投影)
  • 按ORDER进行排序,LIMIT限制行数
<表达式1>中含有源表的字段名或聚集函数:
基本查询
FROM
 
WHERE
接逻辑表达式,分为连接条件和筛选条件
嵌套查询*
 
GROUP + HAVING
 
ORDER
 
连接查询
 
子查询
集合查询(ppt里好像没有)
 

表内容的插入/更新/删除

插入表内容
更新表内容
删除表内容
 

空值

 

视图的建立、查询、更新和删除

视图查询: 执行视图消解: (1)有效性检查 (2)转换为等价的对基本表的查询,再执行修正的查询
notion image
 
更新视图
删除视图

Chapter5 数据库应用系统设计

数据库设计的基本步骤
  • 需求分析
  • 概念设计:根据需求设计ER
  • 逻辑设计:根据ER设计出关系模式
  • 物理设计:选择存储结构和存取方法(索引存取中建立索引)
  • 数据库实施:数据装载,编制调试应用程序,试运行
  • 运行维护:DBA
 

概念设计

Q:设计局部ER 合并ER 冲突解释+解决 转换为关系模型(标识主码外码)
做题HERE
方法:自顶向下,自底向上,逐步扩张,混合策略
常见:自顶向下需求分析,自底向上概念设计
步骤:
  • 抽象数据,设计局部视图
    • 如何设计局部视图?
  • 集成局部视图,得到全局概念
    • 如何合并 如何解决冲突?
    • 合并:解决各局部ER图的冲突
      • 属性冲突 类型/取值单位
      • 命名冲突
      • 结构冲突 实体/属性 属性个数/次序不同 联系不同
    • 修改和重构:消除不必要的冗余,生成基本ER图
      • 冗余数据 冗余联系
      • DD-DFD分析方法
        • 根据数据字典关于数据项之间逻辑关系的说明来消除冗余(如Q3=Q1xQ2)
      • 规范化理论
        • 确定E-R实体之间的数据依赖
        • 求F的最小覆盖,去掉冗余的联系

逻辑结构设计

逻辑设计目标:根据概念设计ER图设计出DBMS支持下的数据模型
ER模型转换为关系模型
  • 将实体名字转换为关系模式的名字
  • 属性与码对应
  • 联系转换(注意加入联系本身的属性
    • 1-1 任意一方加入对方主码作为外码,并在该方加入联系的属性
    • 1-n 将一方的主码加入n方作为外码(区别:不是任意一方),并在n方加入联系的属性/也可以转换为独立的关系模式
    • n-m 将联系转换为关系模式,将联系双方的主码加入其中为码

物理结构设计 实施与运维

选取存储结构和存取方法
步骤
  • 确定物理结构
  • 评价物理结构(时间+空间)
索引存取,聚簇存取,hash存取
实施:
DBA进行日常的系统管理和维护工作,对系统运行状态进行检测,工作包括
  • 数据库的转储和恢复
  • 数据库安全性,完整性控制
  • 数据库性能监督,分析,改进
  • 数据库重组织与重构造

Chapter6 数据库安全性

数据库的不安全因素
  • 用户对数据库的恶意存取和破坏
  • 数据库中重要敏感数据被泄漏
  • 安全环境的脆弱性
数据库的安全标准
TCSEC/TDI CC

数据库安全性控制

  • 用户标识与鉴别:最外层安全保护,使用用户标识与核对口令
  • 视图机制:对无权用户屏蔽数据
  • 数据加密:存储加密+传输加密
  • 跟踪审计:记录审计日志
DBMS 的存取控制机制(DAC、MAC)
定义用户权限,合法权限检查
*看一下这里的SQL代码
  • 自主存取控制DAC
    • 用户对不同数据对象有不同的存取权限,不同的用户对同一对象有不同权限,也可以将存取权限转授
    • C2级
  • 强制存取控制MAC
    • 每一种数据对象被设置密级,用户也被授予某级许可证
    • B1级
    • 管理的所有实体分为主体(用户进程)和客体,主体许可大于等于客体,则主体可以读取;主体许可小于等于客体,可以写入
    • TS绝密 S机密 C可信 P公开
    •  
       
软件安全重点 NIS3368-GNetChat