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图绘画
实体为矩形,关系为菱形,属性为椭圆
逻辑模型:
三大组成要素:数据结构,数据操作,数据完整性约束
层次数据模型(树形结构) → 网状数据模型(结点可以多亲) → 关系数据模型
关系数据模型:
- 关系:表
- 元组:一行
- 属性:一列
- 分量:元组中的一个属性值
- 关系模式:关系名(属性1,2…)
1.4 体系结构
数据库系统的三级模式和两级映像
- 外模式 子模式/用户模式
- 模式 逻辑模式/概念模式(和概念模型的区分)
- 内模式 物理模式/存储模式
一个数据库中只有一个内模式和一个模式,外模式可以任意个
数据在不同模式下形式和格式不同,因此需要两级映像(保证独立性,下层改变时只改变映像而不改变上层)
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中
Q 连接运算如何用基本运算表达?
基本运算:并、差、笛卡尔积、投影和选择。
这里的第二种方法少了在下标中要增加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:所有属性不可再分(规范化的关系)
- 2NF:每一个非主属性完全依赖于任何一个候选码(消除部分函数依赖)
- 分解:将部分依赖的属性单独拿出来
- 3NF:满足2NF的前提下,去除非主属性对码的传递依赖(消除传递函数依赖)
- 同样拿出传递依赖的函数依赖,作为新的关系
- BCNF:消除任何属性对候选码的传递依赖(函数依赖集中左边的都包含任何一个候选码)
异常类型:
Q 2NF的问题?
- 插入异常。插入时还需要其他数据(假设学号sno=123,专业sdept=IS,宿舍sloc=N的学生还没有选课(则表示cno为空),则该学生无法将学生信息录入进系统。(因为cno为主属性,不能为空)。
- 更新异常。因为数据冗余大,则修改也会复杂。
- 删除异常。删除时误删除其他数据(假设一学生只选了一节课,但是现在他想将这门课退了,则将需要将这门课在这名学生系统中删除,但是在删除时,会把该学生的其它信息也会删除(因为cno为主属性)。
- 数据冗余。假设一学生选了10节课,则sdept和sloc也会重复10次。
Q求最小函数依赖集
- 拆分右侧,增加依赖
- 去除自身求闭包(即如果没有自己这条依赖,左侧还能推出来(只用左侧推进行闭包),则不需要这一个依赖)
- 左侧最小化(在左侧内部有没有依赖关系,有的话删除依赖方)
数据依赖的公理系统
逻辑蕴含:
Armstrong公理系统:
Chapter4 SQL
SQL概述与数据定义
一个关系对应一个基本表,一个/多个基本表对应一个存储文件。视图是虚表,由一个或几个基本表产生出来的关系
数据库模式的建立和删除
!注意括号和分号的格式
数据字典 关系数据库管理系统内部的一组系统表,记录了数据库中的定义信息
记录信息包括:关系模式定义,视图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)转换为等价的对基本表的查询,再执行修正的查询
更新视图
删除视图
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公开
- Author:faii
- URL:https://www.faii.top/article/9c74363a-716f-4e0e-bae6-957ea2fc6622
- Copyright:All articles in this blog, except for special statements, adopt BY-NC-SA agreement. Please indicate the source!
Relate Posts