İlişkisel veritabanlarına giriş
Bu, SQL ile ilgili bir dizinin ilk gönderisidir.
Bir IADSS makalesine göre * SQL, veri bilimi iş ilanlarında listelenen en yaygın ikinci beceridir - yalnızca python daha yaygındır. Bu, SQL'i herhangi bir veri bilimcisi, veri analisti veya veri mühendisi için temel bir beceri haline getirir. Peki SQL nedir ve veri bilimcileri için neden bu kadar önemlidir? Bu gönderi, SQL'in ne olduğuna ve bir veri kariyeri peşindeyseniz bu beceriye sahip olmanın neden önemli olduğuna dair çok temel, üst düzey bir genel bakış niteliğindedir.
Bu blog üzerindeki odak noktamız veri bilimidir, bu nedenle veri tabanlarını sorgulamaya odaklanacağız - bir veri bilimcinin sık sık yaptığı bir görev, ilişkisel bir veritabanında bulunan verileri almaktır.
SQL nedir ve ilişkisel veritabanı nedir?
Yapılandırılmış Sorgu Dili veya SQL, ilişkisel veritabanlarına erişmek ve bunları yönetmek için kullanılan bir programlama dilidir. SQL'i anlamanın ilk adımı, ilişkisel veritabanı ile ne demek istediğimizi anlamaktır.
İlişkisel bir veritabanı, birbiriyle ilişkili veri noktalarını kullanarak bilgileri depolar. Bu veri noktaları tablolarda saklanır.
Diyelim ki bir online katalog şirketinde çalışıyoruz. İşletmemizin işlemesi için en azından satılmakta olan ürünleri, kime satıldıklarını ve nereye sevk edildiklerini bilmemiz gerekir. Her sipariş, müşteri, ürünler ve adres ile gerçekten büyük bir masa yapabiliriz. Ancak, bu çok sayıda yinelenen bilgiye yol açar ve sonunda depolama alanımız tükenir.
Yukarıdaki örnekten de görebileceğiniz gibi, birden çok siparişi olan, birden çok siparişi olan ürünler vb. Olan müşterilerimiz var. Her sipariş için tüm bilgiler her yeni sipariş verildiğinde girildiği için birçok veri girişi hatası da bekleyebiliriz.
Müşteri, ürün ve adres bilgilerinin ayrı tablolar kullanılarak yalnızca bir kez girilebilmesi için ilişkisel bir veri tabanı yapılandırılacaktır. Bu, depolama alanından tasarruf sağlar ve veri girişi hatalarını azaltır.
Şimdi, bir sipariş verildiğinde, sipariş tablosunun yalnızca diğer tablolara başvurması gerekir. Bu, kimlik sütunlarıyla yapılır - bundan sonraki gönderilerde bundan daha fazla bahsedeceğiz, ancak şimdilik her müşterinin, ürünün ve adresin kendi tablolarında benzersiz bir tanımlayıcıya sahip olduğunu anlamak önemlidir.
Sipariş tablomuz artık her siparişle ilgili tüm bilgileri almak için bu kimliklere referans verecek.
Harika, şimdi muhtemelen bu verileri tüm tablolardan tek bir yere nasıl aldığınızı merak ediyorsunuzdur, böylece verilerinizle neler olup bittiğini anlayabilirsiniz. SQL sorgularının devreye girdiği yer burasıdır.
Sorgu nedir?
Sorgu, 'bilgi talebi' demenin süslü bir yoludur - eğer bir veritabanını sorgularsam, ondan belirli bilgileri almasını isterim. Yukarıdaki sipariş örneğinde, belirli bir müşteri tarafından verilen tüm siparişleri veya belirli bir tarihte verilen her siparişi veya belirli bir ürünü olan herhangi bir siparişi talep edebilirim.
Bu talepleri yapmak için SQL kullanıyoruz. Belirli bir müşteri tarafından verilen tüm siparişleri bulmak istiyorsam, veritabanından aradığım müşteriye referans veren tüm sipariş kimliklerini almasını istemem gerekir. Bir sonraki gönderi belirli SQL sorgu yapısı hakkında konuşacak, ancak burada talebin nasıl yapılandırılacağına dair yüksek düzeyde konuşacağız.
İlk adım, talebiniz için hangi masalara ihtiyacınız olduğuna karar vermektir. Belirli bir müşteri tarafından verilen her sipariş numarasını almak için müşteri ve sipariş tablolarına ihtiyacım olacak.
İkinci adım, bu tabloların birbirleriyle nasıl ilişkili olduğunu anlamaktır. Siparişler tablosunda CustomerID için bir sütun vardır ve bu sütun da müşteri tablosundadır. Bu nedenle, her iki tabloda da bir Müşteri Kimliği paylaşan veritabanından bilgi istemek istiyorum.
Daha sonra, her tablodan hangi sütunları almak istediğimize karar veririz. Sadece belirli bir müşterinin sipariş numaralarıyla ilgilendiğimizi varsayalım. 'Mutt Barkley için sipariş numaralarının bir listesini alabilir miyim?' Diye sorabiliriz.
Bu bilgiyi almak için, önce veri tabanına Müşteri tablosunda 'Mutt Barkley'i bulması ve Müşteri Kimliğini (2) alması talimatını vereceğiz.
Daha sonra, veritabanına, aynı zamanda Müşteri Kimliği 2 olan siparişler tablosunda herhangi bir satırı bulması talimatını veriyoruz.
Yalnızca sipariş numaralarının bir listesini istediğimiz için, yalnızca bir sütuna ihtiyacımız var - Sipariş Kimliği. Bu sorgu '1' döndürecektir.
En temel terimlerle, veritabanından müşteri tablosunda 'Mutt Barkely' adını bulmasını ve ardından bu satırdaki Müşteri Kimliğini sipariş tablosundaki Müşteri Kimliği ile eşleştirmesini (buna birleştirme denir, daha sonra daha çok) ve iade etmesini istedik. eşleşme olan herhangi bir orderID.
SQL ile yazılmış:
Sipariş Kimliği SEÇ
SİPARİŞLERDEN
Müşterilere Katılın Müşteriler.CustomerID = Orders.CustomerID
WHERE customers.Name = 'Mutt Barkley'
Bu en temel açıklama - bu dizinin bir sonraki gönderisi SELECT, FROM, JOIN ve WHERE ifadelerinin ne yaptığını ve nasıl yazılacağını açıklayacak.
* https://www.iadss.org/post/skill-set-analysis-on-linkedin-data-scientists-engineers-analysts-vs-job-postings
Bir keresinde kocam çöplerimizi karmaşık çöp bidonumuza götürürken, dost canlısı, kayıp bir kedi yavrusuyla karşılaştı. Onu eve götürmeye ve ardından sahibini bulmaya karar verdi - ta ki kadın miyavlayana kadar.
Teknoloji dünyasında, işletmeler sürekli olarak siber suçluların şeytani faaliyetlerinin tuzağına düşme riski altındadır. Endişe verici derecede sık hale gelen böyle bir taktik, kimlik bilgilerini doldurmaktır.
Açık kaynaklı yazılım paketlerinde (log4j olarak) tespit edilen istismarlar, endüstriyi uygulamalardaki güvenlik açıklarını ve zayıflıkları izlemek, tespit etmek, önlemek ve onarmak için bir çözüm bulmaya yöneltti. Bu ihtiyaç, tüm yazılım geliştirme yaşam döngüsü ile ilgilidir ve hem kendi geliştirdiği hem de üçüncü taraf yazılım bileşenlerini içerir.
Proje Arka Planı Bir iş teklifi ve kendi alanımda, zamanımda ve tarzımda yeni bir hayata başlama hayaliyle 2019 yılında yeni bir şehre taşındım. Kötü PG durumu göz önüne alındığında, arkadaşım ve ben bir daire kiralamaya karar verdik.
The 3D Blockchain, Airdrop Incoming ve Mainnet is Live gibi gönderilerdeki CORE airdrop hakkındaki bilgilerin tümü aynı airdrop olayına atıfta bulunuyor. Bu gönderi, daha fazla ayrıntı sağlamanın yanı sıra bu bilgileri sentezler.