Showing posts with label Database. Show all posts
Showing posts with label Database. Show all posts

Sunday, February 3, 2019

DBMS Query Translation Practice (Kasus Relasi Tabel Kepegawaian)

Assalamu'alaikum

Selamat siang, jumpa lagi bersama saya di pembahasan mengenai query translation. Setelah kita sudah membahas beberapa jenis dari query translation seperti aljabar dan kalkulus relational. Di kesempatan kali ini saya ingin membahas mengenai beberapa contoh case yang bisa kita gunakan sebagai latihan mengenai query translation aljabar maupun kalkulus. Kita akan mulai dengan beberapa tabel sebagai berikut.

Saturday, January 26, 2019

DBMS Query Translation - Kalkulus Relational Domain

Assalamu'alaikum

Selamat malam, membahas kembali mengenai DBMS Query Translation. Di pembahasan kali ini kita akan membahas mengenai kalkulus relational domain. Hampir sama dengan kalkulus relational tuple, hanya penulisan struktur kalkulusnya saja yang berbeda. Pembahasan kali ini merupakan lanjutan dari pembahasan kalkulus relational tuple, klik link berikut untuk review terlebih dahulu mengenai apa itu kalkulus relational dan kalkulus relational tuple.  

Friday, January 25, 2019

Perancangan, Pengembangan, Perawatan Database dan SDLC pada Database

Assalamu'alaikum

Selamat siang, jumpa lagi dengan pembahasan database atau basis data dan masih bersama saya ea ea ea. Di pembahasan kali ini saya ingin membahas mengenai perancangan, pengembangan dan perawatan database atau istilah yang lebih dikenalnya adalah SDLC yaitu Software/System Development Life Cycle yang lebih mengartikan kepada putaran kehidupan sebuah software yang beroperasi dengan baik.

Wednesday, January 23, 2019

Keamanan Database (Data Security)

Assalamu'alaikum

Selamat pagi, berjumpa lagi pada pembahasan mengenai database. Pembahasan yang akan dibahas kali ini mengenai keamanan database. Lho database harus diamankan kah? Jelas dong, namanya juga data. Bagi sebuah perusahaan data adalah sumber daya yang berharga yang harus dikendalikan dan dikelola dengan ketat sama sumber daya lainnya. 

Sunday, January 20, 2019

Normalisasi Model Data Relational

Assalamu'alaikum

Selamat pagi, jumpa lagi di artikel pembahasan mengenai database, kali ini saya berencana membahas tentang normalisasi pada model data relational. Normalisasi pada basis data relational merupakan sesuatu yang harus di perhatikan di karenakan basis data yang baik adalah basis data yang tidak memiliki abiguity, anomaly dan memiliki integritas data yang baik dan karena itu normalisasi dibutuhkan. 

Saturday, January 19, 2019

DBMS Query Translation - Kalkulus Relational Tuple

Assalamu'alaikum

Selamat siang, berjumpa lagi dengan pembahasan DBMS query translation. Setelah sebelumnya kita membahas tentang aljabar relational, pada kesempatan kali ini saya ingin membahas tentang kalkulus relational tuple. Karena masih sama sama bahasa query yang dipelajari namun hanya kategorinya saja yang berbeda dari aljabar relational. 

Wednesday, January 16, 2019

Permodelan Relasi Entitas pada Model Data Relasional

Assalamu'alaikum

Selamat malam, lanjut lagi di pertemuan malam kali ini masih tentang pembahasan database. Setelah sebelumnya kita membahas logic dari permodelan data yang bersifat object, sekarang kita akan membahas logic dari model data relational pada database itu sendiri yang langsung bersifat record. Apa saja komponen model data relational dan bagaimana hubungan antar record digambarkan? Berikut penjelasannya.

Model Data Relational

Seperti yang sudah pernah di bahas sebelumnya, ada 3 jenis model data yang bersifat objek yang cukup dikenal diantaranya model data hirarki, model data jaringan, dan model data relational. Diantara ketiganya, model data relational adalah model data yang paling sering digunakan. Model data ini menggunakan RDBMS (Relational Database Management System). 



RDBMS menyediakan layanan pengorganisasian data yang mudah tetapi memiliki kemampuan penyimpanan untuk menangani jumlah data yang sangat besar. Beberapa contoh RDBMS diantaranya oracle, MS SQL Server, MySQL (Sekarang mariaDB), DB2, Ms Access. 

Model Data Relational digambarkan dalam bentuk tabel 2 dimensi yang terdiri dari baris dan kolom. Setiap baris menyimpan data dari instance yang berbeda dan setiap kolom meyimpan karakteristik dari entitas tersebut (attribute). Kumpulan model data relational (entitas) dapat berhubungan satu dengan yang lainnya, hubungan ini disebut relasi. Relasi antar entitas ini sering disebut referential integrity constraints yang melibatkan primary key dan foreign key dari entitas lainnya. 

Entitas

Entitas adalah suatu objek yang dapat dibedakan dengan objek lainnya. Entitas dapat berupa objek dengan keberadaan fisik atau objek dengan keberadaan konseptual. Contohnya sebagai berikut : 
  • Entitas dengan keberadaan fisik : mahasiswa, dosen, barang, supplier, produk dll.
  • Entitas dengan keberadaan konseptual : pemandangan, pemeriksaan, kejadian (seperti penjualan, pembelian atau transaksi), pengalaman kerja dll.
Dalam sebuah entitas terdapat karakteristik (kolom) dan instance (baris). Karakteristik merupakan attribute dari entitas, dan instance merupakan setiap data yang berbeda pada entitas yang disebutkan.
Entitas sendiri dibagi menjadi 2 jenis, yaitu entitas kuat dan entitas lemah. Entitas kuat adalah entitas yang memiliki karakteristiknya sendiri dan tidak bergantung pada entitas lain. Sedangkan entitas lemah bergantung pada entitas lain biasanya jenis entitas ini adalah entitas transaksional yang sifatnya otomatis ketika pengoperasionalan database berjalan.

Attribute

Setiap entitas memiliki attribute dan attribute sendiri menggambarkan karakteristik dari objek/entitas tersebut. Contohnya karakteristik dari sebuah objek nyata mahasiswa diantaranya NIM, NamaMahasiswa, Alamat, TempatLahir, TanggalLahir dll. Jika digambarkan dalam bentuk ERD maka bentuknya akan seperti elips atau oval namun pada data model relational di representasikan dengan bentuk tabel persegi panjang. 

Key Utama (Kunci Utama)

  • Candidate key, adalah attribute yang secara unik mengidentifikasi setiap baris pada sebuah entitas. Nilai candidate key bersifat unik. Candidate key bukan merupakan primary key namun listing calon yang akan menjadi primary key.
  • Primary Key, adalah candidate key yang terpilih karena nilainya sangat unik dimana setiap baris memiliki nilai yang berbeda dari baris lainnya. 
  • Alternate Key, adalah candidate key yang tidak terpilih menjadi primary key. Sifatnya sebagai cadangan dari primary key.
  • Composite Key, adalah key yang terdiri lebih dari satu key /attribute yang mewakili suatu entitas dalam menjadi primary keynya. 

Identifier

Identifier adalah attribute yang mengidentifikasi suatu entitas. Identifier biasanya digunakan sebagai tampilan utama dari suatu entitas (wajah entitas). Jika key digunakan untuk menghubungkan antar relasi, maka identifier di miliki entitas sebagai indentitas karakteristik yang mewakili entitas tersebut.

Relasi

Relasi terjadi berdasarkan key pada setiap entitas. Hubungan antar entitas diwakilkan oleh setiap foreign key dimana key ini merupakan primary key di entitas lainnya. Relasi ini sangat di perlukan oleh database relational karena menghubung gantungkan informasi entitas satu dengan entitas lainnya menggunakan kunci utama (key) sehingga dapat tercipta suatu informasi yang terintegrasi.

 
Sekian dari saya di kesempatan kali ini. Semoga bisa bermanfaat dan begitulah kurang lebih sistem model data relational bekerja untuk menyajikan informasi dalam bentuk data yang dihubung-hubungkan. kurang lebihnya mohon maaf, saran dan pertanyaan bisa di lempar ke kolom komentar. Terima kasih, sampai berjumpa lagi di artikel selanjutnya...

Latihan Membangun Model Data ERD Diagram (Studi Kasus Perkuliahan)

Assalamu'alaikum

Selamat pagi, jumpa lagi dengan saya di kesempatan kali ini. Setelah pada pertemuan data model sebelumnya kita sudah membahas tentang model data ERD. Di kesempatan kali ini kita akan coba membahas tentang membangun model data ERD berdasarkan case/kasus yang terjadi. Aspek apa saja yang perlu di perhatikan dalam membangun ERD? Langsung saja kita bahas di pertemuan berikut. 

Membangun ERD

ERD adalah jenis model data yang berbasis objek. Fungsi dari ERD sendiri adalah untuk membentuk model data sehingga hubungan antar data lebih mudah di pahami. ERD sudah sering digunakan sebagai acuan model data dalam perancangan sebuah basis data (Database). Karena pada dasarnya, perancangan sebuah database harus mengikutsertakan ERD di dalamnya. 



Karena ERD adalah model data berbasis objek, maka ERD digambarkan dalam bentuk relasi antar objek dalam hal ini objek yg dimaksud adalah sebuah entitas. ERD di gambarkan dalam bentuk chart yang saling terhubung. Beberapa simbol chart yang ada pada ERD diantaranya :

Studi Kasus

Sesuai dengan judul kali ini, kita akan bahas model data ERD dalam kasus sebuah perkuliahan berdasarkan pengamatan sudut pandang mahasiswa yang mengikuti matakuliah. Berikut listing poin poin rancangan database yang akan dibuat :
  • Dalam sebuah case perkuliahan, seperti yang kita tau perkuliahan akan berjalan karena adanya dosen, mahasiswa, matakuliah, jadwal, kelas, tagihan dan nilai.
  • Poin lainnya adalah, mahasiswa di perbolehkan mengambil kartu rencana studi yang ingin di ambil pada setiap semester. 
  • Dosen bisa mengajar lebih dari satu matakuliah.
  • Jadwal terbentuk dari gabungan informasi matakuliah dan kelas dan Mahasiswa yang mengambil jadwal yang tersedia akan membentuk kartu rencana studi (informasi KRS mahasiswa). 
  • KRS yang terbentuk merupakan informasi matakuliah yang diambil mahasiswa, tagihan perkuliahan dan informasi nilai sesuai matakuliah yang diambil tersebut (KRS).  

Mengidentifikasi Entitas

Dalam kasus seperti yang dijelaskan diatas, entitas yg dimaksud diantaranya :
  • Dosen
  • Mahasiswa
  • Makuliah
  • Jadwal
  • Kelas
  • Tagihan
  • Nilai
  • KRS (Kartu Rencana Studi)

Mengidentifikasi Jenis Relasi

Setelah listing entitasnya, selanjutnya kita identifikasi relasinya. Karena sistem yang digunakan pada perkuliahan menggunakan KRS, maka dosen bukan mengajar mahasiswa tapi dosen mengajar matakuliah. Sehingga mahasiswa yang mengambil KRS dari list jadwal adalah mengambil matakuliah yang diajar oleh dosen tersebut.

Entitas Bentuk Relasi Entitas
Dosen Mengajar Matakuliah
Matakuliah Membentuk Jadwal
Kelas Membentuk Jadwal
Jadwal Membentuk KRS
Mahasiswa Mengambil KRS
KRS Menghasilkan Tagihan
KRS Menghasilkan Nilai
Jika di hubungkan secara entitas, maka diagram awal yg terbentuk kurang lebih akan seperti ini. 

Menentukan Kardinalitas

