Veritabanları - tanımı, türleri ve veritabanlar hakkında bütün ihtiyacın olduğu ilgiler.
Veritabanı, organize bir şekilde saklanan bir veri setidir.
Bir sistemi verimli bir şekilde çalıştırmak için, o belirli sisteme giren ve/veya çıkan geçmiş ve mevcut kayıtlar için etkin belleğe ihtiyacın olacaktır.
Aynısı, birkaç kişinin ortak çabalarını gerektiren bir işletme veya kuruluş için de geçerlidir. Bu amaçla, büyük ve küçük şirketler ve hastaneler, okullar ve üniversiteler gibi kuruluşlar, mevcut çeşitli veritabanlarında depolanan sistematik “varlıklara” veri elde etmek, derlemek ve paylaşmak için çok yararlı bir yöntem olur.
Şirketler, benzersiz iş ihtiyaçlarını karşılamak için farklı türde veritabanları kullanabilir.
Bu derste veritabanlarının tüm yönlerine bakacağız.
Sayfa içeriği
- ›İçerik Özeti
- ›Veritabanlarını Tanımlamak
- ›Veritabanı Hedefleri
- ›Veritabanı Türleri
- ›Veritabanı Özellikleri
- ›Veritabanı Yönetim Sistemi
- ›Veritabanı Ortamları
- ›Veritabanlarının Faydaları
- ›Veritabanlarının Dezavantajları
- ›Veritabanlarının avantajı
- ›Veritabanı Kullanım Örnekleri
- ›Veritabanı Geliştirme
- ›Veritabanı Yaşam Döngüsü
- ›Veritabanı geliştirme aşamaları
- ›Veritabanı Terminolojisi
- ›İyi Veritabanı Tasarımı
- ›Veritabanı Tasarım Adımları
- ›Veritabanları Neden Önemlidir?
- ›Veritabanlar Öğrenmeyi Ne Kadar Sure Alır?
İçerik Özeti
Veritabanlarının veya bilgi tabanlarının kavramını ve tanımını, amaçlarını ve farklı veritabanları türlerini açıklama. Veritabanı yönetim sistemleri, ortamları, avantajları, dezavantajları, terminolojisi ve veritabanlarının önemi. Veritabanı tasarım yöntemlerini ve bunun için iyi tasarım özelliklerini açıklama.
Veritabanlarını Tanımlamak
Bir veritabanı veya bilgi tabanı (Database), mantıksal veya matematiksel bir ilişki ile birbiriyle ilişkili olan ortak bir ilgili veri öğeleri kümesidir. Belirli bir kuruluş veya şirketin faaliyetlerini desteklemek için kullanılır.
Bir veritabanı, bir kez tanımlanan ve daha sonra birçok kullanıcı tarafından erişilen bir veri deposu olarak görülebilir.
Bir veritabanı bir veya daha fazla tablodan oluşur.
Bir tablo, bir veya daha fazla kayıttan (satır) oluşur.
Bir kayıt, bir veya daha fazla alandan oluşur.
Kayıtlara bir örnek, bir şirketteki belirli bir çalışanın kaydıdır.
Aşağıdakiler gibi çeşitli alanlardan oluşur:
- Çalışan Numarası.
- Çalışan Adı.
- fonksiyonel sınıf.
- işe alma tarihi.
- temel maaş.
- Çalıştığı departman.
- Çalışma saatlerinin süresi.
- Ve diğer birçok bilgi.
Ve bir bilgisayarda organize bir şekilde saklanan diğer çalışan verileri Veritabanı Yönetim Sistemi (Database Management System) adı verilen ve verilerle uğraşmayı ve aramayı kolaylaştıran ve kullanıcının eklemesini ve değiştirmesini sağlayan bir bilgisayar programı içinde.
Veriler, Structured Query Language adlı bir dilde özel komutlar kullanılarak alınır ve belirli verilerin sorgulanmasına veya verilerin özetlenmesine ve karar verme sürecinde yönetime yardımcı olan faydalı bilgilerin alınmasına yardımcı olan SQL kısaltmasıyla sembolize edilir.
Veritabanı Hedefleri
Veritabanı tasarımının temel amacı, belirli bir şirkete ait veri miktarlarını depolamak için entegre bir ortam yaratmaktır, verilerin örnek teşkil edecek şekilde düzenlenme şekline vurgu yaparak.
Veritabanı tasarımcısının temel amacı, bilgi veya veriyi, büyük miktarda veriyi düzenli bir şekilde barındıracak, fazlalık olmayacak ve sorunsuz bir şekilde alınabilecek, değiştirilebilecek ve eklenebilecek şekilde yapılandırmaktır. Bundan maksimum faydayı elde etmek için veri yapısını taksonomik yapıya yakınlaştırmayı dikkate almak.
Bilgi tabanları, orta yönetim ve stratejik yönetim için birçok hedefe ulaşır.
Ayrıca şirket veya kurumdaki karar vericilere analiz, veri madenciliği yapma ve gerekli sonuçlara ulaşma yeteneği sağlar.
Veritabanı Türleri
İçlerindeki farklı veri türleri arasında mantıksal ve matematiksel ilişkinin türüne bağlı olarak veritabanı kombinasyonları vardır.
Yapının doğası gereği üç tür veri tabanı tanımlanabilir ve bunlar aşağıdaki gibidir:
- İlişkisel veritabanları
- Yapılandırılmış veritabanları
- Hiyerarşik veritabanları
Veritabanlarının boyutuna ve kullanımlarının doğasına göre:
- Büyük Veritabanları
- Veri Depoları
Aşağıda her birinin ayrıntılı bir açıklaması ekledim:
İlişkisel veritabanları:
İlişkisel bir veritabanı, veri öğeleri arasındaki ilişkisel yapıdır.
İlişkisel yapı, veri öğeleri arasında, kullanılan bir öğenin değeri iki öğenin toplamı olacak şekilde belirli bir ilişkinin kullanılmasıdır. Bu yapı, bilgi veritabanları dünyasında uygulanan en başarılı yapıdır, çünkü veriler arasındaki ilişki türünde çeşitlilik sağlar, çünkü içindeki ilişkileri uygulama olanakları diğer herhangi bir yapıya göre daha fazladır.
Yapılandırılmış veritabanları:
Yapılandırılmış bir veritabanı, veri öğeleri arasındaki yapılandırılmış yapıyı kullanan bir veritabanıdır.
Veri unsurları arasındaki organizasyonel yapı ilişkisinin kullanmaktadır.
Örneğin, iki öğe bir öğe altında veya ona bağlı olarak sınıflandırılır.
Hiyerarşik veritabanları:
Veri öğeleri arasında hiyerarşik bir ilişkiye bağlı olan veritabanlarıdır.
Örneğin, her öğe yukarıdan aşağıya doğru sırayla yalnızca bir öğeden sorumludur ve başka bir öğeden sorumlu değildir ve bu böyle devam eder.
Büyük Veritabanları
Veritabanı türlerine boyut açısından bakıldığında, veritabanları bu şekilde ayrılabilir:
- Belirli bir kuruluşa veya şirkete hizmet veren basit veritabanları.
- Büyük veritabanları veya veri merkezleri.
Büyük veritabanları veya veri merkezleri, klimalar aracılığıyla operasyonel alan, insan kaynakları, bakım uzmanları ve uygun hava koşulları açısından veritabanları için gerekli ayarlarla donatılmasıyla karakterize edilen devasa binalardır ve bunlar için kullanılan birkaç koruyucu enerji jeneratörü vardır büyük miktarda veriyi depolamak ve yönetmek için.
Veri merkezlerine örnek olarak Google, Facebook ve diğerleri gibi dev teknoloji şirketlerine ait olanlar verilebilir.
Veri Depoları
Ayrıca veri ambarları (İngilizce: Data Warehouses) olan çeşitli kaynaklardan toplanan bir tür veritabanı vardır.
Veri ambarı, kurumların ve şirketlerin çalışmalarının performansında faydalı olan raporları ve analizleri çıkarmak için çeşitli kaynaklardan gelen geleneksel veri tabanlarından geçmiş verilerin bir koleksiyonudur.
Bu türün örnekleri, birkaç farklı ülke veya şehirde bulunan birkaç şubesi olan bir şirketin genel merkezinde kullanılanlardır.
Veritabanı Özellikleri
Veritabanında birçok özellik bulunmaktadır. Spektimde var olan en önemli özellikleri şu şekilde açıklayacağım:
- Verilerin koordineli bir şekilde tutulması.
- Gerçek dünyanın bazı yönlerinin veya gerçek dünya bilgilerini temsil eden bir dizi veri unsurunun (olguların) bir temsilidir.
- Veritabanı mantıklı, tutarlı ve dahili olarak tutarlıdır.
- Bir veritabanı, belirli bir amaç için tasarlanmış, oluşturulmuş ve verilerle doldurulmuştur.
- Her veri öğesi bir alanda saklanır.
- Alanlar kümesi bir tablo oluşturur. Örneğin, bir çalışan tablosundaki her alan, tek bir çalışanla ilgili verileri içerir.
- Bilgi tabanı birçok tablo içerebilir. Örneğin, bir üyelik sistemi bir adres tablosu ve bir bireysel üye tablosu içerebilir.
- Aynı verileri kaydetmekten kaçının.
- Verileri belirli ilkeler temelinde organize etmek.
- Veritabanları, bir grup kullanıcı arasında iletişime ve birbirleriyle veri alışverişine izin verir.
- Veritabanları, kullanıcının verileri hızlı bir şekilde aramasını ve erişmesini kolaylaştırır.
- Veritabanları, kullanıcılar arasında alışverişe izin verir.
- Veritabanları herhangi bir zamanda ve kolaylıkla güncellenebilir.
- Birden fazla dosyaya ihtiyaç duymadan verileri tek bir dosyada saklayabilir ve kaydedebiliriz.
- Veritabanları, diğer uygulama programlarından bağımsızdır.
- Veri depolama süreci, depolamanın merkezileştirilmesine bağlıdır.
Veritabanı Yönetim Sistemi
Veritabanı Yönetim Sistemi "Database Management System" ve kısatlaması (DBMS) denir,
Kullanıcıların veritabanlarına erişimi oluşturmasını, sürdürmesini ve kontrol etmesini sağlayan bir yazılım setidir.
DBMS'nin temel amacı, program kullanıcıyı bu görevi gerçekleştirmek için veritabanı motoruna bağlarken, kullanıcıların bilgileri alması, depolaması, alması, eklemesi, değiştirmesi veya silmesi için uygun ve etkili bir ortam sağlamaktır.
Veritabanı tabloları arasında bir ilişki varsa buna ilişkisel veritabanı yönetim sistemi veya ilişkisel veritabanı yönetim sistemi denir.
Örneğin bir veritabanı yaklaşımı kullanarak herhangi bir şirket veya kuruluşta bir personel yönetim sistemine sahip olabiliriz.
Veritabanı yönetim sistemi "DBMS", personel departmanı, üst yönetim ve muhasebe departmanı tarafından ortak veritabanına erişmek ve her departmanın işini kolaylaştırmak için kullanılır.
Veritabanı Ortamları
Veritabanı ortamı, veritabanlarını tasarlamak ve yönetmek için gerekli araçları ve yazılımı sağlayan yazılım ortamı veya sistemdir.
Veritabanlarını yönetmek için en iyi araçları ve yöntemleri sağlamak için birbirleriyle rekabet eden uzmanlaşmış uluslararası şirketler tarafından geliştirilen birçok veritabanı ortamı vardır.
En popüler veritabanı ortamları arasında şunlar bulunur:
- Oracle İlişkisel Veritabanı Yönetim Sistemi
- PHPMyAdmin
- MySQL
- FireBird
- Postgresql
- Microsoft Access
- Birckly
- Borland Interbase
- Microsoft SQL server
- Informix
- IBMDB2
- B-trieve
- Sybase
Veritabanlarının Faydaları
Verileri yönetmek, bizim işimize yaraması ve yaptığımız görevler için faydalı olması için onunla ilgilenmek anlamına gelir.
Veritabanı yönetim sistemi "DBMS" ile, toplanan ve veritabanlarına eklenen bilgiler artık tesadüfi karışıklığa maruz kalmaz ve daha sezgiseldir ve her türlü işin geri kalanıyla bütünleşir.
Veritabanlarını kullanarak veri yönetimi, sahip olduğumuz verilerin stratejik kullanıcıları olmamızı sağlar.
Aşağıdakileri içerebilecek çeşitli kullanımlar için sıklıkla verilere erişmemiz ve bunları yeniden düzenlememiz gerekir:
- Posta listeleri oluşturmak.
- Yönetim raporlarının yazması.
- Farklı müşteri ihtiyaçlarını belirlemek
- Seçilen haber hikayelerinin listelerini oluşturun.
Veritabanlarının sağladığı işlem gücü, içerdikleri verilerin işlenmesine de olanak tanır, böylece aşağıdaki gibi işlemleri gerçekleştirebilir:
- Çeşit "Sort"
- Düzenlemek "Arrange"
- Eşleşme Oluşturmak "Match"
- Bağlantı oluşturmak
- alanları atla "skip field"
- Alanlar üzerinde hesaplamak "calculate"
Çok yönlülükleri nedeniyle veritabanları her türlü projeye güç sağlar.
Veritabanlarının özellikleri
Veritabanlarının, onları kolay, verimli ve daha esnek bilgi depolamak, düzenlemek ve almak için en iyi yollar haline getiren birçok avantajı vardır. Bu özelliklerden en önemlileri arasında:
- Tüm veri ve bilgileri tek bir büyük dosyaya dahil etmek, özellikle düz veritabanlarında, bu tür bir veri tabanı çoğu elektronik tablo programında kullanıldığından, bir konuyla ilgili tüm verilerin tek bir büyük ortak kayda girilmesine yardımcı olur,
Bilgilerin kendi alanına doldurulması, kağıt kayıtlara göre zamandan tasarruf sağlar ve verimlilik verimliliğini artırır. - Birkaç küçük veri dosyasının ilişkisel veritabanlarında birleştirilmesi, bilgi yönetiminde güç sağlar ve veri girişi üzerindeki kontrolü artırır.
İlişkisel veritabanlarının çalışma mekanizması, tüm dosyalardan belirli bir konu hakkında veri toplayıp çekmeleri ve bunları birleştirerek kullanıcının ihtiyaç duyduğu nihai raporu sağlamak için bir araya getirmeleridir, bu da kapsamlı bilgilerin getirilmesinde hız sağlar. - Hem ana bilgisayar sistemleri gibi büyük organizasyonlarda hem de kişisel bilgisayarlar gibi küçük işletme organizasyonlarında bulunur.
Veritabanlarının Dezavantajları
Veritabanlarının sahip olduğu birçok avantajın yanı sıra, büyük miktarda bilgiyi depolamak ve yüksek verimlilikle kolayca erişmek gibi avantajlarının yanı sıra, bazı dezavantajları da vardır:
- Veritabanları bilgi, program ve yazılımın karmaşık bir karışımı olduğundan karmaşıklık ve veritabanlarını geliştirme süreci oldukça deneyimli tasarımcıların kullanılmasını gerektiren çok karmaşık bir süreçtir.
- Veritabanlarının kalıcı ve sürekli finansal kaynaklara ihtiyaç duyması nedeniyle yüksek maliyet.
- Güvenlik, büyük şirketler veritabanlarının virüslere ve bilgisayar korsanlarına karşı güvenli olmasını gerektirdiğinden.
Veritabanlarının Avantajı
Bir veritabanı yaklaşımını dosya yönetim sistemlerinden veya dosya tabanlı bir yaklaşımdan ayıran bir dizi özellik vardır.
Aşağıda veritabanlarının en önemli özelliklerinin kısa bir açıklaması yer almaktadır:
Veritabanı Sistemi Öz Tanımı
Veritabanları, yalnızca veri tabanının kendisini değil, aynı zamanda veri tabanındaki tablolar arasındaki verileri ve ilişkileri tanımlayan ve açıklayan meta verileri de içerdikleri için kendi kendini tanımlayan olarak adlandırılır. Bu bilgiler, gerektiğinde DBMS yazılımı veya veritabanı kullanıcıları tarafından kullanılır. Verilerin ve veriler hakkındaki bilgilerin bu şekilde ayrılması, veritabanı sistemini, veri tanımlamanın uygulama programlarının bir parçası olduğu geleneksel dosya tabanlı sistemden oldukça farklı kılar.
Program ve veri arasındaki izolasyon
Dosya yönetimi tabanlı bir sistemde, veri dosyalarının yapısı uygulama programlarında tanımlanır, bu nedenle bir kullanıcı dosya yapısını değiştirmek isterse, o dosyaya erişen tüm programların da değişmesi gerekebilir.
Bir veritabanı yaklaşımında, bilgi yapısı programlardan ziyade sistem kataloğunda saklanır.
Bu nedenle, dosya yapısını değiştirmek için tek bir değişiklik yeterlidir. Programlar ve veriler arasındaki bu izolasyona program veri bağımsızlığı da denir.
Çoklu görünüm desteği
Veritabanları, birden çok veri görünümünü destekler. Görünüm, sistemin belirli kullanıcılarına tanımlanan ve atanan bilgi tabanının bir alt kümesidir. Sistemin birçok kullanıcısı sistem hakkında farklı görüşlere sahip olabilir.
Her Teklif, yalnızca bir kullanıcıyı veya kullanıcı grubunu ilgilendiren bilgileri veya verileri içerebilir.
Veri paylaşımı ve çok kullanıcılı sistem
Mevcut veritabanı sistemleri, birden çok kullanıcıyı destekleyecek şekilde tasarlanmıştır. Yani birden fazla kullanıcının aynı bilgi tabanına aynı anda erişmesine izin verir. Bu erişim, eşzamanlılık kontrol stratejileri adı verilen özellikler aracılığıyla sağlanır. Bu stratejiler, erişilen bilgi veya verilerin her zaman doğru olmasını ve verilerin bütünlüğünün korunmasını sağlar.
Modern çok kullanıcılı veritabanı sistemlerinin tasarımı, geçmişte aynı anda yalnızca bir kişi tarafından kullanılanlara göre önemli bir gelişmedir.
Veri artıklığı kontrolü
Bir veritabanı yaklaşımında, ideal olarak, her bir veri öğesi, veritabanında yalnızca bir konumda depolanır.
Bazı durumlarda, sistem performansını iyileştirmek için veri fazlalığı hala mevcuttur, ancak bu fazlalıklar uygulama programlaması tarafından kontrol edilir ve veritabanı tasarlanırken mümkün olan en düşük fazlalık sağlanarak minimumda tutulur.
veri değişimi
Bir kuruluş için tüm verileri bir veritabanı sistemine dahil etmenin aşağıdakiler de dahil olmak üzere birçok avantajı vardır:
İlk olarak, verilerin çalışanlar ve sisteme erişimi olan diğer kişiler arasında paylaşılmasına izin verir.
İkincisi, kullanıcılara belirli bir miktarda veriden entegrasyon olmadan mümkün olandan daha fazla bilgi üretme yeteneği verir.
Veri girişi doğrulama kısıtlamalarını uygula
Veritabanı yönetim sistemleri, kullanıcılar veri girdiğinde girilen verilerin geçerli olmasını sağlamak ve veri bütünlüğünü korumak için belirli kısıtlamaları tanımlama ve uygulama yeteneği sağlamalıdır. Veritabanlarındaki bir kısıtlama, belirli bir format kullanan bir posta kodu veya bir şehir alanına eklenen geçerli bir şehir gibi bir tabloya nelerin girilebileceğini veya düzenlenebileceğini belirleyen bir kısıtlama veya kuraldır.
Birçok veritabanı kısıtlaması türü vardır. Veri türleri, örneğin, bir alanda izin verilen veri türünü tanımlar; örneğin, sayılara atanan bir alanda yalnızca sayılara izin verilmesi kısıtlaması.
Birincil anahtar gibi verilerin kişiselleştirilmesi, mükerrer kayıtların girilmemesini sağlar.
Kısıtlamalar basit (tablo tasarımındaki basit bir kurala dayalı) veya karmaşık (karmaşık ifadelere dayalı) olabilir.
Yetki Verme ve Yetkisiz Erişimi Kısıtlama
Belirli bir veritabanı sisteminin tüm kullanıcıları aynı erişim ayrıcalıklarına sahip olmayacaktır.
Örneğin, bir kullanıcı salt okunur erişime sahip olabilir (bir dosyayı değişiklik yapmadan okuma yeteneği), diğer bir kullanıcı ise bir dosyayı okuma ve değiştirme yeteneği olan okuma-yazma ayrıcalıklarına sahip olabilir. Bu nedenle DBMS, farklı türde kullanıcı hesapları oluşturmak ve kontrol etmek, farklı yetkiler vermek ve yetkisiz erişimi kısıtlamak için bir güvenlik alt sistemi sağlamalıdır.
veri bağımsızlığı
DBMS'nin bir diğer avantajı, veri bağımsızlığına izin verme yeteneğidir.
Başka bir deyişle, sistem veri açıklamaları veya verileri (meta veriler) tanımlayan veriler uygulama yazılımından ayrılır.
Bu mümkündür çünkü veri yapısındaki değişiklikler veritabanı yönetim sistemi tarafından işlenir ve yazılımın kendisine gömülü değildir.
işleme senkronizasyonu
Veritabanı yönetim sistemi, senkronizasyon kontrol alt sistemlerini içermelidir.
Bu özellik, birden fazla kullanıcı aynı bilgiyi güncellese bile, işlem işleme sırasında bilgi veya verilerin tutarlı ve geçerli kalmasını sağlar.
Birden çok veri görünümü sağlamak
Bir DBMS, doğası gereği, birden fazla kullanıcının veri tabanına tek tek veya aynı anda erişmesine izin verir. Kullanıcıların eriştikleri verilerin nasıl ve nerede saklandığının farkında olmaları önemli değildir.
Yedekleme ve kurtarma işlevleri
Yedekleme ve kurtarma, verileri kayıptan korumanın yollarıdır. Veritabanı sistemleri, verileri yedeklemek ve geri yüklemek için ağ yedekleme işleminden ayrı bir işlem sağlar. Sabit sürücü arızalanırsa ve sabit sürücüde depolanan veritabanına erişilemezse, veritabanını kurtarmanın tek yolu bir yedekten geçer. Karmaşık bir güncellemenin ortasında bir bilgisayar sistemi arızalanırsa, veritabanının orijinal durumuna geri yüklenmesini sağlamaktan kurtarma alt sistemi sorumludur. Bunlar, bir veritabanı yönetim sisteminin iki ek avantajıdır.
Veritabanı Kullanım Örnekleri
- Kayıtlı kullanıcıları çevrimiçi satış için özel bir web sitesinde tutmak için web sitesi tasarımı.
- Sosyal hizmetlerden faydalananların arşivlenmesi ve takibi için uygulama geliştirilmesi.
- Sağlık tesisleri için tıbbi kayıt sistemi tasarımı.
- Biyoinformatik veri tabanı sistemlerinin geliştirilmesi.
- Müşteriler için bir e-posta adres defteri oluşturmak.
- Belirli kelimelerle ilgili bir belge koleksiyonu.
- Bir havayolunda uçuş rezervasyonlarının düzenlenmesi için bir sistemin geliştirilmesi.
- Bankalarda bir bankacılık sisteminin tasarımı ve geliştirilmesi.
- Şirketlerde muhasebe sisteminin geliştirilmesi.
- Okul yönetimi için özel bir sistem hazırlamak ve tasarlamak.
- Çok projeli bir ofis için bir proje yönetim sisteminin geliştirilmesi.
ve diğer sistemler.
Doğru tasarlanmış veritabanları, doğru güncel bilgilere erişim sağlar, çünkü veritabanlarıyla çalışırken hedeflere ulaşmak için doğru tasarım esastır. Bilgi tabanlarının mantıklı bir şekilde tasarlanması, şirket veya organizasyondaki ihtiyaçların karşılanmasına katkıda bulunur ve yönetimin doğru zamanda doğru kararları almasına yardımcı olur.
Bir perakende şirketinde, şirket yönetiminin belirli bir ürün için bir pazarlama mekanizması geliştirmeye çalıştığını varsayarsak, satış veritabanında depolanan bu ürünün geçmiş satışlarına ilişkin verileri analiz ederek bu amaca ulaşmak için başvurur. Bu şekilde yönetim, bu verileri analiz edebilir ve bu ürün için pazarlama planları geliştirmek için uygun yöntem ve teknikleri belirleyebilir. Yani yönetim, bu ürünün pazarlaması için gelecek planları geliştirmek için satış bilgi tabanında bulunan bu ürünün satış hareketinin tarihsel verilerini inceliyor.
Veritabanı Geliştirme
Genel olarak yazılım mühendisliğinin önemli bir yönü, geliştirme sürecinin her biri geliştirmenin bir yönüne odaklanan bir dizi aşamaya veya adıma bölünmesidir. Bu adımlar kümesine bazen Yazılım Geliştirme Yaşam Döngüsü (SDLC) adı verilir. Yazılım Ürünü, kullanımdan kalıcı olarak kesilene kadar bu yaşam döngüsü boyunca (bazen iyileştirildiği veya yeniden geliştirildiği için sık sık) hareket eder.
İdeal olarak, geliştirme yaşam döngüsündeki her aşama, bir sonraki aşamaya geçmeden önce doğrulanabilir.
Yazılım Geliştirme Yaşam Döngüsü - Şelale Modeli
Şelale modeli, çoğu yazılım mühendisliği kitabında kullanılan modeldir.
Genel olarak şelale modeli, herhangi bir bilgisayar sistemi geliştirme sürecine uygulanabilir. Süreç, bir adımın çıktısının bir sonraki adımın girdisi olduğu katı bir adımlar dizisi olarak görünür.
Formdaki her adım, bir sonraki adıma geçmeden önce tamamlanmalıdır.
Şelale modeli, her bir faaliyet için girdi ve çıktılarla birlikte gerekli görevleri tanımlamanın bir yolu olarak kullanılabilir. Önemli olan faaliyetlerin kapsamıdır.
Şelale modelinde yer alan adımlar aşağıdaki gibi özetlenebilir:
- Gereksinimlerin tanımlanması, bir gereksinim ifadesi olarak ifade edilen sistemden ne istedikleri konusunda paydaşlara danışmayı ve anlaşmayı içerir.
- Analiz, bir gereksinim beyanına bakarak başlar ve bir sistem spesifikasyonu üreterek sona erer. Spesifikasyon, bir sistemin ne yapması gerektiğinin resmi bir temsilidir ve nasıl başarılması gerektiğinden bağımsız olarak ifade edilir.
- Tasarım, sistem spesifikasyonu ile başlar, tasarım belgelerini üretir ve sistemin nasıl kurulacağına dair ayrıntılı bir açıklama sağlar.
- Uygulama, bir bilgisayar sisteminin, sistemin çalışacağı ortamı (örneğin, geliştirme için mevcut olan belirli donanım veya yazılım) dikkate alarak belirli bir tasarım belgesine göre inşa edilmesidir. Uygulama, tipik olarak, nihai bir sistem kullanıma sunulmadan önce doğrulanabilen ve test edilebilen bir başlangıç sistemi ile yapılabilir.
- Test, uygulanan sistemi dokümantasyon ve tasarım gereksinimlerinin spesifikasyonlarıyla karşılaştırır ve bir kabul raporu veya genellikle, analiz, tasarım ve düzeltilmesi gereken uygulama süreçlerinin gözden geçirilmesini gerektiren bir hatalar ve hatalar listesi üretir (test genellikle yaşam döngüsü boyunca tekrarlanan bir şelale modeline yol açan görev).
- Bakım, gereksinimlerdeki veya uygulama ortamındaki değişikliklerle ilgilenmeyi, hataları düzeltmeyi veya sistemi yeni ortamlara taşımayı içerir (örneğin, bir sistemi bağımsız bir bilgisayardan bir UNIX iş istasyonuna veya ağ ortamına geçirme). Bakım, gerekli değişiklikleri analiz etmeyi, bir çözüm tasarlamayı, bu çözümü hizmet verilen bir yazılım sisteminin ömrü boyunca uygulamayı ve test etmeyi içerdiğinden, şelale yaşam döngüsü sık sık yeniden gözden geçirilecektir.
Veritabanı Yaşam Döngüsü
Üç varsayımı içeren veritabanı geliştirme modelinin temeli olarak şelale modelini kullanabiliriz:
- Veritabanı geliştirme - bir veritabanındaki verileri tanımlamak için bir şema tanımlama ve oluşturma - veritabanını kullanan kullanıcının süreçlerinden ayrılabilir.
- Şema ile ilişkili aktiviteleri ayırt etmek için üç şemanın yapısını da temel olarak kullanabiliriz.
- Verileri kullanan her kullanıcı işlemi için ayrı ayrı değil, veri semantiğini veritabanı içinde bir kez zorlamaya ilişkin belirli kısıtlamaları temsil edebiliriz.
Bu varsayımları şelale modeli ile kullanarak, bu şematik modelin, veritabanı geliştirme için faaliyetlerin ve çıktılarının bir modeli olduğunu görebiliriz. Yalnızca ilişkisel veritabanları (veya ilişkisel bir yaklaşıma sahip veritabanları) için değil, herhangi bir DBMS sınıfı için geçerlidir.
Pratik olarak konuşursak, veritabanı geliştirme, gerçek dünya gereksinimlerini elde etme, gereksinimleri analiz etme, sistem verilerini ve işlevlerini tasarlama ve ardından sistemdeki işlemleri uygulama sürecidir.
Veritabanı geliştirme aşamaları
Veritabanı geliştirme süreci aşağıdaki aşamalardan oluşur:
- gereksinimleri toplamak
- analiz
- mantıksal tasarım
- Uygulamak
- tasarım gerçekleştirme
- Veritabanını yayınlayın
Aşağıda, bu aşamaların her birinin ayrıntılı bir açıklaması bulunmaktadır:
gereksinimleri toplamak
İlk adım gereksinimleri toplamaktır. Bu adım sırasında, veritabanı tasarımcıları, önerilen sistemi anlamak ve veri ve işlevsel gereksinimleri elde etmek ve belgelemek için müşterilerle (veritabanı kullanıcıları) görüşme yapmalıdır.
Bu adımın sonucu, kullanıcılar tarafından sunulan ayrıntılı gereksinimleri içeren bir belgedir.
Gereksinimlerin tanımlanması, veri öğelerinin anlamı ve yorumlanması hakkında bir anlaşma ile birlikte depolamak istedikleri statik veriler hakkında tüm kullanıcılar arasında danışma ve anlaşmayı içerir. Veri yöneticisi, bu süreçte, veri gereksinimlerini etkileyen iş ve yasal ve etik konulara ilişkin genel bir bakış sağlayan önemli bir rol oynar.
Veri gereksinimleri belgesi, gereksinimlerin kullanıcılar tarafından anlaşıldığını doğrulamak için kullanılır. Kolayca anlaşıldığından emin olmak için aşırı resmi veya aşırı şifreli olmamalıdır. Belge, yalnızca bir dizi bireysel gereksinim değil, tüm kullanıcıların gereksinimlerinin kısa bir özetini sağlamalıdır, çünkü amaç tek bir ortak veritabanı geliştirmektir.
Gereksinimler, verilerin nasıl işleneceğini değil, veri öğelerinin ne olduğunu, sahip oldukları özellikleri, uygulanan kısıtlamaları ve veri öğeleri arasındaki ilişkileri tanımlamalıdır.
analiz
Veri analizi, veri gereksinimlerinin beyanı ile başlar ve ardından kavramsal bir veri modeli üretilir. Analizin amacı, verilerin hem yüksek hem de düşük özelliklerinin ele alınması ve kullanılması için kullanıcının gereksinimlerine uygun verilerin ayrıntılı bir tanımını elde etmektir. Bunlar, nitelikler için izin verilebilecek olası değer aralığı gibi özellikleri içerir (örneğin, bir okul veritabanında, ders kodunda, ders başlığında ve atanan puanlarda).
Kavramsal bir veri modeli, bu verilerin kullanıcı süreçlerinde son kullanımına veya belirli bilgisayar ortamlarında veri uygulanmasına bakılmaksızın, veritabanındaki verilere odaklandığından, veritabanı geliştirme sırasında istemciler ve geliştiriciler arasında iletilen şeyin resmi, paylaşılan bir temsilini sağlar. Bu nedenle, kavramsal bir veri modeli, verilerin anlamı ve yapısıyla ilgilenir, ancak nasıl uygulandığını etkileyen ayrıntılarla ilgilenmez.
Kavramsal bir veri modeli, veritabanının içermesi gereken verilerin ve verilerin karşılaması gereken kısıtlamaların resmi bir temsilidir. Bu, modelin nasıl uygulandığından bağımsız terimlerle ifade edilmelidir. Sonuç olarak, analiz şu türdeki sorulara odaklanmaktadır: “Bu nasıl elde edilir?” değilde “Ne gerekli?” olamalıdır.
mantıksal tasarım
Veritabanı tasarımı kavramsal bir veri modeli ile başlar ve mantıksal bir şema için bir belirtim üretir. Bu, ne tür bir bilgi tabanı sisteminin gerekli olduğunu ve bunun bir ağ, ilişkisel veya nesne veritabanı olup olmadığını belirleyecektir.
Mantıksal tasarım sürecine girdi olarak kavramsal veri modelinin ilişkisel bir temsilini kullanabiliriz.
Bu aşamanın çıktısı, kavramsal veri modelindeki veri açıklamasını karşılamak için gereken tüm tabloların ve kısıtlamaların ayrıntılı bir ilişkisel belirtimi, mantıksal bir şemasıdır. Bu tasarım etkinliği sırasında, veritabanlarında verilerin temsil edilmesi için en uygun seçenekler belirlenir.
Bu seçimler, örneğin değişim esnekliği, tekrarın kontrolü ve kısıtlamaları temsil etmenin en iyi yolu dahil olmak üzere çeşitli tasarım kriterlerini hesaba katmalıdır.
Hangi verilerin depolandığını ve veritabanında nasıl işlenebileceğini tanımlayan mantıksal şema tarafından tanımlanan tablolardır.
İlişkisel veritabanlarına ve SQL'e aşina olan veritabanı tasarımcıları, kavramsal bir veri modeli ürettikten sonra doğrudan uygulamaya geçme eğiliminde olabilir. Bununla birlikte, ilişkisel temsilin SQL tablolarına bu şekilde doğrudan dönüştürülmesi, gerekli tüm özelliklere sahip bir veritabanı ile sonuçlanmayabilir:
Veritabanının mantıksal tasarımının özellikleri
- tamamlamak
- entegrasyon
- Esneklik
- Yeterlik
- kullanılabilirlik
İyi bir kavramsal veri modeli, bu özelliklere sahip bir veritabanına yönelik temel bir ilk adımdır, ancak bu, SQL tablolarına doğrudan dönüştürmenin otomatik olarak iyi veritabanları ürettiği anlamına gelmez. Bu ilk adım, kavramsal veri modeli tanımını yerine getirmek için gereken tabloları ve kısıtlamaları doğru bir şekilde temsil edecek, böylece eksiksizlik ve bütünlük gereksinimlerini karşılayacaktır, ancak esnek olmayabilir veya zayıf kullanılabilirlik sağlayabilir. Daha sonra veri tabanı tasarımının kalitesini artırmak için ilk tasarım bükülür.
Ve esneme, bir şeyi farklı bir amaç için bükme ve bükülürken yanlarını zayıflatma düşüncesini aynı anda yakalamayı amaçlayan bir terimdir.
Veritabanı tasarımında yer alan yinelemeli adımların temel amacı, kullanılacak tabloların genel görevini, her tablonun bileşen parçalarının ayrıntılı görevlerinden ayırmaktır ve bu tablolar, birbirinden bağımsız olmasalar da, birer birer kabul edilir. diğer. Tabloların revizyonunun her yinelemesi yeni bir tasarıma yol açacaktır; Bu yeni tasarımlar, işlem birden fazla döngü için tekrarlansa bile topluca ikinci kesim tasarımları olarak adlandırılır.
Veritabanı Mantıksal Tasarım Stratejileri
İlk olarak, belirli bir kavramsal veri modeli için temsil ettiği tüm kullanıcı gereksinimlerini tek bir veritabanı üzerinden karşılaması gerekli değildir. Birden fazla veritabanı geliştirmenin, farklı lokasyonlarda bağımsız çalışma ihtiyacı veya 'kendi' verileri üzerinde departman kontrolü gibi çeşitli nedenleri olabilir. Ancak, bir dizi veri tabanı fazlalık veri içeriyorsa ve kullanıcıların birden fazla veri tabanındaki verilere erişmesi gerekiyorsa, tek bir veri tabanının birden fazla gereksinimi karşılayabilmesinin veya veri yedekliliği ve dağıtımıyla ilgili sorunları inceleme ihtiyacının olası nedenleri vardır.
İkincisi, veritabanı geliştirmeyle ilgili varsayımlardan biri, veritabanının geliştirilmesini, onu kullanan kullanıcı süreçlerinin geliştirilmesinden ayırabileceğimizdir. Bu, veritabanı uygulandığında, halihazırda tanımlanmış olan kullanıcı süreçleri için gerekli olan tüm verilerin tanımlandığı ve erişilebilir olduğu beklentisine dayanmaktadır; Ancak, gelecekteki değişikliklerin gereksinimleri karşılaması için esnekliğe de ihtiyacımız var. Bazı uygulamalar için bir veritabanı geliştirirken, en yaygın istekler için tasarımımızı geliştirebilmemiz için veritabanına hangi ortak isteklerin yapılacağını tahmin etmek mümkün olabilir.
Üçüncüsü, ayrıntılı düzeyde, Veritabanı tasarımı ve uygulamasının birçok yönü, kullanılan DBMS'ye bağlıdır.
Bir DBMS seçimi sabitlenirse veya tasarım görevinden önce yapılırsa, bu seçim uygulama için beklemek yerine tasarım kriterlerini tanımlamak için kullanılabilir.
Yani, genel bir tasarım üretmek ve ardından uygulama sırasında onu DBMS'ye atamak yerine, belirli bir DBMS için tasarım kararlarını dahil etmek mümkündür.
Veritabanı mantıksal tasarım öncelikleri
Tek bir tasarımın iyi bir veritabanının tüm özelliklerini bir kerede karşılayamayacağını bulmak nadir değildir.
Bu nedenle tasarımcının bu özelliklere öncelik vermesi önemlidir (genellikle gereksinim spesifikasyonundaki bilgileri kullanarak).
Örneğin, belirli bir veritabanı sistemini geliştirmede bütünlüğün verimlilikten daha önemli olup olmadığını ve kullanılabilirliğin esneklikten daha önemli olup olmadığını belirlemek. Tasarım aşamasının sonunda, mantıksal şema, kullanıcı gereksinimlerini karşılamak için uygulanması gereken veritabanını tanımlayan SQL ,DDL ifadeleriyle tanımlanacaktır.
Uygulamak
Uygulama, mantıksal şema belirtimine göre bir veritabanı oluşturmayı içerir.
Güvenlik, harici şema vb. Uygulama, mevcut DBMS, DB araçları ve işletim ortamından büyük ölçüde etkilenir. Basitçe bir veritabanı şeması oluşturmanın ve kısıtlamaları uygulamanın ötesinde ek görevler vardır - veriler tablolara girilmeli, kullanıcılar ve kullanıcı işlemleriyle ilgili sorunlar ele alınmalı ve kurumsal veri yönetiminin daha geniş yönleriyle ilişkili yönetim faaliyetleri desteklenmelidir. DBMS yaklaşımına uygun olarak, bu endişelerin mümkün olduğunca çoğu sistem içinde ele alınmalıdır.
Bu endişelerden bazıları aşağıda kısaca ele alınacaktır:
Pratik olarak konuşursak, belirli bir DBMS'de mantıksal bir şema uygulamak, bir DBMS'nin sunması gereken belirli özellikler ve tesisler hakkında çok ayrıntılı bilgi gerektirir. İdeal bir dünyada, iyi yazılım mühendisliği uygulamalarına uygun olarak, uygulamanın ilk aşaması, tasarım gereksinimlerinin mevcut en iyi uygulama araçlarıyla eşleştirilmesini ve ardından bu araçların uygulama için kullanılmasını içerir. Veritabanları açısından, bu, uygulamamız gereken veritabanı için en uygun olan DBMS ve SQL varyantlarına sahip satıcı ürünlerini seçmeyi içerebilir. Ancak ideal bir dünyada yaşamıyoruz ve çoğu zaman donanım ve DBMS kararları, veritabanı tasarımı düşünülmeden çok önce seçilecek. Bu nedenle, uygulama, herhangi bir yazılım veya donanım sınırlamasının üstesinden gelmek için ek tasarım esnekliği içerebilir.
tasarım gerçekleştirme
Mantıksal tasarımı oluşturduktan sonra ürettiğimiz tanımlara göre veritabanımızı oluşturmamız gerekiyor.
İlişkisel veya ilişkisel bir DBMS kullanan bir uygulama için bu, mantıksal şema açıklamasını karşılayan tablolar ve kısıtlamalar oluşturmak için SQL'in kullanılmasını ve uygun depolama şemasının seçilmesini (DBMS bu düzeyde kontrole izin veriyorsa) içerecektir.
Bunu başarmanın bir yolu, uygun SQL, DDL ifadelerini DBMS tarafından yürütülebilecek bir dosyaya yazmaktır, böylece veritabanını tanımlayan SQL ifadelerinin ayrı bir kaydı, bir metin dosyası olur. Başka bir yol, (SQL Server Management Studio) veya (Microsoft Access) gibi bir veritabanı aracıyla etkileşimli olarak çalışmaktır. Mantıksal şemayı uygulamak için hangi mekanizma kullanılırsa kullanılsın, sonuç, veritabanının tablolar ve kısıtlamalarla tanımlanmış olmasıdır, ancak kullanıcı işlemleri için veri içermeyecektir.
Veritabanını yayınlamak
Veritabanını oluşturduktan sonra tabloları doldurmanın iki yolu vardır:
- Ya: mevcut verilerden.
- Veya: veritabanı için kullanıcı tarafından geliştirilen uygulamaların kullanımı yoluyla.
Bazı tablolar için, bir veritabanından veya diğer veri dosyalarından mevcut veriler olabilir.
Örneğin, bir hastane için veri tabanı oluştururken, veri tabanına dahil edilmesi gereken tüm çalışanlar için halihazırda bazı kayıtların olması beklenebilir. Veriler ayrıca bir dış kuruluştan getirilebilir (adres listeleri genellikle dış şirketlerden getirilir) veya büyük bir veri girişi işi sırasında üretilebilir (manuel kayıtlar özel bir veri giriş kuruluşu tarafından bilgisayar dosyalarına dönüştürülebilir). Bu gibi durumlarda, veritabanını doldurmanın en basit yolu, DBMS'de bulunan alma ve verme işlevlerini kullanmaktır.
Genellikle çeşitli standart formatlardaki verileri içe ve dışa aktarma olanakları vardır (bu işlevler bazı sistemlerde veri yükleme ve boşaltma olarak da bilinir). İçe aktarma, veri dosyasının doğrudan bir tabloya kopyalanmasını sağlar. Veriler, içe aktarma işlevinin kullanımına uygun olmayan bir dosya formatında tutulduğunda, eski verileri okuyan, gerektiği gibi dönüştüren ve ardından SQL kodunu kullanarak veritabanına ekleyen bir uygulama programı kurmak gerekir. veya bu amaç için özel olarak üretilmiş kod. Büyük miktarda mevcut veriyi bir veritabanına taşımak, büyük bir ek yük olarak adlandırılır. Toplu yüklemenin sonuna kadar kısıtlama kontrolünü ertelemek için bir DBMS olanağı olduğunu bulana kadar, verilerin toplu yüklenmesi, her seferinde bir tablo olmak üzere çok büyük miktarda veri yüklenmesini içerebilir.
Veritabanı tasarım şeması geliştirme yönergeleri
Not: Bu, fiziksel veritabanlarının (mantıksal model) tasarımı için güçlü bir temel geliştirmeye yardımcı olan genel bir yönergedir.
- Bilgi toplama aşamasında tespit edilen tüm varlıkların belgelenmesi.
- Her bir varlığa ait tüm nitelikleri belgelemek. Filtreyi ve birincil anahtarları tanımlamak. Her varlığın anahtar olmayan tüm özniteliklerinin tamamen birincil anahtara bağlı olduğundan emin olmak.
- Bir başlangıç ER denetimi taslağı geliştirin ve uygun personelle gözden geçirmek, (Bu yinelemeli bir süreçtir).
- Çok değerli nitelikler ve yinelenen gruplar için yeni varlıklar (tablolar) oluşturmak.
ve bu yeni varlıkları (tabloları) birleştirmek. - Tablo normalleştirme yoluyla ER modellemesinin doğrulanması.
Veritabanı Terminolojisi
tablolar
Bir veritabanı, bilgileri elektronik tablo benzeri satır ve sütunların listeleri olan tablolar adı verilen özel kaplar halinde düzenlemek.
Basit bir veritabanında yalnızca bir tablomuz olabilir, ancak çoğu veritabanında genellikle birden fazla tablo gerekir.
Örneğin, bir şirketin veri tabanında, ürünler hakkında bilgi içeren bir tabloya, satın alma siparişleri hakkında bilgi içeren başka bir tabloya ve müşterilerle ilgili bilgileri içeren başka bir tabloya ihtiyaç duyulabilir.
kayıtlar ve alanlar
Tablolarda her satıra kayıt, her sütuna alan adı verilir.
Kayıt, bir şey hakkında bilgi toplamanın anlamlı ve tutarlı bir yoludur.
Bir alan tek bir bilgi öğesiyken, her kayıtta görünen öğe türüdür.
Örneğin, Ürünler tablosunda, her satır veya kayıt bir ürün hakkında bilgi içerebilir ve bu kayıttaki her sütun veya alan, o ürünle ilgili ad veya fiyat gibi bir tür bilgi içerebilir.
birincil anahtar
Bir tablodaki birincil anahtar, her satırı benzersiz bir şekilde, yani tekrarlanamaz bir şekilde tanımlamak için kullanılan bir sütundur.
Birincil anahtar örnekleri şunlardır: bir çalışan kimlik numarası, bir kişisel kimlik kartı numarası veya Ürün Tanımlama Tablosundaki bir Ürün Kimliği olabilir.
İyi Veritabanı Tasarımı
Doğru olması için veritabanı tasarım sürecini yönlendirecek bazı ilkeler vardır.
Bu ilkeler arasında:
İlke 1: Veri fazlalığından kaç
Bu ilke, veri tabanının fazla veri içermemesi için veri fazlalığından kaçınmak anlamına gelir. Aşırı veri geçersizdir çünkü alanı boşa harcar ve hata ve tutarsızlık potansiyelini artırır.
İkinci ilke: bilginin doğruluğu, doğruluğu ve bütünlüğü
Bu, iyi bir veritabanı tasarımının önemli bir ilkesidir, sanki veritabanı yanlış bilgiler içeriyormuş gibi, veritabanından bilgi çeken herhangi bir rapor da yanlış bilgi içerecektir. Sonuç olarak, yönetimin bu raporlara dayanarak vereceği kararlar yanıltıcı olacaktır, yani yanlış bilgilere dayanmaktadır.
Bu nedenle, iyi bir veritabanı tasarım özelliği şunları gerektirir:
- Fazlalığı azaltmak için bilgileri başlıklarla tablolara bölmek.
- Tablolardaki bilgileri gerektiği gibi birleştirmek.
- Verilerin doğruluğunu, geçerliliğini ve bütünlüğünü sağlamak.
Veritabanı Tasarım Adımları
Veritabanı tasarım adımları aşağıdakilerden oluşur:
- Veritabanının amacını belirlemek.
- Gerekli bilgileri belirlemek ve düzenlemek.
- Bilgileri tablolara ayırın.
- Bilgi öğelerini sütunlara dönüştürün.
- Birincil anahtarları tanımlamak.
- Tablolar arasında ilişkiler oluşturmak:
- Bire çok ilişki
- veya çoktan çoğa ilişki
- bire bir ilişki
Aşağıda her adımın ayrıntılı bir açıklaması ekledim:
Veritabanının amacını belirlemek
Veritabanının amacının belirlenmesi, optimal veritabanı tasarım sürecine hazırlanmaya yardımcı olur.
Bilgi tabanının tasarımına başlamadan önce bilgi tabanının amacını kağıda yazmamız önerilir.
Yazmanın amacı, veri tabanının nasıl kullanılacağını netleştirmek ve bu kullanım için gereksinimleri ana hatlarıyla belirtmektir.
Evden çalışan bir şirket için küçük bir bilgi tabanı için, Örneğin, "Müşteri veritabanı, posta yazışmaları ve raporlar oluşturmak amacıyla müşteri bilgilerinin bir listesini tutar" gibi basit bir şey yazabiliriz. Veritabanı daha karmaşıksa veya birçok kişi tarafından kullanılıyorsa ve bu genellikle büyük şirketlerde ve kuruluşlarda oluyorsa, amaç bir veya daha fazla paragraf olabilir ve her bir kişinin veritabanını nasıl ve ne zaman kullandığını içermelidir. Buradaki fikir, iyi geliştirilmiş bir misyon beyanına sahip olmaktır. Tasarım süreci ile belirtilebilir. Aslında böyle bir ifadeye sahip olmak, karar verirken hedeflere odaklanmamıza yardımcı olur.
Gerekli bilgileri belirlemek ve düzenlemek
Bu adımda, bilgi tabanına kaydedilmesi gerekebilecek her türlü bilgi toplanır, örneğin:
- Ürün Bilgisi
- veya satış bilgileri
- veya tedarikçiler hakkında bilgi
- ..vb
Örneğin, satınalma siparişleri deftere kaydedilebilir ve müşteri bilgileri kağıt formlara kaydedilebilir.
Daha sonra belgeleri toplarız ve mevcut formlarımız yoksa, örneğin bir formda doldurduğumuz her kutuyu gösteren her tür bilgiyi listeleriz. Müşteri bilgilerini kaydetmek için bir formun tasarlanması gerektiğini varsayarsak, forma hangi bilgileri koymak istiyoruz? Hangi ambalaj kutularını oluşturmak istiyoruz? Bu öğelerin her birini tanımlar ve listeleriz.
Örneğin, şu anda dizin kartlarında bir müşteri listesi tuttuğumuzu varsayalım. Bu kartların incelenmesi, her kartın müşterinin adını, adresini, şehri, eyaleti, posta kodunu ve telefon numarasını içerdiğini gösterebilir.
Bu öğelerin her biri, bir tablodaki potansiyel bir sütunu temsil eder.
Bu listeyi hazırlarken bu, ilk seferde mükemmel bir şekilde tamamlamanız gerektiği anlamına gelmez. Alternatif olarak akla gelen her madde listelenebilir.
Veritabanını birden fazla kişi kullanıyorsa, fikirleri de talep edilebilir. Menü daha sonra da ayarlanabilir.
Verileri çıktı ihtiyaçlarına göre düzenlemek
Ardından, veritabanından oluşturulacak rapor veya posta türlerini düşünün.
Örneğin, bir ürün satış raporunun bölgeye göre satışları göstermesini veya ürün stok düzeylerini gösteren bir özet envanter raporunu isteyebiliriz.
Ayrıca, bir satış etkinliğini duyuran veya bir ödül sunan müşterilere göndermek için form mektupları oluşturmak isteyebiliriz. Rapor tasarlandı ve nasıl görüneceğini hayal edin. Rapora hangi bilgileri dahil etmek istiyoruz? Her öğeyi listeliyoruz. Daha sonra form mektubu ve oluşturmak istediğimiz diğer raporlar için de aynısını yapıyoruz.
Oluşturmak isteyebileceğimiz raporlar ve postalar hakkında bir fikir edinmek, veritabanında hangi öğelere ihtiyacımız olacağını belirlemeye yardımcı olur.
Örneğin, müşterilere periyodik e-posta güncellemelerini seçme (veya abonelikten çıkma) fırsatı verdiğimizi ve abone olan kişilerin bir listesini yazdırmak istediğimizi varsayalım. Bu bilgileri kaydetmek için Müşteriler tablosuna bir "E-posta gönder" sütunu eklenebilir. Alan, her müşteri için 'evet' veya 'hayır' olarak ayarlanabilir.
Müşterilere e-posta gönderme prosedürü, kaydedilmesi gereken başka bir öğe önerir. Bir müşterinin e-posta almak istediğini bildiğimizde, mesaj göndereceğimiz e-posta adresini de bilmemiz gerekir. Bu nedenle her müşterinin e-posta adresini kaydetmemiz gerekiyor.
Raporu oluşturmak için ihtiyaç duyacağımız unsurları göz önünde bulundurarak, her rapor veya çıktı listesi için bir prototip oluşturmak uygundur.
örnek bir mektubu incelerken aklımıza bazı şeyler gelebilir. “Bay” veya “Bayan” selamı ile başlayan önsöz gibi uygun bir selamlamayı dahil etmek istiyorsak, bir selamlama öğesi oluşturulmalıdır. Mektuba “Sevgili Kaneki Bey” yerine “Sevgili Kudo Bey” ile de başlayabiliriz. Bu, bireysel olarak kullanılabilmesi için soyadını ilk addan ayrı tutmak istediğimizi gösterir.
Daha küçük parçalara ayırma
Hatırlanması gereken ana nokta, her bir bilgiyi daha küçük, kullanışlı parçalara bölmektir.
Örneğin, adla ilgili olarak, soyadını kolayca sağlamak için ad ve soyadı olmak üzere iki kısma ayrılabilir. Örneğin, bir raporu soyadına göre sıralamak için müşterinin soyadının ayrı olarak saklanması yararlı olur. Genel olarak, bir bilgi unsuruna dayalı olarak sıralamak, araştırmak, hesaplamak veya bir rapor sunmak istiyorsak, o unsurun kendi alanına yerleştirilmesi gerekir.
Veritabanında cevabını bulmak istediğimiz soruları düşünerek: Geçen ay kaç premium ürün satışı yaptık? En iyi müşterilerimiz nerede yaşıyor? Çok satan ürünün tedarikçisi kimdir? Bu sorular, veri tabanındaki daha fazla öğeyi belirlemede veya onu daha küçük parçalara ayırma ihtiyacını en baştan belirlememize yardımcı olacaktır.
Bu bilgileri topladıktan sonra, bir sonraki adıma hazır olacağız.
Bilgileri tablolara bölme
Bu adımda, bilgi öğeleri adreslere veya ana birimlere bölünür, her birim birbiriyle ilişkili ve belirli bir algoritma ile ilgili, örneğin çalışanlar için bir adres, ürünler için bir başlık ve siparişler için bir adres gibi bir dizi bilgiyi temsil eder.
Bilgileri tablolara bölmek için ana birimler veya başlıklar seçilir.
Örneğin, bilgi öğelerimiz ürünler, tedarikçiler, müşteriler ve siparişlerle ilgili verileri içeriyorsa. Bu dört tabloyla başlamak mantıklıdır:
- birinci tablo: ürünler hakkında bilgi
- ikinci tablo: tedarikçiler hakkında bilgi
- Üçüncü tablo: Müşteriler hakkında bilgiler
- Dördüncü tablo: Uygulamalar hakkında bilgi
Bu oluşturulabilecek tabloların tam listesi olmasa da iyi bir başlangıç noktasıdır.
Bu tablolar, iyi işleyen bir tasarım elde edilene kadar geliştirilmeye devam edilebilir.
Her tabloda bulunan temel öğelerin listesini incelerken, bunları önceki resimde gösterilen dört tablo yerine tek bir tabloya yerleştirmeyi düşünebiliriz.
Ancak bunun neden kötü bir fikir olduğunu aşağıdaki örnekte öğreneceğiz.
Açıklayıcı örnek
Bir tablonun siparişler için tasarlandığını ve sanki içindeki her satır ürün ve tedarikçisi hakkında bilgi içeriyormuş gibi birden fazla tablodaki tüm ham verileri içerdiğini varsayalım. Aynı tedarikçiden çok sayıda ürün alınabileceğinden, tedarikçinin isim ve adres bilgilerinin birkaç kez tekrarlanması gerektiği sonucu çıkar.
Bu, disk depolama alanı kaybı kadar zaman ve emek kaybıdır. Bu nedenle, tedarikçi bilgilerini ayrı bir Tedarikçi tablosuna yalnızca bir kez kaydetmek ve ardından bu tabloyu Ürünler tablosuna bağlamak çok daha iyi bir çözümdür.
değişiklik ihtiyaçları
İkinci sorun ise bilgilerin tablolara bölünüp tek bir tabloya konmaması, bu da belirli bilgileri değiştirmemiz gerektiğinde sorun yaratıyor.
Örneğin, bir kaynağın adresini değiştirmemiz gerektiğini ve aynı toplu tabloda birkaç yerde göründüğü için, bu yerlerin hepsinde adresi değiştirmemiz gerektiğini varsayalım,
Adresi yanlışlıkla bir yerde değiştirebilir, diğer yerlerde değiştirmeyi unutabiliriz,
Yani kaynak adresini tek bir yere kaydetmek bu sorunu çözer.
Bir veritabanı tasarlarken, her bilgi parçası her zaman yalnızca bir kez kaydedilmelidir. Kendimizi belirli bir kaynağın adresi gibi birden fazla yerde aynı bilgiyi tekrarlarken bulursak, veritabanının tasarımının iyi olmadığı ve bu nedenle bu bilgilerin ayrı bir tabloya konulması gerektiği söylenebilir. tasarım daha kaliteli ve verimli hale gelir.
silme ihtiyaçları
Son olarak, belirli bir şirket tarafından sağlanan yalnızca bir ürün olduğunu ve adres ve tedarikçi adı bilgilerini korurken onu silmek istediğimizi varsayalım. Tedarikçi bilgilerini kaybetmeden ürün geçmişini nasıl silmek isteriz? Elbette bunu yapamayız. Her kayıt, ürünlerle ilgili bilgilerin yanı sıra tedarikçi bilgilerini de içerdiğinden, birini silmeden diğerini silemeyiz. Aşağıdaki bilgileri ayrı tutmak için tabloyu ikiye bölmeliyiz: biri ürün bilgisi için, diğeri tedarikçi bilgisi için. Bir ürün kaydının silinmesi, tedarikçiyle ilgili bilgileri değil, yalnızca ürünle ilgili bilgileri silmelidir.
Tabloda temsil edilen başlığı seçerken, sütunlar yalnızca başlıkla ilgili bilgileri içermelidir.
Örneğin, Ürünler tablosu yalnızca ürünlerle ilgili bilgileri depolamalıdır. Tedarikçinin adresi ürünle ilgili değil tedarikçiyle ilgili bilgiler olduğundan Tedarikçiler tablosuna aittir.
Bilgi öğelerini sütunlara dönüştürmek
Bu adımda, her tabloda hangi bilgileri saklamak istediğimize karar veriyoruz. burada her öğe bir alan olur ve tabloda bir sütun olarak görüntülenir.
Örneğin, Çalışanlar tablosu "Çalışan Adı", "Soyadı", "Çalışma Tarihi" vb. alanları içerebilir.
Bir tablodaki sütunları seçmek için, tabloya kaydedilen adres detayları için ihtiyacımız olan bilgiler belirtilir.
Örneğin, "Müşteriler" tablosu için tablonun sütunları aşağıdaki ayrıntılı veriler olabilir:
- İsim
- adres
- Şehir
- eyalet
- posta kodu
- Bir e-posta göndermek
- selamlamak
- E-posta adresi
- vb..
Tablodaki her kayıt, her kayıt için ad, adres, şehir, eyalet, posta kodu ve e-posta, selamlama, bilgileri saklayabileceğiniz aynı sütun kümesini içerir. Örneğin, Adres sütunu müşterilerin adreslerini içerir. Her kayıt bir müşteri hakkında bilgi içerir ve Adres alanı o müşterinin adresini içerir.
Her tablo için ilk sütun kümesini seçtikten sonra sütunlar optimize edilebilir.
Örneğin, müşteri adının iki ayrı sütun olarak saklanması tercih edilir: ad ve soyadı, çünkü yalnızca bu sütunlar sıralanabilir, aranabilir ve dizine eklenebilir. Benzer şekilde, bir adres aslında beş ayrı bileşenden oluşur: adres, şehir, eyalet, posta kodu ve ayrı sütunlarda saklamak için kullanışlı olan ülke/bölge. Örneğin bir arama, sıralama veya duruma göre filtreleme yapmak istiyorsak, ayrı bir sütunda saklanan durum bilgisine ihtiyacımız var.
Veritabanının sadece yerel bilgileri mi yoksa uluslararası bilgileri mi içerdiğine de dikkat edilmelidir.
Örneğin, uluslararası adresleri saklamayı planlıyorsak, böyle bir sütun yerel eyaletleri ve diğer ülkelerin/bölgelerin bölgelerini içerebileceğinden, Eyalet yerine Bölge sütununun olması tercih edilir.
Benzer şekilde, uluslararası adresleri saklamak istiyorsak posta kodu daha iyi olabilir.
Bir tablo için sütun seçmeye ilişkin bazı önemli ipuçları:
Hesaplanan veriler içermemek
Çoğu durumda, hesaplamaların sonucu tablolarda saklanmamalıdır.
Alternatif olarak, işlemin sonucunu görmek istediğimizde hesaplamaların sonuçları alınabilir.
Örneğin, bilgi tabanındaki her ürün kategorisi için siparişteki birimlerin alt toplamını görüntüleyen bir "Siparişteki Ürünler" raporu olduğunu varsayalım. Ancak herhangi bir tabloda sıralı birimlerin alt toplamı için sütun yoktur. Bunun yerine, Ürünler tablosu, her ürün için sipariş üzerine birimleri depolayan bir "Sipariş Üzerine Birimler" sütununu içerir. Bu verilerle, raporu her yazdırdığımızda veritabanı bir ara toplam hesaplar.
Yani, ara toplamın kendisi bir tabloda saklanmamalıdır.
Bilgileri daha küçük mantıksal parçalarda saklamak
Ürün açıklamalarıyla birlikte tam adlar veya ürün adları için bir alana ihtiyacımız olabilir.
Bir alanda birden fazla bilgi türünü birleştirirsek, daha sonra tek tek bilgileri almak zor olacaktır.
En iyi tasarım, bilgiyi mantıksal parçalara bölmektir.
Örneğin, ad ve soyadı için veya ürün adı, kategorisi ve açıklaması için ayrı alanlar oluşturulabilir.
Her tablodaki veri sütunlarını optimize ettiğimizde, tablo bir sonraki adım olan birincil anahtarını seçmeye hazırdır.
Veritabanlarında birincil anahtarları tanımlamak
Bu adımda, her tablo için birincil anahtar seçilir.
Birincil anahtar, her satırı benzersiz şekilde tanımlamak için kullanılan bir sütundur.
mesela:
- "Ürün Kimliği" veya
- "Talep kimliği"
Her tablo, tabloda depolanan her satırı benzersiz şekilde tanımlayan bir sütun veya sütun kümesi içermelidir. Bu, genellikle çalışan kimlik numarası veya seri numarası gibi benzersiz bir tanımlayıcı numaradır. Veritabanı terminolojisinde bu bilgilere tablonun birincil anahtarı denir. Bir veritabanı ortamı, verileri birden çok tablo arasında hızlı bir şekilde elektronik olarak ilişkilendirmek ve verileri manuel olarak toplamak zorunda kalmadan bir araya getirmek için birincil anahtar alanlarını kullanır.
Bir tablo için, katalogdaki her ürünü benzersiz şekilde tanımlayan bir ürün numarası gibi benzersiz bir tanımlayıcımız varsa, bu tanımlayıcı tablonun birincil anahtarı olarak kullanılabilir, ancak yalnızca o sütundaki değerler her biri için her zaman farklıysa kayıt, yani tekrarlanamazlar çünkü birincil anahtarda yinelenen değerler olamaz. Örneğin, adlar benzersiz olmadığı için kişilerin adları birincil anahtar olarak kullanılamaz. Aynı masada aynı isimde iki kişiyi rahatlıkla alabiliriz.
Birincil anahtar değeri
Birincil anahtara her zaman bir değer sağlanmalıdır.
Sütun değeri belirtilmemişse veya bazen bilinmiyorsa (eksik değer), birincil anahtarda bir bileşen olarak kullanılamaz.
Ayrıca her zaman değeri değişmeyecek bir birincil anahtar seçmeliyiz.
Bir tablonun birincil anahtarı, birden fazla tablo kullanan bir veritabanındaki diğer tablolara referans olarak kullanılabilir. Birincil anahtar değiştirilirse, değişiklik, anahtarın referans alındığı her yerde de uygulanmalıdır. Değişmeyecek bir birincil anahtarın kullanılması, bu anahtara atıfta bulunan diğer tablolarla senkronize edilmeme, yani bir ilişki ile ilişkilendirilme olasılığını azaltır.
Genellikle birincil anahtar olarak rastgele benzersiz bir sayı kullanılır. Örneğin, her siparişe benzersiz bir sipariş numarası atayabilirsin. Sipariş numarasının tek amacı siparişi tanımlamaktır. Bir kez ayarlandıktan sonra bu sayı değiştirilemez.
Birincil anahtar otomatik numaralandırma
Herhangi bir sütunu veya sütun grubunu uygun birincil anahtar olarak seçmeyi düşünmüyorsak, Otomatik Sayı veri tipine sahip bir sütun kullanılmalıdır. Otomatik Sayı veri türü kullanıldığında, her kayıt için otomatik olarak bir otomatik seri değeri oluşturulur. Bu tanımlayıcı türü yanlıştır; Temsil ettiğiniz sınıfı tanımlayan gerçek bir bilgi içermez. Yanlış tanımlayıcılar, değişmeyecekleri için birincil anahtar olarak kullanım için idealdir. Telefon numarası veya müşteri adı gibi satırla ilgili bilgileri içeren birincil anahtar, gerçek bilgilerin kendisi değişebileceğinden büyük olasılıkla değişecektir.
Otomatik Sayı veri türüne atanan sütun, iki ürün kimliği aynı olmadığı için genellikle iyi bir birincil anahtar olarak kullanılabilir.
Bazı durumlarda, tablonun birincil anahtarını sağlamak için iki veya daha fazla alanı birlikte kullanmamız gerekebilir.
Örneğin, siparişler için kayıt öğelerini depolayan bir Sipariş Ayrıntıları tablosu, birincil anahtarında iki sütun kullanabilir: sipariş kimliği ve ürün kimliği.
Birincil anahtar birden fazla sütun kullandığında buna bileşik anahtar da denir.
Bir ürün satış veritabanı için, her tablonun birincil anahtar görevi görmesi için bir Otomatik Sayı sütunu oluşturulabilir.
Örneğin, Ürünler tablosu için ürün kimliği, Siparişler tablosu için Sipariş Kimliği, Müşteriler tablosu için Müşteri Kimliği ve Tedarikçiler tablosu için Tedarikçi Kimliği oluşturulabilir.
Veritabanlarında tablolar arasında ilişkiler oluşturmak
Bu adımda, her tablo gözden geçirilir ve bir tablodaki verilerin diğer tablolardaki verilerle nasıl bir ilişkisi vardır.
Gerekirse, ilişkileri netleştirmek için tablolara alanlar eklenebilir veya yeni tablolar oluşturulabilir.
Örneğin Ürünler tablosu ile Satış tablosu arasında "Ürün No" alanı üzerinden bağlantı kurulabilir, böylece ürün için "Ürün No" bazında yapılan tüm satış işlemleri Satış tablosunda görünür, ancak Satış tablosundaki tüm ürün verilerini tekrarlamak.
Artık bilgileri tablolara ayırdığımıza göre, bilgileri anlamlı yollarla tekrar bir araya getirmenin bir yoluna ihtiyacımız var.
Örneğin, bir form birkaç tablodan bilgi içerir ve içindeki bilgiler aşağıdaki tablodan gelir:
- müşteri tablosu
- personel tablosu
- siparişler tablosu
- Ürünler tablosu
- ve sipariş detayları tablosu
İlişkisel bir veritabanı yönetim sisteminde, bilgiler ayrı tablolara, adreslere dayalı tablolara bölünebilir. Tablo ilişkileri daha sonra gerekirse bilgileri birbirine bağlamak ve bir araya getirmek için kullanılabilir.
Veritabanlarında üç tür ilişki vardır:
- Bire çok ilişki
- veya çoktan çoğa ilişki
- Ya da bire bir ilişki
Aşağıda, bu tür ilişkilerin her birinin nasıl oluşturulacağına ilişkin ayrıntılı bir açıklama verilmiştir:
Bire çok ilişki oluşturmak
Birinci tablodaki her bir kayıt için ikinci tabloda onunla ilişkilendirilmiş birden çok kaydın bulunduğu bir-çok ilişkisi.
Örneğin, bir ürün siparişi veri tabanındaki Ürünler ve Tedarikçiler tablolarında, bir tedarikçinin herhangi bir sayıda ürünü tedarik edebileceği bilinmektedir.
Tedarikçiler tablosundaki herhangi bir kaynağın Ürünler tablosunda çok sayıda ürün olduğu sonucu çıkar.
Bu nedenle, Tedarikçiler tablosu ile Ürünler tablosu arasındaki ilişki bire çok ilişki türüdür.
Veritabanı tasarımında bir-çok ilişkisini temsil etmek için, ilişkinin “bir” tarafındaki birincil anahtarı kullanırız ve ardından onu ilişkinin “çok” tarafındaki tabloya ek bir sütun olarak ekleriz. Bu durumda Tedarikçiler tablosundan Tedarikçi Kimliği sütununu Ürünler tablosuna ekliyoruz. Ürünler tablosundaki müşteri kimlik numarası, her ürün için doğru tedarikçiyi otomatik olarak bulmak için kullanılacaktır.
Ürünler tablosundaki Tedarikçi Kimliği sütununa yabancı anahtar adı verilir.
Yabancı anahtar, başka bir tablonun birincil anahtarıdır.
Ürünler tablosundaki Tedarikçi Kimliği sütunu, aynı zamanda Tedarikçiler tablosundaki birincil anahtar olduğundan bir yabancı anahtardır.
Bağlantılı tabloların birleştirilmesinin temeli, birincil anahtarlar ve yabancı anahtarlar oluşturularak sağlanabilir.
Hangi tabloların ortak bir sütunu paylaşması gerektiğinden emin değilsek, birden çoğa ilişki belirtmek, dahil edilen iki tablonun ortak bir sütun gerektirmesini sağlar.
Çoktan çoğa ilişki oluşturun
İlk tablodaki her bir kayıt için ikinci tabloda onunla ilişkili birden çok kaydın olabileceği çoktan çoğa ilişki.
Ve tam tersi, ikinci tablodaki her kayıt için, birinci tabloda onunla ilişkili birden fazla kayıt olabilir.
Örneğin, Ürünler tablosu ile Siparişler tablosu arasındaki ilişki. Bir sipariş birden fazla ürün içerebilir.
Öte yandan, bir ürün birkaç siparişte görünebilir.
Bu nedenle, Siparişler tablosundaki her kaydın Ürünler tablosunda birden çok kaydı olabilir.
Ürünler tablosundaki her kaydın Siparişler tablosunda birden çok kaydı olabilir.
Bu tür bir ilişkiye çoktan çoğa ilişki denir, çünkü herhangi bir ürünün birçok siparişi olabilir ve herhangi bir siparişin birçok ürünü olabilir.
Tablolar arasında çoktan çoğa ilişkileri keşfetmek için ilişkinin her iki tarafını da dikkate almanın önemli olduğuna dikkat edilmelidir.
İki tablo başlığı, Siparişler ve Ürünler, çoktan çoğa bir ilişki içerir. Bu bir sorun.
Sorunu anlamak için, Siparişler tablosuna Ürün Kimliği alanını ekleyerek iki tablo arasında bir ilişki oluşturmaya çalışırsak ne olacağını hayal edelim. Sipariş başına birden fazla ürün olması için siparişler tablosunda sipariş başına birden fazla kayda ihtiyacımız olacaktır. Tek bir siparişle ilişkili her satır için sipariş bilgilerini tekrarlayabiliriz, bu da hatalı verilere yol açabilecek yetersiz bir tasarımla sonuçlanır. Ürünler tablosuna OrderID alanı koyarsak her ürün için Ürünler tablosunda birden fazla kaydımız olacağı için aynı sorunla karşılaşacağız. Bu sorun nasıl çözülebilir?
Çoktan çoğa ilişki oluşturma problemini çözüm
Çözüm, çoktan çoğa ilişkiyi iki bire çoğa ilişkiye böldüğümüz, genellikle "sipariş ayrıntıları" tablosu olarak adlandırılan üçüncü bir tablo oluşturmaktır.
Daha sonra iki tablonun her birinden birincil anahtar üçüncü tabloya eklenebilir.
Sonuç olarak, üçüncü tablo, ilişkinin tüm oluşumlarını veya örneklerini kaydeder.
Sipariş Ayrıntıları tablosundaki her kayıt, siparişteki bir kayıt öğesini temsil eder.
Sipariş Ayrıntıları tablosunun birincil anahtarı, Siparişler ve Ürünler tablolarından iki yabancı anahtar alanından oluşur.
Tek bir siparişin birçok kayıt öğesi olabileceğinden, yalnızca OrderID alanının kullanılması bu tablo için birincil anahtar olarak çalışmaz. Alan benzersiz değerler içermediğinden sipariş kimliği, siparişteki her kayıt öğesi için tekrarlanır. Tek bir ürün birçok farklı siparişte görünebileceğinden yalnızca PID alanını kullanmak da işe yaramaz.
Ancak iki alan birleştirildiğinde, bu her zaman her kayıt için benzersiz bir değerle sonuçlanır.
Bir ürün satış veritabanında, siparişler tablosu ve ürünler tablosu birbiriyle doğrudan ilişkili değildir.
Ancak bunlar, bir sipariş detay tablosu yoluyla dolaylı olarak ilişkilidir.
Siparişler ve ürünler arasındaki çoktan çoğa ilişki, bire çok ilişkiler kullanılarak veritabanında temsil edilir, böylece:
- Siparişler tablosu ve Sipariş Ayrıntıları tablosu bire çok ilişkisine sahiptir. Her isteğin birden fazla kayıt öğesi olabilir, ancak her kayıt öğesi yalnızca bir istekle ilgilidir.
- Ürünler tablosu ve Sipariş Ayrıntıları tablosu bire çok ilişkisine sahiptir. Her ürünün kendisiyle ilişkilendirilmiş birçok günlük öğesi olabilir, ancak her günlük öğesi yalnızca bir ürüne atıfta bulunur.
“Sipariş Detayı” tablosundan belirli bir siparişteki tüm ürünler seçilebilir. Belirli bir ürün için tüm siparişler de seçilebilir.
Bire bir ilişki oluşturmak
Birinci tablodaki her ilgili kayıt için ikinci tablodaki eşleşen bir kayıt olduğu bire bir ilişki.
Örneğin, nadiren ihtiyaç duyabileceğimiz veya yalnızca birkaç ürün için geçerli olan bazı özel ek ürün bilgilerini kaydetmemiz gerektiğini varsayalım. Bilgiye çok sık ihtiyaç duymadığımız için ayrı bir tabloya yerleştirilebilir ve Ürünler tablosunda bilgi depolamak, uygulanmadığı her ürün için boş alan oluşturabilir. Örneğin, bir ürünler tablosu oluşturulabilir ve ürün kimliği birincil anahtar olarak kullanılabilir. Bu ek tablo ile ürün tablosu arasındaki ilişki bire bir ilişkidir. Ürünler tablosundaki her kayıt için Ek Tabloda eşleşen bir kayıt vardır.
Bu tür bir ilişki tanımlanırken, iki tablo ortak bir alanı paylaşmalıdır.
Veritabanında bire bir ilişkiye ihtiyaç duyulduğunda, iki tablodan gelen bilgiler tek bir tabloda bir araya getirilebilir.
Bunu, verilerin doğası ve tüm kayıtların kullanılabilirliği ile ilgili herhangi bir nedenle yapmak istemezsek, ek tablo oluşturma yöntemini kullanırız.
Aşağıdaki liste, ilişkinin tasarımda nasıl temsil edildiğini gösterir:
- İki tablo aynı adrese sahipse, ilişki iki tabloda aynı birincil anahtar kullanılarak kurulabilir.
- Eğer iki tablo farklı adreslere ve farklı birincil anahtarlara sahipse, tablolardan biri seçilir ve birincil anahtarı diğer tabloya yabancı anahtar olarak eklenir.
Tablolar arasındaki ilişkileri tanımlamak, doğru tabloları ve sütunları aldığınızdan emin olmanıza yardımcı olur.
Bire bir veya bire çoğa ilişki olduğunda, ilgili tablolar ortak bir sütun veya sütunları paylaşmalıdır.
Çoktan çoğa ilişki olduğunda, ilişkiyi doğru bir şekilde temsil etmek için üçüncü bir tablo sağlanmalıdır.
Veritabanları Neden Önemlidir?
Veritabanları, çeşitli iş alanlarında büyük önem taşır ve aşağıdakiler de dahil olmak üzere birçok noktada önemleri öne çıkar:
- Veritabanları, içerdikleri verilere erişim sürecini hızlandırmaya büyük ölçüde yardımcı olur, bu nedenle, burada ve orada arama yapmak yerine, gerekli veriler toplanır, böylece erişim ve işleme veya gelecekte çeşitli işlerde kullanma sürecini kolaylaştırır.
- Veritabanları, gelecekte bu verilerin değiştirilmesi sürecini büyük ölçüde kolaylaştırmakta ve silme veya ekleme işlemlerini kolaylaştırmanın yanı sıra gerekli güncellemelerin yapılması sürecini de büyük ölçüde kolaylaştırmaktadır.
- Veritabanları, bu kurallar dahilinde kaydedilen ve saklanan verilerle doğrudan ilgili herhangi bir soruyu veya soruyu herhangi bir zamanda yanıtlamaya yardımcı olur.
- Yönetimini ve geri alınmasını kolaylaştırmak için büyük verileri hiyerarşik bir şekilde koordine etmeye ve gruplandırmaya yardımcı olur.
- Kullanışlı ve verimli bir veritabanı yönetim sistemi, marka yöneticilerinin yalnızca daha yeni bilgiler girmesine değil, aynı zamanda mevcut bilgileri güncellemelerine ve ihtiyaç duymadıkları bilgileri silmelerine olanak tanır.
- Örneğin, bir satıcı 1.000 birim satabildiğinde, o kişi, kişinin adı ve müşteri bilgileri gibi belirli ayrıntıları ve ayrıca kullanıcının sattığı ürün ve ürün sayısı gibi belirli ayrıntıları içerebilen işlem bilgilerini ilişkisel yönetim sistemine girebilir.
- RDBMS, yeni kayıtlar girecek ve gerekli tüm bilgileri güncelleyecek ve böylece markaların ürünlerini verimli bir şekilde takip edip satmasına olanak tanıyacaktır.
- Firma yöneticisi belirli kriterlere göre ihtiyaç duyduğu bilgiyi kolaylıkla bulabilmektedir, bu aynı zamanda fiyat, renk, marka gibi her özelliği arayan müşteriler için de mevcuttur.
- Bilgileri öngörülebilir ve sıralı bir biçimde saklayarak, kullanıcıların ihtiyaç duydukları bilgileri kolaylıkla bulmalarını sağlar.
Veritabanlar Öğrenmeyi Ne Kadar Sure Alır?
SQL nispeten basit bir dil olduğundan, öğrenciler iki ila üç hafta içinde temel bilgilere aşina olmayı bekleyebilirler. Bununla birlikte, işte SQL becerilerini kullanmayı planlıyorsan, muhtemelen daha yüksek bir akıcılık düzeyine ihtiyacın olacaktır.
Ustalığı ne kadar çabuk elde edeceğiniz, öğrenme yönteminize bağlı olacaktır. SQL'i bağımsız olarak öğrenmeye çalışırsan, süreç yaklaşık altı ay sürebilir - SQL'i düzenli olarak uygulamıyorsan daha uzun sürebilir. Ancak, kodlama eğitim kampı gibi yoğun, resmileştirilmiş bir öğrenme programına katılarak süreci hızlandırabilirsin. Bunlardan birine kaydolursan, üç ay gibi kısa bir sürede SQL ustalığı kazanmayı bekleyebilirsin.