1 Mart 2012 Perşembe

SQL VERİTABANININ WEB TABANLI EĞİTİMİ





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.
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İ

  1. Microsoft Access
  2. MySQL
  3. IBM DB2
  4. Informix
  5. Progress
  6. Microsoft SQL Server
  7. 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.
create table "tablo adı"
( "kolon_1" "veri tipi" ,
"kolon_2" "veri tipi" ,
"kolon_3" "veritipi" );

 
 






            Ş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.
create table OGRENCI (  OkulNo numeric(7),
TCKimlikNo numeric(11),
Ad varchar(15),
Soyad varchar(15),
DogumTarihi smalldatetime,
Cinsiyet char(1),
Adres varchar(45),
Telefon char(10),
KayıtYılı numeric(4),
Bolum varchar(20)
);
create table DERSLER ( OkulNo numeric(7) ,
DersId numeric(7) ,
DersAdı varchar(15) ,
Vize numeric(3) ,
Final numeric(3) ,
VizeYuzde numeric(2)
);

 
 


 

 

 

 

 

 

 

 

 

 


            Ş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.
insert into "tablo adı" ( birinci_kolon , ....., son_kolon )
values ( birinci_değer , ..... , son_değer ) ;
veya
insert into "tablo adı" ( birinci_kolon , ....., son_kolon )
Select birinci_değer , ..... , son_değer ;
 
 





Ş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.

insert into OGRENCI ( OkulNo, TCKimlikNo, Ad, Soyad, DogumTarihi,  Cinsiyet, Adres, Telefon, KayıtYılı, Bolum )
values ( 1234567 , 12345678901 , "Barış" , "TAŞKIN" , "19/04/1976" , "E" , "Şişli" , "2122345678" , 2001 , "Bilgisayar" ) ;
 
 






Ş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.

insert into DERSLER ( OkulNo, DersId, DersAdı, Vize, Final, VizeYuzde )
Select 1234567, 987, "PROGRAMLAMA I ", 60, 75, 30 ;
 




