一、数据库基本概述

基本概念

数据与数据管理

数据:描述事物的符号记录
数据处理:从大量的、可能是杂乱无章的、难以理解的数据中抽取并推导出对于某些特定的人们来说有价值、有意义的数据。
数据管理:对数据进行有效的分类、组织、编码、存储、检索、维护和应用——数据处理的中心问题。

数据库技术的产生与发展

  • 人工管理阶段
    1. 数据是面向应用程序的。
    2. 数据需要应用程序自己定义和管理。
    3. 数据无法共享利用,存在大量数据冗余。
  • 文件管理系统阶段
    1. 对于一个特定的应用,数据被集中组织存放在多个数据文件(以后简称为文件)或文件组中,并针对该文件组来开发特定的应用程序。
    2. 利用“按文件名访问,按记录进行存取”的管理技术,可以对文件进行记录的修改、插入和删除等操作。

文件系统

文件系统的特点

  1. 程序和数据之间由文件系统提供的存取方法进行转换,程序员可以不必过多地考虑物理细节。
  2. 由于数据在存储上的改变不一定反映在程序上,因此应用程序与数据之间有了一定的物理独立性
  3. 文件系统实现了文件内的结构性,即一个文件内的数据是按记录进行组织的,这样的数据是有结构的
  4. 整体上还是无结构的,即多个文件之间是相互独立的,无法建立全局的结构化数据管理模式。

    总结:在文件系统内有结构性,整体无结构性

文件系统的弊端

  1. 完整性问题
  2. 安全性问题
  3. 原子性问题
  4. 并发访问异常

数据库系统

数据库管理阶段

  1. 数据库管理系统(DBMS)是由一个相互关联的数据的集合和一组用以访问、管理和控制这些数据的程序组成
  2. 这个数据集合通常称为数据库(database, DB),其中包含了关于某个企业信息系统的所有信息
  3. DBMS是位于用户与操作系统之间的一层数据管理软件,它提供一个可以方便且高效地存取、管理和控制数据库信息的环境
  4. DBMS和操作系统一样,都是计算机的基础软件(系统软件),也是一个大型复杂的软件系统

    数据库管理系统的主要特点

  • 数据的共享度高,冗余度底,易扩充
    1. 数据库管理系统从整体角度描述和组织数据,数据不再是面向某个应用,而是面向整个系统
    2. 因此,数据可以被多个用户、多个应用共享使用
    3. 数据共享可以大大减少数据的冗余,避免数据之间的不一致性
  • 数据独立性高
    1. 数据独立性是用来描述数据与应用程序之间的依赖程度,包括数据的物理独立性和数据的逻辑独立性,依赖程度越低则独立性越高
    2. 物理独立性是指用户的应用程序与存储在磁盘上数据库中的数据是相互独立的
    3. 逻辑独立性是指用户的应用程序与数据库的逻辑结构是相互独立的
  • 数据由数据库管理系统(DBMS)统一管理和控制
    1. 数据的安全性保护:保护数据以防止不合法的使用造成数据的泄密和破坏
    2. 数据的完整性检查:将数据控制在有效的范围内,或保证数据之间满足一定的关系
    3. 并发控制:对多个用户或应用同时访问同一个数据的并发操作加以控制和协调,确保得到正确的修改结果或数据库的完整性不遭到破坏
    4. 数据库恢复:当计算机系统发生硬件或软件故障时,需要将数据库从错误状态恢复到某一已经正确状态

二、数据模型

定义

数据模型是一个描述数据语义、数据与数据之间联系(数据结构),数据操作,以及一致性(完整性)约束的概念工具的集合。

数据模型的分类

概念模型:概念层次的数据模型,也称为信息模型
逻辑模型:用于描述数据库数据的整体逻辑结构
物理模型:用来描述数据的物理存储结构和存取方法

举个例子:
比如我们要设计一个数据库,里面包含的是学生和学生选修课的数据
那我们需要收集和统计的数据如下,并且把他们按照关系连接在一起。
这个就是**概念模型**
image.png

再比如,学校、院系、专业三者之间有如下逻辑关系
这种我们叫做树状图
这就是**逻辑模型**
image.png

