ďťż
 
Relacje... za i przeciw ďťż
 
Relacje... za i przeciw
Zobacz wiadomości
 
Cytat
A gdyby tak się wedrzeć na umysłów górę, / Gdyby stanąć na ludzkich myśli piramidzie, / I przebić czołem przesądów chmurę, / I być najwyższą myślą wcieloną. . . Juliusz Słowacki, Kordian
Indeks BCB i MySQL subiekt gt fototapeta
 
  Witamy

Relacje... za i przeciw



ZieleE - 27-04-2006 00:16
Witam

Stanalem przed problem stworzenia relacji lub nie.. z mojego malego
doswiadczenia wiem ze raczej przysparzaly mi one wiecej problemow niz korzysci
(szczegolnie przy modyfikacji struktury bazy)
i chcialem sie zapytac bardziej doswiadczony uzytkownikow o Wasze zdanie
dotychczas pracowalem z Firebirdem, ale teraz chodzi mi o MySqla. tworzyc
relacje czy nie?

niby ma byc relacyjna baza.. ale....
- z tego co wiem relacje podobno spowalniaja przy wiekszej ilosci insertow,
deletow itd...
- gdzies czytalem ze tez spowalniaja selecta.. ale cos mi sie nie chce wierzyc
+ moga pilnowac "dziur" jesli programista dokonca o to nie zadba

sa jeszcze jakies plusy lub minusy?

pozdr
zielee

--
Wysłano z serwisu OnetNiusy: http://niusy.onet.pl





news - 27-04-2006 00:16

  ZieleE wrote:
> Witam
>
> Stanalem przed problem stworzenia relacji lub nie.. z mojego malego
> doswiadczenia wiem ze raczej przysparzaly mi one wiecej problemow niz korzysci
> (szczegolnie przy modyfikacji struktury bazy)
> i chcialem sie zapytac bardziej doswiadczony uzytkownikow o Wasze zdanie
> dotychczas pracowalem z Firebirdem, ale teraz chodzi mi o MySqla. tworzyc
> relacje czy nie?
>
> niby ma byc relacyjna baza.. ale....
> - z tego co wiem relacje podobno spowalniaja przy wiekszej ilosci insertow,
> deletow itd...
> - gdzies czytalem ze tez spowalniaja selecta.. ale cos mi sie nie chce wierzyc
> + moga pilnowac "dziur" jesli programista dokonca o to nie zadba
>
> sa jeszcze jakies plusy lub minusy?

Przez relacje rozumiesz FK ?

W Oracle sa one zawsze niezbedne :D w MySQL tez bym ich uzyl.

dap

--
polanski.biz
xoops.pl




=?ISO-8859-2?Q?Micha=B3?= Kuratczyk - 27-04-2006 00:16

  news wrote:
>> tworzyc relacje czy nie?
> Przez relacje rozumiesz FK ?
Mam wrażenie, że chodzi o to czy normalizować bazę czy nie - czy tworzyć
osobne tabele, czy wpychać dane jak leci do jednej tabeli. Jeśli tak, to
główną zaletą normalizacji (czyli tworzenia relacji tam, gdzie należy) jest
spójność danych oraz fakt, że nie wyleci się z roboty / nie zostanie
wyśmianym przez kolegów. Trzeba mieć bardzo dobry powód, żeby w jakimś
miejscu zdenormalizować schemat (robi się to ze względów wydajnościowych,
ale dopiero po udowodnieniu, że złączenia są w tym konkretnym przypadku
zbyt kosztowne, a nie z założenia - współczesne bazy rzadko mają problemy
nawet przy dużej ilości danych).

Najlepiej podaj jakiś konkretny przykład - z relacją i bez, to powiemy jakie
będziesz miał problemy. :->

--
Michał Kuratczyk




ZieleE - 29-04-2006 00:14

  > news wrote:
> >> tworzyc relacje czy nie?
> > Przez relacje rozumiesz FK ?
> Mam wrażenie, że chodzi o to czy normalizować bazę czy nie - czy tworzyć
> osobne tabele, czy wpychać dane jak leci do jednej tabeli.

nie, nie.. to jest oczywiste ze osobne tabele :)

> Najlepiej podaj jakiś konkretny przykład - z relacją i bez, to powiemy jakie
> będziesz miał problemy. :->

chodzi mi o fizycznie zalozenie FK
taki banalny przyklad
tabela OSOBA z polem id_adres
i tabela ADRES z polem id

co mi da ze zaloze klucz obcy osoba.id_adres - adres.id

pozdr
zielee

--
Wysłano z serwisu OnetNiusy: http://niusy.onet.pl





=?ISO-8859-2?Q?Micha=B3?= Kuratczyk - 29-04-2006 00:14

  ZieleE wrote:
> chodzi mi o fizycznie zalozenie FK
> taki banalny przyklad
> tabela OSOBA z polem id_adres
> i tabela ADRES z polem id
>
> co mi da ze zaloze klucz obcy osoba.id_adres - adres.id
1. Spójność danych - jak będzie FK, to nie uda się przypisać osobie adresu,
którego nie ma.

2. Od razu widać znaczenie pola. Sama nazwa nie zawsze mówi do jakiej
tabeli/kolumny się odwołujesz. Jak ktoś inny na to spojrzy, to z FK wyczyta
o co chodzi, a bez FK będzie musiał szukać/zgadywać.

3. Na kluczach obcych generalnie należy zakładać indeksy - jeśli są
zdefiniowane, to można w łatwy sposób wyszukać tych niezaindeksowanych.
Jeśli nie są, to w prosty sposób ich nie znajdziesz (bo ich de facto nie ma
- są tylko w Twojej głowie).

4. Jak zrobisz "reverse-engineering" (załadujesz istniejący schemat do
jakiegoś narzędzie do modelowania), to on Ci te wszystkie relacje wczyta.
Jeśli ich nie ma w bazie, to wczyta tylko niepowiązane ze sobą tabele.
A takie operacje się wykonuje, np. żeby zrobić dokumentację.

A jakie widzisz wady?

--
Michał Kuratczyk
  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • effulla.pev.pl
  • comp
    [MySQL] Jaki typ pola aby =?ISO-8859-2?Q?trzyma=E6_liczby_od?==?ISO-8859-2?Q?dzielone_przecinkiem_=3F?= =?iso-8859-2?q?Relacje_uwzgl=EAdniaj=B1ce_czas_(jak=3F)?= =?iso-8859-2?q?Zachowanie_integralno=B6ci_relacji_=22wiele_do _wiele=22?= =?iso-8859-2?q?Jak_si=EA_robi_insert_do_tabel_z_relacj=B1_1:1 ?= Lista =?ISO-8859-2?Q?uporz=B1dkowana?= w relacji 2 tabele w relacji 1 do wielu - tylko jeden wiersz Czy stosuje sie relacje bez wymuszania wiezow integralnosci? [TEORIA BD] Wyznaczanie kluczy relacji . [MySql] pytanie o relacje, JOIN [MS sql2005] relacje - problem
  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • melooonka.opx.pl
  • Cytat

    Decede mihi sole - nie zasłaniaj mi słonca.
    Gdy kogoś kochasz, jesteś jak stworzyciel świata - na cokolwiek spojrzysz, nabiera to kształtu, wypełnia się barwą, światłem. Powietrze przytula się do ciebie, choćby był mróz, a ty masz w sobie tyle radości, że musisz ją rozdawać wokoło, bo się w tobie nie mieści
    Hoc fac - tak czyń.
    A tergo - od tyłu; z tyłu.
    I czarne włosy posiwieją. Safona

    Valid HTML 4.01 Transitional

    Free website template provided by freeweblooks.com