SQL Server 2005 - Hızlı El Kitabı
Skip Navigation Links.

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

)