Jsou databáze nejasné? Ptejte se!

Po menší přestávce máte opět možnost seznámit se s další částí čtenářských dotazů souvisejících s databázovými systémy a hlavně s jazykem SQL. Je-li vám něco nejasné, nebojte se a napište.
Po menší přestávce máte opět možnost seznámit se s další částí čtenářských dotazů souvisejících s databázovými systémy a hlavně s jazykem SQL. Je-li Vám něco nejasné, nebojte se a napište.

Používám systém Oracle a nevím, jaký je rozdíl mezi příkazy DELETE a TRUNCATE, oba přece slouží k výmazu záznamů z tabulky.

Rozdíly jsou dva. První je ten, že příkaz TRUNCATE vymaže z tabulky všechny záznamy a neumožňuje tuto vlastnost ovlivnit. Součástí příkazu DELETE může být podmínka, která určí, jaké záznamy se mají smazat. Druhým rozdílem je fakt, že TRUNCATE uvolní alokované datové bloky k opětovnému použití, kdežto DELETE nikoli. Doporučuji podrobnější nastudování pasáží firemní dokumentace o fyzickém ukládání dat v tomto systému.

Jaké jsou možnosti spojení databáze a webu? Viděl jsem pár komerčních řešení, která vypadají docela pěkně. Existuje něco podobného jako free?

Možností je několik, v praxi používaný je například jazyk podobný shellu - PHP (dnes ve verzi 3), který je k dispozici jak pro unixové platformy (včetně Linuxu), tak pro Windows. Z databázových systémů jsou podporovány jak "velké" komerční produkty (Oracle, Sybase, Informix), tak i freewarové či sharewarové (PostgreSQL, mSQL, MySQL). Podpora www serveru Apache je samozřejmostí. Zajímavé je, že PHP nepostihuje pouze oblast komunikace s databázemi, ale disponuje také celou řadou dalších možností - od matematických výpočtů až po práci s grafickými prvky. Bližší informace je možné získat na Internetu www.php.net.

Slyšel jsem o read-read-write strategii v souvislosti se sdílením dat? Mohl byste mi tento postup vysvětlit?

Nad touto otázkou jsem delší dobu přemýšlel, o co vůbec jde. Pokud vím, tento pojem používá firma Magic Software Enterprises ve svém produktu MAGIC (ten je mylně označován za databázový systém, ve skutečnosti se však jedná o vývojový nástroj). V podstatě jde o to, že v případě konkurenčního přístupu k datům jsou tato nejprve přečtena do lokálních proměnných, tam upravena a před vlastním zápisem je čtením z databáze ověřena jejich původní hodnota. Pokud se neliší, provede se zápis z lokální kopie do databáze. Pokud mezitím došlo ke změně, chování záleží na aplikační logice. Výhoda tohoto řešení je sporná - sice odpadá zatížení systému nadbytečným zamykáním, na stranu druhou se však jedná o poměrně nestandardní přístup a jednotlivé reakce musí být programově ošetřeny. Osobně doporučuji používat vnitřních prostředků daného systému.

Jakým způsobem je zajištěna komunikace mezi různými SQL systémy?

K dispozici bývají různé přímé ovladače pro přístup do jiných systémů. Mezi hlavní výhody patří podpora většiny vlastností, kterými systém disponuje. Druhou možností je použít některého ze standardizovaných rozhraní, například ODBC (Open DataBase Connectivity). Rozhodnutí, jakou možnost použít, záleží na mnoha okolnostech - například výkon bývá větší v případě přímých ovladačů, ale s ODBC se "dostaneme" takřka do jakéhokoli systému.

Jak je to s přenositelností programů napsaných v SQL z jednoho systému na druhý?

Pokud bude programový kód využívat pouze příkazů daných normou SQL, pak by měl být přenositelný na jakýkoli jiný systém vyhovující stejné normě. Zpravidla se ale využívá procedurálních prvků (o ty rozšířily, jak jsme si řekli v úvodních dílech našeho seriálu, jednotlivé firmy standardní množiny příkazů SQL), a tak se šance na bezproblémový přechod snižují.

Úspěšně používám pro svoji firemní agendu FoxPro a viděl jsem u kolegy obdobnou agendu na systému Sybase. Žádné podstatné zrychlení jsem ale nezpozoroval. Kdy je vhodné začít uvažovat o přechodu z architektury file/server na client/server?

Obě dvě otázky spolu souvisí. Jednou z hlavních výhod velkých SQL systémů je vysoký výkon, který však můžeme ocenit až při velkém objemu zpracovávaných dat nebo při velkém počtu současně připojených uživatelů. Před pár lety jsem byl členem týmu provádějícího pokusy za účelem zjištění hranice, od které se začíná vyplácet použití architektury client/server. Například počet uživatelů se pohyboval maximálně do dvou desítek. Záleží také na plánech rozšiřování vámi používaného systému - pokud se chystáte zpracovávat rychle rostoucí objem dat za zvyšujícího se počtu uživatelů, pak rozhodně volte systém pro architekturu client/server (někdy příště se seznámíme s jednotlivými třídami této architektury).

Je vůbec možné v SQL vytvořit smysluplnou aplikaci? Připomíná mi to BASIC - také účelné a poměrně jednoduché, ale nic velkého se v tom napsat nedá.

Problém je složitější. V SQL se zpravidla vytváří ta část aplikace, která běží na serveru a stará se o "vnitřní" logiku (většina SQL systémů podporuje architekturu client/server). Klientská část se dnes vyvíjí v moderních nástrojích, které mohou být od stejné firmy jako SQL server či od firmy specializující se na vývojové nástroje. V praxi tak můžeme vidět aplikace napsané například v DELPHI využívající server Oracle. Jako uživatel pak vlastně ani nevíte, že někde na pozadí nějaký SQL server je.

Máte nějaké zkušenosti s SQL systémy pro Linux? Tento operační systém se mi líbí, ale nevím, jak moc mohu pro něj existujícím databázím věřit.

Není důvod nevěřit. Pro Linux je k dispozici celá řada databázových systémů, jmenujme například ty nejznámější - MySQL, PostgreSQL či Sybase Adaptive Server Enterprise (výčet není v žádném případě úplný, bližší informace můžete nalézt v článku věnovaném této problematice). Právě posledně jmenovaný produkt pár měsíců na Linuxu používám a jsem s jeho vlastnostmi více než spokojen. Žádné obavy o spolehlivost nemusíte mít zejména v případě linuxových verzí "velkých" SQL systémů, které vlastnostmi odpovídají svým bratříčkům z jiných platforem.

Některé z vámi uváděných příkladů mi nefungují. Nevíte proč? (často opakující se otázka pro různé systémy)

Pokud nějaký příkaz nefunguje, podívejte se na přesnou syntaxi do dokumentace. Na začátku našeho seriálu jsme si uvedli, že ne všechny systémy plně podporují SQL normu, ke které se hlásí. Chyba může být také v odlišném způsobu ukončení zadávání příkazu (zpravidla záleží na klientovi).

Tak a to je pro dnešek vše. Na závěr bych Vás chtěl poprosit, abyste k dotazu připojovali jméno systému, přesný způsob zápisu příkazu a případné chybové hlášky. Usnadníte mi tak hledání řešení.

Diskuze (2) Další článek: SmartSuite R10: Lotus boj nevzdává

Témata článku: Odlišné zjištění, Databáze, Read, Stejný dotaz, Druhý případ, Stejný prvek, Přesná data, Velká část, Jednotlivé prvky, Velká výhoda, Velký objem


Určitě si přečtěte

Google má nové telefony, počítač a domácí displej. Česko je stále mimo

Google má nové telefony, počítač a domácí displej. Česko je stále mimo

** Google dnes představil novinky ** Dočkali jsme se nového telefonu Pixel 3, tabletopočítače a domácího displeje ** Rozšíření Google Assistenta do dalších zemí se bohužel nekoná

David Polesný | 45

Porno insider: Jak virtuální realita vstupuje do filmů pro dospělé

Porno insider: Jak virtuální realita vstupuje do filmů pro dospělé

** Pornografie údajně představuje třetinu internetové obsahu a je technologický tahounem ** Do erotického obsahu postupně zasahuje i virtuální realita ** Kromě vizuálního vjemu se pracuje také na virtuálním uspokojení toho hmatového

Jan Dudek | 29

Vyzkoušeli jsme eObčanku a přihlásili se s ní na weby úřadů. Vážně to funguje!

Vyzkoušeli jsme eObčanku a přihlásili se s ní na weby úřadů. Vážně to funguje!

** Máme eObčanku, máme čtečku, vyzkoušeli jsme přihlášení na weby úřadů. ** Objevily se drobné problémy, podařilo se nám je vyřešit. ** Používání eObčanky pro online identifikaci je velmi pohodlné.

Marek Lutonský | 35

Podívejte se, co se stane, když dron DJI Phantom narazí do křídla letadla

Podívejte se, co se stane, když dron DJI Phantom narazí do křídla letadla

** Co se může stát, když relativně maličký dron narazí do křídla letadla? ** Tuto otázku zodpověděli odborníci laboratorním pokusem ** Kvadrokoptéra způsobila významné poškození křídla

Karel Kilián | 19

Porno insider: Jak Greg Lansky mění internet pro dospělé

Porno insider: Jak Greg Lansky mění internet pro dospělé

** Erotický obsah generoval ohromné peníze, pak ale přišel internet... ** Pornografie dostupná všude a zdarma uvedla tvůrce do krize ** Někteří ale dokázali potenciál internetu využít i v tomto oboru

Jan Dudek | 12


Aktuální číslo časopisu Computer

Jak vytvořit a spravovat vlastní web

Velký test herních klávesnic a DVB-T2 tunerů

Vše o formátu RAW

Vybíráme nejlepší základní desku