
Basis Data (bahasa Inggris: Database) telah tidak asing kembali bagi kalangan praktisi Database Administrator (DBA). Mereka merancang desain basis data suatu proses agar memenuhi persyaratan desain database yang baik. Basis data (database) adalah kumpulan atau koleksi data yang terorganisir dan terstruktur, di mana data tersebut mampu disimpan secara elektronik.
Data di dalam basis data disimpan di dalam tabel yang terdiri berasal dari baris dan kolom. Setiap kolom mewakili atribut khusus, dan tiap-tiap baris mewakili entitas atau catatan.
Database memfasilitasi pengelolaan data terpusat yang terlalu mungkin untuk dibuka bersama banyak pengguna lainnya.
Merancang database memerlukan proses normalisasi. Normalisasi basis data adalah proses sesuaikan kembali data di dalam basis data untuk kurangi redundansi, menjauhi anomali data, dan memastikan integritas data.
Tujuan berasal dari perihal tersebut adalah menjauhi anomali dikala jalankan proses INSERT, DELETE, maupun UPDATE.
Pada kesempatan kali ini, kami tidak dapat membahas teori normalisasi data lebih jauh. Kita dapat bahas soal desain database inventory stok barang bersama tehnik query.
Namun, andaikan kamu mendambakan studi soal normalisasi data, kamu mampu mencari Info via search engine bersama keyword “normalization database”.
Oke, tanpa perlu berlama-lama kembali kami dapat coba mempraktikkan langsung langkah merancang database inventory stok barang bersama tehnik query.
Pertama, Membuat Basis Data
Hasil normalisasi basis data untuk inventory stok barang yang kami mempunyai adalah tabel distributor, tabel barang, tabel pembelian, tabel detil pembelian, dan tabel stok. Di sini, kami dapat menggunakan PostgreSQL sebagai RDBMS (Relational Database Management System).
Sintaks untuk membawa dampak basis data adalah CREATE DATABASE dbinventory; di mana dbinventory adalah nama database yang dapat menampung object seperti tabel yang dapat kami buat.
Kedua, Membuat Tabel
Selanjutnya, kami membawa dampak satu file yang diberi nama buat_tabel.sql dan sintaks pembuatan tabelnya adalah sebagai berikut.
— Script untuk membawa dampak tabel-tabel di PostgreSQL
— Tabel Distributor
CREATE TABLE distributor (
DistributorID SERIAL PRIMARY KEY,
Nama VARCHAR(255),
Alamat VARCHAR(255),
Telp VARCHAR(20)
);
— Tabel Barang
CREATE TABLE barang (
KodeBarang SERIAL PRIMARY KEY,
Nama VARCHAR(255),
Deskripsi TEXT,
Harga DECIMAL(10, 2)
);
— Tabel pembelian
CREATE TABLE pembelian (
OrderID SERIAL PRIMARY KEY,
DistributorID INT REFERENCES distributor(DistributorID),
Tglpembelian DATE,
TglPengiriman DATE,
Totalharga DECIMAL(10, 2)
);
— Tabel detil pembelian
CREATE TABLE detailpembelian (
DetailPembelianID SERIAL PRIMARY KEY,
OrderID INT REFERENCES pembelian(OrderID),
KodeBarang INT REFERENCES barang(KodeBarang),
Quantity INT,
HargaSatuan DECIMAL(10, 2),
Subtotal DECIMAL(10, 2)
);
— Tabel Stok
CREATE TABLE Stok (
StokID SERIAL PRIMARY KEY,
KodeBarang INT REFERENCES barang(KodeBarang),
JumlahStok INT,
LastUpdate TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
Jangan lupa disimpan dan kami eksekusi file *.sql tersebut bersama perintah:
\i /home/amrilhs/test/buat_tabel.sql
Terkait path wilayah penyimpanan file *.sql, kamu mampu menyesuaikannya sendiri, ya.
Sintaks pembuatan tabel
Hasilnya seperti gambar di bawah ini.
Hasil table basis data
Konsultasi sekarang dengan ahlinya: ade prasetyo
Ketiga, Insert Data dan Menampilkan Data Menggunakan Procedure SQL
Selanjutnya, kami dapat mencoba menyimpan/menambahkan data di tiap-tiap tabel yang telah ada. Cara yang digunakan adalah menggunakan procedure SQL. Procedure SQL adalah kumpulan instruksi yang disimpan di di dalam basis data dan mampu dipanggil secara berulang-ulang.
Perintah menjalankannya adalah Call <nama_file_procedure>. Langkah awal adalah terhubung file editor baru seperti nano atau vim atau editor lainnya, dan skrip yang dimaksud adalah sebagai berikut.
CREATE PROCEDURE insert_data_into_tables()
LANGUAGE plpgsql
AS
$$
BEGIN
— 1. Masukkan data ke tabel distributor
INSERT INTO distributor (Nama, Alamat, Telp)
VALUES
(‘PT. ABC’, ‘Jl. Merdeka No. 100, Jakarta’, ‘021-12345678’),
(‘PT. DEF’, ‘Jl. Thamrin No. 200, Jakarta’, ‘021-23456789’),
(‘PT. GHI’, ‘Jl. Gatot Subroto No. 300, Jakarta’, ‘021-34567890’),
(‘PT. JKL’, ‘Jl. Sudirman No. 400, Jakarta’, ‘021-45678901’),
(‘PT. MNO’, ‘Jl. Hasanudin No. 500, Jakarta’, ‘021-56789012’);
— 2. Masukkan data ke tabel barang
INSERT INTO barang (Nama, Deskripsi, Harga)
VALUES
(‘Laptop ASUS VivoBook’, ‘Laptop bersama prosesor Intel Core i5 dan RAM 8 GB’, 7000000),
(‘Smartphone Samsung Galaxy A53’, ‘Smartphone bersama layar Super AMOLED 6,5 inci dan kamera 64 MP’, 5000000),
(‘TV LED LG 43 Inch’, ‘TV LED bersama resolusi 4K dan HDR’, 7500000),
(‘Mesin Cuci Samsung 10 Kg’, ‘Mesin cuci bersama kapasitas 10 kg dan fitur Eco Bubble’, 5500000),
(‘Setrika Philips GC3902’, ‘Setrika bersama teknologi OptimalTemp’, 250000);
— 3. Masukkan data ke tabel pembelian
INSERT INTO pembelian (DistributorID, TglPembelian, TglPengiriman, TotalHarga)
VALUES
(1, ‘2023-10-20’, ‘2023-10-25’, 12000000),
(2, ‘2023-10-21’, ‘2023-10-26’, 15000000),
(3, ‘2023-10-22’, ‘2023-10-27’, 20000000),
(4, ‘2023-10-23’, ‘2023-10-28’, 17500000),
(5, ‘2023-10-24’, ‘2023-10-29’, 10500000);
— 4. Masukkan data ke tabel detil pembelian
INSERT INTO detailpembelian (OrderID, KodeBarang, Quantity, HargaSatuan, Subtotal)
VALUES
(1, 1, 1, 7000000, 7000000),
(1, 2, 2, 5000000, 10000000),
(2, 3, 3, 7500000, 22500000),
(3, 4, 4, 5500000, 22000000),
(4, 5, 5, 250000, 1250000);
— 5. Masukkan data ke tabel stok
INSERT INTO stok (KodeBarang, JumlahStok)
VALUES
(1, 100),
(2, 200),
(3, 300),
(4, 400),
(5, 500);
END;
$$
Kemudian, simpan bersama nama insert_table.sql. Setelah itu, jalankan bersama perintah membawa dampak procedure seperti di bawah ini.
Perintah membawa dampak prosedur
Untuk mengeksekusi procedure tadi, menggunakan perintah berikut.
Call insert_data_into_tables();
Perintah untuk mengeksekusi prosedur di atas
Setelah jalankan insert data, kami dapat coba menampilkan data tersebut. Caranya sama, cuma perintahnya saja yang berbeda. Buat satu file dan simpan bersama nama display_table.sql. Skripnya seperti di bawah ini.
CREATE OR REPLACE PROCEDURE tampilkan_data()
LANGUAGE plpgsql
AS
$$
DECLARE
distributor_record record;
barang_record record;
pembelian_record record;
detailpembelian_record record;
stok_record record;
BEGIN
— 1. Tampilkan data tabel distributor
FOR distributor_record IN (SELECT * FROM distributor)
LOOP
RAISE NOTICE ‘Distributor: %’, distributor_record;
END LOOP;
— 2. Tampilkan data tabel barang
FOR barang_record IN (SELECT * FROM barang)
LOOP
RAISE NOTICE ‘Barang: %’, barang_record;
END LOOP;
— 3. Tampilkan data tabel pembelian
FOR pembelian_record IN (SELECT * FROM pembelian)
LOOP
RAISE NOTICE ‘Pembelian: %’, pembelian_record;
END LOOP;
— 4. Tampilkan data tabel detil pembelian
FOR detailpembelian_record IN (SELECT * FROM detailpembelian)
LOOP
RAISE NOTICE ‘Detail Pembelian: %’, detailpembelian_record;
END LOOP;
— 5. Tampilkan data tabel stok
FOR stok_record IN (SELECT * FROM stok)
LOOP
RAISE NOTICE ‘Stok: %’, stok_record;
END LOOP;
END;
$$;
Untuk path penyimpanan file, silahkan kamu sesuaikan sendiri, ya. Kemudian jalankan perintah tersebut.