20 Temmuz 2009 Pazartesi

ORACLE




Oracle da veritabanı dosyaları
Data File SYSAUX.DBF & SYSTEM.DBF
Redo Log File UNDO.DBF
Control File CONTROL.DBF

Data File Verileri içerir Oracle üzerinde sınırsız sayıda Data File oluşturulabilir.
Redo Log File veri üzerinde yapılan her değişiklik bu dosya içinde log lanırlar.
Herhangi bir crash anında sistemi ve bozulan dosyayı otomatik olarak toplamak için kullanılır.
Control File Veri tabanlari ile ilgili data harici bilgilerin ve istatistiklerin tutulduğu dosya.

Oracle XE :
Oraclein kontrol araci http://127.0.0.1:8080/apex
Sistem Yöneticisi Kullanıcı İsimleri system , sys , sysman
Şifre başlangıçda atanan şifre

TableSpace Oracle da bir veritabanı adına Tablespace denilen mantıksal alanlara bölünür. Tablespace içerisinde bir ilişki olan olan veritabanı yapıları barındırır. Online, Offline, Read Only & One User olabilirler.
Sequence tabloların numerik alanlari için seriler üretir. Sequence tablodan bağımsız olduğu için ürettiği değeri birden fazla tabloda kullanmak mümkündür.
Synonym gerçek bir nesne değildir. Varolan nesnelere alias sağlar.

Veri Türleri :
Character char , varchar2 , nvarchar2
char sabit büyüklüklü karakter veri alanı (2000 byte)
char(50) “sedat” , 45 adet boşluk karakteri ekler.
varchar2 değişken büyüklüklü karakter veri alanı (4000 byte)
nvarchar2 4000 byte , Unicode karakter tipi

Sayısal Veri Türleri è
number hem integer hem de reel sayılar için veri tipi
number(x,y) x : hane sayisi , y : virgulden sonraki alan sayisi
number(4,2) 14,12
Number in maximum boyutu 10^130(Express için)

binary_float & binary_double binary float direk olarak byte formatında işlenip saklanır. Buda matematik işlemlerinin daha hızlı yapılmasını sağlar.

LOB(Large Object) veri türleri
BLOB Binary large object
CLOB cumilative large object
binary formatında data tutarlar.
BLOB un max boyutu 8TB
CLOB un max boyutu 128TB
Zaman veri türleri
Date sadece tarih
Timestamp tarih + saat


Constaints (Kısıtlamalar)
Default Value => bir sutuna varsayılan değer ataması yapilabilir.
Not null => sutunun boş bırakılmamasını sağlar
Unique => sutunun benzersiz olmasını sağlar
Check => sutun uzerine boolean bir koşul atanmasını sağlar. Bu koşul insert & update lerde çalışır.
Primary key
Foreign key disallow delete , Cascade Delete , Set Null on Delete

CREATE SEQUENCE "DENEME_SEQ" MINVALUE 1 MAXVALUE 999999999999999999999999999 INCREMENT BY 1 START WITH 1 CACHE 20 NOORDER NOCYCLE
/

Her sequence in 2 adet alt değişkeni vardır.
CURRVAL o andaki değeri
NEXTVAL bir sonraki değeri.




CREATE TABLE "DENEME" (
"NO" NUMBER(18,0) NOT NULL ENABLE,
"ISIM" VARCHAR2(100),
"SOYISIM" VARCHAR2(100),
"GTARIHI" DATE,
CONSTRAINT "DENEME_PK" PRIMARY KEY("NO") ENABLE
)
/

CREATE OR REPLACE TRIGGER "BI_DENEME"
before insert on "DENEME"
for each row
begin
select "DENEME_SEQ".nextval into :NEW.NO from dual;
end;

/
ALTER TRIGGER "BI_DENEME" ENABLE
/


TEMEL ORACLE SQL KOMUTLARI

select country_name "Ülke İsmi" from countries
(sütuna alias tanımlama)

Where ifadesinde kullanılan koşullar :
< , > ,>= ,<= , != , =
between .. and ..
like
in (x,y,z) / not in(x,y,z)
is null / is not null

farklı olanlar : regexp_ınstr
regexp_LIKE
regexp_REPLACE
regexp_SUBSTR

REGEXP => regular expression



select * from employees
where regexp_like(email, '\w{6}' ,'i')
(email değeri en az 6 haneli olanlar.)

