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 constraintCascades, 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