Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Što je relacija?

[es] :: Baze podataka :: Što je relacija?

[ Pregleda: 2181 | Odgovora: 15 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

itf
Zagreb

Član broj: 59794
Poruke: 993
*.adsl.net.t-com.hr.



+9 Profil

icon Što je relacija?30.04.2017. u 23:00 - pre 23 meseci
Muči me definicija ovog pojma jer vrlo često čujem da je relacija zapravo tablica umjesto odnos između dva entiteta u konceptualnom modelu (1 prema 1, 1 prema više, više prema više). Štoviše, mnogi ljudi relaciju shvaćaju kao poveznicu između dvije tablice u fizičkom modelu (primarni i strani ključ) kojom se definira referencijalni integritet. Može itko razriješiti ovu pomutnju? Hvala!
 
Odgovor na temu

Shadowed
Vojvodina

Član broj: 649
Poruke: 12501



+4491 Profil

icon Re: Što je relacija?01.05.2017. u 01:59 - pre 23 meseci
To sto mnogi ljudi shvaraju je tačno. A za to se koristi medjutabela u sluvaju relacije vise prema vise. Ako imas tabelu sa autorima i tabelu sa knjigama i znamo da autor moze pisati vise knjiga kao i da jednu knjigu moze pisati bise autora, imamo relaciju vise prema viseto se ostvaruje tako sto imas jednu tabelu koja sluzi samo da definise svaki potreban par autor-knjiga.

Pise sa telefona pa ne mogu da idem previse u detalje ali baci pogled na Wikipediu, ia sigurno lepo objsnjeno.
 
Odgovor na temu

itf
Zagreb

Član broj: 59794
Poruke: 993
*.adsl.net.t-com.hr.



+9 Profil

icon Re: Što je relacija?01.05.2017. u 07:24 - pre 23 meseci
Mislim da si me krivo razumio. Ja znam kako se implementira više-prema-više pomoću među-tabele. Mene samo zanima zašto je relacija po definiciji tablica. To čak i ima smisla u više-prema-više zbog među-tabele, ali ne znam onda kako bih to objasnio u drugim odnosima (1-1, 1-više).
 
Odgovor na temu

jablan

Član broj: 8286
Poruke: 4530



+705 Profil

icon Re: Što je relacija?01.05.2017. u 10:24 - pre 23 meseci
Relacija je jedna tabela. Terminologija dolazi iz matematike, ako se dobro sećam, teorije skupova. Imaš skup A (npr. skup svih prirodnih brojeva) i skup B (npr. skup svih stringova dužine između 0 i 255). Relacija opisuje jedno preslikavanje iz prvog u drugi skup, odnosno podskup dekartovog proizvoda ova dva skupa (npr. (id_radnika, prezime_radnika)) Više informacija:

https://en.wikipedia.org/wiki/Binary_relation
https://hr.wikipedia.org/wiki/Binarne_relacije
https://en.wikipedia.org/wiki/Relational_algebra


E sad, nama je intuitivno bliži pojam relacije između tabela (pošto jelte ne baratamo matematičkim pojmovima, već podacima na disku), pa otud dolazi do te konfuzije sa pojmovima.
 
Odgovor na temu

Shadowed
Vojvodina

Član broj: 649
Poruke: 12501



+4491 Profil

icon Re: Što je relacija?01.05.2017. u 10:38 - pre 23 meseci
OK, pogledao sam malo i izgleda da smo obojica imali pogresnu ideju o relacijama :)
Relacija zapravo nije odnos izmedju tabela (1-1, 1-*, *-*) vec je sama tabela relacija izmedju atributa (kolona).
Ili, striktnije govoreci, relacija se moze iskazati tabelarno, dok je sama tabela u bazi relacija + metapodaci (razni constraints, triggers, itd.).

Pogledaj https://en.wikipedia.org/wiki/Relation_(database)
 
Odgovor na temu

itf
Zagreb

Član broj: 59794
Poruke: 993
*.adsl.net.t-com.hr.



+9 Profil

icon Re: Što je relacija?01.05.2017. u 14:23 - pre 23 meseci
Ok. Sad imam štiva za pročitati :) Zahvaljujem!
 
Odgovor na temu

Zidar
Canada

Član broj: 15387
Poruke: 3082
*.100.46-69.q9.net.



+78 Profil

icon Re: Što je relacija?02.05.2017. u 16:20 - pre 23 meseci
Neprijetno mi je ali moram da se umesam. Relacija nije tabela niti je tabela relacija. To sto se relacije mogu vizuelno predstaviti kao tabele, ne znaci da su relacije tabele. A pogotovo en znaci daje tabela relacija. Zbunjujuce? Nije, ako ramisljamo matematicki. Ako na zidu vidimo sliku i na slici lula za duvan, da li mi u stvari vidimo lulu? U stvari ne, mi vidimo sliku lule. Nije jasno jos uvek? Pravu lulu mozes da uzmes, napunis duvanom i uzivas. Onu na slici ne mozes. To ti je nepreciznost normalnog ljudskog govora. Kao kad u geometriji nacrtas duz i tacku. Niti je duz duz, niti je tacka tacka. Matematicki, tacka nema dimenzije, nema duzinu, sirinu, visinu, prema tome ne moze se nacrtati. Mi samo zamisljamo da je nacrtana tacka, tako sto koristio neki simbol - ubod olovke ili mali kruzic (seti se nacrtne geometrije). Duz je skup beskonacno mnogo tacaka, koje nemaju dimeziju, a ipak govorimo o duzini duzi. Kako zbir od beskonacno komada necega sto nem dimenziju moze dati duzinu (nesto sto se moze videti i cak izmeriti)? To se zove abstrakcija. U tom smislu, tabela moze biti slika relacije, ali ne svaka tabela. Jos jedan primer za abstrakciju i nepreciznost ljudskog govora: imas sliku od Katty Perry. Izgleda isto kao i ziva Katty perry (evo ti jedna ovde http://www.speakerscorner.me/k...hot-pics-and-biography/katy35/), ali to nije Katty Perry. Zasto? Pa sa slikon ne mozes da radis iste stvari koje mozes da radis sa zivom Katty Perry, zar ne?

Relacoja je matematicki pojam i definise se otprilike ovako:

Relacija je skup n-torki koje predstavljau instance datog logickog predikata.

Jasno? Naravno da nije dok se ne objasne pojmovi koje definisija pominje. U matematici sve mora da se definise i ond se drugi pijmovi definisu na osnovu onih ranije definisanih, i tako dalje, dok se ne naidje na kontradikicju. Da krenemo:
1) Logicki Predikat = Matematicka funkcija sa parametrima, koja daje konkretan iskaz. Iskaz (propozicija) je izjavna recenica, koja moze biti tacna ili netacna (TRUE,FALSE).

Na primer P = "Ucenik [X] ide u skolu [Y] u razred Z". Ovo se matematicki moze napisati kao P = f(X,Y,Z). AKo zamneimo X,Y,Z nekim vrednostima, dobicemo konkretnu recenicu. U nasem primeru, funkcija ima 3 parametra, X,Y,Z. Ako umesto X,Y,Z uvedemo neke vrednosti, na primer X = 'Marko', Y = 'Sveti Sava', Z = 'treci', nasa funkcija f(X,Y,Z) postaje: P(x,y,z) = "Ucenik [Marko] ide u skolu [Sveti Sava] u razred [treci]". Ovo je vec konkretna recenica, koja moze biti tacna ili netacna, sto je za logiku vazno, da li je nesto tacno ili netacno (TRUE, FALSE). Mozemo da napisemo mnogo takvih recenica, za mnogo trojki (X,Y,Z), i njih zovemo instance predikata P. Na primer, evo nekoloko instanci datog predikata P(X,Y,Z):

P1 = "Ucenik [Marko] ide u skolu [Sveti Sava] u razred [reci]", P2 = ""Ucenik [Milica] ide u skolu [Beogradski Bataljon] u razred [drugi]", P3="Ucenik [Zoran] ide u skolu [Centar] u razred [treci]". To smo naravnomogli da predstaviomo i ovako:

"Ucenik [Marko] ide u skolu [Sveti Sava] u razred [treci]"
"Ucenik [Milica] ide u skolu [Beogradski Bataljon] u razred [drugi]"
"Ucenik [Zoran] ide u skolu [Centar] u razred [treci]

Ovo vec lici na nekakav tabelarni prikaz, a licice jos vise na tabelu ako sve organizujemo i predstavimo ovako:
Code:

P = "Ucenik [X] ide u skolu [Y] u razred [Z]"
[X]            [Y]                        [Z]
--------------------------------------------
'Marko',    'Sveti Sava',            'treci'
'Milica',    'Beogradski BAtaljon',    'drugi'
'Zoran',    'Centar',                'treci'
Ovo izgleda kao bilo koja matematicka funkcija prikazana tabelarno. Sa jednom razlikom. Rezultat predikata nije skup {X,Y,Z} nego TRUE ili FALSE, pa bi trebalo da pise ovako:

Code:

P = "Ucenik [X] ide u skolu [Y] u razred [Z]"
[X]            [Y]                        [Z]            P(X,Y,Z)
--------------------------------------------------------
'Marko',    'Sveti Sava',            'treci',    TRUE
'Milica',    'Beogradski BAtaljon',    'drugi',    FALSE
'Zoran',    'Centar',                'prvi',    TRUE


Sve smo blizi tabelarnom prikazu, iako sam na pocetku izricito reka "Relacija nije tabela niti je tabela relacija". Usput, ni jedna od prikazanih tabela ne moze predstavlja relaciju. Nije kriva tabela, vec nastavak definicije relacije. Instance predikata koje dobijemo tako sto parameter X,Y,Z zamenimo nekim vrednostima (konstantama) zovu se u matematickoj logici propozicije ili po naski, iskazi. Po definiciji, iskazi su izjavne recenice koje mogu biti ili tacne ili netacne. Iskazi (propozicije) nemaju parametre, one su - recenice. Predikat je generalizovana forma nekakve recenice, koja nesto izjavljuje ili opisuje. Relacija (R) je skup TRUE propozicija koje su izvedene iz datog predikata. Relacija je dakle posledica predikata, pa bi imalo smisla pisati R (P) = (ovde nekako predstavimo relaciju). Slika relacije je jasnija ako umesto X,Y,Z upotrebimo imenovane parametre, na primer [Ime],[Skola],[Razred]. Relaciju R(P([Ime],[Skola],[Razred]) ) mozemo da predstavimo ovako:
Code:

P = "Ucenik [Ime] ide u skolu [Skola] u razred [Razred]"
[Ime]            [Skola]                [Razred]    
------------------------------------------------
'Marko',    'Sveti Sava',            'treci',    
'Zoran',    'Centar',                'prvi',    


U odnosu na prethodnu sliku, razlike su:
1. parametri imaju nazive bliske ljudskom govor
2. izbacili smo propoziciju koja je FALSE, zadrzali smo dve koje su TRUE
3. izbacili smo kolonu sa TRUE/FALSe, jer se podrazumeva da su sve prikazane propozicije TRUE

Poslednja tabela u stvari predstavlja relaciju R ( P([Ime],[Skola],[Razred]) ). Ono sto lici na redove u tabeli, zove se n-torka (tuple u originalu, izgovara se tapl, kao couple - kapl). Zaglavje tabeele, skup { [Ime], [Skola],[Razred]} , naziva se zaglavlje relacije (relation heading), idefinise se kao skup atributa(parametara) datog preikata.. Crta ispod zaglavja ne predstavlja nist, ona samo odvaja vizualno zaglavle of tela relacije (relation body). Telo relacije cini skup n-torki (set of tuples), gde konstante koje cine n-torku odgovaraju po smislu njihovom attributu u zaglavlju.

Znaci, relacija R(P)) je matematicka struktura koja se opisuje ovako: skup n-torki koje su TRUE za dat predikat P, a vrednosti u n-torkama odgovaraju atributima u zaglavlju relacije. U praksi, zgodno je da se n-torke predstave u tabelarnoj ili matricnoj formi. Otuda zabluda da su tabele isto sto i relacije. sledeca slika NE predstavlja relaciju:
Code:

[Ime]            [Skola]                [Razred]    
------------------------------------------------
'Marko',    'Sveti Sava',            'treci',    
'Zoran',    'Centar',                'prvi',    
Zasto ovo ne predstavlja relaciju? Zato sto ne vidimo kako glasi predikat. Za ovu fizicku tabelu, predikat bi mogao da glasi
P = "Na olimpijadi u Moskvi, ucenik [Ime], koji je iz skole [Skola], rangiran je kao [Razred] u svojoj kategoriji."
Relacija R(P) bi bila prikazana ovako:
Code:

P2 = "Na olimpijadi u Moskvi, ucenik [Ime], koji je iz skole [Skola], rangiran je kao [Razred] u svojoj kategoriji."
R2(P2) :
[Ime]            [Skola]                [Razred]    
------------------------------------------------
'Marko',    'Sveti Sava',            'treci',    
'Zoran',    'Centar',                'prvi',


Tabelarni deo je manje vise svuda isti, zaglavlje tabelarnog dela je isto, ali relacije nisu iste niti predstavljau isti predikat. Nazalost, ni jedan od popularnih "SQL" baza ne trazi da se definise predikat, pa ljudi previdjaju vazan deo price. Uocite takodje 4 reda koji cine definiciju, tabelarni deo je samo jedan od njih.

Da li je neophodno da se relacije prikazuju tabelarno? Absolutno nije. Poslednja relacija se moze prikazati i ovako :

Relacija R2A:
P2 = "Na olimpijadi u Moskvi, ucenik [Ime], koji je iz skole [Skola], rangiran je kao [Razred] u svojoj kategoriji."
R2(P2) :
R2.Heading = { [Ime] , [Skola], [Razred] }
R2.Body = { {'Marko', 'Sveti Sava', 'treci'}, {'Zoran', 'Centar','prvi'} }

Posto su u pitanju skupovi, redosled elemenata u heading i Body nije bitan, tako da se ista relacija moze predstaviti kao:

Relacija R2B:
P2 = "Na olimpijadi u Moskvi, ucenik [Ime], koji je iz skole [Skola], rangiran je kao [Razred] u svojoj kategoriji."
R2(P2) :
R2.Heading = { [Razred], [Ime] , [Skola] }
R2.Body = { { 'treci', 'Marko', 'Sveti Sava'}, {'prvi', 'Zoran', 'Centar'} }

Relacije R2A i R2B su identicne, iste jednake, i ni jedna nije prikazana tabelarno. Amogle su biti prikazane tabelarno:
Code:

P2 = "Na olimpijadi u Moskvi, ucenik [Ime], koji je iz skole [Skola], rangiran je kao [Razred] u svojoj kategoriji."
R2(P2) :
[Ime]     [Razred]            [Skola]                
-----------------------------------------------
'Zoran',    'prvi',        'Centar'    
'Marko',    'treci',    'Sveti Sava'                        
(Redosled atributa niti n-torki, razlicit je od bilo kog prikaza iste relacije u ranijem tekstu(

Jos dve napomene:
1. posto su i zaglavlje i telo skupovi, oni su jedinstveni. ne mogu biti dva ista atributa u zaglavlju relacije, niti mogu biti dva ista tuple-a. Iz ovoga je zvedena ideja jedinstvenog kljuca, kojih moze biti vise. Ako ima vise kljuceva, moze se za jedan od njih kazati da je Primarni. Osim po imenu, PK se ni u cemu ne razlikuje od ostalih jedinstvenih kljuceva.

2. Ne dozvoljava se da vrednost u nekoj n-torci za neki atribut nedostaje. Zasto? Zato sto onda izvedeni iskaz neme smisla. Zamislite ovu situaciju:
Code:

P2 = "Na olimpijadi u Moskvi, ucenik [Ime], koji je iz skole [Skola], rangiran je kao [Razred] u svojoj kategoriji."
R2(P2) :
[Ime]     [Razred]            [Skola]                
-----------------------------------------------
'Zoran',    'prvi',        'Centar'    
'Marko',    'treci',                            


Pokazana "relacija" cuva dva iskaza:

"Na olimpijadi u Moskvi, ucenik [Zoran], koji je iz skole [Centar], rangiran je kao [prvi] u svojoj kategoriji."
"Na olimpijadi u Moskvi, ucenik [Marko], koji je iz skole [ ], rangiran je kao [treci] u svojoj kategoriji."

Izgovorite poslednju recenicu i recite ima li smisla? Mozda i ima, ako kazemo:

"Na olimpijadi u Moskvi, ucenik [Marko], koji je iz skole [NULL], rangiran je kao [treci] u svojoj kategoriji." ili
"Na olimpijadi u Moskvi, ucenik [Marko], koji je iz skole [nepoznato], rangiran je kao [treci] u svojoj kategoriji."

Sve i da zvuci razumno, ne mozemo utvrditi da li je iskaz tacan, jer je jedan od parametara nepoznt, nedostaje. Posto relacija podrazumeva samo tacne iskaze, ne moze se prihvatiti iskaz koji ima vrednost 'Nepoznato','Null','Prazno' i slicno. To sto danasnji sistemi dozvoljavaju NULL vrednosti samo znaci da nisu relacioni - ne postuje se relaciona teorija. Ako se ne postuje matematicka teorija u programiranju, moze doci do absurdnih rezultata, sto se u praksi cesto desava. Pogledajmo primer iz algebre:

Ocigledno vazi za svako X:
X2-X2 = X2-X2
primenimo pravila za faktorizaciju razlike kvadrata i mozemo pisati ovako, absolutno tacno:
X(X-X) = (X+X)(X-X)
Sad rdukujemo obe strane (skratimo) za zajednicki faktor i dobijemo:
X = 2X odakle sledi da je 1=2
Zamislite da su kalkulatori i kompjuteri napravljeni tako da dozvoljavaju deljenje sa nulom (prekrseno pravilo algebre). Mogli bismo da krenemo od 1=2 i odatle dokazemo da je X=Y za bilo koje vrednosti X i Y, na primer 17 = 256.
Isto vam je sa nepostovanjem pravila relacione algebre, samo se ne vidi odmah i direktno. Medjutim, kveriji pocinju da vracaju 0 redova, a znamo da zasigurno "rekrdi" postoje, ili se zbirovi ne slazu iako su kveriji ekvivalentni, i slicno.

Na kraju, kao i u geometriji, ne mozemo nacrtati tacku niti liniju, ali mozemo uz pomoc slika rezonovati geomatrijski, tako i sa relacijama. Sama tabela predstavlja relaciju ako i samo ako: znate predikat koji tabela-relacija predstavlja, svi su redovi razliciti medjusobno, nema dupliranih atributa u zaglavlju, redosled nije bitan i vrednosti u n-torkama odgovaraju logicki atributima. I sve n-torke predstvljau tacne iskaze. Ovo je nemoguce postici tehnicki, ali mozemo prici dovoljno blizu, toliko blizu da je nasa baza podataka (skup relacija) dovoljno bliska stvarnosti da moze da podrzi datu situaciju u realnom zivotu. To postizemo tako sto paljivo izbegavamo zamke koje nam SQL sistemi postavljaju, i dodajem ogranicenja (CONSTRAINTS), sto vise to bolje.

Crtanje E-R dijagrama, 1:vise, vise:vise, to je samo jedan nacin da se obezbeda ogranicenja tipa "vrednost atributa X ne moze protijati u relaciji R1 ako vec ne postoji u relaciji R2" To vam je kao crtanje paralelnih lpravih linija klizanjem trouglova. Geometrija poznaje samo komad konopca (kad se zategne predstavlja pravu liniju) i sestar. Po geometriji se paralelna linija kroz datu tacku povlaci tako sto se pomocu sestara crtaju pravi ugloviu stvari. Ipak, svi koristimo (koristili smo, danas su to ACAD komande) klizanje trouglova da crtamo paralelne linije. kad sam ja ucio Auto CAD davne 1990 godine, ucitelj nas je ubedjivao, i bio je u pravu, da za crtanje u ACAD nije potreban monitor uopste, ceo crtez mozete napraviti iz komandne linije.....





 
Odgovor na temu

itf
Zagreb

Član broj: 59794
Poruke: 993
*.adsl.net.t-com.hr.



+9 Profil

icon Re: Što je relacija?08.05.2017. u 20:34 - pre 23 meseci
Ako je relacija tablica da li je onda relacijski model baze podataka isto što i fizički podatkovni model ili je relacijski model tek jedna vrsta implementacije fizičkog podatkovnog modela?
 
Odgovor na temu

djoka_l
Beograd

Član broj: 56075
Poruke: 2560



+1060 Profil

icon Re: Što je relacija?09.05.2017. u 08:49 - pre 23 meseci
Relacioni model je apstraktna struktura, praktično to je nekakvo "proširenje" teorije skupova.

Relaciona baza podataka je implementacija relacionog modela. Za razliku od mrežnog i hijerarhijskog modela (a takve baze su zaista postojale) u relacionoj bazi torke ili tuples relacionog modela su na neki način zapisane (kao tabele). Dakle relaciona baza podataka je "fizički" zapis relacionog modela. S tim da relaciona baza podataka dozvoljava neke stvari koje relacioni model ne dozvoljava (u relacionoj bazi podataka dozvoljeno je da postoje duplikati torki, a relacioni model to ne dozvoljava, a postoji i dosta drugih razlika, link dole).

https://en.wikipedia.org/wiki/Relational_model

Da budem jasniji:
Citat:
elacijski model tek jedna vrsta implementacije fizičkog podatkovnog modela

upravo obrnuto "model" je stariji, fizički zapis je implementacija modela. Isto kao što je pojam racionalnog broja stariji od float tipa podatka koji je fizička interpretacija racionalnog broja.
 
Odgovor na temu

djoka_l
Beograd

Član broj: 56075
Poruke: 2560



+1060 Profil

icon Re: Što je relacija?09.05.2017. u 10:05 - pre 23 meseci
Moram malo da se i ja umešam, mada je Zidar dosta stvari objasnio.

Relacija je preslikavanje jednog skupa u drugi skup. Recimo, skup A je {1, 2}, a skup B je isto {1, 2} neka je f relacija takva da je f(a)=b => a<b. f je u ovom slučaju poznata matematička relacija "manje od". Ovo preslikavanje (relaciju) možemo da prikažemo kao skup . Alternativno, relaciju "f" možemo da zapišemo kao F={ (1,2) }. U prvom slučaju, relaciju smo zapisali predikatom, a u drugom slučaju kao skup uređenih parova koji su u relaciji "f".

Znači, F je skup uređenih dvojki u kojem je prvi elemet iz DOMENA A, a drugi element iz DOMENA B i te dvojke zadovoljavaju neki uslov. Uopšteno, relacija je skup torki koji predstavlja podskup Dekartovog proizvoda skupova koji su domeni za svaki od članova torke. Dekartov proizvod skupova A i B je A x B = { (1,1), (1,2), (2,1), (2,2) } dok je skup F koji zadovoljava relaciju f podskup od A x B i on je F={ (1,2) }.
 
Odgovor na temu

itf
Zagreb

Član broj: 59794
Poruke: 993
178.17.127.*



+9 Profil

icon Re: Što je relacija?09.05.2017. u 12:21 - pre 23 meseci
Ako sam dobro shvatio, fizički podatkovni model je primjerice ovo:

 
Odgovor na temu

djoka_l
Beograd

Član broj: 56075
Poruke: 2560



+1060 Profil

icon Re: Što je relacija?09.05.2017. u 12:37 - pre 23 meseci
Tebi predstavlja problem to što se pojam "relacija" u kontekstu baza podataka koristi u dva značenja:

1. Relacija je podskup Dekartovog proizvoda skupova domena. Zapis jedne relacije predstavljaju svi redovi neke tabele.
2. U E-R modelu (entity-relationship, ili E-V entiteti-veze) relacija je veza između dva entiteta (gde su entiteti, u stvari, tabele).

Ti si na slici predstavio E-R model nekog problema. Ovde su entiteti tabele, a veze (relations) su linije koje povezuju tabele. Nema nigde ni naznake o tome kakav je fizički model podataka. Recimo, neke relacione baze podataka smeštaju tabele u fajlove sa fiksnom dužinom sloga i opisom sloga na početku fajla. Druge smeštaju u blokove organizovane u redove sa varijabilnom dužinom, a opis tabele se nalazi u nekom sistemskom repozitorijumu. Neke baze organizuju in-memory zapis tabela gde su podaci organizovani po kolonama. Dakle, ako ja dobro razumem tvoje pitanje, ono što ti podrazumevaš "fizički" nije ni na koji način implicirano slikom. Konceptualno, možeš da zamisliš da je jedna tabela jedan list u excelu gde su podaci organizovani po kolonama i redovima, ali to ne mora da bude i način na koji su podaci fizički smešteni u memoriji ili na disku.
 
Odgovor na temu

itf
Zagreb

Član broj: 59794
Poruke: 993
178.17.127.*



+9 Profil

icon Re: Što je relacija?09.05.2017. u 13:48 - pre 23 meseci
Ja govorim o fizičkom podatkovnom ERD modelu, a ne o fizičkoj organizaciji podataka na disku ili u memoriji.

Je li može itko dati konkretan (grafički) primjer u kojemu se vidi razlika između fizičkog podatkovnog (ERD) modela i relacijskog modela baze podataka.

[Ovu poruku je menjao itf dana 09.05.2017. u 15:09 GMT+1]
 
Odgovor na temu

jablan

Član broj: 8286
Poruke: 4530



+705 Profil

icon Re: Što je relacija?09.05.2017. u 14:35 - pre 23 meseci
Te dve stvari su ortogonalne, ne postoji podela modela na jedne i druge.
 
Odgovor na temu

djoka_l
Beograd

Član broj: 56075
Poruke: 2560



+1060 Profil

icon Re: Što je relacija?09.05.2017. u 17:20 - pre 23 meseci
Kao što je jablan napisao, to su dve različite stvari.

Ti sve vreme govoriš o E-R modelu, a bez potrebe ubacuješ u priču relacionu bazu podataka.
Kod E-R modela postoje tri modela: konceptualni, logički i fizički model. Razlika među ovim E-R modelima je u tome što se na konceptualnom nivou baviš samo globalnom slikom entiteta i vezama među njima, na logičkom modelu dodaješ atribute entitetima, a na fizičkom modelu do detalja razrađuješ atribute kako bi mogli da se generišu skriptovi za kreiranje objekata u bazi podataka (a to može, a ne mora da bude relaciona baza podataka) kao i za generisanje aplikacija koje rade nad tim modelom.

Primer: imaš entitet osoba i prikazuješ ga kao kvadratić u ER konceptualnom modelu. U ER logičkom modelu kažeš da entitet osoba ima atribut IME (crtaš kao neku elipsu uz entitet osoba). Na kraju, na fizičkom nivou kažeš da entitet osoba ima ID koji je tipa NUMBER i IME koji je tipa VARCHAR(50). Ovaj model se zove fizički jer zavisi od toga nad kojom bazom će biti primenjen. U nekoj bazi tip podatka IME je Text, u drugoj String, u trećoj VARCHAR, u četvrtoj NVARCHAR itd. On je fizički u tom smislu da je njegova interpretacija zavisna od konkretne baze u kojem će biti modelovan. A ne mora da bude relaciona baza podataka, može da bude i neka NoSQL (mongo).

Inače, cela rasprava oko E-R modela je bespredmetna, ukoliko ne spremaš ispit na fakultetu. E-R modelovanje niko normalan ne koristi za projekte.
 
Odgovor na temu

itf
Zagreb

Član broj: 59794
Poruke: 993
*.adsl.net.t-com.hr.



+9 Profil

icon Re: Što je relacija?09.05.2017. u 17:54 - pre 23 meseci
Citat:
djoka_l: Inače, cela rasprava oko E-R modela je bespredmetna, ukoliko ne spremaš ispit na fakultetu. E-R modelovanje niko normalan ne koristi za projekte.

U mojoj okolini je baš suprotno. Poslovni analitičar izrađuje case model a na osnovu njega zajedno s naručiteljem se izrađuje konceptualni podatkovni model kako bi utvrdili svi potrebni entiteti u tom poslovnom procesu. Nakon toga se logičkim podatkovnim modelom opisuju opće potrebe i ograničenja u radu s podacima (atributima) te sve to onda postaje dijelom specifikacije zahtjeva. Tek tada, na osnovu potreba, želja i mogućnosti naručitelja se vrši odabir RDBMS-a i kreće se u konkretnu izradu baze podataka te klijent aplikacija. Štoviše, bez odgovarajuće tehničke i korisničke dokumentacije koja nije napravljena u skladu sa specifikacijom zahtjeva (a ER modeli su dio specifikacije jer su rađeni zajedno s naručiteljem) on čak ima pravo tužiti na sudu i tražiti odštetu.

[Ovu poruku je menjao itf dana 09.05.2017. u 21:26 GMT+1]
 
Odgovor na temu

[es] :: Baze podataka :: Što je relacija?

[ Pregleda: 2181 | Odgovora: 15 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.