Databázové systémy

Bonus č. 1

Nižšie je uvedená zjednodušená implementácia časti informačného systému pre evidenciu počítačových učební. Implementácia je v jazyku C++.

Tento systém eviduje umiestnenie počítačov v učebniach. Ďalej eviduje inštaláciu softvéru v účebniach. Pritom predpokladáme, že počítače v jednej učebni majú nainštalovaný rovnaký softvér.

Podľa implementácie vytvorte entitno relačný model.

struct Ucebna {
    string nazov;
    string budova;
    int poschodie;
};

struct Pocitac {
    unsigned id;   // evidencne cislo
    string procesor;
    unsigned ram;  // velkost RAM v GB
    unsigned disk; // velkost disku v GB
    Ucebna *umiestnenie;
};

struct Softver {
    string nazov;
    string vyrobca; // vyrobca, ak ma nazov
    string url;     // linka na produkt alebo projekt (Uniform Resource Locator)
};

struct Instalacia { // instalacia softveru v ucebni
    Ucebna *ucebna;
    Softver *softver;
};

Príklad použitia:

int main() {
    Ucebna cpu{"CPU", "C", 1};
    Ucebna c117{"C117", "C", 1};

    Pocitac p1{1001, "intelger 13700H",   8, 2000, &cpu};
    Pocitac p2{1002, "intelger 1340P",   16, 1000, &cpu};
    Pocitac p3{1003, "intelger 13700H",   8, 2000, &cpu};
    Pocitac p4{1004, "intelger 13700H", 128, 2000, &cpu};
    Pocitac p5{1005, "ander E1-2500",     8, 2000, &c117};
    Pocitac p6{1006, "ander E1-2500",     8, 2000, &c117};
    Pocitac p7{1007, "ander ryzej 1800", 16, 1000, &c117};

    Softver office{"LibreOffice", "The Document Foundation Planet", "https://www.libreoffice.org"};
    Softver postgresql{"PostgreSQL", "", "https://www.postgresql.org"};
    Softver eclipse{"Eclipse", "Eclipse Foundation", "https://eclipseide.org"};
    Softver netbeans{"Apache NetBeans", "Apache Software Foundation", "https://netbeans.apache.org//front/main/"};

    Instalacia instalaciaCpuOffice     {&cpu,  &office};
    Instalacia instalaciaCpuEclipse    {&cpu,  &eclipse};
    Instalacia instalaciaCpuNetbeans   {&cpu,  &netbeans};
    Instalacia instalaciaC117Office    {&c117, &office};
    Instalacia instalaciaC117Postgresql{&c117, &postgresql};

    // ...

    return 0;
}

Riešenie

Za riešenie môžete dostať 1 bod.