2.1 VERİTABANI NEDİR?
Belli
bir alanda birbirleriyle ilişkili olarak düzenlenmiş tablolardan oluşan veriler topluluğudur. Aynı
zamanda genel amacı bilgi saklama, depolama ve isteğe göre kullanıcıların
bilgiyi yeniden düzenlemek ve güncelleştirmeye yarar. Bilgi, birey ya da
organizasyon için önemli olan herhangi bir şey olabilir.
İyi bir veritabanının özellikleri:
·
Veriler hızlı ve kolay
girilebilmeli
·
Güvenli bir şekilde
saklanmalı
·
İstenildiği şekilde ve
kolay sorgulanmalı
2.2
NEDEN VERİTABANI?
Niçin
database kullanırız? Bunun avantajları nelerdir?
Database’
in avantajları sorular ve cevaplar sisteminin içeriğine göre değişir. Yani tek
ya da çok kullanım sağlayan sistemlerdir. (single-multi user)
Single
user sistemleri ele alalım:
Bazı
veritabanları küçük ve basit olarak tanımlanır. Fakat sağladığı avantajlar
basit ve küçük değildir. Veritabanının avantajı sistemli bir kayıt tutma ve
bunu kolay bir biçimde sunmasıdır. Bunlardan bazıları;
·
Herhangi bir evrak
saklamaya gerek yoktur.
·
Makineler bilgileri
insanlardan daha hızlı güncelleştirebilirler. Yani kısaca hızlı ve zaman
kaybına yer vermeden araştırma yapabilirler.
·
Tercih, zaman ve
bilgiler istenildiği zaman görülebilir.
Birçok amacından çıkmış dosyaların elemesini rahatlıkla
yapar.Makineler bu işi her zaman insanlardan daha hızlı ve iyi yapar.
Çok
kullanıcılı sistemler, tek kullanıcılı sistemlere göre getireceği yararlar bakımından tabiiki
daha geniş ve karmaşık yapıya sahiptir.
Bununla
beraber üst düzeydeki bir avantajı da bilgilerin kontrollerini tek bir noktadan
yapabilmesidir. Buna benzer durumlarda database sistemi olmayan tipik formlar
ve bazı özel dosyalar sıklıkla kaset ve disklerde saklanır. Bu yüzden
bilgilerin kontrolü sistematik açıdan zordur.
· Verilerin merkezi kontrolü sağlanır.
· Veri tekrarı
azalır.
· Tutarsız (hatalı)
bilgiler önlenir.
· Verinin paylaşımı
sağlanır.
· Bütünlük
sağlanır.
· Genel veya özel
raporlar alınabilir.
2.3 VERİ TABANININ BİLGİSAYARDAKİ AVANTAJLARI:
Veri tabanının bilgisayarda sağladığı avantajları
sıralayalım:
·
Ortaklaşa Kullanım:
Çekmecelerdeki bir kartotekse, aynı anda iki kişinin yerlerinden kalkmadan
bakabilmesi adeta olanaksızdır. Ayrıca, yoğun çalışan kişilerden bazıları
işyerlerindeki dosyaların yüklenerek ellerinde taşırlar. Bilgisayar ortamında,
birden fazla kişi farklı terminallerden
aynı veriye erişebildiği gibi, evde çalışması gereken kişinin dosyalarının eve
taşımasına gerek yoktur.
·
Yerden Tasarruf: kağıt,
dosya, klasör gibi çok yer tutan veri depolama ortamlarını büyük ölçüde ortadan
kaldırarak yerden tasarruf edilir.
·
Kolay Güncelleştirmek:
örneğin gerçekleşen bir siparişin
bilgilerini anında ve otomatik olarak stok ve müşteri yansıtmak mümkündür.
·
Kolay Erişim: bir
veriyi bulmak sıralamak, istenilen bilgileri ve toplamlarını yazıcıdan almak
kartotekse örneği ile kıyaslanmayacak kadar kolaydır.
·
Emniyet: girilen
verilen geçerliliğini kontrol etmek, bazı kişilere erişimde kısıtlamalar koymak
mümkündür.
· Analiz İmkanı: özellikle üretimde çok
büyük bir avantajdır. Fakat maalesef genelde, bilgisayardan sadece “takip” ten (ne gitti, ne geldi)
yararlanılmaktadır.
2.4 VERİTABANI
TASARIMI
Adım1:
Veritabanının amacını belirlemek.
·
Bu adımda ne tür
verilerin saklanacağı belirlenir.
Adım2:
Tablolar tasarlanır.
·
Belli bir amaca sahip
olunduktan sonra verilen ayrı ayrı konularda tablolara bölünür.
Adım3:
Alanlar belirlenir.
·
Alan, belli bir veri
kolonunu belirtir. Alan belirleme işleminde bir tabloda gerekli olan veri
alanları belirlenir.
Adım4:
İlişkiler belirlenir.
·
Tablolar arasında
ilişkinin hangi veri alanları üzerinden kurulacağı kararlaştırılır.
1.
ADIM: Veritabanının amacını belirlemek.
Tanımlama adımında öncelikle veritabanını kullanacak olan
kullanıcılar ile görüşülür. Ne tür verilerin kullanıldığı ve bunların hangi
evraklardan (olaylardan) kaynaklandığı araştırılır. Özellikler kullanıcıların
hangi raporlara gereksinim duyduğu araştırılır.
2. ADIM: Tabloları tanımlama.
Tabloların tanımlanması, veritabanı tasarımının en önemli
aşamalarından birisidir. Tabloların tasarımı (yapısı), verilerin
sınıflandırılmasını ve daha sonra veritabanından alınacak raporları etkiler.
Bunun dışında verilere erişimi doğrudan olanaklı kılacak ya da kısıtlayacak bir
oluşumdur.
3. ADIM: Alanların tanımlanması.
Veritabanı tasarımında; ilgili bilgilerin tablolarının
tanımlanmasının ardından tablolardaki bilgilerin ayrıntıları tanımlanır.
·
Tablonun alanlarının
tanımlanması için öncelikle tablonun özellikleri ve tablodan beklenilenlerin ne
olduğu belirlenmelidir. Burada, göz önüne eklenecek kayıt
düşünülmelidir.
·
Tablonun bir alanı,
tablo ile mutlaka ilgili bir veri olmalıdır. Tabloda gereksiz veri alanına
kesinlikle izin verilmemelidir. Tablo alanlarına verinin en basit hali konur.
Hesaplanmış bir verinin bir alanda yer almasına gerek yoktur.
·
Ana anahtar alanı
(Primary Key), belirlenir. Bu tekrarlanmayan (Unique) alan
kayıtlara erişimde ve diğer tablolarla ilişki kurmada kullanılır.
·
Yabancı anahtar alan
(Foreign Key) belirlenir. Diğer tablodaki ana anahtarları
gösteren kolonlardır. Genellikle ilişki anahtarı olarak da adlandırılır.
Bütünlük kuralı her yabancı anahtarın diğer tabloda bir ana anahtarı göstermesini
gerektirir.
4.
ADIM: İlişkilerin tanımlanması.
Bir veritabanı içersinde çok sayıda tablo tanımlanır. Bu
tablolar raporlama gibi bir amaç için bütünleşmek zorundadırlar.
Bu bütünleşme veritabanının içindeki tablolar arasında kurulan ilişkilerle
sağlanır.
Veritabanı içindeki ilişkilerin tanımlanması ile;
tabloların birçoğundan yararlanarak anlamlı veri bütünlüklerinin belli kurallar
içinde oluşturulması sağlanır.
Birçok raporda, ekran görüntüsünde ya da veri giriş
ekranında birden çok tablodan veriler kullanılması gereği;
tablolar arasındaki ilişkinin önemi ortaya çıkarır.
2.5.
İLİŞKİSEL VERİTABANI
2.5.1.VARLIKLAR VE İLİŞKİLER (Entities and Relationship)
“Entity”- varlık kelimesi veritabanında gösterilen
herhangi bir farklı objeyi (veritabanı dairelerinde kullanılan) tanımlar. Bu
ana varlıklara ek olarak (sağlayıcılar) bu varlıkları birbirine bağlayan
“İlişkiler” de vardır. Bu ilişkiler şekil 2-1.’ de bağlayıcı çizgiler ve
karolar içinde belirtilmiştir.
Bu ilişkilerin hepsi çift yönlüdür.
·
Sağlayıcı, bölümleri
başka sağlayıcılardan alır.
·
Bölümler sağlayıcıları,
o bölümleri sağlayan sağlayıcılardan alır.
Bu
ilişkideki en önemli nokta, ana varlıklar oldukları gibi aynı zamanda verinin
parçaları da olmasıdır. Bu yüzden veritabanında ana varlıklar belirtildiği gibi
belirtilmelidirler.
Şekildeki önemli noktalar;
1.
Şekildeki ilişkiler iki
çeşit varlık göstermesine rağmen buna ikili ilişkiler denir, diğer bütün ilişkilerin
de öyle olması gerektiği anlamına gelmez. Örnekte üç varlık çeşidinin bulunduğu
bir ilişki de var. (sağlayıcı, bölüm ve projeler) bunun yorumu belirli
sağlayıcılar, belirli projelere, belirli bölümler sağlar.
2.
Şekil aynı zamanda sadece bir varlık çeşidi de
gösteriyor. Parts, belirli bölümler ilişkisi (bills of materials) denen diğer
bölümlerden oluşan ilişkidir.
Genel anlamda iki ayrı ilişkide olan varlık çeşitleri
seti birbirine bağlar.
İlişkisel veritabanında tablolar arasında ilişki kurularak
anlamlı verilere kolayca erişilir. Tablolar arasında verileri bağlamak için üç
tür ilişki tasarlanır. Bu ilişki biçimleri şunlardır:
·
Bir-e-çok İlişki (One
to Many)
·
Çok-a-Çok İlişki (Many
to Many)
·
Bir-e-Bir İlişki (One
to One)
Bir-e-Çok İlişki;
1- Bir-e-Çok
ilişkiler, ilişkisel veritabanında çok yaygın biçimde yer alırlar. Bu ilişkide
bir tablonun bir kaydına karşılık diğer tabloda çok sayıda kayıt vardır.
2- Bir kaydın alt
kayıtlarında kullanılırlar.
3- İlişkide
genellikle bir ana tablonun ana anahtarına karşılık alt tablonun eş değer alanı
(yabancı anahtar) gelir.
Çok-a-Çok
İlişki; bu tür ilişkide birinci tabloda yer alan çok sayıda kayda karşılık,
ikinci tabloda yine çok sayıda kayıt karşılık gelir.
Bir-e-Bir
İlişki;bu ilişkide birinci tablonun bir kaydına karşılık ikinci tabloda bir
kayıt vardır. Aslında bu tür bir ilişki, tablolar arasında ilişkiden öte sadece
bir uzantı ya da eklemedir. Çünkü Bir-e-Bir ilişki kayıtların birbirinin devamı
ya da bir tablo içindeymiş gibi kullanılmasını sağlar.
2.5.2. TASARIMIN GÖZDEN GEÇİRİLMESİ
Bir
veritabanı oluşturma aşamasında; tablolar, alanlar ve ilişkiler belirlendikten
sonra veritabanı tasarımı bitmiş olur. Ardından tablolara verilerin girilmesi
ya da diğer uygulamalardan alınması (import) gerekir.
3-VERİTABANI PROGRAMLARI:
3.1. ACCESS VERİTABANI
Bir
işle uğraşıyor, bir ofisi yönetiyor veya yalnızca günlük işleri izliyor bile
olsanız, kullanmanız gereken yığınlarca bilgi vardır. Bu bilgileri saklamak
için en uygun yer masanızın üstüdür. Telefonun yanındaki klasörün içinde
tuttuğunuz kağıt yığınını masanızın tümünü kaplayana kadar koruyabilirsiniz
belki. Ancak, gerek duyduğunuz tüm bilgileri masanızda tutmatı sürdürürseniz,
kısa zamanda masayı kaybetmek gibi bir sorunla karşılasırsınız.
Access’i
kullanarak miktarı ne olursa olsun her türlü bilgiyi düzenleyebilir,
depolayabilir ve fareyi birkaç kez tıklayarak gerek duyduğunuz bilgiye
ulaşabilirsiniz.
Veri,
saklamak ve gerektiğinde başvurmak istediğiniz bir şeydir. Access’te metinler,
sayıları, tarihler veya resimler veri olabilir. Örneğin şekerleme satıyorsanız
şekerlemelerin adlarını, resimlerini, verilen siparişleri, kutuların fiyat ve
miktarları ile satış tarihlerini depolayabilirsiniz.
Veri
tabanı bir takım ortak özelliklere sahip veriler topluluğudur. Örneğin, bir çok
işletme kendisiyle ilgili verinin tümünü şirket veri tabanı olarak görür.
Veritabanları, tüketici gruplarına eğitim kurumlarına ve hükümet kuruluşlarına
da bilgilerin düzenlenmesinde yardım eder. Tek tek kişiler veya aileler bile
veri tabanlarından yararlanabilir. Veri tabanları, bilgilerin daha yararlı
olmaları için düzenlenmesinde kullanılan bir yoldan başka bir şey değildir.
Çoğu
durumda, veri girmenin en kolay yolu form kullanmaktır. Access’te veri girişi
için kullanılan formlar, ofislerde gördüğümüz kağıt formlara benzer. Siz form
üzerine verileri yazarsınız, Access’te onları bir tablo içinde depolar.
Veritabanı tablosu,
aynı konudaki verilerin kayıtlar (satırlar) ve alanlar (sütunlar) halinde
depolanmış bir toplamıdır. Kayıt ise bir derginin abonelik kartındaki bilgi
veya bir telefon defterindeki liste gibi birbiriyle ilgili bilgiler grubudur.
Kayıt alanlardan oluşur. Her
alan ayrı bir veri kümesi içerir. Örneğin bir derginin abonelik tablosu,
abonenni adı için bir aln, adres için başka bir alan ve veri tabanı
tasarımcısının bir aboneyi tam olarak tanımlarken gerekliliğine inandığı başka
bir çok alan içerebilir.
3.1.1.
ACCESS SORGU TÜRLERİ:
n Seçme Select
n Çapraz Crosstab
n Tablo
yapma Make-Table
n Güncelleştirme Update
n Ekleme
Append
Son 4 tanesi eylem sorgusu
biçimindedir.
3.2. ORACLE VERİTABANI:
İlişkisel
veri tabanı yönetim sistemleri (relational database management system –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 (integrity) içerisinde
tutulabildiği ve birden fazla kullanıcıya aynı anda bilgiye erişim imkanının
sağlandığı programlardır. Oracle da, bir ilişkisel veri tabanı yönetim sistemidir.
Oracle ın temel özellikleri
şunlardır:
- Büyük verileri tutabilmekte ve
bu verilerin depolanma alanlarının ayarlayabilme imkanı ve bunları kontrol
etme imkanı vermektedir.
- Aynı anda birden fazla
kullanıcıya (Oracle8, onbinlerce kullanıcıya hizmet verebilmektedir)
verilerin bütünlüğünü bozmadan ve karışıklığa meydan vermeden hizmet
verebilmektedir.
- Sistem performansını en iyi şekilde
kullanabilmektedir.
- Günün 24 saati durmadan,
günler, haftalar hatta aylar boyu çalışabilmektedir.
- İşletim sistemi, veri erişim
dilleri ve ağ (network) iletişim
protokolleri standartlarıyla uyumludur.
- Yetkisiz erişimlerin
engelliyebilme ve kontrol edebilme imkanları sunmaktadır.
- Bütünlüğü (integrity) veri
tabanı düzeyinde sağlayabilmektedir, böylece daha az kod yazılmaktadır.
- İstemci/sunucu (client/server)
mimarisinin bütün avantajlarını kullanılabilmektedir.
3.3. PROGRESS VERİTABANI:
Bilgisayar
programları, seçilen bir bilgisayar dilinde, bir konu ile ilgili verilerin ve
değerlendirildiği komutlar topluluğudur. Programlamayı öğrenirken bir
programcının ilgilendiren gerekli olan konuları aşağıdaki gibi sıralayabiliriz.
1.
Girilecek verilerin
yapılarını tanımlayabilme (veri tabanı).
2.
Kullanıcı ile irtibatı
sağlayan görüntüsünü (ekran dizaynı) ve
çıktıların şemalarını (rapor dizaynı tasarlayabilmek)
3.
Bu iki şık arasındaki bağlantıları gerektiren
program parçalarını yazabilmek.
Progress dördüncü
kuşak bir dil olduğu için yukarıda belirtilen
üç şıkkı gerçekleştirmek çok
basittir.
Veri
tabanı tasarımı ve tanımı için data dictionary hizmet programı kullanılır.
Ekran
dizaynları ve bağlantıları, Smart Objects (programlanabilir nesneler)
tanımlamaları onları programlama
işlemini gerçekleştiren AppBuilder (uygulama geliştiricisi) hizmet
programı ile sağlanır. Çıktılar için ise Report Builder (Çıktı formları
düzenleyicisi) kullanılır.
Üretilen programlar da
4GL komutlarını kullanarak düzeltilebilir veya geliştirilebilir.
Netice olarak biz; veri tabanı, basit nesne ve
smart Objects kavramlarını iyi öğrenerek buna da 4GL komutalarını eklersek
progress ile programlamayı öğrenmiş oluruz.Müşterimizin yaptığı bir ödeme,
doğal olarak müşteriyi etkiler kartoteks devrinde, bu ödemeyi müşterinin
borcundan elle düşüyorduk. Bilgisayarda ise bunu otomatik olarak yapılması
gerekir. Bunun için, müşteri bilgilerinin müşteri hareket bilgileri ile
bağlantılı olarak tanımlanması gerekir.
Diğer bir değimle, Veritabanımızın iyi tanımlarsak, programlamayı çok basit bir
şekilde halledebiliriz.
Örneğin, tasarımı tamamlanmış bir
veri tabanında, aşağıdaki kısa program:
·
Tüm müşterileri
listeler (müşteri numarası, unvanı)
·
Kullanıcının gireceği
birkaç harfle başlayan müşteriyi bulur gösterir.
·
Bu müşteri ile ilgili
tüm sipariş bilgisini gösterir (sipariş ana bilgiler: sipariş numarası sipariş
tarihi, gerçekleşen tarih vs.)
·
Bu siparişle ilgili tüm
detay bilgilerin gösterir (sipariş detay bilgileri: stok numarası, fiyatı,
indirim oranı, miktarı, tutarı vs.)
For each müsteri:
Display musno isim.
End.
Prompt-for “aranan müsterinin ilk
harflerini giriniz: “ isim with no-Label
Find first müsteri where isim
begins input isim.
Display isim.
For each sipariş of müşteri:
display siparis.
display siparis.
For each stok of sipariş:
Display stok-no fiyat miktar
indirim tutar.
End.End.
4- ORACLE VERİTABANI
4.1 SQL, PL/SQL, SQL*PLUS:
SQL, ilişkisel veri tabanlarındaki bilgileri sorgulamak
için kullanılan dildir.
SQL, bütün kullanıcıların ve uygulamaların veri tabanına
erişmek için kullandıkları komutlar
bütünüdür. Uygulama programları ve veri tabanı araçları kullanıcılara çoğu
durumda SQL kullanmadan veri tabanına erişim imkanı sunmaktadırlar fakat bu
uygulamalar da geri planda SQL kullanmaktadırlar.
SQL, ilişkisel veri tabanları ile uygulamaların
diyalogunu sağlamaktadır. SQL, temelde verilerle mantıksal seviyede
çalışmaktadır. Yani bir tablodan birkaç kayıt seçebilmek için, o kayıtları
seçebilecek bir şart belirtilir. Şarta uyan bütün kayıtlar bir basamakta gelir
ve bunlar kullanıcıya gösterildiği gibi, bir başka SQL’e veya bir uygulamaya
da gönderilebilir. Kayıtların tek tek
nasıl geldiği ve fiziksel olarak veri tabanının neresinde ve nasıl tutulduğu
ile SQL ilgilenmemektedir.
SQL komutları ile ;
nVeri sorgulama.
nBir tabloya kayıt ekleme,
değiştirme ve silme.
nVeri tabanı nesnelerini (Database
Objects ) yaratma, değiştirme ve silme.
nVeri tabanına ve nesnelerine
erişimi kontrol etme.
nVeri tabanı bütünlüğünü ve
tutarlığını sağlama işlemlerini yapabilmektedir.
PL/SQL, Oracle’ ın SQL komutlarını yapısal dilere ait
özelliklerin (Begin, End, Loop , For, if, Elsif vb.) eklediği kendi standardı
olan bir dildir.
SQL*Plus, SQL ve PL/SQL komutlarının kullanılabildiği
Oracle ürünüdür.
SQL*PLUS ile;
SQL*Plus, Oracle veritabanında sorgulama yapmak ve SQL
komutlarını çalıştırmak için kullanılan bir araçtır. SQL*Plus’ da SQL
komutlarının yanısıra PL/SQL komutları da kullanılabilmektedir.
SQL*Plus ile
yapılabilecek şeyler aşağıda sıralanmıştır;
nSQL komutları yazılabilir,
kaydedilebilir, tekrar çağrılabilir ve çalıştırılabilir.
nSorgu sonuçları rapor alınacak
şekilde düzenlenebilir.
nTablonun yapısı listelenebilir.
nOracle veri tabanları arasında
kopyalama yapılabilir.
PL/SQL ‘e giriş;
PL/SQL, yapısal dillere ait özelliklerin standart SQL’ e
eklenmesiyle ortaya çıkan Oracle’a has bir dildir. PL/SQL, ORACLE firmasının
piyasaya sürdüğü her üründe en önemli bir yere sahiptir. Kullanıcılar PL/SQL’ i
kullanarak birçok yeni özellikler katmaktadırlar. Bunlar arasında;
n PL/SQL tabanlı kaydedilmiş yordamlar (stored procedures) ve veri tabanı
tetiklemeleri (triggers) ile önemli iş kurallarını programlamak.
n Oracle Developer /2000 ile güçlü ve kolay kullanılabilir GUI ortamlarla
programları detaylandırmak ve daha rahat kontrol etmek
n Oracle tabanlı uygulamalarda nesne-tabanlı (object-oriented) tasarımlar
yapma
n Web sayfalarından Oracle veri tabanlarına link yapmak gibi.
PL/SQL’ in belki de en önemli özelliği istemci-sunucu
(client-server) ortamları tasarlama ile ağ (network) üzerinde dağıtık işlemler
yapma ve transactionlar çalıştırma imkanı sunmasıdır.
PL/SQL dili Ada dilinden sonra tasarlanmıştır. PL/SQL’ de
en gelişmiş yordamlar dillerde olan aşağıdaki özellikler bulunmaktadır:
· Birçok veri tipi
· Blok yapısı
· Şartlara bağlı ve bağlı olmayan
kontrol cümleleri
· Birçok döngü (loop) tipi
· Hata durumlarında kullanılabilecek
aykırı durumlar (exceptions)
· Kullanıcı tarafından tanımlanabilen
nesneler
PL/SQL, SQL cümleleri blok yapılarının, şart
cümlelerinin, döngülerin vb. diğer özelliklerin eklenmesiyle oluşmuş bir
dildir.
4.2. GENEL YAPISI:
Oracle
de veri tabanı yönetimi denince, veri
tabanı nesnelerinin yaratılması, değiştirilmesi ve silinmesi; veri tabanının
durumunun kontrol edilmesi (user, session sayılarının, tables page lerinin boş
alanlarının, indeks ve kısıtlamalarının durumlarının kontrol edilmesi, vb.) ve
yedeklerin alınması gibi konular anlaşılmaktadır. Bütün bunlar veri tabanı
yöneticisinin (DBA; database Administrator)
görev ve vazifesidir.
Oracle
veri tabanının, işletim sistemi tarafından bakıldığında, biri fiziksel diğeri
mantıksal olmak üzere iki bölümü vardır. Fiziksel bölüm, işletim sisteminden
görünene kısımdır. Bunlar data file (veri dosyası), Control File (kontrol
dosyası) Log file dan (log dosyası)
oluşmaktadır. Mantıksal bölüm tablespace, tablo (table), görüntü (view) sıra
sequence, eş anlam (synonym) kullanıcıdan (user) oluşmaktadır.
Fiziksel
bölüm işletim sistemi tarafından görülebilmesine rağmen mantıksal bölüm ancak
Oracle 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.
Oracle
veri tabanındaki her nesnenin bir sahibi (ait olduğu user) vardır. Her user
(kullanıcı), bir veya daha fazla tablespace’ e sahip olabilmektedir. Her nesne,
ait olduğu user’ ın herhangi bir
tablespacesinde (mantıksal olarak ) bulunur. Her tablespace de, kendisine sahip
olan user’ın nesnelerini tutmak için işletim sisteminde bir veya daha fazla
datafile’a sahip olabilmektedir.
Sonuç
itibariyle, veri tabanındaki her nesnenin bir user’ı (sahibi) vardır ve bu
nesneler mantıksal olarak o user’ın
sahip olduğu tablespace’lerin
herhangi birinin (hangisi olduğu komutlarla öğrenilebilir) içerisinde, fiziksel
olarak da user’ın sahip olduğu tablespace’i herhangi bir data file’ında
bulunur. Fakat o data file’ın içerisine işletim sisteminden bu nesneyi bulmak
için bakılamaz. Bu nesnenin sahibi ve mantıksal yeri “DML” komutları ile
bulunabilmektedir.
4.2.1.KONTROL DOSYALARI (CONTROL
FİLES)
Oracle veri tabanı ile ilgili olan bilgiler kontrol dosyalarında
(control Files) tutulmaktadır. Kontrol dosyalarında, veri tabanının adı, veri
tabanının yaratılış tarihi, dosyaların işletim sisteminde nerde olduğu,
dosyaların geçerli olup olmadığı gibi bilgiler bulunmaktadır.
4.2.2. VERİ BLOKLARI (DATA BLOCKS)
Oracle,
diski daha etkin kullanabilmek için işletim sistemine ait bazı konularla da
ilgilenmektedir. Bunlardan birisi veri bloklarıdır (Data Blocks). Oracle veri
tabanında, verilerin tutulduğu en küçük birime veri blokları denmektedir. Bir
veri bloğu işletim sistemindeki veri
dosyalarının belirli bir sayıdaki baytı (byte) kadar uzunluğa sahiptir. Bu
uzunluklar, işletim sistemindeki blok uzunluklarından farklı olabilir. Bir
tablespace yaratırken, işletim sisteminde belirttiğimiz veri dosyasının
bulunduğu yer oracle tarafından kendi blok yapısına göre düzenlenir. Tablespace yar4atırken beklenen süre bu
süredir. Bu bölümün yönetimini, oracle işletim sisteminden almıştır. Veri
dosyasının tamamı dolu olmasa bile,
işletim sistemi veri
dosyasına ayrılan yeri
dolu olarak görmektedir. Veriler, veri bloklarında tutulduğundan dolayı, veri
tabanında nesneler için kullanılan yer bayt (byte) sayısı olarak görülebildiği
gibi, blo9k sayısı olarak da görülebilmektedir.
4.2.3. GENİŞLEMELER (EXTENDS):
Oracle
veri tabanın da, nesnelerin büyümek
için aldıkları yerlere genişleme
(extend) denmektedir. Genişlemeler, bir veya daha fazla veri bloğundan
oluşmaktadır. Genişlemeler ile veri blokları arasındaki ilişkiyi şekil 4-2.3’
deki gibi resmedebiliriz:
Genişleme
(extend)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Şekil 4-2.3.
Genişlemeler
4.3 FORMS SERVER
Form, kullanıcıların database’ de
saklanan veri tablolarına kolayca erişmelerini sağlayan bir uygulamadır. Yeni
formlar oluşturarak ve veriler sorgulanarak veri girişi yapılabilir. Form, 3
bölümden oluşur:
1- Items (alanlar)
2- Canvases (Kanvaslar)
3- Blocks (Veri blokları)
Items, veri değerlerini simgeleyen
nesnelerdir.
Canvas, görsel nesnelerin düzenlendiği
tuvaldir.
Blok, alanların mantıklarının ve
tabloların bulunduğu bölümdür.
5-
PROGRAMIN UYGULAMA – GELİŞTİRME SAFHALARI
Program-5.1.
rezervasyon.sql
create
table rezervasyon
(rno
number(4),
adi
varchar2(15) not null,
soyadi varchar2(15)
not null,
uyrugu
varchar2(2),
tel
varchar2(14) not null,
adres
varchar2(40),
meslek
varchar2(10),
G_tarihi
date not null,
C_tarihi
date not null,
R_tarihi
date not null,
oda_no
number(3),
oda_tipi
varchar2(8),
oda_fiyati
number(11),
yetkili
varchar2(15) not null,
odeme_sekli
varchar2(10) not null,
mno
number(4));
Program 5.1.’ de
rezervasyon kayıt işlemine ait sql kodu görülmektedir.
Program-5.2 rez_iptal.sql
create
table rez_iptal
(rno
number(4),
adi
varchar2(15) not null,
soyadi
varchar2(15) not null))
Program-5.2. ‘de
oteldeki rezervasyonunu iptal ettirmek isteyen müşterilerin kayıtlarının
silindiği sql kodu görülmektedir.
Program-5.3. odalar.sql
create
table odalar
(oda_tipi
varchar2(8),
fiyat
number(11),
kapasite
number(2))
Program-5.3.’te
odalara ait bilginin bulunduğu sql kodu görülmektedir.
Program-5.4.
oda_kap.sql
create
table odakap
(kapasite
number(2),
oda_tipi
varchar2(8))
Program-5.4.’te
oda kapasitesi ve oda tipine ait bilgiler bulunmaktadır.
Program-5.5 m_cikisi.sql
create table
m_cikisi
(rno
number(4),
mno
number(4),
adi
varchar2(15) not null,
soyadi
varchar2(15) not null,
oda_no
number(3),
fatura
number(11))
Program-5.5’te
otelden ayrılmak isteyen müşterilerin oteldeki kaydının silinmesi için yazılmış
sql kodu görülmektedir.
Program-5.6
m_bilgisi.sql
create
table m_bilgisi
(rno
number(4),
mno
number(4),
0adi
varchar2(15) not null,
soyadi
varchar2(15) not null,
adres
varchar2(40),
tel
varchar2(14),
G_tarihi
date not null,
C_tarihi
date not null,
oda_no
number(3),
oda_tipi
varchar2(8),
yetkili
varchar2(15) not null,
odeme_sekli
varchar2(10) not null)
Program-5.6’
da otelde kayıtlı olan müşterilere ait bilgilerin bulunduğu sql kodu
bulunmaktadır.
Program-5.7
fatura.sql
create
table fatura
(mno
number(4),
oda_no
number(3),
kald_gece_say
number(2),
kisi_say
number(2),
yatak_fiy
number(11));
Program-5.7 ‘de otelden ayrılmak isteyen
müşterilere ait faturanın çıkması için yazılmış sql kodu bulunmaktadır.
Hiç yorum yok:
Yorum Gönder