当前位置: 首页 > news >正文

【数据挖掘】国科大苏桂平老师数据库新技术课程作业 —— 第二次作业

1

F = { A B → C , B → D , C D → E , C E → G H , G → A } F=\{AB\rightarrow C,B\rightarrow D, CD\rightarrow E, CE\rightarrow GH, G\rightarrow A \} F={ABC,BD,CDE,CEGH,GA},用推理的方法证明 F ∣ = A B → G F\;|=AB\rightarrow G F=ABG

① 已知 B → D B\rightarrow D BD,则 A B → A D AB\rightarrow AD ABAD(增广律)

② 已知 A B → A D AB\rightarrow AD ABAD,则 A B → D AB\rightarrow D ABD (分解规则)

③ 已知 A B → C AB\rightarrow C ABC A B → D AB\rightarrow D ABD,则 A B → C D AB\rightarrow CD ABCD (合成规则)

④ 已知 A B → C D AB\rightarrow CD ABCD C D → E CD\rightarrow E CDE,则 A B → E AB\rightarrow E ABE (传递律)

⑤ 已知 A B → E AB\rightarrow E ABE A B → C AB\rightarrow C ABC,则 A B → C E AB\rightarrow CE ABCE (合成规则)

⑥ 已知 C E → G H CE\rightarrow GH CEGH,则 C E → G CE\rightarrow G CEG (分解规则)

⑦ 已知 A B → C E AB\rightarrow CE ABCE C E → G CE\rightarrow G CEG,则 A B → G AB\rightarrow G ABG (传递律)

注意区别”传递律“与”传递函数依赖“。

2

设关系模式 R ( A , B , C , D ) R(A,B,C,D) R(A,B,C,D),其函数依赖集为 F = { A → B , B → C , A → D , D → C } F=\{A\rightarrow B, B\rightarrow C, A\rightarrow D, D\rightarrow C\} F={AB,BC,AD,DC} R R R 的一个分解 ρ = { R 1 ( A , B ) , R 2 ( A , C ) , R 3 ( A , D ) } \rho = \{R_1(A,B), R_2(A,C), R_3(A,D)\} ρ={R1(A,B),R2(A,C),R3(A,D)}

(1)求 F F F ρ \rho ρ 的每个模式上的投影

F F F 在关系模式 R 1 ( A , B ) R_1(A,B) R1(A,B) 上的投影为 { A → B } \{A\rightarrow B\} {AB} F F F 在关系模式 R 2 ( A , C ) R_2(A,C) R2(A,C) 上的投影为 { A → C } \{A\rightarrow C\} {AC} F F F 在关系模式 R 3 ( A , D ) R_3(A,D) R3(A,D) 上的投影为 { A → D } \{A\rightarrow D\} {AD}

(2) ρ \rho ρ 相对于 F F F 是无损连接吗?

ABCD
a1a2b13→a3b14→a4
a1b22→a2a3b24→a4
a1b32→a2b33→a3a4

其中,红色对应 F F F 中的 A → B A\rightarrow B AB蓝色对应 F F F 中的 B → C B\rightarrow C BC绿色对应 F F F 中的 A → D A\rightarrow D AD,此时 F F F 中的 D → C D\rightarrow C DC 不影响表格。

由于存在某一行全为 a a a,所以 ρ \rho ρ 相对于 F F F 是无损连接。

当分解只包括两个关系模式时,可以使用定理”分解 ρ = { R 1 , R 2 } \rho=\{R_1, R_2\} ρ={R1,R2},若 F ∣ = ( R 1 ∩ R 2 ) → ( R 1 − R 2 ) F|=(R_1\cap R_2)\rightarrow (R_1-R_2) F=(R1R2)(R1R2) 或者 F ∣ = ( R 1 ∩ R 2 ) → ( R 2 − R 1 ) F|=(R_1\cap R_2)\rightarrow (R_2-R_1) F=(R1R2)(R2R1),则 ρ \rho ρ 具有无损连接性“判断是否为无损连接。

(3) ρ \rho ρ 保持函数依赖吗?

A + = A B C D A^+=ABCD A+=ABCD B + = B C B^+=BC B+=BC C + = C C^+=C C+=C D + = C D D^+=CD D+=CD

