数据库设计冗余和不完整的区别

数据库设计冗余和不完整的区别,第1张

DEVELOPERS

开发

活动

Programs

社区

学堂

大赛

支持

语言

登录

注册

APP

数据冗余数据不一致的区别丨【绽放吧!数据库】

海拥 2021/08/06 1.2k+

【摘要】 数据冗余和数据不一致是数据库中使用的重要术语。一个好的数据库设计是将数据冗余和数据不一致最小化的设计。在本文中,我们将介绍这两个术语是什么以及它们之间有什么区别。

概述:

数据冗余和数据不一致是数据库中使用的重要术语。一个好的数据库设计是将数据冗余和数据不一致最小化的设计。在本文中,我们将介绍这两个术语是什么以及它们之间有什么区别。

数据冗余:

它被定义为冗余意味着重复数据,也表示数据的相同部分存在于数据库中的多个位置。这种情况称为数据冗余。

数据冗余问题:

在这里,我们将讨论数据冗余的几个问题,如下所示。

1.浪费的存储空间。

2.更困难的数据库更新。

3.会导致数据不一致。

4.数据检索缓慢且效率低下。

示例 –

让我们以板球运动员桌为例。

步骤 1:

如下考虑板球运动员表。

参赛者姓名 队员年龄 队名 团队编号

马龙 32 中国队 1

迪米特里·奥恰洛夫 32 德国队 2

樊振东 24 中国队 1

许昕 31 中国队 1

蒂姆·波尔 40 德国队 2

派翠克·法兰兹卡 29 德国队 2

步骤 2:

我们可以清楚地看到 队名 和 团队ID 在多处重复。我们可以制作一个单独的表来存储这些信息并减少数据冗余。

参赛者姓名 队员年龄 团队编号

马龙 32 1

迪米特里·奥恰洛夫 32 2

樊振东 24 1

许昕 31 1

蒂姆·波尔 40 2

派翠克·法兰兹卡 29 2

步骤 3:

这称为标准化,用于减少数据冗余。

团队编号 队名

1 中国队

2 德国队

数据不一致:

当相同的数据以不同的格式存在于多个表中时。这种情况称为数据不一致。这意味着不同的文件包含有关特定对象或人的不同信息。这可能会导致不可靠和无意义的信息。数据冗余导致数据不一致。

例子

如果我们在很多表中有一个人的地址,当我们只在一个表中更改它而在另一个表中它可能不会更新,因此可能会出现数据不一致的问题。

区别:

话题 数据冗余 数据不一致

状况 适用于数据库中多处存在重复数据的情况。 适用于多个表中存在不同格式重复数据的情况。

如何最小化? 我们可以使用标准化来最小化数据冗余。 我们可以对数据库使用约束来最小化数据不一致。

以上就是本篇文章所要介绍的数据冗余和数据不一致的区别

一、

简单查询

简单的transact-sql查询只包括选择列表、from子句和where子句。它们分别说明所查询列、查询的表或视图、以及搜索条件等。

例如,下面的语句查询testtable表中姓名为“张三”的nickname字段和email字段。

select

nickname,email

from

testtable

where

name='张三'

(一)

选择列表

选择列表(select_list)指出所查询列,它可以是一组列名列表、星号、表达式、变量(包括局部变量和全局变量)等构成。

1、选择所有列

例如,下面语句显示testtable表中所有列的数据:

select

*

from

testtable

2、选择部分列并指定它们的显示次序

查询结果集合中数据的排列顺序与选择列表中所指定的列名排列顺序相同。

例如:

select

nickname,email

from

testtable

3、更改列标题

在选择列表中,可重新指定列标题。定义格式为:

列标题=列名

列名

列标题

如果指定的列标题不是标准的标识符格式时,应使用引号定界符,例如,下列语句使用汉字显示列标题:

select

昵称=nickname,电子邮件=email

from

testtable

4、删除重复行

select语句中使用all或distinct选项来显示表中符合条件的所有行或删除其中重复的数据行,默认为all。使用distinct选项时,对于所有重复的数据行在select返回的结果集合中只保留一行。

5、限制返回的行数

使用top

n

[percent]选项限制返回的数据行数,top

n说明返回n行,而top

n

percent时,说明n是表示一百分数,指定返回的行数等于总行数的百分之几。

例如:

select

top

2

*from

testtable

select

top

20

percent

*

from

testtable

(二)from子句

from子句指定select语句查询及与查询相关的表或视图。在from子句中最多可指定256个表或视图,它们之间用逗号分隔。

在from子句同时指定多个表或视图时,如果选择列表中存在同名列,这时应使用对象名限定这些列所属的表或视图。例如在usertable和citytable表中同时存在cityid列,在查询两个表中的cityid时应使用下面语句格式加以限定:

select

username,citytable.cityid

from

usertable,citytable

where

usertable.

本篇文章来源于

黑软基地-中国最大的黑客教程计算机安全教程下载基地

原文链接:

http://www.hackvip.com/article/sort056/sort058/kkkcc.com-2297.html

你的userId是自增的么?如果是,那就不好办,你程序控制nickName,让它不能为已经存在的值就行了,当然,你也可以取出当前最大userId,然后+1插入到nickName中。

如果不是,在你的程序中做处理就行了,把两个字段设成一样的插入即可。


欢迎分享,转载请注明来源:内存溢出

原文地址:https://www.54852.com/sjk/9796144.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-02
下一篇2023-05-02

发表评论

登录后才能评论

评论列表(0条)

    保存