SQL_2: Veri ve Veri Modelleri

Modelden kasıt ne? dediğinizi duyar gibiyim.

Model, var olan bilgi yığınına bir düzen getirmeyi, hatta bir yapı oluşturmayı amaçlar. Tek bir model yoktur. Var olan bilgi yığınına, uygulanan farklı modeller doğal olarak farklı modeller getirir.

Bir veri modeli, verinin hangi kurallara göre yapılandırıldığını belirler.

Peki veritabanından bahsettik önceki dersimizde. Önemini de anlamından çıkarmak mümkün. Veritabanının güvenlik konusu sizce de hassas bir nokta değil midir?

Veri Modellerinden Bazıları

  • Basit Veri Modelleri: Bilgisayarlarda veri işleme ihtiyacının ortaya çıkmasıyla, dosyalama sistemleri oluşturmak amacıyla kullanılmaya başlanan Hiyerarşik ve Şebeke veri modelleridir.
  • Hiyerarşik Veri Modelleri: Çoklu ilişkileri temsil edebilmek için, varlık tiplerinin gereksiz veri tekrarı yapmadan her ilişki için ayrı ayrı tanımlanmasına Hiyerarşik veri modeli denilir. Bu model, bir ağaç yapısına benzer. Model içerisindeki herhangi bir düğüm, altındaki n sayıda düğüme bağlanırken, kendisinin üstünde ancak bir düğüme bağlanabilir. Hiyerarşik yapının en tepesindeki düğüm noktasına kök denir ve bu düğümün sadece bağımlı düğümleri bulunur. Bu veri yapısını gösteren grafiğe de hiyerarşik tanım ağacı denir.
  • Şebeke Veri Modelleri: Tablo ve grafiklerden oluşan veri modeli Şebeke Veri Modelidir. Tablolar grafikteki düğümler olup varlık tiplerine karşılık gelirler. Grafiğin okları ise ilişkileri temsil eder. Özellikleri, 1971 yılında DBTG – CODASYL tarafından belirlenmiştir. Kayıt tipi ve bağlantı olmak üzere iki ayrı veri yapılandırma aracı vardır.
  • Geliştirilmiş Veri Modelleri: 1960 ve 1970’li yıllarda hiyerarşik veri modeli üzerine geliştirilmiş VTYS, sonra şebeke veri modeli ile çalışan VTYS yaygı kullanım alanı bulmuştur. 1970’li yıllarda gelişmesini tamamlamış olan ilişkisel veri modeline dayalı VTYS 1980’li yıllarda ticari kullanıma girerek çok hızla yaygınlaşmaya başlamıştır.
  • Varlık-İlişki Veri Modelleri ( Vİ Modeli): 
    • Varlık-ilişki modeli, ya da kısaca E-R modeli (Entity-Relationship model) 1976 yılında P.P. Chen tarafından geliştirilen bir modeldir.
      • Bu model kullanılarak önce;
      • VTYS’den bağımsız olarak veriler çözümlenir,
      • veri modellemesi yapılır,
      • veriler ve veriler arası ilişkilerin anlamları ve özellikleri incelenerek E-R çizelgeleri oluşturulur;
      • kullanılacak VTYS belirlenir
    •   sonra da E-R çizelgeleri bu sistemin veri modeline dönüştürülerek veri tabanı şemaları oluşturulur.
  • İlişkisel Veri Modelleri: İlişkiler ve onların temsilleri olan tablolardan oluşan ilişkisel veri modeli ilk olarak 1970 yılında Codd tarafından ortaya atılmıştır. İlişkisel veri modellerinde kullanılan tek yapılandırma aracı ilişkidir. Tablo-2’de ki örneklerde büyük harflerle yazılan ifadeler

Veri üzerinde yapılacak işlemler için, ilişkisel veri modellerinde üç tip dil kullanılır. Birincisi, matematikteki ilişkisel işlemlere dayanır. Bu tip dillere örnek olarak INGRES ve QUEL verilebilir. İkinci tip dil, görüntü yönelimlidir. Boşluk doldurma yöntemiyle çalışır. Örneğin, QBE (Query By Example) ve CUPID bu tür dillerdendir. Üçüncü tip dil, haritalandırma yönelimli dildir. Bu tip diller, bilinen bir özniteliğin ya da öznitelik kümesinin, aranan bir özniteliğin ya da öznitelik kümesinin üzerinde, bir ilişki yoluyla haritalandırılması prensibiyle çalışır. Örneğin, yapısal sorgulama dili (SQL) but ip bir veri dilidir.

  • Nesne Yönelimli Veri Modelleri: Nesne yönelimli programlamanın başlangıcı, 1960’ların sonu ve 1970’lerin başı arasında geliştirilen simülasyon dili Simula’ya kadar uzanır. Nesne yönelimli veri modelinde, bir sorgunun karşılığında mutlaka önceden tanımlanmış belirli bir nesne kümesi olması gerekir. Bir sorgunun sonucu olarak tesadüfî bir nesne kümesinin elde edilmesi mümkün değildir. Çünkü bütün nesnelerin, modelde önceden tanımlanmış olması gerekmektedir.

