Uncategorized

Tutorial Basis Data dengan MySQL : Studi Kasus I (Membuat Database & Tabel)

Saat ini situs-situs jejaring sosial seperti Facebook, Friendster, MySpace, dan lain-lain sudah semakin populer. Pada tutorial ini akan dijelaskan cara membuat sebuah database dan table melalui command MySQL pada “Implementasi Rancangan Basis Data Situs Jejaring Sosial”. Sebelumnya, berikut dirancang suatu basis data dengan menggunakan MySQL dari salah satu situs social networking, dalam hal ini rancangan email pada Facebook. Rancangan basis data yang diperlukan yaitu sesuai model data berikut ini :

Dengan melihat rancangan model data di atas, maka dapat disusun suatu basis data menggunakan syntax MySQL yang merepresentasikan masing-masing model data. Tabel yang diperlukan dalam penyusunan basis data ini yaitu tabel ME, SOCIAL_NETWORKS, MY_EMAIL_LOGINS, MAIL_BOXES, SENT_MESSAGE, NOTIFICATIONS, dan UPDATES. Pembuatan masing-masing tabel dapat dijelaskan secara lebih rinci melalui penjelasan sebagai berikut :

1). Membuat Database “FACEBOOK”

mysql> create database facebook;
Query OK, 1 row affected (0.00 sec)
mysql> use facebook;
Database changed

2). Membuat Tabel “ME”

Tabel ME secara umum berisi identitas user (pengguna) email  Facebook. Sesuai dengan rancangan model data di atas, pada tabel ini diperlukan empat kolom parameter meliputi my_id, first_name, last_name,dan other_details. Syntax MySQL yang digunakan untuk membuat tabel data ME ini adalah sebagai berikut :

mysql> create table ME(my_id int(30) not null primary key, first_name varchar(40
), last_name varchar(40), other_details varchar(100));
Query OK, 0 rows affected (0.72 sec)

Untuk melihat hasil pembuatan tabel ME di atas digunakan perintah sebagai berikut :

mysql> describe ME;
+---------------+--------------+------+-----+---------+-------+
| Field         | Type         | Null | Key | Default | Extra |
+---------------+--------------+------+-----+---------+-------+
| my_id         | int(30)      | NO   | PRI | NULL    |       |
| first_name    | varchar(40)  | YES  |     | NULL    |       |
| last_name     | varchar(40)  | YES  |     | NULL    |       |
| other_details | varchar(100) | YES  |     | NULL    |       |
+---------------+--------------+------+-----+---------+-------+
4 rows in set (0.01 sec)

Tampak dalam tabel di atas bahwa field my_id dijadikan sebagai PK (primary key). Kunci primer digunakan untuk menyatakan bahwa suatu nilai tidak boleh ada yang sama dan nilai tersebut harus diisi (NOT NULL). Suatu kolom yang didefinisikan dengan constraint NOT NULL tidak boleh berisi nilai NULL. Oleh karena itu, kolom yang berfungsi sebagai kunci primer (primary key) otomatis tidak boleh NULL.

Berikut deskripsi untuk masing-masing field yang diperlukan :

  • Field my_id berisi nama ID sebagai identitas pengguna yang digunakan untuk melakukan login ke dalam sistem Facebook. Field my_id ini bertipe data bilangan integer sepanjang 10 digit.
  • Field first_name berisi data nama awal pengguna Facebook. Field first_name bertipe data varchar (karakter) sepanjang 40 digit,
  • Field last_name berisi data nama akhir pengguna Facebook. Field last_name bertipe data varchar (karakter) sepanjang 40 digit,
  • Field other_details berisi data lain yang berfungsi sebagai keterangan mengenai pengguna. Field other_details bertipe data varchar (karakter) sepanjang 100 digit.

3). Membuat Tabel “SOCIAL_NETWORKS”

Tabel SOCIAL_NETWORKS secara umum berisi jenis detail mengenai situs jaringan sosial yang digunakan pengguna. Sesuai dengan rancangan model data di atas, pada tabel ini diperlukan empat kolom parameter meliputi network_code, network_name, dan network_description.

Syntax MySQL yang digunakan untuk membuat tabel data SOCIAL_NETWORKS ini adalah sebagai berikut :

mysql> create table SOCIAL_NETWORKS(network_code int(25) not null primary key, n
etwork_name varchar(30), network_description varchar(50));
Query OK, 0 rows affected (0.11 sec)

Untuk melihat hasil pembuatan tabel SOCIAL_NETWORKS di atas digunakan perintah sebagai berikut :

