tugas 6
1. INNER JOIN
Dengan inner join, tabel akan digabungkan dua arah, sehingga tidak ada data yang NULL di satu sisi. Sebagai contoh, kita akan menggabungkan tabel pelanggan dan pesan dimana kita akan menampilkan daftar pelanggan yang pernah melakukan pemesanan (transaksi). Misalkan isi tabel pelanggan dan pesan adalah sebagai berikut :
Tabel pelanggan (hanya ditampilkan field id_pelanggan, nm_pelanggan dan email)
Contoh isi tabel pelanggan
Tabel pesan.
Contoh isi tabel pesan
Cara #1. Inner Join dengan WHERE.
Penggabungan dengan klausa WHERE memiliki bentuk umum sebagai berikut:
SELECT tabel1.*, tabel2.* FROM tabel1, tabel2 WHERE tabel1.PK=tabel2.FK;
Berikut ini perintah SQL untuk menggabungkan tabel pelanggan dan pesan:
SELECT pelanggan.id_pelanggan, pelanggan.nm_pelanggan, pesan.id_pesan,
pesan.tgl_pesan FROM pelanggan, pesan WHERE
pelanggan.id_pelanggan=pesan.id_pelanggan;
Hasilnya sebagai berikut:
Hasil Penggabungan 2 Tabel dengan WHERE
Pada hasil perintah query di atas terlihat bahwa terdapat 5 (lima) transaksi yang dilakukan oleh 3 (tiga) orang pelanggan. Jika kita lihat kembali isi tabel pelanggan di atas, maka terdapat satu pelanggan yang tidak ditampilkan yaitu yang memiliki id pelanggan P0003. Pelanggan tersebut tidak ditampilkan karena belum pernah melakukan transaksi.
Cara #1. Inner Join dengan klausa INNER JOIN.
Berikut ini bentuk umumnya:
SELECT tabel1.*, tabel2.* FROM tabel1 INNER JOIN tabel2 ON tabel1.PK=tabel2.FK;
Dan berikut ini perintah SQL penggabungan tabel pelanggan dan pesan.
SELECT pelanggan.id_pelanggan, pelanggan.nm_pelanggan, pesan.id_pesan,\
pesan.tgl_pesan FROM pelanggan INNER JOIN pesan ON
pelanggan.id_pelanggan=pesan.id_pelanggan;
Hasilnya akan sama dengan gambar di atas (cara #1).
2. OUTER JOIN
Dengan outer join, tabel akan digabungkan satu arah, sehingga memungkinkan ada data yang NULL (kosong) di satu sisi. Sebagai contoh, kita akan menggabungkan tabel pelanggan dan pesan dimana kita akan menampilkan daftar pelanggan yang pernah melakukan pemesanan (transaksi).
Outer Join terbagi menjadi 2 (dua) yaitu LEFT JOIN dan RIGHT JOIN. Berikut ini bentuk umum dan contohnya:
3. LEFT JOIN.
Bentuk umum:
SELECT tabel1.*, tabel2.* FROM tabel1 LEFT JOIN tabel2 ON tabel1.PK=tabel2.FK;
Contoh perintah SQL:
SELECT pelanggan.id_pelanggan, pelanggan.nm_pelanggan, pesan.id_pesan, pesan.tgl_pesan FROM pelanggan LEFT JOIN pesan ON pelanggan.id_pelanggan=pesan.id_pelanggan;
Hasilnya:
Hasil Perintah Left Join
Berbeda dengan hasil sebelumnya (inner join), penggunaan left join akan menampilkan juga data pelanggan dengan id P0003, walaupun pelanggan tersebut belum pernah bertransaksi. Dan pada kolom id_pesan dan tgl_pesan untuk pelanggan P0003 isinya NULL, artinya di tabel kanan (pesan) pelanggan tersebut tidak ada.
4. RIGHT JOIN
Bentuk umum:
SELECT tabel1.*, tabel2.* FROM tabel1 RIGHT JOIN tabel2 ON tabel1.PK=tabel2.FK;
Contoh perintah SQL:
SELECT pelanggan.id_pelanggan, pelanggan.nm_pelanggan, pesan.id_pesan, pesan.tgl_pesan FROM pelanggan RIGHT JOIN pesan ON pelanggan.id_pelanggan=pesan.id_pelanggan;
Hasilnya:
Hasil Perintah Right Join
Dengan right join, tabel yang menjadi acuan adalah tabel sebelah kanan (tabel pesan), jadi semua isi tabel pesan akan ditampilkan. Jika data pelanggan tidak ada di tabel pelanggan, maka isi tabel pesan tetap ditampilkan.
Menggabungkan 3 Tabel atau Lebih
Untuk menggabungkan tiga tabel atau lebih, pada dasarnya sama dengan penggabungan 2 (dua) tabel. Sebagai contoh misalnya kita akan menampilkan barang-barang yang dipesan beserta nama barang dan harganya untuk pemesanan dengan nomor 1, sedemikian sehingga hasilnya menjadi sebagai berikut:
tugas 5
DIAGRAM ENTITY RELATIONSHIP (RUMAH SAKIT)
Objek yang dipakai
1. Petugas
2. Pasien
3. Dokter
4. Ruang
Penentuan entitas
1. Petugas : Menyimpan informasi identitas dari petugas jaga
2. Pasien : Menyimpan informasi identitas dari pasien
3. Dokter : Menyimpan informasi identitas dari dokter
4. Ruang : Menyimpan informasi identitas dari ruang
5. Rawat inap : Menyimpan informasi apabila terdapat pasien yang perlu rawat inap
6. Pembayaran : Menyimpan informasi dari administrasi pembayaran pasien
Penentuan atribut
1. Petugas : kd_petugas , nama_petugas , alamat_petugas , jam_jaga
2. Pasien : kd_pasien , kd_dokter , nama_pasien , alamat_pasien , tanggal_datang , keluhan
3. Dokter : kd_dokter , nama_dokter , alamat_dokter , spesialisasi_dokter
4. Ruang : kd_ruang , nama_ruang , nama_gedung
5. Rawat inap : kd_rawat_inap , nama_pasien , kd_ruang
6. Pembayaran : kode_pembayaran , kd_pasien , kd_petugas , jumlah_harga
tugas 4
normalisasi database relasi
RELASI dan NORMALISASI
Adalah suatu proses untuk mengubah suatu relasi yang memiliki hubungan tertentu,
ke dalam dua buah relasi atau lebih dengan ketergantungan dan keterkaitan yang
tinggi atau erat. Normalisasi memberikan panduan yang sangat membantu bagi pengembang
untuk mencegah terjadinya pembuatan struktur tabel yang kurang fleksibel dan kurang efisien
Anomali adalah proses dalam basis data yang memberikan efek samping
yang tidak diharapkan,
( misal : in-konsistensi data, membuat suatu data menjadi hilang jika data lain dihapus).
Proses normalisasi diharapkan dapat menghilangkan anomali yang ada/ditemukan.
Aturan-aturan normalisasi dinyatakan dalam istilah bentuk normal.
Bentuk normal adalah suatu aturan yang dikenakan pada relasi-relasi dalam basis data
dan harus dipenuhi oleh relasi-relasi tersebut pada level-level normalisasi.
Suatu relasi dikatakan berada dalam bentuk normal tertentu jika
memenuhi kondisi-kondisi yang disyaratkan.
Proses normalisasi melalui tahap-tahap sebagai berikut :
a. Bentuk Normal I (First Normal Form / 1-NF).
b. Bentuk Normal II (Second Normal Form / 2-NF).
c. Bentuk Normal III (Third Normal Form / 3-NF).
d. Bentuk Normal IV (Fourth Normal Form / 4-NF).
e. Bentuk Normal Boyce-Codd (Boyce-Codd Normal Form / BCNF).
f. Project-Join Normal I Form (PJNF).
g. Domain-Key Normal I Form (DKNF).
h. Bentuk Normal V (Fifth Normal Form / 5-NF).
Kegunaan normalisasi :
a. Meminimasi pengulangan informasi.
b. Memudahkan indentifikasi entiti / obyek.
Normalisasi merupakan teknik analisis data yang mengorganisasikan atribut-atribut data dengan cara mengelompokkan sehingga terbentuk entitas yang non-redundant, stabil, dan fleksible
• Normalisasi dilakukan sebagai uji coba pada suatu relasi secara berkelanjutan untuk menentukan apakah relasi itu sudah baik, yaitu dapat dilakukan proses insert,update,delete, dan modifikasi pada satu atau beberapa atribut tanpa mempengaruhi integritas data dalam relasi tersebut.
Pada proses normalisasi terhadap tabel pada database dapat dilakukan dengan tiga tahap normalisasi antara lain :
1. Bentuk Normal ke Satu(1NF)
a. Syarat :
b. Tidak ada set atribut yang berulang atau bernilai ganda.
c. Telah ditentukannya primary key untuk tabel atau relasi.
d. Tiap atribut hanya memiliki satu pengertian.
e. Tiap atribut yang dapat memiiki banyak nilai sebenarnya menggambarkan entitas atau relasi yang terpisah.
2. Bentuk Normal ke Dua(2NF)
a. Syarat :
b. Bentuk data telah memenuhi kriteria bentuk normal ke satu.
c. Atribut bukan kunci(non-key attribute) haruslah memiliki ketergantungan fungsional sepenuhnya pada primary key
3. Bentuk Normal ke Tiga(3NF)
a. Syarat :
b. Bentuk data telah memenuhi kriteria bentuk normal ke dua.
c. Atribut bukan kunci(non-key attribute) tidak boleh memiliki ketergantungan fungsional terhadap atribut bukan kunci lainnya. Seluruh atribut bukan kunci pada suatu relasi hanya memiliki ketergantungan fungsional terhadap primary key di relasi itu saja.
tugas 3
-DDL :
DDL atau Data Definiton Language adalah sebuah bahasa yang digunakan untuk mendefinisikan pendefinisian data. Terdiri dari perintah-perintah untuk membentuk, mengubah atau menghapus tabel beserta kolom-kolom dan type data penyusunnya, serta perintah-perintah untuk menetapkan hubungan dan batasan-batasan data.
5 Macam perintah DDL yang ada di Oracle :
- CREATE TABLE
Digunakan untuk membuat tabel. Syntax umumnya sebagai berikut :
CREATE TABLE [schema, ] table ( column datatype [DEFAULT expr][,...]);
Contoh pembuatan sebuah tabel adalah :
CREATE TABLE dept (deptno NUMBER(2), dname VARCHAR2(14), loc VARCHAR2(13));
- ALTER TABLE
Statemen ALTER TABLE digunakan untuk :
~ Menambahkan kolom baru
Untuk menambah kolom baru, syntax umumnya sebagai berikut :
ALTER TABLE table ADD (column datatype [DEFAULT expr] [, column datatype]...);
Contoh penambahan kolom pada tabel dept yang dibuat di atas adalah :
ALTER TABLE dept ADD (job_id VARCHAR2(9));
~ Memodifikasi kolom yang sudah ada
Kita dapat memodifikasi kolom dengan mengubah tipe datanya, ukuran dan nilai defaultnya.
Sintaks dari perintah ALTER TABLE untuk memodifikasi kolom sebagai berikut :
ALTER TABLE table MODIFY (column datatype [DEFAULT expr] [, column datatype] ... );
Contoh :
ALTER TABLE dept MODIFY (dname VARCHAR2(30));
Table altered.
~ Menghapus kolom
Klausa DROP COLUMN digunakan untuk menghapus kolom yang tidak diperlukan lagi pada table. Sebagai contoh untuk menghapus kolom job_id pada pada tabel dept di atas.
ALTER TABLE dept DROP COLUMN job_id;
- DROP TABLE
Digunakan untuk melakukan penghapusan tabel. Melakukan penghapusan table dengan perintah DROP, berarti mengerjakan hal berikut :
Semua data dan struktur dari table akan dihapus
Semua transaksi pending akan di-commit
Semua indeks akan dihapus
Perintah drop ini tidak bisa di-rollback
Sebagai contoh, jika kita ingin menghapus tabel dept, maka yang harus dilakukan adalah :
DROP TABLE dept;
- RENAME
Digunakan untuk merubaha nama dari suatu object (table,view,sequence atau synonim). Sebagai contoh, jika kita ingin menghapus tabel dept,maka perintah yang harus dilakukan adalah :
RENAME dept TO detail_dept;
- CREATE VIEW
View adalah tabel bayangan. Tidak menyimpan data secara fisik. Biasanya berupa hasil query dari tabel-tabel dalam sebuah database. Syntax untuk melakuakn VIEW adalah :
CREATE VIEW AS
Contoh : view MahasiswaPria yang diambil dari tabel Mahasiswa di mana field JenisKel = “L”. Syntax dari contoh tersebut adalah :
CREATE VIEW MahasiswaPria AS SELECT * FROM Mahasiswa WHERE jeniskel=”L”
- CREATE TRIGGER
Trigger adalah sebuah obyek dalam database yang berupa prosedur yang merespon setiap kali terdapat proses modifikasi pada tabel. Proses modifikasi berupa: Insert, Update dan delete. Syntax pembuatan Trigger:
CREATE TRIGGER ON TABLE FOR [DELETE] [,] [INSERT] [,] [UPDATE] AS
Sebagai contoh adalah membuat trigger dg nama tLogUbahNilai untuk setiap penambahan / update data pada tabel Pesertakul, dilakukan penambahan data pada tabel LogHistoris.
Syntax dari contoh tersebut adalah :
CREATE TRIGGER tLogUbahNilai ON TABLE pesertakul FOR UPDATE, INSERT AS INSERT INTO LogHistoris (tanggal, proses) VALUES (getDate(), ‘Terjadi proses perubahan data nilai’)
DDL - Data Definition Language
-merupakan kumpulan perintah SQL yang digunakan untuk membuat, mengubah dan menghapus
struktur dan definisimetadata dari objek-objek database.
- Database
- Table
- View
- Index
- Procedure (Stored Procedure)
- Function
- Trigger
CREATE TABLE ms_karyawan (
kode_cabang varchar(10) default NULL,
kode_karyawan varchar(10) NOT NULL,
nama_depan varchar(8) default NULL,
nama_belakang varchar(9) default NULL,
jenis_kelamin varchar(1) default NULL,
PRIMARY KEY (kode_karyawan)
)
Daftar Perintah DDL pada MySQL 5.0
- 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
Tabel Matrix Perintah DDL MySQL 5.0
OBJECT | CREATE | ALTER | DROP | RENAME |
DATABASE | Yes | Yes | Yes | |
FUNCTION | Yes | Yes | Yes | |
INDEX | Yes | Yes | ||
PROCEDURE | Yes | Yes | Yes | |
TABLE | Yes | Yes | Yes | Yes |
TRIGGER | Yes | Yes | ||
VIEW | Yes | Yes | Yes |
-DML:
DML atau Data manipulation Language merupakan perintah-perintah yang berfungsi untuk melakukan manipulasi data ataupun objek-objek yang ada didalam table. Definisi lainnya tentang DML adalah Perintah-perintah untuk memanipulasi data pada basis data, misalnya perintah untuk memilih data (query), menyisipkan, mengubah dan menghapus data dalam basis data.
Bentuk manipulasi yang dapat dilakukan oleh DML diantaranya adalah untuk keperluan pencarian kembali data lama, penyisipan data baru, penghapusan data, pengubahan data, dll. Sedangkan DML sendiri menurut jenisnya dapat dibagi menjadi 2 jenis yaitu procedural dan non procedural.
Beberapa manfaat atau kegunaan dari DML diantaranya adalah sebagai berikut :
1. Pengambilan informasi yang disimpan dalam basis data
2. Penyisipan informasi baru ke basis data
3. Penghapusan informasi dari basis data
4. Modifikasi informasi yang disimpan dalam basis data
5. Query adalah perintah yang ditulis untuk mengambil informasi. Bagian dari DML yang menangani pengambilan informasi ini disebut bahasa query.
Selanjutnya kita akan membahasa tentang sintaks dan contoh dari penggunaan DML, yaitu :
1. Insert
Berfungsi Untuk memasukkan sejumlah data kedalam table yang telah dibuat.
Syntax:
insert into table_name (column1, column2, …, column_n)
values (value1, value2, …, value_n);
Contoh:
insert into pegawai (npk,nama)
values (‘5106100032?, ‘Eko Susilo’);
2. Delete
Berfungsi untuk menghapus sejumlah data yang ada didalam table yang telah dibuat.
Syntax:
delete table_name where column_name=column_content;
Contoh:
delete mahasiswa where npk=’5106100032?;
3. Update
èBerfungsi untuk melakukan perubahan terhadap sejumlah data yang ada didalam table yang telah dibuat.Syntax:
update table_name
set column1_name=column1_content
where column2_name=column2_content;
Contoh:
update pegawai
set nama=’Eka Susila’, alamat=’U-144?
where nrp=’5106100032?;
4. Select
Berfungsi untuk melakukan pengambilan sejumlah data yang ada di dalam table untuk ditampilkan ataupun dimanipulasi
Syntax:
Select column from table_name
Contoh:
Select * from pegawai;
Konsep Basis Data
Definisi:
Basis data terdiri dari 2 kata, yaitu basis dan data. Basis adalah markas/gudang, tempat bersarang atau berkumpul, sedangkan data adalah representasi fakta dunia nyata yang mewakili suatu objek seperti manusia (pegawai, siswa, pembeli, pelanggan), barang, hewan, peristiwa, konsep, keadaan dan sebagainya yang direkam dalam bentuk angka, huruf, simbol, teks, gambar, bunyi dan kombinasinya.
Basis data dapat didefinisikan dari beberapa sudut pandang:
1. Himpunan kelompok data (arsip) yang saling berhubungan yang diorganisasi sedemikian rupa agar kelak dapat dimanfaatkan kembali secara cepat dan mudah.
2. Kumpulan data yang saling berhubungan yang disimpan secara bersama sedemikian rupa dan tanpa pengulangan (redundansi) yang tidak perlu untuk memenuhi berbagai kebutuhan.
3. Kumpulan file/tabel/arsip yang saling berhubungan dan disimpan dlm media penyimpanan elektronis.
Operasi Dasar Basis Data
Sebuah basis data umumnya dibuat untuk mewakili sebuah semesta data yang spesifik. Misalnya basis data kepegawaian, basis data akademik, basis data inventori (pergudangan) dan sebagainya. Dalam basis data akademik, misalnya kita dapat menempatkan file mata pelajaran, file guru, file jadwal, file nilai dan seterusnya. Oleh karena itu operasi-operasi dasar yang dapat kita lakukan berkenaan dengan basis data dapat meliputi:
- Pembuatan basis data baru (create database) yang identik dengan pembuatan lemari arsip yang baru.
- Penghapusan basis data (drop database) yang identik dengan perusakan lemari rasip.
- Pembuatan file/tabel baru ke suatu basis data (create table), identik dengan penambahan map arsip baru.
- Penghapusan file/tabel dari suatu basis data (drop tabel).
- Penambahan/pengisian data baru ke sebuah file/table di sebuah basis data.
- Pengambilan data dari sebuah file/tabel.
- Pengubahan data dari sebuah file/tabel.
- Penghapusan data dari sebuah file/tabel.
Tujuan Basis Data
1. Kecepatan dan Kemudahan (Speed)
2. Efisiensi Ruang Penyimpanan (Space)
3. Keakuratan (Accuracy)
4. Ketersediaan (Availability)
5. Kelengkapan (Completeness)
6. Keamanan (Security)
7. Kebersamaan Pemakaian (Sharebility)
DML - Data Manipulation Language
- merupakan kumpulan perintah SQL yang digunakan untuk proses pengolahan isi data di dalam table seperti memasukkan, merubah dan menghapus isi data - dan tidak terkait dengan perubahan struktur dan definisi tipe data dari objek database.
-
DML - Data Manipulation Language
DML sendiri adalah kumpulan perintah SQL yang berhubungan dengan pekerjaan mengolah data di dalam table - dan tidak terkait dengan perubahan struktur dan definisi tipe data dari objek database seperti table, column, dan sebagainya.
Contoh DML : Mengambil Seluruh Row Data dari table MS_KARYAWAN
SELECT *
FROM ms_karyawan
Contoh DML : Memasukkan data ke dalam tabel ms_karyawan
INSERT INTO ms_karyawan(
kode_cabang,
kode_karyawan,
nama_depan,
nama_belakang,
jenis_kelamin)
VALUES ('cab-001','kar-001','Feris','Thia','Laki-laki');Beberapa daftar Perintah DML MySQL 5.0
- CALL
- DELETE
- DO
- HANDLER
- INSERT
- LOAD DATA INFILE
- REPLACE
- SELECT
- TRUNCATE
- UPDATE
-DCL :
DCL atau Data Control Language
DCL merupakan perintah SQL yang berhubungan dengan pengaturan hak akses user MySQL, baik terhadap server, database, tabel maupun field. Perintah SQL yang termasuk dalam DCL antara lain :
* GRANT : Perintah ini digunakan untuk memberikan hak / izin akses oleh administrator (pemilik utama) server kepada user (pengguna biasa). Hak akses tersebut berupa hak membuat (CREATE), mengambil (SELECT), menghapsu (DELETE), mengubah (UPDATE) dan hak khusus berkenaan dengan sistem databasenya.
SINTAKS : GRANT privileges ON tbname TO user
CONTOH : grant select, update, insert, delete on perpustakaan.buku to 'ali'@'localhost';
* REVOKE : perintah ini memiliki kegunaan terbalik dengan GRAND, yaitu untuk menghilangkan atau mencabut hak akses yang telah diberikan kepada user oleh administrator.
SINTAKS : REVOKE privileges ON tbname FROM user
CONTOH : revoke select, update, insert, delete on perpustakaan.buku from 'ali'@'localhost';
JENIS JENIS JOIN SQL :
1. INNER JOIN : hanya akan menampilkan baris untuk data yang memiliki nilai yang sama pada field kunci dengan tabel yang berelasi
2. LEFT JOIN : hanya menampilkan data dengan mengacu pada tabel yang ada disebelah kiri.
3. RIGHT JOIN : hanya menampilkan data dengan mengacu pada tabel yang ada disebelah kanan.
4. FULL JOIN : merupakan gabungan dari LEFT JOIN dan RIGHT JOIN .
DCL adalah perintah-perintah yang digunakan untuk membantu mengontrol keamanan setiap database atau sebagian isi dari database dengan membuat hak – hak akses tertentu bagi setiap user.Perintah tersebut adalah :a. Grantb. Revoke
Penjelasan tentang Grant
- GRANT : Digunakan untuk memberikan hak 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.- Grant berfungsi juga untuk membuat user baru dan memberikan hak istimewa.- Grant digunakan untuk memberikan privilege kepada tabel yang didefinisikan kepada pemakai lain.
- Privilege untuk pemakai dalam perintah grant didefinisikan dengan menggunakan nama-nama privilege. Nama privilege memudahkan admin untuk dapat memberikan privilege tanpa harus tahu apa nama field dan tabel yang harus diisi.- Perintah grant secara otomatis akan menambah data pemakai apabila data nama pemakai yang disertakan pada perintah tersebut belum ada dalam tabel user. Perintah grant memudahkan administrator untuk tidak perlu melakukan perintah pendefinisian privilege dengan menggunakan sql. Karena dengan menggunakan sql, kita harus hafal nama tabel yang harus diisi, field apa saja yang harus diisi, jumlah field yang harus diisi.
Sintak Umum : GRANT hak_akses ON nama_tabel TO pemakai;GRANT ALL PRIVILEGES ON database_name.* TO ‘myuser’IDENTIFIED BY ‘mypassword’;Contoh Penggunaan :1. GRANT SELECT ON Point_Of_Sales.jenis TO Febe;2. GRANT SELECT ON Point_Of_Sales.jenisTO Winda;3. GRANT SELECT ON Point_Of_Sales.item TO Elfrida;4. GRANT ALL PRIVILEGES ON Point_Of_Sales.User TO Admin;5. GRANT ALL ON Point_Of_Sales.jualDetail TO Admin6. SHOW GRANTS FOR root@localhost;7. SHOW GRANTS FOR Admin;8. GRANT SELECT,INSERT ON Point_Of_Sales.jualDetail TO kasir;9. GRANT SELECT(Kode,Nama) ON Point_Of_Sales.jenis TO Elfrida;10. GRANT UPDATE (kodeItem,NmItem,kategori,Harga) ON Point_Of_Sales.item TO Elfrida;Penjelasan tentang RevokeREVOKE : Perintah ini memiliki kegunaan terbalik dengan GRANT, yaitu untuk menghilangkan hak akses yang telah diberikan kepada user oleh administrator atau mencabut hak-hak dari seorang user terhadap database tertentu atau sebagian isi dari database.
Sintak Umum Revoke :
REVOKE hak_akses ON nama_tabel FROM namaAccount@namaHost;
Menghapus batasan hak akses utk database & tabel :
REVOKE hak_akses ON nama_database.nama_tabel
FROM user;
Menghapus batasan hak akses untuk kolom tertentu :
REVOKE hak_akses(field1,field2, field3,…) ON
nama_database.nama_tabel FROM userPenulisan perintah revoke :
- Hak akses(field) : kita harus memberikan sedikitnya satu hak akses. Untuk setiap hak akses yang diberikan, dapat juga diberikan daftar field yang diletakkan dalam kurung, dan dipisahkan dengan tanda koma. Contoh : REVOKE select (nim, nama), update, insert(nim), …- NamaTabel : merupakan nama tabel yang dikenal hak akses tersebut, harus ada sedikitnya satu nama tabel. Dan dapat menggunakan simbol asterik (*) untuk mewakili semua tabel pada database aktif. Penulisan namaTabel dapat juga diikuti oleh nama database diikuti nama tabel yang dipisahkan dengan tanda titik. Menggunakan simbol *.* berarti semua database dan semua tabel yang dikenai hak akses tersebut.
Perintah-perintah lain yang termasuk dalam 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.Contoh normalisasi pada kasus lain
Sebelum mengetahui contoh normalisasi pada kasus kasus yang nyata, baiknya kita harus mengetahui dahulu pengertian dan penjelasan teknik normalisasi itu.
Teknik Normalisasi merupakan sebuah cara untuk membuat database dengan terstruktur dan terorganisasi supaya data terisimpan dalam tabel dengan baik dan efisien tanpa adanya pengulangan data(redudansi data).
Istilah normalisasi dapat disederhanakan menjadi memecah relasi menjadi beberapa tabel untuk mendapat database yang optimal
Contoh Normalisasi Pada Kasus Lainnya,
Memiliki field dengan banyak data / tidak tunggal
no_id tanggal nama_mahasiswa buku 1 06/03/2012 Achmad program, desain, animasi 2 06/03/2012 Aloy blog, program, musik 3 06/03/2012 Budi animasi, program, video 4 06/03/2012 Charlie website, audio
Contoh teknik normalisasi sampai ketiga
Teknik Normalisasi Pertama :
Membuat dan menentukan primary key pada tablenya, supaya setiap data atau field field lainya tergantung hanya pada satu field yaitu yang dijadikan primary key. pada kasus ini field nim yang akan dijadikan primary key bukan id_buku atau id_penerbit.
Keterangan : field yang dicetak miring yaitu primary key
tbl_peminjaman
nim nama_mahasiswa id_buku judul_buku id_penerbit penerbit 4311122006 Malik Aslam 1221 program C++ 35 Alex W 4311122007 M. fadli 1322 membuat animasi 55 Dian Sastro 4311122025 Muharam 1422 belajar program 23 Wiji S 4311122008 Nabila 1321 audio video 55 Dian Sastro 4311122014 Tiara Rahmawati 1221 program C++ 35 Alex W
Teknik Normalisasi Kedua :
lalu pada teknik yang kedua, field field yang tergantung pada satu field harus dipisahkan, seperti pada contoh field judul_buku tergantung pada field id_buku dan penerbit tergantung dengan field id_penerbit, maka dari itu field tersebut di pisahkan dengan tabel peminjaman, sehingga harus dibuat tabel yang terpisah.
tbl_peminjaman
nim nama_mahasiswa id_buku id_penerbit 4311122006 Malik Aslam 1221 35 4311122007 M. fadli 1322 55 4311122025 Muharam 1422 23 4311122008 Nabila 1321 55 4311122014 Tiara Rahmawati 1221 35
tbl_buku
id_buku judul_buku 1221 program C++ 1322 membuat animasi 1422 belajar program 1321 audio video 1221 belajar program
tbl_penerbit
id_penerbit penerbit 35 Alex W 55 Dian Sastro 23 Wiji S 55 Dian Sastro 35 Alex W
Teknik Normalisasi Ketiga :
selanjutnya teknik normalisasi ketiga, setelah field field dipisah sehingga dibuat table yang baru, maka waktunya pembenahan data. Diketahui sebelumnya pada tabel buku record kelima terdapat keganjilan data yang tidak sesuai dengan field id_bukunya dan pada tabel penerbit pun terdapat redudansi data atau pengulangan data, maka dari itu tabel buku dan tabel penerbit harus diperbaiki dan diubah sehingga tidak terjadinya kesalahan dalam penyimpanan data, seperti pada contoh di bawah ini :
tbl_buku
id_buku judul_buku 1221 program C++ 1322 membuat animasi 1422 belajar program 1321 audio video
tbl_penerbit
id_penerbit penerbit 35 Alex W 55 Dian Sastro 23 Wiji S
kurang lebih seperti itu cara teknik normalisasi sampai ketiga pada database, sebenarnya masih banyak lagi contoh teknik normalisasi pada database, seperti normalisasi Boyce-Codd, normalisasi keempat dan lain lain, hanya yang lainnya itu jarang di gunakan, dan yang digunakan hanya normalisasi sampai ketiga saja.-SQL :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.
Standarisasi SQL dimulai pada tahun 1986, ditandai dengan dikeluarkannya standar SQL oleh ANSI. Standar ini sering disebut dengan SQL86.Standar tersebut kemudian diperbaiki pada tahun 1989 kemudian diperbaiki lagi pada tahun 1992. Versi terakhir dikenal dengan SQL92. Pada tahun 1999 dikeluarkan standar baru yaitu SQL99atau disebut juga SQL99, akan tetapi kebanyakan implementasi mereferensi pada SQL92.-
Saat ini sebenarnya tidak ada server basis data yang 100% mendukung SQL92. Hal ini disebabkan masing-masing server memiliki dialek masing-masing.
Pemakaian dasar
Secara umum, SQL terdiri dari dua bahasa, yaitu Data Definition Language (DDL) dan Data Manipulation Language (DML). Implementasi DDL dan DML berbeda untuk tiap sistem manajemen basis data (SMBD)[3], namun secara umum implementasi tiap bahasa ini memiliki bentuk standar yang ditetapkan ANSI. Artikel ini akan menggunakan bentuk paling umum yang dapat digunakan pada kebanyakan SMBD.
Transact-SQL (disingkat T-SQL) adalah jenis bahasa untuk basis data SQL yang dikeluarkan oleh perusahaan Microsoft dan Sybase. Pada sistem berbasis Microsoft, T-SQL ini diimplementasikan pada perangkat lunak Microsoft SQL Server, sedangkan pada sistem berbasis Sybase, bahasa Transact-SQL ini dipakai pada perangkat lunaknya yang bernama Adaptive Server Enterprise dan Sybase SQL Server.
Seperti bahasa dalam kebanyakan basis data SQL, T-SQL ini mempunyai beberapa fitur:
- bahasa kendali alir (control flow)
- variabel lokal
- pemrosesan matematis, string, tanggal (date), dll
- perbaikan perintah DELETE dan UPDATE.
Kata kunci (keyword) yang dipakai meliputi perintah BEGIN dan END, BREAK, CONTINUE, GOTO, IF dan ELSE, RETURN, WAITFOR, serta WHILE. Beberapa contoh dari penggunaan bahasa T-SQL ini adalah:
IF DATEPART(dw, GETDATE()) = 7 OR DATEPART(dw, GETDATE()) = 1 PRINT 'It is the weekend.' ELSE PRINT 'It is a weekday.'
Untuk perintah lebih dari satu baris, maka blok dengan awal BEGIN dan akhiran END harus dipakai seperti contoh ini:
IF DATEPART(dw, GETDATE()) = 7 OR DATEPART(dw, GETDATE()) = 1 BEGIN PRINT 'It is the weekend.' PRINT 'Get some rest!' END ELSE BEGIN PRINT 'It is a weekday.' PRINT 'Get to work!' END
Tipe suatu variable biasanya dinyatakan dengan perintah DECLARE:
DECLARE @Counter INT SET @Counter = 10 WHILE @Counter > 0 BEGIN PRINT 'The count is ' + CONVERT(VARCHAR(10), @Counter) SET @Counter = @Counter - 1 END
Suatu variable @ArticleCount dapat diberi nilai awal dengan jumlah baris COUNT yang terdapat pada table Articles, sebagai berikut:
DECLARE @ArticleCount INT SELECT @ArticleCount = COUNT(*) FROM Articles INSERT
Injeksi SQL adalah sebuah teknik yang menyalahgunakan sebuah celah keamanan yang terjadi dalam lapisan basis data sebuah aplikasi. Celah ini terjadi ketika masukan pengguna tidak disaring secara benar dari karakter-karakter pelolos bentukan string yang diimbuhkan dalam pernyataan SQL atau masukan pengguna tidak bertipe kuat dan karenanya dijalankan tidak sesuai harapan. Ini sebenarnya adalah sebuah contoh dari sebuah kategori celah keamanan yang lebih umum yang dapat terjadi setiap kali sebuah bahasa pemrograman atau skrip diimbuhkan di dalam bahasa yang lain.
Bentuk injeksi SQL ini terjadi ketika masukan pengguna tidak disaring dari karakter-karakter pelolos dan kemudian diteruskan ke dalam sebuah pernyataan SQL. Ini menimbulkan potensi untuk memanipulasi pernyataan-pernyataan yang dilakukan pada basis data oleh pengguna akhir aplikasi.
Baris kode berikut menggambarkan celah keamanan ini:
pernyataan := "SELECT * FROM pengguna WHERE nama = '" + namaPengguna + "';"
Jika variabel "namaPengguna" dirangkai sedemikian rupa oleh pengguna yang bermaksud buruk, pernyataan SQL tersebut bisa melakukan lebih daripada yang pengarangnya maksudkan. Sebagai contoh, mengeset variabel "namaPengguna" sebagai
a' or 't'='t
menjadikan pernyataan SQL ini oleh bahasa yang memuatnya:
SELECT * FROM pengguna WHERE nama = 'a' or 't'='t';
Jika kode ini akan digunakan dalam sebuah prosedur untuk melakukan otentikasi, maka contoh ini dapat dipakai untuk memaksakan pemilihan sebuah nama pengguna yang sah karena evaluasi 't'='t' akan selalu bernilai benar.
Secara teori, perintah SQL sah apapun bisa diinjeksi melalui metode ini, termasuk menjalankan banyak pernyataan. Nilai "namaPengguna" berikut ini pada pernyataan di atas akan menyebabkan dihapusnya tabel "pengguna" dan juga pengambilan semua data dari tabel "data":
a';DROP TABLE pengguna; SELECT * FROM data WHERE nama LIKE '%
Masukan ini menjadikan pernyataan akhir SQL sebagai berikut:
SELECT * FROM pengguna WHERE nama = 'a';DROP TABLE pengguna; SELECT * FROM data WHERE nama LIKE '%';
Penanganan tipe yang tidak benar
Bentuk injeksi SQL ini terjadi ketika sebuah unsur masukan pengguna tidak bertipe kuat atau tidak diperiksa batasan-batasan tipenya. Ini dapat terjadi ketika sebuah unsur numerik akan digunakan dalam sebuah pernyataan SQL, tetapi pemrogram tidak melakukan pemeriksaan untuk memastikan bahwa masukan pengguna adalah numerik. Sebagai contoh:
pernyataan := "SELECT * FROM data WHERE id = " + variabel_a + ";"
Terlihat jelas dari pernyataan ini pengarang memaksudkan variabel_a menjadi sebuah nomor yang berhubungan dengan unsur "id". Namun begitu, jika pada kenyataannya itu adalah sebuah string, maka pengguna akhir dapat memanipulasi pernyataan tersebut sesukanya, dan karena itu mengabaikan kebutuhan akan karakter-karakter pelolos. Sebagai contoh, mengeset variabel_a sebagai
1;DROP TABLE pengguna
akan menghapus tabel "pengguna" dari basis data karena hasil akhir SQL-nya akan menjadi sebagai berikut:
SELECT * FROM data WHERE id = 1;DROP TABLE pengguna;
Microsoft SQL Server adalah sebuah sistem manajemen basis data relasional (RDBMS) produk Microsoft. Bahasa kueri utamanya adalah Transact-SQL yang merupakan implementasi dari SQL standar ANSI/ISO yang digunakan oleh Microsoft dan Sybase. Umumnya SQL Server digunakan di dunia bisnis yang memiliki basis data berskala kecil sampai dengan menengah, tetapi kemudian berkembang dengan digunakannya SQL Server pada basis data besar.
tugas 2
tipe data pada DBMS :
1. Ms. Access
Microsoft Access (atau Microsoft Office Access) adalah sebuah program aplikasi basis data komputer relasional yang ditujukan untuk kalangan rumahan dan perusahaan kecil hingga menengah. Aplikasi ini merupakan anggota dari beberapa aplikasi Microsoft Office. Aplikasi ini menggunakan mesin basis data Microsoft Jet Database Engine, dan juga menggunakan tampilan grafis yang intuitif sehingga memudahkan pengguna. Versi terakhir adalah Microsoft Office Access 2007 yang termasuk ke dalam Microsoft Office System 2007.
Microsoft Access dapat menggunakan data yang disimpan di dalam format Microsoft Access, Microsoft Jet Database Engine, Microsoft SQL Server, Oracle Database, atau semua kontainer basis data yang mendukung standar ODBC. Para pengguna/programmer yang mahir dapat menggunakannya untuk mengembangkan perangkat lunak aplikasi yang kompleks, sementara para programmer yang kurang mahir dapat menggunakannya untuk mengembangkan perangkat lunak aplikasi yang sederhana. Access juga mendukung teknik-teknik pemrograman berorientasi objek, tetapi tidak dapat digolongkan ke dalam perangkat bantu pemrograman berorientasi objek.
2. My SQL
MySQL adalah sebuah perangkat lunak sistem manajemen basis data SQL (bahasa Inggris: database management system) atau DBMS yang multithread, multi-user, dengan sekitar 6 juta instalasi di seluruh dunia. MySQL AB membuat MySQL tersedia sebagai perangkat lunak gratis dibawah lisensi GNU General Public License (GPL), tetapi mereka juga menjual dibawah lisensi komersial untuk kasus-kasus dimana penggunaannya tidak cocok dengan penggunaan GPL.
Tidak sama dengan proyek-proyek seperti Apache, dimana perangkat lunak dikembangkan oleh komunitas umum, dan hak cipta untuk kode sumber dimiliki oleh penulisnya masing-masing, MySQL dimiliki dan disponsori oleh sebuah perusahaan komersial Swedia MySQL AB, dimana memegang hak cipta hampir atas semua kode sumbernya. Kedua orang Swedia dan satu orang Finlandia yang mendirikan MySQL AB adalah: David Axmark, Allan Larsson, dan Michael "Monty" Widenius.
MySQL adalah Relational Database Management System (RDBMS) yang didistribusikan secara gratis dibawah lisensi GPL (General Public License). Dimana setiap orang bebas untuk menggunakan MySQL, namun tidak boleh dijadikan produk turunan yang bersifat closed source atau komersial. MySQL sebenarnya merupakan turunan salah satu konsep utama dalam database sejak lama, yaitu SQL (Structured Query Language). SQL adalah sebuah konsep pengoperasian database, terutama untuk pemilihan atau seleksi dan pemasukan data, yang memungkinkan pengoperasian data dikerjakan dengan mudah secara otomatis. Keandalan suatu sistem database (DBMS) dapat diketahui dari cara kerja optimizer-nya dalam melakukan proses perintah-perintah SQL, yang dibuat oleh user maupun program-program aplikasinya. Sebagai database server, MySQL dapat dikatakan lebih unggul dibandingkan database server lainnya dalam query data. Hal ini terbukti untuk query yang dilakukan oleh single user, kecepatan query MySQL bisa sepuluh kali lebih cepat dari PostgreSQL dan lima kali lebih cepat dibandingkan Interbase.
3. Oracle
Basis data Oracle adalah basis data relasional yang terdiri dari kumpulan data dalam suatu sistem manajemen basis data RDBMS. Perusahaan perangkat lunak Oracle memasarkan jenis basis data ini untuk bermacam-macam aplikasi yang bisa berjalan pada banyak jenis dan merk perangkat keras komputer (platform). Basis data Oracle ini pertama kali dikembangkan oleh Larry Ellison, Bob Miner dan Ed Oates lewat perusahaan konsultasinya bernama Software Development Laboratories (SDL) pada tahun 1977. Pada tahun 1983, perusahaan ini berubah nama menjadi Oracle Corporation sampai sekarang.
Jenis perangkat keras (platform) yang dipakai sebagai server (host):
 Apple Mac OS X Server: PowerPC
 HP HP-UX: PA-RISC, Itanium
 HP Tru64 UNIX: Alpha
 HP OpenVMS: Alpha, Itanium
 IBM AIX5L: POWER
 IBM z/OS: zSeries
 Linux: x86, x86-64, PowerPC, zSeries, Itanium
 Microsoft Windows: x86, x86-64, Itanium
 Sun Solaris: SPARC, x86, x86-64
Pesaing
 IBM: DB2, Informix, UDB
 Microsoft SQL Server
 Teradata (data warehousing dan business intelligence)
 Software AG: Adabas
 Sybase.
Oracle dan IBM menekankan pada platform menengah seperti UNIX dan Linux, sementara Microsoft cenderung meraih pasar untuk kelas rendah (Microsoft Windows platforms). Basis data Oracle juga bersaing dengan basis data sumber-terbuka (open-source relational databases), seperti PostgreSQL, Firebird, dan MySQL. Perangkat lunak EnterpriseDB yang berbasis PostgreSQL, belum lama ini mengumumkan fitur yang kompatibel dengan Oracle dengan harga yang sangat wajar dan murah.
4. SQL Server
Microsoft SQL Server adalah sebuah sistem manajemen basis data relasional (RDBMS) produk Microsoft. Bahasa kueri utamanya adalah Transact-SQL yang merupakan implementasi dari SQL standar ANSI/ISO yang digunakan oleh Microsoft dan Sybase. Umumnya SQL Server digunakan di dunia bisnis yang memiliki basis data berskala kecil sampai dengan menengah, tetapi kemudian berkembang dengan digunakannya SQL Server pada basis data besar.
Microsoft SQL Server dan Sybase/ASE dapat berkomunikasi lewat jaringan dengan menggunakan protokol TDS (Tabular Data Stream). Selain dari itu, Microsoft SQL Server juga mendukung ODBC (Open Database Connectivity), dan mempunyai driver JDBC untuk bahasa pemrograman Java. Fitur yang lain dari SQL Server ini adalah kemampuannya untuk membuat basis data mirroring dan clustering. Pada versi sebelumnya, MS SQL Server 2000 terserang oleh cacing komputer SQL Slammer yang mengakibatkan kelambatan akses Internet pada tanggal 25 Januari 2003.
Versi dan Edisi
Sebagai pengembangan dari versi dan edisi sebelumnya (SQL Server 7.0 dan SQL Server 2000), Microsoft telah memperkenalkan produk:
SQL Server 2005
 perbandingan fitur edisi Enterprise (x86, x64, dan IA64)
 edisi Developer (x86, x64, dan IA64)
 edisi Standard (x86, x64, dan IA64)
 edisi Workgroup (hanya x86)
 edisi Express (x86 yang bisa di-download gratis untuk keperluan belajar dan pengenalan)
 edisi Mobile
 edisi Compact
SQL Server 2008
SQL Server 2008 yang akan dipasarkan pada tahun 2008. Produk pendukung :
 SQL Server Integration Services
 SQL Server Analysis Services
 SQL Server Reporting Services
 SQL Server Notification Services
 SQL Server Management Studio
5. Postgre SQL
Postgre SQL adalah sebuah sistem basis data yang disebarluaskan secara bebas menurut Perjanjian lisensi BSD. Piranti lunak ini merupakan salah satu basis data yang paling banyak digunakan saat ini, selain MySQL dan Oracle. PostgreSQL menyediakan fitur yang berguna untuk replikasi basis data. Fitur-fitur yang disediakan PostgreSQL antara lain DB Mirror, PGPool, Slony, PGCluster.