Modulare Programmierung & Datenbanken: Konzepte, Vorteile und SQL-Grundlagen

Eingeordnet in Informatik

Geschrieben am in Deutsch mit einer Größe von 12,33 KB

Modulare Programmierung: Grundlagen & Vorteile

Modulare Programmierung ist ein Programmierparadigma, das die Aufteilung eines Programms in Module oder Applets beinhaltet, um es besser lesbar und handhabbar zu machen. Sie ermöglicht die Zerlegung eines Problems in eine Reihe voneinander unabhängiger Teilprobleme, die leichter zu lösen und getrennt voneinander zu behandeln sind. Dank der modularen Unterprogramme können Module unabhängig voneinander getestet werden, wodurch Fehler vor ihrer Aufnahme in das Hauptprogramm behoben und die Module zur späteren, beliebig häufigen Verwendung gespeichert werden können. In der modularen Programmierung ist das Programm in mehrere Abschnitte unterteilt, die durch Prozeduraufrufe miteinander interagieren. Das Hauptprogramm koordiniert die Aufrufe an die sekundären Module und übergibt die erforderlichen Daten als Parameter. Im Gegenzug kann jedes Modul eigene Daten enthalten und andere Module oder Funktionen aufrufen.

Was ist ein Modul?

Ein Modul ist jeder Teil eines Programms, der eines der Teilprobleme löst, in die das ursprüngliche komplexe Problem zerlegt wurde. Jedes dieser Module hat eine klar definierte Aufgabe und kann mit anderen Modulen zusammenarbeiten.

Unterprogramme und Anwendungsfälle der Modularisierung

Eines der wichtigsten Elemente der Programmierung, das bei der Darstellung einzelner Module verwendet wird, ist das Unterprogramm: eine Reihe von Computeranweisungen, die eine bestimmte Aufgabe erledigen. Ein Modul kann als Segment, Routine, Unterprogramm, Subalgorithmus oder Prozedur verstanden werden, das in einem Algorithmus eine bestimmte Aufgabe festlegen und bei Bedarf vom Hauptalgorithmus aufgerufen werden kann. Module verfügen über einen Eingang und einen Ausgang. Entscheidungen können innerhalb eines Moduls getroffen werden, die Auswirkungen auf den gesamten Programmfluss haben, aber der Sprung sollte nur zum Hauptprogramm zurückführen.

Wann ist Modularisierung sinnvoll?

  • Wenn eine Reihe von Anweisungen oder eine bestimmte Aufgabe mehrfach ausgeführt werden muss.
  • Wenn ein Problem komplex oder umfangreich ist und die Lösung in Teile oder Module aufgeteilt oder segmentiert wird, die bestimmte Aufgaben ausführen.

Vorteile der modularen Programmierung

  • Unabhängige Module: Ein Modul kann geändert werden, ohne die anderen zu beeinflussen.
  • Verbesserte Lesbarkeit und Wartbarkeit: Die Verwendung von Modulen erleichtert die Gestaltung und das Verständnis der zugrunde liegenden Logik für Programmierer und Anwender. Die Wartung und Änderung der Programmierung wird vereinfacht.
  • Einfachere Entwicklung und Testbarkeit: Wichtige Aufgaben des Programms können identifiziert und einzelne Prozeduren für diese Aufgaben entworfen und getestet werden.

Lebensdauer von Daten und Parametertypen

Variablentypen nach Lebensdauer:

  • Global: Variablen, die während der gesamten Programmlaufzeit aktiv bleiben.
  • Lokal: Variablen, die erstellt werden, wenn das Programm die Funktion oder Prozedur erreicht, in der sie definiert sind. Nach Beendigung der Prozedur oder Funktion verschwinden sie aus dem Speicher.

Parametertypen:

  • Formalparameter: Eine spezielle Art von Variablen in einer Prozedur, die Werte von außerhalb der Prozedur empfangen können. Sie werden in der Kopfzeile der Prozedur deklariert.
  • Parameter als Wert (Call by Value): Dies sind Parameter, die Werte empfangen können, aber keine Werte zurückgeben. Eine globale Variable wird mit einer lokalen Variablen verbunden, indem ihr Wert übergeben wird; danach besteht keine weitere Beziehung. Änderungen an der lokalen Variablen haben keinen Einfluss auf die globale Variable.
  • Parameter als Variable (Call by Reference): Dies sind Parameter, die Werte empfangen und zurückgeben können. Globale Variablen werden mit lokalen Variablen durch ihren Inhalt verbunden, wodurch eine Synonymie entsteht. Änderungen an der lokalen Variablen wirken sich auf die verbundene globale Variable aus.

