Working with Data Objects

Data Objects :
1. Schema : kumpulan dari database object (table, view, index, application object).
Fungsi dari schema :
– Menyatakan indikasi kepemilikan objek dan relasi dengan aplikasi
– Secara logikal kelompok berkaitan dengan objek secara bersama
– Penggunaan schema : {schema_name}.{object_name}

2. Tables
Tipe data :

CLOB (Charcter Large Object) : biasa digunakan untuk menyimpan tulisan korea, jepang, mandarin
BLOB (Binary Large Object) : biasa digunakan untuk menyimpan gambar, video
DBCLOB (Double Byte Character Large Object)

3. User Defined Types
Digunakan untuk membuat tipe data sesuai dengan keinginan atau dibuat alias.
Contoh :
CREATE DISTINCT TYPE POUND AS INTEGER WITH COMPARISONS

CREATE DISTINCT TYPE KILOGRAM AS INTEGER
WITH COMPARISONS

CREATE TABLE person
(f_name varchar(30),
weight_p POUND NOT NULL,
weight_k KILOGRAM NOT NULL )

SELECT F_NAME FROM PERSON
WHERE weight_p > POUND(30)

Contoh diatas ialah membuat weight_p menjadi alias POUND dan weight_k menjadi alias KILOGRAM.

4. Null Values
Menunjukkan bahwa sebuah atribut tidak memiliki data apapun.
Contoh penggunaan :
CREATE TABLE Staff (
ID SMALLINT NOT NULL, NAME VARCHAR(9) ,
DEPT SMALLINT not null with default 10,
JOB CHAR(5) ,
YEARS SMALLINT ,
SALARY DECIMAL(7,2) ,
COMM DECIMAL(7,2) with default 15
)

5. System Catalog Tables
– Setiap database memiliki system catalog table masing-masing
– Meta data ini menyimpang objek database
– Dapat meng-query table ini sama dengan table lainnya
– Berada dalam tiga schema :
* SYSIBM : base table, dioptimalkan untuk DB2
* SYSCAT : dilihat berdasar table SYSIBM, dioptimalkan untuk kemudahan penggunaan
* SYSSTAT : database statistik
– Contoh :
SYSCAT.TABLES
SYSCAT.INDEXES
SYSCAT.COLUMNS

6. Sequence Objects
Digunakan untuk automatic values, increment dan decrement.

Syntax :
CREATE SEQUENCE {nama sequence}
START WITH {value}
MAX VALUE {value} //unlimit, klo ngga disetting juga ok
[ INCREMENT/DECREMENT ] BY {value}
[ NO CYCLE/CYCLE ]

Contoh :
CREATE SEQUENCE myseq
START WITH 1
MAX VALUE 100
INCREMENT BY 2
NO CYCLE

Cara penggunaan :
– Currval (nilai sekarang) : 1
– Nextval (nilai selanjutnya) : 3
– Preval (nilai sebelumnya) : 1

INSERT INTO TABLE VALUES(nextval from myseq)
DROP sequence myseq

7. Views
Fungsi untuk efisiensi
Data untuk View tidak disimpan terpisah
Mendukung query bersarang
Contoh :
Connect to sample
CREATE VIEW myview1
AS SELECT name,phone,email
FROM employee

SELECT * FROM myview1

8. Indexes
Fungsinya untuk clustering (pengelompokan), jadi akan lebih cepat dalam proses searching.
Karakteristik indexes :
– Ascending dan descending
– Unik dan non unik
– Compound
– Berkelompok