mysql> describe SOCIAL_NETWORKS;
+---------------------+-------------+------+-----+---------+-------+
| Field               | Type        | Null | Key | Default | Extra |
+---------------------+-------------+------+-----+---------+-------+
| network_code        | int(25)     | NO   | PRI | NULL    |       |
| network_name        | varchar(30) | YES  |     | NULL    |       |
| network_description | varchar(50) | YES  |     | NULL    |       |
+---------------------+-------------+------+-----+---------+-------+
3 rows in set (0.03 sec)

Berikut deskripsi untuk masing-masing field yang diperlukan :

  • Field network_code berisi nama kode jaringan yang digunakan pengguna. Field network_code ini bertipe data bilangan integer sepanjang 25 digit. Field network_code merupakan primary key yang digunakan untuk tabel ini.
  • Field network_name berisi data nama jaringan yang digunakan pengguna. Field network_name bertipe data varchar (karakter) sepanjang 30 digit,
  • Field network_description berisi deskripsi singkat mengenai jaringan yang digunakan. Field network_description bertipe data varchar (karakter) sepanjang 50 digit.

4). Membuat Tabel “MY_EMAIL_LOGINS”

Tabel MY_EMAIL_LOGINS secara umum berisi detail login email pengguna. Sesuai dengan rancangan model data di atas, pada tabel ini diperlukan tujuh kolom parameter meliputi my_login, my_id, network_code, date_signed_up, my_email_name, my_email_password, dan other_details.

Syntax MySQL yang digunakan untuk membuat tabel data MY_EMAIL_LOGINS ini adalah sebagai berikut :

mysql> create table MY_EMAIL_LOGINS(my_login varchar(30) not null primary key, m
y_id int(10), network_code int(20), date_signed_up date, my_email_name varchar(5
0), my_email_password varchar(50), other_details varchar(50), constraint my_id_f
k foreign key(my_id) references ME(my_id), constraint network_code_fk foreign ke
y(network_code) references SOCIAL_NETWORKS(network_code));
Query OK, 0 rows affected (0.16 sec)

Untuk melihat hasil pembuatan tabel MY_EMAIL_LOGINS di atas digunakan perintah sebagai berikut :

mysql> describe MY_EMAIL_LOGINS;
+-------------------+-------------+------+-----+---------+-------+
| Field             | Type        | Null | Key | Default | Extra |
+-------------------+-------------+------+-----+---------+-------+
| my_login          | varchar(30) | NO   | PRI | NULL    |       |
| my_id             | int(10)     | YES  | MUL | NULL    |       |
| network_code      | int(20)     | YES  | MUL | NULL    |       |
| date_signed_up    | date        | YES  |     | NULL    |       |
| my_email_name     | varchar(50) | YES  |     | NULL    |       |
| my_email_password | varchar(50) | YES  |     | NULL    |       |
| other_details     | varchar(50) | YES  |     | NULL    |       |
+-------------------+-------------+------+-----+---------+-------+
7 rows in set (0.02 sec)

Berikut deskripsi untuk masing-masing field yang diperlukan :

  • Field my_login berisi ID login email Facebook yang digunakan pengguna. Field my_login ini bertipe data varchar sepanjang 30 digit. Field my_login merupakan primary key yang digunakan untuk tabel ini.
  • Field my_id berisi nama ID sebagai identitas pengguna yang digunakan untuk melakukan login ke dalam sistem Facebook. Field ini merupakan suatu foreign key yang mempunyai nilai yang sama seperti field my_id (PK) pada tabel ME. Constraint foreign key dalam hal ini dimaksudkan untuk membentuk relasi antara tabel MY_EMAIL_LOGINS dan tabel ME. Field my_id bertipe data integer sepanjang 10 digit.
  • Field network_code berisi nama kode jaringan yang digunakan pengguna. Field network_code bertipe data integer sepanjang 20 digit. Field ini merupakan suatu foreign key yang mempunyai nilai yang sama seperti field network_code (PK) pada tabel ME. Constraint foreign key dalam hal ini dimaksudkan untuk membentuk relasi antara tabel MY_EMAIL_LOGINS dan tabel SOCIAL_NETWORKS.
  • Field date_signed_up berisi tanggal ketika pengguna terdaftar sebagai akun email Facebook. Field date_signed_up bertipe data date yang merupakan tipe data khusus untuk data penanggalan dalam MySQL.
  • Field my_email_name berisi nama alamat email yang digunakan pengguna ketika mendaftar sebagai akun email. Field my_email bertipe data varchar (karakter) sepanjang 50 digit.
  • Field my_email_password berisi data password yang diberikan pengguna sesuai dengan ID masing-masing dalam akun email. Field my_email_password bertipe data varchar (karakter) sepanjang 50 digit.
  • Field other_details berisi data lain yang berfungsi sebagai keterangan/deskripsi keanggotaan pengguna dalam sistem login email. Field other_details bertipe data varchar (karakter) sepanjang 50 digit.

