Survey
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
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