Selasa, 09 Oktober 2012

ALAT BANTU PERANCANGAN BASIS DATA (ERD)



1.1  KONSEP DASAR ERD

RDBMS

1.1 PENGERTIAN, PENGGUNAAN, SERTA PRINSIP RDBMS

PENGERTIAN
Relational Database Management System (RDBMS) atau Sistem Manajemen Basisdata Relasional adalah sebuah program komputer (atau secara lebih tipikal adalah seperangkat program komputer) yang didisain untuk mengatur/memanajemen sebuah basisdata sebagai sekumpulan data yang disimpan secara terstruktur, dan melakukan operasi-operasi atas data atas permintaan penggunanya. 

PENGGUNAAN
Contoh penggunaan DBMS ada banyak sekali dan dalam berbagai bidang kerja, misalnya akuntansi, manajemen sumber daya manusia, dan lain sebagainya. Meskipun pada awalnya DBMS hanya dimiliki oleh perusahaan-perusahaan berskala besar yang memiliki perangkat komputer yang sesuai dengan spesifikasi standar yang dibutuhkan (pada saat itu standar yang diminta dapat dikatakan sangat tinggi) untuk mendukung jumlah data yang besar, saat ini implementasinya sudah sangat banyak dan adaptatif dengan kebutuhan spesifikasi data yang rasional sehingga dapat dimiliki dan diimplementasikan oleh segala kalangan sebagai bagian dari investasi perusahaan.

3 PRINSIP DALAM RDBMS :
  • Data definition
    Mendefinisikan jenis data yang akan dibuat (dapat berupa angka atau huruf), cara relasi data, validasi data dan lainnya.
  • Data Manipulation
    Data yang telah dibuat dan didefinisikan tersebut akan dilakukan beberapa pengerjaan, seperti menyaring data, melakukan proses query, dsb.
  • Data Control
    Bagian ini berkenaan dengan cara mengendalikan data, seperti siapa saja yang bisa melihat isi data, bagaimana data bisa digunakan oleh banyak user, dsb.
Semua operasi input dan output yang berhubungan dengan database harus menggunakan DBMS. Bila pemakai akan mengakses database, DBMS menyediakan penghubung (interface) antara pemakai dengan database.

1.2 PENGENALAN DB2

DB2 merupakan DBMS buatan IBM. Pertama kali dibuat pada tahun 1983 di MVS. Pada tahun 1996, IBM mengeluarkan DB2 UDB v5. Pada versi ini DB2 mendukung untuk penyimpanan berbagai macam tipe data seperti audio, video dan text.
DB2 9 merupakan release terbaru. Versi ini seperti para pendahulunnya dapat berjalan di berbagai platform seperti AIX, HP-UK, Linux, Solaris, Windows, i5/OS dan z/OS. Pada versi ini terdapat beberapa jenis seperti yang ada dibawah. Semakin besar angka semakin besar skalanya, semakin banyak fiturnya, dan tentunya semakin mahal.


1. DB2 Everyplace
Versi ini merupakan versi DB2 yang terkecil, berukurang hanya sekitar 350kb. Versi ini dibuat untuk para pengguna handheld seperti PDA, smartphone

2. DB2 Express
Versi ini merupakan entry level data server yang didesign untuk komputer yang memiliki hingga 2 CPU dan memory hingga 4GB dan memiliki sistem operasi Linux, Solaris atau Windows. Ada beberapa fitur penting di versi ini yaitu
- pureXML : menyediakan akses yang sederhana dan efisien ke data XML dengan keamanan dan integritas yang sama dengan relational data.
- High Availability : menyediakan ketahanan 24 x 7 pada DB2 data server. 3 bagian yang menyusun fitur ini adalah HADR, Online Reorganization, dan IBM TSA MP.
- Workload Management : fitur ini aktif memonitoring penggunaan query dan mengaturnya agar berjalan secara efisien.
- Performance Optimization : fitur ini mengkombinasikan 3 modul yaitu MQT, MDC dan Query Parallelism.
- DB2 Homogenous Federation Feature : fitur ini menyediakan kemampuan untuk mengatur dan mengakses multiple data server.

3. DB2 Express-C
Versi ini merupakan entry level data server yang didesign untuk komputer yang memiliki hingga 2 CPU dan memory hingga 4GB dan memiliki sistem operasi Linux, atau Windows. Versi ini dapat digunakan untuk tujuan evaluasi dan dapat digunakan secara gratis. Ada beberapa fitur penting di versi ini yaitu
- Spatial Extender Client and samples
- Microsoft Cluster Server support
- Informix Data Source support
- Replication Data Capture
- DB2 Web Tools
- Global Secure Toolkit
- APPC and NetBios support

4. DB2 Personal Edition
Merupakan DBMS untuk single user yang ideal untuk desktop ataupun laptop. Dapat digunakan untuk create, modifikasi dan mengatur banyak database lokal.

5. DB2 Workgroup Server Edition
Versi ini merupakan DBMS untuk multi user, client/ server yang didesign untuk komputer yang memiliki hingga 4 CPU dan memory hingga 16GB dan memiliki sistem operasi Linux, Windows, Solaris, Linux, AIX dll. Memiliki fitur yang sama dengan DB2 Express namun dengan skala yang lebih besar.

6. DB2 Enterprise Server Edition
Versi ini merupakan DBMS untuk multi user, web enabled client/ server yang dapat menangani transaksi besar, multi terabyte data warehouse. Dapat berjalan di server dari 1 hingga ratusan CPU dengan sistem operasi Linux, Windows, Solaris, Linux, AIX dll. Mempunyai fitur seperti DB2 workgroup dengan tambahan
• High Availability Disaster Recovery (HADR)
• Table (range) partitioning
• Online reorganization
• Materialized Query Tables
• Multi-dimensional data clustering
• Full intra-query parallelism
• Connection Concentrator
• The DB2 Governor
• Tivoli System Automation for Multiplatforms (TSA MP)

