Assertion Trigger SQL - Kodlarla Assertion ve Trigger -Tekno Web Bilişim
HomeVeritabanıSQLAssertion Trigger SQL
Assertion Trigger SQL
By 7we6o SQL 0 Comments
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, 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
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 Kullanımı SQL
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
Syntax yapısını gösterdikten sonra bir de daha anlaşılır olması açısından bir trigger kodu eklemeliyim:
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)