Veritabanlarına Giriş

Slides:



Advertisements
Benzer bir sunumlar
VERİ TABANI VE YÖNETİM SİSTEMLERİ
Advertisements

4 SQL- Yapısal Sorgulama Dili
Tablo oluşturma İlk olarak tabloları oluşturmamız gerekli..
III.Oturum: SQL ile Verileri İşlemek
SQL Structured Query Language
MySQL Veritabanı Sunucusu ve MySQL Veritabanı Kullanımı
Veri ve Veri Yapıları Genel olarak bilgisayarlar.
SQL (Structured Query Language)
SQL’e Giriş.
Normalizasyon Kuralları & SQL
İLİŞKİSEL VERİ MODELİ Tablolar ile Gösterim
SQL de Değişken Tanımlama
Veri Tabanı Normalizasyonu Devrim ALTINKURT
SQL Komutlar 5 Sibel SOMYÜREK.
VERİTABANI ve YÖNETİMİ
Varlık-İlişki Modeli Örneği
İndeksler Sibel SOMYÜREK.
EkoPC Bilişim Ltd. Eğitim Hizmetleri
VERİ TABANI ve YÖNETİMİ
İlişkisel Veri Modeli.
Veri Tabanı Yönetim Sistemleri
Tek Tablo İçinde Sorgulamalar
Veritabanı Yönetim Sistemleri Hızlı ve Kısa Giriş
VERİ TABANI ve YÖNETİMİ
Veri Tabanı Yönetim Sistemleri
VeriTabanı Uygulama. Tabloları yaratmak için MySQL komutları.
BÖLÜM 6 SQL SERVER KOMUTLARI.
SQL (STRUCTURED QUERY LANGUAGE)
VERİ TABANI VE YÖNETİM SİSTEMLERİ  Birincil Anahtar Türleri  Access Veri Tabanında Bulunan İlişkiler  İlişkileri Tanımlama Bir – Çok İlişkisi Çok –
VIEW (BAKIŞ) OLUŞTURMA
SQL Dili ve MySQL Komutları
SQL’e Giriş ve SELECT Komutu
ADRES DEFTERİMDE NELER VAR?. Arkadaşlarınızın, akrabalarınızın ve tanıdığınız diğer kişilerin adresleri, telefon numaraları, e-posta adresleri vb. bilgilerini.
VeriTabanı Uygulama.
VERİTABANI ve YÖNETİMİ
BTP102 VERİTABANI YÖNETİM SİSTEMLERİ 1
Veritabanı Tasarımı ve Yönetimi
Varlık-İlişki Modeli (E-R Modeli)
Veritabanı Kavramları
SQL Sibel SOMYÜREK.
SQL Komutları (2) Uzm. Murat YAZICI.
BTP102 VERİTABANI YÖNETİM SİSTEMLERİ 1
SQL’ e Giriş Uzm. Murat YAZICI.
İLİŞKİSEL VERİ MODELİ Tablolar ile Gösterim
Veritabanı Yönetim Sistemleri - I
Veritabanı Kavramları
İnsan Kaynakları Bilgi Sistemleri
ADRESİNDEN ÖRNEK VERİ TABANLARINI İNDİRİNİZ
UNV13107 TEMEL BİLGİ TEKNOLOJİSİ KULLANIMI. Veri tabanı Bilgisayar ortamında saklanan düzenli verilerdir. Bilgisayar ve ağ ortamındaki bilginin temel.
ÖTÖ 451 Okul Yönetiminde Bilgisayar Uygulamaları R. Orçun Madran.
Yapısal Sorgulama Dili SQL Hafta 7. TEKRARLI SATIRLARI ÖNLEMEK  DISTINCT komutu ile sorgu sonucunda birden fazla kayıt aynı verileri içeriyorsa tekrarlı.
ÖTÖ 451 Okul Yönetiminde Bilgisayar Uygulamaları R. Orçun Madran.
Altıncı hafta. Müfredat programı Ödev teslim edenler Mantıksal tasarım ödevini teslim edenler: Belediye Projesi Valilik Projesi Mekan Projesi Konaklama.
View View’ler select ifadesi ile tanımlanmış sanal tablolardır. Temel amacı base tabloların içerisinden veri kümesi getirip ortaya çıkan sonucu sanal.
Veri Tabanı Yönetimi Dersi 1. Laboratuvarı Arş. Gör. Pınar CİHAN.
Asp.Net Veritabanı İşlemleri
Öğretim Görevlisi Alper Talha Karadeniz Veri Tabanı 2
Veri Tabanı Yönetimi Dersi 1. Laboratuvarı
VIEW lerle çalışmak 11.BÖLÜM.
© Marmara Üniversitesi Uzaktan Eğitim Uygulama ve Araştırma Merkezi
İNDEKS.
© Marmara Üniversitesi Uzaktan Eğitim Uygulama ve Araştırma Merkezi
© Marmara Üniversitesi Uzaktan Eğitim Uygulama ve Araştırma Merkezi
VERİ TABANI SQL (STRUCTURED QUERY LANGUAGE) SAVAŞ TUNÇER.
Öğretim Görevlisi Alper Talha Karadeniz Veri Tabanı 1
Öğretim Görevlisi Alper Talha Karadeniz Veri Tabanı 1
DML ile veri ekleme, silme ve değiştirme
Öğretim Görevlisi Alper Talha Karadeniz Veri Tabanı 1
SQL (STRUCTURED QUERY LANGUAGE)
SQL Server - Stored Procedures
Sunum transkripti:

Veritabanlarına Giriş Dr. Hidayet Takçı htakci@bilmuh.gyte.edu.tr http://www.bilmuh.gyte.edu.tr/~htakci

Dr. Hidayet Takçı - Veritabanlarına Giriş Yapısal veriler topluluğudur. Bilgisayar ortamında saklanan düzenli verilerdir. Bilgisayar terminolojisinde, sistematik erişim imkanı olan, yönetilebilir, güncellenebilir, taşınabilir, birbirleri arasında tanımlı ilişkiler bulunabilen bilgiler kümesidir. Bilgisayarda sistematik şekilde saklanmış, programlarca işlenebilecek veri yığınıdır. Dr. Hidayet Takçı - Veritabanlarına Giriş

Dr. Hidayet Takçı - Veritabanlarına Giriş Veritabanı Sistemi Veritabanı sisteminin iki bileşeni vardır: Veritabanı (VT) Veritabanı Yönetim Sistemi (VTYS) Fiziksel olarak verilerin tutulduğu kısmı ifade eder. Veri tabanı tanımlamak, yaratmak, yaşatmak ve veri tabanına denetimli erişim sağlamak için kullanılan yazılım sistemidir.. Dr. Hidayet Takçı - Veritabanlarına Giriş

Dr. Hidayet Takçı - Veritabanlarına Giriş

Dr. Hidayet Takçı - Veritabanlarına Giriş Veri Modeli Veritabanının yapısını tanımlayabilmek için kullanılan kavramlar kümesidir. Veritabanının modeli; veri tipleri, operasyonlar ve kısıtlamalardan oluşur. Üç tip veri modeli vardır: Yüksek Seviyeli Veri Modelleri Varlık, özellik ve ilişkiler ile gerçek dünyanın sunumu yapılır. Mantıksal Veri Modelleri Veri nesnelerinin sunumu tablolar yardımıyla yapılır. Fiziksel Veri Modelleri Dosya ve kayıt organizasyonları ile ilgilidir. Dr. Hidayet Takçı - Veritabanlarına Giriş

