search
HomeJavajavaTutorialWhat is database three paradigms?

What is database three paradigms?

Jun 20, 2017 pm 03:34 PM
databaseunderstandparadigm

Understanding the three paradigms of database

First normal form (1NF):The so-called first normal form (1NF) refers to Each column of the database table is an indivisible basic data item. There cannot be multiple values ​​in the same column, that is, an attribute in the entity cannot have multiple values ​​or duplicate attributes. In any relational database, the first normal form (1NF) is the basic requirement for the relational model. A database that does not meet the first normal form (1NF) is not a relational database.

Understanding notes: Columns are inseparable, or understood as atomicity.

<span style="font-size: 15px;"><strong>第二范式(2NF):</strong>在理解第二范式(2NF)之前首先了解什么是<strong>组合主键</strong>,当一个字段无法确定唯一性的时候,需要其他字段来一起形成唯一性。就是说用来组成唯一性的字段如果有多个就是组合主键。<br>如<br>学生成绩(学号,课程号,成绩)<br>那学号和课程号就可以做为联合主键。<br>因为学号和课程号决定了成绩。也就是说。你要知道成绩,你就要知道学号,知道学号,但还不能知道某一科的成绩。还要知道课程号。<br></span><span style="font-size: 15px;">第二范式(2NF)是在第一范式(1NF)的基础上建立起来的,即满足第二范式(2NF)必须先满足第一范式(1NF)。第二范式(2NF)要求数据库表中的每个实例或行必须可以被惟一的区分。为实现区分通常需要为表加上一个列,以存储各个实例的惟一标识即主键。要求实体的属性完全依赖于主键关键字。第二范式主要是为了防止以下情况的发生,一张表存在组合主键时,其他非主键字段不能部分依赖。如:<br></span><span style="font-size: 15px;">学生成绩(学号,课程号,课程名称,课程成绩)<br></span><span style="font-size: 15px;">课程成绩由主组合主键学号和课程号决定,但是课程名称只由课程号可以决定,所以违反了第二范式。<br></span><span style="font-size: 15px;">理解注释:<strong>不能部分依赖。</strong></span>
<span style="font-size: 15px;"><strong>第三范式(3NF):</strong>满足第三范式(3NF)必须先满足第二范式(2NF)。第三范式(3NF)要求一个数据库表中除主键外,其他字段必须依赖主键。在第二范式的基础上,数据表中如果不存在非关键字段对任一候选关键字段的传递函数依赖则符合第三范式。所谓传递函数依赖,指的是如果存在"A → B → C"的决定关系,则C传递函数依赖于A。如:<br></span><span style="font-size: 15px;">学生表(学号,学生姓名,学院,学院电话)<br></span><span style="font-size: 15px;">学院电话依赖学院,学院依赖学生信息,所以学院电话和学生信息之间存在传递依赖。所以不满足第三范式。<br></span><span style="font-size: 15px;">理解注释:不能存在传递依赖。即:除主键外,其他字段必须依赖主键。</span>
附加:
对于是否建中间表的问题。
如果两张表之间关系为多对多的关系,则需要建中间表。如果两张表之间的关系为多对一或者一对多的关系,则通过主外键连接就行,不需要建立中间表。

The above is the detailed content of What is database three paradigms?. For more information, please follow other related articles on the PHP Chinese website!

Statement
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
How does IntelliJ IDEA identify the port number of a Spring Boot project without outputting a log?How does IntelliJ IDEA identify the port number of a Spring Boot project without outputting a log?Apr 19, 2025 pm 11:45 PM

Start Spring using IntelliJIDEAUltimate version...

How to elegantly obtain entity class variable names to build database query conditions?How to elegantly obtain entity class variable names to build database query conditions?Apr 19, 2025 pm 11:42 PM

When using MyBatis-Plus or other ORM frameworks for database operations, it is often necessary to construct query conditions based on the attribute name of the entity class. If you manually every time...

How to use the Redis cache solution to efficiently realize the requirements of product ranking list?How to use the Redis cache solution to efficiently realize the requirements of product ranking list?Apr 19, 2025 pm 11:36 PM

How does the Redis caching solution realize the requirements of product ranking list? During the development process, we often need to deal with the requirements of rankings, such as displaying a...

How to safely convert Java objects to arrays?How to safely convert Java objects to arrays?Apr 19, 2025 pm 11:33 PM

Conversion of Java Objects and Arrays: In-depth discussion of the risks and correct methods of cast type conversion Many Java beginners will encounter the conversion of an object into an array...

How do I convert names to numbers to implement sorting and maintain consistency in groups?How do I convert names to numbers to implement sorting and maintain consistency in groups?Apr 19, 2025 pm 11:30 PM

Solutions to convert names to numbers to implement sorting In many application scenarios, users may need to sort in groups, especially in one...

E-commerce platform SKU and SPU database design: How to take into account both user-defined attributes and attributeless products?E-commerce platform SKU and SPU database design: How to take into account both user-defined attributes and attributeless products?Apr 19, 2025 pm 11:27 PM

Detailed explanation of the design of SKU and SPU tables on e-commerce platforms This article will discuss the database design issues of SKU and SPU in e-commerce platforms, especially how to deal with user-defined sales...

How to set the default run configuration list of SpringBoot projects in Idea for team members to share?How to set the default run configuration list of SpringBoot projects in Idea for team members to share?Apr 19, 2025 pm 11:24 PM

How to set the SpringBoot project default run configuration list in Idea using IntelliJ...

See all articles

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

Video Face Swap

Video Face Swap

Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Tools

Notepad++7.3.1

Notepad++7.3.1

Easy-to-use and free code editor

Dreamweaver Mac version

Dreamweaver Mac version

Visual web development tools

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

Powerful PHP integrated development environment

SAP NetWeaver Server Adapter for Eclipse

SAP NetWeaver Server Adapter for Eclipse

Integrate Eclipse with SAP NetWeaver application server.

DVWA

DVWA

Damn Vulnerable Web App (DVWA) is a PHP/MySQL web application that is very vulnerable. Its main goals are to be an aid for security professionals to test their skills and tools in a legal environment, to help web developers better understand the process of securing web applications, and to help teachers/students teach/learn in a classroom environment Web application security. The goal of DVWA is to practice some of the most common web vulnerabilities through a simple and straightforward interface, with varying degrees of difficulty. Please note that this software