Lamerskie pytanie - po co są relacje?
Boa - 11-05-2007 12:32
Lamerskie pytanie - po co są relacje?
Witam,
Wiem, że pytanie nieco zaskakujące i lamersko brzmiące, ale ostatnio nie daje mi spokoju. Jestem amatorem programistą, znam accessa, podstawy relacyjnych baz danych. Ostatnio robiłem konwersję mdb->mySQL i ku memu zaskoczeniu pojawiło się w mojej głowie pytanie.
Co nam dają relacje widoczne w oknie relations w Accessie? Mam bazę z kilkudziesięcioma zdefiniowanymi relacjami w tym oknie, z kilkudziesięcioma kwerendami. JAk wszystkie relacje wywalę, to i tak wszystkie kwerendy chodzą bez problemów. Mało tego, po konwersji do mySQL oczywiście tych relacji nie ma w nowej bazie.
Po co się definiuje w accessie relacje? Czy to nie jest tak, że relacje ustala się "dynamicznie" podczas tworzenia kwerend i znikają one de facto po wykonaniu kwerendy?
Z góry dziękuję za pomoc :-).
Pozdrr., Boa.
Radoslaw Jocz - 11-05-2007 12:32
Boa wrote: > Witam, > > Wiem, że pytanie nieco zaskakujące i lamersko brzmiące, ale ostatnio nie > daje mi spokoju. > Jestem amatorem programistą, znam accessa, podstawy relacyjnych baz danych. > Ostatnio robiłem konwersję mdb->mySQL i ku memu zaskoczeniu pojawiło się w > mojej głowie pytanie. > > Co nam dają relacje widoczne w oknie relations w Accessie? Mam bazę z > kilkudziesięcioma zdefiniowanymi relacjami w tym oknie, z kilkudziesięcioma > kwerendami. JAk wszystkie relacje wywalę, to i tak wszystkie kwerendy chodzą > bez problemów. Mało tego, po konwersji do mySQL oczywiście tych relacji nie > ma w nowej bazie. > > Po co się definiuje w accessie relacje? > Czy to nie jest tak, że relacje ustala się "dynamicznie" podczas tworzenia > kwerend i znikają one de facto po wykonaniu kwerendy? > > Z góry dziękuję za pomoc :-). > > Pozdrr., > Boa. > >
widze za sam sobie przeczysz, piszac ze znasz accessa i podstawy relacyjnych baz danych a nie znasz podstawywych pojec takich jak relacje i integralnosc referencyjna, kursor.
a odnosnie accessa to po to sa relacje w Accesie to pewnie po to aby ladnie wygladalo, producent polozyl glownie nacisk na wyglad niz na dzialanie.
sugeruje poznanic PostgreSQL, przynajmniej trzyma w miare standardy i jest dobrze udokumentowany.
pozdr. RJ.
=?iso-8859-2?Q?Marcin_Dzi=F3bek?= - 11-05-2007 12:32
=?iso-8859-2?Q?Re:_Lamerskie_pytanie_-_po_co_s=B1_relacje=3F?= Użytkownik "Boa" <usuntoboaskitotezusun@biskupin.wroc.pl> napisał w wiadomości news:f1749f$uqb$1@w3cache.biskupin.wroc.pl...
> Co nam dają relacje widoczne w oknie relations w Accessie? Mam bazę z > kilkudziesięcioma zdefiniowanymi relacjami w tym oknie, z kilkudziesięcioma > kwerendami. JAk wszystkie relacje wywalę, to i tak wszystkie kwerendy chodzą > bez problemów. Mało tego, po konwersji do mySQL oczywiście tych relacji nie > ma w nowej bazie.
Kwerendy accessa to zapytania/polecenia SQL (przejdź do widoku SQL). Zwykłe selecty raczej nie są wrażliwe na obecność relacji. Jednak w przypadku kwerend usuwających i aktualizujących relacje mają całkiem spore znaczenie. Załóż relację z kaskadowym usuwaniem rekordów w tabeli podrzędnej a potem skasuj coś z tabeli głównej (nie musisz kwerendą), szybko dowiesz się co możesz stracić kiedy zignorujesz relacje.
> Po co się definiuje w accessie relacje?
Chyba głównie po to aby ułatwić sobie zachowanie integralności. http://office.microsoft.com/pl-pl/ac...CH100645681045 http://groups.google.com/groups/sear...access+relacje
> Czy to nie jest tak, że relacje ustala się "dynamicznie" podczas tworzenia > kwerend i znikają one de facto po wykonaniu kwerendy?
Jak widać nie.
Pozdr. MDz
PS. Właściwszą grupą na Twoje pytanie jest jest pl.comp.bazy-danych.msaccess
dipl.usunto@gazeta.lp - 11-05-2007 12:32
> Co nam dają relacje widoczne w oknie relations w Accessie? Mam bazę z > kilkudziesięcioma zdefiniowanymi relacjami w tym oknie, z kilkudziesięcioma > kwerendami. JAk wszystkie relacje wywalę, to i tak wszystkie kwerendy chodzą > bez problemów. Mało tego, po konwersji do mySQL oczywiście tych relacji nie
moja znajomość Accessa zakończyła się na wersji 97, ale nie sądzę, żeby wiele zmieniło się od tego czasu. system bez relacji będzie działał, powiem więcej będzie nawet prawdopodobnie działał szybciej niż analogiczny system ze zdefiniowanymi ograniczeniami. i nie ma tu znaczenia silnik bazy danych. relacje w accessie (i nie tylko tam) są po to, żeby zapewnić spójność danych. system bez relacji będzie działał szybciej, gdyż przed wstawieniem czy usunięciem rekordu nie muszą być sprawdzane rekordy podrzędne/nadrzędne. -- pozdr dipl w bud.: http://swiatlazienek.net i http://hurtownie.info.pl ps) odpisując na priva usuń tekst ".usunto" oraz zmień lp -> pl w adresie
dips - 15-05-2007 00:08
Boa napisał(a):
> Co nam dają relacje widoczne w oknie relations w Accessie? Mam bazę z > kilkudziesięcioma zdefiniowanymi relacjami w tym oknie, z kilkudziesięcioma > kwerendami. JAk wszystkie relacje wywalę, to i tak wszystkie kwerendy chodzą > bez problemów. Mało tego, po konwersji do mySQL oczywiście tych relacji nie > ma w nowej bazie.
relacje służą po pierwsze do zachowania integralności danych,czyli np. przy tabelach naglowek_faktur i pozycje_faktur pilnuje obecnosci odpowiedniego naglowka faktury przy wpisywaniu do pozycje_faktur jak rowniez nie daje skasowac naglowka faktury gdy są dane w pozycje_faktur (o ile nie ma kasowania kaskadowego).
po drugie relacje w roznych systemach pomagaja userowi przy budowaniu aplikacji i określają logiczną strukturę powiązania danych np. w oracle forms poprzez relacje formsy dobieraja odpowiedniego master (naglowek fv) do odpowiedniego detailv (pozycje fv).
w mysql dopiero od wersji 5 jest obsługa relacji.
myślę ze w googlach i wikipedii jest to wszystko dokladnie opisane
=?ISO-8859-2?Q?Pawe=B3_Matejski?= - 15-05-2007 00:08
dips wrote: > Boa napisał(a): > >> Co nam dają relacje widoczne w oknie relations w Accessie? Mam bazę z >> kilkudziesięcioma zdefiniowanymi relacjami w tym oknie, z >> kilkudziesięcioma kwerendami. JAk wszystkie relacje wywalę, to i tak >> wszystkie kwerendy chodzą bez problemów. Mało tego, po konwersji do >> mySQL oczywiście tych relacji nie ma w nowej bazie. > > relacje służą po pierwsze do zachowania integralności danych,czyli np. > przy tabelach naglowek_faktur i pozycje_faktur pilnuje obecnosci > odpowiedniego naglowka faktury przy wpisywaniu do pozycje_faktur jak > rowniez nie daje skasowac naglowka faktury gdy są dane w pozycje_faktur > (o ile nie ma kasowania kaskadowego).
Mylisz relacje z więzami integralność, a dokładniej z kluczami obcymi. Klucze obce są mocno związane z relacjami, ale nie są relacjami (tam gdzie jest klucz, jest relacja, tam gdzie jest relacja, nie musi być klucza). Relacje to twór abstrakcyjny. Reprezentacją realcji może być kreska na modelu blokowym jak i kluczy obcy w SQL. Dlatego po skasowaniu "relacji" dalej działają selecty. :)
> po drugie relacje w roznych systemach pomagaja userowi przy budowaniu > aplikacji i określają logiczną strukturę powiązania danych np. w oracle > forms poprzez relacje formsy dobieraja odpowiedniego master (naglowek > fv) do odpowiedniego detailv (pozycje fv).
Tu się zgodzę.
> w mysql dopiero od wersji 5 jest obsługa relacji.
Czyli wcześniej mysql nie był bazą relacyjną? ;)
> myślę ze w googlach i wikipedii jest to wszystko dokladnie opisane
Właśnie. :)
P.S. W teorii baz danych relacja = tabela. Ale powyższe tyczy się relacji jako powiązań między danymi, bo nie sądzę, aby po skasowaniu tabel jeszcze jakieś selecty działały. ;)
-- P.M.
zanotowane.pldoc.pisz.plpdf.pisz.pleffulla.pev.pl
|
[OT?] Monitory dla =?ISO-8859-2?Q?grafik=F3w_-_pytanie_o_?==?ISO-8859-2?Q?przej=B6ci=F3wki?=
=?ISO-8859-2?Q?kr=F3tkie_pytanie_-_gdzie_forum_grafik=F3?==?ISO-8859-2?Q?w_=28Corel_Painter=29_=3F?=
Pytanie -Papier Nalepka - =?ISO-8859-2?Q?p=B3ytka_w_kszta=B3?==?ISO-8859-2?Q?cie_wizyt=F3wki?=
[oracle] =?ISO-8859-2?Q?zmia=BFd=BFony_przez_problem=3A_za?==?ISO-8859-2?Q?pytanie_do_hierarchi?=
Pytanie o =?ISO-8859-2?Q?kas=EA=2E=2E=2E?=
pytanie o zapytanie z having count = count z innej kolumny
=?iso-8859-2?q?Kr=F3tkie_pytanie_-_PostgreSQL_8=2E2=2E2_i_CREATE_ASSERTION?=
=?iso-8859-2?q?Pytanie_SQL__spe=B3niaj=B1ce_wiecej_jak_jeden_ warunek_na_jednej_kolumnie=2E?=
CA nr 1/2007 - pytanie do tych co =?ISO-8859-2?Q?maj=B1?= ten numer
Re: MS SQL 2000 - Wadliwy optymalizator? (dlugie pytanie...)
zanotowane.pldoc.pisz.plpdf.pisz.plets2.xlx.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 |
|