Kursus
Dalam basis data, ketergantungan transitif terjadi ketika satu atribut dalam sebuah tabel bergantung pada atribut lain, yang juga bergantung pada kunci utama. Ketergantungan transitif menjadi masalah dalam normalisasi basis data karena menimbulkan isu data seperti anomali pembaruan, penyisipan, dan penghapusan, yang akan kita bahas dalam artikel ini.
Jika setelah membaca artikel ini Anda ingin mempelajari lebih lanjut, saya merekomendasikan kursus Database Design dari DataCamp untuk membiasakan diri dengan basis data relasional dan penyimpanan data dalam basis data. Saya juga merekomendasikan tutorial Normalization in SQL kami untuk mempelajari bentuk normal dalam SQL, yang merupakan bahasa paling umum untuk mengelola basis data relasional dalam konteks ini.
Memahami Ketergantungan Transitif dalam Basis Data
Dalam basis data relasional, ketergantungan transitif terjadi ketika satu atribut bergantung secara tidak langsung pada atribut lain melalui atribut perantara. Masalah ini berarti nilai satu kolom dapat ditentukan secara tidak langsung dari nilai dua kolom lainnya. Pertimbangkan tabel berikut, bernama DataCamp_Programs:
| Course_or_Skill_Track | Instructor | Instructor_Title |
|---|---|---|
| Data Manipulation in SQL | Mona Khalil | Data Scientist |
| SQL Fundamentals | Mona Khalil | Data Scientist |
| Introduction to SQL | Izzy Weber | Data Coach |
Dari tabel ini:
-
Course_or_Skill_Track→Instructor: Jika kita tahu course atau skill track, kita tahu instruktornya. -
Instructortidak →Course_or_Skill_Track: Terkadang, instruktur mengajar lebih dari satu. -
Instructor→Instructor_Title: Setiap instruktur memiliki title.
Karena itu, Course_or_Skill_Track → Instructor_Title adalah ketergantungan transitif.
Mengapa Ketergantungan Transitif Menyebabkan Masalah
Ketergantungan transitif dapat menyebabkan masalah pada basis data, terutama terkait dengan redundansi data, anomali, dan inkonsistensi.
Redundansi data
Redundansi data terjadi ketika data yang sama diulang secara tidak perlu di seluruh basis data, sehingga menimbulkan ketidakefisienan. Pada contoh tabel DataCamp_Programs, title instruktur disimpan beberapa kali untuk setiap course yang mereka ajar. Pengulangan ini membuang ruang penyimpanan dan membuat basis data lebih sulit dirawat.
Anomali data
Sekarang mari kita lihat masalah pembaruan, penyisipan, dan penghapusan.
Anomali pembaruan
Anomali pembaruan terjadi ketika perubahan pada data harus diterapkan di beberapa tempat karena redundansi. Hal ini menyebabkan inkonsistensi jika sebagian entri diperbarui sementara yang lain terlewat. Bayangkan, misalnya, kita menggunakan kueri SQL untuk memperbarui tabel DataCamp_Programs karena title Mona Khalil berubah menjadi Lead Data Scientist. Anda harus memperbarui secara manual setiap baris tempat title tersebut muncul. Jika satu saja entri terlewat, basis data akan berisi informasi yang saling bertentangan tentang title terbarunya.
| Course_or_Skill_Track | Instructor | Instructor_Title |
|---|---|---|
| Data Manipulation in SQL | Mona Khalil | Lead Data Scientist |
| SQL Fundamentals | Mona Khalil | Data Scientist |
| Introduction to SQL | Izzy Weber | Data Coach |
Anomali penyisipan
Anomali penyisipan terjadi ketika Anda tidak dapat menyisipkan data ke dalam basis data karena data lain yang diperlukan hilang. Dalam kasus lain, Anda mungkin bisa menyisipkan data tetapi struktur tabel memaksa Anda memasukkan informasi yang tidak relevan, redundan, atau hilang, seperti pada contoh di bawah:
| Course_or_Skill_Track | Instructor | Instructor_Title |
|---|---|---|
| Data Manipulation in SQL | Mona Khalil | Data Scientist |
| SQL Fundamentals | Mona Khalil | Data Scientist |
| Introduction to SQL | Izzy Weber | Data Coach |
| TBD | Liam Cooper | Data Analyst |
Anomali penghapusan
Anomali penghapusan terjadi ketika menghapus sebuah record tanpa sengaja menghilangkan informasi berharga dari basis data. Misalnya, menghapus record yang memuat Izzy Weber akan menghilangkan title instruktur juga, yang dapat menyebabkan hilangnya data, karena Anda mungkin tidak lagi memiliki keseluruhan variasi title dalam sistem. Di sini, kita mungkin telah menghapus Data Coach dari sistem sepenuhnya tanpa bermaksud demikian.
| Course_or_Skill_Track | Instructor | Instructor_Title |
|---|---|---|
| Data Manipulation in SQL | Mona Khalil | Data Scientist |
| SQL Fundamentals | Mona Khalil | Data Scientist |
Menghapus Ketergantungan Transitif dengan 3NF
Dalam konteks basis data, normalisasi mengatur data untuk meminimalkan redundansi dan meningkatkan integritas data. Karena alasan ini, ketergantungan transitif sering dibahas dalam konteks third normal form (3NF), teknik normalisasi basis data yang menghilangkan ketergantungan untuk mengatasi masalah ketergantungan transitif.
Third normal form adalah tingkat normalisasi basis data yang menghilangkan ketergantungan transitif dan memastikan setiap atribut non-kunci hanya bergantung pada kunci utama. Ini membantu mencegah redundansi dan kesalahan yang disebabkan oleh ketergantungan transitif. Pertimbangkan langkah-langkah berikut saat menormalisasi skema basis data.
Mengidentifikasi ketergantungan transitif
Untuk menemukan ketergantungan transitif di basis data Anda, pecah prosesnya:
- Periksa Ketergantungan Fungsional pada Kunci Utama: Mulailah dengan mengidentifikasi semua ketergantungan fungsional di mana atribut bergantung langsung pada kunci utama. Langkah ini membantu Anda fokus pada hubungan utama dalam tabel Anda.
- Cari Ketergantungan Tidak Langsung: Selanjutnya, periksa apakah ada atribut non-kunci (yang bukan bagian dari kunci utama) bergantung pada atribut non-kunci lainnya. Jika Anda menemukan satu atribut non-kunci bergantung pada atribut non-kunci lain, yang pada gilirannya bergantung pada kunci utama, Anda telah mengidentifikasi ketergantungan transitif.
- Uji Redundansi atau Anomali: Terakhir, pikirkan apakah ketergantungan tidak langsung ini memperkenalkan redundansi data atau membuat pembaruan menjadi lebih rumit.
Memecah tabel
Setelah Anda mengidentifikasi ketergantungan transitif, Anda perlu memecah tabel untuk menghilangkannya. Anda akan memecah tabel menjadi tabel-tabel yang lebih kecil di mana atribut non-kunci bergantung langsung pada kunci utama. Anda juga akan mempertahankan hubungan antar tabel dengan menautkannya melalui foreign key.
Berikut cara Anda dapat memecah tabel DataCamp_Programs menjadi dua tabel untuk menormalisasinya dan menghilangkan ketergantungan transitif. Seperti yang akan Anda lihat, kita membagi tabel menjadi dua. instructor menjadi kunci untuk menautkan keduanya.
Tabel 1: courses_table
| Course or Skill Track | Instructor |
|---|---|
| Data Manipulation in SQL | Mona Khalil |
| SQL Fundamentals | Mona Khalil |
| Introduction to SQL | Izzy Weber |
Tabel 1: instructors_table
| Instructor | Instructor_Title |
|---|---|
| Mona Khalil | Data Scientist |
| Izzy Weber | Data Coach |
Struktur ini menghilangkan ketergantungan transitif, di mana Instructor_Title sebelumnya bergantung pada Course_or_Skill_Track melalui Instructor. Kini, Instructor_Title hanya bergantung pada Instructor.
Cara Menghindari Ketergantungan Transitif
Saat merancang basis data Anda, penting untuk menghindari ketergantungan transitif demi menjaga efisiensi, skalabilitas, dan integritas data. Berikut praktik terbaik untuk meminimalkan risiko redundansi, anomali, dan inkonsistensi.
- Normalisasi Saat Desain Skema: Jika Anda merancang basis data dari skemanya, penting untuk mempertimbangkan third normal form (3NF) pada tahap awal. Pendekatan ini akan membantu mengurangi ketergantungan transitif dengan menerapkan teknik normalisasi.
- Audit Skema Berkala: Setelah membuat basis data, penting untuk melakukan audit berkala guna memastikan tetap bebas dari ketergantungan transitif.
- Menghindari Penyederhanaan Berlebihan atas Relasi: Selalu petakan relasi dan pisahkan entitas dengan benar dalam tabel yang berbeda untuk menyimpan informasi yang berbeda.
Kesimpulan
Ketergantungan transitif dalam basis data terjadi ketika sebuah atribut dalam tabel bergantung pada atribut lain, yang bergantung pada kunci utama. Ketergantungan transitif selalu berdampak pada efisiensi basis data dengan menghadirkan redundansi, inkonsistensi, dan anomali. Sebagai pengembang, penting untuk mengidentifikasi dan menghilangkan ketergantungan transitif demi integritas data. Anda juga harus mengidentifikasi dan menghilangkan ketergantungan transitif selama desain basis data. Mencapai third normal form (3NF) akan membantu Anda mengoptimalkan basis data dan meningkatkan efisiensi.
Jika Anda ingin meningkatkan keterampilan desain basis data, saya merekomendasikan kursus Creating PostgreSQL Databases dari DataCamp untuk mempelajari lebih lanjut tentang desain skema dan kontrol akses basis data. Terakhir, jika Anda ingin meningkatkan keterampilan manajemen basis data untuk big data, saya merekomendasikan kursus Introduction to Data Modeling in Snowflake kami untuk mempelajari lebih jauh tentang relasi, pemodelan dimensional, dan data vault guna membangun gudang data cloud yang efisien.
Pertanyaan Umum tentang Ketergantungan Transitif
Apa perbedaan antara ketergantungan fungsional dan ketergantungan transitif?
Ketergantungan fungsional terjadi ketika satu atribut bergantung langsung pada kunci utama. Ketergantungan transitif terjadi ketika satu atribut non-kunci bergantung pada atribut non-kunci lain, yang pada gilirannya bergantung pada kunci utama.
Mengapa ketergantungan transitif bermasalah?
Ketergantungan transitif menyebabkan redundansi data dan anomali, seperti anomali pembaruan, penyisipan, dan penghapusan.
Apa itu normalisasi data?
Normalisasi data adalah proses mengatur basis data ke dalam tabel dan kolom untuk mengurangi redundansi data dan meningkatkan integritas data.
Apa itu third normal form (3NF)?
Third normal form (3NF) adalah teknik normalisasi tanpa ketergantungan transitif. Dalam 3NF, setiap atribut non-prime harus hanya bergantung pada kunci utama, memastikan tidak ada ketergantungan tidak langsung.

