数据库范式5nf_第五范式(5NF)| 数据库管理系统

数据库范式5nf

Fifth normal form (5NF) is also known as project-join normal form (PJ/NF). It is designed to minimize redundancy in relational databases by separating semantically connected relationships in multiple formats to store multi-valued facts.

第五范式(5NF)也称为投影联合范式(PJ / NF) 。 它旨在通过以多种格式分隔语义连接的关系来存储多值事实,以最大程度地减少关系数据库中的冗余。

A relation R is in 5NF if and only if every non-trivial join dependency in R is implied by the candidate keys of R. A relation break up into two relations must contain lossless join Property, which makes certain that no invalid or extra tuples of attributes are created when relations are again joined together through a natural join.

关系R5NF当且仅当每一个不平凡的连接依赖于RR的候选键暗示。 分解为两个关系的关系必须包含无损连接属性,这可以确保在通过自然连接将关系再次连接在一起时,不会创建任何无效或多余的元组。

Properties:

特性:

A relation R with attributes, its values and tuples is in 5NF if and only if the following conditions are satisfied,

当且仅当满足以下条件时,带有属性,其值和元组的关系R的值为5NF

  1. The relation R should be already in 4NF.

    关系R应该已经在4NF中 。

  2. The relation R cannot be additionally non loss decomposed (join dependency).

    关系R不能另外进行非损耗分解(联接依赖)。

If the relation or table can further decompose to remove redundancy and anomaly, and when the process of rejoining followed the decomposed tables through the means of candidate keys, we should not be losing the original data or any new record set should not arise. Understandably, joining two or more decomposed table should not lose records or create new records.

如果关系或表可以进一步分解以消除冗余和异常,并且当重新连接的过程通过候选键的方式遵循分解后的表时,我们不应丢失原始数据,也不应出现任何新的记录集。 可以理解,联接两个或多个分解表不应丢失记录或创建新记录。

Join dependency

连接依赖

A table or relation can be recreated or re-designed by joining multiple tables and each table of this contain a subset of the attributes and values of the table, then the table is in Join Dependency. It is a generalization of Multivalued Dependency.

可以通过联接多个表来重新创建或重新设计一个表或关系,并且该表或关系的每个表都包含该表的属性和值的子集,然后该表处于联接依赖关系中。 它是多值依赖关系的概括。

If the join of R1 and R2 over S is equal to relation R then we can say that a join dependency exists, where R1 and R2 are the decomposition R1 (P, Q, S) and R2 (Q, T) of a given relation R (P, Q, S, T). As a possibility, R1 and R2 are a lossless decomposition of R.

如果R1R2S上的连接等于关系R,那么我们可以说存在连接依赖关系,其中R1R2是给定关系的分解R1(P,Q,S)R2(Q,T) R(P,Q,S,T) 作为一种可能性,R1R2R的无损分解。

Over a relation R a Join Dependency ⋈ {R1, R2, ..., Rn} is said to hold if R1, R2, ..., Rn is lossless-join decomposition. The *(P, Q, S, T), (S, T) will be a Join Dependency of R if the join of join's attribute is equal to the relation R. Here, *(R1, R2, R3) is used to specify that relation R1, R2, R3 and so on is a Join Dependency of R.

在关系R上 如果R1,R2,...,Rn是无损连接分解则称连接依赖项⋈{R1,R2,...,Rn}成立。 如果联接属性的联接等于关系R ,则*(P,Q,S,T),(S,T)将是R的联接依赖关系。 此处, *(R1,R2,R3)用于指定关系R1,R2,R3等是R的连接依赖关系。

Join Dependency can be associated to 5NF, wherein a relation is in 5NF, only if it is already in 4NF and it cannot be decomposed further.

Join Dependency可以与5NF相关联,其中关系只有在5NF中且不能进一步分解的情况下才在5NF中

Contrarily, in the case of functional dependencies, there is no sound and complete axiomatization for join dependencies, however, axiomatization exists for more expressive dependency languages such as full typed dependencies.

相反,在功能依赖关系的情况下,对于联接依赖关系没有完善的公理化方法,但是,对于更具表现力的依赖关系语言(例如全类型依赖关系)存在公理化方法。

On the other hand, the implication of join dependencies is decidable.

另一方面,联接依赖的含义是可以确定的。

Example:

例:

Consider a table which contains a record of Subject, Professor and Semester in three columns.

考虑一个表,该表在三列中包含SubjectProfessorSemester的记录。

The primary key is the combination of all three columns. Also take an account that the table is in 4NF, as long as there are no multivalued dependencies (2-part join dependencies) in the table: no column (which by itself is not a candidate key or a super key) is a determinant for the other two columns.

