modul perkuliahan basis data -...

180
MODUL PERKULIAHAN Basis Data Pengenalan Basis Data Fakultas Program Studi Tatap Muka Kode MK Disusun Oleh Ilmu Komputer Teknik Informatika 01 87033 Tim Dosen Abstract Kompetensi Modul ini berisi materi tentang pengenalan terhadap basis data, dan DBMS Mahasiswa mampu menjelaskan konsep basis data, mampu menjelaskan komponen dalam basis data, mampu menyebutkan dan menjelaskan keuntungan dan kelebihan penggunaan basis data

Upload: lytruc

Post on 28-Apr-2018

265 views

Category:

Documents


25 download

TRANSCRIPT

Page 1: MODUL PERKULIAHAN Basis Data - …fasilkom.mercubuana.ac.id/.../uploads/2017/10/Sistem-Basis-Data-TI.pdf · sebagai contohnya adalah laporan. ... 2014 4 Basis Data Pusat Bahan Ajar

 

 

MODUL PERKULIAHAN

Basis Data

Pengenalan Basis Data

           

  Fakultas  Program Studi  Tatap Muka  Kode MK  Disusun Oleh 

  Ilmu Komputer  Teknik Informatika 

01 87033  Tim Dosen 

 

Abstract Kompetensi Modul ini berisi materi tentang pengenalan terhadap basis data, dan DBMS

Mahasiswa mampu menjelaskan konsep basis data, mampu menjelaskan komponen dalam basis data, mampu menyebutkan dan menjelaskan keuntungan dan kelebihan penggunaan basis data

Page 2: MODUL PERKULIAHAN Basis Data - …fasilkom.mercubuana.ac.id/.../uploads/2017/10/Sistem-Basis-Data-TI.pdf · sebagai contohnya adalah laporan. ... 2014 4 Basis Data Pusat Bahan Ajar

 

2014 2 Basis Data Pusat Bahan Ajar dan eLearning   Tim Dosen http://www.mercubuana.ac.id

 

Pendahuluan Basis data merupakan kumpulan data, yang mendeskripsikan aktivitas suatu organisasi

yang saling berhubungan atau lebih. Misalkan sebuah rumah sakit yang mungkin berisi

informasi sebagai berikut:

Entitas seperti dokter, suster, pegawai RS, pasien, obat dan informasi lainnya.

Hubungan antara entitas, contohnya adalah relasi periksa antara dokter dengan pasien,

relasi pengobatan antara pasien dengan obat dan relasi lainnya yang mungkin terjadi dari

hubungan antara 2 relasi atau lebih.

Jauh sebelum ditemukan dan diaplikasikan basis data dalam pengembangan system dan

aplikasi, industry teknologi informasi menggunakan pendekatan aplikasi berbasis file atau

file-base approach. Berikut adalah penjelasan mengenai file-based system.

File-Based Systems

Kumpulan dari program-program aplikasi yang menyediakan layanan untuk end users

sebagai contohnya adalah laporan.

Setiap program mendefinisikan dan mengatur datanya masing-masing, artinya bersifat

dependent terhadap program yang spesifik.

File‐BasedProcessing

Page 3: MODUL PERKULIAHAN Basis Data - …fasilkom.mercubuana.ac.id/.../uploads/2017/10/Sistem-Basis-Data-TI.pdf · sebagai contohnya adalah laporan. ... 2014 4 Basis Data Pusat Bahan Ajar

 

2014 3 Basis Data Pusat Bahan Ajar dan eLearning   Tim Dosen http://www.mercubuana.ac.id

 

Keterbatasandaripendekatanberbasisfile(File‐Based)

Data terpisah-pisah dan terisolasi (Separation and isolation of data)

o Setiap program mengatur datanya masing-masing.

o User dari program yang satu tidak dapat menggunakan data yang diperlukan yang

berada pada program yang lain.

Duplikasi Data (Duplication of data)

o Data yang sama terdapat pada program yang berbeda.

o Pemborosan ruang penyimpanan dan sangat potensial untuk terjadinya perbedaan

format dan/atau nilai untuk data yang sama.

Ketergantungan Data (Data dependence)

o Stuktur file didefinisikan dalam kode program.

Ketidaksesuaian Format File (Incompatible file formats)

o Program dituliskan dalam bahasa pemrograman yang berbeda, sehingga tidak

mudah untuk mengakses data/file yang satu dengan yang lainnya.

Program Aplikasi dengan Queri/pengembangan yang terbatas (Fixed

Queries/Proliferation of application programs)

o Program dibuat untuk memenuhi fungsi-fungsi khusus

o Setiap terdapat kebutuhan baru yang timbul/diperlukan, akan memerlukan program

yang baru pula.

Pendekatan Database

Timbulkarena:

- Pendefinisian data disimpan/dilekatkan dalam program aplikasi bukan disimpan pada

tempat yang terpisah dan independen.

- Tidak ada pengaturan/control pada pengaksesan dan manipulasi data yang dilakukan

oleh program aplikasi

Hasil:

– Database dan Database Management System (DBMS).

Page 4: MODUL PERKULIAHAN Basis Data - …fasilkom.mercubuana.ac.id/.../uploads/2017/10/Sistem-Basis-Data-TI.pdf · sebagai contohnya adalah laporan. ... 2014 4 Basis Data Pusat Bahan Ajar

 

2014 4 Basis Data Pusat Bahan Ajar dan eLearning   Tim Dosen http://www.mercubuana.ac.id

 

Definisi:

Kumpulan relasi-relasi logikal dari data (dan deskripsi data) yang dapat digunakan

bersama dan dibuat untuk memperoleh informasi yang dibutuhkan oleh perusahaan.

Katalog sistem (metadata) menyediakan deskripsi data untuk memungkinkan

kemandirian data-program (program–data independence).

Merupakan relasi data logikal yang terdiri dari entity-entity, atribut-atribut, dan

relationship dari informasi organisasi/perusahaan.

Database Management System (DBMS)

Sistem software yang memungkinkan user untuk mendefinisikan, membuat, dan memelihara

database dan menyediakan akses terkontrol untuk database yang bersangkutan.

Data definition language (DDL).

o Memungkinkan spesifikasi tipe data, struktur dan batasan-batasan data

o Semua spesifikasi disimpan dalam database

Data manipulation language (DML).

o Fasilitas pengadaan umum (dengan query language) mengenai data.

Page 5: MODUL PERKULIAHAN Basis Data - …fasilkom.mercubuana.ac.id/.../uploads/2017/10/Sistem-Basis-Data-TI.pdf · sebagai contohnya adalah laporan. ... 2014 4 Basis Data Pusat Bahan Ajar

 

2014 5 Basis Data Pusat Bahan Ajar dan eLearning   Tim Dosen http://www.mercubuana.ac.id

 

Pengontrolan akses terhadap database meliputi :

o Sistem keamanan.

o Sistem integritas.

o Sistem kontrol konkurensi.

o Sistem kontrol recovery.

o Katalog yang dapat diakses oleh user.

Mekanisme view .

o Hanya menyediakan data-data yang dibutuhkan atau digunakan oleh user.

DataBase Management System (DBMS)

Definisi Data (DDL)

o Untuk spesifikasi tipe data, struktur dan batasan-batasan lainnya (Skema eksternal,

konseptual dan internal, juga mapping-mapping yang ada).

o Seluruh spesifikasi disimpan dalam database.

o DBMS harus menyertakan komponen DDL processor atau DDL Compiler.

Manipulasi Data (DML)

o DBMS harus mampu menangani permintaan pemanggilan data, update atau

penghapusan data, juga penambahan data baru kedalam database.

o DBMS harus menyertakan komponen DML processor atau DML compiler.

Optimasi dan Eksekusi

o DML Request akan diproses oleh komponen Optimizer yang berfungsi untuk

menentukan cara yang paling efisien dalam implementasi request.

o Requaest yang telah dioptimalkan kemudian dieksekusi dibawah kontrol Run-Time

Manager.

Keamanan dan Integritas Data

o DBMS harus mampu memonitor permintaan user, dan menolak segala usaha yang

mengganggu batasan keamanan dan integritas data yang telah didefinisikan.

Page 6: MODUL PERKULIAHAN Basis Data - …fasilkom.mercubuana.ac.id/.../uploads/2017/10/Sistem-Basis-Data-TI.pdf · sebagai contohnya adalah laporan. ... 2014 4 Basis Data Pusat Bahan Ajar

 

2014 6 Basis Data Pusat Bahan Ajar dan eLearning   Tim Dosen http://www.mercubuana.ac.id

 

Recovery dan Concurrency Data

o DBMS atau komponen software lain (Transaction Manager) harus menyediakan kontrol

system recovery dan concurrency.

Data Dictionary

o Berisikan “data about the data “, yaitu seluruh objek yang terkait dalam system

didefinisikan dan disimpan dalam data dictionary.

Performance

o DBMS harus menampilkan semua fungsi yang telah didefinisikan sebelumnya se-efisien

mungkin.

Mekanisme View.

o Menyediakan/menampilkan kepada pengguna data-data yang diperlukan dan

digunakan saja.

Views

o Memungkinkan setiap pengguna memiliki tampilan database tersendiri.

o Suatu view pada dasarnya merupakan bagian/subset dari database.

o Manfaat view meliputi:

Mengurangi kerumitan (Reduce complexity)

Menyediakan tingkatan keamanan (Provide a level of security)

Menyediakan mekanisme untuk mengubah tampilan database

Menampilkan struktur database yang konsisten dan tidak berubah walaupun

database asal diubah

Page 7: MODUL PERKULIAHAN Basis Data - …fasilkom.mercubuana.ac.id/.../uploads/2017/10/Sistem-Basis-Data-TI.pdf · sebagai contohnya adalah laporan. ... 2014 4 Basis Data Pusat Bahan Ajar

 

2014 7 Basis Data Pusat Bahan Ajar dan eLearning   Tim Dosen http://www.mercubuana.ac.id

 

Komponen DBMS

Komponen DBMS

Hardware

- Meliputi PC sampai dengan jaringan komputer.

- Tempat penyimpanan secondary (manegtic disk), I/O device ex : disk drives),

device Controller, I/O Channels, dan lainnya.

- Hardware processor dan main memory, digunakan untuk mendukung saat

eksekusi system software database.

Software

- DBMS, operating system, network software (jika diperlukan) dan program

aplikasi pendukung lainnya.

Data

- Data pada sebuah system database baik itu single-user system maupun

multi-user system harus terintegrasi dan dapat ddigunakan bersama

(Integrated and Shared).

- Digunakan oleh organisasi dan deskripsi dari data disebut schema.

Procedures

- Instrukti dan aturan yang harus disertakan dalam mendesain dan

menggunakan database dan DBMS.

People

- DA (Data Administrator), seseorang yang berwenang untuk membuat

keputusan stategis dan kebijakan mengenai data yang ada

Page 8: MODUL PERKULIAHAN Basis Data - …fasilkom.mercubuana.ac.id/.../uploads/2017/10/Sistem-Basis-Data-TI.pdf · sebagai contohnya adalah laporan. ... 2014 4 Basis Data Pusat Bahan Ajar

 

2014 8 Basis Data Pusat Bahan Ajar dan eLearning   Tim Dosen http://www.mercubuana.ac.id

 

- DBA (DataBase Administrator), menyediakan dukungan teknis untuk

implementasi keputusan tersebut, dan bertanggungjawab atas keseluruhan

kontrol system pada level teknis

- Database Designer (Logical and Physical)

- Application Programmers, bertanggungjawab untuk membuat aplikasi

database dengan menggunakan bahasa pemrograman yang ada, seperti :

C++, Java, dan lainnya.

- End Users, Siapapun yang berinteraksi dengan system secara online melalui

workstation/terminal.

History of Database Systems

First generation

- Hierarchical and Network

Second generation

- Relational

Third generation

- Object Relational

- Object-Oriented

Keuntungan dan kerugian DBMS

Keuntungan DBMS

Penggunaan Data Bersama (The Data Can Be Shared)

Mengurangi Kerangkapan Data (Redudancy Can Be Reduced)

Menghindari Ketidakkonsistenan Data (Inconsistency Can Be Avoided)

Integritas Data Terpelihara (Integrity Can Be Maintained )

Keamanan Terjamin (Security Can Be Enforced )

Kebutuhan User Yang Kompleks Dapat Teratasi (Balanced conflicting requirements)

Page 9: MODUL PERKULIAHAN Basis Data - …fasilkom.mercubuana.ac.id/.../uploads/2017/10/Sistem-Basis-Data-TI.pdf · sebagai contohnya adalah laporan. ... 2014 4 Basis Data Pusat Bahan Ajar

 

2014 9 Basis Data Pusat Bahan Ajar dan eLearning   Tim Dosen http://www.mercubuana.ac.id

 

Pelaksanaan Standarisasi (Standards Can Be Enforced)

Meningkatkan Produktivitas (Increased productivity)

Layanan Back up dan Recovery Semakin Baik (Improved backup and recovery services)

Kerugian DBMS

Rumit (Complexity)

Karena penetapan fungsi dari DBMS yang baik, menyebabkan DBMS menjadi software

yang cukup rumit. Seluruh user harus mengetahui fungsi-fungsi yang ada dengan baik,

sehingga dapat memperoleh manfaatnya.

Ukuran (Size)

Kerumitan dan banyaknya fungsi yang ada menyebabkan DBMS memerlukan banyak

software pendukung yang mengakibatkan penambahan tempat penyimpanan dan

memory.

Biaya DBMS (Cost of DBMS)

Biaya Tambahan Hardware (Additional hardware costs)

Biaya Konversi (Cost of conversion)

Performance

Pada dasarnya DBMS dibuat untuk menyediakan banyak aplikasi, akibatnya mungkin

beberapa aplikasi akan berjalan tidak seperti biasanya.

Higher impact of a failure

Karena system yang terpusat, jika seluruh user dan aplikasi terakses dari DBMS maka

kerusakan pada bagian manapun dari system, akan menyebabkan operasi terhenti.

 

 

Page 10: MODUL PERKULIAHAN Basis Data - …fasilkom.mercubuana.ac.id/.../uploads/2017/10/Sistem-Basis-Data-TI.pdf · sebagai contohnya adalah laporan. ... 2014 4 Basis Data Pusat Bahan Ajar

 

2014 10 Basis Data Pusat Bahan Ajar dan eLearning   Tim Dosen http://www.mercubuana.ac.id

 

Latihan 1. Jelaskan dengan singkat menggunakan kalimat anda sendiri tentang bagaimana

basis data diperlukan dalam sebuah pegembangan aplikasi.

2. Apakah perbedaan antara seorang Database Administrator dengan Data Administrator?

Daftar Pustaka 1. Database system: A Practical approach to design, implementation and management

 

Page 11: MODUL PERKULIAHAN Basis Data - …fasilkom.mercubuana.ac.id/.../uploads/2017/10/Sistem-Basis-Data-TI.pdf · sebagai contohnya adalah laporan. ... 2014 4 Basis Data Pusat Bahan Ajar

MODUL PERKULIAHAN

Basis Data

Lingkungan Basis Data

Fakultas  Program Studi  Tatap Muka  Kode MK  Disusun Oleh 

Ilmu Komputer  Teknik Informatika 

02 87033  Tim Dosen 

 

Abstract Kompetensi Modul ini berisi materi tentang lingkungan basis data tentang arsitektur ANSI-SPARC serta komponen dalam perangkat lunak dari DBMS berserta fungsinya

Mahasiswa mampu menjelaskan perbedaan konsep asitektur 3 level basis data dan mampu mengidentifikasi komponen perangkat lunak dalam DBMS

Page 12: MODUL PERKULIAHAN Basis Data - …fasilkom.mercubuana.ac.id/.../uploads/2017/10/Sistem-Basis-Data-TI.pdf · sebagai contohnya adalah laporan. ... 2014 4 Basis Data Pusat Bahan Ajar

2013 2 Basis Data Pusat Bahan Ajar dan eLearning   Tim Dosen http://www.mercubuana.ac.id

 

Tujuan dari Three-Level Architecture

Seluruh pengguna harus dapat mengakses data yang sama.

Tampilan pengguna (user’s view) tidak dapat diubah.

Pengguna tidak perlu mengetahui detail penyimpanan fisik database.

DBA harus dapat mengubah struktur penyimpanan database tanpa mempengaruhi

tampilan/view pengguna.

Struktur internal database harus tidak terpengaruh oleh perubahan aspek fisik pada

penyimpanan.

DBA harus dapat merubah struktur konseptual database tanpa mempengaruhi seluruh

pengguna.

Database System Architecture

ANSI-SPARC Three-Level Architecture

Page 13: MODUL PERKULIAHAN Basis Data - …fasilkom.mercubuana.ac.id/.../uploads/2017/10/Sistem-Basis-Data-TI.pdf · sebagai contohnya adalah laporan. ... 2014 4 Basis Data Pusat Bahan Ajar

2013 3 Basis Data Pusat Bahan Ajar dan eLearning   Tim Dosen http://www.mercubuana.ac.id

 

External Level

Cara pandang User terhadap Database.

Menerangkan bagaimana data yang ada direpresentasikan untuk user yang berbeda.

Ekternal level merupakan level individual user, dimana masing-masing user hanya akan

berkepentingan dengan satu bagian saja. Cara pandang dari masing-masing user bersifat

abstrak bila dibandingkan dengan bagaimana sebenarnya data tersebut disimpan. Masing-

masing pandangan user tersebut disebut external view, yang berisi berbagai tipe eksternal

record. Jadi level ini berkaitan erat dengan pemakai, dimana dari tiap pemakai hanya

memerlukan sebagian dari data yang ada dalam database. Cara pandang secara eksternal

hanya terbatas pada entitas, atribut, dan hubungan antar entitas yang diperlukan saja.

Conceptual Level

Cara pandang keseluruhan database (Community view of the database).

Menerangkan data apa saja yang tersimpan dan relasi antar data.

Conceptual view merupakan representasi informasi keseluruhan dari isi database,

dimana semua pandangan masing-masing user digabungkan. Perwujudannya abstrak, bila

dibandingkan dengan bagaimana data sesunggguhnya tersimpan secara fisik. Konseptual

view berisi berbagai tipe dari konseptual record yang didefinisikan oleh konseptual skema,

ditulis dalam data definition language (DDL). Pendefinisian skema konseptual dimaksudkan

untuk menyertakan feature-feature tambahan, seperti security and integrity. Beberapa tujuan

utama dari skema konseptual diantaranya ; menggambarkan enterprise secara lengkap,

bagaimana data tersebut digunakan, bagaimana aliran data didalam enterprise, kegunaan

data untuk setiap proses, proses kontrol atau audit yang diberikan pada setiap proses.

Internal Level

Representasi secara fisik (Physical representation) dari database pada komputer.

Menerangkan bagaimana data yang ada disimpan dalam database.

Internal view merupakan level terendah dalam representasi dari keseluruhan database.

Internal view berisikan berbagai tipe internal record yang didefinisikan oleh skema internal.

Page 14: MODUL PERKULIAHAN Basis Data - …fasilkom.mercubuana.ac.id/.../uploads/2017/10/Sistem-Basis-Data-TI.pdf · sebagai contohnya adalah laporan. ... 2014 4 Basis Data Pusat Bahan Ajar

2013 4 Basis Data Pusat Bahan Ajar dan eLearning   Tim Dosen http://www.mercubuana.ac.id

 

Selain itu juga menjelaskan mengenai alokasi ruang penyimpanan data dan index,

bagaimana perwujudan field-field yang disimpan, deskripsi record untuk penyimpanan

(dengan ukuran penyimpanan untuk data elemen), pemampatan data, dan teknik encription

(pengamanan data). Dengan kata lain level ini berkaitan dengan storage structure/stored

database yang menerangkan tempat penyimpanan data pada internal view, dan storage

structure definition pada skema internal yang menerangkan hubungannya dengan cara

pengaksesan data yang disimpan.

Differences between Three Levels of ANSI-SPARC Architecture

Page 15: MODUL PERKULIAHAN Basis Data - …fasilkom.mercubuana.ac.id/.../uploads/2017/10/Sistem-Basis-Data-TI.pdf · sebagai contohnya adalah laporan. ... 2014 4 Basis Data Pusat Bahan Ajar

2013 5 Basis Data Pusat Bahan Ajar dan eLearning   Tim Dosen http://www.mercubuana.ac.id

 

*User Interface

Detail arsitektur sistem basis data

Data Independence

Logical Data Independence

Menunjukkan kekebalan skema eksternal terhadap perubahan skema konseptual.

Perubahan skema konseptual (contoh : penambahan/penghapusan entity).

External View A  External View B *External 

Schema A

*External 

Schema B

 

Host 

User B3 

 

Host 

L

 

Host 

 

Host 

 

Host 

User A1  User A2  User B1  User B2 

Conceptual View 

External/Conceptualmapping A

External/Conceptualmapping B

Conceptual/Internal mapping A

 

DBMS 

Conceptual 

Schema

Stored Database (Internal View) 

Storage 

Structure 

Definition 

(Internal 

Schema) 

Schemas and 

mapping built 

and 

maintained by 

the Database 

Administrator 

(DBA) 

Page 16: MODUL PERKULIAHAN Basis Data - …fasilkom.mercubuana.ac.id/.../uploads/2017/10/Sistem-Basis-Data-TI.pdf · sebagai contohnya adalah laporan. ... 2014 4 Basis Data Pusat Bahan Ajar

2013 6 Basis Data Pusat Bahan Ajar dan eLearning   Tim Dosen http://www.mercubuana.ac.id

 

Tidak memerlukan perubahan skema eksternal atau penulisan ulang program

aplikasi.

Physical Data Independence

Menunjukkan kekebalan skema konseptual terhadap perubahan skema internal.

Perubahan skema internal (contoh : Menggunakan organisasi file yang berbeda,

perubahan struktur/peralatan penyimpanan)

Tidak memerlukan perubahan skema konseptual maupun skema eksternal.

Data Independence and the ANSI-SPARC Three-Level Architecture

Database Languages

Data Definition Language (DDL)

Bahasa yang memungkinkan DBA atau user untuk mendefinisikan, menerangkan dan

memberi nama entitas-entitas, atribut, dan relationship yang dibutuhkan untuk aplikasi,

termasuk batasan-batasan keamanan dan integritas-nya.

Data Manipulation Language (DML)

Page 17: MODUL PERKULIAHAN Basis Data - …fasilkom.mercubuana.ac.id/.../uploads/2017/10/Sistem-Basis-Data-TI.pdf · sebagai contohnya adalah laporan. ... 2014 4 Basis Data Pusat Bahan Ajar

2013 7 Basis Data Pusat Bahan Ajar dan eLearning   Tim Dosen http://www.mercubuana.ac.id

 

Menyediakan operasi dasar manipulasi data pada data yang ada dalam Database, yaitu:

- Penyisipan data

- Modifikasi data

- Pemanggilan data

- Penghapusan data

Procedural DML

Bahasa yang memungkinkan user (umumnya programmer) untuk memberi instruksi

ke system mengenai data yang dibutuhkan dan cara pemanggilannya. Artinya, user

harus menjelaskan operasi pengaksesan data yang akan digunakan dengan

menggunakan prosedur yang ada untuk mendapatkan informasi yang dibutuhkan.

Non-Procedural DML

Bahasa yang memungkinkan user untuk menentukan data yang dibutuhkan dengan

menyebutkan spesifikasinya tanpa men-spesifikasikan bagaimana cara

mendapatkannya.

Fourth Generation Language (4GL)

User lebih menekankan pada pendefinisian apa yang akan dikerjakan, daripada

bagaimana mengerjakannya. 4GL meliputi :

Query Languages

Forms Generators

Merupakan fasilitas interaktif untuk membuat form input data dan tampilannya.

Mendefinisikan design tampilan, informasi apa yang akan disajikan, komponen

warna pada layar dan karakteristik lainnya.

Report Generators

Membuat laporan (reports) yang datanya diambil dari database. Memungkinkan user

untuk mengambil data yang diperlukan untuk laporan. Lebih menekankan kepada

rancangan output, yaitu bagaimana suatu laporan akan disajikan.

Graphics Generators

Page 18: MODUL PERKULIAHAN Basis Data - …fasilkom.mercubuana.ac.id/.../uploads/2017/10/Sistem-Basis-Data-TI.pdf · sebagai contohnya adalah laporan. ... 2014 4 Basis Data Pusat Bahan Ajar

2013 8 Basis Data Pusat Bahan Ajar dan eLearning   Tim Dosen http://www.mercubuana.ac.id

 

Digunakan untuk mengambil data dari database, dan menampilkannya dalm bentuk

grafik, seperti ; bar chart, pie chart, line chart dan lainnya.

Application Generators.

Fasilitas untuk menghasilkan program yang berhubungan dengan data, menentukan

bagaimana menampilkan fungsi-fungsi.

Model Data

Kumpulan konsep-konsep yang terintegrasi untuk menggambarkan data, relationships antar

data, dan batasan-batasan data dalam organisasi.

Data Model terdiri dari :

Bagian struktural, berisikan sekumpulan aturan berdasarkan database yang dapat

dibuat;

Bagian manipulasi, mendefinisikan tipe operasi yang boleh dilakukan;

Aturan-aturan Integritas.

Kegunaan untuk

Merepresentasikan data kedalam bentuk yang lebih mudah untuk dipahami.

untuk menetapkan konsistensi dalam memandang, mengorganisir,

menginterpretasikan dan memperlakukan database.

Jenis-jenis Model data :

Object-Based Data Models

Entity-Relationship

Semantic

Functional

Object-Oriented.

Record-Based Data Models

Relational Data Model

Network Data Model

Page 19: MODUL PERKULIAHAN Basis Data - …fasilkom.mercubuana.ac.id/.../uploads/2017/10/Sistem-Basis-Data-TI.pdf · sebagai contohnya adalah laporan. ... 2014 4 Basis Data Pusat Bahan Ajar

2013 9 Basis Data Pusat Bahan Ajar dan eLearning   Tim Dosen http://www.mercubuana.ac.id

 

Hierarchical Data Model.

Physical Data Models

Menerangkan bagaimana data disimpan dalam komputer, merepresentasikan

informasi seperti ; struktur record, permintaan record, dan jalur akses

Conceptual Modelling

Skema konseptual merupakan bagian utama dari system yang menampilkan

view seluruh user.

Merupakan representasi yang akurat dan lengkap dari kebutuhan data pada

organisasi.

Merupakan proses pembentukan suatu model informasi yang digunakan dalam

organisasi yang terlepas dari detail implementasi.

Hasilnya merupakan model data konseptual.

Fungsi-fungsi DBMS

Penyimpanan, pengambilan dan perubahan Data.

Katalog yang dapat diakses oleh pengguna.

Dukungan Transaksi.

Layanan kontrol konkurensi.

Layanan recovery.

Layanan kepemilikan (Authorization Services).

Dukungan komunikasi data.

Layanan integrasi.

Layanan untuk peningkatan independensi data.

Layanan utilitas.

Page 20: MODUL PERKULIAHAN Basis Data - …fasilkom.mercubuana.ac.id/.../uploads/2017/10/Sistem-Basis-Data-TI.pdf · sebagai contohnya adalah laporan. ... 2014 4 Basis Data Pusat Bahan Ajar

2013 10 Basis Data Pusat Bahan Ajar dan eLearning   Tim Dosen http://www.mercubuana.ac.id

 

Komponen software utama DBMS

Query Processor, merupakan komponen utama dalam DBMS yang merubah query

kedalam bahasa instruksi tingkat rendah yang ditujukan untuk database manager.

Database Manager (DM), DM berhadapan dengan program aplikasi dan queri yang

diajukan oleh user. DM menerima query dan memeriksa skema eksternal dan

konseptual untuk menentukan record konseptual apa yang dapat memenuhi permintaan

user.

File Manager, memanipulasi file-file dasar yang tersimpan dan mengatur alokasi tempat

penyimpanan.

DML Processor, modul ini mengkonversikan pernyataan DML dalam program aplikasi

kebentuk standar dari bahasa host.

Page 21: MODUL PERKULIAHAN Basis Data - …fasilkom.mercubuana.ac.id/.../uploads/2017/10/Sistem-Basis-Data-TI.pdf · sebagai contohnya adalah laporan. ... 2014 4 Basis Data Pusat Bahan Ajar

2013 11 Basis Data Pusat Bahan Ajar dan eLearning   Tim Dosen http://www.mercubuana.ac.id

 

DDL Compiler, mengkonversikan pernyataan DDL kedalam sekumpulan tabel-tabel

yang berisikan meta-data. Tabel-tabel ini tersimpan di katalog sistem dan informasi

pengawasannya disimpan pada file header data.

Catalog Manager, mengatur pengaksesan dan memelihara katalog system.

Komponen Database Manager (DM)

Page 22: MODUL PERKULIAHAN Basis Data - …fasilkom.mercubuana.ac.id/.../uploads/2017/10/Sistem-Basis-Data-TI.pdf · sebagai contohnya adalah laporan. ... 2014 4 Basis Data Pusat Bahan Ajar

2013 12 Basis Data Pusat Bahan Ajar dan eLearning   Tim Dosen http://www.mercubuana.ac.id

 

Komponen software utama dalam DM :

Authorization Control, modul ini memeriksa bahwa user memiliki otorisasi yang

dibutuhkan untuk melakukan transaksi.

Command Processor, ketika sistem telah memeriksa otorisasi user, maka hak

pengawasan dialihkan pada command processor.

Integrity Checker, untuk operasi yang menyebabkan perubahan database, integrity

checker memeriksa bahwa operasi yang diminta memenuhi batasan-batasan

integritas yang ada.

Query Optimizer, modul ini menentukan stategi yang paling optimal untuk eksekusi

query.

Transaction Manager, modul ini menampilkan proses yang diinginkan dari suatu

operasi

Scheduler, modul ini bertanggung jawab untuk memastikan bahwa operasi terhadap

database yang berurutan tidak mengalami konflik satu dengan lainnya.

Recovery Manager, modul ini memastikan database selalu berada pada kondisi

yang konsisten jika terjadi kesalahan.

Buffer Manager, modul ini bertanggung jawab untuk men-transfer data antara main

memory dan secondary storage.

Multi-User DBMS Architectures

Teleprocessing

Arsitektur tradisional untuk multi-user system, dimana sebuah CPU terhubung dengan

beberapa workstation.

Teleprocessing Topology

Page 23: MODUL PERKULIAHAN Basis Data - …fasilkom.mercubuana.ac.id/.../uploads/2017/10/Sistem-Basis-Data-TI.pdf · sebagai contohnya adalah laporan. ... 2014 4 Basis Data Pusat Bahan Ajar

2013 13 Basis Data Pusat Bahan Ajar dan eLearning   Tim Dosen http://www.mercubuana.ac.id

 

File-Server

File-server dihubungkan dengan beberapa workstation melalui jaringan (network),

Database diletakan pada file-server, DBMS dan aplikasi dijalankan pada masing-masing

workstation.

Kerugiannya :

Kepadatan jaringan

Diperlukan copy DBMS pada setiap workstation.

Kontrol concurrency, recovery dan integrity yang lebih rumit.

File-server architecture

Client-Server

Server menangani database dan DBMS, Client mengatur user interface dan

menjalankan aplikasi.

