VERİ TABANI YÖNETİM SİSTEMLERİ. Yrd. Doç. Dr. Fırat YÜCEL Akdeniz Üniversitesi Enformatik Bölümü

Benzer belgeler
YBS104 - VERİ TABANINA GİRİŞ. Yrd. Doç. Dr. Fırat YÜCEL Akdeniz Üniversitesi Enformatik Bölümü

VERİ TABANI YÖNETİM SİSTEMLERİ. Yrd. Doç. Dr. Fırat YÜCEL Akdeniz Üniversitesi Enformatik Bölümü

Veri Tabanı Yönetim Sistemleri I

Mysql Veritabanı Komutları

3 Sql Veri Tipleri ve Örnek Veritabanı Tasarımı. Veritabanı 1

SQL Komutları (2) Uzm. Murat YAZICI

5 SQL- Yapısal Sorgulama Dili. Veritabanı 1

Bölüm 4: DDL Veri Tanımlama Dili

3 Sql Veri Tipleri. Veritabanı 1

Veritabanı Yönetim Sistemleri (Veritabanı Tasarımı) SQL (Structured Query Language)

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

Genel Kavramlar. Bilgisayar ortamında işlenebilecek durumda bulunan kayıtlar. Birbiri ile ilişkili veriler topluluğu ve veriler arası ilişkiler

Veritabanı. Ders 2 VERİTABANI

SQL veri tabalarına erişmek ve onları kullanmak için geliştirilmiş bir lisandır.

Maltepe Üniversitesi Bilgisayar Mühendisliği Bölümü Veri Tabanı ve Yönetimi (BİL 301)

EBE-368 Veri Tabanı Yönetim Sistemleri İlişkisel Model (The Relational Model)

Bu işleçlerin dışında, aşağıda belirtilen karşılaştırma işleçlerinden de yararlanılır.

SQL'e Giriş. SELECT Deyimi. SQL Komutları. Yardımcı Deyimler

VERİTABANI Veritabanı Yönetimi

Veri Tabanı SQL Server ve Management Studio kurulum linkleri:

BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜM BAŞKANLIĞI DERS TANITIM BİLGİLERİ

Veri Tabanı Hafta Dersi

Oracle da kullanılan veri tipleri:

Bilgisayar Teknolojileri Bölümü Bilgisayar Programcılığı Programı. Öğr. Gör. Cansu AYVAZ GÜVEN

SORGULAR VE ÇEŞİTLERİ II

SQL e Giriş. Uzm. Murat YAZICI

VERİTABANI. SQL (Structured Query Language)

