By 04PTT (30%) PG 15 Soal (30%) Essay 3 Soal (@a,b) [Relation Aljabar, Relational Model, DB Environtment] (40%) Kasus 4 Soal (@a,b) [DML,DDL] Yang kasus katanya bentuknya coding².. kaya waktu kita praktikum.. Rel Algebra (Pert 4,5) Rel Model (Pert 3) DB Environtment (Pert 2) DML(Pert 7,8) DDL (Pert 9) - komponen dalam DBMS • Major components of a DBMS: – Query processor – Database manager (DM) – File manager – DML preprocessor – DDL compiler – Catalog manager • Major software components for database manager – Authorization control – Command processor – Integrity checker – Query optimizer – Transaction manager – Scheduler – Recovery manager – Buffer manager - menjelaskan (external, conceptual, internal level) 1. External level : Pandangan(view) pemakai terhadap database. Level ini menggambarkan bagian database yang relevan untuk pemakai tertentu. External level berisi sejumlah external view yang berbeda terhadap database. Setiap user mempunyai suatu pandangan dari ‘real world’ disajikan dalam bentuk yang familiar untuk user tersebut. 2. Conceptual level : Komunitas view dari database. Level ini menggambarkan apa yang disimpan dalam suatu database dan hubungan sejumlah data. Level menengah dalam arsitektur 3 leval adalah conceptual level. Level ini berisi struktur logikal dari database keseluruhan Conceptual level menyajikan: a. semua entity, atribut dan hubungannya b. batasan pada data c. informasi semantic tentang data d. informasi keamanan dan integritas Conceptual level mendukung setiap external view 3. Internal level : Representasi fisik database pada suatu computer. Level ini menggambarkan bagaimana data disimpan dalam suatu database. Internal level meliputi implementasi fisikal dari database untuk mencapai hasil run-time yang optimal dan utility tempat penyimpanan. Hal ini meliputi stuktur data dan organisasi file yang digunakan untuk menyimpan data pada media penyimpanan. Internal level dikonsentrasikan pada: a. alokasi tempat penyimpanan terhadap data dan index b. gambaran terhadap penyimpanan record (ukuran untuk item data yang disimpan) c. penempatan record d. teknik kompresi data dan enkripsi data Apa yang dimaksud dengan security dan administration ? Berikan contohnya ? Credits: Surianto, Ryan F, Benediktus L, Werrianky A, Idham By 04PTT Security artinya mengontrol pengaksesan data dalam database terhadap orang-orang yang tidak berwenang, sehingga mencegah : - Penyingkapan rahasia. - Perubahan data. - Perusakan / penghapusan data. Data Administration - Teknologi database dominan - Muncul fungsi baru (administrasi data) yaitu merencanakan kebutuhan dan pembagian data pada para user. - User merasa sebagai pemilik data, I/S terpadu berfungsi membagi data yang berkepentingan. Contoh : Ada 3 kelompok yang berhubungan dengan Database : a. USER : User adalah pemilik data, user sesuai dengan departemennya hanya berwenang untuk sekumpulan data tertentu, kontrol pengaksesan data oleh user ini dapat dilakukan dengan memakai PASSWORD. Password ini mempunyai 2 fungsi : - Memberi identifikasi seorang user - Memberi kewenangan (authorized) dan hak (privilege) Macam-macam hak pada sistem database adalah : 1. Hak retrieval : Mencari dan melaporkan 2. Hak Update pada record meliputi : - Append (Menambah) - Insert (Menyisipi) - Modifikasi (Merubah) - Delete (Menghapus) 3. Hak Definition File meliputi : - Create (Mendefinisikan file baru) - Revision (Merevisi definisi yang ada) - Delete (Menghapus seluruh file) - Memberi indeks 4. Hak GRANT (memberi) hak pada user. Hak definition dan Grant hanya dimiliki oleh DBA. Pembuatan Password harus mengingat hal-hal : 1. Mudah diingat 2. Sulit ditebak 3. Cukup sering diubah 4. Kerahasiaannya terlindungi. b. Programer : Ada 2 macam programer - Aplication Programer : Programer yang membuat program-program aplikasi - System programer : Programer yang membuat program-program sistem yang memadukan dan mengontrol programprogram aplikasi. misal : membuat menu untuk masing-masing user, membuat log transaction pemakaian program dan database dari para User dan sebagainya, dan harus mentaati prosedur password. c. Operation staff : Sering kerusakan data disebabkan operator yang kurang terlatih atau petunjuk yang kurang memadai atau sulit dipahami. Operator yang berhubungan dengan database adalah operator program aplikasi. Pengamanan data baginya antara lain berupa : - Validasi yang cukup pada data entry - Pengecekan jumlah counter dengan formulir data - Operator database (staff DBA) - Pada saat backup, data harus mendapat perhatian. Apakah Database Enviroment itu ? Jelaskan ! Database Environment (Lingkungan Basis Data) adalah infrastruktur teknologi yang diperlukan untuk mendukung pelaksanaan DBMS (Database Management System) dan penyimpanan dari database yang dikelola, termasuk perangkat keras komputer, mass storage, sistem operasi, perangkat lunak DBMS, data aktual, dan deskripsi data. Komponen-komponen dari Database Environment : - CASE Tools (alat bantu rekayasa piranti lunak) Credits: Surianto, Ryan F, Benediktus L, Werrianky A, Idham By 04PTT - Repository (pusat penampungan metadata / gudang data) - Database Management System (software untuk memanage database) - Database (tempat penampungan data) - Application Programs (software yang akan memakai data dari database) - User Interface (desain teks dan grafis yang akan ditampilkan kepada user) - Data Administrators (orang yang bertanggung jawab dalam melakukan perawatan pada database) - System Developers (orang yang bertanggung jawab dalam mendesain database dan software) - End Users (orang yang menggunakan aplikasi dan database) Sebutkan jenis-jenis key yang Anda ketahui dan berikan penjelasan secara singkat ! a. Super Key Super key merupakan sebuah atribut data atau kumplan atribut yang secara unik dapat mengindentifikasi sebuah tupel. contoh : misalnya database akademik maka super key yang digunakan adalah : npm,nama_mhs,tgllahir, alamat, dst b. Candidate Key Candidate key merupakan super key yang minal dapat mengindentifikasi tupel secara unik. contoh : npm dan nama_mhs c. Primary Key Primary key merupakan candidat key yang terpilih yang secara unik yang dapat mengindentifikasi tupel contoh : npm d. Alternate key Alternate key merupakan key yang tidak terpilih contoh : nama_mhs e. Composite key Composite key merupakan gabungan dua key atau lebih yang secara unik dapat menidentiifikasi sebuah tupel. Contoh : npm, dan kode_matkul f. Foreign Key Foreign Key merupakan atribut yang merupakan key pada relasi lain. Contoh : npm, kode_matkul pada relasi ambil_matkul Apa perbedaan antara Relasi Aljabar dengan Calculus ? Relasi Aljabar adalah suatu bahasa penulisan dengan operasi-operasi didalamnya yang digunakan untuk melakukan satu atau lebih relasi tanpa harus mengubah relasi awalnya dan menghasilkan relasi yang baru sehingga nantinya digunakan untuk mendapatkan informasi yang diperlukan. Operasi dasar relasi Aljabar: 1. relasi unary - Selection (σ) untuk memilih baris satu sub-set record dalam suatu relasi yang memenihu kondisi pemilihan (dengan syarat). Contoh: List all staff with a salary greater than £10,000. salary > 10000 (Staff) Credits: Surianto, Ryan F, Benediktus L, Werrianky A, Idham By 04PTT Select * From staff Where salary>10000 - Projection (∏) untuk memilih atribut vertikal atu kolom tertentu dari himpunan/sub himpunan dan membuang anggota yang duplikat. Produce a list of salaries for all staff, showing only staffNo, fName, lName, and salary details. staffNo, fName, lName, salary(Staff) Select staffNo, fname, Iname, salary From staff 2. Relasi Binary - Union (∪) untuk menggabungkan semua anggota relasi (R) saja atau (S) saja atau kedua-duanya dan membuang anggota yang sama. • List all cities where there is either a branch office or a property for rent. city(Branch) city(PropertyForRent) - Intersection (∩) untuk menggabungkan semua anggota relasi (R) dan (S) yang sama. List all cities where there is both a branch office and at least one property for rent. city(Branch) city(PropertyForRent) - Set Difference (−) untuk memilih anggota R yang bukan anggota S. List all cities where there is a branch office but no properties for rent. city(Branch) – city(PropertyForRent) Credits: Surianto, Ryan F, Benediktus L, Werrianky A, Idham By 04PTT - Cartesian Product (×) untuk menghubungkan setiap record (R) dengan setiap record yang ada di (S). List the names and comments of all clients who have viewed a property for rent. (clientNo, fName, lName(Client)) X (clientNo, propertyNo, comment (Viewing)) - Cross-Product ( |x| ) operasi equijoin yang mana yang mana pasangan attribut-atribut yang di’join’kan memiliki nama yang sama Contoh Rumus: Client |x| viewing.clientNo=client.clientNo Viewing - Divison ( ÷ ) untuk menggabungkan attribut C (himpunan A - B) yang terdiri dari himpunan yang berada di R yang menghubungkan kombinasi dari setiap anggota yang ada di S. Relasi Kalkulus adalah relasi yang lebih menspesifikasikan apa yang harus ditampilkan daripada bagaimana menampilkannya. Operasi dasar relasi kalkulus: - Existensial Quantifier(∃) digunakan pada formula yang harus bernilai benar untuk paling sedikit satu instance. - Universal Quantifier (∀) digunakan untuk formula yang harus bernilai benar untuk semua instance. Apakah fungsi dari query processing ? Query processing adalah proses pada DBMS ketika menerima query sampai menghasilkan tupple-tupple sesuai query yang diminta ada 3 tahap yaitu: 1. parsing dan translation --> pada tahap ini diperiksa apakah input yang masuk sesuai atau tidak dan juga akan diubah kode dari sintaks deklaratif ke bentuk intrenal yang procedural (contoh: aljabar relational) 2. optimization --> aljabar relasional akan di detailkan yaitu detail plan setiap eksekusi 3. execution --> mengeksekusi execution plan hasil optimasi dan mengembalikan outputnya sesuai query Jadi, fungsi dari query processing adalah mengubah query dalam high level language ke low level language sesuai dengan yang diminta oleh user Berikan contoh2 Advanced SQL ! 1. SQL UNION SELECT TanggalPenjualan from TrPenjualan UNION SELECT TanggalPembelian from TrPembelian ---> union untuk menggabungkan tanggalpenjualan dari TrPenjualan dengan tanggalpembelian dari TrPembelian menjadi 1 table dan membuang tanggal yang sama seperti memakai fungsi distinct 2. SQL UNION ALL SELECT TanggalPenjualan from TrPenjualan UNION ALL SELECT TanggalPembelian from TrPembelian ---> union all untuk menggabungkan tanggalpenjualan dari TrPenjualan dengan tanggalpembelian dari TrPembelian menjadi 1 table tanpa membuang tanggal yang sama 3. INTERSECT Credits: Surianto, Ryan F, Benediktus L, Werrianky A, Idham By 04PTT SELECT TanggalPenjualan from TrPenjualan INTERSECT SELECT TanggalPembelian from TrPembelian --> untuk menampilkan hanya tanggal yang sama antara TanggalPenjualan dengan 4. MINUS SELECT TanggalPenjualan from TrPenjualan MINUS SELECT TanggalPembelian from TrPembelian --> untuk menampilkan TanggalPenjualan dari TrPenjualan yang tidak ada di TanggalPembelian TanggalPembelian TrPembelian 5. LIMIT SELECT ID_Penjualan,TanggalPenjualan, Harga from TrPenjualan ORDER BY Harga DESC LIMIT 2 --> untuk menampilkan 2 harga terbesar pada TrPenjualan 6. TOP SELECT TOP 2 ID_Penjualan,TanggalPenjualan, Harga from TrPenjualan ORDER BY Harga DESC --> untuk menampilakn 2 harga terbesar pada TrPenjualan 7. IN SELECT * from TrPenjualan where NamaKaryawan in ( SELECT NamaKaryawan from MsKaryawan where ID_Karyawan like '%a' ) --> untuk menghasilkan data pada table yang diinginkan yang jika syarat nya terdapat pada table lain 8. EXISTS SELECT * from TrPenjualan tp where exists ( SELECT * from MsKaryawan mk where tp.ID_Karyawan=mk.ID_Karyawan and ID__Karyawan like '%a' ) --> sama seperti in tetapi dalam exists harus digabungkan 2 table 9. CASE SELECT ID_Penjualan,CASE NamaKaryawan WHEN 'Ani' then Harga*2 WHEN 'Ari' then Harga*3 ELSE Harga END "Harga Baru", TanggalPenjualan FROM TrPenjualan --> untuk menjalankan syarat pada query sesuai yang diingkan user Apakah DML itu ? Sebutkan contoh2 sintaks yang digunakan dalam DML ! DML (Data Manipulation Language) merupakan komponen utama dalam bahasa SQL yang digunakan untuk pengambilan dan perubahan data pada sistem basis data. DML dibuat berdasarkan aljabar relasi dan kalkulus relasi tuple. Sintaks pada DML 1. SELECT Digunakan untuk mencari data dalam basis data. Credits: Surianto, Ryan F, Benediktus L, Werrianky A, Idham By 04PTT Select mempunyai banyak sintaks lagi yang dibagi ke dalam Select Statement. Yang merupakan Select Statement adalah : SELECT Digunakan untuk menspesifikasikan kolom mana yang akan ditampilkan FROM Digunakan untuk menspesifikasikan table yang akan digunakan WHERE Digunakan untuk memfilter baris GROUP BY Digunakan untuk membentuk kelompok baris yang memiliki nilai sama HAVING Digunakan untuk memfilter subjek grup menjadi sebuah kondisi ORDER BY Digunakan untuk menspesifikasikan order dari sebuah kondisi Format Sintaksnya: SELECT [DISTINCT | ALL] {* | [columnExpression[AS newName]][,...]} FROM TableName [alias] [,...] WHERE [condition] GROUP BY [columnList] HAVING [condition] ORDER BY [columnList] 2. INSERT Digunakan untuk menambah data kedalam basis data. Format Sintaksnya : INSERT [INTO] table_or_view [(columnList)] data_values 3. UPDATE Digunakan untuk mengubah data pada basis data Format Sintaksnya : UPDATE (column) 4. DELETE Digunakan untuk menghapus data pada basis data Format Sintaksnya : DELETE FROM (column) Apakah DDL itu ? Sebutkan contoh2 sintaks yang digunakan dalam DDL ! Data Definition Language (DDL) adalah bahasa dalam DBMS yang digunakan untuk membuat atau mendefinisikan obyekobyek di dalam database. Hasil kompilasi dari perintah DDL adalah satu set dari tabel yang disimpan dalam file khusus disebut data dictionary/directory. Contoh sintaks DDL dalam pembuatan database/table,index dan view : 1. Pembuatan Database Bentuk umumnya : CREATE DATABASE nama_db Contoh : Buat database dengan nama organisasi PT. ABC Sintaks : CREATE DATABASE PT.ABC 2. Pembuatan Tabel Bentuk umumnya : CREATE TABLE nama_table(nama_kolom1 jenis_kolom1, nama_kolom2 jenis_kolom2, ...) Contoh : Buat tabel mahasiswa yang terdiri dari NIM dengan panjang 8 char, Nama dengan panjang 30 char, Alamat dengan panjang 40 char, Jenkel dengan panjang 1 char Sintaks : CREATE TABLE Mahasiswa(NIM char(8) NOT NULL, Nama char(30) NOT NULL, Alamat char(40) NOT NULL, JenKel char(1) NOT NULL) 3. Pembuatan Index Bentuk umumnya : CREATE [UNIQUE] INDEX nama_index ON nama_table (nama_kolom) Contoh : Buat index data mahasiswa berdasarkan NIM dengan nama MHSIN dimana NIM tidak boleh sama Credits: Surianto, Ryan F, Benediktus L, Werrianky A, Idham By 04PTT Sintaks : CREATE UNIQUE INDEX MHSIN ON MHS(NIM) 4. Pembuatan View Bentuk umumnya : CREATE VIEW [(nama_kolom1, ...)] AS SELECT statement [WITH CHECK OPTION] Contoh : Buat view dengan nama MHSVIEW yang berisi semua data mahasiswa Sintaks : CREATE VIEW MHSVIEW AS SELECT * FROM MHS Contoh sintaks DDL untuk menghapus database/table,index dan view : 1. Menghapus Database Bentuk umumnya : DROP DATABASE nama_db 2. Menghapus Tabel Bentuk umumnya : DROP TABLE nama_table 3. Menghapus Index Bentuk umumnya : DROP INDEX nama_index 4. Menghapus View Bentuk umumnya : DROP VIEW nama_view Contoh sintaks DDL untuk mengubah struktur tabel : 1. Menambahkan kolom Bentuk umumnya : ALTER TABLE nama_table> ADD (nama_kolom jenis_kolom) Contoh : Tambahkan kolom NoTelp dengan panjang 8 char pada tabel mahasiswa Sintaks : ALTER TABLE Mahasiswa ADD (NoTelp char(8)) 2. Mengubah panjang kolom Bentuk umumnya : ALTER TABLE nama_table MODIFY (nama_kolom jenis_kolom) Contoh : Ubah panjang kolom alamat menjadi 50 char Sintaks : ALTER TABLE Mahasiswa MODIFY (Alamat char(50)) 3. Menghapus kolom Bentuk umumnya : ALTER TABLE nama_table> DROP (nama_kolom jenis_kolom) Contoh : Hapus kolom JenKel dari tabel mahasiswa Sintaks : ALTER TABLE Mahasiswa DROP Apakah FBS itu? FBS adalah sistem database yang berdasarkan pada suatu file, dimana kita secara manual melalui inputan komputer untuk meng-update, menyisipkan, menghapus, menambah data baru ke databse, dan lain-lain. Contoh : database toko-toko kecil Keuntungan FBS adalah : (1)Kapasitas memori kecil (2)Tidak memerlukan teknisi databse untuk mengelolanya (3)Proses berjalan lebih cepat daripada DBMS Kekurangan FBS adalah: (1)Memiliki tingkat keamanan yang rendah (2)Integritas antar database rendah (3)Tingkat kerumitan yang cukup kompleks untuk mengupdate suatu data karena harus mengupdate data yang lain Credits: Surianto, Ryan F, Benediktus L, Werrianky A, Idham