İlişkisel Veri Tabanları ‐ I Erdem Alparslan Bahçeşehir Üniversitesi 1 Veri Tabanı Modelleri • Veri Tabanları tasarımında kullanılan modeller: – Tablolar : Veriler tek bir tabloda veya tablo dizisinde tutulur (spread sheets), – Hiyerarşik : (örgüt şeması) • IBM’in Bilgi Yönetim Sistemi • Windows Registry – İlişkisel : • Her satır yeni bir kayıttır • Her kolon yeni bir değişkendir (yaş, cinsiyet v.b) 2 İlişkisel Model • • Mantıksal Veri Modelini (Logical Data Model) açıklamak için bilindik bir yöntem 1977’de Dr. Peter Chen tarafından ortaya çıkarılmış ve o günden bu yana bir çok bilgisayar mühendisi tarafından geliştirilmiştir. 3 Neden İlişkisel Model ? • En yaygın kullanılan DBs – Oracle, IBM DB2, Informix, Microsoft, Sybase v.b • Legacy Systems – Örn : IBM MIS • Yeni firmalar ve ürünleri, – ObjectStore, Versant, Ontos – Object‐relational model • Oracle, Informix Universal Server, UniSQL, O2, DB2 4 Terminoloji • Kayıt : Daha geniş bir parçayı tanımlayan alanlar topluluğu • Tablo : Kayıtlar topluluğu • Veri Tabanı : Tablo(lar) topluluğu. Ayrıca veri girişi formları, veri kontrol kuralları, verinin alt kümelerini seçen sorgular ve veriyi gösterecek raporlar içerir. 5 İlişkisel Veri Modeli • İlişkisel veri tabanı, ilişkiler(tablolar) kümesinden oluşur • Her ilişki değişken/domain ikilileri kümelerinden oluşur • Değişkenlerin tek bir değeri olmalı. Ayrıca “null” değerler destekleniyor. • Bir ilişkinin değişkenleri düzenli değildir. • Değişken değerleri çok küçük(atomic) olmalıdır. (satır ya da ilişki olamaz) • İlişkiler tuple kümelerini tutar. (sorgular sonucunda birçok satır dökülür); Her ilişkinin satırı, ilişkinin her değişkeni için bir değer tutar; ilişkilerde tutulan bütün satırlar farklı olmalıdır. • Bir ilişkideki satırlar düzenli değildir. 6 İlişkisel Veri Modeli • Her ilişkinin bir birincil anahtarı vardır ve o ilişkideki tekil satırları betimleyen değişken kümelerini içerir, • Objeler arası ilişkinin, ilişkisel modeldeki uygulaması objelere ait birincil anahtarların kendi aralarında ilişkilendirimesiyle olur ve bunlara ikincil anahtar(foreign key) adı verilir. • Çok değerli değişkenler ayrı bir ilişki kullanılarak veya objenin çoklu satırlar ile tanımlanmasıyla açıklanabilir (çok değerli değişkenin her değeri için bir tane). • Opsiyonel değişkenler (değeri olması gerekli olmayan değişkenler) null değer kullanılarak açıklanabilir; dahası, ilişkinin birincil anahtarları ve opsiyonel değişkenlerini tutan ayrı ilişkiler halinde açıklanabilirler. 7 Varlıkları 8 Değişkenler • Varlıklar, değişkenlerden oluşur, • Değişkenleri tanımlamak için isimler kullanılır, • Bilginin, bilinmesi gereken özel parçacıkları • Bir varlığın değişkenleri olmalıdır 9 Biricik Anahtarı • Bir varlığın özel bir parçasını tanımlamaya yardımcı olan ilişkiler veya değişkenler birleşimidir. • UID oluşturmak için birden fazla değişken kullanılabilir 10 • Bir varlığın diğeri ile olan ilişkisi, • Ticari ihtiyaçları bağlayan, ticari kurallar, 11 İlişki Çeşitleri 12 • Cardinality, eleman sayısıdır. 13 Mantıksal ve Fiziksel Veri Modelleri 14 SQL SELECT Sözcüğünün Yetenekleri 15 SELECT Sözcüğü Temel Kullanım • İstenen kolonları, istenen satırları ve nasıl istendiklerini belirler 16 Tüm Veriyi Seçmek 17 Belirli Kolonları Seçmek 18 Aritmetik Hesaplamalar • Aritmetik hesaplamaları kabul eder. 19 Operatör Önceliği 20 Alias Tanımlamaları 21 Bitiştirme Operatörü • Metinsel ifadelerin bitiştirilmesinde || operatörü ya da concat() fonksiyonu kullanılır. (RDBMS çeşidine göre değişecektir.) 22 Tekil Seçme (DISTINCT) 23 Satır Seçme (WHERE) 24 Satır Seçme (WHERE) • WHERE sözcüğü yardımı ile istenen satırlar seçilip geitirilmektedir. 25 Satır Seçme (WHERE) 26 WHERE Komutunda Kullanılabilen Operatörler 27 WHERE – Kullanım Örnekleri 28 WHERE – Kullanım Örnekleri 29 WHERE Komutunda Kullanılabilen Mantıksal Operatörler 30 WHERE – Kullanım Örnekleri 31 Sıralama (ORDER BY) • Getirilmek istenen satırların bir sütuna göre sıralı olarak getirilmesini sağlar. • Tüm satırları gezinmesi gerektiği için maliyetli bir işlemdir. 32 Sıralama (ORDER BY) • Azalan şekilde sıralama istenebilir (büyükten küçüğe) • Birden fazla kolon üzerinden sıralama yaptırılabilir 33