Oracle Datafiles

Datafiles:

  • Oracle veritabanının fiziksel yapısını oluşturan bileşenlerden biridir ve en çok yer kaplayanıdır.
  • İçerisinde Oracle veritabanının bütün tablo, index gibi mantıksal yapılarının fiziksel verileri tutulur.
  • Her Oracle veritabanı, bir veya daha fazla datafile a sahiptir.
  • Bir datafile, sadece bir veritabanı ile ilişkilidir.
  • Bir veya daha fazla datafile, mantıksal ve ilişkisel veritopluluğu anlamına gelen tablespace leri oluşturur.
  • Bir oracle instance ı, veritabanından bir tablo veya indexle ilgili işlem yapmak istediğinde önce Oracle memory e bakar. Cache de bu bilgiyi bulamazsa veri fiziksel olarak datafile dan(diskten) okunur ve hafızaya çekilir.
  • Veriler üzerinde yapılan değişiklikler datafile lara fiziksel olarak hemen yansıtılmaz.
  • Her değişiklik, anında fiziksel olarak datafile lara yansıtılsaydı çok fazla I/O işlemi olur ve performans çok çok kötü olurdu.
  • Database Writer Process adı verilen oracle bileşeni, database buffer olarak bilinen memory alanlarında bulunan dirty dediğimiz üzerinde değişiklik yapılmış verileri  fiziksel olarak diske(datafile dosyalarına) yazmaktan sorumludur. (Bu konunun üzerinde daha sonra durulacak)
  • Datafile lara doğrudan müdaheleler yapılamaz. Bu dosyalar, Tablespace ler üzerinde yapılan değişikliklerle yönetilebilir. Yani sadece Tablespace perspektifinden bakılınca anlamlı hale gelir.
  • Uzantısı “.DBF” dir.
  • Veritabanınızdaki datafile ları görmek isterseniz;  SELECT name FROM v$datafile; komutunu kullanabilirsiniz.

Görüşmek Üzere..


Oracle Control Files

Control file, oracle veritabanının durum bilgilerinin saklandığı ve her veritabanı için en az bir tane bulunması gereken binary yapıdaki, .ctl uzantılı dosyadır.  Control file, veritabanı için en önemli dosyalardan biridir belki de en önemlisidir. Çok önemli bir misyona sahip olduğu içine genelde bir kaç kopyası ile beraber tutulur (genellikle 3 kopya).  Bu kopyalar farklı disklerde tutularak, diskten kaynaklanan hatalarda servis kayıplarının önüne geçilmiş olur. Bu yönteme multiplexed (çoğullanmış) control file adı verilir.  Veritabanındaki fiziksel durum değişikliklerinde control file ve kopyaları birlikte güncellenir. Control file, veritabanı create edildiğinde otomatik olarak default değerlere göre oluşturulur.

Control file yapısının içerdiği bazı bilgiler şunlardır,

  • Veritabanının adı
  • Veritabanının yaratıldığı tarih
  • Datafile ve redo log file ların isim ve lokasyonları
  • tablespace ler hakkında bilgiler
  • Current log sequence number ve back-up set details bilgileri
  • Önemli system change number ları(SCN: Commit edilmiş her bir transaction için o anı ifade eden sayı)
  • check point information

Control file olmadan veritabanı mount edilemez ancak unmount modunda instance ı başlatabiliriz ayrıca recovery yapmak da oldukça zorlaşır.

SQL > SELECT name FROM v$controlfile; komutuyla veritabanımızın kullandığı control file ların lokasyonlarını görebiliriz.

Görüşmek üzere..


Oracle PFILE & SPFILE Dosyaları

Hemen hemen her sistem gibi Oracle da çalışmaya başlayabilmek için bir takım parametrelere ihtiyaç duyar ve bu parametreler belirli dosyalardan okunur. Bu paramtreler bir Oracle Instance’ın hangi ayarlarla çalışacağını belirleyen parametrelerdir. Kullanılan tüm parametreler SQL*PLUS a bağlanılıp SHOW PARAMETERS komutuyla görüntülenebilir. Oracle veritabanında iki tip parametre dosyası bulunur. Bunlar PFILE (parameter file) ve SPFILE (server parameter file) ‘dır. SPFILE, Oracle 9i ile beraber gelmiştir. PFILE  ise ilk sürümden beri kullanılmaktadır.

Oracle PFILE (Parameter File):

Kullanıcıların üzerinde değişiklik yapabildiği, metin tabanlı dosyalardır. Genellikle isimleri init.ora dır. Pfile dosyası, içerisinde parametre olarak nitelendirilen veritabanı ayarlarının bulunduğu dosyadır. Bu parametreler, veritabanının hangi ayarlarla başlatılacağını belirler. Örneğin, control_files parametresi, kontrol dosyalarının dizinlerini tutarken;  audit_file_dest parametresi audit dosyalarının dizinlerini tutmaktadır. open_cursors parametresi aynı anda açık olabilecek maksimum cursor sayısını tutarken processes parametresi aynı anda çalışabilecek işlem sayısını tutmaktadır. Oracle kurulumunu, Windows da C:/ dizinine yaptıysanız init.ora dosyanız şuna benzer bir path de bulunmalıdır. C:\app\Administrator\admin\orcl\pfile

Oracle SPFILE (Server Parameter File):

Oracle 9i ile gelen parametre dosyası tipidir. PFILE, text-based yapıdayken ve üzerinde herhangi bir metin editörü ile değişiklik yapabilirken; SPFILE, binary yapıya sahiptir ve değişiklikler sadece ALTER SYSTEM SET komutlarıyla gerçekleştirilebilir. SPFILE kullanımı , automatic performance tuning tarafından tavsiye edilmektedir çünkü getirdiği pek çok avantaj vardır.

  • SPFILE, dosyadaki veya veritabanındaki herhangi  bir yapısal değişiklik durumunda RMAN tarafından otomatik olarak yedeği alınabilir duruma getirilmiştir. Böylece her değişiklikte tekrar tekrar yedek almak durumunda kalmayız.
  • Veritabanını kapatıp açmaya gerek duymadan kalıcı parametrelerin değerlerini değiştirebiliriz. Böylece veritabanı gerçek zamanlı olarak yeni parametrelere göre davranabilir. Ayrıca veritabanı kapatılıp açıldıktan sonra da aynı şekilde korunmaya devam eder. PFILE dosyalarındaki değişiklikler, sistem yeninden başlatılınca siliniyordu.
  • SPFILE sayesinde automatic tuning rahat ve hızlı bir şekilde içsel olarak yapılabiliyor. SPFILE kullanmıyorsanız automatic tuning yapılamaz.

Kullandığınız veritabanının hangi parametre dosyasını kullandığını merak ediyorsanız aşağıdaki plsql komutunu çalıştırabilirsiniz.

SQL> SELECT DECODE(value, NULL, ‘PFILE’, ‘SPFILE’) “Init File Type”
FROM sys.v_$parameter WHERE name = ‘spfile’;

Eğer value kolonundaki tüm değerler null ise PFILE değilse SPFILE kullanılıyordur.
SPFILE parametrelerini değiştirmek istediğinizde ALTER SYSTEM SET komutlarını kullanmanız gerektiğinden bahsetmiştik. Örneğin;

SQL > ALTER SYSTEM SET open_cursors=341 SCOPE=SPFILE SID=’*’ ;

SCOPE parametresi, değişikliklerin etkileneceği alanı bildirmek için kullanılır. 3 tip scope vardır.

  1. Memory: Yapılan değişiklikler sadece ilgili instance için geçerlidir. Memory, default scope dur.
  2. SPFILE: SPFILE güncellenir ancak yapılan değişiklikler veritabanı yeniden başlatılınca aktif hale gelir.
  3. BOTH: Yapılan güncelleme o anda aktif hale gelir ve yeniden başlatma durumunda da bu güncel bilgi kullanılmaya devam eder.

SID parametresi ise RAC sistemlerde kullanılır. Değişikliklerden hangi instance ların etkileneceğini belirler. SID=’*’ ile bu güncellemenin tüm instance lar için geçerli olacağını bildiriyoruz.

Son olarak, PFILE dan SPFILE; SPFILE dan da PFILE  oluşturabiliriz. Bunu yaparken içersindeki ayarları da convert etmiş oluyoruz tabii. Bunun için yapmamız gereken CREATE komutunu kullanmaktır.

SQL> CREATE SPFILE =’spfile adresiniz/spfile.ora’  FROM PFILE=’pfile adresiniz/init.ora’;

Görüşmek üzere..


