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

【系统架构设计】数据库系统(一)

数据库系统(一)

  • 数据库模式与范式
    • 数据库的结构与模式
    • 数据模型
    • 关系代数
    • 数据的规范化
    • 反规范化
  • 数据库设计
  • 事务管理
  • 备份与恢复
  • 分布式数据库系统
  • 数据仓库
  • 数据挖掘
  • NoSQL
  • 大数据

数据库模式与范式

数据库的结构与模式

数据库技术中采用分级的方法将数据库的结构划分多个层次。最著名的是美国ANSI/SPARC数据库系统研究组1975年提出的三级划分法,如图3-1所示。

在这里插入图片描述

  1. 三级抽象

数据库系统划分为三个抽象级:用户级、概念级、物理级

  • 用户级数据库:对应于外模式,是最接近用户的一级数据库,是用户可以看到和使用的数据库,又称为用户视图。用户级数据库主要由外部记录组成,不同的用户视图可以互相重叠,用户的所有操作都是针对用户视图进行的。
  • 概念级数据库:对应于概念模式,是所有用户视图的最小并集,是数据库管理员可看到和使用的数据库,又称为DBA(DataBase Administrator ,数据库管理员)视图。概念级数据库由概念记录组成,一个数据库可有多个不同的用户视图,每个用户视图由数据库某一部分的抽象表示所组成。一个数据库应用系统只存在一个DBA视图,它把数据库作为一个整体的抽象表示。概念级模式把用户视图有机地结合成一个整体,综合平衡考虑所有用户要求,实现数据的一致性、最大限度降低数据冗余、准确地反映数据间的联系。
  • 物理级数据库:对应于内模式,是数据库的底层表示,描述数据的实际存储组织,是最接近于物理存储的级,又称为内部视图。物理级数据库由内部记录组成,物理级数据库并不是真正的物理存储,而是最接近于物理存储的级
  1. 三级模式
  • 外模式:用以描述用户看到或使用的那部分数据的逻辑结构,用户根据外模式用数据操作语句或应用程序去操作数据库中的数据。一个数据库可以有多个外模式,一个应用程序只能使用一个外模式
  • 概念模式:用以描述整个数据库中数据库的逻辑结构,描述现实世界中的实体及其性质与联系,定义记录、数据项、数据的完整性约束条件及记录之间的联系,是数据项值的框架,是所有用户的公共数据视图。一个数据库只有一个概念模式
  • 内模式:是数据物理结构和存储方式的描述,是数据在数据库内部的表示方式。一个数据库只有一个内模式

三者之间的关系:

  • 概念模式是数据库的中心与关键
  • 内模式依赖于概念模式,独立于外模式和存储设备;
  • 外模式面向具体的应用,独立于内模式和存储设备;
  • 应用程序依赖于外模式,独立于内模式和概念模式。
  1. 两级独立性

是指物理独立性和逻辑独立性。三个抽象级间通过两级映射(外模式-概念模式映射、概念模式-内模式映射)进行相互转换,使得数据库的三级形成一个统一的整体。

  • 物理独立性:指用户的应用程序与存储在磁盘上的数据库中的数据是相互独立的。当数据的物理存储改变时,应用程序不需要改变。存在于概念模式-内模式之间的映射转换,说明物理组织发生变化时应用程序的独立程度。
  • 逻辑独立性:指用户的应用程序与数据库中的逻辑结构是相互独立的。当数据的逻辑结构改变时,应用程序不需要改变。存在于外模式-概念模式之间的映射转换,说明概念模式发生变化时应用程序的独立程度。

ps:逻辑独立性比物理独立性更难实现。

数据模型