8 Oracle da tablo yapısı içinde otomatik artan kolon yoktur. (identity kolon

Veritabanı Yönetimi Bilgisayarların. Keşfi Hedefler. Veritabanı, Veri ve Bilgi. Veritabanı, Veri ve Bilgi. Veritabanı, Veri ve Bilgi

Data Programming SQL Language. Elbistan Meslek Yüksek Okulu Bahar Yarıyılı

DENİZ HARP OKULU BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜM BAŞKANLIĞI DERS TANITIM BİLGİLERİ

MSSQL. 4. Hafta Uygulama - 1 BPR255 Veritabanı CREATE DATABASE OKUL GO USE OKUL GO

T.C GAZİ ÜNİVERSİTESİ BİLİŞİM ENSTİTÜSÜ YÖNETİM BİLİŞİM SİSTEMLERİ ANA BİLİM DALI MS SQL KOMUTLARI VE MS SQL KOMUTLARI İLE İLGİLİ UYGULAMALAR

Veri Tabanı-I 1.Hafta

Veri Tabanı Tasarım ve Yönetimi

Veritabanı. SQL (Structured Query Language)

SORGULAR. Öğr.Gör.Volkan Altıntaş

Veritabanlarına ve SQL'e Giriş. Devrim GÜNDÜZ. Teknoloji Destek Merkezi --

SQL Kod ile Tablo Oluşturma

Yukarıdakilerden hangileri DML (Data Manipulation Language) ile gerçekleştirilir?

Veri Tabanı-I 1.Hafta

Aşağıdaki tabloyu inceleyin. Sorgulama işlemlerini bu tabloya göre yapacağız.

Fonksiyonlar istenilen deger tipinde dönüs yapabilir. INT, VARCHAR deger döndürebileceğiniz gibi bir tablo da döndürebilirsiniz.

YAPISAL SORGULAMA DİLİ (SQL)

Veri Tabanı Hafta Dersi

UZAKTAN EĞİTİM MERKEZİ

ACCESS PLATFORMUNDA SQL

License. Veri Tabanı Sistemleri. Konular büyük miktarda verinin etkin biçimde tutulması ve işlenmesi. Problem Kayıt Dosyaları

SP_RENAMEDB eski_isim, yeni_isim VEYA SP_RENAMEDB 'eski isim', 'yeni isim'

VERİ TABANI YÖNETİM SİSTEMLERİ Melih BÖLÜKBAŞI

Coğrafi Bilgi Sistemlerine Giriş. Ünite 5 - Veri Tabanı Yönetim Sistemleri

Veritabanı sistemlerinde veri bütünlüğünü sağlayabilmek için CONSTRAINTS olarak adlandırılan bazı zorlayıcı ifadeler kullanılabilir.

Bölüm 1: Veritabanı Yönetim Sistemlerine Giriş

İngilizce'de Relational Database Management System (RDBMS) olarak ifade edilir.

SQL Deyimleri. Öğr.Gör.Volkan ALTINTAŞ Volkanaltintas.com

VERĐTABANI YÖNETĐM SĐSTEMLERĐ

Veritabanı Yönetim Sistemleri (Veritabanı Kavramı) Veri Modelleri

MİLLİ SAVUNMA ÜNİVERSİTESİ KARA HARP OKULU DEKANLIĞI BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ DERS TANITIM BİLGİLERİ

MİRSİS BİLGİ TEKNOLOJİLERİ LTD. ŞTİ. MİCROSOFT SQL SERVER VERİTABANI VE SORGULARI

Pursaklar İMKB Teknik ve Endüstri Meslek Lisesi

1 Temel Kavramlar. Veritabanı 1

Maltepe Üniversitesi Endüstri Mühendisliği Bölümü Veri Tabanı Yönetimi (END 210)

«BM364» Veritabanı Uygulamaları

İlişkisel Veri Tabanları I

Veritabanına Uygulanması

Veri Tabanı Programlamaya Giriş

Bilgisayar Mühendisliğine Giriş. Yrd.Doç.Dr.Hacer KARACAN

ÜNİTE NESNE TABANLI PROGRAMLAMA I. Uzm. Orhan ÇELİKER VERİTABANI SORGULARI İÇİNDEKİLER HEDEFLER

SAKLI YORDAM (Stored Procedure) Sibel Somyürek

Durhan GABRALI Veritabanı Organizasyonu Dersi (11B)

EBE-368 Veri Tabanı Yönetim Sistemleri SQL

VERİ TABANI SİSTEMLERİ

Veritabanı Yönetim Sistemleri, 2. basım Zehra ALAKOÇ BURMA, 2009, Seçkin Yayıncılık

SP_RENAMEDB eski_isim, yeni_isim VEYA SP_RENAMEDB 'eski isim', 'yeni isim'

TESİ. indeks. söylenebilir?? bir ilişkidir d) Hiçbiri. veya somutlaştırılmış. düzeyidir? sağlayabilir? sına. d) Hepsi. olabilir? c) Verilerin d) Hepsi

10-Veri Tabanları.

BMB202. Veritabanı Yönetimi Ders 5. İlişkisel Cebir ve SQL. Erdinç Uzun NKÜ Çorlu Mühendislik Fakültesi Bilgisayar Mühendisliği Bölümü

TEMEL SQL SORGU ÖRNEKLERİ. Yukarıdaki sorguyu yazıp çalıştırdığımızda db_market adında bir veritabanı oluşturulur.

20461C Querying Microsoft SQL Server Modül Seviye Belirleme Testi

SQL (Structured Query Language)

