Sunday, May 27, 2018

DBMS Query Translation - Aljabar Relational Part1

Assalamu'alaikum

Selamat siang, selamat berpuasa, salam data management. Di pertemuan kali ini saya kembali ingin mambahas masalah database, jadi mohon dimaafkan karena delay dulu artikel tentang jaringannya ya gaess. Lanjut, setelah membahas 2 pertemua database kebelakang tentang pengenalan mengenai database. Maka kali ini kita akan masuk kedalam pembahasan Aljabar Relational. Langsung saja disimak di pembahasan berikut ini.

Siklus Proses DBMS Mentranslasikan Bahasa Query

Seperti yang sudah saya bahas sebelumnya, database relational di kemukakan oleh Dr. E.F Codd dengan metode matematika. Tentu karena hal tersebut, relational database yang kita perlajari ini tidak luput dari proses matematika dimana proses ini diolah oleh si aplikasi DBMS dari sebuah bahasa query yang di lakukan oleh IT implement. 




Proses DBMS mentranslasikan bahasa query tersebut tidaklah secepat kita hanya menginput bahasa query saja. Namun, DBMS melakukan proses translasi salah satunya di proses translasi tersebut ada aljabar relational. Tidak hanya aljabar relational, di proses ini juga dilakukan translasi yang lain sehingga bahasa query yang kita inputkan bisa dijalankan oleh DBMS. Proses translasi tersebut adalah sebagai berikut.
  • SQL (Structured Query Languange) atau bahasa query yang di jalankan oleh seseorang akan di translasikan ke
  • Aljabar Relational, dimana proses ini menggunakan metode dan simbol simbol yang berkaitan erat dengan aljabar relational. 
  • Setelah sudah menjadi Aljabar relational, di olah kembali menjadi kalkulus relational tuple. Bentuk matematika yang lebih rumit setelah ajlabar.
  • Dan proses terakhir setelah kalkulus relational tuple terbentuk, diolah kembali lagi menggunakan metode kalkulus relational domain.
Baik Aljabar relational dan kalkulus relational adalah bahasa formal dan non user friendly languange. Jadi jangan salah kalau kita akan pusing karena mempelajari proses ini, wajarkan saja kalau proses ini hanya bisa ditangani oleh mesin DBMS :v. 

Aljabar Relational

Menurut Connolly, Begg, dan Strachan (2005), aljabar relasional adalah bahasa teoritis dengan operasi-operasi yang bekerja pada satu atau lebih relasi untuk mendefinisikan relasi lainnya   tanpa mengubah relasi aslinya. Baik operand maupun hasilnya merupakan relasi, dan juga output dari satu operasi dapat menjadi input bagi operasi yang lain. 

Hal ini memungkinkan ekspresi pada aljabar relasional menjadi bertingkat, sama seperti operasi aritmatik bertingkat. Dimana operasi operasi fundamental pada aljabar relasional adalah sebagai berikut
  • Selection > memilih
  • Projection > memilih yang diinginkan
  • Cartesian Product > Pencarian tabel berbeda dengan kolom (attribut) yang diinginkan.
  • Union
  • Set Difference > Mencari perbedaan antara tabel yang berbeda
  • Join
  • Intersection
  • Theta Join

Operasi Dasar Pada Aljabar Relational

Secara umum, operasi dasar pada pengelolaan database terbagi menjadi 2. Yaitu operasi yang hanya beroperasi pada satu relasi atau entitas (tabel) yaitu operasi Unary dan yang kedua adalah operasi yang bisa melibatkan lebih dari satu relasi yaitu operasi Set. Operasi Selection dan projection termasuk operasi unary dan operasi Cartersian product, union, set difference dan intersection merupakan bagian dari operasi Set.



Berikut ini contoh tabel database yang akan kita ujicoba kan pada operasi operasi dibawah. Disini, kita memiliki 3 tabel yaitu tabel Mahasiswa, tabel Matakuliah dan Tabel Nilai.

Operasi Unary - Selection

