YBS104 - VERİ TABANINA GİRİŞDers İçeriği o o 1. Hafta: Veri Tabanlarına Giriş o o 2. Hafta:...
Transcript of YBS104 - VERİ TABANINA GİRİŞDers İçeriği o o 1. Hafta: Veri Tabanlarına Giriş o o 2. Hafta:...
YBS104 - VERİ TABANINA GİRİŞ
Yrd. Doç. Dr. Fırat YÜCEL
Akdeniz Üniversitesi
Enformatik Bölümü
Ders Hakkında
• Dersin Adı : Veri Tabanına Giriş (3+1) AKTS: 4
• Dersin Yarıyılı: Bahar
• Derse Devam : %70 kuramsal, %80 uygulama zorunlu
• Kullanılan Yazılım: Ms Access 2016
• Değerlendirme : Mutlak değerlendirme (Ortalama >= 60)
• Ara sınav (Vize)………………%30 (Kuramsal)
• Ödev/Proje…………………….%10 (Proje)
• Yarıyıl Sonu Sınavı………….%60 (Uygulama)
Ders İçeriğio o 1. Hafta: Veri Tabanlarına Giriş
o o 2. Hafta: Veri Tabanı Sistemi Temel Kavramları ve Mimarisi
o o 3. Hafta: İlişkisel Veri Modeli ve İlişkisel Veri Tabanı Kurulumu
o o 4. Hafta: Veri Tabanı Tasarımı ve Normalizasyonu
o o 5. Hafta: ER Modeli ile Veri Modelleme
o o 6. Hafta: SQL (Yapısal Sorgulama Dili)
o o 7. Hafta: Aritmetiksel Operatörler ve İşleçler
ARA SINAV
o o 8. Hafta: Microsoft Access Programı ve Özellikleri
o o 9. Hafta: Microsoft Access: Tablolar
o o10. Hafta: Microsoft Access: Sorgular
o o11. Hafta: Microsoft Access: Formlar
o o12. Hafta: Microsoft Access: Raporlar
o o13. Hafta: Microsoft Access: Makrolar
o o14. Hafta: Microsoft Access: Modüller
Başarılı Olabilmek için Bazı Öneriler• Derslere düzenli bir şekilde devam etmek
• Verilen proje ve ödev çalışmalarını zamanında ve eksiksiz şekilde teslim etmek
• Derste notlar almak, daha sonradan bu notları incelemek, üzerinde düşünüpanlamak, yeni fikirler üretmek
• Derste uygulamalara katılmak, varsa ders dışında bilgisayar ortamında ilgiliprogram üzerinde uygulamaları tekrar etmek
• Ders öğretim üyesi ile sağlıklı bir iletişim ortamı kurmak
• Ofis : Akdeniz Üniversitesi Enformatik Bölümü, ZC-23
• E-Posta : [email protected]
• Web sitesi : firatyucel.com
• Enformatik Bölümü Web Sitesi: http://enformatik.akdeniz.edu.tr
• Sosyal Medya Hesapları (Twitter, Instagram, Facebook): akdenformatik
Veri Tabanına GirişVeri Tabanları ve Veri Tabanı Kullanıcıları
Tarım Sanayi Bilgi
Toplumların Gelişimi
Bir soru
• Aşağıdaki iki cümle anlam bakımından
aynı mıdır, farklı mıdır?
1. «Hava durumu ile ilgili verileri aldım.»
2. «Hava durumu hakkında bilgileri aldım.»
10
Bilgi
Veri (Data)
• Veri, kendi başına bir anlam ifade etmeyen işlenmemiş (ham) bilgi
parçacığıdır.
• Bilgi, verilerin işlenerek anlamlı bir şekilde bir araya getirilmesiyle oluşur.
bilgisayar
Veri
Veri Tabanı (Database)
• Veri tabanı, birbiriyle ilişkili verilerin bir koleksiyonudur.
• Modern dünyada hayatımızın birçok alanında kullanılmaktadır. Örneğin;
• Bir otel ya da uçak/otobüs rezervasyonunda,
• Banka hesap işlemlerinde,
• Kütüphane katalog taramasında,
• Hastane randevu ve protokol işlemlerinde,
• Elektronik olarak bir ürün sipariş ederken veya satın alırken,
• Marketlerde alışveriş yaptıktan sonra kasada,
• E-devlet işlemlerinde,…
Geleneksel Veri Tabanlarından
Modern Veri Tabanlarına…
• Geleneksel veri tabanlarında sayısal ve metinşeklinde veriler tutuluyordu.
• Günümüz modern veri tabanlarında (multimedyaveri tabanları) bunlara ilaveten multimedyaöğeleri de yer almaktadır.
• Resim
• Video
• Konum (Coğrafi Bilgi Sistemleri)
• Modern veri tabanı sistemlerinde ayrıca çokmiktardaki verilerden (big data) çıkarımlaryapan «karar destek sistemleri» yer almaktadır.
Veri Tabanının Temel Nitelikleri
• Veri tabanı, gerçek dünyanın birparçasıdır. Çoğu zaman «mini dünya»(miniworld) veya «söylem evreni»(universe of discourse, UoD) olarakadlandırılır.
• Veri tabanı, verilerin mantıksal olarakorganize edilmiş halidir. Rastgele biraraya getirilmiş veriler, veri tabanıkavramı dışındadır.
• Veri tabanı, özel amaçlarlatasarlanan, oluşturulan ve üretilenverilerden oluşur.
Veri Tabanı Yönetim Sistemi (DBMS)
• Veri tabanı yönetim sistemi (database management system,DBMS) veri tabanını oluşturmak ve işlemek için kullanıcılarıyetkilendiren bir program koleksiyonudur.
DB DBMS
Kullanıcı
Basitleştirilmiş Veri Tabanı Sistemi
Uygulama Programları/Sorguları
İşlem Yazılımı
Sorgular/Programlar
Erişim Yazılımı
Saklanan Veri
Veri Tabanı
Tanımlamaları
(Meta-Data)
Veri Tabanı
Veri
Tabanı
Sistemi
DBMS
Yazılımı
Kullanıcılar/Programcılar
DBMS’nin İşlevleri
Tanımlama (Defining)
• Veri tabanında saklanan veriler için veri tiplerinin, mimarinin ve veri kurucuların tanımlanması ile ilgili işlemleri içerir.Buradaki tanımlamalar meta-data olarak adlandırılır.
Oluşturma (Constructing)
• DBMS tarafından kontrol edilen bazı saklama medyaları içerisinde verinin saklanması işlemleridir.
Düzenleme (Manipulating)
• Özel verileri geri döndürmek için hazırlanan sorgulamalar, veri tabanının güncellenmesi ve verilerden raporlar oluşturulması işlemleridir.
Paylaşım (Sharing)
• Veri tabanına çok sayıda kullanıcının veya programın eş zamanlı erişimine izin vermektir.
DBMS, değişik kullanıcılar ve uygulamalar tarafından veri tabanı
üzerinde tanımlama, oluşturma, değiştirme ve paylaşma
işlemlerini yöneten genel amaçlı bir yazılım sistemidir.
Meta-Data
• Veri tabanı oluşturma süreci, verilerin saklanması için veri tipleri,
yapıları ve veri kurucularının tanımlanması işlemlerini içerir. Veri
tabanı tanımlamaları, bir katalog formunda DBMS içerisinde tutulur.
Bu verilere «meta-data» adı verilir.
Uygulama Programı, Sorgu, İşlem
• Uygulama programı (application program), DBMS’ye sorgular veistekler göndererek veri tabanına erişim sağlar.
• Sorgu (query), genellikle veri tabanından bazı verilerin dönmesinisağlayan ifadelerdir.
• İşlem (transaction), veri tabanından bazı verileri okumak veya veritabanına bazı verileri yazmak için yapılan işlemlerdir.
• Koruma (protection), DBMS’nin diğer bir işlevidir. Zararlı yazılımlarakarşı donanımsal veya yazılımsal sistem koruması önemlidir.
• Zaman zaman verilerin kaybına karşı veri tabanındaki verilerdenyedekler alınması gerekmektedir. Bu işleme yedekleme (maintaining)denir.
Bir Veri Tabanı Örneği
• Örnek olarak, UNIVERSITE adlı bir veri tabanı içerisinde yer alan OGRENCI,DERS, DONEM, SINAV_SONUC, ONKOSUL adlı 5 dosyada tutulan aynı türdekiverileri düşünelim.
• Bu veri tabanını tanımlamak için, her bir dosyada tutulacak kayıtların hangialanlardan oluşacağını belirlemek gerekmektedir.
• Her bir alanın veri türü (string, integer, char,…) belirlenmelidir.
• Orta düzey ve büyük veri tabanları için veriler arasındaki ilişkilerbelirlenmelidir.
Örnek Veri Tabanının Yapısı
Ad Ogrenci_No Sinif Bolum
Mehmet 17 1 YBS
Ayşe 5 2 YBS
Ders_Ad Ders_Kodu Kredi Bolum
Bilgi Teknolojileri Kullanımı ENF101 4 ENF
Veri Tabanı I MBIL103 5 MBIL
Veri Tabanı Yönetim Sistemleri YBS201 4 YBS
Programlama Dilleri I BIL203 3 MAT
Donem_ID Ders_Kodu Donem Yil Ogr_Elemani
85 ENF101 Güz 16 Ahmet
92 YBS201 Güz 16 Sezgin
102 BIL203 Bahar 16 Kamil
112 ENF101 Bahar 16 Ahmet
119 YBS201 Güz 17 Fırat
135 MBIL103 Güz 17 Fırat
Ogrenci_No Donem_ID Not
17 85 AA
17 119 BB
5 85 AA
5 102 BA
5 119 CC
Ders_Kodu Onkosul_Kodu
YBS201 ENF101
BIL203 ENF101
OGRENCI
DERS
DONEM
SINAV_SONUC
ONKOSUL
Örnek Veri Tabanı Üzerinde Bazı
Uygulamalar
• Veri tabanı üzerinde yapılabilen bazı işlemlere örnekler;
• Transkript alınması
• 2017 yılında alınan Veri Tabanı Yönetim Sistemleri dersini alan tüm öğrencilerin sınav notları
• Önkoşul durumlarının listesi
• Güncelleme işlemlerine örnekler;
• Mehmet isimli öğrencinin sınıfının değiştirilmesi
• Yeni yarıyıl için yeni dersler açılması
• Ayşe adlı öğrencinin Veri Tabanı Yönetim Sistemleri dersi notunun CC olarak girilmesi
Veri Tabanı Uygulamalarının Kısa Tarihçesi
Hiyerarşik ve Ağ Sistemleri
Tabanlı Veri Tabanı
Uygulamaları
İlişkisel Veri Tabanı Yönetim Sistemi (RDBMS)
XML (eXtended
MarkupLanguage)
Yeni Veri Tabanı Uygulamaları
Bilgi Çıkarım (Information Retrieval, IR)
1970’ler 1980’ler 1990’lar 2000’ler Günümüz
• Bilimsel uygulamalar
• Resim ve video tabanlı veri
tabanları
• Veri madenciliği (data mining)
• Uzay uygulamaları
• Zaman serileri
Veri Tabanı Sistemi Kavramları ve
MimarisiVeri Modelleri, Şemalar ve Olaylar
Üç Şema Mimarisi
İlişkisel Veri Tabanı
Veri Tabanı Mimarisi
• İlk Veri Tabanı Mimarileri Tek bir bilgisayar (mainframe) üzerine kurulu
• Günümüz Veri Tabanı Mimarileri Sunucu-istemci yapısında
İstemci 1
İstemci 2 İstemci n
Sunucu (DBMS)
Veri TabanıDöndürülen
veri
Veri isteği
LAN veya
WAN
Veri Modeli
• Veri tabanının mimarisini tanımlamak için kullanılan kavramlar bütünüdür. Veritabanı mimarisi; veri tipleri, ilişkiler ve veri giriş kısıtlamalarını ifade eder.
• Varlık (Entity): Bir gerçek dünya nesnesini veya kavramını ifade eder. Örneğin;bir çalışan veya veri tabanı içerisindeki mini dünyada tanımlanan bir proje gibi.
• Nitelik (Attribute): Bir varlığı tanımlayan özelliktir. Örneğin; çalışan adı veyaücreti gibi.
• İlişki (Relationship): İki veya daha fazla varlık (entity) arasındaki ortak noktave birleşmeyi ifade eder. Örneğin bir çalışan ile bir projeyi ilişkilendirme gibi.
Varlık
Nitelik
İlişki
İlişkisel Veri Modeli (Relational Data
Model)
Ad Ogrenci_No Sinif Bolum
Mehmet 17 1 YBS
Ayşe 5 2 YBS
OGRENCİTablo (Table)
Nitelik (Attribute)
Alanlar (Fields, Columns)
Kayıtlar (Records)
Varlık (Entity)
İlişkisel Veri Tabanı Modeli
(Relational Database Model)İlişkisel model, bir veri tabanı üzerinde tanımlanan ilişkilerin koleksiyonudur.
SQL: Structural Query Language
• MS SQL Server
• Oracle
• PostrgreSQL
• MySQL
• Sybase SQL Server
• Informix
Birincil Anahtar ve Yabancı Anahtar
• Birincil Anahtar (Primary Key); bir tabloda her bir kayıt için verilen
benzersiz alandır. Kayıtların birbirinden ayırt edilmesini sağlar.
• Bir tabloda birincil anahtar alanında tanımlanan veriler aynı
olamaz.
• Yabancı Anahtar (Foreign Key, Secondary Key, Index); bir tabloda
diğer tablodaki kayıtlarla ilişki kurulan alanlardır.#
Örnek İlişkisel Veri Tabanı Tasarımı
• Bir işletmenin ürünlerini internet üzerinden satmak üzere bir veri
tabanı tasarımı
• Ürünler; Barkod, Ürün Adı, Marka, Özellikleri, KDV Oranı, Alış Fiyatı, Satış
Fiyatı, Ürün Adedi
• Müşteriler; Müşteri Kodu, Müşteri Adı, Müşteri Soyadı, e-posta, Parola, Adres,
Şehir, Telefon
• Siparişler; Sipariş Kodu, Müşteri, Ürün, Sipariş Tarihi, Sipariş Durumu, Sipariş
Adedi
Örnek İlişkisel Veri Tabanı Tasarımı
ÜRÜNLERBarkod
Ürün Adı
Marka
Özellikler
KDV Oranı
Alış Fiyatı
Satış Fiyatı
Ürün Adedi
MÜŞTERİLER
Müşteri Kodu
Adı Soyadı
E-Posta
Parola
AdresŞehir
Telefon
SİPARİŞLER
Sipariş Kodu Müşteri Kodu
Ürün Barkodu
Sipariş TarihiSipariş Durumu
Sipariş Adedi
SatışN 1
N
Birincil Anahtar
# Yabancı Anahtar
#
#
Örnek İlişkisel Veri Tabanı Tasarımı
Barkod Ürün Adı Marka Özellikler KDV Oranı Alış Fiyatı Satış Fiyatı Ürün Adedi
35126 Sabit Disk Seagate 500 GB %18 80,12 96,15 21
12525 Anakart Gigabyte GA-Z170X-Gaming 3-EU %18 201,15 250,83 12
18121 RAM OEM 4 GB DDR %18 50,22 75,91 30
ÜRÜNLER
Müşteri Kodu Adı Soyadı E-posta Parola Adres Şehir Telefon
1 Ahmet Akcan [email protected] ****** Ak. Ün. Kampus Antalya 02423212212
2 Hatice Özay [email protected] ******* KYK Yurdu Kampus Antalya 05333333333
3 Salih Zafer [email protected] ***** Dumlupınar Bulvarı Antalya 02423221112
MÜŞTERİLER
Sipariş Kodu Müşteri Kodu Ürün Barkodu Sipariş Tarihi Sipariş Durumu Sipariş Adedi
121 2 35126 22/09/2017 Teslim edildi 3
122 1 12525 30/09/2017 Kargoda 1
SİPARİŞLER
Birincil Anahtar
# Yabancı Anahtar
# #
UNIVERSITE Veri Tabanı için İlişkisel Model
OGRENCİ
Ad Ogrenci_No
SinifBolum
ONKOSUL
Ders_Kodu Onkosul_Kodu
DONEM
DERS
Donem_ID
Ders_Kodu
Ogr_Elemani
Donem
Yil
Ders_Ad
Ders_Kodu
Kredi
Bolum
açılırseçer
1
N
N 1
N
SINAV_SONUC
Ogrenci_No
Donem_ID
Not
Değerlendirme1 N
N
belirlenirN 1
# ##
#
#Birincil Anahtar
# Yabancı Anahtar
Veri Tabanı Şema Diyagramı
(Database Schema Diagram)
• Veri tabanındaki
varlıkları, nitelikleri
ve bunların
birbiriyle ilişkisini
gösteren şekillerdir.
Üç Şema Mimarisi (Üç Katman Mimarisi)
• Veri tabanının fiziksel saklama yapısını tanımlar.
İç Katman (İç Şema)
• Veri tabanının veri modelini tanımlar, kullanıcı ile iç katman arasında iletişimi sağlar.
Kavramsal Katman (Kavramsal Şema)
• Veri tabanının kullanıcı grubunun erişimi için hazırlanan arayüzüdür.
Harici (Dış) Katman (Dış Şema)
Örnek Veri Tabanı Tasarımı
• Bir kütüphane kitap ödünç verme/sorgulama işlemleri için veri tabanı
• Bir eczane ilaç satışı için veri tabanı
• Bir şehirlerarası otobüs firması bilet satışı için veri tabanı