Oracle VTYS ve Örnek Uygulama Geliştirme

advertisement
T.C.
MUSTAFA KEMAL ÜNĠVERSĠTESĠ
FEN BĠLĠMLERĠ ENSTĠTÜSÜ
BĠLGĠSAYAR MÜHENDĠSLĠĞĠ ANABĠLĠM DALI
ORACLE VTYS ve ÖRNEK VERĠTABANI
UYGULAMASI
BÜLENT SĠYAH
LĠSANS TEZĠ
Ġskenderun/HATAY
OCAK-2012
MUSTAFA KEMAL ÜNĠVERSĠTESĠ
FEN BĠLĠMLERĠ ENSTĠTÜSÜ
ORACLE VTYS ve ÖRNEK VERĠTABANI
UYGULAMASI
BÜLENT SĠYAH
LĠSANS TEZĠ
BĠLGĠSAYAR MÜHENDĠSLĠĞĠ ANABĠLĠM DALI
YaĢar DAġDEMĠR danıĢmanlığında hazırlanan bu tez
/
/
tarihinde
aĢağıdaki jüri üyeleri tarafından oybirliği/oyçokluğu ile kabul edilmiĢtir.
Ġmza………………….
Ġmza…………………
Ġmza………………
BaĢkan
Üye
Üye
Bu tez Enstitümüz Bilgisayar Mühendisliği Anabilim Dalında hazırlanmıĢtır.
Kod No:
…………………..
Enstitü Müdürü
Ġmza ve Mühür
Bu çalıĢma …………………….. tarafından desteklenmiĢtir.
Proje No:
Not: Bu tezde kullanılan özgün ve baĢka kaynaktan yapılan bildiriĢlerin, çizelge, Ģekil
ve fotoğrafların kaynak gösterilmeden kullanımı, 5846 sayılı Fikir ve Sanat Eserleri
Kanunundaki hükümlere tabidir.
ii
ĠÇĠNDEKĠLER
ÖZET ...................................................................................................... V
KISALTMALAR DĠZĠNĠ ...................................................................VI
ÇĠZELGELER DĠZĠNĠ ..................................................................... VII
ġEKĠLLER DĠZĠNĠ ......................................................................... VIII
1. GĠRĠġ................................................................................................... 1
2. ORACLE VERĠTABANI YÖNETĠM SĠSTEMĠ............................ 2
2.1. ORACLE TEMELLERĠ ............................................................................. 2
2.1.1. Kullanılan Temel Terimler ................................................................... 2
2.1.2. Temel Veri Tipleri ................................................................................. 4
2.1.3. Kullanıcı Tanımları ............................................................................... 4
2.2. ORACLE VERĠTABANI YAPISI ............................................................... 4
2.2.1. Fiziksel Bölüm ........................................................................................ 5
2.2.2. Mantıksal Bölüm.................................................................................... 7
2.3. VERĠ TANIMLAMA DĠLĠ KOMUTLARI ................................................ 8
2.3.1. Veri Sözlüğü ........................................................................................... 8
2.3.2. Veritabanı Nesneleriyle Ġlgili Komutlar .............................................. 9
2.4. YEDEK ALMA VE GERĠ GETĠRME ..................................................... 15
2.4.1. Fiziksel Yedek Alma ............................................................................ 16
2.4.1. Mantıksal Yedek Alma ........................................................................ 16
3. VERĠTABANI MODELLERĠ VE TASARIMI ............................ 18
3.1. VERĠTABANI MODELLERĠ .................................................................. 18
3.1.1. Ağ Veritabanı Modeli .......................................................................... 18
3.1.2. HiyerarĢik Veritabanı Modeli ............................................................ 19
3.1.3. Nesne Yönelimli Veritabanı Modeli ................................................... 20
3.1.4. E-R Modeli ........................................................................................... 21
3.1.5. ĠliĢkisel Veri Modeli............................................................................. 24
3.1.6. Farklı Veritabanı Modellerinin Avantajları ve Dezavantajları ...... 25
3.2. ÖRNEK VERĠTABANI (ÖĞRENCĠ OTOMASYONU) TASARIMI ... 28
iii
3.2.1. Öğrenci Otomasyonu ĠĢlevleri ............................................................ 28
3.2.2. Varlık Kümeleri Arasındaki ĠliĢki ..................................................... 28
3.2.3. ĠliĢki ġemaları Çizeneği ....................................................................... 29
4. ORACLE’DA VERĠTABANI UYGULAMASI ............................ 30
4.1. ORTAMIN HAZIRLANMASI VE VERĠTABANI OLUġTURMA ....... 30
4.2. TABLOLARIN YARATILMASI .............................................................. 31
4.2.1. Öğrenciler Tablosu .............................................................................. 31
4.2.2. Öğretim Elemanları Tablosu .............................................................. 32
4.2.3. Bölümler Tablosu ................................................................................ 32
4.2.4. Fakülteler Tablosu ............................................................................... 33
4.2.5. Ünvanlar Tablosu ................................................................................ 33
4.2.6. Dönemler Tablosu ................................................................................ 34
4.2.7. Dersler Tablosu .................................................................................... 34
4.2.8. ÖğrenciDersler Tablosu ...................................................................... 35
4.3. TABLOLAR ARASI ĠLĠġKĠLER ............................................................. 35
4.3.1. Öğrenci Tablosu ĠliĢkileri ve Son Hali ............................................... 36
4.3.2. Öğretim Elemanları Tablosu ĠliĢkileri ve Son Hali .......................... 36
4.3.3. Bölüm Tablosu ĠliĢkileri ve Son Hali ................................................. 37
4.3.4. ÖğrenciDers Elemanları Tablosu ĠliĢkileri ve Son Hali................... 38
4.3.5. Fakülte Tablosunun Son Hali ............................................................. 39
4.3.6. Ünvan Tablosunun Son Hali ............................................................... 40
4.3.7. Ders Tablosunun Son Hali .................................................................. 40
4.3.8. Dönem Tablosunun Son Hali .............................................................. 41
5. SONUÇ .............................................................................................. 42
KAYNAKLAR...................................................................................... 43
TEġEKKÜR.......................................................................................... 44
ÖZGEÇMĠġ .......................................................................................... 45
iv
ÖZET
Bu çalıĢmada ĠliĢkisel Veritabanı Yönetim Sistemleri konusunda lider durumda olan
Oracle ve tüm veritabanı modelleri hakkında genel bilgilere sahip olmak, örnek bir
durum ile veritabanı modelleyip, bu modeli Oracle Veritabanı Yönetim Sisteminde
uygulama amaçlanmıĢtır.
Oracle VTYS temel anlamda veritabanı yapı biçimi anlaĢılmıĢ, en sık karĢılaĢılan
terimlerle sistemin kolay anlaĢılması hedeflenmiĢ, Oracle‟da bulunan veri türleri
Microsoft SQL Server‟daki veri türleri ile karĢılaĢtırmalar yapılmıĢ, Oracle‟da var
olan kullanıcı profilleri ve farkları anlaĢılıp, Veri Tanımla Dili Komutlarıyla veri
yaratma, listeleme, silme, düzenleme gibi iĢlemlerle veritabanı nesneleri yönetilmiĢ
ve Oracle VTYS‟nin yedek alma ve alınan yedeği geri yerleĢtirme iĢlemleri
incelenmiĢtir. Tüm Veritabanı Modelleri incelenip en yaygın olan ve diğer modellere
göre daha belirgin iliĢkiler kuran ĠliĢkisel Model (Relational Model) ile örnek bir
durum için veritabanı tasarlanmıĢtır. Tasarlanan veritabanı Oracle VTYS ile
oluĢturulup tasarıma uygun yapı ve bu yapılar arasındaki iliĢkiler gerçekleĢtirilip,
Veri Tanımla Dili Komutları uygulanmıĢtır.
Sonuç olarak Oracle‟de diğer veritabanı yönetim sistemlerinde olduğu gibi, stored
procedure‟lar, paketler, trigger‟ler gibi bileĢenler yer alır. Oracle‟da bulunan farklı
yetkilere ve eriĢim haklarına sahip kullanıcılarla veritabanı güvenliğinde önemli bir
yere sahiptir. Oracle çok sayıda araçtan oluĢur ve uygulama geliĢtiricilerinin kolay ve
esnek uygulamalar geliĢtirmesine olanak sağlar.
Anahtar Kelimeler: Oracle, Veritabanı, VTYS, Veri Modelleri, ĠliĢkisel Veritabanı
Yönetim Sistemi
v
KISALTMA DĠZĠNĠ
BLOB
: Binary Large Object
CLOB
: Character Large Object
DBA
: Database Administrator
DBMS
: Database Management Systems
DDL
: Veri Modeli Tanımlama Dili (Data Definition Language)
E-R Modeli
: Entity-Relationship Model
RDBMS
: Relational Database Management Systems
SQL
: Yapısal Sorgulama Dili (Structured Query Language)
VT
: Veritabanı
VTY
: Veri Tabanı Yöneticisi
VTYS
: Veritabanı Yönetim Sistemi
vi
ÇĠZELGELER DĠZĠNĠ
ÇĠZELGE 2.1. Veri Sözcüğü görüntüleri ................................................................. 9
ÇĠZELGE 2.2. Oracle Tarafından TanımlanmıĢ Roller .......................................... 13
ÇĠZELGE 3.1. ÇeĢitli Veritabanı Modellerinin Avantajları ve Dezavantajları ....... 25
ÇĠZELGE 4.1. Tablo iliĢkileri Sonrası Öğrenci Tablosu Son Hali ......................... 36
ÇĠZELGE 4.2. Tablo iliĢkileri Sonrası ÖğretimElemanı Tablosu Son Hali ............ 37
ÇĠZELGE 4.3. Tablo iliĢkileri Sonrası Bölüm Tablosu Son Hali ........................... 37
ÇĠZELGE 4.4. Tablo iliĢkileri Sonrası ÖğrenciDers Tablosu Son Hali .................. 38
ÇĠZELGE 4.5. Fakülte Tablosunun Son Hali .......................................................... 39
ÇĠZELGE 4.6. Ünvan Tablosunun Son Hali ........................................................... 40
ÇĠZELGE 4.7. Ders Tablosunun Son Hali .............................................................. 40
ÇĠZELGE 4.8. Dönem Tablosunun Son Hali .......................................................... 41
vii
ġEKĠLLER DĠZĠNĠ
ġEKĠL 3.1. Ağ Modeli Örneği .................................................................................. 19
ġEKĠL 3.2. HiyerarĢik Veri Modeli Örneği .............................................................. 20
ġEKĠL 3.3. Veri Modellemede Kullanılan Grafiksel Notasyonlar ........................... 24
ġEKĠL 4.1. Öğrenci Tablosu..................................................................................... 31
ġEKĠL 4.2. Öğretim Elemanı Tablosu ...................................................................... 32
ġEKĠL 4.3. Bölüm Tablosu....................................................................................... 33
ġEKĠL 4.4. Fakülte Tablosu ..................................................................................... 33
ġEKĠL 4.5. Ünvan Tablosu ....................................................................................... 34
ġEKĠL 4.6. Ders Tablosu .......................................................................................... 34
ġEKĠL 4.7. Dönem Tablosu ...................................................................................... 35
ġEKĠL 4.8. ÖğrenciDers Tablosu ............................................................................. 35
viii
1. GĠRĠġ
Veri Tabanı Yönetim Sistemleri (VTYS) çok büyük veri tutan ve bu verileri
yönetmek isteyen herkese hizmet etmek üzere geliĢtirilmiĢ programlardır. BaĢlıca
kullanılan VTYS'ler Oracle, DB2, MS SQL Server, Sybase, Informix, MySQL,
FireBird Postrage ve Access gibi sıralanabilir. Günümüzde yaygın olarak kullanılan
ĠliĢkisel Veri Tabanı (Relational Database) yaklaĢımı, verileri normalizasyon
kuralları çerçevesinde tablolara ayırmayı, bu tablolar arasında bir birincil anahtar ve
bir yabancı anahtar üstünden iliĢki kurmayı öngörmektedir.
ÇalıĢmada VTYS‟lerinden Oracle seçilmesinin nedeni, kullanılan veritabanları
arasından lider durumda olması, çok sayıda araca sahip olan
olmanın aslında aynı zamanda piyasadaki herhangi
Oracle‟a hakim
bir VTYS‟ye kısa sürede
geliĢtirilebileceği anlamına gelmesidir. ÇalıĢmada temel bilgiler alındıktan sonra
örnek olarak bir öğrenci otomasyonu için veritabanı geliĢtirildi. Öğrenci
otomasyonunda hedef standart iĢlevlerin bulunduğu dar kapsamlı senaryo ile
yaratıldı. Senaryo dar olsa bile yeterlilik düzeyine sahip ve uygulama bağlamında
elde edilen temel bilgilerin tümünü kapsayacak düzeyde oluĢturuldu. ÇalıĢma
bölümlerinden olan Veritabanı Modelleri ile tüm modeller arasından en yaygın olan
iliĢkisel veritabanı model seçilip, bu model ile veritabanı tasarlanıp Oracle VTYS‟de
uygulanarak geliĢtirildi. ÇalıĢmaların bölümleri Ģöyledir.
Ġkinci bölümde; Oracle VTYS‟nin genel yapısına iliĢkin bilgilerle, Veri Tanımla Dili
Komutları ile veritabanı nesnelerini yönetme iĢlemleri aktarılmıĢtır. Üçüncü
bölümde; Veritabanı Modelleri ve bu modeller arasındaki farklar aktarılıp, ĠliĢkisel
Veritabanı Modeli ile örnek bir veritabanı tasarlanmıĢtır. Dördüncü bölümde; ikinci
bölümde elde edilen bilgilerle, üçüncü bölümde tasarlanan örnek bir veritabanı
tasarımının Oracle VTYS‟de oluĢturulup, yönetilmiĢtir.
1
2. ORACLE VERĠTABANI YÖNETĠM SĠSTEMĠ
ĠliĢkisel Veritabanı Yönetim Sistemleri (Relational Database Management Systems RDBMS) büyük miktarlardaki verilerin güvenli bir Ģekilde tutulabildiği, bilgilere
hızlı eriĢim imkanlarının sağlandığı, bilgilerin bütünlük içerisinde tutulabildiği ve
birden fazla kullanıcıya aynı anda bilgiye eriĢim imkanının sağlandığı programlardır.
Oracle veritabanı da bir iliĢkisel veri tabanı yönetim sistemidir.
Oracle veritabanının özellikleri Ģunlardır [1]:
 Büyük miktarda veri tutabilmekte ve verilerin depolandığı alanları ayarlama
imkanı vermektedir.
 Aynı anda çok sayıda kullanıcıya verilerin bütünlüğünü bozmadan hizmet
verebilmektedir.
 Günün 24 saati ve haftalar boyu hiç kapatılmadan çalıĢabilmektedir.
 ĠĢletim sistemi, veri eriĢim dilleri ve ağ iletiĢim protokolleri standartlarıyla
uyumludur.
 Yetkisiz eriĢimleri engelleme ve kontrol edebilme imkanı sağlamaktadır.
 Bütünlüğü veritabanı düzeyinde sağlayabilmektedir, böylece daha az kod
yazılmaktadır.
 Ġstemci/Sunucu mimarisinin bütün avantajlarını kullanabilmektedir.
2.1. ORACLE TEMELLERĠ
2.1.1.Kullanılan Temel Terimler
Ad-Hoc: Query Basit (bir kereliğine yazılan) sorgulara verilen addır. Sorgu olarak
belli verilerin listelenmesi komutlarını örnek verebiliriz: SELECT * FROM
MUSTERI gibi müĢteri tablosundaki bütün kayıtları listele komutu.
Block (Küme): Oracle veritabanlarının depolanmasında kullanılan en küçük birime
block (küme) denir. Bir blok 2 KB-16KB boyutları arasında büyüklüğe sahiptir.
2
Buffer (Ara Bellek): Verileri depolamak için kullanılan bellek miktarı. Bir ara
bellek kullanılmıĢ (anlık) veriyi içerir. Birçok durumda, ara bellekler disk üzerindeki
verilerin bellekteki kopyasıdır.
Cache (Ön Bellek): Ön bellek, verilere hızlı eriĢim için kullanılan ara bellek
alanlarıdır. Mantık olarak son eriĢilen bilgilerin durduğu ve aynı bilginin bir kere
daha istendiğinde ana belleğe gitmeden ön bellekten alıdığı bir eriĢim
mekanizmasıdır.
Checkpoint: Bellekteki verilerin disk dosyalarına yazılması iĢlemi.
Database (veritabanı):
ĠliĢkili verilerin toplandığı veri kümesidir. Ana veri
düzenleme sisteminde veritabanı temeldir.
Data Dictionary: Tabloların oluĢturduğu bir veri sözlüğüdür. Veritabanı hakkında
bilgi bu sözlükte yer alır.
DBA (Database Administrator): Veritabanı yönetiminden sorumlu olan kiĢidir.
Sistem yöneticisi ya da veritabanı yöneticisi de denir.
Dynamic Performance Tables (Dinamik Performans Tabloları): BaĢlatılan
kopyanın performansını saklamak için kullanılan dinamik tablolardır.
Function (Fonksiyon): Belli bir iĢlemi yerine getirmek için kullanılan komut
kümeleridir. Veritabanı programlamasında sunucu tarafında yazılan kodlar fonksiyon
ve yordam olarak yazılır.
Procedure (Yordam): Yapı ve anlam itibari ile fonksiyonlara benzerler fakat
iĢlevleri ve etki alanları çok daha geniĢtir.
Query (Sorgu): Bir veritabanı üzerinde çalıĢtırılan komut kümesidir. Örneğin
SELECT deyimiyle baĢlayan komutlar. M. Schema (ġema) Bir veritabanı
nesnelerinin Ģemasıdır (yani bir plandır).
Transaction (ĠĢlem Bilgisi/Hareketi): Bir ya da birden çok SQL deyimi bir iĢlem
bilgisi olarak tanımlanır. Transaction‟lar özel bir alanda depolanır ve verilerin
bütünlüğünün sağlanması için kullanılır. Bir transaction içindeki iĢlemlerin tamamı
(birkaç güncelleme komutu) yerine getirilir ve iĢlem onaylanır (commit). Aksi
takdirde iĢlem geri çevrilir (roll back).
Trigger (Tetikleyici): Yordam ve fonksiyonların otomatik olarak baĢlatılmasını
sağlayan mekanizma ya da yordamın otomatik olarak çalıĢanıdır. Tetikleyiciler tipik
3
olarak, tablo üzerinde INSERT, UPDATE ya da DELETE deyimi iĢletildiğinde
baĢlar.
2.1.2. Temel Veri Tipleri
varchar2: 4000 taneye kadar karakter tutabilen veri tipidir. Microsoft SQL
Server‟daki varchar veri tipi gibi düĢünülebilir. Eğer saklanacak verinin baĢında ya
da sonunda boĢluk (space) karakteri varsa bunları silerek tutar.
nvarchar2: 4000 taneye kadar Unicode karakter tutabilen veri tipidir. Microsoft
SQL Server‟daki nvarchar veri tipi gibi düĢünülebilir. Eğer saklanacak verinin
baĢında ya da sonunda boĢluk (space) karakteri varsa bunları silerek tutar.
char: 2000 taneye kadar sabit uzunluklu karakter tutabilen veri tipidir. Microsoft
SQL Server‟daki char veri tipi gibi düĢünülebilir.
nchar: 2000 taneye kadar sabit uzunluklu Unicode karakter tutabilen veri tipidir.
Microsoft SQL Server‟daki nchar veri tipi gibi düĢünülebilir.
number: Her türlü sayısal verilerin tutulabileceği veri tipidir. Microsoft SQL
Server‟daki int, float gibi veri tiplerine karĢılık olarak düĢünülebilir. Dikkat edilmesi
gereken nokta Microsoft SQL Server‟daki decimal gibi tanımlanmasıdır.
date: Saniye bazında tarih ve zaman verisi tutar. Geçerli tarih aralığı MÖ 1 Ocak
4712‟den MS 31 Aralık 9999‟a kadardır. Microsoft SQL Server‟daki smalldatetime
veri tipi gibi düĢünülebilir.
timestamp: date tipine çok benzeyen bir veri tipidir. date tipine göre daha detaylı
zaman bilgisi tutar. Microsoft SQL Server‟daki datetime veri tipi gibi düĢünülebilir.
clob (character large object): 4 GB‟a kadar karakter verisi tutar. varchar2‟nin
büyütülmüĢ bir tipi olarak düĢünülebilir. Microsoft SQL Server 2005 ile birlikte
gelen varchar(max) veri tipi gibi düĢünülebilir.
blob (binary large object): clob‟a benzer bir veri tipi olmakla birlikte içinde tuttuğu
veri tipi binary‟dir. Maksimum büyüklüğü 4 GB‟tır. Microsoft SQL Server‟daki text,
image tiplerine benzerdir.
2.1.3. Oracle Kullanıcı Tanımları
SYS: SYS kullanıcısı veri sözlüğünü oluĢturan tüm iç Oracle tablolarının sahibidir.
SYS kullanıcısıyla hiçbir iĢlem yapılmaması için bu hesabın kilitlenmesi tercih
4
edilmelidir.
SYS
kullanıcısının
sahibi
olduğu
nesnelerde
de
değiĢiklik
yapılmamalıdır. SYS kullanıcının varsayılan Ģifresi change_on_install dir.
SYSTEM: SYSTEM kullanıcısı birtakım yönetimsel tabloların ve view‟ların
sahibidir. Yetkisiz kullanım ihtimaline karĢı kilitlenmesi ve kullanılmaması tercih
edilmelidir. Bu kullanıcının varsayılan Ģifresi manager dir.
SCOTT: Örnek tablolar içeren eğitim amaçlı hesaplar için kullanılan kullanıcı
tipidir. Varsayılan Ģifresi tiger dir. SYSTEM kullanıcına benzer.
DBSNMP:
Veri
tabanı
hakkında
performans
istatistiklerini
toplamak
ve
görüntülemek amacıyla Enterprise Manager tarafından kullanılan kullanıcıdır.
SYSMAN: Enterprise Manager‟da SYS kullanıcısıyla aynı haklara sahiptir.
2.2. ORACLE VERĠTABANI YAPISI
Oracle veritabanının, iĢletim sistemi tarafından bakıldığında, biri fiziksel diğeri
mantıksal olmak üzere iki bölümü vardır [2]. Fiziksel bölüm, iĢletim sisteminden
görünen kısımdır. Bunlar Data File(Veri Dosyası), Control File(Kontrol Dosyası) ve
Log File(Log Dosyası) „dan oluĢmaktadır. Mantıksal Bölüm, bir ya da daha fazla
tablo uzayı(Tablespace) ve tablolar(table), görüntüler(view), sıralar(sequence),
eĢanlamlar(synonym), indeksler(index), kümeler(cluster), veritabanı bağlantıları
(database
link),
prosedürler(procedure),
fonksiyonlar(function),
ve
paketlerden(package) oluĢan Ģema nesnelerinden oluĢmaktadır. Fiziksel bölüm
iĢletim sistemi tarafından görülebilmesine rağmen, mantıksal bölüm ancak Oracle‟a
bağlanıp, SQL komutları çalıĢtırılarak görülebilmektedir. Yani, Oracle kurulu
herhangi bir makinede, SQL bilgisi olmayan bir insan, Oracle‟ın sadece fiziksel
bölümünü görebilmektedir.
2.2.1. Fiziksel Bölüm
Fiziksel bölüm veritabanını oluĢturan iĢletim sistemi dosyalarıdır. Bir Oracle
veritabanı fiziksel olarak bir ya da daha fazla veri dosyası, iki ya da daha fazla log
dosyası, bir ya da daha fazla kontrol dosyasından oluĢur.
5
2.2.1.1. Veri Dosyaları(Data Files)
Veri dosyaları veri tabanındaki tüm verileri tutan dosyalardır. Bir veri dosyası sadece
bir veritabanına ait olabilir. Tablo, indeks gibi mantıksal veritabanı yapılarının
içerisindeki veriler fiziksel olarak veri dosyalarında tutulurlar. Bir veri dosyası
kendisi için ayrılan alan dolduğunda, kendi sahip olduğu alanı artırabilecek
özelliklere sahiptir. Bir ya da daha fazla veri dosyası mantıksal bir veritabanı
depolama ünitesi olan bir tablo uzayını oluĢturular.
Normal veritabanı iĢlemleri boyunca bir veri dosyası içerisindeki veriler okunur ve
Oracle için ayrılan belleğe getirilirler. Örneğin bir kullanıcının veritabanındaki bir
tablonun verilerine eriĢmek istediğini varsayalım. Eğer istenilen veriler bellekte yer
almıyorsa, ancak o zaman uygun veri dosyasından okunur ve belleğe getirilirler.
DeğiĢikliğe uğrayan veriler ya da yeni eklenen veriler veri dosyalarına hemen
yazılmazlar. Sabit diske eriĢimi azaltmak ve böylece sistemin performansını artırmak
için veriler bellek havuzunda tutulur ve gerektiğinde hepsi birden uygun veri
dosyalarına kaydedilirler. Bunu Oracle artalan iĢlemleri belirler.
2.2.1.2. Kontrol Dosyaları(Control Files)
Tüm Oracle veritabanları kontrol dosyasına sahiptir. Bir kontrol dosyası veritabanı
adı, veri dosyaları ve log dosyalarının adı ve diskteki yeri, veritabanının oluĢturulma
tarihi vb. veritabanı ile ilgili bilgileri tutar. Her veritabanı oturumu açıldığında Oracle
bu dosyayı kontrol ederek gerekli bilgileri alır. Eğer veritabanında fiziksel bir
değiĢme olursa(yeni bir log dosyası ya da veri dosyası oluĢturulması gibi), yapılan
değiĢiklikler Oracle tarafından otomatik olarak kontrol dosyalarına yansıtılır.
2.2.1.3. Log Dosyaları(Log Files)
Redo Log dosyaları olarak bilinen bu dosyaların amacı veriler üzerinde yapılan tüm
değiĢiklikleri kaydetmektir. Eğer veri dosyalarına kalıcı olarak kaydedilmiĢ olan,
değiĢikliğe uğramıĢ kayıtlarda bir bozukluk olursa yapılan değiĢiklikler redo log
dosyalarından sağlanabilir ve iĢlemler kaybolmaz. Birden fazla tekrarlanan bozukluk
durumlarında redo log dosyalarının da bozulmasını engellemek için Oracle farklı
diskler üzerinde redo log dosyalarının birden fazla kopyasının alınmasına olanak
6
sağlar. Bir veritabanı iĢlemi sırasında elektrik kesilirse, bellekteki veriler veri
dosyalarına kaydedilmeyecek ve verilerin kaybolması durumuyla karĢılaĢılacaktır.
Oracle veritabanı tekrar açıldığında redo log dosyalarında yapılan son değiĢiklikler
veri dosyalarına yansıtılarak verilerin kaybolması engellenir.
2.2.2. Mantıksal Bölüm
Oracle veritabanı, tablo uzayları olarak bilinen bir veya birden fazla mantıksal
depolama birimlerine bölünmüĢtür. Tablo uzayları‟da dilimler olarak bilinen
mantıksal depolama birimlerine bölünmüĢtür. Uzanımlar ise Oracle sisteminde e
küçük veri birimi olan Veri Blok‟larından oluĢmuĢtur [3].
2.2.2.1.Veri Blokları (data blocks)
Oracle verileri, Veri Blokları‟nda saklar. Veri Blokları‟na mantıksal bloklar, Oracle
blokları veya sayfaları da denilmektedir. Bu blokların uzunluğu her yeni veritabanı
oluĢrulduğunda belirlenir.
2.2.2.2.Uzanımlar (extends)
Belirli sayıda veri bloklarından meydana gelen mantıksal veritabanı depolama
birimidir. Bir veya birden fazla Uzanım bir araya gelerek Dilimler‟i oluĢturur.
Dilimlerdeki boĢ alanlar tamamen dolduğu zaman, Oracle Dilimler için yeni
Uzanım‟lar tahsis eder.
2.2.2.3. Dilimler (segments)
Bir veya birden fazla Uzanım‟dan meydana gelen diğer bir mantıksal depolama
birimi ise Dilimler‟dir. Oracle tablolardaki verileri sakladığı dilimler haricinde bir
kaç farklı Dilim yapısı daha kullanmaktadır. Bunlardan indekslere ait olan veriler
için Ġndeks Dilimleri, SQL komutları iĢletilirken duyulan ihtiyaçlar için Geçici
Dilimler kullanılmaktadır.
7
2.3. VERĠ TANIMLAMA DĠLĠ KOMUTLARI
Veri Tanımlama Dili Komutları SQL‟de veritabanı nesnelerini oluĢturma, silme,
yapısını değiĢtirme iĢlemleri için kullanılan komutlara veri tanımlama dili komutları
denir. Bu komutlar “create”, “alter”, “drop”, “grant”, “revoke”, “analyze”, “audit”,
“comment” komutlarıdır [4].
2.3.1. Veri Sözlüğü
Veri sözlüğü, Oracle veritabanı ile ilgili bilgilerin yine Oracle veritabanında tablolar
ve görüntüler halinde saklanmasıyla oluĢur. Veritabanı ile ilgili bu bilgiler
kullanıcılar, haklar, veritabanı nesneleri, tablo kısıtlamaları vb. bilgilerinden oluĢur.
Veri sözlüğü Oracle veritabanın en önemli bölümüdür. Veritabanı hakkındaki tüm
bilgiler veri sözlüğünden SQL komutları yazarak öğrenilebilir.
Veri sözlüğü, veritabanı kurulurken standart olarak oluĢturulur ve yapılan
değiĢiklikler otomatik olarak veri sözlüğüne yansıtılır. Örneğin bir kullanıcı bir
tabloya bir alan eklerse, veri sözlüğünde o tabloya iliĢkin yapı kullanıcı farketmeden
değiĢtirilir böylece veri sözlüğünden veritabanı hakkında sürekli olarak güncel ve
sağlıklı bilgi almak mümkün olur. Veri sözlüğü içerisindeki bilgiler SQL
komutlarıyla sorgulanıp görülebilir. Fakat hiçbir kullanıcı veri sözlüğünü
değiĢtiremez, ekleme yapamaz ve kayıt silemez. Veritabanı oluĢturulurken
oluĢturulan veri sözlüğü tabloları SYS adlı kullanıcıya aittir. Veri sözlüğü tabloları
için görüntüler oluĢturulmuĢtur. Tüm kullanıcılar hakları olduğu müddetçe bu
görüntülerden bir ya da birkaçını sorgulayabilirler. Veri sözlüğü görüntüleri,
baĢlarındaki ön eklerine göre üç gruba ayrılır:
 USER_xxx : Veritabanına o an bağlı olan kullanıcının sahip olduğu nesneler
