[go: up one dir, main page]

Academia.eduAcademia.edu
No. Revisi : 00 Tanggal Terbit : 2 Agustus. 2020 No. Dokumen : FRM/POS/STD/STTR/A.3-3-1 BAHAN AJAR MATA KULIAH 3 SKS BASIS DATA Halaman : 1 dari 124 PROGRAM STUDI S1 TEKNIK ELEKTRO SEKOLAH TINGGI TEKNOLOGI RONGGOLAWE CEPU No. Dokumen : FRM/POS/STD/STTR/A.3-3-1 No. Revisi : 00 Tanggal Terbit : 2 Agustus. 2020 Halaman : 2 dari 124 VERIFIKASI BAHAN AJAR Pada hari ini Senin tanggal 2 bulan Agustus tahun 2020 Bahan Ajar Mata Kuliah Basis Data Program Studi Teknik Elektro telah diverifikasi oleh Ketua Program Studi Teguh Yuwono, ST. MT Cepu, 2 Agustus 2020 PRAKATA Pertama-tama kami mengucapkan terima kasih kepada Tuhan Yang Maha Esa atas terwujudnya modul ini. Tujuan dari dibuatnya modul ini agar mahasiswa terbantu dapat mempelajari dasar-dasar teori dan konsep basis data . Dalam mata kuliah ini, Modul ini dikembangkan dengan menggunakan pendekatan eksplorasi, dengan harapan pembaca dapat mencoba, memodifikasi dan selanjutnya dapat berkreasi dengan menggunakan perangkat lunak ini. Modul ini dimulai dengan pengetahuan awal tentang teori dan konsep basis data, berikutnya pengenalan terhadap berbagai perangkat lunak pendukung dan diakhiri dengan implementasi pembuatan berbagai macam analisis dan pelaporan Cepu, 2 Agustus 2020 Penyusun 3 TINJAUAN UMUM MATA KULIAH Deskripsi Mata Kuliah Mata kuliah ini bertujuan memberikan p e m a h a m a n t e n t a n g pengantar Basis Data, Sistem Basis Data, Model Data, Diagram E-R, Transformasi Model Data ke Basis Data Fisik, Implementasi Basis Data, Desain Basis Data, Normalisasi Data, SQL, Pemrosesan Query, Bekerja dengan SQL, Aplikasi SQL, Proteksi Data, Aplikasi Basis Data Manfaat Mata Kuliah 1. Mahasiwa memiliki kemampuan tentang konsep dan teori basis data 2. Mahasiswa memiliki kemampuan tentang konsep normalisasi, model data, pembuatan diagram 3. Mahasiswa memiliki kemampuan untuk menerapkan perintah2 SQL dalam Database manajemen sistem Capaian Pembelajaran Lulusan (CPL) A. Sikap (Ditetapkan pemerintah dalam permendikbud no 3 tahun 2020 tentang Standar Nasional Perguruan Tinggi. Ambil yang sesuai dengan mata kuliah.) 1. Bertakwa kepada Tuhan Yang Maha Esa dan mampu menunjukkan sikap religius; 2. Menjunjung tinggi nilai kemanusiaan dalam menjalankan tugas berdasarkan agama, moral, dan etika; 3. Berkontribusi dalam peningkatan mutu kehidupan bermasyarakat, berbangsa, bernegara, dan kemajuan peradaban berdasarkan Pancasila; 4. Berperan sebagai warga negara yang bangga dan cinta tanah air, memiliki nasionalisme serta rasa tanggung jawab pada negara dan bangsa; 5. Menghargai keanekaragaman budaya, pandangan, agama, dan kepercayaan, serta pendapat atau temuan orisinal orang lain; 6. Bekerjasama dan memiliki kepekaan sosial serta kepedulian terhadap masyarakat dan lingkungan; 7. Taat hukum dan disiplin dalam kehidupan bermasyarakat dan bernegara; 8. Menginternalisasi nilai, norma, dan etika akademik; 9. Menunjukkan sikap bertanggung jawab atas pekerjaan di bidang keahliannya secara mandiri; 10. Menginternalisasi semangat kemandirian, kejuangan, dan kewirausahaan. 4 Pengetahuan Umum Keterampilan Umum (Ditetapkan pemerintah dalam permendikbud no 3 tahun 2020 tentang Standar Nasional Perguruan Tinggi. Ambil yang sesuai dengan mata kuliah.) 1. Mampu menerapkan pemikiran logis, kritis, sistematis, dan inovatif dalam konteks pengembangan atau implementasi ilmu pengetahuan dan teknologi yang memperhatikan dan menerapkan nilai humaniora yang sesuai dengan bidang keahliannya; 2. Mampu menunjukkan kinerja mandiri, bermutu, dan terukur; 3. Mampu mengkaji implikasi pengembangan atauimplementasi ilmu pengetahuan teknologi yang memperhatikan dan menerapkan nilai humaniora sesuai dengan keahliannya berdasarkan kaidah, tata cara dan etika ilmiah dalam rangka menghasilkan solusi, gagasan, desain atau kritik seni; 4. Menyusun deskripsi saintifik hasil kajiannya dalam bentuk skripsi atau laporan tugas akhir, dan mengunggahnya dalam lamanperguruan tinggi; menyusun deskripsi saintifik hasil kajian tersebut di atas dalam bentuk tesis atau laporan tugas akhir, dan mengunggahnya dalam laman perguruan tinggi; 5. Mampu mengambil keputusan secara tepat dalam konteks penyelesaian masalah di bidang keahliannya, berdasarkan hasil analisis informasi dan data; 6. Mampu memelihara dan mengembangkan jaringan kerja dengan pembimbing, kolega, sejawat baik di dalam maupun di luar lembaganya; 7. Mampu bertanggung jawab atas pencapaian hasil kerja kelompok dan melakukan supervisi dan evaluasi terhadap penyelesaian pekerjaan yang ditugaskan kepada pekerja yang berada di bawah tanggung jawabnya; 8. Mampu melakukan proses evaluasi diri terhadap kelompok kerja yang berada di bawah tanggung jawabnya, dan mampu mengelola pembelajaran secara mandiri; 9. Mampu mendokumentasikan, menyimpan, mengamankan, dan menemukan kembali data untuk menjamin kesahihan dan mencegah plagiasi. 5 Keterampilan Khusus Capaian Pembelajaran Mata Kuliah (CPMK) 1. Memahami dan menjelaskan konsep-konsep teori tentang basis data relasional, model data, diagram ER, proteksi basis data. 2. Mampmembuat desain basisdata, mampu melakukan normalisasi data, serta mampu dalam menjalankan perintah-perintah SQL dalam basis data manajamen system Capaian Matakuliah 1. Memahami secara utuh tentang konsep basis data relasional 2. Mengerti dan memahami normalisasi data, diagram ER, model data, dan desain basis data. 3. Mengetahui dan Memahami serta menerapkan perintah-perintah SQL Materi Pembelajaran 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 6 Pengantar Basis Data Sistem Basis Data Model Data Diagram E-R Transformasi Model Data ke Basis Data Fisik Implementasi Basis Data Desain Basis Data Normalisasi Data SQL Pemrosesan Query Bekerja dengan SQL Aplikasi SQL Proteksi Data Aplikasi Basis Data DAFTAR ISI BASIS DATA .......................................................................................................................................1 VERIFIKASI BAHAN AJAR....................................................................................................................2 PRAKATA ...........................................................................................................................................3 TINJAUAN UMUM MATA KULIAH ......................................................................................................4 Deskripsi Mata Kuliah ....................................................................................................................4 Manfaat Mata Kuliah .....................................................................................................................4 Capaian Pembelajaran Lulusan (CPL) ............................................................................................4 Pengetahuan Umum .....................................................................................................................5 Keterampilan Umum .....................................................................................................................5 Keterampilan Khusus.....................................................................................................................6 Capaian Pembelajaran Mata Kuliah (CPMK) ..................................................................................6 Capaian Matakuliah ..........................................................................................................................6 Materi Pembelajaran ........................................................................................................................6 DAFTAR ISI .........................................................................................................................................7 Pengantar Basis Data.........................................................................................................................9 Sistem Basis Data ............................................................................................................................11 Model Data .....................................................................................................................................15 Diagram E-R.....................................................................................................................................17 Transformasi Model Data ke Basis Data Fisik ..................................................................................21 Implementasi Basis Data .................................................................................................................38 Desain Basis Data ............................................................................................................................42 Normalisasi Data .............................................................................................................................48 SQL ..................................................................................................................................................62 Pemrosesan Query ..........................................................................................................................70 Bekerja dengan SQL ........................................................................................................................92 7 Proteksi SQL ....................................................................................................................................95 Aplikasi Basis Data .........................................................................................................................103 8 Pengantar Basis Data Pertemuan 1 Sejarah Basis Data Generasi pertama DBMS didesain oleh Charles Bachman di perusahaan General Electric pada awal tahun 1960, disebut sebagai Penyimpanan Data Terintegrasi (Integrated Data Store). Dan pada akhir 1960, IBM mengembangkan sistem manajemen informasi (Information Management System) DBMS. IMS dibentuk dari representasi data pada kerangka kerja yang disebut dengan model data hirarki. Kemudian pada tahun 1970, Edgar Codd, di Laboratorium Penelitian di San Jose, mengusulkan model data relasional SQL distandardisasi di akhir tahun 1980, dan SQL-92 diadopsi oleh American National Standards Institute (ANSI) dan International Standards Organization (ISO). Pada akhir tahun 1980 dan permulaan 1990, banyak bidang sistem basis data yang dikembangkan. Penelitian pada bidang basis data meliputi bahasa query yang powerful, model data yang lengkap, dan penekanan pada dukungan analisis data yang kompleks dari semua bagian organisasi. Fenomena yang paling menarik adalah adanya enterprise resource planning (ERP) dan management resource planning (MRP), yang menambahkan substansial layer dari fitur berorientasi pada aplikasi. Paket yang termasuk didalamnya meliputi Baan, Oracle, PeopleSoft, SAP, dan Siebel Terminologi Dan Konsep Basis Data 3. Keakuratan (accuracy) Pengkodean atau pembentukan relasi antar data bersama dengan penerapan aturan/batasan (constraint), dmain data, keunikan data, dsb, yang secara ketat dapat diterapkan dalam sebuah basis data, sangat berguna untuk menekan ketidak akuratan penyimpanan data. 4.Ketersediaan (availability) Dengan pemanfaatan jaringan komputer, maka data yang berada di suatu lokasi/cabang dapat juga diakses (tersedia/available) bagi lokasi/cabang lain. 5. Kelengkapan (completeness) 9 Kelengkapan data yang disimpan dalam sebuah database bersifat relatif, bisa jadi saat ini dianggap sudah lengkap, tetapi belum tentu pada suatu saat dianggap lengkap. Untuk mengakomodasi kelengkapan data, seperti . 6.Keamanan (security) Aspek keamanan dapat diterapkan dengan ketat, dengan begitu kita dapat menentukan pemakai basis data serta obyek-obyek didalamnya ,serta jenis-jenis operasi apa saja yang boleh dilakukannya. 7.Kebersamaan pemakaian (sharability) Basis data yang dikelola dengan aplikasi multi user dapat memenuhi kebutuhan ini. Hirarki Data 1. Basis data, merupakan sekumpulan dari bermacam-macam tipe record yang memiliki hubungan antar record. 2. Berkas/file, merupakan sekumpulan rekaman data yang berkaitan denngan suatu objek. 3. Record , merupakan sekumpulan field/atribut/data item yang saling berhubungan terhadap obyek tertentu, - Field length record, semua field dalam record memiliki ukuran yang tetap. - Variabel length record, field-field dalam record dapat memiliki ukuran berbeda (metode penandaan yang digunakan adalah : end of record marker, indikator panjang, dan tabel posisi record) 4. Field/atribut/data item, merupakan unit terkecil yang disebut data,yang tidak dapat dipecah lagi menjadi unit lain yang bermakna. - Fixed length field, memiliki ukuran yang tetap. - Variabel length field, field-field dalam record dapat memiliki ukuran berbeda. 5. Caracter, Berupa huruf(a,b,c,d,e), angka(1,2,3,4,5),dan symbol & * ^ % # ) $ 6. Byte, adalah bagian terkecil yang dialamatkan dalam memori. byte mrupakan sekumpulan bit yang secara konvensional terdiri atas kombinasi delapan bit yang menyatakan sebuah karakter dalam memori (I byte= I karakter) 10 7. Bit, adalah sistem binner yang terdiri atas dua macam nilai, yaitu 0 dan 1. sistem binner merupakan dasar yang dapat digunakan untuk komunikasi antara manusia dan mesin, yang merupakan serangkaian komponen elektronik dan hanya dapat membedakan 2 macam keadaan, yaitu ada tegangan dan tidak ada tegangan yang masuk ke rangkaian tersebut. DBMS Database Management System (DBMS) merupakan paket program (Software) yang dibuat agar memudahkan dan mengefisienkan pemasukan, pengeditan, penghapusan dan pengambilan informasi terhadap database. Software yang tergolong kedalam DBMS antara lain, Microsoft SQL, MySQL, Oracle, MS. Access, dan lain-lain Sistem Basis Data Konsep DBMS (database management system) Database Management System (DBMS) merupakan paket program (Software) yang dibuat agar memudahkan dan mengefisienkan pemasukan, pengeditan, penghapusan dan pengambilan informasi terhadap database. Software yang tergolong kedalam DBMS antara lain, Microsoft SQL, MySQL, Oracle, MS. Access, dan lain-lain Komponen utama DBMS : 1. Perangkat keras berupa komputer dan bagian-bagian didalamnya, seperti prosesor, memori & harddisk. Komponen inilah yang melakukan pemrosesan dan juga untuk menyimpan basis data. 2. Basisdata sebuah DBMS dapat memiliki beberapa basisdata, setiap basisdata dapat berisi sejumlah obyek basisdata (file,tabel,indeks dsb). Disamping berisi data,setiap basisdata juga menyimpan definisi struktur (baik untuk basisdata maupun obyek-obyeknya secara detail). 3. Perangkat lunak 11 perangkat lunak ini terdiri dari sistem operasi dan perangkat lunak/program pengelola basisdata. Perangkat lunak inilah yang akan menentukan bagaimana data diorganisasi,disimpan, diubah dan diambil kembali. Ia juga menerapkan mekanisme pengamanan data, pemakaian data secara bersama, pemaksaan keakuratan/konsistensi data, dsb. Contoh perangkat lunak DBMS : MS access, SQL Server, Oracle dsb. 4. Pengguna/user pengguna dapat digolongkan menjadi 3 : 1. Pengguna akhir / end user. Dapat dibagi menjadi 2 : - Pengguna aplikasi : adalah orang yang mengoperasikan program aplikasi yang dibuat oleh pemrogram aplikasi. - Pengguna interaktif : adalah orang yg dpt memberikan perintah-perintah pada antar muka basisdata, misalnya SELECT, INSERT dsb. 2. Pemrogram aplikasi Adalah orang yang membuat program aplikasi yang menggunakan basisdata. 3. Administrator database / DBS (database administrator) adalah orang yang bertanggungjawab terhadap pengelolaan basisdata. Tugas DBA : - mendefinisikan basisdata - menetukan isi basisdata - menentukan sekuritas basisdata Abstraksi Data Salah satu tujuan dari DBMS adalah untuk menyediakan fasilitas/antarmuka (interface) kepada user.untuk itu system tersebut akan menyembunyikan detail tentang bagaimana data disimpan dan dipelihara, sehingga data yang terlihatoleh user sebenarnya berbeda dengan yang tersimpan secara fisik. 12 Abstraksi data merupakan tingkatan-tingkatan pengguna dalam memandang bagaimana sebenarnya data diolah dalam sebuah sistem database sehingga menyerupai kondisi yang sebenarnya dihadapi oleh pengguna sehari-hari.. Sebuah DBMS seringkali menyembunyikan detail tentang bagaimana sebuah data disimpan dan dipelihara (diolah) dalam sebuah sistem database, dengan tujuan untuk memudahkan pengguna dalam menggunakan DBMS tersebut. Karena itu seringkali data yang terlihat oleh pemakai sebelumnya berbeda dengan yang tersimpan secara fisik. Terdapat 3 level abstraksi : 1. Level Fisik (Physical Level) Lapis fisik merupakan lapis terendah, lapis ini menjelaskan bagaimana (how) data sesungguhnya disimpan. Pada lapis inilah struktur data dijabarkan secara rinci. 2. Level Logik / Konseptual (Conceptual Level) Lapis konseptual lebih tinggi dari lapis fisik. Lapis ini menjabarkan data apa (what) saja yang sesungguhnya disimpan pada basisdata, dan juga menjabarkan hubunganhubungan antardata secara keseluruhan. Seorang pengguna dalam level ini dapat mengetahui bahwa data mahasiswa disimpan pada tabel mahasiswa, tabel krs, tabel transkrip dan lain sebagainya. Level ini biasa dipakai oleh DBA. 3. Level Penampakan/pandangan (View Level) Lapis pandangan merupakan lapis tertinggi pada abstraksi data. Pada lapis ini pengguna hanya mengenal struktur data yang sederhana, yang berorientasi pada kebutuhan pengguna. Data yang dikenal oleh masing-masing pengguna bisa berbedabeda dan barangkali hanya mencakup sebagian dari basis data. Misalnya: Bagian keuangan hanya membutuhkan data keuangan, jadi yang digambarkan hanya pandangan terhadap data keuangan saja, begitu juga dengan bagian akuntansi, hanya membutuhkan data akuntansi saja. Jadi tidak semua pengguna database membutuhkan seluruh informasi yang terdapat dalam database tersebut. Bahasa Basis Data 1. Bahasa Definisi Data (Data Definition Language/ DDL) DDL adalah perintah-perintah yang biasa digunakan oleh administrator basis data (DBA) utnuk mendefinisikan skema ke DBMS. Skema adalah deskripsi lengkap tentang struktur medan, rekaman, dan hubungan data pada basis data Index merupakan suatu mekanisme yang lazim digunakan pada basis data, yang memungkinkan pengambilan data dapat dilakukan dengan cepat. 13 DDL Digunakan untuk mespesifikasikan struktur/skema basis data yang menggambarkan/mewakili desain basis data secara keseluruhan. Hasil kompilasi perintah DDL adalah kamus data (File yang berisi metadata (data yang mendeskripsikan data sesungguhnya). Struktur penyimpan dan metode akses yang digunakan oleh sistem basis data disebut dengan data storage and definition language. 2. Bahasa Manipulasi Data (Data Manipulation laguage/ DML) DML adalah perintah-perintah yang digunakan untuk mengubah, manipulasi dan mengambil data pada basis data. Tindakan seperti menghapus, mengubah, dan mengambil data menjadi bagian dari DML. DML pada dasarnya dibagi menjadi dua : - Prosedural, yang menuntut pengguna menentukan data apa saja yang diperlukan dan bagaimana cara mendapatkannya. - Nonprosedural, yang menuntut pengguna menentukan data apa saja yang diperlukan, tetapi tidak perlu menyebutkan cara mendapatkannya. Pemanfaaatan Ilmu Basis Data Bidang Fungsional : • Kepegawaian • Pergudangan (inventory) • Akuntansi • Reservasi • Layanan Pelanggan Bentuk Perusahan : Perbankan Rumah Sakit Produsen Barang 14 • Sekolah • Telekomunikasi Model Data Model database adalah suatu konsep yang terintegrasi dalam menggambarkan hubungan (relationships) antar data dan batasan-batasan (constraint) data dalam suatu sistem database. Model data yang paling umum, berdasarkan pada bagaimana hubungan antar record dalam database (Record Based Data Models), terdapat tiga jenis, yaitu : 1. Model Database Hirarki (Hierarchical Database Model) Model hirarkis biasa disebut model pohon, karena menyerupai pohon yang dibalik. Model ini menggunakan pola hubungan orangtua anak HIRARKI 3. Model Database Relasi (Relational Database Model) Model Relasional merupakan model yang paling sederhana sehingga mudah digunakan dan dipahami oleh pengguna. Model ini menggunakan sekumpulan tabel berdimensi dua ( yang disebut relasi atau tabel ), dengan masing-masing relasi tersusun atas tupel atau baris dan atribut. DBMS yang bermodelkan relasional biasa disebut RDBMS (Relational Data Base Management System). Model database ini dikemukakan pertamakali oleh EF codd, seorang pakar basisdata. Model ini sering disebut juga dengan database relasi. Model database hirarki dan jaringan merupakan model database yang tidak banyak lagi dipakai saat ini, karena adanya berbagai kelemahan dan hanya cocok untuk struktur hirarki dan jaringan saja. Artinya tidak mengakomodir untuk berbagai macam jenis persoalan dalam suatu sistem database. Model database relasi merupakan model database yang paling banyak digunakan saat ini, karena paling sederhana dan mudah digunakan serta yang paling penting adalah kemampuannya dalam mengakomodasi berbagai kebutuhan pengelolaan database. Sebuah database dalam model ini disusun dalam bentuk tabel dua dimensi yang terdiri dari baris (record) dan kolom (field), pertemuan antara baris dengan kolom disebut item data (data value), table-tabel yang ada di hubungkan (relationship) sedemikian rupa menggunakan field-field kunci (Key field) sehingga dapat meminimalkan duplikasi data. 15 Contoh produk DBMS terkenal yang menggunakan model relasional antara lain adalah : 1. DB2 (IBM) 2. Rdb/VMS (Digital Equipment Corporation) 3. Oracle (Oracle Corporation) 4. Informix (Informix Corporation) 5. Ingres (ASK Group Inc) 6. Sybase (Sybase Inc) Di lingkungan PC, produk-produk berbasis relasional yang cukup terkenal antara lain adalah : 1. Keluarga R:Base (Microrim Corp) antara lain berupa R:Base 5000 2. Keluarga dBase (Ashton-Tate, sekarang bagian dari Borland International), antara lain dbase III Plus, dBase IV, serta Visual dBase 3. Microsoft SQL ( Microsoft Corporation) 4. Visual FoxPro (Microsoft Corporation) 4. Model ER (Entity Relationship) Model Entity-Relationship adalah model data konseptual tingkat tinggi untuk perancangan basis data. Model data konseptual adalah himpunan konsep yang mendeskripsikan struktur basis data, transaksi pengambilan dan pembaruan basis data. Model ER adalah data konseptual tak tergantung DBMS dan platform perangkat keras tertentu. Model ER dikemukakan oleh Chen [1976]. Sejak itu, telah memperoleh banyak perhatian dan perluasan. Model ER adalah persepsi terhadap dunia nyata sebagai terdiri objek-objek dasar yang disebut entitas dan keterhubungan (relationship) antar entitas-entitas itu. Konsep paling dasar di model ER adalah entitas, relationship dan atribut. Komponen-komponen utama model ER adalah: a. Entitas (entity), Entitas memodelkan objek-objek yang berada diperusahaan/lingkungan. b. Relationship. Relationship memodelkan koneksi/hubungan di antara entitas-entitas. c. Atribut-atribut (properi-properti), memodelkan properti-properti dari entitas dan relationship. d. Konstrain-konstrain (batasan-batasan) integritas, konstrain-konstrain ketentuan validitas. 16 DISKUSI Buatlah Model ER untuk perusahaan Manufaktur meliputi Production ,Product, Vendor, Client, Sales, Diagram E-R Konsep paling dasar di model ER adalah entitas, relationship dan atribut. Komponen-komponen utama model ER adalah: a. Entitas (entity), Entitas memodelkan objek-objek yang berada diperusahaan/lingkungan. b. Relationship. Relationship memodelkan koneksi/hubungan di antara entitas-entitas. c. Atribut-atribut (properi-properti), memodelkan properti-properti dari entitas dan relationship. d. Konstrain-konstrain (batasan-batasan) integritas, konstrain-konstrain ketentuan validitas. Dalam berbagai pembahasan/literature, penyebutan himpunan entitas (yang kurang praktis) ini seringkali digantikan dengan sebutan entitas saja. Karena itu sering ditemui, penggunaan istilah entitas (entity) di sebuah literature sebenarnya menunjuk pada himpunan entitas. Kunci Entitas Sebagaimana model relasional, adalah penting dan berguna untuk memasukkan kunci yang diasosiasikan dengan himpunan entitas. Kunci pada himpunan entitas S, adalah himpunan atribut A. Sehingga tidak ada dua entitas di S yang mempunyai nilai sama untuk tiap atribut di A dan tidak ada subset di A yang dapat menjadi kunci di S, dengan demikian kunci mempunyai property minimal. Atribut (Atributes/Properties) Setiap entitas pasti memiliki atribut yang mendeskripsikan karakteristik (property) dari entitas tersebut. Penentuan / pemilihan atribut-atribut yang relevan bagi sebuah entitas merupakan hal penting lainnya dalam pembentukan model ER. Contoh : nim, nama, alamat, kode. Relasi (Relationship) dan Himpunan Relasi (Relationship Sets) Relasi menunjukkan adanya hubungan di antara sejumlah entitas yang berasal dari himpunan entitas yang berbeda. Misalnya, entitas seorang mahasiwa dengan 17 nim = ‘000001’ dan nama_mhs = ‘gunawan’ (yang ada di himpunan entitas Mahasiswa) mempunyai relasi dengan entitas sebuah mata kuliah dengan kode_kul=’IF-001’ dan nama_kul=’basis Data’. Relasi diantara kedua entitas tadi mengandung arti bahwa mahasiswa tersebut sedang mengambil/mempelajari mata kuliah tersebut di sebuah perguruan tinggi yang ditinjau. Kumpulan semua relasi diantara entitas-entitas yang terdapat pada himpunan entitas-himpuan entitas tersebut membentuk himpunan relasi (relationship sets). Sebagaimana istilah himpunan entitas yang banyak sekali disingkat menjadi entitas, istilah himpunan relasi jarang sekali digunakan dan lebih sering disingkat dengan istilah relasi saja. Kardinalitas Relasi menunjukkan jumlah maksimum entitas yang dapat berelasi dengan entitas pada himpunan entitas yang lain. Kardinalitas relasi merujuk kepada hubungan maksimum yang terjadi dari himpunan entitas yang satu ke himpunan entitas yang lain dan begitu juga sebaliknya. Kardinalitas di antara dua himpunan entitas (misalnya A dan B) dapat berupa : a. Satu ke satu (One to One), setiap entitas pada himpunan entitas A berhubungan dengan paling banyak dengan satu entitas pada himpunan entitas begitu juga sebaliknya setiap entitas pada himpunan entitas B berhubungan dengan paling banyak dengan satu entitas pada himpunan entitas A. b. Satu ke Banyak (one to many), Setiap entitas pada himpunan entitas A dapat berhubungan dengan banyak entitas pada himpunan entitas B, tetapi tidak sebaliknya, dimana setiap entitas pada himpunan entitas B berhubungan dengan paling banyak dengan satu entitas pada himpunan entitas A. c. Banyak ke Satu (Many to One), Setiap entitas pada himpunan entitas A berhubungan dengan paling banyak dengan satu entitas pada himpunan entitas B, tetapi tidak sebaliknya, dimana setiap entitas pada himpunan entitas A berhubungan dengan paling banyak satu entitas pada himpunan entitas B. d. Banyak ke Banyak (Many to Many) 18 Setiap entitas pada himpunan entitas A dapat berhubungan dengan banyak entitas pada himpunan entitas B, demikian juga sebaliknya, di mana setiap entitas pada himpunan entitas B dapat berhubungan dengan banyak entitas pada himpunan entitas A. Tahap Pembuatan Diagram ER Diagram ER selalu dibuat secara bertahap. Paling tidak ada dua kelompok penahapan yang biasa ditempuh di dalam pembuatan diagram ER, yaitu : a. Tahap pembuatan Diagram ER awal (preliminary design). Yaitu : Mengidentifikasi dan menetapkan seluruh entity yang terlibat dalam sistem database tersebut. 1. nya. Menentukan attribute-attribute atau field dari masing-masing entity beserta kunci (key)- Menentukan attribute dari suatu entitas sangat menentukan baik atau tidaknya sistem database yang dirancang, karena attribute ini sangat menentukan nantinya dalam proses relasi. Attribute merupakan ciri khas yang melekat pada suatu entity, misalnya attribute pada mahasiswa dapat berupa nobp, nama, tempat lahir, tanggal lahir, alamat, nama orang tua, pekerjaan orang tua dan lain-lain. Dari sekian banyak kemungkinan attribute yang ada pada entity mahasiswa, kita dapat menggunakan hanya yang perlu saja. Setelah menentukan attributenya selanjutnya adalah menentukan field kunci. Field kunci adalah penanda attribute tersebut sehingga bisa digunakan untuk relasi nantinya dan field kunci ini harus bersifat unik. Misalnya pada entity mahasiswa, attribute nobp bisa dijadikan field kunci, karena bersifat unik dan tidak ada mahasiswa yang mempunyai nobp sama. 2. Mengidentifkasi dan menetapkan seluruh himpunan relasi diantara himpunan-himpunan entity yang ada beserta kunci tamu (foreign key)- nya. Setelah menentukan entity dan attribute beserta field kuncinya, maka selanjutnya adalah menentukan entity yang terbentuk akibat adanya relasi antar entity. Misalnya antara entity mahasiswa dengan entity dosen, terjadi suatu hubungan proses mengajar, maka proses mengajar ini merupakan entity baru. Entity mengajar ini harus kita tentukan juga attribute yang melekat padanya beserta kunci tamu (foreign key). Kunci tamu adalah field kunci utama pada tabel lain, dan field tersebut digunakan juga pada tabel yang satu lagi. Misalnya nobp adalah field kunci dari entity mahasiswa, pada entity mengajar terdapat juga attribute NoBP, maka keberadaan attribute nobp pada entity mengajar disebut sebagai kunci tamu. Proses menentukan hubungan antar entity juga sangat menentukan kualitas system database yang dirancang. 3. Menentukan derajat relasi untuk setiap himpunan relasi. Setelah semua entity dan attribute yang dibutuhkan terbentuk, maka selanjutnya adalah menentukan derajat relasi antar entity tersebut, apakah satu kesatu, satu ke banyak atau sebaliknya, atau banyak ke banyak. Berhati-hatilah dalam menentukan derajat relasi ini, karena nantinya akan berhubungan dengan proses query terhadap data 19 3. Melengkapi himpunan entitas dan himpunan relasi dengan atribut-atribut deskriptif (non key). Jenis-Jenis Kunci (Key) 1. Candidat Key Sebuah attribute atau lebih yang secara unit mengidentifikasi sebuat record, disebut candidate key. Attribute ini mempunyai nilai yang unik pada hampir setiap recordnya. Fungsi dari candidate key ini adalah sebagai calon primary key. 2. Primary Key Salah satu atrribut dari candidat key dapat dipilih menjadi primary key dengan 3 kriteria sbb : Key tersebut lebih natural untuk dijadikan acuan Key tersebut lebih sederhana Key tersebut cukup uniqe 3. Foreign Key Jika sebuah primary key terhubungan ke table/entity lain, maka keberadaan primary key pada entity tersebut di sebut sebagai foreign key. Misal : Primary Key KodeDosen dari entity Dosen digunakan juga pada field entity KRS, maka keberadaan field KodeDosen pada entity KRS disebut sebagai foreign key. 4. Alternate Key Setiap atribut dari candidate key yang tidak terpilih sebagai primary key akan dinamakan alternate key. Pada contoh sebelumnya bila untuk primary key dipilih ID_Cus maka alternate key nya adalah No.of Pay SPESIALISASI Dari Suatu himpunan entitas, dapat dilakukan pengelompokan yang dapat membentuk suatu himpunan entitas baru GENERALISASI Kebalikan Dari Spesialisasi AGREGASI Dari suatu himpunan Entitas dihubungkan dengan himpunan relasi menggunakan Agregasi 20 Transformasi Model Data ke Basis Data Fisik Implementasi Himpunan Entitas Lemah Implementasi Sub Entitas Hasil dari Spesialisasi Contoh lain spesialisasi Implementasi Generalisasi Relasi dengan derajat 1-1 yang menghubungkan 2 buah entitas akan direpresentasikan dalam bentuk penambahan/penyertaan atribut relasi ke tabel yang mewakili salah satu dari kedua himpunan entitas. Relasi dengan derajat relasi 1-N (satu ke banyak) yang menghubungkan 2 buah entitas, juga akan direpresentasikan dalam bentuk pencantuman atribut key dari himpunan entitas pertama (yang berderajat 1) ke tabel entitas kedua (yang berderajat N). Relasi dengan derajat N-M yang menghubungkan 2 buah entitas akan diwujudkan dalam bentuk tabel khusus. Dimana memiliki field (tepatnya foreign key) yang berasal dari primary key dari entitas yang dihubungkan, dengan menyertakan atribut tambahan bila ada. Slide 1 Pertemuan 5 Transformasi Model Data ke Basis Data Fisik Indra Gunawan, S.T 21 Slide 2 Transformasi Model Data ke Basis Data Fisik Transformasi Umum/Dasar Nim Na m a _m hs Mahasiswa Alamat_mhs Tgl_lahir Tabel Mahasiswa nim 22 Nama_mhs Alamat_mhs Tgl_lahir Slide 3 Implementasi lainnya Implementasi Himpunan Entitas Lemah dan Sub Entitas ❑ Implementasi Relasi Tunggal (Unary Relation) ❑ Implementasi Relasi Multi Entitas (N-ary Relation) ❑ Implementasi Relasi Ganda (Redundant Relation ❑ 23 Slide 4 Implementasi Himpunan Entitas Lemah punya n TANGGUNGAN 1 PEGAWAI 1 miliki TABEL SKILL n SKILL TABEL TANGGUNGAN 4 24 Slide 5 Implementasi Relasi Tunggal 1-1 nohp Nik_karyawan … nama Nik_pasangan 1 Menikah KARYAWAN alamat 1 TABEL KARYAWAN 5 25 Slide 6 Implementasi Relasi Tunggal 1-N nohp Nik_karyawan Nik_supervisor nama 1 KARYAWAN kontrol N TABEL KARYAWAN 6 26 Slide 7 Implementasi Relasi Tunggal N-M sks Kd_mk semester nama N Kd_mk_prasyarat Kuliah prasyarat MATA KULIAH M TABEL MATA KULIAH TABEL MK PRASYARAT 7 27 Slide 8 Implementasi Multi Entitas Id_supplier alamat nama Cara_pengiriman lokasi nama n SUPPLIER … Sedia m … 1 GUDANG tgl_kirim Id_ruang KOMPONEN Id_komponen nama 8 28 Slide 9 TABEL SUPPLIER TABEL GUDANG TABEL KOMPONEN TABEL PERSEDIAAN 9 29 Slide 10 Contoh lain Multi Entitas Id_pasien nama PASIEN hasil n tanggal Resep … … n nama DOKTER Nip_dokter n … OBAT Id_obat nama 10 30 Slide 11 TABEL PASIEN TABEL DOKTER TABEL OBAT TABEL RESEP 11 31 Slide 12 Implementasi Relasi Ganda mengajar Kd_mk nip n 1 nama MATAKULLIAH DOSEN … … m n nama Menguasai 12 32 Slide 13 TABEL DOSEN TABEL MATA KULIAH TABEL MENGUASAI 13 33 Slide 14 Implementasi Spesialisasi 34 Slide 15 Implementasi Spesialisasi 35 Slide 16 Implementasi Generalisasi 36 Slide 17 Implementasi Agregasi 37 Slide 18 Implementasi Agregasi Implementasi Basis Data Slide 1 38 Indra Gunawan, S.T 1 39 Slide 2  Integer : Bilangan bulat -2.2M – 2.2 M  Decimal:Bilangan pecahan  Date: Penanggalan tanpa disertai waktu  Datetime: penanggalan dengan waktu  Char: String Karakter  Text : mampu menyimpan 64 ribu data  Contoh: 100.234  Contoh : 20,3  Contoh : 2004-03-12  Contoh : 2004-03-12 23.59:00  Contoh : “Hello”  Contoh : Field Alamat, Field Keterangan, Notes dst 2 40 Slide 3  Buatlah struktur tabel beserta relasinya dari entitas-entitas dibawah ini Dosen 1 n n 1 Golongan n keahlian n Mata Kuliah 3 41 Slide 4  Buat lah struktur table beserta relasinya dari entitas-entitas dibawah ini : karyawan n n n 1 jabatan 1 departemen n n keahlian 1 agama 4 Desain Basis Data Daur Hidup (Life Cycle) yang Umum dari Aplikasi Basis Data Definisi Sistem Database Design Implementasi Loading/Konversi Data Konversi Aplikasi Testing & Validasi Operations 42 Control & Maintenance Daur Hidup (Life Cycle) dari Aplikasi Basis Data Definisi Sistem: ➢ ruang lingkup basis data pemakai aplikasi Design: logical design ER/EER physical design untuk suatu DBMS Daur Hidup (Life Cycle) dari Aplikasi Basis Data Implementasi: ➢ membuat basis data (kosong) membuat program aplikasi Loading/ Konversi Data: memasukkan data ke dalam basis data mengkonversi file yang sudah ada ke dalam format basis data dan kemudian memasukkannya dalam basis data Daur Hidup (Life Cycle) dari Aplikasi Basis Data Konversi Aplikasi: Semua aplikasi dari sistem sebelumnya dikonversikan ke dalam sistem basis data. Testing dan Validasi: Sistem yang baru harus ditest dan divalidasi (diperiksa keabsahannya) Daur Hidup (Life Cycle) dari Aplikasi Basis Data Operasi: Pengoperasian basis data dan aplikasinya. Monitoring dan Maintenance: Selama operasi, sistem dimonitor dan diperlihara. Baik data maupun program aplikasi masih dapat terus tumbuh dan berkembang. 43 Proses Design Sistem Basis Data Basis Data biasanya merupakan salah satu bagian dari suatu sistem informasi yang besar yang antara lain terdiri dari: Data Perangkat lunak DBMS Perangkat keras komputer Sistem operasi komputer Program-program aplikasi Pemrogram, dll Proses Design Basis Data Pengumpulan dan analisa requirement Design basis data conceptual Pemilihan DBMS Physical Design Implementasi Proses Design Basis Data (cont’d) Kelima phase dalam proses design tidak perlu dilaksanakan secara mutlak, mungkin ada umpan balik antar phase dan dalam masing-masing phase Proses Design Paralel Proses design terdiri dari dua proses yang paralel yaitu: • proses design dari data dan struktur dari basis data • proses design dari program aplikasi dan pemrosesan basis data Mengapa Harus Paralel Karena kedua proses tersebut saling bergantungan. Contoh: 44 Menentukan data item yang akan disimpan dalam basis data tergantung dari aplikasi basis data tersebut, juga dalam menentukan struktur dan akses path. Design dari program aplikasi tergantung dari struktur basis datanya. Phase 1: Pengumpulan Data & Analisa Requirement Pengidentifikasian group pemakai dan area aplikasi Penelitian kembali dokumen-dokumen yang sudah ada yang berhubungan dengan aplikasi → form, report, manual, organization chart, dsb Analisa lingkungan operasi dan kebutuhan dari pemrosesan, seperti tipe transaksi, input/output, frekuensi suatu transaksi, dsb Transfer informasi informal ke dalam bentuk terstruktur menggunakan salah satu bentuk formal dari requirement specification (bentuk diagram) seperti Flow Chart, DFD, UML Diagram, dll. Hal ini dilakukan untuk mempermudah pemeriksaan kekonsistenan, ketepatan, dan kelengkapan dari spesifikasi. Phase 2: Design Conceptual Phase 2A: Design Conceptual Schema High level data model, bukan implementation-level data model Memberikan gambaran yang lengkap dari struktur basis data yaitu arti, hubungan, dan batasanbatasan. Conceptual schema bersifat tetap Alat komunikasi antar pemakai basis data, designer, dan analis Phase 2: Design Conceptual (cont’d) Phase 2A: Design Conceptual Schema Harus bersifat: Mampu menyatakan relationship, batasan-batasan Diagram Formal, minimum dalam menyatakan spesifikasi data (tidak ada duplikasi) Simple Conceptual data model harus DBMS independent 45 ER/EER Strategi untuk Design Schema Top Down: - mulai dengan beberapa high level entity type - bagi lagi (top down) menjadi beberapa lower-level entity type dan relationship type Bottom Up: - mulai dengan atribut - kelompokkan menjadi entity type & relationship type - tambahkan relationship-relationship baru bila ada Strategi untuk Design Schema (cont’d) Inside Out: bentuk khusus dari bottom-up mula-mula ditentukan entity type yang merupakan pusat/bagian terpenting tambahkan entity type dan relationship lain yang berhubungan satu sama lain Strategi untuk Design Schema (cont’d) Mixed: requirement dibagi-bagi menggunakan strategi top down sebagian dari schema di-design dari partisi-partisi menggunakan strategi bottom-up bagian-bagian dari komponen-komponen tersebut kemudian digabungkan Phase 2b: Design Transaksi Pada saat suatu basis data di-design, aplikasi dari transaksi utama harus sudah diketahui Transaksi-transaksi baru dapat didefinisikan kemudian Tentukan karakteristik dari transaksi dan periksa apakah basis data sudah memuat semua informasi untuk melaksanakan transaksi Phase 2b: Design Transaksi (cont’d) 46 Transaksi dapat dibagi dalam 3 bagian yaitu: - retrieval - update - mixed Phase 2a dan 2b sebaiknya dilaksanakan secara paralel dengan menggunakan umpan balik agar didapat design schema dan transaksi yang stabil Phase 3: Pemilihan DBMS Pemilihan DBMS ditentukan oleh sejumlah faktor antara lain: faktor teknis: storage, user interface, programmer, bahasa query faktor ekonomi: software, hardware, maintenance, dll faktor organisasi: kompleksitas, data, sharing antar aplikasi, perkembangan data Phase 4: Physical Design Struktur storage, akses path untuk mendapatkan performance yang baik Kriteria baik dapat dilihat dari: - response time - pemakaian storage - jumlah transaksi per unit waktu Perlu tuning untuk memperbaiki performance berdasarkan statistik pemakaian Phase 5: Implementasi Sistem Basis Data Model data ER/EER dikompilasi membentuk schema table-table dan struktur basis data Membuat basis data kosong Basis data dapat dimuati (di-load) dari sistem yang lama Transaksi dapat diimplementasikan oleh program aplikasi Siap dioperasikan 47 Normalisasi Data Slide 1 Indra Gunawan , ST 48 Slide 2   49 Normalisasi adalah proses pembentukan struktur basis data sehingga sebagian besar ambiguity bisa dihilangkan. Normalisasi data merupakan suatu proses untuk mendapatkan struktur tabel atau relasi yang efisien dan bebas dari anomali, dan mengacu pada cara data item dikelompokkan ke dalam struktur record. Slide 3    50 Untuk menghilangkan kerangkapan data Untuk mengurangi kompleksitas Untuk mempermudah pemodifikasian data Slide 4   51 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 yanglebih sederhana sampai memenuhi bentuk yang optimal. Slide 5 Tabel dengan Atribut bernilai ganda Buang atribut bernilai ganda Bentuk Normal Pertama Buang Dependensi parsial Bentuk Normal Kedua 52 Bentuk Normal Ketiga Buang Dependensi transitif Bentuk Normal Lain-lain Bentuk normal Boyce-Codd hingga Bentuk Normal Kelima Slide 6 Proses pada basis data yang memberikan efek samping yang tidak diharapkan, macamnya: –Anomali peremajaan; – Anomali penghapusan,dan – Anomali penyisipan. o o 53 Bila ada anomali maka relasi mungkin perlu dipecah menjadi beberapa tabel lagi agar diperoleh database yang optimal. Slide 7 Tabel KRS NIM Nama_MK Nilai PS-4533 Perancangan Sistem A 200512345 PS-4533 Perancangan Sistem B 200534632 PS-4533 Perancangan Sistem B 200534632 BD-5630 Sistem Basis Data A 200634123 BD-5452 Basis Data B 200612367 BD-5452 Basis Data B 200691245 BD-5452 Basis Data A 200691245 PG-3465 Pemrograman B ◼ 54 Kode_MK 200543423 Misalkan pada tabel diatas dilakukan perubahan data pada record ke 5, data nama mata kuliah basis data diganti menjadi perancangan basis data. Slide 8 Tabel KRS NIM Nama_MK Nilai PS-4533 Perancangan Sistem A 200512345 PS-4533 Perancangan Sistem B 200534632 PS-4533 Perancangan Sistem B 200534632 BD-5630 Sistem Basis Data A B 200634123 BD-5452 Perancangan Basis Data 200612367 BD-5452 Basis Data B 200691245 BD-5452 Basis Data A 200691245 PG-3465 Pemrograman B ◼ 55 Kode_MK 200543423 Pada tabel diatas akan terjadi ketidakkonsistenan pada record 5, 6 dan 7. yaitu record Kode_MK = BD-5452 berelasi dengan dua Nama_MK yang berbeda (Perancangan basis data dengan Basis data). Slide 9  Solusi Normalisasi Melakukan dekomposisi dengan menentukan ketergantungan fungsional (Functional dependency).  Dependensi : suatu hubungan dimana perubahan pada satu tabel akan mempengaruhi tabel yang lain, dimana salah satu tabel bergantung pada tabel yang lain.   Contoh ketergantungan fungsional : Ketergantungan fungsional pada tabel KRS Kode_MK Nim, Kode_MK 56 Nama_MK Nilai Slide 10 ◼ Berdasarkan ketergantungan fungsional tersebut, maka tabel KRS dapat didekomposisi menjadi 2 tabel Kode_MK Perancangan Sistem BD-5630 Sistem Basis Data BD-5452 Perancangan Basis Data PG-3465 57 Nama_MK PS-4533 Pemrograman NIM Kode_MK Nilai 200543423 PS-4533 A 200512345 PS-4533 B 200534632 PS-4533 B 200534632 BD-5630 A 200634123 BD-5452 B 200612367 BD-5452 B 200691245 BD-5452 A 200691245 PG-3465 B Slide 11   Dekomposisi tabel dapat mengurangi redudansi yang ada dan menghilangkan anomali Perancangan melalui proses normalisasi mempunyai keuntungan-keuntungan sebagai berikut : Meminimalkan ukuran penyimpanan yang diperlukan untuk penyimpanan data.  Meminimalkan resiko inkonsistensi data pada basis data.  Meminimalkan kemungkinan anomaly pembaruan.  Memaksimalkan stabilitas struktur data.  58 Slide 12  Tujuan proses normalisasi adalah mengkonversi relasi menjadi bentuk normal lebih tinggi.  Terdapat beragam tingkat bentuk normal, yaitu: 1. 2. 3. 4. 5. 6. 59 Bentuk normal pertama (1NF) Bentuk normal kedua (2NF) Bentuk normal ketiga (3NF) Bentuk normal Boyce-Codd (BCNF) Bentuk normal keempat (4NF) Bentuk normal kelima (5NF) Slide 13       60 Bentuk normal pertama (1NF) untuk menghilangkan atribut bernilai jamak. Bentuk normal kedua (2NF) untuk menghilangkan kebergantungan parsial. Bentuk normal ketiga (3NF) untuk menghilangkan kebergantungan transitif. Bentuk normal Boyce-Codd (BCNF) untuk menghilangkan anomaly tersisa disebabkan kebergantungan fungsional. Bentuk normal keempat (4NF) untuk menghilangkan kebergantungan nilai jamak. Bentuk normal kelima (5NF) untuk menghilangkan anomaly tersisa. Slide 14  61 Tiga bentuk normal pertama berkaitan dengan kebergantungan fungsional. Sementara itu bentuk keempat dan kelima berkaitan dengan redundansi yang disebabkan kebergantungan banyak nilai (multi-valued dependencies). SQL Slide 2 SQL adalah singkatan dari structured query language. Dalam bahasa inggris dibaca SEQUEL. SQL merupakan bahasa query standar yang digunakan untuk mengakses basis data relational. Standarisari SQL yang pertama oleh ANSI (American National Standards Organization), melalui publikasi Database Language SQL. Selain dari ANSI standarisasi SQL juga dilakukan oelh ISO ( International Standards Organization ) 62 Slide 3  Ada yang menyatakan SQL bukan merupakan sub bahasa Query karena SQL bukan hanya dipakai untuk memperoleh data saja, tapi juga memiliki kemampuan : 1)Pendefinisaian struktur data. 2)Pengubahan data. 3)Pengaturan sekuritas dll… 63 Slide 4  Ada juga yang mengatakan SQL sebagai subbahasa adalah karena SQL tidak mendukung pernyataan bahsa yang lengkap. SQL tidak menyediakan hal-hal berikut : 1)Pernayatan pengujian kondisi ( semacam if pada vb ). 2)Pernyataan iterasi/pengulanga ( semacam Repeat pada Pascal ). 64 Slide 5  Penggunaan SQL pada DBMS cukup luas dan banyak dipakai oleh berbagai kalangan (DBA,pemrogram, ataupun pengguna) SQL sebagai bahasa administrasi data. SQL sebagai bahasa query interaktif. SQL sebagai bahasa pemrograman basisdata. SQL sebagai bahasa klien/server. 65 Slide 6 66 Slide 7  67 Elemen dasar SQL mencakup pernyataan, nama, tipe data, konstanta, ekspresi dan fungsi bawaan. Slide 8 Pernyataan adalah Perintah SQL yang meminta sesuatu tindakan kepada DBMS SQL. pernyataan dasar SQL. 68 Pernyataan Keterangan ALTER Mengubah struktur tabel COMMIT Mengahiri sebuah eksekusi transaksi CREATE Menciptakan tabel, indeks atau view DELETE Menghapus baris dalam tabel DROP Menghapus tabel, indeks atau view GRANT Memberikan hak terhadap basisdata kepada pengguna atau grup pengguna INSERT Menambahkan sebuah baris pada tabel REVOKE Membatalkan hak terhadap basis data. ROLLBACK Mengembalikan kondisi semula apabila transaksi gagal SELECT Memilih baris dan kolom pada tabel UPDATE Mengubah nilai pada suatu baris. Slide 9  69 Nama digunakan sebagai identitas bagi objekobjek pada DBMS, contoh objek pada DBMS adalah tabel, kolom dan pengguna. Slide 10  Setiap data memiliki tipe data, terbagi menjadi dua : tipe data standart dan tipe data perluasan. Tipe Data Keterangan Char Untuk menyatakan deretan karakter ( string ) Integer Untuk menyatakan bilangan bulat Numeric Untuk menyatakan bilangan real VARCHAR Untuk menyatakan string yang panjangnya bervariasi MONEY Untuk menyatakan uang BOOLEAN Menyatakan tipe Logical ( true/false) BLOB Untuk menyatakan data biner Pemrosesan Query Slide 1 70  71 Sebuah ekspresi SQL dasar terdiri dari atas 3 klausa : Select : Untuk memilih data/field mana yg akan ditampilkan From : Untuk memilih dari tabel mana data akan ditampilkan. Where : Filtering data sesuai opsi2 yg diinginkan Slide 2   72 Sintaks dari ekspresi SQL dasar : Select F1,F2…Fn Form T1,T2…Tn Where P Keterangan : F: daftar atribut (field) T : daftar relasi (tabel) P : Filtering Slide 3 NIK NAMA KOTA 00001 Andrian Batam 00002 Adrie Batam 00003 Agus Batam 00004 Alif Medan  73 Contoh : “select nama from karyawan” , akan menghasilkan data : Nama Andrian Adrie Agus Alif Slide 4 NIK NAMA KOTA 00001 Andrian Batam 00002 Adrie Batam 00003 Agus Batam 00004 Alif Medan  74 Contoh : “select NIK,nama,kota from karyawan” , akan menghasilkan data NIK Nama Kota 00001 Andrian Batam 00002 Adrie Batam 00003 Agus Batam 00004 Alif Batam Slide 5 NIK NAMA KOTA 00001 Andrian Batam 00002 Adrie Batam 00003 Agus Batam 00004 Alif Medan  75 Contoh : “select NIK,nama,kota as alamat from karyawan” , akan menghasilkan data NIK Nama Alamat 00001 Andrian Batam 00002 Adrie Batam 00003 Agus Batam 00004 Alif Medan Slide 6    76 Klausa ini boleh tidak digunakan, klausa untuk predikat ini dapat menerapkan operator relasi (<, >, <=, >=, =, <>) dan operator logika (and, or dan not). Untuk nilai predikat yang bertipe string harus diapit dengan tanda kutip tunggal (‘ ’). Slide 7 NIK NAMA KOTA 00001 Andrian Batam 00002 Adrie Batam 00003 Agus Batam 00004 Alif Medan  77 Contoh : select * from karyawan where kota=‘Medan’ , akan menghasilkan data NIK Nama Kota 00004 Alif Medan Slide 8 NIK NAMA KOTA Gaji 00001 Andrian Batam 1000000 00002 Adrie Batam 1000000 00003 Agus Batam 1200000 00004 Alif Medan 1200000  78 Contoh : “select * from karyawan where gaji>1000000 ” , akan menghasilkan data NIK Nama Kota Gaji 00003 Agus Batam 1200000 00004 Alif Medan 1200000 Slide 9  Khusus untuk atribut yang bertipe string, dapat dilakukan pencarian dengan pola tertentu, memanfaatkan karakter : · % (percent) : berarti cocok untuk semua substring. · Ditambah klausa like 79 Slide 10  Misal : Select * From karyawan Where nama like ‘A%’ Hasil : menampilkan record-record karyawan yang namanya diawali dengan huruf A NIK Nama Kota 00001 Andrian Batam 00002 Adrie Batam 00003 Agus Batam 00004 Alif Batam 80 Slide 11  Misal : Select * From karyawan Where nama like ‘%an’ Hasil : menampilkan record-record karyawan yang namanya diawali dengan huruf A NIK Nama Kota 00001 Andrian Batam 81 Slide 12    82 Pengurutan Hasil Query Dengan SQL hasil ditampilkan dengan urutan sesuai dengan struktur penyimpanan, jika ingin menampilkan dengan urutan tertentu dengan menambahkan klausa order by. Misal : Select * From karyawan Order by NIK Hasil : menampilkan nama karyawan dari abjad terkecil hingga terbesar (ascending). NIK Nama Kota 00001 Andrian Batam 00002 Adrie Batam 00003 Agus Batam 00004 Alif Batam Slide 13    Pengurutan Hasil Query Dengan SQL hasil ditampilkan dengan urutan sesuai dengan struktur penyimpanan, jika ingin menampilkan dengan urutan tertentu dengan menambahkan klausa order by. Misal : Select * From karyawan Order by NIK desc Hasil : menampilkan nama karyawan dari abjad terbesar hingga terkecil (descending). NIK 00004 00003 00002 00001 83 Nama Alif Agus Adrie Andrian Kota Batam Batam Batam Batam Slide 14  84 Untuk menampilkan data-data agregasi seperti banyak record, total nilai suatu atribut, rata-rata nilai suatu atribut, nilai atribut terbesar ataupun terkecil dapat diperoleh dengan fungsi-fungsi berikut : count : menghitung jumlah baris suatu field. ·sum : menjumlahkan data-data numerik pada suatu field. ·avg: menghitung nilai rata-rata suatu atribut numerik. max : mengambil nilai maksimum min : mangambil nilai minimum Slide 15 NIK NAMA KOTA Gaji 00001 Andrian Batam 1000000 00002 Adrie Batam 1000000 00003 Agus Batam 1200000 00004 Alif Medan 1200000  85 Contoh : “select count(NIK) from karyawan ” , akan menghasilkan data 4 Slide 16 NIK NAMA KOTA Gaji 00001 Andrian Batam 1000000 00002 Adrie Batam 1000000 00003 Agus Batam 1200000 00004 Alif Medan 1200000  86 Contoh : “select sum(gaji) from karyawan ” , akan menghasilkan data 4 400 000 Slide 17   87 SQL juga dilengkapi dengan sejumlah perintah untuk melakukan manipulasi data seperti penambahan record baru, pengubahan nilai atribut dan penghapusanrecord. Ada tiga perintah : Insert Delete Update Slide 18 NIK NAMA KOTA Gaji 00001 Andrian Batam 1000000 00002 Adrie Batam 1000000 00003 Agus Batam 1200000 00004 Alif Medan 1200000 00005 Arie Medan 1150000  88 Contoh : “insert into karyawan values(‘00005’,’Arie’,’Medan’,’1150000’ ” , akan menambah 1 baris data data Slide 19 NIK NAMA KOTA Gaji Contoh : “delete from karyawan” Akan menghapus semua data pada tabel karyawan  89 Slide 20 NIK NAMA KOTA Gaji 00001 Andrian Batam 1000000 00002 Adrie Batam 1000000 00003 Agus Batam 900000 00004 Alif Medan 1200000 00005 Arie Medan 1150000  90 Contoh : “update karyawan set gaji=900000 where nama=‘Agus’ Akan mengubah data gaji agus menjadi 900000 Slide 21 91  Null pada Field table artinya adalah tidak ada data atau kosong  Contoh penggunaanna adalah “select * from karyawan where gaji=null” “delete from karyawan where gaji=null” “update karyawan set gaji=0 where gaji=null” Slide 22 NIK NAMA KOTA Gaji 00001 Andrian Batam 1000000 00002 Adrie Batam 1000000 00003 Agus Batam 00004 Alif Medan 1200000 00005 Arie Medan 1150000  Contoh : “update karyawan set gaji=null where nama=‘Agus’ Akan mengubah data gaji agus menjadi kosong Bekerja dengan SQL BEKERJA DENGAN SQL Create Drop Alter Insert Update Delete Select 92 CREATE Membuat Database Syntax : CREATE DATABASE namadatabase; Menampilkan Database : SHOW DATABASES; DROP Menghapus Database Syntax : DROP DATABASE namadatabase; ALTER Menambah primary key syntax : ALTER TABLE namatabel ADD PRIMARY KEY (namakolom); Menghapus Primary key Syntax : ALTER TABLE namatabel DROP PRIMARY KEY ; ALTER Menambah kolom baru pada tabel Syntax : ALTER TABLE namatabel ADD fieldbaru tipe; Mengubah type data atau lebar kolom Syntax : ALTER TABLE namatabel MODIFY COLUMN field tipe 93 ALTER Mengubah Nama Kolom Syntax : ALTER TABLE namatabel CHANGE COLUMN namalamakolom namabarukolom tipedatanya; ALTER Menghapus kolom pada tabel Syntax : ALTER TABLE namatabel DROP COLUMN namakolom; Mendefinisikan Foreign Key ALTER TABLE namatabel ADD FOREIGN KEY (namakolom) REFERENCES namatabelinduk (namakolominduk) ON UPDATE CASCADE ON DELETE NO ACTION; ALTER Menghapus Foreign Key Syntax : ALTER TABLE namatabel DROP FOREIGN KEY; INSERT Untuk menambah baris pada tabel INSERT INTO namatabel VALUES (nilai1,nilai2,nilai-n); DELETE Untuk Menghapus baris pada tabel Syntax : DELETE FROM namatabel [WHERE kondisi]; UPDATE Untuk Mengubah data pada 1 atau banyak kolom dan 1 atau banyak baris Syntax : UPDATE namatabel SET kolom1 = nilai1, kolom2 = nilai2 [WHERE kondisi]; 94 SELECT Menampilkan semua data utk semua kolom menggunakan Asterik * Syntax : SELECT * FROM namatabel; Menampilkan data untuk kolom tertentu Syntax : SELECT kolom1,kolom2,kolom-n FROM namatabel; SELECT Merename nama kolom di hasil tampilan Syntax : SELECT namakolomlama AS namakolombaru FROM namatabel; Menggunakan alias untuk nama table Syntax : SELECT nmalias.jenis, nmalias.harga FROM namatabel nmalias; SELECT Menampilkan data lebih dari 1 tabel Syntax : SELECT * from namatabel1,namatabel2,namatabel-n; Proteksi SQL KONKURENSI KONSEP DBMS pada umumnya memiliki fasilitas proteksi data, yaitu fasilitas yang bertujuan untuk melindungi data dari berbagai resiko yang mungkin terjadi dan membawa dampak dalam basis data Berbagai kemungkinan yang diantisipasi oleh fasilitas proteksi data adalah : Gangguan listrik 95 Kerusakan disk Kesalahan perangkat lunak yang akan menyebabkan data dalam kondisi tidak konsisten Pengaksesan oleh user yang tidak berwenang. Untuk menghindari sabotase terhadap basis data Akses yang konkuren oleh user maupun aplikasi pada waktu yang bersamaan sehingga dapat menyebabkan data tidak konsisten KONSEP Untuk memproteksi data terhadap segala macam kemungkinan, DMBS menyediakan kontrol untuk : Security (Keamanan) Integrity (Integritas) Recovery (Pemulihan) Concurrency (Konkurensi) SECURITY Security merupakan suatu proteksi terhadap pengrusakan data dan pemakaian data oleh user yang tidak berwenang. Organisasi harus dapat mengidentifikasi masalah keamanan yang mungkin mengganggu jalan operasional basis data. Penyalahgunaan basis data dapat dikategorikan sebagai tindakan yang disengaja maupun yang tidak sengaja. SECURITY Untuk kategori yang tidak disengaja dapat disebabkan oleh : Kerusakan selama proses transaksi Anomali yang disebabkan oleh akses basis data yang konkuren Anomali yang disebabkan oleh pendistribusian data pada beberapa komputer Kesalahan logika yang dapat mengancam kemampuan transaksi untuk mempertahankan konsistensi basis data 96 SECURITY Untuk kategori kedalam tindakan yang disengaja antara lain disebabkan oleh : Pengambilan data/pembacaan data oleh user yang tidak berwenang Pengubahan data oleh user yang tidak berwenang Penghapusan data oleh user yang tidak berwenang SECURITY HARDWARE Kebakaran, banjir, gempa, radiasi, bom, pencurian, kehilangan data karena padam listrik, kesalahan mekanisme keamanan. SOFTWARE (DBMS) Memberikan akses yang terlalu luas, pencurian program, kesalahan program JARINGAN KOMUNIKASI Kabel yang tidak terkoneksi DATABASE Aturan/ amandemen yang tidak di otorisasi. Penduplikasian data / pencurian data. Kehilangan data akibat listrik mati SECURITY END USER Menggunakan hak akses user lain Melihat dan menutup data yang tidak diotorisasi Staff yang tidak di training Pemasukan data yang dilakukan oleh hacker Virus, pemerasan PROGRAMMER/ OPERATORS Membuat password Membuat program yang tidak aman 97 Staff yang tidak ditraining Kebijakan keamanan dan prosedur Pemogokan staff DBA Kebijaksanaan Keamanan dan prosedur SECURITY Untuk mengatasi masalah ini, security harus dilakukan pada beberapa tingkatan : FISIK Menempatkan sistem komputer pada lokasi yang aman secara fisik dari serangan yang dapat merusak. MANUSIA Wewenang pemakai harus dilakukan dengan hati-hati untuk mengurangi kemungkinan adanya manipulasi oleh pemakai yang tidak berwenang SISTEM OPERASI Walaupun sistem databasenya aman, kelemahan pada sistem operasi memungkinkan pengaksesan data oleh pihak tidak berwenang, karena hampir seluruh jaringan sistem database menggunakan akses jarak jauh melalui terminal/jaringan. SISTEM DATABASE Beberapa pemakai yang berwenang dalam sistem database mungkin hanya boleh mengakses sebagian databasenya, yang lainnya hanya boleh melihat dan menggunakan tanpa boleh mengubahnya. Hal ini harus dapat dilakukan dalam sistem tersebut. SECURITY Keamanan data dapat dilakukan dengan otorisasi, tabel view, backup data dan recovery, integritas data, enkripsi. Perintah untuk pemberian dan pengambilan wewenang dengan SQL, berturut - turut adalah : GRANT dan REVOKE Contoh : GRANT ALL PRIVILEGES ON *.* TO monty@localhost IDENTIFIED BY 'qwerty' WITH GRANT OPTION; FLUSH PRIVILEGES; 98 Contoh : REVOKE CREATE ON penjualan.* FROM admin@localhost; FLUSH PRIVILEGES; SECURITY BACKUP Backup merupakan proses secara periodik yang mengambil duplikat dari database dan melakukan logging file (dan mungkin juga program) ke media penyimpanan eksternal. JOURNALING/LOG FILE Untuk membuat transaksi database track pada tempatnya, DBMS menggunakan log ataupun jurnal yang berisi informasi mengenai perubahan yang terjadi pada database. SECURITY CHECKPOINT Informasi pada jurnal digunakan untuk memulihkan database dari kegagalan yang dilakukan. Satu kesulitan dengan skema ini adalah ketika kegagalan terjadi, tidak diketahui seberapa jauh jurnal untuk kembali mencarinya dan berakhir dengan melakukan transaksi REDO. Untuk membatasi pencarian dan pemrosesan secara teratur digunakan tehnik checkpoint/pos pemeriksaan. SECURITY ENCRYPTION Merupakan pengkodean data dengan algoritma khusus algoritma khusus sehingga data yang dikirim tidak dapat dibaca sebelum adanya proses deskripsi. KONSEP INTEGRITAS Salah satu karakteristik sistem informasi yang baik adalah kemampuannya memberikan informasi yang akurat dan tepat waktu. Keakuratan informasi hanya dapat diperoleh jika didukung perancangan dan implementasi database yang handal. Integrity di dalam istilah basis data berarti memeriksa keakuratan dan validasi data. KONSEP INTEGRITAS Oleh karena itu database harus menjamin integritas (keutuhan) data yang disimpannya. Harus dijamin agar perubahan terhadap basis data yang dilkaukan user yang berhak tidak menghasilkan ketidakkonsistenan data. Harus dijamin pula agar database tidak mengalami kerusakan secara sengaja. 99 Untuk itu dalam database dikenal dengan aturan integritas (integrity constraints) yang mengatur definisi dan modifikasi terhadap database sehinggan menjamin integritas database tersebut. INTEGRITAS Terdapat beberapa jenis aturan integritas (integrity constraints) yang menjamin konsistensi dan integritas database, yaitu : Aturan integritas entitas (Entity Integrity Constraints) Aturan Domain (Domain Constraints) Aturan integritas refensial (Referential Integrity Constraints) Aturan berbasis atribut (Attribute-based Constraints) dan Aturan berbasis Record (Tuple Based Constraints) Pernyataan (Assertions) Pemicu (Trigger) INTEGRITAS Aturan Integritas Entitas (Entity Integrity Constraints) Aturan ini diterapkan dengan cara mendeklarasikan kunci primer (primary key) untuk setiap entitas agar dijamin tidak ada baris-baris dalam table yang memiliki nilai yang sama (duplikat record). Aturan Domain (Domain Integrity) Domain merupakan kumpulan tipe data dan jangkauan nilai yang diperbolehkan pada atribut sebuah relasi. Untuk setiap atribut yang didefinisika dalam suatu relasi harus ditentukan definisi domain atribut tersebut. Definisi domain dari sebuah atribut akan mencakup : tipe data, panjang, format, jangkauan, nilai yang memungkinkan, keunikan dan kemungkinan data null. Aturan-aturan yang dirumuskan dalam definisi domain tersebut dinamakan aturan domain (domain constraints). INTEGRITAS Aturan integritas refensial (Referential Integrity Constraints) Aturan Integritas Referensial adalah aturan yang mengatur kebeneran referensi dari satu obyek ke obyek lain dalam database. Attributed-Based Constraints dan Tuple-Based Constraints 100 Adalah aturan yang menentukan bahwa pada saat dilakukan insert dan update, nilai atribut tertentu harus memenuhi kondisi tertentu. Jika kondisi tidak dipenuhi maka system akan menolak dilakukannya proses input atau update. INTEGRITAS Assertions Assertions adalah aturan yang diterapkan untuk membuat agar database tetap pada kondisi yang diinginkan. Trigger Trigger adalah aturan yang nengeksekusi peritah secara otomatis sebagai akibat sampingan sari proses modifikasi (insert/delete/update) dalam database. Ruang lingkup trigger bisa mencakup atribut dalam satu table atau dapat juga atribut dari beberapa table. KONKURENSI Hampir semua DBMS adalah sistem multi user. Sistem seperti ini memerlukan mekanisme pengontrolan konkuren. Tujuan dari mekanisme ini adalah untuk menjamin bahwa transaksitransaksi yang konkuren tidak saling mengganggu operasinya masing-masing. Terdapat beberapa masalah yang akan timbul dalam menjalankan transaksi transaksi yang konkuren. Tiga masalah yang umum adalah : 1. Masalah kehilangan modifikasi 2. Masalah modifikasi sementara 3. Masalah analisis yang tidak konsisten 1. Masalah Kehilangan Modifikasi • 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. 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). 101 • 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 Pada waktu t2 transaksi A memodifikasi R • Karena transaksi B dibatalkan pada waktu t3, maka transaksi A memodifikasi record yang salah. Masalah Analisis yang Tidak Konsisten Nilai 1 = 40 Nilai 2 = 50 Nilai 3 = 30 • 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 3 sudah dimodifikasi menjadi 20 ( transaksi B sudah melakukan commit sebelum transaksi A membaca nilai 3 ) KONKURENSI Mekanisme pengontrol issue konkurensi Data 1. Locking Locking adalah salah satu mekanisasi pengontrol konkuren. Konsep dasar : pada saat suatu transaksi memerlukan jaminan kalau record yang diinginkan tidak akan berubah secara 102 mendadak, maka diperlukan kunci untuk record tersebut. Fungsi kunci (lock) adalah menjaga record tersebut agar tidak dimodifikasi transaksi lain. 2. 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. Aplikasi Basis Data Slide 2 Hubungan DBMS & Aplikasi BD End-User Aplikasi Basis Data AdvancedUser DBMS Basis Data 103 Slide 3 Model hubungan DBMS & Aplikasi BD DBMS terpisah dg aplikasi  DBMS menyatu dg aplikasi  104 Slide 4  DBMS terpisah dg aplikasi     Aplikasi tidak berinteraksi lgs dg BD, tetapi melalui DBMS sbg perantara. DBMS bisa melakukan aktifitas sendiri yg bisa ditangkap oleh aplikasi Contoh DBMS : MS SQL Server, Oracle, IBM DB2, MySQL Cocok untuk aplikasi multi-user, yg berat Aplikasi DBMS Aplikasi 105 Basisdata Slide 5  DBMS menyatu dg aplikasi      Aplikasi BD yg dibuat menyatu dg DBMS pd saat pemakaiannya Aplikasi BD berada ‘di bawah’ DBMS DBMS hrs diaktifkan dulu sgl menjalankan aplikasi Contoh DBMS : dBase III+, FoxBase, FoxPlus, CAClipper, MS-Access Cocok untuk aplikasi single-user / standalone, yg ringan DBMS | Aplikasi DBMS | Aplikasi 106 Basis Data Slide 6 ARSITEKTUR DATABASE 1. 2. 3. 4. 5. 107 TELEPROCESSING STAND ALONE FILE SERVER CLIENT SERVER DISTRIBUTED DBMS Slide 7 TELEPROCESSING Arsitektur tradisional untuk sistem multi user adalah teleprocessing, dimana satu komputer dengan sebuah CPU dan sejumlah terminal seperti pada gambar di bawah ini.  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. Terminalterminal tersebut mengirimkan pesan melalui subsistem pengontrol komunikasi pada sistem operasi ke program aplikasi, yang bergantian menggunakan layanan DBMS.  108 Slide 8 TELEPROCESSING  109 Arsitektur teleprocessing Slide 9 TELEPROCESSING  110 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. • contoh : ATM mesin di bank-bank. Slide 10 STAND ALONE  111 Adalah suatu arsitektur basis data dimana program aplikasi ,basis data berada dalam satu komputer dan berdiri sendiri tidak berhubungan dengan komputer lain. Slide 11 STAND ALONE 112 Slide 12 FILE SERVER  113 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). Slide 13 ARSITEKTUR FILE SERVER 114 Slide 14 FILE SERVER   Dengan cara ini, file server berfungsi sebagai sebuah hard disk yang digunakan secara bersamaan. Kerugian arsitektur file-server adalah :    115 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 Slide 15 CLIENT SERVER Client Server  Untuk mengatasi kelemahan arsitekturarsitektur di atas maka dikembangkan arsitektur client-server. Client-server menunjukkan cara komponen software berinteraksi dalam bentuk sistem.  116 Slide 16 CLIENT SERVER  117 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. Slide 17 CLIENT SERVER 118 Slide 18 CLIENT SERVER 119  Dalam konteks database, client mengatur interface berfungsi sebagai workstation tempat menjalankan aplikasi database. Client menerima permintaan pemakai, memeriksa sintaks dan generate kebutuhan database dalam SQL atau bahasa yang lain. Kemudian meneruskan pesan ke server, menunggu response dan bentuk response untuk pemakai akhir. Server menerima dan memproses permintaan database 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. Slide 19 CLIENT SERVER  Adapun beberapa keuntungan jenis arsitektur ini adalah :  Memungkinkan akses database yang besar  Menaikkan performa  Jika client dan server diletakkan pada komputer yang berbeda       120 kemudian CPU yang berbeda dapat memproses aplikasi secara paralel. Biaya untuk hardware pc client dapat dikurangi Hanya server yang membutuhkan storage dan kekuatan proses yang cukup untuk menyimpan dan mengatur database Biaya komunikasi jaringan berkurang Aplikasi menyelesaikan bagian operasi pada client dan mengirimkan hanya bagian yang dibutuhkan untuk akses database 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 Slide 20 CLIENT SERVER Client Server Mengatur user interface Menerima dan memproses database yang diminta dari client Menerima dan memeriksa sintaks input Memeriksa autorisasi dari pemakai Memproses aplikasi Menjamin tidak terjadi pelanggaran terhadap integrity constraint Generate permintaan database dan Melakukan query/pemrosesan update memindahkannya ke server dan memindahkan response ke client Memberikan response balik kepada Menyediakan akses database secara pemakai bersamaan Menyediakan kontrol recovery 121 Slide 21 CLIENT SERVER  Ada beberapa jenis model client – server arsitektur yaitu :  Two Tier Arsitektur  Contoh : Aplikasi2 sistem informasi skala kecil-menengah  Three Tier Arsitektur  Contoh : Aplikasi2 berskala besar, web based 122 Slide 22 TWO TIER 123 Slide 23 THREE TIER 124 Slide 24 DISTRIBUTED DBMS  125 Jika pada resource sharing system dan client server system menggunakan data bus yang tercontrol maka Ddbms menggunakan data bus yang didistribusikan untuk masing – masing komputer local. Slide 25 DISTRIBUTED DBMS 126 Slide 26 Pertimbangan memilih Software utk membangun aplikasi Basisdata:   Kecocokan DBMS & development tools ○  Dukungan development tools thd arsitektur aplikasi basisdata ○  ○ Idealnya hanya ada 1 macam DBMS yg dipilih u/ mengelola Basisdata Perlu kompromi saat memilih development tools yg cocok untuk semua DBMS Kemudahan pengembangan & migrasi aplikasi Basisdata ○ ○ 127 Tdk semua development tools memberi dukungan yg baik thd arsitektur client-server Independensi development tools & DBMS ○  Software yg dipilih hrs menjamin tersedianya fasilitas yg dp digunakan untuk berinteraksi dg DBMS scr penuh Development tools yg dipilih hrs mendukung pengembangan ke masa depan, ex: web based kemudahan migrasi, ex: dari form-base mjd web based Slide 27  Pertimbangan kinerja/kecepatan operasi ke Basisdata ditentukan oleh:       128 DBMS Arsitektur Hardware yg menjadi platform Jumlah pemakai yg terlibat Volume data yg diolah Tingkat kompleksitas operasi Basisdata Cara penulisan aplikasi Basisdata Slide 28  Pertimbangan dlm penulisan aplikasi BasisData: 1. 2. 3. 4. 5. 129 Menghindari pemakaian fungsi ato perhitungan pd query, terlebih pd kriteria query Operasi join pd beberapa tabel dp digunakan untuk efisiensi perintah & banyaknya data yg hrs ditangani Pd sistem multi-user dg tk konkurensi tinggi, sesegara mgk melepaskan penguncian tabel di akhir setiap query Manfaatkan sebanyak mungkin fungsi yg tlh disediakan DBMS ato development tools dlm operasi Basisdata Jika ada perintah looping dg penelusuran ke seluruh Basisdata pd sebuah tabel, sedapat mungkin menempatkan berbagai perintah yg tdk relevan di luar perulangan TOPIK TERKAIT Untuk membaca topik-topik lainnya seputar dunia pemrograman, jaringan dan keamanan, silakan merujuk ke penelitian saya lainnya (Abdilana & Gunawan, 2022; Berliana dkk., 2022; Gunawan, 2014, 2019, 2020, 2021a, 2021b, 2021c, 2021d, 2021e, 2021f, 2021g; Gunawan dkk., 2018; Gunawan & Yelmi, 2021; Huzaeni & Gunawan, 2022; Indrayana dkk., 2022; Permatasari dkk., 2018; Pratama dkk., 2022; D. C. Purnomo & Gunawan, 2022; D. Purnomo & Gunawan, 2021; Y dkk., 2022) 130 PUSTAKA Abdilana, R., & Gunawan, I. I. (2022). Implementasi Metode SAW dalam Sistem Pendukung Keputusan Pemilihan Smartphone Menggunakan Scratch. JIIFKOM (Jurnal Ilmiah Informatika dan Komputer), 1(1), 35–40. Berliana, C. D., Saputra, T. A., & Gunawan, I. (2022). Analisis Serangan dan Keamanan pada Denial of Service (DOS): Sebuah Review Sistematik. JIIFKOM (Jurnal Ilmiah Informatika dan Komputer), 1(2), 33–38. Gunawan, I. (2014). I-POLINK: Indonesian Police Link Model Knowledge Management Investigasi Forensika Digital. https://doi.org/10.13140/RG.2.2.28996.32647 Gunawan, I. (2019). PEMROGRAMAN BAHASA ASSEMBLY MIKROPROSESOR 8086 (1 ed.). Guepedia. Gunawan, I. (2020). Optimasi Model Artificial Neural Network untuk Klasifikasi Paket Jaringan. SIMETRIS, 14(2), 1–5. https://doi.org/10.51901/simetris.v14i2.135 Gunawan, I. (2021a). Keamanan Data: Teori dan Implementasi (1 ed.). Jejak. Gunawan, I. (2021b). Analisis Malware Botnet Proteus Pendekatan Static dan Dinamic. SIMETRIS, 15(1), 12–17. https://doi.org/10.51901/simetris.v15i01.172 Gunawan, I. (2021c). Analisis Keamanan Data Pada Website Dengan Wireshark. JES (Jurnal Elektro Smart), 1(1), 16–19. Gunawan, I. (2021d). Analisis Keamanan Jaringan Wifi Menggunakan Wireshark. JES (Jurnal Elektro Smart), 1(1), 10–12. Gunawan, I. (2021e). Analisis Keamanan Wifi Menggunakan Wireshark. JES (Jurnal Elektro Smart), 1(1), 7–9. 131 Gunawan, I. (2021f). Analisis Layer Aplikasi (Protokol HTTP) menggunakan Wireshark. JES (Jurnal Elektro Smart), 1(1), 13–15. Gunawan, I. (2021g). Analisis Keamanan Aplikasi Android Non Playstore Dengan Metode Digital Forensik Pendekatan Statis Dan Dinamis. SIMETRIS, 15(2), 29–34. https://doi.org/10.51901/simetris.v15i2.225 Gunawan, I., Afrina, & Sofrawida, C. (2018). SISTEM PENDUKUNG KEPUTUSAN PEMILIHAN KARYAWAN TERBAIK PADA LAMOIST LAYERS BATAM. JR : Jurnal Responsive Teknik Informatika, 2(02), 39–61. Gunawan, I., & Yelmi, Y. (2021). Rancang Bangun Robot Pengawas Dokumen Berbasis Raspberry Pi2 dengan Pemrograman Python. Jurnal Ilmu Komputer Dan Bisnis, 12(1), 144–149. Huzaeni, F., & Gunawan, I. I. (2022). Implementasi Metode SAW dalam Sistem Pendukung Keputusan Pemilihan Laptop Menggunakan Scratch. JIIFKOM (Jurnal Ilmiah Informatika dan Komputer), 1(1), 30–34. Indrayana, T., Warijan, W., Sutarmi, S., Purnomo, D., & Gunawan, I. (2022). Developing systems application based on android as tool for determinant stunting factors in the COVID-19 pandemic era. International Journal of Health Sciences, 6(S1), 257–268. https://doi.org/10.53730/ijhs.v6nS1.4763 Permatasari, R. D., Gunawan, I., & Syahputra, M. R. (2018). RANCANG BANGUN APLIKASI PENANGANAN BAGASI BERBASIS MOBILE WEB PADA PT SRIWIJAYA AIR. Jurnal Teknik Ibnu Sina (JT-IBSI), 3(1). https://doi.org/10.36352/jt-ibsi.v3i1.101 Pratama, T. I. M., Songida, M. D. F., & Gunawan, I. (2022). Analisis Serangan dan Keamanan pada SQL Injection: Sebuah Review Sistematik. JIIFKOM (Jurnal Ilmiah Informatika dan Komputer), 1(2), 27– 32. 132 Purnomo, D. C., & Gunawan, I. I. (2022). Penerapan Metode Simple Additive Weighting (SAW) Dalam Sistem Pemilihan Kamera Menggunakan Scratch. JIIFKOM (Jurnal Ilmiah Informatika dan Komputer), 1(1), 16–21. Purnomo, D., & Gunawan, I. (2021). Decision Support System for Determination of Scholarship Using Scratch Programming Based on SAW Method. International Journal of Business and Information Technology, 2, 72–29. https://doi.org/10.47927/ijobit.v2i2 Y, A. K., Alfaren, G., & Gunawan, I. (2022). Analisis Serangan Penetration Testing: Sebuah Review Sistematik. JIIFKOM (Jurnal Ilmiah Informatika dan Komputer), 1(2), 21–26. 133