Veritabanı Tasarımı. Veritabanı Hareketleri

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

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

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

BÖLÜM -6: VERİLERİ DEĞİŞTİRMEK

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

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

SQL Komutları (2) Uzm. Murat YAZICI

Veritabanı Tasarımı. Tablo Oluşturma

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

VERİTABANI Veritabanı Yönetimi

Veritabanı Tasarımı. DML İşlemleri ve Görünümler

Veritabanı Tasarımı. Tablo Değiştirme

Üst Düzey Programlama

VERİ TABANI ve YÖNETİMİ

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

Veritabanı Tasarımı. Seriler ile Çalışma

SQL'e Giriş. SELECT Deyimi. SQL Komutları. Yardımcı Deyimler

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

BİLİŞİM TEKNOLOJİLERİ

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

SQL TRIGGERS (Tetikleyiciler)

DML işlemleri. Elbistan Meslek Yüksek Okulu Bahar Yarıyılı May Öğr. Gör. Murat KEÇECĠOĞLU

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

Veri Tabanı Hafta Dersi

SQL'e Giriş. SELECT Deyimi. SQL Komutları. 1. DDL (Data Definition Language - Veri Tanımlama Dili)

SQL (Structured Query Language)

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

Veritabanı Tasarımı. İndeksler ve Eşanlamlar

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

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

PostgreSQL ve PL/pgSQL

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

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

VERİTABANI. SQL (Structured Query Language)

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

Tavsiye Edilen Önhazırlık Veritabanı kavramını öğrenmek

PostgreSQL ve PL/pgSQL

Ortak Zamanlılık ve Veri Hareketi (Data Transaction)

İNTERNET PROGRAMCILIĞI DERSİ

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

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

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

BÖLÜM- 9: KULLANICI ERİŞİMLERİNİ YÖNETMEK

Transaction ve Ortak Zamanlılık. Sibel SOMYÜREK

Veriyi ve Bilgiyi Organize Etmek. Bilgisayar Mühendisliğine Giriş 1

Veri Tabanı ve Yönetimi

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

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

Veritabanı. Ders 2 VERİTABANI

STORED PROCEDURE LER (Saklı Yordamlar)

SQL e Giriş. Uzm. Murat YAZICI

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

Veri Tabanı Yönetim Sistemleri Bölüm - 4

İLERİ VERİTABANI SİSTEMLERİ SUAT ÜSTKAN

SQL Kod ile Tablo Oluşturma

YAPISAL SORGULAMA DİLİ (SQL)

VERİTABANI ve YÖNETİMİ

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

YAPISAL SORGULAMA DİLİ. BARIŞ ARIBURNU barisariburnu.com

BÖLÜM- 8: DİĞER ŞEMA NESNELERİNİ OLUŞTURMA

Oracle da kullanılan veri tipleri:

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

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

EXISTS VE NOT EXISTS fonksiyonları

Veritabanı Tasarımı. Kartezyen Çarpım ve Join İşlemleri

SUNGURLU MESLEK YÜKSEKOKULU 5. T-SQL

COMMIT: Oluşturulan transaction işlemi başarılı bir şekilde gerçekleştiğinde yapılan değişikliklerin veritabanına kalıcı olarak aktarılmasıdır.

T-SQL NEDİR? Microsoft T-SQL Transact-SQL

VERİ TABANI YÖNETİM SİSTEMLERİ II. 3. SQL PROGRAMLAMA BLOKLARI ve AKIŞ DENETİMİ

ELIF KIOTZEOGLOU RESUL MURAD MERT PACOLARI

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.

ÜNİTE 8 SQL Dili ve T-SQL Uygulamaları

1 - Adi A Harfi İle Biten Kişilerin Listesi İçin Hangisi Kullanılmalıdır? Select * From Kisiler Where Adi End A Select * From Kisiler Where Adi Like

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

8 Aralık 2011 / Perşembe. Veri Tabanına Giriş

Sorgudan elde edilen değerin değişkenlere aktarılmasını sağlar. Sorgudan tek satır dönmesi gerekir. Çok satır dönerse hata verir.

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

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

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

ORACLE DA KÜRSÖRLER. Gerekli sistem değişkenleri

Veritabanı. SQL (Structured Query Language)

Oracle da Güvenlik. Kerem ERZURUMLU A

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

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

Veri Tabanı Tasarım ve Yönetimi

