Senin, 08 November 2010

Pert 5

DATA BASE

Basis data (bahasa Inggris: database), atau sering pula dieja basisdata, adalah kumpulan informasi yang disimpan di dalam komputer secara sistematik sehingga dapat diperiksa menggunakan suatu program komputer untuk memperoleh informasi dari basis data tersebut. Perangkat lunak yang digunakan untuk mengelola dan memanggil kueri (query) basis data disebut sistem manajemen basis data (database management system, DBMS). Sistem basis data dipelajari dalam ilmu informasi.
Istilah “basis data” berawal dari ilmu komputer. Meskipun kemudian artinya semakin luas, memasukkan hal-hal di luar bidang elektronika, artikel ini mengenai basis data komputer. Catatan yang mirip dengan basis data sebenarnya sudah ada sebelum revolusi industri yaitu dalam bentuk buku besar, kuitansi dan kumpulan data yang berhubungan dengan bisnis.
Konsep dasar dari basis data adalah kumpulan dari catatan-catatan, atau potongan dari pengetahuan. Sebuah basis data memiliki penjelasan terstruktur dari jenis fakta yang tersimpan di dalamnya: penjelasan ini disebut skema. Skema menggambarkan obyek yang diwakili suatu basis data, dan hubungan di antara obyek tersebut. Ada banyak cara untuk mengorganisasi skema, atau memodelkan struktur basis data: ini dikenal sebagai model basis data atau model data. Model yang umum digunakan sekarang adalah model relasional, yang menurut istilah layman mewakili semua informasi dalam bentuk tabel-tabel yang saling berhubungan dimana setiap tabel terdiri dari baris dan kolom (definisi yang sebenarnya menggunakan terminologi matematika). Dalam model ini, hubungan antar tabel diwakili denga menggunakan nilai yang sama antar tabel. Model yang lain seperti model hierarkis dan model jaringan menggunakan cara yang lebih eksplisit untuk mewakili hubungan antar tabel.
Istilah basis data mengacu pada koleksi dari data-data yang saling berhubungan, dan perangkat lunaknya seharusnya mengacu sebagai sistem manajemen basis data (database management system/DBMS). Jika konteksnya sudah jelas, banyak administrator dan programer menggunakan istilah basis data untuk kedua arti tersebut.

 Database Oracle

Oracle merupakan software database yang banyak dipakai di perusahaan besar di seluruh dunia saat ini. Software ini juga banyak diminati oleh para konsultas pembuat aplikasi yang berkaitan dengan database. Sistem keamanannya yang handal membuat para professional yang berkecimpung dalam dunia database lebih memilih oracle sebagai perangkat untuk menunjang kegiatan bisnis mereka.
Disamping sistem security yang handal, Oracle merupakan software database yang bisa menampung serta mengelola data dengan kapasitas yang sangat besar serta dapat mengaksesnya dengan sangat cepat pula. Sintaks SQL nya yang hampir seluruhnya telah memenuhi standart ANSI-92 lebih memudahkan para programmer database dalam membangun aplikasi baik dari sisi ‘back end’ maupun dari sisi ‘front end’. Demikian pula bagi administrator yang berkecimpung dalam menangani administrasi database serta bertanggung jawab terhadap keamanan database akan merasa diuntungkan serta dimudahkan dengan software Oracle yang lebih ‘establish’ ini.
Oracle telah menyediakan fitur untuk mempartisi tabel, yang berfungsi agar tabel dapat dibagi menjadi beberapa kriteria, contohnya kita mempunyai tabel suplier, tabel customer, dll, guna dari partitioned table ini agar dapat memanajemen database yang berukuran besar, sehingga menjadi database yang lebih terstruktur. Fitur lain yang dimiliki oleh oracle adalah index. Secara umum, index digunakan untuk mempercepat perncarian data didalam tabel database relasional.

Dari suatu data yang besar, dipecah-pecah lagi per-bagian berdasarkan kriteria-kriteria tertentu. Pada gambar di atas, dari suatu data dibagi berdasarkan bulan.
Manfaat lain dari partitioning adalah tiap-tiap segment (partisi atau subpartisi) bisa ditaruh di tablespace yang berbeda, sehingga kita mendapat manfaat dari spreading (menyebar) tablespace, yaitu penyebaran I/O dan mengurangi resiko loss data karena tablespace corrupt.
Ada 3 metode utama partisi:
  1. Range partition
    Range partition adalah pembagian suatu tabel ke dalam beberapa bagian berdasarkan range (rentang) nilai tertentu. Range partition ini cocok digunakan pada kolom yang memiliki distribusi nilai yang merata.
  2. List partition
    Konsep pada list partition adalah data dikelompokkan berdasarkan nilai datanya. Cocok untuk kolom yang variasi nilainya tidak banyak. Misal data kota berdasarkan wilayah provinsi. List: Jember, Malang, Surabaya pada partisi Jawa Timur; Bandung, Cirebon pada partisi Jawa Barat. Jadi list partition ini berdasarkan list dari suatu segmen, sehingga data-datanya di list terlebih dahulu.
  3. Hash partition
    Penggunaan hash partition ini jika tidak cocok dengan RANGE ataupun LIST Partition. Penentuan “nilai mana di taruh di partisi mana” itu diatur secara internal oleh Oracle (berdasarkan hash value). Kenapa harus memaksakan memakai partisi sementara tidak cocok dengan RANGE ataupun LIST? Jika ingin mendapat manfaat dari filosofi PARTITIONING yang sebenarnya di mana data disebar ke segment-segment yang berbeda.
Dan 2 metode composite (gabungan):
  1. Composite range-list partition
    Konsep composite range-list partition ini menggabungkan partisi range dan list. Jika pada tabel mahasiswa, NIM dipartisi secara range, sedangkan untuk mendapatkan NIM sekian yang tinggal di wilayah provinsi Jawa Timur itu apa saja, maka menggunakan list. Jadi dipartisi kemudian di list berdasarkan kriteria tertentu.
  2. Composite range-hash partition
    Composite range-hash partition merupakan konsep menggabungkan range partition dan hash partition. Sehingga partisi-partisi yang telah dibuat berdasarkan range/rentang akan dipartisi lagi ke dalam beberapa bagian berdasarkan hash. 
 








KONSEP DATABASE DAN RDBMS
Relasional Database dan RDBMS

Sebelum membahas berbagai jenis perintah SQL akan lebih baik kalau kita bicara tentang Relational Database dan Relational Database Management System atau biasa di kenal dengan RDBMS.
Relational Database sebenarnya adalah salah satu konsep penyimpanan data, sebelum konsep database relasional muncul sebenarnya sudah ada dua model database yaitu Network Database dan Hierarchie Database. Dalam database relasional, data disimpan dalam bentuk relasi atau tabel dua dimensi, dan antar tabel satu dengan tabel lainnya terdapat hubungan atau relationship, sehingga sering kita baca diberbagai literatur, database didefinisikan sebagai “kumpulan dari sejumlah tabel yang saling hubungan atau keterkaitan”. Nah, kumpulan dari data yang diorganisasikan sebagai tabel tadi disimpan dalam bentuk data elektronik di dalam hardisk komputer. Untuk membuat struktur tabel, mengisi data ke tabel, mengubah data jika diperlukan dan menghapus data dari tabel diperlukan software. Software yang digunakan membuat tabel, isi data, ubah data dan hapus data disebut Relational Database Management System atau dikenal dengan singkatan RDBMS sedangkan perintah yang digunakan untuk membuat tabel, isi, ubah dan hapus data disebut perintah SQL yang merupakan singkatan dari Structure Query Language. Jadi, setiap software RDBMS pasti bisa digunakan untuk menjalankan perintah SQL.
Sebenarnya fungsi RDBMS bukan cuma buat tabel, isi data, ubah dan hapus data, untuk manajemen data dalam skala besar dan agar bisa mendukung proses bisnis yang kontinyu dan real time suatu RDBMS dituntut untuk mempunyai kemampuan manajemen user dan keamanan data, backup dan recovery data serta kemampuan lainnya yang berkaitan dengan kecepatan pemrosesan data (performance).
Salah satu software RDBMS yang ada dipasaran saat ini dan cukup banyak digunakan adalah Oracle Database.

Berinteraksi dengan Database Oracle
Untuk mengakses data yang ada di database digunakan perintah SQL, perintah-perintah SQL ini ditulis atau diinput dengan tools yang sudah disediakan oleh Oracle yaitu SQL*PLus, iSQL*Plus dan SQL Developer. Perintah SQL dikelompokkan berdasarkan fungsinya sebagai berikut:
  1. Perintah untuk pendefinisian/pembuatan objek (Data Definition Language / DDL)
  • CREATE
  • ALTER
  • RENAME
  • DROP
  • TRUNCATE
       2.  Perintah untuk menampilkan data (Data Retrieval)
  • SELECT
     3.  Perintah untuk memanipulasi data (Data Manipulation Language /DML) 
  • INSERT
  • UPDATE
  • DELETE
  • MERGE
     4.  Perintah untuk mengontrol transaksi (Transaction Control Language /TCL)
  • COMMIT
  • ROLLBACK
  • SAVEPOINT
     5.  Perintah untuk mengatur wewenang atau privilege ( Data Control Language /DCL)
  • GRANT
  • REVOKE

User dan Schema Database 
Konsep user
Setiap orang yang akan mengakses ke suatu database Oracle harus memiliki database user account atau biasa dikenal dengan user name. Pada database Oracle, user ada didalam database artinya user merupakan bagian dari suatu database. Berbeda dengan konsep user yang ada di database lain seperti MySQL atau SQL Server 2000, pada kedua database tersebut user ada diluar database. Ilustrasi perbedaan konsep user antara database Oracle dengan database MySQL atau SQL Server 2000 bisa dilihat pada gambar berikut:
 
 
Jadi agar user bisa mengakses ke database database dibuat dulu user account-nya. User yang berhak membuat user account adalah user SYS atau user SYSTEM. User SYS dan SYSTEM adalah user yang sudah ada di dalam database dan mempunyai wewenang untuk melakukan administrasi database. User SYS dan SYSTEM dibuat bersamaan dengan proses membuat database. Jadi begitu anda selesai membuat database atomatis sudah ada user SYS dan SYSTEM.

Membuat User 
Ingat, tadi sudah disebutkan bahwa yang berhak untuk membuat user adalah user SYS atau SYSTEM atau user yang sudah diberi privilege untuk CREATE USER (tentang privilige akan dibahas tersendiri). Lakukan koneksi ke database sebagai user SYS. 

 
atau pada prompt SQL> ketik :
SQL> connect / as sysdba
Connected.
SQL>
2. Buat user BUDI dengan password ORACLE
SQL> CREATE USER budi
2 IDENTIFIED BY oracle
3 DEFAULT TABLESPACE users
4 QUOTA 10 M ON users;
3. Beri ijin user BUDI untuk login ke database, buat tabel dan buat index
SQL> GRANT CREATE SESSION,
2 CREATE TABLE,
3 CREATE INDEXTYPE
4 TO BUDI;
4. Lakukan koneksi ke database menggunakan user account BUDI
SQL> CONNECT budi
Enter password: ******
Connected.
SQL> show user
USER is “BUDI”

Membuat Tabel dan Mendefinisikan Constraint
Prasyarat :
  • Instalasi Software Oracle database sudah berhasil
  • Anda sudah membuat database Oracle
  • Sebaiknya anda baca Materi tentang User dan Schema
Membuat Tabel
Untuk belajar membuat tabel perhatikan struktur tabel di bawah ini :

Login sebagai user BUDI. (Catatatan: user BUDI sudah dibuat pada bahasan Materi tentang User dan Schema).
SQL> CONNECT budi
Enter password: ******
Connected.
Buat tabel PEGAWAI dan BAGIAN
SQL> CREATE TABLE PEGAWAI
2 (NIP NUMBER(4),
3 NAMA VARCHAR2(15),
4 JK CHAR(1),
5 EMAIL VARCHAR2(20),
6 GAJI NUMBER(10),
7 KODE_BAG NUMBER(2));
SQL> CREATE TABLE BAGIAN
2 (KODE NUMBER(2),
3 NAMA_BAGIAN VARCHAR2(20))

Mendefinisikan Constraint
Constraint adalah batasan atau ketentuan yang diterapkan di tabel untuk menjaga konsistensi dan integritas data. Ada 5 jenis constraint di Oracle, yaitu :
  • Primary Key
  • Unique
  • Not Null
  • Check
  • Foreign Key
Penggunaan dan cara mendefinisikan constraint adalah sebagai berikut:
Primary key
Defenisikan kolom NIP pada tabel PEGAWAI sebagai primary key.
SQL> ALTER TABLE PEGAWAI
2 ADD CONSTRAINT PK_PEGAWAI PRIMARY KEY (nip);
Defenisikan kolom KODE pada tabel BAGIAN sebagai primary key.
SQL> ALTER TABLE BAGIAN
2 ADD CONSTRAINT PK_BAGIAN PRIMARY KEY (kode);
Not Null
Definisikan kolom NAMA pada tabel PEGAWAI harus selalu diisi (Not Null)
SQL> ALTER TABLE PEGAWAI
2 MODIFY nama NOT NULL;

