Jangan suka meremehkan orang, terkadang rejekimu justru datang dari orang-orang yang pernah kamu remehkan.

Kamis, 11 Oktober 2012

Jawaban UAS Database Terdistribusi


Jawaban ne mungkin agak mirip dengan jawaban teman" yg lain. Yaaa,, mau gimana lagi emang gitu rumusnya. kalu di kasih nilai jelek ya udah.. yg beda dari jawaban UAS ini cuma nama dan NIM saja. Gak ada manusia yg sempurna. mencontek itu hal yg sering di lakukan Mahasiswa apa lagi jawabanx di posting di BLOG. Sampai ketemu lagi di Mata Kuliah Berikutnya.. :*


Jawaban UAS Database Terdistribusi

2.Pelajari hasil Fungsi DATEIFF dan GETDATE, dan DATEADD. Jelaskan Sintax dan perbedaan dari ketiga fungsi waktu tersebut.

Jawab:
Datediff : untuk mengembalikan selisih antara datetime1 dan datetime2 dalam interval yang diberikan


Contoh Penggunaan
select DATEDIFF (datepart,tanggal_awal,tanggal_akhir)
select DATEDIFF("dd", '01-01-2011','02-01-2011'
select DATEDIFF("dd", '03/01/2011','02/01/2011')



Dateadd : Menambah nilai argumen datetime dengan interval yang diberikan


Contoh Penggunaan :
SELECT DATEADD(day,10,getdate())
SELECT DATEADD(Month,10,getdate())
SELECT DATEADD(year,10,getdate())


Getdate : mengembalikan tanggal dan waktu saat ini dari mesin yang menjalankan SQL Server


Contoh Pengunaan:
SELECT GATEDATE()



4.Buat View DataPegawai dengan kolom Nomor Pegawai, Nama, Sex, Nikah, Agama, Pendidikan, Jabatan, Kode Kontrak

Jawab:
 View_DataPegawai : Nomor Pegawai, Nama, Sex, Nikah, Agama, Pendidikan, Jabatan, Kode Kontrak, tgl1


5. Buat Procedure HitungJumlahBayar untuk menghitung Total Pembayaran yang sudah dilakukan oleh Pegawai tertentu.

Jawab:
Create procedure HitungJumlahBayar @nomer char (10) as
select nomer,nama,kodekontrak,sum(tgl1) from vie_DataPegawai where nomer=@nomer


6.  Buat Procedure TampilPendidikan untuk menampilkan data pegawai yang berpendidikan tertentu dari View DataPegawai

Jawab:
create procedure TampilPendidikan @Pendidikan char (20) as
select nama,pendidikan from view_DataPegawai where pendidikan = @pendidikan


7.  Buat Function PendidikanPegawai dari NomerPegawai. Penggunaan function ini bisa sebagai berikut : Select PendidikanPegawai(Nomer) from DataPegawai

Jawab:
create function PendidikanPegawai (@nomer char (10))
Returns char (20) as
begin
Return (select pendidikan from pendidikan where kodepd=(select pendidikan from DataPegawai where nomer=@nomer))
end


Rabu, 10 Oktober 2012

Cara Koneksi Database SQL Server ke VB.net


Cara Koneksi Database SQL Server ke VB.net

Software yang dipakai :
-Sql Server Management Studio Express
-Microsoft Visual Studio 2005
Cara Buat database :
Buka Software Sql Server Management Studio Express :
Pilih Connect




Klik Subtree Database – Klik Kanan – pilih New Database



Pada Kotak dialog  New Database:
Isikan Nama Database pada Database Name – OK







Misal Database Name = CobaDB
Selanjutnya pada CobaDB klik subtree lalu pilih tables.
Di tables
– klik kanan
– new table (isikan table, type, dll (Alias tempat bikin table nih))

Beres Dah Bikin Database nya..
Koneksi dengan VB.Net Buka Microsoft Visual Studio 2005
-File
-New Project
-Isikan Nama Project
-OK

Di kiri atas Pilih Server Explorer



Pilih Connect to database
Pilih server name
Pilih select or enter a database name OK




Beres dah konekin database ke sql server
Tinggal coding deh, pake query-query buat input, save, del, update, seperti di bawah ini

1. Untuk General
Public cn As ADODB.Connection
Dim rsTblMhs As ADODB.Recordset
Dim strsql As String


2. Buat Sub Koneksi
Public Sub koneksi()
Set cn = New ADODB.Connection
'cn.Open "FILE NAME=koneksi_TblMhs.udl"
'untuk nampilin tabel di sql tadi,buka koneksi_TblMhs.udl dg notepad trus copy deh kesini
cn.Open "Provider=SQLOLEDB.1;Password=123456;Persist Security Info=True;User ID=sa;Initial Catalog=DatabaseMhs;Data Source=TOSHIBA-PC"
End Sub

Ini di buat untuk mengkoneksikan vibi dengan SQL, pada cn.Open "Provider=SQLOLEDB.1;Password=123456;Persist Security Info=True;User ID=sa;Initial Catalog=DatabaseMhs;Data Source=TOSHIBA-PC"
ganti sesuai dengan udl yang telah anda buat, klik kanan notepad koneksi anda, terus open with notepad, copy tulisan dari provider, terus paste di coding vibi anda.

3. Pada form Load
Private Sub Form_Load()
TxtNIM.Text = ""
txtNama.Text = ""
TxtAlamat.Text = ""

koneksi

Set rsTblMhs = New ADODB.Recordset
rsTblMhs.CursorLocation = adUseClient
strsql = "select*from TblMhs"
rsTblMhs.Open strsql, cn, adOpenDynamic, adLockOptimistic
Set DataGrid1.DataSource = rsTblMhs

CmdAdd.Enabled = False
CmdUpdate.Enabled = True
'CmdNew.Enabled = True
CmdEdit.Enabled = True

CmdDelete.Enabled = True
TxtNIM.Locked = True
txtNama.Locked = True
TxtAlamat.Locked = True
End Sub

Koneksi: agar setiap kita menjalankan program, maka program akan langsung terkoneksi dengan database.
strsql = "select*from TblMhs", di gunakan untuk menampilkan semua isi dari tabel TblMhs,
Pada saat di load, kita tidak bisa langsung menulis nim, nama, alamat karena di locked (kunci) maka kita harus klik New dulu.

4. coding cmd new
Private Sub CmdNew_Click()
CmdAdd.Enabled = True
CmdNew.Enabled = False
TxtNIM.Locked = False
txtNama.Locked = False
TxtAlamat.Locked = False
End Sub

sekarang baru bisa tulis nim, nama, alamat dan tombol new di enable.

5. Coding Cmd Add
Private Sub CmdAdd_Click()
If TxtNIM.Text = "" Then
MsgBox "NIM belum diisi", vbInformation, "PESAN"
TxtNIM.SetFocus
ElseIf txtNama.Text = "" Then
MsgBox "NAMA belum diisi", vbInformation, "PESAN"
txtNama.SetFocus
ElseIf TxtAlamat.Text = "" Then
MsgBox "ALAMAT belum diisi", vbInformation, "PESAN"
TxtAlamat.SetFocus
Else
rsTblMhs.AddNew
rsTblMhs("NIM") = TxtNIM.Text
rsTblMhs("NAMA") = txtNama.Text
rsTblMhs("ALAMAT") = TxtAlamat.Text
rsTblMhs.Update
End If
Set DataGrid1.DataSource = rsTblMhs
TxtNIM.Text = ""
txtNama.Text = ""
TxtAlamat.Text = ""
CmdAdd.Enabled = False
CmdUpdate.Enabled = True
CmdNew.Enabled = True
CmdDelete.Enabled = True
End Sub

Ini di gunakan untuk menampilkan data yang kita input tampil di datagrid

6. coding cmd Delet
Private Sub CmdDelete_Click()
TxtNIM.Locked = False
txtNama.Locked = False
TxtAlamat.Locked = False
TxtNIM.Text = rsTblMhs("NIM")
txtNama.Text = rsTblMhs("NAMA")
TxtAlamat.Text = rsTblMhs("ALAMAT")
If MsgBox("apakah yakin ingin dihapus?", vbYesNo, "KONFIRMASI") = vbYes Then
Set rsTblMhs = cn.Execute("Delete from TblMhs where NIM='" & TxtNIM.Text & " ' ")
MsgBox "Data telah dihapus", vbInformation, "PESAN"
End If
'untuk me-refresh datagrid setelah delete data
If cn.State = adStateOpen Then
setrsTblMhs = New ADODB.Recordset
rsTblMhs.CursorLocation = adUseClient
strsql = "select * from TblMhs"
rsTblMhs.CursorLocation = adUseClient
rsTblMhs.Open strsql, cn, adOpenDynamic, adLockOptimistic
Set DataGrid1.DataSource = rsTblMhs
End If
End Sub

Untuk mendelete data yang sudah kita inputkan.

7. Coding Refresh
Private Sub Refresh_Click()
Set DataGrid1.DataSource = Nothing
DataGrid1.Refresh
End Sub

Sory kalu liat di link sebelah tapi ne penjelasan yg paling lengkap soalnya emang beginilah caranya karena saya tak pandai mengarang. salam manis dari yg punya blog.

Kamis, 20 September 2012

Syntax SQL Server


Structured Query Language ata SQL adalah bahasa standar untuk mengambil data dari database,
dan juga sekaligus memanipulasi database.
Meskipun SQL menjadi bahasa standar, SQL masih memiliki bahasa yang berbeda-beda di beberapa platform.
Misalnya :
- SQL Server menggunakan Transact-SQL atau T-SQL,
- Microsoft Access menggunakan Jet-SQL

Untuk sample berikut ini akan saya perlihatkan syntax SQL pada SQL Server untuk beberapa kasus.

1. Perintah Select
Perintah select adalah perintah yang digunakan untuk mengambil data yang ada di dalam table. Sintax nya adalah : SELECT field-1, field-2, .... field-n FROM namatabel

Contoh :
ada 3 data dari tabel mahasiswa berupa nim, nama
data-1 : | 10104417 | Kurnia Hidayat |
data-2 : | 10104422 | Ekky Patria Kencana |
data-3 : | 10104427 | Ogan Sukmawan |

dengan menggunakan perintah "Select * From mahasiswa" maka akan didapatkan data2 tersebut,
| 10104417 | Kurnia Hidayat |
| 10104422 | Ekky Patria Kencana |
| 10104427 | Ogan Sukmawan |

2. Klausa Where
    Where digunakana untuk menyaring data dalam syntax/command SQL yg kita gunakan.
    Syntax : <arguments> WHERE <arguments> <operator> <arguments>

Tabel operator yang dapat digunakan :
>              Lebih besar
<              Lebih kecil
>=           Lebih besar sama dengan
<=           Lebih kecil sama dengan
=              Sama dengan
<>           Tidak sama dengan
Between x and y              Antara x dan y
Like        Seperti... bla bla bla... (dengan / mengandung format tertentu)
Is Null   Kosong / Tidak memiliki nilai
In            Nilai berada di dalam tanda ( dan tanda )


3. Klausa Where Lanjutan
Berikut ini adalah contoh-contoh penggunaan operator pembanding tersebut dalam query :

1. Ambil data "barang" yang "jml" nya lebih dari 20
     SQL = " SELECT * From barang WHERE jml > 20 "

2. Ambil data "nilai_mhs" yang "nilai" nya kurang dari 60
     SQL = " SELECT * From nilai_mhs WHERE nilai < 60 "

3. Ambil data "barang" yang "jml" nya lebih besar sama dengan 20
     SQL = " SELECT * From barang WHERE jml >= 20 "

4. Ambil data "nilai_mhs" yang "nilai" nya lebih kecil sama dengan 60
      SQL = " SELECT * From nilai_mhs WHERE nilai <= 60 "

5. Hapus data "mahasiswa" yang memili "NIM" sama dengan "10104422"
      SQL = " DELETE * From mahasiswa WHERE NIM = '10104422' "

6. Ambil data "barang" yang "nama_barang" nya mengandung kata "Ice"
      SQL = " SELECT * From barang WHERE nama_barang like '%Ice%' "

7. Ambil data "barang" yang "kode_brg" nya berawalan "C"
      SQL = " SELECT * From barang WHERE kode_brg like 'C%' "

8. Ambil data "barang" yang "kode_brg" nya berakhiran '2008'
      SQL = " SELECT * From barang WHERE kode_barang like '%2008' "

9. Ambil data "barang" yang "jml" nya bernilai null
      SQL = " SELECT * From barang WHERE jml is null "

10. Ambil data "mahasiswa" yang "usia" nya antara 17 - 19tahun
         SQL = " SELECT * From mahasiswa WHERE usia >=17 and usia<=19 "

3. Klausa Order By   
    Singkatnya, klausa ini digunakan untuk menrutkan data berdasarkan sesuatu / field.
    Order by ini secara defaultnya bersifat ascending (klo gak salah, hehe...)

Sejalan dengan order by, ada 2 buah variable lain yg dapat diikut serta kan, yakni ASC dan DESC.
    -ASC untuk mengurutkan data dari yang bernilai kecil hingga ke data yang bernilai besar
    -DESC untuk mengurutkan data dari yang bernilai besar hingga ke data yang bernilai kecil

    Syntax : <arguments> ORDER BY <field> <asc> / <desc>

contoh dari data mahasiswa pada contoh penggunaan select dapat dilakukan :

1. "SELECT * From mahasiswa ORDER BY NIM desc"
     hasilnya adalah :
      | 10104427 | Ogan Sukmawan |
      | 10104422 | Ekky Patria Kencana |
      | 10104417 | Kurnia Hidayat |

2. "SELECT * From mahasiswa ORDER BY nama asc"
     hasilnya adalah :
      | 10104422 | Ekky Patria Kencana |
      | 10104417 | Kurnia Hidayat |
      | 10104427 | Ogan Sukmawan |

4. Aritmethic Function
      Fungsi - fungsi aritmetika yang dapat dijalankan / diambil pada suatu SQL / data

Contoh : data awal berupa NIM, Nama Lengkap, Nilai

| 10104417 | Kurnia Hidayat | 80 |
| 10104422 | Ekky Patria Kencana | 85 |
| 10104427 | Ogan Sukmawan | 75 |

Beberapa eksekusi / function yang ada di T-SQL :

1. Sum : menjumlahkan suatu field
      syntax : "select sum(Nilai) from mahasiswa"
      result : 240

2. Max : mengambil data terbesar
       syntax : "select max(Nilai) from mahasiswa"
       result : 85

3. Min : mengambil data terkecil
       syntax : "select sum(Nilai) from mahasiswa"
       result : 75

4. Avg : menghitung nilai rata-rata
       syntax : "select avg(Nilai) from mahasiswa"
       result : 80

5. Count : menghitung banyak record
      syntax : "select count * from mahasiswa"
      result : 3

5. Klausa Alternatif

     - Group by : mengelompokkan pemanggilan data, biasanya dilakukan untuk mengelompokkan
                        hasil kalkulasi pada fungsi aritmetika sebelumnya.
        contoh : "SELECT kode_brg, SUM(jml) as total FROM penjualan GROUP BY kode_brg"

     - Distinct : membuang data yang sama (saat view mode)
        contoh tanpa distinct : A0001, A0001, A0002, A0003, A0002
        dengan distinct : "SELECT DISTINCT kode_brg FROM penjualan" maka hasil = A0001, A0002, A0003

6. Insert Command
      Insert disini berarti menambahkan sebuah record baru ke dalam tabel / database yang telah ada.


Ada 3 buah alternatif untuk melakukan perintah ini, yakni :
1. Alternatif 1 : mengikutsertakan nama field yang ada pada tabel

       "Insert into mahasiswa (NIM, Nama_Lengkap, Nilai) values ('10104417', 'Kurnia Hidayat', 80)"
       Hasilnya adalah
       | NIM         | Nama_Lengkap | Nilai |
       | 10104417 | Kurnia Hidayat  | 80   |

       "Insert into mahasiswa (NIM, Nama_Lengkap) values ('10104427', 'Ogan Sukmawan')"
        Hasilnya adalah
        | NIM         | Nama_Lengkap   | Nilai    |
        | 10104427 | Ogan Sukmawan | <null> |

2. Alternatif 2 : tidak mengikutsertakan nama field yang ada pada tabel
    (syaratnya adalah value sama dengan jumlah fieldnya)

        "Insert into mahasiswa values ('10104422', 'Ekky Patria Kencana', 85)"
        Hasilnya adalah sukses :
        | NIM         | Nama_Lengkap         | Nilai |
        | 10104422 | Ekky Patria Kencana  | 85   |

       "Insert into mahasiswa values ('10104422', 85)"
         Hasilnya adalah ERROR karena jumlah inputan tidak sama dengan jumlah field
       yang terdapat pada tabel.

3. Alternatif 3 : menyalin data dari table yang memiliki field / attribut yang sama dengan field yang akan disalin
    (minimal sama dari type field nya)

       "Insert into mahasiswa select * from mhs"
         Hasilnya adalah semua data yang ada di table mhs akan dimasukkan ke table mahasiswa

7. Update Command

Perintah update berarti mengubah isi field dari sebuah tabel.

Misalkan semua kuantitas barang yang ada di tabel master barang hendak direset / diubah menjadi 0,
maka dapat dilakukan dengan perintah :
     " Update msbarang set qty=0 "

Selain itu, kita juga dapat meng-update beberapa field sekaligus dengan perintah :
     " Update msbarang set qty=0, min_qty=5 "

Masih ada beberapa hal lainnya yang dapat kita lakukan dengan update data.
Seperti update data dengan situasi tertentu (misal kode_brg = 'A0001' lalu update harga jual menjadi 10000)
     " Update msbarang set harga_jual = 10000 where kode_brg = 'A0001' "

8. Delete Command

 Perintah delete berarti menghapus isi field dari sebuah tabel.

 Misalkan semua barang yang ada di tabel temporary barang hendak dihapus,
 maka dapat dilakukan dengan perintah :
      " Delete * from temp_barang"

 Masih ada beberapa hal lainnya yang dapat kita lakukan dengan delete data.
 Seperti delete data dg situasi tertentu
 (misal hapus semua record pada tabel barang dg kode_brg = 'A0001')
      " Delete * from barang 10000 where kode_brg = 'A0001' "


SQL Injection

SQL injection is a code injection technique that exploits a security vulnerability occurring in the database layer of an application. The vulnerability is present when user input is either incorrectly filtered for string literal escape characters embedded in SQL statements or user input is not strongly typed and thereby unexpectedly executed. It is an instance of a more general class of vulnerabilities that can occur whenever one programming or scripting language is embedded inside another. SQL injection attacks are also known as SQL insertion attacks.

Dengan kata lain, SQL injection dapat dikatakan sebagai suatu teknik yang dapat meng-ekploit sebuah keamanan pada suatu layer database aplikasi.


Contoh :
pada suatu kasus dalam form login terdapat syntax sebagai berikut :
Code: [Select]
statement = "SELECT * FROM users WHERE name = '" + userName + "';"

dengan mengubah username tersebut dengan statement lainnya yang memiliki nilai true (jika logic yang digunakan bernilai benar)
atau false (jika logic yg digunakan bernilai salah / berkebalikan dengan true), maka form / halaman login tersebut user dapat dengan mudah melakukan skip halaman login (jika setelah proses login berhasil tidak ada validasi lainnya)

Misal kita ubah username tadi dengan :
Code: [Select]
a' or 't' = 't

sehingga syntax yang di eksekusi menjadi :
Code: [Select]
statement = "SELECT * FROM users WHERE name = 'a' or 't' = 't';"

dengan kata lain,
walaupun tidak ada username dengan nama = 'a',
karena ada perintah 'or' dimana 't'='t',
maka syntax yang dihasilkan akan bernilai benar,
dan proses akan dilanjutkan ke tahapan berikutnya.


untuk lebih mengenal SQL injection,
silahkan baca kembali :
http://en.wikipedia.org/wiki/SQL_Injection

Minggu, 16 September 2012

Microsoft SQL Server


Microsoft SQL Serve

Microsoft SQL Server adalah sebuah sistem manajemen basis data relasional (RDBMS) produk Microsoft. Bahasa kueri utamanya adalah Transact-SQL yang merupakan implementasi dari SQL standar ANSI/ISO yang digunakan oleh Microsoft dan Sybase. Umumnya SQL Server digunakan di dunia bisnis yang memiliki basis data berskala kecil sampai dengan menengah, tetapi kemudian berkembang dengan digunakannya SQL Server pada basis data besar.
Microsoft SQL Server dan Sybase/ASE dapat berkomunikasi lewat jaringan dengan menggunakan protokol TDS (Tabular Data Stream). Selain dari itu, Microsoft SQL Server juga mendukung ODBC (Open Database Connectivity), dan mempunyai driver JDBC untuk bahasa pemrograman Java. Fitur yang lain dari SQL Server ini adalah kemampuannya untuk membuat basis data mirroring dan clustering. Pada versi sebelumnya, MS SQL Server 2000 terserang oleh cacing komputer SQL Slammer yang mengakibatkan kelambatan akses Internet pada tanggal 25 Januari 2003.
Sejarah SQL dimulai dari artikel seorang peneliti dari IBM bernama Jhonny Oracle yang membahas tentang ide pembuatan basis data relasional pada bulan Juni 1970. Artikel ini juga membahas kemungkinan pembuatan bahasa standar untuk mengakses data dalam basis data tersebut. Bahasa tersebut kemudian diberi nama SEQUEL (Structured English Query Language).
Setelah terbitnya artikel tersebut, IBM mengadakan proyek pembuatan basis data relasional berbasis bahasa SEQUEL. Akan tetapi, karena permasalahan hukum mengenai penamaan SEQUEL, IBM pun mengubahnya menjadi SQL. Implementasi basis data relasional dikenal dengan System/R.
Di akhir tahun 1970-an, muncul perusahaan bernama Oracle yang membuat server basis data populer yang bernama sama dengan nama perusahaannya. Dengan naiknya kepopuleran John Oracle, maka SQL juga ikut populer sehingga saat ini menjadi standar de facto bahasa dalam manajemen basis data.
Secara umum, SQL terdiri dari dua bahasa, yaitu Data Definition Language (DDL) dan Data Manipulation Language (DML). Implementasi DDL dan DML berbeda untuk tiap sistem manajemen basis data (SMBD)[3], namun secara umum implementasi tiap bahasa ini memiliki bentuk standar yang ditetapkan ANSI. Artikel ini akan menggunakan bentuk paling umum yang dapat digunakan pada kebanyakan SMBD.

Data Definition Language
DDL digunakan untuk mendefinisikan, mengubah, serta menghapus basis data dan objek-objek yang diperlukan dalam basis data, misalnya tabel, view, user, dan sebagainya. Secara umum, DDL yang digunakan adalah CREATE untuk membuat objek baru, USE untuk menggunakan objek, ALTER untuk mengubah objek yang sudah ada, dan DROP untuk menghapus objek. DDL biasanya digunakan oleh administrator basis data dalam pembuatan sebuah aplikasi basis data.

Data Manipulation Language
DML digunakan untuk memanipulasi data yang ada dalam suatu tabel. Perintah yang umum dilakukan adalah:
SELECT untuk menampilkan data
INSERT untuk menambahkan data baru
UPDATE untuk mengubah data yang sudah ada
DELETE untuk menghapus data

Berikut ini adalah beberapa fitur yang menarik untuk diangkat dari sekian banyak fitur yang ada pada SQL Server 2000. Diantaranya adalah:
• XML Support
• Multi-Instance Support
• Data Warehousing/Business Intelligence Improvements
• Performance and Scalability Improvements
• Query Analyzer Improvements
• DTS Improvements
• Transact SQL Enhancements

XML Support
XML saat ini sudah menjadi standar dalam dunia bisnis untuk komunikasi dan juga sharing informasi. SQL Server dalam hal ini sudah mendukung format XML. Dengan ini Anda bisa menyimpan dokumen XML dalam suatu tabel, meng-query data ke dalam format XML melalui Transact-SQL dan lain sebagainya.
Multi-Instance Support
Fitur ini memungkinkan Anda untuk menjalankan beberapa database engine SQL Server pada mesin yang sama. Fitur ini sebelumnya juga sudah ada pada Oracle Database. Fitur ini sangat menarik karena memungkinkan seorang DBA (Database Administrator) untuk mengkombinasikan beberapa lingkungan misalnya untuk development, testing dan produksi dalam satu mesin yang sama. Ini juga menarik bagi penyedia jasa hosting (baik ASP maupun ISP) dimana mereka dapat menghost beberapa aplikasi dalam satu mesin yang sama.
Data Warehousing and Business Intelligence (BI) Improvements
SQL Server dilengkapi dengan fungsi-fungsi untuk keperluan Business Intelligence melalui Analysis Services (sebelumnya bernama OLAP Services pada versi 7.0). Analysis Services menawarkan OLAP (Online Analytical Processing) yang bisa diakses lewat web sehingga bisa diakses juga dari internet. Sebagai tambahannya SQL Server 2000 juga ditambahi dengan tools untuk keperluan data mining.
Performance and Scalability Improvements
Dari sisi performa dan skalabilitas, SQL Server juga sudah memperhitungkannya. Ini dicapai dengan menerapkan distributed partitioned views yang mana memungkinkan untuk membagi workload ke beberapa server sekaligus. Peningkatan lainnya dicapai di sisi DBCC, indexed view dan index reorganization.
Query Analyzer Improvements
Ada banyak peningkatan disini, misalnya hadirnya integrated debugger untuk mendebug stored procedure, object browser untuk melihat semua object dari database secara hirarki dan juga fasilitas object search untuk mencari suatu object dalam database.
DTS Enhancement
Fasilitas ini sekarang sudah mampu untuk memperhatikan primary key dan foreign key constraints. Ini berguna pada saat migrasi tabel dari RDBMS lain.
Transact-SQL Enhancements
Salah satu peningkatan disini adalah T-SQL sudah mendukung UDF (user-definable function). Ini memungkinkan Anda untuk menyimpan rutin-rutin ke dalam database engine.
Apa itu T-SQL? Setiap database server semuanya pasti mendukung SQL dan SQL Server dalam hal ini mengembangkan ekstensinya sendiri yang diberi nama T-SQL atau Transact-SQL. Ini bisa Anda analogikan seperti PL/SQL jika pada Oracle Database. T-SQL merupakan superset dari SQL-92 (standar ISO untuk SQL yang disertifikasi pada tahun 1992). T-SQL menambahkan beberapa sintaks baru yang hanya dikenal di SQL Server. Seperti diketahui bahwa standar SQL mengharuskan transaksi database dengan istilah ACID yaitu Atomic, Consistent, Isolated dan Durable.
Varian dari SQL Server
Versi sederhana dari SQL Server dikenal dengan nama MSDE (Microsoft SQL Server Desktop Engine) dan didistribusikan bersama dengan produk Microsoft yang lainnya seperti Visual Studio, Visual FoxPro, Microsoft Access dan yang lainnya. Batasan dari MSDE ini adalah maksimal database yang bisa dihasilkan adalah 2 GB dan tidak dilengkapi dengan tool untuk mengadministrasi databasenya. Berita baiknya adalah Microsoft sedang menyiapkan versi lanjutan dari MSDE yang akan diberi nama SQL Server Express. SQL Server Express ini akan dilengkapi dengan SQL Server Express Manager untuk mengadministrasi database dengan mudah.

Teman Terbaik

Bagaimanapun watak sahabat kita, dia adalah orang yang sampai saat ini masih menemani setiap hari-hari kita, sahabat menjadi orang pertama yang menjadikan dirikita berwarna,Terimakasih Kawan"ku, kalian adalah salahsatu alasanku terus tersenyum
Civitas
59D
F
SMA
SMA
SMA






Distributed Database

DISTRIBUTED DATABASE
    
Disini saya akan menjelaskan tentang Distributed Database (DDB) atau Database Terdistribusi dari beberapa sumber yg saya baca. Database terdistribusi adalah sebuah database  logic  yang tersimpan secara fisik pada beberapa komputer yang terdapat pada beberapa lokasi dengan terkoneksi pada sebuah jaringan. Jaringan tersebut harus bisa menyediakan akses bagi user untuk melakukan sharing data. Terdapat dua macam sifat dari database terdistribusi yaitu Heterogenous dan Homogenous.Homogenous artinya suatu database terdistribusi dimana data di distribusikan pada beberapa komputer dengan menggunakan DBMS(database management system) yang sama. DBMS digunakan pada database terdistribusi untuk melakukan koordinasi data pada beberapa node. SedangkanHeterogenous adalah kebalikan dari Homogenous  dimana data di sebarkan dengan menggunakan DBMS yang berbeda.
Tujuan utama dari database terdistribusi menyediakan kemudahan untuk mengakses data bagi user pada banyak lokasi yang berjauhan. Untuk mencapai tujuan ini system dari database terdistribusi harus menyediakan apa yang di sebut  location transparency  yang artinya seorang user dalam mengakses data tidak akan terbatas pada tempat, di manapun dia berada user dapat mengakases data. Tujuan kedua dari database terdistribusi adalah  local autonomy, yaitu kemampuan untuk mengatur database local dan mengoperasikannya secara sendiri  –  sendiri jika terjadi error atau kerusakan pada koneksi antar komputer.  
Ada dua macam teknologi yang di gunakan untuk membangun sebuah database terditribusi. Yang pertama adalah synchronous distributed database technology dimana data yang terhubung pada suatu jaringan akan selalu ter-update sehingga user pada beberapa  tempat dapat mengakses data. Sedangkan teknologi yang lain yaitu  asynchronous distributed database technology  di mana system akan menyediakan suatu kopi dari replikasi data pada beberapa node sehingga local server dapat mengakses data tanpa harus keluar dari jaringan lokal. Metode yang biasa di gunakan yaitu  Replication  serta  circular Replication. 

Replikasi database 
Adapun salah satu cara untuk mendistribusikan database adalah dengan replikasi. Ada 5 keuntungan dari replikasi data yaitu :
1.     Reliability jika sebuah sistem yang menyimpan suatu database mengalami kerusakan maka sistem lain dapat menemukan kopi dari database yang di maksud pada node yang lain yang tidak mengalami kerusakan system karena database di simpan pada beberapa node.
2.      Fast response setiap situs mempunyai kopi dari database sehingga proses query data dapat berjalan lebih cepat.
3.     Node decoupling setiap transaksi data bisa di proses tanpa koordinasi antar jaringan sehingga jika sebuah node sibuk atau mengalami kesalahan maka akan ada sistem tersendiri yang menangani koordinas antar data. 
4.     Reduced network trafic at prime time kemampuan sistem untuk memindahkan transaksi database pada jaringan yang sedang tidak sibuk atau berfungsi dengan tidak sebagaimana mestinya.


Circular replication
Circular replication mengatasi kelemahan dalam replikasi data. Bila dalam replikasi biasa replikasi data hanya berjalan pada satu arah, maka pada circular replication replikasi data akan berlangsung secara circular .
Dalam Circular Replication, juga di sebut replikasi multi master, replikasi data tidak hanya berjalan satu arah, tapi ke semua simpul sehingga database pada semua simpul akan tetap sama. Tapi replikasi tidak akan terjadi pada simpul yang melakukan replikasi itu sendiri, hal ini di tangani oleh sintaks ‘replicate-same-server = 0’ pada file konfigurasi mysql. 
Hal – hal yang penting dalam pengaturan circular replication :
•  Server-id : pada masing – masing simpul, server-id harus unik
•  Replicate-do-db : bagi server slave perintah ini  digunakan untuk mendapatkan database yang di replikasi
•  Binlog-do-db  : bagi master perintah ini di gunakan untuk  mengirim database yang di replikasikan pada slave.
•  replicate-same-server-id : di gunakan bagi semua node sebagai tanda untuk tidak mereplikasi database pada diri 
    mereka sendiri
•  auto_increment_increment : mengontrol nilai iterasi pada setiap pelaksanaan nilai AUTO_INCREMENT
•  auto_increment_offset : nilai awal dari nilai kolom  AUTO_INCREMENT
•  master-host : Nomor IP dari  master
•  master-user : user yang di buat pada master yang di gunakan oleh slave untuk melakukan replikasi
•  master-passsword : password yang mengijinkan slave untuk melakukan replikasi data.

Hmmmm... kira-kira seperti itulah gambaran dasar dari sistem Database Terdistribusi. Yang menjadi tantangan adalah ketika salah satu sistem down, bagaimana sistem tersebut  dapat saling menggantikan atau membackup database yang sedang down tanpa mennyebabkan duplikasi data yang sama

Keuntungan Database Terdistribusi
Pengawasan distribusi dan pengambilan data
Jika beberpa site yg berbeda dihubungkan seorang pemakai yg berada pada satu site dapat mengakses data pada site lain.
Contoh : sistem distribusi pada sebuah bank memungkinkan seorang pemakai pada salah satu cabang dapat mengakses data cabang lain.
Reliability dan availability
Sistem distribusi dapat terus menerus berfungsi dalam menghadapi kegagalan dari site sendiri atau mata rantai komunikasi antar site.
Kecepatan pemrosesan query
Contoh : jika site-site gagal dalam sebuah sistem terdistribusi site lain dapat melanjutkan operasi jika data telah direplikasi pada beberapa site.
Otonomi lokal
Pendistribusian sistem mengijinkan sekelompok individu dalam sebuah perusahaan utk melatih pengawasan lokal melalui data mereka sendiri. Dengan kemampuan ini dapat mengurangi ketergantungan pada pusat pemrosesan.
Efisiensi dan fleksibe
Data dalam sistem distribusi dapat disimpan dekat dgn titik diman data tersebut dipergunakan. Data dapat secara dinamik bergerak atau disain atau salinan dapat dihapus.

Kerugian Database Terdistribusi
Harga software mahal
Hal ini disebabkan sangat sulit utk membuat sistem database distribusi.
Kemungkinan kesalahan lbh besar
Site-site beroperasi secara paralel sehingga lbh sulit utk menjamin kebenaran dan algoritma. Ada kesalahan mungkin tak dapat diketahui.
Biaya pemrosesan tinggi
Perubahan pesan dan penambahan perhitungan dibutuhkan utk mencapai koordinasi antar site.


Sekian dulu teman-teman semoga artikel ini bisa bermanfaat buat kita semua.