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 workof 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