首页 > 数据库 >数据库第六版第8章部分习题

数据库第六版第8章部分习题

时间:2024-12-22 18:56:56浏览次数:6  
标签:bc 数据库 第六版 分解 student Pk 习题 instructor 无损

在这里插入图片描述

r1和r2交集是A,对A求闭包可以推出全集,故一定是无损分解。

在这里插入图片描述
在这里插入图片描述

A->B、C->B、AC->B

在这里插入图片描述

a.Pk(student) → Pk (instructor) 、Pk(instructor) → Pk(student)
b.Pk(student) → Pk(instructor)

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

A, BC, CD 和 E. 先判断一个字母的,A和E很容易判断出是候选码,那么包括AE的且比A,E大的就不可能是候选码,然后判断B C D 的组合是否可能构造出候选码。

在这里插入图片描述
在这里插入图片描述

我们求正则覆盖的时候虽然要先把右侧分解成单属性,但是求好的正则覆盖要求左侧属性不能相同。如A->B A->C 必须要合并为A->BC这样。

在这里插入图片描述

// a. 
select * from R group by b having count(distinct c) > 1
// b. 
create assertion b_to_c check(
	not exists(
		select * from R 
		group by b 
		having count(distinct c) > 1
	)
)

在这里插入图片描述

无损分解要保证分解后的关系在经过自然连接后得到的关系要与分解前的关系是等价的。如果左侧出现了空值,那么在自然连接的过程中会把这些空值过滤掉,导致分解是有损的。

在这里插入图片描述
在这里插入图片描述

B->D CD->E都没保持依赖

在这里插入图片描述

(B,D)、(A,B,C,E)

在这里插入图片描述

(A,B,C)、(C,D,E)、(B,D)、(A,E)

在这里插入图片描述

ABC
a1b1c1
a1b1c2

在这里插入图片描述

a->bc 则a->b 且 a->c
证明:
a->bc
bc->b
a->b
bc->c
a->c

在这里插入图片描述

无损分解,保持依赖,最大程度减少数据冗余
因为我们可以准确维护数据库,快速检查更新的正确性,并节省空间。

在这里插入图片描述

因为BCNF不一定能做到保持依赖,所以我们选择3NF来达到无损分解和保持依赖。

标签:bc,数据库,第六版,分解,student,Pk,习题,instructor,无损
From: https://blog.csdn.net/weixin_59659714/article/details/144639935

相关文章

  • Derby 数据库介绍(2)--使用
    本文主要介绍Derby的基本使用(简介可参考:Derby数据库介绍(1)--简介),文中所使用到的软件版本:Java1.8.0_341、Derby10.14.2.0。1、嵌入模式直接使用JDBC连接数据库,可创建和启动数据库。1.1、内存数据库@TestpublicvoidembeddedMemory()throwsSQLException{S......
  • MySQL 数据库优化:分区、分表与索引创建
    MySQL数据库优化:分区、分表与索引创建目录概述MySQL分区(Partitioning)2.1什么是分区?2.2使用场景2.3分区类型2.4分区维护2.5示例:创建分区表MySQL分表(Sharding)3.1什么是分表?3.2使用场景3.3分片键选择3.4示例:手动分表3.5分表的挑战MySQL索引创建4.1什么是......
  • java2实用教程第六版习题答案 第3章
    第3章一.判断题1.×(应该是true)  2.√ (表达式中最高精度为int,按int算) 3.√    4.× (应该是boolean型)  5.√    6.√    7.√   8.√ 9.×  (并不是必须的,也可以没有)  10.×二.单选1.A (算术混合运算的精度问题,B应为double类......
  • 【C/C++】手搓项目中常用小工具:日志、sqlit数据库、Split切割、UUID唯一标识
    每日激励:“不设限和自我肯定的心态:Icandoallthings。—StephenCurry”绪论​:本章将写到一些手搓常用工具,方便在项目中的使用,并且在手搓的过程中一些函数如:日志宏中的__VA_ARGS__接收可变参、SQLlit数据库的C语言接口、Split中string的使用,以及UUID中随机数的......
  • Redis篇--常见问题篇6--缓存一致性1(Mysql和Redis缓存一致,更新数据库删除缓存策略)
    1、概述在使用Redis作为MySQL的缓存层时,缓存一致性问题是指Redis中的缓存数据与MySQL数据库中的实际数据不一致的情况。这可能会导致读取到过期或错误的数据,从而影响系统的正确性和用户体验。为了减轻数据库的压力,通常读操作都是先读缓存,缓存没有则读数据库数据在写入缓存......
  • 【04-数据库面试】
    如何创建一个新的数据库数据库是现代信息技术中不可或缺的一部分,它为存储、检索和管理数据提供了强大的工具。无论是企业还是个人,都可能需要创建自己的数据库以满足特定的需求。本文将详细介绍创建一个新数据库的步骤,包括规划、选择数据库类型、设计数据库结构、创建数据库......
  • 【03-数据库面试】
    如何安装MySQLMySQL是一个广泛使用的开源关系型数据库管理系统(RDBMS),它基于SQL(StructuredQueryLanguage)语言,用于管理SQL数据库。MySQL是一个特性丰富、性能高效、可靠性强、易用、灵活的数据库解决方案,适用于各种应用程序,从小型应用到大型企业级应用。本文将详细介绍如何......
  • 【01-数据库面试】
    数据库的join查询是SQL语言中一个非常重要的概念,它允许我们从多个表中检索数据。在实际应用中,数据往往分散在不同的表中,而join查询则提供了一种将这些分散的数据组合在一起的方法。本文将详细介绍join查询的类型、语法以及应用场景。Join查询的类型INNERJOIN(内连接):内连......
  • 【02-数据库面试】
    在现代信息技术领域,数据库是存储和管理数据的核心组件。SQL(结构化查询语言)是与数据库交互的标准语言,广泛应用于各种数据库管理系统中。掌握常用的SQL语句对于数据库管理员、开发者以及数据分析师来说至关重要。本文将详细介绍一些常用的SQL语句及其应用场景。1.数据查询(SE......
  • 武理多媒体信息共享平台(源码+数据库+报告)
    360.基于SpringBoot的武理多媒体信息共享平台,系统包含两种角色:管理员、用户,系统分为前台和后台两大模块二、项目技术编程语言:Java数据库:MySQL项目管理工具:Maven前端技术:Vue后端技术:SpringBoot三、运行环境操作系统:Windows、macOS都可以JDK版本:JDK1.8以上都可以开发......