数据库概论

本文涉及的产品
日志服务 SLS,月写入数据量 50GB 1个月
简介: 个人整理数据库复习资料,转载注明出处

第一章 绪论

  1. 数据库的概念模型独立于(具体机器和dbms)
  2. 数据独立性:

物理独立性 用户的应用程序与数据库的物理存储(磁盘中的数据)相互独立

逻辑独立性 用户的应用程序和数据据库的逻辑结构相互独立

3.数据库管理系统的功能(dbms)

(1) 注:数据库管理系统和操作系统一样是计算机基础软件

(2) 数据定义功能:dbms提供数据定义语言(DDL)用户可以通过它对数据库中的数据对象的组成和结构进行定义

(3) 数据组织,存储和管理:目的是提高存储空间利用率和方便存取

(4) 数据操纵:增删改查

(5) 数据库的事务管理和运行管理

(6) 数据库的建立和维护

(7) 其他:与其他软件的通信,异构数据库之间的互访

4.数据库是长期储存在计算机内,有组织,可共享的大量数据的集合,数据按照一定的数据模型进行组织,描述,存储。具有较小的冗余度和较高的数据独立性和可扩展性

5.数据库的基本特点:永久储存,有组织,可共享

6.数据库系统包括:数据库(DB)数据库管理系统(DBMS)数据库管理员(DBA)应用程序

7.文件系统是数据库管理系统的前身,但文件系统相较于数据库管理系统有共享性差,冗余度高的缺点

8.数据库系统的特点

(1) 数据结构化(与文件系统的差别)

(2) 数据共享性高,冗余度低,易扩展

(3) 数据独立性高(见2)

(4) 数据由数据库管理系统统一管理和控制

9.数据模型是数据库系统的核心和基础

(1) 概念模型

实体,属性,码,实体性(同一类型实体的集合),联系

概念模型的表示方法:实体-联系方法(E-R模型)

(2) 逻辑模型和物理模型:层次模型(树形),网状模型(结构复杂,难操作(存取路径)),关系模型(关系必须规范化:关系的字段必须不可再分),面对对象数据模型,对象关系模型 ,半结构化数据模型

(3) 数据模型组成要素:数据结构,数据操作,数据完整性约束条件

主要转化:现实世界抽象认识——>概念模型——>数据模型

10.三级模式结构

(1)三级模式,两级映像,内模式和模式只有一个,外模式可有多个

(2)外模式-模式映像可以保证数据与程序的逻辑独立性

(3)模式-内模式映像可以保证数据与程序的物理独立性

11.数据字典:是指对数据的数据项、数据结构、数据流、数据存储、处理逻辑等进行定义和描述

第二章 关系数据库

1.结构化查询语言(sql)是集查询,数据定义语言,数据操纵和控制于一体的语言

2.关系完整系:实体完整性,参照完整性,用户定义完整性

3.关系代数:基本关系运算(并,差,笛卡尔积,选择,投影)

第三章 关系数据库标准语言sql

1.目前没有数据库支持sql所有的概念和特性

2.sql语法

(1)定义模式:create schema 模式名authorization 用户名

(2)定义基本表:create table 表名 (字段名 数据类型(长度)列级约束)

CREATE TABLE Persons

(

Id_P int(10) primary key,

LastName varchar(255) unique,

FirstName varchar(255),

Address varchar(255),

City varchar(255)

)

(3)定义视图:create view 视图名(列名)as 子查询

CREATE VIEW [Current Product List] AS

SELECT ProductID,ProductName

FROM Products

WHERE Discontinued=No

(4)修改基本表:alter table 表名 操作

ALTER TABLE Students 增加字段

ADD Ssex CHAR(2) ;

ALTER TABLE Students 修改数据类型

ALTER  COLUMN Ssex CHAR(4);

ALTER TABLE Students 删除约束

DROP CONSTRAINT CK_Students_Scredit;

ALTER TABLE Students 删除列

DROP COLUMN Sroom;

(5)索引建立:create index on 表名 (列名)

删除索引: drop index 索引名

(6)查询:select (all/distinct)目标列表达式 from 表或视图 where 条件 group by having 条件 order by desc(倒排)

(7)In语句和any,all语句:IN 与 = ANY 等价,均表示,变量在(子查询)列表之中,即 a IN (table B) 表示 a = ANY B.b,NOT IN 与 <> ALL 等价。

SELECT column_name(s)

FROM table_name

WHERE column_name IN (value1,value2,...)

(8)插入数据 insert into values(‘值1’,’值2 ’,’值3’)

(9)修改数据 update 表名 set 列名=表达式 where 条件

UPDATE Person SET FirstName = 'Fred' WHERE LastName = 'Wilson'

(10)删除数据 delete  from 表名 where 条件

(11)授权 grant 权限:(select)on 对象to 用户(with grant option)

(12)收回权限revoke :revoke 权限 on 对象 from 用户

(13)创建触发器:

DELIMITER |
CREATE TRIGGER <databaseName>.`
`< [ BEFORE | AFTER ] > < [ INSERT | UPDATE | DELETE ] >
ON [dbo] //dbo代表该表的所有者
FOR EACH ROW
BEGIN
--do something
END |

mysql> CREATE TRIGGER SumOfSalary

-> BEFORE INSERT ON tb_emp8

-> FOR EACH ROW

-> SET @sum=@sum+NEW.salary;

(14)定义事务:BEGIN TRANSACTION;COMMIT;ROLLBACK;

3.连接查询:自然连接(会删除重复的列)和等值连接(不会删除重复的列)

4.聚集函数 sum avrg不能进行直接更新

第四章 数据库安全性

1.数据库安全性控制

(1)用户身份鉴别(静态口令鉴别,动态口令鉴别,生物特征鉴别,智能卡鉴别)

(2)存取控制(定义用户权限,合法权限检查)

2.密级的次序是TS(绝密)≥S(机密)≥C(可信)≥P(公开)

3.数据加密 :存储加密,传输加密

第五章 数据库完整性

1.数据库完整性是指数据的正确性和相容性

2.实体完整性

(1)检查主码是否唯一,如果不唯一就拒绝插入或修改

(2)检查主码各个属性是否为空,只要有空就拒绝插入或修改

3.参照完整性:违约处理:拒绝执行,级联操作,设为空值。

4.用户定义完整性

5.断言:create assertion 断言名 check子句

6.触发器:见第三章sql语言

第六章 规范化

1.范式

(1)第一范式:每一个分量都是不可再分的数据项

(2)2NF:关系属于第一范式且每一个非主属性完全依赖于任何一个候选码

(3)3NF:R不存在这样的码X,属性组Y及非主属性Z使得X→Y,Y→Z成立,Y$\nrightarrow$X,则称R<U,F>$\in
$3NF

(4) 关系模式R<U,F>中,每一个决定因素都包含码,则R<U,F>$\in
$BCNF

2.数据依赖:主要有:函数依赖和多值依赖。

3.关系模式可能存在的问题:数据冗余,更新异常,插入异常,删除异常

第七章 数据库设计

1.数据库设计基本步骤:需求分析,概念结构设计,逻辑结构设计,物理结构设计,数据库实施 数据库运行和维护。

2.概念结构设计(E-R图):一对一和一对多的联系可转化为单个关系也可以和大端结合,多对多只能转化为单个关系

3.实体性用矩形,属性用椭圆,联系用菱形

第十章 数据库恢复技术

1.事务时用户定义的一个数据库操作序列,不可分割。

2.commit表示提交即提交事务的所有操作,将事务对数据库的更新写回到磁盘的物理数据库中

rollback表示回滚,将事务对数据库已完成的操作全部撤销,回滚到事务开始的状态。

3.事物的四个特性:原子性(基本单位,不可再分),一致性(事务仅进行一半,会导致缓存和物理磁盘内容不一致)隔离性(并发事务不能相互干扰)持续性(事务对数据库的修改是永久性的)

4.故障的种类

