Selasa, 04 Desember 2018

PENGANTAR KOMPUTER #9

RESUME 9
KONSEP DATABASE



Definisi Data dan Informasi

Definisi: Database
Kumpulan data yang disimpan di dalam komputer secara sistematik sehingga kelak dapat dengan mudah digunakan kembali.

Hirarki Data

Database vs Table vs Field vs Record
v  Dalam satu database bisa berisi satu atau lebih tabel (entitas)
v  Data dalam database disimpan berdasarkan subjectnya pada file / tabel
v  File => kolom (field) dan baris (record).
v  Field => meta data (nama, umur, jenis_kelamin)
v  Record => nilai dari data (Hafid, 31, Pria)


Contoh Database

Contoh Penggunaan Database
q  BANK: Pengelolaan data nasabah, akunting, transaksi perbankan
q  TRANSPORTASI/TRAVEL: pemesanan tiket, pembayaran
q  PENDIDIKAN: registrasi, e-learning, pembayaran
q  SOCIAL MEDIA: registrasi, pengelolaan user, pengelolaan komentar
q  PENJUALAN: Pengelolaan data pelanggan, produk, penjualan
q  PEMERINTAHAN: Pengelolaan data penduduk, data wilayah,
Tujuan Database
q  Kecepatan & Kemudahan
q  Mengurangi Redudansi Data & Efisiensi Media Penyimpanan
q  Akurasi & Konsistensi Data
q  Ketersediaan & Integritas Data
q  Sharebility & Concurency
q  Keamanan Data
Komponen Sistem Database
  1. Hardware (Computer)
  2. Software (Operating System & DBMS software)
  3. Data (yang disimpan)
  4. Procedure (guide to manage DBMS)
  5. People (pengguna database)

Software: DBMS (Database Management System)

Perangkat lunak/aplikasi untuk berinteraksi dengan database.

Contoh Software DBMS
Ranking Software DBMS
Model Database :
1. Hierarchical Database
Menggambarkan kumpulan record yang dihubungkan satu sama lain melalui hubungan berdasarkan pointer yang membentuk struktur pohon.

2. Network Database
Merupakan database yang terdiri atas kumpulan record yang dihubungkan melalui pointer yang membentuk relasi antar record dalam bentuk ring.
Model ini punya banyak kelemahan, yaitu tidak memungkinkannya relasi many to many. Fleksibiltas dalam menambah atau menyisipkan record sangat rendah dan kompleks.

3. Relational Database (RDB)
Kumpulan data terstruktur yang disimpan dalam bentuk tabel-tabel, dimana tabel-tabel tersebut dapat saling berhubungan (relasi)
Fokus pada konsep ACID:
  1. Atomicity: Suatu proses selesai secara menyeluruh/tidak.
  2. Consistency: Semua proses (transaction) yang terjadi di database harus memiliki state yang jelas. Setiap data yang disimpan harus memenuhi semua constraint, Cascades, dan triggers.
  3. Isolation: Sebuah proses tidak boleh mempengaruhi proses lain.
  4. Durability: Proses yang  telah selesai harus bersifat permanen, walau aplikasinya di restart.
Contoh DBMS: MySQL, Ms SQL Server, Ms Access, Oracle dll

4. Object Oriented Database (OODB)
q  Sebuah model basisdata dimana informasi disimpan dalam bentuk object. Object yang dimaksud tersebut digunakan dalam OOP (object oriented progamming, misalnya: Java, C++,dll )
q  Mengintegrasikan kemampuan basis data (DBMS) dengan OOP. Misal: data yang persistent secara transparan, kontrol konkurensi, recovery data, query asosiatif dsb
q  Mendukung data yang compleks seperti vidio, suara, gambar, dll secara native
q  Contoh: Db4o
5. NoSQL Database
q  Database yang mempunyai tipe penyimpanan data selain yang berwujud tabular,
q  Contoh: Document (e.g. MongoDB, CouchDB), Key-Value (e.g. Redis), Graph (e.g. Neo4J, OrientDb), dsb.
Istilah Populer: Big Data

Istilah yang menggambarkan volume data yang besar, baik data yang terstruktur maupun data yang tidak terstruktur.
3 hal penting (3V)
•       Volume - jumlah data sangat besar dari berbagai sumber, termasuk transaksi bisnis, media sosial dan informasi dari sensor atau mesin.
•       Velocity - pertumbuhan data sangat cepat.
•       Variety - bentuk dan format data yang berbeda beda, baik data tertsruktur maupun tidak terstruktur, teks, database, excel, audio, video, dsb