Kardinalitas adalah jumlah entitas yang dapat berelasi dengan entitas lain. Terdapat 3 jenis kardinalitas yaitu : one to one (1:1), one to many (1:M) dan many to many (M:N). Untuk kardinalitas sesuai dengan studi kasus yang sedang dibahas ditentukan sebagai berikut.


  • Dosen bisa mengajar lebih dari satu matakuliah, artinya kardinalitas dosen dengan matakuliah berhubungan (1:M).
  • Banyak matakuliah yang membentuk satu jadwal. Hal ini dikarenakan ada matakuliah yang berbeda di jadwal yang sama. Maka kardinalitas matakuliah dengan jadwal berhubungan (1:M atau M:1). 
  • Sama seperti matakuliah, untuk kardinalitas kelas dengan jadwal behubungan (1:M).
  • Jadwal-jadwal yang terbentuk tadi akan terbagi menjadi banyak ragam KRS yang diambil mahasiswa. Sehingga kardinalitas jadwal dengan KRS adalah (1:M).
  • Selanjutnya mahasiswa yang mengambil KRS di kardinalitaskan dengan 1:M. Dimana mahasiswa yang banyak mengambil jadwal hanya bisa mengambil satu KRS saja. Yaitu KRS yang sudah di tentukan oleh mahasiswa tersebut. 
  • Dari KRS terbentuklah tagihan. KRS yang banyak jenisnya karena berbeda bedanya matakuliah setiap KRS yang diambil oleh banyaknya mahasiswa memiliki sks yang berbeda juga sehingga mengakibatkan tagihan yang berbeda beda. Karena itu hubungan antara KRS dengan tagihan adalah (1:M) satu tagihan ditentukan oleh KRS yang berbeda beda. 
  • Untuk KRS dan Nilai berhubungan 1:1 karena setiap KRS dan setiap Nilai memiliki value yang saling berkergantungan. 
Dari hasil analisis, kurang lebih hasil ERD yang telah ditentukan kardinalitasnya seperti berikut ini.

Mengidentifikasi Attribute

Langkah selanjutnya adalah identifikasi attributenya. Attribute yang dimaksud disini adalah karakteristik dari objek / entitas itu sendiri. Attribute yang di identifikasi juga harus di lengkapi dengan primary key attribute tersebut untuk mewakili entitas yang di maksud. Contoh attribute dari entitas-entitas yang sudah di identifikasi sebelumnya adalah sebagai berikut.

Entitas Attribute Primary Key
Dosen KodeDosen PK
NamaDosen
Mahasiswa NIM PK
Nama
Fakultas/Jurusan
Pendidikan Asal
Matakuliah KodeMatkul PK
NamaMatkul
KodeDosen
SKS
Kelas KodeKelas PK
Ruang
Kampus
Jadwal KodeMatkul PK (Composite Key)
KodeKelas PK (Composite Key)
SKS
Waktu
KRS NIM PK (Composite Key)
KodeMatkul PK (Composite Key)
KodeKelas PK (Composite Key)
SKS
Tagihan NIM PK
Tanggal Angsuran
Tanggal Bayar
Jumlah Tagihan
Nilai NIM PK
KodeMatkul
NamaMatkul
KodeKelas
SKS
Nilai

Spesialisasi / Generalisasi Entitas

Langkah terakhir dalam penentuan ERD adalah melakukan spesialisasi atau generalisasi untuk jenis entitas. Spesialisasi / generalisasi sendiri adalah teknik untuk menyajikan sudut pandang yang berbeda di pemakai yang berbeda. Spesialisasi sudah melingkupi penentuan entitas, relasi, dan attribute. 

ERD Diagram Case Perkuliahan 

Langkah akhirnya adalah menyelesaikan ERD lengkapnya dengan attribute dan primary key yang bersifat penandaan attribute mana yang menjadi primary key. Kurang lebih hasil ERD dari hasil analisis yang sebelumnya kita lakukan adalah seperti berikut ini.



Mungkin hanya sampai sekian pembahasan kali ini, semoga bermanfaat untuk para pembaca sekalian. Kurang lebih mohon maaf, saran dan pertanyaan silahkan lemparkan ke kolom komentar. Terima kasih sudah berkunjung, sampai jumpa di pertemuan berikutnya..

Monday, January 7, 2019

Database Instrumental 3 - Model Data

Assalamu'alaikum

Selamat siang, salam sejahtera untuk kita semua. Siang ini melanjutkan artikel kembali kembali ke topik database basic, basic terus nih :v. Kali ini saya akan membahas tentang model data pada database. Apa itu model data dan apa kaitannya pada database langsung saja di materi berikut.

Model Data

Model data pada database adalah suatu atau jenis permodelan atau penggambaran terhadap data yang kita tangani. Karena yang dibahas model, maka model data selalu di gambarkan dalam bentuk chart yang dihubung hubungkan. Model data di klasifikasikan dalam 2 bentuk, yaitu model data berbasis objek dan model data bebasis record



Tujuan dari model data terhadap database adalah untuk penggambarannya. Karena pada dasarnya database yang ingin di rancang harus digambarkan agar lebih mudah di siapkan dan dengan begitu perancang dan pemakai bisa tau kegunaan masing masing entitas pada data terhubung ke entitas mana saja. Dan yang terpenting dari model data adalah untuk memudahkan perancangan basis datanya.

Model Data Berbasis Objek

Model data berbasis obyek ini adalah model data yang menyiapkan setiap node / chartnya dengan basis objek database. Dengan menggunakan konsep seperti entitas, attribute dan relasi, objek yang dimaksud adalah sebuah entitas. Karena entitas adalah sebuah objek yang memiliki karakteristik (attribute) yang bisa di bedakan dengan objek lainnya. Contohnya orang, tempat, barang, atau kejadian. Contoh model data berbasis objek pada umumnya adalah :
  • Model data semantik, model data semantic adalah relasi antar obyek yg dinyatakan dengan kata kata (semantic). 
 
  • Model data  ERD (Entity Relationship Diagram). ERD adalah salah satu model data berbasis objek yang paling sering digunakan. Jenis dan bentuk ERD dari tahun ke tahun pun berbeda beda. ERD adalah cara penggambaran real case yang terjadi sesuai kasusnya. Dengan ERD kita bisa menggambarkan bagaimana entitas satu bisa terhubung dengan entitas lainnya.


Model Data Berbasis Record

Model data ini berbeda dari model data berbasis objek. Model data ini mengambil nodenya berdasarkan record-record yang di perlukan dari database. Record sendiri adalah rekaman-rekaman data yang tersimpan di database. Contoh-contoh model data berbasis record yaitu :


  • Model database hirarki. Model data ini disajikan dari kumpulan record dan relasi yang digambarkan seperti bentuk pohon (tree). Model data ini memungkinkan satu node hanya untuk memiliki satu orang tua.
  • Model database jaringan. Network data model hampir menyerupai model data hirarki. Namun pada model data ini, memungkinan satu node bisa memiliki lebih dari satu orang tua.
  • Model database relational. Model database yang disajikan dalam bentuk tabel yang terdiri dari kolom dengan nama yang unik dan baris-baris yang menyimpan data yang berbeda. Model data ini digambarkan berdasarkan recordnya dan yang paling sering digunakan untuk memudahkan perancangan sebuah database.
Demikian penjelasan mengenai model data dan keterkaitan model data dengan database. Semoga bermanfaat bagi pembaca sekalian. Pertanyaan dan saran silahkan lemparkan ke kolom komentar. Sekian dari saya, selamat beraktifitas.

Sunday, January 6, 2019

DBMS Query Translation - Aljabar Relational Part2

Assalamu'alaikum

Selamat siang, senang berjumpa lagi dengan kalian setelah lama hibernasi :v maklum orang sibuk gaiss :v. Di kesempatan kali ini saya ingin melanjutkan pembahasan tentang aljabar relational lanjutan dari part sebelumnya. Cek disini untuk kilas balik materi sebelumnya karena tidak akan saya jelaskan ulang. Langsung saja kita ke TKP.

Tabel 

Berikut tabel yang sama seperti artikel sebelumnya, yaitu tabel mahasiswa, matakuliah dan nilai. Di artikel kali ini saya hanya akan membahas 1 jenis operasi saja yaitu operasi set - cartesian product. Karena pada dasarnya pencarian data dalam struktur database di setiap entitas kurang lebih melibatkan 3 operasi utama yang 2 diantaranya sudah dibahas di penjelasan artikel sebelumnya.

Operasi Set - Cartesian Product

Operasi selanjutnya setelah operasi unary selection dan projection sekarang kita bahas tentang operasi set, yaitu operasi yang sudah melibatkan 2 relasi atau 2 tabel. Cartesian product sendiri adalah jenis pencarian data yang melibatkan 2 relasi dari hasil penggabungan setiap kolom yang ingin dilibatkan dalam pencarian data. Sehingga menghasilkan pencarian yang lebih spesifik. 




Notasi pencarian aljabar relational di notasikan dengan Relasi1 x Relasi2. Contohnya, Tampilkan NPM, nama mahasiswa (dari relasi mahasiswa) dan KodeMatkul, Semester, Tahun, Nilai (dari relasi Nilai). 

Aljabar Relational :  (πNPM, NamaMhsw(MAHASISWA)) x (πNilai, KodeMatkul, Semester, Tahun, Nilai (NILAI))
Output : 


Hasil diatas salah karena banyaknya data yang rangkap informasi yang salah. Bisa diketahui bahwa arham answar adalah mhs jurusan sistem informasi dan sintia amelia yg mhs akutansi tidak mungkin mengambil matakuliah yang sama dan belum tentu ada mata kuliah tersebut. Ini membuktikan bahwa informasi pencarian data menggunakan aljabar relasional seperti diatas masih kurang spesifik. Operasi lengkapnya adalah sebagai berikut : 

σMAHASISWA.NPM = NILAI.NPM ((πNPM, NamaMhsw(MAHASISWA)) x (πKodeMatkul, Semester, Tahun, Nilai (NILAI)).

Berbeda dari operasi unary, operasi set tidak bisa langsung dieksekusi perintah aljabar relationalnya. Diawal eksekusinya harus di tambahkan terlebih dahulu perintah penghubung antara relasi mahasiswa dan relasi nilai. Penghubungnya apa? Penghubungnya disini adalah NPM sehingga kita bisa menghubungkannya menggunakan sama dengan (=)

Setelah ditambahkan ketentuan penghubungnya barulah bisa kita eksekusi menggunakan perintah operasi set - cartesian product. Sehingga hasilnya akan seperti berikut ini.


Contoh 2 : tampilkan NPM, nama mahasiswa (dari relasi mahasiswa) dan kodeMatkul, Semester, Tahun, Nilai (dari relasi nilai) dan NamaMatkul (dari relasi matakuliah)

Aljabar Relational : σMAHASISWA.NPM = NILAI.NPM ^ MATAKULIAH.KodeMatKul = NILAI.KodeMatKul (πNPM, NamaMhsw(MAHASISWA)) x (πKodeMatkul, Semester, Tahun, Nilai (NILAI)x (πNamaMatKul (MATAKULIAH)))

Di contoh kedua ini, kita melakukan sortir pencarian data di 3 entitas, yaitu entitas mahasiswa, matakuliah dan nilai. Karena 3 entitas tersebut, setiap entitas dihubungkan dengan primary keynya (NPM untuk mahasiswa-nilai dan KodeMatkul untuk matakuliah-nilai). Iingat! kita menghubungkan 3 entitas. Jadi, 2 entitas yg dihubungkan oleh primary key harus di hubungkan dengan simbol v terbalik seperti contoh diatas.




Setelah 3 entitas dihubungkan, barulah di eksekusi spesifikasi pencariannya seperti memunculkan kolom NPM, nama mahasiswa yg ada pada tabel mahasiswa. Lalu kolom KodeMatkul, Semester, tahun, nilai yang ada pada tabel nilai. Dan terakhir kolom NamaMatkul dari tabel Matakuliah. Maka kurang lebih hasilnya seperti berikut ini.


Kurang lebih seperti itu penjelasan mengenai aljabar relational tentang operasi set - cartesian product. Mengenai operasi operasi yang lain padaaljabar relational akan di jelaskan lain waktu mengingat hanya 3 operasi pertama saja yang kurang lebih sering digunakan. Insya allah tetap akan di jelaskan lain waktu. Kurang lebih mohon maaf semoga bisa bermanfaat untuk pembaca. Sekian, terima kasih.
 

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