Veri Tabanı Yönetim Sistemleri 1 Ders 10 VTYS Yaşam Döngüsü ve DDL

Slides:



Advertisements
Benzer bir sunumlar
ÖRNEK BİR VERİTABANI TASARIMI VE NORMALİZASYONU
Advertisements

T sql-diğer komutlar Metin Akbulut.
VERİ TABANI VE YÖNETİM SİSTEMLERİ
Veri Tabanı Tasarlama İlk kuralımız, olabildiğince bilgileri parçalamaktır.
4 SQL- Yapısal Sorgulama Dili
Performance Tuning Performans Düzenleme Teknikleri.
SQL (Structured Query Language)
VERİ TABANI YÖNETİMİ Ders 10: Oracle Nesneleri
VERİ TABANI YÖNETİMİ Ders 7: Veri Tabanı Sisteminin Kurulması
SQL Komutlar 5 Sibel SOMYÜREK.
Varlık-İlişki Modeli Örneği
İndeksler Sibel SOMYÜREK.
EkoPC Bilişim Ltd. Eğitim Hizmetleri
Veri Tabanı Yönetim Sistemleri
Tek Tablo İçinde Sorgulamalar
Veritabanı Yönetim Sistemleri Hızlı ve Kısa Giriş
Veri Tabanı Yönetim Sistemleri
Veri Tabanı Yönetim Sistemleri
BÖLÜM 6 SQL SERVER KOMUTLARI.
4 Veri Bütünlüğü ve Constraint’ler
SQL (STRUCTURED QUERY LANGUAGE)
Bilgisayar Mühendisliği Bölümü
Veritabanı Temel Kavramlar ve
Veri Bütünlüğü Sibel SOMYÜREK.
Veritabanı Yönetim Sistemleri-I
VIEW (BAKIŞ) OLUŞTURMA
SQL Dili ve MySQL Komutları
SQL’e Giriş ve SELECT Komutu
VERİTABANI ve YÖNETİMİ
BTP102 VERİTABANI YÖNETİM SİSTEMLERİ 1
Veritabanı Kavramları
SQL Sibel SOMYÜREK.
Veri Tabanı Yönetim Sistemleri 1 Ders 5 SQL'e Giriş
Veri Tabanı Yönetim Sistemleri 2 Ders 4 Oracle'da VT Nesneleri Yaratma
SQL Komutları (2) Uzm. Murat YAZICI.
BTP102 VERİTABANI YÖNETİM SİSTEMLERİ 1
Veri Tabanı Tasarım Süreci
SQL’ e Giriş Uzm. Murat YAZICI.
Bilgisayar Mühendisliği Bölümü
Bilgisayar Mühendisliği Bölümü
Update UPDATE tablo_ismi SET sutun1=‘deger1’ WHERE sutun=deger.
Veritabanı Kavramları
İnsan Kaynakları Bilgi Sistemleri
ADRESİNDEN ÖRNEK VERİ TABANLARINI İNDİRİNİZ
Yeni Veritabanı Oluşturma
S ORGU / DML / DDL KOMUTLARı İbrahim Onur Sığırcı.
Yapısal Sorgulama Dili SQL VTYS Giriş Hafta 5 Ders Notu.
ÖTÖ 451 Okul Yönetiminde Bilgisayar Uygulamaları R. Orçun Madran.
Altıncı hafta. Müfredat programı Ödev teslim edenler Mantıksal tasarım ödevini teslim edenler: Belediye Projesi Valilik Projesi Mekan Projesi Konaklama.
© Marmara Üniversitesi Uzaktan Eğitim Uygulama ve Araştırma Merkezi
Öğretim Görevlisi Alper Talha Karadeniz Veri Tabanı 2
Veri Tabanı Yönetimi Dersi 1. Laboratuvarı
ÖRNEK BİR VERİTABANI TASARIMI VE NORMALİZASYONU
© Marmara Üniversitesi Uzaktan Eğitim Uygulama ve Araştırma Merkezi
VIEW lerle çalışmak 11.BÖLÜM.
Bilgisayar Mühendisliği Bölümü
ACTIVE DIRECTORY.
Veri Tabanı Yönetim Sistemleri 2 Ders 4 Oracle'da VT Nesneleri Yaratma
Veri Tabanı Yönetim Sistemleri 1 Ders 10 Veri Sözlüğü ve DDL
Veri Tabanı Yönetim Sistemleri 1 Ders 10 (ek) VTYS Yaşam Döngüsü
İNDEKS.
SQL Veri Tipleri.
VERİ TABANI SQL (STRUCTURED QUERY LANGUAGE) SAVAŞ TUNÇER.
Öğretim Görevlisi Alper Talha Karadeniz Veri Tabanı 1
DML ile veri ekleme, silme ve değiştirme
VERİTABANI YÖNETİM SİSTEMLERİ 6-SQL Server-2
Sorgu / dml / ddl komutları
SQL (STRUCTURED QUERY LANGUAGE)
SQL Server - Stored Procedures
VERİTABANI YÖNETİM SİSTEMLERİ 6-SQL Server-3-DDL
Sunum transkripti:

Veri Tabanı Yönetim Sistemleri 1 Ders 10 VTYS Yaşam Döngüsü ve DDL Yrd. Doç. Dr. Altan MESUT Trakya Üniversitesi Bilgisayar Mühendisliği Bölümü

VTYS Yaşam Döngüsü 1 Analiz ve Tasarım 2 Fiziksel Yaratım 3 Dönüştürme 4 Entegrasyon 5 İşlemler 6 Değişim ve Yaşatma

1) Analiz ve Tasarım Örgütün gereksinimlerini belirleme Veri tabanı Kavramsal Modelini geliştirme Varlık-İlişki çizelgeleri Mantıksal Modeli seçme ve geliştirme İlişkisel, Ağ, Hiyerarşik, Nesne Tabanlı, …

2) Fiziksel Yaratım Veri tabanı Fiziksel Modelini geliştirme Veri formatları ve türleri Dizinlerin belirlenmesi, vs.. Prototip veri tabanının yüklenmesi ve test edilmesi Bilgi tutarlılığı için sınırlamaların (constraints) kararlaştırılması ve tanımlanması Güvenlik, gizlilik ve erişim denetimlerinin kararlaştırılması ve tanımlanması

3) Dönüştürme Yeni veri tabanını kullanmak için mevcut veri setlerini ve uygulamalarını dönüştürme Eski verileri yeni formatlara dönüştürmek için programlar ve dönüştürme programcıkları (utility) gerekebilir

4) Entegrasyon 3. Adımla örtüşür Yeni veri tabanına dönüştürülmüş uygulamaların ve yeni uygulamaların entegrasyonu

5) İşlemler Tüm uygulamalar tam-ölçekli çalıştırılır Gizlilik, güvenlik ve erişim kontrolü sağlanır Kurtarma ve Yedekleme prosedürleri kurulmalı ve kullanılmalıdır

6) Değişim ve Yaşatma Değişim, bir yaşam biçimidir. Uygulamalar, veri gerekleri, raporlar vs. yeni gereksinimlere göre değişir. Veri tabanı ve uygulamaların değişiklik gereksinimlerini karşılaması için değiştirilmeleri gerekir.

1 Analiz ve Tasarım Gereksinim Analizi Bir sistemin analizi yapılmış ve bir veri tabanı kurulması önerilmiş ise, önce veri tabanından beklenen amaçların ve işlevlerin, donanım-yazılım ve personel gereksinimlerinin, kullanılacak veri miktarı ve ilişkilerin saptanması gerekmektedir. Bu bilgiler gereksinim analizi yolu ile elde edilir. Sistemin inceleme ve analiz aşamasında belirlenen gereksinimler, bir veri tabanı geliştirme ekibi tarafından ayrıntılı incelenir.

