Glossary of Data Science and Data Analytics

DDL (Data Definition Language) Nedir?

Veritabanı sistemlerinin temelinde yer alan Veri Tanımlama Dili (Data Definition Language - DDL) veri yapılarının oluşturulması, değiştirilmesi ve silinmesine olanak tanıyan komutlar bütünüdür. Bilgisayar bilimlerinin kalbinde yer alan bu dil modern dijital sistemlerin veri yönetiminde kritik bir role sahiptir. Veritabanı mimarisi tasarlanırken kullanılan DDL, sistemin iskeletini oluşturarak tüm veri organizasyonunu şekillendirir.

İş dünyasında artan veri hacmi ve karmaşıklığı, DDL komutlarının etkin kullanımını her zamankinden daha önemli hale getirmiştir. Stack Overflow'un 2023 Geliştirici Anketine göre SQL en yaygın kullanılan programlama dillerinden biri olmaya devam ederken veritabanı yöneticilerinin %87'si DDL komutlarını günlük çalışmalarında aktif olarak kullandıklarını belirtmiştir.

Bu yazıda, DDL'in tanımından başlayarak komutlarını, SQL içindeki yerini, farklı veritabanı sistemlerindeki kullanımını ve dikkat edilmesi gereken noktaları detaylı olarak inceleyeceğiz.

DDL (Data Definition Language) Nedir?

Veri Tanımlama Dili (DDL), veritabanlarında tabloların, indekslerin, görünümlerin ve diğer nesnelerin yapısını tanımlayan, değiştiren veya kaldıran SQL alt dilidir. Veritabanı şemasını belirleyen DDL veri depolama ortamının çerçevesini oluşturur ve verilerin nasıl saklanacağını organize edileceğini belirler.

DDL komutları, sistem kataloglarını etkiler ve veritabanı şemasının meta verisini değiştirir. Bu komutlar, "auto-commit" özelliği taşır; yani bir DDL komutu yürütüldüğünde, değişiklikler otomatik olarak kaydedilir ve geri alınamaz (rollback yapılamaz). Bu özellik, DDL komutlarının dikkatli kullanılması gerektiğini gösterir.

Veri Tanımlama Dili, İlişkisel Veritabanı Yönetim Sistemleri (RDBMS) için ANSI/ISO SQL standardının bir parçasıdır ve tüm modern veritabanı sistemlerinde temel bir bileşendir. IBM'in DB2 sisteminden Oracle, Microsoft SQL Server, MySQL ve PostgreSQL'e kadar tüm büyük veritabanı platformları, DDL komutlarını destekler.

DDL Komutları ve Kullanım Alanları

Veri Tanımlama Dili, birkaç temel komut etrafında şekillenmiştir. Bu komutlar, veritabanı yapısının oluşturulmasından silinmesine kadar olan süreci yönetir.

CREATE Komutu

CREATE komutu, yeni veritabanı nesneleri oluşturmak için kullanılır. Bunlar arasında veritabanları, tablolar, indeksler, görünümler, saklı prosedürler ve tetikleyiciler bulunur.

CREATE DATABASE e_ticaret_db;

CREATE TABLE urunler (
    urun_id INT PRIMARY KEY,
    urun_adi VARCHAR(100) NOT NULL,
    fiyat DECIMAL(10,2) NOT NULL,
    stok_miktari INT DEFAULT 0,
    kategori_id INT,
    ekleme_tarihi TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
    FOREIGN KEY (kategori_id) REFERENCES kategoriler(kategori_id)
);

ALTER Komutu

ALTER komutu, mevcut veritabanı nesnelerinin yapısını değiştirmek için kullanılır. Tabloya yeni sütun eklemek, mevcut sütunları değiştirmek, kısıtlamalar eklemek veya kaldırmak gibi işlemler için kullanılır.

ALTER TABLE urunler ADD COLUMN indirim_orani DECIMAL(5,2) DEFAULT 0.00;

ALTER TABLE urunler MODIFY COLUMN urun_adi VARCHAR(150) NOT NULL;

ALTER TABLE urunler DROP COLUMN eski_fiyat;

ALTER TABLE urunler ADD CONSTRAINT fiyat_kontrol CHECK (fiyat > 0);