REGEX => \w (alphanumeric karakter)

regexp_like belirtilen koşul kelime içinde geçenleri getirir.


select phone_number ,
regexp_replace(phone_number, '(.{3})\.(.{3})\.(.{4})' , '(\1) \2-\3' )
from employees

‘(.{3})\.(.{3})\.(.{4})’ => 3 adet parantez bolgesi
. her hangi bir karakter anlamına gelir.
(.{3}) => birinci bolgede 3 karakter vardir.
\. => . anlamina gelir.


PSEUDOCOLUMNS
sistemi yoneten dual tablosundan elde edilebilecek değerleri temsil ederler.

select sysdate from dual


SYSDATE
02/05/2009

select user from dual



select ROWNUM,JOB_ID,JOB_TITLE from jobs


Sayfalamak için =>
select JOB_ID,JOB_TITLE from jobs where rownum between 1 and 5


****
select t.satir,t.job_title from (select rownum as satir , job_title from jobs) t where satir between 2 and 5;



JOIN ler

Natural join , Normal join , Inner Join , Outer join

Natural Join select first_name,last_name,DEPARTMENT_NAME
from employees natural join departments;
(natural join de on ifadesi vede sütun ismi belirtilmez)
(sistem iki tablodaki aynı isimdeki sutunlara göre otomatik olarak iner join yapar.)

select first_name,last_name,DEPARTMENT_NAME
from employees natural join departments;
Driver lar
Java için … C:\oraclexe\app\oracle\product\10.2.0\server\jdbc\lib
.NET İçin…. C:\oraclexe\app\oracle\product\10.2.0\server\BIN
klasörü altinda oraclient10.dll



Fonksiyonlar :
Aggregate functionlar

** select employee_id,first_name,last_name,salary,
rank() over (order by salary desc) from employees
Salary e göre tersten dizer ve numara verir.

Not : 1 , 2 , 2 , 2 , 5 , 6…. Şeklinde gider.

** select employee_id,first_name,last_name,salary,
dense_rank() over (order by salary desc) from employees

Not : 1 , 2 , 2 , 3 , 4 , 4 , 5 şeklinde gider.

** select rank(15000) within group (order by salary desc) from employees

15000 maaş sıralamasında kaçıncı sırada yer alır.

Not : select rank(:maas) within group (order by salary desc) from employees
Parametreli sorgular parametre ismi (:maas) oracle senden bu değeri kesin ister…

System View leri
System yada sysaux tablespace için login olduktan sonra
Kullanılabilecek olan view lar. Oracle da yönetimsel view lar v$ işareti ile başlar.
System ile login olun.
v$datafile veri dosyaları hakkında temel bilgileri gösterir.
v$session veritabanı üzerinde bulunan tüm sessionlari kullanıcıya gösterir.
v$process o anda yapılan işlemlerin listesi
v$instance oracle.exe nin anlık çalışma durumunu bildirir.


//ORACLE in Web PORTUNU Değiştirmek…

begin
dbms_xdb.sethttpport('8090');
end;


PL/SQL :
Oracle standart kendi içerisinde 2 adet dil barındırır.
SQL (temel sql standartdı ki sql dilini standartlaştıran firma Oracle dir.)
PL/SQL procedural language for SQL
a. Pl/SQL in SQL ile hiçbir alakası yoktur.
b. PL/SQL dili standart sql komutları üzerine programlama yapmak için geliştirilmiş olan script dilidir.
c. PL/SQL standart bir procedurel language in barındırdırdığı tüm özellikleri barındırır.
d. Değişkenler , karar yapıları , döngüler , try-catch , exception lar,function , procedure , stored procedure , advanced cursor lar
Temel PL/SQL kod bloğu…
Declare
…………. (değişken tanımları)
Begin
………… (sql ifadeleri)
End;
/
Declare
x number(8);
Begin
x := 5;
dbms_output.put_line( 'Sayisal Değer ' || To_Char(x) );
End;
declare
satir employees%ROWTYPE;
begin
select * into satir from employees where employee_id = 101;
dbms_output.put_line(satir.first_name || ' ' || satir.last_name);
end;

%ROWTYPE (Generic Type) belirtilen tablodaki bir satıra karşılık gelir.
TYPE (Generic Type) belirtilen sutundaki veri turunu otomatik olarak alir.