数据模型主要有2大类,分别是概念数据模型(实体-联系模型) 和 基本数据模型(结构数据模型)

  • 概念数据模型:按照用户的观点来对数据和信息建模,主要用于数据库设计。概念数据模型主要用实体-联系方法(Entity-Relationship Approach)表示,所以也称为E-R模型
  • 基本数据模型:按照计算机系统的观点来对数据和信息建模,主要用于数据库管理系统(Database Management System,DBMS)实现。基本数据模型是数据库系统的核心和基础,通常由数据结构、数据操作和完整性约束三部分组成。其中 数据结构是对系统静态特性的描述,数据操作是对系统动态特性的描述,完整性约束是一组完整性规则的集合。常用的有:层次模型、网状模型、关系模型、面向对象模型。

ps:关系模型常用,用表格结构表达实体集,用外键表示实体间的联系。优点有:

  1. 建立在严格的数据概念基础上;
  2. 概念(关系)单一,结构简单、清晰,用户易懂易用;
  3. 存取路径对用户透明,从而数据独立性、安全性好,简化数据库开发工作。

关系代数

在这里插入图片描述

  • 笛卡尔积: 对R和S 做笛卡尔积运算,结果如下:
    在这里插入图片描述

  • 投影:从一个关系中抽取指明的属性(列)。对表3-1 关系R做投影操作,p1,2( R) 的结果如下:
    注意:p1,2( R) 操作表示对第1列和第2列做投影。
    在这里插入图片描述

  • 选择在这里插入图片描述
    注意:选择运算是从元组(行)的角度进行的运算。

  • 等值连接/自然连接
    在这里插入图片描述


  • 在这里插入图片描述

ps :
笛卡尔积:就是把表的记录都一一组合
投影:以列为单位,选择不重复的行
选择:以行为单位,选择行
等值连接:以相同列等值,选择行
自然连接:在等值连接基础上,并在结果中将重复的属性去掉
除:如果表A 和表B 做除法,先确定XYZ,Y和Z 一样,选择A和B 公共部分为YZ,然后A除去公共部分的就是X,然后对X进行投影操作,获取的结果X’与Z进行笛卡尔积操作,如果结果包含在A 中,则X’为最终结果

数据的规范化

关系模型满足的确定约束条件称为范式把一个低一级的关系模型分解为高一级关系模型的过程,称为关系模型的规范化规范化的思想是:逐步消除不合适的函数依赖,使数据库中的各个关系模型达到某种程度的分离关系模型分解必须遵守2个准则

  • 无损连接性: 信息不失真(不增减信息);
  • 函数依赖保持性:不破坏属性间存在的依赖关系。

范式从低到高分为1NF(第一范式)、2NF(第二范式)、3NF(第三范式)、BCNF(BC范式)、4NF(第四范式)等。

  • 第一范式:元素不可再分,如以下例子。但是满足了1NF会有很多重复值,并且增加了修改其数据时引起疏漏的可能性。为了消除这种数据冗余和避免更新数据的遗漏,需要更规范的2NF。
    在这里插入图片描述

  • 第二范式:如果一个关系R属于1NF,且所以的非主属性都完全依赖于主属性,则称为第二范式。

  • 第三范式:如果一个关系R属于2NF,且每个非主属性不传递依赖于主属性,则称为第三范式。

  • BC范式:一般满足3NF的关系模型已能消除冗余和各种异常现象,但无论2NF和3NF 都没有涉及主属性间的函数依赖,所以有时仍会引起一些问题,由此引入BC范式,通常也认为是3NF的改进。其定义是:每个函数依赖关系中的决定因素都包含码,即主属性都有外键和主键。

反规范化

优点是减少数据冗余,节约存储空间,相应逻辑和物理的I/O次数减少,同时加快了增、删、改的速度,但对完全规范的数据库查询,通常需要更多的连接操作,从而影响查询速度。因此,有时为了提高某些查询或应用的性能而破坏规范规则,即反规范化(非规范化处理)。

数据库设计

事务管理

备份与恢复

分布式数据库系统

数据仓库

数据挖掘

NoSQL

大数据

相关文章:

【系统架构设计】数据库系统(一)

