Download Database - opencourseware universitas pembangunan jaya

Survey
yes no Was this document useful for you?
   Thank you for your participation!

* Your assessment is very important for improving the work of artificial intelligence, which forms the content of this project

Document related concepts
no text concepts found
Transcript
Sistem Basis Data
Pertemuan 2
Model Data, Relational Data Model, Database Schema, DDL
AER – 2015/2016
Universitas Pembangunan Jaya – SIF
1
Tujuan Pertemuan
• Mahasiswa akan mampu menjelaskan bahasa
yang digunakan di dalam DBMS .
• Mahasiswa akan mampu menjelaskan
perbedaan model data berbasis konseptual
dan berbasis fisik .
• Mahasiswa memahami relational model
database beserta komponennya
• Mahasiswa akan mampu membuat skema
database (DDL) dengan bahasa query (SQL)
AER – 2015/2016
Universitas Pembangunan Jaya – SIF
2
Data Model
• Data model: sekumpulan konsep yang dapat
digunakan untuk mendeskripsikan struktur
dari suatu database.
(referensi: Elmasri and Navathe, Fundamentals of Database Systems 6th Ed, Addison Wesley, 2010.)
• Seperti yang sudah dibahas pada pertemuan
1, bahwa data model diantaranya adalah;
Relational Model, The Entity-Relationship
Model, Object-Based Data Model,
Semistructured Data Model
AER – 2015/2016
Universitas Pembangunan Jaya – SIF
IST102 - 3
What is a Data Model? (actually)
• Representasi secara matematis dari data.
– contoh:
relational model = tables;
semistructured model = trees/graphs.
• Representasi dari Operasi pada data.
• Constraints (kendala/batasan-batasan)
(referensi: Prof. Jennifer Widom Hand-out, stanford university.)
AER – 2015/2016
Universitas Pembangunan Jaya – SIF
IST102 - 4
Relasi = Table
Relation name
(table name)
Attributes, each attribute has type (or domain)
(field or column headers)
tblMhs
Tuples
(rows)
AER – 2015/2016
Universitas Pembangunan Jaya – SIF
IST102 - 5
Schemas
• Relation schema = nama relasi dan daftar
attribute-nya (Optionally: disertai types dari
attributes).
– Contoh:
tblMhs(nim, nama, jurusan) atau
tblMhs(nim: string, nama: string, jurusan: string)
• Database = kumpulan relasi.
• Database schema = Deskripsi terstruktur dari
suatu relasi dalam database
• Instance = actual content of a table at given point
in time
AER – 2015/2016
Universitas Pembangunan Jaya – SIF
IST102 - 6
Database = kumpulan relasi
• Database schema = set • Database schema =
kumpulan lengkap
of all Relation schema
skema relasi di dalam
inside database.
database.
Database Akademik
Database Akademik
Tabel Mahasiswa
Tabel Mata Kuliah
Tabel Jurusan
tblMhs(nim: string, nama: string, jurusan:
string)
tblJurusan(kd_jur:string, nm_jur:string,
kd_fak:string, akreditasi:string)
tblMk(kodeMK:string, namaMK:string,
sks:number)
AER – 2015/2016
Universitas Pembangunan Jaya – SIF
IST102 - 7
Mengapa menggunakan Relasi
• Model yang sangat simple & Implementasi yang
Efisien.
• Banyak digunakan oleh sistem database
komersial.
• Representasi relasi sangat memudahkan kita
dalam memahami data.
• Model abstract yg mendasari SQL (bahasa
database yg paling penting saat ini).
• Query (ask question of database) dengan high
level language  simple & ekspresif
AER – 2015/2016
Universitas Pembangunan Jaya – SIF
IST102 - 8
Contoh Relasi
Mahasiswa(nim, nama, thnMasuk)
Kelas(nid, kdmk)
MataKuliah(kdMk, namaMk, sks)
Nilai(nim, kdMk, grade)
Contoh constraint:
Kelas
Nid
kdmk
dsn001
IST101
dsn002
IST102
dsn001
IST102
dsn003
IST103
dsn001
IST101
• Underline = key (tuples/rows/baris-baris tidak
boleh memiliki memiliki nilai yang sama pada
semua atribut key).
AER – 2015/2016
Universitas Pembangunan Jaya – SIF
IST102 - 9
Database Schemas in SQL
• Keutamaan penggunaan dari SQL adalah
bahasa query (bagian dari DML), untuk
mendapatkan informasi dari suatu database.
• Tapi pada SQL juga disertakan suatu
komponen data-definition (DDL) untuk
mendeskripsikan skema database
AER – 2015/2016
Universitas Pembangunan Jaya – SIF
IST102 - 10
SQL – Definisi untuk Database
(CREATE DATABASE dan DROP DATABASE)
• CREATE DATABASE <nama database> ;
• DROP DATABASE <nama database> ;
• Contoh:
 CREATE DATABASE latihan;
