SQL Server :关系模式的键码与闭包计算

在这里插入图片描述

在这里插入图片描述

一、键码的定义

首先我们给出 键码的定义 如下

定义:已知 R<U,F> 是属性集 U 的关系模式,F是属性集 U 上的一组函数依赖,设 K 为 R<U,F> 中的属性或属性组合,若K ⇒ U - K 且 K 的任何真子集都不能决定 U,则 K 为R的键码

然后大家还要记住的一个东西就是【超键码】,它是 “键码的超集” 的简称。

当一个属性集中出现多个键码的时候,就选定其中的一个作为 主键码

  • 包含在任何一个键码中的属性,称为 主属性
  • 不包含在任何一个键码中的属性,称为 非主属性
  • 最简单的情况 —— 单个属性是键码
  • 最极端的情况 —— 整个属性组合是键码,称为 全码(可不是全马哦🏃💦)

例1:考虑关系模式:人(身份证号,姓名,性别,住址,出身年月),且有函数依赖集:

F = {
身份证号 ⇒ (姓名,性别,住址,出身年月),
(姓名,住址)⇒ (身份证号,住址,出身年月)
}
  • 从上面的这个关系模式我们可以看出,如果对于 公安部分 而言,它可以选身份证号作为主键码,用身份证号作为人的唯一标识;
  • 对于 邮电部门 而言,它选(姓名,住址)作为主键码,用姓名和住址作为投递信件的唯一标识
  • 在上面的模式中,身份证号,姓名,住址 这三个为【主属性】,性别,出身年月 为【非主属性】

下面我们再来看一个 全码 的例子

例2:考虑关系模式R(演奏者,作品,听众)

  • 为什么说这个关系模式为全码呢,因为三个属性都可以作为键码,试想
    • 一个演奏者可以演奏多个作品;
    • 一个作品也可以被多个演奏者所演奏
    • 观众也可以欣赏不同演奏者的不同作品
  • 那么这三个属性就都得被定义成为键码了,即 全码

二、闭包的计算

有了【键码】的一些知识后,我们就可以来学习一下 闭包 这个东西了

首先我们来讲讲闭包的基本概念:

假设 A = {A1, A2, A3,…, An}是属性集,F是函数依赖集。属性集A在函数依赖集F下的闭包是这样的属性集X,那么A1A2An ⇒ X是蕴含于F中的函数依赖。此时我们就可以用{A1, A2, An}+ 来表示属性集A1A2…An的闭包

然后我们来看闭包的计算规则:

  1. 属性集X终将成为闭包。首先,将X初始化为{A1, A2, …, An}
  2. 然后,反复检查某个函数依赖B1B2...Bm ⇒ C,使得所有B1B2...Bm 都在属性集X中,但是C不在其中,于是将C加到属性集X中l
  3. 根据需要多次重复步骤2,直到没有属性能加到X中。由于X是只增的,而任何关系的属性数目必然是有限的,因此最终再也没有属性可以加到X中
  4. 最后得到的不能再增加的属性集X就是{A1, A2, …, An}+ 的正确值

看完了闭包的计算规则,我们马上来实战演练一下吧🗡

例3:让我们来考虑一个关系R(A, B, C, D, E, F),其函数依赖集为F = {AB ⇒ C,BC ⇒ AD,D ⇒ E,CF ⇒ B},试计算 {A, B} 的闭包{A, B}+

在这里插入图片描述

例4:已知关系模式R(A, B, C, D),其函数依赖集为F = {AB ⇒ C,C ⇒ D,D ⇒ A},求蕴含于给定函数依赖的所有非平凡函数依赖和键码

在这里插入图片描述

例5:若R(A, B, C, D, E),其函数依赖集为F = {AB ⇒ C, B ⇒ D, D ⇒ E, C ⇒ B},试求关系模式R的键码

在这里插入图片描述
💬 那么通过这三道例题的讲解相信读者一定了解了闭包是如何地去进行计算的

三、总结与提炼

最后我们来总结一下本文所学习的内容📖

  • 首先的话我们学习了 键码的定义,了解到了键码是什么东西。在有这个的基础上,我们又学习了 闭包的计算,清楚计算规则之后,再通过三道例题的详细讲解相信读者一定对这个知识点有了一定的认识

在这里插入图片描述

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

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

