个人笔记 | 数据库

《数据库系统教程(第三版)》施伯乐

第一章

1、四个阶段:
(1)人工管理阶段、文件系统阶段、数据库阶段、
(2)高级数据库阶段(DDBS/ODBS/ODBC/WEB/XML)

2、数据描述+3
概念设计×4:实体、实体集、属性、实体标识符 EEAI
[根据用户的需求设计数据库的概念结构]
逻辑设计×4:字段、记录、文件、关键码 字记文关
[根据概念设计的结果设计数据库的逻辑结构]
物理设计:(位、字节、字、块、桶、卷)

3、二元联系Relationship(实体之间的相互关系)
1:1 一对一联系(一个 一个)
1:N 一对多联系(任意个 一个)
M:N 多对多联系(任意个 任意个)

4、模型是对显示世界的抽象P16 DM数据模型 现实世界=>数据库(逐步抽象的过程×4)
①概念模型:实体联系模型(代表)|
简单易理解 真实反映用户的需求、与计算机无关 用户易理解
②逻辑模型:计算机实现的DB全局逻辑结构
×4:层次/网状(过去)、关系(主流|二维表格表达实体集)、对象(未来)
关系模型最大的区别是数据联系不是用指针而是通过表间的公共属性
②外部模型:DB局部逻辑结构 视图
③内部模型:DB物理结构的模型 存储存取
①概念设计、②逻辑设计、③物理设计

5、用户=>数据库
经历×3个层次:外模式、逻辑模式、内层次 通过DDL数据定义语言
数据库的体系结构:三层模式体系结构&两级映像
(1)用户使用DB的DML数据操纵语言对数据库进行操作(对外模式的外部记录操作)
(2)数据按外模式的描述提供给用户,按内模式的描述存储在磁盘中;连接的中间观点
(3)内模式
外模式/逻辑模式:位于…之间、定义…之间的对应性、一般放在外模式中描述
逻辑模式/内模式: 、内模式中描述

数据独立性:应用程序与数据库的数据结构之间相互独立 不受影响
=物理数据独立性+逻辑数据独立性

6、DB-OS-DBMS~用户 (系统层次)
DB:数据库
长期存储在计算机内、有组织的统一管理的、数据的集合
DBMS:数据库管理系统 P26
位于用户与OS之间的一层数据管理软件 DDL+DML 查询处理器 存储管理器
工作模式(转换 | 图)
主要目标:
主要功能:DDL定义、DML操纵、保护、维护、DD数据字典(对db操作都要通过dd)
DBS:数据库系统(数据库+硬件+软件+数据库管理员 的集合体)
是包含DB和DBMS的计算机系统
DBA:数据库管理员 职责×6
定义模式&内模式 |与用户联络| 定义安全性规则(权限)&完整性gz(监督运行)、db转储恢复

7、DBS的全局结构 ×4层面(用户、界面、DBMS、磁盘)P30
用户×4:普通/专业用户、程序员、DBA
界面:
DBMS:查询处理器、存储管理器
磁盘存储器:DD、索引、日志、数据文件、统计数据

第二章 关系模型

关系模型、关系代数、关系代数表达式的优化、
【一、关系模型】
1、关系模型:二维表格表示实体集 关键码表示实体之间联系 的 数据模型
二维表格:列/字段/属性、字段值/属性值、行/记录/元组、
关键码:
①超键:(能唯一标识元组的属性or属性集)
②候选键:超键+单独属性
③主键:选做元组标识的候选键(一般键=主键)
④外键:模式R中属性K是其他模式的主键

2、关系:属性数目相同的元组的集 合 (4限制)

3、关系模型的3类完整性规则
a.实体完整性规则 (实体的主键值不能为空,否则起不了唯一标志元组的作用)
b.参照完整性规则 (不允许引用不存在的实体) 外键 波浪线
如果属性集K是R1的主键,也是R2的外键,那在R2中K可取空值orR1中某主键值
c.用户定义的完整性规则

4、关系模型的3层体系结构
a.关系模式 (DDL定义的 记录类型 ):模式名、属性名、值域名、模式的主键
b.子模式:用户用到的那部分数据的描述
c.存储模式:
关系模式的3重要组成部分:数据结构、数据操纵、数据完整性规则

【二、关系代数】
1、关系代数:以关系为运算对象的一组高级运算的集合
五基本操作:并U、差—、笛卡尔积×、投影Π(选列)、选择σ(根据条件 选行)
四个组合操作:交∩、连接、自然连接、除法÷
<除法:R÷S可先给R中除去S的属性分组,然后再找每个分组中包含S的,输出R/S投影>
P46-50例2.2、

