Pemrograman C Pengenalan Borland C++ Diktat SISTEM BASIS DATA Sistem Informasi S1 Fakultas Ilmu Komputer Suzan Agustri, S.Kom., M.T.I. NPM : Nama : Kelas : UNIVERSITAS INDO GLOBAL MANDIRI 2017 Suzan Agustri 1 Sistem Basis Data S I L A B U S Kode Mata Kuliah Jumlah SKS Kelas Nama Mata Kuliah Jadwal Dosen Bahasa Pengantar : MKB303 : 4 SKS : 121401 : Sistem Basis Data : Kamis : Suzan Agustri, S.Kom., M.T.I. : Bahasa Indonesia Objektif Mata kuliah ini merupakan teori basis data yang sangat mendasar tanpa memerlukan prasyarat pengetahuan tentang basis data sebelumnya. Materi mata kuliah ini difokuskan pada tiga hal pokok, yaitu: dasar-dasar basis data, model data dan bagaimana membuat model data yang baik. Selain itu, mata kuliah ini juga membahas contoh-contoh aturan yang berlaku di lapangan yang terefleksikan dalam perancangan basis data. Sejumlah aspek lain yang relevan, seperti DBMS, SQL, aplikasi basis data dan perkembangan teknologi terbaru juga dibahas dalam mata kuliah ini. Penilaian: Kehadiran 5%, Quiz 20%, Tugas 20%, UTS 25%, UAS 30%. Buku Teks Utama: Thomas Connolly, Carolyn Begg, Database Systems 4th Ed., 2005 Prasyarat: - Jadwal Perkuliahan: Jadwal perkuliahan berikut merupakan panduan yang dapat berubah sewaktu-waktu sesuai kebutuhan perkuliahan berdasarkan pertimbangan dosen. Suzan Agustri Sistem Basis Data Minggu ke1&2 Tanggal 16 & 23-Feb-17 Topik Pengantar Basis Data 3 2-Mar-17 Lingkungan Basis Data 3&4 2 & 9-Mar-17 4 9-Mar-17 QUIZ 5 16-Mar-17 Structured Query Language 5&6 16 & 23-Mar-17 Entity Relationship Diagram 7&8 30-Mar & 6-Apr-17 8 6-Apr-17 9 & 10 13 & 20-Apr-17 Model Enhanced Entity Relationship 10 & 11 20 & 27-Apr-17 Proses Perancangan Basis Data 11 27-Apr-17 QUIZ 12 4-Mei-17 Database Control 13 11-Mei-17 Studi Kasus 1 Perancangan Basis Data Model Data Relasional Normalisasi UTS Studi Kasus 2 Perancangan Basis Data 14 18-Mei-17 Studi Kasus 3 Perancangan Basis Data Studi Kasus 4 Perancangan Basis Data UAS Suzan Agustri Sistem Basis Data Pengantar Basis Data PENGANTAR BASIS DATA Basis data menyediakan fasilitas atau mempermudah dalam menghasilkan informasi yang digunakan oleh pemakai untuk mendukung pengambilan keputusan. Hal inilah yang menjadikan alasan dari penggunaan teknologi basis data pada saat sekarang (dunia bisnis). Berikut ini contoh penggunaan aplikasi basis data dalam dunia bisnis: Bank: Pengelolaan data nasabah, akunting, semua transaksi perbankan Bandara: Pengelolaan data reservasi, penjadwalan Universitas: Pengelolaan pendaftaran, alumni Penjualan: Pengelolaan data customer, produk, penjualan Pabrik: Pengelolaan data produksi, persediaan barang, pemesanan, agen Kepegawaian: Pengelolaan data karyawan, gaji, pajak Telekomunikasi: Pengelolaan data tagihan, jumlah pulsa SISTEM PEMROSESAN FILE Program Aplikasi Mahasiswa file mahasiswa mahasiswa Program Aplikasi Mata Kuliah file mata kuliah mata kuliah Gambar 1. Sistem pemrosesan file untuk suatu Universitas Keterangan: File Mahasiswa: Mhs (npm, nama, alamat, tgl_lahir) MataKul (kd_mk, nama_mk, sks) File MataKuliah: MataKul (kd_mk, nama, sks) Sebelumnya, sistem yang digunakan untuk mengatasi semua permasalahan bisnis, menggunakan pengelolaan data secara tradisional dengan cara menyimpan banyak record pada banyak file yang terpisah, yang disebut juga Sistem Pemrosesan File. Dimana masing-masing file diperuntukkan hanya untuk satu program aplikasi saja. Perhatikan Suzan Agustri 1 Sistem Basis Data Pengantar Basis Data Gambar 1 mengenai suatu universitas yang mempunyai dua sistem yakni sistem yang memproses data mahasiswa dan sistem yang mengelola data mata kuliah. Kelemahannya dari sistem pemrosesan file ini antara lain: 1. Timbulnya Data Rangkap (Redundancy Data) dan Ketidakkonsistensi Data (Inconsistency Data) Karena file dan program aplikasi disusun oleh programmer yang berbeda, sejumlah informasi mungkin memiliki duplikasi dalam beberapa file. Sebagai contoh nama mata kuliah dan sks dari mahasiswa dapat muncul pada suatu file memiliki record mahasiswa dan juga pada suatu file yang terdiri dari record mata kuliah. Kerangkapan data seperti ini dapat menyebabkan pemborosan tempat penyimpanan dan biaya akses yang bertambah. Disamping itu dapat terjadi inkonsistensi data. Misalnya, apabila terjadi perubahan jumlah sks mata kuliah, sedangkan perubahan hanya diperbaiki pada file mata kuliah dan tidak diperbaiki pada file mahasiswa. Hal ini dapat mengakibatkan kesalahan dalam laporan nilai mahasiswa. 2. Kesukaran dalam Mengakses Data Munculnya permintaan-permintaan baru yang tidak diantisipasikan sewaktu membuat program aplikasi, sehingga tidak memungkinkan untuk pengambilan data. 3. Data Terisolir (Isolation Data) Karena data tersebar dalam berbagai file, dan file mungkin dalam format yang berbeda, akan sulit menuliskan program aplikasi baru untuk mengambil data yang sesuai. 4. Masalah Pengamanan (Security Problem) Tidak semua pemakai diperbolehkan mengakses seluruh data. Bagian Mahasiswa hanya boleh mengakses file mahasiswa. Bagian Mata Kuliah hanya boleh mengakses file mata kuliah, tidak boleh mengakses file mahasiswa. Tetapi sejak program-program aplikasi ditambahkan secara ad-hoc maka sulit melaksanakan pengamanan seperti yang diharapkan. 5. Ketergantungan Data (Data Dependence) Apabila terjadi perubahan atau kesalahan pada program aplikasi maka pemakai tidak dapat mengakses data. Suzan Agustri 2 Sistem Basis Data Pengantar Basis Data SISTEM BASIS DATA Seiring dengan berjalannya waktu, lambat laun sistem pemrosesan file mulai ditinggalkan karena masih bersifat manual, yang kemudian dikembangkanlah sistem pemrosesan dengan pendekatan basis data. Program Aplikasi Mahasiswa mahasiswa DBMS Basis data Universitas Program Aplikasi Mata kuliah mata kuliah Gambar 2. Sistem basis data untuk suatu universitas Keterangan: Mhs ( npm, nama, alamat, tgl_lahir ) Mt_kul ( kd_mk, nama_mk,sks ) Perhatikan Gambar 2 di atas. Pada sistem ini record data disimpan pada satu tempat yakni basis data dan diantara program aplikasi maupun pemakai terdapat DBMS (Database Management System). Konsep Dasar Basis Data Data adalah representasi fakta dunia nyata yang mewakili suatu objek seperti manusia (pegawai, mahasiswa, pembeli), barang, hewan, peristiwa, konsep, keadaan, dan sebagainya yang direkam dalam bentuk angka, huruf, simbol, teks, gambar, bunyi atau kombinasinya. Basis Data adalah sekumpulan data yang terintegrasi yang diorganisasikan untuk memenuhi kebutuhan para pemakai di dalam suatu organisasi. DBMS (DataBase Management System) adalah Perangkat Lunak yang menangani semua pengaksesan ke basis data Suzan Agustri 3 Sistem Basis Data Pengantar Basis Data Sistem Basis Data terdiri dari basis data dan DBMS. Gambar 3. Sistem Basis Data Istilah - Istilah Dasar Basis Data Enterprise Suatu bentuk organisasi seperti: bank, universitas, rumah sakit, pabrik, dan sebagainya. Data yang disimpan dalam basis data merupakan data operasional dari suatu enterprise. Contoh data operasional: data keuangan, data mahasiswa, data pasien Entitas (Entity) Suatu obyek yang dapat dibedakan dari lainnya yang dapat diwujudkan dalam basis data. Contoh Entitas dalam lingkungan bank terdiri dari: Nasabah, Simpanan, Hipotik Contoh Entitas dalam lingkungan universitas terdiri dari: Mahasiswa, Mata kuliah Kumpulan dari entitas disebut Himpunan Entitas Contoh: semua nasabah, semua mahasiswa Atribut (Elemen Data) Karakteristik dari suatu entitas. Contoh: Entitas Mahasiswa atributnya terdiri dari NPM, Nama, Alamat, Tanggal lahir. Nilai Data (Data Value) Isi data/informasi yang tercakup dalam setiap elemen data. Contoh Atribut Nama Mahasiswa dapat berisi Nilai Data: Natawiangga, Nadya, Fatahillah Kunci Elemen Data (Key Data Element) Tanda pengenal yang secara unik mengidentifikasikan entitas dari suatu kumpulan entitas. Contoh Entitas Mahasiswa yang mempunyai atribut-atribut NPM, nama, alamat, tanggal lahir menggunakan Kunci Elemen Data NPM. Suzan Agustri 4 Sistem Basis Data Pengantar Basis Data Record Data Kumpulan Isi Elemen data yang saling berhubungan. Contoh: kumpulan atribut NPM, nama, alamat, tanggal lahir dari Entitas Mahasiswa berisikan: "2009210123", "Natawiangga", "Jl. Sirsak 28 Palembang", "11 Oktober 1991". Pengguna Basis Data 1. System Engineer Tenaga ahli yang bertanggung jawab atas pemasangan Sistem Basis Data, dan juga mengadakan peningkatan dan melaporkan kesalahan dari sistem tersebut kepada pihak penjual 2. DataBase Administrator (DBA) Tenaga ahli yang mempunyai tugas untuk mengontrol sistem basis data secara keseluruhan, meramalkan kebutuhan akan sistem basis data, merencanakannya dan mengaturnya. Tugas DBA : o Mengontrol DBMS dan software o Memonitor siapa yang mengakses basis data o Mengatur pemakaian basis data o Memeriksa security, integrity, recovery dan concurrency Program Utilitas yang digunakan oleh DBA: o Loading Routines Membangun versi utama dari basis data o Reorganization Routines Mengatur/mengorganisasikan kembali basis data o Journaling Routines Mencatat semua operasi pemakaian basis data o Recovery Routines Menempatkan kembali data, sebelum terjadinya kerusakan o Statistical Analysis Routines Membantu memonitor kehandalan sistem Suzan Agustri 5 Sistem Basis Data Pengantar Basis Data 3. End User (Pemakai Akhir) Ada beberapa jenis (tipe) pemakai terhadap suatu sistem basis data yang dapat dibedakan berdasarkan cara mereka berinteraksi terhadap sistem: a. Programmer aplikasi Pemakai yang berinteraksi dengan basis data melalui Data Manipulation Language (DML), yang disertakan (embedded) dalam program yang ditulis pada bahasa pemrograman induk (seperti C, pascal, cobol, dan lain-lain) b. Pemakai Mahir (Casual User) Pemakai yang berinteraksi dengan sistem tanpa menulis modul program. Mereka menyatakan query (untuk akses data) dengan bahasa query yang telah disediakan oleh suatu DBMS c. Pemakai Umum (End User/Naïve User) Pemakai yang berinteraksi dengan sistem basis data melalui pemanggilan satu program aplikasi permanen (executable program) yang telah ditulis (disediakan) sebelumnya d. Pemakai Khusus (Specialized/Sophisticated User) Pemakai yang menulis aplikasi basis data non konvensional, tetapi untuk keperluankeperluan khusus seperti aplikasi Artificial Intelligence, Sistem Pakar, Pengolahan Citra, dan lain-lain, yang bisa saja mengakses basis data dengan atau tanpa DBMS yang bersangkutan. Keuntungan Sistem Basis Data 1. Terkontrolnya kerangkapan data Dalam basis data hanya mencantumkan satu kali saja field yang sama yang dapat dipakai oleh semua aplikasi yang memerlukannya. 2. Terpeliharanya keselarasan (kekonsistenan) data Apabila ada perubahan data pada aplikasi yang berbeda maka secara otomatis perubahan itu berlaku untuk keseluruhan 3. Data dapat dipakai secara bersama (shared) Data dapat dipakai secara bersama-sama oleh beberapa program aplikasi (secara batch maupun on-line) pada saat bersamaan. 4. Dapat diterapkan standarisasi Dengan adanya pengontrolan yang terpusat maka DBA dapat menerapkan standarisasi data yang disimpan sehingga memudahkan pemakaian, pengiriman maupun pertukaran data. Suzan Agustri 6 Sistem Basis Data Pengantar Basis Data 5. Keamanan data terjamin DBA dapat memberikan batasan-batasan pengaksesan data, misalnya dengan memberikan password dan pemberian hak akses bagi pemakai (misal: modify, delete, insert, retrieve) 6. Terpeliharanya integritas data Jika kerangkapan data dikontrol dan kekonsistenan data dapat dijaga maka data menjadi akurat 7. Terpeliharanya keseimbangan (keselarasan) antara kebutuhan data yang berbeda dalam setiap aplikasi Struktur basis data diatur sedemikian rupa sehingga dapat melayani pengaksesan data dengan cepat 8. Data independence (kemandirian data) Dapat digunakan untuk bermacam-macam program aplikasi tanpa harus merubah format data yang sudah ada Kelemahan Sistem Basis Data - Memerlukan tenaga spesialis - Kompleks - Memerlukan tempat yang besar - Mahal Suzan Agustri 7 Sistem Basis Data Lingkungan Basis Data LINGKUNGAN BASIS DATA Tujuan utama dari sistem basis data adalah menyediakan pemakai melalui suatu pandangan abstrak mengenai data, dengan menyembunyikan detail dari bagaimana data disimpan dan dimanipulasikan. Oleh karena itu, titik awal untuk perancangan sebuah basis data haruslah abstrak dan deskripsi umum dari kebutuhan-kebutuhan informasi suatu organisasi harus digambarkan di dalam basis data. Lebih jauh lagi, jika sebuah basis data merupakan suatu sumber yang bisa digunakan bersama maka setiap pemakai membutuhkan pandangan yang berbeda-beda terhadap data di dalam basis data. Untuk memenuhi kebutuhan ini, arsitektur komersial basis data yang banyak digunakan telah tersedia saat ini dan telah mengalami perluasan yaitu arsitektur ANSI-SPARC. Materi ini menyediakan latar belakang informasi yang penting pada basis data, diantaranya tiga tingkatan arsitektur ANSI-SPARC, pengenalan model data, fungsi yang disediakan oleh DBMS multi user. Tiga Tingkatan Arsitektur Basis Data ANSI-SPARC Ada 3 tingkat dalam arsitektur basis data yang bertujuan membedakan cara pandang pemakai terhadap basis data dan cara pembuatan basis data secara fisik. 3 tingkatan arsitektur basis data: 1. Tingkat Eksternal (External Level) Tingkat eksternal merupakan cara pandang pemakai terhadap basis data. Pada tingkat ini menggambarkan bagian basis data yang relevan bagi seorang pemakai tertentu. Tingkat eksternal terdiri dari sejumlah cara pandang yang berbeda dari sebuah basis data. Masing-masing pemakai merepresentasikan dalam bentuk yang sudah dikenalnya. Cara pandang secara eksternal hanya terbatas pada entitas, atribut dan hubungan antar entitas (relationship) yang diperlukan saja. Suzan Agustri 8 Sistem Basis Data Lingkungan Basis Data 2. Tingkat Konseptual (Conseptual Level) Tingkat konseptual merupakan kumpulan cara pandang terhadap basis data. Pada tingkat ini menggambarkan data yang disimpan dalam basis data dan hubungan antara datanya. Hal-hal yang digambarkan dalam tingkat konseptual adalah: - semua entitas beserta atribut dan hubungannya - batasan data - informasi semantik tentang data - keamanan dan integritas informasi Semua cara pandang pada tingkat eksternal berupa data yang dibutuhkan oleh pemakai harus sudah tercakup di dalam tingkat konseptual atau dapat diturunkan dari data yang ada. Deskripsi data dari entitas pada tingkat ini hanya terdiri dari jenis data dan besarnya atribut tanpa memperhatikan besarnya penyimpanan dalam ukuran byte. 3. Tingkat Internal (Internal Level) Tingkat internal merupakan perwujudan basis data dalam komputer. Pada tingkat ini menggambarkan bagaimana basis data disimpan secara fisik di dalam peralatan storage yang berkaitan erat dengan tempat penyimpanan/physical storage. Tingkat internal memperhatikan hal-hal berikut ini: - alokasi ruang penyimpanan data dan indeks - deskripsi record untuk penyimpanan (dengan ukuran penyimpanan untuk data elemen) - penempatan record - pemampatan data dan teknik encryption Suzan Agustri 9 Sistem Basis Data Lingkungan Basis Data External Level Conseptual Level Internal Level Gambar 1. Tingkatan Arsitektur Basis Data Contoh: sebuah file Pegawai yang akan didefinisikan Tingkat Eksternal (External Level): Cobol 01 PEG_REC. 02 PEG_NO PIC X(6). 02 DEPT_NO PIC X(4). 02 GAJI PIC 9(6). Tingkat Konseptual (Conceptual Level): PEGAWAI NOMOR_PEGAWAI CHARACTER 6 NOMOR_DEPT CHARACTER 4 GAJI NUMERIC 6 Tingkat Internal (Internal Level): FILE_PEGAWAI LENGTH = 22 PREFIX TYPE = BYTE (6), OFFSET = 0 EMP# TYPE = BYTE (6), OFFSET = 6, INDEX = EMPX DEPT# TYPE = BYTE (4), OFFSET = 12 PAY TYPE = FULLWORD, OFFSET = 16 Suzan Agustri 10 Sistem Basis Data Lingkungan Basis Data DATA INDEPENDENCE Tujuan utama dari 3 tingkat arsitektur adalah memelihara kemandirian data (data independence) yang berarti perubahan yang terjadi pada tingkat yang lebih rendah tidak mempengaruhi tingkat yang lebih tinggi. Ada 2 jenis data independence, yaitu 1. Physical Data Independence bahwa internal schema dapat diubah oleh DBA tanpa menggangu conceptual schema. Dengan kata lain physical data independence menunjukkan kekebalan conceptual schema terhadap perubahan internal schema. 2. Logical Data Independence bahwa conceptual schema dapat diubah oleh DBA tanpa menggangu external schema. Dengan kata lain logical data independence menunjukkan kekebalan external schema terhadap perubahan conceptual schema. Prinsip data independence adalah salah satu hal yang harus diterapkan di dalam pengelolaan sistem basis data dengan alasan-alasan sebagai berikut: 1. DBA dapat mengubah isi, lokasi, perwujudan dalam organisasi basis data tanpa mengganggu program-program aplikasi yang sudah ada. 2. Pabrik/agen peralatan/software pengolahan data dapat memperkenalkan produkproduk baru tanpa mengganggu program-program aplikasi yang sudah ada. 3. Untuk memindahkan perkembangan program-program aplikasi 4. Memberikan fasilitas pengontrolan terpusat oleh DBA demi keamanan dan integritas data dengan memperhatikan perubahan-perubahan kebutuhan pengguna. BAHASA DALAM DBMS DBMS (DataBase Management System) adalah kumpulan program yang mengkoordinasikan semua kegiatan yang berhubungan dengan basis data. Dengan adanya berbagai tingkatan pandangan dalam suatu basis data maka untuk mengakomodasikan masingmasing pengguna dalam piranti lunak manajemen basis data biasanya terdapat bahasabahasa tertentu yang disebut Data Sub Language. Data sub language adalah subset bahasa yang dipakai untuk operasi manajemen basis data. Dalam penggunaan biasanya dapat ditempelkan (embedded) pada bahasa tuan rumah (Cobol, PL/1, dan sebagainya). Secara umum maka setiap pengguna basis data memerlukan bahasa yang dipakai sesuai tugas dan fungsinya. Suzan Agustri 11 Sistem Basis Data Lingkungan Basis Data Dalam basis data secara umum dikenal 2 data sub language: 1. Data Definition Language (DDL) Bahasa yang digunakan dalam mendefinisikan struktur atau kerangka dari basis data, di dalamnya termasuk record, elemen data, kunci elemen, dan relasinya 2. Data Manipulation Language (DML) Bahasa yang digunakan untuk menjabarkan pemrosesan dari basis data, fasilitas ini diperlukan untuk memasukkan, mengambil, mengubah data. DML dipakai untuk operasi terhadap isi basis data Ada 2 jenis DML: 1. Procedural DML Digunakan untuk mendefinisikan data yang diolah dan perintah yang akan dilaksanakan. 2. Non Procedural Digunakan untuk menjabarkan data yang diinginkan tanpa menyebutkan bagaimana cara pengambilannya. Secara khusus pengguna menggunakan berbagai bahasa: Programmer aplikasi menggunakan bahasa-bahasa seperti Cobol, Informix, dan lain-lain (host language) yang ditempelkan dengan bahasa yang dipakai dalam DBMS. Pemakai terminal menggunakan bahasa Query (misal SQL) atau menggunakan program aplikasi (yang dirancang oleh programmer). Sedangkan DBA lebih banyak menggunakan bahasa DDL dan DML yang tersedia dalam DBMS. DBMS mempunyai tugas untuk menangani semua bentuk akses kepada basis data, secara konsep: 1. Pengguna menyatakan permintaan akses menggunakan DBMS 2. DBMS menangkap dan menginterpretasikan 3. DBMS mencari: - eksternal/conceptual mapping - conceptual schema - konseptual/internal mapping - internal schema 4. DBMS melaksanakan operasi yang diminta terhadap basis data tersimpan. Proses 1 s/d 4 dapat dilakukan secara interaktif atau di-compile dulu. Suzan Agustri 12 Sistem Basis Data Lingkungan Basis Data MODEL DATA Model data adalah kumpulan konsep yang terintegrasi yang menggambarkan data, hubungan antara data dan batasan-batasan data dalam suatu organisasi. Fungsi dari sebuah model data untuk merepresentasikan data sehingga data tersebut mudah dipahami. Untuk menggambarkan data pada tingkat eksternal dan konseptual digunakan model data berbasis objek atau model data berbasis record. 1. Model Data Berbasis Objek Model data berbasis objek menggunakan konsep entitas, atribut dan hubungan antar entitas. Beberapa jenis model data berbasis objek yang umum adalah: - entity-relationship - semantic - functional - object-oriented 2. Model Data Berbasis Record Pada model data berbasis record, basis data terdiri dari sejumlah record dalam bentuk yang tetap yang dapat dibedakan dari bentuknya. Ada 3 macam jenis model data berbasis record yaitu: - model data relasional (relational) - model data hierarkhi (hierarchical) - model data jaringan (network) Fungsi DBMS Layanan-layanan yang sebaiknya disediakan oleh DataBase Management System adalah: 1. Penyimpanan, pengambilan dan perubahan data Sebuah DBMS harus menyediakan kemampuan menyimpan, mengambil dan merubah data dalam basis data. 2. Katalog yang dapat diakses pemakai Menyediakan sebuah katalog yang berisi deskripsi item data yang disimpan dan diakses oleh pemakai. 3. Mendukung Transaksi Menyediakan mekanisme yang akan menjamin semua perubahan yang berhubungan dengan transaksi yang sudah ada atau yang akan dibuat. Suzan Agustri 13 Sistem Basis Data Lingkungan Basis Data 4. Melayani kontrol concurrency Sebuah DBMS harus menyediakan mekanisme yang menjamin basis data ter-update secara benar pada saat beberapa pemakai melakukan perubahan terhadap basis data yang sama secara bersamaan. 5. Melayani recovery Menyediakan mekanisme untuk mengembalikan basis data ke keadaan sebelum terjadinya kerusakan pada basis data tersebut. 6. Melayani autorisasi Sebuah DBMS harus menyediakan mekanisme untuk menjamin bahwa hanya pemakai yang berwenang saja yang dapat mengakses basis data. 7. Mendukung komunikasi data Sebuah DBMS harus mampu terintegrasi dengan software komunikasi. 8. Melayani integrity Sebuah DBMS bertujuan untuk menjamin semua data dalam basis data dan setiap terjadi perubahan data harus sesuai dengan aturan yang berlaku. 9. Melayani data independence Sebuah DBMS harus mencakup fasilitas untuk mendukung kemandirian program dari struktur basis data yang sesungguhnya. 10. Melayani utility Sebuah DBMS sebaiknya menyediakan kumpulan layanan utility. Suzan Agustri 14 Sistem Basis Data Lingkungan Basis Data KOMPONEN DBMS Programmers Users DBA Application Programs Queries Database Schema DBMS DML Preprocessor Query Processor DDL Compiler Program Object Code Database Manager Dictionary Manager Access Method File Manager System Buffer Database dan Data Dictionary Gambar 2. Komponen DBMS 1. Query Processsor Komponen yang merubah bentuk query ke dalam instruksi tingkat rendah ke database manager 2. Database Manager Database manager menerima query dan menguji skema eksternal dan konseptual untuk menentukan apakah record dibutuhkan untuk memenuhi permintaan. Kemudian DM memanggil file manager untuk menyelesaikan permintaan 3. File Manager Memanipulasi penyimpanan file dan mengatur alokasi ruang penyimpanan pada disk. Suzan Agustri 15 Sistem Basis Data Lingkungan Basis Data 4. DML Preprocessor Modul yang merubah perintah DML embedded ke dalam program aplikasi dalam bentuk fungsi-fungsi yang memanggil dalam host language. 5. DDL Compiler Merubah perintah DDL menjadi kumpulan tabel yang berisi metadata. 6. Dictionary Manager Mengatur akses dan memelihara data dictionary. Data dictionary diakses oleh komponen DBMS yang lain. Program Object Code Database Manager Integrity Checker Data Manager Access Method System Buffer Query Processor Dictionary Manager Authorization Control Command Processor Query Optimizer Transaction Manager Scheduler Buffer Manager Recovery Manager File Manager Database dan Data Dictionary Gambar 3. Komponen Software Utama Database Manager Suzan Agustri 16 Sistem Basis Data Lingkungan Basis Data Komponen software utama database manager adalah 1. Authorization Control Modul yang memeriksa apakah pemakai mempunyai wewenang untuk menyelesaikan operasi 2. Command Processor Memeriksa apakah pemakai mempunyai wewenang untuk menyelesaikan operasi 3. Integrity Checker Untuk semua operasi yang merubah basis data, integrity checker memeriksa operasi yang diminta memerlukan batasan integritas. 4. Query Optimizer Modul ini menentukan strategi yang optimal untuk eksekusi query 5. Transaction Manager Modul ini mengerjakan proses-proses yang dibutuhkan operasi yang diterima transaksi 6. Scheduler Modul ini bertanggung jawab untuk menjamin operasi secara bersamaan terhadap basis data sehingga berjalan tanpa ada masalah antara yang satu dengan yang lain. 7. Recovery Manager Modul ini menjamin basis data tetap konsisten walaupun terjadi kerusakan. 8. Buffer Manager Modul ini bertanggung jawab terhadap pemindahan data antara main memory dan secondary storage, seperti disk dan tape. Suzan Agustri 17 Sistem Basis Data Lingkungan Basis Data ARSITEKTUR DBMS MULTI USER Teleprocessing Arsitektur tradisional untuk sistem multi user adalah teleprocessing, dimana satu komputer dengan sebuah CPU dan sejumlah terminal seperti pada gambar di bawah ini. IBM Compatible Gambar 4. Arsitektur Teleprocessing Semua pemrosesan dikerjakan dalam batasan fisik komputer yang sama. Terminal untuk pemakai berjenis 'dumb', yang tidak dapat berfungsi sendiri dan masing-masing dihubungkan ke komputer pusat. Terminal-terminal tersebut mengirimkan pesan melalui subsistem pengontrol komunikasi pada sistem operasi ke program aplikasi, yang bergantian menggunakan layanan DBMS. Dengan cara yang sama, pesan dikembalikan ke terminal pemakai. Arsitektur ini menempatkan beban yang besar pada komputer pusat yang tidak hanya menjalankan program aplikasi tetapi juga harus menyelesaikan sejumlah pekerjaan pada terminal seperti format data untuk tampilan di monitor. Suzan Agustri 18 Sistem Basis Data Lingkungan Basis Data File-Server Proses didistribusikan ke dalam jaringan sejenis LAN (Local Area Network). File server mengendalikan file yang diperlukan oleh aplikasi dan DBMS. Meskipun aplikasi dan DBMS dijalankan pada masing-masing workstation tetapi tetap meminta file dari file server jika diperlukan (perhatikan Gambar di halaman berikut ini). Workstation2 Workstation1 Workstation3 LAN request for data files returned Database file server Gambar 5. Arsitektur File Server Dengan cara ini, file server berfungsi sebagai sebuah hard disk yang digunakan secara bersamaan. Kerugian arsitektur file-server adalah: - Terdapat lalulintas jaringan yang besar - Masing-masing workstation membutuhkan copy DBMS - Kontrol terhadap concurrency, recovery dan integrity menjadi lebih kompleks karena sejumlah DBMS mengakses file secara bersamaan Suzan Agustri 19 Sistem Basis Data Lingkungan Basis Data Client Server Untuk mengatasi kelemahan arsitektur-arsitektur di atas maka dikembangkan arsitektur clientserver. Client-server menunjukkan cara komponen software berinteraksi dalam bentuk sistem. Sesuai dengan namanya, ada sebuah pemroses client yang membutuhkan sumber dan sebuah server yang menyediakan sumbernya. Tidak ada kebutuhan client dan server yang harus diletakkan pada mesin yang sama. Secara ringkas, umumnya server diletakkan pada satu sisi dalam LAN dan client pada sisi yang lain. Client 2 client 1 Client 3 LAN request for data selected data returned Database server (with DBMS) Gambar 6. Arsitektur Client Server Dalam konteks basis data, client mengatur interface berfungsi sebagai workstation tempat menjalankan aplikasi basis data. Client menerima permintaan pemakai, memeriksa sintaks dan generate kebutuhan basis data dalam SQL atau bahasa yang lain. Kemudian meneruskan pesan ke server, menunggu response dan bentuk response untuk pemakai akhir. Server menerima dan memproses permintaan basis data kemudian mengembalikan hasil ke client. Proses-proses ini melibatkan pemeriksaan autorisasi, jaminan integritas, pemeliharaan data dictionary dan mengerjakan query serta proses update. Selain itu juga menyediakan kontrol terhadap concurrency dan recovery. Suzan Agustri 20 Sistem Basis Data Lingkungan Basis Data Ada beberapa keuntungan jenis arsitektur ini adalah: • Memungkinkan akses basis data yang besar • Menaikkan kinerja • Jika client dan server diletakkan pada komputer yang berbeda kemudian CPU yang berbeda dapat memproses aplikasi secara paralel. Hal ini mempermudah merubah mesin server jika hanya memproses basis data. • Biaya untuk hardware dapat dikurangi • Hanya server yang membutuhkan storage dan kekuatan proses yang cukup untuk menyimpan dan mengatur basis data • Biaya komunikasi berkurang • Aplikasi menyelesaikan bagian operasi pada client dan mengirimkan hanya bagian yang dibutuhkan untuk akses basis data melewati jaringan, menghasilkan data yang sedikit yang akan dikirim melewati jaringan • Meningkatkan kekonsistenan • Server dapat menangani pemeriksaan integrity sehingga batasan perlu didefinisikan dan validasi hanya di satu tempat, aplikasi program mengerjakan pemeriksaan sendiri • Map ke arsitektur open-system dengan sangat alami Berikut ini adalah ringkasan fungsi client-server Client Mengatur user interface Menerima dan memeriksa sintaks input dari pemakai Memproses aplikasi Generate permintaan basis data dan memindahkannya ke server Memberikan response balik kepada pemakai Server Menerima dan memproses basis data yang diminta dari client Memeriksa autorisasi Menjamin tidak terjadi pelanggaran terhadap integrity constraint Melakukan query/pemrosesan update dan memindahkan response ke client Memelihara data dictionary Menyediakan akses basis data secara bersamaan Menyediakan kontrol recovery DATA DICTIONARY Data dictionary adalah tempat penyimpanan informasi yang menggambarkan data dalam basis data. Data dictionary biasa disebut juga dengan metadata atau data mengenai data. Modul pengontrol otorisasi menggunakan data dictionary untuk memeriksa apakah seorang pemakai perlu mempunyai wewenang. Untuk mengerjakan pemeriksaan tersebut data dictionary menyimpan: • nama-nama pemakai yang mempunyai wewenang untuk menggunakan DBMS Suzan Agustri 21 Sistem Basis Data Lingkungan Basis Data • nama-nama data item yang ada dalam basis data • data item yang dapat diakses oleh pemakai dan jenis akses yang diizinkan, misalnya: insert, update, delete atau read Sedangkan untuk memeriksa integritas data, data dictionary menyimpan: • nama-nama data item dalam basis data • jenis dan ukuran data item • batasan untuk masing-masing data item Sistem data dictionary dapat dibedakan atas sistem aktif dan pasif. Sistem aktif selalu konsisten dengan struktur basis data karena secara otomatis dikerjakan oleh sistem. Sebaliknya, sistem pasif tidak konsisten terhadap perubahan basis data yang dilakukan oleh pemakai. Suzan Agustri 22 Sistem Basis Data Model Data Relasional MODEL DATA RELASIONAL PENGERTIAN BASIS DATA RELASIONAL Pada model relasional, basis data akan "disebar" atau dipilah-pilah ke dalam berbagai tabel dua dimensi. Setiap tabel selalu terdiri atas lajur mendatar yang disebut baris data (row/record) dan lajur vertikal yang biasa disebut dengan kolom (column/field). Contoh Tabel dan keterhubungannya: MHS NPM Nama Alamat 10296832 Natawiangga Palembang 10296126 Anisa Palembang 31296500 Fatahillah Lampung 41296525 Farah Semarang 50096487 Nadya Bogor 21196353 Andre Semarang MKUL KDMK MTKULIAH SKS KK021 P. Basis Data 2 KD132 SIM 3 KU122 Pancasila 2 NILAI NPM KDMK MID FINAL 10296832 KK021 60 75 10296126 KD132 70 90 31296500 KK021 55 40 41296525 KU122 90 80 21196353 KU122 75 75 50095487 KD132 80 0 10296832 KD132 40 30 Suzan Agustri 23 Sistem Basis Data • Model Data Relasional Keuntungan Basis Data Relasional 1. Bentuknya sederhana 2. Mudah melakukan berbagai operasi data • Istilah dalam Basis Data Relasional: Relasi Relasi merupakan sebuah tabel yang terdiri dari beberapa kolom dan beberapa baris. Relasi menunjukkan adanya hubungan diantara sejumlah entitas yang berasal dari himpunan entitas yang berbeda. Entitas merupakan individu yang mewakili sesuatu yang nyata dan dapat dibedakan dengan yang lainnya. Atribut Atribut merupakan kolom pada sebuah relasi. Setiap entitas pasti memiliki aribut yang mendeskripsikan karakter dari entitas tersebut. Penentuan atau pemilihan atribut-atribut yang relevan bagi sebuah entitas merupakan hal penting dalam pembentukan model data. Tuple Tuple merupakan baris pada sebuah relasi atau kumpulan elemen-elemen yang saling berkaitan menginformasikan tentang suatu entitas secara lengkap. Satu record mewakili satu data atau informasi tentang seseorang, misalnya: NPM, nama mahasiswa, alamat, kota, dan lain-lainl. Domain Kumpulan nilai yang valid untuk satu atau lebih atribut Derajat (degree) Jumlah atribut dalam sebuah relasi Cardinality Jumlah tuple dalam sebuah relasi Suzan Agustri 24 Sistem Basis Data Model Data Relasional atribut MHS NPM Relasi Nama Alamat 10296832 Natawiangga Palembang 10296126 Anisa Palembang 31296500 Fatahillah Lampung 41296525 Farah Semarang 50096487 Nadya Bogor 21196353 Andre Semarang Baris Domain Derajat (Degree) RELATIONAL KEY Super key Satu atribut/kumpulan atribut yang secara unik mengidentifikasi sebuah tuple di dalam relasi Candidate key Suatu atribut atau satu set minimal atribut yang mengidentifikasikan secara unik suatu kejadian spesifik dari entitas. Atribut di dalam relasi yang biasanya mempunyai nilai unik. Satu set minimal dari atribut menyatakan secara tak langsung dimana kita tidak dapat membuang beberapa atribut dalam set tanpa merusak kepemilikan yang unik. Primary key Merupakan satu atribut atau satu set minimal atribut yang tidak hanya mengidentifikasikan secara unik suatu kejadian spesifik, tapi juga dapat mewakili setiap Suzan Agustri 25 Sistem Basis Data Model Data Relasional kejadian dari suatu entitas. Candidate key yang dipilih untuk mengidentifikasikan tuple secara unik dalam relasi. Setiap kunci candidate key punya peluang menjadi primary key, tetapi sebaiknya dipilih satu saja yang dapat mewakili secara menyeluruh terhadap entitas yang ada. Alternate key Merupakan candidate key yang tidak dipakai sebagai primary key atau Candidate Key yang tidak dipilih sebagai primary key. Foreign key (Kunci Tamu) Atribut dengan domain yang sama yang menjadi kunci utama pada sebuah relasi tetapi pada relasi lain atribut tersebut hanya sebagai atribut biasa. Kunci tamu ditempatkan pada entitas anak dan sama dengan primary key induk direlasikan. Alternate key Candidate key Primary key MHS NPM Nama Alamat 10296832 Natawiangga Palembang 10296126 Anisa Palembang 31296500 Fatahillah Lampung 41296525 Farah Semarang 50096487 Nadya Bogor 21196353 Andre Semarang Relational Integrity Rules 1. Null Nilai suatu atribut yang tidak diketahui dan tidak cocok untuk baris (tuple) tersebut. Nilai (konstanta) Null digunakan untuk menyatakan/mengisi atribut-atribut yang nilainya memang belum siap/tidak ada. Suzan Agustri 26 Sistem Basis Data Model Data Relasional 2. Entity Integrity Tidak ada satu komponen primary key yang bernilai null. 3. Referential Integrity Suatu domain dapat dipakai sebagai kunci primer bila merupakan atribut tunggal pada domain yang bersangkutan. BAHASA PADA BASIS DATA RELATIONAL Menggunakan bahasa query → pernyataan yang diajukan untuk mengambil informasi. Bahasa Query (Query Language) lebih ditekankan pada aspek pencarian data dari dalam tabel. Aspek pencarian ini sedemikian penting karena merupakan inti dari upaya untuk pengelolaan data. Bahasa query terbagi 2: 1. Bahasa Formal Bahasa query yang diterjemahkan dengan menggunakan simbol-simbol matematis. Contoh : • Aljabar Relasional Bahasa query prosedural → pemakai menspesifikasikan data apa yang dibutuhkan dan bagaimana untuk mendapatkannya. • Kalkulus Relasional Bahasa query non-prosedural → pemakai menspesifikasikan data apa yang dibutuhkan tanpa menspesifikasikan bagaimana untuk mendapatkannya. Terbagi 2: 1. Kalkulus Relasional Tuple 2. Kalkulus Relasional Domain 2. Bahasa Komersial Bahasa Query yang dirancang sendiri oleh programmer menjadi suatu program aplikasi agar pemakai lebih mudah menggunakannya (user friendly). Contoh: • QUEL Berbasis pada bahasa kalkulus relasional Suzan Agustri 27 Sistem Basis Data Model Data Relasional • QBE Berbasis pada bahasa kalkulus relasional • SQL Berbasis pada bahasa kalkulus relasional dan aljabar relasional • Contoh-contoh Basis Data Relasional: - DB2 → IBM - ORACLE → Oracle - SYBASE → Powersoft - INFORMIX → Informix - Microsoft Access → Microsoft Suzan Agustri 28 Sistem Basis Data Structured Query Language STRUCTURED QUERY LANGUAGE Structured Query Language (SQL) merupakan komponen bahasa relational database system. SQL merupakan bahasa baku (ANSI/SQL), non procedural, dan berorientasi himpunan (set-oriented language). SQL dapat digunakan baik secara interaktif atau ditempelkan (embedded) pada sebuah program aplikasi. Komponen-Komponen SQL a. Data Definition Language (DDL): Digunakan untuk mendefinisikan data dengan menggunakan perintah: create, drop, alter. b. Data Manipulation Language (DML): Digunakan untuk memanipulasi data dengan menggunakan perintah: select, insert, update, delete. Data Manipulation Language merupakan bagian terpadu bahasa SQL. Perintahperintahnya dapat dibuat secara interaktif atau ditempelkan pada sebuah program aplikasi. Pemakai hanya perlu menentukan 'APA' yang ia inginkan, DBMS menentukan 'BAGAIMANA' cara mendapatkannya. c. Data Control Language (DCL): Digunakan untuk mengontrol hak para pemakai data dengan perintah: grant, revoke SQL STRUCTURED QUERY LANGUAGE DEFINITION Suzan Agustri MANIPULATION CONTROL DDL DML DCL CREATE DROP ALTER SELECT INSERT UPDATE DELETE GRANT REVOKE 29 Sistem Basis Data Structured Query Language DATA DEFINITION LANGUAGE 1. CREATE TABLE Fungsi: membuat tabel Sintaks: CREATE TABLE tbname (col 1 data type data spec, col 2 data type data spec, . . PRIMARY KEY (col1,……)) Contoh: CREATE TABLE PERSONEL (REGNO CHAR(10) NOT NULL, NAME CHAR(45) NOT NULL, ADDRESS CHAR(45), BIRTH DATE NOT NULL WITH DEFAULT, PRIMARY KEY (REGNO)) NULL Spesifikasi NULL, NOT NULL, NOT NULL WITH DEFAULT NULL: dapat diinterpretasikan sebagai nilai yang tidak diketahui atau tidak tersedianya suatu nilai. Null bukan berarti kosong (blank) atau 0 (Nol) NOT NULL: pemakai atau program harus memberikan nilai-nilai pada saat memasukkan record NOT NULL WITH DEFAULT: nilai default disimpan pada saat record dimasukkan tanpa nilai yang ditentukan untuk kolom ini. Suzan Agustri 30 Sistem Basis Data Structured Query Language Nilai default-nya: Nol untuk tipe field NUMERIC Blank untuk tipe field CHARACTER Current date untuk tipe field DATE Current time untuk tipe field TIME Pada saat membuat tabel, salah satu atribut tersebut di atas dispesifikasikan pada sebuah kolom. 2. CREATE VIEW Fungsi: membuat tabel view. View merupakan bentuk alternatif penyajian data dari satu atau lebih tabel. View dapat berisi semua atau sebagian kolom yang terdapat pada tabel dimana kolom tersebut didefinisikan. Tujuan membuat view: Meningkatkan keamanan data Meningkatkan kemandirian data Penyederhanaan bagi end user (data yang sedikit, nama-nama kolom yang baru dan dapat dibaca dengan lebih baik) Properti: Tidak terdapatnya data tambahan View mencakup subset kolom dan/atau baris View dapat berisikan data dari beberapa tabel dan/atau tabel-tabel view lainnya View dapat berisikan perolehan data, misal: nilai rata-rata Manipulasi data melalui view terbatas Sintaks: CREATE VIEW viewname (column1, column2, ……..) AS SELECT statement FROM tbname [WITH CHECK OPTION] Keterangan: View-name : nama view yang akan dibuat. Column : nama atribut untuk view Statement : atribut yang dipilih dari tabel basis data. Table-name : nama tabel basis data. Suzan Agustri 31 Sistem Basis Data Structured Query Language Contoh: CREATE VIEW VPERSON (REGNO, NAME) AS SELECT REGNO, NAME FROM PAUL.PERSONEL 3. CREATE INDEX Fungsi: membuat index Sintaks: CREATE [UNIQUE] INDEX indexname ON nama_table (nama_kolom) Contoh: CREATE UNIQUE INDEX PRSONIDX ON PERSONEL(REGNO) Dengan indeks memungkinkan suatu tabel diakses dengan urutan tertentu tanpa harus merubah urutan fisik dari datanya dan dapat pula diakses secara cepat melalui indeks yang dibuat berdasar nilai field tertentu. Spesifikasi UNIQUE akan menolak key yang sama dalam file. 4. DROP TABLE Fungsi: menghapus tabel Sintaks: DROP TABLE tbname Contoh: DROP TABLE PERSONEL Dengan perintah itu obyek lain yang berhubungan dengan tabel tersebut otomatis akan dihapus atau tidak akan berfungsi seperti: - semua record dalam tabel akan terhapus - index dan view pada tabel akan hilang - deskripsi tabel akan hilang 5. DROP VIEW Fungsi: menghapus view Sintaks: DROP VIEW viewname Contoh: Suzan Agustri DROP VIEW VPERSON 32 Sistem Basis Data Structured Query Language 6. DROP INDEX Fungsi: menghapus index Sintaks: DROP INDEX indexname Contoh: DROP INDEX PRSONIDX 7. ALTER Fungsi: merubah atribut pada suatu tabel Sintaks: Contoh: ALTER TABLE tbname MODIFY (nama_kolom tipe_kolom) ADD (nama_kolom tipe_kolom [[before, nama_kolom]]) DROP (nama_kolom tipe_kolom) merubah Tabel TABX dengan menambah Field D. ALTER TABLE TABX ADD D CHAR(3) DATA MANIPULATION LANGUAGE 1. INSERT Fungsi: menambah baris (record) baru Sintaks: INSERT INTO tbname (col1, ...) VALUES (value1, ...) Catatan: Sintaks tersebut dapat digunakan jika jumlah kolom = jumlah nilai, tetapi jika dalam tabel semua kolom akan diisi dapat digunakan sintaks berikut ini: Sintaks: INSERT INTO tbname VALUES (value1, value2, ...) Nilai-nilai diisikan sebanyak kolom yang terdapat di tabel tersebut. Suzan Agustri 33 Sistem Basis Data Structured Query Language 2. UPDATE Fungsi: merubah record Sintaks: UPDATE tbname SET field = ekspresi WHERE kondisi 3. DELETE Fungsi: menghapus record Sintaks: DELETE FROM tbname WHERE kondisi 4. SELECT Fungsi: menampilkan record Sintaks: SELECT [DISTINCT] colname FROM tbname [WHERE kondisi] [GROUP BY kondisi] [HAVING kondisi] [ORDER BY kondisi] Contoh Kasus DDL: Membuat Tabel (CREATE TABLE) 1. 2. Suzan Agustri CREATE TABLE S (Sn Char(5) NOT NULL, Sname Char(20) NOT NULL, Status Smallint NOT NULL, City Char(15) NOT NULL); (Pn Char(6) NOT NULL, Pname Char(20) NOT NULL, Color Char(6) NOT NULL, Weight Smallint NOT NULL); CREATE TABLE P 34 Sistem Basis Data 3. Structured Query Language CREATE TABLE SP 4. (Sn Char(5) NOT NULL, Pn Char(6) NOT NULL, QTY INTEGER NOT NULL); CREATE UNIQUE INDEX Sidx ON S(Sn); CREATE UNIQUE INDEX Pidx ON P(Pn); CREATE INDEX Sdx ON SP(Sn); CREATE INDEX Pdx ON SP(Pn); Modifikasi Table P dengan perintah: RENAME COLUMN P.COLOR TO WARNA ALTER TABLE P ADD (City CHAR(15) NOT NULL) Membuat View (CREATE VIEW) 1. Membuat view untuk supplier yang statusnya lebih besar dari 15 CREATE VIEW GOOD_SUPPLIERS AS SELECT Sn, Status, City FROM S WHERE Status > 15; 2. Membuat view yang berisi supplier yang tinggal di Paris CREATE VIEW Paris_Suppliers AS SELECT * FROM Supliers WHERE City = ' Paris ' 3. Membuat view dengan mengganti nama_atributnya CREATE VIEW Parts (PNum, Part_Name, WT) AS SELECT P#, Pname, Weight FROM Part WHERE COLOR = 'Red' Suzan Agustri 35 Sistem Basis Data Structured Query Language Contoh Kasus DML: Menambah record (INSERT) INSERT INTO S VALUES ('S1','Smith',20,'London'); INSERT INTO S VALUES ('S2','Jones,10,'Paris'); INSERT INTO S VALUES ('S3','Blake',30,'Paris') Tabel S, P dan SP isikan dengan data-data sebagai berikut: TABEL S Sn Sname Status City S1 Smith 20 London S2 Jones 10 Paris S3 Blake 30 Paris S4 Clark 20 London S5 Adams 30 Athens TABEL P Pn Pname Color Weight City P1 Nut Red 12 London P2 Bolt Green 17 Paris P3 Screw Blue 17 Rome P4 Screw Red 14 London P5 Cam Blue 12 Paris P6 Cog Red 19 London Suzan Agustri 36 Sistem Basis Data Structured Query Language TABEL SP Sn Pn qty S1 P1 300 S1 P2 200 S1 P 40 S1 P4 200 S1 P5 100 S1 P6 100 S2 P1 300 S2 P2 400 S3 P2 200 S4 P2 200 S4 P4 300 S4 P5 400 Merubah record (UPDATE) 1. Merubah data (record) pada tabel P yang mempunyai nomor part P2, warnanya dirubah menjadi Kuning dan beratnya ditambah 5 UPDATE P SET Color = 'Yellow', Weight = Weight + 5 WHERE Pn = 'P2' 2. Merubah record pada tabel S, statusnya menjadi dua kali status awal untuk supplier yang bertempat tinggal di kota London UPDATE S SET Status = 2 * Status WHERE City = 'London' Suzan Agustri 37 Sistem Basis Data Structured Query Language Menghapus record (DELETE) Menghapus record pada tabel S yang nomor supplier-nya S5 DELETE FROM S WHERE Sn ='S5' Menampilkan record (SELECT 1 tabel) 1. Menampilkan semua data supplier SELECT * FROM S atau SELECT Sn, Sname, Status, City FROM S 2. Menampilkan semua nilai Pn pada tabel SP SELECT Pn FROM SP 3. Menampilkan nomor supplier dan status untuk supplier yang tinggal di Paris SELECT Sn, Status FROM S WHERE City ='Paris' 4. Menampilkan no.supplier yang tinggal di Paris dengan status > 20 SELECT Sn FROM S WHERE City ='Paris" AND Status > 20 5. Menampilkan jumlah pengiriman P1 SELECT COUNT(*) FROM SP WHERE Pn = 'P1' 6. Perintah untuk menghindari hasil data yang sama terulang kembali (distinct) SELECT DISTINCT Pn FROM SP Suzan Agustri 38 Sistem Basis Data 7. Structured Query Language Menampilkan no.supplier dan status bagi supplier yang tinggal di Paris dalam urutan status menurun SELECT Sn,Status FROM S WHERE City = 'Paris' ORDER BY Status desc 8. Menampilkan no.Part dari semua part yang dipasok oleh lebih dari seorang supplier SELECT Pn FROM SP GROUP BY Pn HAVING COUNT(*) > 1 9. Menampilkan semua part yang nomornya dimulai dengan huruf C SELECT * FROM P WHERE Pname LIKE 'C%' Menampilkan record (SELECT lebih dari satu tabel/JOIN) 1. Menampilkan semua supplier dan part yang keduanya bertempat tinggal pada kota yang sama SELECT Sn, Sname,S tatus, S.City , Pn, Pname, Warna, Weight FROM S,P WHERE S.City = P.City 2. Menampilkan nama supplier yang memasok barang dengan nomor part P2 SELECT Sname FROM S, SP WHERE S.Sn = SP.Sn AND SP.Pn = 'P2' 3. Menampilkan nama supplier yang memasok part berwarna merah SELECT Sname FROM S, SP, P WHERE S.Sn = SP.Sn AND SP.Pn = P.Pn AND P.COLOR = 'RED' Suzan Agustri 39 Sistem Basis Data Structured Query Language Menampilkan record (SELECT lebih dari satu tabel/SELECT Bertingkat) 1. Menampilkan nama supplier yang memasok barang dengan nomor part P2 SELECT Sname FROM S WHERE Sn IN (SELECT Sn FROM SP WHERE Pn = 'P2') atau SELECT Sname FROM S WHERE Sn = ANY (SELECT Sn FROM SP WHERE Pn = 'P2') 2. Menampilkan nama supplier yang memasok part berwarna merah SELECT Sname FROM S WHERE Sn IN (SELECT Sn FROM SP WHERE Pn IN (SELECT Pn FROM P WHERE Warna = 'Red')) 3. Menampilkan no.supplier dengan nilai status lebih kecil daripada nilai maksimum status yang ada pada tabel S SELECT Sn FROM S WHERE Status < (SELECT MAX(Status) FROM S) 4. Menampilkan nama supplier yang tidak memasok barang dengan nomor part P2 SELECT Sname FROM S WHERE Sn NOT IN (SELECT Sn FROM SP WHERE Pn = 'P2') 5. Menampilkan semua nomor supplier yang sama lokasinya dengan S1 SELECT Sn FROM S WHERE CITY = (SELECT CITY FROM S WHERE Sn = 'S1') Fungsi Perhitungan COUNT : jumlah baris dan kolom SUM : jumlah nilai dam kolom AVG : rata-rata nilai dalam kolom MAX : nilai terbesar dalam kolom Suzan Agustri 40 Sistem Basis Data MIN Structured Query Language : nilai terkecil dalam kolom Untuk SUM dan AVG nilainya harus numerik (INT, SMALLINT, FLOAT). Fungsi-fungsi tersebut jika dikenakan pada nilai yang NULL maka nilainya akan diabaikan kecuali untuk COUNT(*) 1. Menghitung jumlah supplier SELECT COUNT(*) FROM S atau SELECT COUNT (Sn) FROM S 2. Menampilkan nomor part dan total kuantitas pengiriman dari setiap part SELECT Pn, SUM(QTY) FROM SP GROUP BY Pn 3. Menghitung jumlah kuantitas dari P2 yang telah di-supply SELECT SUM (QTY) FROM SP WHERE Pn = 'P2' 4. Menampilkan jumlah pengiriman barang dengan nomor P4 dan dipasok oleh nomor suppplier S1 SELECT COUNT(*) FROM SP WHERE Pn = 'P4' AND Sn = 'S1' 5. Menampilkan nomor part dan total kuantitas dari masing-masing part SELECT Pn, SUM(QTY) FROM SP GROUP BY P3 Suzan Agustri 41 Sistem Basis Data Structured Query Language DATA CONTROL LANGUAGE 1. GRANT Fungsi: digunakan untuk memberikan izin akses kepada user Sintaks: GRANT privileges ON tbname TO user Contoh: GRANT SELECT ON CLUB TO PUBLIC GRANT SELECT, INSERT, UPDATE, DELETE ON CLUB TO USER01 2. REVOKE Fungsi: digunakan untuk mencabut izin akses kepada user Sintaks: REVOKE privileges ON tbname FROM user Contoh : REVOKE INSERT, UPDATE, DELETE ON CLUB FROM USER01 REVOKE ALL ON CLUB FROM PUBLIC Suzan Agustri 42 Sistem Basis Data Entity Relationship Diagram ENTITY RELATIONSHIP DIAGRAM Model Entity Relationship Suatu penyajian data dengan menggunakan Entity dan Relationship Entity Obyek yang dapat dibedakan dalam dunia nyata Entity set Kumpulan dari entity yang sejenis Berupa: - Obyek secara fisik: Rumah, Kendaraan, Peralatan - Obyek secara konsep: Pekerjaan, Perusahaan, Rencana Relationship Hubungan yang terjadi antara satu atau lebih entity Relationship set Kumpulan relationship yang sejenis. PEGAWAI KERJA PROYEK Atribut Karakteristik dari entity atau relationship, yang menyediakan penjelasan detail tentang entity atau relationship tersebut. Nilai Atribut Suatu data aktual atau informasi yang disimpan pada suatu atribut di dalam suatu entity atau relationship. Suzan Agustri 43 Sistem Basis Data Entity Relationship Diagram JENIS-JENIS ATRIBUT Key Atribut yang digunakan untuk menentukan suatu entity secara unik. Atribut Simple Atribut yang bernilai tunggal. Atribut Multivalue Atribut yang memiliki sekelompok nilai untuk setiap instan entity. TglLahir Gelar Nama NIP PEGAWAI Atribut Composite Suatu atribut yang terdiri dari beberapa atribut yang lebih kecil yang mempunyai arti tertentu. Nama Depan Nama Tengah Nama Belakang NAMA PEGAWAI Suzan Agustri 44 Sistem Basis Data - Entity Relationship Diagram Atribut Derivatif Suatu atribut yang dihasilkan dari atribut yang lain. TglLahir Umur PEGAWAI DERAJAT DARI RELATIONSHIP Menjelaskan jumlah entity yang berpartisipasi dalam suatu relationship Unary Degree (Derajat Satu) PEGAWAI Binary Degree (Derajat Dua) PEGAWAI LAPOR KERJA DEPARTEMEN Ternary Degree (Derajat Tiga) PEGAWAI KERJA DEPARTEMEN PROYEK Suzan Agustri 45 Sistem Basis Data Entity Relationship Diagram Cardinality Ratio Constraint Menjelaskan batasan jumlah keterhubungan satu entity dengan entity lainnya. Jenis Cardinality Ratio 1:1 Pegawai Milik Kendaraan r1 P1 k1 r2 p2 k2 r3 p3 . . k3 . 1 PEGAWAI 1 MILIK KENDARAAN AI 1:M / M:1 Pegawai Kerja Departemen r1 P1 r2 r3 r4 p2 p3 p4 . Suzan Agustri d2 d3 . . M PEGAWAI d1 1 KERJA DEPARTEMEN 46 Sistem Basis Data Entity Relationship Diagram M:N Pegawai Kerja Proyek r1 P1 r2 r3 r4 p2 p3 . pr1 pr2 pr3 . . M PEGAWAI N KERJA PROYEK PARTICIPATION CONSTRAINT Menjelaskan apakah keberadaan suatu entity tergantung pada hubungannya dengan entity lain. Terdapat 2 macam Participation Constraint: Total Participation Keberadaan suatu entity tergantung pada hubungannya dengan entity lain. M PEGAWAI 1 PUNYA BAGIAN Partial Participation Keberadaan suatu entity tidak tergantung pada hubungannya dengan entity lain. M PEGAWAI Suzan Agustri 1 KERJA PROYEK 47 Sistem Basis Data Entity Relationship Diagram WEAK ENTITY Weak Entity adalah suatu Entity dimana keberadaan dari entity tersebut tergantung dari keberadaan entity lain. Entity yang merupakan induknya disebut Identifying Owner dan relationship-nya disebut Identifying Relationship. Weak Entity selalu mempunyai Total Participation constraint dengan Identifying Owner. NOPEG NAMA ……… … PEGAWAI MILIK ……… … TANGGUNGAN SIMBOL-SIMBOL ER-DIAGRAM Notasi Arti 1. 1. Entity 2. 2. Weak Entity 3. 3. Relationship 4. 4. Identifying Relationship Suzan Agustri 48 Sistem Basis Data Entity Relationship Diagram 5. 5. Atribut 6. 6. Atribut Primary Key 7. 7. Atribut Multivalue 8. 8. Atribut Composite 9. 9. Atribut Derivatif Suzan Agustri 49 Sistem Basis Data Entity Relationship Diagram Contoh Penggambaran Diagram ER : KDPOS ALM1 ALAMAT NAPEG NOPEG NOBAG BEKERJA NABAG LOKASI M 1 PEGAWAI UMUR BAGIAN 1 M TGLLHR 1 PIMPIN 1 1 1 KONTROL M SELESAIKAN MILIKI PUNYA M JAM M N PROYEK TANGGUNGAN NOPRO LOKASI NAPRO Nama JNSKEL Suzan Agustri HUB 50 Sistem Basis Data Entity Relationship Diagram TRANSFORMASI DARI ERD KE DATABASE RELASIONAL 1. Setiap tipe Entity dibuat suatu relasi yang memuat semua atribut simple, sedangkan untuk atribut composite hanya dimuat komponen-komponennya saja. NOPEG ALM1 PEGAWAI KDPOS ALAMAT PEGAWAI (NOPEG, ALM1, KDPOS, …….) 2. Setiap relasi yang mempunyai atribut multivalue, buatlah relasi baru dimana Primary Key-nya merupakan gabungan dari Primary Key dari relasi tersebut dengan atribut multivalue. NOPRO LOKASI ……… PROYEK LOKPR (NOPRO, LOKASI) 3. Setiap Unary Relationship 1:M, pada relasi perlu ditambahkan suatu foreign key yang menunjuk ke nilai primary key-nya. NOPEG ……. 1 KONTROL PEGAWAI M PEGAWAI (NOPEG, ….., SUPERVISOR-ID) Suzan Agustri 51 Sistem Basis Data 4. Entity Relationship Diagram Setiap Unary Relationship M:N, buatlah relasi baru dimana primary key-nya merupakan gabungan dari dua atribut dimana keduanya menunjuk ke primary key relasi awal dengan penamaan yang berbeda. NOBAR ……. M BARANG TERDIRI JUMLAH N KOMBAR (NOBAR, NOKOMP , JUMLAH) 5. Setiap Binary Relationship 1:1, dimana Participation Constraint keduanya total, buatlah suatu relasi gabungan dimana Primary Key-nya dapat dipilih salah satu. NOPEG …… 1 PEGAWAI …… NOPRO 1 KERJA PROYEK PEGAWAI (NOPEG, ... , NOPRO, ...) 6. Setiap Binary Relationship 1:1 dan salah satu Participation Constraint-nya Total, maka Primary Key pada relasi yang Participation Constraint-nya Partial menjadi Foreign Key pada relasi yang lainnya. NOPEG PEGAWAI NOBAG …… 1 PIMPIN …… 1 BAGIAN BAGIAN (NOBAG, ... , MANAGER) Suzan Agustri 52 Sistem Basis Data 7. Entity Relationship Diagram Setiap Binary Relationship 1:1, dimana kedua Participation Constraint-nya partial, maka selain kedua relasi perlu dibuat relasi baru yang berisi Primary Key gabungan dari Primary Key kedua tipe Entity yang berelasi. NOPEG NOPRO …… 1 PEGAWAI …… 1 KERJA PROYEK PEKERJAAN ( NOPEG, NOPRO, …) 8. Setiap Binary Relationship 1 : M, dimana tipe Entity yang bersisi M mempunyai Participation Constraint Total, maka Primary Key pada relasi yang bersisi 1 dijadikan Foreign Key pada relasi yang bersisi M. NOPRO …… NOBAG 1 BAGIAN …… M PUNYA PROYEK PROYEK (NOPRO, ... , NOBAG) 9. Setiap Binary Relationship 1 : M, dimana tipe Entity yang bersisi M mempunyai Participation Constraint partial, buatlah relasi baru dimana Primary Key-nya merupakan gabungan dari Primary Key kedua tipe Entity yang berelasi. NOPEG …… PEGAWAI NOPRO M KERJA …… 1 PROYEK PEKERJAAN (NOPEG, NOPRO, ……) Suzan Agustri 53 Sistem Basis Data Entity Relationship Diagram 10. Setiap Binary Relationship M:N, buatlah relasi baru dimana Primary Key-nya merupakan gabungan dari Primary Key kedua tipe Entity yang berelasi. NOPEG NOPRO …… PEGAWAI M KERJA …… N PROYEK PEKERJAAN (NOPEG, NOPRO, …..) 11. Setiap Ternary Relationship, buatlah relasi baru dimana Primary Key-nya merupakan gabungan dari Primary Key ketiga tipe Entity yang berelasi. NOPEG NOPRO …… KERJA PEGAWAI …… PROYEK KOTA NOKOT …… PEKERJAAN ( NOPEG, NOPRO , NOKOT) Suzan Agustri 54 Sistem Basis Data Entity Relationship Diagram 12. Setiap tipe Weak Entity, dibuat suatu relasi yang memuat semua atributnya dimana Primary Key-nya adalah gabungan dari Partial Key dan Primary Key dari relasi induknya (identifying owner). NOPEG NAMA …… PEGAWAI 1 PUNYA N …… TANGGUNGAN TANGGUNGAN (NOPEG, NAMA, ….) Hasil Transformasi dari Diagram ER ke database relasional: Skema Database: PEGAWAI (NOPEG, NAPEG, ALM1, KDPOS, TGLLAH, UMUR, SUPERVISOR-ID, NOBAG) BAGIAN (NOBAG, NABAG, LOKASI, MANAGER) PROYEK (NOPRO, NAPRO, NOBAG) LOKPR (NOPRO, LOKPR) PEKERJAAN (NOPEG, NOPRO, JAM) TANGGUNGAN (NOPEG, NAMA, JNSKEL, HUB) Suzan Agustri 55 Sistem Basis Data Normalisasi NORMALISASI Definisi Normalisasi adalah suatu teknik untuk mengorganisasi data ke dalam tabel-tabel untuk memenuhi kebutuhan pemakai di dalam suatu organisasi. Tujuan dari normalisasi Untuk menghilangkan kerangkapan data Untuk mengurangi kompleksitas Untuk mempermudah pemodifikasian data Proses Normalisasi Data diuraikan dalam bentuk tabel, selanjutnya dianalisis berdasarkan persyaratan tertentu ke beberapa tingkat. Apabila tabel yang diuji belum memenuhi persyaratan tertentu, maka tabel tersebut perlu dipecah menjadi beberapa tabel yang lebih sederhana sampai memenuhi bentuk yang optimal. Tahapan Normalisasi Bentuk Tidak Normal (UNF/Unnormarilzed Form) Menghilangkan perulangan grup Bentuk Normal Pertama (1NF/First Normalized Form) Menghilangkan ketergantungan sebagian Bentuk Normal Kedua (2NF/Second Normalized Form) Menghilangkan ketergantungan transitif Bentuk Normal Ketiga (3NF/Third Normalized Form) Menghilangkan anomali-anomali hasil dari ketergantungan fungsional Bentuk Normal Boyce-Codd (BCNF/Boyce-Codd Normalized Form) Menghilangkan Ketergantungan Multivalue Bentuk Normal Keempat (4NF/Fourth Normalized Form) Menghilangkan anomali-anomali yang tersisa Bentuk Normal Kelima Suzan Agustri 56 Sistem Basis Data Normalisasi KETERGANTUNGAN FUNGSIONAL Definisi: Atribut Y pada relasi R dikatakan tergantung fungsional pada atribut X (R.X ---> R.Y), jika dan hanya jika setiap nilai X pada relasi R mempunyai tepat satu nilai Y pada R. Misal terdapat skema database Pemasok-barang: Pemasok (No-pem, Na-pem) Tabel PEMASOK-BARANG No-pem Na-pem P01 Baharu P02 Sinar P03 Harapan Ketergantungan fungsional dari tabel PEMASOK-BARANG adalah: No-pem ---> Na-pem Ketergantungan Fungsional Penuh Definisi: Atribut Y pada relasi R dikatakan tergantung fungsional penuh pada atribut X pada relasi R, jika Y tidak tergantung pada subset dari X ( bila X adalah key gabungan) Contoh: Tabel KIRIM-BARANG (No-pem, Na-pem, No-bar, Jumlah) No-pem Na-pem No-bar Jumlah P01 Baharu B01 1000 P01 Baharu B02 1500 P01 Baharu B03 2000 P02 Sinar B03 1000 P03 Harapan B02 2000 Ketergantungan fungsional: No-pem Na-pem No-bar, No-pem Jumlah (Tergantung penuh terhadap key-nya) Suzan Agustri 57 Sistem Basis Data Normalisasi Ketergantungan Transitif Definisi: Atribut Z pada relasi R dikatakan tergantung transitif pada atribut X, jika atribut Y tergantung pada atribut X pada relasi R dan atribut Z tergantung pada atribut Y pada relasi R. ( X Y, Y Z, maka X Z ) Contoh: No-pem Kode-kota P01 1 P01 Kota No-bar Jumlah Jakarta B01 1000 1 Jakarta B02 1500 P01 1 Jakarta B03 2000 P02 3 Bandung B03 1000 P03 2 Surabaya B02 2000 Ketergantungan transitif: No-pem Kode-kota Kode-kota Kota, maka No-pem Kota BENTUK NORMAL KESATU (1NF) Suatu relasi dikatakan sudah memenuhi Bentuk Normal Kesatu bila setiap data bersifat atomik yaitu setiap irisan baris dan kolom hanya mempunyai satu nilai data Tabel KIRIM-1 (UNF) No-pem Kode-kota P01 1 Kota Jakarta No-bar Jumlah B01 1000 B02 1500 B03 2000 P02 3 Bandung B03 1000 P03 2 Surabaya B02 2000 Suzan Agustri 58 Sistem Basis Data Normalisasi Tabel KIRIM-2 (1NF) No-pem Kode-kota P01 1 P01 Kota No-bar Jumlah Jakarta B01 1000 1 Jakarta B02 1500 P01 1 Jakarta B03 2000 P02 3 Bandung B03 1000 P03 2 Surabaya B02 2000 Diagram Ketergantungan Fungsional Kode-kota No-pem Kota Jumlah No-bar BENTUK NORMAL KEDUA (2NF) Suatu relasi dikatakan sudah memenuhi Bentuk Normal Kedua bila relasi tersebut sudah memenuhi bentuk Normal kesatu, dan atribut yang bukan key sudah tergantung penuh terhadap key-nya. Tabel PEMASOK-1 (2NF) No-pem Kode-kota P01 1 Jakarta P02 3 Bandung P03 2 Surabaya Suzan Agustri Kota 59 Sistem Basis Data Normalisasi Tabel KIRIM-3 No-pem No-bar Jumlah P01 B01 1000 P01 B02 1500 P01 B03 2000 P02 B03 1000 P03 B02 2000 BENTUK NORMAL KETIGA (3NF) Suatu relasi dikatakan sudah memenuhi Bentuk Normal ketiga bila relasi tersebut sudah memenuhi bentuk Normal kedua dan atribut yang bukan key tidak tergantung transitif terhadap key-nya. Tabel PEMASOK-2 (3NF) Tabel PEMASOK-3 (3NF) No-pem Kode-kota Kode-kota Kota P01 1 1 Jakarta P02 3 2 Surabaya P03 2 3 Bandung Tabel KIRIM-3 (3NF) No-pem No-bar Jumlah P01 B01 1000 P01 B02 1500 P01 B03 2000 P02 B03 1000 P03 B02 2000 Suzan Agustri 60 Sistem Basis Data Normalisasi Contoh: Normalisasi pada database perkuliahan Asumsi: Seorang mahasiswa dapat mengambil beberapa mata kuliah Satu mata kuliah dapat diambil oleh lebih dari satu mahasiswa Satu mata kuliah hanya diajarkan oleh satu dosen Satu dosen dapat mengajar beberapa mata kuliah Seorang mahasiswa pada mata kuliah tertentu hanya mempunyai satu nilai Tabel MAHASISWA-1 (UNF) No-Mhs Nama - Mhs Jurusan Kode- MK 2683 Welli MI MI350 5432 Bakri Ak. Nama-MK Kode-Dosen NamaDosen Nilai Manajamen DB B104 Ati A MI465 Analsis Prc. Sistem B317 Dita B MI350 Manajemen DB B104 Ati C AKN201 Akuntansi Keuangan D310 Lia B MKT300 Dasar Pemasaran B212 Lola A Tabel MAHASISWA-2 (1NF) Jurusan Kode-MK 2683 NamaMhs Welli MI MI350 Manajamen DB 2683 Welli MI MI465 5432 Bakri Ak. 5432 Bakri 5432 Bakri No-Mhs Suzan Agustri Nama-MK Kode-Dosen B104 NamaDosen Ati Nilai A Analsis Prc. Sistem B317 Dita B MI350 Manajemen DB B104 Ati C Ak. AKN201 Akuntansi Keuangan D310 Lia B Ak. MKT300 Dasar Pemasaran B212 Lola A 61 Sistem Basis Data Normalisasi Diagram Ketergantungan Fungsional Nama_Mhs No-Mhs Jurusan Nilai Nama-MK Kode-MK Kode-Dosen Nama-Dosen Tabel KULIAH (2NF) Nama-MK Kode-MK Kode-Dosen Nama-Dosen MI350 Manajamen DB B104 Ati MI465 Analsis Prc. Sistem B317 Dita AKN201 Akuntansi Keuangan D310 Lia MKT300 Dasar Pemasaran B212 Lola Tabel MAHASISWA-3 No-Mhs Nama-Mhs Jurusan 2683 Welli MI 5432 Bakri Ak. Suzan Agustri 62 Sistem Basis Data Normalisasi Tabel NILAI No-Mhs Nilai Kode MK 2683 MI350 A 2683 MI465 B 5432 MI350 C 5432 AKN201 B 5432 MKT300 A Tabel MATAKULIAH (3NF) Kode-MK Nama-MK Kode-Dosen MI350 Manajamen DB B104 MI465 Analsis Prc. Sistem B317 AKN201 Akuntansi Keuangan D310 MKT300 DasarPemasaran B212 Tabel DOSEN (3NF) Kode- Dosen Nama-Dosen B104 Ati B317 Dita B310 Lia B212 Lola Tabel MAHASISWA-3 (3NF) No-Mhs Nama-Mhs Jurusan 2683 Welli MI 5432 Bakri Ak. Suzan Agustri 63 Sistem Basis Data Normalisasi Tabel NILAI (3NF) No-Mhs Kode MK Nilai 2683 MI350 A 2683 MI465 B 5432 MI350 C 5432 AKN201 B 5432 MKT300 A Suzan Agustri 64 Sistem Basis Data Model Enhanced Entity Relationship MODEL ENHANCED ENTITY RELATIONSHIP Pada tahun delapan puluhan terdapat perkembangan dengan cepat beberapa aplikasi basis data baru, seperti Computer Aided Design (CAD), Computer Aided Manufacturing (CAM), Computer Aided Software Engineering (CASE) tools dan aplikasi-aplikasi multimedia. Jenis aplikasi ini lebih banyak tergantung pada kebutuhan-kebutuhan basis data dibandingkan dengan aplikasi administrasi tradisional. Konsep dasar model Entity Relationship (ER) tidak cukup untuk menggambarkan kebutuhankebutuhan yang baru, aplikasi-aplikasi yang lebih kompleks. Hal ini menimbulkan suatu kebutuhan untuk mengembangkan konsep model semantik tambahan. Ada beberapa model data semantik yang telah diajukan. Tetapi beberapa konsep semantik yang penting telah dengan sukses tergabung dalam model ER yang asli. Model ER yang didukung dengan konsep semantik tambahan disebut model Enhanced Entity Relationship (EER). Model EER berisikan seluruh konsep model ER ditambah konsepkonsep dari subclass dan superclass, dan konsep-konsep yang berhubungan yaitu specialization dan generalization. Konsep lainnya yang termasuk dalam model EER yaitu Category Pada tulisan ini hanya menggambarkan konsep utama dari model EER yang bernama specialization/generalization, dan mengilustrasikan bagaimana konsep tersebut direpresentasikan dalam model EER. Konsep specialization/generalization berhubungan dengan konsep jenis-jenis entitas yang dideskripsikan sebagai superclass atau subclass, dan proses turunan atribut. SUBCLASS DAN SUPERCLASS Dalam beberapa hal, suatu jenis entitas akan mempunyai banyak tambahan subgroup entitas yang sangat berarti dan perlu digambarkan secara nyata karena entitas-entitas tersebut penting sekali artinya bagi aplikasi basis data. Contoh: Entitas-entitas yang merupakan anggota dari entitas EMPLOYEE dikelompokkan menjadi secretary, engineer, manager, technician, salaried_employee, hourly_employee, dan lainlain. Himpunan entitas pada tiap-tiap grup adalah subset entitas dari entitas EMPLOYEE, Suzan Agustri 65 Sistem Basis Data Model Enhanced Entity Relationship yang berarti bahwa setiap entitas yang merupakan anggota dari salah satu subgroupsubgroup ini adalah suatu employee juga. Tiap-tiap subgroup tadi adalah suatu subclass dari entity EMPLOYEE, dan entity EMPLOYEE disebut superclass untuk tiap-tiap subclass tersebut. Hubungan antara superclass dan beberapa subclass-nya disebut superclass/subclass relationship. Contoh: EMPLOYEE/SECRETARY dan EMPLOYEE/TECHNICIAN adalah dua superclass/subclass relationships. Sebuah entitas tidak dapat berada dalam basis data dengan menjadi anggota suatu subclass saja, tetapi entitas tersebut juga harus merupakan anggota dari superclass. SPECIALIZATION Specialization adalah proses pendefinisian suatu himpunan subclass dari suatu entitas; entitas ini disebut superclass dari specialization. Himpunan subclass tersebut membentuk specialization yang telah didefinisikan berdasarkan beberapa sifat/karakteristik yang istimewa dari suatu entitas pada suatu superclass yang menggambarkan perbedaan yang jelas antara entitas tersebut. Contoh: himpunan subclass {SECRETARY, ENGINEER, TECHNICIAN} adalah specialization dari superclass entitas EMPLOYEE dimana perbedaan antara entitas EMPLOYEE berdasarkan pada jenis pekerjaan dari tiap-tiap entitas. Kita dapat mempunyai beberapa specialization dari jenis entitas yang sama berdasarkan perbedaan karakteristik yang istimewa. Contoh: specialization dari entitas EMPLOYEE dapat menghasilkan himpunan subclass {SALARIED_EMPLOYEE, HOURLY_EMPLOYEE}, pada specialization ini perbedaan entitas EMPLOYEE berdasarkan metode pembayarannya. GENERALIZATION Generalization adalah proses pendefinisian entitas-entitas yang disatukan menjadi entitas superclass tunggal dari entitas aslinya yang merupakan subclass istimewa. Proses generalization dapat dipandang sebagai kebalikan dari proses specialization. Suzan Agustri 66 Sistem Basis Data Model Enhanced Entity Relationship Contoh: Gambar 1. Kita dapat memandang {CAR, TRUCK} sebagai specialization dari VEHICLE, sebaliknya kita memandang VEHICLE sebagai suatu generalization dari CAR dan TRUCK. Dengan cara yang sama, kita dapat memandang EMPLOYEE sebagai generalization dari SECRETARY, TECHNICIAN, dan ENGINEER. No of passangers No Of Axles Price Price Tonnage Max speed TRUCK CAR Vehicleid Vehicleid License Plate No License Plate No Price Vehicleid License Plate No VEHICLE d No of passangers No Of Axles Tonnage Max speed CAR TRUCK Gambar 1. Generalize Superclass VEHICLE CATEGORIZATION Category adalah kebutuhan yang timbul untuk model suatu relationship superclass/subclass tunggal dengan lebih dari satu superclass dimana superclas-superclass tersebut menggambarkan jenis entity yang berbeda. Contoh: Gambar 2. Terdapat 3 jenis entitas yaitu: PERSON, BANK, dan COMPANY. Dalam suatu basis data REGISTERED_VEHICLE, pemilik kendaraan (OWNER) bisa saja perorangan, bank, atau perusahaan. Kita perlu membuat suatu class yang terdiri dari 3 jenis entitas untuk memainkan Suzan Agustri 67 Sistem Basis Data Model Enhanced Entity Relationship perannya sebagai pemilik kendaraan. Maka dibuat suatu category OWNER yaitu sebuah subclass dari gabungan (UNION) 3 class yaitu COMPANY, BANK, dan PERSON untuk kepentingan ini. BName BAddress BANK SSN SName Driver License No Address CName PERSON CAddress COMPANY U OWNER Lien or Regular OWNS Purchase Date License Plate No REGISTERED_VEHICLE U TYear TYear TMake Cmake TModel Cmodel Tonnage Cstyle CAR TRUCK Vehicleid Vehicleid Gambar 2. Category REGISTERED_VEHICLE Suzan Agustri 68 Sistem Basis Data Model Enhanced Entity Relationship Pada Gambar di atas, terdapat 2 category yaitu OWNER yang merupakan sebuah subclass dari gabungan PERSON, BANK, dan COMPANY, yang lainnya yaitu REGISTERED_VEHICLE yang merupakan subclass dari gabungan CAR dan TRUCK. Sebuah category dapat mempunyai 2 atau lebih superclass yang menggambarkan jenisjenis entitas yang berbeda, sebaliknya relationship superclass/subclass lainnya selalu memiliki superclass tunggal. Suatu category adalah subset dari gabungan superclass-nya. Oleh sebab itu suatu entitas yang merupakan anggota OWNER harus berisikan sedikitnya 1 superclass, tetapi tidak harus menjadi anggota dari seluruh superclass. Hal ini menggambarkan batasan bahwa seorang OWNER mungkin saja suatu COMPANY, sebuah BANK, atau perorangan (PERSON). Perbedaan antara dua gambar di atas (generalize superclass VEHICLE dengan category REGISTERED_VEHICLE): Pada generalize superclass VEHICLE: - Setiap mobil dan truk adalah vehicle - Jika dipisahkan, tidak dapat dihindari bahwa akan terdapat jenis entitas lain seperti entitas BICYCLE Pada category REGISTERED_VEHICLE - Terdiri dari beberapa mobil dan beberapa truk, tetapi tidak seluruh mobil dan truk yang diregistrasikan - Category registered_vehicle menyatakan hanya mobil dan truk saja, dan bukan jenis entitas lain yang dapat menjadi anggota REGISTERED_VEHICLE Suzan Agustri 69 Sistem Basis Data Proses Perancangan Basis Data PROSES PERANCANGAN BASIS DATA Seperti telah disebutkan sebelumnya, sebuah sistem basis data merupakan komponen dasar sistem informasi organisasi yang besar. Oleh karena itu siklus hidup aplikasi basis data berhubungan dengan siklus hidup sistem informasi. Berikut ini akan digambarkan langkahlangkah yang terdapat di dalam siklus hidup aplikasi basis data. Database Planning Systems Definition Requirements Collection and Analysis Database Design DBMS Selection Conceptual Design Logical Design Application Design Physical Design Implementation Prototyping Data Loading And Convertion Testing Operational Maintenance Gambar 1. Langkah-langkah Siklus Hidup Aplikasi Basis Data Suzan Agustri 70 Sistem Basis Data Proses Perancangan Basis Data Hal yang penting adalah mengetahui bahwa langkah-langkah siklus hidup aplikasi basis data dapat tidak berurutan, tetapi melibatkan beberapa langkah pengulangan yang biasanya disebut sebagai feedback loop. Sebagai contoh: masalah-masalah yang ditemui selama perancangan basis data mungkin harus mengumpulkan dan menganalisis kebutuhan-kebutuhan tambahan. Seperti yang digambarkan terdapat feedback loop diantara langkah-langkah yang sering terjadi. PERANCANGAN BASIS DATA Pada basis data yang digunakan oleh single user atau hanya beberapa pemakai saja, perancangan basis data tidak sulit. Tetapi jika ukuran basis data yang sedang atau besar (25 - ratusan pemakai yang berisikan jutaan bytes informasi dan melibatkan ratusan query dan program-program aplikasi, contoh: industri-industri, asuransi, hotel, travel, dan lain-lain (yang seluruhnya tergantung pada kesuksesan dari operasi-operasi basis datanya), perancangan basis data menjadi sangat kompleks. Oleh karena itu para pemakai mengharapkan penggunaan basis data yang sedemikian rupa sehingga sistem harus dapat memenuhi kebutuhan-kebutuhan seluruh pemakai tersebut. Tujuan perancangan basis data: • untuk memenuhi informasi yang berisikan kebutuhan-kebutuhan pemakai secara khusus dan aplikasi-aplikasinya. • memudahkan pengertian struktur informasi. • mendukung kebutuhan-kebutuhan pemrosesan dan beberapa obyek penampilan (response time, processing time, dan storage space). APLIKASI BASIS DATA DALAM LIFECYCLE Siklus kehidupan sistem informasi sering disebut macro life cycle, dimana siklus kehidupan basis data merupakan micro life cycle. Aktivitas-aktivitas yang berhubungan dengan basis data sebagai micro life cycle dan termasuk fase-fasenya sebagai berikut: 1. Database planning Di aktivitas ini akan disusun bagaimana langkah-langkah siklus hidup dapat direalisasikan secara lebih efisien dan efektif. 2. System definition Definisi ruang lingkup basis data (misal : para pemakai, aplikasi-aplikasinya, dan sebagainya) Suzan Agustri 71 Sistem Basis Data 3. Proses Perancangan Basis Data Design Pada bagian dari fase ini, perancangan sistem basis data secara konseptual, logikal dan fisik dilaksanakan 4. Implementation Pemrosesan dari penulisan definisi basis data secara konseptual, eksternal, dan internal, pembuatan file-file basis data yang kosong, dan implementasi aplikasi-aplikasi software. 5. Loading atau Data Conversion Basis data ditempatkan baik secara memanggil data secara langsung ataupun merubah file-file yang ada ke dalam format sistem basis data dan memangggilnya kembali. 6. Application Conversion Beberapa aplikasi software dari suatu sistem sebelumnya dikonversikan ke suatu sistem yang baru. 7. Testing dan Validation Sistem yang baru dites dan diuji kebenarannya. 8. Operation Operasi-operasi pada sistem basis data dan aplikasi-aplikasinya. 9. Monitoring dan Maintenance Selama fase operasi, sistem secara konstan memonitor dan memelihara basis data. Pertambahan dan pengembangan data dan aplikasi-aplikasi software dapat terjadi. Modifikasi dan pengaturan kembali basis data mungkin diperlukan dari waktu ke waktu. Langkah ke-3 disebut juga perancangan basis data. Langkah 3, 4, dan 5 merupakan bagian dari fase design dan implementation pada siklus kehidupan sistem informasi yang besar. Pada umumnya basis data pada organisasi menjalani seluruh aktivitas siklus kehidupan di atas. Langkah 5 dan 6 tidak berlaku jika basis data dan aplikasi-aplikasinya baru. PROSES PERANCANGAN BASIS DATA 6 Fase proses perancangan basis data: 1. Pengumpulan data dan analisis 2. Perancangan basis data secara konseptual 3. Pemilihan DBMS 4. Perancangan basis data secara logika (data model mapping) 5. Perancangan basis data secara fisik 6. Implementasi sistem basis data. Suzan Agustri 72 Sistem Basis Data Proses Perancangan Basis Data Gambar fase-fase perancangan basis data untuk basis data yang besar: Phase 1 : requirements collection and analysis Phase 2 : Conceptual design Data requirements Conceptual & external Schema design (DBMS-independent) Processing requirements Transaction design (DBMS-independent) Phase 3 : Choice of DBMS Phase 4: Data model Mapping (logical design) Conceptual & external schema design (DBMS-dependent) Phase 5 : Physical design Internal schema design (DBMS-dependent) Phase 6: Implementation DDL-statements SDL-statements frequencies, performance constraints Transaction implementation Keterangan: Secara khusus proses perancangan berisikan 2 aktivitas paralel. Aktivitas yang pertama melibatkan perancangan dari isi data dan struktur basis data, sedangkan aktivitas kedua mengenai perancangan pemrosesan basis data dan aplikasi-aplikasi perangkat lunak. Dua aktivitas ini saling menjalin, misalnya: kita dapat mengidentifikasikan data item yang akan disimpan dalam basis data dengan menganalisa aplikasi-aplikasi basis data. Dua aktivitas ini juga saling mempengaruhi satu sama lain. Contohnya: fase perancangan basis data secara fisik, pada saat kita memilih struktur penyimpanan dan jalur-jalur akses dari filefile basis data yang tergantung pada aplikasi-aplikasi yang akan menggunakan file-file tersebut. Di lain pihak, kita biasanya menentukan perancangan aplikasi-aplikasi basis data dengan mengarah kepada konstruksi skema basis data yang telah ditentukan selama aktivitas yang pertama. 6 fase di atas tidak harus diproses berurutan. Pada beberapa hal, rancangan tersebut dapat dimodifikasi dari yang pertama dan sementara itu mengerjakan fase yang terakhir (feedback loop antara fase) dan feedback loop dalam fase sering terjadi selama proses perancangan. Suzan Agustri 73 Sistem Basis Data Proses Perancangan Basis Data Fase 1 merupakan kumpulan informasi yang berhubungan dengan penggunaan basis data. Fase 6 merupakan implementasi basis datanya. Fase 1 dan 6 kadang-kadang bukan merupakan bagian dari perancangan basis data, tetapi merupakan bagian dari siklus kehidupan sistem informasi secara umum. Inti dari proses perancangan basis data adalah fase 2, 4, 5. Fase 1: Pengumpulan data dan analisa Proses identifikasi dan analisa kebutuhan-kebutuhan data disebut pengumpulan data dan analisa. Untuk menentukan kebutuhan-kebutuhan suatu sistem basis data, pertama-tama harus mengenal bagian-bagian lain dari sistem informasi yang akan berinteraksi dengan sistem basis data, termasuk para pemakai yang ada dan para pemakai yang baru serta aplikasi-aplikasinya. Kebutuhan-kebutuhan dari para pemakai dan aplikasi-aplikasi inilah yang kemudian dikumpulkan dan dianalisa. Aktivitas pengumpulan data dan analisa: 1. Menentukan kelompok pemakai dan bidang-bidang aplikasinya Menentukan aplikasi utama dan kelompok user yang akan menggunakan basis data. Individu utama pada tiap-tiap kelompok pemakai dan bidang aplikasi yang telah dipilih merupakan peserta utama pada langkah-langkah berikutnya dari pengumpulan dan spesifikasi data. 2. Peninjauan dokumentasi yang ada Dokumen yang ada yang berhubungan dengan aplikasi-aplikasi dipelajari dan dianalisa. Dokumen-dokumen lainnya (seperti: kebijaksanaan-kebijaksanaan, form, report, dan bagan organisasi) diuji dan ditinjau kembali untuk menguji apakah dokumen-dokumen tersebut berpengaruh terhadap kumpulan data dan proses spesifikasi. 3. Analisa lingkungan operasi dan pemrosesan data Informasi yang sekarang dan yang akan datang dipelajari. Termasuk juga analisa jenisjenis transaksi dan frekuensi-frekuensi transaksinya dan juga arus informasi dalam sistem. Input-output data untuk transaksi-transaksi tersebut diperinci. 4. Daftar pertanyaan dan wawancara Tuliskan tanggapan-tanggapan dari pertanyaan-pertanyaan yang telah dikumpulkan dari para pemakai basis data yang berpotensi. Ketua kelompok (individu utama) dapat diwawancarai sehingga input yang banyak dapat diterima dari mereka dengan memperhatikan informasi yang berharga dan mengadakan prioritas. Suzan Agustri 74 Sistem Basis Data Proses Perancangan Basis Data Fase 2 : Perancangan basis data secara konseptual Tujuan dari fase ini adalah menghasilkan conceptual schema untuk basis data yang tergantung pada sebuah DBMS yang spesifik. Sering menggunakan sebuah high-level data model seperti ER/EER model selama fase ini. Dalam conceptual schema, kita harus memerinci aplikasi-aplikasi basis data yang diketahui dan transaksi-transaksi yang mungkin. Fase perancangan basis data secara konseptual mempunyai 2 aktivitas paralel: 1. Perancangan skema konseptual: menguji kebutuhan-kebutuhan data dari suatu basis data yang merupakan hasil dari fase 1, dan menghasilkan sebuah conceptual database schema pada DBMSindependent model data tingkat tinggi seperti EER (enhanced entity relationship) model. Skema ini dapat dihasilkan dengan menggabungkan bermacam-macam kebutuhan pemakai dan secara langsung membuat skema basis data atau dengan merancang skema-skema yang terpisah dari menggabungkan skema-skema kebutuhan tiap-tiap tersebut. Model data pemakai yang dan kemudian digunakan pada perancangan skema konseptual adalah DBMS-independent, dan langkah selanjutnya adalah memilih sebuah DBMS untuk melaksanakan rancangan tersebut. 2. Perancangan transaksi: menguji aplikasi-aplikasi basis data dimana kebutuhan-kebutuhannya telah dianalisa pada fase 1, dan menghasilkan perincian transaksi-transaksi ini. Kegunaan fase ini yang diproses secara paralel bersama fase perancangan skema konseptual adalah untuk merancang karakteristik dari transaksi-transaksi basis data yang telah diketahui pada suatu DBMS-independent. Transaksi-transaksi ini akan digunakan untuk memproses dan memanipulasi basis data suatu saat dimana basis data tersebut dilaksanakan. Fase 3 : Pemilihan DBMS Pemilihan basis data di tentukan oleh beberapa faktor, diantaranya: faktor teknik, ekonomi, dan politik organisasi. Contoh faktor teknik: keberadaan DBMS dalam menjalankan tugasnya seperti jenis-jenis DBMS (relational, network, hierarchical, dan lain-lain), struktur penyimpanan, dan jalur akses yang mendukung DBMS, pemakai, dan lain-lain. Faktor-faktor ekonomi dan organisasi yang mempengaruhi satu sama lain dalam pemilihan DBMS: 1. Struktur data Jika data yang disimpan dalam basis data mengikuti struktur hirarki, maka suatu jenis hirarki dari DBMS harus dipikirkan. Suzan Agustri 75 Sistem Basis Data Proses Perancangan Basis Data 2. Personal yang telah terbiasa dengan suatu sistem Jika staf programmer dalam suatu organisasi sudah terbiasa dengan suatu DBMS, maka hal ini dapat mengurangi biaya latihan dan waktu belajar. 3. Tersedianya layanan penjual Keberadaan fasilitas pelayanan penjual sangat dibutuhkan untuk membantu memecahkan beberapa masalah sistem. Fase 4 : Perancangan basis data secara logika (pemetaan model data) Fase selanjutnya dari perancangan basis data adalah membuat sebuah skema konseptual dan skema eksternal pada model data dari DBMS yang terpilih. Fase ini dilakukan oleh pemetaan skema konseptual dan skema eksternal yang dihasilkan pada fase 2. Pada fase ini, skema konseptual ditransformasikan dari model data tingkat tinggi yang digunakan pada fase 2 ke dalam model data dari DBMS yang dipilih pada fase 3. Pemetaannya dapat diproses dalam 2 tingkat: 1. Pemetaan system-independent: pemetaan ke dalam model data DBMS dengan tidak mempertimbangkan karakteristik atau hal-hal yang khusus yang berlaku pada implementasi DBMS dari model data tersebut. 2. Penyesuaian skema ke DBMS yang spesifik: mengatur skema yang dihasilkan pada langkah 1 untuk disesuaikan pada implementasi yang khusus di masa yang akan datang dari suatu model data yang digunakan pada DBMS yang dipilih. Hasil dari fase ini memakai perintah-perintah DDL dalam bahasa DBMS yang dipilih yang menentukan tingkat skema konseptual dan eksternal dari sistem basis data. Tetapi dalam beberapa hal, perintah-perintah DDL memasukkan parameter-parameter rancangan fisik sehingga DDL yang lengkap harus menunggu sampai fase perancangan basis data secara fisik telah lengkap. Fase ini dapat dimulai setelah pemilihan sebuah implementasi model data sambil menunggu DBMS yang spesifik yang akan dipilih. Contoh: jika memutuskan untuk menggunakan beberapa relational DBMS tetapi belum memutuskan suatu relasi yang utama. Rancangan dari skema eksternal untuk aplikasi-aplikasi yang spesifik seringkali sudah selesai selama proses ini. Suzan Agustri 76 Sistem Basis Data Proses Perancangan Basis Data Fase 5 : Perancangan basis data secara fisik Perancangan basis data secara fisik merupakan proses pemilihan struktur-struktur penyimpanan dan jalur-jalur akses pada file-file basis data untuk mencapai penampilan yang terbaik pada bermacam-macam aplikasi. Selama fase ini, dirancang spesifikasi-spesifikasi untuk basis data yang disimpan yang berhubungan dengan struktur-struktur penyimpanan fisik, penempatan record dan jalur akses. Berhubungan dengan internal schema (pada istilah 3 level arsitektur DBMS). Beberapa petunjuk dalam pemilihan perancangan basis data secara fisik: 1. Response time: waktu yang telah berlalu dari suatu transaksi basis data yang diajukan untuk menjalankan suatu tanggapan. Pengaruh utama pada response time adalah di bawah pengawasan DBMS yaitu: waktu akses basis data untuk data item yang ditunjuk oleh suatu transaksi. Response time juga dipengaruhi oleh beberapa faktor yang tidak berada di bawah pengawasan DBMS, seperti penjadwalan sistem operasi atau penundaan komunikasi. 2. Space utility: jumlah ruang penyimpanan yang digunakan oleh file-file basis data dan struktur-struktur jalur akses. 3. Transaction throughput: rata-rata jumlah transaksi yang dapat diproses per menit oleh sistem basis data, dan merupakan parameter kritis dari sistem transaksi (misal: digunakan pada pemesanan tempat di pesawat, bank, dan lain-lain). Hasil dari fase ini adalah penentuan awal dari struktur penyimpanan dan jalur akses untuk file-file basis data. Fase 6 : Implementasi sistem basis data Setelah perancangan secara logika dan secara fisik lengkap, kita dapat melaksanakan sistem basis data. Perintah-perintah dalam DDL (Data Definition Language) dan SDL (Storage Definition Language) dari DBMS yang dipilih, dihimpun dan digunakan untuk membuat skema basis data dan file-file basis data (yang kosong). Sekarang basis data tersebut dimuat (disatukan) dengan datanya. Jika data harus dirubah dari sistem komputer sebelumnya, perubahan-perubahan yang rutin mungkin diperlukan untuk format ulang datanya yang kemudian dimasukkan ke basis data yang baru. Transaksi-transaksi basis data sekarang harus dilaksanakan oleh para programmmer aplikasi. Suzan Agustri 77 Sistem Basis Data Proses Perancangan Basis Data Spesifikasi secara konseptual diuji dan dihubungkan dengan kode program dengan perintah-perintah dari embedded DML yang telah ditulis dan diuji. Suatu saat transaksitransaksi tersebut telah siap dan data telah dimasukkan ke dalam basis data, maka fase perancangan dan implementasi telah selesai, dan kemudian fase operasional dari sistem basis data dimulai. Suzan Agustri 78 Sistem Basis Data Database Control DATABASE CONTROL 1. SECURITY DATABASE Authorization Authorization merupakan pemberian hak akses yang mengizinkan sebuah subyek mempunyai akses secara legal terhadap sebuah sistem atau obyek. Subyek user atau program Obyek basis data, tabel, view, application, procedure, atau obyek lainnya yang dibuat di dalam sebuah sistem Jenis-jenis hak akses (privileges) Penggunaan nama basis data yang spesifik Select (retrieve) data Membuat tabel (obyek lainnya) Update data, delete data, insert data (bisa untuk kolom-kolom tertentu) Menghasilkan output yang tidak terbatas dari operasi query (user tidak dibatasi untuk mengakses record tertentu) Menjalankan prosedur khusus dan utilitas program Membuat basis data Membuat (dan memodifikasi) DBMS user identifiers dan authorized identifiers jenis lainnya Anggota dari sebuah kelompok atau kelompok-kelompok user Views (Subschemas) Hasil yang dinamik dari satu atau lebih operasi relasi yang beroperasi pada relasi dasar untuk menghasilkan relasi lainnya disebut sebagai view (subschemas). View merupakan virtual relation yang tidak secara nyata ada di dalam sebuah basis data, tetapi dihasilkan atas permintaan pemakai secara khusus. Backing Up Backing up merupakan proses yang secara periodik menyalin basis data dan menjurnal (serta memprogram) ke dalam media penyimpanan offline Suzan Agustri 79 Sistem Basis Data Database Control Journaling Journaling merupakan proses penyimpanan dan pemeliharaan sebuah jurnal atau log seluruh perubahan terhadap basis data agar dapat me-recover secara efektif jika terjadi kegagalan. Checkpointing Checkpointing merupakan titik temu sinkronisasi antara basis data dan transaksi log file. Seluruh data yang disimpan di tempat sementara akan disimpan di media penyimpanan kedua. Integrity Pengontrolan integritas juga membantu memelihara sistem basis data yang aman dengan mencegah data dari invalid Encryption Enkripsi merupakan penyandian (encoding) data dengan menggunakan algoritma khusus yang merubah data menjadi tidak dapat dibaca oleh program apapun tanpa mendeskripsikannya. 2. CONCURRENCY Hampir semua DBMS adalah sistem multi user. Sistem seperti ini memerlukan mekanisme pengontrolan konkuren. Tujuan dari mekanisme ini adalah untuk menjamin bahwa transaksi-transaksi yang konkuren tidak saling menggangu operasinya masing-masing. Jika transaksi-transaksi yang menggunakan record yang sama maka akan terdapat beberapa masalah yang akan timbul dalam menjalankan transaksi-transaksi yang konkuren. Tiga masalah yang umum adalah: Suzan Agustri 80 Sistem Basis Data a. Database Control Masalah Kehilangan Modifikasi Transaksi A Baca R Modifikasi R - Waktu t1 t2 t3 t4 Transaksi B Baca R Modifikasi R - Transaksi A membaca R pada t1, transaksi B membaca R pada t2. Transaksi A memodifikasi R pada t3. Transaksi B memodifikasi record yang sama pada t4. Modifikasi dari transaksi A akan hilang karena transaksi B akan memodifikasi R tanpa memperhatikan modifikasi dari transaksi A pada t3. b. Masalah Modifikasi Sementara Masalah ini timbul jika transaksi membaca suatu record yang sudah dimodifikasi oleh transaksi lain tetapi belum terselesaikan (uncommited), terdapat kemungkinan kalau transaksi tersebut dibatalkan (rollback). Transaksi A Waktu Transaksi B Baca R - t1 t2 t3 modifikasi R rollback - Transaksi B memodifikasi record R pada t1 Transaksi A membaca R pada t2 Pada saat t3 transaksi B dibatalkan Maka transaksi A akan membaca record yang salah Suzan Agustri 81 Sistem Basis Data Database Control Transaksi A Waktu Transaksi B Modifikasi R - t1 t2 t3 Modifikasi R - Rollback - Pada waktu t2 transaksi A memodifikasi R Karena transaksi B dibatalkan pada waktu t3, maka transaksi A memodifikasi record yang salah. Suzan Agustri 82 Sistem Basis Data Database Control c. Masalah Analisis yang Tidak Konsisten Nilai 1 = 40 Nilai 2 = 50 Nilai 3 = 30 Transaksi A Waktu Transaksi B Baca nilai 1(40) juml = 40 Baca nilai 2 (50) juml = 90 - t1 - t4 - t5 Baca nilai 3 (30) Modifikasi nilai 3 30 20 Baca nilai 1 (40) - t6 t2 t3 Baca nilai 3 (20) juml = 110 (bukan 120) - t7 t8 Modifikasi nilai 1 40 50 Commit Transaksi A menjumlahkan nilai 1, nilai 2 dan nilai 3 Transaksi B nilai 1 +10 ; nilai 3 - 10 Pada waktu t8, transaksi A membaca nilai yang salah karena nilai 1 sudah dimodifikasi menjadi 50 (transaksi B sudah melakukan commit sebelum transaksi A membaca nilai 1) Keterangan: Commit adalah operasi yang menyatakan bahwa suatu transaksi sudah terselesaikan/sukses (successfull end-of-transaction). Rollback adalah operasi yang menyatakan bahwa suatu transaksi dibatalkan (unsuccessfull end-of-transaction). Suzan Agustri 83 Sistem Basis Data Database Control Locking Locking adalah salah satu mekanisasi pengontrol konkuren. Konsep dasar: pada saat suatu transaksi memerlukan jaminan kalau record yang diinginkan tidak akan berubah secara mendadak, maka diperlukan kunci untuk record tersebut. Fungsi kunci (lock) adalah menjaga record tersebut agar tidak dimodifikasi transaksi lain. Cara kerja dari kunci: 1. Pertama kita asumsikan terdapat 2 macam kunci: - Kunci X: kunci yang eksklusif. - Kunci S: kunci yang digunakan bersama-sama. 2. Jika transaksi A menggunakan kunci X pada record R, maka permintaan dari transaksi B untuk suatu kunci pada R ditunda, dan B harus menungggu sampai A melepaskan kunci tersebut. 3. Jika transaksi A menggunakan kunci S pada record R, kemudian terdapat kondisi: a. Bila transaksi B ingin menggunakan kunci X, maka B harus menunggu sampai A melepaskan kunci tersebut. b. Bila transaksi B ingin menggunakan kunci S, maka B dapat menggunakan kunci S bersama A. Tabel Kunci: X S - X = kunci X X N N Y S = kunci S S N Y Y N = No - Y Y Y Y = Yes 4. Bila suatu transaksi hanya melakukan pembacaan saja, secara otomatis memerlukan kunci S baca (S) Bila transaksi tersebut ingin memodifikasi record maka secara otomatis memerlukan kunci X memodifikasi (X) Bila transaksi tersebut sudah menggunakan kunci S, setelah itu akan memodifikasi record, maka kunci S akan dinaikan ke level kunci X. Suzan Agustri 84 Sistem Basis Data 5. Database Control Kunci X dan kunci S akan dilepaskan pada saat synchpoint (synchronization point). Synchpoint menyatakan akhir dari suatu transaksi dimana basis data berada pada keadaan yang konsisten. Bila synchpoint ditetapkan maka: - Semua modifikasi program menjalankan operasi commit atau rollback. - Semua kunci dari record dilepaskan. Masalah Kehilangan Modifikasi Transaksi A Waktu Transaksi B Baca R (kunci S) Modifikasi R (kunci X) Tunggu : : : t1 t2 t3 t4 Baca R (kunci S) Modifikasi R (kunci X) Tunggu : : Tunggu : : Tunggu Pada waktu t3, transaksi A memerlukan kunci X, maka transaksi A harus menunggu sampai B melepaskan kunci S. Transaksi B juga harus menunggu pada t4 Maka tidak akan ada yang kehilangan modifikasi, tetapi terdapat keadaan baru yaitu DEADLOCK. Suzan Agustri 85 Sistem Basis Data Database Control Masalah Modifikasi Sementara Transaksi A Waktu Transaksi B Baca R kunci (S) Tunggu : : Tunggu Baca R kembali (kunci S) t1 t2 t3 t4 modifikasi R (kunci X) Synchpoint (kunci X dilepas) - Transaksi A Waktu Transaksi B Modifikasi R kunci (X) Tunggu : : Tunggu Modifikasi R (kunci X) t1 t2 t3 t4 Modifikasi R (kunci X) Synchpoint (kunci X dilepas) - Transaksi A pada t2 tidak dapat dijalankan langsung, tetapi harus menunggu sampai B melepas kunci X. Bila B sudah mencapai synchpoint, maka kunci X dilepaskan dan A dapat meneruskan prosesnya. Maka transaksi A tidak akan terjasi kesalahan dalam membaca, karena sudah mencapai synchpoint. Suzan Agustri 86 Sistem Basis Data Database Control Masalah Analisa yang Tidak Konsisten Nilai 1 = 40 Nilai 2 = 50 Nilai 3 = 30 Transaksi A Waktu Transaksi B Baca nilai 1 (40) (kunci S) jml = 40 Baca nilai 2 (50) (kunci S) jml = 90 Baca nilai 3 (20) (kunci S) Tunggu t1 - t2 - t3 t4 t5 t6 t7 Baca nilai 3 (30) (kunci S) Modifikasi nilai 3 (kunci X) 30 20 Baca nilai 1 (40) (kunci S) Modifikasi nilai 1 (kunci X) Tunggu : : Tunggu : Transaksi B pada t6 tidak diijinkan, karena memerlukan kunci X maka B harus menunggu sampai A melepaskan kunci S kepada nilai 1. Pada t7 transaksi A juga tidak dapat langsung dilaksanakan, karena B menggunakan kunci X pada nilai 3. Maka A harus menunggu B melepaskan kunci X pada nilai 3. Transaksi A akan membaca nilaiyang benar, tapi timbul masalah baru yaitu DEADLOCK. Suzan Agustri 87 Sistem Basis Data Database Control Time Stamping Salah satu alternatif mekanisme pengawasan konkuren yang dapat menghilangkan masalah deadlock adalah TIME STAMPING. Dalam skema ini tidak ada kunci yang digunakan sehingga tidak ada deadlock yang muncul. Time stamping untuk sebuah transaksi aksi merupakan suatu tanda pengenal yang unik yang menunjuk waktu mulai relatif dari transaksi. Time stamp dapat berupa pembacaan pada kunci internal pada waktu transaksi dimulai, dapat berupa nilai dari suatu penunjuk logikal yang dapat bertambah setiap kali suatu transaksi baru dimulai. Dalam hal ini nilai time stamp dari setiap transaksi adalah unik dan menunjukkan bagaimana lamanya transaksi tersebut. Pengaruh dari time stamping adalah menentukan suatu urutan serial transaksi. Setiap item data terdiri dari sebuah lead time stamp yang memberikan time stamp transaksi terakhir untuk membawa item dan sebuah write time stamp yang memberikan transaksi terakhir untuk menuliskan/memperbaharui item. Masalah dapat timbul dengan time stamping: 1. Suatu transaksi memerintahkan untuk membaca sebuah item yang sudah di-update oleh transaksi yang belakangan 2. Suatu transaksi memerintahkan untuk menulis sebuah item yang nilainya sudah dibaca/ditulis oleh transaksi yang belakangan 3. RECOVERY Recovery Facilities Sebuah DBMS sebaiknya menyediakan fasilitas-fasilitas berikut ini untuk membantu recovery: Backup mechanism Melakukan backup secara periodik terhadap basis data yang ada Logging facilities Mencatat transaksi-transaksi dan perubahan-perubahan yang terjadi terhadap basis data. DBMS memelihara file khusus yang disebut Log (Journal) yang menyediakan informasi mengenai seluruh perubahan yang terjadi pada basis data. Suzan Agustri 88 Sistem Basis Data Database Control Checkpoint facility Mengizinkan update terhadap basis data yang akan menjadi basis data yang permanen Recovery manager Mengizinkan sistem untuk restore basis data ke keadaan sebelum terjadi kerusakan Recovery Techniques Prosedur recovery yang digunakan tergantung dari kerusakan yang terjadi pada basis data. Terdapat 2 kasus kerusakan: 1. Jika basis data rusak secara fisik seperti: disk head crash dan menghancurkan basis data, maka yang terpenting adalah melakukan restore backup basis data yang terakhir dan mengaplikasikan kembali operasi-operasi update transaksi yang telah commit dengan menggunakan log file. Dengan asusmsi bahwa log file-nya tidak rusak. 2. Jika basis data tidak rusak secara fisik tetapi menjadi tidak konsisten, sebagai contoh: sistem crashed sementara transaksi dieksekusi, maka yang perlu dilakukan adalah membatalkan perubahan-perubahan yang menyebabkan basis data tidak konsisten. Mengulang beberapa transaksi sangat diperlukan juga untuk meyakinkan bahwa perubahan-perubahan yang dilakukan telah disimpan di dalam secondory storage. Disini tidak perlu menggunakan salinan backup basis data, tetapi dapat me-restore basis data ke dalam keadaan yang konsisten dengan menggunakan before- dan after-image yang ditangani oleh log file. Teknik recover berikut ini dilakukan terhadap situasi dimana basis data tidak rusak tetapi basis data dalam keadaan yang tidak konsisten. 1. Deferred Update Update tidak dituliskan ke basis data sampai sebuah transaksi dalam keadaan commit. Jika transaksi gagal sebelum mencapai keadaan ini, transaksi ini tidak akan memodifikasi basis data dan juga tidak ada perubahan-perubahan yang perlu dilakukan. Penulisan dilakukan secara inisial hanya terhadap log dan log record yang digunakan untuk actual update terhadap basis data. Jika sistem gagal, sistem akan menguji log dan menentukan transaksi mana yang perlu dikerjakan ulang, tetapi tidak perlu membatalkan semua transaksi. Suzan Agustri 89 Sistem Basis Data Database Control 2. Immediate Update Update diaplikasikan terhadap basis data tanpa harus menunggu transaksi dalam keadaan commit. Update dapat dilakukan terhadap basis data setiap saat setelah log record ditulis. Log dapat digunakan untuk membatalkan dan mengulang kembali transaksi pada saat terjadi kerusakan. Suzan Agustri 90