Jumat, 18 Mei 2012

RABU 16 MEI 2012


Bahasa Query Formal :
  1. Bahasa query formal basis data relasional adalah bahasa untuk meminta informasi dari basis data. 
  2. Bahasa query  relasional formal merupakan  bahasa antara yang digunakan basis data, yaitu SQL dikonversi menjadi bahasa  rlasional formal sehingga dapa diterapkan sekumpulan informasi untuk memperoleh query paling efisien
  3. Terdapat dua jenis  bahasa query relasional formal yang utama, yaitu:
    Aljabar relasional.
    Kalkulus relasional.
  4. Aljabar Relational
    Relational Algebra (aljabar relasional) merupakan kumpulan operasi terhadap relasi dimana setiap operasi menggunakan satu atau lebih relasi untuk menghasilkan satu relasi yang baru dan termasuk kategori prosedural dan juga menyediakan seperangkat operator untuk memanipulasi data.
  5. Aljabar Relational
    Terdapat  lima operasi dasar dalam aljabar relasional, yaitu:
    Selection
    Projection
    Cartesian – product ( X, juga disebut sebagai cross product )
    Union
    Set – difference ( - )
    Rename
  6. Aljabar Relational
    Operasi – operasi turunan dari operasi – operasi dasar tersebut adalah:
    Set intersection
    Theta join
    Natural-join
    Outer-join
    Division