(1)事务内部故障(非预期的,不能由应用程序处理,使用rollback进行强行回滚

(2)系统故障(软故障):硬件故障(cpu),操作系统故障,系统断电等,需要撤销未完成的,重做已完成的事务

(3)介质故障(硬故障):磁盘损坏,强干扰,磁头碰撞

(4)计算机病毒

5.故障导致数据库本身被破坏或数据不正确

6.数据库恢复(通过冗余来恢复)常用技术:

(1)数据转储:静态(海量/增量)转储,动态(海量/增量)转储

(2)登记日志文件(记录事务对数据库的更新操作的文件)

内容包括:事务标记,操作类型,操作对象,更新前数据的旧值,更新后数据的新值

登记日志文件两条原则:登记次序按照并发事务执行的时间顺序;必须先写日志文件,再写数据库。

7.具有检查点的恢复技术:在日志文件中增加检查点记录记录。其通过周期性执行建立检查点,保存数据库状态的操作动态维护日志文件

第十一章 并发控制

1.事务是并发控制的基本单位

2.并发控制带来的数据不一致包括

(1)丢失修改(一级封锁协议:事务T在修改数据R之前先对其加X写锁,事务结束释放X写锁)

(2)不可重复读(二级封锁协议:在读取数据之前加S读锁,读完即释放)

(3)读脏数据(三级封锁协议:读取数据加S锁,事务结束释放)

3.活锁和死锁:

(1)活锁解决:先来先服务

(2)死锁预防:一次封锁法,顺序封锁法

(3)死锁解除:撤销死锁事务

4.可串行化调度:多个事务并发执行是正确的,当且仅当其结果于按某一次序串行的执行这些事务时的结果相同

5.两段锁协议:获得封锁和释放封锁两个阶段,不能穿插进行

6.封锁的粒度

显示封锁:应事务要求直接加在数据对象上的锁

隐式封锁:由于上级节点加锁而使其加锁

意向锁(IS意向读,IX意向写,SIX=S+IX读和意向写):如果对一个节点加意向锁,证明其下层节点正在被加锁;

例如对元组(列)进行读操作(对元组加S锁),就得首先对表加IS锁,检查元组和表是否有不相容的锁(X,IX),不用检查元组中的锁(X)

相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
相关文章
|
存储 设计模式 数据库
数据库概论课程设计-汽车租赁公司数据库系统的设计
数据库概论课程设计-汽车租赁公司数据库系统的设计
179 0
|
6月前
|
移动开发 C#
数据库系统概论期末经典大题讲解(范式提升、求闭包、求主码)
数据库系统概论期末经典大题讲解(范式提升、求闭包、求主码)
253 0
|
SQL 关系型数据库 MySQL
数据库系统概论 ---- 第五章 -- 数据库完整性
数据库系统概论 ---- 第五章 -- 数据库完整性
|
SQL 存储 监控
数据库系统概论 ---- 第四章 -- 数据库安全性(二)
数据库系统概论 ---- 第四章 -- 数据库安全性(二)
|
SQL 关系型数据库 MySQL
数据库系统概论 ---- 第三章 -- 关系数据库标准语言SQL(3.5-3.7)(一)
数据库系统概论 ---- 第三章 -- 关系数据库标准语言SQL(3.5-3.7)
|
SQL 数据库 数据库管理
数据库系统概论 ---- 第三章 -- 关系数据库标准语言SQL( 3.4 数据查询 )(三)
数据库系统概论 ---- 第三章 -- 关系数据库标准语言SQL( 3.4 数据查询 )(三)
|
SQL 关系型数据库 MySQL
数据库系统概论 ---- 第三章 -- 关系数据库标准语言SQL( 3.4 数据查询 )(二)
数据库系统概论 ---- 第三章 -- 关系数据库标准语言SQL( 3.4 数据查询 )(二)
|
11月前
|
存储 程序员 数据库
数据库系统概论学习 1 绪论
数据库系统概论学习 1 绪论
152 0
数据库系统概论学习 1 绪论
|
6月前
|
数据库 Python
数据库系统概论期末经典大题讲解(用关系代数进行查询)
数据库系统概论期末经典大题讲解(用关系代数进行查询)
163 0
|
数据库 数据库管理 SQL
数据库系统概论——绪论(2)
数据库系统概论——绪论(2)
数据库系统概论——绪论(2)