Veritabanı Tasarımı. Kısıtlamaları Yönetme

Benzer belgeler
Veritabanı Tasarımı. Birincil Anahtar, İkincil Anahtar ve Kontrol Kısıtlamaları

Veritabanı Tasarımı. NOT NULL ve UNIQUE Kısıtlamaları Tanımlama

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

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

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

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

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

Veri Tabanı Hafta Dersi

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 4: DDL Veri Tanımlama Dili

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

Veritabanı Tasarımı. Tablo Oluşturma

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

EBE-368 Veri Tabanı Yönetim Sistemleri İlişkisel Model (The Relational Model)

VERİTABANI Veritabanı Yönetimi

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

BÖLÜM -7: TABLOLARI OLUŞTURMA VE YÖNETME

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

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

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

Veritabanı Tasarımı. Sütunlar, Karakterler ve Satırlar ile Çalışma

«BM364» Veritabanı Uygulamaları

KISITLAMALAR (CONSTRAINT)

Veritabanı Yönetim Sistemleri (Veritabanı Tasarımı) SQL (Structured Query Language)

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

SQL e Giriş. Uzm. Murat YAZICI

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

Aşağıdaki tabloyu inceleyin. Sorgulama işlemlerini bu tabloya göre yapacağız.

SORGULAR VE ÇEŞİTLERİ II

Laboratuvar 6 TABLOLAR VE KISITLAR

SQL Komutları (2) Uzm. Murat YAZICI

Oracle da kullanılan veri tipleri:

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

Yaptığımız web sitelerinin daha kullanışlı olması için veritabanı sistemleri ile bağlantı kurup ihtiyaca göre verileri okuyup yazmasını isteriz.

Veritabanı Tasarımı. İlişkisel Veritabanı Kavramlarına Giriş

VERİTABANI ORGANİZASYONU

Veritabanına Uygulanması

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

Veritabanı Tasarımı. Düzenli İfadeler

Veritabanı Tasarımı. Veritabanı Hareketleri

İLİŞKİSEL VERİTABANLARI

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

Veritabanı Tasarımı. SQL Deyimi Anatomisi

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

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

VERİTABANI. SQL (Structured Query Language)

YAPISAL SORGULAMA DİLİ (SQL)

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

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

Oracle Database 11g: Introduction to SQL

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

Veritabanı Tasarımı. Basit Eşleme: Dönüşüm İşlemi

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

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

İnternet Programcılığı

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

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.

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

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

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

VERİ TABANI ve YÖNETİMİ

ACCESS PLATFORMUNDA SQL

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

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

Akıllı Bilet Online İşlem Merkezi Uygulaması

VERİTABANI Veritabanı Normalizasyonu

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.

OTURUM AÇMA ADLARI. Tavsiye Edilen Önhazırlık Enterprise Manager'i kullanabilmek.

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

ELIF KIOTZEOGLOU RESUL MURAD MERT PACOLARI

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

Veritabanı. SQL (Structured Query Language)

Veritabanı Tasarımı. İlişki Eşleme

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

SUNGURLU MESLEK YÜKSEKOKULU 5. T-SQL

Tavsiye Edilen Önhazırlık Temel SQL Server 2000 bilgisi edinmek.

Veritabanı Tarihi. 1960s: Bilgisayarlar artan saklama kapasiteleri ile birlikte firmalar tarafından karşılanabilir hale gelmeye başladı

1 Temel Kavramlar. Veritabanı 1

Veritabanı Yönetim Sistemleri (Veritabanı Tasarımı) İlişkisel Veritabanı Modeli

Quick Installation Guide. Central Management Software

Veritabanı. Ders 2 VERİTABANI

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

Microsoft SQL Server 2008 Oracle Mysql (Ücretsiz) (Uygulamalarımızda bunu kullanacağız) Access

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

Security Configuration Wizard ile güvenliği artırmak

İNTERNET PROGRAMCILIĞI DERSİ

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

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

1 Temel Kavramlar. Veritabanı 1

Veri Tabanı Tasarım ve Yönetimi

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

SQL Kod ile Tablo Oluşturma

STORED PROCEDURE LER (Saklı Yordamlar)

BLGM 354 DENEY 1 * GİRİŞ

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

Fonksiyonel(İşlevsel) Bağımlılık

Pursaklar İMKB Teknik ve Endüstri Meslek Lisesi

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

E-Posta Yönetimi. E-Posta Açma, Silme ve Yönetim Kılavuzu

Transkript:

Veritabanı Tasarımı

Konular ALTER komutunun kısıtlamalar üstünde gerçekleştirebileceği dört farklı fonksiyonu listeleme ALTER TABLE komutlarını kısıtlamalarda ekleme, kaldırma, etkisizleştirme ve etkinleştirme için yazma Kısıtlamalarda kaldırma, etkisizleştirme ve etkinleştirme ya da CASCADE sözdizimi için bir DBA gerektiren bir iş kuralı yazma USER_CONSTRAINTS için veri sözlüğünü sorgulama ve dönen bilgiyi yorumlama 2

