Navrh databazy, databazova aplikace

Základní kurs podávající průřez problematikou. Jsou popsány tři úrovně pohledu na data. Konceptuální modelování je založeno na ER modelu, databázové modelování se zabývá podrobně teorií relačního modelu dat (algebra, kalkul, základy SQL, algoritmy návrhu relační databáze, normální formy) a principy objektově-relačního modelu. Transakční zpracování a paralelní přístup, algoritmy implementace relačních operací.
Hiram

Navrh databazy, databazova aplikace

Příspěvek od Hiram »

nazdar priatelia,
hľadám šikovného databazistu (aj budúceho), ktorý by dokázal urobiť návrh db-tabuliek pre nasledujúcu problematiku:
1.) máme sadu informácií, ktoré majú nasledujúcu štruktúru:
IDentifikator ... nejaký číselný identifikátor (napr.integer, 1 až 1000)
NazovZaznamu ... nejaký textový reťazec (napr.: ABC, do 64 znakov dlhý)
BaseHodnota ... nejaká číselná hodnota (medzi 1 až 12)
Hodnota01 ... nejaký textový reťazec (napr.: a, b, c, d, e, f, g, a2, b4, c3, d2, d3, d3, f5, g4, ..., cca 100 možných hodnôt)
Hodnota02 ... -"-
Hodnota03 ... -"-
Hodnota04 ... -"-
...
Hodnota XY ... -"-
pričom každý takýto záznam môže mať rôzny počet hodnôt (tj. HodnotaXY v jednom zázname môže byť 10, v inom 20, najviac cca 100).
DB-tabuľky (ich štruktúru) je potrebné navrhnúť tak aby bolo možne, čo najefektívnejšie potom vyhľadávať záznamy s podobnými hodnotami v atribútoch HodnotaN, s tým, že sa budú hľadať podobné postupnosti hodnôt, napr.budem mať záznam (v tvare |IDentifikator|NazovZaznamu|BaseHodnota|Hodnota01|Hodnota02|Hodnota03|Hodnota04|Hodnota05|Hodnota06|Hodnota07|):
1|ABC|a|b|e|d|g|a|c|
a potrebujem nájsť také iné záznamy, ktoré obsahujú napr.susednú postupnosť "e-d-g". A mal by som nájsť napr.záznam č.13:
13|RST|f|a|c|g|e|d|g|f|a|g|c|
alebo záznam č.37:
37|AWG|b|c|a|a|f|c|f|e|d|g|a|a|f|a|g|c|
Otázka je ako navrhnúť štruktúru db-tabľky (tabuliek), či tak ako je to popísané vyššie (|IDentifikator|NazovZaznamu|BaseHodnota|Hodnota01|Hodnota02|Hodnota03|Hodnota04|...|Hodnota99|) s tým, že jednotlivé záznamy nebudú mať vyplnené všetky stlpce "HodnotaXY", alebo to navrhnúť "vertikálne", tj.do tabuľky "TAB01" so štruktúrou:
|IDentifikator|NazovZaznamu|BaseHodnota|
a ďalšou tabuľkou "TAB02" so štruktúrou:
|IDentifikator|HodnotaRef|HodnotaHodnota|
a tu bude len toľko záznamov pre danu informáciu, koľko táto má "hodnôt".
Ako ale (v jednom aj v druhom prípade hľadať) podobné susedné hodnoty v týchto záznamoch?

V prípade záujmu (a hlavne znalosti riešenia) sa prosím ozvite na David.Loevy@post.sk
richard1

Re: Navrh databazy, databazova aplikace

Příspěvek od richard1 »

Pokud dotaz do této "databáze" je typu: Najdi záznamy, které mají v sobě posloupnost "e-d-g", pak bych vůbec nic nekomplikoval a všechny hodnoty uložil do jednoho řetězcového záznamu (oddělené něčím, třeba čárkou). Hledá se pak podřetězec, což bude vždycky rychlejší než nějaké komplikované dotazy, joiny, atd. Samozřejmě prostor pro další optimalizaci tu je, nicméně záleží, jak moc výkonné toto řešení má být.
Odpovědět

Zpět na „DBI025 Databázové systémy“