Download as pdf or txt
Download as pdf or txt
You are on page 1of 8

Linux Kullanclar Dernei Dzenli Seminerleri

VERTABANLARINA GR
Haziran, 2002 ANKARA Gncelleme : Temmuz 2002 Devrim GNDZ LKD, TR.NET http://seminer.devrim.oper.metu.edu.tr devrim@oper.metu.edu.tr

2002

Veritaban nedir?
http://www.m-w.com adresindeki Merriam-Webster szlnde bir veritaban : a usually large collection of data organized especially for rapid search and retrieval (as by a computer) olarak tanmlanr. Bir veritaban ynetim sistemi (DBMS: DataBase Management System), kitaplklar uygulamalar ve yardmc programlarn birlemesinden oluur ve verilerin saklanmas ve ynetilmesi ile ilgili konulardaki ayrntlardan veritaban yneticilerini kurtarr. Ayn zamanda, kaytlarn gncellenmesi ve kaytlar zerinde aratrma yaplmas da mmkndr. Veritaban ynetim sistemleri zamanla ok daha fazla zellikler kazanmaktadrlar. Belirli bir tarzda organize edilmi bilgi koleksiyonudur. En az bir tablodan olumak zorundadr. Veritabannn iindeki tablolar ise veri alanlarndan oluur (data field). Kitaplklar, uygulamalar ve yardmc programlarn birlemesinden oluur. Verilerin saklanmas ve ynetilmesi ile ilgili konulardaki ayrntlardan veritaban yneticilerini kurtarr. Kaytlarn gncellenmesi ve kaytlar zerinde aratrma yaplmas da mmkndr.

Veritaban trleri
a.Hiyerarik Veritaban b.likisel Veritaban (likisel Type) c.Nesnesel Veritaban Bu yazda, gnmzde en yaygn kabul edilen ilikisel veritaban modeli anlatlacaktr.

likisel Veritaban (Relational Database) Modeli


Veritaban ynetim sistemleri teorisi 1970de A likisel Model of Data for Large Shared Data Banks, (E. F. Codd) yazs ile byk bir ilerleme kaydetmitir. Bu devrim niteliindeki yazda, Codd iliki mantn tantm ve tablolarn gerek dnyadaki nesneleri gstermekte, nitelemekte nasl kullanlabileceini belirtmitir. likisel veritabanlarn tanmlayan baz nemli kurallar vardr: ncelikle, tablolardaki kaytlar matematiksel adan tuple olarak tanmlanrlar. Bir tuple tanmlanm bir veri tipi olan bileenlerden oluan sral grup olarak tanmlanr. Tm tuplelar ayn sayda ve tipte bileenlerden oluur. rnek vermek gerekirse,

{10, Veritabanlarna Giri, 2002-06-12} {11, Progress Veritaban Sunucusu, 2002-06-26} rneimizdeki her bir tuple da 3 bileen bulunmaktadr: Ankaradaki 2002 ylndaki kanc seminer olduu (integer) Seminerin konusu (char) Seminerin tarihi (timestamp) likisel veritabanlarnda bu kmeye ya da tabloya eklenen tm kaytlar ayn yapda olmaldrlar, dolaysyla aadakilere izin verilmez:

{ Veritabanlarna Giri, 2002-06-12} eksik bileen {10, Veritabanlarna Giri, 2002-06-12 , Devrim GNDZ} fazla bileen {2002-06-12, Veritabanlarna Giri, 10} yanl bileen tipleri (yanl srada) Bu aamada, row ve record tanmn yapmak yerinde olacaktr. Row (record, kayt) , bir tabloda, stte grdmz her bir satra, kmeye verilen addr.

Ayrca tuple lardan oluan bir tabloda ayn veriler bulunmaz.(no duplicate record). Dolaysyla ilikisel veritabanlarndaki herhangi bir tabloda birbiriyle tamamen ayn iki kayt (row or record) bulunamaz. Bu, ok gereksiz bir snrlama olarak grnebilir. rnek vermek gerekirse, ayn kullancnn ayn mal iki kez sipari etmesi grnrde engellenmitir. Bunu da tabloya bir bileen ekleyerek zebilirsiniz. Bir kayttaki her bir bileen atomik, yani bir veri olmaldr; baka bir kayt ya da dier bileenlerin listesi olamaz. Ayn zamanda, daha nce de belirttiimiz gibi, tablodaki bileenlerin veri tipleri de sttekilerle ve dolaysyla tablo tanmlarndakilerle ayn olmaldr. Dier bir deyile, veritaban tarafndan desteklenen veri tiplerinden biri olmaldr. Birbiriyle e kaytlar ayrmak iin kullanlan bileenlere key denir. Tablodaki bir kayd dier tm kaytlardan ayrmak iin kullandmz bileene, primary key (birincil anahtar) ad verilir. Primary key, o kayd tekil (unique) yapar. Tm ilikisel veritabanlarnda her bir tablo ya da ilikide mutlaka primary key olmaldr. likisel veritaban yapsn belirleyen son bir kural da referential integrity (btnlk denetimi). Veritabannda uygulama gelitiren programclar yazdklar kodun veritabannn btnln bozmamasna dikkat etmelidirler. Uygun bir rnek bir mteri kaydnn silinmesi olabilir. Eer mteri tablosundan bir kayt silinecekse, o kiinin sipari tablosundaki siparilerinin de silinmesi gerekir. Aksi takdirde olmayan bir mteriye ait sipariler veritabannda kalacaktr.

