Upload
fajar-kusuma-prasetya
View
55
Download
0
Embed Size (px)
DESCRIPTION
dasar teori
Citation preview
BAB I PENDAHULUAN
1.1. Sekilas Tentang Oracle
Oracle merupakan RDBMS yang paling banyak digunakan oleh perusahaan-
perusahaan di dunia. Sejarah Perkembangannya yang cukup panjang telah
membawa Oracle menjadi database yang paling banyak digunakan.
Pada RDBMS, sebuah tabel merupakan struktur penyimpanan dasar. Struktur
tabel atau lebih membentuk sebuah relational database. Sejak Oracle 8,
oracle merupakan database yang berkemampuan menangani obyek (Object
Oriented Programming). Oleh karena itulah Oracle menggunakan istilah
ORDBMS (Object Relational Database Management System).
DASAR TEORI MODUL 1
Sebagai ORDBMS, oracle mempunyai beberapa fitur, yaitu :
1. Menyimpan user-defined data type sebagai object table.
2. Method yang dapat diasosiasikan ke dalam definisi tabel.
3. Kolom yang dapat menggunakan tipe data yang didefinisikan oleh user.
4. Fitur ini sangat menarik bagi programmer Oracle DBA.
1.2. Kehandalah Database Oracle
Beberapa keunggulan Database Oracle sebagai database yang banyak dipakai di
kalangan programmer, antara lain seperti di bawah ini :
1. Scalability, yaitu kemampuan menangani banyak user yang melakukan
hubungan/koneksi secara simultan tanpa berkurangnya performa secara signifikan.
Dalam dokumentasi Oracle database sanggup melayani puluhan ribu user
secara simultan.
1. Reliability, yaitu kemampuan untuk melindungi data dari kerusakan jika
terjadi kegagalan fungsi pada sistem.
2. Service ability, yaitu kemampuan untuk mendeteksi masalah, kecepatan
dalam mengoreksi kesalahan, dan kemampuan melakukan konfigurasi ulang
struktur data.
3. Stability, yaitu kemampuan untuk tidak crash karena beban kerja yang tinggi.
4. Availability, yaitu kemampuan dalam penanganan crash atau failure agar
service dapat tetap berjalan.
6. Multiplatform, yaitu dapat digunakan pada banyak sistem operasi.
7. Mendukung data yang cukup besar. Menurut dokumentasi Oracle dapat
menampung sampai 512 petabytes (1 petabytes = 1.000.000 gigabytes).
8. Sistem security yang cukup handal.
9. Mendukung database berorietasi object.
10. Dapat menampung hampir semua tipe data seperti text, image, sound, video
dan time series.
Keunggulan-keunggulan di atas membuat Oracle banyak digunakan pada
aplikasi internet maupun client server pada LAN.
Kata database dalam frasa “arsitektur database Oracle” seharusnyaadalah
Database Management System(DBMS). Untuk penyederhanaan penyebutan,
Database Management Systemmemang sering cukup disebut database saja.
Secara umum komponen DBMS Oracle terdiri atas memory, proses, dan file-
file. Lebih jauh lagi, komponen-komponen tersebut dikelompokkan sebagai
berikut :
1. Instance
Memory yang disebut sebagai System Global Area (SGA), terdiri atas: Shared
Pool (Libary Cache and Data Dictionary Cache), Database Buffer Cache,
Redolog Buffer Cache, Java Pool, Large Pool.
Back ground process: PMON, SMON, DBWR, LGWR, CKPT, dan lain-
lain
2. Database
Datafile
Control File
Redo Log File
3. Komponen Lain
process: Server Process, user process
memory: Program Global Area (PGA)
File: Archived log, parameter, dan password file
1.3. Arsitektur Database
Sebuah database Oracle adalah kumpulan data diperlakukan Unit asa. Tujuan
dari database adalah untuk menyimpan dan mengambil informasi terkait.
Sebuah server database adalah kunci untuk memecahkan masalah manajemen
informasi. Secara umum, serverreliably mengelola besar jumlah data dalam
lingkungan multiuser oleh sebab itu banyak pengguna secara bersamaan dapat
mengakses data yang sama. Semua ini dilakukan sambil memberikan kinerja
tinggi. Database Server juga mencegah akses tidak sah dan menyediakan solusi
yang efisien untuk kegagalan pemulihan.
Oracle Database adalah database pertama yang dirancang untuk perusahaan
komputasi grid, paling cara yang fleksibel dan biaya yang efektif untuk manage
information dan aplikasi. Perusahaan komputasi grid menciptakan kolam
besar industri-standar, penyimpanan dan server modular. Dengan arsitektur
ini, setiap sistem baru dapat dengan cepat ditetapkan dari kolam komponen.
Tidak ada kebutuhan untuk beban kerja puncak, karena kapasitas dapat
dengan mudah ditambahkan atau direalokasi dari kolam sumber daya yang
diperlukan.
Database memiliki struktur logis dan struktur fisik. Karena fisik dan
struktur logis yang terpisah, physicalstorage data dapat dikelola tanpa
mempengaruhi akses ke struktur penyimpanan logis.
1.4. Arsitektur Oracle Grid
Grid computing adalah arsitektur Teknologi Informasi baru yang
menghasilkan biaya yang lebih tangguh dan lebih rendah sistem informasi
perusahaan. Dengan komputasi grid, kelompok independen, hardware modular
dan komponen perangkat lunak dapat dihubungkan dan bergabung kembali
pada menuntut untuk memenuhi perubahan kebutuhan bisnis.
Grid gaya komputasi bertujuan untuk memecahkan beberapa masalah umum
dengan perusahaan IT: masalah silo aplikasi yang menyebabkan bawah
dimanfaatkan, hardware khusus sumber daya, masalah monolitik, sistem berat
yang mahal untuk menjaga dan sulit untuk berubah, dan masalah offragmented
dan hancur informasi yang tidak dapat sepenuhnya dieksploitasi oleh
perusahaan secara keseluruhan.
1.5. Manfaat Arsitektur Oracle Grid
Dibandingkan dengan model lain komputasi, sistem TI dirancang dan
diimplementasikan dalam gaya jaringan memberikan kualitas layanan yang
lebih tinggi, lebih rendah biaya, dan fleksibilitas yang lebih besar. Tinggi
kualitas hasil layanan dari tidak memiliki satu titik kegagalan, infrastruktur
keamanan yang kuat, dan terpusat, kebijakan didorong manajemen. Biaya
yang lebih rendah berasal dari peningkatan pemanfaatan sumber daya dan
secara dramatis mengurangi biaya pengelolaan dan pemeliharaan. Daripada
mendedikasikan tumpukan perangkat lunak dan perangkat keras untuk tugas
tertentu, semua sumber daya dikumpulkan dan dialokasikan pada permintaan,
sehingga menghilangkan dibawah kapasitas dimanfaatkan dan berlebihan
kemampuan. Komputasi grid juga memungkinkan penggunaan perangkat keras
individu yang lebih kecil komponen, sehingga mengurangi biaya setiap
komponen individu dan menyediakan lebih banyak fleksibilitas untuk
mencurahkan sumber daya sesuai dengan perubahan kebutuhan.
1.6. Grid Computing
Sumber Daya IT yang dikelola jaringan antara lain :
1. Infrastruktur: perangkat keras dan perangkat lunak yang membuat penyimpanan
data dan lingkungan program yang dieksekusi.
2. Aplikasi: logika program dan aliran yang mendefinisikan proses bisnis
yang spesifik.
3. Informasi: makna yang melekat dalam semua jenis data yang
digunakan untuk melakukan bisnis
1.7. Hal-hal terkait Grid Computing
Dua prinsip-prinsip inti unik membedakan jaringan komputasi dari
gaya lain dari komputasi, seperti mainframe, client-server, atau multi-
tier: virtualisasi dan provisioning.
Dengan virtualisasi, sumber daya individu (misalnya komputer, disk,
aplikasi komponen dan sumber informasi) dikumpulkan bersama oleh
jenis kemudian dibuat tersedia untuk konsumen (misalnya orang atau
program
software) melalui abstraksi. Virtualisasi berarti melanggar koneksi dikodekan keras
antara penyedia layanan dan konsumen sumber daya, dan menyiapkan sumber daya untuk
melayani kebutuhan tertentu tanpa peduli bagaimana konsumen yang dicapai.
2. Dengan provisioning, ketika konsumen meminta sumber daya melalui virtualisasi lapisan,
di belakang layar yang resourceis khusus yang diidentifikasi untuk memenuhi permintaan
dan maka dialokasikan kepada konsumen. Provisioning sebagai bagian dari komputasi
grid berarti bahwa sistem menentukan bagaimana untuk memenuhi kebutuhan spesifik
konsumen sementara mengoptimalkan pengoperasian sistem secara keseluruhan.
Cara-cara tertentu di mana sumber daya informasi, aplikasi atau infrastruktur
virtualisasi dan ditetapkan khusus untuk jenis sumber daya, namun konsep
berlaku secara universal. Demikian pula, manfaat khusus yang diperoleh dari
komputasi grid khusus untuk setiap jenis sumber daya, tetapi semua berbagi
karakteristik kualitas yang lebih baik, biaya yang lebih rendah dan peningkatan
fleksibilitas.
1.8. Infrastructure Grid
Sumber daya infrastruktur jaringan meliputi sumber daya perangkat keras
seperti penyimpanan, prosesor, memori, dan jaringan serta perangkat lunak yang
dirancang untuk mengelola perangkat ini, seperti database, manajemen
penyimpanan, manajemen sistem, server aplikasi, dan sistem operasi.
Virtualisasi dan penyediaan sumber daya infrastruktur berarti mengumpulkan
sumber daya bersama dan mengalokasikan kepada konsumen sesuai
berdasarkan kebijakan. Sebagai contoh, satu kebijakan mungkin untuk
mendedikasikan kekuatan pemrosesan yang cukup untuk web server yang
dapat selalu memberikan waktu respon sub-detik. Peraturan itu bisa dipenuhi
dalam berbagai cara oleh perangkat lunak bawaan untuk menyeimbangkan
permintaan dari semua konsumen.
Memperlakukan sumber daya infrastruktur sebagai kolam tunggal dan
mengalokasikan sumber daya pada permintaan menghemat uang dengan
menghilangkan dibawah kapasitas dimanfaatkan dan berlebihan kemampuan.
Mengelola sumber daya hardware dan software secara holistik mengurangi
biaya tenaga kerja dan kesempatan untuk kesalahan manusia.
1.9. Data File
Setiap database Oracle memiliki satu atau lebih datafiles fisik. Datafiles berisi
semua data database. Data struktur database logis, seperti tabel dan indeks,
adalah fisik disimpan dalam datafiles dialokasikan untuk database.
Karakteristik datafile antara lain :
1. Sebuah datafile dapat dikaitkan dengan hanya satu database.
2. Datafiles dapat memiliki karakteristik tertentu yang ditetapkan untuk
membiarkan mereka secara otomatis memperpanjang ketika
database kehabisan ruang.
3. Satu atau lebih datafiles membentuk unit logis penyimpanan database yang
disebut tablespace.
1.10. Alert and Trace Log Files
Setiap proses server dan latar belakang dapat menulis ke file jejak terkait.
Ketika sebuah kesalahan internal terdeteksi oleh proses, kesedihan
informasi tentang kesalahan ke jejak nya berkas. Beberapa informasi
ditulis ke file jejak ditujukan untuk database administrator, sedangkan
informasi lainnya adalah untuk Layanan Dukungan Oracle. melacak berkas
Informasi juga digunakan untuk menyetel aplikasi dan contoh.
2.1. Data Dictionary
Data dictionary merupakan sekumpulan table dan view yang dibuat oleh Oracle
untuk menyimpan semua informasi tentang sebuah database. Tabel-tabel data
dictionary tidak dapat diakses secara langsung oleh user. Oracle menyediakan
sejumlah view yang dapat digunakan untuk mendapatkan informasi yang
tersimpan di dalam tabel-tabel data dictionary.
Di dalam dictionary terdiri dari beberapa bagian :
a) Definisi mengenai semua schema object di dalam databasedig (tabel, view,
indexes, cluster, synonims, sequence, procedures, functions, package,
trigger, dll).
BAB II STRUKTUR DATABASE
b) Berapa banyak ruangan / space yang harus disediakan untuk atau
digunakan oleh schema object secara bersama-sama.
c) Nilai mutlak kolom
d) Informasi yang saling ketergantungan.
e) Nama pengguna yang akan digunakan Oracle
Sebuah kamus data, atau repositori metadata, sebagaimana didefinisikan
dalam Kamus IBM of Computing, adalah "repositori terpusat informasi
tentang data seperti makna, hubungan ke data lain, asal, penggunaan, dan
format.“ [ACM, IBM Dictionary of Computing, 10th edition, 1993].
Struktur dari data dictionary adalah tabel dan view, sama seperti database yang
lain. Adapun struktur dari sebuah data dictionary database adalah :
1. Base tables , isi dari tabel ini merupakan informasi penyimpanan informasi /
data mengenai database yang saling berelasi. Hanya oracle saja yang boleh
membaca data (read) dan menulis (write) semua data / informasi.
2. User-accessible views, pada view hanya menunjukkan dan menampilkan
semua informasi yang tersimpan di base tables dari data dictionary
2.2. Dokumentasi
Istilah Kamus data dan data repositori yang digunakan untuk menunjukkan
utilitas perangkat lunak yang lebih umum daripada katalog. Katalog Sebuah erat
digabungkan dengan perangkat lunak DBMS. Ini menyediakan informasi yang
tersimpan di dalamnya untuk pengguna dan DBA, tetapi terutama diakses oleh
Istilah ini mungkin memiliki salah satu dari beberapa arti yang berhubungan erat
berkaitan dengan database dan sistem manajemen database (DBMS), antara lain :
1. sebuah dokumen yang menjelaskan database atau kumpulan database
2. komponen integral dari DBMS yang diperlukan untuk menentukan struktur
sepotong middleware yang memanjang atau supplants kamus data asli dari
DBMS berbagai modul perangkat lunak DBMS itu sendiri, seperti DDL
dan DML compiler, Optimizer permintaan, prosesor transaksi, laporan
generator, dan kendala penegak hukum. Di sisi lain, kamus data adalah
struktur data yang menyimpan metadata, yaitu, (terstruktur) data tentang
data.
Paket perangkat lunak untuk kamus data atau data repositori berdiri sendiri
dapat berinteraksi dengan modul perangkat lunak DBMS, tetapi terutama
digunakan oleh para desainer, pengguna dan administrator sistem komputer
untuk pengelolaan sumber daya informasi. Sistem ini digunakan untuk
mempertahankan informasi tentang perangkat keras sistem dan konfigurasi
perangkat lunak, dokumentasi, aplikasi dan pengguna serta informasi lain
yang relevan untuk administrasi sistem. [Ramez Elmasri, Shamkant B.
Navathe: Fundamentals of Database Systems, 3rd. ed. sect. 17.5, p. 582].
2.3. Control File
Setiap database Oracle memiliki file kontrol. Sebuah file kontrol berisi entri
yang menentukan struktur fisik database. Misalnya, berisi informasi berikut:
1. Nama Database
2. Nama dan lokasi dari datafiles dan Redo log file
3. Waktu pembuatan database
Oracle dapat multiplexthe file kontrol, yaitu, sekaligus mempertahankan
jumlah berkas salinan kontrol identik, untuk melindungi terhadap kegagalan
melibatkan file kontrol.
Setiap kali instanceof database Oracle dimulai, file kontrol yang
mengidentifikasi database dan Redo log file yang harus dibuka untuk operasi
database untuk melanjutkan. Jika susunan fisik database diubah (misalnya, jika
datafile baru atau Redo log file yang dibuat), maka file kontrol otomatis
dimodifikasi oleh Oracle untuk mencerminkan perubahan. Sebuah file kontrol
juga digunakan dalam pemulihan database.
2.4. Redo Log File
Setiap database Oracle memiliki seperangkat dua atau file log moreredo.
Himpunan Redo log file secara kolektif dikenal sebagai Redo log untuk
database. Sebuah Redo log terdiri dari redo entri (juga disebut catatan redo).
Fungsi utama redo log adalah untuk merekam semua perubahan yang dibuat untuk
data. Jika kegagalan mencegah data dimodifikasi dari yang ditulis secara
permanen ke datafiles, maka perubahan dapat diperoleh dari Redo log, sehingga
pekerjaan tidak pernah hilang.
Untuk melindungi terhadap kegagalan melibatkan Redo log itu sendiri, Oracle
memungkinkan multiplexing mengulang logso bahwa dua atau lebih salinan Redo
log dapat dipertahankan pada berbagai disk.
Informasi dalam file log redo hanya digunakan untuk memulihkan database dari
sistem atau kegagalan media yang mencegah data database dari yang ditulis ke
file data. Untuk Misalnya, jika pemadaman listrik yang tak terduga mengakhiri
operasi database, maka data dalam memori tidak dapat ditulis ke file data, dan
data hilang.
Namun, kehilangan data dapat dipulihkan ketika database dibuka, setelah
listrik hidup kembali. Dengan menerapkan Informasi dalam file log Redo
terbaru ke datafiles database Oracle mengembalikan database untuk waktu di
mana terjadi kegagalan listrik.
2.5. Archive Log File
Anda dapat mengaktifkan otomatis pengarsipan Redo log. Oracle secara
otomatis arsip log file ketika database di ARCHIVELOG mode.
2.6. Parameter Files
Parameter file berisi daftar parameter konfigurasi untuk contoh dan
Database. Oracle merekomendasikan bahwa Anda membuat file
serverparameter (SPFILE) sebagai dinamis sarana untuk mempertahankan
parameter inisialisasi.
Sebuah file server parameter memungkinkan Anda menyimpan dan mengelola
parameter inisialisasi Anda terus-menerus dalam file disk server-side.
2.7. Data Dictionary Views
Seorang user dapat melihat semua data dictionary views yang dapat diakses
olehnya dengan memerlukan query dari sebuah view yang bernama
DICTIONARY. View juga merupakan bagian dari data dictionary. Berikut ini
sebuah query yang menghasilkan jumlah view yang dapat diakses oleh current
user.
SQL> SELECT COUNT ( * ) FROM DICTIONARY;
COUNT ( * ) 32
Hasil query di atas menunjukkan bagian itu banyak view merupakan bagian
dari data dictionary. Angka tersebut tidak selalu seperti itu, bergantung pada role
yang
diberikan ke user tersebut. Cobalah login dengan menggunakan user SYSTEM
dan lakukan query seperti di atas. Jumlah data dictionary view untuk user
SYSTEM lebih banyak dibandingkan untuk user sebelumnya. Berikut ini
ditunjukkan sebuah query untuk mendapatkan nama-nama view yang termasuk
di dalam dictionary. User yang digunakan adalah SYSTEM.
SQL> SELECT table_name FROM DICTIONARY
2 ORDER BY 1;
TABLE_NAME_
ALL_ALL_TABLES
ALL_ARGUMENTS
ALL_ASSOCIATIONS
.... . .
.... . .
DBA_ALL_TABLES
DBA_ANALYZE_OBJECTS
DBA_ASSOCIATIONS
.... . .
…. . .
DICTIONARY
…. . .
…. . .
GV$ACCESS
GV$ACTIVE_INSTANCE
GV$AQ
. …. . .
. …. . .
USER_ALL_TABLES
USER_ARGUMENTS
USER_ASSOCIATIONS
. …. . .
. …. . .
. …. . .
. …. . .
770 rows selected
Seperti yang terlihat di atas ada banyak sekali view yang termasuk sebagai data
dictionary views. Kebanyakan dari views tersebut memiliki nama yang diawali
oleh “ALL_”, DBA_”, “DBA_”, “USER_”, “GV$”, dan “V$”, View dengan
nama yang diawali oleh tiga prefiks yang disebutkan pertama digolongkan
sebagai static data dictionary views. View yang namanya diawali oleh “V$”
digolongkan sebagai dynamic performance views. Sedangkan yang diawali oleh
“GV$” adalah global. “V$ view yang merupakan parallel server environment.
View lainnya yang tidak diawali oleh salah satu dari lima prefiks tersebut
tergolong ke dalam static data dictionary views dan merupakan salah satu dari
yang berikut ini :
1. View khusus
2. Synonym dari salah satu view pada static data dictionary
3. View yang dibuat pada versi-versi terdahulu dan disertakan hanya untuk
kompatibilitas
Data Dictionary Views dapat digolongkan ke dalam dua bagian besar, yaitu
static data dictionary views dan dynamic performance views. Perbedaan dari
keduanya adalah :
1. Static Data Dictionary Views
Hanya berubah ketika sebuah perubahan dilakukan pada saat adanya
penambahan, pembaharuan atau penghapusan sebuah objek database.
2. Dynamic Performance Views
Secara kontinu berubah sejak database tersebut dijalankan atau dibuka dan
selama database tersebut digunakan. Dan juga ditujukan untuk server
maintenance dan hanya dapat diakses oleh administrator database server
SYS atau SYS TEM.
BAB III
OBJEK-OBJEK DATABASE ORACLE
3.1. Objek-Objek Database
Objek-objek database oracle dapat dibagi menjadi atas dua kelompok,yakni
schema object dan non-schema object. Apa yang dimaksud dengan schema?
Sebuah schema adalah sekumpulan data yang kepemilikannya dipunyai oleh
user database yang namanya sama dengan nama schema tersebut. Object
schema dapat dibuat dan dimodifikasi dengan DDL statement. Object schema
pada Oracle diantaranya adalaha :
a. Index
b. Package
c. Private Synonim
d. Sequence
e. Stored Procedure dan store function
f. Table
g. View
Objek non-schema juga dapat dibuat dan dimodifikasi menggunakan DDL
statement, namun objek-objek tersebut teradapat di dalam suatu schema. Objek
non-schema pada Oracle diantaranya adalah :
a. Public Synonim
b. Tablespace
c. User
3.2. Aturan Penamaan Objek Database
Sebuah Objek database dapat dibuat dan diberi nama oleh user yang berhak
untuk melakukan hal tersebut. Pemberian nama terhadap objek tersebut
mempunyai aturan-aturan khusus yang telah ditetapkan atau dibatasi oleh
Oracle. Beberapa aturan-aturan tersebut dicantumkan di bawah ini :
1. Nama harus 1 sampai 30 byte panjang dengan pengecualian ini:
Nama database terbatas pada 8 byte.
Nama database link dapat sepanjang 128 byte.
Jika identifier mencakup beberapa bagian yang dipisahkan oleh periode, maka
setiap atribut bisa sampai 30 byte panjang. Setiap pemisah periode, serta setiap
sekitarnya tanda kutip ganda, dianggap sebagai satu byte.
Misalnya, Anda mengidentifikasi kolom seperti ini:
"schema"."table"."column“
Nama skema bisa 30 byte, nama tabel dapat dengan 30 byte, dan nama
kolom bisa 30 byte. Setiap tanda kutip dan periode adalah karakter single-
byte, sehingga total panjang identifier dalam contoh ini bisa sampai 98 byte.
2. Nama Objek tidak boleh mengandung tanda petik tunggal (quotation mark).
Penggunaan tanda petik ganda diperbolehkan namun sangat tidak dianjurkan.
3. Nama Objek harus diawali dengan karakter alfabet
4. Penamaan tidak membedakan huruf besar dengan huruf kecil (not case
sensitive).
5. Selain karakter pertama, nama objek boleh mengandung karakter
alfanumerik, garis bawah atau underscores ( _ ), tanda dolar ( $ ), dan
tanda pound (#). Namun demikian, sangat dianjurkan untuk tidak
menggunakan tanda dolar maupun tanda pound karena kedua karakter
tersebut digunakan secara khusus oleh oracle untuk penamaan objek yang
dibuat oleh sistem.
6. Di dalam satu schema, pada namespace yang sama tidak boleh ada nama
objek yang sama. Pengelompokan namespace dapat dilihat pada gambar
3.1 a. Setiap Objek di dalam kotak yang sama berada dalam namespace
yang sama.
7. Di dalam satu database tidak boleh ada nama objek non-schema yang
sama pada namspace yang sama.
8. Nama kolom di dalam satu tabel atau view tidak boleh ada yang sama
9. Procedure dan function di dalam satu package boleh sama asalkan jumlah
atau tipe data dari argumen-argumennya berbeda (disebut dengan istilah
overloading).
10. Hindari penggunaan kata yang diawali dengan “SYS_” untuk nama sebuah
objek schema.
11. Nama Objek tidak boleh sama dengan nama Oracle reserved words atau
key words.
12. Jangan gunakan nama fungsi built-in atau tipe data built-in sebagai nama
dari objek schema, bagian/anggota dari objek schema, function, atau
procedure.
13. Nama dari bagian/anggota sebuah objek schema, misalnya nama kolom
sebuah tabel boleh sama dengan beberapa Oracle keywords namun
sangat tidak dianjurkan karena hal tersebut dapat menimbulkan
kemungkinan tidak bekerjanya beberapa SQL statement terhadap objek
tersebut.
Contoh penamaan Objek Schema Database
last_name
horse hr.hire_date
"EVEN THIS & THAT!“
a_very_long_and_valid_name
3.3. Petunjuk Penamaan Objek Schema Database
Berikut adalah beberapa panduan bermanfaat untuk penamaan obyek dan bagian-
bagiannya:
a) Gunakan penuh, deskriptif, nama diucapkan (atau singkatan terkenal).
b) Gunakan aturan penamaan yang konsisten.
c) Gunakan nama yang sama untuk menggambarkan entitas yang sama atau atribut di tabel.
Ketika penamaan benda, menyeimbangkan tujuan menjaga nama pendek dan mudah
digunakan dengan tujuan membuat nama sejelas mungkin. Jika ragu, memilih nama
yang lebih deskriptif, karena objek dalam database dapat digunakan oleh banyak orang
selama periode waktu. (http://docs.oracle.com)
Menggunakan aturan penamaan yang konsisten membantu pengguna
memahami bagian bahwa setiap tabel bermain di aplikasi Anda. Salah satu
aturan tersebut mungkin untuk memulai nama semua tabel milik aplikasi
FINANCE dengan fin_. (http://docs.oracle.com)
Gunakan nama yang sama untuk menggambarkan hal yang sama di tabel.
Misalnya, kolom nomor departemen karyawan sampel dan departemen tabel
keduanya bernama department_id. (http://docs.oracle.com)
3.4. Tables
Tabel adalah unit dasar penyimpanan data dalam database Oracle. Data
disimpan dalam baris dan kolom.
Anda mendefinisikan tabel dengan nama tabel (seperti karyawan) dan set
kolom. Anda memberikan setiap kolom, nama kolom (seperti employee_id,
last_name, dan job_id), datatype (seperti VARCHAR2, DATE, atau
NUMBER), dan lebar. Itu lebar dapat ditentukan oleh datatype, seperti pada
DATE. Jika kolom adalah datatype NUMBER , menentukan presisi dan skala
bukannya lebar. Baris adalah kumpulan kolom informasi yang berhubungan
dengan satu catatan data.
Anda dapat menentukan aturan untuk setiap kolom tabel. Aturan-aturan ini
disebut integritas constraint.
Salah satu contoh adalah NOT NULL integrity constraint. Kendala ini
memaksa kolom berisi nilai dalam setiap baris.
Anda juga dapat menentukan kolom tabel yang di enkripsi data sebelum
disimpan dalam datafile. Enkripsi mencegah pengguna menghindari kontrol
akses basis data. Mekanisme dengan melihat ke dalam file data secara langsung
dengan alat sistem operasi. Setelah Anda membuat tabel, menyisipkan baris
data menggunakan pernyataan SQL. Tabel data kemudian dapat akan bertanya,
dihapus, atau diperbarui menggunakan SQL.
Contohnya misalnya pada tabel “employee” seperti berikut ini :
3.5. Penyimpanan Data Tabel
Bila Anda membuat tabel, Oracle secara otomatis mengalokasikan segmen data
dalam tablespace untuk menyimpan data tabel masa depan. Anda dapat
mengontrol alokasi dan penggunaan ruang untuk segmen data tabel dengan
cara berikut:
a. Anda dapat mengontrol jumlah ruang yang dialokasikan untuk segmen data
dengan menetapkan parameter penyimpanan untuk segmen data.
b. Anda dapat mengontrol penggunaan ruang bebas di blok data yang merupakan
data luasan segmen dengan menetapkan PCTUSED dan parameters PCTFREE
untuk data segmen.
Oracle menyimpan data untuk cluster table di segmen data yang dibuat untuk
cluster bukan dalam segmen data dalam tablespace. Parameter penyimpanan
tidak dapat ditentukan ketika sebuah cluster table dibuat atau diubah. Parameter
penyimpanan ditetapkan untuk cluster selalu mengontrol penyimpanan semua
tabel di cluster. Tabel Data Segmen (atau segmen data klaster, ketika
berhadapan dengan cluster table) dibuat baik pemilik tabel tablespace default
atau dalam tablespace khusus disebutkan dalam pernyataan CREATE TABLE.
3.5. Format Baris dan Ukuran
Oracle menyimpan setiap baris dari tabel database yang berisi data untuk kurang
dari 256 kolom sebagai satu atau lebih potongan baris.
Jika seluruh baris dapat dimasukkan ke dalam sebuah blok data tunggal, maka
Oracle menyimpan baris sebagai salah satu bagian baris. Namun, jika semua
data baris yang tidak dapat dimasukkan ke dalam blok data tunggal atau jika
update untuk baris yang sudah ada menyebabkan baris untuk mengatasi blok
data, maka Oracle menyimpan baris menggunakan beberapa bagian baris. Data
blok biasanya hanya berisi satu bagian baris untuk setiap baris. Ketika Oracle
harus menyimpan baris di lebih dari satu bagian baris, maka dihubungkan ke
beberapa blok.
BAB IV
INVENTORI
Sebuah Co bernstraint atau lebih dapat diberikan ke suatu tabel. Kegunaan
constraint tersebut adalah untuk memberikan suatu aturan atau batasan . yang
berlaku pada tabel tersebut sehingga dapat mencegah kesalahan operasi DML
yang dikenakan kepadanya.
Pembuatan Constraint dapat dilakukan pada waktu yang bersamaan dengan
pembuatan tabel (menggunakan perintah CREATE_TABLE) atau setelah
tabel tersebut dibuat (menggunakan ALTER TABLE). Informasi tentang
constraint yang ada pada semua. tabel yang telah dibuat dapat dilihat pada
data dictionary.
4.1. Tipe Constraint
Oracle menyediakan lima constraint yang dapat digunakan untuk memberikan batasan-
batasan operasi DML baik pada level kolom maupun level tabel. Constraint level kolom
adalah constraint yang hanya melibatkan satu kolom tersebut. Sedangkan constraint
level tabel melibatkan lebih dari satu kolom (composite constraint) atau di definisikan
secara terpisah dari definisi kolom. Kelima constraint tersebut adalah sebagai berikut :
a. NOT NULL
b. UNIQUE
c. PRIMARY KEY
d. FOREIGN KEY
e. CHECK
Bentuk Umum dari klausa constraint terlihat seperti di bawah ini :
[CONSTRAINT constraint_name]
constraint_type_clause
Constraint dapat dibuat dengan CREATE TABLE atau ALTER TABLE
statement. Dengan demikian klausa constraint di atas adalah bagian dari kedua
jenis statement tersebut. Apabila sebuah constraint akan diberikan ke kolom
col_i dari sebuah tabel, pada bagian definisi kolom tersebut ditambahkan klausa
constraint sehingga bagian definisi kolom tersebut menjadi seperti di bawah ini :
col_i datatype [DEFAULT expr] [
CONSTRAINT constraint_name]
column_constraint]
Pendefinisian constraint seperti di atas disebut pendefinisian constraint level
kolom. Sedangkan constraint level tabel didefinisikan pada bagian akhir dari
definisi kolom seperti yang ditunjukkan bentuk umum di bawah ini.
col_1 datatype [DEFAULT expr] [ ,
col_1 datatype [DEFAULT expr] [ ,
… [ ,
col_1 datatype [DEFAULT expr] [ ,
CONSTRAINT constraint_name]
table_constraint]
Khusus Untuk ALTER TABLE, bentuk umum penambahan constraint adalah
sebagai berikut :
ALTER_TABLE [schema . ] table ADD [
CONSTRAINT constraint_name]
constraint_type_clause;
Sedangkan penghapusan Constraint mempunyai bentuk umum sebagai berikut :
ALTER TABLE [schema . ] table DROP
CONSTRAINT constraint_name;
Selain itu untuk membuat atau menghapus constraint NOT NULL dapat
digunakan “ALTER TABLE…MODIFY”.
Pemberian nama pada Constraint bersifat optional, dapat dilakukan oleh user
atau diserahkan pada Oracle Server. Pemberian nama sebaiknya diawali
dengan singkatan dari tipe constraint, misalnya “nn_” (NO NULL), “unq_”
(UNIQE), “pk_” (primary key), “fk_” (foreign_key), dan “chk_” (CHECK).
Apabila nama constraint tidak didefinisikan secara eksplisit, Oracle server akan
melakukan generater sebuah nama dengan format “SYS_Cn”. Huruf n adalah
sekelompok karakter numerik yang digenerate oleh Oracle.
Isi dari constraint_type_clause pada bentuk umum klausa constraint di atas
spesifik untuk masing-masing tipe constraint.
4.5. NOT NULL
constraint type ini hanya berlaku untuk level kolom. Bentuk umum klausa
constraint untuk type ini adalah sebagai berikut :
[CONSTRAINT constraint_name] NOT NULL
Constraint NOT NULL bertujuan untuk membuat suatu kolom tidak boleh
berisi nilai NULL. Untuk setiap baris yang dimasukkan, kolom tersebut harus
diberi nilai aktual. Apabila constraint NOT NULL tidak diberikan, secara
default kolom tersebut dapat berisi NULL.
Berikut ini sebuah contoh pemberian constraint terhadap kolom no_peg dari
tabel PEGAWAI. Dalam contoh ini tabel tersebut diasumsikan sudah ada dan
dibuat menggunakan statement seperti pada “script02.sql” yang diberikan pada
pokok bahasan 3.3.1.
SQL > ALTER TABLE PEGAWAI MODIFY
( no_peg VARCHAR2 (8) NOT
NULL);
Table altered
Contoh program yang menggunakan NOT NULL
select /*+ parallel */
letter key_item,
count(*) value_item
from
(
select substr(d.text,c.i,1) letter
from documents d,
(select level i from dual connect by level <= 30) c
)
where letter is not null
group by letter
order by letter;
4.6. UNIQUE
Constraint tipe ini berlaku pada level kolom maupun level tabel. Bentuk
umum klausa constraint tipe ini ada dua. Untuk level kolom sebagai
berikut:
[CONSTRAINT constraint_name] UNIQUE
Sedangkan bentuk umum untuk level tabel adalah sebagai berikut.
[CONSTRAINT constraint_name] UNIQUE (col_1 [ , col_2 [ , ....[ , col_n]]] )
Constraint UNIQUE ini bertujuan untuk membuat sebuah kolom atau kombinasi
dari beberapa kolom pada sebuah tabel menjadi bersifat unik. Dengan demikian
didalam tabel tersebut tidak di perbolehkan ada dua baris data yang nilai unique
key nya sama.
Contoh penggunaan Unique dalam Program
CREATE TABLE lib_users (
id NUMBER NOT NULL,
username VARCHAR2(60) NOT NULL,
encrypted_password RAW(16) NOT NULL,
account_creation_date DATE NOT NULL,
email_address VARCHAR2(2000),
cardid VARCHAR2(30),
CONSTRAINT lib_accounts_pk PRIMARY KEY (id),
CONSTRAINT username_uk UNIQUE (username),
CONSTRAINT username_length_ck CHECK (LENGTH(username) >= 6)
);
4.7. FOREIGN KEY
Foreign Key untuk aturan yang terkait dengan integritas referensial. Peramal
mendukung penggunaan kendala KEYintegrity ASING untuk menentukan
referensial tindakan integritas, termasuk:
1. Update dan Delete No Action
2. Delete CASCADE
3. Delete SET NULL
Contoh Maksud dari Foreign Key
Bentuk umum klausa constraint untuk membuat sebuah foreign key pada level
kolom diperlihatkan berikut ini :
[CONSTRAINT constraint_name]
REFERENCES [schema . ] table
[ (column) ]
[ON DELETE < CASCADE | SET NULL>]
Sedangkan bentuk umum untuk level tabel adalah sebagai berikut :
[ CONSTRAINT constraint_name] FOREIGN
KEY (col_list)
REFERENCES [schema .]
[ (col_list) ]
[ ON DELETE < CASCADE | SET NULL>]
Nilai col_list adalah col_1 [, col_2 [, …[ ,col_n]]].
Contoh menambahkan foreign key pada tabel PEGAWAI yang mengacu ke
tabel POSISI.
SQL> ALTER TABLE PEGAWAI
2 ADD CONSTRAINT
fk_pegawai_posisi FOREIGN KEY
(pos_id)
3 REFERENCES POSISI (pos_id);
4.8. PRIMARY KEY
Kolom atau set kolom termasuk dalam definisi sebuah tabel PRIMARY KEY
CONSTRAINT. Sebuah nilai primary key yang unik mengidentifikasi baris
dalam sebuah tabel. hanya satu primary key dapat didefinisikan untuk setiap
tabel.
Batasan integritas yang tidak mengizinkan duplikat nilai dan nulls dalam
kolom atau mengatur kolom.
Constraint tipe ini juga berlaku pada level kolom maupun level tabel. Bentuk
umum level kolom adalah sebagai berikut .
[CONSTRAINT constraint_name] PRIMARY KEY
4.9. CHECK
Constraint CHECK dapat berlaku untuk level kolom maupun level tabel. Bentuk
umum klausa CHECK untuk kedua level tersebut sama aja yakni seperti yang di
tunjukan berikut ini.
[CONSTRAINT constraint_name CHECK (condition)]
Constraint CHECK berguna untuk membuat suatu kondisi yang harus dipenuhi
oleh setiap baris data didalam suatu tabel. Kondisi yang memenuhi adalah yang
menghasilkan nilai TRUE atau unknown untuk nilai NULL. Kondisi constraint
CHECK disuatu tabel dapat mengacu kesembarang kolom pada tabel tersebut
tetapi tidak boleh mengacu ke kolom-kolom pada tabel lainnya.