最后**物理模型**就是数据在计算机中的存储方式,这个在第五章数据库设计会学习到。
例如,一个数据库中的数据和索引是存放在不同的数据段上还是相同的数据段上;数据的物理记录格式是变长的还是定长的;数据是否压缩存储;索引结构是B+树还是Hash结构等 。

注意:物理模型是数据模型里面的最底层。 这里不理解没有关系,后面学习会自然而然了解。

数据模型的组成要素

数据结构:描述数据库的组成对象(数据)以及对象之间的联系
数据操作:指对数据库中各种对象(型)的实例(值)允许执行的操作集合,包括操作及有关的操作规则
完整性约束:一组完整性规则,它给定数据模型中数据及其联系所具有的制约和依存规则,用以限定符合数据模型的数据库状态以及状态的变化,以保证数据库中数据的正确、有效和相容

数据结构就类似逻辑模型,描述数据与数据之间关系。 数据操作就是所谓的增删改查(增加/删除/修改/查询 数据) 完整性约束,就是类似数学上的定义域,但是这里更广义,比如性别这个数据的值只能是或者,不能是,也不能是空值。(这些后面会慢慢学习到)

三、三大模型

层次模型

定义

满足以下条件:

  1. 1.有且只有一个结点没有双亲结点,这个结点称为根结点。
  2. 2.根以外的其他结点有且只有一个双亲结点。

image.png

优缺点

  • 层次模型的主要优点:
    • 数据结构比较简单清晰
    • 查询效率高
    • 提供了良好的完整性支持
  • 层次模型的主要缺点:

    • 现实世界中很多联系是非层次的(如多对多联系),层次模型在表示这类联系时,解决的办法:一是通过引入冗余数据(易产生不一致性),二是创建非自然的数据结构(引入虚拟结点) 。对插入和删除操作的限制比较多,因此应用程序的编写比较复杂
    • 查询孩子结点必须通过双亲结点
    • 由于结构严密,层次命令趋于程序化

      网状模型

      定义

      满足以下条件:
      1. 1.允许一个以上的结点无双亲
      2. 2.一个结点可以有多个双亲
      image.png

      优缺点

  • 网状模型的主要优点:

    • 能够更为直接地描述现实世界
    • 具有良好的性能,存取效率较高
  • 网状模型的主要缺点:

    • 结构比较复杂,而且随着应用规模的扩大,数据库的结构会变得越来越复杂,不利于最终用户掌握
    • 操作语言比较复杂

      关系模型(重点)

      常用术语:

      关系(relation):一个关系对应一张二维表,每一个关系有一个名称即关系名;
      元组(tuple):表中的一行称为一个元组;
      属性(attribute):表中的一列称为一个属性,每一个属性有一个名称即属性名;
      码(key):也称为码键。表中的某个属性或属性组,它可以唯一地确定关系中的一个元组;
      域(domain):属性的取值范围;
      分量(component):元组中的一个属性值;
      关系模式(relational schema):通过关系名和属性名列表对关系进行描述,相当于二维表的表头部分(即表格的描述部分)
      image.png

      优缺点

  • 关系数据模型的优点:

    • 严格的数学基础:有关系代数作为语言模型,有关系数据理论作为理论基础

    概念单一**:无论实体还是实体之间的联系都是用关系来表示,对数据(关系)的操作(检索和更新)结果还是关系。所以其数据结构简单、清晰,用户易懂易用

    • 存取路径透明:具有更高的数据独立性、更好的安全保密性,简化了程序员的工作,提高了软件的开发和维护效率
  • 关系数据模型的缺点:
    • 由于存取路径对用户透明,查询效率往往不如非关系数据模型
    • 为了提高性能,DBMS必须对用户的查询请求进行查询优化,这样就增加了DBMS的开发难度

四、数据抽象与数据库的三级模式

在数据库的三级模式结构中,模式即全局逻辑结构是数据库的核心和关键,它独立于数据库的其他层次。因此,设计数据库模式结构时,应首先确定数据库的逻辑模式


五、数据库系统——DBMS

查询处理器:对用户请求的SQL操作进行查询优化,从而找到一个最优的执行策略,然后向存储管理器发出命令,使其执行
存储管理器:根据执行策略,从数据库中获取相应的数据,或更新数据库中相应的数据
事务管理器:负责保证系统的完整性,保证多个同时运行的事务不发生冲突操作,以及保证当系统发生故障时数据不会丢失
SQL教程™