Basis Data

Rangkuman Basis Data

Saya akan membahas sedikit materi praktikum Basis Data, meliputi :

~ Bahasan I “Basis Data, Model Data, Diagram-R”

~ Bahasan II “Structured Query Language (SQL)”

~ Bahasan III “Data Defination Language (DDL)”

~ Bahasan IV “Data Manipulation Language (DML)”

~ Bahasan V “Query & View”

~ Bahasan VI “Data Control Language (DCL)”

 

BAHASAN I

BASIS DATA, MODUL DATA, DIAGRAM-R

 

Konsep Sistem Basis Data

adalah kumpulan data-data yang saling berkaitan sehingga dapat dengan mudah diolah dengan mudah oleh pengguna. contoh proses pengolahan data adalah menginput, menyimpan, memanggil dan menghapus data.

 

Konsep Model Data

merupakan suatu cara untuk menjelaskan tentang data-data yang tersimpan dalam basis data dan bagaimana hubungan antar  data tersebut untuk para pengguna (user) secara logika.”

 

Bahasa Basis Data

Bahasa yang digunakan untuk mendefinisikan, mengelolah dan memanipulasi basis data dikelompokkan 3 macam yaitu :


1. DDL (Data Definition Language) 

    digunakan untuk mendefinisikan struktur dan kerangka dari basis data yang meliputi :

a.  Membentuk basis data, tabel, indeks.

b.  Mengubah struktur table.

c.  Menghapus basis data, tabel atau indeks.

 

2. DML (Data Manipulation Language) 

    digunakan untuk menjabarkan pemrosesan data pada basis data yang meliputi :

a.    Menambahkan atau menyisipkan data baru ke basis data

b.    Mengelolah data yang tersimpan dalam basis data (query)

c.    Mengubah dan menghapus data dalam basis data.

 

3. DCL (Data Control Language) 

    digunakan untuk pengaturan hak akses pengguna pada basis data yang meliputi :

a.    Menugaskan hak akses terhadap basis data kepada pengguna atau grup pengguna.

b.    Membatalkan hak akses pengguna terhadap basis data

 

4.   Entity Relationship Diagram (ER-D)

Merupakan model data yang dikembangkan berdasarkan obyek atau entitas. ER_D berguna membantu perancang atau analis sistem pada saat melakukan analisis dan perancangan basis data karena model ini dapat menunjukkan macam data yang dibutuhkan dan direlasikan antar data di dalamnya.

 

Soal

 

Studi Kasus

Universitas Muhammadiyah Sidoarjo yang beralamatkan di Jl. Mojopahit 666B Sidoarjo akan membuat sebuah basis data untuk menyimpan dan mengelolah data pegawai. Basis data yang akan dibuat diberi nama basis data Kepegawaian. Basis data ini harus dapat mengelolah data pegawai dan data absensi pegawai.

 

Pada Universitas ini pegawai dibedakan menjadi pegawai tetap dan pegawai kontrak.Selain itu pegawai juga mempunyai jabatan dan golongan yang berbeda. Dimana Jabatan terbagi atas : Rektor, Wakil Rektor, Kepala Biro, Kepala UPT, Dekan, Kepala Program Studi, Kepala Laboratorium, Staff, Keamanan, Kebersihan. Sedangkan Golongan ditentukan oleh tingkat pendidikan yang di tempuh, dimulai dari golongan IA sampai golongan IVD. Jam Kerja di Universitas dibedakan menjadi dua yaitu hari Senin s/d Jum'at pukul 08.00-14.00 WIB sedangkan hari Sabtu pukul 08.00-12.00 WIB. Dari studi kasus di atas :

1.      Bacalah dengan seksama studi kasus di atas kemudian analisa-lah basis data pengolahan data kepegawaian seperti langkah-langkah diatas.

2.      Kumpulkan laporan (hasil analisa basis data ) sebelum Anda masuk ke pokok bahasan 2

 

Jawab :

1)      Tabel 1.1 Daftar Entitas

No

Entitas Nama

1

Pegawai

2

Absensi

3

Jabatan

4

Golongan

                                         

Tabel 1.2 Atribut msing-masing entitas

No

Entitas Nama

Atribut yang Diperlukan

1

Pegawai

Kode_pegawai, nama, kelamin, tempat_lahir,tanggal_lahir,alamat, telepon,pend_akhir, jabatan, golongan

2

Abesensi

id_absen, kode_pegawai, tanggal_absen, jam_masuk, Jam_keluar, keterangan

3

Jabatan

id_jabatan, jenis_jabatan

4

Golongan

id_golongan, jenis_golongan

 






Tabel 1.3 Primary key

No

Entitas Nama

Primary Key

1

Pegawai

Kode_pegawai

2

Absensi

id_absensi

3

Jabatan

id_jabatan

4

Golongan

id_golongan

 




Tabel 1.4 Krelasian antar entitas

Entitas yang berhubungan

Nama Kerelasian

Jenis Kerelasian

Representasi

Entitas I

Entitas II

Pegawai

Absensi

Melakukan

1-ke-n

Penghubung  NIP dalam entitas absensi

Pegawai

Jabatan

Mempunyai

1-ke-1

Penghubung  jabatan dalam entitas pegawai

Pegawai

Golongan

Memiliki

1-ke-1

Penghubung golongan dalam entitas pegawai


2)      ER_Diagram



3)      Model Konsepsual ER_Digram


 

4)      Kamus Data (Structure Entitas)

Tabel Pegawai

No

Field

Type

Size

Keterangan

1

Kode_pegawai

Vachar

5

Primay Key

2

Nama

Vachar

20

 

3

Kelamin

Enum

 

(L/P)

4

Tempat_lahir

Vachar

20

 

5

Tanggal_lahir

Date

 

 

6

Alamat

Vachar

50

 

7

Telepon

Vachar

12

 

8

Pendidikan_akhir

Vachar

10

 

9

id_jabatan

Vachar

5

Foreign Key

10

id_golongan

Vachar

5

Foreign Key


Tabel Absensi 

No

Field

Type

Size

Keterangan

1

id_absensi

Vachar

5

Primary Key

2

tanggal_absen

Date

 

 

3

kode_pegawai

Vachar

5

Foreign Key

4

Jam_kerja

Enum

 

 

5

Keterangan

Vachar

12

 


Tabel Jabatan

No

Field

Type

Size

Keterangan

1

id_jabatan

Vachar

5

Pimary Key

2

Jenis_jabatan

Vachar

20

 


Tabel Golongan

No

Field

Type

Size

Keterangan

1

id_olongan

Vachar

5

Pimary Key

2

jenis_golongan

Vachar

5

 

 



BAHASAN II

STRUCTURED QUERY LANGUAGE (SQL)

 

 A.  SQL (Structured Query Language)

SQL merupakan suatu bahasa (language) standar menurut ANSI (American National Standards Institute) yang digunakan untuk mengakses basis data. Kini SQL juga dijumpai pada berbagai platform, dari mikrokomputer hingga mainframe. 


B.  Elemen SQL

    Elemen dasar SQL mencakup pernyataan, nama, tipe data, konstanta, ekspresi, operator relasi, operator logika dan fiungsi bawaan.


a.   Pernyataan

Merupakan perintah SQL yang meminta sesuatu tindakan kepada DBMS (Database Management System).



 

b.   Nama

Nama digunakan sebagai identitas bagi objek-objek pada DBMS (Database Managenent System). Contoh objek pada DBMS adalah tabel, kolom dan pengguna

 

c.   Tipe Data

Setiap data memiliki tipe data. Berikut ini adalah tipe data dalam  MySQL :

 

Tipe

Keterangan

Range Nilai

TINYINT

Nilai integer yang sangat kecil

Signed : -128 s.d. 127

Unsigned : 0 s.d. 255

SMALLINT

Nilai integer yang kecil