People: Pengguna Database
q  Database Administrator (DBA)
q  Database Designer
q  Application Developers (Programmer)
q  End Users
v  Pemakai Umum (Naïve User, use application program)
v  Pemakai Khusus (Specialized/Sophisticated User, use SQL)

Arsitektur Database

Arsitektur Database: Level Eksternal
•       Tujuan: memberikan kemudahan bagi user dlm mengakses database tanpa harus mengetahui mekanisme pengaksesan secara rinci
•       Pengguna hanya dapat mengakses bagian tertentu dari database untuk alasan perlindungan dan keamanan data

Arsitektur Database: Level Konseptual
•       Menggambarkan database secara keseluruhan yg merupakan gabungan informasi dari berbagai sudut pandang pengguna terhadap database
•       Dalam bentuk Entity Relationship Diagram, meliputi:
–      Semua entitas (tabel), atribut dan relasi
–      batasan-batasan data
–      Integritas dan keamanan data
–      Informasi semantik tentang data

Arsitektur Database: Level Internal
•       Menggambarkan bagaimana data disimpan dalam media penyimpanan komputer secara fisik, yaitu:
–      Alokasi ruang media penyimpanan utk data & indeks
–      Deskripsi ukuran record yang disimpan
–      Penempatan record
–      Kompresi & enkripsi data
•       Mekanisme pengaksesan biasanya diatur oleh sistem operasi & DBMS

Database Language
Bahasa atau perintah yang digunakan untuk berinteraksi dengan database disebut dengan Query
Query dikelompokkan menjadi:
•       Data Definition Language (DDL)
–      Mengedit struktur tabel, membuat database/tabel, menghapus database/tabel
•       Data Manipulation Language (DML)
–      Menampilkan, menambah, mengedit, dan menghapus record (baris) data
•       Data Control Language
–      Mengatur hak akses pengguna terhadap database

Skema SQL
Database Design
•       Proses pembuatan desain untuk database yang sesuai dengan visi, misi dan tujuan organisasi untuk kebutuhan sistem database.
•       Fase awal dari desain database adalah membuat pemodelan data dengan tujuan :
–      untuk membantu dalam memahami makna (semantik) data;
–      untuk memfasilitasi komunikasi tentang informasi requirement.
•       Data model harus dapat menjelaskan tentang entities, relationships, and attributes.
•       Ada 3 fase dalam desain database:
–      Conceptual database design
–      Logical database design
–      Physical database design.

Conceptual database design
•       Proses membangun model data yang digunakan dalam suatu organisasi, terlepas dari semua pertimbangan fisik.
•       Model data dibangun dengan menggunakan informasi dalam spesifikasi kebutuhan user.
•       Model data konseptual merupakan sumber informasi untuk tahap desain logis

Logical database design
•       Proses pembuatan model data yang digunakan dalam organisasi berdasarkan model data spesifik (misalnya relasional), namun tidak bergantung pada DBMS tertentu dan pertimbangan fisik lainnya.
•       Model data konseptual disempurnakan dan dipetakan ke model data logis.

Physical database design
•       Proses pembuatan deskripsi implementasi database pada media penyimpan.
•       Menggambarkan hubungan dasar, organisasi file, dan indeks yang digunakan untuk mencapai akses data yang efisien. Juga menjelaskan batasan integritas terkait dan tindakan pengamanan.
Disesuaikan dengan sistem DBMS tertentu

Database Design Approach



Bottom-up Approach
•       Bottom-up: represented by normalization process
•       Dimulai dari level atribut-atribut dasar (yaitu entitas, properti dan relationship), dimana dengan analisa dari asosiasi diantara atribut-atribut tsb, atribut dikelompokkan menjadi tabel-tabel yang merepresentasikan tipe entitas dan hubungan diantara entitas
•       Cocok untuk perancangan database yang sederhana dengan jumlah atribut yang relatif sedikit

Top-Down Approach
•       Top-Down: illustrated by the ER model concepts
•       Dimulai dari pengembangan data model yang berisikan beberapa high-level entitas dan relationship, dan kemudian mengaplikasikan top-down refinement secara berturut-turut untuk mengidentifikasi entitas dengan level yang lebih rendah, relationship dan atribut-atribut yang terasosiasi
•       Cocok untuk perancangan database yang kompleks
•       Tentang ERD : https://www.smartdraw.com/entity-relationship-diagram/
•       Sumber data: Kebutuhan akan data pegawai berdasarkan unit kerjanya, dimana data pegawai itu bisa di CRUD oleh admin, di Update oleh pegawai itu sendiri dan di Read oleh pegawai lain. Pimpinan bisa melihat pegawai berdasarkan unit kerjanya. dst (hasil dari analisis requirement sistem)


