Úvod > Články > Úvod do SQL pro samouky

Úvod do SQL pro samouky

Databáze na bázi standardu SQL jsou velice rozšířené. Využívají se jednak v řadě webových projektů a intranetových aplikací a samosebou v běžných aplikacích. Jejich znalost je tedy pro vývojáře nepostradatelná.

Historie jazyka SQL sahá do roku 1974, kdy Dr.Codd prezentoval svou práci o relačních databázových modelech. Zde šlo ale o práci teoretickou, první skutečně využitelnou verzi databázového jazyka  vytvořila firma IBM a pojmenovala ji SEQEL, později se vžil název SQL, který je také znám pod standardizačními značkami SQL-92 nebo SQL 1999 či SQL 2003. Implementace jazyka SQL by se měla řídit mezinárodními standardy, ale jak se dozvíte, vždy tomu tak není. Různé databázové platformy využívají odlišnou syntax, což činí problémy zejména při převodu databáze na jinou platformu.

Databázové platformy

Jak již bylo řečeno, existují různé databázové platformy, pojďme se nyní s těmi nejpoužívanějšími blíže seznámit.

MS SQL Server – Microsoft má s databázemi zkušenosti již od doby, kdy koupil firmu Foxbase a začal konkurovat produktům dBase. MS SQL Server 7 spatřil světlo světa v roce 1998, následný vývoj došel až k produktu MS SQL Server 2005. Jde o placený produkt, dá se pro osobní potřebu a testování na lokální stanici sehnat v odlehčené Express verzi. SQL Server je všestranné, integrované a komplexní řešení pro data, které přispívá ke zvýšení výkonnosti uživatelů v celé organizaci poskytováním zabezpečenější, spolehlivější a produktivnější platformy pro podniková data a aplikace BI. SQL Server 2005 přináší specialistům IT i pracovníkům s informacemi výkonné známé nástroje, omezuje složitost vytváření, nasazování, správy a využívání podnikových dat a analytických aplikací na nejrůznějších platformách od mobilních zařízení po podnikové datové systémy. Prostřednictvím rozsáhlé sady funkcí, vzájemné funkční spolupráce se stávajícími systémy a automatizace rutinních úloh nabízí SQL Server 2005 organizacím všech velikostí úplné datové řešení.

Oracle – Moderní a multiplatformní databázový systém s velice pokročilými možnostmi zpracování dat, vysokým výkonem a snadnou škálovatelností. Databázový systém Oracle je vyvíjen firmou Oracle Corporation. Aktuální verzí je Oracle Database 10g. Tento systém podporuje nejen standardní relační dotazovací jazyk SQL podle normy SQL92, ale také proprietární firemní rozšíření Oracle (např. pro hierarchické dotazy), imperativní programovací jazyk PL/SQL rozšiřující možnosti vlastního SQL (v tomto jazyce je možné tvořit uložené procedury, uživatelské funkce, programové balíky a triggery), dále podporuje objektové databáze a databáze uložené v hierarchickém modelu dat (XML databáze, jazyk XSQL).

MySQL – Jde o databázový systém vytvořený švédskou firmou MYSQL AB. Je považován za úspěšného průkopníka dvojího licencování – je k dispozici jak pod bezplatnou licencí GPL, tak pod komerční placenou licencí. MySQL je multiplatformní databáze. Komunikace s ní probíhá pomocí jazyka SQL. Podobně jako u ostatních SQL databází se jedná o dialekt tohoto jazyka s některými rozšířeními. Pro svou snadnou implementovatelnost (lze jej instalovat na Linux, MS Windows, ale i další operační systémy), výkon a především díky tomu, že se jedná o volně šiřitelný software, má vysoký podíl na v současné době používaných databázích. Velmi oblíbená a často nasazovaná je kombinace MySQL, PHP a Apache jako základní software webového serveru. MySQL byla od počátku optimalizována především na rychlost, a to i za cenu některých zjednodušení: má jen jednoduché způsoby zálohování, a až donedávna nepodporovalo pohledy, triggery a uložené procedury. Tyto vlastnosti jsou doplňovány teprve v posledních letech, kdy začaly nejčastějším uživatelům produktu – programátorům webových stránek – již poněkud scházet.

Co udělat pro založení databáze?

Založení databáze není zase tak jednoduchou záležitostí, žádá si určité systémové znalosti. Velké a placené produkty obvykle disponují aplikací, která toto administrátorovi usnadní pomocí grafického rozhraní. Pokud si chcete zkusit chování databáze a práci s databází, je výhodnější, pokud využijete databázi v rámci web prostoru. Zde je již databáze založena a vy si jen definujete její strukturu, relační vztahy a samozřejmě vkládáte a upravujete data. Založení ale není vše, pokud chcete přistupovat do databáze z některého programovacího jazyku, musíte zvolit vhodné rozhraní. Ve spojení PHP a SQL se mi velice osvědčilo rozhraní ADOdb.

Základní datové typy

