VERİ TABANI ve YÖNETİMİ



Benzer belgeler
TRIGGER. Trigger lar, tablo üzerinde tanımlanabilen ve bu tablo üzerinde bir işlem gerçekleştiğinde tetiklenen programlama ögeleridir.

Elbistan Meslek Yüksek Okulu GÜZ Yarıyılı. Öğr. Gör. Murat KEÇECĠOĞLU

SQL TRIGGERS (Tetikleyiciler)

EXISTS VE NOT EXISTS fonksiyonları

TETİKLEYİCİ. Tetikleyici Ne Zaman Kullanılır? Çeşitli amaçlara uygun olarak tetikleyiciler kullanılabilir.

Bir çeşit prosedür. Ancak bu prosedür kendiliğinden çalışır. Çalışması için tabloya veri eklemek, veri silmek, veri değiştirmek yeterlidir.

Tetikleyiciler (TRIGGER) Tetikleyiciler ne zaman kullanılırlar. Ardı Sıra Tetikleyiciler (After Triggers) Örnek

SP_RENAMEDB eski_isim, yeni_isim VEYA SP_RENAMEDB 'eski isim', 'yeni isim'

2-Veritabanı Yönetim Sistemleri/ Temel Kavramlar

Veri Tabanı ve Yönetimi

ÜNİTE NESNE TABANLI PROGRAMLAMA I. Uzm. Orhan ÇELİKER VERİTABANI SORGULARI İÇİNDEKİLER HEDEFLER

Veritabanı Tasarımı. Sütun Değerlerini Güncelleme ve Satırları Silme

VERİTABANI ve YÖNETİMİ

VERİTABANI Veritabanı Yönetimi

VERİTABANI. SQL (Structured Query Language)

«BM364» Veritabanı Uygulamaları

Tablolar Arası İlşikiler ve Alan Özellikleri Siparis.musteri_no musteri.musteri_no Siparis.urun_kodu musteri.urun_kodu

Veritabanı Tasarımı. Veritabanı Hareketleri

Veritabanı sistemlerinde veri bütünlüğünü sağlayabilmek için CONSTRAINTS olarak adlandırılan bazı zorlayıcı ifadeler kullanılabilir.

BİLİŞİM TEKNOLOJİLERİ

Tablolar Arası İlşikiler ve Alan Özellikleri. Şekil 1. Magaza veritabanının tabloları ve tablolar arasındaki ilişkiler

Bölüm 10: PHP ile Veritabanı Uygulamaları

ÜNİTE NESNE TABANLI PROGRAMLAMA I. Uzm. Orhan ÇELİKER VERİTABANI SORGULARI İÇİNDEKİLER HEDEFLER

Veritabanı Tasarımı. Kullanıcı Erişimini Kontrol Etme

SORGULAR VE ÇEŞİTLERİ II

Aşağıdaki tabloyu inceleyin. Yeni kayıt girme, var olan bir kaydı silme veya güncelleme işlemlerini bu tabloya göre yapacağız.

3. Hafta Tablo İşlemleri BPR255 Veritabanı. Bu Derste Öğrenecekleriniz: 1. Tablo İşlemleri Kısıtlamalar (Constraints)

5 SQL- Yapısal Sorgulama Dili. Veritabanı 1

VERİ TABANI YÖNETİM SİSTEMLERİ

Maltepe Üniversitesi Bilgisayar Mühendisliği Bölümü Veri Tabanı ve Yönetimi (BİL 301)

Tavsiye Edilen Önhazırlık Temel veritabanı kavramlar hakkında bilgi sahibi olmak. Hedefler Temel veritabanı güvenlik işlemlerini gerçekleştirebilmek

VERİ TABANI YÖNETİM SİSTEMLERİ

Oracle da kullanılan veri tipleri:

Veri Bütünlüğü ve Constraint ler. Veritabanı 1

SP_RENAMEDB eski_isim, yeni_isim VEYA SP_RENAMEDB 'eski isim', 'yeni isim'

