Datenbanksysteme

Datenbanksysteme HS-Weingarten Prof. Michael Friedrich

Datenbanksysteme HS-Weingarten Prof. Michael Friedrich


L. B.
Diese Lernkarten behandeln grundlegende und fortgeschrittene Konzepte von Datenbanksystemen auf Universitätsniveau. Sie decken Themen wie Tabellen, Entitäten, Beziehungen, Schlüssel, Attribute, Normalformen, Transaktionen und Datenmodellierung ab. Die Karteikarten sind ideal für Studierende der Informatik, die ihr Verständnis von relationalen Datenbanken vertiefen möchten, insbesondere in Bezug auf Integritätsbedingungen, Indizes und die Optimierung von Abfragen.
Karten
57
Lernende
2
Sprache
Deutsch
Kategorie
Informatik
Stufe
Universität
Erstellt / Aktualisiert
31.01.2015 / 21.02.2016

Lernkarten

Nennen Sie die 4 Entwurfsschritte eines Datenbank-Entwurfs!
 

  1. Anforderungsanalayse
  2. Konzeptueller Entwurf
  3. Logischer Entwurf
  4. Physischer Entwurf

Nennen Sie ein mögliches Vorgehensweise für eine Anforderungsanalyse?

  1. Identifikation von Organisationseinheiten
  2. Identifikation der zu Unterstützenden Aufgaben
  3. Anforderungs-Sammelplan: Ermittlung der zu befragenden Personen
  4. Anforderungs- Sammlung: (in engerer disskussion mit den Anwendern/ Fachabteilungen)
  5. Filterung: Prüfung auf Verständlichekeit und Eindeutigkeit der Information
  6. Satzklassifikationen: Information wird Objekten, Beziehungen zwischen Objekten, Operationen und Ereignissen zugeordnet
  7. Formalisierung/ Systematisierung: Lasten- & Pflichtenheft - gegliedert nach Informations- und Datenbankverarbeitungsanforderungen

 

Was ist neben der Informationsstruktur bei den Datenverarbeitungsanforderungen zu berücksichtigen?

  • neben der Informationsstruktur muss auch der Operationale Aspekt - also die Datenverarbeitung berücksichtigt werden
  • Empfehlung hierfür: Bereich in Einzelprozess gliedern
  • für die jeweils separate Anforderungsbeschreibungen erstellt werden
  • Stukturierte Dokumentation bewährt sich in der Praxis z.B.
    • Häufigkeit
    • Benötigte Daten
    • Priorität
    • zu verarbeitende Datenmenge
       

Welche Anforderungen bei dem Prozess der "Zeugnissausstellung" sind wichtig?
 

Was wird in dem Konzeptionellen Entwurf behandelt?

Was ist ein ERM?

Entity-Relationship Modell

Mit welchem Inhalt beschäftigt sich das ER-Modell?

  • Gegenstand und Gegenstandstyp (Entity und Entity-Typ)
  • Beziehungen (Relationship) und Beziehungstypen
  • Eigenschaften (Attribut)
  • Identifikationen (Schlüssel)
  • Rolle (bzgl. Beziehungstyp)
     

Wie lässt sich ein Attribut von einem Schlüssel im ER-Modell unterscheiden?

Wie wird ein 1. Entyty von einem 2. Relationship im ERM unterschieden?

1. Es wird in Form eines  Rechtecks dargestellt

2. Darstellung als Raute

 

 Definition Entity

  • Individuelles und eindeutig identifizierbares Exemplar eines
    • Objekts,
    • einer Person,
    • eines Begriffes,
    • eines Ereignisses, etc. 
  • der realen Welt (physisch) bzw. der Vorstellungswelt (gedanklich)

Welcher der folgenden Beispiele ist ein Entity (Gegenenstand)?
 

Wie kann man Entitys eindeutig identifizieren?

Entities werden durch ihre Attribute inklusive deren Werte
näher charakterisiert und eindeutig identifiziert
– Werte kommt aus vorgegebenen Wertebereichen (Domain)
– Beispiel: Attribute des Entity „Hans Müller“
• NAME : Müller
• VORNAME : Hans
• GEB:  01.02.1965
• MATRNR: 123456

Was ist der Unterschied zwischen Entitys und Entity-Typen?

  • Oberbegriff für eine Menge von Entities der Miniwelt, die gleiche Attribute (nicht Attributwerte) besitzen
    • Ähnliche Entities werden somit zu Entity-Typen abstrahiert
  • Sammlung aller Entitäten eines Entity-Typs wird auch als Entity-Menge (Entity-Set) bezeichnet
  • Jeder Entity-Typ erhält einen eindeutigen Namen
    • Beispiel
    • – Maier, Hans, 01.02.1965, Weingarten, 200000
    • – Müller, Hugo, 12.06.1997, Ravensburg, 200001

Was ist der Unterschied zwischen den Begriffen Datenbank, Datenbankmanagementsystem und Datenbanksystem? ( 3 Punkte)

  • DB = strukturierte Daten
  • DBMS = Software zu Verwatlung strukturierter Daten
  • DBS = DBMS + DB

Was ist ein Primärschlussel und wie hängt er mit dem Begriff Superschlüssel zusammen? (4 P)

  • ein Primärschlüssel ist ein minimaler (bzgl. der Attribute) Schlüssel aus der Menge Superschlüssel
  • D.h. Superschlüssel sind alle Kombinationen die eine Zeile einer Relation / Tabelle eindeutig beschreiben.
  • Aus dieser Menge werden die minimalen Schlüssel als Schlüsselkandidaten bestimmt.
  • Aus diesen Schlüsselkandidaten wird ein Primärschlüssel gewählt

Was ist der Unterschied zwischen DDL und DML? (4P)

  • DDL = Data Definition Language
    • = Beschreibung der Schemagenerierung und Änderung (Datenstruktur)
  • DML = Data Manipulation Language
    •  = Änderung der DB (Dateninhalte)

Was versteht man unter einem Superschlüssel?

Ein Entity-Typ muss unterscheidbar/ identifizierbar sein!

Wahr oder Falsch?

Was ist ein Schlüsselkandidat?
 

ein minimaler Superschlüssel

Ein Schlüsselkandidat wird als Primärschlüssel ausgewählt!

Wie werden die anderen Schlüsselkandidaten bezeichnet?

Ein Entity-Typ muss immer einen Primärschlüssel besitzen!!!

Wahr oder Falsch?

Was passiert, wenn ein bestimmtes Attribut in einer Tabelle Unique
ist?

Was muss die DB beim Einfügen überprüfen? ( 3 Punkte)

  • Werte in dieser Spalte dürfen nicht doppelt vorkommen
  • Beim Einfügen prüft die DB, ob es bereits Zeilen in der Tabelle gibt, für die der Wert des Attributs gleich dem einzufügenden ist.
  • Dazu wird automatisch ein Index angelegt, da die Suche nach Werten in der Spalte deutlich schneller läuft.

Warum muss man beim Löschen von Tabellen Constraints beachten?
Welches Problem könnte auftreten? (3 Punkte)

  • Constraints können verletzt werden, wenn eine Tabelle gelöscht wird, die von einem FK Constraint referenziert wird.
  • Mit  drop  Table  Cascade  Constraints  wird  sowohl  die  Tabelle,  als  auch  alle  abhängigen Constraints gelöscht.

Welche Mengenoperationen stell SQL zur verfügung?

  • Union
  • Intersect
  • except

Was ist der Unterschied zwischen WHERE und HAVING? (2 Punkte)

  • Where ist eine Einschränkung der Ergebnismenge, Gruppierungsfunktionen können hier nicht verwendet werden.
  • Having ist die Einschränkung für Gruppierungsfunktionen

Beim Ausführen des INSERT INTO Befehls soll sich die ID (PrimaryKey)  automatisch  um  1  erhöhen.  Wie  heißt  das  Konstrukt,  mit welchen sich dies automatisch realisieren lässt und was sind seine Eigenschaften? (3 Punkte)

  • Sequence
  • Gibt transaktionssicher beim Aufruf von NEXTVAL eine neue Nummer aus. Lücken können auftreten aber keine doppelten Werte.

Was ist der Unterschied zwischen INNER JOIN und OUTER JOIN? (4Punkte)

  • inner joins benötigen zu jeder Zeile in einer Tabelle mindestens einen Join Partner (Zeile) aus der anderen Tabelle.
    • Es werden jene Daten angezeigt, für die es in jeder der beiden Tabellen Entsprechungen gibt.
  • outer joins füllen die Ergebnismenge entsprechend mit NULL Werten, falls sie keinen Join Partner finden.
    • aus einer Tabelle werden auch jene Daten angezeigt, für die es in der anderen keine entsprechung gibt.

Was sind Datenbanken und wozu dienen Sie?

- Datenbanken sind die konkrete Modellierung (in SQL) eines Weltausschnitts auf
  einem Datenbanksystem

- Sie dienen der Speicherung und Verarbeitung von Daten.