2、关系代数运算的应用实例
(关系代数表达式: 5基本操作 有限次复合)

3、关系代数表达式的优化

第三章 SQL

SQL:Structed Query Language结构化查询语言
定义、查询、更新、视图、嵌入式SQL

1、SQL数据库的体系结构P75 (与P30的DBS全局结构对比)
用户-基本表(关系模式)-存储文件(存储模式)-文件
用户-视图(子模式)-基本表-存储文件-文件

2、SQL的组成×4:数据定义、数据操纵、嵌入式SQL、数据控制
DDL+DML+DCL+嵌入式SQL

3、数据库的定义:对SQL模式、基本表、索引的创建和撤销
【SQL模式的创建和撤销】
CREATE SCHEMA 模式名 AUTHORIZATION 用户名
DROP SCHEMA 模式名[CASCADE|RESTRICT]
【基本表的创建、修改、撤销】
基本表TABLE
【索引INDEX的创建和撤销】
索引INDEX
4、SQL的数据查询
(1)聚合函数 P87
更新和删除时候 WHERE条件找的属性如S#一般要写S# IN(SELECT……)

5、SQL的数据更新
SQL插入
删除
修改
6、视图的创建、撤销、更新
视图
7、嵌入式SQL 高级语言+SQL语言 (宿主语言)
SQL=交互式SQL(实验/程序员)+嵌入式SQL(用户)
嵌入式SQL实现:扩充主语言的编译能力or预处理√

程序在编译前必须进行预处理 引导词exec sql

先扫描源程序找出嵌入式SQL,处理成主语言的函数调用形式;再用主语言的编译程序 编译成目标程序。 借助DBMS提供的SQL函数定义库

SQl语言主要是面向集合的,一条SQL语句可产生或处理多条记录。而主语言是面向记录的,一组主变量一次只能放一条记录,因此引入游标,通过移动游标指针来决定获取那一条记录。
游标

第四章 关系模式规范化

1、关系模式的设计问题:冗余&异常 ~分解
数据冗余:同一个数据在系统中重复出现
操作异常:(修改/插入/删除)

2、 函数依赖FD
X->Y :X决定Y | Y依赖于X 如果X值相同那么Y值一定相同

FD的推理规则:
首先:有个关系模式R,U是它的属性集,F是R上成立的只涉及U中属性的FD集
(1)自反性:若Y⊆X⊆U,则X→Y在R上成立
(2)增广性:若X→Y在R上成立,则Z⊆U,则XZ→YZ在R上成立
(3)传递性:若X→Y和Y→Z在R上成立,则X→Z在R上成立
另外5条
(1)合并性:若X→Y和X→Z在R上成立,则X→YZ在R上也成立
(2)分解性:若X→Y和Z⊆Y在R上成立,则X→Z在R上也成立
(3)伪传递性:若X→Y和YW→Z和在R上成立,则XW→Z在R上也成立
(4)复合型:若X→Y和W→Z在R上成立, 则XW→YZ在R上也成立
(5)
例题

FD和关键码:X→U 超键、候选键(没有多余属性) 身份证+学号VS身份证的例子
求闭包、最小依赖集 P123

3、关系模式的分解:无损分解、保持依赖的分解
(1)无损分解:投影连接后没丢失信息
损失分解 把原来的信息丢失了(增加元组就是增加噪声)
模式分解:
Good:①消除数据冗余和操作异常②存储泛关系中无法存储的信息
Bad:①时间代价高(分解后要笛卡尔或连接)②损失信息
无损分解的测试方法:追踪chase过程P127
无损分解的测试方法
(2)保持函数依赖的分解

4、关系模式的范式
第一范式:关系模式R的每个关系r的属性值都是不可分的原子值。
那么称R是第一范式的模式 First Normal Form

第二范式:(局部依赖/完全依赖)
【说明:范式是很重要的内容,我看了浙大陈岭老师+哈工大战德臣老师的视频&课件,这部分有点难理解,自己在大概听懂后没有细致整理,资源后期放在这里(此处链接预约)】

第五章 ER

概念设计:利用ER方法,设计ER模型,画ER图
逻辑设计:把ER模型转换成关系模型

