sqlite veritaban programlama n.
Skip this Video
Loading SlideShow in 5 Seconds..
SQLite Veritabanı Programlama PowerPoint Presentation
SQLite Veritabanı Programlama

SQLite Veritabanı Programlama

20 Views
- - - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript

  1. SQLiteVeritabanı Programlama www.cihanozhan.com

  2. Bu video kurs kimlere hitap ediyor? • Veritabanı teknolojilerine ve programlamaya yeni başlayanlar… • Liselerin veritabanı ve üniversitelerin ilgili bölümlerinde okuyanlar… • Yazılım yeteneklerine veritabanını eklemek isteyenler… • Veritabanı teknolojilerini kariyer hedefi olarak belirleyenler… • Farklı bir veritabanını bilen ama SQLite’i de öğrenmek isteyenler… • Veritabanı ve SQLite alanlarında yeni bir bakış açısı kazanmak isteyenler… • Düşük donanım(HDD, RAM vb.) kaynaklarına sahip cihazlarda veritabanı ihtiyaçları konusunda uzmanlaşmak için…

  3. Bu video kurs kimlere hitap ediyor? • Veritabanı Programcıları/Yöneticileri • Sistem/Masaüstü/Gömülü Sistem Yazılım Geliştiricileri • Nesnelerin İnterneti(IoT) Geliştiricileri • Televizyon, Oyun Konsolu, Kameralar, Akıllı Saat ve Giyilebilir Elbiseler • Termostat, Mutfak Eşyaları, Otomobiller, Uçaklar(Hobi ve Gerçek), Drone’lar, Sensörler • Medikal Araçlar ve Robotik… • Web Yazılım Geliştiricileri • Mobil Yazılım Geliştiricileri • Mobil Oyun Yazılım Geliştiricileri • Yedek, Oyuncu/Karakter/İşlem ve uygulama logları • Veri Analizi • CacheBellek

  4. Nasıl çalışmalıyız? Maksimum Fayda Sağlamak! • Hiçbir teknoloji ‘izleyerek’ ya da ‘okuyarak’ öğrenilmez! Ellerini kirlet! • Tek bir bilgi kaynağından beslenilmez! Kaynaklarını çeşitlendir! • Araştırmacı ol! • Önce araştır, sonra sor! • Belirli kaynakları düzenli takip listene al! • Hatalara karşı sabırlı ve dirençli ol! Kendini sorunlarla yüzleşmeye hazırla! • Günlük çalışma hedefleri belirle ve eğitimlere bölümler halinde odaklan! • Bir kişisel blog sitesine sahip ol ve düzenliolarakyaz! • İnternet ve sosyal medyayı hedeflerin için kullanmayı öğren! • Youtube, Facebook, Medium, Twitter, Linkedin, StackOverflow, Github, Blogsvb… • Hazır olarak verilenleri sadece bir rehber olarak gör ve sınırlarını zorla! • Hiçbir zaman mevcut bilgi ile yetinme… • Rotasız gemi olmaz. Bir hedef belirle! • Motivasyonunu her an diri tut! Kendini motive edemeyen başarıya ulaşamaz!

  5. Kurslar, Kitaplar ve Eğitim Üzerine… • Eğitim materyalleri size sadece yol gösterebilir, eğitemez! • Uzmanlaşmak için odaklandığın alanla ilgili en az 3K(aynak) kuralını uygula. • K.1 : 3 adet kaliteli video kurs • K.2 : 3 adet kaliteli kitap • K.3 : 3 uzman kişiyi(yerli ve yabancı) yakın takip ve iletişim. • İlgi alanıyla ilgili konuları araştırırken asla tek bir kaynağa bağlı kalma! • Tıpkı diğer gelir kaynakların gibi… Bilgi en değerli gelir kaynağıdır! • İzlemek ve okumak teori, pratik yapmak ise özgüven ve tecrübe kazandırır. • «Pratik yapmak mükemmelleştirir» "Birisine bir şey öğretemezsiniz, ancak kendisinin onu keşfetmesine yardım edebilirsiniz." {Galileo Galilei}

  6. Kurs sonu hedeflemesi • Veritabanının ne olduğunu gerçek anlamda BİLMEK! • Veritabanı terminolojilerini ve kültürünü anlamak! • SQL ile diğer SQL içeren dillerin farkını bilerek veritabanı programlayabilmek! • Temel SQL kullanımlarını doğru bakış açılarıyla anlamak! • SQLite ile bir veritabanı oluşturup bunu uygulama geliştirme seviyesine kadar kullanabiliyor olmak! • Birden fazla tablo içerisinde karmaşık SQLite sorgularını ANLAYARAK oluşturabilmek. • Bir SQLiteveritabanının nasıl yedeklenmesi gerektiğini ve nasıl yapılacağını bilmek! • Bazı orta seviye ve üzeri seviyeye sahip SQLite sorgu ve tekniklerini kullanarak uygulamaları daha profesyonel hale getirmek! • SQLiteveritabanı ile nasıl uygulama geliştirebilirim sorusunun cevabını C#, Node.js ve Go gibi üç farklı ve güçlü platform/dil ile cevaplayabilmek! • İleri seviye veritabanı programlama bilgileri için doğru ve sağlam bir alt yapı oluşturabilmek!

  7. Kurs sonu hedeflemesi (devam) • SQLite kurulumu ve kullanımı • SQLite veri tipleri ve kullanımı • SQLite’a bir veritabanı ekleme, komut satırı ve IDE ile kullanımı • Veritabanı/tablo oluşturma ve yönetimi • Temel SQLite 3 komutları • SQLite üzerinde CRUD operasyonları • JOIN operasyonları • SQL fonksiyonları : Aggregate, … • SubQuery, View ve daha birçok işlevsel SQLite SQL operasyonları • SQLite üzerine transaction ve triggerkullanımı

  8. Veritabanı teknolojileri üzerine hedeflere sahipsin! • Neden veritabanı teknolojilerini seçtiğini GERÇEKTEN biliyor musun? • Veritabanı programcısı mı yoksa veritabanıDBA mi? Sen hangisi olacaksın? • Günümüzde veritabanı teknolojilerinin kapsamına dair… • RDBMS ve NoSQL çözümlerine bakış… • Veritabanı teknolojilerinin Cloud Computing ile ilişkisi ve önemi. • Veriye donanımsal bir bakış… • Yapay zeka ve otonom sistemlerin veritabanı teknolojileriyle ilişkisine dair… • ZORLU ama bir o kadar da KALİTELİ bir yola giriyorsun… • Kimse kaliteli bir uzman olmanın kolay olduğunu söylemedi… • Pes etme ve disiplinden asla vazgeçmeden düzenli olarak çalışmaya devam et…

  9. Bir hata ile karşılaştım! Bir şeyler yanlış… • Yazılım Dünyası==Hatalar Dünyası • Özet olarak yazılımcı kime denir?(Sorun çözen insan…) • Profesyonel yazılımcılar neden sabırlıdır? • Bahaneler! İyi anlatamıyor… Kitap da yetersiz! Yazar iyi açıklayamıyor… • Kendine odaklanmak ve hatalarını görebilmek… • Okuma makinesiolmak!Kitaplar, makaleler, dökümanlar üzerine… • Arama motorlarına hakim olmak! • Sormadan önce araştırma kültürünü benimsemek! • Çözülen bir hatayı internet üzerinden paylaşma kültürüne sahip olmak! • Hatalardan öğrenmek…

  10. Veritabanı Terminoloji ve Teknolojilerine Genel Bakış www.cihanozhan.com

  11. Veri ve Bilgi Nedir? • Veri • Veri(ing. ve lat.datum; ç. data), ham(işlenmemiş) gerçek enformasyon parçacığına verilen isimdir. Veriler ölçüm, sayım, deney, gözlem ya da araştırma yolu ile elde edilmektedir. (https://tr.wikipedia.org/wiki/Veri) • Bilgi • Toplanan verilerin işlenmesi sonucunda ortaya çıkananlamlandırılmışveri bütünüdür.

  12. Veritabanı Nedir? • Birbiriyle ilişkili ya da ilişkisiz verilerin belirli bir düzen içerisinde depolandığı özel yazılımlardır. • Ticari bir veritabanı yazılımı en temel seviyede ANSI-SQL standardını desteklemek zorundadır. • Veritabanlarındaki veriler sorgulanabilir, değiştirilebilir ve silinebilirlerdir. • Veritabanı veriyi disk üzerinde tutar. Yani veriler bilgisayara kayıtlıdır. Ancak bunlar normal dosya formatında olmadığı için kullanıcılar tarafından bu verilere erişilemez. Bu verilere sadece ilgili veritabanı yazılımının SQL motoru tarafından erişilebilir. • Bir veritabanı sistemi kendi SQL sorgu betiğiyle sorgulanabileceği gibi, dış sistemlere entegre amacıyla geliştirilen erişim araçlarıyla(driver) da sorgulanabilir. • Bir veritabanı programlarken en temel nesnelerden birisi connection’dır. Bu bağlantı nesnesi sayesinde veritabanı motoruna erişim iznine sahip oluruz. Bu bir sorgu editörü de olabilir, harici ve kendi geliştirdiğiniz bir uygulama da olabilir. Hepsi veritabanı motoru üzerinde bir bağlantı açar ve tüm işlemler bu bağlantı üzerinden yönetilir.

  13. Standart SQLve Diğer SQL’ler Arasındaki Farklar • SQL ve SQL Standardı Nedir? • Diğer SQL türleri… • SQL Server :Transact-SQL (T-SQL) • Oracle :Procedurel SQL (PL/SQL) • PostgreSQL : PL/pgSQL Kaynaklar : - Kaynak 1 (X) - ANSI (X)

  14. Veritabanı Teknolojileri ÜzerineHangisiveNe zaman? • PostgreSQL • SQL Server • Oracle • MySQL • NoSQL çözümleri… • Diğerleri…

  15. Veritabanı Programcılığı • Veritabanı Programcısı Kimdir ve Ne İş Yapar? • Veritabanı Programcısı Hangi Teknolojileri Bilmelidir? • SQL, *SQL, Araçlar, Programlama Dili, Database Cloudvb…

  16. Veritabanı Yöneticiliği • Veritabanı Yöneticisi Kimdir ve Ne İş Yapar? • Veritabanı Yöneticisi Hangi Teknolojileri Bilmelidir? • SQL, *SQL, Araçlar, Programlama Dili, Database Cloudvb…

  17. Diğer Terminolojiler Üzerine… • Veri Analizi • Okumalık (X) • Raporlama • Okumalık (X) • İş Zekası • Okumalık (X) • BigData • Okumalık (X) • Veri Mühendisi • Okumalık (X) • Veri Bilimi • Okumalık (X) • Machine Learning & ArtificialIntelligence • Okumalık (X1, X2, X3, X4)

  18. Hangi Veritabanı Teknolojisinde Uzmanlaşmalıyım? • Hedefin nedir ve neden? (Kurumsal DB, Web geliştirici, mobil vb…) • Eğer sadece veritabanı alanında uzmanlaşmak istiyorsan… • Eğer açık kaynak kültürü içerisinde ilerlemek istiyorsan… • Eğer kurumsal proje kültürü içerisinde ilerlemek istiyorsan… • Eğer web & API odaklı ilerlemek istiyorsan… • Eğer mobil uygulama odaklı ilerlemek istiyorsan… • Eğer back-end geliştirici olmak istiyorsan…

  19. SQLiteVeritabanına Genel Bakış www.cihanozhan.com

  20. SQLite Nedir ve Neden SQLite? • Self-contained DB : RDBMS sağlayan bir yazılım kütüphanesidir. • Oracle, SQL Server, MySQL vb. gibi bir RDBMS değildir. • 19 yıldır birkaç akademisyen tarafından ANSI-C ile geliştiriliyor. • SQLite tek bir dosyadan oluşur. • Open Source • SQLiteserverless’dır. Herhangi bir veritabanı sunucusuna ihtiyaç duymaz. • Full-featured SQL • Zero-configuration • Transactional • ACID • Geniş yelpazeye yayılmış cihazlarda kullanılabilir • Gömülü Sistemler/IoT Cihazlar • Akıllı Ev/Otomobil, G.Teknolojiler(Saat, Elbise vb.), Uçaklar, Drone’lar, Robotlar, Endüstri • Web Siteleri, Cache Bellek, Veri Aktarım Dosyası

  21. Serverless Ne Demektir?

  22. Serverless Ne Demektir?

  23. SQLite Limitleri • Her SQLiteveritabanı dosyası 1+ eşzamanlı yazıcı ve sınırsız sayıda okuyucuya izin verir. • JOIN’ler için 64 farklı yol mevcut. • 1GB metinsel ve/ya da BLOB içerik kapasitesi (perrow) • 140TB (perdatabase) • 125 veritabanı (perconnection) • 2000 sütun (pertableorperindex) • Tablo, Indeks ya da satır sayılarında bir sınırlama yok

  24. SQLiteNe Zaman Tercih Edilebilir/Edilmez? • Veriye uzaktan erişim sağlanması gerekiyorsa. (-) • BigData amacıyla oluşturulan büyük çaplı veri işlemlerinde (-) • Çok fazla sayıda eş zamanlı yazıcı varsa (-) • Yukarıdaki eksi(-) ile işaretlenen durumlar haricinde tercih edilebilir.

  25. SQLite Kullanıcıları • Her Windows 10 bilgisayarlarında • Her Android telefon ve cihazında • Her iPhone ve iOS cihazlarında • Her MAC bilgisayarlarında • Her Firefox, Chrome ve Safari tarayıcılarında • Her iTunes, Skype, Dropbox ve QuickBooks uygulamasında • Çeşitli TV setleri ve kablolu yayın kutularında • Birçok otomobil multimedya sistemlerinde • AdobeLightroom • MicroStation • Airbus A350 Airframe

  26. SQLite Veritabanı Ortam Hazırlıkları www.cihanozhan.com

  27. Resmi Website İncelemesi • https://www.sqlite.org/ • https://www.sqlite.org/features.html

  28. SQLiteKurulum Öncesi Operasyonlar • https://www.sqlite.org/download.html

  29. SQLite Araçları • SQLite self-tools • CLI Shell • Geliştirme Editörleri • SQLiteBrowser (https://sqlitebrowser.org/) • SQLiteStudio (https://sqlitestudio.pl/)

  30. SQLiteCommand-LineInterface • SQLite altyapısını yönetmek için geliştirilen komut satırı aracıdır. • SQLite CLI ile tüm veritabanı yönetim işlemleri yapılabilir. • Veritabanı oluşturma, değiştirme ve yönetmek • Tüm veritabanlarına erişim ve üzerinde SQL sorgusu çalıştırmak • Import/Export işlemleri gerçekleştirmek

  31. SQLite AracıSQLiteStudio ve SQLiteBrowser • SQLite için geliştirilen bir yönetim aracı • Açık kaynaklı ve ücretsiz • Taşınabilir : Kurulum gerektirmez • Güçlü, yine de hafif ve hızlı • Cross-Platform : Farklı işletim sistemlerinde kullanılabilir • Veriyi birçok veri formatında import/export yeteneklerine sahip

  32. Örnek Veritabanı Yapısını İncelemek Chinook

  33. Örnek Veritabanı Hazırlıkları • chinookVeritabanını Kullanıma Hazır Hale Getirmek • chinookVeritabanıTablo Yapısını İncelemek

  34. SQLite’a Bağlanmak • SQLite CLI ile Veritabanına Bağlanmak ve Sorgu Çalıştırmak • SQLiteBrowser ile Veritabanına Bağlanmak ve Sorgu Çalıştırmak • SQLiteStudio ile Veritabanına Bağlanmak ve Sorgu Çalıştırmak

  35. SQLite SQL Programlama Temelleri www.cihanozhan.com

  36. Veri Tipleri • NULL • NULL değeri temsil eder. • INTEGER • Bu değer işaretli INTEGER’dır. • Değerin büyüklüğüne bağlı olarak 1, 2, 3, 4, 5, 6 ya da 8 baytlık veri depolar. • REAL • Bu noktalı bir sayı değeridir. 8 baytlık IEEE veri depolar. • TEXT • Metinsel bir değerdir. UTF-8, UTF-16BE ya da UTF-16LE depolar. • BLOB(BinaryLarge Object) • Resim, müzik, dosya, doküman(doc, pdf vb.) gibi dosyalar için kullanılır.

  37. Temel SQL SELECT Operasyonları • SELECT ile Tablodaki Tüm Veriyi Elde Etmek • Metin Birleştirme ve Takma İsim Kullanımı • SELECT ile Veri Filtrelemek • Veri Tekilleştirmek • SELECT ile Veri Sıralamak ( ASC / DESC ) • Karşılaştırma Yaparak Veri Filtreleme : LIKE & Joker Karakterleri

  38. Operatörler • Aritmetik Operatörler • Atama Operatörü • Metin Birleştirme Operatörü • Karşılaştırma Operatörleri • Mantıksal Operatörler • AND • BETWEEN • EXISTS • IN & NOT IN • LIKE • GLOB • NOT • OR • IS NULL • IS & IS NOT • || • UNIQUE

  39. Veri İşleme Dili www.cihanozhan.com

  40. Veri İşleme Dili Nedir? • Verileri işlemek için kullanılan SQL sorgular bütününe denir. • SELECT, INSERT, UPDATE ve DELETE sorgularını içerir. • İngilizce karşılığı Data ManipulationLanguage olduğu için kısaca DML olarak isimlendirilir. Temel Açıklamalar • SELECT : Veri seçme/çekme amacıyla kullanılır. • INSERT : Veri ekleme amacıyla kullanılır. • UPDATE : Veri güncelleme amacıyla kullanılır. • DELETE : Veri silme amacıyla kullanılır.

  41. Veri Tanımlama Dili www.cihanozhan.com

  42. Veri Tanımlama Dili Nedir? • Veriler için gerekli olan nesnelerin tanımlanması için kullanılan komut kümesidir. • CREATE, ALTER ve DROP komutlarını içerir. • İngilizce karşılığı Data Definition Language olduğu için kısaca DDL olarak isimlendirilir. Temel Açıklamalar : • CREATE :Veritabanında nesne oluşturmak için kullanılır. • ALTER : Mevcut bir nesnenin yapısını değiştirmek için kullanılır. • DROP :Bir nesneyi silmek için kullanılır.

  43. CREATE ile Nesne Oluşturmak • Tablespace Oluşturmak • Veritabanı Oluşturmak • Tablo Oluşturmak • Otomatik Artan Sütunlu Tablo Oluşturmak

  44. ALTER ile Nesne Değiştirmek • ALTER ile Veritabanı Yapısını Değiştirmek • ALTER ile Tablo Yapısını Değiştirmek • Tablonun Adını Değiştirmek • Tabloya Yeni Sütun/lar Eklemek • Tablodaki Sütun/ları Silmek • Tablodaki Sütunun Veri Tipini Değiştirmek

  45. DROP ile Nesne Silmek • DROP ile Tablo Silmek • DROP ile Veritabanı Silmek

  46. Veri Bütünlüğü www.cihanozhan.com

  47. Veri Bütünlüğü Nedir? • En temel ifade ile, veritabanındaki verilerin hafif,düzenli, temiz ve tutarlı olmasını sağlayan süreçler bütünüdür. • İngilizce karşılığı Data Integrity’dir. • Verinin yaşam döngüsünün sağlıklı olmasını sağlar. • Bankaların moneytransaction yapısı iyi bir örnektir. • Bir veritabanındatekrar eden veri olmamalıdır. • Nesne ilişkilendirmeleri doğru yapılmalıdır. • Veri kısıtlamaları doğru yapılmalıdır. (Kısıtlamalar bir sonraki derste…) • Veri bütünlüğü, veri bozulmasının tam tersidir. (Veri kaybı…) • Veri bütünlüğünün veri güvenliği ya da kullanıcı yetkilendirme gibi disiplinlerle doğrudan bir ilişkisi yoktur. • Güvenlik ve donanımsal hatalarla dolaylı olarak ilişkili olabilir.

  48. Kısıtlama Nedir? • Veritabanına veri ekleme, güncelleme ve silme gibi veri odaklı işlemler üzerinde çeşitli programatik kontrol kuralları oluşturabilmemizi sağlar. • CHECK, UNIQUE ve NOT NULL gibi kısıtlama tür ve nesneleri vardır. • Kısıtlamalar veri bütünlüğü prensiplerinin uygulanabilmesi için kullanılan SQL komutlarıdır. Kısıtlamalar olmadan veri bütünlüğü garanti edilmesi oldukça zordur. İmkansız olmasa da... • Kısıtlamalar, veri ile işlemi gerçekleştiren process arasında bir kontrolcü görevi görür. Bu nedenle kısıtlama olmadan yapılan işleme göre daha düşük performans gösterebilir. • Yüksek veri tutarlılığı, yüksek güvenlik ve yüksek performans aynı anda zirveye çıkarılamaz! Uygulama mimarisinin önceliklerine göre bu tür yeteneklerin kullanılıp kullanılmayacağına karar verilir ve mimari ona göre tasarlanır.

  49. CHECKConstraint • Bir veritabanı tablosu üzerinde gerçekleşen INSERT ve UPDATE işlemlerinde verinin kontrol edilmesi ve şart oluşturulmasını sağlar. • Sadece belirli şartlara uyan verilerin tabloya yazılması için kullanılır. • Örn : Doğum ya da ölüm tarihi bilgisi yarın olamaz. • Örn: İşten ayrılma tarihiniz yarın olamaz. • Örn : 18 yaş sınırı olan bir sistemde kullanıcının doğum tarihi hesaplanınca 17 çıkamaz. • Örn : TC.Kimlik No bilgisi 11 haneden az ya da fazla olamaz.

  50. UNIQUEConstraint • Veritabanı tablosundaki verilerin benzersizliğini garanti etmek için kullanılır. • Teknik ve teorik olarak aynı ada sahip birden fazla kullanıcı olabilir. Ancak birden fazla kullanıcı aynı email adresini kullanamaz. Benzersiz olmalıdır. • Örn : Otomobil markalarının bulunduğu bir tabloda iki adet BMW olamaz. • Örn : Kullanıcı bilgilerinin tutulduğu tabloda ID bilgisi benzersiz olmalıdır. • Örn : URL olarak kullanılan bir hash bilgisi benzersiz olmalıdır. • Example : https://www.youtube.com/watch?v=PQY2U4w5r77