ile ilgili görüntülerdir.
 ALL_xxx : Veritabanına o an bağlı olan kullanıcının sahip olduğu ve
baĢkalarına ait olan ve kendisine kullanma hakkı verilmiĢ olan tüm nesnelerle
ilgili görüntülerdir.
 DBA_xxx
: DBA(veritabanı
yöneticisi) veya
kullanıcıların görebileceği görüntülerdir.
8
DBA hakkına sahip
ÇĠZELGE 2.1. Veri Sözcüğü görüntüleri
Görüntü Ġsimleri
USER_TABLES
Açıklama
Kullanıların sahip olduğu tabloların yapısını gösteren
görüntüdür.
USER_SEQUENCES
Kullanıcılar sahip olduğu sıralar hakkında bilgi içeren
görüntüdür.
USER_VĠEWS
Kullanıcılar sahip olduğu görüntüler hakkında bilgi
içeren görüntüdür.
ALL_OBJECTS
Kullanıcının eriĢebileceği bütün nesneler hakkında bilgi
içeren görüntüdür.
Veritabanındaki bütün kullanıcılar hakkında bilgi içeren
DBA_USERS
görüntüdür.
DBA_TABLESPACE
Veritabanındaki bütün tablo uzayları hakkında bilgi
içeren görüntüdür.
SCOTT kullanıcısının bütün nesnelerini görmesi
SELECT * FROM USER_OBJECTS
Bir kullanıcın kendine ait bütün tabloların adlarını listelemesi
SELECT TABLE_NAME FROM USER_TABLES
Bir kullanıcının tüm indeks bilgilerini listelemesi
SELECT
INDEX_NAME,TABLE_NAME,TABLESPACE_NAME
ALL_INDEXES
2.3.2. Veritabanı Nesneleriyle Ġlgili Komutlar
2.3.2.1. Create Table
Tablo oluĢturma komutunu bir örnekle anlatılırsa.
CREATE table tbl_ogr
(OgrNum NUMBER(11) NOT NULL,
Ad
VARCHAR2(15),
Soyad
VARCHAR2(15),
Dogyer
NUMBER(2),
9
FROM
CONSTRAINT cst_OgrNum PRIMARY KEY(OgrNum)
CONSTRAINT cst_dogyer FOREING key(dogyer) REFERENCES il(ilkod))
Bu komut “tbl_ogr” adında bir tablo oluĢturuyor. Tablonun dört alanı var. Bunlardan
biri özel anahtar(Primary Key) olarak tanımlanmıĢ. Bu alanın değeri boĢ olamaz ve
tabloda aynı iki değer bulunamaz.
Bir tablo ile baĢka bir tablo arasında iliĢki kurulacaksa bu ana tabloda PRIMARY
KEY tanımıyla, diğer tabloda FOREIGN KEY tanımıyla yapılır. Yani doğum yeri
alanı için buradaki tablomuz ana tablo değil. Çünkü aynı yerde doğmuĢ kiĢilerin
kaydı tablomuzda olabilir. Böylece aynı il kodu birden fazla kayıtta yer alabilir. ĠliĢki
kurulan diğer tablonun adını yukarıdan çıkarabiliriz. Bu tablo “il” isminde. Her il bu
tabloda kayıtlı ve her birinin bir kodu var. Bu tabloda bir ilin kaydı iki sütunda yer
alamaz. Bu yüzden “ilkodu” alanı “il” tablosu için PRIMARY KEY olarak
tanımlanmıĢ.
PRIMARY KEY, NOT NULL gibi bildirimler kısıtlamalar olarak tanımlanır. Bir
tabloda farklı Ģekilde kısıtlamalar yapılabilir. Kısıtlama için kullanılan bildirimler 5
adettir.
 NOT NULL : Bu kısıtlamanın konulduğu bir alanın mutlaka bir değeri olmak
zorundadır.
 UNIQUE : Bu kısıtlamanın konulduğu bir alan bir değerden sadece bir adet
içerebilir. Bu kısıtlamaya sahip alan NOT NULL ile tanımlanmadıysa NULL
değer alabilir.
 PRIMARY : Bu kısıtlama bu alanın özel anahtar olmasını sağlar. Bu alan boĢ
geçilemez ve yine tablo içerisinde bir değer iki kayıtta bulunamaz.
 FOREIGN KEY : Bu kısıtlama baĢka bir tablonun PRIMARY KEY olan
alanıyla iliĢki kurmak için gerekir.
 CHECK : Bu kısıtlama ile birlikte bir Ģart kullanılır. Tabloya kayıt girilirken
değerlerin bu Ģarta uyması beklenir.
2.3.2.2. Alter Table
Daha önceden oluĢturulmuĢ bir tablonun yapısını değiĢtirmek için ALTER TABLE
komutu kullanılır.
10
ALTER TABLE tablo_adı
ADD | MODIFY | DROP (<sütun ismi> veri tipi <sütun kısıtlaması>)
ENABLE ifade1
DISABLE ifade2
ALTER komutuyla tablolara yeni bir alan ve kısıtlama eklenebilir, var olan alan ve
kısıtlamaların durumu değiĢtirilebilir veya tablodan ksıtlamalar düĢürülebilir. Fakat
ALTER komutuyla var olan sütunlar düĢürülemez. Bir alanın değeri büyültülebilir,
fakat küçültülemez.
ALTER TABLE tbl_ogr
ADD CONSTRAINT cst_Bolum
FOREIGN KEY(Bolum)
REFERENCES usr_gazi.tbl_bol(BolKod);
Yukarıdaki örnekte tbl_ogr adlı tablonun yapısı değiĢtiriliyor. Bir baĢka kullanıcının
bir tablosu ile iliĢki kuruluyor.
ALTER TABLE tbl_ders
MODIFY dersad varchar2(40);
Bu örnekte de tbl_ders tablosunun bir alanının uzunluğu değiĢtiriliyor.
2.3.2.3. Drop Table
Daha önceden oluĢturulmuĢ bir tablonun düĢürülmesi için kullanılan komuttur.
Kullanımı:
DROP TABLE <tablo_ismi> [CASCADE CONSTRAINTS]
KöĢeli parantez içerisindeki tanım kullanılırsa master-detay iliĢkili tablolarda master
tablo düĢürülünce detay tabloların da otomatik olarak düĢürülmesi sağlanır. Eğer bu
seçenek kullanılmazsa diğer tablolarla iliĢkisi bulunan bir tablo silinemez. Ancak bu
iliĢkiler kaldırıldıktan sonra tablo silinebilir.
DROP TABLE tbl_ogr CASCADE CONSTRAINT
2.3.2.4. Create View
Görüntü oluĢturmak için bir SELECT cümlesi kullanmak gerekir. Bir görüntü bir ya
da daha fazla tablodan oluĢturulabileceği gibi, bir baĢka görüntüden de
11
oluĢturulabilir.AĢağıdaki örnekte üç farklı kullanıcnın aynı yapıdaki tabloları
birleĢtirilip bir görüntü oluĢturuluyor.
CREATE VIEW vi_ogr
AS SELECT * from usr_esef.tbl_ogr
UNION ALL
SELECT * FROM usr_tef.tbl_ogr
UNION ALL
SELECT * FROM usr_gef.tbl_ogr;
2.3.2.5. Create Tablespace
Tablo uzayı kullanıcılara ait olan nesnelerin veritabanında mantıksal olarak tutulduğu
yere denmektedir. Bir tablo uzayı oluĢtururken, bu tablo uzayının verilerinin hangi
veri dosyasına konulacağı ve bu dosyanın dizini ile büyüklüğü bildirilmelidir.
CREATE TABLESPACE tbs_esef
DATAFILE 'c:\orasql\tbs_esef.dat' SIZE 10M
DEFAULT STORAGE (INITIAL 10K NEXT 50K
MINEXTENTS 1 MAXEXTENTS 999)
ONLINE;
SIZE bildirisi veri dosyasının diskte kaplayacağı yeri belirler. Burada 10M, 5K gibi
değerler girilebilir. INITIAL bildirisi tablo uzayı oluĢturulduğunda, ilk alacağı
geniĢleme‟nin büyüklüğünü belirler. Next tablo uzayı oluĢturulduktan sonra alacağı
geniĢlemelerin büyüklüğünü belirler. MINEXTENTS tablo uzayı oluĢturulduğunda
ilk
olarak
alacağı
minimum
geniĢleme
sayısının
belirtildiği
bölümdür.
MAXEXTENTS bir tablo uzayının ilk olarak aldığı geniĢleme de dahil olmak üzere
alabileceği maksimum geniĢleme sayısının belirtildiği bölümdür.
2.3.2.6. Create User
Kullanıcı veritabanı nesnelerinin sahibidir. Kullanıcılar, nesneleri oluĢturur, kullanır
ve silerler. Oracle veritabanı ilk kurulduğunda standart olarak üç kullanıcı tanımlanır.
Bunlardan bir SYS kullanıcısıdır. SYS kullanıcısı veri sözlüğünün sahibi olan
kullanıcıdır. Tüm nesneleri oluĢturma hakkına sahiptir ve diğer bütün kullanıcların
nesnelerine eriĢebilir. SYS kullanıcısının ilk Ģifresi “change_on_install” olarak
12
belirlenmiĢtir. Ġkinci kullanıcı SYSTEM kullanıcısıdır. SYSTEM kullanıcısı veri
sözlüğünü kullanma hakkına sahiptir. Önemli nesneleri oluĢturma hakkına da
sahiptir. Ġlk Ģifresi “manager” olarak belirlenmiĢtir. Diğer kullanıcıların nesnelerine
eriĢme hakkına da sahiptir. Üçüncü kullanıcı SCOTT kullanıcısıdır. SCOTT
kullanıcısı veritabanına baĢlangıçta yüklenen demo tabloların sahibidir. Bu
kullanıcının nesneleri kullanılarak SQL denemeleri yapılabilir [7].
“CREATE USER” komutunu SYS ve SYSTEM kullanıcıları standart olarak
kullanabilir. Bu hak diğer kullanıcılara da verilebilir. Her kullanıcının nesnelerini
tutmak için bir tablo uzayı oluĢturmak sistemin performansı açısından gereklidir.
Kullanıcı oluĢturulurken bu tablo uzayı o kullanıcıya atanır.
CREATE USER usr_esef
IDENTIFIED BY esef
DEFAULT TABLESPACE tbs_esef
QUOTA UNLIMITED ON tbs_esef
Yukarıdaki örnekte usr_esef adında bir kullanıcı oluĢturuluyor. Kullanıcının Ģifresi
IDENTIFIED BY ile “esef” olarak bildiriliyor. Kullanıcının kendi nesnelerini
oluĢturacağı tablo uzayı için ise “tbs_esef” tablo uzayı bildiriliyor. Kullanıcının bu
tablo uzayındaki tüm alanı kullanabileceği QUOTA UNLIMITED ile belirleniyor.
2.3.2.7. Create Rol
Rol veritabanındaki hakların toplanmıĢ haline denir. Veritabanı yöneticisi rolleri
kullanarak sistemin güvenliğini daha kolay sağlayabilir. Roller Oracle tarafından
önceden tanımlanmıĢ roller ve kullanıcı tanımlı roller olarak iki Ģekilde
düĢünülebilir. Oracle tarafından önceden tanımlanan roller beĢ tanedir:
ÇĠZELGE 2.2. Oracle Tarafından TanımlanmıĢ Roller
AtanmıĢ Haklar
Rol
CONNECT
RESOURCE
DBA
ALTER SESSION, CREATE CLUSTER, CREATE
DATABASE LINK, CREATE SEQUENCE,
CREATE SESION, CREATE SYNONYM,
CREATE TABLE, CREATE VIEW
CREATE CLUSTER, CREATE PROCEDURE,
CREATE SEQUENCE, CREATE TABLE, CREATE
TRIGGER
“WITH ADMIN OPTION” ile birlikte bütün sistem
hakları
13
ÇĠZELGE 2.2. (Devam) Oracle Tarafından TanımlanmıĢ Roller
AtanmıĢ Haklar
Rol
EXP_FULL_DATABASE
SELECT ANY TABLE, BACKUP ANY TABLE,
SYS.INCVID, SYS.INCFIL ve SYS.INCEXP
tablolarına INSERT, UPDATE veDELETE hakkı
IMP_FULL_DATABASE
BECOME USER, WRITEDOWN
CREATE ROLE tabloma_bak
GRANT SELECT ON tbl_ogr TO tabloma_bak
Yukarıdaki örnekte tabloma_bak adında bir rol oluĢturuluyor. Daha sonra bu role
tbl_ogr tablosu üzerinde listeleme iĢlemi yapma hakkı veriliyor. Böylece bu rolün
atandığı kullanıcı tbl_ogr tablosu üzerinde “SELECT” komutunu çalıĢtırabilecek.
2.3.2.8. Create Index
Ġndeks tablodaki kayıtlara daha hızlı eriĢim için kullanılan nesnelerdir. Bir indeks
oluĢturabilmek için “CREATE ANY INDEX” sistem hakkına sahip olmak gerekir.
Ġndeks bir tablonun bir alanı üzerinde tanımlanabileceği gibi birden fazla alan
üzerinde de tanımlanabilir.
CREATE INDEX indeks1 ON tbl_ogr(ogrnum,ad)
2.3.2.9. Create Sequnce
Sıra, sıralı olarak artan alanlar için veritabanında tutulan nesnedir. Örneğin birden
baĢlayan ve birer birer artan bir sıra yaratmak için:
CREATE SEQUENCE sira1 START WITH 1 INCREMENT BY 1
2.3.2.10. Create Rollback Segment
Geri alma parçaları SELECT, INSERT, DELETE, UPDATE gibi komutlarla yapılan
iĢlemlerin gerektiğinde geri alınabilmesi için veritabanında ayrılan alanlara denir.
“tbsp_esef” tablo uzayını kullanan, kayıt parametrelerinden ilk parçanın büyüklüğü
10M, sonraki geniĢlemelerin büyüklüğü 1M, minimum geniĢleme sayısı 2,
14
maksimum geniĢleme sayısı 121 ve ortalama değeri 30M olan ve ismi “rol_seg” olan
bir geri alma parçası Ģöyle oluĢturulabilir [5]:
CREATE ROLLBACK SEGMENT rol_seg
TABLESPCE “tbsp_esef”
STORAGE( INITIAL 10M
NEXT 1M
MINEXTENTS 2
MAXEXTENTS 121
OPTIMAL 30M)
2.3.2.11. Grant
Sistem ya da nesne haklarının kullanıcılara veya rollere atanması için kullanılan
komuttur.
GRANT DELETE ON tbl_ogr TO usr_gef
Yukarıdaki örnekte usr_gef kullanıcısına tbl_ogr tablosunda silme yapma yetkisi
verilir.
2.3.2.12. Revoke
Sistem ya da nesne haklarının kullanıcılardan veya rollerden geri alınnması için
kullanılan komuttur.
REVOKE DELETE ON tbl_ogr FROM usr_gef
Yukarıdaki örnekte usr_gef kullanıcısından tbl_ogr tablosunda silme yapma yetkisi
geri alınır.
2.4. YEDEK ALMA VE GERĠ GETĠRME
Oracle, verileri her ne kadar güvenli tutsa da, fiziksel sebeplerden(disk hataları),
kullanıcı
hatalarından
veya
benzer
durumlardan
dolayı
yedeklere
ihtiyaç
duyulmaktadır. Yedek alma, veritabanı yöneticisinin yapacağı önemli iĢlerden
birisidir.
Oracle‟da, yedek almayla ilgili değiĢik yöntemler vardır. Veritabanı yöneticisi, kendi
veritabanının durumuna göre, yedek almayla ilgili bir veya birden fazla yöntemi
15
kullanmaya karar vermelidir. Bu kararı vermede, yönetici, yedeği kimin alacağı,
hangi tür depolama ünitesine alınacağı, ne kadar sıklıkla alınacağı, alınan yedeklerin
büyüklüğü, veritabanında küçük de olsa bir kayıba tahammül olup olmadığı gibi çok
değiĢik sebepleri gözönünde bulundurmak zorundadır [8].
2.4.1. Fiziksel Yedek Alma
Fiziksel yedek alma veri dosyalarının, redo log dosyalarının ve kontrol dosyalarının
yedeklerinin
alınması
iĢlemidir.
Bir
veritabanı
ARCHIVELOG
ve
NOARCHIVELOG olmak üzere iki farklı modda çalıĢabilir. ARCHIVELOG
modunda yapılan tüm iĢlemler redo log dosyalarına otomatik olarak kaydedilir.
Bunun anlamı veritabanındaki değiĢikliklerin sürekli dosyalara kaydedilmesidir.
Kaydedilen bu dosyaların hangileri olduğu ve nerede bulundukları gibi bilgiler
init<SID>.ora dosyası içerisinde yer alır. ARCHIVELOG modda çalıĢan bir
veritabanında veri kaybı söz konusu değildir. Eğer veritabanı NOARCHIVELOG
modda çalıĢıyorsa yapılan değiĢiklikler bir yere kaydedilmeyecektir. Bu yüzden
sistemin bozulması durumunda ancak son alınan yedekler geri getirilebilir. Yani son
alınan yedekten sonra yapılan değiĢiklikler kaybolur. ĠĢletim sistemi yedeği alma
olarak ta bilinen fiziksel yedek alma iĢleminin dezavantajı, yedek alma iĢlemi
boyunca veritabanının kapatılması gereğidir.
2.4.2. Mantıksal Yedek Alma
Oracle‟da mantıksal yedek alma denince Export ve Import anlaĢılır. Bunlar Oracle
firmasının geliĢtirdiği komut modunda çalıĢan yardımcı programlardır. Bu tür yedek
alma veritabanı nesnelerinin yedeklenmesi olduğu için mantıksal yedek olarak
adlandırılır. Yani export ile log dosyalarının ya da kontrol dosyalarının yedeği
alınmaz.
Mantıksal yedek almanın avantajları sunlardır:

Tarihlere göre yedek almak daha kolaydır. Günlük dıĢarı veri aktarımları
(export) VT‟nın durumunu ve geliĢmesini günlük olarak takip etmede en
kolay yöntemdir.
16

VT‟nın yapısının verileri olmaksızın yedeği alınabilmektedir. Bu imkânla,
herhangi bir uygulamaya ait tablo, indis, kısıtlama ve sıra gibi nesneler baĢka
bir ortama kolayca alınabilir.

Veri tabanları arasında veri kopyalama iĢlemi için kullanılabilmektedir.
Oracle‟ın değiĢik sürümleri arasında veri taĢımak için kullanılabilmektedir
[5].
2.4.2.1.Export
Export Oracle‟ın mantıksal yedek alma iĢlemleri için geliĢtirdiği bir üründür.
Mantıksal yedek alma veritabanının kapatılmaması gerektiği zaman kullanılan bir
yedek alma türüdür. Bu yöntemle farklı modlarda yedek alınabilir. Export ile alınan
yedekler ancak Import ile geri yüklenebilir. Export kullanılarak bir veritabanının
yapısı veriler olmadan yedeklenebilir, belli tablolar verilerle birlikte ya da sadece
yapıları ile yedeklenebilir, yani yedeklenecek veritabanı nesnelerinin seçimi
yapılabilir.
Export almada 4 mod vardır: Birincisi Tablo Modu(Table Mode)‟dur. Bu modda
kullanıcılar kendi tablolarının yedeklerini alabilirler ya da hakkı olan kullanıcı bir
baĢka kullanıcnın tablolarının yedeklerini alabilir. Ġkincisi Kullanıcı Modu(User
Mode)‟dur. Bu modda bir kullanıcının nesnelerinin yedeği alınabilir. Üçüncüsü Tam
Veritabanı Modu‟dur(Full Database Mode). Bu modda tüm veri tabanının yedeği
alınabilir. Bu modu gerçekleĢtirmek için kullanıcının bazı özel haklara sahip olması
gerekir. EXP_FULL_DATABASE rolüne sahip olan kullanıcı ya da DBA rolüne
sahip olan kullanıcılar bu modu kullanabilir. Dördüncüsü Tablo Uzayı Modu‟dur. Bu
modda da tablo uzaylarının yedeği alınır [9].
2.4.2.2. Import
Export ile yedeklenen veriler Import yardımcı programıyla geri getirilebilir.
YedeklenmiĢ dosyanın tamamı ya da bir kısmı yedekleyen kullanıcı için geri
getirilebildiği gibi bir baĢka kullanıcıya da aktarılabilir.
17
3. VERĠTABANI MODELLERĠ VE TASARIMI
3.1. VERĠTABANI MODELLERĠ
Veri tanımı için kullanılan kavramsal düzeydeki yapıya veri modeli denir. Veritabanı
oluĢturulmadan önce bu veritabanına ait veriler, veriler arasındaki iliĢkiler, veri
kısıtlamaları gibi konular kavramsal düzeyde herhangi bir veri modelinde hazırlanır.
Veri modeli bu kavramsal yapıları bazı notasyonlar kullanarak diagramlar üzerinde
gösterir. Bu iĢlemler bir veritabanı tasarımının ilk adımıdır ve bu iĢlemler için
kullanılan bir çok veri modeli vardır. Bu veri modelleri [3];
 Ağ Modeli
 HiyerarĢik Model
 Nesne Yönelimli Model
 E-R Modeli
 ĠliĢkisel Model