Signed : -32768 s.d. 32767

Unsigned : 0 s.d. 65535

MEDIUMINT

Integer dengan nilai medium

Signed : -8388608 s.d. 8388607

Unsigned : 0 s.d. 16777215

INT

Integer dengan nilai standar

Signed : -2147483648 s.d. 2147483647

Unsigned : 0 s.d. 4294967295

BIGINT

Integer dengan nilai besar

Signed : -9223372036854775808 s.d. 9223372036854775807

FLOAT

Bilangan decimal dengan single-precission

Minimum  ±  1.175494351e-38

Maksimum  ± 3.402823466e+308

DOUBLE

Bilangan decimal dengan double-precission

Minimum  ± 2.2205738585072014-308

Maksimum  ± 1.7976931348623457+308

DECIMAL (M,D)

Bilangan float (decimal) yang dinyatakan  sebagai string, M adalah jumlah digit dibelakang koma

Tergantung pada nilai M dan D


        Tipe Data String atau Karakter

Tipe

Keterangan

Ukuran Maksimum

CHAR(n)

 

String karakter dengan panjang yang tetap, yaitu n

1 M byte

VARCHAR(n)

String karakter dengan panjang yang tidak tetap, maksimum n

1 M byte

TINYBLOR

 

BLOB (Binary Large Object) yang sangat kecil

28-1 byte

 

BLOB

BLOB berukuran kecil

216-1 byte

MEDIUMBLOB

BLOB berukuran sedang

224-1 byte

LONGBLOB

BLOB benukuran besar

232-1 byte

TINYTEXT

String teks yang sangat kecil

2-1 byte

TEXT

String teks berukuran kecil

216-1 byte

MEDIUMTEXT

String teks berukuran mediun (sedang)

224 -1 byte

LONGTEXT

Sting teks berukuran besar

232 -1 byte

ENUM

Enumerasi, kolom dapat diisi dengan satu member enumerasi

65535 anggota

SET

Himpunan, kolom dapat diisi dengan beberapa nilai anggota himpunan

64 anggota himpunan


        Tipe Data Tanggal dan Jam

Tipe

Range

Format

DATE

“1000-01-01” s.d. “9999-12 - 31”

“0000-00-00”

TIME

“-832:59:59” s.d. “838:59:59”

“00:00:00”

DATE TIME

“1000-01-01 00:00:00” s.d. “9999-12-31  23;59;59”

“00:00:00  00:00:00”

 


d.   Konstanta

Konstanta menyatakan nilai yang tetap atau tidak berubah. Konstanta sering di pakai pada perintah SELECT. Konstanta dibagi menjadi  2:

1. Konstanta bertipe numerik : 20,-3,15

2. Konstanta bertipe karakter: Saniya

nb:

Konstanta bertipe karakter atau String diapit oleh tanda petik tunggal. Dan konstanta dengan nilai pecahan desimal adalah berupa tanda titik.


e.   Operator Aritmatika

Operator Aritmatika adalah ekspresi untuk memperoleh suatu nilai dari hasil perhitungan. 


Simbol

Keterangan

*

Perkalian

/

Pembagian

+

Penjumlahan

-

Pengurangan

%

Sisa pembagian

 

 

f.    Operator Relasi

Merupakan operator yang digunakan untuk membandingkan suatu nilai dengan nilai yang lain

 

Simbol

Keterangan

=

Sama dengan

Lebih besar

Lebih kecil

>=

Lebih besar atau sama dengan

<=

Lebih kecil atau sama dengan

<> 

Tidak sama dengan

 


g.   Operator Logika

 

Simbol

Keterangan

NOT atau  !

Sebagai negasi atau pembalik nilai

OR atau  ||

Atau                                

AND atau  &&

Dan

 

 

h.    Fungsi Pembanding

 

Simbol

Keterangan

IS NOT NULL

Apakah sebuah nilai adalah  tidak kosong (not null)

IS NULL

Apakah sebuah nilai adalah  kosong (null)