Bahasa Query Komersial :
  1. Structure Query Language (SQL) dibuat oleh IBM pada tahun 1970 untuk digunakan untuk mengakses dan mengolah database.
    JENIS SQL:
    1. Interactive, langsung dapat dioperasikan
    2. Embedded, disisipkan ke dalam sebuah program


    PENGELOMPOKAN STATEMEN SQL

        Data Definition Language (DDL): Create Database, Create Table, Create Index (untuk membuat primary key), Create View (untuk mengambil sebagian kolom), Alter Table (untuk memodifikasi table), Drop Database, Drop Table, Drop Index, Drop View
        Data Manipulation Language (DML): Insert, Select, Update, Delete
        Data Access: Grant, Revoke
        Data Integrity: Recover Table
        Auxiliary: Unload, Load, Rename Column


    KASUS DATA DEFINITION LANGUAGE (DDL)
    1. Pembuatan Database

        Sintaks : CREATE DATABASE (nama_db)
        Contoh : Buat database dengan nama organisasi PT. ABC
        Caranya : CREATE DATABASE PT_ABC

    2. Pembuatan Table

        Sintaks : CREATE TABLE nama_table (nama_kolom1 jenis kolom1,nama_kolom2 jenis_kolom2)
        Contoh : Buat table dengan struktur database MHS (NPM char(8), NAMA char(25), ALAMAT char(30))
        Caranya : CREATE TABLE MHS (NPM char(8) notnull, NAMA char(25)notnull, ALAMAT char(30) notnull)
        Keterangan: notnull artinya data tidak boleh kosong

    3. Pembuatan Index

        Sintaks : CREATE UNIQUE INDEX nama_index ON nama_table (nama_kolom)
        Contoh : Buat index mahasiswa berdasarkan NPM dengan nama MHSIN dimana NPM tidak boleh sama
        Caranya : CREATE UNIQUE INDEX MHSIN ON MHS(NPM)

    4. Pembuatan View

        Sintaks : CREATE VIEW nama_view[(nama_kolom1,…)]
        AS SELECT statement [WITH CHECK OPTION]
        Contoh : Buat view dengan nama MHSVIEW yang berisi semua data mahasiwa
        Caranya : CREATE VIEW MHSVIEW
        AS SELECT * FROM MHS

    5. Menghapus Database, Table, Index dan View

        Sintaks : DROP DATABASE nama_db;
        DROP TABLE nama_table; Contoh: DROP TABLE MHS
        DROP INDEX nama_index;
        DROP VIEW nama_view:

    6. Merubah Struktur Table

        Sintaks : ALTER TABLE nama_table
        ADD (nama_kolom, jenis_kolom)
        BEFORE (nama_kolom)
        MODIFY (nama_kolom, jenis_kolom)
        DROP (nama_kolom, jenis_kolom)
        Contoh : - Tambahkan kolom JKEL dengan panjang 1 char pada table MHS
        - Ubah panjang kolom MTKULIAH menjadi 30 char
        - Hapus kolom JKEL dari data table MHS
        Caranya : - ALTER TABLE MHS ADD (JKEL char(1));
        - ALTER TABLE MKUL MODIFY (MTKULIAH char(30));
        - ALTER TABLE MHS DROP (JKEL char(1));


    KASUS DATA MANIPULATION LANGUAGE (DML)
    1. INSERT

        Sintaks : INSERT INTO nama_table[(nama_kolom1,…)]
        Contoh : Masukkan data matakuliah berkas akses dengan kode KK222 & besarnya 2
        Caranya : INSERT INTO MKUL VALUES (“KK222”,”Berkas Akses”,2);

    2. UPDATE

        Sintaks : UPDATE nama_table
        SET nama_kolom = ekspresi
        WHERE kondisi;
        Contoh : Ubah alamat menjadi “Depok” untuk mahasiswa yang memiliki NPM “50096487”
        Caranya : UPDATE MHS
        SET ALAMAT=”Depok”
        WHERE NPM=”50096487”

    3. DELETE

        Sintaks : DELETE FROM nama_table
        WHERE kondisi
        Contoh : Hapus data nilai matakuliah “KK021” bagi mahasiswa yang mempunyai NPM “10296832”
        Caranya : DELETE FROM NILAI
        WHERE NPM=”10296832” AND KDMK=”KK021”

    4. SELECT

        Menentukan informasi yang ingin dikeluarkan dari table-table untuk memberikan hasil table. Hasil yang dikeluarkan selalu berupa table relational.
        Keterangan:
        Select : memilih data yang akan ditampilkan berdasarkan atribut
        Distinct : menghilangkan duplikasi
        From : mendefinisikan seluruh table yang digunakan dalam query
        Where : menentukan syarat data yang akan dipilih
        Group by : mengelompokkan data yang mempunyai nila sama
        Having : syarat data yang dikelompokkan digunakan bersama group by
        Order by : mengurutkan data
        Sintaks : SELECT [DISTINC] nama_kolom
        FROM nama_table
        [WHERE kondisi]
        [GROUP BY nama_kolom]
        [HAVING kondisi]
        [ORDER BY nama_kolom [ASC/DESC]]
        Contoh : tampilkan semua data mahasiswa
        Caranya : SELECT NPM, NAMA, ALAMAT FROM MHS
        atau bisa juga SELECT * FROM MHS
        Contoh : Tampilkan Mata Kuliah yang SKSnya 2
        Caranya : SELECT NAMA_MK FROM MATAKULIAH
        WHERE SKS = 2


    KASUS DATA ACCESS
    1. GRANT

        digunakan untuk memberikan hak akses, yang terdiri dari Insert, Update, Delete, Select.
        Sintaks : GRANT hak_akses ON nama_db
        [WITH GRANT OPTION]
        [AS GRANTOR] atau
        GRANT hak_akses ON nama_table
        TO nama_pemakai
        [WITH GRANT OPTION]
        [AS GRANTOR]
        Contoh : - Berikan hak akses kepada Adi untuk menampilkan nilai final tes
        - Berikan hak akses atau baca dari table S pada user JIM
        - Berikan hak baca dan ubah data untuk attribut status dan city pada user JIM dan Jack
        Caranya : - GRANT SELECT (FINAL) ON NILAI TO ADI
        - GRANT SELECT ON S TO JIM
        - GRANT SELECT, Update(status,city) ON S TO JIM, JACK

    2. REVOKE

        digunakan untuk menarik hak akses pemakai.
        Sintaks : REVOKE hak_akses ON nama_db
        FROM nama_pemaikai; atau
        REVOKE hak_akses ON nama_table
        FROM nama_pemakai;
        Contoh : - Tarik kembali dari Adi hak akses untuk menampilkan nilai final tes
        - Menarik hak JIM untuk membaca pada table S
        - Smith tidak boleh melakukan delete dan update untuk tabel P
        - Joe tidak boleh melakukan apapun terhadap tabel S
        Caranya : - REVOKE SELECT (FINAL) ON NILAI FROM ADI
        - REVOKE SELECT ON S FROM JIM
        - REVOKE DELETE, UPDATE ON P FROM SMITH
        - REVOKE ALL ON S FROM JOE


    KASUS DATA INTEGRITY
    1. RECOVER TABE

        Sintaks : RECOVER TABLE nama_table
        Contoh : kembalikan keadaan data mahasiswa seperti pada saat sebelum terjadi kerusakan
        Caranya : RECOVER TABLE MHS;


    KASUS AUXILIARY
    1. UNLOAD

        Sintaks : UNLOAD TO “nama_path” DELIMETER “char_pemisah” SELECT statement;
        Contoh : Ubah semua data mahasiswa ke bentuk ASCII dan disimpan ke file teks di directory /home/adi
        Caranya : UNLOAD TO “/home/adi/teks” DELIMETER “|” SELECT FROM MHS;

    2. LOAD

        Sintaks : LOAD FROM “nama_path” DELIMETER “char_pemisah”
        INSERT INTO nama_table [nama_kolom];
        Contoh : merubah file teks ke table MHS_2 di directory /home/adi
        Caranya : LOAD FROM “/home/adi/teks” DELIMETER “|” INSERT INTO MHS_2;

    3. RENAME

        Sintaks : RENAME_COLUMN nama_kolom_lama TO nama_kolom_baru
        Contoh : Ganti nama kolom ALAMAT yang ada pada table MHS menjadi KOTA
        Caranya : RENAME_COLUMN MHS ALAMAT TO KOTA
Kalkulus Relasional :
Merupakan alternatif untuk aljabar relasional.
Memungkinkan kita menggambarkan himpunan jawaban tanpa menyatakan secara eksplisit bagaimana jawaban tersebut dihitung.
Memiliki pengaruh yang besar pada desain bahasa query komersial seperti SQL.
Varian kalkulus yang disajikan secara detil disebut Tuple Relational Calculus (TRC) dimana pada TRC mengambil instan (tuple) sebagai nilainya.
Variabel Tuple merupakan variabel yang nilainya diambil dari tuple skema relasi tertentu, sehingga nilai yang ditentukan untuk satu variabel tuple tertentu, punya jumlah dan tipe field yang sama.
Bentuk tuple dari query kalkulus relasional :
        { T | p ( T ) }
    dimana T adalah sebuah variabel tuple dan p(T) adalah sebuah formula yang menggambarkan T.
Hasil dari query adalah himpunan dari semua tuple t dimana formula p(T) mengevaluasi true dengan T = t.
Penulisan formula p(T) adalah inti dari TRC dan pada dasarnya merupakan satu subset sederhana dari First – Order Logic.

Tidak ada komentar:

Posting Komentar