当前位置: 首页 > news >正文

【第35节 数据库设计】

本章目录:

    • 一、节概述
    • 二、知识详解
      • 1. 数据库设计的基本步骤
      • 2. 用户需求分析
      • 3. 概念结构设计(E-R建模)
      • 4. 逻辑结构设计
      • 5. 物理结构设计
      • 6. 数据库实施
      • 7. 数据库运行维护
      • 8. 商业智能(BI)与数据仓库
        • 数据仓库的特点:
      • 9. OLTP vs. OLAP
      • 10. 数据挖掘
    • 三、关键点提炼
    • 四、考试提示
    • 五、总结与建议


一、节概述

本节《数据库设计》是系统架构设计师考试中关于数据库应用与系统设计模块的重要内容之一。它不仅贯穿数据库理论与实际应用之间的桥梁,也是实际系统中数据存储结构高效、安全、可维护的基础。

掌握本节内容,有助于理解数据库从需求分析到系统维护的全过程,特别是概念设计(E-R 图)、逻辑设计(模型转换)和物理设计的各环节在实际项目中的应用方式,也是历年软考出题的重点与热点。


二、知识详解

1. 数据库设计的基本步骤

数据库设计大致分为以下六个阶段

  1. 用户需求分析
  2. 概念结构设计
  3. 逻辑结构设计
  4. 物理结构设计
  5. 应用程序设计
  6. 数据库运行维护

2. 用户需求分析

用户需求分析是数据库设计的基础阶段,目标是了解和明确:

  • 系统要处理的对象
  • 用户对数据查询与处理的需求
  • 系统功能范围和边界

分析过程中应综合多个用户角色的需求,了解现行系统的痛点与瓶颈。


3. 概念结构设计(E-R建模)

在此阶段,设计人员需建立概念数据模型,即使用 E-R图(Entity-Relationship) 对现实世界进行抽象。

E-R 图三要素:

要素图形表示含义
实体(Entity)矩形代表独立存在的事物
属性(Attribute)椭圆描述实体的特征
联系(Relationship)菱形表示实体间的逻辑联系

合并多个局部 E-R 图时,需处理以下三类冲突:

  • 属性冲突
  • 命名冲突
  • 结构冲突

4. 逻辑结构设计

逻辑结构设计是将概念模型转化为特定数据库系统支持的数据模型(如关系模型)的过程,主要工作包括:

  • 确定数据模型类型
  • 将 E-R 图转化为表结构
  • 明确完整性约束
  • 划分用户视图

例如,在关系模型中,将一个多对多关系转换为一个新关系表,并在其中包含两个实体的外键。


5. 物理结构设计

物理设计关注数据库的性能与资源利用,主要内容包括:

  • 数据分布:确定数据在磁盘或节点间的布局
  • 存储结构:如顺序存储、索引存储等
  • 访问路径设计:选择合适的索引结构,如 B+ 树、哈希索引等

该阶段直接关系到数据库系统运行的效率和可扩展性。


6. 数据库实施

此阶段的关键是:

  • 创建数据库结构
  • 加载数据
  • 编写与测试应用程序
  • 完成试运行与性能评估

数据库实施环节要求较高的系统环境配置与开发技能。


7. 数据库运行维护

数据库维护由DBA负责,主要包括:

  • 性能监控与优化
  • 备份与恢复策略
  • 数据重组与结构重构
  • 安全策略执行

维护是数据库生命周期中长期且持续的任务


8. 商业智能(BI)与数据仓库

商业智能是一整套将数据转化为决策支持信息的系统方法,其三大核心组成:

  • 数据仓库(Data Warehouse)
  • 联机分析处理(OLAP)
  • 数据挖掘(Data Mining)
数据仓库的特点:
特征含义
面向主题围绕业务领域组织数据
集成的整合多个数据源
非易失的数据一旦写入不可更改
时变的保留历史记录,支持趋势分析

9. OLTP vs. OLAP

特性OLTPOLAP
全称联机事务处理联机分析处理
特点实时、频繁更新批量分析、少更新
应用场景电商交易系统销售数据分析

10. 数据挖掘

