Datenbanksysteme
Datenbanksysteme HS-Weingarten Prof. Michael Friedrich
Datenbanksysteme HS-Weingarten Prof. Michael Friedrich
-
- 1 / 57
-
Flashcards
Nennen Sie die 4 Entwurfsschritte eines Datenbank-Entwurfs!
- Anforderungsanalayse
- Konzeptueller Entwurf
- Logischer Entwurf
- Physischer Entwurf
Nennen Sie ein mögliches Vorgehensweise für eine Anforderungsanalyse?
- Identifikation von Organisationseinheiten
- Identifikation der zu Unterstützenden Aufgaben
- Anforderungs-Sammelplan: Ermittlung der zu befragenden Personen
- Anforderungs- Sammlung: (in engerer disskussion mit den Anwendern/ Fachabteilungen)
- Filterung: Prüfung auf Verständlichekeit und Eindeutigkeit der Information
- Satzklassifikationen: Information wird Objekten, Beziehungen zwischen Objekten, Operationen und Ereignissen zugeordnet
- 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?
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.
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