Dr. Hidayet Takçı - Veritabanlarına Giriş

Dr. Hidayet Takçı - Veritabanlarına Giriş Veri modellemede bir nesnenin hangi detayda sunulacağı önemlidir. Dr. Hidayet Takçı - Veritabanlarına Giriş

Dr. Hidayet Takçı - Veritabanlarına Giriş Veritabanı Dilleri Veri Tanımlama Dili(DDL) Veritabanının şema tanımlarını yerine getirmek için kullanılırlar. Bu diller sayesinde; tabloların oluşturulması, değiştirilmesi gibi işlemler yerine getirilir. Veri İşleme Dili(DML) Veri güncelleme tarzında veritabanı işlemleri için kullanılırlar. Bir programlama diline bağlı veya ondan bağımsız olarak veritabanı operasyonlarını yürütmede kullanılır. Dr. Hidayet Takçı - Veritabanlarına Giriş

Dr. Hidayet Takçı - Veritabanlarına Giriş DDL ve DML komutları ÖRNEK DDL KOMUTLARI CREATE (TABLE, DATABASE, VIEW V.S.) DROP (TABLE, DATABASE, VIEW V.S.) ALTER ÖRNEK DML KOMUTLARI INSERT UPDATE DELETE SELECT Dr. Hidayet Takçı - Veritabanlarına Giriş

Veritabanı Sınıflandırmaları Veri Modeline Göre İlişkisel VTYS Hiyerarşik VTYS Ağ VTYS İlişkisel nesne modelli VTYS Nesneye-yönelik VTYS Kullanıcı Sayısına Göre Tek kullanıcılı sistemler Çok kullanıcılı sistemler Yerleşimine Göre Merkezi VTYS Dağıtık VTYS Homojen VTYS – birçok noktada aynı VTYS. Heterojen VTYS – farklı noktalarda farklı VTYS Dr. Hidayet Takçı - Veritabanlarına Giriş

Dr. Hidayet Takçı - Veritabanlarına Giriş Kavramsal Tasarım Bir kavramsal model, veritabanında tutulacak verilerin yüksek seviyede bir gösterimini ve açıklamasını verir.  Varlık-İlişki (ER) Modeli, kavramsal modelleme için en popüler ve en çok kullanılan modeldir. ER’deki notasyonlar oldukça bilgi verici ve uygulamalarla ilgili insan bakışına yakın özelliklere sahiptir.  ER için en temel kavramlar; varlıklar(entities), ilişkiler (relationships) ve nitelikler (attributes)dir.  ER modelinin bir çok değişik varyasyonu vardır ve notasyonların gösterimleri çok farklılık gösterir. Ancak burada en çok kabul gören gösterimi ve kavramları içeren ER modeli ele alınacaktır. Dr. Hidayet Takçı - Veritabanlarına Giriş

Dr. Hidayet Takçı - Veritabanlarına Giriş Varlık İlişki Modeli Veri çözümleme ve modellemede ilişkilerin ortaya konması için kullanılan araçtır. Varlık (Entity): Bir etki alanında diğer nesnelerden ayırt edilebilen bir şey (“thing”) yada “nesne” (“object”) Varlıklar niteliklerin kümesi (set of attributes) tarafından tanımlanır. İlişki (Relationship): Birden fazla varlığın arasındaki bağıntı-ilişki. Dr. Hidayet Takçı - Veritabanlarına Giriş

