Veri Tabanı:Bir çok alanda hizmet vermek amacıyla birbiriyle ilişkili

advertisement
1
1.. İİÇ
ÇİİN
ND
DE
EK
KİİLLE
ER
R
1. İÇİNDEKİLER ..................................................................................... 1
2. VERİ TABANI ..................................................................................... 3
2.1. Veri Tabanı Yönetim Sistemleri Sınıflandırma .................................................................. 4
2.1.1. Veri Modeline göre ................................................................................................................................. 4
2.1.2. Kullanıcı sayısına göre veri tabanları ...................................................................................................... 4
2.2. Neden Veri Tabanı Kullanılır? ........................................................................................... 4
2.3. Veri tabanının faydaları ...................................................................................................... 5
2.4. Veri Tabanı Yönetim Sistemleri (Programları) .................................................................. 6
2.5. Hangi veri tabanını seçmeli?............................................................................................... 6
2.6. Veri Tabanı Oluşturulurken Dikkat Edilecek Hususlar ...................................................... 7
3. VERİ TABANI YAPISI ....................................................................... 8
3.1. Veri Tabanında Nesneler .................................................................................................... 8
3.2. ACCESS Veri Tabanında Tablo Oluşturma ....................................................................... 9
3.3. Tabloda Kavramlar ve Özellikleri .................................................................................... 10
3.3.1. Sütun (Alan) Özellikleri ........................................................................................................................ 11
3.3.1.1. Sütun (Alan) Adı .......................................................................................................................... 11
3.3.1.2. Alan Tipi ...................................................................................................................................... 11
3.3.1.3. Geçerlilik Kuralı .......................................................................................................................... 15
3.3.1.4. Geçerlilik Metni ........................................................................................................................... 16
3.3.1.5. Varsayılan Değer ......................................................................................................................... 16
3.3.1.6. Gerekli ......................................................................................................................................... 16
3.3.1.7. Sıralı ............................................................................................................................................ 16
3.3.1.8. Unicode Sıkıştırma ....................................................................................................................... 17
3.3.1.9. Giriş Maskesi ............................................................................................................................... 17
3.4. Access’te Tablolara Veri Girişi ........................................................................................ 18
3.5. Veri Tabanında Anahtar.................................................................................................... 19
3.5.1. Tekil Anahtar ........................................................................................................................................ 20
3.5.2. Birincil Anahtar .................................................................................................................................... 21
3.5.3. Yabancı (Uzak) Anahtar ....................................................................................................................... 23
3.5.4. Örnekler ................................................................................................................................................ 23
3.6. Veri Tabanında Tabloları İlişkilendirme .......................................................................... 23
3.6.1. İlişkilendirme Türleri ............................................................................................................................ 24
3.6.2. İlişkilendirme için bir örnek .................................................................................................................. 26
3.6.3. İlişkilendirmenin Yapılması .................................................................................................................. 27
3.7. Sorgular ............................................................................................................................. 28
3.7.1. Sıralı Gösterim ...................................................................................................................................... 29
3.7.2. Koşul Belirterek Sorgu Oluşturma ........................................................................................................ 29
3.7.3. Bazı Fonksiyonlar ve İşlemler .............................................................................................................. 31
3.7.4. Gruplama .............................................................................................................................................. 33
3.7.5. Grup Fonksiyonları ............................................................................................................................... 33
3.7.6. Koşullu Hazır Fonksiyon Kullanımı ..................................................................................................... 35
3.7.7. Sorguda Çok tablo kullanımı ................................................................................................................ 37
3.7.8. Örnek sorular ve tasarımları .................................................................................................................. 37
4. Veri Tabanı En İyileştirme (Normalizasyon) ..................................... 42
4.1. Veri Tabanı Eniyileştirme Kuralları ................................................................................. 44
4.1.1. Alanları Parçalamak .............................................................................................................................. 45
4.1.2. Tablonun tek bir konusu olacak ............................................................................................................ 45
4.1.3. Her tabloda, konusuna uygun birincil anahtar olacak ........................................................................... 48
4.1.4. Tablodaki her alan birincil anahtara bağlı olacak ................................................................................. 48
4.1.5. Eğer birincil anahtar birden çok sütundan oluşuyorsa, tüm alanlar bu birincil anahtar sütunlarına bağlı
olmalıdır ........................................................................................................................................................................ 49
4.1.6. Aynı alan birden fazla tabloda birincil anahtar olamaz ......................................................................... 49
4.1.7. Sütunlara yayılmış aynı türdeki alanlar varsa ayrı bir tabloda saklanmalıdır ....................................... 49
4.1.8. Hücrelere ayrı satırlarda yazılması gereken bilgiler için sütunlar oluşturulmuşsa, tek bir sütun
oluşturulup satırlara yazılmalıdır .................................................................................................................................. 50
4.1.9. Uygun alan tipleri seçilmeli .................................................................................................................. 51
4.1.10. Tablo ve Alan İsimleri ........................................................................................................................ 52
4.2. Veri Tabanı Eniyileştirme Uygulaması ............................................................................ 52
4.3. Bazı Örnekler .................................................................................................................... 65
4.4. Çözülmüş Örnek ............................................................................................................... 67
5. SQL SERVER ..................................................................................... 68
5.1. SQL Server’e Bağlanma ................................................................................................... 68
5.2. SQL Server’de Veri tabanı oluşturma .............................................................................. 70
5.3. SQL Server’de Tablo ........................................................................................................ 71
5.3.1. SQL Server Tablo Özellikleri ............................................................................................................... 72
5.3.1.1. Alan Adı ....................................................................................................................................... 72
5.3.1.2. Alan Tipi ...................................................................................................................................... 73
5.3.1.3. Varsayılan Değer ......................................................................................................................... 74
5.3.1.4. Gerekli ......................................................................................................................................... 74
5.3.1.5. Otomatik Artış.............................................................................................................................. 74
5.3.1.6. Index ............................................................................................................................................ 74
5.4. SQL Server’de İlişkilendirmelerin Yapılması .................................................................. 74
5.5. SQL Server’de Sorgu Hazırlanması ................................................................................. 76
5.5.1. SQL Server Sorgu Tasarımı .................................................................................................................. 76
5.5.2. Sorguda Matematiksel İşlem ve Takma İsim ........................................................................................ 78
5.5.3. Sorguda Sıralama ve Sıralama Önceliği verme ..................................................................................... 78
5.5.4. Sorguda Süzme ve Çoklu Ölçüt Kullanımı ........................................................................................... 79
5.5.5. SQL Server’de Bazı Fonksiyonlar ve İşlemler...................................................................................... 79
5.5.6. Grup Fonksiyonları ............................................................................................................................... 80
5.6. SQL Server’de Stored Procedure ...................................................................................... 82
2
2.. V
VE
ER
Rİİ T
TA
AB
BA
AN
NII
Veri, dağınık bilgi kümesidir. Veri, anlamlı bir şekilde düzenlendiği
zaman yararlı bilgi olur. Bilgiyi elde etmeye yarayan işlenmemiş ham
malzemeye veri denir.
Veri tabanı, birbirleriyle ilişkisi olan verilerin tutulduğu, kullanım
amacına uygun olarak düzenlenmiş veriler topluluğunun mantıksal ve fiziksel
olarak tanımlarının olduğu bilgi depolarıdır. Veri tabanları gerçekte var olan
ve birbirleriyle ilişkileri olan bilgilerden oluşur. Veri tabanı, birbiriyle ilişkili
verilerin tekrara yer vermeden, çok amaçlı kullanımına olanak sağlayacak
şekilde depolanmasını sağlayan yazılımlardır.
Veri tabanı, bir konuyla ilgili çok sayıda kaydın tutulduğu bir bilgi
havuzu olarak nitelendirilebilir. Veri tabanı programları, veri tabanı denilen
bilgi havuzunu oluşturmak ve veri tabanından istenilen bilgiyi istenildiği
şekilde alıp kullanabilmeyi sağlar.
Veri tabanı: Birçok alanda hizmet vermek amacıyla birbiriyle ilişkili
düzenli veriler oluşturmak, düzenlemek, depolama yapmak ve sorgulama
yapmakta kullanılan, verilere doğru ve zamanında ulaşmak amacıyla
oluşturulan yazılımlardır.
Bilgisayar ortamında verilerin kalıcı olarak saklanmasında veri tabanı
dosyaları kullanılmaktadır. Veri tabanı verilerin Harddisk üzerinde saklandığı
bir dosyadır.
Veri tabanı Yönetim Sistemi, veri tabanlarını oluşturmak, tanımlamak
ve veri tabanlarındaki verileri işleyerek yeni bilgiler üretmek için kullanılan
yazılımdır.
Veri tabanı yönetim sistemi programları ile kendi veri tabanınızı
oluşturabilir veya özel uygulamalar geliştirebilirsiniz. Veri tabanı yönetim
sistemleri bilgisayar uzmanı olmayan kişilerin de kendi veri tabanlarını
tasarlayıp veri tabanı uygulamalarını geliştirebilmelerini sağlar.
Şu anda piyasada kullanılan veya geliştirilen, örneğin kayıt ve muhasebe
türündeki programların tümü veri tabanı dosya yapısını kullanırlar. Bu tür
uygulamalar, en basit açıklamayla ham bilgiyi alırlar ve işledikten sonra,
örneğin raporlar şeklinde, kullanıcının hizmetine sunarlar.
22..11.. V
Veerrii T
Taabbaannıı Y
Yöönneettiim
mS
Siisstteem
mlleerrii S
Sıınnııffllaannddıırrm
maa
2
2..1
1..1
1.. V
Veerrii M
Mo
od
deelliin
nee g
gö
örree
Hiyerarşik Veri tabanları: Veri tabanları için kullanılan ilk modeldir.
Bu veri tabanı tipi kişisel bilgisayarlarda kullanılmayan sadece ana bilgisayar
ortamlarında çalışan yazılımlar tarafından kullanılmaktadır. Bu tipteki veri
tabanına örnek IBM tarafından çıkarılan IMS yazılımını verebiliriz.
Hiyerarşik veri tabanında bilgiler bir ağaç yapısında saklanırlar.
Ağ Veri tabanları: 1960 yılında toplanan COCDASYL isimli bilimsel
toplantıdaki veri tabanı çalışma grubu bilim adamlarının ortak çalışmaları ile
hiyerarşik veri tabanlarının yetersizliğini gidermek amacıyla geliştirilmiştir.
Ağ veri tabanları en karmaşık veri tabanı modelidir.
İlişkisel Veri tabanları: 1970’li yıllarda E.F.Codd tarafından
geliştirilmiştir. Bu veri tabanı yönetim sisteminde; veriler tablo şeklinde
saklanır, veri alışverişi için özel işlemler kullanılır ve tablolar arasında
ilişkiler belirlenir. Günümüzde hemen hemen tüm veri tabanı yönetim
sistemleri ilişkisel veri modelini kullanır. Bu modelde veriler basit tablolar
halinde saklanır. Tablolar, satır ve sütunlardan oluşur. Sütunlar bilgi
alanlarını, satırlar ise bilgilerin içeriğini belirlerler.
Düz Dosya Veri Tabanı: Bu tür programlarda tüm veri tabanı tek bir
tabloya sığdırılmaktadır. Bu, birkaç kayıtta ortak olan herhangi bir bilginin her
kayıtta tekrarlanacağı anlamına gelir. dBase, Word ve Excel bu tür
programlara örnektir.
2
2..1
1..2
2.. K
Ku
ullllaan
nııccıı ssaayyııssıın
naa g
gö
örree vveerrii ttaab
baan
nllaarrıı
Tek kullanıcılı ve çok kullanıcılı olmak üzere ikiye ayrılır. Günümüzde
PC tabanlı VTYS’ler da dahil olmak üzere tek kullanıcılı veri tabanı yönetim
sistemi kalmamıştır. Çok kullanıcılı veri tabanı yönetim sistemlerinde ise tek
bir veri tabanına aynı anda çok sayıda kullanıcı erişir.
22..22.. N
Needdeenn V
Veerrii T
Taabbaannıı KKuullllaannııllıırr??
Bilgisayar ortamında verilerin tutulması, saklanması ve erişilmesinde
değişik yöntemler kullanılmaktadır.
Bu yöntemlerden biri verilerin ayrı ayrı dosyalarda gruplanmasıdır. Bu
geleneksel yöntemde veriler gruplara ayrılarak her grup ayrı bir dosyada
saklanmaktadır. Bu yöntemde dosyalara erişim sıralı yada rasgele erişimli
olabilmektedir.
Verilerin bir merkezde tutulması zorunluluğu, verilerin artması, verilere
aynı anda çok sayıda kişinin erişme ihtiyacı gibi sebepler geleneksel yöntemin
yetersiz kalmasına sebep olmuştur. Geleneksel yöntemin yetersizliği veri
tabanlarının geliştirilmesini ve kullanılmasını zorunlu hale getirmiştir.
Geleneksel yöntemlerin sakıncaları:
 Veri tekrarı, veri tutarsızlığı ve verinin bütünlüğünü sağlama
sorunları
 Verinin çok kullanıcılı sistemlerde paylaşılma özelliği yoktur
 Veriye erişim ve istenen veriyi elde etme güçlükleri
 Dosya sisteminde yönetilebilen haklar olmadığı için verilerin
güvenlik ve gizlilik sorunları
 Her programlama dili kendi dosya yapısını kullandığı için tasarım
farklılıkları
 Yedekleme ve verilerin kurtarılmasında sorunlar
22..33.. V
Veerrii ttaabbaannıınnıınn ffaayyddaallaarrıı
 Tüm VTYS programları standart sorgulama dili SQL’i kullanır
 Her kullanıcıya sadece ilgilendiği verilerin sunulması
 VTYS programları ile kolayca uygulama geliştirilebilir
 Yedekleme, kurtarma işlemlerini VTYS kendi içindeki yazılımlarla
çok kolay bir şekilde yapabilir
 Farklı veri tabanları arasında veri alışverişi çok kolay olmaktadır.
 Veri tekrarları ortadan kaldırılır ya da en aza indirilir.
 Veri tutarlılığı (Veri değişikliklerinin doğrudan veri tabanında
yapılması, farklı ortamlarda farklı verilerin yer almaması)
 Veri Paylaşımı
 Veri bütünlüğü (Bir tabloda işlem yapıldığında, bu tablo ile ilişkili
diğer tablolarda da işlem yapılır)
 Veri Güvenliği
 Veri bağımsızlığı (VTYS verilerin yapısı, yönetimi ile ilgilenir. Bu
nedenle kullanıcı bunlarla uğraşmaz)
22..44.. V
Veerrii T
Taabbaannıı Y
Yöönneettiim
mS
Siisstteem
mlleerrii ((PPrrooggrraam
mllaarrıı))
Access, Dbase, File Maker Pro, Paradox, SQL Server, Oracle vb. Veri
tabanlarının özellikleri aşağıda sırasıyla anlatılmıştır.
MS Access: Microsoft Office ürünüdür. Küçük ölçekli uygulamalar
içindir. Tablo başına 2 GB a kadar veri depolayabilir. Aynı anda 255
bağlantıya izin verebilir. MS Windows dışındaki işletim sistemlerinde
kullanılamaz. “Transaction logging” özelliğine sahiptir, ancak “trigger” ve
“stored procedure” özelliklerine sahip değildir.
MySQL: MySQL Inc. Windows, Linux, OS/2,Solaris, AIX vb. “trigger”
ve “stored procedure” özelliklerine sahiptir, ancak “Transaction logging”
özelliği bulunmamaktadır. Tablo başına 4 TB veri depolayabilir.
IBM DB2: IBM. Access ve MySQL e göre daha performanslı, ancak
küçük işletmelere göre daha yüksek maliyete sahiptir. Unix ve Windows
üzerinde çalışabilir. Transaction logging”, “trigger” ve “stored procedure”
özelliklerine sahiptir.
Informix: Illustra. Ücretli ve güçlü bir veri tabanıdır. Orta ölçekli
işletmelerin yükünü kaldırabilecek kapasitededir. 1994’deki Postgres
kodundan geliştirilmeye başlanmıştır.
MS SQL Server: Microsoft, Dezavantajları: Sadece Windows üzerinde
çalışabilir. Yüksek maliyet. Kullanım kolaylığı, güvenilirliği, işlem gücü
Tablo başına 4 TB veri. “Transaction logging”, “trigger” ve “stored
procedure” özelliklerine sahiptir.
PostgreSQL: PostgreSQL Global Development Group. Linux, Unix,
BSD, Windows, AIX vb. Ücretsiz, akademik bir veri tabanı. Çok güçlü işlem
yapısı. Veri güvenliği ön plandadır. Tablo başına 64 TB veri tutabilme
özelliği. “Transaction”, “Inheritance” “trigger” ve “stored procedure”
özelliklerine sahiptir.
Oracle: Oracle, Inc. Dünyanın en güçlü ve güvenilir veri tabanı olarak
gösterilmektedir. Çok yüksek maliyetlidir. Windows, Unix, Linux, vb. Oracle,
sınırsız sayıda tabloları desteklemektedir.
22..55.. H
Haannggii vveerrii ttaabbaannıınnıı sseeççm
meellii??
Veri tabanı yönetim sisteminin seçiminde; çalıştığı işletim sistemine,
kapasitesine, aynı anda bağlanabilecek kullanıcı sayısına, fiyatına ve diğer
genel özelliklerine bakılır. Ayrıca hazırlanacak olan paket programın ölçeğine
ve veri erişim yoğunluğunu da dikkat etmek gerekir.
Küçük yoğunlukta trafik: Access
Web uygulamaları için: MySQL, Access, MS SQL Server vb.
Daha büyük ve orta ölçekli uygulamalar içinse, Progress, MS SQL
Server ya da Linux üzerinde PostgreSQL .
Oracle ise yüksek veri yoğunluğu olduğunda, çok yüksek güvenilirlik ve
işlem gücü gerektirdiğinde tercih edilen bir veri tabanı sunucusudur.
22..66.. V
Veerrii
H
Huussuussllaarr
T
Taabbaannıı
O
Olluuşşttuurruulluurrkkeenn
D
Diikkkkaatt
E
Eddiilleecceekk
1. Veri tabanının amacını belirlemek ve ne amaçla kullanılacağını tespit
etmek (satış takibi, günlük haftalık aylık satışlar vb.)
2. Yapılacak olan işe uygun veri tabanını seçmek
3. Tabloları oluştururken gereksiz tekrarların önlenmesi, yani sabit
bilgiler için ayrı hareketli bilgiler için ayrı tabloların oluşturulması.
4. Sistem içinde bazı bileşenler iyi tasarlanmazsa sistem bir bütün olarak
başarısızlığa uğrayabilir.
3
3.. V
VE
ER
Rİİ T
TA
AB
BA
AN
NII Y
YA
APPIIS
SII
Microsoft Access, bir veri tabanı yönetim sistemidir ve belirli bir nesne
ya da özneyi tanımlayan birleştirilmiş bilgilerin bir toplamı olarak tanımlanan
veri tabanları oluşturmak, kullanmak ve geliştirmek için kullanılır. Oldukça
basit yapısı ve sunduğu geniş fonksiyonlar ile basit veri tabanlarından gelişmiş
bilgi sistemlerine çeşitli uygulamalar geliştirmek için uygun bir altyapı sunan
Access, orta büyüklükteki firmalar ve ev kullanıcıları için yeterli bir
programdır.
33..11.. V
Veerrii T
Taabbaannıınnddaa N
Neessnneelleerr
Tüm veri tabanı yönetim sistemleri düşünüldüğünde esas 2 nesne vardır.
Bunlar tablo ve sorgu nesneleridir. Diğer nesneler ise veri tabanı yönetim
sistemlerine göre değişiklik gösterir.
Aşağıda Access veri tabanı yönetim sisteminde yer alan nesneler
açıklanmıştır.
1-Tablo: Veri tabanı için gerekli olan ve verilerin saklandığı yerdir.
Kullanıcılar tarafından girilen veriler tablolarda saklanır. Diğer veri tabanı
nesneleri tablolar esas alınarak oluşturulur. Bir veri tabanında birden çok tablo
bulunabilir.
Alan (Field): Tablolara girilecek bilgilerin kategorileri (bilgi türleri)
vardır. Her bir sütun, bir bilgi kategorisini (alanı) temsil eder. Tablolarda yer
alan bilgi türlerine yani sütunlara alan denir.
Kayıt (Record): Belirli bir konudaki bilgileri içeren tablo, o konudaki
her bir veriyi bir satır olarak saklar. Bu satırlara kayıt denir.
2-Sorgu (Query, View): Veri tabanı tablolarında bulunan kayıtlardan
istenilen şartlara göre liste almak ve bu kayıtlarda bazı işlemler (kayıt ekleme,
kayıt silme vb.) yapmak için kullanılır.
3-Form: Veri tabanında bilgi girişi vb. işlemleri kolaylaştırmak
amacıyla kullanıcı için oluşturulan ara yüz nesneleridir. Formlar daha anlaşılır
bir ekran görüntüsü ile çalışmayı sağlayan nesnelerdir.
4-Rapor: Veri tabanında yer alan tablolardaki bilgilerin veya sorgu
sonuçlarının kâğıt üzerine yazdırılmasını sağlayan nesnedir. Bu nesnede
bilgilerin kâğıt üzerinde nasıl görüneceği ne şekilde yerleştirileceği belirlenir
ve kâğıt üzerine yazdırılır.
5-Makro: Bir işlemi gerçekleştirebilmek için birçok komuta ihtiyaç
vardır. Bu komutların bilgisayara sırasıyla verilmesi gerekir. Bu komutları tek
tek vermek yerine makro nesneleri içine yazılır. Daha sonra bu makro
çalıştırılarak içinde yer alan komutlar sırasıyla otomatik olarak icra edilir.
Veri tabanında birden çok adımdan oluşan bir işlemin bir seferde
yapılabilmesini sağlayan küçük program parçalarına Makro denir.
6-Modül: Visual Basic, Access, Word, Excel, AutoCad vb.
programlarda belirli bir işi yapan bağımsız program kodlarının yazıldığı
bölümdür. Modül içinde fonksiyonlar ve alt programlar bulunur. Modüllerde
Visual Basic programlama dili komutları kullanılır.
Makrolar ile aynı amaca sahip olmakla birlikte Visual Basic
programlama dili komutları ile yazılan küçük program parçalarıdır.
33..22.. A
AC
CC
CE
ES
SS
SV
Veerrii T
Taabbaannıınnddaa T
Taabblloo O
Olluuşşttuurrm
maa
Öncelikle Access’te boş bir veri tabanı oluşturulur. Access açıldıktan
sonra sağ taraftaki bölmede “boş veri tabanı” başlığı tıklanır. Yeni
oluşturulacak veri tabanının adı ve nereye kayıt edileceği sorulur. Yeni veri
tabanının adı ve yeri belirlendikten sonra oluştur düğmesine basılır. Ekrana
boş veri tabanı penceresi gelir. Nesnelerden tablolar seçilir. Burada 3 farklı
şekilde tablo oluşturma yöntemi vardır. Ayrıca veri tabanı penceresinin üst
tarafında yeni isminde bir düğme vardır.
Bu yeni düğmesi kullanıldığında tüm tablo oluşturma yöntemleri bir liste
halinde gelir. Bunlar:
Veri Sayfası Görünümü: Tablo şeklinde veri girişini sağlar.
Tasarım Görünümü: Tablo alanlarının tasarımı için kullanılır.
Tablo Sihirbazı: Hazır şablonlarla daha pratik tablo hazırlama imkânı
sağlar.
Tablo Al: Başka veri tabanlarında bulunan tabloları alır. Başka veri
tabanındaki bir veya birkaç tablonun kopyasını (içindeki bilgilerle birlikte)
kendi veri tabanımızda oluşturur
Tablo Bağla: Diğer bir veri tabanındaki bir tabloya bağlamayı sağlar.
Diğer veri tabanındaki tabloya kısa yol oluşturur. Tablonun kopyasını kendi
veri tabanımıza almaz.
Not: En detaylı ve en çok kullanılan Tasarım Görünümünde tablo
oluşturma şeklidir.
33..33.. T
Taabbllooddaa KKaavvrraam
mllaarr vvee Ö
Özzeelllliikklleerrii
Veri tabanında tablolar satır ve sütunlardan oluşmaktadır. Tabloyu,
satırları ve sütunları oluşturan esas nesne ise hücrelerdir. Hücreler yan yana ve
alt alta dizilerek satır, sütun ve tabloyu oluşturur.
Bir veri tabanında birden çok sayıda tablo bulunur. Her bir tablonun
sadece bir konusu vardır. Tablodaki her bir satıra o konuyla ilgili bir bilgi
yazılır. Bu bilginin ayrıntıları ise yan yana hücrelerin içine yazılır. Aynı
içeriğe sahip olan hücreler alt alta geldiği için sütun oluştururlar.
Örneğin; bir veri tabanında bilgiler aşağıdaki biçimde saklanır.
0014112006,ERKAN,KARAAĞAÇ,ANKARA,0014112016,MUSTAFA,GÖKÇE,BURDUR,0014112017,MUSTAFA
,MOHAN,DENİZLİ,0014112021,SELÇUK,KARAMAN,İZMİR,0114113010,EMİN,KILINÇ,BURDUR,011411
3013,EMRE,ÖZGÜN,İSTANBUL,0114113014,ERCAN,ERYILMAZ,BURDUR
Bu bilgilerde her bir öğrencinin sırasıyla numarası, adı, soyadı ve geldiği
şehir bilgileri yer almaktadır. Her öğrenci için bu bilgi türleri aynı sırayla
devam eder. Yukarıdaki bilgi katarı hard disk üzerine bu şekilde işlenir. Fakat
ekranda gösterilirken her bir öğrenci ayrı bir satırda yer alırsa daha düzgün
görünecektir. Bu durumda ekrandaki liste;
0014112006,ERKAN,KARAAĞAÇ,ANKARA
0014112016,MUSTAFA,GÖKÇE,BURDUR
0014112017,MUSTAFA,MOHAN,DENİZLİ
0014112021,SELÇUK,KARAMAN,İZMİR
0114113010,EMİN,KILINÇ,BURDUR
0114113013,EMRE,ÖZGÜN,İSTANBUL
0114113014,ERCAN,ERYILMAZ,BURDUR
Şeklinde olur. Her bir öğrenciye ait bilgi bir satır olarak yer alır. Bu her
bir satıra kayıt denir.
Her kayıt incelendiğinde aynı tür bilgiler alt alta gelmiştir. Aynı tür
bilgiler bir sütun oluşturur. Bu sütunlara da alan denir.
0014112006
0014112016
0014112017
0014112021
0114113010
0114113013
0114113014
ERKAN
MUSTAFA
MUSTAFA
SELÇUK
EMİN
EMRE
ERCAN
KARAAĞAÇ
GÖKÇE
MOHAN
KARAMAN
KILINÇ
ÖZGÜN
ERYILMAZ
ANKARA
BURDUR
DENİZLİ
İZMİR
BURDUR
İSTANBUL
BURDUR
3
3..3
3..1
1.. S
Sü
üttu
un
n ((A
Allaan
n)) Ö
Özzeelllliikklleerrii
Bir tabloda sütun sayısı en fazla 256 adet olabilir. Bir tablodaki satır
sayısı ise sınırsızdır. Tablodaki sütunlara isimleri ile ulaşılır. Satırların ise
isimleri yoktur.
33..33..11..11.. S
Süüttuunn ((A
Allaann)) A
Addıı
Access veri tabanında alan adları en fazla 64 karakter olabilir. Alan
adlarında boşluk karakteri, harfler, rakamlar ve bazı diğer karakterler
(parantezler, nokta, vb.) kullanılabilir.
Alan adı belirlenirken daha sonra hataya sebep olmaması için aşağıdaki
tavsiyelere uyulmalıdır.
Tavsiyeler:
1-Mümkün olduğunca kısa ve anlaşılır isimler kullanılmalı.
2-Sadece İngiliz alfabesinde olan harfler kullanılmalı.
3-Boşluk karakteri kullanılmamalı.
4-Hiçbir noktalama işareti kullanılmamalı
5-Alan isimleri yazılırken küçük harfler tercih edilmelidir.
Türkçede bulunan Ğ Ü İ Ş Ç Ö ü ğ ı ş ç ö harfleri alan isimlerinde
kullanılmamalıdır. Özellikle i harfi İngiliz alfabesi ile çatışmaktadır. En büyük
sorun bu harften kaynaklanmaktadır. İngiliz alfabesinde bir adet i harfi varken
Türkçede iki adet i harfi vardır. Küçük harf kullanılırken noktalı, büyük
harf kullanılırken noktasız kullanılmalıdır.
Alan isimleri birden fazla kelimeden oluşuyorsa boşluk karakteri yerine
alt tire işareti kullanılabilir. Ya da kelimeler birleştirilir ve her kelimenin ilk
harfi büyük harf yapılır.
33..33..11..22.. A
Allaann T
Tiippii
Alan Tipi: Alanlar bir bilgiyi taşıyan değişkenlerdir. Her alanda değişik
özelliklere sahip veriler saklanabileceğinden dolayı alanların belirli tiplerde
olması gerekir. Bir alana girilebilecek bilgi türünü alan tipi belirler.
00000000
= 0
00000001
= 1
00000010
= 2
…
11111110
= 254
11111111
= 255
Her karakter bilgisayar ortamında 1 Bayt yer kaplar.
BİLGİSAYAR kelimesi 10 bayt yer kaplar.
VERİ TABANI kelimesi 11 bayt yer kaplar.
5000 sayısı metin olarak düşünülürse 4 bayt yer kaplar.
32000 sayısı metin olarak düşünülürse 5 bayt yer kaplar.
Fakat bilgisayar ortamında sayıları bayt değerleri ile saklarsak daha az
yer kaplayacaktır.
Sayısal değer olarak;
1 bayt = 8 bit = 28= 256 farklı durum vardır.
2 bayt = 16 bit = 216 = 65536 farklı durum vardır.
Bu duruma göre sayısal değerleri bit değerlerinin onlu sayı sistemine
çevrilmesi şeklinde saklanmasıyla daha az yer kaplaması sağlanır.
5000, 32000 değerleri 2 bayt yer kaplar.
Alan tipinin seçilmesinde şunlara dikkat edilmelidir:
Alanın (sütunun) içine girilecek bilginin tipine göre alan tipi seçilir.
Alandaki (sütundaki) bilginin ne kadar yer kaplayacağı (kaç bayt) ya da
uzunluğu ne kadar olacağı belirlenir.
Bir sütuna girilebilecek en büyük veri ne olabilir. Buna göre alan boyutu
belirlenmelidir.
Alanda yer alacak bilgiler üzerinde ne gibi işlemler yapılacağı belirlenir.
Alandaki verilerin sıralı olup olmayacağı belirlenir.
Sıra numarası, kayıt numarası gibi otomatik numaralandırılacak alanlar
belirlenir.
Access’te Tablolarda Kullanılan Alan Tipleri
Alan Tipi
Metin (Text)
Veri
Alfabetik ve sayısal karakterleri saklar. Sayısal işlem
yapılamaz.
Kapladığı Yer
1-255 Bayt
Not (Memo)
Alfabetik ve sayısal karakterleri saklar. Sayısal işlem
yapılamaz. Genellikle uzun açıklama ve metinlerdir.
Sayısal bilgiler.
Tarih ve saat bilgileri
Sayı (Number)
Tarih/Saat
(Date/Time)
Para birimi
Parasal değerler. 15 sayı basamağı ile 4 onlu basamak ile
(Currency)
hesaplamadaki yuvarlamayı önlemek için kullanılır.
Otomatik sayı
Otomatik olarak artırılan sayısal değerler. Genellikle sıra
(Auto number)
numarası vb. alanlar için kullanılır.
Evet/Hayır
Boolean (ikili) değerler.
(Yes/No)
OLE Nesnesi (OLE Windows ortamında bir nesne ya da diğer ikili veriler.
Object)
Arama sihirbazı
Diğer bir tabloda seçmeye yarar. Bir sorguya dayalı ya da
(Look up wizard) değerlerini kullanıcının girebileceği bir açılır liste kutusu
(combobox) düzenler.
1-65535 Bayt
1, 2, 4 ya da 8 Bayt
8 Bayt
8 Bayt
4 Bayt
1 Bit
1 Gb kadar
Sorguyu takip edecek
bir alan. 4 Bayt
Bir alan tipi açıklanırken mutlaka şu sorulara cevap verilmelidir.
1-Hangi tür bilgi girilebilir?
2-Harddisk üzerinde ne kadar yer kaplar?
3-Kendine has özellikleri nelerdir?
Metin (Text) Alan Tipi
Metin, rakamlar, noktalama işaretleri ve diğer karakterleri içeren bilgiler
girilir. Üzerinde sayısal işlemler yapılamaz. En fazla 255 karakter bilgi
alabilir. Boyut belirtmek zorunludur.
Not: Access veri tabanında bilgi girilmeyen metin tipi alanlar disk
üzerinde yer kaplamaz. Sadece girilen bilgi kadar yer kaplar.
Not (Memo) Alan Tipi
Uzun metinler (metin, rakam, noktalama işaretleri ve diğer karakterler)
yani notlar veya açıklamalar için kullanılır. En çok 65535 karakter
saklayabilir. Boyut belirtilmez.
Not: Disk üzerinde sadece girilen bilgi kadar yer kaplar.
Sayı (Number) Alan Tipi
Para hesaplamaları dışında matematiksel hesaplamalar için kullanılan
sayısal verileri saklar. Sayıların büyüklüğüne, ondalık hassasiyetine göre
farklı sayı tipleri mevcuttur.
1-) Bayt (Byte) Alan Tipi
0-255 arasındaki tam sayıları kapsar. Bir bayt yer kaplar.
2-) Tamsayı (Integer) Alan Tipi
-32768 ile 32767 arasındaki tam sayıları kapsar. İki bayt yer kaplar.
3-) Uzun Tamsayı (Long) Alan Tipi
-2 147 483 648 ile 2 147 483 647 arasındaki tam sayıları kapsar. 4 bayt
yer kaplar.
4-) Tek (Single) Alan Tipi
-3.402823*10^38 ile 3.402823*10^38 arasındaki ondalık sayıları kapsar.
4 bayt yer kaplar. Sayıların sadece 7 hanesini saklar, diğer kısımlarını *10^
şeklide ifade eder. 7 haneden daha hassas işlemlerde tercih edilmemelidir.
5-) Çift (Double) Alan Tipi
Negatif sayılarda
–1.79769313486231*10^308 den–4.94065645841247*10^–324 e kadar
Pozitif sayılarda
4.94065645841247-10^–324 den 1.79769313486231*10^308 e kadar
olan ondalıklı sayıları kapsar. 8 bayt yer kaplar. Sayıların 15 hanesini
saklar, diğer kısımlarını *10^ şeklinde ifade eder. 15 haneden daha hassas
işlemlerde tercih edilmemelidir.
6-) Ondalık Alan Tipi
–10^38–1 10^38–1 arasındaki ondalık sayıları kapsar. 12 Bayt yer
kaplar. 28 ondalık haneye kadar hassasiyeti vardır.
Tarih/Saat (Date/Time) Alan Tipi
Tarihler ve saatler için kullanılır. 8 bayt yer kaplar.
Para Birimi (Currency) Alan Tipi
Para birimi değerlerini saklar. Ondalık noktanın solunda 15 basamak
sağında 4 basamak kullanılır. 8 bayt yer kaplar.
Evet/Hayır (Yes/No) Alan Tipi
Yalnızca iki değer içeren alan tipidir. Evet/Hayır, doğru/yanlış,
açık/kapalı gibi bilgileri saklar. 1 bit alan kaplar.
Otomatik Sayı Alan Tipi
Bu alan tipi sayısal bir alan olup, Uzun Tamsayı tipindedir. Bu tipteki
alanlara bilgi girişi yapılamaz. Yeni bir kayıt eklendiğinde otomatik olarak bir
numara bu alana yazılır. Kayıttaki diğer bilgiler girildikten sonra bu numara
da kalıcı hale gelir.
Yeni bir kayıt eklendiğinde verilen numara, en son verilmiş olan
numaradan bir fazladır. Önceki kayıtlar silindiğinde de yine son verilmiş olan
numaradan itibaren yeni numaralar verilir.
OLE Nesnesi (OLE Object, Hariç Nesne) Alan Tipi
Bu tip alanlarda Windows ortamında bulunan diğer programlarda
hazırlanmış resim, şekil, yazı, hesap tablosu, ses ve benzeri bilgileri saklar. En
fazla 1 GB büyüklüğünde bilgi saklayabilir.
Genel olarak kullanılması önerilmez. Çünkü fazla yer kaplamakta ve
tabloyu çabuk doldurmaktadır.
Arama Sihirbazı Alan Tipi
Bir tablonun tasarımı sırasında veri türü bölümünde listeyi açtığımızda
Arama Sihirbazı adında bir tür görürüz. Bu aslında bir veri türü değildir.
Amacı, tablo veya form üzerinde bu alana gelindiğinde bir liste kutusu
görünmesini ve bu alana girilecek bilginin bu listeden seçilmesini sağlamaktır.
Gerçek bir alan tipi olmadığı için kullanılmaz.
33..33..11..33.. G
Geeççeerrlliilliikk KKuurraallıı
Bir alanda girilebilecek bilginin sınırları belirtilir.
Örnek: [Notu] >-1 AND [Notu] < 101
Sadece Access programında kullanılabilir.
33..33..11..44.. G
Geeççeerrlliilliikk M
Meettnnii
Geçerlilik kuralında belirtilen sınırların dışına çıkan veri girişinde
ekranda gösterilecek mesaj yazılır
Örnek: “Notu alanına 0 ile 100 arasında sayılar girilebilir.”
Sadece Access programında kullanılabilir.
33..33..11..55.. V
Vaarrssaayyııllaann D
Deeğğeerr
Tabloya bilgi girişi sırasında otomatik olarak varsayılan bir değerin
yazılması sağlanır.
Bir tabloya yeni kayıt eklendiğinde bir sütuna otomatik olarak değer
ataması yapar. Atanacak değer Varsayılan Değer özelliğine yazılır. Atanan bu
değer istenirse sonradan değiştirilebilir.
Örnek: Sayısal bir alanda ilk değer olarak daima 1 yazılabilir.
Tarih tipindeki bir alana otomatik olarak bugünün tarihi yazdırılabilir
(Date())
Tüm veri tabanları için geçerlidir.
33..33..11..66.. G
Geerreekkllii
Bir alanda gerekli özelliği Evet seçilmişse bu alana bilgi girişi zorunlu
olmaktadır. Boş bırakılarak geçilemez.
Tüm veri tabanları için geçerlidir.
33..33..11..77.. S
Sıırraallıı
Sıralı özelliğinde üç farklı seçenek vardır.
Hayır: Bu alandaki bilgiler sıraya dizilmez veri giriş sırasına göre
görünürler
Evet (Yineleme Yok): Bu özellikte veriler otomatik olarak sıralanarak
listelenir. Fakat aynı bilgiden iki defa girilemez.
Evet (Yineleme Var): Bu özellikte veriler otomatik olarak sıralanarak
listelenir. Aynı bilgiler birçok defa girilebilir.
Bir tabloda iki sütuna birden sıralı özelliği etkinleştirildiğinde ilk sırada
yer alan sütuna göre sıralı gösterilir. Diğer sütuna göre sıralama olmaz. Çünkü
satır bütünlüğü bozulmaması gerekir. Dolayısıyla her iki sütuna göre verilerin
sıralanması mümkün değildir. Sıralama sadece bir sütuna göre yapılabilir.
Sıralı özelliği aslında verileri sıralı göstermek için kullanılmaz. Asıl
görevi o sütunlarda index (dizin) oluşturmak için kullanılır. Bir sütunda index
etkinleştirildiyse o sütunda arama işlemleri çok daha hızlı bir şekilde yapılır.
Tüm veri tabanları için geçerlidir.
33..33..11..88.. U
Unniiccooddee S
Sııkkıışşttıırrm
maa
Bu özellik 2 baytlık bilgiyi 1 bayt yer tutacak şekilde sıkıştırır. Bu
özellik sadece metin türü alanlarda geçerlidir.
Tüm veri tabanları için geçerlidir.
33..33..11..99.. G
Giirriişş M
Maasskkeessii
Sadece Access programında kullanılabilir.
Alanlarda (Tablo ve Sorgu), Metin kutularında, Açılır liste kutularında
veri biçimlendirmek ve hangi değerlerin girilebileceği üzerinde bazı
denetimler sağlamak için giriş maskesi kullanılır.
Giriş Maskesi Karakterleri
Veri girişinde sınırlamalar bazı karakterlerle sağlanır. Bu karakterler
aşağıdaki tabloda verilmiştir.
0
Basamak (0’dan 9’a kadar, giriş gerekli, artı eksi işaretlerine izin
verilmez.
9
Basamak ve Aralık (Giriş gerekli değil, artı ve eksi işaretlerine izin
verilmez)
#
Basamak ve Aralık (Giriş gerekli değil, boş konumlar aralığa
dönüştürülür, artı eksi işaretlerine izin verilir)
L
Harf (A’dan Z’ye kadar, giriş gerekli)
?
Harf (A’dan Z’ye kadar, giriş isteğe bağlı)
A
Harf veya basamak (giriş gerekli)
a
Harf veya basamak (giriş isteğe bağlı)
&
Herhangi bir karakter veya aralık (giriş gerekli)
C
Herhangi bir karakter veya aralık (giriş isteğe bağlı)
. , : ; - / Ondalık yer tutucu ve binler, tarih ve saat ayırıcılar
<
Kendisini izleyen tüm karakterleri küçük harfe dönüştürür
>
Kendisini izleyen tüm karakterleri büyük harfe dönüştürür
Giriş maskesinin metni, soldan sağa yerine sağdan sola
görüntülenmesine neden olur. Maskeye yazılan karakterler her
zaman soldan sağa doğrudur.
\
İzleyen karakterlerin harf karakter olarak görüntülenmesine neden
olur.
Parola Giriş maskesi özelliğine Parola (Password) kelimesi yazılırsa parola
girdi metin kutusu oluşturur. Metin kutusuna girilen her karakter,
karakter olarak saklanır. Fakat yıldız işareti ile gösterilir.
!
Örnekler:
Telefon Numarası girişi: (000) 000 00 00
Tamamı Büyük harf girişi: >CCCCCCCCCCCCCCCCCCCC
İlk harfler Büyük Diğerleri Küçük: >C<CCCCCCCCCCCCC
33..44.. A
Acccceessss’’ttee T
Taabblloollaarraa V
Veerrii G
Giirriişşii
Access tablolarına bilgi
girişi
doğrudan
tablodan
yapılabilir. Bunun için bilgi
girilecek tablo seçilip Aç
düğmesine basılır. Tabloda her
satır ayrı bir kayıt tutar. En son
Yeni kayıt için boş
kayıttan sonraki boş satır yeni
satır
kayıt eklemek için kullanılır. Bu
son satıra yeni bir kayıt
girilmeye başlandığında o satırın
bir altına tekrar boş bir satır
ekler. Yeni kayıt girişi böylece devam eder. Her alana bilgi girildiğinde Enter
tuşuna basarak bir sonraki alana geçilebilir.
Bir tablo üzerinde çalışırken tablo üzerinde ve kayıtlar üzerinde
yapılabilecek bazı işlemleri şu şekilde açıklayabiliriz:
Tabloya yeni kayıt
ekleme
Tablodan kayıt
silme
Tablodaki kayıtları
sıralatma
Tablodaki kayıtları
seçime göre süzme
Yeni kayıt eklemek için bu düğmeye basıldığında tablonun en son
satırındaki boş kayıt satırına gider.
Tablodan herhangi bir kaydı silmek için o kayda gidip bu düğmeye
basılır. Silme işlemine onay verilip silinir. Birden fazla kayıt silinecekse
fareyi tablonun sol tarafından basılı tutup sürükleyerek seçilir ve yine bu
düğmeye basılarak silinir.
Tablonun hangi alanına göre sıralama yapılacaksa o alana geçilip bu
düğmelerden birine basılır. (Artan sıralama veya azalana sıralama)
Tabloda herhangi bir alandaki bilgiye göre süzme yapılacaksa o alandaki
bilgi fare ile sürükleyerek seçilir ve bu düğmeye basılır. Süzgeci
kaldırmak için ise Süzgeci kaldır düğmesine basılır.
Tablodaki yazı
tipini değiştirme
Biçim menüsü açılıp Yazıtipi seçeneğine
girildiğinde bu ekran gelir. Buradan istenilen
yazıtipi, yazıtipi stili, boyutu, rengi özellikleri seçilip
Tamam düğmesine basılır.
Tablo sayfasının
biçimini değiştirme
Biçim menüsünden Veri sayfası seçeneğine
girildiğinde bu ekran gelir. Buradan istenilen
özellikler belirlenip Tamam düğmesine basılır.
Tablodan istenilen
bir sütunu
dondurma
Sütunları dondurmak için tablonun sol tarafından
istenilen sütunları seçtikten sonra Biçim
menüsünden Sütunları dondur seçeneği seçilir.
Tabloda sağa doğru kayarken bu sütunlar
kaybolmaz.
Tablodan istenilen
sütunları gizleme ve
görüntüleme
Bunun için Biçim menüsünden Sütunları göster
seçeneğine girildiğinde yandaki gibi bir liste gelir.
Bu listeden istenilen sütunların işareti kaldırılıp
gizlenebilir veya gizli sütunlar seçilerek geri
getirilebilir.
33..55.. V
Veerrii T
Taabbaannıınnddaa A
Annaahhttaarr
Anahtar, kayıtlara ulaşmada kullanılan bir bilgidir. Bir tabloda yer alan
kayıtlardan sadece belli bir kısmına veya sadece birine ulaşılmak istendiğinde,
kayıtların tek tek taranması ve istenilen kayıtların bulunması gerekir.
Örneğin; Öğrencilerin not bilgilerinin tutulduğu bir veri tabanı
tablosunda sadece bir öğrenciye ait notların görülmesi istenmesi gibi.
Büyük dosyalarda bu işlem çok uzun süreceğinden tablodaki kayıtların
bazı alanları anahtar olarak düzenlenir. Bu anahtar alanlar üzerinden tablolara
erişim daha hızlı bir şekilde gerçekleştirilir.
Veri tabanlarında 3 tip anahtar vardır:
1- Tekil anahtar – unique key
2- Birincil anahtar – primary key
3- Yabancı (uzak) anahtar – foreign key
Tekil anahtar daha önce anlatılan alan özelliklerinden sıralı özelliği ile
oluşturulmaktadır. Yabancı anahtar ise ilişkilendirme konusunda detaylı
şekilde anlatılacaktır.
3
3..5
5..1
1.. T
Teekkiill A
An
naah
httaarr
Bir tabloda süzme, sıralama veya arama işlemlerinin hızlı bir şekilde
yapılabilmesini sağlar. Bir sütuna tekil anahtar özelliği verildiğinde; veri
tabanı öncelikle tablodaki verileri bu sütuna göre sıraya dizer. Daha sonra ise
bu verileri gruplandırır. Bu gruplama sayesinde o sütunda arama ve süzme
işlemleri çok daha hızlı olmaktadır. Örnek olarak aşağıdaki gibi bir tablo
verilebilir.
Sıra
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
Firma
Beyhan Otel
PEKDEMİR
İkizler Kundura
Vural Market
GÖLBETON
Köseoğlu Market
AKALIN
Gediz Pen
DENTİM
İkinci Bahar
ŞOK Market
Elit Lokantası
Peksüslü Giyim
Arslan Ticaret
Tuğrul Ticaret
GÖLMAR
A-101
Edem Pastanesi
İstikbal
Bellona
Şirin Bebe
Puan
1000
1250
1450
1120
1850
1566
1126
1295
1586
1296
1319
1001
1005
1009
1256
1789
1723
1645
1956
1232
1526
Sıra
1
12
13
Firma
Beyhan Otel
Elit Lokantası
Peksüslü Giyim
Puan
1000
1001
1005
Bu tabloda bir arama işlemi yapalım. Puanı
1956 olan firmayı arayalım. Yukarıdaki tabloda bu
arama işlemini yapmak için puan sütununda her
satıra tek tek bakmak gerekir. Aradığımız değer ilk
satırda olabileceği gibi son satırda olabilir. Eğer
tabloda kayıt sayısı çok fazla olursa bu arama işlemi
epeyce zaman alacaktır. Tabloda 19. satırda aranan
değer bulunacaktır. Bu da 19 karşılaştırma
yapıldığını göstermektedir.
Bu tabloda Puan isimli sütuna göre tekil
anahtar verilirse (Sıralı> Evet - Yineleme var) aşağıdaki gibi olur.
14
4
7
20
2
15
8
10
11
3
21
6
9
18
17
16
5
19
Arslan Ticaret
Vural Market
AKALIN
Bellona
PEKDEMİR
Tuğrul Ticaret
Gediz Pen
İkinci Bahar
ŞOK Market
İkizler Kundura
Şirin Bebe
Köseoğlu Market
DENTİM
Edem Pastanesi
A-101
GÖLMAR
GÖLBETON
İstikbal
1009
1120
1126
1232
1250
1256
1295
1296
1319
1450
1526
1566
1586
1645
1723
1789
1850
1956
Puan sütununa göre veriler sıraya dizildikten
sonra veri tabanı otomatik olarak arka planda gruplar
oluşturur. Örneğin 100 birimlik dilimlerle grup
oluşturulmuş olsun. Buna göre tabloda gruplar farklı
zemin renkleri ile gösterilmiştir.
Tekil anahtar özelliği verildiğinde ise arama
işlemi şu şekilde olmaktadır. Aranan 1956 değeri
öncelikle hangi grupta yer alacağı hesaplanır.
Daha sonra bu grup içinde değer aranır. Buna
göre değerimiz 10. grupta yer alır ve arama işlemine
başlanır. 10. grupta tek bir değer vardır ve
dolayısıyla tek bir karşılaştırma yapıldığında aranan firma bulunmuş olur.
Özellikle kayıt sayısı çok fazla olan tablolarda bir sütunda arama
yapılacağında bu sütuna Tekil Anahtar özelliği verilmiş olması işlemleri çok
hızlandıracaktır.
Tekil anahtar işleminin diğer ismi Index’tir. Diğer veri tabanlarında
index özelliği ile bu işlem yapılmaktadır.
3
3..5
5..2
2.. B
Biirriin
ncciill A
An
naah
httaarr
Her bir kayıt için ayrı olan anahtar alanlara birincil anahtar (primary
key) denir. Anahtar her bir kayıt için tek olan ve başka kayıtlara verilemeyen
bilgidir. Örneğin; Öğrenci numarası, müşteri kodu, evrak numarası vb.
Birincil anahtar kullanımının faydaları:
 Tablolar arasında ilişkilendirmede gereklidir.
 Sorgularda kayıtlara ulaşım için gereklidir.
 Bilgilere daha hızlı erişim sağlanır.
 Veri tekrarını engeller.
 Bilgi girilmeden geçilmesini engeller.
Tabloların ilişkilendirilmesinde, sorguların oluşturulmasında mutlaka
birincil anahtar kullanılması gereklidir.
Her tabloda mutlaka birincil anahtar olmalıdır.
Birincil anahtar özelliği verilen alan Gerekli özelliği Evet seçilmesi ile
kazanılan özelliği ve Sıralı özelliğinin “Evet (Yineleme yok)” seçilmesi ile
kazanılan özelliği kazanır. Fakat bu alanda sözü geçen bu özellikleri
ayarlamaya gerek yoktur.
Tablodaki alanlardan birine birincil anahtar özelliğini vermek için yani
bir alanı birincil anahtar olarak belirlemek için tablo tasarım görünümünde o
alan fare ile seçilip farenin sağ tuşuna basıldığında açılan menüden birincil
anahtar seçeneği seçilir.
Bir alana Birincil Anahtar özelliği verilmesi ile Tekil Anahtarda
anlatılan özellikler kazandırılmış olur. Birincil Anahtarın farkı daima veri
tekrarı olmaması, boş değer verilememesi ve tablolar arası ilişkilendirmede
kullanılmasıdır.
Birincil anahtar özelliği verilen alanda arama ve süzme işlemleri çok
hızlı bir şekilde yapılabilmektedir.
Hangi alanlara birincil anahtar özelliği verilebilir?
Birincil anahtar özelliği her alana verilebilir. Fakat dikkat edilmesi
gereken durumlar vardır.
Adı alanına birincil anahtar vermek pek uygun değildir. Çünkü Adı aynı
olan birçok kişi olabileceğinden dolayı birincil anahtar özelliği verilirse, aynı
isimden sadece bir adet girilebilir. Bu nedenle de uygun değildir.
Adres alanına birincil anahtar özelliği vermek uygun değildir. Adres
bilgileri her kişi için farklı olsa bile adres bilgisi çok uzundur. Bu nedenle de
yazımda hatlar ortaya çıkabilir. Ayrıca ilişkilendirmede kullanılacağı için
diğer tabloda da adres bilgisi yazılmalıdır. Bu durumda veri tabanından çok
fazla tekrar söz konusu olacaktır.
Birincil anahtar verilecek alandaki bilgi net olmalıdır. Yazılacak bilgide
kısaltmalar veya farklı yazımlar olmamalıdır.
Birincil anahtar verirken O alandaki bilgiler bir defa girilen bilgiler
olmalı (OgrNo, TC Kimlik, Müşteri Kodu, İl Kodu vb). Ayrıca birincil
anahtar verilecek alandaki bilgiler kısa ve kolay hatırlanabilir olmalıdır. Eğer
Tabloda çok uzun bilgiler varsa bu durumda birincil anahtar için yeni bir alan
oluşturulmalı ve kodlama yapılmalıdır.
ÖZET:
1- Birincil Anahtar verilecek sütunda veri tekrarı olmamalı hatta ihtimali
dahi olmamalı.
2- Birincil Anahtar verilecek sütunda veri girilmeden geçilmemeli.
3- Birincil Anahtar verilecek sütuna girilecek veriler kısa ve öz olmalı.
İçinde noktalama işaretleri, boşluk karakterleri vb. olmamalı. Net bilgi olmalı.
Tamsayı, Metin tipindeki alanlar birincil anahtar yapılmalıdır.
4- Eğer önceki üç maddeye uyan herhangi bir sütun yok ise yeni bir
sütun ekleyip alan tipini otomatik sayı olarak seçip birincil anahtar özelliği
verilmelidir.
3
3..5
5..3
3.. Y
Yaab
baan
nccıı ((U
Uzzaakk)) A
An
naah
httaarr
Uzak Anahtar tablolar ilişkilendirilirken ortaya çıkmaktadır. Bir sütunun
uzak anahtar olarak belirlenmesi sadece ilişkilendirme ile olmaktadır. Uzak
Anahtar özelliği alanda bir değişikliğe sebep olmaz.
3
3..5
5..4
4.. Ö
Örrn
neekklleerr
 Öğrenci Kimlik bilgilerinin saklandığı tabloda Öğrenci Numarası
 Öğrenci kimlik bilgilerinin saklandığı tabloda Öğrenci Adı
 Öğrenci Notlarının saklandığı tabloda Öğrenci numarası
 Müşteri Kimlik bilgilerinin saklandığı tabloda Adres
 Müşterinin aldığı ürünlerin saklandığı tabloda ürün adı
 Ürünlerin mağazada hangi reyonlara yerleştiğini gösteren tabloda
reyon no
 Kütüphane takibinde kitap bilgileri tablosundaki yazar adı
 Kütüphane takibinde üye bilgileri tablosunda üye tckimlik numarası
 Müşteri takip veri tabanında ürün bilgilerinin saklandığı tabloda ürün
barkod no
 Müşteri takip veri tabanında ürün satış tablosunda ürün barkod no
 Öğrenci takip veri tabanında ders bilgilerinin tutulduğu tabloda
Program Kodu
33..66.. V
Veerrii T
Taabbaannıınnddaa T
Taabblloollaarrıı İİlliişşkkiilleennddiirrm
mee
Bir veri tabanında her konu için farklı tablolar oluşturulduktan sonra
listeleme sırasında farklı tablolardaki bilgilerin bir araya getirilirken
tablolardaki kayıtların nasıl eşleştirileceği belirtilmelidir. Bu işlem için
tablolar arası ilişkilerin tanımlanması gerekir. Bu tanımlamadan sonra farklı
tablolardaki bilgileri kullanarak sorgular oluşturulabilir.
İlişkilendirme iki tablo arasında olur. Bu iki tabloda aynı tür bilgileri
içeren iki alan ilişkilendirilir.
3
3..6
6..1
1.. İİlliişşkkiilleen
nd
diirrm
mee T
Tü
ürrlleerrii
İki tablo ilişkilendirilirken kullanılan alanların birincil anahtar
özelliklerinin olup olmamasına göre ilişkilendirme türü belirlenir.
Resimde yer alan iki tablo ilişkilendirilirken ortak bilgi içeren alan
Öğrenci No alanıdır. Bu iki tablo öğrenci no alanları kullanılarak
ilişkilendirilir.
İlişkilendirmede kullanılan Öğrenci No alanlarının birincil anahtar
özelliklerine bakarak ilişkilendirme türü belirlenir.
Üç çeşit ilişkilendirme türü vardır. Bunlar:
 Bire bir ilişkilendirme
 Bire çok ilişkilendirme
 Çok’a çok ilişkilendirme
İlişkilendirme yapılırken ilişki türünü birincil anahtar belirler.
Her iki tabloda ilişkilendirilen alanlar birincil anahtar ise bire bir
ilişkilendirmedir. Bir tablodaki bir kayda karşılık diğer tabloda bir kayıt
vardır.
İlişkilendirilen iki tabloda ilişkilendirilen alanlardan sadece biri birincil
anahtar ise bire çok ilişkilendirmedir. Bir tablodaki bir kayda karşılık diğer
tabloda çok sayıda kayıt vardır.
İlişkilendirilen iki tabloda ilişkilendirilen alanlar birincil anahtar değilse
çok’a çok ilişkilendirmedir. Bir tablodaki çok sayıdaki kayda karşılık diğer
tabloda çok sayıda kayıt vardır.
Yukarıda resimde yer alan tablolarda öğrenci no alanlarına bakacak
olursak; Öğrenci tablosunda yer alan öğrenci no alanı birincil anahtar
özelliğinde, Notlar tablosundaki öğrenci no alanı ise birincil anahtar özelliği
yoktur. Bu duruma göre bire – çok ilişkilendirme söz konusudur.
Tablo tasarımında birincil anahtarları vererek ilişkilendirme türünü
değiştirebiliriz.
Fakat uygulamada
kullanılmaktadır.
genel
olarak
bire
–
çok
ilişkilendirme
Bire – bir ilişkilendirme çok özel durumlarda kullanılabilir. Bir tablodaki
alan sayısı 256’dan fazla olursa ikinci bir tabloyu bu birinci tablonun paraleli
ve devamı olarak belirlemek için bire-bir ilişkilendirme yapılır. Bunun dışında
bire-bir ilişkilendirme kullanılmamaktadır.
Çoka-çok ilişkilendirme ise uygulamada mantıksız
oluşturmaktadır. Bu nedenle kullanılamayan bir türdür.
bir
durum
İki tablo ilişkilendirilmesi sonucunda bir tablodaki bir kayıt diğer
tablodaki kayıtlarla eşleştirilir. Aşağıda ilişkilendirmesi gösterilen iki tabloda
ilişkilendirme sonucunda tablolardaki kayıtlar eşleştirilir.
Bu ilişkilendirme sonucunda aşağıdaki resimdeki gibi kayıtlar
eşleştirilir.
3
3..6
6..2
2.. İİlliişşkkiilleen
nd
diirrm
mee iiççiin
nb
biirr ö
örrn
neekk
Öğrenci notlarının tutulması için bir veri tabanında aşağıdaki alanlara
sahip bir tablo oluşturulabilir.
Alan Adı
Alan tipi ve boyutu
OgrNo
Metin 10
Adı Soyadı Metin 25
Program
Metin 20
Şube
Metin 1
Ders Adı
Metin 50
Vize
Byte
Final
Byte
Bu alanlara sahip tablo ile öğrencilerin hangi dersten hangi notu aldığı
rahatlıkla görülebilmektedir. Fakat bu şekilde oluşturulmuş bir veri tabanı
yapısı çok uygun değildir. Çünkü bu tabloda bilgilerde arama yapmak uzun
sürer ve aynı zamanda bilgi tekrarı fazla olduğundan dolayı veri tabanı boyutu
oldukça artacaktır.
Öğrencilere ait olan bilgiler öğrencinin aldığı ders sayısı kadar
tekrarlanmaktadır. Bu bilgiler OgrNo, AdıSoyadı, Program, Şube’dir.
Öğrencinin 10 adet dersi varsa (10+25+20+1)*10 bayt yer kaplayacaktır. Yer
ve hız tasarrufu sağlamak için öğrencinin değişmeyen bilgileri olan ve
tekrarlanan bilgiler ayrı bir tabloya alınırsa bu durumda öğrenciye ait sadece
bir kayıt bulunacak ve ders sayısı kadar tekrarlanmayacaktır. Bu şekilde
düzenleme yapılırsa aşağıdaki gibi bir tablo düzeni ortaya çıkar.
Tablo 1
Alan Adı
Alan tipi ve boyutu
Metin 10
OgrNo
Adı Soyadı Metin 25
Program
Metin 20
Şube
Metin 1
Alan Adı
OgrNo
Ders Adı
Vize
Final
Tablo 2
Alan tipi ve boyutu
Metin 10
Metin 25
Byte
Byte
Tablo 1’de Öğrencilere ait sabit bilgiler için alanlar oluşturulmuştur. Bu
sayede bu bilgiler tekrarlanmayacaktır. Tablo 2’de ise ders adı, Vize Final
alanları yer almıştır. OgrNo alanı da bu tabloya eklenmiştir. Çünkü Dersi,
vizesi ve finali girilen öğrencinin kim olduğu da belirtilmesi gerekir aksi halde
girilen bilginin hangi öğrenciye ait olduğu bilinemez.
Tablo yapıları bu şekilde ayarlandıktan sonra her iki tabloda ortak olan
OgrNo alanları ile ilişkilendirme yapılmalıdır. İlişkilendirmenin yapılabilmesi
için Birincil anahtar özelliğinin hangi alana verilmesi gerektiğine karar
verilmelidir. Tablo1’de her bilgiden birer kayıt bulunacağından ogrno alanına
birincil anahtar verilmelidir. Burada birincil anahtar verilecek alan
ilişkilendirmede kullanılacak alan olmalıdır. Bu da OgrNo alanıdır. Tablo
2’de ise aynı bilgiler birçok defa tekrarlanabilir. Bu nedenle OgrNo alanına
birincil anahtar verilmez.
Bu durumda Tablo 1 ile Tablo 2, Ogrno alanları ile ilişkilendirilir. Bu
ilişkilendirme türü Bire-Çok ilişkilendirme olur.
3
3..6
6..3
3.. İİlliişşkkiilleen
nd
diirrm
meen
niin
nY
Yaap
pııllm
maassıı
İki tablo ilişkilendirilirken
kullanılacak alanların özellikleri:
alanlar
kullanılır.
İlişkilendirmede
1- İçerdikleri bilgiler aynı türden olmalı (ilişkilendirilecek iki tabloda
ortak içerikli alan olmalı)
2- Alan tipleri aynı olmalı
3- Alan boyutları aynı olmalı
4- Uygun alana birincil anahtar verilmiş olmalı
33..77.. S
Soorrgguullaarr
Sorgu; veri tabanında bulunan bir veya birden çok tablodaki bilgilerden
istenilen şartlara göre liste oluşturan nesnelerdir.
Sorgu sonuçları yer kaplamaz, sadece görünüm oluşturur. Bu
görünümlerde veri tabanında mevcut tablolardaki bilgiler yer alır.
Sorgu sonucu oluşan görünümler, veri tabanı tabloları gibidir.
Yeni bir sorgu oluşturmak için veri tabanı penceresinde Sorgular
seçeneği seçilir. Burada iki şekilde sorgu oluşturma yöntemi vardır. Genelde
Tasarım Görünümünde sorgu oluşturulur.
Tasarım görünümünde sorgu oluşturma seçildiğinde Sorgu oluşturma
penceresi ekrana gelir.
Burada ilk olarak sorguda kullanılacak tablolar seçilir. Seçilmiş olan
tablolar küçük pencereler halinde üst tarafa yerleşir. Bu küçük pencerelerde o
tablodaki alanlar listelenir. Kalın yazıtipi ile belirtilen alanlar Birincil anahtar
özelliğindedir.
Sorgu oluşturma penceresinde birden çok tablo bulunduğunda
ilişkilendirmenin
belirtilmesi
gerekir.
Daha
önceden
tabloların
ilişkilendirmeleri yapıldıysa sorgu penceresine otomatik olarak gelir. Sorgu
penceresinde yapılacak ilişkilendirmeler sorgu dışında geçerli değildir.
Sorguda alan seçimi iki şekilde yapılır:
-Fare ile sorguda listelenmek istenen alan ismi üzerinde fare ile çift
tıklama yapılır. Çift tıklama sonucunda o alan aşağıdaki listeye eklenir.
-Listeye eklenmek istenen alan fare ile sürükle bırak yöntemiyle
aşağıdaki listeye taşınarak bırakılır.
Tasarım görünümünde sorguda yer alan Alanların listesi alt kısımdadır.
Bu listede alanlar yan yana dizilmişlerdir. Satırlarda alan özellikleri
belirtilmiştir. Bunlar:
Alan: Sorguda gösterilecek alan ismi veya formül yer alır.
Tablo: O alanın hangi tabloya ait olduğu belirtilir
Sıralı: O alana göre sıralama yapılıp yapılmayacağı belirtilir.
Göster: O alanın görünüp görünmeyeceği belirtilir.
Ölçüt: O alana göre koşul belirtilir.
Veya: Diğer koşullar için bir bağlaçtır.
3
3..7
7..1
1.. S
Sıırraallıı G
Gö
össtteerriim
m
Sorguda sıralama işlemi Tasarım görünümünde belirlenir. Hangi alana
göre sıralama yapılacaksa o alanın sıralı özelliği belirlenir. Sıralı özelliğinde 3
farklı durum vardır.
1-Sırasız
2-Artan
3-Azalan
3
3..7
7..2
2.. K
Ko
oşşu
ull B
Beelliirrtteerreekk S
So
orrg
gu
uO
Ollu
uşşttu
urrm
maa
Bu işlem Tasarım görünümünde belirlenir. Sorguda yer alan alanlardan
hangisinde koşul belirtilecekse o alanın Ölçüt satırına koşul yazılır.
Örnek
Adres alanında Burdur olanlar
Maaş alanında 200 ve üzerinde değer olan kayıtlar ( >=200 )
Örnek: F alanındaki değer 50 ve 60 arasında (50 ve 60 dahil) olanları
listeleyen sorguyu tasarlayınız.
Kullanılan bağlaç “VE”
Örnek: Şehir alanındaki değer BURDUR olan kayıtlar ve Şehir
alanındaki değer DENİZLİ olan kayıtları bir arada gösteren sorguyu
tasarlayınız.
Kullanılan bağlaç “VEYA”
Örnek: Adı alanında “MUSTAFA” değeri olan kayıtlar ve Şehir
alanında “BURDUR” olan kayıtları bir arada listeleyen sorguyu oluşturunuz.
Kullanılan bağlaç “VEYA”
Sorgu tasarımında birden fazla sayıda ölçütü “VE” bağlacı ile
birleştirmek için ölçüt kısmında aynı satıra yazılmalıdır.
Sorgu tasarımında birden fazla sayıda ölçütü “VEYA” bağlacı ile
birleştirmek için ölçüt kısmında farklı satırlara yazılmalıdır.
3
3..7
7..3
3.. B
Baazzıı FFo
on
nkkssiiyyo
on
nllaarr vvee İİşşlleem
mlleerr
Sorgu hazırlanırken mevcut alanlardaki bilgilerden yararlanarak bazı
işlemler yapılabilir.
Sorguda işlevleri göstermek için hayali bir alan tanımlanır. Sadece sorgu
sonucunda görülebilir. Veri tabanına bilgi olarak kaydedilmez. Burada
görünen bilgiler diğer alanlardaki bilgilerden yararlanılarak elde edilmiş
bilgilerdir.
Sorgu tasarımında alan kısmına yazılır. Öncelikle alan adı belirtilmelidir.
Alan adı yazıldıktan sonra iki nokta üst üste (:) işareti konur. Bir boşluk
bırakılır ve işlem yazılır. (:) işaretine kadar olan kısım sütun adı tanımıdır.
Matematiksel (+,-,*,/,^)
Matematiksel işlemlerde öncelikler
()
Parantezler (işlem önceliği sağlar)
^
Üs alma (Bazı veri tabanı yönetim sistemlerinde var, diğerlerinde hazır fonksiyon şeklindedir)
* /
Çarpma Bölme
+ -
Toplama çıkarma
&
Metin birleştirme (Bazı veri tabanı yönetim sistemlerinde var, diğerlerinde + işareti ile yapılır
Hazır fonkisyon işlemleri (Left, Rigth, Len, Ucase, Lcase, iif, Mid vb.)
LCase
Verilen metni
çevirerek verir
küçük
harfe
LCase(adı)
adı alanındaki metni küçük harflere
çevirerek verir
UCase
Verilen metni
çevirerek verir
büyük
harfe
UCase(adı)
adı alanındaki metni büyük harflere
çevirerek verir
Len
Verilen
metindeki
sayısını verir
Len(adı)
adı alanındaki metnin karakter sayısını
verir
Left
Verilen metnin solundan itibaren
belirli sayıda karakter verir
Left(adı;4)
adı alanındaki
karakterini verir.
Right
Verilen metnin sağından itibaren
belirli sayıda karakter verir
Right(adı;4)
adı alanındaki metnin sağından 4
karakterini verir
Mid
Verilen metnin içinden belirli bir
parçayı alır
Mid(adı;2;3)
adı alanındaki metnin 2. karakterinden
başlayarak 3 karakter verir
IIf
Koşula göre farklı işlemleri yapar
IIf(F>45;"Geçebilir";"Kesin Kaldı")
Eğer F değeri 45’ten büyükse Geçebilir
aksi halde Kesin Kaldı yaz
karakter
metnin
soldan
Örnek 1: Öğrencilerin vize final notlarının tutulduğu bir veri tabanı
tablosu olduğunu farz edelim. Sorgu ile vize ve final notlarının ortalaması
hesaplanmak istenirse vize ve final alanları sorgu tasarımında eklenir. Bu
alanlardan sonra boş olan ilk alana alan satırına “ortalama:
vize*0,4+final*0,6” ifadesi yazılır.
Örnek 2: Örnek 1’deki veri tabanı tablosuna Sorgudaki hayali Ortalama
alanındaki değere göre Başarılı, Başarısız yazdıran formül aşağıdadır.
Ortalama değeri 60’ın altında ise Başarısız, aksi halde Başarılı yazılacaktır.
Başarı: iif(Ortalama<60;”Başarısız”;”Başarılı”)
Örnek 3: Bir veri tabanı tablosunda Adı, Soyadı, Adresi alanları
bulunmaktadır. Adı ve Soyadı alanlarındaki bilgiler “Adı Soyadı” isminde tek
bir alan olarak gösterilmek isteniyor ve Adı alanından gelen bilgilerin ilk harfi
büyük diğerleri küçük, Soyadı alanından gelen bilgilerin tamamı büyük harf
olması isteniyor. Bu işlem için “Adı Soyadı” isminde hayali bir alan sorgu ile
tanımlanarak aşağıdaki formül yazılmalıdır.
[Adı Soyadı]: UCase(Left([adı];1)) & LCase(Mid([adı];2;Len([adı])-1))
& " " & UCase([soyadı])
Örnek Sorular:

Şehir alanındaki değer BURDUR olan kayıtlar ve Şehir alanındaki değer
İSTANBUL olan kayıtları bir arada gösteren sorguyu tasarlayınız.
4

Notlar tablosunda, V ve F’den hareketle BN hesaplanarak verileri BN’ye
göre artan sırada listeleyiniz.

Öğrenciler tablosunda veriler, ŞEHİR sütununa göre artan, soyadı
sütununa göre azalan olarak sıralı gösteriniz.

Öğrenciler tablosunda, BURDUR’lu öğrencileri OgrNo, Soyad Ad,
Şehir sütunlarını göstererek öğrenci numarasına göre azalan şekilde
sıralı olarak listeleyiniz.

Notlar tablosunda V ve F sütunlarının toplamını gösteren bir sütun ve
ayrıca bu toplam 100’ün üzerindekilere “Başarılı” diğerlerine
“Başarısız” yazan diğer bir sütun olacak şekilde sorgu tasarlayınız.
3
3..7
7..4
4.. G
Grru
up
pllaam
maa
Tasarım görünümünde sorguda yer alacak alanların bulunduğu alt
kısımda farenin sağ tuşuna basılır ve açılan menüden Toplamlar seçeneği
seçilir veya menüden Görünüm-Toplamlar seçilir. Bu işlemden sonra Tablo
satırının altında Toplam isminde bir satır daha oluşur.
Bu tür bir liste oluşturmada genelde tek bir alan seçilir. Bu alanın
Toplam özelliği Grupla seçilir.
Sorgu sonucu oluşan görünümde o alandaki değerlerden sadece birer
adet görünür.
3
3..7
7..5
5.. G
Grru
up
p FFo
on
nkkssiiyyo
on
nllaarrıı
Veri tabanlarında sorgularda belirli temel grup işlemleri için hazır
fonksiyonlar mevcuttur.
Bunlar: Topla, Ortalama, EnAz, EnÇok, Say, Stsapma, Değişken
(varyans), İlk, Son
Bu fonksiyonlar tek bir alanda ve gruplama yapılmadan kullanılırsa tüm
kayıtlar için sonucu verir. Sorgu sonucu oluşan görünümde tek bir değer
bulunur.
Topla: Sayısal bir alanda, grup içindeki kayıtlarda belirtilen sütunda yer
alan değerlerin toplamını bulur.
Ortalama: Sayısal bir alanda, grup içindeki kayıtlarda belirtilen sütunda
yer alan değerlerin aritmetik ortalamasını bulur.
EnAz: Sayısal bir alanda, grup içindeki kayıtlarda belirtilen sütunda yer
alan değerlerin en küçük olanını verir.
EnÇok: Sayısal bir alanda, grup içindeki kayıtlarda belirtilen sütunda
yer alan değerlerin en büyük olanını verir.
Say: Grup içindeki kayıtlarda belirtilen sütunda yer alan değerlerin (dolu
hücreler) adedini verir. Eğer o alanda boş hücreler var ise onları saymaz.
Stsapma: Sayısal bir alanda, grup içindeki kayıtlarda belirtilen sütunda
yer alan değerlerin standart sapmasını verir.
Değişken: Sayısal bir alanda, grup içindeki kayıtlarda belirtilen sütunda
yer alan değerlerin Varyansını verir.
İlk: Grup içindeki kayıtlarda belirtilen sütunda yer alan değerlerden ilk
sırada bulunanının değerini verir.
Son: Grup içindeki kayıtlarda belirtilen sütunda yer alan değerlerden son
sırada bulunanının değerini verir.
Gruplama işlemlerinde örneğin sorguda Adres alanı gruplandırılırsa her
şehirden birer adet görünecektir. Bunun yanına ilave olarak her şehirde kaç
kişi olduğunu da göstermek gerekirse, sorgu tasarımında şu işlemler
yapılmalıdır.
Adres alanı sorguya eklenir. Bu alanın Toplam özelliği Grupla olarak
ayarlanır (Bu sayede şehirler gruplandırılarak gösterilir).
Her şehirde kaç kişi olduğunu göstermek için Say fonksiyonu
kullanılabilir. Sayma işlemi için de herhangi bir alan sorguya eklenir. Örneğin
Adı Soyadı alanı. Bu alanın Toplam özelliği Say seçilir (Bu sayede her
gruptaki Adı Soyadı alanındaki kayıtları sayar ve adedini grup için gösterir).
Her şehirdeki maaş ortalamalarını da göstermek istersek, sorguya maas
alanı da eklenir. Bu alanın Toplam özeliği Ortalama olarak seçilir.
Örnek sorular:
 GenelDers tablosunda, teorik ve Uygulama saatlerinin ayrı ayrı
toplamlarını gösteriniz.
 Notlar tablosunda her ders için en düşük ve en yüksek final notlarını
listeleyiniz.
 Hangi şehirden kaçar öğrenci vardır.
 0314111091 numaralı öğrencinin girmiş olduğu derslerde en düşük
final notu kaçtır.
 0314111091 numaralı öğrencinin girmiş olduğu derslerde en yüksek
vize notu kaçtır.
 Genelders Tablosunda her bir dersin haftalık ders saati sayısını
listeleyiniz.
 Notlar tablosunda her bir öğrencinin başarı notlarının en düşüklerini
listeleyiniz.
 0314111056 numaralı öğrencinin Vize not ortalaması nedir
 0314111113 numaralı öğrenci kaç ders alıyor, adedini gösteriniz
 Tüm öğrencilerde en yüksek vize notlarını gösteriniz.
3
3..7
7..6
6.. K
Ko
oşşu
ullllu
uH
Haazzıırr FFo
on
nkkssiiyyo
on
nK
Ku
ullllaan
nıım
mıı
Sorgularda hazır fonksiyonlar tek başlarına kullanıldıklarında, yani tek
bir alanda işlem yapıldığında tüm kayıtlar tek bir grup olarak değerlendirilir
ve ona göre sonuç oluşturulur.
Örneğin Sorguda maas alanı seçilip Ortalama fonksiyonu seçilirse tüm
kayıtlar ele alınarak ortalama hesaplanır. Bu işleme koşul eklenmek istenirse,
örneğin koşul “maas >= 200” olursa, Sorgu tasarımında maas alanı ölçüt
özelliğine bu koşul yazıldığında sonuç çıkmaz. Bu işlemi gerçekleştirmek için
koşulu uygulamak için ikinci bir maas alanı sorguya eklenmeli ve Toplam
özelliği Koşul olarak ayarlanmalı ve Ölçüt özelliğine de koşul yazılmalıdır.
Ayrıca Göster özelliğinin işareti de kaldırılmalıdır. Çünkü ikinci olarak
eklenen maas alanı sadece koşulu gerçekleştirmek içindir. Listede
görünmesine gerek yoktur.
Örnek:
Bir veri tabanında Öğrenci notlarının tutulduğu notlar isimli bir tablo
vardır. Tabloda; sn, OgrNo, DK, V, F alanları vardır.
Her bir öğrenciye göre, 50 ve üzerindeki final notlarının ortalamasını
listeleyiniz.
Her bir öğrenciye göre, Final notları ortalaması 50 ve üzerinde olanları
listeleyiniz.
Bu iki sorudaki fark, İlk soruda tablodaki kayıtlar önce süzülmekte ve
süzme sonucunda kalan kayıtlarda gruplama işlemleri yapılmaktadır.
İkinci soruda ise ilk önce gruplama işlemi yapılmakta, sonra süzme
işlemi yapılmaktadır.
3
3..7
7..7
7.. S
So
orrg
gu
ud
daa Ç
Ço
okk ttaab
bllo
o kku
ullllaan
nıım
mıı
Sorguda çok sayıda tablo kullanılırken Hareketli ve Sabit bilgilerin
bulunduğu tablolar belirlenmelidir. Sorgu hazırlanmasında tablolar arasında
ilişkilendirme yapılmalıdır. İlişkilendirme alanlar üzerinden yapılır (Tablolar
ilişkilendirilirken alanlar kullanılır). Sabit bilgilerin bulunduğu tabloda,
ilişkilendirmede kullanılan alan birincil anahtar özelliğindedir. Diğer hareketli
bilgilerin bulunduğu tabloda, ilişkilendirmede kullanılan alanda ise birincil
anahtar özelliği yoktur.
Genelde sorgu hazırlanırken hareketli bilgilerin bulunduğu tablo esas
tablo olarak kullanılır. Diğer tablolar ise yardımcı niteliği taşır. Yani sorgu
sonucu oluşan görünümde yeni kayıt girildiğinde hareketli bilgilerin
bulunduğu tabloya eklenir. Hareketli bilgilerin bulunduğu tabloda
bulunmayan alanlar Sabit bilgilerin bulunduğu tablolardan yani yardımcı
tablolardan alınır.
Örnek: Bir veri tabanında T1 ve T2 isminde iki tablo vardır. T1 isimli
tabloda MK, AdıSoyadı, Adres, Tel alanları bulunmaktadır. T2 isimli
tabloda ise MK, Malzeme, Miktar, Fiyat alanları bulunmaktadır. Bu iki tablo
kullanılarak oluşturulacak bir sorguda esas tablomuz yani bilgi girişi
yapacağımız tablo T2 isimli tablodur. Buna karar verirken her iki tabloda da
ortak alan bulunur. Ortak alan MK (Müşteri kodu) alanıdır. T1 isimli tabloda
MK birincil anahtar özelliğindedir. İlişkilendirme için ortak bir alan
gereklidir. Hangi tablodaki alan Birincil anahtar özelliğinde ise o tablo
yardımcı tablodur ve sabit bilgileri içerir.
O halde T2 esas tablodur. Bu nedenle öncelikle Alanların seçiminde
öncelik T2 tablosundadır. Yani T2 tablosunda bulunan alanlar T2 tablosundan
alınacak, olmayanlar yardımcı tablodan alınacaktır.
Sorguda yer alanlar: T2.MK, T1.AdıSoyadı, T1.Adres, T1.Tel,
T2.Malzeme, T2.Miktar, T2.Fiyat
Bu sorgu ile aynı zamanda Tutar hesaplanmak istenirse sorgu
tasarımında bir alan daha ilave edilerek alanlar satırına “Tutar:
Miktar*Fiyat” deyimi yazılır.
3
3..7
7..8
8.. Ö
Örrn
neekk sso
orru
ullaarr vvee ttaassaarrıım
mllaarrıı
S1: Derslere göre, başarı notu hesaplanarak, her ders için başarı notları
ortalaması alınacak ve başarı notu ortalaması 50 ve üzerinde olan derler
listelenecek.
S2: Adının ilk harfi büyük diğer harfleri küçük soyadının tümü büyük
harflerden oluşacak adısoyadı isimli bir alanda gösteriniz!
S3: Adı alanından ilk 3 karakter ile soyadı alanından son 3 karakter
birleştirilerek birleşim isimli alanda gösteriniz.
S4: 0314111091 numaralı öğrencinin girmiş olduğu derslerden aldığı en
düşük ve en yüksek final notunu gösteriniz.
S5: Notlar tablosunda V alanındaki değer 60’ın üstünde ve F alanındaki
değer 40’ın altında olan kayıtlarda, V alanının ortalamasını gösteriniz.
Örnek Sorular:
 Adı alanından ilk 3 karakteri soyadı alanından son 3 karakteri
birleştirerek birleşim isimli alanda gösteriniz.
 Burdurluların adının 3 karakterini gösteriniz.
 Öğrenciler tablosunda, Burdurluların adı ve soyadı alanları
birleştirilip tek bir alan olarak gösterilecek. Oluşan görünümde Adın
ilk harfi büyük diğerleri küçük, soyadının tümü büyük harf olacaktır
ve bunları da numara sırasına göre büyükten küçüğe doğru sıralayınız.
 Öğrenciler tablosunda Adı alanındaki ilk 3 karakteri küçük, soyadının
son üç karakterini büyük harf olarak birleştirip "karışım" ismi ile
gösteriniz.
 Notlar tablosunda V ve F den hareketle Başarı Notu hesaplanarak,
öğrencileri Başarı Notuna göre büyükten küçüğe doğru sıralayınız.
 Notlar tablosunda V ve F den hareketle Başarı Notu hesaplanarak,
Dk=5 olan kayıtları Başarı Notuna göre büyükten küçüğe doğru
sıralayınız.
 Notlar tablosunda, Durum isimli yeni bir alanda V ve F alanlarının
toplamı 100'ün üzerinde olan kayıtlara Başarılı, diğerlerine Başarısız
yazdıracak sorguyu tasarlayınız.
 Notlar tablosunda V ve F den hareketle Başarı Notu hesaplanarak,
OgrNo=0314111059 olan kayıtları Başarı Notuna göre büyükten
küçüğe doğru sıralayınız.
 GenelDers tablosunda, teorik ve Uygulama saatlerinin ayrı ayrı
toplamlarını gösteriniz.
 Derslere göre, başarı notu hesaplanarak, her ders için başarı notları
ortalaması alınacak ve başarı notu ortalaması 50 ve üzerinde olan
derler listelenecek.
 Notlar tablosunda V ve F den hareketle Başarı Notu hesaplanarak,
OgrNo=0314112022 olan kayıtları Başarı Notuna göre küçükten
büyüğe doğru sıralayınız.
 Notlar: Her dersi alan öğrenci sayılarını gösteriniz.
 Notlar tablosunda V alanındaki değer 60’ın üstünde ve F alanındaki
değer 40’ın altında olanların V alanının ortalamasını gösteriniz. (Tek
sayı olacak)
 Notlar tablosunda V ve F den hareketle Başarı Notu hesaplanarak,
Dk=3 olan kayıtları Başarı Notuna göre küçükten büyüğe doğru
sıralayınız?
 Adı alanından ilk 3 karakteri soyadı alanından son 3 karakteri
birleştirerek birleşim isimli alanda gösteriniz?
 Adı alanındaki bilginin yarısını "yarım" isimli alanda gösteriniz?
 İzmirlilerin isimlerini küçük harfle gösteriniz?
 Derslere göre vize ve finalden hareketle başarı notu hesaplanarak her
ders için başarı notları ortalaması alınacak ve başarı notu ortalaması
50 ve üzerinde olan derler listelenecek.
4
4.. V
Veerrii T
Taabbaannıı E
Enn İİyyiilleeşşttiirrm
mee ((N
Noorrm
maalliizzaassyyoonn))
Bir veri tabanı tasarlanırken iki şekilde düşünülebilir. İlkinde konu ile
ilgili tüm bilgiler bir tablo üzerinde tutulabilir. Diğerinde ise her konu için
ayrı tablolar oluşturulabilir. Her iki durum için tablo yapısı aşağıda verilmiştir.
1. Durum
2. Durum
Yukarıdaki tablolara bakıldığında ilk durum daha az yer kapladığı, ikinci
durumun ise daha çok yer kapladığı görülmektedir.
Fakat 1000 öğrenci ve 10 farklı ders olduğunu ve her öğrencinin bu 10
dersi aldığını düşünerek bir hesaplama yapılırsa;
İlk durum
Toplam kayıt sayısı 1000 x 10 = 10000
İkindi Durum
Her kayıt 139 bayt olduğuna göre;
Öğrenci
1000x55=55000 bayt
10000x139=1,390,000 bayt yer kaplar
Toplam Kayıt sayısı 1000 x 10 = 10000
Her tablo ayrı hesaplanmalıdır:
Ders
10x81=810
Notlar
1000x10x20=200,000
Toplam
55,000+810+200,000=255,810 bayt
Sonuç olarak veri tabanında veriler konulara göre tablolara bölünürse
kayıt sayısı arttıkça kapladığı alan daha az olmaktadır.
İlk durumda bir ders adı öğrenci sayısı kadar, bir öğrenci adı ise ders
sayısı kadar tekrarlanmaktadır. Bu nedenle de oldukça fazla yer
kaplamaktadır.
Bu durumda veri tabanında veriler konulara göre parçalara
ayrılmalıdır.
Bir konu ile ilgili veri tabanı hazırlanırken; veri tekrarının önlenmesi ve
belirli bir düzenin sağlanması ile veri tabanı daha hızlı çalışacak ve sonuca
çok daha kısa sürede ulaşılabilecektir. Bunun için veri tabanı tasalanırken tek
bir tablo yerine bilgileri uygun şekilde farklı farklı tablolara yazmak daha iyi
sonuç verecektir. Bu nedenle öncelikle veri tabanı tablolarının tasarımında
yapılan hataları tespit etmek gerekir. Tespit işlemi için aşağıdaki adımları
sırasıyla uygulayıp, gerekli düzeltmelerin yapılması gerekir.
44..11.. V
Veerrii T
Taabbaannıı E
Enn İİyyiilleeşşttiirrm
mee KKuurraallllaarrıı
Bu amaçla veri tabanına uygulanması gereken düzeltmeler şunlardır.
1. Alanları Parçalamak
2. Tablonun tek bir konusu olacak
3. Her tabloda, konusuna uygun birincil anahtar olacak
4. Tablodaki her alan birincil anahtara bağlı olacak
5. Eğer birincil anahtar birden çok sütundan oluşuyorsa, tüm alanlar bu
birincil anahtar sütunlarına bağlı olmalıdır (Sadece anahtarlardan
birine bağlıysa yanlış olur)
6. Aynı alan iki farklı tabloda birincil anahtar olamaz, bu tablolar
birleştirilmelidir
7. Sütunlara yayılmış aynı türdeki alanlar varsa ayrı bir tabloda
saklanmalıdır
8. Hücrelere ayrı satırlarda yazılması gereken bilgiler için sütunlar
oluşturulmuşsa, tek bir sütun oluşturulup satırlara yazılmalıdır
9. Uygun alan tipleri seçilmeli
10. Tablo ve Alan isimleri doğru verilmeli
4
4..1
1..1
1.. A
Allaan
nllaarrıı P
Paarrççaallaam
maakk
Veri tabanında tabloda her hücrede sadece tek bir bilgi olmalıdır.
Böylece bu bilgiler üzerinde işlemler daha kolay yapılabilmektedir. Aşağıdaki
örnekte olduğu gibi Müşteri alanında müşterinin adı ve soyadı bir arada yani
tek bir hücre içine yazılmaktadır. Bu tablodaki verileri müşterinin soyadına
göre sıralamak istenirse, soyadı ayrı bir bilgi olmadığı için bu işlem
yapılamayacaktır.
Bir tabloda adres bilgileri tek bir hücreye yazılmış ise arama ve sıralama
işlemlerinde sorunlar oluşmaktadır. Örneğin adres bilgilerinde Atatürk
Mahallesinde ikamet edenleri süzmek istersek, içinde Atatürk kelimesi geçen
tüm adresler listelenir. Fakat Atatürk cadde ismi de olabilir. Yani Atatürk
mahallesine ait olmayan adresler de listelenecektir. Alanlar parçalanırsa Adres
alanı Mahalle, Cadde, Sokak, Numara, İlçe, İl şeklinde parçalanırsa bu
durumda Mahalle isimleri ayrı bir sütun olacağı için sadece bu sütunda süzme
yapılarak doğru sonuca ulaşılabilir.
Örneğin “Adres” alanı yerine bu alan parçalanmalıdır. Mahalle, cadde,
sokak, numara, ilçe, il gibi
Örnek: Müşteri >> MüşteriAd, MüşteriSoyad
Sorun: Tabloda bir hücreye birden çok sayıda bilgi girilmiş.
Çözüm: Söz konusu sütunda yer alan her bilgi için ayrı sütunlar
oluşturunuz.
4
4..1
1..2
2.. T
Taab
bllo
on
nu
un
n tteekk b
biirr kko
on
nu
ussu
uo
ollaaccaakk
Veri Tabanında her konu için ayrı bir tablo oluşturulmalıdır. Bu
tablolara ilişkilendirilmelidir.
Örnek: Kitap bilgilerinin sakladığı tabloda KitapNo, Adı, Yazar,
Yayınevi alanları vardır. Bu tabloda Yazar isimleri Kitap bilgilerinin konusu
değildir. Aynı şekilde Yayınevi isimleri de kitap bilgisi değildir. Yazar ve
Yayınevi için ayrı tablolar oluşturulmalıdır. Fakat “Kitap hangi yayınevinde
basılmıştır?” sorusunun cevabı kitap tablosunda bulunmalıdır. Bu durumda
yayınevinin adı yerine yayınevinin temsilci bilgisi yani kod numarası kitap
tablosuna eklenmelidir. Yeni şekli ile KitapNo, Adı, YazarNo, YayıneviNo
olmalıdır.
Aşağıdaki resimde marka isimli sütun bulunmaktadır. Marka ürün bilgisi
değildir. Bu nedenle marka ayrı bir tablo yapılmalı ve ürün tablosuna marka
tablosunun temsilcisi konmalıdır.
Örnek:
↓
DİKKAT: Diğer taraftan marka sütununa dikkat edilirse veri tekrarı
vardır. Yani aynı marka ismi farklı kayıtlarda tekrar edebilmektedir. Örneğin
“Intel” markası iki defa tekrarlanmıştır. Bir sütunda veri tekrarının olması o
sütunun bu tabloya ait olmadığının işaretidir.
Örnek:
Çözüm önerisi:
Tekrarlanan veriler var mı? Tekrarlanan verilerde farklılıklar var mı?
Eğer tabloda tekrarlanan veriler içeren sütunlar varsa, veriler tekrar
edilirken hatalı girilebilme ihtimali ortaya çıkmaktadır.
Sorun: Bir tabloda birden fazla sayıda konu var.
Çözüm: Tabloda bulunan her konu ayrı birer tabloya ayrılmalıdır.
Aktarılan tablonun temsilcisi bu tabloya eklenmelidir.
4
4..1
1..3
3.. H
Heerr ttaab
bllo
od
daa,, kko
on
nu
ussu
un
naa u
uyyg
gu
un
nb
biirriin
ncciill aan
naah
httaarr
o
ollaaccaakk
Birincil anahtarın esas olarak iki amacı vardır. Birincisi Tabloları
ilişkilendirmede gereklidir. İkincisi ise tablo içinde satırlara (kayıtlara)
ulaşmada gereklidir.
Dolayısıyla her tabloda, bulunan kayıtlarda birine ulaşılmak istendiğinde
birincil anahtara ihtiyaç olacaktır. Bu nedenle her tabloda birincil anahtar
olmalıdır.
Birincil anahtar Tablonun konusuna bakılarak belirlenir. Birincil anahtar
tablodaki her alanı temsil etmelidir. Yani tablonun temsilcisi olmalıdır.
Sorun: Tabloda birincil anahtar yok.
Çözüm: Tabloda mevcut alanlardan biri konuya uygun olarak birincil
anahtar yapılmalıdır. Eğer uygun bir alan yoksa yeni bir alan eklenerek
birincil anahtar yapılmalıdır.
4
4..1
1..4
4.. T
Taab
bllo
od
daakkii h
heerr aallaan
n b
biirriin
ncciill aan
naah
httaarraa b
baağ
ğllıı
o
ollaaccaakk
Tablo içinde bulunan alanlar, tablo konusuna da bakılarak birincil
anahtara bağlı olmalıdır. Eğer bir alandaki bilgiyi birincil anahtar temsil
etmiyorsa o alan yeni bir tablo yapılarak, oluşturulan yeni tablonun temsilcisi
tabloya eklenmelidir.
4.1.2 nolu başlıkta yer alan örnekte aynı durum vardır.
Sorun: Tablodaki bir veya daha fazla alan birincil anahtara bağlı
değil.
Çözüm: Bu alan yeni bir tabloya aktarılarak, oluşturulan yeni
tablonun temsilcisi eklenmelidir.
4
4..1
1..5
5.. E
Eğ
ğeerr b
biirriin
ncciill aan
naah
httaarr b
biirrd
deen
n çço
okk ssü
üttu
un
nd
daan
n
o
ollu
uşşu
uyyo
orrssaa,, ttü
üm
m aallaan
nllaarr b
bu
ub
biirriin
ncciill aan
naah
httaarr ssü
üttu
un
nllaarrıın
naa
b
baağ
ğllıı o
ollm
maallııd
dıırr
Çift anahtar; bir tabloda iki veya daha fazla alan birlikte anahtarı
oluşturuyorsa çift anahtar adını alır. Bu durumda tablodaki diğer alanlar,
anahtarı oluşturan alanlara bağlı olmalıdır. 4.1.4 nolu başlıktaki ile aynı
düşünülmelidir.
Sorun: Tablodaki bir veya daha fazla alan birincil anahtar
sütunlarının tümüne bağlı değil.
Çözüm: Bu alan yeni bir tabloya aktarılarak, oluşturulan yeni
tablonun temsilcisi eklenmelidir.
4
4..1
1..6
6.. A
Ayyn
nıı aallaan
nb
biirrd
deen
n ffaazzllaa ttaab
bllo
od
daa b
biirriin
ncciill aan
naah
httaarr
o
ollaam
maazz
Bir veri tabanında aynı içeriğe sahip olan bir alan, fazla sayıda tabloda
birincil anahtar olamaz. Böyle bir durum varsa bu tablolar birleştirilmelidir.
Sorun: Aynı alan veri tabanında başka bir tabloda da birincil anahtar
yapılmış.
Çözüm: Birincil anahtarları aynı olana tablolar birleştirilerek tek tablo
haline getirilmelidir.
4
4..1
1..7
7.. S
Sü
üttu
un
nllaarraa yyaayyııllm
mıışş aayyn
nıı ttü
ürrd
deekkii aallaan
nllaarr vvaarrssaa
aayyrrıı b
biirr ttaab
bllo
od
daa ssaakkllaan
nm
maallııd
dıırr
Bir müşterinin kimlik bilgilerinin saklandığı bir tabloda ev telefonu, iş
telefonu, faks numarası için ayrı sütunlar bulunuyorsa, bazen müşterinin
sadece tek bir telefon numarası olabilir. Bu durumda faks numarası ve ev
telefonu sütunları boş kalacaktır. Bazen de müşterinin 4 farklı telefonu
olabilir. Bu durumda bu müşterinin telefonlarını yazmak için yer
olmayacaktır.
Kitap tablosunda Yazar1, Yazar2, Yazar3 gibi. Bu tip aynı tür bilgi
içeren birden fazla sütun olduğunda içine veri girilmeyen hücreler
oluşabilmektedir. Aşağıdaki resimde de bir örneği gösterilmiştir. Reyon,
resyon2 alanları aynı tür bilgi içermektedir. Bazı durumlarda boş kalmaktadır.
Bu durumda bu sütunlar tamamen tablodan kaldırılmalı ve yeni bir tablo
oluşturulmalıdır.
Boş bırakılan alanlar tercih edilmemeli
Sorun: Bir tabloda aynı bilgi içeriğine sahip birden fazla alan var.
Çözüm: Bu bilgiyi içeren yeni bir tablo oluşturularak ana tablonun
temsilcisi yeni oluşturulan tabloya eklenmelidir.
4
4..1
1..8
8.. H
Hü
üccrreelleerree aayyrrıı ssaattıırrllaarrd
daa yyaazzııllm
maassıı g
geerreekkeen
n
b
biillg
giilleerr iiççiin
n ssü
üttu
un
nllaarr o
ollu
uşşttu
urru
ullm
mu
uşşssaa,, tteekk b
biirr ssü
üttu
un
n
o
ollu
uşşttu
urru
ullu
up
p ssaattıırrllaarraa yyaazzııllm
maallııd
dıırr
Bazı durumlarda bu hata yapılabilmektedir. Örneğin Kütüphane takibi
için aşağıda verilmiş örnekte kitap türleri için bir tablo oluşturulmuş. Kitap
Tür tablosunda ise sütun isimleri olarak kitap türleri verilmiştir.
Bir tabloda veriler hücrelerin içine yazılmalıdır. Sütunlara verilen
isimler veri olarak değerlendirilmez.
ÜrünTür
Ütn
Gıda
Kırtasiye
Temizlik
Beyaz Eşya
Siyah Eşya
ÜrünTür
Ütn
Tür
ÜrünTür
Ütn
Gıda
1 Şeftali
ÜrünTür
Ütn
1
2
3
4
5
.
.
Kırtasiye
Defter
Temizlik
Bingo
Beyaz Eşya Siyah Eşya
Dolap
Siyah Dolap
Tür
Gıda
Kırtasiye
Temizlik
Beyaz Eşya
Siyah eşya
.
.
Sorun: Veriler tabloda hücre içinde saklanır. Bu veriler sütun ismi
yapılmış
Çözüm: Tablonun tasarımı verileri hücre içinde saklayacak şekilde
düzenlenmelidir.
4
4..1
1..9
9.. U
Uyyg
gu
un
n aallaan
n ttiip
plleerrii sseeççiillm
meellii
Uygun alan tipinin seçilmesinde;
 Girilecek veriye uygun alan tipi seçilmeli
 Mümkün olduğunca en küçük boyutlu alan tipi seçilmeli
Öncelikle hangi tür veri girilecekse o alan tiplerinden biri seçilmelidir.
Örneğin tarih bilgileri girmek için Metin alan tipi seçilebilir. Veri
girişinde herhangi bir sorun çıkmayacaktır. Fakat daha sonra süzme ve
sıralama işlemleri yapılmaya çalışıldığında hatalı sonuçlar alınacaktır. Tarihler
metin tipinde girilirse sıralama yapıldığında tarihe göre değil de metne göre
sıralama yapılacaktır.
Metin Tipinde saklanmış tarihler
sıralaması
01/12/2013
02/01/2012
15/03/2000
16/11/2013
21/12/2013
Tarih Tipinde saklanmış tarihler sıralaması
15/03/2000
02/01/2012
16/11/2013
01/12/2013
21/12/2013
Sorun: Tabloda sütunların içeriğine uygun alan tipi seçilmemiş.
Çözüm: Her sütun için tek tek inceleyerek uygun alan tipleri
verilmelidir.
4
4..1
1..1
10
0.. T
Taab
bllo
o vvee A
Allaan
n İİssiim
mlleerrii
Bir veri tabanında tablolara ve alanlara isim verilmesinde veri tabanının
belirlediği kurallara uymak zorunludur. Fakat bu kurallar fazla bir sınırlama
getirmemektedir. Daha sonrada bazı hatalar ortaya çıkmaktadır. Bu nedenle
aşağıdaki tavsiyelere uyulması tasarım ve kullanım açısından fayda
sağlayacaktır.
1. Sadece İngiliz alfabesinde olan harfler kullanılmalıdır.
2. _ (Alt tire) dışında herhangi bir noktalama işareti kullanılmamalıdır.
3. Boşluk karakteri kullanılmamalıdır. Boşluk yerine ya alt tire işareti
kullanılmalı, ya da kelimelerin ilk harfleri büyük diğer harfler küçük
harfler kullanılmalı.
4. İsimler kısa ve öz olmalıdır. O tablodaki veya sütundaki veriyi temsil
edecek bir isim olmalıdır.
5. Bir tablo içinde alan ismi verilirken alan isimlerinin başına tablonun
ismi eklenmemelidir. Müşteri Tablosunda MüşteriNo, MüşteriAdı,
MüşteriSoyadı, MüşteriTel, MüşteriAdres gibi sütun isimleri
kullanılmamalıdır. Her alan adının başında Müşteri kelimesi vardır.
Zaten bu tablo müşteri tablosudur. Her alan adının başına Müşteri
eklenmesi uygun değildir. Doğrusu: MüşteriNo, Adı, Soyadı, Tel,
Adres olmalıdır.
Sorun: Tablo ve alan isimleri verilirken tavsiyelere uyulmamış.
Çözüm: Tablo ve alan isimleri tek tek tavsiyelere uygun şekilde
düzenlenmelidir.
44..22.. V
Veerrii T
Taabbaannıı E
Enn İİyyiilleeşşttiirrm
mee U
Uyygguullaam
maassıı
1-Aşağıda tabloların resmi bulunan bir veri tabanı: Kütüphane takip
Tüm tabloların şematik görünümü
Bu veri tabanına bakıldığında ilk görülen her kitap türü için ayrı birer
kitap tablosu oluşturulduğudur. Bunun amacı da türlere göre kitapları ayrı
tablolarda tutarak karışıklığın önlenmesidir.
Bu tablolara veri girişi yapılmak istendiğinde Derleme_turu, Ders
Kitabı_turu, Edebiyat_turu, Roman_turu, Tarih_turu tablolarına rahatlıkla
bilgi girişi yapılabilmektedir. Fakat bir kitabın üçten fazla yazarı varsa bu
tablolara girilmesi mümkün değildir.
Üye bilgisi tablosunda veri girişinde yine kiraladığı kitap diye bir alan
vardır. Bir üye birden fazla sayıda kitap kiralar ise buraya kitap adının
girilmesinde problem çıkmaktadır. Çünkü sadece tek bir kitabın adı
yazılabilir.
Kiralama işlemi ile ilgili Kiralama tablosu bulunmaktadır. Üyelerin
kiraladığı kitaplar bu tabloya girilecektir. Diğer taraftan Üye Bilgisi
tablosunda da kiraladığı Kitap alanı bulunması bir çelişkidir. Diğer bir sorun
ise Kiralama tablosunda kitap yazarı için tek bir sütun bulunmaktadır. Kitap
tablolarında ise üç adet yazar sütunu bulunmaktadır. Bu nedenle Kiralama
tablosunda eksik bilgi girişi olmaktadır.
Kitap Türleri tablosunda ise veri girişi yapılmak istendiğinde hücrelere
ne gibi bir bilgi girilmesi gerektiği meçhuldür. Bu tabloya girilebilecek hiçbir
bilgi bulunmamaktadır.
İşlem Tarihleri tablosunda ise konu kiralama işlemidir. Yani kiralama
işlemi ile ilgili bilgiler vardır. Aslında kiralama işlemi için kiralama tablosu
bulunmaktadır. Diğer taraftan bu tabloda eksik bilgi vardır. Hangi kitap
kiralandı belli değildir.
Kitap isimleri ise Kitap tablolarına girilir, ayrıca her kiralama işleminde
tekrar yazılır. Yani kitap bilgileri farklı tablolara tekrar tekrar yazılmaktadır.
Bu da veri tabanının çabuk dolmasına ve fazla yer tutmasına sebep olur. Diğer
taraftan kitap isimleri tekrar tekrar yazıldığında farklı yazımlar söz konusu
olur.
Bu veri tabanının en iyi hale getirilmesi için on maddeden oluşan
iyileştirme kurallarını uygulamak gereklidir.
Kurallardaki 9. Ve 10. Maddeler en son uygulanması daha doğru
olacaktır. Çünkü veri tabanı yapısı oldukça değişecektir. Uygun alan tiplerinin
seçimi ve alan isimleri düzenlemesi en son yapılırsa daha iyi olacaktır.
Kurallardaki 1. Madde uygulanırsa;
Kitap tablolarında parçalanacak alanlar Kitap yazarı alanlarıdır (Yazar
Adı ve Yazar Soyadı).
Üye bilgisi tablosunda Adı soyadı, adres ve telefon alanları parçalara
ayrılmalıdır.
Kiralama tablosunda ise Adı soyadı, Kitap yazarı, Kiralama yapan
personel ve Telefon alanları parçalanmalıdır.
İşlem Tarihleri ve Kitap Türleri tablolarında ise veri girişinde sorun
bulunduğu için herhangi bir parçalama yapılmamalıdır. Çünkü bu tablolar ya
silinecek ya da yapısı değişecektir.
Bu değişiklikler yapıldığında veri tabanı şeması aşağıdaki gibi olacaktır.
Kurallardaki 6. Madde uygulanırsa;
Bu aşamada dikkati çeken bir durum da Kitap tablolarıdır. Çünkü kitap
tablolarının yapıları birbirinin aynısıdır. Bu kuralı önce uygulamak yapılacak
diğer kuralların uygulanmasını kolaylaştıracaktır. 6. Kurala göre “bir alan
sadece tek bir tabloda birincil anahtar olmalıdır.” Bu durumda bu tabloların
birleştirilmesi gereklidir. 6. Madde uygulandığında veri tabanı şeması
aşağıdaki gibi olacaktır.
Kitap tablolarının birincil anahtarları hep aynıdır. Bu nedenle
birleştirilecektir. Fakat kitap tablolarındaki amaç türlere göre kitapları
sınıflamaktı. Kitap tabloları birleştirilince kitap türünü belirtmek için yeni
oluşturulan Kitap tablosuna Kitap Türü alanı eklenmelidir.
Kurallardaki 2, 3, 4 ve 5. Maddeler uygulanırsa;
2. 3. 4. ve 5. Kurallar bir birini destekleyen ve bir arada düşünülmesi
gereken kurallardır. 2. Maddeye göre “her tablonun sadece tek bir konusu
olmalıdır.”
Son duruma göre tablolar tek te düşünüldüğünde;
Üye Bilgisi tablosunda konuya uygun birincil anahtar mevcuttur. 2.
Kurala göre mevcut alanlar değerlendirildiğinde 2 farklı konu olduğu
görülmektedir. İlk konu üyelere ait kimliğini tanımlaya bilgiler ve kitap
kiralama işlemidir. Tablodaki en son alan Kiraladığı Kitap kitap kiralama
işlemidir. Zaten bu işlem için ayrıca bir tablo bulunduğundan dolayı bu alan
tablodan silinmelidir. Adresi oluşturan Mahalle, Cadde, Sokak, İlçe ve İl
isimleri Üye bilgisi değildir. Bu nedenle her biri için ayrı birer tablo yapılarak
ilgili tabloların temsilcileri Üye Bilgileri tablosuna yazılmalıdır.
İşlem Tarihleri tablosu incelendiğinde ise konu ile ilgili alanlar eksiktir.
Ayrıca işlem tarihleri kitap kiralama işlemi ile ilgilidir. Bu nedenle de bu
tablodaki alanlar kiralama tablosuna eklenmelidir ve bu tablo silinmelidir.
Kiralama tablosunda alanların bazıları zaten bulunmaktadır. Bu alanları iki
defa yazmanın bir anlamı yoktur. Farklı olan alanlar Kiralama tablosuna
eklenmelidir.
Kiralama tablosunda konuya uygun bir birincil anahtar mevcuttur. 2.
Kurala göre mevcut alanlar değerlendirildiğinde farklı konular mevcuttur.
Üyeye ait bilgiler bu tablonun konusu değildir. Tablodan çıkarılarak yeni bir
tabloya konmalıdır. Fakat üye bilgileri için bir tablo bulunmaktadır. Bu
nedenle yeni bir tabloya gerek yoktur. Aynı şekilde kitap bilgileri için tablo
bulunduğu için kitap bilgisi alanları da çıkarılmalıdır. Bunlar yerine
temsilcileri olan ÜyeNo ve KitapNo alanları eklenmelidir. Personel bilgileri
için bir tablo bulunmadığından dolayı personel adında yeni bir tablo eklenmeli
ve kiralama tablosuna temsilcisi olan PersonelNo alanı eklenmelidir.
Kitap tablosu incelendiğinde birden fazla sayıda konu olduğu
görülmektedir. Bu tabloda Kitap bilgileri, Yazar bilgileri ve Yayınevi bilgileri
vardır. 5. Kurala göre de her alan birincil anahtara bağlı olması gerektiğinden
Yazara ve Yayınevine ait bilgiler bu tabloda olmamalıdır. Diğer bir deyişle bu
tablonun birincil anahtarı tablodaki diğer sütunların temsilcisi konumundadır.
KitapNo alanı yayınevi adını temsil edemez. Aynı şekilde Kitapno alanı yazar
adını ve soyadını da temsil edemez. Sonuç olarak Yazar ve Yayınevi adında
iki tablo daha veri tabanına eklenmelidir. Kitap tablosuna YazarNo ve
YayınEviNo alanları eklenmelidir.
Tüm bu işlemler sonucunda aşağıdaki duruma ulaşılır.
Kurallardaki 7. Madde uygulanırsa;
7. Kural dikkate alındığında ise sütunlara yayılmış aynı tür ve içerikteki
bilgiler ayrı tablolara alınmalıdır.
Üye Bilgisi tablosunda telefon numaraları aynı tür bilgilerdir. Bir üyenin
birden fazla sayıda telefon numarası olabileceği gibi hiç telefon numarası da
olmayabilir. Hiç telefonu yoksa bu sütunlara bilgi girilmeyecek ve boş
kalacaktır. Boş kalmasına rağmen veri tabanında yer kaplayacaklardır. Bazen
de daha fazla sayıda telefon numarası olabilir bu durumda telefon
numaralarının hepsi yazılamaz. Bu sebeple telefon numaraları için ayrı bir
tablo oluşturulmalıdır.
Kitap tablosunda Yazar1No, Yazar2No, Yazar3No isminde alanlar
vardır. 8. Kurala göre bu alanlar aynı tür ve içerikte alanlardır. Bu kurala göre
de ayrı bir tabloya alınmaları gerekmektedir. Ayrıca Yazar tablosuna da
Kitap tablosunun temsilcisi eklenmelidir.
Kiralama tablosunda tarih tipinde alanlar vardır. Bunlar da aynı türde
bilgi olarak düşünülebilir. Fakat bu tarih alanlarının her biri farklı konuyu
ifade etmektedir. Bu nedenle ayrı bir tabloya alınmaları yanlış olur.
Kurallardaki 8. Madde uygulanırsa;
8. Kural dikkate alındığında Kitap Türleri tablosunda olduğu gibi veriler
(bilgiler) hücrelerin içine yazılması gereken bilgiler sütun ismi yapılmıştır. Bu
düzeltmeyi de yaptıktan sonra veri tabanı şeması aşağıdaki gibi olur.
Kurallardaki 9. Ve 10. Maddeler uygulanırsa;
Veri tabanında yer alan tüm tabloların isimleri ve alan isimleri
tavsiyelere uyularak düzeltilmelidir.
Diğer taraftan ise tüm tablolarda alan tipleri düzenlenmelidir.
Bu düzeltmeler yapıldıktan sonra veri tabanı aşağıdaki şekli almaktadır.
Bu maddeler uygulandıktan sonra veri tabanında ilişkilendirmelerin
yapılması gerekir. Buna göre ilişkili olabilecek tablolar tespit edilmelidir.
Aslında şu ana kadar yaptığımız parçalama işlemlerinde yeni oluşturulan
tablolar hangi tablolardan ayrıldıysa o tablo ile ilişkili olma ihtimali yüksektir.
Sıra ile tabloları ele alacak olursak:
Personel: bu tablodan ilçe ve şehir alanları ayrılarak yeni tablolar
oluşturulmuştu. Bir personelin adresi yazılırken “hangi şehir? Hangi İlçe?”
sorularının cevabı olmalıdır. Bu durum da Şehir ve İlçe tabloları ile Personel
tablosu ilişkilendirilmelidir.
Personel ve Şehir tablolarını incelersek ilişkilendirme için birincil
anahtar özelliğindeki alanlar kullanılacaktır. Bu nedenle iki durum olabilir.
1-Şehir tablosuna PerNo alanı eklenip ilişkilendirilebilir.
2-Personel tablosuna ŞehirNo alanı eklenip ilişkilendirilebilir.
Bunlardan hangisinin doğru olduğu iyi düşünülmelidir.
Bu durumlar yukarıda şematize edilmiştir.
Sırayla düşünecek olursak
1-Bir personel, birçok şehir (bir personel bir çok şehirde oturuyor)
2-Bir Şehir, birçok personel (bir şehirde birçok personel oturuyor)
Bu iki durum düşünüldüğünde 2. Durumun doğru olduğu görülmektedir.
Aynı şekilde İlçe tablosu ile ilişkilendirme yapılmalıdır. Dolayısıyla
Personel
tablosuna
ŞehirKodu
ve
İlçeKodu
alanları
eklenip
ilişkilendirilmelidir.
Üye: Üye tablosu da şehir ve ilçe tabloları ile ilişkilendirilmelidir.
Çünkü Üye tablosundan şehir ve İlçe sütunları silinmişti. Personel tablosunda
olduğu gibi düşünüldüğünde Üye tablosuna ŞehirKodu ve İlçe Kodu alanları
eklenerek ilişkilendirme yapılmalıdır.
Üye tablosu ile Telefon tablosu da ilişkilendirilmelidir. Çünkü Telefon
numaraları Üye tablosundan alınarak yeni bir tablo oluşturulmuştu.
Bu iki tablo ilişkilendirilirken yine iki durum söz konusudur.
1-Üye tablosuna TelKodu alanı eklenip ilişkilendirilmelidir.
2-Telefon tablosuna Üye Numarası alanı eklenip ilişkilendirilmelidir.
Bu iki durumu düşünürsek aşağıdaki gibi yorumlanır.
1-Bir Telefon, Birçok üye (Bir telefon birçok üyeye aittir)
2-Bir Üye, Birçok Telefon (Bir üyenin birçok telefonu vardır)
Bu durumda ikinci yorum doğrudur. Telefon tablosuna Üye numarası
eklenerek ilişkilendirme yapılmalıdır.
Kitap: Veri tabanı parçalama işlemi yapılırken kitap tablosundan ayrılan
yazar, yayınevi tabloları ile kitap tablosu ilişkilidir. Buna göre ilk olarak
yayınevi tablosu ile kitap tablosunu düşündüğümüzde “Bir yayınevinin
yayınladığı birçok kitap vardır.” Yorumu doğrudur. Buna göre kitap tablosuna
YayıneviNo eklenerek ilişkilendirme yapılmalıdır.
Kitap ve Yazar tablosunu düşündüğümüzde:
1-Kitap tablosuna YazarNo eklenerek ilişkilendirme yapılmalıdır.
2-Yazar tablosuna KitapNo eklenerek ilişkilendirme yapılmalıdır.
Buna göre yorumlama yaparsak
1-Bir kitabın birçok yazarı vardır
2-Bir yazarın birçok kitabı vardır
Şeklinde iki yorum söz konusudur. Bu yorumlara bakılınca her iki
yorumun da doğru olduğu görülür.
Her iki yorum da doğru olursa bu iki tablo doğrudan ilişkilendirilmez,
bir aracı tablo oluşturulur.
Yorumlardan biri doğru olursa o yoruma göre ilişkilendirme yapılır.
Eğer yorumların ikisi de doğru değil ise bu iki tablo ilişkilendirilemez.
Her iki yorum doğru olduğu için bu iki tabloya aracı olacak bir tablo
eklenir. KitapYazar isminde yeni bir tablo eklenir. Bu tabloya diğer iki
tablonun birincil anahtar özelliğindeki alanları eklenir. Ve şekilde görüldüğü
gibi ilişkilendirme yapılır.
Diğer taraftan Kitap tablosu ile Tür tablosu da ilişkilendirilmelidir.
Çünkü tür tablosunda kitap türleri saklanmaktadır. Bu iki tablo arasında da
“Bir türe ait birçok kitap vardır” yorumu doğru olduğu için Kitap tablosuna
TürNo alanı eklenerek ilişkilendirme yapılmalıdır.
YayınEvi: Yayınevi tablosunda adres bilgilerinden ilçe ve şehir ayrı
tabloya alındığı için Yayınevi tablosu ile İlçe ve Şehir tabloları
ilişkilendirilmelidir. Personel ve Üye tablolarında olduğu gibi burada da
ilişkilendirme yapılır. Yayınevi tablosuna İlçeKodu ve ŞehirKodu alanları
eklenerek ilişkilendirmeleri yapılır.
Kiralama: Kiralama işlemi düşünüldüğünde;
Hangi kitap kiralandı?
Hangi üye kiraladı?
Kiralama işlemini hangi personel yaptı?
sorularının cevabı yoktur. Her bir soru için kiralama tablosuna alanlar
eklenmelidir. Diğer taraftan ilişkilendirme yorumlarına bakarsak yine aynı
sonuca ulaşırız.
1-Bir kitap birçok üye tarafından kiralanabilir.
2-Bir üye birçok kiralama işlemi yapabilir.
3-Bir personel birçok kiralama işlemi yapabilir.
Buna göre Kiralama tablosuna KitapNo, Üye numarası ve PersonelNo
alanları eklenerek ilişkilendirme yapılmalıdır.
44..33.. B
Baazzıı Ö
Örrnneekklleerr
Örnek 1:
Alan Adı
*TakipNo
Ogrno
Adı Soyadı
Ders kodu
Ders Adı
Öğretim Elemanı
Teorik
Uygulama
Kredi
Öğrenci Not Takip
Alan Tipi
Otomatik Sayı
Tamsayı
Metin(20)
Tamsayı
Metin(30)
Metin (15)
Ondalık
Ondalık
Ondalık
Vize
Final
Başarı Notu
Durum
Örnek 2:
Otel Takip
Alan Adı
*TakipNo
Müşteri
Adres
Tel1
Tel2
Tel3
Oda No
Odanın özelikleri
Oda Kat No
Oda Kişi Sayısı
Oda Günlük Ücret
Ücreti
Giriş Tarihi
Çıkış Tarihi
Kaldığı gün sayısı
Toplam Ücret
Ödenen Ücret
Uzun tamsayı
Uzun tamsayı
Uzun tamsayı
Metin (20)
Alan Tipi
Otomatik Sayı
Adı Soyadı
Metin 20
Uzun Tamsayı
Uzun Tamsayı
Uzun Tamsayı
Uzun Tamsayı
Uzun Tamsayı
Uzun Tamsayı
Uzun Tamsayı
Ondalık
Metin 12
Metin 12
Metin 12
Bayt
Bayt
44..44.. Ç
Çöözzüüllm
müüşş Ö
Örrnneekk
Market Takip
5
5.. S
SQ
QLL S
SE
ER
RV
VE
ER
R
Daha önceki derslerde SQL Server veri tabanından bahsedilmişti. SQL
Server veri tabanına bağlanabilmek için mutlaka bilgisayar üzerinde SQL
Server programının kurulu olması gerekir. Veri tabanını kendi programımız
içinden doğrudan kullanılamaz. Veri tabanına ulaşmak için SQL Server
programına ihtiyaç vardır. SQL Server programı veri tabanına bağlanır ve
bizim kullanmamıza açar. Access veri tabanında böyle bir durum yoktur.
Doğrudan Access veri tabanını kullanabiliriz.
Veritabanı
SQL Server
Uygulama
Yazılımı
SQL Server’ın iki farklı sürümü vardır. Express sürüm ve tam sürüm.
Tam sürüm ücretlidir. Sınırsız erişim izni vardır. Express sürümde ise sadece
5 erişime izin vermektedir. Ve ücretsizdir. Bir programın hazırlanmasında
SQL Server Express yeterli olmaktadır. Fakat yapılacak programda kullanıcı
sayısı çok olursa bu sürüm yeterli olmamaktadır.
SQL Server Tam sürüm kurulduğunda bir yönetim paneli de
kurulmaktadır (SQL Server Management Studio). Bu panel kullanılarak veri
tabanı oluşturulup yönetilebilir. Fakat SQL Server Express sürüm
kurulduğunda bir yönetim paneli kurulmaz. Yönetim paneli olmasa da SQL
server çalışır ve kullanılabilir. Fakat istenirse www.microsoft.com sitesinden
yönetim paneli programı indirilebilir (SQL Server Management Studio
Express). Bu yönetim paneli kurulduktan sonra SQL server veri tabanlarını
rahatlıkla oluşturabilir ve kullanabiliriz.
55..11.. S
SQ
QLL S
Seerrvveerr’’ee B
Baağğllaannm
maa
SQL Server kurulduktan sonra çalışmaya başlar ve devamlı olarak
çalışır. Yönetim paneli kullanarak SQL Server’de veri tabanı işlemleri
yapılabilir. SQL Server Management Studio Express çalıştırılınca ilk olarak
hangi SQL Server’e bağlanacağı, kullanıcı bilgileri belirlenir ve o şekilde
bağlanılır.
Server type: Bu sabit olarak “Database Engine” seçilir.
Server name: Bu bağlanılacak serverin adı ve paylaşım adı yazılır.
“.\SQLEXPRESS” yazılırsa bulunduğumuz bilgisayardaki SQL Server
Express’e bağlanılacağı belirtilmiş olur. Yazılan nokta işareti kendi
bilgisayarımızı simgeler. Başka bir bilgisayar ise o bilgisayarın adı yazılır.
Authentication: SQL Server veri tabanına bağlanmak için mutlaka
kullanıcı adı ve parolaya ihtiyaç vardır. Kullanıcı adı ve parola olarak istenirse
Windows işletim sisteminde tanımlı olan kullanıcı adı ve parolalar tercih
edilebilir. Bu durumda alt kısımda kullanıcı adı ve parola bölümü devre dışı
kalmıştır. Bu durumda Windows işletim sistemimizi açtığımız kullanıcı adı ve
parolası veri tabanına erişimde kullanılır. İstenirse SQL Server içinde
tanımlanmış olan kullanıcı adı ve parolalar da tercih edilebilir. Bunun için
“SQL Server Authentication” seçilmelidir. Bu durumda ise alt kısımdaki
Login kısmına SQL Server’de tanımlı olan kullanıcı adı, Password kısmına ise
parolası yazılır. Ve o şekilde bağlantı sağlanır. SQL Server kurulduğunda
tanımlı olan “sa” (System Admin) kullanıcısı mevcuttur ve parolası yoktur.
Connect düğmesine basılarak bağlantı sağlanır. Bağlantı sağlandığında
aşağıda resimde görülen ekranın sol tarafındaki kısımda SQL Server’in
birimleri görülmektedir.
Önemli olan seçenekler aşağıda listelenmiştir.
Database: veri tabanlarının bulunduğu kısım.
Security: güvenlik ayarlarının yapıldığı kısım
Database kısmı altında veri tabanları listelenmiştir. Bu listenin başında
System Database seçeneği sistem veri tabanlarını barındırır. Kullanıcı veri
tabanları ise altta sıralanmıştır.
55..22.. S
SQ
QLL S
Seerrvveerr’’ddee V
Veerrii ttaabbaannıı oolluuşşttuurrm
maa
Database seçeneği üzerinde farenin sağ tuşuna basılır ve orada “New
Database” seçilir.
Ekrana gelen pencerede “Database name” kısmına veri tabanı adı yazılır.
SQL Server veri tabanı iki dosyadan oluşur. Biri verilerin saklandığı dosyadır.
Diğeri ise yapılan işlemlerin belirlendiği dosyadır.
İstenirse oluşturulacak veri tabanının bulunacağı klasör değiştirilebilir.
Veri tabanı adı yazıldıktan sonra Ok düğmesine basılarak veri tabanı
oluşturulur. Veri tabanının ismi listeye eklenir. Veri tabanı adının solundaki
artı işaretine basılınca aşağıda resimde görülen bölümler listelenir.
Bu listede veri tabanımızdaki nesneler yer almaktadır.
Database Diagrams: İlişkilendirme şeması
Tables: Tablolar
Views: Sorgular
55..33.. S
SQ
QLL S
Seerrvveerr’’ddee T
Taabblloo
SQL Serverde yeni bir tablo oluşturmak için sol taraftaki Veri Tabanı
nesnelerinin listelendiği ağaç yapısındaki bölümden Tables seçeneği üzerinde
farenin sağ tuşuna basılır ve “New Table” seçilir. Sağ bölmede tablo
oluşturma penceresi ekrana gelir.
üstte alan adı (Column Name), Alan tipi (Data Type) ve boş bırakılabilir
(Allow Nulls) sütunları gelir. Alt kısımda ise seçili alan ile ilgili özellikler
listelenir.
5
5..3
3..1
1.. S
SQ
QLL S
Seerrvveerr T
Taab
bllo
oÖ
Özzeelllliikklleerrii
55..33..11..11.. A
Allaann A
Addıı
Alan adlarında boşluk karakteri, harfler, rakamlar ve bazı diğer
karakterler (parantezler, nokta, vb.) kullanılabilir. Alan adı belirlenirken daha
sonra hataya sebep olmaması için aşağıdaki tavsiyelere uyulmalıdır.
Tavsiyeler:
1-Mümkün olduğunca kısa ve anlaşılır isimler kullanılmalı.
2-Sadece İngiliz alfabesinde olan harfler kullanılmalı.
3-Boşluk karakteri kullanılmamalı.
4-Hiçbir noktalama işareti kullanılmamalı
5-Alan isimleri yazılırken küçük harfler tercih edilmelidir.
Türkçede bulunan Ğ Ü Ş İ Ç Ö ğ ü ş ı ç ö harfleri alan isimlerinde
kullanılmamalıdır. Özellikle ı harfi İngiliz alfabesi ile çatışmaktadır. En büyük
sorun bu harften kaynaklanmaktadır. İngiliz alfabesinde bir adet i harfi varken
Türkçede iki adet i harfi vardır. Küçük harf kullanılırken noktalı, büyük
harf kullanılırken noktasız kullanılmalıdır.
Alan isimleri birden fazla kelimeden oluşuyorsa boşluk karakteri yerine
alt tire işareti kullanılabilir. Ya da kelimeler birleştirilir ve her kelimenin ilk
harfi büyük harf yapılır.
55..33..11..22.. A
Allaann T
Tiippii
Access Alan Tipi
Otomatik Sayı
SQL Server Alan Tipi
----
Sayı-Bayt
Sayı-Tamsayı
Sayı-Uzun Tamsayı
--Sayı-Ondalık
Sayı-Tek
Sayı-Çift
Para Birimi
---Evet/Hayır
Tarih/saat
Tinyint
Smallint
int
Bigint
Decimal – numeric
real
Float
Money
Smallmoney
bit
Datetime
----
Smalldatetime
Metin
Not
----
------char
varchar - text
varchar(max)
nchar
nvarchar - ntext
nvarchar(max)
Tamsayıları saklar 4 bayt yer kaplar, 1 den başlayarak artan değerler
verir
0-255 arasındaki tamsayılar 1 bayt yer kaplar
Tamsayıları saklar 2 bayt yer kaplar
Tamsayıları saklar 4 bayt yer kaplar
Tamsayıları saklar 8 bayt yer kaplar
Ondalık sayıları saklar 12 bayt yer kaplar
Ondalık sayıları saklar 4 bayt yer kaplar
Ondalık sayıları saklar 8 bayt yer kaplar
Parasal değerleri saklar 4 ondalık hane bulunur. 8 bayt yer kaplar
Parasal değerleri saklar 4 ondalık hane bulunur. 4 bayt yer kaplar
Bir bit yer kaplar iki farklı durumu saklar
1 Ocak 1753 – 31 Aralık 9999 tarihleri arasını kapsar
3.33 milli saniye duyarlılık
1 Ocak 1900 – 6 Haziran 2079 tarihleri arasını kapsar
1 dakika duyarlılık
En fazla 255 karakter saklayabilir
En fazla 65536 karakter saklayabilir
8000 karakter saklayabilir
8000 karakter saklayabilir. Sondaki boşluları atar
En fazla 2^31-1 bayt yer kaplar. Her harf bir bayt yer kaplar. Sondaki
boşlukları atar
4000 unicode karakter saklar.
4000 unicode karakter saklar. Sondaki boşlukları atar
En fazla 2^31-1 bayt yer kaplar. Unicode sakladığı için her harf 2 bayt
yer kaplar. Sondaki boşlukları atar
SQL Server’de metin içeriği saklayabilen alanlar aşağıda verilmiştir.
Bunların farkları ise altta açıklanmıştır:
Char, Nchar,
Varchar(Max):
Ntext,
Nvarchar,
Nvarchar(Max),
Varchar,
Başında “n” olmayanlar sadece ASCII karakterlerinde kullanılır
Başında “n” olanlar ise Unicod kodlama sistemi vardır ve dünyadaki tüm
dillerdeki harfleri içerir. Eğer Türkçe karakter girişi yapılmak isteniyorsa “n”
olanlar tercih edilir.
Başında “var” kelimesi olmayanlar mutlaka belirtilen karakter kadar yer
tutar. Boşlukları da saklar. “var” kelimesi varsa sadece içine girilen bilgiyi
saklar.
Alan tiplerinde text ve ntext değişken tipleri vardır bunları sık olarak
kullanmayız. Veri tabanı kullanırken alan tiplerini doğru belirlenmesi
gereklidir.
Örneğin web sitesi yaparken çok önemlidir. Tarih yazıyorsak tarih alan
tipini belirtmemiz lazım. Alan tipimizi tarih değil de metin seçersek kullanıcı
istekte bulunduğunda hangi tarihi göstereceğini bilemez. Bu sadece web sitesi
yaparken değil her hangi bir program yazarken de alan tiplerini doğru
belirtmemiz lazım.
55..33..11..33.. V
Vaarrssaayyııllaann D
Deeğğeerr
SQL Serverde varsayılan değer özelliği Default Value or Binding
özelliği ile sağlanır. Değer bu özelliğe yazılır. Tarih tipindeki alanlarda şu
anki zamanı veren fonksiyon GetDate() dir (Access’te Date() idi).
55..33..11..44.. G
Geerreekkllii
SQL Server’de gerekli özelliği Tablo Tasarım penceresinde “Allow
Nulls” özelliği ile yapılır. Seçili ise o alan boş bırakılarak kayıtlar eklenebilir.
Fakat işaretli değilse o alana bilgi girmeden yeni kayıt ekleyemeyiz. Mutlaka
bilgi girilmelidir.
55..33..11..55.. O
Ottoom
maattiikk A
Arrttıışş
Access’te alan tiplerinde otomatik sayı bulunmaktadır. Fakat SQL
Server’de bu izimde bir alan tipi yoktur. SQL Server’de tinyint, smallint, int
ve bigint tamsayı alan tiplerinde otomatik artış uygulanabilir. Otomatik artış
için alan özelliklerinde “identity specification” özelliğini (Yes) olarak
ayarlamak gerekir.
55..33..11..66.. IInnddeexx
Access veri tabanında sıralı özelliği ile bir sütuna index eklenebiliyordu.
Sıralı özelliğinde Evet (Yineleme Yok) Evet (Yineleme Var) seçenekleri
vardı. Bunla SQL Server’de Index/Keys seçeneği ile yapılır. Tablo
tasarımında farenin sağ tuşu ile açılan menüde Index/Keys seçilir. Burada
Tabloda indexler listelenir. İstenirse bunların özellikleri değiştirilebilir veya
yenisi oluşturulabilir.
Yeni Index eklenirken önce sütun ismi sorulur ve yanında artan
(Acsending) veya azalan (Descendig) seçilir. Daha sonra sağ tarafta
özelliklerde Is Unique özelliği ile veri tekrarına izin verilip verilmeyeceği
belirlenir.
55..44.. S
SQ
QLL S
Seerrvveerr’’ddee İİlliişşkkiilleennddiirrm
meelleerriinn Y
Yaappııllm
maassıı
SQL Server’de ilişkilendirme Database Diagrams ile yapılır.
Database Diagrams üzerinde farenin sağ tuşuna basılır. Açılan menüden
New Database Diagram seçilir. Açılan pencerede hangi tablolar
ilişkilendirilecekse o tablolar seçilerek Add düğmesine basılır. Close
düğmesine basılarak bu pencere kapatılarak Diagram penceresine dönülür.
Burada tablolar yerleştirilir ve ilişkilendirmeler yapılır.
Bazı durumlardan bu işlem yapıldığında hata ile karşılaşılabilir. Bu
durumda Araç çubuğunda “New Query” düğmesine basılır gelen metin alana
aşağıdaki kod yazılır
ALTER AUTHORIZATION ON DATABASE::veritabanı TO sa
Bu kodda veri tabanı kısmına kendi veri tabanınızın adı yazılmalıdır.
Öncelikle İki tablodaki ilişkilendirilecek alanlar tespit edilir. Yukarıdaki
örnek resimde mk alanları her iki tabloda ilişkilendirilecek alanlardır.
Tablonun birindeki mk alanı fare ile sürükle bırak yöntemiyle diğer tablodaki
mk alanı üzerine bırakılır. Ekrana bir pencere gelir. Burada ilişkilendirme
özellikleri vardır.
Eğer buradaki bilgiler doğru ise Ok düğmesine basılır, sonra gelen
pencerede yine Ok düğmesine basılır ve ilişkilendirme gerçekleştirilir.
55..55.. S
SQ
QLL S
Seerrvveerr’’ddee S
Soorrgguu H
Haazzıırrllaannm
maassıı
5
5..5
5..1
1.. S
SQ
QLL S
Seerrvveerr S
So
orrg
gu
uT
Taassaarrıım
mıı
SQL Server’de sorgular View olarak adlandırılır.
View seçeneği üzerinde farenin sağ tuşuna basılır ve gelen menüden
New View seçilir. Ekrana sorguda kullanılacak tabloların seçimi gelir.
Tablolar seçilip Add düğmesine basılarak eklenir ve Close düğmesine
basılarak bu pencere kapatılır ve sorgu tasarım penceresine dönülür.
Bu pencere 4 bölümden oluşur. Üstteki bölümde tablolar ve
ilişkilendirmeleri yer alır. İkinci bölümde sorguda yer alacak alanların listesi
ve özellikleri yer alır. Üçüncü bölümde bu sorgunun SQL kodu yer alır.
Dördüncü bölümde ise bu sorgunun sonucu görülmektedir.
Sorgu oluştururken ikinci bölümde alan ve tablo isimleri seçilerek
oluşturulabilir. İstenirse sorguda gösterilecek alanlar sırasıyla birinci
bölümden işaretlenerek listeye eklenebilir.
Üçüncü bölümde sorguda gösterilecek alanlar alt alta listelenmiştir. Sağa
doğru olan sütunlar ise aşağıda açıklanmıştır.
Column
: Alan adı veya işlem
Alias
: Takma isim
Table
: O alanın hangi tablodan alınacağı
Output
: Görünüm görünmeyeceği
Sort Type : Sıralama tipi seçimi (Ascendig, Descendig, Unsorted)
Sort Order : Sıralamanın olup olmayacağı. 1 seçilir
Filter
: Süzme ölçütü
Bir sorguda birden çok tablo yer alacaksa esas tablonun belirlenmesi
gerekir. Tablolar ikili ikili değerlendirilir. İlişkilenen alanlardan birincil
anahtar özelliğinde olmayan tablo esas tablo konumundadır. Diğer bir deyişle
aslında benim listelemek istediğim veriler hangi tablodaysa o tablo esas
tablodur. İlişkilendirmede de genelde birincil anahtar olmayan tablodur.
Bundan sonra sorguya alanlar yerleştirilirken öncelikle esas tablodan alınır.
Olmayan alanlar diğer tablolardan alınır.
Eğer alanlar yanlış tablolardan alınırsa veri giriş amacıyla kullanılamaz.
Hatalara sebep olur.
5
5..5
5..2
2.. S
So
orrg
gu
ud
daa M
Maatteem
maattiikksseell İİşşlleem
m vvee T
Taakkm
maa İİssiim
m
5
5..5
5..3
3.. S
So
orrg
gu
ud
daa S
Sıırraallaam
maa vvee S
Sıırraallaam
maa Ö
Ön
ncceelliiğ
ğii vveerrm
mee
5
5..5
5..4
4.. S
So
orrg
gu
ud
daa S
Sü
üzzm
mee vvee Ç
Ço
okkllu
uÖ
Öllççü
ütt K
Ku
ullllaan
nıım
mıı
5
5..5
5..5
5.. S
SQ
QLL S
Seerrvveerr’’d
dee B
Baazzıı FFo
on
nkkssiiyyo
on
nllaarr vvee İİşşlleem
mlleerr
Matematiksel (+,-,*,/)
Matematiksel işlemlerde öncelikler
()
Parantezler (işlem önceliği sağlar)
* /
Çarpma Bölme
+ -
Toplama çıkarma
Hazır fonkisyon işlemleri (Left, Rigth, Len, Upper, Lower, SubString
vb.)
Lower
Verilen metni
çevirerek verir
küçük
harfe
Lower(adı)
adı alanındaki metni küçük harflere
çevirerek verir
Upper
Verilen metni
çevirerek verir
büyük
harfe
Upper(adı)
adı alanındaki metni büyük harflere
çevirerek verir
Len
Verilen
Len(adı)
adı alanındaki metnin karakter sayısını
metindeki
karakter
sayısını verir
verir
Left
Verilen
metnin
solundan
itibaren belirli sayıda karakter
verir
Left(adı;4)
adı alanındaki
karakterini verir.
metnin
soldan
4
Right
Verilen metnin sağından itibaren
belirli sayıda karakter verir
Right(adı;4)
adı alanındaki metnin sağından 4
karakterini verir
SubString
Verilen metnin içinden belirli bir
parçayı alır
SubString(adı;2;3)
adı alanındaki metnin 2. karakterinden
başlayarak 3 karakter verir
CASE
Koşula göre farklı işlemleri yapar
CASE WHEN F > 45 THEN N'Geçebilir' ELSE N'Kesin Kaldı' END
Eğer F değeri 45’ten büyükse Geçebilir aksi halde Kesin Kaldı yaz
CASE DK WHEN 1 THEN N'1.Ders' WHEN 2 THEN N'2. Ders' WHEN 3 THEN
N'3. Ders' ELSE N'Diğer dersler' END
5
5..5
5..6
6.. G
Grru
up
p FFo
on
nkkssiiyyo
on
nllaarrıı
Veri tabanlarında sorgularda belirli temel grup işlemleri için hazır
fonksiyonlar mevcuttur.
Bu fonksiyonlar tek bir alanda ve gruplama yapılmadan kullanılırsa tüm
kayıtlar için sonucu verir. Sorgu sonucu oluşan görünümde tek bir değer
bulunur.
Sum (Topla): Sayısal bir alanda, grup içindeki kayıtlarda belirtilen
sütunda yer alan değerlerin toplamını bulur.
Avg (Ortalama): Sayısal bir alanda, grup içindeki kayıtlarda belirtilen
sütunda yer alan değerlerin aritmetik ortalamasını bulur.
Min (EnAz): Sayısal bir alanda, grup içindeki kayıtlarda belirtilen
sütunda yer alan değerlerin en küçük olanını verir.
Max (EnÇok): Sayısal bir alanda, grup içindeki kayıtlarda belirtilen
sütunda yer alan değerlerin en büyük olanını verir.
Count (Say): Grup içindeki kayıtlarda belirtilen sütunda yer alan
değerlerin (dolu hücreler) adedini verir. Eğer o alanda boş hücreler var ise
onları saymaz.
StDev (Stsapma): Sayısal bir alanda, grup içindeki kayıtlarda belirtilen
sütunda yer alan değerlerin standart sapmasını verir.
Var (Değişken): Sayısal bir alanda, grup içindeki kayıtlarda belirtilen
sütunda yer alan değerlerin Varyansını verir.
Gruplama işlemlerinde örneğin sorguda Adres alanı gruplandırılırsa her
şehirden birer adet görünecektir. Bunun yanına ilave olarak her şehirde kaç
kişi olduğunu da göstermek gerekirse, sorgu tasarımında şu işlemler
yapılmalıdır.
Adres alanı sorguya eklenir. Bu alanın Group By özelliği Group By
olarak ayarlanır (Bu sayede şehirler gruplandırılarak gösterilir).
Her şehirde kaç kişi olduğunu göstermek için Count fonksiyonu
kullanılabilir. Sayma işlemi için de herhangi bir alan sorguya eklenir. Örneğin
Adı Soyadı alanı. Bu alanın Group By özelliği Count seçilir (Bu sayede her
gruptaki Adı Soyadı alanındaki kayıtları sayar ve adedini grup için gösterir).
Her şehirdeki maaş ortalamalarını da göstermek istersek, sorguya maas
alanı da eklenir. Bu alanın Group By özeliği Avg olarak seçilir.
Örnek sorular:
 GenelDers tablosunda, teorik ve Uygulama saatlerinin ayrı ayrı
toplamlarını gösteriniz.
 Notlar tablosunda her ders için en düşük ve en yüksek final notlarını
listeleyiniz.
 Hangi şehirden kaçar öğrenci vardır.
 0314111091 numaralı öğrencinin girmiş olduğu derslerde en düşük
final notu kaçtır.
 0314111091 numaralı öğrencinin girmiş olduğu derslerde en yüksek
vize notu kaçtır.
 Genelders Tablosunda her bir dersin haftalık ders saati sayısını
listeleyiniz.
 Notlar tablosunda her bir öğrencinin başarı notlarının en düşüklerini
listeleyiniz.
 0314111056 numaralı öğrencinin Vize not ortalaması nedir
 0314111113 numaralı öğrenci kaç ders alıyor, adedini gösteriniz
 Tüm öğrencilerde en yüksek vize notlarını gösteriniz.
55..66.. S
SQ
QLL S
Seerrvveerr’’ddee S
Sttoorreedd PPrroocceedduurree
Programlama dilleri iki şekilde veri tabanlarına bağlanırlar.
Birincisinde devamlı bağlı bağlantıdır. Bunda program çalıştığı sürece
veri tabanına bağlantı vardır. Yapılan bir işlem hemen veri tabanına işlenir.
Fakat bunun dezavantajı vardır. Çok kullanıcı bağlantı sağladığında veri
tabanı aşırı yüklenir. Ve iyi bir performans gösteremez. Özellikle internet
üzerinden veri tabanına bağlantı yapıldığında bu bağlantı türü kullanılması
programı aşırı yavaşlatacaktır.
İkinci bağlantı türünde ise veri tabanına sadece veri okuma ve yazma
için bağlanılır ve işlem bitince bağlantı kesilir. Bu durumda veri tabanı
kullanılmadığında serbest bırakılmış olur. Bu sayede veri tabanı performansı
artar. Özellikle internet üzerindeki bağlantılarda büyük performans artışı
sağlar. Günümüzde artık ikinci tip bağlantı daha çok tercih edilmektedir.
İkinci tip veri tabanı bağlantısı kullanıldığında, örneğin veri tabanında
bir tabloda yer alan veriler ekranda süzülerek listelenecek olsun. Süzme işlemi
iki şekilde yapılabilir. Birincisinde veriler veri tabanından bilgisayarımıza
çekilir ve sonra süzme işlemi yapılır. İkincisinde ise Veriler veri tabanında
süzülür, süzme sonucu bilgisayarımıza çekilir.
İlkinde özellikle çok yüksek sayıda kaydı olan bir tablodaki veriler alınıp
süzülecekse işlem yavaşlamaktadır. Çünkü tüm kayıtlar bilgisayarımıza
yüklenir ve sonra süzme işlemi yapılır. İkincisinde ise süzme işlemi veri
tabanında yapılır ve süzme sonucunda elde edilen veriler bilgisayarımıza
yüklenir. İlkinde çok yüksek miktarda veri aktarılmaktadır. İkincisinde ise
sadece ihtiyacımız olan veriler aktarılmaktadır. İkinci yöntem çok daha hızlı
çalışacak bir ortam hazırlamaktadır.
Bu amaca yönelik olarak SQL Server’de stored procedure kullanılır.
Stored procedur ile veri tabanı üzerindeki tüm işlemler yapılabilir. (Kayıt
ekleme, kayıt silme, kayıt düzeltme, süzme, sıralama vb). Stored procedure’ler
parametreli olarak ta tanımlanabilir. Örneğin süzme yapan bir stored
procedure süzme ölçütünü parametre olarak alabilir.
Stored Procedures üzerinde farenin sağ tuşuna basılır, açılan menüden
new stored procedure seçilir. Sağ tarafta stored procedure oluşturucak kod
hazır olarak gelir. Bu kodlar üzerinde düzeltmeler yapılarak çalıştırılır.
Çalıştırıldığında procedure oluşturulmuş olur. new stored procedure işlemi
ile aşağıdaki kod oluşturulur.
-- ================================================
-- Template generated from Template Explorer using:
-- Create Procedure (New Menu).SQL
--- Use the Specify Values for Template Parameters
-- command (Ctrl-Shift-M) to fill in the parameter
-- values below.
--- This block of comments will not be included in
-- the definition of the procedure.
-- ================================================
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:
<Author,,Name>
-- Create date: <Create Date,,>
-- Description:
<Description,,>
-- =============================================
CREATE PROCEDURE <Procedure_Name, sysname, ProcedureName>
-- Add the parameters for the stored procedure here
<@Param1, sysname, @p1> <Datatype_For_Param1, , int> = <Default_Value_For_Param1, , 0>,
<@Param2, sysname, @p2> <Datatype_For_Param2, , int> = <Default_Value_For_Param2, , 0>
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON;
-- Insert statements for procedure here
SELECT <@Param1, sysname, @p1>, <@Param2, sysname, @p2>
END
GO
Aşağıda bir süzme işlemi için stored procedüre düzenlenmiştir.
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- procedure adı belirlenir
CREATE PROCEDURE hareketSuz
-- parametreler tanımlanır
@musteriNo int
AS
BEGIN
SET NOCOUNT ON;
-- süzme işlemini yapan ve parametre kullanan SQL kodu
SELECT * FROM hareket WHERE mk = @musteriNo
END
GO
Bu çalıştırılınca aşağıdaki şekilde görünür.
Download