数据库系统(一) 数据库模式与范式数据库的结构与模式数据模型关系代数数据的规范化反规范化 数据库设计事务管理备份与恢复分布式数据库系统数据仓库数据挖掘NoSQL大数据 数据库模式与范式 数据库的结构与模式 数据库技术中采用分级的方法将数据库的结…...

泛微e-cology WorkflowServiceXml SQL注入漏洞(POC)

漏洞描述: 泛微 e-cology 是泛微公司开发的协同管理应用平台。泛微 e-cology v10.64.1的/services/接口默认对内网暴露,用于服务调用,未经身份认证的攻击者可向 /services/WorkflowServiceXml 接口发送恶意的SOAP请求进行SQL注入,…...

<Rust><GUI>rust语言GUI库tauri体验:前、后端结合创建一个窗口并修改其样式

前言 本文是rust语言下的GUI库:tauri来创建一个窗口的简单演示,主要说明一下,使用tauri这个库如何创建GUI以及如何添加部件、如何编写逻辑、如何修改风格等,所以,这也是一个专栏,将包括tauri库的多个方面。…...

OBD诊断(ISO15031) 09服务

文章目录 功能简介ISO 9141-2、ISO 14230-4和SAE J1850的诊断服务定义1、请求车辆信息请求消息(读取支持的INFOTYPE)2、请求车辆信息响应消息(报告支持INFOTYPE)3、请求车辆信息请求消息(读取INFOTYPE值)4、请求车辆信息响应消息&…...

客户端与服务端之间的通信连接

目录 那什么是Socket? 什么是ServerSocket? 代码展示: 代码解析: 补充: 输入流(InputStream): 输出流(OutputStream): BufferedReader 是如何提高读取效率的&a…...

Font Awesome 图表图标

Font Awesome 图表图标 Font Awesome 是一个广泛使用的图标库,它提供了大量的图标,可以轻松地用于网页设计和开发中。在本文中,我们将重点介绍 Font Awesome 中的图表图标,探讨它们的特点、使用方法,并展示一些实际的…...

React Native 自定义 Hook 获取组件位置和大小

