﻿
{"id":8942,"date":"2018-08-05T20:39:13","date_gmt":"2018-08-05T20:39:13","guid":{"rendered":"http:\/\/www.gencayyildiz.com\/blog\/?p=8942"},"modified":"2018-08-05T20:39:13","modified_gmt":"2018-08-05T20:39:13","slug":"nosql-ve-mongodb-nedir","status":"publish","type":"post","link":"https:\/\/www.gencayyildiz.com\/blog\/nosql-ve-mongodb-nedir\/","title":{"rendered":"NoSQL ve MongoDB Nedir?"},"content":{"rendered":"<div id=\"fb-root\"><\/div>\n<p>Merhaba,<\/p>\n<p>Bu i\u00e7eri\u011fimizde NoSQL ve MongDB teknolojilerinin genel tan\u0131mlar\u0131n\u0131, ne olduklar\u0131n\u0131, neye istinaden bu teknolojilere ihtiya\u00e7 duyuldu\u011funu vs. konular\u0131n\u0131 ele al\u0131yor olaca\u011f\u0131z.<\/p>\n<h3>NoSQL Nedir?<\/h3>\n<p>NoSQL, her\u015feyden \u00f6nce SQL yok demek de\u011fildir! &#8216;Sadece SQL de\u011fil&#8217; manas\u0131na gelen &#8216;Not Only SQL&#8217;in k\u0131salt\u0131lm\u0131\u015f halidir. Bol ziyaret\u00e7i trafi\u011fine sahip ve yo\u011fun i\u015flemler gerektiren durumlarda yani maliyetin hat safhada oldu\u011fu durumlarda ili\u015fkisel veritaban\u0131 sistemlerine(RDBMS &#8211; Relational Database Management System) nazaran maliyeti daha rahat kar\u015f\u0131layabilmek i\u00e7in geli\u015ftirilmi\u015f bir sistemdir.<\/p>\n<p>Tabi, sizler bu siteye u\u011fray\u0131p bu i\u00e7eri\u011fe g\u00f6z atmadan \u00f6nce kim bilir onlarca i\u00e7erik tarad\u0131n\u0131z, makaleler okudunuz. Muhtemelen \u015fu ana kadar NoSQL&#8217;in yeni bir veritaban\u0131 oldu\u011funa ve hatta b\u00fcy\u00fck verileri depolayabilmek ve y\u00f6netebilmek i\u00e7in geli\u015ftirilmi\u015f bir veritaban\u0131 oldu\u011funa dair bilgiler edinmi\u015fsinizdir. Bu edinilen bilgiler k\u0131smen do\u011fru olsada olay\u0131 kuramsal a\u00e7\u0131dan de\u011ferlendirdi\u011fimizde dar anlamda yorumlamakta ve hafif yanl\u0131\u015f d\u00fc\u015f\u00fcncelere sevk edebilmektedirler.<\/p>\n<p>Dikkat ederseniz NoSQL&#8217;i bir sistem diye s\u0131fatland\u0131rm\u0131\u015f bulunmaktay\u0131m. Evet; nas\u0131l ki, RDBMS(ili\u015fkisel veritabanlar\u0131) bir sistemse NoSQL&#8217;de bir veritaban\u0131 de\u011fil; sistemdir, yakla\u015f\u0131md\u0131r, y\u00f6ntemdir. Bu yakla\u015f\u0131m\u0131 ya da y\u00f6ntemi uygulayan veritabanlar\u0131 vard\u0131r.<\/p>\n<p>RDBMS&#8217;ler de t\u00fcm verileri organize bir \u015fekilde tutabilmek i\u00e7in kat\u0131 bir \u015fekilde tutulacak verinin t\u00fcrleri belirlenmi\u015f kolonlar ve bu kolonlar\u0131 bar\u0131nd\u0131ran tasarlanm\u0131\u015f tablolar mevcuttur. Tablolar aras\u0131 ili\u015fkiler veriler aras\u0131nda ba\u011flant\u0131 kurmakta ve bu i\u015flem komple veritaban\u0131 i\u00e7in bir b\u00fct\u00fcnl\u00fc\u011f\u00fc arz etmektedir. NoSQL ise anahtar\/de\u011fer(key\/value) ili\u015fkisi mant\u0131\u011f\u0131na dayal\u0131 yap\u0131da veritabanlar\u0131na sahiptir. Veriler aras\u0131nda fiziksel ili\u015fki olmad\u0131\u011f\u0131ndan dolay\u0131 olduk\u00e7a h\u0131zl\u0131d\u0131r. \u0130\u015fte bu ili\u015fkisel yap\u0131n\u0131n olmamas\u0131 ve inan\u0131lmaz h\u0131z fakt\u00f6r\u00fc genel olarak b\u00fcy\u00fck verilere istinaden yorumlanmakta ve NoSQL deyince b\u00fcy\u00fck veriler akla gelmektedir. Halbuki NoSQL veritabanlar\u0131nda, verinin bir \u015fema zorunlulu\u011fu olmad\u0131\u011f\u0131 i\u00e7in bu perspektiften bak\u0131nca NoSQL deyince akla organik verilerin gelmesi daha do\u011fru olacakt\u0131r.<\/p>\n<p>Nihayetinde b\u00fcy\u00fck veriden kas\u0131t milyarlarca bilgi\/sat\u0131r\/veri bar\u0131nd\u0131ran yap\u0131lard\u0131r. G\u00fcn\u00fcm\u00fczde bu tarz yap\u0131lar\u0131 olduk\u00e7a ba\u015far\u0131l\u0131 \u015fekilde kald\u0131rabilen ili\u015fkisel veritabanlar\u0131 mevcuttur. Dolay\u0131s\u0131yla NoSQL, b\u00fcy\u00fck veriler deyince de\u011fil organik veri deyince akla gelmelidir.<\/p>\n<p>\u0130li\u015fkisel veritabanlar\u0131nda verinin yap\u0131sal s\u0131n\u0131rlar\u0131 \u00f6nceden \u00e7izildi\u011fi i\u00e7in s\u00fcre\u00e7teki herhangi bir m\u00fcdahale sonucu yeni veri ilgili tabloya uygun olmayaca\u011f\u0131ndan dolay\u0131 hata verecektir. Bilakis NoSQL&#8217;de yukar\u0131da bahsedildi\u011fi gibi veriye \u00e7izilen bir s\u0131n\u0131r ya da \u015fema zorunlulu\u011fu olmad\u0131\u011f\u0131ndan dolay\u0131 veri \u00fczerinde herhangi bir m\u00fcdahale \u00f6nceki verilerin fiziksel yap\u0131lar\u0131ndan ba\u011f\u0131ms\u0131z olabilece\u011finden dolay\u0131 s\u0131k\u0131nt\u0131s\u0131z veritaban\u0131na yans\u0131t\u0131labilecektir.<\/p>\n<p>\u0130li\u015fkisel veritabanlar\u0131nda veriler tablolarda s\u00fctun bazl\u0131 sat\u0131r sat\u0131r bar\u0131nd\u0131r\u0131l\u0131rken; NoSQL&#8217;de tablolarda de\u011fil, document(d\u00f6k\u00fcman) yap\u0131lar\u0131nda JSON olarak bar\u0131nd\u0131r\u0131l\u0131r. Bu yap\u0131lar sayesinde; ili\u015fkisel veritabanlar\u0131ndaki tablolarda \u00e7izilmi\u015f s\u0131n\u0131rlar t\u00fcm veriler i\u00e7in ge\u00e7erliyken, NoSQL&#8217;de b\u00f6yle bir s\u0131n\u0131rl\u0131l\u0131k ge\u00e7erli de\u011fildir. Yani herhangi bir veride herhangi bir kolon \u00f6zel bir i\u015flem gerektirmeksizin eklenebilir ya da \u00e7\u0131kar\u0131labilir ve bu i\u015flemin t\u00fcm veriler i\u00e7in ge\u00e7erli olmas\u0131 gerekmemektedir.<\/p>\n<p>\u0130li\u015fkisel veritabanlar\u0131na k\u0131yasla NoSQL sistemleri y\u00fcksek eri\u015filebilirlik \u00f6zelliklerinden dolay\u0131 daha performansl\u0131 ve az maliyetlidirler.<\/p>\n<p>Ayr\u0131ca ili\u015fkisel veritabanlar\u0131 dikey geni\u015flerken, NoSQL yakla\u015f\u0131m\u0131 yatay \u00f6l\u00e7eklendirilebilen sistemlerdir.<\/p>\n<h3>MongoDB Nedir?<\/h3>\n<p>D\u00f6k\u00fcman tabanl\u0131 bir NoSQL veritaban\u0131d\u0131r. Verileri yap\u0131sal olarak Json format\u0131nda ve documentlar halinde collectionlar i\u00e7erisinde tutmaktad\u0131r. Herhangi bir alana yahut aral\u0131\u011fa g\u00f6re sorgu yaz\u0131labilmektedir.<\/p>\n<p>MongoDB&#8217;de ki yap\u0131lar\u0131 ili\u015fkisel veritabanlar\u0131ndaki yap\u0131larla k\u0131yaslarsak e\u011fer;<\/p>\n<table>\n<thead>\n<tr>\n<th>MongoDB<\/th>\n<th>RDBMS<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>Collection<\/td>\n<td>Tablo<\/td>\n<\/tr>\n<tr>\n<td>Document<\/td>\n<td>Sat\u0131r<\/td>\n<\/tr>\n<tr>\n<td colspan=\"2\" style=\"font-size:10px;color:red;\">RDBMS&#8217;de bir tablo i\u00e7erisindeki t\u00fcm sat\u0131rlar kolon a\u00e7\u0131s\u0131ndan birebir ayn\u0131 iken, MongoDB&#8217;de documentler aras\u0131nda farkl\u0131 kolonlar\/alanlar bar\u0131d\u0131r\u0131labilir.<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h4>MongoDB Kurulumu<\/h4>\n<p>MongoDB&#8217;yi indirebilmek i\u00e7in <a href=\"https:\/\/www.mongodb.com\/download-center#community\" rel=\"noopener\" target=\"_blank\">\u015furadaki<\/a> adrese gitmeniz gerekmektedir.<br \/>\n<a href=\"http:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2018\/08\/NoSQL-ve-MongoDB-Nedir.png\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2018\/08\/NoSQL-ve-MongoDB-Nedir.png\" alt=\"NoSQL ve MongoDB Nedir?\" width=\"473\" height=\"499\" class=\"aligncenter size-full wp-image-8959\" srcset=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2018\/08\/NoSQL-ve-MongoDB-Nedir.png 473w, https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2018\/08\/NoSQL-ve-MongoDB-Nedir-284x300.png 284w\" sizes=\"auto, (max-width: 473px) 100vw, 473px\" \/><\/a><br \/>\n\u0130lgili adreste yukar\u0131daki ekran g\u00f6r\u00fcnt\u00fcs\u00fcnde oldu\u011fu gibi &#8220;Community Server&#8221; sekmesinde bilgisayar\u0131n\u0131za uygun versiyonu belirttikten sonra &#8220;Download&#8221; butonuna t\u0131klaman\u0131z yeterlidir.<\/p>\n<p>\u0130ndirdi\u011finiz program\u0131 \u00e7al\u0131\u015ft\u0131r\u0131p, kurulumu ger\u00e7ekle\u015ftirdikten sonra &#8220;<strong><em>C:\\Program Files\\MongoDB\\Server<\/em><\/strong>&#8221; dizisine g\u00f6z atarsan\u0131z e\u011fer MonguDB&#8217;nin kaynak dosyalar\u0131na eri\u015febilmekteyiz. Dizin i\u00e7erisinde versiyon isminde klas\u00f6r alt\u0131nda &#8220;\/bin&#8221; klas\u00f6r\u00fc bizim MongoDB&#8217;ye eri\u015fmemizi sa\u011flamaktad\u0131r.<\/p>\n<h4>Komut Sat\u0131r\u0131 Aray\u00fcz\u00fc<\/h4>\n<p>&#8220;Komut \u0130stemi&#8221; penceresini a\u00e7\u0131p &#8220;C:\\Program Files\\MongoDB\\Server\\4.0\\bin&#8221;(<span style=\"font-size:10px;\">bu makale yaz\u0131l\u0131rken MongoDB 4.0 versiyonundayd\u0131<\/span>) dizinine ge\u00e7iniz.<\/p>\n<pre class=\"brush: plain; title: ; notranslate\" title=\"\">\r\nmongo --version\r\n<\/pre>\n<p>komutunu \u00e7al\u0131\u015ft\u0131r\u0131rsan\u0131z bilgisayar\u0131n\u0131za y\u00fckl\u00fc MongoDB hakk\u0131nda versiyon bilgisi al\u0131rs\u0131n\u0131z. <\/p>\n<pre class=\"brush: plain; title: ; notranslate\" title=\"\">\r\nmongo\r\n<\/pre>\n<p>komutu ise MongoDB Komut Sat\u0131r\u0131 Aray\u00fcz\u00fcn\u00fc aktifle\u015ftirecektir. Bu komuttan sonra yaz\u0131lan t\u00fcm komutlar MongoDB&#8217;de yorumlan\u0131r ve \u00e7\u0131kt\u0131 \u00fcretilir.<\/p>\n<pre class=\"brush: plain; title: ; notranslate\" title=\"\">\r\nshow dbs\r\n<\/pre>\n<p>komutu serverdaki t\u00fcm veritabanlar\u0131n\u0131 getirecektir.<br \/>\n<a href=\"http:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2018\/08\/NoSQL-ve-MongoDB-Nedir..png\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2018\/08\/NoSQL-ve-MongoDB-Nedir..png\" alt=\"NoSQL ve MongoDB Nedir?\" width=\"126\" height=\"68\" class=\"aligncenter size-full wp-image-8969\" \/><\/a><\/p>\n<pre class=\"brush: plain; title: ; notranslate\" title=\"\">\r\nuse &#x5B;veritaban\u0131 ad\u0131]\r\n<\/pre>\n<p>komutu ad\u0131 belirtilen veritaban\u0131n\u0131 kullan\u0131labilir vaziyette se\u00e7ecektir.<\/p>\n<pre class=\"brush: plain; title: ; notranslate\" title=\"\">\r\nshow collecitons\r\n<\/pre>\n<p>komutu ise \u00fczerinde \u00e7al\u0131\u015f\u0131lan veritaban\u0131ndaki collectionlar\u0131 getirecektir.<\/p>\n<p>\u0130lgilenenlerin faydalanmas\u0131 dile\u011fiyle&#8230;<\/p>\n<p>Sonraki yaz\u0131lar\u0131mda g\u00f6r\u00fc\u015fmek \u00fczere&#8230;<br \/>\n\u0130yi \u00e7al\u0131\u015fmalar&#8230;<\/p>\n<!-- AddThis Advanced Settings generic via filter on the_content --><!-- AddThis Share Buttons generic via filter on the_content -->","protected":false},"excerpt":{"rendered":"<p>Merhaba, Bu i\u00e7eri\u011fimizde NoSQL ve MongDB teknolojilerinin genel tan\u0131mlar\u0131n\u0131, ne olduklar\u0131n\u0131, neye istinaden bu teknolojilere ihtiya\u00e7 duyuldu\u011funu vs. konular\u0131n\u0131 ele al\u0131yor olaca\u011f\u0131z. NoSQL Nedir? NoSQL, her\u015feyden \u00f6nce SQL yok demek de\u011fildir! &#8216;Sadece SQL de\u011fil&#8217;&#46;&#46;&#46;<!-- AddThis Advanced Settings generic via filter on get_the_excerpt --><!-- AddThis Share Buttons generic via filter on get_the_excerpt --><\/p>\n","protected":false},"author":1,"featured_media":8971,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[2539,2538],"tags":[2537,2534,2536,2533,2535,2531,2532],"class_list":["post-8942","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-mongodb","category-nosql","tag-komut-satiri-arayuzu","tag-mongodb","tag-mongodb-nedir","tag-nosql","tag-nosql-nedir","tag-rdbms","tag-relational-database-management-system"],"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/posts\/8942","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/comments?post=8942"}],"version-history":[{"count":27,"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/posts\/8942\/revisions"}],"predecessor-version":[{"id":8972,"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/posts\/8942\/revisions\/8972"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/media\/8971"}],"wp:attachment":[{"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/media?parent=8942"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/categories?post=8942"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/tags?post=8942"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}