消除数据库表中的重复组

news2024/12/24 21:35:32

重复组是在整个数据库表中重复的一系列字段/属性。大型和小型组织都面临着一个普遍的问题,这个问题可能会带来多种后果。例如,在不同区域中存在的同一组信息会导致数据冗余和数据不一致。而且,所有这些重复的数据可能会占用大量宝贵的磁盘空间,并需要很长时间进行搜索。在小型组织中,重复组的问题可以解决,但是对于必须管理大量信息的大型组织,重复组可能成为一场噩梦。

在今天的博客中,我们将学习如何在设计时和现有数据库中识别重复组,以及如何修复它们。由于重复组是一种可能影响任何关系数据库的现象,因此我们将使用 Navicat Premium 作为我们的数据库开发工具。点击这里,下载14天免费全功能试用版。

重复组的例子

Sakila示例数据库包含许多与虚构视频租赁商店有关的数据库实体。尽管其表已标准化为“第三范式”(3NF),但出于本教程的目的,我们将认为电影表包含有关每部电影中出现的演员的数据。这是该表中的行的示例:

您可以看到每个演员都在表中添加了额外的一行。 更糟糕的是,演员的名字每次出现时都会重复出现。 问题在于演员是与电影分离的独立实体。 因此,他们需要走了。

固定重复组

严格来讲,即使重复组没有违反第一范式(1NF),将数据从非规范化格式(UNF)转换为1NF的过程也会消除重复组。这是执行此操作的步骤:

  • 确定重复的数据组。
  • 将重复的组字段删除到新表中,并保留主表的副本和剩余的表。
  • 原始主键现在将不再是唯一的,因此使用原始主键作为组合键的一部分为关系分配新的主键。

由于我们已经确定了重复组,因此我们重新设计表格,以便省略重复组字段并为其指定自己的表。

Navicat Premium 带有内置的 数据模型工具。它可以帮助您直观地设计高质量的概念,逻辑和物理数据模型。从那里,您可以从模型生成数据库结构。 数据建模工具也可以逆向工作,从现有数据库执行逆向工程。其他功能包括从ODBC数据源导入,生成复杂的SQL / DDL以及将模型打印到文件。

这是显示现有的films_and_actors表的模型:

为了将演员与电影分开,我们需要添加一个新表来管理演员属性。 我们还应该给它一个ID PK字段,该字段将链接到原始表中的相同(新FK)字段。.

您还需要重命名表以反映电影表仅包含电影,而演员仅存储演员信息。

链接电影和演员表

如何将表链接在一起取决于它们之间的特定关系。 在这种情况下,一部电影可能有零个或多个演员,而演员可能出现在一个或多个电影中。 这种多对多的关系将需要一个中介表来链接电影和演员。 它仅包含电影和演员ID。 这是Navicat Modeler中完整的模型:

总论

在今天的博客中,我们学习了如何使用 Navicat Premium 强大的数据模型工具在设计时和现有数据库中识别重复组,以及如何修复它们。 Navicat Premium 16 添加了100多个增强功能,并包括一些新功能,可为您提供比以往更多的构建,管理和维护数据库的方式!

 往期回顾

1. 盗版引发设备瘫痪 | 官方严正声明:切勿在非官方渠道购买或下载 Navicat 软件

2. Navicat 荣获 Microsoft 金牌合作伙伴

3. Navicat 16.3 正式支持 OceanBase 企业版

4. 免费试用 Navicat 16

5. Navicat 发展史

6. SQL 语句中 WHERE 1=1 的作用

7. 在 SQL 中计算总行数的百分比

8. 互动有礼活动进行中 | 奖品为价值 819 元 Navicat Premium

9. Navicat NAPP 校企合作和申请免费一年期的 Navicat Premium 教育版

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

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

相关文章

【计算机图形学入门】笔记2:向量与线性代数(图形学中用到的线性代数)

02向量与线性代数(图形学中用到的线性代数)1.A Swift and Brutal Introduction to Linear Algebra!简单粗暴入门线性代数1.Graphics’ Dependencies 图形学依赖的一些知识2.Vectors 向量1.Dot product向量的点乘2.向量的叉乘Cross product3.矩阵Matrix4.…

Linux——进程并发控制(系统中的POSIX信息量机制、进程间通信)

目录 一、Linux系统中POSIX信号量机制 1、POSIX有名信号量 (1)常用函数 (2)有名信号量应用于多线程的例子 (3)有名信号量应用于多进程 2、POSIX无名信号量 (1)常用函数 &…

基于jsp+mysql+ssm大学生社交平台-计算机毕业设计

项目介绍 本系统需要满足校园网上社交方面的基本需要。需要实现用户所要求的功能,方便他们进行交流。在界面上力求做到美观、操作方面尽量避免由于会员操作不当带来系统的出错现象。对数据库操作的性能需要做到优化,数据库过大将会影响运行速度。编程过…

(四) Docker镜像

