7. hafta verİ tabani yÖnetİstemlerİ · sql server . 26 • oracle ... kapladığı disk...

Post on 04-Oct-2020

7 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

7. Hafta – VERİ TABANI

YÖNETİM SİSTEMLERİ

Dr. Öğr. Üyesi Nesibe YALÇIN

https://nesibeyalcin.wordpress.com/bsm102/

BARTIN ÜNİVERSİTESİ

MÜHENDİSLİK FAKÜLTESİ

BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ

Veri Tabanı

2

3

• 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ı kavramı ilk olarak 1980’li yıllar

Veri Tabanı

4

Neden Veri Tabanı??

5

• Verilerin tutulması, saklanması ve erişilmesinde

geleneksel yaklaşım (dosya/liste yönetimi) verilerin ayrı ayrı dosyalarda gruplanması yaklaşımını kullanmaktadır. • Sıralı, • Rastgele erişimli dosya

• Verilerin artması, verilere aynı anda erişme ve

düzenlenme ihtiyacı ile geleneksel yaklaşım yetersiz kalmıştır.

• Veri tekrarını önler.

• Verilerin tutarlı olmasını sağlar.

Neden Veri Tabanı??

6

• Ortak verilerin tekrarının önlenmesi

• Verilerin merkezi denetiminin ve tutarlılığının sağlanması

• Veri paylaşımının sağlanması

• Her kullanıcıya yalnız ilgilendiği verilerin, alışık olduğu

kolay, anlaşılır yapılarda sunulması

Avantajları

7

• 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 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

Avantajları

8

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

Üniversite – Öğrenci işleri bilgi sistemi Hastane – Hasta, doktor, tedavi, araç-gereç, mali bilgiler Ticari bir şirket – Müşteri, ürün, satış, ödeme, teslimat

bilgileri Banka – Müşteri, mevduat, kredi kartı, kredi bilgileri

Veri Tabanı Örnekleri

9

Veri Tabanı Yapısı

Veri tabanı

Tablo Tablo Tablo Tablo Tablo

Alan 1 Alan 2 Alan3 Alan4

1

2

3

• Tablo • Kayıt • Nitelik • Anahtar nitelik

10

• Veriler tablolarda saklanmaktadır.

• Tablolar verilerin satırlar ve sütunlar halinde düzenlenmesiyle

oluşan veri grubudur. Satır ve sütunlar farklı işleve sahiptir: Sütunların her birinde bir özellik/alan bilgisi yer alır. Satırlarda ise sütunlara ait kayıt bilgileri saklanmaktadır.

• Tablolardaki veriler sorgu sonucunda seçilir ve belli bir düzen

içinde sunulur.

Tablo

11

• Öğrenci bilgilerini veritabanında saklamak için: ogrenci_bilgileri

• Öğrenci bilgileri tablosunda: Öğrenci numarası, adı soyadı, doğum tarihi, doğum yeri, e-mail adresi bilgileri yer alsın.

Tablo - Örnek

Alan

Ogr_no Ad_soyad d_tarih d_yeri e-mail

1 Atiye Aydın 01.11.1999 Konya atiye@ogr.bartin.edu.tr

2 Asya Özdemir 05.12.1999 Giresun asya@ogr.bartin.edu.tr

3 Sedat Pekin 16.02.2000 Ardahan sedat@ogr.bartin.edu.tr

4 Metin Ertürk 11.04.1998 Ankara metin_e@ogr.bartin.edu.tr

5 Zeynep Nur Aker 02.01.2000 Malatya zeynepn@ogr.bartin.edu.tr

6 Resmiye Bahar 22.02.2001 Yozgat resmiye@ogr.bartin.edu.tr

Alan

Kayıt

Tablo - Örnek

12

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)

13

Birincil Anahtar (Primary Key)

• Bir kayıta ulaşmayı sağlayacak anahtar veridir.

• Örneğin, öğrenciler arasında iki Ahmet var. Arama yaparken istediğimiz Ahmet’i bulmak için her bir öğrenciye özel bir numara olmalıdır: “öğrenci numarası”

