2016 eğitim öğretim yılı işletmelerde beceri eğitimi dersi bilişim

advertisement
2015 - 2016 EĞİTİM ÖĞRETİM YILI
İŞLETMELERDE BECERİ EĞİTİMİ DERSİ
BİLİŞİM TEKNOLOJİLERİ ALANI
VERİ TABANI PROGRAMCILIĞI DALI
DERS NOTLARI
DONANIM BİRİMLERİ
İÇ DONANIM BİRİMLERİ
ANA KARTLAR
Ana Kart Nedir, Yapısı Nasıldır?
Anakart, bir bilgisayarın tüm parçalarını üzerinde barındıran ve bu parçaların iletişimini sağlayan elektronik devredir.
Ana Kartın Bileşenleri
1.Yonga Seti (Chipset)
Yonga seti (chipset) ana kartın "beynini" oluşturan entegre devrelerdir. Bunlara bilgisayarın trafik polisleri diyebiliriz:
işlemci, önbellek, sistem veri yolları, çevre birimleri; kısacası PC içindeki her şey arasındaki veri akışını denetlerler.
2. Veri Yolları (BUS)
Ana kart üzerindeki bileşenlerin birbirleriyle etkileşimde bulunmasını sağlarlar. Veri yolları geliştirilme sırası ile ISA
(Industry Standard Architecture), PCI (Peripheral Componet Interconnect) , AGP (Advanced Graphics Port) ve PCIe (Peripheral
Componet Interconnect Express)’dir
ISA (Industry Standard Architecture): En eski veriyoludur. Günümüzde kullanılmamaktadır.
PCI (Peripheral Component Interconnect): Halen sıklıkla kullanılan veriyoludur. Tak ve Çalıştır desteği vardır.
PCI Express : Şu anki en hızlı veri yoludur. Ekran kartları da dahil olmak üzere birçok kart takılabilir.
AGP (Accelerated Graphics Port) : Ekran kartları için özel olarak yapılmış PCI’dan daha hızlı bir veri yoludur.
3. Portlar ve Konnektörler
1. PS/2 Fare Portu: Yeşil renkte olan bu port, PS/2 fareler içindir.
2. Paralel Port: 25-pin’li port konnektörlere yazıcı, scanner ve diğer aygıtların takılabilir.
3. LAN (RJ-45) Port: Yerel alan ağlarında ağa bağlanmak için kullanılır.
4. Ses Girişi: Açık mavi renkte olan bu porta teyp, CD, DVD çalar ya da diğer ses kaynakları bağlanabilir.
5. Ses Çıkışı: Açık yeşil renkte olan bu porta kulaklık, hoparlör takılabilir.
6. Mikrofon Girişi: Pembe renkte olan bu porta mikrofon takılabilir.
7 ve 8. USB Port: USB cihazlar yeni yeni yaygınlaşmaktadır. USB portlara neredeyse her tür harici cihaz bağlanabilir.
Özelliği, seri ve paralel portlara göre çok daha hızlı olması ve USB aygıtlar üzerindeki yeni USB portları aracılığı ile uç uca
çok sayıda cihazın zincirleme bağlanabilmesidir.
9. VGA Port: 15-pin’li VGA porta monitör bağlanır.
10. Seri Port:Bu 9-pin’li COM porta seri aygıtlar bağlanabilir.
11. PS/2 Klavye Portu: Mor renkte olan bu porta klavye bağlanır.
4. Anakart Üzerindeki Bağlantı Soketleri:
1.Floppy Bağlantısı:
2.IDE Bağlantısı
3.SATA Konnektörleri:
4. Fan Konnektörleri:
5. Dijital Audio Konnektör
6. ATX Güç Konnektörleri
7. USB Konnektörler:
8. Sistem Panel Konnektörleri
9. İşlemci Soketi
10. Bellek Yuvaları
11. Bios ve Bios Pili
Ana Kart Çeşitleri
1. XT Ana Kartlar: İlk kişisel bilgisayarlarda kullanılan ana kartlardır. 8086 veya 8088 mikroişlemcileri üzerinde sabit olarak taşıyan
bu ana kartın ek donanım birimi sadece 8 bit olmalıdır.
2. AT Ana Kartlar: XT anakartlardan sonra günümüzde kullanılan ATX anakartlara benzeyen ama sadece 5 ve 12 volt güç alan
anakartlardır.PS/2 desteği yoktur.ISA, PCI ve AGP veri yolları ile değiştirilebilir işlemci desteği sunar.
3. ATX Ana Kartlar: Kendinden önceki ana kart standartlarına göre daha fazla giriş/çıkış birimi sunar. Bellek yuvaları orta kısımda
yer alır ve erişimi kolaydır. ATX ana kartları kullanmak için ATX kasalar gerekir. İşletim sisteminin özelliklerine göre güç yönetimi
düzenlenebilir. Örneğin Windows işletim sistemi kapatıldığında bilgisayarın otomatik olarak kapatılması sağlanabilir.
İŞLEMCİLER
İşlemci Nedir?
İşlemci, bilgisayarın birimlerinin çalışmasını ve bu birimler arasındaki veri akışını kontrol eden, veri işleme görevlerini yerine
getiren elektronik aygıttır.
İşlemciye ne yapmasını istediğimizi söyleyen programlar olmadığı sürece işlemci bir işe yaramaz. Bilgisayarda tüm programlar
sabit diskte (hard disk) tutulur.
İşlemci her saniyede milyonlarca, hatta milyarlarca komutu işleyebilir. Sabit disk, işlemcinin komut işleme hızına ulaşamaz. Bu
sorunu ortadan kaldırmak için programlar sabit diskten alınarak RAM’e yüklenir. RAM’den de işlemciye aktarılır. Verinin sabit
disk, RAM ve işlemci arasındaki akışı tek yönlü bir işlem değildir. İşlemcinin yaptığı işlemler sonucunda ürettiği veriler de
işlemciden, RAM’e ve oradan da sabit diske alınarak, sabit diskte tutulur.
MERKEZİ İŞLEM BİRİMİ
ÇIKIŞ
BİRİMİ
GİRİŞ
BİRİMİ
İşlemcilerin Görevleri
Bilgiyi alma
Bilgiyi işleme
Bilgiyi saklama
Bilgiyi gönderme
RAM
DEPOLAMA BİRİMİ
Şekil: Bilgisayarın İç Yapısı
İşlemcinin Yapısı:
ALU
KONTROL
BİRİMİ
CORE
GİRİŞ
BİRİMİ
ÇIKIŞ
BİRİMİ
CACHE
RAM
DEPOLAMA BİRİMİ
Şekil: İşlemcinin İç Yapısı
İşlemcinin yapısında bulunan birimler aşağıda kısaca açıklanmıştır.
A) Çekirdek (Core): Komut çalıştırma işlemlerini yapan bölümdür. Çalıştırma birimi (execution unit) olarak da bilinir.
B) ALU (Aritmetik Lojik Unit / Aritmetik Mantık Birimi): İşlemci tarafından gerçekleştirilecek matematiksel ve mantıksal
işlemlerin yapıldığı bölümdür.
C) Ön Bellek (Cache): Sistem belleğinden gelen veriler, çoğunlukla CPU’nun hızına yetişemezler. Bu problemi çözmek için CPU
içinde yüksek hızlı hafızalar bulunur. Ön bellek çalışmakta olan programa ait komutların, verilerin geçici olarak saklandığı yüksek
hızlı hafızalardır. İşlemcinin komutları daha hızlı yüklemesini sağlayan bu hafıza genellikle L1 (Level 1) ve L2 (Level 2) olmak üzere
iki kısımdan oluşur. İşlemci, ihtiyaç duyduğu komutu ilk önce L1 ön bellekte (L1 ön bellek L2 ön bellekten daha hızlıdır.) arar. Eğer
işlemcinin aradığı komut burada yoksa L2 önbelleğe bakar. Eğer burada da yoksa sırasıyla RAM ve sabit disk üzerindeki sanal
hafıza üzerinde arar. Ön belleklerin kimisi işlemci ile aynı hızda çalışır.
D) Kontrol Birimi : İşlemciye gönderilen komutların çözülüp (komutun ne anlama geldiğinin tanımlanması) işletilmesini sağlar.
İşlemci içindeki birimlerin ve dışındaki birimlerin eş zamanlı olarak çalışmasını sağlayan kontrol sinyalleri bu birim tarafından
üretilir.
İşlemciler bilgisayarı yönetmek, kontrol etmek için iletişim yollarını kullanır. Hem işlemci içerisinde hem de işlemciyle diğer
birimler arasında iletişim hatları bulunmaktadır.
Adres Yolu (Address Buses): İşlemcinin bilgi yazacağı veya okuyacağı her hafıza hücresinin ve çevre birimlerinin bir adresi vardır.
İşlemci, bu adresleri bu birimlere ulaşmak için kullanır.
Veri Yolu (Data Buses): İşlemci, hafıza elemanları ve çevresel birimleriyle çift yönlü veri akışını sağlar.
Kontrol Yolu (Control Buses): İşlemcinin diğer birimleri yönetmek ve eş zamanlamayı (senkronizasyon) sağlamak amacı ile
kullandığı sinyallerin gönderildiği yoldur.
Bilginin Getirilmesi:
İşlemci tarafından işlenecek bilgi önce ön bellekte aranır. Ön bellekte yoksa işlemci RAM bellekten gerekli bilgiyi ister. İstenen
bilgi ön bellekte de yoksa Sabit Diskten getirilir. Bellekler arasındaki hız ilişkisi;
Ön Bellek > RAM > Sabit Disk şeklindeyken kapasite ters orantılıdır. Yani Sabit Disk > RAM Bellek > İşlemci.
İşlemci tarafından istenen bilgi parçalar halinde sabit diskten RAM belleğe ordan da ön belleğe aktarılarak iletilir. Dolayısıyla
işlemci Sabit diske kadar gidip veri almak zorunda kaldığı durumlarda, veriyi beklemesi gerekecek ve bilgisayar yavaş çalışacaktır.
İşlemcilerin Soğutulması
Üç Çeşit Soğutma Vardır
Hava+Fan Soğutma: İşlemcinin üzerinde soğutucu ve onun da üzerinde fan bulunur. Soğutucu alüminyum veya bakır olabilir.
Soğutucu işlemci üzerindeki sıcaklığı kanatlarına yayar ve üzerindeki fan da bu ısıyı işlemciden uzaklaştırır. Soğutucu ile işlemci
yüzeyi arasına termal macun sürülerek ısı iletiminin daha iyi olması sağlanır.
Su İle Soğutma: İşlemci üzerinde bulunan düzenek içerisinde su dolaşmaktadır. İşlemcinin üzerinde ısınan su radyatöre taşını ve
fan yardımıyla soğutulan su tekrar işlemcinin üzerinde gönderilir. Böylece işlemcinin sürekli soğuk kalması sağlanır.
Isıl Borulu Soğutma: İşlemci üzerindeki düzenek içerisinde çok kolay buharlaşıp tekrar yoğunlaşabilen özel bir sıvı bulunur. Boru
içerisindeki sıvı işlemcinin sıcaklığıyla buharlaşarak borunun üst kısmına yükselir. Borunun tavanına çarpan buhar tekrar
soğuyarak işlemcinin üzerine düşer böylece işlemci soğuk kalır.
BELLEKLER
RAM Bellekler
Rastgele Erişimli Bellek manasına gelen RAM; işletim sisteminin, çalışan programların veya kullanılan bilginin geçici olarak
depolandığı yerdir.
 RAM, ön bellekten sonraki en hızlı bellektir
 Geçici Belleklerdir yani bilgisayar kapandığında RAM deki bilgiler silinir
 RAM ler birbirinden tamamen bağımsız hücrelerden oluşur.
 Her hücrenin kendine ait farklı bir adresi vardır.
 Her hücrenin çift yönlü bir çıkışı vardır.
RAM genellikle ana kart üzerindeki SIMM (Single Inline Memory Modules) veya DIMM (Dual Inline Memory Modules) adı verilen
yuvalara takılır.
Yarı İletken Özeliklerine Göre RAM Bellek Çeşitleri
SRAM (Static Random Access Memory-Statik Rastgele Erişimli Bellek)
SRAM’ler DRAM’lerden daha hızlıdır.
SRAM’lerin üretim maliyetlerinin DRAM’lerinkine oranla çok daha yüksektir.
DRAM ( Dynamic Ramdom Access Memory-Dinamik Rastgele Erişimli Hafıza)
DRAM’lerin bellek tasarımcılarına çekici gelmesinin, özellikle de bellek büyük olduğu zaman, çeşitli nedenleri vardır.
Teknolojik Gelişimlerine Göre Ram Çeşitleri:
FPM DRAM (Fast Page Mode DRAM-Hızlı Sayfa Modu DRAM)
EDO DRAM (Extended Data Out–Genişletilmiş Veri Çıkışı)
SDRAM (Senkronize DRAM)
DDR SDRAM (Double Data Rate SDRAM)
DRD RAM ( Direct Rambus DRAM)
ROM ( Read Only Memory )
ROM, RAM'in aksine üzerindeki bilgiler kalıcıdır. ROM birimine bilgi kalıcı olarak yerleştirilmiştir ve içerik kesinlikle değiştirilemez.
Bilgisayarınızı kapatsanız bile üzerindeki bilgiler gitmeyecektir
ROM'un birkaç versiyonu vardır.
PROM (Programable Read Only Memory-Programlanabilir Yalnızca Okunur Bellek)
EPROM (Erasable Programmable Read Only Memory – Silinebilir Programlanabilir Yalnızca Okunur Bellek)
EEPROM (Electrically Erasable Read Only Memory - Elektiksel Olarak Silinebilen Programlanabilen Yalnızca Okunur Bellek)
FLASH ROM (EEPROMlar ile aynıdır ancak daha hızlıdır)
SABİT DİSKLER
Sabit Diskin Görevi
Sabit disk adından anlaşılacağı üzere verilerin sürekli olarak saklanması istenen durumlarda kullanılır. Bilgisayarın çevre
birimleriyle uyumlu bir şekilde çalışması için gerekli işletim sistemi sabit disk üzerine kurulur. Ayrıca sürekli çalışması gereken
yazılımlar da sabit disk üzerinde tutulur.
Bir sabit disk kullanılmaya başlanmadan önce formatlanması gerekir (biçimlendirilir). Bir sabit diskin formatlanması demek,
üzerine yazılacak bilgilerin nereye ve hangi standartlara göre yazılacağının belirtilmesi demektir. Formatlama işlemi yapılmamış
bir sabit diskin üzerine anlamlı bilgi kümeleri yazmak söz konusu değildir.
Sabit Diskin Yapısı
Sabit diskler dönen disklerden oluşmaktadır.
Diskler alüminyum veya cam gibi manyetik özelliği olmayan malzemeden yapılırlar.
Her bir diskin yüzeyi manyetik alan etkisine sahip bantlarla kaplanır.
Manyetik diskler üzerindeki dairesel çizgilere iz (track) denir
Track ler üzerinde ayrılmış alanlara ise sector denir.
Pizza dilimi gibi görünen kısımlara ise küme (cluster) adı verilir
Sabit Disk Çeşitleri
1. IDE-EIDE (PATA)
Advanced Technology Attachment kelimelerinin baş harflerinden oluşan ATA, kişisel bilgisayarlarda harddisk ve CD-ROM gibi
depolama aygıtlarıyla bilgisayar arasında veri iletişimi gerçekleştiren bir arayüz standardıdır. ATA kısaltması için farklı kısaltmalar
yaygın biçimde kullanılmaktadır (IDE, ATAPI ve UDMA).
2. SCSI
SCSI’nin sunduğu yüksek veri hızı oranları ve çok sayıda cihaz bağlanabilme özelliği nedeniyle iş istasyonları, sunucular ve yüksek
seviyeli sistemlerde SCSI harddiskleri yaygın olarak kullanılmaktadır.
3. Sata
ATA teknolojisinin mirasçısı olarak ortaya çıkmış olup, seri veri iletişimine dayalı bir teknolojidir. Öncelikli olarak bilgisayar veri
yoluyla harddiskler arasında veri iletişimi için geliştirilmiştir.
4. Firewire
5. Usb
6. Fiber Channel
OPTİK DİSK SÜRÜCÜLERİ
Verileri okuma ve yazmanın özel bir ışık sistemiyle gerçekleştirildiği optik depolama birimleridir. Bunları okuyan araçlara ise optik
sürücüler denir.
Üç temel optik disk türü vardır. Bunlar; CD (compact disk), DVD (digital versatile disk / dijital çok yönlü disk) ve BluRay (mavi lazer
teknolojili disk) dir.
CD-ROM ve CD-Writer sürücüleri
CD Çeşitleri
CD-ROM: Fabrikada bir kez kaydedilip daha sonra silinip değiştirilemeyen diskler
CD-R: Piyasaya boş olarak sürülen bir kez veri kaydedildikten sonra silinip değiştirilemeyen disklerdir.
CD-RW: Tekrar tekrar silinip veri kayıt edilebilen disklerdir.
Günümüzde en çok kullanılan CD-R ler ve CD-RW’ler 700 MB kapasitesine sahiptir.
CD-ROM veya CD-writer’ın okuma yazma hızları performansını gösterir. Üzerindeki “x” çarpanıyla ifade edilir. “x” bu donanım
birimi için 150 KB/s anlamındadır. Her CD Writer için üç adet hız değeri vardır bunlar; boş CD yazma hızı, tekrar yazma hızı ve
okuma hızıdır. Yazma hızı, her zaman okuma hızına eşittir ya da ondan daha yavaştır.
Optik sürücüyü bilgisayara bağlamak için üç seçenek vardır. Eğer haricî olarak kullanılacaksa USB, dâhilî olarak
kullanılacaksa IDE veya SATA ara birimleriyle bağlanabilir.
DVD-ROM ve DVD-Writer Sürücüleri
DVD disklerinde DVD-ROM, DVD+R, DVD+RW ve DVD-RAM gibi çeşitleri bulunmaktadır.
DVD’yi en iyi tanımlayan tek kelime kapasitedir. Veri kümeleri burada daha yakın ve daha küçük yapıya kavuşarak aynı büyüklüğe
daha çok veri sığdırılmıştır. Tek katmanlı ve tek yüzlü DVD 4.7GB, çift katman çift yüz DVD diskler ise 17 GB veri
depolayabilmektedir. CD’lerle fiziksel büyüklükleri aynı fakat kapasiteleri farklıdır. DVD diskleri üzerinde 12x, 16x, 24x rakamları
maksimum yazma hızını belirtir. Hız ifadesindeki "x" çarpanı DVD’ler için yaklaşık 1318 kilobayt değerindedir. DVD-RW’ler ise
tekrar tekrar yazılıp silinebilen DVD çeşitleridir.
Blu-Ray sürücüleri
Blu-ray sürücüleri mavi lazer kullanarak diskler üzerinde daha hassas odaklama yapabilmektedir.
Blu-ray’in de CD ve DVD’ye karşılık gelen türleri vardır. BD-ROM, dağıtımlar için sadece okunabilir biçimi, BD-R üzerine veri
kaydedilebilir biçimi, BD-RE ise yeniden yazılabilir biçimi ifade eder.
Tek katmanda 27 GB, çift katmanda 54 GB veri depolayabilir.
DONANIM KARTLARI
EKRAN KARTI
Ekran kartı, mikroişlemcide (CPU) işlenen verileri monitörde görüntülenmesini sağlayan sinyallere dönüştüren bir Genişleme
kartıdır. Ekran kartlarında standart bir monitör (VGA) çıkışı vardır. Günümüzde bazı ekran kartlarında, TV görüntülerini bilgisayar
sisteminde görüntülemek için TV-Out, video görüntülerini için Video-In, dijital çıktı aygıtlarını kullanmak için DVI bağlantıları da
bulunmaktadır.
Ekran Kartının Yapısı
1. Grafik İşlemcisi (GPU)
Grafik işlemcisi görüntü hesaplamalarını ve görüntü işlemlerini ekran kartında gerçekleştiren bir yongadır.
2. Görüntü Belleği (Video RAM)
Görüntü ile ilgili hesaplamaların tutulduğu bellektir. Bilgisayar sistemindeki ana bellek gibi çalışır. Görüntü belleği
bilgileri grafik işlemcisinden alır ve bunları saklar. Görüntü belleğinin büyüklüğü ekran kartının performansıyla doğru orantılıdır.
Yüksek çözünürlükle kaliteli görüntü alabilmek için görüntü belleği kapasitesinin büyük olması gerekir.
3. Dijital Analog Çevirici (RAMDAC )
Ekran kartının görüntü belleğindeki dijital (sayısal) verileri monitörde görüntülenecek analog sinyallere dönüştürerek
ekran kartının monitör çıkışına gönderir. RAMDAC ekran kartı görüntü belleğini saniyede belirli sayıda tarayıp verileri alıp analog
sinyallere dönüştürüp monitöre aktarır.
4. Video BIOS
Video BIOS, ekran kartı içindeki tüm veri akışını düzenler ve ekran kartı bileşenleri arasındaki koordinasyonu sağlar. Bu
işlemleri yapabilmesi için için video bios içinde bir yazılım vardır.
5. Ekran Kartı Çıkış Bağlantıları
VGA-OUT: CRT monitörlerin ve projeksiyon aygıtlarının bağlandığı ve bu aygıtlara görüntü aktarıldığı çıkış portudur.
DVI-OUT: Dijital cihazlara ve LCD ekranlara görüntü aktaran çıkış portudur.
VİDEO-IN/OUT: Televizyon, video, VCD player, DCD gibi aygıtlardan görüntü alan veya aktaran porttur.
HDMI: Yüksek Çözünürlüklü görüntü ve ses aktarmak için kullanılan bir çıkış portudur.
6. Z-Buffer (Tampon Bellek)
7. Video Codec
Ekran Kartının Çalışması
Bilgisayardaki tüm verinin kaynağı mikroişlemcidir. Mikroişlemci
görüntülenmesi istenen bilgiyle ilgili verileri önce RAM belleğe
aktarır daha sonra ordan alınan veriler anakart üzerinden ekran kartı
yuvası yardımıyla ekran kartına aktarılır. Ekran kartına gelen bilgi ilk
önce VIDEORAM belleğe alınır. Burada alınan veri GPU tarafından
işlenerek elde edilen görüntü verisi tekrar VIDEORAM’e yazılır. Eğer
kullanılan monitör CRT ise bellekten alınan veri RAMDAC’a aktarılır.
RAMDAC dijital bilgiyi analog bilgiye çevirerek VGA portu ile
monitöre gönderir. LCD monitör ise görüntü direkt olarak DVI porta
yönlendirilir.
SES KARTI
Ses kartı bilgisayardaki dijital ses verilerini analog ses sinyallere, analog ses sinyallerini de bilgisayarda işlenebilecek dijital
sinyallere dönüştürür.
Bilgisayarda ses kartı olmaması bilgisayarın çalışmasını engellemez. Sadece ses ile ilgili işlemler yapılmaz.
Ses kartları anakartın PCI Express veya PCI slotuna takılır. Günümüzde anakartların çoğunda ses kartlarını anakartla bütünleşiktir
(onboard).
Bazı ses kartları ses kaydederken aynı anda ses de çıkarır, bu tür ses kartları“full-duplex” olarak nitelendirilir.
Ses Kartının Yapısı
DSP (Dijital Sinyal İşlemcisi) : DSP seslerin üretilmesini sağlar. Ses kartına gelen dijital sinyalleri işler. DSP, notaları
hafızadan değişik hızlarda okuyarak sesin çıkmasını sağlar. İşlenenen sinyalleri bilgisayarın işlemcisine gönderir.
DAC (Dijital Analog Çevirici) : Bilgisayardaki dijital ses verileri çıkış birimlerine aktarılırken ses kartındaki dijital analog
çevirici bu verileri analog sinyallere dönüştürüp ses kartının çıkışına gönderir.
ADC (Analog Dijital Çevirici) : Mikrofon veya diğer müzik aygıtlarından alınan analog ses sinyallerini dijital sinyallere
dönüştürür
Bellek : Ses ile ilgili dijital verileri depolamak için kullanılan bellektir. DSP tarafından işlenen veriler bu belleğe
gönderilir.
TAD (Telefon Cevaplama Aygıtı), AUX_IN, CD_IN S/P DIF
Ses Kartının Çalışması
Ses Girişi
Bilgisayarın çevre birimlerinde girilen analog ses sinyalleri ses kartına aktarılır.
Ses kartının analog dijital çeviricisi (ADC) tarafından analog ses sinyalleri dijital
sinyallere dönüştürülerek belleğe aktarılır.
Dijital hale dönüştürülmüş ses sinyalleri DSP tarafından işlenir.
DSP verileri MİB ne gönderir
MİB ise depolanması için depolama birimlerine aktarır.
Ses Çıkışı
MİB, depolama birimlerinden ses bilgilerini alır ve ses kartının belleğine aktarır.
DSP bellekten bilgileri alarak işler ve belleğe tekrar gönderir
DAC tarafından dijital sinyaller analog sinyallere çevrilerek ses kartının çıkışına
gönderilir.
ETHERNET KARTI
Ethernet kartı, bilgisayar ağlarında bilgisayarla ağ arasında iletişimi sağlar.
Ethernet kartlarının çıkış noktaları RJ-45 veya BNC konektörlere uygun olarak tasarlanmıştır. RJ-45 konektörler çift bükümlü
kablolaları, BNC konektörler koaksiyel kabloları kullanır.
Günümüzdeki ethernet kartları R-45 konektörlere uygun olarak üretilmektedir.
Ayrıca bazı ankartlarda ethernet kartları anakarta tümleşik olarak üretilmektedir.
Bu kartlar 10 Mbps, 10/ 100 Mbps, 1000 Mbps gibi farklı veri iletim hızlarına sahiptir.
MAC (Media Access Control) Adresi
Her bir ethernet kartında sadece o karta ait olan bir 48 bitlik numara vardır. Buna MAC adresi denir. MAC adresi üretici firma
tarafından kartın rom belleğine üretim sırasında kaydedilir ve bu numara değiştirilemez.
Bilgisayar ağlarında veri alış-verişi bu MAC adresleri kullanılarak yapılır. MAC adresi ile ethernet kartları birbirlerinden ayırt edilir.
GÜVENLİK KARTI
Güvenlik kartı, sisteminizi bilgisayar virüslerinin etkilerine, kaza sonucu dosyaların silinmesine ya da bozulmasına, elektrik
kesintisinden oluşan yazılım bozulmalarına ve yetkisi olamayan kullanıcıların yapılandırma ayar değişiklerine karşı koruyan
kartlardır.
Tüm yazılım ve donanımlarıyla hazır hâle getirilen bilgisayar sisteminize en son güvenlik kartı monte edilir. Yazılımı yüklendikten
sonra devre dışı bırakabilmek için bir şifre belirlenir. Aktif edildikten sonra çalışma esnasında yapılan bütün değişiklikler,
bilgisayar yeniden başlatıldıktan sonra eski hâline geri dönecektir.
DIŞ DONANIM BİRİMLERİ
Bilgisayarın doğrudan bir parçası olmayan ancak bilgisayara daha sonradan çeşitli portlar vasıtasıyla bağlanan cihazlara dış
donanım birimleri ismini veriyoruz.
MONİTÖRLER
Monitör, bilgisayar içerisindeki bilgilerin kullanıcıya aktarılması amacıyla kullanılır.
Monitör çeşitleri
Monitörler yapılarına göre CRT (Cathode Ray Tube), LCD (Liquid Crystal Display), plazma ve LED olmak üzere 4’e ayrılır. Bilgisayar
monitörlerinde genellikle CRT ve LCD ekranlar kullanılırken Plazma ve LED ekranlar daha çok televizyon ekranı olarak
kullanılmaktadır. Ancak özellikle yeni üretilen laptop modellerinde LED ekranlar da kullanılmaktadır.
CRT (cathode ray tube) monitörler:
LCD (liquid crystal display):
Plazma ekranlar:
LED ekranlar:
Monitör Bağlantıları
Monitörlerle ilgili Temel Kavramlar
Çözünürlük:
Ekranların çıktıları (resim, video, program ara yüzü…) gösterirken kullanacağı nokta sayısını gösterir. Bu noktalara piksel
denmektedir. Yaygın çözünürlük değerlerinden 800x600, 1024x768, 1280x1024 değerleri vardır. Masaüstü bilgisayarlarda
yaygın olarak 800x600 ve 1024x768 değerleri kullanılmaktadır. Çözünürlük azaldıkça ekrandaki resimler daha büyük ve kalitesiz
görülecektir.
Ekran boyutu: Ekranın köşegen uzunluğunu (bir köşesinden diğer köşesine olan uzaklığını) gösterir. İnç olarak ifade edilir. 17, 19,
21, 23, 101… gibi değerler vardır. Ekran boyutu için LCD ekranlarda görülebilir alan (kasa hariç) kastedilirken; CRT ekranlarda
kasa dâhil edilmektedir.
Not: 1 inç = 2.54 cm değerindedir.
İki piksel arası uzaklık (dot pitch): Ekranda iki piksel arası en yakın uzaklığı belirler. Uzaklığın az olması daha fark edilebilir, keskin
renk geçişlerinin olduğu görüntüler anlamına gelir. Günümüzde 0.21, 0.24, 0.25, 0.27, 0.28 mm gibi değerler vardır.
En/boy oranı (aspect ratio): Ekranın en ve boy oranlarını gösterir. Genelde bu oran 4:3’tür. Mesela 1024x768 çözünürlüğe sahip
bilgisayarda en boy oranı 4:3’tür. Ama günümüzde 16:9, 16:10 gibi oranlar da mevcuttur. 16:9 oranına “widescreen” (geniş
ekran) ekran denilmektedir.
Ekran tazeleme oranı (refresh rate): Ekranın baştan aşağıya saniyede taranma sayısını gösterir. Başka bir deyişle ekrandaki
görüntünün saniyedeki oluşurulma sayısıdır. Düşük orana sahip ekrandaki görüntüler titrer ve dolayısıyla kullanıcının gözünü
yorar.
Ölü pikseller: Ölü pikseller görüntü değiştiği hâlde rengi değişmeyen ekran üstündeki noktalardır (piksel).
Tepki süresi: Özellikle LCD ekranların seçiminde önemlidir. Bir pikselin istenen rengi alması için geçen süre onun tepki süresidir.
Ekranlardan bu sürenin az olması istenir.
Görüş açısı: Ekrana belirli bir açıdan bakıldığında oluşan renk kaybıdır. CRT ve plazma ekranlarda görüş açısı daha iyidir.
PROJEKSİYON CİHAZLARI
Bilgisayar veya televizyon ekranındaki görüntüyü daha da büyüterek perdeye ya da duvara yansıtan görüntü cihazlarıdır.
Projeksiyon Cihazı Çeşitleri
Projeksiyon cihazları LCD, LED ve DLP diye üç farklı yapıya sahiptir. Yaygın olarak üretilen ve kullanılan tipler LCD ve DLP
çeşitleridir. Projeksiyon cihazlarında duvardaki görüntüyü oluşturmak için kullanılan ışık kaynağı yüksek güçlü lambadan oluşur.
Kullanılan lambanın ömrü ve gücü, projeksiyon cihazı seçimi açısından önemlidir.
YAZICI (PRINTER)
Bilgisayarda hazırladığınız yazı, hesap tablosu, resim ve benzeri içerikleri kâğıda dökmek amacıyla kullanılır. Yazıcıları
bilgisayarınıza USB veya LPT bağlantısı kullanarak bağlayabileceğiniz gibi kablosuz bağlantıyla çalışan yazıcılar kurmanız da
mümkündür. Bazı ağ cihazlarının ve ADSL modemlerin üzerinde bulunan yazıcı bağlantı noktası ve cihazdaki yazıcı sunucusunu
kullanarak bir yazıcıyı birden çok bilgisayarın aynı anda kullanabileceği ağ yazıcısı olarak da kurabilmektesiniz. Yazıcılar renkli
ve siyah beyaz olarak yazı ve resim basabilmektedir.
Yazıcı Çeşitleri
Nokta Vuruşlu (Dot Matrix) Yazıcılar
Yazma işlemi, mekanik olarak mürekkepli bir şeride yazma kafasının vurması ile (daktilo gibi) gerçekleşir. Yazılar diğer yazıcı
tiplerine göre daha büyük noktalardan oluşur. Sesli çalışır ve aynı anda karbon kâğıdı kullanılarak birden fazla sayfayı yazabilir. Bu
yazıcı seçiminde yazıcı kafadaki pin (iğne) ve kolon sayısı önemlidir. Pin sayısı bir anda kâğıt üzerine bırakılabilecek nokta sayısını
gösterir. Kolon sayısı ise bir satırdaki basılacak harf adedini gösterir. Nokta vuruşlu yazıcılar, sayfa başına düşük yazdırma maliyeti
fakat yüksek yazıcı fiyatına sahiptir. Baskı kaliteleri yüksek değildir. Dolayısıyla sadece metin içeriklerini, genellikle de fatura,
irsaliye ve makbuz yazdırmada kullanılır. Ev kullanımı için uygun değildir.
Mürekkep Püskürtmeli (Ink Jet) Yazıcılar
Mürekkebin kâğıt üzerine püskürtülme esasına dayalı olarak çalışan yazıcılardır. Yazıcı kafası, üzerinde siyah ve renkli mürekkep
kartuşlarını taşır. Yazma sırasında, kâğıdı satırın başından sonuna kadar tarar ve sonra alt satıra geçer. Tarama sırasında
mürekkep püskürtülecek noktalara mürekkep, bu kafa tarafından kâğıt üzerine bırakılır. Kartuşlar genelde ısı ile damla oluşturma
esasına göre mürekkep püskürtür. Tüp içerisinde ısıtıcının ısınarak basıncı artırıp damlanın dışarı çıkmaya zorlanması ile
püskürtme işlemi gerçekleşir. Mürekkep püskürtmeli yazıcılar, günümüzde bulundukları konum itibariyle fotoğraf kalitesinde
resimlerden düşük çözünürlüklü siyah beyaz yazılara kadar çeşitli türde baskı yapabilmektedir. Ayrıca yazıcı fonksiyonuna ek
olarak bünyesinde fotokopi çekebilme ve
resim tarayabilme özelliklerini de barındıran çok fonksiyonlu yazıcı modellerinin sayısı oldukça fazladır. Son yıllarda üretilen
mürekkep püskürtmeli yazıcılara “Bluetooth” üzerinden kablosuz bağlantı ile resim gönderebilme, dijital fotoğraf makinenizin
hafıza kartını yazıcınıza takarak anında baskı alabilme gibi ilave fonksiyonlar da eklenmiştir. İlk satın alma maliyetleri düşük fakat
sayfa başı maliyetleri fazladır.
Lazer Yazıcılar
Lazer yazıcılar, yazım işleminde toner denilen kurumuş mürekkep kullanır. Elektrostatik yükleri üzerinde tutabilen bir tambura
sahiptir. Tambur ilk olarak pozitif yüke sahiptir. Lazer ışını bilgisayardan gelen komuta göre istenen noktaları tarayıp negatif yükle
yükleyerek elektrostatik baskı resminin negatifini oluşturur. Pozitif yüklü noktalar basılacak Şekil, negatif kısımlar ise arkalandır.
Toner tambur üzerinde bu noktalara yapışarak kâğıdın yüzeyine yapıştırılır. Daha sonra kâğıt ısıtılarak toner iyice kâğıt üzerinde
kalıcı hâle getirilir. Sonrasında ise tamburdaki baskısı biten elektrostatik resim temizlenir. Lazer yazıcılar, çok hızlı ve fazla
miktarda baskı yapmanıza imkân verir. Lazer yazıcıların renkli olanları da vardır. Birim sayfa başına düşen maliyet genelde daha
azdır.
Yazıcılarla İlgili Temel Kavramlar
Çözünürlük: Birim alana bırakılabilecek nokta sayısını gösterir. Birimi inç başına düşen nokta sayısıdır (dpi). Çok olması baskı
kalitesini artırır.
TARAYICI (SCANNER)
Kitap, dergi, gazete, fotoğraf gibi çeşitli basılı dokümanlarda bulunan renkli veya siyah beyaz yazıları, resimleri bilgisayar ortamına
aktarmak için tarayıcılar kullanılmaktadır.
Tarayıcılar, dokümanın ince bir satır hâlinde ışıklandırılıp yansıyan ışığın algılanması prensibi ile çalışır. Algılanan ışık seviyeleri
sensör tarafından gerilime dönüştürülerek ADC üzerinden sayısala çevrilip bilgisayara aktarılır. Burada sensörün boyutları ve
ADC’nin çözünürlüğü taranan materyalin kalitesi açısından önemlidir. Işık kaynağı doğrusal ve tek boyutlu bir yapıya sahiptir.
Tarayıcı içerisinde CCD optik algılayıcı, yansıyan ışığı CCD üzerine toplayan lens, yansıyan ışığı CCD üzerine taşıyan aynalar ve tüm
bu sistemi yatay düzlemde ileri geri hareket ettiren step (adım) motor barındırır.
Tarayıcıların Bağlantıları
Tarayıcıların hangi bağlantı noktası üzerinden bilgisayara bağlandığı, verilerin tarandıktan sonra bilgisayara gönderilmesi
aşamasında önemlidir. Bağlantı noktasının bant genişliği ne kadar yüksekse aktarım o kadar hızlı gerçekleşir. Günümüzde paralel
port, SCSI, USB ve firewire arayüzüne sahip tarayıcılar bulunmaktadır.
KAMERALAR
Dijital Kameralar
Dijital kameralar vasıtası ile fotoğraf çekip bunları bilgisayara aktarabilir ya da fotoğraf yazıcıları yardımı ile baskı yapabilirsiniz.
Dijital kameralarla ilgili temel kavramlar
Çözünürlük: Her karede kaç piksel olduğunu gösteren bu değer çektiğiniz fotoğrafın kalitesini belirlemektedir. Çözünürlük
değerinin yüksekliği kaliteyi artıracaktır ancak fotoğrafın hafızada kapladığı alanı da artıracaktır. Çözünürlük değerleri sensör
tipinin çözünürlük değerleridir. Fotoğraf makinelerinde CMOS ve CCD sensör olmak üzere iki tip sensör kullanılmaktadır.
CCD daha çok enerji harcar, kolay ısınır, daha temiz ve kaliteli görüntü elde eder. CMOS ise daha az enerji harcar, ucuzdur,
kolay üretilir fakat daha az kaliteli görüntüler elde eder.
Genişleme yuvası: Dijital kameraların çözünürlükleri yüksek fakat iç hafızaları düşük olduğundan fotoğraf çekme kapasiteleri
tamamen hafıza kartlarına bağlıdır.
Yakınlaşma (zoom) özelliği: Yakınlaşma özelliği optik ve dijital olmak üzere iki çeşittir. Optik yakınlaştırma, mercek ile yapılan
gerçek yakınlaştırmadır. Dijital yakınlaştırma ise yazılımsal yakınlaştırmadır. Kalite kaybına neden olur. Dolayısı ile bir fotoğraf
makinesi alırken en önemli husus dijital zoom oranının yüksekliğinden ziyade, optik zoom oranının yüksekliğidir. Dijital
yakınlaştırmanın diğer adı “interpolasyon”dur.
Diyafram: Diyafram; kullanıcının gündüz veya gece, güneşli ya da kapalı havalarda en ideal fotoğrafı çekmesine imkân tanır.
Diyaframın özelliği, mercek üzerine düşen ışığın miktarını, kapanıp açılarak ayarlayabilmesidir. Diyafram ışık yoğunluğunun fazla
olması durumunda kapanır, az olması durumunda da açılarak genişler. Bu sayede kullanıcı, güneşli ve parlak bir havada da gece
karanlıkta da benzer netliği yakalar.
BİLGİSAYAR KAMERASI (WEBCAM)
Bilgisayara resim ve görüntüyü aktarmak için kullanılan donanım birimidir. WebCam ile evde video ve resimler çekmek, ayrıca
internet alt yapısını kullanarak görüntülü konuşmak mümkündür. Bunun için birçok üretici WebCam üzerine tümleşik olarak
mikrofon koymaktadır. WebCam’ler USB port üzerinden bilgisayara bağlanır.
WebCamler’de görüntüyü yakalamak için optik sensörler kullanılır. Sensörlerin üzerinde binlerce küçük optik (ışık) algılayıcı vardır.
Bu algılayıcılar dışarıdan gelen ışığı elektriksel işarete dönüştürdükten sonra sayısala çevirip bilgisayara gönderir, böylece görüntü
elde edilir. Bir sensör üzerinde ne kadar çok algılayıcı varsa görüntüye ait o kadar çok ayrıntı algılanabilir.
WebCam’ler kullanılan sensör tipine göre CMOS ve CCD olmak üzere ikiye ayrılır. CCD daha çok enerji harcar, kolay ısınır, daha temiz
ve kaliteli görüntü elde eder. CMOS ise daha az enerji harcar, ucuzdur, kolay üretilir fakat dahagürültülü (görüntü üzerinde
istenmeyen noktacıklar) ve daha az kaliteli görüntüler elde eder.
WebCam’lerle ilgili temel kavramlar
Çözünürlük: Sensör üzerindeki algılayıcı miktarını gösterir. Mega piksel
(MP) olarak değerlendirilir. Ne kadar çok olursa o
kadar iyi ve ayrıntıların yer aldığı görüntüler elde edilir
Gece aydınlatmalı LED ışıklar: Gece görüntü almaya yardımcı çeşitli sayıda LED lambalara sahip WebCam’ler, aydınlığı düşük
ortamlarda daha iyi görüntüler elde etmek için kullanılabilir.
Zoom (Büyütme): Görüntüyü daha da büyütmek için gerekli bir özelliktir
FPS (Frame per second): Webcam’in saniyede yakaladığı görüntü sayısını gösterir.
İŞLETİM SİSTEMLERİ KURULUM
BIOS
BIOS terimi; “Basic Input / Output System” (Temel Giriş/ Çıkış Sistemi) kelimelerinin baş harflerinin birleşmesiyle meydana
gelmiştir. BIOS, bilgisayar ilk açıldığı anda çalışmaya başlayan küçük bir yazılımdır
İlk olarak bilgisayarın donanımını tarar ve test eder. Bu işlem Power On Self Test ( İlk açılışta kendini sınama) veya POST olarak
adlandırılır.
BIOS Çeşitleri
Piyasadaki BIOS çeşitleri şunlardır;
 Award Software
 Phoenix BIOS
 AMI BIOS
 Award Medallion BIOS ( Phoenix BIOS + Award BIOS ).
