Pengantar
> Database = Kumpulan data" yang saling berhubungan
Contoh: data universitas bagian akademik
Data mahasiswa -> berhubungan dengan data Matkul -> berhubungan dengan data Dosen Pengampu
> Database Systems = essential components of everyday life in modern society
> Database dibuat untuk tujuan tertentu.
> Database merepresentasikan hal yang ada di dunia nyata -> mini world
yang disimpan datanya, di dunia nyata ada barangnya
> Database dapat memiliki Size kecil maupun besar
Contoh: buku telepon -> nama, nomor telpon
Katalog buku perpus -> nama, nomor rak, edisi, dll
Database Management System
> adalah kumpulan program-program yang membantu user membuat dan maintain database
> Meta-data: data tentang data
contohnya: data gender hanya boleh diisi dengan M/F, tidak dapat diisi dgn yang lain (diatur oleh meta data)
> Query: statement untuk manipulasi data
Contoh: dari database mahasiswa cuma mau ambil yang huruf depan namanya A
Characteristic of Database Approach:
1. Self-describing nature of database systems
contoh: ada data 14110110001#Dennis di sebuah file .txt
kalau di Dev-C, tipe datanya ditentukan saat di program
kalau di Database, ditentukan tipe datanya langsung di DataBase
2. Program dan data terpisah (program-data independence)
contoh: file .txt biasanya harus disimpan di file yg sama dengan programnya. Bila di database bisa terpisah
3. Insulation between programs and data, and data abstraction
Contoh: mau menambahkan kategori baru dalam database
4. Supprot multiple views of Data -> tergantung kebutuhan, data apa yang ditampilkan
Contoh: bagian keuangan bs liat mahasiswa udh lunas atau belum, tapi dia ga butuh liat nilai mahasiswa. Dosen gabutuh tau lunas/ngganya, tapi butuh liat nilainya
5. Sharing of data and multi user transaction processing
-> concurrency control = mengatur transaksi mana yang dilakukan duluan apabila ada tabrakan transaksi
-> ada 2 proses dalam transaksi
1) pengurangan/ perubahan saldo pengirim
2) penambahan saldo penerima
Ingat analogi transfer uang di ATM! Misalnya Kenny punya 10 juta Febrian punya 3 juta. Kenny mau transfer 3 juta ke Feb. Yang dilakukan ATM adalah mengurangi saldo punya Kenny, baru menambahkan saldo Feb
Advantage of using DBMS approach:
1. Controlling redundancy
2. Restricting unauthorized access
3. Providing storage structures for efficient query processing
4. Providing backup and recovery
5. Enforcing integrity constraints -> contohnya bila di DB mahasiswa udah ada data nama, maka di DB nilai tidak perlu ada kolom untuk data nama, ckup pakai primary key nya saja (nanti dibahas mengenai primary key)
When NOT to use DBMS?
- Program yang simpel
- Program yang real-time
- No multiple user access to data
Data Model
> menggambarkan struktur database
> ada 3 macam:
- High level/ conceptual data models -> paling mudah dimengerti
- Representational/ implementation data models
- Low level/ physical data model -> sudah dalam bentuk dtaabase
Contoh High-level:
Contoh Representational:
Database schema: deskripsi dari sebuah database. dibuat saat mendesain database dan tidak diharapkan untuk berganti terus-menerus. isi dari database schema berupa nama dari record types dan data items, serta beberapa tipe constraints
Three Schema Architecture:
Low-level = database di komputer
Data Independence
> kemampuan untuk mengubah schema pada satu level dalam database
> ada 2 macam:
- Physical data independence = mengubah internal schema tanpa memengaruhi conceptual schema dan external schema
- Logical data independence = mengubah conceptual schema tanpa memengaruhi external schema/application programs
DBMS Languages
> Data Definition Language (DDL) -> banyak dipakai oleh admin
Analogi: ticketer kereta api, menentukan siapa bisa masuk
contoh:
-> DROP : hapus objek di DB
-> CREATE
-> ALTER : mengubah struktur di DB
-> TRUNCATE
> Data Manipulation Language (DML)
Contoh:
-> SELECT
-> INSERT
-> UPDATE
-> DELETE
>Transaction Control
Contoh
-> COMMIT (berhasil)
-> ROLLBACK (gagal)
Database Systems
> Functional Requirements: sistem dapat berfungsi untuk user kategori apa (user/admin) -> what function do users need
> Data Requirements: untuk fungsi tersebut dapat berjalan, data apa saja yang dibutuhkan
Entities
- Entity (persegi panjang) = sesuatu yang memang ada di dunia nyata, bisa disentuh/ abstrak (tangible/intangible) contoh, mahasiswa, mata kuliah
- Attribute (oval) = data-data yang ada pada entity
- Relationship
Jenis-jenis atribut:
1. Simple/atomic attribute: data tdk dapat dipecah-pecah, contohnya umur
2. Composite: data dapat dipecah-pecah, contoh data alamat bisa dipecah jadi jalan, kota, kode pos
3. Multivalue: data dapat terdiri dari lebih dari 1 value, contoh nomor telepon seseorang dapat lebih dari satu
4. Stored attribute: data yang sudah ada/diinput
5. Derived attribute data yang dapat dihasilkan dari data lain, contoh data umur dapat dihasilkan dari data tanggal lahir
6. Complex attribute: gabungan multivalue dan composite, contoh jika seseorang dpaat memiliki lebih dr 1 rumah dan setiap alamat rumah dipecah datanya menjadi jalan, kode pos, kota
7. NULL values -> tidak sama dengan nol, tidak sama dengan blank space
Mengapa diperlukan?
1. Nilai tidak dapat dipakai, contoh mahasiswa masukin form yang harus isi jabatan kerja
2. Data tidak diketahui, contoh pendaftaran maba, nomor telpon belum diketahui
Entity Types dan Entity Set
- Entity Types: kategori
- Entity Set: detail" datanya
contoh: data karyawan
karyawan -> entity type
Nama: John Smith, Umur: 55, Tempat tinggal: Jln Scientia Residence -> entity set
Key attributes ( data digarisbawah)
= data yang pasti beda satu dengan lainnya
Value Set (domains) of attribute
= restriction" yang ada yntuk tiap data berbeda
= Contoh: gender hanya boleh M/F
Relationship ( belah ketupat )
- Unary (rekursif) : relationship type dengan 1 degree, contoh karyawan supervise karyawan lainnya
- Binary: satu relationship dengan 2 degree/ entity
- Ternary: satu relationship dengan 3 degree
- N-ary: satu relationship dengan > 3 degree
Cardinality Ratios for Binary Relationships
- 1:1
- 1:N atau N:1
- M:N
Contoh:
Attribute dari Relationship
> Hanya akan muncul jika telah terhubung antara 2 entity
Attribute bukan punya salah satu entity, melainkan relationshipnya
Strong VS Weak entity
> Strong entity: punya key attribute (yang digarisbawah)
> Weak entity: tidak punya key attribute, sehingga digantikan dengan partial key (garis bawah putus-putus)
Simbol-simbol:
> Database = Kumpulan data" yang saling berhubungan
Contoh: data universitas bagian akademik
Data mahasiswa -> berhubungan dengan data Matkul -> berhubungan dengan data Dosen Pengampu
> Database Systems = essential components of everyday life in modern society
> Database dibuat untuk tujuan tertentu.
> Database merepresentasikan hal yang ada di dunia nyata -> mini world
yang disimpan datanya, di dunia nyata ada barangnya
> Database dapat memiliki Size kecil maupun besar
Contoh: buku telepon -> nama, nomor telpon
Katalog buku perpus -> nama, nomor rak, edisi, dll
Database Management System
> adalah kumpulan program-program yang membantu user membuat dan maintain database
> Meta-data: data tentang data
contohnya: data gender hanya boleh diisi dengan M/F, tidak dapat diisi dgn yang lain (diatur oleh meta data)
> Query: statement untuk manipulasi data
Contoh: dari database mahasiswa cuma mau ambil yang huruf depan namanya A
Characteristic of Database Approach:
1. Self-describing nature of database systems
contoh: ada data 14110110001#Dennis di sebuah file .txt
kalau di Dev-C, tipe datanya ditentukan saat di program
kalau di Database, ditentukan tipe datanya langsung di DataBase
2. Program dan data terpisah (program-data independence)
contoh: file .txt biasanya harus disimpan di file yg sama dengan programnya. Bila di database bisa terpisah
3. Insulation between programs and data, and data abstraction
Contoh: mau menambahkan kategori baru dalam database
4. Supprot multiple views of Data -> tergantung kebutuhan, data apa yang ditampilkan
Contoh: bagian keuangan bs liat mahasiswa udh lunas atau belum, tapi dia ga butuh liat nilai mahasiswa. Dosen gabutuh tau lunas/ngganya, tapi butuh liat nilainya
5. Sharing of data and multi user transaction processing
-> concurrency control = mengatur transaksi mana yang dilakukan duluan apabila ada tabrakan transaksi
-> ada 2 proses dalam transaksi
1) pengurangan/ perubahan saldo pengirim
2) penambahan saldo penerima
Ingat analogi transfer uang di ATM! Misalnya Kenny punya 10 juta Febrian punya 3 juta. Kenny mau transfer 3 juta ke Feb. Yang dilakukan ATM adalah mengurangi saldo punya Kenny, baru menambahkan saldo Feb
Advantage of using DBMS approach:
1. Controlling redundancy
2. Restricting unauthorized access
3. Providing storage structures for efficient query processing
4. Providing backup and recovery
5. Enforcing integrity constraints -> contohnya bila di DB mahasiswa udah ada data nama, maka di DB nilai tidak perlu ada kolom untuk data nama, ckup pakai primary key nya saja (nanti dibahas mengenai primary key)
When NOT to use DBMS?
- Program yang simpel
- Program yang real-time
- No multiple user access to data
Data Model
> menggambarkan struktur database
> ada 3 macam:
- High level/ conceptual data models -> paling mudah dimengerti
- Representational/ implementation data models
- Low level/ physical data model -> sudah dalam bentuk dtaabase
Contoh High-level:
Contoh Representational:
Database schema: deskripsi dari sebuah database. dibuat saat mendesain database dan tidak diharapkan untuk berganti terus-menerus. isi dari database schema berupa nama dari record types dan data items, serta beberapa tipe constraints
Three Schema Architecture:
Low-level = database di komputer
Data Independence
> kemampuan untuk mengubah schema pada satu level dalam database
> ada 2 macam:
- Physical data independence = mengubah internal schema tanpa memengaruhi conceptual schema dan external schema
- Logical data independence = mengubah conceptual schema tanpa memengaruhi external schema/application programs
DBMS Languages
> Data Definition Language (DDL) -> banyak dipakai oleh admin
Analogi: ticketer kereta api, menentukan siapa bisa masuk
contoh:
-> DROP : hapus objek di DB
-> CREATE
-> ALTER : mengubah struktur di DB
-> TRUNCATE
> Data Manipulation Language (DML)
Contoh:
-> SELECT
-> INSERT
-> UPDATE
-> DELETE
>Transaction Control
Contoh
-> COMMIT (berhasil)
-> ROLLBACK (gagal)
Database Systems
> Functional Requirements: sistem dapat berfungsi untuk user kategori apa (user/admin) -> what function do users need
> Data Requirements: untuk fungsi tersebut dapat berjalan, data apa saja yang dibutuhkan
Entities
- Entity (persegi panjang) = sesuatu yang memang ada di dunia nyata, bisa disentuh/ abstrak (tangible/intangible) contoh, mahasiswa, mata kuliah
- Attribute (oval) = data-data yang ada pada entity
- Relationship
Jenis-jenis atribut:
1. Simple/atomic attribute: data tdk dapat dipecah-pecah, contohnya umur
2. Composite: data dapat dipecah-pecah, contoh data alamat bisa dipecah jadi jalan, kota, kode pos
3. Multivalue: data dapat terdiri dari lebih dari 1 value, contoh nomor telepon seseorang dapat lebih dari satu
4. Stored attribute: data yang sudah ada/diinput
5. Derived attribute data yang dapat dihasilkan dari data lain, contoh data umur dapat dihasilkan dari data tanggal lahir
6. Complex attribute: gabungan multivalue dan composite, contoh jika seseorang dpaat memiliki lebih dr 1 rumah dan setiap alamat rumah dipecah datanya menjadi jalan, kode pos, kota
7. NULL values -> tidak sama dengan nol, tidak sama dengan blank space
Mengapa diperlukan?
1. Nilai tidak dapat dipakai, contoh mahasiswa masukin form yang harus isi jabatan kerja
2. Data tidak diketahui, contoh pendaftaran maba, nomor telpon belum diketahui
Entity Types dan Entity Set
- Entity Types: kategori
- Entity Set: detail" datanya
contoh: data karyawan
karyawan -> entity type
Nama: John Smith, Umur: 55, Tempat tinggal: Jln Scientia Residence -> entity set
Key attributes ( data digarisbawah)
= data yang pasti beda satu dengan lainnya
Value Set (domains) of attribute
= restriction" yang ada yntuk tiap data berbeda
= Contoh: gender hanya boleh M/F
Relationship ( belah ketupat )
- Unary (rekursif) : relationship type dengan 1 degree, contoh karyawan supervise karyawan lainnya
- Binary: satu relationship dengan 2 degree/ entity
- Ternary: satu relationship dengan 3 degree
- N-ary: satu relationship dengan > 3 degree
Cardinality Ratios for Binary Relationships
- 1:1
- 1:N atau N:1
- M:N
Contoh:
Attribute dari Relationship
> Hanya akan muncul jika telah terhubung antara 2 entity
Attribute bukan punya salah satu entity, melainkan relationshipnya
Strong VS Weak entity
> Strong entity: punya key attribute (yang digarisbawah)
> Weak entity: tidak punya key attribute, sehingga digantikan dengan partial key (garis bawah putus-putus)
Simbol-simbol: