---
# System prepended metadata

title: FIAE Prüfung 2020 Sommer
tags: [Ausbildung_FIAE_Prüfung]

---

# FIAE Abschlussprüfung 2020 Sommer

[Prüfung als PDF](                                                                qa<Y!) (nur intern)

:::spoiler Inhaltsverzeichnis
[toc]
:::

:::spoiler HB (gemacht im Juli 2025) GA 1

HS 1

Punkte: 17/25

a) 3/4
b) 4/4
ca) 8/15
Struktur: 5/5
Puffer: max 1./3
FAZ/SAZ (oben richtig unten fehlt) 2/5
kritischer Pfad 0/2
cb) 2/2

![WhatsApp Image 2025-07-15 at 15.22.29](https://hackmd.io/_uploads/B1LNU0m8xl.jpg)

![WhatsApp Image 2025-07-15 at 15.23.09_quer](https://hackmd.io/_uploads/HyvhI07Iee.jpg)

HS 2

![WhatsApp Image 2025-07-15 at 15.25.02](https://hackmd.io/_uploads/SkBZnAQLex.jpg)

![WhatsApp Image 2025-07-15 at 15.25.18](https://hackmd.io/_uploads/HyRQ2RXIgl.jpg)

HS 3

Puntke: 14/25

![WhatsApp Image 2025-07-15 at 16.02.08](https://hackmd.io/_uploads/BkFcyyNLlx.jpg)

![WhatsApp Image 2025-07-15 at 16.02.28](https://hackmd.io/_uploads/H1D0kJVUeg.jpg)

HS 4

Punkte: 22/25

a) 18/21

- 5/6 Entitäten wegen -1
- 4/5 Kardinalitäten -1
- PK volle Punkte
- FK volle Punkte
- Attribute -1

b) 4/4

![WhatsApp Image 2025-07-15 at 16.04.49](https://hackmd.io/_uploads/rkBH7kNUgl.jpg)

HS 5

Punkte:

![WhatsApp Image 2025-07-15 at 16.29.52](https://hackmd.io/_uploads/r1xZukVLeg.jpg)

![WhatsApp Image 2025-07-15 at 16.36.14](https://hackmd.io/_uploads/Bkf7_y4Lex.jpg)

![WhatsApp Image 2025-07-15 at 16.36.23](https://hackmd.io/_uploads/Hk44uJEUge.jpg)

:::

:::spoiler HB (gemacht im Juli 2025) GA 2

GA2 HS 1

23/25

3/4
3/4

![WhatsApp Image 2025-07-17 at 14.07.44](https://hackmd.io/_uploads/rJOpvvLLel.jpg)

6/6
11/11

![WhatsApp Image 2025-07-17 at 14.08.09](https://hackmd.io/_uploads/Bk5RwvUUxe.jpg)

GA2 HS 2

17/25

2/4
3/3
3/3
2/3

![WhatsApp Image 2025-07-17 at 14.08.33](https://hackmd.io/_uploads/H1zgdD8Uex.jpg)

7/12

![WhatsApp Image 2025-07-17 at 14.08.50](https://hackmd.io/_uploads/ByZfdvLIxe.jpg)

GA2 HS 3

2/2
?/8
1/3
3/4

![WhatsApp Image 2025-07-17 at 14.09.09](https://hackmd.io/_uploads/HJgVOwUIgg.jpg)

HB TODO Bewertung:
?/?

![WhatsApp Image 2025-07-17 at 14.09.38](https://hackmd.io/_uploads/B178_PLIxg.jpg)

GA2 HS 4

0/10
5/6

![WhatsApp Image 2025-07-17 at 14.09.53](https://hackmd.io/_uploads/rJBDdw8Lgl.jpg)

Nutzwertanalyse - wäre zu prüfen

![WhatsApp Image 2025-07-17 at 14.10.15](https://hackmd.io/_uploads/r1_duv8Uge.jpg)

GA2 HS 5

23/25

4/4
3/3
2/3

3/3
3/3
2/3
3/3

![WhatsApp Image 2025-07-17 at 14.10.26](https://hackmd.io/_uploads/HkccODILex.jpg)

:::

## GA1 1. Handlungsschritt

### GA1 1. a)

- zentraler Ort für alle firmeninterne Daten
- Aktualisierung von allen Beteiligten möglich (inkl Rechtemanagement), dadurch immer
- Wiederherstellung von früheren Versionen
- Einfache Zugänglichkeit für alle Beschäftigten
Selbstorganisierend (wenn etwas fehlt, sollte es ergänzt/geprüft werden)

### GA1 1. b)

- Inhalte verwalten (erstellen, bearbeiten, löschen)
- Inhalte veröffentlichen - u.a. für wen: öffentlich/intern, wann (ggf. automatisiert)
- Rechtemanagement - Abteilungen, Öffentlichkeitsarbeit, ...
- wer bearbeitet welche Unterseiten
- zentrale Administration - Nutzerverwaltung, Updates, SSL, etc.

### GA1 1. c)

| Vorgang | Beschreibung               | Tage | Vorgänger | Nachfolger |
| :------ | :------------------------- | :--- | :-------- | :--------- |
| A       | Istanalyse                 | 4    | -         | B          |
| B       | Grobkonzeption             | 5    | A         | C, D       |
| C       | Vorstellung Grobkonzeption | 2    | A         | E, G       |
| D       | Feinkonzeption             | 6    | A         | F          |
| E       | Installation               | 2    | A         | F          |
| F       | Anpassung                  | 4    | A         | H, I       |
| G       | Dokumentation              | 3    | A         | I          |
| H       | Planung Schulung           | 4    | C, D      | J          |
| I       | Test                       | 7    | F         | J          |
| J       | Übergabe                   | 1    | F         | -          |

Netzplan (Vorschlag RM)

```graphviz
digraph Netzplan {
    node [shape=record]
    rankdir=LR;
    
    A [label= "{0  |  4} | {A | Istanalyse}     | {4 | 0 | 0} | {0 | 4}"];
    B [label= "{4  |  9} | {B | Grobkonzeption} | {5 | 0 | 0} | {4 | 9}"];
    C [label= "{9  | 11} | {C | Vorstellung \n Grobkonzeption} | {2 | 0 | 0} | {9 | 11}"];
    D [label= "{9  | 15} | {D | Feinkonzeption} | {6 | 0 | 0} | {9 | 15}"];
    E [label= "{11 | 13} | {E | Installation}   | {2 | 2 | 0} | {15| 17}"];
    F [label= "{15 | 19} | {F | Anpassung}      | {4 | 2 | 0} | {19| 23}"];
    G [label= "{11 | 14} | {G | Dokumentation}  | {3 | 6 | 0} | {17| 20}"];
    H [label= "{19 | 23} | {H | Planung \n Schulung } | {4 | 6 | 2} | {25 | 29}"];
    I [label= "{19 | 26} | {I | Test}           | {7 | 6 | 2} | {25 | 32}"];
    J [label= "{26 | 27} | {J | Übergabe}       | {1 | 2 | 2} | {29 | 30}"];
    
    T [label = "{FAZ|FEZ} | {Vorgang|Beschreibung} | {Dauer|GP|FP} | {SAZ|SEZ}"]
               
    A -> B
    B -> {rank=same; C; D}
    C -> {rank=same; E; G}
    D -> F
    E -> F
    F -> {rank=same; H; I}
    G -> I
    H -> J
    I -> J
}
```

### GA1 1. ca)

kritischer Pfad: **A, B, C, E, F, H, J**

### GA1 1. cb)

Da der Puffer am Ende bei 2 Tagen liegt (Vorgänge nach der Installation), verschiebt sich das Projektende um 1 Tag und der Puffer wird aufgebraucht.

## GA1 2. Handlungsschritt

Hicham Lösung in PHP

```php

<?php

$unkomprimiert = ["Z", "Z", "Z", "Z", "7", "7", "7", "7", "7", "7", "7","7","7","7","M", "P", "P", "P", "P", "P", "H", "H"];
$komprimiert = [];
$laenge = count($unkomprimiert);
$zaehler = 1;

for ($i = 1; $i < $laenge; $i++) {

    if ($unkomprimiert[$i] === $unkomprimiert[$i-1]) {
        $zaehler++;
    } else {
        if ($zaehler > 4) {
            $komprimiert[] = '%' . $zaehler . $unkomprimiert[$i-1];
        } else {
            for ($j = 0; $j < $zaehler; $j++) {
                $komprimiert[] = $unkomprimiert[$i-1];
            }
        }
        $zaehler = 1;
    }
}
if ($zaehler > 4) {
    $komprimiert[] = '%' . $zaehler . $unkomprimiert[$laenge - 1];
} else {
    for ($j = 0; $j < $zaehler; $j++) {
        $komprimiert[] = $unkomprimiert[$laenge - 1];
    }
}

echo implode("", $komprimiert);

```

## GA1 3. Handlungsschritt

### GA1 3. a)

1. View -> Controller
  D View informiert Controller über Nutzereingabe
2. Controller -> Model
  A Controller forder Model zu Zustandsänderung auf
3. Model -> View
  B Model informiert View über Zustandsänderung
4. View -> Model
  C View fordert die geänderten Daten vom Model zur Ansicht für den Benuter an

### GA1 3. b)

```plantuml
skinparam style strictuml

abstract "<<abstract>>\nModel" as M { 
    - observers: Observer[] 
    + setData(int, String): void {abstract}
    + getData(): String[]
    + addObserver(Observer): void
    # notifyObserver(): void
}

interface "<<interface>>\nObserver" as O {
    + update(): void
}

class "PatientModel" as PM extends M  {
    
}

class "TabelView" as TV implements O {
    - model: Model
    + TableView(model: Model)
    + update() #red
    + display(): void
}

M  *--right O
M  -->      TV
```

## GA1 4. Handlungsschritt

Rel. Tabellenmodell in 3. NF für ein Abrechnungsmodell im Krankenhaus auf Basis zweier Übersichten erstellen. Inkl. PK und FK

:::spoiler Aufgabenstellung

medizinische Leistungen:

![grafik](https://hackmd.io/_uploads/S1ZWdjjrgx.png)

nichtmedizinische Leistungen
![grafik](https://hackmd.io/_uploads/r1WrOojHxg.png)

:::

### GA1 4. a)

```plantuml
hide circle
scale 0.9

entity "Patient" as P {
    P_Nummer (PK)
    --
    Name
    Straße
    Hausnummer
    PLZ
    Stadt
}

entity "Arzt" as A {
    A_Nummer (PK)
    --
    Name
    Faktor
}

entity "Leistung_Med" as LM {
    LM_Nummer (PK)
    --
    Datum
    A_Nummer (FK)
    P_Nummer (FK)
    LMArt_Nummer (PK)
}

entity "Leistung_Zusatz" as LZ {
    LZ_Nummer (PK)
    --
    Datum_von
    Datum_bis
    P_Nummer (FK)    
    LZArt_Nummer (FK)
}

entity "Leistung_Med_Art" as LMA {
    LMArt_Nummer (PK)
    --
    Bezeichnung
    Preis
}

entity "Leistung_Zusatz_Art" as LZA {
    LZArt_Nummer (PK)
    --
    Bezeichnung
    Tagespreis    
}
' Beziehungen '
P   "1" -- "n" LM
P   "1" -- "n" LZ
A   "1" -- "n" LM
LMA "1" -- "n" LM
LZA "1" -- "n" LZ
```

### GA1 4. b)

Der Teil, der man loescht, ist innerhalb ein foreign key,was darf man nicht loeschen. man muss zum Beispiel zuerst Alter Table Tablename drop foreign key keyname benutzen um foreign key zu loeschen.

## GA1 5. Handlungsschritt

```plantuml
hide circle
left to right direction

entity "Patient" as P {
    Pat_ID (PK)
    --
    Pat_Name
    Pat_Vorname
    Pat_GebDatum
}

entity "Patien_Aufenthalt" as PA {
    PatAuf_ID (PK)
    PatAuf_PatID (FK)
    PatAuf_ZID (FK)
    --
    PatAuf_AufnahmeDatum
    PatAuf_EntlassDatum
}

entity "Zimmer" as Z {
    Z_ID (PK)
    Z_BettID (FK)
    Z_StatID (FK)
    --
    Z_ZimmerNummer
}

entity "Bett" as B {
    Bett_ID (PK)
    --
    Bett_Nummer
}

entity "Station" as S {
    Stat_ID (PK)
    --
    Stat_Station
}

' Beziehungen '
P  "1" -- "n" PA
Z  "1" -- "m" PA
B "1" -- "n" Z
S "1" -- "n" Z

```

:::spoiler Daten als SQL

```sql=
-- ----------------------------
-- Table structure for `bett`
-- ----------------------------
DROP TABLE IF EXISTS `bett`;
CREATE TABLE `bett` (
  `bett_id` varchar(20) DEFAULT NULL,
  `bett_nummer` varchar(20) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

-- ----------------------------
-- Records of bett
-- ----------------------------
INSERT INTO `bett` VALUES ('1', '00347783');
INSERT INTO `bett` VALUES ('2', '00448637');
INSERT INTO `bett` VALUES ('3', '00358999');
INSERT INTO `bett` VALUES ('4', '07785688');
INSERT INTO `bett` VALUES ('5', '55800987');

-- ----------------------------
-- Table structure for `patient`
-- ----------------------------
DROP TABLE IF EXISTS `patient`;
CREATE TABLE `patient` (
  `pat_id` varchar(20) DEFAULT NULL,
  `pat_name` varchar(20) DEFAULT NULL,
  `pat_vorname` varchar(20) DEFAULT NULL,
  `pat_gebdatum` date DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

-- ----------------------------
-- Records of patient
-- ----------------------------
INSERT INTO `patient` VALUES ('1', 'muller', 'peter', '1966-02-06');
INSERT INTO `patient` VALUES ('2', 'trostan', 'jannick', '1957-02-15');
INSERT INTO `patient` VALUES ('3', 'sardon', 'sandra', '1988-03-31');
INSERT INTO `patient` VALUES ('4', 'grenzfeld', 'thorsten', '1990-06-04');
INSERT INTO `patient` VALUES ('5', 'neuhaus', 'anne', '1988-06-01');

-- ----------------------------
-- Table structure for `patient_aufenthalt`
-- ----------------------------
DROP TABLE IF EXISTS `patient_aufenthalt`;
CREATE TABLE `patient_aufenthalt` (
  `patauf_id` varchar(20) DEFAULT NULL,
  `patauf_patid` varchar(20) DEFAULT NULL,
  `patauf_zid` varchar(20) DEFAULT NULL,
  `patauf_aufnahmedatum` date DEFAULT NULL,
  `patauf_entlassdatum` date DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

-- ----------------------------
-- Records of patient_aufenthalt
-- ----------------------------
INSERT INTO `patient_aufenthalt` VALUES ('1', '2', '2', '2020-02-07', '2020-02-24');
INSERT INTO `patient_aufenthalt` VALUES ('2', '1', '2', '2020-02-01', '2020-02-26');
INSERT INTO `patient_aufenthalt` VALUES ('3', '3', '2', '2020-02-26', '2020-02-28');
INSERT INTO `patient_aufenthalt` VALUES ('4', '2', '3', '2020-04-11', '2020-04-30');
INSERT INTO `patient_aufenthalt` VALUES ('5', '4', '3', '2020-05-01', '2020-05-08');
INSERT INTO `patient_aufenthalt` VALUES ('6', '2', '1', '2020-05-02', '2020-05-18');

-- ----------------------------
-- Table structure for `station`
-- ----------------------------
DROP TABLE IF EXISTS `station`;
CREATE TABLE `station` (
  `stat_id` varchar(20) DEFAULT NULL,
  `stat_station` varchar(20) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

-- ----------------------------
-- Records of station
-- ----------------------------
INSERT INTO `station` VALUES ('1', 'innere');
INSERT INTO `station` VALUES ('2', 'kardiologie');
INSERT INTO `station` VALUES ('3', 'onkologie');

-- ----------------------------
-- Table structure for `test`
-- ----------------------------
DROP TABLE IF EXISTS `test`;
CREATE TABLE `test` (
  `id` varchar(20) NOT NULL,
  `name` varchar(20) NOT NULL,
  `birth` date NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

-- ----------------------------
-- Records of test
-- ----------------------------
INSERT INTO `test` VALUES ('1', 'zhang', '2022-06-23');
INSERT INTO `test` VALUES ('2', 'zhang', '2022-06-22');
INSERT INTO `test` VALUES ('3', 'li', '2022-06-25');
INSERT INTO `test` VALUES ('1', 'li', '2022-06-22');
INSERT INTO `test` VALUES ('2', 'wang', '2022-06-23');

-- ----------------------------
-- Table structure for `zimmer`
-- ----------------------------
DROP TABLE IF EXISTS `zimmer`;
CREATE TABLE `zimmer` (
  `z_id` varchar(20) DEFAULT NULL,
  `z_bettid` varchar(20) DEFAULT NULL,
  `z_statid` varchar(20) DEFAULT NULL,
  `z_zimmernummer` varchar(20) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

-- ----------------------------
-- Records of zimmer
-- ----------------------------
INSERT INTO `zimmer` VALUES ('1', '2', '1', '212');
INSERT INTO `zimmer` VALUES ('2', '3', '1', '212');
INSERT INTO `zimmer` VALUES ('3', '4', '1', '214');

-- ----------------------------
-- Table structure for `zimmer_abfrage`
-- ----------------------------
DROP TABLE IF EXISTS `zimmer_abfrage`;
CREATE TABLE `zimmer_abfrage` (
  `pat_name` varchar(20) DEFAULT NULL,
  `pat_vorname` varchar(20) DEFAULT NULL,
  `pat_gebdatum` date DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

-- ----------------------------
-- Records of zimmer_abfrage
-- ----------------------------
INSERT INTO `zimmer_abfrage` VALUES ('grenzfeld', 'thorsten', '1990-06-04');
INSERT INTO `zimmer_abfrage` VALUES ('neuhaus', 'anne', '1988-06-01');
INSERT INTO `zimmer_abfrage` VALUES ('sardon', 'sandra', '1988-03-31');
INSERT INTO `zimmer_abfrage` VALUES ('muller', 'peter', '1966-02-06');
INSERT INTO `zimmer_abfrage` VALUES ('trostan', 'jannick', '1957-02-15');
```

:::

### GA1 5. a)

```sql=
SELECT
    Pat_Name,
    Pat_Vorname,
    Pat_GebDatum 
FROM 
    Patient 
ORDER BY
    year(now()) - year(Pat_GebDatum), 
    Pat_Name,
    Pat_Vorname DESC;
```

Es könnte noch `SELECT "Zimmer Abfrage";` vorangestellt werden, um die Ausgabe wie im Beispiel zu vervollständigen.

### GA1 5. b)

```sql=
SELECT
  PatAuf_AufnahmeDatum,
  PatAuf_EntlassDatum,
  DATEDIFF(PatAuf_EntlassDatum,PatAuf_AufnahmeDatum) AS Dauer,
  Z_ZimmerNummer,
  Stat_Station,
  Bett_Nummer 
FROM
  Patient_Aufenthalt, 
  Zimmer, 
  Station, 
  Bett 
WHERE 
  Z_ID = PatAuf_ZID 
  AND Bett_ID = Z_BettID 
  AND Stat_ID = Z_StatID 
  AND PatAuf_AufnahmeDatum >= '2020.2.1' 
  AND PatAuf_EntlassDatum <= '2020.2.29' 
  AND PatAuf_EntlassDatum IS NOT NULL;
```

### GA1 5. c)

```sql=
SELECT 
  Bett_Nummer 
FROM 
  Bett b
WHERE 
  Bett_ID NOT IN (
  SELECT
      Z_BettID 
  FROM 
      Zimmer z inner JOIN Patient_Aufenthalt pa 
      ON 
      z.Z_ID = pa.PatAuf_ZID
  WHERE 
      pa.PatAuf_AufnahmeDatum <= '2020.4.21' 
  AND 
      pa.PatAuf_EntlassDatum >= '2020.04.21'
  );
```

## GA2 1. Handlungsschritt

Planungsdaten:

- Roboter Anschaffungskosten 240.000 Euro
- 8 (Roboter)-Arbeitsplätze (8 * 240.000 Euro = 1.920.000)
- 1000 m² Nutzfläche
- Netzwerk: 6 Accesspoints, POE-Switche, netzwerküberwachte Ladestationen
- Qualitätsprüfung mit automatischen Messungen

### GA2 1. a) Stakeholder

Stakeholder: Interessen

- Mitarbeiter: Skeptisch bzgl. der ansteigenden Automatisierung und des Anpassungsdrucks
- Gewerkschaften: Kritische Haltung aufgrund möglichen Personalabbaus und schwindem Einfluss im Unternehmen
- Konkurrenten: Notwendigkeit ebenfalls mehr zu automatisieren, um wettbewerbsfähig zu bleiben
- Kapitalgeber(Banken, Investoren): Interesse an höherer Produktivität und mehr Dividende bzw. besserer Finanzstärke 
- ...

### GA2 1. b) SWOT-Analyse

**Stärken**

- junges aufgeschlossenes Team, welches Einsatz von Robotern positiv gegenüber steht

**Schwächen**

- Das Image des Unternehmens ist bisher nicht gut ausgebaut und steht für veraltete Produkte/Prozesse

**Chancen**

- Auf Basis der Teilautomaisierung kann eine bessere Verbindung mit Lieferanten und Kunden erfolgen (bspw. Schnittstellen zu ERP etc.)

**Risiken**

- Konkurrenten haben Produktion voll automatisiert, Kapazität erhöht/Preise gesenkt
- negative Berichterstattung in Presse/Öffentlichkeit

### GA2 1. c) Englisch

- Kraftbegrenzung der Roboter
- Dank Sensoren verlangsamte Abläufe, wenn Mensch in der Nähe bzw. Stop bei Berührung
- Nutzer können den Roboter selbst programmieren/einstellen

### GA2 1. d) Finanzierung

**Raten- und Abzahlungsdarlehen** für 1 Roboter

- 4 Jahre (4 fester Tilgungsraten)
- 5 % Zins

Tilgungsrate: 240.000 : 4 = 60.000 Euro

| Jahr | Schuld   | Zinsen   | Tilgung  |Kreditrate|Restschuld|
| ---- | -------: | -------: | -------: | -------: | -------: |
| 1    | 240.000  | 12.000   | 60.000   | 72.000   | 180.000  |
| 2    | 180.000  | 9.000    | 60.000   | 69.000   | 120.000  |
| 3    | 120.000  | 6.000    | 60.000   | 66.000   | 60.000   |
| 4    | 60.000   | 3.000    | 60.000   | 63.000   | 0        |
|      |**gesamt**| 30.000   |240.000   |270.000   |          |

- 30.000 Euro Zinsen (+240.000 Tilgung) = 270.000 Euro

**Leasing** für 1 Roboter

- 4 Jahre
- monatlicher Leasingrate von 6.000 Euro
- Restwert 16.000 Euro (wenn Übernahme)

Leasing:
- 6.000 * 12 = 72.000 Euro pro Jahr
- 4 * 72.000 Euro = 288.000 Euro (+16.000 Restwert)

Was ist wirtschaftlicher? 

(RM: wäre noch zu prüfen - Vergleich 30.000 Euro Zinsen mit Leasingrate wäre besser, ist hier aber schwieriger)

RM Vorschlag:
270.000 = 100 %
288.000 = x %
x = 106,667

Raten-Tilgung ist wirtschaftlicher, da Leasing 6,67 % höhere Kosten verursacht.

## GA2 2. Handlungsschritt Elektrotechnik

### GA2 2. a) Virtualisierung

aa) Server-Virtualisierung

ab) 2 Vor- und Nachteile virtuelle gegenüber physiche Server

- :heavy_plus_sign: einfacher zu konfigurieren und aufzusetzen (VM-Ware/Docker etc.)
- :heavy_plus_sign: günstiger, da je Hardware extrem viele virtuelle Server aufgesetzt werden können
- :heavy_minus_sign: Direkter Zugriff auf einen physischen Rechner
- :heavy_minus_sign: (HB) wenn ein physicher ausfällt, sind viele virtuelle Server betroffen
- :heavy_minus_sign: Zum Einrichten von virtuellen Servern sind zusätzliche Fähigkeiten/Kenntnisse notwendig (Lernkurve)

ac) Hardware die Virtualisiert werden kann

- Prozessor(kerne), Leistung
- Ram
- Festplatte

### GA2 2. b)

Vorteile virtueller Arbeitsplatzrechner:

- :heavy_plus_sign: Bei Problemen (Fehlern, Abstürzen etc.) ist der Server in Sekunden wieder in der Ausgangskonfiguration verfügbar
- :heavy_plus_sign: Alle haben die gleiche Konfiguration (bzw. können sehr schnell auf gleiches Niveau angepasst werden)
- :heavy_plus_sign: Einfachere Erweiterung/Skalierung um weitere Rechner bzw. Arbeitsplätze
- :heavy_plus_sign: Es muss nicht die Hardware von 20 Servern gewartet werden, sondern nur 1 zentraler leistungsstarker Server und einfache "Terminals"

### GA2 2. c)

1) Core-Switch: Verbindet verschiedene Netzwerkelemente miteinander (schnelle Datenübertragung)
2) Proxyserver: Vermittler zwischen Computer/Netzwerk und dem Internet. Dient der Sicherheit, Anonymisierung, etc. der hinter dem Proxy liegenden PCs/Netzwerke
3) Domain Controller: Authentifiziert Benutzer (Nutzername/Passwort) in einem Netzwerk
4) DMZ: Demilitarisierte Zone ist ein sicherer Bereich hinter der Firewall/Proxy bzw. ein Puffer; Schützt das interne Netzwerk

## GA2 3. Handlungsschritt Netzwerktechnik

### GA2 3. aa)

Scans/Aufnamen pro Tag: 800

### GA2 3. ab)

b) Datenmenge pro Tag berechnen

Gegeben:

    Fläche: 50 cm × 30 cm

    Auflösung: 400 dpi × 400 dpi

    Farbtiefe: 24 Bit = 3 Byte

    1 inch = 2,54 cm

1. Umrechnung in Zoll:

    50 cm = 50 ÷ 2,54 ≈ 19,69 inch

    30 cm = 30 ÷ 2,54 ≈ 11,81 inch
    → Fläche in Inch²: 19,69 × 11,81 ≈ 232,54 inch²

2. Pixelanzahl pro Inch² bei 400 dpi:

    400 × 400 = 160.000 Pixel pro Inch²

3. Gesamtanzahl Pixel pro Scan:

    232,54 inch² × 160.000 = 37.206.400 Pixel

4. Speicher pro Scan (wegen 3 Byte Farbtiefe):

    37.206.400 × 3 = 111.619.200 Byte

5. Umrechnung in GiB

89.295.360.000 / 2^30 = 84GB

### GA2 3. ba)

USV - 3 Gefährdnungen Server ohne USV

- Datenverlust
- Hardwaredefekt
- Inkonsitente Daten (bspw. verschiedener Datenbankserver/RAID-Systeme)
- Überspannungsschutz

### GA2 3. bb)

USV Beispielanwendung

Eine USV gleicht Spannungsschwankungen aus und lässt die dahinter liegende Hardware mit einem stabilen (bspw. 50 Hz) Strom.
Bei einem Stromausfall überbrückt die USV die Zeit bis der Strom wieder da ist oder ein Notstromaggregat anspringt. 

### GA2 3. bc)

Berechnungen:

- Leistung: 7500W
- Gesamtkapazität 8 Akkus: 1600 Ah
- elektrische Energie (8 Akkus bei 12 V): 19200 Wh (W = Q * U = 1600Ah * 12V)
- Überbrückungszeit USV: 2 Std 34 Min (19200Wh/7500W)

## GA2 4. Handlungsschritt

### GA2 4. a) Entscheidungstabelle

aa) 2 Bedingungen in Entscheidungstabelle
ab) 4 mögliche Aktionen
ac)

:::danger
**TODO:** Aufgabe und Ablauf in der BBS nachfragen.
:::

|                                          | Re | ge | ln |    |
| ---------------------------------------- | -- | -- | -- | -- |
| **Bedingungen**                         | R1 | R2 | R3 | R4 |
| Auftrag liegt vor                        | 1  | 1  | 0  | 0  |
| Akku ist zu 100% geladen                 | 1  | 0  | 1  | 0  |
| **Aktionen**                            | R1 | R2 | R3 | R4 |
| Roboter laden bis 100 %                  | 1  | 0  | 1  | 0  |
| Roboter warten auf nächsten Auftrag      | 1  | 0  | 1  | 0  |
| ...                                      | 1  | 0  | 1  | 0  |
| ...                                      | 1  | 0  | 1  | 0  |

### GA2 4. b) Datenformate

CSV
~ Inhalte werden durch `,` oder `;` getrennt. Eher für tabellarische Inhalte geeignet.

XML
~ Inhalte werden von Tags `<...>Inhalt</...>` umschlossen und sind in Baumstruktur zusammensstellbar. Es können zusatzlich Regeln für die Struktur festgelegt werden.

### GA2 4. c) Nutzwertanalyse

ca)

| Kriterien       | Gewicht | Software A |     | Software B |     |
| --------------- | ------: | ---------- | --: | ---------- | --: |
| Funktionalität  | 6       | 2          | 12  | 1          | 6   |
| Effizienz       | 1,5     | 2          | 3   | 1          | 1,5 |
| Zuverlässigkeit | 2,5     | 1          | 2,5 | 2          | 5   |
| **Ergebnis**   | 10      |            | 17,5|            | 12,5 |

cb)

Software A sollte gekauft werden.

## GA2 5. Handlungsschritt IT Sicherheit

### GA2 5. a) Schutzmaßnahmen

- Auch mit angemeldetem PC sollten kritische Inhalte (Statistiken Vertrieb) geschützt sein (Login)
- Einsatz von Fido-Stick/Dongel (inkl. Schulung) um Nutzer davon abzuhalten, den PC in angemeldeten Zustand zu verlassen
- Schulung: Tastenkürzel <kbd>Win</kbd> + <kbd>L</kbd> für Lock-Screen beibringen und für Sicherheit sensibilisieren

### GA2 5. b) Angriffe

ba) Phising

Durch Kontakte (E-Mail, soz. Medien, Telefon) oder über Webseiten wird von Kriminellen versucht an vertrauliche Daten (Passwörter, Zugangsdaten) zu kommen oder ggf. kritische Software (Trojaner etc.) zu installieren.

bb) Hacking

Kriminelle nutzen Sicherheitslücken in Software aus, um ohne Anmeldedaten in Computer einzubrechen (die Wege dazu können recht vielfältig sein).

### GA2 5. c) Passwörter

ca)

Je länger ein Passwort ist, desto schwieriger ist es bspw. durch Brute-Force-Attaken zu erraten.

cb)

Früher bestanden PW oft nur Zahlen (0..9) oder Buchstaben (a..zA..Z).
Durch Sonderzeichen wird der verwendete Zeichensatz für alle mind. 12 Zeichen erweitert und die Sicherheit erhöht (Aufwand zum Knacken gesteigert).

cc)

10 <sup>5</sup> = 100.000

### GA2 5. d) Angriffe

da)

