系统架构设计师|数据库基础-006

📫 作者简介:「六月暴雪飞梨花」,专注于研究Java,就职于科技型公司后端工程师
🏆 近期荣誉:华为云云享专家、阿里云专家博主、 腾讯云优秀创作者、腾讯云TDP-KOL、墨天轮技术专家博主、ACDU成员
🎉 三连支持:欢迎 ❤️关注、👍点赞、👉收藏三连,支持一下博主~

文章目录

  • 前言
  • 1 数据库
    • 1.1 相关概念
    • 1.2 数据库模型
    • 1.3 关系数据库
    • 1.4 设计范式
  • 2 数据库设计
    • 2.1数据库设计步骤
    • 2.2应用程序和数据库
  • 3 NoSQL
  • 总结

前言

从前几篇的反应来看,反响还是不错的,本篇开始梳理数据库(系统架构设计师)相关的知识。如果出入或偏颇,还望指出。

1 数据库

1.1 相关概念

【数据】
数据(Data):是描述事物的符号记录,它具有多种表现形式,可以是文字、图形、图像、声音和语言等。

【信息】
信息(Information):是现实世界事物的存在方式或状态的反映,信息有自然属性可感知可存储可加工可传递可再生)、社会属性(社会各行各业不可缺少的资源)。
在这里插入图片描述

数据和信息的关系:数据是信息的符号表示,而信息是具有特定释义和意义的数据。

【数据库】
数据库(Database,DB):是统一管理的、长期储存在计算机内的,有组织的相关数据的集合。数据库的特点是数据间联系密切、冗余度小、独立性较高、易扩展、可共享。

【数据库系统】
数据库系统(Database System,DBS):是一个采用了数据库技术,有组织地、动态地存储大量相关联数据,从而方便多用户访问的计算机系统。广义上讲, DBS包括了数据库管理系统(DataBase Management System,DBMS)。

【数据库管理系统】
数据库系统(Database Manage System,DBMS):数据库管理系统主要有数据定义,数据库操作,数据库运行管理,数据组织、存储和管理,数据库的建立和维护等5个方面功能。

【数据处理】
数据处理是对各种数据进行收集、存储、加工和传播的一系列活动。

【数据管理】
数据管理是对数据进行分类、组织、编码、存储、检索和维护的活动。
在这里插入图片描述

1.2 数据库模型

数据库的基础部分是数据模型,而数据模型又分为数据结构、数据操作和约束数据条件。
(1)数据结构。对象类型的集合,是对系统静态特性的描述。
(2)数据操作。对数据库中各种对象(型)的实例(值)允许执行的操作集合,包括操作及操作规则。如操作有检索、插入、删除和修改,操作规则有优先级等。数据操作是对系统动 态特性的描述。
(3)数据的约束条件。是一组完整性规则的集合。数据的约束条件用于保证数据的正确、有效和相容。

【数据库的发展历史】
按照不同的数据模型,可以将数据库的发展历史分为3个阶段:层次和网状数据库系统、关系数据库系统、第三代数据库系统。
层次和网状数据库系统:树形结构表示数据与数据间的联系,底层可用图结构表示。
关系数据库系统:目前最常用的数据模型之一,最大特色是描述数据的一致性。关系模型是由若干个关系模式组成的集合。一个关系模式相当于一个记录型,对应于程序设计语言中类型定义的概念。关系是一个实例,也是一张表。
第三代数据库系统:支持日益复杂的数据类型。

【三级模式】
从对用户屏蔽系统的复杂性,简化用户与系统的交互来看,数据库由视图层、逻辑层和物理层三个层,如下图的右侧。
从数据库管理系统的角度,数据库也分为三级模式,分别是外模式、概念模式和内模式,如下图的左侧部分。
在这里插入图片描述

1.3 关系数据库

关系数据库系统是支持关系数据模型的数据库系统,关系数据库应用数学方法来处理数据库中的数据。良好的关系商业化关系数据库如Oracle、DB2、MySQL、Sybase等。

【关系数据库的概念】
先看下一些关系术语。
属性:一些特征。例如一个学生所拥有的属性有姓名、性别、年龄、籍贯、学号、身份证编码等。
:一个特征的集合。例如性别有男、女、其他,那么此时可表示之为性别的域为{男,女,其他}。
主键:一个关系中可以唯一标识的属性,例如学号。
外键:在一个关系中,除了主键,还保留了别的关系的主键,而别的关系的主键则为当前关系的外键。

【关系运算】
5种基本的关系代数运算包括并、差、笛卡尔积、投影和选择,其他运算可以通过基本的关系运算导出。
在这里插入图片描述

1.4 设计范式

关系数据库主要有六种范式,分别是第一范式(1NF)、第二范式(2NF)、第三范式(3NF)、巴斯-科德范式(BCNF,有的也叫做巴克斯范式)、第四范式(4NF)和第五范式(5NF)。
第一范式(1NF)
缺点:
(1)冗余度大;
(2)修改导致数据不一致性;
(3)插入异常;
(4)删除异常。