Conceptual database design
•       Proses membangun model data untuk setiap spesifik view  yang digunakan dalam suatu organisasi, terlepas dari semua pertimbangan fisik.
•       Model data dibangun dengan menggunakan informasi dalam spesifikasi kebutuhan user.
•       Model data konseptual digambarkan dengan diagram Entity Relationship (ERD)
•       Model data konseptual terdiri dari :
–      Entity
–      Relationship
–      Attribute
–      Attribute domain

Definisi Entity

Definisi Relationship



Entity Relationship Diagram (ERD)

Multiple Relationship & Relationship with Attributes


Definisi Attribute
•       Attribute: karakteristik dari suatu entity atau relasi, setiap attribute diperbolehkan untuk memiliki nilai yang disebut dengan domain. 
•       Attribute domains: kumpulan dari nilai-nilai yang diperbolehkan untuk satu atau lebih attribute.
•       Type of attribute:
–      Simple attribute
–      Composite attribute
–      Single-valued attribute 
–      Multi-valued attribute
–      Derived attribute
–      Key attribute

Simple & Composite Attribute
•       Simple attribute adalah attribute yang terdiri dari komponen tunggal dimana attribute tersebut tidak dapat dipisahkan lagi,
–      Contoh: name pada entity product
•       Composite attribute adalah attribute yang masih dapat dipisahkan menjadi beberapa bagian.
–      Contoh: address pada entity staff, karena dalam atribut address bisa dibagi menjadi bagian atribut street, pos_code dan city

Single-valued & Multi-valued attribute
•       Single-valued attribute adalah attribute yang memiliki satu nilai pada setiap entity,
–      Contoh: NIP, name, birth_day pada entity staff
–      Multi-valued attribute adalah attribute yang mempunyai beberapa nilai pada setiap entity.
–      Contoh: hobby pada entity staff

Derived attribute
•       Derived attribute merupakan attribute yang nilai-nilainya diperoleh dari hasil perhitungan atau dapat diturunkan dari attribute lain yang berhubungan.
–      Contoh: attribute age pada entity staff dimana attribute tersebut diturunkan dari attribute birth_day dan date_now.

Key attribute
•       Candidate Key
•       kumpulan attribute minimal yang unik untuk mengidentifikasikan suatu entity. Satu entity bisa memiliki satu atau lebih candidate key
•       contoh:
•       Employee entity (nip, id_card, name, birth_day, email)
•       Candidate key : nip, id_card, email
•       Primary Key (PK)
•       Candidate key yang dipilih secara unik untuk mengidentifikasi suatu entity.
•       PK harus merupakan atribut yang benar-benar unik dan tidak boleh ada nilai NULL.
•       3 kriteria pemilihan PK pada candidate key sbb:
•       Kunci tersebut lebih natural untuk dijadikan acuan
•       Kunci tersebut lebih sederhana
•       Kunci tersebut cukup unik
•       contoh: I select nip form employee as PK, instead of id_card and email
•       Alternate Key (PK)
–      Candidate key yang tidak terpilih menjadi PK
–      contoh: Jika nip jadi PK, maka alternate key adalah id_card dan email
•       Foreign Key (FK)
•       Jika sebuah PK terhubungan ke tabel lain, maka keberadaan PK pada tersebut disebut sebagai FK.
•       FK adalah sebuah kumpulan atribut dalam satu relasi yang digunakan untuk me“refer” (menunjuk) ke suatu baris (tuple) pada relasi yang lain (harus berkorespondensi dengan PK pada relasi yang kedua), seperti: ‘logical pointer’.
•       Sedangkan hubungan antara keduanya (PK & FK) di jelaskan sebagai berikut:
–      PK adalah atribut kunci dari suatu tabel yang menunjukkan bahwa atribut tersebut tidak bisa diisi dengan data yang sama, atau dengan kata lain PK menjadikan setiap record memiliki identitas sendiri-sendiri yang membedakan satu sama lainnya (unik).
–      FK adalah atribut yang melengkapi satu relationship yang menunjukan ke induknya, dengan kata lain keduanya saling berkaitan.

Primary vs Foreign Key Example


Composite Key
•       Key yang terdiri dari 2 atau lebih atribut yang secara unik mengidentifikasi suatu entity
•       Contoh pada kasus entity Rent(client_id, car_id) maka field cient_id dan car_id secara bersama-sama menjadi composite key

Contoh ERD


Contoh

0 komentar:

Posting Komentar