7. DB2 Data Warehouse Edition
Merupakan versi yang digunakan untuk data warehouse dinamis. Merupakan gabungan dari DB2 enterprise server ditambah fitur DB2 data partitioning.

8. DB2 Personal Developer’s Edition
Versi ini dapat digunakan pengembang untuk membuat aplikasi yang berinteraksi dengan database yang berada dalam kontrol DB2 personal edition. Dengan menggunakan versi ini, pengembang dapat membuat aplikasi yang berinteraksi dengan DB2 9 dengan metode seperti SQL, SQLJ, .NET, JDBC dll.
Masih ada beberapa versi lain dario DB2 seperti DB2 universal Developer, DB2 enterprise developer, DB2 for i5/OS dan DB2 for z/OS.

Mengapa DB2 banyak digunakan :
• Memenuhi kebutuhan bisnis untuk aplikasi-aplikasi baru
• Scalable across
• Menawarkan Open hardware dan system integration
• Integrated Tools dan Usability enhancements 


1.3 SEJARAH DAN PENGENALAN (PENGERTIAN) ORACLE

Perusahaan Oracle didirikan pada tahun 1977 oleh tiga orang programmer, Bob Miner, Ed Oates, dan Larry Ellison yang menjabat sebagai CEO (Chief Executive Officer) selama beberapa tahun sampai saat ini. Perusahaan ini berkonsentrasi pada pembuatan database server di mainframe. Kisah sukses Oracle Corp terkait dengan sejarah dan teori database relasional. Teori database relasional diperkenalkan hampir secara simultan oleh Edgar F. Codd (dalam artikelnya yang terkenal Large shared data banks) dan seorang penemu lain yang kurang dikenal, pada tahun 1969. IBM adalah perusahaan pertama yang menerapkan model relasional ini dalam bahasa SQL, dengan produknya DB2. Sayangnya IBM agak ragu akan keampuhan SQL dan model relasional (nantinya akan berpengaruh pada ketertinggalan IBM di pasar database-server sistem operasi Unix dan Windows ).
Larry melihat perkembangan teori model relasional dan implementasi database relasional dalam DB2. Ia yakin bahwa model relational adalah “way of the future” dan memutuskan untuk mengimplementasikan model relasional di produk Oracle. Sebelumnya produk database Oracle memakai model nonrelasional. Oracle menjadi pesaing kuat bagi IBM dalam pasar database server di mainframe, terutama database bermodel relasional.
Sekitar pertengahan tahun 1980an, Larry mendiversifikasi produk Oracle (versi 6.x) keluar mainframe, yakni ke sistem operasi Unix. Selanjutnya tahun 1996 Oracle Corp mendiversifikasi Oracle (versi 7.x) ke sistem operasi Novell Netware, Windows NT, dan Linux (versi 8.x, tahun 1997). Mulai pertengahan tahun 1990an Oracle Corp mulai membuat juga produk-produk nondatabase-server seperti application server (WebDB, OAS), development tools (Oracle Developer, Oracle Designer), dan application suite (Oracle Apps).
Pengertian Oracle : Oracle adalah relational database management system (RDBMS) untuk mengelola informasi secara terbuka, komprehensif dan terintegrasi. Oracle Server menyediakan solusi yang efisien dan efektif karena kemampuannya dalam hal sebagai berikut :
  • Dapat bekerja di lingkungan client/server (pemrosesan tersebar)
  • Menangani manajemen space dan basis data yang besar
  • Mendukung akses data secara simultan
  • Performansi pemrosesan transaksi yang tinggi
  • Menjamin ketersediaan yang terkontrol
  • Lingkungan yang terreplikasi
Database merupakan salah satu komponen dalam teknologi informasi yang mutlak diperlukan oleh semua organisasi yang ingin mempunyai suatu sistem informasi yang terpadu untuk menunjang kegiatan organisasi demi mencapai tujuannya. Karena pentingnya peran database dalam sistem informasi, tidaklah mengherankan bahwa terdapat banyak pilihan software Database Management System (DBMS) dari berbagai vendor baik yang gratis maupun yang komersial. Beberapa contoh DBMS yang populer adalah MySQL, MS SQL Server, Oracle, IBM DB/2, dan PostgreSQL.
Oracle merupakan DBMS yang paling rumit dan paling mahal di dunia, namun banyak orang memiliki kesan yang negatif terhadap Oracle. Keluhan-keluhan yang mereka lontarkan mengenai Oracle antara lain adalah terlalu sulit untuk digunakan, terlalu lambat, terlalu mahal, dan bahkan Oracle dijuluki dengan istilah “ora kelar-kelar” yang berarti “tidak selesai-selesai” dalam bahasa Jawa. Jika dibandingkan dengan MySQL yang bersifat gratis, maka Oracle lebih terlihat tidak kompetitif karena berjalan lebih lambat daripada MySQL meskipun harganya sangat mahal.
Namun yang mereka tidak perhitungkan adalah bahwa Oracle merupakan DBMS yang dirancang khusus untuk organisasi berukuran besar, bukan untuk ukuran kecil dan menengah. Kebutuhan organisasi berukuran besar tidaklah sama dengan organisasi yang kecil atau menengah yang tidak akan berkembang menjadi besar. Organisasi yang berukuran besar membutuhkan fleksibilitas dan skalabilitas agar dapat memenuhi tuntutan akan data dan informasi yang bervolume besar dan terus menerus bertambah besar.


 1.4  INTERAKSI PL/SQL DENGAN ORACLE

