Pertemuan 2 Model Data, Relational Data Model, Database Schema, DDL Sistem Basis Data Pertemuan 2 Model Data, Relational Data Model, Database Schema, DDL AER – 2015/2016 Universitas Pembangunan Jaya – SIF
Universitas Pembangunan Jaya – SIF 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
Universitas Pembangunan Jaya – SIF 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
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
Universitas Pembangunan Jaya – SIF 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
Universitas Pembangunan Jaya – SIF 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
Database = kumpulan relasi Database schema = set of all Relation schema inside database. Database schema = kumpulan lengkap skema relasi di dalam database. Database Akademik Database Akademik Tabel Mahasiswa tblMhs(nim: string, nama: string, jurusan: string) Tabel Mata Kuliah tblJurusan(kd_jur:string, nm_jur:string, kd_fak:string, akreditasi:string) Tabel Jurusan tblMk(kodeMK:string, namaMK:string, sks:number) AER – 2015/2016 Universitas Pembangunan Jaya – SIF
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
Universitas Pembangunan Jaya – SIF Contoh Relasi Contoh constraint: Mahasiswa(nim, nama, thnMasuk) Kelas(nid, kdmk) MataKuliah(kdMk, namaMk, sks) Nilai(nim, kdMk, grade) Underline = key (tuples/rows/baris-baris tidak boleh memiliki memiliki nilai yang sama pada semua atribut key). Kelas Nid kdmk dsn001 IST101 dsn002 IST102 dsn003 IST103 AER – 2015/2016 Universitas Pembangunan Jaya – SIF
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
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
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 CREATE TABLE <nama_tabel> (<nama_kolom> <tipe_kolom> [atribut_kolom], … … … , [definisi_key] (<nama_kolom>) ); AER – 2015/2016 Universitas Pembangunan Jaya – SIF
SQL – Definisi untuk Table Contoh: CREATE TABLE Mahasiswa ( nim char(10) NOT NULL, nama varchar(100) NOT NULL, thnMasuk year, PRIMARY KEY (nim) ); Mahasiswa(nim, nama, thnMasuk) Tipe_kolom yang umum adalah: INT angka bilangan bulat atau INTEGER. 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
Universitas Pembangunan Jaya – SIF 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
Universitas Pembangunan Jaya – SIF 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
Universitas Pembangunan Jaya – SIF 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
Universitas Pembangunan Jaya – SIF 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 Jika kolom dengan tipe YEAR ini akan diisi nilai, maka format penulisannya adalah: yyyy (contoh: 2016) AER – 2015/2016 Universitas Pembangunan Jaya – SIF
Universitas Pembangunan Jaya – SIF 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
Universitas Pembangunan Jaya – SIF 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 Nilai kdMk namaMk sks SIF102 Struktur Data 4 SIF204 Analisis Proses Bisnis 3 IST102 Sistem Basis Data nim kdMk grade 2013081001 SIF102 C SIF204 A 2014081001 B 2015081001 IST102 Kegunaan key biasanya untuk memudahkan pencarian data, yang sesuai dengan patokan Key tersebut. Selain itu pencarian pada table dengan mengacu pada key prosesnya lebih cepat, karena Key biasanya di index dalam database, sehingga pencarian dengan key akan lebih cepat. AER – 2015/2016 Universitas Pembangunan Jaya – SIF
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, ); nim char(10) NOT NULL PRIMARY KEY, thnMasuk year nim char(10) NOT NULL, PRIMARY KEY (nim) nim nama thnMasuk … AER – 2015/2016 Universitas Pembangunan Jaya – SIF
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) ); nim kdMK grade … Mahasiswa(nim, nama, thnMasuk) Kelas(nid, kdmk) MataKuliah(kdMk, namaMk, sks) Nilai(nim, kdMk, grade) AER – 2015/2016 Universitas Pembangunan Jaya – SIF
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
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
Universitas Pembangunan Jaya – SIF See You Next Session Thank’s AER – 2015/2016 Universitas Pembangunan Jaya – SIF
Universitas Pembangunan Jaya – SIF 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