MINGGU XI : SQL SERVER Kompetensi Khusus - Setelah mengikuti perkuliahan ini mampu mengelola data dalam SQL Server melalui C#
Persyaratan Khusus - Telah mengambil mata kuliah Sistem Basis Data atau Perancangan Basis Data
Materi Perkuliahan SQL Server adalah sistem manajemen database relasional (RDBMS) yang dirancang untuk aplikasi dengan arsitektur client/server. Istilah client, server, dan client/server dapat digunakan untuk merujuk kepada konsep yang sangat umum atau hal yang spesifik dari perangkat keras atau perangkat lunak. Pada level yang sangat umum, sebuah client adalah setiap komponen dari sebuah sistem yang meminta layanan atau sumber daya (resource) dari komponen sistem lainnya. Sedangkan sebuah server adaah setiap komponen sistem yang menyediakan layanan atau sumber daya ke komponen sistem lainnya. SQL Server adalah server basisdata yang secara fungsional adalah proses atau aplikasi yang menyediakan layanan basisdata. Client berinteraksi dengan layanan basisdata melalui antar muka komunikasi tertentu yang bertujuan untuk pengendalian dan keamanan. Client tidak mempunyai akses langsung kedata, tetapi selalu berkomunikasi dengan server basisdata. SQL Server menggunakan tipe dari database yang disebut database relasional. Database relasional
adalah
database
yang
digunakan
sebuah
data
untuk
mengatur
atau
mengorganisasikan kedalam tabel. Tabel-tabel adalah alat bantu untuk mengatur atau mengelompokan data mengenai subyek yang sama dan mengandung informasi dan kolom dan baris. Sebuah database berisi satu tabel atau lebih dan memiliki nama yang berbeda untuk masing-masing tabel. Masing-masing tabel memiliki satu kolom (field) atau lebih dan memiliki baris (record). Pengelolaan database dapat dilakukan dengan menggunakan bahasa SQL. SQL singkatan dari Structured Query Language dan merupakan bahasa query standar relasional (SQL telah distandarisasi baik oleh ANSI maupun ISO ) digunakan untuk interaksi dengan database. SQL dikembangkan oleh IBM pada sekitar tahun 1970-an dan memiliki basis pada aljabar relasional yang didefinisikan oleh Codd pada tahun 1972. Fungsi SQL melampaui aljabar relasional, memungkinkan untuk mengambil data, memasukkan data, memodifikasi data yang ada dan menghapus data dari dan ke sebuah RDBMS. SQL mempunyai fitur operator
aritmatika seperti pembagian, perkalian, pengurangan dan penambahan serta perbandingan operator (=,> =, <=). SQL juga mendefinisikan beberapa fungsi agregat seperti MAX, MIN, AVG, COUNT dan SUM . SQL mendefinisikan banyak kata kunci, yang dapat dibagi menjadi beberapa kategori, yaitu : a. DDL (Data Definition Language), yaitu bahasa yang memiliki kemampuan untuk mendefinisikan data yang berhubungan dengan pembuatan dan penghapusan objek seperti tabel, indeks, bahkan basis datanya sendiri. Misalnya. CREATE, DROP, ALTER. b. DML (Data Manipulation Language), yaitu bahasa yang berhubungan dengan proses manipulasi data pada tabel record. Misalnya : INSERT, UPDATE, SELECT, DELETE. c. DCL (Data Control Language), yaitu bahasa yang digunakan untuk mengendalikan akses dalam database. d. DTL (Data Transaction Language) , yaitu bahasa yang digunakan dalam query transaksi. Koneksi C# dengan SQL Server Ada beberapa cara yang dapat digunakan untuk mengkoneksikan aplikasi C# dengan database, salah satunya adalah dengan menggunakan library ADO.NET. ADO.NET merupakan library object yang digunakan untuk mempermudah akses terhadap database. Namespace yang akan digunakan untuk mengakses database adalah: 1. System.Data 2. System.Data.SqlClient
Sebelum aplikasi C# dapat mengelola data yang terdapat dalam C# maka diperlukan koneksi terlebih dahulu ke database server. Koneksi database dilakukan dengan menggunakan kelas SqlConnection.
Kelas SqlConnection membutuhkan connection string yang memuat informasi tentang database server yang akan diakses, termasuk otorisasi untuk menggunakan database tersebut. Connection String dapat dibuat dengan menggunakan kelas SqlConnectionStringBuilder atau dibuat sendiri. Kemudian connection string tersebut diberikan ke objek SqlConnection.
Properti yang harus diatur untuk mengakses database server adalah: - DataSource : alamat server - InitialCatalog : Database yang akan digunakan - Authentication : user yang akan mengakses database server Setelah objek SqlConnection memiliki connection string, barulah koneksi antara aplikasi dengan database server dapat dibuka dengan menggunakan method “Open()” yang dimiliki oleh kelas SqlConnections.
SQL Server memiliki 2 jenis autentifikasi yaitu a. Windows Authentication Username dan password yang digunakan untuk mengakses database server adalah username dan password yang sama yang digunakan untuk mengakses windows tempat SQL Server diinstall. b. SQL Server Authentication Username dan password yang digunakan untuk mengakses database server ditentukan oleh SQL Server itu sendiri. Penggunaan Windows Authentication dapat mempermudah proses otentifikasi. Namun ada kalanya aplikasi yang dibuat digunakan oleh pengguna yang tidak memiliki akun Windows sehingga dalam kasus ini gunakan SQL Server Authentication yang menggunakan username dan password. String userName = “…”; String password = “….”; String connectionString = String.Format( “User ID={0}; Password={1};InitialCatalog=Database;” + “Data Source=.\\SQLExpress”, userName, password);
dataConnection.ConnectionString = connectionString;
Setelah koneksi antara aplikasi dengan database server dibangun, selanjutnnya aplikasi dapat memberikan perintah untuk mengelola data yang ada dalam database. Pengelolaan Data SQL Server Perintah pengelolaan data untuk database server sebenarnya hanyalah perintah-perintah SQL yang dikirimkan melalui kelas-kelas yang telah disediakan. Perintah tersebut diberikan ke database server dengan menggunakan kelas SQLCommand dan SqlParameter. Kelas SqlCommand digunakan untuk membuat perintah sedangkan SqlParameter digunakan untuk membuat parameter yang akan digunakan oleh SqlCommand. Berikut ini adalah contoh script untuk membuat command SELECT.
Pada contoh diatas terdapat kata @CustomerIdParam pada property CommandText. @CustomerIdParam merupakan parameter yang digunakan dalam perintah SQL. Untuk membuat parameter dibutuhkan kelas SqlParameter. Parameter yang dibuat selanjutnya ditambahkan ke dalam objek SqlCommand yang telah dibuat sebelumnya. Berikut contoh untuk membuat parameter dan menambahkan parameter tersebut ke dalam objek SqlCommand.
Perintah-perintah SQL yang bertipe SELECT akan mengembalikan hasil berupa data yang diquery. Data yang dikembalikan ini dapat dibaca dengan menggunakan kelas SqlDataReader.
Kelas SqlDataReader digunakan untuk menyimpan data hasil eksekusi perintah SQL. Kelas SqlCommand
memiliki
method
ExecuteReader()
yang
akan
menghasilkan
SqlDataReader. Objek ini merupakan data yang didapatkan dari hasil query database.
objek
Objek dari kelas SqlDataReader selanjutnya perlu diiterasi untuk mengambil data baris perbaris dan per kolomnya. Contoh script untuk menampilkan data dari data reader dapat dilihat pada script dibawah ini.