You are on page 1of 56

Veriyi ve Bilgiyi Organize Etmek

Bilgisayar Mühendisliğine Giriş 1


Veri ve Dosya Yapıları

Bilgisayar Mühendisliğine Giriş 2


Veri ve Dosya Yapıları
Bilgi, içerisinde bulunduğumuz çağda hızlı ve sürekli bir
biçimde artmaktadır.

Her iki kavram da verinin gösterimi, veriye erişim işlemlerini


içerir.

Bilgisayar Mühendisliğine Giriş 3


Bir yazılım sisteminden beklenenler:

• Hızlı cevap süresi (Fast Response)

• Gerçek zamanlı uygulamalarda performans (Performance of


real time applications)

• Geliştirilme için gereken toplam süre (Limited amount of time)

• Etkin hafıza kullanımı (Efficient Memory Usage)

• Kullanılabilirlik (Usability)

Bilgisayar Mühendisliğine Giriş 4


Dosya organizasyonundan bütün bu kısıtlamalar
altında en iyi performans beklenmektedir.

Bilgisayar Mühendisliğine Giriş 5


Veri yapıları ana bellekteki verilerle ilgilenir. Dosya yapıları ise
ikinci (depolama) bellekle ilgilenir.

Uygulama (Application)

VTYS (DBMS)

Dosya sistemi

İşletim Sistemi

Donanım

Dosya Yapılarının Bilgisayar Sistemlerindeki Yeri

Bilgisayar Mühendisliğine Giriş 6


Bilgisayar Sistemi
• Veriler bu kısımda
işlenir
• Hızlı, pahalı,geçici
ve küçük
kapasitelerdedir.

•Veriler bu kısımda
saklanırlar
•Yavaş, ucuz,kararlı ve
büyüktürler
kapasitelerdedir.
Ör: Diskler, teypler, optik sürücüler

Bilgisayar Mühendisliğine Giriş 7


Bilgisayar Sistemi
İkinci bellek büyük hacimli veriler için uzun vadeli depolama
sağlar

Herhangi bir aşamada küçük bir miktar veri ile işlem yapılır.

Veriler geçici olarak ana belleğe yüklenir, burda hızlı bir


şekilde işlenir.

Veriler ana bellek ile ikinci bellek arasında otomatik olarak


transfer edilir.

Bilgisayar Mühendisliğine Giriş 8


Avantajlar Dezavantajlar

• Ana bellek hızlıdır. • Ana bellek küçüktür

• İkinci bellekler: • Ana bellekteki veriler güç


– Büyük kayıplarından etkilenirler.
– Ucuz
– Kararlıdırlar • İkincil bellekler yavaştırlar.

Bilgisayar Mühendisliğine Giriş 9


İkincil Depolama Üniteleri Ne Kadar
Yavaş?
Bir bilginin transfer edilme süresi

• Ana bellek için:


120 ns = 120 * 10-9 sn.

• Manyetik Disk için


30 msn = 3 * 10-6 sn.

Bilgisayar Mühendisliğine Giriş 10


Kütük (Dosya) Yapısı ve Amacı
Dosya,fiziksel depolama ortamlarında verilerin saklandığı
mantıksal yapılardır. Amacı:

İstenilen bilgiyi getirmek için disk üzerindeki hareket


sayısını minimuma indirmek

İlişkili bilgileri gruplayarak, istenen verilere tek hamlede


ulaşmayı sağlamaktır.

Bilgisayar Mühendisliğine Giriş 11


Dosya Yapısını Değerlendirme Ölçütleri
• Basitlik (Simplicity)

• Güvenirlik (Reliability)

• Programlanabilirlik (Programmability)

• Yönetilebilirlik (Maintainability)

• Yer Karmaşıklığı (Space Complexity)

• Hesaplama / Zaman Karmaşıklığı


(Computational and Time Complexity)

• Güvenlik (Security)

Bilgisayar Mühendisliğine Giriş 12


Dosya Yapılarının Tarihsel Gelişimi
İlk başlarda veriler teyplerde sıralı bir biçimde saklanmaktaydı. Bu
sistemlerde dosyalara erişimin maliyeti kayıt uzunluğu ile doğru
orantılıdır.

Manyetik disklerin gelişimi ile birlikte doğrudan erişimli dosya


türleri ve indeksli sıralı dosya türleri geliştirildi (direct acessed ve
indexed sequential)