3.1.1. Ağ Veritabanı Modeli
Ağ (Network) veritabanı modeli, karmaĢık veri iliĢkilerini hiyerarĢik modelin
yapabildiğinden daha etkin bir Ģekilde gösterebilmek, veritabanı performansını
arttırmak ve bir veritabanı standardı koymak için geliĢtirilmiĢtir. Birçok açıdan ağ
modeli hiyerarĢik modele benzemektedir. Örnek olarak hiyerarĢik modelde olduğu
gibi kullanıcı ağ veritabanı modelini 1:M iliĢkilerine sahip kayıtlar topluluğu olarak
algılar. Ancak, hiyerarĢik modelin tersine ağ modeli bir kayıtın birden fazla ebeveyni
olmasına izin verir. Bu yüzden Ģekilde gösterilen iliĢkiler ağ veritabanı modeli ile
kolaylıkla kullanılabilir [10].
18
ġEKĠL 3.1. Ağ Modeli Örneği
Ağ veritabanı terminolojisi kullanılırken bir iliĢki küme (set) olarak adlandırılır. Her
küme en az iki kayıt tipinden oluĢur: hiyerarĢik modelde ebeveyne karĢılık olabilecek
bir sahip (ovmer) kayıt ve hiyerarĢik modelde çocuğa (child) karĢılık olan bir üye
(member) kayıt. HiyerarĢik model ile ağ modeli arasındaki fark ise bir üye kaydın
birden fazla kümede görülebilmesidir. Diğer bir deyiĢle bir üyenin birden fazla sahibi
olabilir.
3.1.2. HiyerarĢik Veritabanı Modeli
HiyerarĢik veritabanı modelinin var olan veritabanı pazarında çok önemli bir rolü
olmamasına rağmen aĢağıdaki nedenlerle bu modelin bazı karakteristikleri
anlaĢılmalıdır.
 Bu modelin temel kavramları sonraki veritabanı geliĢtirilme sürecinin
temellerini oluĢturur.
 Modelin sınırlılıkları veritabanı tasarımına farklı bakıĢ açısına yol açar.
 HiyerarĢik
modelin
bazı
temel
kavramları
günümüzdeki
veritabanı
modellerinde görülmektedir.
HiyerarĢi içerisinde en üst seviye (kök) kendisinin altındaki segmentin ebeveyni
olarak görülür. Örnek olarak Ģekilde kök segmenti birinci seviye segmentlerin
ebeveynidir. Birinci seviye segmentler ise ikinci seviye segmentlerin ebeveynidir ve
bu yapı bu Ģekilde devam eder. HiyerarĢik veritabanı modeli iki tip iliĢkiye izin verir,
bire-bir (1:1) iliĢki ve bire-çok (1:M) iliĢki. HiyerarĢik modelde 1:M iliĢkileri
kolaylıkla izlemek mümkündür, ancak bu veritabanı modeline M:M iliĢkileri
uyarlamak zordur. Ancak gerçek yaĢamda karĢılaĢılabilecek bu tür yapılar çoklu
ebeveynli çocuk (child with multiple parents) iliĢki yapısı ile gösterilmektedir.
19
ġEKĠL 3.2. HiyerarĢik Veri Modeli Örneği
3.1.3. Nesne Yönelimli Veritabanı Modeli
Günümüzde birçok sistem geliĢtirici nesne temelli veritabanı tasarımını, nesne
temelli analiz sürecinin doğal bir uzantısı olarak kullanmaktadırlar. Bazı BT
profesyonelleri nesne temelli veritabanlarının daha güçlü bir etkisinin olacağına ve
sonuç olarak da iliĢkisel yaklaĢımın yerini alacağına inanmaktadırlar [10]. Nesne
temelli veritabanı modeli varlıkların tanımlanması ve kullanılmasında çok farklı bir
yolu yansıtmaktadır. ĠliĢkisel veritabanı modelindeki varlık gibi, bir nesne kendisinin
olgulara dayanan içeriği ile tanımlanır. Fakat varlıktan farklı olarak, bir nesne, diğer
nesnelerle olan iliĢkilerine ait bilgilerle birlikte, nesnenin kendi içinde yer alan
olgular arasındaki iliĢkiler hakkında da bilgiler içerir. Bu yüzden nesne içerisindeki
olgular daha büyük anlama sahiptir. Bir nesne temelli veri modeli en azından
aĢağıdaki bileĢenlere sahip olmalıdır:
 Veri modelinin nesneleri gerçek yaĢam varlıkları veya olaylarının çıkarımları
olmalıdır.
 Özellikler bir nesnenin niteliklerini tanımlamalıdır. Örnek olarak ÖĞRENCĠ
nesnesi AD, SOYAD, ÖĞRENCĠ_NO ve ANABĠLĠMDALI gibi özellikleri
içermelidir.
20
 Benzer karakteristikleri
paylaĢan nesneler sınıflar (class) içerisinde
gruplandırılmalıdır. Bir sınıf, paylaĢılan yapı (özellikler) ve davranıĢları
(metodlar) olan benzer nesneler topluluğudur. Genel bir bakıĢla sınıf, varlıkiliĢki modelinin varlık setine benzemektedir. Ancak bir sınıf içerdiği iĢlemler
kümesi ( metodlar) ile bir varlık setinden farklılık göstermektedir.
 Sınıflar bir sınıf hiyerarĢisi içerisinde organize edilmiĢtir. Sınıf hiyerarĢisi her
sınıfın sadece bir ebeveyninin olabileceği baĢ aĢağı bir ağaç yapısına benzer.
Örnek olarak bir MÜġTERĠ sınıfı ile bir ÇALIġAN sınıfı ebeveyn KĠġĠ
sınıfını paylaĢır. Bu açıdan hiyerarĢik veritabanı modeli ile benzerlik
gösterdiği söylenebilir.
 Bir nesne sınıf hiyerarĢisi içerisinde kendisinin üstündeki sınıfların