1 Analiz ve Tasarım Gereksinim Analizi Veri tabanı uygulamalarından yararlananlar kullanıcılardır. Bu nedenle veri tabanı gereksinim analizinde kullanıcıların görüşlerine de başvurulmalıdır. Özellikle girdiler-çıktılar ve işlem sınırlamaları bakımından gereksinimleri sorulmalıdır. Veri tabanı geliştirme ekibi, formlar, raporlar ve menüler (seçenekler) için örnekler hazırlayarak, bunlar üzerinde kullanıcıların görüşlerini almalıdır.

1 Analiz ve Tasarım Gereksinim Analizi Eğer kullanıcıların görüşlerinde çelişkili ve tutarsız noktalar varsa (iki kullanıcı birbirinden farklı isteklerde bulunabilir) düzeltilir. Gereksinim analizi sonunda belirlenen gereksinimler; metin, veri akış çizelgeleri, varlık-ilişki çizelgeleri, nesne çizelgeleri şeklinde olabilmektedir. Gereksinim belgeleri yeniden gözden geçirilip gerekli düzeltmeler yapıldıktan sonra kullanıcıların ve proje sahibinin onayına sunulmaktadır.

Veri Modelinin Değerlendirilmesi 1 Analiz ve Tasarım Veri Modelinin Değerlendirilmesi Kullanıcıların ve proje sahibinin anlayabileceği şekilde hazırlanan gereksinim modeli, veri tabanı uzmanları tarafından yeniden yorumlanmakta, veri tabanı tasarımında kullanılabilecek bir modele (Kavramsal Model) dönüştürülmektedir.

Değerlendirmenin Aşamaları 1 Analiz ve Tasarım Değerlendirmenin Aşamaları Değişik uygulama sistemi yapılarının (mainframe veya mini ya da mikro bilgisayarlardan oluşturulan bilgisayar ağları) tanımlanması ve içlerinden birinin seçimi Uygulamanın yapılabilirliğinin (fizibilitesinin) yeniden belirlenmesi Seçilen çözümde bütün gereksinimlerin yer aldığının denetlenmesi ve eksikler var ise, ilerde eklenmesi yada elenmesi gereğinin karşılaştırılması

Değerlendirmenin Önemi 1 Analiz ve Tasarım Değerlendirmenin Önemi Hata ve eksiklerin değerlendirme aşamasında bulunup düzeltilmesi kolay ve ucuzdur. Oysa daha sonraki aşamalarda fark edilmesi halinde geriye dönülmesi büyük iş kaybına ve gidere yol açmaktadır. Bu aşamanın sonunda; sistem mimarisi, bir dizi yapılabilir ve maliyeti uygun gereksinimler ve kavramsal veri modeli elde edilir. Bu sonuçlar onaylaması için proje sahibine sunulur ve tasarım aşamasına girdi olarak aktarılır.

Kavramsal Model Geliştirme 1 Analiz ve Tasarım Kavramsal Model Geliştirme Gereksinim analizi ve değerlendirilmesi aşamasında, varlıkların ve aralarındaki ilişkilerin belirlenmesi ve tanımlanması işlemi Varlık-İlişki Modeli ile kavramsal olarak hazırlanmaktadır. Varlık İlişki Çizelgeleri öğelerin anlamlarını ve birbiriyle ilişkilerini belirli bir veri tabanı sisteminden ya da kurulum ayrıntılarından bağımsız olarak gösterir.

Kavramsal Model Geliştirme 1 Analiz ve Tasarım Kavramsal Model Geliştirme Tüm uygulamaların ortak gereksinimlerini birleştirme Hangi Varlıkların kullanılacağını kararlaştırma Varlık: Hakkında bilgi tutulan nesne Varlıkların Niteliklerini belirleme Varlığı tekil olarak belirleyen anahtar nitelik(ler) de belirlenmelidir Varlıklar arasındaki İlişkileri belirleme Varlıklar birbiriyle nasıl etkileşiyor? İlişkilerin Niteliklerini belirleme

