E-Book, Deutsch, 1416 Seiten
Reihe: Rheinwerk Computing
Kersken IT-Handbuch für Fachinformatiker*innen
11. Auflage 2023
ISBN: 978-3-8362-9593-2
Verlag: Rheinwerk
Format: EPUB
Kopierschutz: 0 - No protection
Der Ausbildungsbegleiter
E-Book, Deutsch, 1416 Seiten
Reihe: Rheinwerk Computing
ISBN: 978-3-8362-9593-2
Verlag: Rheinwerk
Format: EPUB
Kopierschutz: 0 - No protection
Dieses Handbuch vermittelt alle Grundlagen der Informationstechnik, die angehende Fachinformatiker in ihrer Ausbildung benötigen: Computerhardware, Betriebssysteme, Netzwerktechnik, -protokolle und -anwendungen sowie Grundlagen der Programmierung, Datenbanken und Multimedia. Mit vielen Prüfungsfragen und Praxisübungen.
Aus dem Inhalt:
Überblick IT-Ausbildung
Mathematische und technische Grundlagen
Hardware und Betriebssysteme
Datenbanken
Windows, Linux, macOS – Grundlagen und Praxis
Netzwerktechnik und Netzwerkpraxis
IT-Sicherheit
Datenanalyse, Machine Learning, Künstliche Intelligenz (KI)
Programmierung in Java, Python, JavaScript und PHP
Software-Engineering
Algorithmen und Datenstrukturen
Prozessanalyse
Internet- und Webtechnologien
Autoren/Hrsg.
Weitere Infos & Material
Materialien zum Buch ... 17
Vorwort ... 19
1. Einführung ... 27
1.1 ... Informationstechnik, Informatik und EDV ... 27
1.2 ... Die Geschichte der Rechenmaschinen und Computer ... 37
1.3 ... Digitale Speicherung und Verarbeitung von Informationen ... 57
1.4 ... Übungsaufgaben ... 61
2. Mathematische Grundlagen ... 65
2.1 ... Einführung in die Logik ... 65
2.2 ... Mengenlehre und diskrete Mathematik ... 78
2.3 ... Mathematische Verfahren im Alltag ... 93
2.4 ... Grundlagen der Stochastik ... 97
2.5 ... Grundlagen der linearen Algebra ... 104
2.6 ... Grundlagen der Analysis ... 118
2.7 ... Informationsspeicherung im Computer ... 123
2.8 ... Übungsaufgaben ... 134
3. Elektronische und technische Grundlagen ... 141
3.1 ... Elektronische Grundlagen ... 141
3.2 ... Automatentheorien und -simulationen ... 149
3.3 ... Übungsaufgaben ... 168
4. Hardware ... 171
4.1 ... Grundlagen ... 171
4.2 ... Die Zentraleinheit ... 175
4.3 ... Die Peripherie ... 203
4.4 ... Übungsaufgaben ... 228
5. Netzwerkgrundlagen ... 235
5.1 ... Einführung ... 235
5.2 ... Funktionsebenen von Netzwerken ... 243
5.3 ... Klassifizierung von Netzwerken ... 252
5.4 ... Netzwerkkarten, Netzwerkkabel und Netzzugangsverfahren ... 261
5.5 ... Datenfernübertragung ... 271
5.6 ... Die TCP/IP-Protokollfamilie ... 275
5.7 ... Übungsaufgaben ... 327
6. Betriebssysteme ... 341
6.1 ... Entwicklung der Betriebssysteme ... 342
6.2 ... Aufgaben und Konzepte ... 350
6.3 ... Windows ... 371
6.4 ... Linux und Unix ... 394
6.5 ... Übungsaufgaben ... 424
7. Grundlagen der Programmierung ... 433
7.1 ... Python ... 435
7.2 ... Java ... 524
7.3 ... Übungsaufgaben ... 569
8. Algorithmen und Datenstrukturen ... 573
8.1 ... Algorithmen erarbeiten und implementieren ... 574
8.2 ... Datensammlungen sortieren ... 581
8.3 ... Nach Daten suchen ... 588
8.4 ... Bäume und Graphen ... 610
8.5 ... Bedingungserfüllungsprobleme ... 632
8.6 ... Übungsaufgaben ... 643
9. Weitere Konzepte der Programmierung ... 645
9.1 ... Reguläre Ausdrücke ... 645
9.2 ... Systemnahe Programmierung ... 663
9.3 ... Einführung in die Netzwerkprogrammierung ... 671
9.4 ... Externe Module und Abhängigkeiten ... 680
9.5 ... Übungsaufgaben ... 690
10. Datenanalyse, Machine Learning, künstliche Intelligenz ... 693
10.1 ... Einführung ... 694
10.2 ... Daten auswählen und aufbereiten ... 699
10.3 ... Konkrete Machine-Learning-Verfahren ... 716
10.4 ... Übungsaufgaben ... 730
11. Software-Engineering ... 733
11.1 ... Überblick ... 734
11.2 ... Werkzeuge ... 750
11.3 ... Übungsaufgaben ... 784
12. Geschäftsprozessanalyse ... 787
12.1 ... Überblick ... 787
12.2 ... Prozesse modellieren mit BPMN ... 793
12.3 ... Übungsaufgaben ... 803
13. Datenbanken ... 805
13.1 ... Die verschiedenen Datenbanktypen ... 806
13.2 ... MySQL - ein konkretes RDBMS ... 820
13.3 ... SQL-Abfragen ... 825
13.4 ... MySQL-Administration ... 838
13.5 ... Grundlagen der Datenbankprogrammierung ... 851
13.6 ... CouchDB im Überblick ... 856
13.7 ... Übungsaufgaben ... 860
14. Server für Webanwendungen ... 865
14.1 ... HTTP im Überblick ... 865
14.2 ... Der Webserver Apache ... 879
14.3 ... PHP installieren und einrichten ... 899
14.4 ... Virtualisierung und Container ... 906
14.5 ... Übungsaufgaben ... 917
15. Weitere Internet-Serverdienste ... 921
15.1 ... Namens- und Verzeichnisdienste ... 921
15.2 ... Die »Meta-Server« inetd und xinetd ... 938
15.3 ... Übungsaufgaben ... 941
16. XML ... 945
16.1 ... Der Aufbau von XML-Dokumenten ... 947
16.2 ... DTDs und XML Schema ... 958
16.3 ... XSLT ... 974
16.4 ... Grundlagen der XML-Programmierung ... 981
16.5 ... Übungsaufgaben ... 987
17. Weitere Datei- und Datenformate ... 993
17.1 ... Textdateien und Zeichensätze ... 993
17.2 ... Binäre Dateiformate ... 1015
17.3 ... Übungsaufgaben ... 1027
18. Webseitenerstellung mit HTML und CSS ... 1031
18.1 ... HTML und XHTML ... 1032
18.2 ... Cascading Style Sheets (CSS) ... 1074
18.3 ... Übungsaufgaben ... 1094
19. Webserveranwendungen ... 1103
19.1 ... PHP ... 1103
19.2 ... Eine REST-API implementieren ... 1171
19.3 ... Übungsaufgaben ... 1200
20. JavaScript und Ajax ... 1203
20.1 ... Grundlagen ... 1204
20.2 ... Das Document Object Model (DOM) ... 1244
20.3 ... Ajax ... 1257
20.4 ... Die JavaScript-Bibliothek React.js ... 1265
20.5 ... Übungsaufgaben ... 1290
21. Computer- und Netzwerksicherheit ... 1293
21.1 ... PC-Gefahren ... 1294
21.2 ... Netzwerk- und Serversicherheit ... 1307
21.3 ... Übungsaufgaben ... 1318
Anhang ... 1321
A. Glossar ... 1321
B. Zweisprachige Wortliste ... 1333
B.1 ... Englisch - Deutsch ... 1333
B.2 ... Deutsch - Englisch ... 1338
C. Kommentiertes Literatur- und Linkverzeichnis ... 1345
C.1 ... Allgemeine Einführungen und Überblicke ... 1345
C.2 ... Mathematische Grundlagen ... 1346
C.3 ... Elektronische und technische Grundlagen ... 1347
C.4 ... Hardware ... 1348
C.5 ... Netzwerkgrundlagen ... 1348
C.6 ... Betriebssysteme ... 1348
C.7 ... Grundlagen der Programmierung ... 1350
C.8 ... Algorithmen und Datenstrukturen ... 1350
C.9 ... Weitere Konzepte der Programmierung ... 1351
C.10 ... Datenanalyse, Machine Learning, künstliche Intelligenz ... 1351
C.11 ... Software-Engineering ... 1353
C.12 ... Geschäftsprozessanalyse ... 1354
C.13 ... Datenbanken ... 1354
C.14 ... Server für Webanwendungen ... 1355
C.15 ... XML ... 1355
C.16 ... Webseitenerstellung mit HTML und CSS ... 1355
C.17 ... Webserveranwendungen ... 1356
C.18 ... JavaScript und Ajax ... 1356
C.19 ... Computer- und Netzwerksicherheit ... 1357
Index ... 1359
Vorwort
Für einen gewöhnlichen Büro-PC sind 256 MByte RAM ein vernünftiger Wert. Wenn Sie dagegen Multimedia- oder DTP-Anwendungen benutzen möchten, sollten es mindestens 512 MByte sein.
– »Kompendium der Informationstechnik« (2003), 1. Auflage des vorliegenden Buchs Die erste Auflage dieses Buchs erschien vor genau 20 Jahren. Im Leben eines Menschen ist das eine recht lange Zeit – immerhin etwa ein Viertel der durchschnittlichen Lebenserwartung. Im »Leben« der Informatik sind 20 Jahre eine noch viel längere Zeit, weil neue, verbesserte Versionen gängiger Hard- und Software inzwischen alle paar Monate erscheinen. Für einen Teil dieser rasanten Entwicklung gibt es sogar ein rechnerisches Maß: Vorgestern[ 1 ] verstarb der Intel-Mitbegründer Gordon Moore, nach dem das (empirische) Gesetz benannt wurde, das besagt, dass sich die Integrationsdichte von Chips etwa alle 18 Monate verdopple. Mehr darüber lesen Sie in Kapitel 1, »Einführung«, in dem unter anderem die Entwicklungsgeschichte der Computer beschrieben wird. Als kleines Beispiel für die Geschwindigkeit der Entwicklung können Sie die Werte im Motto dieses Kapitels mit der Empfehlung für heutige Systeme in Kapitel 4, »Hardware«, vergleichen. Aber abgesehen von der Hardware sind auch andere Aspekte der IT in den letzten 20 Jahren revolutioniert worden. Neben Desktop-PCs und Laptops wurden Smartphones und Tablets allgegenwärtig, und das Internet ist in praktisch jeden Lebensbereich vorgedrungen – so sehr, dass aus den ursprünglich zwei Fachinformatik-Ausbildungsgängen im Jahr 2020 vier wurden. Die beiden neuen Fachrichtungen kümmern sich um die als »Industrie 4.0« bezeichnete wachsende Digitalisierung der Industrieproduktion (Fachrichtung Digitale Vernetzung) beziehungsweise um Datenanalyse, Machine Learning und KI (Fachrichtung Daten- und Prozessanalyse). In den alle zwei Jahre erscheinenden aktualisierten Neuauflagen dieses Handbuchs versuche ich jeweils, mit der besagten Weiterentwicklung Schritt zu halten. Das bedeutet zum einen, dass veraltete Themen gestrichen und neue hinzugenommen werden, und zum anderen, dass die bleibenden Informationen aktualisiert werden müssen. Dies gelingt natürlich nicht immer zu 100 %; sollte Ihnen an irgendeiner Stelle etwas auffallen, das nicht mehr ganz dem heutigen Stand entspricht (oder sollten Sie sonst einen Fehler finden), zögern Sie nicht, sich per E-Mail an it-handbuch@sascha-kersken.de zu wenden. Auch nach 20 Jahren bleibt die Informationstechnik eines der spannendsten Berufsfelder, in der selbst ich – nicht zuletzt bei der regelmäßigen Aktualisierung des Handbuchs – immer wieder Neues entdecke. Wenn Sie heute Ihre Ausbildung beginnen, lernen Sie viele Geräte, Systeme und Programme kennen, die es 2003 noch gar nicht gab. Da das so bleiben wird, ist lebenslanges Lernen in unserer Branche sehr wichtig. Ich wünsche Ihnen dabei ebenso wie in Ihrer Ausbildung viel Erfolg und Vergnügen. Worum geht es in diesem Buch?
Dieses Buch beschreibt die wesentlichen Ausbildungsinhalte im Fachkunde-Unterricht für Fachinformatiker*innen der vier Fachbereiche Anwendungsentwicklung, Systemintegration, Digitale Vernetzung sowie Daten- und Prozessanalyse. Für die kaufmännischen und elektronisch orientierten Ausbildungsgänge ist das Buch ebenfalls geeignet, muss dort jedoch stärker als bei der Fachinformatik um speziellere Lektüre ergänzt werden. Anders als in herkömmlichen Büchern handelt es sich bei dem vorliegenden Band nicht um eine Tabellensammlung zum Auswendiglernen, sondern um praxisorientierte Anleitungen, die Sie weit über Ihre Ausbildung hinaus bei Ihrer alltäglichen Arbeit mit Computersystemen einsetzen können. Sie lernen in den folgenden Kapiteln zahlreiche Geräte, Betriebssysteme, Programmiersprachen und Anwendungsprogramme kennen und erfahren viel Wissenswertes über Netzwerke und das Internet. Bei allen Themen habe ich versucht, die Balance zwischen Theorie und Praxis zu wahren: Es werden weder die technischen und theoretischen Details verschwiegen, wie in zahlreichen Büchern für absolute Einsteiger*innen, noch kommen die praktischen Anwendungsbeispiele zu kurz, was in manchen akademischen Lehrwerken der Fall ist. Soweit es möglich ist, habe ich versucht, konkrete Software aus dem Open-Source-Bereich auszuwählen. Zum einen, weil ich selbst seit vielen Jahren Open-Source-Software einsetze und entwickle, vor allem aber auch, weil Sie auf diese Weise fast jedes in diesem Buch behandelte Programm kostenlos und ohne jegliche Einschränkungen herunterladen, installieren und benutzen können. Der Ausbildungsberuf Fachinformatiker*in sowie viele weitere IT-Berufe enthalten neben den fachspezifischen Inhalten auch Aspekte wie Wirtschafts- und Sozialwissenschaften, Rechtskunde oder Betriebsorganisation. Solche Themen können in diesem Buch nicht berücksichtigt werden. Für das Fach »Technisches Englisch« finden Sie in Anhang B, »Zweisprachige Wortliste«, immerhin eine Stichwortliste in beide Richtungen. Jedes Kapitel enthält am Ende eine Reihe von Übungsaufgaben und/oder Multiple-Choice-Fragen. Die Lösungen dazu finden Sie auf der Webseite des Verlags unter https://www.rheinwerk-verlag.de/5728/. Dort können Sie auch alle Codebeispiele aus dem Buch herunterladen. Jeweils aktualisierte Fassungen der Listings und Lösungen finden Sie ebenfalls in meinem GitHub-Repository zum Buch unter https://github.com/SaschaKersken/ITHandbuch11/. Da sich die in der vorigen Auflage im Rahmen der Neuordnung der IT-Berufe (2020) gewählte Themenauswahl und -anordnung bewährt hat, lassen sich in dieser Auflage keine einzelnen Themenblöcke nennen, die neu hinzugekommen wären. Aber natürlich gibt es in praktisch allen Kapiteln wie immer Aktualisierungen, Ergänzungen, Verbesserungen der Verständlichkeit und Korrekturen. Kapitelübersicht
Die einzelnen Kapitel dieses Buchs widmen sich den folgenden Themen: Kapitel 1, »Einführung«, behandelt die Geschichte und die grundlegende Funktionsweise des Computers. Außerdem werden einige wichtige Grundlagen der Informationstechnik erläutert; sie bilden die Voraussetzung für das Verständnis späterer Kapitel. Abgerundet wird das Kapitel durch einen Überblick über die verschiedenen IT-Ausbildungsgänge und die Relevanz der verschiedenen Teile dieses Buchs für jeden von ihnen. In Kapitel 2, »Mathematische Grundlagen«, erhalten Sie eine solide Einführung in verschiedene Aspekte der Mathematik, die in der Informatik wichtig sind. Die behandelten Themen sind Grundlagen in Logik und Mengenlehre, Stochastik, linearer Algebra und Analysis. Darüber hinaus werden die internen Formate beschrieben, in denen Zahlen und andere Werte in Computern gespeichert werden. Anschließend lernen Sie in Kapitel 3, »Elektronische und technische Grundlagen«, die wichtigsten elektrotechnischen Grundbausteine eines Computers kennen. Hinzu kommen die Themen Berechenbarkeit und Komplexität sowie Automatentheorien und Rechnersimulationen. Kapitel 4, »Hardware«, beschäftigt sich mit den diversen Bauteilen, aus denen ein Computer besteht, sowie mit zahlreichen wichtigen Peripheriegeräten. Sie erfahren die wichtigsten technischen Details über Elemente wie den Mikroprozessor, verschiedene Laufwerke und Datenträger sowie andere Ein- und Ausgabegeräte. In Kapitel 5, »Netzwerkgrundlagen«, wird die Entwicklung der Netzwerke und des Internets beschrieben, und Sie erhalten eine Einführung in die Begriffswelt der Netzwerke. Beispielsweise werden Schichtenmodelle und Netzwerkarchitekturen vorgestellt. Danach wird die genaue Funktionsweise verschiedener Arten von Netzwerkkarten und -anschlüssen erläutert; außerdem wird ausführlich die TCP/IP-Protokollfamilie beschrieben, die für das Internet entwickelt wurde und inzwischen der wichtigste Kommunikationsstandard für alle Arten von Netzwerken ist. In Kapitel 6, »Betriebssysteme«, werden zunächst allgemeine Konzepte des Betriebssystemaufbaus erklärt, zum Beispiel die Verwaltung von Prozessen, das Speichermanagement und die Dateiverwaltung. Anschließend werden einige wichtige Aspekte der konkreten Systeme Windows und Linux/Unix besprochen, etwa die Arbeit mit Windows-Kommandozeile und -PowerShell sowie mit der Linux-Shell bash. In Kapitel 7, »Grundlagen der Programmierung«, werden zwei verschiedene wichtige Programmiersprachen eingeführt, die unterschiedliche Entwicklungsstufen und Aspekte des Programmierens abdecken: Python und Java. Dabei geht es sowohl um eine allgemeine Einführung in die Programmierung als auch um spezifische Aspekte dieser Sprachen. ...