首页 > 数据库 >软件设计师全套备考系列文章15 -- 数据库:规范化、控制功能、大数据

软件设计师全套备考系列文章15 -- 数据库:规范化、控制功能、大数据

时间:2024-08-27 13:51:44浏览次数:10  
标签:候选 BCNF 依赖 15 -- 3NF 备考 属性

软考-- 软件设计师(15)-- 数据库:规范化、控制功能、大数据


文章目录


前言

考试时间:每年5月、11月,软件设计师每年都会开考。
考试条件:三不限
考试形式: 一共两门
	计算机于软件工程基本知识--120分钟--机考--选择题--75分(45及格)
	软件设计--120分钟--机考--简答题(4道必做,1道二选一做)--75分(45及格)
	两门都得一次性及格才算通过,一共4小时考试时间。

软件行业从事人员学习视频:https://www.bilibili.com/video/BV1Qc411G7fB?vd_source=d82c92f6c1fd8c6785c6b557a68cb7b3

推荐博客:http://t.csdnimg.cn/5VzY5
推荐bilibli博主:zst_2001

由于本人从事软件开发4年,有一定的基础,所以本系列博客笔记皆从于第一个视频记录笔记。

一、章节考点

在这里插入图片描述

二、规范化

这边博主讲的有点乱,我自己整一下:
	推荐博客:http://t.csdnimg.cn/JkKBn
	

	候选键:关系中的一个属性组,其值能唯一标识一个元组。若从属性组中去掉任何一个属性,它就不具有这一性质了,这样的属性组称作
		候选键。例如:成绩(学号,课程号,成绩),其中候选键为(学号,课程号),去除其中任意一个都无法唯一标识这个元组。
	主属性:任何一个候选键中的属性称作主属性。(请记住这个概念)
	主键:用户从一个关系的多个候选键中,选定一个作为老大,就是主键。
	键 :也叫 码,英文key,其实表示的就是候选键,有些题目或者讲解说的 键/码,直接理解为候选键就行了。

	函数依赖:属性X-->Y,也就是属性X决定Y,则Y函数依赖X,简称Y依赖X;
	部分函数依赖:属性X-->Y,属性XZ-->Y,说明Y不完全依赖于X,则称Y部分依赖X;
		这里要区分1NF转为2NF:在1NF基础上,消除 【非主属性】 对 【候选键】 的部分依赖,则称它符合2NF。
	传递函数依赖:属性X-->Y、Y-->Z,则称作存在传递依赖。
		这里要区分2NF转为3NF:在2NF基础上,消除 【非主属性】 对 【候选键】 的传递依赖,则称它符合3NF。
		
	决定因素:属性X-->Y,则X为决定因素。属性XZ-->Y,则XZ为决定因数。

	1NF:关系中每一属性不可再分。即不能以集合、序列等作为属性。(也就是不能表中套表,要保证数据的原子性。)
	2NF:在1NF基础上,消除 【非主属性】 对 【候选键】 的部分依赖。
	3NF:在2NF基础上,消除 【非主属性】 对 【候选键】 的传递依赖。
	BCNF:在3NF基础上,消除【主属性】对键的【传递依赖】,则称它符合BCNF。根据参考博客理解为:对于关系模式R,如果每一个
		函数依赖的【决定因素】都包含【候选键】,则R属于BCNF范式。
		ex:
		现有关系模式:通讯(城市名,街道名,邮政编码),函数依赖关系集为:F={(城市名,街道名)->邮政编码,邮政编码->城市名},
		此时,候选键(城市名,街道名)非主属性邮政编码完全依赖于候选键,且无传递依赖,属于3NF。
		那么它是否属于BCNF呢?
		答:不属于
		解析: 对于决定因素(城市名,街道名),它包含键(城市名,街道名),其实它本身就是键了,没问题;
			  对于决定因素邮政编码,它不包含键(城市名,街道名)
			  所以它不属于BCNF。在关系模式R中,如果每一个决定因素都包含码,则R属于BCNF。

常考题解题思路:
	1、求候选码、主属性?
		1)、将函数依赖集用有向图表示;
		2)、找入度为0的属性,并且以该属性为起点,尝试遍历有向图所有节点,若能则该属性为此关系模式的一个候选键;
		3)、若入度为0的属性无法遍历图中的所有节点,则将中间节点(既有入度,也有出度)的加入集合进来,直至该集合能遍历所有节点
		Tips:入度为0的点,要不就直接是候选键,要不就是候选键集合中的一个值。
	2、判断关系范式X是哪个规范?
		1)、如果关系X中每一属性不可再分,则其可能是1NF,2NF,3NF,BCNF。
		2)、找出题中所有的候选键;找出所有的主属性;
		3)、看看函数依赖集中是否存在【非主属性】对【候选键】的【部分函数依赖】;若存在,则说明X为1NF,否则可能是2NF,3NF,
		BCNF。
		4)、看看函数依赖集中是否存在【非主属性】对【候选键】的【传递函数依赖】;若存在,则说明X为2NF,否则可能是3NF,BCNF;
		5)、看看函数依赖集中是否存在【主属性】对【候选键】的【传递函数依赖】若存在,则说明X为3NF,否则是BCNF;(就是看看每
		一个函数依赖的【决定因素】是否都包含【候选键】,都包含是BCNF,否则3NF);
		
	3、1NF规范化为2NF?
		1)、找出题中所有的候选键;找出所有的主属性;
		2)、看看函数依赖集中是否存在【非主属性】对【候选键】的【部分函数依赖】;若存在则将这个【部分函数依赖】拆开来
	4、2NF规范化为3NF?
		1)、找出题中所有的候选键;找出所有的主属性;
		2)、看看函数依赖集中是否存在【非主属性】对【候选键】的【传递函数依赖】;若存在则将这个【传递函数依赖】拆开来
	4、3NF规范化为BCNF?
		1)、找出题中所有的候选键;找出所有的主属性;
		2)、看看函数依赖集中是否存在【主属性】对【候选键】的【传递函数依赖】;若存在则将这个【传递函数依赖】拆开来

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

