Apakah Normalisasi dalam SQL? Contoh Pangkalan Data 1NF, 2NF, 3NF, BCNF (DBMS)

Apakah Normalisasi?

Normalisasi adalah teknik reka bentuk pangkalan data yang mengurangkan kelebihan data dan menghilangkan ciri-ciri yang tidak diingini seperti Penyisipan, Kemas kini dan Anomali Penghapusan. Peraturan normalisasi membahagikan jadual yang lebih besar menjadi jadual yang lebih kecil dan menghubungkannya menggunakan hubungan. Tujuan Normalisasi dalam SQL adalah untuk menghilangkan data berlebihan (berulang) dan memastikan data disimpan secara logik.

Pencipta model hubungan Edgar Codd mengusulkan teori normalisasi data dengan pengenalan Bentuk Normal Pertama, dan dia terus memperluas teori dengan Bentuk Normal Kedua dan Ketiga. Kemudian dia bergabung dengan Raymond F. Boyce untuk mengembangkan teori Boyce-Codd Normal Form.

Dalam tutorial Normalisasi Pangkalan Data ini, anda akan belajar:

Bentuk Biasa Pangkalan Data

Berikut adalah senarai Borang Biasa

  • 1NF (Bentuk Normal Pertama)
  • 2NF (Bentuk Normal Kedua)
  • 3NF (Bentuk Normal Ketiga)
  • BCNF (Borang Normal Boyce-Codd)
  • 4NF (Bentuk Normal Keempat)
  • 5NF (Bentuk Normal Kelima)
  • 6NF (Bentuk Keenam Normal)

Teori Normalisasi Data dalam pelayan MySQL masih dikembangkan lagi. Sebagai contoh, terdapat perbincangan walaupun pada 6ikaBentuk Biasa. Walau bagaimanapun, dalam kebanyakan aplikasi praktikal, normalisasi mencapai yang terbaik dalam 3rdBentuk Biasa . Evolusi teori Normalisasi SQL digambarkan di bawah-

Bentuk Biasa Pangkalan Data



Normalisasi Pangkalan Data Dengan Contoh

Pangkalan data Contoh Normalisasi dapat difahami dengan mudah dengan bantuan kajian kes. Anggaplah, perpustakaan video menyimpan pangkalan data filem yang disewa. Tanpa normalisasi dalam pangkalan data, semua maklumat disimpan dalam satu jadual seperti gambar di bawah. Mari kita fahami pangkalan data Normalisasi dengan contoh jadual:

Di sini anda lihat Lajur Disewa Filem mempunyai pelbagai nilai. Sekarang mari kita beralih ke Bentuk Normal Pertama:

Peraturan 1NF (Borang Normal Pertama)

  • Setiap sel jadual harus mengandungi satu nilai.
  • Setiap rekod mesti unik.

Jadual di atas dalam 1NF-

Contoh 1NF

Sebelum meneruskan, mari kita fahami beberapa perkara -

Apakah KEY dalam SQL?

KE KUNCI dalam SQL adalah nilai yang digunakan untuk mengenal pasti rekod dalam jadual secara unik. KUNCI SQL adalah lajur tunggal atau gabungan beberapa lajur yang digunakan untuk mengenal pasti baris atau tupel secara unik dalam jadual. Kunci SQL digunakan untuk mengenal pasti maklumat pendua, dan juga membantu menjalin hubungan antara beberapa jadual dalam pangkalan data.

Catatan: Lajur dalam jadual yang TIDAK digunakan untuk mengenal pasti rekod secara unik disebut lajur bukan kunci.

Apakah Kunci Utama?

Utama adalah nilai lajur tunggal yang digunakan untuk mengenal pasti rekod pangkalan data secara unik.

Ia mempunyai sifat berikut

  • Kunci utama tidak boleh NULL
  • Nilai kunci utama mestilah unik
  • Nilai utama utama jarang diubah
  • Kunci utama mesti diberi nilai semasa rekod baru dimasukkan.

Apakah Kunci Komposit?

Kekunci komposit adalah kunci utama yang terdiri daripada beberapa lajur yang digunakan untuk mengenal pasti rekod secara unik

Di pangkalan data kami, kami mempunyai dua orang dengan nama yang sama Robert Phil, tetapi mereka tinggal di tempat yang berbeza.

Oleh itu, kami memerlukan Nama dan Alamat Penuh untuk mengenal pasti rekod secara unik. Itu adalah kunci gabungan.

Mari beralih ke bentuk 2NF normal kedua

Peraturan 2NF (Borang Normal Kedua)

  • Peraturan 1- Berada dalam 1NF
  • Peraturan 2- Kekunci Utama Lajur Tunggal

Sudah jelas bahawa kita tidak dapat bergerak maju untuk membuat pangkalan data mudah kita dalam 2ndBentuk normalisasi melainkan kita membahagikan jadual di atas.

Kami telah membahagikan jadual 1NF kepada dua jadual iaitu. Jadual 1 dan Jadual2. Jadual 1 mengandungi maklumat ahli. Jadual 2 mengandungi maklumat mengenai filem yang disewa.