数据挖掘用于从海量数据中提取有价值的信息,具备如下特征:

  • 先知性:能够预测未来趋势
  • 有效性:发现的规律在当前场景中具有可用性
  • 实用性:发现结果能用于实际业务决策

数据挖掘常用技术包括:聚类分析、关联规则、分类预测等。


三、关键点提炼

以下内容为本节考试中的高频考点,请特别关注:

🔴 E-R 模型三要素及其图示含义

🔴 逻辑设计中的关系转换规则(如实体、联系转关系)

🔴 数据仓库四大特性

🔴 OLTP 与 OLAP 区别对比表

🔴 数据库设计六大步骤及其任务划分


四、考试提示

  • 考题中常以 选择题或简答题形式考察数据库设计过程的理解。
  • 容易出现的考点陷阱有:
    • E-R 图中联系类型识别错误(如1:1 vs 1:N)
    • 逻辑设计中属性命名冲突未处理
    • 混淆 OLAP 与 OLTP 的应用场景

五、总结与建议

  • 本节是数据库体系中连接理论与工程实践的重要内容,需重视建模能力系统化思维
  • 建议:
    • 多画几次 E-R 图,加强实体-关系识别与转换练习;
    • 对比理解数据仓库与关系数据库的应用差异;
    • 掌握数据库设计六阶段之间的逻辑关系与输入输出依赖

建议结合真题练习与数据库工具(如 MySQL Workbench)操作实际场景,提升理解深度。

相关文章:

【第35节 数据库设计】

本章目录: 一、节概述二、知识详解1. 数据库设计的基本步骤2. 用户需求分析3. 概念结构设计(E-R建模)4. 逻辑结构设计5. 物理结构设计6. 数据库实施7. 数据库运行维护8. 商业智能(BI)与数据仓库数据仓库的特点: 9. OLT…...

C++基本知识 —— 缺省参数·函数重载·引用

C基本知识 —— 缺省参数函数重载引用 1. 缺省参数2. 函数重载3. 引用3.1 引用的基础知识3.2 引用的作用3.3 const 引用3.4 指针与引用的关系 1. 缺省参数 什么是缺省参数?缺省参数是声明或定义函数时为函数的参数指定一个缺省值。在调用该函数的时候,如…...

大数据基础——Ubuntu 安装

文章目录 Ubuntu 安装一、配置电脑二、安装系统 Ubuntu 安装 一、配置电脑 1、进入VMware 2、选择配置类型 3、选择硬件兼容性版本 4、当前虚拟机的操作系统 选择“稍后安装操作系统”(修改) 5、选择虚拟机将来需要安装的系统 选中“Linux”和选择…...

英伟达微调qwen2.5-32B模型,开源推理模型:OpenCodeReasoning-Nemotron-32B

一、模型概述 OpenCodeReasoning-Nemotron-32B 是一个大型语言模型,基于 Qwen2.5-32B-Instruct 开发,专为代码生成推理任务进行了后续训练,支持 32,768 个标记的上下文长度,适用于商业和非商业用途。 二、性能表现 在 LiveCode…...

苍穹外卖-创建阿里云oss工具包

