Bezplatné poštovné a Zľava 20% na všetko

Algoritmy interného triedenia na FRI UNIZA

V rámci predmetov na Fakulte riadenia a informatiky (FRI) Žilinskej univerzity v Žiline sa študenti zoznamujú s rôznymi algoritmami a technikami práce s dátami. Tieto vedomosti sú kľúčové pre pochopenie fungovania databázových systémov a efektívneho spracovania informácií.

Základné pojmy a nástroje

Prvý kontakt s databázovým systémom zvyčajne zahŕňa pochopenie toho, ako sú dáta ukladané a modifikované. Všetky dáta, ktoré vidíme v systémoch ako AiS2, sú uložené v databáze. Pomocou klikania a formulárov môžeme dáta pridávať, mazať a aktualizovať.

Pri práci s databázami je dôležité poznať základné konfiguračné nastavenia a potenciálne problémy:

  • Heslo pre root: Pri inštalácii databázy si dôkladne zapamätajte heslo pre používateľa root.
  • Služba MySQL: Vo Windows sa uistite, že služba MySQL je spustená (cez Správcu úloh -> Služby).
  • Predvolený port: MySQL štandardne používa port 3306.
  • Chybové hlásenia: Prečítajte si chybové hlásenia v klientovi alebo v logoch databázy.
  • XAMPP/WAMP: Ak už používate XAMPP alebo WAMP, MySQL je jeho súčasťou.
  • Režim overovania: Pri inštalácii SQL Servera si vyberte "Mixed Mode Authentication", aby ste mohli používať SQL Server Authentication aj Windows Authentication.
  • Názov inštancie: Môžete zvoliť predvolenú inštanciu (MSSQLSERVER) alebo pomenovanú inštanciu (napr. SQLEXPRESS).

Je tiež dôležité rozlišovať medzi rôznymi databázovými systémami, ako sú MySQL, PostgreSQL, DB2 či SQL Server, pričom každý má svoje špecifiká.

Ilustrácia rôznych databázových systémov

Práca s dátami v SQL

Pri práci s SQL (Structured Query Language) sa stretávame s mnohými otázkami týkajúcimi sa syntaxe a správania:

  • Je // jednoriadkový komentár v MySQL?
  • Rozlišuje SQL medzi malými a veľkými písmenami?
  • Do akých apostrofov sa píše reťazec: `reťazec`, `"reťazec"`, `'reťazec'` alebo `reťazec` ?
  • Ako sa píšu dátumy?
  • Čo sa stane, ak vložím dlhší reťazec, ako som v tabuľke definoval?
  • Ako funguje CHAR, VARCHAR, TEXT pre kratšie alebo dlhšie reťazce, ako je definované?

Dôležité je dodržiavať správne formáty dátových typov a názvov:

  • Pomenovanie: Používajte konzistentné a zmysluplné názvy pre tabuľky a stĺpce (napr. malé písmená, podčiarkovníky pre medzery).
  • Formáty dátových typov: Pri vkladaní dát dávajte pozor na správne dátové typy a formáty.
  • Dátové typy: Pri vkladaní a aktualizácii dát dávajte pozor na správne dátové typy a formáty.

SQL keywords sú predvolene nastavené ako case insensitive, čo znamená, že kľúčové slová je možné použiť v malých alebo veľkých písmenách.

Spojovanie a zoskupovanie dát

Pre získanie ucelených informácií je často potrebné spájať dáta z viacerých tabuliek. Vačšina zobrazených dát, hlavne v tabuľkách, vznikajú spojením desiatok tabuliek.

Medzi bežné operácie patria:

  • Zoskupenie a pridanie medzisúčtov a celkových súčtov pomocou klauzuly GROUP BY.
  • Použitie klauzuly HAVING na filtrovanie zoskupených dát.
  • Použitie klauzuly ORDER BY na zoradenie výsledkov.

V rámci cvičení sa precvičuje kombinovanie a porovnávanie dát z viacerých tabuliek pomocou operácií ako UNION, INTERSECT a EXCEPT. Osvojujú sa princípy vnorených dopytov, ktoré umožňujú efektívne získavať údaje na základe výsledkov iných dopytov.

Schéma spojenia viacerých tabuliek v databáze

Príklady typických úloh zahŕňajú:

  • Zoradiť študentov podľa váženého študijného priemeru pre jednotlivé odbory alebo fakulty.
  • Zobraziť posledné udelené hodnotenie pri opakovaných skúškach.