declare
satir employees%ROWTYPE;
isim employees.first_name%TYPE;
soyisim employees.last_name%TYPE;
begin
select * into satir from employees where employee_id = 101;
isim := satir.first_name;
soyisim := satir.last_name;
dbms_output.put_line(isim || ' ' || soyisim);
end;
Karar Yapıları
DECLARE
girisTarihi DATE;
satir employees%ROWTYPE;
ikramiye number(8);
BEGIN
select * into satir from employees where employee_id = :eid;
girisTarihi := satir.HIRE_DATE;
IF girisTarihi > TO_DATE('1.1.1999') THEN
ikramiye := 1000;
ELSIF girisTarihi > TO_DATE('1.1.2001') THEN
ikramiye := 500;
ELSE
ikramiye := 100;
END IF;
dbms_output.put_line('Toplam Maas : ' || TO_CHAR( satir.salary + ikramiye ) );
END;
DECLARE
girisTarihi DATE;
satir employees%ROWTYPE;
ikramiye number(8);
BEGIN
select * into satir from employees where employee_id = :eid;
girisTarihi := satir.HIRE_DATE;
CASE
WHEN girisTarihi > TO_DATE('1.1.1999') THEN
ikramiye := 1000;
WHEN girisTarihi > TO_DATE('1.1.1999') THEN
ikramiye := 500;
ELSE
ikramiye := 100;
END CASE;
dbms_output.put_line('Toplam Maas : ' || TO_CHAR( satir.salary + ikramiye ) );
END;

DÖNGÜLER :
FOR Döngüsü kendisini bir index e bağlar ve de bu index değişimlerinde
çalışır.
BEGIN
--for(int i=0;i<10;i++){} //C Tabanlı dillerde kullanılan for döngüsü
FOR i IN 1..10 LOOP
dbms_output.put_line('Sayi : ' || i);
END LOOP;
END;
WHILE Döngüsü while döngüsünün çalışması bir koşula bağlanmıştır.
Koşul doğru olduğu sürece while çalışır. Koşul False ise while durur.
DECLARE
i number := 1;
BEGIN
WHILE i<=10 LOOP
dbms_output.put_line('SAYI : ' || to_char(i));
i := i + 1;
END LOOP;
END;
SONSUZ Döngü : oracle da bulunan sonsuz döngülerin bitişi içerisine yazılan bir exit ifadesi ile mümkündür. Döngü exit ifadesine rastlamaz ise işlem onu gelmez…
DECLARE
i number := 1;
BEGIN
LOOP
dbms_output.put_line('SAYI : ' || to_char(i));
i := i + 1;
EXIT WHEN i > 10;
END LOOP;
END;
GOTO : goto standart da kodun çalışmasını sizin belirlemiş olduğunuz
Bir satira transfer eder. Bu özelliği ile döngü yada if-else ibaresi gibi kullanılabilir.

DECLARE
i number := 1;
BEGIN
<>
dbms_output.put_line('SAYI : ' || to_char(i));
i := i + 1;
if i <= 10 then
GOTO baslangic;
end if;
END;




PROCEDURE :
Procedure kendi görevi ve parametreleri olan program bloğudur. Function lardan farklı olarak Procedure ler değer üretmezler. (void fonksiyonlar)
Procedure ler parametre alabilirler. Aldiklari parametreler IN , OUT yada IN OUT şeklinde tanımlanabilir.
IN input (procedure e değer yollar)
OUT procedure den değer çıkarmak için kullanılır.
IN OUT yolladığın değişkenin üzerinde yapılan değişiklikler orijinal programa yansıtılır. (değişken değeri yollar ve yeni üretileni dışarı çıkartır.)
DECLARE
satir employees%ROWTYPE;
isim employees.first_name%TYPE;
soyisim employees.last_name%TYPE;
maas employees.salary%TYPE;
-- procedure ler DECLARE ifadesi içinde tanımlanırlar.
PROCEDURE ZamliMaas( p1 IN OUT employees.salary%TYPE) AS
BEGIN
p1 := p1 * 1.40;
END ZamliMaas;
BEGIN
select * into satir from employees where employee_id = :empid;
maas := satir.salary;
isim := satir.first_name;
soyisim := satir.last_name;
ZamliMaas(maas);
DBMS_OUTPUT.PUT_LINE(isim || soyisim || ' in yeni maasi : ' || maas);
END;
FUNCTION : Belli bir görevi olan kod bloklarıdır. Aldıkları paramaetreler IN,OUT yada IN OUT şeklinde tanımlanmak zorundadır. Procedure lerden farklı olarak belli bir RETURN TYPE barındırırlar. (return type i olan fonksiyonlara denk gelirler)