Tablolarn yaplandrlmas
Ayn konu ile ilgili olan bilgilerin belirlenmelidir. Olas olan en yksek seviyede yapsal bir ekilde tablolarn oluturulmas salanmaldr Ayn konu ile ilgili alanlarn kendi tablolarnda ayn tabloda toplanmas salanmal Veri tekrar olmamal Gereksiz alanlar kullanlmamal Alanlar basite indirgenmelidir.

SQL Nedir?
SQL (Structured Query Language), bir veritaban dilidir. Program gelitiricileri ve Veritaban kullanclar, bir veritabanna veri eklerken, silerken, gncellerken veya sorgularken bu dili kullanrlar. Hem ANSI hem de ISO standard olmasna ramen, ou veritaban program standart dillere ekleme yaparak bu dili kullanmaktadrlar. SQL'in kullandmz bir ka sorgulama temel komutu vardr. Bunlarn en basitleri: SELECT (veri seerken kullanlr) DELETE(veri silerken kullanlr) UPDATE (veri gncellerken kullanlr) INSERT (veri girerken kullanlr)

rnekler:
SELECT * FROM tablo1 ; // tablo1 adl tablodaki tm verileri seer. SELECT * FROM tablo1 WHERE adi=Devrim; // tablo1 tablosundan, adi ksmnda Devrim yazan tm kaytlar getirir. SELECT * FROM tablo1 WHERE adi LIKE %evrim; // tablo1 tablosunda, adnn ba ksm ne olursa olsun, sonu evrim olanlar listeler. DELETE FROM tablo1; // tablo1 tablosundaki tm verileri siler. DELETE FROM tablo1 WHERE adi=Devrim; // Ad alannda Devrim olan tm kaytlar siler. UPDATE tablo1 SET adi=Anl; // tablo1 tablosundaki tm kaytlarn adi alann Anl ile deitirir. UPDATE tablo1 SET adi=Anl WHERE adi=Devrim; // tablo1 tablosundaki ad ksmnda Devrim yazan tm kaytlar Anl ile deitirir. INSERT INTO tablo1 (adi,soyadi) VALUES (Devrim,Gndz); // tablo1 tablosuna, Devrim Gndz satrn ekler ( {Devrim, Gndz} )

Neden Veritaban?
Gerekten veritabanna gereksinmeniz var m? En bata bu soruya yant vermeniz gerekir. Veritabanlar, stte de belirtildii gibi, verilerin saklanmas ve ynetilmesi iin kullanlmaldr. Kk bilgiler iin metin dosyalar yeterli olacaksa bunun iin veritaban kullanlmas gerekmeyebilir. Bir kurumun tm belgeleri zerinde arama/sorgu yaplacaksa bunun iin de veritaban kullanmanz gerekmeyecektir, bir web indeksleme program da

bunun iin yeterli olabilir. Ancak, bir e-ticaret sitesinde mterilerin bilgilerinin tutulmas sz konusu ise, ya da bir kurumun deiik birimlerine kullanc/mteri/personel giri/k bilgileri tutulacaksa bunun iin verinin byklne ve alacanz platforma uygun bir veritaban sunucusunu kullanmak gerekecektir. Aadaki sorulara vereceiniz yantlar size belirli konularda k tutacaktr:

Veri sadece bir konuyu ieren bir listenin iinde mi? Sorun karmak m?