Varlık ve Varlık Dizisi Varlık(Entity): Var olan ve diğer varlıklardan ayırt edilebilen nesnedir. (Bir kitap, öğrenci, veritabanı dersi birer varlıktır. Varlık Dizisi: Aynı türdeki varlıklar varlık kümesini oluştururlar. Bir okuldaki tüm öğrenciler “öğrenci” isimli varlık kümesi olarak değerlendirilir. Dr. Hidayet Takçı - Veritabanlarına Giriş

Dr. Hidayet Takçı - Veritabanlarına Giriş

İlişki ve İlişki Kümeleri Varlıklar arasındaki bağlantıya ilişki adı verilir. Örneğin “Burak” varlığı ile “Dersler” varlığı arasından ilişki vardır. İlişki kümesi, aynı türdeki ilişkilerin kümesidir, bu ilişki kümesi R ile gösterilir. E1,E2,…En varlık kümeleri, R ise ilişkiyi tanımlamaktadır. Dr. Hidayet Takçı - Veritabanlarına Giriş

İlişki ve İlişki Kümeleri E1={Ayşe,Burak} E2={Elektronik, İngilizce} Bu iki küme arasındaki ilişki, öğrenciler ve dersler arasındaki ilişkidir. Tüm öğrencilerle tüm dersler arasındaki ilişki kartezyen çarpımı yapılarak ifade edilir. E1xE2={(Ayşe,Elektronik),(Ayşe,İngilizce), (Burak, Elektronik),(Burak,İngilizce)} İki veri kümesi arasındaki geçerli tüm ilişkiler, R ilişki kümesinin bir alt kümesidir. Dr. Hidayet Takçı - Veritabanlarına Giriş

Dr. Hidayet Takçı - Veritabanlarına Giriş

Dr. Hidayet Takçı - Veritabanlarına Giriş Nitelikler Bir varlık çok sayıda nitelik yardımıyla tanımlanabilir. Örneğin, personel varlığının nitelikleri şu şekilde olabilir: Personel No Adı ve Soyadı Adres SSK no Gelir Dr. Hidayet Takçı - Veritabanlarına Giriş

Dr. Hidayet Takçı - Veritabanlarına Giriş

Dr. Hidayet Takçı - Veritabanlarına Giriş Etki Alanı Dr. Hidayet Takçı - Veritabanlarına Giriş

Dr. Hidayet Takçı - Veritabanlarına Giriş Türemiş Nitelik Bir nitelik kullanılarak, bir başka varlık nitelik elde edilebiliyorsa bu yeni niteliğe “türetilen nitelik” adı verilir. Örneğin personel varlığının “doğum tarihi” niteliğinden yararlanılarak “yaş” niteliği elde edilebilir. Dr. Hidayet Takçı - Veritabanlarına Giriş

Çok Değere Sahip Nitelik Bir nitelik birden fazla değer ile eşleşebiliyor ise, “çok değere sahip nitelik” adı verilir. Örneğin, öğretmen varlığının dersler niteliği birden fazla değeri kapsar. Bir öğretmen birden fazla derse girmektedir. Öğrenci varlığının okuduğu kitaplar niteliği birden fazla kitabı kapsayabilir. Dr. Hidayet Takçı - Veritabanlarına Giriş

Dr. Hidayet Takçı - Veritabanlarına Giriş Birleşik Nitelik Birden fazla nitelik birleştirilerek, yeni bir nitelik oluşturulabilir. Bu tür niteliklere birleşik nitelik denir Örneğin personelin “cadde” ve “şehir” nitelikleri birleştirilerek “ADRES” isimli yeni bir nitelik oluşturulabilir. Dr. Hidayet Takçı - Veritabanlarına Giriş

Varlıklar Arası Eşleşmeler Bir varlıkla ilişkiye girilebilecek varlıkların sayısına eşleme sayısı adı verilir. Eşleme sayısı n>=2 varlık için söz konusudur ve ikili ilişkilerin ortaya konulması açısından yararlıdır. A ve B gibi iki varlık kümesi arasındaki R ilişki kümesi için eşleme durumları şu şekilde ifade edilir: Birden-bire (One to One) Birden-çoğa(One to Many) Çoktan-bire (Many to One) Çoktan-çoğa (Many to Many) Dr. Hidayet Takçı - Veritabanlarına Giriş

Dr. Hidayet Takçı - Veritabanlarına Giriş

Dr. Hidayet Takçı - Veritabanlarına Giriş

Dr. Hidayet Takçı - Veritabanlarına Giriş

Dr. Hidayet Takçı - Veritabanlarına Giriş

Dr. Hidayet Takçı - Veritabanlarına Giriş

Dr. Hidayet Takçı - Veritabanlarına Giriş

Dr. Hidayet Takçı - Veritabanlarına Giriş

Dr. Hidayet Takçı - Veritabanlarına Giriş

Dr. Hidayet Takçı - Veritabanlarına Giriş Varolma Koşulu Eğer bir X varlığının bulunması Y varlığının bulunmasına bağlı ise, X’in Y’ye bağlı olduğundan söz edilebilir. Y silinirse, X’in bir anlamı kalmayacaktır. Bu durumda Y baskın varlık(dominant entity) X ise bağımlı varlık(subordinate entity) adı verilir. Örneğin, bir müşterinin hesabı silineceğinde, bu müşterinin hesap hareketlerinin de silinmesi gerekmektedir. Hesap hareketleri, hesap var olmadan var olamaz. Dr. Hidayet Takçı - Veritabanlarına Giriş

Dr. Hidayet Takçı - Veritabanlarına Giriş Anahtar Varlık kümesi içinde, varlıkları birbirinden ayırt etmek için kullanılan bu tür niteliklere varlık kümesinin anahtarı adı verilir. İki tür anahtar vardır. Süper anahtar (superkey): Varlık kümesinde yer alan bir varlığı kesin olarak tanımlamaya yarayan anahtara süper anahtar adı verilir. Örneğin SSK no süper anahtardır. Fakat isim alanı süper anahtar olamaz. SSk no ve isim alanı birlikte süper anahtar olarak kabul edilebilir. Dr. Hidayet Takçı - Veritabanlarına Giriş

Dr. Hidayet Takçı - Veritabanlarına Giriş Anahtar Aday anahtar (candidate key) : Varlık kümesinde bir varlığı tanımlamaya yarayan bir başka anahtar türü aday anahtar dır. Bir varlık kümesinin süper anahtarı bir veya daha fazla niteliğin birleşiminden oluşabilmektedir. Aday anahtar ise, anahtar olabilecek özellikteki niteliklerdir. Dr. Hidayet Takçı - Veritabanlarına Giriş

Dr. Hidayet Takçı - Veritabanlarına Giriş

Dr. Hidayet Takçı - Veritabanlarına Giriş

Dr. Hidayet Takçı - Veritabanlarına Giriş İkili İlişkiler Dr. Hidayet Takçı - Veritabanlarına Giriş

Kavramsal Tasarım Örneği I Dr. Hidayet Takçı - Veritabanlarına Giriş

Kavramsal Modelde Varlıklar Arası İlişkiler YAZARTIPADI YAZARTIPI YAZARNO DNO İLİŞKİ YAZAR YAZARTIPLERI Dr. Hidayet Takçı - Veritabanlarına Giriş 40

Mantıksal Tasarım İlişkisel Veri Modeli En geniş kullanım alanına sahip veri modelidir. Oracle, SQL server ve birçok VTYS bu modeli temel alır Model iki boyutlu tablolar halinde gösterilir, her bir tabloya ilişki (relation) adı verilir. İlişkide gösterilen her bir satır (tuple) bir kayda ait verileri, her bir sütun ise bir niteliğe ait verileri içerir. Nitelik verilerinin alındığı havuzlara etki alanı (domain) adı verilir. Bir ilişkideki niteliklerin sayısı ise o ilişkinin derecesini (degree) gösterir.  Dr. Hidayet Takçı - Veritabanlarına Giriş

İlişkisel Model için Bir Örnek Dr. Hidayet Takçı - Veritabanlarına Giriş

İlişkisel Modelde Güncelleme İşlemleri Giriş (insert): Bir tabloya yeni kayıtların ilave edilmesi   Silme (delete): Bir tablodan bazı kayıtların silinmesi işlemi  Değiştirme (modify): Bazı niteliklerin değerlerinin değiştirilmesi işlemi  Bu operasyonlar sırasında ilişkisel veritabanı şeması üzerinde tanımlı bütünlük kısıtlamalarının çiğnenip çiğnenmediği kontrol edilmek zorundadır.  Dr. Hidayet Takçı - Veritabanlarına Giriş

SQL ile Güncelleme İşlemleri Veri girişi INSERT INTO DOLASIM (DNO, ERISIMNO, ALISTAR)  VALUES (14, 1505, ’02.02.2003’) Veri silme DELETE  FROM DOLASIM D  WHERE D.UYENO = 14 AND D.ERISIMNO=1505   Veri güncelleme UPDATE DOLASIM  SET ALISTAR = ’02.03.2003’  WHERE UYENO= 14 AND ERISIMNO=1505  Dr. Hidayet Takçı - Veritabanlarına Giriş

Dr. Hidayet Takçı - Veritabanlarına Giriş Anahtar Nitelikler İlişkisel veri modelinde anahtar nitelikler önemli bir yere sahiptir. Süper Anahtar: Bir tablodaki kayıtları eşsiz olarak birbirinden ayıran nitelik veya nitelikler kümesidir. Örneğin; kitap tablosunda demirbaş numarası veya kimlik tablosunda kimlik no gibi. Aday Anahtar: Bir tabloda birden fazla anahtar varsa bunlardan her birine aday anahtar denir. Örneğin; ödünç kitap (DOLASIM) tablosunda üye_no ve erisim_no aday anahtardır. Birincil anahtar (primary key): Aday anahtarlardan birisi kullanılmak üzere seçilir. Seçilen aday anahtara birinci anahtar denir. Birincil anahtar tekil olduğu zaman o aynı zamanda süper anahtardır. Dr. Hidayet Takçı - Veritabanlarına Giriş

İlişkisel Veri Modelinde Kısıtlar Anahtarlarla ilgili bazı kısıtlar bulunmaktadır. Birincil anahtar kısıtlaması: Bir tabloda birbirinin aynı olan iki satır olamaz. Anahtar bunu engellemelidir. Varlık bütünlük kısıtlaması: Anahtar niteliği boş olamaz. Referanslı bütünlük kısıtlaması: Eğer bir tablodaki bir satır başka bir tablodaki başka bir satırı referans ediyorsa referans edilen satır var olmalıdır. Dr. Hidayet Takçı - Veritabanlarına Giriş

Dr. Hidayet Takçı - Veritabanlarına Giriş İlişkisel Cebir İlişkisel Cebir, ilişkisel veri modelindeki bazı operasyonların matematiksel olarak anlatılması için kullanılır. İlişkisel cebir işlemleri şöyledir: Seçme (select) işlemi  Projeksiyon (project) işlemi  Kartezyen çarpım (cartesian product) işlemi  Birleştirme (join) işlemi  Toplama (union) işlemi  Kesiştirme (intersect) işlemi  Çıkarma (difference) işlemi  Bölme (division) işlemi  Dr. Hidayet Takçı - Veritabanlarına Giriş

Doğal Birleştirme Örneği Örneğin: R = (A, B, C, D) S = (E, B, D) Sonuç şeması = (A, B, C, D, E) R ve s aşağıdaki şekilde tanımlanır: r.A, r.B, r.C, r.D, s.E (r.B = s.B  r.D = s.D (r x s)) Dr. Hidayet Takçı - Veritabanlarına Giriş

Dr. Hidayet Takçı - Veritabanlarına Giriş Örneğin Gösterimi r, s ilişkileri: B D E A B C D 1 3 2 a b          1 2 4    a b r s r s A B C D E   1 2    a b    Dr. Hidayet Takçı - Veritabanlarına Giriş

Dr. Hidayet Takçı - Veritabanlarına Giriş Fiziksel Tasarım VTYS, verileri yan bellekte tutar. Bu yüzden veritabanlarında sıklıkla READ (yan bellekten okuma) ve WRITE (yan belleğe yazma) işlemi meydana gelir. READ ve WRITE işlemleri ana bellek işlemlerine oranla daha yavaştır o yüzden iyi performans için planlama zorunludur. Fiziksel tasarım performansı artırıcı çalışmalarla ilgilidir. VTYS için yan bellek kullanımının iki önemli sebebi vardır. Ana bellekte veri tutmak pahalıdır. Ana bellekteki veriler kalıcı değildir. Dr. Hidayet Takçı - Veritabanlarına Giriş

Dr. Hidayet Takçı - Veritabanlarına Giriş Okuma Yazma Süresi READ ve WRITE işleminin süresi üç işlemin süresine bağlıdır. Arama zamanı: disk kolunun okuma yapacağı uygun diski bulması için gereken zaman. Dönme zamanı: okuyucu kafanın disk başından okuma / yazma yapılacak yere ulaşma zamanı. Aktarım zamanı: verinin iki uç (yan bellek – ana bellek) arasında iletilme süresi. Bu sürelerden en çok zaman alanı arama ve dönme zamanıdır. Dr. Hidayet Takçı - Veritabanlarına Giriş

Veritabanı Performansı Veritabanı performansı için giriş çıkış işlemlerini en aza indirmek gerekmektedir. Bunun için diskte sayfaların yerleşim şekilleri önemlidir. Performans artımı için veri organizasyon teknikleri geliştirilmiştir. (ardı sıra vs.) Performans için bir başka yöntem tampon (buffer) kullanımıdır. Tampon kullanımında en bilinen teknikler şunlardır: Son zamanlarda en az kullanılan verilerin tampondan atılması (tampon boşaltma). En son ve sıklıkla kullanılan verilerin tampon belleğe alınması (tampon doldurma). Dr. Hidayet Takçı - Veritabanlarına Giriş

Yapısına Göre Dosya Organizasyonları Dosya, kayıt grupları içeren sayfaların toplamıdır. Yani kayıtlar sayfaları sayfalar da dosyaları oluşturur. Sayfaları oluşturan kayıtlar iki tiptir. Sabit uzunluklu kayıtlar Her bir kayda ait uzunluk sabittir. Örneğin, her bir kayıt 250 karakterden oluşur gibi. Değişken uzunluklu kayıtlar Kayıt uzunlukları eşit olmak durumunda değildir. Değişken uzunluklu kayıtlarda kaydı oluşturan alanlar birbirinden ayırıcı karakterlerle ayrılırlar. Ayrıca başta kaydın kaç adet alandan oluştuğu belirtilir. Dr. Hidayet Takçı - Veritabanlarına Giriş

Sayfa Organizasyonları Eğer kayıtların sayfa sınırlarını aşmasına (başka sayfaya bölünme) izin verilmiyorsa buna aktarımsız organizasyon adı verilir. Eğer bir kayıt birden fazla bloğa taşabiliyorsa buna aktarımlı organizasyon adı verilir. Dr. Hidayet Takçı - Veritabanlarına Giriş

İçeriğine Göre Dosya Organizasyonları Üç teknik Heap (sırasız) Sıralı Sequential (SAM-Sıralı erişimli bellek) Indexed Sequential (ISAM-İndeksli sıralı erişimli bellek) Hash edilmiş veya Direct (doğrudan) Dr. Hidayet Takçı - Veritabanlarına Giriş

Dr. Hidayet Takçı - Veritabanlarına Giriş İndeksleme Verilere hızlı erişim tekniklerinden birisi de indekslemedir. Bir sıralayıcı alana göre kayıtların bir indeks dosyasında toplanmasıyla indeksleme sağlanır. İndeksleme sayesinde verilerin çeşitli kategorilere göre sıralanma imkanları vardır. Tek seviyeli, çok seviyeli, hashed tarzında indeksleme yapıları vardır. Dr. Hidayet Takçı - Veritabanlarına Giriş

Dr. Hidayet Takçı - Veritabanlarına Giriş Veritabanı Tasarımı İlişkisel şemalardaki problemlerin temelinde verilerde oluşabilecek tekrarlanma vardır. Tutarlılık kısıtları, özellikle fonksiyonel bağımlılıklar şemalarda oluşabilecek bu problemleri tespit etmede kullanılır. Veritabanı problemlerini çözebilmenin en iyi yöntemi ayrıştırmadır. Yani ABCD niteliklerinden oluşan bir şema AB ve ACD niteliklerinden oluşan iki farklı şemaya ayrıştırılabilir. Ayrıştırmanın tipi önemli bir konudur. Dr. Hidayet Takçı - Veritabanlarına Giriş

İlişkisel Şema Tasarımı Ölçütleri Niteliklerin anlamları olmalı: her bir niteliğin bir diğerleriyle olan ilgileri ve nasıl yorumlanmaları gerektiği belirgin olmalıdır. Veri giriş ve güncelleme problemleri engellenmeli: aynı verinin iki kez girilmesi, olmayan verinin silinmeye çalışılması veya güncellenmeye çalışılması gibi hatalar engellenmelidir. Boş değerler minimize edilmeli: veri girişlerinde mümkün olduğu kadar boş geçmemeye dikkat edilmeli. İlave satırlar engellenmeli: tabloların birleştirilmesi sonucu bazen gereksiz satırlar meydana gelir. İlave satırların engellenmesi için şart cümlecikleri doğru yazılmalıdır. (where cümleciğinden sonrası) Dr. Hidayet Takçı - Veritabanlarına Giriş

Örnek İlişkisel Veritabanı : Oracle Büyük miktarda veri tutabilmekte ve verilerin depolandığı alanları ayarlama imkanı vermektedir. Oracle 8 sürümü ile birlikte on binlerce kullanıcıya hizmet verebilmektedir. Günün 24 saati ve haftalar boyu hiç kapatılmadan çalışabilmektedir. İşletim sistemi, veri erişim dilleri ve ağ iletişim protokolleri standartlarıyla uyumludur. Yetkisiz erişimleri engelleme ve kontrol edebilme imkanı sağlamaktadır. Bütünlüğü veritabanı düzeyinde sağlayabilmektedir, böylece daha az kod yazılmaktadır. İstemci/Sunucu mimarisinin bütün avantajlarını kullanabilmektedir. Dr. Hidayet Takçı - Veritabanlarına Giriş

Dr. Hidayet Takçı - Veritabanlarına Giriş Oracle Ürünleri Oracle RDBMS Oracle ilişkisel veritabanı yönetim sistemi Oracle şirketinin ana ürünüdür. Bu ürünün şu an en yeni sürümü Oracle10g RDBMS’dir. Bu çalışmada Oracle8i esas alınacaktır. Oracle 8i’den bir önceki sürüm Oracle 7 ve onun bir önceki sürümü de Oracle 6’dır. Dr. Hidayet Takçı - Veritabanlarına Giriş

Oracle Uygulama Geliştirme Araçları Oracle’ın veritabanı uygulamaları geliştirmek için görsel ürünleri bu grupta yer alır. Bu ürünlerinin eski adı Oracle Power Objects idi. Daha sonra Oracle Developer 2000 ve sonra da Oracle Developer 6 ürünleri geliştirildi. Developer 2000 ve Developer 6 içerisinde; Form Builder, Report Builder, Graphics Builder, Procedure Builder ve Schema Builder ürünleri bulunur. Form Builder kullanıcıya sunulacak arayüzlerin geliştirildiği programdır. Report Builder ürünü veritabanından elde edilen bilgiler ile raporlar hazırlamaya yarar (fatura, evrak gibi belgeler) Procedure Builder sürekli kullanılacak kodların prosedürler halinde oluşturulup, kütüphaneler olarak kaydedilmesi işlemine yarayan bir programdır. Schema Builder ise veritabanı nesnelerinin görsel olarak oluşturulabilmesi için geliştirilmiş bir uygulamadır. Dr. Hidayet Takçı - Veritabanlarına Giriş

Dr. Hidayet Takçı - Veritabanlarına Giriş SQL *Plus SQL*Plus, Oracle veritabanında sorgulama yapmak ve SQL komutlarını çalıştırmak için kullanılan bir araçtır. SQL*Plus’da SQL komutlarının yanı sıra PL/SQL komutları da kullanılabilmektedir. Dr. Hidayet Takçı - Veritabanlarına Giriş

Dr. Hidayet Takçı - Veritabanlarına Giriş PL/SQL PL/SQL (Procedural Language/SQL), yapısal dillere ait özelliklerin standart SQL’e eklenmesiyle ortaya çıkan Oracle’a has bir dildir. PL/SQL Oracle firmasının piyasaya sürdüğü her üründe önemli bir yere sahiptir. Kullanıcılar PL/SQL’i kullanarak programlarına bir çok yeni özellikler katmaktadırlar. Bunlar arasında; PL/SQL tabanlı kaydedilmiş yordamlar stored procedures) ve veritabanı tetiklemeleri(triggers) ile önemli iş kurallarını programlamak Oracle Developer ürünleri ile güçlü ve kolay kullanılabilir görsel ortamlarla programları detaylandırmak ve daha rahat kontrol etmek Dr. Hidayet Takçı - Veritabanlarına Giriş

