Datalar niye kullandığımız programa yazılmıyor da sql e yazılıyor?
Lise seviyesine aktaracak basitlikte ne söylenebilir? Kafalarında nasıl somutlaştırabiliriz?
Çalışılan liste boyutlarına göre değişir, 2 3 kişi bir 50 100 sütun ile çalışılacaksa excel de iş görür.
Ancak büyük bir firmada 5 - 10 departman olan iş yerinde her bölümün kullancığı yüzlerce veri var, milyonlarca satır veri tutuluyor bazen , bunları excelde yapmak çok akıl karı değil aynı zamanda istenilen kadar hızlı da çalışmaz. excel dosya boyutu büyüdükçe performans kaybı olabiliyor.
birde güvenlik boyutu var
Satış odaklı bir firmada çalışırken ekiplere aylık raporlar gönderiyordum.
600 bin satır ve yaklaşık 50 sütundan oluşan bir datam vardı.
Excel ile vlookup , sumifs vb bir çok formül ile macrolar hazırlayarak yaklaşık 3 günden raporları gönderiyordum.
SQL geçip tüm sorguları haziladiktan sonra 3 günlük işimi yaklaşık 1 saatte bitiyordum.
SQL Excelin boyut olarak yeterli kalmadığı nokta kullanılmakta.
Excel bir noktadan sonra yetersiz kalır, çünkü çok büyük veri işlemlerini yönetmek için tasarlanmamıştır. Küçük veri kümelerinde veri bütünlüğünü sağlayabilirsiniz ama binlerce veya milyonlarca satır veriyi yönetmek zorlaşır. Excel’de arama yapmak, veri analiz etmek veya aynı anda birden fazla kişiyle çalışmak oldukça yavaş ve zor olabilir.
Veritabanı sistemleri (örneğin: MSSQL, Oracle, PostgreSQL, MongoDB gibi) büyük verilerle başa çıkmak için geliştirilmiştir. Bu sistemlerde veriler güvenli ve organize bir şekilde saklanır. Uygulamalar ise bu verilerle etkileşim kurmamızı sağlar; tıpkı bir köprü gibi veritabanına ulaşmamıza yardımcı olur. Örneğin, bir okuldaki öğrenci notlarını düşünelim. Veriler bir veritabanında saklanır, ancak notları görmek veya değiştirmek için bir uygulama (program, yazılım) kullanılır.
Bir txt dosyası veya Excel dosyası da bir tür veritabanı gibi düşünülebilir, çünkü içine veri kaydedebiliriz. Ama büyük miktarda veri işleme, yönetme ve güvenli saklama konusunda çok yetersiz kalırlar. Bu yüzden veritabanı yönetim sistemleri daha güvenilir ve kullanışlıdır.
Özetle:
-Excel küçük verilerle çalışmak için iyi bir araçtır, ama çok büyük veri kümelerinde yönetimi zorlaşır.
-Veritabanı sistemleri (SQL) büyük ve karmaşık veri kümelerini yönetmek için kullanılır ve uygulamalar da bu verilerle çalışmamızı sağlar.
-Txt veya Excel dosyasıyla veri saklayabilirsiniz, ama yönetmek ve düzenli tutmak çok zor olur.
edit: yazım error.
1 ) veri o kadar çok ki, (örn, 80 milyon satır, t.c nolar diyelim), excel bu veri içerisinden sizin istediğiniz koşullara uygun veriyi bulabilmesi için 1 dakika boyunca çalışması gerekiyor (örneğin; 2 ile başlasın, 3 ncü rakamı 7 olsun, 11 nci rakamı 0 olsun gibi), eğer bu tür bir işlemi günde 100 defa yapıyorsanız sorun değil, yine excel kullanabilirsiniz, ancak yaptığınız işlemi sn. de 10 bin defa yapmak isterseniz, excel size yeterli gelmeyecektir. bilmem kaç milyon kişinin aynı anda sizin okuduğunuz, işlem yaptığınız excel'i değiştirmeye kalktığını düşünün.
2) becerikli yazılımcı pahalı, %99.9 yazılımcı sıfırdan veri tabanı nasıl yazılır, veriler nasıl tutulur, işlenir ve yönetilir bilmiyor, (bu bilgiler yılların tecrübesi üzerine saatlerce düşünülerek kitaplaştırılmış, makaleleri yazılmış yüzlerce kavram içeren bilgiler, her bir kavramı da ayrı ayrı öğrenmesi gerekecek), bunları öğrenmesi de zaman alacak, onun yerine daha basit bir şeyi 4-5 hafta gibi bir sürede öğrenebilir zira çoğu zaman problem şu şekildedir, "elimdeki tablolardan X verisine nasıl ulaşırım? " bunu arkadaşına sorar, arkadaşı iki satır bişi yollar, çalıştırır, aa oldu der ve hayatına devam eder. doğrudan veri tabanını kullanmak, o veri tabanını yazanların sahip olduğu bilgi, tecrübe ve vizyona sahip olmaktan çok daha kolay ve ucuzdur.
sizin sql dediğiniz şey aslında "veri tabanı", sorunuz aslında bir veri tabanı ne işer yarar olmalıydı ancak sanırım bir şekilde etrafınızdaki herkes sql diyor.
sql bir dil, bu dilin nasıl olacağı, hangi kurallara uyacağı birileri tarafından seneler önce belirlenmiş. bu dil ile ne yapabilirsiniz, bu sorunun cevabı: biraz bu dili işleyip sonuç üreten veri tabanının yeteğine, biraz da o dili kullanan kişi ile ilgili.
türkçe gibi düşünün, kuralları belli, kelimeler belli, kimisi bunları küfür etmek için kullanıyor, kimisi şiir yazmak için.
eğer tee ilk okul/orta okul matematik bilginiz kalmışsa (zamanla unutuluyor) veri tabanı dediğimiz şey, en basit ve yalın hali ile kümeler oluşturmak (excelde sayfa, veri tabanında tablo) ve bu kümeler ile matemetiksel işlemler yapmak; örn: iki kümeyi birleştir, a kümesinde ve b kümesinde olan elemanları bul vb.
elbette bu işlemler sırasında kullanılan bazı tabirler de var, transaction vs. gibi bunlarında kendi amaçları var.
örn: elimizde iki küme olsun, a ve b kümesi; a ve b kümesinde bulunan elemanları getir diye, siz bu soruyu sordunuz (sql'i çalıştırdınız) işlem sürerken, bir başkası geldi ve kümelerde değişiklik yaptı, daha size sonuç gelmeden. peki şimdi ne olacak? bütün işlem durdurulup tekrar baştan mı başlayacak? sadece değişiklik yapılanlar mı yeniden gözden geçirilecek?
yoksa sizin istediğiniz tam olarak enter'a bastığınız halindeki sonuçlar mı?
Ben yazılanlara ek bir örnek vermek istiyorum.
Bir kullanıcı her gün yapılması gereken bir işi için benden makro istedi. Binlerce satır ve onlarca sütun veri başka bir sheet'e export edilecekti ve bazı hesaplamalar yapılıp grafikler çizilecekti.
Normal yaklaşımla satır satır, sütun sütun denediğimde saat bazında vakit alıyordu.
Excel dosyası da aslında bir database, oledb bağlantısı ile aynı işi yaptığımda saniyeler içinde halledebiliyordum.
Özetle verilere çok hızlı ve organize şekilde erişmenizi ve işlem yapmanızı sağlar.
En basit farkı SQL bir dil.
Excel bir küçük ve orta ölçek veri tabloları oluşturmak için kullanılan bir program.
SQL ne işe yarar?
Veri tabanı dediğimiz şey aslında onlarca, yüzlerce hatta binlerce tablodan oluşuyor. Excel'de oluşturduğumuz tablolar gibi.
Yıllar içinde ilişkisel veri tabanı diye bir kavram ortaya çıktı ve veriyi farklı tablolara bölerek saklamak daha efektif bulundu. Ama bu tablolar arasında veriyi yönetebilmek için bir sistem lazım.
İşte SQL bu işe yarıyor.
Hatta sadece tablolar arasında değil, farklı veri tabanları arasında da.
Mesela iş başvurusu yapıyorsun. Bazı firmalar linkedin ile başvurmana izin veriyor. Yani senin linkedin'deki cv bilgilerin, o firmanın başvuru veri tabanına aktarılıyor.
ama iki firma farklı şirketlerin veri tabanlarını kullanabilir. Yani veri tabanları aynı dili konuşmayabilir. O zaman bilgilerin yanlış aktarılır ya da aktarılamaz.
Bu gibi sorunları önlemek adına bir sektör standartı haline geldi SQL.