Contoh Cursor Variable: Master Table dan Details Table

Mari kita perhatikan stored procedure di bawah ini, yang mencari database dari perpustakaan utama untuk buku, majalah, dan tape. Tabel master menyimpan judul dan kode kategori (dimana 1=buku, 2=majalah, 3=tape) untuk setiap item. Tiga tabel detail menyimpan informasi spesifik dari setiap kategori. Ketika tipanggil, procedure tesrebut mencari tabel master berdasarkan judul, menggunakan kode kategori terkait untuk membuka perintah OPEN-FOR, lalu membuka cursor variable untuk query dari tabel detail yang tepat.
========================================================================
CREATE PACKAGE cv_types AS
TYPE LibCurTyp IS REF CURSOR;
...
END cv_types;
CREATE PROCEDURE find_item (
title VARCHAR2(100),
lib_cv IN OUT
cv_types.LibCurTyp)
AS
code BINARY_INTEGER;
BEGIN
SELECT item_code
FROM titles INTO code
WHERE item_title = title;
IF code = 1 THEN
OPEN lib_cv FOR SELECT * FROM books
WHERE book_title = title;
ELSIF code = 2 THEN
OPEN lib_cv FOR SELECT * FROM periodicals
WHERE periodical_title = title;
ELSIF code = 3 THEN
OPEN lib_cv FOR SELECT * FROM tapes
WHERE tape_title = title;
END IF;
END find_item;
========================================================================

Contoh Cursor Variable: Pro*C Program

Program Pro*C berikut ini menanyakan kepada user untuk memilih database table, membuka cursor variable untuk query dari table tersebut, lalu melakukan fetch baris-baris data yang dihasilkan oleh query tersebut:
========================================================================
#include
#include
void sql_error();
main()
{
char temp[32];
EXEC SQL BEGIN DECLARE SECTION;
char * uid = "scott/tiger";
SQL_CURSOR generic_cv; /* cursor variable */
int table_num; /* selector */
struct /* EMP record */
DEPT record */
{
int dept_num;
char dept_name[15];
char location[14];
} dept_rec;
struct /* BONUS record */
{
char emp_name[11];
char job_title[10];
float salary;
} bonus_rec;
EXEC SQL END DECLARE SECTION;
/* Handle Oracle errors. */
EXEC SQL WHENEVER SQLERROR DO sql_error();
/* Connect to Oracle. */
EXEC SQL CONNECT :uid;
/* Initialize cursor variable. */
EXEC SQL ALLOCATE :generic_cv;
/* Exit loop when done fetching. */
EXEC SQL WHENEVER NOT FOUND DO break;
for (;;)
{
printf("\n1 = EMP, 2 = DEPT, 3 = BONUS");
printf("\nEnter table number (0 to quit): ");
gets(temp);
table_num = atoi(temp);
if (table_num <= 0) break;
/* Open cursor variable. */
EXEC SQL EXECUTE
BEGIN
IF :table_num = 1 THEN
OPEN :generic_cv FOR SELECT * FROM emp;
ELSIF :table_num = 2 THEN
OPEN :generic_cv FOR SELECT * FROM dept;
ELSIF :table_num = 3 THEN
OPEN :generic_cv FOR SELECT * FROM bonus;
END IF;
END;
END-EXEC;
for (;;)
{
switch (table_num)
{
case 1: /* Fetch row into EMP record. */
EXEC SQL FETCH :generic_cv INTO :emp_rec;
break;
case 2: /* Fetch row into DEPT record. */
EXEC SQL FETCH :generic_cv INTO :dept_rec;
break;
case 3: /* Fetch row into BONUS record. */
EXEC SQL FETCH :generic_cv INTO :bonus_rec;
break;
}
/* Process data record here. */
}
/* Close cursor variable. */
EXEC SQL CLOSE :generic_cv;
}
exit(0);
}
void sql_error()
{
/* Handle SQL error here. */
}

========================================================================

Contoh Cursor Variable: Memanipulasi Host Variables di dalam SQL*Plus

Host variable adalah variable untuk mendeklarasikan di dalam host environment, lalu melewatkannya ke satu atau lebih program-program PL/SQL, yang mana kita dapat menggunakannya seperti variable lainnya. Dalam lingkungan SQL*Plus, untuk mendeklarasikan host variable, kita menggunakan perintah VARIABLE. Sebagai contoh, kita mendeklarasikan variable dengan tipe NUMBER seperti di bawah ini:
VARIABLE return_code NUMBER
Baik SQL*Plus maupun PL/SQL dapat mereferensi host variable, dan SQL*Plus dapat menampilkan nilainya. Namun, untuk mereferensi host variable di dalam PL/SQL, kita harus mengawali namanya dengan tanda titik dua (:), seperti ditunjukkan oleh contoh berikut ini:

========================================================================
DECLARE
...
BEGIN
:return_code := 0;
IF credit_check_ok(acct_no) THEN
:return_code := 1;
END IF;
...
END;
Untuk menampilkan nilai dari host variable di dalam SQL*Plus, kita menggunakan perintah PRINT, seperti berikut ini:
SQL> PRINT return_code
RETURN_CODE
-----------
1
Tipe data SQL*Plus yaitu REFCURSOR mengijinkan kita untuk mendeklarasikan host variables, yang mana kita dapat menggunakannya untuk mengembalikan hasil-hasil query dari stored subprograms. Dalam script di bawah ini, kita mendeklarasikan host variable dari REFCURSOR. Kita menggunakan perintah SET AUTOPRINT dari SQL*Plus untuk menampilkan hasil-hasil query secara otomatis.
CREATE PACKAGE emp_data AS
TYPE EmpRecTyp IS RECORD (
emp_id NUMBER(4),
emp_name VARCHAR2(10),
job_title VARCHAR2(9),
dept_name VARCHAR2(14),
dept_loc VARCHAR2(13));
TYPE EmpCurTyp IS REF CURSOR RETURN EmpRecTyp;
PROCEDURE get_staff (dept_no IN NUMBER, emp_cv IN OUT EmpCurTyp);
END;
/
CREATE PACKAGE BODY emp_data AS
PROCEDURE get_staff (dept_no IN NUMBER, emp_cv IN OUT EmpCurTyp) IS
BEGIN
OPEN emp_cv FOR
SELECT empno, ename, job, dname, loc FROM emp, dept
WHERE emp.deptno = dept_no AND emp.deptno = dept.deptno
ORDER BY empno;
END;
END;
/
COLUMN EMPNO HEADING Number
COLUMN ENAME HEADING Name
COLUMN JOB HEADING JobTitle
COLUMN DNAME HEADING Department
COLUMN LOC HEADING Location
SET AUTOPRINT ON
VARIABLE cv REFCURSOR
EXECUTE emp_data.get_staff(20, :cv)

========================================================================





  
PENGERTIAN SQL dan PENGELOMPOKANYA
 
SQL merupakan singkatan dari Structured Query Language. SQL atau juga sering disebut sebagai query merupakan suatu bahasa (language) yang digunakan untuk mengakses database. SQL dikenalkan pertama kali dalam IBM pada tahun 1970 dan sebuah standar ISO dan ANSII ditetapkan untuk SQL. Standar ini tidak tergantung pada mesin yang digunakan (IBM, Microsoft atau Oracle). Hampir semua software database mengenal atau mengerti SQL. Jadi, perintah SQL pada semua software database hampir sama.
Terdapat 3 (dua) jenis perintah SQL, yaitu DDL, DML dan DCL.
1. DDL atau Data Definition Language
DDL merupakan perintah SQL yang berhubungan dengan pendefinisian suatu struktur database, dalam hal inidatabase dan table. Beberapa perintah dasar yang termasuk DDL ini antara lain :
  • CREATE
  • ALTER
  • RENAME
  • DROP
2. DML atau Data Manipulation Language
DML merupakan perintah SQL yang berhubungan dengan manipulasi atau pengolahan data atau record dalam table. Perintah SQL yang termasuk dalam DML antara lain :
  • SELECT
  • INSERT
  • UPDATE
  • DELETE
3. DCL atau Data Control Language
DCL (bukan BCL) merupakan perintah SQL yang berhubungan dengan pengaturan hak akses user MySQL, baik terhadap server, database, tabel maupun field. Perintah SQL yang termasuk dalam DCL antara lain :
  • GRANT
  • REVOKE

MODEL DATA RELASIONAL

1.1 PENGERTIAN MODEL DATA RASIONAL DAN CONTOH TABEL

Terdapat beberapa cara untuk menangani atau memodelkan data diantaranya adalah :

1. Model Relational :
Dimana data serta hubungan antar data direpresentasikan oleh sejumlah tabel dan masing-masing tabel terdiri dari beberapa kolom yang namanya unique. Model ini berdasarkan notasi teori himpunan (set theory), yaitu relation.
Contoh :
 clip_image001

2. Model Jaringan :
Model dimana data dan hubungan antar data direpresentasikan dengan record dan links. Perbedaannya terletak pada susunan record dan linknya yaitu network model menyusun record-record dalam bentuk graph dan menyatakan hubungan cardinalitas 1:1, 1:M dan N:M
Contoh :
clip_image003

3. Model Hirarki
Dimana data serta hubungan antar data direpresentasikan dengan record dan link (pointer), dimana record-record tersebut disusun dalam bentuk tree (pohon), dan masing-masing node pada tree tersebut merupakan record/grup data elemen dan memiliki hubungan cardinalitas 1:1 dan 1:M
Contoh :


clip_image005











Diantara tiga model tersebut model Relasional adalah yang paling sering dipakai. Model Relasional merupakan model yang paling sederhana sehingga mudah digunakan dan dipahami oleh pengguna, serta merupakan model yang paling populer saat ini. Model ini menggunakan sekumpulan tabel berdimensi dua ( yang disebut relasi atau tabel ), dengan masing-masing relasi tersusun atas tupel atau baris dan atribut.Basis data relational adalah sekumpulan tabel-tabel yang memiliki hubungan relasi secara matematika dan logika. Hubungan relasi antar tabel pada umumnya berupa query, yakni tata aturan relasi yang sudah disusun berdasarkan desain dan teknik basis data tertentu yang digunakan. Query menjelaskan hubungan antar tabel secara matematika dan logika. Query terdiri dari operasi-operasi matematika dan logika yang diterapkan pada sekumpulan tabel.


1.2 KEUNTUNGAN DAN KERUGIAN MODEL ENTITY RELATIONSHIP


Keuntungan model data entity relationship :
  • Secara konseptual sangat sederhana
  • Gambaran secara visual
  • Alat bantu komunikasi lebih efektif
  • Terintegrasi dengan model basis data relasional
Kerugian model entity relationship :
  • Gambaran aturan-aturan terbatas
  • Gambaran relasi terbatas
  • Tidak ada bahasa untuk memanipulasi data
  • Kehilangan isi informasi

1.3 ISTILAH DALAM MODEL RELATIONAL

a) Relasi :
Relasi merupakan sebuah tabel yang terdiri dari beberapa kolom dan beberapa baris. Relasi menunjukkan adanya hubungan diantara sejumlah entitas yang berasal dari himpunan entitas yang berbeda. Entitas merupakan individu yang mewakili sesuatu yang nyata dan dapat dibedakan dengan yang lainnya.

b) Atribut :
Atribut merupakan kolom pada sebuah relasi. Setiap entitas pasti memiliki aribut yang mendeskripsikan karakter dari entitas tersebut. Penentuan atau pemilihan atribut-atribut yang relevan bagi sebuah entitas merupakan hal penting dalam pembentukan model data.

c) Tuple :
Tuple merupakan baris pada sebuah relasi atau kumpulan elemen-elemen yang saling berkaitan menginformasikan tentang suatu entitas secara lengkap. Satu record mewakili satu data atau informasi tentang seseorang, misalnya : NPM, nama mahasiswa, alamat, kota, dll.

d) Domain :
Kumpulan nilai yang valid untuk satu atau lebih atribut

e) Derajat (degree) :
Jumlah atribut dalam sebuah relasi

f) Cardinality :
Jumlah tupel dalam sebuah relasi  

1.4 RELATIONAL KEYS

a) Super key Satu atribut / kumpulan atribut yang secara unik mengidentifikasi sebuah tuple di dalam relasi Candidate key Suatu atribut atau satu set minimal atribut yang mengidentifikasikan secara unik suatu kejadian spesifik dari entitas. Atribut di dalam relasi yang biasanya mempunyai nilai unik. Satu set minimal dari atribut menyatakan secara tak langsung dimana kita tidak dapat membuang beberapa atribut dalam set tanpa merusak kepemilikan yang unik. 

b) Primary key Merupakan satu atribut atau satu set minimal atribut yang tidak hanya mengidentifikasikan secara unik suatu kejadian spesifik, tapi juga dapat mewakili setiap kejadian dari suatu entitas. Candidate key yang dipilih untuk mengidentifikasikan tuple secara unik dalam relasi. Setiap kunci candidate key punya peluang menjadi primary key, tetapi sebaiknya dipilih satu saja yang dapat mewakili secara menyeluruh terhadap entitas yang ada.

c) Alternate key Merupakan candidate key yang tidak dipakai sebagai primary key atau Candidate key yang tidak dipilih sebagai primary key. 

d) Foreign key (Kunci Tamu) Atribut dengan domain yang sama yang menjadi kunci utama pada sebuah relasi tetapi pada relasi lain atribut tersebut hanya sebagai atribut biasa. Kunci tamu ditempatkan pada entitas anak dan sama dengan primary key induk direlasikan.

1.4 RELASINAL INTEGRITY RULES

a)  Batasan - Batasan Integritas ( Integrity Constraints)

Pada Batasan" suatu Relasi Ditetapkan ketika schema didefinisikan dan dicek ketika relasi-relasi dimodifikasi atau dimanipulasi seperti penambahan , pengubahan , penghapusan dan pencarian / menampilkan data.

b) Aturan Integritas Relational
  • Null : Merupakkan Nilai suatu atribut yang tidak diketahui dan tidak cocok untuk baris (tuple) tersebut.
  • Entity Integrity : yaitu tidak ada satu komponen primary key yang bernilai null.
  • Referential Integrity : adalah garis yang menghubungkan antara satu tabel dengan tabel lain.

1.5 BAHASA PADA MODEL DATA RELASIONAL


Menggunakan bahasa query pernyataan yang diajukan untuk mengambil informasi terbagi 2, yaitu:

1.) Bahasa Formal :
Bahasa query yang diterjemahkan dengan menggunakan symbol-simbol matematis.
Contohnya: Aljabar Relasional dan Kalkulus Relasional.

a. Aljabar Relasional
Bahasa query procedural, pemakai menspesifikasikan data apa yang dibutuhkan dan bagaimana untuk mendapatkannya.

b. Kalkulus Relasional
Bahas query non-prosedural, pemakai menspesifikasikan data apa yang dibutuhkan tanpa menspesifikasikan bagaimana untuk menapatkannya. Terbagi 2:
1. Kalkulus Relasional Tupel
2. Kalkulus Relasional Domain

2.) Bahasa Komersial
Bahasa query yang dirancang sendiri oleh programmer menjadi suatu program aplikasi agar pemakai lebih mudah menggunakannya (user friendly).
Contohnya:
a. QUEL
Berbasis pada bahasa kalkulus relational
b. QBE
Berbasis pada bahasa kalkulus relational
c. SQL
Berbasis pada bahasa kalkulus relational dan aljabar relational 

Semoga bermanfaat..amiinn..
 











LINGKUNGAN BASIS DATA

 1.1 ARSITEKTUR BASIS DATA

Tujuan utama dari sistem basis data adalah menyediakan pemakai melalui suatu pandangan abstrak mengenai data, dengan menyembunyikan detail dari bagaimana data disimpan dan dimanipulasikan. Oleh karena itu, titik awal untuk perancangan sebuah basis data haruslah abstrak dan deskripsi umum dari kebutuhan-kebutuhan informasi suatu organisasi harus digambarkan di dalam basis data.
Lebih jauh lagi, jika sebuah basis data merupakan suatu sumber yang bisa digunakan bersama maka setiap pemakai membutuhkan pandangan yang berbeda-beda terhadap data di dalam basis data. Untuk memenuhi kebutuhan ini, arsitektur komersial basis data yang banyak digunakan telah tersedia saat ini dan telah mengalami perluasan yaitu arsitektur ANSI-SPARC.
Materi ini menyediakan latar belakan informasi yang penting pada basis data, diantaranya tiga tingkatan arsitektur ANSI-SPARC, pengenalan model data, fungsi yang disediakan oleh DBMS multi user.
Tiga Tingkatan Arsitektur Basis data ANSI-SPARC.
Ada 3 tingkat dalam arsitektur basis data yang bertujuan membedakan cara pandang pemakai terhadap basis data dan cara pembuatan basis data secara fisik, yaitu :

