《系统架构设计师教程(第2版)》第6章-据库设计基础知识-01-数据库基本概念

本文主要是介绍《系统架构设计师教程(第2版)》第6章-据库设计基础知识-01-数据库基本概念,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

文章目录

  • 1. 概述
    • 1.1 基本概念
      • 1)信息 (Information)
      • 2)数据 (Data)
      • 3)数据库 (DB)
      • 4)数据库系统(DBS)
      • 5)数据库管理系统(DBMS)
    • 1.2 数据库技术的发展
      • 1.2.1 人工管理阶段
      • 1.2.2 文件系统阶段
        • 1)概述
        • 2) 数据管理的特点
        • 3)缺点
      • 1.2.3 数据库系统阶段
        • 1) 数据管理的特点
        • 2)相对文件系统的特性
  • 2. 数据模型
    • 2.1 三要素
    • 2.2 数据模型类型
      • 1)层次和网状数据库系统
      • 2)关系数据库系统
      • 3)第三代数据库系统
  • 3. 数据库管理系统(DBMS)
    • 3.1 DBMS功能
      • 1)数据定义
      • 2)数据库操作
      • 3)数据库运行管理
      • 4)数据组织、存储和管理
      • 5)数据库的建立和维护
      • 6)其他功能
    • 3.2 DBMS 的特点
      • 1)数据结构化且统一管理
      • 2)有较高的数据独立性
      • 3)数据控制功能
  • 4. 数据库三级模式
    • 4.1 视图层 (View Level)
    • 4.2 逻辑层 (Logical Level)
    • 4.3 物理层 (Physical Level)
  • 5. 管理角度的三级模式
    • 5.1 外模式
    • 5.2 概念模式
    • 5.3 内模式

1. 概述

1.1 基本概念

1)信息 (Information)

  • 概念:
    • 是现实世界事物的存在方式或状态的反映
    • 是具有特定释义和意义的数据
  • 自然属性:
    • 可感知
    • 可存储
    • 可加工
    • 可传递
    • 可再生等
  • 信息的社会属性:是社会各行各业不可缺少的资源

2)数据 (Data)

  • 数据
    • 概念:是信息的符号表示(即,描述事物的符号记录)
    • 表现形式:可以是文字、图形、图像、声音和语言等
  • 数据处理:对各种数据进行收集、存储、加工和传播的一系列活动。
  • 数据管理:对数据进行分类、组织、编码、存储、检索和维护的活动。

3)数据库 (DB)

  • 概念:是统一管理的、长期储存在计算机内的,有组织的相关数据的集合。
  • 特点:
    • 是数据间联系密切
    • 冗余度小
    • 独立性较高
    • 易扩展
    • 可为各类用户共享

广义的讲,除了数据本身还包括了存储数据的各种物理设备

4)数据库系统(DBS)

  • 概念:是一个采用了数据库技术,有组织地、动态地存储大量相关联数据,从而方便多用户访问的计算机系统。
  • 和文件系统的区别
    • 数据的充分共享、交叉访问、与应用程序的高度独立性

广义上包括了数据库管理系统(DataBase Management System,DBMS),其概念如下:

5)数据库管理系统(DBMS)

  • 概述:
    • 是数据库系统的核心软件
    • 是一种解决如何科学地组织和储存数据,如何高效地获取和维护数据的系统软件
  • 组成:
    • 一组相互关联的数据集合
    • 一组用以访问这些数据的软件
  • 主要功能
    • 数据定义功能
    • 数据操纵功能
    • 数据库的运行管理
    • 数据库的建立与维护

1.2 数据库技术的发展

数据管理技术的发展经历了3个阶段:

1.2.1 人工管理阶段

  • 早期状况:

    • 数据处理都是通过手工进行的
    • 当时的计算机主要用于科学计算
    • 计算机上没有专门管理数据的软件
    • 计算机上没有诸如磁盘之类的设备来存储数据
  • 该阶段数据处理的特点:

    • 数据量较少

      数据和程序一一对应,即一组数据对应一个程序,数据面向应用,独立性很差。

    • 数据不保存

    • 没有软件系统对数据进行管理

  • 缺点。

    • 应用程序与数据之间的依赖性太强,不相互独立
    • 数据组和数据组之间可能有许多重复数据,造成数据冗余

1.2.2 文件系统阶段

1)概述
  • 大容量的磁盘等辅助存储设备出现
  • 专门管理辅助存储设备上数据的文件系统应运而生
    • 按一定的规则将数据组织成为一个文件
    • 应用程序通过文件系统对文件中的数据进行存取和加工
2) 数据管理的特点
  • 数据可以长期保留
  • 数据的逻辑结构和物理结构有了区别

    程序可以按照文件名称访问文件,不必关心数据的物理位置,由文件系统提供存取方法。

  • 应用程序和数据不再直接对应

    数据不属于某个特定的应用,数据可以重复使用

  • 文件组织形式的多样化

    有索引文件、链接文件和Hash文件等。但文件之间没有联系,相互独立,数据间的联系要通过程序去构造。

3)缺点

文件系统具有如下缺点。

  • 数据冗余 (Data Redundancy)。

    文件与应用程序密切相关,相同的数据集合在不同的应用程序中使用时,经常需要重复定义、重复存储,数据冗余度大。

  • 数据不一致性 (Data Inconsistency)

    由于相同数据的重复存储,单独管理,同样的数据可能存在于多个不同的文件中,给数据的修改和维护带来难度,容易造成数据的不一致。

  • 数据孤立 (Data Isolation)

    即数据联系弱。由于数据分散在不同的文件中,而这些文件可能具有不同的文件格式,文件之间是孤立的,所以从整体上看文件之间没有反映现实世界事物之间的内在联系,因此很难对数据进行合理的组织以适应不同应用的需要。

1.2.3 数据库系统阶段

1) 数据管理的特点

数据库系统阶段数据管理的特点如下:

  • 采用复杂的数据模型表示数据结构

    • 数据模型不仅描述数据本身的特点,还描述数据之间的联系
    • 数据不再面向某个应用,而是面向整个应用系统
    • 数据冗余明显减少,实现了数据共享
  • 有较高的数据独立性

    • 数据库是一种更高级的组织形式
    • 由DBMS 负责数据的存取

      DBMS把所有应用程序中使用的数据以及数据间的联系汇集在一起,以便于应用程序查询和使用。

2)相对文件系统的特性

数据库系统相对于文件系统的特性:

  • 对应用程序的高度独立性

    数据库对数据的存储是按照同一种数据结构进行的,不同的应用程序都可以直接操作这些数据

  • 数据的充分共享性

    数据库系统对数据的完整性、一致性和安全性都提供了一套有效的管理手段()。

  • 操作方便性

    数据库系统还提供管理和控制数据的各种简单操作命令,容易掌握,使用户编写程序简单

2. 数据模型

2.1 三要素

数据模型的三要素:

  • 数据结构:对象类型的集合,是对系统静态特性的描述。
  • 数据操作。对数据库中各种对象的实例允许执行的操作集合,包括操作及操作规则。如操作有检索、插入、删除和修改,操作规则有优先级等。数据操作是对系统动态特性的描述。
  • 数据的约束条件
    • 是一组完整性规则的集合
    • 是具体的应用数据所必须遵循的特定语义的约束条件
    • 作用:保证数据的正确、有效和相容

2.2 数据模型类型

按照不同的数据模型,可以将数据库的发展历史分为3个阶段:

1)层次和网状数据库系统

  • 层次模型:
    • 概念:采用树形结构表示数据与数据间的联系
      • 每个结点表示一个记录类型(实体)
      • 记录之间的联系用结点之间的连线表示
    • 限制:根结点以外的其他结点有且仅有一个双亲结点

      上层和下一层类型的联系是1: n 联系(包括1:1)

  • 网络结构:
    • 表示数据间联系的数据模型
    • 没有层次模型的限制:
      • 允许一个以上的结点无双亲
      • 允许一个结点有多个双亲
    • 表示多对多关心需要引入联结记录
  • 二者共同点:
    • 支持三级模式的体系结构(后边对三级结构有介绍)
    • 用存取路径来表示数据之间的联系
    • 独立的数据定义语言
    • 导航的数据操纵语言

2)关系数据库系统

  • 概述:
    • 关系:是一个实例,也是一张表,对应于程序设计语言中变量的概念
    • 关系模式:相当于一个记录型,对应于程序设计语言中类型定义的概念
    • 关系模型(Relation Model) :由若干个关系模式组成的集合
  • 关系数据库系统
    • 采用关系模型作为数据的组织方式
    • 用表格结构表达实体集以及实体集之间的联系
    • 特色:描述的一致性
  • 优点
    • 比网状、层次模型更为简单灵活

3)第三代数据库系统

  • 新的数据模型:如面向对象模型、语义数据模型、 XML 数据模型、半结构化数据模型等
  • No SQL

没有什么要记的

3. 数据库管理系统(DBMS)

实现了对共享数据有效地组织、管理和存取

3.1 DBMS功能

DBMS提供如下功能:

1)数据定义

  • 数据定义语言 (Data Definition Language):对数据库的结构进行描述
  • 内容包括:
    • 外模式、模式和内模式的定义
    • 数据库的完整性定义
    • 安全保密定义(如口令、级别和存取权限)
  • 这些定义存储在数据字典中,是 DBMS 运行的基本依据。

2)数据库操作

  • 数据操纵语言 (Data Manipulation Language)
  • 作用:实现对数据库中数据的基本操作(如检索、插入、修改和删除)

3)数据库运行管理

  • 內容包括:
    • 多用户环境下的并发控制
    • 安全性检查和存取控制
    • 完整性检查和执行
    • 运行日志的组织管理
    • 事务管理
    • 自动恢复等
  • 作用:保证数据库系统的正常运行

4)数据组织、存储和管理

  • 基本目标:提高存储空间的利用率
  • 管理对象包括:数据字典、用户数据、存取路径等

5)数据库的建立和维护

  • 内容包括:
    • 数据库的初始建立
    • 数据的转换
    • 数据库的转储和恢复
    • 数据库的重组和重构
    • 性能监测和分析等。

6)其他功能

如:

  • DBMS 与网络中其他软件系统的通信功能
  • 一个DBMS 与另一个 DBMS或文件系统的数据转换功能

3.2 DBMS 的特点

通过 DBMS来管理数据具有如下特点:

1)数据结构化且统一管理

  • 采用数据模型表示数据结构
    • 描述数据本身的特点
    • 描述数据之间的联系
  • 数据面向整个企业内的所有应用(而不再面向某个应用),真正实现了数据的共享
  • 数据易维护、易扩展,数据冗余明显减少

2)有较高的数据独立性

  • 数据的独立性:
    • 概念:指数据与程序独立
    • 包括:数据的物理独立性和数据的逻辑独立性
  • 优点:
    • 应用程序关心的只是数据的逻辑结构,无须了解数据在磁盘上的存储形式,从而简化应用程序,大大减少应用程序编制的工作量

3)数据控制功能

包括以下方面的控制:

  • 数据库的安全性 (Security)

    保护数据库以防止不合法的使用所造成的数据泄露、更改或破坏。

  • 数据的完整性 (Integrality)

    • 概念:是指数据库正确性和相容性
    • 作用:是防止合法用户使用数据库时向数据库加入不符合语义的数据
  • 并发控制 (concurrency control)

    • 概念:是指在多用户共享的系统中,许多用户可能同时对同一数据进行操作
    • 作用:协调并发事务的执行,保证数据库的完整性不受破坏
  • 故障恢复 (recovery from failure)

    • 常见故障:事务内部故障、系统故障、介质故障、计算机病毒等
    • 概念:主要是指恢复数据库本身,即将数据库恢复到某个正确状态或一致状态
    • 恢复原理:建立冗余 (redundancy) 数据

4. 数据库三级模式

  • 作用:对用户屏蔽系统的复杂性,简化用户与系统的交互
    在这里插入图片描述

4.1 视图层 (View Level)

  • 概念:
    • 最高层次的抽象
    • 描述整个数据库的某个部分的数据
  • 意义:通过构建视图层来实现用户关新,不仅使用户与系统交互简化,而且还可以保证数据的保密性和安全性。

4.2 逻辑层 (Logical Level)

  • 概念:
    • 比物理层更高一层的抽象
    • 描述数据库中存储的数据以及这些数据间存在的关系
  • 逻辑层抽象是数据库管理员的职责,管理员确定数据库应保存哪些信息

4.3 物理层 (Physical Level)

  • 概念:
    • 是最低层次的抽象
    • 描述数据在存储器中是如何存储的
  • 作用:物理层详细地描述复杂的底层结构

5. 管理角度的三级模式

  • 数据库按外模式的描述提供给用户
  • 数据库按内模式的描述存储在磁盘上
  • 概念模式提供了连接这两极模式的相对稳定的中间观点,并使得两级的任意一级的改变都不受另一级的牵制。

5.1 外模式

  • 概述:
    • 也称用户模式子模式
    • 是用户需要使用的部分数据的描述
  • 用户对数据库的操作:
    • 外部模式由若干个外部记录类型组成
    • 用户使用数据操纵语言对数据库进行操作,实际上是对外模式的外部记录进行操作。

5.2 概念模式

  • 概述:
    • 是数据库中全部数据的逻辑结构和特征的描述
    • 由若干个概念记录类型组成,描述概念记录类型,不涉及具体的值
      • 概念记录类型:记录间的联系、操作、数据的完整性和安全性等要求
      • 不涉及存储结构、访问技术等细节
  • 实例:
    • 概念模式的一个具体值称为模式的一个实例
    • 同一个模式可以有很多实例
  • 概念模式和实例
    • 概念模式:反映的是数据库的结构及其联系,是相对稳定的
    • 实例:反映的是数据库某一时刻的状态,是相对变动的

5.3 内模式

  • 概述
    • 也称存储模式
    • 是数据物理结构和存储方式的描述
    • 是数据在数据库内部的表示方式
  • 定义所有的内部记录类型、索引和文件的组织方式,以及数据控制方面的细节

在这里插入图片描述

这篇关于《系统架构设计师教程(第2版)》第6章-据库设计基础知识-01-数据库基本概念的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/782988

相关文章

数据库oracle用户密码过期查询及解决方案

《数据库oracle用户密码过期查询及解决方案》:本文主要介绍如何处理ORACLE数据库用户密码过期和修改密码期限的问题,包括创建用户、赋予权限、修改密码、解锁用户和设置密码期限,文中通过代码介绍... 目录前言一、创建用户、赋予权限、修改密码、解锁用户和设置期限二、查询用户密码期限和过期后的修改1.查询用

Window Server创建2台服务器的故障转移群集的图文教程

《WindowServer创建2台服务器的故障转移群集的图文教程》本文主要介绍了在WindowsServer系统上创建一个包含两台成员服务器的故障转移群集,文中通过图文示例介绍的非常详细,对大家的... 目录一、 准备条件二、在ServerB安装故障转移群集三、在ServerC安装故障转移群集,操作与Ser

在C#中获取端口号与系统信息的高效实践

《在C#中获取端口号与系统信息的高效实践》在现代软件开发中,尤其是系统管理、运维、监控和性能优化等场景中,了解计算机硬件和网络的状态至关重要,C#作为一种广泛应用的编程语言,提供了丰富的API来帮助开... 目录引言1. 获取端口号信息1.1 获取活动的 TCP 和 UDP 连接说明:应用场景:2. 获取硬

mysql数据库分区的使用

《mysql数据库分区的使用》MySQL分区技术通过将大表分割成多个较小片段,提高查询性能、管理效率和数据存储效率,本文就来介绍一下mysql数据库分区的使用,感兴趣的可以了解一下... 目录【一】分区的基本概念【1】物理存储与逻辑分割【2】查询性能提升【3】数据管理与维护【4】扩展性与并行处理【二】分区的

windos server2022的配置故障转移服务的图文教程

《windosserver2022的配置故障转移服务的图文教程》本文主要介绍了windosserver2022的配置故障转移服务的图文教程,以确保服务和应用程序的连续性和可用性,文中通过图文介绍的非... 目录准备环境:步骤故障转移群集是 Windows Server 2022 中提供的一种功能,用于在多个

JAVA系统中Spring Boot应用程序的配置文件application.yml使用详解

《JAVA系统中SpringBoot应用程序的配置文件application.yml使用详解》:本文主要介绍JAVA系统中SpringBoot应用程序的配置文件application.yml的... 目录文件路径文件内容解释1. Server 配置2. Spring 配置3. Logging 配置4. Ma

2.1/5.1和7.1声道系统有什么区别? 音频声道的专业知识科普

《2.1/5.1和7.1声道系统有什么区别?音频声道的专业知识科普》当设置环绕声系统时,会遇到2.1、5.1、7.1、7.1.2、9.1等数字,当一遍又一遍地看到它们时,可能想知道它们是什... 想要把智能电视自带的音响升级成专业级的家庭影院系统吗?那么你将面临一个重要的选择——使用 2.1、5.1 还是

IDEA如何切换数据库版本mysql5或mysql8

《IDEA如何切换数据库版本mysql5或mysql8》本文介绍了如何将IntelliJIDEA从MySQL5切换到MySQL8的详细步骤,包括下载MySQL8、安装、配置、停止旧服务、启动新服务以及... 目录问题描述解决方案第一步第二步第三步第四步第五步总结问题描述最近想开发一个新应用,想使用mysq

Oracle数据库使用 listagg去重删除重复数据的方法汇总

《Oracle数据库使用listagg去重删除重复数据的方法汇总》文章介绍了在Oracle数据库中使用LISTAGG和XMLAGG函数进行字符串聚合并去重的方法,包括去重聚合、使用XML解析和CLO... 目录案例表第一种:使用wm_concat() + distinct去重聚合第二种:使用listagg,

高效管理你的Linux系统: Debian操作系统常用命令指南

《高效管理你的Linux系统:Debian操作系统常用命令指南》在Debian操作系统中,了解和掌握常用命令对于提高工作效率和系统管理至关重要,本文将详细介绍Debian的常用命令,帮助读者更好地使... Debian是一个流行的linux发行版,它以其稳定性、强大的软件包管理和丰富的社区资源而闻名。在使用