Sınıflandırma ve elemanlarına ayırma, sınıflandırma, nesne yönelimli veri modeli yaklaşımının temelini oluşturmaktadır ve aynı özellik ve davranışlara sahip nesnelerin nesne sınıfları içinde gruplanması ile ilgilidir. Bir sınıftaki nesneler, o sınıfın tanımına göre tarif edilebilir. Böylece her nesneyi ayrı ayrı tarif etmeye gerek kalmaz. Elemanlarına ayırma ise sınıflandırma işleminin tersidir ve bir sınıf içinde farklı nesneler oluşturulması ile ilgilidir.

 

Veritabanını korumaya yönelik,

  • Yanlış verinin iki türlü kaynağı olabilir: Programlama hataları, klavyeden hatalı giriş nedeniyle oluşan yanlışlıklar ve veritabanı programının kötü niyetli kullanımı.
  • Veritabanlarının korunması iki başlık altında incelenebilir: Bunlar;
  • veri güvenliği ve
  • veri bütünlüğünün sağlanmasıdır.

İşte en önemli husus 🙂 : Veri Güvenliği

Veri güvenliği veri tabanını ve verilerini yetkisiz kullanımlara karşı korumadır. Bu verinin istenmeyen şekilde değiştirilmesine veya zarar görmesine ve yetkisiz kullanımlara engel olmaktadır. Bunu sağlamak için bazı genel teknikler geliştirilmiştir.

Çok kullanıcılı ortamlarda farklı yetkilere sahip kullanıcılar vardır. Farklı yetkilere sahip kişilerin, veritabanında ulaşabilecekleri veriler farklıdır. Örneğin, bilgisayara veri girişi yapan bir memurun, kurumun muhasebe kayıtlarına, muhasebe müdürü kadar yetkiliymiş gibi girerek değişiklikler yapması engellenmelidir. Bu amaçla, hangi kullanıcıların hangi yetkilerinin olduğu ve bu yetkilerini kullanabilmek için gerekli şifreler daha önceden tespit edilmelidir.

  • Şifre sisteminin yeterli olmadığı durumlarda, verinin fiziksel koruma altına alınması gerekir. (Yangın veya hırsızlığa karşı verinin yedeklenmesinin yapılması gibi.)
  • Sistemde hangi kullanıcının hangi yetkilere ve haklara sahip olduğu ve neler yapabileceğinin önceden belirlenmiş olması gerekir.

Özellikle veritabanının sorgulanmasında güvenlik problemleri ortaya çıkmaktadır. Hangi tür kullanıcının, hangi sorgu tiplerini sisteme yöneltebileceğinin daha önceden tespit edilmesi gerekmektedir. Fakat yukarıda bahsedilen önlemlerden hiçbiri tam bir koruma sağlamaz. Bu yüzden, birden fazla önlem kullanılarak güvenlik artırılabilir.

[Bu sözel ifadelerin sıkıcı olabileceğini tahmin ediyorum ve derleyerek yazmaya gayret ediyorum arkadaşlar. Ders notlarından süzerek eklediklerimde oluyor. Amacım bu konulları özet özet hızlıca geçebilmek ama bir noktada bunlarıda bilmek gerekiyor.]

Bir veritabanında,

Kısıt: Veriler üzerindeki sınırlamalara kısıt adı verilir. Kısıtlar, veri modellerinde bütünlük sağlamak için kullanılır. Örneğin, “öğrenciye ait not bilgisinin 0 – 100 arasında olması gibi.

İşlem: Bir veritabanı durumundan, bir başka veritabanı durumu elde etmek için yapılan işlemlerdir. Bunlar, verinin çağırılması, güncellenmesi, eklenmesi veya silinmesi ile ilgili işlemlerdir. Bütünlük mekanizması, toplam fonksiyonları (istatistiksel fonksiyonlar da bunlar arasındadır), veriye ulaşım kontrolleri gibi genel işlemler vardır. CODASYL tarafından yayılan bu mekanizmalara veritabanı yöntemleri denir.

 

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir