Yaşadığımız çağda, veri yeni altındır. Şirketlerin sahip olduğu gerçek hazine artık veridir. Bir şirketin veya kuruluşun sahip olduğu veri miktarı ve bunları nasıl dağıtabileceği, başarısında fark yaratır. Bunun nedeni, günümüzde kararlar, pazarlama, geliştirme, büyüme, müşteri yönetimi ve satışların verilere dayanmasıdır. Bugün şirketler için en büyük zorluk, bu büyük miktarda veriyle uğraşmaktır, bu yüzden veri normalleştirmesiyle daha sık karşılaşıyoruz. Ancak veri normalleştirme nedir? Neden buna ihtiyacımız var? Ve faydaları nelerdir? Bu yazıda, tüm bu soruları ve daha fazlasını cevaplayacağız.
Veri normalleştirme nedir?
Veri normalleştirme veya veritabanı normalleştirme, veri fazlalığını azaltmak için bir veritabanını organize etme ve yapılandırma sürecidir. Basitçe söylemek gerekirse, veritabanı normalleştirme süreci, her alan ve kaydın mantıksal olarak düzenlenmesini sağlamanın bir yoludur, böylece yalnızca fazlalıktan kaçınmakla kalmaz, aynı zamanda herhangi bir ilişkisel veritabanının kullanımını daha verimli hale getirirsiniz: herhangi bir veri girişi hatasından kaçınırsınız, yanlışlıkla silme ve ayrıca verilerin güncellenme sürecini de kolaylaştırırsınız. Veri normalleştirmeyi anlamak çok basittir, ancak süreç göründüğünden daha karmaşıktır. Veri normalleştirme, veritabanının nasıl düzenlenmesi gerektiğini belirleyen belirli kurallara uyar.
Veri normalleştirmenin faydaları
İlişkisel veritabanları , CRM platformları, veri analizi veya herhangi bir şekilde uygulama geliştirme ile uğraşıyor olsanız da, veri normalleştirmeye ihtiyacınız olacak. Veritabanı normalleştirmesinin sizin ve ekibiniz için fazladan çalışmaya neden olabileceğini düşünebilirsiniz, ancak faydalarını öğrendikten sonra fikrinizi değiştireceksiniz. Peki, veri normalleştirmenin faydaları nelerdir?
Veritabanı boyutunu küçültür
Veritabanınızda kendini tekrar eden verileriniz olduğunda, bu verileri depolamak için çok fazla alana ihtiyacınız olur, ancak bu tam bir israftır. Veri normalleştirme, veritabanı depolama alanınızın azalmasına yol açar ve bu, bildiğiniz gibi, kaynak ve paradan tasarruf ettiğiniz anlamına gelir.
Sorguları basitleştirme
İyi organize edilmiş bir veritabanı aracılığıyla bilgi aramak, ister manuel ister otomatik bir dijital araç kullanıyor olun, aynı şeyi dağınık bir yerde yapmaktan her zaman daha kolaydır.
Bakım kolaylığı
Veritabanı normalleştirme, sorunları önler ve veritabanının bakımını kolaylaştırır. Yine, bu hem kaynak hem de para israfını önleyecektir.
Performansları iyileştirme
Bildiğiniz gibi, veritabanları genel olarak her uygulamanın veya yazılımın işleyişinin temelini oluşturur. Veritabanı normalleştirme, veri alma sürecini hızlandırır ve bu da uygulamanızın performansını artırır.
Kim veri normalleştirmeye ihtiyaç duyar?
Herhangi bir amaç için veri ve veritabanlarıyla ilgilenen kişi, veri normalizasyonuna ihtiyaç duyar. Gereksiz, kötü organize edilmiş bir veritabanına sahip olmanın bir anlamı yoktur. Ancak, veri normalleştirmesinin özellikle önemli olduğu bazı alanlar vardır:
- veri analizi : Birden fazla veritabanından faydalı bilgiler çıkarmanız gerekiyorsa, bunların normalleştirilmesini istersiniz.
- yazılım geliştirme : veri normalleştirme, herhangi bir uygulamanın performansını optimize ederken büyük bir fark yaratır. Geliştiricilerin, geliştirme süreçlerinde bir hizmet uygulaması olarak yazılımdan gelen verileri entegre etmeleri gerektiğinde, bu son derece önemli hale gelir.
- iş : her şirketin veri toplaması ve ardından bu verileri kararlar almak, işi büyütmek, pazarlama stratejilerini çizmek ve daha fazlası için kullanması gerekir.
- profesyoneller : bağımsız bir işi olan herkesin müşterilerini, bilgilerini, hizmet/ürün kataloglarını ve daha fazlasını düzenlemesi gerekir. Başka bir deyişle, veritabanlarına ve veri normalleştirmeye ihtiyaçları var.
Veri normalleştirme nasıl çalışır?
Şimdiye kadar teorik bir kavram olarak veri normalleştirme hakkında konuştuk. Yine de, en pratik yönlerine daha derine indiğimizde, bunun veritabanlarınızı optimize etmek ve yukarıda tartıştığımız tüm avantajlardan yararlanmak istiyorsanız bilmeniz gereken standartlardan ve belirli kurallardan oluşan bir süreç olduğunu gördük.
Temelde, veri normalleştirme, veritabanlarına eklenen tüm veriler için standartlara karar vermekle ilgilidir. Örneğin, telefon numaralarını ve adreslerini içeren bir müşteri veri tabanımız varsa, standartlarımız aşağıdaki gibi olabilir:
- Tüm isimler bu biçimde yazılmıştır: Dursley, Vernon.
- Tüm telefon numaraları şu biçimde yazılır: 530-000-0000.
- Tüm adresler şu biçimde yazılmıştır: 4, Private Drive, San Francisco.
Ancak, nerede olurlarsa olsunlar, yaptıkları iş ne olursa olsun, veritabanlarıyla ilgilenen herkes tarafından bazı standartlar paylaşılmaktadır. Normal formlar adı verilen katmanlarda gruplandırılmış bazı kurallar vardır. Her normal form sonuncusu üzerine inşa edilecek şekilde düzenlenirler; başka bir deyişle, ikinci normal formu ancak ilkini zaten uyguladıysanız uygulayabilirsiniz.
Birkaç normal form standartlaştırılmıştır, ancak en yaygın ve bilinmesi gereken en önemlileri ilk üçtür - bu yüzden onları bu makalede daha ayrıntılı olarak tartışıyoruz. Ancak normal formların dışında, bağlı kalmak istediğiniz başka genel kurallar da vardır. Örneğin, bir veritabanındaki tablolar bir birincil anahtar içermelidir. Birincil anahtar değerleri, her satırı ayırt eder ve her kaydı benzersiz bir kimlikle ilişkilendirir. Bu nedenle, ilk normal forma girmeden önce, veritabanınızın veya tablonuzun birincil anahtar alanına sahip olduğundan emin olun.
İlk Normal Form (1NF)
İlk normal form, veritabanınızın her alanının yalnızca bir değer depolaması gerektiğini ve bir veritabanında benzer şekilde bilgi depolayan iki alana sahip olmaması gerektiğini belirtir. Bir örnekle daha açık hale getirelim. Bu, kurslar ve onları öğreten profesörler hakkında bilgi depolayan bir veri tabanıdır.
Profesör kimliği | Profesör Adı | Dersler |
P001 | Gregor Mitchell | Edebiyat Yaratıcı Yazarlık |
P002 | Angela McGall | Fizik |
Bu veritabanı ilk normal formu iki şekilde ihlal ediyor:
- Profesör Mitchell iki ders verdiği için bir alanda iki değer vardır;
- Benzer bilgileri depolayan iki alan vardır: Profesör Kimliği ve Profesör Adı, profesörün kimliğiyle ilgili bilgi sağlar.
Veritabanımızı normalleştirmek için ikiye bölmemiz gerekiyor:
- İlki, profesörlerin kimlikleriyle ilgili bilgileri içerecek ve Profesör Kimliği ve Profesör Adı olmak üzere iki alan içerecektir.
- İkincisinin iki alanı olacaktır: biri dersler için, diğeri de o dersi veren profesöre karşılık gelen Profesör Kimliği için.
Şimdi, birincisinin ikinci ile bire çok ilişkisinin olduğu iki veritabanımız var. İki tablo, bir yabancı anahtar, yani Profesör Kimliği alanı aracılığıyla birleştirilir.
İkinci Normal Form (2NF)
İkinci normal form, fazlalığı azaltmayı ve her alanın bize birincil anahtar hakkında bir şeyler söyleyen bilgileri depolamasını sağlamayı amaçlar. Diğer bir deyişle:
- Her veritabanının yalnızca bir birincil anahtarı olmalıdır
- Tüm birincil olmayan anahtarlar, birincil anahtara tamamen bağımlı olmalıdır
Bu iki ilke, her veritabanının birincil anahtarda bulunan aynı argüman hakkında tutarlı bilgiler depolamasını sağlar. Yine bir örnekle anlamamıza yardımcı olalım.
Şuna benzeyen bir Profesör Doğum Günü ve Bölüm veritabanımız var:
Profesör Adı | Doğum günü | Departman |
Harry Gri | 1 Temmuz | Edebiyat |
Victoria Beyazı | 19 Eylül | Edebiyat |
Paul Saul | 1 Mart | Edebiyat |
James Smith | 5 Haziran | Bilim |
Yukarıdaki veritabanı ilk normal formu takip eder, çünkü her alan yalnızca tek bir bilgi parçası içerir ve alanların tümü farklı bilgiler sağlar. Ancak ikinci normal forma uymaz, çünkü Doğum Günü alanı tamamen adlarına bağlıyken, ait oldukları Departman doğum günlerine bağlı değildir.
Bu veritabanını normalleştirmek için tekrar ikiye bölmemiz gerekiyor:
- İki alan içeren bir Profesör Doğum Günü veritabanı: Profesör adı ve doğum günü
- İki alanı içeren bir Profesör Departmanı veritabanı: Profesör adı ve Departman
Üçüncü Normal Form (3NF)
Bir veritabanı, geçiş bağımlılığı olmadığında üçüncü normal biçime uyar. Geçişli bağımlılık nedir? Veritabanınızdaki Sütun B, birincil anahtara bağlı olan Sütun A'ya bağlı olduğunda geçişli bağımlılığınız vardır. Bir veritabanını üçüncü normal forma göre normalleştirmek için, doğrudan birincil anahtara bağlı olmayan B sütununu kaldırmanız ve bu bilgileri kendi birincil anahtarıyla ikinci bir veritabanında saklamanız gerekir.
Başka bir örnek verelim. Bu Sipariş Veritabanına sahibiz:
Sipariş Kimliği | Sipariş tarihi | Müşteri Kimliği | Müşteri Posta Kodu |
D001 | 01/3/2022 | C001 | 97438 |
D002 | 06/15/2022 | C002 | 08638 |
Birincil anahtarımız olan Order ID'ye sahip olduğumuz için bu veritabanı üçüncü normal forma uymuyor. Sipariş tarihi ve Müşteri Kimliği tamamen buna bağlıdır, ancak Müşteri Posta Kodu, birincil anahtar olmayan Müşteri Kimliğine bağlıdır. Bahsettiğimiz gibi, bu veritabanını üçüncü normal forma göre normalleştirmek için her Müşteri Kimliğini Müşteri Posta Koduyla ilişkilendiren ikinci bir Müşteri Posta Kodu Veritabanı oluşturmamız gerekiyor.
SQL Anahtarları nedir?
Bir SQL veritabanıyla uğraştığımızda, veri normalleştirme elbette çok önemli hale gelir. SQL, herhangi bir bilgisayar tarafından ilişkisel bir veritabanından veri depolamak, işlemek ve almak için kullanılan ilişkisel veritabanı sistemleri için standart dildir. SQL anahtarları, bir veritabanından veya tablodan veri almak için kullanılan niteliklerdir (tek veya çoklu nitelikler olabilir). Ayrıca farklı veritabanları arasında ilişkiler oluşturmak için kullanılırlar.
En önemli SQL anahtarı türleri vardır:
- Süper anahtar : süper anahtar, tablodaki bir satırı benzersiz şekilde tanımlayan bir tablodaki bir veya daha fazla sütunun birleşimidir.
- Yabancı anahtar : birbiriyle ilişkili iki veritabanınız olduğunda önemlidir. İkinci normal form için yaptığımız örnekte, Profesör ID alanını "paylaşan" iki normalleştirilmiş veritabanımız vardı. Profesör kimliği yabancı anahtardır ve veritabanlarına ilgili oldukları konusunda bilgi vermeye hizmet eder.
- Birincil anahtar : bir tür SQL anahtarıdır. Bahsettiğimiz gibi, ilk normal forma göre, tablo başına birden fazla birincil anahtar olamaz ve tüm alanlar doğrudan ve tamamen ona bağlı olmalıdır.
Çözüm
Bu yazıda, veri normalleştirmenin önemini tartıştık. Bahsettiğimiz gibi, iş akışını yavaşlatan ve daha karmaşık hale getiren bir süreç gibi görünebilir, ancak avantajları öyle ki ek çalışmaya değer.
Veri normalleştirme, veritabanlarını yönetmenin nasıl son derece karmaşık hale gelebileceğinin bir örneğidir. Bu nedenle, işi olabildiğince basitleştirebilecek araçlara güvenmek önemlidir. Bu bağlamda, herhangi bir no-code yazmadan uygulamalar oluşturmanıza ve veritabanlarını yönetmenize olanak tanıyan AppMaster s aracını tavsiye etmeye değer. Yine de veri normalleştirme kurallarını öğrenmeniz gerekebilir, ancak bunları uygulamak çok daha kolay olacaktır!