Oracle veri tabanına bağlantı - Diğer Webmaster bilgi bankası, knowledge base Webmaster Araçları

AnaSayfa > Diğer > Oracle veri tabanına bağlantı
Kategori: Diğer
Gönderen: Admin
Tarih: 2008-10-19
Puan: 6   Puan:6 | Katılımcı:4 | Katılımcı : 4
Okunma: 7109
  
 
1 puan 2 puan 3 puan 4 puan 5 puan 6 puan 7 puan 8 puan 9 puan 10 puan

Bilindiği gibi veri tabanları verilerin toplanması, sorgulanması ve üzerinde analizler yapılıp bağlantılar kurulması amacıyla hazırlanmış programlardır.

Eğer gerçek bir veri tabanı ile açılmış basit bir dosya arasındaki aşamaları adım adım yazacak olursak En basit veri tabanı open ile açtığınız bir dosyaya yazdığınız satır satır bilgilerdir. Girilen bilgileri buraya yazarsınız sonra okumak içinde dosyanın başına dönüp tekrar okursunuz.
Bunun bir adım ötesi bunların direkt erişimle binary olarak açılmasıdır. Bu şekilde direkt olarak kayıtlara erişebilirsiniz.
Kayıtların field'lara bölünmesidir.
Kayıtların silinebilmesi ve güncellenmesidir.
Kayıtların sıralanarak istenen kayda hızlıca erişim.
Kayıt boyu büyüdüğünden sıralama yapılacak alanın ayrı bir dosyada tutularak kayıt numarasına referans verilmesi. (Basit indeks)
Birden fazla alana göre indeksleme.
Indekslerin güçlendirilerek daha hızlı (Örnek binary search) yapılması.
Tablo ve kayıt yapılarının her defasında düzeltilmemesi için her türlü kayıt yapısının programla girilip field'ların kullanıcı tarafından belirlenmesi.
Bu tabloların üzerinde indekslerin oluşturulabilmesi.
Birden fazla indeks desteği
Transaction'ların oluşturulabilmesi. Yani bir ton iş yaptıktan sonra oluşan hatadan dolayı son girilen bilgilerin tamamiyle eski haline getirilebilmesi
Tabloların birer obje haline getirilerek tablo üzerinde ileriye ve geriye doğru kayıtlar üzerinde hareket yeteneği
Birden fazla tablo desteği.
Lock mekanizmaları. Birden fazla kullanıcının aynı tabloya ulaşabilmesi.
Client Server mimarisine uygun olarak veri tabanının bir makinede çalışarak diğerlerine hizmet vermesi.
Tablolar arası ilişkilerin kurulabilmesi. Örneğin referansı verilen kaydın diğer tabloda olması gerekliliği. Buna dair mekanizmalar.
Daha hızlı verilere erişim için sıkıştırma algoritmaları
SQL desteği. Yani select, insert, update, delete komutlarının birer string olarak programa gönderilerek bunun program tarafından çözümlenebilmesi ve tablolar üzerinden uygun kayıtların çekilebilmesi veya üzerinde değişiklik yapılmasının sağlanması.
Relation kurulması yani iki tablo arasında bir birine referans olarak verilen alanlar kullanılarak bir tablodaki kayıtlarla diğer tablodaki kayıtların bir araya getirilebilmesi. (Mesala sınıf ve öğrenci tablosunda öğrenci'nin sınıfı alanı ile sınıf tablosundaki sıra nosu kullanılarak tabloların birleştirilmesi ve öğrenci kayıtları ile beraber öğrencinin sınıf kaydınında getirilebilmesi= Inner join)
Bağımsız ilişkiler kurulması. (Mesala öğrenci ve not çizelgesinde öğrencinin not kaydı olmasa da o öğrenciye ait kaydın getirilebilmesi. = Left Join, Right Join, Outer join)
Stored procedure veya PL/SQL denen veri tabanının kendi üzerinde çalışan program parçalarına müsade etmesi. Böylece daha hızlı işlem yapabilme yeteneği.


Bütün bu adımlardan geçtikten sonra (ki bunları oturup pascal veya C'de yazmak yıllar alır.) gerçek bir veritabanı yazılımı ortaya çıkmış olur. Bütün bu işleri halledebilen yazılımlardan biri olan Oracle veri tabanı bir ana makinede çalışarak diğer uç birimlere hizmet verir. Bunu yapabilmek için network ortamına ihtiyaç duyar. Bu ortam üzerinde bir yazılım (TNSLISTENER) gelen mesajları veri tabanına aktarır. Veri tabanı ise gönderilen komutları analiz edere sonuçlarını yine network ortamı üzerinden uç birime aktarır. Bu işlem basitçe bu şekilde çalışır. Veri tabanına bağlantı yapmak istediğinizde bu isteğiniz değişik katmanlardan geçerek veri tabanına ulaşır. Program
Eğer VB veya Delphi gibi bir 4GL kullanıyorsanız VB için DAO veya RDO, Delphi için BDE arabirimi kullanılır.
ODBC veya varsa Native driver
SQL*NET yazılımı
TCP/IP protokolü
NETWORK (Lan veya Wan ortamı olabilir)


Üst kısım uç birimden network ortamına kadar olan kısımdır. Bundan sonraki kısım network'ten Verilere kadar olan kısmı içerir. NETWORK (Lan veya Wan ortamı olabilir.)
TCP/IP Protokolü
SQL*NET yazılımı
TNSListener
ORACLE veri tabanı yazılımı (RDBMS: remote database managment system)
Veriler.


Eğer veri tabanınızu kurduysanız ve servisler veya deamonlar çalıştırıldı ise server tarafı bitmiş demektir. Size lazım olan SID bilgisi veya INSTANCE adı verilen bölümün ismi (Genelde ORCL'dir.), bağlandığı port numarası (genelde 1521'dir.), makinenin adı veya IP adresi ve bu veri tabanı üzerindeki bir user'ın kod ve şifresi.

SQL*NET katmanında oracle client'ın kurulduğu yer mesala orawin ise ORAWINNETWORKADMINTNSNAMES.ORA isimli bir dosya mevcuttur. Bu dosyanın içerisinde verilen tanımlar aşağıdaki örnekteki gibidir.

Solar.world =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS =
(COMMUNITY = tcp.world)
(PROTOCOL = TCP)
(Host = 144.100.1.2)
(Port = 1521)
)
(ADDRESS =
(COMMUNITY = tcp.world)
(PROTOCOL = TCP)
(Host = 144.100.1.2)
(Port = 1526)
)
)
(CONNECT_DATA = (SID = ORCL)
)
)