Kami telah memperkenalkan lajur baru yang disebut Membership_id yang merupakan kunci utama untuk jadual 1. Rekod dapat dikenal pasti secara unik dalam Jadual 1 menggunakan id keahlian

Pangkalan Data - Kunci Asing

Dalam Jadual 2, Membership_ID adalah Kunci Asing

Kunci Asing merujuk kunci utama Jadual lain! Ini membantu menghubungkan Jadual anda

  • Kunci asing boleh mempunyai nama yang berbeza dari kunci utamanya
  • Ini memastikan baris dalam satu jadual mempunyai baris yang sesuai dengan yang lain
  • Tidak seperti kunci Utama, mereka tidak harus unik. Selalunya tidak
  • Kekunci asing boleh dibatalkan walaupun kunci utama tidak dapat

Mengapa anda memerlukan kunci asing?

Andaikan, seorang pemula memasukkan catatan dalam Jadual B seperti

Anda hanya dapat memasukkan nilai ke dalam kunci asing anda yang terdapat dalam kunci unik dalam jadual induk. Ini membantu dalam integriti rujukan.

Masalah di atas dapat diatasi dengan menyatakan id keahlian dari Jadual2 sebagai kunci asing keahlian dari Jadual1

Sekarang, jika seseorang cuba memasukkan nilai di medan id keahlian yang tidak ada dalam jadual induk, kesalahan akan ditunjukkan!

Apakah pergantungan fungsi transitif?

Transitif kebergantungan fungsional adalah semasa menukar lajur bukan kunci, mungkin menyebabkan lajur bukan kunci lain berubah

Pertimbangkan jadual 1. Menukar lajur bukan kunci Nama Penuh boleh mengubah Salutasi.

Mari bergerak ke 3NF

Peraturan 3NF (Borang Normal Ketiga)

  • Peraturan 1- Berada di 2NF
  • Peraturan 2- Tidak mempunyai pergantungan fungsi transitif

Untuk memindahkan jadual 2NF ke 3NF, sekali lagi kita perlu membahagikan jadual kita lagi.

Contoh 3NF

Berikut adalah contoh 3NF dalam pangkalan data SQL:

Kami sekali lagi membahagikan jadual kami dan membuat jadual baru yang menyimpan Salutations.

Tidak ada pergantungan fungsi transitif, dan oleh itu jadual kami berada dalam 3NF

Dalam Jadual 3 ID Salam adalah kunci utama, dan dalam Jadual 1 ID Salutasi adalah kunci utama kepada Jadual 3

Sekarang contoh kecil kita berada pada tahap yang tidak dapat diuraikan lebih jauh untuk mencapai bentuk normalisasi normal yang lebih tinggi dalam DBMS. Sebenarnya, ia sudah dalam bentuk normalisasi yang lebih tinggi. Usaha yang berasingan untuk beralih ke tingkat normalisasi data berikutnya biasanya diperlukan dalam pangkalan data yang kompleks. Walau bagaimanapun, kami akan membincangkan tahap normalisasi pangkalan data seterusnya secara ringkas berikut.

BCNF (Borang Normal Boyce-Codd)

Walaupun pangkalan data berada dalam 3rdBentuk Biasa, masih ada anomali yang dihasilkan jika mempunyai lebih dari satu Calon Kunci.

Kadang-kadang BCNF juga disebut sebagai 3.5 Bentuk Biasa.

Peraturan 4NF (Bentuk Normal Keempat)

Sekiranya tidak ada contoh jadual pangkalan data yang mengandungi dua atau lebih, data bebas dan multivalu yang menggambarkan entiti yang berkaitan, maka itu adalah dalam 4ikaBentuk Biasa.

Peraturan 5NF (Kelima Biasa)

Jadual ada dalam 5ikaBentuk Normal hanya jika terdapat dalam 4NF dan tidak dapat diuraikan ke dalam sebilangan besar jadual yang lebih kecil tanpa kehilangan data.

6NF (Bentuk Normal Keenam) Dicadangkan

6ikaBentuk Biasa tidak standard, namun, ia sedang dibincangkan oleh pakar pangkalan data untuk beberapa waktu. Mudah-mudahan, kita mempunyai definisi yang jelas & standard untuk 6ikaBentuk Biasa dalam masa terdekat ...

Itu sahaja untuk Normalisasi SQL !!!

Ringkasan

  • Perancangan pangkalan data sangat penting untuk keberhasilan pelaksanaan sistem pengurusan pangkalan data yang memenuhi keperluan data sistem perusahaan.
  • Normalisasi dalam DBMS adalah proses yang membantu menghasilkan sistem pangkalan data yang menjimatkan kos dan mempunyai model keselamatan yang lebih baik.
  • Pergantungan fungsional adalah komponen yang sangat penting dalam menormalkan proses data
  • Sebilangan besar sistem pangkalan data adalah pangkalan data yang dinormalisasi hingga bentuk normal ketiga.
  • Kunci utama yang dikenal pasti secara unik adalah rekod dalam Jadual dan tidak boleh kosong
  • Kekunci asing membantu menghubungkan jadual dan merujuk kunci utama