考察 A → B A\rightarrow B AB A ⊂ R 1 A\subset R_1 AR1 A + ∩ R 1 − A = { B } A^+ \cap R_1-A=\{B\} A+R1A={B} G = { A → B } G = \{A\rightarrow B\} G={AB};同理 A ⊂ R 2 A\subset R_2 AR2 G = G ∪ { A → C } G = G\cup \{A\rightarrow C\} G=G{AC} A ⊂ R 3 A\subset R_3 AR3 G = G ∪ { A → D } G = G\cup \{A\rightarrow D\} G=G{AD} G = { A → B , A → C , A → D } G = \{A\rightarrow B,A\rightarrow C,A\rightarrow D\} G={AB,AC,AD}

考察 B → C B\rightarrow C BC B ⊂ R 1 B\subset R_1 BR1 B + ∩ R 1 − B = ϕ B^+\cap R_1 - B = \phi B+R1B=ϕ G G G 不变。

考察 A → D A\rightarrow D AD 类似于 A → B A\rightarrow B AB G = G ∪ { A → B , A → C , A → D } G = G\cup \{A\rightarrow B,A\rightarrow C,A\rightarrow D\} G=G{AB,AC,AD} G G G 不变。

考察 D → C D\rightarrow C DC D ⊂ R 3 D\subset R_3 DR3 D + ∩ R 1 − D = ϕ D^+\cap R_1 - D = \phi D+R1D=ϕ G G G 不变。

最终 G = { A → B , A → C , A → D } G = \{A\rightarrow B,A\rightarrow C,A\rightarrow D\} G={AB,AC,AD}

显然 G G G 不蕴含 F F F 中的函数依赖 B → C B\rightarrow C BC D → C D\rightarrow C DC,所以 ρ \rho ρ 没有保持函数依赖。

3

1NF、2NF、3NF 和 BCNF 的定义:

1NF:如果一个关系模式 R R R 中的每个属性 A A A 的域值都是原子的,即属性值是不可再分的,则关系模式 R R R 属于第一范式,简记为 R ∈ 1 N F R\in {\rm 1NF} R1NF

2NF:如果 R ∈ 1 N F R∈{\rm 1NF} R1NF所有的非主属性完全依赖于 R R R 的每个键,则 R ∈ 2 N F R∈{\rm 2NF} R2NF

3NF:如果 R ∈ 1 N F R\in {\rm 1NF} R1NF 且在 R R R没有非主属性传递依赖于 R R R 的键,则 R ∈ 3 N F R∈\rm 3NF R3NF

BCNF:如果 R ∈ 1 N F R∈\rm 1NF R1NF R R R没有任何属性传递依赖于 R R R 的任何一个键,则 R ∈ B o y c e − C o d d R∈\rm Boyce-Codd RBoyceCodd 范式(BCNF)。

注意,传递依赖的定义:设关系模式 R R R X X X Y Y Y Z Z Z R R R 的属性子集,若函数依赖 X → Y X\rightarrow Y XY Y ↛ X Y\nrightarrow X YX Y → z Y\rightarrow z Yz,则有 X → Z X\rightarrow Z XZ

指出下列关系模式是第几范式,并说明理由。

(1) R ( A , B , C ) R(A,B,C) R(A,B,C),其函数依赖集为 F = { B → C , A C → B } F=\{B\rightarrow C, AC\rightarrow B\} F={BC,ACB}

确定 R R R 的键, A + = A A^+ = A A+=A B + = B C B^+ = BC B+=BC C + = C C^+=C C+=C ( A B ) + = A B C (AB)^+=ABC (AB)+=ABC ( A C ) + = A B C (AC)^+=ABC (AC)+=ABC,所以键为 A B AB AB A C AC AC。关系模式 R R R 无非主属性,因此 R ∈ 2 N F R\in \rm 2NF R2NF R ∈ 3 N F R\in 3\rm NF R3NF。但是由于 A C → B AC\rightarrow B ACB B ↛ A C B\nrightarrow AC BAC B → C B\rightarrow C BC ,存在传递依赖,故 R ∉ B C N F R\notin \rm BCNF R/BCNF

(2) R ( A , B , C ) R(A,B, C) R(A,B,C),其函数依赖集为 F = { A B → C } F=\{AB\rightarrow C\} F={ABC}