主键是所有三列的组合。 还应考虑到该表位于4NF中,只要该表中没有多值依赖项(两部分联接依赖项):没有列(其本身不是候选键或超级键)是其他两列。

If the presence of any properly structured rule is not there to organize the three attributes of the table, it is important to structure them correctly by handling constraint.

如果没有适当的结构化规则来组织表的三个属性,则通过处理约束来正确构造它们很重要。

In the table, Data structure is taught by Madhurima and Sravan in semester 3, Automata by Abhijeet and Sushmita. In this case, the combination of all these fields required to identify valid data.

在表中,Madhurima和Sravan在第3学期讲授了数据结构,Abhijeet和Sushmita讲授了Automata。 在这种情况下,标识有效数据所需的所有这些字段的组合。

So to make the table into 5NF, we can decompose it into three relations,

因此,要使表格变为5NF,我们可以将其分解为三个关系,

SubjectProfessorSemester
Maths 2Saurav2
Data structureMadhurima3
AutomataAbhijeet5
Data structureSravan3
AutomataSushmita5
Computer networkKaran2
Digital logical designAbhijeet5
学科 教授 学期
数学2 绍拉夫 2
数据结构 马杜里玛 3
自动机 阿比耶耶 5
数据结构 斯拉万 3
自动机 舒米塔 5
计算机网络 卡兰 2
数字逻辑设计 阿比耶耶 5
SemesterSubject
2Maths 2
3Data structure
5Automata
2Computer network
5Digital logical design
学期 学科
2 数学2
3 数据结构
5 自动机
2 计算机网络
5 数字逻辑设计
SubjectProfessor
Maths 2Saurav
Data structureMadhurima
AutomataAbhijeet
Data structureSravan
AutomataSushmita
Computer networkKaran
Digital logical designAbhijeet
学科 教授
数学2 绍拉夫
数据结构 马杜里玛
自动机 阿比耶耶
数据结构 斯拉万
自动机 舒米塔
计算机网络 卡兰
数字逻辑设计 阿比耶耶
SemesterProfessor
2Saurav
3Madhurima
5Abhijeet
3Sravan
5Sushmita
2Karan
5Abhijeet
学期 教授
2 绍拉夫
3 马杜里玛
5 阿比耶耶
3 斯拉万
5 舒米塔
2 卡兰
5 阿比耶耶

翻译自: https://www.includehelp.com/dbms/fifth-normal-form-5nf-dbms.aspx

数据库范式5nf

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

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

相关文章

量子物理 詹班 计算机,(电气系计算机系詹班)量子物理作业答案

西南交大峨眉校区大学物理西南交大峨眉校区《大学物理》(量子物理基础)作业6(电气、计算机、詹班)一 选择题1. 以一定频率的单色光照射在某种金属上,测出其光电流曲线在图中用实线表示,然后保持光的频率不变,增大照射光的强度,测出…

MySQL5.6 新特性之GTID【转】

转自 MySQL5.6 新特性之GTID - jyzhou - 博客园http://www.cnblogs.com/zhoujinyi/p/4717951.html 背景: MySQL5.6在5.5的基础上增加了一些改进,本文章先对其中一个一个比较大的改进"GTID"进行说明。 概念: GTID即全局事务ID&#…

python判断素数程序_Python程序检查素数

python判断素数程序什么是质数? (What is a prime number?) A prime number is a natural number that is greater than 1 and cannot be formed by multiplying two smaller natural numbers. 质数是大于1的自然数,不能通过将两个较小的自然数相乘而形…

计算机高级工程师职称评定条件,高级工程师职称评定条件是什么

高级工程师职称评定条件是什么,高级工程师职称有什么作用,以下是小编整理的高级工程师职称评定条件相关内容,供您参考。高级工程师评定条件1、本科毕业及以上,获得工程师资格5年以上,可以申报高级工程师。2、博士毕业&…

c# datetime._C#| DateTime.Year属性与示例

c# datetime.DateTime.Month属性 (DateTime.Month Property) DateTime.Month Property is used to get the year component of this object. Its a GET property of DateTime class. DateTime.Month属性用于获取此对象的年份组成部分。 这是DateTime类的GET属性。 Syntax: 句法…

NO6——KMP

1 int next[N];2 char str1[M],str2[N];3 //str1 长&#xff0c;str2 短4 //len1,len2,对应str1,str2的长5 6 void get_next(int len2)7 {8 int i 0,j -1;9 next[0] -1;10 while(i<len2)11 {12 if(j -1 || str2[i] str2[j])13 {14 …

计算机文化基础第二章,计算机文化基础(第二章Windows2000操作系统)

计算机文化基础(第二章Windows2000操作系统)第二章Windows 2000 操作系统1. 打开“资源管理器”的方法不能是_A右击“开始”按钮 B选择“开始” 、 “程序”菜单 C从“我的电脑”的快捷菜单 D从“控制面板”中选择2. 在“资源管理器”中选定多个文件的方法不能是_A逐个双击要选…

