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

Teorija: pocetnik projektuje malu bazu

[es] :: Baze podataka :: Teorija: pocetnik projektuje malu bazu

[ Pregleda: 2380 | Odgovora: 3 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

solarko

Član broj: 111607
Poruke: 145
80.93.240.*

Jabber: strahinja@es.org


Profil

icon Teorija: pocetnik projektuje malu bazu06.02.2007. u 12:14 - pre 209 meseci
Poz!

Pravim Nem-Srp-Nemacki recnik.

Ovo mi je prvo projektovanje baze, a hocu da sve bude "po knjizi".

Razmisljao sam nesto ovako.

TerminiGer(#id, rec) // sa terminom npr. 321231 market
TerminiSer(#id, rec) // sa terminom npr. 132425 prodavnica
TranslateGerSer(#id, id1, id2) // povezuje 321231 132425
TranslateSerGer(#id, id1, id2) // isto samo srpsku rec sa nemackim prevodima 132425 321231

Da li je ovo ok? Normalizovano, i po svim ostalim zahtevima?

Znaci preko ove dve poslednje tabele bi omogucio da rec ima vise prevoda.
 
Odgovor na temu

Zidar
Canada

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



+79 Profil

icon Re: Teorija: pocetnik projektuje malu bazu07.02.2007. u 13:42 - pre 209 meseci
Nije OK i nije normalizovano.

Prvo, imas polja koja nista ne znace - ID. Pretrazivanje tvoje baze bice po terminima i prevodima, pa ce ti po tim poljima trebati indexi. Posto se ocekuje da termin u recniku bude jedinstven, imamo da po toj koloni trebati unique index. Ako je vec unique index, zasto ne bi bio i Primary Key?

Drugo, umesto ovoga:
TerminiGer(#id, rec) // sa terminom npr. 321231 market
TerminiSer(#id, rec) // sa terminom npr. 132425 prodavnica
TranslateGerSer(#id, id1, id2) // povezuje 321231 132425
TranslateSerGer(#id, id1, id2) // isto samo srpsku rec sa nemackim prevodima 132425 321231

sve sto ti treba je ovo:
TerminGer(NemackaRec) PK = NemackaRec
TerminSer (SrpskaRec) PK = SrpskaRec
Translate(NemackaRec, SrpskaRec) PK = NemackaRec, SrpskaRec

Za izabranu nemacku rec, prikazi sve odgovarajuce reci:
SELECT NemackaRec,SrpskaRec FROM Translate
WHERE NemackaRec = .....

a moze i ovo:
SELECT SrpskaRec, NemackaRec FROM Translate
WHERE SrpskaRec= .....

Ako u ovom koraku tvog ucenja steknes pogresnu naviku da trpas ID (Identity :-) svuda, i gde treba, i gde ne treba, ostace ti to do kraja zivota i nikada neces razumeti gde gresis. Pokusaj da napises dva prilozana SELECT iskaza koristeci tvoj originalni dizajn, pa uporedi sa datim iskazima i prosudi koji su komplikovaniji. I kakav je dobitak od uvedenih ID? Manja tabela? Brze pretrazivanje? Nikad neces pretrazivati po Id, uvek ces pretrazivati po recima direktno.

:-)


 
Odgovor na temu

solarko

Član broj: 111607
Poruke: 145
80.93.240.*

Jabber: strahinja@es.org


Profil

icon Re: Teorija: pocetnik projektuje malu bazu07.02.2007. u 16:27 - pre 209 meseci
Hvala ti!
Mislio sam da ce brze da radi sa brojevima, nego sa recima.

A sa izbacivanjem ID atributa, dobio sam tabelu u 3NF, zar ne?


[Ovu poruku je menjao solarko dana 07.02.2007. u 20:20 GMT+1]
 
Odgovor na temu

momsab
Momčilo
Beograd, R.Srbija

Član broj: 2804
Poruke: 3041
*.dynamic.sbb.co.yu.

Jabber: pitati@PP
Sajt: www.momsab.com


+1 Profil

icon Re: Teorija: pocetnik projektuje malu bazu09.02.2007. u 00:18 - pre 209 meseci
ako dobor vidim, dve tabele imaju samo jedan atribut a treca je spoj te dve (da se tako izrazim) i nema svoje atribute
prve dve su ti u svim mogucim NF
takodje i treca

sada je potrebno da im odredis kardinalnost ;)

savetujem ti da malo bolje proucis teoriju
Žena u krevetu i vino na stolu nikako ne smeju da čekaju. Jer, vino se greje a žena hladi.

-vinolog
 
Odgovor na temu

[es] :: Baze podataka :: Teorija: pocetnik projektuje malu bazu

[ Pregleda: 2380 | Odgovora: 3 ] > FB > Twit

Postavi temu Odgovori

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