1. Tingkat Eksternal (External Level)
Tingkat eksternal merupakan cara pandang pemakai terhadap basis data. Pada tingkat ini menggambarkan bagian basis data yang relevan bagi seorang pemakai tertentu. Tingkat eksternal terdiri dari sejumlah cara pandang yang berbeda dari sebuah basis data. Masing-masing pemakai merepresentasikan dalam bentuk yang sudah dikenalnya. Cara pandang secara eksternal hanya terbatas pada entitas, atribut dan hubungan antar entitas (relationship) yang diperlukan saja.

2. Tingkat Konseptual (Conseptual Level)
Tingkat konseptual merupakan kumpulan cara pandang terhadap basis data. Pada tingkat ini menggambarkan data yang disimpan dalam basis data dan hubungan antara datanya.
Hal-hal yang digambarkan dalam tingkat konseptual adalah :
- semua entitas beserta atribut dan hubungannya
- batasan data
- informasi semantik tentang data
- keamanan dan integritas informasi
Semua cara pandang pada tingkat eksternal berupa data yang dibutuhkan oleh pemakai harus sudah tercakup di dalam tingkat konseptual atau dapat diturunkan dari data yang ada. Deskripsi data dari entitas pada tingkat ini hanya terdiri dari jenis data dan besarnya atribut tanpa memperhatikan besarnya penyimpanan dalam ukuran byte.

3. Tingkat Internal (Internal Level)
Tingkat internal merupakan perwujudan basis data dalam komputer. Pada tingkat ini menggambarkan bagaimana basis data disimpan secara fisik di dalam peralatan storage yang berkaitan erat dengan tempat penyimpanan / physical storage.
Tingkat internal memperhatikan hal-hal berikut ini :
- alokasi ruang penyimpanan data dan indeks
- deskripsi record untuk penyimpanan (dengan ukuran penyimpanan untuk data elemen
- penempatan record
- pemampatan data dan teknik encryption 

1.2 DATA INDEPENDENT, BAHASA DBMS, FUNGSI DBMS, KOMPONEN DBMS.

Data independence yang berarti perubahan yang terjadi pada tingkat yang lebih rendah tidak mempengaruhi tingkat yang lebih tinggi.
Ada 2 jenis data independence
  1. Physical Data Independence
  2. Logical Data Independence

Bahasa Dalam DBMS
Kumpulan program yang mengkoordinasikan semua kegiatan yang berhubungan dengan basis data. Maka untuk mengakomodasikan masing-masing pengguna dalam piranti lunak manajemen basis data biasanya terdapat bahasa-bahasa tertentu yang disebut Data Sub Language

Data sub language
Data sub language adalah subset bahasa yang dipakai untuk operasi manajemen basis data. Dalam penggunaan biasanya dapat ditempelkan (embedded) pada bahasa tuan rumah (Cobol, PL/1, dsb).
Ada 2 data sub language
1. Data Definition Language (DDL)
Bahasa yang digunakan dalam mendefinisikan struktur atau kerangka dari basis data, di dalamnya termasuk record, elemen data, kunci elemen, dan relasinya
2. Data Manipulation Language (DML)
Bahasa yang digunakan untuk menjabarkan pemrosesan dari basis data, fasilitas ini diperlukan untuk memasukkan, mengambil, mengubah data. DML dipakai untuk operasi terhadap isi basis data


Fungsi DBMS
Layanan-layanan yang sebaiknya disediakan oleh database management system adalah :
  1. Penyimpanan, pengambilan dan perubahan data
  2. Katalog yang dapat diakses pemakai
  3. Mendukung Transaksi
  4. Melayani Kontrol concurrency
  5. Melayani Recovery
  6. Melayani Autorisasi
  7. Mendukung Komunikasi Data
  8. Melayani Integrity
  9. Melayani Data Independence
  10. Melayani Utility
Komponen DBMS:
  1. Query Processor
  2. Database Manager
  3. File Manager
  4. DML Preprocessor
  5. DDL Compiler
  6. Dictionary Manager
Komponen Software utama database manager adalah
  1. Authorization Control
  2. Command Processor
  3. Integrity Checker
  4. Query Optimizer
  5. Transaction Manager
  6. Scheduler
  7. Recovery Manager
  8. Buffer Manager

1.3  MODEL DATA

Yaitu Kumpulan konsep terintegrasi yang menggambarkan data, hubungan antara data dan batasan-batasan data dalam suatu organisasi.
Data pada tingkat eksternal dan konseptual digunakan model data berbasis objek atau model data berbasis record :
  1. Model Data Berbasis Objek
Menggunakan konsep entitas, atribut dan hubungan antar entitas.
Jenis-jenisnya antara lain:
-entity relationship
-semantic
-functional
-object oriented
  1. Model Data Berbasis Record
Basis data ini terdiri dari sejumlah record dalam bentuk yang tetap dapat dibedakan dari bentuknya.
3 macam jenis model data berbasis record yaitu :
-Model data relasional (relational)
-Model data hierarkhi (hierarchical)
-Model data jaringan (network)


 1.4  DATA DICTIONARY

Tempat penyimpanan informasi yang menggambarkan data dalam basis data.
Untuk mngerjakan pemeriksaan data dictionary menyimpan :
  • Nama-nama pemakai yang mempunyai wewenang untuk menggunakan DBMS
  • Nama-nama data item yang ada dalam basis data
  • Data item yang dapat di akses oleh pemakai dan jenis akses yang diijinkan.
Misalnya : Insert, Update, Delete, Read
Untuk memeriksa integritas data, data dictionary menyimpan :
  • Nama-nama data item dalam basis data
  • Jenis dan ukuran data item
  • Batasan untuk masing-masing data item.

 1.5 ARSITEKTUR DBMS MULTIUSER

Arsitektur DBMS Multi User ada 3 bagian, yaitu:
  1. Teleprocessing
Arsitektur ini menempatkan beban yang besar pada computer pusat yang tidak hanya menjalankan program aplikasi tetapi juga harus menyelesaikan sejumlah pekerjaan pada terminal seperti format data untuk tampilan di monitor.
  1. File Server
Kerugian arsitektur file server adalah
-Terdapat lalu lintas jaringan yang besar
-masing-masing workstation membutuhkan copy DBMS
-Kontrol terhadap concurrency, recovery, dan integrity menjadi lebih kompleks karena sejumlah DBMS mengakses file secara bersamaan.
3) Client Server
Ada beberapa keuntungan jenis arsitektur ini adalah :
-Memungkinkan akses basis data yang besar
-menaikkan kinerja
-Jika client dan server diletakkan pada computer yang berbeda kemudian CPU yang berbeda dapat memproses aplikasi secara paralel.
-Biaya untuk hardware dapat dikurangi
-Hanya server yang membutuhkan storage dan kekuatan proses yang cukup untuk menyimpan dan mengaatur basis data.
-Biaya komunikasi berkurang.
-Aplikasi menyelesaikan bagian operasi pada client dan mengirimkan hanya bagian yang dibuthkan.
-Meningkatkan kekonsistenan.
-server dapat menangani pemeriksaan integrity sehingga batasan perlu didefinisikan dan validasi hanya di satu tempat.
-map ke arsitektur open system dengan sangat alami 

Ringkasan fungsi client server 

*) Client
-Mengatur user interface
-Menerima dan memeriksa sintaks input dari pemakai
-Memproses aplikasi
-Generate permintaan basis data dan memindahkannya ke server
-Memberikan response balik kepada pemakai
*) Server
-Menerima dan memproses basis data yang diminta dari client
-Memeriksa Autorisasi
-Menjamin tidak terjadi pelanggaran terhadap integrity constraint
-Melakukan Query/pemrosesan update dan memindahkan response ke client
-Memelihara data dictionary
-Menyediakan akses basis data secara bersamaan
-Menyediakan control recovery









Senin, 08 Oktober 2012

PENGANTAR BASIS DATA

1.1 Pengertian Basis Data

Basis: dapat diartikan sebagai markas atau gudang, tempat bersarang atau berkumpul.
Data: representasi fakta dunia nyata yang mewakili suatu objek seperti manusia, pegawai, siswa, pembeli, pelanggan, barang, hewan peristiwa, konsep, keadaan, dan sebagainya yang direkam dalam bentuk angka, huruf, simbol, teks, gambar, bunyi, atau kombinasinya.

Pengertian Basis Data: Kumpulan file / table yang saling berelasi (berhubungan) antara satu dengan yang lainnya. Koleksi terpadu dari data yang saling berkaitan yang dirancang untuk memenuhi kebutuhan informasi.
Basis data dapat didefinisikan dalam sejumlah sudut pandang, seperti menurut Connolly (2002,p14), definisi basis data adalah kumpulan data yang dihubungkan secara bersama-sama, dan gambaran dari data yang dirancang untuk memenuhi kebutuhan informasi dari suatu organisasi. Berbeda dengan sistem file yang menyimpan data secara terpisah, pada basis data data tersimpan secara terintegrasi. Basis data bukan menjadi milik dari suatu departemen tetapi sebagai sumber daya perusahaan yang dapat digunakan bersama.

Menurut Date (1990,p5), definisi dari basis data adalah kumpulan terintegrasi dari file yang merupakan representasi data dari suatu model enterprise.

Sedangkan menurut Fathansyah (1999,p2), basis data adalah :

·    Himpunan kelompok data (arsip) yang saling berhubungan yang diorganisasi sedemikian rupa agar kelak dapat dimanfaatkan kembali dengan cepat dan mudah.
Kumpulan data yang saling berhubungan yang disimpan secara bersama sedemikian rupa dan tanpa pengulangan (redudansi) yang tidak perlu, untuk memenuhi berbagai kebutuhan.

Tujuan Sistem Manajemen Basis Data: Kemudahan dan kecepatan dalam pengambilan kembali data.
Ilustrasi Basis Data
Hirarki Data:
Rekaman/ Record/ Baris: Gabungan sejumlah elemen data yang saling terkait. Contoh: 9999, Gunawan, Jakarta, 22/08/87

Elemen Data/ Field/ Atribut: Satuan data terkecil yang tidak dapat dipecah lagi menjadi unit lain yang bermakna. Contoh: Pada data Mahasiswa, field / atribut datanya dapat berupa: nim, nama_m, tpt_lhr_m, tgl_lhr_m, alm_m dan dan atribut lainnya yang menyangkut mahasiswa tersebut.

Berkas / File / Table: Kumpulan record sejenis yang mempunyai panjang atribut/ field sama, namun berbeda isi datanya. Contoh: Mahasiswa, Dosen, Matakuliah

Basis Data: Kumpulan file / table yang saling berelasi (berhubungan) antara satu dengan yang lainnya. Contoh: DBPenjualan, DBAkademik

 HIRARKI DATA