BETWEEN

Apakah suatu nilai di antara dua batasan nilai

IN

Apakah suatu nilai berada di dalam pilihan yang ada

NOT IN

Apakah suatu nilai tidak berada dalam pilihan yang ada

LIKE

Apakah suatu nilai sesuai dengan kiteria tertentu

NOT LIKE

Apakah suatu nilai tidak sesuai dengan kriteia tertentu

 

i.    Aggregate Functions (Fungsi Agregat)

       Suatu fungsi yang digunakan untuk melakukan sumnmary, fungsi statistik standar yang dikenakan pada suatu tabel atau query.

Simbol

Keterangan

SUM

digunakan untuk mendapatkan nilai total

AVG

digunakan untuk mencari rata-rata

COUNT(x)

digunakan untuk menghitung jumlah record (baris)

MAX

digunakan untuk mencari nilai terbesar

MIN

digunakan untuk mencari nilai terkecil

 

C.  Perintah-perintah MySQL :

      a.   Perintah fasilitas bantuan pada MySQL.

           Mysql>help; atau Mysql>\h;


     b.    Perintah menampilkan versi MySQL yang digunakan

           Mysql>select version();


     c.     Perintah memubuat database di MySQL

           Mysql>create database perpustakaan; 


     d.     Perintah untuk mengaktifkan database yang akan digunakan

           Mysql>use perpustakaan;


     e.     Perintah menghasilkan tanggal sekarang dari system

           Mysql>select curdate;



BAHASAN III

DATA DEFINITION LANGUAGE (DLL)

 

A.  Data Definiton Language (DLL)

DLL merupakan bagian dari sql yang digunakan untuk mendefinisikan struktur dan kerangka data dan obyek basis data. Bisa juga dikatakan merupakan kelompok perintah yang berfumgsi unfuk meudefinisikan atribut-atribut basis data, tabel, batasan-batasan terhadap suatu atribut, serta hubungan antar tabel


B.  Perintah-perintah  DDL

Berikut ini perintah-perintah sql untuk DDL :


Perintah

Keterangan

Create Database

Membuat basis data

Drop Database

Menghapus basis data

Create Table

Membuat tabel

Alter Table

Mengubah atau menyisipkan kolom ke dalam tabel

Drop Table

Menghapus tabel dari basis data

Create Index

Membuat Index

Drop Index

Menghapus Index

 

Contoh :

1.  Buat sebuah database ke dalam MySQL.

#      Membuat database kepegawaian

Mysql>create database kepegawaian


2.  Buat tabel-tabel beserta Primery key dan Foreign Key

#      Mengaktifkan database

Mysql>use kepegawaian




#      Membuat Tabel Kepegawaian

>Create table pegawai(

Kode_pegawai varchar(5) not null primary key,

Nama varchar(25),

Kelamin enum(‘L’,’P’),

Tmpt_lahir varchar(50),

Tgl_lahir varchar(15),

Alamat varchar(50),

Telepon varchar(15),

Pend_akhir varchar(10),

Id_jabatan varchar(5),

Id_golongan varchar(5));

 

Alter table kepegawaian add constraint fk foreign key(id_jabatan) references jabatan(id_jabatan) on update cascade on delete no action;




Alter table kepegawaian add constraint fk1 foreign key(id_golongan) references jabatan(id_golongan) on update cascade on delete no action;




#      Membuat Tabel Jabatan

> Create table jabatan(

Id_jabatan varchar(5) not null primary key,

Jenis_jabatan varchar(35) not null);

> desc golongan;

 

#      Membuat Tabel Golongan

> Create table jabatan(

Id_jabatan varchar(5) not null primary key,

Jenis_jabatan varchar(35) not null);

> desc golongan;

 

#      Membuat Tabel Absensi

create table absensi(

Id_absensi int not null auto_increment key,

Tgl_absen date,

Kode_pegawai varchar(5),

Jam_masuk time,

Jam_keluar time,   

Keterangan varchar(15));