5). Membuat Tabel “MAIL_BOXES”

Tabel MAIL_BOXES secara umum berisi data mailbox atau kotak masuk sebagai tempat menampung pesan yang masuk ke email pengguna. Sesuai dengan rancangan model data di atas, pada tabel ini diperlukan delapan kolom parameter meliputi mail_id, my_login, date_received, from_email_address, from_name, subject, message dan other_details.

Syntax MySQL yang digunakan untuk membuat tabel data MAIL_BOXES ini adalah sebagai berikut :

mysql> create table MAIL_BOXES(mail_id int(20) not null primary key, my_login va
rchar(30), date_receive date, from_email_address varchar(50), from_name varchar(
50), subject varchar(100), message varchar(500), other_details varchar(100), con
straint my_login_fk foreign key (my_login) references MY_EMAIL_LOGINS(my_login))
;
Query OK, 0 rows affected (0.14 sec)

Untuk melihat hasil pembuatan tabel MAIL_BOXES  digunakan perintah sebagai berikut :

mysql> describe MAIL_BOXES;
+--------------------+--------------+------+-----+---------+-------+
| Field              | Type         | Null | Key | Default | Extra |
+--------------------+--------------+------+-----+---------+-------+
| mail_id            | int(20)      | NO   | PRI | NULL    |       |
| my_login           | varchar(30)  | YES  | MUL | NULL    |       |
| date_received      | date         | YES  |     | NULL    |       |
| from_email_address | varchar(50)  | YES  |     | NULL    |       |
| from_name          | varchar(50)  | YES  |     | NULL    |       |
| subject            | varchar(100) | YES  |     | NULL    |       |
| message            | varchar(500) | YES  |     | NULL    |       |
| other_details      | varchar(100) | YES  |     | NULL    |       |
+--------------------+--------------+------+-----+---------+-------+
8 rows in set (0.03 sec)

Berikut deskripsi untuk masing-masing field yang diperlukan :

  • Field mail_id berisi ID email Facebook terdaftar yang digunakan pengguna. Field mail_id ini bertipe data integer sepanjang 20 digit. Field mail_id merupakan primary key yang digunakan untuk tabel ini.
  • Field my_login berisi ID login email Facebook yang digunakan pengguna. Field ini merupakan suatu foreign key yang mempunyai nilai yang sama seperti field my_login (PK) pada tabel MY_EMAIL_LOGINS. Constraint foreign key dalam hal ini dimaksudkan untuk membentuk relasi antara tabel MAIL_BOXES dan tabel MY_EMAIL_LOGINS. Field my_login bertipe data varchar sepanjang 30 digit .
  • Field date_received berisi tanggal ketika suatu pesan (message) diterima pada email pengguna. Field date_received bertipe data date . yang merupakan tipe data khusus untuk data penanggalan dalam MySQL
  • Field from_email_address berisi nama alamat email pengirim pesan. Field from_email_address bertipe data varchar (karakter) sepanjang 50 digit.
  • Field from_name berisi data nama pengirim pesan. Field from_name bertipe data varchar (karakter) sepanjang 50 digit.
  • Field subject berisi subject/topik pesan yang dikirimkan ke mailbox pengguna. Field subject bertipe data varchar (karakter) sepanjang 100 digit.
  • Field message berisi data isi pesan yang dikirimkan pengirim kepada penerima pesan. Field message bertipe data varchar (karakter) sepanjang 500 digit.
  • Field other_details berisi data lain yang berfungsi sebagai keterangan/deskripsi pesan yang masuk ke dalam mailbox. Field other_details bertipe data varchar (karakter) sepanjang 100 digit.

6). Membuat Tabel “SENT_MESSAGES”

Tabel SENT_MESSAGES secara umum berisi data mengenai pesan yang dikirimkan pengguna ke pengguna lain. Sesuai dengan rancangan model data di atas, pada tabel ini diperlukan tujuh kolom parameter meliputi message_id, my_login, date_sent, to_email_address, subject, message dan other_details.

Syntax MySQL yang digunakan untuk membuat tabel data SENT_MESSAGES ini adalah sebagai berikut :