Ş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.
Tüm alanların (kolonların listelenmesi isteniyorsa;
SELECT * FROM "tablo adı"
Listelenmek istenen bilgiler için;
SELECT birinci_kolon , ..... , son_kolon FROM "tablo adı"

 
 





Ş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.

SELECT OkulNo, DersId, DersAdı, Vize, Final, VizeYuzde
FROM DERSLER
 
 



Ş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.
UPDATE "tablo adı"
SET     kolon_adı1 = <Veri>,
kolon_adı2 = <Veri>
WHERE kolon_adı1 = <Kriter> and
kolon_adı2 = <Kriter>

 
 




                         
Ş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: “OGRENCItablosu 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.

UPDATE OGRENCI
SET     Telefon = 2122303132
WHERE OkulNo = 1234567

 
 




            Ş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: OGRENCItablosu 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.

DELETE FROM "tablo adı"; komutu tablodaki tüm verileri
siler.
Tablodan bazı verileri silmek için;
DELETE
FROM            "tablo adı"
WHERE         kolon_adı1 = <Kriter> and
kolon_adı2 = <Kriter>

 
 








Ş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.
DELETE
FROM            DERSLER
WHERE         OkulNo = 1234567 and
DersId = 990

 
 

 






            Ş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.

SELECT         Kolon1 , Kolon2
FROM            "tablo adı"
WHERE         "Kriter1"

UPDATE        "tablo adı"
SET                 kolon_adı1 = <Veri>
WHERE         "Kriter1"

DELETE
FROM            "tablo adı"
WHERE         "Kriter1"
 
 












            Ş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.

SELECT *
FROM OGRENCI
WHERE Cinsiyet = 'K'

 
 




            Ş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.

SELECT okulno, Ad, Soyad, Telefon, KayıtYılı
FROM OGRENCI
WHERE kayıtYılı > 2000

 
 




            Ş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.
SELECT *
FROM DERSLER
WHERE Okulno = 1234567
 
 




Ş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.

SELECT okulno, DersAdı, Vize, Final
FROM OGRENCI
WHERE dersId = 989

 
 




Ş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.
SELECT OkulNo,DersAdı, (vize*40)/100 vize,
(final*(100-40))/100 final,
((vize*40)/100)+((final*(100-40))/100) ortalama
FROM dersler
WHERE OkulNo = 1234567
 
 






            Ş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.
SELECT OkulNo ,
AVG(((vize*40)/100)+((final*(100-40))/100)) ortalama
FROM DERSLER WHERE OkulNo = 1234567

 
 





            Ş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.
SELECT OkulNo,
AVG(((vize*40)/100)+((final*(100-40))/100)) ortalama,
MAX(((vize*40)/100) + ((final*(100-40))/100)) Enbuyuk ,
MIN(((vize*40)/100) + ((final*(100-40))/100)) Enkucuk
FROM dersler WHERE OkulNo = 1234567

 
 






            Ş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.

SELECT OkulNo,DersAdı,(vize*40)/100 vize ,
(final*(100-40))/100 final,
((vize*40)/100) + ((final*(100-40))/100) ortalama
FROM DERSLER
WHERE OkulNo = 1234567
 
 





           
            Ş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.
SELECT "listelenecek veriler "
FROM tablo1 , tablo2
WHERE tablo1.alanadı =  tablo2. alanadı
 
 





            Ş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.

SELECT OGRENCI.Okulno, OGRENCI.Ad, OGRENCI.Soyad,
DERSLER.DersAdı,DERSLER.Vize, DERSLER.Final
FROM OGRENCI , DERSLER
WHERE Cinsiyet = 'K' and OGRENCI.Okulno= DERSLER.Okulno
 
 






            Ş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.

SELECT OGRENCI.Okulno, OGRENCI.Ad, OGRENCI.Soyad,
DERSLER.DersAdı, DERSLER.Vize, DERSLER.Final,
((DERSLER.Vize * DERSLER.VizeYuzde) / 100) +
((DERSLER.Final * (100-DERSLER.VizeYuzde) / 100)
FROM OGRENCI , DERSLER
WHERE OGRENCI.Okulno= DERSLER.Okulno
 
 








            Ş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.
SELECT "listelenecek veriler "
FROM tablo1 , tablo2
WHERE "Kriterler"
ORDER BY "Kolon_listesi" [ASC | DESC]

 
 





            Ş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.

SELECT "listelenecek veriler "
FROM tablo1, tablo2
GROUP BY "Kolon_listesi"
 
 




            Ş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.
SELECT DersId, DersAdı, AVG(Vize) , AVG(Final)
FROM DERSLER
GROUP BY DersId, DersAdı
ORDER BY DersId

 
 




            Ş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.

SELECT "listelenecek veriler "
FROM tablo1 , tablo2
GROUP BY DersId , DersAdı
HAVING "Kriter"

 
 





            Ş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.

SELECT DersId , DersAdı , AVG(Vize) , AVG(Final)
FROM DERSLER
GROUP BY DersId , DersAdı
HAVING AVG(Final) between 60 and 70
 
 





            Ş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.
CREATE PROCEDURE prosedür_adı
{@parametre1 veri_tipi} ,
{@parametre2 veri_tipi} ,
.
.
.
{@parametreN veri_tipi}

AS
sql_cümleleri
 
 












Ş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.

CREATE PROCEDURE SINAVORTALAMALARI
@MinNot int , @MaxNot int
AS

SELECT DersId , DersAdı , AVG(Vize) , AVG(Final)
FROM DERSLER
GROUP BY DersId , DersAdı
HAVING AVG(Final) between @MinNot and @MaxNot
Go

Yukarıda yazılan program bloğunu derledikten sonra aşağıdaki gibi kullanabiliriz.
EXECUTE SINAVORTALAMALARI 50 , 80

 
 














Ş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.


Fonksiyon oluşturmak için;
CREATE FUNCTION Fonksiyon_Adı
(@parametre1 veri_tipi ,
@parametre2 veri_tipi ,
.
.
@parametreN veri_tipi )
RETURNS veri_tipi
AS
BEGIN
sql_cümleleri ...
RETURN değer
END

Kullanımı;
SELECT Fonksiyon_Adı(@parametre1 , @parametre2 , @parametreN )

 
 





























Ş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.

Metin Kutusu: CREATE [UNIQUE] [CLUSTERED | NONCLUSTERED]
INDEX index_adı ON tablo_adı (kolon_adı [,...n])


            Ş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.

CREATE UNIQUE CLUSTERED INDEX OGRENCI_IND
ON OGRENCI (OkulNo)
 
           

 


            Ş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.



CREATE VIEW view_adı [(kolon [,...n])]
[WITH ENCRYPTION]
AS
select_cümlesi
[WITH CHECK OPTION]
 
 




Ş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.


CREATE VIEW OGRENCIDERS_VIEW
AS
SELECT OGRENCI.Okulno , OGRENCI.Ad , OGRENCI.Soyad ,
 DERSLER.DersAdı , DERSLER.Vize , DERSLER.Final ,
((DERSLER.Vize * DERSLER.VizeYuzde) / 100) +
((DERSLER.Final * (100-DERSLER.VizeYuzde) / 100) AS
Ortalama , GETDATE() AS Tarih
FROM OGRENCI , DERSLER
WHERE  OGRENCI.Okulno= DERSLER.Okulno

Böylece view oluşturulmuş olur. View' ı kullanmak için ;
SELECT * FROM OGRENCIDERS_VIEW
 
 













            Ş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.
CREATE TRIGGER Trigger_adı
ON Tablo_Adı
FOR INSERT, UPDATE, DELETE
AS
Program bloğu

GO
 
 








            Ş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.
CREATE TRIGGER Trg_Ogrenci
ON OGRENCI
FOR DELETE
AS
INSERT OGRENCI_LOG
SELECT * FROM DELETED
GO

 
 








Ş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
Alan Adı
Veri tipi
Ad
Char(15)
Soyad
Char(15)
Yaş
Integer
OkulNo
Integer
Tablo2
Alan Adı
Veri tipi
OkulNo
Integer
Cinsiyet
Char(1)
Adres
Varchar(50)
Telefon
Char(10)
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