Mantıksal Model Geliştirme 1 Analiz ve Tasarım Mantıksal Model Geliştirme Varlık-ilişki modeli ile kavramsal olarak tanımlanan veritabanı, seçilen VTYS ile uyumlu olacak şekilde uyarlanır, yani ilişkisel veri modeli gibi bir mantıksal modele dönüştürülür. Gereksiz bilgi tekrarını, bilginin kaybını veya yetersizliğini önlemek için ayrıca bir de normalleştirme işlemi uygulanarak ilişkiler normal forma getirilmelidir.

2 Fiziksel Yaratım Fiziksel (İç) Model Fiziksel tasarımın amacı en az giderle en uygun performansın sağlanmasıdır. Fiziksel tasarımın dört temel aşaması vardır: Veri Gösteriminin Belirlenmesi Erişim Yöntemlerinin Seçimi Verinin Dış Belleklere Atanması Veri Tabanının Yüklenmesi ve Tekrar Düzenlenmesi

Veri Gösteriminin Belirlenmesi 2 Fiziksel Yaratım Veri Gösteriminin Belirlenmesi Mantıksal tasarım sırasında oluşturulan modeldeki veri öğelerinin tipi ve uzunluğu gibi fiziksel özellikleri kararlaştırılmalıdır. Ayrıca, veri dosyalarının boyutları ve veri setleri saptanmalıdır. Veri tabanı tasarımcısı, veri tanımlama dili (DDL) kullanarak veri gösterimini ayrıntılı olarak belgelendirir.

Erişim Yöntemlerinin Seçimi 2 Fiziksel Yaratım Erişim Yöntemlerinin Seçimi Erişim yöntemleri, VTYS’ne bağlı olduğu için belirlidir. Yine de veri tabanındaki her bir kayda erişilecek yol saptanmalıdır. Veri tabanına kendi anahtarı ile doğrudan erişebilen kayıt tipleri, başka kayıtların göstergeleri yada indeksler aracılığı ile erişilebilenlerden ayırt edilmelidir.

Verinin Dış Belleklere Atanması 2 Fiziksel Yaratım Verinin Dış Belleklere Atanması Erişim yöntemleri ile tanımlanmış olan her kaydın ve kütüğün fiziksel araçlarda, yani dış belleklerde saklanacağı yerin belirlenmesi gerekir. Atamada çok kullanılan veriye öncelik verilmesi yada en büyük olasılığı sağlayan veri düzeninin bellekte bir araya getirilmesi (kümeleme-clustering) performansı arttırır.

Veri Tabanının Yüklenmesi ve Tekrar Düzenlenmesi 2 Fiziksel Yaratım Veri Tabanının Yüklenmesi ve Tekrar Düzenlenmesi Yükleme, bir veri tabanı yükleme programı (SQL script) oluşturularak, yada yardımcı bir program kullanılarak gerçekleştirilir. Tekrar düzenlenmeyi gerektirebilecek nedenler: Yeni veri öğelerinin veya kayıt tiplerinin ortaya çıkması (mantıksal tasarım da tekrar düzenlenmeli) Yeni işlemlerin gerekmesi (sadece fiziksel tasarım tekrar düzenlenir) Veri tabanını değiştirmek yoluyla işlem etkinliğinin arttırılması (sadece fiziksel tasarım tekrar düzenlenir)

Veri Tabanının Tamamlanması Uygulama programlarının tamamlanması Uygulama programları (dış modeller) aslında mantıksal model tasarlanırken tasarlanırlar. Bu aşamada kullanıcı arabirimleri de (form yapıları, raporlar, …) tasarlanarak program tamamlanır. Veri tabanının ve uygulama programlarının doğruluğunun, bütünlüğünün ve performansının test edilmesi Dokümantasyonun hazırlanması

