GNU/Linux >> Belajar Linux >  >> Cent OS

Apa itu Denormalisasi Basis Data?

Pendahuluan

Denormalisasi basis data adalah teknik yang digunakan untuk meningkatkan kinerja akses data. Ketika database dinormalisasi, dan metode seperti pengindeksan tidak cukup, denormalisasi berfungsi sebagai salah satu opsi terakhir untuk mempercepat pengambilan data.

Artikel ini menjelaskan apa itu denormalisasi basis data dan berbagai teknik yang digunakan untuk mempercepat basis data.

Apa itu Denormalisasi Basis Data?

Denormalisasi basis data adalah proses menggabungkan data secara sistematis untuk mendapatkan informasi secara cepat. Proses tersebut menurunkan relasi ke bentuk normal yang lebih rendah, sehingga mengurangi integritas data secara keseluruhan.

Di sisi lain, kinerja pengambilan data meningkat. Alih-alih melakukan beberapa GABUNG yang mahal pada banyak tabel, normalisasi basis data membantu menyatukan informasi yang secara umum atau logis digabungkan.

Anomali database muncul karena bentuk normal yang lebih rendah. Masalah redundansi menemukan solusi dalam menambahkan batasan tingkat perangkat lunak saat memasukkan data ke dalam database.

Normalisasi Basis Data vs. Denormalisasi

Normalisasi dan denormalisasi basis data adalah dua cara berbeda untuk mengubah struktur basis data. Tabel menjelaskan perbedaan utama antara kedua metode:

Normalisasi Denormalisasi
Fungsi Menghapus informasi yang berlebihan dan meningkatkan kecepatan perubahan data. Menggabungkan beberapa informasi menjadi satu unit dan meningkatkan kecepatan pengambilan data.
Fokus Membersihkan database untuk menghilangkan redundansi. Redundansi diperkenalkan untuk eksekusi kueri yang lebih cepat.
Memori Kinerja umum yang dioptimalkan dan ditingkatkan. Inefisiensi memori karena redundansi.
Integritas Penghapusan anomali basis data meningkatkan integritas basis data. Tidak ada integritas data yang terjaga. Ada anomali basis data.
Kasus Penggunaan Database tempat penyisipan, pembaruan, dan penghapusan perubahan sering terjadi dan bergabung tidak mahal. Basis data yang sering ditanyakan, seperti gudang data.
Jenis Pemrosesan Pemrosesan Transaksi Online - OLTP Pemrosesan Analitik Online - OLAP

Normalisasi database mengambil database yang tidak dinormalisasi melalui bentuk normal untuk meningkatkan struktur data. Di sisi lain, denormalisasi dimulai dengan database yang dinormalisasi dan menggabungkan data untuk eksekusi kueri yang umum digunakan lebih cepat.

Mengapa dan Kapan Anda Harus Mendenormalisasi Database?

Denormalisasi database adalah teknik yang layak ketika kecepatan pengambilan data merupakan faktor penting. Namun, metode ini mengubah struktur database secara keseluruhan. Denormalisasi berguna dalam skenario berikut:

  • Peningkatan kinerja kueri. Menyatukan informasi menambah redundansi. Namun, jumlah GABUNG berkurang, yang meningkatkan kinerja kueri.
  • Kenyamanan manajemen . Basis data yang dinormalisasi sulit dikelola karena granularitas yang tinggi. Alih-alih menghitung nilai atau menghubungkannya sesuai kebutuhan, denormalisasi membantu menyediakan data yang tersedia.
  • Pelaporan yang dipercepat . Data analitik membutuhkan banyak perhitungan dengan segera. Basis data yang didenormalisasi untuk menghasilkan laporan adalah solusi sempurna untuk menyediakan informasi analitis dengan cepat.

Jika database memiliki kinerja rendah, denormalisasi tidak selalu merupakan cara yang tepat. Karena proses mengubah struktur database, fungsionalitas yang ada berisiko rusak.

Memiliki titik acuan merupakan konsep penting ketika mengubah struktur database. Pada akhirnya, normalisasi basis data berfungsi sebagai upaya terakhir alih-alih solusi cepat.

Teknik Denormalisasi

Ada berbagai teknik denormalisasi database yang digunakan tergantung pada use case. Setiap metode memiliki tempat penggunaan, kelebihan, dan kekurangan yang sesuai.

Tabel Pra-penggabungan

Tabel yang digabungkan sebelumnya menyimpan potongan informasi yang sering digunakan bersama-sama ke dalam satu tabel. Proses ini berguna ketika:

  • Kueri sering kali dieksekusi pada tabel secara bersamaan.
  • Operasi penggabungan itu mahal.

Metode ini menciptakan redundansi yang sangat besar, jadi penting untuk menggunakan jumlah kolom yang minimal dan memperbarui informasi secara berkala.

Contoh Tabel Pra-Gabung

Sebuah toko menyimpan informasi tentang item dan kategori yang item milik. Kunci asing berfungsi sebagai referensi ke jenis item. Pra-penggabungan tabel menambahkan nama kategori ke tabel item.

Menambahkan nama kategori langsung ke tabel item memungkinkan melihat item berdasarkan kategori dengan cepat. Untuk kueri yang lebih panjang, metode ini menghemat waktu dan mengurangi jumlah GABUNG.

Tabel Cermin

Tabel cermin adalah salinan dari tabel yang ada. Tabelnya adalah:

  • Salinan sebagian.
  • Salinan lengkap.

Tujuannya adalah untuk mereproduksi data dari yang asli ke dalam tabel baru. Membuat duplikat adalah teknik yang baik untuk membuat cadangan guna mempertahankan status awal database.

Contoh Tabel Cermin

Mirroring tables adalah metode yang sering digunakan untuk menyiapkan data dalam sistem pendukung keputusan. Karena kueri biasanya menggabungkan banyak titik data, tugas tersebut akan menurunkan kinerja sistem secara signifikan.

Sistem pendukung keputusan sangat diuntungkan dari penggunaan tabel cermin. Menerapkan transaksi di atas tabel asli tidak terganggu sementara laporan yang menuntut terjadi di tabel duplikat.

Pemisahan Tabel

Pemisahan tabel menyiratkan membagi tabel yang dinormalisasi menjadi dua atau lebih relasi. Pembagian tabel terjadi dalam dua dimensi:

  • Secara horizontal . Tabel dipecah menjadi subset baris menggunakan UNION operator.
  • Vertikal . Tabel dipecah menjadi subset kolom menggunakan INNER JOIN operator.

Tujuan metode ini adalah untuk membagi tabel menjadi unit yang lebih kecil untuk penanganan data yang lebih cepat dan nyaman. Jika database juga berisi tabel asli, metode ini dianggap sebagai kasus tertentu dari tabel cermin.

Contoh Pemisahan Tabel

Contoh penggunaan tergantung pada kriteria pemisahan tabel. Alasan paling umum untuk membagi tabel adalah:

  • Administratif . Satu meja untuk setiap sektor, bukan satu meja untuk seluruh perusahaan.
  • Spasial . Satu meja untuk setiap wilayah, bukan satu meja untuk seluruh negara.
  • Berbasis waktu . Satu meja untuk setiap bulan, bukan satu meja untuk satu tahun penuh.
  • Fisik . Satu meja untuk setiap lokasi, bukan satu meja untuk semua situs.
  • Prosedur . Satu tabel untuk setiap langkah dalam tugas, bukan satu tabel untuk seluruh pekerjaan.

Menyimpan Nilai Turunan

Menyimpan perhitungan yang sering dieksekusi berguna dalam situasi di mana:

  • Penggunaan nilai turunan sering terjadi.
  • Nilai sumber tidak berubah.

Menyimpan data turunan secara langsung memastikan penghitungan sudah dilakukan saat membuat laporan dan menghilangkan kebutuhan untuk mencari nilai sumber untuk setiap kueri.

Contoh Menyimpan Nilai Turunan

Jika kita memiliki tabel database yang melacak informasi tentang orang, usia seseorang adalah nilai yang dihitung berdasarkan tanggal lahir mereka. Turunkan usia dengan mencari perbedaan antara tanggal saat ini menggunakan fungsi tanggal MySQL CURDATE() dan tanggal lahir.

Usia adalah bagian penting dari informasi ketika menganalisis informasi demografis. Nilai sumber, yaitu tanggal lahir, tidak berubah.

Tabel Hirarki

Tabel hierarki adalah struktur seperti pohon dengan relasi satu ke banyak. Satu tabel induk memiliki banyak anak. Namun, anak-anak hanya memiliki satu tabel induk. Tabel hierarki digunakan dalam kasus di mana:

  • Struktur data bersifat hierarkis.
  • Tabel induk bersifat statis dan tidak berubah.

Nilai Hard-Code

Nilai hard-code menghapus referensi ke entitas yang umum digunakan. Gunakan metode ini dalam situasi di mana:

  • Nilainya dianggap statis.
  • Jumlah nilainya kecil.

Alih-alih menggunakan tabel pencarian kecil, nilainya di-hardcode ke dalam aplikasi secara langsung. Proses ini juga menghindari keharusan melakukan penggabungan pada tabel pencarian.

Contoh Nilai Hard-Coded

Tabel dengan informasi tentang orang dapat menggunakan tabel pencarian kecil untuk menyimpan informasi tentang jenis kelamin individu. Karena informasi dalam tabel pencarian memiliki jumlah nilai yang terbatas, pertimbangkan untuk membuat hard-coding data ke dalam tabel orang secara langsung.

Nilai hard-coded menghilangkan kebutuhan akan tabel pencarian dan operasi GABUNG dengan tabel itu. Setiap perubahan yang dibuat dalam tabel pencarian atau pencatatan nilai baru memerlukan penambahan batasan pemeriksaan.

Menyimpan Detail dengan Master

Tabel master berisi tabel informasi utama, sedangkan tabel lainnya berisi detail spesifik. Simpan detail dengan tabel master saat:

  • Ikhtisar mendetail tentang tabel master sangat penting.
  • Laporan analitis pada tabel master sering terjadi.

Menyimpan semua detail dengan tabel master memudahkan saat memilih data. Metode ini bekerja paling baik bila ada lebih sedikit detail. Jika tidak, proses pengambilan data akan melambat secara signifikan.

Contoh Menyimpan Detail dengan Master

Tabel master dengan informasi pelanggan biasanya menyimpan detail spesifik tentang orang tersebut di tabel terpisah. Informasi tentang lokasi tertentu, misalnya, biasanya berada dalam serangkaian tabel yang lebih kecil.

Setiap laporan yang menganggap lokasi pelanggan mendapat manfaat dari menambahkan detail lokasi ke tabel master.

Mengulangi Detail Tunggal dengan Master

Kueri sering kali hanya membutuhkan satu detail yang ditambahkan ke tabel master alih-alih menggabungkan beberapa nilai terlebih dahulu. Gunakan metode ini ketika:

  • Bergabung mahal untuk satu detail.
  • Tabel master sering membutuhkan informasi.

Menambahkan satu detail ke tabel master paling umum ketika database berisi data historis. Entitas yang diulang biasanya merupakan informasi terbaru.

Contoh Detail Tunggal dengan Master

Database toko biasanya memiliki tabel master informasi tentang barang yang dijualnya. Tabel lain dengan detail tentang perubahan harga historis juga berisi informasi tentang harga saat ini.

Karena satu detail ini membantu menganalisis harga barang saat ini, informasi terbaru tentang harga berguna untuk diulang di tabel utama.

Setiap perubahan biaya perlu ditangani dan diperbarui ke tabel master juga untuk konsistensi.

Tombol Hubungan Pendek

Dalam database dengan tiga atau lebih tabel informasi terkait, metode short-circuit keys melewati tabel tengah dan "short-circuit" tabel kakek-nenek dan cucu.

Gunakan teknik hubung singkat dalam situasi di mana:

  • Database memiliki lebih dari tiga tingkat master-detail.
  • Nilai-nilai dari kakek-nenek dan cucu seringkali dibutuhkan dan informasi orang tua tidak begitu berharga.

Jika dua relasi berhubungan melalui tabel tengah, hilangkan JOIN pada relasi perantara dan hubungkan tabel pertama dan terakhir secara langsung.

Contoh Tombol Hubungan Pendek

Sistem informasi dapat menyimpan informasi tentang orang-orang dalam satu tabel, alamat mereka di lokasi lain, dan area geografis alamat tersebut di tabel ketiga. Untuk laporan demografis apa pun, alamat persisnya bukanlah informasi penting.

Namun, lokasi seseorang sangat penting untuk analisis. Hubungan arus pendek meja orang dengan area menghilangkan GABUNG di meja tengah.

Keuntungan Denormalisasi

Keuntungan denormalisasi database adalah:

  • Kecepatan . Karena kueri GABUNG mahal pada database yang dinormalisasi, pengambilan data lebih cepat.
  • Kesederhanaan . Pengambilan data lebih mudah karena jumlah tabel yang lebih sedikit.
  • Lebih sedikit kesalahan . Bekerja dengan jumlah tabel yang lebih sedikit berarti lebih sedikit bug saat mengambil informasi dari database.

Kerugian Denormalisasi

Kerugian yang perlu dipertimbangkan saat mendenormalisasi database adalah:

  • Kompleksitas . Memperbarui dan memasukkan ke dalam database lebih kompleks dan mahal.
  • Inkonsistensi . Menemukan nilai yang benar untuk suatu informasi lebih sulit karena datanya sulit diperbarui.
  • Penyimpanan . Ruang penyimpanan yang lebih signifikan diperlukan karena adanya redundansi.

Cent OS
  1. Apa itu Web3.0?

  2. Apa itu Basis Data Relasional?

  3. Database NoSQL Terdistribusi Elasticsearch – Apa Itu dan Haruskah Anda Menggunakannya?

  1. Apa itu Basis Data NoSQL? – Penjelasan NoSQL

  2. Apa itu Spark DataFrame?

  3. Bagaimana rm bekerja? Apa yang rm lakukan?

  1. Apa itu Basis Data Relasional?

  2. Apa Itu Database Server &Untuk Apa Digunakan?

  3. Perangkat Lunak Manajemen Basis Data Terbaik - 25 Perangkat Lunak Teratas