AD Blog

Geo: N 49° 6' 11.34 E 16° 22' 38.64
jdi na obsah

Vančák bloguje - text spotu:

Jak na databáze II

Úvodní díl toho seriálu byl poněkud suchopárný, a proto si rovnou vytvoříme databázi třeba vizitek.

Proč vizitky? Vždyť na to je Outlook! No, protože chceme vizitky uložit na netu, abychom je měli neustále k dispozici třeba na svém P910i .

Pomocí SQL dotazu vytvoříme databázi:

CREATE DATABASE vizitky;

První nápad vytvořit tabulku s názvem vizitky a jedním atributem vizitka podrobíme podrobnějšímu zkoumání: Pokud bychom postupovali naznačeným způsobem zřejmě bychom narazily na následující problémy:

  • špatně by se nám v takto navržené struktuře vyhledávalo
  • při třídění bychom narazily na nemožnost třídit třeba jenom podle příjmení osoby
  • při libovolné změně bychom museli editovat poměrně dlouhý záznam

Řešením je rozdělit informaci do více sloupců. Například takto:

vizitky (1)

  • jméno
  • příjmení
  • titul
  • pozice
  • firma
  • obec ve které firma sídlí
  • poštovní směrovací číslo obce
  • ulice ve které firma sídlí
  • číslo popisné ve které firma sídlí
  • telefon do zaměstnání
  • mobilní telefon
  • fax
  • emailová adresa
  • web firmy
  • obecná poznámka

To co jsme takto vytvořili je vlastně popis objektu vizitka pomocí jeho atributů. Jednoduché, že? Ve skutečnosti je tento proces nejsložitější částí při vytváření aplikace. Uvědomme si, že na této činnosti vlastně závisí Integrita (konsistence) dat, to je popis (obraz) reálného objektu v naší databázi. Existují nejrůznější postupy a frameworky, které se snaží více či méně úspěšně problematiku řešit jako například UML , je dobré si tento seriál na intervalu prostudovat. Proces analýzy se nevyplatí podceňovat, protože známým faktem je, že pokud ušetříme při analýze 10 Kč, oprava takto vzniklé chyby v aplikaci bude stát 100× více.

Nicméně, vizitka je tak jednoduchý objekt, že nasazení UML skutečně nepotřebuje.

V předchozím dílu jsme ve výkladu pojmů definovali pojem primární klíč. Nyní se pokusíme určit parametry primárního klíče pro náš příklad:

při pohledu na navrženou strukturu bude možná primárním klíčem kombinace sloupců: jméno+příjmení­+titul+pozice­+firma.

Když tento primární klíč analyzujeme z hlediska požadavku na jednoznačnost, docházíme k závěru, že za jistých okolností nemusí být takto navržený primární klíč jednoznačným určením řádku tabulky. Můžeme například doplnit číslo mobilního telefonu, ale požadavek na jednoznačnost není opět na 100% splněn. Takže co s tím?

Řešením je přidání nového sloupce nazvaného id do námi navržené tabulky. Obsahem tohoto sloupce bude jednoznačné číslo generované databázovým systémem. Toto číslo je neopakovatelné v rámci jedné tabulky, to znamená, že pokud záznam z tabulky fyzicky vymažeme, nebude už nikdy použito.

Zároveň upravíme názvy sloupců do „strojovějšího“ tvaru – eliminujeme diakritiku, mezery a zkrátíme délky názvů:

vizitky (2)

  • id
  • jmeno
  • príjmení
  • titul
  • pozice
  • firma
  • obec
  • psc
  • ulice
  • cislo_popisne
  • telefon
  • mobil
  • fax
  • email
  • web
  • poznamka

O příkladu vizitky (1) říkáme že se jedná o logický model (tabulky a atributy jsou zde prezentovány logickými popisy – těmi, které budou použity při vytváření uživatelského rozhraní) a fyzický model (příklad vizitky (2)) s názvy tabulek a sloupců tak, jak jsou uloženy v databázi.

Jako další krok bude určení datových typů jednotlivých atributů tabulky.

Nevíte, co to jsou datové typy? Čtenáři za mnou!

Datovým typem rozumíme typ dat. Každý databázový systém má odlišnou množinu datových typů, nicméně v našem případě se jedná o následující (podle MySQL):

  • integer – celé kladné číslo
  • varchar – text o zadané maximální délce (musíme určit)
  • text – text o neznámé délce

Takže to provedeme:

vizitky (3)

  • id INTEGER PRIMARY KEY
  • jmeno VARCHAR (25)
  • príjmení VARCHAR (25)
  • titul VARCHAR (10)
  • pozice VARCHAR (15)
  • firma VARCHAR (40)
  • obec VARCHAR (30)
  • psc VARCHAR (5)
  • ulice VARCHAR (40)
  • cislo_popisne VARCHAR (5)
  • telefon VARCHAR (13)
  • mobil VARCHAR (13)
  • fax VARCHAR (13)
  • email VARCHAR (25)
  • web VARCHAR (40)
  • poznamka TEXT

Takže nyní můžeme napsat SQL skript pro vytvoření tabulky vizitky a nechat MySQL v naší databázi „vizitky“ tabulku vytvořit:

CREATE TABLE vizitky (

id int(4) NOT NULL auto_increment,

prijmeni varchar(25) default NULL,

jmeno varchar(25) default NULL,

titul varchar(10) default NULL,

pozice varchar(15) default NULL,

firma varchar(40) default NULL,

obec varchar(30) default NULL,

ulice varchar(40) default NULL,

psc varchar(5) default NULL,

cislo_popisne varchar(5) default NULL,

telefon varchar(13) default NULL,

mobil varchar(13) default NULL,

fax varchar(13) default NULL,

email varchar(25) default NULL,

web varchar(40) default NULL,

poznamky text,

PRIMARY KEY (id),

UNIQUE KEY id (id)

) ENGINE = MyISAM; Do takto vytvořené tabulky si můžete zkusit nějaké vizitky napsat, třeba přitom přijdete na to, co je tam špatně. Ale o tom až příště.

16 říjen 2005, 18:00 Autor:Aleš Dobrovolný

MSN: adobrovolny@hotmail.com

Jabber: adobrovolny@jabbim.cz
Stav na jabber:

ICQ: 278 396 374
Stav na ICQ:

Líbil se vám tento článek? Pošlete odkaz na:

Přidej odkaz na Bookmarky.cz Clip to Evernote

Nebo pošlete sponzorskou SMS.


Zde vložte Váš komentář

Formát Texy

Opište, prosím, text na obrázku

jdi na menu

Podobné články:

 
V případě problémů kontaktujte a nebo můžete stáhnout vCard
Powered by TextPattern ::CZ Celkový počet aktivních článků blogu: 541
N 49° 6.1957 E 16° 22.6636