• Birden fazla alanda birlikte birincil anahtar olabilir.

14

Yabancı Anahtar (Foreign Key)

• 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şmeyen bir değer girilmez gibi.

15

Birleşik Anahtar (Composite Key)

• Birden fazla alanın birleşmesi ile oluşan anahtar nitelik

• Örneğin, öğrencilerin not verilerinin girildikleri “notlar” tablosunda her bir öğrenciye ilişkin birincil olarak tanımlanabilecek öğrenci no ve dersno alanları birlikte anahtar nitelik olabilir.

16

17

Veri Tabanı Yönetim

Sistemleri (VTYS)

18

• Yeni bir veri tabanı 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 paketi

ya da sistemidir.

Veri Tabanı Yönetim Sistemleri (VTYS)

19

Veri Tabanı Yönetim Sistemleri (VTYS)

20

• Microsoft Office ürünüdür.

• Küçük ölçekli uygulamalar içindir.

• Tablo başına 2 GB’ a kadar veri depolayabilir.

• Aynı anda 255 bağlantıya izin verebilir.

• Windows işletim sistemleri dışında kullanılamaz.

Access

21

• Açık kaynak kodludur.

• Windows/Unix/Linux,… işletim sistemlerinde çalışır. (platform

bağımsız)

• Tablo başına 4 TB veri depolayabilir.

• Web uygulamalarında PHP ile çok sık kullanılır.

MySQL

22

• IBM tarafından geliştirilmiştir.

• Windows/Unix/Linux,… işletim sistemlerinde çalışır.

• “Transaction logging” , “trigger” ve “stored procedure”

özelliklerine sahiptir.

IBM DB2

23

• Illustra firması tarafından geliştirildi.

• 2001 yılında IBM Informix’ i satın aldı.

• Ücretli ve güçlü bir veritabanı.

• Orta ölçekli işletmelerin yükünü kaldırabilecek kapasitedir.

Informix

24

• Bir orta ve büyük ölçekli VTYS’ dir.

• Unix, Windows, .. işletim sistemlerinde çalışır.

• SAP ile uyumlu.

• Ülkemizde daha çok bankacılık ve kamusal alanlarda tercih

edilmektedir.

Sybase

25

• Microsoft firmasına ait veritabanı sunucu yazılımıdır.

• Orta ve büyük ölçekli işlemler için kullanılır.

• Kullanım kolaylığı, güvenilirliği, işlem gücü…

• Tablo başına 4 TB veri depolama.

• Sadece Windows üzerinde çalışır (platform bağımlı).

• “Transaction logging” , “trigger” ve “stored procedure”

özelliklerine sahip.

SQL Server

26

• Oracle firması tarafından geliştirildi.

• Dünyanın en güçlü ve en güvenilir veritabanı olarak gösterilir.

• Birçok işletim sistemi üzerinde kullanılabilir.

• Çok yüksek ölçekli uygulamalar için tercih edilir.

• Oluşturulabilecek tablo sayısı sınırsızdır.

• Çok yüksek maliyet..!

Oracle

27

VTYS Bileşenleri

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

• Özellikle çok fazla verinin tutulduğu veritabanlarında performans kaybını azaltmak, veritabanı ve yedeklerin kapladığı disk alanını en aza indirmek için veri tipleri dikkatle seçilmelidir.

28

MsSQL – Veri Türleri char: Sabit uzunlukta karakter verisi saklamak için kullanılır. En fazla 8000 karakter veri saklayabilir.

varchar: Değişken uzunlukta karakter verisi saklamak için kullanılır. Belirlenmiş veri kapasitesi 8000 karakter olmasına rağmen (max) parametresi ile bu değer 2^31 byte’ a kadar genişletilebilir.

nchar: Sabit uzunlukta 4000 karakter verisi saklamak için kullanılır. Boyutu değişken olmakla birlikte kısa olan değerler atanan uzunluğa tamamlanır.

