Veri Tabanı Yönetim Sistemi-I

Embed Size (px)

Citation preview

  • 1

    VER TABANI YNETM SSTEMLER I Alako BURMA

  • 2

    VER TABANI YNETM SSTEMLER I Alako BURMA

    NDEKLER VER TABANI YNETM SSTEMLER...................................................................... 2 1. TEMEL VER TABANI KAVRAMLARI ................................................................. 2

    1.1. Veri Nedir? ................................................................................................... 2 1.2. Veri Taban Nedir ? ...................................................................................... 3 1.3. Veri Modeline Gre Veritaban Ynetim Sistemleri ...................................... 4 1.4. Neden Veritaban Kullanlr? ........................................................................ 6 1.5. Veri Taban Ynetim Sistemlerinin Salad Yararlar ................................. 7 1.6. Bilinen VTYS Programlar ............................................................................ 7 1.7. Proje ve VTYS arasndaki iliki..................................................................... 8

    2. VER ve VER MODELLER .............................................................................. 10 2.1. Model Nedir?.............................................................................................. 10 2.2. Veri Kavram .............................................................................................. 11

    2.2.1. Veri Gvenlii...................................................................................... 12 2.2.2. Veri Tekrar ve Veri Btnl ............................................................ 12

    2.3. Veri Modeli ................................................................................................. 13 2.3.1. Yaplar................................................................................................. 13 2.3.2. Kstlar ................................................................................................. 14 2.3.3. lemler ............................................................................................... 14

    2.4. Balca Veri Modelleri................................................................................. 15 2.4.1. Basit Veri Modelleri ............................................................................. 15 2.4.2. Gelitirilmi Veri Modelleri ................................................................... 16

    3. VER TABANI TEMEL KAVRAMLARI ............................................................... 22 3.1. Tablo ve Elemanlar ................................................................................... 22 3.2. Veri Tipi (Data Type) .................................................................................. 23

    3.2.1. Access Veri Taban Veri Tipleri ........................................................... 23 3.2.2. MySQL Veri Taban Veri Tipleri........................................................... 24 3.2.3. Oracle Veri Taban Veri Tipleri ............................................................ 24

    3.3. Zorlayc (Constraint).................................................................................. 25 3.4. Anahtar (Key) ............................................................................................. 26 3.5. Index (ndeks) ............................................................................................ 27 3.6. View (Grnt) ........................................................................................... 27 3.7. Joining (ilikilendirme) ................................................................................ 28

    4. VER TABANI TASARIMI ve NORMALZASYONU........................................... 29 4.1. Veri Taban Tasarm.................................................................................. 29 4.2. Veri Taban Normalizasyonu ...................................................................... 33 4.3. likisel Veri Taban Ynetim Sistemleri ..................................................... 35

    5. RNEK BR VER TABANI TASARIMI ve NORMALZASYONU ...................... 37 5.1. rnek Personel Projesi Veri Taban Tasarm ............................................ 37

    6. SQL VER LEME DL .................................................................................... 41 6.1. SQL Nedir? ................................................................................................ 41 6.2. Veri Taban Programlarnda ve SQL de Deiken Tanmlama .................. 42 6.3. SQL Program altrlmas ve Yazm Kurallar ........................................ 43

  • 3

    VER TABANI YNETM SSTEMLER I Alako BURMA 7. TEMEL SQL KOMUTLARI-I .............................................................................. 48

    7.1. CREATE (Yarat) Komutu ........................................................................... 48 7.2. ALTER (Dzenle) TABLE Komutu.............................................................. 51 7.3. DROP (Sil) TABLE Komutu........................................................................ 52 7.4. DESCIRIBE Komutu................................................................................... 52 7.5. INSERT (Ekle) Komutu .............................................................................. 53

    8. TEMEL SQL KOMUTLARI-II ............................................................................. 60 8.1. SELECT (Se) Komutu .............................................................................. 60

    8.1.1. SQL Operatrleri ................................................................................. 62 8.1.2. Order By.............................................................................................. 65 8.1.3. Distinct ................................................................................................ 67

    8.2. UPDATE (Gncelle) Komutu...................................................................... 68 8.3. DELETE (Sil) Komutu................................................................................. 70

    9. SQL de FONKSYONLAR ................................................................................ 71 9.1. SUM (Topla) Fonksiyonu............................................................................ 71 9.2. AVG (Ortalama) Fonksiyonu ...................................................................... 71 9.3. MAX (En Byk) Fonksiyonu ..................................................................... 72 9.4. MIN (Em Kk) Fonksiyonu...................................................................... 72 9.5. COUNT (Say) Fonksiyonu.......................................................................... 73

    10. SQL de GRUPLANDIRMA ............................................................................ 75 10.1. GROUP BY (Gruplandr) Deyimi............................................................. 75 10.2. HAVING (Sahip) Deyimi ......................................................................... 77

    11. SQL de JOIN (BRLETRME) LEM......................................................... 79 11.1. JOIN (Birletirme) lemi......................................................................... 79 11.2. JOIN lemine Ait rnekler ..................................................................... 83

    12. SQL de YNETMSEL FONKSYONLAR..................................................... 87 12.1. VIEWS ( Tablo Grnm)..................................................................... 87 12.2. CREATE TABLESPACE (Tablo Uzay = Veri Alan)............................... 89 12.3. CREATE USER (Kullanc) ..................................................................... 89 12.4. CREATE ROLE ...................................................................................... 90 12.5. CREATE INDEX ..................................................................................... 90 12.6. CREATE SEQUENCE ............................................................................ 91 12.7. GRANT ................................................................................................... 91 12.8. REVOKE................................................................................................. 91

    KAYNAKLAR..92

  • 4

    VER TABANI YNETM SSTEMLER I Alako BURMA

    VER TABANI YNETM SSTEMLER Veritaban kavram ilk olarak 1980li yllarda ortaya atlm olmasna ramen; gnmzde hemen hemen tm veri kullanlan alanlarda Veritaban Ynetim Sistemleri (VTYS) olmadan hibir ey yaplamaz hale gelmitir. Basit bir Web uygulamasndan, devasa kurulularn ar verilerine kadar, gnmzde bir ok alanda veritaban uygulamalarna ihtiya duyulmaktadr. letim sistemlerinden sonra en popler ve en ok gelir getiren yazlmlar Veritaban Ynetim Sistemi Yazlmlardr.

    Gnmzde, bir ok alandaki veri ilemlerinde pek ok Veri Taban Ynetim Sistemleri programlar yaygn olarak kullanlmaktadr. Birbirinden farkl isimler ad altnda anlan bu programlar iin bir ok nesne birbiri ile ayn temel ilevi yerine getirmekte olup, yaklak olarak ayn teorilere dayanarak alrlar.

    Veri taban, bir kuruluun uygulama programlarnn kulland operasyonel verilerin btndr. Veritaban Ynetim Sistemleri, verilerin fiziksel hafzadaki durumlarn, kullanclarn eriimlerini dzenleyen sistemlerdir. likisel VTYSler gnmzde yaygn olarak kullanlmaktadr.

    1. TEMEL VER TABANI KAVRAMLARI

    1.1. Veri Nedir?

    Bilgi (information) kavram yeni biimlenmeye balayan bir kavramdr; zerindeki dnce ekolleri henz yeterince gelimediinden, ngilizcede bile, bir ok anlama ekilmektedir. Bu kavram, daha nce de deinildii gibi, eitli alardan balca u ekillerde aklanmaktadr:

    Bilgi, bir nesne veya olayda veya bunlara ilikin raporlarda ortaya kan mesaj ile ilgilidir. Bu adan ele alndnda, sadece kaynan bir fonksiyonu olma zellii tar ve bazen veri olarak da ifade edilir.

    Dier bir adan bilgi, mesajn iletilmesini aklayan bir kavramdr. Bu adan ele alndnda bilgi, mesajn iletilmesi ile ilgili ihtimal hesaplarna dayanan, belirsizliin azaltlmas iin gerekli olan bir kavramdr. Bir baka ifadeyle, bu anlamda bilgi iletiim kanalnn da bir fonksiyonudur.

    Dier bir adan ise, bilgi bir alc tarafndan kazanlan anlam ile ilgilidir. Bu anlamdaki bilgi, hem iletiim kaynann hem de alcnn bir fonksiyonudur.

    Bu grlerin birincisi, literatrde fazla benimsenmeyen bir grtr. Genellikle veri ile bilgi arasnda farkllk olduu ve verinin bilgi elde etmeye yarayan ilenmemi ham malzeme olduu kabul edilir. Kii; bilmek, renmek istedikten ve veriyi kullanmaya baladktan sonra bilgi ortaya kar.

    BLM 1

  • 5

    VER TABANI YNETM SSTEMLER I Alako BURMA

    kinci gr en yaygn olandr. Buna gre bilgi anlaml biimde derlenen ve birletirilen veridir ve imdiki zamanda ve gelecekte verilecek kararlar iin varolan gerek bir deerdir. Bir baka ifade ile, bir kaynaktan, bir alcya iletilen mesajn ieriidir. Bu anlamda bilgi, karar verme ile balantldr ve dolaysyla veriye gre daha etkin bir kavramdr. Veri kelimesinin tekil hali (datum) Latinceden gelmektedir. Szlk anlam gerek tir. Fakat, veri her zaman somut gerekleri gstermez. Bazen, kesin deildirler veya hi olmam eyleri, rnein bir fikri tarif etmek iin kullanlrlar. Burada bahsedildii ekliyle veri, bir kiinin formlletirmeye veya kayt etmeye deer bulduu her trl olay ve fikir anlamndadr. Bilgisayarda veri depolanaca zaman, ounlukla veri taban ynetim sistemleri kullanlarak gerekletirilir. nk bu tip sistemlerde yanl verinin depolanmasn ve/veya verinin istenmeyen kiilerin kullanmna sunulmasn engelleyen bir takm imkn bulunmaktadr.

    1.2. Veri Taban Nedir ?

    Veritaban en genel tanmyla, kullanm amacna uygun olarak dzenlenmi veriler topluluudur. Birbirleriyle ilikileri olan verilerin tutulduu, mantksal ve fiziksel olarak tanmlarnn olduu bilgi depolardr. Veritabanlar gerekte var olan ve birbirleriyle ilikisi olan nesneleri ve ilikileri modeller. Veri taban, bir kuruluun uygulama programlarnn kulland operasyonel verilerin btndr (toplamdr). Burada; kurulu, bir okul, niversite, banka, bir retim irketi, hastane, devlet kuruluu, vb. olabilir. Operasyonel veri bir kuruluun alabilmesi, ileyebilmesi iin kullanlan ok eitli verilerdir. Ticari bir irket iin mteri bilgileri, sat bilgileri, rn bilgileri, deme bilgileri, vb., okul iin renci bilgileri, alan dersler, kimlerin kaydolduu, retmen bilgileri, bo ve dolu derslikler, snav tarihleri, vb., hastane iin hasta bilgileri, doktor bilgileri, yataklarn doluluk boluu, tehis-tedavi bilgileri, mali bilgileri, vb Belirli bir konu hakknda toplanm veriler bir veritaban program altnda toplanr. stenildiinde toplanan bilgilerin tm veya istenilen zelliklere uyanlar grntlenebilir, yazdrlabilir hatta bilgilerden yeni bilgiler retilerek bunlar eitli amalarla kullanlabilir. Veri taban ynetim sistemi(VTYS), yeni bir veritaban oluturmak, veri tabann dzenlemek, gelitirmek ve bakmn yapmak gibi eitli karmak ilemlerin gerekletirildii birden fazla programdan olumu bir yazlm sistemidir. Veri taban ynetim sistemi, kullanc ile veri taban arasnda bir arabirim oluturmaktadr ve veri tabanna her trl eriimi salar. Veri tabannn tanmlanmas: veri tabann oluturan verilerin tip ve uzunluklarnn belirlenmesidir. Veri tabann oluturulmas ise veri iin yer belirlemesi ve saklama ortamna verilerin yklenmesini ifade eder. Veri taban zerinde ilem yapmak; belirli bir veri zerinde sorgulama yapmak, meydana gelen deiiklikleri yanstmak iin veri tabannn gncellenmesi ve rapor retilmesi gibi ileri temsil eder. Ayrca veri taban ynetim sistemi, verinin geri arlmasn salar. Veri tabanna yeni kayt eklemek, eskileri armak ve gerekli dzeltmeleri yapmak yoluyla, verinin bakmn ve srekliliini gerekletirir, kaytlara yeni veri eklemek ve yeni kaytlar oluturmakla, veri tabann geniletir.

  • 6

    VER TABANI YNETM SSTEMLER I Alako BURMA

    Bir veritabanndan beklenen zellikler, verileri korumas, onlara eriilmesini salamas ve baka verilerle ilikilendirilmesi gibi ilemleri yapabilmesidir. Veritaban kullanlarak, verilerden daha kolay yararlanlabilir, istenilen veriye ok kolay eriilebilir, eitli sorunlarn zmnde yardmc olacak yeni bilgiler retilebilir. En nemlisi veriler bir merkezde toplanabilir, herkesin bu verilere yetkileri lsnde erimesi, dzeltmesi, silmesi veya grebilmesi salanabilir. Bylece veri giriinde ve veriye eriimde etkinlik ve gvenirlilik salanr. Veri taban kullanld zaman bir kurulua ait tm operasyonel veriler merkezi bir yerde ve merkezi kontrol altnda tutulmu olur. Veri tabanlarn kurmay, yaratmay, tanmlamay, iletmeyi ve kullanmay salayan programlar topluluuna veri taban sistemi ya da veri taban ynetim sistemi (VTYS) data base management system (DBMS) denir. Bir veritaban zerinde birden fazla veritaban bileeni vardr; bu bileenler, saklanmak istenen ham bilginin, belli bir formatta alnarak, veri haline gelmesi ileminde etkin rol oynarlar.

    VTYSler fiziksel hafzay ve veri tiplerini kullanclar adna ekillendirip denetleyen ve kullanclarna standart bir SQL arayz salayarak onlarn dosya yaplar, veri yaps, fiziksel hafza gibi sorunlarla ilgilenmek yerine veri giri-k iin uygun arayzler gelitirmelerine olanak salayan yazlmlardr. VTYSde verileri tutmak zere bir ok trde nesne ve bu nesnelere eriimleri dzenlemek zere kullanclar, roller ve gruplar yer alr. Her bir kullancnn belli haklar vardr. Bu haklar, kstlanabilir. rnein bir tablo ya da programc bir kullanc kullanabilirken bir bakasnn haklar veritaban yneticisi tarafndan kstlanm olabilir.

    1.3. Veri Modeline Gre Veritaban Ynetim Sistemleri

    Yapsal olarak btn veri tabanlar bir deildir. Veri tabanlar verileri saklama ve onlara erime bakmndan farkl tiplere ayrlr.

    Hiyerarik Veri Tabanlar : Bu veritaban tipi, ana bilgisayar ortamlarnda alan yazlmlar tarafndan kullanlmaktadr. Bu trde en ok kullanlan yazlm, IBM tarafndan karlan IMS' dir. Uzun bir gemie sahip olmasna ramen, PC ortamna uyarlanan hiyerarik veri tabanlar yoktur. Hiyerarik veri tabanlar, bilgileri bir aa (tree) yapsnda saklar. Kk (Root) olarak bir kayt ve bu kke bal dal (Branch) kaytlar bu tip veritabannn yapsn oluturur. Aada byle bir veri tabannn yaps gsterilmektedir.

    ekil 1.3.1. Hiyerarik Veri Taban Yaps

  • 7

    VER TABANI YNETM SSTEMLER I Alako BURMA A Veri Tabanlar : Hiyerarik veri tabanlarnn yetersiz kalmasndan dolay bilim adamlarnn ortak almas sonucu ortaya konulmu bir veri taban trdr. A veri tabanlar verileri aalarn daha da gelimi hali olan graflar (aacn kendiside zel bir graftr.) eklinde saklarlar. Bu yap en kark yaplardan biridir. likisel Veri Tabanlar : E.F. Codd Tarafndan Gelitirilmitir. Bu sistemde veriler tablo eklinde saklanr. Bu veri taban ynetim sisteminde; veri al verii iin zel ilemler kullanlr. Bu ilemlerde tablolar operandlar olarak kullanlr. Tablolar arasnda ilikiler belirtilir. Bu ilikiler matematiksel bantlarla (ilikilerle) temsil edilir. Gnmzde hemen hemen tm veri taban ynetim sistemleri ilikisel veri modelini kullanrlar. likisel modeli 1970 ylnda Codd nermitir. Bu model, matematikteki iliki teorisine (the relational theory) dayanr. likisel veri modelinde (Relational Data Model) veriler basit tablolar halinde tutulur. Tablolar, satr ve stunlardan oluur

    ekil 1.3.2. likisel Veri Taban Yaps

    Nesneye Ynelik Veri Tabanlar : Gnmzde nesne kavram her yerde kullanlmaktadr. Pek ok kelime ilemci ve hesap tablosu programlarnn altmz grnmlerine artk bir de nesneler eklenmitir. Ancak bu gerek anlamda bir nesneye ynelik yazlm demek deildir. Yzde yz nesneye ynelik bir yazlmn tamamen nesneye temelli almas gerekir. Yazlmn mutlaka nesneye ynelik bir dilde yazlm olmas beklenir. Fakat Windows gibi iletim sistemi zerinde alan yazlmlar bu zelliklere tmyle sahip deillerdir. Sadece nesne kavramn kullanarak baz ek zellikler sunarlar. Nesneye ynelik veri taban da , C++ gibi nesneye dayal bir dille (OOPL) yazlm olan ve yine C++ gibi nesneye dayal (OOPL) bir dille kullanlan veri taban anlamna gelir. Gnmz teknolojisinde yzde yz nesneye ynelik bir veri taban yaygn olarak kullanma sunulmu deildir. Ancak nesneye ynelik veri tabanlarnn baz stnlkleri olacandan sz ediliyor. likisel veri tabanlar ile karlatrldnda; nesneye ynelik veri tabanlarnn sahip olmas gereken stnlkler unlardr:

    1. Nesneler, bir tabloda yer alan bir kayttan ok daha karmak yapya sahiplerdir ve daha esnek bir yapda ok daha kullanl dzenlenebilirler.

    2. Nesneye dayal bir veri tabannda, yaps gerei arama ilemleri ok hzl yaplabilir. zellikle byk tablolarla urarken ilikisel veri tabanlarndan ok daha hzl sonuca ularlar. Ancak alma mant tmyle deiir

  • 8

    VER TABANI YNETM SSTEMLER I Alako BURMA

    Tm bu zellikler tamamen nesneye ynelik olan veri tabanlar iin geerlidir. Baz ilikisel veri tabanlar ile alan yazlmlarda da nesnelerin baz zellikleri ni kullanrlar, ama nesneye ynelik veri taban bunu kendini ilikisel veri taban kurallarna uydurarak gerekletirebilir

    1.4. Neden Veritaban Kullanlr?

    Bilgisayar ortamnda veri saklama ve eriiminde gemiten gnmze deiik yntemler ve yaklamlar kullanlmtr. Bunlardan Geleneksel Yaklam (Dosya - lem Sistemi) verileri ayr ayr dosyalarda gruplamaya dayanr. Verileri saklamak iin programlama dillerinde kullanlan sral (Sequential) ve rastgele (Random) dosyalama sistemleri gibi. Birbiriyle ilgili olan ve ayn gruba dahil olan veriler bir dosyada, bir baka gruba dahil olan veriler de baka bir dosyada tutulurdu. Geleneksel Yaklamn birok sakncas vardr ve bu sakncalarn beraberinde getirdii sorunlarn stesinden gelebilmek iin de Veri Taban Yaklam zamanla Geleneksel Yaklamn yerini almtr. Gnmzde veriler artk Veri Taban Yaklam ilkesine gre VTYS lerde tutulmakta ve ilenmektedir.

    Geleneksel Yaklamn (Dosya - lem Sistemi) Sakncalar Veri tekrar ve veri tutarszl Verinin paylalamamas Uygulamalardaki her yeni gereksinimin ve deiikliin yalnz uzman kiiler

    tarafndan karlanabilmesi Veriye eriim ve istenen veriyi elde etme glkleri Karmak veri saklama yaplar ve eriim yntemlerini bilme zorunluluu Btnlk (integrity) sorunlar Gvenlik, gizlilik sorunlar Tasarm farkllklar, standart eksiklii Yedekleme, yeniden balatma, onarma gibi iletim sorunlar

    Veri Taban Yaklamnn Yararlar Ortak verilerin tekrarnn nlenmesi; verilerin merkezi denetiminin ve

    tutarllnn salanmas Veri paylamnn salanmas Fiziksel yap ve eriim yntemi karmaklklarnn, ok katmanl mimarilerle

    kullanclardan gizlenmesi Her kullancya yalnz ilgilendii verilerin, alk olduu kolay, anlalr

    yaplarda sunulmas Sunulan zmleme, tasarm ve gelitirme aralar ile uygulama yazlm

    gelitirmenin kolaylamas. Veri btnl iin gerekli olanaklarn salanmas, mekanizmalarn kurulmas Gvenlik ve gizliliin istenilen dzeyde salanmas Yedekleme, yeniden balatma, onarma gibi iletim sorunlarna zm

    getirilmesi

  • 9

    VER TABANI YNETM SSTEMLER I Alako BURMA

    1.5. Veri Taban Ynetim Sistemlerinin Salad Yararlar

    - Ayn veri deiik kiilerin PClerinde veya deiik bilgisayarlarda tekrar tekrar tutulmaz; veri tekrar (data redundancy) azaltlr ya da yok edilir.

    - Veri tutarll (data consistency) : Ayn verinin deiik yerlerde birka

    kopyasnn bulunmas bakm zorluu getirir: bir yerde gncellenen bir adres bilgisi baka yerde gncellenmeden kalabilir ve bu durum veri tutarszlna (data inconsistency) yol aar.

    - Veri paylam / Ezamanllk (concurrency) : Veri taban ynetim sistemi

    (VTYS) kullanlmad durumlarda veriye sral eriim yaplr. Yani birden ok kullanc ayn anda ayn veriye eriemez. Bir VTYSde ise verinin tutarlln ve btnln bozmadan ayn veritabanlarna saniyede yzlerce, binlerce eriim yaplabilir.

    - Veri btnl (data integrity): Bir tablodan bir renci kayd silinirse, renci

    varolduu dier tm tablolardan silinmelidir. - Veri gvenlii (data security) : Verinin isteyerek ya da yanl kullanm sonucu

    bozulmasn nlemek iin ok sk mekanizmalar mevcuttur. Veri tabanna girmek iin kullanc ad ve ifreyle korumann yan sra kiiler sadece kendilerini ilgilendiren tablolar ya da tablo iinde belirli kolonlar grebilirler.

    - Veri Bamszl (data independence) : Programc, kulland verilerin

    yaps ve organizasyonu ile ilgilenmek durumunda deildir. VER BAIMSIZLII, VTYSlerinin en temel amalarndandr.

    1.6. Bilinen VTYS Programlar

    MS SQL Server: Bir orta ve byk lekli VTYSdir. ANSI SQLe eklentiler yazmak iin T-SQLi destekler. Oracle: Daha ok yksek lekli uygulamalarda tercih edilen bir VTYSdir. ANSI SQLe eklentiler yapmak iin PL/SQL gelitirilmitir. Sybase: Bir orta ve byk lekli VTYSdir. ANSI SQLe eklentiler yazmak iin T-SQL komutlarn destekler. lkemizde daha ok bankaclk ve kamusal alanlarda tercih edilmektedir. Informix: Bir orta ve byk lekli VTYSdir. MySQL: Genellikle Unix-Linux temelli Web uygulamalarnda tercih edilen bir VTYSdir. Ak kod bir yazlmdr. Kk-orta leklidir. zellikle Web iin gelitirilmi bir VTYSdir denilebilir. Postrage SQL: Bu da MySQL gibi ak kod bir VTYSdir.

  • 10

    VER TABANI YNETM SSTEMLER I Alako BURMA MS Access: oklu kullanc destei yoktur. letim sisteminin salad gvenlik seeneklerini kullanr. Bunun yannda belli sayda kayda kadar (1000000 civar) ya da belli bir boyutun (yaklak 25MB) altna kadar bir sorun kartmadan kullanlabilecek bir kk lekli VTYSdir. Advantage: Trk programclar tarafndan gelitirilen bir orta ve byk lekli VTYSdir. DB/2: IBMin frameworklere ynelik byk lekli VTYSdir. Bu ders notunda popler olan VTYS programlarnn isimleri yazlmtr. Bunlarn dnda daha bir ok VTYS program mevcuttur. VTYSlerin Avrupa genelindeki pazar paylar yaklak olarak aada listelenmitir. En byk Pazar pay IBM(DB/2) ile Oracle arasndadr. Hemen arkasndan MS SQL Server, Informix ve Sybase gelmektedir. Yeni balayanlar iin; hangi VTYSyi renmem en iyisi olur sorusunu yantlamak gerekebilir. lkemizde insan kaynaklar asndan en ok kalifiye elaman aranan VTYS Oracle ve arkasndan da MS SQL Server gelmektedir. IBM ....................... %37.8 Oracle .................... %26.3 Microsoft ................ %15.4 Informix ................. %3.2 Sybase ................... %3 Digerleri ................. %14.3 2001 ylnda bir aratrmaya gre Avrupa apnda VTYSlerinin pazar paylar [kaynak: Gartner]

    VTYSlerin bir ou ANSI SQLin karlayamad durumlarda kullanlmak zere

    ek programlama komutlar barndrrlar. Bu i iin MS SQL Server ve Sybase SQL Server Transact SQL (T-SQL) denilen komut takmlarn ierir. Oracle ise PL/SQL ile bu ie zm getirmitir. Bu diller sayesinde, bu konu ierisinde renmeyeceimiz Stored Procedure (sakl prosedrler), Trigger, Fonksiyon gibi veritabanlar iin vazgeilmez olan nesneler yazlabilmektedir.

    1.7. Proje ve VTYS arasndaki iliki

    Herhangi bir veritaban programnda almaya balanlmadan nce, yaplacak ie uygun veri taban tasarm yaplmaldr. Bu iin en nemli aamasdr. Balangta iyi tasarlanamayan bir veritaban, ileride geriye dn olmayan verimsiz bir bilgi ynna dnebilir. En basit hali ile veritaban tasarmnda; hangi tablolarn olaca, bu tablolarda hangi alanlarn olaca, tablolar arasndaki alan ilikilerinin neler olaca ve alanlara ait zelliklerin tanmlanmas yaplr. Alan zelliklerinde alan ad, alan tipi, alann uzunluu, alann varsaylan deeri, bu alana yazlacak verilerin geerlilik koullarnn balangta tasarlanmas gerekir. Bir projede hangi veritabannn seilecei, projenin ap ile ilgili bir karardr. Aadaki sorulara verilecek cevaplar projenin ap konusunda karar vermede yardmc olurlar.

  • 11

    VER TABANI YNETM SSTEMLER I Alako BURMA

    Projede ka tablo kullanlacak? Her bir tabloda en fazla ka satr yer alabilir? (tablodaki bilgi saysdr) Projeye ayn anda en fazla ka kullanc balanacak? Proje gnlk ka transaction (INSERT-DELETE-UPDATE) gerekletirecek? Proje en fazla ne kadarlk yer kaplayacak ne kadarlk bir veritaban dosyasna ihtiya duyulacak? Proje iin gvenlik ne derece nemli? Ancak bir VTYS kullanlarak proje gelitirilecekse, hangisinin seilmesi gerektiinin dnda, hangi srmlerinin kullanlaca ya da hangi donanmlar stnde altrlaca da nemlidir.

  • 12

    VER TABANI YNETM SSTEMLER I Alako BURMA

    2. VER ve VER MODELLER

    2.1. Model Nedir?

    Model kelimesi; isim, sfat ve fiil olarak ve her birinde olduka farkl armlar yapacak ekilde kullanlmaktadr. sim olarak model, bir temsili ifade eder. Bu temsil; bir mimarn, bir binann kk lekli modeli veya bir fizikinin bir atomun byk lekli modelini oluturmas anlamndadr. Sfat olarak model, mkemmeliyetin veya idealin lsn ifade eder. Model ev, model renci ve model e ifadelerinde olduu gibi. Fiil olarak model ise, bir eyin nasl olduunu ispat etmek, aklamak, gstermek anlamndadr.

    Bilimsel modeller btn bu armlar bnyelerinde bulundururlar. Onlar; durumlarn, nesnelerin ve olaylarn temsilleridir. Gereklerden daha az karmak ve bylece aratrma amacyla kullanlmalar daha kolay olduundan, bu anlamda ideal hale getirilmilerdir. Gerek durumlarla karlatrldklarnda, modellerin basitliinin sebebi, gereklerin sadece uygun zelliklerini temsil etmelerinden kaynaklanmaktadr. rnein, yeryznn bir ksmnn modeli olan bir yol haritasnda, bitki rts gsterilmez. nk bu durum, o haritann bir yol haritas olarak kullanm asndan uygun deildir. Gne sisteminin bir modelinde, gezegenleri temsil eden toplarn, gezegenlerle ayn maddeden yaplm olmalar veya ayn scakla sahip olmalarna ihtiya yoktur.

    Bilimsel modellerden, gereklerin farkl boyutlar hakkndaki bilgiyi artrmak ve birbirleri ile ilikilendirmek iin faydalanlr. Modeller, gerei ortaya karmak ve bundan daha fazla olarak, gemii ve imdiki durumu aklamak ve gelecei tahmin ve kontrol etmek iin kullanlr. Modeller uygulanarak, gerekler zerinde bilimin kontrol salanr. Modeller gerein tarifi ve aklamasdr. Bir bilimsel model, aslnda, gerek hakknda bir veya bir dizi ifadelerdir. Bu ifadeler olaylara dayanan, kanun benzeri ya da teorik olabilir.

    Bilimde, sradan ilemlerde olduu gibi, deiik tipte modeller kullanlr: Simgesel Model, Benzetim Modeli ve Sembolik Model.

    Simgesel Modeller, durumlarn byk veya kk lekli temsilleridir. Gerek eylerin uygun zelliklerini temsil ederler. ekilleri, temsil ettikleri eylere benzer. Yol haritalar, hava fotoraflar bu tip modellere rnek verilebilir.

    Benzetim Modelleri, baz durumlarda ise; haritada ykseltiler, yol genilikleri gibi zellikleri belirtmek gerekebilir. O zaman, renkler ve kontur izgileri gibi bir takm aklayc zelliklere ihtiya duyulur. Bu tip modeller Benzetim Modelleri olarak isimlendirilir.

    Sembolik Modellerde, temsil edilen eylerin zellikleri sembollerle ifade edilir. Bylece, bir grafik ile gsterilen iliki (benzetim modeli), bir eitlik olarak da ifade edilebilir. Bu tip modellere Matematiksel Modeller de denilmektedir.

    BLM 2

  • 13

    VER TABANI YNETM SSTEMLER I Alako BURMA

    Bu tip modelden benzetim modeli, soyut ve geneldir. Matematiksel model ise en soyut ve en genel modeldir. zerinde dzenleme yaplabilmesi daha kolaydr. Simgesel modellerin ise anlalmas dierlerine gre daha kolaydr. Biliim sistemlerinin oluturulmas iin kullanlan veri modelleri, benzetim modelleri ve sembolik modellerdir.

    Bir biliim sisteminin kullancs, zellikle bir karar verici, kendisini sonsuz denebilecek boyutta bilgi karsnda bulur. Bir biliim sistemi modeli, gerek bilgi kmesinin alt kmesini oluturur ve onun daha basit bir eklidir. Bu ekil, ilenebilmeye imkn verir ve bunu kullanarak elde edilen zm veya cevap, gerek hayatta uygulanmaya allr. Model, var olan bilgi ynna bir dzen getirmeyi, hatta bir yap oluturmay amalar. Tek bir model yoktur. Var olan bilgi ynna, uygulanan farkl modeller doal olarak farkl yorumlar getirir.

    Gerek hayattan alnan bir olayn modelinin iki tip zelliinin olmas gerekir. Birincisi, statik zellikler, ikincisi de dinamik zelliklerdir. Statik zellikler zamana gre deiiklik gstermez yada ok az gsterir. Dinamik zellikler ise bunun tam tersi olarak devaml deikendirler. Bu durumda, herhangi bir model (M), o modeli oluturan kurallar kmesi (K) ve ilemler kmesinin () bir fonksiyonu olarak tanmlanabilir.

    M = f (K,)

    Modeli oluturan kurallar kmesi (K), veri modelinin statik zelliklerini temsil eder ve Veri Tanmlama Diline (VTD) karlk gelir. (M) veri modeli iinde, veri iin izin verilen yaplarn tanmlanmas iin kullanlr. Mmkn olan yaplar, birbirini tamamlayan iki ekilde belirlenir. Nesneler ve ilikiler, kategorilerinin belirlenebilmesi iin genel kurallar kullanlarak tespit edilir. Modelde bulunmasna izin verilmeyecek olan nesneler veya ilikiler, snrlar tespit edilerek hari tutulur. rnein, bir ii veri tabannda, her iinin bir sigorta numarasnn olmas ve yneticisinden fazla kazanmamas gibi snrlar tespit edilebilir.

    Gerek hayattaki dinamik zelliklerin modelde kullanlabilmesini ilemler kmesi salar ve Veri Ynlendirme Diline (VYD) karlk gelir. Di gibi bir veri taban oluumundan Dk gibi baka bir veri taban oluumu elde etmek iin yaplmasna izin verilen ilemleri tanmlar.

    2.2. Veri Kavram Birinci blmde veri kelimesi tanmlanm ve yanl verinin depolanmasn ve/veya verinin istenmeyen kiilerin kullanmna sunulmasn engelleyen bir takm imknlarn olmas gerektii belirtilmiti. Yanl verinin iki trl kayna olabilir: Programlama hatalar, klavyeden hatal giri nedeniyle oluan yanllklar ve veri taban programnn kt niyetli kullanm. Veri tabanlarnn korunmas iki balk altnda incelenebilir 1. Veri gvenlii, 2. Veri btnlnn salanmas.

  • 14

    VER TABANI YNETM SSTEMLER I Alako BURMA

    2.2.1. Veri Gvenlii Veri gvenliinin konusu, veri tabann, dolaysyla veriyi yetkisiz kullanmlara

    kar korumaktr. Bu konuda ok eitli yaklamlar vardr. Hem verinin istenmeyen ekilde deitirilmesine veya zarar grmesine hem de yetkisiz kullanmlara engel olmak gerekir. Bunu salamak iin baz genel teknikler gelitirilmitir.

    Kullanclarn tanmlanmas: ok kullancl ortamlarda farkl yetkilere sahip kullanclar vardr. Farkl yetkilere sahip kiilerin, veri tabannda ulaabilecekleri veri farkldr. rnein, bilgisayara veri girii yapan bir iletimcinin, kurumun muhasebe kaytlarna, muhasebe mdr kadar yetkiliymi gibi girerek deiiklikler yapmas engellenmelidir. Bu amala, hangi kullanclarn hangi yetkilerinin olduu ve bu yetkilerini kullanabilmek iin gerekli ifreler daha nceden tespit edilmelidir.

    Fiziksel koruma: ifre sisteminin yeterli olmad durumlarda, verinin fiziksel koruma altna alnmas gerekir. Yangn veya hrszla kar verinin yedeklenmesinin yaplmas gibi.

    Kullanc haklarnn temin edilmesi: Sistemde hangi kullancnn hangi yetkilere ve haklara sahip olduu ve neler yapabileceinin nceden belirlenmi olmas gerekir. Bir kiinin yetkisini veya hakkn baka bir kiiye vermesi ise, sistemin mdahalesi dnda gerekleen bir durumdur.

    zellikle veri tabannn sorgulanmasnda gvenlik problemleri ortaya kmaktadr. Hangi tr kullancnn, hangi sorgu tiplerini sisteme yneltebileceinin daha nceden tespit edilmesi gerekmektedir. Fakat, yukarda bahsedilen nlemlerden hi biri tam bir koruma salamaz. Bu yzden, birden fazla nlem kullanarak gvenlik artrlabilir.

    2.2.2. Veri Tekrar ve Veri Btnl Bir veri taban ynetim sisteminde farkl veri dosyalarnda; isim, adres, numara

    gibi bilgilerin bulunmas gerekebilir. rnein, hem mteri bilgilerini ieren bir veri taban dosyasnda, hem de satlan mallarn sevkiyatnn yaplaca adreslerin bulunduu baka bir veri dosyasnda, mteri adresi bilgilerinin yer almas gerekebilir. Yani, pek ok durumda, ayn verinin birden fazla veri dosyasnda bulunmas gerekebilir. Bu durum, veri tekrar olarak ifade edilmektedir. Byle bir durum,veri btnlnn bozulmasna neden olur. Veri zerinde yaplacak deiiklik, silme, ekleme gibi ilemlerin, o verinin bulunduu btn dosyalarda gerekletirilmesi gerekir. zellikle ok kullancl ortamlarda bu ilem olduka nemlidir. Aksi taktirde, veri tabannda uygun olmayan veri ile allm olur. Veri btnlnn bozulmasnn bir sebebinin, veri tekrar olduu sylenebilir. Bir baka sebep de, verinin zayf geerlilik kontroldr. Bunun sebepleri de u ekilde sralanabilir:

    Veri gvenliinin yetersiz oluu, Veri tabannn zarar grmesi durumunda kurtarma yntemlerinin yetersiz oluu, Uzun kaytlarn idaresinin zorluu, Deiikliklerin esnek olmamas, Programlama ve bakm masraflarnn yksek olmas, nsandan kaynaklanan hatalar.

  • 15

    VER TABANI YNETM SSTEMLER I Alako BURMA

    Gnmzde kullanlan eitli veri taban ynetim sistemi programlar, yukarda saylan btn problemlerin stesinden hemen hemen gelebilecek zmler retmiler ve bunlar kolay kullanlabilir hale getirmilerdir. Kullanclarn, bir veri taban olutururken, ayrca bu problemler iin nlem almalarna gerek kalmamaktadr.

    2.3. Veri Modeli Bir veri modeli, verinin hangi kurallara gre yaplandrldn belirler. Fakat yaplar, verinin anlam ve nasl kullanlacaklar hakknda tam bir aklama vermezler. Veri zerinde yaplmasna izin verilen ilemlerin belirlenmesi de gerekir. lemler, yapnn sunduu ereve iinde altrlrlar.

    2.3.1. Yaplar Veriyi yaplandrma ve grntleme mekanizmalarndan biri soyutlamadr.

    Soyutlama, detaylar gizleme ve genel zerinde younlama yeteneidir. Veri modellemesinde soyutlama, veri kategorilerini elde etmek iin kullanlr.

    Veri yaplarnn oluturulmasnda kullanlan kavramlardan biri de kmelerdir. Bir kme, dzgn bir ekilde tanmlanm ve bir yelik koulu tarafndan temsil edilen nesneler topluluudur. yeleri az ya da ok homojen olan kmeler vardr. rnein, 10 ile 20 arasndaki tam saylar, uzunluu 20 karaktere kadar olabilen alfanmerik deerler gibi. Bu homojen kmeler, tanm kmesi olarak isimlendirilirler. Semantik adan bir anlam tayan nesneyi temsil eden, isimlendirilmi bir tanm kmesi (rnein, MAALAR), znitelik olarak isimlendirilir.

    Veri yaplarnn unsurlarndan biri de ilikilerdir. liki, kmelerin toplanmasn ifade eder. Ayn zamanda kendisi de bir kmedir ve semantik olarak belirli bir karl yoktur. Fakat, veri modellemesinde iliki, iki nesne arasndaki ilikiyi gsteren bir tip olarak tanmlanabilir. rnein, ve YER arasnda bir ilikisi vardr. Bir ilikiye uygulanabilecek semantik bir tercme, her satr bir varla karlk gelecek ekilde belirlemektir. Varln tam bir tanm olmamasna ramen, objektif bir gereklii olan veya olduu dnlen ey olarak tarif edilmektedir. rnein, bir varlk tipi olarak belirlenebilir. Bu varlk tipinin zellikleri de, VEREN, SM, ADRES, YA, BLM, TECRBE ve MAA olabilir.

    Bir veri yaps oluturulurken, verinin bir ekilde bilgisayara yerletirilmesi sz konusu olduu iin, nesneler ve onlar arasndaki ilikilerin temsil edilmesi gerekir. Bu tr bir temsil tablolarla yaplabilir. Bir tabloda stun balklar olarak znitelikler ve satrlarda da bu zniteliklerin ald deerler (kayt birimleri) yer alr. Tablodaki her bir stun, bir veri birimidir.

    Dz bir dosyadan oluan veri tabanlar olabilecei gibi (rnein isim ve adres alanlarndan oluan adres veri tabanlar), birden fazla dosyadan oluan veri tabanlar da vardr ve daha yaygn bir ekilde kullanlmaktadr. Bir veri tabannda temsil edilebilecek genel kayt ilikilendirme tipleri vardr. Bunlar u ekilde sralanabilir:

    Bire bir ilikiler (one-to-one relationships): Aralarnda bir iliki olan iki tablo arasnda, tablolardan birindeki asl anahtar alann kayt deerinin, dier tablodaki sadece bir kaytta karlnn olmas durumunu gsteren iliki tipi. rnek : bir iinin doum yeri bilgisinin doum yerleri tablosunda bir ehre karlk gelmesi gibi.

  • 16

    VER TABANI YNETM SSTEMLER I Alako BURMA

    Tekil oklu ilikiler (one-to-many relationships): Aralarnda bir iliki olan iki tablo arasnda, asl anahtar alann kayt deerinin, dier tablodaki birden fazla kaytta karlnn olmas durumunu gsteren iliki tipi. rnek : Bir rencinin birden fazla alm olduu derse ve bu derse ait vize final snav sonular gibi. Bir renciye karlk birden fazla ders notu.

    oul tekli ilikiler (many-to-one relationships): Aralarnda bir iliki olan iki tablo arasnda, tablolardan birindeki bir kaydn deerinin, asl anahtar alann olduu dier tabloda, birden fazla kaytta karlnn olmas durumunu gsteren iliki tipi.

    oklu ilikiler (many-to-many relationships): Aralarnda bir iliki olan iki tablo arasnda, tablolardan herhangi birindeki herhangi bir kaydn, dier tablodaki birden fazla kayt ile ilikilendirilebildii iliki tipi.

    2.3.2. Kstlar Veri zerindeki mantksal snrlamalara kst ad verilir. Kstlarn genel olmas

    tercih edilen bir durumdur. rnein, Tm yneticilerin maalar, iilerinden daha fazladr ifadesi, Ali Beyin maa Veli Beyin maandan daha fazladr ifadesinden daha geneldir ve dolaysyla daha kullanldr. Kstlar, veri modellerinde btnlk salamak ve semantik nedenlerle kullanlr. Kmeler zerinde kullanlabilir. rnein, varlk tipinin YA znitelii 15 ve 65 arasnda deer alabilir eklinde bir kstlama veri modelinde uygulanabilir. Bu sayede gerek dnyada karlalan bir zellik, oluturulacak veri tabanna yanstlabilir.

    Bir iliki, iki veya daha fazla kmenin elemanlar (nesneler) arasnda mmkn olabilecek tm kombinasyonlar ierir. Bu ileme haritalandrma denir. Kstlamalar ilikiler zerinde belirlendii zaman, nesneler arasndaki bir takm anlam ifade etmeyen, fakat teorik olarak mmkn olabilen ilikilerin, gereksiz yere modele yerletirilmeye allmas nlenmi olur.

    Tablolarda kstlarn kullanlmas, fonksiyonel bamllklarn belirlenmesi amacn tamaktadr. rnein, varlk tipinde _NO znitelii bir aday anahtar olabilir. nk, dier znitelikler, bu znitelie bal olabilir. Baka aday anahtarlar da olabilir (SM, ADRES gibi). Bir tabloda, aday zniteliklerinden biri asl anahtar olarak belirlenir. ki ayr iliki tipi arasnda bir balant kurabilmek, o ilikinin bir tablosundaki bir anahtarn, dier tabloya eklenmesi ile mmkn olur. Buna tretme, ikinci tabloya eklenen anahtara da yabanc anahtar denir.

    2.3.3. lemler lemler, bir veri taban durumundan, bir baka veri taban durumu elde etmek

    iin yaplan ilemlerdir. Bunlar, verinin arlmas, gncellenmesi, eklenmesi veya silinmesi ile ilgili ilemlerdir. ok kesin seimler zerinde yaplr. Bunlarn yannda, daha genel ilemler de vardr. rnein; btnlk mekanizmas, toplam fonksiyonlar (istatistiksel fonksiyonlar da bunlar arasndadr), veriye ulam kontrolleri gibi. Bu mekanizmalara veri taban yntemleri denir. Bu mekanizmalar, CODASYL tarafndan yaynlanmtr.

  • 17

    VER TABANI YNETM SSTEMLER I Alako BURMA 2.4. Balca Veri Modelleri Veri modellemesi yapmak amacyla pek ok veri modeli gelitirilmitir. Fakat,

    btn modeller ayn zellikleri tamaz. Her modelin farkl durumlara uygun olan eitli zellikleri vardr. O yzden, modeller arasnda tam bir sralama yapmak mmkn deildir. Bununla birlikte, yetersiz de olsa bir snflama yaplabilir.

    2.4.1. Basit Veri Modelleri Basit veri modelleri olarak ayrlan ilk grup veri modelleri, bilgisayarlarda veri

    ileme ihtiyacnn ortaya kmasyla, dosyalama sistemleri oluturmak amacyla kullanlmaya balanan Hiyerarik ve ebeke veri modelleridir.

    2.4.1.1. Hiyerarik Veri Modelleri

    Hiyerarik veri modellerinde oklu ilikileri temsil edebilmek iin, varlk tiplerinin her iliki iin ayr ayr tanmlanmas gerekir. Bu da gereksiz veri tekrarna sebep olur. Hiyerarik model, bir aa yapsna benzer. Model dahilindeki herhangi bir dm, altndaki n sayda dme balanrken, kendisinin stnde ancak bir dme balanabilir. Hiyerarik yapnn en tepesindeki dm noktasna kk denir ve bu dmn sadece baml dmleri bulunur. Bu veri yapsn gsteren grafie de hiyerarik tanm aac denir.

    ekil 2.4.1.1.1. Hiyerarik Tanm Aac

    2.4.1.2. ebeke Veri Modelleri ebeke veri modelleri, tablo ve grafik temellidir. Grafikteki dmler varlk

    tiplerine karlk gelir ve tablolar eklinde temsil edilir. Grafiin oklar, ilikileri temsil eder ve tabloda balantlar olarak temsil edilir. Spesifikasyonu, 1971 ylnda DBTG-CODASYL tarafndan belirlenmitir.

    ki ayr veri yaplandrma arac vardr: Kayt tipi ve balant. Kayt tipleri varlk tiplerini belirler. Balantlar ise, iliki tiplerini belirler. Bu yapy gsteren grafie de veri yaps grafii ad verilir.

  • 18

    VER TABANI YNETM SSTEMLER I Alako BURMA

    ekil 2.4.1.2.1. ebeke Veri Yaps Grafii

    ebeke veri modeli, veri modelleri iinde en genel olanlarndan biridir. ebeke

    iinde bir eleman, herhangi bir baka elemana balanabilir. Hiyerarik yaplardan farkl olarak, ebeke yaplarnda balant asndan herhangi bir snrlama yoktur. ebeke veri modelleri, dmler arasnda oklu ilikiler kurulamad iin, kstl bir veri modeli olarak kabul edilir. Hiyerarik veri modelleri ise, daha da kstl bir veri modelidir. ebeke veri modelinde kullanlan ilemler, ilikisel veri modelinde kullanlan ilemlerin benzeridir. Fakat, ebeke veri modellerinde balantlar tarafndan belirlenmi ilikiler dnda, kayt tipleri arasnda iliki belirlenemez.

    2.4.2. Gelitirilmi Veri Modelleri 1960 ve 1970li yllarda hiyerarik veri modeli zerine gelitirilmi veri taban

    ynetim sistemleri ile, daha sonra, ebeke veri modeli ile alan VTYS yaygn kullanmda iken, teorik temelleri ve deneysel uygulama ve gelitirme aamalar, 1970li yllarda tamamlanm olan ilikisel veri modeline dayal VTYS, 1980li yllarda ticari kullanma girerek ok hzla yaygnlamlardr.

    Gelitirilmi veri modelleri, Varlk-liki Veri Modelleri, likisel Veri Modelleri ve Nesne Ynelimli Veri Modelleri olarak sralanabilir.

    2.4.2.1. Varlk-liki Veri Modelleri (V Modeli) Bir veri taban uygulamas iin varlk, hakknda tanmlayc bilgi saklanabilen

    herey olarak kabul edilmektedir. Varlk, bamszdr ve tek bana tanmlanabilir. Bir varlk, ev, renci, araba gibi bir nesne ya da futbol ma, tatil, sat gibi olaylar olabilir. En anlaml ekilde kendi znitelikleri tarafndan temsil edilir. rnein, bir EV; znitelikleri olan ADRES, STL, RENK ve MALZEME ile tanmlanabilir. Eer bir zniteliin kendisi tanmlayc bilgi ieriyorsa, onu varlk olarak tanmlamak gerekir. rnein, eer evin malzemesi hakknda ek bilgi depolamak gerekiyorsa MALZEMEyi de varlk olarak snflamak gerekir.

    Varlk-liki veri modelleri (V), stunlarnda, znitelikleri temsil eden deikenlerin yer ald ve satrlarnda da enstantanelerin temsil edildii tablolar, varlklar ve aralarndaki ilikileri oklarla gstermek iin kullanlan grafikler zerine kurulmu veri modelleridir.

  • 19

    VER TABANI YNETM SSTEMLER I Alako BURMA

    Ticari veri tabanlarnda yaygn olarak kullanlan veri modellerinden biridir. ebeke ve hiyerarik veri modelleri ile ortak noktalar vardr. Fakat, veri taban tasarm sreleri iin kullanlmak maksadyla gelitirildiklerinden bu iki modelin genelletirilmi eklidir. oklu iliki tiplerinin dorudan modelde kullanlmasna izin verir. Bu modelde, kurum emas kavram sz konusudur. Bu ema, kurumun tm verisinin grnmn temsil eder ve fiziksel snrlamalardan bamszdr. Ayn zamanda, bu ema ANSI/X3/SPARC kavramsal emasna ok benzemektedir. Aralarndaki temel fark, kavramsal emann, dahili ema ve harici ema arasnda haritalandrma yapabilmesidir. Temelde, V veri modeli, veri tabannn mantksal zelliklerinin bir dokmantasyonudur. V modeline gre dzenlenen veri tabannn yaps, Varlk-liki Diyagram ile gsterilir.

    ebeke ve hiyerarik veri modellerinde, sadece ikili fonksiyonel balantlara izin verilmektedir. V veri modelinde ise, varlklar arasnda n adet iliki tanmlanabilir. Bu ilikiler, bire bir, fonksiyonel veya oklu olabilir. Tekrar eden balantlar da kullanlabilir.

    znitelik, varlk veya iliki ile bunlarn ald deerler arasndaki haritalandrmay temsil eder. Baz zniteliklerin birden fazla deeri olabilir. rnein, telefon numarasn bir znitelik olarak kabul edersek, bir irketin birden fazla numaras olabilir. Fakat, doum gn znitelii ele alndnda, her bir kiinin bir doum gn olduundan, bu znitelik, ok deere sahip deildir.

    ekil 2.4.2.1.1. Varlk liki Diyagram

  • 20

    VER TABANI YNETM SSTEMLER I Alako BURMA

    V modeli ilk olarak ortaya konulduunda (1976) bir veri dili gelitirilmemiti. Bunun anlam, bilgi sorgulamalarnn kme ilemleri ile yaplmas demekti. Daha sonra, veri modeli iin CABLE (ChAin-Based LanguagE) dili gelitirildi. V modellerinin en byk avantajlarndan biri, uzman olmayan kiiler tarafndan da anlalabilecek yapda olmasdr. zerinde dzeltme ilemleri kolayca yaplabilir. Bu adan belirli bir veri taban ynetim sistemine bal deildir.

    2.4.2.2. likisel Veri Modelleri likiler ve onlarn temsilleri olan tablolardan oluan veri modelleri ilk olarak 1970

    ylnda Codd tarafndan ortaya atlmtr. likisel veri modelleri formle edilirken, veri ynetimi ihtiyalarn karlayabilmek iin ilikinin matematiksel teorisi, mantksal olarak geniletilmitir. likisel veri modellerinde kullanlan tek yaplandrma arac ilikidir. likinin tanm, veri taban ilikilerinin zamana bal olmas dnda, matematiksel tanm ile ayndr. Yani, bir veri taban ilikisinde satrlar, eklenebilir, deitirilebilir yada dzeltilebilir. Aadaki rneklerde byk harflerle yazlan ifadeler iliki isimlerini, parantez iindeki ifadeler de tanm kmesi isimlerini gstermektedir.

    ekil 2.4.2.2.1. Tanm Kmesi

    Yukardaki satrlar, basit bir hastane veri tabannn ilikisel emasn gstermektedir. likisel ema, iliki isimlerinin ve karlk gelen tanm kmesi isimlerinin listesidir. Varlk tiplerini belirlemekte kullanlr.

    ekil 2.4.2.2.2. likisel Tablo

    likisel ema listesini oluturan her bir satr, bir tablo olarak temsil edilir. Tablonun stunlar znitelik olarak isimlendirilir. rnein, HASTANE tablosunun znitelikleri; Hastane_Kodu, Hastane_Ad, Adres, Tel_No ve Yatak_Saysdr.

    Tablonun satrlarnda btn zniteliklerin ayn deerler ald iki satr olamaz. Her satr dierinden mutlaka farkldr. Aksi halde veri tekrar sz konusu olur. Veri tabanlarndaki iliki kavram, matematikteki kme kavramn esas ald iin ayn satrn bir tabloda birden fazla yer almas mmkn deildir. Bu nedenle, iliki iin bir anahtar kullanmak gerekir. Anahtar, bir satr tek bana tanmlayabilen znitelikler kmesidir. Anahtar kavram, ilikisel veri modelinde kullanlan nemli bir ksttr.

  • 21

    VER TABANI YNETM SSTEMLER I Alako BURMA Bu kurallar kullanlarak hazrlanan bir ilikisel modelde, yine de belirsizlikler ve

    uyumsuzluklar bulunabilir. Bunlar gidermek iin de bir dizi dzgleme ilemine gerek duyulabilir. Dzglemek, veri taban tasarm prensiplerini yapsallatrmay amalar. likiler ve znitelikler arasndaki fonksiyonel bamllklar dzenler. Birbirini takip eden be ilemden oluur. Fonksiyonel bamllk u ekilde tarif edilebilir: x ve y znitelikleri arasndaki iliki R ile gsterildiinde, her bir x deerine bir tek y deeri karlk geliyorsa, Rnin y zniteliinin, Rnin x zniteliine fonksiyonel olarak baml olduu sylenir.

    Veri zerinde yaplacak ilemler iin, ilikisel veri modellerinde tip dil kullanlr. Birincisi, matematikteki ilikisel ilemlere dayanr. Bu tip dillere rnek olarak INGRES ve QUEL verilebilir.

    kinci tip dil, grnt ynelimlidir. Boluk doldurma yntemiyle alr. rnein, QBE (Query By Example) ve CUPID bu tr dillerdendir.

    nc tip dil, haritalandrma ynelimli dildir. Bu tip diller, bilinen bir zniteliin ya da znitelik kmesinin, aranan bir zniteliin ya da znitelik kmesinin zerinde, bir iliki yoluyla haritalandrlmas prensibiyle alr. rnein, yapsal sorgulama dili (SQL) bu tip bir veri dilidir. SQL ilerleyen blmlerde detaylar ile anlatlacaktr

    2.4.2.3. Nesne Ynelimli Veri Modelleri Nesne ynelimli sistemler, bir istatistiksel sistem iinde, esnek veri yaplarnn

    gelitirilmesi ve istatistiksel modellerin sunumunda da kullanlmaktadr. Nesne ynelimli programlamann balangc, 1960'larn sonu ve 1970'lerin ba arasnda gelitirilen simlasyon dili Simula'ya kadar uzanr.

    Nesne ynelimli veri modelinde, bir sorgunun karlnda mutlaka nceden tanmlanm belirli bir nesne kmesi olmas gerekir. Bir sorgunun sonucu olarak tesadfi bir nesne kmesinin elde edilmesi mmkn deildir. nk btn nesnelerin, modelde nceden tanmlanm olmas gerekmektedir. likisel modeldeki iliki kavram, nesne ynelimli modelde snf kavramna karlk gelmektedir.

    Nesne ynelimli modellemenin en nemli faydalarndan bir tanesi de, modeldeki nesneleri tanmlarken, ortak znitelik ve metotlara sahip nesnelerin kullanldklar her farkl ortamda, tekrar tanmlanmalarna gerek duyulmamasdr. Aksi taktirde bu durum, hem tekrardan dolay yer kaybna, hem de modeldeki dinamik deiikliklerin pratik olmamasna sebep olacaktr. Nesne ynelimli veri modelindeki snf hiyerarisi ve kaltm zellii, bu olumsuz durumu ortadan kaldrarak, nesnelerin zniteliklerinin ve metotlarnn yeniden kullanmna imkn vermektedir. nk bir snf, ait olduu st snfn tm zelliklerini tar ve o snftaki nesneler, modelin baka bir yerinde kullanlaca zaman yeniden tanmlanmaya gerek kalmadan tekrar kullanlabilir.

  • 22

    VER TABANI YNETM SSTEMLER I Alako BURMA

    ekil 2.4.2.3.1. Snf Hiyerarisi

    Genellikle soyutlama olarak anlan bu tip ilemler, u balklar altnda

    toplanabilir: Snflandrma ve elemanlarna ayrma: Snflandrma, nesne ynelimli veri

    modeli yaklamnn temelini oluturmaktadr ve ayn zellik ve davranlara sahip nesnelerin nesne snflar iinde gruplanmas ile ilgilidir. Bir snftaki nesneler, o snfn tanmna gre tarif edilebilir. Bylece her nesneyi ayr ayr tarif etmeye gerek kalmaz. Elemanlarna ayrma ise snflandrma ileminin tersidir ve bir snf iinde farkl nesneler oluturulmas ile ilgilidir. Aadaki nesne ynelimli veri modeli buna bir rnektir.

    Bu rnekteki sahibi, adres, servis gibi nesneler, Otel snfnn elemanlardr ve

    tanmlar da birbirinden farkldr. rnein, Otel snfnn bir eleman,

  • 23

    VER TABANI YNETM SSTEMLER I Alako BURMA

    eklinde tanmlanrken, kurum nesnesinin bir eleman, aadaki gibi,

    ynetici nesnesinin bir eleman da, aadaki gibi tanmlanabilir.

    Tanmlama: Bu ilem hem soyut kavramlarn (snf), hem de somut

    kavramlarn (elemanlar), teker teker tanmlanmas ile ilgilidir ve anahtar deerler yardmyla yaplr.

    Toplam: Nesneler arasndaki ilikilerin daha st dzeyde, bir toplam nesne (veya tip) tarafndan temsil edilmesi ile ilgili bir soyutlama yntemidir. Bu toplam tipe genellikle anlaml bir isim verilir ve bu isim modelin baka yerlerinde, ona ait zellikler referans olarak verilmeden kullanlabilir.

    Genelletirme: Ayn zelliklere sahip bir grup nesnenin, soysal nesne olarak temsil edilmesi ile ilgili bir soyutlama yntemidir. rnein, bir kurumda alan personel u ekilde dzenlenebilir:

    Bilgisayar Ekibi nesnesi; Analizci, Programc ve letimci nesneleri iin bir

    soysal nesnedir. Ayn ekilde alanlar nesnesi de Bakm Ekibi, Bilgisayar Ekibi ve Ynetici nesneleri iin soysal nesne durumundadr.

    Nesne ynelimli veri modellerinin, ilikisel veri modellerine kar stnlkleri vardr. Bunlar; NYVMnde veri tiplerinin (tamsay, gerek say, alfanmerik deer, tarih vb.) LVMe gre daha esnek olmas, nesne tanmlarnda soyutlama yaplabilmesine imkn vermesi ve bu tanmlarn semantik ieriklerinin de olmas sayesinde, veri btnlnn daha kolay salanabilmesi ve ilikisel veri modellerine gre, mevcut veri yapsnda daha fazla genileme ve yeniden dzenleme imknlarna sahip olmas saylabilir.

    Not : Bu blm http://iletisim.marmara.edu.tr/bilisim/veri%20modelleri(csutcu%20dr%20tezinin%20bir%20bolumu).pdf adresindeki dosyadan alnmtr.

  • 24

    VER TABANI YNETM SSTEMLER I Alako BURMA

    3. VER TABANI TEMEL KAVRAMLARI

    Veritaban (DataBase) : En genel tanmyla, kullanm amacna uygun olarak dzenlenmi veriler topluluudur. Mteri adres defterleri, rn sat bilgilerinin sakland dosyalar, renciler ve renciler ait har ve not bilgileri gibi, personel bilgi dosyalar gibi bilgi dzenleri veritabanlarna rnek olarak verilebilir. Belirli bir konu hakknda toplanm veriler; bir veritaban program altnda toplanrlar. stenildiinde toplanan bilgilerin tm veya istenilen zelliklere uyanlar grntlenebilir, yazdrlabilir hatta bilgilerinden yeni bilgiler retilerek bunlar eitli amalarla kullanlabilirler. Veriler fiziksel hafzada Veri Dosyalar (DataFiles) halinde saklanrlar. Dosya, bilgisayarlarn bilgileri birbirinden ayrarak saklamak iin kulland temel bilgi depolama yapsdr. Bir dosyada, bir ok veri yer alabilir. Bir personel otomasyonu ele alnacak olursa, personel ile ilgili bilgiler, personelin alt birimler, meslekleri, ald maa ile ilgili bilgiler ayn veri dosyasnda ama farkl tablolar ierisinde yer alabilirler.

    Bu blmde veri taban ile ilgili temel kavramlar zerinde durulacaktr. ncelikle bu kavramlar tanmlanacak ve hangi amala kullanld anlatlacaktr. Bu kavramlarla ilgili detayl rnek ve aklamalar sonraki blmlerde yaplacaktr.

    3.1. Tablo ve Elemanlar Tablo verilerin satrlar (row) ve stunlar (colomn) halinde dzenlenmesiyle

    oluan veri grubudur. Veritabanlar bir veya daha fazla tablodan oluurlar. Tablolar arasnda ilikiler dzenlenebilir. Tablonun satrlarndaki her bir bilgi kayt (record), stunlar ise alan (field) olarak isimlendirilir. Bir tabloda yer alan her bir kayt bir satra karlk gelir. rnein personel listesi (yani personel tablosunu) ele alnacak olursa, her bir satrda bir personele ait bilgiler yer alr. Stunlardaki alanlar (Field) ise yaplandrlm bilginin her bir ksmn saklamak zere yaplan tanmlamadr. Bir personele ait bilgilerin her biri stunlarda tutulur. Personelin sicil numaras, ad, soyad, alt birim, doum tarihi gibi bilgilerin her biri bir stun alandr. Her bir alan, yaplandrlm verinin bir birimini tutmak zere tanmlanr. Her bir stunun ad ile birlikte dier bilgilerinin (en fazla ka birimlik bilgi bu hcrede saklanabilecek, ne tr bilgi saklanacak vs.) ortaya koyduu tanma alan denir.

    Herhangi bir veritaban programnda almaya balamadan nce yaplacak ie uygun veri taban tasarm yaplmaldr. Bu iin en nemli aamasdr. Balangta iyi tasarlanmayan bir veritaban ileride geriye dn olmayan verimsiz bir bilgi ynna dnebilir. En basit hali ile veritaban tasarmnda; hangi tablolarn olaca, bu tablolarda hangi alanlarn olaca, tablolar arasndaki alan ilikilerinin neler olaca ve alanlara ait zelliklerin tanmlanmas yaplr. Alan zelliklerinde alan ad, alan tipi, alann uzunluu, alann varsaylan deeri, bu alana yazlacak verilerin geerlilik koullar balangta tasarlanmas gerekir.

    BLM 3

  • 25

    VER TABANI YNETM SSTEMLER I Alako BURMA

    Veritabannn en nemli bileeni tablodur. Her veritabannda en az bir tablo bulunur. Veritaban ilemlerinde nce tablo/tablolar tanmlanr. Daha sonra tablolara kaydedilecek bilgilerin neler olaca ve bu bilgilere ait zellikler tanmlanr. Personelin sicil numaras ve bunun saylardan olumas, personelin ad soyad ve bunun harflerden olumas gibi. Tanmlamalar bittikten sonra tablodaki bu alanlara ait gerek bilgiler yazlr. Yazlan bu bilgiler tablolarda tutulur. Kayt ile satr arasndaki temel fark, kayt ile kastedilen yapnn stunlar hakkndaki bilgileri de iermesidir.

    Tablolara girilmi bilgilerden belirli artlara uyanlarn liste eklinde alnmasna sorgu ad verilir. Tablolardan gerektiinde sorgulamalar yaplabilir. Deiik amalara gre sorgular hazrlanarak tablodaki bilgilerin tm, bir ksm veya belirli art salayanlarn listesi alnabilir. rnein, muhasebe blmnde alan personelin listesi gibi. Sorgular SQL; ilerleyen blmlerde detaylar ile anlatlacaktr.

    3.2. Veri Tipi (Data Type)

    Bilgisayar, kaytlar tablolarda yapsal olarak tutarken, onlarn yaplar hakknda fikir sahibi olabilmek iin baz zelliklerinin nceden tanmlanmas gerekir. rnein, personel sicil numaras alannn mutlaka bir tam saydan oluaca, personel ad ve soyadnn harflerden oluaca, personelin alt blmn harf ya da rakamlardan oluaca, personelin doum tarihinin tarih bilgilerinden oluaca gibi. Bir veritaban oluturulurken, nce tablolar ve sonrada bu tablodaki her bir alann veri tiplerinin ne olaca tanmlanmak zorundadr. Bir tablo alanna veri girii yaplmadan nce o alann tamsay m yoksa harf mi; tarih mi yoksa ondalkl bir say m olaca tanmlanmal ve veriler daha sonra tabloya yazlmaldr. Ayrca, bir alann uzunluu ne kadar olacak, harf girilebiliyorsa en fazla ka harf girilebilecek?, rakam ise en fazla ka basamakl olabilir? trnden sorular yantlamak iin de yine VTYS bir alan iin veri tipi belirlenmesini ister.

    Her Veri Taban Programnn veri tipleri farkldr. Aada Ms Access, MySQL ve Oracle veri taban program rnek veri tipleri verilmitir.

    3.2.1. Access Veri Taban Veri Tipleri

    Metin : Yazlacak bilgiler harflerden veya hem harf hem de saylardan meydana geliyorsa kullanlacak veri trdr. Bu alana bolukta dahil olmak zere en fazla 255 karakter bilgi yazlabilir. Bu alana yazlan bilgiler sadece saylardan da oluabilir, ama yazlan saylar hesaplama ilemlerinde kullanlamazlar. Not : Uzun metin yada metin ve say bileimi kullanlabilir. Genelde aklama ya da uzun bir not yazlacaksa bu alan kullanlr. 64.000 karakterle snrldr. Say : renci numaras, rencinin snf gibi saysal bilgiler iin kullanlr. Saysal alanlar matematiksel hesaplamalarda kullanlabilir. Bor, alacak, renci harc gibi. Tarih/Saat : 100 ile 9999 arasndaki yllar iin tarih ve saat deerleridir.

  • 26

    VER TABANI YNETM SSTEMLER I Alako BURMA

    Para Birimi : Bir ile drt arasndaki ondalk basama olan, matematik hesaplamalarnda kullanlan para birimi deerleri ve saysal veriler. Otomatik Say : Tabloya yeni bir kayt eklendiinde, Access tarafndan atanan benzersiz ardk (birer birer artan) ya da rasgele saylar. Otomatik say alanlar deitirilemez. Evet/Hayr : Yalnzca iki deerden birini ieren alanlar Evet / Hayr, Doru / Yanl, Ak / Kapal gibi alanlar gibi. OLE Nesnesi : Access tablosuna balanm ya da kattrlm bir nesne. (Microsoft Word veya Excel alma sayfas gibi) Kpr : Tklandnda kullancy baka bir dosyaya, dosyadaki bir konuma veya Internetteki (www) bir blgeye ynlendiren balant. Arama Sihirbaz : Deerleri baka tablo, sorgu ya da deerler listesindeki deerlerden seilen bir alan yaratmamza yardmc olan sihirbaz.

    3.2.2. MySQL Veri Taban Veri Tipleri

    MySQL'de bir ok veri tr oluturulabilir. Ancak Web programlar asndan nemli olan bir ka ve zellikleri yle sralanabilir:

    INT : Tamsay: -2147483648'den 2147483647 kadar deien diziye "signed" (iaretli), 0'dan 4294967295'e kadar deienine "unsigned" (iaretsiz) denir. VARCHAR(n) : n saysn gememek artyla deien boyutta karakter olabilir CHAR(n) : Kesinlikle n says kadar karakter olabilir. TEXT : En fazla 65535(2^16-1) karakter alabilen metin alan. MEDIUMTEXT : En fazla 16777215(2^24-1) karakter alabilen metin alan. DATE : 1000-01-01'den 9999-12-31'e kadar deiebilen tarih alan. TIMESTAMP : 1 Ocak 1970'den 18 Ocak 2038'e kadar olan ve Yl+Ay+Gn+Saat+Dakika+Saniye biimindeki zaman bilgisi.

    3.2.3. Oracle Veri Taban Veri Tipleri

    CHAR(say): Sabit uzunluktaki alfasaysal verilerin tutulabildii alanlar iin kullanlr. Oracle 7 ve daha nceki srmler iin bu alann uzunluu en fazla 255 karakter olabilir. Oracle 8 ve sonrasnda 2000 karakter uzunluundadr. Eer, say ile ifade edilen numaradan daha ksa uzunlukta veriler girilirse Oracle kaydn sonuna boluk ekleyerek sabit uzunlua kadar getirir. rnek char(20).

  • 27

    VER TABANI YNETM SSTEMLER I Alako BURMA VARCHAR2(say): Deiken uzunluklu alfasaysal verilerin tutulduu alanlar

    iin kullanlr. Oracle 7 ve nceki srmlerinde 2000 karakter, Oracle 8 ve sonraki srmlerinde 4000 karakter uzunluunda bilgi girilebilir. rnek varchar2(30).

    NUMBER(n,p): Tamsay ve Gerel saylar iin kullanlan saysal veri tipidir.Tam ksm en fazla 38 basamak olabilir. Ondalk ksmn basamak says da 84 ile 127 arasnda deimektedir. Number veri tipinden tretilmi int[eger], dec[imal], smallint ve real veri tipleri de kullanlabilmektedir.

    DATE: Tarih tutan alanlar iin kullanlr. Bu tip alanlarda, tarih bilgileri ve saat bilgileri tutulabilir. Tarih formatlar Oracle yklenilirken seilen dile gre deiir. Amerikan standart iin DD-MON-YY dir. Yani bir tarih 03-MAY-01 eklinde grnr. NLS_DATE_FORMAT parametresi ile tarih format deitirilebilir. Tarihsel alanlar zerinde aritmetiksel ilemler yaplabilir. Sistem tarihi SYSDATE fonksiyonu kullanlarak renilebilir. Saysal veya karakter olarak tanml bir alandaki veriler TO_DATE fonksiyonu ile tarih tipine evrilebilir.

    LONG: 2 GB a kadar bilgi tutabilen karakter alanlar iin kullanlr. Bir tabloda bu tipten ancak bir adet alan tanmlanabilir. Long veri tipine sahip alanlar iin index oluturulamaz. Not: Oracleda boolean veri tipi yoktur. Bunun iin char(1) ya da number(1) eklinde tanmlama yaplp kullanlabilir. Not: Bir tablonun alanlar kendi veri tipine uygun deerler alabildii gibi bir de NULL deer alabilirler. NULL deeri saysal olarak 0dan ve karakter olarak ta bo karakterden( ) fakldr.

    3.3. Zorlayc (Constraint)

    Herhangi bir alan iin girilebilecek verileri kstlayc kurallara zorlayclar denir. lgili alana girilebilecek deerleri snrlayan bir deyim yazlr. Kullanm bazen ok faydaldr ve zellikle yanl bilgi giriini engeller ve verilerin doru girilmesini zorunlu hale getirir. Kullanc, zorlaycda belirtilen kural dnda bir veriyi tabloya yazmaya altnda, VTYS hata verir. Bylelikle veritabanna kullancnn keyfi deerler girmesi nlenmi olur ve veri tabannda tutarllk salanm olur.

    rnein, bir rencinin snf bilgisine ait deerler yazlrken bu alan iin rakamsal 1 ile 6 arasnda bir zorlayc deer tanmlanrsa; veri girii srasnda 1 ile 6 arasndaki deer dnda bir deerin snf bilgisi alanna yazlmas engellenmi olur. Dolays ile snf iin yazlmamas gereken bir deer; bilgi girii balangcnda kontrol edilmi olur.

    ekil 3.3.1. de mavi izgilerle evrelenmi alanda Ms Access veri taban programnda bir kstlaycnn tanmlanmas yaplm ve zellikle kullanc tarafndan yanl bilgi girii engellenmi ve verilerin doru yazlmas zorunlu hale getirilmitir.

  • 28

    VER TABANI YNETM SSTEMLER I Alako BURMA

    ekil 3.3.1. MS Access de tanmlanm zorlayc ekran

    3.4. Anahtar (Key)

    Anahtar bir veya birden fazla alann bir satr iin niteleyici olarak girilmesi iin tanmlanan zel bir eit zorlaycdr. Tekrarlamayacak bir anahtar alan tanmlandnda, bu anahtar alana birincil anahtar alan denir. Primary Key, Unique Key ve Foreign Key olmak zere 3 eit anahtar vardr.

    Primary Key (Birincil Anahtar) : Bir tablodaki, her bir satrn yerine vekil olabilecek bir anahtar veridir. Tabloda bu alana ait bilginin tekrarlanmamas gerekir. Standart olarak bir tabloda verilerin, fiziksel hafza stnde de hangi alana gre dizileceini de primary key belirler. Bu, bazen bir tek alan olabilecei gibi, bazen birden fazla alan da birleerek bir birincil anahtar oluturabilir. rnein programda personelin sicil numaras alanna gre aramalar yaplacaksa Primary key personel sicil numaras olmaldr. Personelin ad ve soyadna gre aramalar yaplacaksa ad ve soyad alanlar birletirilerek iki alandan tek anahtar alan tanmlamas yaplr.

    Unique Key(Tekil Anahtar): Unique Key olarak tanmlanan alan iin bir deer sadece bir kere girilebilir. Bir baka satra daha ayn verinin girilmesine izin verilmez. Primary Key den farkl olarak Unique Key, NULL (boluk) deerini alabilir. rnein programda her personele ait bir sicil numaras olaca iin bu alan Unique key olarak tanmlanabilir. Ama isim alan birden fazla ayn isme sahip personel olabilecei iin bir Unique key olarak tanmlanamaz. Ali isimli birden fazla personel olabilecei gibi.

  • 29

    VER TABANI YNETM SSTEMLER I Alako BURMA

    Foreign Key (Yabanc Anahtar) : Bir tabloya girilebilecek deerleri baka bir tablonun belli bir alannda yer alabilecek veri grubu ile snrlandrmaya ve en nemlisi de ilikilendirmeye yarar. rnein, olmayan bir kitabn dn tablosuna eklenememesi ve dn tablosuna eklenen bir kitabn numaras araclyla detay bilgilerine eriilmesi gibi. Burada Kitap.KitapNo birincil anahtar alan; Odunc.kitapNo ise yabanc anahtardr.

    3.5. Index (ndeks)

    Ktphanelerdeki kitaplarn raflardaki dizililerini ele alalm. Bir kitap arandnda, kitaplar bir kurala gre dizilmemilerse, her bir kitaba teker teker baklmas gerekir. Kitaplar raflara alfabetik dizilirse, her bir kitap tek tek gzden geirilmek zorunda kalnmaz. Aranlan kitap ile baklmakta olunan kitabn isimleri karlatrlr, saa ya da sola ynelip aramaya devam edilir. Ayn ekilde yazarlarna ya da ktphane numarasna gre sralanm birer liste olursa, bu kriterlere gre de aranlan kitap kolayca bulunur. Veritabanlarnda indeks oluturularak, veriler veritabanndaki kaytl olduklar sradan baka bir srada gsterilebilir ve tpk ktphanedeki bir kitaba ulamada olduu gibi istenilen veriye daha ksa srede ve kolayca ulalabilir. Temelde indekslerin ilikisel veritabannda u ilevi vardr: 1.Tekil indeksler, veri ilikilerini ve veri btnln salayan birincil anahtar alanlar oluturmada kullanlr. 2. ndeks olan alann deerine gre bir kaydn kaytlar arasndaki srasn gsterirler. 3.Sorgularn neticelenme srelerini ksaltrlar.

    Constraintler (zorlayclar) aslnda indexlere benzerler ama indekslerden farkl olarak bir tek tablo stnde etkili olmayabilirler. zellikle yabanc anahtar zorlaycs ilikisel veri girii iin olduka etkili bir zorlaycdr. Ancak bir Foreign Key tanm yapabilmek iin, FOREIGN KEY yabanc anahtarnn asl tablosunda birincil anahtar olmas gerekir.

    3.6. View (Grnt)

    Bazen, tablolar olduklarndan farkl gsterecek filtrelere ihtiya duyulur. Bu trden ilevler iin VIEW kullanlr. VIEW ler, saklanm sorgulardan ibarettirler. Aslnda tablo gibi kullanlsa da halihazrda byle bir tablo veritabannda bulunmaz, sadece view(grnts) bulunur. VIEW ler u grevler iin kullanlr:

    * Kullanclarn baz kritik tablolarn sadece belli stunlarn veya satrlarn grmesi istenildiinde,

    * Kullanclarn, eitli birim dnmlerinden gemi deerler grmeleri gerektiinde,

    * Halihazrdaki tablolarda var olan verilerin baka bir tablo formatnda sunulmas gerektiinde

    ok kompleks sorgular basitletirmek iin

  • 30

    VER TABANI YNETM SSTEMLER I Alako BURMA

    rnein Kitap tablosunda sadece Bilgi Teknolojileri trndeki kitaplarn yer alaca bir VIEW u ekilde oluturulabilir:

    CREATE VIEW view_adi [(kolon1,

    kolon2...)] AS SELECT tablo1.kolon_adi_1, tablo2.kolon_adi_1 FROM tablo_adi_1, tablo_adi_2 ;

    Not : MSAccess de VIEW oluturulamaz. SQLServer, SyBase, Oracle gibi orta ve byk lekli VTYS lerde oluturulabilir.

    3.7. Joining (ilikilendirme)

    ki veya daha fazla tabloyu birlikte sorgulama ilemine join ismi verilir. likisel veritabannn en temelinde birden fazla tablo stnde birlikte ilem yapabilmek yatar. Bu sayede verilerin tekrarlanmas nlenmi olur ve sonuta veri ynetimi kolaylar. rnein, Kitap tablosunda, Kitabn bir tekil numara ile listesini tutmak ve dn listesinde de bu Kitabn kim tarafndan alndnn, geri getirilip getirilmediinin kayd tutulmaktadr. Bazen, bu iki tablodaki bilgilere de bir tek sorgu sonucu olarak ihtiya duyulabilir.

    rnein; elimizde yle bir sonu olmaldr ki, hangi kitabn kim tarafndan dn alndn bir listede grme ihtiyac duyulsun. Bu iki tablo birbirine, kitapNo alan ile baldr. nk, dn verilen bir kitap hakknda detayl bilgi edinilmek istenildiinde, dn listesinden kitap numarasn alp, daha sonra Kitap tablosundan ayn numaray bulmak ve karlndaki kitap hakkndaki detaylar grmek.

  • 29

    VER TABANI YNETM SSTEMLER I Alako BURMA

    4. VER TABANI TASARIMI ve NORMALZASYONU

    4.1. Veri Taban Tasarm Iyi bir veritaban tasarm yapabilmek iin yetenek, bilgi ve tecrbe ok

    nemlidir. ncelikle, ilikisel veritabannn tanmn ve bununla ilgili 5 Normalizasyon kuraln ok iyi bilmek gerekir. 5N, tasarm aamasnda yol gstermek yerine hangi artlara uygun tasarm yaplmas gerektiini anlatr. Bazen, bu kurallardan vazgemek durumunda olunabilir ancak, veritabannda saklanacak verilerin hacmi arttka yani veri taban bydke bu kurallarn daha sk uygulanmasn gerekir.

    Bir veri taban ile proje yaplrken iin en nemli aamas veri tabannn tasarlanmasdr. Balangta yanl tasarlanan bir veri taban ile yaplan projede sonradan yaplacak dzenlemelerle geri dn yaplamaz. O nedenle Veri taban tasarm yaplrken aadaki maddelere uyularak yaplmas gerekir.

    1. Nesneler Tanmlanr: Nesne, eitli zellikleri bulunan bir varlktr. Herhangi bir proje de ncelikle nesneler tanmlanr. Birka proje iin nesnelere rnek verilecek olunursa, Ktphane sistemi : Kitap, yeler, trler, dn hareketleri E-ticaret sistemi : rnler, mteriler, sipariler, teslimat, fatura bilgileri, reticiler, tedarikiler, datclar... Futbol Ligi : Takmlar, sahalar, oyuncular, fikstr, hakemler, antrenrler Okul Sistemi : renciler, retmenler, dersler, derslikler Personel Sistemi : alanlar, meslekler, allan birimler, maalar, izinler Szlk : kelimeler, anlamlar, diller Not : Tablolara isim verilirken mmknse tekil isimler kullanlmaldr. Byle yaplrsa; hem daha anlalr bir tasarm yaplm olur hem de daha sonra kodlama aamasnda karkln nne geilmi olur. rnein iinde Kitap ile ilgili bilgiler bulunduran tablonun adn Kitap koymak olduka mantkldr.

    2. Her nesne iin bir tablo oluturulur: Her nesne iin bir tablo oluturulur ve her bir tabloya ierecei veriyi en iyi anlatan bir isim verilir. Tablo oluturma ii, bir kat stnde sembolik olarak gsterilebilir veya dorudan MS Access, SQL Server, MySQL, Oracle ... gibi kullanlmakta olunan VTYS stnden de oluturulabilir. Tm proje bitirilinceye kadar bu tablolar zerinde muhtemel deiiklikler yaplabilir.

    3. Her bir tablo iin bir anahtar alan seilir: Veritabanndaki herhangi bir veriye eriilmeden nce tabloya eriilir. Bir veritabannda zerinde en ok ilem yaplan nesne grubu genellikle tablolardr. Bu aamaya kadar hangi tablolarn oluturulacana karar verildi. Her bir tablonun iinde hangi bilgilerin saklanlaca kabaca tasarlanr. Bu aamada, tabloda yer alacak her bir kayd bir dierinden ayrabilecek bir stuna ihtiya duyulur.

    BLM 4

  • 30

    VER TABANI YNETM SSTEMLER I Alako BURMA

    rnein bir kitap seilmek istenildiinde, bu kitabn hangi kitap olaca yle bir anlatlabilmeli ki, baka hibir kitap ile karmamaldr. Bunu yapmann tek yolu, bir alan birincil anahtar alan olarak belirlemektir. Anahtar alan seilirken, kstlamad srece, doal alanlar seilmeye dikkat edilmelidir. rnein aralar ile ilgili bir tablo yaplrken, plakalar anahtar alan olarak belirlenebilir. nk her bir plakadan bir tek ara trafie kabilir ve plakalar kstlamaz. renci tablosu iin, renci numaras doal bir anahtar alandr nk ayn okulda, ayn numaradan bir rencinin daha bulunmas sz konusu deildir. Personel tablosu iin, personel sicil numaras doal bir anahtar alandr nk ayn iyerinde, ayn numaradan bir personel daha bulunmaz.

    Kitap tablosu iin ISBN numaras anahtar alan olarak tanmlanabilir ama, ayn kitaptan iki adet olduunda, ISBN numaras bizi kstlar. Elimizde iki adet nmzdeki Yol kitab varsa, her iki kitabn da ISBN numaras ayndr. Kitaplardan birisi eski dieri yeni olabilir. Bu bir kargaaya neden olabilir. nk eski kitab kime, yeni kitab kime verdiimizin takibini ISBN numaras ile yapmak mmkn deildir. Ancak bir E-Ticaret sitesi tasarlanrken, stoktaki tm kitaplar birbiri ile edeer olacandan ya da yle olduu varsayldndan ISBN numaras birincil anahtar alan olabilir. Bu durumda, adet diye bir niteliin ayn tabloda yer almas gerekecektir.

    4. Nesnelerin gerekli her bir zellii iin tabloya bir stun eklenir: Tablo adlar tanmlandktan ve anahtar adlar belirlendikten sonra, tablolara srasyla adn veren nesnelerin her bir zellii iin bir alan (stun) eklenir. rnein, kitap iin; Kitap no, ISBN no, kitap ad, yazar, tr, sayfa says, zeti, fiyat, bask yl... ye iin; UyeNo, ad, soyad, e-mail adresi, ev telefonu, cep telefonu, i telefonu.... Personel iin; Personel sicil No, ad, soyad, e-mail adresi, meslei, alt birim, maa....

    Bu hazrlklar yaplrken yaplmas istenilen proje ile ilgili basl formlar vs. varsa, onlarn incelenmesi tabloya eklenecek stunlarn hangi zellikler olmas gerektii konusunda karar verilmesinde yardmc olurlar.

    PUCU : 1. En baa birincil anahtar olarak belirlenen alan eklemek bir kural deildir, ancak tablonun anlalrl ve gze ho grnmesi asndan tercih edilmesi faydal olacak bir tekniktir.

    2. Genellikle, yapay birincil anahtar alanlar tablo ad ile balar ve sonunda ID vardr. Ogrenci tablosu iin ogrenciID, Personel tablosu iin personelID gibi.

    5. Tekrarlayan nesne zellikleri iin ek tablolar oluturulur : Aklda hep u soru olmaldr: veri tekrar olacak m? Veri tekrar olacaksa bir yerlerde hata yaplyor demektir. Bu durumda eldeki tablonun en az bir tabloya daha ayrlmas gerekiyor demektir.

    u da unutulmamaldr, her projeye uyacak evrensel bir veritaban tasarm teknii yoktur. Yani her ey belli kurallar erevesinde ne kadar detayyla dnlp tasarlandna baldr.

  • 31

    VER TABANI YNETM SSTEMLER I Alako BURMA

    rnein, her bir kitap iin tr belirledik ama, bir kitap hem kiisel geliim kategorisine hem de hikaye kategorisine girebilir. Ya da e-ticaret sisteminde bir rnn birden fazla reyonda yer almas gerekli olabilir. Veya bir kitap birden fazla kii tarafndan yazlm olabilir. Bir kitap iin birden fazla tr kaydedebilme ele alnsn:

    Bu trden bir sorunu zmek iin ilk akla gelen ey, Kitap tablosunda tr alan iin 2.stun daha eklemek olabilir. Bu tabloya 2.Tr ve 3.Tr diye iki stun alan daha eklemek. Ama ou kitap bir tek trdendir ve bu kitap iin eklenen 2 alan hep bo kalacaktr. te yandan, 4.tre birden giren bir kitap olduunda 4.tr bilgisi nereye yazlacaktr? Ayn alana m? Ya da drt adet blm m alacak? Bunlar, veritaban tasarmnn doasna terstir.

    2.zm yolu ise, bir kitab iki kere kaydedip, birincisini, Kiisel Geliim tr olarak; ikincisini de Hikaye olarak girmektir. Bu durumda tabloda ayn kitaba ait iki kayt olacaktr ve kitap tr dndaki dier tm bilgiler tekrar edecektir. Ya da bir sre sonra, kitap hakknda girilen bilgilerin yanl olduu fark edildi. Hangi kayt gncellenecektir? Ya biri dzeltip dieri unutulursa? Sonuta veri tekrar ve veri btnlnn bozulmas sz konusudur.

    Bu da yine ilikisel veritaban tasarmnn doasna terstir. Bu durumda, trler diye bir yeni tablo oluturup, bir de kitap_turler diye 2.tablo yu oluturduktan sonra bu trden bilgileri burada tutmak gerekecektir. Bylelikle, hibir trde yer almayan kitaptan 10 ayr trde yer alan kitaba kadar btn olaslklar iin bir zm gelitirilmi olur.

    Ayn ilem renci ve renciye ait ders notlar iin dnlebilir. renciye ait ders not bilgilerinin yazld tabloya ait stunlarn aadaki gibi olduunu varsaylrsa;

    renciNo DersinAd VizeNotu FinalNotu Ortalama

    Bir renci ald dersten baarl olursa vize ve final notu yazlarak ortalamas hesaplanr ve sorun yaanmaz. Ama renci bu dersten baarsz olursa bu dersi yeniden almak zorundadr. Yeniden ald bu derse ait ders notlarnn nereye yazlacann dnlmesi gerekir. Eski notlarnn da kalmas gerektii dnd bu durumda tablo aadaki gibi tasarlanabilir.

    renciNo DersinAd VizeNotu FinalNotu Ortalama VizeNotu FinalNotu Ortalama 03101001 BILGISAYAR 37 40 45 48

    Tabloda 2 adet not yazlabilecek alan vardr. Peki ama rencinin dersi ikiden fazla kere tekrar etmesi gerekirse ne olacak? Bu durumda yeni stun alanlar m eklemek gerekecek? Tabloya 3 tane not yazma alan eklendiinde dersi bir kere alan ve baarl olan renciler iin 2. ve 3.alanlar bo kalacaktr. Bu her renci iin deiebilecek bir durum olduu iin tablo tasarmnda bu mantkla dnmek doru deildir. Yukarda ki rnekte de akland gibi bu ekilde bir tasarm yaplmaz.

  • 32

    VER TABANI YNETM SSTEMLER I Alako BURMA

    Ayrca; tabloda tanmlanan her stun alan, bu alana hibir bilgi yazlmasa bile HDde yer kaplayaca iin;diskte tanmlanan bu alanlar bouna kullanlm olacaktr.

    Dolays ile diskte de bo yere alan igal edilmi olacandan tabloda gereksiz stun alanlarnn tanmlanmamas gerekir. rnein, tabloda gereksiz tanmlanan bir stun alan diskte 4byte yer kaplyor ise ve tabloda toplam 15 bin renci var ise; gereksiz kullanlan toplam HD alan 4 * 15.000 = 60.000 byte olacaktr. Sadece tek bir alan iin bu kadar alann bo yere kullanlm olmas ho bir durum deildir.

    Bu durumda tablo tasarmnda yaplmas gereken dzenleme aadaki gibi olmaldr. Bir renciye ait dersler yazlrken alt alta satrlar eklinde kayt (record) olarak yazlarak yaplmaldr.

    renciNo DersinAd VizeNotu FinalNotu Ortalama 03101001 BILGISAYAR 37 40 03101002 INGILIZCE 56 58 03101001 BILGISAYAR 45 48 03101001 BILGISAYAR 69 78

    Doru tablo tasarm ve kayt girii yukardaki tabloda olduu gibi olmaldr. Burada 03101001 numaral rencinin BILGISAYAR dersine ait notlar bu tablodan ilerleyen blmde anlatlan SQL cmlecii ile seilerek bulunabilir.

    6. Anahtar Alana Bal Olmayan Alanlar Belirlenir : likisel veritabannda, tablodan herhangi bir tek kayda erimek iin mutlaka bir farkl zellik salanmaldr ve bu zellik de anahtar alan tarafndan salanr. Ancak bazen, anahtar alan ile ayn satrda yer ald halde, anahtar alan ile birebir ilikisi olmayan bir alan yer alabilir. Bu trden alanlarn elimine edilip ayr tablolara ayrlmas gerekir. rnein, dn tablosu ele alnacak olursa, dn verilen her kitap iin dn alann adresi de bilinmek istenirse, bu dn tablosuna yazlamaz. nk dn tablosunun birincil anahtar alan oduncNo dur ve bu alan, dn verme ilemi ile ilgilidir. Oysa dn alann adresi, dn alan kiinin kendisine bal bir zelliktir. Bu kiinin her ald kitap iin adresini tekrar yazmaya gerek yoktur. Ayn ekilde otomasyon ierisinde baka yerlerde de bu kiinin adres bilgilerine muhtemelen ihtiya duyulabilir nk adres, yenin bir zelliidir.

    dn verilen kitabn adresi renilmek istenildiinde, yeler adnda bir tablo daha alp, burada herkesin adres bilgisi tutulmak zorunda kalnr. dn tablosunun ise, oduncAlan bilgisi olarak, yeler tablosunun birincil anahtar alanna bir balant (yabanc anahtar) iermesi daha doru olur.

  • 33

    VER TABANI YNETM SSTEMLER I Alako BURMA

    7.Tablolar arasndaki ilikiler tanmlanr : Her biri bir nesneye dair zellikleri barndran tablolarn tm gz nne alnr ve birbirleri ile olan ilikileri tanmlanmaya allr. rnein kitab dn verebiliriz. Bu durumda, dn tablosu ile Kitap tablosu ilikili olacaktr. Kitap yelere dn verilir. Bu durumda, dn ile yeler arasnda da bir iliki vardr. Trler ile Kitap arasnda bir iliki vardr, bir kitabn en az bir tre dahil olmas gerekir.

    Bu projedeki nesneler (tablolar) arasnda ilikiler aada yer almaktadr:

    ekil 4.1.1. rnek Projenin SQL Server 2000 deki diyagram

    likili her iki tablo bir birincil alan ve bir yabanc anahtar alan stnden birbirine balanr. Ayn diyagramn bir benzeri Ms Access veya Oracle veri tabanlarnda da hazrlanabilir.

    Farkl tablolardaki iki alan ayn veriyi tutuyorsa, iki alana da ayn ad vermek, karkla yol aabilir gibi grnse de aslnda daha dzgn bir yap ortaya kar. KitapNo alan kitap tablosunda da dn tablosunda da kitap numarasn tutmaktadr. Bu alanlardan birine KitapNo, dierine oduncGidenKitapNo demek, kafa karklna neden olabilir. En nemlisi de her alan iin her tabloda farkl isimler kullanmak deikenlerin isminin aklda tutulmasn zorlatracak ve daha sonraki tablolar zerinde ilem yaparken ilemleri zorlatracaktr. Her seferinde ilgili alann hangi isimle kaydedildiine bir listeden bakmak zorunda kalnacaktr. nk byk bir veritaban projesinde 250 den fazla tablo bulunabilir. Her tabloda da bir ok alann bulunaca dikkate alndnda her alana ait isimlerin aklda tutulmas mmkn olmamaktadr. Birden fazla tabloda olan alanlar iin; ayn ismi kullanmak bu zorluu ortadan kaldracaktr. En mantkls her ikisine de KitapNo demektir.

  • 34

    VER TABANI YNETM SSTEMLER I Alako BURMA

    4.2. Veri Taban Normalizasyonu

    Aslnda ilikisel veri taban tasarmndan ziyade, bir tablo ierisinde yer alacak kaydn nelerden olumasna karar vermeye yarayan normalizasyon kurallar bal bana bir ilemdir. Normalizasyon; veritaban tasarm aamasnda gerekli bir ilem olduundan bu blmde incelenecektir. Genel kabul grm 5 normalizasyon kural vardr. Burada her bir kural tam olarak anlatmak mmkn deildir. Ancak bu kurallar, ilikisel veritabannn tanm ile birlikte ortaya konulmutur. zet olarak fikri vermesi asndan normalizasyon kurallarna aada yer verilmitir.

    1. Normalizasyon Kural : Bir satrdaki bir alan yalnzca bir tek bilgi ierebilir. Birden fazla yazar olan kitap

    iin yazar1, yazar2 ve yazar3 diye alanlarn almas ile bu kurala uyulmam olunur. Byle bir durumda, ayrca yazarlar tablosu da oluturularak kural inenmemi olur.

    Veri taban tasarmnda; verileri virgl veya bir baka karakter ile ayrlp ayn alana girilmesi ve daha sonra program ierisinde split ile bu deerlerin ayrlmas genellikle sk yaplan hatalardan birisidir. Ancak bu ilikisel veritabannn doasna terstir. Bunun yaplmamas gerekir.

    2. Normalizasyon Kural: Bir tablo iin, anahtar olmayan her alan, birincil anahtar olarak tanml tm

    alanlara bal olmak zorundadr. rnein, dn tablosuna KitapAdi diye bir alan eklense idi, bu sadece dn verilen kitap ile ilgili bir bilgi olacakt ve oduncNo na bal bir nitelik olmayacakt. Bunu zmek iin, kitap adlar ayr bir tabloda tutularak sorun zlebilir.

    Ya da anahtar alann birden fazla alandan olutuu tablolarda, anahtar alanlardan sadece birine bal veriler tabloda yer almamal, ayr bir tabloya tanmaldr. Bunun tersi de geerlidir. Yani iki ya da daha fazla tablonun birincil anahtar ayn olamaz. Byle bir durum sz konusu ise, bu iki tablo tek tabloya indirilmelidir.

    3. Normalizasyon Kural: Bir tablo iin, anahtar olmayan bir alan, anahtar olmayan baka hi bir alana

    bal olamaz. rnein, kitaplar iin cilt tipi adnda bir alan eklenip burada da karton kapak iin K, deri cilt iin D, spiral cilt iin S yazlsayd, bu kodlama, kitap tablosunun birincil anahtar olan kitapNo alanna bal bir kodlama olamazd. nk bu kodlama bir baka anahtar olmayan alana baldr. Bunun sonucunda da veritabannda, karl olmayan bir kodlama yer alm olurdu. Cilt tipi bilgisini kodlu olarak tutan alan aslnda cilt tipi aklamas olan baka bir alana baldr. Bu iliki baka bir tabloda tutulmaldr. Bu durumda, cilt ekillerini tutan bir tablo almas gerekir. Bu tablonun alanlar da ciltTipKodu ve ciltSekli olabilir. Ancak bundan sonra, kitaplar tablosunda ciltTipi adnda bir stun ap buraya da D,S,K gibi kodlar yazlabilir.

  • 35

    VER TABANI YNETM SSTEMLER I Alako BURMA 4. Normalizasyon Kural: Birincil anahtar alanlar ile anahtar olmayan alanlar arasnda, birden fazla

    bamsz bire-ok ilikisine izin verilmez. rnein, tabloda yer alan bir kitap, hem hikaye kitab hem de kiisel geliim kitab olabilir. (Bu durumda kitabn ad, kiisel geliim hikayeleri olurdu her halde) Bu durum Kitap tablosunda nasl ifade edilebilir?

    4.Normal formu salamak iin, her bamsz bire ok iliki iin ayr bir tablo oluturulmas gerekir. Bu rnekte, trler iin yeni bir tablo almas gerekir. Tablonun adna trler denilebilir. Daha sonra kitapTurleri diye bir baka tablo daha almas gerekir. Kiisel Geliim Hikayeleri adl kitap iin, ncelikle kitap numaras, Hikaye blmnn kodunun yer ald bir satr; ardndan da yine kitap numaras, ardndan da kiisel geliim trnn kodunun ald yeni bir satrn daha eklenmesi gerekir.

    5. Normalizasyon Kural: Tekrarlamalar ortadan kaldrmak iin her bir tablonun mmkn olduunca kk

    paralara blnmesi gerekir. Aslnda ilk 4 kural sonuta bu ie yarar ancak, bu kurallar kapsamnda olmayan tekrarlamalar da 5 normalizasyon kural ile giderilebilir.

    rnein, kitaplar iin bir edinme ekli bilgisi girilecek stun eklenmek istenebilir: Bu blme girilebilecek bilgiler bellidir: Ba veya satn alma.

    Bu bilgiler baka bir tabloda tutulabilir. Bylelikle, kullanclarn bu alana gelii gzel bilgiler girmesi engellenmi olur. Bu da sorgulama esnasnda veriler arasnda bir tutarllk salar. Bu ilem sonucunda, tutarszlklara neden olabilecek ve sk tekrarlayan veriler baka bir tabloya tanm olur. Bu tablo iin, veritaban programlamada look-up table terimi kullanlr.

    Ancak, veritaban normalizasyon kurallar, bir ilikisel veritabannn tasarlanma aamalarn deil de ilikisel veritabannda yer alacak kaytlarn ilikisel veritaban ile uyumlu olup olmadn denetlemeye yneliktir. zetle ilikisel bir veritaban tasarm u drt eyi barndrmaldr.

    1. Veri tekrar yaplmamaldr. 2. Bo yer mmkn olduunca az olmaldr. 3. Veri btnl salanmaldr. 4. Veriler, aralarnda bir iliki tanmlanmaya msait olmaldr.

    4.3. likisel Veri Taban Ynetim Sistemleri Veritaban Ynetim sistemlerinden gnmzde kullanm en yaygn olan ilikisel

    veritabandr ve en yaygn veritaban ynetim sistemleri, ilikisel Veritaban Ynetim Sistemleri (VTYS) dir. likisel veritabannn en nemli yan, tablolardan olumasdr. Daha nemli yan da bu tablolarn birbiri ile ilikilerinin olmasdr. VTYS lere ilikisel denmesinin anlam budur.

  • 36

    VER TABANI YNETM SSTEMLER I Alako BURMA

    Bir veritabannda ilikiden sz edebilmek iin en az iki tablonun yer almas gerekir ve bu iki tablodaki verilerin birbiri ile bir ekilde ilikilendiriliyor olmas gerekir. Yine bir nceki rnek olaya dnecek olursak, Kitap listesi ile dnler listesi arasnda bir iliki vardr. nk Kitap listesinde olmayan bir kitap bizde yoktur ve dn verilemez. Haliyle de mantk olarak bu trden bir dn bilgisi dn listesinde yer almamaldr. Olaya tersten baklacak olursa, geri dnmeyen bir kitap hakkndaki detaylar renilmek istenildiinde dn listesindeki kitap numaras alnr. Daha sonra ayn numaraya karlk gelen kitap, Kitap tablosundaki satrda bulunur. Bu satrdaki bilgiler, bize kitap hakkndaki tm detaylar verir.

    Kitap tablosundaki kitapNo alan aday anahtar (indeks)tir. Odunc tablosundaki KitapNo alan, yabanc anahtar (foreign key) alandr, nk Kitap tablosundaki bir kayd sembolize etmektedir. Tm bunlarn ardndan VTYS leri hakknda zet olarak diyebiliriz ki;

    Bir Ilikisel Veritaban Ynetim Sistemi tablolar stnde u ilevi yerine getirmek zorundadr.

    1.Seme : Herhangi bir tabloda (listede) yer alan tm bilgileri gsterebilmelidir. rnein, Kitap tablosunun bir dkmn verebilmelidir ya da kitap listesinden baz kitaplarn bilgilerini getirip dier bir ksmn getirmeyebilmelidir.

    2. zdrme : Herhangi bir tablodan sadece belli stunlarn yer ald seme ilevlerini yerine getirebilmelidir. rnein, can isteyen bir kullanc kitabn sadece adn ve ka sayfa olduunu seebilmelidir.

    3.Birletirme : Birden fazla tabloda yer alan bilgiler, yeri geldiinde tek bir tabloymu gibi sunulabilmelidir. rnein, dn alnp da geri getirilmeyen kitaplarn adlar ve kimler tarafndan alnd bir tek tabloymu gibi gsterilebilmelidir.

    VTYS bu 3 temel ilevi yerine getirebilmelidir. Bunlardan , ikisi veya biri ayn anda yerine getirilmek durumunda kalnabilir. rnein, sayfa says 200 den byk kitaplarn sadece ismi grlmek istenirse, hem izdrme hem de seme ilemine ihtiya duyulur. Veriler ve depolanma ekilleri farkl olabilir. nemli olan, VTYSnin SQL ile ynetilebilir olmasdr. Bylelikle, verilerin bilgisayarda fiziksel olarak ne ekilde depoland, kullanc bilmek zorunda deildir.

    Yani, kullanc temel veri saklama ilem ve yntemlerinden izole edilmi olur. Kullancnn verileri etkili olarak kullanmas iin bilmesi gereken tek ey SQL olmaldr. SQL ilerleyen blmlerde anlatlmtr.

  • 39

    VER TABANI YNETM SSTEMLER I Alako BURMA

    5. RNEK BR VER TABANI TASARIMI ve NORMALZASYONU

    Bir veri taban ile proje yaplrken iin en nemli aamasnn veri tabannn tasarlanmas olduundan ve bunu yaparken hangi kurallara gre yaplacandan bahsedilmiti. 4.blmde veri taban tasarmnda tablolar ve stunlardan bahsedilmi, normalizasyon ile de tablolara kaydedilecek bilgilerin zelliklerinden ve hazrlanma kurallarndan bahsedildi.

    Bu ders notu kapsamnda veri taban ynetim s