VERİ TABANI ve YÖNETİMİ

Miron Yazılım Entegre Uygulamalar (Mironist.NET Yılsonu Devir)

Veritabanında Saklı Yordamlar: Bir Veritabanı Tasarımı ve Web Uygulaması

-- işareti tek satırlık açıklamalarda kullanılır. Açıklama olarak yazılan satırın önüne konulması yeterlidir.

SQL Kod ile Tablo Oluşturma

Bilgisayar Teknolojileri Bölümü Bilgisayar Programcılığı Programı. Öğr. Gör. Cansu AYVAZ GÜVEN

Bu işleçlerin dışında, aşağıda belirtilen karşılaştırma işleçlerinden de yararlanılır.

İNTERNET PROGRAMCILIĞI DERSİ

BİLİŞİM TEKNOLOJİLERİ

Veritabanında Saklı Yordamlar: Bir Veritabanı Tasarımı ve Web Uygulaması

Herhangi bir tablonun tekrarlı veriler içerdiği duruma birinci normal form denir. Birinci normal formu Aşağıdaki tablo ile ele alacağız.

Güz Yarıyılı MT 487 Bilgisayarda Veri Yapıları Final Çalışma Soruları

SORGULAR. Öğr.Gör.Volkan Altıntaş

BMB202. Veritabanı Yönetimi Ders 8. Stored Procedure (Saklı Yordamlar), Trigger (Tetikleyiciler), Transactions, Yetkilendirme (Authorization)

VERİ TABANI UYGULAMALARI

SQL Komutları (2) Uzm. Murat YAZICI

1. MİCROSOFT SQL SERVER 2014'E GİRİŞ

SQL e Giriş. Uzm. Murat YAZICI

İngilizce'de Relational Database Management System (RDBMS) olarak ifade edilir.

Genel Kavramlar. Bilgisayar ortamında işlenebilecek durumda bulunan kayıtlar. Birbiri ile ilişkili veriler topluluğu ve veriler arası ilişkiler

DAO İLE SQL KOMUTLARI. Sql komutlarını artık veri tabanında kullanmaktan başka çaremiz yok arkadaşlar. Şimdi bu sql derslerimize başlayalım.

DESTEK DOKÜMANI. Ürün : GO/TIGER2/UNITY2 Bölüm : Sistem Đşletmeni

TEMEL SQL SORGU ÖRNEKLERİ. Yukarıdaki sorguyu yazıp çalıştırdığımızda db_market adında bir veritabanı oluşturulur.

Data Programming SQL Language. Elbistan Meslek Yüksek Okulu Bahar Yarıyılı

MT487_2005guz_final_cevaplar (cevaplar vurgulu ve koyu yazılmıştır)

SQL veri tabalarına erişmek ve onları kullanmak için geliştirilmiş bir lisandır.

BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜM BAŞKANLIĞI DERS TANITIM BİLGİLERİ

VERİ TABANI YÖNETİM SİSTEMLERİ-II

VERİ TABANI YÖNETİM SİSTEMLERİ. Öğr. Gör. Selçuk Özkan

1.adım : Sql serverda Stored procedure oluşturmamız gerekiyor. Şu adımları izliyoruz.

UZAKTAN EĞİTİM MERKEZİ

Kullanıcı tanımlı fonksiyonlar SQL2000 ile gelen özelliklerden biridir. Fonksiyonlar tek bir değer veya tablo döndürmek için kullanılır.

20461C Querying Microsoft SQL Server Modül Seviye Belirleme Testi

DENİZ HARP OKULU BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜM BAŞKANLIĞI DERS TANITIM BİLGİLERİ

Hamdi Ayhan SAFRAN DEPO STOK PROGRAMI YARDIM DOSYASI. Programın kurulumdan sonraki ilk açılış kullanıcı adı TEST şifre TEST dir

Elbistan Meslek Yüksek Okulu GÜZ Yarıyılı. Öğr. Gör. Murat KEÇECĠOĞLU

Yukarıdakilerden hangileri DML (Data Manipulation Language) ile gerçekleştirilir?

