Basis Data Lanjut [IF 605] Pertemuan – 1 Pengenalan Basis Data

advertisement
Basis Data Lanjut [IF 605]
Pertemuan – 1
Pengenalan Basis Data
Materi yang akan dibahas :
1.
2.
3.
4.
Database
Tabel
Tipe Data
Kolom
a. Identity
b. Computed Column
c. Constraint
d. Sparse Column
e. Null-able and Not Null Column
5. Key
a. Primary Key
b. Foreign Key
6. Database Diagram
Tujuan :
[Basic]
Pembahasan
1. Database
Creat Database
Menambahkan sebuah database baru kedalam DBMS / SQL Server Instance.
Script :
CREATE DATABASE [Nama Database]
ON [PRIMARY] (
NAME = ‘Name’, SIZE = X, MAXSIZE = Y, FILEGROWTH = Z, FILENAME = ‘FULLPATH’)
LOG ON (
NAME = ‘Name’, SIZE = X, MAXSIZE = Y, FILEGROWTH = Z, FILENAME = ‘FULLPATH’)
Keterangan :
[Nama Database] = Nama Database yang diinginkan, selalu dimulai dengan huruf dan tidak
boleh dimulai dengan angka, harus unix (tidak boleh terdapat 2 database dengan nama yang
sama).
NAME = diisi dengan [Nama Database] yang akan menjadi Logical Filename.
SIZE = Ukuran Database awal ketika database tersebut dibuat, dapat berukuran dalam satuan
[KB, MB, GB, TB]. Contoh : 10KB.
MAXSIZE = Ukuran maksimal yang diperbolehkan untuk database yang dibuat. Satuannya sama
seperti SIZE, jika tidak ingin dibatasi, dapat diinput UNLIMITED.
FILEGROWTH = Jumlah pertumbuhan rata-rata dari database tersebut jika terdapat
penambahan data atau pengurangan data. Dapat berukuran seperti SIZE, dapat juga dalam
bentuk persen . Contoh 10%.
Perlu diingat, jumlah pertumbuhan Database tidak dapat melebihi jumlah MAXSIZE yang diinput.
FILENAME = berisi PHYSICAL PATH dari lokasi yang ingin disimpan didalam sebuah Hard Disk
diikuti dengan nama File dari Database tersebut. Contoh : ‘C:\Database\MyDatabase1.mdf.
PRIMARY = Setiap Database harus memiliki sebuah data utama sebagai tempat penyimpanan
data-data. Memiliki ekstensi (.mdf).
SECONDARY = Setiap Database dapat memiliki 0 atau lebih dari 1 buah file secondary. Fungsinya
sebagai cadangan dari File PRIMARY. Memiliki ekstensi (.ndf).
LOG ON = Setiap Database yang dibuat harus memiliki sebuah file yang berisi LOG dari Database
tersebut. Jumlah file LOG dapat lebih dari 1. Fungsinya menyimpan informasi yang digunakan
untuk proses attach atau dettach Database atau proses Database Recovery. Memiliki ekstensi
(.ldf).
Drop Database
Membuang / menghapus sebuah database dari DBMS / SQL Server Instance.
Script :
DROP DATABASE [Nama Database]
Attach Database
Mengaitkan sebuah Database kedalam sebuah SQL Server Instance agar dapat digunakan.
Script :
CREATE DATABASE [Nama Database]
ON (FILENAME = ‘Logical Path dari database primary file’)
FOR ATTACH;
2. Tabel
Tabel merupakan sebuah object yang terdapat didalam sebuah database. Tabel terdiri dari baris
dan kolom, pada tabel inilah data-data disimpan.
a. Create
Berfungsi untuk menambahkan sebuah tabel baru kedalam sebuah database / schema.
Script :
CREATE TABLE [Nama Tabel] (
[Nama Kolom] [Tipe Data](panjang data),
[Nama Kolom] [Tipe Data](panjang data) –Jika lebih dari 1 kolom
Cara membuat sebuah tabel Mahasiswa dengan 2 kolom yaitu NRP dan Nama :
CREATE TABLE Mahasiswa (
NRP VARCHAR(8),
Nama VARCHAR(50)
);
b. ALTER
Digunakan untuk merubah nama kolom atau menambahkan kolom baru setelah sebuah
table dibuat.
Script – Menambahkan kolom baru :
ALTER TABLE [Nama Tabel]
ADD [Nama Kolom] [Tipe Data];
Script – Menghapus sebuah kolom :
ALTER TABLE [Nama Tabel]
DROP COLUMN [Nama Kolom];
Script – Merubah sebuah tipe data pada sebuah kolom :
ALTER TABLE [Nama Tabel]
ALTER COLUMN [Nama Kolom yang Akan Diubah] [Tipe Data Baru];
c. DROP
Fungsi ini digunakan untuk menghapus sebuah tabel dari sebuah database.
Script :
DROP TABLE [Nama Tabel];
3. Tipe Data
Tipe data yang dikenal didalam SQL Server 2008 sebagai berikut :
4. Kolom
a. Identity
Tipe data yang diperbolehkan untuk kolom identity adalah INT atau yang berupa angka.
Kolom identity memiliki karakteristik penambahan otomatis yang dapat diatur, serta
nilai awal yang dapat diatur juga.
Contoh IDENTITY(1,1) artinya kolom ini memiliki tipe data INT yang dimulai dari angka 1
dan setiap penambahan baris, angka ini bertambah 1. Tipe kolom ini tidak boleh
dilakukan Transaksi INSERT.
Contoh tabel Utilities dengan kolom ID sebagai IDENTITY dengan nilai awal 1 dan
increment 1 serta sebagai kolom PRIMARY KEY
CREATE TABLE Utilities (
ID INT IDENTITY(1,1) PRiMARY KEY
Name VARCHAR(20)
);
b. Computed Column
Nilai dari kolom ini diperoleh dari perhitungan kolom-kolom lain pada tabel yang sama.
Contoh : kolom total diperoleh dari perkalian kolom Qty dan Price
CREATE TABLE Transaksi (
idTran INT PRiMARY KEY IDENTITY(1,1),
ProductCode VARCHAR(10) NOT NULL,
Qty INT NOT NULL,
Price MONEY NOT NULL,
Total AS (Qty * Price) --Computed Column
);
c. Constraint
Constraint dibagi menjadi beberapa bagian :
a) Primary Key Constraint
Constraint ini akan memastikan bahwa nilai yang diinput selalu unix (tidak ada
yang sama didalam sebuah tabel).
Contoh : tabel Product yang memiliki ProductCode sebagai constraint Primary
Key.
CREATE TABLE Product (
ProductCode VARCHAR(8),
ProductDesc VARCHAR(50),
CONSTRAINT pk_product PRIMARY KEY (ProductCode)
);
b) Foreign Key Constraint
Contraint ini akan memastikan bahwa nilai yang diinput sudah tersedia
sebelumnya dan harus ada pada tabel Primary Key dari Foreign Key ini.
Contoh :
CREATE TABLE ProductType (
TypeCode VARCHAR(8) PRIMARY KEY,
TypeDesc VARCHAR(50)
);
CREATE TABLE Product (
ProductCode VARCHAR(5) PRIMARY KEY,
TypeCode VARCHAR(8),
ProductDesc VARCHAR(50)
);
-- Penambahan Constraint Foreign Key Pada tabel Product
ALTER TABLE Product
ADD CONSTRAINT fk_productType FOREIGN KEY(TypeCode)
REFERENCES ProductType(TypeCode);
c) With Check Constraint
Constraint ini akan memastikan bahwa nilai yang diinput memenuhi suatu
kriteria.
Contoh : tabel Order yang memiliki kolom ShippingDate yang harus lebih besar
dari OrderDate
CREATE TABLE Order (
OrderId INT IDENTITY(1,1),
OrderDate DATE NOT NULL,
ShippingDate NULL
);
ALTER TABLE Order WITH CHECK
ADD CONSTRAINT ck_shippingdate CHECK (ShippingDate > OrderDate);
d. Sparse Column
Berfungsi mengurangi space yang digunakan untuk kolom yang boleh memiliki nilai
NULL.
Contoh : tabel Mahasiswa yang memiliki alamat alternatif yang boleh diisi dengan nilai
NULL
CREATE TABLE Mahasiswa (
NRP VARCHAR(7) PRIMARY KEY,
Alamat1 VARCHAR(50) NOT NULL,
Alamat2 VARCHAR(50) SPARSE NULL
);
e. Null-able Column and Not Null Column
Attribut null dan not null digunakan untuk menentukan apakah suatu kolom pada suatu
table dapat bernilai null atau tidak. Arti dari nilai null adalah tidak memiliki nilai alias
kosong. Kolom primary key otomatis tidak boleh bernilai null.
Contoh Table Mahasiswa dengan kolom nama yang tidak boleh null dan alamat yang
boleh bernilai null.
CREATE TABLE Mahasiswa (
NRP VARCHAR(7) PRIMARY KEY,
Nama VARCHAR(50) NOT NULL,
Alamat VARCHAR(100) NULL
);
5. Key
a. Primary Key
Ketika suatu tabel dibuat, kita dapat menentukan attribut yang harus memiliki attribut
Primary Key. Attribut ini akan memastikan bahwa tidak ada nilai yang sama didalam
suatu tabel. Sama halnya dengan Constraint Primary Key.
Contoh : tabel Mahasiswa dengan NRP sebagai Primary Key.
CREATE TABLE Mahasiswa (
NRP VARCHAR(8) PRIMARY KEY,
Nama VARCHAR(25) NOT NULL
);
b. Foreign Key
Sama halnya dengan Constraint Foreign key
Contoh :
CREATE TABLE ProductType (
TypeCode VARCHAR(8) PRIMARY KEY,
TypeDesc VARCHAR(50)
);
CREATE TABLE Product (
ProductCode VARCHAR(5) PRIMARY KEY,
TypeCode VARCHAR(8) FOREIGN KEY REFERENCES ProductType(TypeCode) ON
UPDATE CASCADE ON DELETE CASCADE,
ProductDesc VARCHAR(50)
);
6. Database Diagram
Berisi diagram yang memetakan semua tabel berserta relasinya terdapat didalam sebuah
Database.
[Intermediate]
1. Temporary Table
Temporary table merupakan tabel khusus. Tabel temporary ini tidak disimpan pada database
primary, melainkan disimpan pada temporary data yang terdapat pada sistem SQL Server.
Script untuk membuat temporary table sama dengan script yang digunakan untuk membuat
table biasa, yang membedakan hanya terdapat pada penamaan tabel. Penamaan table selalu
dimulai dengan tanda (#).
Script :
CREATE TABLE #temp1 (
ID INT PRIMARY KEY,
Nama VARCHAR(20),
ModifiedDate DATETIME
);
Temporary table dapat dikategorikan menjadi :
a. Local Temporary Table
Local temporary table hanya berlaku didalam sebuah Stored procedure. Apabila sebuah
Stored Procedure di eksekusi, maka secara otomatis table akan dibuat dan dibuang
apabila Stored Procedure tersebut telah selesai dieksekusi.
b. Global Temporary Table
Berbeda dengan Local Temporary table, Global Temporary Table ini dapat diakses kapan
saja selama tabel temporary ini belum dibuang.
Untuk mengetahui sebuah table temporary sudah ada atau belum didalam sebuah sistem SQL
Server, anda dapat menggunakan script dibawah ini :
Script :
SELECT * FROM tempdb.sys.tables WHERE Name LIKE ‘%%temp1%’
2. Database Schema
Schema digunakan untuk memudahkan proses development dan pembagian hak akses. Setiap
table dikelompokan berdasarkan database schema.
Database Schema dapat mengurangi pekerjaan dan meningkatkan fleksibilitas untuk hal-hal
yang berhubungan dengan administrasi database. Setiap schema yang dibuat, berlaku otorisasi.
CREATE SCHEMA [Nama Skema]
Jika ingin mendapatkan informasi tambahan, mahasiswa dapat mengakses langsung ke link-link
berikut :
1. Database (Definisi dan cara kerja) :
http://msdn.microsoft.com/en-us/library/ms179422%28v=SQL.100%29.aspx
2. Database (Create, Attach and Detach) :
http://msdn.microsoft.com/en-us/library/ms176061%28v=SQL.100%29.aspx
3. Database File dan Files Group :
http://msdn.microsoft.com/en-us/library/ms179316%28v=SQL.100%29.aspx
4. Attaching and Dettaching database :
http://msdn.microsoft.com/en-us/library/ms190794%28v=SQL.100%29.aspx
5. Temporary Tables (how To Create) :
http://msdn.microsoft.com/en-us/library/ms174979.aspx
6. Database Schema :
http://msdn.microsoft.com/en-us/library/dd283095%28v=sql.100%29.aspx
7. Alter Table :
http://msdn.microsoft.com/en-us/library/ms190273.aspx
8. Drop Table :
http://msdn.microsoft.com/en-us/library/ms173790.aspx
Download