Veritabanı Yönetim Sistemi

Preview:

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

Veritabanı Yönetim Sistemi

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

Yönetim Bilişim Sistemleri

Hakan Aşan

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.

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

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

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.

Veritabanı Tipleri

Hiyerarşik Veritabanı

İlişkisel Veritabanı (Relational Type)

Nesnesel Veritabanı

Hiyerarşik Veritabanı

VTP

Tablo 1 Tablo 2

Adı

Soyadı

Adı Malzeme

Tutar

İ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

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

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

İ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”}

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

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

İ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

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

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

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.

Veri alanları

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

Veri tekrarı olmamalı

Gereksiz alanlar kullanılmamalı

Alanlar basite indirgenmelidir.

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

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

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.

Neden Veritabanı?

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

Sorun karmaşık mı?

İstatiksel bir analiz mi yapmak istiyorsunuz?

Neden Veritabanı?

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

Metinsel veritabanlarMetinsel veritabanları ı

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

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?

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?

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?

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.

Veritabanı Çeşitleri

1 Microsoft Access

2 MySQL3 IBM DB24 Interbase5 Informix

6 Progress7 Microsoft SQL Server8 PostgreSQL9 Oracle

Veritabanı Yönetim Sistemleri

MySQLPostgreSQLOracleSybaseMsSQLBerkeleyFirebirdMs access

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.

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

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.

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.

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.

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.

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.

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.

Veritabanı Kavramları

Anahtarlar

Değerler

Satırlar

Sütunlar

Tablolar

İlişkiler

Şemalar

Tablolar

Tc_Kimlik Ad Soyad E_Posta Telefon

12342378891 Ejder Ayçin ejder.aycin@deu.edu.tr 02324208994

23421124534 Hakan Aşan hakan.asan@hotmail.com 02324208923

23474367832 Talip Arsu talip.arsu@gmail.com 05555308998

98324534244 Melih Durmuş melih@boyamak.com.tr 05332274392

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

Sütunlar

Tc_Kimlik Ad Soyad E_Posta Telefon

12342378891 Ejder Ayçin ejder.aycin@deu.edu.tr 02324208994

23421124534 Hakan Aşan hakan.asan@hotmail.com 02324208923

23474367832 Talip Arsu talip.arsu@gmail.com 05555308998

98324534244 Melih Durmuş melih@boyamak.com.tr 05332274392

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

Satırlar

Tc_Kimlik Ad Soyad E_Posta Telefon

12342378891 Ejder Ayçin ejder.aycin@deu.edu.tr 02324208994

23421124534 Hakan Aşan hakan.asan@hotmail.com 02324208923

23474367832 Talip Arsu talip.arsu@gmail.com 05555308998

98324534244 Melih Durmuş melih@boyamak.com.tr 05332274392

•Her satır bir kaydı temsil eder.

Değerler

Tc_Kimlik Ad Soyad E_Posta Telefon

12342378891 Ejder Ayçin ejder.aycin@deu.edu.tr 02324208994

23421124534 Hakan Aşan hakan.asan@hotmail.com 02324208923

23474367832 Talip Arsu talip.arsu@gmail.com 05555308998

98324534244 Melih Durmuş melih@boyamak.com.tr 05332274392

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

Anahtarlar

Tc_Kimlik Ad Soyad E_Posta Telefon

12342378891 Ejder Ayçin ejder.aycin@deu.edu.tr 02324208994

23421124534 Hakan Aşan hakan.asan@hotmail.com 02324208923

23474367832 Talip Arsu talip.arsu@gmail.com 05555308998

98324534244 Melih Durmuş melih@boyamak.com.tr 05332274392

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

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

İlişkiler

Tc_Kimlik Ad Soyad E_Posta Telefon

12342378891 Ejder Ayçin ejder.aycin@deu.edu.tr 02324208994

23421124534 Hakan Aşan hakan.asan@hotmail.com 02324208923

23474367832 Talip Arsu talip.arsu@gmail.com 05555308998

98324534244 Melih Durmuş melih@boyamak.com.tr 05332274392

Sinav_No Tc_Kimlik Sinav_Notu

1 12342378891 80

2 23421124534 90

3 23474367832 85

4 12342378891 75

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

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

Sql Veritabanı Dili ( Örnek)

SELECT KOMUTU Select * from calisanlar

Tc_Kimlik Ad Soyad E_Posta Calistigi_Saat

12342378891 Ejder Ayçin ejder.aycin@deu.edu.tr 40

23421124534 Hakan Aşan hakan.asan@hotmail.com 35

23474367832 Talip Arsu talip.arsu@gmail.com 24

98324534244 Melih Durmuş melih@boyamak.com.tr 60

Select * from calisanlar where ad=‘hakan’

Tc_Kimlik Ad Soyad E_Posta Calistigi_Saat

23421124534 Hakan Aşan hakan.asan@hotmail.com

35

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 ejder.aycin@deu.edu.tr 40

98324534244 Melih Durmuş melih@boyamak.com.tr 60

Tc_Kimlik Ad Soyad E_Posta Calistigi_Saat

23421124534 Hakan Aşan hakan.asan@hotmail.com 35

23474367832 Talip Arsu talip.arsu@gmail.com 24

Select * from calisanlar

where Calistigi_Saat >24 and Calistigi_Saat <40

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 hakan.asan@hotmail.com 35

98324534244 Melih Durmuş melih@boyamak.com.tr 60

Select * from calisanlar

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

Tc_Kimlik Ad Soyad E_Posta Calistigi_Saat

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 ejder.aycin@deu.edu.tr 40

23421124534 Mehmet Aşan hakan.asan@hotmail.com 35

23474367832 Mehmet Arsu talip.arsu@gmail.com 24

98324534244 Mehmet Durmuş melih@boyamak.com.tr 60

Tc_Kimlik Ad Soyad E_Posta Calistigi_Saat

12342378891 Mehmet Ayçin ejder.aycin@deu.edu.tr 40

23421124534 Hakan Aşan hakan.asan@hotmail.com 35

23474367832 Talip Arsu talip.arsu@gmail.com 24

98324534244 Melih Durmuş melih@boyamak.com.tr 60

Sql Veritabanı Dili ( Örnek_4)

INSERT KOMUTU

Insert into calisanlar values(12863403423,’Begüm’,’Demirer’,’b@hotmail.com’,67)

Tc_Kimlik Ad Soyad E_Posta Calistigi_Saat

12342378891 Ejder Ayçin ejder.aycin@deu.edu.tr 40

23421124534 Hakan Aşan hakan.asan@hotmail.com 35

23474367832 Talip Arsu talip.arsu@gmail.com 24

98324534244 Melih Durmuş melih@boyamak.com.tr 60

12863403423 Begüm Demirer b@hotmail.com 67

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 hakan.asan@hotmail.com 35

23474367832 Talip Arsu talip.arsu@gmail.com 24

Recommended