Sistem Basis Data 1 - Gunadarma...
Transcript of Sistem Basis Data 1 - Gunadarma...
Sistem Basis Data 1
Pertemuan 5 dan 6 Aljabar Relasional dan SQL
Rogayah, ST.,MMSI Untuk 3DB01 dan 3DB04
Bahasa Pada Model data Relasional
Menggunakan bahasa query, yaitu pernyataan yang diajukan untuk mengambil informasi Terbagi 2 : 1. Bahasa Query Formal Bahasa query yang diterjemahkan dengan menggunakan simbol-simbol matematis. Terbagi 2, yaitu: a. Prosedural, yaitu pemakai memberi spesifikasi data apa yang dibutuhkan dan bagaimana cara mendapatkannya.
Bahasa Pada Model data Relasional
Contoh: Aljabar Relasional , yaitu dimana query diekspresikan dengan cara menerapkan operator tertentu terhadap suatu tabel / relasi. b. Non Prosedural, yaitu pemakai menspesifikasikan data apa yang dibutuhkan tanpa menspesifikasikan bagaimana untuk mendapatkannya. Contoh: • Kalkulus Relasional, dimana query menjelaskan set tuple yang
diinginkan dengan cara menjelaskan predikat tuple yang diharapkan. Terbagi 2 :
1. Kalkulus Relasional Tupel 2. Kalkulus Relasional Domain
Bahasa Pada Model data Relasional
2. Bahasa Query Komersial Bahasa Query yang dirancang sendiri oleh programmer menjadi suatu program aplikasi agar pemakai lebih mudah menggunakannya (user friendly). • Contoh : QUEL • Berbasis pada bahasa kalkulus relasional QBE • Berbasis pada bahasa kalkulus relasional SQL • Berbasis pada bahasa kalkulus relasional dan aljabar
relasional
1. Aljabar Relasional
Aljabar Relasional
Structure Query Language
Structure Query Language (SQL) merupakan komponen bahasa relational database system. SQL merupakan bahasa baku (ANSI/SQL), non procedural, dan berorientasi himpunan (set-oriented language). SQL dapat digunakan baik secara interaktif atau ditempelkan (embedded) pada sebuah program aplikasi
Structure Query Language Komponen-Komponen SQL a. Data Definition Language (DDL) : • Digunakan untuk mendefinisikan data dengan menggunakan
perintah : create, drop, alter.
b. Data Manipulation Language (DML) : • Digunakan untuk memanipulasi data dengan menggunakan
perintah : select, insert, update, delete. Data Manipulation Language merupakan bagian terpadu bahasa SQL. Perintah-perintahnya dapat dibuat secara interaktif atau ditempelkan pada sebuah program aplikasi. Pemakai hanya perlu menentukan 'APA' yang ia inginkan, DBMS menentukan 'BAGAIMANA' cara mendapatkannya. c. Data Control Language (DCL) : • Digunakan untuk mengontrol hak para pemakai data dengan
perintah : grant, revoke
Structure Query Language
Structure Query Language
• DATA DEFINITION LANGUAGE
1. CREATE TABLE
Fungsi : membuat tabel
Sintaks : CREATE TABLE tbname – (col 1 data type data spec,
col 2 data type data spec, – .
– .
PRIMARY KEY (col1,……))
Structure Query Language
• Contoh :
CREATE TABLE PERSONEL
(REGNO CHAR(10) NOT NULL,
NAME CHAR(45) NOT NULL,
ADDRESS CHAR(45),
BIRTH DATE NOT NULL WITH DEFAULT,
PRIMARY KEY (REGNO))
Structure Query Language
• NULL Spesifikasi NULL, NOT NULL, NOT NULL WITH DEFAULT • NULL : dapat diinterpretasikan sebagai nilai yang tidak diketahui atau tidak tersedianya suatu nilai. Null bukan berarti kosong (blank) atau 0 (Nol) • NOT NULL : pemakai atau program harus memberikan nilai-nilai pada saat memasukkan record • NOT NULL WITH DEFAULT : nilai default disimpan pada saat record dimasukkan tanpa nilai yang ditentukan untuk kolom ini.
Structure Query Language
2. CREATE VIEW
• Fungsi : membuat tabel view.
View merupakan bentuk alternatif penyajian data dari satu atau lebih tabel. View dapat berisi semua atau sebagian kolom yang terdapat pada tabel dimana kolom tersebut didefinisikan.
• Tujuan membuat view : • Meningkatkan keamanan data
• Meningkatkan kemandirian data
• Penyederhanaan bagi end user (data yang sedikit, nama-nama kolom yang baru dan dapat dibaca dengan lebih baik)
Structure Query Language
• Sintaks : CREATE VIEW viewname (column1, column2, ……..) AS SELECT statement FROM tbname [WITH CHECK OPTION] • Keterangan : • View-name : nama view yang akan dibuat. • Column : nama atribut untuk view • Statement : atribut yang dipilih dari tabel basis data. • Tabel-name : nama tabel basis data. Contoh : CREATE VIEW VPERSON (REGNO, NAME) AS SELECT REGNO, NAME FROM PAUL.PERSONEL
Structure Query Language
• CREATE INDEX
Fungsi : membuat index
Sintaks :
CREATE [UNIQUE] INDEX indexname ON nama_table (nama_kolom)
• Contoh :
CREATE UNIQUE INDEX PRSONIDX
ON PERSONEL(REGNO)
Structure Query Language
4. DROP TABLE Fungsi : menghapus Tabel • Sintaks : DROP TABLE tbname • Contoh : DROP TABLE PERSONEL Dengan perintah itu obyek lain yang berhubungan dengan tabel tersebut otomatis akan dihapus atau tidak akan berfungsi seperti : - semua record dalam tabel akan terhapus - index dan view pada tabel akan hilang - deskripsi tabel akan hilang TRUNCATE / Menghapus isi Tabel TRUNCATE nama_tabel; Contoh : TRUNCATE Mahasiswa;
Structure Query Language
Bentuk Lain:
DROP TABLE [schema_name].table_name [ CASCADE CONSTRAINTS ] [ PURGE ]; (Pada Oracle) Parameter atau argumen: schema_name Nama skema yang memiliki tabel. table_name Nama tabel untuk menghapus dari database Oracle. [ CASCADE CONSTRAINTS ] Pilihan. Jika ditentukan, semua batasan integritas referensial akan turun juga. PURGE Pilihan. Jika ditentukan, tabel dan objek yang tergantung akan dibersihkan dari recycle bin dan Anda tidak akan dapat memulihkan tabel. Jika tidak ditentukan, , tabel dan objek yang tergantung ditempatkan di recycle bin dan dapat kembali nanti, jika diperlukan.
Structure Query Language
5. DROP VIEW
• Fungsi : menghapus view
Sintaks : DROP VIEW viewname
Contoh : DROP VIEW VPERSON
6. DROP INDEX
• Fungsi : menghapus index Sintaks : DROP INDEX indexname
Contoh : DROP INDEX PRSONIDX
Structure Query Language
Flashback Table
Gunakan pernyataan Flashback untuk memulihkan keadaan sebelumnya dari meja di acara kesalahan manusia atau aplikasi.
FLASHBACK TABLE print_media TO BEFORE
DROP; atau
FLASHBACK TABLE print_media TO BEFORE DROP RENAME TO print_media_old;
Structure Query Language
7. ALTER
• Fungsi : merubah atribut pada suatu tabel
Sintaks :
ALTER TABLE tbname
MODIFY (nama_kolom tipe_kolom)
ADD (nama_kolom tipe_kolom [[before, nama_kolom]]) DROP (nama_kolom tipe_kolom)
Contoh : merubah Tabel TABX dengan menambah Field D.
ALTER TABLE TABX
ADD D CHAR(3)
Structure Query Language
Syntax: ALTER TABLE nama_tabel MODIFY nama_kolom tipe_data_baru; Contoh: ALTER TABLE daftar_jurusan MODIFY jumlah_mahasiswa MEDIUMINT; Syntax: ALTER TABLE nama_tabel CHANGE nama_kolom nama_kolom_baru tipe_data; Contoh: ALTER TABLE daftar_jurusan CHANGE alamat alamat_jurusan VARCHAR(100) Syntax: ALTER TABLE <nama_tabel_lama>RENAME TO <nama_tabel_baru>; Contoh ubah nama tabel. ALTER TABLE daftar_jurusan RENAME TO tabel_jurusan; atau RENAME TABLE nama_tabel_lama TO nama_tabel_baru;
Structure Query Language
Syntax: ALTER TABLE nama_tabel ADD nama_kolom_baru tipe_data; Contoh: ALTER TABLE daftar_jurusan ADD ketua_jurusan VARCHAR(50); Syntax: ALTER TABLE nama_tabel DROP nama_kolom; Contoh: ALTER TABLE daftar_jurusan DROP ketua_jurusan;
Structure Query Language
DATA MANIPULATION LANGUAGE 1. INSERT • Fungsi : menambah baris (record) baru Sintaks : INSERT INTO tbname (col1, ...) VALUES (value1, ...) Contoh : INSERT INTO S (ID,Name,Jumlah,Kota)VALUES ('S1','Smith',20,'London'); Catatan : Sintaks tersebut dapat digunakan jika jumlah kolom = jumlah nilai, tetapi jika dalam tabel semua kolom akan diisi dapat digunakan sintaks berikut ini : Sintaks : INSERT INTO tbname VALUES (value1, value2, ...) Nilai-nilai diisikan sebanyak kolom yang terdapat di tabel tersebut. Contoh : INSERT INTO S VALUES ('S2','Jones,10,'Paris'); atau jika beberapa kolom saja: Contoh : INSERT INTO S (ID,Name) VALUES ('S3','Blake‘);
Structure Query Language
3. DELETE
Fungsi : menghapus record
• Sintaks : DELETE FROM tbname WHERE kondisi
• Contoh :
DELETE FROM Mahasiswa WHERE jurusan = 'Teknik Informatika';
DELETE FROM Mahasiswa;
Structure Query Language
4. SELECT Fungsi : menampilkan record Sintaks : SELECT [DISTINCT] colname FROM tbname [WHERE kondisi] SELECT NIP,nama_dosen FROM daftar_dosen WHERE alamat='Padang'; [GROUP BY kondisi] SELECT nim, nama, AVG(nilai) as rata_rata FROM nilai GROUP BY nim; [HAVING kondisi] SELECT nim, nama, AVG(nilai) as rata_rata FROM nilai GROUP BY nim HAVING AVG(nilai)>80; [ORDER BY kondisi] SELECT * FROM mata_kuliah WHERE jumlah_SKS > 2 ORDER BY jumlah_SKS; SELECT * FROM daftar_dosen ORDER BY alamat ASC;
SELECT
• [ALL | DISTINCT | DISTINCTROW ] • [HIGH_PRIORITY] • [STRAIGHT_JOIN] • [SQL_SMALL_RESULT] [SQL_BIG_RESULT] [SQL_BUFFER_RESULT] • [SQL_CACHE | SQL_NO_CACHE] [SQL_CALC_FOUND_ROWS] • select_expr [, select_expr ...] • [FROM table_references • [WHERE where_condition] • [GROUP BY {col_name | expr | position} • [ASC | DESC], ... [WITH ROLLUP]] • [HAVING where_condition] • [ORDER BY {col_name | expr | position} • [ASC | DESC], ...] • [LIMIT {[offset,] row_count | row_count OFFSET offset}] • [PROCEDURE procedure_name(argument_list)] • [INTO OUTFILE 'file_name' • [CHARACTER SET charset_name] • export_options • | INTO DUMPFILE 'file_name' • | INTO var_name [, var_name]] • [FOR UPDATE | LOCK IN SHARE MODE]]
Structure Query Language
2. UPDATE
• Fungsi : merubah record
Sintaks : UPDATE tbname SET field = ekspresi WHERE kondisi
UPDATE daftar_dosen SET no_hp ='085298710065‘ WHERE nama_dosen='Sabrina Sari';
Structure Query Language
Fungsi Perhitungan • COUNT : jumlah baris dan kolom SELECT COUNT(*) FROM S • SUM : jumlah nilai dam kolom SELECT SUM (QTY) FROM SP WHERE Pn = 'P2' • AVG : rata - rata nilai dalam kolom SELECT AVG(stock) as ratastock from barang • MAX : nilai terbesar dalam kolom SELECT MAX(stock) as ratastock from barang • MIN : nilai terkecil dalam kolom SELECT MIN(stock) as ratastock from barang
Structure Query Language
• DATA CONTROL LANGUAGE
1. GRANT
• Fungsi : digunakan untuk memberikan izin akses kepada user
Sintaks : GRANT privileges ON tbname TO user
• Contoh :
GRANT SELECT ON CLUB TO PUBLIC
GRANT SELECT, INSERT, UPDATE, DELETE ON CLUB TO USER01
Structure Query Language
2. REVOKE
• Fungsi : digunakan untuk mencabut izin akses kepada user
Sintaks : REVOKE privileges ON tbname FROM user
• Contoh :
REVOKE INSERT, UPDATE, DELETE ON CLUB FROM USER01
REVOKE ALL ON CLUB FROM PUBLIC
Structure Query Language
SQL menyediakan dua karakter yang memungkinkan Anda untuk membangun pola. Kedua wildcard adalah persentase (%) dan garis bawah (_). Persentase (%) wildcard cocok dengan urutan karakter apapun termasuk ruang.
Garis bawah (_) cocok satu karakter apapun.
Structure Query Language
SELECT Id, ProductName, UnitPrice, Package
FROM Product
WHERE ProductName LIKE 'Ca%‘
SELECT Id, ProductName, UnitPrice, Package
FROM Product
WHERE ProductName LIKE 'Cha_' OR ProductName LIKE 'Chan_'