Veri Tabanının İşletilmesi ve Yönetilmesi 5 İşlemler Veri Tabanının İşletilmesi ve Yönetilmesi Her sistem gibi veri tabanı sistemi de ne kadar mükemmel tasarlanmış olursa olsun, kötü işletilmesi halinde sorunlar ortaya çıkabilmektedir. Aşağıdaki durumlarda uygulanacak yöntemler mutlaka belirlenmelidir: Normal ve anormal durumlarda sistemin kapatılması Başarısızlık halinde kurtarma (recovery) Veri tabanının yedeklenmesi ve onarılması

Veri Sözlüğü Veri sözlüğü (sistem kataloğu) veri hakkında veri (metadata) içerdiği için veri tabanının veri tabanı olarak tanımlanabilir. Veri sözlüğünde her ilişki şeması (tablo) için; şemanın ve içerdiği niteliklerin adları, niteliklerin etki alanları, ilişki anahtarı, bütünlük sınırları ve eğer tanımlandıysa görünüm (view) tanımları saklanmaktadır.

Veri Sözlüğünde Saklanan Diğer Bilgiler İlişki şemalarının indeksleri ile ilgili bilgiler (indekslenen özellikler, indeks tipleri) Çoğu sistemde yetkili kullanıcıların adları ve durumları Hiyerarşik veri modeli gibi yüksek düzeyli modellerde her ilişki şemasındaki sıra sayısı ve uygulanan saklama şekli (bloklu-bloksuz)

Veri Sözlüğünde Saklanan Fiziksel Bilgiler Veri öğesinin tipi (sayı, karakter, tarih, …) Karakter ise uzunluğu Sayı ise tipi (tam sayı, ondalıklı sayı, …) Tarih ise biçimi (mm.dd.yyyy, …) Kullanılacak araçlar (disk, teyp, …) Veri tabanının saklanacağı birimler (c:\, …) Erişim denetimi …

Veri Sözlüğü Örneği sistem-katalog-şeması (şema-adı, niteliklerinin-sayısı) nitelik-şeması (nitelik-adı, şema-adı, etki-alanı-tipi, yeri) kullanıcı-şeması (kullanıcı-adı, şifresi, grubu) indeks-şeması (indeks-adı, tipi, özellikleri) görünüm-şeması (görünüm-adı, tanımı) kullanıcı-grubu-şeması (…)

SQL Server'da Veri Sözlüğü ile ilgili örnek sorgular select * from sys.databases select * from sysusers select * from sysobjects where name in ('Öğrenciler', 'Notlar', 'Dersler') select * from sysobjects where name like 'PK%' or name like 'FK%' select * from syscolumns where id = (select id from sysobjects where name = 'Öğrenciler')

SQL Server'da Sistem Veritabanları Master: Sistem sözlüğünün saklandığı vt. Diğer veritabanları ve dosyalar, sistem düzeyinde kullanıcılar, prosedür ve fonksiyonlar gibi bilgiler saklanır. Her instance için ayrı bir master vt vardır. Model: yeni bir vt oluşturulurken örnek alınan vt. MSDB: SQL Server Agent servisinin yaptığı işlemlere ait bilgilerin tutulduğu vt. TempDB: SQL Servisi başlarken model vt örnek alınarak oluşturulan geçici vt. Order by kullanıldığında sıralanacak kayıtlar, indeks oluştururken yapılan ara işlemler, … bu vt altında saklanır.

Data Definition Language (DDL) Veri Tanımlama Dili (Data Definition Language) veritabanındaki nesneleri yaratmak için kullanılan CREATE, yok etmek için kullanılan DROP ve nesne üzerinde değişiklik işlemleri için kullanılan ALTER komutlarını içerir. DDL komutlarını kullanma yetkisi veritabanının ve tüm nesnelerin yaratılmasından sorumlu olan kişilere (DBA gibi) verilir.

Önemli Not SQL'de kullanılan SELECT komutu ve DML komutları (INSERT, DELETE, UPDATE) genellikle tüm VTYS’lerde aynı şekilde kullanılır. DDL (CREATE, DROP, ALTER) ve DCL (GRANT, REVOKE) komutlarında ise bazı farklılıklar vardır. Örneğin SQL Server’da önce bir LOGIN nesnesi yaratılır, daha sonra yaratılan bir kullanıcı (USER) bu LOGIN nesnesi ile ilişkilendirilir. Dolayısı ile SQL Server’daki “CREATE USER” komutunun yazımı ile ORACLE’daki yazım farklıdır. Bu derste ve sonraki derslerde verilecek olan tüm DDL ve DCL komutları SQL Server’a göre verilmiştir.

Veritabanı İşlemleri Veritabanı yaratma: CREATE DATABASE yeniDB Veritabanı yok etme: DROP DATABASE yeniDB Veritabanı üzerinde değişiklik yapma: ALTER DATABASE yeniDB SET AUTO_SHRINK OFF Veritabanı model veritabanının kopyası gibi oluşturulur Veritabanı kullanımda ise yok edilemez Veritabanının boyutunun otomatik olarak küçülmesi özelliğini kapatma

Tablo Yaratma USE yeniDB; CREATE TABLE Bolumler( BolumNo numeric(2) PRIMARY KEY, BolumAdi varchar(20) NOT NULL, Sehir varchar(20) ) Hangi veritabanı altında tablo yaratılacak ise öncelikle o veritabanı USE komutu ile seçilir Bolumler tablosu dbo şeması altında yaratılır. "dbo.Bolumler" şeklinde de yazılabilirdi. numeric ile decimal veri tipleri aynıdır (ORACLE'da number). Boyut olarak precision (virgülden önce ve sonra toplam basamak sayısı) ve scale (virgülden sonraki kısmı) verilir. Tek değer verildi ise o kadar basamağı olan bir tamsayıyı ifade eder. Precision en fazla 38 olabilir, varsayılan değer ise (18,0)'dır. decimal [ (p[ ,s] )] numeric[ (p[ ,s] )]

Bütünlük Kısıtlamaları (Integrity Constraints) Veri bütünlüğünü sağlamak için 5 farklı bütünlük kısıtlaması tanımlanabilir: Primary Key, Foreign Key, Unique, Not Null, Check Kısıtlamalar tablolar oluşturulurken tanımlanabileceği gibi tablolar oluşturulduktan sonra da tanımlanabilirler. Ancak tabloya önceden girilmiş olan veriler varsa, bu verilerin tanımladığımız kısıtlamaya uyması gerekir.

Tablo Yaratma (tüm kısıtlamalar ile) CREATE TABLE Personel( PerNo numeric CONSTRAINT pk_Personel PRIMARY KEY, Ad varchar(10) CONSTRAINT nn_Ad NOT NULL, Soyad varchar(10) CONSTRAINT nn_Soyad NOT NULL CONSTRAINT upper_Soyad CHECK(Soyad=UPPER(Soyad)), Gorev varchar(9), Yonetici numeric CONSTRAINT fk_yonetici REFERENCES Personel(PerNo), BaslamaTarihi date DEFAULT getdate(), Maas numeric(10,2) CONSTRAINT ck_Maas CHECK(Maas>900), Komisyon numeric(9,0) DEFAULT NULL, BolumNo numeric(2) CONSTRAINT nn_BolumNo NOT NULL CONSTRAINT fk_BolumNo REFERENCES Bolumler(BolumNo) ) Varsayılan değer sistem tarihi Bu örnekte her bütünlük kısıtlamasına isim de verilmiştir. Tabloyu yaratma script'i SQL Server tarafından oluşturulduğunda constraint tanımları sonradan verilir.

Tablo ve Sütun Kısıtlamaları Eğer kısıtlama sütun tanımının yanında verilirse sütun kısıtlaması, tüm sütunlar tanımlandıktan sonra CONSTRAINT ile başlayan ifadede verilirse tablo kısıtlaması olarak adlandırılır. CREATE TABLE Tedarikci_Urun ( TedarikciNo NUMBER NOT NULL, UrunNo NUMBER NOT NULL, Miktar NUMBER NOT NULL DEFAULT 0, CONSTRAINT pk_TedUr PRIMARY KEY (TedarikciNo, UrunNo) ) Column Constraint Table Constraint PK iki sütun ile olacaksa bu şekilde tanımlanması şart. SQL Server tarafından oluşturulan script'ilerde tek sütun bile olsa PK bu şekilde kullanılır.

Primary Key Constraint Birincil anahtar kısıtlayıcısı, bir tabloya girilen her bir kaydın belirtilen sütun değeri olarak diğer kayıtlardan ayırmak üzere tekil ve farklı bir değer girmeye zorlar. Bir tabloda sadece bir tane Primary Key Constraint tanımlanabilir ve bu sütun (veya sütunlar) asla NULL değer kabul etmez.

Foreign Key Constraint Bir tablonun belli sütununa girilecek değerleri başka bir tablonun indekslerle tekilleştirilmiş bir sütunundaki değer kümesi ile sınırlandırmak için kullanılır. CREATE TABLE tablo_ismi ( sütun tanımlamaları..., CONSTRAINT kısıtlama-ismi FOREIGN KEY(sütun-ismi) REFERENCES tablo-ismi(sütun-ismi) ) Personel tablosunu yaratırken yaptığımız gibi, bir sütun tanımından sonra "sütun kısıtlaması" olarak yaparsanız FOREIGN KEY (sütun-ismi) kısmı yazılmaz.

Unique Constraint Bazı durumlarda, bir tabloda birincil anahtar alanın yanı sıra başka bazı sütunlardaki verilerin de tekrarlanmaması istenebilir. Bu türden alanlar için Unique Constraint tanımı yapılır. Unique Constraint’i, Primary Key Constraint’ten ayıran en önemli iki özellik, Unique bir tabloda birden fazla olabilir. Ancak Primary Key tablo başına sadece bir adet alan olabilir. Unique Constraint tanımlı bir alan NULL değerler kabul edebilir. Tanımlanması Primary Key ile benzerdir (hem sütun hem de tablo düzeyinde tanımlarken sadece Primary Key yerine Unique yazılması yeterlidir)

Not Null Constraint Eğer bir sütun için her zaman veri girilmesi zorunlu olsun isteniyorsa “Boş Olamaz Kısıtlayıcısı” kullanılır. SQL Server tabloyu yaratan scripti oluştururken hem boş olabilenleri hem de olamayanları belirtir (her sütun tanımının yanına ya NULL ya da NOT NULL yazar). CREATE TABLE Personel( PerNo numeric(18, 0) NOT NULL, Ad varchar(10) NOT NULL, Soyad varchar(10) NOT NULL, Gorev varchar(9) NULL, Yonetici numeric(18, 0) NULL, … )

Check Constraint Bir sütuna girilebilecek değerleri, belli kıyaslara karşı kontrol eden kısıtlayıcı türüdür ve üç farklı amaç için kullanılabilir: Bir sütuna girilebilecek değerleri belli bir küme ile kısıtlamak için Bir sütuna girilebilecek değerleri belli bir formata uygunluğunu denetlemek için Bir sütuna girilebilecek değerleri, başka sütunlar üstünden bir kıyas ile denetlemek için CREATE TABLE tablo-ismi( sütun tanımlamaları..., CONSTRAINT kısıtlama-ismi CHECK(ifade) FOR sütun-ismi ) Personel tablosunu yaratırken sütun düzeyinde yapmıştık (FOR gereksiz): Maas numeric(10,2) CONSTRAINT ck_Maas CHECK(Maas>900)

İndeks Kullanımı İndeksler verilere hızlı erişim amacıyla kullanılır. OLAP sistemlerde mümkün olduğu kadar çok indeks kullanılır, OLTP’de ise fazlası uygulamaya zarar verebilir (özellikle çok sık güncellenen tablolarda). Primary Key’ler otomatik olarak indekslenir, Foreign Key’ler de genellikle indekslenmesi gereken alanlardır. WHERE koşulu ile seçilen sütunlar, aynı sırada indeks yapılmalıdır.

Ne zaman indeks kullanmalı? Bir veya daha fazla sayıda sütun sıklıkla bir where koşulunda yada tablo birleştirme işleminde kullanılıyorsa indeks kullanmak hızı arttıracaktır. Eğer sorgunun sonucu tablodaki satırların %2 yada daha azı gibi küçük bir bölümünü döndürecek ise indeks kullanımı faydalı olacaktır. Sütundaki değerlerin çoğu NULL ise indeks kullanımı iyi sonuç verir. Sütundaki değerler büyük ölçüde birbirini tekrar eden değerler ise (cinsiyet sütununda sadece iki farklı değer olması gibi) indeks kullanmanın anlamı yoktur. Tablo çok sık güncelleniyorsa, indeksin de güncellenmesi gerekeceği için zaman kaybı yaratır.

İndeks Yaratma Aşağıdaki iki indeks aynı anda mevcut olabilir, çünkü sütun sıraları farklıdır. CREATE INDEX Per_index1 ON Personel(Soyad, Gorev); CREATE INDEX Per_index2 ON Personel(Gorev, Soyad);

View (Görüntü) Gerçekte olmayan tablolardır. Sadece SELECT ifadesinden ibarettirler. Neden view kullanılır? Veri erişimini sınırlamak için Karmaşık sorguları kolay hale getirmek için Veri bağımsızlığını sağlamak için Aynı verinin farklı görünümlerini sunmak için Eğer Primary Key View’da yer alıyorsa DML (insert, delete, update) işlemleri o view üzerinde uygulanabilir.

View Yaratma CREATE VIEW Personel_view AS SELECT PerNo, Ad, Soyad, Maas, Sehir FROM Personel P, Bolumler B WHERE P.BolumNo = B.BolumNo AND B.BolumNo = 10 GO CREATE VIEW Bolum20 AS SELECT Ad, Soyad, Maas*12 [Yıllık Maas] FROM Personel WHERE BolumNo = 20 GO komutu işlem kümesini (batch) bitirip, önceki GO'dan itibaren tüm komutları sunucuya gönderir. SQL Server kendi oluşturduğu scriptlerde her komut sonrası GO kullanır. SQLCMD üzerinde GO kullanımı ifadenin çalıştırılmasını sağlar (ORACLE'da ifadeyi ; ile bitirip Enter'a basma yerine burada GO yazıp Enter'a basma var).

Synonym Tablo, view, sequence, procedure, function, package veya başka bir synonym için alternatif bir isimdir. CREATE SYNONYM per FOR Personel;

ALTER (Tanımda Değişiklik Yapma) Tabloya sütun ekleme ALTER TABLE Personel ADD Adres varchar(250) Tabloya kısıtlama ekleme ADD CONSTRAINT fk_BolumNo FOREIGN KEY(BolumNo) REFERENCES Bolumler(BolumNo) ADD sonrasındaki kısıtlama tanımı, tablo seviyesindeki kısıtlama tanımı ile aynıdır

DROP (Yok Etme) Tüm veritabanı nesnelerini yok etmek için DROP komutu kullanılır. Sadece nesnenin türü ve adı yazılır: DROP TABLE Personel DROP INDEX Per_index2 ON Personel ALTER içinde ADD'in tersi olarak ta DROP kullanılır: ALTER TABLE Personel DROP COLUMN Adres