Prev Next Daftar Isi
Bab 1
Pengenalan Oracle dan Database Relational
1.1 Pengenalan Database Relational
ORACLE adalah database relational. Sebuah database relational merupakan kumpulan dari tabel-tabel. Tabel sendiri sering kita jumpai dalam kehidupan sehari-hari, misalnya laporan keuangan bulanan, daftar harga menu, grafik-grafik dan lain-lain. Masing-masing tabel mempunyai hubungan antara satu dengan yang lain, misalnya antara tabel ruas jalan tol dengan tabel kantor cabang, sehingga dia disebut relational.
Kumpulan kertas-kertas laporan yang menumpuk di atas meja atau yang ada di laci sebetulnya dapat disebut sebagai database juga. Namun dengan pengelolaan seperti ini, akan muncul masalah jika data yang dikelola volumenya besar, sehingga menyulitkan kita dalam mengelola data-data tersebut. Kemudian mungkin kita akan menggunakan fasilitas komputer, seperti menggunakan LOTUS atau EXCEL, tapi pada prinsipnya kesulitan pekerjaan pengelolaan kita tetap sama.
Sebuah Sistem Basis Data Relational (Relational Database Management System, disingkat RDBMS) seperti ORACLE pada prinsipnya merupakan sistem yang memungkinkan kita untuk:
Prinsip ini dapat dilihat pada gambar berikut.
Gambar 1.1 Prinsip RDBMS
Informasi yang dikelola dalam sebuah RDBMS dapat diakses dengan menggunakan SQL (Structured Query Language, diucapkan sequel).
Informasi disimpan di ORACLE dalam bentuk tabel-tabel. Contoh sebuah tabel dapat dilihat di gambar berikut.
Tabel Pegawai
NIP |
Nama_Pegawai |
Golongan |
Umur |
Gaji |
1 |
Mohammad Ridwan | 2 |
27 |
15.000 |
2 |
Amir Hamzah | 4 |
35 |
25.000 |
Gambar 1.2 Tabel Pegawai
Sebuah tabel mempunyai tiga karakteristik utama, yaitu nama, kolom, dan baris. Tabel di atas mempunyai nama Pegawai, mempunyai lima kolom (NIP, nama_pegawai, golongan, umur, dan gaji) dan dua baris data.
Pengelolaan tabel (membuat tabel, mengisi data, mengambil data, dll.) dilakukan dengan memberikan perintah SQL kepada ORACLE. Contoh dari sebuah perintah SQL adalah sebagai berikut:
select Nama_Pegawai from Pegawai;
Hasil dari perintah di atas adalah :
Nama Pegawai
----------------------
Mohammad Ridwan
Amir Hamzah
Contoh lain dari sebuah perintah SQL:
select
Nama_Pegawai,
Umur
from
Pegawai
where
Gaji > 20000;
Hasil dari perintah di atas adalah :
Nama Pegawai
Umur
---------------------------
Amir Hamzah 35
Kata-kata kunci yang biasa diberikan dalam sebuah perintah SQL adalah select, from, where, dan order by. Kata-kata kunci ini dituliskan dalam format sebagai berikut :
select
nama_kolom1,
nama_kolom2
from
nama_tabel
where
kondisi
order by
nama_kolom1;
Bagian select menunjukkan kolom-kolom apa yang hendak ditampilkan. Bagian from menunjukkan nama tabel- tabel asal. Bagian where memungkinkan kita untuk memilih data-data yang sesuai yang hendak ditampilkan. Sedangkan bagian order by menunjukkan hasil query akan diurutkan menurut kolom apa.
ORACLE disebut database relational karena antara tabel-tabel yang ada di database itu pasti ada relasi satu dengan yang lain. Pada diagram berikut ini akan diberikan contoh dua tabel yang saling berelasi, yaitu tabel Pegawai dan tabel Divisi.
Gambar 1.3 Tabel Pegawai dan Divisi
Seperti terlihat pada diagram di atas, tabel Pegawai dan tabel Divisi mempunyai relasi satu dengan yang lain. Lebih jauh diketahui bahwa relasi antara kedua tabel tersebut terletak pada Nama_Pegawai.
Dengan adanya relasi, maka kita bisa menggabungkan data-data pada kedua tabel tersebut. Contoh sebuah laporan yang merupakan gabungan antara tabel Pegawai dan tabel Divisi :
Laporan Pegawai di Divisi
NIP |
Nama_Pegawai |
Divisi |
Umur |
Gaji |
1 |
Mohammad Ridwan | Manlalin |
24 |
15.000 |
2 |
Amir Hamzah | SDM |
21 |
7.000 |
3 |
Mamad | SDM |
31 |
25.000 |
4 |
Iim | Manpultol |
43 |
27.000 |
5 |
Dewi | Manpultol |
26 |
18.000 |
Gambar 1.4 Laporan Pegawai pada suatu Divisi
Laporan di atas dihasilkan oleh perintah SQL berikut:
Select
Pegawai.NIP,
Pegawai.Nama_pegawai,
Divisi.Nama_divisi,
Pegawai.Umur,
Pegawai.Gaji
From
Pegawai,
Divisi
Where
Pegawai.Nama_Pegawai =
Divisi.Nama_Pegawai ;
Seperti terlihat perintah SQL di atas akan mengambil data dari tabel Pegawai dan tabel Divisi (lihat di bagian from). Kolom-kolom yang dipilih untuk ditampilkan dapat dilihat di bagian select. Sementara bagian where menunjukkan bagaimana kedua tabel harus digabungkan, dalam hal ini maka kedua tabel digabungkan menurut kolom Nama_Pegawai.
Dalam database relational, hubungan antar tabel harus dirancang dengan baik, sehingga tidak ada duplikasi maupun inkonsistensi pada data. Keterangan lengkap tentang bagaimana mendesain database yang baik tentu saja di luar skope tulisan ini.
Tabel-tabel dalam ORACLE akan dikelompokkan ke dalam user-user. Misalnya tabel Pegawai dan tabel Gaji akan dimiliki oleh user SDM, tabel Kecelakaan, Gangguan Lalulintas, dan Patroli akan dimiliki oleh user MLL(Manlalin), dan seterusnya.
Gambar 1.5 Hubungan User dan Tabel
Pengelompokan tabel dalam user-user ini mempunyai kegunaan sebagai berikut:
Semua objek di ORACLE (contoh objek adalah table, view, dan index) akan diasosiasikan atau dimiliki oleh satu user. Dengan demikian, maka penerapan kebijakan otorisasi dapat diterapkan tidak hanya untuk tabel, tapi juga untuk semua objek.
Jenis-jenis objek dalam database ORACLE yang biasa dipakai dalam pembangunan aplikasi adalah :
Sedangkan objek-objek yang berhubungan dengan fisik database antara lain:
Otorisasi akses mengatur tindakan apa yang boleh dilakukan oleh seorang pemakai atas suatu objek yang ada di ORACLE. Dengan mengatur otorisasi akses ini, maka kita bisa menjaga kerahasiaan dan integritas informasi, karena suatu informasi hanya dapat dilihat, dirubah, ditambah, atau dihapus hanya oleh orang-orang yang berkepentingan.
1.7 Bagaimana ORACLE Mengelola Data
Pengetahuan tentang bagaimana ORACLE mengelola data sangatlah vital bagi seorang administrator.
Sebuah sistem database yang besar sekali dapat terdiri dari beberapa ORACLE server yang berjalan di server-server yang terpisah. Masing-masing server ini akan mengelola data yang sesuai dengan bagiannya saja. Misalnya server pada Divisi Akuntansi mengelola database Akuntansi, server SDM mengelola database SDM, dan seterusnya.
Sistem database yang tersebar seperti di atas disebut Distributed Database.
Gambar 1.6 Contoh Instalasi Database Oracle
Meskipun data diletakkan di lokasi yang berbeda-beda, tapi USER akan melihat database sebagai satu kesatuan. Tersebarnya data-data akan transparan terhadap user.
User akan membuat koneksi dengan salah satu database server. Pada database server tersebut, koneksi user tersebut dilayani oleh sebuah instance. Instance tersebut kemudian akan mengakses database yang sesuai yang ada di server tersebut.
Gambar 1.7 Instance dan Database Oracle
Instance dapat dilihat sebagai sistem yang mengelola database. Dalam satu ORACLE server, bisa terdapat lebih dari satu instance.
Database adalah media penyimpanan yang berisi tabel-tabel.
Instance dan database masing-masing adalah independen satu dengan yang lain. Sebuah instance dapat mengelola satu atau lebih database. Ketika sebuah instance dijalankan dan dihubungkan ke suatu database, maka instance itu dikatakan berjalan (started). Ketika instance itu di shut down, maka database yang dikelola oleh instance itu tidak akan dapat diakses lagi.
Jika kita melihat lebih dalam lagi ke dalam database, maka suatu database akan diorganisasikan sebagai berikut.
Gambar 1.8 Bagan suatu Database pada Oracle
Masing-masing bagian dari database akan dijelaskan berikut ini.
Sebuah database dibagi satuan-satuan penyimpanan yang disebut tablespace. Sebuah databas dapat berisi satu atau lebih tablespace. Sebuah tablespace disusun dari satu atau lebih file.
Karena tablespace merupakan tempat penyimpanan tabel-tabel, DBA bertugas mengatur penggunaan tablespace ini. Tugas yang harus dilakukan DBA terhadap tablespace antara lain:
Tablespace yang akan selalu dibuat secara otomatis oleh ORACLE adalah tablespace dengan nama SYSTEM. Tablespace ini pasti akan selalu ada di setiap database, dan akan berisi informasi-informasi mengenai keadaan database. Tablespace ini harus selalu tersedia (online) agar database dapat diakses.
Semua data dalam tablespace akan dipecah-pecah menjadi segment-segment. Ada beberapa jenis segment:
Parameter-parameter untuk mengatur besar segment:
Initial extent | ukuran (dalam bytes) dari extent pertama milik segment, atau disebut juga ukutan awal dari segment. |
Next extent | ukuran (dalam bytes) dari extent selanjutnya. |
Max extent | maksimum jumlah extent dari suatu segment. |
Min extent | jumlah extent pertama yang akan dialokasikan. |
Pctincrease | berapa besar ukuran next extent dibandingkan dengan extent terakhir. |
Prev Next Daftar Isi
(c) 1997 bennylp@indosat.net.id Hak cipta dilindungi undang-undang. Dimohon tidak menduplikasi isi dari dokumen ini tanpa pemberitahuan kepada penulis.