DECLARE
satir employees%ROWTYPE;
maas number;
-- Her Function in bir RETURN TYPE i olmak zorunda
FUNCTION ZamliMaas( p1 IN number ) RETURN number AS
sonuc number; -- fonksiyonun kendi içindeki değişken
BEGIN
sonuc := p1 * 1.40;
RETURN Sonuc; -- her function in RETURN ifadesi olacak
END ZamliMaas;
BEGIN
select * into satir from employees where employee_id = :empid;
maas := satir.salary;
DBMS_OUTPUT.PUT_LINE('Yeni Maasi : ' || ZamliMaas(maas));
END;
CURSOR :
Cursor bir SQL Sorgunun ürettiği cevaplar üzerinde haraket ve modifikasyon yeteneği sağlayan özel bir SQL alanıdır.
SQL Veritabanları içerisinde otomatik yada kullanıcı tarafından oluşturulan bir pointer dir.
Java da bulunan ResultSet vede .NET de bulunan Reader ifadeleri database ler üzerinde oluştudukları Cursor lar ile haraket kabiliyeti sağlar.
DECLARE
-- Cursor Definition
CURSOR c1 IS select first_name,last_name from employees;
isim employees.first_name%TYPE;
soyisim employees.last_name%TYPE;
BEGIN
OPEN c1; --Cursor u Aç
LOOP
FETCH c1 INTO isim,soyisim; --CURSOR u ileri al.
EXIT WHEN c1%NOTFOUND; --NOTFOUND cursor un cevap getiremediğini iletir.
DBMS_OUTPUT.PUT_LINE('Eleman İsmi ' || isim || soyisim );
END LOOP;
DBMS_OUTPUT.PUT_LINE('İşlenen Eleman Sayısı : ' || TO_CHAR(c1%ROWCOUNT) );
-- ROWCOUNT ==> Cursor un Fetch ettiği Satır Sayısı
CLOSE c1; --CURSOR u kapat
END;
NOT 1 :
select EXTRACT(MONTH FROM hire_date) "Giriş Ayı" FROM Employees
è Date olarak belirtilen bir alandan tarihin belli bir parçasını almak için kullanılan fonksiyon…
NOT 2 :
select last_name from employees where last_name like q'%'%'
q => baştaki ve sondaki ‘’ a bakar aradaki özel karakterleri atlar.
Parametreli Cursor : Cursor un Fonksiyon gibi Davranmasını sağlar.
Örnek : içinde bulunduğumuz ay içerisinde işe girenlerin maaşları toplamı
DECLARE
toplam NUMBER:= 0;
satir employees%ROWTYPE;
CURSOR c1 (buay NUMBER) IS
select * from employees WHERE EXTRACT(MONTH FROM hire_date) = buay;
BEGIN
--Cursor u açarken parametreyi vermek zorundasınız.
OPEN c1( EXTRACT(MONTH FROM SYSDATE) );
LOOP
FETCH c1 INTO satir;
EXIT WHEN c1%NOTFOUND;
toplam := toplam + satir.salary;
END LOOP;
DBMS_OUTPUT.PUT_LINE('Bu Ay işe girenlere verilen toplam para ' || toplam);
END;
CREATE TABLE sinif (
sinifid number(8,0) not null,
sinifisim varchar2(50),
kontenjan number(8,0)
);
/
CREATE TABLE ogrenci(
ogrenciid number(8,0) not null,
ogrenciisim varchar2(50),
sinifid number(8,0)
);
/
insert into sinif values(1,'A1',5);
/
insert into sinif values(2,'A2',5);
/
insert into sinif values(3,'A3',5);
/
insert into ogrenci values(1,'ogr1',1);
/
insert into ogrenci values(2,'ogr2',1);
insert into ogrenci values(3,'ogr3',1);
insert into ogrenci values(4,'ogr4',1);
insert into ogrenci values(5,'ogr5',1);
insert into ogrenci values(6,'ogr6',2);
insert into ogrenci values(7,'ogr7',2);
insert into ogrenci values(8,'ogr8',2);
insert into ogrenci values(9,'ogr9',3);