Check
Definisikan kolom JK (jenis kelamin) pada tabel PEGAWAI hanya boleh diisi oleh ‘L’ dan ‘P’
SQL> ALTER TABLE PEGAWAI
2 ADD CONSTRAINT ck_jk CHECK (JK IN (’L’,’P’));

Pastikan kolom GAJI pada tabel PEGAWAI minimal 1000000
SQL> ALTER TABLE PEGAWAI
2 ADD CONSTRAINT ck_gaji_1jt CHECK (GAJI >= 1000000);

Unique

        Pastikan data untuk kolom EMAIL pada tabel PEGAWAI tidak boleh ada yang sama (Unique)

SQL> ALTER TABLE PEGAWAI
2 ADD CONSTRAINT UQ_EMAIL UNIQUE(email);

Foreign Key
Definisikan agar kolom KODE_BAG pada tabel PEGAWAI selalu merujuk ke kolom KODE pada tabel BAGIAN. (pendefinisian Foreign Key)

SQL> ALTER TABLE PEGAWAI
2 ADD CONSTRAINT fk_kode_bag FOREIGN KEY (kode_bag)
3* REFERENCES bagian(kode);

Input Data ke dalam tabel

Prasyarat :
  • Anda sudah membaca dan menjalankan perintah-perintah yang ada di Materi tentang Membuat Tabel dan Mendefinisikan Constraint
  1. Perintah INSERT
Untuk mengisi data ke tabel digunakan perintah INSERT. Syntax perintah INSERT adalah sebagai berikut :
INSERT INTO table [(column [, column…])]
VALUES (value [, value…]);
Sebelum melakukan pengisian data dengan perintah INSERT, kita harus lihat dulu strukutr tabel yang akan kita isi, karena urutan kolom dalam perintah INSERT sangat penting.
Lakukan koneksi ke database dengan user BUDI
SQL> connect budi
Enter password: ******
Connected.
SQL>


Lihat, tabel apa saja yang dimiliki oleh user BUDI
SQL> SELECT table_name
2 FROM user_tables;
TABLE_NAME
————————-
PEGAWAI
BAGIAN
Lihat struktur tabel BAGIAN dan PEGAWAI



Input data dengan urutan kolom sesuai dengan struktur tabel
Isi tabel BAGIAN dengan data kode : 10, nama_bagian : ADMINISTRATION
SQL> INSERT INTO bagian(kode,nama_bagian) VALUES(10,’ADMINISTRASI’);
1 row created.
Sebenarnya jika kita akan memasukkan data dan kita sudah mengetahui struktur tabelnya dan data tersebut akan diinput urut sesuai nama kolom, maka nama kolom tidak perlu disebutkan. Dengan demikian maka penulisan perintah INSERT menjadi lebih sederhana, seperti dibawah ini :
SQL> INSERT INTO bagian VALUES(20,’MARKETING’);
1 row created.

Input data untuk kolom tertentu saja
Nama kolom perlu disebutkan jika kita akan mengisi nilai hanya ke beberapa kolom saja. Misalkan isi data PEGAWAI untuk kolom NIP: 100 NAMA: ‘EDWIN’, maka perintah INSERT ditulis sebagai berikut:
SQL> INSERT INTO pegawai (nip,nama) VALUES(100,’ANTON’);
1 row created.
Untuk kolom lain pada baris tersebut akan diisi dengan NULL(kosong).
Jika kita lihat, dengan menggunakan perintah INSERT untuk menginput satu baris data diperlukan satu perintah INSERT. Sebenarnya masih ada beberapa utility lain di Oracle yang bisa digunakan untuk memasukkan data ke tabel seperti External Table, SQL*Loader dan Data Pump. Utility itu nanti akan dibahas pada bagian tersendiri.
Untuk latihan dan nanti akan digunakan untuk materi selanjutnya, isi tabel BAGIAN dan PEGAWAI dengan data berikut :

– isi tabel BAGIAN
insert into bagian values(10,’Administrasi’);
insert into bagian values(11,’Penjualan’);
insert into bagian values(12,’Gudang’);
– isi data pegawai
insert into pegawai values(1000,’WIRA’, ‘L’,null,7000000,10);
insert into pegawai values(1100,’BUDI’, ‘L’,null,5000000,12);
insert into pegawai values(1200,’ERTIN’, ‘P’,null,4250000,10);
insert into pegawai values(1300,’NOVI’, ‘P’,null,5500000,11);
insert into pegawai values(1201,’AHMAD’, ‘L’,null,2575000,10);
insert into pegawai values(1202,’ESTI’, ‘P’,null,3000000,10);
insert into pegawai values(1305,’EDWIN’, ‘L’,null,3250000,11);
insert into pegawai values(1306,’AMRA’, ‘L’,null,3100000,11);
insert into pegawai values(1101,’TONO’, ‘L’,null,2250000,12);
insert into pegawai values(1102,’SUTEJO’,'L’,null,2750000,12);
insert into pegawai values(1301,’DIANA’, ‘P’,null,3000000,11);
insert into pegawai values(1302,’YULI’, ‘P’,null,2750000,11);
insert into pegawai values(1303,’RINA’, ‘P’,null,3100000,11);
insert into pegawai values(1304,’DHILA’, ‘P’,null,2500000,11);
insert into pegawai values(1103,’ZAENAL’,'L’,null,1800000,12);
commit;
Halaman

RELATIONAL DATABASE MANAGEMENT SYSTEM UNTUK MENDUKUNG APLIKASI WEB DATABASE
Tujuan…
  • Pengenalan konsep Relational Database Management System (RDBMS)
  • Pengenalan konsep Web Database
  • Memberikan contoh Web Database programming menggunakan PHP dan  MySQL

What Is Data…???
►Data merupakan kumpulan/himpunan fakta dari suatu obyek
Fakta Yang Mungkin Dikumpulkan

•Nama pohon

•Jenis pohon

•Umur pohon

•Jumlah produksi

•Harga per kilogram dipasaran, dll


Data – Aplikasi Komputer – Informasi

Database ???
►Kumpulan data
►Tersimpan dalam suatu tempat
►Dapat digunakan secara bersama

Secara Digital !!!
►tersimpan dalam bentuk file
►tersimpan dalam database server
►diakses secara bersama melalui jaringan komputer

Dalam sistem informasi, penerapan database tidak hanya ditinjau dari sisi ketersediaan data, Tetapi juga dilihat dari isi…
• keamanan data
• konsistensi data
• validitas data
• reliablilitas system

Database Management
system basisdata yang mamiliki kemampuan menajemen untuk menjamin ketersediaan, keamanan, reliabilitas, konsistensi dan validitas data
HIMPUNAN
Kumpulan dari object yang berbeda (diskrit) yg digunakan untuk mengelompokkan sejumlah objek (yg disebut dg elemen, unsur atau anggota)

Relation DBMS
  • DBMS yg menggunakan metode relasi didasarkan pada teori himpunan untuk mengorganisasikan data
  • data dikumpulkan dalam sejumlah object yang disebut dengan tabel
  • Sebuah tabel memiliki sejumlah kolom (yang disebut dengan field, tuple, item, atau attribute) dan baris untuk mengorganisasikan data yang ada
  • Dimungkinkan adanya lebih dari satu relasi dlm satu tabel
  • Dapat meminimalkan redundancy data & menjaga konsistensi data

Database design menggunakan Entity Relationship Diagram

Web Database
Web merupakan satu set aplikasi komunikasi dan system perangkat lunak yang mempunyai karakteristik :

  1. terletak dalam internet host dan client
  2. menggunakan protocol TCP/IP
  3. menggunakan bahasa Hypertext Markup Language (HTML)
  4. mampu melakukan komunikasi data dua arah
  5. client dapat mengakses informasi text, gambar dan suara
  6. menggunakan Uniform Resource Locators (URL)
  7. untuk mengakses server dapat menggunakan http, ftp, dan telnet.

Web database merupakan system penyimpanan data yang dapat diakses oleh aplikasi database yang mendukung teknologi Web

PHP & MySQL
►bahasa scripting yang menyatu dengan HTML
►dijalankan pada server side
Hello World
echo ‘Hello World…’;
?>

MySQL

►Open Source SQL database management system
►relational database
►mampu menyimpan data dalam skala yang sangat besar
►dikembangkan, didistribusikan dan disuport oleh MySQL
►menggunakan Structured Query Language (SQL) sebagai bahasa standardnya



Tidak ada komentar:

Posting Komentar