Rumah Keuangan Pribadi SQL Pertama, Bentuk Normal Kedua dan Ketiga - dummies

SQL Pertama, Bentuk Normal Kedua dan Ketiga - dummies

Daftar Isi:

Video: Belajar Normalisasi Database 1NF, 2NF dan 3 NF Bagian 2 2024

Video: Belajar Normalisasi Database 1NF, 2NF dan 3 NF Bagian 2 2024
Anonim

Ada tiga sumber modifikasi anomali di SQL Ini didefinisikan sebagai bentuk normal pertama, kedua, dan ketiga (1NF, 2NF, 3NF). Bentuk normal ini bertindak sebagai solusi untuk modifikasi anomali.

Bentuk normal pertama

Berada dalam bentuk normal pertama (1NF), tabel harus memiliki kualitas berikut:

  • Tabel dua dimensi dengan baris dan kolom.

  • Setiap baris berisi data yang berkaitan dengan beberapa hal atau bagian dari suatu hal.

  • Setiap kolom berisi data untuk atribut tunggal dari hal yang dideskripsikan.

  • Setiap sel (persimpangan baris dan kolom) tabel hanya memiliki satu nilai tunggal.

  • Entri dalam kolom apapun semuanya sama. Jika, misalnya, entri dalam satu baris kolom berisi nama karyawan, semua baris lainnya harus berisi nama karyawan di kolom itu juga.

  • Setiap kolom harus memiliki nama yang unik.

  • Tidak ada dua baris yang mungkin sama (yaitu setiap baris harus unik).

  • Urutan kolom dan urutan baris tidak signifikan.

Sebuah tabel (relasi) dalam bentuk normal pertama kebal terhadap beberapa jenis anomali modifikasi namun masih menjadi subjek orang lain. Tabel PENJUALAN dalam bentuk normal pertama, dan tabel tunduk pada penghapusan dan kesalahan penyisipan. Bentuk normal pertama mungkin berguna dalam beberapa aplikasi namun tidak dapat diandalkan pada orang lain.

Bentuk normal kedua

Untuk menghargai bentuk normal kedua, Anda harus memahami gagasan ketergantungan fungsional. A functional dependency adalah hubungan antara atau antar atribut. Satu atribut secara fungsional bergantung pada yang lain jika nilai atribut kedua menentukan nilai atribut pertama. Jika Anda mengetahui nilai atribut kedua, Anda bisa menentukan nilai dari atribut pertama.

Misalkan, misalnya, bahwa sebuah tabel memiliki atribut (kolom) StandardCharge, NumberOfTests, dan TotalCharge yang terkait melalui persamaan berikut:

TotalCharge = StandardCharge * NumberOfTests

TotalCharge bergantung secara fungsional pada StandardCharge dan NumberOfTests. Jika Anda mengetahui nilai StandardCharge dan NumberOfTests, Anda dapat menentukan nilai TotalCharge.

Setiap tabel dalam bentuk normal pertama harus memiliki kunci primer yang unik. Kunci itu bisa terdiri dari satu atau lebih dari satu kolom. Kunci yang terdiri dari lebih dari satu kolom disebut kunci komposit . Berada dalam bentuk normal kedua (2NF), semua atribut non-kunci harus bergantung pada keseluruhan tombol. Dengan demikian, setiap relasi yang ada di 1NF dengan satu kunci atribut secara otomatis dalam bentuk normal kedua.

Jika sebuah relasi memiliki kunci komposit, semua atribut non-kunci harus bergantung pada semua komponen kunci. Jika Anda memiliki tabel di mana beberapa atribut non-kunci tidak bergantung pada semua komponen kunci, hancurkan tabel menjadi dua atau lebih tabel sehingga - di setiap tabel baru - semua atribut non-kunci bergantung pada semua komponen dari primary key

Suara membingungkan? Lihatlah contoh untuk memperjelas masalah. Pertimbangkan tabel PENJUALAN. Alih-alih hanya merekam satu pembelian untuk setiap pelanggan, Anda menambahkan satu baris setiap kali pelanggan membeli barang untuk pertama kalinya. Perbedaan tambahan adalah bahwa pelanggan piagam (mereka dengan nilai Customer_ID 1001 sampai 1007) mendapatkan diskon dari harga normal.