Oracle Database 11g: Introduction to SQL

ELIF KIOTZEOGLOU RESUL MURAD MERT PACOLARI

Tablolar Arası İlşikiler ve Alan Özellikleri. Şekil 1. Magaza veritabanının tabloları ve tablolar arasındaki ilişkiler

İNTERNET PROGRAMCILIĞI HAFTA. MYSQL ile VERİTABANI İŞLEMLERİ - 1. Hazırlayan Fatih BALAMAN. İçindekiler. Hedefler. Veritabanı Oluşturma, Silme

Bilgisayar Teknolojileri Bölümü Bilgisayar Programcılığı Programı. Öğr. Gör. Cansu AYVAZ GÜVEN

Yaptığımız web sitelerinin daha kullanışlı olması için veritabanı sistemleri ile bağlantı kurup ihtiyaca göre verileri okuyup yazmasını isteriz.

T.C. MALTEPE ÜNĠVERSĠTESĠ MÜHENDĠSLĠK FAKÜLTESĠ ENDÜSTRĠ MÜHENDĠSLĠĞĠ BÖLÜMÜ LĠSANS PROGRAMI Güz Yarıyılı

TRIGGER. Trigger lar, tablo üzerinde tanımlanabilen ve bu tablo üzerinde bir işlem gerçekleştiğinde tetiklenen programlama ögeleridir.

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

Elbistan Meslek Yüksek Okulu GÜZ Yarıyılı Ara Öğr. Gör. Murat KEÇECĠOĞLU

VERİ KAYNAKLARI. Bilgi sisteminin öğelerinden biride veri

Tablolar Arası İlşikiler ve Alan Özellikleri Siparis.musteri_no musteri.musteri_no Siparis.urun_kodu musteri.urun_kodu

Aşağıdaki şemaya dikkat edin. Sorgulamalarımızı genellikle bu şemaya göre yapacağız.

Aşağıdaki tabloyu inceleyin. Yeni kayıt girme, var olan bir kaydı silme veya güncelleme işlemlerini bu tabloya göre yapacağız.

VERİ TABANI YÖNETİMİ. Yrd.Doç.Dr. Füsun BALIK ŞANLI YTÜ

Veritabanı Uygulamaları Tasarımı

NoSql ve MongoDB. Saygın Topatan

Veritabanı Yönetim Sistemleri (Veritabanı Kavramı) İş Kuralları ve Veri Modelleri

DAO İLE SQL KOMUTLARI. Sql komutlarını artık veri tabanında kullanmaktan başka çaremiz yok arkadaşlar. Şimdi bu sql derslerimize başlayalım.

Transkript:

VERİ TABANI YÖNETİM SİSTEMLERİ Yrd. Doç. Dr. Fırat YÜCEL Akdeniz Üniversitesi Enformatik Bölümü

Ders Hakkında Dersin Kredisi : Veri Tabanı I : 3+1 Dersin Yarıyılı Derse Devam Veri Tabanı Yönetim Sistemleri : 3+0 : Güz : %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

Ders İçeriği o o o o o o o 1. Hafta: Veri Tabanlarına Giriş 2. Hafta: Veri Tabanı Sistemi Temel Kavramları ve Mimarisi 3. Hafta: İlişkisel Veri Modeli ve İlişkisel Veri Tabanı Kurulumu 4. Hafta: Veri Tabanı Tasarımı ve Normalizasyonu 5. Hafta: SQL (Yapısal Sorgulama Dili) 6. Hafta: SQL (Yapısal Sorgulama Dili) 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

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 teslim etmek Derste notlar almak, daha sonradan bu notları incelemek, üzerinde düşünüp anlamak, yeni fikirler üretmek Derste uygulamalara katılmak, varsa ders dışında bilgisayar ortamında ilgili program üzerinde uygulamaları tekrar etmek Ders öğretim üyesi ile sağlıklı bir iletişim ortamı kurmak Ofis E-Posta Sosyal ağ Web sitesi : firatyucel.com : Akdeniz Üniversitesi Enformatik Bölümü : fyucel@akdeniz.edu.tr

