370 likes | 597 Views
Veritabanına Giriş. www.fatih.edu.tr/~zcetin/vt Zeliha Çetin zcetin@fatih.edu.tr. Veri nedir. 1 . Bir araştırmanın, bir tartışmanın, bir muhakemenin temeli olan ana öğe, muta, done: "İstatistik veriler."- .
E N D
Veritabanına Giriş www.fatih.edu.tr/~zcetin/vt Zeliha Çetin zcetin@fatih.edu.tr
Veri nedir • 1 . Bir araştırmanın, bir tartışmanın, bir muhakemenin temeli olan ana öğe, muta, done: "İstatistik veriler."- . • 2 . Bir sanat eserine veya bir edebî esere temel olan ana ilkeler: "Bir romanın verileri."- . • 3 . Bilgi, data. • 4 . matematik Bir problemde bilinen, belirtilmiş anlatımlardan bilinmeyeni bulmaya yarayan şey. • 5 . bilişim Olgu, kavram veya komutların, iletişim, yorum ve işlem için elverişli biçimli gösterimi. • sözcükler, • sesler, • görüntüler
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
Veritabanı Nedir? • en geniş anlamıyla; birbiriyle ilişkili verilerin tekrara yer vermeden, çok amaçlı kullanımına olanak sağlayacak şekilde depolanması • Veritabanı basit olarak bilgi depolayan bir yazılımdır. • verimli • hızlı • yönetme • Değiştirebilme. • Veritabanı, bilgi sisteminin kalbidir ve etkili kullanmakla değer kazanır.
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ı
VTP Tablo 1 Tablo 2 Adı Adı Malzeme Soyadı Tutar Hiyerarşik Veritabanı
İ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 tablodan oluşabilir. • Birbirlerinin yerine kullanılabilir. • Tablolar satır ve 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” , “ahmet hasan”} • 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 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. • Veritabanı tarafından desteklenen veri tiplerinden biri olmalıdı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ğ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ığı
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
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 yapacaksınız? • Metinsel veritabanları • Kullanım kolaylığı
Neden Veritabanı? • Bilimsel formüllere gereksinmeniz olacak mı? • Veriyi paylaşma gereksinmeniz olacak mı? • Veriyi webde sunacak mısınız?
Veritabanı Çeşitleri • Öncelikle ne yapılacağına karar verilmelidir: • 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?
Veritabanı Çeşitleri • Aynı anda kaç işlem yapılacak? • Güvenlik ne ölçüde olacak? • Verilerinizin güvenliği ne ölçüde olacak?
Veritabanı Çeşitleri Progress Microsoft SQL Server PostgreSQL Oracle • Microsoft Access • MySQL • IBM DB2 • Interbase • Informix
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. • 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 veridepolayabilir.
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.
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 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.
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.
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.
Web sayfaları • http://foundries.sourceforge.net/databases • http://gborg.PostgreSQL.org • http://techdocs.PostgreSQL.org • http://www.mysql.com • http://www.oracle.com • http://otn.oracle.com