在 React Native 中自定义 Hook useLayout 获取 View、Pressable 等组件的位置和大小的信息 import {useState, useCallback} from react import {LayoutChangeEvent, LayoutRectangle} from react-nativeexport function useLayout() {const [layout, setLayout] useState&l…...

如何在SpringCloud中使用Kafka Streams实现实时数据处理

使用Kafka Streams在Spring Cloud中实现实时数据处理可以帮助我们构建可扩展、高性能的实时数据处理应用。Kafka Streams是一个基于Kafka的流处理库,它可以用来处理流式数据,进行流式计算和转换操作。 下面将介绍如何在Spring Cloud中使用Kafka Streams实…...

InterSystems IRIS使用python pyodbc连接 windows环境,odbc驱动安装,DSN配置,数据源配置

一、创建的数据库和数据 SELECT 1SELECT $ZVERSIONCREATE TABLE MyApp.Person ( ID INT PRIMARY KEY, Name VARCHAR(100) NOT NULL, Age INT, Gender CHAR(1) );CREATE TABLE MyApp.Person2 ( ID INT PRIMARY KEY, Name VARCHAR(100) NOT NULL, Age INT, Gender CHA…...

JVM:运行时数据区

文章目录 一、总览二、程序计数器1、介绍2、程序计数器在运行中会出现内存溢出吗? 三、栈1、介绍2、栈帧的组成部分(1)局部变量表(2)操作数栈(3)帧数据(3)栈内存溢出&…...

spring-boot2.x整合Kafka步骤

1.pom依赖添加 <properties><java.version>1.8</java.version><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding><maven.compiler.source>1.8</maven.compiler.source><maven.compiler.target>1.8</ma…...

信创学习笔记(四),信创之数据库DB思维导图

创作不易 只因热爱!! 热衷分享&#xff0c;一起成长! “你的鼓励就是我努力付出的动力” 一. 信创学习回顾 1.信创内容 信创内容思维导图 2.信创之CPU芯片架构 信创之CPU芯片架构思维导图 3.信创之操作系统OS 信创之操作系统OS思维导图 二. 信创之国产数据库DB思维导图 …...

SCP 使用教程

SCP&#xff08;Secure Copy Protocol&#xff09;是一种通过加密的方式在本地主机和远程主机之间安全地传输文件的协议。它是基于SSH协议的扩展&#xff0c;允许用户在不同主机之间进行文件复制和传输&#xff0c;是Linux和Unix系统中常用的工具之一。本教程将详细介绍SCP的基…...

python自动化之用flask校验接口token(把token作为参数)

用到的库&#xff1a;flask 实现效果: 写一个接口&#xff0c;需要token正确才能登录 代码&#xff1a; # 导包 from flask import Flask,request,jsonify,json # 创建一个服务 appFlask(__name__) # post请求&#xff0c;路径&#xff1a;/query app.route(/query, met…...

旗晟巡检机器人的应用场景有哪些?

巡检机器人作为现代科技的杰出成果&#xff0c;已广泛应用于各个关键场景。从危险的工业现场到至关重要的基础设施&#xff0c;它们的身影无处不在。它们以精准、高效、不知疲倦的特性&#xff0c;担当起保障生产、守护安全的重任&#xff0c;为行业发展注入新的活力。那么&…...

vue2迁移到vue3注意点

vue2迁移到vue3注意点 1、插槽的修改 使用 #default &#xff0c; 以及加上template 模板 2、 类型的定义&#xff0c;以及路由&#xff0c;vue相关资源&#xff08;ref, reactive,watch&#xff09;的引入等 3、类装饰器 1&#xff09;vue-class-component是vue官方库,作…...

使用windows批量解压和布局ImageNet ISLVRC2012数据集

使用的系统是windows&#xff0c;找到的解压命令很多都linux系统中的&#xff0c;为了能在windows系统下使用&#xff0c;因此下载Git这个软件&#xff0c;在其中的Git Bash中使用以下命令&#xff0c;因为Git Bash集成了很多linux的命令&#xff0c;方便我们的使用。 ImageNe…...

css实现每个小盒子占32%,超出就换行

代码 <div class"visitors"><visitor class"item" v-for"(user,index) in userArr" :key"user.id" :user"user" :index"index"></visitor></div><style lang"scss" scoped&…...

C++的链接指示extern “C“

目录 链接指示extern "C"A.What&#xff08;概念&#xff09;B.Why&#xff08;extern "C"的作用&#xff09;C.How &#xff08;如何使用链接指示extern "C"&#xff09; 链接指示extern “C” A.What&#xff08;概念&#xff09; extern&quo…...

私域运营 组织架构

**揭秘私域社群运营的神秘面纱&#xff1a;角色与职能一网打尽&#xff01;** 在私域社群运营的大舞台上&#xff0c;每个角色都扮演着不可或缺的重要角色。今天&#xff0c;就让我们一起揭开这个神秘世界的面纱&#xff0c;看看这些角色们是如何协同作战&#xff0c;共同创造…...

GLM-4.6V-Flash-WEB新手入门:从镜像加速到网页推理实战

GLM-4.6V-Flash-WEB新手入门&#xff1a;从镜像加速到网页推理实战 1. 为什么选择GLM-4.6V-Flash-WEB 智谱AI最新开源的GLM-4.6V-Flash-WEB是一款专为实际业务场景优化的多模态视觉大模型。它结合了视觉理解和语言生成能力&#xff0c;特别适合需要快速部署的Web应用场景。 …...

深入解析RevokeMsgPatcher:Windows平台防撤回补丁的技术实现与架构设计

深入解析RevokeMsgPatcher&#xff1a;Windows平台防撤回补丁的技术实现与架构设计 【免费下载链接】RevokeMsgPatcher :trollface: A hex editor for WeChat/QQ/TIM - PC版微信/QQ/TIM防撤回补丁&#xff08;我已经看到了&#xff0c;撤回也没用了&#xff09; 项目地址: ht…...

CLIP-GmP-ViT-L-14图文匹配工具入门必看:上传图片+批量文本匹配全流程

CLIP-GmP-ViT-L-14图文匹配工具入门必看&#xff1a;上传图片批量文本匹配全流程 你是不是经常好奇&#xff0c;AI到底能不能看懂图片&#xff1f;比如&#xff0c;你给它一张小狗的照片&#xff0c;它能准确说出这是“一只狗”而不是“一只猫”或“一辆车”吗&#xff1f;今天…...

windows版vasp-6.5.1非Cygwin版

推荐使用oneapi版本&#xff0c;这个版本性能要好一点。 1.解压压缩包。 Gromacs&Vasp软.件.交.流&#xff1a;962946828 2.用VASP安装器添加系统环境变量&#xff08;选择bin目录所在目录的父级目录&#xff09;。 3.测试命令&#xff08;在cmd或者powershell执行&#…...

昆明理工大学材料科学与工程考研复试资料|F001现代材料测试技术专项复习包|电子版

温馨提示&#xff1a;文末有联系方式一、昆明理工大学材料科学与工程专业复试资料全面升级 专为报考昆明理工大学材料科学与工程学院硕士研究生设计&#xff0c;深度对标最新复试大纲&#xff0c;系统梳理核心考核模块&#xff0c;助力考生精准把握复试命方向与评分标准。二、F…...

探索AI辅助开发新范式:让快马平台成为你的专属前端智囊

最近在做一个需要收集用户反馈的小项目&#xff0c;发现用传统的表单方式实在太死板了。正好看到InsCode(快马)平台的AI辅助开发功能&#xff0c;决定试试用AI生成一个交互式反馈墙。没想到整个过程出奇地顺利&#xff0c;这里分享一下我的实践心得。 需求分析阶段 我首先在平…...

南北阁模型新玩法:一键部署极简WebUI,体验手机短信般AI对话

南北阁模型新玩法&#xff1a;一键部署极简WebUI&#xff0c;体验手机短信般AI对话 还在用那些界面老旧、反应迟钝的AI对话工具吗&#xff1f;每次发送问题后&#xff0c;只能盯着屏幕上的加载图标干等&#xff0c;几秒甚至十几秒后才能看到一大段文字“啪”地一下弹出来&…...

【ZGC性能黄金阈值手册】:基于127个线上集群实测数据,定义堆大小/线程数/触发频率最优配比

第一章&#xff1a;ZGC性能黄金阈值的定义与行业意义ZGC&#xff08;Z Garbage Collector&#xff09;作为JDK 11引入的低延迟垃圾收集器&#xff0c;其核心设计目标是将GC暂停时间稳定控制在10毫秒以内&#xff0c;且不随堆大小线性增长。而“ZGC性能黄金阈值”并非官方术语&a…...

从 OpenClaw 到 ToClaw:AI 代理网关的产品化之路

定位说明&#xff1a;这是一篇偏“体验与选型思路”的横测笔记&#xff0c;不是参数党跑分&#xff0c;也不是安装教程。内容基于我对产品定位与常见使用路径的理解&#xff0c;公测策略与功能细节可能会随版本变化。 01&#xff5c;OpenClaw 是什么&#xff1f;能做什么&#…...

番茄小说下载器:Rust构建的高性能离线阅读解决方案

番茄小说下载器&#xff1a;Rust构建的高性能离线阅读解决方案 【免费下载链接】Tomato-Novel-Downloader 番茄小说下载器不精简版 项目地址: https://gitcode.com/gh_mirrors/to/Tomato-Novel-Downloader 在数字阅读时代&#xff0c;网络依赖、格式不兼容和下载效率低下…...