21 Mayıs 2015 Perşembe

DATABASE' E SPATİAL TYPE VERİ EKLEME VE İLGİLİ İŞLEMLER YAPMA

1.) Proje Microsoft Sql Server Management Studio kullanacağız.

2.) İlk olarak MARİNE_TAKİP adında bir database olusturalım:
           
            CREATE DATABASE MARİNE_TAKİP

            USE MARİNE_TAKİP


3.) Olusturduğumuz bu database' e " tekne " adında bir table olusturalım:

            CREATE TABLE tekne (id int primarykey, tekne_ad nvarchar(20), marine                                                         nvarchar(20), konum geography)

4.) Olusturduğumuz bu tablonun Column Name leri sırasıyla id, tekne_ad, marine, konum olarak belirleyelim.Data Type' larını sırasıyla int, nchar, nchar ve söz konusu ödevimizin yapılış amacı olan Spatial Type olan geography.Her column Not Allow nulls yapılarak değer girilmesini zorunlu hale getirelim.

5.) Bu yeni tablomuza değerler girelim.Bunu için şu iki komutu kullanalım:

INSERT INTO tekne(id, tekne_ad, marine, konum) VALUES(1, 'seabird', 'canakkale',geography::STGeomFromText('POINT(40.123 26.123)', 4326);

INSERT INTO tekne(id, tekne_ad, marine, konum) VALUES(2, 'tansever', 'antalya',geography::STGeomFromText('POINT(36.123 30.123)', 4326);

Böylece tablomuzun iki satırı doldurulmuş olacak.Burada önemli olan konu database  Spatial type verinin nasıl atandığını görmektir. Görüldüğü üzere konum bilgisini girmek amcıyla kullandığımız komutta geometry spatial type tanımlanmaktadır.Geometry türünde POINT örneği tanımladık.POINT' le bulunduğumuz konumlar enlem ve boylam olarak verilmektedir, parantez içlerine bu değerleri giriyoruz. Devamında yer alan 4326  ise bulunduğumuz konumun uluslararası çoğrafya sisteminde tanımlı olduğu alanı göstermektedir.POINT yanında LINESTRING, POLYGON, MULTIPOINT, MULTILINESTRING, MULTIPOLYGON gibi türlerde tanımlanmaktadır.






ÇALIŞTIRILAN KOMUTLAR:

SELECT *
FROM tekne;


SELECT konum.STAsText()
FROM tekne;


SELECT tekne_ad,konum.STAsText() as konum
FROM tekne;


SELECT tekne_ad,konum.STAsText() as konum
FROM tekne
WHERE id='1';


DECLARE @marine geography
SELECT @marine = tekne.konum
FROM tekne
WHERE id= '1'


SELECT t2.*,t2.konum.STAsText() as konum
FROM tekne t1, tekne t2
WHERE  t1.tekne_ad='seabird' and  t1.konum.STDistance(t2.konum)<200*1000
ORDER BY t1.konum.STDistance(t2.konum) DESC


SELECT t2.*,t1.konum.STDistance(t2.konum) as mesafe
FROM tekne t1, tekne t2
WHERE  t1.tekne_ad='tansever' and  t1.konum.STDistance(t2.konum)<200*1000

ORDER BY mesafe DESC

Tekne Takip ve Marine Yönetim Sistemi Proje Tanımı

TEKNE TAKİP VE MARİNE YÖNETİM SİSTEMİ

 1)Projenin Tanımı ve Amacı

      Proje Tekne Takip ve Marine Yönetim Sistemi olarak adlandırılmaktadır.Bu proje yardımıyla marinemizde bulunan teknelerin her birinin, hem marine yönetimi hem de tekne sahibi tarafından anlık olarak konum bilgisinin alınması sağlanmaktadır.Alınan konum bilgileri yardımıyla veri tabanı olusturulup, teknemizin tarihlere göre izlediği rota bilgisine ulasılabilmektedir.Ayrıca olusturulmus veri tabanına teknin ortalama hızı, yol aldığı mil miktarı, seyir sonu yakıt tüketimi gibi bilgiler yer almaktadır.Bu sistemle tekne sahibi ve marine yönetimi ortak veri tabanını kullanarak koordineli bir şekilde teknenin güvenliğini sağlayacaktır.

 2)Projede Olusturulacak İşlevler

      a) Teknelerin deniz üzerindeki anlık konum ve hız bilgisinin bulunması
      b) Teknenin izleyceği rotanın çizilmesi
      c) Teknenin yabancı devlet kara sularına girişinin kontrolde tutulması
      d) Markalama işlev eklenerek teknenin daha önce demir attığı yerlerin bilinmesi
      e) Marine içinde farklı bir yere alındığında rahatlıkla konumunun bulunması
      f) Teknenin bir limandan diğer bir limana tarnsferi sırasında rotayı belirleyip bu rotayı takip                     etmişmi diye kontrol edilmesi
      g) Teknemizin kimlik bilgilerinin kayıt altına alınması
      h) Teknemizin seyirde bulunduğu rota üzerindeki hız bilgisinin,rota bilgisinin ve seyir sonu yakıt            tüketimi bilgisinin veri tabnında tutulması
      ı) Marine yönetimi için yeni tekne ekleme ve çıkarma işlemlerinin yapılması
      i) Belirlenen bir mesafeye olan uzaklığın bulunması

 3) Projenin Yapım Aşamaları

 a) Sisteme tekne sahibi ve marine yönetimi olamak üzere 2 giriş yapılmalıdır

 Tekne Sahibi
 I)Teknenin anlık konum ve hız bilgisini alamalı
 II)Günlük yakıt tüketimini takip edebilmeli
 III)Çeşitli amaçlarla markalama işlemi yapabilmeli
 IV)Rota belirleyebilmeli

Marine Yönetimi
I)Teknenin anlık konum ve hız bilgisini almalıdır
II)Yeni tekne ekleme ve çıkarma işlemlerinin
III)Rota belirleyebilmeli

4) Projede Kullanılacak Yazılım  ve Teknolojiler

C# ,ASP.Net,ORM,Google Map ve GPS modülü

23 Kasım 2014 Pazar

VERİ TABANI YÖNETİMİ SİSTEMLERİ  

URI NEDİR?

     URI, İngilizce “Uniform Resourse Identifier” kelimelerini belirtmektedir. Türkçe anlamı ise “tekdüzen kaynak tanımlayıcısı” dır.
     URI, web üzerinde belli bir kaynağa (internet sitesi, belge, resim vb.) ulaşmak için kullanılan 1994 te Tim Berners-Lee ın oluşturmuş olduğu belli bir formata sahip karakter dizisi,metin dir. Bu format UNIX dizin yapısı formatındadır.


URL NEDİR?




     Web adreslerinin resmi ismi URL'dir (Uniform Resource Locator)." Standart Kaynak Bulucu "  anlamına gelmektedir.Her Web sayfası sadece kendine ait bir URL'ye sahiptir. Örneğin ;
   
   http://www.comu.edu.tr/ bir URL'dir.
   Bu URL üç bölümden oluşur. Soldan sağa okursak:

1) Protokol (http://, ftp://, news: vb.);
2) Alan adı (protokolden, ondan sonraki bölü işaretine kadar olan kısım; www.www.comu.edu.tr gibi);
3) Ve dosya yolu (" / " işaretinden sonraki kısım).


HTML5 NEDİR?



     HTML5, internet'in çekirdek teknolojilerinden HTML işaretleme standardının beşinci sürümüdür. Internet Explorer, Mozilla Firefox ve Opera tarayıcılarının güncel sürümleri tarafından kısmen desteklenmektedir.
     Günümüzde kullanılan HTML 4.1 sürümü, CSS desteğiyle ne kadar düzenli ve sağlam bir yapıda kodlanırsa kodlansın yine de fazladan yazılan kodların işlevselliği bozduğu bilinmektedir. Bu yüzden HTML 5 bu ihtiyaçları karşılamak adına geliştirilmeye başlanmıştır. Video paylaşım sitesi Youtube, deneme aşamasında HTML5'i kullanıcılarına sunmaktadır.
     Ses veya film etiketleri gibi birçok spesifik yönleriyle birlikte kullanılması gereken HTML 5, sadece bir biçimleme dili olmasından ziyade web uygulamaları yaratmakta da kullanılabilmektedir.HTML5 tüm HTML Sürümleri (HTML1.0 vb) ile uyumludur.


CSS NEDİR?

     Cascading Style Sheets (Basamaklı Stil Şablonları ya da Basamaklı Biçim Sayfaları, bilinen kısa adıyla CSS), HTML'e ek olarak metin ve format biçimlendirme alanında fazladan olanaklar sunan bir Web teknolojisidir.
     İnternet sayfaları için genelgeçer şablonlar hazırlama olanağı verdiği gibi, bağımsız olarak harflerin stilini, yani renk, yazı tipi, büyüklük gibi özelliklerini değiştirmek için de kullanılabilir. Bu tekniğin en önemli özelliği kullanımındaki esnekliktir.
     CSS kodları, HTML kodlarının içine yazılabildiği gibi harici bir CSS dosyası oluşturularak da işlem yaptırılabilir. Türüne göre <BODY> veya <HEAD> bölümlerinde yer alabilirler. Ayrıca <link rel="stylesheet" type="text/css" href="style.css" /> koduyla CSS dosyası çalışma sayfasına eklenebilir. Onları ayrı dosyada veya dosyalarda saklamak, onları değişik HTML sayfalarınca kullanılmasını sağlar, aynı sayfanın değişik aygıtlara göre formatlandırılmasını kolaylaştırır, sunumla yapıyı ayırarak değişiklik yapılmasını ekonomikleştirir.


JS NEDİR?
   
     JavaScript dili başlangıçta sadece istemci taraflı (client-side) yorumlanan bir betik dilidir.Javascript, HTML’in bir parçasıdır ve içinde
bulunduğu HTML ile birlikte Web Browser programı tarafından yorumlanır. Javascript programı yazmak demek, bir Web sayfası hazırlamak ve bu sayfadaki HTML kodlarının arasına Javascript kodları gömmek demektir.
     JavaScript kodları, ziyaretçinin sayfanızda bir yeri
tıklaması veya klavyede bir tuşa basmasıyla harekete
geçer.
      HTML sayfası ziyaretçinin Browser’ında
görüntülendiği anda otomatik olarak çalışmaya başlar.
     Otomatik çalışan JavaScript kodu ise iki ayrı yöntemle
çalıştırılabilir:
– HTML kodları icra edilmeden önce (yani sayfanız ziyaretçinin
Web Browser’ında görüntülenmeden önce.)
– Sayfa görüntülendikten sonra.


WEP SERVER NEDİR?




     Web sunucusu, Hosting ya da "barındırma" işlemini İnternet protokolü üzerinden sunan bir sunucudur. Barındırma ya da hosting, Web sayfalarını İnternet'te yayınlamak için gerekli alanın kiralanmasıdır. Diğer bir ifade ile hosting, bir Web sitesinde yayınlanmak istenen sayfaların, resimlerin veya dokümanların İnternet kullanıcıları tarafından erişebileceği bir bilgisayarda tutulmasıdır.
     Web sunucusu, Hosting ya da "barındırma" işlemini İnternet protokolü üzerinden sunan bir sunucudur. Barındırma ya da hosting, Web sayfalarını İnternet'te yayınlamak için gerekli alanın kiralanmasıdır. Diğer bir ifade ile hosting, bir Web sitesinde yayınlanmak istenen sayfaların, resimlerin veya dokümanların İnternet kullanıcıları tarafından erişebileceği bir bilgisayarda tutulmasıdır.


ODBC NEDİR?

     Open Database Connectivity (kısaca ODBC, Türkçe: Açık Veritabanı Bağlantısı), veritabanı yönetim sistemlerine erişmek için standart bir yazılım arayüzü sağlar.
     ODB (Open Database), ODBC'nin genişletilmiş modelidir. ODBC'de veri tabanına istemci olarak erişim mümkünken, ODB kullanıldığında bağlantının her zaman localde görülmesi sağlanır. Böylece sistemde yoğunluk, veri kaybı ve IP çakışması yaşanmaz.


JAVA DATABASE CONNECTİVİTY NEDİR?

     JDBC bir Java veritabanı bağlantısı teknolojisi (Java Standard Edition platformu) olan Oracle Corporation . Bu teknoloji, bir bir API için Java programlama dili bir istemci erişebilir nasıl tanımlar veritabanı . Bir veritabanındaki verileri sorgulamak ve güncellemek için yöntemler sağlar. JDBC yönelen ilişkisel veritabanları . Bir JDBC-to- ODBC köprü herhangi bir ODBC erişilebilir veri kaynağı bağlantıları sağlayan JVM ana bilgisayar ortamında.


ADO.NET NEDİR?

     ADO.NET (ActiveX Data Objects.NET), Microsoft tarafından bize sunulan, veritabanı ile uygulamalarımız arasında köprü görevini görmektedir. ADO.NET ile uygulama tarafımızda veritabanımıza bağlanabilir, verilerimizi buradan listeleyebilir, güncelleyebilir, veri ekleyebilir veya silebiliriz. ADO.NET ile SQL sorguları, komutlarını uygulama tarafımızda kullanabiliriz.