Veri Tabanı Sistemlerine Giriş Veri Tabanları ve Veri Tabanı Kullanıcıları

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,

Toplumların Gelişimi Tarım Sanayi Bilgi

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.»

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. Veri 10 bilgisayar Bilgi

Geleneksel Veri Tabanlarından Modern 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 ilaveten multimedya öğeleri de yer almaktadır. Resim Video Konum (Coğrafi Bilgi Sistemleri) Modern veri tabanı sistemlerinde ayrıca çok miktardaki verilerden (big data) çıkarımlar yapan «karar destek sistemleri» yer almaktadır.

Veri Tabanının Temel Nitelikleri Veri tabanı, gerçek dünyanın bir parçasıdır. Çoğu zaman «mini dünya» (miniworld) veya «söylem evreni» (universe of discourse, UoD) olarak adlandırılır. Veri tabanı, verilerin mantıksal olarak organize edilmiş halidir. Rastgele bir araya getirilmiş veriler, veri tabanı kavramı dışındadır. Veri tabanı, özel amaçlarla tasarlanan, oluşturulan ve üretilen verilerden oluşur.

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ı yetkilendiren bir program koleksiyonudur. DB DBMS Kullanıcı

DBMS nin İşlevleri 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. 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.

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. Veri tabanı tanımlamaları, bir katalog formunda DBMS içerisinde tutulur. Bu verilere «meta-data» adı verilir.

Uygulama Programı, Sorgu, İşlem Uygulama programı (application program), DBMS ye sorgular ve istekler göndererek veri tabanına erişim sağlar. Sorgu (query), genellikle veri tabanından bazı verilerin dönmesini sağlayan ifadelerdir. İşlem (transaction), veri tabanından bazı verileri okumak veya veri tabanına bazı verileri yazmak için yapılan işlemlerdir. Koruma (protection), DBMS nin diğer bir işlevidir. Zararlı yazılımlara karşı donanımsal veya yazılımsal sistem koruması önemlidir. Zaman zaman verilerin kaybına karşı veri tabanındaki verilerden yedekler alınması gerekmektedir. Bu işleme yedekleme (maintaining) denir.

Basitleştirilmiş Veri Tabanı Sistemi Kullanıcılar/Programcılar Veri Tabanı Sistemi DBMS Yazılımı Uygulama Programları/Sorguları İşlem Yazılımı Sorgular/Programlar Erişim Yazılımı Saklanan Veri Veri Tabanı Tanımlamaları (Meta-Data) Veri Tabanı

Bir Veri Tabanı Örneği Örnek olarak, UNIVERSITE adlı bir veri tabanı içerisinde yer alan OGRENCI, DERS, DONEM, SINAV_SONUC, ONKOSUL adlı 5 dosyada tutulan aynı türdeki verileri düşünelim. Bu veri tabanını tanımlamak için, her bir dosyada tutulacak kayı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şkiler belirlenmelidir.

Örnek Veri Tabanının Yapısı OGRENCI Ad Ogrenci_No Sinif Bolum Mehmet 17 1 YBS Ayşe 5 2 YBS DERS 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 ONKOSUL Ders_Kodu Onkosul_Kodu YBS201 ENF101 BIL203 ENF101 DONEM 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 SINAV_SONUC Ogrenci_No Donem_ID Not 17 85 AA 17 119 BB 5 85 AA 5 102 BA 5 119 CC

Ö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

Veri Tabanı Yaklaşımının Karakteristikleri Geleneksel dosya-tabanlı sistemlerde, her kullanıcı kendisi ile ilgili verileri tanımlayıp bağımsız bir dosyada saklar. Ancak aynı verilerin bir kısmı başka bir kullanıcı tarafından yine tanımlanmak zorundadır. Bu verilerin birbiriyle ilişkilendirilmesi için ise ayrı bir uygulama gereklidir. Problemler; Gereksiz yinelenen veriler Tutarsızlık Güvenlik sorunları Veri kaybı Veriye erişim zorluğu Uygulama geliştirmedeki güçlükler

