Dersin Amacı: |
Bir veritabanı yönetim sistemi (DBMS) kullanarak temel bir veritabanı sistemi tasarlayın ve uygulayın.
Veri varlıklarını ve ilişkilerini temsil etmek için varlık-ilişki (ER) diyagramları oluşturun.
Bir veritabanında veri bütünlüğünü sağlamak ve tekrarlamanın azaltılması için normalleştirme tekniklerini uygulayın.
Bir veritabanından veri almak ve manipüle etmek için SQL sorguları yazın.
SQL kullanarak işlemleri yönetin ve veri tutarlılığını sağlayın.
İndeksleme ve sorgu optimizasyon tekniklerini kullanarak sorguları optimize edin ve bir veritabanının performansını iyileştirin. |
Dersin İçeriği: |
Bu ders, bir veritabanı yönetim sistemi (DBMS) kullanarak verileri etkili bir şekilde yönetmek için gerekli temel kavramları ve becerileri kapsar. Öğrenciler, varlık ilişkisi (ER) modeli, ilişkisel model ve veri tanımlama dili, fonksiyonel bağımlılıklar, SQL, işlemler, eşzamanlılık kontrolü, dosya ve disk yönetimi, kurtarma sistemleri, indeksleme ve sorgu işleme ve optimizasyon hakkında bilgi edinecekler. Ayrıca, veritabanı normalleştirme, indeksleme ve sorgu optimizasyon tekniklerini öğrenerek veritabanlarının performansını iyileştirmeyi öğrenecekler. |
Hafta |
Konu |
Ön Hazırlık |
1) |
Veritabanlarına Giriş |
|
2) |
İlişkisel Veri Modeli - İlişkisel Model |
|
3) |
İlişkisel Veri Modeli - İlişkisel Cebir |
|
4) |
Veritabanı Tasarımı - ER Veri Modeli |
|
5) |
Veritabanı Tasarımı - ER Veri Modeli |
|
6) |
SQL - Veri Tanımlama Dili, Veri Manipülasyon Dili |
|
7) |
SQL - Sorgu Dili - Küme İşlemleri |
|
8) |
Ara Sınav |
|
9) |
SQL - Alt sorgular - Küme elemanı testi, Küme karşılaştırması, Boş küme testi |
|
10) |
SQL-Grouping |
|
11) |
SQL - Kısıtlamalar: Veri tipi, birincil anahtar, ikincil anahtar, null olamaz, sütun kısıtlamaları |
|
12) |
SQL - Depolanan prosedürler/fonksiyonlar |
|
13) |
Normalleştirme |
|
14) |
Sorgu optimizasyonu |
|
|
Dersin Program Kazanımlarına Etkisi |
Katkı Payı |
1) |
Matematik, fen bilimleri ve yazılım mühendisliğine özgü konularda yeterli bilgi birikimi; bu alanlardaki kuramsal ve uygulamalı bilgileri, karmaşık mühendislik problemlerinin çözümünde kullanabilme becerisi. |
|
2) |
Karmaşık yazılım mühendisliği problemlerini tanımlama, formüle etme ve çözme becerisi; bu amaçla uygun analiz ve modelleme yöntemlerini seçme ve uygulama becerisi. |
|
3) |
Karmaşık bir yazılım sistemini, süreci, cihazı veya ürünü gerçekçi kısıtlar ve koşullar altında, belirli gereksinimleri karşılayacak şekilde tasarlama, gerçekleştirme, sınama, doğrulama, ölçme ve bakımını yapma becerisi; bu amaçla modern tasarım yöntemlerini uygulama becerisi. |
|
4) |
Yazılım mühendisliği uygulamalarında karşılaşılan karmaşık problemlerin analizi ve çözümü için gerekli olan modern teknik ve araçları seçme ve kullanma becerisi; bilişim teknolojilerini etkin bir şekilde kullanma becerisi. |
|
5) |
Karmaşık mühendislik problemlerinin veya yazılım mühendisliği araştırma konularının incelenmesi için deney tasarlama, deney yapma, veri toplama, sonuçları analiz etme ve yorumlama becerisi. |
2 |
6) |
Disiplin içi ve çok disiplinli takımlarda etkin biçimde çalışabilme becerisi; bireysel çalışma becerisi. |
2 |
7) |
Sözlü ve yazılı etkin iletişim kurma becerisi; en az bir yabancı dil bilgisi; etkin rapor yazma ve yazılı raporları anlama, tasarım ve üretim raporları hazırlayabilme, etkin sunum yapabilme, açık ve anlaşılır talimat verme ve alma becerisi. |
|
8) |
Yaşam boyu öğrenmenin gerekliliği konusunda farkındalık; bilgiye erişebilme, bilim ve teknolojideki gelişmeleri izleme ve kendini sürekli yenileme becerisi. |
|
9) |
Etik ilkelerine uygun davranma, mesleki ve etik sorumluluk ve yazılım mühendisliği uygulamalarında kullanılan standartlar hakkında bilgi. |
|
10) |
Proje yönetimi, risk yönetimi ve değişiklik yönetimi gibi, iş hayatındaki uygulamalar hakkında bilgi; girişimcilik, yenilikçilik hakkında farkındalık; sürdürülebilir kalkınma hakkında bilgi. |
|
11) |
Yazılım mühendisliği uygulamalarının evrensel ve toplumsal boyutlarda sağlık, çevre ve güvenlik üzerindeki etkileri ve çağın yazılım mühendisliği alanına yansıyan sorunları hakkında bilgi; yazılım mühendisliği çözümlerinin hukuksal sonuçları konusunda farkındalık. |
|