VERİ TABANI YÖNETİMİ Hafta1

Benzer belgeler
2-Veritabanı Yönetim Sistemleri/ Temel Kavramlar

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

SQL (Structured Query Language)

SQL (Structured Query Language)

Çok tablolu sorgulamalar

Veri Tabanı Örnekleri

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

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ü

BMB202. Veritabanı Yönetimi Ders 6. SQL. Erdinç Uzun NKÜ Çorlu Mühendislik Fakültesi Bilgisayar Mühendisliği Bölümü

Veritabanı. SQL (Structured Query Language)

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

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

Veri Tabanı Tasarım ve Yönetimi

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

Veri Tabanı SQL Server ve Management Studio kurulum linkleri:

SQL Komutları (2) Uzm. Murat YAZICI

SORGULAR VE ÇEŞİTLERİ II

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

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

3 Sql Veri Tipleri. Veritabanı 1

VERİTABANI. SQL (Structured Query Language)

SQL Kod ile Tablo Oluşturma

3. Hafta Tablo İşlemleri BPR255 Veritabanı. Bu Derste Öğrenecekleriniz: 1. Tablo İşlemleri Kısıtlamalar (Constraints)

Mysql Veritabanı Komutları

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

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

Veri Tabanı Programlamaya Giriş

VERİTABANI Veritabanı Yönetimi

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

SQL e Giriş. Uzm. Murat YAZICI

Veri Tabanı-I 1.Hafta

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

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

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

VERİTABANI Veritabanı Sorgulama

Veri Tabanı Hafta Dersi

3. Hafta Tablo İşlemleri BPR255 Veritabanı Yönetim. Bu Derste Öğrenecekleriniz: 1. Tablo İşlemleri

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

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

KISITLAMALAR (CONSTRAINT)

Durhan GABRALI Veritabanı Organizasyonu Dersi (11B)

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

Oracle da kullanılan veri tipleri:

Veritabanı ve Yönetim Sistemleri

Oracle Database 11g: Introduction to SQL

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

-- işareti tek satırlık açıklamalarda kullanılır. Açıklama olarak yazılan satırın önüne konulması yeterlidir.

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

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

1 Temel Kavramlar. Veritabanı 1

Veri Tabanı-I 1.Hafta

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

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

YAPISAL SORGULAMA DİLİ. BARIŞ ARIBURNU barisariburnu.com

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

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

«BM364» Veritabanı Uygulamaları

11TA Veritabanı Organizasyonu Dersi MS ACCESS Ders Notları

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

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

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

VERİ TABANI I. Yrd.Doç.Dr. İlker ÜNAL. Teknik Bilimler Meslek Yüksekokulu

ACCESS PLATFORMUNDA SQL

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

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

HASTANE OTOMASYONU VERİ TABANI YÖNETİM SİSTEMLERİ TEMEL VERİTABANI KAVRAMLARI

Veritabanı ve Yönetim Sistemleri

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

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

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

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

1. VERİ TABANI KAVRAMLARI VE VERİ TABANI OLUŞTUMA

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.

İNTERNET PROGRAMLAMA 2 A S P. N E T. Marmara Teknik Bilimler MYO / Hafta 5 Veri Tabanı İşlemleri

13 Aralık Đlgili Versiyon/lar : ETA:SQL, ETA:V.8-SQL. Đlgili Modül/ler : Raporlar. Kullanıcı Tanımlı Raporlar Bölümünden Yapabildiklerimiz

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

Veritabanına Giriş. Oğuzhan Ceylan. 19 Eylül 2011

10-Veri Tabanları.

SQL'e Giriş. SELECT Deyimi. SQL Komutları. 1. DDL (Data Definition Language - Veri Tanımlama Dili)

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

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

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

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

VERİ TABANI ve YÖNETİMİ

MICROSOFT ACCESS DERS NOTLARI

Basit SQL Sorguları Veritabanından verilerin SELECT cümleleri ile alınması işlemine sorgulama denir.

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

Access e Nasıl Ulaşılır. Araç çubuklarını yeniden düzenlemek için Görünüm komutunun Araç çubukları seçeneği kullanılır.

BİL Bilişim Teknolojileri. Access

Kets DocPlace LOGO Entegrasyonu

Veritabanı Uygulamaları Tasarımı

1. Hafta MS SQL Server 2008 Kurulum ve Tanıtımı BPR255 Veritabanı. Bu Derste Öğrenecekleriniz: Kurulum:

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

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

VERİ TABANI UYGULAMALARI

İLİŞKİSEL VERİTABANLARI

BİLİŞİM SİSTEMLERİNİN PRENSİPLERİ

VERİTABANI ve YÖNETİMİ

Transkript:

VERİ TABANI YÖNETİMİ Hafta1

Veri Tabanı Nedir? Birbiriyle ilişkisi olan verilerin tutulduğu, Kullanım amacına uygun olarak düzenlenmiş veriler topluluğunun, Mantıksal ve fiziksel olarak tanımlarının bulunduğu Bilgi depolarıdır.

Veri Tabanı Örnekleri Üniversite- Öğrenci İşleri Bilgi Sistemi Hastane-Hasta, doktor, tedavi, araç-gereç, mali bilgiler Ticari bir şirket-müsteri, Ürün, Satış, Ödeme, Teslimat bilgileri Banka-Müşteri, mevduat, kredi kartı, kredi bilgileri

Veri tabanı Veri tabanı kavramı ilk olarak 1980 li yıllar Basit bir web uygulamasından uluslararası kuruluşların büyük ve karışık verilerine kadar pek çok alanda veri tabanı uygulamalarına ihtiyaç durulmaktadır.

Veri Tabanı Yönetim Sistemi Nedir? Yeni bir veritabanı oluşturmak, Veri tabanını düzenlemek Kullanmak, Geliştirmek Bakımını yapmak için Çeşitli karmaşık işlemlerin gerçekleştirildiği bir yazılım sistemidir.

Veri Tabanı Yönetim Sistemlerinin Sınıflandırılması Veri Modeline Göre Hiyerarşik Ağ İlişkisel Nesneye Yönelik Kullanıcı Sayısına Göre Tek kullanıcılı Çok kullanıcılı

Hiyerarşik veritabanları Veri tabanları için kullanılan ilk modeldir Hiyerarşik veritabanları bilgileri bir ağaç yağısında saklarlar.

Ağ veritabanları Hiyerarşik veritabanları yetersiz kalınca 1960 ların sonunda verilerin ağaçların daha gelişmiş hali olan graflar şeklinde saklandığı yapı ortaya çıkmıştır.

İlişkisel veritabanları 1970 lerin başında geliştirilmiştir. Bu sistemde veriler tablo şeklinde saklanır. Tablolar arasındaki bağlantılar matematiksel ilişkilerle gösterilir. Günümüzdeki hemen hemen tüm veri tabanı programları bu yapıdadır.

İlişkisel veritabanları

Nesneye Yönelik veritabanları Günümüzdeki pek çok kelime işlemci ve hesap tablosu programında kullanılan nesneler artık veritabanlarında da kullanılmaktadır. Nesneye yönelik veritabanı C++ gibi nesneye yönelik bir dille oluşturulan ve yine bu tarz bir dille kulanılan veri tabanı anlamına gelir.

Neden veri tabanı kullanılır? Verilerin tutulması, saklanması ve erişilmesinde geleneksel yaklaşım verilerin ayrı ayrı dosyalarda gruplanması yaklaşımını kullanmaktadır. Verilerin artması, verilere aynı anda erişme ve düzenlenme ihtiyacı ile geleneksel yakaşım yetersiz kalmıştır.

Veri Tabanı Yaklaşımının Avantajları Ortak verilerin tekrarını önienmesi; Verilerin merkezi denetiminin ve tutarlılığının sağlanması Veri payiaşımının sağlanması Fiziksel yapı ve erişim yöntemi karmaşıklıklarının, çok katmanlı mimarilerle kullanıcıdan gizlenmesi, Her kullanıcıya yalnız ilgilendiği verilerin, alışık olduğu kolay, anlaşılır yapılarda sunulması

Veri Tabanı Yaklaşımının Avantajları Sunulan çözümleme, tasarım ve geliştirme araçları ile uygulama yazılımı geliştirmenin kolaylaşması. Veri bütünlüğünün gerekli olanakların sağlanması, Güvenlik ve gizliliğin istenilen düzeyde sağlanması Yedekleme, yeniden başlatma, onarma gibi işletim sorunlarına çözüm getirilmesi

Veri Tabanı Yönetim Sistemleri Oracledatabase IBM DB/2 Adaptive Server Enterprise Informix Microsoft Access Microsoft SQL Server Microsoft VisualFoxPro MySQL PostgreSQL Progress SQLite Teradata CSQL OpenLinkVirtuoso

Veri Tabanı Yapısı Veri tabanı Tablo Tablo Tablo Tablo Tablo 1 2 3 Alan 1 Alan 2 Alan3 Alan4

Tablo Bir veritabanı tablolarda saklanan verilerden oluşur. Tablolar verilerin satırlar ve sütunlar halinde düzenlenmesiyle oluşan veri grubudur. Örneğin ders içeriği ve öğrenci bilgilerini veritabanında saklamak için 2 tablo oluşturulur: Ogrenci_bilgileri icerik

Tablo Tablo içindeki her bir bilgi kayıt, Sütunlar ise alan olarak isimlendirilir. Örneğin öğrenci bilgileri tablosunda Öğrenci numarası, adı soyadı, doğum tarihi, doğum yeri, e-mail adresi bilgileri yer alacaksa

Tablo Alan Ogr_no Ad_soyad d_tarih d_yeri e-mail 1 Ayşe Öztürk 01.11.1979 Konya ayse@gazi.edu.tr 2 Sema Özdemir 24.05.1975 Ankara sema@gazi.edu.tr Alan 3 Serdar Gülpınar 06.06.1983 Adana serdar@gazi.edu.tr 4 Mehmet Efe 11.02.1978 Niğde mehmet@gazi.edu.tr 5 Zerrin Polat 22.08.1980 Antalya zerrin@gazi.edu.tr 6 Ulviye Kubalı 12.12.1984 İstanbul ulviye@gazi.edu.tr Kayıt

Veri Türleri Veri tabanında tutulan kayıtların yapısı hakkında bilgi sahibi olmak için Alanların bazı özelliklerinin önceden tanımlanması gerekir. Örneğin personel sicil numarası mutlaka tam sayı, ad soyad harflerden oluşması gibi

Anahtar (Key) Anahtar bir veya birden fazla alanın bir satır için niteleyici olarak girilmesi için zorlanan bir çeşit zorlayıcıdır. 2 çeşit anahtar vardır: Birincil Anahtar (Primary Key) Yabancı Anahtar (Foreign Key)

Birincil anahtar Bir kayıta ulaşmayı sağlayacak anahtar veridir. Örneği öğrenciler arasında iki Ahmet var. Arama yaparken istediğimiz Ahmet i bulmak için her bir öğrenciye özel bir numara olmalıdır. Örneğin öğrenci numarası Birden fazla alanda birlikte birincil anahtar olabilir

Yabancı anahtar Bir tabloya girilebilecek kayıtları başka bir tablonun belli alanındaki verilerle sınırlandırmaya ve ilişkilendirmeye yarar. Örneğin öğrencilerin not verilerinin girildikleri tablodaki her satıra öğrenci bilgileri tablosundaki öğrenci no ile eşleşen bir değer girilmesi gibi.

Veri tabanı Tasarlama 1. Nesneler tanımlanır Kütüphane sistemi: kitap, üyeler, türler, ödünç hareketleri

Veri tabanı Tasarlama 2. Her nesne için bir tablo oluşturulur. kitap, uyeler, turler, odunc_hareketleri

Veri tabanı Tasarlama 3. Her tablo için bir anahtar alan seçilir Kitap tablosu: kitapno Üyeler tablosu: uyeno

Veri tabanı Tasarlama 4. Nesnelerin her bir özelliği için tabloya sütun eklenir Kitap tablosu: kitapno, yılı, yazarı, adı, ilgili olduğu alan

Veri tabanı Tasarlama 5. Tekrarlayan nesne özellikleri için ek tablolar oluşturulur. İstek tablosu uyeno İstek _tarihi Kitap_adi Kitap_yili Kitap_yazari ilgili _alan

Veri tabanı Tasarlama 6. Tablo ile doğrudan ilişkili olmayan alanlar belirlenir. Ödünç hareketleri tablosunda kitabı ödünç alan üyenin adresi doğrudan bu tablo ile ilişkili değildir. Bu veri üye bilgilerinin tutulduğu uyeler tablosunda yer almalıdır.

Veri tabanı Tasarlama 7. Tablolar arasındaki ilişkiler tanımlanmalıdır. Tanımlanan tablodaki alanların birbiri ile ilişkisi tanımlanır. Örneğin uyeler tablosundaki uyeno ile odunç_tablosundaki uyeno alanı ilişkilendirilmelidir.

Kaynaklar Köseoğlu, K. (2005). Veri Tabanı Mantığı. Şefik Matbaası. İstanbul Alokoç Burma, Z. (2005). Veritabanı Yönetim Sistemleri ve SQL / PL -SQL / T SQL. Seçkin Yayıncılık. Ankara

Veritabanı/ Temel Kavramlar Hafta 2

Veritabanı neden kullanılır? Veritabanının amacı; insanların ve organizasyonların birşeyleri takip edebilmesine yardımcı olmaktır.

Veritabanı neden kullanılır? Veritabanını kullanmaksızın birşeylerin kaydını tutmak için listeler kullanılır. Alışveriş listesi, Yapılacak işler listesi, Ödenen faturaların listesi

Veritabanı neden kullanılır? Listeler; Müsteri adı Mesleği Firma Adres Fiyat Ahmet mimar A Çanakkale Cad. 43/5 1000 YTL Sema öğretmen B Kayabaşımah. A Blok 8/4 250 YTL Serdar mühendis C Gazi Mah 6/7 350 YTL Zerrin emekli B Kayabaşımah. A Blok 8/4 Mehmet Öğretim elemanı B Kayabaşımah. A Blok 8/4 700 YTL 1200 YTL Defne Doktor D Gazi Mah 6/7 100 YTL Elif avukat A Çanakkale Cad. 43/5 150 YTL

Veritabanı neden kullanılır? Listelerle ilgili problemler; Örneğin B firmasının adresi değişti 3 satırdaki adres bilgisi de değişmeli Eksik kalırsa bilgi tutarsızlığı oluşur Hem zaman kaybına hem de hataya neden olabilir.

Veritabanı neden kullanılır? Listelerle ilgili problemler; Örneğin A firması artık sizin şirketinizle çalışmıyor, Listeden firmayla ilgili kaydı silerseniz ürün satışı yapılan müşteri bilgisini ve firma adresi gibi bilgileri kaybedersiniz.

Veritabanı neden kullanılır? Paylaşılan verilerle ilgili problemler; Örneğin şirketinizin farklı departmanlarının firma bilgisini görüntülemesi gerekiyor; İletişim departmanı: firma, adresi Pazarlama departmanı: firma, fiyat Müşteri hizmetleri: müşteri adı, mesleği, firma

Veritabanı neden kullanılır? Paylaşılan verilerle ilgili problemler; Bu bilgilerin tamamının tüm departmanlarla paylaşılması ise farklı nedenlerden dolayı sakıncalıdır Güvenlik Müşteri gizliliği vb.

Veritabanı neden kullanılır? Listeler oluşturmanın en büyük sakıncası farklı temalarla ilgili bilgileri bir arada bulundurmasıyla ilgilidir. Örneğin bir yazılı doküman oluşturulurken farklı temalar için farklı paragraflar oluşturulur,

