SINTAX SQL, INNER JOIN, LEFT JOIN, RIGHT JOIN, AND FULL JOIN
Syntax dasar dalam SQL ( Structured Query Language )
LEVEL DATABASE Membuat database Untuk membuat database baru, sehingga tidak berlaku jika database sudah ada atau anda tidak memiliki privilege. Sintaksnya : CREATE DATABASE nama_db
Menghapus database Untuk menghapus database beserta seluruh table di dalamnya. Perintah ini tidak berlaku jika database tidak ada atau anda tidak memiliki privilege. Sintaksnya : DROP DATABASE nama_db
Menggunakan database Untuk menjadikan database menjadi default dan referensi dari table yang nantinya anda gunakan. Perintah ini tidak berlaku jika database tidak ada atau anda tidak memiliki privilege. Sintaksnya : USE nama_db
Menampilkan database Untuk menampilkan daftar yang ada dalam system saat itu. Sintaksnya : SHOW DATABASES
LEVEL TABEL Membuat table Untuk membuat table minimal anda harus menentukan namanya dan tipe kolom yang anda inginkan. Sintaks yang paling sederhana (tanpa ada definisi lain) adalah :
CREATE TABLE nama_tbl (kolom1 tipekolom1(),kolom2 tipekolom2(), …)
Contoh : Anda ingin membuat table dengan nama profil yang memiliki kolom nama (bertipe char, lebar 20), kolom umur (bertipe integer), kolom jenis_kelamin (bertipe enum, berisi M dan F). Sintaksnya : REATE TABLE profil (nama CHAR(20), umur INT NOT NULL, jenis_kelamin ENUM(‘F’,’M’) )
Sedangkan perintah yang agak lengkap dalam membuat sebuah table adalah dengan menyertakan definisi tertentu. Misalnya perintah seperti ini : CREATE TABLE peserta ( No SMALLINT UNSIGNED NOT NULL AUTO_INCREMENT, Nama CHAR(30) NOT NULL, BidangStudi ENUM(‘TS’,’WD’) NOT NULL, PRIMARY KEY (No), INDEX (Nama, BidangStudi) )
Perintah di atas berarti membuat table peserta dengan kolom No sebagai PRIMARY KEY yaitu indeks table yang unik yang tidak bisa diduplikat dengan atribut AUTO_INCREMENT yaitu kolom yang otomatis dapat mengurutkan angka yang diisikan padanya. Sedangkan kolom Nama dan BidangStudi dijadikan indeks biasa.
Membuat indeks pada table Menambahkan indeks pada table yang sudah ada baik yang unik ataupun yang biasa. Sintaksnya : CREATE INDEX nama_index ON nama_tbl (nama_kolom) CREATE UNIQUE INDEX nama_index ON nama_tbl (nama_kolom)
Menghapus table Untuk menghapus table dalam database tertentu. Jika dilakukan maka semua isi, indeks dan atribut lain akan terhapus. Sintaksnya : DROP TABLE nama_tbl
Menghapus indeks Untuk menghapus indeks pada suatu table. Sintaksnya : DROP INDEX nama-index ON nama_tbl
Melihat informasi table Untuk melihat table apa saja yang ada di database tertentu. Sintaksnya : SHOW TABLES FROM nama_db
Sedangkan untuk melihat deskripsi table atau informasi tentang kolom gunakan sintaks : DESC nama_tbl nama_kolom atau SHOW COLUMNS FROM nama_tbl FROM nama_db
Mendapatkan atau menampilkan informasi dari table Untuk menampilkan isi table dengan option-option tertentu. Misalnya untuk menampilkan seluruh isi table digunakan : SELECT * FROM nama_tbl
Untuk menampilkan kolom-kolom tertentu saja : SELECT kolom1,kolom2,… FROM nama_tbl
Untuk menampilkan isi suatu kolom dengan kondisi tertentu SELECT kolom1 FROM nama_tbl WHERE kolom2=isikolom Modifikasi struktur table Dapat digunakan untuk mengganti nama table atau mengubah strukturnya seperti manambah kolom atau indeks, menghapus kolom atau indeks, mengubah tipe kolom dsb. Sintaks umum : ALTER TABLE nama_tbl action
Untuk menambah kolom baru di tempat tertentu dapat menggunakan : ALTER TABLE nama_tbl ADD kolom_baru type() definisi
Untuk menambah kolom_baru bertipe integer setelah kolom1 digunakan : ALTER TABLE nama_tbl ADD kolom_baru INT NOT NULL AFTER kolom1
Untuk menambah indeks baru pada table tertentu baik yang unik ataupun yang biasa: ALTER TABLE nama_tbl ADD INDEX nama_index (nama_kolom) ALTER TABLE nama_tbl ADD UNIQUE nama_indeks (nama_kolom) ALTER TABLE nama_tbl ADD PRIMARY KEY nama_indeks (nama_kolom)
Untuk mengubah nama kolom dan definisinya, misalnya mengubah nama kolom_baru dengan tipe integer menjadi new_kolom dengan tipe char dengan lebar 30 digunakan: ALTER TABLE nama_tbl CHANGE kolom_baru new_kolom CHAR(30) NOT NULL
Untuk menghapus suatu kolom dan seluruh atributnya, misal menghapus kolom1 : ALTER TABLE nama_tbl DROP kolom1
Untuk menghapus indeks baik yang unik ataupun yang biasa digunakan : ALTER TABLE nama_tbl DROP nama_index ALTER TABLE nama_tbl DROP PRIMARY KEY
Modifikasi informasi dalam table. Untuk menambah record atau baris baru dalam table, sintaksnya : INSERT INTO nama_tbl (nama_kolom) VALUES (isi_kolom) atau INSERT INTO nama_tbl SET nama_kolom=isi_kolom
Misalnya untuk menambah dua baris pada table profil dengan isi nama = deden & ujang dan isi umur = 17 & 18 adalah : INSERT INTO profil (nama,umur) VALUES (deden,17), (ujang,18) atau INSERT INTO profil SET nama=deden, umur=17 INSERT INTO profil SET nama=ujang, umur=18
Untuk memodifikasi record atau baris yang sudah ada yang bersesuaian dengan suatu kolom. Misalnya untuk mengubah umur deden menjadi 18 pada contoh di atas dapat digunakan sintaks : UPDATE profil SET umur=18 WHERE nama=qalit
Untuk menghapus record atau baris tertentu dalam suatu table. Misalnya untuk menghapus baris yang ada nama ujang digunakan
sintaks : DELETE FROM profil WHERE nama=ujang
Jika WHERE tidak disertakan maka semua isi dalam table profil akan terhapus.
SQL adalah kependekan dari Structured Query Language, merupakan sebuah bahasa yang digunakan untuk mengakses data dalam basis data (database) relasional. SQL banyak diterapkan pada pemrograman berbasis client-server seperti PHP, ASP, Java J2EE, dan sebagainya. Contoh software SQL yang terkenal adalah MySQL, MsSQL (Microsoft), Oracle SQL, Postgre SQL (open source). Masing-masing software mempunyai keunggulan sendiri-sendiri, sejauh yang saya tahu Oracle SQL handal dalam hal keamanan dan ukuran database yang bisa mencapai tera byte, sedang MsSQL lebih banyak bermain di Memory untuk processing. Dari ketiga software ini, Oracle SQl bisa dikatakan sebagai pemegang pertama. Perintah dasar SQL pada dasarnya hampir sama baik MySQL, Postgre SQL, MsSQL atau Oracle SQL.
Membuat Database Baru di SQL
DDL (Data Definition Language) digunakan untuk mendefinisikan, mengubah, serta menghapus database dan objek-objek yang diperlukan. Membuat basis data di SQL cukup mudah, syntaxnya sebagai berikut.
1 | CREATE DATABASE nama_db; |
Membuat Tabel di SQL
1 | CREATE TABLE nama_tabel; |
Sedangkan untuk membuat tabel lengkap dengan fieldnya, perhatikan contoh di bawah ini:
1 2 3 4 | CREATE TABLE user ( user_name VARCHAR(30) CONSTRAINT PRIMARY KEY, password VARCHAR(20) NOT NULL, date_of_birth DATETIME ); |
DML (Data Manipulation Language), digunakan untuk memanipulasi data dalam tabel. Perintahnya adalah:
- SELECT untuk menampilkan data
- INSERT untuk menambahkan data baru
- UPDATE untuk mengubah data yang sudah ada
- DELETE untuk menghapus data
Menampilkan Seluruh Data
1 | SELECT * FROM user; |
Menyimpan Data ke Tabel SQL
1 | INSERT INTO user (user_name, password, date_of_birth) VALUES ('ALIYA HASSAN', 'Cengkareng', 'qwe'); |
Menghapus Data di Tabel
1 | DELETE FROM user WHERE nama='ALIYA HASSAN'; |
Catatan: Setiap syntax pada SQL selalu diakhiri dengan tanda semicolon atau titik koma (;), abaikan kode ini jika kamu menggunakan PHPMyAdmin untuk mengakses database. Tapi jika kamu menggunakan terminal, ssh, cmd, atau program remote server lainnya perintah ini wajib diperhatikan. Selalu gunakan tanda bintang (*) untuk melihat isi tabel, tanda ini akan membaca baris (row). Pada dasarnya, perintah dasar mysql sama dengan postgre sql maupun oracle sql.
Perintah SQL dan Pengunaannya - SQL (Structured Query Language) adalah sebuah bahasa yang digunakan untuk mengakses data dalam basis data relasional. Bahasa ini secara de facto merupakan bahasa standar yang digunakan dalam manajemen basis data relasional. Saat ini hampir semua server basis data yang ada mendukung bahasa ini untuk melakukan manajemen datanya.
Berikut perintah-perintah dari sql beserta contoh penggunaanya : 1. Create Database : Create database berguna untuk membuat database baru. Syntax dasar:
CREATE DATABASE database_nama
Contoh:
CREATE DATABASE databaseku
2. Create Table : Berguna untuk membuat tabel data baru dalam sebuah database. Syntax dasar:
CREATE TABLE ( Column_name1 table_nama data_type Column_name2 table_nama data_type Column_name3 table_nama data_type )
Contoh menggunakan perintah create table :
CREATE TABLE registrasi ( Id int, Nama varchar (255), Email varchar(50), Kota varchar(255) )
3. Select : Digunakan untuk memilih data dari table database. Syntax dasar :
SELECT column_name(s) FROM table_name
Atau
SELECT * FROM table_name
Contoh 1 :
SELECT nama,email FROM registrasi
Contoh 2 :
SELECT * FROM registrasi
4. Select Distinct : Digunakan untuk memilih data-data yang berbeda (menghilangkan duplikasi) dari sebuah table database. Syntax dasar :
SELECT DISTINCT column_name(s) FROM table_name
Contoh :
SELECT DISTINCT kota FROM registrasi
5. Where : Digunakan untuk memfilter data pada perintah Select Syntax dasar :
SELECT column name(s) FROM table_name WHERE column_name operator value
Contoh :
SELECT * FROM registrasi WHERE nama=’KONOE’
6. Order By : Digunakan untuk mengurutkan data berdasarkan kolom (field) tertentu. Secara default, urutan tersusun secara ascending (urut kecil ke besar). Anda dapat mengubahnya menjadi descending (urut besar ke kecil) dengan menambahkan perintah DESC. Syntax dasar :
SELECT column_name(s) FROM table_name ORDER BY column_name(s) ASC|DESC
Contoh 1 :
SELECT * FROMregistrasi ORDER BY email
Contoh 2 :
SELECT * FROM registrasi ORDER BY id DESC
8. Like : Digunakan bersama dengan perintah Where, untuk proses pencarian data dengan spesifikasi tertentu. Syntax dasar :
SELECT column_name(s) FROM table_name WHERE column_name LIKE pattern
Contoh 1 :
SELECT * FROM registrasi WHERE nama LIKE ‘b%’
Keterangan Contoh di atas digunakan untuk pencarian berdasarkan kolom nama yang berhuruf depan “b”. Contoh 2 :
SELECT * FROM WHERE nama LIKE ‘b%’
Keterangan : Contoh di atas digunakan untuk pencarian berdasarkan kolom nama yang berhuruf belakang “b”. 9. In : Digunakan untuk pencarian data menggunakan lebih dari satu filter pada perintah Where. Syntax dasar :
SELECT column_name(s) FROM table_name WHERE column_name IN (value1,value2, . . .)
Contoh :
SELECT * FROM registrasi WHERE kota IN (‘Medan’,’Siantar’)
10. Between : Digunakan untuk menentukan jangkauan pencarian. Syntax dasar :
SELECT column_name(s) FROM table_name WHERE column_name BETWEEN value1 AND value2
Contoh :
SELECT * FROM registrasi WHERE id BETWEEN 5 and 15
Keterangan : Contoh di atas digunakan untuk mencari data yang memiliki nomor id antara 5 dan 15. 11. Insert Into : Digunakan untuk menambahkan data baru di tabel database. Syntax dasar :
INSERT INTO table_name VALUES (value1,value2,value3, . . .)
Atau
INSERT INTO table_name (column1,column2,column3, . . .) VALUES (value1,value2,value3, . . .)
Contoh 1 :
INSERT INTO registrasi VALUES (1,’konoe’,’konoe@gmail.com’,’Medan’)
Contoh 2 :
INSERT INTO registrasi (id,nama,email,kota) VALUES (1,'konoe','konoe@gmail.com','Medan')
12. Update : Digunakan untuk mengubah/memperbarui data di tabel database. Syntax dasar:
UPDATE table_name SET column1=value,column2=value, . . . WHERE some_column=some_value
Contoh :
UPDATE registrasi SET email=’konoe@yahoo.com’, kota=’Medan’ WHERE
13. Delete : Digunakan untuk menghapus data di table database. Tambahkan perintah Where untuk memfilter data-data tertentu yang akan dihapus. Jika tanpa perintah Where, maka seluruh data dalam tabel akan terhapus. Syntax dasar :
DELETE FROM table_name WHERE some_column=some_value
Contoh :
DELETE FROM registrasi WHERE id=1
14. Inner Join : Digunakan untuk menghasilkan baris data dengan cara menggabungkan 2 buah tabel atau lebih menggunakan pasangan data yang match pada masing-masing tabel. Perintah ini sama dengan perintah join yang sering digunakan. Syntax dasar :
SELECT column_name(s) FROM table_name1 INNER JOIN table_name2 ON table_name1.column_name=table_name2 column-name
contoh :
SELECT registrasi.nama,registrasi.email,order.no_order FROM registrasi INNER JOIN order ON registrasi.id=order.id ORDER BY registrasi.nama
15. Left Join : Digunakan untuk menghasilkan baris data dari tabel kiri (nama tabel pertama) yang tidak ada pasangan datanya pada tabel kanan (nama tabel kedua). Syntax dasar :
SELECT column_name(s) FROM table_name1 LEFT JOIN table_name2 ON table_name1.column_name=table_name2. column_name
contoh :
SELECT registrasi.nama,registrasi.email,order.no_order FROM registrasi LEFT JOIN order ON registrasi.id=order.id ORDER BY registrasi.nama
16. Right Join : Digunakan untuk menghasilkan baris data dari tabel kanan (nama tabel kedua) yang tidak ada pasangan datanya pada tabel kiri (nama tabel pertama). Syntax dasar :
SELECT column_name(s) FROM table_name1 RIGHT JOIN table_name2 ON table_name1.column_name=table_name2 column_name
contoh :
SELECT registrasi.nama,registrasi.emailmorder.no_order FROM registrasi RIGHT JOIN order ON registrasi.id=order.i ORDER BY registrasi.nama
17. Full Join : Digunakan untuk menghasilkan baris data jika ada data yang sama pada salah satu tabel. Syntax dasar
SELECT column_name(s) FROM table_name1 FULL JOIN table_name2 ON table_name1.column_name=table_name2 column_name
Contoh :
SELECT registrasi.nama,registrasi.email,order.no_order FROM registrasi FULL JOIN order ON registrasi.id=order.id ORDER BY registrasi.nama
18. Union : Digunakan untuk menggabungkan hasil dari 2 atau lebih perintah Select. Syntax dasar :
SELECT column_name(s)FROM table_name1 UNION column_name(s) FROM table_name2
Atau
SELECT column_name(s) FROM table_name1 UNION ALL SELECT column_name(s) FROM table_name2
Contoh :
SELECT nama FROM mhs_kampus1 UNION SELECT nama FROM mhs_kampus2
18. Alter Table : Digunakan untuk menambah, menghapus, atau mengubah kolom (field) pada tabel yang sudah ada. Syntax untuk menambah kolom :
ALTAR TABLE table_name ADD column_name datatyoe
Contoh :
ALTER TABLE Persons ADD DateOfBirth date
Syntax untuk menghapus kolom :
ALTER TABLE table_name DROP COLUMN column_name
Contoh :
ALTER TABLE Persons DROP COLUMN DateOfBirth
Syntax untuk mengubah kolom :
ALTER TABLE table_name ALTER TABLE clumn_name datatype
Contoh:
ALTER TABLE Persons ALTER COLUMN DateOfBirth year
19. Now () : Digunakan untuk mendapatkan informasi waktu (tanggal dan jam saat ini.) Syntax dasar
Now()
Contoh :
SELECT NOW()
20. Curdate : Digunakan unutk mendapatkan informasi tanggal saat ini. Syntax dasar :
Curdate()
Contoh :
SELECT CURDATE()
21. Curtime() : Digunakan untuk mendapatkan informasi jam saat ini. Syntax dasar :
Curtime()
Contoh :
SELECT CURTIME()
22. Extract() : Digunakan untuk mendapatkan informasi bagian-bagian dari data waktu tertentu, seperti tahun, bulan, hari, jam, menit, dan detik tertentu. Syntax dasar
Extract(unit FROM date)
INNER JOIN
Jika Anda telah memahami fungsi join pada database relasional untuk menghubungkan berbagai table, maka artikel berikut akan menjelaskan dan menunjukkan contoh penggunaan variasi join pada MySQL versi 5.0. JOIN sendiri merupakan konstruksi bahasa yang tidak bisa berdiri sendiri, biasanya berupa klausa pada bagian referensi table pada SELECT, UPDATE atau DELETE statement. Tipe-tipe JOIN
NORMALISASI DATA
NORMALISASI DATA
DataBase (basis data dalam bahasa indonesia) dapat diartikan sebagai kumpulan sejumlah data berupa informasi yang disimpan dengan struktur yang sedemikian rupa sehingga dapat diolah kemudian dengan mudah. Sedangkan untuk membuat suatu database yang harus diperhatikan adalah jenis data;
* Data Master, yaitu data yang sifatnya tidak selalu berubah-ubah. Data master ini digunakan sebagai pendukung di dalam proses input transaksi.
* Data Transaksi, yaitu data yang akan selalu muncul dan berubah. Data transaksi ini selalu bergantung kepada master.
Normalisasi pada database adalah proses pernormalan suatu database yang disusun agar menghindari terjadinya redudancy (kemubaziran data). Dalam melakukan normalisasi, ada beberapa tahap yang harus dilakukan,
1. Unnormalized
Pada tahap ini, kita mengambil seluruh data yang ada dan diperlukan dalam database itu sendiri. Misalnya pada contoh bon faktur di bawah ini,
Kita ambil data-data yang diperlukan pada database nantinya, sperti * Nama Supplier * Alamat Supplier * No. Telp. * No. Nota * Tanggal Transaksi * Kode Barang * Nama Barang * Harga * Quantity * Total * Subtotal * Pemberi * Penerima
2. Normal Satu
Pada tahap ini, kita bagi seluruh data yang diperlukan menjadi beberapa bagian berdasarkan jenis data tersebut,
Supplier * Nama Supplier * Alamat * No. Telp.
Transaksi * No. Nota * Kode Barang * Tanggal Transaksi * Nama Barang * Harga Barang * Satuan * Quantity * Total * Sub Total
3. Normal Dua
Pada tahap ini, kita bagi berdasarkan jenis dan memberikan primary key pada masing-masing tabel,
Supplier * Kode Supplier * Nama Supplier * Alamat * No. Telp.
Master Barang * Kode Barang * Nama Barang * Harga * Satuan
Transaksi * No. Nota * Tanggal Transaksi * Kode Barang * Nama Barang * Harga * Satuan * Quantity * Pemberi * Penerima
4. Normal Tiga
Pada tahap ini, kita bagi menjadi lebih terperinci untuk menghindari terjadinya redudancy,
Supplier * Tetap
Master Barang * Tetap
Transaksi Dibagi menjadi: Header Transaksi * No. Nota * Tanggal Transaksi * Kode Supplier * Pemberi * Penerimaan
Detail Transaksi * No. Nota * Kode Barang * Quantity
Bentuk-bentuk Normal
- Bentuk Normal Tahap Pertama (1st Normal Form / 1NF)
- Bentuk Normal Tahap Kedua (2nd Normal Form / 2NF)
- Bentuk Normal Tahap (3rd Normal Form / 3NF)
- Boyce-Code Normal Form (BCNF)
- Bentuk Normal Tahap (4th Normal Form / 4NF)
- Bentuk Normal Tahap (5th Normal Form / 5NF)
Kapan tidak memakai normalisasi
- ketika kita ingin mempertahankan kesederhanaan database, sehingga user dapat melakukan query sendiri.
- jika tidak ingin melakukan query yang rumit. normalisasi biasanya akan membuat rumit query karena melibatkan banyak tabel.
- tidak selamanya normalisasi membuat baik, malah akan menyebabkan database semakin buruk
Normalisasi database biasanya jarang dilakukan dalam database skala kecil, dan dianggap tidak diperlukan pada penggunaan personal. Namun seiring dengan berkembangnya informasi yang dikandung dalam sebuah database, proses normalisasi akan sangat membantu dalam menghemat ruang yang digunakan oleh setiap tabel di dalamnya, sekaligus mempercepat proses permintaan data.
Proses normalisasi model data dapat diringkas sebagai berikut:
- Menemukan entitas-entitas utama dalam model data.
- Menemukan hubungan antara setiap entitas.
- Menentukan atribut yang dimiliki masing-masing entitas.
Normalisasi model data dilakukan dengan mengikuti langkah-langkah sederhana, mengubahnya agar memenuhi apa yang disebut sebagai bentuk normal pertama, kedua, lalu ketiga secara berturutan.
Langkah-Langkah Normalisasi
1.Bentuk Normal Pertama ( 1NF )
Bentuk First Normal Form (1NF)
Sebuah model data dikatakan memenuhi bentuk normal pertama apabila setiap atribut yang dimilikinya memiliki satu dan hanya satu nilai. Apabila ada atribut yang memiliki nilai lebih dari satu, atribut tersebut adalah kandidat untuk menjadi entitas tersendiri.
2.Bentuk Normal Kedua ( 2NF )
Sebuah model data dikatakan memenuhi bentuk normal kedua apabila ia memenuhi bentuk normal pertama dan setiap atribut non-identifier sebuah entitas bergantung sepenuhnya hanya pada semua identifier entitas tersebut.
3.Bentuk Normal Ketiga (3NF)
Bentuk Third Normal Form (3NF)
Tabel 1 dan 2 sudah memenuhi criteria bantuk 3NF, namun tidak untuk tabel 3, karena bila kita ingin merubah value bobot dari nilai, maka kita akan melakukan perubahan pada banyak record/baris yang lainnya. Sehingga pada bentuk 3NF, tabel 3 dapat dipecah lagi menjadi 2 tabel agar memenuhi kriteria bentuk 3NF
Keuntungan dari normalisasi, yaitu :1. Meminimalkan ukuran penyimpanan yang diperlukan untuk menyimpan data.2. Meminimalkan resiko inkonsistensi data pada basis data3. Meminimalkan kemungkinan anomali pembaruan4. Memaksimalkan stabilitas struktur dataWELL STRUCTURE RELATION adalah sebuah relasi yang jumlah kerangkapan datanya sedikit (minimum Amount Of Redundancy), serta memberikan kemungkinan bagi user untuk melakukan INSERT, DELETE, dan MODIFY terhadap baris-baris data pada relation tersebut, yang tidak berakibat terjadinya ERROR atau INKONSESTENSI DATA, yang disebabkan oleh operasi –operasi tersebutContoh :Terdapat sebuah relation Course, dengan ketentuan sbb:Setiap mahasiswa hanya boleh mengambil satu matakuliah saja.Setiap matakuliah mempunyai uang kuliah yang standar (tidak tergantung pada mahasiswa yang mengambil matakuliah tsb).
Dalam melakukan normalisasi, ada beberapa tahap yang harus dilakukan,
1. Unnormalized
Pada tahap ini, kita mengambil seluruh data yang ada dan diperlukan dalam database itu sendiri. Misalnya pada contoh bon faktur di bawah ini,
Kita ambil data-data yang diperlukan pada database nantinya, sperti * Nama Supplier * Alamat Supplier * No. Telp. * No. Nota * Tanggal Transaksi * Kode Barang * Nama Barang * Harga * Quantity * Total * Subtotal * Pemberi * Penerima
2. Normal Satu
Pada tahap ini, kita bagi seluruh data yang diperlukan menjadi beberapa bagian berdasarkan jenis data tersebut,
Supplier * Nama Supplier * Alamat * No. Telp.
Transaksi * No. Nota * Kode Barang * Tanggal Transaksi * Nama Barang * Harga Barang * Satuan * Quantity * Total * Sub Total
3. Normal Dua
Pada tahap ini, kita bagi berdasarkan jenis dan memberikan primary key pada masing-masing tabel,
Supplier * Kode Supplier * Nama Supplier * Alamat * No. Telp.
Master Barang * Kode Barang * Nama Barang * Harga * Satuan
Transaksi * No. Nota * Tanggal Transaksi * Kode Barang * Nama Barang * Harga * Satuan * Quantity * Pemberi * Penerima
4. Normal Tiga
Pada tahap ini, kita bagi menjadi lebih terperinci untuk menghindari terjadinya redudancy, Supplier * Tetap
Master Barang * Tetap
Transaksi Dibagi menjadi: Header Transaksi * No. Nota * Tanggal Transaksi * Kode Supplier * Pemberi * Penerima
Detail Transaksi * No. Nota * Kode Barang * Quantity
Entity Relationship Database Pada Sistem Penjualan Labtop Online
Implementasi Database system Pada Sistem Penjualan Labtop Online
Database sistem informasi e-commerce dapat mempermudah dalam melakukan manajemen data penjualan produk dalam sebuah database. Misalkan pada implementasi database dalam sistem penjualan laptop online, seluruh data yang berkaitan dengan sistem penjualan akan disimpan dalam sebuah databse yang terdiri dari beberapa tabel.
Terdapat beberapa entitas dalam database sistem penjualan laptop online ini, antara lain
1.Konsumen
Menyatakan entitas pembeli produk. Mempunyai atribut id, nama, alamat, telp, tgl_lahir, dan email.
2.Transfer
Menyatakan cara pembayaran transaksi. Mempunyai atribut no_rek dan nama.
3.Order
Menyatakan pesanan, mempunyai atribut kode_order dan jumlah_order.
4.Barang
Menyatakan produk yang dijual, mempunyai atribut id_barang, nama_barang, dan harga.
5.Pengepakan
Menyatakan cara pengepakan dan pengiriman barang. Mempunyai atribut kode_agen, nama dan alamat_tujuan.
Bilangan kardinalitas pada Relasi Dua entitas
1.Konsumen ke Order ; Many To Many
2.Order ke Barang ;One To Many
3.Order ke Pengepakan ;One To Many
4.Konsumen ke Transfer ; Many To One
Diagram dari entitas padadatabase system penjualanlabtop online
PERINTAH DAN JUGA CONTOH BASISDATA
1. Bahasa Definisi Data (Data Definition Language/ DDL)
DDL adalah perintah-perintah yang biasa digunakan oleh administrator basis data (DBA) utnuk mendefinisikan skema ke DBMS. Skema adalah deskripsi lengkap tentang struktur medan, rekaman, dan hubungan data pada basis data
Index merupakan suatu mekanisme yang lazim digunakan pada basis data, yang memungkinkan pengambilan data dapat dilakukan dengan cepat.
DDL Digunakan untuk mespesifikasikan struktur/skema basis data yang menggambarkan/mewakili desain basis data secara keseluruhan.
Hasil kompilasi perintah DDL adalah kamus data (File yang berisi metadata (data yang mendeskripsikan data sesungguhnya).
Struktur penyimpan dan metode akses yang digunakan oleh sistem basis data disebut dengan data storage and definition language.
Perintah-perintah yang termasuk dalam data Definition Language/ DDL):
•CREATE (untuk membentuk basis data, table atau index)•• DROP (untuk mengubah struktur table)
• ALTER (untuk menghapus basis data, table atau index)
• SELECT – mengambil data
• DELETE – menghapus data
• INSERT – menyisipkan data
• UPDATE – mengubah data
Berikut adalah contoh perintah DDL yang digunakan pada MySQL. Klik pada link untuk melihat rincian penggunaan dari perintah tersebut.
- Pembuatan (CREATE)
- CREATE DATABASE
- CREATE FUNCTION
- CREATE INDEX
- CREATE PROCEDURE
- CREATE TABLE
- CREATE TRIGGER
- CREATE VIEW
- Perubahan (ALTER & RENAME)
- ALTER DATABASE
- ALTER FUNCTION
- ALTER PROCEDURE
- ALTER TABLE
- ALTER VIEW
- RENAME TABLE
- Penghapusan (DROP)
- DROP DATABASE
- DROP FUNCTION
- DROP INDEX
- DROP PROCEDURE
- DROP TABLE
- DROP TRIGGER
- DROP VIEW
Data Manipulation laguage (DML)
DML adalah perintah-perintah yang digunakan untuk mengubah, manipulasi dan mengambil data pada basis data. Tindakan seperti menghapus, mengubah, dan mengambil data menjadi bagian dari DML.
DML pada dasarnya dibagi menjadi dua :
Prosedural, yang menuntut pengguna menentukan data apa saja yang diperlukan dan bagaimana cara mendapatkannya.
- Nonprosedural, yang menuntut pengguna menentukan data apa saja yang diperlukan, tetapi tidak perlu menyebutkan cara mendapatkannya.
Perintah-perintah yang termasuk dalam data manipulation language adalah :
a) Insert: Merupakan perintah yang dilakukan untuk melakukan penyisipan. Umunya penyisipan dilakukan langsung ke base table yaitu tabel utama,tabel dasar atau fisik. Ada dua jenis penyisipan yaitu :
- Menambah anggota relasi langsung lewat base tables
- Menambah suatu relasi melalui suatu views sehingga mungkin menghasilkan penambahan lebih dari satu baris pada base tables
b) Update Merupakan perintah yang digunakan untukmengubah data yang memenuhikondisitertentu yang dideskripsikandengan where.Adaduajenis update yaitu :
- Memodifikasianggotalangsungdari base tables.
- Memodifikasianggotarelasimelaluisuatu views.
c) Delete: Merupakanperintah yang digunakan untuk menghapus data yang memenuhi kondisi tertentu yang dideskripsikan dengan:
- Menghapus anggota langsung dari base tables.
- Menghapus anggota relasi melalui suatu views.
d) Select: Merupakan perintah yang digunakan untuk melakukan operasi seleksi yang dinyatakan dalam bentuk suatu query dalam bahasa tertentu dengan operasi model data relasional.
e) Views: Merupakan perintah yang digunakan untuk memudahkan proses untuk dapat membuat tabel virtual ataumaya yang dapat merupakan kombinasi berbagai base tables yang dihubungkan dengan kesamaan kondisi tertentu.View adalah tabel semu yang berarti secara fisik data tidak tersimpan dalam basis data,tetapi secara lojik dapat berfungsi seolah-olah tabel.Pada dasarnya tabel virtual adalah :
- Merupakan hasil proses seleksi yang mewakili kacamata user tertentu.
- Dapat digunakan untuk melakukan retrieval,insert,delete dan update
- Data Control Language
Beberapa daftar Perintah DML MySQL 5.0
- CALL
- DELETE
- DO
- HANDLER
- INSERT
- LOAD DATA INFILE
- REPLACE
- SELECT
- TRUNCATE
- UPDATE
Data Control Language (DCL)
Data Control Language (DCL) merupakan sub bahasa SQL yang digunakan untuk melakukan pengontrolan data dan server databasenya.
Perintah-perintah yang termasukdalam data control language adalah :
a) Commit: Merupakan perintah yang digunakan untuk memindahkan transaksi dari memory pemrosesan ke database atau menyimpan secara permanen perubahan-perubahan kedalam database.
b) Rollback: Merupakan perintah yang digunakan untuk membatalkan transaksi yang belum di commit atau membatalkan perubahan-perubahan terakhir dari perintah commit/rollback terakhir.
c) Grand: Perintah ini digunakan untuk memberikan hak/ijin akses oleh administrator (pemilik utama) server kepada user (pengguna biasa). Hak akses tersebut berupa hak membuat (CREATE), mengambil (SELECT), menghapus (DELETE), mengubah (UPDATE), dan hak khusus berkenaan dengan sistem databasenya.
d) Revoke : Perintah ini memiliki kegunaan terbalik dengan GRAND, yaitu untuk menghilangkan atau mencabut hak akses yang telah diberikan kepada user oleh administrator.
DQL ( Data Query Language)
Query sesungguhnya berarti pertanyaan atau permintaan. Istilah ini tetap dipertahankan dalam bentuk asli, karena telah populer di kalangan pengguna DBMS di Indonesia.
Tipe Data pada Database manajemen sistem
-
1 Character (Visual dBASE),Char (SQL),Text (Access),Alpha (Paradox) ;
Yakni Menyatakan tipe data untuk menyimpan deretan karakter seperti nama orang atau nama Mobil
2. Memo (Access dan Visual dBASE) ,Text (PostgresSQL) ; yakni Untuk menyimpan deretan karakter dengan ukuran yang besar (melebihi 256 karakter)
3. Number (Access),Numeric (Visual dBASE) ; yakni Untuk menyimpan data bilangan
4. Date/Time (Access); yakni Untuk menyimpan data jam dan tanggal
5. Date (Visual dBASEDate),(PostgresSQL), yakni Untuk menyimpan tanggal
6. Time (PostgresSQL); yakni Untuk menyimpan data jam
7. Currency (Access) ,Money (Paradox) ;yakni Untuk menyimpan data uang
8. Yes/No (Access) ,Logical (Visual dBASE),Bool (PostgresSQL) yaitu Untuk menyimpan data logika (benar atau salah)
9. OLE (Visual dBASE) ,OLE Object (Access) yakni Untuk menyimpan OLE. Dapat berupa objek seperti gambar atau bahkan suara
10. Binary (Visual dBASE) ;yakni Untuk menyimpan data gambar atau suara
11. Graphics (Paradox);yakni Untuk menyimpan data gambar