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

Benzer belgeler
KISITLAMALAR (CONSTRAINT)

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

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

VERİTABANI ORGANİZASYONU

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

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

Veri Tabanı Hafta Dersi

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

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

SQL e Giriş. Uzm. Murat YAZICI

SORGULAR VE ÇEŞİTLERİ II

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

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

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

İLİŞKİSEL VERİTABANLARI

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

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

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

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

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

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

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

Veritabanı Tasarımı. Yapay, Birleşik ve İkincil UID ler

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

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

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

Veritabanı. SQL (Structured Query Language)

Veritabanı Tasarımı. SQL Deyimi Anatomisi

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

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

Veri Tabanı Hafta Dersi

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

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

VERİTABANI Veritabanı Yönetimi

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

Veritabanı Tasarımı. Tablo Oluşturma

Veri Tabanı Tasarım ve Yönetimi

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

1 Temel Kavramlar. Veritabanı 1

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

Oracle da kullanılan veri tipleri:

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

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

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

VERİTABANI Veritabanı Tasarımı

«BM364» Veritabanı Uygulamaları

SQL Komutları (2) Uzm. Murat YAZICI

İl ve İlçe Milli Eğitim Müdürlüğü İşlemleri YÖNETİCİ MODÜLÜ Bölüm - 01

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

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

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

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

Laboratuvar 6 TABLOLAR VE KISITLAR

Mysql Veritabanı Komutları

VERİTABANI YÖNETİMİ. İlişkisel Veritabanı 4.HAFTA. Veritabanı Yönetimi Prof. Dr. İbrahim Çil

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

SUNGURLU MESLEK YÜKSEKOKULU 5. T-SQL

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

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

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

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

Hurda Tanımla. Hurda Girişi Yap. Teçhizatın Son Sökülme Bilgilerini İş Takip Sisteminden Al

Veritabanına Uygulanması

Veritabanı Tasarımı. İlişkileri Eşleştirme

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

1 Temel Kavramlar. Veritabanı 1

Oracle Database 11g: Introduction to SQL

SQL (Structured Query Language)

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

VERİTABANI Veritabanı Normalizasyonu

Basit SQL Sorguları Veritabanından verilerin SELECT cümleleri ile alınması işlemine sorgulama denir.

BLGM 354 DENEY 1 * GİRİŞ

YAPISAL SORGULAMA DİLİ (SQL)

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

10-Veri Tabanları.

VERİ TABANI I. Yrd.Doç.Dr. İlker ÜNAL. Teknik Bilimler Meslek Yüksekokulu

SQL DİĞER Deyimler ve Komutlar

Sipariş Modülü Dizayn. Dökümanı. Turquaz Muhasebe. Versiyon 0.1. Hüseyin Ergün. 9 Eylül 04

EBE-368 Veri Tabanı Yönetim Sistemleri SQL

Veri tabanı içinde bulunan tablolardakibazı sütunlarda bulunan bilgilerin, herkes tarafından görülmesi istenmeyebilir.

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

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

BİLİŞİM TEKNOLOJİLERİ

VTYS İlişkisel Veri Modeli Y R D. D O Ç. D R. M. B E T Ü L Y I L M A Z

Birden Çok Tabloda Sorgulama (Join)

Bankalar Modülü Dizayn. Dökümanı. Turquaz Muhasebe. Versiyon 0.2. Önsel Armağan. 16 Eylül 04

Coğrafi Bilgi Sistemlerine Giriş. Ünite 5 - Veri Tabanı Yönetim Sistemleri

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

Süreç Yönetimi. Logo

MOBİL UYGULAMA GELİŞTİRME

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

Veritabanı Dersi. Teoriden Pratiğe. Çağıltay N.E., Tokdemir G. Veritabanı Sistemleri Dersi -Bölüm XII: Durum Çalışması Çağıltay, N., Tokdemir, G.

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

HASTANE OTOMASYONU VERİ TABANI YÖNETİM SİSTEMLERİ TEMEL VERİTABANI KAVRAMLARI

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ı ve Yönetimi. Uzm. Murat YAZICI

Çok tablolu sorgulamalar

