D I K T A T
K U L I A H
KONSEP DAN PERANCANGAN BASIS DATA
Oleh : Aradea
TEKNIK INFORMATIKA
FAKULTAS TEKNIK UNIVERSITAS SILIWANGI
Jl. Siliwangi No. 24 Tasikmalaya Kotak Pos 164 Tlp. (0265) 323537 E-Mail :
[email protected] ; URL : http://www.unsil.ac.id
Konsep dan Perancangan Basis Data Aradea
Prakata Bismillahirrohmanirrohim, Diktat ini disusun secara khusus untuk keperluan pengajaran kuliah Basis Data di Lingkungan Jurusan Teknik Informatika Fakultas Teknik Universitas Siliwangi. Diktat ini merupakan revisi dari diktat yang pernah disusun untuk perkuliahan Basis Data dan disempurnakan serta disesuaikan dengan hasil rapim Jurusan mengenai penyempurnaan kurikulum, silabus, SAP dan GBPP yang rutin dilakukan. Pada diktat matakuliah ini dibahas konsep dasar sistem basis data, perancangan basis data, dan operasi-operasi yang dapat dilakukan terhadap data yang tersimpan di basis data. Pokok bahasan yang diberikan mencakup overview Basis Data: sistem basis data, sistem manajemen basis data, arsitektur basis data, independensi data, bahasa query; Pemodelan Data: kategorisasi, model data konseptual, model relasional; Model Entity-Relationship; Basis data relasional: pemetaan skema konseptual ke skema relasional, integritas entitas dan pengacuan, aljabar relasional, kalkulus relasional; Bahasa query: SQL, pendefinisian data, pemanipulasian data; Perancangan basis data relasional: functional dependency, normalisasi (1NF, 2NF, 3NF, BCNF). Matakuliah ini diberikan untuk menumbuhkan kemampuan merancang basis data dan menangani operasi terhadap basis data operasional. Selanjutnya saya mengucapkan terima kasih dan penghargaan kepada semua pihak yang telah memberi bantuan hingga selesainya diktat ini. Keritik, saran dan koreksi sangat diharapakan untuk perbaikan diktat ini pada edisi yang akan datang. Demikian semoga bermanfaat.
Tasikmalaya, Mei 2007 Penulis,
Aradea
Konsep dan Perancangan Basis Data Aradea
DAFTAR ISI BAB 1 KONSEP DASAR BASIS DATA 1.1 Definisi.……………. . . . . . . . . . . .. . . . . . . . . . . . . .. .. . . . . . . .. . . .. . . . . . 1 1.2 Istilah-Istilah………….. . . . . . . . . . .. . . .. . . . . . . .. . . . .. . . . . . . . . .. . . . . . 2 1.3 Operasi Dasar Basis Data . . .. . . . . . . . . . . . .. . . . . . . . . . . . . . . . .. . . . .. . . . 3 1.4 Objektif dan Penerapan Basis Data. . . . . . . . .. . . . . . . . . . . . . . . . . . ... . . . . 3 BAB 2 SISTEM BASIS DATA 2.1 Sistem Basis Data………………. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 4 2.2 Komponen Sistem Basis Data.………. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 2.3 Syarat Basis Data……………….... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 2.4 Abstraksi Data….…………. ..……… . . . . . . . . . . . . . . . . . . . . . . . . . . .. . 8 2.5 Bahasa Basis Data ……..………. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . 8 2.6 Struktur Sistem Basis Data .……. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . 9 BAB 3 MODEL DATA 3.1 Definisi………………………… . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . 10 3.2 Model Keterhubungan Entitas…..…. . . . . . . . . . . . . . .. . . . . . . . . . . . . . .. . 10 3.3 Entity Relationship Diagram (ER-D) . . . . . . . . . . . . . .. . . . . . . . . . . . . . .. . 12 3.4 Model Jaringan (Network Model)…. . . . . . . . . . . . . . .. . . . . . . . . . . . . . .. . 14 3.5 Model Hirarkis…………………..…. . . . . . . . . . . . . . .. . . . . . . . . . . . . . .. . 15 BAB 4 PERANCANGAN BASIS DATA 4.1 Definisi…………. . ………….. . . . . . . . . . . . ... . . . . . . . . . . . . . . . . . . ... . 17 4.2 Normalisasi……….………………... . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . 18 4.3 Bentuk-Bentuk Normalisasi …..…………. .. . . . . . . . . . . . . . . . . . . . . . .. . 21 4.4 Soal-Soal Latihan ..………………... . . . . . . .. . . . . . . . . . . . . . . . . . . . . .. . 24 BAB 5 IMPLEMENTASI BASIS DATA 5.1 Definisi………………….. ….…... . . . . . . . . . ... . .. . . .. . . . . . . . . . . . . .. . 26 5.2 Transformasi Model Data ke Basis Data Fisik. . . . . . . . . . . . . . . . . . . . . .. . 26 5.3 Model Data Lanjutan………………………… . . . . . . . . . . . . . . . . . . . . .. . 28 5.4 Pengkodean Internal…………………………. . . . . . . . . . . . . . . . . . . . . .. . 33 5.5 DBMS dan Struktur Tabel.………………….. . . . . . . . . . . . . . . . . . . . . .. . 33 BAB 6 ALJABAR RELASIONAL 6.1 Definisi………………………. …. . . . . . . . . . ... . .. . . .. . . . . . . . . . . . . .. . 36 6.2 Operator Aljabar Relasi…..……... . . .. . . .. . . . . .. . .. . . . . . . . . . . . . . . .. . 36 BAB 7 STRUCTURED QUERY LANGUAGE (SQL) 7.1 Definisi………………………… ... . . . . . . . . . ... . .. . . .. . . . . . . . . . . . . .. . 39 7.2 Struktur Dasar……………….. ... . . .. . . .. . . . . .. . .. . . . .. . .. . . . .. . . . . .. . 39 7.3 Anomali Basis Data……………….. ... . .. . . ... . .. . . .. . . .. . .. . . .. . .. . . . . 43 7.4 Pendefinisian Objek Basis Data……… . .. . . ... . .. . . .. . . .. . .. . . .. . .. . . . . 44 7.5 Fungsi Agregasi……………………… . .. . . ... . .. . . .. . . .. . .. . . .. . .. . . . . 45 DAFTAR PUSTAKA
Konsep dan Perancangan Basis Data Aradea
1 KONSEP DASAR BASIS DATA 1.1 Definisi Basis Data terdiri atas 2 (dua) kata yaitu Basis dan Data. Basis dapat diartikan sebagai markas atau gudang, tempat bersarang atau berkumpul. Sedangkan Data adalah reperesentasi fakta dunia nyata yang mewakili suatu objek. Basis Data sendiri dapat didefinisikan dalam sejumlah sudut pandang tertentu : •
Kumpulan data yang saling berhubungan yang disimpan secara bersama sedemikian rupa dan tanpa pengulangan (redudansi) yang tidak perlu, untuk memenuhi berbagai kebutuhan.
•
Kumpulan file-file yang saling berelasi dan relasi tersebut biasanya ditunjukan dengan kunci dari tiap file yang ada, yang disimpan dalam media penyimpanan elektronis. Satu basis data menunjukan satu kumpulan data yang dipakai dalam lingkup perusahaan, instansi.
File Mahasiswa
File Matakuliah
disk File Dosen
File Kuliah/Nilai
Gambar 1.1 Basis Data di Sebuah Harddisk.
Hampir disemua aspek pemanfaatan perangkat komputer dalam sebuah organisasi atau perusahaan senantiasa berhubungan dengan basisi data. Perangkat komputer ini biasanya digunakan untuk menjalankan fungsi Pengolahan Sistem Informasi, yang dewasa ini sudah menjadi suatu keharusan, untuk meningkatkan efisiensi, daya saing, keakuratan, kecepatan operasional perusahaan. Dan basis data merupakan salah satu komponen utama dalam setiap sistem informasi, tidak ada sistem informasi yang bisa buat atau dijalankan tanpa adanya basis data.
1
Konsep dan Perancangan Basis Data Aradea
1.2 Istilah – Istilah •
Entity
Entity adalah orang, tempat, kejadian atau konsep yang informasinya direkam. Misalnya pada sekolah terdapat entity mahasiswa, matakuliah, dosen, nilai test dan lain-lain. •
Atribute
Setiap entity mempunyai atribute atau sebutan untuk mewakili suatu entity. Seorang mahasiswa dapat dilihat dari atributenya, misalnya nim, nama, alamat, jenis kelamin dan lain-lain. Atribute juga disebut sebagai data elemen, data field, data item. •
Data value (nilai atau isi data)
Adalah data actual atau informasi yang disimpan pada tiap data elemen atau atribute. Atribute nama mahasiswa menunjukan tempat dimana informasi nama mahasiswa disimpan, sedang data value adalah Pita, Respati, merupakan isi data nama mahasiswa tersebut. •
Record (tupel)
Yaitu kumpulan elemen-elemen yang saling berkaitan menginformasikan tentang suatu entity secara lengkap. Satu record mewakili satu data atau informasi tentang seseorang misalnya, nomor induk mahasiswa, nama, alamat, jenis kelamin dan seterusnya. •
File
Kumpulan record-record sejenis yang mempunyai panjang elemen yang sama, atribute yang sama, namun berbeda-beda data valuenya. •
Database
Kumpulan file-file yang mempunyai kaitan antara satu file dengan file yang lain sehingga membentuk satu bangunan data untuk menginformasikan satu perusahaan, instansi dalam batasan tertentu. •
Database Management System (DBMS)
Kumpulan file yang saling berkaitan bersama dengan program untuk pengelolaannya disebut DBMS. Database adalah kumpulan datanya, sedangkan program pengelolanya berdiri sendiri dalam satu paket program yang berfungsi untuk membaca data, mengisi data, menghapus data serta melaporkan data dalam database.
2
Konsep dan Perancangan Basis Data Aradea
1.3 Operasi Dasar Basis Data Operasi dasar yang dapat dilakukan oleh basis data meliputi : •
Pembuatan basis data baru (create database)
•
Penghapusan basis data (drop database)
•
Pembuatan file/table baru ke dalam basis data (create table)
•
Penghapusan file/table dari suatu basis data (drop table)
•
Penambahan data baru ke sebuah file di sebuah basis data (insert)
•
Pengambilan data dari sebuah file (retrieve/search)
•
Pengubahan data dari dari sebuah file (update)
•
Penghapusan data dari sebuah file (delete)
1.4 Objektif dan Penerapan Basis Data Pemanfaatan basis data dilakukan untuk memenuhi sejumlah tujuan (objektif) seperti berikut : •
Kecepatan dan kemudahan (Speed)
•
Efisiensi ruang penyimpanan (Space)
•
Keakuratan (Accurate)
•
Ketersediaan (Availability)
•
Kelengkapan (Completeness)
•
Keamanan (Security)
•
Kebersamaan pemakai (Sharability)
Secara lebih nyata bidang-bidang fungsional yang telah umum memanfaatkan basis data antara lain : •
Kepegawaian
•
Pergudangan (inventori)
•
Akuntansi
•
Layanan pelanggan (customer care)
•
Dan lain-lain
Bentuk-bentuk organisasi/perusahaan yang memanfaatkan basis data (sebagai komponen sistem informasi) dapat berupa: Perbankan, Asuransi, Rumah Sakit, Produsen Barang, Industri Manufaktur, Pendidikan/ Sekolah, Telekomunikasi dan lainlain.
3
Konsep dan Perancangan Basis Data Aradea
2 SISTEM BASIS DATA 2.1 Definisi Basis data hanyalah sebuah objek yang pasif. Ia tidak akan pernah berguna jika tidak ada pengelola atau penggeraknya, yang menjadi pengelola atau penggerak secara langsung adalah program atau aplikasi (software). Gabungan dari keduanya (basis data dan pengelolanya) menghasilkan sebuah sistem. Secara umum sebuah sistem basis data merupakan sistem yang terdiri dari atas kumpulan file (tabel) yang saling berhubungan (dalam sebuah basis data di sebuah system komputer) dan sekumpulan program (DBMS) yang memungkinkan beberapa pemakai dan atau program lain untuk mengakses dan memanipulasi file-file (table-tabel) tersebut. Data Base Management System (DBMS)
Basis Data
User
File1
File3
User
File2
File4
User
Gambar 2.1 Sistem Basis Data.
2.2 Komponen Sistem Basis Data •
Perangkat Keras (Hardware) Perangkat keras yang terdapat dalam sebuah system basis data adalah Komputer (stand alone atau lebih dari satu/ networking), Memory sekunder (online dan offline) dan media/ perangkat komunikasi.
•
Sisetm Operasi (Operating System) Program pengelola basis data hanya dapat aktif (running) jika system operasi telah aktif. Sejumlah Sistem Opersai yang banyak digunakan misalnya : MS-DOS, MSWindows v.XX (untuk komputer stand alone atau client dalam jaringan), Novel Netware, MS-Windows NT/2000, Unix (untuk komputer server dalam jaringan).
4
Konsep dan Perancangan Basis Data Aradea
•
Basis Data Basis data dapat berisi : File/table, indeks dll. Disamping berisi dan menyimpan data, basis data juga mengandung/ menyimpan definisi struktur.
•
Database Management System (Sistem Pengelola Basis Data) DBMS merupakan sebuah perangkat lunak khusus yang akan menentukan bagaimana data diorganisasikan, disimpan, diubah dan diambil. DBMS juga menerapkan mekanisme pengamanan data, pemakaian data secara bersama, keakuratan/ konsistensi data dsb. Perangkat lunak DBMS antara lain : dBAse III+, dBase IV, FoxBase, Rbase, MS Acess dan Borland Paradox, Borland Interbase, MS SQL Server, CA Open Ingres, Oracle, Informix, Sybase, dll.
•
Pengguna Basis Data a. Database Manager Suatu modul program yang menyediakan interface antara penyimpanan data dengan suatu aplikasi program. Tugas dan tanggung jawab : interaksi dengan file manager, integrasi, keamanan, kontrol, backup dan recovery. b. Database Administrator (DBA). Oarng yang mempunyai kekuasaan sebagai
pusat pengontrolan terhadap
seluruh system baik data maupun program yang mengakses data. Funsi DBA : -
mendefinisikan pola struktur database
-
mendefinisikan struktur penyimpanan dan metode akses.
-
mampu memodifikasi pola dan organisasi phisik.
-
memberikan kekuasaan pada user untuk mengakses data.
-
menspesifikasikan keharusan integritas data.
c. Database User Ada 4 macam pemakai basis data yang berbeda keperluan dan cara aksesnya : -
Programmer Aplikasi. Pemakai yang berinteraksi dengan basis data melalui DML (data manipulation language), yang disertakan dalam program yang ditulis dalam bahasa pemrograman induk (C, Pascal, Basic, Cobol, dll)
-
User Mahir (Casual User) Pemakai yang berinteraksi dengan system tanpa menulis modul program, mereka menyatakan query dengan bahasa query yang telah disediakan DBMS.
5
Konsep dan Perancangan Basis Data Aradea
-
User Umum (End User Naïve User) Pemakai yang berinteraksi dengan sistem basis data melalui pemanggilan satu program aplikasi permanen (executableprogram) yang telah ditulis/ disediakan sebelumnya oleh programmer.
-
User Khusus (Specialized User) Pemakai khusus yang menuliskan aplikasi database tidak dalam kerangka data processing yang tradisional, aplikasi tersebut diantaranya : CAD, Knowledge Base, Expert System, system yang menyimpan
data dalam
bentuk data yang komplek misalnya data grafik, audio,dll. •
Aplikasi Basis Data Aplikasi (perangkat lunak) ini bersifat opsional, artinya ada tidaknya tergantung dari kebutuhan. Program ini ada yang sudah disediakan bersama dengan DBMS nya, ada juga yang harus dibuat sendiri dengan menggunakan aplikasi lain yang khusus (development tools). Artinya aplikasi ini ada yang terpisah atau menyatu dengan DBMS. Aplikasi yang menyatu dengan DBMS implementasinya akan lebih cocok untuk pemakaian sendiri (stand alone) yang bebannya lebih ringan, perangkat lunak ini adalah : dBase III+, FoxBase dan MS-Access. Aplikasi yang terpisah dengan DBMS implementasinya akan lebih cocok untuk pemakaian berat oleh banyak pemakai (multi user), perangkat lunak ini diantaranya : MS SQL Server, Oracle, CA OpenIngres, Sysbase, Informix, IBM DB2, dll Perangkat lunak ini memang dirancang sejak awal berdiri sendiri dan terpisah dari aplikasi basis datanya dan banyak sekali fasilitas (feature) yang ditangani oleh DBMS ini.
2.3 Syarat Basis Data Penyusunan suatu basis data
digunakan untuk mengatasi maslah maslah pada
penyusunan data, yaitu : •
Redudansi dan Inkonsistensi Data Redudansi adalah penyimpanan
dibeberapa tempat
untuk datayang sama dan
mengakibatkan pemborosan ruang penyimpanan dan juga biaya pengaksesan akan lebih tinggi. Akibat penyimpanan yang berulang-ulang dibeberapa file dapat mengakibatkan juga inkonsistensi (tidak konsisten). 6
Konsep dan Perancangan Basis Data Aradea
•
Kesulitan pengaksesan data. Belum adanya fasilitas tertentu untuk memenuhi permintaan user tentang pengaksesan data, penyelesaian dan solusi untuk hal ini adalah ke arah DBMS yang mampu mengakses data secara langsung dengan bahasa yang familiar dan user friendly.
•
Isolasi Data untuk Standarisasi Jika data tersebar dalam beberapa file dalam bentuk format yang tidak sama, misalnya bilamana data dibuat dari format text file Pascal, Basic, dan juga dalam format C++ dan lainnya, ini akan menyulitkan dalam menulis program aplikasi untuk mengambil dan menyimpan data. Maka haruslah data dalam satu basis data dibuat satu format sehingga mudah dalam pembuatan program aplikasinya.
•
Multiple User (Banyak pemakai) Basis data dibangun karena nantinya data tersebut digunakan oleh banyak orang dalam waktu yang berbeda, diakses oleh program yang sama tapi berbeda orang dan waktu, karena data yang diolah tidaklah tergantung dan menyatu dalam program tapi terlepas dalam satu kelompok data.
•
Masalah keamanan (security) Tidak setiap pemakai sistem basis data diperbolehkan untuk mengakses semua data (pengaturan hak akses), misalnya disesuaikan dengan jabatan dan kapasitas pemakai tersebut di sebuah perusahaan. Keamanan ini dapat diatur lewat program yang dibuat oleh pemrogram atau fasilitas keamanan dari sistem operasi.
•
Masalah Integritas (kesatuan) Database berisi file-file yang saling berkaitan, secara teknis maka ada field kunci yang mengkaitkan file-file tersebut.
•
Masalah Data Independence (kebebasan data) Bahasa yang diciptakan dari DBMS apapun yang terjadi pada struktur file misalnya melihat atau menambah data cukuplah dengan utility yang disediakan, ini berarti perintah-perintah dalam paket DBMS bebas terhadap basis data. Apapun perubahan dalam basis data semua perintah akan mengalami kestabilan tanpa perlu ada yang diubah. Berbeda dengan sistem pemrosesan file dengan suatu bahasa tertentu yang sudah dibuat, kemudian terjadi perubahan struktur file maka program tersebut haruslah diubah, dan ini tidak bebas terhadap database yang ada.
7
Konsep dan Perancangan Basis Data Aradea
2.4 Abstraksi Data Abstraksi data merupakan tingkatan/ level dalam bagaimana
melihat data dalam
sebuah basis data . Ada 3 level abstraksi data : View 1
View 2
View 3
Level Konseptual
Level Fisik
Gambar 2.2 Level Abstraksi Data Keterangan : •
Level Fisik (Physical Level) Adalah level terendah dalam abstraksi data, menggambarkan bagaimana sesungguhnya suatu data disimpan dalam kondisi sebenarnya. Data dilihat sebagai gabungan dari struktur dan datanya sendiri, level ini berurusan dengan data sebagai teks, angka atau bahkan melihatnya sebagai himpunan bit data.
•
Level Konseptual (Conceptual Level) Adalah level yang menggambarkan data apa yang sebenarnya disimpan dalam basis data dan hubungannya dengan data yang lain. Data disimpan/ direpresentasikan dalam beberapa file/table yang saling berhubungan.
•
Level Pandang Pemakai (View Level) Adalah level tertinggi dari abstraksi data, level ini sangat dekat dengan user yang hanya menunjukan sebagian dari basis data. Level ini yang mengkonversikan data asli/fisik menjadi data bermakna/lojik pada pemakai.
2.5 Bahasa Basis Data DBMS merupakan perantara bagi pemakai dengan basis data dalam disk, cara berkomunikasinya diatur dalam suatu bahasa khusus yang ditetapkan oleh perusahaan pembuat DBMS. Contoh-contoh bahasa basis data diantaranya adalah SQL, dBase, Ouel dan sebagainya. Sebuah Bahasa Basis Data biasanya dapat dipilah kedalam 2 bentuk, yaitu : a. DDL (Data Definition Language) b. DML (Data Manipulation Language) 8
Konsep dan Perancangan Basis Data Aradea
•
DDL Struktur/ skema basis data yang menggambarkan/ mewakili desain basis data, dengan bahasa ini dapat membuat table baru, membuat indeks, mengubah table, menentukan struktur penyimpanan table dsb. Hasil kompilasi perintah DDL adalah kumpulan tabel yang disimpan dalam file khusus yang disebut kamus data.
•
DML Bahasa basis data yang berguna untuk melakukan manipulasi dan pengambilan data pada suatu basis data, manipulasi dapat berupa penyisipan, penghapusan dan pengubahan data di suatu basis data. DML ini bertujuan memudahkan pemakai untuk mengakses data.
2.6 Struktur Sistem Basis Data Naïve user
Program aplikasi
Programmer Aplikasi
Casual User
DBA
System calls
Query
Skema basis data
DML precompiler
Query processor
DDL compiler
Kode objek program aplikasi
Database Manager
File Manager
Data files
Data dictionary
Disk
Gambar 2.3 Struktur Sistem Basis Data Keseluruhan
9
Konsep dan Perancangan Basis Data Aradea
3 MODEL DATA 3.1 Definisi Model data adalah kumpulan perangkat konseptual untuk menggambarkan data, hubungan data, makna data dan batasan data. Model data ini lebih tepat jika disebut Model Data Lojik. Ada sejumlah cara dalam merepresentasikan model data dalam perancangan basis data, yaitu secara umum dapat dibagi dalam 2 (dua) kelompok : 1. Model Lojik Data Berbasis Objek (Object Based Logical Models), terdiri dari : • Model Keterhubungan Entitas (Entity Relationship Model) • Model Berorientasi Objek (Object Oriented Model) • Model Data Semantik (Semantic Data model) • Model Data Fungsional (Functional Data Model) 2. Model Lojik Data Berbasis Record (Record Base Logical Models), terdiri dari : • Model Relasional (Relational Model) • Model Hirarkis (Hierarchical Model) • Model Jaringan (Network Model)
3.2 Model Keterhubungan Entitas (Entity Relationship Model) ER-Model dapat didefinisikan suatu model untuk menjelaskan hubungan antara data dalam basis data, didasarkan pada persepsi bahwa “real world” terdiri dari objek-objek dasar yang memiliki relasi / hubungan antar objek. Pada ER-Model, semesta data yang ada di dunia nyata diterjemahkan/ ditransformasikan dengan memanfaatkan sejumlah perangkat konseptual menjadi sebuah diagram data, yang umum disebut “Entity Relationship Diagram (ER-D)”. Komponen-komponen pembentuk ER-Model : a. Entitas : individu yang mewakili sesuatu yang nyata dan dapat dibedakan dari sesuatu yang lain. b. Atribut : yang mendeskripsikan karakteristik (properti) dari entitas. c. Relasi : menunjukan adanya hubungan diantara sejumlah entitas. d. Kardinalitas : menunjukan jumlah maksimum entitas yang dapat berelasi dengan entitas pada himpunan entitas yang lain, dapat berupa : -
Satu ke Satu (One to One)
-
Satu ke Banyak (One to Many) / Banyak ke Satu (Many to One)
10
Konsep dan Perancangan Basis Data Aradea
-
Banyak ke Banyak (Many to Many)
Satu ke satu (One to One) : entitas pada himpunan entitas A berhubungan dengan paling banyak dengan satu entitas pada himpunan entitas B, dan sebaliknya. A
B
Entitas 1
Entitas 1
Entitas 2
Entitas 2
Entitas 3
Entitas 3
Satu ke Banyak (One to Many)/ Banyak ke Satu (Many to One) : entitas pada himpunan entitas A dapat berhubungan dengan banyak entitas pada himpunan entitas B, tetapi tidak sebaliknya untuk setiap entitas pada himpunan entitas B berhubungan paling banyak dengan satu entitas pada himpunan entitas B. A Entitas 1
B Entitas 1 Entitas 2
Entitas 2
Entitas 3 Entitas 4
Untuk derajat relasi Banyak ke Satu (Many to One) sebaliknya dari pernyataan diatas atau kondisi gambar diatas. Banyak ke Banyak (Many to Many) : entitas pada himpunan entitas A dapat berhubungan dengan banyak entitas pada himpunan entitas B, juga sebaliknya. A
B
Entitas 1
Entitas 1
Entitas 2
Entitas 2
Entitas 3
Entitas 3
Entitas 4
Entitas 4
11
Konsep dan Perancangan Basis Data Aradea
3.3 Entity Relationship Diagram (ER-D) Model Entity-Relationship berisi komponen-komponen himpunan entitas dan himpunan relasi yang masing-masing dilengkapi dengan atribut-atribut yang merepresentasikan seluruh fakta dari ‘dunia nyata’, dapat digambarkan dengan lebih sistematis dengan menggunakan Entity Relationship Diagram (ER-D). Notasi simbolik yang digunakan di dalam ER Diagram adalah : Persegi Panjang
Menyatakan himpunan entitas
E Lingkaran atau Elip
Menyatakan atribut, atribut yang berfungsi sebagai key diberi garis bawah
a Belah Ketupat
Menyatakan himpunan relasi
R Garis
Sebagai penghubung antara himpunan relasi dengan himpunan entitas dan himpunan entitas dengan atributnya
Kardinalitas Relasi
Menyatakan jumlah maksimum entitas yang dapat berelasi dengan entitas pada himpunan entitas yang lain.
1 dan 1 (satu ke satu) 1 dan N (satu ke banyak) N dan N (banyak ke banyak) Berikut contoh penggambaran relasi antar himpunan entitas lengkap dengan kardinalitas relasi dan atribut-atributnya : •
Relasi satu ke satu (One-to-One) nama dosen
alamat_dosen
Dosen
1
nama dosen
kode jurusan
Mengepalai
kode jurusan
1
nama_jurusan
Jurusan
Pada relasi ini, setiap dosen paling banyak mengepalai satu jurusan dan setiap jurusan pasti dikepalai oleh paling banyak satu orang dosen. Pada himpunan entitas Dosen dan himpunan entitas Jurusan memiliki dua atribut, yang salah satunya (memakai garis bawah) berfungsi sebagai kunci (key). Sementara pada
12
Konsep dan Perancangan Basis Data Aradea
himpunan Relasi juga terdapat dua atribut, yang keduanya sebetulnya berasal dari atribut key masing-masing himpunan entitas, maka kedua atribut tersebut digolongkan sebagai kunci tamu (foreign key), yang berfungsi sebagai penghubung antar himpunan entitas. •
Relasi satu ke banyak (One to Many) nama dosen
alamat_dosen
Dosen
nama dosen
1
kode kuliah
N
Mengajar
waktu
kode kuliah
tempat
nama_kuliah
Kuliah
sks
semester
Pada relasi ini, setiap dosen dapat dapat mengajar lebih dari satu mata kuliah, sedangkan setiap matakuliah dipegang hanya paling banyak oleh satu orang dosen. Pada himpunan relasi terdapat dua foreign key yang berasal dari himpunan entitas, tetapi ada pula dua atribut tambahan yang tidak berasal dari himpunan entitas. Hal ini memang dimungkinkuan dan bahkan umum terjadi. •
Relasi banyak ke banyak (Many to Many) nim
nama_mhs
Mahasiswa
alamat_mhs
tgl_lahir
nim
N
kode kuliah
Mempelajari
indeks_nilai
kode kuliah
N
nama_kuliah
Kuliah
sks
semester
Pada relasi ini setiap mahasiswa dapat mempelajari lebih dari satu mata kuliah, demikian juga sebaliknya setiap mata kuliah dapat dipelajari oleh lebih dari satu orang mahasiswa.
Pembuatan Diagram E-R Diagram E-R selalu dibuat secara bertahap, langkah-langkah teknis yang dapat dilakukan untuk menghasilkan Diagram E-R, adalah sebagai berikut : •
Mengidentifikasi dan menetapkan seluruh himpunan entitas yang akan terlibat.
•
Menentukan atribut-atribut key dari masing-masing himpunan entitas. 13
Konsep dan Perancangan Basis Data Aradea
•
Mengidentifikasi dan menetapkan seluruh himpunan relasi diantara himpunan entitas-himpunan entitas yang ada beserta foreign key nya.
•
Menentukan derajat atau kardinalitas relasi untuk setiap himpunan relasi.
•
Melengkapi himpunan entitas dan himpunan relasi dengan atribut deskripsi (nonkey).
Diagram E-R dengan Kamus Data Pendeklarasian atribut-atribut pada Diagram E-R dapat dipisahkan dan dinyatakan dalam sebuah kamus data. Ini diperbolehkan jika sebuah sistem yang ruang lingkupnya lebar dan kompleks. Kamus data berisi atribut yang diapit kurung kurawal dan atribut yang berfungsi sebagai key juga dibedakan dengan atribut yang bukan key, dengan menggaris bawahi atribut tersebut. Berikut contoh Diagram E-R dengan Kamus Data : Mahasiswa
N
Mempelajari
N
Kuliah
N
Mengajar
1
Dosen
Kamus Data : •
Mahasiswa = { nim, nama_mhs, alamat_mhs, tgl_lahir }
•
Kuliah = { kode kuliah, nama_kuliah, sks, semester }
•
Dosen = { nama dosen, alamat_dosen }
•
Mempelajari = { nim, kode kuliah, indeks_nilai }
•
Mengajar = { kode kuliah, nama dosen, waktu, tempat }
3.4 Model Jaringan (Network Model) Model jaringan akan terdiri atas sekumpulan record yang dihubungkan satu sama lain melalui link (yang berupa pointer), sebuah record setara dengan dengan sebuah entitas dalam ER Model. Sebuah record adalah sekumpulan field yang masing-masing hanya berisi sebuah nilai data. Sebagai contoh ada dua tipe record yaitu dosen dan mata kuliah yang dapat dideklarasikan sebagai berikut : type dosen = record kode_dos : integer ; nama_dos : string ; alamat_dos : string; end
type kuliah = record kode_kul : string ; nama_kul : string ; sks : integer; semester : integer; end
14
Konsep dan Perancangan Basis Data Aradea
Dengan struktur record seperti itu, berikut diagram struktur data : nama dos
alamat dos Dosen
kode kul
nama_kul
Mengajar
sks
semester
Kuliah
Diagram struktur data merupakan skema yang menyatakan desain basis data jaringan, diagram tersebut terdiri dari dua komponen yaitu kotak yang menunjukan tipe record dan garis yang menunjukan link. Berikut data dan link yang terjadi antara record dosen dan record kuliah : Yogaswara, MT
Jl. Kaliurang
IF-249 Perancangan Sistem
2
5
IF-976 Organisasi Komputer
3
3
Respati, MSc
Jl. Edelwis
MI-707 Basis Data
3
3
Rusi, Ir
Jl. Mawar
MI-774 Analisis Sistem
3
4
Cara diatas hanya layak diterapkan pada basis data dengan link yang berderajat satu ke satu atau satu ke banyak, dan cara diatas akan sulit jika diterapkan untuk link yang berderajat banyak ke banyak. Model jaringan ini secara umum sukar untuk diimplementasikan dan sangat komplek. Kelebihna dari model jaringan ini adalah efisiensi ruang penyimpanan akibat ketiadaan redudansi data dan akses data yang cepat karena langsung memanfaatkan pointer ke alamat fisik data. Saat ini dapat dikatakan model jaringan sudah tidak dimanfaatkan lagi, kecuali untuk aktivitas-aktivitas penelitian.
3.5 Model Hirarkis (Hierarchical Model) Model hirarkis akan terdiri atas sekumpulan record yang dihubungkan satu sama lain melalui link (yang berupa pointer) yang membentuk suatu struktur hirarkis, pengertian record dan link sama seperti pada model jaringan. Berikut contoh diagram struktur pohon yang mengilustrasikan hubungan record dosen dan mata kuliah : Dosen
nama dos
Kuliah
kode kul
alamat dos
nama_kul
sks
semester
15
Konsep dan Perancangan Basis Data Aradea
Diagram struktur pohon merupakan skema yang digunakan untuk basis data hirarkis. Diagram tersebut terdiri dari dua komponen yaitu kotak yang menunjukan tipe record dan garis yang menunjukan link. Berikut himpunan record-record dosen dan kuliah diorganisasikan dalam sebuah struktur pohon: Kuliah
Yogaswara, MT Jalan Kliurng
Respati, MSc
IF-249 P S I
2
5
MI-707 DBMS
IF-976 ORKOM
3
3
Jalan Edelwis
3
3
Rusi, Ir
MI-774
Jalan Mawar
ANSI
3
4
Dari sruktur pohon tersebut dapat disimpulkan bahwa tipe record kuliah berada dibawah tipe record dosen
secara hirarkis. Maka disebutkan tipe record
kuliah
merupakan child dan tipe record dosen merupakan parent dalam struktur pohon tersebut. Penggunaan struktur pohon sejauh ini tidak ada yang aneh, hanya jika digunakan untuk relasi dengan derajat banyak ke banyak akan menghasilkan banyak sekali redudansi data, kesulitan juga terjadi pada operasi query dan manipulasi data tertentu. Keunggulan dari model ini terletak pada keteraturan struktur yang ditunjukan dan sangat cocok diterapkan pada sebuah system/ persoalan yang keterkaitan antara objek-objek di dalamnya mengikuti struktur hirarkis tertentu. Karena keterbatasan pemakainya dan kelemahan yang cukup mendasar, seiring dengan semakin sempurnanya “model relasional”, model hirarkis ini juga jarang untuk dimanfaatkan.
16
Konsep dan Perancangan Basis Data Aradea
4 PERANCANGAN BASIS DATA 4.1 Definisi Perancangan basis data merupkan suatu hal yang sangat penting, kesulitan utama dalam merancang basis adalah bagaimana merancang basis data sehingga dapat memuaskan/ memenuhi keperluan saat ini dan masa mendatang. Dalam merancang basis data dapat dilakukan dengan dua buah teknik/ pendekatan yaitu :
1. Menerapkan Normalisasi terhadap struktur table yang telah diketahui, atau dengan 2. Langsung membuat model Entity-Relationship.
Perancangan basis data seringkali diasosiasikan dengan pembuatan model EntityRelationship (ER-Model), dimana kelompok-kelompok data dan relasinya diwujudkan dalam bentuk diagram, hal itu tidak salah karena model memang merupakan representasi nyata dari sebuah perancangan. Normalisasi merupakan cara pendekatan lain dalam membangun desain lojik basis data relasional yang tidak secara langsung berkaitan dengan model data, tetapi dengan menerapkan sejumlah aturan dan kriteria standar untuk menghasilkan struktur table yang yang normal. Namun dalam pelaksanaannya desain lojik basis data relasional yang didasari baik oleh prinsip normalisasi maupun model ER akan menghasilkan hasil yang mirip.
Dalam pendekatan Normalisasi : •
Perancang basis data bertitik tolak dari situasi yang nyata.
•
Perancang basis data telah memiliki item-item yang siap ditempatkan dalam baris dan kolom pada table.
•
Demikian juga dengan sejumlah aturan tentang keterhubungan antara item data.
Dalam pendekatan model Entity Relationship : •
Langsung membuat model data lebih tepat dilakukan jika yang telah diketahui baru prinsip-prinsip sistem secara keseluruhan.
17
Konsep dan Perancangan Basis Data Aradea
Kedua pendekatan ini cukup sering terjadi dilakukan bersama-sama, berganti-ganti. Dari fakta yang telah dimiliki dilakukan normalisasi, untuk kepentingan evaluasi dan dokumentasi hasil normalisasi tersebut diwujudkan dalm bentuk sebuah model data. Model data yang sudah jadi tersebut bisa saja dimodifikasi dengan pertimbangan tertentu. Hasil modifikasi itu kemudian diimplementasikan dalam bentuk sejumlah struktur table dalam sebuah basis data. Struktur ini bisa diuji kembali dengan menerapkan aturan-aturan normalisasi, sehingga akhirnya dapat diperoleh sebuah struktur basis data yang benar-benar efektif dan efisien. Begitulah kedua pendekatan ini dapat saling memperkuat satu sama lain.
4.2 Normalisasi Normalisasi merupakan proses pengelompokan data elemen menjadi tabel-tabel yang menunjukan entity dan relasinya atau lebih difokuskan pada tinjauan komprehensif terhadap setiap kelompok dan (tabel) secara individual. Sebelum mengenal lebih jauh mengenai normalisasi ada beberapa konsep yang harus diketahui terlebih dahulu : •
Field/ Atribut kunci (Key)
•
Ketergantungan Fungsional (Functional Depedency)
Field/ Atribut kunci (Key) Key adalah satu atau gabungan dari beberapa atribut yang dapat membedakan semua baris data (row) dalam tabel secara unik. Terdapat beberapa macam key yang dapat diterapkan pada suatu tabel, yaitu: 1. Super Key Satu atau lebih atribut (kunmpulan atribut) yang dapat membedakan setiap baris data dalam sebuah table secara unik. Bisa terjadi ada lebih dari satu kumpulan atribut yang bersifat seperti itu dalam sebuah tabel, misalnya: Pada tabel nasabah terdapat atribut-atribut sebagai berikut : no_rek, nama, no_ktp, tempat_lahir, tgl_lahir, alamat Super Key :
no_rek : karena unik tidak mungkin ganda no_ktp : karena unik tidak mungkin ganda nama : jika bisa menjamin tidak ada nilai yang sama utk atribut ini.
18
Konsep dan Perancangan Basis Data Aradea
2. Candidate Key Merupakan kumpulan atribut minimal yang dapat membedakan setiap baris data dalam sebuah tabel secara unik. Jika satu kunci kandidat berisi lebih dari satu atribut, maka
biasanya disebut sebagai composite key (kunci campuran/
gabungan). Pada tabel nasabah misalnya : Candidate Key : no_rek : karena unik tidak mungkin ganda nama : jika bisa menjamin tidak ada nilai yang sama utk atribut ini. nama + tgl_lahir : mungkin dapat dipakai sebagai
kunci karena
kemungkinan sangat kecil seseorang punya nama sama yang lahir pada hari yang sama. (composite key) 3. Primary Key Pada sebuah tabel dimungkinkan adanya lebih dari satu candidate key, salah satu dari candidate key (jika memang ada lebih dari satu) dapat dijadikan sebagai primary key. Pemilihan primary key dari sejumlah candidate key tersebut didasari oleh : •
Dapat mengidentifikasi secara unik suatu kejadian dan dapat mewakili setiap kejadian dari suatu entity (bersifat unik).
•
Lebih sering (lebih natural) untuk dijadikan sebagai acuan.
•
Lebih ringkas dan jaminan keunikan key tersebut lebih baik.
•
Tidak boleh “null” (tidak ada datanya)
•
Harus bisa menjamin setiap nilai primary key pada sebuah table, harus dimiliki pula oleh table lainnya.
Dengan pertimbangan-pertimbangan tersebut, maka yang paling cocok digunakan sebagai primary key pada tabel nasabah adalah “no_rek”. 4. Alternate Key Adalah candidate key yang tidak menjadi/ tidak dipakai sebagai primary key. Terkadang alternate key ini dipakai sebagai kunci pengurutan dalam laporan misalnya. 5. Foreign Key Foreign key (kunci tamu) adalah satu atribut yang melengkapi satu relationship yang menunjukan ke induknya. Kunci tamu ditempatkan pada entity anak dan sama dengan kunci utama (primary key) induk relasinya. Contoh : 19
Konsep dan Perancangan Basis Data Aradea
Tabel Dosen : sandi_dosen 24001 24005 24077
nama Yogaswara, MT Respati, ST Rusi, Ir
no_ktp 117624 110282 110707
alamat Jl. Kaliurang no.24 Jl. Pasanggrahan no.6 Jl. Edelwis no.7
gender Laki-laki Laki-laki Perempuan
sandi_dosen = primary key Tabel Mata kuliah kode_mtkul IF-2424 IF-0707 IF-0583 IF-7683
mata_kuliah Basis Data Analisis Sistem Informasi Organisasi Komputer Arsitektur Komputer
semester 4 5 3 4
sks 3 2 2 3
sandi_dosen 24001 24077 24005 24001
kode_mtkul = primary key sandi_dosen = foreign key Field sandi_dosen pada tabel dosen sebagai primary keysedangkan field sandi_dosen pada tabel mata kuliah sebagai foreign key, karena tabel mata kuliah ini berhubungan dengan tabel dosen sebgai induknya.
Ketergantungan Fungsional (Functional Depedency) Definisi dari functional depedence adalah : “ Diberikan sebuah relasi R, atribut Y dari R adalah bergantung fungsi pada atribut X dari R jika dab hanya jika setiap nilai X dalam R punya hubungan dengan tetap satu nilai Y dalam R (dalam setiap satu waktu)”. Pada tabel dosen berisi atribut : sandi_dosen 24001 24005 24077
nama Yogaswara, MT Respati, ST Rusi, Ir
no_ktp 117624 110282 110707
alamat Jl. Kaliurang no.24 Jl. Pasanggrahan no.6 Jl. Edelwis no.7
gender Laki-laki Laki-laki Perempuan
Isi dari atribut nama bergantung pada sandi_dosen. Jadi dapat dikatakan bahwa atribut nama bergantung secara fungsi pada sandi_dosen dan sandi_dosen menunjukan secara fungsi nama. Jika ingin mengetahui sandi_dosen seorang dosen, maka dapat menentukan nama dosen tersebut. Notasi untuk ketergantungan fungsi ini adalah : sandi_dosen
nama
atau nama = f (sandi_dosen)
20
Konsep dan Perancangan Basis Data Aradea
4.3 Bentuk Bentuk Normalisai Pada proses normalisasi terdapat tahapan-tahapan (bentuk) normalisasi, yaitu : •
Bentuk Tidak Normal (Un normalized Form) Merupakan bentuk kumpulan data yang akan direkam, tidak ada keharusan mengikuti suatu format tertentu, dapat saja data tidak lengkap atau terduplikasi. Data dikumpulkan apa adanya sesuai kedatangannya.
•
Bentuk Normal Pertama (1NF/ First Normal Form) Jika semua atribut mempunyai nilai data yang atomic (tidak dapat dipecah lagi), tetapi masih terdapat beberapa atribut yang muncul secara berulang.
•
Bentuk Normal Kedua (2NF/ Second Normal Form) Relasi telah berada/ memenuhi bentuk normal pertama dan semua atribut yang bukan kunci hanya bergantung secara fungsi pada kunci utama/ primary key. Pada bentuk normal kedua haruslah sudah ditentukan kunci kunci field.
•
Bentuk Normal Ketiga (3NF/Third Normal Form) Relasi telah berada/ memenuhi bentuk normal kedua dan semua atribut yang bukan kunci adalah non transitive dependency (ketergantungan transitif = bila menjadi atribut biasa pada suatu relasi, tetapi menjadi kunci pada relasi lainnya)
•
Boyce-Codd Normal Form (BCNF) Relasi harus sudah dalam bentuk ketiga dan setiap atribut harus bergantung fungsi pada atribut super key/ semua determinannya merupakan candidate key.
21
Konsep dan Perancangan Basis Data Aradea
Contoh Kasus : Sebuah Relasi “ Rawat Pasien “ •
Bentuk Tidak Normal (Un normalized Form)
no_pasien P0001 P0002 P0003 P0004 P0005 P0006 P0007 P0008
•
jenis_perawatan Gawat Darurat Rawat Inap Rawat Inap Sehari Rawat Jalan Rawat Inap Rawat Inap Sehari Gawat Darurat Rawat Jalan
jenis_kamar KM001 KM002 KM003 KM004
Biaya_kamar Rp.100.000 Rp.75.000 Rp.50.000 Rp.25.000
Bentuk Normal Pertama (1NF/ First Normal Form)
no_pasien P0001 P0002 P0003 P0004 P0005 P0006 P0007 P0008
•
nama Bati Totti Nesta Maldini Cana Ihlam Nuno Gomes
nama Bati Totti Nesta Maldini Cana Ihlam Nuno Gomes
jenis_perawatan Gawat Darurat Rawat Inap Rawat Inap Sehari Rawat Jalan Rawat Inap Rawat Inap Sehari Gawat Darurat Rawat Jalan
jenis_kamar KM001 KM002 KM003 KM004 KM002 KM003 KM001 KM004
biaya_kamar Rp.100.000 Rp.75.000 Rp.50.000 Rp.25.000 Rp.75.000 Rp.50.000 Rp.100.000 Rp.25.000
Bentuk Normal Kedua (2NF/ Second Normal Form)
Menjadi : Relasi “Pasien” dan “Biaya_Rawat” Relasi “Pasien” no_pasien P0001 P0002 P0003 P0004 P0005 P0006 P0007 P0008
nama Bati Totti Nesta Maldini Cana Ihlam Nuno Gomes
jenis_perawatan Gawat Darurat Rawat Inap Rawat Inap Sehari Rawat Jalan Rawat Inap Rawat Inap Sehari Gawat Darurat Rawat Jalan
Relasi “Biaya_Rawat” jenis_perawatan Gawat Darurat Rawat Inap Rawat Inap Sehari Rawat Jalan
jenis_kamar KM001 KM002 KM003 KM004
biaya_kamar Rp.100.000 Rp.75.000 Rp.50.000 Rp.25.000
22
Konsep dan Perancangan Basis Data Aradea
•
Bentuk Normal Ketiga (3NF/Third Normal Form)
Menjadi : Relasi “Pasien”, “Kamar_Rawat” dan “Biaya_Rawat” Relasi “Pasien” no_pasien P0001 P0002 P0003 P0004 P0005 P0006 P0007 P0008
nama Bati Totti Nesta Maldini Cana Ihlam Nuno Gomes
jenis_perawatan Gawat Darurat Rawat Inap Rawat Inap Sehari Rawat Jalan Rawat Inap Rawat Inap Sehari Gawat Darurat Rawat Jalan
Relasi “Kamar_Rawat” jenis_perawatan Gawat Darurat Rawat Inap Rawat Inap Sehari Rawat Jalan
jenis_kamar KM001 KM002 KM003 KM004
Relasi “Biaya_Rawat” jenis_kamar KM001 KM002 KM003 KM004
biaya_kamar Rp.100.000 Rp.75.000 Rp.50.000 Rp.25.000
Relasi Antar Tabel Pasien no_pasien * nama jenis_perawatan **
Kamar_Rawat jenis_perawatan * jenis_kamar **
Biaya_Rawat jenis_kamar * biaya_kamar
Keterangan : * = primary key ** = foreign key
23
Konsep dan Perancangan Basis Data Aradea
•
Boyce-Codd Normal Form (BCNF)
Misalnya : Relasi “Seminar” no_peserta 240100 240101 240102 240101 240109
seminar 7783 7783 7776 7776 7776
Instruktur Rusi, Ir Respati, ST Pita, Ir Yogaswara, MT Yogaswara, MT
Menjadi : Relasi “Pengajar” dan “Peserta-Instruktur” Relasi “Pengajar” Seminar 7783 7783 7776 7776
Instruktur Rusi, Ir Respati, ST Pita, Ir Yogaswara, MT
Relasi “Peserta-Instruktur” no_peserta 240100 240101 240102 240101 240109
Instruktur Rusi, Ir Respati, ST Pita, Ir Yogaswara, MT Yogaswara, MT
4.4 Soal-Soal Latihan : Latihan I : Misalnya diketahui relasi “Karyawan” sebagai berikut : Nip 1230 1230 1231 1231 1231 1231 1232
Nama Rusi Rusi Resa Resa Resa Resa Pita
tgl_lahir 1/2/70 1/2/70 8/1/68 8/1/68 8/1/68 8/1/68 4/3/72
alamat Jl.Edelwis Jl.Edelwis Jl.Elang Jl.Elang Jl.Elang Jl.Elang Jl.Dahlia
tgl_sk 1/3/84 5/6/87 15/7/75 7/2/78 21/12/81 1/2/82 5/4/89
no_sk 3/sk/84 6/sk/87 7/sk/75 2/sk/78 12/sk/81 1/sk/82 4/sk/89
gol 2A 2B 3A 3B 3C 3C 2A
gaji 50 65 80 100 120 120 50
tunj 25 40 35 65 75 75 35
status Aktif Aktif Aktif Aktif Aktif Keluar Aktif
Kapan tabel/ relasi tersebut dikatakan dalam bentuk 1NF, 2NF dan 3NF ?
24
Konsep dan Perancangan Basis Data Aradea
Latihan II : Misalnya diketahui relasi “Pemesanan Tiket Kereta” sebagai berikut : no 1 1 2 2
nama Resa Resa Yoga Yoga
almt Jl.Edelwis Jl.Edelwis Jl.Xurg Jl.Xurg
Kd_krta A B C D
Nm_krta Parahiyangan Sawunggalih SenjaExpres ArgoBromo
tujuan Bdg Pwkt Yogya Sby
tarif 50 100 150 200
tgl_psn 1/9/03 2/9/03 3/9/03 4/9/03
jam 08:00 10:00 12:00 14:00
jml 2 2 2 2
Jml_byr 100 200 300 400
Kapan tabel/ relasi tersebut dikatakan dalam bentuk 1NF, 2NF dan 3NF ?
Latihan III : Misalnya diketahui relasi “Pembelian Barang” sebagai berikut : No Fac 799 998 998
kode supp S02 G01 G01
nama supp Swa Ara Ara
kode brg R02 A01 A02
nama barang Plooter Hd Segeat Hd Quntm
tgl 2/2/04 7/2/04 7/2/04
jatuh tempo 9/3/04 9/3/04 9/3/04
qty
harga
jml
total
10 10 10
150 1350 2000
1500 13500 20000
1500 33500 33500
Kapan tabel/ relasi tersebut dikatakan dalam bentuk 1NF, 2NF dan 3NF ?
25
Konsep dan Perancangan Basis Data Aradea
5 IMPLEMENTASI BASIS DATA 5.1 Definisi Implementasi basis data merupkan upaya untuk membangun basis data fisik yang ditempatkan dalam memori sekunder (disk) dengan bantuan DBMS, tahap implementasi basis data diawali dengan melakukan transformasi dari model data yang telah selesai dibuat skema/ struktur basis data sesuai dengan DBMS yang dipilih. Secara umum sebuah Diagram ER akan direpresentasikan menjadi sebuah basis data fisik, sedangkan komponennya berupa himpunan entitas dan himpunan relasi akan ditransformasikan menjadi table-tabel (file-file data) dan atribut akan
dinyatakan
sebagai field-field dari tabel-tabel yang sesuai. Faktor-faktor yang mempengaruhi performansi sistem basis data : •
Kualitas dan bentuk perancangan basis data yaitu struktur basis data dan cara akses (algoritma aplikasi)
•
Kualitas mesin
•
Sistem Operasi
•
DBMS (Data Base Management System)
5.2 Transformasi Model Data ke Basis Data Fisik Aturan umum dalam pemetaan model data yang digambarkan dengan Diagram ER menjadi Basis Data Fisik adalah sebagai berikut : 1. Setiap himpunan entitas akan diimplementasikan sebagai sebuah tabel (file data). nim
nama_mhs
Mahasiswa
alamat_mhs
tgl_lahir
Tabel Mahasiswa : nim
nama_mhs
alamat_mhs
tgl_lahir
26
Konsep dan Perancangan Basis Data Aradea
2. Relasi dengan derajat relasi 1 – 1 (satu ke satu) kode dosen
nama
Dosen
alamat
kode dosen
1
kode jurusan
kode jurusan
1
Mengepalai
nama_jurusan
Jurusan
Direperesentasikan dalam bentuk penambahan/ penyertaan atribut-atribut relasi ke table yang mewakili salah satu dari kedua himpunan entitas. Tabel Dosen : kode_dosen
Tabel Jurusan :
Nama
Alamat
kode_jurusan
nama_jurusan
kode_dosen
3. Relasi dengan derajat relasi 1 – N (satu ke banyak) nama
alamat
Dosen
kode dosen
1
kode dosen
kode kuliah
N
Mengajar
waktu
kode kuliah
tempat
nama_kuliah
Kuliah
sks
semester
Juga direpresentasikan dalam bentuk pemberian/ pencantuman atribut key dari himpunan entitas pertama (yang berderajat 1) ke tabel yang mewakili himpunan entitas ke dua (yang berderajat N). Tabel Dosen : kode_dosen
nama
alamat
Tabel Kuliah : kode_kuliah
nama_kuliah
sks
semester
kode_dosen
tempat
waktu
Dari hasil transformasi diatas jika kemudian ternyata bahwa atribut waktu pada table kuliah merupakan atribut bernilai banyak, maka table tersebut tidak memenuhi bentuk normal tahap pertama (1 NF). Maka table ini dapat didekomposisikan lagi menjadi sebagai berikut.
27
Konsep dan Perancangan Basis Data Aradea
Tabel Kuliah : Kode_kuliah
nama_kuliah
sks
semester
Kode_dosen
Tabel Jadwal : Kode_kuliah
tempat
waktu
4. Relasi dengan derajat relasi N – N (banyak ke banyak) nim
nama_mhs
N
Mahasiswa
alamat_mhs
nim
tgl_lahir
kode kuliah
kode kuliah
N
Mempelajari
indeks_nilai
nama_kuliah
Kuliah
sks
semester
Direpresentasikan dalam bentuk tabel (file data) khusus yang memiliki field (foreign key) yang berasal dari key-key dari himpunan entitas yang menghubungkannya. Tabel Mahasiswa : nim
Nama_mhs
alamat_mhs
tgl_lahir
Tabel Memepelajari/ Nilai (Tabel Khusus) : nim
kode_kuliah
indeks_nilai
Tabel Kuliah : kode_kuliah
nama_kuliah
sks
Semester
5.3 Model Data Lanjutan Pada bab sebelumnya sudah dikenalkan komponen-komponen model data dasar dalam kegiatan perancangan serta langkah-langkah teknis dalam mentransformasikan fakta dilapangan ke sebuah model data, berikut dibahas sejumlah varian komponenkomponen perancangan basis data serta proses-proses lanjutannya.
28
Konsep dan Perancangan Basis Data Aradea
1. Himpunan Entitas Lemah (Weak Entity Sets) Himpunan entitas lemah berisi
entitas-entitas yang kemunculannya tergantung
pada eksistensinya dalam sebuah relasi terhadap entitas lain (Strong Entity = sebaliknya dari entitas lemah), himpunan entitas lemah biasanya tidak memiliki key yang dapat menjamin keunikan entitas didalamnya. nim
nama_ortu
nama_ortu
1 Memiliki nim
Orang Tua
nama_mhs
1
alamat_ortu
Mahasiswa 1
hobbi nim
alamat_mhs
hobbi
tgl_lahir
N
Mempelajari
Hobbi
Data orang tua dan hobbi dapat digolongkan sebagai entitas lemah (dalam ER-D dinyatakan dengan kotak garis ganda), karena kemunculannya sangat tergantung pada adanya relasi dengan entitas yang ada pada himpunan entitas mahasiswa. Atribut nama_ortu dan hobbi diberi garis bawah putus-putus untuk menunjukan atribut key yang tidak meyakinkan. Entitas lemah dapat ditransformasikan menjadi sebuah table dengan menyertakan key yang ada pada entitas kuat, sebagai berikut : Tabel Mahasiswa : nim
nama_mhs
alamat_mhs
Tabel Orang Tua : nim
nama_ortu
tgl_lahir
Tabel Hobbi : alamat_ortu
nim
hobbi
2. Spesialisasi dan Generalisasi Himpunan entitas dimungkinkan adanya pengelompokan entitas-entitas yang menjadi anggotanya, dan terkadang ditemui atribut yang tidak sepenuhnya sama.
29
Konsep dan Perancangan Basis Data Aradea
Jika
dimulai
dari
sebuah
himpunan
entitas
lalu
kemudian
melakukan
pengelompokan yang melahirkan entitas baru (top-down) dan adanya pembedaan atribut menyebabkan entitas-entitas tersebut tidak mungkin disatukan dalam sebuah himpunan entitas saja, maka ini adalah Spesialisasi. Adanya spesialisasi dan generalisasi diwujudkan dalam notasi relasi yang khusus, yang disebut ‘ISA’ (yang berasal dari ‘Is A’) sebagai berikut : kode_dos
nama_dos
top-down
alamat_dos
Dosen
ISA nik
nama_kantor
Dosen Tidak Tetap
Dosen Tetap
pangkat
tgl_masuk
alamat_kantor
Sub Entitas hasil Spesialisasi diimplementasikan sebagai berikut : Tabel Dosen : kode_dos
nama_dos
Tabel Dosen Tetap : kode_dos
nik
pangkat
alamat_dos
Tabel Dosen Tidak Tetap : tgl_masuk
kode_dos
nama_kantor
alamat_kantor
Jika yang dilakukan adalah sebaliknya, sebuah himpunan entitas yang sebenarnya dibagi menjadi dalam kelompok tertentu dan pengelompokan ini tidak dipertegas dengan adanya perbedaan atribut, malah kelompok-kelompok tersebut disatukan dalam sebuah himpunan dengan atribut yang sama. Jadi pendekatannya bersifat bottom-up mula-mula terpisah kemudian menjadi satu, proses yang demikian disebut Generalisasi. Sebagai berikut :
30
Konsep dan Perancangan Basis Data Aradea
bottom-up nim
nama_mhs
alamat_mhs
Mahasiswa
ISA
Mahasiswa D3
Mahasiswa S1
Spesialisasi dan generalisasi merupakan dua proses yang berlawanan, yang ditekankan dalam spesialisasi adalah perbedaan antar kelompok entitas, sedangkan dalam generalisasi yang ditekankan adalah persamaannya. Implementasi pada generalisasi berlawanan dengan spesialisasi yaitu akan menyusutkan jumlah himpunan entitas menjadi hanya sebuah tabel, pada table tersebut ditambahkan sebuah atribut yang nantinya akan diisi dengan kode khusus yang menyatakan perbedaan tersebut, sebagai berikut : Tabel Mahasiswa : nim
nama_mhs
alamat_mhs
prog_studi
prog_studi = atribut tambahan untuk mengakomodasi perbedaan kelompok entitas. Adanya spesialisasi dalam perancangan basis data, umumnya akan terlihat secara eksplisit pada akhir Diagram-ER, sedangkan proses generalisasi seringkali ditiadakan. Peniadaan generalisasi ini direperesentasikan dengan adanya atribut baru pada himpunan entitas akhir.
3. Agregasi Menggambar sebuah himpunan relasi yang secara langsung menghubungkan sebuah himpunan entitas dengan sebuah himpunan relasi dalam Diagram-ER/ sebuah relasi terbentuk tidak hanya dari himpunan entitas tapi juga mengandung unsur dari relasi lain. Sebenarnya kondisi ini tidak tepat bahkan ada yang dengan
31
Konsep dan Perancangan Basis Data Aradea
tegas tidak memperbolehkan, sebagai jalan tengah digunakan notasi khusus untuk menunjukan adanya agregasi semacam itu. Berikut contoh dari agregasi :
N
N
Mahasiswa
Mempelajari
Matakuliah
N nim
kode_kul
Mengikuti kode_pra
nilai
N
Praktikum
kode_pra
Pengimplementasian
nama_pra
harus
jumlah_pra
dilakukan
setelah
relasi
prasyarat
tersebut
terimplementasikan, selanjutnya tinggal meninjau derajat relasi dari agregasinya. Relasi mengikuti merupakan
bentuk agregasi relasi mempelajari dan entitas
praktikum. Karena semua derajat relasi yang ada pada Diagram-ER diatas adalah N-N,
maka
baik
relasi
mempelajari
maupun
mengikuti
masing-masing
direpresentasikan dalam table khusus/terpisah, sebagai berikut : Tabel Mempelajari : nim
kode_kul
Tabel Praktikum : indeks_nilai
kode_pra
nama_pra
jumlah_pra
Tabel Mengikuti: nim
kode_kul
kode_pra
nilai
32
Konsep dan Perancangan Basis Data Aradea
5.4 Pengkodean Internal Cara yang digunakan untuk menyatakan suatu data (atribut) dalam bentuk lain adalah untuk efisiensi ruang penyimpanan disebut dengan pengkodean (data coding). Dari pemakaiannya bias dibedakan adanya pengkodean : •
Pengkodean eksternal (user define coding) : mewakili pengkodean yang telah digunakan secara terbuka dan dikenal oleh orang awam (ada pada fakta/ dunia nyata), contohnya : npm, kode_mtkul.
•
Pengkodean internal (system coding) : kondisi sebaliknya dari pengkodean eksternal, contohnya : kode_dosen sebagai key alternatif. Pengkodean internal tidak hanya diterapkan pada pembuatan key alternatif, tapi juga dapat diterapkan pada atribut data lain (non key) yang memang kita kelola.
Ada tiga bentuk pengkodean yang dapat dipilih : 1. Sekuensial Mengasosiasikan data dengan kode terurut, misalnya : (Sempurna, Baik, Cukup, Kurang, Buruk) dikodekan dengan : “A, B, C, D dan E“. 2. Mnemonic Membentuk suatu singkatan dari data yang ingin dikodekan, misalnya : jenis kelamin (Laki-Laki dan Perempuan) dikodekan dengan “L dan P “. 3. Blok Pengkodean dinyatakan dalam format tertentu, misalnya No.Induk Mahasiswa dengan format XXYYYY XX = dua digit terakhir angka tahun masuk YYYY = nomor urut mahasiswa Format ini harus dibentuk dengan pemilihan domain atribut yang lebih luas, tetapi harus dipertimbangkan juga dari sisi efisiensi ruang penyimpanan.
5.5 DBMS dan Struktur Tabel Pembuatan berbagai tabel basis data adalah sebagai pekerjaan utama dalam tahap implementasi juga penetuan struktur dari tabel-tabel tersebut. Penentuan pilihan tipe data dan featur-featur tambahan untuk struktur table sangat bergantung pada DBMS yang dipilih. Namun dalam penentuan struktur table khususnya penetapan tipe data dan featur tambahan untuk setiap field akan sering dihadapkan pada pilihan-pilihan seperti :
33
Konsep dan Perancangan Basis Data Aradea
1. Data Angka a. Numerik : nilai angka dari tipe data ini menunjukan suatu jumlah misalnya : field sks, field semester, dll. Data numerik berupa : •
Bilangan bulat (integer) terdiri dari Byte (1 byte), Small Integer (2 byte) dan Long Integer (4 byte).
•
Bilangan Nyata (real) terdiri dari Single (4 byte) bisa menampung hingga 7 digit pecahan dan Double (8 byte) hingga 15 digit pecahan.
Dalam penetuan tipe data numerik ukuran data disesuaikan dengan kebutuhan data masukan. b. Alfanumerik : nilai angka dari tipe data ini tidak menunjukan suatu jumlah misalnya : field npm berisi data angka tapi tidak menunjukan suatu jumlah (bertipe teks). 2. Data Teks (Character) Data teks ini dapat berupa abjad/ huruf, angka, karakter khusus atau gabungan dari ketiganya. Tipe ini tidak dapat melakukan operasi matematika.berupa : a. Ukuran tetap (fixed character) : data teks yang ukurannya pasti dan pendek, misalnya untuk field npm ukuran datanya selalu tetap. b. Ukuran dinamis (variable character) : data teks yang ukuran panjang pendeknya sangat bervariasi, misalnya untuk field nama_mhs dan alamat. 3. Data Uang Jika DBMS yang digunakan menyediakan tipe data khusus untuk menyimpan data uang, misalnya bertipe money atau currency (8 byte). Tipe data ini cocok untuk diterapkan dan akan sangat membantu terutama dalam mengatur tampilan datanya, yang dinyatakan dengan pemisahan ribuan/jutaan/milyaran dan pemakaian tanda mata uang. 4. Date/Tanggal Berupa gabungan angka dengan format tanggal tertentu (8 byte). Formatnya terdapat dua pilihan, diantaranya: day/month/year atau Hari/Bulan/Tahun month/day/year atau Bulan/Hari/Tahun 5. Feature tambahan pada DBMS Sejumlah DBMS menyediakan feature tambahan seperti : mandatory (harus diisi atau boleh kosong), default, variant (dalam VB) bila data yang akan dimasukan
34
Konsep dan Perancangan Basis Data Aradea
belum tahu tipenya maka secara otomatis mendeteksi, variant ada dua jenis yaitu untuk number (16 byte) dan character (22 byte). Menetukan tipe data bagi setiap field, pertimbangan pertama DBMS yang dipilih, kecukupan domain, efisiensi ruang penyimpanan, kecepatan pengolahan data dan harus dapat menjamin bahwa tipe data yang dipilih pada setiap field akan dapat mengakomodasi semua nilai yang akan diisikan ke dalam field tersebut. Penetuan struktur dari tabel-tabel basis data dapat disajikan sebagai berikut : Misalnya : Nama Tabel : Mahasiswa Primary Key : npm No 1 2 3 4 5
Nama Field npm nama_mhs alamat_mhs tgl_lahir photo
Tipe C C C D G
Ukuran 8 30 50 8 -
Kunci *
Keterangan nomor pokok mahasiswa nama setiap mahasiswa alamat setiap mahasiswa tanggal lahir setiap mahasiswa photo mahasiswa
Ukuran 5 30 1 1
Kunci *
Keterangan kode matakuliah nama matakuliah jumlah bobot satuan kredit semester semester diselenggarakan perkuliahan
Kunci ** **
Keterangan nomor pokok mahasiswa kode matakuliah indeks nilai matakuliah mahasiswa
Nama Tabel : Matakuliah Primary Key : kd_mtkul No 1 2 3 4
Nama Field kd_mtkul nama_mtkul sks semester
Tipe C C N N
Nama Tabel : Nilai Foreign Key : npm + kd_mtkul No 1 2 3
Nama Field npm kd_mtkul Indeks_nilai
Tipe C C C
Ukuran 8 5 1
Keterangan : C : Character N : Numeric D : Date G : Graphic (untuk menyimpan data berupa gambar atau grafik /feature DBMS)
35
Konsep dan Perancangan Basis Data Aradea
6 ALJABAR RELASIONAL 6.1 Definisi Basis data dipahami oleh pengguna sebagai kumpulan tabel-tabel yang saling ber relasi, konsep untuk akses pada basis data model relasi dapat diterapkan berdasarkan matematika aljabar relasional. Operasi pada aljabar relasional operator-operatornya antara lain adalah sebagai berikut : •
Selection (γ = sigma)
•
Projection (π = phi)
•
Joint (× = cross)
•
Union (∪ = gabungan)
•
Intersection (∩ = irisan)
•
Set different (− = minus)
•
Dan lain-lain
6.2 Operator Aljabar Relasional a. Selection (γ = sigma) adalah memilih tupel (baris) dalam relasi yang memenuhi predikat yang diberikan. Contoh : Relasi Nasabah nama Respati Yoga Rusi Swaraspati
Jl. Jl. Jl. Jl.
alamat RE Marthadinata Merdeka Pataruman Tentara Pelajar
no_rek 111.111 222.222 444.444 555.555
Misal : γnama = “Yoga” (Nasabah) Hasil : Yoga
Jl.Merdeka
111.111
b. Projection (π = phi) adalah operasi semacam selection tetapi mengambil atau memilih beberapa atribut (kolom) dalam relasi. Misal : πno_rek (Nasabah) Hasil : no_rek 111.111 222.222 444.444 555.555
36
Konsep dan Perancangan Basis Data Aradea
Misal : πnama,no_rek (Nasabah) Hasil : nama no_rek Respati 111.111 Yoga 222.222 Rusi 444.444 Swaraspati 555.555 c. Joint (× = cross) adalah tupel t adalah hasil operasi joint antara r dan s jika t memenuhi beberapa tupel di r dalam skema r dan beberapa tupel dalam skema s. Contoh: Relasi Dosen (s)
Relasi Ambil_Kuliah (r)
nama_dosen Yogaswara Respati Rusi Pitaloka Swaraspati
nama_mhs Bati Totti Nesta Kana Maldini
kode_mtkul TI-3000 TI-4000 TI-5000 TI-6000 TI-7000
kode_mtkul TI-5000 TI-7000 TI-3000 TI-4000 TI-7000
indeks_nilai B A C A D
Misal : Dosen × Ambil_Kuliah Hasil : (t) nama_dosen Rusi Swaraspati Yogaswara Respati Swaraspati
nama_mhs Bati Totti Nesta Kana Maldini
kode_mtkul TI-5000 TI-7000 TI-3000 TI-4000 TI-7000
indeks_nilai B A C A D
Dalam query terhadap basis data operator-operator aljabar relasional dapat diekspresikan dengan gabungan, misalnya : πnama_mhs(γnama_dosen = “Swaraspati”(Dosen × Ambil_Kuliah)) d. Union (∪ = gabungan) adalah menghasilkan semua tupel yang berada di kedua relasi. Contoh : Relasi Mtkul_diinginkan kode_mtkul TI-3000 TI-4000 TI-5000 TI-3000 TI-4000
nama_mhs Bati Bati Totti Totti Nesta
Relasi Mtkul_tersedia nama_mhs Bati Totti Nesta Nesta
kode_mtkul TI-3000 TI-5000 TI-4000 TI-6000
Misal : Mtkul_diinginkan ∪ Mtkul_tersedia Hasil : nama_mhs Bati Bati Totti Totti Nesta Nesta
kode_mtkul TI-3000 TI-4000 TI-5000 TI-3000 TI-4000 TI-6000
37
Konsep dan Perancangan Basis Data Aradea
e. Intersection (∩ = irisan) adalah menghasilkan relasi dengan tupel-tupel yang berada pada kedua relasi. Misal : Mtkul_diinginkan ∪ Mtkul_tersedia Hasil : nama_mhs Bati Totti Nesta
kode_mtkul TI-3000 TI-5000 TI-4000
f. Set different (− = minus) adalah menghasilkan relasi dengan tupel-tupel yang berada pada relasi kesatu, tetapi tidak ada pada relasi yang kedua. Misal : Mtkul_diinginkan − Mtkul_tersedia Hasil : nama_mhs Bati Totti
kode_mtkul TI-4000 TI-3000
Misal : Mtkul_ tersedia − Mtkul_ diinginkan Hasil : nama_mhs Nesta
kode_mtkul TI-6000
38
Konsep dan Perancangan Basis Data Aradea
7 STRUCTURED QUERY LANGUAGE (SQL) 7.1 Definisi SQL adalah sebuah bahasa yang dijadikan bahasa standar untuk bahasa basis data. Sebagai sebuah bahasa standar, sejalan dengan perkembangan teknologi basis data dan teknologi komputer pada umumnya, SQL sendiri mengalami beberapa perubahan (penyempurnaan). SQL mula-mula dibuat pada tahun 1970 dengan “Sequel”. Standarisasi yang pertama dibuat pada tahun 1986 oleh ANSI (American National Standards Institute) dan ISO (International Standards Organization), yang disebut sebagai SQL-86. SQL-86 ini diperbaharui pada tahun 1986 menjadi SQL-89. Standar terakhir yang dibuat dan digunakan hingga saat ini adalah SQL-92 yang dikeluarkan pada tahun 1992. Bahasa basis data terdiri dari atas : •
DDL (Data Definition Language)
•
DML (Data Manipulation Language)
7.2 Struktur Dasar Sebuah ekspresi SQL dasar terdiri dari atas 3 klausa : •
Select
: Bersesuaian dengan operasi proyeksi pada aljabar relasi/ memilih atribut (field) yang diinginkan.
•
From
: Relasi yang dipilih atau terkena operasi proyeksi/ table atau gabungan table.
•
Where
: Bersesuaian dengan pilihan predikat pada aljabar relasi/ yang sifatnya opsional/ sebuah keadaan.
Sintaks dari ekspresi SQL dasar : Select F1,F2…Fn Form T1,T2…Tn Where P Keterangan :
A : daftar atribut (field) T : daftar relasi (tabel) P : merupakan predikat query
Contoh :
39
Konsep dan Perancangan Basis Data Aradea
Tabel nasabah no_rek 10924 10606 12476 10678 18987
nama Angie Ari Armand Alanis Aras
Tabel simpanan alamat Jl. Mawar Jl. Dahlia Jl.Ros Jl.Melati Jl.Awan
cabang CBCihideung CBIndihiang CBCilembang CBTawang CBEmpang CBMerdeka
no_rek 10606 12476 10924 10678 10924 12476
jumlah 700.000 1.500.000 2.000.000 500.000 700.000 1.000.000
Klausa Select dan Form Misal :
Select nama From nasabah
Hasil :
nama Angie Ari Armand Alanis Aras
Misal :
Select nama, no_rek From simpanan
Hasil :
Menampilkan seluruh isi atribut nama dan no_rek dari tabel simpanan
Misal :
Select no_rek as Rekening From simpanan
Hasil :
klausa as untuk mengganti tampilan header no_rek menjadi Rekening tanpa menggangu prosesnya.
Misal :
Select * From nasabah
Hasil :
notasi * menampilkan semua atribut yang ada pada tabel nasabah
Klausa Where Klausa ini boleh tidak digunakan, klausa untuk predikat ini dapat menerapkan operator relasi (<, >, <=, >=, =, <>) dan operator logika (and, or dan not). Untuk nilai predikat yang bertipe string harus diapit dengan tanda kutip tunggal (‘ ’). Misal :
Select nama
Hasil : Angie
From nasabah Where no_rek = ‘10924’
40
Konsep dan Perancangan Basis Data Aradea
Misal :
Select *
Misal :
Select no_rek,cabang
From nasabah
From simpanan
Where no_rek = ‘10924’
Where jumlah <= 700.000
Hasil :
10924 Angie Jl.Mawar
Misal :
Select no_rek
Hasil :
10606 CBCihideung 10678 CBTawang 10924 CBEmpang
From simpanan Where jumlah between 450.000 and 800.000 Hasil :
Kalusa between kriteria yang berbentuk range nilai tertentu. 10606 10678 10924
Misal :
Jika dalam query tabel yang dilibatkan lebih dari satu tabel maka table-tabel tersebut harus memiliki relasi. Select nasabah.nama, nasabah.alamat, simpanan.cabang From nasabah, simpanan Where nasabah.no_rek = simpanan.no_rek
Hasil :
Menampilkan nama, alamat dan cabang dari kedua table dimana no_rek nasabah pada table nasabah sama dengan no_rek pada table simpanan.
Latihan : 1. Buat contoh lain untuk penggunaan klausa select, from dan where seperti pada contoh diatas. 2. Pada kedua tabel nasabah dan simpanan, cari isi record data no_rek 10924 dengan jumlah simpanannya lebih dari 800.000 3. Pada kedua tabel nasabah dan simpanan, cari semua nasabah dan cabangnya yang mempunyai jumlah simpanan sebesar 700.000 4. Pada kedua tabel nasabah dan simpanan, cari semua nama, alamat dan cabangnya yang mempunyai simpanan dibawah 1000.000 5. Pada kedua tabel nasabah dan simpanan, cari no_rek, nama dan alamat nasabah yang memiliki simpanan dicabang CBIndihiang dan CBMerdeka. 6. Pada kedua tabel nasabah dan simpanan, cari semua nasabah yang memiliki simpanan di cabang CBTawang.
36
Konsep dan Perancangan Basis Data Aradea
Karakter Khusus Khusus untuk atribut yang bertipe string, dapat dilakukan pencarian dengan pola tertentu, memanfaatkan karakter : •
% (percent) : berarti cocok untuk semua substring.
•
_ (underscore) : berarti cocok untuk semua karakter pada posisi yang sesuai.
•
Ditambah klausa like
Misal :
Select * From nasabah Where nama like ‘A%’
Hasil :
menampilkan record-record nasabah yang namanya diawali dengan huruf A
Misal :
Select * From nasabah Where nama like ‘_a%’
Hasil :
menampilkan nasabah yang huruf/karakter kedua dan namanya adalah a.
Pengurutan Hasil Query Dengan SQL hasil ditampilkan dengan urutan sesuai dengan struktur penyimpanan, jika ingin menampilkan dengan urutan tertentu dengan menambahkan klausa order by. Misal :
Select * From nasabah Order by nama
Hasil :
menampilkan nama nasabah dari abjad terkecil hingga terbesar (ascending).
Misal :
Select * From nasabah Order by tgl_lahir desc
Hasil :
menampilkan nasabah termuda hingga tertua (descending).
42
Konsep dan Perancangan Basis Data Aradea
7.3 Anomali Basis Data SQL juga dilengkapi dengan sejumlah perintah untuk melakukan manipulasi data seperti penambahan record baru, pengubahan nilai atribut dan penghapusan record. Ada tiga Anomali : •
Insert Anomali
•
Delete Anomali
•
Update Anomali
a. Insert Anomali Sintaks SQL : Insert Into NamaTabel(field1, field2,…) values (ekspresi1, ekspresi2,…) Misal : insert into nasabah (no_rek, nama, alamat) values (‘12085’,’Roma’,’Jl.Edelwis’) Hasil : Fields no_rek, nama, alamat pada table nasabah akan di isi dengan nilai 12085, Roma, Jl.Edelwis. b. Delete Anomali Sintaks SQL : delete from NamaTabel where Kondisi Misal : delete from nasabah where no_rek = ‘12085’ Hasil : Record dengan no_rek 12085 akan dihapus Misal : delete from nasabah Hasil : Akan menghapus semua record dari table nasabah c. Update Anomali Sintaks SQL : update NamaTabel set Ekspresi where Kondisi Misal : update nasabah set alamat = ‘Jl.Edelwis’ where no_rek = ‘10606’ Hasil : Record alamat untuk no_rek 10606 akan di update dengan Jl.Edelwis Misal : update simpanan set jumlah = jumlah + 500.000 where no_rek = ‘12476’ 43
Konsep dan Perancangan Basis Data Aradea
Hasil : Field jumlah pada table simpanan akan ditambah 500.000 untuk no_rek = 12476 Misal : update nasabah set nama = ‘ Prof. ’ + nama where no_rek = ‘12476’ Hasil : Nama dengan no_rek 12476 akan ditambahakan gelar Prof. Misal : update simpanan set jumlah = null Hasil : Pengosongan untuk semua field jumlah. (Jika tanpa klausa where maka berlaku untuk semua record).
7.4 Pendefinisian Objek Basis Data Data Definitif Language (DDL) berkaitan dengan perintah - perintah untuk pendefinisian objek-objek basis data. Misalnya pembuatan tabel, sintaks SQL : create table t (A1 D1, A2 D2,…) t
= nama table yang akan dibuat
A = nama-nama atribut yang akan terdapat dalam table t. D = domain nilai masing-masing atribut yang ditentukan berdasarkan tipe data. Misal :
create table mahasiswa (npm char(6), nama_mhs varchar(30), alamat_mhs Varchar(60), tgl_lahir date)
Misalnya penghapusan tabel, sintaks SQL : drop table t Misal :
drop table mahasiswa
Misalnya pembuatan table mahasiswa sekaligus pendefinisian Indeks Primer berdasarkan npm : Misal :
create table mahasiswa (npm char(6), nama_mhs varchar(30), alamat_mhs Varchar(60), tgl_lahir date, primary key (npm))
44
Konsep dan Perancangan Basis Data Aradea
Sintaks SQL untuk perubahan struktur tabel dapat berupa penambahan atribut atau pengurangan/ penghapusan atribut tertentu. Penambahan atribut ke tabel t : alter table t add A D t
= nama table
A = nama atribut D = tipe data untuk atribut A Penghapusan atribut dari tabel t : alter table t drop A Penambahan atribut baru bernama ip di tabel mahasiswa : alter table mahasiswa add ip numeric (5, 2) Jika atribut ip dihapus dari tabel mahasiswa : alter table mahasiswa drop ip
7.5 Fungsi Agregasi Untuk menampilkan data-data agregasi seperti banyak record, total nilai suatu atribut, rata-rata nilai suatu atribut, nilai atribut terbesar ataupun terkecil dapat diperoleh dengan fungsi-fungsi berikut : •
count : menghitung jumlah baris suatu field.
•
sum
: menjumlahkan data-data numerik pada suatu field.
•
avg
: menghitung nilai rata-rata suatu atribut numerik.
•
max
: mengambil nilai maksimum
•
min
: mangambil nilai minimum
Contoh : Tabel karyawan nama Arti Bunda Citra Diva Elsa
Misal :
umur 27 32 29 24 25
golongan A A B A B
Rp. Rp. Rp. Rp. Rp.
gaji 500.000 750.000 474.000 575.000 800.000
select count (*) from karyawan
Hasil :
5
45
Konsep dan Perancangan Basis Data Aradea
Misal :
select count (*) from karyawan where golongan = ‘A’
Hasil :
3
Misal :
select sum (gaji) from karyawan
Hasil :
3.100.000
Misal :
select avg (umur) from karyawan
Hasil :
27,4
Misal :
select max (gaji) from karyawan
Hasil :
800.000
Misal :
select min (umur) from karyawan
Hasil :
24
Misal :
select max (gaji) from karyawan where golongan = ‘A’
Hasil :
750.000
Misal :
select min (gaji) from karyawan where golongan = ‘B’
Hasil :
475.000
46
Konsep dan Perancangan Basis Data Aradea
DAFTAR PUSTAKA Abraham Silberschatz, Henry F.Korth, S.Sudarshan, ”Database System Concept : Third Edition, International Edition”, The Mc Graw-Hill Companies, Inc, 2000. CJ Date HM, ”An Introduction to Database System”, Addison Wesley, 6th editions, 2001. Fatansyah, “Basis Data”, CV. Informatika, Bandung, 2002. Harianto Kristanto, “Konsep dan Perancangan Database”, Andi Offset, Yogyakarta, 2000.