‫Tüm şirketler, küçük bir işletmenin basit bir kayıt defterinden, hatta belki bir günlükten veya bir kağıt parçasından
‫veri depolar.
‫Amazon gibi petabaytlarca veriyi depolamak için bilgisayarlara ihtiyaç duyan devasa şirketlere.
‫Şimdi, bu bilgileri depolamak için, hemen hemen her şirket ve bazen bireyler de veritabanı adı verilen bir
‫şeye ihtiyaç duyarlar.
‫Son bölümde sunucumuzun yeni bir kullanıcıyı hatırlamasının ne kadar zor olduğunu gördük.
‫Sunucu her çöktüğünde, değişken sıfırlanıyor ve sonra her şey baştan başlıyordu.
‫Ya da bir oturum açma veya oturum açma kontrolü yapmak ve JavaScript üzerinden bir döngü yaparak e-postaları ve parolaları
‫yinelemek istersek, bu verimsizdir.
‫İşte bu noktada veri tabanı imdadınıza yetişiyor.
‫Öyleyse kendimize soralım, veritabanı nedir?
‫Veritabanı bir veri koleksiyonudur.
‫Ve veri ile neyi kastettiğimizi.
‫Bunların birçok türü var, değil mi?
‫Sayılar olabilir, tarihler olabilir, şifre karmaları olabilir.
‫Kullanıcı bilgileri olabilir.
‫Veritabanları bu verileri işimize yarayacak şekilde düzenlememize olanak tanır ve veri yönetimini kolaylaştırır.
‫Ve bundan bir şey ortaya çıktı ve buna veritabanı yönetim sistemi veya kısaca DB MBS deniyor.
‫Veritabanlarına erişmemizi ve verilerle çalışmamızı sağlayan bir program koleksiyonudur ve ayrıca veritabanı
‫kullanıcılarına kontrol erişimi sağlar.
‫Yani db mbs bu kutunun içinde bir şey.
‫Bize bir araç sağlayan bir şey, iletişim kurmamızı sağlayan bir yazılım parçası.
‫Veritabanı bizim için yararlı olan bilgileri depolar ve ayrıca veritabanında ne varsa güncellememize, eklememize,
‫silmemize, aramamıza olanak tanır.
‫Ve bu DB PBM'ler fikri 1960'larda gerçekten şekillenmeye başladı ve şimdi birçok heyecan verici şeyin ön saflarında
‫yer alıyor.
‫Sadece veritabanlarıyla çalışan mühendislerden oluşan koca bir endüstri var çünkü bu çok önemli.
‫Şu anda gerçekten popüler olan ve bu kursta bahsedeceğimiz iki tür
‫DMS var.
‫Ve bu iki tür Post Gress ve MongoDB tarafından gerçekten iyi bir şekilde temsil edilmektedir.
‫Birincisi olan ilişkisel veritabanı hakkında konuşalım.
‫Ve sağ tarafta görebileceğiniz gibi bu muhtemelen en popüler olanıdır, bunların hepsinin
‫ilişkisel veritabanları olduğunu görüyorsunuz, post grass, Oracle, SQL Server.
‫MySQL SQL Light'ı duymuş olabilirsiniz.
‫Bunların hepsi ilişkisel veritabanı etiketine sahip veritabanı türleridir.
‫İşin güzel yanı ise hepsinin birbirine oldukça benzemesi.
‫Hepsi aynı standart formatı takip eder.
‫İlişkisel veritabanları, sütun ve satırlara sahip iki veya daha fazla tablodan oluşur.
‫Bu durumda, kullanıcılar bir tablodur ve sütunlarımızda oluşturulan tam ad kullanıcı adı metni ve burada sahip oldukları
‫değerler satırlardır.
‫Her satır bir girişi temsil eder ve her sütun isim, adres veya telefon numaraları gibi çok özel bir bilgi türünü
‫sıralar.
‫Ve sonra tablolar ve alan arasındaki ilişki.
‫İlişkisel bir veritabanında buna şema denir.
‫Herhangi bir bilgi eklenmeden önce şema açıkça tanımlanmalıdır.
‫Ve eğer bu şu anda kafa karıştırıcıysa, endişelenmeyin, aslında bu veritabanlarını oluşturacağız.
‫Yani sana mantıklı geliyor.
‫Örneğin Twitter'ımız olsaydı, sahip olacağımız tablo türlerini ve bunları nasıl düzenleyeceğimizi burada
‫görebilirsiniz.
‫Bir kullanıcı tablomuz, bir tweet tablomuz, bir takipçi tablomuz olacaktı.
‫Ve tüm bu bilgileri, örneğin tablonun farklı parçalarını birbirine bağlayarak birbirine bağlayabiliriz.
‫Örneğin, kullanıcı adı tweet'te olduğu gibi kullanıcının tablosunda da aynı olacaktır.
‫Sabit.
‫Bu şekilde, tweets tablosundaki kullanıcı adının, kullanıcı tablosundaki kullanıcı adının yabancı anahtarı olduğunu ve ardından kullanıcıdan
‫geldiğini söyleyebiliriz.
‫Aşağıdaki tabloda kullanıcı adının yabancı anahtarı olacaktır.
‫Artık tam ad veya kimlik gibi şeyler, bir tablodaki her satırı tanımlayan bir şey.
‫Buna birincil anahtar adı verilir ve bu bölümün ilerleyen kısımlarında bunun üzerinden geçeceğiz.
‫Tamam.
‫PostgreSQL hakkında öğreneceğimiz tüm bu veritabanları hemen hemen aynıdır.
‫Yani birini öğrendikten sonra diğerlerini öğrenmek oldukça kolaydır.
‫Arka uçlu bir sunucu ile gerçekte nasıl iletişim kurarlar?
‫Tüm ilişkisel veritabanları SQL adı verilen bir şey kullanır.
‫Ve SQL, tıpkı HTTP'nin ön uç ile arka uç arasında yaptığı gibi SQL ile iletişim kurmamızı sağlar.
‫Veritabanı ile iletişim kurabilir ve istediğimiz şekilde değişiklik yapabilir veya güncelleme yapabiliriz.
‫Bu konuyla ilgili bir videomuz da olacak.
‫Tamam.
‫Yani bu ilişkisel veritabanları.
‫Peki ya ikinci tür?
‫İkinci tür, ilişkisel olmayan veritabanı veya NoSQL veritabanı olarak adlandırılır.
‫Ve bir kez daha, Couch DB ve Hyper Table gibi bazı havalı isimlere sahip pek çok farklı veritabanı
‫türü vardır.
‫Artık bir MongoDB veya ilişkisel olmayan bir veritabanı, önce şemayı tanımlamak zorunda kalmadan bir uygulama
‫oluşturmanıza olanak tanır.
‫İlişkisel bir veritabanının aksine.
‫İlişkisel veritabanına geri dönersek, bu şema veya bu tabloların önceden tanımlanmış olması gerekir, değil mi?
‫Uygulamamızın nasıl görüneceğini bilmemiz, bu tabloları oluşturmamız gerekiyor, böylece uygulama herkese açık olduğunda kullanıcı
‫bilgilerini, tweetleri ve takipçileri girmeye başlayabiliriz.
‫SQL ya da ilişkisel olmayan bir veritabanı ile, bunu sadece gittiğimiz gibi tanımlayabiliriz ve hepsinin bu bilgiyi depolamak
‫için farklı yolları vardır.
‫Yani her biri çok ama çok farklı.
‫İlişkisel olmayan bir veritabanı kullanmak için bir başka güçlü neden de şudur: Veri gereksinimleriniz
‫projenizin başlangıcında net değilse ve belki de büyük miktarda yapılandırılmamış veriye sahipseniz, açıkça tanımlanmış
‫bir şemaya sahip ilişkisel bir veritabanı geliştirme lüksüne sahip olmayabilirsiniz.
‫Bunun yerine, ilişkisel olmayan bir veritabanının her türden ilgili bilgiyi bir araya getiren klasörler gibi olması
‫nedeniyle daha büyük bir esneklik sunarlar.
‫Şimdi MongoDB belge odaklı olarak adlandırılan bir şeydir.
‫Bilgileri belge olarak saklar.
‫Bu noktayı size açıklayayım.
‫Masaüstümde iki klasör var.
‫Biri ilişkisel bir veritabanı ve burada kullanıcıların tweetleri, profil takipleri var.
‫İlişkisel veritabanlarını bu tür bir depolama ile düşünebilirsiniz; bu klasör bilgisayarda bir
‫yerde bulunur ve bu bilgileri depolar.
‫Ve ne zaman bir veritabanından bir şey istememiz gerekse, o zaman kullanıcıları alırız.
‫Kullanıcının tweetlerini de almak istiyorsak, ilgilendiğimiz kullanıcıyı buluruz, ardından
‫kullanıcılara bağlanan yabancı anahtarla ilgilendiğimiz kullanıcının tweetlerini de buluruz.
‫Ayrıca o kullanıcının kaç takipçisi olduğunu da bulabiliriz.
‫Bu bilgileri alır ve web uygulamamızda görüntüleriz.
‫Öte yandan MongoDB, her bir kullanıcıyı aslında bir belge olarak tutacaktır.
‫Yani ilk kullanıcıyı almak istersem, bu belgeyi alırım ve tüm takipçiler,
‫tweetler, profil, her şey bu tek belgede bulunur.
‫Ve şöyle düşünüyor olabilirsiniz, hmm, MongoDB buna sahip olmaktan daha iyi bir seçim gibi görünüyor.
‫İşleri doğru yapmanın yolu.
‫İhtiyacınıza göre değişir.
‫İşte bu yüzden veri tabanları bu kadar karmaşık bir konudur.
‫Bu gerçekten ama gerçekten durumunuza bağlı.
‫Bir profiliniz, belki bir LinkedIn profiliniz varsa bu MongoDB yönteminin çok kullanışlı olduğunu görebilirsiniz,
‫ancak sadece takip verileriyle veya sadece tweet verileriyle çalıştığınız bir şeye ihtiyacınız varsa,
‫belki görmek istediğiniz tweetlerle, ortalama tweet boyutu nedir?
‫Bu dosyayı almak ve her bir kullanıcıdan çıkarmanız gerekebilecek bu yola kıyasla
‫bunu hesaplamak gerçekten çok kolay.
‫Yani bu gerçekten ihtiyaçlarınıza bağlı.
‫Size olabilecek başka bir diyagram göstereyim.
‫İşe yarar.
‫İlişkisel ve ilişkisel olmayan veritabanlarına baktığımızda, ilişkisel olanı her tablonun bir blog yazısı, bir blog
‫etiketi, bir blog yorumu olduğu ve bu tabloları size blog bilgilerini vermek için birbirine bağladığı, ilişkisel olmayanı ise bu
‫blog yazısının tamamını bir girişte sakladığı ve yorumların, etiketlerin, kategorilerin ve diğer tüm ilgili verilerin
‫tek bir yerde olduğu şeklinde düşünebilirsiniz.
‫Peki MongoDB iletişim kurmak için ne kullanır?
‫Buradaki örneğimize geri dönecek olursak, Post Press gibi ilişkisel veritabanları için SQL'imiz vardı.
‫MongoDB'nin sorgu dili dediğimiz kendine ait bir dili vardır ve bu sadece MongoDB sorgu dilidir.
‫Ancak her ikisi de aynı şeyi yapmayı amaçlıyor.
‫Yani, veritabanı ile iletişim kurmak için, sunucunun veritabanı ile iletişim kurması için kolay bir yol
‫sağlayın.
‫Ve bu bölümde, bundan bahsedeceğiz ve sonunda noktaları birleştireceğiz ve bir sunucuya
‫bağlandıklarında veritabanlarının gücünü size göstereceğiz.
‫Bir sonrakinde görüşürüz.