16 Ocak 2017 Pazartesi

WHILE Döngüsü


Döngüler bir işlemde tekrar gerektiren durumlarda kullanılmaktadır. Döngüler belirlenen şart sağlanıncaya kadar işlemin yapılmasını sağlamaktadır. Diğer dillerde olduğu gibi T-SQL içerisinde de tekrarlı işlemler için bir döngü mevcuttur.
Bu döngünün genel yapısı aşağıdaki gibidir.
WHILE Şart
BEGIN
Tekrar gerektiren kodlar
………
END

Örnek1: Basit bir döngü yazarak 10’a kadar sayı saydıralım.


Yazılım Sektörü İçin Özelleştirilmiş İş Arama Platformu


Yazılım, donanım, ağ ve internet teknolojilerindeki son gelişmeler, Türkiye ve Avrupa’da bilişim alanında binlerce yeni firmanın doğmasına neden olmuştur. ABD İşgücü İstatistik Dairesi’ne göre 2012 ile 2022 arasında bu alanlarda yüzde 22,8’lik bir büyüme olması beklemektedir. Bu büyüme ile Türkiye’de ve Avrupa’da istihdam açıkları oluşacaktır. Buna paralel olarak üniversitelerdeki bilgisayar bilimleri, bilgisayar /yazılım mühendisliği ve bilgisayar programcılığı gibi programların hem sayıları artacak hem de müfredatları yeni ihtiyaçlara göre revize edilecektir. Türkiye’de her ne kadar Bologna Süreci kapsamında eğitimde standardizasyona gidilmeye çalışılsa da her üniversitede verilen eğitim farklılık gösterebilmekte ve mezun olan öğrenciler farklı bilgi ve beceri edinmektedirler.
Öğrenciler eksik olan ya da yeterli olmayan durumlarda kolay, hızlı ve istediği an eğitim alabilecek kurslara ihtiyaç duymaktadır. Özellikle büyük şehirlerde veya şehir merkezinde yaşamayan öğrencilerin ihtiyaç duydukları eğitime ulaşma imkânları son derece zor ve maliyetlidir. Teknolojinin hızla geliştiği çağımızda ve yaşam boyu Öğrenme kavramı kapsamında oluşturulacak bu platform sayesinde, gerekli bilgiler çevrimiçi ortamda paylaşılacak ve böylece daha fazla bireye ulaşma imkânı elde edilecektir.
Projenin amacı temel olarak üniversitelerin bilişim bölümünden mezun ve mezun adayları ile işverenleri bir araya getirmektir. İşverenlerin ilan verebileceği, iş arayan yazılımcıların kendine özgü yeteneklerini temel alarak iş arayabilecekleri, işverenlerin talep ettiği niteliklere uygun olmayan adayların kendini geliştirebileceği ve uzaktan eğitim alarak sınava girebileceği ve sertifika edinebileceği, özgün aday eşleştirme algoritmalarına sahip bir platform oluşturmaktır.

Hazırlayanlar: Yalçın ŞAHİN, Furkan KOLCU

Görme Engelliler için Sesli Haber Okuma Sistemi



Görme engelli insanların, günlük hayatlarında çalışma imkânlarından ve sosyal haklardan yararlanabilmesi için haber sitelerine kolay bir şekilde erişmeye ihtiyaçları vardır. Şu anki durumda ülkemizde yaşayan görme engellilerin kullanabileceği yurt dışında geliştirilmiş farklı özelliklere sahip çeşitli yazılımlar bulunmaktadır. Yeni gelişen mobil teknolojinin imkanları sayesinde geliştirilen yazılım ile  görme engelli insanların ulusal haber web sitelerine kolay ve hızlı bir arayüz ile girip istedikleri metin haberlerini rahat ve kolayca dinleyebilecekleri metni ses çeviren sesli oku isimli bir yazılım geliştirilmiştir. Böyle bir uygulama ile görme engelli insanların; sesli okumalar yardımıyla haber sitelerindeki bilgilere rahatca erişebilmeleri sağlanmıştır. Bu çalışmada ayrıca bilişim teknolojilerinin görme engelli insanlar için kullanılabilirliği sorgulanmıştır. Alan taraması yapılarak bu konudaki ulusal ve uluslararası çalışmalar incelenip geliştirilen yazılım ile birlikte anlatılarak önerilerde bulunulmuştur.