özelliklerini ve davranıĢlarım miras olarak alabilme yeteneğine sahiptir.
Örnek olarak KĠġĠ sınıfının altında yaratılacak MÜġTERĠ ve ÇALIġAN
sınıfları KĠġĠ sınıfının bütün özellik ve davranıĢlarını alacaktır.
3.1.4. E-R Modeli
Varlık-iliĢki modeli, ya da kısaca E-R modeli (Entity-Relationship model) 1976
yılında P.P. Chen tarafından geliĢtirilen bir modeldir. E-R Modeli bir veritabanını,
temel nesneler ve bu nesneler arasındaki iliĢkiler cinsinden ifade eder. Bu model bize
veritabanımızın tablolarını, tablolarda kullanılan alanları ve tablolar arasındaki
iliĢkiyi verir. Tüm bunlar bir VTYS‟den bağımsız olarak kavramsal düzeyde yapılır.
Daha sonra bu kavramsal yapı, kullanılacak VTYS‟nin veri modeline uygun
veritabanı Ģemalarına dönüĢtürülür [3].
E-R Model diyagramları tasarlanırken kullanılan temel kavramlar Ģunlardır.
Varlık (Entity): Diğer nesnelerden ayırt edilebilen tekil (unique) mini-dünya
nesnesidir.
Özellik (Attribute): Veritabanındaki varlıklar özellikler kümesiyle (attribute set)
tanımlanır. Her bir varlığın, özellikleri için aldığı bir değer vardır.
Veri Kümesi (Domain): Bir özelliğin alabileceği değerler.
Veri Türü (Data Type): Bir özelliğin içerebileceği verinin hangi türden olacağını
belirler.
21
Güçlü Varlık (Strong Entity): Herhangi diğer varlık türlerinden bağımsız mevcut
olabilen varlık türü.
Zayıf Varlık (Weak Entity): Tekil olarak belirlenebilmesi, baĢka bir varlığın
(owner) birincil anahtar özelliğine bağlı olan varlık.
o Zayıf varlığın anahtar özelliği yoktur.
o Zayıf varlık, kendisini belirleyen (owner) varlık ile belirleyici bir iliĢki içinde
olmalıdır.
TüretilmiĢ Özellik (Derived Attribute): Bir varlığa ait özellikler kullanılarak yeni
bir özellik türetilebilir.
Çok değerli özellik (Multi-valued attribute): Birden fazla değer ile eĢleĢebilen
özellik.
BirleĢik Özellik (Composite Attribute): Birden fazla özelliğin birleĢmesiyle oluĢan
özellik.
Aday Anahtar (Candidate Key): Varlık kümesinde yer alan her varlığı kesin olarak
tanımlamaya yarayan özelliklere aday anahtar adı verilir. PERSONEL varlık türünde
SĠCĠLNO
ve
TC_KĠMLĠK_NO
özellikleri
aday
anahtar
olabilir.
Fakat
PERSONEL_ADI özelliği olamaz, çünkü aynı ada sahip birden fazla personel
olabilir.
BirleĢik (Composite) Anahtar: Ġki veya daha fazla özellikten oluĢan aday anahtar.
ALINAN_UNVANLAR varlık türünde SĠCĠLNO ve ÜNVAN alanları birleĢik
anahtar olabilir.
Birincil Anahtar (Primary Key): Aday anahtarlar arasından seçilmiĢ anahtar. Bu
anahtar sadece bir özellikten oluĢabileceği gibi birden fazla özelliğin birleĢiminden
de oluĢabilir. PERSONEL varlık türünde SĠCĠLNO veya TC_KĠMLĠK_NO
özellikleri birincil anahtar olarak seçilebilir.
Yabancı anahtar (Foreign Key): Bir varlık türünün, baĢka bir varlık türünün
anahtarı ile eĢleĢen özellik veya özellikler kümesi.
Rol: Aralarında iliĢki kurulan varlıklardan her birinin iliĢkideki iĢlevine varlığın rolü
denir. Farklı varlık kümeleri arasındaki iliĢkilerde roller dolaylı
yoldan
anlaĢılabildiği için çoğunlukla açıkça belirtilmez. Örneğin, öğrenci ve ders arasında
kurulan “aldığı” iliĢkisinde varlıkların rolleri bellidir: öğrenci dersi alan, ders ise
öğrenci tarafından alınandır. Oysa kiĢi1 ve kiĢi2 arasında kurulan evlilik iliĢkisinde
22
kiĢilerden hangisinin erkek hangisinin kadın olduğunun belirtilmesi gerekebilir (bazı
isimler hem erkek hem kadınlar tarafından kullanıldığı için). Benzer biçimde bir
kurumda çalıĢan personel1 ve personel2 arasında kurulan yönetici iliĢkisinde hangi
personelin rolünün yönetici (üst), hangi personelin rolünün ise yönetilen (ast)
olduğunun belirtilmesine gerek vardır.
ĠliĢki: Ġki veya daha fazla varlık arasındaki belli bir anlamı olan bağlantı. (Örnek;
980500752 numaralı ÖĞRENCĠ 05 kodlu MATEMATĠK bölümüne KAYITLI‟dır)
Aynı varlıklar arasında farklı iliĢkiler olabilir. (Örnek; ÖĞRETĠM ÜYESĠ Erdoğan
Doğdu, Bilgisayar BÖLÜMÜ‟nü YÖNETĠR veya ÖĞRETĠM ÜYESĠ Fatih Demirci,
Bilgisayar BÖLÜMÜ‟nde ÇALIġIR). Aynı türden iliĢkiler, aynı iliĢki türü
(Relationship Type) adı altında gruplandırılır. Bunlar iliĢki kümesini oluĢtururlar.
iliĢki Derecesi: iliĢkiye katılan varlıkların sayısı. (Örnek; YÖNETĠR ve ÇALIġIR
iliĢkileri 2-li iliĢkidir.)
ĠliĢki Kümesi: Benzer iliĢkiler kümesi. E1, .., En varlık kümesi arasında n-li R
iliĢkisi bulunabilir. (E1ve E2varlık kümeleri arasında 2-li iliĢki kümesi)
Yinelenen (Recursive) iliĢki: Aynı varlığın farklı rollerle katıldığı iliĢki.
PERSONEL varlığı üzerinde tanımlı YÖNETĠCĠ iliĢkisi.
iliĢkiye Has Özellikler : Bir iliĢkinin kendine has özellikleri olabilir. (Örn:
PERSONEL ve PROJE varlıkları arasında tanımlanan ÇALIġMA iliĢkisi için
HAFTALIK_SAAT adında özellik olabilir.
ĠliĢki Türleri: A ve B varlık kümeleri arasında tanımlanan (A ve B varlık kümeleri
aynı da olabilir), A‟dan B‟ye bir iliĢki kümesi, eĢleme sınırlamaları açısından
aĢağıdaki dört türden birinde olabilir.
o Birden-bire (one-to-one)
o Birden-çoğa (one-to-many)
o Çoktan-bire (many-to-one)
o Çoktan-çoğa (many-to-many)
Birden-bire (1-1): A varlık kümesindeki bir varlık, B varlık kümesindeki sadece bir
varlık ile iliĢkili ise.
Birden-çoğa (1-n) : A varlık kümesindeki bir varlık, B varlık kümesindeki birden
fazla varlık ile iliĢkili ve B kümesindeki bir varlık A kümesindeki sadece bir varlık
ile iliĢkili ise.
23
Çoktan-bire (n-1): Her a ile en çok bir b ve her b ile de sıfır, bir veya birçok a
arasında iliĢki kurulabilir. Örnek: “Öğrenci” ve “Bölüm” varlık kümeleri arasındaki
“Okuduğu” iliĢkisi, öğrenciden bölüme doğru çoktan-bire Ģeklindedir.
Çoktan-çoğa (n-m): A varlık kümesindeki bir varlık, B varlık kümesindeki birden
fazla varlık ile iliĢkili ve B kümesindeki bir varlık A kümesindeki birden çok varlık
ile iliĢkili ise.
ġEKĠL 3.3. Veri Modellemede Kullanılan Grafiksel Notasyonlar
3.1.5. ĠliĢkisel Veri Modeli
ĠliĢkisel Veri Tabanları: E.F. Codd Tarafından GeliĢtirilmiĢtir. Bu sistemde veriler
tablo Ģeklinde saklanır. Tablolar, satır ve sütunlardan oluĢur. ĠliĢkiler kurulurken
birincil anahtar (Primary key) ve yabancı anahtarlar
(Foreign Key) kullanılır.
Anahtar alanlar sayesinde indeksleme (indexing) yapma olanağı sunan iliĢkisel veri
24
tabanlarında eriĢim ve iĢlemler daha hızlı yapılabilmektedir. Bu veri tabanı yönetim
sisteminde; veri alıĢ veriĢi için özel iĢlemler kullanılır. Bu iĢlemlerde tablolar
operandlar olarak kullanılır. ĠliĢkisel veri modellerinde kullanılan tek yapılandırma
aracı iliĢkidir. ĠliĢkinin tanımı, veri tabanı iliĢkilerinin zamana bağlı olması dıĢında,
matematiksel tanımı ile aynıdır. Yani, bir veri tabanı iliĢkisinde satırlar, eklenebilir,
değiĢtirilebilir ya da düzeltilebilir [6].
3.1.6. Farklı Veritabanı Modellerinin Avantajları ve Dezavantajları
Veritabanı modelleri dosya sistemlerinin doğal zayıflıklarından yola çıkılarak
geliĢtirilmiĢtir. Veriyi farklı dosyalarda tutmak yerine veritabanları veriyi tek bir veri
deposunda tutarlar. Bu da veritabanı yönetim sistemlerine (VTYS-DBMS) veritabanı
aktiviteleri üzerinde sıkı kontrol imkanı tanır. Üç temel veritabanı modeli (hiyerarĢik,
ağ ve iliĢkisel) ticari baĢarı elde etmiĢlerdir. Her üçü de veritabanı yöneticilerine
görevlerini daha etkin yapabilmelerine olanak tanıyan veritabanı yönetim sistemleri
kullanırlar. Ancak veritabanı yönetim sistemleri faaliyetlerinin kapsamı ve bunların
kullanıcı-dostu yazılımları çeĢitli veritabanı sistemlerinde farklılık göstermektedir.
AĢağıdaki tabloda yukarıda geçen beĢ farklı veritabanı modelinin avantaj ve
dezavantajları özetlenmiĢtir [5].
HiyerarĢik
Evet
AVANTAJLARI
DEZAVANTAJLARI
1.Veri paylaĢımı
1.Yönsel sistem, karmaĢık
yüksektir
tasarım, uyarlama,uygulama
2.Ebeveyn/Çocuk
geliĢtirme, kullanım ve
iliĢkisi ile kavramsal
yönetimi sonuç verir
sadelik artar
2.Uygulama sınırlıdır (M:M
3.Ebeveyn/Çocuk
veya çoklu ebeveyn
iliĢkisi veritabanı
iliĢkileri yok) 3.VTYS'de
BAĞIMSIZLIK
VERĠ
MODELĠ
YAPISAL
VERĠTABANI
BAĞIMSIZLIĞI
ÇĠZELGE 3.1. ÇeĢitli Veritabanı Modellerinin Avantajları ve Dezavantajları
Hayır
25
AVANTAJLARI
DEZAVANTAJLARI
bütünlüğünü arttırır
veri tanımlama veya veri iĢlem
4.1:M sabit iliĢkilerle
dili yok 4.Standart eksikliği
BAĞIMSIZLIK
VERĠ
MODELĠ
YAPISAL
VERĠTABANI
BAĞIMSIZLIĞI
ÇĠZELGE 3.1. ÇeĢitli(Devam) Veritabanı Modellerinin Avantajları ve Dezavantajları
HiyerarĢik
etkindir.
Ağ
Evet
Hayır
1.HiyerarĢik modele
1.Sistem karmaĢıklığı
eĢit kavramsal basitlik.
etkinliği sınırlandırır (hala
2.Daha fazla iliĢki
yönsel sistem)
tipini kullanır M:M
2.Yönsel sistem, karmaĢık
veya çoklu ebeveyn
tasarım, uyarlama, uygulama
gibi 3.Sahip/Üye
geliĢtirme,
iliĢkileri veritabanı
kullanım ve yönetimi
bütünlüğü sağlar
sonuç verir
4.Standartlara
uygunluk 5.VTYS'de
veri tanımlama ve veri
iĢleme dilleri içerir
ĠliĢkisel
Evet
Evet
1.Çizelge görünümü
1.Sistemin kullanımını
kavramsal sadeliği
kolaylaĢtıran ĠliĢkisel
önemli ölçüde
Veritabanı Yönetim
arttırır,böylece
Sistemi çok fazla donanım
veritabanı tasarımı,
ve sistem yazılımı gerektirir
uygulaması,
2.Kavramsal sistem
sadeliği nispeten az
eğitimli insanların iyi bir
sistemi etkin
26
ĠliĢkisel
Evet
Evet
AVANTAJLARI
DEZAVANTAJLARI
2.SQL'e dayalı ad
kullanamamasına yol açar
BAĞIMSIZLIK
VERĠ
MODELĠ
YAPISAL
VERĠTABANI
BAĞIMSIZLIĞI
ÇĠZELGE 3.1. ÇeĢitli(Devam) Veritabanı Modellerinin Avantajları ve Dezavantajları
hoc sorgu yeteneği
3.Güçlü veritabanı
yönetim sistemi
uygulama ve
yönetim sadeliğini
geliĢtirir
Varlık-ĠliĢki
Evet
Evet
1.Görsel modelleme
1.Sınırlı kısıt sunumu
olağanüstü
2.Sınırlı iliĢki sunumu
kavramsal sadelik
3.Veri iĢlem dili yok
sağlar 2.Görsel
4.Bilgi içeriğinde kayıplar,
sunum sistemi etkin
çünkü özellikler genellikle
bir iletiĢim aracı
kalabalık görüntü
haline getirir
oluĢmaması için çıkarılır
3.Baskın iliĢkisel
veritabanı modeli ile
entegredir
Nesne-Temelli
Evet
Evet
1.Semantik içerik
1.Standart eksikliği
ekler 2.Görsel
2.KarmaĢık yönsel sistem
sunum semantik
3.Dik öğrenme eğrisi
içeriği de
4.Yüksek sistem yükü
kapsamaktadır
iĢlemleri yavaĢlatır
3.Miras alma
veritabanı
bütünlüğünü arttırır
27
3.2. ÖRNEK VERĠTABANI (ÖĞRENCĠ OTOMASYONU) TASARIMI
3.2.1. Öğrenci Otomasyonu ĠĢlevleri
Öncelikle öğrenci otomasyonu için senaryo yaratıldır. Bu senaryoda öğrenci
otomasyonu bir üniversite için hazırlanıcağı tasarlandı. Senaryoya göre öğrenci
formundaki kullanıcı kendi kiĢisel bilgilerini, derslerini ve dersleri hakkındaki baĢarı
notlarını, bölümü ile ilgili bilgileri görebileceği yapı tasarlandı. Ders ile ilgili
bilgilerinde dönem olayına dikkat edildi. Dönem olaylarından kasıt bir dersin farklı
dönemlerde de alınabilecek fakat aynı dönemde sadece bir defa alınabilicek yapıda
olduğu bilinerek düzenlendi. Öğretim elemanında kendi kiĢisel bilgilerini
görebileceği, bölümü ve bölümünün bağlı olduğu fakülte hakkındaki verilere
ulaĢabileceği ve ünvanını gösterecek bir yapı seçildi. Aslında personel sınıfına da
dahil olabilecek bu yapı ayrık gösterilerek anlaĢılması kolay bir tasarım oluĢturuldu.
Öğrenci ve Öğretim elemanı kullanıcıları için görünecek bilgilerideki hassasiyete
önem verilerek en uygun tasarım oluĢturuldu.
3.2.2. Varlık Kümeleri Arasındaki ĠliĢki
Öğrenci Otomasyonunda öğrenci, öğretim elemanı, bölüm, fakülte, ünvan, ders,
dönem ve öğrenciDers isimli varlık kümeleri düĢünülmüĢtür. Öğrenci numarası,
kimlik numarası, adı, soyadı, bölüm numarası, adresi, telefonu, e-posta adresi
bilgileri tutulduğu öğrenci varlık kümesi ile bölüm numarasını, bölüm adını, fakülte
numarasını, bölüm baĢkanı, telefon ve e-posta verilerini tutulduğu bölüm varlık
kümesi göz önüne alınmaktadır. Bu varlık kümelerinde her öğrenci belirli bir bölüme
kayıtlıdır. Ancak bir bölüme birden çok öğrenci kayıtlı olabilir. Fakülte numarası,
fakülte adı, dekan adını, dekan yardımcısını, ve iletiĢim verilerini tutulduğu bölüm
fakülte varlık kümesi ile bölüm varlık kümeleri göz önüne alınmaktadır. Bu varlık
kümelerinde her bölüm belli bir fakülteye bağlıdır. Ancak bir fakültede birden çok
bölüm olabilir. Hocanın numarası, adı, soyadı, bölümü, adresi, telefon numarası, eposta adresi ve ünvan bilgileri tutulduğu öğretim elemanı varlık kümesi ile bölüm
varlık kümesi göz önünüe alınmalıdır. Bu varlık kümelerinde her öğretim elemanı
belli bir bölüme bağlıdır. Ancak bir bölümüme birden çok öğretim elemanı kayıtlıdır.
28
Ünvan no ve ünvan adı bilgileri tutulduğu ünvan varlık kümesi ile öğretim elemanı
varlık kümesini göz önüne alalım. Bu varlık kümelerinden her öğretim elemanının
unvanı olmak zorunda değildir. Fakat ünvanı var ise belirli bir tane ünvana sahip
olur. Ancak bir ünvan birden fazla öğretim elemanına verilebilir. BaĢarı bilgilerinin
tutulduğu öğrenciDers varlık kümesi ile öğrenci varlık kümesi göz önüne alınmalıdır.
Bu varlık kümelerinden öğrenciDers kümesindeki baĢarı bilgisi her öğrencinin sahip
olduğu ve diğer öğrencilerinde sahip olabileceğinden zayıf varlık kümesidir. Öğrenci
olmazsa baĢarıda olmayacağından varolma bağımlıdır. Ders adı, kredi, teorik,
uygulama bilgilerinin tutulduğu ders varlık kümesi ile ögrenciDers varlık kümeleri
arasındaki iliĢki Ģöyledir. Bu varlık kümelerinden ders olmazsa baĢarıda olamaz.
BaĢarı değeri diğer derslerde olabileceğinden zayıf varlık kümesidir. Dönem id‟si
dönem yılı, dönem numarası ve açıklama bilgilerinin bulunduğu dönem varlık
kümesi ile öğrenciDers kümesi arasında iliĢki Ģöyledir. Dönem bilgisi öğrenci için
sorgulanır. Her öğrencinin dönem bilgisi olduğuna göre bunları birbirinden ayırmak
gerekir. Bu yüzden öğrenciDers varlık kümesi zayıf varlık kümesidir. Dönem varlık
kümesine var olma bağımlıdır. Çünkü listelenen derslerin belli bir dönemi vardır.
3.2.3. ĠliĢki ġemaları Çizeneği
ÖĞRENCĠ(ögrNo , kimlikNo, ad, soyad, adres, telefon, eposta,bölümNo)
BÖLÜM(bölümNo, bölümAdı, bölümBġK, telefon, eposta, fakülteNo )
FAKÜLTE(fakülteNo, fakülteAdı, dekanAdı, iletiĢim)
ÖĞRETĠMELEMANI(hocaNo, ad, soyad, adres, telefon, eposta, bölümNo,
ünvanNo)
ÜNVAN(ünvanNo, ünvanAdı)
ÖĞRENCĠDERS(ögrDersĠd, ögrNo , dersNo , donemId, baĢarı)
DERS(dersNo, dersAdı, kredi, teorik, uygulama)
DÖNEM(donemId,donemYil, donemNo, açıklama)
29
4. ORACLE’DA VERĠTABANI UYGULAMASI
4.1. ORTAMIN HAZIRLANMASI VE VERĠTABANI OLUġTURMA
Öncelikle veritabanın yaratılıp, yönetilmesi için Oracle Database 11g Enterprise
Edition sürümü kuruldu. Kurulum esnasındaki email isteyen alan boĢ bırakıldı. Daha
sonra gelen ekrandaki birinci seçenek RDBMS software kurulumunu ve veritabanını
oluĢturulacağını, ikincisi seçenek sadece RDBMS software‟i kurulacağını (Sonradan
DBCA ile veritbanını oluĢturmamız gerekir). Üçüncüsü varolan veritabanını upgrade
etmek için bulunan seçeneklerden birincisi seçerek kurulum devam etti. Kurulum bu
aĢamasında hangi ortamda çalıĢacağı ile ilgili bilgiydi. Desktop Class ve Server
Class seçeneklerinden bana uyan veritabanını kendi bilgisayarımda çalıĢtıracağımdan
birinci seçenekti. Yeni pencerede Single instance database installation
seçeneği
seçildi. Konfigürasyon bilgilerinin bulunduğu ekranda Advanced seçeneği ile basit
olmayan ayarlar seçildi. Bu ayarlardan Oracle base dizini seçildi, Software location
seçildi, Storage tipi olarak “File System” seçildi, Veritabanı dosyalarının bulunacağı
“database file location” dizini belirtildi, Database edition olarak “Enterprise Edition”
seçildi, dba grubu olarak OSDBA Group seçildi, Global Database Name olarak
veritabanımızın adı ogrenciOtomansyonDB olarak oluĢturuldu ve Son olarak bir
yönetim Ģifresi belirlendi. Specify Configuration Options penceresinde karakter set
olarak Turkish WEISO8859P9 seçeneği seçildi. SYS, SYSTEM, SYSMAN ve
DBSNMP kullanıcıları için Ģifre belirleneceği pencerede hepsine aynı anda Ģifre
verildi. Oracle SQL Developer, potansiyeli olan, platform bağımsız ve Java ile
istenilirse XML ve SQL kullanarak eklentiler geliĢtirebilidiği ve sadece Oracle‟ı
değil, Ms Access, Ms SQL Server, MySQL, TimesTen, Sybase ve DB2 ile çalıĢmayı
sağlayan ücretsiz bir yazılımdır. SQL management yapısına benzediği ve Oracle
üzerinde yapılan iĢlemler daha rahat yapılabildiğinden bu uygulama için tercih edildi.
Uygulama sadece bu araçla geliĢtirilmedi, böyle kullanım kolaylığı sağlayan
araçlarda incelendi. Böylece uygulamanın tabloların yaratılması aĢamasına geçildi.
30
4.2. TABLOLARIN YARATILMASI
Tablolar oluĢturulurken özniteliklerin, eĢsiz anahtarların ve yabancı anahtarların
veritabanın tasarım aĢamasında belirlendiğinden iĢlemler hızlı bir Ģekilde
gerçekleĢtirildi. Tablolar oluĢturulurken iliĢki-Ģema çizelgesi sayesinde sql
komutlarını uygulanarak ve Oracle çalıĢma alanında SQL Workshop bölümünde
Object Browser ile tablolar yaratıldı.
Tablolardaki öznitelikler seçilirken en kapsamlı olabilecek fakat gereksiz
kullanımında önüne geçiçek düzeyde seçildi. Örneğin isim sütünları oracle veri
türlerinden olan nvarchar türünde ve 20 karakter ile sınırlandırıldı. Burada nvarchar
seçilmesinin nedeni Unicode karakter tutabilen veri tipi olması ve bu veriyi tutarken
boyutu kadar tutmasından dolayıdır. Eğer veri türü nvarchar değilde nchar türünde
tutulsaydı, veri için ön görülen kısıtlama miktarı kadar alan kaplayarak her veriyi
saklayacaktı. Yani veri ne olursa olsun kısıtlama kadar yer ayrılacaktı. Fakat aynı
durum nvarchar için geçerli değil çünkü verinin boyutu kadar yer kaplar tabi
maksimum kısıtlama sınırına kadar.
4.2.1. Öğrenci Tablosu
Öğrenci tablosu Oracle çalıĢma alanında Object Browser ile yaratılırken
özniteliklerdeki kısıtlamalar belirlendi. Bu kısıtlamalar ve tablo Ģekilde görüldüğü
gibidir. Burada Primary key olarak öğrenci no tanımlanmıĢtır. Kimlik no unique yani
benzersizdir. Telefon, eposta ve adres bölümleri boĢ olabilrken diğer alanlar boĢ
olamaz.
ġEKĠL 4.1. Öğrenci Tablosu
31
4.2.2. Öğretim Elemanı Tablosu
ÖğretimElemanı tablosu Oracle çalıĢma alanında Object Browser ile yaratılırken
özniteliklerdeki kısıtlamalar belirlendi. Bu kısıtlamalar ve tablo Ģekilde görüldüğü
gibidir. Burada Primary key olarak Hoca no tanımlanmıĢtır. Telefon, eposta, adres ve
unvan bölümleri boĢ olabilrken diğer alanlar boĢ olamaz. Ünvanın boĢ olması hiçbir
unvan taĢımayabileceği için boĢ bırakılabilir. Burada sistem Ģu Ģekilde de olabilirdi.
Ünvan tablosunda boĢ unvanlar için satır oluĢturulur ve ÖğretimElamanı tablosunda
boĢ girilmesi engellenebilirdi.
ġEKĠL 4.2. Öğretim Elemanı Tablosu
4.2.3. Bölüm Tablosu
Bölüm tablosu Oracle çalıĢma alanında Object Browser ile yaratılırken
özniteliklerdeki kısıtlamalar belirlendi. Bu kısıtlamalar ve tablo Ģekilde görüldüğü
gibidir. Burada Primary key olarak bölüm no tanımlanmıĢtır. Telefon ve eposta
bölümleri boĢ olabilrken diğer alanlar boĢ olamaz.
32
ġEKĠL 4.3. Bölüm Tablosu
4.2.4. Fakülte Tablosu
Fakülte tablosu Oracle çalıĢma alanında Object Browser ile yaratılırken
özniteliklerdeki kısıtlamalar belirlendi. Bu kısıtlamalar ve tablo Ģekilde görüldüğü
gibidir. Burada Primary key olarak fakülte no tanımlanmıĢtır. Sadece iletiĢim bölümü
boĢ olabilrken diğer alanlar boĢ olamaz.
ġEKĠL 4.4. Fakülte Tablosu
4.2.5. Ünvan Tablosu
Ünvan tablosu Oracle çalıĢma alanında Object Browser
ile
yaratılırken
özniteliklerdeki kısıtlamalar belirlendi. Bu kısıtlamalar ve tablo Ģekilde görüldüğü
gibidir. Burada Primary key olarak ünvan no tanımlanmıĢtır. Hiçbir bölüm boĢ
bırakılamaz.
33
ġEKĠL 4.5. Ünvan Tablosu
4.2.6. Ders Tablosu
Ders tablosu Oracle çalıĢma alanında Object Browser ile yaratılırken özniteliklerdeki
kısıtlamalar belirlendi. Bu kısıtlamalar ve tablo Ģekilde görüldüğü gibidir. Burada
Primary key olarak ders no tanımlanmıĢtır. Hiçbir bölüm boĢ bırakılamaz.
ġEKĠL 4.6. Ders Tablosu
4.2.7. Dönem Tablosu
Dönem tablosu Oracle çalıĢma alanında Object Browser ile yaratılırken
özniteliklerdeki kısıtlamalar belirlendi. Bu kısıtlamalar ve tablo Ģekilde görüldüğü
gibidir. Burada Primary key olarak dönem Ġd tanımlanmıĢtır. Sadece açıklama alanı
boĢ bırakılabilir.
34
ġEKĠL 4.7. Dönem Tablosu
4.2.8. ÖğrenciDers Tablosu
Öğrenci Ders tablosu Oracle çalıĢma alanında Object Browser ile yaratılırken
özniteliklerdeki kısıtlamalar belirlendi. Bu kısıtlamalar ve tablo Ģekilde görüldüğü
gibidir. Burada Primary key olarak ögrenciders id tanımlanmıĢtır. Hiçbir bölüm boĢ
bırakılamaz.
ġEKĠL 4.8. ÖğrenciDers Tablosu
4.3. TABLOLAR ARASI ĠLĠġKĠLER
Tablolar arası iliĢkiler yaratılırken Oracle sql developer yazılımı kullandı. Tablolar
için gerekli olan yabancı anahtar (foreign key)‟lar bu aĢamada oluĢturuldu. Her
tablonun en son halinin sql komutu Ģeklide görüntülenerek tablolar tamamlanmıĢ
35
oldu. Herhangi bir iliĢkisi bulanmayan tablolarında sql komutu ile oluĢturulabilecek
son halleri tamamlanmıĢ oldu.
4.3.1. Öğrenci Tablosu ĠliĢkileri ve Son Hali
Öğrenci tablosundaki bölüm no kolonu bölüm tablosuyla iliĢkisi Ģöyledir. Öğrenci
tablosundaki bölüm no referans olarak bölüm tablosundaki bölüm no‟yu alır. Bölüm
tablosunda olmayan bir değer öğrenci tablosunda olamaz.
En son hali ile öğrenci tablosunun, sql komutu olarak Ģu Ģeklidedir:
ÇĠZELGE 4.1. Tablo iliĢkileri Sonrası Öğrenci Tablosu Son Hali
CREATE TABLE "OGRENCI"
(
"OGRNO" NUMBER(15,0) NOT NULL ENABLE,
"KIMLIKNO" NUMBER(11,0) NOT NULL ENABLE,
"AD" NVARCHAR2(20) NOT NULL ENABLE,
"SOYAD" NVARCHAR2(20) NOT NULL ENABLE,
"TELEFON" NUMBER(14,0),
"EPOSTA" NVARCHAR2(25),
"BOLUMNO" NUMBER(15,0) NOT NULL ENABLE,
"ADRES" NVARCHAR2(50),
CONSTRAINT "OGRENCĠLER_PK" PRIMARY KEY ("OGRNO")
ENABLE,
CONSTRAINT "U_KIMLIKNO" UNIQUE ("KIMLIKNO") ENABLE
)
;ALTER
TABLE
"OGRENCI"
ADD
CONSTRAINT
"FK_OGRENCI_BOLUM" FOREIGN KEY ("BOLUMNO")
REFERENCES "BOLUM" ("BOLUMNO") ENABLE;
4.3.2. Öğretim Elemanları Tablosu ĠliĢkileri ve Son Hali
Öğretim Elemanı tablosundaki bölüm no kolonu bölüm tablosuyla iliĢkisi Ģöyledir.
Öğretim Elemanı tablosundaki bölüm no referans olarak bölüm tablosundaki bölüm
no‟yu alır. Bölüm tablosunda olmayan bir değer öğretim elemanı tablosunda olamaz.
Öğretim Elemanı tablosundaki ünvan no kolonu ünvan tablosuyla iliĢkisi Ģöyledir.
36
Öğretim Elemanı tablosundaki ünvan no referans olarak ünvan tablosundaki ünvan
no‟yu alır. Ünvan tablosunda olmayan bir değer öğretim elemanı tablosunda olamaz.
En son hali ile öğretim elemanı tablosunun, sql komutu olarak Ģu Ģeklidedir:
ÇĠZELGE 4.2. Tablo iliĢkileri Sonrası ÖğretimElemanı Tablosu Son Hali
CREATE TABLE "OGRETIMELEMANI"
(
"HOCANO" NUMBER(15,0) NOT NULL ENABLE,
"AD" NVARCHAR2(20) NOT NULL ENABLE,
"SOYAD" NVARCHAR2(20) NOT NULL ENABLE,
"ADRES" NVARCHAR2(50),
"TELEFON" NUMBER(14,0),
"EPOSTA" NVARCHAR2(25),
"BOLUMNO" NUMBER(15,0) NOT NULL ENABLE,
"UNVANNO" NUMBER(5,0),
CONSTRAINT
"OGRETIMELEMANI_PK"
PRIMARY
KEY
("HOCANO") ENABLE
)
;ALTER
TABLE
"OGRETIMELEMANI"
ADD
CONSTRAINT
"FK_OGRETIM_BOLUM" FOREIGN KEY ("BOLUMNO")
REFERENCES "BOLUM" ("BOLUMNO") ENABLE;ALTER TABLE
"OGRETIMELEMANI"
ADD
CONSTRAINT
"FK_OGRETIM_UNVAN"
FOREIGN KEY ("UNVANNO")
REFERENCES "UNVAN" ("UNVANNO") ENABLE;
4.3.3. Bölüm Tablosu ĠliĢkileri ve Son Hali
Bölüm tablosundaki fakülte no kolonu fakülte tablosuyla iliĢkisi Ģöyledir. Bölüm
tablosundaki fakülte no referans olarak fakülte tablosundaki fakülte no‟yu alır.
Fakülte tablosunda olmayan bir değer bölüm tablosunda olamaz.
En son hali ile bölüm tablosunun, sql komutu olarak Ģu Ģeklidedir:
ÇĠZELGE 4.3. Tablo iliĢkileri Sonrası Bölüm Tablosu Son Hali
CREATE TABLE "BOLUM"
(
"BOLUMNO" NUMBER(15,0) NOT NULL ENABLE,
"BOLUMADI" NVARCHAR2(30) NOT NULL ENABLE,
37
ÇĠZELGE 4.3. (Devam)Tablo iliĢkileri Sonrası Bölüm Tablosu Son Hali
"BOLUMBSK" NVARCHAR2(40) NOT NULL ENABLE,
"TELEFON" NUMBER(14,0),
"EPOSTA" NVARCHAR2(25),
"FAKULTENO" NUMBER(15,0) NOT NULL ENABLE,
CONSTRAINT
"BOLUM_PK"
PRIMARY
KEY
("BOLUMNO")
ENABLE
)
;ALTER
TABLE
"BOLUM"
ADD
CONSTRAINT
"FK_BOLUM_FAKULTE" FOREIGN KEY ("FAKULTENO")
REFERENCES "FAKULTE" ("FAKULTENO") ENABLE;
4.3.4. ÖğrenciDers Elemanları Tablosu ĠliĢkileri ve Son Hali
Öğrenci Ders tablosundaki öğrenci no kolonu öğrenci tablosuyla iliĢkisi Ģöyledir.
Öğrenci Ders tablosundaki öğrenci no referans olarak öğrenci tablosundaki öğrenci
no‟yu alır. Öğrenci tablosunda olmayan bir değer öğrenciDers elemanı tablosunda
olamaz. Öğrenci Ders tablosundaki ders no kolonu ders tablosuyla iliĢkisi Ģöyledir.
Öğrenci Ders tablosundaki ders no referans olarak ders tablosundaki ders no‟yu alır.
Ders tablosunda olmayan bir değer öğrenciDers elemanı tablosunda olamaz. Öğrenci
Ders tablosundaki donem id kolonu donem tablosuyla iliĢkisi Ģöyledir. Öğrenci Ders
tablosundaki donem id referans olarak donem tablosundaki donem id‟yi alır. Dönem
tablosunda olmayan bir değer öğrenciDers elemanı tablosunda olamaz.
En son hali ile öğrenciDers tablosunun, sql komutu olarak Ģu Ģeklidedir:
ÇĠZELGE 4.4. Tablo iliĢkileri Sonrası ÖğrenciDers Tablosu Son Hali
CREATE TABLE "OGRENCIDERS"
(
"OGRNO" NUMBER(15,0) NOT NULL ENABLE,
"DERSNO" NUMBER(5,0) NOT NULL ENABLE,
"DONEMID" NUMBER(4,0) NOT NULL ENABLE,
"BASARI" NCHAR(1) NOT NULL ENABLE,
38
ÇĠZELGE 4.4. (Devam) Tablo iliĢkileri Sonrası ÖğrenciDers Tablosu Son Hali
"OGRDERSID" NUMBER(5,0) NOT NULL ENABLE,
CONSTRAINT
"OGRENCIDERS_PK_ID"
PRIMARY
KEY
("OGRDERSID") ENABLE
)
;ALTER
TABLE
"OGRENCIDERS"
ADD
CONSTRAINT
"FK_OGRDERS_ORG" FOREIGN KEY ("OGRNO")
REFERENCES
"OGRENCI" ("OGRNO") ENABLE;ALTER TABLE
"OGRENCIDERS" ADD CONSTRAINT "FK_ORGDERS_DERS" FOREIGN
KEY ("DERSNO")
REFERENCES
"DERS" ("DERSNO") ENABLE;ALTER TABLE
"OGRENCIDERS" ADD CONSTRAINT "FK_ORGDERS_DONEM" FOREIGN
KEY ("DONEMID")
REFERENCES "DONEM" ("DONEMID") ENABLE;
4.3.5. Fakülte Tablosunun Son Hali
Fakülte tablosu bölüm tablosundaki fakulte no ya referans olan fakulte no isimli
sütuna sahiptir. Kendisi referans konumda olduğundan tablo yaratılırken kodlarında
değiĢikliğe gidilmemiĢ olsada sql komutu Ģeklinde oluĢturulması aĢağıdaki gibidir.
ÇĠZELGE 4.5. Fakülte Tablosunun Son Hali
CREATE TABLE "FAKULTE"
(
"FAKULTENO" NUMBER(15,0) NOT NULL ENABLE,
"FAKULTEADI" NVARCHAR2(30) NOT NULL ENABLE,
"DEKANADI" NVARCHAR2(40) NOT NULL ENABLE,
"ILETIġIM" NUMBER(14,0),
CONSTRAINT "FAKULTE_PK" PRIMARY KEY ("FAKULTENO")
ENABLE
);
39
4.3.6. Ünvan Tablosunun Son Hali
Ünvan tablosu öğretim elemanı tablosundaki ünvan no ya referans olan ünvan no
isimli sütuna sahiptir. Kendisi referans konumda olduğundan tablo yaratılırken
kodlarında değiĢikliğe gidilmemiĢ olsada sql komutu Ģeklinde oluĢturulması
aĢağıdaki gibidir.
ÇĠZELGE 4.6. Ünvan Tablosunun Son Hali
CREATE TABLE "UNVAN"
(
"UNVANNO" NUMBER(15,0) NOT NULL ENABLE,
"UNVANADI" NVARCHAR2(20) NOT NULL ENABLE,
CONSTRAINT
"UNVAN_PK"
PRIMARY
KEY
("UNVANNO")
ENABLE
);
4.3.7. Ders Tablosunun Son Hali
Ders tablosu öğrenciDers tablosundaki ders no ya referans olan ders no isimli sütuna
sahiptir. Kendisi referans konumda olduğundan tablo yaratılırken kodlarında
değiĢikliğe gidilmemiĢ olsada sql komutu Ģeklinde oluĢturulması aĢağıdaki gibidir.
ÇĠZELGE 4.7. Ders Tablosunun Son Hali
CREATE TABLE "DERS"
(
"DERSNO" NUMBER(5,0) NOT NULL ENABLE,
"DERSADI" NVARCHAR2(20) NOT NULL ENABLE,
"KREDI" NUMBER(2,0) NOT NULL ENABLE,
"TEORIK" NUMBER(2,0) NOT NULL ENABLE,
"UYGULAMA" NUMBER(2,0) NOT NULL ENABLE,
CONSTRAINT "DERS_PK" PRIMARY KEY ("DERSNO") ENABLE
); );
40
4.3.8. Dönem Tablosunun Son Hali
Dönem tablosu öğrenciDers tablosundaki dönem no ya referans olan dönem no isimli
sütuna sahiptir. Kendisi referans konumda olduğundan tablo yaratılırken kodlarında
değiĢikliğe gidilmemiĢ olsada sql komutu Ģeklinde oluĢturulması aĢağıdaki gibidir.
ÇĠZELGE 4.8. Dönem Tablosunun Son Hali
CREATE TABLE "DONEM"
(
"DONEMYIL" NUMBER(4,0) NOT NULL ENABLE,
"AÇIKLAMA" NVARCHAR2(50),
"DONEMNO" NUMBER(2,0) NOT NULL ENABLE,
"DONEMID" NUMBER(5,0) NOT NULL ENABLE,
CONSTRAINT
"DONEM_PK_DONEMID"
PRIMARY
KEY
("DONEMID") ENABLE,
CONSTRAINT
"UK_DONEMYIL_DONEMNO"
("DONEMYIL", "DONEMNO") ENABLE
);
41
UNIQUE
5. SONUÇ
BeĢ bölümden oluĢan bu tez çalıĢması, VTYS olan Oracle'ın temel bilgileri hakkında
araĢtırmaların yapılmasını ve elde edilen bilgilerle bir veritabanın projesinin
geliĢtirilmesini içermektedir.
Ġkinci bölümde Oracle Veritabanı hakkında bilinmesi gereken en temel bilgiler
sunulmuĢtur. Veri Tanımla Dili Komutları ile veritabanı nesnelerinin yönetilmesini
sağlayacak bilgiler verilmiĢtir.
Üçüncü bölümde tüm Veri Modelleri araĢtırılması yapılıp, en çok kullanılan model
olan ĠliĢkisel Veritabanı Modeli ile öğrenci otomasyonu ismindeki örnek veritabanı
tasarlanmıĢtır.
Dördüncü bölümde ikinci bölümde elde edilen bilgilerle, üçüncü bölümde tasarlanan
örnek bir veritabanı tasarımının Oracle VTYS‟de oluĢtulmuĢtur.
Yapılan analizler sonucunda Oracle Veritabanlarının çok büyük veri miktarlarını
destekleyen mimarisiyle pazarda lider konumda olsa da yüksek maliyetleri en büyük
olumsuzluk olarak göze çarpıyor. Özellikle güvenlik anlamında kırılmaz sloganını
taĢısa bile Oracle Veritabanına sadece sahip olmak yüzde yüz güvenli olucağı
anlamına gelmez özellikle masum görünen yetki açıklıkları ile büyük veri kayıpları
yaĢanabilir. Bunları engellemenin yolları da uzmanlaĢmaktan geçer.
Bu çalıĢmada teorik olarak Oracle bilgisinin oluĢması ve uygulama ile pratiklik
kazanılsa da ilerleyen aĢamalarda daha geniĢ anlamlarda bilgiler ve uygulamalar
hedeflenmektedir. Bu hedefler, Oracle araçlarının çoğunu kapsayan bilgi birikime
sahip olmak, güvenlik açığını sıfıra indirgen yapılar oluĢturabilmek ve çeĢitli zarar
ve felaket senaryolarına karĢı veritabanı yedekleme gibi temel veritabanı yönetim
biçimleridir. Uygulama anlamında hedef, gerçek zamanlı veritabanları yönetip,
gerçek zamanlı olmasının vermiĢ olduğu sorumluluk ve hata yapma Ģansının
olmadığı durumlarda elde edilen bilginin pratiğe dönüĢtürülmesidir.
42
KAYNAKLAR
[1]
"Oracle
Temel
Özellikleri"
eriĢim
adresi:
http://www.halidkalkan.com/?tag=oracle-temel-ozellikleri [ Ziyaret Tarihi: 5 Kasım
2011]
[2] Oracle Corparation, Oracle Veri Tabanı Yönetim Sistemine GiriĢ, 2008
[3] DaĢdemir, YaĢar., 2004. Veritabanı Yönetim Sistemleri. Türkmen Kitabevi,
856 s, Ġstanbul.
[4] Kaya, Yalçın., 2008. C# ve T-SQL GeliĢtiriciler için Java ve Oracle, 228 s.
Ġstanbul
[5] Kiliçkaya Alpaslan, Oracle Ġçin Veri Tabani Yönetim Araci ve Performans
Analizi, Yüksek Lisans, TOBB Ekonomi ve Teknoloji Üniversitesi Fen Bilimleri
Enstitüsü, 2008
[6] “Veri Modelleri” eriĢim adresi: http://www.webbilgileri.com/Makaleler/68iliskisel-veri-modelleri.aspx [ Ziyaret Tarihi: 15 Aralık 2011]
[7] Kandemir C. Murat, Oracle Veritabanı ile Web Uygulamasının GeliĢtirilmesi,
Yüksek Lisans, Osmangazi Üniversitesi Fen Bilimleri Enstitüsü, 2002
[8] Kütükçü, Arzu, Mekansal Veritabanlarında Hızlı Sorgulama, Yüksek Lisans,
TOBB Ekonomi ve Teknoloji Üniversitesi Üniversitesi Fen Bilimleri Enstitüsü, 2009
[9] Türköz Tahsin, Oracle Veri Güvenliği Klavuzu, Kocaeli, Haziran 2009
[10] Irmak Segin, ĠliĢkisel Veritabanı Sistemleri ve Akdeniz Üniversitesi Sosyal
Bilimler Enstitüsü Öğrenci ĠĢleri Otomasyon Uygulaması, Yüksek Lisans,
Akdeniz Üniversitesi ĠĢletme Anabilim Dalı, 2004
43
TEġEKKÜR
Tez çalıĢmam boyunca değerli yardım ve katkılarıyla beni yönlendiren, sabır ve
özveriyle bana destek olan, kıymetli tecrübelerinden faydalandığım hocam YaĢar
DAġDEMĠR‟e sonsuz teĢekkürlerimi sunarım.
Ayrıca eğitimim süresince bana her konuda tam destek veren aileme ve bana
hayatlarıyla örnek olan tüm hocalarıma saygı ve sevgilerimi sunarım.
44
ÖZGEÇMĠġ
1986 yılında Diyarbakır‟da doğdum. Diyarbakır‟da bulunan Fatih Ġlköğretim
Okulunu, Birlik Lisesini bitirdim. 2006 yılında girdiğim Dicle Üniversitesi Eğitim
Fakültesi Fizik Öğretmenliği bölümünü 2 yıl okuduktan sonra , 2008 yılında Mustafa
Kemal Ünivetsitesi Mühendislik Fakültesi Bilgisayar Mühendisliğine yerleĢtim.
2005 yılından beri B sınıfı sürücü ehliyetim var.
45
Download