ahoj najmenovat entitního dneska
vám přišel překvapivé povídat po o pod kde su byste asi pochopili zrazu přednášky
já bych začal
dělat chyby
jeden bude překvapivě o mě
takže kdo sem
současné době se že jako priorit programátor
to znamená že pro tu na volné noze pro několik N původně techno výhodně databází
a tak dále
těžký barytonista tak jako že hodně těžký
path patním se probrali do dnešní přednášky
databázi šílenec tak trochu
S Q L jinou S Q L účtem hodně přednášek něho nejrůznějších databázových technologií a
mám rád databáze
jak jsem se já dostat po dresu
začalo to na střední škole
sem asi jeden z mála lidí na světě kteří se k po dresu dostali džínech
k majetku jel
seš považuje za hodně dobrý životní krok
pozdě jsem přešel na hobby projekty postgres u
současné době
správci hodně využívám postgres
a
ten spokojený když to srovnám například klienty u který má majetku já tak tam té
nebe a dudy
jak říkám moje nejoblíbenější S Q uložiště ever asi ani nějaký or a toto nevytrhne
řeč
druhý příběh V prezentace jak vzniká prezentace
tak jako když sem byl zvolen tak sem si řekl jo tedě tam u by
u těma typ a má jak to je prostě
milion typů máme postgres u
všechen to tam bych vyložím do to používá
prostě všichni to používají pozdě de facto podniku a jak je to má schopnosti
no pak jsem si řekl že
vedle běží grudl
máme po obědě
takže to by asi nebyl dobrá cesta nechci vás tady unudit nějakýho blbostma
takže jsem si řekli jako když je vedle kdo to takto uděláme takovou domovinu že
jo zavaleno přednášku prostě
kde budeme tady mít tu pán
ale pak mi jaksi došlo že já sem takový trochu šílenec
přiznejme si to
jako že by tam byl asi hodně patním
jo kren tady tendle skryt vás erikem rovensko mám dlaně vypíše vám kompletní tech neví
do registru
takže by to dospělo k tomu že já bych se bavil bavilo by se mnou
asi tak jedno procento tady osazenstva
takže ne děláme to prostě užitečná přednáška supertypy jak můžete využít postgres kdekoli
a jak se porovnává s ostatními sqldatabase mi
po sobě s
je vymyšlen tak
že po kde soví uživatele mají vždycky něco extra oproti těm ostatním uživatelům esku jo
že některé poučky
neplatí nebo platí jinak než byste čekali
co vás za sami vy
u vanová nenaučí
prosím vás naučí to generické S Q a ale přijdete do kongresu a zjistíte že
ty best praktický sou trochu jiná
platí na pravidla
sou tam jiné typy které se dají používáme efektivní
takže jsem vybral pak problém
jak se řeší v jiných databázi export kde sou
typicky problém do ste byl na karmy na webexpo je k tomu X a měla
vždy by asi o telefonní čísla že jo
typické řešení
samci tabulku
a do ní dám prostě telefonní číslo jedno varchar
více čísel
přidám S
dám varchar opět a prostě tam napálím zase vím že jo zase to tam nějak
vleze tomto nějak přechod royal že
pro pravdova labužnický
dám víc čísel a hodin samice velkou
a to tendle patent se opakuje to hodně uvidíte jako já už jsem viděl takové
věci že se nedivím vůbec ničemu
a teď prostě to extra to co má ten po kde
teda eště předtím si řekneme jak to nemá pod kde
jak to mají ostatní databáze
ostatní tam data bavit prostě přidám tabulku a přes cizí klíče to spadu
postgres
má něco navíc zase nějakou jinou prakticky můžete použít i tabulky ale můžete být ještě
efektivnější
a S pěknější taky vypadat ohně dobře
je číslo
historie datový typ
není s těch základních datových typech kongresu ale můžete si ho ve verzi devět jedna
uši můžete bodovat extenze přímo S Q L dotazem
data kytek ten žel a jméno to rozšíření
takže když dáte k i X ten žen když to R
tak se vám zdroje ten datový typ lejstra může to normálně databázi používat
toto je
dává vám do toho sloupce v tabulce
tím jeli úložiště
čistě na řetězcích to znamená že padejte řetězce
a zavádí vám do té databáze beze všemu takže vy máte nule sqldatabase a všichni
říkají že musíte používat
když máte nějaké různorodé zdroje dat a se na dva do jedné databáze
taky se vám dovolená postgres u
říct že vy máte podobné data které se vyšší jenom nějakých
odlišný ukazatelích
potom vám to předvedu na tabulkách
bity ale příklad
takže
já už sem si tady vytvořil databázi barcamp
ve kterém mám push vytvořenou text a ženatej store
takže vytvořím
tabulku
mám tady
I D to že primární klíč
ne no atributy jedná se o nějaké generické produkty dejme tomu že seš jo a
máte prostě I D produktu
jeho jméno a nějaké atributy toho produktu které se můžou každého to produktu lišit
tak vytvoří se mi tabulka
a teď oni vložím
například knížku
my nese výklad novou
do těch atributů uložím autora stránky a jakou kategorií tech ni
a teďka když se lexém
se lexém se zeptám
chcete tabulce
tak tady mám založené ty atributy
máme tam
tyto sem tam vložil patch to se dá s těmi atributy všechno dělat
takle pokročilé věci jako že není můžete budovat fulltextové indexy a takové věci to jasné
že to je text takže můžete za indexovat úplně libovolně co se dá dělat v
dotazech
já si tam se to ještě jeden nějaký produkt
vymyslete nějaký produkt
třeba budu ještě
bokem knih prodávat se kde
a budou mít nějakou
P
kolik je výsledný čtyrycet
třicet dobře
potom tam budu mít
a může mít
máme tam jenom tu rychlost to bude stačit náš příklad
a teď se můžu zeptat
celek všechno
jo
znak
pair
atributech
ty hledat jenom to co má klíč
který být
takže vy vyjde mi to jenom tak řekli můžu se zeptat
jak na přítomnost klíčů
cože super pokud hledáte nějaké nějaký
jako specifický atribut a nebo na přítomnost
na rovnost
té hodnoty klíče s nějakou vaší hodnotou
a teď k čemu je todleto dobré
jak jsem říkala dá se to indexovat
plně můžete na tom stavět jakejkoli indexy
je to lepší než písemná vpřípadě osvětu pověz
má typ X N L
a ten můžete indexovat taky ale není to takové jednoduché většinou to vyžaduje
eště jako mít externí rozšíření nejš
jsou ty trasu spol kde sem dodávána
lepší je čtyři klíče je ta s nima toto všechno v jedné tabulce abyste se
na to dotazovat jednoduchými esko dotazy bez nějaký čuňu a takový věcí
se přidají dalším problému
jo to je jenom
řetězec mapování
jako že může to být nějaký řetězec čárkovaný ale je to je to trochu blbost
a eště jsem zapomněl znít že existuje
už hodně
or M
knihoven má na todle anatomy utility
že dokáže pracovat which storem chan jsem to když viděl
jean budu a jakým rekord má na todle
a další problém do grafická data
bitka řešení v ostatních databázích
na MYSQL
sou nejrůznější obskurní rozšíření a importéry
které mám připraví tabulku a není proto vám prostě ono se to předává ty byl
grafická data tak za nižší souborech
když to nad nadefinované
nějaké tvary vtom souboru na sto převedená je shledám a potom se vám to ne
do databáze
a co sem tak viděl tak většinou pracuju mají sem tabulkami což není úplně
kdo tady z na rozdíl mezi mají ty sem a in odbyl
tak já to rači vysvětlím základní rozděle ten že
pokud zapisujete do mají sem tak se vám bloku je ta tabulka
na všechny operace
postgres přichází větším sem čemu se říká
tady jsem to
později
kde opraveno
a
postgis
je software databázové rozšíření používané
jestli znáte upletli znát který dělá mapy pro foursquare
tak oni původně jeli na majetku já do verze nula tři
ale
přešli na později
protože který umožňuje
některé
super záležitostí jako si například ukážeme takže já už jsem si včera nahrával třiceti nekdo
vídám poštovních směrovacích čísel v německu
do databáze
toto jaksi ta tady deutsche po úst
jo a máte tady vždycky
ale to popsané takže tam je
a jiný
potom poštovní směrovací číslo nezkrácené tvaru
ve zkráceném
název tak jak je uvedený prostě databáze těch poštovních směrovacích čísel a potom tam máte
todle muty polygon
tady tahleta věc
a postgis tydlety věci jako muty polygony pointy a tak dále podporuje nativně o neumí
získávat textu že mu data jenom text o sto nahraje multipóly byly přesto na svoje
typy
a teď co se
toto vyleze když máte vizualizační sopce
tady máme mapu německa
a jelikož je to obyčejná databáze
tak třeba můžu dát
tady mám grafice celek
máme tam ten ty drážďany
a tady máme odražený nemáte
tajidle
a co sem viděla tak
dělají vtom
dělaj stohy pokročilejší věci jako viděl jsem včera půl gigový
dám
mapy české republiky kde to bylo roznesené po vrstvách a dá prostě pohoří silnice a
tak dále
a to na tom všem můžete provádět S kilo dotazy
což je docela mocná zbraň
pokud je umíte
a pokud neumíte tak teď vám ukážu jak je udělat
jinak
takže
poslední problém
se mlýny programátora má manipulovat s daty v databázi a
nechce se učit S Q oko
pokročile
takže prostě typický přístup do to sou M
na nám se S Q L a když prostě king
kancelářský
todle je
todle je nějaká nějakej nějaký tím že čem
pěkný
velmi
ale prostě programátoři to sou line bestie vím o čem mluvím
valenci šunky celý den
postgres vám dala
nástroj
zbraně k bojovat se skill
procedura Y vidíte
takže základní je
tech F P G S Q L do tady dělat orákulem
přes a teď si to že tepel S Q L oraclovské
spadá rozšířením a potom té celko to nevím jak se dostal do základů ale asi
to někdo používá
okýnka si to tvoří a tak perl
a můj oblíbený python
ale
v podstatě každý si najde to svoje
jo kravatě asi můžu poslat javě
spisovatele program státečku
statistický můžu napsat erku něco
psychopati bloko popřípadě
a váš systému inve administrátor může psát šelu jo
a já teď předvedu poslední demo
takže zpět do barcamp
a tady
tady mám takovou pěknou posypat dvojice
nevím kdo z vás
ví jak se dělá carovými kódy
existuje tam jeden typ čárových kódu tomu se říká a getting čtrnáct tuším
a
char vyko se do databáze ukládat takže tam klára nějaký begin to číslo C napsané
na spodku toho čárového kódu
takže já jsem si vytvořil funkci která ve dne
jeden ten jeden ten by tím
a vrátí mi buly honzovskou hodnotu
potřebujete to vysvětlit někdo klouby
tak to se tady děje že si to
převede na drink a potom to enum A ten rozsekám podstatě na dvojici index toho
znaku a ten znak
co se tady je to je matematika popsaná v tom standardu vpodstatě
až se to až se to všechno sečte tak to musí vydělit a na desetina
k to není validní čárový call
ty
P L
ty se budou stejně sem říkat N A store
zase dáte kytek ten že na a vytvoří se vám
to rozšíření ty rozšíření to vázané databázi o databáze proto je dobré si dělat template
i pokud se chystáte dělat být databází ze stejným rozlišení
no se to hodně poža auto postgisu kdy se udělá template která jenom vytvoří to
rozšíření
na ten postgis té databázi a potom štos podsadit oseka tech baťa svíčky
takže tyto řeknete funkci
a teď si k tomu eště vytvořím
vytvořím si doménu
toho typu getting
s tím že to bude P klient u kterého si ale budu
hlídat jestli to je validní
validní cot
ty jsi doménu a eště
sedím nějakou tabulku pěknou
kde použiju
doménu getting
bude to primární klíč a
produkt I D se bude vázán na
I D toho produktu ste tabulky produktu
a péčí
se musím podívat jestli tam mám ten validní čar víko jo todle on
tady todle na konci
musí být přehozená se standardní chyba pokud
prostě na pokladně se to špatně projede a přihodí se dvě čísla
a svážu s tím produktem jedna a nepustím je to protože my neprošla tím testem
na to jestli to je validní čárový kout
a pokud ty čísla přehodím terč
tak se to uloží
že ten začali výkonu že validní podle standardu
ideální využití těchhle věcí S kilko tím plněné nahradíte protože nemůžete dělat
že můžete dělat nějaké selekci na tom a tak dále
ale můžete tím nahradit hodně komplexní esko dotazy tím že si rozseká se na nějaké
selekci a nad nimi děláte operace stoupajícím
jednorázové modifikace ono to umožňuje je něco ve stylu lambda funkcí
kdy nedefinuje té jméno
té funkce a co vrací
v podstatě napíšete jenom du
cot ve vašem jazyce
udělá toto modifikace těch tabulek jako potřebujete
triky
pokud třeba nahráváte
mažete potřebujete něco měníte databázi dá se to zapsat
na to tak agregace read úst podstatě můžete si napsat
a window funkce té
takové speciální rozšíření které pod geto kopíroval o to reku
tak
nakonec eště změním pár bezvýznamných drobností
té databáze
všechno uvedené platí pro verzi devět jedna poslední stabilní verze
rychlá bezpečné migrace můžete
můžete mi díra si za obalit do transakce atomické
tím že pokud se vám něco
něco nevedete migraci takto můžete všechno od rolovat zpátky
todle nemá tuším ani není o řekl
že byste mohli takhle tak mají za obalit
forint data vejprt
to je super záležitost
můžete postgres navázat na jakýkoli vnější zdroj dat který nemusí být a nědg vyloví existujou
tam
ty přípojné body pro ready
víte můžete přímo dolovat do postgres u
použitelný furt textový index přímo v databázi na rozdíl od MYSQL
kdy musíte mít opět mají sem tabulku abyste není mohli budovat index
spousta rozšíření X se podíváte na stránku wikipedie tak tam to je na dvě stránky
ta tabulka
a poměrně rychlý vývoj
nemysli se to někdo zaregistrovali ale posledních letech se docela zpomalil vývoj majetku jel
a naopak postgres do toho kopnu
a to se mi docela líbí ale na druhou stranu to není úplně ideální
pokud si chcete udržovat ruší databázi jako
aktuálním stavu
takže
se mám teď řekl chtěl je po kde
použitelný velmi dobře v jakých oblastech
teď samozřejmě jak se jak se k dostat progrese se vůbec naučit
mě lepší způsoby začít používat po kde
nevěsty znáte všem ale
to je webová hra
která se odehrává při hospod kde v databázi
v podstatě hraje se pomocí dotazů a je to tahové na piky tak zvané
potom
super zdroje informací o kde zdaj
která je spravovaná tady tímhle borcem dole
po kde slajdu je to právě neaktualizované najdete s tom
všechno co jsem tady řekl plus užší něco navíc
můj oblíbený port informací o postgres u je pozdě je roku tečka com
koš do z náhrobku
kdo něco hostuje na roků
a samozřejmě jak říkám tady tenhleten týpek ten je z roku
strašně dobrý pověz Ú cože teďka ne
do doby to o startupu čekal
kritiku pokud máte klidně pochvalu smiřice tendle na ten twitteru či data možná přečtu
jo a
ještě bych udělal reklamu doufám že vy za to přidají
mojí klienti laděný na deset o jedou na postgisu
hrdě
se to nic nikde ne filtrujeme
a já bych vám poděkoval pokud máte dotazy
zase to domě mám tady kupu tyče které prý nikdo ještě ne rozdal
tak vám nemůže tady po rozdávat úplně
asi obdaruje všechny sedm jo všechny asi ne nevyjde
místo
že dotaz byl výkonnostní srovnání majetku jel
s ohledem
na i store
i
tak
já jsem benchmarking vpodstatě nedělá asi strana net něco najít
ale
ve většině případů jak říkám já jsem dělal hodně síla futex tam a majetku jo
a tam se právě používá ten mají sem takže mi to přišlo pomale hodně
i
i s ohledem na ten i store který
ale když se to tak vezme tak je to prostě tech který je
validován Í už na úrovni to serveru nějak
takže tam by podle mě ten výkonnostní dopadne měl být váš nějaký drasticky
samozřejmě asi trochu zpomalit tím že se bude zpracovávat a tak dále
ale
abych to neviděl problém
když
jo
takže nějaká killer feature mají S Q oproti pod kde sou rozlitou správně
tak
já co sem se setkal majetku já tak ono má vyřešené pin cesty docela dobře
kdy tam nepo ale dá se udělat insert takže nepovolit duplicity po kde sou se
to musí dělat
docela složitým
oproti tomu MYSQL dotazu
je majetkově jednoduchá jako hodně
to je prostě kafe mají ne k
pár dotazů a už se to tam střídy
po kde je bohatší ale
hodně lidí právě si myslí že progrese takové
strašně díkov ke že to je strašně komplexní a bojí se toho
ale když tomu dojdou tak
a srovnají to tak zjistí že
první aště zas takový problém protože se nemusí zaobírat
cejtím bohatým těch typu a tak dále
ale stačím v podstatě má podmnožina které pracuju
takže asi tak
vy
tam byl firmě
todleto když to
ano
tak
nemůžeme sto dělat úplně nové skoro databázi protože chce být eckel eště furt
tady byl
dotaz do na to jak vyhledávat
X diakritikou po
uživatelském stuhu bez diakritiky
přiznám se že to jsem ještě kdy neřešil takže
tak tomdlectom zrovna
řešení je navrhované řešení je takové že by se přidal sloupec bez diakritiky tomdle zrovna
je forget docela hodně rychlý
přidávání sloupců
a v podstatě z manifeste manipulaci tu tabulku nevím kolik tam máš záznamu
jo
jasný že by to mělo po de o to že by to měl podporovat na
úrovni dotazu
jasný
já sem todleto neřešil v podstatě
P houpající
odstraňovat
další navrhované řešení bylo
odstraní diakritiku
přímo toho záznamu real time
no to tam není
tady byl dotaz
no právě že jsem typy jako má dělat kryt tam je ten problém ale
eště zopakuju dotaz jestli teda A store exportovat do nějakého
děj snu popřípadě jinou formátu
ono by to asi šlo
použitím
tak todle tam ještě není ale
od další verze postgres úst bude ukládat přímo děj sny databáze
kdyby něco
no
a bude to mapování zase tech na text no
tak o to
musím slově upřímně že se moc nezajímám
jestli se
ten prvek těch domén bude propagovat někam víš
do knihoven
takže nemám měla informace o tom
ční kdo
roků má postgres posting
ono nabízí
šum že jako servis to tam nepude bude se muset
to mapovat přesně co
i podpory postgres jako databázi ale jako službu nejsem si jistý
já jsem to vždycky požíval spojení zatím programem takže
jo
tak
na co se dej praxi použít domény
jo to ta
ve které kolem je to na tu vstupní validaci
to jest to základní použití těch domén
že neřeší se to nějak na nějaké aplikační vrstvě ale řeší si to už ten
server
to je zase otázka no
tak ono to ten python provádí přímo na straně serveru to dělat server
jasně
při mě škálování sem neřešil eště
jako že bych měl tak velký server že bychom potřeba rozsekat
určitě podpora nějak a tam bude ale jak víme tak ty S Q databáze na
tom nejsou moc dobře
ne škálování alespoň mi to tak přijde pokud člověk při designu hezkého uložíš na pětku
jel
takže to takové pochybné
co se týče
té bezpečnosti a to zálohování
je tam systém
kontroly verzí
přímo databázi
takže to jeden bezpečnostní prvek obecně ten po kdesi navržen jako hodně bezpečná databáze takže
jasně
ono to tam pude řešit pomocí toho systému kontroly verzí
nějaké své splnit jako migrací samozřejmě
a ten programy používají tušili neskajpuju
že ten prográmek požívají ve skype u na tu
no slony
jo
jo
jasně ale problém je že oni lidí požíváte čistou MYSQL koš
T P mrtvá
E
u
a
a
jo
a
jo
no
jo přesně na todleto je ta kontrola ti verzi
měl by to tam být
pokud sem že to správně manuál teda
činnost nezkoušel sem
K větší většinou se mi to podařilo zploštit zcela
někdo
jo bylo tam dělat kryt i ve osmička tam ne
kdyby
jako se chtělo hodně
dokonce i openfile můžete
gpu očkem si akcelerovat
operace s databází
někdo
tak já vám děkuju a chcete někdo s dotazování přes dotazující strýčka
tak si tak si dojděte