Proje Başarısı: BAP (Bilimsel Araştırma Projeleri) başvursu, 1 adet uluslararası bildiri kabülü.
Hazırlayanlar: Selçuk AKŞAR, Abdulmelik KALKAN



AKBS (Acil Konum Bildiri Sistemi)


Global Positioning System; Dünya üzerinde engelsiz bir görüş hattında, dört veya daha fazla uydusu ile her türlü hava koşulunda küresel olarak yer ve zaman bilgileri sağlayan uzay tabanlı bir navigasyon sistemidir. Düzenli olarak kodlanmış bilgi yollayan bir uydu ağıdır. GPS sistemini kullanan kişinin dünya üzerindeki yeri, uydularla arasındaki mesafe ölçülerek kesin olarak tespit edilebilmektedir. Geliştirilen Acil Konum Bildirim Sistemi, GPS teknolojisini mobil telefonlarda kullanarak, kişilerin acil çağrı numaralarını aradıklarında yaşadıkları sorunları azaltmayı hedeflemektedir. Günümüzde mevcut acil çağrı sistemlerine, on binlerce asılsız ya da yanlış çağrılar yapılmaktadır. Gereksiz ya da hatalı çağrılar telefon hatlarında yoğunluğa ve acil servis numaralarına ulaşmakta dakikalarca beklemeye yol açmaktadır. Bu sistemlerde ayrıca, kullanıcıların adresi doğru tarif edememesi, tarif ederken zaman kaybı yaşaması ve zaman kaybından dolayı ölümlerin ve maddi kayıpların gerçekleşmesi gibi büyük sıkıntılar da bulunmaktadır. Bu ve bu gibi sıkıntıların giderilmesi ve ayrıca acil durum yaşanan konuma intikal eden araçların olay yeri adresini bulamaması gibi sorunların da ortadan kalkması için Acil Konum Bildirim Sistemi geliştirilmiştir.

Proje Başarısı: 2016 yılı Tübitak Lisans Bitirme Yarışması Finalistti , 1 Adet Uluşlararası Bildiri Başvuru Kabülü.
Hazırlayanlar: Oğuzhan YILMAZ, Serhat ÖZKAHYA, Emrah ÖZBAYSAR
 

Otopark Bul

Otopark Bul uygulaması, geçmişten günümüze hiç azalmayan, artarak devam eden trafik ve park yeri sorununa çözüm olması adına düşünülmüş, tasarlanmış ve geliştirilmeye başlanmış mobil tabanlı bir uygulamadır. Otopark Bul uygulaması öncelikli olarak park sorunu yaşanması muhtemel bölgelere çözüm bulmayı ve insanların daha önce hiç gitmediği bölgelerde araçlarını güvenle park edebilmesini amaçlamıştır. Böylece ilk adımda trafik sorununa çözüm ortağı olunması sağlanmış ikinci adımda ise zamanın çok değerli olduğu günümüz yaşam standartında insanların park yeri için herhangi bir zaman kaybı yaşamamasını sağlamıştır.
Otopark Bul uygulaması ile araç sahipleri çevrelerindeki otoparkların konumlarını, boş – dolu oranını , fiyatlandırmalarını, seyir edecekleri yoldaki trafik durumlarını, otoparklar ile ilgili diğer kullanıcıların yorumlarını görebilecek, daha şeffaf bilgiler ile  park yeri seçebilme imkanı bulabileceklerdir.. Otopark Bul uygulama tasarımı , kullanıcıların seyahat halinde iken rahat kullanımını gözeterek ‘Tek El ile Kullanım’ trendine ayak uydurmuştur. Uygulama kompleks bir yapıdan ayrılmıştır , temel seviye erişimleri ile kullanılabilirlik esaslarına dayandırılmıştır. Otopark Bul uygulaması, ana amacı dışında trafik sorununa çözüm üretebilmeyi hedefleyen ve bu konuda başarı sağlamayı öngören bir uygulama olma yolunda ilerlemektedir.
Peki böyle bir uygulamaya otoparklar nasıl ekleniyor? Otopark Bul uygulaması web sitesi üzerinden yalnızca otopark sahipleri ile sisteme otopark eklenebilir. Böylece dünyanın her bölgesinde aktif olarak gelişebilen bir uygulama olabilmesi hedeflenmiştir. Ayrıca otoparkların spesifik özellikleri  doğru bir şekilde kullanıcılara lanse edilir.
Otopark Bul uygulaması, ilerleyen süreçte yalnızca otomobiller için değil; bisiklet parkları, motosiklet parkları, oto yıkamalar, araç servisleri  gibi geniş bir yelpazede kullanıcı memnuniyeti gözetilerek geliştirilecektir.

