13
Yrd. Doç. Dr. Mustafa Cem KASAPBAŞI İstanbul Ticaret Üniversitesi [email protected] Nesneye Dayalı Programlarla Nesne İlişki Haritalanması

Nesneye Dayalı Programlarla Nesne İlişki Haritalanması

Embed Size (px)

DESCRIPTION

Nesneye Dayalı Programlarla Nesne İlişki Haritalanması. Yrd. Doç. Dr. Mustafa Cem KASAPBAŞI İstanbul Ticaret Üniversitesi [email protected]. Başlamadan önce!!. Kaç kişi daha önce veri tabanı projesi ile uğraştı? - PowerPoint PPT Presentation

Citation preview

Yrd. Doç. Dr. Mustafa Cem KASAPBAŞIİstanbul Ticaret Ü[email protected]

Nesneye Dayalı Programlarla Nesne İlişki Haritalanması

Başlamadan önce!!

Kaç kişi daha önce veri tabanı projesi ile uğraştı?Projelerinizi yaparken kod tekrarı yaptığınızı

düşündüğünüz zamanlar oldu mu? Özellikle veri tabanı ile ilgili kodlarda.

ORM ? (Object/ Relation mapping)ORM temel olarak veri tabanı ile alakalı yapılan

projelerde kullanılabilen bir programlama tekniğidir.ORM Amacı Nedir?

Veri tabanı ile uğraşırken karşılaşılabilen problemlere odaklanmıştır;Temel Problemler

Proje büyüdüğünde yönetimiHızlı bir şekilde çözüm üretme gereksinimiKod ayıklama zorluğuKod tekrarının fazlaca yapılmasıÇok karmaşık sorguların yönetimi

ORM neden önemlidirGenel olarak Veri tabanı uygulamalarında projeye

analizi bittikten sonra, Veri tabanı ilişkisel veri tabanı modellemesi kullanılarak modelleniyor.

Bu ilişkisel modeldeki aktörlerTablolar, kayıtlı yordamlar, görünümler, fonksiyonlar,

trigerler, tablo ilişkileri (1-1, 1-∞, ∞- ∞), birincil ve yabancı anahtarlar…

Bu aktörlerin nesneye dayalı bir programlama dilindeki herhangi bir nesne gibi kullanılması sağlamak ORP in hedeflerindendir.

ORM avantaj ve dezavantajlarıAvantajları

Daha hızlı ve verimli şekilde iş süreçlerinin modellenmesi Kod tekrarının oldukça azalması Karmaşık sorguları daha kolay şekilde çözülmesine olanak

sağlamasıKodların ayıklanması daha kolaydır [5].

DezavantajlarıKütle halindeki silme işlemlerinde bazı ORM araçlarının

performansı başarılı değildir. Kayıtlı yordamların daha iyi performans sağladığı

düşünülmektedir.Her dil için farklı araçlar olması ve getirdikleri yeni kodlama

tekniklerinin öğrenilmesi. Buna örnek olarak .Net 3.5 altyapısı içinde kullanılan Linq (language Integrated Query) sorgu dili ve Lamda ifadeleri verilebilir

ORM haritalama stratejileri Hiyerarşi başına bir tablo:

Basit veya derin olmayan yapılar için daha uygundur.Somut bir sınıfa bir tablo :

abstract sınıflar haricindeki sınıflara tablo, Sınıf değişirse tablolarda değişmeli (Tercih edilmemeli)

Bir tabloya bir sınıf:Anlaşılması, değiştirilmesi kolayİlişki tabloları için bile sınıf oluşturulmalı

Strateji örneği (1 tablo -1 sınıf )

ORM Veri Yükleme TeknikleriORM de nesnelerin özelliklerinin doldurulması farklı

tasarım örüntüleri aracılığı veya her ikisi ile birden de yapılabilir.Lazy Loading : verinin ihtiyaç duyulduğunda yüklenmesi

anlamındadır. Doğru kullanıldığında performans artışı sağlanmış olur.

Eager Loading : verinin anında (nesne oluşturulur oluşturulmaz ) yüklenmesidir. (c# datareader)

3 katmanlı Mimari ve ORMnin Kullanımı

Sunum Katmanıİş Katmanı (DAL, BAL)

Data Access/Abstraction LayerBussiness Access/Abstraction/Logic Layer

Veri Katmanı

Ticari/Bedava ORM araçlarıBu araçlar seçilen OOP platformuna göre farklılık

göstermektedir. Java ve .Net dünyası için

DeğerlendirmeORM bir programlama tekniğidir ve kullanıldığında; Daha hızlı ve verimli şekilde iş süreçlerinin

modellenmesi, Kod tekrarının oldukça azalması, Karmaşık sorguları daha kolay şekilde çözülmesine

olanak sağlaması, Kodların ayıklanması daha kolay olması gibi bir çok

avantajı bulunmaktadır.

SonuçORM nin daha yaygın uygulanabilmesi için gerek MYO

Bilgisayar Programcılığı bölümü gerekseBilgisayar mühendisliği bölümü müfredatlarında daha

fazla yer bulması araştırmacı tarafından önerilmektedir.

TeşekkürlerSorular?Vakit kalırsa demo ister misiniz?