Veritabanı neden kullanılır? Benzer şekilde farklı temalardaki bilgilerin farklı tablolara yerleştirilmesi süreci normalizasyon olarak adlandırılır. Biraz önceki liste için; Müşteriler Çalışılan firmalar Satış bilgileri gibi

Veritabanı neden kullanılır? Müşteriler Müsteri adı Ahmet Sema Serdar Zerrin Mehmet Defne Elif Mesleği mimar öğretmen mühendis emekli Öğretim elemanı Doktor avukat

Veritabanı neden kullanılır? Çalışılan firmalar Firma Adres A Çanakkale Cad. 43/5 B Kayabaşımah. A Blok 8/4 C Gazi Mah 6/7 D Gazi Mah 6/7

Veritabanı neden kullanılır? Satış bilgileri Fiyat 1000 YTL 250 YTL 350 YTL 700 YTL 1200 YTL 100 YTL 150 YTL

Veritabanı neden kullanılır? Farklı temalar farklı tablolara yerleştirildiğinde, Değişen bilgiler, Silinen bilgiler ve Paylaşılan bilgilerle ilgili problemlerin çoğu ortadan kalkar.

Veritabanı neden kullanılır? Farklı temalar farklı tablolarda yer aldığında; Hangi müşteri hangi firmadan ürünü almış gibi soruları cevaplamak için ilişkilerin kurulması gereklidir.

Veritabanı neden kullanılır? İlişkiler Müşteri No Firma No Fiyat Müşteri No Müsteri adı Mesleği 1 Ahmet mimar 2 Sema öğretmen 3 Serdar mühendis 4 Zerrin emekli 5 Mehmet Öğretim elemanı 6 Defne Doktor 7 Elif avukat 1 1 1000 YTL 2 2 250 YTL 3 3 350 YTL 4 2 700 YTL 5 2 1200 YTL 6 4 100 YTL 7 1 150 YTL Firma No Firma Adres 1 A Çanakkale Cad. 43/5 2 B Kayabaşımah. A Blok 8/4 3 C Gazi Mah 6/7 4 D Gazi Mah 6/7

Veritabanı neden kullanılır? İlişkiler Müşteri No Firma No Fiyat Müşteri No Müsteri adı Mesleği 1 Ahmet mimar 2 Sema öğretmen 3 Serdar mühendis 4 Zerrin emekli 5 Mehmet Öğretim elemanı 6 Defne Doktor 7 Elif avukat 1 1 1000 YTL 2 2 250 YTL 3 3 350 YTL 4 2 700 YTL 5 2 1200 YTL 6 4 100 YTL 7 1 150 YTL Firma No Firma Adres 1 A Çanakkale Cad. 43/5 2 B Kayabaşımah. A Blok 8/4 3 C Gazi Mah 6/7 4 D Gazi Mah 6/7

Veritabanı neden kullanılır? Tabloları birleştirmek Peki baştaki bütüncül listeyi elde etmek için ne yapılır? SQL dilinden faydalanılır.

Veritabanı yönetim sistemi nedir? Veri tabanı sisteminin bileşenleri; Veritabanı Uygulaması Veritabanı Yönetim Sistemi Veritabanı Kullanıcı

Veritabanı yönetim sistemi nedir? Kullanıcı: İşlerini gerçekleştirmek için veritabanını kullanır, Yeni veri ekler, Mevcut verileri değiştir, Verileri siler, Formlar, sorgular ya da raporlar yoluyla verileri okur

Veritabanı yönetim sistemi nedir? Veri Tabanı Uygulaması: Veri tabanı yönetim sistemi ile kullanıcı arasında iletişimi sağlayan bir ya da birden fazla bilgisayar programıdır. Formlar, sorgular ve raporlar oluşturur, Kullanıcıdan verileri alır ya da kullanıcıya verileri gönderir, Kullanıcı davranışlarını veri tabanı yönetim sisteminden veri yönetim etkinliği için isteklere dönüştürür.

Veritabanı yönetim sistemi nedir? Veri Tabanı Yönetim Sistemi: Uygulamadan gelen istekleri alarak bunları veri tabanı dosyaları üzerinde verileri okuyarak ya da veri yazarak gerçekleştirir, SQL cümlelerini okur ve bu ifadeleri bilgisayarın işletim sisteminin veritabanı dosyaları üzerinde verileri okuyacağı ya da yazacağı yönergelere dönüştürür.

Veritabanı yönetim sistemi nedir? İşlevler Veri Tabanı Uygulaması Veri Tabanı Yönetim Sistemi

Veritabanı yönetim sistemi nedir? Veri Tabanı Uygulaması: 1. Formlar oluşturur ve formları işler, 2. Sorgular oluşturur ve sorgular iletilir, 3. Raporlar oluşturur ve raporları işletir, 4. Uygulama mantığını gerçekleştirir, 5. Uygulamayı kontrol eder.

Veritabanı yönetim sistemi nedir? Veri Tabanı Uygulaması: 1. Formlar oluşturur ve formları işler, Örneğin web temelli bir uygulamada; Kullanıcının bilgisayarında görüntülenecek HTML ve diğer web biçimlerini oluşturur, Kullanıcı formları doldurarak verileri geri yolladığında VTYS ne gerekli düzenlemelerle ilgili istekleri gönderir. Süreçte bir hata meydana gelirse, hatalara ulaşır ve kullanıcıya gerekli mesajı gösterir ve/veya gerekli işlemleri gerçekleştirir.

Veritabanı yönetim sistemi nedir? Veri Tabanı Uygulaması: 2. Sorgular oluşturur ve sorgular iletilir, VTYS ne iletilecek sorguyu üretir, Bu istekler genellikle SQLile ifade edilir, Sorgu işletilince, sonuçlar biçimlendirilir ve kullanıcıya iletilir,

Veritabanı yönetim sistemi nedir? Veri Tabanı Uygulaması: 3. Raporlar oluşturur ve raporları işletir, VTYS densorgular aracılığıyla veri istenir ve sorgu sonuçları raporlar biçiminde sunulur,

Veritabanı yönetim sistemi nedir? Veri Tabanı Uygulaması: 4. Uygulama mantığını gerçekleştirir, Örneğin kullanıcı 10 birimlik bir istekte bulundu ancak stokta 8 birim bulundu, Ne olacağı programın mantığına bağlıdır, Uygun mantığın gerçekleştirilmesi uygulama programının görevidir.

Veritabanı yönetim sistemi nedir? Veri Tabanı Uygulaması: 5. Uygulamayı kontrol eder

Veritabanı yönetim sistemi nedir? Veri Tabanı Yönetim Sistemi: 1. Veritabanını oluşturmak, tabloları oluşturmak, 2. Veritabanından veri okumak ve verileri güncellemek, 3. Veri değerlerine ilişkin sınırlamaları gerçekleştirmek, 4. Bir kullanıcının işleminin diğer kullanıcıyı engellemesini önlemek, 5. Kullanıcıların yetkileri ölçüsünde etkinlikte bulunmalarına izin vermek, 6. Veri tabanındaki verileri yedekleme.

Veritabanı Veri Tabanı: İlişkili kayıtlardan oluşan veri depolarıdır. Üst veri (metadata) indeks saklı yordam (stored procedure) tetikleyici (trigger) veri tutarlılığı (referential integrity)

Veritabanı Veri tabanının yapısı hakkındaki verilere metadata adı verilir. Tablo isimleri Sütun isimleri Tablo ve sütunların özellikleri vb.

Veritabanı Metadata örneği: Tablo no Tablo adı Sütun sayısı Satır sayısı 1 Müşteriler 3 7 2 Firmalar 3 4 3 Satışlar 3 7 Sütun no Sütun adı Veri türü Uzunluğu Tablo no 1 id int 4 1 2 Mus_adi char 50 1 3 meslegi char 50 1

Veritabanı Bazı veritabanları uygulama üst verisi içerir. Bu üst veriler, formlar ve raporlar gibi uygulama bileşenlerini tanımlar. VTYS ininveritabanının yapısını göstermek için çeşitli araçları vardır.