Dinotasikan dengan σ predicate (R). Operator ini digunakan untuk sebuah relasi saja, artinya hanya melakukan operasi pada satu tabel saja. Fungsi operasi ini untuk mendefinisikan atau menampilakan sebuah baris yang memenuhi kondisi yang diinginkan. Operasi ini dapat menggunakan operator matematika (<,>,>=,<=,=,#) dan juga bisa menggunakan operator ^ (And) atau v (Or).  

Contoh1 : Diminta tampilkan daftar mahasiswa dari jurusan sistem informasi
Aljabar Relational : σJurusan=’Sistem Informasi’(MAHASISWA)
Output :


Contoh2 : Diminta tampilkan mahasiswa dari jurusan sistem informasi atau akuntasi.
Aljabar Relational : σJurusan=’Sistem Informasi’  V Jurusan=’Akuntansi’  (MAHASISWA)
Output :

Operasi Unary - Projection

Dinotasikan dengan πcol1, col2, …, coln (R). Sama seperti selection, operasi ini digunakan untuk satu relasi saja. Perbedaannya, operasi ini menampilkan kolom kolom (attribute) yang diinginkan saja. 

Contoh1 : Diminta buat daftar semua nama mahasiswa, namun hanya menampilkan data NPM, NamaMhsw, dan Jurusan.
Aljabar Relational : πNPM, NamaMhsw, Jurusan (MAHASISWA)
Output : 

Contoh2 : Diminta buat daftar semua nama mahasiswa, tampilkan hanya data NPM, NamaMhsw, dan Jurusan. Dimana jurusannya hanya sistem informasi saja.
Aljabar Relational : πNPM, NamaMhsw, Jurusan(σJurusan=’Sistem Informasi’ (MAHASISWA))
Output :
 
Cukup sekian pertemuan di pembahasan kali ini, part2 mengenai aljabar relational akan kita bahas di pertemuan berikutnya. Insya Allah akan membahas tentang operasi operasi Set yang melibatkan lebih dari satu relasi. Sekian dari saya, saran dan pertanyaan bisa letakkan di kolom komentar. Terima kasih sudah berkunjung. Salam Data Management.

Saturday, May 26, 2018

Database Instrumental 2 - Ketergantungan Fungsional dan Relasi Antar Data pada Database


Assalamu'alaikum

Selamat pagi, selamat berakhir pekan dan Salam data management. Berjumpa lagi dengan saya mimin yang tampan, baik hati dan tidak sombong. Kali ini kita akan melanjutkan kembali pembahasan yang sudah di jelaskan sebelumnya yaitu tentang database. Karena di pembahasan sebelumnya kita sudah mengetahui apa itu database. Maka pada artikel kali ini saya ingin membahas tentang ketergantungan fungsional dan relasi antar data (bukan tabel) pada database.

Relational Data Model

Pada dasarnya database memiliki banyak jenis atau modelnya. Seperti model database jaringan, hirarki, atau database relational yang kita pelajari kali ini. Database relational ini pertama kali diperkenalkan oleh Dr. E.F. Codd, peneliti IBM tahun 1970 pada seminar "A Relational model of data for large shared banks", Communication of ACM, pada juni 1970. Dimana tujuan dari model data relational ini adalah :
  • Memungkinkan data independence, artinya program aplikasi tidak akan mempengaruhi perubahan data pada database. 
  • Menyediakan dasar substansi untuk berkaitan dengan data semantik, konsistensi data, dan masalah kerangkapan data.  
  • Memungkinkan ekspansi/perluasan bahasa manipulasi data yang berorientasi set.

Model data relasional adalah suatu model basis data yang menggunakan tabel dua dimensi yang terdiri dari baris dan kolom untuk menggambarkan record-record datanya.  

 

Struktur Data Relational 

Selain model, relational database juga memiliki struktur sebagai berikut. 
  • Entitas, adalah tabel dengan baris dan kolom. Contoh: tabel MAHASISWA, tabel DOSEN, tabel MATA KULIAH. 
  • Atribut, adalah nama kolom dari sebuah relasi. Contoh atribut dari MAHASISWA adalah NPM, nama mahasiswa, alamat, tempat lahir, tanggal lahir. 
  • Domain, adalah sekumpulan nilai untuk satu atau lebih atribut. 
  • Tuple, adalah baris dari suatu relasi. 
  • Degree, adalah derajat dari relasi yaitu jumlah atribut dalam sebuah relasi. 
  • Cardinality, adalah jumlah tuple dalam sebuah relasi. 
  • Basis data relasional adalah, kumpulan dari tabel-tabel normal.  
  
Keterangan :
  • Atribut: NPM, NamaMhsw, Jurusan, NoTelpon 
  • Domain(Jurusan)=char(20) 
  • Domain(NPM)=char (5) 
  • Cardinality(MAHASISWA)=5 
  • Degree(MAHASISWA)=4 

Ketergantungan Fungsional Database

Dalam sebuah tabel database, terdapat suatu hubungan data antar attribut pada suatu tabel. Hubungan inilah yang bisa kita sebut sebagai ketergantungan fungsional. Ketergantungan fungsional terjadi ketika nilai satu attribut menentukan nilai attribut yang kedua, ketiga dan lainnya sesuai ketentuan relasinya. Nilai attribut penentu nilai ini kita sebut sebagai determinant.


Namun, ada beberapa tabel yang memiliki lebih dari satu determinant (penentu nilai attribut yang lain). Ini lah yang disebut sebagai ketentuan dari ketergantungan fungsional. Untuk memudahkannya disini saya akan memberikan contoh ketergantungan fungsinal dari sebuah data. Semisal kita memiliki slip atau sebuah kertas transaksi yang berhubungan dengan database dengan contoh sebagai sebagai berikut.


Dari contoh slip transaksi tersebut, kita ubah kedalam ketergantungan fungsional attributnya. 


Maka list ketergantungan fungsionalnya adalah sebagai berikut.
  • No Sales > Tgl
  • No Sales > Nama
  • No Sales > Alamat
  • No Sales > Telp
  • No Sales > Kode Bag
  • No Sales > Grand Total
  • No Sales & Kode Bag > Jumlah
  • Kode Bag > Nama Barang
  • Kode Bag > Harga
  • Jumlah & Harga > Total
Pada data dalam database ini, terdapat lebih dari satu determinant. Hal ini dikarenakan suatu nilai attribut ada berdasarkan induk dari attribut tersebut (determinant). Hal ini menandakan bahwa semua attribut memiliki induk yang sama. Karena ini hubungan determinant dan nilai attribut disesuaikan dengan kondisi fungsionalnya. 



Dilihat dari list ketergantungan diatas, maka banyak timbul pertanyaan kenapa attribut ini bergantung pada determinant ini atau mengapa determinant ini menentukan nilai attribut tersebut. Berikut rinciannya.
  • No Sales > Tgl, Nama, Alamat, Telp. Determinant No Sales menentukan Tgl, Nama, Alamat, dan Telp ini sudah mutlak karena informasi no sales tersebut ada pada attribut yang disebutkan. 
  • No Sales > KodeBag. Hubungan ini juga termasuk mutlak karena Kode Bag tidak mungkin ada jika no sales tidak berjalan pada transaksi. Walaupun Kode Bag juga merupakan sebuah determinant.
  • No Sales > Grand Total. Hubungan ini terjadi karena nilai akhir sebuah data untuk melengkapi informasi No Sales. 
  • No Sales & Kode bag > Jumlah. Relasi ini memiliki 2 determinant untuk menentukan satu attribut. Hal ini dikarenakan jumlah tidak akan ada jika kedua determinant ini tidak ada. Karena itu nilai jumlah bergantung kepada kedua determinant ini.
  • Kode Bag > Nama Barang. Hubungan fungsional ini sudah mutlak karena ini merupakan data sebuah barang (inventory).
  • Kode Bag > Harga. Hubungan ini juga mutlak karena harga tidak bergantung kepada determinant No Sales. Namun, harga ada pada nilai jual sebuah barang. 
  • Jumlah & Harga > Total. Hubungan determinant ini terjadi dengan penggunaan operator jumlah. Dimana Jumlah + Harga akan menghasilan total harga. 
Demikian pembahasan kita kali ini, semoga memudahkan anda untuk memahami ketergantungan fungsional pada database dan semoga artikel ini bermanfaat untuk kita semua. Sekian dari saya, saran dan pertanyaan silahkan letakkan dikomentar atau juga bisa langsung kontek saya pada akun akun sosial media yang sudah saya sediakan. Terima kasih sudah berkunjung, salam data management. 

Sunday, May 20, 2018

Database Instrumental 1 - Pengenalan Basis Data (Database)

Assalamu'alaikum

Selamat pagi, selamat berakhir pekan. Salam data management. Di kesempatan kali ini saya ingin menyampaikan materi yang sedikit berbeda dari biasanya yaitu pembahasan mengenai basis data atau lebih sering dikenal dengan nama database secara internasionalnya. Memang sudah direncanakan bahwa nantinya akan ada update secara menyeluruh sehingga lingkup pembelajaran bisa lebih meluas bahkan nanti nya ke programming juga insya allah. Langsung saja. untuk memulai pembahasan kali ini yang perlu dilakukan adalah pengenalan terhadap database terlebih dahulu.

Apa itu database?

Sebelum adanya database penyimpanan user sering disebut dengan flat file management. Flat file management ini merupakan sistem yang sangat rentan terhadap update data. Maksud lain dari flat file management adalah penyimpanan manual sebuah data didalam sebuah file. Tentu penyimpanan ini tidak terpusat dan akan memungkinkan data yang ganda. Sehingga memungkinkan terjadinya mis-informasi. 

 
Karena faktor-faktor tersebutlah database diciptakan dan ditemukan oleh E.F Codd yang diperkenalkan di tahun 1970. Database menggunakan fungsi matematika yang sering dikenal dengal aljabar relational. Database saat ini digunakan banyak perusahaan sebagai model standar untuk penyimpanan data (database) komersial.




Berdasar hal tersebut, apa itu database? Database sendiri adalah sekumpulan data yang disimpan dalam bentuk tabel yang bisa di relasikan (dihubungkan) antar tabel satu dengan yang lainnya sehingga kumpulan tabel tabel tersebut menghasilkan sebuah informasi. Biasanya database digunakan pada aplikasi aplikasi yang ingin dirancang. Tujuannya agar aplikasi tersebut memiliki ingatan secara terpusat tentang apa saja yang di input/simpan oleh user.
Dengan begitu, dengan adanya database kita bisa meminimalisir data yang rangkap (ganda), data updating lebih mudah dan otomatis data juga terpusat. Sehingga data yang terpusat itulah yang bisa diakses bersama secara shared. 

Karakteristik Database

Seperti yang kita tau bahwa bentuk dari database adalah tabel tabel seperti pada excel umumnya. Memiliki baris dan kolom dan antar database juga memiliki relasi yang menghubungkannya. Karakteristik dari database adalah sebagai berikut.
  • Data disimpan pada tabel. Tabel terdiri dari baris dan kolom seperti yang terlihat pada spreadsheet. Basis data memiliki beberapa tabel, dimana setiap tabel menyimpan data tentang suatu hal yang berbeda. 
  • Setiap baris dalam suatu tabel menyimpan data dari instance yang berbeda.  
  • Setiap kolom dalam suatu tabel menyimpan karakteristik dari suatu instance tersebut. 
  • Basis data menyimpan data dan relasi.
 

Data dan Informasi Pada Database

Perlu kita ketahui perbedaan antara data dan informasi yaitu, data adalah fakta atau angka yang disimpan atau dicatat sedangkan informasi adalah pengolahan suatu data sehingga menghasilkan suatu arti dan tujuan. Namun pada basis data, selain untuk menyimpan data. Database juga mampu mengolah suatu informasi menggunakan Structured Query Languange (SQL). SQL inilah yang nantinya akan dipelajari dalam pembahasan pengolahan suatu database.



Istilah-Istilah Dalam Database

Untuk mempelajari database, kita harus paham betul istilah istilah asing yang nantinya akan sering di bahas di pertemuan-pertemuan pembahasan database selanjutnya. Diantaranya.
  • Entitas, yaitu suatu obyek yang terdapat di dunia nyata yang bisa dibedakan dengan obyek lainnya dan memiliki kata kunci. Contohnya pelanggan, mahasiswa, karyawan, penjualan dll. Entitas ini bisa kita gambarkan sebagai nama dari suatu tabel data.
  • Attribut, karakteristik dari suatu entitas. Merupakan baris baris pertama pada suatu kolom. Contohnya karakteristik dari entitas/tabel mahasiswa adalah : NIM, Nama, Alamat, Tgl Lahir, No.telp Dll.
  • Relasi, yaitu hubungan antar tabel menggunakan kata kunci yang sama (penghubung)
Ketergantungan Fungsional
  • Ketergantungan Fungsional, yaitu dimana nilai suatu attribute menentukan nilai attribut lainnya. Ketergantungan fungsional akan dijelaskan di pembahasan berikutnya.
  • Determinant, yaitu nilai attribute utama pada ketergantungan fungsionalnya.
 Key (Kata Kunci)
  • Candidate key, yaitu kata kunci atau suatu attribute yang dicalonkan untuk menjadi primary key dalam suatu tabel
  • Composite key, yaitu key yang terdiri dari dua atau lebih kolom (attribut).
  • Primary Key, yaitu kunci utama yang merupakan hasil pilihan dari candidate key. Suatu attribute yang menentukan identitas dari suatu tabel dan data didalam kolomnya berbeda beda (unik).
  • Surrogate key, yaitu nilai yang ditambahkan oleh DBMS secara otomatis pada suatu primary key. Tujuannya untuk membedakan antar baris suatu tabel.
  • Foreign Key, yaitu kunci tamu yang digunakan suatu tabel untuk merelasikan tabel tersebut ke tabel yang lain. Dan tentu, foreign key pada tabel1 merupakan primary key pada tabel2.
Sistem Relasi Database
  • Entity integrity constraints adalah yaitu dimana setiap relasi harus memiliki primary key.  Attribut-attribut yang merupakan primary key tidak boleh bernilai NULL. Attribute lain kadang-kadang juga dibatasi agar tidak bernilai NULL, meskipun bukan primary key (sesuai requirement-nya).
  • Referential Integrity Constraints adalah penerapan yang difokuskan pada foreign key. Constraints ini melibatkan 2 buah relasi/table yaitu referencing relation (yang memiliki foreign key) dan referenced relation (relasi yang sudah di referensikan).

Komponen dari Database

Komponen dari database adalah unsur-unsur yang diperlukan untuk menjalankan suatu database. Komponen-komponen tersebut diantaranya, ada user, aplikasi database atau aplikasi lainnya yang berpapasan dengan database, Sql (Jika database SQL), DBMS (Database Management), Dan Database itu sendiri.

Arsitektur 3 Level Basis Data 

Sesuai dengan ketentuan ANSI SPARC, database digolongkan menjadi 3 level yang berbeda. Diantaranya :
  • Level External, level ini adalah level cara pandang hanya sebatas entitas dan relasi dalam bentuk tabel tabel informasi yang diperlukan saja. Level ini lebih mengacu ke pemakaian user yang membutuhkan sebuah data dari tabel database.
  • Level Conseptual, level ini sudah masuk ke dalam pandangan suatu divisi yang mengelola database. Pada tingkatan ini, menggambarkan data apa yang disimpan dan relasi (hubungan) antar datanya. Tingkatan ini sudah condong ke konseptor atau implementor pengelola database.
  • Level Internal, level ini adalah level yang dikelola langsung oleh proggramer atau administrator sistem. Level ini menyajikan bagaimana data disimpan secara fisik dan bagaimana cara memanagement penggunaan data.

Kenal Saya

Follow My Twitter

Profil



Nama saya Alfa Farhan Syarief, web ini ada berdasarkan nama saya sendiri. Saya sendiri masih duduk tingkat SMK. Lebih lengkapnya saya masih bersekolah di SMKN 1

More »

Blog Archive

Recent Comment