|
VERİ TABANI TASARIMI VE T-SQL KODLARI
ÖRNEK : Bir özgeçmiş uygulamasında kişileri ve çalıştığı firmaları tutan veritabanı
yapısını oluşturalım.
|
CREATE
DATABASE Ozgecmis
ON
PRIMARY
(
NAME
= 'Ozgecmis',
FILENAME
= 'C:\Data\Ozgecmis.mdf',
SIZE
= 3072KB,
MAXSIZE
= UNLIMITED,
FILEGROWTH
= 1024KB
)
LOG
ON
(
NAME
= 'Ozgecmis_log',
FILENAME
= 'C:\Data\Ozgecmis_log.ldf',
SIZE
= 1024KB,
MAXSIZE
= 2048GB,
FILEGROWTH
= 10%
}
CREATE
TABLE Sirket
(
Id
INT IDENTITY(1,1),
Ad
NVARCHAR(50) NOT
NULL,
Adres
NVARCHAR(100) NULL,
CONSTRAINT
PK_SirketID PRIMARY KEY(Id)
)
CREATE
TABLE Kisi
(
Id
INT
IDENTITY(1,1),
Ad
NVARCHAR(20)
NOT NULL,
Soyad
NVARCHAR(20) NOT
NULL,
DogumTarih
SMALLDATETIME NULL,
CONSTRAINT
PK_KisiId PRIMARY KEY(Id)
)
CREATE
TABLE Tecrube
(
Id
INT
IDENTITY(1,1),
KisiId
INT,
SirketId
INT,
BasTarih
SMALLDATETIME,
BitTarih
SMALLDATETIME,
Unvan
NVARCHAR(50),
CONSTRAINT
PK_TecrubeId PRIMARY KEY(Id),
CONSTRAINT
FK_KisiId FOREIGN KEY(KisiId)
REFERENCES Kisi(Id),
CONSTRAINT
FK_SirketId FOREIGN KEY(SirketId)
REFERENCES Sirket(Id)
)
|
Kisi tablosuna Cinsiyet ve Telefon
numarası bilgilerini ekleyelim.Yalnız eklerken telefon numarasının 11 rakamdan oluşmasını
garanti altına alalım.Eğer Kişi Cinsiyeti belirtilmez ise Default olarak ‘E’ değeri
tutulsun.Cinsiyet için 2 değer alınsın(‘E’ ve ‘K’)
|
-- Cinsiyet kolonu ekleniyor
ALTER
TABLE Kisi
ADD
Cinsiyet CHAR(1)
-- Cinsiyet kolonu DEFAULT CONSTRAINT ekleniyor
ALTER
TABLE Kisi
ADD
CONSTRAINT DC_Cinsiyet DEFAULT
'E' FOR Cinsiyet
-- TelNo kolonu ekleniyor.Fakat 11 karakter olması gerekirken
-- yanlışlıkla 10 karakter olarak oluþturuluyor.
ALTER
TABLE Kisi
ADD
TelNo CHAR(10)
-- TelNo kolonu değiştiriliyor
ALTER
TABLE Kisi
ALTER
COLUMN TelNo CHAR(11)
-- TelNo kolonu için CHECK Constraint ekleniyor.
ALTER
TABLE Kisi
ADD
CONSTRAINT CC_TelNo CHECK
(LEN(TelNo)=11)
|
ÖRNEK: Bir futbol ligi uygulamasında
takımları,futbolcuları,hakemleri,maçları ve sonuçlarını tutabileceğimiz veri tabanı
yapısını oluşturalım.
ÖRNEK UYGULAMA:
Krema, bilgisayar ve elektronik
malzemeler satan Türkiye çağında bir firmadır.Öyle ki bu firmanın her bir şehirde
farklı farklı yerlerde mağazaları mevcuttur.Krema firması bir bilgisayar programı
yapıp,program içerisinde mağazalarını,mağazalarda çalışan personelininin bilgilerini,stokda
bulunan ürünlerini ve sayılarını,yapılan satışları tutabilmek istiyor.Yapılan yazılım
hangi ürün hangi mağazada,hangi personel tarafından satılmıştır gibi bilgileride
veri tabanında tutmalıdır.İleride şirket müdürü,ayrıntılı raporlamalar yapabilmelidir.Şirket
Müdürünün ileride alabilmeyi istediği rapolarlamalar şunlardır;
·
Her bir mağazadaki çalışan elemanların listesi(Ad,Soyad,Telefon,Doğum Tarihi,Cinsiyet
bilgileriyle)
·
Sistemde bulunan bütün ürünleri ve stoktaki miktarlarını.
·
Sistemdeki herhangi bir ürünün sırasıyla hangi kategoride olduğu.Örneğin LT20 markalı
laptop için bir arama başlatıldığında raporda,müdür şöyle bir çıktı alabilmelidir;
o
Bilgisayarlar
->Dizüstü -> Tablet PC -> LG -> LT Serisi -> LT20
·
En çok satış yapan(para miktarı açısından) ilk 10-20-30 yani n elemanın listesi
ve çalıştığı mağazaları
·
En fazla gelir elde edilen satış ve bu satışta satılan bütün ürünler ve fiyatları.
Not: Veri tabanı yapısı gerçekleştirilirken kısıtlayıcılarda düşünülecek,yazılım
tarafındaki kontrolller gözardı edilerek,sağlam bir veri tabanı oluşturulacaktır.
Not: Veri tabanı yapısında,Schema’lar
kullanılacaktır.
|
CREATE
DATABASE Krema
ON
PRIMARY
(
NAME='Krema',
FILENAME='C:\Data\KremaPrimary.mdf',
SIZE=100MB,
MAXSIZE=UNLIMITED,
FILEGROWTH=20MB
),
FILEGROUP
FG1
(
NAME='KremaData1',
FILENAME='D:\Data\KremaData1.ndf',
SIZE=200MB,
MAXSIZE=1200,
FILEGROWTH=100
),
(
NAME='KremaData2',
FILENAME='D:\Data\KremaData2.ndf',
SIZE=200MB,
MAXSIZE=1200,
FILEGROWTH=100
),
FILEGROUP
FGHistory
(
NAME='KremaHistory',
FILENAME='E:\Data\KremaHistory.ndf',
SIZE=200MB,
MAXSIZE=500,
FILEGROWTH=50
)
LOG
ON
(
NAME='Log1',
FILENAME='F:\Data\KremaLog.ldf',
SIZE=300MB,
MAXSIZE=800,
FILEGROWTH=100
)
|
|