Bölümümüzün web sitesinin değişmesi nedeniyle bir çok şeye ulaşamadığımız gibi ders içeriklerine de ulaşamıyoruz. Özellikle ders seçimlerinin yapılacağı bugünlerde bunun büyük bir ihtiyaç olduğunu düşünüp ders içeriklerini sitemde yayınlamaya karar verdim. Aşağıdaki tüm bilgiler önceki web sitesinin ders içerikleri bölümünden alıntılanmıştır ve resmi bir anlam taşımaz. Dolaysıyla sadece paylaşmak için eklenmiştir, tavsiye niteliği taşımaz. Ders bilgilerindeki eksiklerden veya içeriklerdeki değişimlerden şahsım sorumlu tutulamaz. Bilginize :  ))


Ders Adı: Yöneylem Araştırması

Ders Kodu: 408   Kredi: 3.0    Ders Tipi: Zorunlu

Amaç: Karar verme problemlerinde sayısal yaklaşımları kavrayabilme becerisi, Eniyileme Kavramını tanıma ve model kurma becerisi, Çözümün Duyarlılığını inceleyebilme becerisi, Alternatif çözümleri elde edebilme becerisi,OR/MS yaklaşımlarına aşina olma becerisi Performans geliştirme becerisi, Karar verme problemlerini bilgisayar ortamına aktarabilme ve çözme becerisi, Çözümleri sunabilme becerisi, Proje yönetimi ve geliştirmede alt yapı becerisi, Yönetimi bilimi becerisi, Maliyetin önemini kavrama ve etkinleştirme becerisi, Yeni sistem ve yaklaşımları tasarlamada performans, verimlilik ve etkinliğin önemini kavrayabilme becerisi kazandırmaktır.

İçerik: Bu ders kapsamında öğrencilere karşılaşabilecekleri çok seçenekli karar verme problemlerinde modele dayalı kantitatif  yaklaşımlar tanıtılmakta, mevcut sistem veya organizasyonlarda ya da tasarı durumundaki sistemlerde performans ve verimliliklerinin  artırımına yönelik bilimsel yaklaşımlara konsantre olabilmeleri için altyapı hazırlanmaktadır.~Yöneylem Araştırması(Operations Research) ve Yönetim Bilimi(Management Science)  kavramlarının ortaya çıkışı ve (OR/MS) tarihsel gelişimi.  ~Karar verme ve problem çözme, Sayısal analizler ve karar verme prosesi.~Problem Tanımlama, Matematiksel Model Kurma, Model çözümü.~Doğrusal Programlama Problemi, Grafik Yöntem. Alternatif çözüm, Sınırsız çözüm, Kabul edilemez çözüm.~Simplex Yöntem, Aşamalı Simplex Yöntem, Büyük-M Metodu . ~Problemlerde Dejenerasyon, Alternatif Çözümler, Birincil-İkincil(Primal-Dual) Problem tanımlama, Alternatif Simplex Yöntem.~Tamsayı Programlama, Ağaç yapısı üzerinde çözüm, Simplex tabanlı duyarlılık analizleri.~Ağ Yapılı Eniyileme Problemleri,(Network Optimization Models), Ulaştırma(Transportation) Problemi, Farklı Çözüm Yaklaşımları.  ~Ulaştırma Probleminde Duyarlılık Analizleri, Aktarma(Transshipment) Problemi.~Atama(Assignment)  Problemi, Gezgin Satıcı Problemi.~En kısa yol (Shortest Path) Problemi, En Az Uzantılı Ağaç(Minimal Spanning Tree) Problemi.   ~Maksimum akış(Maximal Flow), Minimum Maliyetli Akış(Minimum Cost Flow) Problemi. ~Proje Ağları(Project Networks)-Kritik Yol Analizi, CPM/PERT. ~Çok Amaçlı Karar Verme  Problemleri,Win QSB Bilgisayar Uygulamaları.

Değerlendirme: İlan edilen ara sınav haftasında gerçekleştirilen ara sınav sonucu %40 ve yılsonu sınav sonucu %60 ağırlıklı olarak değerlendirme yapılmaktadır.


Ders Adı: Computer Architecture

Ders Kodu: 408   Kredi: 3.0    Ders Tipi: Zorunlu

Amaç: 1. Bilgisayarların katmanlı yapısının önemine dikkat çekmek 2. Katmanlı bilgisayar yapısındaki her seviyeyi ayrıntılı olarak tanıtmak ve katmanlar arasındaki ilişkileri incelemek 3. Varolan sistemleri inceleyerek karşılaştırmak  4. Akıl yürütme, parçalar arasında ilişki kurma, neden-sonuç ilişkileri üzerine kurulu bir düşünce sistemini ön plana çıkarmak  5. Öğrencinin bağımsız çalışma yapma becerisinin geliştirilmesi

İçerik: Bilgisayarların katmanlı yapısı, Bilgisayar sistemlerinin organizasyonu, Sayısal mantık seviyesi, micromimari seviyesi, Komut seti mimarisi, Birleştirici dil seviyesi~Bilgisayar Mimarisine Giriş: Bilgisayarların katmanlı yapısı ve tarihçesi~Bilgisayar Sistemleri Organizasyonu: İşlemciler, ana bellek, ikincil bellek, girdi/çıktı~Sayısal Mantık Seviyesi: Bellek, işlemci yongaları, veriyolları, örnek işlemci yongaları, örnek veriyolları , arayüzler~Mikromimari seviyesi: Mikrokomutlar, Kontrol ünitesi, Örnek bir gerçekleştirim, Başarım arttırma teknikleri, Örnek mikromimariler~Komut seti mimarisi: Veri türleri, Komut formatları, adresleme, komut türleri, akış kontrol~Birleştirici dil seviyesi: Birleştiriciler, yükleyiciler

Değerlendirme: 1 arasınav ve final sınavı


Ders Adı: Paralel Programlama

Ders Kodu: 422    Kredi: 3.0    Ders Tipi: Teknik Seçimlik

Amaç: Paralel hesaplamadaki çeşitli konulara giriş. Konular: paralel bilgisayar modelleri, performans konuları, programlama modelleri, mesaj geçiş paradigması ve çeşitli paralel hesaplama teknikleri. Aynı zamanda sıralama algoritmaları gibi uygulamalarda öğrenilen teknikler uygulanacaktır.~Çeşitli bilgisayar mimarilerini anlamak~Veri paralelizmi, veri paylaştırması, eşzamanlı döngü, yinelemeli çalıştırılanlar, boruhatlı hesaplama gibi çeşitli paralel programlama tekniklerini anlamak ve kullanmak~Özellikle bellek çekişmesi, aşırı ardışık kodlama, iletişim gecikmesi, senkronizasyon  gecikmesi ve yük dengesizliği gibi paralel programlardaki performans düşüşünün kaynaklarını tanımlayabilmesi~MPI kullanımını öğrenmek

İçerik: Paralel programlama dersinde, bir programlama yaklaşımı olan paralel programlama anlatılmaktadır.~Giriş~Paralel Bilgisayarların Sınıflandırılması~–Paralel Mimariler~İletişim Metodları~Çok Bilgisayarlı Platformlar~–Hızlanma, Verim ve Ölçeklenebilirlik~Mesaj Geçiş Programlaması (MPI)~Paralel Programların Değerlendirilmesi~Apaçık Paralel Hesaplama~Bellek Bölüntüleme ve Böl-ve-Yönet~Boruhatlı Hesaplamalar~(Senkron) Eşzamanlı Hesaplamalar~Yük Dağılımı~Ortak Bellek ile Programlama~Sıralama Algoritmaları Uygulamaları

Değerlendirme:

%40 Vize Notu = Vize Öncesi Ödevler (%25) + Vize Sınavı (%75)

%60 Final Notu = Vize Sonrası Ödevler (%25) + Final Sınavı (%75)


Ders Adı: Yapay Sinir Ağları

Ders Kodu: 435    Kredi: 3.0    Ders Tipi: Teknik Seçimlik

Amaç: Öğrencilere Yapay Sinir Ağları’na dayalı teknikler ile diğer öğrenme yöntemlerini ve pratik uygulamalarını öğretmek.Yapay Sinir Ağlarının bilgisayar mühendisliğindeki, bilgisayar bilimlerindeki ve yapay zeka alanındaki önemini göstermek

İçerik:Yapay Zeka,Bulanık Mantık ,MATLAB,Makine Öğrenmesi ,Yapay Sinir Ağlarına Giriş ,Tek Katmanlı Algılayıcılar ,Çok Katmanlı Algılayıcılar ,Yapay Sinir Ağı Modelleri ,Yapay Sinir Ağlarının Uygulamaları ,Genetik Algoritmalar.

Değerlendirme: Projeler (%20), Arasınav (%30) , Yarıyılsonu sınavı (%50)


Ders Adı: Sunucu Yazılım Teknolojileri

Ders Kodu: 436    Kredi: 3.0    Ders Tipi: Teknik Seçimlik