Customer_ID tidak secara unik mengidentifikasi satu baris. Dalam dua baris, Customer_ID adalah 1001. Dalam dua baris lainnya, Customer_ID adalah 1010. Kombinasi kolom Customer_ID dan kolom Product secara unik mengidentifikasi satu baris. Dua kolom ini bersama-sama adalah kunci komposit.

Jika bukan karena faktanya beberapa pelanggan memenuhi syarat untuk diskon dan yang lainnya tidak melakukannya, tabel tidak akan dalam bentuk normal kedua, karena Harga (atribut non-kunci) hanya akan bergantung pada sebagian kunci Produk). Karena beberapa pelanggan memenuhi syarat untuk diskon, Harga bergantung pada CustomerID dan Produk, dan tabel dalam bentuk normal kedua.

Bentuk normal ketiga

Tabel dalam bentuk normal kedua sangat rentan terhadap beberapa jenis anomali modifikasi - khususnya, yang berasal dari dependensi transitif. Ketergantungan transitif

terjadi ketika satu atribut bergantung pada atribut kedua, yang bergantung pada atribut ketiga. Penghapusan dalam tabel dengan ketergantungan semacam itu dapat menyebabkan hilangnya informasi yang tidak diinginkan. Relasi dalam bentuk normal ketiga adalah relasi dalam bentuk normal kedua tanpa dependensi transitif. Lihat lagi tabel PENJUALAN, yang Anda tahu ada dalam bentuk normal pertama. Selama Anda membatasi entri untuk mengizinkan hanya satu baris untuk setiap Customer_ID, Anda memiliki kunci utama atribut tunggal, dan tabel dalam bentuk normal kedua. Namun, meja masih dikenakan anomali. Bagaimana jika pelanggan 1010 tidak senang dengan pemutih klorin, misalnya, dan mengembalikan barang tersebut untuk pengembalian dana? Anda ingin menghapus baris ketiga dari tabel, yang mencatat fakta bahwa pelanggan 1010 membeli pemutih klorin. Anda punya masalah: Jika Anda menghapus baris itu, Anda juga kehilangan fakta bahwa pemutih klorin memiliki harga $ 4. Situasi ini adalah contoh ketergantungan transitif. Harga tergantung pada Produk, yang, pada gilirannya, bergantung pada primary key Customer_ID.

Memecahkan tabel PENJUALAN menjadi dua tabel memecahkan masalah ketergantungan transitif. Kedua tabel tersebut membentuk sebuah database yang berada dalam bentuk normal ketiga.

SQL Pertama, Bentuk Normal Kedua dan Ketiga - dummies

Pilihan Editor

Bagaimana Menyediakan Dokumen dengan CSS3 - dummies

Bagaimana Menyediakan Dokumen dengan CSS3 - dummies

Menggunakan CSS3 untuk membuat garis besar dokumen berguna bila halaman berisi banyak materi dan Anda ingin pengguna menavigasi dengan mudah. Garis besar bergantung pada berbagai tag yang Anda berikan. Metode pembuatan dokumen saat ini adalah menggunakan tag sampai . Pendekatan ini bekerja dengan baik ...

Cara Mendaftar untuk Akun Google - dummies

Cara Mendaftar untuk Akun Google - dummies

Pembuat google Page menyediakan alat canggih yang memungkinkan bahkan halaman desain perancang pemula Sebelum Anda dapat menggunakan Google Page Creator untuk membuat halaman Web Anda sendiri, Anda harus mendaftar ke akun Google. Untuk mendaftar dan memulai membangun situs Web, ikuti langkah-langkah ini:

Bagaimana mengedarkan tepi dan membuat beberapa kolom dengan CSS3 - dummies

Bagaimana mengedarkan tepi dan membuat beberapa kolom dengan CSS3 - dummies

