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