Ana içeriğe geç

DBMS nedir? Örneklerle Temel Kavramlar Açıklanıyor

Bir DBMS verileri düzenli, güvenli ve erişilebilir tutar. İşletmelerin ve uygulamaların bilgileri karmaşaya yol açmadan depolamasına yardımcı olur; böylece her şey doğru yerde kalır ve ihtiyaç duyduğunuzda hazırdır.
Laiba Siddiqui
Laiba Siddiqui

Ücretsiz Hesabınızı Oluşturun

Alıştırma and program your progress.

Google ile devam edinDevam ederek, Kullanım Koşullarımızı ve Gizlilik Politikamızı kabul etmiş ve verilerinizin ABD'de saklandığını onaylamış olursunuz.

Veri her yerde — müşteri kayıtlarından uygulama işlemlerine kadar — ve onu düzenli tutmak çok önemli. Nitekim oluşturulan, yakalanan, kopyalanan ve tüketilen veri miktarının 2028’de 394 zettabayta ulaşması öngörülüyor. Bu, akıl almaz bir bilgi miktarı ve onu yönetecek bir sistem olmadan işler hızla karmaşaya dönüşür.

İşte bu yüzden bir Veritabanı Yönetim Sistemi (DBMS) kullanırız. Verilerin depolanmasına ve yönetilmesine yardımcı olarak işletmelerin ve uygulamaların sorunsuz çalışmasını sağlar. Bu rehberde DBMS’in ne olduğunu, nasıl çalıştığını, türlerini ve modern veri depolama ile yönetiminde neden vazgeçilmez olduğunu anlatacağım.

DBMS nedir?

Veritabanı Yönetim Sistemi (DBMS), verileri verimli bir şekilde depolar, düzenler ve yönetir. DBMS olmadan veriler birden çok dosyaya dağılır ve bulmak ya da güncellemek zorlaşır. DBMS bu işleri merkezî bir sistemle basitleştirir; kullanıcıların veriyi kolayca eklemesine, değiştirmesine veya silmesine olanak tanırken doğruluk ve tutarlılığı da sağlar.

Bir DBMS’in Temel İşlevleri

DBMS, veri yönetimi söz konusu olduğunda pek çok ağır işi üstlenir. Bilgileri düzenler ve korur; böylece ihtiyacımız olanı, ihtiyaç duyduğumuz anda, zahmetsizce buluruz. Şimdi temel işlevlerine yakından bakalım.

Veri tanımı

Veritabanları, DDL (Data Definition Language / Veri Tanımlama Dili) kullanarak bilgileri yapısal biçimde saklar. DDL ile tablolar oluşturabilir, alanlar ekleyebilir ve bunları birbirine bağlayabiliriz; örneğin adlar, telefon numaraları ve e-postalardan oluşan bir müşteri listesi kurmak gibi.

Bazı yaygın DDL komutları şunlardır:

1) CREATE, yeni tabloları, alanları ve ilişkileri kurar. Hangi tür verileri saklayacağımızı tanımlamamıza yardımcı olur. Diyelim ki bir müşteri veritabanı oluşturuyorsunuz. O durumda müşteri ayrıntılarını saklayacak bir tabloyu şöyle oluşturursunuz:

CREATE TABLE Customers (
ID INT PRIMARY KEY, 
Name VARCHAR(100)
);

2) ALTER, mevcut bir tabloyu değiştirir (sütun ekler, siler veya değiştirir). Burada Customers tablosuna yeni bir alan (email) ekledim:

ALTER TABLE Customers ADD Email VARCHAR(255);

3) DROP, bir veritabanı nesnesini kalıcı olarak siler. Customers tablosunu şöyle siliyorum:

DROP TABLE Customers;

4) TRUNCATE, bir tablodaki tüm kayıtları kaldırır ancak yapısını korur. DROP’tan farklı olarak tabloyu sağlam bırakır; böylece kullanmaya devam edebiliriz. Komutun kullanımı şöyle:

TRUNCATE TABLE Customers;

5) RENAME bir tablonun veya sütunun adını değiştirir. Örneğin Customers tablosunun adını Clients olarak değiştirmek için şunu yaparım:

RENAME TABLE Customers TO Clients;

Veri işleme

Bir veritabanını kurduktan sonra, Veri İşleme Dili (DML) kullanarak veriyi ekleme, güncelleme veya silme gibi işlemler yapabiliriz. 

Bazı yaygın DML komutları şunlardır:

1) INSERT, bir tabloya yeni bir satır ekler. Örneğin Customers tablosuna yeni bir müşteri eklemek için şu kodu kullanırım:

INSERT INTO Customers 
(ID, Name, Email) 
VALUES 
(1, Drake White, '[email protected]');

Bu, tabloya 1 kimlikli, adı Drake White ve e-postası [email protected] olan bir müşteri ekler.

2) UPDATE, bir tablodaki mevcut kayıtları değiştirir. Bir müşterinin e-postasını değiştirmek için kaydını şöyle güncellerim:

UPDATE Customers SET Email = 'drake [email protected]' WHERE ID = 1;

Bu işlem, 1 kimlikli müşterinin e-postasını drake [email protected] olarak günceller.

3) DELETE, bir tablodan belirli verileri kaldırır. Kimliği 1 olan bir müşteriyi silmek için şu komutu kullanırım:

DELETE FROM Customers WHERE ID = 1;

NOT: DELETE komutunda dikkatli olun — veri silindiyse silinmiştir (yedek yoksa geri getiremezsiniz).

4) SELECT, bir tablodan veri çeker. Örneğin tablodaki tüm müşterileri görmek için şunu kullanırım:

SELECT * FROM Customers;`

Yalnızca belirli bir ada sahip müşterileri görmek istersem şunu kullanabilirim: 

SELECT * FROM Customers WHERE Name = 'Drake White';

Bu, yalnızca Name alanı Drake White ile eşleşen kayıtları döndürür.

Veri sorgulama

Önceki bölümde gördüğümüz gibi bir DBMS, SQL veya diğer sorgu dilleriyle bilgileri hızlıca getirir. Binlerce kayıt içinde elle aramak yerine, saniyeler içinde tam olarak ihtiyacımız olanı bulmak için sorgular kullanabiliriz. 

Diyelim ki tüm New York müşterilerini bulmak istiyorum. Binlerce kaydı kaydırmak yerine şöyle bir SQL sorgusu kullanırım:

SELECT * FROM customers WHERE city = 'New York';

Veri bütünlüğü ve güvenliği

DBMS, her kayda benzersiz bir kimlik atayarak ve ilişkili tabloları bağlayarak veriyi doğru tutar. Satırları birincil anahtarlarla ilişkilendirir ve yabancı anahtarlarla tablolar arasında tutarlılığı sağlar. Veriyi güvenli tutmak için şunları kullanır:

  • Kimlik doğrulama: Veriye kimin erişebileceğini kontrol eder.
  • Şifreleme: Veriyi saldırganlara karşı korur.
  • Erişim kontrolü: Kimin görüntüleyebileceğini veya düzenleyebileceğini yönetir.

Veri depolama ve yedekleme

DBMS veriyi verimli biçimde depolar ve yedeklerini tutar. Aramaları hızlandırmak için indekslemeyi kullanır ve yanlışlıkla silmeler veya sistem arızalarına karşı veri kaybını önlemek için yedekleme ve kurtarma özellikleri sunar. Böylece bir sorun çıktığında, önemli bilgileri kaybetmeden verileri geri yükleyebiliriz.

DBMS Türleri

Tüm DBMS’ler aynı şekilde çalışmaz. Farklı veri türleri ve kullanım senaryoları için tasarlanmış çeşitli türler vardır. Kolay anlaşılır örneklerle inceleyelim.

Hiyerarşik DBMS

Hiyerarşik bir DBMS, veriyi bir soy ağacı gibi yapılandırır; her kaydın bir ebeveyni vardır ve her ebeveynin birden çok çocuğu olabilir. Ancak her çocuğun yalnızca bir ebeveyni olabilir (bire-çok ilişki). 

Bir şirketin organizasyon şemasını düşünün: Bir yönetici (ebeveyn) birden fazla çalışanı (çocuk) yönetir, ama her çalışan yalnızca bir yöneticiye bağlıdır. 

Hiyerarşik DBMS yapısı.

Hiyerarşik DBMS yapısı. Görsel: Yazar.

Hiyerarşik bir DBMS’e iyi bilinen bir örnek, bu yapıyı büyük veri hacimlerini yönetmek için kullanan ilk sistemlerden biri olan IBM’in Information Management System (IMS)’idir.

Ağ DBMS

Bir ağ DBMS, kayıtların birden çok ebeveyni ve birden çok çocuğu olmasına izin verdiği (çoktan çoğa ilişki) için hiyerarşik DBMS’ten daha esnektir. Bu, karmaşık ilişkileri yönetmeyi kolaylaştırır. Bu türe bir örnek Integrated Data Store’dur. 

Örneğin bir üniversite veritabanında öğrenciler birden çok derse kaydolabilir ve her dersin birden çok öğrencisi olabilir.

Ağ DBMS yapısı.

Ağ DBMS yapısı. Görsel: Yazar.

İlişkisel DBMS (RDBMS)

Bir ilişkisel DBMS, veriyi tab lolarda saklar; her tablo satırlar ve sütunlardan oluşur (e-tablolar gibi). Bu tablolar benzersiz anahtarlarla birbirine bağlanır; bu da veriyi düzenlemeyi ve getirmeyi kolaylaştırır: 

  • Bir birincil anahtar her satırı benzersiz olarak tanımlar.
  • Bir yabancı anahtar, başka bir tablonun birincil anahtarına referans vererek tabloları birbirine bağlar.

Bu tür DBMS, yaygın olarak kullanılır çünkü güvenilir, ölçeklenebilir ve yönetimi kolaydır. Popüler örnekleri arasında MySQL, PostgreSQL ve Oracle bulunur.

Diyelim ki iki tablomuz var:

  • Students: öğrenci adlarını, numaralarını ve derslerini saklar.
  • Marks: numaraları ve karşılık gelen sınav notlarını saklar.

Students tablosundaki Roll No. sütunu birincil anahtardır; Marks tablosunda ise Students tablosuna geri bağlanan bir yabancı anahtardır.

SELECT Students.Name, Students.Course, Marks.Marks
FROM Students
JOIN Marks ON Students.RollNo = Marks.RollNo;

Yukarıdaki sorgu, öğrenci adlarının, kayıtlı oldukları dersin ve notlarının birleştirilmiş bir görünümünü döndürür.

İlişkisel DBMS yapısı.

İlişkisel DBMS yapısı. Görsel: Yazar.

Nesne yönelimli DBMS (OODBMS)

Nesne yönelimli bir DBMS, veriyi Java veya Python gibi programlama dillerinin nesneleri ele alışına benzer şekilde nesneler olarak saklar. Bu nesneler, hem veriyi hem de onunla çalışmak için kullanılan yöntemleri içerir. Buna yaygın bir örnek, Java ve .NET geliştiricileri için açık kaynaklı bir veritabanı olan db4o’dur.

Örneğin bir üniversite, öğrenci bilgilerini nesneler olarak saklar; her Student nesnesinde Name, Age ve Student ID gibi öznitelikler ve Enroll() ile Drop_Course() gibi davranışlar bulunur. Öğrenciler, Course_Name, Instructor, Credits_hours gibi ayrıntılara sahip Course nesnelerine ve Enrollment_Date ile Grades bilgisini izleyen Enrollment nesnelerine bağlanır.

Nesne Yönelimli DBMS yapısı.

Nesne Yönelimli DBMS yapısı. Görsel: Yazar.

NoSQL DBMS

NoSQL DBMS, belge tabanlı, anahtar-değer, sütun aileleri veya grafik yapıları gibi ilişkisiz modeller kullanarak veri saklar. Ağırlıklı olarak, yapılandırılmamış veya yarı yapılandırılmış büyük veri miktarlarını işlemek için JSON (JavaScript Object Notation) yapısından yararlanır. 

İlişkisel veritabanlarının aksine sabit tablolar kullanmaz ve veriyi depolama ile getirme konusunda daha esnek yollar sunar. Bu da onu büyük veri, gerçek zamanlı uygulamalar ve bulut tabanlı sistemler için ideal kılar. Önde gelen örnekleri arasında MongoDB, Apache Cassandra ve Couchbase bulunur.

Öğrenci verilerini JSON formatıyla şöyle saklayabiliriz: 

{
  "student_id": "101",
  "name": "Emma",
  "age": 16,
  "grade": 11,
  "subjects": ["Math", "Science", "English"]
}

Popüler DBMS Yazılımları

Farklı DBMS’ler farklı ihtiyaçlar için geliştirilmiştir. Bazıları ücretsizdir ve web siteleri için idealdir; bazıları ise üst düzey güvenlik ve performans gerektiren büyük işletmeler için tasarlanmıştır. En popüler DBMS yazılımlarını ve kullanım alanlarını inceleyelim.  

MySQL

MySQL, en yaygın kullanılan açık kaynak İlişkisel Veritabanı Yönetim Sistemlerinden (RDBMS) biridir. Hızlı ve ölçeklenebilir olduğu için web siteleri ve uygulamalarda kullanılır. WordPress ve e-ticaret siteleri gibi büyük platformlar, büyük veri hacimlerini sistemi yavaşlatmadan verimli biçimde yönetmek için MySQL’e güvenir.

PostgreSQL

PostgreSQL, son derece esnek ve güçlü, gelişmiş bir açık kaynak Nesne-İlişkisel Veritabanı Yönetim Sistemi’dir (ORDBMS). Karmaşık sorguları destekler ve Java ile Python gibi birden çok programlama diliyle çalışır. Netflix ve Instagram gibi büyük isimler, Windows, macOS ve Linux dahil farklı platformlarda yapılandırılmış ve yapılandırılmamış devasa veri miktarlarını yönetebildiği için PostgreSQL’i kullanır.

👉 PostgreSQL temel komutlar cheat sheet’imizi edinin!

Microsoft SQL Server

Microsoft SQL Server (SQL Server), Microsoft tarafından kurumsal düzeyde performans ve güvenlik için geliştirilmiş, ticarî bir RDBMS’tir. Microsoft ürünlerine güvenen işletmeler için ideal bir tercihtir; çünkü Azure ve Power BI gibi araçlarla sorunsuz entegre olur. Verileri yapılandırılmış tablolarda düzenli tutar ve işlemleri hatasız işlemek için Transact-SQL (T-SQL) ile Tabular Data Stream protokolünü kullanır.

MongoDB

MongoDB bir açık kaynak NoSQL veritabanıdır; yani MySQL veya SQL Server gibi geleneksel tabloları kullanmaz. Bunun yerine bilgileri (JSON formatına benzer) belgeler içinde saklar. Bu da onu son derece esnek ve ölçeklenebilir kılar; dinamik veya yapılandırılmamış büyük veri hacimlerini yönetmek için idealdir. Hız ve ölçeklenebilirliği sayesinde MongoDB, gerçek zamanlı uygulamalar, mobil uygulamalar ve büyük veri işleme için üst sıralarda tercih edilir.

Oracle veritabanı

1977’de Larry Ellison, Bob Miner ve Ed Oates tarafından geliştirilen Oracle veritabanı, daha sonra Oracle Corporation’ın bir parçası oldu. Üst düzey güvenlik ve otomasyon gerektiren büyük işletmeler için tasarlanmış, yüksek performanslı bir RDBMS’tir.  

Kendi kendine performansı optimize ederek devasa veri miktarlarını yönetebilir — bu da işletmelerin zaman kazanmasını sağlar ve hesaplama maliyetlerini %87’ye kadar azaltır. Dahili şifreleme, erişim kontrolleri ve izleme araçlarıyla Oracle, hassas verileri yetkisiz erişime karşı korur.

Son Düşünceler

Veritabanı Yönetim Sistemleri (DBMS), düzenli, güvenli ve verimli veri işleme için omurgayı oluşturur. Onlar olmadan büyük miktarda bilgiyi yönetmek yavaş olur ve hataya açık hâle gelir.

İşletmeler için DBMS, verinin doğru, korumalı ve ihtiyaç duyulduğunda kolay erişilebilir kalmasını sağlar.

Öğrenme yolculuğunuzda bir sonraki adıma hazırsanız, SQL ve veritabanı temel bilgilerine dalmayı düşünün. Sağlam bir temel oluşturmak için SQL Fundamentals ile başlayın, verinizi etkili biçimde nasıl yapılandıracağınızı anlamak için Database Design’ı keşfedin veya RDBMS kavrayışınızı derinleştirmek için Introduction to Relational Databases in SQL kursunu alın!

SSS

SQL ve NoSQL veritabanları arasındaki temel farklar nelerdir?

SQL veritabanları sabit şemalar kullanır ve veriyi satır-sütunlardan oluşan ilişkisel bir yapıda saklar. Buna karşılık NoSQL veritabanları esnek ve ilişkisizdir; veriyi anahtar-değer çiftleri şeklinde saklar ve bu da onları yapılandırılmamış veya yarı yapılandırılmış büyük veri hacimlerini yönetmeye uygun kılar.

Daha fazla bilgi için SQL ve NoSQL Veritabanları makalemizi okuyun.

DBMS’te şema ve örnek (instance) arasındaki fark nedir?

Şema, tablolar, ilişkiler ve kısıtlar dahil bir veritabanının yapısıdır; örnek (instance) ise belirli bir andaki gerçek depolanmış veriyi ifade eder.

DBMS’te deadlock nedir ve nasıl önlerim?

Kilitleşme (deadlock), iki veya daha fazla işlemin birbirini bloke etmesi, her birinin diğerinin elindeki kaynağı beklemesi durumudur. Bunu, kilitleri tutarlı bir sırayla alarak ve artık gerek kalmadığında hemen serbest bırakarak önleyebilirsiniz.

DBMS’te normalleştirme nedir ve neden önemlidir?

Normalleştirme, veriyi fazlalığı azaltmak ve veri bütünlüğünü artırmak için birbiriyle ilişkili birden fazla tabloya düzenleme sürecidir. Anomalileri en aza indirir ve veritabanı verimliliğini artırır.

Varlık-ilişki (ER) modeli nedir?

ER modeli, varlıkların ve aralarındaki ilişkilerin diyagramla gösterilmesidir; uygulamaya geçmeden önce veritabanını tasarlamak ve yapılandırmak için kullanılır.

Laiba Siddiqui

Yazar

Laiba Siddiqui

Karmaşık konuları basitleştirmeyi seven bir içerik stratejistiyim. Splunk, Hackernoon ve Tiiny Host gibi şirketlerin hedef kitleleri için ilgi çekici ve bilgilendirici içerikler üretmelerine yardımcı oldum.

Konular

İlgili