Veritabanı verilerimizin “düzenli” olarak saklandığı “dijital” bir
ortamdır. Verilerimizi anlamlı kılmak, bilgimizi oluşturur. Bilişim devriminin
başladığı günlerden itibaren çok sık tekrarlanan bir ifade vardır: “Bilgiye en
hızlı ulaşan, onu işleyen, kullanan, kısacası ona hakim olan güçlü olacak.”
Verilerimiz bizim bilgimizin hammaddesidir.
Veritabanı sistemlerinin gelişmesi ile ulaşılan en son nokta ilişkisel
veritabanı kavramıdır. İlişkisel veritabanlarında, veritabanı içerisindeki
veriler bir ilişkiler bütünü içerisinde yönetilir, verinin düzgün bir şekilde
kaydedildiğinden emin olunur ve herhangi bir problem durumunda bilinen bir
noktada sistemin uyumlu olması sağlanır.
SQL (Structured Query Language) bir veritabanı dilidir. SQL herhangi bir
veri tabanı ortamında kullanılan bir alt dildir. SQL ile yalnızca veri tabanı
üzerinde işlem yapabiliriz. Bir veri tabanına yeni tablo oluştururken veya bir
tabloya kayıt eklerken, silerken, güncellerken, arama yaparken kullanılan bir
ANSI ve ISO standardıdır. SQL cümlecikleri genellikle aynı olmakla birlikte
farklı veri tabanı ortamlarında değişebilmektedir.
Bu tez veritabanı kavramları, T-SQL ve SQL tabanlı ilişkisel veritabanı
sistemleri hakkında web tabanlı eğitim vererek internet üzerinde Türkçe kaynak,
eğitim sitesi olmak amacıyla hazırlanmıştır.
Projenin hazırlanması sırasında, yardımlarını esirgemeyen Proje
Yöneticisi Yrd. Doç. Dr. Erbil AKBAY’a, Dreamweaver kullanımı ve web sayfası
tasarımı konusunda yardımlarından dolayı Sn. Ali S. KAN’ a, ASP konusunda
yardımcı olan Sn. Gürkan ÇETİNKAYA’ ya teşekkür ederim.
İÇİNDEKİLER
ÖZET
SQL VERİTABANININ WEB TABANLI EĞİTİMİ
Proje veritabanı kavramları, T-SQL anlatımı ve MS SQL Server yönetimi
olmak üzere üç bölümden oluşmaktadır.
Veritabanı kavramları ile ilgili bölümde; veritabanı, ilişkisel
veritabanı, veritabanı kavramları, tablolar, anahtarlar, veri alanları,
indexler, viewler, veritabanından beklenenler, veritabanı çeşitleri ve SQL
hakkında bilgi içeren sayfalar bulunmaktadır. Bu bölümden tüm internet
kullanıcıları faydalanabilmektedir.
T-SQL anlatımı ile ilgili bölümde; SQL komutları yardımı ile tablo
oluşturma, tablolara kayıt eklenmesi, tablolardaki kayıtların listelenmesi,
tablolardaki kayıtların güncellenmesi, tablolardaki kayıtların silinmesi, Where
cümleciğinin kullanımı, temel SQL fonksiyonları, matematiksel operatörler,
tablo birleştirmeleri, sıralama, gruplama, prosedür ve fonksiyon yazma ile
index, view ve trigger kullanımı hakkında bilgiler verilmiştir. Bu bölümde her
konu ilgili örneklerle açıklanmıştır. Bu bölümden faydalanabilmek için siteye üye
olmak gerekmektedir.
MS SQL Server yönetimi ile ilgili bölümde; MS SQL Server 7.0 kurulumu,
veritabanı ve tablo oluşturmak, tablolar üzerinde index, view ve trigger
oluşturmak, güvenlik, backup ve restore, zamanlanmış görevler oluşturma
bilgileri verilmektedir. Bu bölümde tüm konular demo yardımıyla
anlatılmaktadır. Bu bölümden faydalanabilmek için siteye üye olmak
gerekmektedir.
Site üzerinde siteye başvurularak üye olunabilmektedir. Üyeler dersleri
inceleyip, konuları çalıştıktan sonra sınava tabi tutulmaktadır. Bu testte %50
başarı gösterenler sonraki bölümlere geçebilirler. Başarısız olanlar ise sınavı
tekrar etmek zorundadır.
ABSTRACT
WEB BASED SQL DATABASE EDUCATION
The project consists of three chapters which are database concepts, T-SQL and MS SQL Server
administration.
In the chapter which concerned about
database concepts; it is explained that database, relational database,
tables, keys, data fields, index, view, why we need to database, some database
systems and SQL. All Internet users are able to use this chapter.
In the chapter which concerned about T-SQL; it is explained that how
T-SQL can be effectively used to create table, insert data, list, update and
delete. It is also explained that where clause, standart T-SQL functions, mathematical
operators, table joins, ordering, grouping, writing procedures and
functions, how to use index, view and
triggers. In this chapter, lessons explained with examples. The user who is a
member of this site can use this chapter.
In the chapter which concerned about MS SQL Server administration; it is
explained how to set up MS SQL Server
7.0, to create database, table, index,
view, trigger. The chapter also concerned with security, backup and restore,
scheduling. In this chapter all the contets explained by demonstrations. The
user who is a member of this site can use this chapter.
On this web site, anybody can get a
member by applying to the site. The members heva to take an exam to continue
with next chapters. A point of 50% must be got from the test to continue.
BÖLÜM I. GİRİŞ VE
AMAÇ
1.1 GİRİŞ
Bilişim alanında yaşanılan baş
döndürücü gelişim üçüncü sanayi devrimi olarak adlandırılıyor. Bu devrimin
başrol oyuncularından ikisi internet ve veritabanı uygulamalarından oluşuyor.
İnternet esas devrimini HTTP ve
HTML’ in bir standart olarak kabul görmesi ile yaptı. HTML ile yapılan
çalışmalar HTTP aracılığı ile dünyanın herhangi bir yerinde, herhangi bir
bilgisayar kullanıcısı tarafından görüntülenebiliyor. İnternetin ilk
zamanlarında web sayfaları tek taraflıydı. Ziyaretçiler sayfaları gezebiliyor
ancak bir etkileşimde bulunamıyorlardı. İnternetde bundan sonraki büyük devrim
web sayfalarının etkileşimli hale getirilmesi oldu. Günümüzde ASP teknolojisi
ile çok güçlü etkileşimli web sayfaları yapılabilmektedir.
Veritabanı ise verilerimizin düzenli
olarak saklandığı dijital ortamlardır. Çağımızda bilgi güçtür. Bilgiye en hızlı
ve en doğru şekilde ulaşanlar bu güce sahip olmaktadır. Bir metin dosyasına
bilgilerin kaydedilmesi ile başlayan bilgi saklama işlemi yapılan çalışmalar
ile çok gelişmiştir. T-SQL’ in bir standart olarak kabul edilmesi ile
geliştirilen veritabanı sistemleri ile ilişkisel veritabanı kavramı hayata
geçmiştir. Günümüzde, birçok firmanın ürettiği veritabanı sistemleri mevcuttur.
Ancak bunların en bilinenleri ORACLE, SQL SERVER, MS ACCESS, FOX PRO’ dur.
Bütün veritabanı sistemleri temel olarak aynı yapıya sahiptir.
Veritabanı ve İnternet gelişimi ile
birlikte etkileşimli web sayfaları hazırlama imkanı artmış. İnternet üzerinden
eğitim siteleri yapılabilmesine, bu eğitim sitelerine kullanıcı kaydı
yapılabilmesine, sınav uygulayabilme imkanına zemin hazırlanmıştır.
1.2 AMAÇ
Bu projenin amacı internet kullanımının yaygınlaşması ve kolaylığından
faydalanarak öğrencinin kendi kendine T-SQL ve MS SQL Server yönetimini
öğrenebilmesidir. Site üyesi olan öğrenci sitede bulunan ders konuları,
örnekler, demolar yardımı ile başlangıç
düzeyinden en az orta düzeye kadar T-SQL ve MS SQL Server yönetimini
öğrenebilme imkanına sahiptir.
BÖLÜM II. WEB
SİTESİNİN TASARLANMASI
2.1 GENEL BİLGİLER
Bu tez içerisinde yer alan web sayfaları Macromedia Dreamweaver
kullanılarak tasarlanmıştır. Üyelik gerektiren bölümler için ASP
kullanılmıştır. Üyelik gerektirmeyen kısımlar HTML web sayfaları olarak
tasarlanmıştır. MS SQL Server dersi Macromedia RoboDemo programı yardımı ile
güçlendirilmiştir. Bu program yardımı ile hazırlanan sunumlarda anlatılan
konuyla ilgili işlemlerin nasıl yapılacağı ve detay bilgiler bulunmaktadır.
Site içerisinde bölüm geçmek için verilmesi gereken sınavlar çoktan seçmeli
test olarak tasarlanmıştır. Sınavlar için başarı kriteri %50 olarak
düşünülmüştür. Üyelik bilgileri ve sınavlarda alınan notlar MS ACCESS
veritabanı kullanılarak oluşturulmuş olan “SQLOnline.mdb” veritabanı
içerisindeki “Users” tablosu içerisinde saklanmıştır.
2.2 WEB SİTESİNİN YAPISI
Web sitesi temel olarak 3 bölüm
halinde tasarlanmıştır.
Her üç bölüme de ana sayfadan geçiş olmakla birlikte, “T-SQL Kod Yazımı”
ve “MS SQL Server Yönetimi” konularını içeren sayfalara ulaşabilmek için
internet kullanıcısının siteye üye olması gerekmektedir.
Siteye üye olmayan kullanıcılar yalnızca “Veritabanı Kavramları” hakkında
bilgilerin bulunduğu sayfaya erişebilmektedir.
Siteye üye olma işlemi ana sayfadan bulunan link aracılığı ile
sağlanmıştır. Üyelik bilgileri MS ACCESS veritabanında saklanmıştır. Web
sitesinde yalnızca dört sınav yer aldığından kullanım kolaylığı düşünülerek tüm
bilgiler “SQLOnline.mdb” veritabanı içerisindeki “Users” tablosu içerisinde
saklanmıştır.
Üyelik işlemi gerçekleştirildikten sonra ana sayfada bulunan kullanıcı ve
şifre bilgileri alanları girilerek kullanıcının sitenin üyelik gerektiren
bölümlerine giriş yapabilecekleri ana sayfaya bağlantı sağlanmıştır.
2.3 GÜVENLİK VE KULLANILAN
VERİTABANI
Ana sayfadan sağlanan link aracılığı
ile kullanıcı bilgilerini girerek sisteme kaydolabilmektedir. Kullanıcının
bilgilerini girdiği ekran Şekil II.1’ de gösterilmiştir. Kullanıcının sisteme
kaydolabilmek için tüm bu bilgileri eksiksiz olarak girmesi tasarlanmıştır. Ana
sayfadan üye olma işlemine tıklandığında “kayit.asp” sayfası boş bir ekranda
açılacak şekilde tasarlanmıştır.
Şekil II.1: Kayit.asp sayfasının yapısı ve girilecek bilgiler
Şekil II.1’ de gösterilen bilgiler girildikten sonra “Gönder” butonuna
basıldığında girilmiş olan bilgiler “SQLOnline.mdb” veritabanı içerisindeki
“Users” tablosu içerisine kaydedilmektedir. Users tablosunda “Kullanıcı Adı”
ile bağdaştırılan alan primary olarak tasarlanmıştır. Böylece aynı kullanıcı
adını birden fazla kullanıcının kullanması engellenmiştir.
Girilen kullanıcı bilgilerinde eksikler olup olmadığı ya da talep edilen
kullanıcı adının sistemde mevcut olup olmadığı gibi kontroller “Kaydet.asp”
isimli sayfa içerisinde yapılmıştır. “Kaydet.asp” sayfasının içerisinde yapılan kontrole göre
kullanıcıya varsa hata yoksa sisteme kaydolduğuna dair bilgi döndürülmüştür.
Sisteme girilen tüm bilgilerin kaydedildiği “Users” tablosunun yapısı
Şekil II.2’ de gösterilmiştir. Şekil II.2’ de tablo içerisinde yer alan
alanların adı, veri türü ve verilerin hangi amaçla saklandığı gösterilmiştir.
Şekil II.2: Users tablosunun
yapısı
Şekil II.2’ deki “SQLExam1”, “SQLExam2”,
“MSSQLExam1” ve “MSSQLExam2” alanları kullanıcı kaydı esnasında “0” olarak tabloya kaydedilecek
şekilde ayarlanmıştır.
Üye kaydı başarıyla
gerçekleştirildikten sonra ana sayfada bulunan “kullanıcı” ve “şifre”
alanlarına bilgi girilip “Giriş” butonuna basılarak “check_user.asp” sayfası
çalıştırılarak siteye üye girişi sağlanmıştır. “check_user.asp” sayfası girilen
kullanıcı adı ve şifrenin doğruluğunu kontrol etmek amacıyla kullanılmıştır.
Eğer üye girişi başarıyla gerçekleşmiş ise kullanıcı adı için bir session
oluşturulmuştur.
Üyelik gerektiren tüm bölümlerde "isconnected.asp"
dosyası sayfalara eklenerek session kontrolü yapılıp eğer üye girişi yapılmamış
ise kullanıcı ana sayfaya geri yönlendirilmiştir.
Üyelik gerektiren bölümlerde 5.
konulardan sonra kullanıcının 1. sınavları geçmesi gerektiğinden sınavlarda
almış oldukları notlar “Users” tablosuna kaydedilmiştir. “T-SQL Kod Yazımı”
dersi için “SQLExam1Kontrol.asp” ilgili asp sayfalarına eklenmiştir. “MS SQL
Server Yönetimi” dersi için ise “MSSQLExam1Kontrol.asp” ilgili tüm asp
sayfalarına eklenmiştir.
2.4 HTML VE ASP SAYFALARIN
HAZIRLANMASI
Yapılan araştırmalar sonucunda,
siteyi hazırlamak için Macromedia Dreamweaver editor programı kullanılmasına
karar verilmiştir. Site içerisinde HTML ve ASP sayfaları kullanılmıştır.
HTML sayfaları statik sayfalar olup
bir etkileşim içerisinde bulunma imkanı olmayan sayfalardır. Bu sayfalarda
herhangi bir kontrolün yapılması gerekmeyen “Veritabanı Kavramları” dersi
anlatılmıştır. Bu ders, asıl konu olan SQL veritabanları dersi için hazırlayıcı
ders olarak siteye konulmuştur.
ASP sayfaları ise kullanıcıyla
etkileşim içerisinde bulunan sayfalardır. ASP sayfalarını hazırlarken VBSCRIPT
dili kullanılmıştır. Eğitim sitesinin temel öğretim amacı olan, “T-SQL Kod
Yazımı” ve “MS SQL Server Yönetimi” konularının sunumu için ASP sayfalarından
yararlanılmıştır. Böylece kullanıcı bilgilerinin alınarak veritabanına
işlenmesi, sınavların yapılabilmesi ve sınav sonuçlarının saklanarak bu
sonuçlara göre kullanıcının takip edebileceği derslerin belirlenmesi
sağlanmıştır.
Gerek HTML, gerekse ASP sayfalarının
hazırlanmasında Macromedia Dreamweaver programının sağlamış olduğu tüm imkanlar
kullanılmıştır.
2.5 EKRAN DİZAYNI
2.5.1 ANA SAYFA
Ana sayfada zemin rengi olarak mavi
kullanılmıştır. Ana sayfa, sol ve sağ yanlarda ders konuları, gövde kısmı ve
üst bölüm olmak üzere 4 kısımdan oluşturulmuştur. Şekil II.3’ de ana sayfanın
yapısı gösterilmiştir.
Şekil II.3: Ana sayfanın
yapısı
Üst kısma kullanıcının giriş yapabilmesi için kullanıcı adı ve şifresini
girebileceği alan, başlık ve sağ tarafa Atatürk ve bayrak resmi yerleştirilmiştir.
Kullanıcı bayrak resmi rollover image olarak siteye eklenmiş ve siteyi
hazırlayan öğrencinin kişisel sayfasına bu resim üzerinden link konulmuştur.
Sol tarafta “T-SQL Kod Yazımı” ve sağ tarafta “MS SQL Server Yönetimi”
derslerinin konuları listelenmiştir. Kolay okunabilirlik açısından yazılar mavi
zemin üzerine siyah yazılmıştır.
Gövde kısmında ise mavi zemin üzerine beyaz yazılarak bu bölümün sol ve
sağ yanlardan ayrılması sağlanmıştır. Bu bölümde site içeriği hakkında bilgiler
sunulmuştur. Üye olmak için bu bölüme eklenmiş olan linke tıklandığında yeni
bir sayfa açılması sağlanmıştır. Ayrıca veri tabanı kavramları hakkında bilgi
almak için kullanılacak link de bu bölüme eklenmiştir. İletişim amacıyla gövde
kısmının en altına e-mail adresi eklenmiştir.
2.5.2 VERİTABANI KAVRAMLARI İLE İLGİLİ SAYFALAR
Ana sayfadan üyelik gerektirmeden
ulaşılan bu sayfalarda zemin rengi olarak beyaz kullanılmıştır. Yazılar
okunabilirlik düşünülerek siyah ile yazılmıştır. Şekil II.4’ de bu sayfaların
yapısı gösterilmiştir.
Şekil II.4: Veri tabanı
kavramları sayfalarının yapısı
Şekil II.4’ de görüldüğü gibi web sayfasının altına konuyla ilgili tüm
sayfalara ait linkler konulmuştur. Siyah yazılı sayfa aktif sayfayı göstermek
için kullanılmıştır. Sayfalar arasında dolaşabilmek için önceki ve sonraki
sayfalara ait linkler sayfanın alt sağ ve sol köşelerine yerleştirilmiştir.
2.5.3 SQL ANLATIM SAYFALARI
“T-SQL Kod Yazımı” ve “MS SQL Server
Yönetimi” ders sayfalarının yapısı aynı şekilde tasarlanmıştır. Bu sayfalarda
zemin rengi olarak sarı kullanılmış üzerine yazılar genellikle siyah renk ile
yazılmıştır. Sayfalarda sol bölümde konu başlıkları bulunan sabit bir bölüm
yerleştirilerek konular arasında geçiş yapılabilmesi sağlanmıştır. Konuların
sağ tarafındaki alanda dersler sunulmuştur. Şekil II.5’ de sayfa dizaynları
gösterilmiştir.
Şekil II.5: SQL anlatım
sayfalarının yapısı
Şekil II.5’ de görüldüğü gibi konular birden fazla sayfadan oluşursa konu
içerisinde değişik sayfalara doğrudan ulaşabilmek amacıyla her sayfaya link
konulmuştur. Sayfalar arasında “önceki” ve “sonraki” linklerine tıklanarak
dolaşılabilir. Sayfada kullanıcı adı gösterilmiştir. Kullanıcı adının hemen
altında sınavlara ulaşılabilecek linkler bulunmaktadır.
2.6 KULLANILAN ÖĞRETİM
YÖNTEMLERİ
2.6.1 DÜZ ANLATIM YÖNTEMİ
Site
içerisinde tüm bölümlerde uygulanmış olan bu yöntem özellikle “Veri Tabanı
Kavramları” bölümünde tek başına kullanılmıştır. Bu bölümde veri tabanı
kavramları ile ilgili bilgiler kullanıcıya sunulmuştur.
2.6.2 ÖRNEK VERME YÖNTEMİ
“T-SQL
Kod Yazımı” bölümünde anlatılan konular ilgili örneklerle kullanıcıya
sunulmuştur. Böylece konu öğrenciye iyice kavratılıp pekiştirilmiştir.
Anlatılan her konu için en az bir örnek sunulmuştur. Kullanıcının bu örnekleri
bilgisayar başında uygulayarak konu hakkında daha iyi bilgiye sahip olması
sağlanmıştır.
2.6.3 GÖSTERİP YAPTIRMA YÖNTEMİ
Özellikle
“MS SQL Server Yönetimi” dersinde ilgili konuyla ilgili kısa bir bilgi
verildikten sonra ilgili işlemin nasıl yapıldığı bir animasyon ile öğrenciye
sunulmuştur. Animasyon içerisinde dikkat edilmesi gereken yerler belirtilmiş
ayrıca detay bilgiler sunularak bilgiler pekiştirilmeye çalışılmıştır.
Öğrencinin bu animasyonlarla MS SQL Server yönetimine dair tüm temel işlemleri
uygulayarak öğrenmesi sağlanmıştır.
2.7
ANİMASYONLAR
Site
içerisinde yer alan tüm animasyonlar Macromedia firması tarafından sunulmuş
olan RoboDemo programı aracılığı ile yapılmıştır. Programın temel prensibi
bilgisayar ekranında yapılan tüm işlemlerin (ekranlar, mouse hareketleri,
klavye girişleri vb.) snapshotlar alınarak resimlerinin oluşturulmasına
dayanmaktadır. Alınan bu resimlere bilgi eklenmesinin mümkün olması
animasyonlarda öğrenciye detay bilgilerin verilmesini sağlamaktadır. Resimler
bir HTML sayfası içerisinde Flash animasyonuna dönüştürülerek siteye eklenmesi
sağlanmıştır.
2.8
SINAVLAR
Site
içerisindeki sınavlar 10’ar adet sorudan oluşan, 4 şıklı, çoktan seçmeli test
olarak düzenlenmiştir. Konular hakkında test sınav yapılaması çok uygun olmasa
da web üzerinde değerlendirme yapabilmek için bu yöntemin kullanılması
kaçınılmaz olmuştur. Bundan dolayı sınırlı sayıda soru hazırlanmıştır.
Testlerde
başarı kriteri %50 olarak tespit edilmiştir. Soruların en az yarısını doğru
cevaplayamayan öğrenci sınavdan başarısız sayılmıştır. Sınavdan başarısız olan
öğrencinin ders konularını takip edebilmesi engellenmiştir. Eski konuları
tekrar öğrenerek sınavı tekrar alabilmesi sağlanmıştır. Sınavlarda her konudan
en az bir soruya yer verilerek öğrencinin tüm konular hakkındaki bilgisi ölçülmeye
çalışılmıştır.
Sınavların
değerlendirilmesi ilgili ASP sayfasında değerlendirilerek “Users” tablosuna
kaydedilecektir. Doğru cevaplar bu asp sayfası içerisinde yer almaktadır.
Sınavlar öğrenci tarafından
sınırsız sayıda tekrar edilebilir. Ancak en son sınav da alınan not geçerli
kabul edilmiştir.
2.9
WEB SİTESİNİN ÇALIŞTIRILMASI
Siteyi görüntüleyebilmek ve
kullanabilmek için Win95/98 sistemlerde PWS (Personal Web Server) Win
NT/2000/XP sistemler için IIS 4.0 ve üzeri (Internet Information Service)
kurulu olmalıdır. Proje içeriğindeki web sayfaları ve ilgili dosyalar
“c:\InetPub\wwwroot” dizini altına kopyalanarak çalıştırılabilir.
Web browser açılarak adres
kısmına “C:\Inetpub\wwwroot\Default.asp” yazılarak web sitesi görüntülenebilir.
BÖLÜM III
3.1 WEB
SİTESİNİN KULLANIMI
Site temel olarak veritabanı
kavramları, T-SQL anlatımı ve MS SQL Server yönetimi olmak üzere üç bölümden
oluşmaktadır. Her üç bölüme de ana sayfa üzerinden ulaşılabilmektedir. Bu üç
bölümün yanı sıra kişisel bilgilere ulaşabilmek için ana sayfada bir link
bulunmaktadır. Ana sayfa Şekil III.1’ de gösterilmiştir.
Şekil
III.1: Ana Sayfa
3.1.1 KİŞİSEL SAYFALAR
Kişisel bilgilerle ilgili sayfalara, ana sayfanın sağ üst köşesinde
bulunan Atatürk ve Türk bayrağı resmi tıklanarak ulaşılabilir. Açılacak olan
yeni sayfadan kişisel bilgiler incelenebilir. Şekil III.2’ de kişisel web
sayfasının yapısı gösterilmiştir. Kişisel bilgilerle ilgili sayfada bilgilere
ulaşabilmek ekranın sağ tarafında yer alan linkler tıklanarak sağlanmıştır.
“Kapat” tıklandığından bir uyarı mesajı ile birlikte yeni açılan bu sayfanın
kapatılabilmesi sağlanmıştır.
Şekil III.2: Kişisel sayfalar
3.1.2 VERİTABANI KAVRAMLARI
Veritabanı kavramları ile ilgili bilgiye sahip olmayan kullanıcıların
öncelikle ana sayfa üzerinde orta bölümde yer alan “Veritabanı ve ilişkisel veritabanı kavramları hakkında bilgiye sahip
olmak için tıklayınız.” yazısına tıklayarak açılacak olan yeni web
sayfasından bilgi almaları önerilmektedir. Açılan sayfanın altından yer alan “önceki” ve “sonraki” linklerine tıklanarak sayfalar arası geçiş yapılabilir.
Şekil III.3’ de veritabanı sayfaları gösterilmiştir.
Şekil III.3: Veritabanı
kavramları ile ilgili sayfalar
3.1.3 ÜYELİK
Sitenin içerisinde yer alan T-SQL anlatımı ve MS SQL Server yönetimi
derslerini takip edebilmek için siteye üye olunması gerekmektedir. Üye olma
işlemi “Üye olmak için tıklayınız” tıklandığında
açılacak olan üyelik formu doldurularak gerçekleştirilir. Şekil III.4’de üye
olamk için doldurulması gerek form gösterilmektedir.
Şekil III.4: Üye formu
3.1.4 ÜYE GİRİŞİ
Üye olma işlemi başarıyla gerçekleştirildikten sonra ana sayfanın sol üst
köşesindeki “kullanıcı” ve “şifre” bilgileri girilerek üyelik gerektiren
bölümlere girilir. Şekil III.5’ de dörtgen içersine alınmış olan bölümde
gösterilmiştir.
Şekil III.5: Üye girişi
3.1.5 BÖLÜMLER VE SINAVLAR
Her iki bölüm kendi içerisinde dokuz konu ve iki sınav bulundurmaktadır.
Konular birden fazla sayfa içereceğinden sayfalara arasında “önceki” ve “sonraki” linkleri ile geçiş yapılması daha yararlıdır. Şekil
III.6’ da ders anlatımı yapılan sayfalardan bir örnek sunulmuştur.
Şekil III.6: Ders
sayfalarından örnek
Sınavlar öğrenci tarafından herhangi bir zaman alınabilir. Ancak birinci
sınavlar ilk beş konu bitirildikten sonra mutlaka alınması gereken sınavlardır.
Site içerisindeki sınavlar 10’ar adet sorudan oluşan, 4 şıklı, çoktan seçmeli
test olarak düzenlenmiştir. Her soruda yalnızca tek doğru cevap yer almaktadır.
Sınavlar başarıyla geçilmediği takdirde daha sonraki bölümlere geçme imkanı
olmayacaktır. Sınavlarda başarı kriteri % 50’ dir.
BÖLÜM IV. WEB SİTESİNİN İÇERİĞİ
4.1 VERİTABANI KAVRAMLARI
Bu
bölümde veritabanının ne olduğu, hangi tipte veritabanları bulunduğu, tablolar,
anahtarlar, indexler, viewler, SQL ve çeşitli veritabanı veritabanı sistemleri
hakkında bilgiler verilmiştir.
4.1.1 VERİ TABANI NEDİR?
Veritabanı verilerimizin düzenli olarak saklandığı dijital ortamdır.
Verilerimizi anlamlı kılmak ise bizim bilgimizi oluşturur. Bu bağlamda,
veritabanı;
- Belirli bir tarzda organize edilmiş bilgi “koleksiyon”udur.
- En az bir tablodan oluşmak zorundadır.
- Veritabanı programını oluşturan tablolar ise veri alanlarından oluşur (data field).
- Kitaplıklar, uygulamalar ve yardımcı programların birleşmesinden oluşur.
- Verilerin saklanması ve yönetilmesi ile ilgili konulardaki ayrıntılardan veritabanı yöneticilerini kurtarır.
- Kayıtların güncellenmesi ve kayıtlar üzerinde araştırma yapılmasında mümkündür.
4.1.2 VERİ TABANI TİPLERİ
- Hiyerarşik Veritabanı
- İlişkisel Veritabanı (Relational Type)
- Nesnesel Veritabanı
4.1.3 VERİTABANI KAVRAMLARI
Bütün veritabanı programları temel olarak aynı yapıya sahiptir.
Veritabanında veriler tablolarda saklanmaktadır.
İlişkisel veritabanı modelinde; kullanıcının programı kullanırken ona sıklıkla
soracağı soruların neler olacağı tespit edilir. “Gerçekleştirilecek olan
veritabanı programından beklenilen neler ve bu veritabanında hangi bilgilerin
olması gerekli?” sorusunun yanıtı bulunur.
İlişkisel veritabanı modelinde tablolar gerçek hayattaki nesnelere
karşılık gelmektedir. Bir ilişkisel veritabanı, birden fazla tablodan oluşur ve
tablolar birbirlerinin yerine kullanılabilir.
Tablolar satır ve sütundan oluşur. Her satırdaki veriler , 'kayıt' olarak
adlandırılır. Her kayıtta veriler alanlarda saklanır. Alanlar verilerin bir
düzen içerisinde saklanmasını sağlarlar. Alanların tanımlanmış bir veri tipi
bulunmaktadır. Böylece, tanımlanmış bir veri tipi olanların bir araya gelerek
oluşturduğu satır (kayıt) bilgileri saklar. Bir tablo içerisindeki tüm satırlar
aynı sayıda ve tipte bileşenlerden oluşur.
İlişkisel veritabanlarında bir sütuna(kümeye) ya da tabloya eklenen tüm
kayıtlar aynı yapıda olmalıdırlar.
İlişkisel veritabanlarındaki herhangi bir tabloda birbiriyle tamamen aynı
iki kayıt bulunamaz.
- Bir kayıttaki her bir bileşen "atomik" yani tek çeşit veri tipinde olmalıdır.
- Veriler veritabanı tarafından desteklenen veri tiplerinden biri olmalıdır.
4.1.4 TABLOLAR
- Aynı konu ile ilgili olan bilgiler belirlenmelidir.
- Index olarak kullanılacak alanlar, zaman içinde değiştirilebilecek şekilde belirlenir.
- Olası olan en yüksek seviyede yapısal bir şekilde tabloların oluşturulması sağlanmalıdır.
4.1.5 ANAHTARLAR
key: Birbiriyle eş kayıtları ayırmak
için kullanılan bileşenlerdir.
primary key: Tabloda ki bir kaydı diğer
tüm kayıtlardan ayırmak için kullanılan
bileşendir. Tablodaki kayıtları “unique” yapar. Tüm ilişkisel
veritabanlarında her bir tablo ya da relationda mutlaka primary key olmalıdır.
4.1.6 VERİ ALANLARI
- Aynı konu ile ilgili alanların kendi tablolarında toplanması sağlanmalı
- Veri tekrarı olmamalı
- Gereksiz alanlar kullanılmamalı
- Alanlar basite indirgenmelidir.
4.1.7 INDEX
Indexler bir tablo içerisinde arama yapıldığında performansı arttırmak
için kullanılırlar. Genel olarak 2 çeşit index bulunmaktadır.
clustered: index
oluşturulurken index alanlarının önceliğine göre kayıtların fiziksel yerleri
değiştirilir. Bu nedenle bir tabloya ait yalnızca bir clustered index
oluşturulabilir. Clustered indexler arama performansını arttırırlar ancak kayıt
girme, silme, değiştirme gibi işlemlerde kayıtların disk üzerindeki fiziksel
sıralamasını değiştireceklerinden dolayı performans kaybına neden olabilirler.
non-clustered: istenilen index
alanlarına göre verilerin diskteki yerlerinin tutulduğu tablolar oluşturulur.
Kayıtların disk üzerindeki fiziksel yerleşimlerinde herhangi bir değişiklik
meydana gelmez. Kullanılan veritabanı programına göre oluşturulabilecek index
sayısı değişir.
4.1.8 VIEW
Bir ya da birden fazla tablodaki istenen veriler alınarak hayali bir
tablo oluşturulması işlemidir. Tablolar kalıcı değildir. View üzerinde işlem
yapılmak istendiğinde bu hayali tablolar oluşturulur. Oluşturulan View (hayali
tablo) gerçek bir tablo gibi kullanılabilir. Özellikle güvenlik amacıyla
kullanılır.
4.1.9 VERİ TABANINDAN BEKLENENLER
- Her düzeyde rapor alınabilme özelliği
- Doğru ve hızlı sonuç verebilme özelliği
- Sorulabilecek bütün sorulara yanıt verebilecek sorgulama dili
- Bilgilerin ve sonuçların tutarlılığı
4.1.10 SQL NEDİR?
SQL (Structured Query Language) bir veritabanı dilidir. Bir veri tabanına
yeni tablo oluştururken veya bir tabloya kayıt eklerken, silerken,
güncellerken, arama yaparken kullanılan bir ANSI ve ISO standardıdır.
SQL herhangi bir veri tabanı ortamında kullanılan bir alt dildir. SQL ile
yalnızca veri tabanı üzerinde işlem yapabiliriz.
4.1.11 VERİTABANI ÇEŞİTLERİ
- Microsoft Access
- MySQL
- IBM DB2
- Informix
- Progress
- Microsoft SQL Server
- Oracle
4.1.11.1 Microsoft 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 sistemlerde kullanılamaz.
- “Transaction logging” özelliğine sahiptir, ancak “trigger” ve “stored procedure” özelliklerine sahip değildir.
4.1.11.2 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.
4.1.11.3 IBM DB2
- IBM
- Access ve MySQL'e göre daha performanslı, ancak küçük işletmelere için daha yüksek maliyete sahiptir.
- *nix ve Windows üzerinde çalışabilir.
- Transaction logging”, “trigger” ve “stored procedure” özelliklerine sahiptir.
4.1.11.4 Informix
- Illustra
- Ücretli ve güçlü bir veritabanıdır.
- Orta ölçekli işletmelerin yükünü kaldırabilecek kapasitededir.
- 1994'deki Postgres kodundan geliştirilmeye başlanmıştır.
4.1.11.5 Microsoft SQL Server
- Microsoft
- Kullanım kolaylığı, güvenilirliği, işlem gücü
- Tablo başına 4 TB veri
- “Transaction logging”, “trigger” ve “stored procedure” özelliklerine sahiptir.
4.1.11.6 PostgreSQL
- PostgreSQL Global Development Group
- Linux, Unix, BSD, Windows, AIX vb.
- Ücretsiz, akademik bir veritabanı
- Çok güçlü işlem yapısı
- Veri güvenliği ön planda
- Tablo başına 64 TB veri tutabilme özelliği
- “Transaction”, “Inheritance” “trigger” ve “stored procedure” özelliklerine sahiptir.
4.1.11.7 Oracle
- Oracle, Inc.
- Dünyanın en güçlü ve güvenilir veritabanı olarak gösterilmektedir.
- Çok yüksek maliyet
- Windows, Unix, Linux, ...
4.2 MS SQL SERVER 7.0 YÖNETİMİ
4.2.1 SQL SERVER NEDİR?
- SQL Server bir Client/Server ilişkisel veritabanı yönetim sistemidir.
- SQL Server veritabanlarını idare eder ve sistemdeki kullanılabilir kaynakları kullanır.
- Client tarafı işin mantıksal yürütümü ve verilerin gösterilmesinden sorumludur.
4.2.2 İLİŞKİSEL VERİTABANI NEDİR?
- Veritabanında bulunan verilerin ilişkilerini yönetir.
- Verinin düzgün bir şekilde kaydedildiğinden emin olur.
- Bir sistem hatasında bilinen bir noktada uyumlu olmasını sağlar.
4.2.3 MS SQL SERVER KURULUMU
MS SQL Server kurulumu için; Intel veya DEC Alpha işlemcili en az 32 MB
hafıza, 160 MB sabit disk alanı, FAT ya da NTFS dosya sistemi gereklidir.
Microsoft Windows ailesinden NT 4.0 ve sonrası işletim sistemlerinde çalışan MS
SQL Server için Microsoft Internet Explorer 4.01 veya daha sonraki
sürümlerinden birinin bilgisayarda yüklü olması gerekmektedir.
SQL server kurulumu sırasında 4 sistem, 2 örnek database oluşturulur.
Master: Kullanıcı veritabanları
ve SQL Server’ın tüm işlemlerini kontrol
eder.
Model: Kullanıcı veritabanları
oluşturulması için kullanılan prototipleri
sağlar.
Tempdb: Geçici tablolar ve
geçici çalışma alanları sağlayan veritabanıdır.
Msdb: SQL Server Agent'ı
destekler ve zamanlanmış görevler için
kullanılır.
MS SQL Server 7.0 kurulumunun tüm
aşamaları ve önemli noktaları, RoboDemo programı yardımıyla, animasyon olarak
web sitesi içerisinde sunulmuştur.
SQL Server Kurulumu sırasında;
SQL Server'ın kurulduğu yer, Character Set, Sort Order ve Unicode
Collection ile Network Support ayarları dikkat edilmesi gereken hususlardır.
SQL Server Services Account kısmında girilen bilgiler SQL Server Servisinin
başlatılabilmesi için önem taşımaktadır.
4.2.4 DATABASE OLUŞTURMA
Bütün veritabanları temel bir data dosyasına (.mdf) ve transactin log
dosyasına (.ndf) sahiptir. Bu fiziksel dosyalar işletim sistemi dosya
yapısındaki isimler ve T-SQL cümleciklerinde kullanılan mantıksal dosya
isimlerine sahiptir.
Bir veri tabanı oluşturulduğunda Model veritabanının bir şablonu
veritabanına kopyalanır. Dolayısı ile veritabanımızın boyutu model veritabanı
boyutundan küçük olamaz.
Transaction Log dosyaları sistem hatalarından ortaya çıkan veri
kayıplarını düzeltme işlemleri için gerekli bilgileri saklar. Veritabanı
üzerinde yapılan iş BEGIN TRANSACTION ve COMMIT TRANSACTION komutları arasında
yapıldığında data sayfalarının diske yazıldığından emin olabiliriz.
SQL Server 7.0 kurulumu ile Enterprise Manager ve Query Analyzer gibi 2
Grafik kullanıcı arabirimi bilgisayara yüklenir. Enterprise Manager ile görsel
olarak sistemde her yönetimsel işlemi yapmak mümkündür. Query Analyzer ise daha
çok kodyazımında kullanılmaktadır.
MS SQL Server 7.0’ da database oluşturma
işleminin tüm aşamaları ve önemli noktaları, RoboDemo programı yardımıyla,
animasyon olarak web sitesi içerisinde sunulmuştur.
4.2.5 TABLO, INDEX, VIEW
4.2.5.1 TABLO
MS SQL Server kurulumu ve database oluşturma işleminden sonra verilerin
saklanacağı tabloların oluşturulması işlemini gerçekleştirmemiz gerekmektedir.
Tablo oluşturmak için yazılması gereken kod kullanımı SQL Server Kod yazımı
dersinde anlatılmaktadır. Bu bölümde Enterprise Manager ile tablo oluşturma
işleminin sunumu yapılacaktır.
MS SQL Server 7.0’ da tablo oluşturma
işleminin tüm aşamaları ve önemli noktaları, RoboDemo programı yardımıyla,
animasyon olarak web sitesi içerisinde sunulmuştur.
4.2.5.2 INDEX
İndexler tablo üzerinde veriye ulaşımı kolaylaştırmak ve tablo
kullanımını daha verimli kılmak amacıyla kullanılırlar. İndex oluşturma
sırasında verilerin fiziksel yeri değişebilir (clustered) ya da değişmeyebilir
(nonclustered). Herhangi bir alana index koyarak o alanda tekrar edilen bir
data oluşmasını engelleyebiliriz (unique).
MS SQL Server 7.0’
da index oluşturma işleminin tüm aşamaları ve önemli noktaları, RoboDemo
programı yardımıyla, animasyon olarak web sitesi içerisinde sunulmuştur.
4.2.5.3 VIEW
Bir ya da birden fazla tablodaki istenen veriler alınarak hayali bir
tablo oluşturulması işlemidir. Tablolar kalıcı değildir. View üzerinde işlem
yapılmak istendiğinde bu hayali tablolar oluşturulur. Oluşturulan View (hayali
tablo) gerçek bir tablo gibi kullanılabilir. Özellikle güvenlik amacıyla
kullanılır.
MS SQL Server 7.0’ da view oluşturma
işleminin tüm aşamaları ve önemli noktaları, RoboDemo programı yardımıyla,
animasyon olarak web sitesi içerisinde sunulmuştur.
4.2.6 KULLANICI HESAPLARI
Kullanıcı hesaplarını işletim sistemi kullanıcı ya da gruplarından
oluşturabileceği gibi SQL Server içersinden yeni kullanıcı hesapları da
oluşturabilirsiniz. Kullanıcı hesapları Master veritabanı içerisinde bulunan
Syslogins tablosu içerisinde saklanır. SQL Server'a bir kullanıcı hesabı
eklendiğinde genellikle bir veritabanı ile ilişkilendirilir.
Kullanıcı hesaplarını Enterprise Manager ya da sp_addlogin stored
procedure yardımı ile ekleyebiliriz.
SQL Server 2 tane hazır kullanıcı hesabına sahiptir: sa ve
BUILTIN\Administrators.
Sa (system administrator) kullanıcı hesabı SQL Server ve veritabanları
üzerinde her türlü hakka sahip olan özel bir kullanıcı hesabıdır.
BUILTIN\Administrators ise tüm Windows NT administrators için geçerli
olan kullanıcıdır. Sa kullanıcısı gibi SQL Server ve tüm veritabanları üzerinde
haklara sahiptir.
MS SQL Server 7.0’ da kullanıcı oluşturma
işleminin tüm aşamaları ve önemli noktaları, RoboDemo programı yardımıyla,
animasyon olarak web sitesi içerisinde sunulmuştur.
4.2.7 ERİŞİM GÜVENLİĞİ
Güvenliği planlarken 5 önemli noktaya dikkat edilmelidir.
- SA Login: Her ne kadar 'sa' kullanıcısı sistem tarafından sağlanıyor olsa da kullanımı alışkanlık haline getirmemelidir. SQL Server Kurulumundan sonra 'sa' kullanıcısına mutlaka şifre verilmelidir.
- BUILTIN\Administrators: Bu grup 'sa' kullanıcısı gibi SQL Server kurulumunda gelir ve Domain yöneticilerine SQL Server üzerinde her hakkı verir. Eğer bu kullanıcıların SQL Server üzerinde haklara sahip olmasını istemiyorsanız bu kullanıcıları silebilirsiniz.
- Guest Hesabı: Guest hesabı kullanıcı hesabı olmasa bile sisteme giriş yapabilmeyi sağlar. Veritabanınızın guest hesabına izin verip vermemsine dikkat etmelisiniz. Güvenli erişim için bu hesabın kullanımına izin verilmemelidir.
- Genel Kullanıcı Rolü: Genel kullanıcı rolü her kullanıcının bağlı olduğu özel bir gruptur. Bu role izin verirken dikkatli olmak gerekir. Bu role verilen izinlerin tüm kullanıcılara verilmiş olacağı mutlaka dikkate alınmalıdır.
- Bütün girişlerin bir kullanıcı hesabına ya da role bağlanması
4.2.8 KULLANICI YETKİLENDİRME
SQL Server'a kullanıcı hesabı eklenmesini öğrenmiştik. Eklediğimiz
kullanıcılara veritabanları üzerinde veya veritabanlarındaki objeler üzerinde
çeşitli haklar verilebilir.
Kullanıcı hesabı tanımlanırken Server Roles kısmında kullanıcının SQL
Server üzerinde sahip olacağı yetkiler belirlenebilir.
Database Access kısmından ise kullanıcının hangi veritabanlarını
kullanabileceği, veritabanı üzerinde hangi haklara sahip olabileceği
belirlenebilir.
Kullanıcılara veritabanı içerisinde tablo oluşturma, stored procedure
yazma, bilgi listeleme, kayıt ekleme, silme, değiştirme gibi haklar verilebilir.
Kullanıcılara veritabanı içresinde bulunan objeler üzerinde haklar
verilebilir.
MS SQL Server 7.0’
da yetkilendirme işleminin tüm aşamaları ve önemli noktaları, RoboDemo programı
yardımıyla, animasyon olarak web sitesi içerisinde sunulmuştur.
4.2.9 BACKUP & RESTORE
Data kaybını en aza indirmek, kaybolan dataları geri kazanmak ve verileri
en az zaman harcayarak yeniden yükleyebilmek için bir yedekleme (Backup)
stratejisi kullanılmalıdır. Yedekleme düzenli olarak yapılmalıdır.
Her veritabanı oluşturulduğun da, kullanıcı eklendiğinde ya da
yetkilendirilme yapıldığında sistem veritabanlarının yedeklenmesi gerekir.
Restore işlemine başlamadan önce elimizde bulunan yedeklerin (backup)
sağlam olup olmadığı kontrol edilmelidir. Restore işlemi herhangi bir veritabanında
sistem ya da kullanıcı hatalarından kaynaklanan veri kayıplarını geri yükleme
amacıyla yapılır.
Restore işlemine başlamadan önce geri yükleme yapılacak olan
veritabanında herhangi bir çalışma olmadığından emin olmak gerekmektedir.
Yedekleri SQL Server Enterprise Manager aracılığı ile geri
yükleyebileceğimiz gibi Transact-SQL komutu yardımı ile SQL Server Query
Analyzer aracılığı ile de yapabiliriz.
MS SQL Server 7.0’
da backup ve restore işleminin tüm aşamaları ve önemli noktaları, RoboDemo programı
yardımıyla, animasyon olarak web sitesi içerisinde sunulmuştur.
4.2.10 ZAMANLANMIŞ GÖREVLER
Yedekleme, data transferi, indekslerin bakım işleri gibi sebeplerden
dolayı SQL Server da bazı işlerin otomatikleştirilmesi gerekir. Bu
otomatikleştirme işlemi SQL Server Agent Servisinin yardımı ile yapılır. Agent
Servisi, SQL Server servisi gibi bir servistir ancak SQL Server Servisine bağlı
çalışır.
SQL Server Agent yönetimsel işlerin otomatikleştirilmesi yanı sıra
kullanıcıları belirli zamanlarda yapılmasını istedikleri herhangi bir işin
istenen zamanda çalışabilmesini sağlar. Zamanlanmış görevlerle ilgili bilgiler
sistem veritabanı olan 'msdb' veritabanı içerisinde saklanır.
İşlerin yapılabilip yapılamadığı, işlem hangi hataların ortaya çıktığı,
işlemin çalışma süresi gibi bilgiler bir history kaydı içerisinde tutulur.
Örneğin oluşturulmuş olan 'Deneme' veritabanının her gün saat 18.00 da
yedeklenmesini otomatikleştirilebilir.
MS SQL Server 7.0’
da zamanlanmış görev oluşturma işleminin tüm aşamaları ve önemli noktaları,
RoboDemo programı yardımıyla, animasyon olarak web sitesi içerisinde
sunulmuştur.
4.2.11 DBCC KOMUTLARI
Transact-SQL programlama dili DBCC cümlecikleri kullanmamızı sağlar. DBCC
cümlecikleri Microsoft® SQL Server™ için tutarlılık kontrolu “database
consistency checker” yapan cümleciklerdir. Bu cümleler veritabanının fiziksel
ve mantıksal tutarlılığını kontrol etmek ve problemleri düzeltmek amacıyla
kullanılır.
DBCC komutlarının yapısı Tablo IV.1’de gösterilmiştir.
Tablo IV.1 DBCC grupları
Bakım
|
database,
index, or filegroup üzerindeki bakım işleri için
|
Çeşitli
|
Satır
seviyesinde kilitleme yada Dinamik-link kütüphanelerini (DLL) hafızadan
kaldırma gibi işler için
|
Durum
|
Durum kontrolü
için
|
Geçerlilik
|
Veritabanı,
tablo, index, katalog, filegroup, sistem tabloları, veya veritabanı sayfa
ayırmaları için
|
4.3 SQL KOD YAZIMI
4.3.1 SQL NEDİR?
SQL (Structured Query Language) kendisi bir programlama dili olmamasına
rağmen birçok kişi tarafından programlama dili olarak bilinir. SQL herhangi bir
veri tabanı ortamında kullanılan bir alt dildir.
SQL ile yalnızca veri tabanı üzerinde işlem yapabiliriz. SQL cümlecikleri
kullanarak veri tabanına kayıt ekleyebilir, mevcut kayıtları değiştirebilir,
silebilir ve kayıtlardan listeler oluşturabiliriz.
SQL cümlecikleri genellikle aynı olmakla birlikte farklı veri tabanı
ortamlarında değişebilmektedir. Bu sitede her ortamda geçerli olan temel SQL
komutlarını inceleyeceğiz. Ancak komutların kullanım şekilleri MS SQL Server
7.0 uyumlu olacaktır. Verilen örneklerin MS SQL Server üzerinde uygulaması
yapılabilir. Örneklerin denenmesi Query Analyzer programı aracılığı ile
yapılabilir. Veritabanı oluşturma, tablo oluşturma bilgileri ve bu bilgiler ile
ilgili örnekler MS SQL Server Yönetimi sayfalarında bulunmaktadır.
4.3.2 TEMEL SQL KOMUTLARI
Bir ilişkisel veri tabanı sistemi en az bir veya daha fazla tablodan
oluşur. Veriler ya da bilgiler bu tablolarda tutulur. Her biri tablo isimleriyle
birbirinden ayrılır. Tablolar satır ve sütunlardan oluşurlar. Kolonlarda kolon
ismi, data tipi gibi bilgiler bulunur. Satırlar ise kayıtlarımızı ifade eder. Tablo
IV.2’ de temel SQL komutları gösterilmiştir.
TABLO IV.2: Temel sql komutları
CREATE
|
Veritabanında
bir nesne oluşturmak için kullanılır.
|
INSERT
|
Tablolara veri
eklemek için kullanılan SQL komutudur.
|
SELECT
|
Tablolardan
veri listelemek için kullanılan SQL komutudur.
|
UPDATE
|
Tablodaki
veriyi güncellemek için kullanılan SQL komutudur.
|
DELETE
|
Tablodan veri
silmek için kullanılan SQL komutudur.
|
Tablo IV.2’ deki komutları kullanarak bir tablo oluşturup kayıt ekleme,
listeleme, güncelleme ve silme işlemleri örneklerle anlatılmıştır..
Örneğimizde; OGRENCI ve DERSLER tabloları oluşturulup bu tablolar ile temel SQL
komutlarının kullanımı anlatılmıştır.
OGRENCI tablosu; “OkulNo,
TCKimlikNo, Ad, Soyad, DogumTarihi, Cinsiyet, Adres, Telefon, KayıtYılı, Bolum”
bilgilerinden oluşacaktır.
DERSLER tablosu; “OkulNo,
DersId, DersAdı, Vize, Final, VizeYuzde” bilgilerinden oluşacaktır.
4.3.2.1 TABLO OLUŞTURMA (CREATE)
Yeni bir tablo oluşturmak için CREATE TABLE komutu kullanılır.
Şekil IV.1’ de “Create”
komutunun kullanımı gösterilmiştir.
|
Şekil
IV.1: “Create” komutunun kullanımı
Tablo IV.3’
de bazı ortak kullanılan veri tipleri ve
açıklamaları gösterilmiştir.
Tablo IV.3: Veritipleri
char(büyüklük)
|
Sabit
uzunluklu karakter dizisi. Büyüklük parantez içinde belirtilir. Maksimum 8000
karakter alabilir.
|
varchar(büyüklük)
|
Değişken
uzunluklu karakter dizisi. Maksimum 8000 karakter alabilir.
|
integer
|
Sayısal değer
girilebilecek alan tanımıdır. (-2,147,483,648) ile (2,147,483,647) arası
değer girilebilir.
|
date
|
Tarih Değeri
|
numeric(büyüklük,d)
|
Sayısal değer
toplam maksimum basamak değeri parantez içerisinde belirtilir. 'd' nokta
sonrası basamak belirtir.
|
Şekil IV.2’ de ogrenci ve dersler
tablosunun oluşturulması görülmektedir. Burada her bir alanın adı, veri tipleri
ve uzunlukları verilmiştir.
|
Şekil IV.2: OGRENCI ve DERSLER tablolarının
oluşturulması
4.3.2.2 TABLOLARA KAYIT EKLENMESİ (INSERT)
Oluşturduğumuz tablolara kayıt eklemek için INSERT komutu kullanılır. Şekil
IV.3’ de “insert” komutunun kullanımı gösterilmiştir.
|
Şekil IV.3: “Insert” komutunun
kullanımı
Şekil IV.4’ deki insert komutu kullanımıyla ilgili örnekte “ogrencı”
tablosuna nasıl kayıt eklenebileceği, veri alanları ile eklenecek verilerin
nasıl eşleneceği gösterilmiştir. Her veri alanına uygun veri tipinde değere
girilmelidir.
|
Şekil IV.4: “OGRENCI” tablosuna
kayıt eklenmesi
Şekil IV.5’ deki insert komutunun değişik bir kullanımıyla ilgili örnekte
“dersler” tablosuna nasıl kayıt eklenebileceği, veri alanları ile eklenecek
verilerin nasıl eşleneceği gösterilmiştir. Her veri alanına uygun veri tipinde değere
girilmelidir.
|
Şekil IV.5: “DERSLER”
tablosuna kayıt eklenmesi
4.3.2.3 TABLOLARDAKİ KAYITLARIN LİSTELENMESİ (SELECT)
Tablolarda bulunan kayıtları (verileri) listelemek için SELECT komutu
kullanılır. Şekil IV.6’ da “select” komutunun kullanımı gösterilmiştir.
|
Şekil IV.6: “Select” komutunun
kullanımı
“SELECT * FROM OGRENCI” komutu çalıştırıldığında elde edeceğimiz sonuç Tablo
IV.4’ de gösterilmiştir
Tablo IV.4: OGRENCI tablosundaki
kayıtların listelenmesi işleminin sonucu
OkulNo
|
TCKimlikNo
|
Ad
|
Soyad
|
DogumTarihi
|
Cinsiyet
|
Adres
|
Telefon
|
KayıtYılı
|
Bolum
|
1234567
|
12345678901
|
Barış
|
TAŞKIN
|
1976-04-19
|
E
|
Şişli
|
2122345678
|
2001
|
Bilgisayar
|
5683545
|
56845236549
|
Ayşe
|
Tokmak
|
1981-06-12
|
K
|
Göztepe
|
2168759635
|
2003
|
Elektronik
|
Bir tablodan veri alanlarının isimleri belirtilerek listelemenin nasıl
yapıldığı Şekil IV.7’ de gösterilmiştir. Şekil IV.7’ deki komutun kullanımı
sonucu elde edilecek veriler Tablo IV.5’ de gösterilmiştir.
|
Şekil IV.7: “DERSLER”
tablosundaki verilerin listelenmesi
Tablo IV.5: DERSLER tablosundaki
kayıtların listelenmesi işleminin sonucu
OkulNo
|
DersId
|
DersAdı
|
Vize
|
Final
|
VizeYuzde
|
1234567
|
989
|
PROGRAMLAMA
I
|
60
|
75
|
30
|
1234567
|
991
|
PROGRAMLAMA
II
|
80
|
94
|
40
|
1234567
|
990
|
PROGRAMLAMA
III
|
83
|
91
|
40
|
1234567
|
777
|
DATABASE
|
100
|
100
|
40
|
5683545
|
989
|
PROGRAMLAMA
I
|
62
|
66
|
40
|
5683545
|
811
|
ELEKTRONİK
I
|
72
|
76
|
40
|
4.3.2.4 TABLOLARDAKİ KAYITLARIN GÜNCELLENMESİ (UPDATE)
Tablolarda bulunan kayıtları (verileri) güncellemek için UPDATE komutu
kullanılır. Şekil IV.8’ de “update” komutunun kullanımı gösterilmiştir.
|
Şekil IV.8: “Update” komutunun
kullanımı
Belirli bir satırı (veriyi) güncellemek için UPDATE komutu yanı sıra
WHERE cümleciğini de kullanmamız gerekmektedir. WHERE cümleciği kullanılmaz ise
tablodaki tüm veriler güncellenir.
DERSLER tablosundaki "VizeYuzde" alanındaki tüm verilerin 40
olarak güncellenmesi işlemi “UPDATE DERSLER SET VizeYuzde = 40” ifadesinin çalıştırılması
ile gerçekleştirilir.
Tablo IV.6: “OGRENCI” tablosu verileri
OkulNo
|
TCKimlikNo
|
Ad
|
Soyad
|
DogumTarihi
|
Cinsiyet
|
Adres
|
Telefon
|
KayıtYılı
|
Bolum
|
1234567
|
12345678901
|
Barış
|
TAŞKIN
|
1976-04-19
|
E
|
Şişli
|
2122345678
|
2001
|
Bilgisayar
|
5683545
|
56845236549
|
Ayşe
|
Tokmak
|
1981-06-12
|
K
|
Göztepe
|
2168759635
|
2003
|
Elektronik
|
Tablo IV.6’ da gösterilmiş olan “OGRENCI” tablosundaki “1234567” okul numaralı
öğrenci kaydının telefon bilgisini değiştirmek için kullanılması gereken komut Şekil
IV.9’ da gösterilmiştir.
|
Şekil
IV.9: “1234567”
okul numaralı öğrenci kaydının güncellenmesi
Güncelleme işlemi sonucunda “OGRENCI” tablosundaki verilerin yeni durumu Tablo
IV.7’ de gösterilmiştir.
Tablo IV.7: “OGRENCI” tablosu
verilerin yeni hali
OkulNo
|
TCKimlikNo
|
Ad
|
Soyad
|
DogumTarihi
|
Cinsiyet
|
Adres
|
Telefon
|
KayıtYılı
|
Bolum
|
1234567
|
12345678901
|
Barış
|
TAŞKIN
|
1976-04-19
|
E
|
Şişli
|
2122303132
|
2001
|
Bilgisayar
|
5683545
|
56845236549
|
Ayşe
|
Tokmak
|
1981-06-12
|
K
|
Göztepe
|
2168759635
|
2003
|
Elektronik
|
4.3.2.5 TABLOLARDAKİ KAYITLARIN SİLİNMESİ (DELETE)
Tablolarda bulunan kayıtları (verileri) silmek için DELETE komutu
kullanılır. Şekil IV.10’ da “delete” komutunun kullanımı gösterilmiştir.
|
Şekil IV.10: “Delete”
komutunun kullanımı
Belirli bir satırı (veriyi) silmek için DELETE komutu yanı sıra WHERE
cümleciğini de kullanmamız gerekmektedir. DELETE komutundan sonraki dersimiz
Where cümleciği olacak. Ancak Where cümleciği aynı zamanda listeleme
(görüntüleme) işleminde SELECT komutuyla beraber kullanılarak istenilen
verilerin tablo ya da tablolardan elde edilebilmesini sağlar.
Tablo IV.8: “DERSLER” tablosunda
saklanan kayıtlar
OkulNo
|
DersId
|
DersAdı
|
Vize
|
Final
|
VizeYuzde
|
1234567
|
989
|
PROGRAMLAMA
I
|
60
|
75
|
30
|
1234567
|
991
|
PROGRAMLAMA
II
|
80
|
94
|
40
|
1234567
|
990
|
PROGRAMLAMA
III
|
83
|
91
|
40
|
1234567
|
777
|
DATABASE
|
100
|
100
|
40
|
5683545
|
989
|
PROGRAMLAMA
I
|
62
|
66
|
40
|
5683545
|
811
|
ELEKTRONİK
I
|
72
|
76
|
40
|
Tablo IV.8’ de kayıtları gösterilen dersler tablosundan 1234567 numaralı
öğrencinin "PROGRAMLAMA II" dersiyle ilgili kaydını silmek için
kullanılması gereken komut formatı Şekil IV.11’ de gösterilmiştir.
|
Şekil IV.11: “Dersler” tablosundan bir
kaydın silinmesi
4.3.3 KOŞULLAR, KARŞILAŞTIRMALAR ( WHERE Cümleciği )
Temel SQL komutları içerisinde UPDATE ve DELETE komutları sırasında
kısaca bahsettiğimiz WHERE cümleciği SQL kod yazımının en önemli parçalarından
biridir. WHERE cümleciği yardımı ile ileri düzey SQL komutları yazabilir tüm
tablo yerine yalnızca istediğimiz kayıtlar üzerinde işlem yapabiliriz.
WHERE cümleciği sıklıkla SELECT komutu ile kullanılmakla beraber UPDATE
ve DELETE işlemlerinde de çok sık kullanılmaktadır. WHERE cümleciği tablodaki
hangi kayıtlar üzerinde işlem yapılacağını belirten kriterleri kullanmamızı
sağlar.
WHERE cümleciğinin çeşitli
komutlarla kullanımı Şekil IV.12’ de gösterilmiştir.
|
Şekil
IV.12: Where cümleciğinin kullanımı
Where cümleciği kullanarak, oluşturmuş olduğumuz örnek tablolardan
gelişmiş select cümleleri ile veri okuma işlemleri yapalım. Tabloları tekrar
hatırlamamız gerekirse; Tablo IV.9’ da “OGRENCI”, Tablo IV.10’da “DERSLER”
tablolarının sakladığı veriler gösterilmiştir.
Tablo IV.9: “OGRENCI” tablosundaki
veriler
OkulNo
|
TCKimlikNo
|
Ad
|
Soyad
|
DogumTarihi
|
Cinsiyet
|
Adres
|
Telefon
|
KayıtYılı
|
Bolum
|
1234567
|
12345678901
|
Barış
|
TAŞKIN
|
1976-04-19
|
E
|
Şişli
|
2122303132
|
2001
|
Bilgisayar
|
5683545
|
56845236549
|
Ayşe
|
Tokmak
|
1981-06-12
|
K
|
Göztepe
|
2168759635
|
2003
|
Elektronik
|
Tablo IV.10: “DERSLER” tablosundaki
veriler
OkulNo
|
DersId
|
DersAdı
|
Vize
|
Final
|
VizeYuzde
|
1234567
|
989
|
PROGRAMLAMA I
|
60
|
75
|
40
|
1234567
|
991
|
PROGRAMLAMA III
|
83
|
91
|
40
|
1234567
|
777
|
DATABASE
|
100
|
100
|
40
|
5683545
|
989
|
PROGRAMLAMA I
|
62
|
66
|
40
|
5683545
|
811
|
ELEKTRONİK I
|
72
|
76
|
40
|
Tablo IV.10’ da verileri gösterilen “OGRENCI” tablosunda
kayıtları bulunan kız öğrencileri listelemek için Şekil IV.13’ de yer alan
komut dizesi kullanılmıştır. Komutun çalıştırılmasıyla elde edilecek veriler Tablo
IV.11’ de gösterilmiştir.
|
Şekil IV.13: “OGRENCI”
tablosundaki kız öğrencileri listelemek.
Tablo IV.11: “OGRENCI” tablosundaki kız öğrenciler
OkulNo
|
TCKimlikNo
|
Ad
|
Soyad
|
DogumTarihi
|
Cinsiyet
|
Adres
|
Telefon
|
KayıtYılı
|
Bolum
|
5683545
|
56845236549
|
Ayşe
|
Tokmak
|
1981-06-12
|
K
|
Göztepe
|
2168759635
|
2003
|
Elektronik
|
“OGRENCI”
tablosundan kayıt yılı 2000'
den sonra olan öğrencilerin Okulno, isim, soyad, telefon numarası bilgilerini
listelemek için Şekil IV.14’ de bulunan komut uygulanmıştır. Komutun
çalışmasıyla elde edeceğimiz veriler Tablo IV.12’de gösterilmiştir.
|
Şekil IV.14: 2000' den sonra kaydolan
öğrencilerin listelenmesi
Tablo IV.12: 2000'
den sonra kaydolan öğrencilerin listesi
OkulNo
|
Ad
|
Soyad
|
Telefon
|
KayıtYılı
|
1234567
|
Barış
|
TAŞKIN
|
2122303132
|
2001
|
5683545
|
Ayşe
|
Tokmak
|
2168759635
|
2003
|
“DERSLER”
tablosundan 1234567 numaralı öğrencinin derslerini görüntülemek için Şekil IV.15’
de bulunan komut uygulanmıştır. Komutun çalışmasıyla elde edeceğimiz veriler Tablo
IV.13’de gösterilmiştir.
|
Şekil IV.15: Dersler tablosundan
1234567 numaralı öğrencinin listelenmesi
Tablo IV.13: 1234567 numaralı öğrencinin dersleri
OkulNo
|
DersId
|
DersAdı
|
Vize
|
Final
|
VizeYuzde
|
1234567
|
989
|
PROGRAMLAMA I
|
60
|
75
|
40
|
1234567
|
991
|
PROGRAMLAMA III
|
83
|
91
|
40
|
1234567
|
777
|
DATABASE
|
100
|
100
|
40
|
“DERSLER”
tablosundan PROGRAMLAMA I dersini alan öğrencileri ve notlarını görüntülemek için
Şekil IV.16’ da bulunan komut uygulanmıştır. Komutun çalışmasıyla elde
edeceğimiz veriler Tablo IV.14’de gösterilmiştir.
|
Şekil IV.16: PROGRAMLAMA I
dersini alan öğrenciler ve notlarının
listelenmesi
Tablo IV.14: PROGRAMLAMA I dersini alan
öğrenciler ve notları
OkulNo
|
DersAdı
|
Vize
|
Final
|
1234567
|
PROGRAMLAMA I
|
60
|
75
|
5683545
|
PROGRAMLAMA I
|
62
|
66
|
4.3.4 TEMEL SQL FONKSİYONLARI
Tablo IV.15: Temel SQL fonksiyonları
AVG()
|
Belirtilen veri grubunun ortalamasını
verir.
|
SUM()
|
Belirtilen veri grubunun
toplamını verir.
|
COUNT()
|
Belirtilen veri grubunun sayısını
verir.
|
STDEV()
|
Belirtilen veri grubunun standart
sapmasını verir.
|
MAX()
|
Belirtilen veri grubunun en büyük
değerini verir.
|
MIN()
|
Belirtilen veri grubunun en küçük
değerini verir.
|
VAR()
|
Belirtilen veri grubunun
varyansını verir.
|
1234567 numaralı öğrencinin vize notlarının Vizeyuzde alanında belirtilen
yüzdesi ve final notlarının vizeYuzde alanından hesaplanan yuzdesi kadarı
alınarak toplamlarını gösteren SQL cümlesi Şekil IV.17’ de gösterilmiştir. SQL
cümlesinin sonucu Tablo IV.16’da bulunmaktadır.
|
Şekil
IV.17: 1234567 numaralı öğrencinin notlarının hesaplanması
Tablo IV.16: 1234567 numaralı
öğrencinin notları
OkulNo
|
DersAdı
|
Vize
|
Final
|
Ortalama
|
1234567
|
PROGRAMLAMA I
|
24
|
45
|
69
|
1234567
|
PROGRAMLAMA III
|
33.2
|
54.6
|
87.8
|
1234567
|
DATABASE
|
100
|
100
|
100
|
Örnek 1’
de bulduğumuz notların ortalamasını alarak öğrencinin tüm derslerden
ortalamasını gösteren SQL cümlesi Şekil IV.18’ de gösterilmiştir. SQL
cümlesinin sonucu Tablo IV.17’de bulunmaktadır.
|
Şekil
IV.18: 1234567 numaralı öğrencinin genel not ortalamasının
bulunması
Tablo
IV.17: 1234567 numaralı öğrencinin genel not ortalaması
OkulNo
|
Ortalama
|
1234567
|
85.6
|
Örnek 1’
de bulduğumuz ortalamaların en büyük değerini ve en küçük değerini bulmak ve
ortalamanın yanına yazmak için kullanılması gereken SQL cümlesi Şekil IV.19’ da
gösterilmiştir. SQL cümlesinin sonucu Tablo IV.18’ de bulunmaktadır.
|
Şekil
IV.19: 1234567 numaralı öğrenciyle ilgili istatistiklerin bulunması
Tablo IV.18: 1234567 numaralı
öğrenciyle ilgili istatistikler
OkulNo
|
Ortalama
|
EnBuyuk
|
Enkucuk
|
1234567
|
85.6
|
69
|
100
|
4.3.5 MATEMATİKSEL OPERATÖRLER
Tablo IV.19: Matematiksel operatörler
+
|
Toplama
|
Yandaki işlemler SQL Server da
yapılabilen standart 4 işlemi göstermektedir.
|
-
|
Çıkarma
|
|
*
|
Çarpma
|
|
/
|
Bölme
|
|
%
|
Mod
|
1234567 numaralı öğrencinin vize notlarının Vizeyuzde alanında belirtilen
yüzdesi ve final notlarının vizeYuzde alanından hesaplanan yüzdesi kadarı
alınarak toplamlarını gösteren SQL cümlesi Şekil IV.20’ de gösterilmiştir. SQL
cümlesinin sonucu Tablo IV.20 de bulunmaktadır.
|
Şekil
IV.20: 1234567 numaralı öğrencinin ders notlarının hesaplanması
Tablo IV.20: 1234567 numaralı
öğrencinin ders notları
OkulNo
|
DersAdı
|
Vize
|
Final
|
Ortalama
|
1234567
|
PROGRAMLAMA I
|
24
|
45
|
69
|
1234567
|
PROGRAMLAMA III
|
33.2
|
54.6
|
87.8
|
1234567
|
DATABASE
|
100
|
100
|
100
|
4.3.6 TABLO BİRLEŞTİRMELERİ (JOIN)
Şimdiye kadar örneklerini yaptığımız SELECT cümlecikleri yalnızca bir
tablodan veri alımı yapabiliyordu. Bu bölümde SQL ve ilişkisel veritabanlarının
en yararlı özelliği olan tablo birleştirmeleri (JOIN) anlatılmıştır. JOIN
işlemi veritabanını ilişkisel hale getiren işlemdir. Tablo birleştirmeleri 2
veya daha fazla sayıda tabloda tek bir SELECT cümleciği ile ortak veriler elde
edilebilmesini sağlar. Join işleminin kullanımı Şekil IV.21’ de gösterilmiştir.
|
Şekil
IV.21: Join kullanımı
Tablo IV.21: “OGRENCI” tablosunun
alanları
OkulNo
|
TCKimlikNo
|
Ad
|
Soyad
|
DogumTarihi
|
Cinsiyet
|
Adres
|
Telefon
|
KayıtYılı
|
Bolum
|
Tablo IV.22: “DESLER” tablosunun
alanları
OkulNo
|
DersId
|
DersAdı
|
Vize
|
Final
|
VizeYuzde
|
OGRENCİ tablosundan kız öğrencilerin okul numarasını, adını, soyadını ve
DERSLER tablosundan bu öğrencilere ait derslerin adlarını, vize, final
notlarını listelemek için kullanılan SQL cümlesi Şekil IV.22’de gösterilmiştir.
Bu işlemin sonucu Tablo IV.23’ de yer almaktadır.
|
Şekil
IV.22: OGRENCI ve DERSLER tablolarının birleştirilmesi(örnek 1)
Tablo IV.23: OGRENCI ve DERSLER tablolarından
okunan kayıtlar(örnek 1)
OkulNo
|
Ad
|
Soyad
|
DersAdı
|
Vize
|
Final
|
5683545
|
Ayşe
|
Tokmak
|
PROGRAMLAMA
I
|
62
|
66
|
5683545
|
Ayşe
|
Tokmak
|
ELEKTRONİK
I
|
72
|
76
|
OGRENCİ tablosundan okul numarası , isim ve soyadı bilgileri ile DERSLER
tablosundan bu öğrencilere ait derslerin adlarını , vize , final notlarını ile
Vizeyuzde alanına göre hesaplanmış ortalamaları listelemek için kullanılan SQL
cümlesi Şekil IV.23’de gösterilmiştir. Bu işlemin sonucu Tablo IV.24’ de yer
almaktadır.
|
Şekil
IV.23: OGRENCI ve DERSLER tablolarının birleştirilmesi(örnek 2)
Tablo IV.24: OGRENCI ve DERSLER
tablolarından okunan kayıtlar(örnek 2)
OkulNo
|
Ad
|
Soyad
|
DersAdı
|
Vize
|
Final
|
|
1234567
|
Barış
|
TAŞKIN
|
PROGRAMLAMA I
|
60
|
75
|
69
|
1234567
|
Barış
|
TAŞKIN
|
PROGRAMLAMA
III
|
83
|
91
|
87.8
|
1234567
|
Barış
|
TAŞKIN
|
DATABASE
|
100
|
100
|
100
|
5683545
|
Ayşe
|
Tokmak
|
PROGRAMLAMA
I
|
62
|
66
|
64.4
|
5683545
|
Ayşe
|
Tokmak
|
ELEKTRONİK
I
|
72
|
76
|
74.4
|
4.3.7 SIRALAMA (ORDER BY) , GRUPLAMA (GROUP BY) VE DİĞER CÜMLECİKLER
4.3.7.1 SIRALAMA (ORDER BY)
Sıralama işlemi listelediğimiz verileri hangi veri grubuna göre ve artan
ya da azalan olarak göstermemizi sağlar. Şekil IV.24’ de “order by”
cümleciğinin kullanımı gösterilmiştir.
|
Şekil
IV.24: “order by” cümleciğinin kullanımı
ASC ve DESC isteğe bağlı olarak kullanılabilir. ASC, verilerin artarak;
DESC ise azalarak listelenmesini sağlar. Kolon_listesi sıralamanın hangi veri
grubuna göre yapılacağını belirler. Kullanılmazsa ASC olarak kabul edilir.
ÖRNEK:
OGRENCI
tablosundaki verilerin kayıt yılına göre azalarak listelenmesi için;
“SELECT * FROM OGRENCI ORDER BY
KayıtYılı DESC” komutu OGRENCI tablosundaki verilerin kayıt yılına göre
azalarak listelenmesini sağlamıştır. Bu komutunu sonucu Tablo IV.25’ de
gösterilmiştir.
Tablo IV.25: “Order by” cümleciğinin
sonucu
OkulNo
|
TCKimlikNo
|
Ad
|
Soyad
|
DogumTarihi
|
Cinsiyet
|
Adres
|
Telefon
|
KayıtYılı
|
Bolum
|
5683545
|
56845236549
|
Ayşe
|
Tokmak
|
1981-06-12
|
K
|
Göztepe
|
2168759635
|
2003
|
Elektronik
|
1234567
|
12345678901
|
Barış
|
TAŞKIN
|
1976-04-19
|
E
|
Şişli
|
21223303132
|
2001
|
Bilgisayar
|
4.3.7.2 GRUPLAMA
(GROUP BY)
Listelenen tablodaki verileri gruplamak için kullanılır. SELECT cümlesi
içerisinde fonksiyonlar kullanılırsa fonksiyonlar herbir grup için ayrıca
çalışır. GROUP BY kullanıldığında SELECT cümlesinde listelenmek istenen her bir
veri her grup için tek bir değere sahip olmalıdır. Şekil IV.25’ de “group by”
cümleciğinin kullanımı gösterilmiştir.
|
Şekil
IV.25: “group by” cümleciğinin kullanımı
DERSLER tablosundaki verileri Ders isimlerine göre gruplayarak her bir
dersin vize notları ortalaması ve final notları ortalamasını bulmak için
kullanılması gerek SQL cümlesi Şekil IV.26’ da, Sql cümlesinin sonucu ise Tablo
IV.26’ da gösterilmiştir.
|
Şekil
IV.26: Group by örnek cümlesi
Tablo IV.26: Group by örnek cümlesinin
sonucu
DersId
|
DersAdı
|
--------
|
--------
|
777
|
DATABASE
|
100
|
100
|
811
|
ELEKTRONİK I
|
72
|
76
|
989
|
PROGRAMLAMA I
|
61
|
70.5
|
991
|
PROGRAMLAMA III
|
83
|
91
|
4.3.7.3 HAVING
HAVING cümleciği GROUP BY cümleciğinin hemen arkasından kullanılır. Her
bir gruptan uygun kritere sahip olan grupların listelenmesini sağlar. Şekil IV.27’de
“having” cümleciğinin kullanımı gösterilmiştir.
|
Şekil IV.27: “having” cümleciğinin
kullanımı
DERSLER
tablosundaki verileri Ders isimlerine göre gruplayarak her bir dersin vize
notları ortalaması ve final notları ortalamasını bulup final ortalaması 60 ve
70 arasında bulunan kayıtları listelemek için kullanılması gereken SQL cümlesi Şekil
IV.28’de gösterilmiştir. Şekil IV.27’ deki SQL cümlesinin cevabı Tablo IV.27’de
gösterilmiştir.
|
Şekil IV.28: “having” cümleciği örnek
kullanımı
Tablo IV.27: “having” cümleciği örnek kullanımının cevabı
DersId
|
DersAdı
|
--------
|
--------
|
811
|
ELEKTRONİK I
|
72
|
76
|
989
|
PROGRAMLAMA I
|
61
|
70.5
|
4.3.8 STORED PROCEDURE YAZIMI
Stored Procedure yazımının amacı sıklıkla kullanılacak olan ve özellikle
farklı kriterler için çalışacak olan SQL cümleciklerinin hazır bir yapıda
bulunmasını sağlamaktır.
Stored Procedure yazımı programlama dillerinde kullanılan altprogram
yazımına benzer parametre listesinde belirtilen parametreleri alan bu alt programlar
içerisinde belirtilen işlemleri yaparak ihtiyacımız olan işlemin yapılmasını
sağlar. Stored Procedure içerisinde istenen her türlü SQL işlemi
gerçekleştirilebilir.
Oluşturulan SP'ler oluşturuldukları veritabanı içerisinde kullanıcı tarafından
silinene kadar kayıtlı olarak durur ve başka kullanıcılar tarafından da
kullanılabilir. Stored procedure oluşturulması işleminin genel formatı Şekil IV.29’
da gösterilmiştir.
|
Şekil IV.29: Stored Procedure
Oluşturulması
Oluşturulmuş olan Stored Procedure, execute komutu ile beraber
kullanılır. Kullanımı “EXECUTE procedure_name parametre1, parametre2 ....
parametreN” şeklindedir.
DERSLER tablosundaki verileri Ders isimlerine göre gruplayarak herbir
dersin vize notları ortalaması ve final notları ortalamasını bulup final
ortalaması verilen herhangi 2 not arasında olan kayıtları listeleyen bir Stored
Procedure yazımı ile ilgili örnek Şekil IV.30’ da sunulmuştur. Prosedürün
çalıştırılması ile elde edilecek sonuç ise Tablo IV.28’ de gösterilmiştir.
|
Şekil IV.30: Örnek prosedür
oluşturulması ve kullanımı
Tablo: 4.28: Örnek prosedür
kullanımının sonucu
DersId
|
DersAdı
|
--------
|
--------
|
811
|
ELEKTRONİK I
|
72
|
76
|
989
|
PROGRAMLAMA I
|
61
|
70.5
|
4.3.9 KULLANICI TANIMLI FONKSİYONLAR
Kullanıcı tanımlı fonksiyonlar SQL Server 2000 ile kullanılmaya
başlanmıştır. Daha önceki SQL Server versiyonlarında kullanımı yoktur.
Oluşturulması SP yazımı gibi olmakla beraber programlama dillerinde yazılan
kullanıcı fonksiyonlarıyla aynı şekilde çalışmaktadır. Fonksiyon çalıştığında
kullanıcıya tek bir bilgi döndürür. Şekil
IV.31’ de kullanıcı tanımlı fonksiyon oluşturma ve fonksiyonun kullanımı
gösterilmiştir.
|
Şekil IV.31: Kullanıcı tanımlı fonksiyon oluşturma ve kullanımı
4.3.10 INDEX, VIEW VE TRIGGER KULLANIMI
4.3.10.1 INDEX
Indexler tablo üzerinde veriye ulaşımı kolaylaştırmak ve tablo
kullanımını daha verimli kılmak amacıyla kullanılırlar. Index oluşturma
sırasında verilerin fiziksel yeri değişebilir (clustered) ya da değişmeyebilir
(nonclustered). Herhangi bir alana index koyarak o alanda tekrar edilen bir veri
oluşmasını engelleyebiliriz (unique). Şekil IV.32’ de index oluşturma işleminin
kullanımı gösterilmiştir.
Şekil
IV.32: index oluşturma
OGRENCI tablosunda bulunan verileri "OkulNo" alanına göre
fiziksel olarak sıralayıp bu alanda her öğrenci için tek bir kayıt oluşturmak
istersek kullanmamız gereken SQL cümlesi Şekil IV.33’ de gösterilmiştir.
|
Şekil IV.33: “OGRENCI” tablosunda index oluşturma
4.3.10.2 VIEW
Bir yada birden fazla tablodaki istenen veriler alınarak hayali bir tablo
oluşturulması işlemidir. Tablolar kalıcı değildir. View üzerinde işlem yapılmak
istendiğinde bu hayali tablolar olşturulur. Oluşturulan View (hayali tablo)
gerçek bir tablo gibi kullanılabilir. Özellikle güvenlik amacıyla kullanılır. Şekil
IV.34’ de view oluşturma işlemi gösterilmiştir.
|
Şekil IV.34: View oluşturma
OGRENCİ tablosundan okul numarası, isim ve soyadı bilgileri ile DERSLER
tablosundan bu öğrencilere ait derslerin adlarını, vize, final notları ve
Vizeyuzde alanına göre hesaplanmış ortalamaları ve guncel tarih bilgilerinden
oluşan bir hayali tablo oluşturma örneği Şekil IV.35’ de gösterilmiştir. View’
ın kullanımı sonucu elde edilecek kayıt seti Tablo IV.29’ de gösterilmiştir.
|
Şekil
IV.35: “OGRENCI” ve “DERSLER”
tablolarından view oluşturma
ve kullanma
Tablo IV.29: “OGRENCIDERS_VIEW” hayali
tablosunun listelenmesi
OkulNo
|
Ad
|
Soyad
|
DersAdı
|
Vize
|
Final
|
Ortalama
|
Tarih
|
1234567
|
Barış
|
TAŞKIN
|
PROGRAMLAMA I
|
60
|
75
|
69
|
2005-03-07 21:53:59.297
|
1234567
|
Barış
|
TAŞKIN
|
PROGRAMLAMA
III
|
83
|
91
|
87.8
|
2005-03-07 21:53:59.297
|
1234567
|
Barış
|
TAŞKIN
|
DATABASE
|
100
|
100
|
100
|
2005-03-07 21:53:59.297
|
5683545
|
Ayşe
|
Tokmak
|
PROGRAMLAMA
I
|
62
|
66
|
64.4
|
2005-03-07 21:53:59.297
|
5683545
|
Ayşe
|
Tokmak
|
ELEKTRONİK
I
|
72
|
76
|
74.4
|
2005-03-07 21:53:59.297
|
4.3.10.3 TRIGGER
Trigger bir çeşit özel Stored Procedure olarak görülebilir. Kullanıcı
tablodaki kayıtlar üzerinde (ekleme, değiştirme, silme ) işlem yaptığında
otomatik olarak çalışır ve yapması istenen işlemi gerçekleştirir. Trigger
oluşturma işlminin kullanımı Şekil IV.36’ da gösterilmiştir.
|
Şekil
IV.36: Trigger oluşturma
OGRENCI tablosundan kayıt silinmeye çalıştığı zaman silinen kaydı
OGRENCI_LOG isimli tabloya kaydeden trigger Şekil IV.37’ de gösterilmiştir.
|
Şekil IV.37: “OGRENCI” tablosu
üzerinde insert triggerı oluşturma
KAYNAKLAR
1.
DEMİRKOL, ZAFER, “ASP İLE WEB PROGRAMCILIĞI VE
ELEKTRONİK TİCARET”, 8.BASKI, PUSULA YAYINCILIK
2.
GÜNDÜZ, DEVRİM, “VERİTABANINA GİRİŞ” , http://seminer.linux.org.tr
EKLER
EK 1: MS-SQL SERVER 1.SINAV SORULARI
SORU 1: Aşağıdakilerden hangisi bir veritabanı çeşidi
değildir?
A) Hiyerarşik Veritabanı B) İlişkisel Veritabanı
C) Nesnesel Veritabanı D) Text veritabanı
CEVAP: D
SORU 2: Veritabanında veriler nerede saklanmaktadır?
A) View B) Index
C) Tablo D) Text
CEVAP: C
SORU 3: Aşağıdakilerden hangisi
ilişkisel veritabanı sistemlerinin sağladığı olanaklardan değildir?
A) Veritabanına bilgi
kaydedilmesini sağlar.
B) Bir sistem hatasında bilinen
bir noktada uyumlu olmasını sağlar.
C) Veritabanında bulunan
verilerin ilişkilerini yönetir.
D) Verinin düzgün bir şekilde
kaydedildiğinden emin olur.
CEVAP: A
SORU 4: Aşağıdakilerden hangisi
MS SQL Server kurulumu sırasında
oluşturulan sistem tablolarından değildir?
A) Master B) Model
C) Tempdb D) Pubs
CEVAP: D
SORU 5: MS SQL Server içerisinde veritabanı oluştururken
aşağıdakilerden hangisi kullanıcı tarafından belirlenemez?
A) Data dosyasının yeri
B) Transaction Log dosyasının
yeri
C) Veritabanının minimum
büyüklüğü
D) Veritabanının maximum
büyüklüğü
CEVAP: C
SORU 6: MS SQL Server’ da tablo oluştururken kullanıcılar herhangi
bir değer girmeden tablo içersinde otomatik ve değişken değerler alan kolon
tanımlaması için hangi özellik kullanılır?
A) Default Value
B) Identity
C) Allow Nulls
D) Data type
CEVAP: B
SORU 7: MS SQL Server’ da index oluşturulurken clustered seçeneği
işaretlenmesinin sonucu ne olur?
A) Tabloya tekrarlanan veriler
girilemez.
B) Tablo içerisindeki veriler
fiziksel olarak sıralanır.
C) Başka clustered indexlerde
oluşturulmasını sağlar.
D) Non-Clustered index
oluşturulabilmesini sağlar.
CEVAP: B
SORU 8: View’ların en önemli özelliği aşağıdakilerden hangisidir?
A) Tablo gibi kullanılmaları.
B) İçlerinde veri saklamaları.
C) Kolay oluşturulabilmeleri.
D) İndexlerle beraber
çalışmaları.
CEVAP: A
SORU 9: Kullanıcı hesabı oluşturma işlemi için aşağıdakilerden
hangisi doğrudur?
A) Yalnızca network
kullanıcıları için kullanıcı hesabı oluşturulabilir.
B) Yalnızca veritabanı
kullanıcıları için kullanıcı oluşturulabilir.
C) Hem network hem de sql
server kullanıcıları için hesap oluşturulabilir.
D) Kullanıcı hesabına password
belirlemek zorunludur.
CEVAP: C
SORU 10: Aşağıdakilerden hangisi erişim güvenliği belirlenirken
dikkat edilmesi gereken kriterlerden değildir?
A) SA kullanıcısına mutlaka
şifre verilmelidir.
B) BUILTIN\Administrators
grubunun SQL Server kullanımı
sınırlandırılmalıdır.
C) Kullanıcıların mutlaka
şifre kullanmaları sağlanmalıdır.
D) Guest hesabı
kullanılmalıdır.
CEVAP: D
EK 2: MS-SQL SERVER 2.SINAV SORULARI
SORU 1: Aşağıdakilerden
hangisi veritabanı üzerinde verilen yetkilerden değildir?
A) Tablo oluşturma B) View oluşturma
C) Kayıt ekleme D) Kural oluşturma
CEVAP: C
SORU 2: Veritabanı üzerinde
yetkilendirilmeyen kullanıcı için aşağıdakilerden hangisi doğrudur?
A) Veritabanı üzerinde hiçbir
işlem yapamaz
B) Veritabanı üzerinde bağlı
bulunduğu grubun yetkilerini kullanabilir.
C) Veritabanına bağlanamaz.
D) Kural koyamaz.
CEVAP: B
SORU 3: Aşağıdakilerden
hangisi veritabanı üzerinde yetkili olan kullanıcının tablolar üzerinde
sınırlanabilen yetkilerinden değildir?
A) Tablo oluşturma B) Select
C) Delete D) Update
CEVAP: A
SORU 4: Aşağıdakilerden
hangisi sistem veritabanlarının yedeklenmesini gerektirmez?
A) Veritabanı oluşturmak
B) Sisteme kullanıcı eklemek.
C) Kullanıcılardan bazılarına
yetki vermek.
D) Herhangi bir veritabanından
bilgi silmek.
CEVAP: D
SORU 5: Restore işlemi
yapmadan önce neyin kontrol edilmesi gerekir?
A) Veritabanında herhangi bir
çalışma olmadığından emin olmak
B) Sistemdeki tüm
kullanıcıları iptal etmek
C) Sistem tablolarını
yedeklemek
D) Sistemi kapatıp açmak
CEVAP: A
SORU 6: Zamanlanmış
görevlerle ilgili bilgiler hangi sitem veritabanında saklanır?
A) Master
B) Pubs
C) Northwind
D) Msdb
CEVAP: D
SORU 7: Aşağıdakilerden
hangisi zamanlanmış bir görev tamamlandığında öğrenilebilecek bilgi değildir?
A) İşlerin yapılabilip
yapılamadığı
B) İşlemde hangi hataların
ortaya çıktığı
C) İşlem basamakları
D) İşlemin çalışma süresi
CEVAP: C
SORU 8: Microsoft® SQL
Server™ için tutarlılık kontrolü yapan komut dizileri aşağıdakilerden
hangisidir?
A) DBCC
B) Statistics
C) Update
D) Delete
CEVAP: A
SORU 9: Aşağıdakilerden hangisi
tutarlılık kontrolü değildir?
A) Bakım
B) Durum
C) Geçerlilik
D) Update
CEVAP: D
SORU 10: Tüm ilişkisel
veritabanlarında kayıtları birbirinden ayırmak ve tek yapmak için uygulanması
gereken yöntem aşağıdakilerden hangisidir?
A) Foreign Key
B) Index
C) Primary key
D) Key
CEVAP: C
EK 3: T-SQL 1.SINAV SORULARI
SORU 1: SQL nedir?
A) SQL başlı başına bir
programlama dilidir.
B) Veritabanıdır.
C) Veritabanı dilidir.
D) Fonksiyondur.
CEVAP: C
SORU 2: Oluşturduğumuz tablolara kayıt eklemek için hangi SQL
komutunu kullanırız?
A) Create
B) Insert
C) Append
D) Update
CEVAP: B
SORU 3: “Select * from Ogrencı” komutunun sonucu nedir?
A) Ogrenci tablosunun yapısını
gösterir.
B) Ogrencı tablosuna kayıt
ekler.
C) Ogrenci tablosundaki tüm
kayıtları listeler.
D) Hiçbirşey yapmaz.
CEVAP: C
SORU 4: Where cümleciği aşağıdakilerden hangi komutla birlikte
kullanılmaz?
A) Select
B) Update
C) Delete
D) Insert
CEVAP: D
Tablo1
|
Tablo2
|
Aşağıdaki soruları yukarıdaki tablo
yapılarına göre cevaplayınız
SORU 5: Tablo1’de yer alan Ad , Soyad ve Yaş bilgileri ile tablo 2
de yer alan Cinsiyet bilgilerini aşağıdaki cümlelerden hangisi listeler?
A) SELECT * FROM Tablo1,
Tablo2
B) SELECT Ad, Soyad,Yaş,
Cinsiyet FROM Tablo1, Tablo2
C) SELECT Ad, Soyad,Yaş,
Cinsiyet FROM Tablo1, Tablo2
WHERE OkulNo = OkulNo
D) SELECT Ad, Soyad,Yaş, Cinsiyet
FROM Tablo1, Tablo2
WHERE Tablo1.OkulNo
= Tablo2.OkulNo
CEVAP: D
SORU 6: Cinsiyeti “E” olan tüm öğrencilerin silinmesi işlemi
aşağıdaki işlemlerden hangisinde en doğru olarak belirtilmiştir?
A) DELETE FROM Tablo1 WHERE
Tablo2.Cinsiyet = ‘E’
B) DELETE FROM Tablo1 WHERE
OkulNo in (SELECT OkulNo
FROM Tablo2 WHERE Cinsiyet= ‘E’)
Go
DELETE FROM Tablo2 WHERE Cinsiyet = ‘E’
C) DELETE FROM Tablo1 , Tablo2
WHERE Tablo2.cinsiyet = ‘E’
D) DELETE FROM Tablo2 WHERE
Tablo2.Cinsiyet = ‘E’ go
DELETE FROM Tablo1 WHERE
Tablo2.Cinsiyet = ‘E’
CEVAP: B
SORU 7: OkulNo, Ad , Soyad ve Adres bilgilerini listeleyen komut
hangisidir?
A) SELECT OkulNo, Ad, Soyad,
Adres FROM Tablo1, Tablo2
B) SELECT OkulNo, Ad, Soyad,
Adres FROM Tablo1, Tablo2
WHERE Tablo1. OkulNo = Tablo2. OkulNo
C) SELECT Tablo1.OkulNo, Ad,
Soyad, Adres FROM Tablo1, Tablo2
WHERE Tablo1. OkulNo = Tablo2. OkulNo
D) SELECT OkulNo, Ad, Soyad,
Adres FROM Tablo1
CEVAP: C
SORU 8: Tablo1’e veri girişini sağlayan doğru cümle aşağıdakilerden
hangisidir?
A) INSERT INTO Tablo1(Ad,
Soyad , Yaş, OkulNo)
VALUES (‘Barış’, ‘TAŞKIN’, 28, 2106826 )
B) INSERT INTO Tablo1(Ad,
Soyad , Yaş, OkulNo)
SELECT (‘Barış’, ‘TAŞKIN’, 28, 2106826 )
C) INSERT Tablo1(Ad, Soyad ,
Yaş, OkulNo)
VALUES (‘Barış’, ‘TAŞKIN’, 28, 2106826 )
D) INSERT INTO Tablo1(Ad,
Soyad , Yaş, OkulNo)
VALUES (‘Barış’, ‘TAŞKIN’, 28, “2106826” )
CEVAP: A
SORU 9: Aşağıdaki komutlardan hangisi Tablo2’deki tüm kız
öğrencilerin adreslerini “MARMARA UNİVERSİTESİ” yapar?
A) UPDATE Tablo2 SET Adres =
‘MARMARA UNİVERSİTESİ’
B) UPDATE Tablo2 SET Adres =
‘MARMARA UNİVERSİTESİ’
WHERE Cinsiyet <>
‘E’
C) UPDATE Tablo2 SELECT Adres
= ‘MARMARA UNİVERSİTESİ’
WHERE Cinsiyet = ‘K’
D) UPDATE Tablo2 SELECT Adres
= ‘MARMARA UNİVERSİTESİ’
CEVAP: B
SORU 10: DELETE FROM tablo1 WHERE OkulNo Not in(SELECT OkulNo
FROM tablo2) komutunun sonucu hangi işlem gerçekleşir?
A) Tablo2’ de bulunan tüm
kayıtlar silinir.
B) Tablo2’ de kaydı bulunan
öğrencilerin Tablo1’ deki kayıtlar silinir.
C) Tablo2’ de kaydı bulunmayan
öğrencilerin Tablo1’ deki kayıtlar silinir.
D) Tablo1 ve Tablo2’ deki tüm
kayıtlar silinir.
CEVAP: C
EK 4: T-SQL 2.SINAV SORULARI
SORU 1: Aşağıdaki komutlardan hangisi listelenen verilerin
sıralanmasını sağlar?
A) ORDER BY
B) GROUP BY
C) HAVING
D) WHERE
CEVAP: A
SORU 2: GROUP BY kullanılırken dikkat edilmesi gereken en önemli
özellik nedir?
A) ORDER BY ile beraber
kullanılmalıdır.
B) HAVING ile beraber
kullanılmalıdır.
C) SELECT cümlesinde
listelenmek istenen her bir veri her grup için tek
bir değere sahip olmalıdır.
D) Listelenen veri mutlaka bir
tablo elamanına göre gruplanmalıdır.
CEVAP: C
SORU 3: HAVING komutu kullanımı nasıl olmalıdır?
A) WHERE cümleciği
olmamalıdır.
B) ORDER BY ile beraber
kullanılmalıdır.
C) HAVING cümleciği bir tablo
elemanı ile beraber kullanılmalıdır.
D) GROUP BY ile beraber
kullanılmalıdır.
CEVAP: D
SORU 4: Stored Procedure kullanımının amacı nedir?
A) Sıklıkla kullanılacak olan
ve özellikle farklı kriterler için çalışacak olan
SQL cümleciklerinin hazır bir yapıda bulunmasını sağlamaktır.
B) Fonksiyonları rahat
kullanmak
C) SQL komutları ile
gerçekleştirilemeyecek işlemlerin yapılmasını
sağlamak.
D) Kullanıcıların yaptıkları
işleri kontrol etmek.
CEVAP: A
SORU 5: Kullanıcı tanımlı fonksiyonlar ile Stored procedure
kullanımı arasındaki fark nedir?
A) Oluşturulmaları tamamen
farklıdır.
B) Kullanıcı tanımlı
fonksiyonlar tekbir değer döndürür.
C) Kullanıcı tanımlı
fonksiyonlar Stored Procedure içerisinde
kullanılabilir.
D) Stored Procedure’ ler bir
cevap döndürmezler.
CEVAP: B
SORU 6: Tablo üzerine index koymanın faydası nedir?
A) Tablodaki veriler güvenli
hale gelir.
B) Tablodaki verilerin
fiziksel yerleri değişir.
C) Tabloya veri eklenmesini
hızlandırır.
D) Tablo üzerinde veriye ulaşımı
kolaylaştırır.
CEVAP: D
SORU 7: Bir tablo üzerinde işlem yaparken başka bir tablo üzerinde
belirli kurallar çerçevesinde işlem yapabilmeyi sağlayan objeler hangisidir?
A) Stored Procedure’ ler
B) View’ ler
C) Index’ ler
D) Trigger’ lar
CEVAP: D
SORU 8: View’ lar hakkında verilen aşağıdaki bilgilerden hangisi
yanlıştır?
A) Özellikle güvenlik amacıyla
kullanılır.
B) Tablolar kalıcıdır.
C) Gerçek bir tablo gibi
kullanılabilir.
D) Tablolar kalıcı değildir.
CEVAP: B
SORU 9: Standart SQL fonksiyonları kullanımı için aşağıdaki
bilgilerden hangisi yanlıştır?
A) Beraber kullanılamazlar.
B) Herhangi bir kolon ismi
vermek gerekir.
C) Kullanıcı tanımlı
fonksiyonlarda kullanılamazlar.
D) Hepsi
CEVAP: D
SORU 10: Aşağıdakilerden hangisi matematiksel operatörlerdendir?
A) SUM
B) MAX
C) MIN
D) %
CEVAP: D
ÖZGEÇMİŞ
Barış Güven Taşkın, 19 Nisan 1976 yılında İstanbul’da doğdu. 1987 yılında
Kağıthane Merkez İlkokulu’ndan mezun oldu. 1990 yılında 50.Yıl Çağlayan
Ortaokulu’ndan mezun olduktan sonra girdiği Maçka Akif Tuncel Anadolu Meslek
Lisesi’nin Bilgisayar Yazılımı Bölümü’nü 1994 yılında tamamladı. Aynı sene
girdiği Boğaziçi Üniversitesi, Uygulamalı Bilimler Meslek Yüksekokulu,
Bilgisayar Programcılığı Bölümü’nden 1997 yılında Mezun oldu. 2001 yılından
beri Marmara Üniversitesi, Teknik Eğitim Fakültesi, Bilgisayar ve Kontrol
Eğitimi Bölümü’ne devam etmekte olup halen bu bölümde son sınıf öğrencisidir.
1997 yılında Çırağan Palace Casino’ da Sistem Yöneticisi olarak başladığı
iş hayatına, 1998 yılından 2001 yılına kadar Kuveyttürk Evkaf Finans Kurumu
Bilgiişlem Müdürlüğü’nde devam etmiştir. Programcı Yardımcısı olarak başladığı
buradaki görevine, programcı ve daha sonra veritabanı yönetici olarak devam
etmiştir. 2001 yılında eğitimine devam etmek için ayrılmış olmasına rağmen
halen çeşitli zamanlarda anlaşmalı olarak bu firma için kod yazmaya devam
etmektedir. İyi seviyede İngilizce bilmektedir.
Visual Basic ve MS SQL Server üzerinde ileri derecede bilgisi olup,
Pascal, Cobol, C/C++, RPG400, Delphi, Clipper gibi programlama dilleri
konusunda da bilgiye sahiptir. Windows ve Linux sistemlerde çalışma yapmıştır.
Network, TCP/IP ve güvenlik konularında çalışmalar yapmıştır.
Hiç yorum yok:
Yorum Gönder