Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Silne kontra słabe podmioty MYSQL

Jak wiecie Słaby Entity to tabela, która nie ma klucza podstawowego ale klucz podstawowy zestawu słabych encji jest utworzony przez klucz podstawowy zestawu silnych encji, od którego zależny jest zestaw słabych encji, plus dyskryminator zbioru słabych bytów.

Relacja między słabą jednostką a silnym zbiorem encji nazywana jest relacją identyfikującą. W przykładzie wymienionym na powyższym obrazku, pożyczka-spłata jest relacją identyfikującą podmiot płatniczy. Zestaw słabych jednostek jest reprezentowany przez podwójnie zarysowany prostokąt, a odpowiadającą relację identyfikacyjną przez podwójnie zarysowany romb, jak pokazano na rysunku. Tu podwójne linie oznaczają łączny udział słabego podmiotu w zestawie silnych podmiotów, co oznacza, że ​​każda płatność musi być powiązana poprzez spłatę kredytu na jakieś konto. Strzałka od spłaty pożyczki do pożyczki wskazuje, że każda płatność dotyczy pojedynczej pożyczki. Dyskryminator zestawu słabych elementów jest podkreślony liniami przerywanymi, a nie ciągłą.

Rozważmy inny scenariusz, w którym chcemy przechowywać informacje o pracownikach i osobach pozostających na ich utrzymaniu. Każdy pracownik może mieć od zera do n osób na utrzymaniu. Każda osoba na utrzymaniu ma numer identyfikacyjny i nazwisko.

Rozważmy teraz następującą bazę danych:

Trzech pracowników ma E# jako odpowiednio 1, 2 i 3.

Teraz, w przypadku identyfikatora jednostki zależnej, nie może działać jako klucz podstawowy, ponieważ nie jest unikalny.

Dependent jest zatem słabym podmiotem, którego id jest dyskryminatorem. Ma całkowity udział w relacji „ma”, ponieważ żadna osoba zależna nie może istnieć bez pracowników (firma zajmuje się pracownikami).

Powyżej diagramu e-r należy utworzyć dwie tabele. Są to Pracownik mający E# jako pojedynczą kolumnę, która działa jako klucz podstawowy. Druga tabela będzie zależna od kolumn E#, id i name, gdzie klucz podstawowy jest kombinacją (E# i id).



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Przekonwertować schemat MySQL na Github Wiki?

  2. MySQL:Total GROUP BY Z ROLLUP ciekawostką

  3. Dlaczego ta aktualizacja MySQL nie działa?

  4. Wielokolumnowe wyszukiwanie nazw MySQL

  5. Jak utworzyć przechowywaną funkcję agregującą MySQL?