# 1. Abschlussprüfung # ITS Zusammenfassungen für das Fach ITS vorbereitend für die Abschlussprüfung Teil 1. # Strukturierte Verkabelung Eine strukturierte Verkabelung oder universelle Gebäudeverkabelung (UGV) ist ein einheitlicher Aufbauplan für eine zukunftsorientierte und anwendungsunabhängige Netzwerkinfrastruktur, auf der unterschiedliche Dienste (Sprache oder Daten) übertragen werden. Damit sollen teure Fehlinstallationen und Erweiterungen vermieden und die Installation neuer Netzwerkkomponenten erleichtert werden. ##### Bestandteile einer strukturierten Verkabelung - standardisierte Komponenten, wie Leitungen und Steckverbindungen - hierarchische Netzwerk-Topologie (Stern, Baum, …) - Empfehlungen für Verlegung und Installation - standardisierte Mess-, Prüf- und Dokumentationsverfahren ##### Ziele einer strukturierten Verkabelung - Unterstützung aller aktuellen und zukünftigen Kommunikationssysteme, **strukturierte anwendungsneutrale Verkabelung** - Kapazitätsreserve hinsichtlich der Grenzfrequenz - das Netz muss sich gegenüber dem Übertragungsprotokoll und den Endgeräten neutral verhalten. Es ist egal, wie wir das Gerät verbinden, das Netzwerk sollte am Ende einfach funktionieren - flexible Erweiterbarkeit - Ausfallsicherheit durch vermaschte und/oder eine baumstrukturierte Verkabelung - Datenschutz und Datensicherheit müssen realisierbar sein - Einhaltung existierender Standards ##### Primärverkabelung - Geländeverkabelung Der Primärbereich wird als Campusverkabelung oder Geländeverkabelung bezeichnet. Er sieht die Verkabelung von einzelnen Gebäuden untereinander vor. Der Primärbereich umfasst meist große Entfernungen, hohe Datenübertragungsraten, sowie eine geringe Anzahl von Stationen. ##### Sekundärverkabelung - Gebäudeverkabelung Der Sekundärbereich wird als Gebäudeverkabelung oder Steigbereichsverkabelung bezeichnet. Er sieht die Verkabelung von einzelnen Etagen und Stockwerken untereinander innerhalb eines Gebäudes vor. ##### Tertiärverkabelung - Etagenverkabelung Der Tertiärbereich wird als Etagenverkabelung bezeichnet. Er sieht die Verkabelung von Etagen- oder Stockwerksverteilern zu den Anschlussdosen vor. Während sich im Stockwerksverteiler ein Netzwerkschrank mit Patchfeld befindet, mündet das Kabel am Arbeitsplatz des Anwenders in einer Anschlussdose in der Wand, in einem Kabelkanal oder in einem Bodentank mit Auslass. [![Strukturierte Verkabelung.jpg](https://doku.stnd.io/uploads/images/gallery/2022-03/scaled-1680-/DFMEkXAbXau5IIvH-strukturierte-verkabelung.jpg)](https://doku.stnd.io/uploads/images/gallery/2022-03/DFMEkXAbXau5IIvH-strukturierte-verkabelung.jpg) # DHCP / DNS / FTP / TCP / UDP #### DHCP **Dynamic Host Configuration Protocol –** mit diesem Protokoll werden die IP-Adressen an Endgeräte (das könnte ein PC, Smartphone oder Drucker sein) innerhalb eines Netzwerks zugewiesen. Die Hosts werden dynamisch (automatisch) konfiguriert. Das Ziel von diesem Protokoll ist es, dass jedem Host im Netzwerk eine IP-Adresse sowohl auch ein Gateway, Subnetzmaske und DNS automatisch zuzuordnen. Port **67** - UDP (**Server**) Port **68** - UDP (**Client**) **Layer 7 (Application Layer)** - OSI Modell ##### Ablauf DHCP
1. DHCP**REQUEST**: Der Client fordert eine der angebotenen IP-Adressen, weitere Daten sowie Verlängerung der Lease-Zeit von einem der antwortenden DHCP-Server.
2. DHCP**OFFER**: Die DHCP-Server antworten mit entsprechenden Werten auf eine DHCPDISCOVER-Anfrage.
3. DHCP**ACK**: Bestätigung des DHCP-Servers zu einer DHCPREQUEST-Anforderung oder die Übermittlung von Konfigurationsparametern, die vorher durch DHCPINFORM vom Client angefordert wurden.
4. DHCP**NAK**: Ablehnung einer DHCPREQUEST-Anforderung durch den DHCP-Server.
5. DHCP**DECLINE**: Ablehnung durch den Client, da die IP-Adresse schon verwendet wird.
6. DHCP**RELEASE**: Der Client gibt die eigene Konfiguration frei, damit die Parameter wieder für andere Clients zur Verfügung stehen.
7. DHCP**INFORM**: Anfrage eines Clients nach weiteren Konfigurationsparametern, z. B. weil der Client eine statische IP-Adresse besitzt.
##### Wichtige Headereinträge DHCP
Client-/Transaction-ID Zufallszahl, die der Client bestimmt und dem Server der Zuordnung hilft
Flags Discover Offer Request Acknowledge
Server-Address Hilft dem DHCP-Server zu erkennen, an wen der Request gerichtet ist
Client-Address Die IP-Adresse, die dem Client dann zugeordnet wird
Client hardware address MAC-Adresse welcher der Client Broadcastet
--- #### DNS **Domain Name System –** funktioniert ähnlich wie ein Telefonbuch: Es verwaltet die Zuweisung zwischen Namen und Nummern. DNS-Server übersetzen Namensanforderungen in IP-Adressen und steuern dabei, welchen Server ein Endbenutzer erreicht, wenn er in seinen Webbrowser einen Domänen-Namen eingibt. Port **53** - UDP **Layer 7 (Application Layer)** - OSI Modell Auf jedem Client ist ein Stück Software installiert, dass sich Resolver nennt. Sollte man eine IP-Adresse auf Basis einer URL benötigen, dann kümmert sich der Resolver um die Anfrage beim DNS-Server. Eine Anfrage bei einem DNS-Server kann zwei unterschiedliche Antworten zur Folge haben. Beim itterativen Verfahren (links im Bild) bekommt man entweder die gewünschte Antwort oder einen Verweis zu einem anderen DNS-Server. Dieser wird dann vom Resolver auf dem Client angefragt. Beim rekursiven Verfahren (rechts im Bild) frägt der Resolver ebenfalls bei einem DNS-Server an, sollte der die Antwort nicht kennen, dann leitet dieser sie selbst an den nächsten DNS-Server weiter. --- [![rekursiv-iterativ.jpg](https://doku.stnd.io/uploads/images/gallery/2022-03/scaled-1680-/0bAYS8fjuLyzTKWr-rekursiv-iterativ.jpg)](https://doku.stnd.io/uploads/images/gallery/2022-03/0bAYS8fjuLyzTKWr-rekursiv-iterativ.jpg) --- #### TCP **Transmission Control Protocol -** ist ein verbindungsorientiertes und paketvermitteltes Transportprotokoll. Kommunikation über TCP lässt sich in drei Schritte einteilen, dem Verbindungsaufbau, der Datenübertragung und dem Verbindungsabbau. **Layer 7 (Application Layer)** - OSI Modell **Verbindungsaufbau** - Drei-Wege-Handshake Client (Rechner der Verbindung aufbauen will) schickt ein **SYN** mit einer zufälligen 32-Bit langen Sequenznummer(seq). Ist der Server (Rechner zu dem die Verbindung aufgebaut wird) bereit die Verbindung zu zulassen, dann antwortet er mit einem **SYN-ACK**.Dabei wird die erhaltene seq um eins weitergezählt und als Acknowledgenummer(ack) zurück geschickt. Zusätzlich erstellt der Server selbst eine 32-Bit lange Sequenznummer und schickt diese mit. Das **SYN-ACK** wird vom Client mit einem **ACK** bestätigt. Hier wird die seq des Servers als ack verwendet und um eins hochgezählt. [![1024px-Tcp-handshake.svg.png](https://doku.stnd.io/uploads/images/gallery/2022-03/scaled-1680-/BKSxyLyTdkqKfXmJ-1024px-tcp-handshake-svg.png)](https://doku.stnd.io/uploads/images/gallery/2022-03/BKSxyLyTdkqKfXmJ-1024px-tcp-handshake-svg.png) **Datenübertragung** Hier werden die eigentlichen Informationen übertragen. Früher wurde jedes Paket das ausgetauscht wurde von der Gegenseite mit Hilfe einer Sequenznummer bestätig. Das führt allerdings zu einer hohen Netzbelastung. Aus diesem Grund hat man die Möglichkeit geschaffen auch mehrere Pakete auf einmal schicken und bestätigen zu können. Dabei wird immer das letzte Paket, dass passt bestätigt. Damit ist dem Sender bekannt, was er nochmal nachschicken muss bzw. ab welchem Punkt er weitere Pakete schicken kann. **Verbindungsabbau** - Vier-Wege-Handshake Ähnlich wie beim Verbindungsaufbau, wird auch hier gegenseitig bestätig, dass man die Verbindung abbaut. Dabei schickt die eine Seite ein **FIN** mit zufälliger Sequenznummer(seq). Diese wird um eins hoch gezählt und als **ACK** zurückgeschickt. Zusätzlich wird ein zweites, eignes **FIN** Paket verschickt, welches ebenfalls mit einem **ACK** bestätigt wird. Erst ab diesem Moment ist die Verbindung geschlossen. [![1024px-TCP-Teardown.svg.png](https://doku.stnd.io/uploads/images/gallery/2022-03/scaled-1680-/sMnW7TBzBc9LzeoP-1024px-tcp-teardown-svg.png)](https://doku.stnd.io/uploads/images/gallery/2022-03/sMnW7TBzBc9LzeoP-1024px-tcp-teardown-svg.png) #### UDP **User Datagram Protocol** - minimales und verbindungsloses Netzwerkprotokoll. Im Gegensatz zu TCP wird hier keine Verbindung aufgebaut, sondern die Daten einfach losgeschickt. Es gibt keine Bestätigung ob die Pakete angekommen sind oder nicht. Es kann also zu unbemerktem Datenverlust kommen. Jedoch gibt es eine Checksumme, die überprüft ob die Pakete fehlerfrei angekommen sind. Streaming und Telefonie läuft über UDP, da der Verlust von einzelnen Paketen nicht wahrgenommen wird. Und sollte man doch etwas nicht verstanden haben kann man nachfragen. **Layer 7 (Application Layer)** - OSI Modell --- #### FTP **File Transfer Protocol** - Protokoll wird genutzt um Daten von einem Client zum Server hochzuladen oder von einem Server zum Client herunterzuladen. Zusätzlich können über FTP auch Verzeichnisse angelegt und ausgelesen werden. Zudem können Verzeichnisse und Dateien umbenannt und gelöscht werden. **Aktives FTP** - Der Client öffnet einen zufälligen Port und teilt diesen zusammen mit der eigenen IP-Adresse mit. **Passives FTP -** Der Client bittet den Server eine Verbindung aufzubauen, daraufhin öffnet der Server einen Port und schickt diesen zusammen mit der Server-IP an den Client. Der Verbindungsaufbau dient u.a. der Datenintegrität, damit nicht zwei User gleichzeitig eine Datei umbennen, löschen usw. können bzw. klar geregelt ist, wer vorrang hat. Port **21** - TCP **Layer 7 (Application Layer)** - OSI Modell # ISO / OSI Modell ##### Unterschiede der beiden Modelle Das TCP/IP-Modell wurde vor dem OSI-Modell entwickelt, daher unterscheiden sich die Schichten. In Bezug auf das Diagramm ist deutlich zu sehen, dass das TCP/IP-Modell vier Schichten wohingegen das OSI-Modell mit sieben arbeitet. Einer der Hauptunterschiede ist, dass es sich bei OSI um ein konzeptionelles Modell handelt, das praktisch nicht für die Kommunikation verwendet wird, während TCP/IP für den Verbindungsaufbau und die Kommunikation über das Netzwerk verwendet wird.
**Vergleichsgrundlage****TCP/IP-Modell****OSI-Modell**
Erweitert zuTCP/IP-Übertragungssteuerungsprotokoll/InternetprotokollOSI – Open System Interconnect
BedeutungEs ist ein Client-Server-Modell, das zur Übertragung von Daten über das Internet verwendet wird.Es ist ein theoretisches Modell, das für ein Computersystem verwendet wird.
Anzahl der Schichten4 Schichten7 Schichten
Entwickelt vonVerteidigungsministerium (DoD)ISO (Internationale Standardorganisation)
VerwendungszweckMeistens benutztNie benutzt
[![Vergleich-OSI-und-TCp-ip-Modell-deutsch.png](https://doku.stnd.io/uploads/images/gallery/2022-03/scaled-1680-/glXIhxqSBtO5Lyyc-vergleich-osi-und-tcp-ip-modell-deutsch.png)](https://doku.stnd.io/uploads/images/gallery/2022-03/glXIhxqSBtO5Lyyc-vergleich-osi-und-tcp-ip-modell-deutsch.png)

„**P**lease **D**o **N**ot **T**hrow **S**alami **P**izza **A**way“ (Physical Layer, Data Link Layer usw.)

##### Hintergrund und Vor-/Nachteile des ISO/OSI-Modells Vor der Einführung gab es für die Netzwerkkommunikation verschiedene Standards. Mit der Einführung wollte man ein einheitliches Modell erschaffen, mit dem alle arbeiten, um eine höhere Kompatibilität zwischen Systemen zu gewährleisten.
**Vorteile****Nachteile**
Anpassungsfähiger und sicherer als die Bündelung aller Dienste in einer SchichtEs definiert kein bestimmtes Protokoll.
Es unterteilt die Netzkommunikation in kleinere Teile, um sie leichter verständlich zu gestaltenDie Sitzungsschicht und die Darstellungsschicht sind nicht so nützlich wie andere Schichten im OSI-Modell.
Es verfügt über die Flexibilität, sich an viele Protokolle anzupassenEinige Dienste sind auf verschiedenen Schichten dupliziert, wie die Transport- und Sicherungsschicht
##### Protokolle im TCP/IP - Stack
**Schicht** **Protokoll**
Anwendungsschicht (Application Layer) DHCP, DNS, FTP, IMAP, LDAP, POP3, SMTP, SSH, NTP, SNMP
Transportschicht (Transport Layer) TCP, UDP
Netzwerkschicht (Network Layer) IPv4, IPv6
Physische Schicht (Link Layer) MAC
# IPv4
Subnetting a subnet --sunny way
Class B ID - Subnetting
##### Aufbau IPv4 - Adresse [![external-content.duckduckgo.com.jpeg](https://doku.stnd.io/uploads/images/gallery/2022-03/scaled-1680-/F4qFnOeqZm9g0cwW-external-content-duckduckgo-com.jpeg)](https://doku.stnd.io/uploads/images/gallery/2022-03/F4qFnOeqZm9g0cwW-external-content-duckduckgo-com.jpeg) - geschrieben in dotted Dezimal, also Dezimalzahlen durch Punkte getrennt - jeder Block besteht aus 8 Bit, also einem Byte auch ein Octet genannt - gesamte Adresse besteht aus vier Byte - um mit der Adresse arbeiten zu können muss von Dezimal in Binär umgerechnet werden dabei hilft das Rechnen mit Rest (Modulo) Umrechnung am Beispiel von 199
Dividend Divisor Quotient Rest
199 / 2 = 99 1
99 / 2 = 49 1
49 / 2 = 24 1
24 / 2 = 12 0
12 / 2 = 6 0
6 / 2 = 3 0
3 / 2 = 1 1
1 / 2 = 0 1
Reste werden von unten nach oben aufgeschrieben, somit ergibt sich aus dem Beispiel die binäre Zahl: 11000111 # IPv6 #### Was ist IPv6 und warum brauchen wir es? IPv6 (Internet Protocol Version 6) ist ein auf Layer 3 stattfindendes Protokoll für die Übertragung und Vermittlung von Datenpaketen in einem paketorientiert arbeitenden Netzwerk wie dem Internet. Es soll das bisher verwendete IP-Protokoll Version 4 (IPv4) ablösen. Das Internetprotokoll der Version 4 ist in vielen Bereichen veraltet und kann die Anforderungen moderner Netzwerke und netzwerkfähiger Applikationen nicht mehr im gewünschten Maß erfüllen. Es vereinfacht die Einrichtung und den Betrieb und ist direkt nach dem Start eines netzwerktauglichen Gerätes verfügbar. Zustands behaftete Verfahren zur Adressvergabe wie DHCP, die bei IP der Version 4 zum Einsatz kommen, werden überflüssig. Im Vergleich zu den IP-Adressen der Version 4 mit 32 Bit Länge sind IPv6-Adressen 128 Bit lang. Sie bieten damit einen wesentlich größeren Adressraum und eine Lösung für die Adressknappheit von IPv4-Adressen im Internet. #### Beispiel einer IPv6 Adresse `2001:0000:0000:0000:0080:ACDE:02CE:1234` - **Acht Gruppen** mit je **16 Bit**, separiert mit Doppelpunkten - Jede Gruppe hat **vier Hexadezimalzeichen** zu je **4 Bit**

Jede in einer Gruppe vorausführende Null kann weggelassen werden

Somit würde die IPv6 Adresse wie folgt aussehen: `2001:0:0:0:80:ACDE:2CE:1234`

Gruppen aus Nullen können wiederum durch zwei Doppelpunkte dargestellt werden. Dies darf aber nur ein mal angewendet werden. Es können also keine doppelten Paare aus Doppelpunkten verwendet werden!

Schlussendlich sieht unsere IPv6 Adresse dann wie folgt aus: `2001::80:ACDE:2CE:1234` ##### Unterteilung der Gruppen 2001:0000:0000:0000:0080:ACDE:02CE:1234
2001:0000:0000:0000Network Prefix (Präfix oder Netz-ID) – Wobei dieses Modell weiter unterteilt werden kann. So können die letzten 8 Bits der Network Prefix die Subnet Prefix angeben.
0080:ACDE:02CE:1234Interface Identifier (Suffix, IID oder EUI)
##### Segmentierung: Präfix und Präfixlänge [![19021112.png](https://doku.stnd.io/uploads/images/gallery/2022-03/scaled-1680-/0gvrh3TKiG0CltlD-19021112.png)](https://doku.stnd.io/uploads/images/gallery/2022-03/0gvrh3TKiG0CltlD-19021112.png) Die von IPv4 bekannte Netzmaske bzw. Subnetzmaske fällt bei IPv6 ersatzlos weg. Um trotzdem eine Segmentierung und Aufteilung von Adressbereichen bzw. Subnetzen vornehmen zu können, wird die Präfixlänge definiert und mit einem / an die eigentliche IPv6-Adresse angehängt. Der hierarchische Aufbau des Präfixes soll das Routing mit IPv6 vereinfachen. Standardmäßig ist /64 die Präfixlänge. Es gibt jedoch weitere typische Präfixe, die 32, 48 und 56 Bit lang sind. #### IPv6-Address-Scopes (Gültigkeitsbereiche) ##### SLAAC und DAD **Stateless Address Autoconfiguration (SLAAC)** ist ein Verfahren zur zustandslosen und automatischen Konfiguration von IPv6-Adressen an einem Netzwerk-Interface. Mit „stateless“ bzw. „zustandslos“ ist gemeint, dass die jeweilige IPv6-Adresse nicht zentral vergeben und gespeichert wird. Demnach erzeugt sich der Host seine IPv6-Adresse unter Zuhilfenahme zusätzlicher Informationen selbst. [![unknown.png](https://doku.stnd.io/uploads/images/gallery/2022-04/scaled-1680-/526hOoqTTrZRV8LK-unknown.png)](https://doku.stnd.io/uploads/images/gallery/2022-04/526hOoqTTrZRV8LK-unknown.png) Eine link-lokale IPv6-Adresse wird aus einem Präfix (64 Bit) und einem Suffix (64 Bit) gebildet. Der Präfix für alle link-lokalen IPv6-Adressen ist immer "fe80:0000:0000:0000". Das Suffix (Interface Identifier) ist der EUI-64-Identifier oder IEEE-Identifier, der aus der MAC-Adresse (Hardware-Adresse des Netzwerkadapters) gebildet wird. In der Mitte der 48-Bit-MAC-Adresse (zwischen dem dritten und dem vierten Byte) werden mit **"ff:fe"** zwei feste Bytes eingefügt, damit es 64 Bit werden. **Zusätzlich wird noch das zweite Bit im ersten Byte der MAC-Adresse invertiert.** Das heißt, aus "1" wird "0" und aus "0" wird "1". Auf diese Weise wird zum Beispiel die MAC-Adresse "00:0C:F1:8E:C1:D8" zum Interface Identifier "020c:f1ff:fe8e:c1d8". Und der Host bildet sich so die link-lokale Adresse "fe80:0000:0000:0000:020c:f1ff:fe8e:c1d8". Um Adresskollisionen zu vermeiden sollte der Host bei einer neu generierten IPv6-Adresse eine **Duplicate Address Detection (DAD)** durchführen. 1. **Neighbor Solicitation**: Dazu schickt der Host eine Anfrage an die generierte Adresse ins lokale Netz. Als Antwort-Adresse dient eine Multicast-Adresse. 2. **Neighbor Advertisement**: Falls eine andere Station die IPv6-Adresse bereits nutzt, kommt eine Antwort zurück. Erst wenn keine Antwort von dieser Adresse zurückkommt bindet sich das Interface an diese Adresse und kann sie für die Kommunikation nutzen. Weil es keine Pflicht gibt eine DAD durchzuführen, sind Adresskollisionen durchaus möglich. Aufgrund des sehr großzügigen Adressraums und der weltweit eindeutigen MAC-Adressen aber eher unwahrscheinlich. Sollte es doch einmal zu einer Kollision kommen und die IPv6-Adresse tatsächlich schon existieren, dann muss die IPv6-Adresse vom Anwender manuell geändert werden. Dann sollte man gleich das ganze Netzwerk überprüfen. Es könnte dann sein, dass jemand eine MAC-Adresse gekapert hat und per MAC-Spoofing ins Netzwerk eingedrungen ist. # Netzwerkkabelarten Um die Netzwerkkabel und ihre Übertragungseigenschaften eindeutig zu beschreiben, existieren die Kategorien eins bis acht (Cat.1 bis Cat.8). Im praktischen Einsatz spielen Kabel der Kategorien eins bis vier heute kaum noch eine Rolle. Sie wurden zum Teil für die reine Sprachübertragung oder für Netzwerke mit niedrigen Bandbreiten verwendet. Im Unterschied zu diesen Kabeln eignen sich **Cat.5 bis Cat.8 Patchkabel** für aktuelle Netzwerk- und Telekommunikationsstandards. ##### Was ist ein UTP-Kabel Ein UTP-Kabel ist ein beliebtes Kabel für Telefon- und Computernetzwerke und besteht aus gedrehten Aderpaaren mit einer Standard-Farbcodierung. Der Name „UTP-Kabel“ wird übrigens zu Unrecht für alle sog. Twisted-Pair-Netzwerkkabel verwendet. Twisted-Pair-Netzwerkkabel gibt es in geschirmter und nicht-geschirmter Form, wobei es sich bei UTP (also die Unshielded-Twisted-Pair) um die nicht abgeschirmte Kabelvariante handelt. Dieser Typ Kabel verfügt somit über keinen elektromagnetischen Schutz gegen Interferenzen bzw. elektromagnetische Störungen. Zu diesem Zweck gibt es verschiedene geschirmte UTP-Kabel wie FTP (Foiled-Twisted-Pair), STP (Shielded-Twisted-Pair) und S/FTP-Kabel. ##### Geschirmte Kabel
**Alter Name** **Neuer Name** **Schirmung Kabel** **Schirmung Aderpaare**
UTPU/UTPkeinekeine
STPU/FTPkeineFolie
FTPF/UTPFoliekeine
S-STPS/FTPGeflechtFolie
S-FTPSF/UTPFolie und Geflechtkeine
[![Schirmungsarten.jpg](https://doku.stnd.io/uploads/images/gallery/2022-03/scaled-1680-/yB5XJK2r0IEb6PYM-schirmungsarten.jpg)](https://doku.stnd.io/uploads/images/gallery/2022-03/yB5XJK2r0IEb6PYM-schirmungsarten.jpg) ##### Welche Geschwindigkeiten kann ein UTP-Kabel erreichen?
**Bezeichnung****Geschwindigkeit** **Durchsatzgeschwindigkeit**
Cat.5100 Mbit/s100 MHz
Cat.5e1000 Mbit/s100 MHz
Cat.61000 Mbit/s250 MHz
Cat.6a10.000 Mbit/s500 MHz
Cat.710.000 Mbit/s600 - 1.000 MHz
Cat.840.000 Mbit/s - 100.000 Mbit/s1.600 - 2.000 MHz
##### Ein flexibles Kabel (stranded) oder einen Starrleiter (solid)? Der UTP-Kabeltyp ist vom Aufbau der einzelnen Adernpaare abhängig. Wenn Sie das UTP Kabel entmantelen, sehen Sie 8 kleine Adern. Wenn Sie diese kleinen Adern wiederum strippen, wird der Unterschied zwischen flexibel und Starrleiter sichtbar. Bei flexiblen Kabeln besteht jede einzelne Ader aus vielen kleinen Kupferdrähten. Beim Starrleiter besteht jede kleine Ader aus einem festen Kern. # Sicherheitsaspekte ##### Allgemeine Schutzziele - **Vertraulichkeit**: Daten dürfen lediglich von autorisierten Benutzern gelesen bzw. modifiziert werden, dies gilt sowohl beim Zugriff auf gespeicherte Daten wie auch während der Datenübertragung. - **Integrität**: Daten dürfen nicht unbemerkt verändert werden. Alle Änderungen müssen nachvollziehbar sein. - **Verfügbarkeit**: Verhinderung von Systemausfällen; der Zugriff auf Daten muss innerhalb eines vereinbarten Zeitrahmens gewährleistet sein. ##### Weitere Schutzziele - **Authentizität** bezeichnet die Eigenschaften der Echtheit, Überprüfbarkeit und Vertrauenswürdigkeit eines Objekts. - **Verbindlichkeit/Nichtabstreitbarkeit**: Sie erfordert, dass „kein unzulässiges Abstreiten durchgeführter Handlungen“ möglich ist. Sie ist unter anderem wichtig beim elektronischen Abschluss von Verträgen. Erreichbar ist sie beispielsweise durch elektronische Signaturen. - **Zurechenbarkeit**: „Eine durchgeführte Handlung kann einem Kommunikationspartner eindeutig zugeordnet werden.“ - in bestimmtem Kontext (zum Beispiel im Internet) auch **Anonymität** ##### Besonderes Schutzziel im Zuge der DSGVO - **Resilienz**: Widerstandsfähigkeit/Belastbarkeit gegenüber Ausspähungen, irrtümlichen oder mutwilligen Störungen oder absichtlichen Schädigungen (Sabotagen) ##### Was ist die DSGVO?

Die Datenschutz-Grundverordnung (DSGVO oder DS-GVO) ist eine Verordnung der Europäischen Union, mit der die Regeln zur Verarbeitung personenbezogener Daten durch die meisten Verantwortlichen, sowohl private wie öffentliche, EU-weit vereinheitlicht werden. Dadurch soll einerseits der Schutz personenbezogener Daten innerhalb der Europäischen Union sichergestellt, und auch andererseits der freie Datenverkehr innerhalb des europäischen Binnenmarktes gewährleistet werden.

- Die DSGVO harmonisiert seit dem 25. Mai 2018 die rechtlichen Vorgaben zur Verarbeitung personenbezogener Daten durch private Unternehmen und öffentliche Stellen in Europa. - Die DSGVO erlegt Unternehmen umfangreiche Pflichten auf, wie Meldepflichten, Rechenschaftspflichten, Sicherstellung der Datensicherheit und Umsetzung von Betroffenenrechten. Gleichzeitig stärkt die DSGVO die Verbraucherrechte. - Zusätzlich gewährt die DSGVO Schadensersatzansprüche für materielle und immaterielle Schäden, die Personen aufgrund einer Verletzung von Regelungen aus der DSGVO entstehen. ##### Weitere für die Prüfung interessante Punkte - Aktuelle Software/Firmware - Kennwortvergabe und -sicherheit (Es soll mindestens zehn Zeichen lang sein, Groß- und Kleinschreibung, Sonderzeichen und mindesten eine Zahl enthalten. Es soll keine Wörter aus Wörterbüchern enthalten.) - Verschlüsselungsmethode und Kennwortvergabe bei WLAN und anderen Diensten - Abschaltung Systeme außerhalb der Arbeitszeiten Bitte in der Prüfung diskutieren! :D # Berechnungshilfe
##### **Binär** ##### **Dezimal** ##### **Hexadezimal**
0 0 0 0 0 0
0 0 0 1 1 1
0 0 1 0 2 2
0 0 1 1 3 3
0 1 0 0 4 4
0 1 0 1 5 5
0 1 1 0 6 6
0 1 1 1 7 7
1 0 0 0 8 8
1 0 0 1 9 9
1 0 1 0 10 a
1 0 1 1 11 b
1 1 0 0 12 c
1 1 0 1 13 d
1 1 1 0 14 e
1 1 1 1 15 f
Mit Hilfe dieser Tabelle kann man sehr leicht jede dezimal Zahl in eine hexadezimale Zahl umrechnen. Dabei geht man den Umweg über die binären Zahlen. Der Rückweg ist ebenfalls möglich. Umrechnung am Beispeil von 999
Dividend Divisor Quotient Rest
999/ 2 = 4991
499/ 2 = 2491
249/ 2 = 1241
124/ 2 = 620
62/ 2 = 310
31/ 2 = 151
15/ 2 = 71
7/ 2 = 31
3 / 2 = 1 1
1 / 2 = 0 1
- Es ergibt sich die binäre Zahl (von unten nach oben gelesen): 1111100111 - Diese wird von rechts nach links in vierer Blöcke unterteilt: 11 | 1110 | 0111 - sollte der Block ganz links nicht aus vier Bit bestehen wird mit Null aufgefüllt: 0011 | 1110 | 0111 - jeder Block kann mit Hilfe der Tabelle in eine hexadezimale Zahl umgewandelt werden: 3 | e | 7 -> 0x 3e7 # Übungsaufgabe 1 ##### Netzkonfiguration Die Firma DarSys GmbH ist dabei, die bisherige IPv4-Netzkonfiguration in eine IPv6-Netzkonfiguration umzustellen. Zum aktuellen Zeitpunkt wird im Dual-Stack gearbeitet, um den laufenden Betrieb nicht zu gefährden. Den logischen Netzwerkplan der Firma DarSys können Sie der [Anlage 3.pdf](https://doku.stnd.io/attachments/3) entnehmen. 1. Alle Netzwerk- und Hostanteile der IPv4-Adressen und IPv6-Adressen sind fortlaufend zu nummerieren. Der binäre Wert des dezimalen Host-Teils der IPv4-Adresse soll mit dem binären Wert des hexadezimalen Host-Teils der IPv6-Adresse im letzten Byte identisch sein. - Stellen Sie die IPv6-Adresse in gekürzter und ungekürzter Version dar. - Vervollständigen Sie die grau hinterlegten Felder der Adresstabelle auf dem Vorgabeblatt [Anlage 9.pdf](https://doku.stnd.io/attachments/2). 2. Erläutern Sie, warum einem Switch eine IP-Adresse gegeben wurde. 3. Ein Mitarbeiter der DarSys GmbH berichtet, dass er an seinem neuen Arbeitsplatz immer die gleiche Fehlermeldung bekommt (siehe Abbildung), wenn er eine Webseite in seinem Internetbrowser aufrufen möchte. [![unknown.png](https://doku.stnd.io/uploads/images/gallery/2022-04/scaled-1680-/xZHYPgRmICBRrUzB-unknown.png)](https://doku.stnd.io/uploads/images/gallery/2022-04/xZHYPgRmICBRrUzB-unknown.png) - Nennen Sie drei Ursachen am Computer oder im Netzwerk für die abgebildete Fehlermeldung, die sich auf unterschiedliche Layer eines Schichtenmodells beziehen. - Beschreiben Sie mögliche Verfahren, mit denen die drei genannten Fehler erkannt werden können. 4. Einige Beschäftigte beklagen sich, dass immer beim Betrieb der Klimaanlage das Netzwerk in einigen Büros „langsam“ wird. Es wird festgestellt, dass in diesen Büros vor wenigen Jahren Netzwerkleitungen ([Anlage 4.pdf](https://doku.stnd.io/attachments/4)) verlegt wurden. Informieren Sie Ihre Kundin, Frau Schreiber von der DarSys GmbH, durch eine E-Mail warum dieses Problem auftritt und wie dieses behoben werden kann. Verwenden Sie für Ihre Lösung das Vorgabeblatt [Anlage 10.pdf](https://doku.stnd.io/attachments/5). # Übungsaufgabe 2 Die Datenerfassung und Datenübertragung im Lager soll mithilfe von Handheld-Terminals und Notebooks in Echtzeit erfolgen. 1. Zur Errichtung der Netzwerkinfrastruktur sollen unter anderem bis zu acht Accesspoints angeschafft werden. An der Decke der Lagerhalle wurden an mehreren Stellen Netzwerkdosen, jedoch keine 230 V-Steckdosen, installiert. Es stehen mehrere Accesspoints zur Auswahl ([Anlage 5.pdf](https://doku.stnd.io/attachments/20)). - Schlagen Sie anhand von fünf Kriterien den passenden WLAN-Accesspoint-Typ vor. 2. Ihnen liegt der Grundriss des Lagers und das Antennendiagramm des von Ihnen gewählten WLAN-Accesspoints bei Deckenmontage vor ([Anlage 6.pdf](https://doku.stnd.io/attachments/19)). - Bestimmen Sie im Grundriss bis zu acht Positionen der Accesspoints, mit denen das Lager optimal mit WLAN ausgeleuchtet ist. 3. Die WLAN-Accesspoints wurden geliefert und in der Lagerhalle montiert. Vor der Inbetriebnahme und Abnahme durch den Fahrradhersteller sollen diese zeitgemäß abgesichert werden. - Beschreiben Sie drei zu bearbeitenden Sicherheitsaspekte. 4. Ihnen liegt in der Eingabeaufforderung die IP-Konfiguration eines WLAN-Devices vor ([Anlage 7.pdf](https://doku.stnd.io/attachments/18)). Ein Zugriff auf das Internet von diesem Gerät ist nicht möglich. - Begründen Sie, ob ein Zugriff über die IP-Adresse auf den Dateiserver möglich ist. - Entwerfen Sie eine IP-Konfiguration, mit der ein Zugriff auf das Internet möglich ist. # Dual-Stack # BWL Zusammenfassungen für das Fach BWL vorbereitend für die Abschlussprüfung Teil 1. # Markt

Treffpunkt von Anbietern und Nachfragern von Gütern, Dienstleistungen und Rechten

Aufgaben: Vermittlung, Information, Bewertung #### Marktforschung Informationsgewinnung über Kunden, Konkurrenz und allgemeine Marktdaten - **Marktanalyse**: Momentaufnahme - **Marktbeobachtung**: regelmäßige Untersuchung - **Marktprognose**: Vorhersage von Marktverhalten ##### Forschungsmethoden - **Primärforschung**: erstmalige Erhebung von Daten - Befragungen, Beobachtungen und Experimente - aktuelle Daten vs. hoher finanzieller und zeitlicher Aufwand - **Sekundärforschung**: Auswertung von vorhandenem Datenmaterial - Interne und Externe Quellen - geringe Kosten vs. unspezifischere Daten - **Erhebungen** - Vollerhebung: Untersuchung aller infrage kommenden Personen - hohe Genauigkeit vs. hoher finanzieller und zeitlicher Aufwand - Teilerhebung: Untersuchung einer Auswahl der infrage kommenden Gesamtmenge - günstiger und geringerer Zeitaufwand vs. Ungenauigkeit, Daten müssen auf Gesamtmenge hochgerechnet werden #### Marktsegmentierung Aufteilung des Gesamtmarkts in abgrenzbare homogene Teilmärkte - **Kriterien**: geografisch, soziodemografisch; psychografisch und beobachtbares Kaufverhalten - **Ziel**: Umsatz-/Gewinnsteigerung; Neuproduktpositionierung; Beurteilung eigener Marktposition #### Preispolitik: Herab- und Heraufsetzen des Preises, mit der Absicht den Absatz zu beeinflussen In der Regel frei gestaltbar, manchmal allerdings staatliche Vorgaben - **Kriterien** - Art und Weise des Produkts - Preisvorstellung und Kaufkraft der Nachfrage - Preis der Konkurrenzprodukte - Rabatte, Skonti, Transportkosten - Selbstkosten und variable Kosten - **Funktionen des Preises** - Ausgleichsfunktion: Gleichgewicht, bei dem höchster Umsatz erzielt wird - Signalfunktion: Knappheitsgrad eines Gutes - Lenkungsfunktion: Preise steuern das Angebot - Erziehungsfunktion: Preise erziehen Verbraucher möglichst günstig zu kaufen - **Strategische Preispolitik** - Hochpreispolitik: hohe Preise durch Exklusivität - Niedrigpreispolitik: Betonung Preis/Leistung - Marktpreispolitik: „Mitschwimmen“ mit dem Wettbewerb - Preisdifferenzierung: zeitlich, räumlich, personell, mengenmäßig # ABC - Analyse Die ABC-Analyse ist in der BWL Welt ein angewendetes Verfahren zum Bestimmen und Aufteilen von Mengen in den Klassen A, B und C. Sie dient zum Beispiel zur Veranschaulichung von Umsätzen in Bezug auf Absatzzahlen eines oder mehrerer Produkte. Dabei sind Objekte der Kategorie A am Umsatzstärksten und die der Kategorie C am Umsatzschwächsten.

Ziel dieser ist es, den Einsatz von Ressourcen richtig zu gewichten.

1. Einzelwerte (Menge) und Verbrauchswerte (EK-Preis) ermitteln 2. Die Verbrauchswerte errechnen und absteigend sortieren (Umsätze in €) 3. Verbrauchswerte kumulieren (Umsätze kumuliert) 4. Verbrauchswerte in % am Gesamtwert ermitteln (in %) 5. Klassenbildung vornehmen. Einteilung der Verbrauchswerte gemäß ihrem Werteanteil in die Klassen A, B, C 6. Mengen kumulieren (Menge kumuliert) 7. Mengen in % am Gesamtwert ermitteln (in %) [![abc-beispiel.jpg](https://doku.stnd.io/uploads/images/gallery/2022-03/scaled-1680-/RtDODqy35vNFbiUv-abc-beispiel.jpg)](https://doku.stnd.io/uploads/images/gallery/2022-03/RtDODqy35vNFbiUv-abc-beispiel.jpg) # Übungsaufgabe 1 ##### Arbeitsmittelbeschaffung 1. Aufgabe - Entwickeln Sie aus den gegebenen Kundeninformationen ([Anlage 1.pdf](https://doku.stnd.io/attachments/6)) geeignete Anforderungskriterien für die Ausstattung eines Arbeitsplatzrechners. - Vergleichen Sie Ihre Anforderungskriterien mit den Produkten aus unserem Sortiment ([Anlage 2.pdf](https://doku.stnd.io/attachments/7)). - Begründen Sie auf Grundlage einer Nutzwertanalyse, welcher PC Sie der Kunden Schreiber empfehlen.

Hinweis: Verwenden Sie für Ihre Lösung das Vorgabeblatt [Anlage 7.pdf](https://doku.stnd.io/attachments/9).

2. Vervollständigen Sie das Angebot für die Kundin Schreiber. Verwenden Sie für Ihre Lösung das Vorgabeblatt [Anlage 8.pdf](https://doku.stnd.io/attachments/8). 3. Ein Mitarbeiter unserer Einkaufsabteilung möchte gerne den angebotenen PC bei unserem Lieferanten bestellen, da aus seiner Sicht ein rechtsverbindlicher Kaufvertrag bereits zustanden gekommen ist. Erläutern Sie ihrem Kollegen, ob mit dem abgegebenen Angebot ein Kaufvertrag wirksam zustande gekommen ist. # Übungsaufgabe 2 Neben höchster Qualität der angebotenen Leistungen legt die Unternehmensleitung der Mapss GmbH sehr großen Wert auf verantwortliches Handeln gegenüber der Umwelt. Bei ihren Kundinnen und Kunden genießt die Mapss GmbH einen hervorragenden Ruf hinsichtlich der Bearbeitung von Reklamationen.

Für die Ausstattung der Büroräume müssen zwölf PCs beschafft werden. Ihnen liegen Angebote baugleicher Geräte ([Anlage 1.pdf](https://doku.stnd.io/attachments/17), [Anlage 2.pdf](https://doku.stnd.io/attachments/16), [Anlage 3.pdf](https://doku.stnd.io/attachments/15)) und Auszüge aus der Lieferantendatei ([Anlage 4.pdf](https://doku.stnd.io/attachments/14)) vor.

1. Ermitteln Sie mithilfe eines Tabellenkalkulationsprogramms unter Einsatz kopierbarer Formeln den Bezugspreis der PCs. 2. Führen Sie mithilfe eines Tabellenkalkulationsprogramms unter Berücksichtigung von mindestens vier Kriterien einen qualitativen Angebotsvergleich durch. 3. Formulieren Sie eine Handlungsempfehlung für die Beschaffung der Geräte. # Übungsaufgabe 3 ##### Aufgabe 1 Wegen starker Konkurrenz der Fachmärkte und Warenhäuser kann das kleine Elektrofachgeschäft Seybold einen Waschvollautomaten vom Marktführer Wiele zu höchstens 405,10 € verkaufen. Die Großhandlung Elgro KG bietet einen Listenpreis pro Stück von 245,00 €.

Kann Herr Seybold auf dieses Angebot eingehen, wenn der Großhändler 15 % Rabatt und 3 % Skonto gewährt sowie Bezugskosten von 10,00 € je Machine berechnet? Seybold kalkuliert seine Verkaufspreise mit 25 % Handlungskostenzuschlag, 12 % Gewinn, einem Kundenskonto von 2 % und einem Kundenrabatt von 10 %. Die Umsatzsteuer ist mit 19 % zu berücksichtigen.

##### Aufgabe 2 Einem Unternehmen liegen zwei Angebote vor: 1\. Angebot: Stückpreis 217,30 €, 20 % Lieferrabatt, 2 % Skonto bei Zahlung innerhalb 14 Tagen. 2\. Angebot: Stückpreis 198,40 €, 15 % Lieferrabatt, Frachtkosten 8,70 € je Stück, Zahlung innerhalb 30 Tagen ohne Abzug. Wie viel Euro spart der Unternehmer, wenn er das günstigere Angebot annimmt und 30 Stück bestellt? ##### Aufgabe 3 Ein Surfbrett wird uns mit 960 € abzüglich 22 % Rabatt angeboten. Bei Zahlung innerhalb 14 Tagen dürfen 3 % Skonto abgezogen werden. Wie viel Euro beträgt der Bareinkaufspreis? ##### Aufgabe 4 Der Listeneinkaufspreis einer Ware beträgt 99,88 € je Stück. Wie viel Euro beträgt der Einstandspreis je Stück, wenn beim Bezug eines Paketes mit 35 Stück 63 € an Frachtkosten und der Lieferer uns 15 % Rabatt und 2 % Skonto gewährt? # SAE Zusammenfassungen für das Fach SAE vorbereitend für die Abschlussprüfung Teil 1. # New Page # New Page # Datenbanken ##### Manipulation von Datenbanken
Die `INSERT INTO` Anweisung wird verwendet, um einen neuen Datensatz (Zeile) in eine Tabelle einzufügen. Es gibt zwei Varianten: - In Spalten der Reihe nach einfügen - Einfügen in Spalten nach Namen ```SQL -- In Spalten der Reihe nach einfügen:

INSERT INTO table_name

VALUES (value1, value2);



-- Einfügen in Spalten nach Namen:

INSERT INTO table_name (column1, column2)

VALUES (value1, value2); ```
Die **`DELETE`** Anweisung wird verwendet, um Datensätze (Zeilen) in einer Tabelle zu löschen. Die **`WHERE`** Anweisung gibt an, welcher Datensatz oder welche Datensätze gelöscht werden sollen. Wenn **`WHERE`** weggelassen wird, werden alle Datensätze gelöscht.```SQL DELETE FROM table_name

WHERE some_column = some_value; ```
Die **`UPDATE`** Anweisung wird verwendet, um Datensätze (Zeilen) in einer Tabelle zu bearbeiten. Sie enthält eine `SET` Anweisung, die die zu bearbeitende Spalte angibt, und eine **`WHERE`** Anweisung, die den oder die Datensätze spezifiziert.```SQL UPDATE table_name

SET column1 = value1, column2 = value2

WHERE some_column = some_value; ```
##### Datenbank Abfragen
Mit dem **`AND`** Operator können mehrere Bedingungen kombiniert werden. Die Datensätze müssen beiden Bedingungen entsprechen, die mit **`AND`** verknüpft sind, um in die Ergebnisse aufgenommen zu werden. Die angegebene Abfrage zeigt alle Autos an, die blau sind und nach 2014 hergestellt wurden.```SQL SELECT model

FROM cars

WHERE color = 'blue'

AND year > 2014; ```
Mit dem **`OR`** Operator können mehrere Bedingungen kombiniert werden. Datensätze, die einer der beiden Bedingungen entsprechen, die durch das **`OR`** verbunden sind, werden in die Ergebnisse aufgenommen. Die angegebene Abfrage findet Kunden, deren Staat entweder „CA“ oder „NY“ ist.```SQL SELECT name

FROM customers

WHERE state = 'CA'

OR state = 'NY'; ```
`WHERE` wird verwendet, um Datensätze (Zeilen) zu filtern, die eine bestimmte Bedingung erfüllen. Die angegebene Abfrage wählt alle Datensätze aus, bei denen das pub\_year gleich 2017 ist.```SQL SELECT title

FROM library

WHERE pub_year = 2017; ```
Mit **`LIKE`** kann innerhalb einer **`WHERE`** ein bestimmtes Muster abgefragt werden. Die angegebene Abfrage findet jeden Film, dessen Titel mit „Star“ beginnt.```SQL SELECT name

FROM movies

WHERE name LIKE 'Star%'; ```
Der Platzhalter `%` kann mit `LIKE` verwendet werden, um keine oder mehrere nicht spezifizierte Zeichen zu finden. Die angegebene Abfrage findet jeden Film, der mit „The“ beginnt, gefolgt von keinem oder mehreren beliebigen Zeichen.```SQL SELECT name

FROM movies

WHERE name LIKE 'The%'; ```
Der Platzhalter `_` kann mit **`LIKE`** verwendet werden, um ein beliebiges einzelnes, nicht spezifiziertes Zeichen zu finden. Die angegebene Abfrage findet jeden Film, der mit einem einzelnen Zeichen beginnt, gefolgt von „ove“.```SQL SELECT name

FROM movies

WHERE name LIKE '_ove'; ```
Die `SELECT *` Anweisung gibt alle Spalten aus der angegebenen Tabelle in der Trefferliste zurück. Die angegebene Abfrage holt alle Spalten und Datensätze (Zeilen) aus der Tabelle „Filme“.```SQL SELECT *

FROM movies; ```
`ORDER BY` kann verwendet werden, um die Ergebnisse einer Spalte alphabetisch oder numerisch zu sortieren. Es kann auf zwei Arten sortiert werden: - Mit `DESC` werden die Ergebnisse in absteigender Reihenfolge sortiert. - Mit `ASC` werden die Ergebnisse in aufsteigender Reihenfolge sortiert (Standard). ```SQL SELECT *

FROM contacts

ORDER BY birth_date DESC; ```
Der Operator **`BETWEEN`** kann zum Filtern nach einem Wertebereich verwendet werden. Bei dem Wertebereich kann es sich um Text, Zahlen oder Datumsdaten handeln. Die angegebene Abfrage findet alle Filme, die zwischen den Jahren 1980 und 1990 gedreht wurden.```SQL SELECT *

FROM movies

WHERE year BETWEEN 1980 AND 1990; ```
Die Bedingung **`LIMIT`** wird verwendet, um die Ergebnisse auf eine bestimmte Anzahl von Zeilen zu begrenzen. Die angegebene Abfrage begrenzt die Ergebnismenge auf 5 Zeilen.```SQL SELECT *

FROM movies

LIMIT 5; ```
Spalteninhalte können `NULL` sein oder keinen Wert haben. Diese Datensätze können mit den Operatoren `IS NULL` und `IS NOT NULL` in Kombination mit `WHERE` abgeglichen werden. Die angegebene Abfrage wird alle Adressen anzeigen, bei denen die Adresse einen Wert hat oder nicht **`NULL`** ist.```SQL SELECT address

FROM records

WHERE address IS NOT NULL; ```
##### Foreign Key Ein Fremdschlüssel ist ein Verweis von Datensätzen einer Tabelle auf den Primärschlüssel einer anderen Tabelle. Um mehrere Datensätze für eine bestimmte Zeile zu erhalten, spielt die Verwendung von Fremdschlüsseln eine wichtige Rolle. Um z. B. alle Bestellungen eines bestimmten Kunden zu verfolgen, kann die Tabelle Bestellung (unten im Bild) einen Fremdschlüssel enthalten. [![foreign-key.png](https://doku.stnd.io/uploads/images/gallery/2022-03/scaled-1680-/pBtZn3H5hEyq5YT4-foreign-key.png)](https://doku.stnd.io/uploads/images/gallery/2022-03/pBtZn3H5hEyq5YT4-foreign-key.png) ##### Primary Key Ein Primärschlüssel in einer SQL-Tabelle wird verwendet, um jeden Datensatz in dieser Tabelle eindeutig zu identifizieren. Ein Primärschlüssel kann nicht `NULL` sein. In diesem Beispiel ist **`customer_id`** der Primärschlüssel. Derselbe Wert kann in einer Spalte nicht noch einmal vorkommen. Primärschlüssel werden oft in `JOIN` Operationen verwendet. [![primary_key.png](https://doku.stnd.io/uploads/images/gallery/2022-03/scaled-1680-/YQvq2gRuVCjPWziV-primary-key.png)](https://doku.stnd.io/uploads/images/gallery/2022-03/YQvq2gRuVCjPWziV-primary-key.png) ##### Mehrere Tabellen verbinden
Bei einem Outer Join werden Zeilen aus verschiedenen Tabellen kombiniert, auch wenn die Join-Bedingung nicht erfüllt ist. Bei einem `LEFT JOIN` wird jede Zeile der linken Tabelle in die Ergebnismenge zurückgegeben. Wenn die Join-Bedingung nicht erfüllt ist, wird `NULL` verwendet, um die Spalten der rechten Tabelle aufzufüllen.```SQL SELECT column_name(s)

FROM table1

LEFT JOIN table2

ON table1.column_name = table2.column_name; ```
`JOIN` ermöglicht die Rückgabe von Ergebnissen aus mehr als einer Tabelle, indem sie diese mit anderen Ergebnissen auf der Grundlage gemeinsamer Spaltenwerte verbindet, die mit `ON` angegeben werden. `INNER JOIN` ist der Standard `JOIN` und gibt nur Ergebnisse zurück, die der durch `ON` angegebenen Bedingung entsprechen.```SQL SELECT *

FROM books

JOIN authors

ON books.author_id = authors.id; ```
# Entity-Relationship-Modell # Struktogramme - auch als Nassi-Shneiderman-Diagramme bekannt - Ziel: Darstellung eines Programms unabhängig von der Programmiersprache - Symbole - mit Hilfe dieser Symbole lässt sich der Ablauf eines Programms beschreiben - fast alle Symbole lassen sich beliebig ineinander verschachteln - Prozess Symbol / Process Symbol: Anweisungen werden nacheinander von oben nach unten durchlaufen [![strukto_01.png](https://doku.stnd.io/uploads/images/gallery/2022-03/scaled-1680-/pixhl4Yo2jpg8Ov7-strukto-01.png)](https://doku.stnd.io/uploads/images/gallery/2022-03/pixhl4Yo2jpg8Ov7-strukto-01.png) ```Python # Anweisungen in Python

a = input("Zahl eingaben") # Anweisung 1

b = 5 * a # Anweisung 2

print(b) # Anweisung 3 ``` - Verzweigung / Decision Symbol: Bedingung wird geprüft, wenn Sie zu trifft wird "ja" ausgeführt, andernfalls "nein". Kann verschachtelt sein. [![strukto_02.png](https://doku.stnd.io/uploads/images/gallery/2022-03/scaled-1680-/gvYl603MA5H936Ho-strukto-02.png)](https://doku.stnd.io/uploads/images/gallery/2022-03/gvYl603MA5H936Ho-strukto-02.png) ```Python # Verzweigung in Python

if (a == 5): # Prüfung der Variablen a -> Ergebnis True oder False

print("a ist fünf") # Wenn Prüfung True, wird dieser Block ausgeführt

else:

print("a ist nicht fünf") # Wenn Prüfung False, wird dieser Block ausgeführt ``` - - - Sonderfall: Case-Statement: Inhalt der Variablen wird geprüft und entsprechender Fall wird ausgeführt. Manche Programmiersprachen haben "Switch" ansonsten mit "if - else if - else" auflösbar. [![strukto_03.png](https://doku.stnd.io/uploads/images/gallery/2022-03/scaled-1680-/ecQYhnONAKJo06oR-strukto-03.png)](https://doku.stnd.io/uploads/images/gallery/2022-03/ecQYhnONAKJo06oR-strukto-03.png) ```C // Mit Switch in C aufgelöst

case (a) { // Angabe welche Variable geprüft werden soll

1: printf("a hat den Wert eins"); // Auswahl entsprechend der Prüfung

2: printf("a hat den Wert zwei");

3: printf("a hat den Wert drei");

default: print("a ist größer drei"); // Sollte keine Prüfung zutreffen wird dieser Fall ausgeführt

};



// Mit if - else if - else aufgelöst

if (a == 1) { // Prüfung der Variable a -> Ergebnis True / False

printf("a hat den Wert eins"); // Block der True als Ergebnis hat wird ausgeführt

} else if (a == 2) {

printf("a hat den Wert zwei");

} else if (a == 3) {

printf("a hat den Wert drei");

} else {

printf("a ist größer drei"); // Wird ausgeführt sollte kein Block True sein

}; ``` - Schleifen oder Wiederholungsstruktur: Struktur die solange durchlaufen wird, bis Endbedingung erfüllt ist - Kopfgesteuerte - Schleifen (z.B. while und for): Bedingung wird vor ersten durchlauf geprüft und nur dann betretten, wenn Bedingung zutrifft. Kann also auch nicht durchlaufen werden, wenn Endbedingung direkt zutrifft. [![strukto_05.png](https://doku.stnd.io/uploads/images/gallery/2022-03/scaled-1680-/WpMcaVsAHg34X2LD-strukto-05.png)](https://doku.stnd.io/uploads/images/gallery/2022-03/WpMcaVsAHg34X2LD-strukto-05.png) ```C // Kopfgesteuerte while-Schleife

while (i <= 10) { // Die Variable i wird geprüft, sollte sie bereits größer 10 sein, wird Schleife nicht ausgeführt

printf("%i\n", i); // Wird ausgeführt sollte i kleiner oder gleich 10 sein

i++;

}



// Kopfgesteuerte for-Schleife

for (i = 0; i <= 10; i++) { // Sonderfall i läuft von 0 bis 10

printf("%i\n", i);

} ``` - Fußgesteuerte - Schleife (z.B. do-while): Endbedingung wird nach dem ersten Durchlauf geprüft und wenn diese Zutrifft, wird die Schleife beendet. Sollte sie nicht zu treffen, wird die Schleife solange durchlaufen bis die Bedingung zutrifft. [![strukto_06.png](https://doku.stnd.io/uploads/images/gallery/2022-03/scaled-1680-/XyB8ocUs3ZOLng6V-strukto-06.png)](https://doku.stnd.io/uploads/images/gallery/2022-03/XyB8ocUs3ZOLng6V-strukto-06.png) ```C // Fussgesteuerte-Schleife

do { // Schleife wird betretten

printf("%i\n", a); // Schleife wird ausgeführt

a++;

} while (a <= 10); // Prüfung und sollte a größer 10 sein, wird Schleife beendet. Ansonsten wird Schleife erneut ausgeführt ``` - Funktion und Funktionsaufruf: Um nicht mehrfach den gleichen Code schreiben zu müssen, kann man Funktionen schreiben die man immer wieder aufrufen kann. Dazu muss man zwei Dinge beachten. Zum Einen muss die Funktion aufgerufen werden ggf. Parameter übergeben werden. Zum Anderen wird die Funktion als eigenes Struktogram geschrieben und am Anfang die möglichen Übergabeparamet genannt. Sollte die Funktion Rückgabeparameter haben sind diese mit **Rückgabe** zu markieren (nicht Ausgabe). - Funktionsaufruf [![Aufruf.png](https://doku.stnd.io/uploads/images/gallery/2022-04/scaled-1680-/D7f4xut8JU7Wjad0-aufruf.png)](https://doku.stnd.io/uploads/images/gallery/2022-04/D7f4xut8JU7Wjad0-aufruf.png) ```C // Möglicher Funktionsaufruf in C



// Funktionsdefinition

int berechne(int zahl1, int zahl2) { // Funktion bekommt zwei Integer übergeben und gibt einen Integer zurück

int ergebnis; // lokale Variable

ergebnis = zahl1 + zahl2; // Berechnung von ergebnis

return ergebnis; // Rückgabewert

}



//Hauptfunktion

void main(void) {

int a; // Deklaration von Variablen

int b;

int c;

a = 4; // Zuweisung von Wert an Variable

b = 5;

c = ergebnis(a, b); // Aufruf von Funktion "berechne" Übergabeparameter sind Werte von a, b. Rückgabe von Funktion wird zugewiesen

printf("%i\n", c); // Ausgabe von c

} ``` - Beispiel Code als Struktogramme dargestellt. Hauptfunktion (main) und aufgerufene Funktion (berechne) [![main.png](https://doku.stnd.io/uploads/images/gallery/2022-04/scaled-1680-/iC4uAluPxuRuKTEJ-main.png)](https://doku.stnd.io/uploads/images/gallery/2022-04/iC4uAluPxuRuKTEJ-main.png) [![main_funktion.png](https://doku.stnd.io/uploads/images/gallery/2022-04/scaled-1680-/p8K3WBHvfHwWYR0W-main-funktion.png)](https://doku.stnd.io/uploads/images/gallery/2022-04/p8K3WBHvfHwWYR0W-main-funktion.png) # JSON / XML ##### **J**ava**S**cript **O**bject **N**otation und E**x**tensible **M**arkup **L**anguage - beides sind Vereinbarungen (Notationen) die dem Austausch von Daten zwischen Anwendungen und Computersystemen - Webseiten bekommen z.B. die Informationen die an bestimmten Stellen über JSON oder XML, damit nicht immer der Code der Webseite angefasst werden muss, sondern einfach die erhaltene Übertragung ausgelesen werden muss und die "Webseite" dann weiß wo sie was eintragen muss - Vorteil dabei ist, dass es sich um ein Datenformat handelt, das sowohl vom Computer als auch Menschen lesbar ist - für beide Formate gibt es Parser in den üblichen Programmiersprachen - Parser sind Programme oder Programmteile die eine Datei auslesen und interpretieren können - XML arbeitet mit Feldern die geöffnet werden <feldöffnung> und geschlossen werden </feldöffnung> - zwischen solchen Feldern können weitere Felder geöffnet werden, dabei entwickelt sich eine Hierarchie der Daten. Felder die zwischen zwei anderen Feldern liegen, sind diesem untergeordnet - JSON erinnert an die Dictionary-Notation aus Python. Dabei werden Bereiche mit geschweiften Klammern geöffnet und Feldnamen durch "Feldname" gekennzeichnet. Mehrere solcher Felder werden durch Komma getrennt ##### Exkurs: Notation - Notation: Art und Weise Informationen darzustellen. Dabei werden bestimmten Zeichen bestimmte Eigenschaften zu geordnet. Eine Notation die wir alle kennen ist die Infix Notation. Also die Art und Weise wie wir Rechnungen darstellen: - - Infix Notation: 3 + 4 - Alternativ dazu exisiteren auch folgende Notationen: - - Prefix Notation: + 3 4 - Postfix Notation: 3 4 + - Wer sich wundert warum es so was gibt, die Postfix Notation kommt gerne bei Berechnungen die mit Hilfe des Computers gemacht werden zum Einsatz, da sie schneller zu verarbeiten ist und damit die Rechenzeit signifikant verkürzt. - Beispiel für XML: [![ExampleXML.png](https://doku.stnd.io/uploads/images/gallery/2022-04/scaled-1680-/1uAiiljrWB9mQCDL-examplexml.png)](https://doku.stnd.io/uploads/images/gallery/2022-04/1uAiiljrWB9mQCDL-examplexml.png) - Beispiel für JSON: [![Partial-JSON-LD-representation-of-the-Eventbrite-resource-in-Table-4.png](https://doku.stnd.io/uploads/images/gallery/2022-04/scaled-1680-/uVYjlkYwQPSnbuT2-partial-json-ld-representation-of-the-eventbrite-resource-in-table-4.png)](https://doku.stnd.io/uploads/images/gallery/2022-04/uVYjlkYwQPSnbuT2-partial-json-ld-representation-of-the-eventbrite-resource-in-table-4.png) # C ### C Grundbefehle
##### Befehl ##### Gebrauch ##### Beispiel
\#include Dient zum einbinden von Bibliotheken und Code aus anderen Dateien \#include <stdio.h>
printf Dient zur Ausgabe von Text und Variableninhalten printf("%i",test);
scanf Dient zum einlesen von Variablen scanf("%i",&test);
switch ( ){ case : break; } Dient zum vergleichen von einer Variablen mit vorgegebenen Werten. Wird gerne zur Menüsteuerung verwendet. switch (test) { case 1: ( ); break; case 2: ( ); break; default:( ); }
if ( ){ Aktion; } else{ Aktion; } Das If Else Statement dient zum Prüfen von Variablen gegen Werte oder andere Variablen. Wird auch Wenn Dann genannt. Es Können auch mehrere Vergleiche verschachtelt werden. if (max\_punkte >= err\_punkte) { /\*Berechnung\*/ } else { /\*Fehlermeldung\*/ }
# Pseudocode

Pseudocode ist eine detaillierte und dennoch lesbare Beschreibung dessen, was ein Computerprogramm oder ein Algorithmus machen soll. Pseudocode wird in einer formal gestalteten, natürlichen Sprache und nicht in einer Programmiersprache ausgedrückt.

Fallunterscheidungen - `if ... then ... else ... end if/exit` - `wenn ... dann ... sonst ... wenn_ende` - `falls ... dann ... falls_nicht ... falls_ende` Schleifen - `wiederhole ... solange/bis ... wiederhole_ende` - `while ... do ...` - `repeat ... until ...` - `for ... to ... step Schrittweite ... next` Kommentare - `// kommentar` - `# kommentar` - `/* kommentar */` ##### Beispiel ``` WENN die Pizza in Folie eingepackt ist

Entferne Folie



schalte Ofen ein

gib Pizza auf Blech in Ofen



SOLANGE Pizza noch nicht fertig

warte eine Minute



entnimm Pizza aus dem Ofen ``` [![unknown.png](https://doku.stnd.io/uploads/images/gallery/2022-04/scaled-1680-/mePSpt9777sbfFxF-unknown.png)](https://doku.stnd.io/uploads/images/gallery/2022-04/mePSpt9777sbfFxF-unknown.png) # Übungsaufgabe 1 ##### Zeiterfassungssystem Das Systemhaus bietet ein System zur Arbeitszeiterfassung an, welches lokal auf den Arbeitsplatzrechnern installiert wird. Dieses steht mit einem Server im LAN in Verbindung und sammelt dort die Daten. Fällt die Netzwerkverbindung aus, so werden die Daten lokal in einer XML-Datei vorgehalten und bei nächster Gelegenheit zum Server übertragen. Die XML-Datei liegt im lokalen Profil des jeweiligen Benutzers, ist jedoch nicht verschlüsselt und kann mit einem Editor im Klartext gelesen werden. Die Informationen und deren Struktur können Sie der [Anlage 6.pdf](https://doku.stnd.io/attachments/11) entnehmen. 1. Um die Sicherheit der Informationen zu gewährleisten sollen Sie eine Schutzbedarfsanalyse durchführen. - Kennzeichnen Sie den Schutzbedarf der Informationen unter Betrachtung der Schutzziele Vertraulichkeit, Verfügbarkeit und Integrität. Informationen zu den Schutzzielen finden Sie in der [Anlage 5.pdf](https://doku.stnd.io/attachments/12). - Begründen Sie Ihre Klassifizierung. Verwenden Sie für Ihre Lösung das Vorgabeblatt [Anlage 11.pdf](https://doku.stnd.io/attachments/10). 2. Die Informationen der XML-Datei zur Arbeitszeiterfassung sollen nicht mehr in einer XMLDatei, sondern in einer kleinen Datenbank lokal und verschlüsselt zwischengespeichert werden. Ermitteln Sie auf Basis der dargestellten Informationen aus der XML-Datei (Anlage 6) die Struktur der dafür nötigen Tabellen. Verwenden Sie für Ihre Lösung das Vorgabeblatt [Anlage 12.pdf](https://doku.stnd.io/attachments/13) mit der Anlage 12.1. 3. Geben Sie an, welches Beziehungsmuster zwischen den Informationen UserAccount und LogEntry besteht. Begründen Sie Ihre Antwort. Verwenden Sie für Ihre Lösung das Vorgabeblatt [Anlage 12.pdf](https://doku.stnd.io/attachments/13) mit der Anlage 12.2. # Übungsaufgabe 2 Sämtliche Geräte wie PCs und Handhelds werden über ein Management-Tool verwaltet. An dieses Tool übertragen alle Geräte ihre aktuellen Betriebssystemparameter, wie Geräte-ID, Betriebssystemname, Version, letztes Update, freier Permanentspeicher, Größe des RAM und Datum des letzten Logins. Das Management-Tool besitzt eine Datenbankschnittstelle, über die SQL-Statements abgesetzt werden können ([Anlage 8.pdf](https://doku.stnd.io/attachments/21)). Die IT-Abteilung möchte eine aktuelle Übersicht der Betriebszustände der Geräte.

Erstellen Sie für die IT-Abteilung folgende Abfragen per SQL:

1. Anzahl aller Geräte 2. Anzahl der Geräte gruppiert nach Betriebssystem 3. alle Geräte deren Update älter als 30 Tage ist 4. welche User haben welche Geräte benutzt # Wirtschaft # Make or Buy Entscheidung Make or Buy beschreibt die Entscheidung, Produkte selbst herzustellen oder sie einzukaufen. Hierbei haben Folgende Kriterien Einfluss auf die Entscheidung: - Kosten - Liquidität und Ressourcen - Produktionsmenge - Zeit - Risiken - Image und Qualität Kosten Hierbei werden die Beschaffungs- und Fertigungskosten mit denen des Fremdbezugs verglichen Liquidität und Ressourcen Sind genügend Ressourcen da z.B. Räume, Personal, Fertigungsanlagen oder werden hohen Investitionskosten für die Anschaffung und Schulung benötigt? Gibt es genügend Kapital? Produktionsmenge Werden nur wenige Teile benötigt? Zeit Wie schnell werden die / das Produkt benötigt? Risiken Eher geringe Rolle, da Produktionsausfälle sowohl im eigenen als auch in Externen Betrieben möglich ist. Image und Qualität Image kann durch die Zusammenarbeit aufgewertet werden wenn mit renommierten Firmen zusammengearbeitet wird. Sollte Anfangs eine Eigenproduktion stattgefunden haben und es wird outgesourct kann es zu einer Imageverschlechterung kommen.