相关文章

TLS、对称/非对称加密、CA认证

1. SSL与TLS SSL/TLS是一种密码通信框架&#xff0c;他是世界上使用最广泛的密码通信方法。SSL/TLS综合运用了密码学中的对称密码&#xff0c;消息认证码&#xff0c;公钥密码&#xff0c;数字签名&#xff0c;伪随机数生成器等&#xff0c;可以说是密码学中的集大成者。 TLS…

甘草书店记: 2023年10月11日 星期三 晴 「做有光的人,照亮他人,也引人同行」

发了两篇《甘草书店记》&#xff0c;书店计划公之于众&#xff0c;收获了不少人的赞扬和鼓励&#xff0c;来自生活中的友人&#xff0c;来自麦田的客户和朋友&#xff0c;来自图书界的同行前辈&#xff0c;也来自商界的同仁。其中&#xff0c;最特别留言来自甘草书店投资方的张…

temu反洗钱协议在哪里签署

反洗钱是国际社会关注的重要议题之一。为了加强国际合作&#xff0c;各国政府积极参与签署反洗钱协议。TEMU反洗钱协议作为国际间的重要合作框架&#xff0c;其签署地点及其意义备受关注。本文将深入探讨TEMU反洗钱协议的签署地点及其背后的意义。 先给大家推荐一款拼多多/temu…

PostgreSQL 元组统计与 pgstattuple 优化

第1章 简介 1.1 参考文档 https://www.percona.com/blog/postgresql-tuple-level-statistics-with-pgstattuple/ 1.2 关于pgstattuble 由于Postgres表膨胀会降低数据库性能&#xff0c;因此我们可以通过消除表膨胀来提高其性能。我们可以使用pgstattuple扩展来识别膨胀的表。 这…

网络和信息系统指令 ( NIS2 ) 及其全球影响

网络和信息系统指令 ( NIS2 ) 将于 2024 年 10 月生效&#xff0c;旨在提高欧盟 (EU) 的网络弹性。 不过&#xff0c;其影响可能会更广泛&#xff0c;带来更严格的流程和控制&#xff0c;并重新定义我们向被视为国家关键的组织提供服务的方式。 该强制性指令将具有效力&#x…

锂电涂布机设备健康管理:降低运维成本的关键

随着锂电池行业的快速发展&#xff0c;锂电涂布机设备作为关键生产工艺装备&#xff0c;扮演着至关重要的角色。然而&#xff0c;涂布机设备的故障和维护成本对于企业来说是一个不可忽视的挑战。本文将介绍做好锂电涂布机设备的健康管理&#xff0c;降低运维成本的关键措施。 锂…

初刷leetcode题目(11)——数据结构与算法

&#x1f636;‍&#x1f32b;️&#x1f636;‍&#x1f32b;️&#x1f636;‍&#x1f32b;️&#x1f636;‍&#x1f32b;️Take your time ! &#x1f636;‍&#x1f32b;️&#x1f636;‍&#x1f32b;️&#x1f636;‍&#x1f32b;️&#x1f636;‍&#x1f32b;️…

Elasticsearch初识--CentOS7安装ES及Kibana

文章目录 一&#xff0e;前言二&#xff0e;介绍1.Elasticsearch2.Kibana 三&#xff0e;ES安装1.下载安装包2.解压、配置2.1 解压2.2 配置 3.启动3.1增加用户3.2启动 4.解决资源分配太少问题5.启动成功 四&#xff0e;Kibana安装1.下载安装包2.解压、配置2.1 解压2.2 配置2.2 …

太快了!文生图片只需1秒,开源SDXL Turbo来啦!

11月29日&#xff0c;著名开源生成式AI平台Stability.ai在官网发布了&#xff0c;开源文生图模型SDXL Turbo。 根据使用体验&#xff0c;SDXL Turbo的生成图像效率非常快&#xff0c;可以做到实时响应&#xff08;可能小于1秒&#xff09;。 在你输入完最后一个文本后&#x…

【优选算法系列】【专题十四优先级队列】第一节.(1046. 最后一块石头的重量和703. 数据流中的第 K 大元素)