( A B ) + = A B C (AB)^+ = ABC (AB)+=ABC,显然 R R R 的键为 A B AB AB,即 A A A B B B 为主属性, C C C 为非主属性。 A B → C AB\rightarrow C ABC C C C 完全依赖于键 A B AB AB R ∈ 2 N F R\in 2\rm NF R2NF。不存在传递依赖, R ∈ 3 N F R\in 3\rm NF R3NF R ∈ B C N F R\in \rm BCNF RBCNF

(3) R ( A , B , C ) R(A,B,C) R(A,B,C),其函数依赖集为 F = { A → B , A → C } F=\{A\rightarrow B, A\rightarrow C\} F={AB,AC}

R R R 的键为 A A A A A A 为主属性, B B B C C C 为非主属性。 B B B C C C 完全依赖于 A A A R ∈ 2 N F R\in \rm 2NF R2NF。不存在传递依赖,, R ∈ 3 N F R\in 3\rm NF R3NF R ∈ B C N F R\in \rm BCNF RBCNF

(4) R ( A , B , C , D ) R(A,B,C,D) R(A,B,C,D),其函数依赖集为 F = { A → C , A D → B } F=\{A\rightarrow C, AD\rightarrow B\} F={AC,ADB}

R R R 的键为 A D AD AD A A A D D D 为主属性, B B B C C C 为非主属性。 B B B 完全依赖于键 A D AD AD,但是 C C C 部分依赖于键 A D AD AD,所以 R ∉ 2 N F R\notin 2\rm NF R/2NF

(5) R ( A , B , C ) R(A,B,C) R(A,B,C),其函数依赖集为 F = { B → C , B → A , A → B C } F=\{B\rightarrow C, B\rightarrow A, A\rightarrow BC\} F={BC,BA,ABC}

A + = B + = A B C A^+=B^+=ABC A+=B+=ABC,所以键为 A A A B B B C C C 为非主属性。根据分解规则可知 A → C A\rightarrow C AC C C C 完全依赖于 A A A,又 B → C B\rightarrow C BC C C C 完全依赖于 B B B,所以 R ∈ 2 N F R\in 2\rm NF R2NF。因为 A → B A\rightarrow B AB B → A B\rightarrow A BA,尽管 A → C A\rightarrow C AC(或 B → C B\rightarrow C BC),但是不满足传递依赖的定义,所以不存在传递依赖,故 R ∈ 3 N F R\in 3\rm NF R3NF R ∈ B C N F R\in \rm BCNF RBCNF

相关文章:

【数据挖掘】国科大苏桂平老师数据库新技术课程作业 —— 第二次作业

1 设 F { A B → C , B → D , C D → E , C E → G H , G → A } F\{AB\rightarrow C,B\rightarrow D, CD\rightarrow E, CE\rightarrow GH, G\rightarrow A \} F{AB→C,B→D,CD→E,CE→GH,G→A},用推理的方法证明 F ∣ A B → G F\;|AB\rightarrow G F∣AB→…...

Qt + MySQL(简单的增删改查)

Qt编译MySql插件教程 帮助: SQL Programming QSqlDatabase 静态函数 1.drivers(),得到可以使用的数据库驱动名字的集合 [static] QStringList QSqlDatabase::drivers();2.addDatabase(),添加一个数据库实例 [static] QSqlDatabase QSql…...

postgresql设置免密登录

您提供的步骤描述了在 PostgreSQL 数据库环境中配置服务器间的 SSH 无密码登录和数据库用户认证的过程。这些步骤主要用于设置一个高可用性、负载平衡的数据库集群环境。让我们逐一解释这些步骤的目的和应用场景: 1. 启动 PostgreSQL 服务 systemctl start postgr…...

视频汇聚/音视频流媒体视频平台/视频监控EasyCVR分享页面无法播放,该如何解决?

国标GB28181安防视频监控/视频集中存储/云存储EasyCVR平台可拓展性强、视频能力灵活、部署轻快,可支持的主流标准协议有国标GB28181、RTSP/Onvif、RTMP等,以及支持厂家私有协议与SDK接入,包括海康Ehome、海大宇等设备的SDK等。平台既具备传统…...

机器学习-逻辑回归

一、引言 逻辑回归(Logistic Regression)是一种广泛应用于分类问题的监督学习算法。尽管名字中含有“回归”二字,但这并不意味着它用于解决回归问题。相反,逻辑回归专注于解决二元或多元分类问题,如邮件是垃圾邮件还是…...

Edge调用Aria2下载