Dr. Hidayet Takçı - Veritabanlarına Giriş Net8 Net8 Oracle’ın bir ağ ürünüdür. Farklı bilgisayarların veritabanına bağlantı kurması ve ve istemci-sunucu arasında veri alışverişinin sağlanabilmesi Net8’in ana görevidir. Net8 ağdaki her bilgisayara kurulur. Ağ bağlantısı sağlandığında NET8 istemci ile sunucu arasında bir veri taşıyıcısı gibi işlem görür. Dr. Hidayet Takçı - Veritabanlarına Giriş

Dr. Hidayet Takçı - Veritabanlarına Giriş SQL *Net SQL*Net Net8’in yardımcı programıdır. Bir istemci bilgisayara Oracle Forms ürününün yüklendiğini düşünelim. Bunun için istemci bilgisayar SQL*Net ile oluşturulan veritabanı takma adını (alias) kullanır. İstemci bilgisayardaki konfigurasyon ayarlama işi SQL*Net sayesinde yapılır. Veritabanına verilecek takma isim, protokol adı, ana bilgisayar adı(veritabanının bulunduğu) ve veritabanının SID olarak girilen ismi bilgileri girilerek düzenleme yapılır. Dr. Hidayet Takçı - Veritabanlarına Giriş

Nesneye Dayalı Veritabanları Bütün önemli nesne tabanlı kavramları destekleyen veritabanı sistemidir Nesneler – kullanıcı tarafından tanımlı karmaşık veri tipleridir. Bir nesnenin; yapısı veya durumu (variables) ile ona ait yöntemleri (behavior/operations) vardır Bir nesne dört karakteristiği ile açıklanır Identifier: Her bir nesne için sistem tarafından verilen ID Name: Veritabanında her bir nesneyi benzersiz olarak tanımlayacak bir isim Lifetime: Bir nesnenin kalıcı veya geçici bir nesne olup olmadığı Structure: Tip yapıcılar kullanılarak nesnelerin inşa edilmesi Dr. Hidayet Takçı - Veritabanlarına Giriş

