You are on page 1of 3

VERİTABANI YÖNETİM SİSTEMLERİ DERSİ

PROJE RAPORU HAKKINDA AÇIKLAMALAR

PROJE KONUSU BELİRLEME: Öncelikle en çok 5 üyeli bir proje grubu


oluşturunuz. Proje konusunda;
• Geçen dönemki konuya devam etmeniz daha uygun olacaktır
• Yeni bir konu yapmak istiyorsanız önerebilirsiniz
• Başka bir grubun konusunu tercih etmek isterseniz o grubun o konuyu
tercih edip etmemesine bakılacaktır. Konu tercihinde öncelik konuyu
geçen dönem yapan grubundur.

Konu ve grup elemanlarının bilgilerini (aynı konuya devam etseniz dahi) geçen
dönem olduğu gibi mutekin16@gmail adresine 13.10.2023 (2. hafta) tarihine
kadar bildiriniz.

PROJE ADIMLARI:

➢ Proje adımlarının tümünde olması gerekenler:


i. Yapılan işlemi açıklayan bir açıklama satırı.
ii. Oluşturulacak nesnenin veri tabanında var olup olmadığını
kontrol eden ve varsa silen bir kod bölümü.
iii. Kodun kendisi (fonksiyon, VIEW, SP vb. kodu).
iv. Oluşturulan nesnenin test edilmesini sağlayan bir kod.

Örnek:
1. FONKSİYON
− Projenizde 1 adet fonksiyon olmalıdır.
− Mutlaka en az 1 adet parametre almalıdır.
− Dönüş değeri scalar olmalıdır.
− Oluşturulacak dosya ismi function.sql

2. VIEW
− Projenizde 1 adet VIEW olmalıdır.
− Yazılan sorgu, basit bir SELECT ifadesi değil birkaç tabloyu JOIN yapan
ve içerisinde CASE kullanımı, fonksiyon çağrımı ve tarih biçimlendirme
de olan bir sorgu olmalıdır.
− Üstte yazmış olduğunuz fonksiyon da mutlaka VIEW içerisinde
çağrılmış olmalıdır.
− Test kısmında da VIEW’ı kullanarak basit bir SELECT değil yine JOIN
işlemleri içeren bir test oluşturulmalıdır.
− Oluşturulacak dosya ismi view.sql

3. STORED PROCEDURE + TRANSACTION


− Projenizde 1 adet SP olmalıdır.
− Bu SP, proje konusuna uygun ve gerçekçi bir örnek (senaryo)
olmalıdır.
− Mutlaka parametre almalıdır ancak sadece ID bilgisi alan bir SP kabul
edilmeyecektir.
− SP içerisinde INSERT / UPDATE / DELETE işlemlerinden en az ikisi
bulunacaktır. Dolayısıyla söz konusu senaryo içerisinde birbirine bağlı
birkaç işlem içeren bir SP olması gerekmektedir.
− Bu açıdan da TRANSACTION ve TRY-CATCH yapıları mutlaka
kullanılmalıdır.
− Oluşturulacak dosya ismi sp.sql

4. TRIGGER
− Projenizde 1 adet TRIGGER olmalıdır.
− Bu TRIGGER, üstte bahsi geçen prosedür için yazılacaktır.
− Burada da proje konusuna uygun bir senaryo türetmeniz
gerekmektedir.
− TRIGGER iki kısımdan oluşacaktır.
▪ İlk kısımda INSERTED ya da DELETED kullanılarak eklenen /
güncellenen / silinen verilerin bilgileri kontrol edilecek ve söz
konusu veriler kendi belirleyeceğiniz bir şarta uygunluk
sağlamıyorsa işlem ROLLBACK ile iptal edilecektir.
▪ İkinci kısımda, eldeki verilerden belirlediğiniz bir kısmı başka bir
tabloya eklenecek ya da güncelleme yapılacaktır.
▪ Örnek olarak, sipariş tablosuna insert yapıldığında çalışan bir
TRIGGER önce siparişteki miktarla stok miktarını karşılaştırır ve
stok yetersiz ise siparişi iptal eder (ROLLBACK). Stok sorunu yoksa,
fatura tablosuna ilgili siparişe ait bir fatura ekler ve siparişteki
ürünlerin stoklarını sipariş miktarlarına göre azaltır.
▪ Sunum örneklerinde verilmiş olan silinen kayıtları başka bir tabloya
kaydeden trigger gibi uyarlama kabul edilmeyecektir.
− Oluşturulacak dosya ismi trigger.sql

5. INDEX
− Projenizde 1 adet NONCLUSTERED INDEX tanımı olmalıdır.
− Sunum örneklerinde olduğu gibi bir örnek yapanların uyarlaması kabul
edilmeyecektir.
− Bunun için iki adet ekran görüntüsü sunulacaktır.
▪ İlk ekran görüntüsünde INDEX tanımı mevcut değilken bir tablodan
sorgulama yapılmalı ve hem sorgu hem de LOGICAL READ değeri
bu ekran görüntüsünde sunulmalıdır (slaytlardaki gibi)
▪ İkinci ekran görüntüsünde de INDEX tanımı yapıldıktan sonra aynı
sorgu çalıştırılmalı ve yine LOGICAL READ değerleri, sorgu ve INDEX
tanımıyla beraber bu görüntüde sunulmalıdır.

Yukarıda bahsedilen SQL uzantılı dosyaları ve veri tabanı yedek dosyasını (SQL
Server 2019 sürümünde açılabilmelidir. Yeni sürümde alınan yedekler eski
sürümlerde açılmaz) tek bir RAR ya da ZIP olarak sıkıştırıp dosya ismini de
VTYS_GXY_SQL şeklinde yazınız. XY yerine proje kod numaranız gelecektir.
Veri tabanı yedeğini almadan önce bu projede oluşturduğunuz hiçbir
nesnenin içinde olmamasına ve kullandığınız tablolarda kodlarınızı test
edebileceğimiz kadar verilerin bulunmasına dikkat ediniz.

Dosyayı en geç 29.12.2023 23:59 (13. hafta) tarihine kadar


http://tiny.cc/mutekin16u adresine göndermeniz gerekmektedir.

GEÇ GÖNDERİM: Raporun zamanında gönderilmemesi halinde ilgili grup


projeden puan alamayacaktır.

You might also like