Dalam istilah database, sebuah skema (diucapkan “skee-muh” atau “skee-mah”) adalah organisasi dan struktur database. Keduanya skema dan skema dapat digunakan sebagai bentuk jamak.
Skema berisi objek skema, yang dapat berupa tabel, kolom, tipe data, tampilan, prosedur tersimpan, hubungan, kunci utama, kunci asing, dll.
Skema database dapat direpresentasikan dalam diagram visual, yang menunjukkan objek database dan hubungannya satu sama lain.
Di atas adalah contoh sederhana diagram skema. Ini menunjukkan tiga tabel, beserta tipe datanya, hubungan antar tabel, serta kunci utama dan kunci asingnya.
Berikut adalah contoh skema database yang lebih kompleks:
Dalam hal ini, diagram skema telah dipisahkan menjadi empat bagian:
- Data Pelanggan :Data yang terkait dengan pelanggan, seperti nama, alamat, dll
- Bisnis :Data yang diperlukan untuk menjalankan bisnis, seperti staf, lokasi toko, detail pembayaran, dll
- Inventaris :Detail pada semua produk. Dalam hal ini produk berupa film, sehingga berisi data-data seperti judul film, kategorinya, aktornya, dll.
- Tampilan :Tampilan khusus pada data yang digunakan untuk penilaian.
Jadi dengan melihat diagram skema ini, kita dapat melanjutkan dan membuat database. Faktanya, MySQL Workbench memungkinkan Anda membuat CREATE TABLE
skrip langsung dari diagram. Anda kemudian dapat menggunakan skrip untuk membuat database. Anda bahkan dapat merekayasa balik database menjadi diagram.
Apakah Skema dan Database adalah Hal yang Sama?
Ada banyak kebingungan tentang skema ketika datang ke database. Pertanyaan yang sering muncul adalah apakah ada perbedaan antara skema dan database dan jika ya, apa perbedaannya.
Tergantung Vendornya
Salah satu alasan kebingungan ini adalah bahwa sistem database cenderung mendekati skema dengan caranya sendiri.
- Dokumentasi MySQL menyatakan bahwa secara fisik,
skema identik dengan database
. Oleh karena itu, skema dan database adalah hal yang sama . - Namun, dokumentasi Oracle Database menyatakan bahwa objek tertentu dapat disimpan di dalam database tetapi tidak di dalam skema. Oleh karena itu, skema dan database adalah dua hal yang berbeda .
- Dan menurut artikel teknis SQL Server ini, skema adalah entitas terpisah di dalam database. Jadi, keduanya dua hal yang berbeda .
Jadi, bergantung pada RDBMS yang Anda gunakan, skema dan database mungkin sama atau tidak sama.
Bagaimana dengan Standar SQL?
Standar SQL ISO/IEC 9075-1 mendefinisikan skema sebagai kumpulan deskriptor bernama persisten
.
Jika Anda bingung sebelumnya, semoga saya tidak memperburuknya…
Arti Luas
Alasan lain untuk kebingungan mungkin karena fakta bahwa istilah skema memiliki arti yang begitu luas. Ini memiliki konotasi yang berbeda dalam konteks yang berbeda.
Kata skema berasal dari kata Yunani skhēma , yang artinya bentuk , angka , bentuk , atau rencana .
Skema digunakan dalam psikologi untuk menggambarkan pola pemikiran atau perilaku yang terorganisir yang mengatur kategori informasi dan hubungan di antara mereka.
Sebelum merancang database, kita juga perlu melihat kategori informasi dan hubungan di antara mereka. Kita perlu membuat konseptual skema bahkan sebelum kita mulai dengan fisik skema dalam DBMS.
Dalam pengembangan perangkat lunak, ketika mendiskusikan skema, seseorang dapat mendiskusikan konseptual skema, fisik skema, internal skema, eksternal skema, logis skema, dll. Masing-masing memiliki arti khususnya sendiri.
Definisi Skema menurut DBMS
Berikut adalah definisi singkat skema dari tiga sistem database terkemuka:
MySQL
Secara konseptual, skema adalah sekumpulan objek database yang saling terkait, seperti tabel, kolom tabel, tipe data kolom, indeks, kunci asing, dan sebagainya.
….
Di MySQL, secara fisik, sebuah skema identik dengan database . Anda dapat mengganti kata kunci
SCHEMA
bukannyaDATABASE
dalam sintaks SQL MySQL, misalnya menggunakanCREATE SCHEMA
alih-alihCREATE DATABASE
.
Sumber: “Glosarium MySQL”. Panduan Referensi MySQL 5.7. MySQL. Diakses pada 6 Juni 2016.
SQL Server
Nama tabel, field, tipe data, dan kunci utama dan asing dari database.
"Glosarium". Dokumentasi Teknis SQL Server 2016. Jaringan Pengembang Microsoft. Diakses pada 6 Juni 2016.
Database Oracle
Sistem skema Oracle Database sangat berbeda dengan sistem lainnya. Skema Oracle sangat terkait dengan pengguna database.
Skema adalah kumpulan struktur logis data, atau objek skema. Skema dimiliki oleh pengguna database dan memiliki nama yang sama dengan pengguna tersebut. Setiap pengguna memiliki satu skema.
Sumber: “Objek Database”. Oracle Database Online Documentation 12c Rilis 1 (12.1). Pusat Bantuan Oracle. Diakses pada 6 Juni 2016.
Artikel tentang definisi skema oleh DBMS ini memberikan detail lebih lanjut.
Membuat Skema
Terlepas dari perbedaan dalam mendefinisikan skema, masing-masing dari ketiga DBMS tersebut mendukung CREATE SCHEMA
pernyataan.
Dan di situlah kesamaan berakhir.
MySQL
Di MySQL, CREATE SCHEMA
membuat database.
Ini karena CREATE SCHEMA
adalah sinonim untuk CREATE DATABASE
. Dengan kata lain, Anda dapat menggunakan CREATE SCHEMA
atau CREATE DATABASE
untuk melakukan hal yang sama.
Database Oracle
Di Oracle Database, CREATE SCHEMA
pernyataan tidak benar-benar membuat skema. Ini karena skema sudah dibuat dengan setiap pengguna database.
Di Oracle, CREATE USER
pernyataan menciptakan skema.
Di Oracle, CREATE SCHEMA
pernyataan memungkinkan Anda mengisi skema dengan tabel dan tampilan serta memberikan hak istimewa pada objek tersebut tanpa harus mengeluarkan beberapa pernyataan SQL dalam beberapa transaksi.
SQL Server
Di SQL Server, CREATE SCHEMA
akan membuat skema dengan nama yang Anda berikan.
Tidak seperti MySQL, CREATE SCHEMA
pernyataan membuat skema yang didefinisikan secara terpisah ke database.
Tidak seperti Oracle, CREATE SCHEMA
pernyataan sebenarnya menciptakan skema.
Di SQL Server, setelah Anda membuat skema, Anda dapat menambahkan pengguna dan objek ke dalamnya.
Kesimpulan
Istilah skema dapat digunakan dalam banyak konteks yang berbeda. Dalam konteks pembuatan skema dalam sistem pengelolaan database tertentu, Anda harus bekerja dengan DBMS yang mendefinisikan skema.
Dan saat Anda beralih ke DBMS baru, pastikan untuk mencari tahu bagaimana sistem tersebut mendefinisikan skema.