Senin, 15 Maret 2010

1. Pada Object Explorer, pilih Databases. Klik kanan dan pilih New Database.
2. Isikan Database name dengan nama yang sesuai. Maka Logical Name pada grid akan mengikuti nama yang didefinisikan.
3. Secara default, kolom pada grid-grid tersebut sudah terisi. Tetapi, kita juga bisa mengubah data yang ada pada kolom tersebut sesuai kebutuhan kita.
4. Klik tombol OK untuk membuat database.
Langkah di atas merupakan langkah-langkah membuat database secara default. Secara default, SQL Server akan membuat dua filegroup, yaitu mdf dan ldf. Mdf merupakan master data file (disebut juga dengan filegroup primary), yang merupakan starting point dari SQL Server tersebut. Pada mdf ini, kita juga bisa menyimpan data kebutuhan aplikasi.
Sedangkan ldf merupakan log data file (disebut juga dengan filegroup log), merupakan tempat penyimpanan log dari transaksi yang terjadi pada database tersebut. Selain dua filegroup tersebut, pada SQL Server bisa membuat file ndf. Ndf merupakan secondary data file, yang bisa ditambahkan ke dalam database kita. Biasanya digunakan untuk menyimpan data. Setelah database jadi, maka database tersebut akan terlihat pada Object Explorer. Database tersebut akan bisa diakses untuk kebutuhan aplikasi kita.