Angreifer können so das Passwort kaum erraten. Ohne die zeitliche Begrenzung wäre wie bspw. bei einer .zip-Datei mehrere Millionen Prüfungen, ob das PW stimmt pro Sekunde möglich. Mit der langen Zeit können nur wenige dutzend Passwörter pr Stunde getestet werden.

db)

(durch KI nicht mehr aktuell)
Software die sich automatisiert registeriert fällt es schwer das Captcha korrekt einzugeben.

---

:::spoiler sonstiges

ChatGPT 4o Vorschlag HS 2

```graphviz
digraph Netzplan {
    node [shape=record];
    rankdir=LR;

    A [label="{0|4} | {A|Istanalyse} | {4|0|0} | {0|4}"];
    B [label="{4|9} | {B|Grobkonzeption} | {5|0|0} | {4|9}"];
    C [label="{9|11} | {C|Vorstellung der \n Grobkonzeption} | {2|0|0} | {9|11}"];
    D [label="{9|15} | {D|Feinkonzeption} | {6|0|0} | {9|15}"];
    E [label="{11|13} | {E|Installation} | {2|2|0} | {15|17}"];
    F [label="{15|19} | {F|Anpassung} | {4|2|0} | {19|23}"];
    G [label="{11|14} | {G|Dokumentation} | {3|6|0} | {17|20}"];
    H [label="{19|23} | {H|Planung \n Schulungsmaßnahmen} | {4|6|2} | {25|29}"];
    I [label="{19|26} | {I|Tests} | {7|6|2} | {25|32}"];
    J [label="{26|27} | {J|Übergabe} | {1|2|2} | {29|30}"];

    A -> B;
    B -> C;
    B -> D;
    C -> E;
    C -> G;
    D -> F;
    E -> F;
    F -> H;
    F -> I;
    G -> I;
    H -> J;
    I -> J;
}
```