Nesneye Dayalı Kavramlar Abstract Data Types (soyut veri tipleri) Class tanımı, karmaşık nitelik tipleri tanımlamaya izin verir. Encapsulation (kapsülleme) Operasyonların gerçekleştirimini ve nesne yapısının gizliliğini sağlar Inheritance (kalıtım) Hiyerarşi kapsamı içinde verinin paylaşımını sağlar, kodun yeniden kullanımını destekler Polymorphism Operator overloading destekler (bir nesneye birden fazla görev yükleme gibi) Dr. Hidayet Takçı - Veritabanlarına Giriş

Nesneye Dayalı VT Avantajları Tasarımcı nesnelerin yapısı ve onların davranışlarını belirleyebilir Java ve C++ gibi nesne tabanlı diller ile daha iyi etkileşim sağlanır Karmaşık ve kullanıcı tanımlı tipler tanımlanabilir İşlemlerin paketlenmesi ve kullanıcı tanımlı işlemlerin yapılması mümkün hale gelir. Dr. Hidayet Takçı - Veritabanlarına Giriş

Dr. Hidayet Takçı - Veritabanlarına Giriş XML Veritabanları XML Extensible Markup Language anlamına gelir. XML World Wide Web Consortium (www.W3C.org) tarafından geliştirilmiştir. 1996 yılında oluşturulmuş. İlk şartnamesi 1998 yılında W3C tarafından yayınlanmıştır. Internet üzerinde bilgi alış verişi için tasarlanmıştır. XML, HTML gibi bir işaretleme dilidir. Fakat HTML gibi önceden tanımlı etiketlere sahip değildir. Kendi elemanlarınızı oluşturabilir ve onlara isimler verebilirsiniz, bu konuda esneklik vardır. HTML içeriğin sunumunu açıklar, XML içeriğin kendini açıklar. Dr. Hidayet Takçı - Veritabanlarına Giriş

XML Nasıl Kullanılabilir? XML veri takası için kullanılır XML ile, veri farklı sistemler arasında değiş tokuş edilebilir. XML ile, finansal bilgi Internet üzerinden takas edilebilir XML veriyi paylaşmak için kullanılabilir XML veriyi saklamak için kullanılabilir XML verilerinizi daha faydalı hale getirebilir XML yeni dilleri oluşturma için kullanılabilir Dr. Hidayet Takçı - Veritabanlarına Giriş

XML dokümanı ile Tablo karşılaştırması <Bibliography> <Book> <Title> Java </Title> <Author> Mustafa </Author> <Year> 1995 </year> </Book> … <Title> Oracle </Title> <Author> Emad </Author> <Year> 1973 </Year> …. </ Bibliography> Book Title Author year Java Mustafa 1995 Pascal Ahmed 1980 Basic Ali 1975 Oracle Emad 1973 …. Tablo XML document Dr. Hidayet Takçı - Veritabanlarına Giriş

Örnek Veritabanı Çalışması Kütüphane Kütüphane veritabanı şeması Tabloların oluşturulması Tablolar arası ilişkilerin varlık ilişki ve ilişkisel modeldeki gösterimleri Sorgu örnekleri Web+veritabanı kullanımı Dr. Hidayet Takçı - Veritabanlarına Giriş

Dr. Hidayet Takçı - Veritabanlarına Giriş

Kütüphane Veritabanı Şeması YAZARTIPLERI(YAZARTIPI, YAZARTIPADI) YAZAR(YAZARNO, YAZARADI, YAZARTIPI, DNO) NOTLAR(NOTNO, NOTLAR, DNO) KONUBASLIK(KONUBNO, KONUB, DNO) YAPITADI(YAPITNO, YAPITADI, DNO) FIRMA(FIRMANO, FIRMAADI) DILLER(DILNO, DILADI) KITAP(DNO, KADI, ORNEKAD, BASIM, YY, YE, YT, ISBN, OZET, BOLUMNO, UYENO, FOZELIK, DİZİ, TASNIFNO, FIYAT, FIRMANO, GELISTAR, DILNO, ADET) Dr. Hidayet Takçı - Veritabanlarına Giriş

Kütüphane Veritabanı Şeması BOLUM(BOLUMNO, BOLUMADI) GRUP(GRUPNO, GRUPADI) UNVAN(UNVANNO, UNVANADI) UYE(UYENO, ADSOYAD, BOLUM, GRUP, UNVAN, ADRES, MAIL, TEL, GSM) ODUNC(UYENO, DNO, ALISTAR, IADETAR) IADE(UYENO, DNO, GELISTAR) Dr. Hidayet Takçı - Veritabanlarına Giriş

Dr. Hidayet Takçı - Veritabanlarına Giriş Database Desktop ile Çalışma Dr. Hidayet Takçı - Veritabanlarına Giriş

Dr. Hidayet Takçı - Veritabanlarına Giriş SQL Explorer ile Çalışma Dr. Hidayet Takçı - Veritabanlarına Giriş

Bundan sonraki çalışmalar Bundan sonraki adımlarda doğrudan yapılacak işlemle ilgili SQL ifadesi yazılıp geçilecektir. Her bir iş için ayrı ayrı gösterimler kullanılmayacaktır. Dr. Hidayet Takçı - Veritabanlarına Giriş

YAZAR TIPLERI ve YAZAR TABLOSU YAZARTIPLERI Tablosu CREATE TABLE YAZARTIPLERI ( YAZARTIPI INTEGER NOT NULL, YAZARTIPADI CHAR (20), PRIMARY KEY(YAZARTIPI) ) YAZAR Tablosu CREATE TABLE YAZAR YAZARNO INTEGER NOT NULL, YAZARADI CHAR (50), DNO INTEGER NOT NULL, PRIMARY KEY(YAZARNO), FOREIGN KEY (YAZARTIPI) REFERENCES YAZARTIPLERI FOREIGN KEY (DNO) REFERENCES KITAP, Dr. Hidayet Takçı - Veritabanlarına Giriş

Veri Giriş / Düzeltme /Silme TABLOYA VERİ EKLEME INSERT INTO YAZARTIPLERI VALUES (1, ‘Editör’) TABLODAKİ VERİYİ DÜZELTME UPDATE SET YAZARTIPADI=‘Baş Yazar’ WHERE YAZARTIPI=1 TABLODAN BİR KAYIT SİLME DELETE FROM YAZARTIPLERI WHERE YAZARTIPI=2 Dr. Hidayet Takçı - Veritabanlarına Giriş

Seçme/Projeksiyon/Join SELECT *FROM YAZAR WHERE YAZARTIPI=2 (yazar tipi=2 çevirmeni göstermek üzere, bu sorgu yazar tablosunda yer alan çevirmenlerin listesini verir.) PROJEKSİYON: SELECT YAZARADI, YAZARTIPI FROM YAZAR WHERE DNO=1505 AND YAZARTIPI=1 (demirbaş numarası 1505 olan kitabın editörlerini verir.) JOIN: SELECT YT.YAZARTIPADI, Y.YAZARADI FROM YAZARTIPLERI YT, YAZAR Y WHERE Y.YAZATIPI=YT.YAZARTIPI Dr. Hidayet Takçı - Veritabanlarına Giriş

Kavramsal Modelde Varlıklar Arası İlişkiler YAZARTIPADI YAZARTIPI YAZARNO DNO İLİŞKİ YAZAR YAZARTIPLERI 1-M İLİŞKİ İlişkisel modelde oluşturulan ilişkiler arasındaki ilişkilerin kavramsal modelde sunumu. Dr. Hidayet Takçı - Veritabanlarına Giriş

Dr. Hidayet Takçı - Veritabanlarına Giriş İlişkisel modelde tablolar arası ilişkinin sunumu Dr. Hidayet Takçı - Veritabanlarına Giriş

