54
Veritabanı Yönetim Sistemi Doç. Dr. Yılmaz Gökşen Yönetim Bilişim Sistemleri Hakan Aşan

Veritabanı Yönetim Sistemi

  • Upload
    boris

  • View
    107

  • Download
    0

Embed Size (px)

DESCRIPTION

Veritabanı Yönetim Sistemi. Doç. Dr. Yılmaz Gökşen. Hakan Aşan. Yönetim Bilişim Sistemleri. Veritabanın Tanımı. - PowerPoint PPT Presentation

Citation preview

Page 1: Veritabanı Yönetim Sistemi

Veritabanı Yönetim Sistemi

Doç. Dr. Yılmaz Gökşen

Yönetim Bilişim Sistemleri

Hakan Aşan

Page 2: Veritabanı Yönetim Sistemi

Veritabanın Tanımı

Veritabanı, sistem süreçlerinde oluşan verilerin daha sonra ulaşılmak amacıyla elektronik ortamlarda, belli kurallar ve birbirleriyle olan ilişkilerini koruyacak şekilde saklanmasıyla oluşan kayıtlar topluluğudur.

Veritabanı, birbirleriyle ilişkili verilerin hızlı ve verimli bir şekilde ulaşılmasına olanak verecek biçimde saklanmasıyla oluşan kayıtlar topluluğudur.

Page 3: Veritabanı Yönetim Sistemi

Veritabanı Nedir?

www.m-w.com :www.m-w.com :