Amaç: İstenen gereksinimleri karşılayabilecek web uygulamaları geliştirebilme. Web uygulamaları geliştirmenin teknolojilerine bütün olarak bakabilme yeteneği kazanma ve aralarındaki ilişkileri doğru olarak kurabilme. Web uygulamaları geliştirmede standartları kavrama. Yazılım geliştirme araçlarını web uygulamaları geliştirmede etkin olarak kullanabilme. Esnek ve kolay değiştirilebilir web uygulamaları geliştirme. Tasarım desenlerinin her türlü yazılım geliştirmede kullanılabileceğini kavrama. Web tabanlı karmaşık bilişim sistemlerini doğru teknolojileri yerinde kullanarak geliştirebilme. Projeleri iyi belgeme, sözlü olarak anlatabilme ve savunabilme yeteneği kazanma.

İçerik: Web uygulama geliştirme mimarileri. J2EE ortamı tanıtımı. İş-parçaları (threads), “stream” kullanımı, nesne serileştirme gibi temel konuların tekrarı. Soketler ile ağ programlama. Uzak metot çağrımı. Veritabanı erişimi. Servlet API. Java Server Pages Teknolojisi. Enterprise Java Beans teknolojisine genel bakış. Web Servisleri teknolojisi tanıtımı. Mobil uygulamalar için kullanılan J2ME ortamı tanıtımı. Web uygulamaları geliştirmede tasarım desenleri.~Web uygulaması geliştirme mimarileri: 2 ve 3 katmanlı mimariler. J2EE ortamı tanıtımı.~İş-parçaları (threads), “stream” kullanımı, nesne serileştirme. Soketler ile ağ programlama: Java ortamında TCP/IP soketleri, Datagram soketleri.~Uzak metot çağrımı: Java RMI. Java RMI over IIOP. Uzak nesnelerin işletim zamanında aktivasyonuna dayanan RMI türü.~Veritabanı erişimi. Veritabanı bağlantı havuzu oluşturma.~Servlet API: “Servlet” Yaşam Döngüsü, “Servlet” Geliştirme, HTML Formlarından Servlet Çağırma, HTTP İstek ve Yanıt Başlıkları, “Applet-Servlet” Bağlantısı, Çerezler, Oturum İzleme.~Java Server Pages Teknolojisi: Betimleme elemanları, direktifler, JSP sayfasından “bean” kullanma, servlet içinden JSP sayfaları çağırma.~EJB teknolojisine genel bakış: Session, entity ve message driven bean kavramları.~Web servislerine giriş: SOAP, WSDL, UDDI kavramları.~Mobil uygulamalar için J2ME ortamı tanıtımı.~Web uygulamaları geliştirmede tasarım desenleri: sunum, iş ve veri katmanları için tasarım desenleri.~Bu noktaya kadar anlatılan teknolojileri içeren örnek proje tanıtımları.~Ödev projeleri için mülakat: ödev projelerinin tasarım ve kodlarının incelenmesi ve öğrencilere geri-besleme verilmesi.

Değerlendirme:

1.Ödevler: Yıl içi notunu %50 oranında etkilemektedir. Bu derse ilişkin konuların ancak çeşitli uygulamalar geliştirilerek en iyi bir şekilde öğrenilebileceği gerçeğine dayanarak ödevler yıl içi notunu ağırlıklı olarak etkilemektedir. Bu doğrultuda, ödevler mülakat yapılarak teslim alınmakta ve ciddiyetle kontrol edilmektedir. Mülakatlarda, sadece programların çalışıp çalışmadığına bakılmamakta, tasarımın esnekliği, tasarım desenleri kullanılıp kullanılmadığı ve tasarımın iyi belgelenmiş olması konuları ağırlıklı olarak sorgulanmaktadır.

2.Arasınav: Yıl içi notunu %50 oranında etkilemektedir.

3.Final sınavı: Yılsonu başarı notunu %60 oranında etkilemektedir.

Yıl içi Notu: Ödev Ortalaması %50 + Arasınav Notu %50<br>  Başarı Notu: Yıl içi Notu %40 + Final Notu %60


Ders Adı: Sistem Analizi Ve Tasarım

Ders Kodu: 402    Kredi: 3.0    Ders Tipi: Teknik Seçimlik

Dersin Amacı: Sistem analizi sürecinin öğrenilmesi,İhtiyaç analizi yapabilme,İhtiyaçların sisteme ne şekilde dönüştürülebileceği,Analizle doğru sistemi ortaya koyabilme,Sistem analizi için kullanılan teknolojileri tanıma,Sistem analizi metodolojilerini tanıma,Sistem tasarımı sürecinin öğrenilmesi.

Dersin İçeriği: Sistem analizi sürecinin baştan sona öğretilmesi. Sistemdeki roller, sistemin kurulması aşamaları, sisteme farklı yönlerden bakış açıları, sistem kurulması aşamalarında kullanılan metodolojiler, proje yönetimi metodolojileri, analiz aşamalarının tek tek incelenmesi, her bir aşamada yapılması gereken çalışmaların anlatılması, kullanılabilecek araçlar ve metodolojilerin detaylı incelenerek örnek çalışmalar yapma, çeşitli bakış açılarından modelleme, sistem tasarımı metodolojileri ve araçları, veritabanı tasarımı, sistem çıktıları tasarımı, girdi tasarımı, kullanıcı arayüzü tasarımı, sistemin gerçekleşmesi ve uygulama aşamaları, operasyon ve destek.

Sistem Analizi temel kavramlar – Sistemdeki roller ve üzerlerine düşen görevler, sistemin yapı taşları, birbirleriyle etkileşimleri.

Sistem geliştirme metodolojileri, kullanılan araçlar, proje yönetimi, analiz metodları ve analizde kullanılan araçlar, kavram olarak anlatımı

İhtiyaç analizi kavramı, ihtiyaç saptama metotları, kullanılan araçlar, data modelleme kavramı, data modelleme sırasında dikkat edilmesi gereken veritabanı öğeleri üzerinden geçiş, kullanılan araçlar, model iyileştirme, süreç modelleme kavram, öğeler, kullanılan araçlar, fizibilite analizi kavram

Sistem Analizi uygulama

Sistem Tasarımı temel kavramlar, sistem tasarımında yaklaşımlar, kullanılan metodoloji ve araçlar. Uygulama mimarisi ve modelleme, fiziksel işlemler ve uygulamaları, fiziksel data akışı, merkezi ve dağıtık sistemler nelerdir, file server, local area network, client-server, internet/intranet mimariler, veritabanı mimarileri, kullanıcı arayüz mimarileri, toplu (batch)/on-line işlemler, EDI, middleware, tasarım metodları, araçları kavramlarının anlatılması.

Veritabanı tasarımı kavramları

Sistem tasarımı uygulama

Çıktı tasarımı ve prototipleme, girdi tasarımı ve prototipleme

Kullanıcı arayüz tasarımı

Sistem oluşturulması, uygulama, uyarlama, construction içinde testin önemi, test aşamaları ve metodolojisi, sistemin devreye alınması, operasyon, destek ve bakım süreçleri

Object oriented analysis and design

Uygulama, özet, kapanış

Değerlendirme:

1.Uygulama-1 : 4.Hafta anlatılır. (Gerçek hayatta yapılan bir analiz çalışması aktarılır)

2.Ödev-1 : 5.Haftada anlatilir 8.Haftada gruplar halinde sunumları yapılır. (20 puan)

3.Vize : 9. hafta yapılır. (20 puan)

4.Final (60 puan)


Ders Adı: İstemci Sunucu Sistemleri

Ders Kodu: 432    Kredi: 3.0    Ders Tipi: Teknik Seçimlik

Amaç: ~C/S’de güvenlik, güvenilirlik, ölçeklenebilirlik, donanım, yazılım, bilgisayar ağı ve maliyet kavramlarını kavramak birlikte düşünmek  ~Programları istemci sunuculara ayırıp değişik alternatif modeller kurma ve özelleştirme becerisi kazanma~Standart kavramı, istemci/sunucu standartlarının öğrenilmesi ve gerekliliğinin kavranması~İsimlendirme, adresleme, yersunum kavramı  ve işleyişinin öğrenilmesi, diğer sistemlerden farklılıkların kavranması~Güvenlik sunumları konularında beceri kazanmak~Dağıtık dosya sistemleri ve gerçekleştirimi konularını öğrenmek ~Dağıtık dosya sistemleri gerçekleştirimi, NFS, DFS örnekleriyle kavramak~İnternet’te istemci/sunucu, güvenlik, güvenilirlik yaklaşımlarını öğrenmek~Web tabanlı sistem mimarileri tanımak ~Web tabanlı uygulamalarda kullanılan yapıları kavramak ~Web tabanlı uygulamalarda iletişim protokolleri ve örneklerini tanımak ~Dağıtık veritabanı yönetim sistemlerini tanımak ve uygulamak ~DBMS sonucu donanım ve yazılım konularının kavranması, uygulanması~Veri yineleme.