一、准备工作 1、Edge浏览器:Windows系统自带或点击下载;   2、Aria2 gui:点击github下载或自行搜索下载其他版本; 二、启动Aria2 gui 解压下载的Aria2 gui到任意目录,点击“Aria2c启动器”或“AriaNg启动器”皆可。…...

解密QQ号——C语言

题目: 有一串已加密的数字“6 3 1 7 5 8 9 2 4”解密规则:首先将第1个数字删除,紧接着将第2个数字放到这串数字的末尾,再将第3个数字删除并将第4个数字放到这串数字的末尾,再将第5个数删除 代码实现: #inc…...

三、jvm中的对象及引用

一、对象在jvm的创建过程 检查加载-->分配内存-->内存空间初始化-->设置-->对象初始化 1) 检查加载 首先检查这个指令的参数是否能在常量池中定位到一个类的符号引用,并且检查类是否已经被加载、解析和初始化过。 虚拟机遇到一条 new 指令时&#xf…...

Docker网络架构介绍

本文主要介绍了Docker容器的单机网络架构与集群网络架构,辅以演示,并简单介绍了网络管理中的命令。 前文: Docker的安装与简单操作命令-CSDN博客 docker网络原理介绍 与ovs类似,docker容器采用veth-pair linux bridge (虚拟交…...

Android studio新版本aar包导入项目中配置

目录 1、so、aar导入在项目build.gradle中配置 2、新版本迁移到setting.grade配置 1、so、aar导入在项目build.gradle中配置 repositories {flatDir {dirs libs} }2、新版本迁移到setting.grade配置 flatDir {dirs libs } 如下图所示 pluginManagement {repositories {gra…...

HBase-架构与设计

HBase架构与设计 一、背景二、HBase概述1.设计特点2.适用场景2.1 海量数据2.2 稀疏数据2.3 多版本数据2.4 半结构或者非结构化数据 三、数据模型1.表逻辑结构2.RowKey3.Column Family4.TimeStamp5.存储结构 四、HBase架构图1.Client2.Zookeeper3.HMaster4.HRegionServer5.HRegi…...

SpringBoot基础系列:工具类使用

断言 Assert // 要求参数 object 必须为非空(Not Null),否则抛出异常,不予放行 // 参数 message 参数用于定制异常信息。 void notNull(Object object, String message) // 要求参数必须空(Null)&#xff…...

使用 nohup java - jar 不输出日志

要在使用nohup java -jar命令时不输出日志,可以将标准输出和标准错误输出重定向到特殊设备文件/dev/null。这样做将会丢弃所有的输出。 以下是在Linux中使用nohup java -jar命令并禁止输出日志的示例: 复制代码 nohup java -jar your-application.jar …...

前端开发学习 (五) 生命周期函数、Ajax请求

关于vue实例的声明周期,从Vue实例创建、运行、到销毁期间,总是伴随着各种各样的事件,这些事件,统称为生命周期 (https://cn.vuejs.org/v2/guide/instance.html#实例生命周期 ) 而声明周期勾子就是生命周期…...

TypeScript中的单件设计模式

基本概念 (1) 了解设计模式 设计模式通俗的讲,就是一种更好的编写代码方案,打个比喻:从上海到武汉,你可以选择做飞机,做轮船,开车,骑摩托车多种方式,把出行…...

【无标题】安装环境

这里写目录标题 清华镜像加速 安装cuda11.3 PyTorch 1.10.1https://pytorch.org/get-started/previous-versions/[如果没有可以点Previous pyTorch Versions,这里面有更多的更早的版本](https://pytorch.org/get-started/locally/) 复制非空文件夹cp: -r not specif…...

一. 初识数据结构和算法

数据结构与算法是一个达到高级程序员的敲门砖。当你脱离了语言的应用层面,去思考他的设计层面时,你就依旧已经开始初识数据结构与算法了 数据结构 什么是数据结构 对于数据结构的定义官方并没有统一的解释,在各个百科以及算法的书中&#xf…...

qt 使用百度在线地图 方法1

在使用Qt和百度在线地图时,你需要从百度地图开放平台获取API密钥,并使用该密钥在Qt应用程序中集成百度地图。以下是一个简单的示例,演示了如何在Qt中使用百度在线地图: 1,首先,从百度地图开放平台获取API密…...

轻快小miniconda3在linux下的安装配置-centos9stream-Miniconda3 Linux 64-bit

miniconda与anaconda的区别: Miniconda 和 Anaconda 是用于管理环境和安装软件包的 Python 发行版。它们之间的主要区别在于以下几点: 1. 安装内容和大小: Anaconda: Anaconda 是一个完整的 Python 数据科学平台,包含…...

C语言——字符函数和字符串函数(一)

📝前言: 这篇文章对我最近学习的有关字符串的函数做一个总结和整理,主要讲解字符函数和字符串函数(strlen,strcpy和strncpy,strcat和strncat)的使用方法,使用场景和一些注意事项&…...

变量 varablie 声明- Rust 变量 let mut 声明与 C/C++ 变量声明对比分析

一、变量声明设计:let 与 mut 的哲学解析 Rust 采用 let 声明变量并通过 mut 显式标记可变性,这种设计体现了语言的核心哲学。以下是深度解析: 1.1 设计理念剖析 安全优先原则:默认不可变强制开发者明确声明意图 let x 5; …...

华为OD机试-食堂供餐-二分法

import java.util.Arrays; import java.util.Scanner;public class DemoTest3 {public static void main(String[] args) {Scanner in new Scanner(System.in);// 注意 hasNext 和 hasNextLine 的区别while (in.hasNextLine()) { // 注意 while 处理多个 caseint a in.nextIn…...

【单片机期末】单片机系统设计

主要内容:系统状态机,系统时基,系统需求分析,系统构建,系统状态流图 一、题目要求 二、绘制系统状态流图 题目:根据上述描述绘制系统状态流图,注明状态转移条件及方向。 三、利用定时器产生时…...

Psychopy音频的使用

Psychopy音频的使用 本文主要解决以下问题: 指定音频引擎与设备;播放音频文件 本文所使用的环境: Python3.10 numpy2.2.6 psychopy2025.1.1 psychtoolbox3.0.19.14 一、音频配置 Psychopy文档链接为Sound - for audio playback — Psy…...

【VLNs篇】07:NavRL—在动态环境中学习安全飞行

项目内容论文标题NavRL: 在动态环境中学习安全飞行 (NavRL: Learning Safe Flight in Dynamic Environments)核心问题解决无人机在包含静态和动态障碍物的复杂环境中进行安全、高效自主导航的挑战,克服传统方法和现有强化学习方法的局限性。核心算法基于近端策略优化…...

GitHub 趋势日报 (2025年06月06日)

📊 由 TrendForge 系统生成 | 🌐 https://trendforge.devlive.org/ 🌐 本日报中的项目描述已自动翻译为中文 📈 今日获星趋势图 今日获星趋势图 590 cognee 551 onlook 399 project-based-learning 348 build-your-own-x 320 ne…...

LCTF液晶可调谐滤波器在多光谱相机捕捉无人机目标检测中的作用

中达瑞和自2005年成立以来,一直在光谱成像领域深度钻研和发展,始终致力于研发高性能、高可靠性的光谱成像相机,为科研院校提供更优的产品和服务。在《低空背景下无人机目标的光谱特征研究及目标检测应用》这篇论文中提到中达瑞和 LCTF 作为多…...

快速排序算法改进:随机快排-荷兰国旗划分详解

随机快速排序-荷兰国旗划分算法详解 一、基础知识回顾1.1 快速排序简介1.2 荷兰国旗问题 二、随机快排 - 荷兰国旗划分原理2.1 随机化枢轴选择2.2 荷兰国旗划分过程2.3 结合随机快排与荷兰国旗划分 三、代码实现3.1 Python实现3.2 Java实现3.3 C实现 四、性能分析4.1 时间复杂度…...

多元隐函数 偏导公式

我们来推导隐函数 z z ( x , y ) z z(x, y) zz(x,y) 的偏导公式,给定一个隐函数关系: F ( x , y , z ( x , y ) ) 0 F(x, y, z(x, y)) 0 F(x,y,z(x,y))0 🧠 目标: 求 ∂ z ∂ x \frac{\partial z}{\partial x} ∂x∂z​、 …...

聚六亚甲基单胍盐酸盐市场深度解析:现状、挑战与机遇

根据 QYResearch 发布的市场报告显示,全球市场规模预计在 2031 年达到 9848 万美元,2025 - 2031 年期间年复合增长率(CAGR)为 3.7%。在竞争格局上,市场集中度较高,2024 年全球前十强厂商占据约 74.0% 的市场…...