71
Veri Tabanı Yönetim Sistemleri I Dr. Öğr. Üyesi Fırat YÜCEL Akdeniz Üniversitesi Enformatik Bölüm Başkanlığı

Veri Tabanı Yönetim Sistemleri I · 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

  • Upload
    others

  • View
    14

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Veri Tabanı Yönetim Sistemleri I · 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

Veri Tabanı

Yönetim Sistemleri I

Dr. Öğr. Üyesi Fırat YÜCEL

Akdeniz Üniversitesi

Enformatik Bölüm Başkanlığı

Page 2: Veri Tabanı Yönetim Sistemleri I · 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

Ders Hakkında

Dersin Kodu ve Adı : YBS 201 Veri Tabanı Yönetim Sistemleri I (Zorunlu)

Kredisi : 3+0 Ulusal: 3 AKTS: 4

Sınav Ağırlıkları :

Ara Sınav (% 30)

Dönem Projesi (% 10)

Yarıyıl Sonu Sınavı (% 60)

Devam Koşulu : % 70 devam zorunlu

Yazılım : Microsoft SQL Server 17.x veya 18.x

Gerekli Malzemeler : Flash Bellek (>1 GB)

Derste not tutunuz.

Page 3: Veri Tabanı Yönetim Sistemleri I · 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

I. Bölümİlişkisel Veri Tabanının Temelleri

Page 4: Veri Tabanı Yönetim Sistemleri I · 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

Veri Tabanı

Veri tabanı (database), verilerin

belli bir kural ve sistematiğe göre

düzenlenmiş hallerine verilen

addır.

Örneğin;

Hasta veri tabanı

Dokümanlar veri tabanı

Kütüphane veri tabanı…

Page 5: Veri Tabanı Yönetim Sistemleri I · 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

İlişkisel Veri Tabanı

Günümüzde en yaygın kullanılan

veri tabanı, ilişkisel veri tabanı

(relational database) yaklaşımında

olan veri tabanlarıdır.

İlişkisel veri tabanı, verileri tablo adı

verilen listelerde saklayarak, listeler

arasında ilişkiler tanımlar. İlişkisel

kavramı buradan gelmektedir.

Page 6: Veri Tabanı Yönetim Sistemleri I · 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

İlişkisel Veri Tabanı Tarihçesi

İlişkisel veri tabanının kökeni, 1970’li yıllarda

IBM laboratuvarlarında E.F. Codd

tarafından yapılan çalışmalarda atılmıştır.

1983’te SQL (Structural Query Language)

standartları tanımlanmıştır.

1987’de önce ISO ardından da ANSI

tarafından standart olarak kabul edilmiştir.

ANSI SQL-92 standardı birçok veri tabanı

yönetim sisteminin kullandığı temel dildir.

Page 7: Veri Tabanı Yönetim Sistemleri I · 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

İlişkisel Veri Tabanı

Veriler birbiri ile ilişkili tablolarda saklanır.

Verilerin ayrı tablolara ayrılması ve bunların arasında ilişki

kurulması sayesinde daha fazla veriyi, daha az alanda

ve daha fazla yönetilebilir olarak saklamak mümkün olur.

Page 8: Veri Tabanı Yönetim Sistemleri I · 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

Veri Tabanı Yönetim Sistemi

Veri tabanı yönetim sistemi (Data Base Management

System, DBMS) ise, veri tabanlarının oluşturulması, verilerin

saklanması, içeriğinin düzenlenmesi, ilişkilendirilmesi,

güncellenmesi ve yetkili kişiler tarafından kullanılması için

araçlar sağlayan sistemlerdir.

DB DBMS

Kullanıcı

Page 9: Veri Tabanı Yönetim Sistemleri I · 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

Veri Tabanı Yönetim Sistemleri

Oracle database

IBM DB/2

Adaptive Server Enterprise

Informix

Microsoft Access

Microsoft SQL Server

Microsoft Visual FoxPro

MySQL

PostgreSQL

Progress

SQLite

Teradata

CSQL

OpenLink Virtuoso

Page 10: Veri Tabanı Yönetim Sistemleri I · 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

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 11: Veri Tabanı Yönetim Sistemleri I · 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

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 12: Veri Tabanı Yönetim Sistemleri I · 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

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.

Page 13: Veri Tabanı Yönetim Sistemleri I · 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

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.

Page 14: Veri Tabanı Yönetim Sistemleri I · 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

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

Page 15: Veri Tabanı Yönetim Sistemleri I · 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

Örnek İlişkisel Veri Tabanı Tasarımı

İnternet üzerinden ticaret yapılan büyük bir mağaza için veri tabanı tasarımı

yapalım.

Ürünler listesi

Müşteriler listesi

Satış işlemleri listesi

BİRİNCİL VE YABANCI ANAHTARLAR (INDEKSLER) HARİÇ HER VERİ EN FAZLA

BİR KEZ TUTULACAK!

Bunun için ilişkileri doğru bir şekilde belirlemek gereklidir.

Page 16: Veri Tabanı Yönetim Sistemleri I · 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

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

m

***** 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 17: Veri Tabanı Yönetim Sistemleri I · 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

Başka Bir İlişkisel 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.

Page 18: Veri Tabanı Yönetim Sistemleri I · 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

