Pengenalan Database Bagian I Abdul Kadir Pengertian Database Database adalah kumpulan data yang saling terkait yang disusun agar mudah untuk diakses Database Akademik Mahasiswa Registrasi Matakuliah Nilai Matakuliah Pemanfaatan Basis Data Mudah untuk memperoleh informasi tertentu Dalam aplikasi, mampu untuk mendapatkan jawaban pertanyaanpertanyaan seperti: • Berapa jumlah mahasiswa yang mengikuti kuliah “Pengantar Basis Data”? • Siapa saja yang lulus pada periode Agustus tahun ini? • Berapa persentase mahasiswa yang tidak melakukan registrasi pada semester lalu? • Berapa jumlah SKS yang diperoleh oleh mahasiswa dengan NIM 12345? Berbagai Aplikasi Basis Data ATM e-Mobile Banking dan Internet Banking Tracking Paket Barang Distance learning Reservasi Tiket Penerbangan Sistem Perpustakaan Keuntungan Pendekatan Database Independensi program-data Meminimalkan redundansi data Meningkatkan konsitensi data Meningkatkan kemampuan berbagai data Meningkatkan produktivitas pengembangan aplikasi Meningkatkan pencapaian standarisasi Meningkatkan kualitas data Meningkatkan tanggapan dan kemudahan akses terhadap data Mengurangi pemeliharaan program Model Relasional Salah satu model database yang terkenal adalah model relasional Data disusun dalam bentuk tabeltabel Antar dua tabel bisa punya hubungan Contoh Model Relasional NO_MHS NAMA_MHS KODE_MK NAMA_MK 55 Ashadi DB001 Pengantar Basis Data 56 Rina DB002 Basis Data Lanjut PI001 Teknik Multimedia 57 Hubungan Budi NO_MHS KODE_MK NILAI 55 DB001 A 55 PI001 B 56 DB001 B 57 DB001 A 57 DB002 A Contoh Informasi yang Bisa Diperoleh NO_MHS NAMA_MHS KODE_MK NAMA_MK 55 Ashadi DB001 Pengantar Basis Data 56 Rina DB002 Basis Data Lanjut 57 Budi PI001 Teknik Multimedia NO_MHS KODE_MK NILAI 55 DB001 A NAMA_MHS NAMA_MK NILAI 55 PI001 B Ashadi Pengantar Basis Data A 56 DB001 B Ashadi Teknik Multimedia B 57 DB001 A Rina Pengantar Basis Data B 57 DB002 A Budi Pengantar Basis Data A Budi Basis Data Lanjut A Istilah Dasar Sebuah database terdiri atas sejumlah tabel Tabel sering disebut sebagai relasi Setiap tabel menyimpan sekumpulan data atau baris Database Akademik Mahasiswa Registrasi Matakuliah Nilai Matakuliah Contoh ada 3 tabel Istilah Dasar (Lanjutan…) Data dalam sebuah tabel mengikuti hierarki seperti disamping Elemen Data Tabel Rekaman … … Rekaman Elemen Data Deretan byte/bit Istilah Dasar (Lanjutan…) Database Akademik Mahasiswa Atribut atau kolom Registrasi Matakuliah Nilai Matakuliah Relasi atau tabel Baris atau tuple NO_MHS KODE_MK NILAI 55 DB001 A 55 PI001 B 56 DB001 B 57 DB001 A 57 DB001 A Karakteristik dalam Relasi Tidak ada baris yang kembar Urutan baris tidak penting Setiap atribut memiliki nama yang unik Letak atribut bebas Setiap atribut memiliki nilai tunggal dan jenisnya sama untuk semua baris Pengertian Tidak Ada Baris Kembar Baris punya identitas yang membuat dua buah baris tidak kembar Identitas tersebut dinamakan “primary key” Contoh baris kembar Primary key NO_MHS KODE_MK NILAI 55 DB001 A 55 PI001 B 56 DB001 B 57 DB001 A 57 DB001 B Pengertian Urutan Baris Tidak Penting NO_MHS KODE_MK NILAI NO_MHS KODE_MK NILAI 55 DB001 A 57 DB001 A 55 PI001 B 55 PI001 B 56 DB001 B 56 DB001 B 57 DB001 A 55 DB001 A 57 DB002 A 57 DB002 A Setiap Atribut Memiliki Nama Unik Nama Nama atribut atribut unikunik Nama TIDAK atribut UNIK unik NO_SISWA TES_1 TES_2 NO_SISWA TES TES 12 75 80 12 75 80 13 76 78 13 76 78 14 89 58 14 89 58 15 60 90 15 60 90 16 75 86 16 75 86 Letak Atribut Bebas NO_SISWA TES_1 TES_2 TES_2 TES_1 NO_SISWA 12 75 80 80 75 12 13 76 78 78 76 13 14 89 58 58 89 14 15 60 90 90 60 15 16 75 86 86 75 16 Urutan kolom tidak penting Setiap Atribut Memiliki Nilai Tunggal Semua atribut Nilai TIDAK TUNGGAL bernilai tunggal NO_SISWA TES_1 TES_2 NO_SISWA TES 12 75 80 12 75 80 13 76 78 13 76 78 14 89 58 14 89 58 15 60 90 15 60 90 16 75 86 16 75 86 Setiap Atribut Berjenis Sama untuk Semua Baris Semua atribut Jenis tidak bernilai tunggal sama NO_SISWA TES_1 TES_2 NO_SISWA TES_1 TES_2 12 75 80 12 75 80 13 76 78 13 78 14 89 58 Tujuh puluh enam 14 89 58 15 60 90 15 60 90 16 75 86 16 75 86 Apa Primary Key-nya? (1) NO_KTP NO_KK NAMA ? ? ? Apa Primary Key-nya? (2) KODE_DEPARTEMEN NAMA_DEPARTEMEN 1 Akunting 2 EDP 3 Pemasaran 4 Produksi Apa Primary Key-nya? (3) NO_FAKTUR KODE_ITEM JUMLAH 456 K-1 2 457 K-5 1 459 K-1 3 459 K-2 1 460 K-8 5 Apa Primary Key-nya? (4) SEMESTER TAHUN NO_MHS KODE_MKULIAH SKS 1 2007 1189 M-01 3 1 2007 1189 M-02 2 1 2007 1190 M-01 3 1 2007 1190 M-02 2 1 2007 1190 M-03 3 Apa yang Salah? (1) NO_FAKTUR ITEM ITEM ITEM Spidol 456 Pensil 457 Buku Penggaris 459 Buku Pensil 460 Spidol 461 Buku Spidol Penghapus Apa yang Salah? (2) NO_PEGAWAI SEX BAHASA_ASING 12345 L ARAB 12346 W 12347 L INGGRIS 12348 W INGGRIS JERMAN 12349 W SPANYOL Apa yang Salah? (3) NO_PEGAWAI SEX BAHASA_ASING 12345 L ARAB 12346 W 12347 L INGGRIS 12348 W INGGRIS 12348 W JERMAN DBMS (DataBase Manajemen Systems) Software yang memudahkan dalam mengelola database Contoh DBMS: • Microsoft Access • Microsoft SQL Server • Informix • Oracle • MySQL Contoh DBMS Access Fitur DBMS Selain memudahkan dalam pengelolaan database, beberapa fitur penting yang biasanya disediakan DBMS: • Backup dan recovery • Security pengaksesan data • Report generator • Form generator Komunikasi dengan Software Pengembangan Aplikasi Seringkali database diakses tidak menggunakan tool yang tersedia pada DBMS, melainkan dengan menggunakan software pengembangan aplikasi Misalnya menggunakan: • Delphi • Visual BASIC • PHP Standar pengaksesan data dilakukan melalui SQL Contoh Pengaksesan Melalui Visual BASIC Program Visual BASIC MyODBC Database Server MySQL Contoh Pengaksesan Melalui MiddleWare Server Web Server (Apache, IIS, Xitami, dsb) Middleware (ASP, JSP, PHP, dsb) Internet Permintaan Tanggapan Browser (Internet Explorer, Netscape,dsb) Klien Database (Access, Oracle, dsb) SQL SQL (Structured Query Language) merupakan non-procedural language Standar pengaksesan data pada database Contoh: select no_mhs, nama_mhs from where no_mhs = ‘12345’ mahasiswa Perintah SQL bisa dikenakan pada DBMS ataupun pada program aplikasi pengakses database SQL Perintah SQL bisa dikenakan pada DBMS ataupun pada program aplikasi pengakses database Contoh pada VB: On Error Resume Next AdodcAtpm.ConnectionString = Conn.ConnectionString If Err.Number <> 0 Then KeluarTanpaSyarat = True MsgBox "Problem membuka koneksi", vbOKOnly, "Perhatian" Unload FormAccess Exit Sub End If AdodcAtpm.CommandType = adCmdText AdodcAtpm.RecordSource = "SELECT * FROM ATPM;" On Error GoTo 0 SQL Contoh pada PHP: $id_mysql = mysql_connect("localhost", $pemakai,$password); if (! $id_mysql) die("Database MySQL tak dapat dibuka"); if (! mysql_select_db("jflora_plant", $id_mysql)) die("Database tidak bisa dipilih"); $hasil = mysql_query("SELECT * FROM category", $id_mysql); if (! $hasil) die("Permintaan gagal dilaksanakan"); while ( $baris = mysql_fetch_row($hasil) ) { print("$baris[1]<BR>\n"); } mysql_close($id_mysql); Beberapa Persoalan Penting Bagaimana menggunakan tool seperti ERD untuk menggambarkan hubungan entitas dalam merancang database? Bagaimana bentuk implementasi SQL dalam mengakses data?