nvarchar: Değişken uzunlukta karakter verisi saklamak için kullanılır. Belirlenmiş maksimum uzunluk 4000 karakter olmasına rağmen (max) parametresiyle 2^31 byte’a kadar veri depolanabilir.

29

MsSQL– Veri Türleri

30

• int: 4 byte büyüklüğünde yaklaşık -2 milyar ile +2 milyar arasında değer alabilen tamsayı veri tipidir.

• bigint: 8 byte yüyüklüğünde -2^63 ile +2^63 arasında değer alabilen tamsayı veri tipidir.

• float: Boyutu ve doğruluğu (ondalık kısım duyarlılığı) aldığı parametreye göre değişen kayan noktalı sayılar için kullanılır.

• smallmoney: 4 byte uzunluğunda yaklaşık -214 000 ile 214 000 arasında parasal değerleri tutmak için kullanılır. Ondalık kısım duyarlılığı 4 basamaktır.

• money: 8 byte uzunluğunda yaklaşık -922 milyar ile 922 milyar arasındaki parasal değerleri tutmak için kullanılır. Ondalık kısım duyarlılığı 4 basamaktır.

MsSQL– Veri Türleri

31

• date: Tarihleri YYYY-MM-DD şeklinde saklayan 3 byte uzunluğunda veri tipidir.

• smalldatetime: Tarih ve zaman verilerini YYYY-MM-DD hh:mm:ss şeklinde saklayan 4 byte uzunluğunda veri tipidir.

• datetime: YYYY-MM-DD hh:mm:ss:mmm şeklinde tarih ve zaman verilerini tutan 8 byte uzunluğunda veri tipidir.

• time: Sadece saat verilerini hh:mm:ss:nnnnnnn şeklinde saklayan veri tipidir. Dateteime2 gibi salise hassasiyeti maksimum 7 basamaktır ve kullanıcı tarafından değiştirilebilir. (3-5 byte)

• datetimeoffset: Ülkelere göre değişen zaman farkını tutmak için kullanılır.

MsSQL– Veri Türleri

32

• binary: Maksimum 8000 byte boyutunda, sabit uzunlukta binary veri saklamak için kullanılır.

• varbinary: Değişken uzunlukta 8000 byte boyutunda binary değer saklamak için kullanılır. (max) parametresiyle tutacağı maksimum değer 2^31 byte’a kadar yükseltilebilir.

• image: Önceki sql versiyonlarını desteklemek amacıyla kullanılmaktadır. Bu tip yerine varbinary (max) veri tipi tercih edilmelidir.

• xml: XML türünde hiyerarşik verileri saklamak için kullanılır. Bellekteki boyutu saklanan xml verisine göre değişir.

33

• VTYS Yöneticisi (Admin)

• Sistem mühendisleri • Tasarımcı (Designer)

• Uygulama yazılımcısı

• Son kullanıcılar

VTYS Aktörleri

34

• Kullanıcı sayısına göre Tek kullanıcılı Çok kullanıcılı

• Veri modeline göre Düz-dosya Hiyerarşik Ağ İlişkisel Nesneye Yönelik

• Fiziksel konumuna göre Merkezi Dağıtık

VTYS’ nin Sınıflandırılması

Düz-Dosya Veri Tabanları

• Tek tablodan oluşan veritabanıdır. Tüm veriler bu tablo üzerinde tutulur. Tek bir tablo olduğu için 1 dosya içinde barındırılır.

• Tüm veriler tek tabloda tutulduğu için tutulacak veriye göre hem sütun sayısı çok fazla olur hem de aynı veriyi birçok kayıtta tekrar etmek (data duplication) gerekecektir. Bu sebeple veri boyutu çok fazla olabilir.

• Word, Excel bu tür programlara örnektir.

35

Hiyerarşik Veri Tabanları

• 1960’lar ve 1970’ler - Veri tabanları için kullanılan ilk modeldir.

• IBM IMS (Information Management System)

• Hiyerarşik veritabanları bilgileri bir ağaç yağısında saklarlar.

