关系数据理论

什么是关系数据理论:用来评判数据库逻辑设计“好坏程度”的标准;二是如果逻辑设计中存在“不好”的关系模式,如何将其修改为“好”的关系模式。

函数依赖:举个例子:学生表中,一个学生的学生号确定了,学生的姓名及其他属性值也就被唯一地确定了所以有这样的函数依赖:Sno---->Sname,Sno--->School.

但是函数依赖也分好坏:假如如下有一个函数依赖关系:

当一个学生学号确定下来了,相应的学院和院长信息也被确认了,学生学号和课程编号可确认一个成绩值。下面的关系表如下:

评价函数依赖可以从如下四个方面进行:

1.数据冗余:比如院长姓名重复出现,浪费存储空间。

2.更新异常:当更新数据库时,更换院长后,要把每一个院长的值给更新。

3.插入异常:一个学院刚成立,没有学生,那么此时院长信息也无法插入。

4.删除异常,如果一个学院学生全都毕业了,则在删除信息的同时,也把院长信息给删除了。

部分函数依赖:若X->Y但是Y不完全函数依赖于X,则称Y对X部分函数依赖。比如(学生学号,课程号)--->可以唯一决定一个学院,但是对于学院来说是对(学生学号,课程号)是部分函数依赖。

因为学生学号--->学院名称,然而学生学号只是(学生学号,课程号)属性组的真子集。

完全函数依赖:X----->Y,但是X中的真子集却无法满足可以唯一确定Y。

传递依赖:X->Y,  Y->Z所以X->Z.

候选码:可以唯一决定一个元组的属性或者属性组就叫做候选码。R(U,F),K是属性组U中的真子集,且K->U,U完全依赖于K,而不是部分完全依赖于K。

超码:存在一个关系R(U,F),有K->U,U部分完全依赖于K,那么就把关系/关系组K叫做此关系的超码。

主码:如果候选码多于一个,则选择其中的一个作为主码。

外码:关系R中有X并非R的码,而是另外一个关系中的码。

全码:一个关系中的码包括了这个关系中的全部属性。

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

规范化:一个低一级别的关系模式通过通过模式分解可以分解成若干个更高级别的范式的关系模式的集合。

1NF,2NF,3NF,BCNF,4NF.从左到右级别越高,而且级别低的包含了级别高的关系模式。

1NF:作为二维表,关系要符合一个最基本的条件是每一个分量必须是不可分的数据项。

 

2NF:当一个关系属于1NF,然后每一个非主属性都完全函数依赖于任一一个候选码。

举个例子:下面的例子就不符合一个2NF关系,因为对于住所和学院这两个非主属性码部分函数依赖于候选码(学生号,课程号)。

可以将其进行分解,分解后成为:这时就符合每一个非主属性完全函数依赖于码。

3NF:在2NF的基础上,加上一条每一个非主属性值也不部分函数依赖于任意一个码。用上面的图解释:Sno->School,School->Sloc,那么Sloc传递依赖于Sno。所以不符合3NF。

BCNF:

多值依赖:举个例子:(属性1,属性2)---->属性3,属性3仅仅由属性1决定,无论属性2的值取什么都不改变。跟部分函数依赖的区别在于:部分函数依赖它的属性2的值跟属性3的值是挂钩的。

定义:X->->Y成立,当且仅当对R(U,F)的任一关系r(某一行),给定的一对(x,z)值,有一组Y,这组值仅仅决定于x值而与z值无关。

在这个例子中:李勇,王军这些授课老师的值和参考资料的取值毫无关系,只与所教科目有关系:物理。

平凡的多值依赖:若X->->Y,且Z为空,X,Y,Z都是U的子集,X+Y+Z=U,则称X_>->Y为平凡的多值依赖。

4NF:如果在符合1NF的基础上,关系R的每个非平凡多值依赖X->->Y(Y不是X的真子集),X都含有候选码。

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

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

相关文章

ai创作是什么?分享ai创作的方法

ai创作是什么?在当今这个信息爆炸的时代,文字的力量愈发显得重要。无论是日常沟通还是专业创作,我们都需要用文字来表达自己,传递思想。然而,面对海量的信息和快速变化的世界,如何高效地生成高质量的文字内…

力扣SQL50 有趣的电影 简单查询

Problem: 620. 有趣的电影 Code select * from cinema where id % 2 1 and description ! boring order by rating desc;

Python-gui开发之Pycharm+pyside6/Pyqt6环境搭建

Python-gui开发之Pycharm+pyside6/Pyqt6环境搭建 软件版本一、软件安装1、Python安装2、Pycharm安装3、pyside6或pyqt6安装①安装pyside6②安装PyQt6和pyqt6-tools二、Pycharm项目配置1、插件安装2、新建项目以及环境配置3、包管理安装三、在Pycharm中配置PySide61、pyside6 Qt…

SEO之预估流量及价值(二)

初创企业搭建网站的朋友看1号文章;想学习云计算,怎么入门看2号文章谢谢支持: 1、我给不会敲代码又想搭建网站的人建议 2、新手上云 (接上一篇。。。。) 2、点击率 搜索结果页面各排名位置点击率也不精确。前面介绍的…

Java代码如何运行