flat file olarak adlandrlrlar. Eer sadece bir konu balnz varsa bu yazda bahsedilen ilikisel veritabanlarna bakn ve sadece bir tablo kullann. Deiik konulardaki veriler birden fazla tablolarda saklanabilir. Bunun iin ilikisel veritaban gereklidir. Bunlardan birini seebilirsiniz. statiksel bir analiz Bunun iin en gl teknik veritabann veriyi kontrol etmek ve ynetmek iin kullanrken, SPSS gibi bir yazlm da veritabannn mi yapmak yannda analiz iin kullanmaktr. rnek vermek gerekirse, SPSS, istiyorsunuz? Access tablo ya da sorgularn okuyacaktr. Bir ynetim mi Ynetim amalar iin konular biraz farkldr ancak genel prensipleri uygulayabilirsiniz. yapacaksnz? Metinsel FileMaker Pro gibi yazlmlar, metinsel bilgileri daha rahat toparlayabilirler. veritabanlar Kullanm kolayl Bir veritabannn kullanm kolayl

Bilimsel formllere Veriyi veritabannda tutmak, ancak bunu analiz etmek iin baka gereksinmeniz programlar kullanmak isteyebilirsiniz. olacak m? Veriyi paylama Verinizi bir a zerinde sunacak msnz? Veriyi ayn zamanda webde gereksinmeniz de sunmak mmkndr. olacak m? Veriyi webde sunacak msnz?
Internet zerinden veritabanna ulama, hzla ilerleyen bir alandr. Hemen hemen tm zmler programlama becerileri gerektirirler. Ancak, bunun yannda baz programlar bu konuda kullancya yardmc olabilmektedir. Bu yazlmlarla verinizi gelitirebilir ve web ucu ile verinizi webde sunabilirsiniz.

Veritaban eitleri
Kendinize bir veritaban semeden nce, bu veritaban ile ne yapacanza karar vermelisiniz. Bunun iin aadaki basit sorular yantlamakla ie balayabilirsiniz: 1.Bu veritaban ile neler yapacaksnz? Kk bir irket alanlarnn zel bilgileri mi tutulacak, yoksa byk bir irketin binlerce mterilerinin bilgileri mi? 2.Sitenizi gnde ka kii ziyaret edecek? 3.Ayn anda ka ilem yaplacak? 4.Gvenlik ne lde olacak? 5.Verilerinizin gvenlii ne lde olacak? Genel, genel olduu kadar da yanl bir kan vardr: Paral rnler iyidir, cretsiz rnler iyi deildir! Linux, bu tezi rten, bilgisayar sektrndeki son yllardaki en iyi konudur.

Dolaysyla, bir veritabannn cretsiz olup olmamasndan ok iinizi grp grmeyecei nemlidir. Birka veritabann inceleyelim: 1. Microsoft Access Microsoft firmasnn Office paketi iinden kan Access, paral veritabanlar arasnda nispeten ucuz olarak gze arpar. Kk lekli uygulamalardaki gereksinimlerinizi karlayabilir. Eer bir web sitesinde veri miktar ve ayn anda yaplan ilem saylar az ise, Access kullanabilirsiniz. Tek bir veri tablosunda 2 GB a kadar veri depolayabilir ve ayn anda 255 balantya izin verebilirsiniz. Access, MS Windows sistemlerinde kullanlamamakta, bu da yaygnlamasn engellemektedir. Transaction locking zelliine sahiptir, ancak trigger ve stored procedure zelliklerine sahip deildir. 2. MySQL MySQL Inc. Tarafndan kodlanan MySQL, Access ile karlatrldnda daha gvenlidir. Windowsun yan sra Linux, OS/2, Solaris, AIX ve birok iletim sistemini desteklemesi nedeniyle ok yaygndr.. Ev kullanclar tarafndan, kolay kurulumu ve gelen kurulum paketleri nedeniyle skca tercih edilmektedir. Tablo bana 8 TB veri depolayabilmektedir. MySQL in en byk dezavantajlarndan biri cretsiz olmasndan kaynaklanan destek eksikliidir. zellikle web uygulamalar iin cok hzldr. Transaction lar desteklemedii iin alabildiine yalndr ve transaction destei olmadan gerekletirilebilecek web uygulamalar iin ok hzl bir alternatiftir. Olduka fazla yazlm destei bulunmaktadr. 3. IBM DB2 IBM firmasnn rn olan DB2, Access ve MySQL e gre daha performansl, ancak kk iletmelere gre daha yksek maliyete sahiptir. Windows ve *nix sistemlerinde alabilir. Transaction locking, trigger ve stored procedure zelliklerine sahiptir. 4. Informix cretli ve gl bir veritabandr. Orta lekli iletmelerin ykn kaldrabilecek kapasitededir. 1994deki Postgres kodundan gelitirilmeye balanmtr. 5. Microsoft SQL Server Yine Microsoft firmasnn bir rn olan Microsoft SQL Server (MSSQL), iyi bir performansa sahiptir. En byk dezavantaj, sadece Windows zerinde alabilmesidir. Kullanm kolayl, gvenilirlii ve ilem gcyle dikkat ekmektedir. Maliyeti dier veritabanlarna gre yksektir. Tablo bana 4 TB veri depolayabilmektedir. Transaction locking, trigger ve stored procedure zelliklerine sahiptir. 6. PostgreSQL