HATA MESAJLARI
Sesli Hata Mesajları
Bilgisayar, POST esnasında ekranın açılışını engelleyici bir hata ile karşılaşırsa, bu hatanın ne olduğunu kullanıcıya
bildirmek için çeşitli ses sinyalleri gönderir. Çeşitli sayı ve uzunlukta olan bu sinyallere “Sesli Hata Mesajları” denir.
Yazılı Hata Mesajları
1. BIOS ROM checksum error - System halted (BIOS ROM kontrol hatası- Sistem durduruldu).
2. CMOS battery failed (CMOS pili hatası).
3. CMOS checksum error - Defaults loaded (CMOS kontrol hatası- Varsayılan ayarlar yüklendi).
4. Floppy disk(s) fail (Disket sürücü).
5. Keyboard error or no keyboard present (Klavye hatasıveya mevcut klavye yok).
6. Memory test fail (Hafıza testi hatası).
7. Hard Disk(s) Fail (Sabit disk hatası).
8. Disk boot failure, insert system disk and press enter (Disk başlatma başarısız, Sistem diskini yerleştirin ve “Enter” tuşuna
basın).
9. Non system disk or disk error. Replace and press any key to continue (when ready) (Sistem disketi değil veya disk bozuk.
Yeniden yerleştir ve devam etmek için (hazır olduğunda) herhangi bir tuşa bas.)
İŞLETİM SİSTEMLERİ GELİŞMİŞ ÖZELLİKLER
Sistem Ve Bakım
1. Sistem Geri Yükleme
Sistem Geri Yükleme, kişisel bilgisayarın sistem dosyalarını ve programlarını her şeyin yolunda gittiği bir zamana döndürerek
sorun giderme için saatlerce çabalamaları potansiyel olarak önler.
2. Disk Birleştirme
Disk birleştirme bir birimdeki (örneğin, bir sabit disk veya depolama aygıtı) verilerin birleştirilmesi işlemidir.
Bir birime dosya kaydettikçe, değiştirdikçe ve sildikçe za man içinde parçalanma ortaya çıkar. Bir dosyada kaydedilen değişiklikler,
genellikle birimde orijinal dosyadan farklı bir yerde depolanır. Bu durum dosyanın işletim sisteminde göründüğü yeri değiştirmez,
yalnızca dosyayı oluşturan bilgi bitlerinin gerçek birimde depolandığı yerleri değiştirir. Zamanla hem dosya hem de birimin kendisi
parçalanır ve bilgisayar tek bir dosyayı açmak için farklı konumlara bakması gerektiğinden yavaşlar.
Disk birleştirici için aşağıdaki yolları izlenir:
“Disk Birleştiricisi”ni açmak için Başlat arama kutusuna Disk Birleştiricisi yazıp ardından sonuç listesinde “Disk Birleştiricisi”
tıklanır.
Yönetici parolası veya onay istenirse parola yazılır veya onay verilir.
“Zamanlamayı Yapılandırma” tıklanıp birleştirmenin saati, sıklığı ve
birleştirilmek istenen birimler seçilip ayar yapılabilir.
3. Disk Denetleme
Bazı bilgisayar sorunları sürücü veya sürücülerde hataları denetleyerek çözülebilir. Örneğin, bazı performans sorunlarını
düzeltmek için bilgisayarın ana sabit diskini denetleyebilir veya bir dış sabit diskin düzgün çalışıp çalışmadığına bakılabilir.
Uygulanması gereken adımlar; BilgisayarDenetlenmesi
istenen SürücüSağ Tık ÖzelliklerAraçlar
SekmesiHata Denetimi'nin altında “şimdi Denetle” kullanılmaktadır.
Tarama işleminin algıladığı dosya ve klasörlerle ilgili sorunları otomatik olarak onarmak için “Dosya Sistemi Hatalarını Otomatik Olarak
Düzelt” seçeneğini belirlenir. Aksi durumda disk denetimi sorunları bildirir ama onarmaz.
Kapsamlı bir disk denetimi gerçekleştirmek için “Bozuk Bölümleri Tarayıp Düzeltmeye Çalış” seçeneği belirlenir. Tarama işlemi,
sürücüdeki fiziksel hataları bulup onarmaya çalışır ve tamamlanması uzun zaman alabilir.
Dosya
hatalarını
ve
fiziksel
hataları
birlikte
denetlemek
için
hem
“Dosya
Sistemi
Hatalarını Otomatik Olarak Düzelt” seçeneğini hem de “Bozuk Bölümleri Tarayıp Düzeltmeye Çalış” seçeneği işaretlenir.
4. Disk Temizle
Diskte yer açarak bilgisayarın daha hızlı çalışmasını sağlamak ve sabit diskteki gereksiz dosyaları azaltmak için “Disk Temizleme”
kullanılır. Bu özellik, geçici dosyaları siler, “Geri DönüĢüm Kutusu”nu boşaltır ve artık gerekmeyen çeşitli sistem dosyaları ile diğer
öğeleri kaldırır.
5. Kayıt Defteri
İşletim sisteminde bulunan; sistem donanımı, yüklü programlar, ayarlar ve bilgisayardaki tüm kullanıcı hesaplarının profilleri
ile ilgili önemli bilgileri içeren bir veri tabanıdır. işletim sistemi ile gelen kayıt defteri düzenleyicisi regedit.exe adlı hizmet
programıdır. İşletim sistemi sürekli olarak kayıt defterindeki bilgilere başvurur.
Kullanıcı Hesapları ve Aile güvenliği
Kullanıcı hesabı oluşturarak kullanıcı hesaplarıyla tek bir bilgisayarı birkaç kişi kolayca paylaşabilir. Herkesin masaüstü arka planı veya
ekran koruyucu gibi benzersiz ayar ve tercihleri olan ayrı bir kullanıcı hesabı bulunabilir. Kullanıcı hesapları, kullanıcıların
erişebileceği dosya ve programları, bilgisayarda yapabilecekleri değişiklikleri denetler.
BİLGİSAYAR AĞLARI
Bilgisayar ağları, birçok bilgisayarın iletişim kolaylığı sağlamak, yazılımları, donanımları, veri veya dosyaları paylaşmak amacıyla
birbirleriyle iletişim kurmalarıyla oluşan yapılardır. Bilgisayar ağları ile zamandan ve mekandan kazanılırken büyük bir maddi
tasarruf da edilir.
Bilgisayarların ağ kurabilmeleri için birbirleriyle iletişim kurmaları esastır. İletişim iki yöntemle yapılır:
Paralel İletişim: Verilerin paralel hatlardan aynı anda bir bilgisayardan diğer bilgisayara aktarılmasıdır. Veriler tek bir seferde
aktarıldığı için hızlıdır.
Seri İletişim: Verilerin tek bir hat üzerinden birbiri arkasına sırayla aktarıldığı iletişim şeklidir. Asenkron ve Senkron seri iletişim
olmak üzere iki çeşittir. Senkron seri iletişimde veri paketi gönderileceği zaman bir hat oluşur ve transferin ardından hat kapatılır.
Asenkron seri iletişimde ise hat her zaman açıktır istenildiği zaman veri gönderilip alınabilir.
NOT: Paralel iletişim yöntemi, seri iletişim yöntemine göre daha hızlı olmasına rağmen paralel portlar, seri portlardan daha
yavaştır.
Bilgisayar Ağları Çeşitleri
Bilgisayarı kapladıkları alana (ağın büyüklüğüne) ya da özelliğine göre gruplandırılabilir
- LAN (Local Area Network – Yerel Alan Ağı)
Aynı oda, aynı bina veya komşu binalar arası kurulan küçük ağlardır. Çok sayıda bilgisayar içermez. LAN ağlarının altyapısı,
kablolaması, ağ ayarları, malzeme temini ağı kuran kişi tarafından sağlanır.
WLAN (Wireless LAN – Kablosuz LAN) : Kablosuz özellikli LAN ağlarıdır
- MAN (Metropolitan Area Network – Metropol Alan Ağı)
LAN ağları biraya gelerek MAN ağlarını oluştururlar. Genellikle şehirlerarası veya geniş bir yerleşkede kurulan ağlardır.
- WAN (Wide Area Network – Geniş Alan Ağı)
LAN ve MAN ağlarının birbirine bağlanmasıyla oluşan geniş ağladır. Geniş alanlarda; farklı mahalle, farklı şehir, farklı ülke, farklı
kıtalar arasında kurulan ağlardır. Çok fazla bilgisayar dahil olabilir. En geniş WAN internettir. Geniş alan ağlarının tesisatı için
servis sağlayıcılardan destek alınır.
- VPN (Virtual Private Network – Sanal Özel Ağ)
Geniş alan ağı üzerinde tanımlanan daraltılmış, sınırlandırılmış özel ağlardır.
- SAN (Storage Area Network – Depolama Alan Ağı)
Depolama alan ağları, büyük ağ kullanıcılarına hizmet vermek üzere farklı tipteki veri depolama cihazlarını birbirine bağlayan ve
bu cihazlar arasında veri alışverişine olanak veren özel amaçlı, yüksek hızlı bir ağdır.
Ağ Topolojileri
Ortak Yol (Bus) Topolojisi:
Şekilde görüldüğü gibi ana bir yol (bus) üzerine T-Konnektörler ile bağlantı
yapılan topolojidir. Hattın başına ve sonuna sonlandırıcı (terminatör)
takılmalıdır. Çok kablo kullanılmadığından ve özel bir cihaza gerek
duyulmadığından kurulması kolay ve ucuzdur. En fazla 30 bilgisayar
bağlanabilir. Hatta veya bilgisayarlardan herhangi birinde oluşan arıza tüm
ağı etkiler ve iletişim kesilir. Dolayısıyla arıza tespiti de zordur.
Yıldız (Star) Topoloji
Merkezi bir birim vardır. Tüm ağ iletişimi o merkezi birim tarafından
sağlanır. Yeni bir bilgisayar eklemek kolaydır. Bilgisayarlardan birinin
bağlantısının kesilmesi sadece o bilgisayarı devre dışı bırakır, ağın
kalanının iletişimi devam eder. Dolayısıyla arıza kolay tespit edilir.
Her bilgisayara ayrı kablo çekildiğinden ve merkezi birim zorunlu
olduğundan daha kurulum maliyeti fazladır. Merkezi birimin
arızalanması durumunda tüm ağ iletişimi kesilir.
Ağaç (Tree) Topoloji
Genellikle yıldız topolojideki ağları birbirine bağlayarak ağı genişletmek için
kullanılır. Ortak Yol ve Yıldız topolojinin birleşmesiyle oluşur denilebilir. Ağacın
gövdesi backbone olarak anılır ve yıldız topolojiye ait merkezi birimler bu gövde
sayesinde birbiriyle iletişim kurar. Backbone’da meydana gelecek arıza tüm ağın
iletişimini koparırken, merkezi birimlerden bilgisayarlara ulaşan kablolardaki
arıza sadece o bilgisayarı devre dışı bırakır. Hiyerarşik ağların kurulmasında
kullanılan bir topolojidir.
Halka (Ring) Topoloji
Bilgisayarların birbirine halka şeklinde bağlandığı topolojidir. Her bilgisayar komşu
bilgisayara bağlıdır. Tek yönlü veri akışı mevcuttur. Bilgisayarlar hattı kullanıp veri
gönderebilmek için token (jeton) kullanırlar. Tokeni alan bilgisayar yayın yapmak
hakkına sahip olur. Gelen ve giden veriler ayrı hatlardan yapıldığı için ağ hızlıdır ve
çarpışma olasılığı düşüktür. Halka içinde oluşabilecek bir arıza tüm ağın iletişimini
koparır.
Karmaşık (Mesh) Topoloji
Ağdaki tüm bilgisayarların birbirine direkt kablolarla bağlandığı topolojidir.
Noktadan noktaya bağlantı olduğu için oldukça ağ çok hızlıdır. Çok fazla kablo
kullanıldığı için maliyet fazladır. Ağ karmaşık yapıda olduğu için bilgisayar sayısı
arttıkça kurulum zorlaşır.
Ağ Cihazları
- Ethernet Kartı
Bilgisayarın ağa bağlanmasını sağlayan RJ45 portunu üzerinde bulundurur. Her Ethernet kartının 48 bitlik ve birbirinden farklı
olan MAC adresi vardır.
- Hub (Dağıtıcı)
En aptal merkezi birimdir. Ağdaki hiçbir bilgisayarın MAC adresini tutmaz. Gönderilecek veri paketini bilgisayarları tek tek
dolaşarak ulaştırır.
- Switch (Anahtar)
Hub’dan daha akıllı bir merkezi birimdir. Ağdaki tüm bilgisayarların MAC adresini kendi listesinde tutar. Veri paketini direkt
bilgisayara göndererek ağı meşgul etmez.
- Router (Yönlendirici)
Switch’ten daha yeteneklidir. Ağ üzerinde veri paketi bir bilgisayardan diğerine giderken en kısa yolu hesap ederek paketi
gönderir.
- Gateway (Geçit Yolu)
Farklı topolojilerdeki ağlar arasındaki iletişimini ve veri akışını düzenler.
- Repeater (Tekrarlayıcı)
Ağın bir ucundan diğer ucuna zayıflayan sinyali kendisine geldiğinde yükselterek (tekrar ederek) kendisinden sonrasına gönderir.
- Access Point (Erişim Noktası)
Kablolu internet bağlantısını kablosuza çevirmek için kullanılan bir cihazdır. Kendisine kablo ile ulaşan bağlantıyı kablosuz olarak
yayın yapar.
- Modem
Bilgisayarların telefon hatlarını kullanarak iletişim kurmalarını sağlar. Modemin görevi, bilgisayardan aldığı digital (sayısal) veriyi
analog veriye çevirerek göndermek ve aynı şekilde karşı taraftaki bilgisayardan gelen analog veriyi tekrar digital veriye çevirerek
bilgisayara iletmektir.
Dial Up (Çevirmeli) Modemler: Günümüzde çok kullanılmayan modemlerdir. İnternet bağlantı hızları çok düşüktür.
İnternete bağlanıldığında telefon hattı meşgul çalar. Dahili (Internal) veya Harici (External) olabilir.
ADSL Modemler: Günümüzde kullanılan modemlerdir. İnternet bağlantı hızları yüksektir. Telefon sinyali ile internet
sinyalini ayırmak için splitter kullanılır. Dolayısıyla internet ve telefon aynı anda kullanılabilir. Ethernet, PCI veya USB uyumlu
olabilirler. Kablosuz (Wireless) modemler de ADSL modemdir.
VDSL Modemler: ADSL modemlerden çok daha hızlıdırlar. Ancak uzun mesafelerde kullanma sakıncalarından dolayı
yüksek hızlı kısa hatlarda kullanılırlar.
AĞ OLUŞTURMA MODELLERİ
OSI Modeli
Ağ altyapısındaki donanım ve yazılımlar arasındaki standardı ifade etmek için kullanılan bir modeldir. Bu model sayesinde
karmaşıklık azaltılmıştır ve belli katmanlarda uzmanlaşılması için referans olmuştur ve 7 katmandan oluşturulmuştur. Bu
katmanların sırası önemlidir.
7. Uygulama katmanı (Application Layer): Yazılımların anlaşabileceği katmandır. Örneğin: HTTP, FTP, TFTP, Telnet...
6. Sunum katmanı (Presentation Layer): Verinin sunum şeklinin belirlendiği katmandır. Örneğin; JPG, MPEG, GIF, ASCII
5. Oturum katmanı (Session Layer): İletişim kuran bilgisayarlar arasında oturum açan ve sonladıran katmandır. Örneğin: SQL,
NFS, Netbios adları
4. Taşıma katmanı (Transport Layer): Verinin nasıl gönderileceğinin belirlendiği katmandır. Örneğin: TCP, UDP
3. Ağ katmanı (Network Layer): Bir veri paketinin ağ içindeki hareketini sağlayan katmandır. Verinin en kısa yoldan hedefe
gitmesinin, donanımların (ip) adreslenmesinin yapıldığı katmandır. Bu katmanda kullanılan protokollere örnek olarak : IP, ARP,
ICMP, RARP, BOOTP
2. Veri bağı katmanı (Data Link Layer): Fiziksel adreslemenin tanımlandığı ve network ortamında verinin nasıl taşınacağının
tanımlandığı katmandır. Örnek protokolleri: ATM, PPP, frame relay, HDLC
1. Fiziksel katman (Physical layer): Bu katman verinin sayısal rakamlara dönüşerek aktarıldığı katmandır. Örneğin, kablolar, hub,
repeater. Bu katmanda herhangi bir protokol yoktur.
TCP/IP Modeli
ABD savunma bölümü tarafından OSI referans modelinin uyarlanmış halidir.
4. Uygulama Katmanı(Application Layer): Farklı sunucular üzerindeki süreç ve uygulamalar arasında olan iletişimi sağlar.
3. Taşıma Katmanı(Host to host or Transport Layer): Noktadan noktaya veri akışını sağlar.
2. İnternet Katmanı: Routerlar ile birbirine bağlanmış ağlar boyunca verinin kaynaktan hedefe yönlendirilmesini sağlar.
1. Ağ Erişim Katmanı: Uç sistem ile alt ağ arasındaki lojik arabirime ilişkin katmandır.
KABLOLAMA
Kablo genellikle çevresi koruyucu tabakalar ile kaplanan, iletimin mümkün olduğunca az veri kayıpla gerçekleşmesini sağlayan
araçlardır. Ağ yapısına göre farklı özelliklerde kullanılabilecek birçok çeşit kablo standardı vardır.
- Koaksiyel Kablo: Eş eksenli kablo da denilir, ses ve video iletiminde kullanılır. Elektromanyetik kirliliğin
yüksek olduğu ortamlarda düşük güçte sinyalleri iletmek için kullanılır. Televizyon uydularında kullanılan
kablodur.
- Çift Bükümlü (Twisted Pair) Kablolar: Birbirine bükülmüş ve koruyucu bir tabaka içine yerleştirilmiş bir veya daha fazla yalıtılmış
kablo çiftidir. İki çeşittir.
 UTP (Unshielded Twisted Pair-Korumasız Çift Bükümlü): En çok kullanılan kablo türüdür.