Veritabanı Aynı zamanda veritabanlarında veritabanının performansını artırmak için kullanılan indeksler vardır. Indekslerhangi kayıtların hangi tablolarda bulunduğunu gösteren kitapların başındakine benzer bir mantığı olan araçlardır.

Veritabanı Saklı yordamlar derlenmiş sqlcümlecikleridir. Birer veritabanı nesnesi oldukları için, doğrudan veritabanı yöneticisi olan programda yer alırlar. Örneğin bir tablodaki verilerin yedeğini alan ya da 1 yıldan fazla zaman geçen verilerin yedeğini kaldıran saklı yordamlar oluşturulabilir.

Veritabanı Saklı yordamlar bir tabloya bağlı olmaksızın veritabanı içinde tanımlanan belirli bir işi yapmaya yönelik kodlardır. Bu kodlar yazıldığı zaman aynı zamanda derlendikleri için optimize edilmiştir ve en hızlı şekilde çalışmaya hazır kodlardır.

Veritabanı Bir tablo üzerinde belirli bir olaya bağlı olarak tetiklenip çalışan SQL kodlarına tetikleyici (trigger) denir. Tablo üzerindeki triggerlarıtetikleyen olaylar insert, update, delete olaylarıdır.

Veritabanı Örneğin stok hareketleri sonucunda stok miktarlarının azalması veya artması işlemlerinin yapılması tipik bir trigger kullanım yeridir.

Veritabanı Hem tetikleyici hem de saklı yordamlar veritabanı üzerindeki kodlar olmaları sebebi ile veritabanını sunan sunucu üzerinde çalışırlar. İstemci&Sunucu mimarinin güçlü bileşenlerindendir. İstemci&Sunucu mimarideki SQL veritabanları tarafından desteklenmektedir. Oracle, Sybase, MS SQL, Interbase, FireBird vb.

Veritabanı Verilerin bulunduğu sunucu üzerinde çalışmalarından dolayı veriler istemci ile sunucu arasında gidip gelmezler ve de sunucudan istemci tarafına minimum veri çekilmiş olur.

Veritabanı İlişkisel bir veritabanında PERSONEL tablosundaki kişinin bölüm bilgisinin BOLUM_NO değişkeninde tutulduğunu ve bölümün adının da BOLUM tablosunda bulunduğunu düşünelim.

Veritabanı Eğer 1 numaralı bolum herhangi bir personelde kullanıldıysa BOLUM tablosundan BOLUM_NO değeri 1 olan kaydın kesinlikle silinememesi gerekmektedir. Bu tür kontrollerin yapılarak veri bütünlüğünün korunmasına veri tutarlılığı (referential integrity) denir.

Veritabanı Veri tutarlılığını sağlamak amacı ile trigger kullanımı çok tercih edilir.

Veri Tabanı Sistemleri 3 tür veri tabanı sistemi olabilir: Tek bir kişi tarafından kullanılan, Küçük çaplı işletmeler tarafından kullanılan, Büyük uluslar arası şirketler tarafından kullanılan

Veri Tabanı Sistemleri Tek bir kişi tarafından kullanılan, Boyacı Kimlerin evi, ne zaman, ne kadar boyandı? Boyamada nereler boyandı, hangi renk ve stiller kullanıldı? Kimler başkalarına referans oldu? Referansla gelen kimler?

Veri Tabanı Sistemleri Tek bir kişi tarafından kullanılan,

Veri Tabanı Sistemleri Tek bir kişi tarafından kullanılan,

Veri Tabanı Sistemleri Tek bir kişi tarafından kullanılan,

Veri Tabanı Sistemleri Küçük çaplı işletmeler tarafından kullanılan, Kiralanan müzik enstrümanları neler?kaça kiralandı? En çok hangi müzik enstrümanları kiralanıyor? Kiralamayı kim yaptı? (çok kullanıcılı veritabanı) Aynı anda aynı enstrüman iki farklı satıcı tarafından seçilememeli!

Veri Tabanı Sistemleri Küçük çaplı işletmeler tarafından kullanılan,

Veri Tabanı Sistemleri Küçük çaplı işletmeler tarafından kullanılan,

Veri Tabanı Sistemleri Küçük çaplı işletmeler tarafından kullanılan,

Veri Tabanı Sistemleri Küçük çaplı işletmeler tarafından kullanılan,

Veri Tabanı Sistemleri Büyük uluslar arası şirketler tarafından kullanılan, Sürücü lisansı veren ve otomatik kayıt bürosu 52 farklı merkezi var Kişilerin kazaları, trafik ihlalleri tutuluyor, Lisans yenilenebilir mi, herhangi bir sınırlama var mı? 100 lerce kişi tarafından veritabanı kullanılıyor Lisans ve kayıt personeli Kanun yaptırımlarını takip edenler Maliye departmanı personeli Haftada 7 gün 24 saat ulaşılabilmeli

Veri Tabanı Sistemleri Büyük uluslar arası şirketler tarafından kullanılan,

SqlServer ile Çalışma Hafta 3

SQL Server Authentication ile veritabanına bağlanma Server Typeile veritabanıdışında, analiz, raporlama ve entegrasyon servislerine de bağlanabilirsiniz. Başka bir bilgisayardaki veritabanımotoruna veya servislere bağlanmak için Server Name seçeneği kullanılır.

SQL Server Management Studio, Visual Studio ile benzer bir arayüz sunmaktadır. Sol taraftaki Nesne Gezgini penceresi ile veritabanı nesnelerine erişilebilir ve değişiklik yapılabilir. "Databases" altında "System Databases" ve onun altında ise 4 tane sistem veritabanı yer alır. Bu veritabanları üzerinde de tablo yaratılabilse de genellikle bu tercih edilmez. Kendi tablolarımızı saklamak üzere yeni bir veritabanı oluşturmak için "Databases" üzerine sağ tıklanıp açılan menüden "New Database" seçilir. NOT: Bu menüdeki "Attach" daha önce yaratılmış olan bir SQL Server veritabanına bağlanmak için, "Restore Database" ise yedeği (backup) alınmış veritabanını geri getirmek için kullanılır.

Veritabanının Genel Özellikleri Veritabanı ismi girildikten sonra bu veritabanı için bir sahip belirlenmek istenirse "owner" kısmına yazılabilir. 2 tane veritabanıdosyası bu listeye varsayılan olarak eklenir: 5 MB büyüklüğünde ve "ROWS Data" türünde olan ilk dosya tabloları, 1 MB büyüklüğünde ve "LOG" türünde olan ikincisi ise günlük bilgilerini saklayacaktır. İstenirse aşağıdaki "Add" düğmesi ile yeni dosyalar eklenebilir. Dosyaların başlangıç boyutu ise liste üzerinden değiştirilebilir.

Seçenekler Seçenekler (Options) altında veritabanının dil ayarlarını, önceki sürümler ile uyumluluğunu, otomatik olarak yapılması gereken işlemleri, vs. ayarlayabileceğiniz seçenekler yer alır. Son kullanıcı da çıkınca otomatik kapansın mı? Veritabanından büyük miktarda veri silindiğinde dosya boyutu küçülsün mü? (başlangıç boyutunun altına inemez) Ayrıntılı bilgi için: http://msdn.microsoft.com/enus/library/ms188124.aspx

Bir tablo yaratmak için seçilen veritabanı altında "Tables" üzerine sağ tıklanarak açılan menüden "New" + "Table" seçilirse tablo tasarımı (table design) görünümüne geçilir (bak. sonraki slayt)

Tablo Tasarımı Görünümü ve Birincil Anahtar Belirleme Tablonun alan isimleri ve veri tiplerinin belirlendiği tasarım görünümünde birincil anahtar oluşturmak için, ilgili alan veya alanlar seçilip üzerlerine sağ tıklanarak, çıkan menüden (bu menü tasarım görünümüne geçildiğinde beliren TableDesigner menüsünün aynısıdır) "Set Primary Key" seçilebilir. Kaydetme ikonu tıklanıp (veya Ctrl+S) açılan pencereye tablonun ismi (Öğrenciler) yazılarak kaydedilir.

