软件设计师(软考学习)
数据库技术
数据库基础知识
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、给目标芯片重新上电,不管之前是否已通电。 电子开关是按下停电后…...

API 数据接口:使用操作流程与安全指南
在当今数字化高速发展的时代,API 数据接口如同构建数字世界的关键纽带,将不同的软件系统和服务紧密连接在一起。无论是企业开发者致力于提升业务效率,还是个人用户追求更便捷的数字体验,深入了解 API 数据接口的使用操作流程以及全…...

elasticsearch 8.2 版本如何设置config/elasticsearch.yml
在Elasticsearch 8.2版本中,`config/elasticsearch.yml`文件是用于配置Elasticsearch的主要配置文件。你可以通过编辑这个文件来设置各种配置选项。以下是一些常见的配置选项及其设置方法: ### 1. 基本配置 #### 集群名称 ```yaml cluster.name: my-cluster ``` #### 节点…...

华为 HCIP-Datacom H12-821 题库 (33)
🐣博客最下方微信公众号回复题库,领取题库和教学资源 🐤诚挚欢迎IT交流有兴趣的公众号回复交流群 🦘公众号会持续更新网络小知识😼 1.VLAN Pool 只要通过一个 SSID 就能够同时支持多个业务 VLAN,从而缩小广播域&#…...

【网络篇】计算机网络——运输层详述(笔记)
目录 一、运输层 1. 概述 2. 运输层和网络层的关系 3. 运输层协议概述 二、多路复用和多路分解 1. 综述 2. 无连接的多路复用与多路分解(UDP) 3. 面向连接的多路复用与多路分解(TCP) 4. Web 服务器与TCP 三、UDP&#x…...

用java编写飞机大战
游戏界面使用JFrame和JPanel构建。背景图通过BG类绘制。英雄机和敌机在界面上显示并移动。子弹从英雄机发射并在屏幕上移动。游戏有四种状态:READY、RUNNING、PAUSE、GAMEOVER。状态通过鼠标点击进行切换:点击开始游戏(从READY变为RUNNING&am…...

java Map中get方法爆错NullPointerException
代码如下: public class Hello {public static void main(String[] args) {Map<Integer,Integer> map new HashMap<>();map.put(2,1);int i map.get(1); System.out.println(i);} }运行出错,看代码很明显是get到一个不存在map的值&#x…...

ElasticSearch备考 -- Multi field
一、题目 Create the index hamlet_2 with one primary shard and no replicas Copy the mapping of hamlet_1 into hamlet_2, but also define a multi-field for speaker. The name of such multi-field is tokens and its data type is the (default) analysed string Reind…...

刷题 图论
面试经典 150 题 - 图 200. 岛屿数量 dfs 标记 visited class Solution { public:// dfs 染色const int direction[4][2] {{-1, 0}, {0, -1}, {1, 0}, {0, 1}};void dfs(vector<vector<char>>& grid, vector<vector<bool>>& visited, int x…...

基于JAVA的鲜花商城管理系统(源码+定制+讲解)鲜花商城管理系统、鲜花商城管理平台、鲜花商城信息管理、鲜花商城系统开发与应用、鲜花在线商城管理系统
博主介绍: ✌我是阿龙,一名专注于Java技术领域的程序员,全网拥有10W粉丝。作为CSDN特邀作者、博客专家、新星计划导师,我在计算机毕业设计开发方面积累了丰富的经验。同时,我也是掘金、华为云、阿里云、InfoQ等平台…...

深圳大学-Java程序设计-选实验1 基础知识练习
实验目的与要求: 实验目的:掌握Java程序设计开发环境的搭建,编写简单Java Project,掌握编译、运行等基本步骤和命令。 实验要求: (1).下载、安装"Java SE Development Kit 20.0.2"最新的版本,需…...