Veritabanı dersi Final sınavı örnek çalışma soruları
1-Bir veritabanında aşağıdaki tabloda normalizasyon yapılmamıştır. Bu tabloyu 1NF ve 2NF kurallarına göre normalleştiriniz.
Öğrenci_No | Ad_Soyad | Ders_Adı | Öğretmen_Adı
-------------------------------------------------------
1 | Ali Yılmaz | Matematik | Ahmet Demir
1 | Ali Yılmaz | Fizik | Mehmet Yıldız
2 | Ayşe Kaya | Kimya | Fatma Yılmaz
2 | Ayşe Kaya | Matematik | Ahmet Demir
2- Aşağıdaki senaryoya göre bir E-R diyagramı çizin: Bir üniversite veritabanında, her öğrenci birden fazla ders alabilir ve her ders birden fazla öğrenci tarafından alınabilir. Her öğrenciye bir öğrenci numarası atanır ve her dersin bir ders kodu vardır. Ayrıca, her dersin bir öğretmeni vardır ve her öğretmen birden fazla ders verebilir.
3- Aşağıdaki tabloya bir SQL INSERT komutuyla yeni bir öğrenci ekleyiniz ve tüm öğrencileri listeleyen bir SQL SELECT komutu yazınız.
Öğrenciler:
Öğrenci_No | Ad_Soyad | Doğum_Tarihi
-------------------------------------
1 | Ali Yılmaz| 2000-01-01
2 | Ayşe Kaya | 1999-05-15
4-Aşağıdaki tabloya göre, “Fiyat” değeri 50’den fazla olan ürünleri fiyatlarına göre azalan sırada listeleyen bir SQL komutu yazınız.
Ürünler:
Ürün_ID | Ürün_Adı | Fiyat
---------------------------
1 | Ürün A | 30
2 | Ürün B | 60
3 | Ürün C | 80
4 | Ürün D | 45
5-Öğrenci bilgilerini içeren bir “ÖğrenciBilgileri” adlı bir görünüm (view) oluşturun ve bu görünümde sadece öğrenci numarası ve adı yer alsın. Daha sonra bu görünümü, öğrenci numarası, adı ve doğum tarihini içerecek şekilde güncelleyen SQL komutlarını yazınız.
CEVAPLAR
1-1NF (Birinci Normal Form): Tablodaki her bir hücre atomik olacak şekilde düzenlenir.
Öğrenci_Tablosu:
Öğrenci_No | Ad_Soyad
---------------------
1 | Ali Yılmaz
2 | Ayşe Kaya
Ders_Tablosu:
Ders_Adı | Öğretmen_Adı
------------------------------
Matematik | Ahmet Demir
Fizik | Mehmet Yıldız
Kimya | Fatma Yılmaz
Öğrenci_Ders_Tablosu:
Öğrenci_No | Ders_Adı
---------------------
1 | Matematik
1 | Fizik
2 | Kimya
2 | Matematik
2NF (İkinci Normal Form): 1NF’yi sağlayan ve tüm kısmi bağımlılıkları ortadan kaldıran düzenleme yapılır.
Öğrenci_Tablosu:
Öğrenci_No | Ad_Soyad
---------------------
1 | Ali Yılmaz
2 | Ayşe Kaya
Ders_Tablosu:
Ders_Adı | Öğretmen_Adı
------------------------------
Matematik | Ahmet Demir
Fizik | Mehmet Yıldız
Kimya | Fatma Yılmaz
Öğrenci_Ders_Tablosu:
Öğrenci_No | Ders_Adı
---------------------
1 | Matematik
1 | Fizik
2 | Kimya
2 | Matematik
2- E-R Diyagramları:
Öğrenci ---< Öğrenci_Ders >--- Ders
| |
| |
Öğrenci_No Ders_Kodu
| |
Ad_Soyad Ders_Adı
Öğretmen
3- INSERT:
INSERT INTO Öğrenciler (Öğrenci_No, Ad_Soyad, Doğum_Tarihi)
VALUES (3, 'Mehmet Can', '2001-02-20');
SELECT:
SELECT * FROM Öğrenciler;
4-ORDER BY, ASC-DESC, WHERE İşlemleri:
SELECT * FROM Ürünler
WHERE Fiyat > 50
ORDER BY Fiyat DESC;
5-CREATE VIEW:
CREATE VIEW ÖğrenciBilgileri AS
SELECT Öğrenci_No, Ad_Soyad
FROM Öğrenciler;
ALTER VIEW:
CREATE OR REPLACE VIEW ÖğrenciBilgileri AS
SELECT Öğrenci_No, Ad_Soyad, Doğum_Tarihi
FROM Öğrenciler;