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