2024软件设计师备考讲义——(7)

数据库技术

一、数据库基础

1.数据库系统

  • DB、DBS、DBA、DBMS

2.三级模式两级映像

  • 内模式

    • 物理存储
  • 概念模式

    • 基本表
  • 外模式

    • 用户使用应用程序,视图级别
  • 外模式-概念模式的映像

    • 表和视图之间的映射
    • 若表中数据变化,只要修改映射,不用改程序
  • 概念模式-内模式的映像

    • 表和物理数据之间的映射
    • 若改了数据存储方式,只要改映射,不用改程序

3.数据库设计

  • 需求分析:数据流图、数据字典、需求说明书(文档)
  • 概念结构设计:E-R图
  • 逻辑结构设计:将E-R图转换成关系模式
  • 物理设计

4.数据模型

  • 三要素:数据结构、数据操作、数据的约束条件
  • E-R图:椭圆形(属性)、长方形(实体)、菱形(联系)、连线
  • 联系分类:1对1、1对多、多对多

5.关系代数

表与表的逻辑运算

  • 笛卡尔积RxS
  • 投影
  • 选择
  • 自然连接
    • 显示全部列,重复只显示一次
    • 显示所有属性相同且值相同的记录
  • RxS与自然连接的等价关系表达式
    • π投影列,σ选择行的条件,∧并且,∪或者

二、规范化和并发控制

1.函数依赖

  • A-->B A决定B,B依赖于A
  • 部分依赖
  • 传递依赖
  • 依赖公理

2.键与约束

  • 超键:能唯一标识此表的属性组合
  • 候选键:超键中去掉冗余属性,剩下的
  • 主键:在候选键中任选一个
  • 外键:其他表中的主键
  • 主属性:候选键中的属性为主属性,其他属性为非主属性
  • 实体完整性:主键
  • 参照完整性:外键
  • 自定义完整性:自定义表达式约束

3.范式

  • 第一范式1NF
  • 第二范式2NF,消除非主属性对于主属性的部分依赖
  • 第三范式3NF,消除传递依赖
  • BC范式BCNF,进一步消除主属性对于码的部分依赖和传递依赖

    每种情况每个依赖的左边决定因素都必然包含候选键

4.模式分解

  • 保持依赖的分解
    • 分解出来的多个关系模式保持原来的依赖集不变(要消除冗余依赖)
  • 无损分解
    • 分解后的关系模式能够还原出原关系模式
    • 对于两个关系模式的分解则有 R1∧R2 -> (R1-R2)或(R2-R1)

5.并发控制

  • 事务的特性:原子性、一致性、隔离性、持久性
  • 并发控制的问题:丢失更新、不可重复读、读脏数据

6.封锁协议

  • 排他锁X(写锁)
    • 不可再加其他任何锁
  • 共享锁S(读锁)
    • 可以继续加共享锁,不可加排他锁
  • 三级封锁协议

三、数据库新技术

1.数据库安全

  • 措施

    • 用户标识和鉴定
    • 存取控制(各种权限授权)
    • 密码存储的传输(远程终端信息)
    • 视图保护(视图授权)
    • 审计(记录操作)
  • 故障与解决

    • 事务本身可预期故障,在程序中预设rollback语句
    • 事务本身不可预期故障,通过日志恢复撤销事务
    • 系统故障,停止运转,检查点法
    • 介质故障,使用日志重做业务
  • 备份

    • 静态转储(冷备份),停机
    • 动态转储(热备份),不停机
    • 完全备份、差量备份、增量备份

2.分布式数据库

3.数据仓库

  • 面向主题、集成的、非易失的(稳定)、随时间变化(历史变化)的数据集合
  • 结构层次:数据源、数据的存储和管理、OLAP(联机分析处理)服务器、前端工具
  • 商业智能BI
    • 数据预处理ETL
    • 建立数据仓库
    • 数据分析
    • 数据展现

4.反规范化技术

  • 含义
    • 牺牲规范化来提高性能
    • 好处:降低连接操作的需求、降低外码索引数目,减少表,提高查询效率
    • 问题:数据重复存储,浪费磁盘空间;数据完整性问题;增加维护复杂性,降低修改速度
  • 具体方法
    • 增加冗余列
    • 增加派生列
    • 重新组表
    • 水平分割表
    • 垂直分割表