Bölüm 4: DDL Veri Tanımlama Dili

SQL Stored Procedure

STORED PROCEDURE LER (Saklı Yordamlar)

Veritabanı. Ders 2 VERİTABANI

TESİ. indeks. söylenebilir?? bir ilişkidir d) Hiçbiri. veya somutlaştırılmış. düzeyidir? sağlayabilir? sına. d) Hepsi. olabilir? c) Verilerin d) Hepsi

VERĐTABANI YÖNETĐM SĐSTEMLERĐ

Üst Düzey Programlama

ORM & Hibernate. Ahmet Demirelli. SCJP 5.0, SCWCD 1.4 ahmetdemirelli@sabanciuniv.edu

3. Hafta Tablo İşlemleri BPR255 Veritabanı Yönetim. Bu Derste Öğrenecekleriniz: 1. Tablo İşlemleri

AHMET YESEVİ ÜNİVERSİTESİ BİLİŞİM SİSTEMLERİ VE MÜHENDİSLİK FAKÜLTESİ BİLGİSAYAR MÜHENDİSLİĞİ LİSANS DÖNEM ÖDEVİ

Veri Tabanı Hafta Dersi

SAKLI YORDAM (Stored Procedure) Sibel Somyürek

8 Oracle da tablo yapısı içinde otomatik artan kolon yoktur. (identity kolon

PERKON PDKS Kurulum ve hızlı başlangıç rehberi

İnternet Programcılığı

KULLANICI TANIMLI FONKSİYONLAR

SUNGURLU MESLEK YÜKSEKOKULU 5. T-SQL

Navigator Smart. Kullanıcı El Kitabı NETSİS

VERİTABANI Veritabanı Normalizasyonu

Veritabanına Uygulanması

IdeaSoft E-Ticaret ile LOGO Ticari Yazılım Entegrasyon Kullanım Kılavuzu

SUNGURLU MESLEK YÜKSEKOKULU 5. T-SQL-2

SQL Deyimleri. Öğr.Gör.Volkan ALTINTAŞ Volkanaltintas.com

Pursaklar İMKB Teknik ve Endüstri Meslek Lisesi

MOBİL UYGULAMA GELİŞTİRME

Elbistan Meslek Yüksek Okulu GÜZ Yarıyılı Ara Öğr. Gör. Murat KEÇECĠOĞLU

SQL PROGRAMLAMA. Bir batch, bir arada bulunan bir dizi SQL deyimidir. Batch ayıracı GO deyimidir.

Transkript:

VERİ TABANI ve YÖNETİMİ Maltepe Üniversitesi Bilgisayar Mühendisliği Bölümü

2 BÖLÜM -12- TETİKLEYİCİ (TRIGGER)

3 Giriş Trigger lar Trigger lar Ne Zaman Kullanılmalıdır? Klasik Trigger ların Özellikleri Trigger lar Nasıl Çalışır? Trigger Oluşturmak

4 12.1. Trigger lar Trigger yani tetikleyici, ilişkisel veritabanı yönetim sistemlerinde bir tabloda belirli olaylar meydana geldiği zaman yani ekleme, güncelleme, silme işlemlerinden biri gerçekleşmeden önce veya sonra çalışan ve belirli işlemleri kodlandığı şekilde yerine getiren yordamdır. Tetikler veritabanında yapılan değişikliklerle birlikte otomatik olarak çalışan prosedürel program parçacıklarıdır.

5 12.1. Trigger lar (devam ) Trigger lar, veri değişiminin hemen ardından log dosyalar üzerinden otomatik olarak devreye giren özel bir Stored Procedure dür. Genellikle karmaşık iş kurallarını gerçekleştirmek için veya basamaklı veri bütünlüğünü programlamak için kullanılırlar.

6 12.2. Trigger lar Ne Zaman Kullanılmalıdır? Trigger lar aşağıdaki amaçlara yönelik kullanılırlar. Değişiklikleri takip etmek için: Kritik kayıtlar üzerinde değişiklik yapan kişiler ve değişiklik miktarlarını ya da kayıtlarının takibini tutmak için kullanılırlar. Birincil anahtar üretmek için: IDENTITY( ) fonksiyonu birincil anahtar olarak sadece sayı üretebilmektedir. Bazı durumlarda birincil anahtarın belli harf ve rakamlardan oluşması gerekebilir. Böyle durumlarda yine trigger lara başvurulabilmektedir.

7 12.2. Trigger lar Ne Zaman Kullanılmalıdır? (devam) Trigger lar aşağıdaki amaçlara yönelik kullanılırlar. Karmaşık iş kurallarını gerçeklemek için: Bazen uygulama veritabanının dışında bir veritabanına karşı, yabancı anahtar geçerliliğini denetlemek gerekebilmektedir. Bu durumda sadece veritabanı içindeki işler denetlenebilmektedir. Fakat trigger lar ile diğer veritabanları da denetlenebilmektedir. Mail atmak gibi işleri otomatikleştirmek için: Örneğin herhangi bir sipariş verildiğinde müşteriye bilgilendirme mail göndermek için kullanılabilmektedir.

8 12.2. Trigger lar Ne Zaman Kullanılmalıdır? (devam) Bunların dışında; Standart hata mesajlarının dışında hata mesajı vermek için Veritabanı erişimlerini takibe almak için Yeni nesne oluşturma işlemlerini, sunucu veritabanlarının tutarlılıklarını sağlamak için Nesne değişikliklerini takip etmek ve engellemek için kullanılabilmektedirler.

9 12.3. Klasik Trigger ların Özellikleri Bir trigger, birden fazla olayı gerçekleştirebilmektedir. Örneğin bir tabloya kayıt eklendiğinde devreye giren bir trigger bu kayıtları başka bir yere de ekledikten sonra başka bir tablo üzerinde de güncellemeler yapabilmektedir. Trigger, geçici tablo yada sistem tablosu oluşturamaz ama bu türden tablolara erişebilmektedir.

10 12.3. Klasik Trigger ların Özellikleri Temel olarak iki farklı trigger çeşidi vardır. + AFTER Trigger AFTER trigger ı sadece tablolar üzerinde tanımlanabilmektedir. + INSTEAD OF Trigger INSTEAD OF trigger ı hem tablolar hem de view lar üstünde tanımlanmaktadır.

11 12.3. Klasik Trigger ların Özellikleri Bu iki trigger ın karşılaştırılması tabloda verilmektedir.

12 12.4. Trigger lar Nasıl Çalışır? Trigger ı tetikleyen bir olayla karşılaşıldığında işlem ile trigger ikisi birlikte bir transaction bloğu olarak ele alınır. Trigger lar çalıştığı zaman INSERTED ve DELETED tablolarını kullanırlar. Bu tabloların her ikisi de ana tabloyla yani trigger ın tetiklediği tabloyla eşdeğer alanlara sahiptir. Bu tablolar mantıksal tablo şeklinde RAM de bulunurlar. Gerçek tabloya bir kayıt eklendiği zaman trigger çalışırsa bu kayıt aynı zamanda Inserted tablosuna da eklenir. İstenildiğinde bu tablodaki kayıtlara erişilebilmektedir.

13 12.4. Trigger lar Nasıl Çalışır? Tablodan bir kayıt silindiğinde, silinen kayıt DELETED tablosunda saklanır. UPDATE işlemi ise, DELETE ve hemen ardından yapılmış olan bir INSERT işlemi olarak ele alınır. Bir kayıt UPDATE edildiğinde orijinal kayıt DELETED tablosuna eklenir. Değişen kayıtta INSERTED tablosuna eklenir.

14 12.5. Trigger Oluşturmak Genel olarak bir trigger oluşturma ifadesi şu şekildedir. CREATE TRIGGER trigger_adı ON tablo_adı {FOR AFTER/INSTEAT OF} {INSERT/UPDATE/DELETE} AS Çalışacak olan SQL ifadeleri

15 12.5. Trigger Oluşturmak (devam) Örnek: Bir satış yapıldığı zaman stokta eğer ürün varsa otomatik olarak stoktan düşen, yoksa uyarı mesajı veren bir trigger yazalım. Bu işlem için gerekir. Müşteriler Kitaplar Satışlar öncelikle aşağıdaki tabloları oluşturmamız Bu tablolara ait nitelikler ve SQL ifadeleri şöyledir.

16 12.5. Trigger Oluşturmak (devam) Müşteriler tablosu ve nitelikleri aşağıdaki SQL kodu ile birlikte verilmektedir. Bu kodları SQL Server da bir Query oluşturarak yazıp derleriz.

17 12.5. Trigger Oluşturmak (devam) Ürünler tablosu ve nitelikleri aşağıdaki SQL kodu ile birlikte verilmektedir. Bu kodları SQL Server da bir Query oluşturarak yazıp derleriz.

18 12.5. Trigger Oluşturmak (devam) Son olarak satışlar tablosu ve nitelikleri aşağıdaki SQL kodu ile birlikte verilmektedir. Bu kodları SQL Server da bir Query oluşturarak yazıp derleriz.

19 12.5. Trigger Oluşturmak (devam) Oluşturduğumuz bu tablolara aşağıdaki gibi kayıtlar ekleyelim.

20 12.5. Trigger Oluşturmak (devam) Tüm gerekli işlemlerin ardından herhangi bir satış yapıldığında stok miktarına bağlı olarak gerekli işlemleri yapacak olan trigger ımız şöyle olacaktır.

21 12.5. Trigger Oluşturmak (devam) Burada müşteri numarası 1 olan kişi, 2 numaralı üründen 1 adet sipariş vermektedir. SQL ifadesi çalıştırıldığında önceki ve sonraki kayıtların durumu aşağıdaki gibi olacaktır.

22 12.5. Trigger Oluşturmak (devam) Benzer şekilde satışlar tablosunda bir kayıt silindiğinde (iptal edildiğinde) çalışacak olan bir DELETE trigger ı yazalım. DELETE trigger ı için SQL ifademiz şöyle olacaktır.

23 12.5. Trigger Oluşturmak (devam) Bu trigger ise satış sonrası fatura kesildikten sonra teslim edilen ürünleri silmek için kullanılabilir. Silinen kayıtlar daha önceden bahsettiğimiz gibi DELETED tablosunda tutulmaktadır. Ayrıca bu trigger iptal edilen (yani ürünler tablosundan silinen) ürün adedini tekrar ürünler tablosuna eklemektedir.

24 12.5. Trigger Oluşturmak (devam) Bu trigger ıda çalıştırmak için SQL ifademiz şöyle olacaktır.

25 12.5. Trigger Oluşturmak (devam) Bir INSERT, UPDATE veya DELETE işlemi bir tabloya uygulandığında bu tablo üzerinde sırasıyla bir Instead Of INSERT, Instead Of UPDATE veya Instead Of DELETE Trigger ı varsa bu işlem tablo üzerinde gerçekleşmez. Onun yerine tetikleyici içinde yazılı kodlar yapılır. Bu işlemleri gösterebilmek için bir tablo oluşturalım. Bu tabloya ait nitelikler aşağıda verilmektedir.

26 12.5. Trigger Oluşturmak (devam) Instead Of DELETE örneğine ait trigger aşağıda verilmektedir. Herhangi bir silme işlemi denendiğinde bu silme işleminin ne zaman denendiğini belirten bir trigger oluşturalım.

27 12.5. Trigger Oluşturmak (devam) Bu denemeye ilişkin SQL ifadeleri ve sonuçları aşağıda verilmektedir.

28 12.5. Trigger Oluşturmak (devam) Bütün INSTEAD OF trigger ları benzer şekilde; Ekleme için Instead Of INSERT, Güncelleme için Instead Of UPDATE, Silme işlemi için ise Instead Of DELETE olarak oluşturulmaktadır.