İçerik: İstemci/Sunucu nedir?, programları istemci ve sunuculara ayırmak, standartlar ve açık sistemler, dağıtık yaklaşım, isimlendirme, adresleme ve yer sunumları, istemci/sunucu güvenliği, dağıtık dosya sistemi kavramı, dağıtık dosya sistemleri gerçekleştirimi, internette istemci/sunucu, web tabanlı sistem mimarileri, web tabanlı uygulamalrda kullanılan yapılar, web tabanlı uygulamalarda kullanılan iletişim protokolleri ve dağıtımlı nesneler, dağıtık veritabanı yönetim sistemleri, veri yineleme~İstemci-sunucu nedir?, parçaları bütünleştirme,  güvenlik, güvenilirlik, ölçeklenebilirlik, donanım yazılım, bilgisayar ağı, maliyet~Programları istemci sunuculara ayırma, bilgi depolama ve geri getirme modülü, mantık modüller üçlüsü kullanıcı arayüz modülü~Standartlar ve açık sistemler, istemci/sunucu standartları, kaynak kod taşınabilirliği, birlikte çalışabilirlik~İsimlendirme, adresleme ve yer sunumları, DNS adresleme, DNS yer sunumu, DCE isimlendirme, DCE adresleme, DCE yer sunumu, iyi bir isimlendirme sistemi nasıl olmalıdır?~Güvenlik sunumları nelerdir? ONC ve güvenlik, DCE de güvenlik~Dağıtık dosya sistemi nedir?, dağıtık dosya sistemlerinde maliyetler/yararlar, istemci ve sunucu gerçekleştirimi~Dağıtık dosya sistemleri gerçekleştirimi, NFS, DFS~Internet’te istemci/sunucu, internet’te güvenlik, istemci tarafı, sunucu tarafı, güvenilirlik~Web tabanlı sistem mimarileri, hafif istemci mimarisi, ağır sıklet istemci mimarisi, web güdümlü istemci mimarisi~Web tabanlı uygulamalarda kullanılan yapılar~Web tabanlı uygulamalarda kullanılan iletişim protokolleri ve dağıtımlı nesneler, http, RPC, RMI, CORBA, DCOM~Dağıtık veritabanı yönetim sistemleri, DBMS ve istemci/sunucu modeli, ilişkisel DBMS’in rolü, SQL~DBMS Sunucu donanım  ve yazılım, istemci uygulamayla bütünleşme, ODBC’nin rolü, Dağıtık RDBMS ODBC ve çerçeve gereksinimi~Veri yineleme, güçlü tutarlı yineleme, kayıt tutarlı yineleme, dağıtık veritabanlarında yineleme.

Değerlendirme:

1.Birinci ödev, vize sınavına %10 etki etmektedir.

2.İkinci ödev de vize sınavına %10 etki etmektedir.

3.Vize sınavından alınan notun %80’i alınarak, buna iki ödevin %10’u eklenerek vize sonucu oluşturulur

4.Geçme notu = Vize 0,40 + Final 0,60 şeklinde hesaplanır.


Ders Adı: İş Hukuku

Ders Kodu: 427    Kredi: 2.0    Ders Tipi: Teknik Olmayan Seçimlik

Dersin Amacı: Genel hukuk kavramları ve iş hukukunun genel kavramları ile bilgilendirme. İş  yasasında işçnin korunması yolunda genel bilgi edinilmesi, iş sözleşmesinin sona ermesi  halinde doğan hak ve borçlar hakkında somut örnekler ile bilgilendirme.

Dersin İçeriği: Hukuka giriş, İş hukukuna giriş, Genel kavramlar, Taraflara yüklediği hak ve borçlar ,  İşçinin korunması, İş hukukunun sona ermesi, Toplu iş sözleşmesi,İş Hukukuna Giriş,İş Hukukunun Kaynaklar ve Genel Kavramları,İş Sözleşmesi ve Çeşitleri,İş Sözleşmesinin Kurulması,Sözleşme Yapma Özgürlüğü ve Sınırları,İşçinin Borçları,İşverenin Borçları,Ücret,İşverenin Ücret Dışındaki Borçları,İşçinin Korunması,İş Sözleşmesinin Sona Ermesi,Kıdem Tazminatı,Toplu İş Sözleşmesi

Değerlendirme: Arasınav : 11./12. hafta yapılır.(%40), Final sınavı (%60)


Ders Adı: Siyasi Tarih

Ders Kodu: 428    Kredi: 2.0    Ders Tipi: Teknik Olmayan Seçimlik

Amaç: Batı Avrupa’da Aydınlanmadan başlayarak, Avrupa ve Osmanlı İmparatorluğu’nda görülen siyasal olaylar, gelişmeler, uluslararası sorunlar hakkında bilgi vermek.

İçerik: Bu derste 15-18. yüzyıllar arasında Avrupa’daki gelişmeler, 19. yüzyıl başlarında Osmanlı İmparatorluğu, Endüstri Devrimi ve Avrupa’daki devrim hareketleri, Kırım Savaşı ve Alman ve İtalyan devletlerinin oluşumu, 1876 Kanun-i Esasisi, 1877-1878 Savaşı, XX. yüzyıl başlarında büyük güçler ve I. Dünya Savaşı, iki savaş arası, II. Dünya Savaşı ve Soğuk Savaş dönemi değerlendirilir.

Değerlendirme: Bir yarıyılda bir yazılı arasınav (%20), bir ödev (%20) ve bir yazılı yarıyılsonu sınavı (%60) yapılmaktadır.


Ders Adı: Ekonomi

Ders Kodu: 448    Kredi: 2.0    Ders Tipi: Teknik Olmayan Seçimlik

Amaç: ~Ekonomi bilimi ile ilgili temel kavramları ve teorileri öğrenme ~Ekonomi ile ilgili olayları analiz edebilecek bilgi ve becerileri kazanma~Türkiye ve Dünya ekonomisi ile ilgili bilgiler edinme ~Ekonomik problemlere farklı çözümler üretebilme ~Hızlı ve etkin çözüm üretebilme

İçerik: Ekonomi İle İlgili Temel Kavramlar, Her Ekonominin Karşılaştığı Temel Sorunlar Ve Ekonomik Sistemler, Piyasa Kavramı Ve Piyasa Çeşitleri, Fiyat Teorisi, Tüketim Teorisi, Üretim Teorisi, Üretim Masrafları, Tam Rekabet Piyasasında Denge, Monopol Piyasada Denge, Monopollü Rekabet Piyasada Denge, Oligopol Piyasasında Denge, Faktör Piyasası ve Faktör Gelirlerinin Belirlenmesi, Milli Gelirin Ölçülmesi, Ekonomik Gelişme, İstihdam ve Enflasyon.~Ekonomi İle İlgili Temel Kavramlar  Her Ekonominin Karşılaştığı Temel Sorunlar ve Ekonomik Sistemler  ~Piyasa Kavramı ve Piyasa Çeşitleri~Fiyat Teorisi;  Arz ve Talep~Arz ve Talep Elastikiyeti ~Tüketim Teorisi~Üretim Teorisi~Üretim Masrafları~Tam Rekabet Piyasasında Denge~Monopol Piyasada Denge~Monopollü Rekabet Piyasada Denge, Oligopol Piyasasında Denge~Faktör Piyasası Ve Faktör Gelirlerinin Belirlenmesi~Milli Gelirin Ölçülmesi~Ekonomik Gelişme, İstihdam ve Enflasyon

Değerlendirme:

1.Ödev- 4. Hafta verilir. (10 puan)

2. Sınıf içi tarışmalara katılım (10 puan)

3. Her konu sonunda yapılan küçük sınavların ortalaması (10 puan)

4. Ödev-1, sınıf içi tartışmalara katılım notu ve her konu sonunda yapılan küçük sınavların ortalaması, arasınav notuna yansıtılır.

5. Genel Arasınav : 11./12. hafta yapılır.

6. Final sınavı


Ders Adı: İnsan Kaynakları Yönetimi

Ders Kodu: 437    Kredi: 2.0    Ders Tipi: Teknik Olmayan Seçimlik

Amaç: Bu dersin amacı; öğrencilere insan kaynaklarını etkin biçimde yönetmenin yollarını göstermek ve istihdam yaşamı, iş yaşamı pratikleri hakkında bilgi vermektir.

İçerik: İnsan kaynakları yönetimine giriş; insan kaynakları yönetiminin işlevleri, organizasyon ve konumu, insan kaynakları yönetimi uygulamaları.  İnsan kaynakları planlaması, iş analizleri. İş analiz ve tasarımı. Personel işe alma ve yerleştirme; özgeçmiş hazırlama, iş görüşmeleri ve stratejileri, orientasyon teknikleri. İş görüşmeleri .Kariyer yönetimi; kariyer, birey ve kariyer gelişimi, kurumsal kariyer yönetim uygulamaları, saha çalışması: kariyer yaşantılarının analizi.Eğitim Yönetimi; yeni eğitim teknikleri ve methodları, şirket üniversiteleri, uzaktan öğrenme. Performans yönetimi; bireysel ve kurumsal performans yönetimi, performans teknikleri ve uygulamaları. Liderlik, kurumsal iletişim, iş tatmini ve motivasyon. İş ilişkileri . İnsan Kaynakları Projeleri. Sunum-1. Sunum-2

