日食三餐夜眠六尺

导航

数据库概述

目录

  • 一、基本概念
  • 二、关系型数据库
  • 三、索引

一、基本概念

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)    收藏  举报