Tabloyu kaydettikten sonra bir değişiklik yapmak istediğinizde aşağıdaki uyarı mesajı ile karşılaşabilirsiniz: Tools / Options menüsü, Designers altında yer alan aşağıdaki seçeneğin kaldırılması ile bu durum düzeltilebilir:

Dış anahtar belirleme Dış anahtar belirlemek için "Table Designer" altındaki "Relationships" menüsü kullanılabilir. Notlar ve Dersler tabloları da oluşturulduktan sonra, Notlar tablosunun tasarım görünümünde iken "Relationships" tıklanırsa aşağıdaki pencere gelir: Add tıklanarak dış anahtar ilişkisi oluşturulur ve bağlanacağı tabloyu belirlemek için" Tables And Columns Sepecification" kullanılır.

Dış anahtar belirleme (devam) İlişkinin PK tarafı için ilgili tablo (Dersler) ve o tablodaki ilgili sütun (DersKodu) seçimleri yapılarak, FK tarafı için de Notlar tablosundan bağlantılı olacak sütun (Ders) seçilir: Daha önce FK_Notlar_Notlar olan ilişki ismi Dersler tablosu seçilince FK_Notlar_Dersler olarak değişir (Öğrenciler seçilirse FK_Notlar_Öğrenciler olur)

Bilgi tutarlılığını sağlamak için: Access'teki Bilgi Tutarlılığına Zorla altında yer alanilişkili Alanları Art Arda Sil/Güncelleştirseçeneklerini kullanarak yaptığımız işlemin benzeri INSERT And UPDATE Specificationseçeneğinin Delete Ruleve Update Rule alanları Cascade seçilerek yapılabilir. PK tarafında silinen bir kaydın FK tarafındaki ilişkili olduğu kayıtlar silinmeyip, "Set Null" ile ilgili alan boş bırakılabilir veya "Set Default" ile varsayılan değer ile doldurulabilir.

Nesne Gezginini Kullanma Nesne gezgini üzerinde her tablonun altında Columns, Keys, Constraints, Triggers, Indexesve Statisticsadında düğümler bulunur. Bir tablonun üzerine sağ tıklayıp açılan menüden "Design" seçilirse (veya herhangi bir sütun isminin üzerine sağ tıklayıp "New Column" veya "Modify" seçilirse) tasarım görünümüne geçilir. Keysdüğümüne sağ tıklayıp açılan menüden "New ForeignKey" seçilirse önce tasarım görünümü açılır, sonra önceki slaytlarda gördüğümüz "ForeignKeyRealationships" penceresi gelir. Constraintssağ tıklanıp "New Constraint" seçilirse "CheckConstraints" adında bir pencere gelir (bak sonraki slayt) Triggers, Indexesve Statisticshakkında sonraki derslerde bilgi verilecektir.

Check Constraint Check constraints penceresinin Expression alanına gireceğimiz koşul ile bir alana girilecek veriye sınırlama (constraint) getirebiliriz. NOT: Aslında PK, FK ve Not Null da sınırlamadır. Haftaya değineceğiz.

Sorgu Penceresi Araç çubuğundaki "New Query" simgesi (veya bir veritabanı sağ tıklanıp menüden "New Query") ile sorgu penceresi açılabilir. Eğer DML ifadeleri yazıldı ise Execute tıklandıktan sonra her ifade için etkilenen satır sayısı "Messages" sekmesinde belirtilir. Eğer bir sorgu yazıldı ise Execute tıklandıktan sonra "Results" sekmesinde sorgunun sonucu gösterilir.

Select Top 1000 Rows Edit Top 200 Rows Bir tablonun üzerine sağ tıklayıp "Select Top 1000 Rows" seçilirse, yanda görüldüğü gibi bir sorgu otomatik olarak yazılıp çalıştırılır. Bir tablonun üzerine sağ tıklayıp "EditTop 200 Rows" seçilirse, aşağıda görüldüğü gibi veri girişi için ekleme, silme ve değiştirme yapılabilen bir tablo gelir.

Diagram Diagramnesneleri Access'teki İlişkilergörünümü gibi tablolar arası ilişkilerin gösterildiği bir çizelgedir. Dış anahtar ilişkileri Access'te olduğu gibi buradaki tablolar arasında sürükle bırak yöntemi ile yapılabilir.

Sql Server Veri Tipleri Tam Sayı ve Kesirli Sayı Veri Tipleri; BigInt-8 bayt yer kaplar ve en geniş aralığı olan sayısal veri tipidir. Int-4 bayt yer kaplar ve en çok kullanılan sayısal veri tipidir. Smallint-2 bayt yer kaplar. Tinyint- 0-255 arasında 1 bayt yer kaplar. Bit-0 veya 1 değerini alır True yada False olarak kullanılır. Decimal- Ondalık veya tam sayıları tutar. Genelde ondalık sayı olduğunda kullanılır. Money- Bellekte 8 byte yer kaplar ve parasal değerleri tutmak için kullanılır. SmallMoney-4 bayt yer kaplar ve küçük miktardaki parasal değerleri tutmak için kullanılır. Real- Hassas değerli ondalıklı sayıları tutar. Boyutu en büyük olan kesirli sayı tipidir. Float-Bu veri tipi de real gibi hassas ondalıklı veri tiplerini tutar. Ancak boyutu Real in yarısı kadardır.

Sql Server Veri Tipleri Tarih Veri Tipleri; DateTime-1 Ocak 1753 ile 31 Aralık 9999 tarihleri arasında veri alır. Bellekte 8 byte yer kaplar. DateTime2-1 Ocak 0001 ile 31 Aralık 9999 tarihleri arasında veri alır. Bellekte 8 byte yer kaplar ve 100 nano saniye hassasiyetinde tarih tutabilir. SmallDateTime- 1 Ocak 1900 ile 6 Haziran 2079 tarihleri arasındaki verileri alır. Date-1 Ocak 0001 ile 31 Aralık 9999 tarihleri arasında veri alır. Ancak sadece tarih verisini tutar. Time- 100 nano saniye hassasiyetinde saat verilerini tutar. DateTimeOffset-Normal datetime aralığında veri alır ek olarak bölgeye bağlı olan saat farkını da tutar.

Sql Server Veri Tipleri Unicode Desteği Olmayan Karakter Veri Tipleri ; Char-En fazla 8000 karakter alabilen ve girilecek verinin uzunluğu belli olduğunda kullanılır. Unicode desteği yoktur. VarChar-Bu da char gibi en fazla 8000 karakter alabilen ancak girilecek verinin uzunluğu belli olmadığında kullanılır. Unicode desteği yoktur. VarChar(Max)-En fazla 2 GB boyutuna kadar karakter verisi alır. (Max) bölümüne sayısal değer yazarsak VarChar veri tipinin maksimum uzunluğu o sayı kadar olur. Unicode desteği yoktur. Text-En fazla 2,147,483,647 karakter uzunluğunda değer alabilen veri türüdür. Unicode desteği yoktur.

Sql Server Veri Tipleri Unicode Desteği Olan Karakter Veri Tipleri ;Unicode nedir? Bilgi İçin (http://www.unicode.org/standard/translations/turkish.html) NChar-En fazla 4000 karakter tutan ve Unicode desteği olan veri türüdür ve gireceğimiz karakter sayısı belli ise bu kullanılır. NVarChar-En fazla 4000 karakter alır ve Unicode desteği olan veri türüdür ayrıca gireceğimiz karakter sayısı belli olmadığında kullanılır. NVarChar(Max)-En fazla 2 GB boyutuna kadar karakter verisi alır. (Max) bölümüne sayısal değer yazarsak VarChar veri tipinin maksimum uzunluğu o sayı kadar olur. Unicode desteği vardır. NText-En fazla 2,147,483,647 karakter uzunluğunda değer alabilen veri türüdür. Unicode desteği vardır.

Sql Server Veri Tipleri Binary Veri Tipleri ;Sql de dosyaları saklamak için kullanılır.türleri şunlardır; Binary- En fazla 8000 bytelık veri saklar. VarBinary-En fazla 8000 bytelık veri saklar ve girilecek byte miktarı değişken olduğunda kullanılır. VarBinary(MAX) -En fazla 2 gb boyutunda veri alabilir. (MAX) değerine 2 GB dan az olmak şartı ile boyut belirtebiliriz. Image- Grafik nesneleri için kullanılmaktadır. Diğer Veri Tipi Çeşitleri ; Sql_Variant-Girilecek olan verinin tipi belli olmadığında kullanılır. Kısacası tüm türleri kapsayan genel veri türüdür. XML- Xml verilerini saklamak için kullandığımız veri türüdür. Hierarchyid- Bir hiyerarşi içerisinde olan yapıları saklamak için kullanılılır. Geometry- X ve Y eksenindeki koordinat bilgilerini tutar. Genel hali ile kullandığımız veri tipleri bunlardır. Veri tiplerini gösterdikten sonra tablo oluştururken kullandığımız özel ifadelere değinelim.

Sql Server Veri Tipleri Özel İfadeler; Primary key;oluşturulacak olan sütunun içindeki verinin o sütun içerisinde benzersiz olmasını sağlar. Identity;Belirli bir sayıdan başlayıp, belirlediğimiz aralığa göre artan veya azalan bir şekilde sayısal değer üretir. Genellikle primary key ile birlikte kullanıp kimlik numarası (id) oluşturulur. Default;Kullanıcı tarafından sütunda veri belirtilmeden SQL Server tarafından otomatik olarak verilen değerlerdir. Örneğin eleman tablosunda şirket sütunu olsun ve herkes aynı şirkette olduğundan bu bilgi default ile otomatik verilebilir. NULL / NOT NULL; Null kavramı boş anlamına gelmektedir. Eğer bir sütunda null olarak belirlemişsek içeriğine bir şey yazmadan dahi tablomuza kayıt ekleyebiliriz. Ancak Not Null olarak belirlersek içeriğine aldığı veri tipinden kayıt girilmesi zorunludur. Yoksa verileri kaydetmez ve hata alırız. Unique; Primary key mantığındadır. Bir tablodaki sütuna sadece tekil bilgi girilmesini sağlar. Primary key ve Unique birlikte kullanılmaz.

Sql(StructuredQuery Language) Hafta 5_6

Neden SQL? SQL yüksek seviyeli bir dildir. İngilizce bilen herkes bu dili kolayca öğrenebilir. Programlama dillerine göre öğrenilmesi çok daha kolaydır. Çünkü programlama dillerindeki gibi işlemin nasıl yapılacağı değil, işlemde ne yapılacağı yazılır.

DML, DDL ve DCL Sorgulama için sadece SELECT komutu kullanılsa da; SQL içinde başka komutlar da yer alır. Bu komutlar işlevlerine göre sınıflandırılmış ve başka alt-diller oluşturulmuştur: DML (Data ManipulationLanguage): Tablolara veri girme, var olan veriyi güncelleme ve veri silme işlemleri için kullanılan komutları içerir. DDL (Data DefinitionLanguage): Tablo, Kullanıcı gibi nesneleri yaratmak için kullanılan komutları içerir. DCL (Data ControlLanguage): Kullanıcılara çeşitli yetkiler verme, yetkileri geri alma gibi işlemleri gerçekleştirmek için kullanılan komutları içerir.

SQL Data Definition Language (DDL) Veritabanı nesneleri yaratmak, güncellemek ve silmek için kullanılır. En çok kullanılanlar: CREATE TABLE yeni bir tablo yaratır. ALTER TABLE Tabloda güncelleme yapar. DROP TABLE Tabloyu siler.

Create database

Create table

Create table

Create Table Örnek

Alter ve Drop Tabloya alan ekleme, silme, değiştirme işlemleri için kullanılır.

Kayıt ekleme

SELECT ifadesi SELECT sütun [yada sütunlar] FROM tablo [yada tablolar] WHERE seçim kriteri SELECT ifadesinden sonra * kullanılırsa tüm nitelikler (sütunlar) seçilir. Kriter verilmezse WHERE sözcüğü de yazılmaz. Bu durumda tüm kayıtlar (satırlar) seçilir. Personel tablosundaki tüm kayıtların tüm nitelikleri aşağıdaki SQL cümlesi ile gösterilir: SELECT * FROM PERSONEL

WHERE ile kriter verme Eğer tüm kayıtların değil de sadece belirli kayıtların görüntülenmesi istenirse WHERE ile kriter verilir. Aşağıdaki SQL cümlesi maaşı 1800 TL nin üzerinde olan personelin adı ve soyadını ekranda gösterir: SELECT AD, SOYAD FROM PERSONEL WHERE MAAS > 1800

Kriterlerde kullanılan işleçler Programlama dillerinde kullanılan aritmetiksel karşılaştırma işleçleri (<, <=, >, >=, =, <>) ve mantıksal işleçler (AND, OR, NOT) SQL dilinde de kriter verirken kullanılır. Aşağıdaki SQL cümlesi görevi müdür olan ve maaşı 5000 TL den fazla olan personeli gösterir: SELECT * FROM PERSONEL WHERE GOREV = Müdür AND MAAS > 5000 Programlama dillerinde olduğu gibi SQL de de karakter türü veriler ile işlem yapılacaksa tek tırnak yada çift tırnak kullanılır.

Karakter türü verilerin karşılaştırılması Karakter türü veriler ile de büyüklük-küçüklük kıyaslamaları yapılabilir. Aşağıdaki SQL cümlesi adı N-Z arasında bir harf ile başlayan personeli gösterir: SELECT * FROM PERSONEL WHERE AD > N Aşağıdaki SQL cümlesi adı E harfi ile başlayan personeli gösterir: SELECT * FROM PERSONEL WHERE AD > E AND AD < F

LIKE işleci Belirli bir karakter katarını barındıran verileri aramak için LIKE kullanılır. Önceki slaytta yer alan, adı E harfi ile başlayan personeli gösteren sorgu LIKE ile de yazılabilir: SELECT * FROM PERSONEL WHERE AD LIKE E% Adresler şehir adı ile bitiyorsa, Edirne ilinde ikamet eden öğrencileri görmek için aşağıdaki sorgu kullanılabilir: SELECT * FROM ÖĞRENCİLER WHERE ADRES LIKE %Edirne

BETWEEN AND işleci İki değer arasında karşılaştırma yapmak için Between And işleci ( ile arasında) kullanılabilir. Aşağıdaki SQL cümlesi maaşı 1000 ile 2000 TL arasında olan işçileri görüntüler: SELECT * FROM PERSONEL WHERE MAAS BETWEEN 1000 AND 2000 AND GOREVI = İşçi Bu sorgu Between işleci kullanılmadan da yazılabilirdi: SELECT * FROM PERSONEL WHERE MAAS >= 1000 AND MAAS <= 2000 AND GOREVI = İşçi

IN işleci Bir listedeki değerler ile karşılaştırma yapmak için IN işleci kullanılır. 1000 ile 2000 TL arasında değil de sadece 1000, 1500 ve 2000 TL maaş alanları listelemek için aşağıdaki SQL cümlesi kullanılabilir: SELECT * FROM PERSONEL WHERE MAAS IN (1000, 1500, 2000)

Tarihsel türü verilerin karşılaştırılması Belirli bir tarihe eşit olan veya o tarihten büyük yada küçük olan verilerin aranması istenirse, tarih ay/gün/yıl biçiminde ve karakterleri arasında yazılmalıdır: SELECT * FROM OGRENCILER WHERE DOGUM_TARIHI BETWEEN 1/1/1989 AND 12/31/1989

DISTINCT ifadesi Eğer tablonun bir alanında yer alan veriler içinde aynı olan veriler varsa SELECT ifadesinden sonra kullanılan DISTINCT ile bu tekrar eden verilerin sadece 1 defa görüntülenmesi sağlanabilir. Aşağıdaki SQL cümlesi farklı kayıtlardaki aynı adları her kayıt için tekrar göstermek yerine 1 defa gösterilmesini sağlar: SELECT DISTINCT AD FROM PERSONEL

AS ifadesi ve sütun içeriklerini birleştirme Sütunların kendi ismi yerine AS ifadesi ile takma isim almaları sağlanabilir. İki yada daha fazla sayıda sütunun içeriğini birleştirmek için sütun isimleri arasında SqlServer ve Access te &, Oracle da ise işleçleri kullanılır. Aşağıdaki SQL cümlesi AD ve SOYAD sütunlarının içeriklerini araya bir boşluk karakteri ekleyerek birleştirir ve ISIM adlı bir sütun şeklinde gösterir. SELECT AD & ' ' & SOYAD AS ISIM FROM OGRENCILER

Matematiksel İşlemler SELECT ifadesinden sonra bir sütunun bir matematiksel işleme tabi tutulması ve bu işlemin sonucunun gösterilmesi sağlanabilir. Tabloda aylık maaşları saklanan personelin yıllık maaşlarının görüntülenmesi istenirse, aşağıdaki SQL cümlesi kullanılabilir: SELECT AD, SOYAD, MAAS * 12 AS YıllıkÜcret FROM PERSONEL

NULL (boş) değerler ile ilgili işlemler Eğer bir kayıt, bazı alanları boş bırakılarak eklendiyse, matematiksel işlemlerde sorun çıkabilir (NULL, sıfır değeri ile aynı değildir). 1500 * 12 + 0 işleminin sonucu 1800 iken, 1500 * 12 + NULL işleminin sonucu NULL olacaktır. Karşılaştırma işlemlerinde de NULL ile = işleci kullanılmaz, IS kullanılır. SELECT * FROM PERSONEL WHERE TC_NO IS NULL

Büyük/Küçük Harf Duyarlılığı SQL dili büyük/küçük harf ayrımı yapmaz (case-sensitivedeğildir). Aşağıdaki yazımların hepsi aynı işi yapar (Personel tablosundaki tüm personelin sadece adı ve soyadı görüntülenir): SELECT AD, SOYAD FROM PERSONEL SELECT Ad, Soyad FROM Personel Select Ad, Soyad From Personel select ad, soyad from personel

Türkçe karakter kullanma Birçok VTYS, tablo ve nitelik isimlerinde Türkçe karakter kullanımına izin verir. Fakat sorgularda bazı sıkıntılara neden olabileceği için kullanılması tavsiye edilmez. Örneğin PERSONEL tablosundaki nitelik isimleri ADI ve SOYADI şeklinde büyük harfler ile verildiyse, bazı VTYS ler SELECT Adi, Soyadi FROM Personel ifadesini, bazıları ise SELECT Adı, SoyadıFROM Personel ifadesini doğru kabul eder.

Alan ismi olarak kullanılmaması gereken kelimeler Bir öğrencinin not bilgilerini saklamak için NOT isminde bir alan yaratılırsa sorgularda bu alana göre kriter verilmek istendiğinde, İngilizcede değil anlamına geldiği için hata verecektir. NOT yerine NOTU, VIZE, FINAL gibi ifadeler tercih edilmelidir: SELECT * FROM NOTLAR WHERE NOT >= 60 SELECT * FROM NOTLAR WHERE NOTU >= 60 Hatalı Doğru Benzer şekilde SQL e ait olan SELECT, FROM, WHERE, ORDER, gibi ifadeler de alan ismi olarak kullanılmamalıdır.

ORDER BY ile sıralama Eğer görüntülenecek olan kayıtların belirli bir sütuna göre sıralı olarak görüntülenmesi isteniyorsa ORDER BY kullanılır. Sıralama yukarıdan aşağıya doğru artan sırada olacaksa ASC, azalan sırada olacaksa DESC kullanılır. Varsayılan sıralama şekli artan olduğu için ASC yazılmasa bile artan sıralama kullanılmış olur. Aşağıdaki SQL cümlesi PERSONEL tablosundaki kayıtları maaşa göre azalan sırada gösterir: SELECT * FROM PERSONEL ORDER BY MAAS DESC

SQL Fonksiyonları Programlama dillerinde olduğu gibi, SQL de de bazı aritmetik işlemler için yada tip dönüşümü yapmak için hazır olarak sunulan fonksiyonlar mevcuttur. Bu fonksiyonların bazıları (SUM, AVG, MIN, MAX, ) birçok kayıt üzerinde işlem yapıp tek bir sonuç üretirken, bazıları ise (Örneğin; tip dönüşümü ile ilgili olanlar) üzerinde işlem yaptığı her kayıt için ayrı sonuç üretir.

SUM ve AVG Belirli bir sütundaki sayısal verilerin toplanarak sonucun gösterilmesi istenirse SUM, aritmetik ortalamasının gösterilmesi istenirse AVG kullanılır. Aşağıdaki SQL cümlelerinden ilki tüm personelin maaşlarının toplamını, ikincisi ise maaşların aritmetik ortalamasını gösterir: 1. SELECT SUM(MAAS) AS TOPLAM_MAAS FROM PERSONEL 2. SELECT AVG(MAAS) AS [MAASLARIN ORTALAMASI] FROM PERSONEL NOT: _ karakteri yerine boşluk karakteri kullanılması istenirse [] içinde yazılmalıdır.

MIN ve MAX Belirli bir sütundaki en büyük veriyi görüntülemek için MAX, en küçük veriyi görüntülemek için ise MIN fonksiyonları kullanılır. Aşağıdaki SQL cümlesi, 2009-2010 öğretim yılında BM 316 dersinden en yüksek başarı notunu gösterir: SELECT MAX(VIZE*0.3 + FINAL*0.7) FROM NOTLAR WHERE DERS = BM 316 AND DERS_YILI = 2009-2010

COUNT Sorgunun ürettiği satır sayısını döndürür. Aşağıdaki SQL cümlesi PERSONEL tablosundaki toplam kayıt sayısını döndürür: SELECT COUNT(*) FROM PERSONEL Eğer COUNT içinde * yerine belirli bir sütun ismi verilirse o sütundaki NULL olmayan değer sayısını döndürür: SELECT COUNT(ADRES) FROM OGRENCILER

TOP Önceki örnekte en yüksek başarı notunu alan öğrencinin numarasını da göstermek istersek aşağıdaki kullanım hata verecektir: SELECT OGRENCI,MAX(VIZE*0.3 + FINAL*0.7) FROM NOTLAR WHERE DERS = BM 316 AND DERS_YILI = 2009-2010 SELECT sonrasında TOP n kullanımı en üstteki n kaydı gösterir. Örneğimizde başarı notuna göre azalan sıralama yapıp en üstteki kaydı almak için TOP 1 deyimini kullanmak en uygun çözümdür: SELECT TOP 1 OGRENCI, VIZE*0.3 + FINAL*0.7 AS Başarı_Notu FROM NOTLAR WHERE DERS = BM 316 AND DERS_YILI = 2009-2010 ORDER BY VIZE*0.3 + FINAL*0.7 NOT: Bu ifade yerine takma ismi olan Başarı_Notu kullanılması hata verir

LCASE, UCASE ve LEN Lower: Tüm karakterleri küçük harfe dönüştürür. Upper: Tüm karakterleri büyük harfe dönüştürür. LEN: Sütun yada ifade içindeki karakter sayısını döndürür Aşağıdaki SQL cümlesi SOYAD bilgileri küçük harfli bile girilmiş olsa tüm karakterleri büyük harf olarak görüntüler: SELECT AD, Upper(Soyad) FROM PERSONEL

Tarihsel Fonksiyonlar (Access) GETDATE: Sistem tarihini ve saatini döndürür. DATEDIFF: İki tarih arasındaki farkı verir. Select Datediff(year,'1984','1982') DATEADD: Aldığı tarihin üzerine aldığı değeri (gün, ay, yıl) ekleyerek yeni bir tarih değeri üretir. select DATEADD(year, 4,'1/1/1984') DAY: Aldığı tarihin gün kısmını döndürür. MONTH: Aldığı tarihin gün kısmını döndürür. YEAR: Aldığı tarihin gün kısmını döndürür.

GROUP BY SUM, AVG gibi bazı fonksiyonların tablonun tamamı için değil de, belirli bir alana (yada alanlara) göre gruplandırılarak çalıştırılması GROUP BY deyimi ile sağlanabilir. Aşağıdaki SQL cümlesi personelin ortalama maaşlarını her bölüm için ayrı ayrı listeler: SELECT AVG(MAAS) FROM PERSONEL GROUP BY BOLUM

Çok tablolu sorgulamalar Eğer birden fazla tabloda yer alan verilerin tek bir sorgu ile görüntülenmesi istenirse FROM kısmında ilgili tablolar araya virgül konularak yazılmalı, WHERE kısmında ise o tabloları birbirine bağlayan alanların birbirine eşit olması kriteri verilmelidir. WHERE kısmında böyle bir kriter verilmezse, iki tablonun tüm kayıtları birbiri ile eşleştirilecek (kartezyen çarpım) ve ortaya istenilenden daha çok sayıda kayıt çıkacaktır.

2 tablolu sorgulama örneği PERSONEL tablosundaki BOLUM (FK) alanı ile BOLUMLER tablosundaki BOLUM_NO (PK) alanı birbirine bağlıdır. Eğer personel bilgileri görüntülenirken personelin çalıştığı bölümün numarasını değil de adını göstermek istersek bu adı BOLUMLER tablosundan elde etmeliyiz. Bu nedenle iki tablonun ismini de FROM kısmında kullanmalıyız: SELECT AD, SOYAD, GOREV, BOLUM_ADI FROM PERSONEL, BOLUMLER WHERE BOLUM = BOLUM_NO

Alan isimlerinin aynı olması durumu Eğer bir çok tablolu sorgulamada ilişkinin her iki tarafındaki alanlar aynı isimde ise; alan isimlerinden önce, o alanın ait olduğu tablo ismi de yer almalıdır. Örneğin PERSONEL tablosundaki alan ismi de BOLUM_NO olsaydı sorgu şu şekilde yazılmalıydı: SELECT AD, SOYAD, GOREV, BOLUM_ADI FROM PERSONEL, BOLUMLER WHERE PERSONEL.BOLUM_NO = BOLUMLER.BOLUM_NO SELECT AD, SOYAD, GOREV, BOLUM_ADI Aynı sorgu şu şekilde de yazılabilirdi: FROM PERSONEL P, BOLUMLER B WHERE P.BOLUM_NO = B.BOLUM_NO

3 tablolu sorgulama örneği Öğrencilerin adı, soyadı, aldıkları derslerin adı ve bu derslerden başarı notları görüntülenmek istenirse: SELECT AD, SOYAD, DERS_ADI, VIZE*0.3 + FINAL*0.7 AS BN FROM OGRENCILER, NOTLAR, DERSLER WHERE OGR_NO = OGRENCI AND DERS = DERS_KODU

İç içe SELECT ifadeleri Eğer SELECT sonrasında yazılan alanların hepsi aynı tabloda, fakat kriter olarak kullanılan alanlar onlardan farklı bir tabloda ise iç içe SELECT ifadeleri kullanılabilir. Aşağıdaki SQL cümlesi Fizik dersini alan öğrencilerin bilgilerini gösterir: SELECT OGR_NO, AD, SOYAD FROM OGRENCILER WHERE OGR_NO IN ( SELECT OGRENCI FROM NOTLAR WHERE DERS IN( Fizik dersinin bir ders kodu olacağı için bu satırdaki IN yerine = kullanılabilirdi. SELECT DERS_KODU FROM DERSLER WHERE DERS_ADI = Fizik ))

İç içe SELECT ifadeleri Önceki örneği çok tablolu sorgulama türünde de yapabilirdik: SELECT OGR_NO, AD, SOYAD FROM OGRENCILER, NOTLAR, DERSLER WHERE OGR_NO = OGRENCI AND DERS_NO = DERS AND DERS_ADI = Fizik Fakat bu sorgu tabloların kartezyençarpımına neden olacağı için muhtemelen daha yavaş çalışacaktır.

INSERT Bir tabloya kayıt eklerken kullanılan komut. Aşağıdaki ifade HOCALAR tablosuna kayıt ekler: INSERT INTO HOCALAR VALUES (15, Ahmet, Çalışkan, Prof. Dr. ) Veri türü karakter değilse tırnak kullanılmaz Eğer eklenecek kaydın sadece belirli alanlarına veri girilecekse (Ör. HOCA_NO alanı otomatik sayı veri türünde ise o alana veri giremeyiz), tablo adından sonra bu alanlar belirtilmelidir: INSERT INTO HOCALAR (AD, SOYAD, UNVAN) VALUES ( Ahmet, Çalışkan, Prof. Dr. )

DELETE Bir tablodaki bir yada daha çok kaydı silmek amacıyla kullanılan DML komutudur. Hangi kayıt yada kayıtların silineceği WHERE sözcüğünden sonra verilen kriter ile belirlenir. Aşağıdaki DML ifadesi NOTLAR tablosundan 2007-2008 öğretim yılına ait tüm kayıtları siler: DELETE FROM NOTLAR WHERE DERS_YILI = 2007-2008 Eğer WHERE sözcüğü hiç kullanılmaz ise tablodaki tüm kayıtlar silinir: DELETE FROM NOTLAR

UPDATE Bir tablodaki kayıtların güncellenmesi amacıyla kullanılan DML komutudur. Hangi kayıt yada kayıtların güncelleneceği WHERE sözcüğü ile verilen kriter ile, kayıtlardaki güncellenecek alanlar ise SET sözcüğü sonrasında yeni değerlerinin atanması ile belirtilir. Aşağıdaki DML ifadesi PERSONEL tablosundaki Pazarlama bölümünde çalışanların maaşlarını %10 oranında arttırır. UPDATE PERSONEL SET MAAS = MAAS * 1.1 WHERE BOLUM = (SELECT BOLUM_NO FROM BOLUMLER WHERE BOLUM_ADI = Pazarlama )

Sorgu sonucunu tablo yapma Bir sorgu sonucunun yeni bir tablo olarak saklanması isteniyorsa FROM öncesinde INTO TABLO_ADI kullanılır. Aşağıdaki SQL cümlesi PERSONEL tablosundaki tüm verileri yeni yaratacağıpers_yedek tablosuna kopyalar: SELECT * INTO PERS_YEDEK FROM PERSONEL Eğer PERS_YEDEK tablosu önceden varsa, yukarıdaki komut önce tabloyu siler, sonra tekrar yaratarak verileri kopyalar.

Sorgu sonucunu INSERT ile kullanma Bir tabloya veri eklerken INSERT ifadesinde VALUES yazılmayıp bir sorgu da yazılabilir. Aşağıdaki ifade PERSONEL tablosundaki tüm verileri önceden yaratılmış olan PERS_YEDEK tablosuna ekler: INSERT INTO PERS_YEDEK SELECT * FROM PERSONEL Bu komut çalıştırılmadan önce PERS_YEDEK tablosu boş değilse anahtar alan olan PERSONEL_NO alanında veri tekrarına neden olabilir (dolayısı ile hata verebilir). Aşağıdaki ifade sadece 2010 yılından sonra işe başlayanları ekler: INSERT INTO PERS_YEDEK SELECT * FROM PERSONEL WHERE GIRIS_TARIHI > 1/1/2010