Perintah pada contoh di atas akan menghasilkan database
dengan nama latihan.
 DROP DATABASE latihan;
Perintah pada contoh di atas akan menghapus database
dengan nama latihan.
AER – 2015/2016
Universitas Pembangunan Jaya – SIF
IST102 - 11
SQL – Definisi untuk Table
(CREATE TABLE dan DROP TABLE)
• CREATE TABLE <nama_tabel> (<nama_kolom>
<tipe_kolom> [atribut_kolom] , … … …
, [definisi_key] (<nama_kolom>) );
<tipe_kolom> , Merupakan tipe dari data yang akan diisikan pada kolom.
[atribut_kolom] ,
NOT NULL : isi kolom ini tidak boleh NULL (atau tidak diisi).
AUTO_INCREMENT : kolom ini berisi angka yang merupakan penambahan dari
angka record sebelumnya, dan penambahan ini otomatis dilakukan oleh MySQL.
[definisi_key] ,
PRIMARY KEY : digunakan untuk mendefinisikan suatu kolom sebagai primary key.
Kita bisa mendefinisikan lebih dari satu kolom sebagai primary key (dengan
menggunakan koma sebagai pemisah kolom).
• DROP TABLE <nama table> ;
Perintah di atas untuk menghapus table.
Contoh: DROP TABLE Mahasiswa
AER – 2015/2016
Universitas Pembangunan Jaya – SIF
IST102 - 12
SQL – Definisi untuk Table
• Contoh:
CREATE TABLE Mahasiswa (
nim char(10) NOT NULL,
nama varchar(100) NOT NULL,
thnMasuk year,
Tipe_kolom yang umum adalah:
 angka bilangan bulat atau INTEGER.
PRIMARY KEY (nim) INT
DOUBLE  angka dengan desimal.
CHAR(n )  fixed-length string of n characters.
);
VARCHAR(n )  variable-length string of up to n characters.
DATE  tipe tanggal.
YEAR  tipe tahun.
AER – 2015/2016
Universitas Pembangunan Jaya – SIF
IST102 - 13
SQL – Nilai pada SQL
• Tipe Kolom Angka:
• Angka bilangan bulat





TINYINT  -128 sampai 127
SMALLINT  -32,768 sampai 32,767
MEDIUMINT  -8,388,608 sampai 8,388,607
INT  -2,147,483,648 sampai 2,147,483,647
BIGINT  -9,223,372,036,854,775,808 sampai
9,223,372,036,854,775,807
AER – 2015/2016
Universitas Pembangunan Jaya – SIF
IST102 - 14
SQL – Nilai pada SQL
• Tipe Kolom Angka:
• Angka dengan desimal
 DECIMAL  angka dengan desimal
Contoh penulisan:
lebar DECIMAL(5, 2)
Artinya:
Kolom lebar akan menyimpan nilai angka desimal dengan format
nnn.nn (misal: 562.50)
 DOUBLE  angka bilangan real.
AER – 2015/2016
Universitas Pembangunan Jaya – SIF
IST102 - 15
SQL – Nilai pada SQL
• Tipe Kolom String:
 CHAR(n )  menyimpan teks dengan jumlah karakter tetap
sebanyak n karakter.
 VARCHAR(n )  menyimpan teks dengan jumlah karakter yang
bervariasi sampai paling banyak n karakter.
Contoh penulisan:
id char(5)
kode varchar(5)
Artinya:
id akan menyimpan nilai berupa string sebanyak 5 karakter.
kode akan menyimpan nilai berupa string dengan maksimum 5 karakter
Perbedaan char(n) dengan varchar(n):
Jika id diisi dengan nilai ‘123’ maka akan tersimpan string ‘123 ‘ (terdapat 2 space
kosong di akhir string)
Jika kode diisi dengan nilai ‘123’ maka akan tersimpan string ‘123’
AER – 2015/2016
Universitas Pembangunan Jaya – SIF
IST102 - 16
SQL – Nilai pada SQL
• Tipe Kolom tanggal:
 DATE  tipe tanggal
Penjelasan:
Jika kolom dengan tipe DATE ini akan diisi nilai, maka format
penulisannya adalah:
yyyy-mm-dd (contoh: 2016-02-10).
 YEAR  tipe tahun
Penjelasan:
Jika kolom dengan tipe YEAR ini akan diisi nilai, maka format
penulisannya adalah:
yyyy (contoh: 2016)
AER – 2015/2016
Universitas Pembangunan Jaya – SIF
IST102 - 17
SQL – Nilai pada SQL
• Tipe Kolom waktu:
 TIME  tipe waktu
Penjelasan:
Jika kolom dengan tipe TIME ini akan diisi nilai, maka
format penulisannya adalah:
hh:mm:ss (contoh: 15:30:02).
AER – 2015/2016
Universitas Pembangunan Jaya – SIF
IST102 - 18
SQL – Deklarasi Keys
• Key merupakan atribut atau sekumpulan atribut dimana
nilainya adalah unik (tidak boleh sama), dalam tiap tuple
atau sekumpulan attribute dimana kombinasi nilainya
unik
• Suatu atribut atau sekumpulan atribut boleh
dideklarasikan PRIMARY KEY or UNIQUE.
MataKuliah
kdMk
namaMk
sks
Nilai
nim
kdMk
grade
SIF102
Struktur Data
4
2013081001
SIF102
C
SIF204
Analisis Proses Bisnis
3
2013081001
SIF204
A
SIF204
Analisis Proses Bisnis
3
2014081001
SIF204
B
IST102
Sistem Basis Data
3
2015081001
IST102
B
SIF102
Struktur Data
4
2013081001
SIF102
A
AER – 2015/2016
Universitas Pembangunan Jaya – SIF
IST102 - 19
SQL – Deklarasi Keys – Single Attribute
Key
•
Tuliskan PRIMARY KEY atau UNIQUE setelah tipe atribut (kolom) pada deklarasi
membuat tabel.
•
Contoh:
CREATE TABLE Mahasiswa (
nim char(10) NOT NULL UNIQUE,
nama varchar(100) NOT NULL,
thnMasuk year,
);
CREATE TABLE Mahasiswa (
nim char(10) NOT NULL PRIMARY KEY,
nama varchar(100) NOT NULL,
thnMasuk year
);
nim
…
nama
…
thnMasuk
…
CREATE TABLE Mahasiswa (
nim char(10) NOT NULL,
nama varchar(100) NOT NULL,
thnMasuk year,
PRIMARY KEY (nim)
);
AER – 2015/2016
Universitas Pembangunan Jaya – SIF
IST102 - 20
SQL – Deklarasi Keys – Multi Attribute
Keys
• Deklarasi Key dapat juga dilakukan terhadap
sekumpulan atribut pada tabel
• Hal ini dilakukan jika memang tabel memerlukan
key multi-atribut (lebih dari satu atribut.
• Contoh:
CREATE TABLE Nilai(
nim char(10) NOT NULL,
kdMk char(6) NOT NULL,
grade char(1),
PRIMARY KEY (nim, kdMk)
);
AER – 2015/2016
nim
…
Universitas Pembangunan Jaya – SIF
kdMK
…
grade
…
IST102 - 21
SQL – PRIMARY KEY vs. UNIQUE
• Hanya boleh satu PRIMARY KEY untuk satu
tabel, tapi bisa boleh banyak UNIQUE untuk
satu tabel.
• Atribut suatu PRIMARY KEY tidak boleh berisi
nilai NULL dalam satu tuple/row/baris nilai,
tapi atribut suatu unique boleh bernilai null.
AER – 2015/2016
Universitas Pembangunan Jaya – SIF
IST102 - 22
SQL – Modifikasi Table
(ALTER TABLE)
• Modifikasi untuk enambah kolom/field pada tabel:
ALTER TABLE <nama_tabel>
ADD <nama_kolom> <tipe_kolom>
• Modifikasi untuk menghapus kolom/field pada tabel:
ALTER TABLE <nama_tabel>
DROP COLUMN <nama_kolom>
• Modifikasi untuk merubah tipe kolom pada tabel:
ALTER TABLE <nama_tabel>
MODIFY COLUMN <nama_kolom> <tipe_kolom>
AER – 2015/2016
Universitas Pembangunan Jaya – SIF
IST102 - 23
See You Next Session
• Thank’s
AER – 2015/2016
Universitas Pembangunan Jaya – SIF
IST102 - 24
tugas
• Buat suatu database dengan ketentuan:
– nama bebas,
– minimal berisi 3 table,
– diantara 3 table itu minimal terdapat 1 table dengan
multiattribute key.
– Buat skema relasinya (relation schema)
– kemudian buat SQL (Query Language) untuk membuat
database (skema database) tersebut.
– Masing-masing harus membuat database yang
berbeda.
AER – 2015/2016
Universitas Pembangunan Jaya – SIF
IST102 - 25