SQL-Abfragen und Datenbankmanagement: Korrigierte Übungsaufgaben
Eingeordnet in Informatik
Geschrieben am in
Deutsch mit einer Größe von 8,08 KB
Die folgenden Abschnitte korrigieren und formatieren die bereitgestellten Datenbank- und SQL-Aufgaben.
1. Abfrage zur Auswahl eindeutiger Namen
Die Beispielabfrage liefert die Antwort:
SELECT DISTINCT Name FROM DPersonal;Ziel: Eine Liste aller eindeutigen Tabellennamen aus DPersonal ohne Wiederholungen.
2. Löschen einer vollständigen Bestellungsaufzeichnung (OP1300)
Um den vollständigen Datensatz der Bestellung OP1300 zu löschen, müssen folgende Schritte in dieser Reihenfolge durchgeführt werden:
- Index löschen.
- Datensatz löschen.
- Tabellen neu verknüpfen (falls erforderlich, hier wird die Fremdschlüsselbeziehung neu erstellt).
Der Index der Beziehung heißt FkPedidoDespacho.
- Entfernt den Link (DROP CONSTRAINT):
ALTER TABLE DROP CONSTRAINT FkPedidoDespacho; - Löscht die Registrierung (DELETE):
DELETE FROM OrdenPedido WHERE Codigo_OP = 'OP1300'; - Stellt die Beziehung wieder her (ADD CONSTRAINT):
ALTER TABLE OrdenPedido ADD CONSTRAINT FkPedidoDespacho FOREIGN KEY (Order) REFERENCES Articulos(Codigo_OP);
3. Beziehung Viele zu Viele (N:M)
Zur Auflösung einer Beziehung zwischen zwei Tabellen (N:M) müssen mindestens folgende Bedingungen erfüllt sein:
- a) Sie müssen die Namen beider Tabellen beinhalten.
- b) Sie müssen einen Primärschlüssel (PK) haben.
- c) Sie können Tabellen haben, die einen Teil des Namens in beiden enthalten.
Die korrekte Antwort ist g) a, b und c.
4. Verknüpfung zweier nicht verbundener Tabellen
Es existiert ein relationales Datenmodell mit 14 Tabellen, wobei OrdenPedido und Office nicht verbunden sind.
Führen Sie die Abfrage zur Verknüpfung der Tabelle OrdenPedido mit Office durch. Die Versandtabelle hat eine Tabelle namens FK Auftrag, die die Verbindung angeben sollte. Der Index für die Beziehung sollte FkRelacion heißen.
SQL-Anweisung zur Verknüpfung:
ALTER TABLE OrdenPedido ADD CONSTRAINT FkRelacion FOREIGN KEY (Order) REFERENCES Office(Codigo_OP);5. Identifizierung von Benutzeransichten (User Views)
Identifizieren Sie die folgenden Arten von Benutzeransichten:
- I: Informelle Quellen wie Telefon.
- II: Eine Teilmenge von Daten, die ein Benutzer durch eine bestimmte Anwendung verwendet.
- III: Entspricht formalen Informationsquellen wie Dokumenten.
- IV: Dokumente, bei denen der Nutzer Informationen bekommen kann.
Die korrekte Zuordnung (basierend auf typischen Definitionen, wobei die Optionen A, B, C, D fehlen) wird hier nicht vollständig aufgelöst, aber die Beschreibungen sind formatiert.
6. Inhalt des Data Dictionary
Das Data Dictionary besteht aus:
- a) Jedes Datenelement oder Attribut, das in einem Profil erscheint, muss beschrieben und definiert werden.
- c) Eine detaillierte Beschreibung der einzelnen Tabelle und jedes Attributs, das jede Tabelle ausmacht.
Die korrekte Antwort ist e) a und c.
7. Beispielabfrage zur Gehaltsaktualisierung
Die Beispielabfrage liefert die Antwort:
UPDATE Empleado SET Salario = 20000 WHERE Bono IS NULL AND Salario <= 200000 AND Edad < 21;Beschreibung der Auswahl: Mitarbeiter, die keinen Bonus haben, weniger als oder gleich $200.000 verdienen und deren Alter kleiner als 21 Jahre ist, erhalten ein Trinkgeld von $20.000.
8. Ergebnisspalte aus Tabelle löschen
Löschen Sie die Spalte Resultado aus der Tabelle ProcesoFinal.
Antwort (R): ALTER TABLE ProcesoFinal DROP COLUMN Resultado;
9. Spalte zur Tabelle hinzufügen (Klassen)
Fügen Sie der Tabelle Clases die numerische Spalte Asistencia hinzu.
Antwort (R): ALTER TABLE Clases ADD Asistencia NUMERIC;
10. Definition der Normalformen (NF)
Definition der ersten drei Normalformen:
- 1NF (Erste Normalform): Jedes Feld muss einstellig (atomar) sein.
- 2NF (Zweite Normalform): Muss in 1NF sein. Die Felder müssen von ihrem gesamten Primärschlüssel abhängen.
- 3NF (Dritte Normalform): Muss in 2NF sein. Die Felder müssen transitiven Abhängigkeiten vermeiden (d.h., sie dürfen nicht von Nicht-Primärschlüssel-Attributen abhängen).
11. Spalte aus Tabelle löschen (Klassen)
Löschen Sie die Spalte Asistencia vom Typ numeric aus der Tabelle Clases.
Antwort (R): ALTER TABLE Clases DROP COLUMN Asistencia;
12. Fremdschlüsselbeziehung hinzufügen (Test)
Fügen Sie der Tabelle Test eine relationale Spalte PruebaFinal hinzu, die auf die Spalte ID_UltimaOpción der Tabelle T_Ronda verweist (PK).
Antwort (R): ALTER TABLE Test ADD CONSTRAINT FK_PruebaFinal FOREIGN KEY (ID_UltimaOpción) REFERENCES T_Ronda (ID_UltimaOpción);
13. Feld zu Tabelle hinzufügen (Ventas)
Fügen Sie der Tabelle Ventas das Feld Detalle hinzu, um Details zu einem Produktbefehl zu speichern.
Antwort (c): ALTER TABLE Ventas ADD Detalle VARCHAR(15);
14. Daten aus Tabelle löschen (Vendedor)
Wählen Sie die richtige Anweisung, um Daten zu löschen, bei denen id_vendedor = '1-9'.
Antwort (c): DELETE FROM Vendedor WHERE id_vendedor = '1-9';
15. Spalte und Einschränkung löschen (Test)
Löschen Sie die Spalte PruebaFinal aus der Tabelle Test, die mit der Tabelle T_Ronda verknüpft ist.
Zuerst die Einschränkung entfernen, dann die Spalte löschen:
ALTER TABLE Test DROP CONSTRAINT PruebaFinal;
ALTER TABLE Test DROP COLUMN PruebaFinal;16. Spalte zu Tabelle hinzufügen (Klassen)
Fügen Sie der Tabelle Clases die Spalte Mes vom Typ varchar(20) hinzu.
Antwort (R): ALTER TABLE Clases ADD Mes VARCHAR(20);
17. Mitarbeiterdatensätze löschen
Löschen Sie alle Mitarbeiterdatensätze, deren Name mit dem Buchstaben "P" beginnt.
Antwort (R): DELETE FROM Empleado WHERE Nombre LIKE 'P%';
18. UNION-Abfrageanalyse
Analyse der folgenden SQL-Anweisung:
SELECT CompanyName, City FROM Proveedores WHERE Pais = 'Brazil'
UNION
SELECT CompanyName, City FROM Clientes WHERE Pais = 'Brazil'
UNION
SELECT Nombre, Ciudad FROM Empleado WHERE Region = 'Sudamerica';Antwort (C): Ruft den Namen und die Stadt aller Lieferanten in Brasilien ab, sowie den Namen und die Stadt aller Kunden in Brasilien, sowie den Namen und die Stadt aller Mitarbeiter in Südamerika (UNION entfernt Duplikate zwischen den Ergebnismengen).
20. Abfrage zur Auflistung von Studenten und Rennleitern
Erforderlich: Liste aller Daten des Studenten (DatosP), der im Rennen mit dem Code 'C200' eingeschrieben ist, sowie den Namen des Rennleiters dieser Karriere.
Antwort (R):
SELECT
DP.Rut, DP.Nombre, DP.Edad, DP.Ciudad,
M.Rut,
JC.Nombre AS NombreJefeCarrera
FROM
DatosP DP
JOIN
Matricula M ON DP.Rut = M.alumno
JOIN
JefesCarreras JC ON M.Carrera = JC.Codigo
WHERE
JC.Codigo = 'C200';