NOTLAR, KONUBASLIK Tabloları NOTLAR Tablosu CREATE TABLE NOTLAR ( NOTNO INTEGER NOT NULL, NOT CHAR (200), DNO INTEGER NOT NULL, PRIMARY KEY(NOTNO) FOREIGN KEY(DNO) REFERENCES KITAP ) KONUBASLIK Tablosu CREATE TABLE KONUBASLIK ( KONUBNO INTEGER NOT NULL, KONUB CHAR (100), PRIMARY KEY(KONUBNO) Dr. Hidayet Takçı - Veritabanlarına Giriş

Dr. Hidayet Takçı - Veritabanlarına Giriş NOTLAR VE KONUBASLIK ARASINDAKİ İLİŞKİ M < -- > 1 NOTNO DNO KONUBNO KONUB NOT İLİŞKİ KONUBASLIK NOTLAR M-1 İLİŞKİ Dr. Hidayet Takçı - Veritabanlarına Giriş

Dr. Hidayet Takçı - Veritabanlarına Giriş KİTAP Tablosu CREATE TABLE KITAP ( DNO INTEGER NOT NULL, KADI CHAR (250), ORNEKAD CHAR (200), BASIM CHAR (20), YY CHAR (50), YE CHAR (50), YT CHAR (10), ISBN CHAR (50), OZET CHAR (250), BOLUMNO INTEGER, UYENO INTEGER, FOZELIK CHAR (100), DIZI CHAR (100), TASNIFNO CHAR (50), FIYAT INTEGER, FIRMANO INTEGER, GELISTAR DATE, DILNO INTEGER, ADET INTEGER, PRIMARY KEY (DNO), FOREIGN KEY (BOLUMNO) REFERENCES BOLUM, FOREIGN KEY (UYENO) REFERENCES UYE, FOREIGN KEY (FIRMANO) REFERENCES FIRMA, FOREIGN KEY (DILNO) REFERENCES DILLER ) Dr. Hidayet Takçı - Veritabanlarına Giriş

NOTLAR, KONUBASLIK ve YAZAR ARASINDAKİ ÜÇLÜ İLİŞKİ NOTNO DNO KONUBNO KONUB NOT ÜÇLÜ İLİŞKİ KONUBASLIK NOTLAR YAZAR YAZARNO Dr. Hidayet Takçı - Veritabanlarına Giriş

BÖLÜM, GRUP, UNVAN Tabloları BÖLÜM TABLOSU CREATE TABLE BOLUM ( BOLUMNO INTEGER NOT NULL, BOLUM_ADI CHAR(50) NOT NULL, PRIMARY KEY (BOLUMNO)) GRUB TABLOSU CREATE TABLE GRUB ( GRUP_NO INTEGER NOT NULL, GRUP_ADI CHAR(15) NOT NULL, PRIMARY KEY(GRUP_NO) ) UNVAN TABLOSU CREATE TABLE UNVAN ( UNVAN_NO INTEGER NOT NULL, UNVAN_ADI CHAR(15) NOT NULL, PRIMARY KEY(UNVAN_NO) ) Dr. Hidayet Takçı - Veritabanlarına Giriş

Dr. Hidayet Takçı - Veritabanlarına Giriş ÜYE Tablosu ÜYE TABLOSU CREATE TABLE UYE (UYENO INTEGER NOT NULL, ADSOYAD CHAR(40) NOT NULL, BOLUM INTEGER, GRUP INTEGER, UNVAN INTEGER, ADRES CHAR(150), MAIL CHAR(100), TEL CHAR(15) GSM CHAR(15), PRIMARY KEY(UYENO), FOREIGN KEY (BOLUM) REFERENCES BOLUM, FOREIGN KEY (GRUP) REFERENCES GRUB, FOREIGN KEY (UNVAN) REFERENCES UNVAN ) Dr. Hidayet Takçı - Veritabanlarına Giriş

BÖLÜM, ÜYE ve KİTAP TABLOSU ARASINDAKİ İLİŞKİ .... BOLUMNO ADSOYAD BOLUMADI Bu ilişki sayesinde Rezervasyon yaptıran Üyenin hangi bölümde Olduğu gibi bilgiler Elde edilebilir. İLİŞKİ ÜYE BÖLÜM İLİŞKİ UYENO DNO ... KITAP KADI Dr. Hidayet Takçı - Veritabanlarına Giriş

Dr. Hidayet Takçı - Veritabanlarına Giriş BÖLÜM, ÜYE ve KİTAP Tabloları arası ilişkilerin MS Access’te sunumu. Dr. Hidayet Takçı - Veritabanlarına Giriş

Dr. Hidayet Takçı - Veritabanlarına Giriş ÖDÜNÇ Tablosu ÖDÜNÇ TABLOSU CREATE TABLE ODUNC (UYENO INTEGER NOT NULL, ERISIMNO INTEGER NOT NULL, ALISTAR DATE, IADETAR DATE, FOREIGN KEY (UYENO) REFERENCES UYE FOREIGN KEY (ERISIMNO) REFERENCES KUTUP) Dr. Hidayet Takçı - Veritabanlarına Giriş

Dr. Hidayet Takçı - Veritabanlarına Giriş ODUNC, ÜYE ve KİTAP Tabloları arası ilişkilerin MS Access’te sunumu. Dr. Hidayet Takçı - Veritabanlarına Giriş

Dr. Hidayet Takçı - Veritabanlarına Giriş SORGU ÖRNEKLERİ Örnek 1: Üye tablosuna bir kayıt eklemek için gerekli SQL ifadesini yazınız. INSERT INTO uye VALUES (360,’Ali Veli’,’Bilgisayar’,’Öğrenci’, ‘Lisans’, ‘Kocaeli’, ‘aveli@yahoo.com’, ‘0800xxx’, ‘0999xxx’) Örnek 2: Üye numarası, üye adı ve mail adresi bilgilerini seçen SQL ifadesiniz yazınız. SELECT uyeno, adsoyad, mail FROM uye Dr. Hidayet Takçı - Veritabanlarına Giriş

Dr. Hidayet Takçı - Veritabanlarına Giriş Örnek 3: odunc tablosundan üye numaralarını ve kitap tablosundan konu başlıklarını bulacak SQL ifadelerini yazınız. SELECT DISTINCT uyeno FROM odunc SELECT DISTINCT konub FROM kitap Dr. Hidayet Takçı - Veritabanlarına Giriş

Dr. Hidayet Takçı - Veritabanlarına Giriş Örnek 4: bölüm sırasına göre üye bilgilerini gösteren bir SQL ifadesi yazınız. SELECT uyeno, adsoyad, bolum FROM uye ORDER BY bolum ASC Örnek 5: fiyatı 5 milyon liradan fazla olan kitaplara ait bilgiler. SELECT * FROM kitap WHERE fiyat >5.000.000 Dr. Hidayet Takçı - Veritabanlarına Giriş

Dr. Hidayet Takçı - Veritabanlarına Giriş Örnek 6: Fiyatı 10.000.000 ’dan daha az olan kitap isimleri ile kitapların fiziksel özellikleri. SELECT kitap_adı, fiziksel_ozellik FROM kitap WHERE fiyat<=1000000 Örnek 7: Bilgisayar bölümü haricindeki üyelerin listesi. SELECT * FROM uye WHERE bolum<> “Bilgisayar” Dr. Hidayet Takçı - Veritabanlarına Giriş

Dr. Hidayet Takçı - Veritabanlarına Giriş ÖRNEK 8: bugün kitap iade etmesi gerektiği halde kitap iade etmeyenler yani kitap geciktirenlerin listesi SELECT * FROM odunc WHERE iade_tar < {27/04/17} ÖRNEK 9: Bilgisayar bölümünde lisans öğrencilerinin listesini veren SQL ifadesini yazınız. SELECT * FROM uyeWHERE bolum=“Bilgisayar” AND grup=“Öğrenci” Dr. Hidayet Takçı - Veritabanlarına Giriş

Dr. Hidayet Takçı - Veritabanlarına Giriş ÖRNEK 10: 1, 2 ve 5 numaralı bölümlerde okuyan üyelerin listesini veren SQL ifadesini yazınız. SELECT * FROM uye WHERE bolum IN (1,2,5) ÖRNEK 11: fiyatı 5 ile 10 milyon arasında bulunan kitapların listesini veren SQL ifadesi. SELECT * FROM kitap WHERE fiyat>=5000000 AND fiyat <=10000000 veya SELECT * FROM kitap WHERE fiyat BETWEEN 5000000 AND 10000000 Dr. Hidayet Takçı - Veritabanlarına Giriş

Dr. Hidayet Takçı - Veritabanlarına Giriş Örnek 12: İçinde “programming” veya “database” geçen kitap isimlerini listeleyen SQL ifadesini yazınız. SELECT * FROM kitap WHERE kadi LIKE ‘%Programming’ or kadi LIKE=‘%database%’ Örnek 13: Bilgisayar kitaplarının fiyatlarını yüzde 20 zamlı olarak hesaplamak istersek. SELECT kitap_no, kitap_adı, fiyat*1.20 FROM kitap where bolum=“bilgisayar” Dr. Hidayet Takçı - Veritabanlarına Giriş

Dr. Hidayet Takçı - Veritabanlarına Giriş Örnek 14: eldeki kitapların toplam maliyeti nedir ? SELECT SUM (fiyat) FROM kitap Örnek 15: biyoloji bölümündeki kitapların toplam maliyeti nedir? (biyoloji için bölüm no=217) SELECT SUM( fiyat) FROM kitap WHERE bolum=217 Örnek 16: Bilgisayar kısmında bulunan kitapların fiyat ortalaması nedir? (bilgisayar için bölüm no=104) SELECT AVG(fiyat) FROM kitap WHERE bolum=104 Dr. Hidayet Takçı - Veritabanlarına Giriş

Dr. Hidayet Takçı - Veritabanlarına Giriş Örnek 17:Kütüphanedeki en yüksek fiyatlı kitap ne kadardır ? SELECT MAX (fiyat) FROM kitap Örnek 18: Bilgisayar kısmındaki en pahalı kitabın fiyatı nedir? SELECT MAX (fiyat) FROM kitap WHERE bolum=104 Örnek 19: kütüphaneye 01/01/2004 ten sonra gelen kitapların minimum fiyatlı olanı hangisidir. SELECT MIN (fiyat) FROM kitap WHERE gelistar>{01/01/04} Örnek 20: kütüphanede 5000000 liradan daha pahalı kaç tane kitap vardır? SELECT COUNT (*) FROM kitap WHERE fiyat >5000000 Dr. Hidayet Takçı - Veritabanlarına Giriş

Dr. Hidayet Takçı - Veritabanlarına Giriş Örnek 21: her bir bölümde bulunan kitaplar için ortalama kitap fiyatları nedir? SELECT bolum, AVG (fiyat) FROM kitap GORUP BY bolum Örnek 22: her bir bölümdeki maksimum fiyatlı kitap ile o kitabın adı nedir? SELECT bolum, MAX(fiyat), kitap_adı FROM kitap GROUP BY bolum Dr. Hidayet Takçı - Veritabanlarına Giriş

Dr. Hidayet Takçı - Veritabanlarına Giriş Örnek 23: ortalama fiyatları 6 milyondan fazla olan kitapların bölümlere göre fiyat ortalamalarını hesap ediniz. SELECT bolum, AVG (fiyat) FROM kitap GROUP BY bolum HAVING AVG( fiyat) >6000000 Örnek 24: Demirbaş numarası 1000 ile 2000 arasında olan kitapları ödünç alan üyeleri listeleyin. SELECT * FROM uye WHERE uyeno IN(SELECT uyeno FROM oduncver WHERE dno>1000 and dno<2000 ) Dr. Hidayet Takçı - Veritabanlarına Giriş

Dr. Hidayet Takçı - Veritabanlarına Giriş Web+Veritabanı Web tabanlı uygulamalar geliştirirken sıklıkla web ile veritabanını buluşturan işler yapmak gerekir. Burada web formları ile veritabanının kullanımına birkaç örnek verilecektir. Dr. Hidayet Takçı - Veritabanlarına Giriş

Dr. Hidayet Takçı - Veritabanlarına Giriş Üye bilgileri giriş formu ile üye tablosuna web üzerinden değer göndermek mümkündür gönderilen bu değerler gönderilen dosyada işlenerek veritabanına eklenir. Dr. Hidayet Takçı - Veritabanlarına Giriş

Üye Kaydının Üye Tablosuna Eklenmesi <% d1=request.form("d1") d2=request.form("d2") d3=request.form("d3") d4=request.form("d4") d5=request.form("d5") d6=request.form("d6") d7=request.form("d7") d8=request.form("d8") d9=request.form("d9") d10=request.form("d10") set baglanti=server.createobject("adodb.connection") baglanti.Open("DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" &Server.MapPath("db/kutuphane.mdb")) set rs=server.createobject("adodb.recordset") rs.open "insert into UYELER values("&d1&",'"&d2&"','"&d3&"','"&d4&"','"&d5&"','"&d6&"','"&d7&"','“&d8&"','"&d9&"','"&d10&"')", baglanti, adOpenStatic set rs=nothing %> Dr. Hidayet Takçı - Veritabanlarına Giriş

Dr. Hidayet Takçı - Veritabanlarına Giriş Bu form sayesinde üye bilgilerini güncellemek mümkündür, form eski bilgileri Ekrana getirmekte ve kullanıcı istediği bilgileri değiştirip güncelleme ile ilgili Dosyaya verileri göndermektedir. Dr. Hidayet Takçı - Veritabanlarına Giriş

Dr. Hidayet Takçı - Veritabanlarına Giriş <% d1=request.form("d1") d2=request.form("d2") d3=request.form("d3") d4=request.form("d4") d5=request.form("d5") d6=request.form("d6") d7=request.form("d7") d8=request.form("d8") d9=request.form("d9") d10=request.form("d10") set baglanti=server.createobject("adodb.connection") baglanti.Open("DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("db/kutuphane.mdb")) set rs=server.createobject("adodb.recordset") rs.open “update UYELER set UYENO= "&d1&", ADSOYAD='"&d2&"', …)", baglanti, adOpenStatic set rs=nothing %> Dr. Hidayet Takçı - Veritabanlarına Giriş

Dr. Hidayet Takçı - Veritabanlarına Giriş Üye kaydını silmek için önce üyenin kaydı çağrılır sonra onay verilerek silme İşlemi bir sonraki dosyada yerine getirilir. Dr. Hidayet Takçı - Veritabanlarına Giriş

Üye Kaydı Silme Dosyası <% d1=request.form("d1") set baglanti=server.createobject("adodb.connection") baglanti.Open("DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("db/kutuphane.mdb")) set rs1=server.createobject("adodb.recordset") rs1.open "delete from UYELER WHERE UYENO="&d1,baglanti, adOpenStatic set rs1=nothing %> Dr. Hidayet Takçı - Veritabanlarına Giriş

Dr. Hidayet Takçı - Veritabanlarına Giriş

Dr. Hidayet Takçı - Veritabanlarına Giriş <% param1=request.QUERYSTRING("uyeno") Set oConn = Server.CreateObject("ADODB.Connection") oConn.Open("DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("db/kutuphane.mdb")) Set rs = Server.CreateObject("ADODB.Recordset") rs.open "Select DNO, KUTUP.KADI, ALISTAR from ODUNCVER, KUTUP WHERE ODUNCVER.ERISIMNO=KUTUP.DNO AND ODUNCVER.UYENO="&param1&" ORDER BY DNO", oConn, adOpenStatic Set rs1 = Server.CreateObject("ADODB.Recordset") rs1.open "Select *FROM UYELER WHERE UYENO="&param1, oConn, adOpenStatic %> Dr. Hidayet Takçı - Veritabanlarına Giriş