Neden “ilişki (al)” terimi?


26

İngilizce'de Bob ve Tim arasındaki ilişkiden bahsedebiliriz. Belki de kuzenlerdir. Bu bağlamda "ilişki" terimi bana mantıklı geliyor.

İlişkisel veritabanları bağlamında, terimin ne anlama geldiğini anlıyorum ama neden kullanıldığını anlamıyorum. Neden kullanıldığını anlamak, bu alanı daha iyi anlamama yardımcı olacağından, neden kullanıldığını anlamak istiyorum.

  • Örneğin, bir Kişi neden "ilişki" olarak kabul edilir? İngilizce'de, bir 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?
  • İlişkisel modelin hiyerarşik ve ağ modellerinden sonra geldiğini biliyorum (ör. Ebeveyn, komşu). 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?
  • 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?

(Belki bu birden fazla soru olmalı. Cevapların birbiriyle ilişkili olduğunu düşündüm - belki de tek bir cevap var - bu yüzden bunun tek bir soru olması mantıklı olur diye düşündüm. 'yerine ayrı sorular oluşturacağım.)


Düzenleme: Bu şema, bir ilişkinin farklı etki alanlarını birbiriyle ilişkilendirdiğini görmek için yararlı olabilir:

görüntü tanımını buraya girin

Yanıtlar:


33

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 -

  • Salary (x, y, z)

… Anlamı taşıyacak

  • “EffectiveDate xüzerinde PersonNumber tarafından belirlenen Kişiye Ödenen Maaş” tutarına ykarşı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 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.


1
"İngilizce olmayan bir konuşmacı" olmanın "ilişki" teriminin yanlış anlaşılması veya karıştırılması için gerekli olduğunu sanmıyorum. Belirli bir matematik alanını incelemediğiniz sürece, bu tamamen yabancı bir tanımdır. Dürüst olmak gerekirse, bu bağlamda bir "ilişkinin" ne anlama geldiğini bilmeseydim, bu cevap bazılarına rağmen ilginç, özellikle yardımcı olmazdı.
IMSoP

1
@IMSoP Daha önce farketmedim, ama niyetim "anadili olmayan İngilizce konuşmacı" yazmaktı, bu yüzden ilgili alıntıyı şimdi tamamladım. Öte yandan, katılmıyorum, bu cevap özellikle yardımcı oluyor, çünkü (1) sorunun başlığını ve (2) sorunun gövdesinde yer alan tüm alt soruları, yazıyı daha geniş bir şekilde ele aldım. Ama elbette kendi fikrini almaya hakkın var.
MDCCL

16

'İlişkisel veritabanı' arkasındaki ilginç şey, beklediğiniz gibi (öncelikle) tablolar arasındaki ilişkileri ifade etmemesidir, ancak bir tuple içindeki çoklu özelliklerin (sütunların) ilişkisini ifade eder. İlişkisel bir veritabanı, bu kayıtları bir tabloda bir satır olarak saklar.

Alfred Tarski'nin 1941 (!) Adlı makalesinde , ilişkilerin hesaplanması üzerine tanımladığı ilişkisel cebir üzerine kuruludur . Sembolik mantıkta terimin tarihini ve kullanım alanını özetledi, ancak sonunda SQL için temel olan işlemleri tanımladı.

Codd bunu, 12 emirinde ilişkisel bir veritabanı olarak anlaşılabilecekler için bir tanım haline getirdi .


10

"İlişkisel" terimi matematikten gelir ve varlıklar arasındaki ilişkilerle ilgisi yoktur. Ben bir matematikçi değilim (Oysa Codd Matematik alanında doktora yapmış) ve bu yüzden detaylandırılmayacak, ancak ikili ilişkiler hakkındaki bu wikipedia makalesine işaret edecek . İlişkiye (veritabanlarına) ilişkin wikipedia girişi, Codd'un matematiksel kavramları veri yönetimine uygulamak için nasıl uyarladığına ilişkin ek detaylar verir. Bu matematiksel yapıya niçin bir ilişki denildiğine gelince, ilişkiyi oluşturan alanlar arasında bir "ilişki" olduğu fikrine sahip olduğunu düşünüyorum. Codd'nin orijinal düşüncesini daha iyi anlamak için bildiğim en iyi kaynak Fabian Pascal '. Chris Date ayrıca RDM'ye geniş kapsamlı yazılar yazdı ve Üçüncü Manifesto sitesinde kağıt ve kitapların listelendiği bir bölüm var. Bilgisayar Uzmanları için İlişkisel Kuram adlı kitabı iyi bir giriş niteliğindedir. Umarım bu yardımcı olur.


7

Doğal anahtarlarla düşününce sezgisel bir isim. Bir hücre değerini bir varlığı temsil eden olarak düşünebilirsiniz.

Relation: Employee
|--------+------------+--------|
| name   | job        | boss   |
|--------+------------+--------|
| Mark   | owner      | NULL   |
| Bob    | manager    | Mark   |
| Jane   | supervisor | Bob    |
| Claire | supervisor | Bob    |
| John   | cashier    | Jane   |
| Jesse  | cashier    | Jane   |
| Jason  | cashier    | Claire |
|--------+------------+--------|
  • Çalışan adı "Jane", "süpervizör" işi ile ilgilidir.
  • Çalışan adı "John" patron "Jane" ile ilgilidir.
  • "Kasiyer" işi, çalışanların "John", "Jesse" ve "Jason" adları ile ilgilidir.
  • "Kasiyer" işi, patronlar "Jane" ve "Claire" ile ilgilidir.

Bu cevabı en sezgisel buluyorum ama MDCCL'ler kadar kapsamlı değil. Bu cevabın ve MDCCL'nin cevabının birleşimi beni çok tatmin ediyor.
Adam Zerner

6

Veritabanları hakkında çok fazla şey söylemesi gereken çok uzun bir yanıtı kabul ettiniz, ancak sorduğunuz soruyu yanıtlamama izin verin:

Neden "ilişkisel" terimi.

Çünkü bir tablo matematiksel nesnenin "ilişkisinin" somut bir örneğidir.

Wikipedia'nın "ilişki" terimi hakkında ne söyleyeceğini görelim (matematikte, RDBMS değil) ve sonra veritabanlarına çevirelim:

Resmen, bir ilişki eşit derecede n-tuples kümesidir. Böylece bir ikili ilişki bir çiftler kümesidir, üçlü bir ilişki kümesidir ve üçlü bir dizidir. Küme teorisi dilinde, iki küme arasındaki ilişki, Kartezyen ürününün bir alt kümesidir.

Mathematics             | RDBMS
========================|===============
A relation is           | A table is
a set of                | a bunch of 
n-tuples                | rows
of equal degree.        | with the same cell (a.k.a. column) types and sizes.

Küme teorisi ile devam ediyor. Bunun matematik olduğunu unutmayın, veritabanı olaylarından çok daha soyut. Böylece son cümle

İki set arasındaki ilişki Kartezyen ürünlerinin alt kümesidir.

Bu , iki sütunlu bir tabloya çevrilir :

  • Sütuna bir "ad" diyelim. Matematiksel seti A, tüm (insan) isimlerin setidir.
  • Sütun BI "şehir" olarak adlandırılır. Matematiksel kümesi Btüm şehirlerin kümesidir.
  • Kartezyen ürün A x B(matematik) her çifti (aka tupels) arasında ihtiva eden bir dizi yeni bir üyesidir ve bir üyesidir . Yani bir isim ve bir şehir. Örnekler veya olacaktır . Ama kartezyen çarpım sadece bir olanların kaç, ama hepsi bunlardan. Bir noktaya gelmek gerekirse, bu kartezyen ürünün alt kümesidir. Başka bir deyişle, ilişki çiftlerinin herhangi bir miktar (olmaya tanımlanan) olan bir isimdir ve bir şehir, hiç bile ilgilendirmez.(a, b)aAbBab(Alice, New York)(Bob, Hollywood)(a, b)ab

Şimdi umarım her şey anlam kazanmaya başlar. Bir RDBMS'de, bir tablonun satırları, bu sütunlardaki tüm olası kombinasyonların kartezyen ürününün alt kümesini basitçe seçer. Bu, bir RDBMS kullanırken , tamamen önemsiz ve konu dışı.

Bilgisayar Bilimi, ilişkisel veritabanları dahil Fakat gelmez matematik kökleri var, biz burada "ilişkisel" terimi ile kutsanmış vardır. Tamamen soyuttur ve insanlar ile olanlarınız arasındaki ilişkilerle hiçbir ilgisi yoktur.

Bir yana, "ilişki" terimi bazen "ilişkilendirme" için de kullanılır ve bu tamamen aynıdır (burada, ilişkinin altında yatan kümeler kendileri yukarıda tanımlandığı gibi ilişkilerdir (diğer bir deyişle tablolar)).

Not: Matematikte, ilişkiler veritabanları ile ilgili değildir, fakat fonksiyonlar gibi bir şeydir, sadece daha genel (lütfen, tüm matematikçiler, şimdi nitpick yapmaya başlama, biz dba.SE, matematik değil.SE; Bunun yanlış bir yol olduğunu :)). Gibi bir fonksiyon f(x)=x+1da bir küme kümesi olarak ifade edilebilir (1, 2), (2, 3), ..., ancak demetin sol tarafında her sayıya yalnızca bir kez sahip olabilir. Yani, bu geçerli bir işlev olmaz: (1, 2), (1, 3), .... Ama ikincisi olurdu geçerli bir ilişki olması; yani New York'ta bir Bob olabilir ve Hollywood'da Bob.


