《系统架构设计师教程(第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

相关文章

springboot简单集成Security配置的教程

《springboot简单集成Security配置的教程》:本文主要介绍springboot简单集成Security配置的教程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,... 目录集成Security安全框架引入依赖编写配置类WebSecurityConfig(自定义资源权限规则

MySQL Workbench 安装教程(保姆级)

《MySQLWorkbench安装教程(保姆级)》MySQLWorkbench是一款强大的数据库设计和管理工具,本文主要介绍了MySQLWorkbench安装教程,文中通过图文介绍的非常详细,对大... 目录前言:详细步骤:一、检查安装的数据库版本二、在官网下载对应的mysql Workbench版本,要是

mysql数据库重置表主键id的实现

《mysql数据库重置表主键id的实现》在我们的开发过程中,难免在做测试的时候会生成一些杂乱无章的SQL主键数据,本文主要介绍了mysql数据库重置表主键id的实现,具有一定的参考价值,感兴趣的可以了... 目录关键语法演示案例在我们的开发过程中,难免在做测试的时候会生成一些杂乱无章的SQL主键数据,当我们

Java异常架构Exception(异常)详解

《Java异常架构Exception(异常)详解》:本文主要介绍Java异常架构Exception(异常),具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1. Exception 类的概述Exception的分类2. 受检异常(Checked Exception)

通过Docker Compose部署MySQL的详细教程

《通过DockerCompose部署MySQL的详细教程》DockerCompose作为Docker官方的容器编排工具,为MySQL数据库部署带来了显著优势,下面小编就来为大家详细介绍一... 目录一、docker Compose 部署 mysql 的优势二、环境准备与基础配置2.1 项目目录结构2.2 基

Spring Boot 整合 MyBatis 连接数据库及常见问题

《SpringBoot整合MyBatis连接数据库及常见问题》MyBatis是一个优秀的持久层框架,支持定制化SQL、存储过程以及高级映射,下面详细介绍如何在SpringBoot项目中整合My... 目录一、基本配置1. 添加依赖2. 配置数据库连接二、项目结构三、核心组件实现(示例)1. 实体类2. Ma

Linux安装MySQL的教程

《Linux安装MySQL的教程》:本文主要介绍Linux安装MySQL的教程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录linux安装mysql1.Mysql官网2.我的存放路径3.解压mysql文件到当前目录4.重命名一下5.创建mysql用户组和用户并修

Linux系统之主机网络配置方式

《Linux系统之主机网络配置方式》:本文主要介绍Linux系统之主机网络配置方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、查看主机的网络参数1、查看主机名2、查看IP地址3、查看网关4、查看DNS二、配置网卡1、修改网卡配置文件2、nmcli工具【通用

Linux系统之dns域名解析全过程

《Linux系统之dns域名解析全过程》:本文主要介绍Linux系统之dns域名解析全过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、dns域名解析介绍1、DNS核心概念1.1 区域 zone1.2 记录 record二、DNS服务的配置1、正向解析的配置

查看Oracle数据库中UNDO表空间的使用情况(最新推荐)

《查看Oracle数据库中UNDO表空间的使用情况(最新推荐)》Oracle数据库中查看UNDO表空间使用情况的4种方法:DBA_TABLESPACES和DBA_DATA_FILES提供基本信息,V$... 目录1. 通过 DBjavascriptA_TABLESPACES 和 DBA_DATA_FILES