Öğrenci İşleri 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: Veri Tabanı Yönetim Sistemleri I · 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

Ö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: Veri Tabanı Yönetim Sistemleri I · 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

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

Page 21: Veri Tabanı Yönetim Sistemleri I · 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

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 22: Veri Tabanı Yönetim Sistemleri I · 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

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 23: Veri Tabanı Yönetim Sistemleri I · 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

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

Page 24: Veri Tabanı Yönetim Sistemleri I · 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

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 veritabanı tanımlamalarının bir parçası olarak tanımlayabilir.

DBMS’de, arayüz değişse de tanımlanan bu işlemlerdebir aksama söz konusu olmaz. Bu durum program-işlembağımsızlığı olarak adlandırılır.

Hem program-veri bağımsızlığı hem de program-işlembağımsızlığı özelliğini içeren karakteristik veri yalıtımı(data abstraction) olarak tanımlanır.

Page 25: Veri Tabanı Yönetim Sistemleri I · 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

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.

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 26: Veri Tabanı Yönetim Sistemleri I · 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

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.

Page 27: Veri Tabanı Yönetim Sistemleri I · 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

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 28: Veri Tabanı Yönetim Sistemleri I · 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

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 29: Veri Tabanı Yönetim Sistemleri I · 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

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 30: Veri Tabanı Yönetim Sistemleri I · 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

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 31: Veri Tabanı Yönetim Sistemleri I · 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

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: Veri Tabanı Yönetim Sistemleri I · 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

Veri Tabanı Sistemi Kavramları ve

MimarisiVeri Modelleri, Şemalar ve Olaylar

Üç Şema Mimarisi

İlişkisel Veri Tabanı

Page 33: Veri Tabanı Yönetim Sistemleri I · 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

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 34: Veri Tabanı Yönetim Sistemleri I · 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

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

Page 35: Veri Tabanı Yönetim Sistemleri I · 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

İ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 36: Veri Tabanı Yönetim Sistemleri I · 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

Ö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 37: Veri Tabanı Yönetim Sistemleri I · 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

Ö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 38: Veri Tabanı Yönetim Sistemleri I · 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

Ö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 39: Veri Tabanı Yönetim Sistemleri I · 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

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 40: Veri Tabanı Yönetim Sistemleri I · 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

Veri Tabanı Şema Diyagramı

(Database Schema Diagram)

Veri tabanındaki

varlıkları, nitelikleri ve

bunların birbiriyle ilişkisini

gösteren şekillerdir.

Page 41: Veri Tabanı Yönetim Sistemleri I · 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

Üç Ş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 42: Veri Tabanı Yönetim Sistemleri I · 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

Ö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 43: Veri Tabanı Yönetim Sistemleri I · 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

Temel SQL

Page 44: Veri Tabanı Yönetim Sistemleri I · 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

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 45: Veri Tabanı Yönetim Sistemleri I · 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

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 46: Veri Tabanı Yönetim Sistemleri I · 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

Ş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 47: Veri Tabanı Yönetim Sistemleri I · 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

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 48: Veri Tabanı Yönetim Sistemleri I · 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

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 49: Veri Tabanı Yönetim Sistemleri I · 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

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 50: Veri Tabanı Yönetim Sistemleri I · 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

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ılarp: 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 51: Veri Tabanı Yönetim Sistemleri I · 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

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 52: Veri Tabanı Yönetim Sistemleri I · 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

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 53: Veri Tabanı Yönetim Sistemleri I · 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

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 54: Veri Tabanı Yönetim Sistemleri I · 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

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;

Page 55: Veri Tabanı Yönetim Sistemleri I · 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

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 1:

SELECT Adi, Soyadi FROM Ogrenci WHERE OgrNo = ‘20121105015’;

Örnek 2:

SELECT OgrNo FROM Ogrenci WHERE Adi = ‘Mehmet’ AND Soyadi = ‘Aslan’;

Page 56: Veri Tabanı Yönetim Sistemleri I · 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

İ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 57: Veri Tabanı Yönetim Sistemleri I · 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

Ç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 58: Veri Tabanı Yönetim Sistemleri I · 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

Ç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 59: Veri Tabanı Yönetim Sistemleri I · 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

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;

Page 60: Veri Tabanı Yönetim Sistemleri I · 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

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 61: Veri Tabanı Yönetim Sistemleri I · 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

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 62: Veri Tabanı Yönetim Sistemleri I · 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

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%’ 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 63: Veri Tabanı Yönetim Sistemleri I · 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

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 64: Veri Tabanı Yönetim Sistemleri I · 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

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 65: Veri Tabanı Yönetim Sistemleri I · 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

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 66: Veri Tabanı Yönetim Sistemleri I · 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

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 67: Veri Tabanı Yönetim Sistemleri I · 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

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

Page 68: Veri Tabanı Yönetim Sistemleri I · 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

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 69: Veri Tabanı Yönetim Sistemleri I · 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

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 70: Veri Tabanı Yönetim Sistemleri I · 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

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 71: Veri Tabanı Yönetim Sistemleri I · 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

Kaynakça

Fundamentals of database systems / Ramez Elmasri, Shamkant B.

Navathe.—6th ed., 2010.