当前位置:网站首页>[three paradigms of database] you can understand it at a glance
[three paradigms of database] you can understand it at a glance
2022-07-06 13:53:00 【No baldness】
Three paradigms
First normal form (1NF)
Make sure the database The atomicity of a field ( That is, indivisibility );
* example : Judge whether the following table conforms to First normal form ?
Number | full name | Telephone |
1 | Xue Baochai | 10076 |
2 | Jia Baoyu | 10086 |
3 | Lin daiyu | 10096 |
First of all, we need to Business needs To judge Atomic properties of fields , The only thing that can be split in the above table is the name , If the business thinks that the name is a field , Then the table satisfies the first normal form ; But if the business requires our name to be written in two fields ( Last name and first name ), It does not satisfy the first paradigm , Split the name to meet ( Here's the picture ).
Number | surname | name | Telephone |
1 | Xue | Bao Chai | 10076 |
2 | Jia | The treasure jade | 10086 |
3 | Lin | Daiyu | 10096 |
Second normal form (2NF)
In the meet 1NF On the basis of , It also contains two contents :
(1) The watch must have A primary key
(2) Non primary key columns must Completely dependent on Primary key , You can't rely on only part of the primary key ( Not partially dependent );
* example : Judge whether the following table conforms to Second normal form ?( Set up : The business requirements of this table meet the first paradigm )
full name | Gender | Telephone | Department name | Department floor |
Xue Baochai | Woman | 10076 | Public relations | 5 layer |
Jia Baoyu | male | 10086 | Publicity Department | 3 layer |
Lin daiyu | Woman | 10096 | Public relations | 5 layer |
First, on the basis of the first paradigm , We can see that the primary key of this table is Composite primary key .( full name + Department name ), Content satisfied (1) The watch must have A primary key
secondly , We found that non primary key columns are partially dependent on primary keys Instead of relying entirely on primary keys : Gender of non primary key column 、 The phone depends on the name , The non primary key column Department floor depends on the Department name
Not satisfied with the content (2) Non primary key columns must Completely dependent on Primary key , You can't rely on only part of the primary key
In order to conform to the second paradigm , We will proceed with the table Split and optimize
Job number | full name | Gender | Telephone |
101 | Xue Baochai | Woman | 10076 |
102 | Jia Baoyu | male | 10086 |
103 | Lin daiyu | Woman | 10096 |
Department number | Department name | Department floor |
1 | Public relations | 5 layer |
2 | Publicity Department | 3 layer |
1 | Public relations | 5 layer |
Department number | Job number | full name | Gender | Telephone |
1 | 101 | Xue Baochai | Woman | 10076 |
2 | 102 | Jia Baoyu | male | 10086 |
1 | 103 | Lin daiyu | Woman | 10096 |
We put Set the department number as the primary key of the Department table ( The foreign key of the master table )、 The job number is set as the primary key of the master table , Because they have no practical business significance , So when we modify the data ( For example, change your name 、 Department name ), You don't have to change it line by line .
Third normal form (3NF)
In the meet 2NF On the basis of , In addition, non primary key columns must Directly dependent on Primary key ( Cannot rely on non primary keys ), There can be no delivery dependency ,
That is, it cannot exist A Depend on B,B Depend on C;
( among A、B Is a non primary key column ,C Primary key )
* example : Judge whether the following table conforms to Third normal form ?( The business requirements of this table have met the second paradigm )
Department number | Job number | full name | Gender | Telephone | Position | Wages |
1 | 101 | Xue Baochai | Woman | 10076 | formal | 8000 |
2 | 102 | Jia Baoyu | male | 10086 | Internship | 4000 |
1 | 103 | Lin daiyu | Woman | 10096 | formal | 8000 |
In order to conform to the third paradigm , We will proceed with the table Split and optimize
First, on the basis of the first paradigm , We can see that the salary in the non primary key column of the table depends on the position in the non primary key column , There are transitive dependencies , That is, it does not meet the requirements of the third paradigm
Job number | full name | Gender | Telephone |
101 | Xue Baochai | Woman | 10076 |
102 | Jia Baoyu | male | 10086 |
103 | Lin daiyu | Woman | 10096 |
Department number | Department name | Department floor |
1 | Public relations | 5 layer |
2 | Publicity Department | 3 layer |
1 | Public relations | 5 layer |
Job number | Position | Wages |
01 | formal | 8000 |
02 | Internship | 4000 |
01 | formal | 8000 |
Department number | Job number | full name | Gender | Telephone | Job number |
1 | 101 | Xue Baochai | Woman | 10076 | 01 |
2 | 102 | Jia Baoyu | male | 10086 | 02 |
1 | 103 | Lin daiyu | Woman | 10096 | 01 |
For explanation, please refer to the end of the second paradigm
ps: We must start from the business needs ( That's the scene ) Set out to judge whether it conforms to the paradigm
Why learn paradigm ?
When we communicate business needs with customers Or is it To complete a project , We need to design a suitable data model . here , The importance of standardized design is highlighted .
What is the paradigm ?
A paradigm is a collection of relational patterns that conform to a certain level . The construction of database must follow certain rules ( In a relational database , This rule refers to the paradigm )). The relationship in relational database must meet certain requirements , That is to meet different paradigms .
What problems can learning paradigm solve ?
Learning standardized design can solve the following problems :
1. data redundancy
2. Abnormal problems :
Update exception
Insertion exception
Delete exception
边栏推荐
- Analysis of penetration test learning and actual combat stage
- 4. Branch statements and loop statements
- MySQL事务及实现原理全面总结,再也不用担心面试
- Have you encountered ABA problems? Let's talk about the following in detail, how to avoid ABA problems
- FAQs and answers to the imitation Niuke technology blog project (III)
- Service ability of Hongmeng harmonyos learning notes to realize cross end communication
- Implementation of count (*) in MySQL
- 5月27日杂谈
- [the Nine Yang Manual] 2020 Fudan University Applied Statistics real problem + analysis
- 7-3 构造散列表(PTA程序设计)
猜你喜欢
附加简化版示例数据库到SqlServer数据库实例中
QT meta object qmetaobject indexofslot and other functions to obtain class methods attention
Caching mechanism of leveldb
C language Getting Started Guide
2022 Teddy cup data mining challenge question C idea and post game summary
7-7 7003 组合锁(PTA程序设计)
Have you encountered ABA problems? Let's talk about the following in detail, how to avoid ABA problems
Mortal immortal cultivation pointer-2
编写程序,模拟现实生活中的交通信号灯。
Write a program to simulate the traffic lights in real life.
随机推荐
【头歌educoder数据表中数据的插入、修改和删除】
Service ability of Hongmeng harmonyos learning notes to realize cross end communication
实验四 数组
[dark horse morning post] Shanghai Municipal Bureau of supervision responded that Zhong Xue had a high fever and did not melt; Michael admitted that two batches of pure milk were unqualified; Wechat i
优先队列PriorityQueue (大根堆/小根堆/TopK问题)
Mixlab unbounded community white paper officially released
[graduation season · advanced technology Er] goodbye, my student days
Yugu p1012 spelling +p1019 word Solitaire (string)
Principles, advantages and disadvantages of two persistence mechanisms RDB and AOF of redis
【数据库 三大范式】一看就懂
Leetcode. 3. Longest substring without repeated characters - more than 100% solution
Detailed explanation of redis' distributed lock principle
Thoroughly understand LRU algorithm - explain 146 questions in detail and eliminate LRU cache in redis
3. Input and output functions (printf, scanf, getchar and putchar)
4. Branch statements and loop statements
7-4 散列表查找(PTA程序设计)
C语言入门指南
简单理解ES6的Promise
Caching mechanism of leveldb
扑克牌游戏程序——人机对抗