Sebagai bagian dari proses normalisasi tabel database, kolom redundan diekstraksi dari tabel tingkat yang lebih tinggi ke subsidiary yang terpisah. Hal ini sering terjadi karena beberapa field memiliki hubungan satu ke banyak dengan entitas parent. Misalnya, ambil model berikut yang dihasilkan menggunakan Navicat Data Modeler:
Sementara sebagian besar sistem database menggunakan kunci untuk kontrol konkurensi, PostgreSQL melakukan hal-hal yang sedikit berbeda: ia mempertahankan konsistensi data dengan menggunakan model multi-versi, atau dikenal sebagai Kontrol Konkurensi Multi-Versi, atau MVCC untuk jangka pendek. Akibatnya, ketika query database, setiap transaksi melihat snapshot data seperti beberapa waktu sebelumnya, terlepas dari keadaan saat ini dari data yang mendasarinya. Ini mencegah transaksi melihat data yang tidak konsisten yang dapat disebabkan oleh pembaruan transaksi bersamaan lainnya pada data yang sama, dan menyediakan isolasi transaksi untuk setiap sesi database. Artikel blog ini akan memberikan gambaran singkat tentang cara kerja protokol MVCC serta mencakup beberapa pro dan kontra dari pendekatan MVCC.
Di bagian atas Navicat Monitor 3 Layar Query Analyzer, ada diagram yang menunjukkan query dengan waktu tunggu terlama:
Sangat penting untuk mengidentifikasi query yang lambat karena dapat membuat semuanya mogok hingga melambat.
Ide di balik audit database adalah untuk mengetahui siapa yang mengakses tabel database Anda dan kapan, bersama dengan modifikasi apa yang dilakukan pada mereka. Ini tidak hanya dianggap sebagai persyaratan minimum standar untuk aplikasi tingkat perusahaan apa pun, tetapi juga merupakan persyaratan hukum untuk banyak domain seperti perbankan dan keamanan siber. Jejak Audit Database sangat penting dalam menyelidiki segala macam masalah aplikasi seperti akses yang tidak sah, perubahan konfigurasi yang bermasalah, dan banyak lagi.
Di blog hari ini, kita akan menambahkan logging ke MySQLSakila Sample Database untuk mengaudit tabel rental. Ini adalah tabel key karena database mewakili proses bisnis toko penyewaan DVD.
Kolom tabel, seperti kolom yang menyimpan nama depan, mungkin berisi banyak value duplikat. Jika Anda tertarik untuk mencantumkan value yang berbeda (berbeda), perlu ada cara untuk melakukannya tanpa menggunakan pernyataan SQL yang rumit. Dalam database yang sesuai dengan ANSI SQL seperti PostgreSQL, SQL Server, dan MySQL, cara untuk memilih hanya value yang berbeda dari kolom adalah dengan menggunakan klausa SQL DISTINCT. Ini menghapus duplikat dari kumpulan hasil pernyataan SELECT, hanya menyisakan value unik. Dalam artikel blog ini, kita akan belajar cara menggunakannya.