第三范式(3NF)
优点:
3NF中不存在部分依赖和传递依赖,具有较好的性能,一般用于查询数据。

巴斯-科德范式(BCNF)
特点:
(1)所有非主属性对每一个码都是完全函数依赖,直白些就是只依赖当前关系的主键;
(2)所有非主属性对每一个不包含它的码,也是完全函数依赖;
(3)没有任何属性完全函数依赖于非码的任何一组属性。

第四范式(4NF)
第四范式是限制关系模式的属性间不允许有非平凡且非函数依赖的多值依赖。

注意⚠️:如果只考虑函数依赖,关系模式最高的规范化程度是 BCNF ; 如果考虑多值依赖,关系模式最高的规范化程度是4NF。

2 数据库设计

2.1数据库设计步骤

目前主流的数据库系统多数为关系数据库系统,数据库设计 (Database Design) 属于系统设计的范畴,一般将数据库设计分为如下6个阶段。
(1)用户需求分析。对应用对象的功能、性能、限制进行分析。
(2)概念结构设计。对信息分析、定义后模型化。
(3)逻辑结构设计。概念模型转化为数据模型。
(4)物理结构设计。是逻辑模型在计算机中的具体实现方案。
(5)数据库实施阶段。数据库设计人员根据逻辑设计和物理设计阶段的结果建立数据库,编制与调试应用程序,组织数据入库,并进行试运行。
(6)数据库运行和维护阶段。

2.2应用程序和数据库

用户或应用程序可以通过SQL、过程性SQL、库函数、嵌入式SQL、通用数据接口标准和对象关系映射来访问数据库。开放数据库连接 (Open DataBase Connectivity,ODBC) 是为解决异构数据库间的数据共享 而产生的。对象关系映射是一种程序设计技术,典型的ORM框架有Hibernate、Mybatis和JPA等。

3 NoSQL

NoSQL仅仅是一个概念,泛指非关系型的数据库,区别于关系数据库,它们不保证关系数据的 ACID 特性。NoSQL特征:易扩展、大数据量、高性能、灵活数据模型、高可用。NoSQL整体框架分为4层,由下至上分为数据持久层 (Data Persistence)、 数据分布层 (Data Distribution Model)、 数据逻辑模型层 (Data Logical Model) 和接口层 (Interface),
NoSQL有如下类型:
1、列式存储数据库,如 Cassandra、HBase。
2、键值对存储数据库,如Redis、Oracle BDB。
3、文档型数据库,如 CouchDB、MongoDb, 国内也有文档型数据库SequoiaDB。
4、图数据库,如Neo4J、InfoGrid、Infinite Graph。

总结

参考 《系统架构设计师》 的书籍,算是看完这一章节,所有部分多数来源于此书籍。


[引用]

  1. 《系统架构设计师》(第二版)

欢迎关注博主 「六月暴雪飞梨花」 或加入【六月暴雪飞梨花社区】一起学习和分享Linux、C、C++、Python、Matlab,机器人运动控制、多机器人协作,智能优化算法,滤波估计、多传感器信息融合,机器学习,人工智能等相关领域的知识和技术。

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

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

Linux top命令详解与重点内容说明

文章目录 重点说明基本信息进程(任务)信息cpu占用信息%Cpu(s)内存信息交换内存信息每列含义说明交互命令多窗口模式颜色配置命令参数 重点说明 top命令非常强大,也非常复杂,很难面面俱到,也没有必要,这篇文章的目的是介绍重点&am…

面试题给图例举测试用例或测试点

目录 从功能测试的角度考虑: 从性能角度考虑: 从兼容性的角度考虑: 从自动化角度考虑: 从安全性角度考虑: 用户体验的角度测试: 面试通常会有技术和人事两种,侧重点不一样。 今天聊一下测…

前端univer创建、编辑excel

前端univer创建、编辑excel 源码在线demo:https://codesandbox.io/p/sandbox/univer-q87kqg?file/src/Demo.jsx univer官网地址:https://univer.ai/zh-CN/guides/sheet/introduction 安装univer npm install univerjs/core univerjs/design univerjs…

音频北斗定位系统有什么用?

在当今科技飞速发展的时代,定位技术已经成为我们日常生活和各行各业不可或缺的一部分。其中,音频北斗定位系统作为一种新兴的定位技术,正逐渐展现出其独特的优势和应用价值。那么,到底音频北斗定位系统有什么用呢?我们一起来了解…

计算机网络nat 映射案列

1 拓扑案列 2 配置 pc 访问外网 # interface LoopBack192 ip address 192.168.1.1 255.255.255.0 # interface Vlan-interface1 ip address 10.1.1.1 255.255.255.0 # # ip route-static 0.0.0.0 0 10.1.1.2 # local-user admin class manage password hash $h$6$0XD4lC…

微信小程序. tarojs webView的 onload 事件不触发

