Assertion Trigger SQL

Veritabanında Integrity ve Security

Bir veritabanı sistemi bünyesinde büyük miktarlarda veriyi içerir. Bu veriler ile ilgili bir sorun yaşamamak için başta güvenlik(security) olmak üzere sağlanması gereken birkaç temel özellik vardır. Bunlardan biri tutarlılık yani ingilizce söylemek gerekirse consistency‘dir, diğeri ise bütünlük yani integrity‘dir. Bu özellikleri sağlamak için veritabanında kullanılan assertion ve trigger yapıları vardır, biz de bu yazıda birlikte assertion trigger sql kodları inceleyerek de bu yapıları anlamaya çalışacağız.

assertion trigger sql

Assertion Trigger SQL

Assertion Nedir?

Assertion, bir tabloya eklenecek verilerin birtakım özelliklerinin başlangıçta veritabanı sistemine verilmesidir. Yani örneğin bir anaokulu veritabanı tasarlıyorsak ve bu anaokuluna 10 yaşından büyük çocukların katılmasını istemiyorsak bunu veritabanına SQL kodu ile verebiliriz. Bu kısıtlamayı veritabanına verdikten sonra, 10 yaşından büyük çocuk kaydetmemesi gerektiğini bilmeyen bir user 12 yaşındaki bir çocuk kaydetmek isterse sistem onu uyaracaktır.

O zaman gelin bu anaokulu veritabanında bu kısıtlamayı sağlayacak olan assertion sql kodunu yazalım:

create assertion NoKidBiggerThan10
       check (not exist
              select *
              from Student
              where studentAge>10 )

Yukarıdaki kod parçasında yaşı 10’dan büyük olan çocukların varlığını kabul etmiyoruz bunu da “not exist” ve “check” statement’ları ile yapıyoruz.

Assertion larla ilgili daha ayrıntılı bilgi almak isterseniz Oracle Documentation Assertion linkinden ulaşabilrsiniz.

assertion nedir sql
Assertion Kullanımı SQL

Trigger Nedir?

SQL’de trigger’ların kullanımı ise biraz daha farklı. Zaman zaman bazı tablolarda yapılan değişiklikler başka tablo veya column’larda da ekleme, silme veya güncelleme (insert/delete/update) suretiyle değişiklik yapılmasını gerektirebilir. Bu durumda o tabloları veya column’ları bulmak büyük veritabanlarında oldukça fazla zaman alabilir ve maliyet gerektirir. Trigger işte bunun için kullanılır. Hangi işlemden önce/sonra hangi tabloy veya column’a hangi işlemin uygulacağını sisteme haber veren bir yapıdır. Trigger’ın sql syntax’ını göstererek daha anlamlı hale getirelim:

create trigger "trigger name"
before/after insert/delete/update of "column" on "table name"
referencing old as oldrow, new as newrow
for each row
        ---sql kodu---

Syntax yapısını gösterdikten sonra bir de daha anlaşılır olması açısından bir trigger kodu eklemeliyim:

trigger sql nedir
Trigger Kullanımı SQL

Bu örnekte görüldüğü üzere SECTION tablosundan bir bilgi silindiği zaman arkasından o bilginin ENROLL tablosundan da silinmesi gerektiğini sisteme söyleyen bir trigger kodu yazılmış.

Yine trigger hakkında daha ayrıntlı bilgiye sahip olmak ve başka sql kod parçaları görmek isterseniz Oracle Trigger linkinden aradığınıza ulaşabilirsiniz.

Umarım sizlere faydalı bir yazı olmuştur ve SQL işaretleme dilinde assertion ve trigger kullanımını sizlere aktarabilmişimdir.

İlgili konu: Mysql Nedir? Mysql Veritabanı Oluşturma (Resimli Anlatım)

Takipçilerinizle Bu Yazıyı Paylaşın!

Add a Comment

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir