References i Constraints
Konrad Zapałowicz - 23-10-2005 18:53
Witam, mam pytanie - co to znaczy, że jakaś kolumna jest w tabeli oznaczona jako "references( kolumna innej tabeli )" i co to daje. Gdzieś wyczytałem, że nie ma z tego wymiernych korzyści, bo engine bazy (MySQL bodajrze) nie sprawdza czy wartości w jednej tabeli odnoszą się do drugich i to jest problem programisty - Wyszło na to, że Refernces to jedynie info. dla Admina bazy, że ta tabela ma sens w zestawieniu z tą do której się odnosi.
A Constraints to już wogóle nie rozumiem - nie wiem na ten temat nic.
Wytłumaczcie mi proszę.
Pozdrawiam.
-- Wysłano z serwisu Usenet w portalu Gazeta.pl -> http://www.gazeta.pl/usenet/
d'plus - 23-10-2005 18:53
Konrad Zapałowicz napisał(a): > Witam, > mam pytanie - co to znaczy, że jakaś kolumna jest w tabeli oznaczona jako > "references( kolumna innej tabeli )" i co to daje. Gdzieś wyczytałem, że nie > ma z tego wymiernych korzyści, bo engine bazy (MySQL bodajrze) nie sprawdza > czy wartości w jednej tabeli odnoszą się do drugich i to jest problem > programisty - Wyszło na to, że Refernces to jedynie info. dla Admina bazy, że > ta tabela ma sens w zestawieniu z tą do której się odnosi. > > A Constraints to już wogóle nie rozumiem - nie wiem na ten temat nic. > > Wytłumaczcie mi proszę. > > Pozdrawiam. >
constraint to jakby trigger sprawdzający poprawność danych w danej kolumnie - można określić za jego pomocą wszelkie testy na poprawność (przynajmniej w oracle). więcej info w manualach.
Grzesiek G. - 23-10-2005 18:53
d'plus napisał(a): > Konrad Zapałowicz napisał(a): > >> Witam, >> mam pytanie - co to znaczy, że jakaś kolumna jest w tabeli oznaczona jako >> "references( kolumna innej tabeli )" i co to daje. Gdzieś wyczytałem, >> że nie >> ma z tego wymiernych korzyści, bo engine bazy (MySQL bodajrze) nie >> sprawdza >> czy wartości w jednej tabeli odnoszą się do drugich i to jest problem >> programisty - Wyszło na to, że Refernces to jedynie info. dla Admina >> bazy, że >> ta tabela ma sens w zestawieniu z tą do której się odnosi.
Jakbym słyszał o samochodach nie nadających się do poruszania :-)
Może piszesz o konkretnym przypadku, w którym ktoś wyłączył sprawdzanie references?
[...] > constraint to jakby trigger sprawdzający poprawność danych w danej > kolumnie - można określić za jego pomocą wszelkie testy na poprawność > (przynajmniej w oracle). więcej info w manualach.
Czy wszelkie oznacza też biorące pod uwagę wartości z innych wierszy? Pytam, bo nie znam Oracla, a w MSSQL niestety do takiego przypadku trzeba triggera.
Pozdrawiam
-- Grzegorz Gruza Odpowiadając usuń "spamerom_nie." z adresu!!!
d'plus - 23-10-2005 18:54
Grzesiek G. napisał(a): > d'plus napisał(a): > >> Konrad Zapałowicz napisał(a): >> >>> Witam, >>> mam pytanie - co to znaczy, że jakaś kolumna jest w tabeli oznaczona >>> jako >>> "references( kolumna innej tabeli )" i co to daje. Gdzieś wyczytałem, >>> że nie >>> ma z tego wymiernych korzyści, bo engine bazy (MySQL bodajrze) nie >>> sprawdza >>> czy wartości w jednej tabeli odnoszą się do drugich i to jest problem >>> programisty - Wyszło na to, że Refernces to jedynie info. dla Admina >>> bazy, że >>> ta tabela ma sens w zestawieniu z tą do której się odnosi. > > > Jakbym słyszał o samochodach nie nadających się do poruszania :-) > > Może piszesz o konkretnym przypadku, w którym ktoś wyłączył sprawdzanie > references? > > [...] > >> constraint to jakby trigger sprawdzający poprawność danych w danej >> kolumnie - można określić za jego pomocą wszelkie testy na poprawność >> (przynajmniej w oracle). więcej info w manualach. > > > Czy wszelkie oznacza też biorące pod uwagę wartości z innych wierszy? > Pytam, bo nie znam Oracla, a w MSSQL niestety do takiego przypadku > trzeba triggera. > > Pozdrawiam >
tak, generalnie bardzo dużo jest możliwości. polecam manuala oracle.
Konrad Zapałowicz - 23-10-2005 18:54
> Jakbym słyszał o samochodach nie nadających się do poruszania :-) > > Może piszesz o konkretnym przypadku, w którym ktoś wyłączył sprawdzanie > references? >
Wow - czyli to można włączyć, lub wyłączyć... Dobrze wiedzieć :) Bo na zajęciach milczeli o tym wykładowcy jak groby :/ Czyli znowu się potwierdza teza, że jeśli chce się coś umieć to należy nauczyć się samemu.
Czyli jak rozumiem, gdy włączymy "sprawdzanie references" to co wtedy? Przy wpisywaniu czegoś do tabeli zostanie zwrócony błąd gdy dane będa różne od tych w kolumnie tabeli na którą wskazuje referencja (po poczytaniu www wydawało mi się, że to załatwiają Constraints). Referencje, po czytaniu www wydają mi się swego rodzaju "przepisem" dla engine'u DB gdy chcemy połączyć dwie tabele. Jeśli się mylę to proszę poprawcie mnie, bo narazie sobie tylko hipotetyzuję. Prywatnie używam i poznaję MySQL i PostgreSQL - a zajęcia mam niestety na Oracle (piszę niestety bo komputery mają po 256 ramu, a przecież Oracle wymaga ciut więcej... jest tragedia).
Pozdrawiam, KZ.
-- Wysłano z serwisu Usenet w portalu Gazeta.pl -> http://www.gazeta.pl/usenet/
Grzesiek G. - 23-10-2005 18:54
Konrad Zapałowicz napisał(a): [...] > Czyli jak rozumiem, gdy włączymy "sprawdzanie references" to co wtedy? Przy > wpisywaniu czegoś do tabeli zostanie zwrócony błąd gdy dane będa różne od tych
Tak.
> w kolumnie tabeli na którą wskazuje referencja (po poczytaniu www wydawało mi > się, że to załatwiają Constraints). Referencje, po czytaniu www wydają mi się > swego rodzaju "przepisem" dla engine'u DB gdy chcemy połączyć dwie tabele.
Referencja i check są rodzajami constraints (przynajmnieh w terminologii związanej z MSSQL). Dlatego przy czytaniu trzeba wziąć pod uwagę kontekst.
Pozdrawiam
-- Grzegorz Gruza Odpowiadając usuń "spamerom_nie." z adresu!!!
Morff - 23-10-2005 18:54
Konrad Zapałowicz napisał(a):
> Wow - czyli to można włączyć, lub wyłączyć... Dobrze wiedzieć :) Bo na > zajęciach milczeli o tym wykładowcy jak groby :/ Czyli znowu się potwierdza > teza, że jeśli chce się coś umieć to należy nauczyć się samemu.
Podobno to czego sie sam nauczysz dłuzej sie pamięta.
> Czyli jak rozumiem, gdy włączymy "sprawdzanie references" to co wtedy? Przy > wpisywaniu czegoś do tabeli zostanie zwrócony błąd gdy dane będa różne od tych > w kolumnie tabeli na którą wskazuje referencja (po poczytaniu www wydawało mi > się, że to załatwiają Constraints).
A nie uwazasz ze referencje są też pewnego rodzaju constraintami ? .. to też jakieś ograniczenie.
> Referencje, po czytaniu www wydają mi się > swego rodzaju "przepisem" dla engine'u DB gdy chcemy połączyć dwie tabele.
referencje są pewnego rodzaju listą wartości z innego pola dla konkretnego pola
> Jeśli się mylę to proszę poprawcie mnie, bo narazie sobie tylko hipotetyzuję. > Prywatnie używam i poznaję MySQL i PostgreSQL - a zajęcia mam niestety na > Oracle (piszę niestety bo komputery mają po 256 ramu, a przecież Oracle wymaga > ciut więcej... jest tragedia).
Dla schematu SCOTT (taki do nauki) - 256mb ramu to o wiele za dużo. Pytanie ile z tego ramu zrzera system i co jest poustawiane w init.ora . Zresztą w init.ora - jezeli nie został okrojony - są zaremowane wartości dla bazy testowej , produkcyjnej ..
-- Pozdrawiam Morff ---------- AQQ 141151
Sławomir Szyszło - 23-10-2005 18:54
Dnia Thu, 20 Oct 2005 08:55:27 +0200, d'plus <dplusUSUN_TO@tlen.pl> wklepał(-a):
>constraint to jakby trigger sprawdzający poprawność danych w danej >kolumnie - można określić za jego pomocą wszelkie testy na poprawność >(przynajmniej w oracle). więcej info w manualach.
Jeśli masz na myśli check constraint, to działa on tylko w obrębie bieżącego wiersza. A ogólnie "constraints" to ograniczenia wynikające z kluczy głównych, obcych, unikalnych, obowiązkowości pól, klauzul check itp. -- Sławomir Szyszło mailto:slaszysz@poczta.onet.pl Primus inter FAQires & Grand Inquisitor no.0 of pl.comp.bazy-danych FAQ pl.comp.bazy-danych http://www.dbf.pl/faq/ Archiwum http://groups.google.com/groups?grou...mp.bazy-danych
Konrad Zapałowicz - 23-10-2005 18:54
Dziękuję za wszystkie odpowiedzi - nieco się u mnie rozjaśniło.
Pozdrawiam, KZ
-- Wysłano z serwisu Usenet w portalu Gazeta.pl -> http://www.gazeta.pl/usenet/
zanotowane.pldoc.pisz.plpdf.pisz.pleffulla.pev.pl
|
Alter table... Add Constraint... MS SQL Server
[MySQL] Takie same nazwy kolumn oraz referencje
[firebird 1.5] Delete w przypadku nalozonego constrains
[pgsql] Klucz glowny bedacy referencja???
=?ISO-8859-2?Q?S=B3abe_referencje_w_Javie?=
Watek - czy da sie pobrac referencje mając nazwe??
Oracle 8i, referencja na kursor
komunikat "non-static variable this cannot be referenced ...."
referencja do nazwy funkcji
ORACLE, usuwanie constraint
zanotowane.pldoc.pisz.plpdf.pisz.plshutter.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 |
|