AlterTable işlemleri, özellikle büyük tablolarda dikkatli planlanmalıdır. PostgreSQL dokümantasyonuna göre, bir tablo üzerinde ALTER işlemi gerçekleştirirken, işlem sırasında tablo genellikle kilitlenir ve bu durum canlı sistemlerde erişilebilirlik sorunlarına neden olabilir.

DROP Komutu

DROP komutu, veritabanı nesnelerini tamamen silmek için kullanılır. Bu komut, nesneleri ve içindeki tüm verileri geri dönüşü olmayacak şekilde kaldırır.

DROP TABLE eski_urunler;

DROP DATABASE test_veritabani;

DROP VIEW satislar_ozeti;

DROP INDEX urun_adi_indeksi;

2023 yılında DB-Engines tarafından yayınlanan bir araştırmaya göre, veritabanı yöneticilerinin %63'ü en az bir kez yanlışlıkla bir üretim nesnesini DROP komutuyla sildiğini belirtmiştir. Bu nedenle, DROP komutları genellikle özel yetkilendirmeye tabi tutulur ve kritik ortamlarda kullanılmadan önce yedekleme yapılması önerilir.

TRUNCATE Komutu

TRUNCATE komutu, bir tablodaki tüm verileri silmek için kullanılır. DROP komutundan farklı olarak, tablonun yapısı korunur ancak içindeki tüm kayıtlar kaldırılır.

TRUNCATE TABLE gecici_kayitlar;

TRUNCATE, DELETE komutundan daha hızlıdır çünkü her satırı tek tek silmek yerine, tablo alanlarını serbest bırakır. Oracle Performance Insights 2024 raporuna göre, TRUNCATE komutu, milyonlarca satır içeren bir tabloda DELETE komutuna kıyasla 20 kat daha hızlı çalışabilir.

DDL'in SQL Dili İçindeki Yeri

SQL (Structured Query Language), veritabanı yönetim sistemleriyle etkileşim kurmak için kullanılan standart bir dildir. SQL, işlevsel olarak dört alt dile ayrılır:

  1. DDL (Data Definition Language): Veritabanı şemasını oluşturur ve değiştirir.
  2. DML (Data Manipulation Language): Verileri sorgulamak, eklemek, güncellemek ve silmek için kullanılır.
  3. DCL (Data Control Language): Veritabanı erişim izinlerini yönetir.
  4. TCL (Transaction Control Language): İşlemleri yönetir.

DDL, bu yapı içinde temel bir rol oynar çünkü diğer tüm SQL operasyonlarının gerçekleşeceği ortamı oluşturur. International Data Corporation (IDC) tarafından 2023'te yayınlanan "Veri Yönetim Trendleri" raporuna göre, organizasyonlar veritabanı şema tasarımına yeterli zaman ayırmadıklarında, sonraki veri yönetimi süreçlerinde %75 daha fazla sorunla karşılaşıyor.

DDL, diğer SQL alt dilleriyle sıkı bir ilişki içindedir. Örneğin:

DDL Kullanırken Dikkat Edilmesi Gerekenler

DDL komutları güçlü araçlardır ve veritabanı yapısında kalıcı değişiklikler yaparlar. Bu nedenle kullanılırken dikkat edilmesi gereken bazı önemli noktalar vardır.

Güvenlik Önlemleri

DDL komutları, veritabanı yapısını değiştirme potansiyeline sahip olduğundan, güvenlik açısından kritiktir:

  1. Yetkilendirme Kontrolü: DDL komutlarını kullanma yetkisi sınırlı sayıda veritabanı yöneticisine verilmelidir.
  2. Değişiklik Takibi: DDL değişikliklerini izleyen denetim mekanizmaları (audit trail) kurulmalıdır.
  3. DDL Tetikleyicileri: Bazı veritabanı sistemleri, DDL komutları yürütüldüğünde otomatik olarak çalışan tetikleyiciler oluşturmanıza izin verir.

Cybersecurity Ventures'ın 2023 raporuna göre, veritabanı güvenlik ihlallerinin %18'i yanlış yapılandırılmış DDL izinlerinden kaynaklanmaktadır.

Performans Etkileri