1、数据库工程与数据库生存期、数据库设计的全过程
数据库工程:数据库应用系统的开发是一项软件工程,同时又有自己的特点,so
数据库生存期:数据库应用系统从开始规划、设计、实现、维护,到最后被新的系统取代而停止使用,这整个期间。
分7:规划、需求分析、概念设计、逻辑设计、物理设计、实现、运行和维护
(1)规划:调查调研->可行性分析->确定xt总目标
(2)需求分析:业务流程图、系统关联图、设计的数据/数据流程图、数据字典
(3)概念设计: 建立ER模型
a.进行数据抽象,设计局部概念模型b.将局部概念模型综合成全局概念模型c.评审
(4)逻辑设计:
a.把关系模型转换成逻辑模型
b.设计外模型
c.设计应用程序和数据库的接口
d.评价逻辑模型(定量/处理频率/数据容量)(性能测量/预先知道一些参数)
e.修正模型(让模型适应信息的不同表示)
(5)物理设计:
存储结构设计、数据的存储位置、存取方法、
完整性和安全性、程序设计(独立性)
(6)实现:建立数据库
定义数据库的结构、组织数据入库、编制和调试应用程序、数据库试运行
(7)运行和维护:DBA
定期备份、安全性完整性控制、监督系统分析数据进行改进、重组织和重构造

2、ER模型的基本要素
实体(方框):
联系(动名词):二元1:1、1:N、M:N
属性(实体的某一特性):

3、【ER转成关系模式:https://blog.csdn.net/weixin_46218781/article/details/106065219】

算法:实体类型的转换、联系类型的转换(二元1:1、1:N、M:N)

第七章 系统实现技术

1、事务、ACID性质
事务:在数据库应用中完成单一逻辑功能的操作集合、要么完整的执行 要么完全不执行
对用户来讲,有些操作是一个整体,独立的工作单元,不能分割。
转账 一个扣那另一个就要加
ACID:
原子性Atomicity:是不可分割的
一致性consistence:保持数据库的一致,数据不会因为事务的执行而遭到破坏
隔离性Isolation:多个事务同时执行互不干扰,且执行结果和单个环境一样
持久性Durability:事务完成后对数据库的更新结果会一直保存不丢失

2、数据库恢复的基本原则和方法
What:系统把数据库从破坏的不正确的状态恢复到最近一个正确状态
基本原则:冗余(重复存储)
具体方法22:
(1)平时要做好转储和建立日志 (备份、有迹可循)
(2)发生故障时:灾难性故障(不能用,复制最新一次更新的数据,再用日志重做)
非物理性故障(在日志里撤销再重新做)

3、检查点技术checkpoint <重做、撤销>
DBS运行时,DBMS定时设置检查点 (当DB要恢复的时候,只有检查点后面的事务要)
恢复算法:(1)根据日志文件建立事务重做队列和撤销队列(2)重做、撤销

4、数据库的并发控制
What:多个事务可能同时对同一事务进行操作(单CPU、分时并行)
丢失更新问题:(我改的数据丢了)采用封锁技术Locking
读脏数据问题:①用户读了不正确的数据but没有破坏数据库的完整性
②用户读了脏数据,引起自身更新操作丢失,破坏数据库完整性
不可重复读问题:因为事务并行操作,事务T1读两次数据不一样(其他事务有操作)

5、封锁技术
锁LOCK 一般数据库中每个数据都有一个锁
作用:让并发事务对数据库中数据项的访问能同步
排他型封锁:X锁 写锁 只允许一个事务读锁数据,其他食物排队去等
共享型封锁:S锁
封锁对象的大小 成为封锁力度
封锁带来的问题:活锁问题、饿死问题、死锁问题
封锁
6、可串行化概念P231
数据并发操作里有一个“丢失更新问题”,数据库中A值,然后有两个事务T1T2对其操作
因为时间先后而产生不同结果
如果我当前有个结果 和上面任意一个结果都不相同 那就是不可串行

7、SQL的完整性约束
保证授权用户对DB的修改不会导致DB完整性的破坏。
域约束、基本表约束、断言、触发器
完整性:正确性、有效性、相容性
https://blog.csdn.net/weixin_34071713/article/details/93579466?utm_medium=distribute.pc_relevant.none-task-blog-baidujs_utm_term-8&spm=1001.2101.3001.4242
数据库的完整性
机制
8、安全性问题:保护数据库 防止不合法使用

9、权限问题:用户/应用程序使用数据库的方式
访问数据×4:读、插入、修改、删除
修改数据×4:索引、资源(新关系)、修改(属性)、撤销、SQL的安全性措施

第九章 DDBS 基本特点

分布式数据库系统 DDBS
物理分布性:不是在一个场地,而是多个计算机网络的场地
逻辑整体性:虽然物理~但是逻辑一致,被yoghurt共享,及一个DDBMS统一管理
场地自治性:各个场地的数据由本地的DBMS管理
场地之间的协作性:高度自治但构成一个整体

4:数据独立性、集中与自治相结合、适当增加数据冗余度、事务管理的分布性

  • 5
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值