Bilgisayar Mühendisliğine Giriş 13


Veritabanı Yönetim Sistemleri (VTYS)

VTYS, bilginin saklanması ve işlem yapılması amacıyla


hazırlanmış özel amaçlı yazılım sistemidir.

Dosya organizasyonu, bilgiyi fiziksel seviyede, VTYS ise


mantıksal seviyede yönetmek için kullanılır.

VTYS genellikle uygulama yazılımı geliştirmek için


kullanılırken, dosya yapıları daha çok sistem yazılımı
geliştirmek için kullanılır.

Bilgisayar Mühendisliğine Giriş 14


Fiziksel ve Mantıksal Dosyalar
Fiziksel dosyalar bir teyp veya disk üzerinde depolanmış
byte’lar topluluğudur.

Mantıksal (Logical) dosyalar, bir aracı kanal (örn: tel. hattı) ile
programla fiziksel dosyaya bağlanılır.

Program bu dosya hakkında bir şey bilmesi gerekmez.

Bilgisayar Mühendisliğine Giriş 15


İyi Bir Dosya Organizasyonu
Hızlı erişim sağlamalı

Tamponlardaki (buffers) veya bloklardaki bilgiye ulaşarak


diske olan erişimlerin sayısını azaltabilmelidir.

Kayıtları kolay bir şekilde yönetebilmelidir.

Bilgisayar Mühendisliğine Giriş 16


Veritabanı Kavramları

Bilgisayar Mühendisliğine Giriş 17


Sistem Gelişimi Döngüsü

Stratej ve
Analizler

Tasarım

Yapım ve
Dökümantasyon

Geçişler

Üretim

Bilgisayar Mühendisliğine Giriş 18


Verilerin Saklanması

Elektronik Veritabanı
döküman Arşivleme
sistemi Sistemi

Bilgisayar Mühendisliğine Giriş 19


Veritabanı Modelleri

Hiyerarşik Model Ağ Modeli İlişkisel Model Nesne-İlişkisel


Model

Verileri mantıksal düzeyde düzenlemek için kullanılan


kavramlar, yapılar ve işlemler bütününe veri modeli
denir.

Bilgisayar Mühendisliğine Giriş 20


Veri Modelleri

Tasarımcının
aklındaki
Varlık Modeli
sistem
modeli
İlişkisel Veri Modeli
VT

Tabloların Disk
Üzerindeki
Bilgisayar Mühendisliğine Giriş Yerleşimi 21
Varlık-Bağıntı Modeli
(ER Modeling)
Kurum ile ilgili özellikler veritabanında varlık-ilişki diyagramı şeklinde
yaratılır. Bu sayede;
• Organizasyon için gerekli bilgiler doğru ve kesin bir yapıda sunulur.
• Bilgi gereksinimlerinin faaliyet alnının net bir şeklini temin edilir.
• Veritabanı tasarımı için grafiksel haritalar kolaylıkla anlaşılmış olur.
• Çoklu uygulamaların bütünleştirilmesi için etkili bir çatı sunulmuş
olur.

Bilgisayar Mühendisliğine Giriş 22


Varlık-Bağıntı Modeli
(Devam)
E-R modeli veri çözümlemede, semantik (anlamsal) veri modellemede
sık olarak kullanılır.

Bu model kullanılarak, önce VTYS’den bağımsı olarak veriler çözümlenir,


semantik veri modellemesi yapılır, veriler ve veriler arası bağıntıların
anlamları ve özellikleri incelenerek E-R tasarımları oluşturulur.

Kullanılacak VTYS belirlendikten sonra da E-R tasarımları bu sistemin


veri modeline dönüştürülerek veri tabanı şemaları oluşturulur.

Bilgisayar Mühendisliğine Giriş 23


Varolan ve benzerlerinden ayırt edilebilen her şeye, her nesneye
varlık(entity) denir.

Aynı türden benzer varlıkların oluşturduğu kümeye ise varlık kümesi


(entity set) denir.

Örn: Bilgisayar mühendisliği bölümü öğrencileri, renkler, yıllar, desenler,


üniversiteler vb.

Bir varlık kümesindeki varlıkları birbirinden ayırt etmek için nitelikler


(attributes) kullanılır.

Bilgisayar Mühendisliğine Giriş 24


Varlık-Bağıntı Modeli
(ER Modeling)

– Örnek varlık-ilişki diyagramı

