Mysql
 sql >> база данни >  >> RDS >> Mysql

База данни:Мога ли да имам нулеви атрибути в трета база данни с нормална форма?

Начинът, по който нулевите стойности се дефинират в SQL - като не-стойности, които не могат да бъдат сравнени със стойности на домейна - означава, че нарушават 1NF (и всички форми с по-високи норми). Връзката (математическата структура, представена от нормализирани таблици) трябва да има една стойност за всяка колона за всеки ред. Нулевите означават, че нямаме стойност, а колоната с нула означава, че имаме две релации в една таблица - релация на супертип, която включва всички колони, с изключение на тази с нула, и релация подтип, която има същия първичен ключ и колоната с нула, за които можем да записваме само редове, за които атрибутът е известен. Целта на нормализирането е да разпредели набор от данни в елементарни факти, без да губи информация, така че наличието на две релации в една таблица противоречи на целта и прави неща като релационна алгебра/изчисление по-сложни.

Нормалните форми са формални, логически дефинирани структури, а не най-добри индустриални практики, които могат да бъдат адаптирани към ситуацията, така че не виждам много място за спорове. Дали трябва да ги използваме и как трябва да се работи с тях е по-интересна тема.

Докато нулите нарушават нормалните форми, това не означава, че не можете да използвате нули във вашата SQL база данни. Те имат както рискове, така и ползи. И аз ги използвам, но с внимание.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL изберете/вмъкнете/актуализирайте, има ли значение реда на колоните?

  2. Вмъкване на обект datetime.datetime на Python в MySQL

  3. Определяне дали MySQL таблицата индекс съществува преди създаването

  4. Изберете всички, където полето съдържа низ, разделен със запетая

  5. Групово вмъкване с mysql2 и NodeJs хвърля 500