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

软件设计师(软考学习)

数据库技术

数据库基础知识

1. 数据库中的简单属性、多值属性、复合属性、派生属性
简单属性:指不能够再分解成更小部分的属性,通常是数据表中的一个列。例如学生表中的“学号”、“姓名”等均为简单属性。

多值属性:指一个属性可以有多个值。例如一个学生可能会有多个电话号码,这种情况下“电话号码”就可以被视为是多值属性。

复合属性:是由两个或多个简单属性组合而成的属性。例如:“家庭住址”记录了邮编、省、市、街道信息,则“家庭住址”这个属性就为复合属性。

派生属性:是指其值可以通过其他属性的值计算得出的属性。例如:一个“年龄”属性可以通过当前日期减去“出生日期”属性的值来计算得出。

2. 并发控制中事务的特性(ACID)
原子性(Atomicity):事务是原子的,要么做,要么都不做。

一致性(Consistency):事务执行的结果必须保证数据库从一个一致性状态变到另一个一致性状态。

隔离性(lsolation):事务相互隔离。当多个事务并发执行时,任一事务的更新操作直到其成功提交的整个过程,对其它事物都是不可见的。

持久性(Durability):一旦事务成功提交,即使数据库崩溃,其对数据库的更新操作也永久有效。

事务:由一组数据库操作语句组成的逻辑单位,这些操作要么全部执行成功,要么全部执行不成功。

共享锁:多个事务可以同时持有该锁,用于读取共享资源。在共享锁的情况下,其他事务也可以获取共享锁,但是无法获取排他锁。

排他锁:只有一个事务可以持有该锁,用于更新和修改资源。在数据被施加事务T施加排他锁的情况下,其他事务无法对该数据施加排他锁或共享锁,必须等待事务T释放排他锁。

数据库系统具有三层结构:模式外模式内模式。数据库中的视图对应外模式基本表对应模式存储文件对应内模式

分布式数据库的基本概念

共享性:允许用户共享数据资源。

自治性:数据库拥有自主管理的能力。

分布性:数据可以分布在不同的物理节点上。

可用性:即使某些节点或网络发生故障,系统依旧可用。

分片透明是指用户或应用程序无需关注数据的分片(分块或分割)存储细节,可以像访问单一数据源一样访问和操作分布在不同节点上的数据。系统会自动处理这些存储细节。

复制透明是指用户和应用程序无需关注数据的副本,系统会自动将数据的副本在不同节点之间进行同步和管理。

位置透明是指用户或应用程序无需关注数据存储在哪个节点,可以像访问本地数据一样访问和操作数据。系统自动会将数据存储在最近或最适合的节点上,以提供低延迟和高性能。

逻辑透明是指用户或应用程序无需关注局部数据模型的物理布局和结构,可以像访问逻辑数据模型一样访问和操作数据。系统会自动将数据映射到物理存储上,并提供逻辑和物理数据模型之间的转换,以提供更高级别的抽象和灵活性。

Data Extraction(数据提取)工具是指从一个或多个数据源中抽取数据的过程。

OLAP(Online Analytical Processing,在线分析处理)是一种在多维数据集上进行非结构化、多维分析的技术和方法。

OLTP(Online Transaction Processing,在线事务处理)是一种用于处理和管理实时事务的技术

ETL(Extraction & Transformation & Loading,抽取&转换&载入)常用于将数据从多个源系统中抽取、转换和加载到目标系统中。

COM全称为Component Object Model(组件对象模型)。COM是一种基于二进制接口的软件组件技术,用于实现在不同软件之间进行交互和通信。

CGI全称为Common Gateway Interface(通用网关接口)。CGI是一种标准的网络协议,用于在Web服务器和应用程序之间进行通信和数据交换。

DBA(Database Administrator,数据库管理员)

DBMS(Database Management System,数据库管理系统)

数据库设计主要分为用户需求分析、概念结构、逻辑结构和物理结构设计四个阶段。

需求分析阶段:整理出需求说明文档、数据字典和数据流程图。

概念结构阶段:整理出实体-联系模型(ER图)

逻辑结构设计(逻辑模型设计)阶段:概念模型在这一阶段被转换为符合特定数据库管理系统(如MySQL、Oracle、SQL Server等)的逻辑模型,通常为关系模型。

物理结构设计(物理模型设计)阶段:在这一阶段,设计数据库的物理存储结构,即如何将数据有效地存储到物理磁盘中,包括表空间、索引设计、分区方案等。

日志文件:记录系统、应用程序或事件的操作、错误、状态等信息的文件。系统在进行事务处理时,对数据的插入、删除或修改的全部有关内容先写入日志文件

数据文件:用来存储和组织数据的文件。在数据库中,数据文件通常用来存储表、索引、视图和其他数据库对象的实际数据。

索引文件:数据库中用于提高数据检索速度的一种数据结构。

语义冲突指的是在系统中存在两个或多个不一致的事物、规则或约束条件之间的冲突或矛盾。

结构冲突是指在系统中存在不一致的数据结构或数据模型之间的冲突或矛盾。

属性冲突是指在系统中存在不同实体或对象之间的属性定义或使用上的冲突或矛盾。它通常发生在软件开发、系统集成或数据集成等过程中。

E-R模型

选取候选关键字

例:关系模式R(U,F),其中U={A,B,C,D,E},F={A→B,DE→B,CB→E,E→A,B→D},现在假设{CE}是候选关键字,计算CE的闭包,即(CE)+。

解:

第一步:令X={CE},X(0)=CE。

第二步:求X(1)。逐一扫描F集合中各个函数依赖,在F中找出左边是CE子集的函数依赖,其结果是:E→A。这时,F中这两个函数依赖要打上标记(我通常是打上√,表示已经用过,后面不能用了)。于是X(1)=CE∪A=ACE;

第三步:判断X(1)是否等于 X(0)以及 X(1)是否等于 U。

在这里,X(1)≠ X(0),且X(1)≠ U,所以在F中继续找出左边是ACE子集的函数依赖,其结果是:A→B。同样打上标记。于是X(2)=ACE∪B=ABCE。(这里有一个注意点,∪右边的元素只写左边没有的)

继续判断,虽然X(2)≠ X(1),且X(2)≠ U,所以在F中继续找出左边是ABCE子集的函数依赖,其结果是:B→D。同样打上标记。于是X(3)=ABCE∪D=ABCDE。此时,X(3)=U,因此,结束闭包运算。然后,也因为X(3)=U,所以,{CE}是候选关键字。

还有一个解法就是会发现题目中的函数依赖没有可以推出某个属性(例如上题中的C)的依赖,所以候选关键字中必定会含有该属性C。

无损连接

例题:

解:

相关文章:

软件设计师(软考学习)

数据库技术 数据库基础知识 1. 数据库中的简单属性、多值属性、复合属性、派生属性简单属性:指不能够再分解成更小部分的属性,通常是数据表中的一个列。例如学生表中的“学号”、“姓名”等均为简单属性。 多值属性:指一个属性可以有多个值…...

第一讲:Go语言开发入门:环境搭建与基础语法

文章目录 环境搭建windows环境搭建Mac环境搭建安装GO使用 Homebrew 安装 Go手动下载安装 Go 配置环境变量配置环境变量检查 Go 是否正确安装 验证安装:编写第一个 Go 程序创建 Go 工作区编写 Hello World 程序运行程序编译程序 常用的 Go 命令 Go语言基础语法1. 变量…...

Linux CentOS stream9配置本地yum源

在Linux系统中,yum源配置是一个重要的环节。把系统安装时配置的国外yum源转换为国内yum源,能够帮助系统快速安装软件包。对于网络环境不稳定或无法联网的系统,配置本地yum源,可以让用户在离线状态下也能进行软件包的安装,十分重要。 一、国内源 在使用Linux的日常工作中…...

std::string

std::string是C标准库中的一个基本类模板,专门用于处理字符串。它提供了一个可变长度的字符序列,以及一系列用于字符串操作的方法。std::string是值类型,这意味着当它作为函数参数传递或赋值时,整个字符串数据会被复制。 std::st…...

【Docker】03-自制镜像

1. 自制镜像 2. Dockerfile # 基础镜像 FROM openjdk:11.0-jre-buster # 设定时区 ENV TZAsia/Shanghai RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone # 拷贝jar包 COPY docker-demo.jar /app.jar # 入口 ENTRYPOINT ["ja…...

Java GC 分类,8和9使用的哪种?

Java的垃圾收集器(Garbage Collector, GC)负责自动管理内存,回收不再使用的对象所占用的空间。随着JVM的发展,出现了多种不同特性的垃圾收集器来适应不同的应用场景和性能需求。在Java 8中,主要有以下几种垃圾收集器&a…...

【Docker从入门到进阶】01.介绍 02.基础使用

1. 介绍 1.1. 什么是 Docker Docker 是一个开源的平台,用于开发、发布和运行应用程序。它使开发者能够以更精简的方式封装应用及其依赖,做到“打包一次,到处运行”。通过 Docker,您可以创建轻量级、可移植的容器,每个…...

