Tutorial 6 - IBMDB2

Working With Data Objects


Schema
  • Schemas adalah name spaces untuk koleksi objek database.
  • Schemas digunakan terutama untuk :
-  Menyediakan indikasi kepemilikan objek atau hubungan objek ke aplikasi.
-   Secara logikal grup objek yang berhubungan bersama-sama.
  • Semua objek database menjadi milik schemas dan dikualifikasikan dengan 2 bagian nama:
  • <nama schema >.<nama_objek >
-  Nama objek yang dikualifikasi secara penuh harus unik.
-  Ketika anda menghubungkan ke database dan membuat atau referensi objek tanpa menspesifikasikan schema, DB2 menggunakan user ID anda untuk terhubung ke database dengan untuk nama schema.

Declared Temporary Tables
  • Dibuat dan digunakan oleh aplikasi dan dihapus secara otomatis ketika aplikasi berhenti.
  • Hanya bisa diakses oleh aplikasi yang membuat tabel
  • Tidak ada entry yang masuk dalam tabel katalog manapun.
  • Logging : NOT LOGGED adalah optional klausa
  • Pembersihan secara Otomatis
  • Performa
ƒ        Menghindari catalog contention
ƒ        Tidak ada penguncian baris
ƒ        Tidak ada logging (tetapi logging itu opsional)
ƒ        Tidak ada pengecekan authoritas
  • Mendukung Indeks : Standard indeks apapun yang bisa dibuat dalam tabel sementara.
  • Mendukung statistik (RUNSTATS didukung menghadapi tabel)
ƒ        Tabel sementara yang telah dideklarasi bertempat dalam tablespace sementara user yang harus didefinisikan sebagai prioritas membuat tabel sementara yang telah dideklarasi.
Tabel sementara ada hanya untuk satu koneksi.Oleh karena itu, tidak ada concurrency atau isu penguncian.

Identity Columns
  • Kolom numerik dalam tabel dimana secara otomatis mengenerate nilai numerik untuk setiap baris yang diisi.
  • Satu kolom identitas setiap maksimum tabel
  • Nilai dapat digenerated oleh DB2 atau dari sananya.
ƒ        Generated always
         Nilai selalu digenerated oleh DB2
         Applikasi tidak diizinkan untuk memberi nilai eksplisit.
ƒ        Generated by default
         Nilai dapat secara eksplisit diberi oleh aplikasi atau jika tidak ada nilai yang diberikan, lalu DB2 mengenerate satu 
         DB2 tidak dapat menjamin keunikan
         Dimaksudkan untuk propagasi data, unload/reload tabel.

SEQUENCE objects
Sequence adalah objek database yang mengizinkan generation otomatis dari nilai.Tidak seperti kolom identitas, objek ini tidak tergantung pada tabel apapun-objek sequence yang sama dapat digunakan melewati  database lain.
Untuk membuat sequence, gunakan perintah CREATE SEQUENCE

CREATE SEQUENCE myseq AS INTEGER
       START WITH 1 INCREMENT BY 1
       NO MAXVALUE
       NO CYCLE
       CACHE 5

Perintah pertama membuat sequence bernama myseq dengan tipe integer.Dimulai dengan 1 dan bertambah 1 setiap dibuat untuk nilai berikutnya.
Klausa NO MAXVALUE mengindikasikan tidak adanya nilai maksimum eksplisit dimana sequence akan berhenti.Oleh karena itu, klausa ini akan dibatasi oleh tipe data integer.
 Klausa NO CYCLE mengindikasikan sequence tidak akan dimulai dari awal ketika batasan telah tercapai
CACHE 5 mengindikasikan 5 angka sequence yang akan dicache di memori, dan angka ke enam dalam sequence akan disimpan dalam tabel katalog.Angka sequence dicache dalam memori untuk alasan performa.Selain itu,DB2 membutuhkan akses ke tabel katalog secara konstan untuk mengambil nilai berikutnya dalam baris.Apa yang akan terjadi jika komputer anda crash dan nilai berikutnya dalam cache adalah 5,6,7,8,dan 9?Angka itu akan hilang, dan dalam waktu berikutnya DB2 membutuhkan untuk mengambil angka, DB2 akan mengambil angka dari tabel katalog. Contoh, 10 adalah angka berikut yang digenerated.Jika anda menggunakan angka sequence untuk generate identifier unik, dimana harus dalam sequence dengan tidak ada gap yang diizinkan, ini tidak akan bekerja.Anda harus menggunakan klausa NO CACHE untuk menjamin secara sequensial angka generated dengan tidak ada gap, tetapi anda harus membayar biaya performa.
Untuk nilai sequence, anda dapat menggunakan tipe data numerik exact dengan skala 0, termasuk SMALLINT, INTEGER, BIGINT, and DECIMAL.Tambahan, tipe distinct yang didefinisikan user berdasarkan pada tipe data yang dapat menyimpan nilai sequence

Views
  • Data untuk view tidak disimpan secara terpisah dan Nested view didukung
View adalah tabel virtual yang berdasarkan dari satu atau banyak tabel atau view lain.Ini virtual karena view tidak mempunyai data apapun, tapi definisi dari tabel berdasarkan hasil dari perintah SELECT.View tidak memerlukan untuk mengandung semua kolom dari tabel dasar.Kolomnya tidak perlu mempunyai nama yang sama seperti tabel dasar.Anda dapat menggunakan view untuk menyembunyikan informasi penting dari pengguna.

Indexes
Indexes adalah objek database yang dibangun berdasarkan satu atau banyak kolom dari tabel.Mereka digunakan untuk dua alasan utama :
- Untuk meningkatkan performa query : Indexes dapat digunakan untuk akses data lebih cepat menggunakan akses langsung ke baris berdasarkan nilai kunci indeks.
-Untuk menjamin keunikan ketika mereka didefinisikan sebagai indeks yang unik.
Clustering indeks dibuat sehingga halaman indeks secara fisik memetakan halaman data.Ini adalah, semua record yang mempunyai kunci indeks yang sama adalah dekat secara fisik bersama.Beberapa info yang berkaitan untuk clustering indexes :
-Cluster ratio – tingkatan data clustering indeks.Persentasi dari0-100. Clustering lebih tinggi bearti baris yang diurutkan dalam halaman data dalam urutan kunci indeks
- Cluster factor – lebih banyak detail pengukuran daripada rasio cluster

Karakteristik Indeks
ƒ        ascending atau descending
ƒ        Unik atau tidak unik
ƒ        compound
ƒ        cluster
ƒ        bi-directional (default behavior))

Peraturan Referential Integrity
  • Peraturan dalam Insert
ƒ        Peraturan itu implisit ketika foreign key dispesifikasikan.
ƒ        backout insert jika tidak ditemukan.
  • Peraturan dalam Delete
ƒ        Restrict  : Baris pada parent tidak akan dihapus jika ada baris yang tergantung ditemukan.
ƒ        Cascade :Menghapus baris dalam tabel parent secara otomatis menghapus semua baris yang berhubungan dalam tabel yang bergantung padanya.
ƒ        No Action (default) : Memaksa kedatangan baris parent untuk semua child setelah semua batasan referensial lain diaplikasikan.
ƒ        Set Null : Field foreign key di atur menjadi null; Kolom lain tetap tidak diubah

Comments