Veri Tabanı Yaklaşımı Veri tabanı yaklaşımında, tanımlamalar en başta bir defaya mahsus gerçekleştirilir ve veri girişi tekrar yapılmaz. Bu veriler çok sayıda kullanı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

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) DBMS Yazılımı Veri Tabanı

Veri Tabanı Katalog Bilgilerine Bir Örnek İLİŞKİLER Relation_Name No_of_columns OGRENCI 4 DONEM 5 DERS 4 SINAV_SONUC 3 ONKOSUL 2 XXXXNNNN: 4 alfakarakter, 4 sayıdan oluşan biçim. ALANLAR (SÜTUNLAR) 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

Programlar, Veri ve Veri Tanımlamaları Arasında Yalıtım Geleneksel sistemlerde, veri dosyalarının yapısı uygulama programının içerisinde tanımlanır. Değişiklik gerektiğinde hem dosyaları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

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 ya da 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 aksama söz konusu olmaz. Bu durum program-işlem bağımsızlığı olarak adlandı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.

Verilere Çoklu Rapor Desteği Bir veri tabanı sisteminin birçok kullanıcısı vardır ve bu kullanıcılar farklı konularda verilerle ilgilenirler. Bu verilerden elde edilen raporlar (views) DBMS de her kullanıcı için oluşturulabilir. TRANSKRİPT (RAPOR ÖRNEĞİ) Ad Ders_Kodu Not Donem Yil Donem_ID Mehmet ENF101 AA Güz 16 85 YBS201 BB Güz 17 119 ENF101 AA Güz 16 85 Ayşe BIL203 BA Bahar 16 102 YBS201 CC Güz 17 119

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ına erişimine izin vermelidir. Aynı anda veri güncelleme istemlerinin, veri işlem kontrol uygulamalarıyla kontrol edilmesi gerekir. Bu uygulamalara, online transaction prosessing (OLTP) uygulamaları denir. Veriler üzerinde yapılan işlemlerin sonucu hakkında çıkarımda bulunan sistemlere ise online analytical processing (OLAP) uygulamaları denir.

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.

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.

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

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 Markup Language) 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

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

Veri Tabanı Sistemi Kavramları ve Mimarisi Veri Modelleri, Şemalar ve Olaylar Üç Şema Mimarisi İlişkisel Veri Tabanı

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 LAN veya WAN Veri isteği Döndürülen veri Sunucu (DBMS) Veri Tabanı İstemci 2 İstemci n

Veri Modeli Veri tabanının mimarisini tanımlamak için kullanılan kavramlar bü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ünyada tanı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 ortak nokta ve birleşmeyi ifade eder. Örneğin bir çalışan ile bir projeyi ilişkilendirme gibi. Varlık Nitelik İlişki

İlişkisel Veri Modeli (Relational Data Model) Tablo (Table) OGRENCİ Nitelik (Attribute) Kayıtlar (Records) Ad Ogrenci_No Sinif Bolum Mehmet 17 1 YBS Ayşe 5 2 YBS Varlık (Entity) Alanlar (Fields, Columns)

İ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

Birincil Anahtar ve Yabancı Anahtar Birincil Anahtar (Primary Key); bir tabloda her bir kayıt için verilen benzersiz 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 tabloda diğer tablodaki kayıtlarla ilişki kurulan alanlardır. #

Ö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

Örnek İlişkisel Veri Tabanı Tasarımı Ürün Adı Marka Özellikler KDV Oranı Müşteri Kodu Adı Soyadı E-Posta Barkod Ürün Adedi ÜRÜNLER Satış Fiyatı Alış Fiyatı N 1 Satış Sipariş Kodu N # Müşteri Kodu Telefon MÜŞTERİLER Şehir Adres Parola Sipariş Adedi SİPARİŞLER # Sipariş Durumu Sipariş Tarihi Ürün Barkodu Birincil Anahtar # Yabancı Anahtar