Internet Programming II

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

Veritabanı Yönetimi Bilgisayarların. Keşfi Hedefler. Veritabanı, Veri ve Bilgi. Veritabanı, Veri ve Bilgi. Veritabanı, Veri ve Bilgi

Durhan GABRALI Veritabanı Organizasyonu Dersi (11B)

Fonksiyonlar istenilen deger tipinde dönüs yapabilir. INT, VARCHAR deger döndürebileceğiniz gibi bir tablo da döndürebilirsiniz.

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

Veritabanına Uygulanması

VERİ TABANI YÖNETİM SİSTEMLERİ II. 5. SQL PROGRAMLAMADA CURSOR (İMLEÇ) ve TRIGGERS (TETİKLEMELER)

Veri Tabanı Yönetim Sistemleri Bölüm - 7

BMB202. Veritabanı Yönetimi Ders 5. İlişkisel Cebir ve SQL. Erdinç Uzun NKÜ Çorlu Mühendislik Fakültesi Bilgisayar Mühendisliği Bölümü

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

Maliye Uzman Yardımcılığı Giriş Sınavı (Bilişim) -16 Mart 2014 A

MOBİL UYGULAMA GELİŞTİRME

Maliye Uzman Yardımcılığı Giriş Sınavı (Bilişim)-16 Mart 2014 B

Veri Tabanı Hafta Dersi

Transkript:

Veritabanı Tasarımı Veritabanı Hareketleri

Konular Veri hareketleri ile ilgili olarak COMMIT, ROLLBACK ve SAVEPOINT terimlerini tanımlamak COMMIT, ROLLBACK ve SAVEPOINT ifadelerinin üç avantajını listelemek İşletme açısından hareket işlemi akışını kontrol edebilmenin neden önemli olduğunu açıklamak 2

Amaç Bir bankanın para yatırma ve çekme kaydı için sistematik süreci yoksa ne olur? Para çekmeye ihtiyaç duymanızdan önce hesabınıza bir mevduat yatırıldı ise bunu nasıl bilebilirsiniz? Bunun neden olacağı karışıklığı hayal edebilirsiniz. 3

Amaç Neyse ki, bankalar veri tutarlılığını sağlamak için hareket işlemlerini kontrol eder. Bu derste, veri değişim işleminin nasıl yönetileceğini ve bir veritabanında değişikliklerin nasıl taahhüt veya iptal edileceğini öğreneceksiniz. Oracle Application Express veritabanı bağlantılarını yönettiğinden dolayı COMMIT, ROLLBACK ve SAVEPOINT Oracle Application Express te desteklenmez. 4

Hareketler Hareketler tüm veritabanı sistemlerinin temel kavramıdır. Hareketler verilerde değişiklik yapmak için ve daha sonra çalışmayı kaydetme ya da iptal etmeye karar vermek için kullanıcılara izin verir. 5

Hareketler Veritabanıhareketleri birden fazla adımı tek bir mantıksal birim içine paketler. Bir hareket aşağıdakilerden oluşur: Veride tutarlı bir değişiklik oluşturan DML komutlarıdır. DML komutları INSERT, UPDATE, DELETE ve MERGE içerir. CREATE, ALTER, DROP, RENAMEya da TRUNCATE gibi bir DDL komutu GRANT ya da REVOKE gibi bir DCL komutu 6

Hareket Benzerliği Bir banka veritabanı çeşitli müşteri hesapları için bakiyelerini ve bununla birlikte diğer şubelerdeki toplam mevduat bakiyelerini içerir. Bir müşterinin para çekmek istediğini varsayalım ve onun hesabından parayı transfer edip farklı bir şubedeki başka bir müşterinin hesabına yatıralım. 7

Hareket Benzerliği Bu oldukça basit işlemi gerçekleştirmek için birkaç ayrı adım vardır. Her iki banka şubesi işlemin tüm adımlarının gerçekleştiğinden emin olmak ya da bunların tümünün iptal olmasını ister. Şayet sistemde hata oluşursa hareket kısmen tamamlanmış olarak bırakılmaz. Para çekme ve yatırma adımlarını tek bir hareket içine gruplama bunun garantilenmesini sağlar. Hareket ya tamamen gerçekleşir ya da tamamen gerçekleşmez. 8

