数据库基本知识

发布时间 2024-01-07 23:34:23作者: f_love
  • 数据库的基本概念
    • 数据

      • 描述事物的符号记录
    • 信息

      • 是具有时效性的,有一定含义的,有逻辑的、经过加工处理的、对决策有价值的数据流。

      • 信息=数据+处理

    • 信息与数据的联系

      • 数据是信息的符号表示,或称载体

      • 信息是数据的内涵,是数据的语义解释

      • 数据是符号化的信息

      • 信息是语义化的数据

    • 数据库

      Database DB

      • 长期储存储在计算机内、有组织的、可共享的大量数据的集合
    • 数据库管理系统

      Database Management System DBSM

      • 定义

        • 位于用户与操作系统之间的一层数据管理软件

        • 帮助用户定义、创建、维护和控制数据库访问的软件系统

      • 四大主要功能

        • 数据定义功能

          • 提供数据定义语言(DDL)

          • 定义数据库中的数据对象

        • 数据操纵功能

          • 提供数据操纵语言(DML)

          • 实现对数据库的基本操作 :增、删、改、查

        • 数据库的事务管理和运行管理

          • 保证数据的安全性、完整性、并发控制、系统恢复
        • 数据库的建立和维护功能

          • 数据库初始数据的装载和转换

          • 数据库备份、转储、恢复功能

          • 数据库的重组织

          • 性能监视、分析等

    • 数据库系统

      Database System DBS

      • 定义

        • 带有数据库的计算机系统
      • 构成

        • 数据库

        • 数据库管理系统

        • 应用程序

        • 数据库管理员

          DBA

          • 具体职责

            • 数据库设计

              • 1. 决定数据库中的信息内容和结构

              • 2. 决定数据库的存储结构和存取策略

              • 3. 定义数据的安全性要求和完整性约束条件

            • 监控数据库的使用和运行

            • 数据库的改进和重组

              • 性能监控和调优

              • 定期对数据库进行重组织,以提高系统的性能

              • 需求增加和改变时,数据库须需要重构造

      • 特点

        • 数据结构化

          • 不仅数据内部结构化,整体是结构化的,数据之间具有联系

          • 数据用数据模型描述,无需应用程序定义

        • 数据的共享性高,冗余度低且易扩充

        • 数据独立性高

        • 数据由数据库管理系统统一管理和控制

    • 数据库应用系统

      • = 数据库系统 + 应用软件 + 应用界面

      • 具体包括

        • 数据库

        • 数据库管理系统

        • 数据库管理员

        • 硬件平台

        • 软件平台

        • 应用软件

        • 应用界面

  • 数据库系统的结构

    • 从数据库应用开发人员角度看,数据库系统通常采用三级模式结构,是数据库系统内部的系统结构

      • 数据库系统的三级模式结构

      • 模式

      • 外模式

      • 内模式

    • 数据库系统模式的概念

      • 模式

        Schema 也称概念模式、逻辑模式

        • 数据库中全体数据的逻辑结构和特征的描述

        • 所有用户的公共数据视图

        • 一个数据库只有一个模式

        • 模式的地位

          • 是数据库系统模式结构的中间层

          • 与数据的物理存储细节和硬件环境无关

          • 与具体的应用程序、开发工具及高级程序设计语言无关

      • 外模式

        External Schema 也称子模式或用户模式

        • 数据库用户(包括应用程序员和最终用户)使用的局部数据的逻辑结构和特征的描述

        • 由概念模式推导而出

        • 一个概念模式可以有若干个外模式

        • 外模式的地位

          • 介于模式与应用之间
        • 外模式的用途

          • 保证数据库安全性的一个有力措施

          • 每个用户只能看见和访问所对应的外模式中的数据

      • 内模式

        Internal Schema 也称存储模式、物理模式

        • 是数据物理结构和存储方式的描述

        • 是数据在数据库内部的表示方式

        • 一个数据库只有一个内模式

      • 小结:模式、外模式、内模式三者地位关系

        • 内模式处于最底层,反映了数据在计算机物理结构中的实际存储形式

        • 概念模式处于中层,反映了设计者的数据全局逻辑要求

        • 外模式处于最外层,反映了用户对数据的要求

    • 二级映射

      • 外模式/模式映射

        映射实质就是一种对应规则,指出映射双方如何进行转换

        • 定义外模式与模式之间的对应关系

        • 每一个外模式都对应一个外模式/模式映射

        • 用途

          • 保证数据的逻辑独立性

          • 当模式改变时,数据库管理员修改有关的外模式/模式映射,使外模式保持不变

          • 应用程序是依据数据的外模式编写的,从而应用程序不用改变,保证了数据与程序的逻辑独立性

      • 模式/内模式映射

        • 定义数据全局逻辑结构与存储结构之间的对应关系

        • 数据库中模式/内模式映射是唯一的

        • 用途

          • 保证数据的物理独立性

          • 当数据库的存储结构改变了,数据库管理员修改模式/内模式映射,使模式保持不变

          • 应用程序不受影响,保证了数据与程序的物理独立性

  • 数据模型的基本概念

    • 背景知识

      • 将客观事物抽象为能用计算机存储和处理的数据需经历三个阶段

        • 现实世界

        • 信息世界

        • 计算机世界(数据世界)

      • 模型

        • 是现实世界特征的模拟和抽象
    • 数据模型

      • 应满足的要求

        • 能比较真实地模拟现实世界

        • 容易为人所理解

        • 便于在计算机上实现

      • 分类

        根据应用目的的不同

        • 概念模型

          • 按用户的观点来对数据进行描述,有效和自然地模拟现实世界,给出数据的概念化结构

          • 强调以人为本,注重清晰、简单、易于理解

        • 逻辑数据模型

          • 按计算机系统的观点对数据进行描述

          • 以计算机为本,站在计算机的角度去看待各个数据以及数据之间的联系

        • 物理模型

          • 给出计算机上物理结构的表示
      • 定义

        • 是数据特征的抽象

        • 从抽象层次上描述了系统的静态特征、动态行为和约束条件

        • 为数据系统的信息表示与操作提供一个抽象的框架

      • 组成要素

        • 数据结构

          • 是所研究的对象类型的集合
        • 数据操作

          • 是指对相应数据结构允许执行的操作的集合

          • 包括操作及有关的操作规则

        • 数据的完整性约束

          • 是一组完整性规则的集合

          • 完整性规则

            • 是给定的数据模型中数据及其联系所具有的制约和依存规则

            • 以保证数据的正确、有效和相容

    • 实体-联系 数据模型

      • 实体

        Entity

        • 客观存在并可以相互区别的事物

        • 可以是具体的人、事、物,也可以是抽象的概念或联系

      • 实体型

        • 用实体名及其属性名集合来抽象和刻画同类实体称为实体型
      • 实体集

        • 同一类型实体的集合称为实体集
      • 属性

        Attribute

        • 实体的特性称为实体的属性

        • 一个实体可以由若干个属性来刻画

      • Key

        • 唯一标识实体的属性集称为码
      • 联系

        Relationship

        • 在现实世界中,事物内部以及事物之间是有联系的

        • 这些联系在信息世界中反映为—实体集内部的联系以及实体集之间的联系

        • 两个实体集之间的联系分为三类

          • 一对一联系 1:1

          • 一对多联系 1:n

          • 多对多联系 n:n

    • E-R 图

      • 也称实体-联系图

      • 用来描述现实世界的概念模型

      • 三要素

        • 实体

        • 属性

        • 联系

    • 常用的数据模型

      • 层次模型

        • 用树形结构来表示各类实体以及实体间的联系

        • 有且只有一个结点没有双亲结点,即根节点

        • 根节点之外的其他结点有且只有一个双亲结点

        • 只能直接处理一对多的实体联系

        • 任何记录值只有按其路径查看时,才能显出它的全部意义

        • 没有一个子女记录值能够脱离双亲记录值而独立存在

      • 网状模型

        • 允许一个以上的结点无双亲

        • 一个结点可以有多于一个的双亲

        • 有效地克服了层次模型不方便表达多对多联系的缺点

        • 但由于网状模型的灵活性,数据库管理系统很难实现

      • 关系模型

        • 在用户观点下,关系模型中数据的逻辑结构是一张二维表,它由行和列组成

        • 关系术语

          • 关系(Relation)

            • 一个关系对应一张二维表
          • 元组(Tuple)

            • 表中的一行即为一个元组
          • 属性(Attribute)

            • 表中的一列,即为一个属性

            • 每列的第一行为属性名,其余行为属性值

          • 主码/主键(Key)

            • 也称码或键,表中的某个属性或属性组合,可以唯一标识一个元组
          • 域(Domain)

            • 是一组具有相同数据类型的值的集合。

            • 属性的取值范围来自某个域

          • 分量(Component)

            • 元组中的一个属性值
          • 关系模式(Relation Schema)

            • 对关系的结构描述
        • 关系应该满足的性质

          • 关系必须是规范化的,即要求关系必须满足一定的规范条件,其中最基本的一条是——关系的每一列不可再分

          • 关系中必须有主码,使得元组唯一

          • 元组的个数是有限的且顺序可以任意交换

          • 属性名是唯一的且属性列的顺序可以任意交换

        • 关系的完整性规则

          • 实体完整性规则

            • 主码的属性值不能为空值

            • 因为如果出现空值,那么主码就无法保证元组的唯一性

          • 参照完整性

            • 外码

              • 关系之间的联系是靠公共属性实现的

              • 如果该公共属性是一个关系R1的主码,那么在另一个与它有联系的关系R2中就成为外码

            • 规定外码的取值只有两种可能,要么为空值,要么等于R1中某个元组的主码值

          • 用户定义的完整性

            • 针对某一具体应用的数据必须满足的语义要求
      • 面向对象模型

  • 数据库安全性

    • 数据库的主要安全风险

      • 越权权限的滥用

        • 数据库权限设置违反了“权限最小原则”在很多信息系统中比较普遍

        • 如果这些超出的权限被滥用,则极易发生敏感数据泄漏事件

      • 合法权限滥用

        • 系统中总是有一部分用户合法的拥有较大甚至是超级管理权限

        • 如果这些权限被滥用,则极易发生严重后果

      • 权限盗用

        • 由于商用数据库的用户认证方式主要为单一的口令方式,权限盗用容易发生,进而极易导致严重的数据泄漏事件
      • 明文存储

        • 目前绝大多数数据库的数据文件都是以明文形态保存的

        • 在数据的产生、使用、传输、保存、备份、销毁的整个生命周期内,任何接触到存储介质的攻击者,都有可能获取到数据

      • 备份数据缺乏保护

        • 从数据库备份的数据通常是以非加密的形式存储的,而且在运输、保存、销毁的生命期中,需要严密的保护

        • 一旦疏忽,备份数据将有可能被窃取或偷窥而导致泄密

      • 缺乏详尽审计

        • 审计是每个数据库管理系统标配的安全特性,用于记录对数据的访问情况,从而形成对非法访问的威慑

        • 而数据库自身的审计功能在可视化、智能化、入侵检测能力等方面能力较弱,通常无法满足实际的安全需求

      • 恶意软件

        • 攻击者使用木马病毒技术,通过邮件、图片等伪装方式,将恶意软件安装到数据库管理和运维人员的电脑上,

        • 攻击者利用管理员的电脑,窃取或者破坏数据库中的数据;

      • 数据库平台漏洞

        • 数据库管理系统是个复杂的软件系统,数据库系统无一例外的具有严重的安全漏洞,如缓冲区注入漏洞或者认证、权限管理等漏洞。这些漏洞极易被攻击者利用以窃取数据
      • SQL注入、缓冲区溢出风险

        • 数据库本身不具备SQL注入攻击检测能力

        • 通过Web/APP插入恶意语句,或者利用连接工具发动缓冲区溢出攻击,攻击者有机会获得整个数据库的访问权限

      • 弱鉴权机制

        • 商业数据库系统提供的基本的管理机制,主要是自主访问控制(DAC)和基于角色的访问控制(RBAC)

        • 并没有采用强制访问控制的方式(MAC),基于用户和数据的敏感级别来进行权限的鉴别。这容易使得低密级用户访问到高密级的数据;

    • 实现数据库系统安全性的技术和方法

      • 用户身份鉴别存取控制技术

      • 自主存取控制和强制存取控制

      • 视图技术

      • 审计技术

      • 数据加密存储和加密传输