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

软考架构师笔记-数据库系统

1.7 数据库系统

三级模式-两级映射

  • 三级模式
    • 外模式:用户视图
    • 概念模式:只涉及描述
    • 内模式:存储方式的描述
  • 两级映射
    • 外模式-概念模式映射
    • 概念模式-内模式映射

数据库的设计 步骤

  • 需求分析
    • 输出为需求分析、数据流图(Data FLow Diagram-DFD)、数据字典、需求说明文档
      • 数据流图
        • 数据流图DFD是描述系统中数据流程的一种图形工具,它标志了一个系统的逻辑输入和逻辑输出,以及把逻辑输入转换逻辑输出所需的加工处理
        • 箭头表示数据流;圆或椭圆表示加工;双杠或者单杠表示数据存储;矩形框表示数据的源点或终点,即外部实体。
      • 数据字典:数据字典是指对数据的数据项、数据结构、数据流、数据存储、处理逻辑、外部实体等进行定义和描述,其目的是对数据流程图中的各个元素做出详细的说明。
  • 概念结构设计
    • 输出为实体-联系(ER图)
      • 构件
        • 实体 - 矩形
        • 属性 - 椭圆
        • 联系 - 菱形
  • 逻辑结构设计
    • 输出为关系模型
    • ER模型转换为关系模型,理解就是将ER图转成表(关键字,属性)
      • 1:1 联系
        • 在两个关系模式中的任意一个模式中,加入另一个模式的键和联系类型的属性
        • 案例
          • 将实体E1,E2和联系R转成关系模式,三种情形
            • E1 -> (K1, A), E2 -> (K2, B), R -> (K1, K2, r)
            • E1 -> (K1, A), E2 -> (K2, B, K1, R)
            • E1 -> (K1, A, K2, r), E2 -> (K2, B)
      • 1:n 联系
        • 在n端的类型对应的关系模式中加入1端实体类型的键和联系类型的属性
        • 部门:员工 ,将联系放在员工中,一个员工对应一个部门。反之,部门之中就会有好多员工的信息。
      • m:n 联系
        • m的关系模式,n的关系模式,联系类型也转换成关系模式,属性为两端实体类型的键加上联系类型的属性
  • 物理结构设计
    • 物理设备上的存储结构和存取方法
    • DBMS(Database Management System)

关系代数

  • 并 - U
  • 交 - ∩
  • 差 - -
  • 笛卡尔积 - X
    • 属性为两个关系的属性相加
    • 行数为两个关系的行数相乘
  • 投影 - π
    • 选择列
  • 选择 - σ
    • 类似根据关键字查找
  • 自然联接 - ∞
    • 筛选相同的属性下的条件,最终对所有非重复的属性拼接。
    • 如果没写条件,就是默认属性的联接

规范化理论

函数依赖

  • 部分函数依赖
    • 主键 + 其他属性 -> 属性
    • 主键的一部分能够确定一个属性,就称为部分函数依赖。
  • 传递函数依赖
    • A -> B -> C,但是 由B 不能到 A。

规范化理论

  • 非规范化理论可能存在问题:数据冗余、更新异常、插入异常、删除异常

  • 超键(唯一标志元组)
    • 可以有冗余
    • A->C, (A,B)->C,B就是冗余
  • 候选键
    • 将超键的冗余去掉,可以有多个候选键
  • 主键
    • 从候选键选择一个
  • 外键
    • 其他关系的主键

求候选关键字

  • 将关系模式中的函数依赖关系用“有向图”表示
  • 找入度为0的属性,并以该属性集合为起点,尝试遍历图中所有节点,则为候选键
  • 如果入度为0的属性不能遍历所有节点,将既有入度又有出度的并入入度为0的节点中,直该集合能遍历所有节点。

范式

  • 主属性,属于候选关键字的一部分
  • 1NF
    • 属性值都是不可分割的原子值
  • 1NF->2NF
    • 每一个非主属性完全依赖主键(否则会数据冗余)
    • 消除非主属性对候选键的部分函数依赖
    • 单属性的主键一定消除了部分函数依赖。
  • 2NF->3NF
    • 消除非主属性对候选键的传递依赖
    • 例如 A(主键)、B、C,A->B->C, BC存在数据冗余
  • 3NF->BCNF
    • 消除主属性对候选键的传递依赖
    • 所有函数依赖中,左边部分一定是某个候选键
  • BCNF与第三范式的 不同之处在于:第三范式中不允许非主属性被另一个非主属性决定,但第三范式允许主属性被非主属性决定;而在BCNF中,任何属性(包括非主属性和主属性)都不能被非主属性所决定。