YAPILAR BİRLİKLER SAYMA SABİTLERİ/KÜMELERİ. 3. Hafta

UZAKTAN EĞİTİM MERKEZİ

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

Transkript:

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

NOT NULL ve UNIQUE Kısıtlamaları Tanımlama Konular Kısıtlama terimini veri bütünlüğü ile ilişkilendirerek tanımlama Sütun seviyesinde ve tablo seviyesinde kısıtlama tanımlamanın ne zaman mümkün olduğunu belirtme Kısıtlamalara neden anlamlı isimler verilmelidir belirtme Hangi veri bütünlük kuralları NOT NULL ve UNIQUE kısıtlamaları ile zorlanmaktadır belirtme Tablo ve sütun seviyesinde NOT NULL ve UNIQUE kısıtlamaları içeren CREATE TABLE komutları yazma Tablo oluşturulduğu zaman kısıtlamalar nasıl oluşturulur açıklama 2

NOT NULL ve UNIQUE Kısıtlamaları Tanımlama Amaç Toplumun kurallar olmadan nasıl çalışacağı konusunda düşünelim. Kırmızı ışıkta durmak bir kuraldır. Bu kural olmadan sürücü güvenliği olur mu? Veritabanları için ikincil anahtar değeri birinci anahtar değeri ilk olarak girilmeden girilemez. Bu kural zorunlu olmasaydı veritabanına ne olurdu düşünün. 3

NOT NULL ve UNIQUE Kısıtlamaları Tanımlama Amaç Bir veritabanı sadece içindeki veri kadar güvenlidir. Kısıtlamalar tabloya geçersiz kayıtlarını girilmesini önler. Negatif bir maaş değeri ya da aynı numaraya sahip 6 öğrenci ya da birbiriyle ilişkilendirilmeyen tablolar anlamlı mıdır? Kurallar olmadan veritabanı bütünlüğüne güvenilebilir mi? Bu derslerde kuralları zorlamak için kısıtlamaların nasıl oluşturulacağını göreceğiz. Ayrıca onların nasıl yönetileceği ve veri sözlüğündeki tanımlamalarına nasıl bakılacağı öğrenilecek. 4

Genel Anlamda Kısıtlamalar NOT NULL ve UNIQUE Kısıtlamaları Tanımlama Yani, bir kısıt tam olarak nedir? Veritabanıkuralları gibi kısıtlamalar düşünün. Tüm kısıtlama tanımları veri sözlüğünde saklanır. Kısıtlamaları eğer diğer tablolardan bağımlılıklar varsa bir tablonun silinmesini önler. Kısıtlamalar bir tabloda bir satır eklendiğinde, güncellendiğinde ya da silindiğinde verilere kuralları uygular. Kısıtlamalar ve onları isimlendirme önemlidir. Kısıtları birbirinden ayırt edebileceğimiz isimler vermek önemlidir. 5

NOT NULL ve UNIQUE Kısıtlamaları Tanımlama Kısıtlama Oluşturma Tablo oluşturma SQL sözdizimini tekrar çağırın. CREATE TABLE komutunda her sütun ve veri türü tanımlıdır. CREATE TABLE komutu tablodaki her sütun için kısıtlamaları oluşturmak için kullanılır. İki farklı şekilde yer bulur: Sütun seviyesinde isim ve veri türünün yanında Tablo seviyesinde listelenen tüm sütun adlarından sonra 6

Sütun Seviyesinde Kısıtlama NOT NULL ve UNIQUE Kısıtlamaları Tanımlama Sütun seviyesinde bir kısıtlama tek bir sütunla ilişkilidir. Sütun seviyesinde kısıtlama kurmak için kısıtlama CREATE TABLE komutunda sütun tanımı parçası olarak tanımlanmalıdır. Bir sütun düzeyinde kısıtlama kurmak için aşağıdaki SQL deyimini inceleyin. Kısıtlama adı clients_client_num_pk. Bu iş kuralı client_number sütununun istemci tablosunun birincil anahtarı olduğunu uygular. 7

