abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
AbcLinuxu hledá autory!
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
včera 23:33 | IT novinky

Na Startovači běží kampaň Bulánci se vrací aneb kampaň na podporu vývoje nové verze 2.0 dnes již dvacetileté počítačové hry Bulánci (Wikipedie, YouTube). Požadováno je 500 000 Kč. Aktuálně je vybráno 1 205 835 Kč.

Ladislav Hagara | Komentářů: 1
včera 22:22 | IT novinky

Humble Bundle nabízí balík knih o programování v Pythonu od vydavatelství No Starch Press v digitální podobě bez DRM, a to za zvýhodněnou cenu aspoň 1-15 eur. Akce Humble Book Bundle: Learn You More Python by No Starch Press trvá do 7. června. Znovu je možné rozdělit cenu mezi vydavatele, provozovatele a charitu dle vlastního výběru poté, co se zvedla vlna nevole, když provozovatel tuto možnost omezil.

… více »
Fluttershy, yay! | Komentářů: 0
včera 16:33 | Nová verze

Byla vydána verze 9.2 open source unixového operačního systému NetBSD (Wikipedie). Přehled novinek v poznámkách k vydání.

Ladislav Hagara | Komentářů: 0
včera 16:11 | Zajímavý článek

V dubnu loňského roku přešla společnost Cloudflare z reCAPTCHA na hCAPTCHA. Dalším krokem by mělo být úplné zrušení CAPTCHA. Dle aktuálního příspěvku Lidstvo promrhá na CAPTCHA zhruba 500 let denně. Je čas toto šílenství ukončit na blogu Cloudflare by řešením mělo být použití kryptografických tokenů (YubiKey) nebo například rozšíření webových prohlížečů Privacy Pass a systému "Cryptographic Attestation of Personhood" vycházejícího z Web Authentication (WebAuthn) Attestation. Vyzkoušet lze na stránce Cloudflare Challenge.

Ladislav Hagara | Komentářů: 14
včera 13:33 | Zajímavý software

Byl představen projekt Lima aneb Linux-on-Mac ("macOS subsystem for Linux", "containerd for Mac"). Cílem projektu je přinést možnosti WSL (Windows Subsystem for Linux) na macOS [Hacker News].

Ladislav Hagara | Komentářů: 10
15.5. 17:44 | Nová verze

Společnost PINE64 stojící za telefonem PinePhone, notebooky Pinebook a Pinebook Pro, IP kamerou PineCube, hodinkami PineTime, páječkou (pájecím perem) Pinecil, zdroji PinePower nebo RISC-V vývojovou deskou PineCone publikovala na svém blogu květnový souhrn novinek (YouTube). Zmínit lze například prototyp klávesnice k PinePhonu, vybraný název PineDio pro PINE64 LoRA ekosystém nebo Fedora Linux na Pinebooku Pro.

Ladislav Hagara | Komentářů: 18
15.5. 16:33 | Zajímavý software

V prosinci loňského roku byl představen Rizin, fork frameworku pro reverzní inženýrství a analýzu binárních souborů radare2 (r2). Vývojáři Rizinu si vzali s sebou Cutter, do té doby grafickou nadstavbu nad radare2 (r2). Vývojáři radare2 (r2) tedy přejmenovali svou nadstavbu na r2cutter. Dnes je to už ale iaito. Vývojáři se vrátili ke jménu projektu (iaito), ze kterého vznikl Cutter.

Ladislav Hagara | Komentářů: 0
15.5. 09:00 | Nová verze

Byla vydána nová verze 12.0.0 open source webového aplikačního frameworku Angular (Wikipedie). Přehled novinek v příspěvku na blogu.

Ladislav Hagara | Komentářů: 8
14.5. 14:00 | Nová verze

Po osmi letech vývoje byla vydána verze 3 programovacího jazyka Scala (Wikipedie). Přehled novinek v aktualizované dokumentaci.

Ladislav Hagara | Komentářů: 0
14.5. 11:00 | Komunita

O víkendu 15. a 16. května probíhá AlpineConf 2021, tj. online konference vývojářů a uživatelů Alpine Linuxu.

Ladislav Hagara | Komentářů: 0
Transakční aktualizace
 (19%)
 (4%)
 (5%)
 (4%)
 (9%)
 (59%)
Celkem 187 hlasů
 Komentářů: 0
Rozcestník

Dotaz: Návrh databáze

29.4. 17:28 jsk | skóre: 10
Návrh databáze
Přečteno: 707×
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. 19:59 jiwopene | skóre: 28 | 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. 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. 16:55 jiwopene | skóre: 28 | 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. 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. 13:07 jiwopene | skóre: 28 | 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. 14:10 AraxoN | skóre: 45 | 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. 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. 07:48 AraxoN | skóre: 45 | 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. 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. 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. 11:26 zdenek2008 | skóre: 25
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. 13:44 zdenek2008 | skóre: 25
Rozbalit Rozbalit vše Re: Návrh databáze
a pak ses probudil s rukou v nocniku.
5.5. 16:19 OldFrog {Ondra Nemecek} | skóre: 35 | 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. 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.