mysql> create table SENT_MESSAGES(message_id varchar(10) not null primary key, m
y_login varchar(30), date_sent date, to_email_address varchar(50), subject varch
ar(100), message varchar(500), other_details varchar(50), constraint my_login1_f
k foreign key(my_login) references MY_EMAIL_LOGINS(my_login));
Query OK, 0 rows affected (0.09 sec)

Untuk melihat hasil pembuatan tabel SENT_MESSAGES  digunakan perintah sebagai berikut :

mysql> describe SENT_MESSAGES;
+------------------+--------------+------+-----+---------+-------+
| Field            | Type         | Null | Key | Default | Extra |
+------------------+--------------+------+-----+---------+-------+
| message_id       | varchar(10)  | NO   | PRI | NULL    |       |
| my_login         | varchar(30)  | YES  | MUL | NULL    |       |
| date_sent        | date         | YES  |     | NULL    |       |
| to_email_address | varchar(50)  | YES  |     | NULL    |       |
| subject          | varchar(100) | YES  |     | NULL    |       |
| message          | varchar(500) | YES  |     | NULL    |       |
| other_details    | varchar(50)  | YES  |     | NULL    |       |
+------------------+--------------+------+-----+---------+-------+
7 rows in set (0.02 sec)

Berikut deskripsi untuk masing-masing field yang diperlukan :

  • Field message_id berisi ID pesan yang dikirimkan oleh pengguna. Field message_id ini bertipe data varchar sepanjang 10 digit. Field message_id merupakan primary key yang digunakan untuk tabel ini.
  • Field my_login berisi ID login email Facebook yang digunakan pengguna. Field ini merupakan suatu foreign key yang mempunyai nilai yang sama seperti field my_login (PK) pada tabel MY_EMAIL_LOGINS. Constraint foreign key dalam hal ini dimaksudkan untuk membentuk relasi antara tabel SENT_MESSAGES dan tabel MY_EMAIL_LOGINS. Field my_login bertipe data varchar sepanjang 30 digit .
  • Field date_sent berisi tanggal ketika suatu pesan (message) dikirimkan oleh pengguna. Field date_sent bertipe data date yang merupakan tipe data khusus untuk data penanggalan dalam MySQL.
  • Field to_email_address berisi nama alamat email tujuan penerima pesan. Field to_email_address bertipe data varchar (karakter) sepanjang 50 digit.
  • Field subject berisi subject/topik pesan yang dikirimkan ke mailbox penerima. Field subject bertipe data varchar (karakter) sepanjang 100 digit.
  • Field message berisi data isi pesan yang dikirimkan oleh pengirim ke penerima. Field message bertipe data varchar (karakter) sepanjang 500 digit.
  • Field other_details berisi data lain yang berfungsi sebagai keterangan/deskripsi pesan yang dikirimkan ke pengguna lain. Field other_details bertipe data varchar (karakter) sepanjang 50 digit.

7). Membuat Tabel “NOTIFICATIONS”

Tabel NOTIFICATIONS secara umum berisi data mengenai notifikasi terbaru yang masuk ke dalam email pengguna. Sesuai dengan rancangan model data di atas, pada tabel ini diperlukan enam kolom parameter meliputi notification_id, my_login, date_received, subject, message dan other_details.

Syntax MySQL yang digunakan untuk membuat tabel data NOTIFICATIONS ini yaitu sebagai berikut :

mysql> create table NOTIFICATIONS(notification_id varchar(10) not null primary k
ey, my_login varchar(30), date_received date, subject varchar(100), message varc
har(500), other_details varchar(50), constraint my_login2_fk foreign key(my_logi
n) references MY_EMAIL_LOGINS(my_login));
Query OK, 0 rows affected (0.11 sec)

Untuk melihat hasil pembuatan tabel NOTIFICATIONS  digunakan perintah sebagai berikut :

mysql> describe NOTIFICATIONS;
+-----------------+--------------+------+-----+---------+-------+
| Field           | Type         | Null | Key | Default | Extra |
+-----------------+--------------+------+-----+---------+-------+
| notification_id | varchar(10)  | NO   | PRI | NULL    |       |
| my_login        | varchar(30)  | YES  | MUL | NULL    |       |
| date_received   | date         | YES  |     | NULL    |       |
| subject         | varchar(100) | YES  |     | NULL    |       |
| message         | varchar(500) | YES  |     | NULL    |       |
| other_details   | varchar(50)  | YES  |     | NULL    |       |
+-----------------+--------------+------+-----+---------+-------+
6 rows in set (0.05 sec)

