Perkenalan
Pada tahun-tahun awal database, setiap aplikasi menyimpan data dalam struktur uniknya sendiri. Ketika pengembang ingin membangun aplikasi untuk menggunakan data itu, mereka harus tahu banyak tentang struktur data tertentu untuk menemukan data yang mereka butuhkan. Struktur data ini tidak efisien, sulit dipertahankan, dan sulit dioptimalkan untuk memberikan kinerja aplikasi yang baik. Model database relasional dirancang untuk memecahkan masalah beberapa struktur data sewenang-wenang. Model relasional menyediakan cara standar untuk mewakili dan query data yang dapat digunakan oleh aplikasi apapun. Sejak awal, pengembang mengakui bahwa kekuatan utama dari model database relasional adalah dalam penggunaan tabel, yang merupakan cara intuitif, efisien, dan fleksibel untuk menyimpan dan mengakses informasi terstruktur.
Model relasional sederhana namun kuat digunakan oleh organisasi dari semua jenis dan ukuran untuk berbagai kebutuhan manajemen informasi. Database relasional digunakan untuk melacak persediaan, memproses transaksi e-commerce, mengelola sejumlah besar informasi pelanggan yang penting, dan banyak lagi. Database relasional berguna untuk menyimpan informasi yang berisi elemen data terkait yang harus diatur dengan cara yang berbasis aturan dan konsisten.
Mengeksplorasi karakteristik data relasional
Salah satu manfaat utama dari database komputer adalah bahwa mereka membuatnya mudah untuk menyimpan informasi sehingga cepat dan mudah ditemukan. Misalnya, sistem e-commerce mungkin menggunakan database untuk merekam informasi tentang produk yang dijual organisasi, dan rincian pelanggan dan pesanan yang mereka tempatkan. Database relasional menyediakan model untuk menyimpan data, dan kemampuan query yang memungkinkan Anda untuk mengambil data dengan cepat.
Di unit ini, Anda akan mempelajari lebih lanjut tentang karakteristik data relasional, dan bagaimana Anda dapat menyimpan informasi ini dan menanyakannya dalam database relasional.
Memahami karakteristik data relasional
Dalam database relasional, Anda memodelkan koleksi entitas dari dunia nyata sebagai tabel. Entitas digambarkan sebagai sesuatu tentang informasi mana yang perlu diketahui atau dipegang. Dalam contoh e-commerce, Anda dapat membuat tabel untuk pelanggan, produk, dan pesanan. Tabel berisi baris, dan setiap baris mewakili satu contoh entitas. Dalam skenario e-commerce, setiap baris dalam tabel pelanggan berisi data untuk satu pelanggan, setiap baris dalam tabel produk mendefinisikan satu produk, dan setiap baris dalam tabel pesanan mewakili pesanan yang dibuat oleh pelanggan.
Baris dalam tabel memiliki satu atau beberapa kolom yang menentukan properti entitas, seperti nama pelanggan, atau ID produk. Semua baris dalam tabel yang sama memiliki kolom yang sama. Beberapa kolom digunakan untuk mempertahankan hubungan antara tabel. Pada gambar di bawah ini, tabel Pesanan berisi ID Pelanggan dan ID Produk. ID Pelanggan berkaitan dengan tabel Pelanggan untuk mengidentifikasi pelanggan yang melakukan pemesanan, dan ID Produk berkaitan dengan tabel Produk untuk menunjukkan produk apa yang dibeli.
Anda merancang database relasional dengan membuat model data. Model di bawah ini menunjukkan struktur entitas dari contoh sebelumnya. Dalam diagram ini, kolom yang ditandai PK adalah Kunci Utama untuk tabel. Kunci utama menunjukkan kolom (atau kombinasi kolom) yang secara unik mengidentifikasi setiap baris. Setiap tabel harus memiliki kunci utama.
Diagram juga menunjukkan hubungan antara tabel. Garis yang menghubungkan tabel menunjukkan jenis hubungan. Dalam hal ini, hubungan dari pelanggan ke pesanan adalah 1-ke-banyak (satu pelanggan dapat menempatkan banyak pesanan, tetapi setiap pesanan adalah untuk satu pelanggan). Demikian pula, hubungan antara pesanan dan produk banyak-ke-1 (beberapa pesanan mungkin untuk produk yang sama).
Kolom yang ditandai FK adalah kolom Kunci Asing. Mereka referensi, atau link ke, kunci utama dari tabel lain, dan digunakan untuk mempertahankan hubungan antara tabel. Kunci asing juga membantu mengidentifikasi dan mencegah anomali, seperti pesanan untuk pelanggan yang tidak ada di tabel Pelanggan. Pada model di bawah ini, id pelanggan dan kolom ID Produk di link tabel Pesanan ke pelanggan yang menempatkan pesanan dan produk yang dipesan:
Karakteristik utama dari database relasional adalah:
Semua data adalah tabular. Entitas dimodelkan sebagai tabel, setiap contoh entitas adalah baris dalam tabel, dan setiap properti didefinisikan sebagai kolom.
Semua baris dalam tabel yang sama memiliki kumpulan kolom yang sama.
Tabel dapat berisi sejumlah baris.
Kunci utama secara unik mengidentifikasi setiap baris dalam tabel. Tidak ada dua baris yang dapat berbagi kunci utama yang sama.
Kunci asing merujuk baris di tabel terkait lainnya. Untuk setiap nilai di kolom kunci asing, harus ada baris dengan nilai yang sama di kolom kunci utama yang sesuai di tabel lainnya.
Sebagian besar database relasional mendukung Structured Query Language (SQL). Anda menggunakan SQL untuk membuat tabel, menyisipkan, memperbarui, dan menghapus baris dalam tabel, dan untuk meminta data. Anda menggunakan perintah untuk membuat tabel, pernyataan untuk menyimpan data dalam tabel, pernyataan untuk memodifikasi data dalam tabel, dan pernyataan untuk menghapus baris dari tabel. Pernyataan itu mengambil data dari tabel. Contoh kueri di bawah ini menemukan rincian setiap pelanggan dari database sampel yang ditunjukkan di atas.CREATE TABLE
INSERT
UPDATE
DELETE
SELECT
SELECT CustomerID, CustomerName, CustomerAddress
FROM Customers
Alih-alih mengambil setiap baris, Anda dapat memfilter data dengan menggunakan klausa WHERE. Kueri berikutnya mengambil ID pesanan dan ID produk untuk semua pesanan yang ditempatkan oleh pelanggan 1.
SELECT OrderID, ProductID
FROM Orders
WHERE CustomerID = 'C1'
Anda dapat menggabungkan data dari beberapa tabel dalam kueri menggunakan operasi gabungan. Operasi gabungan mencakup hubungan antar tabel, memungkinkan Anda untuk mengambil data dari lebih dari satu tabel pada satu waktu. Kueri berikut mengambil nama setiap pelanggan, bersama dengan nama produk dan kuantitas untuk setiap pesanan yang mereka tempatkan. Perhatikan bahwa setiap kolom memenuhi syarat dengan tabel milik:
SELECT Customers.CustomerName, Orders.QuantityOrdered, Products.ProductName
FROM Customers JOIN Orders
ON Customers.CustomerID = Orders.CustomerID
JOIN Products
ON Orders.ProductID = Products.ProductID
Anda dapat menemukan detail lengkap tentang SQL di situs web Microsoft, di halaman Structured Query Language (SQL).
Jelajahi kasus penggunaan database relasional
Anda dapat menggunakan database relasional kapan saja Anda dapat dengan mudah memodelkan data Anda sebagai kumpulan tabel dengan satu set kolom tetap. Secara teori, Anda dapat memodelkan hampir semua dataset dengan cara ini, tetapi beberapa skenario cocok untuk model relasional lebih baik daripada yang lain.
Misalnya, jika Anda memiliki koleksi musik, video, atau file media lainnya, mencoba untuk memaksa data ini ke dalam model relasional bisa sulit. Anda mungkin lebih baik menggunakan penyimpanan tidak terstruktur, seperti yang tersedia di penyimpanan Azure Blob. Demikian pula, situs jejaring sosial menggunakan database untuk menyimpan data tentang jutaan pengguna, yang masing-masing dapat dikaitkan dengan sejumlah pengguna lain dalam jaringan hubungan yang sangat kompleks. Jenis data ini lebih cocok untuk struktur database grafik daripada kumpulan tabel relasional.
Database relasional umumnya digunakan dalam sistem e-commerce, tetapi salah satu kasus penggunaan utama untuk menggunakan database relasional adalah Online Transaction Processing (OLTP). Aplikasi OLTP difokuskan pada tugas berorientasi transaksi yang memproses sejumlah besar transaksi per menit. Database relasional sangat cocok untuk aplikasi OLTP karena mereka secara alami mendukung operasi sisipkan, pembaruan, dan hapus. Database relasional sering dapat disetel untuk membuat operasi ini cepat. Juga, sifat SQL memudahkan pengguna untuk melakukan kueri ad-hoc melalui data.
Contoh aplikasi OLTP yang menggunakan database relasional adalah:
- Solusi perbankan
- Aplikasi ritel online
- Sistem reservasi penerbangan
- Banyak aplikasi pembelian online.
Jelajahi struktur data relasional
Database relasional terdiri dari satu set tabel. Tabel dapat memiliki nol (jika tabel kosong) atau baris lainnya. Setiap tabel memiliki satu set kolom tetap. Anda dapat menentukan hubungan antara tabel menggunakan kunci primer dan asing, dan Anda dapat mengakses data dalam tabel menggunakan SQL.
Terlepas dari tabel, database relasional khas berisi struktur lain yang membantu mengoptimalkan organisasi data, dan meningkatkan kecepatan akses. Di unit ini, Anda akan melihat dua struktur ini secara lebih rinci: indeks dan tampilan.
Apa itu indeks?
Indeks membantu Anda mencari data dalam tabel. Pikirkan indeks di atas meja seperti indeks di belakang buku. Indeks buku berisi satu set referensi yang diurutkan, dengan halaman di mana setiap referensi terjadi. Ketika Anda ingin menemukan referensi ke item dalam buku, Anda mencarinya melalui indeks. Anda dapat menggunakan nomor halaman dalam indeks untuk langsung ke halaman yang benar dalam buku. Tanpa indeks, Anda mungkin harus membaca seluruh buku untuk menemukan referensi yang Anda cari.
Saat Anda membuat indeks dalam database, Anda menentukan kolom dari tabel, dan indeks berisi salinan data ini dalam urutan yang diurutkan, dengan penunjuk ke baris yang sesuai dalam tabel. Ketika pengguna menjalankan kueri yang menentukan kolom ini dalam klausa WHERE, sistem manajemen basis data dapat menggunakan indeks ini untuk mengambil data lebih cepat daripada jika harus memindai seluruh baris tabel per baris. Pada contoh di bawah ini, kueri mengambil semua pesanan untuk C1 pelanggan. Tabel Pesanan memiliki indeks di kolom ID Pelanggan. Sistem manajemen basis data dapat berkonsultasi dengan indeks untuk dengan cepat menemukan semua baris yang cocok di tabel Pesanan.
Anda dapat membuat banyak indeks di atas meja. Jadi, jika Anda juga ingin menemukan semua pesanan untuk produk tertentu, maka membuat indeks lain pada kolom ID Produk di tabel Pesanan, akan berguna. Namun, indeks tidak gratis. Indeks mungkin mengkonsumsi ruang penyimpanan tambahan, dan setiap kali Anda menyisipkan, memperbarui, atau menghapus data dalam tabel, indeks untuk tabel tersebut harus dipertahankan. Pekerjaan tambahan ini dapat memperlambat operasi sisipkan, memperbarui, dan menghapus, dan dikenakan biaya pemrosesan tambahan. Oleh karena itu, ketika memutuskan indeks mana yang akan dibuat, Anda harus mencapai keseimbangan antara memiliki indeks yang mempercepat kueri Anda versus biaya melakukan operasi lainnya. Dalam tabel yang hanya dibaca, atau yang berisi data yang jarang dimodifikasi, lebih banyak indeks akan meningkatkan kinerja kueri. Jika tabel jarang ditanyakan, tetapi tunduk pada sejumlah besar sisipan, pembaruan, dan penghapusan (seperti tabel yang terlibat dalam OLTP), maka membuat indeks pada tabel itu dapat memperlambat sistem Anda.
Beberapa sistem manajemen basis data relasional juga mendukung indeks berkerumun. Indeks yang berkerumun secara fisik mengatur ulang tabel dengan kunci indeks. Pengaturan ini dapat meningkatkan kinerja kueri lebih jauh, karena sistem manajemen basis data relasional tidak harus mengikuti referensi dari indeks untuk menemukan data yang sesuai dalam tabel yang mendasarinya. Gambar di bawah ini memperlihatkan tabel Pesanan dengan indeks berkerumun di kolom ID Pelanggan.
Dalam sistem manajemen basis data yang mendukung mereka, tabel hanya dapat memiliki indeks berkerumun tunggal.
Apa itu pandangan?
Tampilan adalah tabel virtual berdasarkan kumpulan hasil kueri. Dalam kasus yang paling sederhana, Anda dapat menganggap tampilan sebagai jendela pada baris tertentu dalam tabel yang mendasarinya. Misalnya, Anda dapat membuat tampilan pada tabel Pesanan yang mencantumkan pesanan untuk produk tertentu (dalam hal ini, produk P1)seperti ini:
CREATE VIEW P1Orders AS
SELECT CustomerID, OrderID, Quantity
FROM Orders
WHERE ProductID = "P1"
Anda dapat meminta tampilan dan memfilter data dengan cara yang sama seperti tabel. Kueri berikut menemukan pesanan untuk C1 pelanggan menggunakan tampilan. Kueri ini hanya akan mengembalikan pesanan untuk produk P1 yang dibuat oleh pelanggan:
SELECT CustomerID, OrderID, Quantity
FROM P1Orders
WHERE CustomerID = "C1"
Tampilan juga dapat bergabung dengan tabel bersama-sama. Jika Anda secara teratur perlu menemukan detail pelanggan dan produk yang telah mereka pesan, Anda dapat membuat tampilan berdasarkan kueri gabungan yang ditampilkan di unit sebelumnya:
CREATE VIEW CustomersProducts AS
SELECT Customers.CustomerName, Orders.QuantityOrdered, Products.ProductName
FROM Customers JOIN Orders
ON Customers.CustomerID = Orders.CustomerID
JOIN Products
ON Orders.ProductID = Products.ProductID
Kueri berikut menemukan nama pelanggan dan nama produk dari semua pesanan yang lebih besar dari QuantityOrdered 100, menggunakan tampilan ini:
SELECT CustomerName, ProductName
FROM CustomersProducts
WHERE QuantityOrdered > 100
Pilih platform yang tepat untuk beban kerja relasional
Cloud computing telah tumbuh dalam popularitas, menjanjikan fleksibilitas untuk perusahaan, peluang untuk menghemat waktu dan uang, dan meningkatkan kelincahan dan skalabilitas. Di sisi lain, perangkat lunak lokal, yang diinstal pada server perusahaan sendiri dan di belakang firewall-nya, masih memiliki daya tariknya. Aplikasi lokal dapat diandalkan, aman, dan memungkinkan perusahaan untuk mempertahankan kontrol yang erat.
Sistem manajemen basis data relasional adalah salah satu contoh di mana cloud telah memungkinkan organisasi untuk memanfaatkan skalabilitas yang lebih baik. Namun, skalabilitas ini harus diimbangi dengan kebutuhan untuk kontrol yang ketat atas data. Data bisa dibilang salah satu aset paling berharga yang dimiliki organisasi, dan beberapa perusahaan tidak mau atau mampu menyerahkan tanggung jawab untuk melindungi data ini kepada pihak ketiga.
Di unit ini, Anda akan melihat beberapa kelebihan dan kekurangan menjalankan sistem manajemen basis data di cloud.
Bandingkan hosting lokal ke cloud
Apakah sebuah perusahaan menempatkan beban kerja relasionalnya di cloud atau apakah ia memutuskan untuk tetap di tempat, keamanan data akan selalu menjadi yang terpenting. Tetapi untuk bisnis-bisnis di industri yang sangat diatur, keputusan mungkin sudah dibuat untuk mereka apakah akan meng-host aplikasi mereka di tempat. Mengetahui bahwa data Anda terletak di server in-house dan infrastruktur TI Anda juga dapat memberikan lebih banyak ketenangan pikiran.
Hosting database relasional di tempat mengharuskan perusahaan tidak hanya membeli perangkat lunak database, tetapi juga memelihara perangkat keras yang diperlukan untuk menjalankan database. Organisasi bertanggung jawab untuk memelihara perangkat keras dan perangkat lunak, menerapkan patch, mencadangkan database, memulihkannya bila diperlukan, dan umumnya melakukan semua manajemen sehari-hari yang diperlukan untuk menjaga agar platform tetap beroperasi. Skalabilitas juga menjadi perhatian. Jika Anda perlu menskalakan sistem Anda, Anda perlu meng-upgrade atau menambahkan lebih banyak server. Anda kemudian perlu memperluas database Anda ke server ini. Ini bisa menjadi tugas yang berat yang mengharuskan Anda untuk mengambil database offline saat operasi dilakukan. Di cloud, banyak dari operasi ini dapat ditangani untuk Anda oleh staf pusat data, dalam banyak kasus tanpa downtime (atau minimal). Anda bebas untuk fokus pada data itu sendiri dan meninggalkan masalah manajemen kepada orang lain (ini adalah apa yang Anda membayar biaya Azure Anda untuk, setelah semua).
Pendekatan berbasis cloud menggunakan teknologi virtual untuk meng-host aplikasi perusahaan di luar kantor. Tidak ada biaya modal, data dapat dicadangkan secara teratur, dan perusahaan hanya perlu membayar sumber daya yang mereka gunakan. Bagi organisasi-organisasi yang merencanakan ekspansi agresif secara global, cloud memiliki daya tarik yang lebih besar karena memungkinkan Anda untuk terhubung dengan pelanggan, mitra, dan bisnis lainnya di mana saja dengan sedikit usaha. Selain itu, komputasi awan memberi Anda penyediaan hampir instan karena semuanya sudah dikonfigurasi. Dengan demikian, setiap perangkat lunak baru yang terintegrasi ke dalam lingkungan Anda siap digunakan segera setelah perusahaan berlangganan. Dengan penyediaan instan, setiap waktu yang dihabiskan untuk instalasi dan konfigurasi dihilangkan dan pengguna dapat mengakses aplikasi segera.

