School of Information Systems

Apa itu Sequence, Synonyms, dan Regular Expressions dalam Database Systems?

Dalam pengelolaan basis data modern, terdapat beberapa fitur canggih yang sangat membantu dalam meningkatkan efisiensi dan fleksibilitas operasi database. Artikel ini akan membahas tiga konsep penting yaitu: Sequence, Synonyms, dan  Regular Expressions (Regex). Ketiga konsep ini memiliki peran penting dalam pengembangan dan administrasi sistem database yang optimal. 

Apa itu Sequence? 

Sequence objek database yang menghasilkan deretan angka berurutan secara otomatis. Ini sangat berguna untuk membuat nilai unik seperti primary key, terutama ketika tidak ingin bergantung pada auto-increment yang terbatas pada kolom tertentu. Sequence digunakan untuk menghindari menghindari konflik nilai primary key, dapat mendukung scenario multi-table yang membutuhkan ID unik, dan sequence lebih fleksibel dibanding auto-increment 

Karakteristik Sequence: 

  1. Bersifat Independen - Tidak terikat pada tabel tertentu. 
  2. Dapat Dibagikan - Bisa digunakan oleh banyak tabel. 
  3. Fleksibel - Dapat diatur untuk increment, decrement, atau nilai awal tertentu. 

Contoh Implementasi di Oracle: 

CREATE SEQUENCE customer_id_seq 

START WITH 1000 

INCREMENT BY 1 

MAXVALUE 9999 

NOCACHE 

NOCYCLE; 

Contoh Penggunaan Sequence: 

INSERT INTO customers (customer_id, name)  

VALUES (customer_id_seq.NEXTVAL, ‘John Doe’); 

 

Apa itu Synonyms? 

Synonyms adalah nama alias yang diberikan kepada objek database seperti tabel, view, sequence, atau bahkan procedure. Tujuannya adalah untuk menyederhanakan akses ke objek-objek tersebut, terutama dalam skema yang kompleks dengan mempermudah penulisan query yang panjang. Synonyms juga dapat mengabstraksi lokasi fisik objek database dan meningkatkan keamanan dengan menyembunyikan struktur asli. 

Jenis-Jenis Synonyms: 

  1. Private Synonym - Hanya dapat diakses oleh user yang membuatnya. 
  2. Public Synonym - Dapat diakses oleh semua user dalam database. 

Contoh Pembuatan Synonym: 

Private Synonym 

CREATE SYNONYM emp FOR hr.employees;  

Public Synonym 

CREATE PUBLIC SYNONYM dept FOR hr.departments;  

 

Apa itu Regular Expressions (Regex) dalam SQL? 

Regular Expressions (Regex) adalah pola teks yang digunakan untuk pencocokan string dengan kriteria tertentu. Dalam SQL, regex sangat berguna untuk pencarian dan validasi data yang kompleks. Regex dapat mempermudah untuk validasi data (email, nomor telepon, dll), pencarian teks yang kompleks, dan pembersihan dan transformasi data. 

Fungsi Regex dalam SQL (Oracle): 

  1. REGEXP_LIKE - Memfilter baris berdasarkan pola regex. 
  2. REGEXP_REPLACE - Mengganti substring yang cocok dengan pola. 
  3. REGEXP_SUBSTR - Mengekstrak substring berdasarkan pola. 
  4. REGEXP_INSTR - Menemukan posisi substring yang cocok. 

Contoh Penggunaan Regex: 

– Mencari email dengan format yang valid 

SELECT * FROM users  

WHERE REGEXP_LIKE(email, ‘^[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,}$’); 

– Mengekstrak kode pos dari alamat 

SELECT REGEXP_SUBSTR(address, ‘[0-9]{5}(-[0-9]{4})?’) AS zip_code  

FROM customers; 

 

Sequence, Synonyms dan Regex dapat diintegrasikan untuk saling melengkapi dalam membangun sistem database yang efisien. Sequence dapat memastikan pembuata ID yang unik dan teratur, Sysnonyms dapat menyederhanakan akses ke objek database, dan Regex memungkinkan manipulasi dan validasi data teks. 

Contoh Skenario Integrasi: 

Membuat Sequence untuk order id di table Order 

CREATE SEQUENCE order_seq START WITH 1000 INCREMENT BY 1; 

Membuat synonym untuk table order 

CREATE SYNONYM ord FOR order; 

Memasukkan data dengan regex validation 

INSERT INTO ord (order_id, customer_email, order_date) 

VALUES ( 

    order_seq.NEXTVAL, 

    ‘abc@mail.com’, 

    SYSDATE 

) 

WHERE REGEXP_LIKE(‘customer@example.com’, ‘^[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,}$’); 

 

Referensi 

Carlos Coronel and Steven Morris. (2023). Database Systems: Design, Implementation, and Management. Cengage Learning. Boston. ISBN: 9780357673034. Chapter 7.

Erin