Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/teknoloji-filozofu/veri_tabani

Veri tabanlarını açıklayan ve örnekler veren repo
https://github.com/teknoloji-filozofu/veri_tabani

Last synced: 8 days ago
JSON representation

Veri tabanlarını açıklayan ve örnekler veren repo

Awesome Lists containing this project

README

        

### Veri Tabanı (Database) nedir ?

**Veri tabanı, birbirleriyle ilişkili bilgilerin depolandığı alana verilen addır.** Bilgi artış hızının artması ile birlikte bilgisayarlarda bilgi depolama ve bilgiye erişim konularında yeni yöntemlere ihtiyaç doğmuştur. Bu ihtiyaç açığını kapamak amacı ile veri tabanı oluşturulmuştur.  Bilgisayarda bilgilerin kategorize edilerek depolandığı alandır. Bilgilerin uygun şekilde kaydedilmesini ve güncellemesini yapar. Database de denilmektedir.

Veri tabanı örneği olarak cep telefonlarının kişi rehberi, internet sitelerindeki üyelik işlemleri, üniversitelerin tez yönetim sistemleri verilebilir. Veri tabanı bilgilere ulaşmamızı ve o bilgileri düzenlememizi sağlar. Ücretsiz olarak açılan veri tabanları bulunmasına karşın çok yüksek ücretlere sahip olanları da bulunur.

**Veri tabanı, verilerin belirli bir alanda depolanmasını sağlar.** Özellikle bu sistem kamu kuruluşlarında kullanılır. Bu sayede birçok bilgi kolayca saklanabilir. Database sayesinde kısa sürede milyonlarca kişinin bilgisine kolayca ulaşılabilmektedir. Bankalar, okul kayıtları, nüfus müdürlükleri vb. kuruluşlardaki hizmetlerin pratik bir biçimde yapılmasını sağlar.

Veri tabanı, bilgileri kategorize ederek depo yapar. Bu sayede de bilgileri dağınıklıktan kurtarır ve veriyi ararken kolay bulunmasını sağlar. Bu avantajı size zaman tasarrufu da sağlar.  Hafıza üzerinde dağınık olarak depolanmış bilgileri kategorize ederek alan işgalinin önüne geçilmesini sağlar.

Gerekli bilgileri veri tabanında tutmak büyük bir önem taşır. Çünkü gerektiğinde birbiri ile ilişkili bilgileri ayrı dosyalarda tutmak, daha sonra o bilgileri yan yana getirmek istediğinizde zorluk çıkmaktadır. Veri tabanı tam da bu noktada önemini vurgular. Birbiri ile ilişkisi olan bilgileri ilişki türlerine göre sınıflandırıp depolama işlemi sağlar.

#### Database Türleri

- **İlişkisel Veritabanları:** Veritabanı ilk olarak 1980’li yıllarında ortaya çıktı. Ancak ilişkisel veritabanı türü 80’li yılların sonuna doğru piyasada tutundu ve kullanımı rağbet gördü. İlişkisel tabanda öğeler, satırlar ve sütunlardan oluşur. Tablo kümesi ile organizeli şekilde yapılır. İlişkisel veritabanları oldukça verimli ve esnek çalışır.

- **Nesne Odaklı Veritabanları:** Bu türde bilgi ve veriler isminden de anlaşılacağı gibi nesne odaklıdır. Nesne odaklı türler, aynı nesne biçiminde görülür ve temsil edilir.

- **No Sql Veritabanları:** Son zamanların ismi duyulan Database türüdür. Web uygulamalarının yaygın kullanılmasından sonra ve karmaşık düzene iyi bir alternatif olmuştur. No Sql veritabanları yarı yapılandırılmamış veya yapılandırılmamış veri ve bilgilerin depolanmasına olanak sağlar.

- **OLTP Veritabanları:** Birden fazla kullanıcının kullanmasına imkan verir. Çok sayıda işlem gerçekleştirir. Ve bu işlemleri gerçekleştirebilmesi için hızlı ve analitik bir veritabanına sahiptir.

- **Dağıtılmış Veritabanları:** Farklı mekanlarda bulunan ve en az iki dosyadan oluşan veritabanları sistemidir. Aynı konumda bulunan veya farklı ağlara sahip bilgisayarlar üzerinde depolama yapar.

- **Veri Ambarları:** Belli bir havuza sahip olan sorgulama ve analiz amaçlı bir Database türüdür. Merkezi bir sisteme bağlıdır.

- **Grafik Veritabanları:** Grafik birimleri arasında verileri depolar ve bunlar üzerinde işlem yapar.

Saydığımız veritabanlarına ek olarak yeni türlerde sisteme dahil edilmiştir. Yaşanılan teknolojik gelişmelerle birlikte yazılım ve bilişim ile birleşen yeni eklenen veritabanları da oldu.

- **Bulut Veritabanları:** Bulut depolama sistemi günümüzde en çok bilinen ve bireysel kişiler tarafından bir veri türüdür. Birçok firma veya şirket, bulut veritabanı desteği sağlar. Akıllı cihazların birçoğu bulut sistemini kullanır. Geniş bir ağ sistemine sahiptir. Risk oldukça az ve maliyetler diğerlerine göre düşüktür.

- **Çoklu Model Veritabanları:** Çoklu veritabanları ile bir araya gelerek entegreli şekilde arka bir uçta buluşur.

- **Açık Kaynak Veritabanları:** Veritabanının sistemim tamamen açık kaynaklı bir kod yapısına bağlıdır. Sql ve No Sql buna iyi birer örnektir.

- **Kendini Yöneten Veritabanları:** Yeni ve bilinenlerin dışında kullanılan veri tabanı türüdür. Tamamen kendi kendini yönetebilir. İnce ayar, yedekleme, güncelleme ve güvenlik işlerini kolaylıkla çözümler.

- **Belge Veritabanları:** Belgelerin bir yerde depolanması için tasarlanan Database türüdür. Depolama yapmak için daha modern çözümler sunar.

Veri tabanı, sayısal ve istatiksel veri içerebilir. Veri tabanı oluşturmak, yönetmek, veri saklamak ve birçok işlemi yapabilmek için yazılıma gerek duyulur. Bu yazılıma veri tabanı yönetim sistemi denilir.

### Veri Tabanı Yönetim Sistemi

**Veri tabanı yönetim sistemi, otomotiv sektöründen bankacılığa, şirket yönetiminden sağlık bilgi sistemlerine çok geniş kullanım alanına sahiptir.** Bu çok geniş sektörlerde kullanılan bilgisayar sistemlerinin alt yapısını oluşturur. Veri tabanı yönetim sistemi, DBMS olarak da bilinir. Veri tabanı yönetim sistemi, veri tabanı ve son kullanıcıları ya da programlar arasında bir ara yüz işlevi olarak kullanıcıların bilgilerin nasıl organize edildiğini yönetmesini sağlar. Bunun yanında bilgileri almasına ve güncellemesine olanak sağlar.

**Veri tabanı yönetim sistemi (DBMS), veri tabanlarına ilişkin gözetim ve kontrol faaliyetlerini kolaylaştırır.** Bu sayede performans izleme, yedekleme ve kurtarma vb. yönetim organizasyonlarının gerçekleştirebilmesini sağlar. Veri tabanı yönetim sistemi, veri tabanın oluşturulması ve devam ettirilmesi için ihtiyaç duyulan yazılım paketleridir. DBMS; verilerin güncelleştirilmesi, erişim düzenleme, verilerin saklanmasını sağlar.

DBMS; birden çok kullanıcıya, çok sayıda bilgisayar sistemine hizmet veren, veri tabanlarının kurulumunu ve işletilmesini sağlayan sistemdir. Veri tabanı fiziksel olarak bilgileri tutarken mantıksal bir hiyerarşi kullanır. Veri tabanı sistemlerinin kurulumu, düzeni, güvenliği, sorgulaması, denetiminde karmaşık hallerin oluşması veri tabanı yöneticiliği kavramının oluşmasını sağlamıştır. Bir veri tabanı yöneticisi, mantıksal data modelleme, fiziksel veri tabanı oluşturma, fiziksel veri tabanı dizaynı, veri tabanı yönetimi ve bakımı ve daha birçok görevi yapmaktadır.

#### En Çok Kullanılan Veri Tabanı Sistemleri Nelerdir?

Kalite durumları, sundukları hizmet ve kullanım durumlarına göre veri tabanı programları ücretli ya da ücretsiz seçeneklere sahiptir. Açık kaynak kodlu olarak database programları bulunur. Bunun yanında daha güvenli ve detaylı aynı zamanda profesyoneller için online hizmet veren veri tabanı programları da bulunur. Bu veri tabanı sistemleri içerisinde en çok kullanılanları;

- **MySQL:** Dünya üzerinde kullanılan en popüler veri tabanı sistemlerinden biridir. Altı milyondan fazla sistemde yüklü bulunmaktadır. Bu veri tabanı yönetim sistemi pek çok veri tabanının kolay bir şekilde yönetilmesini sağlar. Diğerlerine göre hızlı ve sağlam olarak nitelendirilir. 1995 yılından beri kullanılmaktadır. Unix, Windows gibi platformlarda ücretsiz dağıtılmasına karşı ücretli seçeneği de vardır. Çok iyi şekilde özelleştirilmektedir. Web sunucuları içi kullanılmasının yanında php ve asp web programlama dilleriyle de çalışabilmektedir.

- **Oracle:** Microsoft’tan sonra en büyük ikinci yazılım şirketidir. Bu yazılım şirketi veri teknolojileri ile adından sıklıkla bahsettirmektedir. Büyük miktarda veriyi çok kullanıcı tarafından yönetilen bir ortamda, depolanmasına ve erişilmesini sağlar. Bireysel olarak çok fazla kullanılan bir sistem olmasa da kurumsal alanda çok yaygın kullanılan bir veri tabanı sistemidir. Kolay ve esnek bir şekilde uygulama geliştirmesi nedeniyle çok bir veri tabanı sistemi olarak görülür. Büyük verileri hızlı bir şekilde işlem boyutunun yüksekliğine bakmadan işleyebilme özelliğine sahiptir.

- **PostgreSQL:** SQL sorgu dilini direkt olarak destekleyen bir dildir. Güvenli, performansı yüksek, geniş bir veri tabanı sistemi olarak tanımlanır. 1996 yılında piyasa çıkmıştır. Oldukça güvenli ve hatasız olarak tanımlanır. Bu özelliklerinden dolayı çoğu yazılımcı tarafından sevilmiştir. Açık kaynak kodlu ve ücretsiz bir sistemdir.

- **SQLite:** Açık kaynak kodu ile geliştirilmiş veri tabanı sistemidir. SQLite, C# ve C++ programlama dilleri ile geliştirilen bir sistemdir. En çok tercih edilme nedeni ve en önemli özelliği ise sunucu yapısı ve yapılandırma gereksinimi olmamasıdır. 2000 yılında piyasa çıkmıştır. Windows, Linux ve MacOS için kullanılabilen bir sistemdir. Dosya yapısı ile çalışmasından dolayı tercih edilmektedir. Hızlı bir sistemdir.

- **Firebird:** Borland açık kaynak kodu ile geliştirilmiş bir veri tabanı sistemi. C++ dili ile yazılmıştır. Düşük sistemlerde çalışabilme, ücretsiz olma ve kapasite sınırının olmaması nedeniyle tercih edilmektedir. İşletim sistemi de yazılımcılar için etkili çözümler sunmaktadır.

#### Database Dilleri

Veritabanında PL/SQL, SQL, TCL ve Transact – SQL dilleri yer alır. Bu diller veritabanına özel olarak üretilmiştir. Belli bir şirket ya da bireyler tarafından geliştirilir. Verileri yönetmek ve tasarlamak için programlama dilleri kullanılır. Aslında programlama dili olarak değil, daha çok veri sisteminin alt dili olarak tanımlanır. Fakat insanların diline bu şekilde yerleşince programlama dili olarak kalmıştır. Database dilleri sayesinde birçok işlemi yapabilmek mümkündür. Verileri kayıt altına alma, işleme veya silme işlemleri gibi.

# SQL Sorguları

## 1- DDL - Data Definition Language ( Veri Tanımlama Dili )
[CREATE](https://github.com/Teknoloji-Filozofu/Veri_Tabani/blob/main/1-DDL/CREATE.md) --> Veritabanında nesne oluşturmak için kullanılır.

[ALTER](https://github.com/Teknoloji-Filozofu/Veri_Tabani/blob/main/1-DDL/ALTER.md) --> Mevcut bir nesenenin yapısını değiştirmek için kullanılır.

[DROP](https://github.com/Teknoloji-Filozofu/Veri_Tabani/blob/main/1-DDL/DROP.md) --> Bir nesneyi silmek için kullanılır.

## 2- DML - Data Manipulation Language ( Veri İşleme Dili )
[INSERT](https://github.com/Teknoloji-Filozofu/Veri_Tabani/blob/main/2-DML/INSERT.md) --> Veri ekleme amacıyla kullanılır

[UPDATE](https://github.com/Teknoloji-Filozofu/Veri_Tabani/blob/main/2-DML/UPDATE.md) --> Veri güncelleme amacıyla kullanılır

[DELETE](https://github.com/Teknoloji-Filozofu/Veri_Tabani/blob/main/2-DML/DELETE.md) --> Veri silme amacıyla kullanılır

## 3- DQL - Data Query Language ( Veri Sorgu Dili )
[SELECT](https://github.com/Teknoloji-Filozofu/Veri_Tabani/blob/main/3-DQL/SELECT.md)

[ORDER BY](https://github.com/Teknoloji-Filozofu/Veri_Tabani/blob/main/3-DQL/ORDER%20BY.md)

[GROUP BY](https://github.com/Teknoloji-Filozofu/Veri_Tabani/blob/main/3-DQL/GROUP%20BY.md)

## 4- DCL - Data Control Language ( Veri Kontrol Dili ) kullanıcı erişim işlemleri
[GRANT](https://github.com/Teknoloji-Filozofu/Veri_Tabani/blob/main/4-DCL/GRANT.md)

[REVOKE](https://github.com/Teknoloji-Filozofu/Veri_Tabani/blob/main/4-DCL/REVOKE.md)

## 5- TCC - Transactional Control Commands ( İşlemsel Kontrol Komutları )
[[COMMIT]]
[[ROLLBACK]]

## JOIN

* [SELF JOIN](https://github.com/Teknoloji-Filozofu/Veri_Tabani/blob/main/JOIN/SELF%20JOIN.md)
* [RIGHT JOIN](https://github.com/Teknoloji-Filozofu/Veri_Tabani/blob/main/JOIN/RIGHT%20JOIN.md)
* [INNER JOIN](https://github.com/Teknoloji-Filozofu/Veri_Tabani/blob/main/JOIN/INNER%20JOIN.md)
* [FULL OUTHER JOIN](https://github.com/Teknoloji-Filozofu/Veri_Tabani/blob/main/JOIN/FULL%20OUTHER%20JOIN.md)
* [CROSS JOIN](https://github.com/Teknoloji-Filozofu/Veri_Tabani/blob/main/JOIN/CROSS%20JOIN.md)
* [LEFT JOIN](https://github.com/Teknoloji-Filozofu/Veri_Tabani/blob/main/JOIN/LEFT%20JOIN.md)