Anda di halaman 1dari 12

DASAR-DASAR DATA

1
DASAR-DASAR DATA
Database adalah rancangan repository untuk mengorganisasikan dan mengakses
informasi.

Table

Dalam model relasi database, suatu database berisi tabel. Tabel tersusun atas baris
dan kolom
Berikut property dari tabel:
Nama dari suatu tabel merupakan representasi dari entittas
Judul Kolom dari suatu tabel disebut field-field atau atribut dari suatu entitas
Baris disebut juga record
Suatu tabel dapat tidak memiliki record atau lebih dari satu record.
Satu baris terbagi atas field-field
Contoh tabel
Pada sebuah tabel, terdapat satu field yang disebut sebagai identified, yang berfungsi
sebagai kunci agar dua buah tabel atau lebih dapat saling berkomunikasi.
Field identifier :
1. Primary key (kunci utama)
2. Foreign Key (kunsi Asing)

Type data

Setiap kolom dalam sebuah tabel harus mempunyai tyle data. berikut beberapa type
data:
Karakter String
1. Character - char
2. Character Varyng Varchar
Numeric
Integer, smallint, bigint Numeric
Real and double presicion
Float
Panduan Praktikum SQL MYSQL DBMS

DASAR-DASAR DATA

Temporal
Datetime
o Date
o Time
o Timestamp
Interval
o Year-month
o Day-time
Binary
Bit
Bit varying
Binary large obyek
Boolean
True
false

NULL

Kondisi dimana suatu data tidak diketahui keadaannya atau missing

Primary Key

Merupakan kolom atau sekumpulan kolom dari suatu tabel yang nilainya secara unik
terhadap setiap baris. Aturan primary key:

nilainya harus unik untuk setiap baris


Tidak boleh kosong

Relasi Antar Tabel (Table Relationship)

Database biasanya memuat sejumlah table. Setiap table dalam suatu database biasanya
mempunyai relasi dengan satu atau lebih dengan table lain dalam satu database.
Foreign Key
Foreign key merupakan kolom atau kumpulan kolom dalam suatu table yang merujuk
pada kolom atau sekumpulan kolom dalam beberapa table.
Jenis relasi
Terdapat tiga jenis relasi yang dikenal dalam database relasi:
One-to-many
Many-to-many
One-to-one

Panduan Praktikum SQL MYSQL DBMS

LATIHAN YANG DISELESAIKAN

LATIHAN YANG DISELESAIKAN


Pada latihan akan digunakan kasus sebuah restoran kecil dan selanjutnya Databasenya atau
schema-nya kita beri nama Restaurant. Berikut Langkah-langkah membuat schema Restaurant
beserta obyek-obyeknya pada RDBMS Mysql:
1. Diagram ER

2. Membuat Schema, perintanya:

CREATE DATABASE restaurant;


atau
CREATE SCHEMA restaurant;
Panduan Praktikum SQL MYSQL DBMS

LATIHAN YANG DISELESAIKAN

3. Aktifkan Database atau schema

USE restaurant;
4. Membuat obyek-obyek database
-- ------------------------------------------------------ Table `vendors`
-- ----------------------------------------------------DROP TABLE IF EXISTS `vendors` ;
CREATE TABLE IF NOT EXISTS `vendors` (
`vendorid` CHAR(5) NOT NULL,
`companyname` VARCHAR(30) NULL,
`refname` VARCHAR(20) NULL,
`replname` VARCHAR(20) NULL,
`vendor_vendorid` CHAR(5) NULL,
PRIMARY KEY (`vendorid`))
ENGINE = MyISAM;
-- ------------------------------------------------------ Table `ingredients`
-- ----------------------------------------------------DROP TABLE IF EXISTS `ingredients` ;
CREATE TABLE IF NOT EXISTS `ingredients` (
`ingredientsid` CHAR(5) NOT NULL,
`name` VARCHAR(30) NULL,
`unit` CHAR(10) NULL,
`unitprice` DECIMAL(5,2) NULL,
`foodgroup` CHAR(15) NULL,
`inventory` INT(11) NULL,
`vendorid` CHAR(5) NULL,
PRIMARY KEY (`ingredientsid`))
ENGINE = MyISAM;
-- ------------------------------------------------------ Table `items`
-- ----------------------------------------------------DROP TABLE IF EXISTS `items` ;
CREATE TABLE IF NOT EXISTS `items` (
`itemid` CHAR(5) NOT NULL,

Panduan Praktikum SQL MYSQL DBMS

LATIHAN YANG DISELESAIKAN

`name` VARCHAR(30) NULL,


`price` DECIMAL(5,2) NULL,
`dateadded` DATE NULL,
PRIMARY KEY (`itemid`))
ENGINE = MyISAM;
-- ------------------------------------------------------ Table `meals`
-- ----------------------------------------------------DROP TABLE IF EXISTS `meals` ;
SHOW WARNINGS;
CREATE TABLE IF NOT EXISTS `meals` (
`mealid` CHAR(5) NOT NULL,
`name` CHAR(30) NULL,
PRIMARY KEY (`mealid`))
ENGINE = MyISAM;
-- ------------------------------------------------------ Table `MADEWITH`
-- ----------------------------------------------------DROP TABLE IF EXISTS `MADEWITH` ;
SHOW WARNINGS;
CREATE TABLE IF NOT EXISTS `MADEWITH` (
`items_itemid` CHAR(5) NOT NULL,
`ingredientsid` CHAR(5) NOT NULL,
`quantity` INT(11) NULL,
PRIMARY KEY (`items_itemid`, `ingredientsid`))
ENGINE = MyISAM;
-- ------------------------------------------------------ Table `partof`
-- ----------------------------------------------------DROP TABLE IF EXISTS `partof` ;
CREATE TABLE IF NOT EXISTS `partof` (
`mealid` CHAR(5) NOT NULL,
`itemid` CHAR(5) NOT NULL,
`quantity` INT(11) NULL,
`discount` DECIMAL(2,2) NULL,
PRIMARY KEY (`mealid`, `itemid`))
ENGINE = MyISAM;

Panduan Praktikum SQL MYSQL DBMS

LATIHAN YANG DISELESAIKAN

Panduan Praktikum SQL MYSQL DBMS

LATIHAN YANG DISELESAIKAN

5. Memasukkan data ke dalam database, perintahnya

INSERT INTO nama_tabel (kolom1, kolom2, .)


VALUES (data1, data2,)
-- ------------------------------------------------------ Data for table `vendors`
-- ----------------------------------------------------START TRANSACTION;
USE `RESTAURANTS`;
INSERT INTO `vendors` (`vendorid`, `companyname`, `refname`,
`replname`, `vendor_vendorid`) VALUES ('VGRUS', 'Veggies_R_US',
'Candy', 'Corn', NULL);
INSERT INTO `vendors` (`vendorid`, `companyname`, `refname`,
`replname`, `vendor_vendorid`) VALUES ('DNDRY', 'Don\'s Dairy',
'Maria', 'Milker', 'VGRUS');
INSERT INTO `vendors` (`vendorid`, `companyname`, `refname`,
`replname`, `vendor_vendorid`) VALUES ('FLVCR', 'Flavorful Cream',
'Sherman', 'Sherbert', 'VGRUS');
INSERT INTO `vendors` (`vendorid`, `companyname`, `refname`,
`replname`, `vendor_vendorid`) VALUES ('FRTFR', '\"Fruit Eating\"
Freinds', 'Gilbert', 'Grape', 'FLVCR');
INSERT INTO `vendors` (`vendorid`, `companyname`, `refname`,
`replname`, `vendor_vendorid`) VALUES ('EDDRS', 'Ed\'s Dressings',
'Sam', 'Sauce', 'FRTFR');
INSERT INTO `vendors` (`vendorid`, `companyname`, `refname`,
`replname`, `vendor_vendorid`) VALUES ('SPWTR', 'Spring Water
Suppy', 'Gus', 'Hing', 'EDDRS');
COMMIT;
-- ------------------------------------------------------ Data for table `ingredients`
-- ----------------------------------------------------START TRANSACTION;
USE `RESTAURANTS`;
INSERT INTO `ingredients` (`ingredientsid`, `name`, `unit`,
`unitprice`, `foodgroup`, `inventory`, `vendorid`) VALUES ('CHESE',
'Cheese', 'scoop', 0.30, 'Milk', 150, 'DNDRY');
INSERT INTO `ingredients` (`ingredientsid`, `name`, `unit`,
`unitprice`, `foodgroup`, `inventory`, `vendorid`) VALUES ('CHIKN',
'Chicken', 'strip', 0.45, 'Meat', 120, 'DNDRY');

Panduan Praktikum SQL MYSQL DBMS

LATIHAN YANG DISELESAIKAN

INSERT INTO `ingredients` (`ingredientsid`, `name`, `unit`,


`unitprice`, `foodgroup`, `inventory`, `vendorid`) VALUES ('CRUTN',
'Crouton', 'piece', 0.01, 'Bread', 400, 'EDDRS');
INSERT INTO `ingredients` (`ingredientsid`, `name`, `unit`,
`unitprice`, `foodgroup`, `inventory`, `vendorid`) VALUES ('GRAPE',
'Grape', 'piece', 0.01, 'Fruit', 300, 'FRTFR');
INSERT INTO `ingredients` (`ingredientsid`, `name`, `unit`,
`unitprice`, `foodgroup`, `inventory`, `vendorid`) VALUES ('LETUS',
'Lettuce', 'bowl', 0.01, 'Vegetable', 200, 'VGRUS');
INSERT INTO `ingredients` (`ingredientsid`, `name`, `unit`,
`unitprice`, `foodgroup`, `inventory`, `vendorid`) VALUES ('PICKL',
'Pickle', 'slice', 0.04, 'Vegetable', 800, 'VGRUS');
INSERT INTO `ingredients` (`ingredientsid`, `name`, `unit`,
`unitprice`, `foodgroup`, `inventory`, `vendorid`) VALUES ('SCTDR',
'Secret Dressing', 'ounce', 0.03, 'NULL', 120, NULL);
INSERT INTO `ingredients` (`ingredientsid`, `name`, `unit`,
`unitprice`, `foodgroup`, `inventory`, `vendorid`) VALUES ('TOMTO',
'Tomato', 'slice', 0.03, 'Fruit', 15, 'VGRUS');
INSERT INTO `ingredients` (`ingredientsid`, `name`, `unit`,
`unitprice`, `foodgroup`, `inventory`, `vendorid`) VALUES ('WATER',
'Water', 'glass', 0.06, NULL, NULL, 'SPWTR');
INSERT INTO `ingredients` (`ingredientsid`, `name`, `unit`,
`unitprice`, `foodgroup`, `inventory`, `vendorid`) VALUES ('SODA',
'Soda', 'glass', 0.69, NULL, 5000, 'SPWTR');
INSERT INTO `ingredients` (`ingredientsid`, `name`, `unit`,
`unitprice`, `foodgroup`, `inventory`, `vendorid`) VALUES ('WIRML',
'Watermelon', 'piece', 0.02, 'Fruit', NULL, 'FRTFR');
INSERT INTO `ingredients` (`ingredientsid`, `name`, `unit`,
`unitprice`, `foodgroup`, `inventory`, `vendorid`) VALUES ('ORNG',
'Orange', 'slice', 0.05, 'Fruit', 10, 'FRTFR');
COMMIT;
-- ------------------------------------------------------ Data for table `items`
-- ----------------------------------------------------START TRANSACTION;
USE `RESTAURANTS`;
INSERT INTO `items` (`itemid`, `name`, `price`, `dateadded`) VALUES
('CHKSD', 'Chicken Salad', 2.85, '1998-11-13');
INSERT INTO `items` (`itemid`, `name`, `price`, `dateadded`) VALUES
('FRTSD', 'Fruit Salad', 3.45, '2000-05-06');
INSERT INTO `items` (`itemid`, `name`, `price`, `dateadded`) VALUES
('GDSND', 'Garden Salad', 0.99, '2001-03-02');

Panduan Praktikum SQL MYSQL DBMS

LATIHAN YANG DISELESAIKAN

INSERT INTO `items` (`itemid`, `name`, `price`, `dateadded`) VALUES


('MILSD', 'Millenium Salad', NULL, '2002-08-16');
INSERT INTO `items` (`itemid`, `name`, `price`, `dateadded`) VALUES
('SODA', 'Soda', 0.99, '2003-02-06');
INSERT INTO `items` (`itemid`, `name`, `price`, `dateadded`) VALUES
('WATER', 'Water', 0.00, '2002-05-19');
INSERT INTO `items` (`itemid`, `name`, `price`, `dateadded`) VALUES
('FRPLT', 'Fruit Plate', 3.99, '2000-09-02');
COMMIT;
-- ------------------------------------------------------ Data for table `meals`
-- ----------------------------------------------------START TRANSACTION;
USE `RESTAURANTS`;
INSERT INTO `meals` (`mealid`, `name`) VALUES ('CKSDS', 'Chicken N
Suds');
INSERT INTO `meals` (`mealid`, `name`) VALUES ('VGNET', 'Vegan
Eatin');
COMMIT;
-- ------------------------------------------------------ Data for table `MADEWITH`
-- ----------------------------------------------------START TRANSACTION;
USE `RESTAURANTS`;
INSERT INTO `MADEWITH` (`items_itemid`, `ingredientsid`,
`quantity`) VALUES ('CHKSD', 'CHESE', 2);
INSERT INTO `MADEWITH` (`items_itemid`, `ingredientsid`,
`quantity`) VALUES ('CHKSD', 'CHIKN', 4);
INSERT INTO `MADEWITH` (`items_itemid`, `ingredientsid`,
`quantity`) VALUES ('CHKSD', 'LETUS', 1);
INSERT INTO `MADEWITH` (`items_itemid`, `ingredientsid`,
`quantity`) VALUES ('CHKSD', 'SCTDR', 1);
INSERT INTO `MADEWITH` (`items_itemid`, `ingredientsid`,
`quantity`) VALUES ('FTRSD', 'GRAPE', 10);
INSERT INTO `MADEWITH` (`items_itemid`, `ingredientsid`,
`quantity`) VALUES ('FTRSD', 'WTRML', 5);
INSERT INTO `MADEWITH` (`items_itemid`, `ingredientsid`,
`quantity`) VALUES ('GDNSD', 'LETUS', 4);

Panduan Praktikum SQL MYSQL DBMS

LATIHAN YANG DISELESAIKAN

10

INSERT INTO `MADEWITH` (`items_itemid`, `ingredientsid`,


`quantity`) VALUES ('GDNSD', 'TOMTO', 10);
INSERT INTO `MADEWITH` (`items_itemid`, `ingredientsid`,
`quantity`) VALUES ('FRPLT', 'WTRML', 10);
INSERT INTO `MADEWITH` (`items_itemid`, `ingredientsid`,
`quantity`) VALUES ('FRPLT', 'GRAPE', 10);
INSERT INTO `MADEWITH` (`items_itemid`, `ingredientsid`,
`quantity`) VALUES ('FRPLT', 'CHESE', 10);
INSERT INTO `MADEWITH` (`items_itemid`, `ingredientsid`,
`quantity`) VALUES ('FRPLT', 'CRUTN', 10);
INSERT INTO `MADEWITH` (`items_itemid`, `ingredientsid`,
`quantity`) VALUES ('FRPLT', 'TOMTO', 8);
INSERT INTO `MADEWITH` (`items_itemid`, `ingredientsid`,
`quantity`) VALUES ('WATER', 'WATER', 1);
INSERT INTO `MADEWITH` (`items_itemid`, `ingredientsid`,
`quantity`) VALUES ('SODA', 'SODA', 1);
INSERT INTO `MADEWITH` (`items_itemid`, `ingredientsid`,
`quantity`) VALUES ('FRPLT', 'ORNG', 10);
COMMIT;
-- ------------------------------------------------------ Data for table `partof`
-- ----------------------------------------------------START TRANSACTION;
USE `RESTAURANTS`;
INSERT INTO `partof` (`mealid`, `itemid`, `quantity`, `discount`)
VALUES ('CHSDS', 'CHKSD', 1, 0.02);
INSERT INTO `partof` (`mealid`, `itemid`, `quantity`, `discount`)
VALUES ('CKSDS', 'SODA', 1, 0.10);
INSERT INTO `partof` (`mealid`, `itemid`, `quantity`, `discount`)
VALUES ('VGNET', 'GDNSD', 1, 0.03);
INSERT INTO `partof` (`mealid`, `itemid`, `quantity`, `discount`)
VALUES ('VGNET', 'FRTSD', 1, 0.01);
INSERT INTO `partof` (`mealid`, `itemid`, `quantity`, `discount`)
VALUES ('VGNET', 'WATER', 1, 0.00);
COMMIT;

Panduan Praktikum SQL MYSQL DBMS

PRAKTIKUM 1

11

PRAKTIKUM 1
Pengantar

Dalam praktikum berikut, mahasiswa membuat suatu database Employees yang


memuat informasi-informasi:
Employees, deparments, dan project.
1. Setiap employee bekerja pada satu departemen dan dapat ditugaskan pada
beberapa proyek.
2. Setiap departemen mempunyai banyak employees, mempunyai banyak proyek
dan dimungkinkan pada satu departemen memiliki unit-unit atau subdepartement
(contoh; accounting merupakan subdepartement dari Administration).
3. Setiap project dikerjakan oleh satu department dan dikerjakan oleh beberapa
orang karyawan.
Berikut table-table database yang dimaksud:
1. Table project: ProjectID, description, startdate, stopdate, revenue
2. Tabel department: departmentid, departmentname
3. Tabel employees: employeeid, firstname, lastname, salary

Rancang ERD

Buat ER-Diagram berdasarkan keterangan pada bagian pengantar

Membuat Database pada RDBMS MySql

Buat database beserta obyek-obyeknya berdasarkan ER-Diagram

Menginput Data pada Tabel-Tabel Database

Masukkan data berikut pada table yang telah dibuat sebelumnya


Data Table employees
Employeeid firstname lastname
deptcode salary
1
Al
Betheleader ADMIN 70000.00
2
PI
Rsquared
ACCNT 40000.00
3
Harry
Hardware
HDWRE 50000.00
4
Sussie
Software
CNSLT 60000.00
5
Abe
Advice
CNSLT 30000.00
6
Hardly
Aware
NULL
65000.00
Data Table departments
code
name
managerid
subdeptof
ADMIN Administration 1
NULL
ACCNT Accounting
2
ADMIN
HDWRE Hardware
3
CNSLT
CNSLT Consulting
4
ADMIN
Data Table projects
Panduan Praktikum SQL MYSQL DBMS

PRAKTIKUM 1

12

projectid
EMPHAPPY

deptcode description
startdate
enddate
revenue
ADMIN Employee
2002-03-14 NULL
0.00
Moral
ADT4MFIA
ACCNT Mofia Audit
2003-07-03 2003-11-30 100000.00
ROBOSPSE CNSLT Robotic
2002-03-14 NULL
242000.00
Spouse
DNLDCLNT CNSLT Download
2005-02-03 NULL
18150.00
Client
Data Table workson
employeeid projectid
assignedtime
2
ADT4MFIA
0.50
3
ROBOSPSE 0.75
4
ROBOSPSE 0.75
5
ROBOSPSE 0.50
5
ADT4MFIA
0.60
3
DNLDCLNT 0.25
Jawablah beberapa pertanyaan berikut:
1. Apa Nilai yang seharusnya dari projectid dan deptcode dalam baris pada table
projects
2. Bolehkan seorang karyawan tidak bekerja pada sebuah project dalam database
ini?
3. Bolehkan seorang karyawan bekerja pada project yang berada pada
department lain
4. Jelaskan berbagai relasi dalam database employees.
5. Atribut mana dalam table department yang boleh bernilai NULL?
6. Bolehkan revenue bernilai negative?

Panduan Praktikum SQL MYSQL DBMS

Anda mungkin juga menyukai