Warning
This page is located in archive.

1. konzultace

Jeden týden po této konzultaci by jste měli odevzdat zadání semestrální práce. Pokud zadaní odevzdáte v průběhu příštího týdne, můžete jej ještě po prokonzultovat.

Osnova celého předmětu:

  1. Typy architektury informačního systému, informační toky
  2. Základy modelování dat, E-R diagramy, relační model, integritní omezení, referenční integrita, normální formy
  3. Dotazování v relačních databázích, jazyk SQL, zálkadni a pokročilé dotazy, agregační funkce, vnořené dotazy
  4. Transakce, jejich serializovatelnost, zamykání, stupně izolovanosti, uváznutí transkací, jejich prevence a řešení
  5. Objektově-orientované databáze, objektově-relační mapování, JDBC, JPA 2
  6. Cursor, view, uložené procedury, triggery, indexy, efektivní implementace stromových struktur v databázích
  7. Stromové struktury v relační databázi
  8. High availability, load balancing, replikace dat
  9. GIS (geografické informační systémy), prostorové indexační techniky, datové sklady
  10. Moderní trendy databázových systémů

Literatura:

  1. Pokorný J., Valenta M.: Databázové systémy, Nakladatelství ČVUT, Praha, 2013, ISBN 978-80-01-05212-9

Osnova 1. konzultace:

  1. seznámení s předmětem (konzultace, semestrální práce, kontrolní body)
  2. podmínky zápočtu (průběžná práce: odevzdané všechny části semestrální práce, kontrolní body, včas odevzdaná semestrální práce: max 35 bodů, penalizace za podní odevzdání)
  3. podmínky úspěšného zakončení předmětu (zkouška: max 65 bodů)
  4. ukázka modelu databáze
  5. ukázka připojení k databázi
  6. konzultace možných zadání semestrální práce

Slovo úvodem

Vážení studenti, níže jsou informace k vaší první konzultaci. Dle pokynů je nezbytné, aby jste si vybrali téma své semestrální práce a popsali co bude váš systém dělat. Téma semestrální práce si můžete vymyslet sami. Celý semestr se budeme v tomto předmětu zabývat databázemi. Konkrétně vás budeme učit pracovat s OpenSource databázovým systémem PostgreSQL. V každém cvičení jsou vám prezentovány ukázky, které by vám měli pomoci zvládat výuku. Věnujte proto prosím pozornost sekci s důležitými odkazy, které budou vždy uvedeny ve spodní části.

Náměty na zadání semestrálních prací

Při vypracovávání semestrálních prací dbejte na zabezpečení dat proti zneužití.

  1. Informační systém dopravního podniku. Navrhněte strukturu databáze a naprogramujte aplikaci, která bude evidovat linky, zastávky, jízdní řády, vozidla z jednotlivých vozoven / garáží a zejména aktuální záznam o projeté trase (po zastávkách).
  2. Informační systém knihovny. Navrhněte strukturu databáze a naprogramujte aplikaci, která bude evidovat knihy, exempláře, autory, výpůjčky.
  3. Podnikový informační systém. Navrhněte strukturu databáze a naprogramujte aplikaci, která bude evidovat zakázky, objednávky, faktury, platby, pohledávky a závazky.
  4. Informační systém pojišťovny. Navrhněte strukturu databáze a naprogramujte aplikaci, která bude evidovat pojistky, klienty, pobočky, pojistná plnění, pohledávky a závazky.
  5. Informační systém školy. Navrhněte strukturu databáze a naprogramujte aplikaci, která bude evidovat předměty, učitele, žáky, zkoušky, zápočty.
  6. Rezervační systém místností.Navrhněte strukturu databáze a naprogramujte aplikaci, která bude evidovat místnosti, zájemce o rezervaci místnosti, požadavky na rezervaci a rezervace.
  7. Informační systém skladového hospodářství. Navrhněte strukturu databáze a naprogramujte aplikaci, která bude sloužit pro správu skladových zásob, evidenci objednávek, dodavatelů, zboží na skladě, aktuálních cen a pohybu zboží.
  8. Informační systém sítě supermarketů. Navrhněte strukturu databáze a naprogramujte aplikaci, která bude evidovat supermarkety, zboží na pultech a na skladě, ceny, prodeje, pokladny a vydávat účtenky, příp. generovat objednávky dalšího zboží.
  9. Finanční informační systém banky. Navrhněte strukturu databáze a naprogramujte aplikaci, která bude evidovat klienty, úvěry, konta, zůstatky, vydávání platebních karet.
  10. Burzovní informační systém. Navrhněte strukturu databáze a naprogramujte aplikaci, která bude evidovat cenné papíry, ceny vč. historie, držitele CP, makléře a uskutečněné obchody. Data lze zadávat, modifikovat a prohlížet.
  11. Letištní informační systém. Navrhněte strukturu databáze a naprogramujte aplikaci, která bude evidovat letadla, lety, linky, přílety + odlety, cestující, kapacitu linek.
  12. Evidence vědeckých projektů. Navrhněte strukturu databáze a naprogramujte aplikaci, která bude evidovat projekty, přidělené finance, úlohy, účastníky projektu, dokumenty, vyvinuté výstupy a sledovat původní plán.
  13. Armádní informační systém. Navrhněte strukturu databáze a naprogramujte aplikaci, která bude evidovat vojáky, zbraně, útvary, techniku, dovolenky a pod.
  14. Evidence obyvatelstva (zdravotní pojišťovny). Navrhněte strukturu databáze a naprogramujte aplikaci, která bude evidovat základní údaje o obyvatelstvu, tj. osobní údaje, údaje o jejich příjmech v jednotlivých měsících, odvody na zdravotní a sociální pojištění, výdaje za výkony zdrav. pojišťovny.
  15. Systém zdravotnických informací. Navrhněte strukturu databáze a naprogramujte aplikaci, která bude evidovat statistické údaje o nemocnosti obyvatelstva, tj. údaje o nemocnicích, zdravotních zařízeních, specializovaných pracovištích, provedených výkonech, jejich hrazení pojišťovnami a procentech úspěšnosti. Uživatel by měl mít možnost nadefinování vlastního analytického dotazu.
  16. Nemocniční informační systém. Navrhněte strukturu databáze a naprogramujte aplikaci, která bude evidovat základní údaje o pacientech v nemocnici, tj. osobní údaje, jejich zdravotní karty, zdrav. pojišťovnu, osobní anamnézu, průběhu hospitalizace, užitých lécích a provedených výkonech.
  17. Systém plánování výroby. Navrhněte strukturu databáze a naprogramujte aplikaci, která bude evidovat komponenty - součástky, výrobní postupy, výrobní kapacity, objednávky a dodávky a sledovat stav/vytížení výrobní linky.
  18. IS charterové letecké společnosti. Navrhněte strukturu databáze a naprogramujte aplikaci, která bude evidovat letadla, destinace, objednávky, cestující, palivo, plán oprav. Data lze zadávat, modifikovat a prohlížet.
  19. Platební karty. Evidujte karty, prostředky na účtu, zákazníky, platební místa, bankomaty včetně jejich aktuální hotovosti, transakce