PostgreSQL, veritabanlar iin yukarda bahsedilmi olan ilikisel modeli kullanan ve SQL standart sorgu dilini destekleyen bir veritaban ynetim sistemidir. PostgreSQL ayn zamanda iyi performans veren, gvenli ve geni zellikleri olan bir DBMStir. Hemen hemen tm UNIX ya da Unix trevi (Linux, FreeBSD gibi) iletim sistemlerinde alr. Ayrca NT ekirdekli tm Windows sistemlerde de altrlabilir. cretsiz ve ak kodludur. PostgreSQL dier ticari ya da ak kodlu veritabanlarnda bulabileceiniz zelliklerin hemen hemen hepsini (ya da daha fazlasn) kapsar. PostgreSQL zellikleri (PostgreSQL FAQda listelendii gibi): Transactions Subselects Views Foreign key referential integrity Inheritance User-defined types Rules 7. Oracle Oracle, dnyann en gl ve gvenilir veritaban olarak gsterilmektedir, ancak ok yksek maliyeti nedeniyle sadece byk kurumlarn tercih edebilecekleri bir veritabandr. Windows ye Unix sistemlerinde kullanlabilmektedir. Oracle, snrsz sayda tablolar desteklemektedir. ok byk yazlm destei vardr. 8. Interbase Linux platformu zerinde alan, cretsiz bir veritaban sunucusudur. Yaygn deildir. cretsizdir. 9. Progress Linux ve Windows platformu zerinde alan ok kuvvetli bir veritaban sunucusudur.

Hangi veritabann semeli?


Yukarda da grld gibi, her veritabannn farkl zellikleri bulunmaktadr. Eer, kk younlukta trafie sahip bir web siteniz varsa, bunun iin maliyeti dierlerine gre daha dk olan Access kullanlabilir. Web uygulamalar iin, amacnz veritaban oluturmak deil de, veritabann kullanmak ise, MySQL bunun iin biilmi kaftandr. Daha byk ve orta lekli uygulamalar iinse, kullanm kolayl asndan Progress ya da MS SQL kullanolabilir. MS SQLin Windows ortamnda snrl bir kullanm alan olduunu da unutmamak gerekir. Bu iletmeler, Linux zerinde PostgreSQL kullanrlarsa hem sfr maliyetle (teknik adan) hem de daha iyi performansla ilemlerini ynetebilirler. Oracle ise ok yksek gvenilirlik ve ilem gc gerektiinde tercih edilen bir veritaban sunucusudur.

PostgreSQL burada yine dk maliyetli sistemler gerektiinde, zellikle yurt dnda tercih edilmektedir.

Veritabanlar konusunda Trkiyede nasl destek alabilirim?


lkemizde cretli destek ok fazla gelimemekle beraber, bu amala gnll insanlarn ye olduu e-posta listeleri kurulmutur. Bunlardan ikisi aada verilmitir:
vts@linux.org.tr

(Veritabanlar iin tartma listesi (ye olmak iin, http://liste.linux.org.tr web arayzn kullanabilirsiniz.) pgsql-tr-genel@postgresql.org (PostgreSQL Trkiye E-posta listesi. PostgreSQL hakknda her trl konu konuulabilir.)

Baz linkler:
Tm veritabanlar iin: http://foundries.sourceforge.net/databases PostgreSQL : http://www.PostgreSQL.org (resmi sayfa) http://gborg.PostgreSQL.org (projeler) http://techdocs.PostgreSQL.org (belgeler)
http://techdocs.oper.metu.edu.tr (resmi yanss) (Bu sitede, veritabanlar konusunda yardmc olabilecek kiiler bulunmaktadr.)

MySQL Oracle

: http://www.mysql.com : http://www.oracle.com/ http://otn.oracle.com/

Belgeye katkda bulunanlar


Bu belgenin olumasndaki ve gncellenmesindeki katklarndan dolay, Doruk FEK (dfiek@fiek.com.tr) ve Burak DAYIOLUna (dayioglu@metu.edu.tr) teekkr ederim.

Belgenin en gncel hali


Belgenin en gncel haline, http://devrim.oper.metu.edu.tr/belgeler.php adresinden ulaabilirsiniz. Bu belgeyi ayn zamanda http://www.linux.org.tr/belgeler.php adresinden de indirebilirsiniz.

Belgenin son gncelleme tarihi : 16.07.2002 01:15

You might also like