Her şeyden önce, Dr. Edgar Frank Codd'un 1970 yılında genel halka ilişkisel çerçeveyi yayınladığı, yani Büyük Paylaşımlı Veri Bankaları için Verilerin İlişkisel Veri Modeli'ni yayınladığı bilimsel makaleyi şiddetle tavsiye ediyorum . Orada, bölüm 1.1, “Giriş”, Dr. Codd, şöyle diyor:
Bu makale, temel ilişki teorisinin, geniş formatlı veri bankalarına ortak erişim sağlayan sistemlere uygulanmasıyla ilgilidir.
© Bilgisayar Makineleri Birliği. ACM'nin İletişimi , Cilt 13, Sayı 6 (s. 377-387), Haziran 1970.
Yani, evet, ilişki ve (dolayısıyla) ilişkisel terimler matematiksel bir arka plandan geliyor. Dr. Codd - akademik ve araştırma bilgilerinden ayrı olarak, bilgisayar ve bilgi işlemede 20 yıllık ilk elden deneyime sahipti - ilişkinin (doğal olarak, soyut bir şekilde) veri yönetimi alanında uygulanmasının muazzam avantajlarını öngördü. .
Ben bir matematikçi değilim, ama temel olarak konuşursak, bir ilişki kümeler arasındaki bir ilişkidir, küme bir öğeler koleksiyonu olur ( bu dış kaynak , onu farklı bir perspektiften anlamaya yardımcı olabilecek bir matematiksel ilişki tanımı verir ). Bir SQL veri tabanı yönetim sistemi (kısalık için DBMS) yardımı ile çalışırken, iyi bilinen bir yaklaşım bir ilişki a, tablo ilişki arasında yer alır ve bu durumda, tip onun bir sütun . Açıkçası, DOMAIN desteği sunan SQL platformlarında (örneğin, Firebird ve PostgreSQL ), ilişkilendirme arasındasöz konusu tablonun sütunları için sabit alanlar ; önemli ayrıntılar için aşağıdaki bölümlere bakın.
Bu bakımdan, Bölüm 1.3, “Verilere İlişkin Bir Bakış” bölümünde şöyle diyor: Dr.
İlişki terimi burada kabul edilen matematiksel anlamda kullanılır. Verilen kümeler S 1 , S 2 , ⋯, S , n , (zorunlu olarak farklı değildir), R, bunlar üzerinde bir ilişkidir n bunun bir dizi halinde setleri n her biri ile ilgili olan birinci elemanı vardır -tuples S 1 , ikinci eleman S 2 den vb. 1 Bu değinecektir S j olarak j inci alan bir R . Yukarıda tanımlandığı gibi, R'nin n derecesine sahip olduğu söylenir.. 1. derece ilişkileri genellikle denir tekli , derece 2 ikili , derece 3 üçlü ve derecesi , n , n-li .
1 Daha kesin olarak , R , Kartezyen ürününün bir alt kümesidir; S 1 × S 2 × S 3 ⋯ × S n .
© Bilgisayar Makineleri Birliği. ACM'nin İletişimi , Cilt 13, Sayı 6 (s. 377-387), Haziran 1970.
Ve diğer cevaplarla aynı fikirdeyim, Dr. Codd'un matematiksel ilişkiye bazı uyarlamalar yaptığını ve bunun veri yönetimi ile ilgili en iyi sonucu almak için bazı uyarlamalar yaptığını belirtmekle çok ilgili olduğu konusunda hemfikirim. onun kapsamlı bibliyografyası boyunca .
İlişki ve ilişki
Yetiştirme bir durum değerinde Bu konularla uğraşırken o, yüzünden terimler gündelik (non-matematiksel, teknik olmayan) tanımları konusunda mevcut benzerlikleri karışıklığa orada ortaya çıkabilecek olan ilişkisi ve ilişkinin -ki, bir sivil olarak anadili İngilizce olan, özellikle anlaşılabilir buluyorum -.
Varlık-ilişki görünümü ve ilişkisel model
Sanırım karışıklığa yol açabileceğini düşündüğüm diğer bir faktör (ve yukarıda belirtilen iki terimin teknik çağrışımlarıyla yakından ilişkilidir), veri tabanı tasarlamayı öğrenirken, bir öğrenci veya uygulayıcı tipik olarak ilk önce Dr tarafından önerilen metodolojiyle tanıştırılmış olmasıdır. . Peter Pin-Shan Chen içinde varlık-ilişki önerir (1976 yılında yayınlanmıştır) veri görüntüsü, iki farklı uygular (yani varlık ve ilişki ) bir tasvir etmek kavramsal sadece söz konusu şema tanımına sonra, daha sonra şema ve Kararlı ise, öğrenci veya uygulayıcı ilişkisel terimleri ve araçları (örneğin ilişki ) ilan ederkenilgili veritabanının mantıksal düzeni. Kavramsal referans çerçevesinde ilişki , kelimenin günlük anlamına çok daha yakın olan çağrışımlara sahiptir.
O zaman, belki de, bu durum aynı zamanda ilişki ve ilişki konusuna da eklenir - ancak önce kavramsal şemayı tanımlama ve ardından ilgili mantıksal tasarımı açıklamanın izleyen bölümlerde ayrıntılarıyla açıklayacağım gibi elbette oldukça uygun olduğunu söyleyebilirim.
Her bir sorunuza verilen cevaplar
Bu üç alt soruyu dahil etmenin gerçekten ilgili olduğunu düşünüyorum çünkü gönderi için daha geniş bir bağlam oluşturuyorlar, bu yüzden göz ardı edilmemeliler. Bu şekilde, ayrı münhasıran terimler neden adresleme gelen ilişki ve ilişkisel (kesinlikle çok önemlidir ve hangi kullanılan başlık yazının, ama öyle değil , tüm post), subquestions daha kapsamı anlama yardımcı olabilir dedi ilişki ve ilişkisel model bir bütün bilgi yönetimi projesi (bu veritabanı yönetimi hakkında bir site beri oldukça alakalı) katılır ve dolayısıyla farklı çalışmaktadır soyutlama düzeylerine. Bu şekilde, aşağıda belirtilen hususlarla ilgili olarak payımı paylaşacağım.
Sorgu no. 1
Örneğin, bir Kişi neden "ilişki" olarak kabul edilir? İngilizce'de ilişki, iki varlığın nasıl ilişkilendirildiğini tanımlayan bir isimdir. Varlıkların kendilerine atıfta bulunmaz. İlişkisel veritabanları bağlamında, "ilişki" varlıkların kendilerine atıfta bulunur. Niye ya?
Kavramsal seviye
Belirli bir iş ortamında, Kişi bir kabul edilebilir varlık türü vardır (iş uzmanları ve veritabanı tasarımcıları) çalışan insanlar nasıl bağlı conceptualize onu. Ve evet, bu iş ortamında, Kişi varlık türüne göre, örneğin, İsim , BirthDate , Cinsiyet , vb. Gibi farklı ilgi özellikleri olabilir .
Ayrıca, Kişi varlığı türü, kendisiyle veya diğer varlık türleri ile belirli ilişki (veya ilişkilendirme veya bağlantı ) tiplerini tutabilir ; örneğin Kişi adında bir varlık türüyle ilişkili olabilir UserProfile sırayla, diyelim ki ilgi kendi özellikleri olabilir, kullanıcı adı ve Parola .
Ancak, (a) işletme tipleri, (b) bunlara karşılık gelen özellikleri, (c) varlık tipleri arasındaki ilişki tipleri ve (d) mülklerin kendileri arasındaki ilişkiler, içinde bulundukları iş ortamına “ait oldukları” kavramlarıdır. önem taşıyordu. Tasarım aşamasında, içeriğe özgü bir kavramsal şema tanımlamak için iş uzmanlarıyla yakın çalışan veritabanı tasarımcıları tarafından kullanılan cihazlardır .
Böylece, kavramsal düzeyde temelde yani (1) ilgilenilen gerçek dünyanın segmentinde, ortaya çıkan fikirlerin yapısıyla çalışmak şeylerin prototipleri ve (2) ilişkilerin prototip arasındaki şeylerin prototipleri , biz birlikte çalışmayı yok (3) ilişkiler — bu ilişkinin veri ilişkisel çerçevesi anlamında kullanılması.
Mantıksal seviye
Sonra Kişi kesin kavramsal düzeyde bir varlık türü olarak tarif edildi ve eğer bir istekleri ilişkisel veritabanı uygulamak aktarıyor anlamı olduğunu Kişi ve onunla ilişkili tüm kavramları, daha sonra bu tür varlıklar hakkında gerçekler sayesinde yönetilebilir Mantıksal düzeyde matematiksel bir ilişkinin olması ve bu soyut yapı üzerinde gerçekleştirilebilecek bilim temelli işlemlerden yararlanın (yani, tanımlayın, sınırlayın ve manipüle edin).
Evet, bir belli ilişkiyi adlandırabilirsiniz Kişi bir veritabanının mantıksal düzenini tanımlarken, ama bu “gerçek dünya” kavramı dönüştürmek değildir Kişinin bir ilişki içine, tek çünkü bilgi yönetirken elde edilir faydalar gibi bunu yaklaşır Bu konuda, örneğin, yeni ilişkiler ortaya çıkarmak için ilişkisel cebir işlemlerini uygulamak (ve dolayısıyla bir “yeni” bilgi elde etmek). Söz konusu faydalar, belirli bir tür varlıkların bir küme oluşturduğu ve belirli bir mülkün değerlerinin de bir küme oluşturduğu gerçeği göz önüne alındığında daha belirgin hale gelir.
Ve, evet, önceki paragraflarda ve diğer cevaplarda da belirtildiği gibi, bir ilişkinin en önemli yönlerinden biri, kendi alanları arasında var olan bağlantıdır - tipik olarak varlığın veya ortaklığın tiplerinin bir parçasını temsil eden özellikleri temsil etmek için kullanılır. kavramsal bir şema—. Örneğin, şu (üçlü) ilişkiyi bildirdiğimizi söyleyelim:
Salary (PersonNumber, EffectiveDate, Amount)
... ve bize varsayalım, söz konusu iş ortamında, tuple -ki (i) belirli bir açılımı varlık , yani bir örneği uygulanabilir kavramsal şema bir varlık türü ve (ii) kimin SQL muadili bir olduğunu satır -
… Anlamı taşıyacak
- “EffectiveDate
x
üzerinde PersonNumber tarafından belirlenen Kişiye Ödenen Maaş” tutarına y
karşılık gelir z
” .
Buna göre - şeyleri yaklaşık olarak tanımlamak için - üç alan arasındaki bağlantı çok önemlidir, hepsi birbiriyle ilişkilidir (ve, evet, tek bir ilişki sadece bir alanı içerecektir). Belirli bir alanın tüm değerleri arasındaki bağlantı , kesin bir tür kümesini oluşturdukları için de çok önemlidir . Ayrıca, ilişkinin her bir demetinin içeriği yukarıda gösterilen iddianın yapısına uymalıdır .Salary
Kavramsal seviye ilişkiler ve mantıksal seviye ilişkiler
Gösterildiği gibi, şimdi veritabanı yönetimi ile kavramsal ve mantıksal olmak üzere iki farklı soyutlama seviyesini ele aldım - ve ayrıca SQL DBMS'lerde tipik olarak indeksler, sayfalar, uzantılar içeren, fiziksel olarak bilinen daha düşük bir seviye var. vb.-.
Bu nedenle, daha önce açıklanan kavramlara uygun olarak, mantıksal düzeyde, sadece (a) matematiksel ilişkiler ile çalışır, burada (b) kavramsal ilişkiler veya dernekler (c) bu tür matematiksel ilişkilerin başlıklarında yer alan değerler ile temsil edilir , ve bahsedilen değerler genellikle uygulanabilir ilişkileri doğru bir şekilde temsil edebilmeleri için FOREIGN KEY kısıtlamaları ile sınırlandırılır.
Ve evet, ilişkisel varlıklar, yani çok-çok (M: N) kardinalite oranına sahip olan ilişki tiplerinin örnekleri, tek bir matematiksel ilişkinin tekilleri vasıtasıyla iletilebilir - buna karşılık gelen uygun kısıtlamalar ile ders-.
Sorgu no. 2
İlişkisel modelin hiyerarşik ve ağ modellerinden sonra geldiğini biliyorum. Ancak bu modellerde, işletmelerin birbirleriyle de ilişkileri vardır. Peki neden bu modele ilişkisel model denir? Daha belirgin bir ifade / terim var mı? Veya belki de üç modelin ilişkisel modeller olduğunu söylemeliyiz, ancak hiyerarşik ve ağ modelleri belirli ilişkisel modellerdir?
Ağ ve hiyerarşik DBMS'ler resmi teorik desteklerinden önce
Hiyerarşik ve ağ yaklaşımları etrafındaki teorik desteğin gerçekte, daha önce var olan DBMS'ler bağlamında yaratıldığını , diğer hususların yanı sıra (1) türlerin sağlamlığını test etmek ve kurmak olduğunu belirtmek elverişlidir. yazılımın ve (2) bağlantılı veri yönetimi uygulamalarının (baş aşağı bir fenomen olarak, benim açımdan).
İlişkisel çerçeve ile karşılaştırıldığında eksik
Bununla birlikte, ilişkisel modeli öne çıkaran hiyerarşik ve ağ DBMS'leri olmasına rağmen ve Dr. Codd bu yaklaşımların her birine bir “model” olarak atıfta bulunsa bile, hiçbiri, ilişkisel çerçevenin olduğu şekilde tanımlanmamıştır. İlişkisel paradigma, (i) tanımı, (ii) verinin kısıtlanması ve (iii) manipülasyonu için bilimsel yapılar sağlar ve hiyerarşik ve ağ yaklaşımları, daha önce belirtilen üç yapı türünün tümünü kapsayan tam bir teorik destek vermez.
Ağ ve hiyerarşik özellikler
Ayrıca, daha önce de belirtildiği gibi, varlık ve ilişki türleri kavramsal düzeyde araçlardır, her biri söz konusu yönleri temsil etmek için belirli mekanizmalar sunan hiyerarşik veya ağ yaklaşımlarına ait değildir:
Ağ paradigma gerektirir iki yani veri temsili cihazları düğümleri ve yay ilişkili modelle ile tezat zaman (ve tabii ki karakteristik verileri yönetim işlemleri iki farklı türde anlamına gelir) olduğu, (uygun olarak bu bilgi ilkesi ) Sadece gerektirir bir yapı (ilişki), bir ağ tarzında çalışmanın içerdiği gereksiz karmaşıklığı ortaya koyar. Örneğin, iki temsil aracına başvurduğuna göre, ağ yaklaşımı veri manipülasyonunu engelleyen pratik olmayan bir sorgu yanlılığı getirir .
(! Fiziksel) Kendi adına, hiyerarşik görünüm yoluyla veri temsil önermektedir dosyalarını oluşan kayıtlar (sırayla oluşur alanlarda bir organize) üç-benzeri düzenleme; yani, bir ebeveyn kaydı , veri manipülasyonu ile ilgili fiziksel bir erişim yolu üreten, işaretçiler aracılığıyla muhtemel birçok çocuk mevkii ile zincirlenmiştir . Bu yaklaşım aynı zamanda elverişli değildir çünkü kavramsal ve fiziksel yönler arasında bir dolaşma sağlar, bu nedenle fiziksel depolama düzenlemelerindeki değişiklikler, veri işleme operasyonlarında değişiklik yapılmasını gerektiren veri yapılarının yeniden düzenlenmesini gerektirir.
Gösterildiği gibi ilişkisel model ilişkili setleri vasıtasıyla kendi doğal yapısında zarif veri uygulanmasını önermektedir ise, hiyerarşik ve ağ incelemeler, veri üzerindeki yapılar yönetilmesini empoze olgular (hangi n setleri sonraki türlerine, beklenmemektedir tasarım aşaması, türetilebilir ve böyle devam eder!).
İlişkisel modelde alt model yoktur.
Ve, oldukça önemli, ne hiyerarşik ne de ağ görünümleri belirli ilişkisel model türleri değildir, bunlar yalnızca birinin izleyebileceği diğer paradigmalardır (a) DBMS'leri oluşturmak ve (b) veritabanları oluşturmak, ancak lütfen hiyerarşik olduğunu unutmayın ve ağ yaklaşımları, on yıllardır kullanılmamaktadır.
Sorgu no. 3
Ya birbiriyle ilgili olmayan bağımsız varlıklar varsa. Diyelim ki, Kişi, Kapı ve Ağaç. "İlişki (al)" terimi hala uygulanabilir mi?
Evet, (1) bu varlık türleri ile ilgili bilgileri uyarlanmış matematiksel ilişkilerin kuralı ile yönetmesi ve (2) belirli bir ilişkisel DBMS desteği ile yönetilen belirli bir veri tabanında uygulanabilir ilişkisel işlemleri mantıksal seviyede gerçekleştirmesi mükemmel bir şekilde uygulanabilir. .
Kavramsal düzeyde, söz konusu işletme tiplerinin diğer varlık tipleriyle hiçbir ilişki tipinin bulunmaması önemli değildir (ve varlık tipinin bire-sıfır-bir-çok kardinalite oranı ilişkisine sahip olabileceğine dikkat etmek önemlidir. onunla birlikte) ve bu nedenle, söz konusu olan ilişkilerin çetelerinin değerleri arasında herhangi bir ilişkiyi iletmemek ya da uygulamak değildir.