SORU : Yukarıdaki tabloda A1 deki öğrencileri dengeyi bozmadan
A2 ve de A3 e eklemek için gereken PL/SQL Komutunu yazınız.
DECLARE
CURSOR c1(s number) IS select * from ogrenci where sinifid = s;
satir ogrenci%ROWTYPE;
sid number;
BEGIN
OPEN c1(1);
LOOP
FETCH c1 into satir;
EXIT WHEN c1%NOTFOUND;
select sinifid into sid FROM
(select t.sinifid,rownum satir FROM
(select sinifid from ogrenci where sinifid<>satir.sinifid
group by sinifid order by count(*)) t)
WHERE ROWNUM = 1;
UPDATE ogrenci SET sinifid = sid where ogrenciid = satir.ogrenciid;
COMMIT;
END LOOP;
CLOSE c1;
END;

28 Ocak 2008 Pazartesi

JAVA

JAVA : Programlama Dili

SDK :

Programlama Platformu dur. SDK (Software Development Kit)

Java SDK , Java SDK Java programcılarına hazır yapılar ve kodlar

sunar. Java OOP mantığı programcılara hazır yapıları sunar. Size görsel objeler (Component lar) ve hazır algoritmik yapıları class halinde sunar.

JCREATOR/ECLIPSE :

IDE (integrated development environment) Java ile Kod

yazabilmek için kullanılan yazılımlar (arabirimler)

* Netbeans (Free)

* Intelli JIDEA

* JBuilder

Application Servers :

Yayınlanmak üzere oluşturulan programların deploy edildiği üst seviye yazılımlar. Apache Tomcat (web siteleri yayını için),

Jboss (EJB) , WebLogic , Jrun** , IBM Server , Sun Server

OOP :

Obje Nedir ? (Object)

Programcılıkta sadece değişkenler ve fonksiyonlar yoktur.

Güncel hayatta yer alan bir soruna cevap verimek isteniyorsa

Güncel hayatta kullanılan yapıların programlcılığa taşınması

gerekir. Nesneler özellikleri (attribute = değişkenler) ve

işlevleri (function) olan programlama yapılarıdır.

Sınıf Nedir? (Class)

Obje iskeleti => bir objenin hangi degiskenleri ve fonksiyonlari

Barindiracagini belirten yapi. Sadece degiskenlerin degerleri

degistirilerek bir class dan sonsuz sayıda farklı obje çıkabilir.

Constructor?

Özel bir fonksiyondur. Bir class dan bir objenin oluşturulmasını

sağlar.

Örnek :

Araba Fabrikası

Araba üretir. (her seferinde ürettiği araba bir diğerinden

kesinlikle farklıdır.)

bu arabaları üretirken onların özelliklerini belirler.

Araba Modelleri vardır yada şemaları vardır.

Bu şemalarda arabanın özellikleri

(motor,hp,koltuk sayısı,rengi vs..)

o arabaların işlevleri olur

(hızlanma, durma) Class

Üretim Bandı Constructor

(üretim bandı her seferinde değişlkenlerin değerini

değiştirerek farklı arabalar üretilmesinin sağlar)

üretim bandından ortaya arabalar çıkar. Kullanıcının

Kullanması için nesneler

Bir pencere ortaya çıkartmak istersek

Frame adı verilen Java da yazılmış class i alırız. Constructor i

Kullanarak ortaya yeni pencereler çıkartırız.

Java History & Binaries

Standart Java SDK

Grapichal Components , Graphics Objects , Printing Objects

Remoting Objects , Networking , Database, Collections

J2SE (standart edition)

J2EE (enterprise edition) EJB , JSP gibi

J2ME (micro edition) à Cep Telefonu ve PALM

Diğer Java SDK ları

Paralı yada Bedava Standart Java SDK nin yapamadığı

işlemler için kullanılır.

JSF Java Server Faces (ileri web uygulamaları için)

Spring Framework (vt işlemleri için)

Hybernate (vt işlemleri için)

Java 6 Şu andaki stabil sürüm, Templete adı verilen kodlama yapısı

Sisteme gömüldü. (jdk 1.6)

Java 7 Beta Sürüm , yeni component lar

Java icerisinde sadece compiler barındırmaz. İşlevleri olan çeşitli programcıklar barındırır.

Javac = java compiler

Java = java programlarını calistirir

Appletviewer = applet leri goruntuler

