<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Blog of Dimaz &#187; Basis Data</title>
	<atom:link href="http://dimaz.web.id/category/computer/programming/basis-data-programming-computer/feed/" rel="self" type="application/rss+xml" />
	<link>http://dimaz.web.id</link>
	<description>The story of my mind</description>
	<lastBuildDate>Sun, 05 Feb 2012 10:56:23 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Deferred Constraints Pada Oracle</title>
		<link>http://dimaz.web.id/computer/programming/basis-data-programming-computer/deferred-constraints-pada-oracle/</link>
		<comments>http://dimaz.web.id/computer/programming/basis-data-programming-computer/deferred-constraints-pada-oracle/#comments</comments>
		<pubDate>Sun, 17 Jul 2011 10:51:19 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Basis Data]]></category>
		<category><![CDATA[deferrable]]></category>
		<category><![CDATA[deferred]]></category>
		<category><![CDATA[initially deferred]]></category>
		<category><![CDATA[oracle]]></category>

		<guid isPermaLink="false">http://dimaz.web.id/?p=1796</guid>
		<description><![CDATA[Kita tahu bahwa referential integrity merupakan hal yang sangat penting untuk menjaga integritas data, terutama dalam sistem relational database management system (RDBMS) di mana tabel-tabel terhubung satu sama lain dalam hubungan (relasi) tertentu. Akan tetapi ada kalanya kita perlu membuat pengecualian karena desain yang kita buat menuntut hal itu. Oracle mensupport penundaan evaluasi constraint dengan [...]]]></description>
			<content:encoded><![CDATA[<p>Kita tahu bahwa referential integrity merupakan hal yang sangat penting untuk menjaga integritas data, terutama dalam sistem relational database management system (RDBMS) di mana tabel-tabel terhubung satu sama lain dalam hubungan (relasi) tertentu. Akan tetapi ada kalanya kita perlu membuat pengecualian karena desain yang kita buat menuntut hal itu. Oracle mensupport penundaan evaluasi constraint dengan fasilitas <strong>DEFERRED</strong>.<br />
<span id="more-1796"></span><br />
Saya akan mengambil contoh kasus sederhana dari <a href="http://infolab.stanford.edu/~ullman/fcdb/oracle/or-triggers.html" target = "_blank">sini</a>. Kasus ayam dan telur. Kita akan membuat dua tabel yakni chicken dan egg (catatan : struktur tabel hanya merupakan perumpamaan dari kasus deferred constraints dan tidak memperhatikan proses normalisasi maupun aturan desain database yang baik).</p>
<pre class="brush: sql; title: ; notranslate">
CREATE TABLE chicken (cID INT PRIMARY KEY,
                      eID INT REFERENCES egg(eID));
CREATE TABLE egg(eID INT PRIMARY KEY,
                 cID INT REFERENCES chicken(cID));</pre>
<p>Nah, tabel chicken ternyata memiliki foreign key eID yang merupakan primary key dari tabel egg, begitu juga tabel egg memiliki foreign key cID yang merupakan primary key dari tabel chicken. Dengan struktur yang seperti ini, bagaimana kita bisa menginput data chicken sebelum menginput data egg, atau sebaliknya, menginput data egg sebelum menginput data chicken? Dengan kata lain, data mana yang seharusnya kita input terlebih dahulu, chicken atau egg?<br />
Untuk memecahkan masalah ini, kita perlu melakukan modifikasi struktur. </p>
<pre class="brush: sql; title: ; notranslate">CREATE TABLE chicken(cID INT PRIMARY KEY,
                     eID INT);
CREATE TABLE egg(eID INT PRIMARY KEY,
                 cID INT);</pre>
<p>Dalam struktur tabel di atas kita belum memasukkan foreign key. Berikut struktur foreign key nya</p>
<pre class="brush: sql; title: ; notranslate">ALTER TABLE chicken ADD CONSTRAINT chickenREFegg
    FOREIGN KEY (eID) REFERENCES egg(eID)
    INITIALLY DEFERRED DEFERRABLE;
ALTER TABLE egg ADD CONSTRAINT eggREFchicken
    FOREIGN KEY (cID) REFERENCES chicken(cID)
    INITIALLY DEFERRED DEFERRABLE;</pre>
<p>Perhatikan bahwa kita menambahkan baris perintah INITIALLY DEFERRED DEFERRABLE. Kita dapat memecahnya menjadi 2.<br />
<strong>INITIALLY DEFERRED</strong>. Perintah ini mengoverload nilai default <strong>INITIALLY IMMEDIATE</strong> dari setiap tabel yang dibuat. INITIALLY IMMEDIATE artinya sistem akan mengevaluasi nilai segera setelah nilai tersebut diinsert. Tetapi INTIALLY DEFERRED akan menunda evaluasi nilai dalam rangka referential integrity (implementasi constraint) hingga perintah <strong>COMMIT</strong> dijalankan.<br />
<strong>DEFERRABLE</strong>. Perintah ini akan membuat constraint tersebut dapat di-DEFERRED, yang mengoverload nilai default <strong>NOT DEFERRABLE</strong> dari setiap tabel yang dibuat.</p>
<p>Opsi lain, Anda bisa mengeset constraint menjadi <strong>INITIALLY IMMEDIATE DEFERRABLE</strong>, dan pada saat dibutuhkan Anda bisa mengeset session Anda menjadi DEFERRED untuk kemudian mengembalikannya kembali jadi IMMEDIATE saat mode DEFERRED sudah tidak diperlukan, dengan contoh seperti berikut (<a href="http://www.oracle-base.com/articles/8i/ConstraintCheckingUpdates.php" target="_blank">sumber</a>). Misalkan kita memiliki 2 tabel.</p>
<pre class="brush: sql; title: ; notranslate">CREATE TABLE tab1 (id  NUMBER(10), tab2_id NUMBER(10));
CREATE TABLE tab2 (id  NUMBER(10));</pre>
<p>Kita modifikasi tabel untuk menambahkan constraint.</p>
<pre class="brush: sql; title: ; notranslate">ALTER TABLE tab2 ADD PRIMARY KEY (id);</pre>
<pre class="brush: sql; title: ; notranslate">ALTER TABLE tab1 ADD CONSTRAINT fk_tab1_tab2
  FOREIGN KEY (tab2_id)
  REFERENCES tab2 (id)
  DEFERRABLE
  INITIALLY IMMEDIATE;</pre>
<p>Anda dapat mengubah SESSION Anda agar bisa memodifikasi isi tabel dengan mode DEFERRED.</p>
<pre class="brush: sql; title: ; notranslate">ALTER SESSION SET CONSTRAINTS = DEFERRED;</pre>
<p>Kemudian Anda bisa mengembalikan kembali ke mode IMMEDIATE.</p>
<pre class="brush: sql; title: ; notranslate">ALTER SESSION SET CONSTRAINTS = IMMEDIATE;</pre>
<div class="al2fb_like_button"><div id="fb-root"></div><script src="http://connect.facebook.net/en_US/all.js#appId=290579107645395&amp;xfbml=1" type="text/javascript"></script>
<fb:like href="http://dimaz.web.id/computer/programming/basis-data-programming-computer/deferred-constraints-pada-oracle/" layout="standard" show_faces="true" width="450" action="like" font="arial" colorscheme="light" ref="AL2FB"></fb:like></div><div class="al2fb_comments_plugin"><div id="fb-root"></div><script src="http://connect.facebook.net/en_US/all.js#appId=290579107645395&amp;xfbml=1" type="text/javascript"></script>
<fb:comments num_posts="2" width="450" colorscheme="light" href="http://dimaz.web.id/computer/programming/basis-data-programming-computer/deferred-constraints-pada-oracle/"></fb:comments></div>]]></content:encoded>
			<wfw:commentRss>http://dimaz.web.id/computer/programming/basis-data-programming-computer/deferred-constraints-pada-oracle/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Network Computing : Connection Lost</title>
		<link>http://dimaz.web.id/computer/programming/basis-data-programming-computer/network-computing-connection-lost/</link>
		<comments>http://dimaz.web.id/computer/programming/basis-data-programming-computer/network-computing-connection-lost/#comments</comments>
		<pubDate>Tue, 05 Jul 2011 21:42:42 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Basis Data]]></category>
		<category><![CDATA[connection lost]]></category>
		<category><![CDATA[Delphi]]></category>
		<category><![CDATA[firebird]]></category>
		<category><![CDATA[ibdatabase1]]></category>
		<category><![CDATA[ibquery1]]></category>
		<category><![CDATA[network computing]]></category>

		<guid isPermaLink="false">http://dimaz.web.id/?p=1775</guid>
		<description><![CDATA[Program atau aplikasi yang berjalan di jaringan ternyata memiliki kompleksitas yang jauh lebih tinggi ketimbang program standalone. Anda dapat berharap jaringan Anda tidak bermasalah, tetapi begitu Anda harus menjalankan program dalam jaringan yang terputus-putus, tentu saja ada penanganan khusus terhadap connection lost ini. Yang akan saya bahas di sini menggunakan IDE Delphi dan database Firebird, [...]]]></description>
			<content:encoded><![CDATA[<p>Program atau aplikasi yang berjalan di jaringan ternyata memiliki kompleksitas yang jauh lebih tinggi ketimbang program standalone. Anda dapat berharap jaringan Anda tidak bermasalah, tetapi begitu Anda harus menjalankan program dalam jaringan yang terputus-putus, tentu saja ada penanganan khusus terhadap connection lost ini.</p>
<p>Yang akan saya bahas di sini menggunakan IDE Delphi dan database Firebird, dan koneksi menggunakan komponen Interbase bawaan Delphi.<br />
<span id="more-1775"></span><br />
Kita akan sedikit membahas teori tentang tipe koneksi. Pada dasarnya ada 2 tipe koneksi, yaitu connection-oriented dan connectionless. Connection-oriented artinya koneksi (dengan server) akan tetap dipertahankan selama program berjalan, sedangkan connectionless artinya koneksi antara program dengan server hanya akan dibuat ketika program membutuhkan data.</p>
<p>Contoh aplikasi connection-oriented adalah ketika Anda login, Anda akan menjalankan perintah ini:<br />
IBDatabase1.Connected := true;<br />
dan koneksi ini akan diputus ketika seorang pengguna logout atau menutup aplikasi.<br />
Nah, masalahnya, ketika terjadi connection lost, maka ada beberapa perintah yang akan mengeluarkan error ketika dieksekusi, oleh karena itu, kita harus memberinya exception dan menjalankan perintah yang tetap bisa dijalankan sekalipun koneksi jaringan terputus.<br />
Anda dapat membaca <a href="http://mc-computing.com/databases/Delphi/IBX_LC_Code.html">artikel dari mc-computing</a> yang membahas tentang bagaimana menangani connection lost.<br />
Beberapa baris perintah yang error adalah:</p>
<p>- <strong>IBDatabase1.Connected := false;</strong><br />
Anda dapat menambahkan baris perintah IBDatabase1.ForceClose; yang tetap berjalan meski koneksi terputus.<br />
contoh :<br />
<em>try<br />
  IBDatabase1.Connected := false;<br />
  IBDatabase1.ForceClose;<br />
except<br />
end;</em><br />
Jangan lupa juga memeriksa apakah transaksi sedang InTransaction atau tidak, dan me-rollback atau commit.<br />
<em>if IBTransaction1.InTransaction then<br />
begin<br />
  IBTransaction1.Rollback;<br />
  IBTransaction1.Active := False;<br />
end;</em></p>
<p>-<strong>IBQuery1.Open;</strong><br />
Perhatikan, dataset akan selalu menimbulkan exception &#8220;Invalid transaction handle&#8221; ketika dia diberi perintah open, apabila ketika terjadi connection lost dataset tersebut sedang dalam keadaan open dan belum ditutup. Oleh karena itu, mungkin Anda harus sedikit &#8220;membersihkan&#8221; kode-kode Anda dengan menambahkan baris perintah:<br />
<em>IBQuery1.Close;<br />
IBQuery1.Active := false;</em><br />
di setiap akhir query yang Anda lakukan. Tentu saja saya tidak bisa menjelaskan di mana saja baris perintah ini harus diletakkan, karena tergantung pada algoritma dan alur program yang Anda pakai.<br />
Penggunaan tambahan 2 baris di atas juga dapat menghilangkan munculnya exception &#8220;Dataset open&#8221; ketika sebuah form ditutup atau dibuka yang mana dalam form tersebut terdapat dataset yang masih terbuka.</p>
<div class="al2fb_like_button"><div id="fb-root"></div><script src="http://connect.facebook.net/en_US/all.js#appId=290579107645395&amp;xfbml=1" type="text/javascript"></script>
<fb:like href="http://dimaz.web.id/computer/programming/basis-data-programming-computer/network-computing-connection-lost/" layout="standard" show_faces="true" width="450" action="like" font="arial" colorscheme="light" ref="AL2FB"></fb:like></div><div class="al2fb_comments_plugin"><div id="fb-root"></div><script src="http://connect.facebook.net/en_US/all.js#appId=290579107645395&amp;xfbml=1" type="text/javascript"></script>
<fb:comments num_posts="2" width="450" colorscheme="light" href="http://dimaz.web.id/computer/programming/basis-data-programming-computer/network-computing-connection-lost/"></fb:comments></div>]]></content:encoded>
			<wfw:commentRss>http://dimaz.web.id/computer/programming/basis-data-programming-computer/network-computing-connection-lost/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Melindungi Database Firebird dari Akses SYSDBA</title>
		<link>http://dimaz.web.id/computer/programming/basis-data-programming-computer/melindungi-database-firebird-dari-akses-sysdba/</link>
		<comments>http://dimaz.web.id/computer/programming/basis-data-programming-computer/melindungi-database-firebird-dari-akses-sysdba/#comments</comments>
		<pubDate>Mon, 20 Jun 2011 22:16:17 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Basis Data]]></category>
		<category><![CDATA[DBMS]]></category>
		<category><![CDATA[fbownermigrator]]></category>
		<category><![CDATA[firebird]]></category>
		<category><![CDATA[sysdba]]></category>

		<guid isPermaLink="false">http://dimaz.web.id/?p=1765</guid>
		<description><![CDATA[Firebird merupakan salah satu solusi kebutuhan database yang bersifat open source, gratis, dan dapat dimanfaatkan untuk kebutuhan apa saja. Firebird akan menjadi sangat bermanfaat apabila Anda memang membutuhkan suatu DBMS yang komprehensif dan memiliki fasilitas storedprocedure, trigger, indexes, transaction, dan banyak lagi. Apabila Anda sudah sering menggunakan database Firebird, mungkin Anda telah akrab dengan akun [...]]]></description>
			<content:encoded><![CDATA[<p>Firebird merupakan salah satu solusi kebutuhan database yang bersifat open source, gratis, dan dapat dimanfaatkan untuk kebutuhan apa saja. Firebird akan menjadi sangat bermanfaat apabila Anda memang membutuhkan suatu DBMS yang komprehensif dan memiliki fasilitas storedprocedure, trigger, indexes, transaction, dan banyak lagi.<br />
<span id="more-1765"></span><br />
Apabila Anda sudah sering menggunakan database Firebird, mungkin Anda telah akrab dengan akun SYSDBA (dan password masterkey), dan bahkan menggunakan akun super administrator tersebut untuk membuat file-file database production Anda. Tetapi menjadi suatu permasalahan apabila Anda hendak membatasi hak akses SYSDBA, mungkin karena Anda ingin melindungi integritas data di dalamnya dari direct access user yang tidak bertanggungjawab. Nah, beberapa waktu lamanya aku mencari cara untuk melindungi database firebird ini dari akses SYSDBA. Model proteksi Firebird yang populer salah satunya adalah milik Accurate, software accounting.</p>
<p>Cara pertama adalah dengan mengubah password standar SYSDBA. Namun mungkin akan menjadi masalah apabila file database kita dikopi ke mesin lain dengan server Firebird yang masih standar, yang tentunya juga masih memiliki password standar. User akan dengan mudah membuka file database kita dengan akun SYSDBA.</p>
<p>Cara kedua, dengan menterjemahkan artikel dari <a href="http://eksa.wordpress.com/2008/09/03/protectun-protect-data-fbib-dari-gangguan-sysdba/">eksa</a> ke dalam program. Namun setelah kucoba, file security2.fdb tidak lagi dapat dibuka dengan akun super administrator, sehingga cara ini mungkin sudah kadaluarsa dengan sistem Firebird di atas versi 1.5.</p>
<p>Cara ketiga, Anda bisa membuat database baru dengan user baru yang Anda buat sendiri. Kemudian Anda bisa memompa data dari database lama ke database baru. Namun masalahnya, apabila Anda sudah terlanjur menciptakan database dengan SYSDBA dan proses development sudah terlampau jauh dengan berbagai rules telah terpasang dalam database Anda, memompa data ke database baru bukan suatu pekerjaan mudah. Anda harus memastikan seluruh data berpindah dengan sempurna.</p>
<p>Cara keempat, Anda bisa menggunakan FBOwnerMigrator yang dibuat oleh <a href="http://blog.upscene.com/thomas/comments.php?y=08&#038;m=07&#038;entry=entry080730-233217">Thomas Steinmaurer</a>. Program utility ini bisa Anda dapatkan dengan menghubungi Thomas Steinmaurer (alamat email ada di tautan). Program ini akan memigrasi ownership database Anda dari SYSDBA ke user baru yang telah Anda create sebelumnya, sehingga pada akhirnya database Anda akan terlindungi dari akses SYSDBA.<br />
(Thanks to Mr. Steinmaurer for his great job)</p>
<p><img src="http://4.bp.blogspot.com/_QSqqZwB3CTk/SQr41EQLPaI/AAAAAAAAAMw/kvv7AZ_3tLI/s400/353px-Ds-firebird-logo.svg.png" alt="firebirdsql" /></p>
<div class="al2fb_like_button"><div id="fb-root"></div><script src="http://connect.facebook.net/en_US/all.js#appId=290579107645395&amp;xfbml=1" type="text/javascript"></script>
<fb:like href="http://dimaz.web.id/computer/programming/basis-data-programming-computer/melindungi-database-firebird-dari-akses-sysdba/" layout="standard" show_faces="true" width="450" action="like" font="arial" colorscheme="light" ref="AL2FB"></fb:like></div><div class="al2fb_comments_plugin"><div id="fb-root"></div><script src="http://connect.facebook.net/en_US/all.js#appId=290579107645395&amp;xfbml=1" type="text/javascript"></script>
<fb:comments num_posts="2" width="450" colorscheme="light" href="http://dimaz.web.id/computer/programming/basis-data-programming-computer/melindungi-database-firebird-dari-akses-sysdba/"></fb:comments></div>]]></content:encoded>
			<wfw:commentRss>http://dimaz.web.id/computer/programming/basis-data-programming-computer/melindungi-database-firebird-dari-akses-sysdba/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Desain Basis Data dengan Data Eksisting, POC, dan Implementasi Sistem</title>
		<link>http://dimaz.web.id/computer/programming/basis-data-programming-computer/desain-basis-data-dengan-data-eksisting-poc-dan-implementasi-sistem/</link>
		<comments>http://dimaz.web.id/computer/programming/basis-data-programming-computer/desain-basis-data-dengan-data-eksisting-poc-dan-implementasi-sistem/#comments</comments>
		<pubDate>Mon, 30 May 2011 22:44:27 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Basis Data]]></category>
		<category><![CDATA[basis data]]></category>
		<category><![CDATA[database]]></category>
		<category><![CDATA[desain]]></category>
		<category><![CDATA[programming]]></category>

		<guid isPermaLink="false">http://dimaz.web.id/?p=1728</guid>
		<description><![CDATA[Proses desain basis data merupakan salah satu yang paling dasar dilakukan sebelum membuat aplikasi basis data. Dalam perencanaannya, kita bisa memilah-milah data menjadi entitas-entitas, atribut, dan relasi. Kita bisa membaca banyak sekali saran-saran maupun metode-metode dalam penyusunan desain ini, tetapi permasalahan akan semakin bertambah apabila kita harus membuat aplikasi baru dari data yang sudah ada. [...]]]></description>
			<content:encoded><![CDATA[<p>Proses desain basis data merupakan salah satu yang paling dasar dilakukan sebelum membuat aplikasi basis data. Dalam perencanaannya, kita bisa memilah-milah data menjadi entitas-entitas, atribut, dan relasi. Kita bisa membaca banyak sekali saran-saran maupun metode-metode dalam penyusunan desain ini, tetapi permasalahan akan semakin bertambah apabila kita harus membuat aplikasi baru dari data yang sudah ada.<br />
<span id="more-1728"></span><br />
Permasalahan dengan data eksisting adalah kita tidak bisa leluasa berkreasi karena dibatasi oleh ketersediaan data yang ada. Kita tidak dapat memaksakan sebuah desain yang benar-benar atomic, normal (hasil normalisasi), dan efisien. Terkadang kita harus menambahkan atribut, relasi, maupun entitas baru yang sebenarnya tidak dibutuhkan apabila kita membuat basis data kosong.<br />
Apalagi kalau Anda harus berhadapan dengan data eksisting yang jumlahnya besar namun datanya tidak konsisten. Anda memerlukan trik-trik tambahan, salah satunya menempatkan default value pada data-data yang tidak konsisten maupun data kosong.</p>
<p>Dalam proses pembuatan aplikasi, Anda juga harus memperhatikan infrastruktur yang akan menunjang aplikasi Anda. Anda tidak dapat membuat kueri yang memakan waktu dan sumber daya terlalu banyak dalam jaringan yang lambat. Anda dituntut untuk menggunakan koneksi seefisien mungkin supaya jalur data tidak mengganggu proses bisnis organisasi yang Anda layani. Anda mungkin harus bekerja ekstra dalam membuat stored procedure dan trigger yang diletakkan dalam server sehingga mengurangi beban jaringan.</p>
<p>Ketika Anda harus berhadapan dengan kebijakan organisasi tentang hak akses data, Anda juga dituntut memodifikasi skrip (dan bila perlu hak akses basis data) untuk mendukung kebijakan ini, sehingga proses pembuatan aplikasi akan memakan waktu lebih lama. Dalam prosesnya, Anda tidak boleh melupakan Proof of Concept (POC) untuk mencoba apakah teknik-teknik yang akan Anda pakai dapat diterapkan dalam organisasi Anda. POC ini biasanya dilakukan di awal masa pengembangan sehingga proses development dan hasil akhir tidak menjadi sia-sia dan dapat diterapkan dalam organisasi Anda.</p>
<p>Perlu diingat bahwa proses implementasi sistem baru adalah salah satu tahapan yang paling sulit, karena kita dihadapkan pada orang-orang yang memiliki karakteristik yang berbeda. Lain halnya ketika kita berhadapan dengan mesin yang dapat dengan mudah dikendalikan, kita tidak dapat mengubah pola kerja dan pola pikir seseorang untuk menyesuaikan dengan sistem baru yang kita luncurkan.</p>
<div class="al2fb_like_button"><div id="fb-root"></div><script src="http://connect.facebook.net/en_US/all.js#appId=290579107645395&amp;xfbml=1" type="text/javascript"></script>
<fb:like href="http://dimaz.web.id/computer/programming/basis-data-programming-computer/desain-basis-data-dengan-data-eksisting-poc-dan-implementasi-sistem/" layout="standard" show_faces="true" width="450" action="like" font="arial" colorscheme="light" ref="AL2FB"></fb:like></div><div class="al2fb_comments_plugin"><div id="fb-root"></div><script src="http://connect.facebook.net/en_US/all.js#appId=290579107645395&amp;xfbml=1" type="text/javascript"></script>
<fb:comments num_posts="2" width="450" colorscheme="light" href="http://dimaz.web.id/computer/programming/basis-data-programming-computer/desain-basis-data-dengan-data-eksisting-poc-dan-implementasi-sistem/"></fb:comments></div>]]></content:encoded>
			<wfw:commentRss>http://dimaz.web.id/computer/programming/basis-data-programming-computer/desain-basis-data-dengan-data-eksisting-poc-dan-implementasi-sistem/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Firebird : Date Functions</title>
		<link>http://dimaz.web.id/computer/programming/basis-data-programming-computer/firebird-date-functions/</link>
		<comments>http://dimaz.web.id/computer/programming/basis-data-programming-computer/firebird-date-functions/#comments</comments>
		<pubDate>Sun, 22 Nov 2009 02:22:17 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Basis Data]]></category>
		<category><![CDATA[Catatan Dimaz]]></category>
		<category><![CDATA[firebird]]></category>
		<category><![CDATA[freeudflib]]></category>
		<category><![CDATA[library]]></category>
		<category><![CDATA[tanggal]]></category>
		<category><![CDATA[UDF]]></category>

		<guid isPermaLink="false">http://dim.tlogosari.net/?p=571</guid>
		<description><![CDATA[Firebird sudah jadi favoritku untuk kategori database, dan makin jadi kesukaan karena terdapat fasilitas penambahan fungsi-fungsi eksternal. Terkadang dalam stored procedure kita harus mencari tanggal beberapa tahun ke depan, atau mencari selisih bulan antara 2 tanggal. Walaupun terlihat sepele, pekerjaan tersebut sulit dilakukan. Tetapi menggunakan library tambahan FreeUDFLib, aritmatika tanggal jadi sangat mudah.]]></description>
			<content:encoded><![CDATA[<p>Firebird sudah jadi favoritku untuk kategori database, dan makin jadi kesukaan karena terdapat fasilitas penambahan fungsi-fungsi eksternal.</p>
<p>Terkadang dalam <em>stored procedure</em> kita harus mencari tanggal beberapa tahun ke depan, atau mencari selisih bulan antara 2 tanggal. Walaupun terlihat sepele, pekerjaan tersebut sulit dilakukan. Tetapi menggunakan library tambahan <a href="http://www.ibexpert.com/download/udf/freeudflib.zip" target="_blank">FreeUDFLib</a>, aritmatika tanggal jadi sangat mudah.</p>
<div class="al2fb_like_button"><div id="fb-root"></div><script src="http://connect.facebook.net/en_US/all.js#appId=290579107645395&amp;xfbml=1" type="text/javascript"></script>
<fb:like href="http://dimaz.web.id/computer/programming/basis-data-programming-computer/firebird-date-functions/" layout="standard" show_faces="true" width="450" action="like" font="arial" colorscheme="light" ref="AL2FB"></fb:like></div><div class="al2fb_comments_plugin"><div id="fb-root"></div><script src="http://connect.facebook.net/en_US/all.js#appId=290579107645395&amp;xfbml=1" type="text/javascript"></script>
<fb:comments num_posts="2" width="450" colorscheme="light" href="http://dimaz.web.id/computer/programming/basis-data-programming-computer/firebird-date-functions/"></fb:comments></div>]]></content:encoded>
			<wfw:commentRss>http://dimaz.web.id/computer/programming/basis-data-programming-computer/firebird-date-functions/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Orphan Data dalam Basis Data</title>
		<link>http://dimaz.web.id/computer/programming/basis-data-programming-computer/orphan-data-dalam-basis-data/</link>
		<comments>http://dimaz.web.id/computer/programming/basis-data-programming-computer/orphan-data-dalam-basis-data/#comments</comments>
		<pubDate>Thu, 01 Oct 2009 07:26:03 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Basis Data]]></category>
		<category><![CDATA[basis data]]></category>
		<category><![CDATA[data]]></category>
		<category><![CDATA[database]]></category>
		<category><![CDATA[integritas referensial]]></category>
		<category><![CDATA[orphan data]]></category>

		<guid isPermaLink="false">http://dim.tlogosari.net/?p=494</guid>
		<description><![CDATA[Jika kita bicara basis data secara mendalam, kita tidak bisa lepas dari pembicaraan tentang integritas referensial (referential integrity) yang &#8220;mengikat&#8221; data-data antartabel. Integritas referensial menjamin data-data yang di-refer (dirujuk) oleh data dari tabel lain tetap eksis, atau jika berubah (delete atau update) maka data yang me-refer mampu menyesuaikan. Nah, apa yang terjadi jika basis data [...]]]></description>
			<content:encoded><![CDATA[<p>Jika kita bicara basis data secara mendalam, kita tidak bisa lepas dari pembicaraan tentang integritas referensial (referential integrity) yang &#8220;mengikat&#8221; data-data antartabel. Integritas referensial menjamin data-data yang di-refer (dirujuk) oleh data dari tabel lain tetap eksis, atau jika berubah (delete atau update) maka data yang me-refer mampu menyesuaikan.</p>
<p>Nah, apa yang terjadi jika basis data dengan data yang saling merujuk tersebut tidak menggunakan integritas referensial? Semisal kita memiliki tabel barang (tbarang), tabel penjualan (tpenjualan), dan tabel penjualan detail (tpenjualan_detail)<br />
tbarang:<br />
	kd_barang *<br />
	nama_barang<br />
	merek</p>
<p>tpenjualan:<br />
	no_nota *<br />
	tgl_nota</p>
<p>tpenjualan_detail<br />
	no_nota *<br />
	kd_barang *<br />
	qty</p>
<p>Ket : *) primary key</p>
<p>Dari tabel dan entitasnya di atas, perhatikan tabel tpenjualan_detail yang merujuk data ke tabel tbarang melalui field kd_barang. Kedua tabel ini akan terhubung dengan relasi tbarang one-to-many tpenjualan_detail.<br />
Jika tanpa integritas referensial, maka jika sebuah record dari tbarang yang menjadi rujukan dalam tpenjualan_detail dihapus, maka record dalam tpenjualan_detail tersebut akan menjadi orphan data, artinya data yang rujukannya sudah tidak eksis lagi. Dan dalam sistem basis data, data seperti ini sangat dihindari karena dampaknya akan sangat merugikan atau bahkan datanya tidak bisa digunakan lagi.</p>
<p>Barangkali ada yang mempunyai ide untuk menangkal orphan data ini di level aplikasi. Bisa, tetapi terbatas pada struktur basis data yang kompleks. Bayangkan bila tbarang di atas dirujuk oleh banyak sekali tabel, maka jika akan menghapus record harus melakukan pengecekan satu persatu. Berbeda kasusnya bila kita menggunakan fasilitas dalam integritas referensial yang mampu secara otomatis menghasilkan error ketika record yang menjadi rujukan berusaha dihapus.</p>
<p>Pembahasan singkat di atas mungkin bisa menjadi referensi bagus untuk mempertimbangkan penggunaan DBMS yang sudah menggunakan integritas referensial secara intensif. Contoh di antaranya adalah Microsoft Access dan Firebird.</p>
<div class="al2fb_like_button"><div id="fb-root"></div><script src="http://connect.facebook.net/en_US/all.js#appId=290579107645395&amp;xfbml=1" type="text/javascript"></script>
<fb:like href="http://dimaz.web.id/computer/programming/basis-data-programming-computer/orphan-data-dalam-basis-data/" layout="standard" show_faces="true" width="450" action="like" font="arial" colorscheme="light" ref="AL2FB"></fb:like></div><div class="al2fb_comments_plugin"><div id="fb-root"></div><script src="http://connect.facebook.net/en_US/all.js#appId=290579107645395&amp;xfbml=1" type="text/javascript"></script>
<fb:comments num_posts="2" width="450" colorscheme="light" href="http://dimaz.web.id/computer/programming/basis-data-programming-computer/orphan-data-dalam-basis-data/"></fb:comments></div>]]></content:encoded>
			<wfw:commentRss>http://dimaz.web.id/computer/programming/basis-data-programming-computer/orphan-data-dalam-basis-data/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SQL</title>
		<link>http://dimaz.web.id/computer/programming/basis-data-programming-computer/sql/</link>
		<comments>http://dimaz.web.id/computer/programming/basis-data-programming-computer/sql/#comments</comments>
		<pubDate>Sun, 24 May 2009 11:57:29 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Basis Data]]></category>
		<category><![CDATA[basis data]]></category>
		<category><![CDATA[CONTOH sql DATABASE DENGAN KONDISI LIKE]]></category>
		<category><![CDATA[data]]></category>
		<category><![CDATA[database]]></category>
		<category><![CDATA[delete]]></category>
		<category><![CDATA[insert into]]></category>
		<category><![CDATA[query]]></category>
		<category><![CDATA[select]]></category>
		<category><![CDATA[sql]]></category>
		<category><![CDATA[update]]></category>

		<guid isPermaLink="false">http://dim.tlogosari.net/?p=355</guid>
		<description><![CDATA[SQL (Structured Query Language) merupakan bahasa implementasi dari basis data relasional hasil penelitian IBM. Bahasa SQL terdiri atas sekelompok fasilitas untuk mendefinisikan, memanipulasi, dan mengontrol data dalam basis data relasional. Bab ini membatasi diri pada penggunaan SQL untuk memasukkan data dalam tabel, memanipulasi data yang ada dalam sebuah tabel maupun antartabel, mengupdate data, dan menghapus [...]]]></description>
			<content:encoded><![CDATA[<p>SQL (Structured Query Language) merupakan bahasa implementasi dari basis data relasional hasil penelitian IBM. Bahasa SQL terdiri atas sekelompok fasilitas untuk mendefinisikan, memanipulasi, dan mengontrol data dalam basis data relasional.<br />
Bab ini membatasi diri pada penggunaan SQL untuk memasukkan data dalam tabel, memanipulasi data yang ada dalam sebuah tabel maupun antartabel, mengupdate data, dan menghapus data.<br />
<span id="more-355"></span><br />
<strong>Memasukkan Data</strong><br />
Sintaks yang digunakan adalah sebagai berikut:<br />
INSERT INTO nama_tabel(nama_kolom1, nama_kolom2, &#8230;.)<br />
VALUES (nilai_kolom1, nilai_kolom1, &#8230;);<br />
Contoh:<br />
INSERT INTO infoprib<br />
VALUES (‘STONE’, ‘Sharon Stone’, ‘1958-03-10’, ‘T’);</p>
<p><strong>Query</strong><br />
•	Melihat isi tabel<br />
Sintaks:<br />
SELECT * FROM nama_tabel;<br />
Tanda asterisk (*) menunjukkan semua kolom dalam tabel.<br />
Contoh:<br />
	SELECT * FROM infoprib;</p>
<p>•	Menampilkan kolom tertentu<br />
Sintaks:<br />
	SELECT nama_kolom1, nama_kolom2, &#8230;<br />
	FROM nama_tabel;<br />
Contoh:<br />
	SELECT nama, tgl_lahir<br />
	FROM infoprib;</p>
<p>•	Memperoleh data yang unik<br />
Menggunakan klausa DISTINCT setelah klausa SELECT<br />
Contoh:<br />
	SELECT DISTINCT sex<br />
	FROM infoprib;</p>
<p>•	Memilih baris tertentu<br />
Menggunakan klausa WHERE untuk menentukan kondisi data yang boleh ditampilkan.<br />
Sintaks:<br />
	SELECT nama_kolom1, nama_kolom2,&#8230;<br />
	FROM nama_tabel<br />
	WHERE [kondisi];<br />
Contoh:<br />
	SELECT nama<br />
	FROM infoprib<br />
	WHERE sex = ‘W’;</p>
<p>•	Menggunakan operator Relasional<br />
Kondisi menggunakan operator relasional.<br />
Operator	Arti<br />
=	Sama dengan<br />
>	Lebih dari<br />
<	Kurang dari<br />
>=	Lebih dari atau sama dengan<br />
<=	Kurang dari atau sama dengan<br />
<>	Tidak sama dengan<br />
Contoh:<br />
	SELECT nama_peg, gaji<br />
	FROM pegawai<br />
	WHERE gaji > 2000000;</p>
<p>•	Menggunakan operator Boolean<br />
?	Operator OR, sifatnya benar bila salah satu benar<br />
Contoh:<br />
	SELECT *<br />
	FROM infoprib<br />
	WHERE sex = ‘P’ OR id_bin = ‘STONE’;<br />
?	Operator AND, sifatnya benar bila keduanya benar<br />
Contoh:<br />
	SELECT nama, tgl_lahir<br />
	FROM infoprib<br />
	WHERE sex = ‘P’ AND tgl_lahir < ‘1950-01-01’;<br />
?	Operator NOT, digunakan untuk pembalikan nilai nalar<br />
Contoh:<br />
	SELECT nama<br />
	FROM infoprib<br />
	WHERE NOT sex = ‘P’;</p>
<p>•	Menggunakan operator BETWEEN dan NOT BETWEEN<br />
Operator BETWEEN digunakan untuk membuat suatu kondisi di mana data berada di antara batas-batas nilai yang ditentukan, sedang NOT BETWEEN memiliki sifat kebalikan dengan BETWEEN, yaitu kondisi data tidak berada di antara batas-batas nilai yang ditentukan.<br />
Contoh:<br />
	SELECT nama, tgl_lahir<br />
	FROM infoprib<br />
	WHERE tgl_lahir BETWEEN ‘1960-01-01’ AND ‘1970-12-31’;<br />
		SELECT nama<br />
		FROM infoprib<br />
		WHERE nama NOT BETWEEN ‘C’ AND ‘J’;</p>
<p>•	Menggunakan operator LIKE dan NOT LIKE<br />
Hal-hal yang harus diperhatikan:<br />
-	tanda garis bawah ( _ ) berarti sebuah karakter apa saja<br />
-	tanda persen (%) berarti cocok dengan karakter apa saja dan berapapun panjangnya (termasuk cocok dengan nol karakter)<br />
Contoh:<br />
	SELECT nama<br />
	FROM infoprib<br />
	WHERE nama LIKE ‘%on%’;<br />
		SELECT nama<br />
		FROM infoprib<br />
		WHERE nama NOT LIKE ‘S%’;</p>
<p>•	Menggunakan operator IS NULL dan IS NOT NULL<br />
Operator IS NULL digunakan untuk mencari nilai yang kosong dalam suatu kolom, sedangkan IS NOT NULL digunakan untuk mencari nilai yang tidak kosong.<br />
Contoh:<br />
	SELECT *<br />
	FROM infoprib<br />
	WHERE tgl_lahir IS NULL;<br />
		SELECT *<br />
		FROM infoprib<br />
		WHERE tgl_lahir IS NOT NULL;</p>
<p>•	Mengurutkan data dengan ORDER BY<br />
Contoh:<br />
	SELECT *<br />
	FROM infoprib<br />
	ORDER BY nama;</p>
<p>•	Mengurutkan secara descending<br />
Contoh:<br />
	SELECT *<br />
	FROM infoprib<br />
	ORDER BY nama DESC;</p>
<p>•	Mengurutkan beberapa kolom<br />
Contoh:<br />
	SELECT sex, nama<br />
	FROM infoprib<br />
	ORDER BY sex, nama;</p>
<p>•	Mengelompokkan data dengan GROUP BY<br />
Contoh:<br />
	SELECT sex<br />
	FROM infoprib<br />
	GROUP BY sex;</p>
<p>•	Menggunakan klausa HAVING<br />
Klausa HAVING digunakan untuk menentukan kondisi bagi GROUP BY. Kelompok yang memenuhi HAVING saja yang akan dihasilkan.<br />
Contoh:<br />
	SELECT kota<br />
	FROM pegawai<br />
	GROUP BY kota<br />
	HAVING kota <> ‘Yogya’;</p>
<p>•	Menggunakan fungsi Agregat<br />
Beberapa fungsi Agregat:<br />
?	Fungsi AVG, untuk memperoleh rata-rata<br />
Contoh:<br />
	SELECT AVG(gaji)<br />
	FROM pegawai;<br />
?	Fungsi COUNT, untuk melakukan pencacahan terhadap data<br />
Contoh:<br />
	SELECT COUNT(nama_peg)<br />
	FROM pegawai;<br />
?	Fungsi MAX, untuk memperoleh nilai yang terbesar<br />
Contoh:<br />
	SELECT MAX(gaji)<br />
	FROM pegawai;<br />
?	Fungsi MIN, untuk memperoleh nilai yang terkecil<br />
Contoh:<br />
	SELECT MIN(gaji)<br />
	FROM pegawai;<br />
?	Fungsi SUM, untuk melakukan penjumlahan data<br />
Contoh:<br />
	SELECT SUM(gaji)<br />
	FROM pegawai;</p>
<p><strong>Mengupdate Data</strong><br />
Updating data dilakukan karena adanya data yang berubah nilainya.<br />
Sintaks:<br />
	UPDATE nama_tabel<br />
	SET nama_kolom = [nilai baru]<br />
	WHERE [kondisi]<br />
Contoh:<br />
	UPDATE tMahasiswa<br />
	SET kota = ‘Yogyakarta’<br />
	WHERE kota = ‘Yogya’;</p>
<p><strong>Menghapus Data</strong><br />
Digunakan untuk menghapus data.<br />
Sintaks:<br />
	DELETE FROM nama_tabel<br />
	WHERE [kondisi];<br />
Contoh:<br />
	DELETE FROM tMahasiswa<br />
	WHERE nama = ‘Yovie’;</p>
<div class="al2fb_like_button"><div id="fb-root"></div><script src="http://connect.facebook.net/en_US/all.js#appId=290579107645395&amp;xfbml=1" type="text/javascript"></script>
<fb:like href="http://dimaz.web.id/computer/programming/basis-data-programming-computer/sql/" layout="standard" show_faces="true" width="450" action="like" font="arial" colorscheme="light" ref="AL2FB"></fb:like></div><div class="al2fb_comments_plugin"><div id="fb-root"></div><script src="http://connect.facebook.net/en_US/all.js#appId=290579107645395&amp;xfbml=1" type="text/javascript"></script>
<fb:comments num_posts="2" width="450" colorscheme="light" href="http://dimaz.web.id/computer/programming/basis-data-programming-computer/sql/"></fb:comments></div>]]></content:encoded>
			<wfw:commentRss>http://dimaz.web.id/computer/programming/basis-data-programming-computer/sql/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>MODEL HUBUNGAN ANTARENTITI DALAM BASIS DATA</title>
		<link>http://dimaz.web.id/computer/programming/basis-data-programming-computer/model-hubungan-antarentiti-dalam-basis-data/</link>
		<comments>http://dimaz.web.id/computer/programming/basis-data-programming-computer/model-hubungan-antarentiti-dalam-basis-data/#comments</comments>
		<pubDate>Sun, 24 May 2009 11:55:52 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Basis Data]]></category>
		<category><![CDATA[basis data]]></category>
		<category><![CDATA[database]]></category>
		<category><![CDATA[entitas]]></category>
		<category><![CDATA[entiti]]></category>
		<category><![CDATA[hubungan]]></category>
		<category><![CDATA[sistem pemodelan data]]></category>

		<guid isPermaLink="false">http://dim.tlogosari.net/?p=352</guid>
		<description><![CDATA[Pendekatan Pemodelan Data Penyusunan basis data selalu didahului dengan pekerjaan pemodelan data. Pendekatan pemodelan data dapat dilakukan dengan identifikasi atribut dari realita yang akan disusun dalam basis data. Kemudian dilanjutkan dengan menyusun kombinasi dari atribut-atribut yang telah dipilih ke dalam bentuk tabel-tabel normal. Cara ini disebut dengan pendekatan dari bawah ke atas (bottom-up approach), di [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Pendekatan Pemodelan Data</strong><br />
Penyusunan basis data selalu didahului dengan pekerjaan pemodelan data. Pendekatan pemodelan data dapat dilakukan dengan identifikasi atribut dari realita yang akan disusun dalam basis data. Kemudian dilanjutkan dengan menyusun kombinasi dari atribut-atribut yang telah dipilih ke dalam bentuk tabel-tabel normal. Cara ini disebut dengan pendekatan dari bawah ke atas (bottom-up approach), di mana penyusunan basis data dimulai dari data dasar yaitu berupa atribut.<br />
Pemodelan data dengan pendekatan dari bawah ke atas dapat memperoleh hasil yang baik jika diterapkan untuk perancangan basis data yang relatif sederhana, yaitu dengan jumlah data atribut tidak terlalu banyak. Sedangkan dalam kenyataan basis data yang akan disusun mencakup banyak atribut, mungkin ratusan atau bahkan ribuan jumlahnya, dan kemungkinan antaratribut terdapat hubungan lebih dari satu jenis.<br />
Jika terdapat banyak atribut yang akan disusun dalam emodelan basis data, maka akan menyulitkan untuk menentukan fungsi ketergantungan antaratribut. Hal ini terutama bila terjadi determinan komposit antaratribut. Oleh karena itu perlu dilakukan penyederhanaan prosedur pemodelan data. Dalam hal ini pengadministrasi basis data tidak akan memandang pada jumlah atribut yang banyak, tetapi lebih cenderung memperhatikan jenis entiti, seperti entiti mahasiswa, dosen, dan sebagainya, baru kemudian ditentukan jenis atribut yang bersesuaian dengan entiti yang dipilih. Pemodelan data cara ini disebut dengan pendekatan dari atas ke bawah (top-down approach).<br />
<span id="more-352"></span><br />
<strong>Pemodelan Hubungan Antarentiti</strong><br />
Pemodelan hubungan antarentiti (entity-relationship) pertama kali diperkenalkan oleh Chen (1976) dan telah dikembangkan lebih lanjut oleh para ahli perancangan basis data. Cara pemodelan data ini merupakan salah satu dari implementasi pendekatan dari atas ke bawah yang paling umum digunakan. Dalam pemodelan ini dilakukan dengan tahapan sebagai berikut:<br />
•	Memilih entiti-entiti yang akan disusun dalam basis data dan tentukan hubungan antarentiti yang telah dipilih.<br />
•	Melengkapi atribut-atribut yang sesuai pada entiti dan hubungan sehingga diperoleh bentuk tabel normal penuh (tabel-tabel ternomalisasi).<br />
Untuk menggambarkan terjadinya hubungan antarentiti digunakan diagram hubungan antarentiti (entity-relationship diagram) yang biasa disingkat dengan E-R diagram. Notasi yang digunakan untuk menggambarkan E-R diagram adalah:<br />
•	Segiempat menggambarkan entiti<br />
•	Belah ketupat menggambarkan hubungan<br />
•	Elips atau lingkaran menggamberkan atribut</p>
<p><strong>Derajat Partisipasi Hubungan</strong><br />
Hubungan antarentiti akan menyangkut dua komponen yang menyatakan jalinan ikatan yang terjadi, yaitu derajat dan partisipasi hubungan. Derajat hubungan menyatakan jumlah anggota entiti yang terlibat di dalam ikatan yang terjadi. Dalam hal ini ikatan yang terjadi akan membentuk instan hubungan (relationship instances, relationship occurences). Sedangkan partisipasi hubungan menyatakan sifat keterlibatan tiap anggota entiti dalam ikatan terjadinya hubungan.</p>
<div class="al2fb_like_button"><div id="fb-root"></div><script src="http://connect.facebook.net/en_US/all.js#appId=290579107645395&amp;xfbml=1" type="text/javascript"></script>
<fb:like href="http://dimaz.web.id/computer/programming/basis-data-programming-computer/model-hubungan-antarentiti-dalam-basis-data/" layout="standard" show_faces="true" width="450" action="like" font="arial" colorscheme="light" ref="AL2FB"></fb:like></div><div class="al2fb_comments_plugin"><div id="fb-root"></div><script src="http://connect.facebook.net/en_US/all.js#appId=290579107645395&amp;xfbml=1" type="text/javascript"></script>
<fb:comments num_posts="2" width="450" colorscheme="light" href="http://dimaz.web.id/computer/programming/basis-data-programming-computer/model-hubungan-antarentiti-dalam-basis-data/"></fb:comments></div>]]></content:encoded>
			<wfw:commentRss>http://dimaz.web.id/computer/programming/basis-data-programming-computer/model-hubungan-antarentiti-dalam-basis-data/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>KONSEP DASAR TENTANG TABEL BASIS DATA</title>
		<link>http://dimaz.web.id/computer/programming/basis-data-programming-computer/konsep-dasar-tentang-tabel-basis-data/</link>
		<comments>http://dimaz.web.id/computer/programming/basis-data-programming-computer/konsep-dasar-tentang-tabel-basis-data/#comments</comments>
		<pubDate>Sun, 24 May 2009 11:54:35 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Basis Data]]></category>
		<category><![CDATA[basis data]]></category>
		<category><![CDATA[database]]></category>
		<category><![CDATA[pendekatan tabel normal]]></category>
		<category><![CDATA[tabel]]></category>
		<category><![CDATA[tabel adalah]]></category>

		<guid isPermaLink="false">http://dim.tlogosari.net/?p=349</guid>
		<description><![CDATA[Pengertian Tabel Dalam arsitektur tiga-skema, deskripsi model konseptual tidak hanya terpisah dengan SMBD yang digunakan, tetapi juga harus terpisah dengan penggunaan sistem komputer. Oleh karena itu, dalam model konsepsual lebih baik dihindarkan adanya peristilahan yang berkonotasi dengan sistem komputer (skema internal), misal istilah berkas (file) dan rekaman (record). Model konsepsual harus memandang data dengan logika [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Pengertian Tabel</strong><br />
Dalam arsitektur tiga-skema, deskripsi model konseptual tidak hanya terpisah dengan SMBD yang digunakan, tetapi juga harus terpisah dengan penggunaan sistem komputer. Oleh karena itu, dalam model konsepsual lebih baik dihindarkan adanya peristilahan yang berkonotasi dengan sistem komputer (skema internal), misal istilah berkas (file) dan rekaman (record).<br />
Model konsepsual harus memandang data dengan logika yang paling sederhana. Cara ini ditempuh dengan membuat blok data dasar untuk mengorganisasi kelompok data. Blok data dasar yang paling umum digunakan dalam sistem basis data adalah tabel (table) atau disebut juga relasi (relation). Dalam hal ini, untuk pembicaraan selanjutnya digunakan istilah tabel.<br />
<span id="more-349"></span><br />
<strong>Komponen tabel</strong><br />
Penggunaan tabel bertujuan untuk menyederhanakan logika pandangan terhadap data. Oleh karena itu dibuat beberapa ketentuan dalam penyusunan tabel sebagai berikut:<br />
•	Urutan baris tidak diperhatikan, sehingga pertukaran  baris tidak akan berpengaruh terhadap isi informasi pada tabel.<br />
•	Urutan kolom tidak diperhatikan. Identifikasi kolom dibedakan dengan jenis atribut.<br />
•	Tiap perpotongan baris dan kolom hanya berisi nilai atribut tunggal, sehingga nilai atribut ganda tidak diperbolehkan.<br />
•	Tiap baris dalam tabel harus dibedakan, sehingga tidak mungkin ada dua beris dalam tabel mempunyai nilai atribut yang sama secara keseluruhan.</p>
<p><strong>Tabel normal</strong><br />
model konsepsual dalam penyusunan basis data tidak hanya terdiri atas satu tabel, melainkan banyak tabel dalam satu kesatuan pandangan data. Kelompok tabel yang memenuhi ketentua tabel normal disebut tabel normal penuh (fully normalised tables).</p>
<p><strong>Data Rangkap dan Data Duplikasi</strong><br />
Salah satu keuntungan menggunakan pendekatan basis data adalah konsistensi data selalu terjaga. Hal ini dapat tercapai kalau data yang disimpan dalam basis data terhindar dari adanya data rangkap (redundant data). Sebelum melangkah pada pembicaraan lebih lanjut kiranya perlu dibedakan antara data duplikasi (duplicated data) dan data rangkap.<br />
Data duplikasi terjadi apabila satu atribut mempunyai dua atau lebih nilai yang sama. Sedangkan nilai data dikatakan data rangkap adalah dalam satu atribut mempunyai dua atau lebih nilai yang sama, tetapi apabila salah satu nilai dihapus, maka tidak ada informasi yang hilang. Atau dengan kata lain, data rangkap merupakan data duplikasi yang tidak perlu terjadi. </p>
<p><strong>Aturan Data</strong><br />
Terjadinya data rangkap hanya diamati dari nilai data yang ada pada setiap instan tabel. Oleh karena data dalam basis data itu bersifat dinamis atau setiap saat dapat terjadi penambahan, penghapusan, atau revisi data, maka hanya dengan cara pengamatan data saja tidak akan memberikan hasil yang akurat pada proses model konsepsual. Salah satu cara pendekatan analisis data agar data dalam basis data memenuhi aturan penyusunan tabel adalah dengan membuat aturan data dalam basis data (enterprise rules).</p>
<p><strong>Proses Normalisasi Tabel</strong><br />
Basis data tidak hanya terdiri atas satu tabel saja, melainkan banyak tabel. Gabungan tabel-tabel dalam basis data disusun sesuai ketentuan penyusunan tabel (tabel normal) dan antartabel saling berhubungan serta terbebas dari adanya data rangkap. Kondisi tabel demikian dikatakan sebagai tabel normal penuh.<br />
 Proses pembentukan tabel normal penuh (normalisasi) bertujuan untuk:<br />
•	Membuat sekecil mungkin terjadinya data rangkap<br />
•	Menghindarkan adanya data yang tidak konsisten terutama bila dilakukan penghapusan atau penambahan data sebagai akibat adanya data rangkap<br />
•	Menjamin bahwa identitas tabel secara tunggal sebagai determinan semua atribut.</p>
<p><strong>Bentuk-bentuk tabel normal</strong><br />
Proses normalisasi tabel secara umum dibagi menjadi lima tahap, sehingga dikenal bentuk-bentuk tabel normal sesuai dengan tahapan normalisasi yang telah dilakukan, yaitu bentuk normal pertama, kedua, ketiga, keempat, dan kelima.<br />
<strong>Bentuk normal pertama</strong> dicapai bila tiap nilai atribut adalah tunggal. Kondisi ini dapat diperoleh dengan melakukan eliminasi terjadinya data ganda (repeating groups). Pada kondisi normal pertama ini kemungkinan masih terjadi adanya data rangkap.<br />
<strong>Bentuk normal kedua</strong> dicapai bila atribut yang dijadikan identitas benar-benar sebagai determinan dari semua atribut. Bentuk normal kedua diperoleh dengan bantuan diagram determinansi atau manipulasi data tabel pada kondisi bentuk normal pertama<br />
<strong>Bentuk normal ketiga</strong> adalah bentuk normal kedua tanpa terjadi adanya ketergantungan transitif (transitif determinan). Kondisi ini sama dengan tabel normal Boyce/Codd, namun masih diperlukan pemilihan identitas tunggal bila terdapat beberapa kandidat untuk dijadikan identitas.<br />
<strong>Bentuk normal keempat</strong> adalah tabel bentuk normal ketiga dengan nilai atribut tidak tergantung pada banyak nilai (multi-value determiancies). Sedangkan bentuk normal kelima berhubungan dengan apa yang disebut ketergantungan pada gabungan beberapa atribut (join dependency). Kasus ini dalam praktek jarang ditemukan, sebab secara nyata akan disusun suatu tabel dengan atribut-atribut yang ditentukan dengan satu identitas.</p>
<h4>Incoming search terms for the article:</h4><ul><li><a href="http://dimaz.web.id/computer/programming/basis-data-programming-computer/konsep-dasar-tentang-tabel-basis-data/" title="tentang tabel">tentang tabel</a> (12)</li><li><a href="http://dimaz.web.id/computer/programming/basis-data-programming-computer/konsep-dasar-tentang-tabel-basis-data/" title="pengertian tabel">pengertian tabel</a> (10)</li><li><a href="http://dimaz.web.id/computer/programming/basis-data-programming-computer/konsep-dasar-tentang-tabel-basis-data/" title="contoh database">contoh database</a> (1)</li></ul><div class="al2fb_like_button"><div id="fb-root"></div><script src="http://connect.facebook.net/en_US/all.js#appId=290579107645395&amp;xfbml=1" type="text/javascript"></script>
<fb:like href="http://dimaz.web.id/computer/programming/basis-data-programming-computer/konsep-dasar-tentang-tabel-basis-data/" layout="standard" show_faces="true" width="450" action="like" font="arial" colorscheme="light" ref="AL2FB"></fb:like></div><div class="al2fb_comments_plugin"><div id="fb-root"></div><script src="http://connect.facebook.net/en_US/all.js#appId=290579107645395&amp;xfbml=1" type="text/javascript"></script>
<fb:comments num_posts="2" width="450" colorscheme="light" href="http://dimaz.web.id/computer/programming/basis-data-programming-computer/konsep-dasar-tentang-tabel-basis-data/"></fb:comments></div>]]></content:encoded>
			<wfw:commentRss>http://dimaz.web.id/computer/programming/basis-data-programming-computer/konsep-dasar-tentang-tabel-basis-data/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>ARSITEKTUR SISTEM BASIS DATA</title>
		<link>http://dimaz.web.id/computer/programming/basis-data-programming-computer/arsitektur-sistem-basis-data/</link>
		<comments>http://dimaz.web.id/computer/programming/basis-data-programming-computer/arsitektur-sistem-basis-data/#comments</comments>
		<pubDate>Sun, 24 May 2009 11:46:57 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Basis Data]]></category>
		<category><![CDATA[arsitektur]]></category>
		<category><![CDATA[arsitektur database untuk bank]]></category>
		<category><![CDATA[basis data]]></category>
		<category><![CDATA[database]]></category>
		<category><![CDATA[struktur hirarki basis data]]></category>

		<guid isPermaLink="false">http://dim.tlogosari.net/?p=347</guid>
		<description><![CDATA[Model Data, Skema, dan Instan Karakteristik utama pendekatan basis data adalah adanya beberapa tingkatan dalam abstraksi data dengan menyembunyikan spesifikasi detail penyimpanan data. Hal ini dilakukan karena kebanyakan pemakai tidak berkepentingan dengan detail penyimpanan data. Pemodelan data merupakan sarana untuk melakukan proses abstraksi data. Model data merupakan sejumlah konsep yang digunakan untuk membuat deskripsi struktur [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Model Data, Skema, dan Instan</strong><br />
Karakteristik utama pendekatan basis data adalah adanya beberapa tingkatan dalam abstraksi data dengan menyembunyikan spesifikasi detail penyimpanan data. Hal ini dilakukan karena kebanyakan pemakai tidak berkepentingan dengan detail penyimpanan data. Pemodelan data merupakan sarana untuk melakukan proses abstraksi data. Model data merupakan sejumlah konsep yang digunakan untuk membuat deskripsi struktur basis data.<br />
Dengan deskripsi struktur basis data dapat ditentukan jenis data, hubungan (relationship), dan konstrain data yang harus ditangani. Kebanyakan model data juga membuat spesifikasi untuk operasi dasar (basic operation) dalam pengaksesan dan pembaharuan data pada basis data. Pada perkembangan terakhir dikenal juga istilah tabiat data (data behaviour) pada pemrograman pendekatan orientasi obyek (object oriented). Pada tabiat data didefinisikan operasi yang dapat dilakukan pada data. Selain itu didefinisikan pula operas secara umum untuk melakukan penambahan data, penghapusan, pengambilan terhadap obyek.<br />
<span id="more-347"></span><br />
<strong>Model data</strong><br />
Model data dapat dikelompokkan berdasar konsep pembuatan deskripsi struktur basis data, yaitu model data konsepsual atau tingkat tinggi (high level) dan model data fisikal atau tingkat rendah (low level). Model data konsepsual menyajikan konsep tentang bagaimana pemakai basis data memandang atau memperlakukan data, sedangkan model data fiskal merupakan konsep bagaimana deskripsi detail data disimpan dalam komputer. Di antara kedua model di atas terdapat model data implementasi (representational) yang merupakan konsep deskripsi data disimpan dalam komputer dengan menyembunyikan sebagian detail deskripsi data sehingga para pemakai data mendapat gambaran global bagaimana data disimpan dalam komputer.<br />
Dalam model data konsepsual digunakan konsep entiti (entity), atribut (attribute) dan hubungan (relationship). Pengertian ketiga istilah tersebut masing-masing adalah:<br />
•	Entiti (entitas) merupakan penyajian obyek, kejadian atau konsep dari dunia nyata (real-world) yang keberadaannya secara eksplisit didefinisikan dan disimpan dalam basis data<br />
•	Atribut merupakan keterangan-keterangan yang dimiliki oleh suatu entiti<br />
•	Hubungan merupakan interasksi antarentiti satu dengan lainnya.<br />
Model data implementasi merupakan konsep model data yang digunakan oleh SMBD komersial, yaitu model hierarki, jaringan, atau relasional. Pada perkembangan terakhir digunakan model orientasi obyek.<br />
Dalam model data fisikal dideskripsikan bagaimana data disimpan dalam komputer dengan menyajikan informasi tentang format rekaman, urutan rekaman, dan jalur pengaksesan data. Informasi jalur pengaksesan data merupakan struktur yang dapat membuat pencarian rekaman data lebih efisien</p>
<p><strong>Skema dan Instan Basis Data</strong><br />
Skema basis data merupakan deskripsi dari basis data yang spesifikasinya ditentukan dalam tahap perancangan. Skema basis data tidak diharapkan dapat diubah setiap saat walaupun dimungkinkan untuk diadakan perubahan. Penggambaran skema biasanya ditampilkan dalam diagram skema yang berisi sebagian dari detail deskripsi basis data.<br />
Data dalam basis data setiap saat aka berubah karena terjadi penambahan, penghapusan, atau pembaharuan data. Sekelompok data yang tersusun dalam satu baris (tuple) dan tersimpan dalam basis data disebut instan (instances) atau kejadian (occurences). Setiap susunan skema basis data mempunyai satu set instan-instan sesaat.</p>
<p><strong>Arsitektur SMBD</strong><br />
Arsitektur SMBD dikenal dengan sebutan asitektur tiga skema (three-schema architecture). Fungsi skema ini adalah untuk memisahkan anatar fisik basis data dan program aplikasi pemakai. Skema dalam arsitektur tersebut adalah:<br />
•	Level internal merupakan skema internal yang memuat deskripsi struktur penyimpanan basis data. Skema internal menggunakan model data fisikal dan mendefinisikan secara detail penyimpanan data dalam basis data, serta jalur pengaksesan data.<br />
•	Level konsepsual merupakan skema konsepsual yang memuat deskripsi struktur basis data secara keseluruhan untuk semua pemakai. Skema konsepsual hanya memuat deskripsi tentang entiti, atribut, hubungan, dan konstrain, tanpa memuat deskripsi data secara detail. Model data tingkat tinggi atau model data implementasi dapat digunakan dalam skema ini.<br />
•	Level eksternal merpakan skema eksternal (user views) yang mendefinisikan pandangan data terhadap sekelompok pemakai (local view) dengan menyembunyikan data lain yang tidak diperlukan oleh kelompok pemakai tersebut. Model data tingkat tinggi atau model data implementasi dapat digunakan dalam skema eksternal.</p>
<p><strong>Komponen SMBD</strong><br />
Dalam praktek jarang sekali dijumpai SMBD yang secara tegas membedakan antarskema pada arsitektur tiga-skema. Namun demikian dari skema dapat dilakukan indikasi adanya komponen SMBD:<br />
•	Bahasa untuk jendela perantara, yang di dalamnya termasuk Bahasa Manipulasi Data (Data Manipulation Language) yang disingkat BMD.<br />
•	Bahasa Definisi Data (Data Definition Language) yang disingkat BDD untuk skema eksternal, skema konsepsual, dan skema internal.<br />
•	Sistem Kontrol Basis Data (SKBD) yang akan mengakses basis data karena adanya perintah dari BMD.<br />
Pada perkembangan terakhir kebanyakan SMBD tidak memisahkan antara bahasa untuk jendela perantara, BDD dan BMD. Structured Query Language (SQL) merupakan contoh bahasa standar yang digunakan SMBD relasional untuk pengelolaan basis data.</p>
<p><strong>Klasifikasi SMBD</strong><br />
Sistem Manajemen Basis Data terutama diklasifikasikan berdasarkan model data yang digunakan yaitu model data hierarki, jaringan, relasional, orientasi obyek, dan model data yang lain.<br />
Klasifikasi kedua didasarkan pada lokasi penyimpanan data, yaitu SMBD terpusat (centralized database) dan SMBD terdistribusi (distributed database). Dalam SMBD terpusat basis data disimpan dalam satu komputer media penyimpanan sehingga pemakai sistem mengakses data dari satu tempat. Sedangkan dalam SMBD terdistribusi, basis data disimpan tidak dalam satu komputer melainkan tersebar pada penyimpanan tiap terminal pemakai. Antarpemakai dapat mengakses data secara langsung tidak perlu melalui pusat penyimpanan. SMBD terdistribusi memerlukan sistem kontrol yang lebih rumit daripada sistem basis data tersentralisasi.</p>
<p><strong>Model data hierarki</strong><br />
Dalam model data hierarki, data disusun menurut struktur pohon. Pada puncak dari hierarki disebut dengan istilah akar (root). Dalam  rekaman akar hanya terdapat satu rekaman yang terdiri atas satu medan atau lebih. Di samping itu dalam model data hierarki tiap entiti pada tingkat atas (dikenal dengan istilah induk atau parent) mempunyai satu atau lebih sub-entiti (anak atau children). Tiap entiti hanya boleh mempunyai satu induk, tetapi dapat mempunyai banyak anak.</p>
<p><strong>Model data jaringan</strong><br />
Dalam model jaringan (network), tiap entiti dapat mempunyai banyak induk atau banyak anak. Hal ini lebih fleksibel daripada model hierarki. Dalam model jaringan lebih sedikit terdapat data yang rangkap daripada model hierarki. Namun demikian lebih banyak terdapat hubungan antarentiti, sehingga akan menambah informasi hubungan yang harus disimpan dalam basis data. Hal ini akan menambah volume dan kerumitan dalam penyimpanan berkas data. Dalam basis data yang kompleks, informasi hubungan antarentiti dapat mencapai jumlah besar dan akan banyak memerlukan waktu jika terjadi perubahan hubungan yang dikehendaki.</p>
<p><strong>Model data relasional</strong><br />
Dalam model data relasional tidak terdapat hierarki atau jenjang dalam medan rekaman data, dan setiap medan data dapat dijadikan kunci data. Dengan menggunakan model ini, pencarian medan atribut dari suatu tabel atau banyak tabel dapat dilakukan dengan cepat. Pencarian atribut yang berhubungan di mana tersimpan pada tabel yang berbeda dapat dilakukan dengan menghubungkan terlebih dahulu tabel-tabel tersebut dengan menggunakan atribut yang sama. Prosedur ini dikenal dengan operasi gabungan (joint operation).</p>
<div class="al2fb_like_button"><div id="fb-root"></div><script src="http://connect.facebook.net/en_US/all.js#appId=290579107645395&amp;xfbml=1" type="text/javascript"></script>
<fb:like href="http://dimaz.web.id/computer/programming/basis-data-programming-computer/arsitektur-sistem-basis-data/" layout="standard" show_faces="true" width="450" action="like" font="arial" colorscheme="light" ref="AL2FB"></fb:like></div><div class="al2fb_comments_plugin"><div id="fb-root"></div><script src="http://connect.facebook.net/en_US/all.js#appId=290579107645395&amp;xfbml=1" type="text/javascript"></script>
<fb:comments num_posts="2" width="450" colorscheme="light" href="http://dimaz.web.id/computer/programming/basis-data-programming-computer/arsitektur-sistem-basis-data/"></fb:comments></div>]]></content:encoded>
			<wfw:commentRss>http://dimaz.web.id/computer/programming/basis-data-programming-computer/arsitektur-sistem-basis-data/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
	</channel>
</rss>

