- Veritabanı Yönetimi
- Özellikler ve öğeler
- -Elementler
- Kayıt düzeni
- sütun
- anahtar
- Bütünlük kuralları
- Anahtar bütünlüğü
- Bilgi tutarlılığı
- İlişkisel bir model nasıl yapılır?
- -Veri topla
- -Birincil anahtarları tanımlayın
- Tablolar arasında ilişki oluşturun
- Birden çoğa
- İki tablo tasarlayın
- Çoktan çoğa
- Tek tek
- avantaj
- Yapısal bağımsızlık
- Kavramsal basitlik
- Tasarım, uygulama, bakım ve kullanım kolaylığı
- Ad-hoc sorgu kapasitesi
- Dezavantajları
- Donanım giderleri
- Tasarım kolaylığı kötü tasarıma yol açabilir
- «Bilgi adaları» fenomeni
- Misal
- Referanslar
İlişkisel veritabanı modeli sütun ve sıra kapsayan ızgara benzeri yapıları kullanılarak, ilişkiler kullanılarak yapılanma verilerinin bir yöntemdir. İlişkisel veri tabanlarının kavramsal ilkesidir. 1969'da Edgar F. Codd tarafından önerildi.
O zamandan beri, hiyerarşik, ağ ve nesne gibi diğer veritabanı modelleriyle karşılaştırıldığında, iş uygulamaları için baskın veritabanı modeli haline geldi.
Kaynak: Pixabay.com
Codd'un ilişkisel veritabanları için bir platform olarak çalışmasının ne kadar hayati ve etkili olacağı hakkında hiçbir fikri yoktu. Çoğu kişi bir veritabanındaki bir ilişkinin fiziksel ifadesine çok aşinadır: tablo.
İlişkisel model, her bir ilgili tabloda ortak alanlar kullanılarak birbiriyle ilişkilendirilebilen veri öğelerini bir veya daha fazla bağımsız tabloda gruplandırmaya izin veren veritabanı olarak tanımlanır.
Veritabanı Yönetimi
Bir veritabanı tablosu bir elektronik tabloya benzer. Bununla birlikte, tablolar arasında oluşturulabilen ilişkiler, ilişkisel bir veritabanının etkin bir şekilde geri alınabilen büyük miktarda veriyi verimli bir şekilde depolamasına izin verir.
İlişkisel modelin amacı, verileri ve sorguları belirlemek için açıklayıcı bir yöntem sağlamaktır: kullanıcılar veritabanının hangi bilgileri içerdiğini ve ondan hangi bilgileri istediklerini doğrudan bildirirler.
Öte yandan, depolama için veri yapılarını ve sorguları yanıtlamak için geri alma prosedürünü tanımlamayı veritabanı yönetim sistemi yazılımına bırakırlar.
Çoğu ilişkisel veritabanı, verileri sorgulamak ve tanımlamak için SQL dilini kullanır. Şu anda Oracle, IBM DB2 ve Microsoft SQL Server gibi birçok ilişkisel veritabanı yönetim sistemi veya RDBMS (İlişkisel Veri Tabanı Yönetim Sistemi) bulunmaktadır.
Özellikler ve öğeler
- Tüm veriler kavramsal olarak, bir ilişki veya tablo adı verilen sıralar ve sütunlar halinde verilerin sıralı bir düzenlemesi olarak temsil edilir.
- Her tablonun bir başlığı ve gövdesi olmalıdır. Başlık, yalnızca sütunların listesidir. Gövde, satırlar halinde düzenlenmiş, tabloyu dolduran veri kümesidir.
- Tüm değerler skalerdir. Yani, tablodaki herhangi bir satır / sütun konumunda yalnızca tek bir değer vardır.
-Elementler
Aşağıdaki şekil, tam bir yapı oluşturan temel elemanlarının adlarını içeren bir tabloyu göstermektedir.
Kayıt düzeni
Her veri satırı, kayıt olarak da bilinen bir demettir. Her satır bir n-tuple'dır, ancak "n-" genellikle atılır.
sütun
Demetteki her sütuna bir öznitelik veya alan adı verilir. Sütun, belirli bir özniteliğin sahip olabileceği değerler kümesini temsil eder.
anahtar
Her satırda tablo anahtarı adı verilen bir veya daha fazla sütun vardır. Bu birleşik değer, bir tablodaki tüm satırlar için benzersizdir. Bu anahtar aracılığıyla her bir demet benzersiz bir şekilde tanımlanacaktır. Yani, anahtar kopyalanamaz. Birincil anahtar olarak adlandırılır.
Öte yandan, bir yabancı veya ikincil anahtar, başka bir tablonun birincil anahtarına başvuran tablodaki alandır. Birincil tabloya referans vermek için kullanılır.
Bütünlük kuralları
İlişkisel modeli tasarlarken, bütünlük kuralları adı verilen veritabanında karşılanması gereken bazı koşulları tanımlarsınız.
Anahtar bütünlüğü
Birincil anahtar, tüm demetler için benzersiz olmalıdır ve boş olamaz (NULL). Aksi takdirde, satırı benzersiz bir şekilde tanımlayamazsınız.
Çok sütunlu bir anahtar için, bu sütunların hiçbiri NULL içeremez.
Bilgi tutarlılığı
Yabancı anahtarın her değeri, başvurulan veya birincil tablonun birincil anahtarının bir değeriyle eşleşmelidir.
Yabancı anahtara sahip bir satır, yalnızca bu değer birincil tabloda mevcutsa ikincil tabloya eklenebilir.
Birincil tablodaki anahtarın değeri, satırın güncellenmesi veya silinmesi nedeniyle değişirse, ikincil tablolardaki bu yabancı anahtara sahip tüm satırlar buna göre güncellenmeli veya silinmelidir.
İlişkisel bir model nasıl yapılır?
-Veri topla
Veritabanında saklanmak için gerekli veriler toplanmalıdır. Bu veriler farklı tablolara bölünmüştür.
Her sütun için uygun bir veri türü seçilmelidir. Örneğin: tam sayılar, kayan nokta sayıları, metin, tarih vb.
-Birincil anahtarları tanımlayın
Her tablo için, tablodaki her satırı benzersiz şekilde tanımlayacak bir sütun (veya birkaç sütun) birincil anahtar olarak seçilmelidir. Birincil anahtar, diğer tablolara başvurmak için de kullanılır.
Tablolar arasında ilişki oluşturun
Bağımsız, ilgisiz tablolardan oluşan bir veritabanı çok az amaca hizmet eder.
İlişkisel bir veritabanı tasarlamanın en önemli yönü, tablolar arasındaki ilişkileri belirlemektir. İlişki türleri şunlardır:
Birden çoğa
Bir "Sınıf Listeleme" veritabanında, bir öğretmen sıfır veya daha fazla sınıfa ders verebilirken, bir sınıfa tek bir öğretmen verilir. Bu tür bir ilişki bire çok olarak bilinir.
Bu ilişki tek bir tabloda gösterilemez. «Sınıfların listesi» veritabanında, öğretmenler hakkında bilgi depolayan Öğretmenler adlı bir tabloya sahip olabilirsiniz.
Her öğretmen tarafından öğretilen sınıfları saklamak için ek sütunlar oluşturabilirsiniz, ancak bir sorunla karşılaşırsınız: kaç tane sütun oluşturacağınız.
Öte yandan, bir sınıfla ilgili bilgileri depolayan Sınıflar adlı bir tablonuz varsa, öğretmenle ilgili bilgileri depolamak için ek sütunlar oluşturabilirsiniz.
Bununla birlikte, bir öğretmen birçok sınıfa ders verebildiği için, verileri Sınıflar tablosundaki birçok satırda kopyalanacaktır.
İki tablo tasarlayın
Bu nedenle, iki tablo tasarlamanız gerekir: Sınıflar hakkındaki bilgileri depolamak için, birincil anahtar olarak Class_Id olan bir Sınıflar tablosu ve öğretmenler hakkındaki bilgileri depolamak için bir Öğretmenler tablosu, birincil anahtar olarak Teacher_Id.
Bire çok ilişkisi daha sonra aşağıda gösterildiği gibi Sınıflar tablosundaki Ana tablodan (Master_Id) birincil anahtar saklanarak oluşturulabilir.
Classes tablosundaki Master_Id sütunu yabancı anahtar veya ikincil anahtar olarak bilinir.
Ana tablodaki her bir Master_Id değeri için, Sınıflar tablosunda sıfır veya daha fazla satır olabilir. Classes tablosundaki her Class_Id değeri için, Teachers tablosunda yalnızca bir satır vardır.
Çoktan çoğa
Bir "Ürün Satışı" veritabanında, bir müşteri siparişi birden çok ürün içerebilir ve bir ürün birden çok siparişte görünebilir. Bu tür bir ilişki birçok kişi için bilinir.
"Ürün satışları" veritabanını iki tabloyla başlatabilirsiniz: Ürünler ve Siparişler. Ürünler tablosu, birincil anahtar olarak productID ile ürünler hakkında bilgi içerir.
Öte yandan, Siparişler tablosu, birincil anahtar olarak orderID ile müşterinin siparişlerini içerir.
Ürünler için kaç sütun ayıracağınızı bilmediğinizden, sipariş edilen ürünleri Siparişler tablosunda saklayamazsınız. Aynı nedenle siparişler Ürünler tablosunda saklanamaz.
Çoktan çoğa bir ilişkiyi desteklemek için, her satırın belirli bir sıradaki bir öğeyi temsil ettiği birleştirme tablosu (OrderDetails) olarak bilinen üçüncü bir tablo oluşturmanız gerekir.
OrderDetails tablosu için birincil anahtar iki sütundan oluşur: her satırı benzersiz şekilde tanımlayan orderID ve productID.
OrderDetails tablosundaki orderID ve productID sütunları, Siparişler ve Ürünler tablolarına başvurmak için kullanılır. Bu nedenle, OrderDetails tablosundaki yabancı anahtarlardır.
Tek tek
"Ürün satışı" veritabanında, bir ürün, ek açıklama ve görüntüsü gibi isteğe bağlı bilgilere sahip olabilir. Bunu Ürünler tablosunun içinde tutmak çok fazla boş alan oluşturacaktır.
Bu nedenle, isteğe bağlı verileri depolamak için başka bir tablo (ProductExtras) oluşturulabilir. İsteğe bağlı verilere sahip ürünler için yalnızca bir kayıt oluşturulacaktır.
Ürünler ve Ürün Ekstraları adlı iki tablo bire bir ilişkiye sahiptir. Ürünler tablosundaki her satır için, ProductExtras tablosunda maksimum bir satır vardır. Her iki tablo için de birincil anahtar olarak aynı ürün kimliği kullanılmalıdır.
avantaj
Yapısal bağımsızlık
İlişkisel veritabanı modelinde, veritabanının yapısındaki değişiklikler verilere erişimi etkilemez.
DBMS'nin verilere erişme kabiliyetini etkilemeden veri tabanının yapısında değişiklik yapmak mümkün olduğunda yapısal bağımsızlık sağlandığı söylenebilir.
Kavramsal basitlik
İlişkisel veritabanı modeli, kavramsal olarak hiyerarşik veya ağ veritabanı modelinden daha basittir.
İlişkisel veritabanı modeli, tasarımcıyı verilerin fiziksel depolamasının ayrıntılarından kurtardığı için, tasarımcılar veritabanının mantıksal görünümüne odaklanabilir.
Tasarım, uygulama, bakım ve kullanım kolaylığı
İlişkisel veritabanı modeli, hem veri bağımsızlığını hem de yapı bağımsızlığını elde eder, bu da veritabanını tasarlamayı, sürdürmeyi, yönetmeyi ve kullanmayı diğer modellerden çok daha kolay hale getirir.
Ad-hoc sorgu kapasitesi
Çok güçlü, esnek ve kullanımı kolay bir sorgu yeteneğinin varlığı, ilişkisel veritabanı modelinin muazzam popülaritesinin ana nedenlerinden biridir.
İlişkisel veritabanı modelinin yapılandırılmış sorgu dili veya SQL olarak adlandırılan sorgu dili, anlık sorguları gerçeğe dönüştürür. SQL, dördüncü nesil bir dildir (4GL).
4GL, kullanıcının nasıl yapılması gerektiğini belirtmeden ne yapılması gerektiğini belirlemesine izin verir. Böylelikle kullanıcılar SQL ile hangi bilgileri istediklerini belirleyebilir ve bilgilerin nasıl alınacağına dair detayları veritabanına bırakabilirler.
Dezavantajları
Donanım giderleri
İlişkisel veritabanı modeli, uygulamasının karmaşıklıklarını ve kullanıcı verilerinin fiziksel olarak depolanmasının ayrıntılarını gizler.
Bunu yapmak için, ilişkisel veritabanı sistemlerinin daha güçlü donanım ve veri depolama cihazlarına sahip bilgisayarlara ihtiyacı vardır.
Bu nedenle, RDBMS'nin sorunsuz çalışması için güçlü makinelere ihtiyacı vardır. Bununla birlikte, modern bilgisayarların işlem gücü katlanarak artarken, bugünün senaryosunda daha fazla işlem gücüne duyulan ihtiyaç artık çok büyük bir sorun değil.
Tasarım kolaylığı kötü tasarıma yol açabilir
İlişkisel veritabanının tasarımı ve kullanımı kolaydır. Kullanıcıların, verilerin fiziksel olarak depolanmasının karmaşık ayrıntılarını bilmesine gerek yoktur. Erişmek için verinin gerçekte nasıl depolandığını bilmelerine gerek yoktur.
Bu tasarım ve kullanım kolaylığı, kötü tasarlanmış veritabanı yönetim sistemlerinin geliştirilmesine ve uygulanmasına yol açabilir. Veri tabanı verimli olduğu için, bu tasarım verimsizlikleri, veri tabanı tasarlandığında ve çok az veri olduğunda ortaya çıkmayacaktır.
Veritabanı büyüdükçe, kötü tasarlanmış veritabanları sistemi yavaşlatacak ve performans düşüşüne ve veri bozulmasına neden olacaktır.
«Bilgi adaları» fenomeni
Daha önce de belirtildiği gibi, ilişkisel veritabanı sistemlerinin uygulanması ve kullanılması kolaydır. Bu, çok fazla kişinin veya departmanın kendi veritabanlarını ve uygulamalarını oluşturacağı bir durum yaratacaktır.
Bu bilgi adaları, organizasyonun sorunsuz ve verimli çalışması için gerekli olan bilgi entegrasyonunu önleyecektir.
Bu ayrı veritabanları ayrıca veri tutarsızlığı, veri tekrarı, veri fazlalığı vb. Gibi sorunlar yaratacaktır.
Misal
Tedarikçiler, Parçalar ve Sevkiyat tablolarından oluşan bir veritabanı varsayalım. Tabloların yapısı ve bazı örnek kayıtlar aşağıdaki gibidir:
Tedarikçiler tablosundaki her satır, tablodaki her satırı benzersiz şekilde tanımlayan benzersiz bir tedarikçi numarasıyla (SNo) tanımlanır. Aynı şekilde, her parçanın benzersiz bir parça numarası (PNo) vardır.
Ayrıca, Gönderiler tablosunda belirli bir Tedarikçi / Parça kombinasyonu için birden fazla gönderi olamaz, çünkü bu kombinasyon, çoktan çoğa bir ilişki olduğu için birleşme tablosu görevi gören Gönderilerin birincil anahtarıdır.
Parçalar ve Gönderiler tabloları arasındaki ilişki, PNo (parça numarası) alanının ortak olmasıyla verilir ve Tedarikçiler ile Gönderiler arasındaki ilişki, SNo alanının (tedarikçi numarası) ortak olmasıyla ortaya çıkar.
Sevkiyatlar tablosu incelendiğinde, Suneet ve Ankit tedarikçilerinden 250'şer adet olmak üzere toplam 500 kuruyemiş gönderildiği bilgisi alınabilir.
Benzer şekilde, üç farklı tedarikçiden toplam 1.100 civata sevk edildi. Suneet tedarikçisinden 500 mavi vida gönderildi. Kırmızı vida gönderimi yok.
Referanslar
- Wikipedia, özgür ansiklopedi (2019). İlişkisel model. En.wikipedia.org adresinden alınmıştır.
- Techopedia (2019). İlişkisel Model. Alındığı: roofpedia.com.
- Dinesh Thakur (2019). İlişkisel Model. Bilgisayar Notları. Alındığı: ecomputernotes.com.
- Geeks için Geeks (2019). İlişkisel Model. Geeksforgeeks.org sitesinden alınmıştır.
- Nanyang Teknoloji Üniversitesi (2019). İlişkisel Veritabanı Tasarımı Üzerine Hızlı Başlangıç Eğitimi. Alındığı kaynak: ntu.edu.sg.
- Adrienne Watt (2019). Bölüm 7 İlişkisel Veri Modeli. BC Açık Ders Kitapları. Alındığı kaynak: opentextbc.ca.
- Toppr (2019). İlişkisel Veritabanları ve Şemalar. Alınan: toppr.com.