Örnek İlişkisel Veri Tabanı Tasarımı ÜRÜNLER 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 Birincil Anahtar # Yabancı Anahtar 18121 RAM OEM 4 GB DDR %18 50,22 75,91 30 MÜŞTERİLER Müşteri Kodu Adı Soyadı E-posta Parola Adres Şehir Telefon 1 Ahmet Akcan akcan@abc.com ****** Ak. Ün. Kampus Antalya 02423212212 2 Hatice Özay hozay@xyz.com ******* KYK Yurdu Kampus Antalya 05333333333 3 Salih Zafer zafer@hotmail.com ***** Dumlupınar Bulvarı Antalya 02423221112 SİPARİŞ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

UNIVERSITE Veri Tabanı için İlişkisel Model Ad Ogrenci_No Birincil Anahtar # Yabancı Anahtar # Ders_Kodu Donem Yil Bolum Sinif Donem_ID Ogr_Elemani OGRENCİ 1 N Değerlendirme DONEM 1 N N N seçer açılır belirlenir N 1 N 1 ONKOSUL SINAV_SONUC Ders_Kodu DERS Bolum # Ders_Kodu # Onkosul_Kodu # Ogrenci_No Not Ders_Ad Kredi # Donem_ID

Veri Tabanı Şema Diyagramı (Database Schema Diagram) Veri tabanındaki varlıkları, nitelikleri ve bunların birbiriyle ilişkisini gösteren şekillerdir.

Üç Şema Mimarisi (Üç Katman Mimarisi) İç Katman (İç Şema) Veri tabanının fiziksel saklama yapısını tanımlar. Kavramsal Katman (Kavramsal Şema) Veri tabanının veri modelini tanımlar, kullanıcı ile iç katman arasında iletişimi sağlar. Harici (Dış) Katman (Dış Şema) Veri tabanının kullanıcı grubunun erişimi için hazırlanan arayüzüdür.

Ö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ı

Temel SQL

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.

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

Ş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.

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;

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) );

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

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) 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. 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. 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. real -3.40E + 38 ile 3.40E + 38 arasında ondalıklı sayı. 4 bayt 5-17 bayt 5-17 bayt 4 veya 8 bayt

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.

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);

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

Alan Değişiklikleri Tabloya yeni bir alan eklemek için; ALTER TABLE Urunler ADD Fiyat DECIMAL(10,2); Tablodan bir alanı silmek için; ALTER TABLE Urunler DROP COLUMN Fiyat; Tablodaki bir alanı güncellemek için; ALTER TABLE Urunler ALTER COLUMN Fiyat MONEY;

Select-From-Where Yapısı Veri tabanından verileri getirmek amacıyla kullanılan sorgu deyimidir. Örnek: SELECT FROM WHERE <Nitelik Listesi> <Tablo Listesi> <Koşullar>; SELECT Adi, Soyadi FROM Ogrenci WHERE OgrNo = 20121105015 ; SELECT OgrNo FROM Ogrenci WHERE Adi = Mehmet AND Soyadi = Aslan ;

İ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

Ç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;

Çoklu Tablo İlişkileri Kurarak Sorgulama OGRENCILER DERSLER SINAVLAR OgrNo Adi Soyadi DersKodu DersAdi OgrNo DersKodu Notu Donem 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;

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 S WHERE 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;

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;

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;

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 sorgular oluşturmak mümkündür. LIKE ABC% LIKE %ABC LIKE %ABC% Metnin başında ABC yazan kayıtları bulur. Metnin sonunda ABC yazan kayıtları bulur. Metnin içinde ABC yazan kayıtları bulur. Bir örnek; SELECT * FROM Musteriler WHERE Adi LIKE %AL% ;

Aritmetik İşlemler Sorgular içerisinde +, -, *, / operatörleri kullanılarak aritmetiksel işlemler yapılabilir. SELECT FROM UrunAdi AS Ürün Adı, Adet 1 AS Kalan, Fiyat * 1.18 AS KDV Dahil Fiyat Urunler;

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

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

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 ;

Kayıt İşlemleri Kayıt Ekleme, Silme ve Güncelleme

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);

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 ;

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 ;

Kaynakça Fundamentals of database systems / Ramez Elmasri, Shamkant B. Navathe. 6th ed., 2010.