Académique Documents
Professionnel Documents
Culture Documents
ORACLE 9i
(DATABASE ADMINISTRATOR)
MODUL PERKULIAHAN
Disusun Oleh :
Saepudin Nirwan, S.Kom., M.Kom.
MODUL PERKULIAHAN
Disusun oleh :
Saepudin Nirwan, S.Kom., M.Kom.
Database Administrator || i
PERNYATAAN
Database Administrator || ii
KATA PENGANTAR
Modul ini disusun sebagai pedoman bagi mahasiswa dilingkungan Politeknik Pos
Indonesia yang mengikuti matakuliah Basisdata Lanjut (Oracle). Tujuannya agar mahasiswa
memiliki panduan dalam bahasa indonesia sebagai sumber kedua, dimana sumber utama
adalah buku-buku teks Oracle.
Modul ini menjelaskan teori dan pengelolaan administrasi pada Oracle 9i, dalam modul
ini juga membahas arsitektur dan konfigurasi Oracle. Materi yang diberikan dalam modul
tentunya masih belum lengkap dan untuk itu mahasiswa dan dosen diharapkan dapat mencari
referensi tambahan yang diperlukannya baik di perpustakaan maupun melalui media internet.
Modul ini masih belum sempurna, sehingga perlu dikaji lebih lanjut baik oleh dosen
pengajar, instruktur, asisten maupun praktikan yang terlibat dalam matakuliah ini. Oleh karena
itu penyusun berharap agar para pemakai modul ini dapat memberikan sumbangan saran untuk
perbaikan modul Oracle 9i ini.
Semoga modul ini dapat bermanfaat serta dapat meningkatkan kemampuan mahasiswa
dalam menguasai pengelolaan administrasi Oracle 9i.
Penyusun
Database Administrator || iv
1.3.8.3 Arsitektur Fisik dan Arsitektur Logikal .................................................................. 17
1.3.9 CONFIGURATION FILE/ FILE CONTROL ........................................................ 18
1.3.9.1 Configuration-Files/ Control-Files .......................................................................... 18
1.3.9.2 Mirroring ................................................................................................................. 18
1.3.9.3 Startup Nomount ..................................................................................................... 19
1.3.9.4 Startup Mount.......................................................................................................... 19
1.3.9.5 Startup Open ............................................................................................................ 19
1.3.10 LOG FILE/TRANSACTION LOG FILE ............................................................... 20
1.3.10.1 Log-Files ................................................................................................................. 20
1.3.10.2 Mekanisme: Rotasi .................................................................................................. 21
1.3.10.3 Mirroring ................................................................................................................. 21
1.3.10.4 Operasi : SWITCH .................................................................................................. 22
1.3.10.5 Operasi : DROP - Group ......................................................................................... 24
1.3.10.6 Operasi : ADD MEMBER ...................................................................................... 25
1.3.10.7 Operasi : ADD GROUP .......................................................................................... 26
1.3.10.8 Operasi : DROP - Member ...................................................................................... 28
1.3.11 TABLESPACE........................................................................................................ 29
1.3.11.1 Jenis Tablespace ...................................................................................................... 29
1.3.11.2 Operasi untuk Tablespace ....................................................................................... 31
1.3.12 DATAFILES ........................................................................................................... 34
1.3.13 SEGMENT, EXTENT DAN BLOCK .................................................................... 38
1.3.13.1 Segment ................................................................................................................... 38
1.3.13.2 Klausa Storage......................................................................................................... 40
1.3.13.3 Extent ...................................................................................................................... 40
1.3.13.4 Block ....................................................................................................................... 41
1.3.13.5 Storage Extent ......................................................................................................... 41
1.3.13.6 Storage Block .......................................................................................................... 41
1.3.14 TABLE SEGMENT ................................................................................................ 42
1.3.15 Membuat Table ....................................................................................................... 42
1.3.16 Index-Organized Table (IOT) ................................................................................. 43
1.3.17 Menghapus Table .................................................................................................... 45
Database Administrator || v
1.3.18 Truncate Table......................................................................................................... 45
1.3.19 Partitioning Table .................................................................................................... 45
1.3.20 Range Partitioning ................................................................................................... 46
1.3.21 Melihat isi Partitioning ............................................................................................ 47
1.3.22 List Partitioning ....................................................................................................... 47
1.3.23 Composite Partitioning............................................................................................ 48
1.3.24 Mengubah Nama Partitioning ................................................................................. 49
1.3.25 Menghapus Partitioning .......................................................................................... 49
1.3.26 INDEX SEGMENT................................................................................................. 50
1.3.26.1 Struktur B-Tree Index ............................................................................................. 50
1.3.26.2 Struktur Bitmap Index ............................................................................................. 50
1.3.26.3 Membuat Index ....................................................................................................... 50
1.3.26.4 Menghapus Index .................................................................................................... 51
1.3.26.5 LATIHAN MANDIRI............................................................................................. 51
1.3.27 CLUSTER SEGMENT ........................................................................................... 52
1.3.27.1 Membuat Cluster ..................................................................................................... 53
1.3.27.2 Index Cluster ........................................................................................................... 54
1.3.27.3 Menghapus Cluster .................................................................................................. 56
1.3.28 MENGELOLA USER PRIVILEGE DAN PROFILE ............................................ 56
1.3.28.1 Membuat USER ...................................................................................................... 58
1.3.28.2 Mengubah USER..................................................................................................... 58
1.3.28.3 Menghapus USER ................................................................................................... 58
1.3.28.4 PROFILE ................................................................................................................. 59
1.3.28.5 Menghapus Profile .................................................................................................. 60
DAFTAR PUSTAKA ................................................................................................................ 63
TEKNIK PENILAIAN .............................................................................................................. 64
Database Administrator || vi
DAFTAR GAMBAR
Gambar 1 Schema Objects, Tablespaces, and Datafiles [1]........................................................ 3
Gambar 2 Databases, Tablespaces, and Datafiles [1] ................................................................ 4
Gambar 3 Oracle arsitektur [3] .................................................................................................... 5
Gambar 4 Oracle Process ............................................................................................................ 6
Gambar 5 Instance Oracle ........................................................................................................... 6
Gambar 6 Background Process Oracle [1] ................................................................................. 7
Gambar 7 Tipe Instance............................................................................................................... 7
Gambar 8 Tipe Database [1]........................................................................................................ 8
Gambar 9 Struktur Instance dan Database Oracle [1] ................................................................. 8
Gambar 10 Sebuah tabel yang sudah dikenal instance ............................................................... 9
Gambar 11 Sebuah tabel yang sudah diisi sebuah record ........................................................... 9
Gambar 12 Nama database pada stuktur direktori Oracle ......................................................... 10
Gambar 13 Instance pada Service Windows ............................................................................. 11
Gambar 14 Register Oracle di Windows ................................................................................... 11
Gambar 15 Start/Stop Instance Oracle dari Service Windows .................................................. 12
Gambar 16 Lokasi Software Oracle [3] ..................................................................................... 13
Gambar 17 Perintah DOS untuk membuat folder untuk database............................................ 13
Gambar 18 Sintaks untuk membuat database ............................................................................ 14
Gambar 19 Oracle Database Files [3]........................................................................................ 14
Gambar 20 Sintaks untuk membuat tablespace ........................................................................ 15
Gambar 21 Sintaks untuk membuat repository ........................................................................ 15
Gambar 22 Arsitektur Database Oracle ..................................................................................... 16
Gambar 23 Arsitektur Lojik Oracle ........................................................................................... 17
Gambar 24 Arsitektur Fisik dan Lojik Oracle [3] ..................................................................... 17
Gambar 25 Template file configurations ................................................................................... 18
Gambar 26 Tahapan startup dan shutdown database ................................................................ 20
Gambar 27 Mekanisme Rotasi Log Files .................................................................................. 21
Gambar 28 Mirroring Log Files ................................................................................................ 22
Gambar 29 Sintaks untuk melakukan swicth log....................................................................... 23
Database Administrator || ix
LANDASAN TEORI ORACLE 9i
Database Administrator || 1
1.2 PENDAHULUAN
Sebuah database Oracle adalah sekumpulan dari data yang diperlakukan sebagai sebuah
kesatuan. Tujuan dari sebuah database adalah untuk menyimpan dan mengambil kembali
informasi yang diperlukan dengan cepat. Sebuah server database adalah merupakan kunci bagi
solusi permasalahan-permasalahan berkaitan dengan manajemen informasi. Secara umum
sebuah server mampu mengelola data yang besar dengan jumlah user yang banyak serta
menjamin konkurensi bagi user dalam mengakses data secara bersamaan. Tugas-tugas server
database seperti ini tentunya harus dilakukan dengan performansi yang tinggi, mengingat
jumlah dan user sangat besar dan semakin meningkat dalam pengoperasiannya. Sebuah
database server juga memberikan otorisasi bagi setiap user dalam mengakses data serta
menyediakan solusi-solusi yang efisien dalam menghadapi kegagalan sistem maupun
recovery-nya. Database Oracle memiliki logical structures dan physical structures, dimana
kedua struktur ini terpisah, sehingga physical storage dapat dikelola tanpa menyebabkan
implikasi apapun terhadap struktur logical storage.
Database Administrator || 2
Gambar 1 Schema Objects, Tablespaces, and Datafiles [1]
Database Administrator || 3
Gambar 2 Databases, Tablespaces, and Datafiles [1]
Oracle Instance
Adalah kombinasi dari background process dan struktur memori. Instance harus dihidupkan
untuk mengakses data di database. Setiap saat instance dihidupkan (start), System Global Area
(SGA) dan Oracle background process dimulai. SGA adalah area memori yang digunakan
untuk menyimpan informasi-informasi database yang di-share oleh proses-proses di database,
lihat gambar berikut.
Database Administrator || 4
Gambar 3 Oracle arsitektur [3]
Database Administrator || 5
Sedangkan proses yang optional, terdiri dari:
a. Dispatcher.
b. Management Server.
c. Network Management Agent.
d. Data Gatherer.
Process
Background Foreground
1.3.2 Instance
Instance sebagai operasi (process) didalam arsitektur Oracle instance dari sudut pandang
proses dan bagian pembentuknya dapat digambarkan sebagai berikut :
Instance
Server Database
Processes
Database Administrator || 6
Terlihat bahwa instance dan server processes digambarkan sebagai suatu operasi, sementara
database digambarkan sebagai sebuah tipe. Bahwa instance adalah suatu background process
dapat dilihat dari menu Control Panel| Administrative Tools|Services pada sistem operasi
windows. Sebuah instance merupakan sebuah kumpulan background process, dimana harus
terdiri atas:
a. Checkpointer, disingkat ckpt.
b. Database Writer, disingkat dbw0.
c. Log-Writer, disingkat lgwr.
d. Process-Monitor, disingkat pmon.
e. System-Monitor, disingkat smon.
f. Recover disingkat reco.
akan tetapi instance bisa dipandang tidak hanya sebagai sebuah operasi, melainkan juga
sebagai sebuah tipe. Dapat dilihat pada gambar disamping.
Instance
Data cache
Log cache
Repository cache
Miscellaneous cache
Java cache
Start
Gambar 1 Instance Type
Stop
Database Administrator || 7
Dapat dijelaskan disini, kotak pertama berisi nama tipe, kotak kedua berisi bagian-bagian
tipe, kotak ketiga adalah operasi-operasi eksternal yang bisa dilakukan ke objek dari tipe
tersebut.
1.3.3 Database
Seperti halnya dengan instance yang dimodelkan sebagai tipe, database juga dapat dimodelkan
sebagai sebuah tipe, seperti dapat dilihat pada gambar berikut ini :
Database
Data file
Log file
Configuration file
Mount
Open
Dapat dilihat terdapat keterkaitan antara database dan instance, yaitu pada instance terdapat
Data cache dan Log cache, sedangkan pada database terdapat Data file dan Log file. Dimana
Data file adalah data yang disimpan didalam Disk, sedangkan Data cache adalah data yang
disimpan didalam memori. Log File merupakan transaction log yang berada didalam Disk,
sedangkan Log cache adalah transaction log yang berada di memori. Oracle memberikan
istilah yang telah digambarkan tadi agak berbeda dalam penulisannya meskipun mempunyai
arti yang sama, berikut ini adalah istilah yang dipakai dalam Oracle.
Instance Database
Database Administrator || 8
1.3.4 Data, Log dan Metadata
Untuk memudahkan pemahamannya, perhatikan ilustrasi berikut ini. Misal kita memiliki
sebuah table dengan nama T, dengan sebuah column dengan nama C, yang pada awalnya tidak
memiliki atau tidak berisi satu record pun. Seandainya table ini sudah dimasukkan kedalam
memori, maka pada saat itu memori instance akan berisi sebagai berikut:
Kemudian jika kita memasukkan satu record ke dalam table T dengan statement INSERT
INTO T VALUES (3). Maka akan didapat gambaran sebagai berikut:
Disini terlihat jelas bahwa data cache berisi data, log cache berisi transaction log statement
pemasukkan data (bukan berisi datanya itu sendiri), dan metadata cache berisi informasi
tentang data. Perubahan pada data cache akan masuk ke data file, perubahan pada log cache
akan masuk ke log files.
1.3.5 INSTANCE
Setelah instance dimulai (dalam status start), database yang sudak ditentukan akan berasosiasi
dengan instance ini. Hal ini disebut dengan mounting database (mount status), dan selanjutnya
database sudah siap untuk diakses dengan status open, artinya setiap user yang memiliki
otorisasi sudah bisa mengakses database tersebut.
Database Administrator || 9
Lebih dari satu instance dapat hidup dalam komputer yang sama, setiap instance mengakses
database fisik masing-masing. Hanya seorang database administrator yang dapat melakukan
start up sebuah instance dan melakukan status open database. Jika sebuah database dalam
status open, lalu seorang administrator melakukan shut down database maka hal tersebut
disebut dengan closed (menutup database). Dalam keadaan closed, semua user tidak dapat
mengakses informasi dalam database. Untuk melakukan startup dan shutdown database
tersebut secara privilege hanya diberikan kepada administrator, sedangkan user normal tidak
dapat melakukan perintah tersebut.
Database Administrator || 10
Gambar 13 Instance pada Service Windows
Setelah database tercipta, maka pada register windows, instance untuk database tersebut juga
tercipta. Lihat pada tampilan berikut ini:
Operasi-operasi yang dapat dilakukan pada instance adalah operasi Start, Stop, Alter. Operasi
Start dan Stop mudah dilakukan di windows, sedangkan untuk operasi Alter biasanya lebih
banyak dilakukan dalam programming. Lihat tampilan berikut untuk operasi Start dan Stop
dalam menu Administrative Tools|Services.
Database Administrator || 11
Gambar 15 Start/Stop Instance Oracle dari Service Windows
Database Administrator || 12
Gambar 16 Lokasi Software Oracle [3]
Folder yang dibutuhkan untuk membangun database tersebut dapat dibangun dari mode DOS
(Disk Operating System) atau dari Windows Explorer, antara lain sebagai berikut:
Database Administrator || 13
DATAFILE '<ORACLE_BASE>\oradata\<DatabaseName>\system01.dbf' SIZE 250M
REUSE AUTOEXTEND ON NEXT 10240K MAXSIZE UNLIMITED
CHARACTER SET WE8MSWIN1252
NATIONAL CHARACTER SET AL16UTF16
LOGFILE GROUP 1 ('<ORACLE_BASE>\oradata\<DatabaseName>\redo01.log') SIZE
2560K [,
GROUP 2 ('<ORACLE_BASE>\oradata\<DatabaseName>\redo02.log') SIZE 2560K,
GROUP 3 ('<ORACLE_BASE>\oradata\<DatabaseName>\redo03.log') SIZE 2560K];
Database Administrator || 15
1.3.8 ARSITEKTUR DATABASE ORACLE
1.3.8.1 Arsitektur Fisik
Secara fisik, dalam sebuah database Oracle terdiri atas :
- Configuration Files
Digunakan untuk menyimpan konfigurasi dari database (bukan konfigurasi dari instance).
Configuration files berisi fixed-length records. Configuration files berisi antara lain :
a) Database name,
b) Checkpoint,
c) Backup history,
d) Log Sequence,
e) Nama-nama data files,
f) Timestamp pembuatan database,
g) Nama-nama tablespaces.
- Data Files
Digunakan untuk menyimpan data. Data files selalu merupakan bagian dari suatu
tablespace.
- Log Files
Digunakan untuk menyimpan transaction-Log. File ini menyimpan SQL statement yang
berisikan transaksi. Log files juga menyimpan informasi dalam bentuk record.
Note : Operasi SELECT (tanpa clausa FOR UPDATE) tidak akan direkam pada log files karena
bukan sebuah transaksi.
Dalam Oracle, transaction-log file ini sering disebut dengan Redo-Log files.
Dalam sebuah database, umumnya terdiri atas satu atau lebih configuration-files dan data-files
dan dua atau lebih log-files. Untuk ilustrasinya dapat dilihat pada gambar berikut ini.
Config-Files
DATABASE Data-Files
Log-Files 2
Database Administrator || 16
1.3.8.2 Arsitektur Logikal
Dalam database Oracle, arsitektur memisahkan secara logis antara basis data dengan
tablespaces. Setiap basis data memiliki satu atau lebih tablespaces, dimana setiap tablespace
memiliki nol atau lebih segment, setiap segment memiliki satu atau lebih extent, dan setiap
extent memiliki satu atau lebih database block. Untuk ilustrasinya dapat dilihat pada gambar
berikut.
Database
Tablespac
e
Segment
Extent
DB-block
Database Administrator || 17
1.3.9 CONFIGURATION FILE/ FILE CONTROL
1.3.9.1 Configuration-Files/ Control-Files
Configuration files/Control files adalah sebuah file biner yang dibaca oleh Oracle instance
untuk membuka data files dan log files. Selama database beroperasi/aktif, Oracle instance
akan me-refresh nilai-nilai record pada config-file.
Besar kecilnya database configuration-file tergantung pada banyaknya jumlah file dalam
database tersebut, makin banyak jumlah file dalam database maka database configuration-file
juga turut membesar, akan tetapi hal ini terjadi bukan pada saat penambahan file, melainkan
pada saat database configuration-file di-ReCreate.
Ukuran configuration-file dipengaruhi juga nilai parameter-parameter berikut ini :
a) MAXLOGFILES, diset pada saat pembuatan database
b) MAXDATAFILES, diset pada saat pembuatan database
c) DB_FILES, dispesifikasikan pada instance-configuration files
Default nama extention dari configuration-files yang diberikan oleh Oracle jika dilihat dengan
windows explorer mempunyai extention CTL.
1.3.9.2 Mirroring
Mirroring dalam hal ini adalah adanya salinan (backup) dari file-file yang sedang dioperasikan
dan dibuka pada saat yang sama dan memberikan layanan yang sama pula. Mirroring database
files dalam level DBMS hanya berlaku untuk configuration-files dan log-files (tidak berlaku
untuk data-files).
###########################################
# File Configuration
###########################################
control_files=("C:\oracle\oradata\POS\control01.ctl",
"C:\oracle\oradata\POS\control02.ctl")
Pada contoh di atas terdapat dua buah configuration-file yang bersifat mirroring yang
dimaksudkan untuk mempermudah proses operasi database. Setelah mirroring diciptakan,
Database Administrator || 18
perubahan ini harus disimpan dan instance harus di-Restart agar dapat segera berfungsi.
Restart disini dimaksudkan agar instance sekarang mengoperasikan dua buah configuration-
file sekaligus.
Atau
SQL> STARTUP
Atau
Database Administrator || 19
SQL> STARTUP OPEN
Tingkatan status database sampai dengan status open terlihat seperti di bawah ini, dan
dynamics performance view yang dapat digunakan oleh administrator untuk melihat status
database tersebut.
Database Administrator || 20
1.3.10.2 Mekanisme: Rotasi
Log-files menyimpan semua aktifitas transaction log yang dilakukan dalam database. Log-files
biasanya tidak ingin disimpan terlalu lama, karena jika semuanya disimpan maka disk yang
ada akan penuh dengan log-files saja. Sehingga dibutuhkan sebuah life-time transaction log
sehingga tidak jatuh terlalu singkat untuk menyimpan data transaction yang dilakukan dalam
sebuah database ataupun terlalu lama sehingga disk akan penuh dengan data transaksi yang
tidak diinginkan. Log transaction yang ada akan hilang atau dihapus setelah mencapai saat
life-time yang telah ditentukan, sehingga kita tidak bisa me-Recover data transaction yang
telah hilang tersebut.
Oracle memberikan keleluasaan untuk mengatur life-time tersebut dengan Mekanisme
Rotasi. Ilustrasi mekanisme ini dapat dilihat pada gambar berikut ini :
Group Group
1 2
Redo Redo
1a.log 2a.log
Pada gambar di atas, bila Grup 1 telah penuh, maka instance akan menyimpan data transaksi
di Grup 2, dan bila Grup 2 telah penuh maka instance akan menyimpan data transaksi kembali
ke Grup1.
1.3.10.3 Mirroring
Mirroring dalam Log-files mempunyai peranan yang penting seperti halnya dengan
configuration-file. Oracle menyediakan cara mirroring log files untuk meningkatkan
kehandalan pengoperasian databasenya. Hal ini dikarenakan database sangat rentan dengan
kegagalan atau mungkin kehilangan data. Proses mirroring ini biasanya dilakukan pada media
Database Administrator || 21
disk yang berbeda untuk keamanan semata, sehingga jika pada media disk yang ada terjadi
kerusakan fisik, maka yang pada posisi mirror diharapkan tidak terjadi kerusakan dan masih
dapat dilakukan pengaksesan data. Ilustrasi mirror ini dapat dilihat pada gambar disamping.
Pada intinya mirroring disini adalah pemisahan member-member (dalam Group yang sama) ke
media disk yang berbeda, dan bukan memisahkan group ke media disk yang berbeda.
Group Group
1 2
Redo1 Redo2
a.log a.log
Disk
C
Disk
D
Redo1 Redo2
b.log b.log
Database Administrator || 22
GROUP# THREAD# SEQUENCE# BYTES MEMBERS ARC STATUS FIRST_CHANGE#
---------- ---------- ---------- ---------- ---------- --- -----------------------
1 1 88 2621440 1 NO INACTIVE 157465
2 1 89 2621440 1 NO CURRENT 177539
3 1 87 2621440 1 NO INACTIVE 157463
System altered.
Database Administrator || 23
SQL> archive log list
Database log mode No Archive Mode
Automatic archival Disabled
Archive destination C:\oracle\920\RDBMS
Oldest online log sequence 89
Current log sequence 91
kemudian cek pada Operating System apakah file tersebut telah terhapus.
SQL> host dir C:\ORACLE\ORADATA\POS\REDO*.log
Volume in drive C is SYSTEM
Volume Serial Number is 10FA-A36F
Database Administrator || 24
Directory of C:\ORACLE\ORADATA\POS
13/11/2005 22:52 2.621.952 REDO01.LOG
13/11/2005 22:51 2.621.952 REDO02.LOG
13/11/2005 22:52 2.621.952 REDO03.LOG
3 File(s) 7.865.856 bytes
0 Dir(s) 694.345.728 bytes free
Terlihat bahwa file tidak terhapus di level Operating System. Sehingga penghapusan file harus
dilakukan menggunakan perintah pada sistem operasi.
Database altered.
Database Administrator || 25
2 INVALID ONLINE C:\ORACLE\ORADATA\POS\REDO02B.LOG
perhatikan bahwa v$logfile menyatakan bahwa status member yang baru saja dibuat adalah
INVALID, kemudian akan kita ubah menjadi VALID.
SQL> alter system switch logfile;
System altered.
SQL> select * from v$logfile;
GROUP# STATUS TYPE MEMBER
---------- ------- ------- -----------------------------------------
1 ONLINE C:\ORACLE\ORADATA\POS\REDO01.LOG
2 ONLINE C:\ORACLE\ORADATA\POS\REDO02.LOG
1 INVALID ONLINE C:\ORACLE\ORADATA\POS\REDO01B.LOG
2 ONLINE C:\ORACLE\ORADATA\POS\REDO02B.LOG
SQL> alter system switch logfile;
System altered.
SQL> select * from v$logfile;
GROUP# STATUS TYPE MEMBER
---------- ------- ------- -----------------------------------------
1 ONLINE C:\ORACLE\ORADATA\POS\REDO01.LOG
2 ONLINE C:\ORACLE\ORADATA\POS\REDO02.LOG
1 ONLINE C:\ORACLE\ORADATA\POS\REDO01B.LOG
2 ONLINE C:\ORACLE\ORADATA\POS\REDO02B.LOG
SQL> select * from v$log;
GROUP# THREAD# SEQUENCE# BYTES MEMBERS ARC STATUS FIRST_CHANGE#
---------- ---------- ---------- ---------- ---------- --- ---------- -------------
1 1 93 2621440 2 NO CURRENT 177572
2 1 92 2621440 2 NO INACTIVE 177570
Database Administrator || 26
3 ('C:\ORACLE\ORADATA\POS\REDO03.LOG',
4 'C:\ORACLE\ORADATA\POS\REDO03B.LOG')
5 size 1M;
Database altered.
SQL> select * from v$log;
GROUP# THREAD# SEQUENCE# BYTES MEMBERS ARC STATUS FIRST_CHANGE#
---------- ---------- ---------- ---------- ---------- --- ---------- -------------
1 1 93 2621440 2 NO CURRENT 177572
2 1 92 2621440 2 NO INACTIVE 177570
3 1 0 1048576 2 YES UNUSED 0
SQL> select * from v$logfile;
GROUP# STATUS TYPE MEMBER
---------- ------- ------- ------------------------------------------
1 ONLINE C:\ORACLE\ORADATA\POS\REDO01.LOG
2 ONLINE C:\ORACLE\ORADATA\POS\REDO02.LOG
1 ONLINE C:\ORACLE\ORADATA\POS\REDO01B.LOG
2 ONLINE C:\ORACLE\ORADATA\POS\REDO02B.LOG
3 ONLINE C:\ORACLE\ORADATA\POS\REDO03.LOG
3 ONLINE C:\ORACLE\ORADATA\POS\REDO03B.LOG
6 rows selected.
Lihat untuk pertama kali, SEQUENCE# bernilai 0 untuk group yang baru, dengan status
UNUSED. Kemudian akan diubah dengan menggunakan operasi SWITCH.
Database Administrator || 27
1.3.10.8 Operasi : DROP - Member
Operasi DROP ini dipakai untuk menghapus member yang ada. Sebagai contoh kita akan
menghapus member dari group 3 yang baru dibuat. (yang sekarang statusnya current)
SQL> alter database
2 drop logfile member
3 'C:\ORACLE\ORADATA\POS\REDO03B.LOG';
alter database
*
ERROR at line 1:
ORA-01609: log 3 is the current log for thread 1 - cannot drop members
ORA-00312: online log 3 thread 1: 'C:\ORACLE\ORADATA\POS\REDO03.LOG'
ORA-00312: online log 3 thread 1: 'C:\ORACLE\ORADATA\POS\REDO03B.LOG'
Kesalahan terjadi karena kita tidak dapat menghapus member (dan group) bila sedang dalam
keadaan current. Oleh karena itu harus kita switch terlebih dahulu.
Database Administrator || 28
2 ONLINE C:\ORACLE\ORADATA\POS\REDO02B.LOG
3 ONLINE C:\ORACLE\ORADATA\POS\REDO03.LOG
Latihan :
1) Hilangkan member dan group 3.
2) Buatlah Group 3 dan 4 berikut 2 buah member.
1.3.11 TABLESPACE
Tablespace berasal dari dua kata ‘Table’ dan ‘Space’ yang mempunyai makna ruang untuk
tabel. Sehingga motivasi utama dari tablespace adalah manageability, untuk memudahkan
pengelolaan table. Tanpa adanya tablespace, semua tabel akan menumpuk di satu tempat.
Dengan adanya tablespace, kita dapat mengelompokkan beberapa tabel di ruang tertentu, dan
beberapa tabel yang lain diruang yang lainnya. Saat ini beberapa DBMS lainnya juga memakai
konsep tablespace (contohnya DB2, Informix) dan mengimplementasikan tablespace (contoh
SQL Server memakai istilah ‘Database’).
TABLESPACE
System-defined User-defined
Globally-managed Locally-managed
Database Administrator || 29
Pada Oracle database, hanya satu tablespace yang harus ada (mandatory), yakni tablespace
bernama SYSTEM, dan bersifat system-defined (‘system’ disini berarti Database Management
System atau DBMS). Tablespace ini juga khusus, karena merupakan satu-satunya tablespace
yang bisa berisi objek non-segment.
Untuk tablespace yang lain harus buat oleh user (hal ini dapat dilihat pada script pembuatan
sebuah database, dimana untuk tablespace yang lain diletakkan pada script yang berbeda
dengan script pembuatan tablespace ‘SYSTEM’), itu sebabnya tablespace ini disebut ‘user-
defined’. Sedangkan untuk Globally-managed, Locally-managed, Permanent dan Temporary
akan dibahas pada bab selanjutnya.
Berikut ini adalah 7 (tujuh) buah tablespace yang paling umum atau sering digunakan dalam
membangun database Oracle.
Dari sini dapat dilihat bahwa kriteria utama untuk memisahkan tablespace adalah melalui tipe
segment yang ada didalamnya. Kemudian kita baru dapat memisahkan tablespace dari sifat
metadatanya. Dalam hal ini, kriteria ini yang membedakan tablespace SYSTEM dan TOOL
dengan tablespace yang lainnya. Kriteria berikutnya adalah memisahkan antara apa yang
berasal dari Oracle (system-defined) dan dengan apa yang berasal dari user (user-defined).
Kriteria inilah yang membedakan antara tablespace SYSTEM dengan tablespace TOOL.
Dari tabel tersebut juga dapat dilihat bahwa untuk lima tablespace yang pertama (Tables
sampai dengan Sorts) memakai nama benda jamak, dalam hal ini adalah untuk
memperlihatkan bahwa tablespace ini berisi kumpulan segments. Sedangkan untuk dua
tablespace terakhir (System dan Tool) memakai nama benda tunggal, hal ini untuk
Database Administrator || 30
memperlihatkan pemisahan kedua tablespace ini dengan tablespace yang lainnya bukan
berdasarkan jenis segmennya.
CREATE
Berikut ini adalah Sintaks untuk penulisan CREATE TABLESPACE
Database Administrator || 31
Contoh sintaks membuat tablespace
CREATE TABLESPACE POLTEKPOS
DATAFILE ‘C:\ORACLE\ORADATA\POLTEK\DTPOS.DBF’ SIZE 5 M;
ALTER
Berikut ini adalah sintaks untuk penulisan ALTER TABLESPACE
DROP
Ada tiga kasus dalam menghapus sebuah tablespace, hal ini dikarenakan:
Database Administrator || 32
- Tablespace tidak berisi segment.
Contoh sintaks menghapus tablespace.
DROP TABLESPACE POLTEKPOS;
- Tablespace berisi segment tanpa kendala referensial ke objek pada tablespace yang
lain
Contoh sintaks menghapus tablespace
DROP TABLESPACE POLTEKPOS INCLUDING CONTENTS;
- Tablespace berisi segment dengan kendala referensial ke objek pada tablespace yang
lain.
Contoh sintaks menghapus tablespace
DROP TABLESPACE POLTEKPOS INCLUDING CONTENTS CASCADE CONSTRAINTS;
Dalam Oracle versi 9i ada fasilitas untuk membuang tablespace secara langsung berikut
dengan data filenya. Contohnya :
DROP TABLESPACE POLTEKPOS INCLUDING CONTENTS AND DATAFILES;
Database Administrator || 33
1.3.12 DATAFILES
Seperti halnya Configuration-files dan log-files, data-files adalah bentuk fisik yang dapat
dilihat oleh user dalam menggunakan database Oracle. Operasi yang berlaku untuk datafiles
adalah :
a) ADD, menambahkan data file,
b) OFFLINE, membuat status data file tidak dapat diakses oleh user,
c) ONLINE, membuat status data file tersedia bagis user,
d) RESIZE, menambah ukuran datafile,
e) RENAME, mengubah nama datafile.
Dalam sistem operasi yang mempunyai arsitektur 32-bit, ukuran data file yang dibuat tidak
memungkinkan untuk membuat sebuah data-files dengan ukuran lebih dari 2048 MB (atau
sama dengan 2 GB), hal ini dikarenakan cara perhitungan ukuran di database Oracle yang
menggunakan Signed-bit. Akan tetapi jika sistem operasi yang digunakan mempunyai
arsitektur 64-bit dan database Oracle-nya juga 64-bit, maka kita dapat membuat sebuah
datafiles yang mempunyai ukuran data file lebih dari 2048 MB (atau sama dengan 2 GB).
Selanjutnya ukuran sebenarnya data yang dibuat dapat dilihat dari rumus berikut ini:
Data-File = Spesifikasi Ukuran + DB-block-size
Sebagai contoh, jika kita menentukan ukuran data sebesar 5120 KB (atau sama dengan 5 MB)
dan besarnya DB-block-size adalah 2 KB, maka ukuran sebenarnya data-file yang dibuat
adalah 5122 KB (bukan 5 MB).
Tidak seperti configuration-files dan log-files yang dapat melakukan proses mirroring, untuk
keamanan transaksinya, data-files tidak dapat melakukan proses mirroring secara langsung,
akan tetapi harus menggunakan perangkat keras yang khusus (disk yang khusus) dan
perangkat lunak yang khusus (contohnya Veritas).
Data-files dapat diperbesar (extend), satuan untuk perbesaran ini disebut dengan extension.
Dengan menggunakan Database Configuration Assistant kita dapat menentukan spesifikasi
ini melalui kotak dialog seperti berikut. Pada gambar dapat dilihat bahwa data ditentukan
dapat diperbesar 10 MB setiap kali perbesaran. Ekuivalensi dalam script untuk contoh gambar
tersebut adalah sebagai berikut:
Database Administrator || 34
DATAFILE ‘C:\ORACLE\ORADATA\POLTEK\DTPOS.DBF’ SIZE 5 M
REUSE AUTOEXTEND ON NEXT 10240 KB;
bila data dispesifikasikan agar tidak dapat diperbesar, maka AUTOEXTEND OFF, dan pada
kotak dialog akan terlihat tampilan sebagai berikut:
Database Administrator || 35
Latihan:
1. Buatlah sebuah tablespace dengan nama Kelas Anda.
Contoh :
CREATE TABLESPACE TI2A
DATAFILE ‘C:\ORACLE\ORADATA\POLTEK\TI2A.DBF’
SIZE 5 M;
Database Administrator || 36
ALTER TABLESPACE TI2A OFFLINE NORMAL;
8. Buatlah sebuah USER yang mempunyai default ke tablespace yang anda buat.
Contoh Format Penulisan :
CREATE USER <NamaUser>
IDENTIFIED BY <PasswordUser>
DEFAULT TABLESPACE <NamaTablespace>
ACCOUNT UNLOCK;
9. Berikan hak akses pada user yang anda buat sebagai DBA, CONNECT dan
RESOURCE.
Contoh Format Penulisan :
GRANT <HakAkses> TO <NamaUser>;
10. Buatlah table dibawah dengan contoh format penulisan sebagai berikut :
CREATE USER <NamaTabel>
(<NamaField-1> <NamaTipe-1> <Length-1>,
Database Administrator || 37
<NamaField-2> <NamaTipe-2> <Length-2>,...
<NamaField-n> <NamaTipe-n> <Length-n>)
TABLESPACE <NamaTablespace>;
Table: Mahasiswa
Field Name Data Tipe Primary Key
NPM VarChar2(7) Yes
Nama VarChar2(20) No
Alamat VarChar2(30) No
TglLahir Date No
Table: MataKuliah
Field Name Data Tipe Primary Key
KodeMK VarChar2(7) Yes
NamaMK VarChar2(20) No
SKS Integer No
Table: Perkuliahan
Field Name Data Tipe Primary Key
NPM VarChar2(7) Yes
KodeMK VarChar2(7) Yes
HariJamPertemuan VarChar2(20) No
RuangPertemuan VarChar2(20) No
11. Isilah masing-masing table yang dibuat tadi dengan minimal 5 buah data
Database Administrator || 38
Gambar 45 Hubungan antara Segments, Extents, dan Data Blocks [1]
Dari kelima segment ini hanya Table Segment, Index Segment, dan Undo Segment yang dapat
dilakukan proses eksplisit CREATE, ALTER, dan DROP. Untuk lebih lengkapnya, berikut ini
adalah tipe-tipe segment yang ada pada database Oracle.
Database Administrator || 39
1.3.13.2 Klausa Storage
Klausa storage digunakan sejalan dengan hirarki logical aspec dari suatu database, yaitu:
a) Database,
b) Tablespace,
c) Segment,
Contoh penggunaan storage dapat dilihat sebagai berikut:
CREATE TABLESPACE Tables
DATAFILE ‘C:\ORACLE\ORADATA\DTPOS\TABLES01.DBF’
SIZE 5M AUTOEXTEND ON NEXT 5M
DEFAULT STORAGE (INITIAL 160K NEXT 160K PCTINCREASE 0);
Pada contoh pertama, klausa storage ditentukan pada level tablespace, sedangkan pada contoh
kedua, klausa storage ditentukan pada level segment. Pada contoh pertama, menyatakan
bahwa extent-extent di tablespace tables akan berukuran 160k, sedangkan pada contoh kedua
extent-extent di segment t akan berukuran 80K.
Dalam hal ini memang tidak ada hubungan langsung antara Tablespace dengan Extent, yang
ada hanyalah hubungan langsung antara Tablespace dengan Segment, dan antara Segment
dengan Extent. Artinya, perintah pada contoh pertama menyatakan secara tidak langsung
bahwa semua segment dalam tablespace tables akan memiliki extent sebesar 160K.
1.3.13.3 Extent
Extent adalah sebuah objek yang merupakan gabungan satu atau lebih objek bertipe block
sehingga block-block tersebut contiguous. Sederetan blok-blok yang tidak contiguous
bukanlah suatu extent. Operasi yang berlaku pada extent hanyalah ALLOCATE dan
DEALLOCATE
Database Administrator || 40
1.3.13.4 Block
Block adalah bagian terkecil dari sebuah extent. Operasi yang berlaku pada block adalah
DEALLOCATE.
Bandingkan dengan code imaginer untuk melihat keterkaitan hirarki database secara logis;
CREATE TABLE SEGMENT Departemen
(DeptId NUMBER(4),
DeptName VARCHAR2(40))
TABLESPACE tables
EXTENT (INITIAL 10K NEXT 10K PCTINCREASE 0 MAX 256);
Terlihat adanya keterkaitan hirarki tablespace segment extent dalam penulisan kode di
atas, dimana membuat segment (bertipe table) dengan nama Departemen, pada tablespace
bernama tables, dengan initial extent 10Kb, next 10Kb dan maksimum dari extent sebanyak
256.
Sintaks storage extent di dalam tablespace umumnya harus didahului dengan kata kunci
DEFAULT. Perhatikan contoh berikut ini:
CREATE TABLESPACE Tables
DATAFILE ‘C:\ORACLE\ORADATA\DTPOS\TABLES01.DBF’
SIZE 5M AUTOEXTEND ON NEXT 5M MAXSIZE 2040M
DEFAULT STORAGE (INITIAL 10K NEXT 10K PCTINCREASE 0
MAXEXTENTS UNLIMITED);
Database Administrator || 42
[CONSTRAINT constraint_name FOREIGN KEY FK_field_name] |
[CONSTRAINT constraint_name CHECK expr_logic]
)
[ORGANIZATION INDEX]
[TABLESPACE tablespace_name]
[STORAGE [MINEXTENTS number] |
[MAXEXTENTS number] |
[INITIAL number] |
[NEXT number] |
[PCTINCREASE number]]
[PCTFREE number | PCTUSED number];
Database Administrator || 43
CONSTRAINT PK_IOT_PESANAN PRIMARY KEY (KodePesanan),
CONSTRAINT C_IOT_PESANAN CHECK (BrgDiterima IN (‘N’,’Y’)) )
ORGANIZATION INDEX
TABLESPACE indexes
PCTTHRESHOLD 20
OVERFLOW TABLESPACE tables;
Hasilnya adalah :
SEGMENT_NAME SEGMENT_TYPE TABLESPACE_NAME
------------------------ -------------------- ----------------
SYS_IOT_OVER_5251 TABLE TABLES
PK_IOT_PESANAN INDEX INDEXES
Perhatikan terdapat satu tabel dengan nama yang system-defined (tidak didefinisikan oleh
user) [SYS_IOT_OVER_5251] dan ada satu index yang namanya berasal dari nama constraint
yang didefinisikan oleh user. Kemudian cobalah sintaks berikut ini dan kemudian perhatikan
hasil yang muncul.
SELECT table_name, tablespace_name From user_tables;
Hasilnya adalah :
TABLE_NAME TABLESPACE_NAME
------------------------------ --------------------------
IOT_PESANAN
SYS_IOT_OVER_5251 TABLES
Hasilnya adalah :
Database Administrator || 44
INDEX_NAME TABLESPACE_NAME
------------------------------ ------------------------------
PK_IOT_PESANAN INDEXES
Terlihat bahwa ada tabel tambahan bernama [SYS_IOT_OVER_5251] dan justru tabel yang
system-defined inilah yang jelas tablespace-nya (TABLES). IOT_PESANAN sendiri tidak
terdefinisi tablespace-nya. Segment yang juga terdefinisi tablespace-nya adalah
PK_IOT_PESANAN yang bertipe index. Dari sini terlihat bahwa IOT memang secara storage
(segment) merupakan sebuah index, namun sebagai ‘object’ dapat dioperasikan sebagai table
(dengan operasi SELECT, UPDATE, DELETE, INSERT).
Drop hanya bisa dilakukan per satu tabel. Membuang satu segment (table) berarti membuang
semua extent milik segment tersebut dari data files. Membuang suatu tabel juga berarti
membuang semua objek yang bergantung kepadanya. Cascade Constraints digunakan jika
tabel yang akan dibuang adalah Master-Table, dimana tabel ini diacu oleh tabel lain. Tanpa
sintaks ini, suatu Master-Table akan gagal untuk dihapus.
Database Administrator || 45
Partitioning table pada Oracle adalah berguna untuk memisahkan kelompok data yang dibuat
sesuai dengan keinginan. Adapun beberapa macam partitioning table yang terdapat pada
Oracle adalah sebagai berikut:
a) Range Partitioning
Umumnya partisi ini digunakan untuk memisahkan data menurut tanggal.
b) List Partitioning
Umumnya partisi ini digunakan untuk memisahkan data menurut tipe data yang
diinginkan.
c) Hash Partitioning
Partisi yang dibangun menggunakan Hashing.
d) Composite Partitioning
Gabungan dari Partisi yang ada di atas.
Untuk melihat hasil partition yang dibangun gunakan sintaks berikut ini :
SQL> SELECT TABLE_NAME, PARTITION_NAME, SUBPARTITION_COUNT FROM
USER_TAB_PARTITIONS;
Database Administrator || 46
-------------------- ------------------------- ------------------
CUST_ORDER ORDERS_2002 0
CUST_ORDER ORDERS_2003 0
CUST_ORDER ORDERS_2004 0
Untuk melihat nilai partisi yang telah dibangun, gunakan sintaks berikut ini:
SQL> SELECT TABLE_NAME, HIGH_VALUE, PARTITION_NAME FROM
USER_TAB_PARTITIONS;
Database Administrator || 47
tot_sales NUMBER(9,2) NOT NULL)
PARTITION BY LIST (state_cd)
(PARTITION sales_newengland VALUES ('CT','RI','MA','NH','ME','VT'),
PARTITION sales_northwest VALUES ('OR','WA','MT','ID','WY','AK'),
PARTITION sales_southwest VALUES ('NV','UT','AZ','NM','CO','HI'),
PARTITION sales_southeast VALUES ('FL','GA','AL','SC','NC','TN','WV'),
PARTITION sales_east VALUES ('PA','NY','NJ','MD','DE','VA','KY','OH'),
PARTITION sales_california VALUES ('CA'),
PARTITION sales_south VALUES ('TX','OK','LA','AR','MS'),
PARTITION sales_midwest VALUES ('ND','SD','NE','KS','MN','WI','IA',
'IL','IN','MI','MO')
);
Database Administrator || 48
(SUBPARTITION orders_2003_s1,
SUBPARTITION orders_2003_s2,
SUBPARTITION orders_2003_s3,
SUBPARTITION orders_2003_s4),
PARTITION orders_2004
VALUES LESS THAN (TO_DATE('01-JAN-2005','DD-MON-YYYY'))
(SUBPARTITION orders_2004_s1,
SUBPARTITION orders_2004_s2,
SUBPARTITION orders_2004_s3,
SUBPARTITION orders_2004_s4));
Untuk melihat hasil partition yang dibangun gunakan sintaks berikut ini:
SQL> SELECT TABLE_NAME, PARTITION_NAME,SUBPARTITION_COUNT FROM
USER_TAB_PARTITIONS;
Database Administrator || 49
Berikut ini adalah contoh untuk menghapus partisi yang telah dibuat
ALTER TABLE cust_order
DROP PARTITION order_thn_2005;
Database Administrator || 50
[TABLESPACE tablespace_name];
Index juga akan dihapus secara otomatis jika tabel asalnya dihapus.
Database Administrator || 51
SQL> connect
Enter user-name: admin
Enter password: ***
5. Rancanglah sebuah Sistem Informasi Reservasi Hotel, dengan kriteria sebagai berikut:
a) Hotel memiliki kamar-kamar yang mempunyai tipe yang berbeda-beda,
contoh : Kamar nomor 101 s/d 110 adalah kamar dengan tipe Deluxe,
Kamar nomor 201 s/d 210 adalah kamar dengan tipe VIP
b) Masing-masing Tipe Kamar memiliki fasilitas yang berbeda-beda
c) Hotel memiliki fasilitas Restaurant, Laundry dan Drug Store
d) Harga kamar ditentukan pada saat Reservasi (Pemesanan)
e) Pemesanan Kamar yang dilakukan oleh Pelanggan Baru tidak mendapatkan diskon
harga kamar, sedangkan untuk pelanggan lama mendapatkan diskon 10 Persen dari
harga yang telah ditentukan.
f) Kamar yang mempunyai status ‘AVAILABLE’ saja yang dapat dipesan oleh seorang
pelanggan untuk hari tertentu. Setelah kamar tersebut dipesan, status ‘AVAILABLE’
berubah status menjadi ‘BOOKED’. Status ‘BOOKED’ berubah menjadi status
‘AVAILABLE’ jika pelanggan membatalkan Reservasi.
6. Gunakan CONSTRAINT untuk membangun database yang ada.
7. Buatlah TRIGGER untuk menggantikan status kamar dari ‘AVAILABLE’ menjadi
‘BOOKED’ dan sebaliknya.
8. Coba isi tabel yang anda buat tersebut.
Database Administrator || 52
a) Index Cluster
b) Hash Cluster
Dimana secara umum kedua jenis cluster ini mempunyai persamaan.
Kemudian kita lihat segment yang telah terbentuk pada USER_CLUSTERS dan
USER_SEGMENTS,
SQL> SELECT CLUSTER_NAME, TABLESPACE_NAME FROM USER_CLUSTERS;
CLUSTER_NAME TABLESPACE_NAME
------------------------------ ------------------------------
CLS_NPM TABLES
Database Administrator || 53
Kemudian buatlah sebuah tabel MAHASISWA yang mengacu kepada cluster yang telah
dibuat tadi. Adapun sintaks penulisannya adalah sebagai berikut:
CREATE TABLE Mahasiswa
(NPM CHAR(7) NOT NULL,
Nama VARCHAR(20),
Alamat VARCHAR(30),
CONSTRAINT PK_Mahasiswa PRIMARY KEY (NPM)
)
CLUSTER Cls_NPM (NPM);
Kemudian cobalah mengisi table tersebut dengan sebuah data berikut ini
SQL> INSERT INTO Mahasiswa
2 VALUES ('0101001','Joni','Jl. Riau No.11');
INSERT INTO Mahasiswa
*
ERROR at line 1:
ORA-02032: clustered tables cannot be used before the cluster index
is built
Database Administrator || 54
Cek USER_SEGMENTS yang telah terbentuk
SQL> SELECT SEGMENT_NAME, SEGMENT_TYPE FROM USER_SEGMENTS;
SEGMENT_NAME SEGMENT_TYPE
----------------------------------- ------------------
CLS_NPM CLUSTER
PK_MAHASISWA INDEX
CLS_NPM_INDEX INDEX
Kemudian cobalah membuat sebuah table ANGSURAN yang memiliki constraint ke table
MAHASISWA akan tetapi tidak memiliki hubungan ke cluster CLS_NPM.
CREATE TABLE Angsuran(
NPM CHAR(7) NOT NULL,
Angsuran_Ke NUMBER,
Jumlah NUMBER,
CONSTRAINT pk_Angsuran PRIMARY KEY (NPM,Angsuran_Ke),
CONSTRAINT fk_Angsuran_Mahasiswa FOREIGN KEY (NPM) REFERENCES
Mahasiswa (NPM));
Selanjutnya buatlah sebuah table NILAI yang memiliki hubungan constraint ke table
MAHASISWA dan memiliki hubungan ke cluster CLS_NPM.
CREATE TABLE Nilai(
NPM CHAR(7) NOT NULL,
KodeMK CHAR(7) NOT NULL,
UTS NUMBER,
UAS NUMBER)
CLUSTER Cls_NPM(NPM);
Untuk mengecek tabel yang telah dibuat apakah memiliki hubungan dengan cluster yang telah
dibangun, lakukan perintah berikut ini.
Database Administrator || 55
SQL> SELECT * FROM USER_CLU_COLUMNS;
CLUSTER_NAME CLU_COLUMN_NAME TABLE_NAME TAB_COLUMN_NAME
-------------- ----------------- ------------ -------
CLS_NPM NPM MAHASISWA NPM
CLS_NPM NPM NILAI NPM
Terlihat bahwa table ANGSURAN tidak muncul karena tabel yang dibuat tidak memiliki
hubungan dengan cluster yang ada.
Database Administrator || 56
system privilege tersebut sangat powerfull sehingga diperlukan pembatasan dalam
penggunaannya. Oracle merekomendasikan agar administrator melakukan konfigurasi agar
system privilege ini tidak bisa diakses oleh user sembarang (non-DBA) misalnya untuk
perintah ANY seperti UPDATE ANY TABLE pada data dictionary. Untuk meyakinkan
agar data dictionary aman, pastikan 07_DCTIONARY_ACCESSIBILITY pada inisial
parameter dalam kondisi FALSE, langkah ini disebut dengan mekanisme proteksi
dictionary.
b. Object Privilege
Setiap tipe objek memiliki privilege yang berbeda-beda. Administrator dapat menentukan
ALL [PRIVILEGES] GRANT/REVOKE yang tersedia bagi setiap objek. Namun ALL
bukan jalan pintas dalam menentukan privilege, baik GRANT ALL atau REVOKE ALL
karena akan berdampak kepada privilege objek tersebut, misal jika kita berikan seorang
user dengan grant ALL maka apa bedanya dengan administrator, atau jika melakukan
REVOKE ALL juga akan berdampak kepada integritas dan reference pada saat grant dan
relasinya dibuat.
c. User Role
User Role adalah sekumpulan database user yang memiliki privilege dengan kebutuhan
yang sama. Administrator dapay mengatur user privilege dengan memberikan grant yang
sesuai untuk keamanan aplikasi dan memberikan gran kepada user yang sesuai.
Database Administrator || 57
User diperlukan untuk mengendalikan hak-hak dan akses dari pengguna sebuah sistem atau
sebuah database. Operasi-operasi yang berlaku pada user, adalah:
a) CREATE USER.
b) ALTER USER.
c) DROP USER.
Berikut ini adalah contoh untuk mengubah agar user tidak dapat mengakses tablespace
POLTEK.
ALTER USER Joni
QUOTA 0M ON POLTEK;
Database Administrator || 58
1.3.28.4 PROFILE
Profile adalah sebuah named-sets batasan resource dan password. Penggunaan batasan pada
sebuah user dimaksudkan agar mencegah user untuk melakukan aktifitas yang menghabiskan
banyak resource dan memudahkan pemberian batas kepada sekelompok pengguna, misalnya
waktu session untuk sebuah user. Batasan resource dan pasword ini mencakup antara lain:
1) Waktu Session,
2) Operasi I/O,
3) Waktu Idle,
4) Lama Koneksi,
5) Memori,
6) Concurrent Sessions,
7) Rentang Waktu Password (Time Limit Password),
8) Password History,
9) Kompleksitas Password,
10) Locking User.
Setiap database dalam Oracle memiliki satu profile default yang umumnya bernama
DEFAULT. Setiap user yang telah dibuat jika tidak dispesifikasikan profile-nya, secara
otomatis akan di-assign ke profile DEFAULT
Database Administrator || 59
Dimana : MAX_VALUE dan MAX_BYTES diisi dengan nilai atau UNLIMITED atau
DEFAULT
Kemudian masukkan profile tersebut kedalam user yang ada, lihat contoh berikut ini :
ALTER USER Administrator
PROFILE Develop;
Cek profile user yang telah disetting tadi dengan contoh berikut ini:
SQL> SELECT USERNAME, PROFILE FROM DBA_USERS;
USERNAME PROFILE
------------------------------ ------------------------------
SYS DEFAULT
SYSTEM DEFAULT
DBSNMP DEFAULT
OUTLN DEFAULT
ADMINISTRATOR DEVELOP
Kesalahan tersebut diakibatkan user yang akan dihapus dalam keadaan terkoneksi, untuk itu
gunakan sintaks berikut ini :
SQL> DROP PROFILE Develop CASCADE;
Database Administrator || 60
Kemudian cek kembali profile user yang tersisa:
SQL> SELECT USERNAME, PROFILE FROM DBA_USERS;
USERNAME PROFILE
------------------------------ ------------------------
SYS DEFAULT
SYSTEM DEFAULT
DBSNMP DEFAULT
ADMINISTATOR DEFAULT
OUTLN DEFAULT
Berikut ini adalah profile DEFAULT yang secara otomatis ada dalam sebuah database
SQL> SELECT * FROM DBA_PROFILES;
PROFILE RESOURCE_NAME RESOURCE LIMIT
------------- --------------------------- -------- ----------
DEFAULT COMPOSITE_LIMIT KERNEL UNLIMITED
DEFAULT FAILED_LOGIN_ATTEMPTS PASSWORD UNLIMITED
DEFAULT SESSIONS_PER_USER KERNEL UNLIMITED
DEFAULT PASSWORD_LIFE_TIME PASSWORD UNLIMITED
DEFAULT CPU_PER_SESSION KERNEL UNLIMITED
DEFAULT PASSWORD_REUSE_TIME PASSWORD UNLIMITED
DEFAULT CPU_PER_CALL KERNEL UNLIMITED
DEFAULT PASSWORD_REUSE_MAX PASSWORD UNLIMITED
DEFAULT LOGICAL_READS_PER_SESSION KERNEL UNLIMITED
DEFAULT PASSWORD_VERIFY_FUNCTION PASSWORD NULL
DEFAULT LOGICAL_READS_PER_CALL KERNEL UNLIMITED
DEFAULT PASSWORD_LOCK_TIME PASSWORD UNLIMITED
DEFAULT IDLE_TIME KERNEL UNLIMITED
DEFAULT PASSWORD_GRACE_TIME PASSWORD UNLIMITED
DEFAULT CONNECT_TIME KERNEL UNLIMITED
DEFAULT PRIVATE_SGA KERNEL UNLIMITED
File : Init.ORA
# Cache and I/O
db_block_size=4096
db_cache_size=31457280
# Cursors and Library Cache
open_cursors=300
# Diagnostics and Statistics
background_dump_dest=c:\a\bdump
core_dump_dest=c:\a\cdump
timed_statistics=TRUE
user_dump_dest=c:\a\udump
# Distributed, Replication and Snapshot
db_domain=""
remote_login_passwordfile=EXCLUSIVE
# File Configuration
Database Administrator || 61
control_files=("c:\a\control01.ctl", "c:\a\control02.ctl")
# Miscellaneous
compatible=9.0.0
db_name=a
# Network Registration
instance_name=iaa
# Pools
java_pool_size=31457280
shared_pool_size=37748736
# Processes and Sessions
processes=150
# Redo Log and Recovery
fast_start_mttr_target=300
# Sort, Hash Joins, Bitmap Indexes
sort_area_size=524288
Database Administrator || 62
DAFTAR PUSTAKA
Database Administrator || 63
TEKNIK PENILAIAN
Teknik penilaian untuk kelulusan Matakuliah Basisdata Lanjut adalah sebagai berikut :
1. Rincian bobot nilai mata praktikum Rekayasa Perangkat Lunak adalah sebagai berikut :
a. Penilaian: 15%
Yang terdiri dari :
Tugas Rumah(TR) : 5%
Quiz: 10%
b. Laporan (LP) : 15%
Yang terdiri dari :
Laporan dan Tugas Besar: 15%
c. Absensi/Kehadiran(AK) : 0%, Tetapi Jika Alfa >= 4 kali = Nilai: E
d. UTS : 30%
e. UAS : 40%
2. Range nilai mata praktikum Rekayasa Perangkat Lunak adalah sebagai berikut :
85 Nilai 100 Grade : A
75 Nilai < 85 Grade : B
65 Nilai < 75 Grade : C
55 Nilai < 65 Grade : D
0 Nilai < 55 Grade : E
3. Mahasiswa dianggap LULUS jika nilai 65
Database Administrator || 64