Keytool = Sertifika Uretici

Rmi = remote obje kontrol programi

Java da paketler

java

awt temel gorsel yapilar

applet java component larinin web sayfalari icine gomulmus hali.

io dosya işlemnleri için

net network işlemleri için

rmi remoting işlemleri için

sql vt işlemleri için

security guvenlik işlemleri için

util genel araçların yer aldığı paket

math matematik işlemleri için

javax

swing ileri gorsel yapılar.

imageio resim işleme

xml xml işleme

5 Ocak 2008 Cumartesi

Normalization

veri toplamasından sonra ilişkisel veri tabanı oluştumak için verinin tablolara bolünme
ve index belirleme isimleri

....................
ogrenci ve dersler(bağlı nesneler ogrenci ders alır)
.....................

ogrenci[ogrenciid,isim,soyisim,telefon,dersisim,ogretmen,dersaat](ogrenci tablosunu oluşturan sutunlar)


ogrenciid-->isim,soyisim,telefon,dersiism,ogretmen,derssaat
dersisim---->dersaat,ogretmen
bu şekile yaptığım bir tabloda ogrenciid tektir yani aslında primarykey sutunu tablonun ke
ndisini ifade eder amam yukardaki tabloda dikkat edersek
dersismini bildiğim bir ogrencinin ogretmen ve derssaat bilgilerine ulaşabilirim
yani aslında bu üçlüden(dersisim,ogretmen,derssaat)oluşan tablonun belirleyicisi
dersisim olacaktır
o zaman onları başka tabloda hazırlayıp dersimi primarykey vermek gerekir




düzgün ve hatasız şekillendirilmiş bir tabloda yer alan sutunlar

primarykey hiç bir sutun tarafından ifade edilemezler.
eger boyle bir durum ortaya çıkarsa tabloda vt anomalyler ortaya çıkar.

silme, ekleme,güncelleme problemleri..........
normalizasyondan önce :anan veri grubunda kaç alt nesne var

ogrenci(ana nesne)
Dersler(baglı nesne)

nesne:tablo
özellik:sutun
......................................
dersler[ders isim,derssaat,ogretmen]
ogrenci[ogrenciid,isim,soyisim,telefon]

yeni yapılan bu tablolar sayesine dersisimle dersler tablosuna vede
ogrenciid ile ogrenci tablosuna direkt olarak referanverebilirim (mecaz anlamada)
o zaman nesneleri bağlama mantığıyla yeni tablomuz



---->ogrencilerin_aldigidersler[dersisim,ogrenciid]
bir sonraki yazıda yazılımda kullanılan nesne tabloları ile devam edeceğizzz...

4 Ocak 2008 Cuma

web server kurulumu

Web Server Kurulumu:

1.) Windows 2003 Server | Linux
2.) Linux --> PHP
W2K3  ASP , ASP.NET
3.) Hazır Server-Client Yapısı
a. Server -> Web Server
b. Client -> Browser
4.) Web Server lar :
a. Browser ile veri yayinlayanan makine arasindaki tüm iletişim kontrol eder : (IIS ,Apache, Jakarta Tomcat)
b. Web Server seçimi sitenin temeli olulşturacak olan dil seçimini de belirler. (IIS – ASP.NET , Apache – PHP , Tomcat - JSP)

Web iletişimindeki güvenlikten tamamen web server sorumludur

Web server browser
Asp.net(SQL server)--------------------- client



Browser a adres yazildiktan sonra web server devreye girer. Browser in istegini sayfaya bakar. Sayfayi interpret eder. Buna kendindeki değişkenleri ekler ve browser a sonucu gönderir.Browser sadece HTML formatindaki veriyi işler ve javascript çalıştırabilir.

5.) Site güvenliği için 1 adet firewall

6.) Veri kaynagi icin bir adet veritabani.

7.) DNS yapisi ve ayarlari ->
4 byte lik sayisal adres --> ipv4 adresi
iletişim sadece adresler ile yapilir. Bu sebeple web isimlerinin adreslerini tutan vede bu adresleri sorgulayabilen server lar bulunmasi gerekir. Bu server lar DNS server olarak bilinirler.





ROOT DNS ---> IEEE/internet.org/w3.org adli bagimsiz !!!!
kuruluşlar tarafindan kontrol edilen 13 adet olan
tüm dünyanin DNS bilgisini tutan ana server lar.