功能需求:想再webView加载成功后做一些逻辑操作。使用onLoad事件 现象:在taro里面webView的onload。onError 事件不触发了 版本:taro 3.6版本 分析:刚开始想着可能是版本,然后用另外一个项目(taro 3.4版…

Docker笔记-Docker Dockerfile

Docker笔记-Docker Dockerfile Dockerfile 是一个用来构建镜像的文本文件,文本内容包含了一条条构建镜像所需的指令和说明。 这里讲解如何运行 Dockerfile 文件来定制一个镜像。 DockerFile构建过程解析: 1、每条保留字指令都必须为大写字母且后面要…

元学习的简单示例

代码功能 模型结构:SimpleModel是一个简单的两层全连接神经网络。 元学习过程:在maml_train函数中,每个任务由支持集和查询集组成。模型先在支持集上进行训练,然后在查询集上进行评估,更新元模型参数。 任务生成&…

C#自定义曲线绘图面板

一、实现功能 1、显示面板绘制。 2、拖动面板,X轴、Y轴都可以拖动。 3、显示面板缩放,放大或者缩小。 4、鼠标在面板中对应的XY轴数值。 5、自动生成的数据数组,曲线显示。 6、鼠标是否在曲线上检测。 二、界面 拖动面板 鼠标在曲线上…

Linux —— 多线程

一、本篇重点 1.了解线程概念,理解线程与进程区别与联系 2.理解和学会线程控制相关的接口和操作 3.了解线程分离与线程安全的概念 4.学会线程同步。 5.学会互斥量,条件变量,posix信号量,以及读写锁 6.理解基于读写锁的读者写…

《JKTECH柔性振动盘:原理与多行业应用》东莞市江坤自动化科技有限公司

一、柔性振动盘的原理 柔性振动盘是一种新型的自动化上料设备,它采用先进的音圈电机技术和柔性振动技术,实现了对各种不规则形状、微小尺寸、易损伤零部件的高效上料和分拣。 其工作原理主要包括以下几个方面: 1. 音圈电机驱动 柔性振动盘内部…

分布式系统的概念与设计模式

概念 定义:分布式系统是指将数据和计算任务分散到多个独立的计算机上,这些计算机通过网络进行通信和协作,共同对外提供服务。分布式系统不仅提高了系统的可靠性和可扩展性,还增强了系统的并发处理能力和数据管理能力。 特点&…

运维开发之堡垒机(Fortress Machine for Operation and Development)

💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:Linux运维老纪的首页…

mysql通过binlog做数据恢复

1 介绍 binlog(二进制日志)在 MySQL 中具有非常重要的作用。它记录了数据库的所有更改操作,主要用于数据恢复、复制和审计等方面。以下是 binlog 的主要作用: 1.数据恢复 binlog 可以用于恢复数据库中的数据。当数据库发生故障时…

分布式框架 - ZooKeeper

一、什么是微服务架构 1、单体架构 顾名思义一个软件系统只部署在一台服务器上。 ​ 在高并发场景中,比如电商项目,单台服务器往往难以支撑短时间内的大量请求,聪明的架构师想出了一个办法提高并发量:一台服务器不够就加一台&am…

微信小程序拨打电话点取消报错“errMsg“:“makePhoneCall:fail cancel“

问题:微信小程序中拨打电话点取消,控制台报错"errMsg":"makePhoneCall:fail cancel" 解决方法:在后面加上catch就可以解决这个报错 wx.makePhoneCall({phoneNumber: 181********}).catch((e) > {console.log(e) //用…

数据安全治理

数据安全治理 1.数据安全治理2.终端数据安全加密类权限控制类终端DLP类桌面虚拟化安全桌面 3.网络数据安全4.存储数据安全5.应用数据安全6.其他话题数据脱敏水印与溯源 7.UEBA8.CASB 1.数据安全治理 数据安全治理最为重要的是进行数据安全策略和流程制订。在企业或行业内经常发…

前端实用工具(二):编程规范化解决方案

目录 本地代码规范化工具 代码检测工具ESLint 代码格式化工具Prettier 远程代码规范化工具 远程提交规范化工具commitizen 提交规范检验工具commitlint husky 什么是git hooks commitlint安装 husky安装 检测代码提交规范 ESLint husky 自动修复格式错误lint-staged…

使用 Puppeteer-Cluster 和代理进行高效网络抓取: 完全指南

文章目录 一、介绍?二、什么是 Puppeteer-Cluster?三、为什么代理在网络抓取中很重要?四、 为什么使用带代理的 Puppeteer-Cluster?五、分步指南: 带代理的 Puppeteer 群集5.1. 步骤 1:安装所需程序库5.2. …

基于 ROS 的Terraform托管服务轻松部署ChatGLM2-6B

介绍 ChatGLM2-6B是开源中英双语对话模型ChatGLM-6B的第二代版本,在保留了初代模型对话流畅、部署门槛较低等众多优秀特性的基础上,ChatGLM2-6B具有更强大的性能、更长的上下文、更高效的推理等特性。 资源编排服务(Resource Orchestration…