370 likes | 641 Views
VERİ TABANI YÖNETİM SİSTEMLERİ. Öğr . Gör . Murat ASLANYÜREK. Giriş.
E N D
VERİ TABANI YÖNETİM SİSTEMLERİ Öğr. Gör. Murat ASLANYÜREK
Giriş Veritabanıkavramı ilk olarak 1980’li yıllardaortayaatılmışolmasınarağmen; günümüzdehemenhementümverikullanılanalanlardaVeritabanıYönetimSistemleri(VTYS) olmadanhiçbirşeyyapılamaz hale gelmiştir. Basitbir Web uygulamasından, devasakuruluşlarınağırverilerinekadar, günümüzdebirçokalandaveritabanıuygulamalarınaihtiyaçduyulmaktadır. İşletimsistemlerindensonra en popülerve en çokgelirgetirenyazılımlarVeritabanıYönetimSistemiYazılımlarıdır.
Günümüzde, birçokalandakiveriişlemlerindepekçokVeriTabanıYönetimSistemleriprogramlarıyaygınolarakkullanılmaktadır. Birbirindenfarklıisimleradıaltındaanılanbuprogramlariçinbirçoknesnebirbiriileaynıtemelişleviyerinegetirmekteolup, yaklaşıkolarakaynıteorileredayanarakçalışırlar.
Veritabanı, birkuruluşunuygulamaprogramlarınınkullandığıoperasyonelverilerinbütünüdür. VeritabanıYönetimSistemleri, verilerinfizikselhafızadakidurumlarını, kullanıcılarınerişimlerinidüzenleyensistemlerdir. İlişkiselVTYS’lergünümüzdeyaygınolarakkullanılmaktadır.
TEMEL VERİ TABANI KAVRAMLARI 1. VeriNedir? Verikelimesinintekilhali (datum) Latince’dengelmektedir. Veri, birkişininformülleştirmeyeveyakayıtetmeyedeğerbulduğuher türlüolayvefikiranlamındadır. Bilgisayardaveridepolanacağızaman, çoğunluklaveritabanıyönetimsistemlerikullanılarakgerçekleştirilir. Çünkübutip sistemlerdeyanlışverinindepolanmasınıve/veyaverininistenmeyenkişilerinkullanımınasunulmasınıengelleyenbirtakımimkânbulunmaktadır.
2. VeriTabanıNedir? Veritabanı en geneltanımıyla, kullanımamacınauygunolarakdüzenlenmişverilertopluluğudur. Birbirleriyleilişkileriolanverilerintutulduğu, mantıksalvefizikselolaraktanımlarınınolduğubilgidepolarıdır. Veritabanlarıgerçektevarolanvebirbirleriyleilişkisiolannesneleriveilişkilerimodeller.
Veritabanı, birkuruluşunuygulamaprogramlarınınkullandığıoperasyonelverilerinbütünüdür (toplamıdır). Burada; “kuruluş”, birokul, üniversite, banka, birüretimşirketi, hastane, devletkuruluşu, vb. olabilir. “Operasyonelveri” birkuruluşunçalışabilmesi, işleyebilmesiiçinkullanılançokçeşitliverilerdir.
Örneğin; Ticaribirşirketiçinmüşteribilgileri, satışbilgileri, ürünbilgileri, ödemebilgileri, vb., okuliçinöğrencibilgileri, açılandersler, kimlerinkaydolduğu, öğretmenbilgileri, boşvedoluderslikler, sınavtarihleri, vb., hastaneiçin hasta bilgileri, doktorbilgileri, yataklarındolulukboşluğu, teşhis-tedavibilgileri, malibilgileri, vb …
Belirlibirkonuhakkındatoplanmışverilerbirveritabanıprogramıaltındatoplanır. İstenildiğindetoplananbilgilerintümüveyaistenilenözelliklereuyanlarıgörüntülenebilir, yazdırılabilirhattabilgilerdenyenibilgilerüretilerekbunlarçeşitliamaçlarlakullanılabilir.
3. VeriTabanıYönetimSistemleri (VTYS) Nedir? VTYS, yenibirveritabanıoluşturmak, veritabanınıdüzenlemek, geliştirmekvebakımınıyapmakgibiçeşitlikarmaşıkişlemleringerçekleştirildiğibirdenfazlaprogramdanoluşmuşbiryazılımsistemidir. Diğerbirdeğişle; Veritabanlarınıkurmayı, yaratmayı, tanımlamayı, işletmeyivekullanmayısağlayanprogramlartopluluğuna“veritabanısistemi” ya da “veritabanıyönetimsistemi(VTYS) – data base management system (DBMS)” denir.
VTYS’lerfizikselhafızayıveveritiplerinikullanıcılaradınaşekillendiripdenetleyenvekullanıcılarınastandartbir SQL arayüzüsağlayarakonlarındosyayapıları, veriyapısı, fizikselhafızagibisorunlarlailgilenmekyerineverigiriş-çıkışıiçinuygunarayüzlergeliştirmelerineolanaksağlayanyazılımlardır.
VTYS’deverileritutmaküzerebirçoktürdenesnevebunesnelereerişimleridüzenlemeküzerekullanıcılar, roller vegruplaryeralır. Her birkullanıcının belli haklarıvardır. Bu haklar, kısıtlanabilir. Örneğinbirtabloya da programcığıbirkullanıcıkullanabilirkenbirbaşkasınınhaklarıveritabanıyöneticisitarafındankısıtlanmışolabilir.
4. VeriModelineGöreVeritabanıYönetimSistemleri Yapısalolarakbütünveritabanlarıbirdeğildir. Veritabanlarıverilerisaklamave onlara erişme bakımından farklı tiplere ayrılır.
4.1. HiyerarşikVeriTabanları : Bu veritabanı tipi, anabilgisayarortamlarındaçalışanyazılımlartarafındankullanılmaktadır. Bu türde en çokkullanılanyazılım, IBM tarafındançıkarılan IMS' dir. Uzunbirgeçmişesahipolmasınarağmen, PC ortamınauyarlananhiyerarşikveritabanlarıyoktur. Hiyerarşikveritabanları, bilgileribirağaç(tree) yapısındasaklar. Kök (Root) olarakbirkayıtvebukökebağlı dal (Branch) kayıtlarbu tip veritabanınınyapısınıoluşturur.
4.2. AğVeriTabanları: Hiyerarşikveritabanlarininyetersizkalmasındandolayıbilimadamlarınınortakçalışmasısonucuortayakonulmuşbirveritabanıtürüdür. Ağveritabanlarıverileriağaçlarındaha da gelişmişhaliolangraflar (ağacınkendisideözelbirgraftır.) şeklindesaklarlar. Bu yapıen karışıkyapılardanbiridir.
4.3. İlişkiselVeriTabanları: Edgar Frank CoddTarafındanGeliştirilmiştir. Bu sistemdeverilertabloşeklindesaklanır. Bu veritabanıyönetimsisteminde; verialışverişiiçinözelişlemlerkullanılır. Bu işlemlerdetablolaroperandlarolarakkullanılır. Tablolararasındailişkilerbelirtilir. Bu ilişkilermatematikselbağıntılarla (ilişkilerle) temsiledilir. Günümüzdehemenhementümveritabanıyönetimsistemleriilişkiselverimodelinikullanırlar. İlişkiselmodeli 1970 yılındaCoddönermiştir. Bu model, matematiktekiilişkiteorisine (“the relational theory”) dayanır. İlişkiselverimodelinde(Relational Data Model) verilerbasittablolarhalindetutulur. Tablolar, satırvesütunlardanoluşur
Ödev : DiğerbirVeritabanımodeliolan “NesneyeYönelikVeriTabanıModeli” niaraştırınız…
NedenVeriTabanıKullanılır Bilgisayarortamındaverisaklamaveerişimindegeçmiştengünümüzedeğişikyöntemlerveyaklaşımlarkullanılmıştır. BunlardanGelenekselYaklaşım (Dosya- İşlemSistemi) verileriayrıayrıdosyalardagruplamayadayanır. Verilerisaklamakiçinprogramlama dillerinde kullanılan sıralı (Sequential) ve rastgele (Random) dosyalama sistemlerigibi. Birbiriyleilgiliolanveaynıgrubadahilolanverilerbirdosyada, birbaşkagrubadahilolanveriler de başkabirdosyadatutulurdu.
GelenekselYaklaşımınbirçoksakıncasıvardırvebusakıncalarınberaberindegetirdiğisorunlarınüstesindengelebilmekiçin de VeriTabanıYaklaşımızamanlaGelenekselYaklaşımınyerinialmıştır. GünümüzdeverilerartıkVeriTabanıYaklaşımıilkesinegöre VTYS’ lerdetutulmaktaveişlenmektedir.
GelenekselYaklaşımın (Dosya - İşlemSistemi) Sakıncaları Veritekrarıveveritutarsızlığı Verininpaylaşılamaması Uygulamalardakiher yenigereksiniminvedeğişikliğinyalnızuzmankişiler tarafındankarşılanabilmesi Veriyeerişimveistenenveriyieldeetmegüçlükleri Karmaşıkverisaklamayapılarıveerişimyöntemlerinibilmezorunluluğu Bütünlük(integrity) sorunları Güvenlik, gizliliksorunları Tasarımfarklılıkları, standarteksikliği Yedekleme, yenidenbaşlatma, onarmagibiişletimsorunları
VeriTabanıYaklaşımınınYararları Ortakverilerintekrarınınönlenmesi; verilerinmerkezidenetimininve tutarlılığınınsağlanması Veripaylaşımınınsağlanması Fizikselyapıveerişimyöntemikarmaşıklıklarının, çokkatmanlımimarilerle kullanıcılardangizlenmesi Her kullanıcıyayalnızilgilendiğiverilerin, alışıkolduğukolay, anlaşılır yapılardasunulması Sunulançözümleme, tasarımvegeliştirmearaçlarıileuygulamayazılımı geliştirmeninkolaylaşması. Veribütünlüğüiçingerekliolanaklarınsağlanması, mekanizmalarınkurulması Güvenlikvegizliliğinistenilendüzeydesağlanması Yedekleme, yenidenbaşlatma, onarmagibiişletimsorunlarınaçözüm getirilmesi
VeriTabanıYönetimSistemlerininSağladığıYararlar - AynıverideğişikkişilerinPC’lerindeveyadeğişikbilgisayarlardatekrartekrartutulmaz; veritekrarı (“data redundancy”) azaltılırya da yokedilir. Veritutarlılığı (“data consistency”) : Aynıverinindeğişikyerlerdebirkaçkopyasınınbulunması “bakım” zorluğugetirir: biryerdegüncellenenbiradresbilgisibaşkayerdegüncellenmedenkalabilirvebu durum veritutarsızlığına (“data inconsistency”) yolaçar.
Veripaylaşımı / Eşzamanlılık (“concurrency”) : Veritabanıyönetimsistemi(VTYS) kullanılmadığıdurumlardaveriyesıralıerişimyapılır. Yanibirdençokkullanıcıaynıandaaynıveriyeerişemez. BirVTYS’deiseverinintutarlılığınıvebütünlüğünübozmadanaynıveritabanlarınasaniyedeyüzlerce, binlerceerişimyapılabilir.
Veribütünlüğü (“data integrity”): Birtablodanbiröğrencikaydısilinirse, öğrencivarolduğudiğertümtablolardansilinmelidir. Verigüvenliği (“data security”) : Verininisteyerekya da yanlışkullanımsonucubozulmasınıönlemekiçinçoksıkımekanizmalarmevcuttur. Veritabanınagirmekiçinkullanıcıadıveşifreylekorumanınyanısırakişilersadecekendileriniilgilendirentablolarıya da tabloiçindebelirlikolonlarıgörebilirler.
VeriBağımsızlığı (“data independence”) : Programcı, kullandığıverilerinyapısıveorganizasyonuileilgilenmekdurumundadeğildir. VERİ BAĞIMSIZLIĞI, VTYS’lerininen temelamaçlarındandır.
Bilinen VTYS Programları MS SQL Server: BirortavebüyükölçekliVTYS’dir. SQL’eeklentileryazmakiçinT-SQL’idestekler. Oracle: DahaçokyüksekölçekliuygulamalardatercihedilenbirVTYS’dir. SQL’eeklentileryapmakiçin PL/SQL geliştirilmiştir.
Sybase: BirortavebüyükölçekliVTYS’dir. SQL’eeklentileryazmakiçinT-SQL komutlarınıdestekler. Ülkemizdedahaçokbankacılıkvekamusalalanlardatercihedilmektedir. Informix: BirortavebüyükölçekliVTYS’dir.
MySQL: Genellikle Unix-Linux temelliWeb uygulamalarındatercihedilenbirVTYS’dir. Açıkkodbiryazılımdır. Küçük-ortaölçeklidir. Özellikle Web içingeliştirilmişbirVTYS’dirdenilebilir. Postrage SQL: Bu da MySQL gibiaçıkkodbirVTYS’dir.
MS Access: Çoklukullanıcıdesteğiyoktur. İşletimsistemininsağladığıgüvenlikseçeneklerinikullanır. Bununyanında belli sayıdakaydakadar (1000000 civarı) yada belli birboyutun (yaklaşık 25MB) altınakadarbirsorunçıkartmadankullanılabilecekbirküçükölçekliVTYS’dir. Advantage:TürkprogramcılartarafındangeliştirilenbirortavebüyükölçekliVTYS’dir.
DB/2: IBM’inframework’lereyönelikbüyükölçekliVTYS’dir.
GenelBilgi Bu dersnotundapopülerolan VTYS programlarınınisimleriyazılmıştır. Bunlarındışındadahabirçok VTYS programımevcuttur. VTYS’lerinAvrupagenelindekipazarpaylarıyaklaşıkolarakaşağıdalistelenmiştir. En büyükPazarpayıIBM(DB/2) ile Oracle arasındadır. Hemenarkasından MS SQL Server, Informix veSybase gelmektedir. Yenibaşlayanlariçin; hangiVTYS’yiöğrenmem en iyisiolursorusunuyanıtlamakgerekebilir. Ülkemizdeinsankaynaklarıaçısından en çokkalifiyeelamanaranan VTYS Oracle vearkasından da MS SQL Server gelmektedir.
IBM ....................... %37.8 Oracle .................... %26.3 Microsoft ................ %15.4 Informix ................. %3.2 Sybase ................... %3 Digerleri ................. %14.3 2001 yılındabiraraştırmayagöreAvrupaçapındaVTYS’lerininpazarpayları [kaynak: Gartner]
VTYS’lerinbirçoğuSQL’inkarşılayamadığıdurumlardakullanılmaküzereekprogramlamakomutlarıbarındırırlar. Bu işiçin MS SQL Server ve Sybase SQL Server Transact SQL (T-SQL) denilenkomuttakımlarınıiçerir. Oracle ise PL/SQL ilebuişeçözümgetirmiştir. Bu dillersayesinde Stored Procedure (saklıprosedürler), Trigger, Fonksiyongibiveritabanlarıiçinvazgeçilmezolannesneleryazılabilmektedir.
Projeve VTYS arasındakiilişki Herhangibirveritabanıprogramındaçalışmayabaşlanılmadanönce, yapılacakişeuygunveritabanıtasarımıyapılmalıdır. Bu işin en önemliaşamasıdır. Başlangıçtaiyitasarlanamayanbirveritabanı, ileridegeriyedönüşüolmayanverimsizbirbilgiyığınınadönüşebilir.
En basithaliileveritabanıtasarımında; hangitablolarınolacağı, butablolardahangialanlarınolacağı, tablolararasındakialanilişkilerininnelerolacağıvealanlaraaitözelliklerintanımlanmasıyapılır. Alan özelliklerindealanadı, alan tipi, alanınuzunluğu, alanınvarsayılandeğeri, bualanayazılacakverileringeçerlilikkoşullarınınbaşlangıçtatasarlanmasıgerekir.
Birprojedehangiveritabanınınseçileceği, projeninçapıileilgilibirkarardır. Aşağıdakisorularaverilecekcevaplarprojeninçapıkonusundakararvermedeyardımcıolurlar.
Projedekaçtablokullanılacak? Her birtabloda en fazlakaçsatıryeralabilir? (tablodakibilgisayısıdır) Projeyeaynıanda en fazlakaçkullanıcıbağlanacak? Projegünlükkaç transaction (INSERT-DELETE-UPDATE) gerçekleştirecek? Projeen fazla ne kadarlıkyerkaplayacak ne kadarlıkbirveritabanıdosyasına ihtiyaçduyulacak? Projeiçingüvenlik ne dereceönemli?