Kısıtlamaları İsimlendirme NOT NULL ve UNIQUE Kısıtlamaları Tanımlama Veritabanındakiher kısıtlama bir isme sahiptir. Kısıtlama oluşturulduktan sonra clients_client_num_pk gibi isim verilmelidir. Verilmezse sistem tarafından SYS_C00585417 gibi bir isim verilir. Bir adlandırma kuralı, kısıtlama kısaltması ardından gelen kısaltılmış tablo ismi ve kısaltılmış sütun adı kombinasyonu olabilir. tablo-adı_sütun-adı_kısıtlama-türü Şayet ayrılmış kelime CONSTRAINT, CREATE TABLE tanımında kullanılırsa kısıtlamaya isim vermek zorunludur. Kısıtlama adı 30 karakter ile sınırlandırılmıştır. 8

Sütun Seviyesinde Kısıtlama NOT NULL ve UNIQUE Kısıtlamaları Tanımlama Kısıtlamayı kendinizin isimlendirmesi en iyisidir. Çünkü sistem tarafından oluşturulan isimlerin tanınması kolay değildir. Tablo tanımına bakalım: 9

NOT NULL ve UNIQUE Kısıtlamaları Tanımlama Sütun Seviyesinde Kısıtlamaları İsimlendirme İsimlendirme kuralına göre: client_number birincil anahtar kısıtlaması clients_client_no_pk olarak isimlendirilmeli last_name sütunu not null kısıtlaması clients_last_name_nn olarak isimlendirilmeli e-mail_address sütunu için benzersiz kısıtlama clients_email_uk olarak isimlendirilmeli 10

Kısıtlama İsimlendirme Örneği NOT NULL ve UNIQUE Kısıtlamaları Tanımlama Bu örnekte hem kullanıcı isimlendireli hem de sistem isimlendirmeli bir kısıtlama örneği gösterilmektedir: İki kısıtlama oluşturuldu: clients_client_num_pk isimli kullanıcı isimlendirmeli kısıtlama SYS_Cn isimli sistem isimlendirmeli kısıtlama 11

Tablo Seviyesinde Kısıtlama NOT NULL ve UNIQUE Kısıtlamaları Tanımlama Tablo seviyesinde kısıtlama CREATE TABLE komutunda sütun tanımlamalarından ayrı olarak listelenmektedir. Tablo seviyesinde kısıtlama tanımlamaları tüm tablo sütunları tanımlandıktan sonra listelenir. Örnekte benzersiz kısıtlama CREATE TABLE komutunda sonda listelenmektedir. 12

Kısıtlamalar için Basit Kurallar NOT NULL ve UNIQUE Kısıtlamaları Tanımlama Birden fazla sütunu belirten kısıtlamalar tablo seviyesinde tanımlanmalıdır. NOT NULL kısıtlaması sadece sütun seviyesinde tanımlanır UNIQUE, PRIMARY KEY, FOREIGN KEY ve CHECK kısıtlamaları sütun ya da tablo seviyesinde tanımlanabilir. CREATE TABLE komutunda CONSTRAINT kelimesi kullanılırsa kısıtlama ismi verilmelidir. 13

NOT NULL ve UNIQUE Kısıtlamaları Tanımlama İhlalleri İnceleme Birden fazla sütunu belirten kısıtlamalar tablo seviyesinde tanımlanmalıdır. NOT NULL kısıtlaması sadece sütun seviyesinde tanımlanır UNIQUE, PRIMARY KEY, FOREIGN KEY ve CHECK kısıtlamaları sütun ya da tablo seviyesinde tanımlanabilir. CREATE TABLE komutunda CONSTRAINT kelimesi kullanılırsa kısıtlama ismi verilmelidir. 14

NOT NULL ve UNIQUE Kısıtlamaları Tanımlama İhlalleri İnceleme 15

NOT NULL ve UNIQUE Kısıtlamaları Tanımlama Kısıtlama Türleri Oracle veritabanında 5 tür kısıtlama vardır. Her tür farklı bir kural uygular. Türler: NOT NULL kısıtlamaları UNIQUE kısıtlamaları PRIMARY KEY kısıtlamaları FOREIGN KEY kısıtlamaları CHECK kısıtlamaları 16

