Perancangan Basis Data TI PDF
Perancangan Basis Data TI PDF
Perancangan
Basis Data
Pengantar Basis Data
01
Fakultas Ilmu Teknik Informatika 87012 Tim Dosen.
Komputer
Abstract Kompetensi
Pengantar basis data dalam Mahasiswa dapat membedakan bentuk-
mengambil suatu keputusan di dalam bentuk database di dalam mengambil
suatu organisasi suatu keputusan
Pengantar Basis Data
Basis data menyediakan fasilitas atau mempermudah dalam menghasilkan informasi yang
digunakan oleh pemakai untuk mendukung pengambilan keputusan. Hal inilah yang
menjadikan alasan dari penggunaan teknologi basis data pada saat sekarang (dunia bisnis).
Berikut ini contoh penggunaan Aplikasi basis data dalam dunia bisnis :
Keterangan :
Karena file-file dan program aplikasi disusun oleh programmer yang berbeda,
sejumlah informasi mungkin memiliki duplikasi dalam beberapa file. Sebagai contoh
Karena data tersebar dalam berbagai file, dan file-file mungkin dalam format - format
yang berbeda, akan sulit menuliskan program aplikasi baru untuk mengambil data
yang sesuai.
5. Data Dependence
Apabila terjadi perubahan atau kesalahan pada program aplikasi maka pemakai tidak
dapat mengakses data.
• File: suatu kumpulan record atau dokumen tentang suatu organisasi, orang, wilayah
atau obyek
– Berkas kertas
– File komputer
Pengertian Database :
Database adalah suatu koleksi berisi data operasional yang digunakan oleh sistem-sistem
aplikasi suatu perusahaan/organi-sasi
– Database dokumen/kertas
Komputerisasi :
• Hardware
• Software
• Data
Kebutuhan Informasi
• Programmer Aplikasi
• Pemakai
• Administrator DB
Software
Menyediakan Fasilitas :
• Creating Files
• Inserting Data
• Retrieving Data
• Deleting Data
• Security Control
• Integrity Control
• Recovery Control
• Dll
• Database Administrator
• Programmer Aplikasi
• End-User
Data :
• Shared
• Integrated
Hadware :
• I/O Device
• Device Controllers
• I/O Channel
• Database Machine
1. Mengurangi Redudansi
Data yang sama pada beberapa aplikasi cukup disimpan sekali saja
2. Integrity
3. Menghindarkan Inkonsisten
Data yang sama dapat diakses oleh beberapa User pada saat bersamaan
5. Standarisasi
6. Jaminan Sekuriti
7. Meyeimbangkan kebutuhan
a. Listrik
Karena :
a. Gangguan Listrik
b. Gangguan Komunikasi
- Metadata termasuk informasi tentang hubungan antar file-file atau tabel-tabel dalam
database tersebut.
Metadata
• nama atribut
• tipe datanya
• Sejarah
– Tahun 50an dan 60an semua aplikasi komputer dirancang khusus untuk
keperluan-keperluan spesifik.
Perancangan
Basis Data
Pengantar Data Warehouse
dan Data Mining
02
Fakultas Ilmu Teknik Informatika 87012 Tim Dosen.
Komputer
Abstract Kompetensi
Penjelasan tentang data warehouse Mahasiswa dapat memahami konsep
dan data mining dari data warehouse dan data mining
Pengantar Data Warehouse & Data Mining
Salah satu efek yang dihasilkan dari adanya suatu sistem informasi adalah munculnya
banyak data. Data yang ada ini berasal dari sistem operasional yang berfungsi untuk
menangani transaksi yang terkait dengan proses bisnis yang ditangani oleh sistem informasi
tersebut.
Contoh: sistem informasi presensi karyawan memunculkan data jumlah kehadiran kehadiran
karyawan setiap hari dengan data yang disimpan tergantung pada apa yang dibutuhkan oleh
sistem informasi tersebut (misalkan: nomor induk pegawai, jam masuk, pintu masuk, dsb.).
Data warehouse adalah data-data yang beorientasi subjek, terintegrasi, memiliki dimensi
waktu, serta merupakan koleksi tetap (non-volatile), yang digunakan dalam mendukung
proses pengambilan keputusan. Sedangkan data mining muncul setelah banyak dari pemilik
data baik perorangan maupun organisasi mengalami penumpukan data yang telah
terkumpul selama beberapa tahun, misalnya data pembelian, data penjualan, data nasabah,
data transaksi, email dan sebagainya. Kemudian muncul pertanyaan dari pemilik data
tersebut, apa yang harus dilakukan terhadap tumpukan data tersebut.
Data mining merupakan prinsip dasar dalam mengurutkan data dalam jumlah yang sangat
banyak dan mengambil informasi – informasi yang berkaitan dengan apa yang diperlukan
seperti apa yang biasa dilakukan oleh seorang analis. Dengan bertambah banyaknya jumlah
data yang ada dalam model bisnis yang kita lakukan dalam perusahaan ini, maka peran
analis untuk menganalisa data secara manual perlu digantikan dengan aplikasi yang
berbasis komputer yang dapat menganalisa data secara otomatis menggunakan alat yang
lebih kompleks dan canggih.
Ada empat tugas yang bisa dilakukan dengan adanya data warehouse
1. Pembuatan laporan
Pembuatan laporan merupakan salah satu kegunaan data warehouse yang paling umum
dilakukan. Dengan menggunakan query sederhana didapatkan laporan perhari, perbulan,
pertahun atau jangka waktu kapanpun yang diinginkan.
OLAP mendayagunakan konsep data multi dimensi dan memungkinkan para pemakai
menganalisa data sampai mendetail, tanpa mengetikkan satupun perintah SQL. Hal ini
dimungkinkan karena pada konsep multi dimensi, maka data yang berupa fakta yang sama
bisa dilihat dengan menggunakan fungsi yang berbeda. Fasilitas lain yang ada pada sofware
OLAP adalah fasilitas rool-up dan drill-down. Drill-down adalah kemampuan untuk melihat
detail dari suatu informasi dan roll-up adalah kebalikannya.
3. Data mining
Data mining merupakan proses untuk menggali pengetahuan dan informasi baru dari data
yang berjumlah banyak pada data warehouse, dengan menggunakan kecerdasan buatan
(Artificial Intelegence), statistik dan matematika. Data mining merupakan teknologi yang
diharapkan dapat menjembatani komunikasi antara data dan pemakainya.
cross-market analysis
Data mining dapat dimanfaatkan untuk melihat hubungan antara satu produk dengan produk
lainnya.
Profil pelanggan
Data mining bisa membantu pengguna untuk melihat profil pembeli sehingga dapat diketahui
kelompok pembeli tertentu cenderung kepada suatu produk apa saja.
Informasi summary
Data mining dapat membuat laporan summary yang bersifat multi dimensi dan dilengkapi
dengan informasi statistik lainnya.
Data warehouse dapat membuat ringkasan informasi yang penting dengan tujuan membuat
keputusan bisnis, tanpa harus menjelajahi keseluruhan data. Dengan menggunakan data
warehouse segala laporan telah diringkas dan dapat pula mengetahui segala rinciannya
secara lengkap, sehingga mempermudah proses pengambilan keputusan. Informasi dan
data pada laporan data warehouse menjadi target informative bagi user.
Data warehouse berorientasi subject artinya data warehouse didesain untuk menganalisa
data berdasarkan subject-subject tertentu dalam organisasi,bukan pada proses atau fungsi
aplikasi tertentu. Data warehouse diorganisasikan disekitar subjek-subjek utama dari
perusahaan(customers,products dan sales) dan tidak diorganisasikan pada area-area
aplikasi utama(customer invoicing,stock control dan product sales). Hal ini dikarenakan
kebutuhan dari data warehouse untuk menyimpan data-data yang bersifat sebagai
penunjang suatu keputusan, dari pada aplikasi yang berorientasi terhadap data.
Jadi dengan kata lain, data yang disimpan adalah berorientasi kepada subjek bukan
terhadap proses. Secara garis besar perbedaan antara data operasional dan data
warehouse yaitu :
Data Warehouse dapat menyimpan data-data yang berasal dari sumber-sumber yang
terpisah kedalam suatu format yang konsisten dan saling terintegrasi satu dengan lainnya.
Dengan demikian data tidak bisa dipecah-pecah karena data yang ada merupakan suatu
kesatuan yang menunjang keseluruhan konsep data warehouse itu sendiri.
Syarat integrasi sumber data dapat dipenuhi dengan berbagai cara sepeti konsisten dalam
penamaan variable,konsisten dalam ukuran variable,konsisten dalam struktur pengkodean
dan konsisten dalam atribut fisik dari data.
Contoh pada lingkungan operasional terdapat berbagai macam aplikasi yang mungkin pula
dibuat oleh developer yang berbeda. Oleh karena itu, mungkin dalam aplikasi-aplikasi
tersebut ada variable yang memiliki maksud yang sama tetapi nama dan format nya
berbeda. Variable tersebut harus dikonversi menjadi nama yang sama dan format yang
disepakati bersama. Dengan demikian tidak ada lagi kerancuan karena perbedaan nama,
format dan lain sebagainya. Barulah data tersebut bisa dikategorikan sebagai data yang
terintegrasi karena kekonsistenannya.
Seluruh data pada data warehouse dapat dikatakan akurat atau valid pada rentang waktu
tertentu. Untuk melihat interval waktu yang digunakan dalam mengukur keakuratan suatu
data warehouse, kita dapat menggunakan cara antara lain :
Cara yang paling sederhana adalah menyajikan data warehouse pada rentang waktu
tertentu, misalnya antara 5 sampai 10 tahun ke depan.
Cara yang kedua, dengan menggunakan variasi/perbedaan waktu yang disajikan dalam
data warehouse baik implicit maupun explicit secara explicit dengan unsur waktu dalam hari,
minggu, bulan dsb. Secara implicit misalnya pada saat data tersebut diduplikasi pada setiap
akhir bulan, atau per tiga bulan. Unsur waktu akan tetap ada secara implisit didalam data
tersebut.
Cara yang ketiga,variasi waktu yang disajikan data warehouse melalui serangkaian
snapshot yang panjang. Snapshot merupakan tampilan dari sebagian data tertentu sesuai
keinginan pemakai dari keseluruhan data yang ada bersifat read-only.
Karakteristik keempat dari data warehouse adalah non-volatile,maksudnya data pada data
warehouse tidak di-update secara real time tetapi di refresh dari sistem operasional secara
reguler. Data yang baru selalu ditambahkan sebagai suplemen bagi database itu sendiri
dari pada sebagai sebuah perubahan. Database tersebut secara kontinyu menyerap data
baru ini, kemudian secara incremental disatukan dengan data sebelumnya.
Berbeda dengan database operasional yang dapat melakukan update,insert dan delete
terhadap data yang mengubah isi dari database sedangkan pada data warehouse hanya
ada dua kegiatan memanipulasi data yaitu loading data (mengambil data) dan akses data
(mengakses data warehouse seperti melakukan query atau menampilan laporan yang
dibutuhkan, tidak ada kegiatan updating data).
Sistem basis data mempunyai peran penting sebagai tempat pusat penyimpanan data yang
mendukung kegiatan operasional (Online Transactional Processing / OLTP).
Mendukung jumlah pengguna yang banyak yang sering menambah dan merubah data
transaksi
Mengandung data dalam jumlah besar, termasuk di dalamnya validasi data transaksi
Memiliki struktur yang kompleks dan rumit
Diarahkan secara maksimal untuk melayani aktivitas transaksi harian
Menyediakan teknologi infrastruktur yang mendukung operasional transaksi data dalam
perusahaan
Sebuah sistem OLTP yang umum memiliki karakteristik seperti jumlah user yang sangat
banyak yang secara serentak mengolah dan menambah data. Dalam hal ini, apabila banyak
user yang melakukan pengolahan dan penambahan data akan membebani program, saat
database berkembang semakin banyak dan kompleks, waktu respon akan semakin
berkurang disebabkan bertumpuknya pemakaian sumber daya yang tersedia, sehingga
untuk membuat suatu keputusan sangatlah susah dan membutuhkan waktu yang lama dan
untuk membuat query satu persatu pada sumber data tidak praktis dan efisien, apalagi
sumber data yang ada menyimpan current (arus data), sedangkan data yang dibutuhkan
oleh para pembuat keputusan adalah data-data historis. Sebagai contoh data histori
dibutuhkan pada pembuatan informasi mengenai transaksi setoran/tarikan dengan nominal
tertentu per bulan per cabang, besaran rata-rata transaki per cabang per bulan, transaksi
yang di-reverse, dan lain-lain. Dengan adanya masalah diatas maka data warehouse
mempunyai solusi dalam mengolah data historis dari berbagai sumber data tersebut.
Data warehouse menyediakan sebuah interface gabungan terhadap data, sehingga query-
query pendukung keputusan mudah ditulis. Data warehouse juga dapat menyimpan sumber
data yang heterogen (data yang tersebar pada database Online Transactional Processing)
dipindahkan ke data yang homogen, sehinggga dengan kemampuan akses data warehouse
maka upaya untuk pendukung keputusan dapat diakses dengan cepat, efisien dan akurat.
Hal penting untuk menjaga Data Warehouse adalah dengan selalu memantau kekinian data
yang tersimpan, dengan membuat katalog data dan disimpan secara terpisah dalam suatu
sistem repositori meta data yang menyimpan informasi sumber data terkini.
OLAP (OnLine Analytical Processing) adalah jenis perangkat lunak yang digunakan untuk
melakukan permintaan terhadap data dalam bentuk yang kompleks dan bersifat sementara
serta sewaktu-waktu.
OLAP memanipulasi dan menganalisis data bervolume besar dari berbagai perspektif
(multidimensi). Oleh karena itu OLAP seringkali disebut analisis data multidimensi.
OLAP bekerja dengan data dalam bentuk multidimensi. Yang umum, bentuk tiga dimensi
diwujudkan ke dalam bentuk kubus data.
Tujuan OLAP adalah menggunakan informasi dalam sebuah basis data (data warehouse)
untuk memandu keputusan-keputusan yang strategic. Beberapa contoh permintaan yang
ditangani oleh OLAP:
Kadangkala permintaan yang ditangani OLAP bisa diselesaikan dengan pernyataan SQL
sederhana, tetapi dalam banyak kasus tidak dapat diekspresikan dengan SQL. OLAP dapat
digunakan untuk melakukan konsolidasi, drill-down, dan slicing and dicing. Di bawah ini
adalah kegunaan dari konsolidasi, drill-down, dan slicing and dicing yaitu:
Konsolidasi
melibatkan pengelompokan data. Sebagai contoh kantor-kantor cabang dapat
dikelompokkan menurut kota atau bahkan propinsi. Transaksi penjualan dapat ditinjau
menurut tahun, triwulan, bulan, dan sebagainya. Kadangkala istilah rollup digunakan untuk
menyatakan konsolidasi.
Sistem OLAP pada masa awal menggunakan larik multidimensi di dalam memori untuk
menyimpan data kubus. Sistem seperti ini disebut MOLAP (Multidimensional OLAP). Pada
perkembangan selanjutnya, data disimpan dalam bentuk basis data relasional. Sistem OLAP
seperti ini dikenal dengan sebutan ROLAP (Relational OLAP), selain MOLAP dan ROLAP,
terdapat pula sistem yang dinamakan 1iybrid OLAP (HOLAP), yaitu sistem OLAP yang
menyimpan beberapa ringkasan dalam memori dan menyimpan basis data dan ringkasan-
ringkasan yang lain dalam basis data relasional.
Data diorganisir dengan baik untuk query analisis dan sebagai bahan untuk pemrosesan
transaksi.
Perbedaan diantara struktur data yang heterogen pada beberapa sumber yang terpisah
dapat diatasi.
Aturan untuk transformasi data diterapkan untuk memvalidasi dan mengkonsolidasi data
apabila data dipindahkan dari database OLTP ke data warehouse.
Masalah keamanan dan kinerja bisa dipecahkan tanpa perlu mengubah sistem produksi.
Karenanya data warehouse seharusnya dipahami sebagai suatu proses, yang memiliki
tahapan-tahapan tertentu dan juga ada umpan balik dari setiap tahapan ke tahapan
sebelumnya. Pada umumnya proses data mining berjalan interaktif karena tidak jarang hasil
Perancangan
Basis Data
Lingkungan Basis Data
03
Fakultas Ilmu Teknik Informatika 87012 Tim Dosen.
Komputer
Abstract Kompetensi
Materi ini menyediakan latar belakan Memahami tiga tingkatan arsitektur
informasi yang penting pada basis database
data, diantaranya tiga tingkatan
arsitektur ANSI-SPARC, pengenalan
model data, fungsi yang disediakan
oleh DBMS multi user
Lingkungan 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.
- end user : bahasa yang digunakan adalah bahasa query atau menggunakan fasilitas yang
tersedia pada program aplikasi pada level eksternal ini, user dibatasi pada kemampuan
perangkat keras dan perangkat lunak yang digunakan aplikasi basis data. Didefinisikan
sebagai sebuah Skema Eksternal.
Internal/Physical Level
Adalah level terendah untuk merepresentasikan basis data. Record disimpan dalam media
penyimpanan dalam format byte. Didefinisikan sebagai sebuah Skema Internal.
Contoh dalam sebuah basis data pegawai, ketiga level digambarkan sebagai berikut :
- Pada level konseptual, basis data mengandung informasi tentang sebuah entity yang
disebut EMPLOYEE. Setiap EMPLOYEE mempunyai sebuah EMP_NUMBER (6 karakter),
DEP_NUMBER(4 karakter) & SALARY (5 digit desimal).
- User yang menggunakan PL/I mempunyai sisi pandang level eksternal dimana pegawai
direpresentasikan dalam sebuah record yang ditulis dengan sintaks PL/I
Data Independence
Tujuan utama dari 3 tingkat arsitektur adalah memelihara kemandirian data (data
independence) yang berarti perubahan yang terjadi pada tingkat yang lebih rendah tidak
mempengaruhi tingkat yang lebih tinggi.
Ada 2 jenis data independence, yaitu
Prinsip data independence adalah salah satu hal yang harus diterapkan di dalam
pengelolaan sistem basis data dengan alasan-alasan sbb :
1. DBA dapat mengubah isi, lokasi, perwujudan dalam organisasi basis data tanpa
mengganggu program-program aplikasi yang sudah ada.
2. Pabrik / agen peralatan / software pengolahan data dapat memperkenalkan
produk-produk baru tanpa mengganggu program-program aplikasi yang sudah ada.
3. Untuk memindahkan perkembangan program-program aplikasi
4. Memberikan fasilitas pengontrolan terpusat oleh DBA demi keamanan dan integritas data
dengan memperhatikan perubahan-perubahan kebutuhan pengguna.
– Aplikasi tidak perlu tahu bagaimana dan di mana database menyimpan data,
hanya bagaimana mengaksesnya.
Data Dependent
berarti :
• Sulit mengubah storage structure atau strategi access tanpa harus mengubah
program aplikasi.
Misalnya :
Struktur 2 ( dua ) record dilebur atau kebalikannya.
Komponen Database
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). Secara umum maka setiap pengguna basis data memerlukan bahasa
yang dipakai sesuai tugas dan fungsinya.
Model Data
Model data adalah kumpulan konsep yang terintegrasi yang menggambarkan data,
hubungan antara data dan batasan-batasan data dalam suatu organisasi. Fungsi dari
sebuah model data untuk merepresentasikan data sehingga data tersebut mudah dipahami.
Untuk menggambarkan data pada tingkat eksternal dan konseptual digunakan model data
berbasis objek atau model data berbasis record.
atribut
entitas
MKUL
KD-132 SIM 3
KU-122 Pancasila 2
Perancangan
Basis Data
Konfigurasi Database & Fungsi
DBMS
04
Fakultas Ilmu Teknik Informatika 87012 Tim Dosen.
Komputer
Abstract Kompetensi
Materi ini menyediakan latar belakan Memahami tiga tingkatan arsitektur
informasi yang penting pada basis database
data, diantaranya tiga tingkatan
arsitektur ANSI-SPARC, pengenalan
model data, fungsi yang disediakan
oleh DBMS multi user
Konfigurasi Database
Konfigurasi Database
• Database untuk PC
• Access
• FoxPro
• Dbase III
• Oracle
• Etc.
Model homogen
Aplikasi Database
Suatu program aplikasi (atau sekumpulan program yang saling berhubungan) yang
digunakan untuk melakukan serentetan aktifitas database:
– Tulis (Create/Write)
– Baca (Read)
– Ubah (Update)
– Hapus (Delete)
• Database untuk PC
– Untuk perorangan
• Database kelompok
3. Mendukung Transaksi
Menyediakan mekanisme yang akan menjamin semua perubahan yang berhubungan
dengan transaksi yang sudah ada atau yang akan dibuat.
5. Melayani recovery
Menyediakan mekanisme untuk mengembalikan basis data ke keadaan sebelum terjadinya
kerusakan pada basis data tersebut.
6. Melayani autorisasi
Sebuah DBMS harus menyediakan mekanisme untuk menjamin bahwa hanya pemakai
yang berwenang saja yang dapat mengakses basis data.
8. Melayani integrity
Sebuah DBMS bertujuan untuk menjamin semua data dalam basis data dan setiap terjadi
perubahan data harus sesuai dengan aturan yang berlaku.
Komponen DBMS
1. Query Processsor
Komponen yang merubah bentuk query ke dalam instruksi tingkat rendah ke database
manager
2. Database Manager
Database manager menerima query dan menguji skema eksternal dan konseptual untuk
menentukan apakah record-record dibutuhkan untuk memenuhi permintaan. Kemudian DM
memanggil file manager untuk menyelesaikan permintaan
Memanipulasi penyimpanan file dan mengatur alokasi ruang penyimpanan pada disk.
4. DML Preprocessor
Modul yang merubah perintah DML embedded ke dalam program aplikasi dalam bentuk
fungsi-fungsi yang memanggil dalam host language.
5. DDL Compiler
Merubah perintah DDL menjadi kumpulan tabel yang berisi metadata.
6. Dictionary Manager
Mengatur akses dan memelihara data dictionary. Data dictionary diakses oleh komponen
DBMS yang lain.
2. Command Processor
Memeriksa apakah pemakai mempunyai wewenang untuk menyelesaikan operasi
3. Integrity Checker
Untuk semua operasi yang merubah basis data, integrity checker memeriksa operasi yang
diminta memerlukan batasan integritas.
4. Query Optimizer
Modul ini menentukan strategi yang optimal untuk eksekusi query
5. Transaction Manager
Modul ini mengerjakan proses-proses yang dibutuhkan operasi yang diterima transaksi
6. Scheduler
Modul ini bertanggung jawab untuk menjamin operasi secara bersamaan terhadap basis
data sehingga berjalan tanpa ada masalah antara yang satu dengan yang lain.
7. Recovery Manager
Modul ini menjamin basis data tetap konsisten walaupun terjadi kerusakan.
8. Buffer Manager
Modul ini bertanggung jawab terhadap pemindahan data antara main memory dan
secondary storage, seperti disk dan tape.
Teleprocessing
Arsitektur tradisional untuk sistem multi user adalah teleprocessing, dimana satu komputer
dengan sebuah CPU dan sejumlah terminal seperti pada gambar di bawah ini.
Arsitektiur Teleprocessing
Semua pemrosesan dikerjakan dalam batasan fisik komputer yang sama. Terminal untuk
pemakai berjenis 'dumb', yang tidak dapat berfungsi sendiri dan masing-masing
dihubungkan ke komputer pusat. Terminal-terminal tersebut mengirimkan pesan melalui
subsistem pengontrol komunikasi pada sistem operasi ke program aplikasi, yang bergantian
menggunakan layanan DBMS.
Dengan cara yang sama, pesan dikembalikan ke terminal pemakai. Arsitektur ini
menempatkan beban yang besar pada komputer pusat yang tidak hanya menjalankan
program aplikasi tetapi juga harus menyelesaikan sejumlah pekerjaan pada terminal seperti
format data untuk tampilan di monitor.
Arsitektiur File-Server
Dengan cara ini, file server berfungsi sebagai sebuah hard disk yang digunakan secara
bersamaan.
Kerugian arsitektur file-server adalah :
- Terdapat lalulintas 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
Sesuai dengan namanya, ada sebuah pemroses client yang membutuhkan sumber dan
sebuah server yang menyediakan sumbernya. Tidak ada kebutuhan client dan server yang
harus diletakkan pada mesin yang sama. Secara ringkas, umumnya server diletakkan pada
satu sisi dalam LAN dan client pada sisi yang lain.
Dalam konteks basis data, client mengatur interface berfungsi sebagai workstation tempat
menjalankan aplikasi basis data. Client menerima permintaan pemakai, memeriksa sintaks
dan generate kebutuhan basis data dalam SQL atau bahasa yang lain. Kemudian
meneruskan pesan ke server, menunggu response dan bentuk response untuk pemakai
akhir. Server menerima dan memproses permintaan basis data kemudian mengembalikan
hasil ke client.
Sistem data dictionary dapat dibedakan atas sistem aktif dan pasif. Sistem aktif selalu
konsisten dengan struktur basis data karena secara otomatis dikerjakan oleh sistem.
Sebaliknya, sistem pasif tidak konsisten terhadap perubahan basis data yang dilakukan oleh
pemakai.
Perancangan
Basis Data
Model Relational
05
Fakultas Ilmu Teknik Informatika 87012 Tim Dosen.
Komputer
Abstract Kompetensi
Materi ini menyediakan pemahaman Model relational di dalam penerapat
model relational data warehouse dan mining
Model Relational
Model relasi pertama kali dikenalkan oleh Codd, pada tahun 1971. Sejak itu model relasi
memainkan peranan yang sangat penting dalam berbagai perancangan basis data.
Ada tiga alasan mengapa model relasi mempunyai peranan penting dalam perancangan
basis data yaitu :
Atau
Relasi
Sebuah tabel yang terdiri dari beberapa kolom dan beberapa baris.
Contoh Table :
Tabel Work dibawah ini
Terdiri dari tiga kolom, yaitu Person_Id, Proj_No dan Total_Time.
Tabel ini menyimpan waktu yang dihabiskan oleh person pada proyek tersebut. Selain tabel
Work terdapat juga relasi Persons. Relasi ini menyimpan secara detail tentang person yang
bekerja pada proyek dimaksud.
Misalnya terdiri dari 4 kolom, yaitu Person_id, Date_of_birth, Name
Work
Person_id
Proj_No Total_time
P1 PROJ1 20
P3 PROJ1 16
P2 PROJ2 16
P2 PROJ3 42
P3 PROJ2 17
P3 PROJ1 83
P4 PROJ3 41
Person
Person_id Date_of_bith Name
P1 Jan 62 Joe
P4 FEB 65 Mary
P3 auf
struktur fisik diperlukan selama implementasi fisik yaitu pada saat menentukan layout
data & indeks yang digunakan untuk mengakses data dalam suatu relasi. Hal penting
lainnya yang harus diperhatikan dalam merancang relasi adalah bahwa nama-nama
atribut relasi harus menggambarkan sumber data berasal.
Redundansi
Salah satu dari perancangan logic basis data adalah meniadakan redundansi. Redundansi
(pengulangan data yang tidak perlu) terjadi jika fakta yang sama disimpan lebih dari
sekali.
Contoh duplikasi adalah relasi USE dibawah ini. Relasi USE memiliki lebih dari satu
baris yang mempunyai nilai yang sama untuk atribut Project_Id, yaitu Proj1. Demikian
juga untuk Proj2. Nilai-nilai ini harus disimpan lebih dari sekali karena
menggambarkan fakta yang berbeda
USE
Project_Id
Part_no Qty_used
Proj1 P1 17
Proj2 P2 85
Proj1 P3 73
Proj2 P2 80
ASSIGMENTS
Person_ID Dept DATE Of Birth Date Started Date Finished
P1 Sales (JKT) 1 June 1980 10 June 83 5 Agust 70
P2 Adms (JKT) 21 June 1982 2 June 80 5 Agust 83
P3 Mngr (JKT) 1 Mei 1980 2 June 80 5 Agust 83
MENGHILANGKAN REDUNDANSI
Salah satu cara untuk menghilangkan redundansi adalah dengan dekomposisi (teknik
memecah sebuah relasi menjadi beberapa relasi).
Sbuah relasi yang menyimpan sebuah fakta lebih dari sekali dapat didekomposisi ke
dalam relasi-relasi yang hanya menyimpan sebuh fakta sekali.
WORK
Person_Id Proj_No Total_Time
P1 Proj1 20
P3 Proj1 16
P2 Proj2 35
P2 Proj3 42
P3 Proj2 17
P3 Proj1 83
P4 Proj3 41
Atribut
Kolom pada sebuah relasi
Tupel
Baris pada sebuah relasi
Domain
Kumpulan nilai yang valid untuk satu atau lebih atribut
Derajat
Jumlah atribut dalam sebuah relasi
Relational Key
Super key
Satu atribut/kumpulan atribut yang secara unik mengidentifikasi sebuah tupel di dalam
relasi
Candidate key
Atribut di dalam relasi yang biasanya mempunyai nilai unik
Primary key
Candidate key yang dipilih untuk mengidentifikasikan tupel secara unik dalam relasi
Alternate key
Candidate key yang tidak dipilih sebagai primary key
2. Entity Integrity
Tidak ada satu komponen primary key yang bernilai null.
3. Referential Integrity
Suatu domain dapat dipakai sebagai kunci primer bila merupakan atribut tunggal
pada domain yang bersangkutan.
• Aljabar Relasional
Bahasa query prosedural pemakai menspesifikasikan data apa yang
dibutuhkan dan bagaimana untuk mendapatkannya.
• Kalkulus Relasional
Bahasa query non-prosedural pemakai menspesifikasikan data apa yang
dibutuhkan tanpa menspesifikasikan bagaimana untuk mendapatkannya.
Terbagi 2 :
1. Kalkulus Relasional Tupel
2. Kalkulus Relasional Domain
Contoh :
• QUEL
Berbasis pada bahasa kalkulus relasional
• QBE
Berbasis pada bahasa kalkulus relasional
• SQL
Berbasis pada bahasa kalkulus relasional dan aljabar relasional
Perancangan
Basis Data
Normalisasi
06
Fakultas Ilmu Teknik Informatika 87012 Tim Dosen.
Komputer
Abstract Kompetensi
Materi ini memahami Normalisasi Mahasiswa di harapkan lebih paham
mengenai Normalisasi dan dapat
menyelesaikan kasus
Normalisasi
Definisi
Normalisasi adalah suatu teknik untuk mengorganisasi data ke dalam tabel-tabel untuk
memenuhi kebutuhan pemakai di dalam suatu organisasi.
Proses Normalisasi
• Apabila tabel yang diuji belum memenuhi persyaratan tertentu, maka tabel tersebut
perlu dipecah menjadi beberapa tabel yang lebih sederhana sampai memenuhi
bentuk yang optimal.
Ketergantungan Fungsional
Definisi :
Atribut Y pada relasi R dikatakan tergantung fungsional pada atribut X (R.X ---> R.Y), jika
dan hanya jika setiap nilai X pada relasi R mempunyai tepat satu nilai Y pada R.
No-pem Na-pem
Definisi :
Atribut Y pada relasi R dikatakan tergantung fungsional penuh pada atribut X pada relasi R,
jika Y tidak tergantung pada subset dari X ( bila X adalah key gabungan)
Contoh :
Ketergantungan fungsional :
No-pem Na-pem
Definisi :
Atribut Z pada relasi R dikatakan tergantung transitif pada atribut X , jika atribut Y tergantung
pada atribut X pada relasi R dan atribut Z tergantung pada atribut Y pada relasi R.
( X Y, Y Z , maka X Z )
Contoh :
Ketergantungan transitif :
No-pem Kode-kota
No-pem Kota
Suatu relasi dikatakan sudah memenuhi Bentuk Normal Kesatu bila setiap data bersifat
atomik yaitu setiap irisan baris dan kolom hanya mempunyai satu nilai data.
Suatu relasi dikatakan sudah memenuhi Bentuk Normal Kedua bila relasi tersebut sudah
memenuhi bentuk Normal kesatu, dan atribut yang bukan key sudah tergantung penuh
terhadap keynya.
Suatu relasi dikatakan sudah memenuhi Bentuk Normal ketiga bila relasi tersebut sudah
memenuhi bentuk Normal kedua dan atribut yang bukan key tidak tergantung transitif
terhadap keynya.
Asumsi :
Perancangan
Basis Data
Konsep & Terminology Query
Language
07
Fakultas Ilmu Teknik Informatika 87012 Tim Dosen.
Komputer
Abstract Kompetensi
Materi ini memahami konsep dan Mahasiswa di harapkan lebih paham
terminology Query Language mengenai konsep dan terminology
Query Language
Konsep dan terminologi
Aktifitas Database
• Create/Write (tulis)
• Read (baca)
• Update (ubah)
• Delete (hapus)
• Perusahaan (Enterprise)
– Organisasi
• Entitas (Entity)
• Atribut (Attribute)
• Nilai Data
• Record
• File
• Key
• Primary Key
– Suatu atribut atau beberapa atribut yang secara unik (tidak ada duplikasi)
mengidentifikasi setiap record dalam file
• Administrasi Data
• Administrasi Database
– Pengaturan suatu subset dari data organisasi dan segala interaksi yang
berhubungan (aplikasi, akses, etc.) dengan data tersebut.
Query Language
Query language adalah suatu bahasa yang menyediakan fasilitas bagi user untuk
mengakses informasi dari basis data. Pada umumnya level bahasa ini lebih tinggi dari
bahasa pemrograman standar. Bahasa query dapat dikategorikan sebagai prosedural &
non-prosedural.
Sebagian besar system basis data relasional yang beredar dipasaran menawarkan bahasa
query dengan pendekatan prosedural & non-prosedural.
Bebrapa bahasa query yang murni adalah : aljabar relasional (relational algebra) merupakan
bahasa query prosedural, sedangkan kalkulus relasional tuple (tuple relational calculus) &
kalkulus relasional domain(domain relational calculus) adalah non-prosedural.
Berikut hanya akan dibahas bahasa query bukan bahasa datamanipulation yang lengkap,
yaitu bahasa yang tidak hanya terdiri dari bahas query tetapi juga bahasa untuk
memodifikasi basis data, seperti perintah insert dan delete tuple.
Aljabar relasional adalah sebuah bahasa query prosedural yang terdiri dari sekumpulan
operasi dimana masukkannya adalah satu atau dua relasi dan keluarannya adalah sebuah
relasi baru sebagai hasil dari operasi tersebut. Operasi-operasi dasar dalam aljabar
relasional adalah : select, project, union, set difference, Cartesian product dan rename.
Disamping operasi-operasi dasar terdapat beberapa operasi lainnya seperti set intersection,
natural join, division dan assignment. Operasi-operasi ini akan didefinisikan dalam
terminology operasi dasar.
Operasi-operasi Dasar
Operasi-operasi select, project dan rename disebut operasi unary, karena operasioperasi
tersebut hanya memerlukan satu relasi. Tiga operasi lainnya memerlukan sepasang relasi,
disebut operasi binary.
a. Operasi Select
Operasi select menyeleksi tuple-tuple yang memenuhi predikat yang diberikan. Digunakan
symbol sigma (σ) untuk menunjukkan operasi select. Predikat muncul sebagai subcript dari
σ. Argumen relasi diberikan dalam kurung yang mengikuti σ. Jadi untuk menyeleksi tuple-
tuple dari relasi loan dimana branch-name-nya adalah “Perryridge”, ditulis :
σbranch-name = “Perryridge”(loan)
σamount>1200(loan) untuk menemukan tuple dengan nilai amount lebih dari 1200,
σbrach-name = “Perryridge” and amount >1200 (loan)
untuk menemukan tuple dengan branch-name = “Perryridge” dimana nilai amountnya
lebih dari 1200.
b. Operasi Project
Seandainya diinginkan semua daftar loan-number dan amount, tanpa branchname. Dengan
operasi project dapat dihasilkan relasi ini. Operasi project disimbolkan dengan symbol phi
(π). Nama-nama atribut yang diinginkan tampil ditulias sebagai subcrip π.
Contoh :
πloan-number,amount(loan),
adalah operasi untuk menampilkan seluruh loan-number & amount tanpa branch-name.
πcustomer-name(σcustomer-city=”Horison”(customer))
perhatikan bahwa sebagai argumen dari operasi project adalah sebuah ekspresi untuk suatu
mhsrelasi. Oleh karenanya, operasi-operasi aljabar relasional dapat digabung dengan suatu
ekspresi aljabar relasional.
d. Operasi Union
Operasi union dalam aljabar relasional sama halnya dengan operasi union pada aritmatika.
Misal user menginginkan nama-nama semua nasabah bank yang memiliki sebuah account
atau sebuah loan atau keduanya. Perhatikan bahwa relasi customer tidak mengandung
informasi tersebut. Untuk menjawab query ini diperlukan informasi dari relasi Depositor dan
relasi Borrower. Dengan operasi union informasi yang diinginkan dapat diperoleh dengan
menulis query sebagai berikut :
πcustomer-name(borrower) ∪ πcustomer-name(depositor)
Borrower
Disimbolkan dengan tanda “-“. Operasi ini untuk menemukan tuple-tuple yang berada pada
satu relasi tetapi tidak berada pada relasi yang lainnya.
Contoh untuk menemukan semua nasabah bank yang mempunyai account tetapi tidak
mempunyai
loan, ditulis :
πcustomer-name(depositor) - πcustomer-name(borrower)
hasil query di atas :
Operasi Cartesian-product disimbolkan dengan “x”. Dengan operasi ini dapat dihasilkan
informasi yang merupakan kombinasi dari dua relasi.
Secara garis besar, jika dipunyai relasi r1(R1) dan r2(R2), maka r1 x r2 adalah relasi yang
skemanya merupakan gabungan dari R1 ( atribut-atribut relasi r1) dan R2 (atribut-atribut
r2). Relasi R mengandung semua tuple t dimana terdapat sebuah tuple t1 dalam r1 dan t2
dalam r2 sedemikian sehingga t[R1] = t1[R1] dan t[R2]=t2[R2].
Contoh : Jika diinginkan nama-nama dari semua nasabah yang mempunyai pinjaman (loan)
di bank cabang Perryridge. Maka query-nya ditulis :
σbranch-name=”Perryridge”(borrower x loan)
g. Operasi Rename
Contoh :
Jika E1 & E2 adalah ekspresi aljabar-relasional, maka berikut ini adlah semua ekspresi
aljabar-relasional :
- E1 ∪ E2
- E1 – E2
- E1 x E2
- πs(E1), dimana s adalah daftar yang terdiri dari bebrapa atribut dalam E1
1. Penghapusan (Deletion)
r r-E, dimana r adalah relasi dan E adalah sebuah query aljabar relasional.
Berikut beberapa contoh dari perintah delete dengan aljabar relasional adalah :
account account – r2
2. Penyisipan (Insertion)
Untuk menyisipkan data ke dalam suatu relasi, dapat dilakukan dengan dua cara
rr∪E
Contoh : seandainya akan disisipkan fakta bahwa Smith mempunyai $1200 dalam
3. Updating
r π F1,F2,… Fn (r)
Contoh : seandainya akan dibuat bunga tabungan sebesar 5% ditulis query :
4. View
View didefinisikan dengan statement create view. Untuk mendefinisikan sebuah view maka
view tersebut harus diberi nama dan query untuk menghasilkan view tersebut.
Dimana ekspresi query adalah sebuah ekspresi query relation-algebra yang sah dan nama
view direpresentasikan dengan v.
Contoh : untuk membuat view yang terdiri dari semua cabang bank dan pelanggannya
Perancangan
Basis Data
SQL (Structured Query
Language)
08
Fakultas Ilmu Teknik Informatika 87012 Tim Dosen.
Komputer
Abstract Kompetensi
Materi ini memahami SQL Mahasiswa di harapkan lebih paham
mengenai SQL dan dapat
menyelesaikan kasus dengan SQL
SQL
STRUCTURED QUERY LANGUAGE (SQL)
Sistem basis data komersial menghendaki adanya sebuah bahasa query yang lebih user-
friendly. Oleh karena itu dikenal SQL sebagai bahasa query yang marketable. SQL
menggunakan kombinasi aljabar relasional & kalkulus relasional. Meskipun SQL adalah
bahasa query, namun SQL mempunyai banyak kemampuan lain disamping melakukan
query terhadap basis data. SQL mempunyai kemampuan untuk mendefinisikan struktur
data, modifikasi data dalam basis data dan menentukan konstrain sekuriti.
LATAR BELAKANG
versi SQL. Versi aslinya pertama kali dikembangkan oleh IBM San Jose Research
Laboratory.
DML merupakan bahasa query yang berdasarkan pada aljabar relasi dan kalkulus relasi
tuple. Termasuk didalamnya adalah perintah untuk penyisipan, penghapusan dan
modifikasi. (Contoh pada halaman 9)
- Embedded DML
Bentuk embedded SQL biasanya terdapat dalam bahasa pemrograman multi guna seperti
PL/I, Cobol , Pascal dan Fortran. (COntoh pada halaman 12)
- View Definition
DDL SQL memasukkan perintah untuk menentukan hak-hak akses ke relasi dan view.
- Integrity
DDL SQL memasukkan perintah untuk menentukan konstrain integritas yang harus dipenuhi
oleh data yang tersimpan dalam basis data.
- Transaction control
SQL memasukkan perintah-perintah untuk menentukan awal dan akhir transaksi. Beberapa
implementasi juga memungkinkan locking data untuk concurrency control.
STRUKTUR DASAR
Struktur dasar dari ekspresi SQL terdiri dari tiga klausa yaitu :
Operasi ini digunakan untuk mendaftar semua atribut yang diinginkan sebagai hasil suatu
query.
- Klausa Where berhubungan dengan operasi predikat seleksi dari aljabar relasional.
Operasi ini terdiri dari sebuah predikat yang menyangkut atributatribut dari relasi yang
muncul dalam klausa from.
Select A1,A2,…..An
From r1,r2,….rn
Where P
Contoh : “ Tentukan nama-nama dari semua cabang bank dalam relasi loan “
Query-nya :
Hasil dari query tersebut adalah sebuah relasi yang berisi sebuah atribut tunggal dengan
nama branch-name.
Bahasa query formal bersifat matematis dimana relasi adalah sebuah himpunan sehingga
tuple-tuple yang telah muncul tidak akan muncul lagi (tidak akan terjadi duplikasi tuple). Tapi
dalam prakteknya untuk menghilangkan duplikasi tuple sangat memakan waktu.
Oleh karenanya SQL memungkinkan terjadinya duplikasi tersebut. Dari contoh di atas, maka
query-nya akan mencatat setiap branch-name setiap kali branch-name tersebut ditemukan
dalam relasi loan.
Untuk kasus di atas jika diinginkan untuk menghilangkan duplikasi maka dapat disisipkan
distinct setelah select. Query di atas ditulis ulang sebagai berikut :
Klausa select dapat juga mengandung operasi aritmatika yaitu operator : +, -, *, / dan
operasi terhadap konstanta atau atribut dari tuple. Contoh query berikut :
Akan menghasilkan sebuah relasi yang sama dengan relasi loan, kecuali bahwa atribut
amount dikalikan dengan 100. SQL-92 juga menyediakan tipe data spesial seperti tipe date,
dan memungkinkan beberapa fungsi aritmatika untuk beroperasi pada tipe-tipe ini.
Contoh query : “Temukan semua loan number untuk pinjaman-pinjaman yang dibuat pada
cabang Perryridge dengan jumlah lebih besar dari $1200”.
Select loan-number
From loan
SQL menggunakan konektivitas lojik and, or dan not dalam klausa where. SQL juga
memasukkan perintah between untuk menentukan apakah suatu nilai lebih kecil daripada
atau sama dengan suatu nilai lain dan lebih besar daripada atau sama dengan suatu
nilai lain.
Select loan-number
From loan
Contoh query : “Untuk semua customer yang mempunyai sebuah pinjaman dari bank,
temukan nama dan loan number mereka”.
Operasi Rename
SQL menyediakan mekanisme operasi rename untuk relasi dan atribut. Operasi rename
dalam SQL menggunakan klausa as dengan bentuk :
Nama-lama as nama-baru
Contoh : Jika atribut dengan nama loan-number akan diganti dengan nama loan-id, dapat
ditulis sebagai berikut :
From borrower,loan
branch-name = “Perryridge”
Operasi operasi himpunan pada SQL-92 meliputi : union, intersect, dan except.
Union identik dengan ∪, intersect identik dengan ∩ dan except identik dengan – pada
aljabar relasional.
Operasi Union
union
Operasi union secara otomatis akan menghilangkan duplikasi, tidak seperti klausa
select.
Sehingga pada query di atas, jika Jones (seorang customer) mempunyai beberapa
rekening atau pinjaman (atau keduannya) pada bank, maka Jones hanya akan muncul
sekali. Jika duplikasi diinginkan ada maka harus ditulis union all.
Operasi Intersect
intersect
Operasi Except
Contoh : untuk mendapatkan semua customer yang mempunyai sebuah rekening tetapi
tidak memiliki pinjaman pada bank, ditulis :
except
Operasi except secara otomatis menghilangkan duplikasi. Jika diinginkan ada maka
Data Definition Language (DDL) merupakan sub bahasa SQL yang berfungsi
mendefinisikan tabel saja. Perintah yang digunakan diantaranya: CREATE, ALTER, dan
DROP. Dengan menggunakan ketiga perintah tersebut kita sudah dapat membangun
struktur data dengan lengkap.
CREATE
Bentuk umum:
Latihan CREATE:
Membuat tabel Mahasiswa dengan mengetikkan script SQL berikut pada SQL View di
query.
Keterangan:
pada field NIM dan NAMA data tidak boleh kosong (not null)
Kemudian untuk menjalankannya kita dapat mengklik run / tanda seru dari icon toolbar.
Untuk melihatnya pada object klik tab tables dan double klik nama tabel mahasiswa.
Bentuk umum:
Latihan ALTER:
Sintaks SQL:
Sintaks SQL:
Sintaks SQL:
Sintaks SQL:
Bentuk umum:
Latihan DROP:
1. Menghapus tabel
Mahasiswa.
Sintaks SQL:
Data Manipulation Language (DDL) merupakan sub bahasa SQL yang berfungsi
memanipulasi data yang ada di dalam basis data atau database. Perintah yang termasuk di
dalam DML adalah INSERT, SELECT, UPDATE, dan DELETE.
INSERT
Berfungsi untuk menyisipkan, memasukkan, atau menyimpan data dari luar sistem ke dalam
database.
Bentuk umum:
Sintaks SQL:
SELECT
Perintah select berfungsi untuk membentuk tabel baru dengan cara meng-copy (backup)
seluruh data dari tabel aktif.
Bentuk umum:
SELECT *
INTO namatabelbaru
FROM namatabelaktif
Sintaks SQL: SELECT
*
INTO mahasiswa_baru
FROM mahasiswa
UPDATE
Perintah update berfungsi untuk mengubah satu atau lebih data field yang terdapat pada stu
lebih record.
Bentuk umum:
UPDATE namatabel
SET field=value
WHERE kriteria
Atau
UPDATE namatabel
SET field1=value1, field2=value2, …, field n = value
n WHERE kriteria
Sintaks SQL:
UPDATE mahasiswa
SET nama=”Pondok Indah B6”
WHERE NIM=”12099999”
DELETE
Bentuk umum:
DELETE *
From namatabel
WHERE kriteria
Sintaks SQL:
DELETE mahasiswa
FROM mahasiswa
WHERE NIM=”12099999”
- Average : avg
- Minimum : min
- Maximum : max
- Total : sum
- Count : count
Fungsi-fungsi di atas telah tersedia. Input untuk avg dan sum haruslah bertipe numerik.
Select avg(balance)
From account
Jika fungsi agregasi ingin diterapkan pada kelompok himpunan tuple, maka digunakan
klausa group by. Nama atribut/kel. Atribut dalam klausa group by digunakan untuk
membentuk grup/kelompok. Artinya tuple-tuple yang mempunyai nilai yang sama pada
semua atribut dalam klausa group-by dimasukkan dalam satu grup/kelompok.
From account
Group by branch-name
Jika suatu fungsi diterapkan pada grup/kelompok yang dibentuk oleh group by
maka digunakan klausa having setelah group by.
Contoh : ingin ditampilkan nama cabang yang mempunyai rata-rata saldo lebih dari 1200.
Query-nya :
From account
Fungsi agregrasi count sering digunakan untuk menghitung jumlah tuple dalam suatu relasi.
Notasi fungsi ini dalam SQL adalah count (*). Jadi untuk menentukan jumlah tuple dalam
relasi customer, ditulis :
Keanggotaan Himpunan
Contoh : untuk mendapatkan semua customer yang mempunyai pinjaman dan rekening
pada bank.
Kedua : mencari semua customer yang merupakan peminjam dan yang muncul dalam daftar
pemegang rekening. Maka dilakukan dengan “menyarangkan” subquery di atas dalam
sebuah select luar (outer select),
menjadi :
from borrower
Where customer-name
Perbandingan Himpunan
Perhatikan query berikut : “Temukan semua nama cabang bank yang mempunyai asset
lebih besar dari bank-bank yang mempunyai minimal satu cabang berlokasi di Brooklyn”.
Penghapusan (Deletion)
Yang dapat dihapus (delete) hanyalah tuple bukan nilai pada suatu atribut
tertentu.
Contoh :
- Hapus semua pinjaman dengan jumlah pinjaman antara $1300 dan $1500
(select branch-name
Untuk menambahkan satu tuple dalam relasi digunakan statement insert. Contoh :
Values (“Perryridge”,”A-9732”,1200)
Insert juga dapat dilakukan untuk suatu hasil dari query yang lain.
Contoh :
Update
Dalam situasi tertentu, diinginkan untuk mengganti nilai dalam sebuah tuple tanpa harus
mengganti semua nilai dalam tuple tersebut. Untuk tujuan ini dapat digunakan statement
update.
Contoh :
- untuk menaikkan saldo para nasabah sebesar 5% ditulis query sebagai berikut :
- untuk menaikkan saldo nasabah sebesar 6% bagi nasabah yang saldonya lebih dari
$10000, ditulis query sebagai berikut :
d. Buatkan Query untuk menampilkan data puskemas yang terdapat di DKI Jakarta
a. Buatkan Query untuk mengetahui transaksi bulan Mei tahun 2013 pada puskesmas yang
terdapat di Jakarta
b. Berapa jumlah total nilai pada tahun 2013 untuk semua puskesmas
c. Berapa jumlaj total nilai pada tahun 2013 untuk puskesmas yang memiliki id 10 dan 20
Perancangan
Basis Data
Model ER (Entity Relationship)
09
Fakultas Ilmu Teknik Informatika 87012 Tim Dosen.
Komputer
Abstract Kompetensi
Materi ini memahami Model ER (Entitiy Mahasiswa di harapkan lebih paham
Relationship) mengenai ER dan dapat menyelesaikan
kasus dengan ER
Model ER (Entity Relationship)
Relationship adalah hubungan yang terjadi antara satu atau lebih entity.
Relationship set adalah kumpulan relationship yang sejenis.
PEGAWAI KERJA
PROYEK
Jenis-jenis atribut :
Key
Atribut yang digunakan untuk menentukan suatu entity secara unik.
Atribut Simple
Atribut yang bernilai tunggal.
Atribut Multivalue
Atribut yang memiliki sekelompok nilai untuk setiap instan entity.
NAMA
PEGAWAI
Atribut Derivatif
Suatu atribut yang dihasilkan dari atribut yang lain.
PEGAWAI LAPOR
KOTA
1:1
P1 R1
D1
P2 R2
D2
P3 R3
D3
P4 R4
N 1
. .
KERJA DEPARTEMEN
PEGAWAI
Total Participation
Keberadaan suatu entity tergantung pada hubungannya dengan entity lain.
N 1
PUNYA
PEGAWAI BAGIAN
Partial Participation
Keberadaan suatu entity tidak tergantung pada hubungannya dengan entity
lain.
Weak Entity adalah suatu Entity dimana keberadaan dari entity tersebut tergantung dari
keberadaan entity lain.
Entity yang merupakan induknya disebut Identifying Owner dan relationshipnya disebut
Identifying Relationship.
Weak Entity selalu mempunyai Total Participation constraint dengan Identifying Owner.
MILIK TANGGUNGAN
PEGAWAI
ALM1 KDPOS
TGLLAH N ANGGOTA 1
PEGAWAI BAGIAN
UMUR 1 1
PIMPIN
1
1 N M
JAM
KONTROL
KERJA PUNYA
N
1
PUNYA PROYEK
LOKAPR
NOPRO
N
NAPRO
TANGGUNGAN
PEGAWAI
ALAMAT
2. Setiap relasi yang mempunyai atribut multivalue, buatlah relasi baru dimana Primary
Keynya merupakan gabungan dari Primary Key dari relasi tersebut dengan atribut
multivalue.
PROYEK
LOKPR(NOPRO, LOKASI)
3. Setiap Unary Relationship 1:N, pada relasi perlu ditambahkan suatu foreign key yang
menunjuk ke nilai primary keynya.
5. Setiap Binary Relationship 1:1, dimana Participation Constraint keduanya total, buatlah
suatu relasi gabungan dimana Primary Keynya dapat dipilih salah satu.
6. Setiap Binary Relationship 1:1 dan salah satu Participation Constraintnya Total, maka
Primary Key pada relasi yang Participation Constraintnya Partial menjadi Foreign Key
pada relasi yang lainnya.
11. Setiap Ternary Relationship, buatlah relasi baru dimana Primary Keynya merupakan
gabungan dari Primary Key ketiga tipe Entity yang berelasi.
Perancangan
Basis Data
DFD (Data Flow Diagram)
10
Fakultas Ilmu Teknik Informatika 87012 Tim Dosen.
Komputer
Abstract Kompetensi
Materi ini memahami tentang DFD Mahasiswa di harapkan lebih paham
(Data Flow Diagram) mengenai DFD dan dapat
menyelesaikan kasus dengan DFD
DFF (Data Flow Diagram)
KONSEP PERANCANGAN TERSTRUKTUR
Data Flow Diagram (DFD) adalah alat pembuatan model yang memungkinkan profesional
sistem untuk menggambarkan sistem sebagai suatu jaringan proses fungsional yang
dihubungkan satu sama lain dengan alur data, baik secara manual maupun komputerisasi.
DFD ini sering disebut juga dengan nama Bubble chart, Bubble diagram, model proses,
diagram alur kerja, atau model fungsi.
DFD ini adalah salah satu alat pembuatan model yang sering digunakan, khususnya bila
fungsi-fungsi sistem merupakan bagian yang lebih penting dan kompleks dari pada data
yang dimanipulasi oleh sistem.
Dengan kata lain, DFD adalah alat pembuatan model yang memberikan penekanan hanya
pada fungsi sistem.
DFD ini merupakan alat perancangan sistem yang berorientasi pada alur data dengan
konsep dekomposisi dapat digunakan untuk penggambaran analisa maupun rancangan
sistem yang mudah dikomunikasikan oleh profesional sistem kepada pemakai maupun
pembuat program.
Adalah Entitas diluar sistem yang berkomunikasi / berhubungan langsung dengan sistem.
1. Terminator Sumber
2. Terminator Tujuan
2. Profesional sistem tidak dapat mengubah isi/cara kerja, prosedur yang berkaitan dgn
Terminator.
Ada 4 kemungkinan yang dapat terjadi dalam proses sehubungan dgn input dan output
:
2. proses dapat dihubungkan dgn komponen terminator, data store atau proses melalui
alur data.
Komponen ini digunakan untuk membuat model sekumpulan paket data dan diberi nama
dgn kata benda bersifat jamak. Data store dapat berupa file/database yang tersimpan dalam
disket, harddisk atau bersifat manual seperti buku alamat, file folder.
1. Alur data dari proses menuju data store, hal ini berarti data store berfungsi sebagai
tujuan/tempat penyimpanan fari suatu proses (proses write).
2. Alur data dari data store ke proses, hal ini berarti data store berfungsi sbg sumber/
proses memerlukan data (proses read).
3. Alur data dari proses menuju data store dan sebaliknya berarti berfungsi sbg sumber
dan tujuan.
Alur data digunakan untuk menerangkan perpindahan data / paket data dari satu bagian ke
bagian lainnya.
1. Packets of data
Apabila ada 2 data / lebih yg mengalir dari 1 sumber yg sama menuju pada tujuan yg sama
& mempunyai hubungan digambarkan dgn 1 alur data.
Contoh :
Apabila ada sejumlah paket data yg berasal dari sumber yg sama menuju pada tujuan yg
berbeda atau paket data yg kompleks dibagi menjadi bbrp elemen data yg dikirim ke tujuan
yg berbeda.
Contoh :
Contoh :
Arus data harus dihubungkan pada proses, baik dari maupun yg menuju proses.
Perancangan
Basis Data
DFD (Data Flow Diagram)
11
Fakultas Ilmu Teknik Informatika 87012 Tim Dosen.
Komputer
Abstract Kompetensi
Materi ini memahami DFD (Data Flow Mahasiswa di harapkan lebih paham
Diagram) mengenai DFD dan dapat
menyelesaikan kasus dengan DFD.
Bentuk Data Flow Diagram
Terdapat dua bentuk DFD, yaitu Diagram Alur Data Fisik, dan Diagram Alur data Logika.
Diagram alur data fisik lebih menekankan pada bagaimana proses dari sistem diterapkan,
sedangkan diagram alur data logika lebih menekankan proses-proses apa yang terdapat di
sistem.
DADF lebih tepat digunakan untuk menggambarkan sistem yang ada (sistem yang lama).
Penekanan dari DADF adalah bagaimana proses-proses dari sistem diterapkan (dengan
cara apa, oleh siapa dan dimana), termasuk proses-proses manual.
Untuk memperoleh gambaran bagaimana sistem yang ada diterapkan, DADF harus memuat
:
2. Nama dari alur data harus memuat keterangan yang cukup terinci untuk
menunjukkan bagaimana pemakai sistem memahami kerja sistem.
4. Nama dari simpanan data harus menunjukkan tipe penerapannya apakah secara
manual atau komputerisasi. Secara manual misalnya dapat menunjukkan buku
catatat, meja pekerja. Sedang cara komputerisasi misalnya menunjukkan file urut,
file database.
5. Proses harus menunjukkan nama dari pemroses, yaitu orang, departemen, sistem
komputer, atau nama program komputer yang mengakses proses tersebut.
DADL lebih tepat digunakan untuk menggambarkan sistem yang akan diusulkan (sistem
yang baru). Untuk sistem komputerisasi, penggambaran DADL hanya menunjukkan
kebutuhan proses dari sistem yang diusulkan secara logika, biasanya proses-proses yang
digambarkan hanya merupakan proses-proses secara komputer saja.
Syarat pembuatan DFD ini akan menolong profesional sistem untuk menghindari
pembentukkan DFD yang salah atau DFD yang tidak lengkap atau tidak konsisten secara
logika. Beberapa syarat pembutan DFD dapat menolong profesional sistem untuk
membentuk DFD yang benar, menyenangkan untuk dilihat dan mudah dibaca oleh pemakai.
Seperti yang telah dijelaskan sebelumnya, komponen terminator mewakili lingkungan luar
dari sistem, tetapi mempunyai pengaruh terhadap sistem yang sedang dikembangkan ini.
Maka agar pemakai mengetahui dengan lingkungan mana saja sistem mereka
berhubungan, komponen terminator ini harus diberi nama sesuai dengan lingkungan luar
yang mempengaruhi sistem ini. Biasanya komponen terminator diberi nama dengan kata
benda.
Selanjutnya adalah komponen proses. Komponen proses ini mewakili fungsi sistem yang
akan dilaksanakan atau menunjukkan bagaimana fungsi sistem dilaksanakan oleh
seseorang, sekelompok orang atau mesin. Maka sangatlah jelas bahwa komponen ini perlu
diberi nama yang tepat, agar siapa yang membaca DFD khususnya pemakai akan merasa
yakin bahwa DFD yang dibentuk ini adalah model yang akurat.
Pemberian nama pada komponen proses lebih baik menunjukkan aturan-aturan yang akan
dilaksanakan oleh seseorang dibandingkan dengan memberikan nama atau identitas orang
yang akan melaksanakannya. Ada dua alasan mengapa bukan nama atau identitas orang
(yang melaksanakan fungsi sistem) yang digunakan sebagai nama proses, yaitu :
• Orang tersebut mungkin diganti oleh orang lain saat mendatang, sehingga bila tiap
kali ada pergantian orang yang melaksanakan fungsi tersebut, maka sistem yang
dibentuk harus diubah lagi.
Karena nama untuk komponen proses lebih baik menunjukkan tugas/fungsi sistem yang
akan dilaksanakan, maka lebih baik pemberian nama ini menggunakan kata kerja transitif.
Pemberian nama untuk komponen data store menggunakan kata benda, karena data store
menunjukkan data apa yang disimpan untuk kebutuhan sistem dalam melaksanakan
tugasnya. Jika sistem sewaktu-waktu membutuhkan data tersebut untuk melaksanakan
tugasnya, maka data tersebut tetap ada, karena sistem menyimpannya.
Begitu pula untuk komponen alur data, namanya lebih baik diberikan dengan menggunakan
kata benda. Karena alur data ini menunjukkan data dan infiormasi yang dibutuhkan dan
yang dikeluarkan oleh sistem dalam pelaksanaan tugasnya.
Biasanya profesional sistem memberikan nomor dengan bilangan terurut pada komponen
proses sebagai referensi. Tidak jadi masalah bagaimana nomor-nomor proses ini diberikan.
Nomor proses dapat diberikan dari kiri ke kanan, atau dari atas ke bawah, atau dapat pula
dilakukan dengan pola-pola tertentu selama pemberian nomor ini tetap konsisten pada
nomor yang dipergunakan.
Nomor-nomor proses yang diberikan terhadap komponen proses ini tidak dimaksudkan
bahwa proses tersebut dilaksanakan secara berurutan. Pemberian nomor ini dimaksudkan
agar pembacaan suatu proses dalam suatu diskusi akan lebih mudah dengan hanya
menyebutkan prosesnya saja jika dibandingkan dengan menyebutkan nama prosesnya,
khususnya jika nama prosesnya panjang dan sulit.
Maksud pemberian nomor pada proses yang lebih penting lagi adalah untuk menunjukkan
referensi terhadap skema penomoran secara hirarki pada levelisasi DFD. Dengan kata lain,
nomor proses ini merupakan dasar pemberian nomor pada levelilasi DFD. (Lihat gambar
levelisasi DVD)
Penggambaran DFD dapat dilakukan berkali-kali sampai secara teknik DFD itu benar, dapat
diterima oleh pemakai, dan sudah cukup rapih sehingga profesional sistem tidak merasa
malu untuk menunjukkan DFD itu kepada atasannya dan pemakai.
Dengan kata lain, penggambaran DFD ini dilakukan sampai terbentuk DFD yang enak
dilihat, dan mudah dibaca oleh pemakai dan profesional sistem lainnya. Keindahan
penggambaran DFD tergantung pada standar-standar yang diminta oleh organisasi tempat
profesional sistem
itu bekerja dan perangkat lunak yang dipakai oleh profesional sistem dalam membuat DFD.
Beberapa pemakai kadang-kadang merasa bingung bila ukuran proses satu berbeda
dengan proses yang lain. Mereka akan mengira bahwa proses dengan ukuran yang
lebih besar akan diduga lebih penting dari proses yang lebih kecil. Hal ini sebenarnya
hanya karena nama proses itu lebih panjang dibandingkan dengan proses yang lain.
Jadi, sebaiknya proses yang digambarkan memiliki ukuran dan bentuk yang sama.
Alur data dapat digambarkan dengan melingkar atau hanya garis lurus. Mana yang
lebih enak dipandang tergantung siapa yang akan melihat DFD tersebut.
DFD dapat digambarkan secara manual atau dengan menggunakan bantuan mesin,
tergantung pilihan pemakai atau profesional sistem.
Tujuan DFD adalah untuk membuat model fungsi yang harus dilaksanakan oleh suatu
sistem dan interaksi antar fungsi. Tujuan lainnya adalah agar model yang dibuat itu mudah
dibaca dan dimengerti tidak hanya oleh profesional sistem yang membuat DFD, tetapi juga
oleh pemakai yang berpengalaman dengan subyek yang terjadi. Hal ini berarti DFD harus
mudah dimengerti, dibaca, dan menyenangkan untuk dilihat.
Bila terlalu banyak proses, terminator, data store, dan alur data digambarkan dalam satu
DFD, maka ada kemungkinan terjadi banyak persilangan alur data dalam DFD tersebut.
Persilangan alur data ini menyebabkan pemakai akan sulit membaca dan mengerti DFD
yang terbentu. Jadi semakin sedikit adanya persilangan data pada DFD, maka makin baik
DFD yang dibentuk oleh profesional sistem.
Persilangan alur data ini dapat dihindari dengan menggambarkan DFD secara
bertingkat-tingkat (levelisasi DFD), atau dengan menggunakan pemakaian duplikat
terhadap komponen DFD.
Komponen DFD yang dapat menggunakan duplikat hanya komponen store dan terminator.
Pemberian duplikat ini juga tidak dapat diberikan sesuka profesional sistem yang membuat
DFD, tetapi makin sedikit pemakaian duplikat, makin baik DFD yang terbentuk.
Pemberian duplikat terhadap data store dilakukan dengan memberikan simbol garis lurus (|)
atau asterik (*), sedangkan untuk terminator menggunakan simbol garis miring (/) atau
asterik (*). Banyaknya pemberian simbol duplikat pada duplikat yang digunakan tergantung
banyaknya duplikat yang digunakan.
Penggambaran DFD harus konsisten terhadap kelompok DFD lainnya. Profesional sistem
menggambarkan DFD berdasarkan tingkatan DFD dengan tujuan agar DFD yang dibuatnya
itu mudah dibaca dan dimengerti oleh pemakai sistem. Hal ini sesuai dengan salah satu
tujuan atau syarat membuat DFD.
PENGGAMBARAN DFD
Tidak ada aturan baku untuk menggambarkan DFD. Tapi dari berbagai referensi yang
ada, secara garis besar langkah untuk membuat DFD adalah :
2. Identifikasi semua input dan output yang terlibat dengan entitas luar.
Diagram ini adalah diagram level tertinggi dari DFD yang menggambarkan hubungan
sistem dengan lingkungan luarnya.
Caranya :
- Beri nomor pada proses utama (nomor tidak menunjukkan urutan proses).
Caranya :
• Tentukan proses yang lebih kecil (sub-proses) dari proses utama yang ada di level
zero.
• Apabila diperlukan, munculkan data store (transaksi) sebagai sumber maupun tujuan
alur data.
Pada gambar tersebut terlihat bahwa Proses 0 diuraikan lagi ke dalam empat proses,
penguraian ini digambarkan pada diagram Figure 0, sedangkan Proses 2 diuraikan kembali
menjadi tiga proses yang digambarkan pada diagram Figure 2.
Jadi pada balancing DFD yang perlu diperhatikan adalah jumlah alur data global pada suatu
level harus sama pada level berikutnya.
Ada beberapa hal yang perlu diperhatikan dalam penggambaran levelisasi DFD, yaitu :
• Dalam diagram konteks, ada beberapa hal yang perlu diperhatikan seperti hubungan
sistem dengan dunia luar yang mempengaruhinya, penggambaran sistem dalam
satu proses, dan penggambaran data store (optional) yang dikenal dengan data
store eksternal atau data store master. Data store eksternal ini maksudnya adalah
data store itu dihasilkan oleh sistem yang sedang dianalisis, tetapi digunakan oleh
sistem lain, atau data store itu dihasilkan oleh sistem lain tetapi digunakan oleh
sistem yang sedang dianalisis.
Perancangan
Basis Data
Desain Fisik Data Warehouse
12
Fakultas Ilmu Teknik Informatika 87012 Tim Dosen.
Komputer
Abstract Kompetensi
Materi ini berisi penjelasan desain fisik Mahasiswa dapat memahami desin fisik
pada data warehouse data warehuse
Desain fisik data warehouse
Data Partitioning
Isu desain pada datawarehouse yang cukup penting adalah partitioning. Pengertian dari
data partitioning adalah membagi data pada tempat penyimpanan fisik yang terpisah serta
dapat di atur secara independent.
Benefit yang didapat dengan melakukan pertitioning adalah peningkatan performansi query
pada suatu tabel. Jika tabel terpartisi maka query optimizer dapat menentukan bahwa hasil
dari query tersebut dapat dipenuhi hanya dengan membaca suatu bagian tertentu. Sehingga
proses pencarian dengan full table scan yang memakan resource dapat dihindarkan. Fitur ini
dikenal dengan istilah Partition elimination atau Dynamic partition pruning.
Contoh partitioning pada peningkatan ketersediaan data (availability) adalah dengan cara
meletakan masing-masing partisi pada physical disk yang terpisah. Sehingga jika data pada
suatu disk rusak, maka data lain tetap dapat di akses dengan baik.
Tabel yang dapat dipertimbangkan untuk dipartisi adalah tabel yang memiliki ukuran lebih
dari 2 GB. Selain itu partisi juga dapat digunakan untuk tabel yang bersifat read-only
historical data. Contoh tabel yang biasa dipartisi adalah suatu fact table yang berisi data
Sebuah tabel dapat dipartisi menggunakan kolom disebut partition key. Secara umum,
setiap kolom numerik, karakter, atau tanggal tipe data dapat digunakan sebagai kunci
partisi, namun Anda tidak bisa partisi tabel dengan tipe LONG atau tipe LOB
Pada RDBMS Oracle, metode partisi pada tabel dapat diklasifikasikan sebagai berikut :
• Range Partitioning
• Hash Partitioning
• List Partitioning
• Composite Partitioning
Range Partitioning
Ini merupakan metoda yang paling sering digunakan, dimana data di partisi kedalam range
tertentu sehingga tidak akan terjadi overlapping. Masing-masing partisi dibuat dengan cara
mendefinisikan batas atas dari suatu data. Data yang masuk akan menyesuaikan dengan
batasan data yang telah di definisikan. Metoda ini sangat cocok untuk suatu partition key
yang bersifat continue seperti time.
Pada metode ini dimungkinkan jumlah data per partisi tidak sama besar. Tergantung
banyaknya transaksi yang terjadi setiap bulan.
Metoda ini memodifikasi metoda range partition dengan menambahkan fungsi hash pada
partition key nya. Nilai out put yang dihasilkan digunakan untuk menentukan partisi mana
yang akan digunakan.
Dengan metode ini, seluruh produk dengan nilai PRODUCT_ID yang sama akan
ditempatkan pada partisi yang sama, namun user tidak dapat melakukan control suatu
produk untuk diletakkan pada suatu partisi tertentu. User hanya dapat menentukan berapa
banyak jumlah partisi.
Penerapan metoda ini memungkinkan optimizer melakukan partition prunung jika ada query
yang meminta secara spesifik nilai dari partition key. Contoh : berapa banyak tent yang
terjual dalam satu bulan ?. Namun jika queri yang diminta adalah range suati ID product,
maka proses full table scan tetap akan dijalankan.
Metoda ini memungkinkan data untuk didistribusikan berdasarkan nilai diskrit suatu kolom.
Metoda ini memungkinkan optimizer untuk melakukan partition prunning. Sebagai contoh :
queri yang memerlukan Massachusetts (MA) atau data New Hampshire (NH), optimizer
hanya akan mencari pada partisi NortEast.
Composite Partitioning
• Range-hash
Seperti yang telah diuraikan di atas, metoda hash partition tidak memungkinkan user
untuk melakukan kontrol terhadap distribusi data, di sisilain metoda range partition
memungkinkan jumlah data yang besar pada partisi tertentu. Metoda range hash
partition menggabungkan benefit dari metoda-metoda tersebut. Pertama data di partisi
berdasarkan range kemudian masing-masing partisi dibagi menjadi sub partisi dengan
distribusi dengan menggunakan fungsi hash.
• Range List
Metoda ini akan melakukan partisi pertama kali dengan metode range-partition dengan
cara menggunakan continues key seperti time kemudian sub partisi pada tiap partisi
akan menggunakan metoda nilai diskrit dari suatu kolom.
Index
Indexing merupakan teknik yang penting dalam efisiensi suatu query. Oracle menyediakan
tiga tipe index yang digunakan dalam data warehouse :
• B*tree Index
• Bitmap Index
• Bitmap Join Index
Indeks B*tree memliki struktur hirarki yang memungkinkan pencarian dalam tabel dengan
cepat berdasarkan suatu nilai tertentu dari index key. Indeks ini menyimpan pointer suatu
record menggunakan rowid, yang secara unik mengidentifikasi lokasi fisik dari record dalam
suatu disk. Terdapat dua jenis index B*tree :
• Unique
Dimana indeks ini akan memastikan setiap record akan memiliki nilai unik sebagai key.
Nilai ini akan terbentuk secara otomatis ketika constraint PRIMARY KEY atau UNIQUE
diaktifkan dalam suatu tebel.
• Non unique
Indeks ini akan meningkatkan performansi queri ketika result yang di hasilkan bukan
berdasarkan key nya.
B*tree indeks digunakan jika isi dari indeks key memiliki nilai distinct yang banyak, dimana
tiap nilai akan mengacu pada suatu record pada tabel.
Indeks ini di desain untuk mempercepat query yang melibatkan kolom bernilai distinct
rendah namun berpotensi untuk menghasilkan jumlah data yang besar. Nilai distinct tersebut
disebut dangan kardinalitas. Metode ini menyimpan nilai bitmap untuk setiap nilai unik dalam
satu row
Bitmap index akan terkompress secara otomatis sehingga akan memerlukan media
penyimpanan yang lebih sediki dibandingkan dengan B*tree index. Penghematan dapat
terjadi secara signifikan jika nilai distinct dari suatu kolom bernilai kecil. Kerugian utama dari
metoda ini adalah diperlukan efort yang besar ketika terjadi perubahan data. Hal ini
dikarenakan indeks tersebut harus di uncompress, recompress dan kemungkinan dilakukan
rebuild.
Sebagai contoh pada kolom GENDER (memiliki dua nilai M dan F, kardinalitas = 2), dua
buah nilai akan dibuat baik untuk nilai M atau F.
Perbedaan lain dengan B*tree adalah pada saat update, jika B*tree hanya melakukan
locking pada suatu record tertentu, pada Bitmap sebagian besar bitmap perlu di lock.
Sehingga bitmap indeks mengurangi concurrency pada sistem dengan kata lain bitmap tidak
cocok diterapkan pada sistem dengan banyak aktivitas update concurrency.
Bitmap ini terbentuk dari kondisi join suatu tabel Fact dengan satu atau beberapa tabel
Dimensi. Perbedaan dengan Bitmap index adalah jika Bitmap dibuaat berdasarkan kolom
pada suatu single table sedangkan Bitmap Join Index dibuat pada fact table tapi untuk index
kolomnya dari dimension table. Bitmap join Index juga memiliki low cardinality pada kolom
yang hendak di index nya.
Salah satu permasalahan yang sering terjadi adalah jika suatu query mengandung unsur
fungsi pada indexnya. Jika ini terjadi maka optimizer tidak akan mempergunakan objek
index. Sebagai contoh adalah query yang menggunakan predicate function seperti
TO_UPPER(), TO_NUMBER() atau suatu ekspresi. Dalam kondisi ini function base index
diperlukan.
Jika hendak menggunakan dengan Bitmap index, hal yang harus diperhatikan adalah kolom
yang digunakan tetap harus memiliki kardinalitas yang rendah.
Peningkatan data secara signifikan ini menjadi suatu tantangan yang cukup serius bagi
manajemen dan pengelola teknologi informasi. Masalah utama yang cukup perlu
diperhatikan adalah tempat penyimpanan data yang akan terus bertambah, walaupun dari
sisi harga per megabyte mengalami penurunan pada masa sekarang ini, namun
pertumbuhan volume data besar yang harus disimpan secara online ini menyebabkan
komponen biaya tempat penyimpanan menjadi besar pula. Di sisilain, pengaksesan data
oleh aplikasi dituntut tidak boleh berkurang performansinya
Kompresi Tabel
Pada database oracle data disimpan pada sebuah segmen yang terdiri dari beberapa data
block dimana ini merupakan satuan terkecil dari tempat penyimpanan denganukuran standar
8 Kb. Data segmen melakukan kompresi pada tabel dengan mengidentifikasi nilai yang
berulang pada setiap data block kemudian meletakkan data tersebut pada tabel lookup di
awal blok.
Ketika sebuah query dijalankan terhadap suatu tabel terkompresi, oracle secara otomatis
melakukan uncompress secara otomatis. Meski ada overhead dalam prosesnya, namun hal
ini sangat kecil dan benefit yang didapat dalam mengurangi I/O sangat besar.
Pada B*tree index, oracle melakukan key compression dengan cara hanya menyimpan
sekali nilai common prefix of index key dalam suatu blok index. Sedang pada Bitmap Index
setiap nilai index sudah ter kompresi secara otomatis.
Perancangan
Basis Data
OLAP
13
Fakultas Ilmu Teknik Informatika 87012 Tim Dosen.
Komputer
Abstract Kompetensi
Materi ini berisi penjelasan OLAP Mahasiswa dapat memahami OLAP dan
menerapkan dalam kegiatan sehari-hari
OLAP
PENGERTIAN
OLAP memiliki beberapa pengertian, hal ini terjadi karena elemen esensial nya
diekspresikan dalam layer teknologi mulai layer dari storage hingga language. Pengertian
tersebut dapat di bagi pada layer konsep, bahasa, produk, dan produk OLAP secara
keseluruhan.
Konsep OLAP mencakup pengertian mengenai notasi atau ide dari multiple dimensi hirarki
yang dapat digunakan oleh siapa saja yang mampu memikirkan sesuatu dalam bentuk
dimensional. Konsep ini dapat dilakukan tanpa tergantung bahasa formal ataupun produk
tertentu.
Pada layer produk, OLAP biasanya berada diatas suatu database relasional dan
menghasilkan SQL sebagai output dari kompilasinya. Penyimpanan dan akses data
biasanya di atur oleh database.
Produk Full OLAP digunakan untuk pemodelan Decision Support System (DSS) dimana
compiler, storage dan metode akses telah dioptimasi untuk peningkatan kecepatan akses
dan kemampuan kalkulasi..
Dewasa ini produk teknologi yang digunakan untuk menggambarkan informasi berbasiskan
analisis dan decission oriented adalah spreadsheet dan database. Pada umumnya
spreadsheet digunakan oleh end user sedangkan database di administrasi oleh professional
IT,
Di era 1993 produk spreadsheet seperti MS Excell menyediakan kemampuan pivot table
Dimana pivot atau n-way crosstab, merupakan representasi multidimensi. Namun produk ini
tidak terintegrasi pada fungsi utama spreadsheet karena untuk menggunakannya, perlu
dilakukan import data dari Excell Worksheet kedalam Excell pivot. Pada saat ini, versi
Microsoft Office 2000 telah memiliki fitur yang disebut dengan pivot table service yang
merupakan bagian dari Microsoft client-resident OLAP technology.
Di era 80 penyedia teknologi seperti Oracle dan IBM menjadikan relasional sebagai produk
komersial. SQL sebagai implementasi dari relasional database untuk melakukan akses data
terus mengalami perkembangan kemampuannya. Hingga pada perkembangan SQL-99
yang di rilis dibulan Desember 2001 telah menambahkan kemampuannya dalam hal
penganan fungsional OLAP
Sebagai contoh adalah sebagai laporan berikut, dimana data menggambarkan penurunan
penjualan dibandingkan dengan perencanaan. Dari data diharapkan manajemen dapat
mengambil keputusan untuk stategi berikutnya.
Masalah pertama yang dihadapi adalah menentukan bentuk data, apakah akan
direpresentasikan dalam sebuah gigantic worksheet ?, jika ya, maka masalah berikutnya
adalah bagaimana cara mengorganisasikannya. Kemungkinan untuk memudahkan, data
akan di distribusikan pada beberapa worksheet. Disini juga dapat dilakukan bermacam
opsi, worksheet dapat dibuat berdasarkan tiap produk dan atau tiap store dan atau tiap
minggu. Secara teoritical semua metode dapat berjalan. Namun akan cukup merepotkan
dalam melakukan integrasi data. Sebagai gambaran dengan asumsi terdapat 100
produk , 3 skenario dan 13 measure maka akan terbentuk 3900 worksheet data.
Spreadsheet tidak di desain untuk bekerja dengan data multi dimensi, dimana ini
seharusnya menjadi prerequisite untuk bekerja dengan OLAP.
Jika SQL digunakan untuk menangani fungsi agregasi, SQL akan membentuk satu tabel
agregasi untuk setiap kombinasi unik tiap level. Dengan tiga level time, tiga level toko,
dan empat level produk akan dibutuhkan 36 tabel kombinasi agregasi yang unik.
Dimana setiap tabel akan dibuat objek secara terpisah dengan menggunakan statement
CREATE TABLE. Sebagai contoh :
FROM time-lookup
FROM store-lookup
FROM product-lookup
Proses penggabungan view serta join dengan base table ini digunakan untuk
menghasilkan data yang dibutuhkan sehingga pada akhirnya dapat dihasilkan data
sebagai berikut :
Berikut ini view data hasil join dari actual dan plan sales :
Untuk membuat laporan berbasis analisis melalui spreadsheet, DBMS Oracle memiliki
beberapa metoda, salah satunya adalah dengan menambahkan add ins. Berikut ini contoh
tampilan report berbasis analisi yang bisa dihasilkan dengan Ms. Excell, dimana data dan
objek dimensi disimpan pada database Oracle sedangkan ad-hoc report, dibuat dengan
menggunakan Excell.
Perancangan
Basis Data
Data Mining
14
Fakultas Ilmu Teknik Informatika 87012 Tim Dosen.
Komputer
Abstract Kompetensi
Materi ini berisi penjelasan Data Mining Mahasiswa dapat memahami konsep
Data Mining
Data Mining
Definisi
Pada prinsipnya Data Mining adalah suatu proses untuk menemukan pola-pola tersembunyi
dan hubungan dalam data untuk membantu membuat keputusan bisnis yang lebih baik.
Terminologi data mining telah diperluas dari perngertian analisis data. Beberapa definisi dari
Data Mining atau Knowledge Discovery in Database pada database adalah sebagai berikut :
Data mining is the search for relationships and global patterns that exist in large
databases but are ‘hidden’ among the vast amount of data, such as a relationship
between patient data and their medical diagnosis. These relationships represent
valuable knowledge about the database and the objects in the database and, if
the database is a faithful mirror, of the real world registered by the database.
Proses analis diawali dari sekumpulan data, menggunakan metodologi untuk membangun
suatu representasi struktur data yang optimal dimana waktu dan pengetahuan dibutuhkan
untuk memperolehnya. Setelah pengetahuan diperoleh, representasi dapat digunakan pada
data yang lebih besar.
Gambar diatas ini merupakan summary dari tahapan proses identifikasi data mining dan
knowledge discovery di buat oleh Usama Fayyad & Evangelos Simoudis yang merupakan
pakar di bidan Data Mining.
Seleksi atau segmentasi data menurut aturan criteria tertentu , misalkan sekumpulan
karyawan yang memiliki kendaraan. Dengan criteria ini maka data subset akan
terbentuk.
• Preprocessing
Ini merupakan tahap cleansing data dimana informasi tertentu yang dianggap tidak perlu
dan memperlambat queri bisa dihilangkan. Pada tahap ini, data juga di konfigurasi ulang
untuk memastikan konsistensi format. Misal untuk, data tersimpan f atau m dimana
seharusnya 0 atau 1.
• Transformation
Data tidak hanya ditransfer tetapi juga di transformasi dalam overlay dengan
kemungkinan ada penambahan factor demografi yang banyak digunakan pada riset
pasar. Data dibuat useable dan navigable
• Data mining
Pola yang telah teridentifikasi oleh system akan diinterprestasikan dalam suatu
knowledge yang dapat membantu manusia dakam mengambil suatu keputusan, sebagai
contoh dalam hal klasifikasi dan prediksi, melakukan summari dari konten database atau
menjelaskan suatu fenomena.
IBM mengidentifikasi dua tipe model operasional dari data mining yang dapat digunakan
untuk menemukan informasi yang dibutuhkan oleh user.
1. Model Verifikasi
Model ini menggunakan hipotes dari user dan melakukan tes validitas terhadap datanya.
Penekanan dilakukan oleh user yang bertanggung jawab untuk melakukan formulasi dan
hipotesa serta melakukan query pada data.
Sebagai contoh pada divisi marketing, untuk melakukan kampanye produk baru dengan
anggaran yang terbatas maka perlu diidentifikasi populasi tertentu yang sekiranya
berminat terhadap produk tersebut. User melakukan formulasi dan hipotesa untuk
mengidentifikasi potensial customer termasuk karakteristiknya. Data histori tentang
riwayat pembelian serta demografi di analisa untuk mendapatkan gambaran yang lebih
akurat.
Permasalahan yang terjadi pada model ini adalah pada faktanya tidak ada informasi
baru yang terbentuk pada proses retrieval namun akan menghasilkan sejumlah records
sebagai bahan untuk membentuk hipotesa. Proses pencarian dilakukan secara iterative
setelah meriview output tersebut. Kemudian melakukan query lagi berdasarkan formulasi
dan karakteristik yang lain.
2. Model Discovery
Model ini memiliki penekanan yang berbeda, pada model ini system secata otomatis
menemukan informasi penting yang tersembunyi didalam data. Data di pilah dan diolah
untuk menemukan pola tertentu, trend dan informasi umum tanpa ada campur tangan
dari pengguna. Penggunaan perangkat data mining sering digunakan untuk
mempersingkat proses pencarian tersebut
Sebagai contoh pada sebuam model database Bank, akan dilakukan mining untuk
menemukan kelompok pelanggan guna mensosialisasikan produk baru. Proses
pencarian dilakukan tanpa interverensi , system akan mengelompokan pengguna
berdasarkan suatu karakteristik tertentu.
Sistem data mining bergantung dari database untuk menyediakan data dasar sebagai input.
Beberapa hal ini permasalahan yang mungkin timbul adalah sebagai berikut :
• Keterbatasan Informasi
Sebuah database biasanya di desain untuk tujuan tertentu, bukan untuk data mining
sehingga terkadang properties ataupun attribute yang mempermudah proses learning
tidak tersedia. Jika suatu atribut yang merupakan esensi dari suatu knowledge tidak
tersedia maka proses pengungkapan pengetahuan bisa tidak terjadi sebagai mana
mestinya. Sebagai contoh, tidak dapat terungkapnya fenomena penyakit malaria pada
suatu database pasien jika pada database itu tidak terdapat informasi jumlah sel darah
merah pasien.
Database biasanya terkontaminasi oleh error sehingga tidak dapat di asumsikan bahwa
seluruh data tersebut adalah akurat. Attribut yang bergantung pada suatu subjektif
ataupun measurement juga dapat menimbulkan error, misalkan karena adanya
kesalahan klasifikasi. Jenis kesalahan akibat hilangnya nilai field ataupun kesalahan
klasifikasi data disebut dengan Noises.
Hilangnya data dapat di tangani oleh system dengan beberapa cara seperti :
Uncertainty mengacu pada banyaknya error dan noises yang terdapat dalam data.
Tingkat presisi data merupakan hal penting dalam system discovery.
Databases cenderung untuk menjadi besar dan dinamis pada kontennya sejalankan
dengan penambahan, modifikasi ataupun penghapusan. Permasalahan dari prespektif
data mining adalah bagaimana memastikan jika data telah up to date dan konsisten
terhadap informasi terkini. Sistem pembelajaran juga harus bersifat time-sensitive hal ini
dikarenakan bervariasinya perubahan data dan system pembelajaran ini dipengaruhi
oleh timeline data.
Aplikasi Potential
Data mining memiliki banyak penerapan variasi aplikasi dari bidang yang ada dibawah ini
:
Retail/Marketing
Banking
• Analisa klaim
• Melakukan prediksi customer yang akan membeli polis baru
• Mengidentifikasi pola perilaku customer yang beresiko
• Mengidentifikasi perilaku fraud yang ada.
Transportation
Medicine