36

Hiyerarşik Veri Tabanları

37

Ağ Veri Tabanları • 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.

38

İlişkisel Veri Tabanları

• 1970’li yıllarda IBM tarafından geliştirilmeye başlanmıştır. Edgar Frank Codd tarafından önerilmiştir.

• Veriler tablo şeklinde saklanır, birçok tablo kullanılır ve tablolar arasında ilişkiler oluşturulur.

• Bir ilişki, bir tabloya, başka bir tablodaki kaydı bağlamamızı sağlar. Bu şekilde veriler daha az yer kaplar ve işlemlerimizi kolaylaştırır.

• Günümüzdeki hemen hemen tüm veri tabanı programları bu yapıdadır.

39

İlişkisel Veri Tabanları

40

Nesneye Yönelik Veri Tabanları

• 1990’lar – Veriler nesne olarak modellenir ve oluşturulur.

• Nesneye yönelik veritabanı C++ gibi nesneye yönelik bir dille oluşturulan ve yine bu tarz bir dille kullanılan veri tabanı anlamına gelir.

• Günümüzde hem ilişkisel hem de nesneye-yönelik yaklaşımı birlikte kullanan VTYS‘ nin yaygınlaştığı görülmektedir (ORDBMS).

41

Veri Tabanı Tasarlama

1. Nesneler tanımlanır:

Kütüphane sistemi: kitap, üyeler, türler, ödünç alma işlemleri

2. Her nesne için bir tablo oluşturulur:

kitap

uyeler

turler

odunc_islemleri

42

Veri Tabanı Tasarlama 3. Her tablo için bir anahtar alan seçilir:

Kitap tablosu: kitapno

Üyeler tablosu: uyeno

Türler tablosu: turno

Ödünç İşlemleri tablosu: oduncno

43

Veri Tabanı Tasarlama

4. Nesnelerin her bir özelliği için tabloya sütun eklenir:

Kitap tablosu: kitapno, ad, yil, yazar, ad, tur

Üyeler tablosu: uyeno, adsoyad, dogumtarihi, eposta,tel

Türler tablosu: turno, turadi

Ödünç İşlemleri tablosu: oduncno, uyeno, kitapno, odunctarih, teslimtarih

44

kitapno ad yil yazar tur

Kitap tablosu

Veri Tabanı Tasarlama

5. Tablolar arasındaki ilişkiler tanımlanmalıdır.

Örneğin;

Üyeler tablosundaki uyeno - Ödünç İşlemleri tablosundaki uyeno

Kitap tablosu: kitapno - Ödünç İşlemleri tablosundaki kitapno

Türler tablosu turno ile Kitap tablosundaki tur

45

Structured Query Language - SQL (Yapısal Sorgu Dili)

• IBM, bir ilişkisel veritabanı yönetim sistemi geliştirmek amacıyla System/R adlı bir proje başlatır.

• Bu sistem için SEQUEL (Structured English Query Language) adında bir sorgu dili geliştirilmeye başlanmıştır.

• 1979’ da tamamlanan bu proje sırasında geliştirilen dilin adı SQL (Structured Query Language) olarak değiştirilmiştir.

46

SQL Örnek

• SQL dilinde oluşturulmuş bir sorgu örneği;

• SELECT ADI, SOYADI, ADRES

FROM PERSONEL

WHERE BOLUMNO = 17 AND GOREV = 'Sekreter’

*** “17 numaralı bölümde çalışan sekreterlerin ad, soyad ve adres” bilgilerinin istendiği sorgu

47

SQL Örnek

• SQL dilinde veri tabanındaki bir tabloya kayıt ekleme ve silme için oluşturulmuş sorgu örnekleri;

• INSERT INTO PERSONEL (ADI, SOYADI, ADRES, GOREV, BOLUMNO)

VALUES (‘Mustafa’, ‘KARA’, ‘Manisa’, ‘Müdür’,18)

DELETE PERSONEL WHERE ADI=‘Sare’

48

top related