> desc absensi;

 


3. Pegawai di Universitas Muhammadiyah Sidoarjo juga dibedakan berdasarkan bagian yang meliputi : Rektorat, Biro Administrasi Akademik (BAA), Biro Administrasi Keuangan (BAK), Biro Administrasi Umum (BAU), Perpustakaan, PMB, LPPM, BPM Pusdakom. Buatlah tabel dengan ketentuan diatas.

#      Membuat Tabel Bagian

>create table bagian(

kd_bagian varchar(5) not null primary key,

nama_bagian varchar(35) not null);

 


Relasikan tabel pegawai dengan tabel bagian dan lihat perubahan tabelnya

#      Merelasikan tabel pegawai dengan tabel bagian menggunakan perintah ALTER

alter table pegawai addbkd_bagian varchar(5);






BAHASAN IV

DATA MANIPULATION LANGUAGE (DML)

 

Data Manipulation Language (DML)

merupakan perintah-perintah yang berfungsi untuk melakukan manipulasi data ataupun objek-objek yang ada didalam tabel.

Perintah DML sebagai berikut :

   -    INSERT

digunakan untuk menambahkan baris pada suatu  tabel. Syntax:

INSERT INTO namatabel VALUES (nilai1,nilai2,nilai-n);


   -   UPDATE

digunakan untuk mengubah isi data pada satu atau beberapa kolom pada suatu tabel. Syntax:

UPDATE namatabel SET kolom1=nilai1,kolom2=nilai2 [WHERE kondisi];


   -   SELECT

digunakan untuk menampilkan isi dari suatu tabel yang dapat dihubungkan dengan tabel yang lainnya. Syntax:

SELECT * FROM namatabel;  


   -   DELETE

digunakan untuk menghapus satu baris-baris dengan kondisi tertentu atau seluruh baris. Syntax:

DELETE FROM namatabel [where kondisi];


Contoh :

1.  Masukkan data kedalam masing-masing tabel minimal 5 data


Ø Insert Tabel Jabatan

>insert into jabatan values (‘J001’,’Rektor’); insert into jabatan values (‘J002’,’Wakil Rektor’); insert into jabatan values (‘J003’,’Dekan’); insert into jabatan values (‘J004’,’Kaprodi’); insert into jabatan values (‘J005’,’Keamanan’); insert into jabatan values (‘J006’,’Kebersihan’);

>select * from jabatan;





 

 







Ø Insert Tabel Golongan

>insert into golongan values (‘V001’,’1A’); insert into golongan values (‘V002’,’2A’); insert into golongan values (‘V003’,’3A’); insert into golongan values (‘V004’,’4B’); insert into golongan values (‘V005’,’5B’); insert into golongan values (‘V006’,’6C’);

>Select * from golongan;






 



 


 

 





Ø Insert Tabel Bagian

>insert into bagian values (‘K001’,’Rektorat’); insert into bagian values (‘K002’,’Biro AdministrasiAkademik’); insert into bagian values (‘K003’,’Biro AdministrasiKeuangan’); insert into bagian values (‘K004’,’Pusdakom’); insert into bagian values (‘K005’,’PMB’); insert into bagian values (‘K006’,’Perpustakaan’);

>Select * from bagian;

 






 

 








Ø Insert Tabel Pegawai

>insert into pegawai values (‘D001’,’ Saniya’,’P’,’Pasuruan’,’2001-12-28’,’Bangil’,’081332997037’,’S1’,’J001’,’V001’,’T’,’B001’); insert into pegawai values (‘D002’,’Lala’,’P’,’Lawang’,’2001-10-15,’Wonosari’,’082230450609’,’S1’,’J002’,’V002’,’B002’); insert into pegawai values (‘D003’,’Epik’,’P’,’Kalimantan’,’2002-01-02’,’Pontianak’,’085750191344’,’S1’,’J003’,’V003’,’B003’); insert into pegawai values (‘D004’,’Ipink’,’P’,’Sidoarjo’,’2001-06-06’,’Waru’,’082136652300’,’S1’,’     J004’,’V004’,’B004’); insert into pegawai values (‘D005’,’Anggi’,’P’,’Kalimantan’,’2001-01-01’,’Sangatta’,’089802135666’,’S1’,’J005’,’V005’,’B005’); insert into pegawai values (‘D006’,’Audrey’,’P’,’Kalimantan’,’2001-03-15’,’Sangatta’,’082255034760’,’S1’,’J005’,’V005’,’B005’);