OTOPARK BUL UYGULAMA GÖRÜNTÜLERİ ( UYGULAMA DA KULLANILAN VERİLER TEST VERİLERİNDEN OLUŞMAKTADIR. HERHANGİ BİR GERÇEK VERİ BARINDIRILMAMAKTADIR. )

Hazırlayanlar: Kubilay Tural, Görkem İşler

ANDROİD TABANLI SAĞLIK UYGULAMASI


Egzersiz yapmakta zorlanan, spor salonuna gidemeyen ya da ne yapacağı konusunda fikir sahibi olmayan kişiler için spor yapmanın en kolay yolu yürümektir. Düzenli bir şekilde yürüyüş yapmanın kalp rahatsızlığı, damar tıkanıklığı gibi hastalıklara iyi geldiği bilinmektedir. Ayrıca günlük yapılan yürüyüşler kilo kaybı ve daha zinde bir vücut da sağlayabilir. Uzmanlar düzenli, tempolu yürüyüşün hastalıklardan koruduğu, günde ortalama 10 bin ile 15 bin adım atmanın insan sağlığına faydalı olduğu görüşündeler. Bu düşüncelerden yola çıkılarak android tabanlı sağlık uygulaması olan Fitness Club geliştirildi. Fitness Club, kullanıcıların, android işletim sistemine sahip akıllı telefonlarından rahatça girebilecekleri, kullanımı kolay bir sağlık uygulamasıdır. Fitness Club’da kullanıcılar GPS teknolojisi ile konumlarını bulabilir, yürüdükleri mesafeleri görebilir,  boy ve kilo değerlerini girerek vücut kitle indeksini, ideal kilosunu, toplam vücut suyunu, vücut yüzey alanını, yağsız vücut ağırlığını, vücut kitle indeks sınıfını ve varsa fazla kilo miktarını, buna bağlı olarak da harcamaları gereken kalori değerlerini hesaplayabilmektedir. Ayrıca akıllı telefonlarda yer alan hareket sensörü yardımıyla kişilerin attığı adımlar sayılır, adım sayısına göre yakmış oldukları kalori miktarı hesaplanır ve hedef kaloriye ulaşılıp ulaşılmadığı hakkında bilgi verilir. Kullanıcıların gün boyu yapmış oldukları aktiviteler kayıt altına alınır, istendiğinde haftalık ve aylık raporlar görsel bir şekilde kullanıcıya sunulur. Fitness Club sayesinde sporun daha eğlenceli bir hale getirilmesi ve aktivitelerin disipline edilmesi amaçlanmıştır.

Projeyi Hazırlayanlar: Sema BAYRİ, Tuğba ÇIRDAKLI

DELETE

Kayıt Silme



Bir tabloda bulunan bir yada daha fazla satır silinebilmektedir. Silme işlemi için DELETE deyimi kullanılmaktadır. Bu deyimin genel yapısı şu şekildedir.

DELETE FROM tablo_adı
      WHERE koşul


Bir tabloda bütün kayıtlar silinebileceği gibi belli bir şartı sağlayan herhangi bir kayıtta silinebilmektedir. Örneğin daha önce oluşturduğumuz «secilenmüsteri» tablosunun tüm kayıtlarını silmek için şöyle bir SQL ifadesi yazılacaktır.

DELETE FROM secilenMüsteri

Herhangi bir koşul olmadığı için bütün kayıtlar silinecektir.


Şimdi de belli bir şarta sahip kayıtları silmek için bir örnek verelim. Müşteriler tablosunda “Ali Arslan” isimli müşteri ile artık çalışmadığımızı düşünerek bu müşteriyi tamamen silelim. SQL ifademiz şöyle olacaktır.

DELETE FROM musteriler
      WHERE (adi='Ali' AND soyadi='Arslan')

Aynı şekilde bir tabloda istenilen şartı sağlayan birden fazla kayıtta silinebilmektedir. Örneğin Müşteriler tablosunda Ankara ‘da oturan bütün müşterileri silmek istersek SQL ifademiz aşağıdaki gibi olacaktır.

DELETE FROM musteriler
      WHERE il ='Ankara'



DELETE komutunda da tıpkı INSERT INTO ve UPDATE komutlarında olduğu gibi alt sorgular kullanılarak da kayıtlar silinebilmektedir. Bu noktada yine SELECT ifadesinden yararlanılmaktadır.

Örneğin; personel tablosunda İMALAT bölümüne ait bütün kayıtları silmek istiyoruz. Bu işlemi gerçekleştiren SQL ifadesi şöyle olacaktır:

DELETE FROM personel
      WHERE bolumID = (SELECT bolumID
                                                 FROM bolum
                                                        WHERE bolumAdi = 'İMALAT')

UPDATE


Kayıt Güncelleme


Bir tabloya eklenen bilgiler gerektiğinde değiştirilebilmelidir. Bu amaçla UPDATE komutu kullanılmaktadır. UPDATE komutunun genel kullanıl biçimi şöyledir.

UPDATE tablo_adı
         SET sütun1=değer1, sütun2=değer2, …
           [WHERE koşul]

Bu tanımda kullanılan WHERE deyimi değişikliğin hangi kayıt üzerinde yapılacağının bulunmasına yardımcı olmaktadır. Bu tanım yapılmadığında söz konusu tablonun tüm satırlarında değişiklikler meydana gelecektir.



Bahçe işleri veritabanında müşteriler tablosunda isim bilgisi “Ali Arslan” olan kişinin Ankara’dan İstanbul Üsküdar’a iş yerini taşıdığını düşünerek gerekli değişiklikleri yapmak için aşağıdaki SQL sorgusunu yazmak gerekir.

UPDATE musteriler
     SET il='İstanbul', ilce = 'Üsküdar'
       WHERE (adi='Ali' AND soyadi='Arslan')



UPDATE komutu ile matematiksel işlemler de gerçekleştirilebilmektedir. Tüm personelin ücretine %20 zam yapılacağını düşünerek tablo üzerinde değişiklikleri gerçekleştiren  SQL ifadesi aşağıdaki gibi olacaktır.

UPDATE personel SET ucret = ucret*1.20

Bu komut çalıştırıldığında bütün kayıtlar bu değişiklikten etkilenecektir. Çünkü herhangi bir koşula bağlı bir işlem gerçekleştirilmemiştir.


UPDATE işlemi tıpkı INSERT INTO deyiminde olduğu gibi alt sorgularla da çalışabilmektedir. Yani bilgi güncelleştirme işlemi bir tablodan okunan bilgilerin güncellenerek başka bir tabloya eklenmesi ile de gerçekleşebilmektedir.

Yine burada alt sorgular yazılırken SELECT deyiminden faydalanılmaktadır.


UPDATE komutunda alt sorgulara şöyle bir örnek verebiliriz. BolumID’si 200 olan personel ile aynı göreve sahip tüm personelin bolumID’sini 100 olarak değiştirmek istersek şöyle bir SQL ifadesi yazabiliriz.

UPDATE personel SET bolumID = 100
      WHERE gorevi = (SELECT gorevi
                                             FROM personel
                                                    WHERE bolumID=200)