5.大数据

  • 特点:大量化、多样化、价值密度低、快速化
  • 与传统数据对比
    比较维度传统大数据
    数据量GB或TBPB或以上
    分析需求现有数据分析检测深度分析(关联分析/回归分析)
    硬件平台普通/高端服务器集群平台
  • 大数据处理系统特征
    • 高可扩展、高性能、高容错
    • 持异构环境、较短分析延迟
    • 易用且开放接口
    • 成本较低、向下兼容性

四、SQL语言

DDL

  • 建表
  • 删表
  • 修改表
  • 建索引
  • 建视图

DML

  • 插入
  • 删除
  • 修改/更新

DQL

  • 条件查询
  • 连接查询
  • 聚合函数查询

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

vue使用el-upload上传,上传错误文件,名称还会显示

vue使用el-upload上传&#xff0c;上传错误文件&#xff0c;名称还会显示 背景&#xff1a;上传不符合后缀的文件&#xff0c;但是还是在页面中显示&#xff0c;使用的是http-request方法 代码&#xff1a; <el-upload multiple class"avatar-uploader" action…

【八股03.29】

【八股03.29】 1.内存泄漏&#xff1f;野指针&#xff1f;悬挂指针&#xff1f; 什么是内存泄漏&#xff1f; 内存泄漏是指程序运行过程中申请的动态分配的堆内存没有被释放&#xff0c;造成系统内存浪费&#xff0c;运行速度减慢甚至崩溃等严重后果。 如何避免&#xff1f;…

DARTS-PT: RETHINKING ARCHITECTURE SELECTION IN DIFFERENTIABLE NAS

Rethinking Architecture Selection in Differentiable NAS 论文链接&#xff1a;https://arxiv.org/abs/2108.04392v1 项目链接&#xff1a;https://github.com/ruocwang/darts-pt ABSTRACT 可微架构搜索(Differentiable Neural Architecture Search, NAS)是目前最流行的网…

光耦合器电路基本概述

在当今快速发展的技术环境中&#xff0c;光耦合器电路在确保电信号跨隔离电路的无缝传输方面发挥着关键作用。这些半导体器件通常被称为光电隔离器&#xff0c;具有许多优点&#xff0c;包括电路隔离、信号传输和精确的电路控制。然而&#xff0c;如果不全面了解市场上各种光耦…

Python批量提取pdf首页并合并为一个文件

前情提要&#xff1a;python安装pypdf2包 pip install pypdf2 第一种&#xff1a;既需要每一个单独的首页&#xff0c;也需要将首页合并。 整体操作思路&#xff0c;将文件夹下面原本的每一个pdf获取第一页&#xff0c;然后再写出&#xff0c;将其放在FirstPage文件夹下。再…

Verilog语法之always语句学习

always语法是Verilog_HDL中最常用的一种语法。 always过程语句和语句块组成的&#xff0c;语法格式如下所示。 always(敏感信号1 or 敏感信号2.....) always实现组合逻辑和时序逻辑。用always实现组合逻辑要将所有的敏感信号加入敏感列表中&#xff1b;用always实现时序逻辑时…

vue 窗口内容滚动到底部

onMounted(() > {scrollToBottom() }) // 滚动到底部方法 const scrollToBottom () > {// 获取聊天窗口容器let chatRoom: any document.querySelector(".chat-content");// 滚动到容器底部chatRoom.scrollTop chatRoom.scrollHeight; } 效果 聊天窗口代码…

aeon,一个好用的 Python 库!

更多Python学习内容&#xff1a;ipengtao.com 大家好&#xff0c;今天为大家分享一个好用的 Python 库 - aeon Github地址&#xff1a;https://github.com/aeon-toolkit/aeon 在现代计算机科学和人工智能领域&#xff0c;处理时间序列数据是一个重要而复杂的任务。Python aeon库…

npm install 报错ERESOLVE unable to resolve dependency tree

描述&#xff1a;npm install 报错ERESOLVE unable to resolve dependency tree 解决方案&#xff1a; npm install --legacy-peer-deps

深入MNN:开源深度学习框架的介绍、安装与编译指南

