【数据库原理】闭包与候选码的求法,你掌握技巧了吗?

这篇具有很好参考价值的文章主要介绍了【数据库原理】闭包与候选码的求法,你掌握技巧了吗?。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。


此篇文章没有过多的定义,如果想要看定义的小朋友请去看课本,在这里我讲下求闭包和候选词的方法:

一、闭包

设F为R关系模式上的函数依赖集,被F所逻辑蕴含的全体构成的集合,称为F的闭包,记做F⁺

先来看一个例子。
关系R(A,B,C)知足下列函数依赖F(A → B,A→C,B→AC),求A的闭包

通俗的来说,就是A能直接或者间接推出的属性的集合闭包

A → B, A→C, A→BC, A→Φ, A→A

空集能够省略不写,所以,A的闭包为ABC,同时A也为R上的候选键

若是换一下求B的闭包,知道了原理,那也很是容易了

B→AC, B→A, B→C, B→B, B→Φ

所以,B的闭包也是ABC,B也为R上的候选键

求C的闭包呢?
C→Φ, C→C

所以C的闭包就是C

上面的例子太简单了,我们来两个难的
例(1):设有关系模式R(U,F),其中U={A,B,C,D,E,I},F={A→D,AB→E,BI→E,CD→l,E→C},计算(AE)+