Berikut deskripsi untuk masing-masing field yang diperlukan :

  • Field notification_id berisi ID notifikasi yang diterima oleh pengguna. Field notification_id ini bertipe data varchar sepanjang 10 digit. Field notification_id merupakan primary key yang digunakan untuk tabel ini.
  • Field my_login berisi ID login email Facebook yang digunakan pengguna. Field ini merupakan suatu foreign key yang mempunyai nilai yang sama seperti field my_login (PK) pada tabel MY_EMAIL_LOGINS. Constraint foreign key dalam hal ini dimaksudkan untuk membentuk relasi antara tabel NOTIFICATIONS dan tabel MY_EMAIL_LOGINS. Field my_login bertipe data varchar sepanjang 30 digit .
  • Field date_received berisi tanggal ketika suatu notifikasi diterima oleh pengguna. Field date_received bertipe data date yang merupakan tipe data khusus untuk data penanggalan dalam MySQL.
  • Field subject berisi subject/topik notifikasi yang diterima penerima. Field subject bertipe data varchar (karakter) sepanjang 100 digit.
  • Field message berisi data isi notifikasi yang diterima oleh pengguna. Field message bertipe data varchar (karakter) sepanjang 500 digit.
  • Field other_details berisi data lain yang berfungsi sebagai keterangan/deskripsi notifikasi yang diterima pengguna. Field other_details bertipe data varchar (karakter) sepanjang 50 digit.

8). Membuat Tabel “UPDATES”

Tabel UPDATES secara umum berisi data mengenai update informasi terbaru yang masuk ke dalam email pengguna. Sesuai dengan rancangan model data di atas, pada tabel ini diperlukan enam kolom parameter meliputi update_id, my_login, date_received, subject, message dan other_details.

Syntax MySQL yang digunakan untuk membuat tabel data UPDATES ini yaitu sebagai berikut :

mysql> create table UPDATES(update_id varchar(10) not null primary key, my_login
varchar(30), date_received date, subject varchar(100), message varchar(500), ot
her_details varchar(50), constraint my_login3_fk foreign key(my_login) reference
s MY_EMAIL_LOGINS(my_login));
Query OK, 0 rows affected (0.13 sec)

Untuk melihat hasil pembuatan tabel UPDATES  digunakan perintah sebagai berikut :

mysql> describe UPDATES;
+---------------+--------------+------+-----+---------+-------+
| Field         | Type         | Null | Key | Default | Extra |
+---------------+--------------+------+-----+---------+-------+
| update_id     | varchar(10)  | NO   | PRI | NULL    |       |
| my_login      | varchar(30)  | YES  | MUL | NULL    |       |
| date_received | date         | YES  |     | NULL    |       |
| subject       | varchar(100) | YES  |     | NULL    |       |
| message       | varchar(500) | YES  |     | NULL    |       |
| other_details | varchar(50)  | YES  |     | NULL    |       |
+---------------+--------------+------+-----+---------+-------+
6 rows in set (0.00 sec)

Berikut deskripsi untuk masing-masing field yang diperlukan :

  • Field update_id berisi ID update informasi yang diterima oleh pengguna. Field update_id ini bertipe data varchar sepanjang 10 digit. Field update_id merupakan primary key yang digunakan untuk tabel ini.
  • Field my_login berisi ID login email Facebook yang digunakan pengguna. Field ini merupakan suatu foreign key yang mempunyai nilai yang sama seperti field my_login (PK) pada tabel MY_EMAIL_LOGINS. Constraint foreign key dalam hal ini dimaksudkan untuk membentuk relasi antara tabel UPDATES dan tabel MY_EMAIL_LOGINS. Field my_login bertipe data varchar sepanjang 30 digit .
  • Field date_received berisi tanggal ketika suatu update informasi terbaru diterima oleh pengguna. Field date_received bertipe data date yang merupakan tipe data khusus untuk data penanggalan dalam MySQL.
  • Field subject berisi subject/topik update informasi yang diterima penerima. Field subject bertipe data varchar (karakter) sepanjang 100 digit.
  • Field message berisi data isi update yang diterima oleh pengguna. Field message bertipe data varchar (karakter) sepanjang 500 digit.
  • Field other_details berisi data lain yang berfungsi sebagai keterangan/deskripsi update informasi yang diterima pengguna. Field other_details bertipe data varchar (karakter) sepanjang 50 digit.

9). Melihat Tabel Database “FACEBOOK”

mysql> show tables;
+--------------------+
| Tables_in_facebook |
+--------------------+
| mail_boxes         |
| me                 |
| my_email_logins    |
| notifications      |
| sent_messages      |
| social_networks    |
| updates            |
+--------------------+
7 rows in set (0.05 sec)