NOT NULL Kısıtlaması NOT NULL ve UNIQUE Kısıtlamaları Tanımlama NOT NULL kısıtlaması ile tanımlanan bir sütun tabloya girilen her satır için bu sütunda bir değer olmasını gerektirir. Örneğin, çalışan tablosundaki e-mail sütunu NOT NULL olarak tanımlanmışsa, tabloya girilen her çalışan e-mail sütununda değere sahip olmalıdır. NOT NULL sütunlarını tanımlarken kısıtlama adında son ek _nn kullanılabilir. Örneğin, e-mail için çalışan tablosunda bu kısıtlamanın adı emp_email_nn olabilir. 17

NOT NULL ve UNIQUE Kısıtlamaları Tanımlama UNIQUE Kısıtlaması UNIQUE kısıtlaması bir sütundaki ya da sütunlar kümesindeki her değer benzersiz olmalıdır. Tablonun iki satırı aynı değer içeremez. Örneğin, iş sektöründe iki insan aynı mail adresine sahip olamaz. Bu sütun UNIQUE kısıtlaması kullanılarak tanımlanabilir. UNIQUE olarak tanımlanan sütun ya da sütun kümesi benzersiz anahtar olarak adlandırılır. 18

NOT NULL ve UNIQUE Kısıtlamaları Tanımlama UNIQUE Kısıtlaması Eğer her giriş için iki veya daha fazla sütunun birleşimi benzersiz ise kısıtlama için birleşik benzersiz anahtar denir. E-posta ve soyadının tüm kombinasyonlarının EŞSİZ olması birleşik bir anahtara örnektir. anahtar kelimesi sütunu temsil eder kısıt adı değildir. 19

NOT NULL ve UNIQUE Kısıtlamaları Tanımlama UNIQUE Kısıtlaması Şayet tablodaki emailsütunu UNIQUE kısıtlama ile tanımlanırsa, diğer sistemcilerin girişlerinde aynı email olamaz. İki istemcil aynı evde yaşıyorsa ve bir e-posta adresini paylaşıyorsa ne olur? 20

UNIQUE Kısıtlamalar Tanımlama NOT NULL ve UNIQUE Kısıtlamaları Tanımlama UNIQUE kısıtlama tanımlanırken kısıtlama adının son ekinde uk kullanılabilir. Örneğin, çalışan tablosundaki email sütunu için benzersiz kısıtlama adı emp_email_uk olur. Birleşik benzersiz anahtar tanımlamak için kısıtlamayı sütun seviyesinde değil tablo seviyesinde tanımlamak gerekir. Birleşik benzersiz anahtar kısıtlama adına örnek: 21

Birleşik Benzersiz Anahtar UNIQUE kısıtlamaları sütun NOT NULL kısıtlamasına sahip değilse giriş null olabilir. Bir sütundaki null her zaman benzersiz kısıtlamayı sağlar çünkü null ifadesi herhangi bir değere eşit değildir. NOT NULL ve UNIQUE Kısıtlamaları Tanımlama Bu sütunların birleşimi BENZERSİZ olmalı. 22

Birleşik Benzersiz Anahtar Bir birleşik benzersiz anahtar olan kısıtlamayı sağlamak için tablodaki herhangi iki satır anahtar sütunlarında aynı değer kombinasyonuna sahip olamaz. NOT NULL ve UNIQUE Kısıtlamaları Tanımlama Ayrıca tüm anahtar sütunlardaki null içeren herhangi bir satır otomatik olarak kısıtlamayı sağlar. Bu sütunların birleşimi BENZERSİZ olmalı. 23

NOT NULL ve UNIQUE Kısıtlamaları Tanımlama Tablo Oluştururken Kısıtlama Oluşturma NOT NULL kısıtlamasını tablo oluşturma komutu parçası olarak eklerken Oracle veritabanı NOT NULL sütunundaki değeri zorlamak için Kontrol Kısıtlaması oluşturur. Bu kısıtlama oluşturması tablonuzu oluştururken size görülmezdir, Oracle bu işi yapar. Tablo oluşturma komutu sonunda Tablo oluşturuldu mesajı görüntülenir fakat oluşturulan kısıtlamalar hakkında detaylı bilgiler verilmez. 24