模式分解

  • 保持函数依赖分解
    • 分解之前和分解之后函数依赖仍然存在。
  • 关系模式 R(U, F)
    • 属性集U{A, B, C, D},
    • 依赖关系F{A->B}
  • 无损分解 (可以还原)
    • 指一个关系模式分解成若干个关系模式后, 通过自然联接和投影运算仍能还原到原来的关系模式。
    • 判断方式1
      • 自然联接分析
        • 容易出错,经验:必须在某一个模式下使用依赖关系还原才可以
      • 表格法分析(重点)
        • a 为确定的值,b12 为不能确定的值。
    • 模式分解,适用一个模式分为两个关系为二个关系模式
      • R1,R2求交集
      • R1 - R2
      • R2 - R1
      • 交集和另外两个集知否存在函数依赖,只要满足一个函数依赖即可。

相关文章:

软考架构师笔记-数据库系统

1.7 数据库系统 三级模式-两级映射 三级模式 外模式:用户视图概念模式:只涉及描述内模式:存储方式的描述 两级映射 外模式-概念模式映射概念模式-内模式映射 数据库的设计 步骤 需求分析 输出为需求分析、数据流图(Data FLow Diagram-DF…...

Spring AI 1.0.0-M6 快速开始(一)

Spring AI 1.0.0-M6 入门一、存储库二、依赖管理完整maven 入门 Spring 是JAVA中我们经常使用的框架之一,Spring AI不断的发展迭代目前已经到M6版本据说上半年会出一个稳定版本。 本节提供了如何开始使用Spring AI的M6。 一、存储库 1.0 M6 -添加Spring存储库 需…...

go 分布式redis锁的实现方式

go 语言以高并发著称。那么在实际的项目中 经常会用到锁的情况。比如说秒杀抢购等等场景。下面主要介绍 redis 布式锁实现的两种高并发抢购场景。其实 高并发 和 分布式锁 是一个互斥的两个状态: 方式一 setNX: 使用 redis自带的API setNX 来实现。能解决…...

Unity中Stack<T>用法以及删除Stack<GameObject>的方法

Unity中Stack用法以及删除Stack的方法 介绍Stack<T>的APIStack<T> 常用方法创建和初始化 Stack<T>Push 和 Pop 操作Stack<T>遍历清空栈检查栈是否包含某个元素 栈的典型应用场景撤销操作深度优先搜索&#xff08;DFS&#xff09;注意事项 总结 介绍 因…...

Vue进阶之Vue3源码解析(二)

Vue3源码解析 运行runtime-coresrc/createApp.tssrc/vnode.ts.tssrc/renderer.ts runtime-domsrc/index.ts 总结 运行 runtime-core src/createApp.ts vue的创建入口 import { createVNode } from "./vnode";export function createAppAPI(render) {return funct…...

linux的文件系统及文件类型

目录 一、Linux支持的文件系统 二、linux的文件类型 2.1、普通文件 2.2、目录文件 2.3、链接文件 2.4、字符设备文件: 2.5、块设备文件 2.6、套接字文件 2.7、管道文件 三、linux的文件属性 3.1、关于权限部分 四、Linux的文件结构 五、用户主目录 5.1、工作目录…...

如何下载安装 PyCharm?

李升伟 整理 一、下载 PyCharm 访问官网 打开 PyCharm 官网&#xff0c;点击 "Download" 按钮25。 版本选择&#xff1a; 社区版&#xff08;Community&#xff09;&#xff1a;免费使用&#xff0c;适合个人学习和基础开发。 专业版&#xff08;Professional&#…...

3D空间曲线批量散点化软件V1.0正式发布,将空间线条导出坐标点,SolidWorks/UG/Catia等三维软件通用

软件下载地址&#xff1a; SolidWorks/UG/Catia等三维软件通用&#xff0c;3D空间曲线批量散点化软件V1.0正式发布&#xff0c;将空间线条导出坐标点 - 陶小桃Blog在三维设计领域&#xff0c;工程师常需将复杂空间曲线转化为离散坐标点以用于逆向工程、有限元分析、数控加工或…...

WPS AI+office-ai的安装、使用

** 说明&#xff1a;WPS AI和OfficeAI是两个独立的AI助手&#xff0c;下面分别简单讲下如何使用 ** WPS AI WPS AI是WPS自带AI工具 打开新版WPS&#xff0c;新建文档后就可以看到菜单栏多了一个“WPS AI”菜单&#xff0c;点击该菜单&#xff0c;发现下方出现很多菜单&#xf…...

java后端开发day27--常用API(二)正则表达式爬虫

&#xff08;以下内容全部来自上述课程&#xff09; 1.正则表达式&#xff08;regex&#xff09; 可以校验字符串是否满足一定的规则&#xff0c;并用来校验数据格式的合法性。 1.作用 校验字符串是否满足规则在一段文本中查找满足要求的内容 2.内容定义 ps&#xff1a;一…...

拼电商客户管理系统

内容来自&#xff1a;尚硅谷 难度&#xff1a;easy 目 标 l 模拟实现一个基于文本界面的 《 拼电商客户管理系统 》 l 进一步掌握编程技巧和调试技巧&#xff0c;熟悉面向对象编程 l 主要涉及以下知识点&#xff1a; 类结构的使用&#xff1a;属性、方法及构造器 对象的创建与…...

华为:Wireshark的OSPF抓包分析过程

一、OSPF 的5包7状态 5个数据包 1.Hello&#xff1a;发现、建立邻居&#xff08;邻接&#xff09;关系、维持、周期保活&#xff1b;存在全网唯一的RID&#xff0c;使用IP地址表示 2.DBD&#xff1a;本地的数据库的目录&#xff08;摘要&#xff09;&#xff0c;LSDB的目录&…...

Android项目优化同步速度

最近项目需要使用ffmpeg&#xff0c;需要gradle配置引入ffmpeg库&#xff0c;发现原来通过google官方的代码仓&#xff0c;下载太慢了&#xff0c;每秒KB级别的速度。&#xff08;之前下gradle/gradle plugin都不至于这么慢&#xff09;&#xff0c;于是想到配置国内镜像源来提…...

在线教育网站项目第二步 :学习roncoo-education,服务器为ubuntu22.04.05

一、说明 前端技术体系&#xff1a;Vue3 Nuxt3 Vite5 Vue-Router Element-Plus Pinia Axios 后端技术体系&#xff1a;Spring Cloud Alibaba2021 MySQL8 Nacos Seata Mybatis Druid redis 后端系统&#xff1a;roncoo-education&#xff08;核心框架&#xff1a;S…...

STM32-GPIO详解

目录 一&#xff1a;GPIO基本概念 ​编辑 二&#xff1a;GPIO的实际应用 三&#xff1a;功能描述 四&#xff1a;GPIO库函数 五&#xff1a;寄存器 GPIO相关寄存器功能 一&#xff1a;GPIO基本概念 GPIO是英文General Purpose Input/Output的缩写&#xff0c;中文翻译为…...

【Framework系列之Client】UIManager和UIPanel模块介绍

今天来介绍一下UIManager和UIPanel模块&#xff0c;话不多说直接开始。 UIManager 功能介绍 UIManager是管理UIPanel的唯一模块&#xff0c;UIManager的主要功能包括&#xff1a; 提供打开、隐藏、关闭UIPanel的相关接口。负责UIPanel对象的创建以及初始化。负责储存UIPanel对…...

阿里云操作系统控制台——ECS操作与性能优化

引言&#xff1a;在数字化时代&#xff0c;云服务器作为强大的计算资源承载平台&#xff0c;为企业和开发者提供了灵活且高效的服务。本文将详细介绍如何一步步操作云服务器 ECS&#xff0c;从开通到组件安装&#xff0c;再到内存全景诊断&#xff0c;帮助快速上手&#xff0c;…...

【长安大学】苹果手机/平板自动连接认证CHD-WIFI脚本(快捷指令)

背景&#xff1a; 已经用这个脚本的记得设置Wifi时候&#xff0c;关闭“自动登录” 前几天实在忍受不了CHD-WIFI动不动就断开&#xff0c;一天要重新连接&#xff0c;点登陆好几次。试了下在网上搜有没有CHD-WIFI的自动连接WIFI自动认证脚本&#xff0c;那样我就可以解放双手&…...

第51天:Web开发-JavaEE应用SpringBoot栈身份验证JWT令牌Security鉴权安全绕过

#知识点 1、安全开发-JavaEE-身份验证-JWT&Security 2、安全开发-JavaEE-安全问题-不安全写法&版本漏洞 #开发框架-SpringBoot 参考&#xff1a;Spring Boot 中文文档 一、身份验证的常见技术&#xff1a; 1、JWT 2、Shiro 3、Spring Security 4、OAuth 2.0 5、SSO 6、…...

中原银行:从“小机+传统数据库”升级为“OceanBase+通用服务器”,30 +系统成功上线|OceanBase DB大咖说(十五)

OceanBase《DB 大咖说》第 15 期&#xff0c;我们邀请到了中原银行金融科技部数据团队负责人&#xff0c;吕春雷。本文为本期大咖说的精选。 吕春雷是一位资历深厚的数据库专家&#xff0c;从传统制造企业、IT企业、甲骨文公司到中原银行&#xff0c;他在数据库技术与运维管理…...

Java面试第八山!《Spring框架》

一、Spring框架概述 Spring是Java企业级应用开发的核心框架&#xff0c;通过控制反转&#xff08;IoC&#xff09;和 面向切面编程&#xff08;AOP&#xff09;实现模块解耦&#xff0c;简化开发流程。其核心优势包括依赖注入、声明式事务管理、集成主流ORM框架&#xff08;如…...

LangChain教程 - Agent - 支持 9 种 ReAct 交互

引言 LangChain 总结了 9 种经典的复杂模型交互模式&#xff0c;每种都针对特定任务设计&#xff0c;兼具独特优势与适用场景&#xff0c;内容涵盖&#xff1a; ReAct、Function Call、知识库、搜索等&#xff0c;使用这些模式可以大大简化这些场景开发难度。这些模式可以使用…...

蓝桥杯备赛日记【day1】(c++赛道)

一、裁纸刀问题&#xff08;2022、规律、思维、省赛&#xff09; 解法思路&#xff1a; 参考题目给出的例子发现。不管要裁剪多少次。最外围的四次是固定的。然后通过观察发现&#xff0c;我们的行的裁剪次数为&#xff08;m-1&#xff09; 次&#xff0c;而每行都需要裁剪列数…...

【大模型基础_毛玉仁】1.4 语言模型的采样方法

【大模型基础_毛玉仁】1.4 语言模型的采样方法 1.4 语言模型的采样方法1.4.1 概率最大化方法1&#xff09;贪心搜索&#xff08;GreedySearch&#xff09;2&#xff09;波束搜索&#xff08;BeamSearch&#xff09; 1.4.2 随机采样方法1&#xff09;Top-K 采样2&#xff09;Top…...

[内网安全] Windows 本地认证 — NTLM 哈希和 LM 哈希

关注这个专栏的其他相关笔记&#xff1a;[内网安全] 内网渗透 - 学习手册-CSDN博客 0x01&#xff1a;SAM 文件 & Windows 本地认证流程 0x0101&#xff1a;SAM 文件简介 Windows 本地账户的登录密码是存储在系统本地的 SAM 文件中的&#xff0c;在登录 Windows 的时候&am…...

基于SNR估计的自适应码率LDPC编译码算法matlab性能仿真,对比固定码率LDPC的系统传输性能

目录 1.算法仿真效果 2.算法涉及理论知识概要 2.1 基于序列的SNR估计 2.2 基于SNR估计值进行码率切换 2.3 根据数据量进行码率切换 3.MATLAB核心程序 4.完整算法代码文件获得 1.算法仿真效果 matlab2022a仿真结果如下&#xff08;完整代码运行后无水印&#xff09;&…...

opencv 模板匹配方法汇总

在OpenCV中&#xff0c;模板匹配是一种在较大图像中查找特定模板图像位置的技术。OpenCV提供了多种模板匹配方法&#xff0c;通过cv2.matchTemplate函数实现&#xff0c;该函数支持的匹配方式主要有以下6种&#xff0c;下面详细介绍每种方法的原理、特点和适用场景。 1. cv2.T…...

Embedding技术:DeepWalkNode2vec

引言 在推荐系统中&#xff0c;Graph Embedding技术已经成为一种强大的工具&#xff0c;用于捕捉用户和物品之间的复杂关系。本文将介绍Graph Embedding的基本概念、原理及其在推荐系统中的应用。 什么是Graph Embedding&#xff1f; Graph Embedding是一种将图中的节点映射…...

微信小程序注册组件

在微信小程序中注册组件分为自定义组件的创建和全局/局部注册&#xff0c;下面为你详细介绍具体步骤和示例。 自定义组件的创建 自定义组件由四个文件组成&#xff0c;分别是 .js&#xff08;脚本文件&#xff09;、.json&#xff08;配置文件&#xff09;、.wxml&#xff08…...

【docker】安装mysql,修改端口号并重启,root改密

我的docker笔记 【centOS】安装docker环境&#xff0c;替换国内镜像 1. 配置镜像源 使用阿里云镜像加速器&#xff0c;编辑/etc/docker/daemon.json sudo mkdir -p /etc/docker sudo tee /etc/docker/daemon.json <<-EOF {"registry-mirrors": ["https:/…...