Funktionen und Prozeduren

Prozeduren

Prozeduren sind Unterprogramme, also Module, die Teil eines Programms sind und eine bestimmte Aufgabe ausführen. Sie können eigene Variablen haben, die als lokale Variablen bezeichnet werden und nur innerhalb des Prozedurkörpers, nicht aber im Hauptteil des Programms verwendet werden können.

Funktionen

Eine Funktion ist vergleichbar mit einer unabhängigen Modulstruktur. Der Unterschied besteht darin, dass eine Funktion verwendet wird, um einen einzelnen Wert eines einfachen Datentyps zurückzugeben. Funktionen werden unterteilt in:

  • Standardfunktionen: Funktionen, die von einer beliebigen Hochsprache bereitgestellt werden und in arithmetische und alphabetische Funktionen unterteilt sind.
  • Benutzerdefinierte Funktionen: Funktionen, die vom Programmierer definiert werden, um eine bestimmte Aufgabe zu erfüllen. Sie werden in der Regel eingesetzt, wenn eine Berechnung mehrfach im Hauptteil des Algorithmus benötigt wird.

Gemeinsamkeiten von Prozeduren und Funktionen

  • Beide bestehen aus einem Kopf und einem Anweisungsblock.
  • Beide sind eigenständige Programmeinheiten.
  • Parameter, Konstanten und Variablen, die in einer Prozedur oder Funktion deklariert werden, sind lokal für diese Funktion oder Prozedur und nur innerhalb des Unterprogramms gültig.
  • Die Anzahl der tatsächlichen Parameter muss der Anzahl der formalen Parameter entsprechen. Die Typen der tatsächlichen Parameter müssen mit den entsprechenden Typen der formalen Parameter übereinstimmen, mit einer Ausnahme: Ein tatsächlicher Parameter vom Typ Integer kann mit einem formalen Parameter vom Typ Real verknüpft werden.

Unterschiede zwischen Prozeduren und Funktionen

  • Während eine Prozedur durch eine Prozeduraufrufanweisung aufgerufen wird, wird eine Funktion durch ihren Namen in einem Ausdruck referenziert.
  • Da einer Funktion ein Wert zugeordnet ist, muss ihr auch ein Typ zugewiesen werden. Daher muss der Kopf einer Funktion einen Typbezeichner enthalten, der den Typ des Ergebnisses angibt. Dem Namen einer Prozedur ist jedoch kein Wert zugeordnet, und sie hat daher keinen Rückgabetyp.
  • Funktionen geben in der Regel einen einzelnen Wert an die aufrufende Programmeinheit zurück. Prozeduren liefern in der Regel mehrere Werte oder geben gar keinen Wert zurück, wenn sie nur Aufgaben wie eine Ausgabeoperation ausführen.
  • Prozeduren geben Werte über Variablenparameter zurück, während der Wert einer Funktion durch Zuweisung des Funktionsnamens zum Wert in der Funktionsdefinition zurückgegeben wird.

Datenbanken: Konzepte und Anwendungen

Eine Datenbank ist eine Sammlung von Daten aus demselben Kontext, die systematisch für die spätere Verwendung gespeichert werden. Es gibt Programme, sogenannte Datenbank-Management-Systeme (DBMS), um Daten zu speichern und anschließend schnell und strukturiert darauf zuzugreifen.

Definition einer Datenbank

Eine Datenbank wird als eine Menge von Daten definiert, die in Tabellen organisiert und miteinander verknüpft sind. Diese Daten werden von Informationssystemen eines bestimmten Unternehmens oder einer Organisation gesammelt und verwendet, um Informationen zu generieren.

Merkmale und Vorteile von Datenbanken

Merkmale von Datenbanken:

  • Logische und physische Datenunabhängigkeit.
  • Minimale Redundanz.
  • Zugriff durch mehrere gleichzeitige Benutzer.
  • Datenintegrität.
  • Optimierte komplexe Abfragen.
  • Sicherer Zugriff und Überprüfung.
  • Backup und Recovery.
  • Zugriff über Standard-Programmiersprachen.