Keuntungannya :

Akses yang lebih luas terhadap database.

Meningkatkan performa.

Pengurangan biaya hardware.

Pengurangan biaya komunikasi.

Peningkatan konsistensi.

Client-Server Architecture

Page 24: MODUL PERKULIAHAN Basis Data - …fasilkom.mercubuana.ac.id/.../uploads/2017/10/Sistem-Basis-Data-TI.pdf · sebagai contohnya adalah laporan. ... 2014 4 Basis Data Pusat Bahan Ajar

2013 14 Basis Data Pusat Bahan Ajar dan eLearning   Tim Dosen http://www.mercubuana.ac.id

 

Alternative Client-Server Topologies

Page 25: MODUL PERKULIAHAN Basis Data - …fasilkom.mercubuana.ac.id/.../uploads/2017/10/Sistem-Basis-Data-TI.pdf · sebagai contohnya adalah laporan. ... 2014 4 Basis Data Pusat Bahan Ajar

2013 15 Basis Data Pusat Bahan Ajar dan eLearning   Tim Dosen http://www.mercubuana.ac.id

 

Summary Client – Server

Client

Mengatur user Interface

Menerima & memeriksa syntax input dari user

Membangun (Generates) permintaan DB dan mengirimkannya ke server

Memberikan respon balik ke user

Server

Menerima & memroses permintaan DB dari client

Memeriksa autorisasi

Menjamin batasan integritas

Menampilkan queri/proses update dan mengirimkannya ke user

Memelihara System Catalog

Menyediakan kontrol recovery

Menyediakan akses DB yang akurat

Transaction Processing Monitors

Program yang mengontrol transfer data antara client dan server untuk menyediakan

environment yang konsisten, khususnya untuk Online Transaction Processing (OLTP).

Transaction Processing Monitor tingkat pertengahan dari ketiga tingkatan client-server

architecture

Page 26: MODUL PERKULIAHAN Basis Data - …fasilkom.mercubuana.ac.id/.../uploads/2017/10/Sistem-Basis-Data-TI.pdf · sebagai contohnya adalah laporan. ... 2014 4 Basis Data Pusat Bahan Ajar

2013 16 Basis Data Pusat Bahan Ajar dan eLearning   Tim Dosen http://www.mercubuana.ac.id

 

System Catalog

Tempat penyimpanan informasi (metadata) menjelaskan data yang ada di database.

Hal-hal yang disimpan, diantaranya :

Nama-nama user yang diberi wewenang.

Nama data item dalam database;

Batasan untuk setiap data item;

data item yang dapat diakses oleh user dan tipe aksesnya.

Digunakan sebagai penguji kontrol autorisasi dan integritas.

Information Resource Dictionary System (IRDS)

Respon terhadap usaha untuk standarisasi interface data dictionary.

Standar IRDS mendefinisikan sejumlah aturan mengenai penyimpanan dan

pengaksesan data sictionary, diantaranya :

extensibility of data;

integrity of data;

controlled access to data.

IRDS services interface

Page 27: MODUL PERKULIAHAN Basis Data - …fasilkom.mercubuana.ac.id/.../uploads/2017/10/Sistem-Basis-Data-TI.pdf · sebagai contohnya adalah laporan. ... 2014 4 Basis Data Pusat Bahan Ajar

2013 17 Basis Data Pusat Bahan Ajar dan eLearning   Tim Dosen http://www.mercubuana.ac.id

 

Latihan

1. Diskusikan konsep dari data independence dan jelaskan pentingnya konsep ini

dalam lingkup basis data

2. Apa yang dimaksud dengan model data? Sebutkan dan jelaskan masing-masing dari

model data

3. Apa yang dimaksud dengan ‘client–server architecture’ dan apa keuntungan dari

pendekatan ini? Bandingkan arsitektur client-server dengan 2 arsitektur lainnya

4. Jelaskan fungsi dan pentingnya dari sebuah system katalog

Daftar Pustaka

1. Database system: A Practical approach to design, implementation and management

 

Page 28: MODUL PERKULIAHAN Basis Data - …fasilkom.mercubuana.ac.id/.../uploads/2017/10/Sistem-Basis-Data-TI.pdf · sebagai contohnya adalah laporan. ... 2014 4 Basis Data Pusat Bahan Ajar

MODUL PERKULIAHAN

Basis Data

Model Relasional Basis Data

Fakultas  Program Studi  Tatap Muka  Kode MK  Disusun Oleh 

Ilmu Komputer  Teknik Informatika 

03 87033  Tim Dosen 

 

Abstract Kompetensi Modul ini berisi materi tentang model relasional dalam basis data

Mahasiswa mampu menjelaskan struktur data relasional, mampu menyebutkan dan menjelaskan kunci relasional

Page 29: MODUL PERKULIAHAN Basis Data - …fasilkom.mercubuana.ac.id/.../uploads/2017/10/Sistem-Basis-Data-TI.pdf · sebagai contohnya adalah laporan. ... 2014 4 Basis Data Pusat Bahan Ajar

2014 2 Basis Data Pusat Bahan Ajar dan eLearning   Tim Dosen http://www.mercubuana.ac.id

 

Relational Model Terminology

Relasi direpresentasikan sebagai table yang terdiri dari baris dan kolom.

Diaplikasikan hanya pada struktur logical bukan fisikal.

Atribut adalah nama kolom pada table.

Tuple adalah baris pada table (record).

Domain adalah himpunan nilai dari satu atau lebih atribut.

Degree adalah banyaknya atribut/kolom pada tabel.

Cardinality adalah banyaknya tuple/baris pada tabel.

Relational Database adalah kumpulan relasi ternormalisasi dengan nama relasi yang

jelas dan dapat dibedakan.

Instances of Branch and Staff (part) Relations

Page 30: MODUL PERKULIAHAN Basis Data - …fasilkom.mercubuana.ac.id/.../uploads/2017/10/Sistem-Basis-Data-TI.pdf · sebagai contohnya adalah laporan. ... 2014 4 Basis Data Pusat Bahan Ajar

2014 3 Basis Data Pusat Bahan Ajar dan eLearning   Tim Dosen http://www.mercubuana.ac.id

 

Contoh Domain Atribut

Terminologi Alternatif untuk Model Relasional

Dalam basis data terdapat beberapa terminology yang sebenarnya merujuk pada sebuah hal yang sama. Adanya perbedaan dikarenakan adanya perbedaan cara pandang dan perbedaan pengaplikasian. Untuk lebih jelasnya, perbedaan antara terminology alternative dalam model relasional dapat dilihat pada table 3.1.

Definisi matematis untuk relasi

Misalkan terdapat himpunan D1 & D2, dimana D1 = {2, 4} dan D2 = {1, 3, 5}.

Cartesian product, D1 X D2, adalah himpunan pasangan dimana elemen pertama

merupakan anggota dari D1 dan elemen ke dua, anggota dari D2.

D1 X D2 = {(2, 1), (2, 3), (2, 5), (4, 1), (4, 3), (4, 5)}

Page 31: MODUL PERKULIAHAN Basis Data - …fasilkom.mercubuana.ac.id/.../uploads/2017/10/Sistem-Basis-Data-TI.pdf · sebagai contohnya adalah laporan. ... 2014 4 Basis Data Pusat Bahan Ajar

2014 4 Basis Data Pusat Bahan Ajar dan eLearning   Tim Dosen http://www.mercubuana.ac.id

 

Himpunan bagian dari Cartesian product merupakan relasi, contoh :

R = {(2, 1), (4, 1)}

Dapat pula dituliskan dalam pasangan dengan kondisi, contoh :

elemen kedua = 1 :

R = {(x, y) | x X D1, y X D2, and y = 1}

elemen pertama = 2 kali elemen kedua :

S = {(x, y) | x X D1, y X D2, and x = 2y}

Jika terdapat 3 buah himpunan, D1, D2, D3 dengan Cartesian Product D1 X D2 X D3.

Contoh :

D1 = {1, 3} D2 = {2, 4} D3 = {5, 6}

D1 X D2 X D3 = {(1,2,5), (1,2,6), (1,4,5), (1,4,6), (3,2,5), (3,2,6), (3,4,5), (3,4,6)}

Cartesian product dari himpunan n (D1, D2, . . ., Dn) adalah :

D1 X D2 X. . .XDn = {(d1, d2, . . . , dn) | d1 Є D1, d2 Є D2, . . . , dn Є Dn} atau dapat

ditulis :

n

XDi

i = 1

Relasi Database

Skema Relasi

Nama relasi yang didefinisikan oleh himpunan pasangan atribut dan nama domain.

Misal : A1, A2, …, An adalah atribut dengan domain D1, D2, …, Dn, maka pasangan

{ a1:D1, A2:D2, …, An:Dn} adalah skema relasi.

Skema Database Relasional

Himpunan skema relasi, dengan nama yang berbeda.

Misal : Jika R1, R2, ..., Rn adalah himpunan skema relasi, maka dapat dituliskan

skema database relasional dalam R, sehingga R = {R1, R2, ..., Rn}

Sifat-sifat Relasi

Nama Relasi berbeda satu sama lain dalam skema relasional.

Setiap sel (baris, kolom) dari relasi berisi satu nilai atomik.

Page 32: MODUL PERKULIAHAN Basis Data - …fasilkom.mercubuana.ac.id/.../uploads/2017/10/Sistem-Basis-Data-TI.pdf · sebagai contohnya adalah laporan. ... 2014 4 Basis Data Pusat Bahan Ajar

2014 5 Basis Data Pusat Bahan Ajar dan eLearning   Tim Dosen http://www.mercubuana.ac.id

 

Setiap atribut memiliki nama yang berbeda.

Nilai suatu atribut berasal dari domain yang sama.

Setiap tuple berbeda, dan tidak ada duplikasi tuple.

Kunci-kunci Relasional (Relational Keys)

Superkey

Sebuah atribut atau himpunan atribut yang mengidentifikasi secara unik tuple-tuple

yang ada dalam relasi.

Candidate Key

Superkey (K) dalam relasi

Untuk setiap relasi R, nilai K akan mengidentifikasi secara unik tuplenya.

Jika Candidate key terdiri dari beberapa atribut, disebut composite key.

Primary Key

Candidate key yang dipilih untuk identifikasi tuple secara unik dalam suatu relasi.

Alternate Keys

Candidate key yang tidak terpilih sebagai primary key.

Foreign Key

Atribut atau himpunan atribut dalam relasi yang disesuaikan (matching) dengan

candidate key pada beberapa relasi.

Relational Integrity

Null

- Merepresentasikan nilai untuk atribut yang tidak diketahui/tidak digunakan/tidak

tersedia untuk suatu tuple.

- Berkaitan dengan ketidaklengkapan/pengecualian data

- Representasi tidak adanya suatu nilai dan tidak sama nilainya dengan Nol atau

Spasi.

Entity Integrity

Pada relasi dasar, tidak ada atribut ataupun primary key yang bernilai NULL.

Referential Integrity

Page 33: MODUL PERKULIAHAN Basis Data - …fasilkom.mercubuana.ac.id/.../uploads/2017/10/Sistem-Basis-Data-TI.pdf · sebagai contohnya adalah laporan. ... 2014 4 Basis Data Pusat Bahan Ajar

2014 6 Basis Data Pusat Bahan Ajar dan eLearning   Tim Dosen http://www.mercubuana.ac.id

 

Jika terdapat foreign key dalam suatu relasi, maka nilai foreign key tersebut harus

sesuai (match) dengan nilai candidate key dari beberapa tuple pada database atau

nilai foreign key harus NULL seluruhnya.

Enterprise Constraints

Aturan tambahan yang dispesifikasikan oleh user atau DBA.

Views

Relasi Dasar (Base Relation)

Nama relasi mengacu kepada entitas dalam skema konseptual, dimana tuple-tuple

disimpan dalam database secara fisik.

View

- Hasil dinamik dari satu atau lebih operasi relasional yang dilakukan pada relasi

dasar untuk menghasilkan relasi yang lain.

- Merupakan relasi virtual yang tidak harus ada dalam database, tetapi

dihasilkan pada saat dilakukan permintaan (request).

- Isi dari view didefinisikan sebagai query dari satu atau lebih relasi dasar.

- View bersifat dinamis, artinya perubahan yang dilakukan pada relasi dasar

yang mempengaruhi atribut pada view langsung terlihat.

Kegunaan View

Menyediakan mekanisme keamanan yang fleksible dan baik dengan

menyembunyikan bagian database dari user tertentu.

Mengijinkan user untuk meng-akses data dengan berbagai cara, sehingga data yang

sama dapat dilihat oleh user yang berbeda dengan cara yang berbeda pada saat

yang sama.

Menyederhanakan operasi yang rumit pada relasi dasar.

Page 34: MODUL PERKULIAHAN Basis Data - …fasilkom.mercubuana.ac.id/.../uploads/2017/10/Sistem-Basis-Data-TI.pdf · sebagai contohnya adalah laporan. ... 2014 4 Basis Data Pusat Bahan Ajar

2014 7 Basis Data Pusat Bahan Ajar dan eLearning   Tim Dosen http://www.mercubuana.ac.id

 

Merubah view (Updating View)

Seluruh update yang dilakukan pada relasi dasar harus secepatnya terlihat dalam

seluruh view yang terkait dengan relasi dasar tersebut.

Jika view di-update, perubahan harus terlihat pada relasi dasar yang digunakan.

Terdapat beberapa batasan pada tipe modifikasi yang dilakukan terhadap view,

diantaranya:

- Update diperbolehkan jika query melibatkan relasi dasar tunggal dan berisikan

candidate key dari relasi dasar.

- Update dilarang jika melibatkan banyak relasi dasar.

- Update tidak diperkenankan melibatkan penggabungan atau pengelompokan

operasi.

Latihan

1. Jelaskan perbedaan antara sebuah relasi, skema relasi. Apakah yang dimaksud

dengan skema basis data relasional?

2. Jelaskan dan berikan contoh tentang integrity constraint beserta contohnya

3. Apa yang dimaksud dengan view? Jelaskan perbedaa antara view dengan sebuah

relasi fisik

Daftar Pustaka

1. Database system: A Practical approach to design, implementation and management

 

Page 35: MODUL PERKULIAHAN Basis Data - …fasilkom.mercubuana.ac.id/.../uploads/2017/10/Sistem-Basis-Data-TI.pdf · sebagai contohnya adalah laporan. ... 2014 4 Basis Data Pusat Bahan Ajar

 

 

MODUL PERKULIAHAN

Basis Data

SQL: QUERI SINGLE TABLE

Fakultas  Program Studi  Tatap Muka  Kode MK  Disusun Oleh 

Ilmu Komputer  Teknik Informatika 

04 87033  Tim Dosen 

 

Abstract Kompetensi Modul ini berisi materi tentang perintah dalam SQL DML untuk queri pada tabel tunggal

Mahasiswa mampu menuliskan perintah SQL DML sederhana dan fungsi agregat

Page 36: MODUL PERKULIAHAN Basis Data - …fasilkom.mercubuana.ac.id/.../uploads/2017/10/Sistem-Basis-Data-TI.pdf · sebagai contohnya adalah laporan. ... 2014 4 Basis Data Pusat Bahan Ajar

 

2014 2 Basis Data Pusat Bahan Ajar dan eLearning   Tim Dosen http://www.mercubuana.ac.id

 

Tujuan dari SQL

Idealnya, database language dapat memungkinkan user untuk:

– Membuat struktur relasi dan database;

– Melakukan operasi penyisipan (insertion), perubahan (modification) dan

penghapusan (deletion) data dari relasion;

– Melakukan query sederhana dan rumit.

Database language harus melaksanakan operasi-operasi tersebut dengan usaha

minimal yang dilakukan user dan sintaks/struktur instruksi harus mudah dipahami/dipelajari.

Harus portable sehingga memungkinkan untuk pindah dari satu DBMS ke DBMS lainnya.

SQL merupakan transform-oriented language dengan 2 komponen utama:

– DDL untuk definisi struktur database.

– DML untuk pengambilan (retrieving) dan perubahan (updating) data.

Sampai dengan SQL3, SQL tidak mengandung perintah alih kontrol. Hal ini

diimplementasikan dengan menggunakan bahasa pemrograman atau perintah kontrol atau

secara interaktif, sesuai dengan keputusan user.

SQL cukup mudah dipelajari , karena:

- Merupakan bahasa non-procedural – cukup menspesifikasikan informasi apa yang

dibutuhkan daripada bagaimana mendapatkannya.

- Pada dasarnya mempunyai format yang bebas.

SQL Terdiri dari bahasa Inggris standard, seperti :

1) CREATE TABLE Staff(staffNo VARCHAR(5), lName ARCHAR(15), salary

DECIMAL(7,2));

2) INSERT INTO Staff VALUES (‘SG16’, ‘Brown’, 8300);

3) SELECT staffNo, lName, salary

4) FROM Staff WHERE salary > 10000;

Page 37: MODUL PERKULIAHAN Basis Data - …fasilkom.mercubuana.ac.id/.../uploads/2017/10/Sistem-Basis-Data-TI.pdf · sebagai contohnya adalah laporan. ... 2014 4 Basis Data Pusat Bahan Ajar

 

2014 3 Basis Data Pusat Bahan Ajar dan eLearning   Tim Dosen http://www.mercubuana.ac.id

 

SQL dapat digunakan oleh bermacam-macam user, termasuk DBA, manajemen, pembuat

aplikasi dan user lainnya. Terdapat ISO standard untuk SQL, membuat bahasa formal dan

de facto untuk relasional database.

 

 

Sejarah SQL

Tahun 1974, D. Chamberlin (IBM San Jose Laboratory) mendefinisikan bahasa yang

disebut ‘Structured English Query Language’ (SEQUEL).

Versi yang telah diperbaiki, SEQUEL/2, ditemukan tahun 1976 tetapi namanya diubah

menjadi SQL untuk alasan hukum.

Sampai saat ini masih banyak yang menyebut ‘see-quel’, walaupun ejaan sesungguhnya

adalah ‘S-Q-L’.

IBM secara berturut-turut memproduksi prototype DBMS yang disebut System R,

berdasarkan pada SEQUEL/2.

Akar dari SQL, adalah SQUARE (Specifying Queries as Relational Expressions), dimana

mendahului proyek System R.

Diakhir 70-an, ORACLE muncul dan mungkin merupakan RDBMS komersil pertama

yang berbasis SQL.

Pada tahun 1987, ANSI dan ISO mempublikasikan standar awal untuk SQL.

Pada tahun 1989, ISO mempublikasikan tambahan yang mendefinisikan ‘Integrity

Enhancement Feature’.

Tahun 1992, revisi utama yang pertama dilakukan pada standar ISO, dikenal sebagai

SQL2 atau SQL/92.

Tahun 1999, SQL3 dikeluarkan dengan dukungan untuk manajemen data berorientasi

objek (object-oriented data management).

Pentingnya SQL

SQL telah menjadi bagian dari arsitektur aplikasi seperti arsitektur aplikasi sistem IBM.

Merupakan pilihan yang strategis untuk organisasi besar dan berpengaruh (co :

X/OPEN).

Page 38: MODUL PERKULIAHAN Basis Data - …fasilkom.mercubuana.ac.id/.../uploads/2017/10/Sistem-Basis-Data-TI.pdf · sebagai contohnya adalah laporan. ... 2014 4 Basis Data Pusat Bahan Ajar

 

2014 4 Basis Data Pusat Bahan Ajar dan eLearning   Tim Dosen http://www.mercubuana.ac.id

 

SQL digunakan untuk standar lainnya dan mempengaruhi pembuatan standar lainnya

sebagai definitional tool. Contoh :

– Standar ISO Information Resource Directory System (IRDS).

– Standar Remote Data Access (RDA).

Penulisan perintah SQL

Statemen SQL terdiri dari reserved word dan user-defined word.

o Reserved word adalah bagian yang telah ditetapkan pada SQL dan penulisannya

harus sesuai dan tidak bisa dipisah-pisahkan.

o User-defined word dibuat oleh user dan merepresentasikan nama-nama berbagai

objek database seperti relasi, kolom dan view.

Kebanyakan komponen dari perintah SQL bersifat case insensitive, kecuali untuk data

literal karakter.

Mudah dibaca dengan pengaturan baris dan spasi :

o Setiap clause dimulai pada baris baru.

o Awal dari suatu clause harus berurut dengan clause lainnya.

o Jika clause mempunyai beberapa bagian, harus ditampilkan pada baris yang

berbeda dan diberi spasi pada awal clause.

Menggunakan bentuk notasi Backus Naur Form (BNF) :

Menggunakan huruf besar untuk merepresentasikan reserved word.

Menggunakan huruf kecil untuk merepresentasikan user-defined word.

Mengindikasikan pilihan (choice) diantara beberapa alternatif.

Kurung kurawal mengindikasikan required element.

Kurung siku mengindikasikan optional element.

… mengindikasikan pengulangan (optional repetition ,0 atau lebih).

Literal

o Literal merupakan konstanta yang digunakan dalam statemen SQL.

o Semua literal non-numerik dituliskan diantara kutip tunggal (co : ‘London’).

o Semua literal numerik literals tidak dituliskan diantara kutip (co : 650.00).

Page 39: MODUL PERKULIAHAN Basis Data - …fasilkom.mercubuana.ac.id/.../uploads/2017/10/Sistem-Basis-Data-TI.pdf · sebagai contohnya adalah laporan. ... 2014 4 Basis Data Pusat Bahan Ajar

 

2014 5 Basis Data Pusat Bahan Ajar dan eLearning   Tim Dosen http://www.mercubuana.ac.id

 

Dreamhome Database

Registration

ClentNo BranchNo StaffNo Date_joined

CR76 B005 SL41 2-Jan-01

CR56 B003 SG37 11-Apr-00

CR74 B003 SG37 16-Nov-99

CR62 B007 SA9 7-Mar-00

Viewing

ClientNo PropertyNo View_Date Comment

CR56 PA14 24-May-01 Too Small

CR76 PG4 20-Apr-01 Too Remote

CR56 PG4 26-May-01

CR62 PA14 14-May-01 No Dining Room

CR56 PG36 28-Apr-01

Client

ClientNo fName lName TelNo PrefType MaxRent

CR76 John Kay 0207-774-5632 Flat 425

CR56 Aline Stewart 0141-848-1825 Flat 350

CR74 Mike Ritchie 01475-392178 House 750

CR62 Mary Tregear 01224-196720 Flat 600

Page 40: MODUL PERKULIAHAN Basis Data - …fasilkom.mercubuana.ac.id/.../uploads/2017/10/Sistem-Basis-Data-TI.pdf · sebagai contohnya adalah laporan. ... 2014 4 Basis Data Pusat Bahan Ajar

 

2014 6 Basis Data Pusat Bahan Ajar dan eLearning   Tim Dosen http://www.mercubuana.ac.id

 

Private Owner

OwnerNo fName lName Address TelNo

CO46 Joe Keogh 2 Fergus Dr, Abeerdeen AB2 7SX 01224-861212

CO87 Carol Farrel 6 Achray St, Glasgow G32 9DX 0141-357-7419

CO40 Tina Murphy 63 Well St, Glasgow G42 0141-943-1728

CO93 Tony Shaw 12 Park Pl, Glasgow G4 0QR 0141-225-7025

PropertyForRent PropertyNo Street City PostCode Type Rooms Rent OwnerNo StaffNo BranchNo

PA14 16 Holhead Aberdeen AB7 5SO House 6 650 CO46 SA9 B007

PL94 6 Argyll St London NW2 Flat 4 400 CO87 SL41 B005

PG4 6 Lawrence St Glasgow G11 9QX Flat 3 350 CO40 - B003

PG36 2 Manor Rd Glasgopw G32 4QX Flat 3 375 CO93 SG37 B003

PG21 18 Dale Rd Glasgow G12 House 5 600 CO87 SG37 B003

PG16 5 Novar Dr Glasgow G12 9AX Flat 4 450 CO93 SG14 B003

Branch

BranchNo Street City PostCode

B005 22 Deer Rd London SW1 4EH

B007 16 Argyll St Aberdeen AB2 3SU

B003 163 Main St Glasgow G11 9QX

B004 32 Manse Rd Bristol BS99 1NZ

B002 56 Clover Dr London NW10 6EU

Page 41: MODUL PERKULIAHAN Basis Data - …fasilkom.mercubuana.ac.id/.../uploads/2017/10/Sistem-Basis-Data-TI.pdf · sebagai contohnya adalah laporan. ... 2014 4 Basis Data Pusat Bahan Ajar

 

2014 7 Basis Data Pusat Bahan Ajar dan eLearning   Tim Dosen http://www.mercubuana.ac.id

 

StaffStaffNo fName lName Position Sex DOB Salary BranchNo

SL21 John White Manager M 1-Oct-45 30000 B005

SG37 Ann Beech Assistant F 10-Nov-60 12000 B003

SG14 David Ford Supervisor M 24-Mar-58 18000 B003

SA9 Mary Howe Assistant F 19-Feb-70 9000 B007

SG5 Susan Brand Manager F 3-Jun-40 24000 B003

SL41 Julie Lee Assistant F 13-Jun-65 9000 B005

Perintah SELECT

Bentuk umum :

SELECT [DISTINCT | ALL]

{* | [columnExpression [AS newName]] [,...] }

FROM TableName [alias] [, ...]

[WHERE condition]

[GROUP BY columnList] [HAVING condition]

[ORDER BY columnList]

Dimana :

FROM — Menspesifikasikan tabel-tabel yang digunakan.

WHERE — Baris filter (kondisi yang harus dipenuhi).

GROUP BY -- Bentuk pengelompokkan baris dengan nilai kolom yang sama.

HAVING -- Menyeleksi subjek grup untuk beberapa kondisi.

SELECT -- Menspesifikasikan kolom mana yang akan ditampilkan.

ORDER BY -- Menspesifikasikan order pada output.

Page 42: MODUL PERKULIAHAN Basis Data - …fasilkom.mercubuana.ac.id/.../uploads/2017/10/Sistem-Basis-Data-TI.pdf · sebagai contohnya adalah laporan. ... 2014 4 Basis Data Pusat Bahan Ajar

 

2014 8 Basis Data Pusat Bahan Ajar dan eLearning   Tim Dosen http://www.mercubuana.ac.id

 

Catatan :

o Perintah pada clause tidak dapat diubah.

o Perintah yang harus ada hanya SELECT dan FROM, lainnya bersifat optional.

Contoh: Semua Baris dan kolom

Tampilkan seluruh detail staff

SELECT staffNo, fName, lName, position, sex, DOB, salary, branchNo

FROM Staff;

Dapat menggunakan * sebagai singkatan dari ‘semua kolom’:

SELECT *

FROM Staff;

Page 43: MODUL PERKULIAHAN Basis Data - …fasilkom.mercubuana.ac.id/.../uploads/2017/10/Sistem-Basis-Data-TI.pdf · sebagai contohnya adalah laporan. ... 2014 4 Basis Data Pusat Bahan Ajar

 

2014 9 Basis Data Pusat Bahan Ajar dan eLearning   Tim Dosen http://www.mercubuana.ac.id

 

Contoh : Seluruh baris, kolom tertentu.

 

Buatlah daftar gaji seluruh staff yang menampilkan nomor staff, nama awal dan akhir, dan

gaji.

SELECT staffNo, fName, lName, salary

FROM Staff;

Penggunaan klausa DISTINCT

Contoh : Kegunaan DISTINCT

Tampilkan nomor properti dari seluruh properti yang pernah dilihat/dikunjungi.

SELECT propertyNo

FROM Viewing;

Page 44: MODUL PERKULIAHAN Basis Data - …fasilkom.mercubuana.ac.id/.../uploads/2017/10/Sistem-Basis-Data-TI.pdf · sebagai contohnya adalah laporan. ... 2014 4 Basis Data Pusat Bahan Ajar

 

2014 10 Basis Data Pusat Bahan Ajar dan eLearning   Tim Dosen http://www.mercubuana.ac.id

 

Menggunakan DISTINCT untuk menghilangkan duplikasi :

SELECT DISTINCT propertyNo

FROM Viewing;

Contoh: Field yang dihasilkan

Tampilkan daftar gaji/bulan untuk seluruh staff, dengam menampilkan nomor staff, nama

awal dan akhir dan detail gaji.

SELECT staffNo, fName, lName, salary/12

FROM Staff;

Page 45: MODUL PERKULIAHAN Basis Data - …fasilkom.mercubuana.ac.id/.../uploads/2017/10/Sistem-Basis-Data-TI.pdf · sebagai contohnya adalah laporan. ... 2014 4 Basis Data Pusat Bahan Ajar

 

2014 11 Basis Data Pusat Bahan Ajar dan eLearning   Tim Dosen http://www.mercubuana.ac.id

 

Memberi nama kolom, menggunakan clause AS :

SELECT staffNo, fName, lName, salary/12 AS monthlySalary

FROM Staff;

Kondisi pencarian dengan perbandingan

Tampilkan seluruh staff yang mempunyai gaji lebih dari 10,000.

SELECT staffNo, fName, lName, position, salary

FROM Staff

WHERE salary > 10000;

Kondisi pencarian dengan perbandingan gabungan

Tampilkan detail seluruh kantor cabang yang beralamat di London atau Glasgow.

SELECT *

FROM Branch

WHERE city = “London” OR city = “Glasgow”;

Page 46: MODUL PERKULIAHAN Basis Data - …fasilkom.mercubuana.ac.id/.../uploads/2017/10/Sistem-Basis-Data-TI.pdf · sebagai contohnya adalah laporan. ... 2014 4 Basis Data Pusat Bahan Ajar

 

2014 12 Basis Data Pusat Bahan Ajar dan eLearning   Tim Dosen http://www.mercubuana.ac.id

 

Kondisi pencarian dengan batas (range)

Tampilkan seluruh staff yang berpenghasilan antara 20,000 dan 30,000.

SELECT staffNo, fName, lName, position, salary

FROM Staff

WHERE salary BETWEEN 20000 AND 30000;

BETWEEN menyertakan angka terakhir dari range.

Terdapat juga versi negasi NOT BETWEEN.

BETWEEN bukan merupakan tambahan yang berarti, karena dapat dituliskan :

SELECT staffNo, fName, lName, position, salary

FROM Staff

WHERE salary >=20000 AND salary <= 30000;

Bermanfaat untuk nilai dengan range tertentu.

Himpunan Anggota (Set Membership)

Tampilkan seluruh manager dan supervisor.

Page 47: MODUL PERKULIAHAN Basis Data - …fasilkom.mercubuana.ac.id/.../uploads/2017/10/Sistem-Basis-Data-TI.pdf · sebagai contohnya adalah laporan. ... 2014 4 Basis Data Pusat Bahan Ajar

 

2014 13 Basis Data Pusat Bahan Ajar dan eLearning   Tim Dosen http://www.mercubuana.ac.id

 

SELECT staffNo, fName, lName, position

FROM Staff

WHERE position IN (‘Manager’, ‘Supervisor’);

Terdapat versi negasi (NOT IN).

IN bukan merupakan tambahan berarti, karena dapat dituliskan :

SELECT staffNo, fName, lName, position

FROM Staff

WHERE position=‘Manager’ OR position = ‘Supervisor’;

IN lebih efisien jika himpunan (set) berisi beberapa nilai.