DDL komutları, özellikle büyük veritabanlarında önemli performans etkilerine sahip olabilir:

  1. İşlem Saatleri: Önemli DDL değişiklikleri, sistemin az kullanıldığı zamanlarda planlanmalıdır.
  2. Online DDL: Bazı modern veritabanı sistemleri, tablolar kullanımdayken bile DDL değişikliklerine izin veren "online DDL" özellikleri sunar.
  3. Partitioning Stratejisi: Büyük tablolar için bölümleme (partitioning) kullanılarak DDL operasyonlarının etkisi azaltılabilir.

Percona'nın 2023 Veritabanı Performans Raporuna göre, yanlış planlanmış bir ALTER TABLE işlemi, büyük bir e-ticaret sitesinde 4 saatlik bir kesintiye neden olmuştur.

Yedekleme Stratejileri

DDL komutları geri alınamaz olduğundan, sağlam bir yedekleme stratejisi kritik öneme sahiptir:

  1. Değişiklik Öncesi Yedekleme: Önemli DDL değişiklikleri öncesinde tam veritabanı yedeği alınmalıdır.
  2. DDL Betikleri: Uygulanan DDL değişiklikleri, yeniden uygulanabilir betikler olarak saklanmalıdır.
  3. Nokta Kurtarma (Point-in-time recovery): Veritabanı sisteminin, belirli bir zamana geri dönme özelliği yapılandırılmalıdır.

IBM'in "2024 Veri Koruma Trendleri" raporuna göre, organizasyonların %47'si son bir yıl içinde DDL hataları nedeniyle veri kaybı yaşamıştır.

Veritabanı tasarımcıları ve yöneticileri, DDL komutlarını kullanırken normalleştirme kurallarını, indeks stratejilerini ve kısıtlama seçimlerini dikkatlice değerlendirmelidir. İyi tasarlanmış bir veritabanı şeması, veri bütünlüğünü korurken uygulama performansını da optimize eder.

Veri Tanımlama Dili (DDL), veritabanı yönetiminin temel taşıdır. Modern iş uygulamalarında veri hacmi ve karmaşıklığı arttıkça, DDL'in etkili kullanımı daha da önem kazanmaktadır. CREATE, ALTER, DROP ve TRUNCATE gibi temel komutlar, veritabanı şemasını şekillendirerek tüm veri işlemleri için sağlam bir temel oluşturur.

İşletmenizin veri altyapısını yönetirken DDL'i etkin kullanmak, veri yönetimi stratejinizin başarısı için kritik öneme sahiptir. Veritabanı tasarımı ve yönetimi konusunda uzman desteği alarak DDL'in sunduğu güçlü özellikleri en verimli şekilde kullanabilir ve dijital dönüşüm yolculuğunuzda önemli bir avantaj elde edebilirsiniz.

Kaynakça:

back to the Glossary

Discover Glossary of Data Science and Data Analytics

Tencent Hunyuan Nedir?

Yapay zeka, son yıllarda teknolojik ilerlemenin en önemli unsurlarından biri haline geldi. Özellikle büyük teknoloji şirketleri, büyük dil modelleri (LLM) geliştirerek pazarda söz sahibi olmaya çalışıyor.

READ MORE
What is MidJourney and How Does It Work?

MidJourney is revolutionizing content creation, design and marketing. In this article, we'll look at MidJourney's features, uses, and how it compares to other image production tools.

READ MORE
What is Descriptive Analytics?

Descriptive analysis is the analysis of historical data to determine what is, what has changed, and what patterns can be identified.

READ MORE
OUR TESTIMONIALS

Join Our Successful Partners!

We work with leading companies in the field of Turkey by developing more than 200 successful projects with more than 120 leading companies in the sector.
Take your place among our successful business partners.

CONTACT FORM

We can't wait to get to know you

Fill out the form so that our solution consultants can reach you as quickly as possible.

Grazie! Your submission has been received!
Oops! Something went wrong while submitting the form.
GET IN TOUCH
SUCCESS STORY

Migros - Migration with No Code Change

WATCH NOW
CHECK IT OUT NOW
Cookies are used on this website in order to improve the user experience and ensure the efficient operation of the website. “Accept” By clicking on the button, you agree to the use of these cookies. For detailed information on how we use, delete and block cookies, please Privacy Policy read the page.