Amaç Okulun veritabanına gerçek bir öğrenci alınmadan yeni öğrenci kimlik numarası girilmişse herhangi bir fark yapar mı? Bir kredi kartı şirketi, aynı kredi kartı numarasını birden fazla hesap İçin tanımlasa ya da bir şirket, var olmayan bir bölüm için bir çalışanı işe alsa. Şayet şirket kendi veritabanındaki bilgilerin güvenilirliğine güvenemezse ne olur? 3

Amaç Bir veritabanı sisteminin iş kurallarını uygulayabilmesi gerekir ve aynı zamanda, veri eklemeyi, değiştirmeyi veya silmeyi önlemelidir. Bu durum veritabanı veri bütünlüğünün korunması ihlaline neden olabilir. Bu bölümde, tablo kısıtlamalarında bilgi tutarlılığı için nasıl değişiklik yapılacağını öğreneceksiniz. Böylece buna bağlı olarak, Veritabanı güvenilirliği verinin değişmesi gerektiğinde korunacaktır. 4

ALTER TABLE komutu var olan tablolardaki kısıtlamaları değiştirmek için kullanılır. Bu değişiklikler ekleme ya da kaldırma kısıtlamalarını içerebilir, kısıtlamaları etkinleştirebilir ya da etkisizleştirebilir ve bir sütuna NOT NULL kısıtlaması ekleyebilir. 5

Kısıtlamalarda değişiklik yapmak için kurallar şunlardır: Bir kısıtlama ekleyebilir, etkisizleştirebilir veya etkinleştirebilirsiniz fakat yapısını değiştiremezsiniz. ALTER TABLE komutunda MODIFY deyimi kullanarak var olan bir sütuna bir NOT NULL kısıtlaması ekleyebilirsiniz. NOT NULL sütun düzeyinde değişiklik yapması nedeniyle MODIFY kullanılır. Sadece tablo boşsa veya sütun her satır için bir değer içeriyorsa bir NOT NULL kısıtlaması tanımlayabilirsiniz. 6

ALTER Komutu ALTER komutu şunları gerektirir: Tablo adı Kısıtlama adı Kısıtlama türü Kısıtlamadan etkilenecek sütun adı 7

ALTER Komutu Aşağıda gösterilen örnekte, DJs on Demand veritabanı kullanılarak birincil anahtar kısıtlaması D_CLIENTS tablosu orijinal olarak oluşturulduktan sonra eklenmektedir. Bu durumda, birincil anahtar kısıtlaması D_CLIENTS tablosuna eklenmektedir. 8

Kısıtlamaları Ekleme Var olan bir tabloya bir kısıtlama eklemek için aşağıdaki SQL sözdizimi kullanılır: Şayet kısıtlama ikincil anahtar kısıtlaması ise REFERENCES anahtar kelimesi komut içinde yer almalıdır: 9

Kısıtlamaları Ekleme Örneği DJs on Demand veritabanını ele alın. D_CLIENTS tablosundan birincil anahtar girildiğinde D_EVENTS tablosunda ikincil anahtar olur. 10

Kısıtlamaları Ekleme Örneği Örnekte D_EVENTS tablosuna bu ikincil anahtarı ekleme sözdizimi verilmektedir: 11

Kısıtlamaları Ekleme Koşulları Eğer kısıtlama NOT NULL kısıtlaması ise ALTER TABLE komutu ADD yerine MODIFY kullanır. NOT NULL kısıtlamaları sadece tablo boş iken ya da sütun her bir satır için değere sahip iken eklenir. 12

Kısıtlamaları Etkinleştirme ve Devre Dışı Bırakma Bütünlük kısıtlamaları tarafından tanımlanan kuralları uygulamak için, kısıtlamalar her zaman etkin olmalıdır. Bazı durumlarda ise, performans nedenlerinden ötürü tablo bütünlüğü kısıtlamalarının geçici olarak devre dışı bırakılması arzu edilir. Bir tabloya büyük miktarlarda veri yüklerken Bir tabloda büyük değişiklikler yapan toplu işlemler yaparken (örneğin herkesin çalışan numarasını mevcut numaraya 1000 ekleyerek değiştirme) 13

Kısıtlamaları Kaldırma Bir kısıtlamayı kaldırmak için kısıtlamanın adını bilmek zorundasınız. Bunu bilmezseniz, kısıtlama adını veri sözlüğündeki USER_CONSTRAINTS ve USER_CONS_COLUMNS tablolarından bulamazsınız. DROP deyiminin CASCADE seçeneği bağlı olan herhangi kısıtlamalarında kaldırılmasına neden olur. Bağlılık kısıtlamasını kaldırdığınız zaman Oracle sunucu tarafından zorlanmaz ve veri sözlüğünden kaldırılır. 14

Kısıtlamaları Kaldırma Bir kısıtlamayı kaldırırken bundan etkilenen tablolardan herhangi bir veri ya da satır silinmez. 15