1.2 Perbedaan Sistem Pemrosesan File Tradisional dengan Sistem Basis Data 

Sistem File Tradisional
Sebelumnya, sistem yang digunakan untuk mengatasi semua permasalahan bisnis, menggunakan pengelolaan data secara tradisional dengan cara menyimpan record-record pada file-file yang terpisah yang disebut juga sistem pemrosesan file.
Contoh :
universitas yang mempunyai dua sistem ; yakni sistem yang memproses data mahasiswa dan sistem yang mengelola data mata kuliah

·         Digunakan untuk menyimpan record dalam file yang terpisah
penyimpanan Tradisional
·         Masing-masing file diperuntukkan hanya untuk satu program
Aplikasi
Sistem Basis Data
Seiring dengan berjalannya waktu, sistem pemrosesan file ditinggalkan karena masih bersifat manual yang kemudian dikembangkan sistem pemrosesan dengan pendekatan basis data.
Contoh : Data universitas

Pada sistem ini record-record data disimpan pada satu tempat yakni basis data dan diantara program aplikasi maupun pemakai terdapat DBMS (Database Management System).
Perbedaan antara File Manajemen tradisional dan File Manajemen Database
File Manajemen Tradisional :              File Manajemen Database :
1. Program Oriented                           1. Data Oriented
2. Kaku                                              2. Luwes
3. Adanya kerangkapan data               3. Terkontrolnya kerangkapan data




1.3 Komponen Bahasa dalam DBMS
Data Definition Language (DDL)
Struktur / skema basis data yang menggambarkan / mewakili desain basis data secara keseluruhan dispesifikasikan dengan bahasa khusus yaitu DDL. Dengan bahasa ini kita dapat membuat tabel (create table) baru, indeks, mengubah table, menentukan struktur penyimpanan table, dan lainnya. Hasil dari kompilasi perintah DDL, adalah kumpulan table yang disimpan dalam file khusus yang disebut kamus data (data dictionary).
Data Manipulation Language (DML)
Bentuk bahasa basis data untuk melakukan menipulasi dan pengambilan data pada suatu basis data. Manipulasi data pada dabase dapat berupa :
1). Penyisipan / penambahan data pada  file / table dalam suatu basis data.
2). Penghapusan data pada  file / table dalam suatu basis data.
3). Pengubahan data pada  file / table dalam suatu basis data.
4). Penelusuran data pada  file / table dalam suatu basis data.


Atribut
Atribut merupakan kolom pada sebuah relasi. Setiap entitas pasti memiliki aribut yang mendeskripsikan karakter dari entitas tersebut. Penentuan atau pemilihan atribut-atribut yang relevan bagi sebuah entitas merupakan hal penting dalam pembentukan model data. Contoh : Kode_Matkul, Nama_Matkul, SKS, Semester, Waktu, Tempat, Nama_Dosen
Tuple
Tuple merupakan baris pada sebuah relasi atau kumpulan elemen-elemen yang saling berkaitan menginformasikan tentang suatu entitas secara lengkap. Satu record mewakili satu data atau informasi tentang seseorang.  Contoh : Kode_Matkul s.d. MA-115
Domain
Kumpulan nilai yang valid untuk satu atau lebih atribut . Contoh : IF-110 s.d. MA-115
Derajat (degree)
Jumlah atribut dalam sebuah relasi. Contoh : Kode_Matkul s.d. Nama_Dosen
Cardinality
Jumlah tupel dalam sebuah relasi. Contoh : IF-110 s.d. MA-115
Super key
Satu atribut / kumpulan atribut yang secara unik mengidentifikasi sebuah tuple di dalam relasi
Primary key
Merupakan satu atribut atau satu set minimal atribut yang tidak hanya mengidentifikasikan secara unik suatu kejadian spesifik, tapi juga dapat mewakili setiap kejadian dari suatu entitas. Candidate key yang dipilih untuk mengidentifikasikan tuple secara unik dalam relasi. Setiap kunci candidate key punya peluang menjadi primary key, tetapi sebaiknya dipilih satu saja yang dapat mewakili secara menyeluruh terhadap entitas yang ada. Contoh : Kode_Matkul


1.4  Keuntungan dan Kerugian Sistem Basis Data

Keuntungan sistem basis data

1. Terkontrolnya kerangkapan data dan inkonsistensi
2. Terpeliharanya keselarasan data
3. Data dapat dipakai secara bersama-sama
4. Memudahkan penerapan standarisasi
5. Memudahkan penerapan batasan-batasan pengamanan.
6. Terpeliharanya intergritas data
7. Terpeliharanya keseimbangan atas perbedaan kebutuhan data dari setiap aplikasi
8. Program / data independent

Kerugian sistem basis data

1. Mahal dalam implementasinya
2. Rumit/komplek
3. Penanganan proses recovery & backup sulit
4. Kerusakan pada sistem basis data dapat mempengaruhi departemen yang terkait



1.5 Pengguna Basis Data
 
Yaitu terbagi menjadi 4 klasifikasi :
a. Sistem Engineer
Yaitu tenaga ahli yang bertanggung jawab atas pemasangan sistem basis data danjuga mengadakan peningkatan dan melaporkan kesalahan dari sistem tersebut kepada pihak penjual.
b. Database Administrator (DBA)

Yaitu, orang/tim yang bertugas mengelola system database secara keseluruhan.
c. Programmer

Yaitu orang/tim membuat program aplikasi yang mengakses database dengan menggunakan bahasa pemprograman.
d. End user

Yaitu, orang yang mengakses database melalui terminal dengan menggunakan query language atau program aplikasi yang dibuat oleh programmer.

Sekian postingan saya kali ini semoga bermanfaat.