【数据库篇】关系模式的表示——(2)规范化

范式:范式是符合某一种级别的关系模式的集合

规范化:是指一个低一级的范式的关系模式,通过模式的分解转换为若干个高一级范式的关系模式的集合。

1NF

每个分量必须是不可分开的数据项,满足这个条件的关系模式就是1NF。

2NF

若关系模式R属于1NF,并且每一个非主属性都完全函数依赖于任何一个候选码,则R属于2NF。

一个关系模式不满足2NF,会产生以下问题,例如:

snocnoSdeptSlocGrade
s1c1数学系1号宿舍楼99
s1c2数学系1号宿舍楼100
s1c3数学系1号宿舍楼78
s1c4数学系1号宿舍楼78
s2c1数学系1号宿舍楼56
s2c2数学系1号宿舍楼78
s2c3数学系1号宿舍楼56
s2c4数学系1号宿舍楼89
s2c5数学系1号宿舍楼90

(1)插入异常

如果插入一个学生,但该学生未选课,即无Cno,由于插入元组时,必定给定码值,因此插入失败。

(2)删除异常

如果一个学生s4只选了一门课c3,现在他不再选这门课,则删除c3以后,整个元组的其他信息也被删除了。

(3)修改复杂

如果一个学生选了多门课,则Sdept,Sloc被存储了k次,如果该学生转到了其他系,则需要修改所有相关的Sdept和Sloc,造成修改的复杂化。

若修改为2NF

SC(Sno,Cno,Grade)

S-L(Sno,Sdept,Sloc)

3NF

设关系模式R<U,F>属于1NF,若R中不存在这样的码X、属性Y及非主属性Z(Z 不包含 Y),使得X->Y , Y->Z成立,Y无法推出Z不成立,则称R<U,F>属于3NF。

比如:S-S-L(Sno,Sdept,Sloc)中sno学号可以推出Sdept系,Sdept系可以推出Sloc学生住所,存在传递依赖,不属于3NF。

可以修改为:

S-S(Sno,Sdept)

S-L(Sdept,Sloc)

这样就属于3NF了。

BCNF

比3NF更进一步,通常认为BCNF是修正的第三范式,有时也称为扩充的第三范式。 设关系模式R<U,F>属于1NF,若X可以推出Y且Y不属于X时必含有码,则R<U,F>属于BCNF。

BCNF的关系模式所具有的性质:

(1)所有非主属性都完全函数依赖于每个候选码。

(2)所有主属性都完全函数依赖于每个不包含他的候选码。

(3)没有任何属性完全函数依赖于非码的任何一组属性。

 

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

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

相关文章

信息检索指标直接优化的通用近似框架

1、直接优化信息检索指标的背景 1.1、存在问题 直接优化信息检索的指标是信息检索的一大方向。主要包含两类方法&#xff0c;一类是将IR指标作为上界进行优化&#xff1b;另一类是使用平滑函数近似表示IR指标进行优化。 直接优化IR指标方式很自然&#xff0c;但没有提供理论…

【Unity】接入MAX聚合广告SDK Applovin + GoogleAdmob

版本&#xff1a; Unity&#xff1a;2019.4.35f1gradle plugin: 4.2.0 &#xff08;实际要7.0 对应build_tools:34.0.0) gradle: 6.7.1 &#xff08;实际要7.0 对应build_tools:34.0.0) jdk: 1.8.0_241build_tools: 34.0.0 ndk: android-ndk-r19 文档&#xff1a; 6.0.1(Andro…

基于springboot+Web实现社区医院管理服务系统项目【项目源码+论文说明】计算机毕业设计

基于springbootWeb实现社区医院管理服务系统演示 摘要 在Internet高速发展的今天&#xff0c;我们生活的各个领域都涉及到计算机的应用&#xff0c;其中包括社区医院管理服务系统的网络应用&#xff0c;在外国线上管理系统已经是很普遍的方式&#xff0c;不过国内的管理系统可…

【深度学习笔记】01 数据操作与预处理

01 数据操作与预处理 一、数据操作1.1 基本数据操作1.2 广播机制1.3 索引和切片1.4 节省内存1.5 转换为其他Python对象 二、数据预处理读取数据集处理缺失值转换为张量格式练习 一、数据操作 1.1 基本数据操作 导入torch import torch张量表示一个由数值组成的数组&#xff…

Redis分片集群

文章目录 Redis分片集群搭建分片集群散列插槽插槽原理小结 集群伸缩需求分析创建新的redis实例添加新节点到redis转移插槽 故障转移自动故障转移手动故障转移 RedisTemplate访问分片集群 Redis分片集群 搭建分片集群 主从和哨兵可以解决高可用、高并发读的问题。但是依然有两…

Hadoop集群升级(3.1.3 -> 3.2.4)

升级前确认 旧版本&#xff1a;3.1.3 升级版本&#xff1a;3.2.4 旧版本安装路径&#xff1a;/ddhome/bin/hadoop/ 新版本安装路径&#xff1a;/ddhome/bin/hadoop-3.2.4 安装新版本hadoop 解压安装 # 解压安装包到相应目录下 tar -zxvf /ddhome/tools/hadoop-3.2.4.tar.gz…

KT404A远程更换语音芯片方案支持OTA 4G 蓝牙 wifi 物联网

目录 一、简介 2.1 芯片的硬件 2.2 测试的方法 一、简介 KT404A远程更换语音芯片方案支持OTA 4G 蓝牙 wifi 物联网 在线下载的mp3语音芯片ic&#xff0c;通过KT404A的uart直接更换内部的语音文件&#xff0c;从而实现动态的更新语音内容 物联网大潮的来袭。随着智能家居、…