Ein Datenbank-Management-System (DBMS) ist eine sehr spezielle Art von Software, die als Schnittstelle zwischen der Datenbank, den Benutzern und den Anwendungen dient, die sie nutzen können. Es besteht aus einer Datendefinitionssprache (DDL), einer Datenmanipulationssprache (DML) und einer Abfragesprache.

Vorteile von Datenbanken:

  • Kontrolle der Datenredundanz: Alle Dateien sind integriert, sodass keine mehreren Kopien derselben Daten gespeichert werden.
  • Datenkonsistenz: Die Beseitigung oder Kontrolle der Datenredundanz verringert das Risiko von Inkonsistenzen. Änderungen sind für alle Benutzer sofort verfügbar, und das System selbst kann sicherstellen, dass alle Kopien übereinstimmen.
  • Datenaustausch: Die Datenbank gehört dem Unternehmen und kann von allen berechtigten Benutzern geteilt werden.
  • Einhaltung von Standards: Durch die Integration ist es einfacher, erforderliche Standards einzuhalten. Diese Standards können das Datenformat festlegen, um den Austausch zu erleichtern.
  • Verbesserte Datenintegrität: Wird durch Integritätsbedingungen oder Regeln ausgedrückt, die nicht verletzt werden dürfen. Diese Einschränkungen können sowohl auf Daten als auch auf deren Beziehungen angewendet werden.
  • Verbesserte Sicherheit: Die Sicherheit der Datenbank schützt sie vor unberechtigten Benutzern.
  • Verbesserte Datenverfügbarkeit: Viele DBMS bieten Abfragesprachen oder Berichtsgeneratoren an, die es dem Benutzer ermöglichen, alle Anfragen an die Daten zu stellen, ohne dass ein Programmierer eine Anwendung schreiben muss.
  • Verbesserte Produktivität: Das DBMS bietet viele Standardfunktionen, die ein Programmierer nicht selbst für ein Dateisystem schreiben muss. Die Verfügbarkeit dieser Funktionen ermöglicht es dem Entwickler, sich besser auf die spezifischen, von den Benutzern geforderten Funktionen zu konzentrieren.
  • Verbesserte Wartung: Verbesserte Backup-Dienste.

Nachteile von Datenbanken

  • Komplexität: Ein DBMS ist ein Satz komplexer Programme mit umfangreicher Funktionalität. Es ist wichtig, diese Funktionalität gut zu verstehen, um sie optimal nutzen zu können.
  • Kosten für zusätzliche Ausrüstung: Erfordert möglicherweise zusätzliche Hardware.
  • Anfälligkeit für Ausfälle: Kann anfällig für Systemausfälle sein.

Datenbanktypen

Unter den verschiedenen Arten von Datenbanken finden wir beispielsweise: MySQL, PostgreSQL, Oracle.

Structured Query Language (SQL)

Structured Query Language oder SQL ist eine deklarative Sprache für relationale Datenbanken, die es ermöglicht, verschiedene Arten von Operationen auf ihnen anzugeben und darauf zuzugreifen. Eines ihrer Merkmale ist die Verwaltung von relationaler Algebra und Analysis, die es ermöglicht, Abfragen durchzuführen, um interessante Informationen aus einer Datenbank abzurufen (auf einfache Weise) sowie Änderungen daran vorzunehmen.

Grundlagen von SQL

  • Data Manipulation Language (DML): Dient zum Zugriff, Erstellen, Ändern oder Löschen von Daten in einer bestehenden Datenbankstruktur.
  • Data Definition Language (DDL): Dient zum Erstellen, Ändern oder Löschen von Datenbankobjekten und Privilegien.
  • Transaction Control: Gewährleistet die Konsistenz der Daten, indem logische SQL-Anweisungen in Transaktionen organisiert werden, die als Einheit abgeschlossen oder nicht abgeschlossen werden.
  • Session Control: Ermöglicht die Steuerung der Eigenschaften der Sitzung eines Benutzers. Eine Sitzung beginnt, wenn ein Benutzer eine Verbindung zur Datenbank herstellt, und endet, wenn er die Verbindung trennt.

Verwandte Einträge: