İçeriğe atla

Birinci normal form

Birinci normal form veya Birinci normal biçim (1NF), ilişkisel bir veritabanındaki bir ilişkinin özelliğidir. Bir ilişki, ancak ve ancak her bir öznitelik yalnızca atomik (bölünemez) değerler içeriyorsa ve her özniteliğin değeri, bu etki alanından yalnızca tek bir değer içeriyorsa birinci normal biçimdedir (1NF).[1] Terimin ilk tanımı, Edgar Codd'un 1971 tarihli bir konferans makalesinde yapılmıştır.[2]

Birinci normal form, ilişkisel bir veritabanındaki bir ilişkinin temel bir özelliğidir. Veritabanı normalizasyonu, bir veritabanını ilişkiler açısından standart normal formlarda temsil etme sürecidir, burada birinci normal form minimum gereksinimdir.

Birinci normal formda şu kriterler uygulanır:[3]

  • Bir tablo içinde tekrar eden grupları ortadan kaldırmak
  • Her bir ilgili veri kümesi için ayrı bir tablo oluşturmak
  • Her bir ilgili veri kümesini bir birincil anahtarla tanımlamak

Örnekler

Aşağıdaki senaryolar ilk olarak bir veritabanı tasarımında birinci normal formun nasıl ihlal edildiğini ve ardından birinci normal forma uygun örnekleri gösterir.[4][5]

1NF'yi ihlal eden tasarımlar

Aşağıda müşterilerin isimlerini ve telefon numaralarını saklayan bir tablo bulunmaktadır. Bazı müşteriler için birden fazla telefon numarasını saklamak gerekmektedir. Bu gereksinimi karşılamanın en basit yolu, herhangi bir satırdaki "Telefon Numarası" sütununun birden fazla değer içermesine izin vermektir:

Musteri
Musteri ID Ad Soyad Telefon
123 Pooja Singh 555-861-2025, 192-122-1111
456 San Zhang (555) 403-1659 Dahili. 53; 182-929-2929
789 John Doe 555-808-9633

Telefon numarası sütunu, tek bir değerde birden çok telefon numarası içerir. Örneğin, ilk satırda virgülle ayrılmış iki telefon numarası vardır. Sütun değerleri atomik değildir: iki sayıya bölünebilir. Bu durum, birinci normal formu ihlal etmektedir.

Akla gelen bir çözüm, daha fazla sütun sunmaktır:

Musteri
Musteri ID Ad Soyad Telefon1 Telefon2
123 Pooja Singh 555-861-2025 192-122-1111
456 San Zhang (555) 403-1659 Dahili. 53 182-929-2929
789 John Doe 555-808-9633

Teknik olarak bu tablo, değerlerin atomik olması gerekliliğini ihlal etmemektedir. Ancak, iki telefon numarası sütunu hala bir "tekrar eden grup" oluşturur: kavramsal olarak aynı özniteliği, yani bir telefon numarasını tekrarlar. Keyfi bir sıralama getirilmiş olur: 555-861-2025 bilgisinin neden Telefon2 sütunu yerine Telefon1 sütununa yerleştirildiğine ilişkin somut bir neden yoktur. Müşterilerin ikiden fazla telefon numarasına sahip olmaması için hiçbir neden olmadığına göre, bu durumda kaç tane TelefonN sütunu olacağı da belirsizdir. Böyle bir yapıda, rastgele sayıda sütunda arama yapmadan bir telefon numarasını aramak mümkün olmaz. Fazladan bir telefon numarası eklemek, tabloya sadece yeni bir satır eklenmesi yerine yeni bir sütun eklenerek yeniden düzenlenmesini gerektirebilir. (789 numaralı müşteri için Telefon2'nin boş (null) değeri de bir sorundur.)

1NF ile uyumlu tasarım

Modeli birinci normal forma getirmek için, telefon numarası bilgilerini tutmak için kullanılan satırlar "atomik" (yani bölünemez) varlıklara bölünür: her varlık tek bir telefon numarası içerir. Ve hiçbir satırın birden fazla telefon numarası içermediğinden emin olunur.

Müşteri
MusteriID Ad Soyad Telefon
123 Pooja Singh 555-861-2025
123 Pooja Singh 192-122-1111
456 San Zhang 182-929-2929
456 San Zhang (555) 403-1659 Dahili. 53
789 John Doe 555-808-9633

Bu çözümde yinelenen müşteriler için "ID" nin artık tekil olmadığı unutulmamalıdır. Bçyle bir yapıda, bir satırı tekil (benzersiz) şekilde tanımlamak için (ID, Telefon) kombinasyonunu kullanmak gerekir. Her bir sütun ayrı ayrı tekrarlanan değerler içermesine rağmen, kombinasyonun değeri tekildir. Bir satırı tekil şekilde tanımlayabilmek, 1NF'nin bir gereksinimidir.

Alternatif bir tasarımda ise iki tablo kullanılır:

Musteri
MusteriIDAd Soyad
123 Pooja Singh
456 San Zhang
789 John Doe
Müşteri Telefon Numarası
TelefonID MüşteriID Telefon
1 123 555-861-2025
2 123 192-122-1111
3 456 (555) 403-1659 Dahili. 53
4 456 182-929-2929
5 789 555-808-9633

Bu tasarımda kolonlar birden fazla telefon numarası içermemektedir. Bunun yerine, her Müşteri-Telefon Numarası bağlantısı kendi satırında görünür. MüşteriID anahtar olarak kullanıldığında, müşteri ve müşteri telefonu tabloları arasında bire çok ilişkisi vardır. "Üst" tablodaki bir satır olan Müşteri Adı, "alt" tablodaki birçok telefon numarası satırıyla, Müşteri Telefon Numarasıyla ilişkilendirilebilir, ancak her telefon numarası yalnızca bir müşteriye aittir.[6] Bu tasarımın ikinci ve üçüncü normal form için ek gereksinimleri de karşıladığını belirtmekte fayda var.

Atomiklik

Edgar F. Codd'un 1NF tanımı, 'atomiklik' kavramına gönderme yapar.[7] Codd, atomik bir değeri "daha küçük parçalara ayrıştırılamayan (belirli özel işlevler hariç)"[8] şeklinde tanımlar Bu, bir sütunun içinde birden fazla veri türü olan parçalara bölünmemesi gerektiği anlamına gelir.

Hugh Darwen ve Chris Date, Codd'un "atomik değer" kavramının belirsiz olduğunu ve bu belirsizliğin 1NF'nin nasıl anlaşılması gerektiği konusunda yaygın bir kafa karışıklığına yol açtığını öne sürdüler.[9][10] Özellikle, "ayrıştırılamayan bir değer" kavramı sorunludur, çünkü çok az veri türünün atomik olduğunu ima ediyor gibi görünmektedir:

  • Bir karakter dizisi tipik olarak alt karakter dizilerine bölünebildiğinden, atomik görünmeyebilir.
  • Ondalıklı bir sayı, tam sayı ve kesirli bileşen olarak bölünebildiğinden, atomik görünmeyebilir.
  • Dil ve yayıncı tanımlayıcısı içerdiğinden, ISBN bilgisi atomik görünmeyebilir.

Chris Date, "atomiklik kavramının mutlak bir anlamı olmadığını" öne sürer:[11][12] Bir değer bazı amaçlar için atomik olarak kabul edilebilirken, başka amaçlar için daha temel elementlerin bir araya gelmesi olarak düşünülebilir. Bu kabule göre, 1NF tanımında atomikliğe referans verilemez.

İlişkilerin temsili olarak 1NF tabloları

Date'in tanımına göre, bir tablo, ancak ve ancak "bir ilişkiye izomorf" ise, yani özellikle aşağıdaki beş koşulu karşıladığında birinci normal formdadır:[13]

  1. Satırlar için yukarıdan aşağıya sıralama yoksa
  2. Sütunlarda soldan sağa sıralama yoksa
  3. Yinelenen satır yoksa
  4. Her satır ve sütun kesişimi, geçerli etki alanından tam olarak bir değer içerirse (ve başka hiçbir şey içermezse)
  5. Tüm sütunlar düzenliyse (ör. satırların satır IDleri, nesne IDleri veya gizli zaman damgaları gibi gizli bileşenleri yoksa).

Bu koşullardan herhangi birinin ihlali, tablonun ilişkisel olmadığı ve bu nedenle de birinci normal formda olmadığı anlamına gelir.

Bu birinci normal biçim tanımına uymayan tabloların (veya görünümlerin) örnekleri şunlardır:

  • Benzersiz bir anahtar kısıtlaması olmayan bir tablo. Böyle bir tablo, koşul 3'ü ihlal edecek şekilde yinelenen satırları barındırabilir.
  • Tanımı, sonuçların belirli bir sırayla döndürülmesini zorunlu kılan bir görünüm, böylece sıra sıralaması, görünümün içsel ve anlamlı bir yönüdür.[14] Bu durum ilk kuralı ihlal eder. Gerçek ilişkilerdeki demetler birbirine göre sıralanmamıştır.
  • En az bir "null" atanabilir özelliğe sahip bir tablo. Null yapılabilir bir öznitelik, her sütunun kendi sütun etki alanından tam olarak bir değer içermesini gerektiren 4 koşulunu ihlal eder. Durum 4'ün bu yönü tartışmalıdır. Bu, Codd'un daha sonraki ilişkisel model vizyonundan[15] önemli bir ayrılışı işaret eder, bu da "null" değerler için açık hükümler getirir.[16]

Chris Date tarafından tanımlanan birinci normal form, ilişki değerli özniteliklere (tablolar içindeki tablolar) izin verir. Date, bir tablodaki bir sütunun bir tablo içerebildiği, ilişki değerli özniteliklerin nadir durumlarda yararlı olduğunu savunur.[17]

Ayrıca bakınız

Kaynakça

  1. ^ Fundamentals of Database Systems, Fourth Edition. Pearson. Temmuz 2003. s. 315. ISBN 0321204484. It states that the domain of an attribute must include only atomic (simple, indivisible) values and that the value of any attribute in a tuple must be a single value from the domain of that attribute. 
  2. ^ E. F. Codd (Oct 1972), Further normalization of the database relational model, Courant Institute: Prentice-Hall, ISBN 013196741X, A relation is in first normal form if it has the property that none of its domains has elements which are themselves sets. 
  3. ^ Database Design - 2nd Edition. Victoria, B.C: BCcampus. 2014. 19 Ekim 2020 tarihinde kaynağından arşivlendi. Erişim tarihi: 21 Ağustos 2020. 
  4. ^ "studytonight.com". 11 Ağustos 2020 tarihinde kaynağından arşivlendi. Erişim tarihi: 21 Ağustos 2020. 
  5. ^ "stackoverflow.com". 26 Ekim 2013 tarihinde kaynağından arşivlendi. Erişim tarihi: 21 Ağustos 2020. 
  6. ^ In the "real" world, that would not be a good assumption.
  7. ^ Codd, E. F. The Relational Model for Database Management Version 2 (Addison-Wesley, 1990).
  8. ^ Codd, E. F. The Relational Model for Database Management Version 2 (Addison-Wesley, 1990), p. 6.
  9. ^ Darwen, Hugh. "Relation-Valued Attributes; or, Will the Real First Normal Form Please Stand Up?", in C. J. Date and Hugh Darwen, Relational Database Writings 1989-1991 (Addison-Wesley, 1992).
  10. ^ "[F]or many years," writes Date, "I was as confused as anyone else. What's worse, I did my best (worst?) to spread that confusion through my writings, seminars, and other presentations." Date, C. J. ["What First Normal Form Really Means"] in Date on Database: Writings 2000-2006 (Springer-Verlag, 2006), p. 108
  11. ^ Date, C. J. ["What First Normal Form Really Means"] p. 112.
  12. ^ SQL and Relational Theory: How to Write Accurate SQL Code. "O'Reilly Media, Inc.". 6 Kasım 2015. ss. 50-. ISBN 978-1-4919-4115-7. 25 Haziran 2021 tarihinde kaynağından arşivlendi. Erişim tarihi: 31 Ekim 2018. 
  13. ^ Date, C. J. ["What First Normal Form Really Means"] pp. 127–128.
  14. ^ Such views cannot be created using SQL that conforms to the SQL:2003 standard.
  15. ^ "Codd first defined the relational model in 1969 and didn't introduce nulls until 1979" Date, C. J. SQL and Relational Theory (O'Reilly, 2009), Appendix A.2.
  16. ^ The third of Codd's 12 rules states that "Null values ... [must be] supported in a fully relational DBMS for representing missing information and inapplicable information in a systematic way, independent of data type." Codd, E. F. "Is Your DBMS Really Relational?" Computerworld, October 14, 1985.
  17. ^ Date, C. J. ["What First Normal Form Really Means"] pp. 121–126.

İlgili Araştırma Makaleleri

<span class="mw-page-title-main">İzotop</span> Aynı elemente ait farklı atomlara verilen isim

İzotoplar, periyodik tabloda aynı atom numarasına ve konuma sahip olan ve farklı nötron sayıları nedeniyle nükleon sayıları bakımından farklılık gösteren iki veya daha fazla atom türüdür. Belirli bir elementin tüm izotopları neredeyse aynı kimyasal özelliklere sahipken, farklı atomik kütlelere ve fiziksel özelliklere sahiptirler. İzotop terimi, "aynı yer" anlamına gelen Yunan kökenli isos ve topos 'den oluşur; isimin anlamı ise, tek bir elementin farklı izotoplarının periyodik tabloda aynı pozisyonda yer alması anlamına gelir. Margaret Todd tarafından 1913 yılında Frederick Soddy'ye öneri olarak sunulmuştur.

Oracle Corporation, merkezi Austin, Teksas'da bulunan, Amerika Birleşik Devletleri merkezli çok uluslu bilgisayar teknolojisi şirketidir. Microsoft'un ardından dünyanın en büyük ikinci yazılım şirketidir. 120.000'i aşkın çalışanı, 380.000'den fazla müşterisi ile 145 ülkede faaliyet göstermektedir.

Veritabanları, yapılandırılmış bilgi veya verilerin depolandığı alanlardır. Bilgi artışıyla birlikte bilgisayarda bilgi depolama ve bilgiye erişim konularında yeni yöntemlere ihtiyaç duyulmuştur. Veritabanları; büyük miktardaki bilgileri depolamada geleneksel yöntem olan "dosya-işlem sistemine" alternatif olarak geliştirilmiştir. Telefonlardaki kişi rehberi günlük hayatta çok basit bir şekilde kullanılan veri tabanı örneği olarak kabul edilebilir. Bunların dışında internet sitelerindeki üyelik sistemleri, akademik dergilerin ve üniversitelerin tez yönetim sistemleri de veritabanı kullanımına örnektir. Veritabanları sayesinde bilgilere ulaşılabilir ve onları düzenlenebilir. Veritabanları genellikle bireysel olarak satın alınamayacak kadar yüksek meblağlara sahip olmasına karşın; ücretsiz kullanıma açılan akademik veritabanları da bulunmaktadır. Akademik veritabanları aracılığıyla bazen bibliyografik bilgi bazen de tam metinlere erişmek mümkündür. Veritabanları, veritabanı yönetim sistemleri aracılığıyla oluşturulur ve yönetilir. Bu sistemlere; Microsoft Access, MySQL, IBM DB2, Informix, Interbase, Microsoft SQL Server, PostgreSQL, Oracle ve Sysbase örnek olarak verilebilir.

Normalizasyon (Ayrıştırma), veritabanlarında çok fazla sütun ve satırdan oluşan bir tabloyu tekrarlardan arındırmak için daha az satır ve sütun içeren alt kümelerine ayrıştırma işlemidir.

İlişkisel veri tabanı yönetim sistemi, verilerin tablolarda satır ve sütunlar hâlinde tutulduğu ve yüksek bir veri tutarlılığına sahip veri depolama sistemidir.

MyISAM, MySQL ilişkisel veri tabanı yönetim sisteminin kullandığı ön tanımlı kayıt motorudur. Öncülü ISAM kodu temel alınarak geliştirilen MyISAM birçok yararlı özelliğe sahiptir. Ne var ki, MySQL'in son sürümleri aktarım ve veri tutarlılığı kısıtlamaları desteği sunan ve yüksek eşgüdüm öngören InnoDB'yi yeğlemektedir.

EJB QL veya EJB-QL Enterprise Java Beans için bir veritabanı sorgulama dili olup her veritabanında koşabilir. J2EE uygulamalarında kullanılır. SQL'e kıyasla daha karmaşık olup ifâde gücü daha azdır.

<span class="mw-page-title-main">Polibios</span>

Polybius, , Helenistik dönemi ayrıntılarla ele alan antik Yunan tarihçisi. Yunanca (Tarihler) adını taşıyan 40 ciltten oluşan ama günümüze ancak ilk 4 cildi kalmış olan tarih eserinde MÖ 264 - MÖ 146 dönemindeki Akdeniz havzasındaki tarihsel gelişmeleri antik Grekler ve Romalılar görüş açısından ve evrensel tarih anlayışı ile ayrıntılı olarak incelemiştir. Bu dönemde Polibios, Antik Roma Cumhuriyeti'nin antik dönemde Akdeniz havzası dünyasında hakim devlet olmasına doğru gelişmeleri anlatmaktadır. Bu Romalılar üstünlüğünün en zirveye eriştiği Üçüncü Pön Savaşı'nı ve şahsen katıldığı MÖ 146'da Kartaca Muharebesi ve Kartaca'nın Romalılara tarafından alınıp talan edilip harap edilişini anlatmaktadır.

NoSQL, bir UNİX shell tabanlı hızlı ve taşınabilir bir ilişkisel veritabanı yönetim sistemidir. İşlemci hızı ve elektronik bellek büyüklüğü dışında herhangi bir keyfî sınırlaması yoktur. NoSQL, UNIX işletim sistemiyle çalışır. SQL'yi hiç kullanamayan ve dağıtık veritabanları kullanmayı öneren NoSQL kavramına karşın NoSQL bu dili kasten kullanmamaktadır.

Ki-kare testi veya χ² testi istatistik bilimi içinde bir sıra değişik problemlerde kullanılan bazıları parametrik olmayan sınama ve diğerleri parametrik sınama yöntemidir. Bu çeşit istatistiksel sınamalarda test istatistiği için "örnekleme dağılımı", sıfır hipotez gerçek olursa ki-kare dağılımı gösterir veya sıfır hipotez "asimptotik olarak gerçek" olursa, eğer sıfır hipotez gerçekse ve eğer örnekleme hacmi istenilen kadar yeterli olarak büyük ise bir ki-kare dağılımına çok yakın olarak yaklaşım gösterir.

Pearson ki-kare testi nicel veya nitel değişkenler arasında bağımlılık olup olmadığının, örnek sonuçlarının belirli bir teorik olasılık dağılımına uygun olup olmadığının, iki veya daha fazla örneğin aynı anakütleden gelip gelmediğinin, ikiden fazla anakütle oranının birbirine eşit olup olmadığının ve çeşitli anakütle oranlarının belirli değere eşit olup olmadığının araştırılmasında kullanılır. İstatistik biliminin çıkarımsal istatistik bölümünde ele alınan iki-değişirli parametrik olmayan test analizlerinden olan ve ki-kare dağılımı'nı esas olarak kullanan ki-kare testlerinden en çok kullanılanıdır. İngiliz istatistikçi olan Karl Pearson tarafından 1900'da ortaya çıkartılmıştır.

<span class="mw-page-title-main">SQL enjeksiyonu</span>

SQL enjeksiyonu, veri tabanına dayalı uygulamalara saldırmak için kullanılan bir atak tekniğidir; burada saldırgan SQL dili özelliklerinden faydalanarak standart uygulama ekranındaki ilgili alana yeni SQL ifadelerini ekler.. SQL enjeksiyonu, uygulamaların yazılımları içindeki bir güvenlik açığından faydalanır, örneğin, uygulamanın kullanıcı giriş bilgileri beklediği kısma SQL ifadeleri gömülür, eğer gelen verinin içeriği uygulama içerisinde filtrelenmiyorsa veya hatalı şekilde filtreleniyorsa, uygulamanın, içine gömülmüş olan kodla beraber hiçbir hata vermeden çalıştığı görülür. SQL enjeksiyonu, çoğunlukla web siteleri için kullanılan bir saldırı türü olarak bilinse de SQL veri tabanına dayalı tüm uygulamalarda gerçeklenebilir.

İlişkisel veritabanı, 1970 yılında Edgar Frank Codd tarafından önerildiği gibi, organizasyonu ilişkisel veri modeline dayanan bir dijital veritabanıdır. İlişkisel veritabanlarını korumak için kullanılan çeşitli yazılım sistemleri bir ilişkisel veritabanı yönetim sistemi (RDBMS) olarak bilinir. Neredeyse tüm ilişkisel veritabanı sistemleri, sorgulama ve veritabanının bakımı için dil olarak SQL(Structured Query Language) kullanmaktadırlar.

<span class="mw-page-title-main">Apple Numbers</span> hesap tablosu uygulaması

Apple Numbers Apple Inc. tarafından geliştirilen hesap tablosu uygulamasıdır. Apple Pages ve Apple Keynote ile birlikte iWork yazılım paketinin bir parçasıdır. Numbers Microsoft şirketinin Microsoft Office paketine dahil olan Microsoft Excel uygulaması ile eşdeğerdir. Numbers iOS, Mac OS X Tiger veya daha yeni sürümleri için kullanılabilir. OS X için 1.0 sürümü 7 Ağustos 2007'de ilan edilerek iWork paketindeki en yeni uygulama haline geldi. iPad sürümü 27 Ocak 2010'da çıktı. Uygulama, daha sonra iPhone ve iPod Touch'u destekleyecek şekilde güncellendi.

Programlamada, beyaz boşluk tipografide yatay veya dikey alanı temsil eden herhangi bir karakter veya karakter dizisidir. Oluşturulduğunda, bir boşluk karakteri görünür bir işarete karşılık gelmez, ancak genellikle bir sayfadaki bir alanı kaplar. Örneğin, ortak boşluk sembolü U+0020   SPACE, Batı'da kelime bölücü olarak kullanılan betik metinde boş bir noktalama işareti temsil eder.

Bir pivot tablo, daha geniş bir tabloyu özetleyen istatistik tablosudur. Bu özet, pivot tabloyu anlamlı bir şekilde gruplayan toplamları, ortalamaları veya diğer istatistikleri içerebilir.

İkinci normal form (2NF), veritabanı normalleştirmesinde kullanılan normal bir formdur. 2NF orijinal olarak 1971'de E. F. Codd tarafından tanımlanmıştır.

Üçüncü normal form (3NF), verilerin tekrarlanmasını azaltmak, veri anormalliklerini önlemek, bilgi bütünlüğünü sağlamak ve veri yönetimini basitleştirmek için normalleştirme ilkelerini kullanan ilişkisel veritabanları için bir veritabanı şeması tasarım yaklaşımıdır. Veritabanı yönetimi için ilişkisel modeli icat eden İngiliz bilgisayar bilimcisi Edgar F. Codd tarafından 1971 yılında tanımlandı.

Boyce – Codd normal formu, veritabanı normalleştirmesinde kullanılan normal bir formdur. Üçüncü normal formun (3NF) biraz daha güçlü bir versiyonudur. BCNF, 1974 yılında Raymond F. Boyce ve Edgar F. Codd tarafından, başlangıçta tanımlandığı şekliyle 3NF tarafından ele alınmayan belirli anormallik türlerini ele almak için geliştirilmiştir.

Belge odaklı veritabanı veya belge deposu, yarı yapılandırılmış veriler olarak da bilinen belge odaklı bilgileri depolamak, almak ve yönetmek için tasarlanmış bir bilgisayar programı ve veri depolama sistemidir.