Penyesuaian bentuk (Pattern Matching)

Tampilkan detail seluruh pemilik dengan kata ‘Glasgow’ pada alamatnya.

SELECT OwnerNo, fName, lName, address, telNo

FROM PrivateOwner

WHERE address LIKE ‘%Glasgow%’;

Page 48: MODUL PERKULIAHAN Basis Data - …fasilkom.mercubuana.ac.id/.../uploads/2017/10/Sistem-Basis-Data-TI.pdf · sebagai contohnya adalah laporan. ... 2014 4 Basis Data Pusat Bahan Ajar

 

2014 14 Basis Data Pusat Bahan Ajar dan eLearning   Tim Dosen http://www.mercubuana.ac.id

 

SQL mempunyai dua simbol pattern matching :

o %: rangkaian dari nol atau lebih karakter.

o _ (garis bawah): satu karakter tunggal.

o LIKE ‘%Glasgow%’ berarti rangkaian karakter yang mengandung kata ‘Glasgow’,

panjang string tidak ditentukan.

Kondisi pencarian NULL

Tampilkan detail seluruh all viewing pada properti PG4 dimana tidak terdapat komentar.

Terdapat 2 viewing untuk properti PG4, satu terdapat komentar dan lainnya tidak.

Dilakukan test nilai null secara tegas dengan keyword IS NULL:

SELECT clientNo, viewDate

FROM Viewing

WHERE propertyNo = ‘PG4’ AND comment IS NULL;

Versi negasi (IS NOT NULL) dapat menguji nilai non-null.

Contoh : Ordering kolom tunggal

Tampilkan daftar gaji seluruh staf, disusun secara descending berdasarkan salary.

SELECT staffNo, fName, lName, salary

FROM Staff

ORDER BY salary DESC;

Page 49: MODUL PERKULIAHAN Basis Data - …fasilkom.mercubuana.ac.id/.../uploads/2017/10/Sistem-Basis-Data-TI.pdf · sebagai contohnya adalah laporan. ... 2014 4 Basis Data Pusat Bahan Ajar

 

2014 15 Basis Data Pusat Bahan Ajar dan eLearning   Tim Dosen http://www.mercubuana.ac.id

 

Ordering multiple kolom

Tampilkan daftar ringkasan properti berdasarkan tipe properti.

SELECT propertyNo, type, rooms, rent

FROM PropertyForRent

ORDER BY type;

Page 50: MODUL PERKULIAHAN Basis Data - …fasilkom.mercubuana.ac.id/.../uploads/2017/10/Sistem-Basis-Data-TI.pdf · sebagai contohnya adalah laporan. ... 2014 4 Basis Data Pusat Bahan Ajar

 

2014 16 Basis Data Pusat Bahan Ajar dan eLearning   Tim Dosen http://www.mercubuana.ac.id

 

o Dari contoh diatas terdapat empat field. Untuk menyusun properti berdasarkan rent

maka harus dispesifikasikan minor order sbb :

SELECT propertyNo, type, rooms, rent

FROM PropertyForRent

ORDER BY type, rent DESC;

Perintah SELECT – Aggregate

 

o Standar ISO mendefinisikan lima fungsi aggregate :

COUNT Mengembalikan angka dari nilai dalam kolom tertentu

SUM Mengembalikan jumlah dari nilai yang terdapat dalam kolom

AVG Mengembalikan rata-rata dari nilai yang ada dalam kolom

MIN Mengembalikan nilai terkecil dari nilai yang terdapat dalam kolom

MAX Mengembalikan nilai terbesar dari nilai yang terdapat dalam kolom

o Setiap fungsi beroperasi pada satu kolom dan mengembalikan satu nilai tunggal.

o COUNT, MIN, dan MAX digunakan untuk field numerik dan non-numerik, sedangkan

SUM dan AVG hanya dapat digunakan pada field numerik.

Page 51: MODUL PERKULIAHAN Basis Data - …fasilkom.mercubuana.ac.id/.../uploads/2017/10/Sistem-Basis-Data-TI.pdf · sebagai contohnya adalah laporan. ... 2014 4 Basis Data Pusat Bahan Ajar

 

2014 17 Basis Data Pusat Bahan Ajar dan eLearning   Tim Dosen http://www.mercubuana.ac.id

 

o Bagian dari COUNT(*), pertama setiap fungsi mengeliminasi null dan mengoperasikan

nilai non-null.

o COUNT(*) menghitung seluruh baris dalam tabel, walaupun terdapat null atau duplikasi.

o Menggunakan DISTINCT sebelum nama kolom untuk menghilangkan duplikasi.

o DISTINCT tidak berpengaruh terhadap operasi MIN/MAX, tetapi berpengaruh pada

SUM/AVG.

o Fungsi Aggregate dapat digunakan dalam daftar SELECT dan clause HAVING clause.

o Jika daftar SELECT menyertakan fungsi aggregate dan tidak terdapat clause GROUP

BY, daftar SELECT tidak dapat mengacu ke kolom dengan fungsi aggregate.

o Contoh berikut adalah salah :

SELECT staffNo, COUNT(salary)

FROM Staff;

Kegunaan COUNT(*)

Tampilkan banyaknya properti yang mempunyai biaya sewa lebih dari £350 per bulan

SELECT COUNT(*) AS count

FROM PropertyForRent

WHERE rent > 350;

Page 52: MODUL PERKULIAHAN Basis Data - …fasilkom.mercubuana.ac.id/.../uploads/2017/10/Sistem-Basis-Data-TI.pdf · sebagai contohnya adalah laporan. ... 2014 4 Basis Data Pusat Bahan Ajar

 

2014 18 Basis Data Pusat Bahan Ajar dan eLearning   Tim Dosen http://www.mercubuana.ac.id

 

Kegunaan COUNT(DISTINCT)

Tampilkan banyaknya properti yang berbeda telah dilihat selama May ‘01?

SELECT COUNT(DISTINCT propertyNo) AS count

FROM Viewing

WHERE viewDate BETWEEN ‘1-May-01’ AND ‘31-May-01’;

Kegunaan COUNT dan SUM

Tampilkan jumlah manager dan jumlah gaji mereka.

SELECT COUNT(staffNo) AS count, SUM(salary) AS sum

FROM Staff

WHERE position = ‘Manager’;

Page 53: MODUL PERKULIAHAN Basis Data - …fasilkom.mercubuana.ac.id/.../uploads/2017/10/Sistem-Basis-Data-TI.pdf · sebagai contohnya adalah laporan. ... 2014 4 Basis Data Pusat Bahan Ajar

 

2014 19 Basis Data Pusat Bahan Ajar dan eLearning   Tim Dosen http://www.mercubuana.ac.id

 

Kegunaan MIN, MAX, AVG

Carilah minimum, maximum, dan average gaji staff

SELECT MIN(salary) AS min, MAX(salary) AS max, AVG(salary) AS avg

FROM Staff;

Perintah SELECT – Grouping

 

o Menggunakan clause GROUP BY untuk mendapatkan sub-total.

o SELECT dan GROUP BY terintegrasi :setiap item dalam SELECT harus berupa single-

valued per group, dan clause SELECT hanya dapat mengandung :

– Nama kolom

– Fungsi aggregate

– Konstanta

– Ekspresi terdiri dari kombinasi tersebut diatas.

o Semua nama kolom dalam SELECT harus ditampilkan dalam clause GROUP BY kecuali

jika dinamakan dalam fungsi aggregate.

o Jika WHERE digunakan bersama GROUP BY, WHERE dimunculkan lebih dulu,

kemudian groups ditampilkan dari sisa baris untuk memenuhi predikat.

o Standar ISO mempertimbangkan dua null bernilai sama untuk kegunaan dari clause

GROUP BY.

Page 54: MODUL PERKULIAHAN Basis Data - …fasilkom.mercubuana.ac.id/.../uploads/2017/10/Sistem-Basis-Data-TI.pdf · sebagai contohnya adalah laporan. ... 2014 4 Basis Data Pusat Bahan Ajar

 

2014 20 Basis Data Pusat Bahan Ajar dan eLearning   Tim Dosen http://www.mercubuana.ac.id

 

Kegunaan GROUP BY

Tampilkan jumlah staff pada setiap cabang dan total gaji staf pada masing-masing cabang

SELECT branchNo, COUNT(staffNo) AS count, SUM(salary) AS sum

FROM Staff

GROUP BY branchNo

ORDER BY branchNo;

Pengelompokkan terbatas – HAVING clause

Clause HAVING didesain untuk digunakan bersama GROUP BY untuk membatasi

pengelompokkan yang ditampilkan pada tabel hasil akhir.

Hampir sama dengan WHERE, dimana WHERE menyeleksi baris secara individual,

sedangkan HAVING secara kelompok.

Nama kolom dalam clause HAVING juga akan ditampilkan dalam daftar GROUP BY

atau dimasukan dalam fungsi aggregate.

Contoh : Kegunaan HAVING

Tampilkan jumlah staff dan jumlah gaji mereka untuk cabang dengan jumlah staff lebih dari

1

Page 55: MODUL PERKULIAHAN Basis Data - …fasilkom.mercubuana.ac.id/.../uploads/2017/10/Sistem-Basis-Data-TI.pdf · sebagai contohnya adalah laporan. ... 2014 4 Basis Data Pusat Bahan Ajar

 

2014 21 Basis Data Pusat Bahan Ajar dan eLearning   Tim Dosen http://www.mercubuana.ac.id

 

SELECT branchNo, COUNT(staffNo) AS count, SUM(salary) AS sum

FROM Staff GROUP BY branchNo

HAVING COUNT(staffNo) > 1

ORDER BY branchNo;

Latihan

Perhatikan skema Hotel berikut:

  Hotel    (hotelNo, hotelName, city) 

  Room    (roomNo, hotelNo, type, price) 

  Booking   (hotelNo, guestNo, dateFrom, dateTo, roomNo) 

  Guest    (guestNo, guestName, guestAddress) 

 

1. Buatlah SQL DML untuk:

a. Menampilkan semua nama hotel yang ada di kota Bandung

b. Menampilkan semua hotel dengan harga terendah dan harga tertinggi dan

harga rata-ratanya

c. menampilkan nama hotel yang harga sewanya diatas Rp. 1.000.000

Page 56: MODUL PERKULIAHAN Basis Data - …fasilkom.mercubuana.ac.id/.../uploads/2017/10/Sistem-Basis-Data-TI.pdf · sebagai contohnya adalah laporan. ... 2014 4 Basis Data Pusat Bahan Ajar

 

2014 22 Basis Data Pusat Bahan Ajar dan eLearning   Tim Dosen http://www.mercubuana.ac.id

 

d. menampilkan nama tamu yang berasal dari Depok

e. tampilkan nama tamu dan berapa lama mereka menginap

f. tampilkan ada berapa jumlah tamu yang berasal dari kota Bandung

g. tampilkan nama kota yang terdapat hotel

Daftar Pustaka

1. Database system: A Practical approach to design, implementation and management

 

Page 57: MODUL PERKULIAHAN Basis Data - …fasilkom.mercubuana.ac.id/.../uploads/2017/10/Sistem-Basis-Data-TI.pdf · sebagai contohnya adalah laporan. ... 2014 4 Basis Data Pusat Bahan Ajar

MODUL PERKULIAHAN

Basis Data

SQL: QUERI MULTI TABLE

Fakultas  Program Studi  Tatap Muka  Kode MK  Disusun Oleh 

Ilmu Komputer  Teknik Informatika 

05 87031  Tim Dosen 

 

Abstract Kompetensi Modul ini berisi materi tentang perintah dalam SQL DML untuk queri pada tabel lebih dari 1

Mahasiswa mampu menuliskan perintah SQL DML multi queri

Page 58: MODUL PERKULIAHAN Basis Data - …fasilkom.mercubuana.ac.id/.../uploads/2017/10/Sistem-Basis-Data-TI.pdf · sebagai contohnya adalah laporan. ... 2014 4 Basis Data Pusat Bahan Ajar

2014 2 Basis Data Pusat Bahan Ajar dan eLearning   Tim Dosen http://www.mercubuana.ac.id

 

QUERY MULTI TABLE

Dalam aplikasinya basis data digunakan untuk menyimpan banyak tabel yang secara logical

saling berhubungan satu dengan yang lain. Pada bab sebelumnya, kita telah membahas

tentang queri pada tabel tunggal dimana informasi yang dibutuhkan memang hanya berasal

dari satu tabel saja. Selanjutnya apa yang harus dilakukan jika informasi yang dibutuhkan

dari basis data membutuhkan gabungan informasi dari lebih 1 tabel. Dalam sql, ini biasa

disebut sebagai queri multi table.

Queri multi table dilakukan dengan 2 pendekatan. Pendekatan yang pertama disebut

sebagai nested queri. Nested queri adalah sebuah queri yang mememiliki queri yang

tersebunyi didalamnya, queri yang tersembunyi tersebut dinamakan sebagai subqueri.

Subqueri biasanya muncul dengan klausa WHERE, FROM atau HAVING.

Selain nested queri, pendekatan lainnya adalah dengan menggunakan join. Jenis join ini

beragam. Operasi Join yang mengacu pada SQL:1999 adalah sebagai berikut:

1. INNER JOIN (SIMPLE JOIN): yaitu bentuk kondisi join dimana di antara 2 atau lebih tabel

yang ingin di join memiliki hubungan sehingga semua isi tabel yang di pilih bisa di

tampilkan.

Sintak:

select * from namatabel1 inner join namatabel2

where namatabel1.kondisisama = namatabel1. kondisisama

2. NON-EQUIJOIN: adalah kondisi join yang tidak mengandung opertor sama dengan (=)

Sintak:

select * from namatabel1 inner join namatabel2

where namatabel1.kondisisama and namatabel1. kondisisama

3. OUTER JOIN : yaitu bentuk nilai join yang memenuhi daari kedua tabel, Outer join terdiri

dari 2 yaitu,

LEFT OUTER JOIN: Menampilkan semua data yang ada di tabel kiri dan hanya data

yang bersesuaian di tabel kanan, jika tabel kiri tidak mempunyai lawan di tabel kanan maka

tabel kanan akan diisi dengan null.

Page 59: MODUL PERKULIAHAN Basis Data - …fasilkom.mercubuana.ac.id/.../uploads/2017/10/Sistem-Basis-Data-TI.pdf · sebagai contohnya adalah laporan. ... 2014 4 Basis Data Pusat Bahan Ajar

2014 3 Basis Data Pusat Bahan Ajar dan eLearning   Tim Dosen http://www.mercubuana.ac.id

 

Contoh sintak

select tabel1.kolom, tabel2.kolom

from tabel1, tabel2

where tabel1.kolom (+) = tabel2.kolom

atau

select tabel1.kolom, tabel2.kolom

from tabel1 left outer join tabel2

on tabel1.kolom = tabel2.kolom

RIGHT OUTER JOIN : Sama dengan left outer join namun peletakan data atau nilai dari

tabel lain berada pada sebelah kanan tabel asal.

Contoh sintak

select tabel1.kolom, tabel2.kolom

from tabel1, tabel2

where tabel1.kolom = tabel2.kolom(+)

atau

select tabel1.kolom, tabel2.kolom

from tabel1 right outer join tabel2

on tabel1.kolom = tabel2.kolom

4. SELF JOIN: adalah suatu bentuk kondisi join tau penggabungan yang terjadi pada dua

tabel yang sama kondisinya dari kedua tabel tersebut dan menambahkan suatu kata

dengan kondisi yang sama antara kedua tabel.

Sintak:

Select tabel1.namakolom ||’ works for’ || tabel2.namakolom

from namatabel1, namatabel2

Page 60: MODUL PERKULIAHAN Basis Data - …fasilkom.mercubuana.ac.id/.../uploads/2017/10/Sistem-Basis-Data-TI.pdf · sebagai contohnya adalah laporan. ... 2014 4 Basis Data Pusat Bahan Ajar

2014 4 Basis Data Pusat Bahan Ajar dan eLearning   Tim Dosen http://www.mercubuana.ac.id

 

Nested queri

Contoh:Subquerydenganpersamaan

Tampilkan detail staff yang bekerja di cabang yang berada di ‘163 Main St’.

SELECT staffNo, fName, lName, position FROM Staff

WHERE branchNo =

(SELECT branchNo FROM Branch

WHERE street = ‘163 Main St’);

SELECT yang didalam mencari no cabang dari cabang yang beralamat di ‘163 Main St’

(‘B003’).

SELECT yang diluar memanggil detail dari seluruh staff yang bekerja dicabang ini.

Kemudian SELECT luar menjadi :

SELECT staffNo, fName, lName, position FROM Staff

WHERE branchNo = ‘B003’;

Page 61: MODUL PERKULIAHAN Basis Data - …fasilkom.mercubuana.ac.id/.../uploads/2017/10/Sistem-Basis-Data-TI.pdf · sebagai contohnya adalah laporan. ... 2014 4 Basis Data Pusat Bahan Ajar

2014 5 Basis Data Pusat Bahan Ajar dan eLearning   Tim Dosen http://www.mercubuana.ac.id

 

Contoh:SubquerydenganAggregate

Tampilkan detail staff yang gaji-nya lebih besar dari gaji rata-rata dan tampilkan selisihnya

SELECT staffNo, fName, lName, position, salary – (SELECT AVG(salary) FROM Staff)

As SalDiff FROM Staff

WHERE salary >

(SELECT AVG(salary) FROM Staff);

Contoh:SubquerydenganAggregate Tidak dapat dituliskan ‘WHERE salary > AVG(salary)’

Lebih baik digunakan subquery untuk mencari gaji rata-rata (17000), kemudian

menggunakan SELECT luar untuk mencari staff dengan gaji lebih besar dari 17000.

SELECT staffNo, fName, lName, position, salary – 17000 As salDiff

FROM Staff

WHERE salary > 17000;

Aturan-aturan Subquery

Clause ORDER BY dapat tidak digunakan dalam subquery (walaupun dapat digunakan

dalam SELECT terluar).

Page 62: MODUL PERKULIAHAN Basis Data - …fasilkom.mercubuana.ac.id/.../uploads/2017/10/Sistem-Basis-Data-TI.pdf · sebagai contohnya adalah laporan. ... 2014 4 Basis Data Pusat Bahan Ajar

2014 6 Basis Data Pusat Bahan Ajar dan eLearning   Tim Dosen http://www.mercubuana.ac.id

 

Subquery SELECT harus terdiri dari nama kolom tunggal atau ekspresi, kecuali untuk

subqueries yang menggunakan EXISTS.

Berdasarkan default, nama kolom mengacu ke nama tabel pada clause FROM dari

subquery. Dapat mengacu ke table dalam FROM menggunakan alias.

Ketika subquery merupakan sebuah operand dalam suatu perbandingan, maka harus

dituliskan disebelah kanan.

Subquery tidak dapat digunakan sebagai operand dalam suatu ekspresi.

Contoh:Queribersarang:kegunaanIN

Tampilkan properti yang ditangani oleh staff di ‘163 Main St’.

SELECT propertyNo, street, city, postcode, type, rooms, rent

FROM PropertyForRent

WHERE staffNo IN

(SELECT staffNo FROM Staff

WHERE branchNo = (SELECT branchNo FROM Branch

WHERE street = ‘163 Main St’));

Page 63: MODUL PERKULIAHAN Basis Data - …fasilkom.mercubuana.ac.id/.../uploads/2017/10/Sistem-Basis-Data-TI.pdf · sebagai contohnya adalah laporan. ... 2014 4 Basis Data Pusat Bahan Ajar

2014 7 Basis Data Pusat Bahan Ajar dan eLearning   Tim Dosen http://www.mercubuana.ac.id

 

ANY dan ALL

ANY dan ALL dapat digunakan dengan subqueries yang menghasilkan satu kolom

tunggal.

Dengan ALL, kondisi akan bernilai benar jika terpenuhi oleh semua nilai yang dihasilkan

oleh subquery.

Dengan ANY, kondisi akan bernilai benar jika ada nilai yang dihasilkan subquery

memenuhi ketentuan.

Jika subquery bernilai kosong (empty), ALL mengembalikan nilai benar (true), dan ANY

mengembalikan nilai salah (false).

SOME dapat digunakan sebagai pengganti ANY.

Contoh:KegunaanANY/SOME

Tampilkan staff yang mempunyai gaji lebih besar dari gaji 1 staff dicabang B003.

SELECT staffNo, fName, lName, position, salary FROM Staff

WHERE salary > SOME

(SELECT salary FROM Staff

WHERE branchNo = ‘B003’);

Inner query menghasilkan himpunan {12000, 18000, 24000} dan outer query mengambil

staff yang gaji-nya lebih besar dari semua nilai yang ada di himpunan tersebut.

Page 64: MODUL PERKULIAHAN Basis Data - …fasilkom.mercubuana.ac.id/.../uploads/2017/10/Sistem-Basis-Data-TI.pdf · sebagai contohnya adalah laporan. ... 2014 4 Basis Data Pusat Bahan Ajar

2014 8 Basis Data Pusat Bahan Ajar dan eLearning   Tim Dosen http://www.mercubuana.ac.id

 

Contoh:KegunaanALLTampilkan staff yang gaji-nya lebih besar dari gaji setiap anggota staff cabang B003.

SELECT staffNo, fName, lName, position, salary FROM Staff

WHERE salary > ALL

(SELECT salary FROM Staff

WHERE branchNo = ‘B003’);

 

Operasi Join Queri

Contoh penggunaan inner join

Tampilkan nama dan komentar dari semua klien yang sudah melihat properti.

Select c.clientno, c.fname, c.lname, propertyno, comment from client c

inner join viewing v

on c.clientno = v.clientno;

Page 65: MODUL PERKULIAHAN Basis Data - …fasilkom.mercubuana.ac.id/.../uploads/2017/10/Sistem-Basis-Data-TI.pdf · sebagai contohnya adalah laporan. ... 2014 4 Basis Data Pusat Bahan Ajar

2014 9 Basis Data Pusat Bahan Ajar dan eLearning   Tim Dosen http://www.mercubuana.ac.id

 

Contoh penggunaan non inner join

Tampilkan nama cabang dan stafnya yang tinggal diluar Paris

Select b.branchno, b.bname, s.fname, s.lname, city

From branch b

Join on staff on s.city <> Paris;

Contoh penggunaan left outer join

Tampilkan status laporan dari property yang sudah dilihat oleh client

Select p.propertyno, p.street, p. City, v.clientno, v.viewdate, v.comment

From property p

Left outer join viewing v on p.clientno = v.clientno;

Contoh peggunaan self join

Contoh penggunaan sintaks ini dapat dilihat pada skema HR pada oracle dengan tujuan

untuk melihat nama manajer berserta bawahannya.

Select e.lastname emp, m.lastname mgr

From employees e join employees m

On (e.manager_id = m.employee_id)

Page 66: MODUL PERKULIAHAN Basis Data - …fasilkom.mercubuana.ac.id/.../uploads/2017/10/Sistem-Basis-Data-TI.pdf · sebagai contohnya adalah laporan. ... 2014 4 Basis Data Pusat Bahan Ajar

2014 10 Basis Data Pusat Bahan Ajar dan eLearning   Tim Dosen http://www.mercubuana.ac.id

 

Latihan

Buka skema HR pada latihan oracle anda. Buatlah queri-queri dengan menggunakan

perintah join.

Daftar Pustaka

1. Database system: A Practical approach to design, implementation and management 2. Sistem Manajemen Basis Data 3. Oracle database 10g: SQL Fundamentals I

 

Page 67: MODUL PERKULIAHAN Basis Data - …fasilkom.mercubuana.ac.id/.../uploads/2017/10/Sistem-Basis-Data-TI.pdf · sebagai contohnya adalah laporan. ... 2014 4 Basis Data Pusat Bahan Ajar

 

 2014 1 Basis Data Pusat Bahan Ajar dan eLearning   Tim Dosen http://www.mercubuana.ac.id

   

MODUL PERKULIAHAN

Basis Data

SQL:DATA DEFINITION LANGUAGE

Fakultas  Program Studi  Tatap Muka  Kode MK  Disusun Oleh 

Ilmu Komputer  Teknik Informatika 

06 87031  Tim Dosen 

 

Abstract Kompetensi Modul ini berisi materi tentang perintah dalam SQL untuk membangun dan mendefiniskan basis data beserta strukturnya

Mahasiswa mampu menuliskan perintah SQL untuk membuat sebuah struktur tabel, mampu mendefinisikan integrity constraint dalam DDL.

Page 68: MODUL PERKULIAHAN Basis Data - …fasilkom.mercubuana.ac.id/.../uploads/2017/10/Sistem-Basis-Data-TI.pdf · sebagai contohnya adalah laporan. ... 2014 4 Basis Data Pusat Bahan Ajar

 

 2014 2 Basis Data Pusat Bahan Ajar dan eLearning   Tim Dosen http://www.mercubuana.ac.id

   

Sasaran Dalam DDL

Tipe data yang didukung oleh SQL standard.

Kegunaan dari integrity enhancement feature pada SQL.

Bagaimana menetapkanbatasan integritas menggunakan SQL.

Bagaimana menggunakan integrity enhancement feature dalam perintah

CREATE dan ALTER TABLE.

Integrity Enhancement Feature

Data yang dibutuhkan (Required data)

Batasan domain (Domain constraints)

Integritas entitas (Entity integrity)

Integritas referensial (Referential integrity)

Batasan enterprise (Enterprise constraints)

IEF-Required Data

Beberapa kolom field harus memiliki nilai yang pasti (tidak diperkenankan bernilai

NULL).

NULL digunakan untuk merepresentasikan data yang tidak ada/ tidak tersedia,

hilang atau tidak disertakan.

Standar ISO menetapkan keyword NOT NULL untuk mengatasi hal tersebut.

Contoh format deklarasi :

position VARCHAR(10) NOT NULL

Page 69: MODUL PERKULIAHAN Basis Data - …fasilkom.mercubuana.ac.id/.../uploads/2017/10/Sistem-Basis-Data-TI.pdf · sebagai contohnya adalah laporan. ... 2014 4 Basis Data Pusat Bahan Ajar

 

 2014 3 Basis Data Pusat Bahan Ajar dan eLearning   Tim Dosen http://www.mercubuana.ac.id

   

IEF-Domain Constraints

Setiap kolom mempunyai domain, atau dengan kata lain himpunan dari nilai-nilai

yang benar.

Misalkan dalam tabel Staff terdapat kolom Sex yang berisi nilai karakter tunggal ‘M’

atau ‘F’, maka dapat dideklarasikan CHECK (Search Condition);

sehingga :

sex CHAR NOT NULL

CHECK (sex IN (‘M’, ‘F’));

atau dieklarasikan secara eksplisit :

CREATE DOMAIN DomainName [AS] dataType

[DEFAULT defaultOption]

[CHECK (searchCondition)]

Sehingga :

CREATE DOMAIN SexType AS CHAR

CHECK (VALUE IN (‘M’, ‘F’));

sex SexType NOT NULL

searchCondition dapat mengandung table lookup, misalkan membuat domain

Branchnumber untuk memastikan nilai yang akan dimasukan sesuai dengan branch

number yang sudah ada pada tabel Branch :

CREATE DOMAIN BranchNo AS CHAR(4)

CHECK (VALUE IN (SELECT branchNo

FROM Branch));

Page 70: MODUL PERKULIAHAN Basis Data - …fasilkom.mercubuana.ac.id/.../uploads/2017/10/Sistem-Basis-Data-TI.pdf · sebagai contohnya adalah laporan. ... 2014 4 Basis Data Pusat Bahan Ajar

 

 2014 4 Basis Data Pusat Bahan Ajar dan eLearning   Tim Dosen http://www.mercubuana.ac.id

   

Domain dapat dihapuskan dengan menggunakan perintah DROP DOMAIN, jika

ditetapkan RESTRICT kemudian domain digunakan dalam tabel, view dan definisi

penegasan (assertion definition), maka penghapusan domain akan ditolak. Jika

ditetapkan CASCADE, maka kolom tabel yang menggunakan domain tersebut

secara otomatis diganti dengan nilai default yang ada.

DROP DOMAIN DomainName

[RESTRICT | CASCADE]

IEF - Entity Integrity

Primary key dari suatu tabel harus berisi nilai yang unik, dan non-null untuk setiap

barisnya.

Standard ISO menyediakan clause FOREIGN KEY pada perintah CREATE dan

ALTER TABLE :

PRIMARY KEY(staffNo)

PRIMARY KEY(clientNo, propertyNo)

->(Jika primary Key terdeiri dari beberapa kolom)

Hanya dapat mempunyai 1 clause PRIMARY KEY untuk setiap table, tetapi masih

dapat memastikan pemasukkan nilai yang unik untuk beberapa alternate key

dengan menggunakan keyword UNIQUE:

UNIQUE(telNo)

IEF - Referential Integrity

Foreign Key adalah kolom atau himpunan kolom yang menghubungkan setiap baris

dalam child table yang berisi Foreign Key dengan baris dari parent table yang berisi

Primary Key yang sesuai/match.

Integritas referential berarti, jika FK berisi suatu nilai, maka nilai tersebut harus

mengacu kesuatu baris dalam parent table.

Page 71: MODUL PERKULIAHAN Basis Data - …fasilkom.mercubuana.ac.id/.../uploads/2017/10/Sistem-Basis-Data-TI.pdf · sebagai contohnya adalah laporan. ... 2014 4 Basis Data Pusat Bahan Ajar

 

 2014 5 Basis Data Pusat Bahan Ajar dan eLearning   Tim Dosen http://www.mercubuana.ac.id

   

Standard ISO menyediakan pendefinisian untuk FK dengan clause FOREIGN KEY

dalam CREATE dan ALTER TABLE:

FOREIGN KEY(branchNo) REFERENCES Branch

Operasi INSERT/UPDATE yang berusaha untuk membuat nilai FK dalam child table

tanpa nilai candidate key yang sesuai dalam parent table.

Aksi yang dilakukan yang berusaha untuk merubah / menghapus (update/delete)

nilai candidate key dalam parent table yang memiliki baris yang sesuai dalam child

table tergantung pada referential action yang ditetapkan dengan subclause ON

UPDATE dan ON DELETE. Terdapat 4 pilihan aksi, yaitu :

o CASCADE, menghapus baris dari parent table dan secara otomatis

menghapus baris yang sesuai dalam child table, jika baris yang dihapus tadi

merupakan candidate key yang digunakan sebagai foreign key pada tabel

lainnya, maka aturan foreign key untuk tabel ini dihilangkan.

o SET NULL, menghapus baris pada parent table dan menetapkan nilai foreign

key dalam child table menjadi NULL. Berlaku jika kolom foreign key

mempunyai qualifier NOT NULL.

o SET DEFAULT, menghapus baris dari parent table dan menetapkan setiap

komponen foreign key dari child table menjadi defaultyang telah ditetapkan.

Berlaku jika kolom foreign key memliki nilai DEFAULT.

o NO ACTION, menolak operasi penghapusan dari parent table. Merupakan

default jika aturan ON DELETE dihilangkan

Contoh 1 :

Pada tabel PropertyForRent, StaffNo merupakan foreign key yang mengacu ke tabel

Staff. Untuk menetapkan aturan penghapusan, jika record staff dihapus dari tabel Staff,