GraphRAG-Local-UI - 基于 GraphRAG 支持本地的聊天UI

文章目录 一、关于 GraphRAG-Local-UI 🕸️特点🌟🗺️路线图最近更新即将推出的功能 二、📦安装和设置三、使用入门🚀1、创建索引目录2、添加示例数据(可选)3、初始化索引文件夹4、配置设置5、定…...

Java 根据字符生成背景透明的图片

上代码 package com.example.demotest.controller;/*** Author shaolin* Date 2024-10-08 10:11**/import javax.imageio.ImageIO; import java.awt.*; import java.awt.image.BufferedImage; import java.awt.image.ColorModel; import java.awt.image.WritableRaster; impor…...

树莓派3b安装ubuntu18.04服务器系统server配置网线连接

下载ubuntu镜像网址 img镜像,即树莓派官方烧录器使用的镜像网址 ubuntu18.04-server:ARM/RaspberryPi - Ubuntu Wiki 其他版本:Index of /ubuntu/releases 下载后解压即可。 发现使用官方烧录器烧录配置时配置wifi无论如何都不能使用&am…...

【AIGC】2022-NIPS-视频扩散模型

2022-NIPS-Video Diffusion Models 视频扩散模型摘要1. 引言2. 背景3. 视频扩散模型3.1. 重建引导采样以改进条件生成 4. 实验4.1. 无条件视频建模4.2. 视频预测4.3. 文本条件视频生成4.3.1 视频与图像建模的联合训练4.3.2 无分类器指导的效果4.3.3 更长序列的自回归视频扩展 5…...

从零开始构建:Python自定义脚本自动化你的日常任务

从零开始构建:Python自定义脚本自动化你的日常任务 Python 作为一种简洁且功能强大的编程语言,被广泛应用于各种自动化任务中。通过编写 Python 脚本,你可以轻松地将日常重复性工作自动化,例如文件操作、数据处理、网络爬虫、系统…...

【python实操】python小程序之对象的属性操作

引言 python小程序之对象的属性操作 文章目录 引言一、对象的属性操作1.1 题目1.2 代码1.3 代码解释 二、思考2.1 添加属性2.2 获取属性 一、对象的属性操作 1.1 题目 给对象添加属性 1.2 代码 class Cat:# 在缩进中书写⽅法def eat(self):# self 会⾃动出现,暂不管print(f…...

HCIP——网络类型及数据链路层协议

目录 网络类型的分类 数据链路层协议 MA网络 以太网协议 P2P网络 HDLC---高级数据链路控制协议 HDLC网络搭建 PPP---点到点协议 PPP协议的优点 PPP数据帧封装结构​编辑 PPP会话的搭建 路建立阶段---LCP建立 认证阶段 PAP CHAP 网络层协议协商阶段---NCP协商 网…...

数据结构——栈与队列的实现(全码)

一 栈的概念 栈是一种特殊的线性表,栈内数据遵循先进后出(LIFO)的原则,对于栈,只能在同一侧进行入栈和出栈操作。 入栈操作和出栈操作是在栈的同一侧进行的,如图示: 对于栈这种数据类型,我们可以采用链表或…...

MacOS编译和安装Poco库的方法

1.从官网git下载最新的poco源代码 在/usr/local路径下创建Poco文件夹,克隆Poco源代码 sudo git clone -b poco-1.13.3-release https://github.com/pocoproject/poco.git2.等了一会后,报错啦!!! error: RPC failed…...

医院管理新境界:Spring Boot技术突破

6系统测试 6.1概念和意义 测试的定义:程序测试是为了发现错误而执行程序的过程。测试(Testing)的任务与目的可以描述为: 目的:发现程序的错误; 任务:通过在计算机上执行程序,暴露程序中潜在的错误。 另一个…...

Docker 环境下 MinIO 监控实战:通过 Prometheus 实现集群与桶级别性能监控

Docker 环境下 MinIO 监控实战:通过 Prometheus 实现集群与桶级别性能监控 文章目录 Docker 环境下 MinIO 监控实战:通过 Prometheus 实现集群与桶级别性能监控一 获取 prometheus 配置二 配置的内容三 prometheus 的配置1)集群级别的指标2&a…...

渗透测试入门学习——使用python脚本自动跟踪csrf_token实现对网站登录界面的暴力破解