5

İlişkisel veritabanları , EFCodd'un ilişkisel modeline dayanmaktadır. İlişkisel cebir nasıl sorguya veri yöntemleri açıklar. Bir ilişki basitçe bazı kümelerin (etki alanlarının) çapraz ürününün alt kümesidir.

Örnek

Aşağıdaki setlere sahibiz:

DepIds = {1, 2, 3, ...}
EmpIds = {1, 2, 3, ...}
DepNames = {'Engineering', 'Finance', 'Sales', ...}
FirstNames = {'John', 'Walter', 'Mary', 'Roxane', ...}
LastNames = {'Smith', 'Bondy', 'Taylor', ...}
BirthDates = {..., 1950-01-01, 1950-01-02, ...}
Jobs = {'Accountant', 'Programmer', 'Database Administrator', ...}

Dahası biz tül setleri

departements = { 
    (1, 'Engineering'), 
    (2, 'Finance')}
employees = { 
    (1, 1, 'John', 'Taylor', 1985-03-22, 'Programmer'), 
    (2, 1, 'Walter', 'Bondy', 1997-09-11, 'Database Administrator'), 
    (3, 2, 'Roxane', 'Myers', 1987-12-19, 'Accountant')}

departements bir alt kümesidir

    DepIds x DepNames

ve bu bir ilişkidir.

employees bir alt kümesidir

    EmpIds x DepIds x FirstNames x LastNames x BirthDates x Jobs

ve bu da bir ilişki.

İlişkilerin tablolarla nasıl uygulanabileceği açıktır.

Neden matematikçiler bir dizi tüfek ilişkisini çağırır?

Genellikle '2, 3'ten az', '4, 4' e eşittir ',' 2, 1 ile 3.4 arasında ',' -1 negatif 'gibi özelliklere ilişki denir.

A = {1, 2, 3} setindeki 'den küçük' ilişkisi, alt küme ile tanımlanır.

{(1, 2), (1, 3), (2, 3) }

arasında

A x A = {1, 2, 3} x {1, 2, 3}=
{ (1, 1), (1, 2), (1, 3), 
  (2, 1), (2, 2), (2, 3), 
  (3, 1), (3, 2), (3, 3) } 

Benzer şekilde, diğer ilişkiler bir çapraz ürünün alt kümesi olarak görülebilir. 'y'den küçük x', 'x eşittir y' ikili ilişkilerdir ve bu nedenle bir çift çifti tarafından tanımlanır. 'y ile z' arasındaki x 'üçlü bir ilişkidir' ve bu nedenle bir dizi üçlü tarafından tanımlanır. 'x negatiftir', tek bir ilişkidir ve bu nedenle bir dizi tekille tanımlanır.

Yukarıda tanımladığımız bölümler grubu ikili bir ilişki, çalışanlar ilişkisi 6 ary'dır.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.