maka nilai StaffNo yang ada pada PropertyForRent akan diganti menjadi NULL.

Sehingga dapat dituliskan :

FOREIGN KEY (staffNo) REFERENCES Staff ON DELETE SET NULL

Contoh 2 :

Page 72: MODUL PERKULIAHAN Basis Data - …fasilkom.mercubuana.ac.id/.../uploads/2017/10/Sistem-Basis-Data-TI.pdf · sebagai contohnya adalah laporan. ... 2014 4 Basis Data Pusat Bahan Ajar

 

 2014 6 Basis Data Pusat Bahan Ajar dan eLearning   Tim Dosen http://www.mercubuana.ac.id

   

OwnerNo dalam tabel PropertyForRent merupakan foreign key yang mengacu ke tabel

PrivateOwner. Untuk mendefinisikan aturan peng-update-an, jika OwnerNo dalam

PrivateOwner di-update, maka kolom yang terkait dalam tabel PropertyForRent akan

diganti dengan nilai baru, sehingga dapat dituliskan :

FOREIGN KEY (ownerNo) REFERENCES Owner ON UPDATE CASCADE

IEF - Enterprise Constraints

Standard ISO memungkinkan untuk menetapkan pendefinisian enterprise constraint

dengan menggunakan clause CHECK/UNIQUE dalam CREATE dan ALTER TABLE

juga CREATE ASSERTION.

Format pendeklarasian :

CREATE ASSERTION AssertionName

CHECK (searchCondition)

Contoh : Untuk mendefinisikan enterprise constraint yang menegaskan agar

anggota staff tidak mengatur lebih dari 100 property pada waktu yang sama :

CREATE ASSERTION StaffNotHandlingTooMuch

CHECK (NOTEXISTS (SELECT staffNo

FROM PropertyForRent

GROUP BY staffNo

HAVING COUNT(*) > 100))

Page 73: MODUL PERKULIAHAN Basis Data - …fasilkom.mercubuana.ac.id/.../uploads/2017/10/Sistem-Basis-Data-TI.pdf · sebagai contohnya adalah laporan. ... 2014 4 Basis Data Pusat Bahan Ajar

 

2014 7 Basis Data Pusat Bahan Ajar dan eLearning   Devi Fitrianah http://www.mercubuana.ac.id

  

Data Definition

SQL DDL memungkinkan objek database seperti schema, domain, table, view, dan

index untuk dibuat dan dihapuskan.

Perintah-perintah SQL DDL yang utama adalah :

o CREATE SCHEMA

o DROP SCHEMA

o CREATE/ALTER DOMAIN

o DROP DOMAIN

o CREATE/ALTER TABLE

o DROP TABLE

o CREATE VIEW

o DROP VIEW

Beberapa DBMS juga menyediakan :

o CREATE INDEX

o DROP INDEX

Relasi-relasi dan objek lain dari suatu database berada dalam sebuah environment.

Setiap environment mengandung saru atau lebih catalog, dan setiap catalog terdiri dari

sekumpulan/himpunan skema.

Skema adalah suatu himpunan bernama yang terdiri dari oobjek-objek database yang

saling berhubungan.

Objek dalam sebuah skema dapat berupa table, view, domain, assertion, collation,

translation, dan himpunan karakter. Seluruhnya memiliki owner yang sama.

Membuat Skema (CREATE SCHEMA)

Perintah untuk mendefinisikan skema :

CREATE SCHEMA [Name |

AUTHORIZATION CreatorId ]

Perintah untuk menghapus skema :

DROP SCHEMA Name [RESTRICT | CASCADE ]

Jika ditetapkan RESTRICT (default), maka skema harus kosong atau operasi akan

digagalkan. Jika ditetapkan CASCADE, maka operasi berjalan berurut menghapus

Page 74: MODUL PERKULIAHAN Basis Data - …fasilkom.mercubuana.ac.id/.../uploads/2017/10/Sistem-Basis-Data-TI.pdf · sebagai contohnya adalah laporan. ... 2014 4 Basis Data Pusat Bahan Ajar

 

2014 8 Basis Data Pusat Bahan Ajar dan eLearning   Devi Fitrianah http://www.mercubuana.ac.id

  

 

 

seluruh objek yang terkait dengan skema yang telah didefinisikan sebelumnya. Jika

terjadi kegagalan operasi, maka DROP SCHEMA akan gagal juga.

Membuat table (CREATE TABLE)

Membuat tabel dasar digunakan format sbb :

CREATE TABLE TableName

{(colName dataType [NOT NULL] [UNIQUE]

[DEFAULT defaultOption]

[CHECK searchCondition] [,...]}

[PRIMARY KEY (listOfColumns),]

{[UNIQUE (listOfColumns),] […,]}

{[FOREIGN KEY (listOfFKColumns)

REFERENCES ParentTableName [(listOfCKColumns)],

[MATCH {PARTIAL|FULL}]

[ON UPDATE referentialAction]

[ON DELETE referentialAction ]] [,…]}

{[CHECK (searchCondition)] [,…] })

Membuat tabel dengan satu atau lebih kolom dengan tipe data tertentu.

