MENGENAL ORACLE Oleh WAJIB, S.Pd. S.ST. UNISLA
Apakah Oracle Itu Adalah nama produk software database produksi perusahaan software Oracle Corporation. Produksi software pertama kali tahun 1977
Software Database dikelompokkan menjadi 2 yaitu: Stand-alone Database Database Server
Stand-Alone database Seperangkat software database yang dijalankan dan diakses komputer yang tidak terhubung ke komputer lain. Biasanya berupa personal komputer Contoh Microsoft Access
Database Server Software database yang diperuntukkan bagi jaringan komputer. Ada banyak user Mengolah data yang sangat banyak Akses data yang cepat.
Keistimewaan Oracle Client/Server Ukuran database yang besar Multiuser Connectibility High Transaction Processing Performance Availability Standar industri yang terbuka
Manajemen keamanan yang sangat baik Database Enforced Integrity Portabilitas Distributed System Replicated Environment
Client/Server Server bertugas menangani proses database Client menjalankan aplikasi dan berkonsentrasi menampilkan data ( mengurangi kemacetan jaringan)
Ukuran database yang besar Oracle mendukung ukuran databse yang sangat besar hingga jumlahnya terabyte. Oracle juga mendukung pengaturan penggunaan space di hardisk sehingga ruangan harddisk termanfaatkan secara efisien.
Multiuser Oracle dapat melayani banyak user yang terkoneksi dalam waktu yang sama dan mengakses data yang sama. Dengan fasilitas ini oracle mampu menghindari konflik data.
Connectibility Oracle dapat menggunakan berbagai sistem operasi dalam suatu jaringan untuk mengakses data.
High Transaction Processing Performance Oracle dapat mengatur sistem agar pemrosesan database berjalan cepat walaupun jumlah transaksi sangat banyak dalam suatu waktu.
Availability Oracle dapat menjalankan database 24 jam sehari tanpa istirahat. Pemisahan sistem komputer dan proses backup dapat dilakukan secara online tanpa harus mematikan database
Standar Industri yang terbuka Oracle diterima oleh berbagai standar industri untuk pengaksesan data, sistem operasi, user interface dan protokol jaringan
Menajemen keamanan yang sangat baik Untuk menghindari akses database dari pihak yang tidak diinginkan, oracle memiliki fitur untuk membatasi dan memonitor akses database
Database Enforced Integrity Oracle memiliki kontrol untuk mengendalikan data mana saja yang dapat diterima di database. Kita tidak perlu membuat kode di banyak aplikasi, cukup di satu database Oracle.
Portabilitas Oracle dapat berjalan diberbagai sistem operasi baik Linux, Windows, Unix dan masih banyak lagi. Aplikasi yang menggunakan data oracle dapat dengan mudah mengakses data oracle yang berjalan di sistem operasi apapun.
Distributed System Oracle dapat memisahkan databsenya dalam komputer –komputer yang secara fisik terpisah, namun secara logis terlihat seperti satu database. Semua user dalam jaringan dapat mengakses data tersebut seolah-olah mengakses satu database.
Replicated Environment Oracle mampu menduplikasi database object dalam lokasi server yang berbeda-beda. Hal ini sangat membantu jika salah satu server rusak dan server lain langsung menggantikan fungsinya.
Profesi Pengguna Oracle Database Administrator (DBA) Security Officer Application Developer Database User Network Administrator.
Database Administrator (DBA) Seorang yang mengatur dan melakukan tugas-tugas administratif sistem database oracle. Diantara pengguna oracle, DBA adalah pengguna yang memiliki tanggungjawab terbanyak. Hampir semua fungsi yang melibatkan sistem database Oracle, menjadi tanggung jawab DBA
Security Officer Bertanggungjawab mengatur user databse. Juga bertanggungjawab mengontrol, memonitor user yang mengakses database dan menjaga kemanan sistem
Application Developer Bertanggungjawab mendesain dan mengimplementasikan aplikasi database. Application developer harus mengerti proses aplikasi dan memiliki ketrampilan pemrograman
Database User Seseorang yang berinteraksi dengan database melalui aplikasi . Tanggungjawab database user biasanya adalah memasukkan, memodifikasi dan menghapus data. Bertanggungjawab membuat laporan dari data.
Network Administration Bertanggungjawab menangani produk Oracle yang berhubungan dengan jaringan . Harus mengerti konsep jaringan dan sistem operasi jaringan.
Structured Query Language (SQL) Merupakan bahasa yang berfungsi menampilkan hasil atau melakukan sesuatu pada data yang kita inginkan Dalam SQL kita tidak perlu mendefinisikan bagaimana data itu diambil atau diproses, kita hanya perlu memberikan perintah mengenai data apa yang ingin diambil atau dieksekusi.
Hubungan SQL dengan Basis data Relasional APLIKASI
SQL
BASIS DATA RELASIONAL
Aplikasi ? Bahasa Pemrograman yang UMUM Contoh: Oracle Developer Delphi Power Builder Visual Basic Visual FoxPro Microsoft Access dll
Database Relasional ? Adalah basis data dimana tabel-tabel yang ada di dalamnya berelasi satu dengan yang lainnya (ERD = Entity Relationship Diagram) Contoh : Interbase Microsoft Access Sybase SQL Server Oracle Database dll
Perintah SQL DDL (Data Definition Language) 1. Membuat Tabel (Create Table) 2. Mengubah Tabel (Alter Table) 3. Menghapus Tabel (Drop Table)
DML (Data Manipulation Language) Memasukkan Data (Insert) Memperbaharui Data (Update) Menghapus Data (Delete) Memilih Data/Seleksi Data (Select) Membuat View (Create View)
DCL (Data Control Language) Commit : Untuk menyimpan transaksi Rollback : untuk membatalkan transaksi Grant : memberi otoritas /hak akses kepada seorang user
Jenis Data Jenis Data VARCHAR2 CHAR
NUMBER DATE RAW LONG
Keterangan Berisi variabel karakter dengan panjang maksimal 4000 karakter Berisi karakter berukuran tetap dengan panjang maksimal 2000 byte Berisi data numerik Berisi data tanggal Berisi data binary hingga ukuran 2000 byte Berisi data teks hingga ukuran 2 GB
LONG RAW ROWID BLOB CLOB BFILE
Berisi data binary hingga ukuran 2 GB Berisi nilai id dari suatu baris tabel Berisi objek binary hingga ukuran 4 GB Berisi objek karakter hingga ukuran 4 GB Berisi eksternal binary, ukurannya dibatasi oleh sistem operasi
CONTOH ERD PASOK KODE_PASOK KODE_BARANG BARANG KODE_BARANG NAMA_BARANG
KODE_SUPLIER TANGGAL_PASOK JUMLAH_PASOK
SUPLIER KODE_SUPLIER NAMA_SUPLIER
SATUAN_BARANG
ALAMAT_SUPLIER
STOK_BARANG
KOTA_SUPLIER TELEPON_SUPLIER
PEMBELIAN
CUSTOMER
KODE_PEMBELIAN
KODE_CUSTOMER
KODE_BARANG
NAMA_CUSTOMER
KODE_CUSTOMER
ALAMAT_CUSTOMER
TANGGAL_PEMBELIAN
KOTA_CUSTOMER
JUMLAH_PEMBELIAN
TELEPON_CUSTOMER
Login Lewat Enterprise Manager Buka browser internet http:// namakomputer:1158/em atau http:// localhost:1158/em Contoh http:// oracle10g:1158/em
Login Lewat isqlplus Buka browser internet http:// namakomputer:5560/isqlplus atau http:// localhost:5560/isqlplus Contoh http://Dosen1:5560/isqlplus
Login dengan user : System Username : system Password : orcl Connect Identifier : orcl
Login dengan User Scott Username : scott Password : tiger Connect Identifier : orcl
Jika Account terkunci Loginlah dengan user system Berikan perintah sql berikut : Alter user scott identified by tiger Account unlock
Membuat Tablespace Create tablespace db_wajib Datafile ‘d:\oracle\product\10.2.0\oradata\orcl\db_wajib.dbf’
Size 10m
Melihat nama-nama tablespace Select * from dba_tablespaces
Membuat User Create user wajib Identified by rahasia Default tablespace db_wajib Temporary tablespace temp Password expire
Melihat nama-nama user Select * from dba_users
Memberi Grant Grant connect, resource to wajib Connect : hak untuk bisa konek ke database Resource : hak untuk bisa membuat table
Mengganti Password Alter user wajib Identified by rahasiaku
Menghapus User Drop user wajib cascade Cascade digunakan jika user wajib mempunyai beberapa tabel
Connect dengan User yang baru Username : wajib Password : rahasia Connect Identifier : orcl
Membuat Tabel CREATE TABLE nama_tabel( nama field ke 1 tipe data (lebar field), ……… ……… nama field ke –n tipe data (lebar field), )
Latihan membuat Table Siswa Create table siswa ( NIS Number (8), Nama Varchar2(15), Alamat Varchar2(20))
Mengisi Tabel Siswa Insert into siswa values (1,’Ani’,’Lamongan’) Untuk meyakinkan pengisian data diberi perintah : COMMIT
Menghapus isi Table Delete from namatable where namafield=‘…..’ Contoh Delete from siswa where nis=1
Buatlah tabel barang dengan field Kode_barang char(6), Nama_barang varchar2(25), satuan_barang varchar(20) dan stok_barang number(4), primary key adalah kode_barang KODE_BARANG
NAMA_BARANG
SATUAN_BARANG
STOK_BARANG
Membuat Tabel Barang create table barang( KODE_BARANG char(6), NAMA_BARANG varchar2(25), SATUAN_BARANG varchar2(20), STOK_BARANG number(4), Constraint pk_barang primary key(KODE_BARANG) )
Buatlah tabel suplier dengan field Kode_suplier char(5), Nama_suplier varchar2(30), Alamat_suplier varchar(30), Kota_suplier varchar2(15), telepon_supler varchar2(15), primary key adalah kode_suplier KODE_SUPLI ER
NAMA_SUPLI ER
ALAMAT_SUPLIE R
KOTA_SUPLIE R
TELEPON_SUPLI ER
Membuat Tabel SUPLIER create table suplier( KODE_SUPLIER char(5), NAMA_SUPLIER varchar2(30), ALAMAT_SUPLIER varchar2(30), KOTA_SUPLIER varchar2(15), TELEPON_SUPLIER varchar2(15), Constraint pk_SUPLIER primary key(KODE_SUPLIER) )
Buatlah tabel Customer dengan field Kode_customer char(6), Nama_customer varchar2(30), alamat_customer varchar(30), Kota_customervarchar2(15), telepon Customer varchar2(15) primary key adalah kode_customer KODE_CUSTOM NAMA_CUSTOM ER ER
ALAMAT_CUSTO MER
KOTA_CUSTO MER
TELEPON_CUS TOMER
Membuat Tabel CUSTOMER create table CUSTOMER( KODE_CUSTOMER char(6), NAMA_CUSTOMER varchar2(30), ALAMAT_CUSTOMER varchar2(30), KOTA_CUSTOMER varchar2(15), TELEPON_CUSTOMER varchar2(15), Constraint pk_CUSTOMER primary key(KODE_CUSTOMER) )
Buatlah tabel pasok dengan field Kode_pasok char(10), kode_barang char(6), kode_suplier char(5), tanggal_pasok date, Jumlah_pasok number(4), primary key adalah field kode_pasok, kode_barang dan kode_suplier. Foreign Key (FK) adalah filed kode_barang dan kode_suplier
KODE_PASOK
KODE_BARANG
KODE_SUPLIER
TANGGAL_PA SOK
JUMLAH_PASO K
Membuat Tabel PASOK create table PASOK( KODE_PASOK char(10), KODE_BARANG char(6), KODE_SUPLIER char(5), TANGGAL_PASOK date, JUMLAH_PASOK number(4), Constraint pk_pasok primary key (KODE_PASOK, KODE_BARANG, KODE_SUPLIER), Constraint fk_pasok_barang foreign key (KODE_BARANG) references barang(KODE_BARANG), Constraint fk_pasok_SUPLIER foreign key (KODE_SUPLIER) references SUPLIER(KODE_SUPLIER) )
Buatlah tabel pembelian dengan field Kode_pembelian char(10), kode_barang char(6), kode_customer char(6), tanggal_pembelian date, Jumlah_pembelian number(4), primary key adalah field kode_pembelian, kode_barang dan kode_customer. Foreign Key (FK) adalah filed kode_barang dan kode_customer
KODE_PEMBEL IAN
KODE_BARANG
KODE_CUSTOME R
TANGGAL_PE MBELIAN
JUMLAH_PEMB ELIAN
Membuat Tabel PEMBELIAN create table PEMBELIAN( KODE_PEMBELIAN char(10), KODE_BARANG char(6), KODE_CUSTOMER char(6), TANGGAL_PEMBELIAN date, JUMLAH_PEMBELIAN number(4), Constraint pk_PEMBELIAN primary key (KODE_PEMBELIAN, KODE_BARANG, KODE_CUSTOMER), Constraint fk_pembelian_barang foreign key (KODE_BARANG) references barang(KODE_BARANG), Constraint fk_pembelian_customer foreign key (KODE_ CUSTOMER) references CUSTOMER(KODE_CUSTOMER) );
Melihat Struktur tabel barang SQL>desc barang; Name Null Type -------------------------------------------------------KODE_BARANG Not Null char(6) NAMA_BARANG varchar2(25) SATUAN_BARANG varchar2(20) STOK_BARANG NUMBER(4)
Mengubah Tabel (Alter Table) ALTER TABLE nama_tabel MODIFY nama field
tipe_data(lebar_field);
ALTER TABLE nama_tabel ADD nama field tipe_data(lebar_field);
Mengubah Tabel Barang Ubahlah agar type data dari filed satuan_barang dari varchar2(20) menjadi(5) alter table barang Modify SATUAN_BARANG char(5); Table altered
Hasilnya ? SQL>desc barang; Name Null Type -------------------------------------------------------KODE_BARANG Not Null char(6) NAMA_BARANG varchar2(25) SATUAN_BARANG char(5) STOK_BARANG number(4)
Menambah Field Tambahkan satu field pada tabel barang dengan ketentuan : Nama field : keterangan Tipe data : varchar2 Lebar data : 15 alter table barang Add KETERANGAN varchar2(15)
Hasilnya ?
SQL>desc barang; Name Null Type -------------------------------------------------------KODE_BARANG Not Null char(6) NAMA_BARANG varchar2(25) SATUAN_BARANG char(5) STOK_BARANG number(4) KETERANGAN varchar2(15)
Menghapus Field Menghapus field keterangan di table barang Perintahnya : Alter table barang drop column keterangan
Mengganti nama Table Gantilah nama tabel siswa menjadi murid Sytaxnya : Alter table siswa rename to murid
Menghapus Tabel SQL> drop table nama_tabel
Catatan : Jika ada tabel yang berelasi maka tabel relasinya dihapus dulu baru kemudian tabel acuannya (reference) Jika tabel sudah ada isinya maka tambahkan cascade di belakang perintah tersebut.
Memasukkan Data (Insert) INSERT INTO nama_tabel (nama field ke
–1 ….., nama field ke-n VALUES (nilai_field ke-1…., nilai field ken) Contoh: insert into barang (kode_barang, nama_barang) values (‘ELK-01’, ’Rice Cooker’);
MENGISI FIELD bertype DATE Jika ingin mengisi Field Tanggal_lahir pada tabel siswa dengan tanggal : 2 Jun 1988 maka cara mengisi adalah sebagai berikut : Insert into siswa(Tanggal_lahir) values To_date(’020688’,’DDMMYY’)
Mengisi Tanggal Lahir pada Text Box Diisi pada Text Box 01-02-1970
Pada code diketik : To_date(‘” & TxtTanggalLahir & ”’, ‘DD-MM-YYYY’)
Memperbaharui Data (Update) UPDATE nama_tabel SET nama_field = data_baru WHERE nama_field = data_lama
Contoh: update barang set stok_barang = 50 where kode_barang=‘ELK-01’;
Menghapus Data (Delete) DELETE FROM nama_tabel [ WHERE kondisi ] Contoh : SQL>DELETE FROM PASOK; SQL>DELETE FROM PASOK WHERE KODE_PASOK =‘PAS_E001’;
Memilih Data (Select) SELECT nama_field FROM nama_tabel [WHERE kondisi] Contoh: SQL>select * from barang; SQL>select * from barang where kode_barang=‘ELK-01’;
MEMBUAT VIEW V_BARANG create view v_barang as select kode_barang,nama_barang from barang where kode_barang in('ELK-01','ELK02','ELK-03','ELK-04','ELK-05','ELK-06')
MEMBUAT VIEW V_BARANG_PASOK CREATE VIEW V_BARANG_PASOK AS SELECT B.KODE_BARANG,SUM(B.STOK_BARANG)/ COUNT(P.JUMLAH_PASOK) AS STOK, SUM(P.JUMLAH_PASOK) AS PASOK FROM BARANG B, PASOK P WHERE B.KODE_BARANG=P.KODE_BARANG GROUP BY B.KODE_BARANG
MEMBUAT VIEW V_BARANG_BELI CREATE VIEW V_BARANG_BELI AS SELECT B.KODE_BARANG, SUM(L.JUMLAH_PEMBELIAN) AS BELI FROM BARANG B, PEMBELIAN L WHERE B.KODE_BARANG=L.KODE_BARANG GROUP BY B.KODE_BARANG
Seleksi 1 SELECT A.KODE_BARANG,A.STOK,A.PASOK, B.BELI, A.STOK+A.PASOK-B.BELI AS SISA FROM V_BARANG_PASOK A, V_BARANG_BELI B WHERE A.KODE_BARANG=B.KODE_BARANG
Seleksi 2 SELECT A.KODE_BARANG,A.NAMA_BARANG,B.STOK, B.PASOK,C.BELI, B.STOK+B.PASOK-C.BELI AS SISA FROM V_BARANG A,V_BARANG_PASOK B,V_BARANG_BELI C WHERE A.KODE_BARANG=B.KODE_BARANG AND B.KODE_BARANG=C.KODE_BARANG ORDER BY KODE_BARANG
Pengelompokan Data (Group by) Min() Select NamaField1,…..NamaField-n, min(NamaField) From NamaTable Group By NamaField1,…..namaField-n
Contoh Min() Select KODE_BARANG as KD_BRG, min(JUMLAH_PASOK) AS MINIMUM_PASOK, From PASOK Group by KODE_BARANG
Membuat tabel Siswa Create table siswa ( NIS Number (6), Nama Varchar2(15), Alamat Varchar2(20), Tgl_Lahir Date)
Membuat Table siswa1 dari table siswa Create table siswa1 as Select * from siswa
Menambah field Jenis_Kel Alter table siswa1 Add Jenis_Kel char(15)
Membuat table siswa2 dari table siswa1 dengan mengubah susunan field Create table siswa2 as Select nis,nama,Jenis_Kel,Alamat,Tgl_Lahir From siswa1
Menghapus tabel siswa1 Drop table siswa1
Mengubah tabel siswa2 menjadi siswa1 Rename siswa2 to siswa1