View
107
Download
0
Category
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