EMPLOYEE DEPARTMENT
#* number #* number
* name * name
o job title o location

Bilgisayar Mühendisliğine Giriş 25


Varlık-bağıntı
Modelindeki Standartlar
• Varlık
Özellik
– Tekil, eşsiz isim • Tekil isim
– Büyük harf kullanımı • Küçük harf
– Kutu şeklinde gösterim • Zorunlu özelliklerin “*” ile gösterimi
– Eş anlamlıların parantez • Seçimlik özelliklerin “o” ile gösterimi
içinde gösterimi

EMPLOYEE DEPARTMENT
#* number #* number
* name * name
o job title o location

Eşsiz Belirteci (UID-Unique Identifier


Birincil özellikler ve
İkincil özellikler “(#)” semboli ile belirtilir.
Bilgisayar Mühendisliğine Giriş 26
İlişkisel Modelin Bileşenleri

• Veriyi barındıran nesne veya ilişkilerin


kolleksiyonu
• İlişkiler üzerinde işlem yapan ve yeni ilişkiler
oluşturan operatörler
• Doğruluk ve tutarlılık için veri bütünlüğü

Bilgisayar Mühendisliğine Giriş 27


İlişkisel Veritabanı

• İlişkisel bir veritabanı ilişkilerin veya iki boyutlu


tabloların kolleksiyonudur.
VT

Table name: EMPLOYEES Table name: DEPARTMENTS

… …
Bilgisayar Mühendisliğine Giriş 28
Çoklu Tabloların İlişkilendirilmesi

– Tablodaki herbir kayıt birincil anahtar yardımıyla


birbirinden ayırt edilir.
– Çoklu tablolar harici anahtarlar yardımıyla birbirleriyle
ilişkilendirilir.
Table name: DEPARTMENTS
Table name: EMPLOYEES


Birincil Anahtar Harici Anahtar Birincil Anahtar

Bilgisayar Mühendisliğine Giriş 29


İlişkisel Veritabanı Yapıtaşları
3 4
2

1- Tek bir satr (kayıt)


2- Birincil anahtar
3- Özellik
4- Harici anahtar
5- Herhangi bir satır
1 ve sütunla kesişimi
olan alan.
6- Null alan

Bilgisayar Mühendisliğine Giriş 30


İlişkisel Veritabanı Özellikleri

• Yapılsal sorgulama dili ile erişilip düzenlenebilir.


• Operatör setlerini kullanırlar.

Bilgisayar Mühendisliğine Giriş 31


Yapısal Sorgulama Dili Kullanarak
Veritabanı ile İletişim
SQL ifadesi girşi İfade Veri Tabanına gönderilir.

SELECT department_name
FROM departments;
Veri
Tabanı

Bilgisayar Mühendisliğine Giriş 32


Veritabanı Yönetim Sistemi

VTYS

Kullanıcı Veri Sözlüğü


Tabloları

Bilgisayar Mühendisliğine Giriş 33


İnternet Ortamında VTYS
İstemciler

Herhangi bir Herhangi bir Herhangi bir


Tarayıcı istemci FTP istemci

Geliştirme Araçları
Internet uygulamaları
Sistem Yönetimi

SQL
Veriler İstekler ve Sunumlar
PL/SQL

Veritabanları Uygulama
Sunucuları Java

Ağ Servisleri

Bilgisayar Mühendisliğine Giriş 34


Yapısal Sorgulama Dili
(Structured Query Language-SQL)

Bilgisayar Mühendisliğine Giriş 35


Kullanıcı Sorguları

SQL ifadeleri
VTYS

Kullanıcı

Sorgu Sonuçları

Biçimlendirilmiş Raporlar
İstemci

Bilgisayar Mühendisliğine Giriş 36


SQL İfadeleri
¾ SELECT
¾ INSERT
¾ UPDATE Veri işleme dili (DML)
¾ DELETE
¾ MERGE

¾ CREATE
¾ ALTER
¾ DROP Veri tanımlama dili (DDL)
¾ RENAME
¾ TRUNCATE
¾ COMMENT

¾ GRANT
¾ REVOKE Veri kontrol dili (DCL)

¾ COMMIT
¾ ROLLBACK Hareket Kontrolü
¾ SAVEPOINT

Bilgisayar Mühendisliğine Giriş 37


Kullanılan Tablolar
EMPLOYEES

DEPARTMENTS JOB_GRADES
Bilgisayar Mühendisliğine Giriş 38
SELECT department_id, location_id
FROM departments;

SELECT employee_id, last_name, job_id, department_id


FROM employees
WHERE department_id = 90 ;

Bilgisayar Mühendisliğine Giriş 39


Arithmetic İfadeler

Operatör Görevi

+ Toplama
- Çıkarma
* Çarpma
/ Bölme

Bilgisayar Mühendisliğine Giriş 40


SELECT last_name, salary, salary + 300
FROM employees;

Bilgisayar Mühendisliğine Giriş 41


Sütun Aliasları Tanımlama
SELECT last_name AS name, commission_pct comm
FROM employees;

SELECT last_name "Name" , salary*12 "Annual Salary"


FROM employees;

Bilgisayar Mühendisliğine Giriş 42


Tekrar Eden Kayıtlar

SELECT department_id
FROM employees; 1


SELECT DISTINCT department_id
FROM employees; 2

Bilgisayar Mühendisliğine Giriş 43


Karşılaştırma Koşulları
Operatör Anlamı
= Eşittir
> Büyüktür
>= Büyük eşittir
< Küçüktür
<= Küçük eşittir
<> Eşit değildir
BETWEEN İki değerin arasında
...AND...
IN(set) Değişken listesindekilerden herhangi biri
LIKE Karakter desenine uygun
IS NULL Null değer

Bilgisayar Mühendisliğine Giriş 44


SELECT last_name, salary
FROM employees
WHERE salary <= 3000 ;

SELECT last_name, salary


FROM employees
WHERE salary BETWEEN 2500 AND 3500 ;

Alt Limit Üst Limit

Bilgisayar Mühendisliğine Giriş 45


SELECT employee_id, last_name, salary, manager_id
FROM employees
WHERE manager_id IN (100, 101, 201) ;

SELECT last_name
FROM employees
WHERE last_name LIKE '_o%' ;

Bilgisayar Mühendisliğine Giriş 46


SELECT last_name, manager_id
FROM employees
WHERE manager_id IS NULL ;

Bilgisayar Mühendisliğine Giriş 47


Mantıksal Operatörler
Operatör Anlamı

AND Her iki durum doğru


ise DOĞRU değerini
döndürür.
OR Durumlardan biri
doğru ise DOĞRU
değerini döndürür.
NOT Eğer durum yanlış ise
DOĞRU değerini
döndürür.

Bilgisayar Mühendisliğine Giriş 48


SELECT employee_id, last_name, job_id, salary
FROM employees
WHERE salary >=10000
AND job_id LIKE '%MAN%' ;

SELECT employee_id, last_name, job_id, salary


FROM employees
WHERE salary >= 10000
OR job_id LIKE '%MAN%' ;

Bilgisayar Mühendisliğine Giriş 49


SELECT last_name, job_id
FROM employees
WHERE job_id
NOT IN ('IT_PROG', 'ST_CLERK', 'SA_REP') ;

Bilgisayar Mühendisliğine Giriş 50


Sıralama İfadesi
– Sort ifadesi sorgu sonucu getirilen
ifadeleri aşağıdaki şekilde sıralar;
• ASC: Artan biçimde. (Varsayılıdır)
• DESC: Azalan biçimde
SELECT last_name, job_id, department_id, hire_date
FROM employees
ORDER BY hire_date ;

Bilgisayar Mühendisliğine Giriş 51


Group By İfadesi

SELECT department_id, AVG(salary)


FROM employees
GROUP BY department_id ;

Bilgisayar Mühendisliğine Giriş 52


Group by Fonksiyonları

– AVG
– COUNT
– MAX Group
functions
– MIN
– STDDEV
– SUM
– VARIANCE

Bilgisayar Mühendisliğine Giriş 53


SELECT AVG(salary), MAX(salary),
MIN(salary), SUM(salary)
FROM employees
WHERE job_id LIKE '%REP%';

Bilgisayar Mühendisliğine Giriş 54


Count(*) İfadesi

SELECT COUNT(*)
FROM employees
WHERE department_id = 50;

Bilgisayar Mühendisliğine Giriş 55


Having İfadesi

SELECT job_id, SUM(salary) PAYROLL


FROM employees
WHERE job_id NOT LIKE '%REP%'
GROUP BY job_id
HAVING SUM(salary) > 13000
ORDER BY SUM(salary);

Bilgisayar Mühendisliğine Giriş 56

You might also like