数据库系统重点摘要【软考】


前言

本文是在软考软件设计师时写的,为了自我复习,必经教学相长,所以比较简陋:D


一、数据库体系结构

三级模式

1.== 外模式(用户视图):视图级==。数据库用户能看到和使用的局部数据的逻辑结构和特征的描述
2. 概念模式(概念视图):表级。对数据库中全部数据的逻辑结构和特征的描述,是所有用户的公共数据视图
3. 内模式(内部视图):文件级。对数据物理结构和存储方式的描述,是数据在数据库内部的表示方式

两级映像

  • 外模式-概念模式映像保证数据的逻辑独立性
  • 概念模式-内模式映射保证数据的物理独立性

集中式数据库系统

  • 数据集中存储
  • 数据集中化
  • 数据安全性高

C/S结构

  • 客户端复杂数据表示服务
  • 服务器主要负责数据库服务

分布式数据库

  • 数据独立性
  • 集中与自治共享结合的控制结构
  • 适当增加数据冗余度
  • 全局的一致性、可串行性和可恢复性

二、数据仓库

  • 面向主题:数据按组织变化
  • 集成性:数据仓库的数据来源于分散的操作型数据,经过抽取、转换、加载(ETL)等过程,形成统一、综合的数据集合
  • 相对稳定:主要进行查询操作,只有少量的修改和删除操作
  • 反映历史变化:数据包含历史信息

三、数据库设计过程

概述

  1. 需求分析:分析当前和未来应用的数据要求,输出数据流图、数据字典、需求说明书
  2. 概念结构设计:对用户需求进行抽象、综合分析,输出ER模型(与数据库无关)
  3. 逻辑结构设计:将概念结构转换为某个DBMS所支持的数据模型,输出视图、完整性约束及应用处理说明书
  4. 物理结构设计 :为逻辑数据结构模型选取一个最适合应用环境的物理结构

3.1概念结构设计

流程

  1. 抽象数据
  2. 设计局部ER模型
  3. 合并局部模型消除冲突
  4. 重构优化消除冗余

ER模型

  • 实体:实体是现实世界中可以区别其他对象的事件和事务
  • 属性:属性是实体某方面的特征
  • 联系:实体的联系分为实体内部的联系和实体与实体间的联系

3.2逻辑结构设计

数据模型

  • 层次模型
  • 网状模型
  • 关系模型
  • 面向对象模型

数据模型三要素:数据结构、数据操作、数据约束条件

关系的三种类型:基本类型、查询表、视图表

四、关系代数


综合2个表的所有元组,且去除重复


以左侧对象为主,在左侧对象的元组集合中去除右侧对象已有元组,则为差集


列出2个表都有的元组

选择
水平方向上对元组进行选择

投影
垂直方向上对属性进行选择

自然连接
二元运算,属性列数是二者之和,结果元组是同名属性列取值相等的元组

五、规范化理论

5.1基本概念

Armstrong公理

  • 自反率:若属性集Y是属性集X的子集,且X是关系模式R的属性集U的子集,则X→Y在R上成立
  • 增广律:若X→Y在R上成立,且Z是U的子集,则XZ→YZ在R上也成立
  • 传递律:若X→Y和Y→Z在R上成立,则X→Z在R上也成立
  • 合并规则:若X→Y和X→Z在R上同时成立,则X→YZ也在R上成立
  • 分解规则:若X→Y在R上成立,且Z是Y的子集,则X→Z也在R上成立
  • 伪传递规则:若X→Y在R上成立,且WY→Z也成立,则XW→Z在R上也成立

5.2范式

  • 第一范式(1NF):如果关系R中所有属性的值域都是单纯域,并且关系中的每一个属性值都是不可再分的最小数据单位,则称R满足第一范式。第一范式是关系模式设计的基本要求,所有关系模式都必须满足第一范式
  • 第二范式(2NF):如果关系模式R∈1NF,并且每一个非主属性都完全函数依赖于任何一个候选码,则称R满足第二范式。第二范式要求消除部分函数依赖,即非主属性必须完全依赖于候选码,而不是候选码的一部分
  • 第三范式(3NF):如果关系模式R∈2NF,并且每一个非主属性既不部分依赖于码也不传递依赖于码,则称R满足第三范式。第三范式要求消除传递函数依赖,即非主属性不能通过其他非主属性间接依赖于候选码
  • BCNF(Boyce-Codd范式):如果关系模式R中,每一个决定因素都包含R的一个候选码,则称R满足BCNF。BCNF是修正的第三范式,它要求决定因素必须包含候选码,从而解决了所有插入、删除操作异常的问题

六、SQL语言

6.1普通查询

分类动词
数据查询SELECT
数据定义CREATE、DROP、ALTER
数据操纵INSERT、UPDATE、ALTER
数据控制GRAND、REVOKE

6.2分组查询

SELECT 列名, 聚合函数(列名)  
FROM 表名  
WHERE 条件  
GROUP BY 列名  
HAVING 条件;
  • SELECT子句:用于指定查询结果中要显示的列,可以是分组列、聚合函数或其他列。需要注意的是,如果SELECT子句中包含非聚合列,则这些列必须包含在GROUP BY子句中。
  • FROM子句:用于指定查询的表名。
  • WHERE子句(可选):用于在分组前对原始数据进行筛选,满足条件的记录才会被用于分组。
  • GROUP BY子句:用于指定分组的列名。查询结果将按照这些列中的值进行分组。
  • HAVING子句(可选):用于对分组后的结果进行筛选,即基于聚合函数计算的结果进行条件过滤

6.3权限控制

授权语句

GRANT 权限列表  
ON 对象类型 对象名  
TO 用户或角色列表  
[WITH GRANT OPTION];

收回语句

REVOKE 权限列表  
ON 对象类型 对象名  
FROM 用户或角色列表  
[CASCADE | RESTRICT];

七、并发控制

事务的特性

  • 原子性
  • 一致性
  • 隔离性
  • 持久性

并发控制

  • 丢失更新
  • ==不可重复读
  • 读“脏”数据

封锁协议

  • X锁(写锁)的加锁规则:若事务T对数据对象A加上X锁,其他事务不能再对A添加任意锁
  • S锁(读锁)的加锁规则:若事务T对数据对象A加上S锁,其他事务只能对A再加S锁,不能再对A添加X锁
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值