980 likes | 1.28k Views
Basis data. Basis data ( atau database) adalah kumpulan informasi yang disimpan di dalam komputer secara sistematik sehingga dapat diperiksa menggunakan suatu program komputer untuk memperoleh informasi dari basis data tersebut. DBMS.
E N D
Basis data • Basis data (ataudatabase) adalahkumpulaninformasi yang disimpan di dalamkomputersecarasistematiksehinggadapatdiperiksamenggunakansuatu program komputeruntukmemperolehinformasidari basis data tersebut
DBMS • DBMS (Database Management System) merupakansuatusistemperangkatlunak yang memungkinkan user (pengguna) untukmembuat,memelihara, mengontrol, danmengaksesdatabase secarapraktisdanefisien.
RDBMS • RDBMS atauRelationship Database Management System merupakansalahsatujenis DBMS yang mendukungadanyarelationship atauhubunganantartabel. Di samping RDBMS, terdapatjenis DBMS lain, misalnyaHierarchy DBMS, Object Oriented DBMS, dsb.
Perangkatlunak DBMS • DB2 - http://www-306.ibm.com/software/data/db2/ • Microsoft SQL Server - http://www.microsoft.com/sqlOracle - http://www.oracle.com • Sybase - http://www.sybase.com/ • Interbase - http://www.borland.com/interbase • Teradata - http://www.teradata.com/ • Firebird - http://www.firebirdsql.org/ • MySQL – http://www.mysql.com • PostgreSQL - http://www.postgresql.org/
Istilah Database • Table Sebuahtabelmerupakankumpulan data (nilai) yang diorganisasikankedalambaris(record) dankolom (field). Masing-masingkolommemilikinamayang spesifikdanunik. • Field Fieldmerupakankolomdarisebuah table. Field memilikiukuran type data tertentuyang menentukanbagaimana data nantinyatersimpan.
Istilah Database • Record Field merupakan sebuah kumpulan nilai yang saling terkait. • Key Keymerupakansuatu field yang dapatdijadikankuncidalamoperasitabel. Dalamkonsep database, key memilikibanyakjenisdiantaranya Primary Key, Foreign Key, Composite Key, dll.
Istilah Database • SQL SQLatau Structured Query Language merupakansuatubahasa (language) yangdigunakanuntukmengakses database. SQL seringdisebutjugasebagai query.
Fitur-fiturMySQL • Relational Database System. Sepertihalnya software database lain yang ada di pasaran, MySQL termasuk RDBMS. • Arsitektur Client-Server. MySQL memilikiarsitektur client-server dimana server database MySQL terinstal di server. Client MySQL dapatberadadi komputeryang samadengan server, dandapatjuga di komputer lain yang berkomunikasi dengan server melalui jaringan bahkan internet. • Mengenalperintah SQL standar. SQL (Structured Query Language) merupakan suatu bahasa standar yang berlaku di hampir semua software database. MySQL mendukung SQL versi SQL:2003.
Fitur-fitur MySQL • MendukungSub Select. Mulaiversi 4.1 MySQL telahmendukungselect dalamselect (sub select). • MendukungViews. MySQL mendukung views sejakversi 5.0 • MendukungStored Prosedured (SP). MySQL mendukung SP sejakversi 5.0 • MendukungTriggers. MySQL mendukung trigger padaversi 5.0 namunmasih terbatas. Pengembang MySQL berjanji akan meningkatkan kemampuan trigger padaversi 5.1.
Fitur-fitur MySQL • Mendukungreplication. • Mendukungtransaksi. • Mendukungforeign key. • Tersediafungsi GIS. • Free (bebasdidownload) • Stabildantangguh • Fleksibeldenganberbagaipemrograman • Security yang baik • Dukungandaribanyakkomunitas • Perkembangansoftware yang cukupcepat.
Tipe-tipeTabel MySQL • MyISAM, • InnoDBdan • HEAP
MyISAM • TipetabelMyISAMmerupakantipetabel yang sederhana, stabildanmudahdigunakan. • MyISAMstatic. Jenisinidigunakanketikasemuakolomdalamtabeldidefinisikandenganukuran yang pasti (fixed). Dengan kata lain, tidakadakolomyang memilikitipeseperti VARCHAR, TEXT dan BLOB. Karenasifatnya yang fixed, makajenisiniakanlebihcepat, amandanstabil. • MyISAMdymanic. Jenisinidigunakanketikaterdapatkolomdengantipe yang dinamis, sepertitipekolom VARCHAR. Keuntunganutamadarijenisiniadalahukuran yang dinamis. Jadisifatnyalebihefektifkarenaukurandata (file) menyesuaikanisidarimasing-masingkolom (field). • MyISAMCompressed. KeduajenisMyISAM, static dan dynamic dapatdikompresimenjadisatujenisyaituMyISAM Compressed denganperintahmyisamchk. Tentunyahasilnyalebihkecildarisegiukuran. Tabel yang terkompresitidakdapatdikenakanoperasiseperti INSERT, UPDATE danDELETE.
InnoDB • TipetabelInnoDBmerupakantipetabel MySQL yang mendukungproses transaksi. Tipeinimemilikibeberapakeunggulan, antara lain: • Mendukung transaksi antar tabel. • Mendukungrow-level-locking. • MendukungForeign-Key Constraints. • Crash recovery.
HEAP • Tabeldengantipe HEAP tidakmenyimpandatanya di hardisk, tetapimenyimpandi RAM (memori). Tipetabelinibiasanyadigunakansebagaitabelsementara(temporary). Tabelsecaraotomatisakandihapus (hilang) dariMySQL saat koneksi ke server diputus atau server MySQL dimatikan.
TipeTabel yang Lain • BDB. TipetabelinimiriptipetabelInnoDB, namunpenggunaannyabelummaksimal. • Archieve. Tipeinitersediasejak MySQL versi 4.1. Tipeinidigunakanuntukmenyimpan tabel yang terkompresi, dimana biasanya digunakan dalam proses backup. • CSV. Tipeinidigunakanuntukmenyimpan data dalambentuk file text yang dibatasi dengan koma (delimiter). Tipe ini tersedia sejak MySQL versi 4.1. • NDBTable (MySQL Cluster). Tersediasejak MySQL versi 4.1. • Federated (External Tables). Tipeinitersediasejak MySQL versi 5.0.
Tipe-tipe Field (Kolom) MySQL • numerik, • string, • date-and time, • Kelompokhimpunan (set danenum)
Merancang Database yang Baik • Tabeldalam database tidakbolehmengandung record (data) ganda, ataudengankata lain tidakbolehadaredudancy data. Jikaterdapat data yang sama, maka perlu dilihat kembali rancangan tabelnya. • Setiaptabeldalam database, harusmemiliki field (kolom) yang unik. Field inidisebutsebagai Primary Key. • Tabelharussudah normal. • Besaratauukuran database hendaknyadibuatseminimalmungkin. Hal iniditentukanolehpemilihantipe data yang tepat. • Merancang database hendaknyamemperhatikanapakahrancangandapatmenampungdata (record) sesuai yang dibutuhkanolehaplikasi.
Tips Penamaan Identifier • Penamaan identifier (database, tabel, kolom) di MySQL bersifatcase-sensitive. Penamaan identifier hendaknyakonsistenuntuksemuatabeldalamsuatudatabase. Kita dapatmenggunakan model lower-case, UPPER-CASE, camelCasedll. • Nama database, tabeldankolommaksimal 64 karakter. • Hindaripenggunaankarakterkhusus, sepertiüàû, karenabisabermasalahdalamsistemoperasi yang lain. • Pilihnamauntuk field (kolom) yang mencerminkanisidari data yang disimpan.
SQL • Sql(Structured Query Language)jugaseringdisebutsebagai query merupakansuatubahasa (language) yang digunakanuntukmengakses database
Terdapattigajenisperintah SQL • DDL (Data Definition Language) merupakanperintah SQL yang berhubungandenganpendefinisiansuatustrukturdatabase, dalamhalinidatabase dan table. • CREATE • ALTER • RENAME • DROP
DML (Data Manipulation Language) merupakanperintah SQL yang berhubungandenganmanipulasiataupengolahandata ataurecord dalam table. • SELECT • INSERT • UPDATE • DELETE
DCL (Data Control Language) merupakanperintah SQL yang berhubungandenganmanipulasi user danhakakses (priviledges). • GRANT • REVOKE
SHOW DATABASES; Untukkeluardarisistem MySQL, ketikkanperintah“\q;” atauklikpadatombol close
KetentuanMemberikanPerintah • Perintahdalam MySQL mengenal case insensitive, perintahdapatditulisdenganhurufbesar(uppercase), ataupundenganhurufkecil (lowercase). • Setiapperintahdiakhiridengan ; (tandatitikkoma) ataudenganmemberikanperintah \g diakhirperintah • Perintahdapatberupaperintah SQL atauperintahkhusus MySQL • Jika Prompt mysql> berganti dengan -> berarti prompt tersebut menunggu kelengkapan perintah dari baris sebelumnya atau menunggu diberikan tanda ; atau \g. Contoh: Perhatikanperintahdibawahiniditulistanpatandatitik-koma ";". • mysql> create database latihan1 • -> • Sistem MySQL akanmenampilkantandapanah '->' yang menyatakanbahwaperintah MySQL tersebutdianggapbelumselesai (karenabelumdiakhiridengantandatitikkoma ';'). Sekarangkitalengkapiperintahsebelumnyadengantandatitik-koma ';' • mysql> create database latihan1 • -> ; • Query OK, 1 row affected (0.02 sec)
Tipe Data pada MySQL • MisalnyaCreate Table. Padatipe-tipe data tersebutterdapatbeberapaatribut yang memilikiartisebagaiberikut: • M, menunjukkanlebarkaraktermaksimum. Nilai M maksimumadalah 255. • D, menunjukkan jumlah angka di belakang koma. Nilai maksimum D adalah 30 tetapidibatasiolehnilai M, yaitutidakbolehlebihbesardaripada M-2. • Atribut yang diberitanda [ dan ] berartipemakaiannyaadalah optional. • Jikaatribut ZEROFILL disertakan, MySQL akanotomatismenambahkanatribut UNSIGNED. • UNSIGNED adalahbilangantanpatanda di depannya (misalnyatandanegatif).
TugasMandiri(1) • TINYINT[(M)] [UNSIGNED] [ZEROFILL] • SMALLINT[(M)] [UNSIGNED] [ZEROFILL] • MEDIUMINT[(M)] [UNSIGNED] [ZEROFILL] • INT[(M)] [UNSIGNED] [ZEROFILL] • INTEGER[(M)] [UNSIGNED] [ZEROFILL] • BIGINT[(M)] [UNSIGNED] [ZEROFILL] • FLOAT(precision) [ZEROFILL] • FLOAT[(M,D)] [ZEROFILL] • DOUBLE[(M,D)] [ZEROFILL] • DOUBLE PRECISION[(M,D)] [ZEROFILL] dan REAL[(M,D)] [ZEROFILL] • DECIMAL[(M[,D])] [ZEROFILL] • NUMERIC(M,D) [ZEROFILL] • DATE
TugasMandiri(2) • DATETIME • TIMESTAMP[(M)] • TIME • YEAR[(2|4)] • CHAR(M) [BINARY] • VARCHAR(M) [BINARY] • TINYBLOB danTINYTEXT • BLOB danTEXT • MEDIUMBLOB danMEDIUMTEXT • LONGBLOB danLONGTEXT • ENUM('value1','value2',...) • SET('value1','value2',...)
MelihatTanggaldanWaktu Mysql>select curdate(); Mysql>select curtime(); Mysql>select now();
MemilihdanMembukaSebuah Database Melihat Isi Sebuah Database
MembuatTabelBaru • Kolompertamaadalah NOPEG denganjenis data bilanganbulat (INTeger), tanpatandanegatif (UNSIGNED), yang akanbertambahnilainyasecaraotomatis(AUTO_INCREMENT), kolom NOPEG adalah kolom utama (PRIMARY KEY). • Padakolomkedua, NAMA akanmenampungnamakaryawan, denganjenisdata VARiabelCHARacter, lebardatanyadapatmenampungmaksimal 50 karakter, dantidakbolehdikosongkan (NOT NULL). Kuranglebihsepertiitulahceritanya.. :)
Constraint • NOT NULL Suatukolom yang didefinisikandengan constraint NOT NULL tidakbolehberisinilaiNULL. Kolom yang befungsisebagaikunci primer (primary key) otomatistidakboleh NULL. • UNIQUE Mendefinisikansuatukolommenjadibersifatunik, artinyaantarasatu data dengan data lainnyanamanyatidakbolehsama, misalalamat email. • Constraint PRIMARY KEY membentuk key yang unikuntuksuatutabel. • FOREIGN KEY constraint didefinisikanpadasuatukolom yang adapadasuatu table, dimanakolomtersebutjugadimilikioleh table yang lain sebagaisuatu PRIMARY KEY, biasadipakaiuntukmenghubungkanantara 2 tabel.
Tugas(3) Buat Database dengannamadbmysql. Pilihdanbuka database tersebut. Buattabeldengannamapesertauntukmenyimpan data pesertameliputi : nomor, nama, email, alamat, kota.
MengubahStrukturSebuahTabel • Penambahankolom (ADD) • Pengubahanlebardanjeniskolom (MODIFY) • Penghapusankolomdanindeks (DROP) • Penggantiannamakolom (CHANGE) • Penggantiannamatabel (RENAME)
Dalampengubahankolominisebaiknya 'sifat-sifat' kolom yang aslitetapditulisulang. Misalbilakolomnopegmemilikisifat 'auto_increment', makaselamasifatitutetapdipertahankan, maka dia (auto_increment ) harus ditulis ulang.