verİ tabani yönetİm sİstemlerİ - · pdf fileverİ tabani yönetİm sİstemlerİ...
TRANSCRIPT
![Page 1: VERİ TABANI YÖNETİM SİSTEMLERİ - · PDF fileVERİ TABANI YÖNETİM SİSTEMLERİ Yrd. Doç. Dr. Fırat YÜCEL Akdeniz Üniversitesi Enformatik Bölümü](https://reader034.vdocuments.pub/reader034/viewer/2022050720/5a78d5be7f8b9a5a148c5f09/html5/thumbnails/1.jpg)
VERİ TABANI YÖNETİM SİSTEMLERİ
Yrd. Doç. Dr. Fırat YÜCEL
Akdeniz Üniversitesi
Enformatik Bölümü
![Page 2: VERİ TABANI YÖNETİM SİSTEMLERİ - · PDF fileVERİ TABANI YÖNETİM SİSTEMLERİ Yrd. Doç. Dr. Fırat YÜCEL Akdeniz Üniversitesi Enformatik Bölümü](https://reader034.vdocuments.pub/reader034/viewer/2022050720/5a78d5be7f8b9a5a148c5f09/html5/thumbnails/2.jpg)
Ders Hakkında
• Dersin Kredisi : Veri Tabanı I : 3+1
Veri Tabanı Yönetim Sistemleri : 3+0
• Dersin Yarıyılı : Güz
• Derse Devam : %70 zorunlu
• Kullanılan Yazılım: Ms SQL Server Management 2014
• Değerlendirme : Mutlak değerlendirme (Ortalama >= 60)• Ara sınav (Vize)……………… %30
• Ödev/Proje……………………. %10
• Yarıyıl Sonu Sınavı…………. %60
![Page 3: VERİ TABANI YÖNETİM SİSTEMLERİ - · PDF fileVERİ TABANI YÖNETİM SİSTEMLERİ Yrd. Doç. Dr. Fırat YÜCEL Akdeniz Üniversitesi Enformatik Bölümü](https://reader034.vdocuments.pub/reader034/viewer/2022050720/5a78d5be7f8b9a5a148c5f09/html5/thumbnails/3.jpg)
Ders İçeriği
o 1. Hafta: Veri Tabanlarına Giriş
o 2. Hafta: Veri Tabanı Sistemi Temel Kavramları ve Mimarisi
o 3. Hafta: İlişkisel Veri Modeli ve İlişkisel Veri Tabanı Kurulumu
o 4. Hafta: Veri Tabanı Tasarımı ve Normalizasyonu
o 5. Hafta: SQL (Yapısal Sorgulama Dili)
o 6. Hafta: SQL (Yapısal Sorgulama Dili)
o 7. Hafta: Aritmetiksel Operatörler ve İşleçler
o 8. Hafta: Karmaşık Sorgular (Birden Fazla Tablo Üzerinde Sorgular)
o 9. Hafta: Karmaşık Sorgular (Birden Fazla Tablo Üzerinde Sorgular)
o 10. Hafta: Tetikleyiciler (Triggers)
o 11. Hafta: Görünümler (Views)
o 12. Hafta: Şema Düzenlemeleri (Schema Modification)
o 13. Hafta: ER Modeli ile Veri Modelleme
o 14. Hafta: XML: Genişletilebilir İşaretleme Dili
![Page 4: VERİ TABANI YÖNETİM SİSTEMLERİ - · PDF fileVERİ TABANI YÖNETİM SİSTEMLERİ Yrd. Doç. Dr. Fırat YÜCEL Akdeniz Üniversitesi Enformatik Bölümü](https://reader034.vdocuments.pub/reader034/viewer/2022050720/5a78d5be7f8b9a5a148c5f09/html5/thumbnails/4.jpg)
Başarılı Olabilmek için Bazı Öneriler
• Derslere düzenli bir şekilde devam etmek
• Verilen proje ve ödev çalışmalarını zamanında ve eksiksiz şekilde teslimetmek
• Derste notlar almak, daha sonradan bu notları incelemek, üzerindedüşünüp anlamak, yeni fikirler üretmek
• Derste uygulamalara katılmak, varsa ders dışında bilgisayar ortamındailgili program üzerinde uygulamaları tekrar etmek
• Ders öğretim üyesi ile sağlıklı bir iletişim ortamı kurmak• Ofis : Akdeniz Üniversitesi Enformatik Bölümü• E-Posta : [email protected]• Sosyal ağ• Web sitesi : firatyucel.com
![Page 5: VERİ TABANI YÖNETİM SİSTEMLERİ - · PDF fileVERİ TABANI YÖNETİM SİSTEMLERİ Yrd. Doç. Dr. Fırat YÜCEL Akdeniz Üniversitesi Enformatik Bölümü](https://reader034.vdocuments.pub/reader034/viewer/2022050720/5a78d5be7f8b9a5a148c5f09/html5/thumbnails/5.jpg)
Veri Tabanı Sistemlerine Giriş
Veri Tabanları ve Veri Tabanı Kullanıcıları
![Page 6: VERİ TABANI YÖNETİM SİSTEMLERİ - · PDF fileVERİ TABANI YÖNETİM SİSTEMLERİ Yrd. Doç. Dr. Fırat YÜCEL Akdeniz Üniversitesi Enformatik Bölümü](https://reader034.vdocuments.pub/reader034/viewer/2022050720/5a78d5be7f8b9a5a148c5f09/html5/thumbnails/6.jpg)
Veri Tabanı (Database)
• Veri tabanı, birbiriyle ilişkili verilerin bir koleksiyonudur.
• Modern dünyada hayatımızın birçok alanında kullanılmaktadır. Örneğin;• Bir otel ya da uçak/otobüs rezervasyonunda,
• Banka hesap işlemlerinde,
• Kütüphane katalog taramasında,
• Hastane randevu ve protokol işlemlerinde,
• Elektronik olarak bir ürün sipariş ederken veya satın alırken,
• Marketlerde alışveriş yaptıktan sonra kasada,
• E-devlet işlemlerinde,…
![Page 7: VERİ TABANI YÖNETİM SİSTEMLERİ - · PDF fileVERİ TABANI YÖNETİM SİSTEMLERİ Yrd. Doç. Dr. Fırat YÜCEL Akdeniz Üniversitesi Enformatik Bölümü](https://reader034.vdocuments.pub/reader034/viewer/2022050720/5a78d5be7f8b9a5a148c5f09/html5/thumbnails/7.jpg)
Tarım Sanayi Bilgi
Toplumların Gelişimi
![Page 8: VERİ TABANI YÖNETİM SİSTEMLERİ - · PDF fileVERİ TABANI YÖNETİM SİSTEMLERİ Yrd. Doç. Dr. Fırat YÜCEL Akdeniz Üniversitesi Enformatik Bölümü](https://reader034.vdocuments.pub/reader034/viewer/2022050720/5a78d5be7f8b9a5a148c5f09/html5/thumbnails/8.jpg)
Bir soru
• Aşağıdaki iki cümle anlam bakımından aynı mıdır, farklı mıdır?
1. «Hava durumu ile ilgili verileri aldım.»
2. «Hava durumu hakkında bilgileri aldım.»
![Page 9: VERİ TABANI YÖNETİM SİSTEMLERİ - · PDF fileVERİ TABANI YÖNETİM SİSTEMLERİ Yrd. Doç. Dr. Fırat YÜCEL Akdeniz Üniversitesi Enformatik Bölümü](https://reader034.vdocuments.pub/reader034/viewer/2022050720/5a78d5be7f8b9a5a148c5f09/html5/thumbnails/9.jpg)
10
Bilgi
Veri (Data)
• Veri, kendi başına bir anlam ifade etmeyen işlenmemiş (ham) bilgi parçacığıdır.
• Bilgi, verilerin işlenerek anlamlı bir şekilde bir araya getirilmesiyle oluşur.
bilgisayar
Veri
![Page 10: VERİ TABANI YÖNETİM SİSTEMLERİ - · PDF fileVERİ TABANI YÖNETİM SİSTEMLERİ Yrd. Doç. Dr. Fırat YÜCEL Akdeniz Üniversitesi Enformatik Bölümü](https://reader034.vdocuments.pub/reader034/viewer/2022050720/5a78d5be7f8b9a5a148c5f09/html5/thumbnails/10.jpg)
Geleneksel Veri TabanlarındanModern Veri Tabanlarına…
• Geleneksel veri tabanlarında sayısal ve metinşeklinde veriler tutuluyordu.
• Günümüz modern veri tabanlarında(multimedya veri tabanları) bunlara ilavetenmultimedya öğeleri de yer almaktadır.• Resim
• Video
• Konum (Coğrafi Bilgi Sistemleri)
• Modern veri tabanı sistemlerinde ayrıca çokmiktardaki verilerden (big data) çıkarımlaryapan «karar destek sistemleri» yeralmaktadır.
![Page 11: VERİ TABANI YÖNETİM SİSTEMLERİ - · PDF fileVERİ TABANI YÖNETİM SİSTEMLERİ Yrd. Doç. Dr. Fırat YÜCEL Akdeniz Üniversitesi Enformatik Bölümü](https://reader034.vdocuments.pub/reader034/viewer/2022050720/5a78d5be7f8b9a5a148c5f09/html5/thumbnails/11.jpg)
Veri Tabanının Temel Nitelikleri
• Veri tabanı, gerçek dünyanın birparçasıdır. Çoğu zaman «mini dünya»(miniworld) veya «söylem evreni»(universe of discourse, UoD) olarakadlandırılır.
• Veri tabanı, verilerin mantıksal olarakorganize edilmiş halidir. Rastgele biraraya getirilmiş veriler, veri tabanıkavramı dışındadır.
• Veri tabanı, özel amaçlarla tasarlanan,oluşturulan ve üretilen verilerdenoluşur.
![Page 12: VERİ TABANI YÖNETİM SİSTEMLERİ - · PDF fileVERİ TABANI YÖNETİM SİSTEMLERİ Yrd. Doç. Dr. Fırat YÜCEL Akdeniz Üniversitesi Enformatik Bölümü](https://reader034.vdocuments.pub/reader034/viewer/2022050720/5a78d5be7f8b9a5a148c5f09/html5/thumbnails/12.jpg)
Veri Tabanı Yönetim Sistemi (DBMS)
• Veri tabanı yönetim sistemi (database management system, DBMS)veri tabanını oluşturmak ve işlemek için kullanıcıları yetkilendirenbir program koleksiyonudur.
DB DBMS
Kullanıcı
![Page 13: VERİ TABANI YÖNETİM SİSTEMLERİ - · PDF fileVERİ TABANI YÖNETİM SİSTEMLERİ Yrd. Doç. Dr. Fırat YÜCEL Akdeniz Üniversitesi Enformatik Bölümü](https://reader034.vdocuments.pub/reader034/viewer/2022050720/5a78d5be7f8b9a5a148c5f09/html5/thumbnails/13.jpg)
DBMS’nin İşlevleri
Tanımlama (Defining)
• Veri tabanında saklanan veriler için veri tiplerinin, mimarinin ve veri kurucuların tanımlanması ile ilgili işlemleri içerir.Buradaki tanımlamalar meta-data olarak adlandırılır.
Oluşturma (Constructing)
• DBMS tarafından kontrol edilen bazı saklama medyaları içerisinde verinin saklanması işlemleridir.
Düzenleme (Manipulating)
• Özel verileri geri döndürmek için hazırlanan sorgulamalar, veri tabanının güncellenmesi ve verilerden raporlar oluşturulması işlemleridir.
Paylaşım (Sharing)
• Veri tabanına çok sayıda kullanıcının veya programın eş zamanlı erişimine izin vermektir.
DBMS, değişik kullanıcılar ve uygulamalar tarafından veri tabanı
üzerinde tanımlama, oluşturma, değiştirme ve paylaşma işlemlerini
yöneten genel amaçlı bir yazılım sistemidir.
![Page 14: VERİ TABANI YÖNETİM SİSTEMLERİ - · PDF fileVERİ TABANI YÖNETİM SİSTEMLERİ Yrd. Doç. Dr. Fırat YÜCEL Akdeniz Üniversitesi Enformatik Bölümü](https://reader034.vdocuments.pub/reader034/viewer/2022050720/5a78d5be7f8b9a5a148c5f09/html5/thumbnails/14.jpg)
Meta-Data
• Veri tabanı oluşturma süreci, verilerin saklanması için veri tipleri,yapıları ve veri kurucularının tanımlanması işlemlerini içerir. Veritabanı tanımlamaları, bir katalog formunda DBMS içerisindetutulur. Bu verilere «meta-data» adı verilir.
![Page 15: VERİ TABANI YÖNETİM SİSTEMLERİ - · PDF fileVERİ TABANI YÖNETİM SİSTEMLERİ Yrd. Doç. Dr. Fırat YÜCEL Akdeniz Üniversitesi Enformatik Bölümü](https://reader034.vdocuments.pub/reader034/viewer/2022050720/5a78d5be7f8b9a5a148c5f09/html5/thumbnails/15.jpg)
Uygulama Programı, Sorgu, İşlem
• Uygulama programı (application program), DBMS’ye sorgular ve isteklergöndererek veri tabanına erişim sağlar.
• Sorgu (query), genellikle veri tabanından bazı verilerin dönmesinisağlayan ifadelerdir.
• İşlem (transaction), veri tabanından bazı verileri okumak veya veritabanına bazı verileri yazmak için yapılan işlemlerdir.
• Koruma (protection), DBMS’nin diğer bir işlevidir. Zararlı yazılımlarakarşı donanımsal veya yazılımsal sistem koruması önemlidir.
• Zaman zaman verilerin kaybına karşı veri tabanındaki verilerdenyedekler alınması gerekmektedir. Bu işleme yedekleme (maintaining)denir.
![Page 16: VERİ TABANI YÖNETİM SİSTEMLERİ - · PDF fileVERİ TABANI YÖNETİM SİSTEMLERİ Yrd. Doç. Dr. Fırat YÜCEL Akdeniz Üniversitesi Enformatik Bölümü](https://reader034.vdocuments.pub/reader034/viewer/2022050720/5a78d5be7f8b9a5a148c5f09/html5/thumbnails/16.jpg)
Basitleştirilmiş Veri Tabanı Sistemi
Uygulama Programları/Sorguları
İşlem Yazılımı
Sorgular/Programlar
Erişim Yazılımı
Saklanan Veri
Veri Tabanı
Tanımlamaları
(Meta-Data)
Veri Tabanı
Veri
Tabanı
Sistemi
DBMS
Yazılımı
Kullanıcılar/Programcılar
![Page 17: VERİ TABANI YÖNETİM SİSTEMLERİ - · PDF fileVERİ TABANI YÖNETİM SİSTEMLERİ Yrd. Doç. Dr. Fırat YÜCEL Akdeniz Üniversitesi Enformatik Bölümü](https://reader034.vdocuments.pub/reader034/viewer/2022050720/5a78d5be7f8b9a5a148c5f09/html5/thumbnails/17.jpg)
Bir Veri Tabanı Örneği
• Örnek olarak, UNIVERSITE adlı bir veri tabanı içerisinde yer alanOGRENCI, DERS, DONEM, SINAV_SONUC, ONKOSUL adlı 5 dosyadatutulan aynı türdeki verileri düşünelim.
• Bu veri tabanını tanımlamak için, her bir dosyada tutulacakkayıtların hangi alanlardan oluşacağını belirlemek gerekmektedir.
• Her bir alanın veri türü (string, integer, char,…) belirlenmelidir.
• Orta düzey ve büyük veri tabanları için veriler arasındaki ilişkilerbelirlenmelidir.
![Page 18: VERİ TABANI YÖNETİM SİSTEMLERİ - · PDF fileVERİ TABANI YÖNETİM SİSTEMLERİ Yrd. Doç. Dr. Fırat YÜCEL Akdeniz Üniversitesi Enformatik Bölümü](https://reader034.vdocuments.pub/reader034/viewer/2022050720/5a78d5be7f8b9a5a148c5f09/html5/thumbnails/18.jpg)
Örnek Veri Tabanının Yapısı
Ad Ogrenci_No Sinif Bolum
Mehmet 17 1 YBS
Ayşe 5 2 YBS
Ders_Ad Ders_Kodu Kredi Bolum
Bilgi Teknolojileri Kullanımı ENF101 4 ENF
Veri Tabanı I MBIL103 5 MBIL
Veri Tabanı Yönetim Sistemleri YBS201 4 YBS
Programlama Dilleri I BIL203 3 MAT
Donem_ID Ders_Kodu Donem Yil Ogr_Elemani
85 ENF101 Güz 16 Ahmet
92 YBS201 Güz 16 Sezgin
102 BIL203 Bahar 16 Kamil
112 ENF101 Bahar 16 Ahmet
119 YBS201 Güz 17 Fırat
135 MBIL103 Güz 17 Fırat
Ogrenci_No Donem_ID Not
17 85 AA
17 119 BB
5 85 AA
5 102 BA
5 119 CC
Ders_Kodu Onkosul_Kodu
YBS201 ENF101
BIL203 ENF101
OGRENCI
DERS
DONEM
SINAV_SONUC
ONKOSUL
![Page 19: VERİ TABANI YÖNETİM SİSTEMLERİ - · PDF fileVERİ TABANI YÖNETİM SİSTEMLERİ Yrd. Doç. Dr. Fırat YÜCEL Akdeniz Üniversitesi Enformatik Bölümü](https://reader034.vdocuments.pub/reader034/viewer/2022050720/5a78d5be7f8b9a5a148c5f09/html5/thumbnails/19.jpg)
Örnek Veri Tabanı Üzerinde Bazı Uygulamalar
• Veri tabanı üzerinde yapılabilen bazı işlemlere örnekler;• Transkript alınması
• 2017 yılında alınan Veri Tabanı Yönetim Sistemleri dersini alan tüm öğrencilerin sınav notları
• Önkoşul durumlarının listesi
• Güncelleme işlemlerine örnekler;• Mehmet isimli öğrencinin sınıfının değiştirilmesi
• Yeni yarıyıl için yeni dersler açılması
• Ayşe adlı öğrencinin Veri Tabanı Yönetim Sistemleri dersi notunun CC olarak girilmesi
![Page 20: VERİ TABANI YÖNETİM SİSTEMLERİ - · PDF fileVERİ TABANI YÖNETİM SİSTEMLERİ Yrd. Doç. Dr. Fırat YÜCEL Akdeniz Üniversitesi Enformatik Bölümü](https://reader034.vdocuments.pub/reader034/viewer/2022050720/5a78d5be7f8b9a5a148c5f09/html5/thumbnails/20.jpg)
Veri Tabanı Yaklaşımının Karakteristikleri
• Geleneksel dosya-tabanlı sistemlerde, her kullanıcı kendisi ile ilgiliverileri tanımlayıp bağımsız bir dosyada saklar. Ancak aynıverilerin bir kısmı başka bir kullanıcı tarafından yine tanımlanmakzorundadır. Bu verilerin birbiriyle ilişkilendirilmesi için ise ayrı biruygulama gereklidir.
• Problemler;• Gereksiz yinelenen veriler
• Tutarsızlık
• Güvenlik sorunları
• Veri kaybı
• Veriye erişim zorluğu
• Uygulama geliştirmedeki güçlükler
![Page 21: VERİ TABANI YÖNETİM SİSTEMLERİ - · PDF fileVERİ TABANI YÖNETİM SİSTEMLERİ Yrd. Doç. Dr. Fırat YÜCEL Akdeniz Üniversitesi Enformatik Bölümü](https://reader034.vdocuments.pub/reader034/viewer/2022050720/5a78d5be7f8b9a5a148c5f09/html5/thumbnails/21.jpg)
Veri Tabanı Yaklaşımı
• Veri tabanı yaklaşımında, tanımlamalar en başta bir defaya mahsusgerçekleştirilir ve veri girişi tekrar yapılmaz. Bu veriler çok sayıdakullanıcı ile paylaşılarak ortak kullanılabilir.
Veri tabanı yaklaşımının temel karakteristikleri
Veri tabanı sisteminin kendiliğinden tanımlı doğası
Programlar, veri ve veri tanımlamaları arasında yalıtım
Verilere çoklu rapor desteği
Verilerin paylaşımı ve çok kullanıcılı işlemlerin gerçekleştirilmesi
![Page 22: VERİ TABANI YÖNETİM SİSTEMLERİ - · PDF fileVERİ TABANI YÖNETİM SİSTEMLERİ Yrd. Doç. Dr. Fırat YÜCEL Akdeniz Üniversitesi Enformatik Bölümü](https://reader034.vdocuments.pub/reader034/viewer/2022050720/5a78d5be7f8b9a5a148c5f09/html5/thumbnails/22.jpg)
Veri Tabanı Sistemlerinin Kendinden Tanımlı Doğası
• Veri tabanı yaklaşımının temel karakteristiği, veri tabanı sisteminin yalnızca kendi veri tabanını değil, aynı zamanda veri tabanı yapısının ve kurucularının da tanımlama ve açıklamalarını da içeriyor olmasıdır. Bunlara meta-data denir.
• Dosya tabanlı sistemlerde bu tanımlamalar spesifik olarak program kodları ile tanımlanır.
Veri Tabanı
Tanımlamaları
(Meta-Data)
Veri Tabanı
DBMS Yazılımı
![Page 23: VERİ TABANI YÖNETİM SİSTEMLERİ - · PDF fileVERİ TABANI YÖNETİM SİSTEMLERİ Yrd. Doç. Dr. Fırat YÜCEL Akdeniz Üniversitesi Enformatik Bölümü](https://reader034.vdocuments.pub/reader034/viewer/2022050720/5a78d5be7f8b9a5a148c5f09/html5/thumbnails/23.jpg)
Veri Tabanı Katalog Bilgilerine Bir Örnek
Relation_Name No_of_columns
OGRENCI 4
DONEM 5
DERS 4
SINAV_SONUC 3
ONKOSUL 2
İLİŞKİLER
Column_Name Data_type Belongs_to_relation
Ad Char(150) OGRENCI
Ogrenci_No Char(11) OGRENCI
Sinif Integer(1) OGRENCI
Bolum Char(100) OGRENCI
Donem_ID Integer DONEM
Ders_Kodu XXXXNNNN DONEM
Donem Char(5) DONEM
… … …
Ders_Kodu XXXXNNNN ONKOSUL
Onkosul_Kodu XXXXNNNN ONKOSUL
XXXXNNNN: 4 alfakarakter, 4
sayıdan oluşan biçim.
ALANLAR (SÜTUNLAR)
![Page 24: VERİ TABANI YÖNETİM SİSTEMLERİ - · PDF fileVERİ TABANI YÖNETİM SİSTEMLERİ Yrd. Doç. Dr. Fırat YÜCEL Akdeniz Üniversitesi Enformatik Bölümü](https://reader034.vdocuments.pub/reader034/viewer/2022050720/5a78d5be7f8b9a5a148c5f09/html5/thumbnails/24.jpg)
Programlar, Veri ve Veri Tanımlamaları Arasında Yalıtım
• Geleneksel sistemlerde, veri dosyalarının yapısı uygulamaprogramının içerisinde tanımlanır. Değişiklik gerektiğinde hemdosyaların hem de program yapısının değiştirilmesi gerekir.
• DBMS erişim programlarında tüm durumlarda değişiklik gerekmez.Veri dosyalarının yapısı DBMS kataloğunda yer alır. Bu durum,program-veri bağımsızlığı olarak adlandırılır.
Veri Alan Adı Kaydın Başlama Yeri Karakter Uzunluğu (byte)
Ad 150 150
Ogrenci_No 151 11
Sinif 162 1
Bolum 163 100
Dosya sisteminde
verilerin
tutulmasına
OGRENCI
tablosundan bir
örnek
![Page 25: VERİ TABANI YÖNETİM SİSTEMLERİ - · PDF fileVERİ TABANI YÖNETİM SİSTEMLERİ Yrd. Doç. Dr. Fırat YÜCEL Akdeniz Üniversitesi Enformatik Bölümü](https://reader034.vdocuments.pub/reader034/viewer/2022050720/5a78d5be7f8b9a5a148c5f09/html5/thumbnails/25.jpg)
Programlar, Veri ve Veri Tanımlamaları Arasında Yalıtım
• Bazı nesne yönelimli veya nesne ilişkili veri tabanı sistemlerinde,kullanıcılar veri üzerindeki işlemleri (fonksiyonları, yöntemleri yada parametreleri) de veri tabanı tanımlamalarının bir parçasıolarak tanımlayabilir.
• DBMS’de, arayüz değişse de tanımlanan bu işlemlerde bir aksamasöz konusu olmaz. Bu durum program-işlem bağımsızlığı olarakadlandırılır.
• Hem program-veri bağımsızlığı hem de program-işlem bağımsızlığıözelliğini içeren karakteristik veri yalıtımı (data abstraction)olarak tanımlanır.
![Page 26: VERİ TABANI YÖNETİM SİSTEMLERİ - · PDF fileVERİ TABANI YÖNETİM SİSTEMLERİ Yrd. Doç. Dr. Fırat YÜCEL Akdeniz Üniversitesi Enformatik Bölümü](https://reader034.vdocuments.pub/reader034/viewer/2022050720/5a78d5be7f8b9a5a148c5f09/html5/thumbnails/26.jpg)
Verilere Çoklu Rapor Desteği
• Bir veri tabanı sisteminin birçok kullanıcısı vardır ve bu kullanıcılarfarklı konularda verilerle ilgilenirler. Bu verilerden elde edilenraporlar (views) DBMS’de her kullanıcı için oluşturulabilir.
Ad Ders_Kodu Not Donem Yil Donem_ID
MehmetENF101 AA Güz 16 85
YBS201 BB Güz 17 119
Ayşe
ENF101 AA Güz 16 85
BIL203 BA Bahar 16 102
YBS201 CC Güz 17 119
TRANSKRİPT (RAPOR ÖRNEĞİ)
![Page 27: VERİ TABANI YÖNETİM SİSTEMLERİ - · PDF fileVERİ TABANI YÖNETİM SİSTEMLERİ Yrd. Doç. Dr. Fırat YÜCEL Akdeniz Üniversitesi Enformatik Bölümü](https://reader034.vdocuments.pub/reader034/viewer/2022050720/5a78d5be7f8b9a5a148c5f09/html5/thumbnails/27.jpg)
Verilerin Paylaşımı ve Çok Kullanıcılı İşlemlerin Gerçekleştirilmesi
• Bir DBMS, eş zamanlı olarak çok sayıda kullanıcının veri tabanınaerişimine izin vermelidir.
• Aynı anda veri güncelleme istemlerinin, veri işlem kontroluygulamalarıyla kontrol edilmesi gerekir. Bu uygulamalara, onlinetransaction prosessing (OLTP) uygulamaları denir.
• Veriler üzerinde yapılan işlemlerin sonucu hakkında çıkarımdabulunan sistemlere ise online analytical processing (OLAP)uygulamaları denir.
![Page 28: VERİ TABANI YÖNETİM SİSTEMLERİ - · PDF fileVERİ TABANI YÖNETİM SİSTEMLERİ Yrd. Doç. Dr. Fırat YÜCEL Akdeniz Üniversitesi Enformatik Bölümü](https://reader034.vdocuments.pub/reader034/viewer/2022050720/5a78d5be7f8b9a5a148c5f09/html5/thumbnails/28.jpg)
Sahnedeki Aktörler
Veri Tabanı Yöneticileri (Database Administrators, DBA)
•Veri tabanı kaynaklarını yöneten ve kontrol eden tüm yetkilere sahip kullanıcılardır.
Veri Tabanı Tasarımcıları (Database Designers)
•Verilerin saklanabilmesi için tanımlamaları yapmak, bu verilerin gösterimi ve saklanması için uygun yapıları seçmek ile sorumludurlar.
Son Kullanıcılar (End Users)
•Veri tabanına çeşitli işlemleri gerçekleştirmek üzere erişim sağlayan kullanıcılardır.
Sistem Analistleri ve Uygulama Programcıları (Yazılım Mühendisleri)
•Sistem analistleri, son kullanıcıların gereksinimlerini belirleyen, gereksinimleri bulan kullanıcılardır. Uygulama programcıları, gereksinimlere uygun yazılımı kodlayan, daha sonra test eden derleyen, dokümantasyonunu hazırlayan ve veri işlemlerinin bakımını gerçekleştiren kullanıcılardır.
![Page 29: VERİ TABANI YÖNETİM SİSTEMLERİ - · PDF fileVERİ TABANI YÖNETİM SİSTEMLERİ Yrd. Doç. Dr. Fırat YÜCEL Akdeniz Üniversitesi Enformatik Bölümü](https://reader034.vdocuments.pub/reader034/viewer/2022050720/5a78d5be7f8b9a5a148c5f09/html5/thumbnails/29.jpg)
Sahne Gerisinde Çalışanlar
DBMS sistem tasarımcıları ve geliştiricileri
• DBMS modüllerini ve yazılım paketi arayüzlerini tasarlayan ve geliştiren kişilerdir.
Araç geliştiricileri
• Araç (tool) adı verilen veri tabanı modelleme ve tasarım, veri tabanı sistem tasarım ve performansı yükseltmek için hazırlanan yazılımları geliştiren kişilerdir.
Operatörler ve bakım personeli
• Veri tabanının yer aldığı donanımın çalışması ve bakımı ile yazılım için gereken çevresel gereksinimlerden sorumludur.
![Page 30: VERİ TABANI YÖNETİM SİSTEMLERİ - · PDF fileVERİ TABANI YÖNETİM SİSTEMLERİ Yrd. Doç. Dr. Fırat YÜCEL Akdeniz Üniversitesi Enformatik Bölümü](https://reader034.vdocuments.pub/reader034/viewer/2022050720/5a78d5be7f8b9a5a148c5f09/html5/thumbnails/30.jpg)
DBMS Yaklaşımını Kullanmanın Üstün Yönleri
• Gereksiz verilerin kontrolü
• Yetkisiz erişimlerin engellenmesi
• Program nesneleri için kalıcı saklama
• Etkin sorgulama işlemleri için saklama yapıları ve arama teknikleri
• Yedekleme ve geri yükleme
• Çok kullanıcı erişimi
• Veri üzerindeki karmaşık ilişkilerin tanımlanması
• Bütünlük kısıtlamalarını uygulayabilme
• Kurallara uygun işlemlere ve sonuç çıkarmaya izin verme
• İlave faydalar• Kullanıcılar arasında iş dağılımı, azalan uygulama geliştirme süresi, esneklik, günlük
bilgilerin kullanılabilmesi, ölçeklenmiş ekonomi…
![Page 31: VERİ TABANI YÖNETİM SİSTEMLERİ - · PDF fileVERİ TABANI YÖNETİM SİSTEMLERİ Yrd. Doç. Dr. Fırat YÜCEL Akdeniz Üniversitesi Enformatik Bölümü](https://reader034.vdocuments.pub/reader034/viewer/2022050720/5a78d5be7f8b9a5a148c5f09/html5/thumbnails/31.jpg)
Veri Tabanı Uygulamalarının Kısa Tarihçesi
Hiyerarşik ve Ağ Sistemleri
Tabanlı Veri Tabanı
Uygulamaları
İlişkisel Veri Tabanı Yönetim Sistemi (RDBMS)
XML (eXtended
MarkupLanguage)
Yeni Veri Tabanı Uygulamaları
Bilgi Çıkarım (Information Retrieval, IR)
1970’ler 1980’ler 1990’lar 2000’ler Günümüz
• Bilimsel uygulamalar
• Resim ve video tabanlı veri
tabanları
• Veri madenciliği (data mining)
• Uzay uygulamaları
• Zaman serileri
![Page 32: VERİ TABANI YÖNETİM SİSTEMLERİ - · PDF fileVERİ TABANI YÖNETİM SİSTEMLERİ Yrd. Doç. Dr. Fırat YÜCEL Akdeniz Üniversitesi Enformatik Bölümü](https://reader034.vdocuments.pub/reader034/viewer/2022050720/5a78d5be7f8b9a5a148c5f09/html5/thumbnails/32.jpg)
DBMS’nin Zayıf Yönleri
• Donanım, yazılım ve öğrenme açısından gereksinimler
• Verilerin tanımlanması ve işlenmesi için DBMS’ye gereksinim duyulması
• Güvenlik, eşzamanlı erişim kontrolü, kurtarma ve ileri düzey fonksiyonlara hakim olunması gereksinimi
![Page 33: VERİ TABANI YÖNETİM SİSTEMLERİ - · PDF fileVERİ TABANI YÖNETİM SİSTEMLERİ Yrd. Doç. Dr. Fırat YÜCEL Akdeniz Üniversitesi Enformatik Bölümü](https://reader034.vdocuments.pub/reader034/viewer/2022050720/5a78d5be7f8b9a5a148c5f09/html5/thumbnails/33.jpg)
Veri Tabanı Sistemi Kavramları ve Mimarisi
Veri Modelleri, Şemalar ve Olaylar
Üç Şema Mimarisi
İlişkisel Veri Tabanı
![Page 34: VERİ TABANI YÖNETİM SİSTEMLERİ - · PDF fileVERİ TABANI YÖNETİM SİSTEMLERİ Yrd. Doç. Dr. Fırat YÜCEL Akdeniz Üniversitesi Enformatik Bölümü](https://reader034.vdocuments.pub/reader034/viewer/2022050720/5a78d5be7f8b9a5a148c5f09/html5/thumbnails/34.jpg)
Veri Tabanı Mimarisi
• İlk Veri Tabanı Mimarileri Tek bir bilgisayar (mainframe) üzerine kurulu
• Günümüz Veri Tabanı Mimarileri Sunucu-istemci yapısında
İstemci 1
İstemci 2 İstemci n
Sunucu (DBMS)
Veri TabanıDöndürülen
veri
Veri isteği
LAN veya
WAN
![Page 35: VERİ TABANI YÖNETİM SİSTEMLERİ - · PDF fileVERİ TABANI YÖNETİM SİSTEMLERİ Yrd. Doç. Dr. Fırat YÜCEL Akdeniz Üniversitesi Enformatik Bölümü](https://reader034.vdocuments.pub/reader034/viewer/2022050720/5a78d5be7f8b9a5a148c5f09/html5/thumbnails/35.jpg)
Veri Modeli
• Veri tabanının mimarisini tanımlamak için kullanılan kavramlarbütünüdür. Veri tabanı mimarisi; veri tipleri, ilişkiler ve veri girişkısıtlamalarını ifade eder.
• Varlık (Entity): Bir gerçek dünya nesnesini veya kavramını ifade eder.Örneğin; bir çalışan veya veri tabanı içerisindeki mini dünyadatanımlanan bir proje gibi.
• Nitelik (Attribute): Bir varlığı tanımlayan özelliktir. Örneğin; çalışan adıveya ücreti gibi.
• İlişki (Relationship): İki veya daha fazla varlık (entity) arasındaki ortaknokta ve birleşmeyi ifade eder. Örneğin bir çalışan ile bir projeyiilişkilendirme gibi.
Varlık
Nitelik
İlişki
![Page 36: VERİ TABANI YÖNETİM SİSTEMLERİ - · PDF fileVERİ TABANI YÖNETİM SİSTEMLERİ Yrd. Doç. Dr. Fırat YÜCEL Akdeniz Üniversitesi Enformatik Bölümü](https://reader034.vdocuments.pub/reader034/viewer/2022050720/5a78d5be7f8b9a5a148c5f09/html5/thumbnails/36.jpg)
İlişkisel Veri Modeli (Relational Data Model)
Ad Ogrenci_No Sinif Bolum
Mehmet 17 1 YBS
Ayşe 5 2 YBS
OGRENCİTablo (Table)
Nitelik (Attribute)
Alanlar (Fields, Columns)
Kayıtlar (Records)
Varlık (Entity)
![Page 37: VERİ TABANI YÖNETİM SİSTEMLERİ - · PDF fileVERİ TABANI YÖNETİM SİSTEMLERİ Yrd. Doç. Dr. Fırat YÜCEL Akdeniz Üniversitesi Enformatik Bölümü](https://reader034.vdocuments.pub/reader034/viewer/2022050720/5a78d5be7f8b9a5a148c5f09/html5/thumbnails/37.jpg)
İlişkisel Veri Tabanı Modeli (Relational Database Model)
İlişkisel model, bir veri tabanı üzerinde tanımlanan ilişkilerin koleksiyonudur.
SQL: Structural Query Language
• MS SQL Server
• Oracle
• PostrgreSQL
• MySQL
• Sybase SQL Server
• Informix
![Page 38: VERİ TABANI YÖNETİM SİSTEMLERİ - · PDF fileVERİ TABANI YÖNETİM SİSTEMLERİ Yrd. Doç. Dr. Fırat YÜCEL Akdeniz Üniversitesi Enformatik Bölümü](https://reader034.vdocuments.pub/reader034/viewer/2022050720/5a78d5be7f8b9a5a148c5f09/html5/thumbnails/38.jpg)
Birincil Anahtar ve Yabancı Anahtar
• Birincil Anahtar (Primary Key); bir tabloda her bir kayıt için verilenbenzersiz alandır. Kayıtların birbirinden ayırt edilmesini sağlar.
• Bir tabloda birincil anahtar alanında tanımlanan veriler aynıolamaz.
• Yabancı Anahtar (Foreign Key, Secondary Key, Index); bir tablodadiğer tablodaki kayıtlarla ilişki kurulan alanlardır.
#
![Page 39: VERİ TABANI YÖNETİM SİSTEMLERİ - · PDF fileVERİ TABANI YÖNETİM SİSTEMLERİ Yrd. Doç. Dr. Fırat YÜCEL Akdeniz Üniversitesi Enformatik Bölümü](https://reader034.vdocuments.pub/reader034/viewer/2022050720/5a78d5be7f8b9a5a148c5f09/html5/thumbnails/39.jpg)
Örnek İlişkisel Veri Tabanı Tasarımı
• Bir işletmenin ürünlerini internet üzerinden satmak üzere bir veri tabanı tasarımı• Ürünler; Barkod, Ürün Adı, Marka, Özellikleri, KDV Oranı, Alış Fiyatı, Satış
Fiyatı, Ürün Adedi
• Müşteriler; Müşteri Kodu, Müşteri Adı, Müşteri Soyadı, e-posta, Parola, Adres, Şehir, Telefon
• Siparişler; Sipariş Kodu, Müşteri, Ürün, Sipariş Tarihi, Sipariş Durumu, Sipariş Adedi
![Page 40: VERİ TABANI YÖNETİM SİSTEMLERİ - · PDF fileVERİ TABANI YÖNETİM SİSTEMLERİ Yrd. Doç. Dr. Fırat YÜCEL Akdeniz Üniversitesi Enformatik Bölümü](https://reader034.vdocuments.pub/reader034/viewer/2022050720/5a78d5be7f8b9a5a148c5f09/html5/thumbnails/40.jpg)
Örnek İlişkisel Veri Tabanı Tasarımı
ÜRÜNLERBarkod
Ürün Adı
Marka
Özellikler
KDV Oranı
Alış Fiyatı
Satış Fiyatı
Ürün Adedi
MÜŞTERİLER
Müşteri Kodu
Adı Soyadı
E-Posta
Parola
AdresŞehir
Telefon
SİPARİŞLER
Sipariş Kodu Müşteri Kodu
Ürün Barkodu
Sipariş TarihiSipariş Durumu
Sipariş Adedi
SatışN 1
N
Birincil Anahtar
# Yabancı Anahtar
#
#
![Page 41: VERİ TABANI YÖNETİM SİSTEMLERİ - · PDF fileVERİ TABANI YÖNETİM SİSTEMLERİ Yrd. Doç. Dr. Fırat YÜCEL Akdeniz Üniversitesi Enformatik Bölümü](https://reader034.vdocuments.pub/reader034/viewer/2022050720/5a78d5be7f8b9a5a148c5f09/html5/thumbnails/41.jpg)
Örnek İlişkisel Veri Tabanı Tasarımı
Barkod Ürün Adı Marka Özellikler KDV Oranı Alış Fiyatı Satış Fiyatı Ürün Adedi
35126 Sabit Disk Seagate 500 GB %18 80,12 96,15 21
12525 Anakart Gigabyte GA-Z170X-Gaming 3-EU %18 201,15 250,83 12
18121 RAM OEM 4 GB DDR %18 50,22 75,91 30
ÜRÜNLER
Müşteri Kodu Adı Soyadı E-posta Parola Adres Şehir Telefon
1 Ahmet Akcan [email protected] ****** Ak. Ün. Kampus Antalya 02423212212
2 Hatice Özay [email protected] ******* KYK Yurdu Kampus Antalya 05333333333
3 Salih Zafer [email protected] ***** Dumlupınar Bulvarı Antalya 02423221112
MÜŞTERİLER
Sipariş Kodu Müşteri Kodu Ürün Barkodu Sipariş Tarihi Sipariş Durumu Sipariş Adedi
121 2 35126 22/09/2017 Teslim edildi 3
122 1 12525 30/09/2017 Kargoda 1
SİPARİŞLER
Birincil Anahtar
# Yabancı Anahtar
# #
![Page 42: VERİ TABANI YÖNETİM SİSTEMLERİ - · PDF fileVERİ TABANI YÖNETİM SİSTEMLERİ Yrd. Doç. Dr. Fırat YÜCEL Akdeniz Üniversitesi Enformatik Bölümü](https://reader034.vdocuments.pub/reader034/viewer/2022050720/5a78d5be7f8b9a5a148c5f09/html5/thumbnails/42.jpg)
UNIVERSITE Veri Tabanı için İlişkisel Model
OGRENCİ
Ad Ogrenci_No
SinifBolum
ONKOSUL
Ders_Kodu Onkosul_Kodu
DONEM
DERS
Donem_ID
Ders_Kodu
Ogr_Elemani
Donem
Yil
Ders_Ad
Ders_Kodu
Kredi
Bolum
açılırseçer
1
N
N 1
N
SINAV_SONUC
Ogrenci_No
Donem_ID
Not
Değerlendirme1 N
N
belirlenirN 1
# ##
#
#Birincil Anahtar
# Yabancı Anahtar
![Page 43: VERİ TABANI YÖNETİM SİSTEMLERİ - · PDF fileVERİ TABANI YÖNETİM SİSTEMLERİ Yrd. Doç. Dr. Fırat YÜCEL Akdeniz Üniversitesi Enformatik Bölümü](https://reader034.vdocuments.pub/reader034/viewer/2022050720/5a78d5be7f8b9a5a148c5f09/html5/thumbnails/43.jpg)
Veri Tabanı Şema Diyagramı (Database Schema Diagram)
• Veri tabanındaki varlıkları, nitelikleri ve bunların birbiriyle ilişkisini gösteren şekillerdir.
![Page 44: VERİ TABANI YÖNETİM SİSTEMLERİ - · PDF fileVERİ TABANI YÖNETİM SİSTEMLERİ Yrd. Doç. Dr. Fırat YÜCEL Akdeniz Üniversitesi Enformatik Bölümü](https://reader034.vdocuments.pub/reader034/viewer/2022050720/5a78d5be7f8b9a5a148c5f09/html5/thumbnails/44.jpg)
Üç Şema Mimarisi (Üç Katman Mimarisi)
• Veri tabanının fiziksel saklama yapısını tanımlar.
İç Katman (İç Şema)
• Veri tabanının veri modelini tanımlar, kullanıcı ile iç katman arasında iletişimi sağlar.
Kavramsal Katman (Kavramsal Şema)
• Veri tabanının kullanıcı grubunun erişimi için hazırlanan arayüzüdür.
Harici (Dış) Katman (Dış Şema)
![Page 45: VERİ TABANI YÖNETİM SİSTEMLERİ - · PDF fileVERİ TABANI YÖNETİM SİSTEMLERİ Yrd. Doç. Dr. Fırat YÜCEL Akdeniz Üniversitesi Enformatik Bölümü](https://reader034.vdocuments.pub/reader034/viewer/2022050720/5a78d5be7f8b9a5a148c5f09/html5/thumbnails/45.jpg)
Örnek Veri Tabanı Tasarımı
• Bir kütüphane kitap ödünç verme/sorgulama işlemleri için veri tabanı
• Bir eczane ilaç satışı için veri tabanı
• Bir şehirlerarası otobüs firması bilet satışı için veri tabanı
![Page 46: VERİ TABANI YÖNETİM SİSTEMLERİ - · PDF fileVERİ TABANI YÖNETİM SİSTEMLERİ Yrd. Doç. Dr. Fırat YÜCEL Akdeniz Üniversitesi Enformatik Bölümü](https://reader034.vdocuments.pub/reader034/viewer/2022050720/5a78d5be7f8b9a5a148c5f09/html5/thumbnails/46.jpg)
Temel SQL
![Page 47: VERİ TABANI YÖNETİM SİSTEMLERİ - · PDF fileVERİ TABANI YÖNETİM SİSTEMLERİ Yrd. Doç. Dr. Fırat YÜCEL Akdeniz Üniversitesi Enformatik Bölümü](https://reader034.vdocuments.pub/reader034/viewer/2022050720/5a78d5be7f8b9a5a148c5f09/html5/thumbnails/47.jpg)
SQL
• SQL (Structured Query Language): İlişkisel veri tabanlarında kullanılan Yapısal Sorgulama Dili’dir.
• İlk adı SEQUEL’dir. Daha sonra 1986 yılında ANSI tarafından ilk SQL versiyonu yayınlanmıştır.
• SQL en yaygın kullanılan veri tabanı dilidir. Veri tanımlama, sorgulama ve güncelleme işlemleri için ifadeler içerir.
![Page 48: VERİ TABANI YÖNETİM SİSTEMLERİ - · PDF fileVERİ TABANI YÖNETİM SİSTEMLERİ Yrd. Doç. Dr. Fırat YÜCEL Akdeniz Üniversitesi Enformatik Bölümü](https://reader034.vdocuments.pub/reader034/viewer/2022050720/5a78d5be7f8b9a5a148c5f09/html5/thumbnails/48.jpg)
SQL’de Veri Tanımlama
• SQL’de veri tabanı ve içerisindeki nesneler CREATE ifadesi ile tanımlanır.• CREATE SCHEMA
• CREATE DATABASE
• CREATE TABLE
• CREATE VIEW
• …
![Page 49: VERİ TABANI YÖNETİM SİSTEMLERİ - · PDF fileVERİ TABANI YÖNETİM SİSTEMLERİ Yrd. Doç. Dr. Fırat YÜCEL Akdeniz Üniversitesi Enformatik Bölümü](https://reader034.vdocuments.pub/reader034/viewer/2022050720/5a78d5be7f8b9a5a148c5f09/html5/thumbnails/49.jpg)
Şema ve Katalog Kavramları
• SQL şeması, şema elemanları için yetki tanımı yapmaya yarayan ifadedir. Şema elemanları; tablolar, sınırlamalar, raporlar, alan adları ve diğer kısıtlamalar vb. kavramlarını içerir.
CREATE SCHEMA COMPANY AUTHORIZATION ‘FYucel’;
• Katalog ise şemaların bir koleksiyonudur.
![Page 50: VERİ TABANI YÖNETİM SİSTEMLERİ - · PDF fileVERİ TABANI YÖNETİM SİSTEMLERİ Yrd. Doç. Dr. Fırat YÜCEL Akdeniz Üniversitesi Enformatik Bölümü](https://reader034.vdocuments.pub/reader034/viewer/2022050720/5a78d5be7f8b9a5a148c5f09/html5/thumbnails/50.jpg)
Yeni SQL Veri Tabanı Oluşturma
• Yeni bir SQL veri tabanı oluşturmak için;
CREATE DATABASE Deneme;
• Açılan veri tabanını kullanmaya başlamak için;
USE Deneme;
![Page 51: VERİ TABANI YÖNETİM SİSTEMLERİ - · PDF fileVERİ TABANI YÖNETİM SİSTEMLERİ Yrd. Doç. Dr. Fırat YÜCEL Akdeniz Üniversitesi Enformatik Bölümü](https://reader034.vdocuments.pub/reader034/viewer/2022050720/5a78d5be7f8b9a5a148c5f09/html5/thumbnails/51.jpg)
Yeni SQL Tablosu Oluşturma
• Veri tabanına yeni bir varlık ve bu varlığa ait nitelikleri tanımlamak için, SQL’de tablo oluşturmak gereklidir.
CREATE TABLE Siparisler
( SiparisKodu VARCHAR(10) NOT NULL,
MusteriKodu VARCHAR(10) NOT NULL,
UrunBarkodu VARCHAR(15) NOT NULL,
Tarih DATETIME NOT NULL,
Durum CHAR,
Adet INT,
PRIMARY KEY (SiparisKodu, MusteriKodu, UrunBarkodu),
FOREIGN KEY (MusteriKodu) REFERENCES Musteriler(MusteriKodu),
FOREIGN KEY (UrunBarkodu) REFERENCES Urunler(Barkod)
);
![Page 52: VERİ TABANI YÖNETİM SİSTEMLERİ - · PDF fileVERİ TABANI YÖNETİM SİSTEMLERİ Yrd. Doç. Dr. Fırat YÜCEL Akdeniz Üniversitesi Enformatik Bölümü](https://reader034.vdocuments.pub/reader034/viewer/2022050720/5a78d5be7f8b9a5a148c5f09/html5/thumbnails/52.jpg)
MS SQL Veri Tipleri
Veri Tipi Açıklama Maksimum Uzunluk Saklama
char(n) Sabit uzunluklu karakter dizisi 8,000 karakter Tanımlı uzunluk
varchar(n) Değişken uzunluklu karakter dizisi 8,000 karakter 2 bayt + karakter sayısı
varchar(max) Değişken uzunluklu karakter dizisi 1,073,741,824 karakter 2 bayt + karakter sayısı
text Değişken uzunluklu metin 2GB metin verisi 4 bayt + karakter sayısı
nchar Sabit uzunluklu Unicode karakter dizisi 4,000 karakter Tanımlanan uzunluk x 2
nvarchar Değişken uzunluklu Unicode karakter dizisi 4,000 karakter
nvarchar(max) Değişken uzunluklu Unicode karakter dizisi 536,870,912 karakter
ntext Değişken uzunluklu Unicode metin 2GB metin verisi
binary(n) Sabit uzunluklu binary karakter dizisi 8,000 bayt
varbinary Değişken uzunluklu binary karakter dizisi 8,000 bayt
varbinary(max) Değişken uzunluklu binary karakter dizisi 2GB
image Değişken uzunluklu binary karakter dizisi 2GB
![Page 53: VERİ TABANI YÖNETİM SİSTEMLERİ - · PDF fileVERİ TABANI YÖNETİM SİSTEMLERİ Yrd. Doç. Dr. Fırat YÜCEL Akdeniz Üniversitesi Enformatik Bölümü](https://reader034.vdocuments.pub/reader034/viewer/2022050720/5a78d5be7f8b9a5a148c5f09/html5/thumbnails/53.jpg)
MS SQL Veri Tipleri
Veri Tipi Açıklama Saklama
bit 0, 1 ya da NULL olabilen INTEGER
tinyint 0 ile 255 arasındaki sayılar 1 bayt
smallint -32,768 ile 32,767 arasındaki sayılar 2 bayt
int -2,147,483,648 ile 2,147,483,647 arasındaki sayılar 4 bayt
bigint -9,223,372,036,854,775,808 ile 9,223,372,036,854,775,807 arasındaki sayılar 8 bayt
decimal(p,s)
Sabit hassasiyetli ve ondalıklı sayı. -10^38 +1 ile 10^38 –1 arasındaki sayılar
p: maksimum hane sayısı, 1 ile 38 arasında bir değer olup, varsayılan 18’dir.
s: maksimum virgülün sağındaki hane sayısı. 0 ile p arasında bir değer olup, varsayılan 0’dır.
5-17 bayt
numeric(p,s)
Sabit hassasiyetli ve ondalıklı sayı. -10^38 +1 ile 10^38 –1 arasındaki sayılar.
p: maksimum hane sayısı, 1 ile 38 arasında bir değer olup, varsayılan 18’dir.
s: maksimum virgülün sağındaki hane sayısı. 0 ile p arasında bir değer olup, varsayılan 0’dır.
5-17 bayt
smallmoney -214,748.3648 ile 214,748.3647 arasında parasal veri 4 bayt
money -922,337,203,685,477.5808 ile 922,337,203,685,477.5807 arasında parasal veri 8 bayt
float(n)-1.79E + 308 ile 1.79E + 308 arasında ondalıklı sayı. n parametresi, 4 ya da 8 bayt tutulacağını belirler. float(24)’e
kadar 4 byte, bundan sonra float(53)’e kadar ise 8 byte veri tutulur. Varsayılan n değeri 53’tür.
4 veya 8 bayt
real -3.40E + 38 ile 3.40E + 38 arasında ondalıklı sayı. 4 bayt
![Page 54: VERİ TABANI YÖNETİM SİSTEMLERİ - · PDF fileVERİ TABANI YÖNETİM SİSTEMLERİ Yrd. Doç. Dr. Fırat YÜCEL Akdeniz Üniversitesi Enformatik Bölümü](https://reader034.vdocuments.pub/reader034/viewer/2022050720/5a78d5be7f8b9a5a148c5f09/html5/thumbnails/54.jpg)
MS SQL Veri Tipleri
Veri Tipi Açıklama Saklama
datetime 1 Ocak 1753 ile 31 Aralık 9999 arasında 3.33 ms hassasiyet 8 bytes
datetime2 1 Ocak 0001 ile 31 Aralık 9999 arasında 100 ns hassasiyet 6-8 bytes
smalldatetime 1 Ocak 1900 ile 6 Haziran 2079 arasında 1 dakika hassasiyet 4 bytes
date Yalnızca tarih verisi saklar. 1 Ocak 0001 ile 31 Aralık 9999 arasında 3 bytes
time Sadece zaman verisi saklar. 100 ns hassasiyet 3-5 bytes
datetimeoffset Datetime2 ile aynı olup sadece zaman dilimi içerir. 8-10 bytes
timestamp Zamana göre benzersiz bir tarih damgası değeri üretir.
![Page 55: VERİ TABANI YÖNETİM SİSTEMLERİ - · PDF fileVERİ TABANI YÖNETİM SİSTEMLERİ Yrd. Doç. Dr. Fırat YÜCEL Akdeniz Üniversitesi Enformatik Bölümü](https://reader034.vdocuments.pub/reader034/viewer/2022050720/5a78d5be7f8b9a5a148c5f09/html5/thumbnails/55.jpg)
SQL Alan Adı Tanımlama
• SQL’de yeni Alan Adı (Domain) tanımlamak için;
CREATE DOMAIN PARA AS DECIMAL(10,2)
CHECK (PARA > 0,00 AND PARA < 500000,00);
![Page 56: VERİ TABANI YÖNETİM SİSTEMLERİ - · PDF fileVERİ TABANI YÖNETİM SİSTEMLERİ Yrd. Doç. Dr. Fırat YÜCEL Akdeniz Üniversitesi Enformatik Bölümü](https://reader034.vdocuments.pub/reader034/viewer/2022050720/5a78d5be7f8b9a5a148c5f09/html5/thumbnails/56.jpg)
SQL Veri Tabanı / Tablosu Silmek
• SQL veri tabanı silmek için;
DROP DATABASE DENEME
• SQL tablosunu silmek için;
DROP TABLE Urunler
• SQL tablosunun içindeki verileri silmek için;
TRUNCATE TABLE Urunler
![Page 57: VERİ TABANI YÖNETİM SİSTEMLERİ - · PDF fileVERİ TABANI YÖNETİM SİSTEMLERİ Yrd. Doç. Dr. Fırat YÜCEL Akdeniz Üniversitesi Enformatik Bölümü](https://reader034.vdocuments.pub/reader034/viewer/2022050720/5a78d5be7f8b9a5a148c5f09/html5/thumbnails/57.jpg)
Alan Değişiklikleri
• Tabloya yeni bir alan eklemek için;
ALTER TABLE UrunlerADD Fiyat DECIMAL(10,2);
• Tablodan bir alanı silmek için;
ALTER TABLE UrunlerDROP COLUMN Fiyat;
• Tablodaki bir alanı güncellemek için;
ALTER TABLE UrunlerALTER COLUMN Fiyat MONEY;
![Page 58: VERİ TABANI YÖNETİM SİSTEMLERİ - · PDF fileVERİ TABANI YÖNETİM SİSTEMLERİ Yrd. Doç. Dr. Fırat YÜCEL Akdeniz Üniversitesi Enformatik Bölümü](https://reader034.vdocuments.pub/reader034/viewer/2022050720/5a78d5be7f8b9a5a148c5f09/html5/thumbnails/58.jpg)
Select-From-Where Yapısı
• Veri tabanından verileri getirmek amacıyla kullanılan sorgu deyimidir.
SELECT <Nitelik Listesi>
FROM <Tablo Listesi>
WHERE <Koşullar>;
Örnek:
SELECT Adi, Soyadi FROM Ogrenci WHERE OgrNo = ‘20121105015’;
SELECT OgrNo FROM Ogrenci WHERE Adi = ‘Mehmet’ AND Soyadi = ‘Aslan’;
![Page 59: VERİ TABANI YÖNETİM SİSTEMLERİ - · PDF fileVERİ TABANI YÖNETİM SİSTEMLERİ Yrd. Doç. Dr. Fırat YÜCEL Akdeniz Üniversitesi Enformatik Bölümü](https://reader034.vdocuments.pub/reader034/viewer/2022050720/5a78d5be7f8b9a5a148c5f09/html5/thumbnails/59.jpg)
İlişkisel Cebir Operatörleri
• Karşılaştırmalarda kullanılan operatörler;• = Eşittir
• < Küçüktür
• > Büyüktür
• <= Küçük Eşit
• >= Büyük Eşit
• <> Eşit Değil
• Mantıksal koşulları birleştirirken;• AND: Ve
• OR: Veya
• NOT: Değil
![Page 60: VERİ TABANI YÖNETİM SİSTEMLERİ - · PDF fileVERİ TABANI YÖNETİM SİSTEMLERİ Yrd. Doç. Dr. Fırat YÜCEL Akdeniz Üniversitesi Enformatik Bölümü](https://reader034.vdocuments.pub/reader034/viewer/2022050720/5a78d5be7f8b9a5a148c5f09/html5/thumbnails/60.jpg)
Çoklu Tablo İlişkileri Kurarak Sorgulama
• Birden fazla tablo arasında ilişkiler kurularak bu tablolardan istenen veriler tek bir sorgu ifadesiyle getirilebilir.
SELECT Ogrenciler.Adi, Ogrenciler.Soyadi, Sinavlar.Notu
FROM Ogrenciler, Sinavlar
WHERE Ogrenciler.OgrNo = Sinavlar.OgrNo;
![Page 61: VERİ TABANI YÖNETİM SİSTEMLERİ - · PDF fileVERİ TABANI YÖNETİM SİSTEMLERİ Yrd. Doç. Dr. Fırat YÜCEL Akdeniz Üniversitesi Enformatik Bölümü](https://reader034.vdocuments.pub/reader034/viewer/2022050720/5a78d5be7f8b9a5a148c5f09/html5/thumbnails/61.jpg)
Çoklu Tablo İlişkileri Kurarak Sorgulama
• Bir başka örnek;
SELECT Ogrenciler.Adi, Ogrenciler.Soyadi,
Dersler.DersAdi, Sinavlar.Notu
FROM Ogrenciler, Dersler, Sinavlar
WHERE Ogrenciler.OgrNo = Sinavlar.OgrNo AND
Sinavlar.DersKodu = Dersler.DersKodu;
OgrNo Adi Soyadi OgrNo DersKodu Notu DonemDersKodu DersAdi
OGRENCILER DERSLER SINAVLAR
![Page 62: VERİ TABANI YÖNETİM SİSTEMLERİ - · PDF fileVERİ TABANI YÖNETİM SİSTEMLERİ Yrd. Doç. Dr. Fırat YÜCEL Akdeniz Üniversitesi Enformatik Bölümü](https://reader034.vdocuments.pub/reader034/viewer/2022050720/5a78d5be7f8b9a5a148c5f09/html5/thumbnails/62.jpg)
Adlandırmalar (Alias)
• Sorgularda alan adları ve tablo adları, AS deyimi kullanılarak yeniden adlandırılabilir.
SELECT M.MusteriNo, S.Tutar
FROM Musteriler AS M, Satislar AS SWHERE M.MusteriNo = S.MusteriNo;
• Başka bir örnek;SELECT M.MusteriNo AS ‘Müşteri Numarası’, S.Tutar AS ‘Satış Tutarı’
FROM Musteriler AS M, Satislar AS S
WHERE M.MusteriNo = S.MusteriNo;
![Page 63: VERİ TABANI YÖNETİM SİSTEMLERİ - · PDF fileVERİ TABANI YÖNETİM SİSTEMLERİ Yrd. Doç. Dr. Fırat YÜCEL Akdeniz Üniversitesi Enformatik Bölümü](https://reader034.vdocuments.pub/reader034/viewer/2022050720/5a78d5be7f8b9a5a148c5f09/html5/thumbnails/63.jpg)
Belirsiz WHERE Deyimi ve Asteriks Kullanımı
• WHERE kullanılmadığı takdirde tablodaki belirtilen alanlarda bulunan tüm veriler döndürülür.
SELECT Adi, Soyadi FROM Musteriler
• Asteriks kullanımı ile tablodaki tüm alanlar döndürülür.SELECT * FROM Musteriler
Başka bir örnek;
SELECT * FROM Musteriler WHERE MusteriAdi = ‘Ahmet’;
Başka bir örnek;
SELECT * FROM Musteriler, Birimler;
![Page 64: VERİ TABANI YÖNETİM SİSTEMLERİ - · PDF fileVERİ TABANI YÖNETİM SİSTEMLERİ Yrd. Doç. Dr. Fırat YÜCEL Akdeniz Üniversitesi Enformatik Bölümü](https://reader034.vdocuments.pub/reader034/viewer/2022050720/5a78d5be7f8b9a5a148c5f09/html5/thumbnails/64.jpg)
ALL ve DISTINCT Deyimleri
• Tablodaki tekrarlı verilerin birden fazla kez gözükmesi için;
SELECT ALL Adi FROM Musteriler;
• ALL deyimi kullanmak isteğe bağlıdır.
• Tablodaki tekrarlı verilerin yalnızca bir kez gözükmesi için;
SELECT DISTINCT Adi FROM Musteriler;
![Page 65: VERİ TABANI YÖNETİM SİSTEMLERİ - · PDF fileVERİ TABANI YÖNETİM SİSTEMLERİ Yrd. Doç. Dr. Fırat YÜCEL Akdeniz Üniversitesi Enformatik Bölümü](https://reader034.vdocuments.pub/reader034/viewer/2022050720/5a78d5be7f8b9a5a148c5f09/html5/thumbnails/65.jpg)
Metin İçinde Arama
• LIKE karşılaştırma operatörü kullanılarak, metnin başından,sonundan ve içinden belli bir kısmına göre arama yapan sorgularoluşturmak mümkündür.• LIKE ‘ABC%’ Metnin başında ABC yazan kayıtları bulur.
• LIKE ‘%ABC’ Metnin sonunda ABC yazan kayıtları bulur.
• LIKE ‘%ABC%’ Metnin içinde ABC yazan kayıtları bulur.
• Bir örnek;SELECT * FROM Musteriler WHERE Adi LIKE ‘%AL%’;
![Page 66: VERİ TABANI YÖNETİM SİSTEMLERİ - · PDF fileVERİ TABANI YÖNETİM SİSTEMLERİ Yrd. Doç. Dr. Fırat YÜCEL Akdeniz Üniversitesi Enformatik Bölümü](https://reader034.vdocuments.pub/reader034/viewer/2022050720/5a78d5be7f8b9a5a148c5f09/html5/thumbnails/66.jpg)
Aritmetik İşlemler
• Sorgular içerisinde +, -, *, / operatörleri kullanılarak aritmetiksel işlemler yapılabilir.
SELECT UrunAdi AS ‘Ürün Adı’,
Adet – 1 AS ‘Kalan’,
Fiyat * 1.18 AS ‘KDV Dahil Fiyat’
FROM Urunler;
![Page 67: VERİ TABANI YÖNETİM SİSTEMLERİ - · PDF fileVERİ TABANI YÖNETİM SİSTEMLERİ Yrd. Doç. Dr. Fırat YÜCEL Akdeniz Üniversitesi Enformatik Bölümü](https://reader034.vdocuments.pub/reader034/viewer/2022050720/5a78d5be7f8b9a5a148c5f09/html5/thumbnails/67.jpg)
BETWEEN Operatörü
• Bir aralık tanımı gerçekleştirmek için kullanılır.
SELECT * FROM Satislar
WHERE (Tutar BETWEEN 3000 AND 4000) AND UrunAdi = ‘HDD’
Tutarı 3000 ile 4000 arasında
![Page 68: VERİ TABANI YÖNETİM SİSTEMLERİ - · PDF fileVERİ TABANI YÖNETİM SİSTEMLERİ Yrd. Doç. Dr. Fırat YÜCEL Akdeniz Üniversitesi Enformatik Bölümü](https://reader034.vdocuments.pub/reader034/viewer/2022050720/5a78d5be7f8b9a5a148c5f09/html5/thumbnails/68.jpg)
Sonuçları Sıralama
• ORDER BY deyimi ile gerçekleştirilir. İki seçenek vardır:• ASC: Artan Sıralama
• DESC: Azalan Sıralama
SELECT * FROM Musteriler ORDER BY Adi ASC, Soyadi DESC;
Adına göre artan, soyadına göre azalan sırada
![Page 69: VERİ TABANI YÖNETİM SİSTEMLERİ - · PDF fileVERİ TABANI YÖNETİM SİSTEMLERİ Yrd. Doç. Dr. Fırat YÜCEL Akdeniz Üniversitesi Enformatik Bölümü](https://reader034.vdocuments.pub/reader034/viewer/2022050720/5a78d5be7f8b9a5a148c5f09/html5/thumbnails/69.jpg)
Kayıt Sayısını, Verilerin Ortalamasını ve Verilerin Toplamını Bulma
• Kayıt sayısını bulmak için COUNT() fonksiyonu kullanılabilir.
SELECT COUNT(OgrenciNo) FROM Ogrenciler WHERE Bolumu = ‘YBS’;
• Kayıt ortalamasını bulmak için AVG() fonksiyonu kullanılabilir.
SELECT AVG(Notu) FROM Notlar WHERE DersKodu = ‘ENF101’;
• Kayıt toplamını bulmak için SUM() fonksiyonu kullanılabilir.
SELECT SUM(Tutari) FROM Satislar WHERE Kategori = ‘1’;
![Page 70: VERİ TABANI YÖNETİM SİSTEMLERİ - · PDF fileVERİ TABANI YÖNETİM SİSTEMLERİ Yrd. Doç. Dr. Fırat YÜCEL Akdeniz Üniversitesi Enformatik Bölümü](https://reader034.vdocuments.pub/reader034/viewer/2022050720/5a78d5be7f8b9a5a148c5f09/html5/thumbnails/70.jpg)
Kayıt İşlemleri
Kayıt Ekleme, Silme ve Güncelleme
![Page 71: VERİ TABANI YÖNETİM SİSTEMLERİ - · PDF fileVERİ TABANI YÖNETİM SİSTEMLERİ Yrd. Doç. Dr. Fırat YÜCEL Akdeniz Üniversitesi Enformatik Bölümü](https://reader034.vdocuments.pub/reader034/viewer/2022050720/5a78d5be7f8b9a5a148c5f09/html5/thumbnails/71.jpg)
Kayıt Ekleme
• Veri tabanındaki bir tabloya kayıt eklemek için;
INSERT INTO <Tablo Adı> <(Alan1, Alan2,…)>
VALUES <(‘Değer1’, ‘Değer2’,…)>
Örneğin;
INSERT INTO Musteriler (MusteriNo, Adi, Soyadi, Yasi)
VALUES (‘112’, ‘Metin’, ‘Kaya’, 23);
![Page 72: VERİ TABANI YÖNETİM SİSTEMLERİ - · PDF fileVERİ TABANI YÖNETİM SİSTEMLERİ Yrd. Doç. Dr. Fırat YÜCEL Akdeniz Üniversitesi Enformatik Bölümü](https://reader034.vdocuments.pub/reader034/viewer/2022050720/5a78d5be7f8b9a5a148c5f09/html5/thumbnails/72.jpg)
Kayıt Silme
• Veri tabanındaki bir tablodan kayıt silmek için;
DELETE FROM <Tablo Adı>
WHERE <Koşullar>;
Örneğin;
DELETE FROM Musteriler
WHERE Adi = ‘Metin’ AND Soyadi = ‘Kaya’;
![Page 73: VERİ TABANI YÖNETİM SİSTEMLERİ - · PDF fileVERİ TABANI YÖNETİM SİSTEMLERİ Yrd. Doç. Dr. Fırat YÜCEL Akdeniz Üniversitesi Enformatik Bölümü](https://reader034.vdocuments.pub/reader034/viewer/2022050720/5a78d5be7f8b9a5a148c5f09/html5/thumbnails/73.jpg)
Kayıt Güncelleme
• Veri tabanındaki bir tabloda kayıt güncelleme işlemi için;
UPDATE <Tablo Adı>
SET <Güncellenecek Alan = ‘Yeni Değer’,…>
WHERE <Koşullar>;
Örneğin;
UPDATE Musteriler
SET Adi = ‘Mete’, Soyadi = ‘Kayacan’
WHERE MusteriNo = ‘112’;
![Page 74: VERİ TABANI YÖNETİM SİSTEMLERİ - · PDF fileVERİ TABANI YÖNETİM SİSTEMLERİ Yrd. Doç. Dr. Fırat YÜCEL Akdeniz Üniversitesi Enformatik Bölümü](https://reader034.vdocuments.pub/reader034/viewer/2022050720/5a78d5be7f8b9a5a148c5f09/html5/thumbnails/74.jpg)
Kaynakça
• Fundamentals of database systems / Ramez Elmasri, Shamkant B. Navathe.—6th ed., 2010.