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

Jika kita mengubah nilai kunci utama, mengapa kita tidak mengubah nilai kolom dependen?

TL;DR Item/A menjadi PK (kunci utama) menyiratkan bahwa hanya ada satu nilai Pemasok/B per nilai Item/A. Tidak dikatakan bahwa hanya ada satu nilai per tabel.

Video itu omong kosong. Mereka menderita kesalahpahaman yang sama tentang "tergantung" &FD (dependensi fungsional) &PK sebagai pertanyaan Anda (jadi mungkin dari situlah Anda mendapatkannya) dan banyak kesalahpahaman lainnya dan mereka tidak tahu apa yang mereka bicarakan. Temukan buku teks perguruan tinggi/universitas, slide, dan/atau kursus (banyak di antaranya gratis online).

Kita dapat berbicara tentang FD, superkey, set kolom unik, CK (kandidat kunci) &PK dari tabel nilai atau tabel variabel . Variabel tabel memiliki turunan dari salah satu hal tersebut jika setiap nilai tabel yang dapat muncul dalam bisnis/aplikasi tertentu memilikinya sebagai turunan.

Himpunan kolom secara fungsional bergantung pada yang lain ketika himpunan yang ditentukan hanya dapat memiliki satu nilai per nilai tertentu dari himpunan penentu.

Tapi itu tidak berarti bahwa nilai penentuan yang berbeda memiliki nilai penentuan yang berbeda.

Superkey adalah kumpulan kolom yang memiliki nilai subrow berbeda di setiap baris. CK adalah superkey yang tidak mengandung superkey yang lebih kecil. PK adalah beberapa CK yang Anda pilih untuk menjadi PK. Setiap set kolom secara fungsional tergantung pada setiap superkey. Beberapa di antaranya adalah CK. Salah satunya bisa PK.

Tapi itu tidak berarti bahwa beberapa subrow lainnya daripada superkey/CK/PK (dan setiap subrow harus secara fungsional bergantung pada mereka menurut definisi) adalah unik.

Bukan atas dasar A menjadi PK/CK. A menjadi PK/CK menyiratkan bahwa A dan setiap superset dari A adalah unik. Jika Anda "mengubah A" dalam arti melihat baris yang berbeda atau melihat nilai tabel berbeda yang memiliki nilai A berbeda untuk baris itu (yang tidak bisa berada di baris lain dari salah satu tabel), itu tidak batasi apa yang B bisa.

Beberapa lainnya kendala mungkin membatasi apa yang B bisa. Misalnya jika FD {Supplier} -> {Supplier Phone} berlaku maka itu membatasi apa yang dapat dilakukan oleh Supplier Phone di baris lain meskipun Item yang menjadi PK tidak.

Apakah ada FD tertentu yang dipegang tergantung pada baris apa yang seharusnya masuk ke tabel dalam situasi tertentu &situasi apa yang bisa muncul. Kemudian apa yang dipegang FD menentukan apa itu superkey &CK. Kemudian Anda dapat memilih CK sebagai PK.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Simpan data sensitif di Silverstripe 3.1

  2. Mysql mencetak bantuan alih-alih terhubung ke server

  3. Cara memasukkan array data ke mysql menggunakan php

  4. Sinkronkan dua skema database di MySQL

  5. Kueri relevansi mentah di Laravel. Bagaimana menanganinya?