Was ist die Aufgabe der Datenmodellierung?

- In der Datenmodellierung werden keine konkreten Daten modelliert, sondern der
  Weltausschnitt, und das möglichst effizient und redundanzfrei. Die
  Datenmodellierung ist neben der Prozessmodellierung zentraler Bestandteil
  eines Unternehmens.
  Während die Datenmodellierung sozusagen die statischen Aspekte modelliert,
  liefert die Prozessmodellierung dann   die dynamischen. Beide zusammen sind
  unabdingbar in jeder Unternehmensmodellierung.

Was ist das Ergebnis der Datenmodellierung?

- Aus dem so entstandenen Datenmodell wird dann die Datenbank erstellt,
  typischerweise mit Hilfe von SQL.

Warum gibt es Attribute bzw. was ist das?

- Attribute beschreiben Objekte. Erst wenn mindestens ein identifizierendes
  Attribut und ein beschreibendes Attribut vorliegen, kann ein Objekt gebildet
  werden! Oftmals werden über Attribute erst Objekte und Beziehungen entdeckt.

Welche Objekte/Beziehungen werden zu Klassen zusammengefasst?

- Nach der Zuordnung der Attribute zu den Objekten/Beziehungen werden die
  Objekte und Beziehungen zusammengefasst, die durch dieselben Attribute
  beschrieben werden. Diese zusammengefassten Objekte bzw. Beziehungen werden
  dann Objektklassen bzw. Beziehungsklassen genannt.

Welche Attribute werden den Objekten zugeordnet?

- Alle die zur Beschreibung oder Verwendung im Anwendungsbereich notwending
  sind.
  Objekte entstehen erst wenn mindestens ein identifizierendes Attribut und ein
  beschreibendes Attribut vorliegen!

Was ist ein Datenmodell?

- Ein Datenmodell ist das Modell der für die komplexen Realität notwendigen
  Daten. Es ist die Grundlage der Datenbank.

Was sind flache Tabellen?

Im Schnittpunkt jeder Zeile und Spalte wird genau eine Attributsausprägung festgehalten, nicht mehr. Dies macht die Tabelle zur flachen Tabelle.

Beziehungen zwischen Objektklassen bzw. Relationen
Wozu?

 Sie beschreiben den semantischen Zusammenhang, welcher später in der
  Anwendungssoftware verwendet wird und welcher bei der Erstellung wichtig ist,
  um Redundanzen zu vermeiden.

Welche Beziehungen gibt es in einem ER Modell?
 

  • 1:1 Beziehungen,
  • 1:n Beziehungen,
  • n:1 Beziehungen und
  • n:m Beziehungen

Welche Bedeutung hat das Ergebnis folgender Abfrage? (3 Punkte)

SELECT COUNT(*), ARTIKEL.ARTIKELNUMMER
FROM POSITION, ARTIKEL
WHERE POSITION.ARTIKELNUMMER = ARTIKEL.ARTIKELNUMMER
GROUP BY ARTIKEL.ARTIKELNUMMER, ARTIKEL.BESTAND
HAVING count(*) > ARTIKEL.BESTAND;

Alle Artikelnummern mit Summe der bestellten Artikel bei denen die Bestellungen den Bestand übersteigen.

Was macht folgendes lauffähiges Statement? (5 Punkte)

SELECT NAME, kundensumme / TOTAL * 100
FROM
(SELECT KUNDE.NAME, SUM(MENGE * VK) AS kundensumme, s.TOTAL
   FROM ARTIKEL, POSITION, BESTELLUNG, KUNDE,
    (SELECT SUM(menge * vk) AS TOTAL
     FROM POSITION INNER JOIN ARTIKEL
     ON (ARTIKEL.ARTIKELNUMMER = POSITION.ARTIKELNUMMER)
    ) s
     WHERE POSITION.ARTIKELNUMMER = ARTIKEL.ARTIKELNUMMER
   AND KUNDE.KUNDENNUMMER       = BESTELLUNG.KUNDENNUMMER
   AND POSITION.BESTELLNUMMER   = BESTELLUNG.BESTELLNUMMER
   GROUP BY KUNDE.KUNDENNUMMER, KUNDE.NAME, s.TOTAL
  );

Berechnung des % Anteils eines jeden Kunden am Gesamtverkauf

Was sind die Vor- und Nachteile von Indexen. (4 Punkte)

Vorteile
a)  Schnellerer Zugriff bei SELECT
b)  Einfacherer JOIN
Nachteile
a)  Speicherplatzverbrauch
b)  Langsamer bei Insert, Update und Delete

Lernen