三、数据库的控制功能

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

四、大数据、数据仓库

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

标签:候选,BCNF,依赖,15,--,3NF,备考,属性
From: https://blog.csdn.net/weixin_44399264/article/details/141588179

相关文章

  • 电机控制MTPA_弱磁_MTPV
    MTPA_弱磁_MTPV概念:MTPA:(恒转矩区)最大扭矩电流比,即产生相同扭矩所需要的最小电流,作用是减少电机的铜损以及逆变器传导损耗弱磁:(弱磁一区)通过减小Id电流来减小磁链,减小反电势,从而得到更大的电压调节空间MTPV:(弱磁二区)最大扭矩电压比,最小的电压产生最大的扭矩,相当于深度......
  • 如何使用TensorFlow构建AI模型
    TensorFlow已成为构建机器学习模型最受欢迎的框架之一。无论你是初学者还是经验丰富的数据科学家,了解如何使用TensorFlow构建AI模型对充分利用机器学习的潜力至关重要。本指南将引导你逐步创建TensorFlowAI模型,从基础知识到更高级的概念,确保你拥有坚实的基础。了解Te......
  • 软件设计师全套备考系列文章12 -- 计算机网络基础
    软考--软件设计师(12)--计算机网络基础文章目录软考--软件设计师(12)--计算机网络基础前言一、章节考点二、网络分类三、七层网络协议结构四、TCP/IP五、IP协议前言考试时间:每年5月、11月,软件设计师每年都会开考。考试条件:三不限考试形式:一共两门 计算机于软......
  • 顶尖AI论文创意用于突破性研究
    随着人工智能(AI)的不断进步,它为研究人员提供了大量机会,使他们能够在突破性的创新中做出贡献。对于本科生、研究生和博士生来说,选择一个引人注目的论文题目对于在该领域产生重大影响至关重要。以下是2024年的一些顶尖AI论文想法,可以为创新研究铺平道路。1.生成对抗网络(GANs)在医......
  • 引用变量
    在C++PrimerPlus中,最开始介绍的是变量和引用变量。变量实际就包含了左值类型的变量和右值类型的变量。引用变量引用是C++引入的概念,引用变量是已定义的变量的别名(alias)。引用的创建示例如下:inta=10;int&b=a;引用在定义时必须初始化,这点和const限定的变量很像,为什么......
  • delphi debug 输出
    在Delphi中,你可以使用OutputDebugString函数将调试信息发送到调试器。这个函数是WindowsAPI的一部分,可以在任何使用WindowsAPI的Delphi应用程序中使用。以下是一个简单的例子,展示如何使用OutputDebugString来输出调试信息:usesWindows;procedureTForm1.Button1Click(Se......
  • metersphere 接口自动化中sql场景使用
    摘要: 本文详细介绍了在接口自动化测试中如何连接数据库、编写SQL、获取执行结果,如何处理需要多次查询数据并进行依赖性比较的问题,包括循环控制、SQL查询中使用循环变量、计数器的应用以及结果比较的断言。一、使用场景在接口自动化测试过程中,有时需要从数据库中多次查询数据,并......
  • 定制ISO时在kickstart脚本中利用%pre预先检查硬件环境
    自己定制ISO使用ks.cfg实现自动安装时,有时需要预先检查硬件环境是否满足安装要求,比如cpu和内存数量,硬件环境不满足时直接停止安装,此时可以利用%pre配合--erroronfail参数来达到目的。%pre段是在安装前执行的,--erroronfail表示出现错误后停止安装。以检查cpu为例,可以这么写:%pre......
  • Go 程序如何实现优雅退出?来看看 K8s 是怎么做的——下篇
    Go程序如何实现优雅退出?来看看K8s是怎么做的——下篇GoCN  2024年08月27日08:02 浙江 以下文章来源于Go编程世界 ,作者江湖十年Go编程世界.不限于Golang、Docker、Kubernetes,技术博客https://jianghushinian.cn/的移动版。本文带大家一起来详细学习......
  • 在Delphi中:如何在调试时跳过部分代码?
    在Delphi中调试时,我经常无意地进入我不感兴趣的代码。让我们首先说,我知道您可以使用F8,并且可以使用f4运行到特定的行。示例:functionTMyClass.DoStuff():Integer;begin//dosomestuffbla();end;procedureTMyClass.Foo()beginifDoStuff()=0then//pressF7......