HS 4 a)
Vorschlag RM vereinfacht

```plantuml
left to right direction     
hide circle

entity "Patient" as P {
    P_Nummer (PK)
    --
    Name
    Straße
    Hausnummer
    PLZ
    Stadt
}

entity "Arzt" as A {
    A_Nummer (PK)
    --
    Name
    Faktor
}

entity "Leistung_Med" as LM {
    LM_Nummer (PK)
    --
    Bezeichnung
    Datum    
    Preis
    A_Nummer (FK)
    P_Nummer (FK)
}

entity "Leistung_Zusatz" as LZ {
    LZ_Nummer (PK)
    --
    Bezeichnung
    Tagespreis
    Datum_von
    Datum_bis
    P_Nummer (FK)
} 

' Beziehungen '
P "1" -- "n" LM
P "1" -- "n" LZ
A "1" -- "n" LM
```

Texte zur HS 5

a)
**Erklaeren:** Die 'order by'-Sortierung wird entsprechend der Reihenfolge der Sortierobjekte nach 'order by' sortiert. Bei dieser Frage wird das Pat_Gebdatum, das 'order by' am nächsten liegt, zuerst sortiert(HIER DARF MAN NICHT ALS:order by Pat_GebDatum schreiben,weil bei Geburstagsdatum aufsteigende sortieren ist zum Beispiel:01.01.1955,01.09.1988,01.09,1996), nur der Geburtsjahr(WICHTIG:NUR AUF JAHR KONZENTRIEREN NICHT AUF MONAT UND TAG) des Patienten wird nach dem ersten wiederholt Name des Nachnamens Alphabetische Sortierung, bei Wiederholung des Anfangsbuchstabens des Geburts- und Nachnamens wird nach dem Anfangsbuchstaben des Vornamens
sortiert