讲解:
这里的 U 就是整个元素集合,F代表的是依赖函数
要求AE的闭包,首先我们找到A/E/AE在左边开头的,这三种情况。
A→D,A→A,所以A的闭包是AD(Φ以后不写了
E→C,E→E,所以E的闭包是EC
初步断定,AE的闭包是ACDE,接着上面的步骤,找ACDE的子集在左边的组合,我们看到了CD→l
那么,AE的闭包就是ACDEI了。

文章结尾有练习题,自己去练练

二、候选码

你叫候选词,候选键都行

若K为R< U,F>上的一个属性集,若是U彻底依赖于K,则称K为R上的候选键。

简单的来讲,若是K的闭包为U的话,那么K就为R上的候选键

好比上面一、中的R(A, B, C),A的闭包为ABC,那么A就为R上的候选键,同理,B的闭包也为ABC,则B也为R上的候选键,C的闭包为C,所以,C不是R上的候选键。

这是简单的,直接看是否包括全部元素就完事了,但是下面这个题呢?

例:设有关系模式R(A,B,C,D),其函数依赖集F={D→B,B →D,AD →B,AC →D},求R的所有候选码。
那我们先看解题方法

候选码的求解理论和算法对于给定的关系R(A1,A2,…An)和函数依赖集F,可将其属性分为4类: L类 仅出现在函数依赖左部的属性。

R 类 仅出现在函数依赖右部的属性。

N 类 在函数依赖左右两边均未出现的属性。

LR类 在函数依赖左右两边均出现的属性。

1.定理:对于给定的关系模式R及其函数依赖集F,若X(X∈R)是L类属性,则X必为R的任一候选码的成员。

2.推论:对于给定的关系模式R及其函数依赖集F,若X(X∈R)是L类属性,且X+包含了R的全部属性;则X必为R的唯一候选码。
3.定理:对于给定的关系模式R及其函数依赖集F,若X(X∈R)是R类属性,则X不在任何候选码中。
4.定理:对于给定的关系模式R及其函数依赖集F,若X(X∈R)是N类属性,则X必包含在R的任一候选码中。
5.推论:对于给定的关系模式R及其函数依赖集F,若X(X∈R)是L类和N类组成的属性集,且X+包含了R的全部属性;则X是R的唯一候选码。

解题吧:
解:考察F发现,A,C两属性是L类属性,所以AC必是R的候选码成员,又因为(AC)+=ABCD,所以AC是R的唯一候选码。

再来一道

数据库闭包怎么求,自我笔记,算法,线性代数,图论
直接根据上面的【3.定理】我们得出A、B这两个属性不可能出现在候选码中了,然后我们看【1.定理】发现D一定是候选码中的之一的组成部分。接着看【2.推论】发现D的闭包并不包含全部属性,所以我们断定,单独的D不能是候选码,这时候还剩一个C,C属于【4.定理】,所以这个时候就能退出,R的候选码就是CD了

三、例题

1.设关系模式U={A,B,C,D,E}
F={AB→C,B→D,C→E,CE→B,AC→B}, 求(AB)+
解:
AB,差分成A/B/AB , 看F中每一组依赖函数左边
AB→C,根据本身AB→AB,所以AB的闭包是ABC,接着
B→D,AB的闭包又变成ABCD,接着
C→E,AB的闭包又变成ABCDE,所以
AB的闭包={ABCDE}

2.F={AB→CE,A→C,GP→B,EP→A,CDE→P,HB→P,
D→HG,ABC→PG} , 求D的闭包
解:
看F中每一组依赖函数左边
D→HG,再加上本身D→D
D的闭包 ={DHG}

3.已知关系模式R<U,F>,其中U={A,B,C,D,E};
F={AB→C, B→D, C→E, EC→B,AC→B}
求BE的闭包

解:
BE,差分成B/E/BE , 看F中每一组依赖函数左边
B→D,所以B的闭包是BD,其他没有找到任意一组符合,那我们再加上本身的两组BE→BE,E→E
所以BE的闭包是BDE文章来源地址https://www.toymoban.com/news/detail-786964.html

到了这里,关于【数据库原理】闭包与候选码的求法,你掌握技巧了吗?的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 珍藏多年的MySQL函数大全笔记,掌握数据库真不难

    做程序员的谁会离得开数据库呢? 今天就来分享一下我整理的MySQL的常用函数,基本上囊括了平时要用的函数,它们已经陪我走过了不少年头了,风里来雨里去,缝缝补补又几年,希望能帮到你们! 如果数据库函数你能用得好,其他的东西也就水到渠成了。 序号 函数 说明

    2023年04月23日
    浏览(53)
  • SpringCloud-Eureka【服务案例】,掌握数据库其实很容易

    3.修改启动类 在启动类的头部开启Eureka客户端的主键 4.添加配置信息 在application.properties中添加如下的信息 spring.application.name=eureka-provider server.port=9090 eureka.client.serviceUrl.defaultZone=http://eureka1:8761/eureka/,http://eureka2:8761/eureka/ 注意eureka1和eureka2我们需要在hosts文件中配置映射如下

    2024年04月16日
    浏览(34)
  • 掌握MySQL分库分表(一)数据库性能优化思路、分库分表优缺点

    不能⼀上来就说分库分表! 根据实际情况分析,两个角度思考:不分库分表、分库分表 软优化 数据库参数调优 分析慢查询SQL语句,分析执行计划,进行sql改写和程序改写 优化数据库索引结构 优化数据表结构优化 引入NOSQL和程序架构调整 硬优化 提升系统硬件(更快的IO、更

    2023年04月19日
    浏览(57)
  • 【Mysql】万字长文带你快速掌握数据库基础概念及SQL基本操作

    为了巩固所学的知识,作者尝试着开始发布一些学习笔记类的博客,方便日后回顾。当然,如果能帮到一些萌新进行新技术的学习那也是极好的。作者菜菜一枚,文章中如果有记录错误,欢迎读者朋友们批评指正。 (博客的参考源码可以在我主页的资源里找到,如果在学习的

    2024年02月15日
    浏览(53)
  • 数据库原理1——《小猫猫大课堂》数据库原理篇

    宝子,你不点个赞吗?不评个论吗?不收个藏吗? 最后的最后,关注我,关注我,关注我,你会看到更多有趣的博客哦!!! 喵喵喵,你对我真的很重要。 目录 前言 1.2数据库基本概念 1.3数据库三级模式和两级数据独立性 1.4数据库技术发展历史与分类 1.5数据库系统的组成

    2024年02月15日
    浏览(34)
  • 【数据库原理】(27)数据库恢复

    在数据库系统中,恢复是指在发生某种故障导致数据库数据不再正确时,将数据库恢复到已知正确的某一状态的过程。数据库故障可能由多种原因引起,包括硬件故障、软件错误、操作员失误以及恶意破坏。为了确保数据库的安全性和完整性,数据库管理系统(DBMS)必须具有

    2024年01月16日
    浏览(61)
  • 【数据库原理】(32)数据库设计-数据库物理设计

    数据库的物理设计是数据库设计过程中至关重要的一个阶段。其核心目标是选择一个适合应用环境的物理结构,以满足特定的性能、存储和访问需求。这一阶段涉及的关键任务可以分为两个主要步骤: 1. 确定数据的物理结构 存储结构和存取方法的选择 :这包括决定数据在物

    2024年01月19日
    浏览(55)
  • 数据库原理及数据库的优化

    数据库:持久化存储,存到硬盘 性能:oracldb2sqlservermysql oracl,db2,sqlserver性能差不多,几十万次每秒,myslq性能差很多,几千次每秒,都属于关系型数据库 mysql数据库中user表负责权限管理 mysql运行程序在内存,数据存储在硬盘,程序运行在内存中 java向mysql发送sql语句,就是

    2024年01月21日
    浏览(40)
  • 【数据库原理】(28)数据库设计概述

    数据库设计是为了实现数据库应用系统,涉及结构特性设计、行为特性设计和物理模式设计三个主要方面。 1. 数据库的结构特性设计 数据库的结构特性设计是数据库设计的关键,包括数据库结构的设计和建立合理的数据模型。这一部分也被称为数据库的静态结构设计。 步骤

    2024年01月19日
    浏览(51)
  • 【数据库原理】(26)数据库并发控制

    并发控制是数据库管理系统(DBMS)的核心功能之一。它确保在多个用户并行访问数据库时,数据库的一致性和完整性得到维护。 事务是数据库中基本的逻辑工作单位,由一系列操作组成,这些操作要么全部执行(提交),要么完全不执行(回滚)。一个事务可以是单个SQL语

    2024年01月18日
    浏览(42)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包