Memahami IaaS dan PaaS
Anda umumnya memiliki dua opsi saat memindahkan operasi dan basis data Anda ke cloud. Anda dapat memilih pendekatan IaaS, atau PaaS.
IaaS adalah singkatan dari Infrastructure-as-a-Service. Azure memungkinkan Anda untuk membuat infrastruktur virtual di cloud yang mencerminkan cara kerja pusat data di tempat. Anda dapat membuat satu set mesin virtual, menghubungkan mereka bersama-sama menggunakan jaringan virtual, dan menambahkan berbagai perangkat virtual. Dalam banyak hal, pendekatan ini mirip dengan cara Anda menjalankan sistem Anda dalam suatu organisasi, kecuali bahwa Anda tidak perlu khawatir dengan membeli atau memelihara perangkat keras. Namun, Anda masih bertanggung jawab atas banyak operasi sehari-hari, seperti menginstal dan mengkonfigurasi perangkat lunak, menambal, mengambil cadangan, dan memulihkan data bila diperlukan. Anda dapat menganggap IaaS sebagai transisi ke operasi yang dikelola sepenuhnya di cloud; Anda tidak perlu khawatir tentang perangkat keras, tetapi menjalankan dan mengelola perangkat lunak masih sangat banyak tanggung jawab Anda.
Anda dapat menjalankan perangkat lunak apa pun yang Anda miliki lisensi yang sesuai menggunakan pendekatan ini. Anda tidak terbatas pada sistem manajemen basis data tertentu.
Pendekatan IaaS adalah yang terbaik untuk migrasi dan aplikasi yang membutuhkan akses tingkat sistem operasi. Mesin virtual SQL adalah lift-and-shift. Artinya, Anda dapat menyalin solusi lokal Anda langsung ke mesin virtual di cloud. Sistem harus bekerja kurang lebih persis seperti sebelumnya di lokasi barunya, kecuali untuk beberapa perubahan konfigurasi kecil (perubahan alamat jaringan, misalnya) untuk memperhitungkan perubahan lingkungan.
PaaS adalah singkatan dari Platform-as-a-service. Alih-alih membuat infrastruktur virtual, dan menginstal dan mengelola perangkat lunak database sendiri, solusi PaaS melakukan ini untuk Anda. Anda menentukan sumber daya yang Anda butuhkan (berdasarkan seberapa besar Anda pikir database Anda akan, jumlah pengguna, dan kinerja yang Anda butuhkan), dan Azure secara otomatis menciptakan mesin virtual yang diperlukan, jaringan, dan perangkat lain untuk Anda. Anda biasanya dapat meningkatkan atau menurunkan (meningkatkan atau mengurangi ukuran dan jumlah sumber daya) dengan cepat, karena volume data dan jumlah pekerjaan yang dilakukan bervariasi; Azure menangani penskalaan ini untuk Anda, dan Anda tidak perlu menambahkan atau menghapus mesin virtual secara manual, atau melakukan bentuk konfigurasi lainnya.
Azure menawarkan beberapa solusi PaaS untuk database relasional, termasuk Azure SQL Database, Azure Database for PostgreSQL, Azure Database for MySQL, dan Azure Database for MariaDB. Layanan ini menjalankan versi terkelola dari sistem manajemen basis data atas nama Anda. Anda hanya terhubung dengan mereka, membuat database Anda, dan meng-upload data Anda. Namun, Anda mungkin menemukan bahwa ada beberapa pembatasan fungsional di tempat, dan tidak setiap fitur dari sistem manajemen database yang Anda pilih mungkin tersedia. Pembatasan ini sering disebabkan oleh masalah keamanan. Misalnya, mereka mungkin tidak mengekspos sistem operasi dan perangkat keras yang mendasarinya ke aplikasi Anda. Dalam kasus ini, Anda mungkin perlu mengerjakan ulang aplikasi Anda untuk menghilangkan dependensi pada fitur-fitur ini.
Gambar di bawah ini menggambarkan manfaat dan tradeoffs ketika menjalankan sistem manajemen database (dalam hal ini, SQL Server) di tempat, menggunakan mesin virtual di Azure (IaaS), atau menggunakan Azure SQL Database (PaaS). Pertimbangan umum yang sama berlaku untuk sistem manajemen basis data lainnya.

Komentar
Posting Komentar