Bükümlü yapısı sayesinde elektrik sinyallerinin birbiri üzerindeki etkisini nötrleştirir.
Performanslarına göre Cat-1 ile Cat-7 arasında kategorileri vardır. Bilgisayar ağlarında en çok Cat-5
ve Cat-6 kablolar kullanılır.
 STP (Shielded Twisted Pair-Korumalı Çift Bükümlü): Her bükümlü çift kablonun etrafı
korumalıdır. Bu koruma yüzünden maliyet artmaktadır. Ayrıca eğer koruma zırhının topraklanması
gerekir aksi halde elektromanyetik dalgaları toplayarak sinyalin bozulmasına sebep olur. Bu
sebeplerden dolayı çok kullanılmaz.
- Fiber Optik Kablolar: Fiber optik kablolar verileri ışık hızıyla ileten ileri teknoloji iletim ortamlarıdır. Fiber optik kablolar yüksek
veri iletimi için uygun kablolardır.
Konnektör: Koaksiyel kabloların uçlarına BNC konnektörler takılırken, çift bükümlü kabloları sonlandırmak için RJ (Registered
Jack) serisi konnektörler kullanılır. Telefon sistemlerinde RJ-11 veya RJ-12 kullanılırken UTP veya STP kablolar için RJ-45
konnektörü kullanılır. Fiber optik kablolar için ise ST-SC konnektörleri kullanılmaktadır.
UTP veya STP Kablolara RJ-45 Konnektör Takılması
UTP veya STP kabloların içinde çift bükümlü toplam 8 adet kablo bulunmaktadır. Bu kablolar şu renklerdedir: Turuncu (T),
Turuncu-Beyaz (TB), Yeşil (Y), Yeşil-Beyaz (YB), Mavi (M), Mavi-Beyaz (MB), Kahverengi (K), Kahverengi-Beyaz (KB). Kabloları RJ-45
konnektörüne yerleştirirken belirli bir sıraya dikkat etmek gerekir. Bu sıralama için iki adet standart bulunmaktadır. Bu
standartlar 568-A ve 568-B standartlarıdır. Eğer kablonun iki ucuna da aynı standarda uygun konnektör takılırsa düz kablo; birisi
568-A, diğeri 568-B standardına göre takılırsa çapraz kablo yapılmış olur. Standartlara göre kabloların dizilişleri aşağıdaki gibidir.
568-A Standardı: YB-Y-TB-M-MB-T-KB-K
568-B Standardı: TB-T-YB-M-MB-Y-KB-K
PROGRAMLAMA TEMELLERİ
Akış şemalarında kullanılan semboller ve anlamları
Simge
Simgenin Adı ve Anlamı
Elips Akış şemasının başlangıç ve bitiş yerlerini gösterir. Başlangıç
simgesinden çıkış oku vardır. Bitiş simgesinde giriş oku vardır.
Paralel Kenar: Programa veri girişi ve programdan elde edilen sonuçların
çıkış işlemlerini gösterir.(Oku, Yaz)
Dikdörtgen Aritmetik işlemler ve değişik atama işlemlerinin temsil
edilmesi için kullanılır.(A=A+1, Final=100 vb..)
Eşkenar Dörtgen Bir karar verme işlemini temsil eder. (Eğer sayi<0 ise Yaz
“Sayı negatif” vb…)
Altıgen Program içinde belirli blokların ard arda tekrar edileceğini
gösterir.(Döngü kurmak için kullanılır)
Oklar Diyagramın akış yönünü ,yani her hangi bir adımdaki işlem
tamamlandıktan sonra hangi adıma gidileceğini gösterir.
Ayrıntılı bir akış şeması, yazılımı oluşturan işlemleri ve ilişkilerini en küçük detayına kadar belirler.
Bir bilgisayar programının geliştirilmesinde kullanılan programlama dili ne olursa olsun bu programların akış diyagramlarında
genel olarak yalnız üç basit mantıksal yapı kullanılır. Bu mantıksal yapılardan en basiti sıralı yapıdır. Sıralı yapı, hazırlanacak
programdaki her işlemin mantık sırasına göre nerede yer alması gerektiğini vurgular. Bu yapı sona erinceye kadar ikinci bir işlem
başlayamaz.
Şekil 1.2 Sıralı Yapı
Mantıksal yapılardan ikincisi Karar Verme yapısıdır (Şekil 1.3). Programlama sırasında If...Then... Else (Eğer…. <şart> ….İse….)yapısı
ile tanıyacağımız bu mantıksal yapılar, birden fazla sıralı yapı seçeneğini kapsayan modüllerde, hangi şartlarda hangi sıralı yapının
seçileceğini belirler.
Şekil 1.3 Karar Verme Yapısı
Üçüncü mantıksal yapı çeşidini tekrarlı yapılar oluşturmaktadır. Yani döngü oluşturmak için kullanılan yapıdır. Döngüler aynı
işlemin bir çok kez yapılmasını sağlar.Söz konusu üç değişik yapı, değişik kombinezonlarda kullanılarak istenilen işlevleri yerine
getirecek programlar hazırlanabilir. Programların bu üç basit yapı ile sınırlandırılması program modüllerinin daha kolay
tasarlanmasını sağlar.
b
a
Şekil 1.4. Tekrarlı Yapı
VERİ TABANI
SOL DİLİNİN YAPISI
SQL (Structured Query Language), veri tabanındaki verileri okumak, güncellemek, yeni veri eklemek, verileri silmek
vb. gibi işlemleri yapan, program yazarken kolaylıklar sağlayan, satırlarca kodun yaptığı işlemi tek bir sorguda
yapabilen, yapısal bir sorgulama dilidir.
DDL (VERİ TANIMLAMA DİLİ) SORGULAR
TABLO OLUŞTURMA
Sorgu kullanarak tablo oluşturmak için CREATE TABLE ifadesi kullanılır. SQL kodu yazılarak tablo oluşturma aşağıdaki
şekilde yapılmaktadır.
Kullanımı:
CREATE TABLE tablo_adı
(
Sütun1 veri tipi,
Sütun2 veri tipi,
.
.
sütunN veri tipi
)
Örnek:
Aşağıdaki SQL kodları Veri tabanı hazırlama programında yazılıp çalıştırıldığı zaman PERSONEL adında bir tablo
oluşturulur ve bu tablonun sütunları Personel_no, Adı, Soyadı olarak tanımlanmış olur.
TABLO SİLME
Daha önceden oluşturmuş olduğunuz bir tabloya ihtiyaç duymayıp veri tabanından silmek isteyebilirsiniz. Silme
işlemini gerçekleştirmek için DROP deyimi kullanılmaktadır.
Kullanımı:
DROP TABLE tablo
Örnek:
DROP TABLE PERSONEL
Yeni bir sorgu oluşturup yukarıdaki komut satırını yazıp çalıştırdığınız zaman veri tabanı programı önceden
oluşturmuş olduğunuz PERSONEL isimli tabloyu silecektir.
TABLOYA SÜTUN EKLEME
Bir tablo oluşturduktan sonra, isteğe göre oluşturulmuş olan tabloya yeni sütunlar ekleyebilirsiniz. Tabloya yeni bir
sütun eklemek için ADD COLUMN deyimi kullanılır.
Kullanımı:
ALTER TABLE tablo_adı
ADD sütun_adı, veri_türü
Örnek:
Önceden oluşturulmuş olan PERSONEL isimli tabloya “Bölümü” sütununu eklemek istersek SQL ifadesi aşağıdaki
şekilde olacaktır.
DML (VERİ İŞLEME DİLİ) SORGULAR
SELECT DEYİMİNİN YAPISI
Veri tabanında verilere erişebilmek için SELECT deyimi kullanılmaktadır. Select deyimi ile bir tabloda bulunan belli bir
sütun, birden fazla sütun veya tüm sütunları çekebilirsiniz. Bunun yanı sıra sorgulama işlemlerini gerçekleştirmek için
de SELECT deyiminden yararlanılır.
Kullanımı:
SELECT *sütun_listesi+
FROM [tablo_listesi]
Örnek:
SELECT adı FROM PERSONEL
Bu satır ile Personel tablosunda bulunan “adı” alanını seçersiniz.
Örnek:
SELECT * FROM PERSONEL
Bu satır ile Personel tablosunda bulunan tüm alanlar seçilmiş olur.
VERİLERİN SINIRLANDIRILMASI
Veri tabanında veriyi alma işlemi sırasında satırlara birtakım sınırlamalar getirilerek tablonun tüm satırları yerine
istenildiği kadarını elde etmek mümkündür. Tabloda belirli kısımları seçme işlemini gerçekleştirmek için WHERE
sözcüğü kullanılmaktadır.
Kullanımı:
SELECT *sütunlar+
FROM [tablo]
WHERE *koşul+
PERSONEL tablosunda yer alan İl_kodu 34 olan kayıtları listelemek istersek komut satırı aşağıdaki şekilde olacaktır.
Aşağıdaki SQL deyimi, maaşları 2000 TL’den yüksek olan çalışanları seçmeye yarar.
Aşağıdaki tabloda Where komutuyla kullanılabilecek koşul operatörlerine örnekler verilmiştir.
KOŞUL
SORGU SONUCU
200
Maaşın 200 TL olduğu kayıtları döndürür.
Not 2000
Maaşın 2000 TL olmadığı kayıtları döndürür.
< 200
Maaşın 200 TL'den az (<200) olduğu kayıtları döndürür. İkinci ifade
<= 200
(<=200) birim fiyatın 200 TL'ye eşit veya daha az olduğu kayıtları
görüntüler.
>100
Maaşın 100TL'den fazla olduğu kayıtları döndürür. İkinci ifade
>=100
maaşın 100 TL'ye eşit veya daha fazla olduğu kayıtları görüntüler.
100 veya 125
Maaşın 100 TL veya 125 TL olduğu kayıtları döndürür.
>50 ve <100
Maaşın 50 TL ile 100 TL arasında olduğu (ancak dahil değil) kayıtları
-veyadöndürür.
Between 50 and 100
<50 or >100
Maaşın 50 TL ile 100 TL arasında olmadığı kayıtları döndürür.
In(10, 22, 30)
Like "*4,99"
Is Null
Is Not Null
Maaşın 10 TL, 22 TL veya 25 TL olduğu kayıtları döndürür.
Maaşın sonunda "4,99" bulunan, 4,99 TL, 14,99 TL, 24,99 TL vb.
kayıtları döndürür.
NOT* ve % karakterleri bir ifadede kullanıldığı zaman, herhangi bir
sayıda karakteri temsil eder (bunlara joker karakter de denir).
%karakteri * karakteriyle birlikte bir ifadede kullanılamadığı gibi, ?
joker karakteriyle birlikte de bir ifadede kullanılamaz. % joker
karakterini, _ joker karakterini de içeren bir ifadede kullanabilirsiniz.
Maaşı alanına değer girilmeyen kayıtları döndürür.
Maaşı alanında değerin eksik olmadığı kayıtları döndürür.
Örnek:
Fiyatı 50 ile 100 TL arasında olan tüm ürünleri listelemek istersek SQL kodu aşağıdaki şekilde olacaktır.
SELECT * FROM URUN WHERE FİYAT BETWEEN 50 AND 100
Örnek:
İsmi “A” ile başlayan personeller listelenmek istenirse SQL kodu aşağıdaki şekilde olacaktır.
SELECT * FROM PERSONEL WHERE ADI LIKE “A%”
SIRALAMA İŞLEMLERİ
Tabloların satırlarının herhangi bir sütuna göre sıralanmasının istendiği durumlarda SELECT deyimi ORDER BY ile
birlikte kullanılır.
Örnek:
SELECT Soyadı, adı
FROM PERSONEL
ORDER BY Soyadı;
Örnek:
SELECT Soyadı, adı
FROM PERSONEL
ORDER BY Soyadı ASC;
Azalan şekilde sıralama yapmak için (Z'den A'ya, 9'dan 0'a), azalan şekilde sıralamak istenilen her alanın sonuna DESC
sözcüğünün eklenmesi gerekir.
Örnek:
SELECT Soyadı, İl_Kodu
FROM PERSONEL
ORDER BY İl_Kodu DESC, Soyadı
SQL FONKSİYONLARI
SQL fonksiyonları tek satır fonksiyonları ve çoklu satır fonksiyonları (grup fonksiyonları) olmak üzere iki türlüdür. Tek
satır fonksiyonları genelde sadece Fonksiyon olarak adlandırılıp, tablonun her bir satırına uygulanabilen
fonksiyonlardır. Karakter, sayısal, tarih ve dönüştürme olmak üzere farklı türleri vardır.
Karakter fonksiyonları, girdi olarak karakter verilerini alıp, karakter veya sayısal değerler döndürebilen
fonksiyonlardır. Karakter fonksiyonlarından en fazla kullanılanları Tablo 1.3’te gösterilmiştir.
LCASE
Büyük harfleri küçük harflere dönüştürmek için kullanılır.
UCASE
Küçük harfleri büyük harflere dönüştürmek için kullanılır.
MID
Verinin bir parçasını çekmek için kullanılır.
LEN
Bir string ifadesinin veya bir sütundaki verinin uzunluğunu döndürmek için
kullanılır.
Tablo 1.3: Karakter fonksiyonları
Sayısal fonksiyonlar, sayısal veriler üzerinde birtakım işlemleri gerçekleştirmek için kullanılan fonksiyonlardır. Sayısal
fonksiyonlardan en fazla kullanılanları Tablo 1.4’te gösterilmiştir
.ROUND
Sayısal değerleri yuvarlamak için kullanılır.
MOD
İki sayısal değerin, birbirine bölümünden elde edilen kalanı döndürmek için
kullanılır.
Tablo 1.4: Sayısal fonksiyonlar
Dönüştürme fonksiyonları, karakter, sayısal ve tarih verilerinin birbirine dönüştürülmesi için kullanılan
fonksiyonlardır. Dönüştürme fonksiyonlardan en fazla kullanılanları Tablo 1.5’te gösterilmiştir.
CSTR
Tarih ve sayısal bilginin istenildiği gibi biçimlendirilerek karakter dizisine
dönüştürülmesini sağlar.
CINT
Bir dizenin içerdiği sayısal değerleri biçimlendirilerek sayısal veri türüne dönüştürmeye
yarar.
CDATE
Bir dizenin içerdiği tarih verilerinin istenildiği gibi biçimlendirilerek tarih veri türüne
dönüştürmek için kullanılır.
Tablo 1.5: Dönüştürme fonksiyonları
Tarih ve saat fonksiyonları, tarih ve saat ile bilgi almak ve tarih ve saat verilerini biçimlendirmek için kullanılan
fonksiyonlardır. Tarih ve saat fonksiyonlardan en fazla kullanılanları Tablo 1.6’da gösterilmiştir.
NOW
Bilgisayarınızdaki geçerli sistem tarihini ve saatini bildirmek için kullanılır. Örnek: SELECT
Now();
DAY
1 ve 31 dahil olmak üzere bu rakamlar arasında ayın gününü temsil eden bir tam sayı
belirten Variant (Tamsayı) döndürmek için kullanılır.
Örnek: SELECT Day(#11/22/2003#);
Bu kod yazılıp çalıştırıldığında ayın gününü temsil eden “22” sayısı döndürülecektir.
MONTH
Yılın ayını gösteren 1 ile 12 arasında (bu sayılar dahil) bir tam sayı belirten Variant
(Integer) türünde değer döndürmeye yarar.
Örnek: SELECT Month (#22/11/2009#); Bu kod çalıştırıldığı zaman yılın ayını gösteren
“11” değeri döndürülecektir.
YEAR
Yılı gösteren bir tam sayı içeren Variant (Integer) türünde bir değer döndürmeye yarar.
Verilen tarihin yılını döndürür.
Örnek: SELECT Year (#22/11/2012#);
DATEADD
Belirtilen bir zaman aralığı eklenmiş olan bir tarihi içeren Variant (Tarih) veri türünü
döndürür.
Örnek: SELECT DateAdd("yyyy",3,#11/22/2009#);
2009 yılına 3 yıl eklenmiştir
DATEDIFF
Belirtilen iki tarih arasındaki zaman aralıklarının sayısını belirten bir Variant (Long)
döndürür.
Örnek: SELECT DateDiff('m',#11/17/2011#,#1/22/2012#);
Bu kod yazılıp çalıştırıldığı zaman bu zaman dilimleri arasında iki ay fark olduğundan “2”
değeri dönecektir.
DATEPART Verilen bir tarihin belirtilen kısmını içeren bir Variant (Tam sayı) döndürür. Örnek: SELECT
DATEPART("yyyy", "01/04/2012")
Tablo 1.6: Tarih ve saat fonksiyonları
VERİLERİ GRUPLAYARAK ANALİZ ETME
Şu ana kadar incelemiş olduğumuz deyimler söz konusu tablonun tüm satırlarına uygulanmaktaydı. Bazı durumlarda
bazı işlemlerin satırlar yerine gruplara uygulanması gerekmektedir. Veriler gruplara ayrılıp analiz edilir ve bu tür
gruplama işlemleri için de grup fonksiyonları kullanılır.
GRUP FONKSİYONLARI
Tek satır fonksiyonları tablonun bir satırına uygulanıp buna karşılık gelen bir sonuç satırı elde ediliyordu. Bir grup
satıra bir fonksiyonun uygulanmasının söz konusu olduğu durumlara; "çoklu satır" veya "grup fonksiyonları" adı
verilir. Grup fonksiyonları tablonun tüm satırlarına uygulanabilmektedir.
AVG()
Bu fonksiyon, herhangi bir sütunun içerdiği sayısal değerlerin aritmetik ortalamasını
hesaplamak amacıyla kullanılır. Fonksiyonun uygulandığı sütunun veri türü sayısal
olmalıdır.
Örnek: SELECT AVG(NOTLAR) AS ORTALAMA FROM OGRENCİ
SUM()
Sütunların içerdiği sayısal değerleri toplamak amacıyla kullanılan fonksiyondur.
Örnek: SELECT SUM(NOTLAR) AS TOPLAM FROM OGRENCİ
STDEV()
Standart sapma, sayısal verilerin aritmetik ortalamalardan farklarının kareli ortalaması
olarak bilinir. Bu hesaplamayı yapan SQL fonksiyonu ise; STDEV() 'dir.
Örnek: SELECT STDEV(NOTLAR) AS “St SAPMA” FROM OGRENCİ
VARP()
Sorgunun belirtilen alanında bulunan değerler kümesiyle temsil edilen bir grubun
tahmini varyansını gösterir. Varyans, sayısal değerler arasındaki değişkenliği ölçen bir
kavramdır. Standart sapmanın karesi olarak bilinmektedir.
Örnek: SELECT VARP(MAAŞ) AS VARYANS FROM PERSONEL
MAX() ve
Tablodaki değerler arasında en büyük olanı bulmak için MAX(), en küçük olanını bulmak
MIN()
içinse MIN() ve fonksiyonları kullanılır.
Örnek: SELECT MAX(NOLAR) AS “EN YÜKSEK” FROM ÖĞRENCİ
Örnek: SELECT MİN(NOTLAR) AS “EN DÜŞÜK” FROM ÖĞRENCİ
COUNT()
Bir tablodaki kayıtların sayılması amacıyla kullanılan fonksiyondur. COUNT(*)
fonksiyonu, NULL değerleri de içeren tüm kayıtların sayılmasını sağlar. WHERE ile
birlikte kullanılırsa, bu koşula uygun tüm kayıtları sayar. COUNT(sütun) biçiminde
kullanılırsa, söz konusu sütunda NULL değerler içermeyen tüm kayıtların sayılmasına
neden olur.
Örnek: SELECT COUNT(*) AS “ÖĞRENCİ SAYISI” FROM ÖĞRENCİ
Tablo 1.7: Grup fonksiyonları ve örnekleri
BİRDEN FAZLA SÜTUNA GÖRE GRUPLAMA
GROUP BY kullanarak belirtilen alan listesindeki benzer değerlere sahip kayıtları tek bir kayıt olarak birleştirebilirsiniz.
Yani birden fazla sütun için de gruplama yapabilirsiniz.
Kullanımı:
SELECT alanlistesi
FROM tablo
WHERE ölçütler
[GROUP BY grupalanlistesi]
Örnek:
Yukarıdaki PERSONEL tablosunda her ilde yaşayan personel sayısına göre gruplama yapmak istersek SQL kodu
aşağıdaki gibi olacaktır.
Bu kodu çalıştırdığımız zaman PERSONEL tablosunda yer alan personellerin yaşadıkları illere göre sayısı
listelenecektir.
Örnek:
SELECT Count(*) AS Personelsayısı FROM PERSONEL;
Yukarıdaki komut satırı personel tablosunda yer alan toplam personel sayısını gösterir.
INSERT DEYİMİ YAPISI
Bir tabloya yeni veri eklemek için INSERT deyimi kullanılır. INSERT deyimi, INTO ve VALUES ifadeleri ile birlikte
kullanılır ve tabloya yeni veri eklenmesi sağlanır.
Sütun ismi belirtmeden kullanımı:
INSERT INTO tablo
VALUES (değer1, değer2…)
Sütun ismi belirterek kullanımı:
INSERT INTO tablo (sütun1, sütun2…)
VALUES (değer1, değer2…)
Örnek:
Yukarıdaki Personel tablosuna bir kayıt eklemek istiyorsak SQL kodu aşağıdaki şekilde olacaktır.
Örnek:
Personel tablosunda sadece Personel_no ve Bölümü alanlarına veri girişi yapmak istiyorsak SQL sorgu kodu aşağıdaki
şekilde olacaktır.
INSERT INTO PERSONEL(Personel_no, Bölümü)
VALUES (18, 'Müzik');
FONKSİYONLARIN KULLANIMI
INSERT INTO içerisinde fonksiyonlar da kullanılabilmektedir. Örneğin PERSONEL tablosuna yeni bir kayıt eklerken
Giriş_tarihi isimli alana o günün tarih ve zaman bilgisini eklemek istiyorsak komut satırı aşağıdaki gibi olacaktır.
TABLODAKİ VERİLERİ GÜNCELLEME
Bir tabloda bulunan kayıt veya kayıtların istenildiği zaman değiştirilmesi mümkündür. Tablolarda güncelleme işlemini
gerçekleştirmek için UPDATE komutu kullanılır. SET ifadesi ile güncellenecek alanlar ve bu alanların alacakları yeni
değerler belirlenir. WHERE deyimi ile de verilerin güncelleştirilmesi için koşul belirlenir. Eğer WHERE ifadesi ile bir
koşul belirlenmezse tablodaki tüm kayıtlar güncellenmiş olacağından WHERE kullanmaya dikkat edilmesi
gerekmektedir.
Kullanımı:
UPDATE tablo
SET sütun1=değer1, sütun2=değer2,..
WHERE Koşul
Örnek:
Personel tablosunda yer alan 30 numaralı personelin “35” olan İl_Kodu bilgisini “06” olarak değiştirmek isteyelim.
Bu işlem için yazılması gereken SQL kodu aşağıdaki şekilde olacaktır.
UPDATE PERSONEL
SET İl_Kodu = '06'
WHERE Personel_no = 30
Örnek:
PERSONEL tablosundaki tüm illerin kodunu “06” olarak değiştirmek istersek SQL kodları aşağıdaki gibi olmalıdır.
UPDATE PERSONEL
SET İl_Kodu = '06'
WHERE Personel_no
TABLOLARDAN VERİ SİLME
Bir tabloda bulunan kayıt veya kayıtların istenildiği zaman silinmesi mümkündür. Tablolarda silme işlemini
gerçekleştirmek için DELETE komutu kullanılır. DELETE komutu kullanılırken FROM eki ile birlikte tablo ismi yazılarak
hangi tablodan veri silinmesi istendiği belirtilebilir. WHERE deyimi ile de verilerin silinme koşulu belirlenir. Eğer
WHERE ifadesi ile bir koşul belirlenmezse tablodaki tüm kayıtlar silineceğinden WHERE kullanmaya dikkat edilmesi
gerekmektedir.
Kullanımı:
DELETE FROM Tablo
WHERE Koşul
Örnek:
Personel tablosunda yer alan 30 numaralı personeli silmek için yazılacak SQL komutu aşağıdaki gibi olacaktır.
DELETE FROM PERSONEL WHERE Personel_no = 30
Örnek:
Personel tablosunda Bölümü “müzik” ve “resim” olanlar dışındaki diğer kayıtların silinmesini istersek;
Aşağıdaki kodları yazıp çalıştırdığımızda personel tablosundaki Bölümü müzik ve resim olan kayıtlar dışındaki tüm
kayıtlar silinecektir.
DELETE FROM PERSONEL
WHERE Bölümü NOT IN ("müzik", "resim")
ÖRNEK UYGULAMA1
“OGRENCI” adında bir veri tabanı yaratınız. İçinde ”KIMLIK” ,“NOTLAR”,”DERSLER” adında 3 adet tablo oluşturun.
KIMLIK
DERSLER
NOTLAR
TETİKLEYİCİLER (TRIGGER)
Bir tabloda yapılan değişikliğin, diğer bir tabloyu etkilemesini sağlamak amacıyla kullanılan yapılara tetikleyici
(trigger) denir. 3 çeşit tetikleyici yapısı vardır:
Ekleme tetikleyicisi (INSERT Trigger): Bir tabloda ekleme işlemi yapıldığında diğer tablonun bu işlemden etkilenmesi
istendiğinden kullanılır.
Silme tetikleyicisi (DELETE Trigger): Bir tabloda silme işlemi gerçekleştirildiğinde diğer tablonun bu işlemden
etkilenmesi istendiğinde kullanılır.
Güncelleme tetikleyicisi (UPDATE Trigger): Bir tabloda güncelleme işlemi gerçekleştirildiğinde diğer tablonun bu
işlemden etkilenmesi istendiğinde kullanılır.
Yeni Tetikleyici Oluşturma
Genel yapısı aşağıdaki gibidir
ORNEK
URUNLER1 TABLOSU
urunid
1
2
3
urunadi
Defter
Kalem
Silgi
urunadeti
150
200
80
SATISLAR TABLOSU
satisid
1
2
3
urunid
1
1
2
satisadeti
20
40
5
INSERT TRIGGER
Create trigger EKLE
on satislar
for insert
as
begin
declare @urunid int
declare @satisadeti int
select @urunid=urunid from inserted
select @satisadeti = satisadeti from inserted
update urunler1 set urunadeti=urunadeti- @satisadeti where [email protected]
end
insert into satislar(satisid, urunid, satisadeti) values (1,3,10)
Select * from urunler1
DELETE TRIGGER
Create trigger satisiptalet
on satislar
for delete
as
begin
declare @urunid int
declare @satisadeti int
select @urunid=urunid from deleted
select @satisadeti = satisadeti from deleted
update urunler1 set [email protected] where [email protected]
end
delete from satislar where satisid=2
Select * from urunler1
UPDATE TRIGGER
Create trigger urunudediguncelleme1
on satislar
for update
as
begin
declare @urunid int
declare @satisadetie int
declare @satisadety int
select @urunid=urunid from deleted
select @satisadetie = satisadeti from deleted
select @urunid=urunid from inserted
select @satisadety = satisadeti from inserted
update urunler1 set [email protected] where [email protected]
update urunler1 set [email protected] where [email protected]
end
SAKLI YORDAMLAR (STORED PROCEDURES)
Stored Procedure SQL Server üzerinde önceden derlenmiş olup saklanan SQL ifadeleridir. Önceden derlenmiş olarak
bulunduklarından her türlü sorgulamada en iyi performansı verirler. SQL Server' da sistem tarafından "sp_" ile
başlayan isimlerle tanımlanmış bir çok yordam mevcuttur. Bunlar daha çok yönetim amaçlı olarak sistem
tablolarından bilgi toplamak için kullanılırlar.
Stored Procedure’ün oluşturulma şekli aşağıdaki gibidir.
CREATE PROC * EDURE + prosedür_adı
AS
T-SQL ifadeleri
GO
Örnek
¾¾tblOgrenciBilgileri tablosunda veliId’si 1 olan öğrencileri listeleyen bir store procedure oluşturalım.
Şimdi Execute butonuna tıklayarak veya klavyeden F5 tuşuna basarak sorgumuzu çalıştıralım. Çalıştırdıktan sonra
sonuç penceresinde herhangi bir liste oluşmayacaktır. Biz burada sadece ağ veritabanı yazılımımıza yeni bir store
procedure tanımladık.
Tanımlamış olduğumuz saklı yordamı çalıştırmak için EXEC komtunu kullanırız.
Değer Alan Alt Yordamlar
Stored Procedure’lerin daha etkin kullanılabilmesi ve işlevsel bir hale gelebilmesi için dışarıdan değer almalarına
ihtiyaç duyulur. Bu nedenle girdi parametreleri (Input Parameter) kullanılır. Stored Procedure’nin aldığı değer
Query’den gelen değerdir. Gönderilen değeri karşılayacak bir değişken Stored Procedure’de tanımlanmalıdır.
Örnek
Daha önce oluşturduğumuz “usp_VeliOgrenciListe” stored procedure’ünde veliId bilgisini kendimiz yazıyorduk. Şimdi
ise veliId bilgisini dışarıdan veri olarak gönderelim.
stored procedure’ümüzü veliId değeri 1 için çağıralım.
Sonuç;
KISITLAYICI (CONSTRAİNT)
Veri üzerindeki mantıksal sınırlamalara kısıt adı verilir. Kısıtlar, veri modellerinde bütünlük sağlamak için kullanılır.
Kısıtlamalar, tabloların tanımlanmasıyla beraber oluşan öğelerdir. Kısıtlamalar, tablo oluştururken yani CREATE TABLE
komutuyla birlikte tanımlanabilir. Tablo oluşturulmuşsa ALTER TABLE komutuyla bu işlem gerçekleşir.
KISITLAYICI TÜRLERİ
Birincil Anahtar Kısıtlayıcı (Primary Key Constraint)
Birincil anahtar kısıtlayıcı anlamındadır. Aynı olmayan değerler girilmesini sağlar. Bu da her kaydın farklı olması
demektir. Her tablonun en fazla 1 adet Primary Key Constraint’i olabilir.
Yeni bir tablo oluştururken kullanımı:
CREATE TABLE tablo_adı (
Sütun_adları,
CONSTRAINT const_adı PRIMARY KEY (sütun_adı)
)
Örnek:
Oluşturulmuş olan tabloda kullanımı:
ALTER TABLE tablo_adı
ADD CONSTRAINT cons_adı PRIMARY KEY (sütun_adı)
Örnek:
Tekil Alan Kısıtlayıcı (Unique Constraint)
Tekil alan kısıtlayıcı anlamındadır. Birincil anahtar olan ve tablodaki diğer alanlar içinde aynı içeriğe sahip verilerin
olmaması için Unique Constraint tanımlanır.
Yabancıl Anahtar Kısıtlayıcı (Foreign Key Constraint)
Yabancıl anahtar kısıtlayıcı anlamındadır. Bir tablodaki bir sütuna ait verilerin başka bir tablonun belirli bir
sütunundan gelmesini denetler. Bir tabloya girilebilecek değerleri başka bir tablonun belli bir alanında yer alabilecek
veri grubu ile sınırlandırmaya ve en önemlisi de ilişkilendirmeye yarar.
Yeni bir tablo oluştururken kullanımı:
CREATE TABLE tablo_adı (
Sütun_adları,
CONSTRAINT const_adı FOREIGN KEY (sütun_adı)
REFERENCES diğertablo_adı (sütun_adı)
)
Örnek:
tblOgrenciBilgileri tablomuzu yeni oluşturuyormuş gibi düşünelim.
Varsayılan Kısıtlayıcı (Default Constraint)
Varsayılan kısıtlayıcı anlamındadır. Tablodaki herhangi bir alan için girilmesi gereken bir değerin atanmasıdır. INSERT
komutu için geçerlidir. Örneğin, öğrenci devamsızlıklarının tutulduğu tblDevamsizlik tablosuna yeni bir öğrenci
eklendiğinde devamsizlik sütununa varsayılan değer olarak 0 atanabilir.
Yeni bir tablo oluşturulurken kullanımı:
CREATE TABLE Tabloadi (
Sütunadi,
Sütunadi CONSTRAINT Constraint_Adi DEFAULT (değer)
)
Örnek:
Kontrol Kısıtlayıcı (Check Constraint)
Kontrol kısıtlayıcı anlamındadır. Belirtilen formata göre verilerin girilmesini sağlar. Örneğin, TcKimlikNo alanına 11
karakterin girilmesi Check Constraint ile sağlanabilir.
Check Constraint’in kullanım amaçları şöyledir:
 Sütuna girilebilecek verileri bir sınır ile kısıtlamak,
 Sütuna girilebilecek verilerin belli bir formatla girilmesini sağlamak,
 Sütuna girilebilecek verileri başka sütun formatlarına göre karşılaştırarak denetlemektir.
Yeni bir tablo oluşturulurken kullanımı:
CREATE TABLE Tablo_Adi (
Sütun_Adi,
Sütun_Adi,
…..,
CONSTRAINT Constraint_Adi CHECK (ifade)
)
Örnek:
Oluşturulmuş olan tabloda kullanımı:
ALTER TABLE Tabloadi
ADD CONSTRAINT Constraint_Adi CHECK (ifade)
Örnek:
ÖRNEK UYGULAMA2
SQL Server’da kendinize “OGRENCİ” adında bir veri tabanı yaratınız. İçinde “KIMLIK”, ”NOTLAR” ve “MEZUN”, adında
3 adet tablo oluşturun.
KIMLIK TABLOSU
OGRNO(int)
SINIF nchar(3)
AD varchar(15)
SOYAD varchar(15)
CINSIYET varchar(1)
NOTLAR TABLOSU
OGRNO (int )
DERS varchar(15)
S1(int)
S2(int)
S3(int)
MEZUN TABLOSU
OGRNO(int)
SINIF nchar(3)
NTP Program Örnekleri
Console Telefon Rehberi Uygulaması
class Program
{
static void Main(string[] args)
{
Console.Write("Rehberi Kapasitesi:");
int kapasite = int.Parse(Console.ReadLine());
string[] isimler = new string[kapasite];
string[] numaralar = new string[kapasite];
for (int i = 0; i < isimler.Length; i++)
{
Console.Write((i+1) + ". Kişinin Adı Soyadı :");
isimler[i] = Console.ReadLine();
Console.Write((i+1)+". Kişinin Telefon Numarası :");
numaralar[i] = Console.ReadLine();
}
Console.WriteLine("Bilgi Girişi Tamamlandı ... Devam için Herhangi bir tuşa
basınız...");
Console.ReadKey();
Console.Clear();
Console.WriteLine("------------------------------------------------------------");
Console.WriteLine("Adı Soyadı
Telefon Numarası ");
Console.WriteLine("------------------------------------------------------------");
Console.WriteLine("------------------------------------------------------------");
for (int i = 0; i < kapasite; i++)
{
Console.WriteLine("{0,-20} {1,15}",isimler[i],numaralar[i]);
}
Console.WriteLine("------------------------------------------------------------");
Console.ReadKey();
}
}
Çok Boyutlu Dizi Kullanımı
class Program
{
static void Main(string[] args)
{
Console.Write("Öğrenci Sayısı :");
int ogrSayisi = int.Parse(Console.ReadLine());
Console.Write("Ders Sayısı : ");
int dersSayisi = int.Parse(Console.ReadLine());
Console.Write("Sınav Sayısı : ");
int sinavSayisi = int.Parse(Console.ReadLine());
string[] adsoyad = new string[ogrSayisi];
string[,] dersler = new string[ogrSayisi, dersSayisi];
int[, ,] notlar = new int[ogrSayisi, dersSayisi, sinavSayisi];
double[,] ortalamalar = new double[ogrSayisi, dersSayisi];
string[,] dersdurum = new string[ogrSayisi, dersSayisi];
Console.WriteLine("Öğrenci Takip Uygulaması [Çok Boyutlu Dizi Kullanımı]");
Console.WriteLine("=====================================================");
Console.Write("Öğrenci Sayısı : " + adsoyad.GetLength(0));
Console.Write(" Ders Sayısı :" + dersler.GetLength(1));
Console.Write(" Her Dersin Not Sayısı : " + notlar.GetLength(2));
Console.WriteLine("=====================================================");
for (int i = 0; i < adsoyad.Length; i++)
{
Console.Write((i + 1) + ". Öğrencinin Adı Soyadı :");
adsoyad[i] = Console.ReadLine();
for (int j = 0; j < dersler.GetLength(1); j++)
{
Console.Write(adsoyad[i] + "isimli Öğrencinin " + (j + 1) + ". Ders Adı :");
dersler[i, j] = Console.ReadLine();
Console.WriteLine(adsoyad[i] + " isimli Öğrencinin" + dersler[i, j] + " Dersi
Notları Girişi");
Console.WriteLine("=====================================================");
int toplamnot = 0;
for (int k = 0; k < notlar.GetLength(2); k++)
{
Console.Write((k+1) + ". Yazılı :");
notlar[i, j, k] =int.Parse( Console.ReadLine());
toplamnot += notlar[i, j, k];
}
ortalamalar[i, j] = toplamnot / 3;
if (ortalamalar[i,j] < 45)
{
dersdurum[i,j] = "KALDI";
}
else
{
dersdurum[i, j] = "GEÇTİ";
}
}
}
Console.WriteLine("Bilgi Girişi Tamamalandı ... Listelemek İçin Bir Tuşa Basınız...");
Console.ReadKey();
Console.Clear();
for (int i = 0; i < adsoyad.GetLength(0); i++)
{
Console.WriteLine("*******" + adsoyad[i] + "*******");
for (int j = 0; j < dersler.GetLength(1); j++)
{
Console.WriteLine("***" + dersler[i, j] + "***");
for (int k = 0; k < notlar.GetLength(2); k++)
{
Console.Write("{0,10}", notlar[i, j, k]);
}
Console.WriteLine();
Console.WriteLine("--------------------------");
Console.WriteLine("Ders Ortalaması : {0} -- Durumu :{1}", ortalamalar[i, j],
dersdurum[i, j]);
}
}
Console.WriteLine("Listeleme Tamamlandı ... Çıkış İçin Bir Tuşa Basınız...");
Console.ReadKey();
}
}
Telefon Rehberi Form uygulaması
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
#region "Global Değişken Tanımlamaları"
string[] adsoyad;
string[] telefon;
int adet = 0;
#endregion
private void btnKapasite_Click(object sender, EventArgs e)
{
try
{
if (int.Parse(txtKapasite.Text) > 2)
{
panel1.Visible = true;
panel2.Visible = false;
txtAdSoyad.Focus();
int kapasite = int.Parse(txtKapasite.Text);
adsoyad = new string[kapasite];
telefon = new string[kapasite];
}
}
catch (Exception)
{
MessageBox.Show("Lütfen Sayı Giriniz...");
txtKapasite.ResetText();
txtKapasite.Focus();
}
}
private void btnEkle_Click(object sender, EventArgs e)
{
if (txtAdSoyad.Text.Length < 6 || txtTel.Text.Length < 7)
{
MessageBox.Show("Lütfen Bilgileri doğru giriniz...", "Veri Giriş Hatası",
MessageBoxButtons.OK, MessageBoxIcon.Error);
txtAdSoyad.ResetText();
txtTel.ResetText();
txtAdSoyad.Focus();
}
else
{
DialogResult cevap = MessageBox.Show("Bilgiler Telefon Defterin Kaydadilsin mi?",
"Kayıt Ekle", MessageBoxButtons.YesNo, MessageBoxIcon.Question);
if (cevap==DialogResult.Yes)
{
adsoyad[adet] = txtAdSoyad.Text;
telefon[adet] = txtTel.Text;
txtAdSoyad.ResetText();
txtTel.ResetText();
txtAdSoyad.Focus();
adet++;
if (adet==adsoyad.Length)
{
txtAdSoyad.Enabled = false;
txtTel.Enabled = false;
btnEkle.Enabled = false;
btnListele.Visible = true;
listBox1.Visible = true;
listBox2.Visible = true;
}
}
}
}
private void btnListele_Click(object sender, EventArgs e)
{
listBox1.Items.Clear();
listBox2.Items.Clear();
for (int i = 0; i < adsoyad.Length; i++)
{
listBox1.Items.Add(adsoyad[i]);
listBox2.Items.Add(telefon[i]);
}
}
private void Form1_Load(object sender, EventArgs e)
{
}
}
Arraylist Uygulaması
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
ArrayList isimler = new ArrayList();
private void Form1_Load(object sender, EventArgs e)
{
txtKapasite.Text = isimler.Capacity.ToString();
txtElemanSayisi.Text = isimler.Count.ToString();
}
private void button1_Click(object sender, EventArgs e)
{
isimler.Add(txtAdSoyad.Text);
txtKapasite.Text = isimler.Capacity.ToString();
txtElemanSayisi.Text = isimler.Count.ToString();
}
private void button2_Click(object sender, EventArgs e)
{
listBox1.Items.Clear();
//for (int i = 0; i < isimler.Count; i++)
//{
//
listBox1.Items.Add(isimler[i]);
//}
foreach (string a in isimler)
{
listBox1.Items.Add(a);
}
}
private void button3_Click(object sender, EventArgs e)
{
isimler.TrimToSize();
txtKapasite.Text = isimler.Capacity.ToString();
txtElemanSayisi.Text = isimler.Count.ToString();
}
private void button4_Click(object sender, EventArgs e)
{
isimler.Sort();
}
private void button5_Click(object sender, EventArgs e)
{
isimler.Reverse();
}
private void button6_Click(object sender, EventArgs e)
{
int aranan = isimler.IndexOf(txtAdSoyad.Text);
if (aranan>-1)
{
MessageBox.Show("Aranan Kayıt Dizide Mevcut " + (aranan + 1) + ". Sırada...", "Ara",
MessageBoxButtons.OK, MessageBoxIcon.Information);
}
else
MessageBox.Show("Aranan Kayıt Dizide Mevcut Değil " , "Ara", MessageBoxButtons.OK,
MessageBoxIcon.Information);
}
private void button7_Click(object sender, EventArgs e)
{
isimler.Insert(int.Parse(textBox1.Text), txtAdSoyad.Text);
//isimler.Insert(3, "Ali");
}
}
C# ile access veritabanına bağlanma
Access ile oluşturulan veritabanına C# windows form uygulaması ile bağlantı sağlamak için yapmamız gereken
işlemleri adım adım anlatalım.
Öncellikle form1.cs kod bölümünde üst kısma aşağıdaki kodların hemen altına veritabanı bağlantısı için Oledb
kütüphanesi eklenmelidir.
using
using
using
using
using
using
using
using
using
System;
System.Collections.Generic;
System.ComponentModel;
System.Data;
System.Drawing;
System.Linq;
System.Text;
System.Threading.Tasks;
System.Windows.Forms;
Aşağıdaki kodu ekliyoruz.
using System.Data.OleDb;//database bağlantısı için
Örnek veritabanımız.
Bu kodu ekledikten sonra veritabanımızı (ogrenci.accdb) dosyamızı windows form uygulaması klasörünün
içindeki bin\Debug içine atarsak daha kolay yoldan bağlantı sağlayabiliriz. Bu işlemleri yaptıktan sonra bağlantı
oluşturmak için form'un Load olayına aşağıdaki kodları yazmalıyız.
try
{
string baglantiCumlesi = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=ogrenci.accdb;";
//Bağlantı için gerekli olan yol ve bağlantı türü yazılma şekli
OleDbConnection baglanti = new OleDbConnection(baglantiCumlesi);
//Oledb türünde bağlantı oluşturuyoruz.
baglanti.Open();
//veritabanına bağlantıyı açıyoruz.
}
catch (Exception hata)
{
MessageBox.Show(hata.Message);
}
//Bağlantıda hata olursa uygulama yarıda kesilmeden sadece hata mesajını almak için try-catch
kullanıldı
Aşağıdaki hatayı veritabanı bağlantı için Data Source için path(yol) kısmını değiştirdiğimize aldık.
Bağlantı yapılırken access 'te 2007 ve sonrasında oluşturulan veritabanında Microsoft.ACE.OLEDB.12.0'
provider is not registered on the local machine şeklinde bir hata ile karşılaşılırsa aşağıdaki
programları kurarak hata ortadan kaldırılabilir.


2007 Office System Driver: Data Connectivity Components (kurun deneyin olmaz ise altakini kurun)
Microsoft Access Database Engine 2010 Redistributable
C#'ta Veritabanına Bilgi Girişi
Bu derste bir veritabanına bağlanarak c# ile oluşturduğumuz windows form üzerinden bilgi girişi
yapacağız.ogrenciler.accdb adında aşağıdaki gibi bir veri tabanı oluşturuyoruz.
Visual Studio'da yeni bir Windows application(uygulama) oluşturuyoruz. ve ilk form'a aşağıdaki gibi butonlar
ekleyerek yapalım.
Butonlara aşağıdaki kodları ekleyelim.
private void button1_Click(object sender, EventArgs e)
{
Form2 kayit = new Form2();
kayit.Show();
}
private void button2_Click(object sender, EventArgs e)
{
Form3 liste = new Form3();
liste.Show();
}
private void button3_Click(object sender, EventArgs e)
{
Form4 silme = new Form4();
silme.Show();
}
private void button4_Click(object sender, EventArgs e)
{
Form5 guncel = new Form5();
guncel.Show();
}
Yeni Form oluşturarak aşağıdaki gibi tasarlayalım.
comboBox nesnesine sınıf isimlerini girdikten sonra, button(Kaydet) ve button(İptal) kodlarını yazalım.
private void button1_Click(object sender, EventArgs e)
{
//Veritabanın gağlantı türü ve hangi dosyaya bağlanacağını belirtir. access dosyasını
bin/debug içine attık.
OleDbConnection baglanti = new OleDbConnection("Provider=Microsoft.ACE.Oledb.12.0;Data
Source=ogrenciler.accdb");
OleDbCommand sorgu = new OleDbCommand();//sorgu komut yapısı oluşturuldu
baglanti.Open();// bağlantı açıldı
sorgu.Connection = baglanti;//hangi bağlantıda kullanılacak
string
string
string
string
no = textBox1.Text;
ad = textBox2.Text;
soyad = textBox3.Text;
sinif = comboBox1.Text;
sorgu.CommandType = CommandType.Text;
sorgu.CommandText="insert into ogrenci_bilgi (numara,adi,soyadi,sinif) values
(@numara,@adi,@soyadi,@sinif)";
sorgu.Parameters.AddWithValue("@numara", no);
sorgu.Parameters.AddWithValue("@adi", ad);
sorgu.Parameters.AddWithValue("@soyadi", soyad);
sorgu.Parameters.AddWithValue("@sinif", sinif);
sorgu.ExecuteNonQuery();//update,insert,delete sorgularını çalıştırır ve geriye kaç
satırlık işlem yapıldığı ile ilgili bilgi int türünde geri döner.
MessageBox.Show("Kaydınız gerçekleştirilmiştir.", "Kayır İşlemi");
baglanti.Close();// bağlantı kapatıldı.
}
private void button2_Click(object sender, EventArgs e)
{
this.Close();
}
Bu şekilde access veritabanına c# windows form application(uygulama) üzerinden kaydetme işlemini
gerçekleştirmiş olduk. Güncelleme Listeleme ve Silme için sıradaki derslerimizi takip edebilirsiniz.
C#'ta Veritabanın'dan Bilgi Listeleme
Bu yazılı dersimizden önceki Bilgi Girişi dersimize bakmanız iyi olacaktır. Önceki uygulamamıza bağlı olarak
yeni bir form oluşturalım. aşağıdaki gibi dataGridView nesnesi ekleyelim.
formun load olayına aşağıdaki kodları yazarak veritabanındaki bilgileri datagridview nesnesine aktaralım.
private void Form3_Load(object sender, EventArgs e)
{
//Veritabanın gağlantı türü ve hangi dosyaya bağlanacağını belirtir. access dosyasını
bin/debug içine attık.
OleDbConnection baglanti = new OleDbConnection("Provider=Microsoft.ACE.Oledb.12.0;Data
Source=ogrenciler.accdb");
OleDbCommand sorgu = new OleDbCommand();//sorgu komut yapısı oluşturuldu
baglanti.Open();// bağlantı açıldı
OleDbDataAdapter da = new OleDbDataAdapter("select * from ogrenci_bilgi", baglanti);
DataTable dt = new DataTable(); //veri tablosu oluşturuldu
da.Fill(dt);//sorgu sonucunda gelen veriler veir tablosuna aktarıldı
dataGridView1.DataSource = dt;//data grid View'e data tableye bağlantı sağlanıyor.
baglanti.Close();//bağlantı sonlandırma.
}
Bu şekilde access veritabanına c# windows form application(uygulama) üzerinde kayıt listeleme
işlemi gerçekleştirmiş olduk. Güncelleme ve Silme için sıradaki derslerimizi takip edebilirsiniz.
C#'ta Veritabanın'dan Kayıt Silme
Bu yazılı dersimizden önceki Bilgi Listeleme dersimize bakmanız iyi olacaktır. Önceki uygulamamıza bağlı olarak
yeni bir form oluşturalım. aşağıdaki gibi nesneleri ekleyelim.
Button(sil) ve button(İptal) için aşağıdaki kodları ekleyelim.
private void button1_Click(object sender, EventArgs e)
{
//Veritabanın gağlantı türü ve hangi dosyaya bağlanacağını belirtir. access dosyasını
bin/debug içine attık.
OleDbConnection baglanti = new OleDbConnection("Provider=Microsoft.ACE.Oledb.12.0;Data
Source=ogrenciler.accdb");
OleDbCommand sorgu = new OleDbCommand();//sorgu komut yapısı oluşturuldu
baglanti.Open();// bağlantı açıldı
sorgu.Connection = baglanti;//hangi bağlantıda kullanılacak
sorgu.CommandText = String.Format("delete from ogrenci_bilgi where numara={0}",
textBox1.Text);
int adet=sorgu.ExecuteNonQuery();
if (adet == 0)
MessageBox.Show("Kayıt bulunamadı.");
else
MessageBox.Show(adet+" adet kayıt silindi");
baglanti.Close();
}
private void button2_Click(object sender, EventArgs e)
{
this.Close();
}
Bu şekilde access veritabanına c# windows form application(uygulama) üzerinde kayıtsilme
işlemi gerçekleştirmiş olduk. Güncelleme için sıradaki derslerimizi takip edebilirsiniz.
C#'ta Veritabanın'dan Kayıt Güncelleme
aşağıdaki gibi bir form oluşturalım.
kayıt ekleme yapmış olduğumuz dersteki gibi comboBox nesnesine sınıfları ekleyelim. aşağıdaki kodları gerekli
nesnelerin olaylarına yazalım.
private void button3_Click(object sender, EventArgs e)
{
//Veritabanın gağlantı türü ve hangi dosyaya bağlanacağını belirtir. access dosyasını
bin/debug içine attık.
OleDbConnection baglanti = new OleDbConnection("Provider=Microsoft.ACE.Oledb.12.0;Data
Source=ogrenciler.accdb");
OleDbCommand sorgu = new OleDbCommand();//sorgu komut yapısı oluşturuldu
baglanti.Open();// bağlantı açıldı
sorgu.Connection = baglanti;
sorgu.CommandText = String.Format("select * from ogrenci_bilgi where numara={0}",
textBox1.Text);
OleDbDataReader oku = sorgu.ExecuteReader();
bool durum = oku.Read();
if (durum == false)
{
MessageBox.Show("Kayıt yok");
textBox1.Text = null;
textBox2.Text = null;
textBox3.Text = null;
comboBox1.Text = null;
textBox1.Focus();
}
else
{
textBox2.Text = oku[1].ToString();
textBox3.Text = oku[2].ToString();
comboBox1.SelectedText = oku[3].ToString();
}
baglanti.Close();//bağlantı sonlandırma.
}
private void button2_Click(object sender, EventArgs e)
{
//Veritabanın gağlantı türü ve hangi dosyaya bağlanacağını belirtir. access dosyasını
bin/debug içine attık.
OleDbConnection baglanti = new OleDbConnection("Provider=Microsoft.ACE.Oledb.12.0;Data
Source=ogrenciler.accdb");
OleDbCommand sorgu = new OleDbCommand();//sorgu komut yapısı oluşturuldu
baglanti.Open();// bağlantı açıldı
sorgu.Connection = baglanti;
sorgu.CommandText = String.Format("update ogrenci_bilgi set
adi='{0}',soyadi='{1}',sinif='{2}' where numara={3}",
textBox2.Text,textBox3.Text,comboBox1.Text,textBox1.Text);
int adet = sorgu.ExecuteNonQuery();
if (adet > 0)
MessageBox.Show("Kayıt Güncellendi");
else
MessageBox.Show("Kaıt güncellenmedi");
}
private void button1_Click(object sender, EventArgs e)
{
this.Close();
}
Download