3.2 CPU的自动化

CPU的自动化 改造1-使用2进制导线改造2根据整体流程开始改造指令分析指令MOV_A的开关2进制表格手动时钟gif自动时钟gif 根据之前的CPU内部结构改造,制造一个cpu控制单元 改造一 之前的CPU全由手动开关自己控制,极度繁琐,而开关能跟二进制一一对应, 开:1, 关:0图1是之前的, …

数据分片在分布式 SQL 数据库中的工作原理

各种规模的企业都在拥抱面向用户的应用程序的快速现代化&#xff0c;作为其更广泛的数字化转型战略的一部分。此类应用程序所依赖的关系数据库 (RDBMS) 基础设施突然需要支持更大的数据量和事务量。然而&#xff0c;在这种情况下&#xff0c;单体 RDBMS 往往很快就会过载。在 R…

【网络】DNS协议、ICMP协议、NAT技术

DNS协议、ICMP协议、NAT技术 一、DNS协议1、产生背景2、域名简介3、域名解析的工作流程4、使用dig工具分析DNS过程 二、ICMP协议1、ICMP介绍2、ICMP协议格式3、ping命令4、traceroute命令 三、NAT技术1、NAT技术背景2、NAT IP转换过程3、地址转换表4、NAPT技术5、重新理解路由器…

2023年亚太杯数学建模A题——深度学习苹果图像识别(思路+模型+代码+成品)

Image Recognition for Fruit-Picking Robots 水果采摘机器人的图像识别功能 问题 1&#xff1a;计数苹果 根据附件 1 中提供的可收获苹果的图像数据集&#xff0c;提取图像特征&#xff0c;建立数学模型&#xff0c;计算每幅图像中的苹果数量&#xff0c;并绘制附件 1 中所有…

佳易王各行业收银管理系统软件,企业ERP管理软件,企业或个体定制开发软件以及软件教程资源下载总目录,持续更新,可关注收藏查阅

系统简介 1、佳易王软件功能实用、操作简单、软件绿色免安装&#xff0c;解压即可使用&#xff0c;软件已经内置数据库&#xff0c;不需再安装其他数据库文件。 2、佳易王软件&#xff0c;已经形成系列&#xff0c;上百款管理系统软件涵盖多个行业。 3、已为多个企业个体定制…

mac rancher desktop 修改docker镜像源

1. ssh到rancher虚拟机 LIMA_HOME"$HOME/Library/Application Support/rancher-desktop/lima" "/Applications/Rancher Desktop.app/Contents/Resources/resources/darwin/lima/bin/limactl" shell 0 2. 提升权限 sudo bash 3. 更改镜像源 vi /etc/dock…

在 Go 中使用 Protocol Buffers

各位准备好了吗&#xff01;这一次&#xff0c;我们将深入探讨 Protocol Buffers&#xff08;protobuf&#xff09;及其在数据序列化中的超能力所在。 介绍 Protocol Buffers&#xff0c;也被称为 protobuf&#xff0c;是由谷歌开发的一种语言无关的二进制序列化格式。其主要…

究极短的快排代码【QuickSort】

快排 QuickSort 两边向中间扫描法&#xff1a;取一个基点值&#xff0c;从左往右扫描&#xff0c;基点值左边所有元素小于它&#xff0c;遇到大于基点值的则停下&#xff0c;开始从右往左扫描&#xff0c;右边所有元素大于他&#xff0c;遇到小于基点值则停下&#xff0c;如果…

Win 10部署stable-diffusion-webui时github报错的解决方法

这篇博客就是简单记录一下。有很多文章已经详细介绍了怎么在Windows上部署stable-diffusion-webui了&#xff0c;例如&#xff1a; 本地部署Stable Diffusion教程&#xff0c;详细教学&#xff0c;已安装成功 - 知乎 (zhihu.com) 五千字长文&#xff1a;Stable Diffusion 保姆…

MySQL日期函数sysdate()与now()的区别,获取当前时间,日期相关函数

select sleep(2) as datetime union all select sysdate() -- sysdate() 返回的时间是当前的系统时间&#xff0c;而 now() 返回的是当前的会话时间。 union all select now() -- 等价于 localtime,localtime(),localtimestamp,localtimestamp(),current_timestamp,curre…

PyTorch-ReID重识别算法库与数据集资料汇总

Torchreid 是一个用于深度学习人员重新识别的库&#xff0c;用 PyTorch 编写&#xff0c;为我们的 ICCV’19 项目 Omni-Scale Feature Learning for Person Re-Identification 开发。 PyTorch-ReID的特点是 多GPU训练支持图像和视频 REID端到端培训和评估极其轻松地准备 Rei…

图书管理系统源码,图书管理系统开发,图书借阅系统源码三框架设计原理和说明

TuShuManger项目简介和创建 这里一共设计了6个项目,主要是借助三层架构思想分别设计了主要的三层,包括model实体层,Dal数据库操作层,Bll业务调用层,其他有公共使用项目common层,DButitly提取出来的数据库访问层,下面我们分别创建每个项目和开始搭建整个过程 TuShuManger…

nodejs+vue+python+PHP+微信小程序-书吧租阅管理系统的设计与实现-安卓-计算机毕业设计

在当今高度发达的信息中&#xff0c;信息管理改革已成为一种更加广泛和全面的趋势。为确保中国经济的持续发展&#xff0c;信息时代日益更新&#xff0c;书吧租阅管理系统仍在蓬勃发展。同时&#xff0c;随着信息社会的快速发展&#xff0c;各种管理系统面临着越来越多的数据需…