Değerlendirme: Bir yarıyılda bir yazılı arasınav (%40) ve bir yazılı yarıyılsonu sınavı (%60) yapılmaktadır.


Ders Adı: Üretim Bilgi Sistemleri

Ders Kodu: 440    Kredi: 3.0    Ders Tipi: Teknik  Seçimlik

Amaç: Bilgisayar mühendisliği öğrencilerinin bilişim sistemleri temel kavramları ve iş dünyasındaki uygulamaları hakkında temel bilgi edinebileceği bir ders olarak görülmektedir. Dersler boyunca öğrenciye üretim kaynakları planlama, işletme kaynakları planlama, elektronik iş, elektronik ticaret, müşteri ilişkileri yönetimi ve otomasyon teknolojileri hakkında temel bilgiler verilmeye çalışılmaktadır. Belirtilen alanlardaki bilişim sistemlerinin tanıtılması amaçlanmaktadır. Bilişim sistemlerinin temel öğeleri, donanım ve yazılım altyapıları hakkında bilgi verilmeye çalışılmaktadır. Öğrencilerin mezun olmadan önce gerçek iş uygulamaları ile tanışık olmaları hedeflenmedktedir.

İçerik: Malzeme kaynakları planlama (MRP) sistemleri, İşletme kaynakları Planlama (ERP) sistemleri~Elektronik iş, B2B, B2C, CRM uygulamaları, XML~SAP sistemi , ABAP programlama dili, ALE, EDI, IDOC teknolojileri~Sistem Entegrasyonu. Otomasyon sistemleri teknolojileri. RF ID, Barkod, GPS, akıllı kartlar, Web Sunucuları, BizTalk yazılımı

Değerlendirme: Üretim (!) (Öyle yazıyor)


Ders Adı: Ontoloji Mühendisliği

Ders Kodu: 446    Kredi: 3.0    Ders Tipi: Teknik  Seçimlik

Amaç: Bu dersin amacı, İnternetin gelişim sürecinde yeni bir aşama olan Anlamsal Web kavramının altyapısını oluşturan Ontolojilerin veri yönetimi, yazılım mühendisliği ve bilgi sistemleri kapsamındaki rollerini incelemek, bazı uygulama alanlarına yönelik ontoloji geliştirmek ve bu ontolojilerin geliştirileceği ortamları öğrenmektir.

İçerik: Anlamsal Web nedir, Anlamsal Web için İş Konusu, XML ve Etkisi, RDF, Taksonomiler, Ontolojiler, OWL , Protégé Ontoloji Geliştirme Ortamının Tanıtılması, Protégé Ontoloji Geliştirme,  Ortamında Ontoloji Geliştirme Deneyimi, Protégé Ontoloji Geliştirme Ortamı- OWL Plugin, AEGONT Ontoloji Geliştirme Arayüzü

Değerlendirme: Ödev : 10.Hafta verilir.  Yıliçi ortalaması olarak vizenin notu alınır.  Final notu olarak 10.haftada verilen ödevin notu alınır.


Ders Adı: Sosyoloji

Bu dersle ilgili herhangi bir bilgi bulunmuyor.


Görüşmek Üzere..


Oracle Real Application Clusters (RAC)

Yüksel erişilebilirlik (High Availability): İnsan kaynaklı veya dış kaynaklı herhangi bir hata sebebiyle ortaya çıkan ve donanım/yazılım çökmeleri şeklinde sonuçlanan durumlardan etkilenilmemesinin sağlanması, servislerin kesintisiz şekilde çalışmasının garanti edilmesi için yapılan mimari değişikliklerdir.
Örneğin GSM operatörlerini düşünelim, milyonlarca insan cep telefonlarıyla görüşmeler yapıyor ve sms atıyor. Bu sistemlerin ücretlendirilmesinden sorumlu sistemlerin kesintisiz olarak ayakta durması gerekir. Bu durumda ücretlendirme servisini sağlayan sistemin kesintisiz olarak çalışması garanti edilmişse bu servise “high availability bir servistir” diyebiliriz. Bir çok sistem için kesintilerden kurtulma metodları geliştirilmiştir. Sunucu çökmelerine karşı veritabanının servislerinde kesinti durumlarının önlenmesi için geliştirilen çözüm ise Real Applicaton Clusters (RAC) dır.


Cluster, birden fazla makinenin bir araya getirililerek , bir hizmeti veya servisi istemcilere saydam olarak sunabilmelerini sağlayan teknolojidir diyebiliriz. Real Applicaton Cluster ise Oracle veritabanı servisini birden fazla makinenin oluşturduğu bir cluster üzerinden sunabilmemizi sağlayan teknolojidir. RAC, aktif/aktif çalışan mimariye örnektir. Aktif/aktif, cluster içindeki makinelerin her birinin aktif olarak yükü üzerine alması ve istemcilere güçlerini birleştirerek servis vermelerini sağlarken; aktif/pasif sistemler, aktif olan makinelerin tüm yükü üzerine alarak çalışması ve pasif makinelerin de aktif olan makinenin çökmesini beklemesi ve çökme anında devreye girmesini sağlar.



Aşağıdaki şekilde bir RAC mimarisi görmektesiniz.



Private Interconnect : RAC’a bağlı olan üye sunucuların birbirleriyle iletişimini sağlayan özel ağa verilen isimdir. Sunucular, üzerindeki veri bloklarını ve scn değerleri diğer sunuculara gönderirken bu ağı kullanırlar. Bu ağın minimum 1 gbps hızında olması tavsiye edilir.

Public Network: Tüm sunucuların birbirine bağlandığı bus topolojisindeki local ağdır. Bu ağ üzerinde sunucular virtual Ip  (VIP) leri kullanırlar. Virtual Ip ler, CRS ler tarafından yönetilir.  Virtual Ip ler , özel ağ arayüz kartlarından bağımsız biçimde kullanılabilirler ve birden çok sunucuya atanabilme özellikleri vardır. Sunucular üzerinde aktarılan tüm istekler virtual IP ler kullanılarak aktarılmaktadır. Herhangi bir sunucu çöktüğünde CRS  yazılımı bu sunucun çöktüğünü anlar ve bu sunucuya ait virtual IP yi başka bir sunucuya anında atar. Böylece gelen istekler diğer sunuculara gönderilerek  yüksek erişilebilirlik sağlanmış oluyor.

Alt kısımda, tüm node lar tarafından kullanılan ortak bir veritabanı bulunuyor. Veri tabanındaki Redo logs, DB files, spfiles ve control files a ek olarak RAC mimariyle gelen OCR ve Voting Disk bulunuyor.



Oracle Cluster Registry ( OCR ) : Cluster daki üye sunucuların listesini, bu üyelerin private interconnect bağlantısında kullandıkları  virtual IP leri, sunucular üzerinde çalışan servisleri, ASM instance larının bilgilerini, listener ları tutan configurasyon yapısıdır. OCR, CRS tarafından yönetilen bir mekanızmadır. Her node, kendine ait CRS instance ile OCR ı kontrol eder.



Voting Disk : CRS tarafından yönetilir.  Voting disk üzerinde her üye sunucuya ait belirli alanlar bulunur. Sunucular çalışır durumdayken kendi alanlarına kendi yaptıkları işler ile ilgili çeşitli bilgiler yazarlar. Bu yazma işlemi aynı zamanda sunucun yaşadığı anlamına da gelmektedir. Her alan, ait olduğu sunucu tarafından – okunabilir-yazılabilir ve diğer sunucular tarafından -okunabilir durumdadır. RAC içerisindeki herhangi bir sunucu çöktüğü anda voting diske bilgi yazamaz duruma gelir ve bu durumda diğer sunucular bilgi yazılmadığını görerek bu sunucuda bir sorun olduğunu anlarlar. Bu durumda CRS, çöken makinayı anında reboot eder.



Cluster Ready Services ( CRS) : Yeni ismiyle Oracle Clusterware , OCR ve Voitng Disk  ten oluşan iki önemli bileşeni ile cluster ı izleyen ve yöneten yazılımdır.



Toparlarsak,

  • RAC, birden çok sunucunun biraraya gelerek ve güçlerini birleştirerek Oracle veritabanı servislerini istemcilere saydam olarak sunan teknolojidir.
  • İnsan kaynaklı veya dış kaynaklı veritabanı kesintilerini önleyerek yüksek erişilebilir servisi garanti eder.
  • RAC mimarisinde, sisteme yeni bir sunucu ekleyerek sistemin kapasitesini arttırmak kolaydır.  Bu özelliği sayesinde oldukça ölçeklenebilir bir teknolojidir.



Tekrar Görüşmek Üzere..