Bu tanımda SOLAR ODBC tanımındaki connect string'e tekabül eder. Host ifadesinin karşılığında yazan 144.100.1.2 ifadesi bağlanılacak makinenin IP adresidir. ORCL instance'ın adıdır. Port numarası olarak 1521 ve 1526 verilmiştir. Eski sistemlerle uyumluluk için iki port numarası konmuştur. Ancak 1521 işi çözmektedir. Bu tanımı Start --> Programs --> Oracle For Windows içerisinde bulunan SQL Net Easy Configuration seçeneğinden de görsel olarak yapmak mümkün.

Control panel'de ODBC Administration seçeneğinden yeni bir tanım yapıp driver olarak Microsoft ODBC Driver for Oracle veya ORACLE73 seçeneklerinden birini seçin. Daha sonra Username olarak bir veri tabanı kullanıcısını seçin. Daha sonra bunun şifresini girin. Connect string olarak TNSNAMES.ORA'da verdiğiniz isim veya T:144.100.1.2:ORCL gibi tüm bilgiyi bir ifade ile verebilirsiniz. Buradaki T, TCP/IP'yi gösterir. Eğer server kendi makinenizde kurulu ise tcp/ip'ye geçmeden doğrudan bellekten kullanmak için 2 ifadesini kullanabilirsiniz (2:ORCL) ancak önemli not: CLIENT eğer 16 bit ise 32 bit olan server'a erişemezsiniz. 144.100.1.2 bağlanacağınız IP adresidir. ORCL ise Instance adıdır. Tabi ODBC'de yeni açtığınız bağlantı ifadesine bir de isim vermeniz gerekiyor. Bu arada Oracle'la beraber gelen ORACLE73 sürücüsünde sadece Tanım adı, Açıklama ve Connect String gerekiyor. Microsoft'un driver'ında ise ek olarak username kullanılıyor.

Program içerisinden Opendatabase(""',False,0,"ODBC;DSN=SOLAR;UID=SCOTT;PWD=TIGER;") yazarak veri tabanına bağlanabilirsiniz. Burada SOLAR ODBC'de yaptığınız tanıma verdiğiniz isimdir. SCOTT user adı, TIGER ise şifresidir. Delphi'de ise eğer native driver kullanacaksanız BDE ayarlarında native driver ile bağlantıyı seçip driver olarak oracle kullanılacaktır. Sonra username ve connect string sizden istenecektir. Bu arada bağlantı için TCP/IP kullanıldığını belirtmeniz gerekiyor. Bundan sonra ise program içerisinden bir Table veya Query objesi seçerek buna database name olarak BDE'de tanımladığınız yeni NativeOracleConnection' a verdiğiniz ismi kullanırsanız bağlantı işiniz çözülmüş demektir.

Arada başka birimler de olmasına rağmen temel olarak bağlantı bu şekilde yapılır. Verilere ulaşmak için aşılan katmanlar SQL server, INFORMIX ve SyBase için hep aynıdır. Ancak aradaki SQL*NET yazılımının adı ve TNSLISTENER servisinin adı farklıdır. Mesala INFORMIX için SQL*NET yerine I*NET mevcuttur. SQL server buna doğrudan INET demiştir. Temel yapı benzer olduğu sürece farklı olan sadece isim ve tanımlardır.



Yorumlar
Henüz Kimse Yorum Yapmamış, ilk yorumu siz ekleyin!
Yorum Ekleme Aparatı
Yorum Eklemek için lütfen sol menuden giris yapınız..
Toplam 0 yorum listelendi.