通过前面的第一篇文章,对JVM整体脉络有了一个大概了解。第二篇文章我们通过对高级语言低级语言不同特性的探讨引出了Java的编译过程。有了前面的铺垫,咱们今天正式进入Java到底是如何运行起来的探讨。 目前大部分公司都是使用maven作为包管理工具&#x…

「PS图像软件下载」Adobe Photoshop专业图像处理软件资源获取!

Photoshop,无论是对于初学者还是资深设计师,Photoshop都以其易上手且深度足够的特性,赢得了广泛的赞誉。 在修图方面,Photoshop的表现尤为出色。无论是调整色彩平衡、裁剪图片,还是去除瑕疵、增强细节,Phot…

Matlab数学建模实战应用:案例4 - 图像处理

目录 前言 一、图像处理基础 二、Matlab图像处理工具箱 三、案例:图像锐化、去噪和分割 步骤 1:读取和显示图像 步骤 2:图像锐化 步骤 3:图像去噪 步骤 4:图像分割 完整代码示例 四、实际应用 实例总结 总…

如何选择理想CDN服务商来提升网站性能

在数字时代,网络速度已成为衡量网站成功的关键指标之一。快速加载的网站不仅提升用户体验,还对网站的搜索引擎排名产生显著影响。用户期望网站能够迅速响应其请求,而任何延迟都可能导致用户不满和流失。研究表明,网站加载时间的每…

openh264 帧级码率控制原理:RcCalculateIdrQp 函数

RcCalculateIdrQp函数 功能 在码控中,当eSliceType为I_SLICE时 计算 IDR 帧的帧级量化参数QP 值。 原理过程 初始化变量: dBpp:初始化为0,用来存储比特率每像素(bits per pixel)的值。i:一个…

人工智能驱动材料科学前沿:微软与PNNL联合推进电池材料创新

新型电池技术的研发对实现绿色能源目标具有决定性意义 微软公司与美国太平洋西北国家实验室(PNNL)近期开展了一项开创性的合作,利用尖端人工智能技术,在极短时间内完成对海量潜在电池材料的系统筛选。 微软和PNNL的研究团队采用了…

解决数据孤岛/计算消耗/误差累积问题,上海人工智能实验室苏锐:FengWu-GHR实现AI气象预测多重突破

「AI 方法出现之前,每 10 年才可以提高 1 天的气象预报技巧,而引入 AI 后,几个月就能提高预报技巧。」 在 2024 北京智源大会「AI for Science」论坛上,上海人工智能实验室青年研究员苏锐回顾了 AI 气象预报的历史发展&#xff0…

深入了解 AndroidX ConstraintLayout 中的 Barrier

androidx.constraintlayout.widget.Barrier(简称Barrier)是 ConstraintLayout 2.0 中引入的一个新特性,它可以极大地简化复杂布局的实现。本文将详细介绍Barrier 的概念、使用方法以及在实际开发中的应用场景。 什么是 Barrier? …

产品心理学:曝光效应

曝光效应(the exposure effect or the mere exposure effect):又谓多看效应、(简单、单纯)暴露效应、(纯粹)接触效应等等。 它是一种心理现象,指的是我们会偏好自己熟悉的事物&#…

基于PCL实现多边形框选点云并进行裁剪(附C++源码)

文章目录 一.算法效果二.算法原理PNPoly算法直线相交性判断三.代码实现一.算法效果 通过在PCL可视化界面上绘制2D封闭多边形来提取位于该封闭多边形内部或者外部的 的点,算法效果如下: 图1多边形裁剪点云效果图 二.算法原理 PNPoly算法 2D多边形框选裁剪点云,实际上可以简…

AI交互数字人如何赋能数智教育?

随着AI交互数字人技术的飞速发展,教育领域正经历着前所未有的变革。AI交互数字人为教育领域注入了全新活力,重塑着教学模式,为学生带来沉浸式学习体验。 AI交互数字人在教育领域中,可以应用在: 1、个性化学习教学指导…

RPA案例学习

京东采集数据 一、搜索商品 流程块 相对应源代码 二、抓取数据 流程块 相对应源代码

React-Redux学习笔记(自用)

1. 环境搭建 插件安装:Redux Toolkit和react-redux npm i reduxjs/toolkit react-redux2、 store目录结构设计 集中状态管理的部分会单独创建一个store目录(在src下)应用通常会有很多个子模块,所以还会有个modules目录&#x…

VMware虚拟机三种网络模式设置 - NAT(网络地址转换模式)

一、前言 在前一篇《Bridged(桥接模式)》中,我详细介绍了虚拟机网络模式设置中的桥接模式。今天详细讲解一下NAT(网络地址转换模式)。 在虚拟机(VM)中,NAT(Network Addre…

希喂、K9、弗列加特主食冻干测评:这次,我们去了美国的实验室

主食冻干你有喂过吗? 作为有七年养猫经验的铲屎官,我强烈推荐,真的值得一试! 在宠物经济蓬勃发展的今天,养猫已经成为了一门学问。人们开始追求更加科学、健康的养猫方式。大量喂养案例表明,传统的商业猫粮…

算法训练与程序竞赛题目集合(L2)

目录 L2-001 城市间紧急救援 输入格式: 输出格式: 输入样例: 输出样例: L2-002 链表去重 输入格式: 输出格式: 输入样例: 输出样例: L2-003 月饼 输入格式: 输出格式: 输入样例: …