引言 在人工智能的世界里&#xff0c;深度学习框架的选择对于研究和应用的进展至关重要。MNN&#xff0c;作为一个轻量级、高效率的深度学习框架&#xff0c;近年来受到了众多开发者和研究人员的青睐。它由阿里巴巴集团开源&#xff0c;专为移动端设备设计&#xff0c;支持跨平…

gateway 分发时若两个服务的路由地址一样,怎么指定访问想要的服务下的地址

1.思路 在使用Spring Cloud Gateway时&#xff0c;如果两个服务的路由地址相同&#xff0c;可以通过Predicate&#xff08;断言&#xff09;和Filter&#xff08;过滤器&#xff09;的组合来实现根据请求的不同条件将请求分发到不同的服务下的地址。 使用Predicate进行路由条件…

sync包常用并发安全数据结构

sync.WaitGroup 使用 sync.WaitGroup用于等待一组goroutine完成。Add方法设置计数器&#xff0c;Done方法减少计数器&#xff0c;Wait方法阻塞直到计数器为0。 package mainimport ("fmt""sync""time" )func worker(id int, wg *sync.WaitGroup…

Hive窗口函数笔试题(面试题)

Hive笔试题实战 短视频 题目一&#xff1a;计算各个视频的平均未完播率 有用户-视频互动表tb_user_video_log&#xff1a; id uid video_id start_time end_time if_follow if_like if_retweet comment_id 1 101 2001 2021-10-01 10:00:00 2021-10-01 10:00:30…

使用mysql官网软件包安装mysql

确定你的操作系统&#xff0c;我的是Centos myqsl 所有安装包的地址&#xff1a;https://repo.mysql.com/yum/ 如果你是使用rpm安装你可以到对应的版本里面找到对应的包。 mysql 发行包的地址&#xff1a;http://repo.mysql.com/ 在这里你可以找到对应的发布包安装。 这里使用y…

TCP/IP 网络模型有哪几层?(计算机网络)

应用层 为用户提供应用功能 传输层 负责为应用层提供网络支持 使用TCP和UDP 当传输层的数据包大小超过 MSS&#xff08;TCP 最大报文段长度&#xff09; &#xff0c;就要将数据包分块&#xff0c;这样即使中途有一个分块丢失或损坏了&#xff0c;只需要重新发送这一个分块…

【2】单链表

【2】单链表 1、单链表2、单链表的设计3、接口设计4、SingleLinkedList5、node(int index) 返回索引位置的节点6、clear()7、添加8、删除9、indexOf(E element) 1、单链表 &#x1f4d5;动态数组有个明显的缺点 &#x1f58a; 可能会造成内存空间的大量浪费 &#x1f4d5; 能否…

基于pear-admin-flask 的 flask 使用教程

我最近接触到了一个极为出色的Flask后台库——pear-admin-flask&#xff0c;这个库具有很高的二次开发价值。借此机会学习并吸收其中Flask开发的一些高级技巧。 1. flask 自定义命令 pear-admin-flask/applications/common/script/admin.py from flask.cli import AppGroup …

CUDA从入门到放弃(十四):CUDA Thrust库

CUDA从入门到放弃&#xff08;十四&#xff09;&#xff1a;CUDA Thrust库 Thrust 是一个基于标准模板库&#xff08;STL&#xff09;的 C 模板库&#xff0c;专为 CUDA 设计&#xff0c;旨在简化高性能并行应用的开发。它提供了一系列数据并行原语&#xff0c;如扫描、排序和…

vue基础教程(4)——十分钟吃透vue路由router

同学们可以私信我加入学习群&#xff01; 正文开始 前言一、路由概念二、路由使用三、创建路由对应的组件四、给整个项目一个入口总结 前言 前面的文章运行成功后&#xff0c;页面显示如下&#xff1a; 在这个页面中&#xff0c;点击Home和About都会切换右面的页面内容&#…

《责任链模式(极简c++)》

本文章属于专栏- 概述 - 《设计模式&#xff08;极简c版&#xff09;》-CSDN博客 模式说明 方案&#xff1a; 责任链模式将请求的发送者和接收者解耦&#xff0c;构成一个链条&#xff0c;并由多个对象对请求进行处理&#xff0c;直到找到合适的处理者为止。优点&#xff1a; …