BÖTE 305 İnternet Tabanlı Programlama R. Orçun Madran İçerik • Web Tabanlı Veri Tabanı Sistemleri. • MySQL. • PhpMyAdmin. • Web tabanlı bir veritabanı tasarımı. tasarımı 21.11.2010 R. Orçun Madran 2 Web Tabanlı Veritabanı Yönetim Sistemleri Web Tabanlı Veritabanı Yönetim Sistemleri, İnternet üzerinden erişelebilen ve yapılandırılabilen veritabanı sistemleridir. y çıkışındaki temel etkenler: Ortaya • Farklı sunucu ve istemci mimarilerinde çalışabilecek yyapıya p y sahip p veritabanı uygulamalarına yg duyulan y ihtiyaç, y ç • Uzak bilgisayarlarda yer alan veritabanı sistemlerini yyapılandırma p isteği ğ (Web ( barındırma hizmetleri vb.), ), şeklinde sıralanabilir. 21.11.2010 R. Orçun Madran 3 Web Tabanlı Veritabanı Yönetim Sistemleri Günümüzde yaygın olarak kullanılan popüler Web tabanlı veritabanı sistemleri: • MySQL – www.mysql.com • PostgreSQL - www.postgresql.org • MS SQL - www.microsoft.com/sql/default.mspx • Oracle – www.oracle.com Bu sistemler içerisinde PHP ile en uyumlu çalışan ve yüksek performans gösteren iki veritabanı sistemi bulunmaktadır: • MySQL M SQL • PostgreSQL Geliştirilen uygulamalara ve yaygın kullanıma bakıldığında ise MySQL* tercih olarak ön plana çıkmaktadır. * Editörün seçimi ç :)) 21.11.2010 R. Orçun Madran 4 MySQL • İlişkisel veritabanı yönetim sistemidir (RDBMS). • Tamamıyla T l C/C C/C++ dili kkullanılarak ll l k yazılmıştır. l t • Veritabanlarına erişmek ve sorgulamak için kullanılan en yaygın ve standart dil olan SQL’i SQ ’ kullanır. • Açık kaynak kodlu bir veritabanıdır. • Windows, Linux ve OpenBSD platformlarında çalışır. • 8.3.2006 8 3 2006 tarihi itibarı ile en güncel ve kararlı sürümü: ’dir. 21.11.2010 R. Orçun Madran 5 PhpMyAdmin • MySQL y veritabanının Web yya da yyerel ağ ğ üzerinden yönetilmesini sağlar. y ş • PHP dili kullanılarak yazılmıştır. • Açık kaynak kodlu bir yazılımdır. • 8.3.2006 8 3 2006 tarihi t ihi itibarı itib ile il en güncel ü l ve kkararlı l sürümü: üü ü 2.8.0’dır. 2.8.0 21.11.2010 R. Orçun Madran 6 PhpMyAdmin’i Tanıyalım PhpMyAdmin, iki çerçeveli ve metin ağırlıklı bir arayüze sahiptir. 21.11.2010 R. Orçun Madran 7 PhpMyAdmin’i Tanıyalım Giriş sayfasından temel versiyon bilgileri elde edilebilir. PhpMyAdmin Sürüm Bilgisi MySQL Sürüm Bilgisi 21.11.2010 R. Orçun Madran 8 PhpMyAdmin’i Tanıyalım Sol çerçeve veritabanı ve bağlı tabloların listesini verir. 21.11.2010 R. Orçun Madran 9 PhpMyAdmin’i Tanıyalım Sağ çerçevede ise seçili öğelerle ilgili işlem ve ayrıntılar yer alır. 21.11.2010 R. Orçun Madran 10 Web Tabanlı Veri Tabanı Tasarımı Veri tabanımızın tasarımına başlamadan önce bir takım kavramlar hakkında bilgi sahip olmamız gerekmektedir. Bu kavramlar: • İlişkisel İ Veri Modeli • İlişkisel Model • İlişkisel Veri Tabanı 21.11.2010 R. Orçun Madran 11 İlişkisel Veri Modeli • İlişkisel Model: Varlıklar arasındaki bağlantının, içerdiği değerlere göre sağlanması esasına dayanır. Varlıklar arasında oluşan karmaşık ilişkileri basite indirgemek amacıyla geliştirilmiştir. Bu yaklaşımda, veri tabanındaki tüm ilişkiler tablolar biçiminde tanımlanmaktadır. • İlişkisel İ Veri Tabanı: Her biri özel isimlere sahip tablolardan oluşur. İlişkisel veri tabanında her bir tablo bir varlığa veya bir ilişkiye karşılık gelmektedir. l kt di Tablonun sütunları nitelikleri; satırlar ise bu niteliklerin değerlerini ifade eder. eder Her bir satır bir “kayıt” olarak da düşünülebilir. Anahtar alan, tablonun tanımlayıcısıdır tanımlayıcısıdır. 21.11.2010 R. Orçun Madran 12 İlişkisel Veri Tabanı İlişkisel Veri Tabanı altında inceleyeceğimiz alt kavramlar: • Tablolar • Sütunlar • Satırlar • Değerler • Anahtarlar • Şemalar Şe a a • İlişkiler 21.11.2010 R. Orçun Madran 13 İlişkisel Veri Tabanı: Tablolar • İlişkisel veritabanlarının temelini oluşturan yapıdır. • Satır Sat r ve e süt sütunlardan nlardan ol oluşur. ş r Örnek bir tablo yapısı: Sıra No Öğrenci No Ad Soyad E - Posta 1 345627 Ahmet Dervek ahmet@dervek.com 2 567483 Deniz Kulcu deniz@kulcu.net 3 785942 Ebru Gündüz ebru@gunduz.org Örnek tabloda yer alan her bir satır farklı bir öğrencinin bilgilerini içerir. Her sütun ise kendi içinde aynı tip bilgiyi depolar. 21.11.2010 R. Orçun Madran 14 İlişkisel Veri Tabanı: Sütunlar • Tablodaki her sütun benzersiz bir ada sahiptir ve farklı veriler içerir. • Her sütunun ilişkilendirilmiş bir veri tipi vardır. Sıra No Öğrenci No Ad Soyad E - Posta 1 345627 Ahmet Dervek ahmet@dervek.com 2 567483 Deniz Kulcu deniz@kulcu.net 3 785942 Ebru Gündüz ebru@gunduz.org Örnek tabloda “Sıra Sıra No” No ve “Öğrenci Öğrenci No” No sütunları sayısal veri tipi ile ilişkilendirilmişken diğer alanlar metin veri tipi ile ilişkilendirilmiştir. 21.11.2010 R. Orçun Madran 15 İlişkisel Veri Tabanı: Satırlar • Tablodaki her satır farklı bir veri girişini (öğrenciyi) temsil eder. • Tablon Tablonun n biçimi nedeni nedeniyle le sat satırların rlar n her biri a aynı n niteliklere sahiptir. • Her bir satır “Kayıt” Kayıt olarak da ifade edilebilir. edilebilir Sıra No Öğrenci ğ No Ad Soyad y E - Posta 1 345627 Ahmet Dervek ahmet@dervek.com 2 567483 Deniz Kulcu deniz@kulcu.net 3 785942 Ebru Gündüz ebru@gunduz org ebru@gunduz.org Örnek tabloda üç farklı veri girişi (kayıt) görülmektedir. 21.11.2010 R. Orçun Madran 16 İlişkisel Veri Tabanı: Değerler • Tablodaki her satır sütunlara karşılık gelen bir dizi değerden oluşur. • Her değer, sütunu tarafından belirtilen veri tipinde olmalıdır. Sıra No Öğrenci No Ad Soyad E - Posta 1 345627 Ahmet Dervek ahmet@dervek.com 2 567483 Deniz Kulcu deniz@kulcu net deniz@kulcu.net 3 785942 Ebru Gündüz ebru@gunduz.org Örnek tabloda yer alan “Ahmet”, “Kulcu”, “345627” ve benzeri sayı ve metin katarlarının her biri değer olarak ifade edilir. 21.11.2010 R. Orçun Madran 17 İlişkisel Veri Tabanı: Anahtarlar • Anahtarlar satırları (kayıtları) tanımlayan özel sütunlardır ( (alanlardır). ) • Farklı veri tipleri anahtar olarak belirlenebilir. • Anahtar olarak belirlenen sütunların içinde yer alan her bir satır (değer) benzersizdir. Sıra No Öğrenci No Ad Soyad E - Posta 1 345627 Ahmet Dervek ahmet@dervek.com 2 567483 Deniz Kulcu deniz@kulcu net deniz@kulcu.net 3 785942 Ebru Gündüz ebru@gunduz.org Örnek tabloda yer alan “Sıra No” ve “Öğrenci No” alanları anahtar olarak belirlenmek için uygun sütunlardır. 21.11.2010 R. Orçun Madran 18 İlişkisel Veri Tabanı: Şemalar • Bir veritabanının tüm tablo tasarımlarına, veritabanı şeması denir. • Şema veri içermez; veritabanının taslağı olarak kullanılabilir. • Şema; tabloları, tabloları sütunları ve her tablonun birincil anahtarları ile birlikte varsa yabancı anahtarları da gösterir. • Şemadaki altı çizili terimler, ilgili tablonun birincil anahtarlarıdır. Örnek veritabanımızın ş şeması 21.11.2010 R. Orçun Madran 19 İlişkisel Veri Tabanı: İlişkiler • İki tablonun verileri arasındaki ilişkiyi temsil ederler. 21.11.2010 Sıra No Öğrenci No Ad Soyad E - Posta 1 345627 Ahmet Dervek ahmet@dervek.com 2 567483 Deniz Kulcu deniz@kulcu.net 3 785942 Ebru Gündüz ebru@gunduz.org Mesaj No Sıra No Mesaj 1 2 Proje teslim tarihleri ile ilgili güncellemeler... 2 2 Okul deneyimi ile ilgili dosyaların teslim edil... 3 1 Kullanıcı deneyimi ile ilgili makaleye erişebile... 4 2 MySQL ile YourSQL arasında fark ne ehueeh.. 5 3 Bu ders seçmeli ama hakikaten seçmeli mi? 6 3 Sınav sorularını SELECT * yyapsak p mı acaba? 7 1 Mesaj deyip geçmeyin uğraştırıyor insanı... 8 2 Örneklere gerçekçi bir hal verme çabası... 9 1 SQL ile ilgili bir fıkra bilen varmı arkadaşlar? R. Orçun Madran 20 İlişkisel Veri Tabanı: İlişki tipleri • Üç temel ilişki tipi vardır: • Bire – bir: İlişki içinde her şeyden bir tane olduğunu gösterir. • Birden – çoğa: Bir tablodaki bir satır başka bir tablodaki birden fazla satırla bağlantılıdır. • Çoktan Ç –ç çoğa: ğ Bir tablodaki birden fazla satır başka ş bir tablodaki birden fazla satırla bağlantılıdır. 21.11.2010 R. Orçun Madran 21