• Tidak ada hasil yang ditemukan

UNIVERSITAS INDO GLOBAL MANDIRI

N/A
N/A
Protected

Academic year: 2021

Membagikan "UNIVERSITAS INDO GLOBAL MANDIRI"

Copied!
93
0
0

Teks penuh

(1)

Pemrograman C Pengenalan Borland C++

Diktat

SISTEM BASIS DATA

Manajemen Informatika D3

Fakultas Ilmu Komputer Suzan Agustri, S.Kom., M.T.I.

UNIVERSITAS INDO GLOBAL MANDIRI

2017

NPM : Nama : Kelas :

(2)

Sistem Basis Data

S I L A B U S

Kode Mata Kuliah : MKB226016 Jumlah SKS : 4 SKS Kelas : 122601

Nama Mata Kuliah : Sistem Basis Data Jadwal : Selasa

Dosen : Suzan Agustri, S.Kom., M.T.I. Bahasa Pengantar : Bahasa Indonesia

Objektif

Mata kuliah ini merupakan teori basis data yang sangat mendasar tanpa memerlukan prasyarat pengetahuan tentang basis data sebelumnya. Materi mata kuliah ini difokuskan pada tiga hal pokok, yaitu: dasar-dasar basis data, model data dan bagaimana membuat model data yang baik. Selain itu, mata kuliah ini juga membahas contoh-contoh aturan yang berlaku di lapangan yang terefleksikan dalam perancangan basis data. Sejumlah aspek lain yang relevan, seperti DBMS, SQL, aplikasi basis data dan perkembangan teknologi terbaru juga dibahas dalam mata kuliah ini.

Penilaian: Kehadiran 5%, Quiz 20%, Tugas 20%, UTS 25%, UAS 30%.

Buku Teks Utama: Thomas Connolly, Carolyn Begg, Database Systems 4th Ed., 2005 Prasyarat: -

Jadwal Perkuliahan:

Jadwal perkuliahan berikut merupakan panduan yang dapat berubah sewaktu-waktu sesuai kebutuhan perkuliahan berdasarkan pertimbangan dosen.

(3)

Sistem Basis Data

Minggu ke- Tanggal Topik

1 14-Feb-17 Pengantar Basis Data

2 21-Feb-17 Lingkungan Basis Data

3 28-Feb-17 Model Data Relasional

4 7-Mar-17 Structured Query Language

4 7-Mar-17 QUIZ

5 14-Mar-17 Entity Relationship Diagram

6 21-Mar-17 Normalisasi

7 28-Mar-17 UTS

8 4-Apr-17 Proses Perancangan Basis Data 9 11-Apr-17 Model Enhanced Entity Relationship

9 11-Apr-17 QUIZ

10 18-Apr-17 Database Control

11 25-Apr-17 Studi Kasus 1 Perancangan Basis Data 12 2-Mei-17 Studi Kasus 2 Perancangan Basis Data 13 9-Mei-17 Studi Kasus 3 Perancangan Basis Data 14 16-Mei-17 Studi Kasus 4 Perancangan Basis Data

(4)

Sistem Basis Data Pengantar Basis Data

PENGANTAR BASIS DATA

Basis data menyediakan fasilitas atau mempermudah dalam menghasilkan informasi yang digunakan oleh pemakai untuk mendukung pengambilan keputusan. Hal inilah yang menjadikan alasan dari penggunaan teknologi basis data pada saat sekarang (dunia bisnis). Berikut ini contoh penggunaan aplikasi basis data dalam dunia bisnis:

 Bank: Pengelolaan data nasabah, akunting, semua transaksi perbankan  Bandara: Pengelolaan data reservasi, penjadwalan

 Universitas: Pengelolaan pendaftaran, alumni

Penjualan: Pengelolaan data customer, produk, penjualan

 Pabrik: Pengelolaan data produksi, persediaan barang, pemesanan, agen  Kepegawaian: Pengelolaan data karyawan, gaji, pajak

Telekomunikasi: Pengelolaan data tagihan, jumlah pulsa

SISTEM PEMROSESAN FILE

Gambar 1. Sistem pemrosesan file untuk suatu Universitas

Keterangan:

File Mahasiswa: Mhs (npm, nama, alamat, tgl_lahir) MataKul (kd_mk, nama_mk, sks) File MataKuliah: MataKul (kd_mk, nama, sks)

Sebelumnya, sistem yang digunakan untuk mengatasi semua permasalahan bisnis, menggunakan pengelolaan data secara tradisional dengan cara menyimpan banyak record pada banyak file yang terpisah, yang disebut juga Sistem Pemrosesan File. Dimana masing-masing file diperuntukkan hanya untuk satu program aplikasi saja. Perhatikan

Program Aplikasi Mahasiswa file mahasiswa

Program Aplikasi Mata Kuliah file mata kuliah mahasiswa

(5)

Sistem Basis Data Pengantar Basis Data

Gambar 1 mengenai suatu universitas yang mempunyai dua sistem yakni sistem yang memproses data mahasiswa dan sistem yang mengelola data mata kuliah.

Kelemahannya dari sistem pemrosesan file ini antara lain:

1. Timbulnya Data Rangkap (Redundancy Data) dan Ketidakkonsistensi Data (Inconsistency Data)

Karena file dan program aplikasi disusun oleh programmer yang berbeda, sejumlah informasi mungkin memiliki duplikasi dalam beberapa file. Sebagai contoh nama mata kuliah dan sks dari mahasiswa dapat muncul pada suatu file memiliki record mahasiswa dan juga pada suatu file yang terdiri dari record mata kuliah. Kerangkapan data seperti ini dapat menyebabkan pemborosan tempat penyimpanan dan biaya akses yang bertambah. Disamping itu dapat terjadi inkonsistensi data. Misalnya, apabila terjadi perubahan jumlah sks mata kuliah, sedangkan perubahan hanya diperbaiki pada file mata kuliah dan tidak diperbaiki pada file mahasiswa. Hal ini dapat mengakibatkan kesalahan dalam laporan nilai mahasiswa.

2. Kesukaran dalam Mengakses Data

Munculnya permintaan-permintaan baru yang tidak diantisipasikan sewaktu membuat program aplikasi, sehingga tidak memungkinkan untuk pengambilan data.

3. Data Terisolir (Isolation Data)

Karena data tersebar dalam berbagai file, dan file mungkin dalam format yang berbeda, akan sulit menuliskan program aplikasi baru untuk mengambil data yang sesuai.

4. Masalah Pengamanan (Security Problem)

Tidak semua pemakai diperbolehkan mengakses seluruh data. Bagian Mahasiswa hanya boleh mengakses file mahasiswa. Bagian Mata Kuliah hanya boleh mengakses file mata kuliah, tidak boleh mengakses file mahasiswa. Tetapi sejak program-program aplikasi ditambahkan secara ad-hoc maka sulit melaksanakan pengamanan seperti yang diharapkan.

5. Ketergantungan Data (Data Dependence)

Apabila terjadi perubahan atau kesalahan pada program aplikasi maka pemakai tidak dapat mengakses data.

(6)

Sistem Basis Data Pengantar Basis Data

SISTEM BASIS DATA

Seiring dengan berjalannya waktu, lambat laun sistem pemrosesan file mulai ditinggalkan karena masih bersifat manual, yang kemudian dikembangkanlah sistem pemrosesan dengan pendekatan basis data.

Gambar 2. Sistem basis data untuk suatu universitas

Keterangan:

Mhs ( npm, nama, alamat, tgl_lahir ) Mt_kul ( kd_mk, nama_mk,sks )

Perhatikan Gambar 2 di atas. Pada sistem ini record data disimpan pada satu tempat yakni basis data dan diantara program aplikasi maupun pemakai terdapat DBMS (Database Management System).

Konsep Dasar Basis Data

Data adalah representasi fakta dunia nyata yang mewakili suatu objek seperti manusia (pegawai, mahasiswa, pembeli), barang, hewan, peristiwa, konsep, keadaan, dan sebagainya yang direkam dalam bentuk angka, huruf, simbol, teks, gambar, bunyi atau kombinasinya.

Basis Data adalah sekumpulan data yang terintegrasi yang diorganisasikan untuk memenuhi kebutuhan para pemakai di dalam suatu organisasi.

DBMS (DataBase Management System) adalah Perangkat Lunak yang menangani semua pengaksesan ke basis data

Program Aplikasi Mahasiswa

Basis data Universitas

Program Aplikasi Mata kuliah mahasiswa

mata kuliah

(7)

Sistem Basis Data Pengantar Basis Data

Sistem Basis Data terdiri dari basis data dan DBMS.

Gambar 3. Sistem Basis Data

Istilah - Istilah Dasar Basis Data Enterprise

Suatu bentuk organisasi seperti: bank, universitas, rumah sakit, pabrik, dan sebagainya. Data yang disimpan dalam basis data merupakan data operasional dari suatu enterprise. Contoh data operasional: data keuangan, data mahasiswa, data pasien

Entitas (Entity)

Suatu obyek yang dapat dibedakan dari lainnya yang dapat diwujudkan dalam basis data. Contoh Entitas dalam lingkungan bank terdiri dari: Nasabah, Simpanan, Hipotik

Contoh Entitas dalam lingkungan universitas terdiri dari: Mahasiswa, Mata kuliah Kumpulan dari entitas disebut Himpunan Entitas

Contoh: semua nasabah, semua mahasiswa

Atribut (Elemen Data)

Karakteristik dari suatu entitas.

Contoh: Entitas Mahasiswa atributnya terdiri dari NPM, Nama, Alamat, Tanggal lahir.

Nilai Data (Data Value)

Isi data/informasi yang tercakup dalam setiap elemen data.

Contoh Atribut Nama Mahasiswa dapat berisi Nilai Data: Natawiangga, Nadya, Fatahillah

Kunci Elemen Data (Key Data Element)

Tanda pengenal yang secara unik mengidentifikasikan entitas dari suatu kumpulan entitas. Contoh Entitas Mahasiswa yang mempunyai atribut-atribut NPM, nama, alamat, tanggal lahir menggunakan Kunci Elemen Data NPM.

(8)

Sistem Basis Data Pengantar Basis Data

Record Data

Kumpulan Isi Elemen data yang saling berhubungan.

Contoh: kumpulan atribut NPM, nama, alamat, tanggal lahir dari Entitas Mahasiswa berisikan: "2009210123", "Natawiangga", "Jl. Sirsak 28 Palembang", "11 Oktober 1991".

Pengguna Basis Data 1. System Engineer

Tenaga ahli yang bertanggung jawab atas pemasangan Sistem Basis Data, dan juga mengadakan peningkatan dan melaporkan kesalahan dari sistem tersebut kepada pihak penjual

2. DataBase Administrator (DBA)

Tenaga ahli yang mempunyai tugas untuk mengontrol sistem basis data secara keseluruhan, meramalkan kebutuhan akan sistem basis data, merencanakannya dan mengaturnya.

Tugas DBA :

o Mengontrol DBMS dan software

o Memonitor siapa yang mengakses basis data o Mengatur pemakaian basis data

o Memeriksa security, integrity, recovery dan concurrency

Program Utilitas yang digunakan oleh DBA: o Loading Routines

Membangun versi utama dari basis data o Reorganization Routines

Mengatur/mengorganisasikan kembali basis data o Journaling Routines

Mencatat semua operasi pemakaian basis data o Recovery Routines

Menempatkan kembali data, sebelum terjadinya kerusakan o Statistical Analysis Routines

(9)

Sistem Basis Data Pengantar Basis Data

3. End User (Pemakai Akhir)

Ada beberapa jenis (tipe) pemakai terhadap suatu sistem basis data yang dapat dibedakan berdasarkan cara mereka berinteraksi terhadap sistem:

a. Programmer aplikasi

Pemakai yang berinteraksi dengan basis data melalui Data Manipulation Language (DML), yang disertakan (embedded) dalam program yang ditulis pada bahasa pemrograman induk (seperti C, pascal, cobol, dan lain-lain)

b. Pemakai Mahir (Casual User)

Pemakai yang berinteraksi dengan sistem tanpa menulis modul program. Mereka menyatakan query (untuk akses data) dengan bahasa query yang telah disediakan oleh suatu DBMS

c. Pemakai Umum (End User/Naïve User)

Pemakai yang berinteraksi dengan sistem basis data melalui pemanggilan satu program aplikasi permanen (executable program) yang telah ditulis (disediakan) sebelumnya

d. Pemakai Khusus (Specialized/Sophisticated User)

Pemakai yang menulis aplikasi basis data non konvensional, tetapi untuk keperluan-keperluan khusus seperti aplikasi Artificial Intelligence, Sistem Pakar, Pengolahan Citra, dan lain-lain, yang bisa saja mengakses basis data dengan atau tanpa DBMS yang bersangkutan.

Keuntungan Sistem Basis Data

1. Terkontrolnya kerangkapan data

Dalam basis data hanya mencantumkan satu kali saja field yang sama yang dapat dipakai oleh semua aplikasi yang memerlukannya.

2. Terpeliharanya keselarasan (kekonsistenan) data

Apabila ada perubahan data pada aplikasi yang berbeda maka secara otomatis perubahan itu berlaku untuk keseluruhan

3. Data dapat dipakai secara bersama (shared)

Data dapat dipakai secara bersama-sama oleh beberapa program aplikasi (secara batch maupun on-line) pada saat bersamaan.

4. Dapat diterapkan standarisasi

Dengan adanya pengontrolan yang terpusat maka DBA dapat menerapkan standarisasi data yang disimpan sehingga memudahkan pemakaian, pengiriman maupun pertukaran data.

(10)

Sistem Basis Data Pengantar Basis Data

5. Keamanan data terjamin

DBA dapat memberikan batasan-batasan pengaksesan data, misalnya dengan memberikan password dan pemberian hak akses bagi pemakai (misal: modify, delete, insert, retrieve)

6. Terpeliharanya integritas data

Jika kerangkapan data dikontrol dan kekonsistenan data dapat dijaga maka data menjadi akurat

7. Terpeliharanya keseimbangan (keselarasan) antara kebutuhan data yang berbeda dalam setiap aplikasi

Struktur basis data diatur sedemikian rupa sehingga dapat melayani pengaksesan data dengan cepat

8. Data independence (kemandirian data)

Dapat digunakan untuk bermacam-macam program aplikasi tanpa harus merubah format data yang sudah ada

Kelemahan Sistem Basis Data - Memerlukan tenaga spesialis - Kompleks

- Memerlukan tempat yang besar - Mahal

(11)

Sistem Basis Data Lingkungan Basis Data

LINGKUNGAN BASIS DATA

Tujuan utama dari sistem basis data adalah menyediakan pemakai melalui suatu pandangan abstrak mengenai data, dengan menyembunyikan detail dari bagaimana data disimpan dan dimanipulasikan. Oleh karena itu, titik awal untuk perancangan sebuah basis data haruslah abstrak dan deskripsi umum dari kebutuhan-kebutuhan informasi suatu organisasi harus digambarkan di dalam basis data.

Lebih jauh lagi, jika sebuah basis data merupakan suatu sumber yang bisa digunakan bersama maka setiap pemakai membutuhkan pandangan yang berbeda-beda terhadap data di dalam basis data. Untuk memenuhi kebutuhan ini, arsitektur komersial basis data yang banyak digunakan telah tersedia saat ini dan telah mengalami perluasan yaitu arsitektur ANSI-SPARC.

Materi ini menyediakan latar belakang informasi yang penting pada basis data, diantaranya tiga tingkatan arsitektur ANSI-SPARC, pengenalan model data, fungsi yang disediakan oleh DBMS multi user.

Tiga Tingkatan Arsitektur Basis Data ANSI-SPARC

Ada 3 tingkat dalam arsitektur basis data yang bertujuan membedakan cara pandang pemakai terhadap basis data dan cara pembuatan basis data secara fisik.

3 tingkatan arsitektur basis data:

1. Tingkat Eksternal (External Level)

Tingkat eksternal merupakan cara pandang pemakai terhadap basis data. Pada tingkat ini menggambarkan bagian basis data yang relevan bagi seorang pemakai tertentu. Tingkat eksternal terdiri dari sejumlah cara pandang yang berbeda dari sebuah basis data. Masing-masing pemakai merepresentasikan dalam bentuk yang sudah dikenalnya. Cara pandang secara eksternal hanya terbatas pada entitas, atribut dan hubungan antar entitas (relationship) yang diperlukan saja.

(12)

Sistem Basis Data Lingkungan Basis Data

2. Tingkat Konseptual (Conseptual Level)

Tingkat konseptual merupakan kumpulan cara pandang terhadap basis data. Pada tingkat ini menggambarkan data yang disimpan dalam basis data dan hubungan antara datanya.

Hal-hal yang digambarkan dalam tingkat konseptual adalah: - semua entitas beserta atribut dan hubungannya

- batasan data

- informasi semantik tentang data - keamanan dan integritas informasi

Semua cara pandang pada tingkat eksternal berupa data yang dibutuhkan oleh pemakai harus sudah tercakup di dalam tingkat konseptual atau dapat diturunkan dari data yang ada. Deskripsi data dari entitas pada tingkat ini hanya terdiri dari jenis data dan besarnya atribut tanpa memperhatikan besarnya penyimpanan dalam ukuran byte.

3. Tingkat Internal (Internal Level)

Tingkat internal merupakan perwujudan basis data dalam komputer. Pada tingkat ini menggambarkan bagaimana basis data disimpan secara fisik di dalam peralatan storage yang berkaitan erat dengan tempat penyimpanan/physical storage.

Tingkat internal memperhatikan hal-hal berikut ini: - alokasi ruang penyimpanan data dan indeks

- deskripsi record untuk penyimpanan (dengan ukuran penyimpanan untuk data elemen)

- penempatan record

(13)

Sistem Basis Data Lingkungan Basis Data

External Level

Conseptual Level

Internal Level

Gambar 1. Tingkatan Arsitektur Basis Data

Contoh: sebuah file Pegawai yang akan didefinisikan Tingkat Eksternal (External Level):

Cobol

01 PEG_REC.

02 PEG_NO PIC X(6). 02 DEPT_NO PIC X(4).

02 GAJI PIC 9(6).

Tingkat Konseptual (Conceptual Level): PEGAWAI

NOMOR_PEGAWAI CHARACTER 6 NOMOR_DEPT CHARACTER 4

GAJI NUMERIC 6

Tingkat Internal (Internal Level): FILE_PEGAWAI LENGTH = 22

PREFIX TYPE = BYTE (6), OFFSET = 0

EMP# TYPE = BYTE (6), OFFSET = 6, INDEX = EMPX DEPT# TYPE = BYTE (4), OFFSET = 12

(14)

Sistem Basis Data Lingkungan Basis Data

DATA INDEPENDENCE

Tujuan utama dari 3 tingkat arsitektur adalah memelihara kemandirian data (data independence) yang berarti perubahan yang terjadi pada tingkat yang lebih rendah tidak mempengaruhi tingkat yang lebih tinggi.

Ada 2 jenis data independence, yaitu 1. Physical Data Independence

bahwa internal schema dapat diubah oleh DBA tanpa menggangu conceptual schema. Dengan kata lain physical data independence menunjukkan kekebalan conceptual schema terhadap perubahan internal schema.

2. Logical Data Independence

bahwa conceptual schema dapat diubah oleh DBA tanpa menggangu external schema. Dengan kata lain logical data independence menunjukkan kekebalan external schema terhadap perubahan conceptual schema.

Prinsip data independence adalah salah satu hal yang harus diterapkan di dalam pengelolaan sistem basis data dengan alasan-alasan sebagai berikut:

1. DBA dapat mengubah isi, lokasi, perwujudan dalam organisasi basis data tanpa mengganggu program-program aplikasi yang sudah ada.

2. Pabrik/agen peralatan/software pengolahan data dapat memperkenalkan produk-produk baru tanpa mengganggu program-program aplikasi yang sudah ada.

3. Untuk memindahkan perkembangan program-program aplikasi

4. Memberikan fasilitas pengontrolan terpusat oleh DBA demi keamanan dan integritas data dengan memperhatikan perubahan-perubahan kebutuhan pengguna.

BAHASA DALAM DBMS

DBMS (DataBase Management System) adalah kumpulan program yang mengkoordinasikan semua kegiatan yang berhubungan dengan basis data. Dengan adanya berbagai tingkatan pandangan dalam suatu basis data maka untuk mengakomodasikan masing-masing pengguna dalam piranti lunak manajemen basis data biasanya terdapat bahasa-bahasa tertentu yang disebut Data Sub Language.

Data sub language adalah subset bahasa yang dipakai untuk operasi manajemen basis data. Dalam penggunaan biasanya dapat ditempelkan (embedded) pada bahasa tuan rumah (Cobol, PL/1, dan sebagainya). Secara umum maka setiap pengguna basis data memerlukan bahasa yang dipakai sesuai tugas dan fungsinya.

(15)

Sistem Basis Data Lingkungan Basis Data

Dalam basis data secara umum dikenal 2 data sub language: 1. Data Definition Language (DDL)

Bahasa yang digunakan dalam mendefinisikan struktur atau kerangka dari basis data, di dalamnya termasuk record, elemen data, kunci elemen, dan relasinya

2. Data Manipulation Language (DML)

Bahasa yang digunakan untuk menjabarkan pemrosesan dari basis data, fasilitas ini diperlukan untuk memasukkan, mengambil, mengubah data. DML dipakai untuk operasi terhadap isi basis data

Ada 2 jenis DML: 1. Procedural DML

Digunakan untuk mendefinisikan data yang diolah dan perintah yang akan dilaksanakan.

2. Non Procedural

Digunakan untuk menjabarkan data yang diinginkan tanpa menyebutkan bagaimana cara pengambilannya.

Secara khusus pengguna menggunakan berbagai bahasa:

Programmer aplikasi menggunakan bahasa-bahasa seperti Cobol, Informix, dan lain-lain (host language) yang ditempelkan dengan bahasa yang dipakai dalam DBMS. Pemakai terminal menggunakan bahasa Query (misal SQL) atau menggunakan program aplikasi (yang dirancang oleh programmer). Sedangkan DBA lebih banyak menggunakan bahasa DDL dan DML yang tersedia dalam DBMS.

DBMS mempunyai tugas untuk menangani semua bentuk akses kepada basis data, secara konsep:

1. Pengguna menyatakan permintaan akses menggunakan DBMS 2. DBMS menangkap dan menginterpretasikan

3. DBMS mencari:

- eksternal/conceptual mapping - conceptual schema

- konseptual/internal mapping - internal schema

4. DBMS melaksanakan operasi yang diminta terhadap basis data tersimpan. Proses 1 s/d 4 dapat dilakukan secara interaktif atau di-compile dulu.

(16)

Sistem Basis Data Lingkungan Basis Data

MODEL DATA

Model data adalah kumpulan konsep yang terintegrasi yang menggambarkan data, hubungan antara data dan batasan-batasan data dalam suatu organisasi. Fungsi dari sebuah model data untuk merepresentasikan data sehingga data tersebut mudah dipahami.

Untuk menggambarkan data pada tingkat eksternal dan konseptual digunakan model data berbasis objek atau model data berbasis record.

1. Model Data Berbasis Objek

Model data berbasis objek menggunakan konsep entitas, atribut dan hubungan antar entitas. Beberapa jenis model data berbasis objek yang umum adalah:

- entity-relationship - semantic

- functional - object-oriented

2. Model Data Berbasis Record

Pada model data berbasis record, basis data terdiri dari sejumlah record dalam bentuk yang tetap yang dapat dibedakan dari bentuknya. Ada 3 macam jenis model data berbasis record yaitu:

- model data relasional (relational) - model data hierarkhi (hierarchical) - model data jaringan (network)

Fungsi DBMS

Layanan-layanan yang sebaiknya disediakan oleh DataBase Management System adalah: 1. Penyimpanan, pengambilan dan perubahan data

Sebuah DBMS harus menyediakan kemampuan menyimpan, mengambil dan merubah data dalam basis data.

2. Katalog yang dapat diakses pemakai

Menyediakan sebuah katalog yang berisi deskripsi item data yang disimpan dan diakses oleh pemakai.

3. Mendukung Transaksi

Menyediakan mekanisme yang akan menjamin semua perubahan yang berhubungan dengan transaksi yang sudah ada atau yang akan dibuat.

(17)

Sistem Basis Data Lingkungan Basis Data

4. Melayani kontrol concurrency

Sebuah DBMS harus menyediakan mekanisme yang menjamin basis data ter-update secara benar pada saat beberapa pemakai melakukan perubahan terhadap basis data yang sama secara bersamaan.

5. Melayani recovery

Menyediakan mekanisme untuk mengembalikan basis data ke keadaan sebelum terjadinya kerusakan pada basis data tersebut.

6. Melayani autorisasi

Sebuah DBMS harus menyediakan mekanisme untuk menjamin bahwa hanya pemakai yang berwenang saja yang dapat mengakses basis data.

7. Mendukung komunikasi data

Sebuah DBMS harus mampu terintegrasi dengan software komunikasi. 8. Melayani integrity

Sebuah DBMS bertujuan untuk menjamin semua data dalam basis data dan setiap terjadi perubahan data harus sesuai dengan aturan yang berlaku.

9. Melayani data independence

Sebuah DBMS harus mencakup fasilitas untuk mendukung kemandirian program dari struktur basis data yang sesungguhnya.

10. Melayani utility

(18)

Sistem Basis Data Lingkungan Basis Data KOMPONEN DBMS

Query

Processor

DDL

Compiler

Database

Schema

Queries

Application

Programs

DML

Preprocessor

Program

Object Code

Database

Manager

Dictionary

Manager

System

Buffer

File

Manager

Access

Method

Database

dan

Data Dictionary

DBMS

Programmers

Users

DBA

Gambar 2. Komponen DBMS

1. Query Processsor

Komponen yang merubah bentuk query ke dalam instruksi tingkat rendah ke database manager

2. Database Manager

Database manager menerima query dan menguji skema eksternal dan konseptual untuk menentukan apakah record dibutuhkan untuk memenuhi permintaan. Kemudian DM memanggil file manager untuk menyelesaikan permintaan

3. File Manager

(19)

Sistem Basis Data Lingkungan Basis Data

4. DML Preprocessor

Modul yang merubah perintah DML embedded ke dalam program aplikasi dalam bentuk fungsi-fungsi yang memanggil dalam host language.

5. DDL Compiler

Merubah perintah DDL menjadi kumpulan tabel yang berisi metadata. 6. Dictionary Manager

Mengatur akses dan memelihara data dictionary. Data dictionary diakses oleh komponen DBMS yang lain.

Program Object Code Query Processor Dictionary Manager Authorization Control Query Optimizer Access Method System Buffer Buffer Manager Recovery Manager File Manager Command Processor Integrity Checker Transaction Manager Scheduler

Database

Manager

Data

Manager

Database dan Data Dictionary

(20)

Sistem Basis Data Lingkungan Basis Data

Komponen software utama database manager adalah 1. Authorization Control

Modul yang memeriksa apakah pemakai mempunyai wewenang untuk menyelesaikan operasi

2. Command Processor

Memeriksa apakah pemakai mempunyai wewenang untuk menyelesaikan operasi 3. Integrity Checker

Untuk semua operasi yang merubah basis data, integrity checker memeriksa operasi yang diminta memerlukan batasan integritas.

4. Query Optimizer

Modul ini menentukan strategi yang optimal untuk eksekusi query 5. Transaction Manager

Modul ini mengerjakan proses-proses yang dibutuhkan operasi yang diterima transaksi 6. Scheduler

Modul ini bertanggung jawab untuk menjamin operasi secara bersamaan terhadap basis data sehingga berjalan tanpa ada masalah antara yang satu dengan yang lain.

7. Recovery Manager

Modul ini menjamin basis data tetap konsisten walaupun terjadi kerusakan. 8. Buffer Manager

Modul ini bertanggung jawab terhadap pemindahan data antara main memory dan secondary storage, seperti disk dan tape.

(21)

Sistem Basis Data Lingkungan Basis Data

ARSITEKTUR DBMS MULTI USER

Teleprocessing

Arsitektur tradisional untuk sistem multi user adalah teleprocessing, dimana satu komputer dengan sebuah CPU dan sejumlah terminal seperti pada gambar di bawah ini.

IBM Compatible

Gambar 4. Arsitektur Teleprocessing

Semua pemrosesan dikerjakan dalam batasan fisik komputer yang sama. Terminal untuk pemakai berjenis 'dumb', yang tidak dapat berfungsi sendiri dan masing-masing dihubungkan ke komputer pusat. Terminal-terminal tersebut mengirimkan pesan melalui subsistem pengontrol komunikasi pada sistem operasi ke program aplikasi, yang bergantian menggunakan layanan DBMS.

Dengan cara yang sama, pesan dikembalikan ke terminal pemakai. Arsitektur ini menempatkan beban yang besar pada komputer pusat yang tidak hanya menjalankan program aplikasi tetapi juga harus menyelesaikan sejumlah pekerjaan pada terminal seperti format data untuk tampilan di monitor.

(22)

Sistem Basis Data Lingkungan Basis Data

File-Server

Proses didistribusikan ke dalam jaringan sejenis LAN (Local Area Network). File server mengendalikan file yang diperlukan oleh aplikasi dan DBMS. Meskipun aplikasi dan DBMS dijalankan pada masing-masing workstation tetapi tetap meminta file dari file server jika diperlukan (perhatikan Gambar di halaman berikut ini).

Database Workstation2 Workstation1 Workstation3 LAN file server files returned request for data

Gambar 5. Arsitektur File Server

Dengan cara ini, file server berfungsi sebagai sebuah hard disk yang digunakan secara bersamaan.

Kerugian arsitektur file-server adalah:

- Terdapat lalulintas jaringan yang besar

- Masing-masing workstation membutuhkan copy DBMS

- Kontrol terhadap concurrency, recovery dan integrity menjadi lebih kompleks karena sejumlah DBMS mengakses file secara bersamaan

(23)

Sistem Basis Data Lingkungan Basis Data

Client Server

Untuk mengatasi kelemahan arsitektur-arsitektur di atas maka dikembangkan arsitektur client-server. Client-server menunjukkan cara komponen software berinteraksi dalam bentuk sistem.

Sesuai dengan namanya, ada sebuah pemroses client yang membutuhkan sumber dan sebuah server yang menyediakan sumbernya. Tidak ada kebutuhan client dan server yang harus diletakkan pada mesin yang sama. Secara ringkas, umumnya server diletakkan pada satu sisi dalam LAN dan client pada sisi yang lain.

Database

Client 2

client 1 Client 3

LAN

server (with DBMS)

selected data returned request for data

Gambar 6. Arsitektur Client Server

Dalam konteks basis data, client mengatur interface berfungsi sebagai workstation tempat menjalankan aplikasi basis data. Client menerima permintaan pemakai, memeriksa sintaks dan generate kebutuhan basis data dalam SQL atau bahasa yang lain. Kemudian meneruskan pesan ke server, menunggu response dan bentuk response untuk pemakai akhir. Server menerima dan memproses permintaan basis data kemudian mengembalikan hasil ke client.

Proses-proses ini melibatkan pemeriksaan autorisasi, jaminan integritas, pemeliharaan data dictionary dan mengerjakan query serta proses update. Selain itu juga menyediakan kontrol terhadap concurrency dan recovery.

(24)

Sistem Basis Data Lingkungan Basis Data

Ada beberapa keuntungan jenis arsitektur ini adalah: • Memungkinkan akses basis data yang besar • Menaikkan kinerja

Jika client dan server diletakkan pada komputer yang berbeda kemudian CPU yang berbeda dapat memproses aplikasi secara paralel. Hal ini mempermudah merubah mesin server jika hanya memproses basis data.

Biaya untuk hardware dapat dikurangi

Hanya server yang membutuhkan storage dan kekuatan proses yang cukup untuk menyimpan dan mengatur basis data

• Biaya komunikasi berkurang

Aplikasi menyelesaikan bagian operasi pada client dan mengirimkan hanya bagian yang dibutuhkan untuk akses basis data melewati jaringan, menghasilkan data yang sedikit yang akan dikirim melewati jaringan

• Meningkatkan kekonsistenan

Server dapat menangani pemeriksaan integrity sehingga batasan perlu didefinisikan dan validasi hanya di satu tempat, aplikasi program mengerjakan pemeriksaan sendiri

Map ke arsitektur open-system dengan sangat alami Berikut ini adalah ringkasan fungsi client-server

Client Server

Mengatur user interface Menerima dan memproses basis data yang diminta dari client

Menerima dan memeriksa sintaks input dari pemakai

Memeriksa autorisasi

Memproses aplikasi Menjamin tidak terjadi pelanggaran terhadap integrity constraint

Generate permintaan basis data dan memindahkannya ke server

Melakukan query/pemrosesan update dan memindahkan response ke client

Memberikan response balik kepada pemakai Memelihara data dictionary