文章目录 前言一、最后一块石头的重量 1.1 题目描述 1.2 题目解析 1.2.1 算法原理 1.2.2 代码编写 1.2.3 题目总结二、数据流中的第 K 大元素 2.1 题目描述 2.2 题目解析 2.2.1 算法原理 2.2…

java第20章节

一.线程简介 二.创建线程 1.继承Thread类 Thread类中常用的两个构造方法如下&#xff1a; public Thread():创建一个新的线程对象。 public Thread(String threadName):创建一个名称为threadName的线程对象。 继承Thread类创建一个新的线程的语法如下&#xff1a; public c…

AI视频智能分析识别技术的发展与EasyCVR智慧安防视频监控方案

随着科技的不断进步&#xff0c;基于AI神经网络的视频智能分析技术已经成为了当今社会的一个重要组成部分。这项技术通过利用计算机视觉和深度学习等技术&#xff0c;实现对视频数据的智能分析和处理&#xff0c;从而为各个领域提供了广泛的应用。今天我们就来介绍下视频智能分…

建立健全涉密测绘外业安全保密管理制度,落实监管人员和保密责任,外业所用涉密计算机纳入涉密单机进行管理

建立健全涉密测绘外业安全保密管理制度&#xff0c;落实监管人员和保密责任&#xff0c;外业所用涉密计算机纳入涉密单机进行管理 1.涉密测绘外业安全保密管理制度 2.外业人员及设备清单&#xff08;包括&#xff1a;外业从业人员名单、工作岗位&#xff0c;外业设备名称、密…

Opencv | 直方图均衡化

import cv2 #opencv 读取的格式是BGR import numpy as np import matplotlib.pyplot as plt #Matplotlib是RGB %matplotlib inline def cv_show(img,name):cv2.imshow(name,img)cv2.waitKey()cv2.destroyAllWindows() cv2.calcHist(images,channels,mask,histSize,ranges) - …

Gitee-PicGo-Typora

Gitee-PicGo-Typora 问题引出 问题1&#xff1a;根据相关法律法规和政策&#xff0c;您的部分文件因存在敏感信息而无法显示 就在昨晚&#xff0c; 我在记笔记的时候&#xff0c;发现之前配置的七牛云图床出了问题&#xff1a; 1、根据相关法律法规和政策&#xff0c;您的部…

JAVA进阶之路JVM-3:JVM内存模型,运行时数据区域划分,程序计数器,虚拟机栈,本地方法栈,堆,元空间,字符串常量池

JVM内存模型 对于 Java 程序员来说&#xff0c;在虚拟机自动内存管理机制下&#xff0c;不再需要像 C/C 程序开发程序员这样为每一个操作去写对应的 delete / free 操作&#xff0c;不容易出现内存泄漏和内存溢出问题。正是因为 Java 程序把内new存控制权利交给JVM虚拟机。一旦…

JS动态转盘可自由设置个数与概率

让我为大家介绍一下转盘的实现过程与原理&#xff0c;介绍都放在下面代码块中&#xff0c;一步一步的教会你。 我们转盘使用线段来实现 <!DOCTYPE html> <html> <head><meta charset"utf-8"><title></title><style type&quo…

【理解ARM架构】异常处理

&#x1f431;作者&#xff1a;一只大喵咪1201 &#x1f431;专栏&#xff1a;《理解ARM架构》 &#x1f525;格言&#xff1a;你只管努力&#xff0c;剩下的交给时间&#xff01; 目录 ⚡ARM系统中异常与中断处理流程&#x1f362;向量表&#x1f362;保存现场&#x1f362;恢…

对一个预算有限的创业者来说,应该选择哪些形式的办公场地

对于一个预算有限的创业者来说&#xff0c;选择合适的办公场地是一个重要的决策。不同的办公场地形式有各自的优缺点&#xff0c;需要根据创业者的具体情况和需求来权衡。 一般来说&#xff0c;有以下几种常见的办公场地形式&#xff1a; - 家庭办公&#xff1a;这是最节省成本…

觉得可视化地图太难做?那你是没用过它!

后台一直有粉丝私信老李&#xff0c;问到现在各大企业对数据可视化越来越看重&#xff0c;但是感觉那些高大上的图表做起来一定很复杂甚至可能还需要一些编程基础&#xff0c;希望老李可以推荐一些简单好上手的数据可视化工具。   作为一名数据分析爱好者&#xff0c;我也尝试…