Daripada memiliki untuk menggunakan hingga empat gambar terpisah untuk memberi ilusi bentuk melengkung di situs Anda, dengan CSS3 Anda sekarang dapat membuat wadah dengan sudut melengkung! Inilah kodenya, yang memiliki deklarasi CSS3 yang didukung penuh di bagian atas diikuti oleh duplikat yang diawali untuk browser lainnya: #box {border-radius: 20px; ...

Pilihan Editor

PHP & MySQL For Dummies Cheat Sheet - dummies

PHP & MySQL For Dummies Cheat Sheet - dummies

Saat menulis program PHP untuk membuat aplikasi database Web Anda dan berkomunikasi Dengan database MySQL, Anda memiliki banyak hal yang perlu diingat. Anda harus mengeja kode dengan benar dan menggunakan sintaks yang sempurna. Lembar Cheat ini memberikan referensi untuk melihat secara cepat sintaks yang benar untuk kode yang paling sering Anda gunakan.

Gunakan kembali Kode di Program PHP melalui Fungsi - dummies

Gunakan kembali Kode di Program PHP melalui Fungsi - dummies

Anda dapat, dengan bantuan sebuah auto_prepend_file, buat sebuah fungsi file yang secara otomatis disertakan dalam semua program PHP Anda. Fungsi ini mungkin sesuatu yang sederhana seperti memulai sesi atau serumit fungsi login keseluruhan. Setiap kali Anda membutuhkan atau berpikir bahwa Anda perlu memiliki fungsi di lebih dari satu file, ...

Memecahkan skrip PHP - dummies

Memecahkan skrip PHP - dummies

Anda tidak dapat menulis skrip tanpa membuat kesalahan tertentu. Caranya adalah dengan melatih diri untuk mengenalinya, putar mata Anda, katakan, "Tidak lagi," dan perbaiki saja. Satu pesan kesalahan yang akan Anda lihat berkali-kali adalah Parse error: parse error in c: test. php on line 7 Ini adalah cara PHP untuk mengatakan "Hah? "Artinya ...

Pilihan Editor

Bagaimana Membangun Kampanye Otomasi Pemasaran untuk Memimpin Memimpin Memelihara - dummies

Bagaimana Membangun Kampanye Otomasi Pemasaran untuk Memimpin Memimpin Memelihara - dummies

Anda dapat memberdayakan tenaga penjualan dengan mengasuh program otomasi pemasaran untuk membantu mereka menjadi lebih efektif dengan waktu mereka. Berikut adalah beberapa item yang perlu dipertimbangkan sebelum Anda membuat program pengasuhan yang spesifik ini: Segmentasi / otomasi: Anda perlu menyiapkan cara agar penjualan mengarah ke program tetes dalam Customer Relationship Management ...

Bagaimana Membangun Kampanye Pemasaran Otomatis untuk Penjualan Dingin Memimpin - dummies

Bagaimana Membangun Kampanye Pemasaran Otomatis untuk Penjualan Dingin Memimpin - dummies

Kampanye pemasaran otomatis pertama Anda harus membangun penjualan setelah menghidupkan pemberdayaan penjualan harus dirancang untuk menangkap dan memelihara prospek yang tidak dapat dicapai penjualan melalui proses penjualan. Prospek ini biasanya jatuh melalui celah-celah dan tidak pernah terdengar lagi. Banyak artikel yang mencakup keefektifan penjualan merujuk pada statistik bahwa ...

Bagaimana Membangun Kampanye Otomasi Pemasaran Memimpin Bersih Memimpin Baru - dummies

Bagaimana Membangun Kampanye Otomasi Pemasaran Memimpin Bersih Memimpin Baru - dummies

Tujuan jaring baru memimpin memupuk program otomasi pemasaran adalah untuk mengambil keputusan baru dari pertunangan pertamanya untuk menjadi timbal penjualan yang siap. Saat membangun program pengasuhan utama bersih pertama, gunakan daftar periksa berikut untuk memastikan bahwa Anda memiliki semua yang Anda butuhkan untuk membuat program hebat: Konten: Anda ...