540 likes | 752 Views
Veritabanı Yönetim Sistemi. Doç. Dr. Yılmaz Gökşen. Hakan Aşan. Yönetim Bilişim Sistemleri. Veritabanın Tanımı.
E N D
Veritabanı Yönetim Sistemi Doç. Dr. Yılmaz Gökşen Hakan Aşan Yönetim Bilişim Sistemleri
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 : “a usually large collection of data organized especially for rapid search and 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ı
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” , “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 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 • 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 • Microsoft Access • MySQL • IBM DB2 • Interbase • Informix Progress Microsoft SQL Server PostgreSQL Oracle
Veritabanı Yönetim Sistemleri MySQL PostgreSQL Oracle Sybase MsSQL Berkeley Firebird Ms 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. • 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.
Veritabanı Kavramları Tablolar Sütunlar Satırlar Değerler Anahtarlar Şemalar İlişkiler
Tablolar • Veritabanlarının temelini oluşturur. • Satır ve sütunlardan oluşur.
Sütunlar • Tabloların her bir özelliğini tutar. • Her sütunun belli bir tipi vardır.( Metin, Tarih,…)
Satırlar • Her satır bir kaydı temsil eder.
Değerler • Girilen her bir veri değere karşılık gelir.
Anahtarlar • 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ş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 • SELECTKOMUTU • Select * from tablo_adi • UPDATEKOMUTU • Update tablo_adi set tablo_sütun=değer • INSERTKOMUTU • Insert into tablo_adi value (değer) • DELETE KOMUTU • Deletefrom tablo_adi
Sql Veritabanı Dili ( Örnek) • Select * from calisanlar where ad=‘hakan’ • SELECTKOMUTU • Select * from calisanlar
Sql Veritabanı Dili ( Örnek_2) • Select * fromcalisanlar • whereCalistigi_Saat >24 andCalistigi_Saat <40 • SELECTKOMUTU • Select * from calisanlar where Calistigi_Saat >=40
Sql Veritabanı Dili ( Örnek_3) • Select * fromcalisanlar • where ad=‘hakan’ orCalistigi_Saat >40 • Select * fromcalisanlar • wheresoyad=‘Aşan’ andCalistigi_Saat >40 • SELECTKOMUTU