Docker镜像一、概述二、镜像加载原理三、镜像注意点四、Docker镜像commit操作五、总结一、概述 书面解释 是一种轻量级、可执行的独立软件包,它包含运行某个软件所需的所有内容,我们把应用程序和配置依赖打包好形成一个可交付的运行环境(包括代码、运行时…

开关电源环路稳定性分析(04)-电压控制模式

大家好,这里是大话硬件。 在前3节分析了一个开环电源是如何工作的,开环电源的弊端也很明显,无法维持输出的稳定,不能抗扰动,无法得到我们想要的电压等等。因此,开关电源的闭环环路对稳定性来说非常重要。 …

LeetCode简单题之统计共同度过的日子数

题目 Alice 和 Bob 计划分别去罗马开会。 给你四个字符串 arriveAlice ,leaveAlice ,arriveBob 和 leaveBob 。Alice 会在日期 arriveAlice 到 leaveAlice 之间在城市里(日期为闭区间),而 Bob 在日期 arriveBob 到 l…

大数据:Storm和流处理简介

一、Storm 1.1 简介 Storm 是一个开源的分布式实时计算框架,可以以简单、可靠的方式进行大数据流的处理。通常用于实时分析,在线机器学习、持续计算、分布式 RPC、ETL 等场景。Storm 具有以下特点: 支持水平横向扩展;具有高容错…

信息安全技术 信息安全风险评估方法 汇总

概述 风险评估应贯穿于评估对象生命周期 各阶段中。评估对象生命周期各阶段中涉及的风险评估原则和方法昆一致的,但由干各阶段实施内容对象、安全需求不同.使得风险评估的对象、目的、要求等各方面也有所不同。在规划设计阶段,通过风险评估以确定评估对…

(推荐阅读)H264, H265硬件编解码基础及码流分析

需求 在移动端做音视频开发不同于基本的UI业务逻辑工作,音视频开发需要你懂得音视频中一些基本概念,针对编解码而言,我们必须提前懂得编解码器的一些特性,码流的结构,码流中一些重要信息如sps,pps,vps,start code以及基本的工作原理,而大多同学都只是一知半解,所以导致代码中的…

JAVA-元注解和注解

故事背景:罗芭是一名正在学习java的妹子,最近看甲骨文的官方文档,学到了注解Annotation这里,发现注解我可以自定义,但罗芭不会诶。但是布洛特 亨德尔已经学习过了java注解。 罗芭,help me~ 唰唰唰&#xff…

Redis05:Redis高级部分

Redis高级部分SpringBoot整合Redis整合测试序列化配置解决乱码问题redis自定义RedisTemplateSpringBoot整合Redis 说明:在SpringBoot2.x之后,原来使用jedis被替换成了letttuce! jedis:采用的时直连,多个线程操作的话,是不安全的&a…

MySQL下载和安装(Windows)

前言:刚换了一台电脑,里面所有东西都需要重新配置,习惯了所有东西都配好的装配,突然需要自己从头来配才发现不知道如何下手,所以决定将这些步骤都做个记录,以便后续查看。仅限没有安装过的人使用&#xff0…

关于海量级存储用户标签体系架构

项目场景: 对于我们运营来说,需要给用户打上不同的身份标签。比如用户是否偏重,身高范围,是不是我们的会员。。。等等一些标签。 比如我们有100W用户。我们需要来给100W用户打上接近200个不同身份的标签应该如何去做&#xff1f…

【数据集NO.4】遥感图像数据集汇总

文章目录前言一、NWPU VHR-10卫星图像数据集二、RSOD三、DIOR四、DOTA五、HRSC2016六、UCAS AOD七、HRRSD八、SSDD九、DLR 3K Vehicle前言 数据集对应应用场景,不同的应用场景有不同的检测难点以及对应改进方法,本系列整理汇总领域内的数据集&#xff0…

《MySQL实战45讲》——学习笔记20 “幻读、全表扫描的加锁方式、间隙锁、next-key lock“

本篇介绍MySQL在可重复度RR隔离级别下,引入的一种锁机制:间隙锁 (Gap Lock);间隙锁与事务相关的表锁、行锁不同,它锁的是“往这个间隙中插入一个记录”这个操作,除此之外间隙锁之间都不存在冲突关系(因而有…

Spring @Autowire注解源码详解

目录 一:触发方式: 二:源码解析 2.1 扫描注入点 2.2 属性赋值 一:触发方式: 1.Spring容器在每个Bean实例化之后,调用AutowireAnnotationBeanPostProcessor的postProcessMergedBeanDefinition方法进行扫…

[附源码]计算机毕业设计美发店会员管理系统Springboot程序

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybatis Maven Vue 等等组成,B/S模式 M…

七周成为数据分析师 | 数据可视化

一.常见的初级图表 维度:描述分析的角度和属性,分类数据(时间,地理位置,产品类型等) 度量:具体的参考数值,数值数据(元,销量,销售金额等&#x…

windows监控linux服务器资源grafana+prometheus+node_exporter

Windows环境监控Linux服务器资源grafanaprometheusnode_exporter 1.安装包下载 链接:https://pan.baidu.com/s/1xqdIYNtadt2tRSN-XlELUw 提取码:12342.安装grafana (1)将压缩包解压后,在bin文件目录下,点…

【Linux】shell命令以及运行原理和Linux权限详解

本期主题:Linux权限详解博客主页:小峰同学分享小编的在Linux中学习到的知识和遇到的问题小编的能力有限,出现错误希望大家不吝赐 目录 🍁1.shell命令以及运行结果 🍁2. Linux用户管理 🍁3. Linux权限管理 …