İlk bölümde, OBIEE 11g için ön şartlardan biri olan RCU kurulumunu anlatmıştım. Bu yazıda ise OBBIEE 11G nin kurulumunu gerçekleştireceğiz. Bu yüzden, önce Bölüm1‘i okumanızı tavsiye ediyorum.

OTN’ den indirdiğimiz zip dosyalarını bir yerde unzip ederek kuruluma başlıyoruz. OBIEE, Toplamda 4.1 gb olan 4 zip dosyasından oluşuyor. Bu arada “bi_windows_x86_111130_32_disk1_2of2.zip” isimli dosyayı unzip ederken %99 da crc hatası verdi ama kurulumda bir sorun yaşatmadı.

  1. Disk1 içindeki setup.exe yi çalıştırıyoruz.
  2. Welcome ekranını geçiyoruz. Select Installation Type ekranında Simple Installation ı seçiyoruz. Simple Installation, Oracle Business Intelligence bileşenlerinin default ayarlarla tek bir makinaya minimum adımda kurulmasını sağlayan kurulum tipidir.
  3. Prerequisite Checks ekranında, sistemin yazılım ve donanım gereksinimleri kontrol ediliyor. Örneğin ben ‘Service Pack’  kontrolünü geçememiştim. Bu yüzden Windows server 2003 için service pack 2 paketini kurup  kuruluma tekrar başlamıştım.

  4. Specify Installation Location da, Bi yi kuracağımız yeri belirtiyoruz. Örneğin C:\BiHome
  5. Administrator Details ekranında, Bi kullanıcı adı ve şifremizi giriyoruz.
  6. Configure Components ekranında, Bi bileşenlerinden hangilerini kuracağımızı belirliyoruz.

  7. Database Details ekranında, Business Intelligence ın hangi veritabanı üzerine kurulacağını, bu veritabanı için connection string i, daha önce rcu kurulumunda oluşturduğumuz BIPLATFORM şeması kullanıcı adı ve şifresini belirtiyoruz. Önceki yazımda kurulan şema isimlerini ve şifrenizi unutmamanız gerektiğini söylemiştim.

  8. Summary ekranında kurulacak bileşenler, bu bileşenlerin dizinleri ve bazı özellikleri gösteriliyor. Install diyoruz ve uzun bir kurulum sürecinin sonlanmasını bekliyoruz.
  9. Gerekli kurumlar tamamlandıktan sonra complete ekranında karşımıza özet bilgiler getiriliyor. Buradaki bilgileri bir yere kaydetmenizi tavsiye ederim, zira kullanılacak bileşenler için gerekli local adreslerden tutun işinize yarayacak bir çok bilgi burada bize sunulmakta.
  10. Finish diyoruz ve browserımızdan localhost umuzun 9704 portundan business intelligence ı artık açabiliriz.




  11. Görüşmek üzere..


Bu yazımda, aynı zamanda tez konumla da bağlantılı olan “Business Intelligence” konusuna giriş yapmak istedim.        Oracle ın Business Intelligence paketine buradan ulaşabilirsiniz. OTN (Oracle Technology Network) ‘ den dosya indirebilmek için, önce ücretsiz bir hesap açmanız gerekiyor. Kullandığınız işletim sistemi mimarisine göre gerekli kurulum paketlerini ve yine alt kısımda bulunan “Repository Creation Utility” paketini indirmemiz gerekiyor.

Kuruluma başlamadan önce,  Oracle Fusion Middleware System Requirements and Specifications dökümanını detaylıca incelemelisiniz. Çünkü en ufak bir eksiklikte saatleriniz belki de günleriniz heba olabilir.
Burada önemli gereksinimlerden biri; kullanılan veritabanının karakter setinin AL32UTF8 olması. Business Intelligence kurulumunda bu gereksinim şart koşuluyor. Eğer karakter seti uymuyorsa kurulumu iptal etmek zorunda kalıyorsunuz..

Benim sistem ve donanım bilgilerim şu şekilde;

  • OS: Windows Server 2003 Standart Edition with SP2
  • Hardware: Intel Core Duo T2500 2.00 GHZ CPU  2.5 Gb of  Ram
  • Database: Oracle Database  11g r2 (11.2.0.1.0)

Kuracağımız Business Intelligence Sürümü ise  11.1.1.3.0

Business Intelligence kurulumu bir kaç aşamadan oluşuyor. İlk koşul tabii ki halihazırda kullandığınız ve BI 11G tarafından desteklenen bir veritabanının kurulu olması.  Bundan sonraki aşama  “Repository Creation Utility” kurulumu ve son olarak da OBIEE 11G nin kurulumu. Makinanızda BI 11G tarafından desteklenen bir veritabanının kurulu oldğunu varsayarak RCU nun kurulumuna geçiyoruz.

RCU (Repository Creation Utility), Oracle Fusion Middleware ürünlerinin çalıştırılabilmesi için kullandığımız veritabanına bir takım şemaların kurulmasını sağlayan bir araçtır. Oluşturduğu bir kaç şema sayesinde, uygulama katmanımız (fusion middleware) veritabanı üzerinde çalışabilir duruma gelecektir.

Kurulum adımlarını sırasıyla şu şekilde gösterebiliriz.

  1. İndirdiğimiz Repository Creation Utility dosyalarını uygun bir yere unzip ederek, rcuHome\BIN içerisindeki ‘rcu.bat’ dosyasını çalıştırıyoruz.
  2. Welcome ekranını next ile geçiyoruz.
  3. Create Repository ekranında Create ı seçerek next diyoruz.

  4. Sıradaki ekranda veritabanı bağlantısının gerçekleşebilmesi için gerekli bilgilerin belirtilmesi gerekiyor. Burada bağlancağımız veritabanını, bilgisayarımızın adını, bağlantının gerçekleşeceği port numarasını (default olarak 1521 dir. ), bağlantı servisinin ismini, login için kullanıcı adımız, şifremiz ve bağlantıda hangi rolü kullanacağımızı belirledikten sonra next diyoruz.

  5. Daha sonra karşımıza bileşenleri seçeceğimiz ekran geliyor. Burada Create a new Prefix seçiliyken, kurulacak şemalar için prefix değeri girebiliriz. Default olarak DEV prefix i seçilidir. Prefix, şemalarımızın diğer şemalar içerisinden kolayca ayırdelebilmesini sağlayarak hem okunaklılığı arttırır hemde kullanılabilirliği kolaylaştırır. Component kısmında, kullanmak istediğimiz bileşenler ve bu bileşenlere ait servisler görüntülenir. Burada Metadata Services , fusion middleware in çalışabilmesi için gereklidir ve mutlaka seçilmedilidr. Bunun yanında Business Intelligence bileşenini seçiyoruz. Ben ek olarak Data Integrator bileşenini de ileride lazım olur düşüncesiyle seçtim. Next diyip ilerliyoruz.

  6. Kurulacak şemeları seçtikten sonra, bu şemalar için uygun bir şifre belirliyoruz, unutmayacağımız bir şifre olsa iyi olur. Bu arada kurulacak şemaların isimlerini de iyice öğrenin hatta bir kenara not edin. Daha sonra bu şema isimlerini kullanacağız. Next diyoruz.

  7. Karşımıza daha sonra Custom Variables ekranı geliyor. Değişiklik yapmadan next diyoruz.
  8. Map Tablespace ekranında, kurulacak bileşenler, bu bileşenlerin tablespace leri ve bu tablespacelerin kurulumu sürecinde kullanılacak geçici tablespace bilgileri görüntüleniyor. Gözgezdirip next diyoruz.

  9. Next dedikten sonra, tablespaceler yaratılmaya başlanır. Bir kaç saniye sonra işlem tamamlanır. Next diyerek devam edebiliriz.

  10. Karşımıza gelen ekranda, veritabanı bağlantısı ile ilgili özet bilgiler, geçici tablespace lerde tutulan ve kurulmaya hazır şemaların bilgileri görüntülenir. Create diyerek işlemi gerçekleştirebiliriz.

  11. Bir kaç dakikalık bir süreçten sonra, fusion middleware uygulamalarımızın üzerinde çalışacağı şemalar yaratılmış olur. Close diyerek RCU kurulumunu sonlandırabiliriz.

  12. Şemaların eklenip eklenmediğini görmek için SqlDeveloper ile veritabanımıza bağlanıp doğrulama yapabiliriz. Görüldüğü gibi DEV_PLATFORMBI ismindeki şema sahibi ve içerisindeki tablolar veritabanımıza eklenmiş. Hayırlı olsun.

Böylece, Business Intelligence Enterprise Edition 11g r1 kurmak için gerekli önşartlardan biri olan RCU kurulumunu gerçekleştirdik. Bir sonraki yazımda Oracle Business Intelligence Enterprise Edition 11g R1 kurulumunu gerçekleştireceğiz.


Görüşmek Üzere..

Oracle Technology Network


SqlCommand Nesnesi Kullanımı

