WebZdarma.cz

Projekt – Databázové systémy 2

 

Autoři: Pavel Lizec  Petr Trella Tomáš Trýb

Fakulta: PEF

Obor: Info

Ročník: 3

Rok: 2003/04

 

 

1. Úvod

 

Pro svou práci jsme si vybrali problémovou doménu jednoduché databáze, kterou využívají pracovníci Centra Nádorové Cytogenetiky (dále jen CNC) ve fakultní nemocnici na Vinohradech.

 

Pacienti sem přicházejí z nemocnic s předpokládanou diagnózou a úkolem CNC je tuto diagnózu potvrdit či vyvrátit. K práci jim tak slouží jednoduchá databáze, která eviduje pacienty, nemocnici odkud k nim přišli, lékaře, který je posílá na vyšetření, výsledky vyšetření a vyšetřujícího pracovníka CNC.

 

 

 

 

2. Relační datový model

 

Konceptuální ER diagram                    Implementační ER diagram

 

                

 

SQL skript a naplnění tabulek

 

3. Objektový datový model

 

UML diagram

 

 

 

Skript ve SmallTalku pro vytvoření databáze

Skript pro vložení dat v Gemstone

 

4. Dotazy

 

  1. Vyber všechny pacienty (příjmení), kteří jsou ženského pohlaví:

SQL: SELECT prijmeni FROM Pacient WHERE Pohlavi=’F’;

GS:    (Pacients select {:p|p.pohlavi=’F’}) collect: {:m|m.prijmeni}

 

  1. Kteří doktoři poslali na vyšetření pacienty s kódem diagnózy C92.1:

SQL: SELECT prijmeni_lek FROM Lekar, Pacient WHERE Lekar.ID_lekar=Pacient.ID_lekar AND Pacient.kod_diag=’C92.1;

         GS:   (Pacients select: {:a|a.kod_diag=’C92.1’}) collect: {:b|b.lekar.prijmeni}

 

  1. Vypiš všechny pacienty, muže, kteří jsou zdraví:

SQL: SELECT Pacient.Prijmeni FROM Pacient, Vysetreni WHERE Pacient.ID_pacient=Vysetreni.ID_pacient AND Vysetreni.Kod_vysetreni=’46XY’;

            GS:   (Vysetrenis select: {:a|a.kod_vysetreni =’46XY’}) collect: {:b|b.pacient.prijmeni}

 

  1. Vyberte lékaře, kteří slouží ve Fakultní nemocnici na Vinohradech:

SQL: SELECT prijmeni FROM Lekar WHERE ID_nemocnice=(SELECT ID_nemocnice FROM nemocnice WHERE nazev=’FN Vinohrady’);

            GS:  (Nemocnices select: {:a|a.nazev =’FN Vinohrady’} collect: {:b|b.lekar.prijmeni}