NODE DNS --> ülke ya da bölge bazinda alan adi yonlendirmelerini
yapan dns ler. (ULAKNET)

LOCAL DNS ---> kendi yaptiginiz site icin alan adi kayitlarini tutar.
(domain)alan adi  abc.com
(sub-domain)alt isim  www.abc.com



Root dns ipleri

4.2.2.1 , 4.2.2.2 , 4.2.2.3 , 4.2.2.4 , 4.2.2.5 , 4.2.2.6

DNS SORGUSU :

Cmd

Nslookup

Server 4.2.2.1------ root dns sorgusu için)

www.google.com.tr

web programcılığı

Web Programcılığı :

Web (www) yayınları text ve resim tabanlı yayınlardır. Web işlemleri bir browser ve bir web server arasında yürür. Browser kullanıcı etkileşim tarafı. Web server sunucu etkileşim tarafı diye bilinir.
Web yazılımlarında browser vasıtası ile kullanıcı ile etkileşime girebilmek için özel bir dil kullanılır. (DHTML = HTML + CSS + Javascript) bu dil ile üretilen arayüz kullanıcıya yani browser a gönderilir. Server in kullanıcı komutlarına göre browser a gönderilecek sayfayi belirlemesi gerekir. (Komutlar. Form araçları : metin kutusu,buton,linkler vs... vasıtasi ile girilir.) Bu komutları işlemek için HTML dili kullanılamaz. HTML sadece görsel bir dildir. Komutların işlenmesi için web komnutlarını algılayabilcek özel bir dil gerekir.
Bu diller :
ASP
JSP
PHP
ASP.NET
COLDFUSION& CGI tabanlı diller.



Web programlama dilleri compile edilmezler , benzer bir işlem olan interpret işlemi gerçekleştirilir. Bu dillerin interpret işlemi için ayrı yazılımlar kullanılır.
Bu yazılımlar web server lardır.

ASP ---->IIS -->windows a gömülü (XP home hariç)
ASP.NET --->IIS (with .Net support)
PHP --->Apache -->linux lara gömülü
JSP -----> Jakarta Tomcat -->bazı linux lara gömülü
Coldfusion -->JRUN --->kurulması gerekir.


IIS : Internet information server

C:\inetpub\wwwroot ---> IIS in temel klasörü

Eğer kendi bilgisayarınız ise ---> http://localhost

http://localhost:8080

eğer başka bir bilgisayar ise http://ipadresi/sayfaismi



DNS Server : her bilgisayarın bir ip adresi vardır. Ama genellikle sistemlere erişim isimlerle yapilir. İnternet üzerinde bilgisayarlara isim vermek için DNS server lar kullanılır.
Domain name 2 parçalı isim sistemi ..
alanadi.sistemuzantisi



www.google.com ----> bir domain name değildir. Bir web adresi dir.
Buradaki domain name ---> google.com dur.
www ise google.com a ait bir sub-domain dir.
mail de google.com a ait bir sub-domain dir.Bu sebeple www.google.com ve mail.google.com gibi adresler oluşur.

PORT nedir

PORT NEDİR?


Bilgisayarda donanım-donanım , yazılım-donanım , yazılım-yazılım arasında sağlanacak veri iletişimlerinin yapıldığı gerçek yada sanal veri yolları.

Gerçek Portlar : genellikle donanımların birbiri arasındaki iletişimleri için kullanılar portlardır. (USB,COM,PARALEL,SERİ)

Sanal Portlar : yazılımlar arasında kullanılan veri yollarına verilen isimler. (bu sanal portlar 1-65536 ya kadar numarlarla ifade edilirler.) Yazılımlar arası mesajlaşma için yazılmlar dinleme moduna geçmelidir.

Komut: netstat –an

Yazılım bekleme moduna geçmesi için açık portlardan birini reserve etmesi gerekir. (reserve edilmiş port başka bir yazılım tarafından reserve edilemez.)
Bir web server standart olarak “80” portunu kapatır.

Erişim ipadresi:80

Standart erişim sistemlerinin kullandığı portlar

Web Server = 80,443

FTP Server = 21

Mail Server

SMTP : 25 (mail gönderimi)

POP : 110 (mail alımı)

RDP è 3389

Tüm liste için

http://www.iana.org/assignments/port-numbers

Web Server (http,https)

File Server (ftp)

blogger templates | Make Money Online