Veri Taban* Sisteminin Kurulmas

advertisement
Veri Tabanı Yönetim Sistemleri 1
Ders 10
VTYS Yaşam Döngüsü,
Veri Sözlüğü ve DDL
Yrd. Doç. Dr. Altan MESUT
Trakya Üniversitesi
Bilgisayar Mühendisliği Bölümü
VTYS Yaşam Döngüsü
1
6
Analiz ve
Tasarım
2
Değişim
ve
Yaşatma
Fiziksel
Yaratım
3
5
Dönüştü
rme
İşlemler
4
Entegras
yon
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.
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.
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ı
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.
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.
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
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
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.
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.
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.
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ı
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
sorgular
•
•
•
•
select * from sys.databases
select * from sysusers
select * from sys.tables
select * from sysobjects where name in
('Öğrenciler', 'Notlar', 'Dersler')
• select * from syscolumns where id = (select id
from sysobjects where name = 'Öğrenciler')
sys.tables altında sadece tablolar, sys.objects altında ise tüm nesneler yer alır.
sysobjects ile sys.objects, syscolumns ile de sys.columns farklı kolonlara sahiptirler.
Bazı kolonların ise sadece isimleri farklıdır: Yukarıdaki sorguda sys.objects ve
sys.columns kullanırsanız id yerine object_id yazmalısınız.
SQL Server'da
Sistem Veritabanları
• Master: Sistem veri 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:
Veritabanı model
CREATE DATABASE yeniDB veritabanının kopyası
gibi oluşturulur
• Veritabanı yok etme:
Veritabanı kullanımda ise
DROP DATABASE yeniDB
yok edilemez
• Veritabanı üzerinde değişiklik yapma:
Veritabanının boyutunun
ALTER DATABASE yeniDB
otomatik olarak
küçülmesi özelliğini
SET AUTO_SHRINK OFF
kapatma
Tablo Yaratma
USE yeniDB;
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.
CREATE TABLE Bolumler(
BolumNo numeric(2) PRIMARY KEY,
BolumAdi varchar(20) NOT NULL,
Sehir varchar(20)
)
numeric ile decimal veri tipleri aynıdır (ORACLE'da number).
decimal [ (p[ ,s] )]
numeric[ (p[ ,s] )]
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.
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
Varsayılan değer
REFERENCES Personel(PerNo),
sistem tarihi
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)
)
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 numeric NOT NULL, Column Constraint
UrunNo numeric NOT NULL,
Miktar numeric NOT NULL DEFAULT 0,
CONSTRAINT pk_TedUr PRIMARY KEY Table
(TedarikciNo, UrunNo) 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 olabilir (ama çok alandan oluşabilir).
– 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ünüm)
• Access'teki sorgu nesnesi gibi, gösterdiği veriyi gerçekte
saklamayan sadece SELECT ifadesini saklayan nesnedir.
• Neden view kullanılır?
1.
2.
3.
4.
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 komutu işlem kümesini (batch)
bitirip, önceki GO'dan itibaren tüm
GO
komutları sunucuya gönderir.
CREATE VIEW Bolum20 AS
SELECT Ad, Soyad, Maas*12 [Yıllık Maas]
FROM Personel
SQL Server kendi oluşturduğu scriptlerde her
WHERE BolumNo = 20
komut sonrası GO kullanır. SQLCMD üzerinde
GO
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
ALTER TABLE Personel
ADD sonrasındaki kısıtlama
ADD CONSTRAINT fk_BolumNo tanımı, tablo seviyesindeki
kısıtlama tanımı ile aynıdır
FOREIGN KEY(BolumNo)
REFERENCES Bolumler(BolumNo)
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
Download