Apakah tabel tanpa kunci primer dinormalisasi?

9

Dalam sebuah ceramah, dosen saya menunjukkan kepada kami sebuah meja tanpa kunci primer. Saat ditanyai, dia mengatakan bahwa dalam 3NF ketika Anda menghapus dependensi transitif tidak masalah untuk kemudian memiliki tabel tanpa kunci primer.

Namun, tidak ada kunci primer menyiratkan tidak ada dependensi fungsional - tetapi 3NF adalah penghapusan dependensi transitif, dan saya diajarkan bahwa setiap tabel perlu memiliki kunci utama untuk normalisasi karena ini semua tentang dependensi fungsional.

Saya tahu sangat mungkin untuk membuat tabel tanpa kunci primer, tetapi apakah basis data itu dianggap normal jika tabel itu ada?

Saya harus menambahkan, tabel tidak memiliki "kunci unik", tidak ada primer, tidak ada komposit, tidak ada asing.

Tabel yang ditampilkan memiliki tiga atribut dengan tidak satupun dari mereka berlabel primer atau unik. Saya bertanya apakah itu kesalahan dan dia bilang tidak apa-apa. Saya mempertanyakan pernyataan tersebut karena tidak ada informasi dalam tabel yang dapat diidentifikasi secara unik dan dia mengklaim tidak masalah untuk menjadi seperti ini. Ini bertentangan dengan apa yang saya pelajari tentang normalisasi.

Alex
sumber

Jawaban:

15

Jika relasi tidak memiliki apa kunci kandidat (dan kunci utama adalah salah satu kunci kandidat), maka dapat memiliki duplikasi baris, sehingga sebenarnya tidak relasi! (Karena hubungan selalu ditetapkan).

Dalam hal ini, lebih tepat untuk menyebutnya sebagai tabel, bukan hubungan, seperti yang Anda lakukan dalam pertanyaan Anda, dan perhatikan bahwa beberapa RDBMS yang berlaku dapat mengatur hubungan tidak, memungkinkan tabel tanpa kendala keunikan, bahkan jika kasus ini sangat jarang, dan menghasilkan masalah (anomali) saat beroperasi pada data.

Tetapi dalam kasus ini berbicara tentang bentuk normal tidak tepat: semua teori normalisasi didasarkan pada asumsi mendasar bahwa objek yang menarik adalah hubungan , bukan multiset. Sebenarnya teori ini didasarkan pada (agak dibahas) Asumsi Relasi Universal, yang mengasumsikan bahwa semua hubungan database adalah subset dari proyeksi hubungan tersebut, yang berisi semua atribut dalam setiap hubungan. Dan objek itu sebenarnya adalah relasi (yaitu set), bukan multiset.

Fakta bahwa, ketika berbicara tentang data Model Data Relasional, kadang-kadang kita bertukar dua istilah, tabel dan hubungan, tidak berarti bahwa keduanya sebenarnya sama, dan perbedaan ini sangat mendasar ketika kita berbicara tentang teori normalisasi. Ingatlah bahwa dalam buku-buku, ketika beberapa bentuk normal diperkenalkan, selalu dikatakan sesuatu seperti:

Suatu relasi dalam bentuk normal xxx jika ...

Renzo
sumber
Bukankah isomorfik multiset ke set tempat Anda menambahkan countatribut tambahan ke elemen?
Barmar
3
@Barmar ya, tapi kemudian Anda menambahkan kunci kandidat dan semua dependensi fungsional yang relevan, jadi dari sudut pandang teori normalisasi Anda berada dalam kasus yang sama sekali berbeda.
Renzo
1
Ketika orang melakukan operasi relasional pada tabel non-relasional, mereka mengharapkan hasil relasional. Ketika mereka tidak mendapatkannya, ini terlihat anomali.
Walter Mitty
0

3NF mengacu pada tabel yang sesuai dengan 3 Aturan Normalisasi Data pertama.

  1. Eliminasi kelompok yang berulang
  2. Eliminasi data yang berlebihan
  3. Eliminasi kolom tidak tergantung pada kunci

Aturan ketiga membutuhkan kunci. Anda benar, meja dosen bukan 3NF.

Metafora
sumber