b)

**Erklaeren:** als Dauer kann man verstehen: Dauer=EntlassDatum-AufnahmeDatum, hier verlangt Dauer wie viel Tage Patienten geblieben, deswegen benutzt man DATEDIFF(PatAuf_EntlassDatum,PatAuf_AufnahmeDatum)as Dauer. Der von der Frage angeforderte Datumsbereich ist also Februar 2020，deswegen PatAuf_AufnahmeDatum>='01.02.2020' and 
PatAuf_EntlassDatum<='29.02.2020'. PatAuf_EntlassDatum is not null heisst Patienten sind schon entlasst werden, wenn die Patienten nicht entlasst werden ,soll PatAuf_EntlassDatum null sein.

c)

**Erklaeren:** Wenn das Aufnahmedatum vor dem 21. April und das Entlassungsdatum vor dem 21. April oder das Krankenhausdatum vor dem 21. April und das Entlassungsdatum vor dem 21. April liegt, muss das Bett leer sein. Umgekehrt, wenn das Aufnahmedatum kleiner oder gleich dem 21.04 und das Entlassungsdatum größer oder gleich dem 21.04 ist, ist das Bett definitiv nicht leer. Solange also die „bett_id“ nicht in dem Zeitraum liegt, in dem das Aufnahmedatum kleiner oder gleich dem 21.04 und das Entlassungsdatum größer oder gleich dem 21.04 ist, kann das Ergebnis erhalten werden.

:::
