
Oracle Tanıtım
-İlişkisel Veritabanları ve ORACLE’ın temelleri.
I. ORACLE NEDİR?
ORACLE©, gelişmiş bir
ilişkisel veritabanı yönetim sistemidir (relational database management
system). Tüm ilişkisel veritabanı sistemleri gibi, büyük miktarda verileri
çok-kullanıcılı ortamda depolamayı ve güvenli bir şekilde erişimini yönetir.
ORACLE, veritabanı
yazılımları özellikle kurumsal alanda kullanılan yaygın bir veritabanı
sistemidir. ORACLE çok sayıda araçtan oluşur ve uygulama geliştiricilerinin
kolay ve esnek uygulamalar geliştirmesini sağlar. ORACLE’da diğer veritabanı
yönetim sistemlerinde olduğu gibi, stored procedure’lar, paketler, trigger’lar
gibi bileşenler yer alır.
II. TARİHİ
1979 yılında, Larry
Ellison öncülüğünde Relational Software Incorporated (RSI) adlı bir şirket
kurarak bugünkü ORACLE’ şirketini temelleri atıldı. Şirketin geliştirmiş olduğu
ilişkisel veritabanı yazılımı ORACLE olarak adlandırıldı.
1994 yılında, 4.
versiyonu pazara sunuldu. Bu yazılım o zamanlar Digital’ şirketinin VAX
sistemlerinde ve IBM VM üzerinde çalışmaktaydı. Ardından 1985 yılında önemli
değişikliklerle Version 5 tanıtılıdı. Bu versiyonda istemci/sunucu mimari ve
SQL kullanımı vardı.
İlerleyen yıllarda,
Oracle 7 çıktı ve uzun süre kullanıldı. Oracle 7, SQL*DBA araçları gibi
gelişmiş araçlara ve diğer veritabanı yönetim özelliklerine sahiptir.
Geniş bilgi için:
www.Oracle.com
III. ORACLE TEMEL
TERİMLERİ
Minik ORACLE
kursumuzda bazı terimleri bulacaksınız. İlgili diğer kurslarda da bu terimleri görebilirsiniz.
Ancak burada bir kere daha bazı terimleri açıklamakta yarar görüyoruz.
A. Ad-Hoc Query
Basit (bir kereliğine
yazılan) sorgulara verilen ad. Sorgu olarak belli verilerin listelenmesi
komutlarını örnek verebiliriz: SELECT * FROM MUSTERI gibi müşteri tablosundaki
bütün kayıtları listele komutu.
B. 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.
C. 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.
D. 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.
E. Checkpoint
Bellekteki verilerin disk
dosyalarına yazılması işlemi.
F. Database (veritabanı)
İlişkili verilerin
toplandığı veri kümesi. Ana veri düzenleme sisteminde veritabanı temeldir.
G. Data Dictionary
Tabloların oluşturduğu
bir veri sözlüğü. Veritabanı hakkında bilgi bu sözlükte yer alır.
H. DBA (Database Administrator)
Veritabanı
yönetiminden sorumlu olan kişi. Sistem yöneticisi ya da veritabanı yöneticisi.
I. Dynamic Performance
Tables (Dinamik Performans Tabloları)
Başlatılan kopyanın
performansını saklamak için kullanılan dinamik tablolar.
J. Function (Fonksiyon)
Belli bir işlemi
yerine getirmek için kullanılan komut kümeleri. Veritabanı programlamasında
sunucu tarafında yazılan kodlar fonksiyon ve yordam olarak yazılır.
K. Procedure (Yordam)
Belli bir işlemi
yerine getirmek için kullanılan komut kümeleri. Veritabanı programlamasında
sunucu tarafında yazılan kodlar fonksiyon ve yordam olarak yazılır.
L. Query (Sorgu)
Bir veritabanı
üzerinde çalıştırılan komut kümesi. Örneğin SELECT deyimiyle başlayan komutlar.
M. Schema (Şema)
Bir veritabanı nesnelerinin
şeması (planı).
N. 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).
O. Trigger
(Tetikleyici)
Yordam ve
fonksiyonların otomatik olarak başlatılması sağlayan mekanizma ya da yordamın
otomatik olarak çalışanı. Tetikleyiciler tipik olarak, tablo üzerinde INSERT,
UPDATE ya da DELETE deyimi işletildiğinde başlar.
IV. GÖZDEN GEÇİRME
1. Bir veritabanının
ilişkisel veritabanından farkı nedir?
2. Veritabanı
yöneticisinin görevleri nelerdir?
3. Veritabanı, yordam,
transaction nedir?
imp.exe sys/12345@ORCL FromUser=VEDAT ToUser=sys
file="yedek.DMP"
Import: Release 8.1.7.0.0 - Production on Cum Ağustos 29 10:10:05 2014
(c) Copyright 2000 Oracle Corporation. All rights reserved.
Import: Release 8.1.7.0.0 - Production on Cum Ağustos 29 10:10:05 2014
(c) Copyright 2000 Oracle Corporation. All rights reserved.
Personal Oracle8i Release 8.1.7.0.0 - Production
With the Partitioning option
JServer Release 8.1.7.0.0 - Production'ye baðlandı
Dışa aktarma dosyası EXPORT:V08.00.04 tarafından klasik dizin yolu aracılıðıyla yaratıldı
Uyarı: nesneler sizin tarafınızdan deðil, VEDAT tarafından dışa aktarılmış
WE8ISO8859P9 karakter kümesinde ve WE8ISO8859P9 NCHAR karakter kümesinde içe aktarma yapıldı
IMP-00015: nesne mevcut olduðundan sıradaki yönerge başarısız
"CREATE TABLE "ADRESLER" ("SIRA_NO" NUMBER(8, 0), "TIP" CHAR(1), "ADRES" VAR"
"CHAR2(150), "SEMT" VARCHAR2(20), "ILCE" VARCHAR2(20), "TELEFON" VARCHAR2(11"
")) PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 LOGGING STORAGE(INITIAL 1"
"4755840 NEXT 7364608 MINEXTENTS 1 MAXEXTENTS 121 PCTINCREASE 50 FREELISTS 1"
" FREELIST GROUPS 1 BUFFER_POOL DEFAULT) "
IMP-00015: nesne mevcut olduðundan sıradaki yönerge başarısız
"CREATE TABLE "kisi" ("ADI" VARCHAR2(15), "SOYADI" VARCHAR2(15), "BABAADI" "
"VARCHAR2(15), "ANAADI" VARCHAR2(15), "DOGTAR" VARCHAR2(10), "DOGYER" VARCHA"
"SEMT2" VARCHAR2(20), "ILCE2" VARCHAR2(10), "ISADRES" VARCHAR2(1"
...........
IMP-00015: nesne mevcut olduðundan sıradaki yönerge başarısız
"CREATE TABLE "DUR" ("DURUM_ADI" VARCHAR2(30), "DURUM_KODU" NUMBER(2, 0)) P"
"CTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 LOGGING STORAGE(INITIAL 40960 "
"NEXT 24576 MINEXTENTS 1 MAXEXTENTS 121 PCTINCREASE 50 FREELISTS 1 FREELIST "
"GROUPS 1 BUFFER_POOL DEFAULT) "
IMP-00015: nesne mevcut olduðundan sıradaki yönerge başarısız
"CREATE TABLE "DURUMU" ("DURUM_KODU" NUMBER(2, 0), "DURUM_ADI" VARCHAR2(40))"
" PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 LOGGING STORAGE(INITIAL 102"
"40 NEXT 10240 MINEXTENTS 1 MAXEXTENTS 121 PCTINCREASE 50 FREELISTS 1 FREELI"
"ST GROUPS 1 BUFFER_POOL DEFAULT) "
.....................................
Içe aktarma uyarılarla başarılı olarak sona erdi.
SYS.ADRESLER, SYS.DUR tabloları var mı? Verdiğin log, sanırım 2.
kez aynı dumpı import almaya çalıştıktan sonra oluşmuş, çünkü bu tablolar var
olduğu için import yapılmamış görünüyor. Veritabanına SYS kullanıcısı
ile bağlandıktan sonra,
SELECT COUNT(*) FROM ADRESLER;
dediğinde sonuç olarak görüyorsun?
Küçük bir uyarı: X bir kullanıcının tablolarını SYS scheması altına atmak doğru bir yöntem değil. Veritabanında VEDAT (veya X) diye bir kullanıcı açıp tabloları onun içine aktarmam daha doğru olurdu
SELECT COUNT(*) FROM ADRESLER;
dediğinde sonuç olarak görüyorsun?
Küçük bir uyarı: X bir kullanıcının tablolarını SYS scheması altına atmak doğru bir yöntem değil. Veritabanında VEDAT (veya X) diye bir kullanıcı açıp tabloları onun içine aktarmam daha doğru olurdu