Databázové systémy 2 Cvičení V Ing. Tomáš Váňa Fakulta elektrotechniky a informatiky
Obsah cvičení -Balíčky -Práce s OUT parametry -Modelový příklad IDAS2 - Cvičení V 2
Schéma IDAS2 IDAS2 - Cvičení V 3
Cíl cvičení Vytvořit obslužné procedury pro zmíněné tabulky. – Dané procedury budou v příštích cvičeních sloužit jako rozhraní pro Java aplikaci. Rozdělit obslužné procedury do dvou balíčků. – Obsluhu týkající se tabulky USERS umístěte do balíčku PCK_SECURITY – Obsluhu tabulek CUSTOMERS a CUSTOMERS_ADDRESSES umístěte do balíčku PCK_CUSTOMERS IDAS2 - Cvičení V 4
Základní „bussines pravidla“ Veškerá interakce s „okolním světem“ je realizována pomocí procedur. – Každá procedura je umístěna v příslušném balíčku. – Procedury jsou univerzální, tzn. pro zakládání nových záznamů či editaci záznamů stávající vytvořte pouze jednu proceduru. Každá procedura informuje pomocí výstupního parametru ve formátu JSON o svém úspěšném dokončení či chybě, která úspěšnému dokončení brání. Hesla jsou uložena ve formě MD5 hashe. – Tzn. neukládejte heslo jako čistý text. IDAS2 - Cvičení V 5
Obecné pokyny Všechny Vámi vytvořené procedury budou obsahovat výstupní (OUT) parametr p_result typu CLOB. – Tento parametr bude sloužit k reportovaní o stavu běhu dané procedury. Po skončení procedury bude tento CLOB obsahovat řetězec signalizující buď úspěšný běh, nebo v případě chyby, se zde objeví chybová hláška. – V případě, že vše bude v pořádku, bude p_result obsahovat řetězec ve formátu JSON s jednoduchým obsahem: – V případě, že při provádění procedury dojde k chybě, objeví se v proměnné p_result JSON s obdobnou strukturou. IDAS2 - Cvičení V 6
Balíček PCK_SECURITY Uvnitř balíčku vytvořte proceduru jenž bude sloužit pro přidaní/editaci uživatele. – Ošetřete situaci, kdy by mělo dojít k vložení uživatele s duplicitním uživatelským jménem (fyzicky to možné není -> omezení UNIQUE nad usr_name -> ale je nutné ošetřit příslušnou výjimku). Dále vytvořte proceduru, jež dle zadaného uživatelského jména a hesla (MD5 hash) ověří daného uživatele. – Do procedury kromě CLOB OUT proměnné přidejte ještě jednu OUT proměnnou typu NUMBER, jež v případě úspěšného ověření vrátí usr_id příslušného uživatele. Toto vrácené usr_id pak využijete ke spouštění jiných procedur. IDAS2 - Cvičení V 7
Baliček PCK_CUSTOMERS Vytvořte 2 procedury. Jednu pro přidávání/editaci zákazníků (tabulka CUSTOMERS) a jednu pro přidání/editaci zákaznických adres (tabulka CUSTOMERS_ADDRESSES). – Do obou procedur přidejte parametr usr_id (z tabulky USERS), které bude reprezentovat úspěšné ověřeného uživatele. IDAS2 - Cvičení V 8
Rady Při tvorbě editačních procedur si vždy pečlivě projděte strukturu tabulky, tak abyste neopomněli do procedury přidat některý z parametrů, jež odpovídá některému ze sloupců tabulky. – O sloupce created se starat nemusíte, jsou plněny automaticky (DEFAULT SYSTIMESTAM). Do procedur si přidejte následující „univerzální zachytávač výjimek“: – Pro specifické výjimky (duplicitní uživatel) si samozřejmě vytvořte specifičtější ošetření. Pro generování MD5 hash využijte funkce md5hash funkci ze schématu IDAS2. IDAS2 - Cvičení V 9
Rady Příklad spuštění autorizace a přidání nového uživatele. IDAS2 - Cvičení V 10