数据库概述
目录
- 一、基本概念
- 二、关系型数据库
- 三、索引
一、基本概念
1. 什么是数据库: 数据仓库,当需要存储大量的数据,且经常性地对数据进行操作时才适合用数据库。
2. 数据库特点:
- 数据低冗余高共享:
- 数据独立性高:物理、逻辑独立
- 数据控制:
- 安全控制
- 完整性控制
- 并发性控制:多用户存储数据时,防止相互干扰
- 数据恢复:从错误状态恢复到最近的正确状态
3. 数据库类型
- 关系数据库:采用关系模型(二维表格模型)表示数据之间地关系
- 网状数据库:图结构
- 层次数据库:树结构
4. 数据库管理系统(DBMS):具有数据定义、存取、管理、建立、维护和通信等功能。
5. 数据库应用系统(DBAS):在DBMS基础上,针对实际问题开发出来的面向用户的系统,如网上银行。
6. 数据库系统的体系结构:
- 内部体系结构:三级模式,两级映射,由外到内
- 外模式:子模式/用户模式,多个
- 模式:概念模式
- 内模式:存储模式,一个
- 外部体系结构:
- 集中式结构
- 文件服务器结构
- 客户/服务器结
7. 数据模型:关系模型、层次 模型、网状模型。
8. 概念模型:先将现实世界中的事物抽象成信息世界的概念模型,然后再抽象成计算机世界的数据模型
- 实体与实体集
- 属性
- 关键字/码和域
- 联系:实体内部联系、实体与实体的联系(一对一、一对多、多对多)
- E-R方法:实体-联系方法, 用E-R图描述(先确定实体集和联系、再确定每个实体集的属性)
9. 数据库设计步骤
- 需求分析:准确了解与分析用户需求,包括数据和处理,最困难、最耗时。
- 概念结构设计:对需求进行抽象,形成一个独立于具体DBMS的概念模型。
- 逻辑结构设计:将概念结构转换成某个DBMS支持的数据模型,并对其优化。
- 物理结构设计:选取最合适应用环境的物理结构,包括存储结构、存储方法等。
- 数据库实施
- 数据库运行和维护
10. 数据库事务:一个逻辑工作单元执行的一系列操作,具有4个属性ACID:
- 原子性(Atomicity):事务作为一个整体被执行,其中的操作要么全部被执行,要么都不执行。
- 一致性(Consistency):确保数据库的状态从一个一致状态转变为另一个一致状态,一致状态指数据应满足完整性约束。
- 隔离性(Isolation):多个事务并发执行时,一个事务的执行不应影响其他事务的执行。
- 持久性(Durability):已被提交的事务对数据库的修改应该永久保存在数据库中。
二、关系型数据库
1. 关系数据库:建立在关系模型基础上的数据库,即由二维表及其之间的联系组成的一个数据组织,借助于集合代数等数学概念和方法来处理数据库中的数据。
2. 基本术语:
- 关系,一张二维表
- 元组,一条记录,一个实体;
- 属性,字段;
- 域,属性取值范围;
- 分量,元组中的一个属性值;
- 关系模式,关系名(属性1,属性2,……)
- 候选关键字,唯一标识一个元组的一个或几个属性的集合称为候选关键字;
- 主关键字,多个候选关键字中选一个作为主关键字,也称主码、主键;
- 外关键字,关系中非关键字的属性,但是其他关系的关键字;
- 主属性,包含在任意候选关键字中的属性。
3. 关系模型的完整约束:
- 实体完整性,即主键不能取空值;
- 参照完整性,即关系中的外键必须为空或是等于其作为主键的关系中对应的值;
- 用户定义的完整性,即不同的应用环境需要一些特殊的约束条件。
4. 关系代数:
- 集合运算符:并(\(\cup\))、交(\(\cap\))、差(\(-\))、笛卡尔积(\(\times\))
- 比较运算符:大于、小于、不等于(<>)、大于等于、小于等于;
- 关系运算符:选择(\(\sigma\))、投影(\(\prod\))、除(\(\div\))、连接();
- 投影:从一个关系中选出若干指定字段的值的操作;
- 连接:将两个关系的记录按一定条件横向结合,生成一个新的关系。
- 逻辑运算符:非(\(\neg\))、与(\(\wedge\))、或(\(\vee\))。
5. 规范化理论:
- 非规范化:当关系中有一个字段具有组合数据项时、当关系中含有多值数据项时。
- 规范化程序较高者必是较低者的子集。
- 让一个关系描述一个概念、一个实体或者实体间的一种关系,如果多于一个概念,就把它分离出去,因此,所谓规范化实质上是概念的单一化。
- 低范式,通过投影分解,变成高范式。
- 第一范式1NF:属性项不能是属性组合或组属性组成。
- 第二范式2NF:属于1NF,且所有的非主关键字段都完全依赖于主关键字。
- 第三范式3NF:属于2NF,且每个非关键字不传递依赖于主关键字。
6. 什么是视图?
- 视图实际上是在数据库中通过Select查询语句从多张表中提取的多个表字段所组成的虚拟表。
- 视图并不占据物理空间,所以通过视图查询出的记录并非保存在视图中,而是保存在原表中。
- 通过视图可以对指定用户隐藏相应的表字段,起到保护数据的作用。
- 在满足一定条件时,可以通过视图对原表中的记录进行增删改操作。
- 创建视图时,只能使用单条select查询语句。
7. 什么是内联接、左外联接、右外联接?
- 内联接(Inner Join):匹配两张表中相关联的记录。
- 左外联接(Left Outer Join):除了匹配2张表中相关联的记录外,还会匹配左表中剩余的记录,右表中未匹配到的字段用NULL表示。
- 右外联接(Right Outer Join):除了匹配2张表中相关联的记录外,还会匹配右表中剩余的记录,左表中未匹配到的字段用NULL表示。
- 在判定左表和右表时,要根据表名出现在Outer Join的左右位置关系。
三、索引
1. 索引:是对数据库表中一列或多列的值进行排序的一种结构,使用索引可快速访问数据库表中的特定信息。
2. 索引分类:
- 唯一索引:唯一索引不允许两行具有相同的索引值。
- 主键索引:为表定义一个主键将自动创建主键索引,主键索引是唯一索引的特殊类型。主键索引要求主键中的每个值是唯一的,并且不能为空。
- 聚集索引(Clustered):表中各行的物理顺序与键值的逻辑(索引)顺序相同,每个表只能有一个。
- 非聚集索引(Non-clustered):指定表的逻辑顺序。数据存储在一个位置,索引存储在另一个位置,索引中包含指向数据存储位置的指针。可以有多个,小于249个。
3. 什么时候要创建索引
- 表经常进行 SELECT 操作
- 表很大(记录超多),记录内容分布范围很广
- 列名经常在 WHERE 子句或连接条件中出现。
4. 什么时候不要创建索引
- 表经常进行 INSERT/UPDATE/DELETE 操作
- 表很小(记录超少)
- 列名不经常作为连接条件或出现在 WHERE 子句中
5. 索引优缺点
- 索引加快数据库的检索速度
- 索引降低了插入、删除、修改等维护任务的速度(虽然索引可以提高查询速度,但是它们也会导致数据库系统更新数据的性能下降,因为大部分数据更新需要同时更新索引)
- 唯一索引可以确保每一行数据的唯一性,通过使用索引,可以在查询的过程中使用优化隐藏器,提高系统的性能
- 索引需要占物理和数据空间
posted on 2020-05-14 23:59 chenxiaoyuan 阅读(158) 评论(0) 收藏 举报
浙公网安备 33010602011771号