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
• Ana bellek hızlıdır. • İkinci bellekler: – Büyük – Ucuz – Kararlıdırlar

Dezavantajlar
• Ana bellek küçüktür • Ana bellekteki veriler güç kayıplarından etkilenirler. • İ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 döküman sistemi

Veritabanı Arşivleme 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 sistem modeli

Varlık Modeli İlişkisel Veri Modeli VT

Bilgisayar Mühendisliğine Giriş

Tabloların Disk Üzerindeki 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 #* number * name o job title DEPARTMENT #* number * name o location

Bilgisayar Mühendisliğine Giriş

25

Varlık-bağıntı Modelindeki Standartlar
• Varlık – Tekil, eşsiz isim – Büyük harf kullanımı – Kutu şeklinde gösterim – Eş anlamlıların parantez içinde gösterimi EMPLOYEE #* number * name o job title Özellik • Tekil isim • Küçük harf • • Zorunlu özelliklerin “*” ile gösterimi Seçimlik özelliklerin “o” ile gösterimi DEPARTMENT #* number * name 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ı
2 3 4

5 6
1- Tek bir satr (kayıt) 2- Birincil anahtar 3- Özellik 4- Harici anahtar 5- Herhangi bir satır ve sütunla kesişimi olan alan. 6- Null alan
Bilgisayar Mühendisliğine Giriş 30

1

İ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
SELECT department_name FROM departments;

İfade Veri Tabanına gönderilir.

Veri Tabanı

Bilgisayar Mühendisliğine Giriş

32

Veritabanı Yönetim Sistemi

VTYS

Kullanıcı Tabloları
Bilgisayar Mühendisliğine Giriş

Veri Sözlüğü

33

İnternet Ortamında VTYS
İstemciler

Herhangi bir Tarayıcı

Herhangi bir istemci

Herhangi bir FTP istemci

Geliştirme Araçları

Internet uygulamaları Sistem Yönetimi Veriler İstekler ve Sunumlar

SQL PL/SQL Java

Veritabanları

Uygulama Sunucuları

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 Kullanıcı VTYS

Sorgu Sonuçları Biçimlendirilmiş Raporlar İstemci

Bilgisayar Mühendisliğine Giriş

36

SQL İfadeleri
SELECT INSERT UPDATE DELETE MERGE CREATE ALTER DROP RENAME TRUNCATE COMMENT GRANT REVOKE COMMIT ROLLBACK SAVEPOINT

Veri işleme dili (DML)

Veri tanımlama dili (DDL)

Veri kontrol dili (DCL)

Hareket Kontrolü

Bilgisayar Mühendisliğine Giriş

37

Kullanılan Tablolar
EMPLOYEES

DEPARTMENTS
Bilgisayar Mühendisliğine Giriş

JOB_GRADES
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 = > >= < <= <> BETWEEN ...AND... IN(set) LIKE IS NULL Eşittir Büyüktür Büyük eşittir Küçüktür Küçük eşittir Eşit değildir İki değerin arasında Değişken listesindekilerden herhangi biri Karakter desenine uygun Null değer
Bilgisayar Mühendisliğine Giriş 44

Anlamı

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
AND

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

OR

NOT

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 – MIN – STDDEV – SUM – VARIANCE

Group functions

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 FROM WHERE GROUP BY HAVING ORDER BY job_id, SUM(salary) PAYROLL employees job_id NOT LIKE '%REP%' job_id SUM(salary) > 13000 SUM(salary);

Bilgisayar Mühendisliğine Giriş

56