Wirtschaftsinformatik kompakt In dieser Reihe erscheinen: Bächle:E-Business Bächle/Kolb:Einführung in die Wirtschaftsinformatik Faust/Homberger/Kessel:Java Heinrich:Operations Research Heinrich:Allgemeine Systemanalyse Heinrich/Stuck:Objektorientierte Systemanalyse Kessel:Einführung in Linux Preiß:Entwurf und Verarbeitung relationaler Datenbanken Staab:Logik und Algebra Stoll:IT-Management Logik und Algebra Eine praxisbezogene Einführung für Informatiker und Wirtschaftsinformatiker von Prof.Dr.Frank Staab Berufsakademie Villingen-Schwenningen 2., überarbeitete und erweiterte Auflage R.OldenbourgVerlag MünchenWien Bibliografische Information der Deutschen Nationalbibliothek Die Deutsche Nationalbibliothek verzeichnet diese Publikation in der Deutschen Nationalbibliografie; detaillierte bibliografische Daten sind im Internet über <http://dnb.d-nb.de> abrufbar. © 2007 Oldenbourg Wissenschaftsverlag GmbH Rosenheimer Straße 145, D-81671 München Telefon: (089) 45051-0 oldenbourg.de Das Werk einschließlich aller Abbildungen ist urheberrechtlich geschützt. Jede Verwertung außerhalb der Grenzen des Urheberrechtsgesetzes ist ohne Zustimmung des Verlages unzu- lässig und strafbar. Das gilt insbesondere für Vervielfältigungen, Übersetzungen, Mikro- verfilmungen und die Einspeicherung und Bearbeitung in elektronischen Systemen. Lektorat: Wirtschafts- und Sozialwissenschaften, [email protected] Herstellung: Anna Grosser Coverentwurf: Kochan & Partner, München Cover-Illustration: Hyde & Hyde, München Gedruckt auf säure- und chlorfreiem Papier Druck: MB Verlagsdruck, Schrobenhausen Bindung: Thomas Buchbinderei GmbH, Augsburg ISBN 978-3-486-58370-0 „Wird das Geschaute und Erlebte in der Sprache der Logik nachgebildet, so treiben wir Wissenschaft. Wird es durch Formen vermittelt, deren Zu- sammenhänge dem bewussten Denken unzugänglich, doch intuitiv als sinn- voll erkannt sind, so treiben wir Kunst“ (Albert Einstein, 1879-1955) „Menschen, die von der Algebra nichts wissen, können sich auch nicht die wunderbaren Dinge vorstellen, zu denen man mit Hilfe der genannten Wissenschaft gelangen kann“ (Gottfried Wilhelm Leibniz, 1646 -1716) Vorwort Die Stoffgebiete Logik und Algebra finden sich - zum Teil in unterschiedlicher Aufteilung und Zusammensetzung - in den Curricula nahezu aller Informatik- und Wirtschaftsinforma- tikstudiengänge. Sehr häufig sind diese Einführungsveranstaltungen jedoch sehr theorie- lastig. Insbesondere die Mathematisierung und Kalkülisierung der Logik lässt mögliche Anwendungsbezüge und das Aufzeigen der Relevanz für spätere Informatikvorlesungen meist völlig vermissen. So kommen viele Studenten zu dem Schluss, dass es sich bei dem vermittelten Stoff um ein Gebiet handelt, das lediglich zum Erwerb eines Scheines oder zum Bestehen der Klausur notwendig ist. Dies ist in zweifacher Hinsicht fatal: Erstens kann mit Fug und Recht behauptet werden, dass es sich hierbei um die grundlegenden Gebiete der Informatik schlechthin handelt. Ein Computer ist letztendlich nichts anderes, als in Hardware umgesetzte Boolesche Algebra. Ohne Verständnis dieser algebraischen Struktur kann man die Funktionsweise eines Rechners nie begreifen, und dazu sollte jeder Informatik- oder Wirtschaftsinformatikstudent in der Lage sein, auch dann, wenn sein Aufgabengebiet später nicht der Entwurf digitaler Schaltungen sein wird. Zweitens ist das Fehlen solcher Anwen- dungsbezüge auch deswegen schade, weil sie immer wieder auf der Hand liegen und damit zur Motivation für den sonst eher als „trocken“ geltenden Stoff dienen könnten. Ein gutes Beispiel hierfür ist der auf der Mengenlehre aufbauende Begriff der Relation, welcher später grundlegend für das Verständnis relationaler Datenbanken ist. In diesem Buch werden – um bei diesem Beispiel zu bleiben - die Zusammenhänge zwischen Relationen, Funktionen und relationalen Datenbanken tiefer aufgezeigt, als dies üblicherweise in anderen, rein mathema- tisch orientierten Einführungswerken üblich ist. Ein weiteres Beispiel für den engen Zusam- menhang zwischen formaler Logik und praktischer Informatikanwendungen liefert die Um- setzung der Prädikatenlogik erster Ordnung in die Programmiersprache PROLOG. Ziel die- VI ses Buches ist daher, dem Leser klarzumachen, dass hier kein Stoffgebiet zum „Abhaken“ vermittelt wird, sondern dass wichtige Grundlagen für viele weitere Informatikvorlesungen gelegt werden. Ein weiterer wesentlicher Unterschied zu anderen Einführungswerken ist der, dass die Ver- mittlung der Theorie nicht über die sonst für mathematische Einführungswerke meist typi- sche Abfolge von „Definition, Satz, Beweis, …“ erfolgt, sondern sich eher an gut verständli- chen Beispielen orientiert. Die Stoffauswahl orientiert sich an der Modulbeschreibung für die Vorlesung Logik und Algebra der Berufsakademien in Baden-Württemberg. Die gleichnamige Vorlesung wird dort seit Jahren von mir gehalten. Selbstverständlich ist dieses Buch auch für alle anderen Studenten der Informatik und Wirtschaftsinformatik an Universitäten und Hochschulen inte- ressant. Das Curriculum unterscheidet sich auf diesem Gebiet nicht wesentlich. Die folgende Frage, die mir von meinen Studenten nach einer Vorlesung immer wieder gestellt wird, dürf- te wohl auch für andere Hochschulen typisch sein: „Gibt es dazu noch mehr Aufgaben?“ Deswegen habe ich mich bemüht, außer den Beispielen viele Übungsaufgaben in dieses Werk mit aufzunehmen. Die Lösungen zu den Aufgaben sind in Kapitel 6 Schritt für Schritt detailliert ausgeführt und nicht nur grob skizziert. Damit ist dieses Buch auch hervorragend zum Selbststudium geeignet. Mein besonderer Dank gilt meiner Frau Miriam. Ihr kam, wie schon in der Vergangenheit bei ähnlichen Werken, wieder die anstrengende und abendfüllende Aufgabe zu, dieses Buch zu redigieren. Königsfeld, im Februar 2007 Frank Staab Inhalt 1 Einleitung 1 2 Logik 3 2.1 Logik als Formalisierung der natürlichen Sprache.....................................................3 2.2 Aussagenlogik............................................................................................................4 2.2.1 Grundlegende Verknüpfungen und Wahrheitstafeln..................................................4 2.2.2 Implikation und Äquivalenz.......................................................................................7 2.2.3 Syntax und Semantik der Aussagenlogik.................................................................10 2.2.4 Tautologien und logische Gesetzmäßigkeiten..........................................................13 2.3 Normalformen..........................................................................................................16 2.3.1 Disjunktive und konjunktive Normalformen............................................................18 2.3.2 Kanonische disjunktive und kanonische konjunktive Normalformen......................20 2.4 Logisches Schließen und Resolution........................................................................22 2.5 Aufgaben zu Kapitel 2..............................................................................................26 3 Mengen, Relationen und Abbildungen 29 3.1 Grundbegriffe...........................................................................................................29 3.2 Mengenalgebra.........................................................................................................32 3.2.1 Algebraische Strukturen...........................................................................................32 3.2.2 Mengenalgebraische Operationen............................................................................35 3.3 Relationen................................................................................................................38 3.3.1 Zweistellige Relationen............................................................................................38 3.3.2 Äquivalenz- und Ordnungsrelationen.......................................................................39 3.3.3 n-stellige Relationen.................................................................................................42 3.4 Abbildungen.............................................................................................................43 3.5 Relationale Datenbanken..........................................................................................45 3.5.1 Relation in der Datenbanktheorie.............................................................................45 3.5.2 Relationenalgebra.....................................................................................................48 3.5.3 Funktionale Abhängigkeiten in Relationen..............................................................53 3.6 Aufgaben zu Kapitel 3..............................................................................................56 VIII 4 Boolesche Algebra und Schaltalgebra 59 4.1 Boolesche Algebren.................................................................................................59 4.1.1 Modelle der Booleschen Algebra.............................................................................61 4.1.2 Schaltalgebra als Modell einer zweielementigen Booleschen Algebra....................64 4.2 Disjunktive Minimalform, Quine-McCluskey Algorithmus....................................74 4.3 KV-Diagramme........................................................................................................79 4.3.1 Ableitung der disjunktiven Minimalform aus KV-Diagrammen.............................79 4.3.2 KV-Diagramme bei nicht vollständig definierten Funktionen.................................84 4.4 Verknüpfungsbasen..................................................................................................87 4.5 Grundlegende Schaltungen......................................................................................91 4.5.1 Schaltgatter..............................................................................................................91 4.5.2 Schaltnetze...............................................................................................................93 4.6 Aufgaben zu Kapitel 4.............................................................................................99 5 Prädikatenlogik und logisches Programmieren 102 5.1 Grundlagen der Prädikatenlogik.............................................................................102 5.2 Logisches Programmieren......................................................................................105 5.2.1 PROLOG................................................................................................................105 5.2.2 Erweiterung der Resolution auf die Prädikatenlogik..............................................110 5.3 Aufgaben zu Kapitel 5...........................................................................................116 6 Lösungen zu den Aufgaben 118 6.1 Lösungen zu Kapitel 2...........................................................................................118 6.2 Lösungen zu Kapitel 3...........................................................................................123 6.3 Lösungen zu Kapitel 4...........................................................................................128 6.4 Lösungen zu Kapitel 5...........................................................................................135 L iteraturverzeichnis 142 In dex 144 Abbildungsverzeichnis Abb. 4.1: Einfacher Stromkreis mit Schalter..................................................................65 Abb. 4.2: Grundsymbole der Schaltertechnik für 0 und 1..............................................65 Abb. 4.3: “und“-Verknüpfung als Reihenschaltung.......................................................65 Abb. 4.4: „oder“-Verknüpfung als Parallelschaltung.....................................................66 Abb. 4.5: Negation als Ruhekontaktschaltung...............................................................67 Abb. 4.6: Ansteuerung einer Siebensegmentanzeige......................................................85 Abb. 4.7: Siebensegmentanzeige....................................................................................85 Abb. 4.8: Symbole für Schaltgatter................................................................................92 Abb. 4.9: Bauplan des Halbaddierers.............................................................................94 Abb. 4.10: Symbol des Halbaddierers (HA).....................................................................95 Abb. 4.11: Bauplan des Volladdierers..............................................................................97 Abb. 4.12: Symbol des Volladdierers (VA).....................................................................98 Abb. 4.13: Abbildung Addierer mit durchlaufendem Übertrag........................................98