Dengan NOT NULL, sistem akan menolak setia[ usaha untuk memasukan nilai NULL

kedalam kolom.

Dapat menspesifikasikan nilai DEFAULT untuk kolom.

Primary key harus selalu ditetapkan NOT NULL.

Clause FOREIGN KEY menetapkan FK bersama dengan aksi referensial.

Contoh - CREATE TABLE

CREATE DOMAIN OwnerNumber AS VARCHAR(5)

Page 75: MODUL PERKULIAHAN Basis Data - …fasilkom.mercubuana.ac.id/.../uploads/2017/10/Sistem-Basis-Data-TI.pdf · sebagai contohnya adalah laporan. ... 2014 4 Basis Data Pusat Bahan Ajar

 

2014 9 Basis Data Pusat Bahan Ajar dan eLearning   Devi Fitrianah http://www.mercubuana.ac.id

  

 

 

CHECK (VALUE IN (SELECT ownerNo FROM PrivateOwner));

CREATE DOMAIN StaffNumber AS VARCHAR(5)

CHECK (VALUE IN (SELECT staffNo FROM Staff));

CREATE DOMAIN BranchNumber AS VARCHAR(5)

CHECK (VALUE IN (SELECT branchNo FROM Branch));

CREATE DOMAIN PropertyNumber AS VARCHAR(5);

CREATE DOMAIN Street AS VARCHAR(25);

CREATE DOMAIN City AS VARCHAR(15);

CREATE DOMAIN PostCode AS VARCHAR(8);

CREATE DOMAIN PropertyType AS VARCHAR(1);

CHECK (VALUE IN (‘B’, ‘C’, ‘D’, ‘E’, ‘F’, ’M’, ‘S’));

CREATE DOMAIN PropertyRooms AS SMALLINT;

CHECK(VALUE BETWEEN 1 AND 15);

CREATE DOMAIN PRent AS DECIMAL(6,2)

Page 76: MODUL PERKULIAHAN Basis Data - …fasilkom.mercubuana.ac.id/.../uploads/2017/10/Sistem-Basis-Data-TI.pdf · sebagai contohnya adalah laporan. ... 2014 4 Basis Data Pusat Bahan Ajar

 

2014 10 Basis Data Pusat Bahan Ajar dan eLearning   Devi Fitrianah http://www.mercubuana.ac.id

  

 

 

CHECK(VALUE BETWEEN 0 AND 9999.99);

CREATE TABLE PropertyForRent (

propertyNo PropertyNumber NOT NULL,

street Street NOT NULL,

city City NOT NULL,

postcode PostCode

type PropertyType NOT NULL DEFAULT 4,

rooms PropertyRooms NOT NULL DEFAULT 4,

rent PropertyRent NOT NULL, DEFAULT 600,

ownerNo OwnerNumber NOT NULL,

staffNo StaffNumber

Constraint StaffNotHandlingTooMuch

CHECK (NOT EXIST( SELECT staffNo FROM PropertyForRent

GROUP BY staffNo

HAVING COUNT(*) > 100)),

branchNo BranchNumber NOT NULL,

PRIMARY KEY (propertyNo),

FOREIGN KEY (staffNo) REFERENCES Staff

ON DELETE SET NULL ON UPDATE CASCADE,

FOREIGN KEY (ownerNo) REFERENCES PrivateOwner

Page 77: MODUL PERKULIAHAN Basis Data - …fasilkom.mercubuana.ac.id/.../uploads/2017/10/Sistem-Basis-Data-TI.pdf · sebagai contohnya adalah laporan. ... 2014 4 Basis Data Pusat Bahan Ajar

 

2014 11 Basis Data Pusat Bahan Ajar dan eLearning   Devi Fitrianah http://www.mercubuana.ac.id

  

 

 

ON DELETE NO ACTION ON UPDATE CASCADE,

FOREIGN KEY (branchNo) REFERENCES Branch

ON DELETE NO ACTION ON UPDATE CASCADE);

Nilai default ‘F’ untuk ‘Flat’ ditetapkan untuk tipe property kolom Type. Batasan untuk

kolom nomor staff ditetapkan untuk memastikan staff tidak menangani property lebih dari

100 unit. Primary key yang digunakan adalah PropertyNo.

StaffNo merupakan FK yang mengacu kepada tabel Staff, aturan penghapusan telah

ditetapkan yaitu jika record dari tabel Staff dihapus, maka nilai yang terkait dengan kolom

staff pada tabel PropertyForRent akan diisi dengan NULL. Untuk aturan peng-update-an,

jika staffNo dalam tabel staff diupdate, maka nilai yang terkait dalam kolom staffNo pada

tabel PropertyForRent akan di-update menjadi nilai yang baru.

OwnerNo merupakan FK yang mengacu pada tabel PrivateOwner. Aturan

penghapusan NO ACTION berfungsi untuk mencegah penghapusan pada tabel

PrivateOwner jika terdapat nilai OwnerNo yang sesuai dalam tabel PropertyForent. Untuk

aturan peng-update-an, jika OwnerNo di-update, maka nilai yang terkait dalam kolom

OwnerNo pada tabel PropertyForRent akan di-update menjadi nilai yang baru.

Merubah Table (ALTER TABLE)

Menambahkan kolom pada tabel

Menghapus kolom dari tabel

Menambahkan batasan kolom

Menghapus batasan tabel

Menetapkan default untuk kolom

Menghapus default dari kolom

Page 78: MODUL PERKULIAHAN Basis Data - …fasilkom.mercubuana.ac.id/.../uploads/2017/10/Sistem-Basis-Data-TI.pdf · sebagai contohnya adalah laporan. ... 2014 4 Basis Data Pusat Bahan Ajar

 

2014 12 Basis Data Pusat Bahan Ajar dan eLearning   Devi Fitrianah http://www.mercubuana.ac.id

  

 

 

Contoh - ALTER TABLE

Ubah tabel Staff dengan menghapus default ‘Assistant’ untuk kolom position dan tetapkan

default untuk kolom sex menjadi (‘F’).

ALTER TABLE Staff

ALTER position DROP DEFAULT;

ALTER TABLE Staff

ALTER sex SET DEFAULT ‘F’;

Contoh - ALTER TABLE

Hapus batasan/constraint dari tabel PropertyForRent yang menetapkan bahwa tidak

diperbolehkan menangani lebih dari 100 unit properti pada saat yang sama. Tambahkan

kolom baru untuk tabel Client.

ALTER TABLE PropertyForRent

DROP CONSTRAINT StaffNotHandlingTooMuch;

ALTER TABLE Client

ADD prefNoRooms PRooms;

Menghapus Tabel (DROP TABLE)

Format penulisan :

DROP TABLE

DROP TABLE TableName [RESTRICT | CASCADE]

Page 79: MODUL PERKULIAHAN Basis Data - …fasilkom.mercubuana.ac.id/.../uploads/2017/10/Sistem-Basis-Data-TI.pdf · sebagai contohnya adalah laporan. ... 2014 4 Basis Data Pusat Bahan Ajar

 

2014 13 Basis Data Pusat Bahan Ajar dan eLearning   Devi Fitrianah http://www.mercubuana.ac.id

  

 

 

Jika ditetapkan RESTRICT, maka operasi penghapusan akan ditolak jika terdapat objek

lain yang terkait dengan objek yang akan dihapus. Sedangkan CASCADE, operasi

penghapusan akan dilaksanakan dan seluruh objek terkait akan dihapus juga.

Contoh :

Hapus sebuah tabel dan seluruh baris didalamnya

DROP TABLE PropertyForRent;

Latihan  

1. MEMBUAT TABEL Buatlah table dengan struktur sebagai berikut di dalam database  

 

 

 

 

 

 

 

 

 

 

 

 

 

 

TB_STAFF 

Field Name  Data type  Field Size  Keterangan 

IDSTAFF  Varchar2  5  Primary Key 

SNAMA  Varchar2  30   

SGAJI  Numeric  9,2   

TB_DIVISI 

Field Name  Data Type  Field Size  Keterangan 

IDDIVISI  Numeric  2  Primary Key 

DNAMA  Varchar2  10   

Page 80: MODUL PERKULIAHAN Basis Data - …fasilkom.mercubuana.ac.id/.../uploads/2017/10/Sistem-Basis-Data-TI.pdf · sebagai contohnya adalah laporan. ... 2014 4 Basis Data Pusat Bahan Ajar

 

2014 14 Basis Data Pusat Bahan Ajar dan eLearning   Devi Fitrianah http://www.mercubuana.ac.id

  

 

 

2. MENAMPILKAN STRUKTUR TABEL YANG SUDAH ADA Gunakan perintah DESCRIBE 

 

3. MENGINSERT DATA    

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

4.  MEMODIFIKASI STRUKTUR DATA 

Tambahkan field berikut sesuai dengan table yang sudah ditentukan dan definisikan constraintnya. 

 

 

TB_STAFF 

IDSTAFF  SNAMA  SGAJI 

00011  YOLANDA TANTYA 5540000

00013  ARIEF RAHMAN  870000 

00015  TUBAGUS ALDI  2540000

00017  ZIDAN  4540000

00019  HAFIRA AINI  1970000

00021  HALIZA  780000 

00031  FAISAL RAFIF  5400000

00012  AQILA RASIYAH  7500000

00023  ALFATH MUBINAN 2300000

00014  SYARIFAH IZNA  1600000

TB_DIVISI 

IDDIVISI DNAMA 

10  PRODUKSI 

20  KEUANGAN 

30  PERSONALIA 

40  HUMAS 

50  PENJUALAN 

60  IT 

Page 81: MODUL PERKULIAHAN Basis Data - …fasilkom.mercubuana.ac.id/.../uploads/2017/10/Sistem-Basis-Data-TI.pdf · sebagai contohnya adalah laporan. ... 2014 4 Basis Data Pusat Bahan Ajar

 

2014 15 Basis Data Pusat Bahan Ajar dan eLearning   Devi Fitrianah http://www.mercubuana.ac.id

  

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

5. Masukkan data baru untuk field baru  

TB_STAFF 

Field Name  Data Type  Field Size  Keterangan 

SDIVISI  Numeric  5  Foreign key (IDDIVISI) 

JENKEL  Varchar2  9   

TMPLHR  Varchar2  25   

TGLLHR  Date     

TB_DIVISI 

Field Name  Data Type  Field Size  Keterangan 

IDMANAGER  Numeric  5  Foreign key (IDSTAFF) 

TB_STAFF 

IDSTAFF  SNAMA  SGAJI  JENKEL  TMPLHR  TGLLHR  SDIVISI 

00011  YOLANDA TANTYA  5540000  PEREMPUAN  JAKARTA  12‐12‐1978  50 

00013  ARIEF RAHMAN  870000  LAKI‐LAKI  MEDAN  23‐04‐1965  20 

00015  TUBAGUS ALDI  2540000  LAKI‐LAKI  JAKARTA  03‐09‐1977  40 

00017  ZIDAN  4540000  LAKI‐LAKI  BANDUNG  09‐10‐1989  70 

00019  HAFIRA AINI  1970000  PEREMPUAN  SURABAYA  22‐10‐1987  40 

00021  HALIZA  780000  PEREMPUAN  BOGOR  08‐08‐1988  20 

00031  FAISAL RAFIF  5400000  LAKI‐LAKI  SEMARANG  21‐01‐1981  60 

Page 82: MODUL PERKULIAHAN Basis Data - …fasilkom.mercubuana.ac.id/.../uploads/2017/10/Sistem-Basis-Data-TI.pdf · sebagai contohnya adalah laporan. ... 2014 4 Basis Data Pusat Bahan Ajar

 

2014 16 Basis Data Pusat Bahan Ajar dan eLearning   Devi Fitrianah http://www.mercubuana.ac.id

  

 

 

 

 

 

 

 

 

 

 

 

 

 

 

6. Tampilkan hasil masing‐masing tabel dengan data setelah disisipkan data baru  

 

7. Buatlah perintah‐perintah SQL untuk kebutuhan berikut dan tampilkan hasilnya. a. Tampilkan nama dan gaji dari pegawai‐pegawai divisi tertentu. b. Tampilkan nama dan gaji dari para manajer divisi. c. Tampilkan jumlah pegawai di masing‐masing divisi. d. Tampilkan rata‐rata gaji para pegawai di masing‐masing divisi. e. Tampilkan gaji terendah, gaji tertinggi, dan gaji rata‐rata seluruh pegawai f. Tampilkan nama pegawai beserta usianya diatas 30 tahun g. Tampilkan gaji setahun dari divisi produksi 

 

 

00012  AQILA RASIYAH  7500000  PEREMPUAN  TANGERANG  24‐06‐1980  10 

00023  ALFATH MUBINAN  2300000  LAKI‐LAKI  JAKARTA  30‐07‐1984  30 

00014  SYARIFAH IZNA  1600000  PEREMPUAN  JAKARTA  26‐12‐1976  30 

TB_DIVISI 

IDDIVISI  DNAMA  IDMANAGER 

10  PRODUKSI  00012 

20  KEUANGAN  00013 

30  PERSONALIA  00023 

40  HUMAS  00019 

50  PENJUALAN  00011 

60  IT  00031 

Page 83: MODUL PERKULIAHAN Basis Data - …fasilkom.mercubuana.ac.id/.../uploads/2017/10/Sistem-Basis-Data-TI.pdf · sebagai contohnya adalah laporan. ... 2014 4 Basis Data Pusat Bahan Ajar

 

2014 17 Basis Data Pusat Bahan Ajar dan eLearning   Devi Fitrianah http://www.mercubuana.ac.id

  

 

 

Daftar Pustaka

1. Database system: A Practical approach to design, implementation and management 2. Sistem Manajemen Basis Data 3. Oracle database 10g: SQL Fundamentals I

Page 84: MODUL PERKULIAHAN Basis Data - …fasilkom.mercubuana.ac.id/.../uploads/2017/10/Sistem-Basis-Data-TI.pdf · sebagai contohnya adalah laporan. ... 2014 4 Basis Data Pusat Bahan Ajar

 

 

MODUL PERKULIAHAN

Basis Data

SQL: DATA DEFINITION LANGUAGE VIEW DAN KONTROL AKSES

Fakultas  Program Studi  Tatap Muka  Kode MK  Disusun Oleh 

Ilmu Komputer  Teknik Informatika 

07 87031  Tim Dosen 

 

Abstract Kompetensi Modul ini berisi materi tentang perintah dalam SQL untuk membangun dan mendefiniskan basis data beserta strukturnya

Mahasiswa mampu menuliskan perintah SQL untuk membuat sebuah struktur tabel, mampu mendefinisikan integrity constraint dalam DDL.

Page 85: MODUL PERKULIAHAN Basis Data - …fasilkom.mercubuana.ac.id/.../uploads/2017/10/Sistem-Basis-Data-TI.pdf · sebagai contohnya adalah laporan. ... 2014 4 Basis Data Pusat Bahan Ajar

 

2014 2 Basis Data Pusat Bahan Ajar dan eLearning   Tim Dosen http://www.mercubuana.ac.id

  

 

 

Views

View merupakan hasil dinamik dari satu atau lebih operasi relasional yang

dioperasikan pada relasi dasar untuk menghasilkan relasi lain.

View merupakan relasi virtual yang tidak perlu ada dalam database tetapi dihasilkan

dari permintaan – permintaan khusus para user pada saat itu.

Isi dari view didefinisikan sebagai query pada satu atau lebih relasi dasar.

Dengan view resolution (pemecahan), operasi apapun pada view secara otomatis di

terjemahkan kedalam operasi pada relasi mana view tersebut dihasilkan.

Dengan view materialization (perwujudan), view disimpan sebagai tabel sementara,

yang diatur sebagai tabel dasar utama yang telah diubah.

SQL – Membuat view (CREATE VIEW)

 

Format penulisan CREATE VIEW :

CREATE VIEW ViewName [ (newColumnName [,...]) ]

AS subselect [WITH [CASCADED | LOCAL] CHECK OPTION]

Dapat menetapkan nama untuk setiap kolomnya.

Jika nama kolom didefinisikan, akan memiliki jumlah item yang sama dengan jumlah

kolom yang dihasilkan oleh subselect.

Jika nama kolom tidak didefinisikan, maka setiap kolom akan memiliki nama sesuai

dengan kolom dalam subselect.

Nama tabel harus ditentukan jika terdapat nama kolom yang sama (ambiguity).

Subselect dikenal juga sebagai defining query. Penggunaan WITH CHECK OPTION

memastikan jika tidak ada baris yang memenuhi kondisi clause WHERE pada defining

query, maka tidak akan ditambahkan pada tabel dasar yang ditetapkan.

Page 86: MODUL PERKULIAHAN Basis Data - …fasilkom.mercubuana.ac.id/.../uploads/2017/10/Sistem-Basis-Data-TI.pdf · sebagai contohnya adalah laporan. ... 2014 4 Basis Data Pusat Bahan Ajar

 

2014 3 Basis Data Pusat Bahan Ajar dan eLearning   Tim Dosen http://www.mercubuana.ac.id

  

 

 

Memerlukan hak SELECT pada semua tabel yang ditunjuk dalam subselect dan hak

USAGE pada domain yang digunakan dalam kolom yang ditunjuk

Contoh – Membuat view horisontal (Create Horizontal View)

Buatlah view, sehingga manager dikantor cabang B003 hanya dapat melihat detail staff

yang bekerja di kantor cabang tersebut.

CREATE VIEW Manager3Staff

AS SELECT *

FROM Staff

WHERE branchNo = ‘B003’;

Contoh – Membuat view vertikal (Create Vertical View)

Buatlah view detail staff dikantor cabang B003 tidak termasuk gaji.

CREATE VIEW Staff3

AS SELECT staffNo, fName, lName, position, sex

FROM Staff

WHERE branchNo = ‘B003’;

Page 87: MODUL PERKULIAHAN Basis Data - …fasilkom.mercubuana.ac.id/.../uploads/2017/10/Sistem-Basis-Data-TI.pdf · sebagai contohnya adalah laporan. ... 2014 4 Basis Data Pusat Bahan Ajar

 

2014 4 Basis Data Pusat Bahan Ajar dan eLearning   Tim Dosen http://www.mercubuana.ac.id

  

 

 

Contoh – View gabungan dan dikelompokan (Grouped and Joined Views)

Buatlah view dari staff yang mengatur properti untuk disewakan, termasuk nomor kantor

cabang tempat mereka bekerja, nomor staff dan jumlah properti yang ditangani.

CREATE VIEW StaffPropCnt (branchNo, staffNo, cnt)

AS SELECT s.branchNo, s.staffNo, COUNT(*)

FROM Staff s, PropertyForRent p

WHERE s.staffNo = p.staffNo

GROUP BY s.branchNo, s.staffNo;

Page 88: MODUL PERKULIAHAN Basis Data - …fasilkom.mercubuana.ac.id/.../uploads/2017/10/Sistem-Basis-Data-TI.pdf · sebagai contohnya adalah laporan. ... 2014 4 Basis Data Pusat Bahan Ajar

 

2014 5 Basis Data Pusat Bahan Ajar dan eLearning   Tim Dosen http://www.mercubuana.ac.id

  

 

 

SQL – Menghapus View (DROP VIEW)

Format penulisan DROP VIEW :

DROP VIEW ViewName [RESTRICT | CASCADE]

Akan menyebabkan terhapusnya pendefinisian view dari database.

Contoh :

DROP VIEW Manager3Staff;

Jika CASCADE didefinisikan, maka semua objek yang terkait/terhubung akan dihapus.

Misalkan, view yang didefinisikan dari view yang dihapus.

Jika RESTRICT (Default) didefinisikan, maka jika terdapat objek lain yang bergantung

pada view yang akan dihapus, perintah penghapusan view akan ditolak.

View Resolution

Carilah jumlah properti yang ditangani oleh setiap anggota staff dari kantor cabang B003.

SELECT staffNo, cnt

FROM StaffPropCnt

WHERE branchNo = ‘B003’

ORDER BY staffNo;

View resolution menggabungkan query diatas dengan defining query dari view StaffPropCnt

sbb :

(a) Nama kolom view dalam daftar SELECT diterjemahkan kedalam nama kolom yang

dimaksud dalam defining query:

SELECT s.staffNo As staffNo, COUNT(*) As cnt

Page 89: MODUL PERKULIAHAN Basis Data - …fasilkom.mercubuana.ac.id/.../uploads/2017/10/Sistem-Basis-Data-TI.pdf · sebagai contohnya adalah laporan. ... 2014 4 Basis Data Pusat Bahan Ajar

 

2014 6 Basis Data Pusat Bahan Ajar dan eLearning   Tim Dosen http://www.mercubuana.ac.id

  

 

 

(b) Nama view dalam FROM digantikan dengan daftar FROM yang ditunjukan dalam

defining query:

FROM Staff s, PropertyForRent p

(c) WHERE dari query user dikombinasikan dengan WHERE dari defining query

menggunakan AND:

WHERE s.staffNo = p.staffNo AND branchNo = ‘B003’

(d) Clause GROUP BY dan HAVING disalin dari defining query:

GROUP BY s.branchNo, s.staffNo

(e) ORDER BY disalin dari query dengan nama kolom view diterjemahkan kedalam nama

kolom defining query :

ORDER BY s.staffNo

(f) Hasil akhir penggabungan query, dieksekusi untuk menampilkan hasil :

SELECT s.staffNo, COUNT(*)

FROM staff s, PropertyForRent p

WHERE s.staffNo = p.staffNo AND branchNo = ‘B003’

GROUP BY s.branchNo, s.staffNo

ORDER BY s.staffNo;

Page 90: MODUL PERKULIAHAN Basis Data - …fasilkom.mercubuana.ac.id/.../uploads/2017/10/Sistem-Basis-Data-TI.pdf · sebagai contohnya adalah laporan. ... 2014 4 Basis Data Pusat Bahan Ajar

 

2014 7 Basis Data Pusat Bahan Ajar dan eLearning   Tim Dosen http://www.mercubuana.ac.id

  

 

 

Pembatasan pada View (Restrictions on Views)

SQL menentukan beberapa batasan pada pembuatan dan penggunaan view :

(a) Jika kolom dalam view berdasarkan pada fungsi aggregate, maka :

Kolom hanya boleh muncul dalam clause SELECT dan ORDER BY dari query

yang mengakses view.

Kolom tidak dapat digunakan dalam WHERE maupun argumen untuk fungsi

aggregate dalam query yang berasal dari view.

Contoh, query berikut adalah salah :

SELECT COUNT(cnt)

FROM StaffPropCnt;

Dan

SELECT *

FROM StaffPropCnt

WHERE cnt > 2;

(b) View yang dikelompokkan tidak akan pernah digabungkan dengan tabel dasar atau

view.

Contoh : view StaffPropCnt merupakan view yang dikelompokkan, oleh

sebab itu usaha untuk menggabungkan view ini atau tabel lainnya akan gagal.

View Updatability

Seluruh update yang dilakukan pada tabel dasar akan terlihat dalam semua view yang

mengandung tabel dasar tersebut.

Maka dapat dikatakan, jika view di-update/diubah maka tabel dasar akan

menggambarkan /menampilkan perubahannya.

Page 91: MODUL PERKULIAHAN Basis Data - …fasilkom.mercubuana.ac.id/.../uploads/2017/10/Sistem-Basis-Data-TI.pdf · sebagai contohnya adalah laporan. ... 2014 4 Basis Data Pusat Bahan Ajar

 

2014 8 Basis Data Pusat Bahan Ajar dan eLearning   Tim Dosen http://www.mercubuana.ac.id

  

 

 

Perhatikan view StaffPropCnt, jika akan dimasukan record pada kantor cabang B003,

SG5 mengatur 2 properti, dapat dituliskan :

INSERT INTO StaffPropCnt

VALUES (‘B003’, ‘SG5’, 2);

Maka harus memasukan 2 record ke tabel PropertyForRent, yang menampilkan properti

mana yang diatur oleh SG5, tetapi tidak diketahui properti mana, yaitu tidak diketahui

primary key dari property yang dimaksud.

Jika merubah pendefinisian view dan mengganti count dengan jumlah properti yang

sebenarnya, sbb :

CREATE VIEW StaffPropList (branchNo, staffNo, propertyNo)

AS SELECT s.branchNo, s.staffNo, p.propertyNo

FROM Staff s, PropertyForRent p

WHERE s.staffNo = p.staffNo;

Lalu masukan record :

INSERT INTO StaffPropList

VALUES (‘B003’, ‘SG5’, ‘PG19’);

Maka masih akan tetap bermasalah, karena dalam tabel PropertyForRent, seluruh kolom

kecuali postcode dan staffNo tidak memperbolehkan NULL, dan tidak dapat memasukan

nilai pada kolom-kolom NON NULL.

ISO menetapkan, suatu view harus dapat di-update dalam sistem yang sesuai dengan

standar.

Sebuah view dapat di-update jika dan hanya jika :

o DISTINCT tidak ditetapkan/digunakan.

o Setiap elemen dalam daftar SELECT dari defining query merupakan nama

kolom dan tidak ada kolom yang muncul lebih dari satu kali

Page 92: MODUL PERKULIAHAN Basis Data - …fasilkom.mercubuana.ac.id/.../uploads/2017/10/Sistem-Basis-Data-TI.pdf · sebagai contohnya adalah laporan. ... 2014 4 Basis Data Pusat Bahan Ajar

 

2014 9 Basis Data Pusat Bahan Ajar dan eLearning   Tim Dosen http://www.mercubuana.ac.id

  

 

 

o Clause FORM ditetapkan hanya 1 tabel, tidak termasuk view yang berasal

dari join, union, intersection atau difference.

o Tidak terdapat nested SELECT yang mengacu ke outer tabel.

o Tidak terdapat clause GROUP BY atau HAVING.

o Setiap baris yang ditambahkan melalui view harus tidak melanggar batasan

integritas dari tabel dasar.

Updatable View

Untuk view yang dapat diubah, DBMS harus berkemampuan untuk menelusuri kebelakang

setiap baris atau kolom pada baris atau kolom dalam tabel asal/sumber.

WITH CHECK OPTION

Suatu baris muncul dalam view karena memenuhi kondisi dalam clause WHERE dari

defining query.

Jika baris berubah dan tidak lagi memenuhi kondisi, maka akan dihilangkan dari view.

Baris baru akan muncul dalam view jika insert/update pada view memenuhi kondisi

WHERE.

Baris yang masuk atau keluar dari view disebut baris migrasi (migrating rows).

WITH CHECK OPTION menghalangi baris migrasi keluar dari view. Terdapat qualifier

optional LOCAL/CASCADED.

Jika ditetapkan WITH LOCAL CHECK OPTION, maka setiap baris yang di-

insert/update pada view ini dan setiap view yang didefinisikan secara langsung

maupun tidak langsung pada view ini harus tidak menyebabkan baris hilang dari view

kecuali baris dihilangkan dari derived view/table.

JIKA ditetapkan WITH CASCADED CHECK OPTION (Default), maka setiap baris

yang di-insert/update pada view ini dan pada setiap view yang didefinisikan secara

langsung ataupun tidak langsung pada view ini harus tidak menyebabkan baris hilang

dari view.

Contoh - WITH CHECK OPTION

Perhatikan statemen dibawah ini :

Page 93: MODUL PERKULIAHAN Basis Data - …fasilkom.mercubuana.ac.id/.../uploads/2017/10/Sistem-Basis-Data-TI.pdf · sebagai contohnya adalah laporan. ... 2014 4 Basis Data Pusat Bahan Ajar

 

2014 10 Basis Data Pusat Bahan Ajar dan eLearning   Tim Dosen http://www.mercubuana.ac.id

  

 

 

CREATE VIEW Manager3Staff

AS SELECT *

FROM Staff

WHERE branchNo = ‘B003’

WITH CHECK OPTION;

Misalkan salah satu baris akan di-update nomor cabangnya dari B003 menjadi B005,

sbb :

UPDATE Manager3Staff

SET branchNo = ‘B005’

WHERE staffNo = ‘SG37’;

Penulisan WITH CHECK OPTION pada definisi view akan menggagalkan perintah

diatas, karena dapat menyebabkan baris bermigrasi.

Juga tidak dapat memasukan baris kedalam view jika nomor cabang tidak sama

dengan B003, contoh :

INSERT INTO Manager3Staff

VALUES (‘SL15’, ‘Mary’, ‘Black’ ‘Assistant’, ‘F’, DATE’1967-06-21’, 8000, ‘B002’);

Penulisan WITH CHECK OPTION pada definisi view akan mencegah pemasukkan

data ke tabel Staff .

Jika Manager3Staff didefinisikan tidak pada tabel Staff langsung tetapi pada view lain

dari tabel Staff :

CREATE VIEW LowSalary

AS SELECT * FROM Staff WHERE salary > 9000;

Page 94: MODUL PERKULIAHAN Basis Data - …fasilkom.mercubuana.ac.id/.../uploads/2017/10/Sistem-Basis-Data-TI.pdf · sebagai contohnya adalah laporan. ... 2014 4 Basis Data Pusat Bahan Ajar

 

2014 11 Basis Data Pusat Bahan Ajar dan eLearning   Tim Dosen http://www.mercubuana.ac.id

  

 

 

CREATE VIEW HighSalary

AS SELECT * FROM LowSalary

WHERE salary > 10000

WITH LOCAL CHECK OPTION;

CREATE VIEW Manager3Staff

AS SELECT * FROM HighSalary

WHERE branchNo = ‘B003’;

Jika akan dilaksanakan update sbb :

UPDATE Manager3Staff

SET salary = 9500

WHERE staffNo = ‘SG37’;

Maka perintah diatas akan gagal, walaupun update akan menyebabkan baris hilang

dari HighSalary, tetapi tidak akan hilang dari LowSalary.

Jika update mencoba untuk menetapkan salary = 8000, update akan dilaksanakan dan

baris tersebut tidak lagi menjadi bagian dari LowSalary.

Jika HighSalary ditetapkan WITH CASCADED CHECK OPTION, penetapan salary

menjadi 9500 atau 8000 akan ditolak karena menyebabkan baris dihilangkan dari

HighSalary.

Untuk mengatasi penyimpangan seperti ini, setiap view harus dibuat menggunakan

WITH CASCADED CHECK OPTION.

Keuntungan dari Views

Kemandirian data (Data independence)

Ketepatan (Currency)

Meningkatkan keamanan (Improved security)

Page 95: MODUL PERKULIAHAN Basis Data - …fasilkom.mercubuana.ac.id/.../uploads/2017/10/Sistem-Basis-Data-TI.pdf · sebagai contohnya adalah laporan. ... 2014 4 Basis Data Pusat Bahan Ajar

 

2014 12 Basis Data Pusat Bahan Ajar dan eLearning   Tim Dosen http://www.mercubuana.ac.id

  

 

 

Mengurangi kerumitan (Reduced complexity)

Kenyamanan (Convenience)

Customization

Integritas data (Data integrity)

Disadvantages of Views

Pembatasan update (Update restriction)

Pembatasan struktur (Structure restriction)

Performance

View Materialization

View Materialization, yaitu menyimpan sebuah view sebagai tabel sementara

(temporary) dalam database pada saat view di-query-kan pertama kali.

Query yang berdasarkan materialized view akan lebih cepat dihasilkan daripada

membuat ulang view setiap saat.

Materialized view bermanfaat dalam aplikasi baru seperti data warehousing,

replication server, data visualization, dan mobile system.

Pemeriksaan batasan integritas dan optimisasi query juga merupakan manfaat dari

materialized view.

Kesulitan dari pendekatan ini adalah pemeliharaan ketepatan view ketika tabel dasar

diubah.

Proses perubahan (updating) suatu materialized view sebagai respon terhadap

perubahan data sumber disebut View maintenance .

Tujuan utama dari view maintenance adalah menampilkan hal-hal yang berubah agar

ketepatan view selalu terjaga.

Perhatikan view berikut :

CREATE VIEW StaffPropRent(staffNo)

AS SELECT DISTINCT staffNo

FROM PropertyForRent

Page 96: MODUL PERKULIAHAN Basis Data - …fasilkom.mercubuana.ac.id/.../uploads/2017/10/Sistem-Basis-Data-TI.pdf · sebagai contohnya adalah laporan. ... 2014 4 Basis Data Pusat Bahan Ajar

 

2014 13 Basis Data Pusat Bahan Ajar dan eLearning   Tim Dosen http://www.mercubuana.ac.id

  

 

 

WHERE branchNo = ‘B003’ AND

rent > 400;

Hasil dari perintah diatas:

staffNo

SG37

SG14

Jika akan dimasukan record baru ke tabel PropertyForRent dimana rent <= 400 maka

view tidak akan berubah.

Jika akan dimasukan data (‘PG24’, … , 550, ‘CO40’, ‘SG19’, ‘B003’) ke tabel

PropertyForRent, maka baris baru akan muncul pada materialized view.

Tetapi jika data yang akan dimasukan adalah (‘PG54’, …, 450, ‘CO89’, ‘SG37’, ‘B003’)

maka tidak akan terjadi penambahan baris karena ‘SG37’ sudah ada dalam

materialized view.

Access Control - Authorization Identifiers and Ownership

Authorization identifier merupakan identifier yang digunakan untuk membuat

identifikasi dari user. Biasanya memiliki password.

Digunakan untuk menetapkan objek apa yang boleh digunakan user dan operasi apa

yang boleh dilakukan pada objek tersebut.

Setiap object yang dibuat didalam SQL memiliki Owner, seperti yang ditetapkan dalam

clause AUTHORIZATION dari skema objek yang dituju.

Owner adalah orang yang mengetahui tentang keberadaan objek dan operasi apa saja

yang dapat dilakukan.

Page 97: MODUL PERKULIAHAN Basis Data - …fasilkom.mercubuana.ac.id/.../uploads/2017/10/Sistem-Basis-Data-TI.pdf · sebagai contohnya adalah laporan. ... 2014 4 Basis Data Pusat Bahan Ajar

 

2014 14 Basis Data Pusat Bahan Ajar dan eLearning   Tim Dosen http://www.mercubuana.ac.id

  

 

 

Privileges (Hak)

Aksi yang dapat dilakukan oleh user terhadap tabel dasar atau view :

o SELECT Mengambil (Retrieve) data dari tabel

o INSERT Memasukan (Insert) baris baru kedalam tabel

o UPDATE Merubah (Modify) baris dari data dalam tabel

o DELETE Menghapus baris data dari tabel

o REFERENCES Kolom referensi (Reference columns) dari tabel yang

disebutkan dalam integrity constraint.

o USAGE Menggunakan domain, collation, character set, dan

translation.

Dapat membatasi INSERT/UPDATE/REFERENCES untuk kolom yang ditentukan.

Pemilik tabel harus memberikan wewenang kepada user lain hak-hak yang dianggap

perlu dengan menggunakan perintah GRANT.

Untuk membuat view, user harus mempunyai hak SELECT pada seluruh tabel yang

digunakan untuk membuat view dan hak REFERENCE pada kolom tertentu.

GRANT

Format penulisan GRANT :

GRANT {PrivilegeList | ALL PRIVILEGES}

ON ObjectName

TO {AuthorizationIdList | PUBLIC}

[WITH GRANT OPTION]

PrivilegeList berisi satu atau lebih hak (privilege) yang dipisahkan dengan koma.

ALL PRIVILEGES memberikan seluruh hak (privilege) kepada user.

PUBLIC memungkinkan akses diberikan ke user saat ini dan selanjutnya.

Page 98: MODUL PERKULIAHAN Basis Data - …fasilkom.mercubuana.ac.id/.../uploads/2017/10/Sistem-Basis-Data-TI.pdf · sebagai contohnya adalah laporan. ... 2014 4 Basis Data Pusat Bahan Ajar

 

2014 15 Basis Data Pusat Bahan Ajar dan eLearning   Tim Dosen http://www.mercubuana.ac.id

  

 

 

ObjectName dapat berupa tabel dasar, view, domain, character set, collation

(pemeriksaan) atau translation (penerjemahan).

WITH GRANT OPTION memungkinkan privilege diberikan oleh seorang user ke user

lainnya.

Contoh - GRANT

Berikan hak penuh kepada manager untuk menggunakan tabel Staff :

GRANT ALL PRIVILEGES

ON Staff

TO Manager WITH GRANT OPTION;

Berikan user Personnel dan Director hak SELECT dan UPDATE pada kolom salary

dari tabel Staff :

GRANT SELECT, UPDATE (salary)

ON Staff

TO Personnel, Director;

Contoh- GRANT Specific Privileges to PUBLIC

Berikan seluruh user hak SELECT pada tabel Branch.

GRANT SELECT

ON Branch

TO PUBLIC;

Page 99: MODUL PERKULIAHAN Basis Data - …fasilkom.mercubuana.ac.id/.../uploads/2017/10/Sistem-Basis-Data-TI.pdf · sebagai contohnya adalah laporan. ... 2014 4 Basis Data Pusat Bahan Ajar

 

2014 16 Basis Data Pusat Bahan Ajar dan eLearning   Tim Dosen http://www.mercubuana.ac.id

  

 

 

REVOKE

REVOKE, mengambil kembali hak yang diberikan oleh statemen GRANT, format

penulisan REVOKE sbb :

REVOKE [GRANT OPTION FOR]

{PrivilegeList | ALL PRIVILEGES}

ON ObjectName

FROM {AuthorizationIdList| PUBLIC}

[RESTRICT | CASCADE]

ALL PRIVILEGES, seluruh hak yang diberikan untuk user.

GRANT OPTION FOR memungkinkan hak (privilege) yang diberikan via WITH

GRANT OPTION dari GRANT akan diambil terpisah.

REVOKE akan gagal, jika hasil dalam objek yang diabaikan, seperti view, kecuali

digunakan keyword CASCADE.

Hak yang diberikan kepada user oleh user lainnya tidak berpengaruh

Page 100: MODUL PERKULIAHAN Basis Data - …fasilkom.mercubuana.ac.id/.../uploads/2017/10/Sistem-Basis-Data-TI.pdf · sebagai contohnya adalah laporan. ... 2014 4 Basis Data Pusat Bahan Ajar

 

2014 17 Basis Data Pusat Bahan Ajar dan eLearning   Tim Dosen http://www.mercubuana.ac.id

  

 

 

Contoh - REVOKE Specific Privileges

Ambil hak SELECT pada tabel Branch dari seluruh user

REVOKE SELECT

ON Branch

FROM PUBLIC;

Ambil seluruh hak yang telah diberikan pada Director untuk tabel Staff.

REVOKE ALL PRIVILEGES

ON Staff

FROM Director;

Page 101: MODUL PERKULIAHAN Basis Data - …fasilkom.mercubuana.ac.id/.../uploads/2017/10/Sistem-Basis-Data-TI.pdf · sebagai contohnya adalah laporan. ... 2014 4 Basis Data Pusat Bahan Ajar

 

2014 18 Basis Data Pusat Bahan Ajar dan eLearning   Tim Dosen http://www.mercubuana.ac.id

  

 

 

Latihan

Buka kembali latihan anda pada skema HOTEL. Pada latihan kali ini anda diminta untuk membangun 

database untuk skema hotel secara baik dan benar. 

1. Perhatikan constraint yang diminta: 

a. Tipe harus salah satu dari: Single, Double, atau Family.  

b. Harga harus antara £ 10 dan £ 100.  

c. roomNo harus antara 1 dan 100.  

d. dateFrom dan dateTo harus lebih besar dari tanggal hari ini.  

e. Kamar tidak available jika sudah di pesan 

f. tamu yang sama tidak dapat memesan lebih dari 1 pemesanan (booking) 

2. Buat view/tampilan yang berisi nama hotel dan nama‐nama tamu yang sedang menginap di hotel 

3. Buat view/tampilan yang berisi item guest beserta harga yang dibayarkan ketika check out dari 

Hotel Fragrance hari ini (beri nama view = TamuKeluarHariIni) 

4. Beri wewenang kepada manajer dan front office untuk mengakses 2 tampilan ini dengan 

priviledge memberikan wewenang yang sama pada user lain. 

 

 

 

 

 

Daftar Pustaka

1. Database system: A Practical approach to design, implementation and management 2. Sistem Manajemen Basis Data 3. Oracle database 10g: SQL Fundamentals I

Page 102: MODUL PERKULIAHAN Basis Data - …fasilkom.mercubuana.ac.id/.../uploads/2017/10/Sistem-Basis-Data-TI.pdf · sebagai contohnya adalah laporan. ... 2014 4 Basis Data Pusat Bahan Ajar

MODUL PERKULIAHAN

Basis Data

Pemodelan Entitas-Relasi

Fakultas  Program Studi  Tatap Muka  Kode MK  Disusun Oleh 

Ilmu Komputer  Teknik Informatika 

08 87031  Tim Dosen 

 

Abstract Kompetensi Modul ini berisi materi tentang model entitas dan hubungannya beserta atribut yang terdapat dalam entitas

Mahasiswa mampu menjelaskan tentang model entitas dan komponen-komponen pemodelannya

Page 103: MODUL PERKULIAHAN Basis Data - …fasilkom.mercubuana.ac.id/.../uploads/2017/10/Sistem-Basis-Data-TI.pdf · sebagai contohnya adalah laporan. ... 2014 4 Basis Data Pusat Bahan Ajar

2014 2 Basis Data Pusat Bahan Ajar dan eLearning   Tim Dosen http://www.mercubuana.ac.id

  

 

 

Tujuan Pemodelan

Bagaimana menggunakan model Entity-Relationship (ER) dalam desain database.

Konsep dasar dikaitkan dengan model ER.

Teknik pendiagraman untuk menampilkan model ER dengan menggunakan Unified

Modelling Language (UML).

Bagaimana mengidentifikasi dan memecahkan masalah dengan model ER yang dikenal

dengan connection trap.

Bagaimana membuat sebuah model ER dari spesifikasi persyaratan.

ER Diagram of Branch View of DreamHome

Page 104: MODUL PERKULIAHAN Basis Data - …fasilkom.mercubuana.ac.id/.../uploads/2017/10/Sistem-Basis-Data-TI.pdf · sebagai contohnya adalah laporan. ... 2014 4 Basis Data Pusat Bahan Ajar

2014 3 Basis Data Pusat Bahan Ajar dan eLearning   Tim Dosen http://www.mercubuana.ac.id

  

 

 

Konsep Model ER

Entity types

Konsep dasar dari Model ER adalah Entity Types, yaitu kumpulan dari objek-objek

dengan sifat (property) yang sama, yang di identifikasi oleh enterprise mempunyai

eksistensi yang independen. Keberadaannya dapat berupa fisik maupun abstrak.

Entity occurrence, yaitu pengidentifikasian object yang unik dari sebuah type entity.

Setiap entitas di identifikasikan dan disertakan property-nya.

Contoh dari type entity

Diagram ER dari type entity Staff dan Branch

Page 105: MODUL PERKULIAHAN Basis Data - …fasilkom.mercubuana.ac.id/.../uploads/2017/10/Sistem-Basis-Data-TI.pdf · sebagai contohnya adalah laporan. ... 2014 4 Basis Data Pusat Bahan Ajar

2014 4 Basis Data Pusat Bahan Ajar dan eLearning   Tim Dosen http://www.mercubuana.ac.id

  

 

 

Relationship types

Kumpulan keterhubungan yang mempunyai arti (meaningful associations) antara

type entitas yang ada.

Relationship occurrence, yaitu keterhubungan yang diidentifikasi secara unik yang

meliputi keberadaan tiap type entitas yang berpartisipasi.

Contoh :

Diagram ER Relationship Branch Has Staff

Derajat Relationship

Yaitu jumlah entitas yang berpartisipasi dalam suatu relationship. Derajat relationship

terdiri dari :

Binary relationship, keterhubungan antar dua type entitas. Contoh binary relationship

antara PrivateOwner dengan PropertyForRent yang disebut POwns.

Page 106: MODUL PERKULIAHAN Basis Data - …fasilkom.mercubuana.ac.id/.../uploads/2017/10/Sistem-Basis-Data-TI.pdf · sebagai contohnya adalah laporan. ... 2014 4 Basis Data Pusat Bahan Ajar

2014 5 Basis Data Pusat Bahan Ajar dan eLearning   Tim Dosen http://www.mercubuana.ac.id

  

 

 

Ternary relationship, keterhubungan antar tiga type entitas. Contoh Ternary

Relationship yang dinamakan Registers. . Relasi ini melibatkan tiga tipe entity yaitu

Staff, Branch dan Client. Relationship ini menggambarkan staff mendaftarkan client

pada branch.

Quaternary relationship, keterhubungan antar empat type entitas. Contoh Quaternary

Relationship yang dinamakan Arranges. Relasi ini melibatkan 4 entity yaitu Buyer,

Solicitor, Financial Intstuttion dan Bid. Relasi ini menggambarkan buyer, diberi

masukan oleh Solicitor, dan didukung oleh Financial Institution, melakukan

penawaran (bid).

Unary relationship, keterhubungan antar satu type entitas, dimana type entitas

tersebut berpartisipasi lebih dari satu kali dengan peran yang berbeda. Kadang

disebut juga recursive relationship. Relationship dapat diberikan role names untuk

Page 107: MODUL PERKULIAHAN Basis Data - …fasilkom.mercubuana.ac.id/.../uploads/2017/10/Sistem-Basis-Data-TI.pdf · sebagai contohnya adalah laporan. ... 2014 4 Basis Data Pusat Bahan Ajar

2014 6 Basis Data Pusat Bahan Ajar dan eLearning   Tim Dosen http://www.mercubuana.ac.id

  

 

 

meng-identifikasikan keterkaitan type entitas dalam relationship. Contoh entitas Staff

yang berperan menjadi supervisor dan staff yang di-supervisor-i.

 

 

Attributes

Merupakan sifat-sifat (property) dari sebuah entity atau type relationship. Contohnya:

sebuah entity Staff digambarkan oleh attribute staffNo, name, position dan salary.

Attribute Domain adalah himpunan nilai yang diperbolehkan untuk satu atau lebih

atribut. Macam-macam atribut :

Simple Attribute, yaitu atribut yang terdiri dari satu komponen tunggal dengan

keberadaan yang independen dan tidak dapat dibagi menjadi bagian yang lebih kecil

lagi. Dikenal juga dengan nama Atomic Attribute.

Page 108: MODUL PERKULIAHAN Basis Data - …fasilkom.mercubuana.ac.id/.../uploads/2017/10/Sistem-Basis-Data-TI.pdf · sebagai contohnya adalah laporan. ... 2014 4 Basis Data Pusat Bahan Ajar

2014 7 Basis Data Pusat Bahan Ajar dan eLearning   Tim Dosen http://www.mercubuana.ac.id

  

 

 

Composite Attribute, yaitu atribut yang terdiri dari beberapa komponen, dimana

masing-masing komponen memiliki keberadaan yang independen. Misalkan atribut

Address dapat terdiri dari Street, City, PostCode.

Single-valued Attribute, yaitu atribut yang mempunyai nilai tunggal untuk setiap

kejadian. Misalnya entitas Branch memiliki satu nilai untuk atribut branchNo pada

setiap kejadian.

Multi-valued Attribute, yaitu atribut yang mempunyai beberapa nilai untuk setiap

kejadian. Misal entitas Branch memiliki beberapa nilai untuk atribut telpNo pada

setiap kejadian.

Derived Attribute, yaitu atribut yang memiliki nilai yang dihasilkan dari satu atau

beberapa atribut lainnya, dan tidak harus berasal dari satu entitas.

Keys

Candidate Key, yaitu jumlah minimal atribut-atribut yang dapat meng-identifikasikan

setiap kejadian/record secara unik.

Primary Key, yaitu Candidate key yang dipilih untuk meng-identifikasikan etiap

kejadian/record dari suatu entitas secara unik.

Composite Key, yaitu Candidate key yang terdiri dari dua atau lebih atribut.

ER Diagram of Staff and Branch Entities and their Attributes

Page 109: MODUL PERKULIAHAN Basis Data - …fasilkom.mercubuana.ac.id/.../uploads/2017/10/Sistem-Basis-Data-TI.pdf · sebagai contohnya adalah laporan. ... 2014 4 Basis Data Pusat Bahan Ajar

2014 8 Basis Data Pusat Bahan Ajar dan eLearning   Tim Dosen http://www.mercubuana.ac.id

  

 

 

Strong dan Weak Entity Types

Strong Entity Type, yaitu entitas yang keberadaannya tidak bergantung pada entitas

lain sedangkan Weak Entity Type, adalah entitas yang keberadaannya bergantung pada

entitas lain. Strong Entity Type terkadang disebut dengan parent, owner dominant dan Weak

Entity Type disebut child, dependent, subordinate.

Atribut pada Relationship

Relationship Advertises dengan atribut-atributnya

Page 110: MODUL PERKULIAHAN Basis Data - …fasilkom.mercubuana.ac.id/.../uploads/2017/10/Sistem-Basis-Data-TI.pdf · sebagai contohnya adalah laporan. ... 2014 4 Basis Data Pusat Bahan Ajar

2014 9 Basis Data Pusat Bahan Ajar dan eLearning   Tim Dosen http://www.mercubuana.ac.id

  

 

 

Structural Constraints

Batasan utama pada relationship disebut multiplicity, yaitu jumlah (atau range) dari

kejadian yang mungkin terjadi pada suatu entitas yang terhubung ke satu kejadian dari

entitas lain yang berhubungan melalui suatu relationship.

Relationship yang paling umum adalah binary relationship. Macam-macam binary

relationship yaitu:

one-to-one (1:1)

Relationship Staff Manages Branch

Multiplicity dari relationship Staff Manages Branch (1:1)

Page 111: MODUL PERKULIAHAN Basis Data - …fasilkom.mercubuana.ac.id/.../uploads/2017/10/Sistem-Basis-Data-TI.pdf · sebagai contohnya adalah laporan. ... 2014 4 Basis Data Pusat Bahan Ajar

2014 10 Basis Data Pusat Bahan Ajar dan eLearning   Tim Dosen http://www.mercubuana.ac.id

  

 

 

one-to-many (1 : *)

Relationship dari Staff Oversees PropertyForRent

Multiplicity dari relationship Staff Oversees PropertyForRent (1:*)

Page 112: MODUL PERKULIAHAN Basis Data - …fasilkom.mercubuana.ac.id/.../uploads/2017/10/Sistem-Basis-Data-TI.pdf · sebagai contohnya adalah laporan. ... 2014 4 Basis Data Pusat Bahan Ajar

2014 11 Basis Data Pusat Bahan Ajar dan eLearning   Tim Dosen http://www.mercubuana.ac.id

  

 

 

many-to-many (* : *)

Relationship Newspaper Advertises PropertyForRent

Multiplicity dari relationship Newspaper Advertises PropertyForRent (*:*)

Page 113: MODUL PERKULIAHAN Basis Data - …fasilkom.mercubuana.ac.id/.../uploads/2017/10/Sistem-Basis-Data-TI.pdf · sebagai contohnya adalah laporan. ... 2014 4 Basis Data Pusat Bahan Ajar

2014 12 Basis Data Pusat Bahan Ajar dan eLearning   Tim Dosen http://www.mercubuana.ac.id

  

 

 

Multiplicity for Complex Relationships

Yaitu jumlah (atau range) dari kejadian yang mungkin dari suatu entitas dalam n-ary

relationship ketika nilai entitas yang lain (n-1) diketahui.

Ternary relationship Registers dengan nilai untuk entitas Staff dan Branch diketahui

Multiplicity dari Ternary relationship Registers

Ringkasan batasan Multiplicity

Page 114: MODUL PERKULIAHAN Basis Data - …fasilkom.mercubuana.ac.id/.../uploads/2017/10/Sistem-Basis-Data-TI.pdf · sebagai contohnya adalah laporan. ... 2014 4 Basis Data Pusat Bahan Ajar

2014 13 Basis Data Pusat Bahan Ajar dan eLearning   Tim Dosen http://www.mercubuana.ac.id

  

 

 

Multiplicity dibentuk dari 2 macam batasan pada relationship : cardinality dan participation.

Cardinality, menjelaskan jumlah maksimum dari kejadian relationship yang mungkin

untuk entitas yang berpartisipasi didalam relationship tersebut.

Participation, menetapkan apakan seluruh atau sebagian entitas yang berpartisipasi

dalam suatu relationship.

Multiplicity sebagai batasan Cardinality dan Participation

Page 115: MODUL PERKULIAHAN Basis Data - …fasilkom.mercubuana.ac.id/.../uploads/2017/10/Sistem-Basis-Data-TI.pdf · sebagai contohnya adalah laporan. ... 2014 4 Basis Data Pusat Bahan Ajar

2014 14 Basis Data Pusat Bahan Ajar dan eLearning   Tim Dosen http://www.mercubuana.ac.id

  

 

 

Latihan

1. Dari skema Dreamhome, tentukan mana saja relasi entitas yang termasuk kedalam 

a. Unary 

b. Binary 

c. Ternary 

d. Quarterary 

 

2. Masih dari skema Dreamhome, tentukan mana saja atribut yang termasuk kedalam 

a. Simple 

b. Composite 

c. Single valued 

d. Multi valued 

e. Derived  

 

3. Jelaskan bagaimana multiplicity dapat merepresentasikan kardinalitas dan partisipasi 

 

4. Berikan sebuah contoh dari relasi yang dapat memiliki atribut 

 

 

 

 

Daftar Pustaka

1. Database system: A Practical approach to design, implementation and management 2. Sistem Manajemen Basis Data 3. Oracle database 10g: SQL Fundamentals I

Page 116: MODUL PERKULIAHAN Basis Data - …fasilkom.mercubuana.ac.id/.../uploads/2017/10/Sistem-Basis-Data-TI.pdf · sebagai contohnya adalah laporan. ... 2014 4 Basis Data Pusat Bahan Ajar

 

 

MODUL PERKULIAHAN

Basis Data

ERD & CLASS DIAGRAM

Fakultas  Program Studi  Tatap Muka  Kode MK  Disusun Oleh 

Ilmu Komputer  Teknik Informatika 

09 87031  Tim Dosen 

 

Abstract Kompetensi Modul ini berisi materi tentang pembuatan diagram ERD dan Class Diagram

Mahasiswa mampu menggambarkan ERD dan Class Diagram dari sebuah studi kasus yang diberikan

Page 117: MODUL PERKULIAHAN Basis Data - …fasilkom.mercubuana.ac.id/.../uploads/2017/10/Sistem-Basis-Data-TI.pdf · sebagai contohnya adalah laporan. ... 2014 4 Basis Data Pusat Bahan Ajar

 

2014 2 Basis Data Pusat Bahan Ajar dan eLearning   Tim Dosen http://www.mercubuana.ac.id

   

Diagram Entitas Relasi

Dari yang sudah kita bahas pada modul sebelumnya mengenai pemodelan entitas dan

relasi, selanjutnya kita akan membahas bagaimana membangun sebuah diagram

keterhubungan antara entitas dan relasi. Diagram ini merupakan representasi dari

pemodelan data pada basis data yang dibangun. Diagram ini merupakan salah satu tools

atau alat yang biasa digunakan oleh Database administrator dan programmer sebagai

media untuk mendeskripsikan model basis data yang digunakan dalam sistem.

Dalam perancangan basis data terdapat dua pendekatan yang dapat digunakan.

Pendekatan statis dan dinamis. Pendekatan statis seringkali digunakan ERD sebagai

pemodelannya, sementara untuk pemodelan yang dinamis digunakan Class Diagram. Tetapi

keduanya sama-sama memodelkan struktur data didalam sistem. Class diagram

merepresentasikan aspek dinamis dari sebuah sistem, baik dari sisi struktur maupun

behavior, sementara ERD hanya memperlihatkan struktur statis dari sistem.

Seperti yang telah kita ketahui bahwa ERD memiliki elemen-elemen diagram, yaitu entitas,

relasi, atribut. Dari sebuah deskripsi sistem, yang pertama harus dilakukan adalah

mengidentifikasi entitas, relasi antar entitas dan atribut dari masing-masing entitas.

Langkah-langkah membangun sebuah ERD adalah:

1. Identifikasi entitas

2. Tentukan relasi

3. Gambar ERD awal

4. Tentukan kardinalitas

5. Tentukan kunci primer

6. Tentukan key based ERD

7. Tentukan atribut

8. Gambar ERD secara menyeluruh

Class Diagram

Pada class diagram kita terlebih dahulu harus mengetahui elemen-elemen dari class

diagram:

1. Class, merupakan konsep yang umum yang biasanya digambarkan dengan kotak.

Sebuah class menggambarkan atribut struktural dan karakterisitik tingkah laku dari

konsep didalamnya.

Page 118: MODUL PERKULIAHAN Basis Data - …fasilkom.mercubuana.ac.id/.../uploads/2017/10/Sistem-Basis-Data-TI.pdf · sebagai contohnya adalah laporan. ... 2014 4 Basis Data Pusat Bahan Ajar

 

2014 3 Basis Data Pusat Bahan Ajar dan eLearning   Tim Dosen http://www.mercubuana.ac.id

   

Contoh sebuah class

2. Asosiasi, merupakan hubungan berarti antara class, direpresentasikan dengan garis.

Contoh sebuah asosiasi

Asosiasi terdapat dua jenis ada yang binary asosiasi dan ada pula yang n-ary asosiasi

dimana menghubungkan dengan lebih dari dua class.

Contoh asosiasi n-ary

Terdapat agregasi, yang merupakan relasi ”has-a”

Komposisi, merupakan relasi ”is-composed-of”

Page 119: MODUL PERKULIAHAN Basis Data - …fasilkom.mercubuana.ac.id/.../uploads/2017/10/Sistem-Basis-Data-TI.pdf · sebagai contohnya adalah laporan. ... 2014 4 Basis Data Pusat Bahan Ajar

 

2014 4 Basis Data Pusat Bahan Ajar dan eLearning   Tim Dosen http://www.mercubuana.ac.id

   

Generalisasi, merupakan relasi ”is-a-kind-of”

Dependensi, class sumber bergantung pada class target

Realisasi, class mendukung semua operasi dari class target tetapi tidak semua atribut

maupun asosiasi

Page 120: MODUL PERKULIAHAN Basis Data - …fasilkom.mercubuana.ac.id/.../uploads/2017/10/Sistem-Basis-Data-TI.pdf · sebagai contohnya adalah laporan. ... 2014 4 Basis Data Pusat Bahan Ajar

 

2014 5 Basis Data Pusat Bahan Ajar dan eLearning   Tim Dosen http://www.mercubuana.ac.id

   

Asosiasi class

3. Atribut merupakan elemen berikut dari class diagram setelah class dan asosiasi.

Atribut merupakan deskripsi dari class dengan karakteristik data serupa.

4. Operasi merupakan apa yang dapat dilakukan oeh objek ini dan aksi yang dilakukan

adalah yang relevan terhadap analisis. Operasi biasa juga disebut sebagai method.

Setelah mengetahui elemen dari class diagram, selanjutnya adalah membangun class

diagram dari sebuah deskripsi sistem. Langkah-langkah dari membangun sebuah class

diagram adalah:

1. Identifikasi class

2. Tentukan asosiasi

3. Gambar class diagram awal

4. Tentukan multiplicity

5. Tentukan atribut

6. Tentukan tingkah laku atau method dari class

7. Periksa kembali class diagram

Page 121: MODUL PERKULIAHAN Basis Data - …fasilkom.mercubuana.ac.id/.../uploads/2017/10/Sistem-Basis-Data-TI.pdf · sebagai contohnya adalah laporan. ... 2014 4 Basis Data Pusat Bahan Ajar

 

2014 6 Basis Data Pusat Bahan Ajar dan eLearning   Tim Dosen http://www.mercubuana.ac.id

   

Latihan

Universitas Maju Jaya adalah sebuah universitas yang memiliki beberapa fakultas. Setiap

fakultas dipimpin oleh seorang dekan dan minimal memiliki satu program studi yang

dikepalai oleh seorang kaprodi. Sebuah prodi minimal memiliki seorang dosen tetap dan

dosen tidak tetap. Setiap dosen tetap ditugaskan pada 1 fakultas, tetapi ada pula yang

ditugaskan pada 2 atau lebih fakultas. Setiap dosen tetap mengajar matakuliahnya, atau ada

juga dosen tetap yang tidak mengajar, melainkan hanya melakukan penelitian. Setiap

matakuliah diajar oleh lebih dari 1 pengajar. Dari dokumen didapatkan informasi tentang

nama fakultas, nama dosen, id dosen, nama matakuliah, jadwal kuliah, semester

penyelenggaraan kuliah tersebut, fakultas dan program studi dari dosen yang mengajar,

fakultas dan program studi dari kuliah yang diselenggarakan.

Dari deskripsi diatas anda diminta untuk membuat sebuah rancangan pemodelan data dengan ERD dan class diagram

Daftar Pustaka

1. Database system: A Practical approach to design, implementation and management 2. Sistem Manajemen Basis Data 3. Oracle database 10g: SQL Fundamentals I

Page 122: MODUL PERKULIAHAN Basis Data - …fasilkom.mercubuana.ac.id/.../uploads/2017/10/Sistem-Basis-Data-TI.pdf · sebagai contohnya adalah laporan. ... 2014 4 Basis Data Pusat Bahan Ajar

 

 

MODUL PERKULIAHAN

Basis Data

Normalisasi

Fakultas  Program Studi  Tatap Muka  Kode MK  Disusun Oleh 

Ilmu Komputer  Teknik Informatika 

10 87031  Tim Dosen 

 

Abstract Kompetensi Modul ini berisi materi tentang data redundansi, konsep anomaly dan ketergantungan fungsionalitas

Mahasiswa mampu menjelaskan konsep tentang data yang tidak mengandung redundansi serta dapat mengidentifikasi anomaly dari data dan memahami konsep ketergantungan fungsionalitas

Page 123: MODUL PERKULIAHAN Basis Data - …fasilkom.mercubuana.ac.id/.../uploads/2017/10/Sistem-Basis-Data-TI.pdf · sebagai contohnya adalah laporan. ... 2014 4 Basis Data Pusat Bahan Ajar

 

2014 2 Basis Data Pusat Bahan Ajar dan eLearning   Tim Dosen http://www.mercubuana.ac.id

  

 

 

Normalisasi

Tujuan utama dalam pengembangan model data logical pada sistem database relasional

adalah untuk menciptakan representasi akurat suatu data, keterhubungannya dan

batasan-batasannya.

Untuk mencapai tujuan ini, maka harus ditetapkan/diidentifikasi sekumpulan relasi.

Empat bentuk normal yang biasa digunakan yaitu, first normal form (1NF), second

normal form (2NF) dan third normal form (3NF), dan Boyce–Codd normal form (BCNF).

Berdasarkan pada functional dependencies antar atribut dalam relasi

Sebuah relasi dapat dinormalisasi kedalam bentuk tertentu untuk mengatasi

kemungkinan terjadinya pengulangan dari update yang tidak baik.

Normalisasi adalah suatu teknik untuk menghasilkan sekumpulan relasi dengan sifat-

sifat (properties) yang diinginkan, memenuhi kebutuhan data pada enterprise.

Data Redundancy

Tujuan utama dari desain database relasional adalah untuk mengelompokkan atribut-

atribut kedalam relasi-relasi sehingga meminimalisasi redundansi data dan mengurangi

penggunaan tempat penyimpanan yang dibutuhkan oleh sebuah relasi dasar.

Masalah-masalah yang terkait dengan redundansi dapat dijelaskan dengan

membandingkan relasi Staff dan Branch dengan relasi StaffBranch.

Page 124: MODUL PERKULIAHAN Basis Data - …fasilkom.mercubuana.ac.id/.../uploads/2017/10/Sistem-Basis-Data-TI.pdf · sebagai contohnya adalah laporan. ... 2014 4 Basis Data Pusat Bahan Ajar

 

2014 3 Basis Data Pusat Bahan Ajar dan eLearning   Tim Dosen http://www.mercubuana.ac.id

  

 

 

Relasi StaffBranch memiliki data redundan, yaitu detail dari branch dituliskan berulang-

ulang untuk setiap staff.

Sebaliknya, informasi mengenai branch muncul hanya satu kali pada relasi Branch dan

hanya branchNo saja yang diulang dalam relasi Staff, untuk merepresentasikan dimana

setiap staff tersebut bekerja.

Update Anomalies

Relasi yang mengandung informasi yang redundan dapat diakibatkan oleh update

anomalies.

Beberapa tipe dari update anomalies, diantaranya :

o Insertion: anomaly yang terjadi apabila terdapat penyisipan baris baru pada table,

(adanya PK yang kosong)

o Deletion: anomaly yang terjadi apabila terdapat penghapusan baris dari table,

(ada informasi yang semestinya tidak hilang menjadi hilang bersamaan

dihapusnya sebuah baris dalam tabel)

o Modification: anomaly yang terjadi apabila terdapat perubahan pada sebuah

baris saja, tanpa merubah sisa baris dengan definisi yang sama.

Page 125: MODUL PERKULIAHAN Basis Data - …fasilkom.mercubuana.ac.id/.../uploads/2017/10/Sistem-Basis-Data-TI.pdf · sebagai contohnya adalah laporan. ... 2014 4 Basis Data Pusat Bahan Ajar

 

2014 4 Basis Data Pusat Bahan Ajar dan eLearning   Tim Dosen http://www.mercubuana.ac.id

  

 

 

Pada contoh dari table staffBranch dapat dilihat anomaly-anomaly sebagai berikut:

o Anomaly insertion, apabila disisipkan sebuah baris staff baru, maka atribut

yang akan disisipkan hanya staffno, sname, posisition dan salary. Padahal

pada table tersebut PK adalah staffno dan Branchno. Maka disini terdapat

anomaly bahwa terdapat PK yang kosong.

o Anomaly deletion, apabila terdapat staff yang mengundurkan diri, yaitu Mary

Howe. Ketika menghapus informasi tentang Mary Howe, maka satu baris

akan ikut terhapus, demikian pula informasi tentang cabang yang ada di

Glasgow. Sehingga informasi cabang tidak lagi menyimpan informasi tentang

cabang Glasgow.

o Anomali update, apabila kita hendak mengganti informasi pada satu field.

Tetapi karena terdapat redundansi maka ketika diupdate hanya terjadi pada 1

baris saja, sedangkan baris-baris yang lain tidak ikut diupdate sehingga

menimbulkan inkonsistensi.

Untuk mengatasi anomalies ini dapat dilakukan decomposotion pada relasi dasar.

Terdapat dua sifat Decomposition yaitu :

Lossless-join

Memungkinkan kita menemukan suatu instance relasi dasar dari instance koresponden

dalam relasi yang lebih kecil.

Dependency Preservation Properties

Memungkinkan kita untuk mengadakan batasan pada relasi dasar dengan

menyediakan beberapa batasan pada relasi yang lebih kecil.

Functional Dependency

Merupakan konsep inti yang terkait dengan normalisasi.

Functional Dependency, menjelaskan relationship antar atribut-atribut dalam relasi.

Misalkan, jika A dan B adalah atribut dari suatu relasi R, B dikatakan Functionally

Dependent pada A (dinotasikan A --> B), jika setiap nilai A dihubungkan dengan tepat

satu nilai B. ( A dan B masing-masing dapat terdiri atas satu atau lebih atribut)

Page 126: MODUL PERKULIAHAN Basis Data - …fasilkom.mercubuana.ac.id/.../uploads/2017/10/Sistem-Basis-Data-TI.pdf · sebagai contohnya adalah laporan. ... 2014 4 Basis Data Pusat Bahan Ajar

 

2014 5 Basis Data Pusat Bahan Ajar dan eLearning   Tim Dosen http://www.mercubuana.ac.id

  

 

 

Functional Dependency merupakan sifat dari arti semantik suatu atribut dalam sebuah

relasi.

Direpresentasikan dalam diagram

Determinant dari functional dependency mengacu kepada atribut atau himpunan atribut

disebelah kiri anak panah.

Example - Functional Dependency

Page 127: MODUL PERKULIAHAN Basis Data - …fasilkom.mercubuana.ac.id/.../uploads/2017/10/Sistem-Basis-Data-TI.pdf · sebagai contohnya adalah laporan. ... 2014 4 Basis Data Pusat Bahan Ajar

 

2014 6 Basis Data Pusat Bahan Ajar dan eLearning   Tim Dosen http://www.mercubuana.ac.id

  

 

 

Karakteristik utama dari functional dependency yang digunakan dalam normalisasi :

Mempunyai relationship 1:1 antar atribut di sebelah kiri dan kanan dependency.

Saling terkait (Hold for all time)

Misal : staffNo sName dan sName staffNo

Nontrivial.

Kumpulan lengkap dari sebuah functional dependency untuk suatu relasi bisa sangat

besar.

Penting untuk menemukan pola pendekatan yang dapat mengurangi

himpunan/kumpulan tersebut untuk mendapatkan ukuran yang lebih mudah diatur.

Perlu untuk mengidentifikasi himpunan functional dependency (direpresentasikan oleh

X) untuk relasi yang lebih kecil daripada himpunan lengkap functional dependency

(direpresentasikan oleh Y) untuk relasi tersebut dan memiliki sifat disetiap functional

dependency pada Y dipenuhi dengan functional dependencies pada X.

Himpunan dari seluruh functional dependency yang dipenuhi dengan himpunan yang

diberikan dari functional dependencies X disebut closure X (dituliskan, X+).

Himpunan inference rules, disebut Armstrong’s axioms, menetapkan bagaimana

functional dependency yang baru dapat disimpulkan dari functional dependency yang

sudah ada.

Misalkan A, B, dan C merupakan subset dari atribut suatu relasi R. Maka Armstrong’s

axiom-nya adalah :

o Reflexivity, jika B merupakan subset dari A, then A B

o Augmentation, jika A B, maka A,C B, C

o Transitivity, jika A B dan B C, maka A C

Ketergantungan Fungsional Penuh

Ketergantungan fungsional penuh berarti bahwa jika ada atribut B yang tergantung secara

fungsinal terhadap A dan tidak kepada sebagian atau turunan dari atribut A. Dinotasikan

sebagai A B

Page 128: MODUL PERKULIAHAN Basis Data - …fasilkom.mercubuana.ac.id/.../uploads/2017/10/Sistem-Basis-Data-TI.pdf · sebagai contohnya adalah laporan. ... 2014 4 Basis Data Pusat Bahan Ajar

 

2014 7 Basis Data Pusat Bahan Ajar dan eLearning   Tim Dosen http://www.mercubuana.ac.id

  

 

 

Artinya bahwa atribut B bergantung penuh pada atribut A, dimana A adalah sebagai

determinannya. Jika A adalah primary key atribut yang komposit (lebih dari 1), maka atribut

yang dinyatakan sebagai tergantung penuh, harus tergantung kepada atribut primary key

komposit tersebut (lebih dari 1).

Contoh :

Dari tabel diatas dapat diketahui bahwa Primary key nya adalah No-pesanan dan No-pem.

Primary

key ini adalah composite primary key yang berarti perimary key lebih dari 1. Berarti semua

atribut yang non primary key harus bergantung penuh kepada keduanya.

No-pesanan, No-pem No_bar

No-pesanan, No-pem jumlah

Dari penjelasan diatas dapat dikatehui bahwa nomor pemesanan dan no pemesan,

keduanya menentukan nomor barang yang dipesan dan keduanya juga menentukan berapa

jumlah pesanan. Sehingga atribut yang bukan primary key semuanya bergantung pada

primary key-nya.

No_pesanan No_pem No_bar Jml

P00101122013 AM234 K934 25

P00201122013 AM124 K934 10

P00301122013 AJ546 K931 120

P03203092013 AF122 K931 125

P01204052013 AF122 K934 13

Page 129: MODUL PERKULIAHAN Basis Data - …fasilkom.mercubuana.ac.id/.../uploads/2017/10/Sistem-Basis-Data-TI.pdf · sebagai contohnya adalah laporan. ... 2014 4 Basis Data Pusat Bahan Ajar

 

2014 8 Basis Data Pusat Bahan Ajar dan eLearning   Tim Dosen http://www.mercubuana.ac.id

  

 

 

Ketergantungan Fungsional Parsial (sebagian)

Ketergantungan fungsional parsial artinya bahwa dalam sebuah tabel ada atribut atau

sebagian atribut yang tidak bergantung sepenuhnya kepada primary key di tabel tersebut.

Hal ini biasa terjadi jika pada sebuah tabel terdiri dari lebih 1 primary key (composite primary

key). Misalkan jika terdapat A, B C, D. Dan A E. Sehingga terdapat atribut E yang

hanya bergantung kepada sebagian atribut primary key yaitu atribut A saja. Lihat gambar

dibawah:

Jika tabel seperti diatas, maka dapat dirtentukan sebagai primary key bahwa nomor

pesanan dan nomor pemesan menentukan semua atribut yang ada pada tabel tersebut.

Tetapi kenyataannya bahwa ada atribut Na_pem yang hanya tergantung pada No_pem dan

tidak tergantung pada No_pesanan. Sehingga terjadi ketergantungan parsial antara Na_pem

kepada No_pem.

Ketergantungan Fungsional Transitif

Ketergantungan fungsional transitif artinya jika pada sebuah tabel terdapat atribut yang tidak

hanya tergantung kepada primary keynya, tetapi kepada atribut lain yang bukann kunci.

Sehingga keadaan tersebut dapat diidentifikasikan dengan notasi:

A B, B C

No_pesanan No_pem Na_pem No_bar Na_bar Jml

P00101122013 AM234 Anggita K934 Mouse Optik 25

P00201122013 AM124 Ronny K934 Mouse Optik 10

P00301122013 AJ546 Jasmine K931 Monitor LCD 120

P03203092013 AF122 Alfina K931 Monitor LCD 125

P01204052013 AF122 Alfina K934 Mouse Optik 13

Page 130: MODUL PERKULIAHAN Basis Data - …fasilkom.mercubuana.ac.id/.../uploads/2017/10/Sistem-Basis-Data-TI.pdf · sebagai contohnya adalah laporan. ... 2014 4 Basis Data Pusat Bahan Ajar

 

2014 9 Basis Data Pusat Bahan Ajar dan eLearning   Tim Dosen http://www.mercubuana.ac.id

  

 

 

Perhatikan tabel contoh dibawah. Terdapat atribut nama barang yang tergantung pada

kedua atribut kunci primer. Tetapi pada kenyataannya atribut nama barang ini bergantung

kepada no_barang, sehingga terdapat ketergantungan transitif terhadap no_barang yang

juga tergantung kepada atribut kunci primer yaitu No_pemesanan dan No_pemesan.

No_pesanan, No_pem No_bar

No_bar Na_bar

Sehingga ada ketergantungan transitif dari No_pesanan, No_pem No_bar Na_bar

No_pesanan No_pem No_bar Na_bar Jml

P00101122013 AM234 K934 Mouse Optik 25

P00201122013 AM124 K934 Mouse Optik 10

P00301122013 AJ546 K931 Monitor LCD 120

P03203092013 AF122 K931 Monitor LCD 125

P01204052013 AF122 K934 Mouse Optik 13

Page 131: MODUL PERKULIAHAN Basis Data - …fasilkom.mercubuana.ac.id/.../uploads/2017/10/Sistem-Basis-Data-TI.pdf · sebagai contohnya adalah laporan. ... 2014 4 Basis Data Pusat Bahan Ajar

 

2014 10 Basis Data Pusat Bahan Ajar dan eLearning   Tim Dosen http://www.mercubuana.ac.id

  

 

 

Latihan

Perhatikan tabel dibawah ini

1. Dari tabel ini tentukan anomali yang terjadi (insert, update, delete)

2. Dari tabel ini tentukan primary key-nya

3. Tentukan ketergantungan fungsionalnya

4. Tentukan juga apakah ada ketergantungan parsial dan ketergantungan transitif

 

 

 

Daftar Pustaka

1. Database system: A Practical approach to design, implementation and management 2. Sistem Manajemen Basis Data 3. Oracle database 10g: SQL Fundamentals I

Page 132: MODUL PERKULIAHAN Basis Data - …fasilkom.mercubuana.ac.id/.../uploads/2017/10/Sistem-Basis-Data-TI.pdf · sebagai contohnya adalah laporan. ... 2014 4 Basis Data Pusat Bahan Ajar

 2014 1 Basis Data Pusat Bahan Ajar dan eLearning   Tim Dosen http://www.mercubuana.ac.id

   

MODUL PERKULIAHAN

Basis Data

Proses Normalisasi

Fakultas  Program Studi  Tatap Muka  Kode MK  Disusun Oleh 

Ilmu Komputer  Teknik Informatika 

11 87031  Tim Dosen 

 

Abstract Kompetensi Modul ini berisi materi tentang proses dan langkah-langkah dari teknik normalisasi

Mahasiswa mampu menggunakan teknik normalisasi untuk model data tabel dari sebuah studi kasus

Page 133: MODUL PERKULIAHAN Basis Data - …fasilkom.mercubuana.ac.id/.../uploads/2017/10/Sistem-Basis-Data-TI.pdf · sebagai contohnya adalah laporan. ... 2014 4 Basis Data Pusat Bahan Ajar

 2014 2 Basis Data Pusat Bahan Ajar dan eLearning   Tim Dosen http://www.mercubuana.ac.id

   

Proses Normalisasi

Suatu teknik formal untuk menganalisa relasi berdasarkan primary key atau

candidate key-nya dan functional dependency antar atribut.

Dilakukan dalam beberapa langkah. Setiap langkah mengacu ke bentuk normal

tertentu, sesuai dengan sifat yang dimilikinya.

Setelah normalisasi diproses, relasi secara bertahap menjadi lebih terbatas/kuat

bentuk formatnya dan juga mengurangi tindakan update yang anomali.

Relationship Between Normal Forms

Unnormalized Form (UNF)

Merupakan suatu table yang berisikan satu atau lebih group/data yang berulang.

Membuat tabel unnormalized yaitu dengan memindahkan data dari sumber

informasi (Contoh : Form) kedalam format tabel dengan baris dan kolom.

First Normal Form (1NF)

Merupakan sebuah relasi dimana setiap irisan antara baris dan kolom berisikan satu

dan hanya satu nilai.

UNF ke 1NF

Tunjuk satu atau sekumpulan atribut sebagai kunci untuk tabel

unnormalized.

Identifikasikan groups yang berulang dalam tabel unnormalized yang

berulang untuk kunci atribut.

Hapus group yang berulang dengan cara :

Page 134: MODUL PERKULIAHAN Basis Data - …fasilkom.mercubuana.ac.id/.../uploads/2017/10/Sistem-Basis-Data-TI.pdf · sebagai contohnya adalah laporan. ... 2014 4 Basis Data Pusat Bahan Ajar

 2014 3 Basis Data Pusat Bahan Ajar dan eLearning   Tim Dosen http://www.mercubuana.ac.id

   

1. Masukkan data yang semestinya kedalam kolom yang kosong pada baris

yang berisikan data yang berulang (flattening the table), atau dengan

cara

2. Menggantikan data yang ada dengan copy dari kunci atribut yang

sesungguhnya kedalam relasi terpisah.

Contoh:

Contoh sederhana DreamHome lease. Seorang klien bernama John Kay

menyewa properti di Glasgow yang dimiliki oleh Tina Murphy. Dalam kasus ini

diasumsikan seorang klien dapat menyewa sebuah properti hanya satu kali dan

tidak dapat menyewa lebih dari satu pada saat yang bersamaan.

Sample data yang digunakan diambil dari 2 kontrak dari 2 klien yang berbeda yaitu

John Kay dan Aline Stewart yang diubah kedalam bentuk tabel sbb, disebut dengan

unnormalized table :

ClientRental

clientNo

cName propertyNo

pAddress rentStart rentFinish rent ownerNo

oName

CR76 John Kay PG4 PG16

6 Lawrence St, Glasgow 5 Novar Dr, Glasgow

1-Jul-00 1-Sep-01

31-Aug-01 1-sep-02

350 450

CO40 CO39

Tina Murphy Tony Shaw

CR56 Aline Stewart

PG4 PG36 PG16

6 Lawrence St, Glasgow 2 Manor Rd, Glasgow 5 Novar Dr, Glasgow

1-Sep-99 10-Oct-00 1-Nov-02

10-Jun-00 1-Dec-01 10_Aug-03

350 375 450

CO40 CO93 CO93

Tina Murphy Tony Shaw Tony Shaw

ClentRental (Unnormalized table)

Page 135: MODUL PERKULIAHAN Basis Data - …fasilkom.mercubuana.ac.id/.../uploads/2017/10/Sistem-Basis-Data-TI.pdf · sebagai contohnya adalah laporan. ... 2014 4 Basis Data Pusat Bahan Ajar

 2014 4 Basis Data Pusat Bahan Ajar dan eLearning   Tim Dosen http://www.mercubuana.ac.id

   

Tentukan atribut kunci untuk tabel unnormalized ClientRental , yaitu clientNo.

Tentukan group/kelompok yang berulang untuk setiap clientNo, yaitu :

Group berulang = (properyNo, pAddress, rentStart, rentFinish, rent,

ownerNo, oName)

Untuk mengubah tabel unnormalized menjadi 1NF, maka harus ditetapkan terdapat

1 nilai untuk setiap kolom dan baris. Dapat dicapai dengan memindahkan group

yang berulang. Sehingga menghasilkan 1NF sbb :

ClientRental

clientNo

cName propertyNo

pAddress rentStart rentFinish rent ownerNo

oName

CR76 John Kay PG4 6 Lawrence St, Glasgow

1-Jul-00 31-Aug-01 350 CO40 Tina Murphy

CR76 John Kay PG16 5 Novar Dr, Glasgow

1-Sep-01 1-sep-02 450 CO39 Tony Shaw

CR56 Aline Stewart

PG4 6 Lawrence St, Glasgow

1-Sep-99 10-Jun-00 350

CO40 Tina Murphy

CR56 Aline Stewart

PG36 2 Manor Rd, Glasgow

10-Oct-00 1-Dec-01 375

CO93 Tony Shaw

CR56 Aline Stewart

PG16 5 Novar Dr, Glasgow

1-Nov-02 10_Aug-03 450 CO93 Tony Shaw

1NF ClientRental Relation

Kemudian tentukan candidate key untuk relasi ClientRental dalam bentuk

Composite Key yaitu (clienNo, propertyNo), (clientNo, rentStart), dan (propertyNo,

rentFinish). Ketiga kombinasi tadi dibandingkan dan dipilih (clientNo, propertyNo)

sebagai primary key. Untuk lebih jelas primary key diletakan disebelah kiri, sbb

:

ClientRental

clientNo

propertyNo

cName pAddress rentStart rentFinish rent ownerNo

oName

CR76 PG4 John Kay 6 Lawrence St, Glasgow

1-Jul-00 31-Aug-01 350 CO40 Tina Murphy

CR76 PG16 John Kay 5 Novar Dr, Glasgow

1-Sep-01 1-sep-02 450 CO39 Tony Shaw

CR56 PG4 Aline Stewart

6 Lawrence St, Glasgow

1-Sep-99 10-Jun-00 350

CO40 Tina Murphy

CR56 PG36 Aline Stewart

2 Manor Rd, Glasgow

10-Oct-00 1-Dec-01 375

CO93 Tony Shaw

CR56 PG16 Aline Stewart

5 Novar Dr, Glasgow

1-Nov-02 10_Aug-03 450 CO93 Tony Shaw

Sehingga relasi ClientRental didefinisikan :

Page 136: MODUL PERKULIAHAN Basis Data - …fasilkom.mercubuana.ac.id/.../uploads/2017/10/Sistem-Basis-Data-TI.pdf · sebagai contohnya adalah laporan. ... 2014 4 Basis Data Pusat Bahan Ajar

 2014 5 Basis Data Pusat Bahan Ajar dan eLearning   Tim Dosen http://www.mercubuana.ac.id

   

ClientRental (clientNo, propertyNo, cName, pAddress, rentStart, rentFinish, rent,

ownerNo, oName)

Second Normal Form (2NF)

Berdasarkan pada konsep full functional dependency, mengindikasikan bahwa, jika

A dan B merupakan atribut dari sebuah relasi, B dikatakan fully dependent terhadap

A jika B functionally dependent pada A tetapi tidak pada proper subset dari A.

2NF – merupakan sebuah relasi dalam 1NF dan setiap atribut non-primary-key

bersifat fully functionally dependent pada primary key.

1NF ke 2 NF

Identifikasikan primary key untuk relasi 1NF.

Identifikasikan functional dependency dalam relasi.

Jika terdapat partial dependency terhadap primary key, maka hapus

dengan menempatkannya dalam relasi yang baru bersama dengan

salinan determinan-nya.

Contoh

Direpresentasikan functional dependency (fd1 – fd6) untuk relasi ClientRental

dengan (clientNo, propertyNo) sebagai primary key. Walaupun ClientRental memiliki

3 candidate key, tetapi yang diperhatikan hanya keterkaitan terhadap primaty key

saja, karena menggunakan definisi dari 2 NF yang berhubungan hanya dengan

primary key dari relasi yang bersangkutan. Sedangkan candidate key yang lain akan

dipergunakan pada saat definisi umum untuk 2NF.

Pada saat identifikasi functional dependency yang ada, dimulai dengan

memeriksa apakah terdapat partial dependency terhadap primary key. Atribut (cName)

partially dependent pada primary key, yaitu hanya atribut clientNo (fd2), atribut

(pAddress, rent, ownerNo, oName) partially dependent pada primary key, yaitu hanya

atribut propertyNo (fd3), atribut (rentStart dan rentFinish) fully dependent pada seluruh

primary key, yaitu clientNo dan propertyNo (fd1).

Identifikasi partial dependency pada relasi ClientRental mengindikasikan bahwa

relasi tersebut tidak termasuk dalam 2NF. Untuk mengubah relasi ClientRental kedalam

2NF diperlukan pembuatan relasi baru dimana seluruh atribut non-primary-key

dihapus/digantikan dengan atribut yang fully dependen. Sehingga bentuk 2NF menjadi

:

Page 137: MODUL PERKULIAHAN Basis Data - …fasilkom.mercubuana.ac.id/.../uploads/2017/10/Sistem-Basis-Data-TI.pdf · sebagai contohnya adalah laporan. ... 2014 4 Basis Data Pusat Bahan Ajar

 2014 6 Basis Data Pusat Bahan Ajar dan eLearning   Tim Dosen http://www.mercubuana.ac.id

   

Client

clientN

o

cName

CR76 John Kay

CR56 Aline Stewart

Rental

clientN

o

property

No

rentStart rentFinis

h

CR76 PG4 1-Jul-00 31-Aug-01

CR76 PG16 1-Sep-01 1-sep-02

CR56 PG4 1-Sep-99 10-Jun-00

CR56 PG36 10-Oct-00 1-Dec-01

CR56 PG16 1-Nov-02 10_Aug-

03

propertyOwner

property

No

pAddress rent owner

No

oName

PG4 6 Lawrence St, Glasgow 350 CO40 Tina

Murphy

PG16 5 Novar Dr, Glasgow 450 CO39 Tony Shaw

PG36 2 Manor Rd, Glasgow 375 CO93 Tony Shaw

2NF relations derived from the ClentRental relation

Karena setiap atribut non-primary-key bersifat fully dependent pada primary key dalam

relasi, maka relasi-relasi diatas mempunyai bentuk :

Client (clientNo, cName)

Rental (clientNo, propertyNo, rentStart, rentFinish)

PropertyOwner (propertyNo, pAddress, rent, ownerNo, oName)

Third Normal Form (3NF)

Berdasarkan pada konsep transitive dependency, yaitu suatu kondisi dimana A, B

dan C merupakan atribut dari sebuah relasi, maka jika A à B dan B à C, maka C

transitively dependent pada A melalui B. (menegaskan bahwa A tidak functionally

dependent pada B atau C).

3NF – Adalah sebuah relasi dalam 1NF dan 2NF dan dimana tidak terdapat atribut

non-primary-key attribute yang bersifat transitively dependent pada primary key.

Page 138: MODUL PERKULIAHAN Basis Data - …fasilkom.mercubuana.ac.id/.../uploads/2017/10/Sistem-Basis-Data-TI.pdf · sebagai contohnya adalah laporan. ... 2014 4 Basis Data Pusat Bahan Ajar

 2014 7 Basis Data Pusat Bahan Ajar dan eLearning   Tim Dosen http://www.mercubuana.ac.id

   

2NF ke 3NF :

o Identifikasikan primary key dalam relasi 2NF.

o Identifikasikan functional dependency dalam relasi.

o Jika terdapat transitive dependency terhadap primary key, hapus dengan

menempatkannya dalam relasi yang baru bersama dengan salinan

determinan-nya.

Contoh

Functional dependency yang ada dalam relasi Client, Rental dan PropertyOwner,

yang dihasilkan dari contoh sebelumnya, sbb :

Client

fd2 clentNo cName (Partial Dependency)

Rental

fd1 clienNo, propertyNo rentStart, rentFinish (Primary Key)

fd5’ clientNo, rentStart propertyNo, rentFinish (Candidate Key)

fd6’ properyNo, rentStart clientNo, rentFinish (Candidate Key)

PropertyOwner

fd3 propertyNo pAddress, rent, ownerNo, oName(Partial Dependency)

fd4 ownerNo oName (Transitive Dependency)

Seluruh atribut non-primary key yang terdapat pada relasi client dan Rental bersifat

functionally dependent pada masing-masing primary key-nya dan tidak memiliki

transitive dependency yang dibutuhkan dalam 3NF. fd yang diberi label tanda kutip (fd5’

dan fd6’) menandakan bahwa dependency yang terdapat didalamnya telah

dibandingkan sebelumnya (bandingkan dgn fd1).

Seluruh non-primary-key pada relasi PropertyOwner bersifat functionally

dependen pada primary key-nya, terkecuali oName yang juga dependent pada

ownerNo. Transitive dependency adalah jika suatu atribut dependent pada satu atau

lebih non-primary-key.

Untuk merubah relasi PropertyOwner kedalam bentuk 3NF, harus

menghilangkan transitive dependencies dengan membuat 2 relasi baru yaitu

Page 139: MODUL PERKULIAHAN Basis Data - …fasilkom.mercubuana.ac.id/.../uploads/2017/10/Sistem-Basis-Data-TI.pdf · sebagai contohnya adalah laporan. ... 2014 4 Basis Data Pusat Bahan Ajar

 2014 8 Basis Data Pusat Bahan Ajar dan eLearning   Tim Dosen http://www.mercubuana.ac.id

   

PropertyForRent dan Owner. Sehingga relasi yang baru tersebut mempunyai bentuk

sbb :

PropertyForRent (propertyNo, pAddress, rent, ownerNo)

Owner (ownerNo, oName)

Rental

clientNo propertyNo rentStart rentFinish

CR76 PG4 1-Jul-00 31-Aug-01

CR76 PG16 1-Sep-01 1-sep-02

CR56 PG4 1-Sep-99 10-Jun-00

CR56 PG36 10-Oct-00 1-Dec-01

CR56 PG16 1-Nov-02 10_Aug-03

PropertyForRent

propertyNo pAddress rent ownerNo

PG4 6 Lawrence St, Glasgow 350 CO40

PG16 5 Novar Dr, Glasgow 450 CO39

PG36 2 Manor Rd, Glasgow 375 CO93

Client

clientNo cName

CR76 John Kay

CR56 Aline Stewart

Owner

ownerNo oName

CO40 Tina Murphy

CO39 Tony Shaw

3NF relations derived from the ClientRental Relation

Page 140: MODUL PERKULIAHAN Basis Data - …fasilkom.mercubuana.ac.id/.../uploads/2017/10/Sistem-Basis-Data-TI.pdf · sebagai contohnya adalah laporan. ... 2014 4 Basis Data Pusat Bahan Ajar

 2014 9 Basis Data Pusat Bahan Ajar dan eLearning   Tim Dosen http://www.mercubuana.ac.id

   

Definisi umum 2NF dan 3NF

Second normal form (2NF)

Suatu relasi yang ada dalam 1NF dan setiap atribut non-primary-key bersifat fully

functionally dependent pada candidate key.

Third normal form (3NF)

Suatu relasi yang ada dalam 1NF dan 2NF dan dimana tidak terdapat atribut non-

primary-key attribute yang bersifat transitively dependent pada candidate key.

Langkah-langkah Normalisasi

Unnormalized

Menghilangkan group berulang sehingga setiap irisan baris dan kolom hanya

berisi satu dan hanya satu nilai

Bentuk 1 NF

Menghilangkan partial dependency terhadap primary key, sehingga didapat

atribut non primary key yang fully functional dependent terhadap primary

key-nya

Bentuk 2 NF

Menghilangkan transitive dependency

Bentuk 3 NF

Jika dan hanya jika setiap determinan merupakan candidate key

Bentuk BCNF

Page 141: MODUL PERKULIAHAN Basis Data - …fasilkom.mercubuana.ac.id/.../uploads/2017/10/Sistem-Basis-Data-TI.pdf · sebagai contohnya adalah laporan. ... 2014 4 Basis Data Pusat Bahan Ajar

 2014 10 Basis Data Pusat Bahan Ajar dan eLearning   Tim Dosen http://www.mercubuana.ac.id

   

Latihan

Perhatikan kartu pengobatan pasien dibawah ini: 

 

 

 

 

 

 

 

 

 

 

 

 

Dari kartu pengobatan diatas, anda diminta untuk mengkonversinya menjadi tabel‐tabel yang 

terbentuk dengan teknik normalisasi. 

 

 

Daftar Pustaka

1. Database system: A Practical approach to design, implementation and management 2. Sistem Manajemen Basis Data 3. Oracle database 10g: SQL Fundamentals I

Page 142: MODUL PERKULIAHAN Basis Data - …fasilkom.mercubuana.ac.id/.../uploads/2017/10/Sistem-Basis-Data-TI.pdf · sebagai contohnya adalah laporan. ... 2014 4 Basis Data Pusat Bahan Ajar

 2014 1 Basis Data Pusat Bahan Ajar dan eLearning   Tim Dosen http://www.mercubuana.ac.id

   

MODUL PERKULIAHAN

Basis Data

ALJABAR RELASIONAL KALKULUS RELASIONAL

Fakultas  Program Studi  Tatap Muka  Kode MK  Disusun Oleh 

Ilmu Komputer  Teknik Informatika 

12 87031  Tim Dosen 

 

Abstract Kompetensi Modul ini berisi materi tentang bahasa procedural aljabar relasional dan kalkulus relasional

Mahasiswa mampu memahami konsep aljabar relasional dan mampu menjawab pertanyaan queri dalam bentuk aljabar relasional dan kalkulus relasional

Page 143: MODUL PERKULIAHAN Basis Data - …fasilkom.mercubuana.ac.id/.../uploads/2017/10/Sistem-Basis-Data-TI.pdf · sebagai contohnya adalah laporan. ... 2014 4 Basis Data Pusat Bahan Ajar

 2014 2 Basis Data Pusat Bahan Ajar dan eLearning   Tim Dosen http://www.mercubuana.ac.id

   

Relational Algebra

Pendahuluan

o Aljabar relasional dan kalkulus relasional merupakan bahasa formal yang berhubungan

dengan model relasional.

o Secara informal, aljabar relasional adalah bahasa prosedural (high-level) dan kalkulus

relasional adalah bahasa non-procedural.

o Tetapi, secara formal keduanya ekuivalen satu dengan lainnya.

o Sebuah bahasa yang memproduksi relasi yang dihasilkan dengan menggunakan

kalkulus relasional disebut relationally complete.

Aljabar Relasional

Aljabar relasional adalah kumpulan operasi terhadap relasi. Setiap operasi

menggunakan satu atau lebih relasi untuk menghasilkan satu relasi yang baru.

o Operasi aljabar relasional yang dilakukan pada satu atau lebih relasi untuk

mendefinisikan relasi lainnya tanpa mengubah relasi yang asli.

o Operand dan hasilnya merupakan relasi, sehingga output suatu operasi dapat menjadi

input bagi operasi yang lain.

o Memungkinkan suatu operasi bertingkat (nested) (seperti aritmatika), hal ini disebut

closure.

o terdapat 5 operasi dasar pada aljabar relasional: Selection, Projection, Cartesian

product, Union, dan Set Difference. Menampilkan seluruh operasi pemanggilan data

yang dibutuhkan.

o Operasi lainnya : Join, Intersection, dan Division operations, yang juga dapat

diekspresikan dengan menggunakan operasi dasar.

o Operasi aljabar Relasional

Page 144: MODUL PERKULIAHAN Basis Data - …fasilkom.mercubuana.ac.id/.../uploads/2017/10/Sistem-Basis-Data-TI.pdf · sebagai contohnya adalah laporan. ... 2014 4 Basis Data Pusat Bahan Ajar

 2014 3 Basis Data Pusat Bahan Ajar dan eLearning   Tim Dosen http://www.mercubuana.ac.id

   

Operasi dasar dalam Aljabar Relasional

Operasi Kompleks dalam Aljabar Relasional

Page 145: MODUL PERKULIAHAN Basis Data - …fasilkom.mercubuana.ac.id/.../uploads/2017/10/Sistem-Basis-Data-TI.pdf · sebagai contohnya adalah laporan. ... 2014 4 Basis Data Pusat Bahan Ajar

 2014 4 Basis Data Pusat Bahan Ajar dan eLearning   Tim Dosen http://www.mercubuana.ac.id

   

Contoh Kasus: Dreamhome Database

Registration

ClentNo BranchNo StaffNo Data_joined

CR76 B005 SL41 2-Jan-01

CR56 B003 SG37 11-Apr-00

CR74 B003 SG37 16-Nov-99

CR62 B007 SA9 7-Mar-00

Viewing

ClientNo PropertyNo View_Date Comment

CR56 PA14 24-May-01 Too Small

CR76 PG4 20-Apr-01 Too Remote

CR56 PG4 26-May-01

CR62 PA14 14-May-01 No Dining Room

CR56 PG36 28-Apr-01

Client

ClientNo fName lName TelNo PrefType MaxRent

CR76 John Kay 0207-774-5632 Flat 425

CR56 Aline Stewart 0141-848-1825 Flat 350

CR74 Mike Ritchie 01475-392178 House 750

CR62 Mary Tregear 01224-196720 Flat 600

Private Owner

OwnerNo fName lName Address TelNo

CO46 Joe Keogh 2 Fergus Dr, Abeerdeen AB2 7SX 01224-861212

CO87 Carol Farrel 6 Achray St, Glasgow G32 9DX 0141-357-7419

CO40 Tina Murphy 63 Well St, Glasgow G42 0141-943-1728

CO93 Tony Shaw 12 Park Pl, Glasgow G4 0QR 0141-225-7025

PropertyForRent

Proper

tyNo

Street City PostCode Type Rooms Rent Owner

No

Staff

No

Branch

No

PA14 16 Holhead Aberdeen AB7 5SO House 6 650 CO46 SA9 B007

PL94 6 Argyll St London NW2 Flat 4 400 CO87 SL41 B005

PG4 6 Lawrence St Glasgow G11 9QX Flat 3 350 CO40 - B003

PG36 2 Manor Rd Glasgopw G32 4QX Flat 3 375 CO93 SG37 B003

PG21 18 Dale Rd Glasgow G12 House 5 600 CO87 SG37 B003

PG16 5 Novar Dr Glasgow G12 9AX Flat 4 450 CO93 SG14 B003

Page 146: MODUL PERKULIAHAN Basis Data - …fasilkom.mercubuana.ac.id/.../uploads/2017/10/Sistem-Basis-Data-TI.pdf · sebagai contohnya adalah laporan. ... 2014 4 Basis Data Pusat Bahan Ajar

 2014 5 Basis Data Pusat Bahan Ajar dan eLearning   Tim Dosen http://www.mercubuana.ac.id

   

Branch

BranchNo Street City PostCode

B005 22 Deer Rd London SW1 4EH

B007 16 Argyll St Aberdeen AB2 3SU

B003 163 Main St Glasgow G11 9QX

B004 32 Manse Rd Bristol BS99 1NZ

B002 56 Clover Dr London NW10 6EU

Staff

StaffNo fName lName Position Sex DOB Salary BranchNo

SL21 John White Manager M 1-Oct-45 30000 B005

SG37 Ann Beech Assistant F 10-Nov-60 12000 B003

SG14 David Ford Supervisor M 24-Mar-58 18000 B003

SA9 Mary Howe Assistant F 19-Feb-70 9000 B007

SG5 Susan Brand Manager F 3-Jun-40 24000 B003

SL41 Julie Lee Assistant F 13-Jun-65 9000 B005

Selection(orRestriction)

predicate (R)

- Operasi pada relasi tunggal, dan menghasilkan relasi yang berisikan baris

(tuple) yang sesuai dengan syarat yang telah ditentukan (predicate).

Contoh :

Buatlah daftar staf dengan gaji > £10,000.

salary > 10000 (Staff)

Projection

col1, . . . , coln(R)

- Operasi pada relasi tunggal R dan menghasilkan relasi yang berisikan subset

vertical (kolom) dari R, Menampilkan isi atribut dan menghilangkan duplikasi.

Contoh :

Buatlah daftar gaji seluruh staff, yang terdiri dari staffNo, fName, lName, dan salary.

Page 147: MODUL PERKULIAHAN Basis Data - …fasilkom.mercubuana.ac.id/.../uploads/2017/10/Sistem-Basis-Data-TI.pdf · sebagai contohnya adalah laporan. ... 2014 4 Basis Data Pusat Bahan Ajar

 2014 6 Basis Data Pusat Bahan Ajar dan eLearning   Tim Dosen http://www.mercubuana.ac.id

   

staffNo, fName, lName, salary(Staff)

Union R S

- Penggabungan (Union) dua relasi, R dan S, menghasilkan relasi yang

berisikan semua tuple dari R, dan/atau S, dan duplikasi akan

dieliminasi/dihilangkan.

- Atribut ( R ) = Atribut ( S ) .

Jika R dan S memiliki sejumlah tuple I dan J , maka hasil tupel dari union keduanya

max (I + J).

Contoh :

Tampilkan seluruh kota dimana terdapat kantor cabang dan property untuk

disewakan

city(Branch) city(PropertyForRent)

Page 148: MODUL PERKULIAHAN Basis Data - …fasilkom.mercubuana.ac.id/.../uploads/2017/10/Sistem-Basis-Data-TI.pdf · sebagai contohnya adalah laporan. ... 2014 4 Basis Data Pusat Bahan Ajar

 2014 7 Basis Data Pusat Bahan Ajar dan eLearning   Tim Dosen http://www.mercubuana.ac.id

   

SetDifference R – S

- Menghasilkan relasi yang terdiri dari tuple pada relasi R,yang tidak ada pada

relasi S.

- Atribut ( R ) = Atribut ( S ).

Contoh :

Tampilkan seluruh kota dimana terdapat kantor cabang tetapi tidak terdapat property

untuk disewakan.

city(Branch) – city(PropertyForRent)

Intersection R S

- Menghasilkan relasi yang terdiri dari kumpulan seluruh tuple yang ada pada

relasi R maupun S.

- Atribut ( R ) = Atribut ( S )

Dapat dihasilkan dengan menggunakan operasi dasar :

R S = R – (R – S)

Contoh :

Tampilkan seluruh kota yang mempunyai kantor cabang dan sedikitnya 1 property

untuk disewakan.

city(Branch) city(PropertyForRent)

Page 149: MODUL PERKULIAHAN Basis Data - …fasilkom.mercubuana.ac.id/.../uploads/2017/10/Sistem-Basis-Data-TI.pdf · sebagai contohnya adalah laporan. ... 2014 4 Basis Data Pusat Bahan Ajar

 2014 8 Basis Data Pusat Bahan Ajar dan eLearning   Tim Dosen http://www.mercubuana.ac.id

   

Cartesianproduct R X S

- Menghasilkan relasi yang merupakan urutan (concatenation) dari setiap tuple

pada relasi R dengan setiap tuple pada relasi S.

Contoh :

Tampilkan nama dan komentar seluruh klien yang telah melihat property yang

disewakan.

(clientNo, fName, lName(Client)) X (clientNo, propertyNo, comment (Viewing))

Contoh Cartesian Product dan Selection:

Gunakan operasi selection untuk menampilkan tuple klien dimana, Client.clientNo =

Viewing.clientNo.

Client.clientNo = Viewing.clientNo((clientNo, fName, lName(Client)) (clientNo, propertyNo,

comment(Viewing)))

Page 150: MODUL PERKULIAHAN Basis Data - …fasilkom.mercubuana.ac.id/.../uploads/2017/10/Sistem-Basis-Data-TI.pdf · sebagai contohnya adalah laporan. ... 2014 4 Basis Data Pusat Bahan Ajar

 2014 9 Basis Data Pusat Bahan Ajar dan eLearning   Tim Dosen http://www.mercubuana.ac.id

   

Cartesian product dan Selection dapat diganti dengan operasi tunggal, Join.

Join Operation

Join merupakan turunan dari operasi Cartesian product.

Equivalen dengan fungsi Selection, menggunakan predikat join sebagai fungsi

selection pada Cartesian product dari dua buah relasi.

Merupakan operasi tersulit untuk diimplementasikan secara efisien pada RDBMS

dan merupakan salah satu alasan mengapa RDBMS memiliki masalah-masalah.

Jenis-jenis operasi join.

Theta join

Equijoin (a particular type of Theta join)

Natural join

Outer join

Semijoin

Thetajoin(‐join)

R FS

Mendefinisikan relasi yang terdiri dari tuple-tuple yang memenuhi syarat predikat F

dari Cartesian product relasi R dan S.

Predikat F yaitu bentuk dari R.ai S.bi dimana dapat berupa operator pembanding

(<, , >, , =, ).

Theta join dapat dituliskan dengan menggunakan operasi dasar Selection dan

operasi Cartesian product.

R FS = F(R S)

Page 151: MODUL PERKULIAHAN Basis Data - …fasilkom.mercubuana.ac.id/.../uploads/2017/10/Sistem-Basis-Data-TI.pdf · sebagai contohnya adalah laporan. ... 2014 4 Basis Data Pusat Bahan Ajar

 2014 10 Basis Data Pusat Bahan Ajar dan eLearning   Tim Dosen http://www.mercubuana.ac.id

   

Contoh - Equijoin

Tampilkan nama dan komentar semua klien yang telah melihat property untuk

disewakan.

(clientNo,fName,lName(Client)) Client.clientNo=Viewing.clientNo(clientNo,propertyNo,

comment(Viewing))

Naturaljoin

R S

Equijoin dari dua relasi R dan S untuk seluruh atribut x. Perulangan akan dieliminasi

dari hasil akhir.

Contoh - Natural join

Tampilkan nama dan komentar seluruh klien yang telah melihat property untuk

disewakan.

(clientNo, fName, lName(Client)) (clientNo, propertyNo, comment(Viewing))

Page 152: MODUL PERKULIAHAN Basis Data - …fasilkom.mercubuana.ac.id/.../uploads/2017/10/Sistem-Basis-Data-TI.pdf · sebagai contohnya adalah laporan. ... 2014 4 Basis Data Pusat Bahan Ajar

 2014 11 Basis Data Pusat Bahan Ajar dan eLearning   Tim Dosen http://www.mercubuana.ac.id

   

Outerjoin Untuk menampilkan baris pada relasi yang dihasilkan, dimana baris tersebut tidak

memiliki nilai yang cocok (matching values) dengan kolom yang di-join.

R S

(Left) outer join adalah join, dimana tuple dari R yang tidak memiliki nilai yang cocok

(matching values) pada kolom dari S, yang ditampilkan dalam relasi yang dihasilkan.

Contoh - Left Outer join

Buatlah laporan status dari property viewings.

propertyNo, street, city(PropertyForRent) Viewing

Semijoin

R F S

Mendefinisikan relasi yang berisikan tuple-tuple dari relasi R yang ada pada join R

dengan S.

Semijoin dapat dituliskan dengan menggunakan Projection dan join :

R F S = A(R F S)

Contoh - Semijoin

Tampilkan detail lengkap semua staff yang bekerja pada kantor cabang di Glasgow.

Staff Staff.branchNo = Branch.branchNo and Branch.city = ‘Glasgow’ Branch

Page 153: MODUL PERKULIAHAN Basis Data - …fasilkom.mercubuana.ac.id/.../uploads/2017/10/Sistem-Basis-Data-TI.pdf · sebagai contohnya adalah laporan. ... 2014 4 Basis Data Pusat Bahan Ajar

 2014 12 Basis Data Pusat Bahan Ajar dan eLearning   Tim Dosen http://www.mercubuana.ac.id

   

Division R S

Mendefinisikan relasi antara atribut-atribut C yang terdiri dari himpunan tuple R yang

merupakan kombinasi yang cocok/sesuai (match) dengan setiap tuple S.

Ekpresi dengan menggunakan operasi dasar :

T1 C(R)

T2 C((S X T1) – R)

T T1 – T2

Contoh - Division

Identifikasi seluruh klien yang telah melihat seluruh properti dengan 3 buah

ruang/kamar.

(clientNo, propertyNo(Viewing)) (propertyNo(rooms = 3 (PropertyForRent)))

Page 154: MODUL PERKULIAHAN Basis Data - …fasilkom.mercubuana.ac.id/.../uploads/2017/10/Sistem-Basis-Data-TI.pdf · sebagai contohnya adalah laporan. ... 2014 4 Basis Data Pusat Bahan Ajar

 2014 13 Basis Data Pusat Bahan Ajar dan eLearning   Tim Dosen http://www.mercubuana.ac.id

   

Relational Calculus

Query kalkulus relasional lebih menspesifikasikan apa yang harus

ditampilkan/diambil daripada bagaimana menampilkan/ mengambilnya. Pada kalkulus

relasional tidak ada deskripsi bagaimana meng-evaluasi suatu query.

Relational calculus merupakan Non-Procedural Language. Pengguna hanya

memberikan deskripsi formalnya saja, tanpa menentukan bagaimana urutan-urutan proses

untuk mendapatkan informasi tersebut dari sebuah basis data. Relational calculus termasuk

tipe manipulasi data yang tidak menyediakan suatu set operator dan memberikan

fleksibilitas yang sangat baik dalam relasi-relasi.

Relational calculus terbagi menjadi dua, yaitu:

1. Tuple Oriented Relational calculus

2. Domain Oriented Relational calculus

Nama kalkulus relasional diambil dari predicate calculus. Ketika diaplikasikan untuk

database, kalkulus relasional berbentuk : tuple relational calculus dan domain relational

calculus.

Dalam first-order logic (atau predicate calculus), predicate merupakan fungsi

berargumen yang bernilai benar. Ketika suatu nilai disubtitusikan untuk argumen tersebut,

fungsi menghasilkan ekspresi, yang disebut proposition, yang dapat bernilai benar atau

salah.

Contoh : terdapat kalimat “john white is a member of staff “ dan “ john white earns

more than ann beech “, kedua kalimat tersebut adalah proposisi. Kalimat pertama

mempunyai fungsi “is a member of staff “ dengan argumen john white, begitupun kalimat

kedua.

Jika predikat berisi sebuah variable (mis, ‘x adalah jumlah staff’), maka harus ada

range untuk x. Ketika disubtitusikan beberapa nilai dari range x ini, proposisi mungkin

bernilai benar untuk suatu nilai, dan bernilai salah untuk lainnya.

Maka jika P adalah predikat, maka himpunan x untuk P dapat dituliskan sbb :

{ x | P (x) }

predikat dapat digabungkan dengan Λ (AND), V (OR), dan ~ (NOT)

Page 155: MODUL PERKULIAHAN Basis Data - …fasilkom.mercubuana.ac.id/.../uploads/2017/10/Sistem-Basis-Data-TI.pdf · sebagai contohnya adalah laporan. ... 2014 4 Basis Data Pusat Bahan Ajar

 2014 14 Basis Data Pusat Bahan Ajar dan eLearning   Tim Dosen http://www.mercubuana.ac.id

   

Tuple Relational Calculus

Variable-variabel di tuple relational calculus merepresentasikan value(nilai) tuple-

tuplenya. Query di sebuah tuple calculus direpresentasikan sebagai berikut:

{ t | P (t) }.

Sejumlah tuple dari seluruh tuple t dengan predicate P adalah TRUE untuk tuple t

tersebut. Simbol lainnya adalah sebagai berikut:

t [ A ] : value tuple t di atribut A

t _ r : tuple t berada di relasi r

Ditujukan untuk menampilkan tuple untuk predikat yang bernilai benar dengan

menggunakan variabel tuple (tuple variables).

Variable Tuple adalah variable yang meliputi (ranges over) relasi bernama, contoh :

variable yang hanya diperbolehkan yang merupakan tuple-tuple dari suatu relasi.

menetapkan range dari variable tuple S sebagai relasi Staff sbb :

Staff(S)

Untuk mengetahui himpunan dari semua tuple S dimana P(S) adalah benar :

{S | P(S)}

Contoh :

mencari detail dari semua staff yang berpenghasilan lebih dari £10,000 :

{S | Staff(S) S.salary > 10000}

S.salary berarti nilai dari atribut salary diberikan untuk variabel tuple S.

Untuk menampilkan atribut tertentu seperti salary, dapat ditulis :

{S.salary | Staff(S) S.salary > 10000}

Page 156: MODUL PERKULIAHAN Basis Data - …fasilkom.mercubuana.ac.id/.../uploads/2017/10/Sistem-Basis-Data-TI.pdf · sebagai contohnya adalah laporan. ... 2014 4 Basis Data Pusat Bahan Ajar

 2014 15 Basis Data Pusat Bahan Ajar dan eLearning   Tim Dosen http://www.mercubuana.ac.id

   

Dapat menggunakan dua buah quantifier untuk mengetahui berapa banyak instances

yang diperoleh dari suatu predikat, yaitu:

Existential quantifier (‘there exists’), akan bernilai benar jika sedikitnya terdapat 1

buah instance yang memenuhi syarat. Contoh :

Staff(S) (B)(Branch(B) (B.branchNo= S.branchNo) B.city = ‘London’)

Berarti, terdapat tuple branch dengan branchNo yang sama dengan branchNo dari

tuple Staff , S, dan berlokasi di London’.

Universal quantifier (‘for all’) , akan bernilai benar jika setiap instance memenuhi

syarat. Contoh :

(B) (B.city ‘Paris’)

Berarti, untuk semua tuple Branch, yang tidak beralamat di paris

atau dapat ditulis :

~(B) (B.city = ‘Paris’),

yang berarti ‘tidak ada branch dengan alamat paris’

Page 157: MODUL PERKULIAHAN Basis Data - …fasilkom.mercubuana.ac.id/.../uploads/2017/10/Sistem-Basis-Data-TI.pdf · sebagai contohnya adalah laporan. ... 2014 4 Basis Data Pusat Bahan Ajar

 2014 16 Basis Data Pusat Bahan Ajar dan eLearning   Tim Dosen http://www.mercubuana.ac.id

   

Variabel tuple yang sesuai dengan atau disebut variable terbatas (bound ), lainnya

variable bebas(free ).

Penerapan hokum De Morgan:

(X) (F(X)) ~ (X) (~(F(X)))

(X) (F(X)) ~ (X) (~(F(X)))

(X) (F1(X) F2(X)) ~ (X) (~(F1(X)) V ~(F2(X)))

(X) (F1(X) F2(X)) ~ (X) (~(F1(X)) V ~(F2(X)))

Formula/rumus yang ditulis harus tidak ambigu dan dapat dimengerti.

Ekspresi dalam kalkulus tuple relasional mempunyai bentuk umum sbb :

{ S1.a1, S2.a2,…,Sn.an | F (S1,S2,…Sm ) m >= n

keterangan:

R(Si ), dimana Si adalah variable tuple dan R adalah relasi

Si.a1 Sj.a2 ,dimana Si. dan Sj. merupakan variable tuple. a1 adalah atribut

dari relasi pada range Si., a2 adalah atribut dari relasi pada range Sj. dan

operator pembanding.

Si.a1 c dimana Si. adalah variable tuple. a1 adalah atribut dari relasi pada

range Si., c adalah konstanta dari domain atribut a1 dan operator pembanding.

Ekspresi dapat dibuat dengan beberapa ketentuan :

ekspresi tersebut tersebut bersifat atomic

jika F1 dan F2 adalah suatu ekspresi, maka conjunction F1F2; disjunction

F1VF2; dan negasi, ~F1 juga ekspresi.

jika F adalah ekspresi dengan variable bebas X, maka (X)(F) dan (X)(F) juga

merupakan ekspresi.

Page 158: MODUL PERKULIAHAN Basis Data - …fasilkom.mercubuana.ac.id/.../uploads/2017/10/Sistem-Basis-Data-TI.pdf · sebagai contohnya adalah laporan. ... 2014 4 Basis Data Pusat Bahan Ajar

 2014 17 Basis Data Pusat Bahan Ajar dan eLearning   Tim Dosen http://www.mercubuana.ac.id

   

Contoh :

1. Tampilkan nama seluruh manager yang memiliki penghasilan lebih dari £25,000.

{S.fName, S.lName | Staff(S) S.position = ‘Manager’ S.salary > 25000}

2. Tampilkan staff yang mengatur property untuk disewakan dikota Glasgow.

{S | Staff(S) (P) (PropertyForRent(P) (P.staffNo = S.staffNo) P.city =

‘Glasgow’)}

3. Tampilkan nama staff yang tidak mengatur property apapun

{S.fName, S.lName | Staff(S) (~(P) (PropertyForRent(P)(S.staffNo = P.staffNo)))}

Atau

{S.fName, S.lName | Staff(S) ((P) (~PropertyForRent(P) ~(S.staffNo = P.staffNo)))}

4. Tampilkan nama klien yang telah melihat property di Glasgow.

{C.fName, C.lName | Client(C) ((V)( P) (Viewing(V) PropertyForRent(P)

(C.clientNo = V.clientNo) (V.propertyNo=P.propertyNo) P.city =‘Glasgow’))}

Page 159: MODUL PERKULIAHAN Basis Data - …fasilkom.mercubuana.ac.id/.../uploads/2017/10/Sistem-Basis-Data-TI.pdf · sebagai contohnya adalah laporan. ... 2014 4 Basis Data Pusat Bahan Ajar

 2014 18 Basis Data Pusat Bahan Ajar dan eLearning   Tim Dosen http://www.mercubuana.ac.id

   

Suatu ekspresi dapat menghasilkan himpunan tak hingga, contoh

{S | ~Staff(S)}

Untuk mengatasi hal tersebut, tambahkan batasan bahwa semua nilai yang dihasilkan

harus merupakan nilai dalam domain ekspresi.

 

Domain Relational Calculus

Variable-variabel di Domain Relational Calculus merepsentasikan domain

domainnya, sedangkan operasi-operasinya mirip dengan Tuple Relasional Calculus.

 

Menggunakan variable yang diambil dari domain pada suatu relasi.

Bentuk umum ekspresi domain relational calculus :

{d1, d2, . . . , dn | F(d1, d2, . . . , dn)}

dimana F(d1, d2, . . . , dn) merupakan formula yang disusun dari atom-atom dan d1, d2, . .

. , dn merepresentasikan domain variables.

Contoh :

1. Tampilkan nama seluruh manager dengan penghasilan lebih dari £25,000.

{fN, lN | (sN, posn, sex, DOB, sal, bN) (Staff (sN, fN, lN, posn, sex, DOB, sal, bN)

posn = ‘Manager’ sal > 25000)}

2. Tampilkan staff yang mengatur property untuk disewakan di Glasgow

Page 160: MODUL PERKULIAHAN Basis Data - …fasilkom.mercubuana.ac.id/.../uploads/2017/10/Sistem-Basis-Data-TI.pdf · sebagai contohnya adalah laporan. ... 2014 4 Basis Data Pusat Bahan Ajar

 2014 19 Basis Data Pusat Bahan Ajar dan eLearning   Tim Dosen http://www.mercubuana.ac.id

   

{sN,fN,lN,posn,sex,DOB, sal, bN |sN1,cty)(Staff(sN,fN,lN,posn,sex,DOB,sal,bN)

PropertyForRent(pN, st, cty, pc, typ, rms, rnt, oN, sN1, bN1) (sN=sN1) cty=‘Glasgow’)}

3. Tampilkan nama staff yang tidak mengatur property apapun

{fN, lN | (sN)(Staff(sN,fN,lN,posn,sex,DOB,sal,bN) (~(sN1)(PropertyForRent(pN, st,

cty, pc, typ, rms, rnt, oN, sN1, bN1) (sN=sN1))))}

4. Tampilkan nama klien yang telah melihat property di Glasgow.

{fN, lN | ( cN, cN1, pN, pN1, cty)(Client(cN, fN, lN,tel, pT, mR) Viewing(cN1, pN1, dt,

cmt) PropertyForRent(pN, st, cty, pc, typ, rms, rnt,oN, sN, bN) (cN = cN1) (pN =

pN1) cty = ‘Glasgow’)}

Ketika dibatasi untuk menyimpan ekspresi, domain relational calculus ekuivalen dengan

tuple relational calculus terbatas untuk menyimpan ekspresi, dimana ekuivalen dengan

relational algebra.

Yang berarti, setiap ekspresi aljabar relasional terdapat ekuivalensinya dalam ekspresi

kalkulus relasional, dan sebaliknya.

Bahasa lainnya  

Transform-oriented language merupakan bahasa non-procedural yang menggunakan

relasi untuk merubah data input menjadi output yang dibutuhkan. (Co/ SQL).

Graphical language menyediakan gambar dari struktur relasi. User memberi masukan

berupa contoh hal yang dibutuhkan dan system akan memberikan data yang dimaksud

dengan format tersebut. (Co/ QBE).

4GL dapat membuat complete customized application menggunakan perintah-perintah

yang terbatas yang user-friendly, biasanya menu-driven environment.

Beberapa sistem menerima bentuk natural language, disebut 5GL, walaupun masih

dalam tahap awal.  

Page 161: MODUL PERKULIAHAN Basis Data - …fasilkom.mercubuana.ac.id/.../uploads/2017/10/Sistem-Basis-Data-TI.pdf · sebagai contohnya adalah laporan. ... 2014 4 Basis Data Pusat Bahan Ajar

 2014 20 Basis Data Pusat Bahan Ajar dan eLearning   Tim Dosen http://www.mercubuana.ac.id

   

Latihan

Masih dari skema Hotel yang pernah kita bahas, jawablah pertanyaan berikut dengan menggunakan 

bahasa prosedura Aljabar Relasional dan Kalkulus Relasional. 

1. Tampilkan nama hotel yang beralamat dikota Bandung 

2. Tampilkan nomor kamar yang harga sewanya diatas Rp. 350.000,‐ 

3. Tampilkan nama hotel yang memiliki kamar bertipe deluxe 

4. Tampilkan nama hotel yang sedang dibooking oleh tamu 

5. Tampilkan nama tamu yang berasal dari Jakarta 

6. Tampilkan nama tamu yang menginap di kamar R002 

7. Tampilkan nama tamu yang menginap di hotel Mawar  

8. Tampilkan nama tamu yang menginap dari tanggal 12 Agustus 2009 sampai 15 Agustus 2009 

disemua hotel 

9.  Tampilkan nama tamu yang menginap di kamar bertipe single 

10. Tampilkan nomor kamar dan hotelnya yang sedang kosong atau sedang tidak disewa tamu 

 

 

Daftar Pustaka

1. Database system: A Practical approach to design, implementation and management 2. Sistem Manajemen Basis Data 3. Oracle database 10g: SQL Fundamentals I

Page 162: MODUL PERKULIAHAN Basis Data - …fasilkom.mercubuana.ac.id/.../uploads/2017/10/Sistem-Basis-Data-TI.pdf · sebagai contohnya adalah laporan. ... 2014 4 Basis Data Pusat Bahan Ajar

 

2014 1 Basis Data Pusat Bahan Ajar dan eLearning   Tim Dosen http://www.mercubuana.ac.id

MODUL PERKULIAHAN

Basis Data

Keamanan Basis Data

Fakultas  Program Studi  Tatap Muka  Kode MK  Disusun Oleh 

Ilmu Komputer  Teknik Informatika 

13 87031  Tim Dosen 

 

Abstract Kompetensi Modul ini berisi materi tentang lingkup kemanan basis data, tipe ancaman terhadap system basis data dan fitur keamanan dari DBMS yang ada

Mahasiswa mampu memahami konsep lingkup keamanan basisdata beserta ancaman yang dapat terjadi pada system basis data, serta mampu menjelaskan fitur keamanan yang ada ada DBMS (Ms. SQL Server, Oracle dan MySQL)

Page 163: MODUL PERKULIAHAN Basis Data - …fasilkom.mercubuana.ac.id/.../uploads/2017/10/Sistem-Basis-Data-TI.pdf · sebagai contohnya adalah laporan. ... 2014 4 Basis Data Pusat Bahan Ajar

 

2014 2 Basis Data Pusat Bahan Ajar dan eLearning   Tim Dosen http://www.mercubuana.ac.id

Keamanan Basis Data

Data merupakan sumber daya bernilai yang harus di atur dan diawasi secara ketat

bersama dengan sumber daya corporate lainnya.

Sebagian atau keseluruhan data corporate mempunyai kepentingan strategis dan

karena itu harus dijaga agar tetap aman dan rahasia.

Database Security merupakan mekanisme yang menjaga database dari

serangan/ancaman yang disengaja maupun tidak sengaja.

Pertimbangan keamanan tidak hanya diaplikasikan pada data yang ada dalam

database. Pelanggaran terhadap keamanan dapat mempengaruhi bagian lain dari

sistem, yang akan memberi akibat balik terhadap database.

Keamanan database terkait dengan keadaan berikut :

Pencurian dan penipuan (theft and fraud)

Kehilangan kerahasiaan (Loss of confidentiality)

Kehilangan keleluasaan pribadi (Loss of privacy)

Kehilangan integritas (Loss of integrity)

Kehilangan ketersediaan (Loss of availability)

Ancaman (threat) adalah segala situasi atau kejadian, baik disengaja maupun tidak

disengaja yang dapat menimbulkan efek merugikan terhadap system dan berikutnya

organisasi .

Ringkasan ancaman-ancaman terhadap sistem komputer

Page 164: MODUL PERKULIAHAN Basis Data - …fasilkom.mercubuana.ac.id/.../uploads/2017/10/Sistem-Basis-Data-TI.pdf · sebagai contohnya adalah laporan. ... 2014 4 Basis Data Pusat Bahan Ajar

 

2014 3 Basis Data Pusat Bahan Ajar dan eLearning   Tim Dosen http://www.mercubuana.ac.id

Typical Multi-User Computer Environment

Tindakan terhadap ancaman (Countermeasures – Computer-Based Controls)

Berbagai tindakan balasan untuk ancaman yang terjadi dikaitkan dengan kontrol fisik

sampai dengan prosedur administratif yang meliputi :

Authorisasi (Authorization)

View

Back-up dan Recovery

Integrity

Encryption

RAID Technology

Authorization(Otorisasi)

Pemberian hak atau wewenang, yang menyebabkan subjek memiliki legitimasi

untuk mengakses system atau objek-objek dalam system.

Page 165: MODUL PERKULIAHAN Basis Data - …fasilkom.mercubuana.ac.id/.../uploads/2017/10/Sistem-Basis-Data-TI.pdf · sebagai contohnya adalah laporan. ... 2014 4 Basis Data Pusat Bahan Ajar

 

2014 4 Basis Data Pusat Bahan Ajar dan eLearning   Tim Dosen http://www.mercubuana.ac.id

Authentication(Pembuktiankeaslian)Suatu mekanisme yang menentukan apakah user yang mengakses benar-benar

user yang dimaksud.

ViewMerupakan hasil dinamis dari satu atau lebih operasi relasional yang dioperasikan

pada relasi/table dasar untuk menghasilkan relasi/table lainnya. View merupakan

relasi/table virtual yang tidak benar-benar ada dalam database, tetapi dihasilkan

berdasarkan permintaan oleh user tertentu pada saat tertentu.

BackUpSuatu proses yang secara periodik mengambil salinan database dan log file (dapat

juga berupa program) untuk disimpan pada media penyimpanan offline.

JournalingSuatu proses pemeliharaan dan penyimpanan log file (jurnal) dari semua

perubahan yang dilakukan terhadap database untuk kemudahan recovery bila

terjadi kerusakan (failure).

IntegrityMencegah data dari ketidaksesuaian (invalid) dan mengakibatkan pemberian hasil

yang salah.

EncryptionPenyandian (encoding) data dengan menggunakan algoritma khusus yang

membuat data tidak dapat dibaca oleh program tanpa kunci decryption.

RAID(RedundantArrayofIndependentDisks)Technology Hardware dimana DBMS berjalan dengan fault-tolerant, yang berarti bahwa

DBMS harus tetap melanjutkan operasi walaupun terdapat satu komponen

hardware yang rusak (fail).

Memberikan kesan memiliki komponen redundant (lebih) yang dapat

diintegrasikan kedalam sistem kerja walaupun terdapat satu atau lebih

kerusakan komponen.

Komponen hardware utama yang harus memiliki fault-tolerant meliputi disk

drives, disk controllers, CPU, Power supplies, cooling fans.

Disk drives merupakan komponen yang paling mudah diserang dengan jarak

yang dekat antar kerusakan dibandingkan dengan komponen hardware lainnya.

Salah satu solusinya dengan menggunakan RAID technology, yaitu

menyediakan serangkaian besar disk, yang terdiri dari susunan beberapa disk

Page 166: MODUL PERKULIAHAN Basis Data - …fasilkom.mercubuana.ac.id/.../uploads/2017/10/Sistem-Basis-Data-TI.pdf · sebagai contohnya adalah laporan. ... 2014 4 Basis Data Pusat Bahan Ajar

 

2014 5 Basis Data Pusat Bahan Ajar dan eLearning   Tim Dosen http://www.mercubuana.ac.id

independen diatur untuk memperbaiki ketahanan (reliability) dan meningkatkan

performa (performance).

Performa (performance) meningkat melalui data striping, yaitu data

disegmentasi (dibagi) menjadi beberapa bagian dengan ukuran yang sama

(striping units), yang secara jelas didistribusikan melewati beberapa disk.

Ketahanan (reliability) diperbaiki melalui penyimpanan informasi

ganda(redundant) melewati disk dengan menggunakan skema parity atau

skema error-correcting.

Kemanan pada Microsoft Access DBMS

Menyediakan dua metode untuk pengamanan database, yaitu :

Penetapan password untuk membuka database (keamanan sistem)

Keamanan tingkat user, yang dapat digunakan untuk membatasi bagian dari

database yang dapat dibaca/di-update oleh user (keamanan data)

Pengamanan DreamHome Database menggunakan password

Page 167: MODUL PERKULIAHAN Basis Data - …fasilkom.mercubuana.ac.id/.../uploads/2017/10/Sistem-Basis-Data-TI.pdf · sebagai contohnya adalah laporan. ... 2014 4 Basis Data Pusat Bahan Ajar

 

 2014 6 Basis Data Pusat Bahan Ajar dan eLearning   Devi Fitrianah http://www.mercubuana.ac.id

   

User and Group Accounts Dialog Box for the DreamHome Database

User and Group Permissions Dialog Box

Page 168: MODUL PERKULIAHAN Basis Data - …fasilkom.mercubuana.ac.id/.../uploads/2017/10/Sistem-Basis-Data-TI.pdf · sebagai contohnya adalah laporan. ... 2014 4 Basis Data Pusat Bahan Ajar

 

 2014 7 Basis Data Pusat Bahan Ajar dan eLearning   Devi Fitrianah http://www.mercubuana.ac.id

   

Creation of a New User with Password Authentication Set

Log on Dialog Box

Page 169: MODUL PERKULIAHAN Basis Data - …fasilkom.mercubuana.ac.id/.../uploads/2017/10/Sistem-Basis-Data-TI.pdf · sebagai contohnya adalah laporan. ... 2014 4 Basis Data Pusat Bahan Ajar

 

 2014 8 Basis Data Pusat Bahan Ajar dan eLearning   Devi Fitrianah http://www.mercubuana.ac.id

   

Setting the Permissions

DBMS dan Keamanan Web

Komunikasi internet dipercayakan pada TCP/IP sebagai protocol utama.

Bagaimanapun TCP/IP dan HTTP tidak didesain dengan pemikiran keamanan. Tanpa

software khusus, semua jalur internet berjalan secara terbuka dan siapapun yang

melihat jalur tersebut dapat membacanya.

Yang harus dipastikan pada saat pengiriman informasi melalui internet yaitu :

Tidak dapat diakses oleh siapapun kecuali pengirim dan penerimanya (privacy).

Tidak diubah selama pengiriman (integrity).

Penerima merasa yakin bahwa data tersebut berasal dari pengirim yang dimaksud

(authenticity).

Page 170: MODUL PERKULIAHAN Basis Data - …fasilkom.mercubuana.ac.id/.../uploads/2017/10/Sistem-Basis-Data-TI.pdf · sebagai contohnya adalah laporan. ... 2014 4 Basis Data Pusat Bahan Ajar

 

 2014 9 Basis Data Pusat Bahan Ajar dan eLearning   Devi Fitrianah http://www.mercubuana.ac.id

   

Pengirim merasa yakin bahwa penerima adalah penerima yang sebenarnya (non

fabrication).

Pengirim tidak dapat menyangkal bahwa dirinya yang mengirim data (non

repudiation)

Harus dapat menjaga informasi ketika sudah mencapai web server.

Download dapat mengandung Executable Content, yang dapat

menampilkan/melaksanakan toperasi yang tidak sesuai (malicious action), seperti :

Data rusak atau Execution state dari program

Format ulang disk lengkap

Melaksanakan pe-nonaktif-an sistem secara total

Mengumpulkan dan mengambil data rahasia

Merebut identitas dan menirukan (impersonate) user

Lock up resources, menyebabkan tidak dapat digunakan untuk user dan program

Berakibat tidak fatal tetapi memberikan hasil yang tidak diinginkan, terutama pada

output device

Latihan

Dalam kelompok diskusi, jelaskan dengan lengkap, pendekatan apa saja yang dibutuhkan

untuk mengamankan DBMS dalam sebuah aplikasi web. Jelaskan jawaban kelompok anda

dalam sebuah mini presentation.

 

Daftar Pustaka

1. Database system: A Practical approach to design, implementation and management 2. Sistem Manajemen Basis Data 3. Oracle database 10g: SQL Fundamentals I

Page 171: MODUL PERKULIAHAN Basis Data - …fasilkom.mercubuana.ac.id/.../uploads/2017/10/Sistem-Basis-Data-TI.pdf · sebagai contohnya adalah laporan. ... 2014 4 Basis Data Pusat Bahan Ajar

MODUL PERKULIAHAN

Basis Data

Pengenalan Objek DBMS

Fakultas  Program Studi  Tatap Muka  Kode MK  Disusun Oleh 

Ilmu Komputer  Teknik Informatika 

14 87031  Tim Dosen 

 

Abstract Kompetensi Modul ini berisi materi tentang konsep yang terkait dengan OODB atau Object Oriented Data Base. Abstraksi, penyembunyian informasi, identitas objek, objek dan atribut, method dan message, class, subclass, superclass, inheritance, overloading, polymorphism dan dynamic binding.

Mahasiswa mampu memahami dan mempresentasikan kembali semua komponen didalam OODB

Page 172: MODUL PERKULIAHAN Basis Data - …fasilkom.mercubuana.ac.id/.../uploads/2017/10/Sistem-Basis-Data-TI.pdf · sebagai contohnya adalah laporan. ... 2014 4 Basis Data Pusat Bahan Ajar

2014 2 Basis Data Pusat Bahan Ajar dan eLearning   Tim Dosen http://www.mercubuana.ac.id

  

 

 

Object Oriented Data Base

Objek database mulai populer pada pertengahan tahun 1990 an. Bermula dari Objek

Oriented Programming (OOP) yang kemudian dikembangkan menjadi Objek Oriented

Database (OOD) dan pada akhirnya menjadi Objek Oriented Analysis (OOA). Didalam

konsep objek oriented database kita dapat melakukan pemodelan data dari semua

phenomena dan dapat dinyatakan dalam bahasa umum (natural). Objek Oriented Database

pada dasarnya merupakan kosep dari pemrograman berorientasi objek secara umum

ditambah dengan database sebagai media penyimpanan datanya yang berbentuk class-

class, sehingga dalam hal ini masih berhubungan erat dengan E-R Model. Objek Oriented

Database muncul karena kekomplekan dari penyimpanan objek-objek yang akan disimpan

didalam database sehingga konsep dari Relational Database Manejemen Sistem (RDBMS)

masih tetap digunakan. Mekanisme penyimpanan objek-objek didalam Relational Database

Menejemen Sistem ini sering dikenal dengan istilah ORDBMS (Objek Relational Database

Managemen System).

Object oriented database adalah sebuah model basisdata dimana informasi disimpan

daam bentuk object. Object yang dimaksud tersebut digunakan dalam OOP (object oriented

progamming). Ketika kemampuan basisdata bergabung dengan kemampuan OOP, hasilnya

berupa object database management sistem (ODBMS). ODBMS ideal untuk pada

pemrogaman object oriented karena mereka ketika malakukan proses developer, controller

ddan model mamiliki persamaan yaitu sama – sama mengguanakn object. ODBMS

mendukung data yang compleks seperti vidio, suara, gambar, dll secara native. Berbeda

dengan Relational Databse Mangement Sistem (RDBMS) yang tidak native mendukung data

compleks karena harus membagi menjasi dua bagian yaitu : model basis data dan model

aplikasi. Bagi yang telah mengenal RDBMS, object pada ODBMS bertindak sama dengan

tabel RDBMS. ODBMS dibuat untuk menggantikan RDBMS jika bahasa pemrograman yang

digunakan adalah OOP.

Kelebihan OODB antara lain:

1. Proses penyimpanan dan pengambilan data lebih sederhana;

2. Program mengakses data dengan objecknya secara langsung sehingga kinerja

program akan lebih tinggi.

Page 173: MODUL PERKULIAHAN Basis Data - …fasilkom.mercubuana.ac.id/.../uploads/2017/10/Sistem-Basis-Data-TI.pdf · sebagai contohnya adalah laporan. ... 2014 4 Basis Data Pusat Bahan Ajar

2014 3 Basis Data Pusat Bahan Ajar dan eLearning   Tim Dosen http://www.mercubuana.ac.id

  

 

 

Kekurangan OODB antara lain :

1. Kekuranagn dukungan platform, kebanyakan OODB hanya mendukung bahasa

pemrograman C++, C# dan Java saja;

2. Kebutuhan keterampilan, dikarenakan OODB masih tergolong baru dan masih

relatif jarang penggunanya;

3. Sulit berimigrasi, dibutuhkan komitmen yang kuat dalam memilih DBMS yang

akan digunakan, sekali berimigrasi ke OODB, akan sulit untuk kembali ke

RDBMS

 

PERKEMBANGAN APLIKASI BASIS DATA

1. Computer-Aided Design (CAD)

Database CAD menyimpan data yang berhubungan dengan rancangan mekanik dan

elektrik, sebagai contoh : gedung, pesawat, dan chips IC.

2. Computer-Aided Manufacturing (CAM)

Database CAM menyimpan data yang jenisnya sama dengan sistem CAD, ditambah data

yang berhubungan dengan produksi yang mempunyai ciri-ciri tersendiri (seperti mobil pada

saat perakitan) dan produksi yang continue (seperti sintesa kimia).

3. Computer-Aided Software Engineering (CASE)

Database CASE menyimpan data yang berhubungan dengan langkah-langkah dari siklus

pengembangan software yaitu : planning, requirements collection analysis, design,

implementation, test, maintenance and documentation.

4. Computer-Aided Publishing (CAP)

Database CAP menyimpan dokumen yang kompleks. Sama seperti otomatisasi kantor,

aplikasi CAP telah diperluas untuk menangani dokumen-dokumen multimedia yang

berisikan teks, audio, gambar, video data, dan animasi.

Page 174: MODUL PERKULIAHAN Basis Data - …fasilkom.mercubuana.ac.id/.../uploads/2017/10/Sistem-Basis-Data-TI.pdf · sebagai contohnya adalah laporan. ... 2014 4 Basis Data Pusat Bahan Ajar

2014 4 Basis Data Pusat Bahan Ajar dan eLearning   Tim Dosen http://www.mercubuana.ac.id

  

 

 

5. Office Automation (OA)

Database OA menyimpan data yang berhubungan dengan pengontrolan informasi computer

dalam bidang bisnis, termasuk e-mail, dokumen-dokumen, invoice, dsb.

Agar menyediakan dukungan yang lebih baik untuk area ini, dibutuhkan penanganan yang

lebih luas terhadap jenis data daripada nama, alamat, tanggal dan uang.

Sekarang ini sistem yang modern dapat menangani text yang berjenis bebas, foto, diagram,

audio dan video. Sebagai contoh: dokumen multimedia yang mengangani teks, foto,

spreadsheets dan suara.

 

KONSEP OBJECT ORIENTED

Dalam Object Oriented baik Programming maupun database terdapat beberapa konsep

mengenai object oriented yang perlu diketahui. Berikut adalah penjelasannya.

Beberapa konsep Object Oriented Database :

Page 175: MODUL PERKULIAHAN Basis Data - …fasilkom.mercubuana.ac.id/.../uploads/2017/10/Sistem-Basis-Data-TI.pdf · sebagai contohnya adalah laporan. ... 2014 4 Basis Data Pusat Bahan Ajar

2014 5 Basis Data Pusat Bahan Ajar dan eLearning   Tim Dosen http://www.mercubuana.ac.id

  

 

 

Kenyataan dalam dunia ini direpresentasikan sebagai object

Setiap object memiliki state dan behavior

State merupakan nilai dari properties dan atribut dari object

Behavior merupakan method yang dijalankan oleh state

Object yang memiliki kesamaan state dan behavior dikelompokkan dalam satu class

yang sama

Setiap object hanya dapat diturunkan (instace) kedalam satu class saja

Class-class dikeompokkan dalam sebuah hierarki. Subclass memiliki turunan (inherits)

dari superclass-nya.

Dimungkinkan juga terjadi overriding dimana sebuah class men-substitute domain dari

propertiesnya dengan method lain dalam implementasi yang berbeda.

A. Abstraksi dan Enkapsulasi

· Abstraksi

adalah proses identifikasi aspek-aspek yang perlu dari entitas dan mengabaikan

property yang tidak penting.

· Enkapsulasi (information hiding)

adalah memisahkan aspek-aspek eksternal sebuah objek dari rincian internalnya

(internal details), yang tidak terlihat dari dunia luar. Dengan cara ini, internal detail sebuah

objek dapat dirubah tanpa mempengaruhi aplikasi yang menggunakan objek tersebut, begitu

juga dengan external detail. Dengan kata lain, encapsulation menyediakan data

independence.

Contoh : Objek Roti, objek ini mempunyai method Pembuatan Roti. Jika kita ingin memakan

roti, tentu kita tidak perlu tahu bagaimana cara membuatnya. Dengan demikian pembuatan

Roti menjadi sesuatu yang menjadi dasar bagi konsep information hiding.

Page 176: MODUL PERKULIAHAN Basis Data - …fasilkom.mercubuana.ac.id/.../uploads/2017/10/Sistem-Basis-Data-TI.pdf · sebagai contohnya adalah laporan. ... 2014 4 Basis Data Pusat Bahan Ajar

2014 6 Basis Data Pusat Bahan Ajar dan eLearning   Tim Dosen http://www.mercubuana.ac.id

  

 

 

B. Objek dan Atribut

· Objek

adalah sebuah entitas yang dapat diidentifikasikan secara unik, berisikan atribut-

atribut yang menerangkan keadaan atau kondisi (state) objek dunia nyata (real world object)

dan aksi-aksi yang berhubungan dengan sebuah objek dunia nyata. Definisi objek serupa

dengan definisi entitas. Perbedaannya : objek menunjukkan keadaan (state) dan tingkah

laku (behaviour), sedangkan entitas menunjukkan models state.

· Atribut

adalah nama-nama property dari sebuah kelas yang menjelaskan batasan nilainya

dari property yang dimiliki oleh sebuah kelas tersebut. Atribut dari sebuah kelas

mempresentasikan property-property yang dimiliki oleh kelas tersebut. Atribut mempunyai

tipe yang menjelaskan tipe instanisasinya. Hanya sebuah instanisasi dari kelas (objek) yang

dapat mengubah nilai dari atributnya.

Keadaan (state) dari sebuah objek dijelaskan dengan nilai dari atribut-atribut yang

dimilikinya (selain keberadaan hubungan dengan objek lainnya). Dalam sebuah kelas atribut

hanya dinyatakan keberadaan dan batasan nilainya saja, sedangkan dalam sebuah objek

atributnya sudah dinyatakan nilai dan menjelaskan kedudukan / keadaan dari objek tersebut.

C. Identitas Objek (Object Identity)

Pada saat objek dibuat, object identifier (OID) langsung ditentukan. OID tersebut unik

dan berbeda. OID membedakan objek yang satu dengan objek lainnya di dalam sistem.

Sekali objek dibuat, OID tersebut tidak dapat digunakan kembali untuk objek-objek lainnya,

walaupun objek tersebut telah dihapus.

Page 177: MODUL PERKULIAHAN Basis Data - …fasilkom.mercubuana.ac.id/.../uploads/2017/10/Sistem-Basis-Data-TI.pdf · sebagai contohnya adalah laporan. ... 2014 4 Basis Data Pusat Bahan Ajar

2014 7 Basis Data Pusat Bahan Ajar dan eLearning   Tim Dosen http://www.mercubuana.ac.id

  

 

 

D. Metode dan Pesan

· Metode (Methods)

Dalam teknologi objek, function biasanya disebut methods. Methods mendefinisikan

tingkah laku dari sebuah objek. Methods dapat digunakan untuk merubah kondisi objek

dengan memodifikasi nilai atribut-atributnya, atau meng-query nilai atribut yang diseleksi.

· Pesan (Message)

Message mempunyai arti komunikasi antara objek. Sebuah message merupakan

permintaan sederhana dari suatu objek (pengirim) ke objek lain (penerima) dan menanyakan

objek tsb untuk mengeksekusi salah satu method-nya. Pengirim dan penerima bisa pada

objek yang sama. Notasi ‘dot’ biasanya digunakan untuk mengakses sebuah method.

E. CLASS

Class merupakan pendefinisian himpunan objek yang sejenis. Objek yang

mempunyai atribut yang sama dan meresponse message yang sama dapat dikelompokkan

bersama membentuk sebuah class. Atribut dan method yang berhubungan cukup sekali saja

didefinisikan untuk class, daripada didefinisikan terpisah untuk setiap objek.

Contoh :

seluruh objek cabang dideskripsikan oleh sebuah class cabang (branch). Objek-objek pada

sebuah class disebut instance dari class. Setiap instance mempunyai nilainya sendiri untuk

setiap atribut, tetapi nama atribut dan method-nya sama seperti instance lainnya dari sebuah

class.

Page 178: MODUL PERKULIAHAN Basis Data - …fasilkom.mercubuana.ac.id/.../uploads/2017/10/Sistem-Basis-Data-TI.pdf · sebagai contohnya adalah laporan. ... 2014 4 Basis Data Pusat Bahan Ajar

2014 8 Basis Data Pusat Bahan Ajar dan eLearning   Tim Dosen http://www.mercubuana.ac.id

  

 

 

F. SUBCLASS, SUPERCLASS, dan INHERITANCE

Inheritance mengizinkan satu class objek didefinisikan sebagai kasus spesial (special case)

dari sebuah class pada umumnya. Special case ini dikenal dengan subclass, dan kasus

umum lainnya dikenal sebagai superclass. Proses pembentukan superclass sama seperti

generalization, sedangkan subclass seperti specialization. Konsep dari superclass,

subclass, dan inheritance sama seperti EER, kecuali dalam paradigm object-oriented,

inheritance meliputi state dan behaviour.

Ada beberapa bentuk inheritance :

1. Single inheritance

Subclass merupakan turunan dari satu superclass.

Contoh : subclass Manager dan Sales_Staff merupakan turunan property dari superclass

Staff.

2. Multiple inheritance

Subclass Sales_Manager merupakan turunan dari superclass Manager dan

Sales_Staff.

Page 179: MODUL PERKULIAHAN Basis Data - …fasilkom.mercubuana.ac.id/.../uploads/2017/10/Sistem-Basis-Data-TI.pdf · sebagai contohnya adalah laporan. ... 2014 4 Basis Data Pusat Bahan Ajar

2014 9 Basis Data Pusat Bahan Ajar dan eLearning   Tim Dosen http://www.mercubuana.ac.id

  

 

 

3. Repeated inheritance

Kasus spesial dari multiple inheritance, dimana sebuah superclass merupakan

turunan dari sebuah superclass biasa. Melanjutkan contoh multiple inheritance, class

Manager dan Sales_staff bisa saja merupakan turunan dari superclass biasa yaitu

superclass Staff. Dalam kasus ini, mekanisme inheritance harus meyakinkan bahwa class

Sales_manager tidak diturunkan sebanyak dua kali dari superclass Staff.

4. Selective inheritance

Mengizinkan subclass menurunkan sejumlah property dari superclass. Keistimewaan

ini secara fungsional sama seperti mekanisme view, dengan membatasi akses ke beberapa

detail tapi tidak seluruhnya.

Object Oriented Database (OOD) merupakan salah satu jenis database dimana data

direpresentasikan dalam bentuk object. Pendekatan ini sangat dipengaruhi oleh bahasa

pemrograman object-oriented dan dapat dipahami sebagai usaha untuk menambah

fungsionalitas DBMS pada lingkup bahasa pemrograman.

Page 180: MODUL PERKULIAHAN Basis Data - …fasilkom.mercubuana.ac.id/.../uploads/2017/10/Sistem-Basis-Data-TI.pdf · sebagai contohnya adalah laporan. ... 2014 4 Basis Data Pusat Bahan Ajar

2014 10 Basis Data Pusat Bahan Ajar dan eLearning   Tim Dosen http://www.mercubuana.ac.id

  

 

 

Daftar Pustaka

1. Kroenke, David M. Database Processing Jilid 1. Edisi 9. 2005. Penerbit Erlangga,

Jakarta.

2. Waide, Catherine. Object-oriented database. 2003 [online] diakses

http://www.faculty.rsu.edu/users/c/clayton/www/waide/paper.htm#_Toc38521767