Kısıtlamaları Devre Dışı Bırakma Varsayılan olarak, bir bütünlük kısıtlaması CREATE ya da ALTER TABLE komutunda tanımlanır. Kısıtlama özel olarak DISABLE deyimi belirtilerek devre dışı değilse Oracle tarafından otomatik olarak etkindir. Kısıtlamayı kaldırmadan ALTER TABLE DISABLE seçeneğini kullanarak devre dışı bırakabilirsiniz ya da tekrar oluşturabilirsiniz. DISABLE kısıtlamayı sağlamaya bakmadan gelen veriye izin verir. Bu fonksiyon verinin çocuk tabloya ana tabloda ilgili değer olmasa da eklenmesine izin verir. DISABLE basitçe kısıtlamayı kapatır. 16

DISABLE Deyimini Kullanma DISABLE deyimi hem ALTER TABLE komutunda hem de CREATE TABLE komutunda kullanılabilir. Benzersiz ya da birincil anahtar kısıtlamasını devre dışı bırakma benzersiz indeksleri kaldırır. 17

CASCADE Deyimini Kullanma CASCADE deyimi bağımlı bütünlük kısıtlamalarını devre dışı bırakır. Kısıtlama daha sonra etkinleştirilirse bağımlı kısıtlamalar otomatik olarak etkinleşmez. 18

Kısıtlamaları Etkinleştirme Devre dışı olan bir bütünlük kısıtlamasını etkinleştirmek için ALTER TABLE komutunda ENABLE deyimi kullanılır. ENABLE gelen tüm verinin kısıtlamaya uygun olmasını sağlar. ENABLE deyimini hem CREATE TABLE komutunda hem de ALTER TABLE komutunda kullanabilirsiniz. 19

Kısıtlamaları Etkinleştirme Hususları Bir kısıtlamayı etkinleştirirseniz bu kısıtlama tablodaki tüm verilere uygulanır. Tablodaki tüm veriler kısıtlamaya uymalıdır. UNIQUE KEY ya da PRIMARY KEY kısıtlaması etkinleştirilirse UNIQUE KEY ya da PRIMARY KEY indeksleri otomatik olarak oluşturulur. CASCADE seçeneği ile devre dışı bırakılmış bir PRIMARY KEY kısıtlaması etkinleştirilirse birincil anahtara bağlı ikincil anahtarı etkinleştirmez. ENABLE kısıtlamayı kapattıktan sonra tekrar etkinleştirir. 20

Cascading Kısıtlamaları Cascading veri bütünlüğü kısıtlamaları, kullanıcı ikincil anahtarlar durumundaki bir anahtarı silmeye ya da güncellemeye çalıştığı zaman veritabanı sunucusunda tanımlamanıza imkan sağlar. CASCADE CONSTRAINTS deyimi DROP COLUMN deyimi ile birlikte kullanılır. Tüm veri bütünlük kısıtlamaları kaldırılır. Ayrıca tüm çoklu kısıtlama sütunları da kaldırılır. 21

Cascading Kısıtlamaları Şayet bir ALTER TABLE komutu CASCADE CONSTRAINTS seçeneği içermezse birincil anahtarı ya da çoklu sütun kısıtlamasını kaldırma başarısız olur. Hatırlayın, başka bir tabloda çocuk değer varsa ana tabloyu silemezsiniz. 22

CASCADE Ne Zaman Gerekli Değildir Kaldırılmış sütunlarda tanımlanmış kısıtlamalar ile gösterilen sütunlarda kaldırılır. Daha sonra CASCADE CONSTRAINTS gerekli değildir. Örneğin diğer tablolardaki kısıtlamalar PK sütununu belirtmezse aşağıdaki ifadeyi CASCADE CONSTRAINTS deyimi olmadan gönderebilirsiniz: Bununla birlikte, şayet kısıtlamalar diğer tablolardaki sütunlar tarafından belirtilirse hata almamak için CASCADE CONSTRAINTS deyimi belirtilmelidir. 23

Kısıtlamaları Görüntüleme Tablo oluşturulduktan sonra DECRIBE komutu kullanarak varlığını onaylayabilirsiniz. DESCRIBE kullanarak doğrulayacağınız tek kısıtlama NOT NULL kısıtlamasıdır. NOT NULL kısıtlaması veri sözlüğünde bir CHECK kısıtlaması olarak da görülecektir. 24

Kısıtlamaları Görüntüleme Tablonuzdaki tüm kısıtlam aları görmek için, USER_CONSTRAINTS tablosu sorgulanır. 25

Kısıtlamaları Görüntüleme Veri sözlüğünde listelenen kısıtlama türleri: CHECK için C, PRIMARY KEY için P, REFERENTIAL INTEGRITY için R, UNIQUE için U. 26

Veri Sözlüğünde Kısıtlamaları Görüntüleme Adımları Veri sözlüğünü Oracle Application Express kullanarak görüntüleyebilirsiniz. Aşağıda veri sözlüğünde kullanılan adımlar verilmektedir: 1. Application Express te Utilities seçin. 2. Object Reports seçin. 3. All Object Reports altında Data Dictionary seçin. 4. Arama kutusuna USER_CONSTRAINTS girin ve devam edin. 5. USER_CONSTRAINTS linkine tıklayın. 6. Sözlükten döndürmek istediğiniz bilgileri seçin. 7. Query butonuna tıklayın. 27