abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
    dnes 12:55 | Nová verze

    Byla vydána verze R14.1.2 desktopového prostředí Trinity Desktop Environment (TDE, fork KDE 3.5). Přehled novinek v poznámkách k vydání, podrobnosti v seznamu změn.

    JZD | Komentářů: 0
    včera 18:55 | IT novinky

    Dnešním dnem lze již také v Česku nakupovat na Google Store (telefony a sluchátka Google Pixel).

    Ladislav Hagara | Komentářů: 9
    včera 18:33 | IT novinky

    Apple představil (keynote) iPad Pro s čipem Apple M4, předělaný iPad Air ve dvou velikostech a nový Apple Pencil Pro.

    Ladislav Hagara | Komentářů: 1
    včera 17:11 | Nová verze

    Richard Biener oznámil vydání verze 14.1 (14.1.0) kolekce kompilátorů pro různé programovací jazyky GCC (GNU Compiler Collection). Jedná se o první stabilní verzi řady 14. Přehled změn, nových vlastností a oprav a aktualizovaná dokumentace na stránkách projektu. Některé zdrojové kódy, které bylo možné přeložit s předchozími verzemi GCC, bude nutné upravit.

    Ladislav Hagara | Komentářů: 0
    včera 13:44 | Komunita

    Free Software Foundation zveřejnila ocenění Free Software Awards za rok 2023. Vybráni byli Bruno Haible za dlouhodobé příspěvky a správu knihovny Gnulib, nováček Nick Logozzo za front-end Parabolic pro yt-dlp a tým Mission logiciels libres francouzského státu za nasazování svobodného softwaru do praxe.

    Fluttershy, yay! | Komentářů: 0
    včera 13:11 | IT novinky

    Před 10 lety Microsoft dokončil akvizici divize mobilních telefonů společnosti Nokia a pod značkou Microsoft Mobile ji zanedlouho pohřbil.

    Ladislav Hagara | Komentářů: 2
    6.5. 21:33 | Komunita

    Fedora 40 release party v Praze proběhne v pátek 17. května od 18:30 v prostorách společnosti Etnetera Core na adrese Jankovcova 1037/49, Praha 7. Součástí bude program kratších přednášek o novinkách ve Fedoře.

    Ladislav Hagara | Komentářů: 5
    6.5. 21:11 | IT novinky

    Stack Overflow se dohodl s OpenAI o zpřístupnění obsahu Stack Overflow pro vylepšení OpenAI AI modelů.

    Ladislav Hagara | Komentářů: 1
    6.5. 17:55 | Nová verze

    AlmaLinux byl vydán v nové stabilní verzi 9.4 (Mastodon, 𝕏). S kódovým názvem Seafoam Ocelot. Přehled novinek v příspěvku na blogu a v poznámkách k vydání.

    Ladislav Hagara | Komentářů: 0
    6.5. 17:11 | IT novinky

    Před 50 lety, 5. května 1974 v žurnálu IEEE Transactions on Communications, Vint Cerf a Bob Kahn popsali protokol TCP (pdf).

    Ladislav Hagara | Komentářů: 0
    Podle hypotézy Mrtvý Internet mj. tvoří většinu online interakcí boti.
     (63%)
     (7%)
     (14%)
     (16%)
    Celkem 139 hlasů
     Komentářů: 9, poslední včera 22:07
    Rozcestník

    Dotaz: Návrh databáze

    29.4.2021 17:28 jsk | skóre: 10
    Návrh databáze
    Přečteno: 1933×
    Zdravím,

    potřebuji poradit s návrhem db. Zdrojová data jsou v tabulce o 15 sloupcích. Tři z nich se vztahují k účastníkům JMÉNO, POHLAVÍ, ČINNOST. Počet je obvykle 1–3 osoby, ale někdy i osm. Tj. pro 5 osob je 5 jmen např.:

    1: Jan Novák; 2: Pavel Nový, bratr; 3: Jana Stará; 4: Jan Pil; 5: Lada Malá, sestra | 1: muž; 2: muž; 3: žena; 4: muž; 5: žena | 1: nosič; 2: tavič; 3: prodavačka; 4: vodák; 5: kuchařka

    Tabulka neobsahuje primární klíč, ten bych asi generoval. Počet řádků by měl být do 100.000, sběr dat ještě probíhá.

    Sloupce obvykle obsahují text poznámek, jednou příjmení, jedenkrát datum, to také ve formátu dne v týdnu (pondělí – neděle), jednou název obce.

    Nemám s návrhem db zkušenosti, budu tedy moc rád pokud mne navedete rozumným směrem, děkuji předem všem.

    Pepa

    PS: není to žádný školní úkol, chci jen pomoci synovi zpracovat data resp. z nich něco vytáhnout, jde o jeho zájem nikoliv o školní zadání.

    Odpovědi

    29.4.2021 19:59 jiwopene | skóre: 31 | blog: Od každého trochu…
    Rozbalit Rozbalit vše Re: Návrh databáze
    Předpokládám, že jde třeba o záznamy účastníků na schůzi (to chápu z toho „Počet je obvykle 1–3 osoby“). Nejspíše není, takže si tabulky a sloupce dle účelu popřejmenovávejte.

    Asi takto:
    CREATE TABLE schuze (
      schuze_id SERIAL PRIMARY KEY,
      datum TIMESTAMP WITH TIME ZONE NOT NULL
    );
    
    CREATE TABLE osoba (
      osoba_id SERIAL PRIMARY KEY,
      jmeno TEXT NOT NULL,
      prijmeni TEXT NOT NULL,
      zena BOOLEAN NOT NULL,
      cinnost_id INTEGER REFERENCES cinnost (cinnost_id) NOT NULL,
      poznamka TEXT
    );
    
    CREATE TABLE osoba_na_schuzi (
      osoba_id INTEGER REFERENCES osoba (osoba_id) NOT NULL,
      schuze_id INTEGER REFERENCES schuze (schuze_id) NOT NULL,
      PRIMARY KEY (osoba_id, schuze_id)
    );
    
    CREATE TABLE cinnost (
      cinnost_id SERIAL PRIMARY KEY,
      nazev_cinnosti TEXT NOT NULL UNIQUE
    );
    Přečtěte si Database normalization na anglicé Wikipedii (popř. české, tam je také pěkný článek). V relační databázi je snaha oddělit data od prezentace, takže například Vaše „jedenkrát datum, to také ve formátu dne v týdnu“ je nerozumné. Když dáte do databáze datum (s pomoci typu TIMESTAMP WITH TIME ZONE), je netřeba určovat den v týdnu. Databáze s tím snáz pracuje a až v SELECTu nebo v aplikaci si z toho uděláte textové datum. (PostgreSQL to dělá i implicitně.)

    Totéž platí pro činnosti – vyndáme je do samostatné tabulky a můžeme si tak činnost representovat číslem (tím usnadníme práci počítači) a můžeme přidávat informace k činnostem.

    Osoby stejně tak máme zvlášť – pak můžeme zapsat to, že na jedné schůzce byla jedna a tatáž osoba. (Pokud to nevíte, tak použijte vazbu 1 (schůzka) : N (osob), tedy to, že se zbavíme osoba_na_schuzce a schůzku referencujeme z osoby jako činnost.)

    Kód jsem netestoval, je napsaný pro PostgreSQL.

    Pokud uvedete bližší podrobnosti o datech a účelu, mohu poradit dále.
    .sig virus 3.2_cz: Prosím, okopírujte tento text do vaší patičky.
    1.5.2021 14:03 _
    Rozbalit Rozbalit vše Re: Návrh databáze
    zena BOOLEAN NOT NULL
    Děláš si srandu? A pojmenovávat věci česky je znak amatérismu.
    1.5.2021 16:55 jiwopene | skóre: 31 | blog: Od každého trochu…
    Rozbalit Rozbalit vše Re: Návrh databáze
    Čeština mi v tomto případě připadá vhodnější – tazatel potom nemusí umět cizí jazyk. Pokud by šlo o kód, o kterém předpokládám, že bude někde použit tak, jak je, budu používat anglická pojmenování.

    K tomu značení pohlaví: Tazatel měl v ukázce dat v jeho příspěvku pouze hodnoty „muž“ a „žena“, takže jsem navrhnul strukturu, do které je možné uložit tato data, aniž bych po něm chtěl naučit se hned ze začátku používat výčtové typy v databázi (tvrdí, že s návrhem DB nemá zkušenosti). Pokud by se tazatel zmínil i o jiných hodnotách, samozřejmě bych použil odpovídající řešení (u předem známého počtu hodnot výčtový typ, jinak další tabulku).
    .sig virus 3.2_cz: Prosím, okopírujte tento text do vaší patičky.
    1.5.2021 21:38 Kit | skóre: 45 | Brno
    Rozbalit Rozbalit vše Re: Návrh databáze
    Spíš bych měl výhrady k tomu typu boolean. Má ji/nemá ji?
    Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
    2.5.2021 13:07 jiwopene | skóre: 31 | blog: Od každého trochu…
    Rozbalit Rozbalit vše Re: Návrh databáze
    Také s tím mám trochu problém (a běžně v databázi používám pro tento údaj výčtový typ, popř. (v SQLite) integer), ale předpokládám, že tazatel s databázemi moc ještě neumí a tak ho nechci zatěžovat výčtovým typem (a při použití integeru si v tom člověk snadno udělá bordel, nepoznamená-li si hodnoty).

    Neříkám, že se ten sloupec musí jmenovat zena. Může to být i muz, nebo cokoliv (tedy např. i Vámi zmiňované „má ho“/„má ji“), co tazateli bude vyhovovat.
    .sig virus 3.2_cz: Prosím, okopírujte tento text do vaší patičky.
    AraxoN avatar 3.5.2021 14:10 AraxoN | skóre: 47 | blog: slon_v_porcelane | Košice
    Rozbalit Rozbalit vše Re: Návrh databáze
    V roku 2021 a len dve pohlavia? Fujky, akí spiatočníci! Na pohlavie už len varchar!
    3.5.2021 20:49 Kit | skóre: 45 | Brno
    Rozbalit Rozbalit vše Re: Návrh databáze
    Na pohlaví jen JPEG.
    Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
    AraxoN avatar 5.5.2021 07:48 AraxoN | skóre: 47 | blog: slon_v_porcelane | Košice
    Rozbalit Rozbalit vše Re: Návrh databáze
    Nad tým sa ťažko píše SQL príkaz... ako urobíš SELECT DISTINCT z jpegu?
    Josef Kufner avatar 15.5.2021 11:24 Josef Kufner | skóre: 70
    Rozbalit Rozbalit vše Re: Návrh databáze
    V tomto případě je DISTINCT zbytečný.
    Hello world ! Segmentation fault (core dumped)
    2.5.2021 03:27 jsk | skóre: 10
    Rozbalit Rozbalit vše Re: Návrh databáze
    Příloha:
    Dobrý den,

    moc děkuji za pomoc, napsal bych hned, ale zdržel jsem se pár dní ve špitále :-(.

    Někdy cca před 25 lety jsem sesmolil aplikaci v Accessu a před pár roky jsem z Google kalendáře pomocí SQLite3 a hromadné korespondence v Inkscape vyráběl pro kamaráda faktury pro lektory, takže zkušenosti vlastně nulové. Data se týkají rozhodnutí pražského apelačního soudu z období raného novověku. Zvažoval jsem použít DB Maria, na PostgreSQL jsem si netroufal. Data jsou pořizována prostřednictvím MS Excel, já však uvažuji o řešení v Ubuntu. Normalizaci si musím nastudovat, už si z toho nic praktického nepamatuji :-(.

    Pepa

    Autorská legenda k příloze:
    • Kniha jedná o inventární číslo, pod kterým je kniha evidována ve fondu Apelační soud, Praha, který je deponovaný v Národním archivu v Praze
    • Fol zkratka slova folium, jinými slovy list knihy
    • Čin určení kategorie trestného činu
    • Datum den vydání soudního rozhodnutí v dané věci
    • Den den v týdnu, který bylo vydáno soudní rozhodnutí
    • Soudce jméno soudce, který danou věc zpracovával a připravoval rozhodnutí
    • Místo obec či osoba, které je rozhodnutí adresováno
    • Pachatel osoba souzená pro trestný čin (může být zavádějící v případech, kdy je dotyčný osvobozen)
    • Pohlaví určení pohlaví pachatele
    • Předmět bližší popis trestné činu, jeho speficikace (místy velice variabilní, místy naopak bez dalšího rozlišení)
    • Trest určení trestu pro pachatele trestného činu (případně osvobození)
    • Missiva určení, zda k rozhodnutí soudu byla připojena missiva, či nikoli; missiva je přípis, který konkretizoval výkon trestu či stanovoval další postup ve vyšetřování
    • Poznámka poznamenání dalších relevantních skutečností, které jsou méně frekventované
    • Oběť jméno či jiné určení osoby, která byla obětí spáchání trestného činu
    • Další zdroje a Další zdroje II prostor pro doplnění odkazu na další archivní materiály, které by se vztahovaly k danému případu (trestní spis, matriční záznamy…)
    2.5.2021 11:26 zdenek2008 | skóre: 26
    Rozbalit Rozbalit vše Re: Návrh databáze
    Na analyzu pravnich dat existuje rada nastroju, ty zaznamy by se daly do nektereho importovat. Nejlepe asi hledat neco ve stylu 'free legal case management package'. Dale existoval projekt Debian-Lex (snad neco z toho prezilo dodnes) a v Kali Linuxu je sikovna aplikace CaseFile.

    Namatkou:

    https://tadesite.com/legal-case-management-software/

    https://www.goodfirms.co/blog/best-free-open-source-legal-case-management-software-solutions

    Drzim palce.
    2.5.2021 13:44 zdenek2008 | skóre: 26
    Rozbalit Rozbalit vše Re: Návrh databáze
    a pak ses probudil s rukou v nocniku.
    5.5.2021 16:19 OldFrog {Ondra Nemecek} | skóre: 36 | blog: Žabákův notes | Praha
    Rozbalit Rozbalit vše Re: Návrh databáze
    Nejnázorněji je struktura databáze vidět na ER diagramu. Hned vidíte, jak jsou data uložena. V příloze posílám screenshot z DBeaver, je zdarma, funguje s většinou existujících databází a zobrazení diagramů má integrované.
    -- OldFrog
    5.5.2021 22:15 jsk | skóre: 10
    Rozbalit Rozbalit vše Re: Návrh databáze
    Děkuji Vám za tip podívám se na to.

    Založit nové vláknoNahoru

    Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

    ISSN 1214-1267   www.czech-server.cz
    © 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.