SQL: Introduction to Database and SQL
1. Pengenalan Database dan SQL
Database system
Terdapat 2 jenis database system yaitu database dan juga Database Management System.
- Database
Database adalah sekumpulan data yang disusun secara sistematis atau
terstruktur. Contoh kumpulan data / informasi yang dapat disusun
kedalam database : data pelanggan, data produk, data transaksi.
Data atau informasi disusun ke dalam database dengan tujuan untuk
memudahkan pengelolaan management.
- Database Management System
Database Management System (DBMS) adalah sebuah perangkat
lunak yang digunakan untuk membuat dan mengelola database.
DBMS menyediakan platform untuk user agar dapat membuat, meng-
update, menghapus atau mengambil data-data tertentu dari database
DBMS dapat digunakan untuk melindungi dan mengamankan data.
Selain itu juga dapat menjaga konsistensi format data Ketika
digunakan oleh orang yang berbeda
[Source]
https://www.learncomputerscienceonline.com/database-management-system/
File System vs DBMS
[Source]
https://www.researchgate.net/profile/Yvan-Bedard/publication/11041878/figure/fig1/AS:277384914849800@1443145125825/independent-files-vs-integrated-database-DBMS.png
File System :
File System pada dasarnya adalah cara mengatur file dalam media penyimpanan seperti hard disk. Sistem file mengatur file dan membantu dalam pengambilan file ketika diperlukan. Sistem file terdiri dari berbagai file yang dikelompokkan ke dalam direktori. Direktori selanjutnya berisi folder dan file lain. Sistem file melakukan operasi dasar seperti manajemen, penamaan file, pemberian aturan akses, dll.
Database Management System (DBMS):
DBMS pada dasarnya adalah perangkat lunak yang mengelola kumpulan data terkait. Ini digunakan untuk menyimpan data dan mengambil data secara efektif saat dibutuhkan. Ini juga menyediakan langkah-langkah keamanan yang tepat untuk melindungi data dari akses yang tidak sah.
Dalam Sistem Manajemen Basis Data, data dapat diambil dengan kueri SQL dan aljabar relasional. Ini juga menyediakan mekanisme untuk pemulihan data dan pencadangan data.
Mengapa Menggunakan DBMS?
DBMS
- Mendukung akses multi-user
- Mudah mengakses dan mendapatkan data
- Redundansi data dan inkonsistensi data minim
- Mudah dilakukan pengembangan aplikasi
File System
- Kesukaran mengakses data dan mendapatkan data
- Timbul redundansi data daninkonsistensi data
- Sulit dilakukan pengembangan aplikasi
Relational Database Management System
Relational Database Management System atau disingkat RDBMS adalah salah satu jenis DBMS yang menyimpan data dalam struktur table yang menghubungkan setiap elemen data
Sebuah software yang digunakan untuk mengorganisir data kedalam satu atau lebih table (atau relasi) yang terdiri atas kolom dan baris. adapun contoh software bisa dilihat pada gambar dibawah.
Model yang digunakan adalah model basis data relasional dengan menggunakan Relational Database Management System (RDBMS). Model basis data relasional memiliki struktur lojik yang disebut dengan relation (relasi). Struktur relasi merupakan struktur data 2 dimensi, pada level fisik berupa table (tabel). Attribute merepresentasikan elemen dari data yang berkaitan dengan relasi. Sebagai contoh, relasi Mahasiswa memiliki atribut-atribut seperti nim, nama, tempat lahir. tanggal_ lahir, dan alamat.
Model Data Relasional
- Model data relasional menggunakan sekumpulan tabel berdimensi dua dengan setiap tabel tersusun atas sejumlah baris dan kolom.
- Kolom (field) dapat didefinisikan sebagai satuan data terkecil dalam sebuah tabel.
- Baris (record) adalah kumpulan kolom yang menyatakan suatu data yang saling terkait.
Sifat-sifat Tabel Relasional
- Sebuah tabel merupakan struktur dua dimensi yang terdiri dari baris dan kolom
- Setiap baris mewakili sebuah entitas
- Setiap kolom mewakili atribut dan memiliki nama yang jelas.
- Setiap perpotongan baris dan kolom mewakili nilai sebuah data
- Setiap tabel harus memiliki primary key yang dikenali secara unik untuk setiap baris.
- Semua nilai pada kolom harus sesuai format data
Contoh Basis Data Relational
Bahasa Basis Data Relational
- Bahasa query merupakan bahasa yang digunakan untuk memanipulasi data di database management system (DBMS).
- Hal ini berlaku baik untuk memasukkan, mengedit, atau menghapusnya.
- Salah satu bahasa query yang saat ini digunakan adalah Structure Query Language (SQL)
Structured Query Language
- Structure Query Language (SQL) merupakan komponen bahasa relational database system.
- SQL merupakan bahasa baku, non procedural, dan berorientasi himpunan (set- oriented language).
- SQL dapat digunakan baik secara interaktif atau ditempelkan (embedded) pada sebuah program aplikasi.
Data Definition Language
DDL adalah sebuah metode Query SQL yang berguna untuk mendefinisikan data pada sebuah Database, Query yang dimiliki DDL adalah :
CREATE : Digunakan untuk membuat Database dan Tabel
DROP : Digunakan untuk menghapus Tabel dan Database
ALTER : Digunakan untuk melakukan perubahan struktur tabel yang telah dibuat, baik menambah Field ( Add ), mengganti nama Field ( Change ) ataupun menamakannya kembali ( Rename ), dan menghapus Field ( Drop )
Data Manipulation Language
DML adalah sebuah metode Query yang dapat digunakan apabila DDL telah terjadi, sehingga fungsi dari Query DML ini untuk melakukan pemanipulasian database yang telah dibuat. Query yang dimiliki DML adalah :
- INSERT : Digunakan untuk memasukkan data pada Tabel Database
• UPDATE : Digunakan untuk pengubahan terhadap data yang ada pada Tabel Database
• DELETE : Digunakan untuk Penhapusan data pada tabel Database
Data Control Language
DCL adalah sebuah metode Query SQL yang digunakan untuk memberikan hak otorisasi mengakses Database, mengalokasikan space, pendefinisian space, dan pengauditan penggunaan database. Query yang dimiliki DCL adalah :
- GRANT : Untuk mengizinkan User mengakses Tabel dalam Database.
- REVOKE : Untuk membatalkan izin hak user, yang ditetapkan oleh perintah GRANT
- COMMIT : Mentapkan penyimpanan Database
- ROLLBACK : Membatalkan penyimpanan Database
Data Query Language
Data Query Language biasanya digunakan untuk melakukan query data dari sebuah schema / database. Query yang dimiliki DQL.
- SELECT : Digunakan untuk mengambil data tertentu dari dalam database
Terminologi Didalam Database
- Model Relasional : Sebuah model formal yang menggunakan database, table, dan atribut untuk menyimpan data dan mengelola hubungan antar table.
- Constraints : mendefinisikan karakteristik dari sebuah kolom. Misalnya, sebuah kolom tidak boleh memiliki nilai yang duplikat atau sebuah kolom tidak boleh bernilai NULL.
- Entity Relationship (ER) Modelling : Teknik yang digunakan untuk menggambarkan data dunia nyata kedalam bentuk symbol yang meliputi entitas, atribut dan relasi.
- Primary Key : Satu atau lebih atribut yang berisi nilai-nilai yang secara unik mengidentifikasi setiap baris. Misalnya, tabel pelanggan memiliki primary key Bernama cust_id.
- Baris (Row) / Records / Tuple : Entri data yang disimpan dalam sebuah table. Baris mengandung nilai untuk setiap atribut. Misalnya, baris dalam table pelanggan mungkin berisi nilai-nilai “Asraf Rumaga”, “1998–12–23”, “Jakarta”
2. MYSQL
MySQL merupakan database server yang bersifat open source, multiplatform dan berbasis relasional
Database MySQL merupakan suatu perangkat lunak database yang berbentuk database relasional atau disebut Relational Database Management System (RDBMS) yang menggunakan suatu bahasa permintaan yang bernama SQL (Structured Query Language ).
Tipe Data MYSQL
- Tipe data Angka / Numeric
Type data numerik (Angka) dapat kita gunakan untuk variabel konstanta yang menyimpan nilai berupa angka. berikut ini adalah kelompok tipe data numerik. - Tipe Data Teks / String
Tipe data string dapat kita gunakan untuk menyimpan data yang beupa string (Text). berikut kelompok tipe data string. - Tipe Data Tanggal / Date Time
Tipe data date and time digunakan untuk menyimpan data yang berupa tanggal atau waktu. berikut kelompok tipe data Date and Time.
3. Entity Relationship Diagram
- Entity Relationship Diagram disingkat dengan ERD atau ER diagram, merupakan diagram yang menjelaskan struktur dari entitas, atribut dan relasinya didalam sebuah database.
- Crow’s Foot merupakan salah satu notasi yang digunakan untuk menggambarkan diagram relasi sebuah database.
Komponen ERD terdiri atas 3 bagian yaitu entitas, atribut dan relasi
- Entitas adalah sebuah objek didalam sistem yang dapat diitentifikasi secara unik.
- Atribut adalah property atau karakteristik yang menjelaskan / berkaitan dengan entitas
- Relasi mendeskripsikan bagaimana setiap entitas berasosiasi satu sama lain. Relasi memiliki 2 indikator yaitu: pertama, (disebut juga multiplicity) merujuk ke jumlah maximum instance dari sebuah entitas dapat berelasi dengan instances dari entitas lain. kedua, merujuk ke jumlah minimum instance dari sebuah entitas dapat berelasi dengan instances dari entitas lain
Jika kedua indicator di kombinasikan maka ada empat kemungkinan relasi dari entitas.
Dalam notasi crow’s foot, atribut direpresentasikan seperti berikut:
ERD di MySQL
Icon ERD di MySQL
- Key merah digunakan untuk mendeskripsikan sebuah kolom merupakan primary key sekaligus foreign key
- Key kuning digunakan untuk mendeskripsikan sebuah kolom merupakan primary key
- Diamond biru berisi digunakan untuk mendeskripsikan sebuah kolom tidak boleh bernilai NULL
- Diamond merah berisi digunakan untuk mendeskripsikan sebuah kolom tidak boleh bernilai NULL dan
merupakan foreign key - Diamond biru tidak terisi digunakan untuk mendeskripsikan sebuah kolom boleh bernilai NULL
- Diamond merah tidak terisi digunakan untuk mendeskripsikan sebuah kolom merupakan foreign key dan
bisa NULL
4. Keys
Keys adalah sebuah atribut atau kumpulan atribut yang mengidentifikasi setiap baris di dalam table relasi. Key juga memingkinkan table untuk bisa berelasi satu sama lain. Terdapat beberapa jenis keys yaitu:
a. Candidate Key :
Candidate Key adalah salah satu rangkaian yang mempunyai nilai unik untuk membedakan atau mengidentifikasi nilai-nilai kombinasi yang unik di antara semua kejadian yang spesifik dari entitas. Candidate key ini tidak b oleh berisi atribut dari tabel yang lain.Kombinasi dari atribut yang dapat digunakan untuk mengidentifikasi secara unik record database. Setiap tabel dapat memiliki satu atau lebih candidate key.
Misal,
Dari table tersebut kita dapat menjadikan StudID, Roll_No dan Email sebagai Candidate Key karna nilai dari setiap field tersebut unique.
b. Primary Key
Primary key adalah suatu nilai (dari field) dalam basis data yang digunakan untuk mengidentifikasi suatu baris dalam tabel. Nilai dari primary key adalah unique yang berarti tidak boleh kosong (NULL) dan tidak boleh sama dengan row lainnya pada table tersebut.
Rules of Primary Key
c. Alternate Key
Alternate key adalah candidate key yang tidak terpilih sebagai primary key. Misal: dalam suatu entity terdapat dua field yang bisa dijadikan sebagai kunci. Sementara yang boleh dijadikan kunci hanya satu, maka anda harus memilih salah satu. Field yang anda pilih, disebut primary key, sedangkan field yang tidak dipilih disebut dengan alternate key.
misal, karna dari 3 field yang di jadikan candidate key kita sudah memilih StudID sebagai Primary Key maka Roll_No dan Email
akan menjadi Alternate Key.
d. Foreign Key
Foreign Key adalah sebuah atribut atau gabungan atribut yang terdapat dalam suatu tabel yang digunakan untuk menciptakan hubungan (relasi) antara dua tabel.
Dari gambar tersebut menunjukan Department_id adalah Primary Key dari table Department yang di jadikan Foreign Key pada table Karyawan.
e. Composite Key
Composite key adalah kunci yang terdiri dari 2 atau lebih atribut yang secara unik mengidentifikasi suatu kejadian entitas.
Kita tidak bisa menjadikan OrderID sebagai Primary Key (Kunci Utama) untuk table LineItems karena setiap OrderID bisa saja memiliki 2 atau lebih productID.
Maka dari itu kita bisa mengkombinasikan OrderID dan ProductID sebagai composite key. Hal ini cukup memungkinkan karena setiap order hanya dapat memiliki satu line item per Product.
Summary of Key at Database