UPDATE personel SET bolumID = 100
      WHERE gorevi = (SELECT gorevi
                                             FROM personel
                                                    WHERE bolumID=200)

Bu sorguda öncelikle alt sorguda bolumID’si 200 olan personelin görevinin ne olduğu tespit edilmektedir. Daha sonra tespit edilen bu görevle aynı görevi icra eden personel kayıtlarında bolumID’leri 100 olarak değiştirilmektedir.

INSERT INTO

Tabloya Kayıt Ekleme


Bir tabloya kayıt eklemek için INSERT INTO deyimi kullanılmaktadır. Bazı durumlarda SQL ifadeleri kullanarak bir tabloya kayıt eklemek durumunda kalabilirsiniz. Bu gibi durumlarda bu deyimi kullanmak yerinde olacaktır. Bu deyimin genel kullanım biçimi şöyledir.

    INSERT INTO tablo_adı (sütunlar) VALUES (değerler)


Burada, tablo_adı; verilerin kaydedileceği tablonun adıdır.
Sütunlar, tablo içinde verilerin kaydedileceği alanlardır.
Değerler ise tabloya kaydedilecek olan verileri göstermektedir.
Bu SQL deyimi her çalıştırıldığında tabloya yeni bir kayıt eklenecektir.

Örnek için yine bahçe işleri veritabanında "kategoriler" tablosuna çeşitli kayıtlar ekleyelim. Bunun için SQL ifademiz şöyle olacaktır:

INSERT INTO kategoriler (kategoriID, kategoriAdi)
VALUES (5, 'Bahçe Çiçekleri')

INSERT INTO kategoriler (kategoriID, kategoriAdi)
VALUES (5, 'Bahçe Çiçekleri')

Sorgusunda eğer tablodaki bütün alanlara kayıt yapılacaksa sütun adlarını kullanmadan da kayıt ekleme işlemi yapılabilmektedir.

INSERT INTO kategoriler
VALUES (5, 'Bahçe Çiçekleri')


INSERT INTO deyimi ile çeşitli fonksiyonları da kullanmak mümkündür. Bir tarih bilgisi eklenmek istenildiğinde bunu doğrudan elle değil de bir fonksiyon aracılığı ile gerçekleştirebilirsiniz.
Örneğin, “siparisler” tablosunu göz önüne alalım. Bir sipariş verildiğinde bu siparişin verilme tarihini sistemden alarak tabloya kaydedelim.

INSERT INTO siparisler (siparisID, müsteriID, calısanID, siparisTarihi) VALUES (16, 7, 4, GETDATE())



Dikkat edilecek olursa sipariş tarihi bilgisi eklenmek istenildiğinde bu tarih bilgisi GETDATE ( ) fonksiyonu kullanılarak sistemden otomatik olarak alınmaktadır.
Alınan bu sistem bilgisi, siparisTarihi niteliğinin giriş değeri olmaktadır. Sorgu çalıştırıldığında ilgili kaydın eklendiği görülür.


INSERT INTO deyimi ile bir tabloya başka bir tablodan belirlenen bir satır bilgi eklenebilmektedir. Yani INSERT INTO deyimi ile birlikte alt sorgularda kullanılabilmektedir.
Alt sorgulama işlemleri için SELECT ifadesi kullanılmaktadır. Böyle bir alt sorgulama kullanılacağı zaman VALUES sözcüğü kullanılmaz.





Soru: Müşteriler tablosunda ilçesi ‘Çankaya’ olan müşterilerin musteriID, adi ve soyadi bilgilerini «secilenMüsteri» tablosuna kaydeden SQL ifadesi nedir?
Soruya dikkat edilirse soru iki bölümden oluşmaktadır. İlçesi Çankaya olanlar bulunacak ve ikinci olarak «secilenMusteri» tablosuna kayıt edilecek. Bu işlemler için SQL ifademiz şöyle olacaktır:
INSERT INTO secilenMusteri (musteriID, adi, soyadi) 
     SELECT musteriID, adi, soyadi
          FROM musteriler 
                WHERE ilce ='Çankaya'