>Select * from kepegawaian;











Ø Insert tabel Absensi

>insert into absensi values(1, ’2001-12-28’,’D001’,’07:00:00’,’16:00:00’,’Hadir’); insert into absensi values(2, ’2001-10-15’,’D002’, ’07:00:00’,’16:00:00’,’Tidak Hadir’); insert into absensi values(3,’2002-01-02’,’D003’, ’07:00:00’,’16:00:00’,’Hadir’); insert into absensi values(4,’2001-06-06’,’D004’, ’07:00:00’,’16:00:00’,’Tidak Hadir’); insert into absensi values(5,’2001-01-01’,’D005’, ’07:00:00’,’16:00:00’,’Hadir’); insert into absensi values(6,’2001-03-15’,’D006’, ’07:00:00’,’16:00:00’,’Tidak Hadir’);

>select * from absensi ;

















Contoh penerapan manipulasi data pada database yang sudah di buat yang meliputi :

Ø Perintah Update

Update bagian set nama_bagian=’Penerimaan Mahasiswa Baru’ where kd_bagian=’B005’;



 

Ø Perintah Select tanpa klausa

Select * from bagian;


 






Ø Perintah Select disertai klausa order by (urutkan berdasarkan Ascending dan Descending)

Select * from bagian order by kd_bagian asc;






Ø Perintah Select disertai klausa group by

Select kode_pegawai, nama from kepegawaian group by nama;








Ø Perintah Select disertai klausa having

Select kode_pegawai, nama, alamat from kepegawaian group by nama having alamat!=’Sangatta’;







Ø Perintah Select disertai klausa Limit

Select kode_pegawai, nama, alamat from kepegawaian limit 2;






Ø Perintah Select disertai klausa Where

Select kode_pegawai,nama,alamat from kepegawaian where kelamin=’P’;








BAHASAN V

QUERY & VIEW


Query

Merupakan suatu proses pengolahan data yang digunakan untuk memberikan hasil dari basis data berdasarkan kriteria tertentu

1.    Aturan dalam melakukan query antar tabel :

a.    Setiap field disebutkan bersama dengan nama tabelnya,dipisahkan tanda titik (.) Syntax :

Namatabel.namafield.


b.  Setiap tabel yang terlibat dalam proses query harus disebutkan dalam klausa FROM,dengan pemisah koma (,) dimana urutan tabel tidak mempengaruhi proses query.Contoh :

From buku, anggota.


c.    Kondisi dalam klausa Where mempengaruhi jenis join yang tercipta.


2.    Jenis – jenis join pada query.

a.  Operator Cross Join. Operator ini berguna untuk melakukan operasi penggabungan dengan perkalia kartesain.

select * from buku cross join pengarang limit 5;


b.   Operator Inner Join. Operator digunakan untuk menampilkan data dari dua tabel yang berisi data sesuai dengan syarat dibelakang on (tidak boleh null) dengan kata lain semua data dari tabel kiri mendapat pasangan data dari tabel sebalah kanan.

Mysql> select * from pengarang join buku on (pengarang.kode_pengarang=buku.kode_pengarang);


c.   Operator Equijoin. adalah penggabungan antar tabel denga menggunakan operator ‘=’ pada kondisi klausa Where. Contoh :

SELECT buku.kode_buku, buku.judul_buku, pengarang.kode_pengarang, pengarang.nama_pengarang From buku, pengarang WHERE buku.kode_pengarang=pengarang.kode_pengarang;


d. Operator Self-join. adalah jenis penggabungan antar field dari tabel yang sama. Untuk melakukan penggabungan self join menggunakan alias. Contoh :

SELECT a.kode_buku, b.judul_buku from buku a, buku b WHERE a.harga=’25000’ AND a.harga=’25000’;


e. Operetor Natural Join. Operator ini digunakan untuk melakukan equijoin dengan memperlakukan nama-nama kolom yang sama sebagai kolom penghubung. Contoh :

SELECT buku.kode_buku, buku.judul_buku, pengarang.kode_pengarang, pengarang.nama_pengarang FROM buku NATURAL JOIN pengarang;

 

3.    UNION, INTERSECT dan EXCEPT

a.   UNION

    Union merupakan operator yang digunakan untuk menggabungkan hasil query,dengan ketentuan jumlah,nama dan tipe kolom dari masing-masing tabel yang akan ditampilkan datanya harus sama.

 Mysql > select tahun_terbit,judul_buku from buku where tahun_terbit=’2003’ union select tahun_terbit,judul_buku from buku where tahun_terbit=’2004’;


b.   INTERSECT

     Intersect merupakan operator  yang digunakan untuk memperoleh data dari dua buah query. Syntax :

SELECT * FROM namatabel1 INTERSECT SELECT * FROM namatabel2

 

c.    EXCEPT / Set Difference

 Except merupakan operator yang digunakan untuk memperoleh data dari dua buah query. Syntax :

SELECT * FROM namatabel1 EXCEPT SELECT * FROM namatabel2

 

d.   Nested Queries / Subquery (IN,NOT IN,EXISTS,NOT EXIST)

     Subquery berarti query didalam query.dengan menggunakan subquery, hasil dari query akan menjadi bagian dari query diatasnya. Syntax :

                IN

       Mysql > select * from pengarang where kode_pengarang in(select kode_pengarang from buku); 


               NOT IN

     Mysql > select * from pengarang where kode_pengarang not in (select kode_pengarang from buku);

 

                EXISTS

     Mysql > select * from pengarang where exists (select * from buku where pengarang.kode_pengarang=buku.kode_pengarang);

 

                NOT EXIST

Mysql > select*from pengarang where not exists (select*from buku where pengarang.kode_pengarang=buku.kode_pengarang);


View

Perintah query yang disimpan pada database dengan suatu nama tertentu,sehingga bisa digunakan setiap saat untuk melihat data tanpa menuliskan ulang query tersebut.

Syntax dasar perintah untuk membuat view adalah sebagai berikut :

CREATE

   [OR REPLACE]

   VIEW view_name [(column_list)]

   AS select_statement

 

Pengunaan View

1.    View antar 2 tabel

Kita akan membuat view dari relasi antara tabel “buku” dan “penerbit” untuk menampilkan data buku dan penerbitnya dari database PERPUSTAKAAN dengan nama ‘view_buku” perintahnya adalah sebagi berikut :

Mysql > CREATE VIEW view_buku

>As

>SELECT a.kode_buku, a.judul_buku,

>a.tahun_terbit,b.nama_penerbit

>FROM

>buku a JOIN penerbit b ON a.kode_buku=b.kode_penerbit;

   

Eksekusi perintah berikut untuk memastikan view telah dibuat :

SELECT * FROM information_schema.views WHERE table_name = ‘view_peminjaman’;

  

Lihat hasil query view view_buku;

SELECT * FROM view_buku;


2.    View dengan 3 tabel

Membuat view dari relasi antara tabel “buku”, ”anggota” dan “peminjaman” untuk menampilkan data peminjaman buku dari database perpustakaan dengan nama “view_peminjaman”. perintahnya adalah sebagai berikut :

Mysql >CREATE VIEW view_peminjaman

>AS

>SELECT a.id_peminjaman, b.kode_buku, b.judul_buku,

>c.kode_anggota, c.nama_anggota, a.tanggal_pinjam,

>a.tanggal_kembali FROM peminjaman a, buku b,

