33973 skanuj0246 (3)

33973 skanuj0246 (3)



Rozdział 9. ♦ Podstawy MySQL 259

♦    jeden do jednego,

♦    jeden do wielu,

♦    wiele do wielu.

W przypadku relacji jeden do jednego jednemu rekordowi (wierszowi) z tabeli X odpowiada dokładnie jeden rekord z tabeli Y. Z taką sytuacją moglibyśmy mieć do czynienia na przykład wtedy, gdyby w jednej tabeli zapisać imiona i nazwiska osób, a w innej tabeli numery PESEL (rysunek 9.21). Jak wiadomo, każda osoba ma przypisany unikalny numer PESEL, a zatem będzie tu występowała relacja typu jeden do jednego. Oczywiście od razu należałoby przyjąć założenie, że nie będziemy przechowywać danych obywateli innych państw, którzy PESEL-i nie posiadają.

Osobald

Imię

Nazwisko

Data urodzenia

1

Jan

Kowalski

1970-01-01

2

Jan

Kowalski

1970-01-01

3

Andrzej

Nowak

1971-02-02

4

Anna

Jabłońska

1972-03-03


i PESEL

01234567890

01234567891

01234567892

01234567893


Rysunek 9.21.

Pomiędzy tymi tabelami występuje relacja jeden do jednego

W przypadku relacji jeden do wielu jednemu rekordowi (wierszowi) z tabeli X może odpowiadać jeden lub więcej rekordów z tabeli Y, ale — uwaga—jednemu wierszowi z tabeli Y odpowiada dokładnie jeden wiersz z tabeli X. Z taką sytuacją już mieliśmy do czynienia. Spójrzmy ponownie na rysunek 9.20. Znajdują się na nim dwie tabele, z których pierwsza opisuje klientów, a druga złożone przez tych klientów zamówienia. Jeden klient może złożyć wiele zamówień, ale jedno zamówienie może należeć tylko do jednego klienta. A zatem jest to relacja jeden do wielu (lub też odwrotnie — wiele do jednego).

Przypadek trzeci jest bardziej złożony. Otóż relacja wiele do wielu ma miejsce wówczas, gdy jednemu wierszowi z tabeli X może odpowiadać wiele wierszy z tabeli Y, oraz jednemu wierszowi z tabeli Y może odpowiadać wiele wierszy z tabeli X. Kiedy występuje taka sytuacja? Na przykład wtedy, gdy chcemy zapisać w bazie dane dotyczące książek i autorów. Wiadomo bowiem, że każda książka może mieć jednego lub więcej autorów, ale także każdy autor mógł napisać jedną lub wiele książek. Jest to więc typowa relacja wiele do wielu. Jak taką sytuację odzwierciedlić w praktyce w bazie danych? Osobom, które nie miały dotychczas do czynienia z tworzeniem baz danych, może się nasunąć pomysł, aby utworzyć dwie tabele: KSIĄŻKI i AUTORZY, i w tabeli KSIĄŻKI umieścić dwie lub trzy kolumny odwołujące się do tabeli AUTORZY. Tabele miałyby więc postać taką, jak na rysunku 9.22.

Książki


Rysunek 9.22.

Książka Id

Tytuł

Autorlld

Autor2ld

Autor3ld


Autorld

Imię

Nazwisko


Błędne rozwiązanie problemu relacji wiele do wielu


Wyszukiwarka

Podobne podstrony:
skanuj0232 (3) Rozdział 9. ♦ Podstawy MySQL 245 W przypadku wyboru instalacji standardowej lub pełne
skanuj0244 (3) Rozdział 9. ♦ Podstawy MySQL 257 Pomiędzy tymi tabelami, a ściślej danymi w tych tabe
skanuj0252 (3) Rozdział 9. ♦ Podstawy MySQL 265 „Klucze”. Najczęściej wprowadzamy w tym celu do tabe

więcej podobnych podstron