Základní datové typy je potřeba zmínit, neboť jsou klíčem k založení tabulek. Každý programovací jazyk využívá trochu jiné datové typy, minimálně se liší v názvu a možnosti využití. Kromě zde uvedených datových typů existuje i řada dalších, jako například datový typ LARGE OBJECT nebo konstruované datové typy či uživatelem definované datové typy.

CHAR(n) – Datový typ pro uložení řetězce s pevnou délkou danou parametrem v závorce.

VARCHAR(n) – Datový typ pro uložení řetězce s proměnlivou délkou danou parametrem v závorce.

INT – Celé číslo v rozsahu od -2 147 483 648 do 2 147 483 647.

FLOAT a REAL – Datové typy s pohyblivou desetinnou čárkou.

DATE, TIME a TIMESTAMP – Datové typy pro uložení data a času.

NULL – Nejde o datový typ, ale o hodnotu, které může atribut nabývat. NULL je obvykle označení pro žádnou hodnotu nebo nic. Slovo vychází z latinského nullus. Nejedná se tedy o ekvivalent prázdného řetězce, ani o hodnotu číselné nuly, ale o speciální hodnotu, která obvykle hovoří o tom, že daná hodnota nebyla zadána.

Pozn.: Již zde je rozdíl v dialektu jazyka SQL pro jednotlivé platformy. Kupříkladu Oracle využívá pro prezentaci čísla jediný datový typ NUMBER (x,y), kde x udává počet číslic před desetinnou čárkou a y počet číslic za ní. Dále Oracle využívá datový typ DATE, který v sobě obsahuje jak datum, tak čas.

Pojmy

Tabulka – Úložiště dat v databázi. Každá tabulka má určitý počet atributů (sloupců), do kterých se na řádky ukládají jednotlivé záznamy (konkrétní hodnoty). Obvykle obsahuje databáze více tabulek, které jsou propojeny relacemi a ve kterých jsou definovány primární či cizí klíče.

Relace – Databázová relace se od matematické poněkud liší. Má zavedený pomocný aparát nazvaný schéma relace. Schéma relace říká, jaký je název relace, kolik má sloupců a jaké jsou jejich názvy a domény (doména určuje přípustné hodnoty v daném sloupci). V databázích je schématem relace definice struktury tabulky. Ovšem relací není jenom tabulka, ale cokoliv strukturovaného do řádků a sloupců. Což znamená, že relací je i výsledek jakéhokoliv dotazu.

Primární klíč – Jedná se o pole nebo kombinaci polí jednoznačně identifikující každý záznam v databázové tabulce. Žádné pole, které je součástí primárního klíče, nesmí obsahovat hodnotu NULL. Každá tabulka může mít definovaný pouze jeden primární klíč. Primární klíč musí mít tyto tři vlastnosti: jedinečnost, neměnnost, nenulovou hodnotu.

Pohled (View) – Je databázový objekt, který uživateli poskytuje data ve stejné podobě jako tabulka. Na rozdíl od tabulky, kde jsou data přímo uložena, obsahuje pohled pouze předpis, jakým způsobem mají být data získána z tabulek a jiných pohledů.

Ïndex – Je obvykle definován výběrem tabulky a jejích konkrétních sloupců, nad kterými je třeba dotazování urychlit, dále pak technickým určením typu, chování a způsobu uložení indexu, které se významně liší podle použité databázové technologie.

Závěrem

Tento článek si neklade za cíl zkušené uživatele a databázové specialisty deprimovat tím, co již dávno vědí, ale spíše přivést k problematice databází zájemce o vývoj aplikací nad databázemi. Snad se nám to podařilo a vy již máte jasněji v základních pojmech, které jsou s databázemi úzce spojeny.

10. 11. 2006

Autor: David Procházka

Sdílejte

Přečtěte si také

 

Mafra posiluje své postavení na realitním trhu

Vydavatelství Mafra rozšířilo své portfolio o společnost AdInternet. Česká firma se specializuje na prodej realit...

 

Elop končí v Microsoftu, co s ním bude teď?

Dvaapadesátiletý Stephen Elop opustil pozici výkonného viceprezidenta Devices & Services ve společnosti Microsoft...

 

Hlídejte si své účty před kyberútoky

Kyberloupeže a útoky na účty klientů bank v České republice během posledního roku rapidně stouply. Banky posilují...

Nejčtenější články

Víme, kde v říjnu došlo ke zrychlení DSL připojení!

 

CETIN v posledních měsících intenzivně zrychluje DSL připojení. Přinášíme vám seznam 30 obcí, kde se v říjnu...

Proč se na pořádný fotbal nepodíváte ani na ČT?

 

Britskou Premier League, Sky Bet Championship a španělskou ligu mohou čeští diváci sledovat pouze na Nové Digi TV a...

Naměřené rychlosti internetu na DSL.cz v říjnu 2016

 

Rychlost mobilního LTE internetu byla v říjnu nejvyšší u operátora O2. V síti 3G je nejrychlejší T-Mobile. Co se...