添加配置信息: sky:alioss:endpoint: ***access-key-id: ***access-key-secret: ***bucket-name: *** 把配置的内容转换成对象: Component ConfigurationProperties(prefix "sky.alioss") Data public class AliOssProperties {private St…...

代码随想录训练营第二十一天 |589.N叉数的前序遍历 590.N叉树的后序遍历

589.N叉数的前序遍历: 状态:已做出 思路: N叉树的前序遍历和二叉树很像,我这里使用栈来实现。首先把根结点入栈,然后删除栈顶节点后把栈顶节点的所有子树都插入到栈,这里需要注意的是插入的方式是从最后一…...

鸿蒙跨平台开发教程之Uniapp布局基础

前两天的文章内容对uniapp开发鸿蒙应用做了一些详细的介绍,包括配置开发环境和项目结构目录解读,今天我们正式开始写代码。 入门新的开发语言往往从Hello World开始,Uniapp的初始化项目中已经写好了一个简单的demo,这里就不再赘述…...

面试中常问的设计模式及其简洁定义

🎯 一、面试中常问的设计模式及其简洁定义 模式名常被问到解释(简洁)单例模式✅ 高频保证一个类只有一个实例,并提供全局访问点。工厂模式✅ 高频创建对象的接口由子类决定,屏蔽了对象创建逻辑。抽象工厂模式✅提供多…...

关于 js:6. 网络与加密模块

一、AJAX AJAX(Asynchronous JavaScript And XML) 异步 JavaScript 与 XML(现在多为 JSON) 它允许网页在不重新加载整个页面的情况下,从服务器请求数据并更新页面内容。 主要用途: 提交表单时无需刷新页…...

量化交易系统开发经验分享--回测框架调研

一、前言 这段时间在集中做一个量化交易系统的开发任务,目前系统的MVP已经完成开发,后续会整理一些经验与成果和大家交流。刚好有一个前期做策略回测这块的调研,下面把调研的成果做一个整理总结先给大家分享一下,请批评指正。 在介…...

[学习]RTKLib详解:convkml.c、convrnx.c与geoid.c

本文是 RTKLlib详解 系列文章的一篇,目前该系列文章还在持续总结写作中,以发表的如下,有兴趣的可以翻阅。 [学习] RTKlib详解:功能、工具与源码结构解析 [学习]RTKLib详解:pntpos.c与postpos.c [学习]RTKLib详解&…...

【ajax基础】

提示:文章为 学习过程中的记录实践笔记。有问题欢迎指正。 文章目录 前言一、实现步骤二、完整示例三、封装总结 前言 AJAX 不是编程语言,是一种从网页访问web服务器的技术。 可以实现不刷新页面更新网页 在页面加载后从服务器请求/获取数据 在后台向服…...

Nodejs核心机制

文章目录 前言 前言 结合 Node.js 的核心机制进行说明: 解释事件循环的各个阶段。 答案 Node.js 事件循环分为 6 个阶段,按顺序执行: Timers:执行 setTimeout 和 setInterval 的回调。 Pending I/O Callbacks:处理系…...

Kubernetes 集群部署应用

部署 Nginx 应用 命令行的方式 1. 创建 deployment 控制器的 pod # --imagenginx:这个会从 docker.io 中拉取,这个网站拉不下来 # kubectl create deployment mynginx --imagenginx# 使用国内镜像源拉取 kubectl create deployment mynginx --imaged…...

【Linux篇】高并发编程终极指南:线程池优化、单例模式陷阱与死锁避坑实战

深入理解线程池设计与应用:高效并发编程的秘密 一. 线程池1.1 什么是线程池1.2 线程池的优点1.3 线程池的应用场景 二. 线程池设计三. 单例模式3.1 什么是单例模式3.2 单例模式特点3.3 实现单例模式方法3.3.1 饿汉实现⽅式3.3.2 懒汉实现⽅式 四. 线程安全和重入问题…...

学习和测试WebApi项目限制客户端ip访问接口(基于中间件)

WebApi项目需要限制仅允许有限的客户端访问接口,百度相关内容,网上很多介绍WebApi接口IP限流的文章,稍微调整就能用于限制IP访问,微软官网中也有文章介绍客户端 IP 安全列表(参考文献1),可以通过…...

闲鱼智能客服机器人-实现闲鱼平台7×24小时自动化值守

专为闲鱼平台打造的AI值守解决方案,实现闲鱼平台724小时自动化值守,支持多专家协同决策、智能议价和上下文感知对话。 🌟 核心特性 智能对话引擎 功能模块技术实现关键特性上下文感知会话历史存储轻量级对话记忆管理,完整对话历…...

Apache Ranger 2.2.0 编译

安装包下载: https://ranger.apache.org/download.html 编译环境: Linux centos7jdk 1.8maven 3.9.6gitpython 3 git 安装 yum -y install gitpython3安装 yum install epel-release -y yum install python3 python3-devel -y批量安装开发工具套件 …...

实战演练:用 AWS Lambda 和 API Gateway 构建你的第一个 Serverless API

实战演练:用 AWS Lambda 和 API Gateway 构建你的第一个 Serverless API 理论千遍,不如动手一遍!在前面几篇文章中,我们了解了 Serverless 的概念、FaaS 的核心原理以及 BaaS 的重要作用。现在,是时候把这些知识运用起来,亲手构建一个简单但完整的 Serverless 应用了。 …...

鱼眼相机生成-BEV鸟瞰图-入门教程

目录 原理介绍 1. ‌IPM与BEV转换的核心原理‌ 2. ‌尺度信息的来源‌ 3. ‌尺度信息的准确性限制‌ 4. ‌实际应用中的处理方法‌ 代码实现: 360 BEV环视拼接算法 一、核心算法流程‌ 三、实际应用挑战与优化‌ 四、开源实现参考 原理介绍 1. ‌IPM与BEV转换的核心…...

设计模式简述(十八)享元模式

享元模式 描述基本组件使用 描述 当内存中存在大量类似的对象时,可以考虑使用享元模式减少整体内存占用。 可以将相同的部分和不同的部分进行拆分,以达到多个对象共享相同部分内存的目的。 基本组件 通常享元对象通过共享的属性映射一个享元对象。 公…...

Google语法整理

以下是从整理出的 Google 语法: site:指定域名,如 “apache site:bbs.xuegod.cn”,可查询网站的收录情况 。 inurl:限定在 url 中搜索,如 “inurl:qq.txt”,可搜索 url 中包含特定内容的页面&a…...

【每日一题 | 2025年5.5 ~ 5.11】搜索相关题

个人主页:Guiat 归属专栏:每日一题 文章目录 1. 【5.5】P3717 [AHOI2017初中组] cover2. 【5.6】P1897 电梯里的尴尬3. 【5.7】P2689 东南西北4. 【5.8】P1145 约瑟夫5. 【5.9】P1088 [NOIP 2004 普及组] 火星人6. 【5.10】P1164 小A点菜7. 【5.11】P101…...

【MySQL】页结构详解:页的大小、分类、头尾信息、数据行、查询、记录及数据页的完整结构

📢博客主页:https://blog.csdn.net/2301_779549673 📢博客仓库:https://gitee.com/JohnKingW/linux_test/tree/master/lesson 📢欢迎点赞 👍 收藏 ⭐留言 📝 如有错误敬请指正! &…...

C++ stl中的priority_queue的相关函数用法

文章目录 priority_queuepriority_queue定义方式priority_queue相关函数 priority_queue priority_queue 称为 优先级队列,默认使用vector作为底层存储数据的容器,因此priority_queue就是堆,所有需要用到堆的位置,都可以考虑使用…...

软件架构师知识点总结

一、综合知识 软件架构师综合知识总结-CSDN博客 二、案例 软件架构师案例知识点总结-CSDN博客 三、论文 1、题目类型:八大架构;系统开发(开发方法/模型、需求分析、测试等);系统可靠性、安全性、容错技术等&#…...

MySQL数据库常见面试题之三大范式

写在前面 此文章大部分不会引用最原始的概念,采用说人话的方式。 面试题:三大范式是什么?目的是什么?必须遵循吗? 假设有一张表(学号,姓名,课程,老师) 是…...

Scrapy 核心组件解析:Request Response 的深度应用与实战

Scrapy 是 Python 生态中最强大的爬虫框架之一,其核心组件 Request 和 Response 承担着数据抓取与处理的关键任务。本文深入解析 Scrapy 2.13.0 中 Request 和 Response 的高级用法,涵盖参数配置、回调函数、错误处理、子类扩展等,并结合 综合…...

mybatis执行sql过程

一、配置加载阶段​​ ​​1. 读取全局配置(mybatis-config.xml)​​ ​​入口类​​:SqlSessionFactoryBuilder.build()​​关键组件​​: XMLConfigBuilder:解析全局配置文件。Configuration:存储所有配…...

OceanBase 4.3版本向量数据库部署

OceanBase 4.3版本向量数据库部署 安装包准备最低资源配置重要的准备事项服务器配置操作系统内核参数BIOS设置磁盘挂载网卡设置 部署OAT工具初始化OBServer服务器使用oatcli部署OB集群安装OceanBase软件初始化OceanBase集群 启用向量检索功能 OceanBase最新的V4.3版本开始支持向…...

LeetCode 941. 有效的山脉数组 java题解

https://leetcode.cn/problems/valid-mountain-array/description/ 双指针 class Solution {public boolean validMountainArray(int[] arr) {int lenarr.length;if(len<3) return false;int left0,rightlen-1;while(left1<len&&arr[left]<arr[left1]){left…...

基于Java和高德开放平台的WebAPI集成实践-以搜索POI2.0为例

目录 前言 一、高德搜索API简介 1、高德开放平台 2、搜索功能介绍 3、部分API介绍 二、Uniapi集成高德API 1、API集成流程 2、访问接口的定义 3、业务调用集成 三、常见问题与优化 四、总结 前言 在当今数字化时代&#xff0c;地理信息系统&#xff08;GIS&#xff…...

Docker拉取ubuntu22.04镜像使用ROS2 humble及仿真工具可视化进行导航

创建Ubuntu22.04 容器 docker pull ubuntu:22.04 #下载22.04镜像 docker images #查看已下载镜像 #根据镜像创建容器 sudo docker run -it -v /home/lab118/BD_ICL/tools_BD/cailib_data:/calib_data -v /tmp/.X11-unix:/tmp/.X11-unix -e DISPLAY:0 --nethost -e GDK_SCAL…...

PXE安装Ubuntu系统

文章目录 1. 服务器挂载Ubuntu镜像2. 修改dhcp配置文件3. 修改tftp配置文件4.复制网络驱动文件和其他配置文件5. http目录下配置文件6. 踩坑记录6.1 Failed to load ldlinux.c326.2 no space left on device6.3 为啥用pxe安装系统时&#xff0c;客户端需要较大的内存&#xff1…...

外网访问内网海康威视监控视频的方案:WebRTC + Coturn 搭建

外网访问内网海康威视监控视频的方案&#xff1a;WebRTC Coturn 需求背景 在仓库中有海康威视的监控摄像头&#xff0c;内网中是可以直接访问到监控摄像的画面&#xff0c;由于项目的需求&#xff0c;需要在外网中也能看到监控画面。 实现这个功能的意义在于远程操控设备的…...

缓存局部性保留

在操作系统中&#xff0c;线程切换相比进程切换更轻量级的关键原因之一是 缓存&#xff08;Cache&#xff09;的有效性&#xff0c;尤其是对 CPU 缓存&#xff08;如 L1/L2/L3&#xff09;和 TLB&#xff08;Translation Lookaside Buffer&#xff09;的影响。以下从缓存角度详…...

MyBatis源码解读5(3.1、缓存简介)

3.1、简介 ​ 我们需要记住一句话&#xff0c;程序与数据库之间的交互是性能瓶颈的关键&#xff0c;所以我们在做优化的时候&#xff0c;数据库的优化要做&#xff0c;但是优先级是最低的&#xff0c;比它优先级高的是方面是程序与数据库之间的交互&#xff0c;先从宏观上解决…...

【MySQL】行结构详解:InnoDb支持格式、如何存储、头信息区域、Null列表、变长字段以及与其他格式的对比

&#x1f4e2;博客主页&#xff1a;https://blog.csdn.net/2301_779549673 &#x1f4e2;博客仓库&#xff1a;https://gitee.com/JohnKingW/linux_test/tree/master/lesson &#x1f4e2;欢迎点赞 &#x1f44d; 收藏 ⭐留言 &#x1f4dd; 如有错误敬请指正&#xff01; &…...

Docker 部署Nexus仓库 搭建Maven私服仓库 公司内部仓库

介绍 Nexus 是广泛使用的仓库管理工具&#xff0c;常用于管理 Java 构件&#xff08;如 JAR、WAR、EAR 文件&#xff09;。它可以作为一个本地的 Maven 仓库&#xff0c;用来存储和管理项目的依赖包和构建产物。支持多种仓库类型&#xff0c;能够帮助开发团队更高效地管理构件…...

PostgreSQL 的 pg_column_size 函数

PostgreSQL 的 pg_column_size 函数 pg_column_size 是 PostgreSQL 提供的一个系统函数&#xff0c;用于返回特定列或值在数据库内部存储时所占用的字节数。这个函数对于数据库优化、存储空间分析和性能调优非常有用。 函数语法 pg_column_size(anyelement)参数说明 anyele…...

【前端】【HTML】【总复习】一万六千字详解HTML 知识体系

🌐 HTML 知识体系 一、HTML 基础入门 1. HTML 简介与作用 HTML(HyperText Markup Language,超文本标记语言)是构建网页的基础语言。它的核心作用是: 定义网页内容的结构(标题、段落、图片、表格等)提供语义化标签,帮助搜索引擎与辅助设备理解页面内容配合 CSS 实现…...

支持向量机与逻辑回归的区别及 SVM 在图像分类中的应用

支持向量机与逻辑回归的区别及 SVM 在图像分类中的应用 在机器学习的多元算法领域中&#xff0c;支持向量机&#xff08;SVM&#xff09;和逻辑回归&#xff08;LR&#xff09;作为两种经典的监督学习算法&#xff0c;被广泛应用于各类分类任务。尽管它们有着相似的目标&#…...

MySQL基础面试题集锦

MySQL基础面试题集锦 一、SQL基础语法 1. 数据库和表操作 -- 创建数据库 CREATE DATABASE test_db CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;-- 创建表 CREATE TABLE users (id INT AUTO_INCREMENT PRIMARY KEY,username VARCHAR(50) NOT NULL UNIQUE,email VARCH…...

【网络分析工具】网络工具wireshark、TCPdump、iperf使用详解

这里写目录标题 1. wireshark1.1. 过滤包1.2. 常见分析 2. tcpdump3. iperf 1. wireshark **ip.dst eq 10.0.0.21** 是用于网络流量分析工具&#xff08;例如 Wireshark 或 tcpdump&#xff09;的过滤器表达式。 它的作用是筛选出所有目标IP地址为 10.0.0.21 的数据包 IP.add…...

【漫话机器学习系列】253.超平面(Hyperplane)

超平面&#xff08;Hyperplane&#xff09;详解&#xff1a;从二维到高维空间 在机器学习、深度学习、支持向量机&#xff08;SVM&#xff09;等领域中&#xff0c;经常会遇到一个重要的数学概念——超平面&#xff08;Hyperplane&#xff09;。但超平面究竟是什么&#xff1f…...

#微调重排序模型:Reranking从入门到实践

&#x1f9e0; 向所有学习者致敬&#xff01; “学习不是装满一桶水&#xff0c;而是点燃一把火。” —— 叶芝 我的博客主页&#xff1a; https://lizheng.blog.csdn.net &#x1f310; 欢迎点击加入AI人工智能社区&#xff01; &#x1f680; 让我们一起努力&#xff0c;共创…...

vector 常见用法及模拟

文章目录 1. vector的介绍与使用1.1 vector的构造1.2 vector iterator 的使用1.3 有关大小和容量的操作1.4 vector 增删查改1.5 vector 迭代器失效问题&#xff08;重点&#xff09;1.6 vector 中二维数组的使用 2. vector 的模拟实现2.1 拷贝构造和赋值重载的现代写法2.2 memc…...

可变参数模板

引入&#xff1a;为什么会有可变参数模板&#xff1f; 在C98/03中&#xff0c;也就是我们之前学的类模版和函数模版中只能含固定数量的模版参数&#xff0c;而C11中新增的可变参数模板能够不固定数量的模版参数&#xff01; 一&#xff1a;可变参数模板的格式 // Args是一个模板…...

缓存(5):常见 缓存数据淘汰算法/缓存清空策略

主要的三种缓存数据淘汰算法 FIFO(first in first out)&#xff1a;先进先出策略&#xff0c;最先进入缓存的数据在缓存空间不够的情况下&#xff08;超出最大元素限制&#xff09;会被优先被清除掉&#xff0c;以腾出新的空间接受新的数据。策略算法主要比较缓存元素的创建时…...

深入了解linux系统—— 自定义shell

shell的原理 我们知道&#xff0c;我们程序启动时创建的进程&#xff0c;它的父进程都是bash也就是shell命令行解释器&#xff1b; 那bash都做了哪些工作呢&#xff1f; 根据已有的知识&#xff0c;我们可以简单理解为&#xff1a; 输出命令行提示符获取并解析我们输入的指令…...