Membuat Database Melalui Script Selain menggunakan SSMS, database juga bisa dibuat menggunakan script. Di bawah adalah cara untuk membuat database menggunakan script :
CREATE DATABASE BuletindoDB
CREATE DATABASE BuletindoDB
ON PRIMARY
(
NAME = N'FG_Primary',
FILENAME = 'c:\Files\FG_Primary.mdf',
SIZE = 2MB,
MAXSIZE = UNLIMITED,
FILEGROWTH = 100MB
)
LOG ON
(
NAME = N'FG_Log',
FILENAME = 'c:\Files\Buletindo_Log.mdf' ,
SIZE = 2MB,
MAXSIZE = UNLIMITED,
FILEGROWTH = 100MB
)
Pada script di atas, kita mendefinisikan beberapa property sesuai dengan kebutuhan kita sendiri. Jika sebelumnya propertyproperty tersebut diisi secara default oleh SQL Server, maka melalui script kita bisa mendefinisikannya sesuai kebutuhan. Hal ini sama jika kita mengubah data secara default saat membuat database menggunakan SSMS, namun terasa lebih mudah. Property tersebut adalah :
• NAME
Nama logikal dari data file tersebut.
• FILENAME
Nama fisik yang tersimpan di dalam disk pada server.
• SIZE
Nilai besarnya data file pada saat database dibuat.
• MAXSIZE
Nilai maximum dari data file yang didefinisikan tersebut.
• FILEGROWTH
Nilai dari data file tersebut yang akan ditambahkan saat data file yang didefinisikan tersebut telah terisi penuh.
Membuat Secondary File dan Data File Secondary file bisa dibuat untuk menampung data-data transaksional lainnya. Filegroup primary biasanya tidak menampung data-data transaksi dari database tersebut, melainkan akan menjadi starting point dari suatu database. Filegroup secondary bisa dibuat lebih dari satu, hal ini berbeda dengan Filegroup primary dan Filegroup log.
Berikut ini adalah script untuk membuat secondary file :
CREATE DATABASE BuletindoDB
ON PRIMARY
(
NAME = N'FG_Primary',
FILENAME = 'c:\Files\FG_Primary.mdf' ,
SIZE = 2MB,
MAXSIZE = UNLIMITED,
FILEGROWTH = 100MB
),
FILEGROUP FG_Secondary1
(
NAME = N'FG_Secondary1',
FILENAME = 'c:\Files\FG_Secondary1.ndf' ,
SIZE = 2MB,
MAXSIZE = UNLIMITED,
FILEGROWTH = 100MB
),
FILEGROUP FG_Secondary2
(
NAME = N'FG_Secondary2',
FILENAME = 'c:\Files\FG_Secondary2.ndf' ,
SIZE = 2MB,
MAXSIZE = UNLIMITED,
FILEGROWTH = 100MB
)
LOG ON
(
NAME = N'FG_Log',
FILENAME = 'c:\Files\Buletindo_Log.mdf' ,
SIZE = 2MB,
MAXSIZE = UNLIMITED,
FILEGROWTH = 100MB
)
Filegroup FG_Secondary1 dan FG_Secondary2 merupakan filegroup secondary, dimana datanya berupa ndf. Filegroup tersebut didefinisikan dengan property yang sama seperti filegroup primary dan log.
Kita juga bisa mendefinisikan nilai dari property tersebut berbeda dengan filegroup primary dan log, tidak harus sama.
Setiap filegroup (mdf, ldf, dan ndf) bisa memiliki lebih dari satu data file. Secara fisik, data file dengan extension mdf dan ldf hanya satu. Jika kita menambahkan data file pada filegroup primary, maka yang lainnya berupa ndf (secondary data file).
Di bawah ini adalah script untuk membuat database dengan lebih dari satu data file:
CREATE DATABASE BuletindoDB
ON PRIMARY
(
NAME = N'FG_Primary',
FILENAME = 'c:\Files\FG_Primary.mdf' ,
SIZE = 2MB,
MAXSIZE = UNLIMITED,
FILEGROWTH = 100MB
),
FILEGROUP FG_Secondary1
(
NAME = N'FG_Secondary11',
FILENAME = 'c:\Files\FG_Secondary11.ndf' ,
SIZE = 2MB,
MAXSIZE = UNLIMITED,
FILEGROWTH = 100MB
),
(
NAME = N'FG_Secondary12',
FILENAME = 'c:\Files\FG_Secondary12.ndf' ,
SIZE = 2MB,
MAXSIZE = UNLIMITED,
FILEGROWTH = 100MB
),
FILEGROUP FG_Secondary2
(
NAME = N'FG_Secondary21',
FILENAME = 'c:\Files\FG_Secondary21.ndf' ,
SIZE = 2MB,
MAXSIZE = UNLIMITED,
FILEGROWTH = 100MB
),
(
NAME = N'FG_Secondary22',
FILENAME = 'c:\Files\FG_Secondary22.ndf' ,
SIZE = 2MB,
MAXSIZE = UNLIMITED,
FILEGROWTH = 100MB
)
LOG ON
(
NAME = N'FG_Log',
FILENAME = 'c:\Files\Buletindo_Log.mdf' ,
SIZE = 2MB,
MAXSIZE = UNLIMITED,
FILEGROWTH = 100MB
)
Dengan memiliki lebih dari satu data file, maka kita bisa menempatkan data file tersebut pada disk yang berbeda. Hal ini bisa meningkatkan performa disk I/O pada server tersebut karena bisa ditempatkan di beberapa disk yang berbeda, sehingga bottleneck pada I/O server tidak terjadi.
Dengan dibuatnya database pada SQL Server dengan terstruktur dan arsitektur yang tepat, maka performa bisa kita tingkatkan. Selain me-reduce bottleneck pada I/O dengan menempatkan pada beberapa disk berbeda, arsitektur ini juga bisa me-reduce loading data yang akan diambil karena data yang di-load hanya satu bagian kecil (satu data file), bukan satu file mdf yang memiliki semua data pada database tersebut.
Best Practice :
Saat mendefinisikan filegroup, sebaiknya tempatkan filegroup primary dan filegroup log secara terpisah agar lebih optimal dalam I/O dan bisa menjalankan proses secara
paralel.
Sebaiknya Filegrowth didefinisikan dengan menggunakan MB (Megabyte) dan bukan percentage. Karena jika kita menggunakan percentage, semakin besar ukuran database semakin besar pula growth pada filegroup tersebut.
Tabel merupakan suatu tempat untuk menyimpan data pada database SQL Server secara logikal. Secara fisik, data pada database SQL Server disimpan pada filegroup yang didefinisikan pada awal pembuatan database. Selanjutnya, setiap tabel yang dibuat didefinisikan pada filegroup mana akan disimpan. SQL Server 2008 mempunyai beberapa fitur baru dalam membuat tabel, seperti data compression dan sparse column. Untuk membuat tabel pada SQL Server 2008, kita bisa menggunakan SSMS (SQL Server Management Studio) dan script.
Mengenal Data Type pada SQL Server 2008 Saat membuat tabel pada SQL Server 2008, kita akan selalu mendefinisikan suatu column yang kita definisikan pada tabel dengan data type. Data type ini akan menentukan apakah column tersebut bersifat string atau numeric. Contoh data type di antaranya adalah :
INT : Data type ini digunakan untuk column yang menyimpan nilai numeric. Contohnya adalah 1,-1,2,3,-3 dst.
DATETIME/DATE (khusus 2008) : Data type ini digunakan untuk column yang manampung nilai tanggal. Pada DATETIME akan menyimpan data berupa tanggal dan waktu,sedangkan untuk DATE hanya menyimpan tanggal saja.
VARCHAR : Data type ini digunakan untuk column yang menyimpan nilai yang berupa karakter.
CHAR : Data type ini juga digunakan untuk column yang menyimpan nilai karakter. Bedanya dengan VARCHAR adalah dengan CHAR akan tersimpan nilai yang fixed length, sedangkan VARCHAR akan lebih variatif.
DECIMAL : Data type ini digunakan untuk column yang menyimpan nilai numeric dengan angka di belakang koma.
Masing-masing data type tersebut memiliki karakteristik satu sama lainnya. kita sebaiknya menggunakan sesuai dengan data yang akan disimpan pada column tersebut.
Membuat Tabel Menggunakan SSMS Pada SQL Server 2008, kita bisa menggunakan SSMS untuk membuat tabel. Berikut langkah-langkah membuat tabel menggunakan SSMS :
- Klik kanan ServerName > Databases > DatabaseName >Tables > New Table….
- Pada workspace bagian kanan, masukkan column-column yang akan didefinisikan. Di setiap column tersebut pilih data type yang sesuai dengan kebutuhan.
- Tentukan primary key dengan memfokuskan pada column tertentu dan pilih tombol primary key pada toolbox.
- Pada toolbox, klik Save dan tuliskan nama tabel.<
- Setelah tabel disimpan, maka pada Object Explorer akan terlihat tabel yang kita definisikan.
Contoh di atas adalah pembuatan tabel PELANGGAN dimana tabel tersebut telah dibuat dan bisa dilihat Object Explorer SSMS. Secara defaultnya, kita membuat tabel dengan 5 langkah di atas menggunakan SSMS.
Membuat Tabel Menggunakan Script
Selain menggunakan SSMS, biasanya database developer lebih senang membuat tabel pada database menggunakan script, karena lebih mudah dan flexibel.
Berikut contoh pembuatan tabel pelanggan menggunakan script :
CREATE TABLE PELANGGAN
(
kd_plg VARCHAR(5) NOT NULL
PRIMARY KEY,
nm_plg VARCHAR(25) NULL,
alamat VARCHAR(25) NULL,
tgl_join DATE NULL
)
Jika kita tidak mendefinisikan filegroup saat membuat tabel, maka secara default ditempatkan pada primary filegroup. Untuk mendefinisikan filegroup yang akan menyimpan data pada suatu tabel, kita harus menambahkan suatu script saat membuat tabel.
CREATE TABLE BARANG
(
kd_brg VARCHAR(5) NOT NULL
PRIMARY KEY,
nm_brg VARCHAR(25) NULL,
hrg_beli DECIMAL(29,2)
NULL,
hrg_jual DECIMAL(29,2)
NULL,
stok INT NULL
) ON [FG_SECONDARY1]
FG_SECONDARY1 merupakan salah satu filegroup yang terdapat pada database dimana tabel tersebut dibuat. Dengan mendefinisikannya pada filegroup tersebut, maka data akan disimpan pada filegroup tersebut.
Mendefinisikan Check Contraint
Constraint merupakan suatu rule yang diterapkan pada suatu column di dalam tabel untuk memvalidasi data-data yang akan masuk ke dalam tabel tersebut. Contoh constraint yang sudah digunakan sebelumnya adalah NULL dan NOT NULL. Dengan didefinisikan suatu column dengan NOT NULL, maka data tidak boleh kosong (NULL).
Berikut script untuk membuat tabel dengan menggunakan check constraint :
(
kd_brg VARCHAR(5) NOT NULL
PRIMARY KEY,
nm_brg VARCHAR(25) NULL,
hrg_beli DECIMAL(29,2)
NULL,
hrg_jual DECIMAL(29,2)
NULL,
CONSTRAINT C_KdBrg CHECK
(kd_brg LIKE
'[B][0-9][0-9][0-9][0-9]')
) ON [FG_SECONDARY1]
Dengan adanya constraint tersebut, maka data yang masuk ke column tersebut akan divalidasi terlebih dahulu. Ini akan mencegah masuknya data yang kurang diinginkan. Biasanya constraint untuk column-column yang bersifat fix.
Mendefinisikan Foreign Key
Foreign key merupakan suatu key yang menghubungkan antar satu tabel ke tabel lainnya. Di dalam suatu tabel boleh memiliki lebih dari satu foreign key. Foreign key juga merupakan salah satu constraint yang bisa digunakan untuk memvalidasi data yang masuk ke dalam suatu tabel.
Berikut script untuk mendefinisikan foreign key pada saat membuat tabel :
CREATE TABLE PENJUALAN
(
penj_id INT NOT NULL
IDENTITY PRIMARY KEY,
tgl_trx DATETIME NULL,
kd_plg VARCHAR(5) NOT NULL
FOREIGN KEY REFERENCES
PELANGGAN (kd_plg),
jml_penj DECIMAL(29,2)
NULL,
mtd_pemb VARCHAR(5) NULL
) ON [FG_SECONDARY1]
Column yang memakai foreign key adalah column kd_plg. Column tersebut mempunyai relasi (hubungan) dengan tabel PELANGGAN yang dihubungkan dengan column kd_plg. Dengan menggunakan foreign key tersebut, maka data integrity pada masing-masing tabel tersebut lebih terjamin.
Computed column adalah suatu mekanisme yang digunakan untuk mendefinisikan suatu column menggunakan expression (+,-,*,/). Dengan ini maka akan memudahkan untuk bussines logic, karena tidak perlu melakukan perhitungan pada aplikasi karena sudah didefinisikan pada tabel tersebut.
Berikut script untuk membuat computed column :
CREATE TABLE DETAIL_PENJUALAN
(
det _id INT NOT NULL
IDENTITY PRIMARY KEY,
penj_id INT NOT NULL
FOREIGN KEY REFERENCES
PENJUALAN (penj_id),
kd_brg VARCHAR(5) NOT NULL
FOREIGN KEY REFERENCES
BARANG (kd_brg),
hrg_jual DECIMAL(29,2)
NULL,
jumlah INT NULL,
total_harga
AS hrg_jual * jumlah
) ON [FG_SECONDARY1]
Column total_harga adalah contoh dari penggunaan computed column tersebut. Pada column tersebut digunakan hrg_jual * jumlah. Hasil dari kedua nilai tersebut akan disimpan pada column total_harga.
Data Compression dan Sparse Column
Data Compression dan Sparse Column merupakan fitur baru pada SQL Server 2008. Data Compression adalah suatu metode penyimpanan dimana data yang disimpan pada suatu tabel akan di-compress sehingga lebih kecil datanya. Sedangkan Sparse Column adalah suatu metode penyimpanan data dimana data yang bersifat NULL akan lebih kecil. Jika tidak menggunakan metode ini, nilai yang berisikan data NULL value akan disimpan sesuai tipe data yang didefinisikan.
CREATE TABLE PELANGGAN
(
kd_plg VARCHAR(5) NOT NULL
PRIMARY KEY,
nm_plg VARCHAR(25) NULL,
alamat VARCHAR(25) NULL,
tgl_join DATE NULL
) WITH (DATA_COMPRESSION = PAGE)
Contoh membuat tabel menggunakan Sparse Column :
CREATE TABLE PELANGGAN
(
kd_plg VARCHAR(5) NOT NULL
PRIMARY KEY,
nm_plg VARCHAR(25) NULL,
alamat VARCHAR(25) NULL,
tgl_join DATE NULL,
kontak VARCHAR(25) SPARSE
NULL
)
Kedua fitur baru tersebut sangat memungkinkan pada SQL Server 2008 untuk menyimpan data lebih kecil dibandingkan sebelumnya. Tetapi yang harus diingat adalah saat pengambilan data, akan sedikit mempengaruhi performa dari database itu sendiri. Untuk itu sebaiknya digunakan sesuai dengan kebutuhan.
0 komentar:
Posting Komentar