““a usually large collection of data a usually large collection of data organized especially for rapid search organized especially for rapid search and retrieval (as by a computerand retrieval (as by a computer.”.”

Page 4: Veritabanı Yönetim Sistemi

Veritabanı Nedir?

Belirli bir tarzda organize edilmiş bilgi “koleksiyon”udur.

En az bir tablodan oluşmak zorundadır.

Veritabanı programını oluşturan tablolar ise veri alanlarından oluşur (data field).

Page 5: Veritabanı Yönetim Sistemi

Veritabanı Nedir?

Kitaplıklar, uygulamalar ve yardımcı programların birleşmesinden oluşur.

Verilerin saklanması ve yönetilmesi ile ilgili konulardaki ayrıntılardan veritabanı yöneticilerini kurtarır.

Kayıtların güncellenmesi ve kayıtlar üzerinde araştırma yapılması da mümkündür.

Page 6: Veritabanı Yönetim Sistemi

Veritabanı Tipleri

Hiyerarşik Veritabanı

İlişkisel Veritabanı (Relational Type)

Nesnesel Veritabanı

Page 7: Veritabanı Yönetim Sistemi

Hiyerarşik Veritabanı

VTP

Tablo 1 Tablo 2

Adı

Soyadı

Adı Malzeme

Tutar

Page 8: Veritabanı Yönetim Sistemi

İlişkisel Veritabanı

1970: “A Relational Model of Data for Large Shared Data Banks”

E. F. Codd Relation mantığı Tablolar -> Gerçek dünyadaki nesneler

Page 9: Veritabanı Yönetim Sistemi

İlişkisel Veritabanı

Birden fazla Birden fazla tablodan tablodan oluşabilir.oluşabilir.

Birbirlerinin Birbirlerinin yerine yerine kullanılabilir.kullanılabilir.

Tablolar satır ve Tablolar satır ve sütundan oluşur.sütundan oluşur.

Page 10: Veritabanı Yönetim Sistemi

İlişkisel Veritabanı

Kullanıcının programı kullanırken ona sık sık soracağı soruların neler olacağı tespit edilir.

“Gerçekleştirilecek olan veritabanı programından beklenilen neler ve bu veritabanında hangi bilgilerin olması gerekli?” sorusunun yanıtı bulunur.

Page 11: Veritabanı Yönetim Sistemi

İlişkisel Veritabanı

Tablolardaki kayıtlar matematiksel açıdan tuple olarak tanımlanırlar.

Bir tuple, tanımlanmış bir veri tipi olan bileşenlerden oluşan sıralı grup olarak tanımlanır.

Tüm tuplelar aynı sayıda ve tipte bileşenlerden oluşur. {“10”, “Veritabanlarına Giriş”, “2002-06-12”} {“11”, “Progress Veritabanı Sunucusu”, “2002-06-26”}

Page 12: Veritabanı Yönetim Sistemi

İlişkisel Veritabanı

Örnekteki her bir tuple da 3 bileşen bulunmaktadır:

• Ankara’daki 2002 yılındaki kaçıncı seminer olduğu (integer)

• Seminerin konusu (char)• Seminerin tarihi (timestamp)

İlişkisel veritabanlarında bu “kümeye” ya da tabloya eklenen tüm kayıtlar aynı yapıda olmalıdırlar.

Page 13: Veritabanı Yönetim Sistemi

İlişkisel Veritabanı

{ “Veritabanlarına Giriş”, “2002-06-12”}

eksik bileşen

{“10”, “Veritabanlarına Giriş”, “2002-06-12” , “Devrim GÜNDÜZ”} fazla bileşen

{“2002-06-12”, “Veritabanlarına Giriş”, “10”} yanlış bileşen tipleri (yanlış sırada)

Page 14: Veritabanı Yönetim Sistemi

İlişkisel Veritabanı

tuple lardan oluşan bir tabloda aynı veriler bulunmaz.(No duplicate record). İlişkisel veritabanlarındaki herhangi bir tabloda birbiriyle

tamamen aynı iki kayıt (row or record) bulunamaz. Gereksiz sınırlama?

Sorun : İki kez aynı ürünün siparişiÇözüm : Tabloya eklenecek bir fazla

bileşen

Page 15: Veritabanı Yönetim Sistemi

İlişkisel Veritabanı

Bir kayBir kayııttaki her bir bilettaki her bir bileşşen “atomik”, yani en “atomik”, yani bir veri olmalbir veri olmalııddıırr BBaaşşka bir kayka bir kayııt ya da dit ya da diğğer bileer bileşşenlerin listesi olamaz.enlerin listesi olamaz.

TTablodaki bileablodaki bileşşenlerin veri tipleri de enlerin veri tipleri de üsttekilerle ve dolayüsttekilerle ve dolayııssııyla tablo yla tablo tantanıımlarmlarıındakilerle aynndakilerle aynıı olmal olmalııddıırr.. VVeritabaneritabanıı taraf tarafıından desteklenen veri tiplerinden biri ndan desteklenen veri tiplerinden biri

olmalolmalııddırır..

Page 16: Veritabanı Yönetim Sistemi

İlişkisel Veritabanı - Anahtarlar

key: Birbiriyle eş kayıtları ayırmak için kullanılan bileşenlerdir.

primary key :Tablodaki bir kaydı diğer tüm kayıtlardan ayırmak için kullanılan bileşendir. “unique” yapar. Tüm ilişkisel veritabanlarında her bir tablo ya da relationda

mutlaka primary key olmalıdır.

Page 17: Veritabanı Yönetim Sistemi

Tablolar

Aynı konu ile ilgili olan bilgiler belirlenmelidir.

Index olarak kullanılacak alanlar, zaman icinde değiştirilebilecek şekilde belirlenir.

Olası olan en yüksek seviyede yapısal bir şekilde tabloların oluşturulması sağlanmalıdır.

Page 18: Veritabanı Yönetim Sistemi

Veri alanları

Aynı konu ile ilgili alanların kendi tablolarında toplanması sağlanmalı

Veri tekrarı olmamalı

Gereksiz alanlar kullanılmamalı

Alanlar basite indirgenmelidir.

Page 19: Veritabanı Yönetim Sistemi

Veritabanından beklenenler

Her düzeyde rapor alınabilme özelliğiHer düzeyde rapor alınabilme özelliği

Doğru ve hızlı sonuç verebilme özelliğiDoğru ve hızlı sonuç verebilme özelliği

Sorulabilecek bütün sorulara yanıt Sorulabilecek bütün sorulara yanıt verebilecek sorgulama diliverebilecek sorgulama dili

Bilgilerin ve sonuçların tutarlılığıBilgilerin ve sonuçların tutarlılığı

Page 20: Veritabanı Yönetim Sistemi

SQL Nedir?

SQL: Structured Query LanguageVeritabanı dilidir. Veri eklerken, silerken, güncellerken veya

sorgularken kullanılır. ANSI ve ISO standardıdır. Select, Delete, Update, Insert

Page 21: Veritabanı Yönetim Sistemi

Neden Veritabanı?

Gerçekten veritabanına gereksinmeniz var mı?

Veritabanları, verilerin saklanması ve yönetilmesi için kullanılmalıdır.

Küçük bilgiler için metin dosyaları yeterli olabilir.

Amacınızın iyi belirlenmesi gerekir.

Page 22: Veritabanı Yönetim Sistemi

Neden Veritabanı?

Veri sadece bir konuyu içeren bir listenin içinde mi?

Sorun karmaşık mı?

İstatiksel bir analiz mi yapmak istiyorsunuz?

Page 23: Veritabanı Yönetim Sistemi

Neden Veritabanı?

Bir yönetim mi yapacaksBir yönetim mi yapacaksıınnıız?z?

Metinsel veritabanlarMetinsel veritabanları ı

KullanKullanıım kolaylm kolaylığıığı

Page 24: Veritabanı Yönetim Sistemi

Neden Veritabanı?

Bilimsel formüllere gereksinmeniz olacak Bilimsel formüllere gereksinmeniz olacak mmıı??

Veriyi paylaVeriyi paylaşşma gereksinmeniz olacak mma gereksinmeniz olacak mıı??

Veriyi webde sunacak mVeriyi webde sunacak mısınıısınız?z?

Page 25: Veritabanı Yönetim Sistemi

Veritabanı Çeşitleri

Öncelikle ne yapılacağına karar verilmelidir:

1 Bu veritabanı ile neler yapacaksınız? Küçük bir şirket çalışanlarının özel bilgileri mi tutulacak, yoksa büyük bir şirketin binlerce müşterilerinin bilgileri mi?

2 Sitenizi günde kaç kişi ziyaret edecek?

Page 26: Veritabanı Yönetim Sistemi

Veritabanı Çeşitleri

3 Aynı anda kaç işlem yapılacak?

4 Güvenlik ne ölçüde olacak?

5 Verilerinizin güvenliği ne ölçüde olacak?

Page 27: Veritabanı Yönetim Sistemi

Veritabanı Çeşitleri

Yanlış bir kanı : “Paralı ürünler iyidir, ücretsiz ürünler iyi değildir!” Linux!

Bir veritabanının ücretsiz olup olmamasından çok işinizi görüp görmeyeceği önemlidir.

Page 28: Veritabanı Yönetim Sistemi

Veritabanı Çeşitleri

1 Microsoft Access

2 MySQL3 IBM DB24 Interbase5 Informix

6 Progress7 Microsoft SQL Server8 PostgreSQL9 Oracle

Page 29: Veritabanı Yönetim Sistemi

Veritabanı Yönetim Sistemleri

MySQLPostgreSQLOracleSybaseMsSQLBerkeleyFirebirdMs access

Page 30: Veritabanı Yönetim Sistemi

MS Access

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.MS Windows dışındaki sistemlerde

kullanılamaz.“Transaction logging” özelliğine sahiptir,

ancak “trigger” ve “stored procedure” özelliklerine sahip değildir.

Page 31: Veritabanı Yönetim Sistemi

MySQL

MySQL Inc. MySQL Inc. WindowsWindows,, Linux, OS/2,Solaris, AIX v Linux, OS/2,Solaris, AIX vb.b. ““trigger” ve “stored procedure” trigger” ve “stored procedure”

özelliklerine sahiptir, ancak “Transaction özelliklerine sahiptir, ancak “Transaction logging” özellilogging” özelliğği bulunmamaktadi bulunmamaktadıırr..

Tablo baTablo başışına 4 TB verina 4 TB veri depolayadepolayabilirbilir..

Page 32: Veritabanı Yönetim Sistemi

IBM DB2

IBMAccess ve MySQL e göre daha

performanslı, ancak küçük işletmelere göre daha yüksek maliyete sahiptir.

*nix ve Windows üzerinde çalışabilir.Transaction logging”, “trigger” ve “stored

procedure” özelliklerine sahiptir.

Page 33: Veritabanı Yönetim Sistemi

Informix

IllustraÜcretli ve güçlü bir veritabanıdır. Orta ölçekli işletmelerin yükünü

kaldırabilecek kapasitededir. 1994’deki Postgres kodundan

geliştirilmeye başlanmıştır.

Page 34: Veritabanı Yönetim Sistemi

MS SQL Server

Microsoft Dezavantajları:

Sadece Windows üzerinde çalışabilir. Yüksek maliyet

Kullanım kolaylığı, güvenilirliği,işlem gücüTablo başına 4 TB veri.“Transaction logging”, “trigger” ve

“stored procedure” özelliklerine sahiptir.

Page 35: Veritabanı Yönetim Sistemi

PostgreSQL

PostgreSQL Global Development GroupLinux, Unix, BSD, Windows, AIX vb.Ücretsiz, akademik bir veritabanıÇok güçlü işlem yapısıVeri güvenliği ön plandaTablo başına 64 TB veri tutabilme özelliği“Transaction”, “Inheritance” “trigger” ve

“stored procedure” özelliklerine sahiptir.

Page 36: Veritabanı Yönetim Sistemi

Oracle

Oracle, Inc.Dünyanın en güçlü ve güvenilir veritabanı

olarak gösterilmektedir.Çok yüksek maliyetWindows, Unix, Linux, ...Oracle, sınırsız sayıda tabloları

desteklemektedir.

Page 37: Veritabanı Yönetim Sistemi

Hangi veritabanını seçmeli?

Küçük yoğunlukta trafik: AccessWeb uygulamaları için: MySQLDaha büyük ve orta ölçekli uygulamalar

içinse, Progress, MS SQL ya da Linux üzerinde PostgreSQL .

Oracle ise çok yüksek güvenilirlik ve işlem gücü gerektirdiğinde tercih edilen bir veritabanı sunucusudur.

Page 38: Veritabanı Yönetim Sistemi

Veritabanı Kavramları

Anahtarlar

Değerler

Satırlar

Sütunlar

Tablolar

İlişkiler

Şemalar

Page 39: Veritabanı Yönetim Sistemi

Tablolar

Tc_Kimlik Ad Soyad E_Posta Telefon

12342378891 Ejder Ayçin [email protected] 02324208994

23421124534 Hakan Aşan [email protected] 02324208923

23474367832 Talip Arsu [email protected] 05555308998

98324534244 Melih Durmuş [email protected] 05332274392

•Veritabanlarının temelini oluşturur.•Satır ve sütunlardan oluşur.

Page 40: Veritabanı Yönetim Sistemi

Sütunlar

Tc_Kimlik Ad Soyad E_Posta Telefon

12342378891 Ejder Ayçin [email protected] 02324208994

23421124534 Hakan Aşan [email protected] 02324208923

23474367832 Talip Arsu [email protected] 05555308998

98324534244 Melih Durmuş [email protected] 05332274392

•Tabloların her bir özelliğini tutar.•Her sütunun belli bir tipi vardır.( Metin, Tarih,…)

Page 41: Veritabanı Yönetim Sistemi

Satırlar

Tc_Kimlik Ad Soyad E_Posta Telefon

12342378891 Ejder Ayçin [email protected] 02324208994

23421124534 Hakan Aşan [email protected] 02324208923

23474367832 Talip Arsu [email protected] 05555308998

98324534244 Melih Durmuş [email protected] 05332274392

•Her satır bir kaydı temsil eder.

Page 42: Veritabanı Yönetim Sistemi

Değerler

Tc_Kimlik Ad Soyad E_Posta Telefon

12342378891 Ejder Ayçin [email protected] 02324208994

23421124534 Hakan Aşan [email protected] 02324208923

23474367832 Talip Arsu [email protected] 05555308998

98324534244 Melih Durmuş [email protected] 05332274392

•Girilen her bir veri değere karşılık gelir.

Page 43: Veritabanı Yönetim Sistemi

Anahtarlar

Tc_Kimlik Ad Soyad E_Posta Telefon

12342378891 Ejder Ayçin [email protected] 02324208994

23421124534 Hakan Aşan [email protected] 02324208923

23474367832 Talip Arsu [email protected] 05555308998

98324534244 Melih Durmuş [email protected] 05332274392

•Anahtarlar satırları (kayıtları) tanımlayan özel sütunlardır (alanlardır).

Page 44: Veritabanı Yönetim Sistemi

Şemalar

•Veritabanında tablonun tasarımına şema adı verilir.

•Şema veri içermez; veritabanının taslağı olarak kullanılabilir.

•Şema; tabloları, sütunları ve her tablonun birincil anahtarları ile birlikte varsa yabancı anahtarları da gösterir.

Page 45: Veritabanı Yönetim Sistemi

İlişkiler

Tc_Kimlik Ad Soyad E_Posta Telefon

12342378891 Ejder Ayçin [email protected] 02324208994

23421124534 Hakan Aşan [email protected] 02324208923

23474367832 Talip Arsu [email protected] 05555308998

98324534244 Melih Durmuş [email protected] 05332274392

Sinav_No Tc_Kimlik Sinav_Notu

1 12342378891 80

2 23421124534 90

3 23474367832 85

4 12342378891 75

Page 46: Veritabanı Yönetim Sistemi

İlişki Tipleri

•Üç temel ilişki tipi vardır:

• Bire – bir: İlişki içinde her şeyden bir tane olduğunu gösterir.

• Birden – çoğa: Bir tablodaki bir satır başka bir tablodaki birden fazla satırla bağlantılıdır.

• Çoktan – çoğa: Bir tablodaki birden fazla satır başka bir tablodaki birden fazla satırla bağlantılıdır.

Page 47: Veritabanı Yönetim Sistemi

Sql Veritabanı Dili

SELECT KOMUTU Select * from tablo_adi

UPDATE KOMUTU Update tablo_adi set tablo_sütun=değer

INSERT KOMUTU Insert into tablo_adi value (değer)

DELETE KOMUTU Delete from tablo_adi

Page 48: Veritabanı Yönetim Sistemi

Sql Veritabanı Dili ( Örnek)

SELECT KOMUTU Select * from calisanlar

Tc_Kimlik Ad Soyad E_Posta Calistigi_Saat

12342378891 Ejder Ayçin [email protected] 40

23421124534 Hakan Aşan [email protected] 35

23474367832 Talip Arsu [email protected] 24

98324534244 Melih Durmuş [email protected] 60

Select * from calisanlar where ad=‘hakan’

Tc_Kimlik Ad Soyad E_Posta Calistigi_Saat

23421124534 Hakan Aşan [email protected]

35

Page 49: Veritabanı Yönetim Sistemi

Sql Veritabanı Dili ( Örnek_2)

SELECT KOMUTU Select * from calisanlar where Calistigi_Saat >=40

Tc_Kimlik Ad Soyad E_Posta Calistigi_Saat

12342378891 Ejder Ayçin [email protected] 40

98324534244 Melih Durmuş [email protected] 60

Tc_Kimlik Ad Soyad E_Posta Calistigi_Saat

23421124534 Hakan Aşan [email protected] 35

23474367832 Talip Arsu [email protected] 24

Select * from calisanlar

where Calistigi_Saat >24 and Calistigi_Saat <40

Page 50: Veritabanı Yönetim Sistemi

Sql Veritabanı Dili ( Örnek_3)

SELECT KOMUTU

Select * from calisanlar

where ad=‘hakan’ or Calistigi_Saat >40

Tc_Kimlik Ad Soyad E_Posta Calistigi_Saat

23421124534 Hakan Aşan [email protected] 35

98324534244 Melih Durmuş [email protected] 60

Select * from calisanlar

where soyad=‘Aşan’ and Calistigi_Saat >40

Tc_Kimlik Ad Soyad E_Posta Calistigi_Saat

Page 51: Veritabanı Yönetim Sistemi

Sql Veritabanı Dili ( Örnek_4)

UPDATE KOMUTU Update calisanlar set ad=‘Mehmet’

Update calisanlar set ad=‘Mehmet’

where Tc_Kimlik=12342378891

Tc_Kimlik Ad Soyad E_Posta Calistigi_Saat

12342378891 Mehmet Ayçin [email protected] 40

23421124534 Mehmet Aşan [email protected] 35

23474367832 Mehmet Arsu [email protected] 24

98324534244 Mehmet Durmuş [email protected] 60

Tc_Kimlik Ad Soyad E_Posta Calistigi_Saat

12342378891 Mehmet Ayçin [email protected] 40

23421124534 Hakan Aşan [email protected] 35

23474367832 Talip Arsu [email protected] 24

98324534244 Melih Durmuş [email protected] 60

Page 52: Veritabanı Yönetim Sistemi

Sql Veritabanı Dili ( Örnek_4)

INSERT KOMUTU

Insert into calisanlar values(12863403423,’Begüm’,’Demirer’,’[email protected]’,67)

Tc_Kimlik Ad Soyad E_Posta Calistigi_Saat

12342378891 Ejder Ayçin [email protected] 40

23421124534 Hakan Aşan [email protected] 35

23474367832 Talip Arsu [email protected] 24

98324534244 Melih Durmuş [email protected] 60

12863403423 Begüm Demirer [email protected] 67

Page 53: Veritabanı Yönetim Sistemi

Sql Veritabanı Dili ( Örnek_4)

DELETE KOMUTU

Delete from calisanlar

Tc_Kimlik Ad Soyad E_Posta Calistigi_Saat

Delete from calisanlar

where Calistigi_Saat>35

Tc_Kimlik Ad Soyad E_Posta Calistigi_Saat

23421124534 Hakan Aşan [email protected] 35

23474367832 Talip Arsu [email protected] 24

Page 54: Veritabanı Yönetim Sistemi