Veritabanına Giriş

advertisement
Veritabanına Giriş
Devrim GÜNDÜZ
TR.NET Teknik Destek Uzmanı
devrim@oper.metu.edu.tr
http://seminer.linux.org.tr
http://belgeler.linux.org.tr
Linux Kullanıcıları Derneği
•
Kuruluş
•
•
•
http://www.linux.org.tr
•
•
INET-TR 1995 ilk kullanıcı grubu
• Türkiye Linux Kullanıcıları Grubu
2000 – Dernekleşme
• Kasım 2001 – İlk Genel Kurul
Günlük 15.000 hit
bilgi@lkd.org.tr - bilgi@linux.org.tr
12.06.2002 Çarşamba
Veritabanlarına Giriş
Linux Kullanıcıları Derneği
devrim.gunduz@linux.org.tr
Linux Kullanıcıları Derneği
•
E-posta listeleri
•
•
•
Aylık 1 milyon dolayında e-posta dağıtılmaktadır.
http://liste.linux.org.tr
FTP sunucusu
•
•
12.06.2002 Çarşamba
Veritabanlarına Giriş
180 GB alan ile Türkiye’nin en büyük ve hızlı
Linux ve Özgür Yazılım FTP sunucusu
Birçok özgür yazılımın resmi yansısı
Linux Kullanıcıları Derneği
devrim.gunduz@linux.org.tr
Linux Kullanıcıları Derneği
•
Amaçlarımız
•
•
•
•
•
•
Özgür Yazılım Felsefesini Türkiye’de tanıtıp
yaygınlaştırmak ve özgür yazılımların gelişmesine katkıda
bulunmak
Yerelleştirme
Yeni yazılımların geliştirilmesi
Türkçe belgelendirme
Düzenli eğitim seminerleri
Dernek Üyeliği
12.06.2002 Çarşamba
Veritabanlarına Giriş
Linux Kullanıcıları Derneği
devrim.gunduz@linux.org.tr
Linux Kullanıcıları Derneği
•
Desteklediğimiz Etkinlikler
•
•
•
•
Düzenlediğimiz Etkinlikler
•
•
•
•
Akademik Bilişim Konferansı
İnternet Haftası kapsamında etkinlikler
Türkiye’de İnternet Konferansları
Türkiye Linux ve Özgür Yazılım Şenliği
Ankara ve İstanbul’da düzenli seminerler
Gezici Seminerler
Piknik
12.06.2002 Çarşamba
Veritabanlarına Giriş
Linux Kullanıcıları Derneği
devrim.gunduz@linux.org.tr
Giriş
• Bu seminerde, aşağıdaki konular anlatılacaktır:
•
•
•
•
•
•
•
•
12.06.2002 Çarşamba
Veritabanlarına Giriş
Veritabanı tanımı
Veritabanı türleri
SQL nedir?
Veritabanlarının kullanım alanları
İlişkisel (Relational) veritabanlarının açıklanması
Veritabanı çeşitleri ve açıklamaları
Hangi veritabanı nerede kullanılmalıdır?
e-posta listeleri
Linux Kullanıcıları Derneği
devrim.gunduz@linux.org.tr
Veritabanı Nedir?
www.m-w.com :
“a usually large collection of data organized
especially for rapid search and retrieval (as
by a computer.”
12.06.2002 Çarşamba
Veritabanlarına Giriş
Linux Kullanıcıları Derneği
devrim.gunduz@linux.org.tr
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).
12.06.2002 Çarşamba
Veritabanlarına Giriş
Linux Kullanıcıları Derneği
devrim.gunduz@linux.org.tr
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.
12.06.2002 Çarşamba
Veritabanlarına Giriş
Linux Kullanıcıları Derneği
devrim.gunduz@linux.org.tr
Veritabanı Tipleri
•
Hiyerarşik Veritabanı
•
İlişkisel Veritabanı (Relational Type)
•
Nesnesel Veritabanı
12.06.2002 Çarşamba
Veritabanlarına Giriş
Linux Kullanıcıları Derneği
devrim.gunduz@linux.org.tr
Hiyerarşik Veritabanı
VTP
Tablo 1
12.06.2002 Çarşamba
Veritabanlarına Giriş
Tablo 2
Adı
Malzeme
Soyadı
Tutar
Linux Kullanıcıları Derneği
devrim.gunduz@linux.org.tr
İlişkisel Veritabanı
•
•
1970: “A Relational Model of Data for Large
Shared Data Banks”
E. F. Codd
•
•
12.06.2002 Çarşamba
Veritabanlarına Giriş
Relation mantığı
Tablolar -> Gerçek dünyadaki nesneler
Linux Kullanıcıları Derneği
devrim.gunduz@linux.org.tr
İlişkisel Veritabanı
•
•
•
Birden fazla tablodan
oluşabilir.
Birbirlerinin yerine
kullanılabilir.
Tablolar satır ve
sütundan oluşur.
12.06.2002 Çarşamba
Veritabanlarına Giriş
Linux Kullanıcıları Derneği
devrim.gunduz@linux.org.tr
İ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.
12.06.2002 Çarşamba
Veritabanlarına Giriş
Linux Kullanıcıları Derneği
devrim.gunduz@linux.org.tr
İ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.
•
•
12.06.2002 Çarşamba
Veritabanlarına Giriş
{“10”, “Veritabanlarına Giriş”, “2002-06-12”}
{“11”, “Progress Veritabanı Sunucusu”, “2002-06-26”}
Linux Kullanıcıları Derneği
devrim.gunduz@linux.org.tr
İ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.
12.06.2002 Çarşamba
Veritabanlarına Giriş
Linux Kullanıcıları Derneği
devrim.gunduz@linux.org.tr
İ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”}
•
12.06.2002 Çarşamba
Veritabanlarına Giriş
yanlış bileşen tipleri (yanlış sırada)
Linux Kullanıcıları Derneği
devrim.gunduz@linux.org.tr
İ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
12.06.2002 Çarşamba
Veritabanlarına Giriş
Linux Kullanıcıları Derneği
devrim.gunduz@linux.org.tr
İlişkisel Veritabanı
•
Bir kayıttaki her bir bileşen “atomik”, yani bir veri
olmalıdır
•
•
Başka bir kayıt ya da diğer bileşenlerin listesi olamaz.
Tablodaki bileşenlerin veri tipleri de üsttekilerle ve
dolayısıyla tablo tanımlarındakilerle aynı olmalıdır.
•
12.06.2002 Çarşamba
Veritabanlarına Giriş
Veritabanı tarafından desteklenen veri tiplerinden biri
olmalıdır.
Linux Kullanıcıları Derneği
devrim.gunduz@linux.org.tr
İ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.
•
•
12.06.2002 Çarşamba
Veritabanlarına Giriş
“unique” yapar.
Tüm ilişkisel veritabanlarında her bir tablo ya da relationda
mutlaka primary key olmalıdır.
Linux Kullanıcıları Derneği
devrim.gunduz@linux.org.tr
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.
12.06.2002 Çarşamba
Veritabanlarına Giriş
Linux Kullanıcıları Derneği
devrim.gunduz@linux.org.tr
Veri alanları
•
Aynı konu ile ilgili alanların kendi tablolarında
toplanması sağlanmalı
•
Veri tekrarı olmamalı
•
Gereksiz alanlar kullanılmamalı
•
Alanlar basite indirgenmelidir.
12.06.2002 Çarşamba
Veritabanlarına Giriş
Linux Kullanıcıları Derneği
devrim.gunduz@linux.org.tr
Veritabanından beklenenler
•
Her düzeyde rapor alınabilme özelliği
•
Doğru ve hızlı sonuç verebilme özelliği
•
Sorulabilecek bütün sorulara yanıt verebilecek
sorgulama dili
•
Bilgilerin ve sonuçların tutarlılığı
12.06.2002 Çarşamba
Veritabanlarına Giriş
Linux Kullanıcıları Derneği
devrim.gunduz@linux.org.tr
SQL Nedir?
•
•
•
•
•
SQL: Structured Query Language
Veritabanı dilidir.
Veri eklerken, silerken, güncellerken veya
sorgularken kullanılır.
ANSI ve ISO standardıdır.
Select, Delete, Update, Insert
12.06.2002 Çarşamba
Veritabanlarına Giriş
Linux Kullanıcıları Derneği
devrim.gunduz@linux.org.tr
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.
12.06.2002 Çarşamba
Veritabanlarına Giriş
Linux Kullanıcıları Derneği
devrim.gunduz@linux.org.tr
Neden Veritabanı?
•
Veri sadece bir konuyu içeren bir listenin içinde mi?
•
Sorun karmaşık mı?
•
İstatiksel bir analiz mi yapmak istiyorsunuz?
12.06.2002 Çarşamba
Veritabanlarına Giriş
Linux Kullanıcıları Derneği
devrim.gunduz@linux.org.tr
Neden Veritabanı?
•
Bir yönetim mi yapacaksınız?
•
Metinsel veritabanları
•
Kullanım kolaylığı
12.06.2002 Çarşamba
Veritabanlarına Giriş
Linux Kullanıcıları Derneği
devrim.gunduz@linux.org.tr
Neden Veritabanı?
•
Bilimsel formüllere gereksinmeniz olacak mı?
•
Veriyi paylaşma gereksinmeniz olacak mı?
•
Veriyi webde sunacak mısınız?
12.06.2002 Çarşamba
Veritabanlarına Giriş
Linux Kullanıcıları Derneği
devrim.gunduz@linux.org.tr
Veritabanı Çeşitleri
•
Öncelikle ne yapılacağına karar verilmelidir:
1
2
12.06.2002 Çarşamba
Veritabanlarına Giriş
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?
Sitenizi günde kaç kişi ziyaret edecek?
Linux Kullanıcıları Derneği
devrim.gunduz@linux.org.tr
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?
12.06.2002 Çarşamba
Veritabanlarına Giriş
Linux Kullanıcıları Derneği
devrim.gunduz@linux.org.tr
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.
12.06.2002 Çarşamba
Veritabanlarına Giriş
Linux Kullanıcıları Derneği
devrim.gunduz@linux.org.tr
Veritabanı Çeşitleri
1
2
3
4
5
Microsoft Access
MySQL
IBM DB2
Interbase
Informix
12.06.2002 Çarşamba
Veritabanlarına Giriş
6
7
8
9
Progress
Microsoft SQL Server
PostgreSQL
Oracle
Linux Kullanıcıları Derneği
devrim.gunduz@linux.org.tr
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.
12.06.2002 Çarşamba
Veritabanlarına Giriş
Linux Kullanıcıları Derneği
devrim.gunduz@linux.org.tr
MySQL
•
•
•
•
MySQL Inc.
Windows, Linux, OS/2,Solaris, AIX vb.
“trigger” ve “stored procedure” özelliklerine sahiptir,
ancak “Transaction logging” özelliği
bulunmamaktadır.
Tablo başına 4 TB veri depolayabilir.
12.06.2002 Çarşamba
Veritabanlarına Giriş
Linux Kullanıcıları Derneği
devrim.gunduz@linux.org.tr
IBM DB2
•
•
•
•
IBM
Access 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.
12.06.2002 Çarşamba
Veritabanlarına Giriş
Linux Kullanıcıları Derneği
devrim.gunduz@linux.org.tr
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.
12.06.2002 Çarşamba
Veritabanlarına Giriş
Linux Kullanıcıları Derneği
devrim.gunduz@linux.org.tr
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.
12.06.2002 Çarşamba
Veritabanlarına Giriş
Linux Kullanıcıları Derneği
devrim.gunduz@linux.org.tr
PostgreSQL
•
•
•
•
•
•
•
PostgreSQL Global Development Group
Linux, Unix, BSD, Windows, AIX vb.
Ücretsiz, akademik bir veritabanı
Çok güçlü işlem yapısı
Veri güvenliği ön planda
Tablo başına 64 TB veri tutabilme özelliği
“Transaction”, “Inheritance” “trigger” ve “stored
procedure” özelliklerine sahiptir.
12.06.2002 Çarşamba
Veritabanlarına Giriş
Linux Kullanıcıları Derneği
devrim.gunduz@linux.org.tr
Oracle
•
•
•
•
•
Oracle, Inc.
Dünyanın en güçlü ve güvenilir veritabanı olarak
gösterilmektedir.
Çok yüksek maliyet
Windows, Unix, Linux, ...
Oracle, sınırsız sayıda tabloları desteklemektedir.
12.06.2002 Çarşamba
Veritabanlarına Giriş
Linux Kullanıcıları Derneği
devrim.gunduz@linux.org.tr
Hangi veritabanını seçmeli?
•
•
•
•
Küçük yoğunlukta trafik: Access
Web uygulamaları için: MySQL
Daha 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.
12.06.2002 Çarşamba
Veritabanlarına Giriş
Linux Kullanıcıları Derneği
devrim.gunduz@linux.org.tr
E-posta listeleri
•
vts@linux.org.tr Veritabanları için tartışma listesi
(üye olmak için, http://liste.linux.org.tr web
arayüzünü kullanabilirsiniz.)
•
pgsql-tr-genel@postgresql.org (PostgreSQL Türkiye
E-Posta Listesi . PostgreSQL üzerinde her türlü
konu.)
12.06.2002 Çarşamba
Veritabanlarına Giriş
Linux Kullanıcıları Derneği
devrim.gunduz@linux.org.tr
Web sayfaları
•
•
•
•
•
•
•
12.06.2002 Çarşamba
Veritabanlarına Giriş
http://foundries.sourceforge.net/databases
http://gborg.PostgreSQL.org
http://techdocs.PostgreSQL.org
http://techdocs.oper.metu.edu.tr
http://www.mysql.com
http://www.oracle.com
http://otn.oracle.com
Linux Kullanıcıları Derneği
devrim.gunduz@linux.org.tr
Belgenin güncel hali
•
http://devrim.oper.metu.edu.tr/belgeler.php
•
http://seminer.linux.org.tr
•
http://www.linux.org.tr/belgeler.php
12.06.2002 Çarşamba
Veritabanlarına Giriş
Linux Kullanıcıları Derneği
devrim.gunduz@linux.org.tr
Veritabanına Giriş
Devrim GÜNDÜZ
TR.NET Teknik Destek Uzmanı
devrim@oper.metu.edu.tr
http://seminer.linux.org.tr
http://belgeler.linux.org.tr
Download