CRUD nedir: verinin dört temel işlemi
Sözlük

CRUD nedir: verinin dört temel işlemi

Hazırlayan: Mindset Institute EditörlüğüGüncellendi: 3 dk okuma

Bir uygulamanın veriyle yaptığı dört temel işlemi, bunların SQL komutları ve HTTP istekleriyle karşılığını ve yazarken dikkat edilecek noktaları öğrenirsiniz.

Bir bakışta

  1. CRUD, veriyle yapılan dört işlemin kısaltmasıdır. Oluşturma (Create), okuma (Read), güncelleme (Update) ve silme (Delete).
  2. Veritabanında CRUD, dört SQL komutuna denk gelir. INSERT, SELECT, UPDATE ve DELETE.
  3. API tarafında CRUD, HTTP yöntemleriyle eşlenir. POST, GET, PUT ya da PATCH ve DELETE.
  4. Çoğu yönetim ekranı ve form temelde bir CRUD arayüzüdür. Liste, detay, düzenleme ve silme düğmeleri bu dört işlemin görünür hâlidir.
  5. CRUD basit görünür, ama yetki ve veri bütünlüğü kuralları işin asıl zorluğudur. Herkes her kaydı silemez; silinen kayıp ilişkili veriyi bozmamalıdır.

CRUD nedir?

CRUD, bir uygulamanın veriyle yaptığı dört temel işlemin baş harflerinden oluşur: Create (oluştur), Read (oku), Update (güncelle) ve Delete (sil). Bir müşteri kaydını ekleyen, listeleyen, adresini değiştiren ve silen herhangi bir sistem bu dört işlemi kullanır.

Kavram belirli bir teknolojiye ait değildir. Aynı mantık ilişkisel veritabanında, belge veritabanında, bir web servisinde ya da bir mobil uygulamada geçerlidir; yalnızca işlemi ifade eden komut değişir.

SQL ve API karşılıkları

İlişkisel veritabanlarında dört işlem, dört SQL komutuyla yapılır. REST tabanlı servislerde ise aynı işlemler HTTP yöntemleriyle ifade edilir. İkisi arasındaki eşleşme genellikle şöyledir.

  • Create: SQL'de INSERT, REST'te POST
  • Read: SQL'de SELECT, REST'te GET
  • Update: SQL'de UPDATE, REST'te PUT ya da PATCH
  • Delete: SQL'de DELETE, REST'te DELETE

Eşleşme birebir bir kural değil, yaygın bir kullanımdır; bazı servisler güncellemeyi POST ile ya da silmeyi işaretleme olarak tasarlayabilir.

Şekil 1

Aynı dört işlem, katmana göre farklı komutla yapılır

CRUD karşılıkları

SQLREST API
Create (oluştur)INSERTPOST
Read (oku)SELECTGET
Update (güncelle)UPDATEPUT ya da PATCH
Delete (sil)DELETEDELETE
Kaynak: Sayfa içeriğiMindset Institute

Küçük bir örnek: müşteri tablosu

Bir müşteri tablosunda ad, e-posta ve şehir sütunları olduğunu düşünelim. Yeni bir müşteri geldiğinde satır eklenir, listeleme ekranı tabloyu okur, müşteri adresini değiştirdiğinde ilgili satır güncellenir, kayıt kapatıldığında satır silinir.

Örnek bir SQL parçası bu akışı gösterir:

INSERT INTO musteri (ad, eposta) VALUES ('Ayşe', '[email protected]'); SELECT ad, eposta FROM musteri WHERE sehir = 'Ankara'; UPDATE musteri SET sehir = 'İzmir' WHERE eposta = '[email protected]'; DELETE FROM musteri WHERE eposta = '[email protected]';

UPDATE ve DELETE komutlarındaki WHERE koşulu hayati önemdedir; koşul unutulursa tablodaki tüm satırlar etkilenir.

Kayıt yaşam döngüsü

CRUD'u bir kaydın hayatı olarak da okuyabilirsiniz. Kayıt oluşturulur, kullanıldıkça okunur, bilgileri değiştikçe güncellenir ve işi bittiğinde silinir ya da arşivlenir.

Bu bakış, tasarım kararlarını kolaylaştırır: hangi aşamada kim yetkili, silinen kaydın geçmişi tutulacak mı, güncelleme izlenecek mi gibi sorular her aşama için ayrı yanıtlanır.

Şekil 2

Bir kayıt, dört aşamada yaşar

Kaydın hayatı

  1. OluşturmaCreateKayıt ilk kez eklenir
  2. KullanımReadListe ve detay ekranlarında okunur
  3. DeğişimUpdateBilgiler değiştikçe güncellenir
  4. KapanışDeleteSilinir ya da arşivlenir
Kaynak: Sayfa içeriğiMindset Institute

Sık yapılan hatalar ve dikkat noktaları

  • WHERE koşulsuz UPDATE ya da DELETE yazmak: tüm tabloyu etkiler; önce SELECT ile aynı koşulu deneyin
  • Silmeyi hep kalıcı yapmak: geçmiş ve denetim gerekiyorsa yumuşak silme düşünün
  • Girdiyi doğrulamamak: oluşturma ve güncellemede veri biçimi ve zorunlu alanlar kontrol edilmelidir
  • Yetkiyi atlamak: okuma yetkisi olan herkesin silme yetkisi yoktur
  • Parametresiz sorgu yazmak: kullanıcı girdisi sorguya doğrudan eklenirse SQL enjeksiyonu riski doğar
  • İlişkili kaydı unutmak: müşteri silinince siparişleri ne olacak sorusu önceden yanıtlanmalıdır

Mindset programlarında nerede çalışılır

SQL ile Programlama Eğitimi, veri işleme dili, sorgular ve tablolarla çalışmayı kapsar; CRUD'un veritabanı tarafı yazılımcılar ve veri analistleri için burada uygulanır.

Veritabanı Yönetim Sistemleri ve Uygulamaları programı ilişkisel ve NoSQL veritabanlarını, güvenlik ve yetkilendirmeyi işler; CRUD işlemlerinin yetki ve tasarım yönü bu çerçevede ele alınır.

İlgili Mindset programı

SQL ile Programlama Eğitimi

Sık sorulanlar

Sık sorulan sorular

CRUD ile REST aynı şey midir?

Hayır. CRUD veriyle yapılan işlemlerin sınıflandırmasıdır; REST ise web servislerinin tasarım stilidir. REST servisleri CRUD işlemlerini HTTP yöntemleriyle sunar, ama REST yalnız CRUD'dan ibaret değildir.

PUT ile PATCH farkı nedir?

PUT genellikle kaydın tamamını yeni verilerle değiştirmek için, PATCH ise yalnızca belirli alanları güncellemek için kullanılır. PUT'un aynı isteği tekrarlasa da aynı sonucu vermesi beklenir; bu özellik idempotentlik olarak adlandırılır.

Silme işlemi neden bazen gerçek silme değildir?

Geçmişin korunması, hatalı silmenin geri alınması ve yasal saklama gerekçeleriyle kayıt silinmez, silinmiş diye işaretlenir. Okuma sorguları da bu işaretli kayıtları filtreler.

Her uygulama sadece CRUD midir?

Veri taşıyan her uygulamanın temelinde CRUD vardır, ama iş kuralları ayrı katmandır. Sipariş onaylama, ödeme alma ya da stok rezervasyonu gibi işlemler birden çok CRUD adımını ve kuralı birlikte yürütür.

CRUD'u öğrenmek için hangi sırayla ilerlemeli?

Önce tek tabloda dört komutu deneyin, sonra WHERE koşulu ve kısıtları öğrenin. Ardından birden çok tabloyla çalışıp işlemleri (transaction) ve yetkiyi ekleyin; en son bir API üzerinden aynı işlemleri sunun.