Bir önceki yazımızda c# uygulamamızı, veritabanına nasıl bağlayacağımızı görmüştük. Bunu da sqlconnection bağlantı nesnesini kullanarak gerçekleştirmiştik. Bugün ise sqlcommand üzerinde duracağız. sqlcommand nesnesi veritabanı üzerinde sorgulama , ekleme,silme ve güncelleme işlemlerini gerçekleştirebileceğimiz connected layer için en çok kullandığımız nesnedir. Geçen yazımızda FILMS adında bir veritabanı oluşturmuştuk. Bugün ise o veritabanına bir tablo ekleyeceğiz ve bu tablodan bazı sorgulamaları command nesnesi yardımıyla gerçekleştireceğiz. Önce server explorer alındaki data connections kısmından daha önce oluşturduğumuz FILMS veritabanını genişletelim ve altındaki tables a sağ tıklayıp yeni bir tablo oluştur diyelim. Tablomuzu aşağıdaki gibi düzenleyelim.

FilmID yi primary key olarak belirleyelim ve  coloumn properties ten Identity specification dan Is Identity i yes yapalım seed ve increment 1 olsun. Tablomuzu kaydedelim ve ismine ImdbTopTen diyelim. Sıra geldi tablomuza veri koymaya. Yine tables kısmından oluşturduğumuz ImdbTopTen tablosuna sağ  tıklayarak  show table data diyelim ve açılan sayfadan verilerimizi girelim. Ben şu şekilde girdim.

Tablomuzu doldurduktan sonra yeni bir windows forms projesi yaratalım ve formumuzn üzerine 2 tane button sürükleyelim isimleri btnExecuteScalar ve btnExecuteReader olsun. Sonra view code diyerek önce connection string imizi oluşturalım tabi “using System.Data.SqlClient;”  alanını projemize dahil ettikten sonra.

SqlConnection connFilms = new SqlConnection(@”Data Source= .\SQLEXPRESS;

Initial Catalog=FILMS;Integrated Security= True”);

Sıra geldi command nesnesini oluşturmaya.

SqlCommand scalarCommand = new SqlCommand(); ile nesnemizi oluşturduktan sonra bu nesneye bazı özellikler bağlamalıyız. Örneğin CommandType ; sql komutumuzun tipini belirtir.

CommandType.Text ,kullanacağımız sql sorgusunun text olduğunu; CommandType.StoredProcedure, sql sorgusunun stored prosedür olarak yapılacağını belirtir.

scalarCommand.Connection = connFilms; commandımız connFilms  bağlantısı üzerinden çalışacak.

scalarCommand.CommandType = CommandType.Text; commandımız text tipinde olsun.
scalarCommand.CommandText = @”Select FilmAdı from ImdbTopTen where ImdbSıra=5″; textimizdeki sql sorgusu.

Command nesnesine özelliklerimizi bağladıktan sonra bağlantımızı açıp Execute metodlarından birini kullanarak sorgumuzu gerçekleştirmeliyiz. Command ı execute etmek için 4 tane metodumuz var.

ExecuteScalar() metodu, sorgularımızın tek bir değer(cell) döndüreceği zaman kullanılmalıdır.
ExecuteReader(), sorgularımızın birden fazla değer döndüreceği durumlarda kullanılmalıdır.
ExecuteNonQuery(), sorgularımızdan etkilenen satır sayısını döndürür.
ExecuteXmlReader(),sorgularımız sonucu veritabanından verileri xml formatında döndürür.

Bağlantıyı açıp sorgu emrini şu şekilde veriyoruz.

connFilms.Open();
string _filmadı = (string)scalarCommand.ExecuteScalar();
Command nesnesinin ExecuteScalar metodu bize object tipinde bir obje dönecek. Bunu string e cast ediyoruz ve sorgumuzun sonucu artık elimizde..
ExecuteReader() metodunun, ExecuteScalar() dan command nesnesine bağlanması açısından hiç bir farkı yok. Metodların tek farkı ExecuteReader da bir yerine birden çok değerin dönmesi. Dönen bu kayıtlara DataReader nesnesi sayesinde ulaşabiliyoruz.

SqlCommand readerCommand = new SqlCommand(); command nesnesi oluşturuluyor
readerCommand.Connection = connFilms; commandın hangi bağlantıda kullanılacağı belirleniyor
readerCommand.CommandType = CommandType.Text; commandımızın tipi text olarak belirleniyor
readerCommand.CommandText = @”select FilmAdı,IMDBSıra,Puan from ImdbTopTen”; sql sorgumuz texte yazılıyor
connFilms.Open(); bağlantı açılıyor
SqlDataReader reader = readerCommand.ExecuteReader();

Execute.Reader() metodunun dönüş tipi SqlDataReader tipinde olduğundan bu tipte bir değişkene atama yapıyoruz. Yani SqlDataReader ın bir yapıcı metodu yoktur. SqlDataReader command içindeki ExecuteScalar() metodunun içinde yaratılır ve geriye dönüş değeri olarak kullanılır.
reader nesnesinin görevi tablomuzdaki herbir satırı tutmaktır. reader nesnesine ait Read() metodu ise bir sonraki satırın başına konumlanmamızı sağlar. Bu şekilde tıpkı sıradan erişimli dosya okur gibi tablolarımızı okuyabiliriz.
reader["FilmAdı"],  FilmAdı kolonunda ilgili satırda bulunan hücreyi tutar. reader[0] da aynı görevi üstlenir. 0 tablomuzun kolonunun indisidir. Ancak rakam yerine kolon adlarının belirtilmesi daha uygundur. Örneğin tabloda kolonların yerlerini değiştirdiğimizde indis numarasını da değiştirmek zorunda kalırız ancak kolon isimlerini kullanırsak böyle bir derdimiz olmayacaktır.

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Data.SqlClient;

namespace CommandOrnegi
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        SqlConnection connFilms = new SqlConnection(@"Data Source= .\SQLEXPRESS;
                    Initial Catalog=FILMS;Integrated Security= True");

        private void btnExecuteScalar_Click(object sender, EventArgs e)
        {
            try
            {
                SqlCommand scalarCommand = new SqlCommand();
                scalarCommand.Connection = connFilms;
                scalarCommand.CommandType = CommandType.Text;
                scalarCommand.CommandText = @"Select FilmAdı from ImdbTopTen where ImdbSıra=5";

                connFilms.Open();
                string _filmadı = (string)scalarCommand.ExecuteScalar();
                MessageBox.Show(_filmadı);

            }
            catch (Exception ex)
            {
                MessageBox.Show("eyvah! hata oluştu..");
            }
            finally
            {
                connFilms.Close();
            }

        }

        private void btnExecuteReader_Click(object sender, EventArgs e)
        {
            try
            {
                SqlCommand readerCommand = new SqlCommand();
                readerCommand.Connection = connFilms;
                readerCommand.CommandType = CommandType.Text;
                readerCommand.CommandText = @"select FilmAdı,IMDBSıra,Puan from ImdbTopTen";

                connFilms.Open();
                SqlDataReader reader = readerCommand.ExecuteReader();
                string sonuc = @"Film adı                 IMDBSıra         Puan";
                while (reader.Read())
                {
                   sonuc+=("\n"+reader["FilmAdı"].ToString() + "\t" + reader["IMDBSıra"].ToString()+ "\t"+
                        reader["Puan"].ToString());
                }
                reader.Close();;
                MessageBox.Show(sonuc);

            }
            catch (Exception ex)
            {

                MessageBox.Show("eyvah! hata oluştu..");
            }
            finally
            {
                connFilms.Close();
            }
        }
    }
}

Sql server veritabanı ve C# bağlantısı

Önceki yazımda  Ado.net e kısa bir giriş yapmıştım. Bugün ise c# uygulamamızı, sql server a nasıl bağlayacağımızı öğrenelim. Aslında internette bu konuyla ilgili sayısız kaynak var ancak karmaşık olanlarının sayısı da çok. Ben çok daha basit bir dille anlatmaya çalışacağım. Sadece serverdaki bir veritabanıyla, bağlantıyı açıp tekrar kapatacağız. başka bir işlem yapmayacağız. Bunun için önce sql server ın açık olup olmadığını kontrol etmekte fayda var. Bilgisayarımdan yönete girerek servisler ve uygulamalar altındaki sql server configuration manager içindeki sql server 2005 servislerine giriyoruz. Burda SQL Server(SQLEXPRESS )  çalışır durumda olup olmadığını kontrol ediyoruz. kapalıysa açıyoruz ve visual studio ya dönüyoruz. Öncelikli işimiz sql server üzerinde bir veritabanı oluşturmak.  Bunun için server explorerı açıyoruz . (View -> Server Explorer)  Burda Data Connections a sağ tıklayıp Create new Sql Server Database diyoruz. Karşımıza aşağıdaki gibi bir pencere çıkıyor.

göründüğü gibi server name olarak  “.\SQLEXPRESS” diyoruz.  Buradaki nokta localhost umuzu temsil eder nokta yerine bilgisayarımızın ismini de yazabilirdik. Database imize bir isim de verdikten sonra işlem tamam. Dilersek  data connections altında oluşturulan database imize tablolar vs ekleyebiliriz. ama ben şu anda gerekli görmüyorum. Şimdi geldi uygulamamızı yazmaya ve uygulamamız ile yarattığımız database arasında bağlantı oluşturmaya. Bunun için yeni  bir windows forms app oluşturulım ve formumuzun üzerine 2 tane button koyalım isimleri aç ve kapat olsun. Sıra geldi kodlarımızı yazmaya.

Ado.NET , .Net framework kütüphanesinin bir alt kümesidir. Veritabanı işlemlerimizi daha kolay yapabilmek için bu kütüphanenin sınıflarını kullanırız. Önce projemize  kullanacağımız bağlantı nesnelerini içerisinde tutan “using System.Data.SqlClient” uzayını dahil edelim. Şimdi bağlantı nesnemizi  yaratacağız ve connection string imizi bu nesneye parametre olarak vereceğiz.

SqlConnection myCon = new SqlConnection(@”Data Source= .\SQLEXPRESS;
Initial Catalog=FILMS;Integrated Security= True”);

“@ “karakteri hatırlanacağı gibi string içerisindeki ‘ \’ gibi karakterlerden kaçınmak için kullanılıyordu. Data source, veritabanının bulunduğu yeri gösterir. Data source = dedikten sonra eğer kendi makinemize bağlanmak istiyorsak birçok seçeneğimiz var. Bunlar, “localhost” veya “bilgisayarımızın adı” veya “.” veya “bilgisayarımınz ip si” dir. Uzak bir bilgisayara bağlanmak istiyorsak  o bilgisayarın ip sini yazabiliriz. SQLEXPRESS ise bilgisayardaki server ımızın adı. Initial Catalog; o bilgisayar içerisinde hangi database ile bağlantı kuracağımızı tutar. Integrated Security=True  ise sql server a windows oturumu üzerinden bağlanmamızı sağlar. Artık myCon.Open(); dediğimizde bağlantımız açılacaktır.

Şimdi olaya bir başka açıdan bakalım. Diyelim ki bilgisayarımızın adını değiştirdik veya database in adı değiştirildi. Her değişim için uygulamamıza girip connection string imizi değiştirmemiz ve kodu yeniden derlememiz gerekecek. Bu sorunu aşmak için xml den yardım alabiliriz. Xml, bilgilerin kolay anlaşılabilir ve hızlı  bir şekilde kullanılmasını sağlar.Böylece herangi bir değişiklikte Kullanıcı uygulamalarına haber verilerek sorun yaşanmasının önüne geçilir. Bunun için yapmamız gereken bir configuration dosyası oluşturmak. Projemizin solution explorer kısmından references a sağ tıklayıp add reference diyoruz ve karşımıza çıkan pencereden  System.configuration ı reference lerimize ekliyoruz. Bu sayede artık uygulamamıza rahatça konfigürasyon dosyaları ekleyebiliriz.

Şimdi yapmamız gereken solution explorer kısmından projemize sağ tıklayıp add new item diyerek çıkan pencerden Application Configuration File ı bulmak ve eklemek. App.config dosyamızı aşağıdaki gibi düzenleyelim.



  
    
  

Burada yaptığımız işlem  aslında bir değişken tanımlamak ve değişkenin değerine connection stringimizi vermek. Bu sayede uygulama içerisinde sadece bağlantı adımızı kullanarak uygulamadan connection string imizi gizlemiş olacağız. Ayrıca değişkenimizin sadece değerinde değişmeler olabileceğinden uygulamamız bundan dolaylı bir şekilde etkilenecektir. Artık yapmamız gereken şey uygulama kodlarımız içinde bağlantı nesnesini oluşturuken connection stringimizi app.config den okutmak olacak. Şu şekilde yapmalıyız.

SqlConnection myCon = new SqlConnection(System.Configuration.
ConfigurationManager.ConnectionStrings["FilmsConnectionString"].ToString());

Oluşturduğumuz nesnenin parametresini konfigürasyon dosyasından string  olarak okuduk. Burada ConnectionStrings[] içerisinde connection string imizin ismini vererek çağırdık. Direk bir indeks numarısı da yazabilirdik. App.config içerinde birden fazla connection string imiz olduğunda ConnectionString[1].ToString() gibi bir çağırımla bu işlem gerçekleştirilebilir.

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Data.SqlClient;

namespace DBbAĞLANTISI
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

      /*  SqlConnection myCon = new SqlConnection(@"Data Source= .\SQLEXPRESS;
                    Initial Catalog=FILMS;Integrated Security= True");
      */
        SqlConnection myCon = new SqlConnection(System.Configuration.
        ConfigurationManager.ConnectionStrings["FilmsConnectionString"].ToString());

        private void aç_Click(object sender, EventArgs e)
        {
            myCon.Open();
            if (myCon.State == ConnectionState.Open)
                MessageBox.Show("bağlantı açıldı");
        }

        private void kapat_Click(object sender, EventArgs e)
        {
            myCon.Close();
            if (myCon.State == ConnectionState.Closed)
                MessageBox.Show("Bağlantı sonlandırıldı");
        }
    }
}

mycon.State ; bağlantımızın o anda açık veya kapalı olduğunu tutan boolean bir değerdir.

Böylece c# uygulamamızı sql server daki database e bağlamış olduk.

Her türlü connection string için:  http://www.connectionstrings.com/


Ado.net’e giriş

Şubat tatilini fırsat bilerek blogumla biraz ilgileneyim dedim ve blogger ın sadeliğinden ve yeteneksizliğinden kurtulup wordpress’ taşındım. Yeni ve bence gayet güzel bir tema bularak işe başladım. Abartılı eklentilerden sakınarak işe yarar bir kaç eklenti kurdum. Hala ufak tefek sorunlarım olsa da yeni yerimden gayet memnunum…

Şubat tatiline yeni girdik. Bu tatili de tıpkı öncekiler gibi heba etmek yerine birşeyler öğrenmeye ve bazı konularda pratik yapmaya ayırmak istiyorum. Hemen hemen herşeyde olduğu gibi bilgisayar mühendisliğinde de bir parça bütün ilişkisi var. Bu parçaları ayrı ayrı tanımak anlamak ve oturtmaktan sonra başka parçalarla da birleştirebiliyorsak işe yarar duruma geliriz bence. Burdan konuya direk geçiş yapayım. Parçalarımız bir yazılım ve bir adet de veritabanı olsun. Ve biz bu iki parçayı kullanarak işe yarar bir durum ortaya çıkartalım. Yazılımın yaptığı işlem, eldeki veriyi belirlenen prosedürlere göre işlemek ve ortaya bir sonuç çıkarmaktır. Ado.Net’ in yaptığı işlem de bu yazılımın veriye kolay erişimini sağlamaktır. .Net ortamı için geliştirilmiş bu sistem sayesinde veritabanı uzmanı olmaya gerek kalmadan veritabanıyla ilgili gerekli işlemleri kolayca yapabiliriz.

ado.net

Ado.NET te veriye erişimde iki katman bulunur. Bunlar connected layer ve disconnected layer lardır. Her iki katman üzerinde de ilerleyen günlede detaylıca durmayı düşünüyorum. Ancak, kısaca bahsetmem gerekirse; connected layerda, çalıştığımızda database ile birebir etkileşim içinde oluruz. Bu layerın en önemli objeleri command ve data reader dır. Command objesiyle doğrudan veritabanı üzerinde sql ifadelerini kullanarak  veya stored prosedürlerle select ,insert, update, delete gibi  işlemleri gerçekleştirebiliriz.  Data reader ile veritabanı tablolarındaki verileri doğrudan okuyabiliriz. Disconnected layerda ise öncelikli amaç hız ve etkin kaynak kullanımıdır. Bu katmanda kullanılan en önemli objeler data adapter ve dataset tir. Dataset, veritabanında bulunan bir veya bir kaç tablonun belleğe aktarılmış halidir.  Bilgisayar belleğine veritabanın sadece kullandığımız kısmının bir kopyasını alırız. Aktarımdan sonra bağlantıyı keseriz. Dataset nesnesi içerisindeki bu izdüşümle sanki gerçek veritabanı üzerinde çalışıyormuş gibi ilişkiler kurabilir, ekleme,silme, sorgulama,güncelleme gibi işlemleri gerçekleştirebiliriz. Data adapter ise bağlantısız katman uygulamasıyla veritabanı arasında bir köprü görevi görür.İzin verilen ölçüde database den verilerin alınıp uygulama tarafındaki dataset e uyarlanarak taşınmasını sağlar.Uygulama tarafında yaptığımız değişikliklerin de yine aynı şekilde  database’e taşımasından sorumludur.