Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Basis Data:Dapatkah saya memiliki atribut yang dapat dibatalkan dalam basis data bentuk normal ketiga?

Cara null didefinisikan dalam SQL - sebagai non-nilai yang tidak dapat dibandingkan dengan nilai domain - berarti mereka melanggar 1NF (dan semua bentuk normal yang lebih tinggi). Suatu relasi (struktur matematika yang diwakili oleh tabel yang dinormalisasi) harus memiliki nilai tunggal untuk setiap kolom untuk setiap baris. Nulls berarti kami tidak memiliki nilai, dan kolom nullable berarti kami memiliki dua relasi dalam satu tabel - relasi supertipe yang mencakup semua kolom kecuali yang dapat dibatalkan, dan relasi subtipe yang memiliki kunci utama yang sama dan kolom yang sebelumnya dapat dibatalkan, untuk dimana kita hanya dapat merekam baris yang atributnya diketahui. Tujuan normalisasi adalah untuk memfaktorkan kumpulan data menjadi fakta dasar tanpa kehilangan informasi, sehingga memiliki dua hubungan dalam satu tabel bertentangan dengan tujuan dan membuat hal-hal seperti aljabar/kalkulus relasional menjadi lebih rumit.

Bentuk normal adalah struktur formal yang didefinisikan secara logis, bukan praktik terbaik industri yang dapat disesuaikan dengan situasi, jadi saya tidak melihat banyak ruang untuk kontroversi. Apakah kita harus menggunakannya dan bagaimana mereka harus ditangani adalah topik yang lebih menarik.

Meskipun null melanggar formulir normal, itu tidak berarti Anda tidak dapat menggunakan null dalam database SQL Anda. Mereka memiliki risiko sekaligus manfaat. Saya juga menggunakannya, tetapi dengan pertimbangan.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Kesalahan koneksi SSL saat menghubungkan ke RDS MySQL dari Django

  2. Mengapa indeks dapat membuat kueri sangat lambat?

  3. Spring Boot Kesalahan Inisialisasi Database MySQL dengan Prosedur Tersimpan

  4. Cara mengekspor data dari SQL Server 2005 ke MySQL

  5. Laravel mengeluh tentang kueri dengan parameter bernama duplikat