>anggota c  WHERE    a.kode_buku= b.kode_buku AND

>a.kode_anggota=c.kode_anggota






Lihat hasil query view view_peminjaman :

SELECT * FROM view_peminjaman;



BAHASAN VI

DATA CONTROL LANGUAGE (DCL)/HAK AKSES USER

 

Pemahaman Hak Akses

Pengaturan hak akses berguna dalam hal pembatasan pengaksesan suatu data, misalkan hanya pemakai tertentu yang bisa membaca atau pemakai lain yang justru dapat melakukan perubahan dan penghapusan data.Macam-macam perintah yang terkait dengan hak akses adalah SELECT, INSERT, UPDATE, DELETE, REFERENCES, INDEX, CREATE, ALTER dan DROP.

 

Mengatur Hak Akses

Untuk MySQL versi 3.22 keatas dalam manajemen user dapat menggunakan perintah GRANT dan REVOKE untuk mengatur hak akses pemakai (user).

1.   Perintah GRANT

Dipergunakan untuk membuat user baru dengan izin aksesnya.

Bentuk umum :

GRANT jenis_akses (“nama_kolom) ON nama_database TO nama_user IDENTIFIEDBY “nama_password” [WITHGRANT pilihan akses]

Atau

GRANT hak_akses ON namatabel TO pemakai;


2.   Perintah REVOKE

     Untuk melakukan pencabutan atau penghapusan sementara hak akses

    Bentuk umum :

REVOKE hak_akses ON nama_database FROM nama_user;

Atau

REVOKE hak_akses ON namatabel FROM nama_user;

 

Membatasi Hak Akses

Hak akses perlu dibatasi untuk memudahkan dalam mengatur dan mengawasi pemakaian data serta menjaga keamanan data. Syntax :

GRANT SELECT, UPDATE (kode_buku,judul_buku,tahun_terbit) On buku TO ‘edi’@’localhost’ ;

 

Hak akses penuh

Untuk memberikan hak akses penuh kepada pemakai, dapat memakai perintah klausa ALLPRIVILEGES. Syntax :

GRANT ALL PRIVILEGES ON buku to siska;

 

Hak akses kepada public

Untuk memberikan hak aksess kepada banyak user dapat menggunakan klausa PUBLIC beberapa DBMS ada yang menggunakan klausa WORLD. Syntax :

GRANT SELECT, INSERT ON buku to ‘ ‘;

 

Pencabutan hak akses

-    Untuk melakukan pencabutan atau penghapusan sementara hak akses user menggunakan perintah REVOKE 

-       Untuk menghapus user secara permanen dari basis data menggunakan perintah DELETE

 

Penggunaan DCL

1.    Membuat hak akses user dengan privilege

a.    Hak akses Select SELECT pada salah satu tabel didatabase and.

grant select on pegawai to 'Sania'@'localhost';


b.   Hak akses Select, Insert, dan Update pada salah satu tabel didatabase anda.

grant select, insert, update, delete on pegawai to 'dita'@'localhost';

 

c.    Hak akses penuh terhadap basis data anda.

grant all on pegawai to 'Sania'@'localhost';

 

d.   Hak akses untuk public terhadap basis data anda.

grant all privileges on pegawai to 'Saniya'@'localhost';

         


2.    Mencabut hak akses

a.    Cabut hak akses salah satu user

revoke select, insert on pegawai from 'Sania'@'localhost';

 

b.    Cabut hak akses secara permanen user yang mempunyai akses penuh

revoke all on pegawai from 'Sania'@'localhost';

        



Semoga rangkuman "Basis Data" ini bermanfaat dan apabila ada salah  kata di dalam blog yang saya tulis, saya minta maaf. 

Jika ingin mengenal lebih dalam tentang Universitas saya, silahkan akses link berikut: umsida.ac.idfst.umsida.ac.id  

Sekian dan Terima Kasih.

 

instagram @saniaizza_


Tidak ada komentar:

Posting Komentar