V letnom semestri sa študenti oboznamujú s analýzou a optimalizáciou dopytov pomocou relačnej algebry a indexov.

Normalizácia a integritné obmedzenia

Normalizácia v databázových systémoch je proces eliminovania duplicitných údajov, ktorý vedie k zlepšeniu integrity dát. V letnom semestri sa pomocou normálnych foriem (1NF, 2NF, 3NF) tento proces podrobnejšie skúma.

Integritné obmedzenia sú mechanizmy, ktoré zabezpečujú správnosť, konzistenciu a logickú platnosť údajov v databáze. Medzi ne patria napríklad:

  • PRIMARY KEY
  • FOREIGN KEY
  • UNIQUE
  • NOT NULL
  • DEFAULT
  • CHECK podmienky

Dôležitosť správne navrhnutých tabuliek spočíva nielen v efektívnom a spoľahlivom spracovaní údajov, ale aj v spoľahlivosti, konzistencii a jednoduchosti budúcej údržby systému.

Pokročilé koncepty a algoritmy

Vedieť iba základy SQL vo vývoji nestačí. Je potrebné poznať aj pokročilé techniky ako vlastné procedúry, funkcie, TRIGGER, WINDOW funkcie, VIEW, CTE, CURSOR a ďalšie.

Predmet Algoritmy v sieťach (AvS) sa zameriava na efektívne algoritmy, údaje štruktúry a programovacie techniky, ktoré sú využívané pri tvorbe programového vybavenia sieťových komunikačných uzlov. Po absolvovaní predmetu študenti dokážu aplikovať vhodné algoritmy a údaje štruktúry pre dosiahnutie požadovaného správania komunikačného uzla.

Medzi témy patria:

  • Popisné jazyky a gramatiky (ASN.1, ABNF).
  • Efektivita sieťových aplikácií v používateľskom priestore (userspace).
  • Efektivita podsystémov jadra operačného systému.
  • Algoritmy a údaje štruktúry v komunikačných uzloch: presné vyhľadávanie, prefixové vyhľadávanie, klasifikácia paketov, plánovanie paketov.

Predmet Algoritmy a údaje štruktúry 1 (AaUD1) sa zameriava na základné údaje štruktúry a ich efektívnu implementáciu. Študenti sa naučia:

  • Poznať základné údaje štruktúry a vedieť ich využiť pri riešení praktických problémov.
  • Ovládať postup efektívnej implementácie základných údajových štruktúr.
  • Posúdiť navrhnuté algoritmy z hľadiska výpočtovej a pamäťovej zložitosti.

Medzi témy patria:

  • Úvod do údajových štruktúr.
  • Správa pamäte a rekurzia.
  • Množina, pole, zoznam.
  • Zásobník, front, prioritný front.
  • Stromy.
  • Grafy.
  • Triedenia tabuliek s využitím paralelných prostriedkov.

Študenti sa tiež oboznamujú s algoritmickým problémom usporiadania, základnými algoritmami a ich zložitosťou, ako aj s podporou triedenia v databázových systémoch a na úrovni jazyka SQL.

Vizualizácia stromovej dátovej štruktúry

V rámci bakalárskej práce sa pracuje na rozšírení a zlepšení existujúcich výučbových materiálov pre predmet Algoritmy v sieťach, s cieľom sprístupniť študentom prehľadnejšie a praktickejšie študijné podklady, vrátane vizualizácie algoritmov a podpory aktívneho učenia.

Diagram UML pre návrh databázy

V rámci projektov sa očakáva návrh databázy s aspoň 4 entitnými tabuľkami, ktoré budú vhodne prepojené cudzími kľúčmi, priamo alebo pomocou prepájacích tabuliek. Tabuľky by mali byť naplnené vhodnými ilustračnými dátami.

Porovnanie časovej zložitosti rôznych triediacich algoritmov

Pri návrhu databázových systémov je dôležité zvážiť:

  • Základné pojmy v oblasti databázových systémov (DBS).
  • Proces vytvorenia databázového systému, návrh dátových a programových štruktúr.
  • Zabezpečenie konzistencie dát.
  • Použitie UML a ER diagramov.
  • Zoznam okien s predpokladanou funkcionalitou.
  • Práva a správanie jednotlivých používateľov.
  • Možnosť znovupoužiteľnosti projektu.
  • Vyvarovanie sa duplicitným dátam.

tags: #algoritmy #interneho #triedenia #fri #uniza

Populárne príspevky: