Blog'dan Yazılar

Sizler için profesyonel yazarlarımız ile hazırladığımız makalelerimizi okuyun ve kendinizi geliştirin.

Facebook Türkiye Başkan Yardımcısı: Whatsapp ve Facebook Mesajlarınızı Okuyamaz
Facebook Türkiye Başkan Yardımcısı: Whatsapp ve Facebook Mesajlarınızı Okuyamaz
Whatsapp’ın gizlilik politikasında yapmış olduğu güncellemeye yönelik Facebook Orta Doğu, Afrika ve Türkiye Bölge Başkan Yardımcısı Derya Özkaya Matraş’tan yeni bir açıklama geldi. Matraş, güncellemenin işletmelere verilecek hizmete yönelik olduğunu, mesajların hiçbir şekilde okunmayacağını dile getirdi. Whatsapp, gizlilik politikalarında yaptığı değişiklikler yüzünden global anlamda gündemde kalmaya devam ediyor. Uygulama, gün geçtikçe kullanıcı kaybetmeye devam ederken Facebook Orta Doğu, Afrika ve Türkiye Bölge Başkan Yardımcısı Derya Özkaya Matraş, sosyal medya hesabından kişisel bir açıklamada bulundu.   Matraş, yapılan güncellemelerin işletmelere yönelik olduğunu, uca şifreleme özelliği sayesinde Facebook ve Whatsapp’ın mesaj, video ve fotoğraf gibi verilere ulaşamayacağını belirtti.  “2 milyar kullanıcının bilgilerini kaydetmek büyük bir gizlilik problemi oluşturur” Çekmiş olduğu videoyu sosyal medyada yayınlayarak Türk halkında seslenen Matraş, Whatsapp’ın yeni gizlilik politikasının işletmelerin Facebook üzerinden hosting hizmeti almasına olanak sağlayacağını, bu özelliği kullanmanın da kullanıcıların insiyatifinde olduğunu açıkladı.  Yeni güncellemenin uçtan uca şifreleme politikasına hiçbir etki etmeyeceğini belirten başkan yardımcısı, şu ifadeleri kullandı; “Bu güncelleme; işletmelerin ileride isterlerse ana şirketimiz olan Facebook üzerinden güvenli hosting hizmeti alabilmelerine olanak sağlıyor. Tabii ki Whatsapp üzerinden bir işletme ile mesajlaşıp mesajlaşmamak yine kullanıcının inisiyatifinde. Ya da böyle bir güvenli hosting hizmetini Facebook üzerinden alıp almamak da işletmenin inisiyatifinde, Facebook’un değil.”İLGİLİ HABER Bilim İnsanlarına Göre Süper Akıllı Yapay Zekayı Kontrol Etmek, Neredeyse İmkansız Matraş, aynı zamanda Whatsapp’ın kullanıcı rehberlerini Facebook’la paylaşmadığını, bu erişim izninin sadece uygulamayı daha hızlı ve güvenilir hale getirmek için kullanıldığını dile getiriyor. Whatsapp’ın dünya çapında iki milyardan fazla kullanıcıya sahip olduğu, bu kadar fazla kullanıcının bilgilerini kaydetmenin Whatsapp için büyük bir gizlilik ve güvenlik sorunu oluşturacağı dile getirildi.
MIUI 12.5 açık beta 28 Xiaomi modeli için geldi
MIUI 12.5 açık beta 28 Xiaomi modeli için geldi
Max Planck Enstitüsü’nden bilim insanları, süper akıllı bir yapay zekanın kontrol edilip edilemeyeceği teorik olarak araştırdı. Yapılan araştırmacılar sonucunda net bir sonuca ulaşamayan bilim insanları, böylesi bir yapay zekayı kontrol etmenin neredeyse imkansız olduğu sonucuna ulaştılar. Yapay zeka, özellikle de son birkaç yıl içerisinde hayatımızın en derin noktalarına kadar ulaşmaya başladı. Artık olağan yaşam döngümüzdeki herhangi bir şey için yapay zekadan yardım alabiliyoruz. Belirli bir kesim yapay zekayı sonuna dek savunurken aykırı düşünenler de var. Hatta bazı komplo teorilerine göre yapay zeka hayatımızı esir alacak ve belki de insanlığın sonu, yapay zeka nedeniyle gelecek. Görünen o ki bu teori, bilim insanlarının da dikkatini çekiyor. Max Planck Enstitüsü bünyesinde çalışmalarını sürdüren bir grup bilim insanı ise gerçek bir süper akıllı yapay zekanın kontrol edilip edilemeyeceğini araştırmaya başladılar. Teorisel bazda yapılan araştırmalar, böyle bir şeyin neredeyse imkansız olduğu sonucunu ortaya koydu. Açıkçası eğer yapay zekadan korkuyorsanız, haberimizin bundan sonraki bölümünün sizi daha da tedirgin edebileceğini söyleyebiliriz. Süper akıllı yapay zeka ne demek? Günümüzde kullanılan yapay zeka teknolojileri, her geçen gün biraz daha iyi bir hale geliyorlar. Bu tür teknolojilerin iyileştirilmesi için kullanılan makine öğrenme teknikleri, yapay zekayı her gün biraz daha akıllı bir hale getiriyorlar. Süper akıllı yapay zeka dediğimiz olgu ise aslında gerçekte tam bir anlama sahip değil. Bunun nedeniyse insan beyninin ve algılarımızın şu an için, böylesi bir şeye hazır olmaması. İşte bilim insanlarının yaptığı araştırmanın teoride kalmasının nedeni de tam olarak bu. Çünkü süper akıllı yapay zekayı geliştirmek ve kontrol etmek için, ondan daha güçlü bir algoritmaya (koruma algoritması) sahip olmak gerekiyor. İLGİLİ HABER Türkiye’de Suçluların Yapay Zeka ile Yakalanması İçin Yeni Bir Sistem Kuruluyor Bilim insanlarının merak ettikleri şey, süper akıllı yapay zekanın kontrol edilip edilemeyeceği. Ancak bunu deneyebilmek için hem süper akıllı yapay zeka geliştirmek gerekiyor hem de bu yapay zekayı kontrol edebilecek ya da durdurabilecek olan daha güçlü bir teknoloji ya da zihne ihtiyaç duyuluyor. İşte bu tür bir yapay zekanın ortaya çıkaracağı sonuçlar bilinmediği, ayrıca bu yapay zekadan daha güçlüsünün olup olmadığı da muallak olduğu için, gerçekten süper akıllı bir yapay zekanın yönetilemeyeceğine inanılıyor. Tüm senaryoları belirlemek ve bu senaryolar sonucunda “insana zarar verme” komutunu çalıştırmak, pek de mümkün olmayabilir Bilim insanlarının teorik araştırmasına göre süper akıllı yapay zeka, çok yönlü bir algoritma. Bu da söz konusu yapay zekanın olası senaryo sayısının sonsuz olduğu anlamına geldiğini ortaya koyuyor. Ayrıca böylesi bir yapay zeka, bir hedefe ulaşabilmek için çeşitli kaynakları harekete geçirebilecek yeteneğe sahip. İşte bu yetenek, işlerin daha da çıkılmaz hale gelmesine yol açıyor.İLGİLİ HABER İki Yapay Zeka Karakteri Twitch’te Canlı Yayında Birbiriyle Sohbet Ediyor Bilgisayar bilimcisi Alan Turing, 1936 yılında ilginç bir teorinin peşine düştü. Bu teori, bir bilgisayar programının sonuca ulaşamadığında duracağını mı yoksa sonsuz bir döngünün mü içine gireceğini sorguluyordu. Matematiksel çalışmalarla net bir sonuca ulaşan Turing, en azından bazı yazılımlar için böylesi bir sorunun yanıtlanamayacağını ortaya koymuştu. Haliyle süper akıllı bir yapay zeka için insanlığın sonunu getirmemesine yönelik bir komut verilebilir. Hatta yapay zeka da bu komutu uygulayabilir. Ancak matematiksel olarak bu komutun nasıl ve ne şekilde uygulanacağı hesaplanamaz. İşte süper akıllı yapay zekanın kontrol edilemeyeceğini düşündüren nedenlerden bir tanesi de bu. Konuyla ilgili açıklamalarda bulunan Iyad Rahwan, böylesi bir yapay zeka için matematiksel hesap yapılamayacak olmasının koruma algoritmasını da geçersiz kılacağını söylüyor. Öte yandan, araştırmacılara göre süper akıllı yapay zekayı kısıtlamak, korkutucu bir sonran kurtulmayı sağlayabilir. Bununla ilgili örnekler de veren bilim insanları, bu yapay zekanın internetin belirli bir bölümünü kullanmayabileceğini ya da belirli ağlardan engellenebileceğini söylüyor. Ancak bu düşünce ön plana çıktığında da süper akıllı yapay zeka kavramının bir mantığı kalmamış oluyor. Yani bu da araştırmanın bir yere bağlanmasını engelliyor. Konuyla ilgili en korkunç açıklama ise Manuel Cebrian tarafından yapıldı. Max Planck Enstitüsü bünyesinde çalışmalarını sürdüren Cebrian, üzerinde kafa yordukları şeyin belki anlamsız gelebileceğini ancak bugün bile bazı önemli görevli yerine getirebilen yapay zekalar mevcut. Ayrıca bu algoritmaları geliştiren programcılar, yapay zekanın bu önemli görevleri yerine getirmeyi nasıl öğrendiğini de tam olarak anlayabilmiş durumda değiller.
Geleceğin Fabrikası
Geleceğin Fabrikası
Yeni kurulan Everactive, 24 saat çalışan, minimum bakım gerektiren ve 20 yıldan fazla sürebilen endüstriyel sensörler geliştirdi.  Şirket sensörleri, pillerini yeniden tasarlayarak değil, tamamen ortadan kaldırarak yarattı.  Bu sistemde önemli olan; Everactive’in, veri oluşturmak için, iç mekan ışığı ve titreşimler gibi kaynaklardan enerji toplayan ultra düşük güçlü entegre devreleridir.  Sensörler, bu verileri sürekli olarak Everactive’in bulut tabanlı kontrol paneline gönderip, kullanıcılara endüstriyel IoT cihazlarının tüm gücünden yararlanmalarına yardımcı olmak için gerçek zamanlı içgörüler, analizler ve uyarılar sağlar.  Everactive Co-Chief Technology Officer David Wentzloff: “Hepsi sürekli izlemeyi destekleyen ultra düşük güçlü yongalarla sağlanıyor. Güç kaynağımız sınırsız olduğu için, pil ömründen tasarruf etmek için radyoları kapalı tutmak veya başka bir sınırlayıcı yapmak gibi takaslar yapmıyoruz.”  Everactive, çiplerinin üzerine müşterilerin çok sayıda hızla yerleştirebileceği bitmiş ürünler oluşturur.  İlk ürünü, buhar sistemlerinden kondensi serbest bırakan buhar tuzaklarını izler.  Bu tür sistemler çeşitli endüstrilerde kullanılmaktadır ve Everactive’in müşterileri arasında petrol ve gaz, kağıt ve gıda üretimi gibi sektörlerdeki şirketler bulunmaktadır.  Everactive ayrıca pilsiz çiplerinin ikinci nesli üzerinde çalışan motorlar ve pompalar gibi dönen makineleri izlemek için bir sensör geliştirdi.  Şirket, diğer sensörlerle ilişkili maliyetlerden ve kısıtlamalardan kaçınarak, geleceğin fabrikasına IoT destekli geçişte bir rol oynamak için iyi konumlandığına inanıyor. Araştırmacı Wentzloff: “Bu, tamamen bakım gerektirmeyen, pilsiz, hasat edilmiş enerjiyle çalışan ve her zaman buluta bağlı bir teknolojidir.” MIT Pillerden Kurtulmak… Araştırmacı Wentzloff ve Everactive Kurucu Ortağı ve CTO’su Benton Calhoun; MIT’de geçirdikleri zamandan başlayarak, on yıldan fazla bir süredir düşük güç devresi tasarımı üzerinde çalışıyor.  Calhoun’un araştırması düşük güçlü dijital devreler ve belleğe odaklanırken; Wentzloff ise düşük güçlü radyolara odaklandı.  Wentzloff ve Calhoun’un akademik laboratuvarları sonunda, vücut ısısından elde edilen enerjiyle çalışırken kullanıcının hareketini, sıcaklığını, nabzını ve diğer sinyalleri izleyebilen ve bu verileri bir telefona gönderebilen pilsiz bir fizyolojik monitör yarattı. 2014 yılında, orijinal adı PsiKick olan şirketi kurmak için yarı iletken endüstrisinin kıdemli ismi Brendan Richardson ile ortaklık kurdular.  Başlangıçta; kurucular sensör arayüzleri, işlem gücü, bellek ve radyo sinyalleri gibi tam bilgi işlem sistemlerinin özelliklerini içeren devre tasarımlarını yeniden tasarlamaya çalıştılar.  Ayrıca enerji hasadı mekanizmalarını ve güç yönetimi yeteneklerini dahil etmeleri gerekiyordu.  Kurucular; çiplerini şirketlere satmaya çalıştılar ve bunun üzerine çözümler geliştirdiler, ancak kısa sürede endüstrinin pilsiz çiplere yeterince aşina olmadığını anladılar.  Araştırmacı Wentzloff: “Bunun bir eğitim seviyesi var, çünkü pille çalışan çiplerle sistem tasarımını düşünmeye alışmış bir nesil mühendis var.”   Öğrenme eğrisi; kurucuların müşteriler için kendi çözümlerini oluşturmaya başlamasına yol açtı.  Bugün Everactive, sensörlerini kablosuz ağları ve veri analizini içeren daha geniş bir hizmetin parçası olarak sunuyor.  Şirketin sensörleri, küçük titreşimlerle, fabrika içindeki 100 lüks kadar loş ışıklarla ve 10 Fahrenheit derecenin altındaki ısı farklarıyla çalıştırılabilir.  Cihazlar sıcaklığı, ivmeyi, titreşimi, basıncı ve daha fazlasını algılayabilir.  Şirket, sensörlerinin çalıştırılmasının geleneksel sensörlere göre çok daha düşük maliyetli olduğunu ve binlerce pille çalışan cihazı devreye almanın getirdiği bakım sorunlarından kaçındığını söylüyor.  Örneğin Everactive, 10.000 geleneksel sensör yerleştirmenin maliyetini değerlendirdi.  Üç yıllık bir pil ömrü varsayıldığında, müşterinin her yıl ortalama 3.333 pili değiştirmesi gerekecek ve bu da günde dokuzdan fazla pil anlamına geliyor. Bir Sonraki Teknolojik Devrim  Bakım ve değiştirme maliyetlerinden tasarruf ederek, Everactive müşterileri daha fazla sensör yerleştirebilir.  Bu, bu sensörlerin neredeyse kesintisiz çalışmasıyla birleştiğinde, operasyonlara yeni bir görünürlük düzeyi getiriyor. Araştırmacı Calhoun: “Sensör kurulumlarındaki kısıtlamaların kaldırılması, genel operasyonlarınızın nasıl yürüdüğü konusunda size altıncı bir his vermeye başlar. Bu heyecan verici.  Müşteriler, sihirli bir değnekle ilgilendikleri her yerde neler olup bittiğini tam olarak bilmek ister.  On binlerce sensör yerleştirme yeteneği sizi o sihirli değneğe yaklaştırıyor. “  Everactive’in binlerce buhar kapanı sensörünün halihazırda konuşlandırılmış olmasıyla Wentzloff; motorlar ve diğer dönen makineler için sensörlerinin IoT pazarında daha da büyük bir etki yaratacağına inanıyor.  Everactive’in ikinci nesil ürünlerinin ötesinde, kurucular sensörlerinin yarı saydam, esnek ve posta pulu boyutundan birkaç yıl uzakta olduğunu söylüyorlar.  Bu noktada müşterilerin veri oluşturmaya başlamak için sensörleri makinelere yapıştırması yeterlidir.  Bu tür kurulum ve kullanım kolaylığı, fabrika zemininin çok ötesinde sonuçlar doğuracaktır.
Kalıcı Bağlantılı Veritabanı Bağlantıları (Persitent Connections)
Kalıcı Bağlantılı Veritabanı Bağlantıları (Persitent Connections)
Kalıcı bağlantılar betiğinizin çalışması bittiğinde kapanmayan bağlantılardır. Bir kalıcı bağlantı istendiğinde PHP evvelce açılmış eşdeğer bir kalıcı bağlantı var mı diye bakar ve varsa onu kullanır. Yoksa yeni bir bağlantı oluşturur. Bir 'eşdeğer' bağlantı, aynı konağa (uygulanabildiği takdirde) aynı kullanıcı adı ve parola kullanılarak açılmış bağlantıdır. HTTP sunucuları hakkında tam bilgi sahibi olmayan kişiler ne yaptıklarını bilmeden yükü yanlış kalıcı bağlantılara dağıtabilir ve bu yanlış bağlantılarla çalışabilirler. Özellikle, size aynı bağlantı üzerinde 'kullanıcı oturumları' açma olanağını, verimli hareket işlemleri kurulmasını ve başka birçok şeyi bir bütün halinde sağlamazlar. Aslında, son derece net olarak, kalıcı bağlantılar, kalıcı olmayan bağlantılarla mümkün olmayan işlevselliği size sağlayamazlar. Neden? Bu HTTP sunucusunun işi nasıl yaptığı ile ilgilidir. PHP'nin HTML sayfalarını üretmek için HTTP sunucusunu üç şekilde kullanabilir. İlk yöntem, PHP'yi bir CGI "sarmalayıcı" olarak kullanmaktır. Bu yolla, HTTP sunucusundan her PHP sayfası isteğinde PHP yorumlayıcısının yeni bir örneği oluşturulup yok edilir. Yorumlayıcı her istekten sonra yok edildiğinden kazanılan özkaynaklar da (bir SQL veritabanı bağlantısı gibi) kaybedilir. Bu durumda, kalıcı bağlantılar kullanarak da hiç bir şey kazanamazsınız; çünkü özkaynaklar kalıcı olmayacaktır. İkinci ve en çok kullanılan yöntem, PHP'yi çok süreçli bir sunucuda bir modül olarak çalıştırmaktır. Bu olanak şimdilik sadece Apache HTTP sunucusu ile mümkündür. Çok süreçli bir sunucu, işleri sayfaları sunmak olan bir çok (alt) süreci denetimi altında tutan bir ana sürece sahiptir. Bir istemciden bir istek geldiğinde, başka istemcilere hizmet sunmayan alt süreçlerden birini bu isteğe tahsis eder. Eğer aynı istemci ikinci bir istek yaparsa bu isteğe başka bir alt süreç yanıt verebilir. Kalıcı bir bağlantı açıldığında SQL hizmeti isteği yapılan her sayfa isteği SQL sunucuya tahsis edilen aynı bağlantıdan sunulur. Son yöntem, PHP'yi çok evreli bir sunucuda bir eklenti olarak kullanmaktır. PHP4 şimdilik, PHP'nin bir eklenti olarak kullanımına izin veren Netscape FastTrack (iPlanet), Microsoft's Internet Information Server (IIS) ve O'Reilly's WebSite Pro gibi çok evreli HTTP sunucularında ISAPI, WSAPI ve (Windows üzerinde) NSAPI için destek vermektedir. Davranış esas olarak ikinci yöntemde açıklanan çok süreçli yöntemle aynıdır. Kalıcı bağlantılar ek bir işlevselliğe sahip değilseler bunlar neden tercih ediliyorlar? Yanıtı oldukça basittir: Verimlilik. SQL sunucunuza bağlantı açmak çok masraflıysa kalıcı bağlantılar kurmak daha iyidir. Bu bedel gerçekte birçok sebebe bağlı olabileceği gibi olmayabilir de. Bu, veritabanının, HTTP sunucunun bulunduğu makinede olup olmamasından SQL sunucusunun makineye ne kadar yük bindirdiğine kadar geniş bir yelpazede değerlendirilebilir. Son değerlendirmede, eğer bu bedel yüksekse kalıcı bağlantıların büyük ölçüde yardımı olacaktır. SQL sunucuya yapılan her bağlantı isteğinde alt süreç sadece o sayfayı işleyeceği yerde, kalıcı bağlantı durumunda her alt sürecin ömrü boyunca bir bağlantı krmasına olanak tanınır. Yani, bir kalıcı bağlantı açmış her alt sürecin kendine ait bir kalıcı bağlantısı vardır. Örneğin, SQl sunucunuza kalıcı bağlantı açan betiğiniz 20 ayrı alt süreç çalıştırıyorsa alt süreç başına bir tane olmak 20 ayrı bağlantı var demektir. Ancak şuna dikkat edin, bağlantı sayısı sınırlı bir veritabanını bu sınırın üstünde kalıcı bağlantılarla kullanıyorsanız bunun bazı götürüleri olabilir. Eğer veritabanınız aynı anda 16 bağlantılık bir sınıra sahipse ve çok meşgul bir sunucu oturumunda 17 alt evre bağlantı açmaya çalışıyorsa biri bunu başaramayacaktır. Eğer betiğinizde (sonsuz döngü gibi durumlarda) bağlantıların kapatılmasına izin vermeyen hatalar varsa, veritabanı sadece 16 bağlantı ile hızla batağa saplanacaktır. Terkedilmiş ve boştaki bağlantıların devreye sokulması hakkında bilgi edinmek için veritabanınızın belgelerine bakınız. Uyarı Kalıcı bağlantıları kullanırken hesaba katmanız gereken bir çok yetersizlik vardır. Bunlardan biri, bir kalıcı bağlantı üzerinden tablo kilitlemesi yapıyorsanız ve betiğiniz herhangi bir şekilde kilidi serbest bırakamazsa aynı bağlantıyı kullanan sonraki betikler sonsuza kadar engellenebilir ve bunun sonucu olarak HTTP sunucunuzu veya veritabanı sunucunuzu yeniden başlatmak zorunda kalabilirsiniz. Bir diğer durumda, hareketleri (transaction) kullanırken, bir hareket bloğu tamamlanmadan betiğiniz çalışmasını bitirirse aynı bağlantıyı kullanan sonraki betiklerin işleri başlarından aşacaktır. Her durumda, tablolarınızın kilitlerini açmak ve hareketleri başa sarmak için register_shutdown_function() işlevini kullanarak bir temizlik işlevi tanımlayabilirsiniz. Daha da iyisi, tablo kilitleri veya hareket blokları kullanan betiklerde kalıcı bağlantıları kullanmayarak bu sorunlardan tamamiyle kurtulabilirsiniz. Özetle, kalıcı bağlantılar normal bağlantılarla bire bir eşleşecek şekilde tasarlanmışlardır. Yani, betiğinizin davranışını değiştirmeden kalıcı bağlantılar yerine her zaman kalıcı olmayan bağlantılar kullanabilirsiniz. Bu, muhtemelen betiğinizin verimliliğini etkileyecektir ama davranışında bir değişikliğe yol açmayacaktır! mysql_connect() ve mysql_pconnect() Analizi mysql_pconnect() is deprecated as of PHP 5.5.0, and will be removed in the future because it has several disadvantage. Major disadvantage is that mysql_close() didn't support connection created by mysql_pconnect(), connection remains open for future use. When we establish connection with mysql_pconnect() then it will search previous existing connection with same hostname, username and password.If old active connection found then it will not recreate new connection. In case of PHP most of the sites hosted with DB and PHP on same machine, so connection time is almost negligible, in that way persistant connection is useless. For Web-Request there is no need to make persistant connection, because HTTP is sateless protocol. Connection will automatically close when we refresh page, because it assumes every request as new request. Persistant connection need too much resource, that's why persistant connection is Highly Discouraged. Normally Temp Tables dropped when connection close, but persistant connection do not close so Temp tables are no more temporary.
Sql Komutları
Sql Komutları
Sql komutlarından DISTINCT, IN, NOT IN, IN(SELECT...), ANY, ALL, EXISTS, NOT EXISTS, UNION, EXCEPT, BETWEEN kullanımı DISTINCT Veritabanımızda oluşturduğumuz tablonun içinde birbirinin aynı veriler bulunabilir.Bu verilerden aynı olanların listeleme esnasında bir kez yazılması için Distinct sözcüğü kullanılır Örnek: 12 ATB sınıfında adı Burak olan öğrencilerden sıralamada ilk gelen gösterilir.  SELECT DISTINCT adFROM 12atb;   komutunu kullanınca aşağıdaki ekran gelir. IN “IN” İngilizce'de de olduğu gibi içinde anlamına gelmektedir.Veri tabanımızda sahip olduğumuz verilerden sadece istediklerimize IN sözcüğüyle ulaşabiliriz.ÖRNEK: 12 ATB sınıfında numarası 13,20,24 olan öğrenciler kimdir? SELECT *FROM 12atbWHERE no IN (13, 20, 24); NOT IN  NOT IN, IN deyiminin tam tersidir. Veri tabanımızda sahip olduğumuz verilerden istemediklerimizi NOT IN sözcüğüyle belirtiriz. ÖRNEK: 12 ATB sınıfında numarası 13,20,24 olmayan öğrenciler kimdir?  SELECT *FROM 12atbWHERE no NOT IN (13, 20, 24); BETWEEN İngilizde'de de olduğu gibi arasında anlamına gelir Veri tabanımızda belirttiğimiz aralıklarla ilişki kurulmasını sağlar.ÖRNEK: 12ATB sınıfında numarası 10 ile 25 arasında olan öğrencilerin soyadları?  SELECT *FROM 12atbWHERE no BETWEEN 10AND 25;  IN(SELECT...) IN SELECT komutunda içteki Select komutunun bulduğu sonuca IN komutunu uygulamamız için kullanılır.ÖRNEK: Kadıköyde’te oturan öğrencinin çalıştığı projelerin adlarını ve yerlerini listeleme.   SELECT proj_ad,yerFROM projeWHERE proj_no IN(SELECT proje_noFROM ogrenci,çalışmaWHERE sosy_g_no = per_s_g_noAND adres LIKE '%kadiköy%');   ANY İngilizce'de de herhangi biri anlamına gelen any komutu sql komutumuzda da herhangi biri anlamını taşır.ÖRNEK: Makine bölümünde çalışan ogrencinin her hangi birinden daha düşük not alan ve elektronik bölümündeki bulunan ogrencileri listele.Bu örnekte; makine bölümü kodu = 2 ve elektronik bölümü kodu = 1 alınmıştır.  SELECT * FROM ogrenciWHERE NOT < ANY(SELECT NOT FROM ogrenciWHERE böl_no = 2) AND böl_no =1;   ALL İngilizce'de de hepsi anlamına gelen ALL komutu sql komutumuzda da hepsi anlamını taşır.ÖRNEK: Elektronik bölümünde çalışan ve makine bölümündeki ogrencilerin hepsinden daha fazla not alan ogrencileri listele.Bu örnekte Makine bölümü kodu = 2 ve Elektronik bölümü kodu = 1 alınmıştır.  SELECT * FROM ogrenciWHERE NOT >ALL (SELECT NOTFROM ogrenciWHERE bolum_no = 1)AND bolum_no = 2; EXISTS Mevcut anlamına gelir. AND,OR,NOT operatörleri ile kullanılabilir.ÖRNEK: Mandalina satan pazarcılarla ilişkili tüm bilgileri listele.  SELECT *FROM pazarciWHERE EXISTS(SELECT *FROM mey_satWHERE sat_no = pazarci_nAND meyve =mandalina);   NOT EXISTS Mevcut değil anlamına gelir. AND,OR,NOT operatörleri ile kullanılabilir.  ÖRNEK: Mandalina satmayan pazarcılarla ilişkili tüm bilgileri listele.  SELECT *FROM pazarciWHERE NOT EXISTS(SELECT *FROM mey_satWHERE sat_no = pazarci_nAND meyve =mandalina); UNION İki ayrı SELECT komutunun sonucunda elde edilen tabloların birleşimi işlemini gerçekleştirir.ÖRNEK: Adı Sadullah ve Soyadı Abdurrahman olan kişi yada kişileri işletmenin yürüttüğü projelerde çalışan bir kişi (sıradan bir personel yada bölüm yöneticisi)olarak bulunduran projelerin isimlerini ve projelerin yürütüldüğü yerleri listele.  (SELECT proj_ad,yerFROM proj,bölüm,personelWHERE bl_no=bölüm_no ANDy_sos gno = sosy_g_noAND ad ='Sadullah' AND soyad ='Abdurrahman')UNION (SELECT proj_ad,yerFROM proje,çalışma,personelWHERE proj_no = proje_no ANDPer_s_g_no = sosy_g_no AND ad ='Sadullah'AND soyad ='Abdurrahman')   KOŞULLAR:UNION  ile birden fazla SELECT ’in sonucu olan tabloların küme birleşimi işlemine tabi tutulması için 2 koşul gereklidir.    1) SELECT komutları sonucunda elde edilecek tablolar aynı sayıda kolon içermelidirler.    2)Sonuç tabloları karşılıklı olarak kolonların aynı veri tipi ve aynı genişlikte olmalıdır. EXCEPT Birden fazla tabloda birinde olup diğerinde olmayan şeklindeki bağıntıları kurmamız için kullandığımız komuttur..ÖRNEK: Metal bölümündeki ogrenci adlarından,tesviye bölümünde bulunmayanları listele. SELECT * FROM(SELECT ad FROM ogrenciWHERE bol_no=1EXCEPTSELECT ad FROM ogrenciWHERE bol_no =2);
Sql Fonksıyonlar
Sql Fonksıyonlar
Sql fonksıyonlar, count, sum, avg, max, mın, lower, upper, length, round, mod, left, right, concat, if COUNT( ):Bir tabloda seçili olan alan içerisindeki değerleri saymak için COUNT deyimini kullanırız. Anket uygulamalarımızda, bir makale için yorum,hit sayısını belirtmede kullanabiliriz.  SELECT COUNT(evet)  AS bilgi FROM anket;  Uygulamamızda anket tablomuzda yer alan evet seçeneğini kullananların sayısını buluruz. Burada AS ifadesinide gördük. biraz açalım sorgumuzu. veritabanımızda yer alan anket tablosundan cevabı evet olanların değerini topladık ve AS komutu ile oluşturduğumuz bilgi değişkenine aktardık.   SUM( ) : Belirtilen kolondaki kayıtların değerlerinin Sayısal toplamını bulur.Örnek: SELECT SUM(basari) FROM notlar; Öğrencilerin başarı notlarının toplamını ekrana verecektir.   AVG :Belirlenen bir alan içerisindeki verilerin aritmetik ortalamasını alır.  SELECT AVG(kolon_adı) FROM tablo;  Örnek :Aylık ödenen ücret ortalamasını bulmak istersek ;  SELECT AVG(aylik_ucret) FROM ucretler;   MAX:Tabloda seçtiğimiz alanda en yüksek sayısal değeri almak için MAX komutunu kullanırız.  SELECT MAX(yas) FROM uyeler GROUP BY ad; sorgumuzda uyeler tablosunda yaşı en büyük olan üyelerimizi bulabiliriz.   GROUP BY Deyimini kullandık bu ise bulduğumuz değerleri adlarına göre grupladık.   MIN:MIN komutuda MAX komutunun tam tersi olarak seçtiğimiz alandaki en düşük sayısal değeri bulmamıza yarar.  SELECT MIN(yas) FROM uyeler GROUP BY kullanici_adi; sorgumuzda uyeler yablosunda yaşı en küçük olan üyelerimizi bulabiliriz. GROUP BY deyimi ile de değerlerimizi kullanıcı adına göre gruplarız.   LOWER( ):Belirli alan içindeki verileri küçük harfe çevirir.  SELECT LOWER('text');   UPPER( ): Text olarak belirtilen alanı büyük harfe çevirir. SELECT UPPER('text');   LENGTH: Yazıda boşluklar dahil, kaç karakter olduğunu verir.  lenght('ahmet mehmet veli') "Toplam Karakter"Toplam Karakter ... 17   ROUND:Belirlenen alandaki sayının virgülden sonraki kısmının yuvarlatılmasını sağlar.  ROUND(45.923,2) -->45.92   MOD: İki sayısal değerin bölümünden kalanı verir.  mod(13,5) 3
Veri Tabanlarında Anahtar Kavramı Birincil Ve Yabancı Anahtar (İkincil Anahtar) Kavramı
Veri Tabanlarında Anahtar Kavramı Birincil Ve Yabancı Anahtar (İkincil Anahtar) Kavramı
Veri tabanlarında anahtar kavramı birincil ve ikincil ve yabancı anahtar. Anahtarlar Bir anahtar bir tabloda özel bir sütundur. Bazı tuşları arama ve indeksleme için kullanılır, diğer ilgili tablolar veya benzersiz bir kayıt bağlantısı tanımlamak için kullanılır. Bir veritabanı tablosu bir birincil anahtar veya dizin olmadan kullanılamaz. Aşağıda veritabanlarında kullanılan anahtar türleri hakkında bilgiler bulabilirsininiz. Bu anahtarlar birincil anahtar, yabancı anahtar ve dizin olarak anlandırılırlar. Birincil Anahtar (Primary Key) Birincil anahtar amacı benzersiz bir tabloda her bir kayıtı ayrı ayrı belirlemektir. Genel olarak, birincil anahtar tek bir sütun üzerinde tanımlıdır ve iki sütun üzerinde tanımlı olması mümkün değildir. Üç temel kural birincil anahtarları tanımlayan özelliktir: *Her kayıtın birincil anahtarında bir değer olması gerekir. O boş olamaz.*Birincil anahtar değerleri benzersiz olmalıdır.*Birincil anahtar değerleri yenilenen olmamalıdır. Eğer yenileme olursa bir kayıt silindiğinde bu hata ve karışıklık yaratabilir, bu yüzden birincil anahtar başka bir kayıt yeniden atanınca yinelenen olmamalıdır. Yabancı (İkincil) Anahtar (Forein Key) Bir yabancı anahtar bir alanı (veya hedef olarak başvurulan bir tablodan) başka bir tabloda belirli bir anahtar yerine birincil anahtarı gösteren kolonlardır. Bu ilgili tabloları mantıklı bilgilerle ilişkilendiren bir yoludur. Örneğin, ürün tablosunda  başvuran birincil anahtar alanı üreticiler tablosunda bir yabancı anahtar içerir. Bu şekilde, her ürün - dış kilit noktaları ilişkili bir üreticisi var olur. Unutmayın ki yabancı anahtar genellikle benzersiz değidir ancak başvurulan alanı başvurulan tabloda (birincil anahtar) gösterir. Örneğin, CD çalar ve televizyon ACME şirketi tarafından üretilmektedir, bu nedenle her iki kayıtta aynı yabancı anahtar değeri ayarlanır. Yani üretici tablosundaki ACME değerine. Yukardaki şekilde tablolardaki primary ve forein keyler belirtilmişlerdir. PK ve FK olarak. Benzersiz anahtar (Uniquie Key) Benzersiz anahtar iki aynı değerleri sahip olmayan sütun olarak tanımlanır. Benzersiz anahtar sütunları boş değerler içeremez. Bir tablo içinde birden çok benzersiz anahtar veya benzersiz anahtarlar sütunu olabilir. Örneğin, üretici adı alanına önceki örnekten benzersiz bir anahtar tanımlamak isteyebilirsiniz. Bu şekilde, bu başvuru kullanıcıları ACME şirket için iki ayrı kayıt yaratmaz.
Veri Tabanlarında Anahtar Kavramı Birincil Ve İkincil Anahtar
Veri Tabanlarında Anahtar Kavramı Birincil Ve İkincil Anahtar
Veri tabanlarında anahtar kavramı birincil ve ikincil anahtar Anahtar (Key) Anahtar bir veya birden fazla alanın bir satır için niteleyici olarak girilmesi için tanımlanan özel bir çeşit zorlayıcıdır. Tekrarlamayacak bir anahtar alan tanımlandığında, bu anahtar alana birincil anahtar alan denir. Primary Key, Unique Key ve Foreign Key olmak üzere 3 çeşit anahtar vardır. Primary Key (Birincil Anahtar) : Bir tablodaki, her bir satırın yerine vekil olabilecek bir anahtar veridir. Tabloda bu alana ait bilginin tekrarlanmaması gerekir. Standart olarak bir tabloda verilerin, fiziksel hafıza üstünde de hangi alana göre dizileceğini de primary key belirler. Bu, bazen bir tek alan olabileceği gibi, bazen birden fazla alan da birleşerek bir birincil anahtar oluşturabilir. Örneğin programda personelin sicil numarası alanına göre aramalar yapılacaksa Primary key personelsicil numarası olmalıdır. Personelin ad ve soyadına göre aramalar yapılacaksa ad ve soyad alanları birleştirilerek iki alandan tek anahtar alan tanımlaması yapılır. Unique Key(Tekil Anahtar): Unique Key olarak tanımlanan alan için bir değer sadece bir kere girilebilir. Bir başka satıra daha aynı verinin girilmesine izin verilmez. Primary Key ’den farklı olarak Unique Key, NULL (boşluk) değerini alabilir. Örneğin programda her personele ait bir sicil numarası olacağı için bu alan Unique key olarak tanımlanabilir. Ama isim alanı birden fazla aynı isme sahip personel olabileceği için bir Unique key olarak tanımlanamaz. Ali isimli birden fazla personel olabileceği gibi. Foreign Key (Yabancı Anahtar) : İkincil anahtarın bir diğer adı yabancı anahtardır.  Bir tabloya girilebilecek değerleri başka bir tablonun belli bir alanında yer alabilecek veri grubu ile sınırlandırmaya ve en önemlisi de ilişkilendirmeye yarar. Yani hem veri tekrarının önüne geçmek, hem de daha sonradan yapılan güncellemelerde ilgili verilerin her yerde güncellenmesini sağlamaktır.  Örneğin, olmayan bir kitabın ödünç tablosuna eklenememesi ve ödünç tablosuna eklenen bir kitabın numarası aracılığıyla detay bilgilerine erişilmesi gibi. Burada Kitap.KitapNo birincil anahtar alan; Odunc.kitapNo ise yabancı anahtardır.
Veri Tabanında İlişki Türleri
Veri Tabanında İlişki Türleri
Veri Tabanı İlişki Türleri İlişkiler Nasıl Çalışır? İlişkiler  genellikle, her iki tablonun aynı adlı alanları olan, anahtar alanlardaki verilerin eşleştirilmesiyle çalışır.(Ortak alan isimleri farklıda olabilir.)  Çoğu durumda, bu eşleştirme alanları, bir tablodan her kayıt için benzersiz bir tanımlayıcı sunan Birincil Anahtar (PK) ve diğer tablodaki Yabancı Anahtar (FK) dır.  İlişki Türleri Bir-Çok İlişkisi Çok-Çok İlişkisi Bir-Bir İlişkisi 1)Bir-Çok İlişkisi (İlişkisel Veritabanı Tasarımı) İlişkisel Veri Tabanlarında en çok kullanılan ilişki türü, Bir–Çok İlişkisi’dir. Bir–Çok İlişkisinde, “A” Tablosundaki bir kayıt, “B” tablosunda pek ÇOK eşleşen kayda sahiptir. Ancak “B” Tablosundaki kayıt, “A” Tablosunda yalnızca BİR eşleşen kayda sahiptir. Örneğin; Bir Yazar, birden ÇOK kitap yazabilir. ancak her kitabın yalnızca BİR Yazarı vardır. Birden çoğa ilişkide bir tablodaki anahtar ilişkili olduğu tabloda birden çok kez olabilir. Şekille gösterelim:  Yukarıdaki şekilde bir karikatürcünün birden fazla karikatüre sahip olabileceğini çıkartabiliriz. Çünkü Karikatür tablosunda ilişkili olduğu tablonun anahtarı bulunuyor (Foreign Key). Bu ilişki türü en çok karşılaşılan ilişki türüdür. 2) Çok – Çok İlişkisi (İlişkisel Veritabanı Tasarımı) Çok–Çok İlişkisinde, “A” Tablosundaki bir kayıt, “B” tablosunda bulunan pek ÇOK kayıtla eşleşebilir. Ve “B” Tablosundaki bir kayıt, “A” Tablosunda bulunan pek ÇOK kayıtla eşleşebilir. Bu tür bir ilişki, birincil anahtarın birden fazla alanı içerdiği, birleşme tablosu olarak adlandırılan, A ve B Tablolarından gelen yabancı anahtarların yer aldığı üçüncü bir tablonun tanımlanması koşuluyla mümkündür. Çoktan çoğa ilişikiler karmaşıklığı nedeniyle veritabanında bir çok soruna neden oldur. Soruna neden temek olarak şudur Bir tablodaki anahtar ilişkili olduğu tabloda birden çok kez olabilirken karşıtı da doğrudur.Bu yüzden istenilen ilişkiselliği sağlamak için ilişkiyi birden çoğa indirgemek gerekir. Yani araya fazladan bir tablo koyarak karmaşıklıktan kurtulmuş oluruz. Örneğin; Bir futbolcu birden fazla takımda oynayabilirken aynı takım birden fazla oyuncu oynatabilir olduğunu varsayalım. Öncelikle Futbolcular ve Takımlar adında aşağıdaki şekildeki gibi iki tane tablo oluşturalım: Anahtarı ilişkisel olduğu tabloya Foreign Key ( Komşu Anahtar) ekleyerek çoktan çoğa ilişkiyi sağlamak düşünürseniz mümkün değil.Bu yüzden araya aşağıdaki gibi bir tablo ekleyelim:     Böylece hedefi tam 12'den vuracak şekilde ilişkisel veritabanı tasarımını yapmış olduk. Çoktan çoğa ilişkiyi birden çoğa indirgediğimiz için iki tane birden çoğa ilişki elde ettik yine bu sebepten iki tane FK (Foreign Key) ortaya çıktı. Dolayısıyla SQL sorgusu iki adet olacak. Birincisi bir futbolcunun oynadığı takımlar, ikicisi ise bir takımda oynayan futbolcular olacak. 3)Bir-Bir İlişkisi (İlişkisel Veritabanı Tasarımı) Bir-Bir İlişkisi'nde, Tablo A'da Tablo B'deki her kayıtla eşleşen yalnızca BİR kayıt ve Tablo B'de Tablo A'daki her kayıtla eşleşen sadece BİR kayıt olabilir. Bu şekilde ilişkili olan çoğu bilgi tek bir tabloda olacağından, bu tür ilişki yaygın değildir. Güvenlik nedenleriyle tablonun bir bölümünü yalıtmak veya ana tablonun yalnızca bir alt kümesiyle ilgili bilgileri saklamak üzere, birçok alan içeren bir tabloyu bölmek için Bir-Bir İlişkisi kullanabilirsiniz. Örneğin; Fon toplamak amacıyla oynanan bir futbol oyununa katılan Çalışanların bilgilerini izlemek için bir Tablo oluşturmak isteyebilirsiniz. Çalışanlar Tablosunda, Futbolcular Tablosundaki her futbolcuyla eşleşen bir kayıt vardır. Çalışanlar Tablosunda her Futbolcuyla eşleşen BİR kayıt vardır.  Bu değer kümesi, ÇalışanNo alanının ve Çalışanlar Tablosu-nun bir alt kümesidir. Kural basitir ; tablodaki anahtar ilişkili tabloda sadece bir tane olabilir. Yukarıdaki şekilde öğrenciler ve Liseler adında iki tablo var. Öğrencinin mezun olduğu lise bir tane olacağını düşünürsek şekildeki ilişki türü buna uygundur. Öğrenciler tablosundaki Mezun_Lise_Id alanı ile ilişkili tabloyla alakalı Lise_Id alanı eşleştirilerek ilişki sağlanmış olunuyor.