Popis semestrální práce

Jako první kontrolní bod je po vás vyžadováno vytvoření vašeho zadání či zvolení navrhovaného zadání. Kromě toho, je potřeba, aby jste vypracovali dokument, v kterém několika věty popíšete k čemu bude systém sloužit. Co bude evidovat a jakou jsou jeho nejčastější případy použití. Chceme také, aby jste zmínili úskalí, která by v systému mohla být. Vypracování této části semestrální práce je povinné, nicméně není bodované. Slouží hlavně pro vás, aby jste si ujasnili co za systém vlastně vytváříte.

Typy architektury informačního systému, analýza informačních toků, základy modelování dat, E-R diagramy, relační model

  1. informační systémy (základy z pohledu databází) osnova1
    1. základní typy (klient-server, multi-tier, tenký klient)
    2. informační toky
  2. modelování dat (pro relační databáze) osnova2
    1. základy modelování dat
    2. E-R diagramy
    3. relační model

Testovací SQL

SQL nebo-li Structured Query Language se používá k ovládání relačních databází. Slouží k vytváření tabulek a práce s nimi. Základní tutoriál je například na stránce w3schools.com. Všechny SQL skripty je nutné pouštět nad funkční relační databází. Funkční relační databázi vám poskytneme, nicméně je vhodné, aby jste si PostgreSQL nainstalovali i na vaše lokální vývojové stanice. Pomůže vám to k tomu, aby jste pochopili jak databáze fungují.

CREATE TABLE osoby
(
  id serial NOT NULL,
  jmeno character varying(100),
  prijmeni character varying(100),
  CONSTRAINT pk_osoby PRIMARY KEY (id)
);

CREATE TABLE adresy (
  id serial NOT NULL,
  osoba_id integer,
  ulice character varying(200),
  CONSTRAINT pk_adresy PRIMARY KEY (id),
  CONSTRAINT fk_adresy_osoby FOREIGN KEY (osoba_id)
      REFERENCES osoby (id) MATCH SIMPLE
      ON UPDATE NO ACTION ON DELETE NO ACTION
);

INSERT INTO osoby(jmeno, prijmeni)
    VALUES ('jiri', 'novak'), ('petr', 'konecny');

INSERT INTO adresy(osoba_id, ulice)
    VALUES ((SELECT id FROM osoby WHERE jmeno='jiri'), 'dlouha'),
      ((SELECT id FROM osoby WHERE jmeno='jiri'), 'kratka'),
      ((SELECT id FROM osoby WHERE jmeno='petr'), 'u zatacky');

SELECT a.ulice FROM adresy a, osoby o WHERE a.osoba_id=o.id AND o.jmeno='jiri';

Změna hesla:

ALTER USER jmeno WITH PASSWORD 'nove_heslo'

Další důležité odkazy

courses/bd6b33dbs/1.konzultace.txt · Last modified: 2017/03/03 11:50 by komenant