Hareketleri Kontrol Etme Hareketler aşağıdaki komutlar kullanılarak kontrol edilir: COMMIT: Kullanıcının yapmış olduğu mantıksal olarak bir araya getirilmek istenen tüm değişikliklerin zaman noktasını temsil eder. Çünkü hiçbir hata yapılmamıştır, kullanıcı çalışmaları kaydetmek için hazırdır. Bir COMMIT deyimi verildiğinde geçerli hareket sonlanır ve bekleyen tüm değişiklikler kalıcı olur. 9

Hareketleri Kontrol Etme Hareketler aşağıdaki komutlar kullanılarak kontrol edilir: ROLLBACK: Kullanıcının veritabanında yaptığı değişiklikleri iptal edebilmesini sağlar. ROLLBACK komutu verildiğinde bekleyen tüm değişiklikler terkedilir. SAVEPOINT: Bir harekette, onu küçük parçalara bölen bir işaretleyici oluşturur. 10

Hareketleri Kontrol Etme Hareketler aşağıdaki komutlar kullanılarak kontrol edilir: ROLLBACK TO SAVEPOINT: Kullanıcının belirli bir kayıt noktasına geçerli işlemi geri almasına izin verir. Bir hata yapılmış ise, kullanıcı SAVEPOINT noktasından sonra yapılan bu değişiklikleri iptal etmek için ROLLBACK TO SAVEPOINT komutu çalıştırır. 11

Hareket Örneği Aşağıda verilen örnekte, kullanıcı bir UPDATE komutu çalıştırmakta ve hemen SAVEPOINT one oluşturmaktadır. 12

Hareket Örneği INSERT ve UPDATE komutları sonrasında kullanıcı WHERE deyiminin son UPDATE deyiminde bulunmadığını fark eder. Hatayı düzeltmek için, kullanıcı ROLLBACK TO SAVEPOINT one yapar. Veri şimdi kayıt noktası SAVEPOINT one durumuna geri yüklenir. 13

Hareket Ne Zaman Başlar ve Biter? Bir hareket ilk DML (INSERT, UPDATE, DELETE ya da MERGE) komutu ile başlar ve aşağıdaki durumlardan biri oluştuğunda sonlanır: COMMIT ya da ROLLBACK komutu verildiğinde Bir DDL (CREATE, ALTER, DROP, RENAME ya da TRUNCATE) komutu verildiğinde Bir DCL (GRANT ya da REVOKE) komutu verildiğinde isql*plus ya da SQL*Plus kullanıcısı varsa Makine hata verdiğinde ya da sistem çöktüğünde 14

Hareket Ne Zaman Başlar ve Biter? Bir hareket sonlandıktan sonra sonraki çalıştırılabilir SQL komutu otomatik olarak bir sonraki harekete başlar. Bir DDL ya da DCL komutu otomatik olarak onaylanır ve bu nedenle örtülü olarak bir hareket biter. Bir işlem sırasında yapılan her veri değişimi işlem onaylanana kadar geçicidir. 15

Veri Tutarlılığı Çalışan verilerinde değişiklik yaparken başka birinin sizin yaptığınız değişikliklerle çakışan bilgi girdiğini tespit etmek için birkaç saat harcadığınızı düşünün. Bu tür kesintileri veya çakışmaları önlemek için ve birden fazla kullanıcının aynı anda veritabanına erişmesi için veritabanı sistemleri "tutarlılık okuma" denen bir otomatik uygulama çalıştırır. 16

Veri Tutarlılığı Tutarlılık okuma, her zaman tüm kullanıcılar tarafından tutarlı bir veri görünümü sağlar. Veri değişim sürecinde olduğundan okuyucular verileri görüntüleyemez. Yazarların veritabanında tutarlı bir şekilde değişiklikler yapması sağlanır. Bir yazar tarafından yapılan değişiklikler başka yazar tarafından yapılan değişikliklerle karışmaz. 17

Okuma Tutarlılığı Okuma tutarlılığı otomatik bir tanımlamadır. Veritabanının kısmi kopyası geri alma segmentlerinde tutulur. Kullanıcı A veritabanına bir ekleme, güncelleştirme ya da silme işlemi gerçekleştirince Oracle sunucu veriler değişmeden anlık kopyasını alır ve onu bir geri alma (rollback) bölümüne yazar. Kullanıcı B hala değişiklikler başlamadan önce var olan veritabanını görür. Geri alma bölümünün anlık veri görünümüne bakar. 18

Okuma Tutarlılığı Değişiklikler veritabanına onaylatılmadan önce sadece veriyi değiştiren kullanıcılar değişiklikleri görür. Diğer herkes geri alma bölümündeki anlık kopyayı görür. Bu okuyucuların değişim geçirmekte olmayan verileri tutarlı görmesini sağlar. 19

Görünür Değişiklikler Bir DML komutu çalıştırıldığında, veritabanında yapılan değişiklik SELECT komutu çalıştıran herhangi birine görünür olur. Hareket geri alınırsa değişiklikler yapılmamış olur: Geri alma bölümündeki orijinal eski sürüm veriler tekrar tabloya yazılır. Tüm kullanıcılar veritabanlarını hareket başlamadan önceki varlıkları olarak görür. 20

COMMIT, ROLLBACK ve SAVEPOINT COMMIT ve ROLLBACK veri tutarlılığını sağlar. Değişikliklerin kalıcı yapmadan önce veri değişikliklerinin ön izleme yapılmasını ve ilgili mantıksal işlemleri grup yapmayı mümkün kılar. SAVEPOINT hareket için tüm hareketi geri almak zorunda kalmamak adına bir kayıt noktası oluşturur. 21

COMMIT, ROLLBACK ve SAVEPOINT Grafikte gösterilen harekette bir DELETE komutu gerçekleştirilmekte ve daha sonra SAVEPOINT A oluşturulmaktadır. Bu SAVEPOINT işaretleyici olarak görev yapar ve kullanıcının bir sonraki değişiklikleri geri alması için izin verir. Veri bu noktada mevcut olduğu değerlere geri döner. 22

COMMIT, ROLLBACK ve SAVEPOINT Örnekte, SAVEPOINT A dan sonra kullanıcı INSERT ve UPDATE komutları çalıştırmakta ve daha sonra başka bir geri alma işaretleyiciyi SAVEPOINT B ye yerleştirmektedir. 23

COMMIT, ROLLBACK ve SAVEPOINT Bazı nedenlerden dolayı kullanıcı bu INSERT ve/ veya UPDATE komutlarının gerçekleşmesini istemezse ROLLBACK TO SAVEPOINT A ifadesi çalıştırılır. Bu veriyi kayıt noktası A daki haline döndürecektir. 24

COMMIT, ROLLBACK ve SAVEPOINT Diğer SAVEPOINTS ekleme geri alma noktaları için ek işaretler oluşturur. Şayet kullanıcı ROLLBACK TO SAVEPOINT ifadesi kullanmadan bir ROLLBACK gerçekleştirirse tüm hareket sona erer ve bekleyen tüm veri değişiklikleri iptal edilir. 25

Dahili Hareket İşlemi Veri değişikliklerini otomatik onaylama şu durumlarda oluşur: DDL komutu çalıştırılırsa DCL komutu çalıştırılırsa COMMIT ya da ROLLBACK komutları açıkça kullanılmadan isql*plus ya da SQL*Plus tan normal bir çıkış 26

Dahili Hareket İşlemi Otomatik geri alma isql*plus ya da SQL*Plus deki normal olmayan sonlandırma ya da sistem hatası oluştuğunda meydana gelir. Bu temel tablolarda istenmeyen değişikliklerden kaynaklanan verilerdeki hataları önler. Veri bütünlüğü bu sayede korunur. 27

Kilitleme Verinin aynı anda birden fazla kullanıcı tarafından değiştirilmesini önlemek için önemlidir. Oracle aynı kaynağa ya da kullanıcı nesnesine ya da kullanıcıya görünmeyen sistem nesnesine erişen hareketler arasındaki yıkıcı etkileşimden korunmak için kilitleri kullanır. 28

Oracle Veritabanı Veriyi Nasıl Kilitler Oracle kilitleme otomatik olarak gerçekleşir ve kullanıcı hareketi gerektirmez. Dahili kilitleme, gereken SQL deyimleri için istenen eyleme bağlı olarak oluşur. Dahili kilitleme SELECT hariç tüm SQL ifadeleri için oluşur. Kullanıcılar verileri harici kilitleme diye adlandırılan yöntemle manuel olarak da kilitleyebilir. COMMIT ya da ROLLBACK komutu gerçekleştirildiğinde etkilenen satırlardaki kilitler serbest bırakılır. 29