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

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

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/435503.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

C++中OpenMP的使用方法

适用场景 OpenMP是一种用于共享内存并行系统的多线程程序设计方案;简单地说,OpenMP通过一种较为简单的使用方式,实现代码的CPU并行化处理,从而最大化利用硬件的多核性能,成倍地提升处理效率; OpenMP适用场…

springboot3.x集成SpringDoc Swagger3

近期将springboox2.x升级到了3.x&#xff0c;索性将swagger2也同步升级到swagger3&#xff0c;具体过程如下。 一、添加maven依赖 <dependency><groupId>org.springdoc</groupId><artifactId>springdoc-openapi-starter-webmvc-ui</artifactId>…

每日力扣——滑动窗口与前 K 个高频元素

&#x1f525; 个人主页: 黑洞晓威 &#x1f600;你不必等到非常厉害&#xff0c;才敢开始&#xff0c;你需要开始&#xff0c;才会变的非常厉害。 滑动窗口最大值 给定一个数组 nums&#xff0c;有一个大小为 k 的滑动窗口从数组的最左侧移动到数组的最右侧。你只可以看到在滑…

uni app 微信小程序微信支付

使用方法 接口传参 使用wx.requestPayment方法是一个统一各平台的客户端支付API&#xff0c;不管是在某家小程序还是在App中&#xff0c;客户端均使用本API调用支付

STM32自学☞WDG(看门狗)及其案例

一、WDG简介 由于看门狗的代码很少所以就直接在main主函数中写了&#xff0c;没单独建文件 二、独立看门狗 涉及的按键可参考之前的key.c和key.h文件 独立看门狗配置流程&#xff1a; 1.开启时钟&#xff08;LSI&#xff09; 2.解除IWDG_PR和IWDG_RLR的写保护 3.写入预分频和重…

[HackMyVM]靶场 Wild

kali:192.168.56.104 主机发现 arp-scan -l # arp-scan -l Interface: eth0, type: EN10MB, MAC: 00:0c:29:d2:e0:49, IPv4: 192.168.56.104 Starting arp-scan 1.10.0 with 256 hosts (https://github.com/royhills/arp-scan) 192.168.56.1 0a:00:27:00:00:05 …

Golang的Channel源码阅读、工作流程分析。

Channel整体结构 源码位置 位于src/runtime下的chan.go中。 Channel整体结构图 图源&#xff1a;https://i6448038.github.io/2019/04/11/go-channel/ Channel结构体 type hchan struct {qcount uint // total data in the queuedataqsiz uint // si…

python unittest实现api自动化测试

这篇文章主要为大家详细介绍了python unittest实现api自动化测试的方法&#xff0c;具有一定的参考价值&#xff0c;感兴趣的小伙伴们可以参考一下 项目测试对于一个项目的重要性&#xff0c;大家应该都知道吧&#xff0c;写python的朋友&#xff0c;应该都写过自动化测试脚本…

Nginx启动服务

Nginx启动服务 一、启动前置 下载地址 如已安装Docker&#xff0c;下一步拉取Nginx最新的Docker镜像&#xff1a; docker pull nginx:latest查看拉取下来的镜像&#xff1a; docker images二、启动服务 创建Docker容器&#xff1a; docker run --name {projectname} -p 80…

Open3D 生成空间3D椭圆点云

目录 一、算法原理二、代码实现三、结果展示本文由CSDN点云侠原创,原文链接。如果你不是在点云侠的博客中看到该文章,那么此处便是不要脸的爬虫与GPT。 一、算法原理 设椭圆在 X O Y XOY XO

MySQL基础-----SQL语句之DCL数据控制语句

目录 前言 一、管理用户 1.查询用户 2.创建用户 3.修改用户密码 4.删除用户 案例 二、权限控制 1.查询权限 2.授予权限 3.撤销权限 案例 前言 本期我们学习SQL语句的最后一部分内容&#xff0c;也就是数据控制语句DCL。DCL英文全称是Data Control Language(数据控制语…

支部管理系统微信小程序(管理端+用户端)flask+vue+mysql+微信小程序

系统架构如图所示 高校D支部管理系统 由web端和微信小程序端组成&#xff0c;由web端负责管理&#xff0c;能够收缴费用、发布信息、发布问卷、发布通知等功能 部分功能页面如图所示 微信小程序端 包含所有源码和远程部署&#xff0c;可作为毕设课设

ctf_show笔记篇(web入门---文件上传)

文件上传 151&#xff1a;简单的前端验证&#xff0c;有多种绕过方法 152&#xff1a;简单后端验证&#xff0c;不知道过滤了那些后缀&#xff0c;我尝试以后都可以上传 153&#xff1a;利用.user.ini文件&#xff0c;虽然能上传.pht这一类文件但访问时只会下载下来 这里就…

本地项目推送到腾讯云轻量应用服务器教程(并实现本地推送远程自动更新)

将本地项目上传到腾讯云轻量应用服务器并实现后续的推送更新&#xff0c;具体步骤如下&#xff1a; 在本地项目目录下初始化 Git 仓库&#xff1a; cd 项目目录 git init将项目文件添加到 Git 仓库并提交&#xff1a; git add . git commit -m "Initial commit"在…

【unity实战】3D水系统,游泳,潜水,钓鱼功能实现

文章目录 素材将项目升级为URP画一个水潭地形材质升级为URP创建水调节水第一人称人物移动控制游泳水面停留添加水下后处理水下呼吸钓鱼参考完结 素材 https://assetstore.unity.com/packages/vfx/shaders/urp-stylized-water-shader-proto-series-187485 将项目升级为URP 这…

在vue3中使用el-tree-select做一个树形下拉选择器

el-tree-select是一个含有下拉菜单的树形选择器&#xff0c;结合了 el-tree 和 el-select 两个组件的功能。 因为包含了el-tree的功能&#xff0c;我们可以自定义tree的节点&#xff0c;创造出想要的组件 使用default插槽可以自定义节点内容&#xff0c;它的default插槽相当于…

理解循环神经网络(RNN)

文章目录 1. 引言&#xff1a;什么是RNN以及它的重要性RNN简介RNN在机器学习中的作用和应用场景 2. RNN的工作原理神经网络基础RNN的结构和运作方式循环单元的作用 3. RNN的关键特点与挑战参数共享长期依赖问题门控机制&#xff08;例如LSTM和GRU&#xff09;代码示例&#xff…

【p3128、LQB14I砍树】树上差分

文章目录 差分树上差分p3128LQB14I砍树题目解题步骤代码样例 差分 差分数组求法&#xff1a; 设原始数组是arr&#xff0c;差分数组是b b[0] arr[0];b[i] arr[i] - arr[i-1]; 如果我们要对图中2-4区间的数每个都加上3&#xff0c;就可以在差分数组2的位置加上3&#xff0c;…

三、统计语言模型(N-gram)

为了弥补 One-Hot 独热编码的维度灾难和语义鸿沟以及 BOW 词袋模型丢失词序信息和稀疏性这些缺陷&#xff0c;将词表示成一个低维的实数向量&#xff0c;且相似的词的向量表示是相近的&#xff0c;可以用向量之间的距离来衡量相似度。 N-gram 统计语言模型是用来计算句子概率的…

tomcat基础介绍

目录 一、Tomcat的基本介绍 1、Tomcat是什么&#xff1f; 2、Tomcat的配置文件详解 3、Tomcat的构成组件 6、Tomcat的请求过程 一、Tomcat的基本介绍 1、Tomcat是什么&#xff1f; Tomcat 服务器是一个免费的开放源代码的Web 应用服务器&#xff0c;属于轻量级应用服务器…