目录 写在前面 使用方法 相关代码 写在前面 最近在学习使用Burp Suite时发现其intruder模块无法实现多种模式的混合使用,就如想要暴力破解账号和口令两个区域并同时跟踪网页的csrf_token时BP似乎不能很方便的实现这一功能,于是自己在练习时就想到了用…...

stc8最小系统使用usb下载程序,关于断电的避坑

首先,按stc官方的原理图做好最小系统。 下面,来看一下stc手册中的操作步骤 USB-ISP 下载程序步骤: 1、按下板子上的 P3.2/INT0 按键,就是 P3.2 接地 2、给目标芯片重新上电,不管之前是否已通电。 电子开关是按下停电后…...

【Axure高保真原型】引导弹窗

今天和大家中分享引导弹窗的原型模板,载入页面后,会显示引导弹窗,适用于引导用户使用页面,点击完成后,会显示下一个引导弹窗,直至最后一个引导弹窗完成后进入首页。具体效果可以点击下方视频观看或打开下方…...

iOS 26 携众系统重磅更新,但“苹果智能”仍与国行无缘

美国西海岸的夏天,再次被苹果点燃。一年一度的全球开发者大会 WWDC25 如期而至,这不仅是开发者的盛宴,更是全球数亿苹果用户翘首以盼的科技春晚。今年,苹果依旧为我们带来了全家桶式的系统更新,包括 iOS 26、iPadOS 26…...

Lombok 的 @Data 注解失效,未生成 getter/setter 方法引发的HTTP 406 错误

HTTP 状态码 406 (Not Acceptable) 和 500 (Internal Server Error) 是两类完全不同的错误,它们的含义、原因和解决方法都有显著区别。以下是详细对比: 1. HTTP 406 (Not Acceptable) 含义: 客户端请求的内容类型与服务器支持的内容类型不匹…...

el-switch文字内置

el-switch文字内置 效果 vue <div style"color:#ffffff;font-size:14px;float:left;margin-bottom:5px;margin-right:5px;">自动加载</div> <el-switch v-model"value" active-color"#3E99FB" inactive-color"#DCDFE6"…...

Spring AI 入门:Java 开发者的生成式 AI 实践之路

一、Spring AI 简介 在人工智能技术快速迭代的今天&#xff0c;Spring AI 作为 Spring 生态系统的新生力量&#xff0c;正在成为 Java 开发者拥抱生成式 AI 的最佳选择。该框架通过模块化设计实现了与主流 AI 服务&#xff08;如 OpenAI、Anthropic&#xff09;的无缝对接&…...

RabbitMQ入门4.1.0版本(基于java、SpringBoot操作)

RabbitMQ 一、RabbitMQ概述 RabbitMQ RabbitMQ最初由LShift和CohesiveFT于2007年开发&#xff0c;后来由Pivotal Software Inc.&#xff08;现为VMware子公司&#xff09;接管。RabbitMQ 是一个开源的消息代理和队列服务器&#xff0c;用 Erlang 语言编写。广泛应用于各种分布…...

给网站添加live2d看板娘

给网站添加live2d看板娘 参考文献&#xff1a; stevenjoezhang/live2d-widget: 把萌萌哒的看板娘抱回家 (ノ≧∇≦)ノ | Live2D widget for web platformEikanya/Live2d-model: Live2d model collectionzenghongtu/live2d-model-assets 前言 网站环境如下&#xff0c;文章也主…...

华为OD机试-最短木板长度-二分法(A卷,100分)

此题是一个最大化最小值的典型例题&#xff0c; 因为搜索范围是有界的&#xff0c;上界最大木板长度补充的全部木料长度&#xff0c;下界最小木板长度&#xff1b; 即left0,right10^6; 我们可以设置一个候选值x(mid)&#xff0c;将木板的长度全部都补充到x&#xff0c;如果成功…...

数据结构:递归的种类(Types of Recursion)

目录 尾递归&#xff08;Tail Recursion&#xff09; 什么是 Loop&#xff08;循环&#xff09;&#xff1f; 复杂度分析 头递归&#xff08;Head Recursion&#xff09; 树形递归&#xff08;Tree Recursion&#xff09; 线性递归&#xff08;Linear Recursion&#xff09;…...

嵌入式学习之系统编程(九)OSI模型、TCP/IP模型、UDP协议网络相关编程(6.3)

目录 一、网络编程--OSI模型 二、网络编程--TCP/IP模型 三、网络接口 四、UDP网络相关编程及主要函数 ​编辑​编辑 UDP的特征 socke函数 bind函数 recvfrom函数&#xff08;接收函数&#xff09; sendto函数&#xff08;发送函数&#xff09; 五、网络编程之 UDP 用…...