Menyediakan akses basis data secara bersamaan

Menyediakan kontrol recovery

DATA DICTIONARY

Data dictionary adalah tempat penyimpanan informasi yang menggambarkan data dalam basis data. Data dictionary biasa disebut juga dengan metadata atau data mengenai data. Modul pengontrol otorisasi menggunakan data dictionary untuk memeriksa apakah seorang pemakai perlu mempunyai wewenang.

Untuk mengerjakan pemeriksaan tersebut data dictionary menyimpan:

(25)

Sistem Basis Data Lingkungan Basis Data

nama-nama data item yang ada dalam basis data

data item yang dapat diakses oleh pemakai dan jenis akses yang diizinkan, misalnya: insert, update, delete atau read

Sedangkan untuk memeriksa integritas data, data dictionary menyimpan: nama-nama data item dalam basis data

jenis dan ukuran data item

batasan untuk masing-masing data item

Sistem data dictionary dapat dibedakan atas sistem aktif dan pasif. Sistem aktif selalu konsisten dengan struktur basis data karena secara otomatis dikerjakan oleh sistem. Sebaliknya, sistem pasif tidak konsisten terhadap perubahan basis data yang dilakukan oleh pemakai.

(26)

Sistem Basis Data Model Data Relasional

MODEL DATA RELASIONAL

PENGERTIAN BASIS DATA RELASIONAL

Pada model relasional, basis data akan "disebar" atau dipilah-pilah ke dalam berbagai tabel dua dimensi. Setiap tabel selalu terdiri atas lajur mendatar yang disebut baris data (row/record) dan lajur vertikal yang biasa disebut dengan kolom (column/field).

Contoh Tabel dan keterhubungannya:

MHS NPM Nama Alamat 10296832 Natawiangga Palembang 10296126 Anisa Palembang 31296500 Fatahillah Lampung 41296525 Farah Semarang 50096487 Nadya Bogor 21196353 Andre Semarang MKUL KDMK MTKULIAH SKS KK021 P. Basis Data 2 KD132 SIM 3 KU122 Pancasila 2 NILAI NPM KDMK MID FINAL 10296832 KK021 60 75 10296126 KD132 70 90 31296500 KK021 55 40 41296525 KU122 90 80 21196353 KU122 75 75 50095487 KD132 80 0 10296832 KD132 40 30

(27)

Sistem Basis Data Model Data Relasional

• Keuntungan Basis Data Relasional 1. Bentuknya sederhana

2. Mudah melakukan berbagai operasi data

• Istilah dalam Basis Data Relasional:

Relasi

Relasi merupakan sebuah tabel yang terdiri dari beberapa kolom dan beberapa baris. Relasi menunjukkan adanya hubungan diantara sejumlah entitas yang berasal dari himpunan entitas yang berbeda. Entitas merupakan individu yang mewakili sesuatu yang nyata dan dapat dibedakan dengan yang lainnya.

Atribut

Atribut merupakan kolom pada sebuah relasi. Setiap entitas pasti memiliki aribut yang mendeskripsikan karakter dari entitas tersebut. Penentuan atau pemilihan atribut-atribut yang relevan bagi sebuah entitas merupakan hal penting dalam pembentukan model data.

Tuple

Tuple merupakan baris pada sebuah relasi atau kumpulan elemen-elemen yang saling berkaitan menginformasikan tentang suatu entitas secara lengkap. Satu record mewakili satu data atau informasi tentang seseorang, misalnya: NPM, nama mahasiswa, alamat, kota, dan lain-lainl.

Domain

Kumpulan nilai yang valid untuk satu atau lebih atribut

Derajat (degree)

Jumlah atribut dalam sebuah relasi

Cardinality

(28)

Sistem Basis Data Model Data Relasional Baris Relasi atribut MHS NPM Nama Alamat 10296832 Natawiangga Palembang 10296126 Anisa Palembang 31296500 Fatahillah Lampung 41296525 Farah Semarang 50096487 Nadya Bogor 21196353 Andre Semarang Domain Derajat (Degree) RELATIONAL KEY Super key

Satu atribut/kumpulan atribut yang secara unik mengidentifikasi sebuah tuple di dalam relasi

Candidate key

Suatu atribut atau satu set minimal atribut yang mengidentifikasikan secara unik suatu kejadian spesifik dari entitas. Atribut di dalam relasi yang biasanya mempunyai nilai unik. Satu set minimal dari atribut menyatakan secara tak langsung dimana kita tidak dapat membuang beberapa atribut dalam set tanpa merusak kepemilikan yang unik.

Primary key

Merupakan satu atribut atau satu set minimal atribut yang tidak hanya mengidentifikasikan secara unik suatu kejadian spesifik, tapi juga dapat mewakili setiap

(29)

Sistem Basis Data Model Data Relasional

Primary key

Alternate key Candidate key

kejadian dari suatu entitas. Candidate key yang dipilih untuk mengidentifikasikan tuple secara unik dalam relasi. Setiap kunci candidate key punya peluang menjadi primary key, tetapi sebaiknya dipilih satu saja yang dapat mewakili secara menyeluruh terhadap entitas yang ada.

Alternate key

Merupakan candidate key yang tidak dipakai sebagai primary key atau Candidate Key yang tidak dipilih sebagai primary key.

Foreign key (Kunci Tamu)

Atribut dengan domain yang sama yang menjadi kunci utama pada sebuah relasi tetapi pada relasi lain atribut tersebut hanya sebagai atribut biasa. Kunci tamu ditempatkan pada entitas anak dan sama dengan primary key induk direlasikan.

MHS NPM Nama Alamat 10296832 Natawiangga Palembang 10296126 Anisa Palembang 31296500 Fatahillah Lampung 41296525 Farah Semarang 50096487 Nadya Bogor 21196353 Andre Semarang

Relational Integrity Rules

1. Null

Nilai suatu atribut yang tidak diketahui dan tidak cocok untuk baris (tuple) tersebut. Nilai (konstanta) Null digunakan untuk menyatakan/mengisi atribut-atribut yang nilainya memang belum siap/tidak ada.

(30)

Sistem Basis Data Model Data Relasional

2. Entity Integrity

Tidak ada satu komponen primary key yang bernilai null. 3. Referential Integrity

Suatu domain dapat dipakai sebagai kunci primer bila merupakan atribut tunggal pada domain yang bersangkutan.

BAHASA PADA BASIS DATA RELATIONAL

Menggunakan bahasa query → pernyataan yang diajukan untuk mengambil informasi. Bahasa Query (Query Language) lebih ditekankan pada aspek pencarian data dari dalam tabel. Aspek pencarian ini sedemikian penting karena merupakan inti dari upaya untuk pengelolaan data.

Bahasa query terbagi 2: 1. Bahasa Formal

Bahasa query yang diterjemahkan dengan menggunakan simbol-simbol matematis. Contoh :

• Aljabar Relasional

Bahasa query prosedural → pemakai menspesifikasikan data apa yang dibutuhkan dan bagaimana untuk mendapatkannya.

• Kalkulus Relasional

Bahasa query non-prosedural → pemakai menspesifikasikan data apa yang dibutuhkan tanpa menspesifikasikan bagaimana untuk mendapatkannya.

Terbagi 2:

1. Kalkulus Relasional Tuple 2. Kalkulus Relasional Domain

2. Bahasa Komersial

Bahasa Query yang dirancang sendiri oleh programmer menjadi suatu program aplikasi agar pemakai lebih mudah menggunakannya (user friendly).

Contoh: • QUEL

(31)

Sistem Basis Data Model Data Relasional

• QBE

Berbasis pada bahasa kalkulus relasional • SQL

Berbasis pada bahasa kalkulus relasional dan aljabar relasional

• Contoh-contoh Basis Data Relasional: - DB2 → IBM

- ORACLE → Oracle - SYBASE → Powersoft - INFORMIX → Informix

(32)

Sistem Basis Data Structured Query Language

STRUCTURED QUERY LANGUAGE

Structured Query Language (SQL) merupakan komponen bahasa relational database system. SQL merupakan bahasa baku (ANSI/SQL), non procedural, dan berorientasi himpunan (set-oriented language). SQL dapat digunakan baik secara interaktif atau ditempelkan (embedded) pada sebuah program aplikasi.

Komponen-Komponen SQL

a. Data Definition Language (DDL):

Digunakan untuk mendefinisikan data dengan menggunakan perintah: create, drop, alter.

b. Data Manipulation Language (DML):

Digunakan untuk memanipulasi data dengan menggunakan perintah: select, insert, update, delete.

Data Manipulation Language merupakan bagian terpadu bahasa SQL. Perintah-perintahnya dapat dibuat secara interaktif atau ditempelkan pada sebuah program aplikasi. Pemakai hanya perlu menentukan 'APA' yang ia inginkan, DBMS menentukan 'BAGAIMANA' cara mendapatkannya.

c. Data Control Language (DCL):

Digunakan untuk mengontrol hak para pemakai data dengan perintah: grant, revoke

S Q L STRUCTURED QUERY LANGUAGE DEFINITION MANIPULATION C O N T R O L D D L CREATE DROP ALTER D M L SELECT INSERT UPDATE DELETE DCL GRANT REVOKE

(33)

Sistem Basis Data Structured Query Language

DATA DEFINITION LANGUAGE

1. CREATE TABLE

Fungsi: membuat tabel

Sintaks: CREATE TABLE tbname

(col 1 data type data spec, col 2 data type data spec,

. .

PRIMARY KEY (col1,……))

Contoh:

CREATE TABLE PERSONEL

(REGNO CHAR(10) NOT NULL, NAME CHAR(45) NOT NULL, ADDRESS CHAR(45),

BIRTH DATE NOT NULL WITH DEFAULT, PRIMARY KEY (REGNO))

NULL

Spesifikasi NULL, NOT NULL, NOT NULL WITH DEFAULT

NULL:

dapat diinterpretasikan sebagai nilai yang tidak diketahui atau tidak tersedianya suatu nilai. Null bukan berarti kosong (blank) atau 0 (Nol)

NOT NULL:

pemakai atau program harus memberikan nilai-nilai pada saat memasukkan record

NOT NULL WITH DEFAULT:

nilai default disimpan pada saat record dimasukkan tanpa nilai yang ditentukan untuk kolom ini.

(34)

Sistem Basis Data Structured Query Language

Nilai default-nya:

Nol untuk tipe field NUMERIC Blank untuk tipe field CHARACTER Current date untuk tipe field DATE Current time untuk tipe field TIME

Pada saat membuat tabel, salah satu atribut tersebut di atas dispesifikasikan pada sebuah kolom.

2. CREATE VIEW

Fungsi: membuat tabel view.

View merupakan bentuk alternatif penyajian data dari satu atau lebih tabel. View dapat berisi semua atau sebagian kolom yang terdapat pada tabel dimana kolom tersebut didefinisikan.

Tujuan membuat view:

 Meningkatkan keamanan data  Meningkatkan kemandirian data

Penyederhanaan bagi end user (data yang sedikit, nama-nama kolom yang baru dan dapat dibaca dengan lebih baik)

Properti:

 Tidak terdapatnya data tambahan

View mencakup subset kolom dan/atau baris

View dapat berisikan data dari beberapa tabel dan/atau tabel-tabel view lainnya View dapat berisikan perolehan data, misal: nilai rata-rata

Manipulasi data melalui view terbatas

Sintaks: CREATE VIEW viewname (column1, column2, ……..) AS SELECT statement FROM tbname

[WITH CHECK OPTION]

Keterangan:

View-name : nama view yang akan dibuat. Column : nama atribut untuk view

Statement : atribut yang dipilih dari tabel basis data. Table-name : nama tabel basis data.

(35)

Sistem Basis Data Structured Query Language

Contoh:

CREATE VIEW VPERSON (REGNO, NAME)

AS SELECT REGNO, NAME FROM PAUL.PERSONEL

3. CREATE INDEX

Fungsi: membuat index

Sintaks: CREATE [UNIQUE] INDEX indexname ON nama_table (nama_kolom)

Contoh:

CREATE UNIQUE INDEX PRSONIDX ON PERSONEL(REGNO)

Dengan indeks memungkinkan suatu tabel diakses dengan urutan tertentu tanpa harus merubah urutan fisik dari datanya dan dapat pula diakses secara cepat melalui indeks yang dibuat berdasar nilai field tertentu. Spesifikasi UNIQUE akan menolak key yang sama dalam file.

4. DROP TABLE

Fungsi: menghapus tabel

Sintaks: DROP TABLE tbname

Contoh: DROP TABLE PERSONEL

Dengan perintah itu obyek lain yang berhubungan dengan tabel tersebut otomatis akan dihapus atau tidak akan berfungsi seperti:

- semua record dalam tabel akan terhapus - index dan view pada tabel akan hilang - deskripsi tabel akan hilang

5. DROP VIEW

Fungsi: menghapus view

Sintaks: DROP VIEW viewname

(36)

Sistem Basis Data Structured Query Language

6. DROP INDEX

Fungsi: menghapus index

Sintaks: DROP INDEX indexname

Contoh: DROP INDEX PRSONIDX

7. ALTER

Fungsi: merubah atribut pada suatu tabel

Sintaks: ALTER TABLE tbname

MODIFY (nama_kolom tipe_kolom)

ADD (nama_kolom tipe_kolom [[before, nama_kolom]]) DROP (nama_kolom tipe_kolom)

Contoh: merubah Tabel TABX dengan menambah Field D.

ALTER TABLE TABX ADD D CHAR(3)

DATA MANIPULATION LANGUAGE

1. INSERT

Fungsi: menambah baris (record) baru

Sintaks: INSERT INTO tbname

(col1, ...) VALUES (value1, ...)

Catatan:

Sintaks tersebut dapat digunakan jika jumlah kolom = jumlah nilai, tetapi jika dalam tabel semua kolom akan diisi dapat digunakan sintaks berikut ini:

Sintaks: INSERT INTO tbname

VALUES (value1, value2, ...)

(37)

Sistem Basis Data Structured Query Language

2. UPDATE

Fungsi: merubah record

Sintaks: UPDATE tbname SET field = ekspresi WHERE kondisi

3. DELETE

Fungsi: menghapus record

Sintaks: DELETE FROM tbname

WHERE kondisi

4. SELECT

Fungsi: menampilkan record

Sintaks: SELECT [DISTINCT] colname FROM tbname [WHERE kondisi]

[GROUP BY kondisi] [HAVING kondisi] [ORDER BY kondisi]

Contoh Kasus DDL:

Membuat Tabel (CREATE TABLE) 1. CREATE TABLE S

(Sn Char(5) NOT NULL, Sname Char(20) NOT NULL, Status Smallint NOT NULL, City Char(15) NOT NULL);

2. CREATE TABLE P

(Pn Char(6) NOT NULL, Pname Char(20) NOT NULL, Color Char(6) NOT NULL, Weight Smallint NOT NULL);

(38)

Sistem Basis Data Structured Query Language

3. CREATE TABLE SP

(Sn Char(5) NOT NULL, Pn Char(6) NOT NULL, QTY INTEGER NOT NULL);

4. CREATE UNIQUE INDEX Sidx ON S(Sn); CREATE UNIQUE INDEX Pidx ON P(Pn); CREATE INDEX Sdx ON SP(Sn);

CREATE INDEX Pdx ON SP(Pn);

Modifikasi Table P dengan perintah: RENAME COLUMN P.COLOR TO WARNA ALTER TABLE P ADD (City CHAR(15) NOT NULL)

Membuat View (CREATE VIEW)

1. Membuat view untuk supplier yang statusnya lebih besar dari 15

CREATE VIEW GOOD_SUPPLIERS

AS SELECT Sn, Status, City FROM S WHERE Status > 15;

2. Membuat view yang berisi supplier yang tinggal di Paris

CREATE VIEW Paris_Suppliers AS SELECT * FROM Supliers

WHERE City = ' Paris '

3. Membuat view dengan mengganti nama_atributnya

CREATE VIEW Parts (PNum, Part_Name, WT) AS SELECT P#, Pname, Weight FROM Part

(39)

Sistem Basis Data Structured Query Language

Contoh Kasus DML:

Menambah record (INSERT)

INSERT INTO S VALUES ('S1','Smith',20,'London'); INSERT INTO S VALUES ('S2','Jones,10,'Paris'); INSERT INTO S VALUES ('S3','Blake',30,'Paris')

Tabel S, P dan SP isikan dengan data-data sebagai berikut:

TABEL S

Sn Sname Status City

S1 Smith 20 London S2 Jones 10 Paris S3 Blake 30 Paris S4 Clark 20 London S5 Adams 30 Athens TABEL P

Pn Pname Color Weight City

P1 Nut Red 12 London

P2 Bolt Green 17 Paris

P3 Screw Blue 17 Rome

P4 Screw Red 14 London

P5 Cam Blue 12 Paris

(40)

Sistem Basis Data Structured Query Language TABEL SP Sn Pn qty S1 P1 300 S1 P2 200 S1 P 40 S1 P4 200 S1 P5 100 S1 P6 100 S2 P1 300 S2 P2 400 S3 P2 200 S4 P2 200 S4 P4 300 S4 P5 400

Merubah record (UPDATE)

1. Merubah data (record) pada tabel P yang mempunyai nomor part P2, warnanya dirubah menjadi Kuning dan beratnya ditambah 5

UPDATE P SET Color = 'Yellow', Weight = Weight + 5

WHERE Pn = 'P2'

2. Merubah record pada tabel S, statusnya menjadi dua kali status awal untuk supplier yang bertempat tinggal di kota London

UPDATE S SET Status = 2 * Status WHERE City = 'London'

(41)

Sistem Basis Data Structured Query Language

Menghapus record (DELETE)

Menghapus record pada tabel S yang nomor supplier-nya S5

DELETE FROM S

WHERE Sn ='S5'

Menampilkan record (SELECT 1 tabel) 1. Menampilkan semua data supplier

SELECT * FROM S

atau

SELECT Sn, Sname, Status, City FROM S

2. Menampilkan semua nilai Pn pada tabel SP

SELECT Pn FROM SP

3. Menampilkan nomor supplier dan status untuk supplier yang tinggal di Paris

SELECT Sn, Status FROM S WHERE City ='Paris'

4. Menampilkan no.supplier yang tinggal di Paris dengan status > 20

SELECT Sn FROM S

WHERE City ='Paris" AND Status > 20

5. Menampilkan jumlah pengiriman P1

SELECT COUNT(*) FROM SP WHERE Pn = 'P1'

6. Perintah untuk menghindari hasil data yang sama terulang kembali (distinct)

(42)

Sistem Basis Data Structured Query Language

7. Menampilkan no.supplier dan status bagi supplier yang tinggal di Paris dalam urutan status menurun

SELECT Sn,Status FROM S WHERE City = 'Paris'

ORDER BY Status desc

8. Menampilkan no.Part dari semua part yang dipasok oleh lebih dari seorang supplier

SELECT Pn FROM SP GROUP BY Pn

HAVING COUNT(*) > 1

9. Menampilkan semua part yang nomornya dimulai dengan huruf C

SELECT * FROM P

WHERE Pname LIKE 'C%'

Menampilkan record (SELECT lebih dari satu tabel/JOIN)

1. Menampilkan semua supplier dan part yang keduanya bertempat tinggal pada kota yang sama

SELECT Sn, Sname,S tatus, S.City , Pn, Pname, Warna, Weight FROM S,P WHERE S.City = P.City

2. Menampilkan nama supplier yang memasok barang dengan nomor part P2

SELECT Sname FROM S, SP

WHERE S.Sn = SP.Sn AND SP.Pn = 'P2'

3. Menampilkan nama supplier yang memasok part berwarna merah SELECT Sname FROM S, SP, P

WHERE S.Sn = SP.Sn AND SP.Pn = P.Pn

(43)

Sistem Basis Data Structured Query Language

Menampilkan record (SELECT lebih dari satu tabel/SELECT Bertingkat)

1. Menampilkan nama supplier yang memasok barang dengan nomor part P2 SELECT Sname FROM S WHERE Sn IN

(SELECT Sn FROM SP WHERE Pn = 'P2')

atau

SELECT Sname FROM S WHERE Sn = ANY (SELECT Sn FROM SP WHERE Pn = 'P2')

2. Menampilkan nama supplier yang memasok part berwarna merah

SELECT Sname FROM S WHERE Sn IN (SELECT Sn FROM SP WHERE Pn IN

(SELECT Pn FROM P WHERE Warna = 'Red'))

3. Menampilkan no.supplier dengan nilai status lebih kecil daripada nilai maksimum status yang ada pada tabel S

SELECT Sn FROM S WHERE Status < (SELECT MAX(Status) FROM S)

4. Menampilkan nama supplier yang tidak memasok barang dengan nomor part P2

SELECT Sname FROM S WHERE Sn NOT IN (SELECT Sn FROM SP WHERE Pn = 'P2')

5. Menampilkan semua nomor supplier yang sama lokasinya dengan S1

SELECT Sn FROM S WHERE CITY =

(SELECT CITY FROM S WHERE Sn = 'S1')

Fungsi Perhitungan

COUNT : jumlah baris dan kolom SUM : jumlah nilai dam kolom AVG : rata-rata nilai dalam kolom MAX : nilai terbesar dalam kolom

(44)

Sistem Basis Data Structured Query Language

MIN : nilai terkecil dalam kolom

Untuk SUM dan AVG nilainya harus numerik (INT, SMALLINT, FLOAT). Fungsi-fungsi tersebut jika dikenakan pada nilai yang NULL maka nilainya akan diabaikan kecuali untuk COUNT(*)

1. Menghitung jumlah supplier SELECT COUNT(*) FROM S

atau

SELECT COUNT (Sn) FROM S

2. Menampilkan nomor part dan total kuantitas pengiriman dari setiap part

SELECT Pn, SUM(QTY) FROM SP GROUP BY Pn

3. Menghitung jumlah kuantitas dari P2 yang telah di-supply

SELECT SUM (QTY) FROM SP WHERE Pn = 'P2'

4. Menampilkan jumlah pengiriman barang dengan nomor P4 dan dipasok oleh nomor suppplier S1

SELECT COUNT(*) FROM SP WHERE Pn = 'P4' AND Sn = 'S1'

5. Menampilkan nomor part dan total kuantitas dari masing-masing part

SELECT Pn, SUM(QTY) FROM SP GROUP BY P3

(45)

Sistem Basis Data Structured Query Language

DATA CONTROL LANGUAGE

1. GRANT

Fungsi: digunakan untuk memberikan izin akses kepada user Sintaks: GRANT privileges ON tbname TO user

Contoh:

GRANT SELECT ON CLUB TO PUBLIC

GRANT SELECT, INSERT, UPDATE, DELETE ON CLUB TO USER01

2. REVOKE

Fungsi: digunakan untuk mencabut izin akses kepada user

Sintaks: REVOKE privileges ON tbname FROM user

Contoh :

REVOKE INSERT, UPDATE, DELETE ON CLUB FROM USER01 REVOKE ALL ON CLUB FROM PUBLIC

(46)

Sistem Basis Data Entity Relationship Diagram

ENTITY RELATIONSHIP DIAGRAM

Model Entity Relationship

Suatu penyajian data dengan menggunakan Entity dan Relationship

Entity

Obyek yang dapat dibedakan dalam dunia nyata

Entity set

Kumpulan dari entity yang sejenis Berupa:

- Obyek secara fisik: Rumah, Kendaraan, Peralatan - Obyek secara konsep: Pekerjaan, Perusahaan, Rencana

Relationship

Hubungan yang terjadi antara satu atau lebih entity

Relationship set

Kumpulan relationship yang sejenis.

Atribut

Karakteristik dari entity atau relationship, yang menyediakan penjelasan detail tentang entity atau relationship tersebut.

Nilai Atribut

Suatu data aktual atau informasi yang disimpan pada suatu atribut di dalam suatu entity atau relationship.

(47)

Sistem Basis Data Entity Relationship Diagram

JENIS-JENIS ATRIBUT Key

Atribut yang digunakan untuk menentukan suatu entity secara unik.

Atribut Simple

Atribut yang bernilai tunggal.

Atribut Multivalue

Atribut yang memiliki sekelompok nilai untuk setiap instan entity.

Atribut Composite

Suatu atribut yang terdiri dari beberapa atribut yang lebih kecil yang mempunyai arti tertentu.

TglLahir

NIP

Nama

PEGAWAI

Gelar

Nama Depan

Nama

Tengah

Nama

Belakang

NAMA

PEGAWAI

(48)

Sistem Basis Data Entity Relationship Diagram

- Atribut Derivatif

Suatu atribut yang dihasilkan dari atribut yang lain.

DERAJAT DARI RELATIONSHIP

Menjelaskan jumlah entity yang berpartisipasi dalam suatu relationship

Unary Degree (Derajat Satu)

Binary Degree (Derajat Dua)

Ternary Degree (Derajat Tiga)

TglLahir

Umur

PEGAWAI

PEGAWAI

PEGAWAI

LAPOR

PEGAWAI

KERJA

DEPARTEMEN

KERJA

PROYEK

(49)

Sistem Basis Data Entity Relationship Diagram

Cardinality Ratio Constraint

Menjelaskan batasan jumlah keterhubungan satu entity dengan entity lainnya. Jenis Cardinality Ratio

1 : 1

Pegawai Milik

Kendaraan

r1

P1 

k1

r2 p2 

 k2 r3 p3 

  k3 . . .

1 : M / M : 1

Pegawai Kerja

Departemen

r1

P1 

d1

r2 p2 

 d2 r3 p3    d3 r4 p4   . . .

PEGAWAI

KERJA

DEPARTEMEN

PEGAWAI

AI

MILIK

KENDARAAN

1

1

M

1

(50)

Sistem Basis Data Entity Relationship Diagram

M : N

Pegawai

Kerja

Proyek

r1

P1 

pr1

r2 p2 

 pr2 r3 p3 

  pr3 r4

 . . .

PARTICIPATION CONSTRAINT

Menjelaskan apakah keberadaan suatu entity tergantung pada hubungannya dengan entity lain.

Terdapat 2 macam Participation Constraint: Total Participation

Keberadaan suatu entity tergantung pada hubungannya dengan entity lain.

M 1

PEGAWAI

PUNYA

BAGIAN

Partial Participation

Keberadaan suatu entity tidak tergantung pada hubungannya dengan entity lain.

M 1

PEGAWAI

KERJA

PROYEK

PROYEK

M

N

(51)

Sistem Basis Data Entity Relationship Diagram

WEAK ENTITY

Weak Entity adalah suatu Entity dimana keberadaan dari entity tersebut tergantung dari keberadaan entity lain.

Entity yang merupakan induknya disebut Identifying Owner dan relationship-nya disebut Identifying Relationship.

Weak Entity selalu mempunyai Total Participation constraint dengan Identifying Owner.

SIMBOL-SIMBOL ER-DIAGRAM Notasi Arti 1. 1. Entity 2. 2. Weak Entity 3. 3. Relationship 4. 4. Identifying Relationship

PEGAWAI

TANGGUNGAN

NAMA

……… …

MILIK

NOPEG

……… …

(52)

Sistem Basis Data Entity Relationship Diagram

5. 5. Atribut

6. 6. Atribut Primary Key

7. 7. Atribut Multivalue

8. 8. Atribut Composite

(53)

Sistem Basis Data Entity Relationship Diagram

Contoh Penggambaran Diagram ER :

PEGAWAI

BEKERJA

NOPEG

1

PROYEK

M

NAPEG

TANGGUNGAN

MILIKI

JNSKEL

HUB

ALAMAT

KDPOS

ALM1

UMUR

TGLLHR

BAGIAN

NOBAG

NABAG

NAPRO

JAM

NOPRO

LOKASI

SELESAIKAN

KONTROL

M

M

1

1

M

N

M

1

1

1

PIMPIN

PUNYA

Nama

LOKASI

(54)

Sistem Basis Data Entity Relationship Diagram

TRANSFORMASI DARI ERD KE DATABASE RELASIONAL

1. Setiap tipe Entity dibuat suatu relasi yang memuat semua atribut simple, sedangkan untuk atribut composite hanya dimuat komponen-komponennya saja.

NOPEG

ALM1

KDPOS

PEGAWAI

ALAMAT

PEGAWAI (NOPEG, ALM1, KDPOS, …….)

2. Setiap relasi yang mempunyai atribut multivalue, buatlah relasi baru dimana Primary Key-nya merupakan gabungan dari Primary Key dari relasi tersebut dengan atribut multivalue.

LOKPR (NOPRO, LOKASI)

3. Setiap Unary Relationship 1:M, pada relasi perlu ditambahkan suatu foreign key yang menunjuk ke nilai primary key-nya.

PEGAWAI (NOPEG, ….., SUPERVISOR-ID)

PROYEK

NOPRO

………

LOKASI

PEGAWAI

KONTROL

1

NOPEG

…….

M

(55)

Sistem Basis Data Entity Relationship Diagram

4. Setiap Unary Relationship M:N, buatlah relasi baru dimana primary key-nya merupakan gabungan dari dua atribut dimana keduanya menunjuk ke primary key relasi awal dengan penamaan yang berbeda.

KOMBAR (NOBAR, NOKOMP , JUMLAH)

5. Setiap Binary Relationship 1:1, dimana Participation Constraint keduanya total, buatlah suatu relasi gabungan dimana Primary Key-nya dapat dipilih salah satu.

PEGAWAI (NOPEG, ... , NOPRO, ...)

6. Setiap Binary Relationship 1:1 dan salah satu Participation Constraint-nya Total, maka Primary Key pada relasi yang Participation Constraint-nya Partial menjadi Foreign Key pada relasi yang lainnya.

BAGIAN (NOBAG, ... , MANAGER)

NOBAR

…….

JUMLAH

TERDIRI

BARANG

M

N

1

NOPRO

PEGAWAI

KERJA

PROYEK

NOPEG

1

……

……

NOBAG

PEGAWAI

PIMPIN

BAGIAN

NOPEG

1

1

(56)

Sistem Basis Data Entity Relationship Diagram

7. Setiap Binary Relationship 1:1, dimana kedua Participation Constraint-nya partial, maka selain kedua relasi perlu dibuat relasi baru yang berisi Primary Key gabungan dari Primary Key kedua tipe Entity yang berelasi.

PEKERJAAN ( NOPEG, NOPRO, …)

8. Setiap Binary Relationship 1 : M, dimana tipe Entity yang bersisi M mempunyai Participation Constraint Total, maka Primary Key pada relasi yang bersisi 1 dijadikan Foreign Key pada relasi yang bersisi M.

PROYEK (NOPRO, ... , NOBAG)

9. Setiap Binary Relationship 1 : M, dimana tipe Entity yang bersisi M mempunyai Participation Constraint partial, buatlah relasi baru dimana Primary Key-nya merupakan gabungan dari Primary Key kedua tipe Entity yang berelasi.

PEKERJAAN (NOPEG, NOPRO, ……)

BAGIAN

PUNYA

PROYEK

NOBAG

M

1

NOPRO

……

……

PEGAWAI

KERJA

PROYEK

NOPEG

1

1

NOPRO

……

……

PEGAWAI

KERJA

PROYEK

NOPEG

1

M

NOPRO

Gambar

Gambar 2. Sistem basis data untuk suatu universitas
Gambar 1. Tingkatan Arsitektur Basis Data
Gambar 2. Komponen DBMS
Gambar 3. Komponen Software Utama Database Manager
+7

Referensi

Dokumen terkait

Penelitian ini dimulai dengan melakukan analisa sistem berjalan pada bagian kepegawaian untuk mengetahui kebutuhan informasi yang diperlukan, dan melakukan perancangan basis

Untuk menentukan letak dari penunjukkan ukuran, pertama-tama harus menentukan hubungan/batas permukaan benda permukaan yang dipilih sebagai pokok/basis ukuran dan ukuran

Algoritma untuk membangun sistem informasi Penentuan Minat dan Bakat Calon Mahasiswa Universitas IGM adalah Algoritma Nearest Neighbor Retrieval algoritma untuk

Tahap pertama, identifikasi kebutuhan seperti Pencatatan dan pengola han data, Kebutuhan informasi, dan kebutuhan Keamanan data, tahap kedua, pengemba ngan sistem

Mengumpulkan dan menganalisa informasi tentang bagian dari organisasi yang harus didukung oleh aplikasi basis data dan menggunakan informasi itu untuk mengindentifikasikan kebutuhan

Tujuan dari praktikum ini adalah adalah agar mahasiswa mampu menganalisa dan memahami prinsip dasar proses transfer data yang ada pada mikroprosesor 8086,

Merupakan proses pengumpulan dan analisis informasi mengenai bagian organisasi yang didukung oleh aplikasi basis data, dan menggunakan informasi tersebut untuk identifikasi

Perlu ditingkatkan efficiency atau kecepatan terhadap sistem informasi akademik Universitas Indo Global Mandiri Palembang, mengingat hasil dari uji hipotesis