ENTİTY FRAMEWORK NEDİR?

     Entity Framework Microsoft tarafından geliştirilen ve yazılım geliştiricilerin katı sql sorguları yazmalarını ortadan kaldırarak bir ORM (Object Relational Mapping) imkanı sağlayan framework'tür. ORM ise ilişkisel veritabanı yönetim sistemlerine direkt olarak müdahale yerine nesneler aracılığı ile müdahale edilmesini sağlayan bir köprüdür diyebiliriz.
     Piyasada bir çok ORM Framework'leri bulunmaktadır. Örnek olarak; DataObjects.Net, NHibernate, OpenAccess, SubSonic etc. Entity Framework vs..
     Entity framework ile birlikte LINQ (Language Integrated Query) sorgularını kullanarak nesneler üzerinde güçlü bir sorgulama imkanına sahip oluruz. Entity framework'ün bize sunduğu hizmetler başlıca change tracking, identity resolution, ve query translation.


HİBERNATE ORM NEDİR?

     Hibernate, Java platformunda yazılmış bir ORM (Object/Relational Mapping) aracıdır. ORM, nesne odaklı (object oriented) dillerdeki nesnelerin, ilişkisel veri tabanlarındaki (relational databases) kayıtlara nasıl karşılık geldiğini yürüten bir teknolojidir. NHibernate adında .NET çatısı için yeniden yazılmış bir türevi bulunur.
     Hibernate gibi ORM araçlarıyla, bir nesneyi veri tabanına kaydetmek, yeni halini güncellemek ve sorgulama yapmak düz SQL bağlantılarına göre çok kolaydır.Hibernate gibi ORM araçlarının en önemli faydası, kod yazımını kısaltmak veya kolaylaştırmaktan öte, yazılım bakımını kolaylaştırmasıdır.


PROJE

     ASP ile yapmış olduğumuz  projede ,NET ortamında MVC(Models,View Controler) kullaıyoruz.
     Aşağıda, kullandıgımız visual studio ortamında Solution Explorer alanındaki linklerin tanıtımı verilmiştir.Proje şablonu çerçevesi aşağıdaki şekilde görünmektedir:





Properties (Özellikler):Paneldeki tüm öğelerin özellikleri, Properties ile görülebilir.

App_Data : Proje içerisinde veri kaynaklarının, dosyalar halinde eklendiği klasördür.

App_Start : Projenin  açılışı esnasında işlem yapması istenilen sınıfların, filtrelerin, metotların bulunduğu klasördür. 

Content : Genelde css dosyaları bu klasörde bulunur.

Controllers : Client (kullanıcı) tarafından yapılan request (istek) controller’lar tarafından yakalanır ve işleme tabi tutulur. Bu bölüm iş akışının gerçekleştiği, arayüzden gelen kullanıcı etkileşimlerinin değerlendirildiği, işlendiği, gerekli metodların çalıştırıldığı, değişkenlerin ve nesnelerin  oluşturulduğu, model ile view bölümleri arasında iletişimin sağlandığı yerdir. ASP.NET MVC’de controller dediğimiz nesneler.

Fonts :Asp.Net Mvc 5 sürümü ile birlikte, örnek projeye eklenen  font dosyalarını barındırabileceğiniz alandır.

Models : Veritabanına erişim, class’lar, ayrıca data access layer yani veritabanı işlemleri için kullanacağımız Ado.Net, Nhibernate veya EntityFramework ile veri işlemleri burada yer alır.yanı olusturdugumuz classlar database veri tabanı için tabloları dinamik olarak olusturup kullanıcı girisi için otamatık bir arayuz olusturarak işimizi oldukca hızlandırıyor.

Scripts : Javascript tarzı script dosyalarını barındırabileceğiniz alandır.

Views : Kullanıcının gördüğü ve arayüze dair şeyler buradadır. HTML, CSS, Javascript kodları… View bölümünde iş akışına ait bir şeyler bulunmaz. Ayrıca View bölümü sayesinde uygulamanın arayüzü uygulamanın çekirdek kısmından ayrı tutulduğundan tasarımı ve tasarımın değiştirilmesi açısından bize avantaj sağlar.

Favicon.iko : Tarayıcının üst kısmında ve favori siteler kısmında görünen ikondur.

Globals.asax : Sitenin genelinde yapılan işlemlerin kontrol edilmesini sağlar.

Packages.config : Proje de kurulu olan framework'lerin kayıtlı olduğu yerdir. 

Project_Readme.html : Örnek proje hakkında Microsoft'un hazırladığı bilgilendirme sayfasıdır.

Web.config : Proje ile ilgili tüm merkezi ayarların saklandığı yerdir.