Modul Pengajaran PERANCANGAN BASIS DATA PENYUSUN Sandra J Kuryanti Diploma Tiga Program Studi Manajemen Informatika AMIK BSI BOGOR 1 KATA PENGANTAR Puji syukur penulis panjatkan kehadirat Allah SWT yang telah melimpahkan rahmat dan karunia-Nya, sehingga pada akhirnya penulis dapat menyelesaikan modul pengajaran ini dengan baik. Adapun judul modul pengajaran ini adalah Perancangan Basis Data. Penulis berharap semoga modul pengajaran ini dapat bermanfaat dan dapat dipergunakan untuk menambah materi pengajaran. Seperti kata pepatah, tak ada gading yang tak retak, penulis pun menyadari kalau modul pengajaran ini masih belum sempurna, masih banyak terdapat kesalahan di sana sini. Oleh karena itu penulis memohon kritik dan saran yang membangun guna perbaikan modul ini ke depannya. Akhir kata penulis mengucapkan terima kasih kepada semua pihak yang telah membantu dalam penyelesaian modul pengajaran ini. Wassalam Penulis 2 DAFTAR ISI Halaman Lembar cover .................................................................................................. 1 Kata Pengantar ................................................................................................ 2 Daftar Isi ......................................................................................................... 3 BAB I .......... ................................................................................................... 4 BAB II ......... .................................................................................................. . 6 BAB III ....... ………………………………………………………………….. 7 BAB IV ………………………………………………………………….. .... 11 BAB V ………………………………………………………………….. ..... 18 BAB VI ………………………………………………………………….. .... 22 BAB VII ………………………………………………………………….. ... 28 3 BAB I KONSEP DASAR SISTEM DATABASE DAN PERANCANGAN DATABASE Data Base (basis data) merupakan kumpulan data yang saling berhubungan. Hubungan antar data dapat ditunjukan dengan adanya field/kolom kunci dari tiap file/tabel yang ada. Dalam satu file atau table terdapat record-record yang sejenis, sama besar, sama bentuk, yang merupakan satu kumpulan entitas yang seragam. Satu record (umumnya digambarkan sebagai baris data) terdiri dari field yang saling berhubungan menunjukan bahwa field tersebut dalam satu pengertian yang lengkap dan disimpan dalam satu record. Adapun Struktur Database adalah : Database File/Table Record Elemen data/FieldDari pengertian diatas dapat disimpulkan bahwa basis data mempunyai beberapa kriteria penting, yaitu : 1. Bersifat data oriented dan bukan program oriented. 2. Dapat digunakan oleh beberapa program aplikasi tanpa perlu mengubah basis datanya. 3. Dapat dikembangkan dengan mudah, baik volume maupun strukturnya. 4. Dapat memenuhi kebutuhan sistem-sistem baru secara mudah 5. Dapat digunakan dengan cara-cara yang berbeda. Prinsip utama Data Base adalah pengaturan data dengan tujuan utama fleksibelitas dan kecepatan pada saat pengambilan data kembali. Adapun ciri-ciri basis data diantaranya adalah sebagai berikut : 1. Efisiensi meliputi kecepatan, ukuran, dan ketepatan 2. Data dalam jumlah besar. 3. Berbagi Pakai (dipakai bersama sama/Sharebility). 4. Mengurangi bahkan menghilangkan terjadinya duplikasi dan ketidakkonsistenan data Istilah-Istilah Yang Dipergunakan Dalam Sistem Basis Data 1. Enterprise yaitu suatu bentuk organisasi Contoh : Enterprise: Sekolah, Database : Nilai Enterprise: Rumah sakit, Database : AdministrasiPasien 2. Entitas yaitu suatu obyek yang dapat dibedakan dengan objek lainnya 4 Contoh : Database : Nilai, Entitas: mahasiswa, Matapelajaran Database : Administrasi Pasien, Entitas: pasien, dokter, obat 3. Atribute/field yaitu setiap entitas mempunyai atribut atau suatu sebutan untuk mewakili suatu entitas. Contoh : Entity : siswa, Field = Nim, nama_siswa,alamat,dll Entity : nasabah, Field=Kd_nasabah,nama_nasabah,dll 4. Data value yaitu data aktual atau informasi yang disimpan pada tiap data elemen atau atribute. Contoh : Atribut nama_karyawan : sutrisno, budiman, dll 5. Record/tuple yaitu kumpulan elemen-elemen yang saling berkaitan menginformasikan tentang suatu entity secara lengkap. Contoh : Record mahasiswa: nim, nm_mhs, alamat. 6. File yaitu kumpulan record-record sejenis yang mempunyai panjang elemen sama, atribute yang sama namun berbeda-beda data valuenya 7. Kunci elemen data yaitu tanda pengenal yang secara unik mengindentifikasikan entitas dari suatu kumpulan entitas 5 BAB II DATA MODEL Sekumpulan konsep-konsep untuk menerangkan data, hubungan-hubungan antara data dan batasan-batasan data yang terintegrasi di dalam suatu organisasi. Tujuan model data adalah untuk Menyajikan data agar mudah di modifikasi dan di mengerti. Jenis-Jenis Model Data 1. Model data berbasis objek Model data berbasis objek menggunakan konsep entitas, atribut dan hubungan antar entitas. Model data berbasis objek terdiri dari : Entity Relationship model Model untuk menjelaskan hubungan antar data dalam basis data berdasarkan suatu persepsi bahwa real word terdiri dari objek-object dasar yang mempunyai hubungan atau relasi antara objek-objek tersebut Semantik data model Hampir sama dengan Entity Relationship model dimana relasi antara objek dasar tidak dinyatakan dengan simbol tetapi menggunakan kata-kata (Semantic). 2. Model data berbasis record Model ini berdasarkan pada record untuk menjelaskan kepada user tentang hubungan logic antar data dalam basis data 3. Model data fisik Digunakan untuk menguraikan data pada internal level. Beberapa model yang umum digunakan : Unifying model Model ini menggabungkan memori dan transaksi database dalam satu kesatuan model. Frame memory Frame Memory adalah sebuah virtual view dari tempat penyimpanan sekunder yang digunakan untuk mendukung penyimpanan record database 4. Model data konseptual Model yang dibuat berdasarkan anggapan bahwa dunia nyata terdiri dari koleksi obyekobyek dasar yang dinamakan entitas (entity) serta hubungan (relationship) antara entitasentitas itu. Biasanya direpresentasikan dalam bentuk Entity Relationship Diagram. 6 BAB IIII ENTITY RELATIONSHIP DIAGRAM Basisdata Relasional adalah kumpulan dari relasi-relasi yang mengandung seluruh informasi berkenaan suatu entitas/ objek yang akan disimpan di dalam database. Tiap relasi disimpan sebagai sebuah file tersendiri. Perancangan basisdata merupakan suatu kegiaatan yang setidaknya bertujuan sebagai berikut: 1. Menghilangkan redundansi data 2. Meminimumkan jumlah relasi di dalam basis data 3. Membuat relasi berada dalam bentuk normal, sehingga dapat meminimumkan permasalahan berkenaan dengan penambahan, pembaharuan dan penghapusan. Entity relationship diagram / ERD adalah suatu pemodelan dari basisdata relasional yang didasarkan atas persepsi di dalam dunia nyata, dunia ini senantiasa terdiri dari sekumpulan objek yang saling berhubungan antara satu dengan yang lainnya. Suatu objek disebut entity dan hubungan yang dimilikinya disebut relationship. Suatu entity bersifat unik dan memiliki atribut sebagai pembeda dengan entity lainnya Simbol Entity Relationship Diagram Simbol Keterangan Entity Weak Entity Relationship Identifying Relationship 7 Atribut Atribut Primari Key Atribut Multi Value Atribut Derivatif Atribut Composite Contoh Kasus Pada saat mendaftar menjadi anggota perpustakaan, dicatatlah nama, nomor mahasiswa dan alamat mahasiswa. Setelah itu mereka baru bisa meminjam buku di perpustakaan. Buku-buku yang dimiliki perpustakaan banyak sekali jumlahnya. Tiap buku memiliki data nomor buku, judul, pengarang, penerbit, tahun terbit. Satu buku bisa ditulis oleh beberapa pengarang. Tahapan pembuatan ERD 1. Mengidentifikasi dan menetapkan seluruh himpunan entitas yang akan terlibat. 2. Menentukan atribut-atribut key dari masing-masing himpunan entitas. 3. Mengidentifikasi dan menetapkan seluruh himpunan relasi diantara himpunan entitashimpunan entitas yang ada beserta foreign key-nya. 4. Menentukan derajat/kardinalitas relasi untuk setiap himpunan relasi. 5. Melengkapi himpunan entitas dan himpunan relasi dengan atribut-atribut deskriptif (non key). 8 Contoh 1. Entitas = Anggota, Buku 2. Atribut Key = Nomor Mahasiswa, Nomor Buku 3. Relasi Anggota Dengan Buku = Meminjam 4. 1 : N 5. Anggota = Nama Mahasiswa, Alamat Mahasiswa Buku = Judul, Pengarang, Penerbit, Tahun Terbit Langkah 1 ANGGOTA BUKU Langkah 2 No_mhs ANGGOTA No_buku BUKU Langkah 3 No_mhs ANGGOTA No_buku Meminjam 9 BUKU Langkah 4 No_mhs No_buku 1 ANGGOTA N Meminjam BUKU Langkah 5 No_mhs ANGGOTA No_buku Nama 1 Meminjam Alamat N BUKU Penerbit 10 Pengarang Thn_Terbit BAB IV TEKNIK NORMALISASI Normalisasi adalah teknik perancangan yang banyak digunakan sebagai pemandu dalam merancang basisdata relasional”. Pada dasarnya, normalisasi adalah proses dua langkah yang meletakkan data dalam bentuk tabulasi dengan menghilangkan kelompok berulang lalu menghilangkan data yang terduplikasi dari tabel relasional. Tujuan normalisasi : 1. Mengatur data dalam kelompok-kelompok sehingga masing-masing kelompok hanya menangani bagian kecil sistem. 2. Meminimalkan jumlah data yang berulang dalam basisdata. 3. Membuat basisdata yang datanya diakses dan dimanipulasi secara cepat dan efisien tanpa melupakan integrasi data. 4. Mengatur data sedemikian rupa sehingga ketika memodifikasi data, anda hanya mengubah pada suatu tempat. Aturan Normalisasi 1. Hilangkan kelompok berulang, buat tabel terpisah untuk setiap himpunan atribut yang berhubungan dan tentukan kunci utama pada masing-masing tabel. 2. Hilangkan data berulang, jika sebuah atribut hanya tergantung pada sebagian kunci utama gabungan, pindahkan atribut ke tabel lain. 3. Hilangkan kolom yang tidak tergantung pada kunci, jika atribut tidak tergantung pada kunci, pindahkan atribut ke tabel lain. 4. Pisahkan relasi majemuk, tidak ada tabel yang bias mengandung dua atau lebi relasi 1:n atau n:m yang tidak berhubungan langsung. 5. Pisahkan relasi majemuk yang berhubungan secara semantik, ada batasan pada informasi yang memperbolehkan pemisahan relasi many-to-many yang berhubungan secara logis. 6. Bentuk normal optimal, sebuah model hanya dibatasi oleh fakta sederhana. 7. Bentuk normal domain-key, sebuah model harus terbebas dari semua anomaly Tahapan Normalisasi 1. Bentuk Normal Kesatu (1 NF / First Normal Form) Bentuk Bentuk Normal Kesatu mempunyai ciri yaitu setiap data dibentuk dalam file flat, data dibentuk dalam satu record demi satu record dan nilai dari field berupa “atomic 11 value”. Tidak ada set atribut yang berulang ulang atau atribut bernilai ganda (multi value). Tiap field hanya satu pengertian, bukan merupakan kumpulan data yang mempunyai arti mendua. Hanya satu arti saja dan juga bukanlah pecahan kata kata sehingga artinya lain. Atom adalah zat terkecil yang masih memiliki sifat induknya, bila dipecah lagi maka ia tidak memiliki sifat induknya. 2. Bentuk Normal Kedua (2NF) Bentuk Normal kedua mempunyai syarat yaitu bentuk data telah memenuhi kriteria bentuk Normal Kesatu. Atribut bukan kunci haruslah bergantung secara fungsi pada kunci utama, sehingga untuk membentuk Normal Kedua haruslah sudah ditentukan kunci-kunci field. Kunci field harus unik dan dapat mewakili atribut lain yang menjadi anggotanya. Bentuk Normal Ketiga (3NF) 3. Untuk menjadi bentuk Normal Ketiga maka relasi haruslah dalam bentuk Normal Kedua dan semua atribut bukan primer tidak punya hubungan yang transitif. Artinya setiap atribut bukan kunci harus bergantung hanya pada kunci primer secara menyeluruh. Contoh pada bentuk Normal kedua di atas termasuk juga bentuk Normal Ketiga karena seluruh atribut yang ada di situ bergantung penuh pada kunci primernya. 4. Boyce-Codd Normal Form (BNCF) Boyce-Codd Normal Form mempunyai paksaan yang lebih kuat dari bentuk Normal ketiga. Untuk menjadi BNCF, relasi harus dalam bentuk Normal Kesatu dan setiap atribut dipaksa bergantung pada fungsi pada atribut super key. Jenis – Jenis Key Field / atribute kunci dalam database: 1. Super key Yaitu himpunan dari satu atau lebih entitas yang digunakan untuk mengidentifikasikan secara unik sebuah entitas dalam entitas set. 2. Candidate key Yaitu satu attribute atau satu set minimal atribute yang mengidentifikasikan secara unik suatu kejadian yang spesifik dari entity. 3. Primary key Yaitu satu atribute atau satu set minimal atribute yang tidak hanya mengidentifikasikan secara unik suatu kejadian yang spesifik tapi juga dapat mewakili setiap kejadian dari suatu entity 12 4. Alternate key Yaitu kunci kandidat yang tidak dipakai sebagai primary key 5. Foreign key yaitu satu atribute (atau satu set atribute) yang melengkapi satu relationship (hubungan yang menunjukkan ke induknya Contoh UNNORMAL FORM SISWA(No_siswa, Nama, Wali_studi, Kelas1, Kelas2, Kelas3) Siswa yang punya nomor siswa, nama dan wali studi mengikuti 3 mata pelajaran/ kelas. Disini ada perulangan kelas 3 kali ini bukan bentuk 1 NF. Contoh Data: No_siswa Nama Wali_studi Kelas-l Kelas2 22890100 Tanzania Zaman 1234 1543 22890101 Nia Rizki 1234 1775 Kelas3 1543 KELAS(Kode_kelas,nama_kelas,instruktur) merupakan bentuk 1NF karena tidak ada yang berganda dan tiap atribute satu pengertian yang tunggal. Contoh Data: Kode_kelas Nama_kelas Instruktur 1234 FisikaDasar Suroso 1543 Matematika Paulus 1775 Teknik Program Bagus No_siswa Nama Wali_studi Kelas-l Kelas2 22890100 Tanzania Zaman 1234 1543 22890101 Nia Rizki 1234 1775 13 Kelas3 1543 FIRST NORMAL FORM Bentuk normal kesatu dari bentuk diatas menjadi: No_siswa Nama Wali_studi Kode_kelas 22890100 Tanzania Zaman 1234 22890100 Tanzania Zaman 1543 22890101 Nia Rizki 1234 22890101 Nia Rizki 1775 22890101 Nia Rizki 1543 PT SANTA PURI FAKTUR PEMBELIAN BARANG Jalan Senopati 11 Yogyakarta Kode Nama Barang R02 RICE Kode Supplier: S02COOKER CC3 Qty Harea Jumlah 10.0 150.000, 00 1. 500.000,00 Tanggal: 02/02/90 Nama Supplier: Gobel Nustra Total Faktur Nomor : 779 1. 500.000,00 Jatuh Tempo Faktur: 09/03/90 PT SANTA PURI FAKTUR PEMBELIAN BARANG Jalan Senopati 11 Yogyakarta Kode Nama Barang A01 ACG01 SPLIT 1/2 PK Kode Supplier: . A02 ACGobel SPLITNustra 1 PK Nama Supplier: Total Faktur Qty Harea Jumlah 10.0 1,350,000 10.0 2,000,000 Nomor : 998 13,500,000 Tanggal: 07/02/90 20,000,000 33,500,000 Jatuh Tempo Faktur: 09/03/90 14 1. Step I bentuk unnormalized Bentuklah menjadi tabel unnormalized, dengan mencantumkan semua field data yang ada Menuliskan semua data yang akan direkam Terlihat record record yang tidak lengkap, sulit untuk membayangkan bagaimana bentuk record yang harus dibentuk untuk merekam data tersebut. 2. Step II bentuk normal kesatu Bentuklah menjadi bentuk normal kesatu dengan memisah misahkan data pada field field yang tepat dan bernilai atomic, juga seluruh record harus lengkap adanya. Bentuk file adalah flat file. 3. Step III bentuk normal kedua Pembentukan bentuk normal kedua dengan mencari kunci kunci field yang dapat dipakai sebagai patokan dalam pencarian dan sifatnya unik. Melihat kondisi dari permasalahan factur di atas dapat diambil kunci kandidat yaitu: No factur (no fac) Kode supplier 15 Kode barang Bentuklah tiga tabel dengan kunci tersebut, lihatlah ketergantungan fungsional field field lain terhadap field kunci, maka didapatkan tabel sebagai berikut: Field Qty dan Harga pada tabel tersebut tidak bergantung penuh pada kunci primer nomor nota, ia juga bergantung fungsi pada kode barang. Hal ini disebut sebagai kebergantungan yang transitif dan haruslah dipisahkan dalam dua tabel. Masih terdapat redundancy yaitu setiap kali satu nota yang terdiri dari 5 macam barang yang dibeli maka 5 kali pula dituliskan no nota, tanggal nota, tempo, dan totai. Ini harus pula dipisahkan bila terjadi penggandaan tulisan berulang ulang. 4. Step IV Bentuk Normal Ketiga Bentuk normal ketiga mempunyai syarat setiap tabel tidak mempunyai field yang bergantung transitif, harus bergantung penuh pada kunci utama. Maka terbentuklah tabel sebagai berikut: 16 5. Step V Pengujian dengan data contoh Pengujian disini untuk memastikan kebenaran isi tabel dan hubungan antara tabel tersebut. Ujilah bahwa setiap tabel haruslah punya hubungan dengan tabel yang lainnya. Bila tidak ada penghubunga antar tabel maka dapat dikatakan perancangan untuk membuat satu database adalah gagal. 17 BAB V BAHASA QUERY FORMAL Query adalah suatu objek database yang dapat digunakan untuk menampilkan, menyunting atau menganalisa suatu data dengan memberikan baris-baris perintah tertentu. Pada aplikasi ini sudah dilengkapi dengan Structured Query Language (SQL) yang menjadi standard bahasa dalam mengolah database. Dengan SQL kita dapat mempersingkat penulisan listing program yang panjang karena pada setiap perintahnya dapat mencakup banyak perintah sekaligus. Bahasa query formal basis data relasional adalah bahasa untuk meminta informasi dari basis data. Bahasa query relasional formal merupakan bahasa antara yang digunakan basis data, yaitu SQL dikonversi menjadi bahasa relasional formal sehingga dapat diterapkan sekumpulan informasi untuk memperoleh query paling efisien. Terdapat dua jenis bahasa query relasional formal yang utama, yaitu: 1. Aljabar relasional. 2. Kalkulus relasional Aljabar Relasional aljabar relasional merupakan kumpulan operasi terhadap relasi dimana setiap operasi menggunakan satu atau lebih relasi untuk menghasilkan satu relasi yang baru dan termasuk kategori prosedural dan juga menyediakan seperangkat operator untuk memanipulasi data. Operasi Dalam Aljabar Relasional Operasi-operasi dasar dalam aljabar relasional adalah sebagai berikut : 1. Operasi selection (σ) Operasi select berfungsi untuk menyeleksi tuple-tuple yang memenuhi predikat yang diberikan dari sebuah tabel relasi. Operasi select menyeleksi tuple-tuple yang memenuhi predikat yang diberikan. Digunakan symbol sigma (σ) untuk menunjukkan operasi select. Predikat muncul sebagai subcript dari σ. Argumen relasi diberikan dalam kurung yang mengikuti σ. 18 2. Operasi projection (π) Operasi project berfungsi untuk memilih nilai atribut-atribut tertentu saja dari sebuah tabel relasi. Operasi project disimbolkan dengan symbol phi (π). Nama-nama atribut yang diinginkan tampil ditulis sebagai subcript π. 3. Operasi cartesian (x) Operasi cartesian product berfungsi untuk mengkombinasikan informasi yang ada dalam 2 tabel relasi atau lebih dan menghasilkan sebuah tabel relasi yang baru. 4. Operasi union (U) A ∪ B adalah relasi dengan heading (atribut) yang sama untuk setiap A dan B, dimana terdiri dari himpunan semua tuples yang terdapat pada A atau B atau kedua-duanya. Operasi union berfungsi untuk mendapatkan gabungan nilai atribut dari sebuah tabel relasi dengan nilai atribut dari tabel relasi lainnya. 5. Opersi set – difference (-) Operasi set difference berfungsi untuk mendapatkan nilai yang ada dalam sebuah tabel relasi, tapi tidak ada dalam tabel relasi lainnya. A MINUS B adalah relasi dengan heading (atribut) yang sama untuk setiap A dan B, dimana terdiri dari himpunan semua tuples yang terdapat pada A, tetapi tidak terdapat pada B. 6. Operasi rename (ρ) Dalam operasi himpunan Cross – Product, bisa menimbulkan terjadinya Konflik Penamaan, karena Cross – Product bisa menghasilkan suatu relasi dari 2 relasi dengan skema yang sama, sehingga skema hasil akan muncul field dengan nama yang sama. Operator Renaming (r) digunakan untuk menghindari terjadinya Konflik Penamaan tersebut. 19 Operasi turunan dalam aljabar relasional adalah sebagai berikut : 1. Operasi set –interface 2. Operasi natural join 3. Operasi theta join 4. Operasi devision Kalkulus Relasional Kalkulus relasional adalah bahasa query yang non prosedural. Bahasa ini mendeskripsikan informasi yang diinginkan tanpa memberi prosedurnya secara detil untuk mendapatkan informasi tersebut. Kalkulus relational dibagi menjadi dua : 1. Kalkulus relasional tupel Mendiskripsikan informasi tanpa perlu memberikan prosedur/cara spesifik untuk memperoleh infomasi tersebut. konsep dari kalkulus relasional tupel adalah konseb variabel tupel. Dimana variabel merepresentasikan tupel-tupel padarelasi dan digunakan untuk mengekstrak data dari relasi. Komponen-komponen lain rumus kalkulus tupel adalah kualifikasi data dengan membatasi nilai-nilai dari atribut-atribut yang dispesifikasikan. Query pada kalkulus realsional tupel dapat diekspresikan dengan: {t|P(t)} Yaitu himpunaan semua tupel t sehingga predikat P bernilai true untuk t, notasi t[A] untuk menunjukan nilai tuple t pada atributr A, dan menggunakan t ϵ r untuk menunjukan nilai tuple t di relasi r. Predikat P adalah berupa rumus, beberapa rumus, beberapa variabel tuple dapat muncul di rumus. 2. Kalkulus relasional domain Kalkulus realsional domain menggunakan variable-variable pada nilai-nilai domain atribut, bukan nilai-nilai untuk sebuah tupel. Ekspresi pada relasional domain berbentuk: {<X1,X2, ... ,Xn>|P(X1,X2, ... , Xn)} X1, X2, ... ,Xn menyatakan variable-variable domain. 20 P menyatakan rumus-rumus yang disusun dari atom-atom. Berdasarkan acuan model relasional, ada 2 bahasa query kemersial yaitu SQL dan QBE. 21 BAB VI BAHASA QUERY KOMERSIAL Struktur Query Language (Sql) SQL dipublikasikan oleh E.F. CODD (1970) mengenai model relational. Kemudian pada tahun 1974, D. Chamberlin dan R.F. Boyce mengembangkan bahasa query untuk memanipulasi dan mengekstraksi data dari basisdata relational. Sasaran SQL 1. Menciptakan basis data dan struktur relasi 2. Melakukan menajemen data tingkat dasar 3. Membentuk query sederhana dan kompleks 4. Melakukan tugas-tugas dengan seminimal mungkin memakai struktur dan sintaks perintah relatif mudah dipelajari 5. Harus portabel Jenis SQL 1. Interactive SQL 2. Static SQL 3. Dynamic SQL Subdivisi SQL 1. DDL (Data Definition Language) Query-query ini digunakan untuk mendefinisikan struktur atau skema basis data 2. DML (Data Manipulation Language) Query-query ini digunakan untuk manajemen data dalam basis data 3. DCL ( Data Control Language) Query-query ini berhubungan dengan pengaturan hak akses dan wewenang. 22 Pengelompokan Statemen Sql 1. Data Definition Language (DDL) CREATE DATABASE DROP DATABASE CREATE TABEL DROP TABEL CREATE INDEX DROP INDEX CREATE VIEW DROP VIEW ALTER TABLE 2. Data Manipulation Language INSERT, SELECT, UPDATE, DELETE 3. Data Access GRANT , REVOKE 4. Data Integrity RECOVER TABLE 5. Auxiliary SELECT INTO OUTFILE, LOAD, RENAME TABLE Kasus Data Definition Language (DDL) A. CREATE 1. Pembuatan Database Nama Database adalah yang dapat mewakili suatu kejadian dapat berupa nama organisasi atau perusahaan. Sintaks : CREATE DATABASE nama_database Contoh : Buat database dengan nama PT.ABC CREATE DATABASE PT.ABC 2. Pembuatan Tabel Sintaks : CREATE TABLE nama_table 23 ( nama_kolom1 tipe_data_kolom1, nama_kolom2,tipe_data_kolom2,….) Contoh : Buat struktur tabel dengan nama tabel MHS dengan data NIM char(8), NAMA char(25), ALAMAT char(30) CREATE TABLE MHS (NIM char(8) not null, NAMA char(25) notnull, ALAMAT char(30) notnull) 3. Pembuatan Index Sintaks : CREATE [UNIQUE] INDEX nama_index ON nama_table (nama_kolom) ; Contoh : Buat index data mahasiswa berdasarkan NIM dengan nama MHSIDX Dimana NIM tidak boleh sama CREATE UNIQUE INDEX MHSIDX ON MHS(NIM) 4. Pembuatan View Sintaks : CREATE VIEW nama_view [ (nama_kolom1,….) ] AS SELECT statement [WITH CHECK OPTION] ; Contoh : Buat view dengan nama MHSVIEW yang berisi semua data mahasiswa CREATE VIEW MHSVIEW AS SELECT * FROM MHS B. DROP (MENGHAPUS) 1. Menghapus Database Sintaks : DROP DATABASE nama_db ; 24 2. Menghapus Tabel Sintaks : DROP TABLE nama_table ; 3. Menghapus Index Sintaks : DROP INDEX nama_index ; 4. Menghapus View Sintaks : DROP VIEW nama_view ; Contoh : DROP DATABASE Mahasiswa; DROP TABLE MHS; DROP INDEX MHSIDX; DROP VIEW MHSVIEW; C. ALTER TABLE (MERUBAH STRUKTUR TABEL) Sintaks : ALTER TABLE nama_tabel ADD nama_kolom jenis_kolom [FIRST | AFTER nama_kolom] CHANGE [COLUMN] oldnama newnama MODIFY nama_kolom jenis kolom, … DROP nama_kolom RENAME newnama_tabel Contoh : 1. Tambahkan kolom JKEL dengan panjang 1 char pada tabel MHS ALTER TABLE MHS ADD JKEL char(1); 2. Ubah panjang kolom MTKULIAH menjadi 30 char ALTER TABLE MKUL MODIFY COLUMN MTKULIAH char(30); 3. Hapus kolom JKEL dari data table MHS ALTER TABLE MHS DROP JKEL; 25 Data Manipulation Language (DML) 1. INSERT Sintaks : INSERT INTO Nama_tabel [(nama_kolom1,…)] Contoh : Masukan data matakuliah Berkas Akses dengan kode KK222 dan besarnya 2 INSERT INTO MKUL VALUES(“KK222”,”Berkas Akses”, 2); 2. UPDATE Sintaks : UPDATE nama_tabel SET nama_kolom = value_1 WHERE kondisi ; Contoh : Ubah alamat menjadi “Depok” untuk mahasiswa yang memiliki NPM “50096487” UPDATE MHS SET ALAMAT=”Depok” WHERE NPM=”50096487”; DELETE Sintaks : DELETE FROM nama_table WHERE kondisi Contoh : Hapus data nilai matakuliah “KK021” bagi mahasiswa yang mempunyai NPM “ 10296832” DELETE FROM NILAI WHERE NPM=”10296832” AND KDMK=”KK021” . SELECT Sintaks : SELECT [DISTINCT | ALL] nama_kolom FROM nama_tabel [ WHERE condition ] [ GROUP BY column_list ] [HAVING condition ] [ ORDER BY column_list [ASC | DESC]] 26 Contoh : a. Tampilkan semua data mahasiswa SELECT NIM,NAMA,ALAMAT FROM MAHASISWA; Atau SELECT * FROM MAHASISWA; 27 BAB VII FRAGMENTASI DATA Merupakan sebuah proses pembagian atau pemetaan database dimana database dipecahpecah berdasarkan kolom dan baris yang kemudian disimpan didalam site atau unit komputer yang berbeda dalam suatu jaringan data, sehingga memungkinkan untuk pengambilan keputusan terhadap data yang telah terbagi. Secara umum proses fragmentasi ini dibagi kedalam tiga jenis, yaitu: 1. Fragmentasi horizontal Fragmentasi horizontal ini terjadi ketika suatu data yang berada pada suatu table dipisah ke dalam beberapa table yang lain. Tabel-tabel yang lain tersebut mempunyai struktur yang sama persis dengan table yang asli. Fragmentasi horizontal dibagi menjadi dua yaitu: a. Primary horizontal fragmentation Merupakan horizontal fragmentation dimana suatu data dalam table secara horizontal dipecah berdasarkan pada suatu nilai dalam satu atau lebih kolom tertentuk b. Derived horizontal fragmentation Merupakan suatu teknik horizontal fragmentation dimana data yang berada pada suatu table secara horizontal dipecah ke dalam beberapa table yang lain, dengan kriteria data yang dimasukan tergantung apakah data tersebut berelasi yang dengan data yang berada di dalam table yang dipecah secara primary horizontal fragmentation atau tidak 2. Fragmentasi vertical Merupakan suatu teknik fragmentasi data dimana data dipecah kedalam beberapa table yang merupakan hasil pemisahan beberapa kolom yang berada pada table utama. Tabel yang difragmentasi secara vertical harus dapat dikembalikan lagi seperti semula (reconstruct) 3. Fragmentasi hybrid Merupakan gabungan antara fragmentasi horizontal dan fragmentasi vertikal 28 Fungsi Fragmentasi : 1. Penggunaan 2. Efisiensi 3. Paralleslisme 4. Keamanan Kerugian fragmentasi yaitu : Kinerja yang dapat turun karena data tersebar dan butuh proses untuk penggabungan kembali Integritas yang dapat terganggu dikarenakan kegagalan pada salah satu site database server. CONTOH KASUS JENIS-JENIS FRAGMENTASI Ujian (NIM,Nama_Mhs,Kode_MK,Mt_Kuliah,Nil_Akhir,Grade) 29 Fragmentasi Horisontal terbagi menjadi 3 fragment yang berbeda berdasarkan Mt_Kuliah 1. Relasi Mt_Kuliah=“Sistem Basis Data” Mt_Kuliah=“Sistem Basis Data” (Ujian) 2. Relasi Mt_Kuliah=“Peranc. Sistem” Mt_Kuliah=“Peranc. Sistem” (Ujian) 3. Relasi Mt_Kuliah=“Visual Basic” Mt_Kuliah=“Visual Basic” (Ujian) 30 Fragment di atas memenuhi kondisi jika Nama_Mhs dan Mt_Kuliah adalah hal-hal yang memenuhi syarat Fragmentasi vertical:berdasarkan dekomposisi-nya dengan menambahkan tupel id Relasi 1 = NIM, Nama_Mhs, Mt,Kuliah, Nil_Akhir, Grade, Tuple_ID p NIM,Nama_Mhs,Mt,Kuliah,Nil_Akhir,Grade,Tuple_ID (UJian) 31 Relasi 2 = NIM,Kode_MK,Nil_Akhir,Grade,Tuple_ID p NIM,Kode_MK,Nil_Akhir,Grade,Tuple_ID (Ujian) Terdapat relasi berdasarkan Mata Kuliah yang sama Relasi 1a. p NIM,Nama_Mhs,Mt_Kuliah,Nil_Akhir,Grade,Tuple_ID(s Mt_Kuliah=“Sistem Basis Data” (Ujian)) Relasi 1b. p NIM, Nama_Mhs, Mt_Kuliah, Mt_Kuliah=“Peranc.Sistem” (Ujian)) 32 Nil_Akhir, Grade, Tuple_ID(s Relasi 1c p NIM,Nama_Mhs,Mt_Kuliah,Nil_Akhir,Grade,Tuple_ID(s Mt_Kuliah=“Visual Basic” (Ujian)) Bagaimana bentuk database untuk data yang telah mengalami proses fragmentasi? Fragmentasi data merupakan langkah yang diambil untuk menyebarkan data dalam database terdistribusi . Selanjutnya akan dibahas apa yang dimaksud Database terdistribusi. Database Terdistribusi Yaitu kumpulan data yang digunakan bersama yang saling terhubung secara logik tetapi tersebar secara fisik pada suatu jaringan komputer.Karakteristik Database terdistribusi, yaitu : 1. Kumpulan data yang digunakan bersama secara logik tersebar pada sejumlah komputer yang berbeda 2. Komputer yang dihubungkan menggunakan jaringan komunikasi 3. Data pada masing-masing situs dapat menangani aplikasiaplikasi lokal secara otonom 4. Data pada masing situs dibawah kendali satu DBMS 5. Masing-masing DBMS berpartisipasi dalam sedikitnya satuaplikasi global 33 BENTUK-BENTUK TOPOLOGI DISTRIBUSI DATA : a. Fully Connected network b. Partialy conneted network 34 c. Tree Strutured Network d. Ring network 35 e. Star network Keuntungan Dan Kerugian Database Terdistribusi KEUNTUNGAN : 1. Secara alami mengikuti struktur organisasi 2. Adanya otonomi lokal 3. Sifatnya dapat dipakai secara bersama 4. Peningkatan ketersediaan 5. Peningkatan kehandalan 6. Peningkatan kinerja 7. Ekonomis 8. Pertumbuhan yang modular KERUGIAN : 1. Harga software mahal (Biaya) 2. Kompleksitas 3. Kelemahan dalam keamanan 4. Sulitnya menjaga keutuhan data 5. Kurangnya standar 6. Kurangnya pengalaman 7. Perancangan basisdata lebih kompleks 36