r语言简介_R语言简介

r语言简介R is a language and environment for statistical computing and graphics that is supported by the R Foundation for Statistical Computing. It is a GNU project which is similar to the S language and environment developed at Bell Laboratories by John C…

linux中echo的使用方法

1.echo命令我们经常使用的选项有两个&#xff0c;一个是-n&#xff0c;表示输出之后不换行。另外一个是-e&#xff0c;表示对于转义字符按对应的方式处理&#xff0c;假设不加-e那么对于转义字符会按普通字符处理。 2.echo输出时的转义字符 \b 表示删除前面的空格 \n 表示换行 …

如何让计算机两个用户使用不同步,如何实现两台或多台电脑远程修改文件同步更新?...

说起文件同步工具&#xff0c;现在网上这样的程序很多&#xff0c;微软也为用户提供了一款免费的远程同步软件——Windows Live Sync。该程序提供的文件同步功能允许用户在两台或更多电脑上对指定的文件夹中的文件进行同步更新。小知识&#xff1a;文件的同步更新&#xff0c;就…

本地事物的简介

2019独角兽企业重金招聘Python工程师标准>>> 此章带大家回顾下本地事物的一些内容。标题 2 事物: 有一组操作构成的可靠,独立的工作单元----百度百科 事物的四大特性: A:原子性(Atomicity)事务是数据库的逻辑工作单位&#xff0c;事务中包括的诸操作要么全做&#x…

dbms数据库管理系统_DBMS中的数据库语言

dbms数据库管理系统DBMS数据库语言 (DBMS Database languages ) Database languages are the languages that provide the facility to specify the database schema and to express database queries and updates. They are further divided into four categories but all are…

物联网计算机相关专业吗,物联网工程属于计算机专业吗

励志语录(7qianxun.com)不是,物联网工程本身就是一个专业,属于工学范畴。本专业学生要具有较好的数学和物理基础&#xff0c;掌握物联网的相关理论和应用设计方法&#xff0c;具有较强的计算机技术和电子信息技术的能力。物联网工程专业就业前景怎么样教育装备网、物联网是继计…

第一个错误的版本_寻找第一个错误的版本

第一个错误的版本Problem statement: 问题陈述&#xff1a; Suppose that IncludeHelp turns to be a product company & we have a product manager leading a team to develop a new product. Unfortunately, the latest version of our product fails the quality chec…

js的JSON

把任何JavaScript对象变成JSON&#xff0c;就是把这个对象序列化成一个JSON格式的字符串&#xff0c;这样才能够通过网络传递给其他计算机。 如果我们收到一个JSON格式的字符串&#xff0c;只需要把它反序列化成一个JavaScript对象&#xff0c;就可以在JavaScript中直接使用这个…

软件可用性测试mantis,学生选课系统-软件可用性测试实验.doc

学生选课系统-软件可用性测试实验实验报告课程名称&#xff1a;软件测试方法和技术学生姓名&#xff1a;学号&#xff1a;院系&#xff1a;计算机 班级&#xff1a;1202 组别&#xff1a;1任课教师&#xff1a;张建东 指导老师&#xff1a;张建东目录一、实验目的&#xff1a;实…

Web 通信 之 长连接、长轮询(long polling)

基于HTTP的长连接,是一种通过长轮询方式实现"服务器推"的技术,它弥补了HTTP简单的请求应答模式的不足,极大地增强了程序的实时性和交互性。 一、什么是长连接、长轮询&#xff1f; 用通俗易懂的话来说&#xff0c;就是客户端不停的向服务器发送请求以获取最新的数据信…

scala中捕获异常_如何在Scala中引发异常?

scala中捕获异常Scala的例外 (Exceptions in Scala) Exceptions are cases or events that occur in the program at run time and hinder the regular flow of execution of the program. These can be handled in the program itself. 例外是在运行时在程序中发生并阻碍程序…

计算机如何输入ip地址,电脑如何切换ip地址_怎么让电脑切换ip地址-win7之家

在每台电脑中&#xff0c;系统中的ip协议都会有提供一种统一的ip地址&#xff0c;能够为为互联网上的每一个网络和每一台主机分配一个逻辑地址&#xff0c;从而达到屏蔽物理地址的差异&#xff0c;同时我们也可以对ip地址进行切换&#xff0c;那么电脑如何切换ip地址呢&#xf…

java线程和操作系统线程_操作系统中的线程

java线程和操作系统线程线程数 (Threads) A thread is a unit of CPU utilization, which comprises the following parts that are program counter, register set, stack and a thread ID. Generally, it’s well known that the process is heavy weighted which means they…