-- ---------------------------------------------------------------------- -
-- 1. Beispiel) insert data
-- ---------------------------------------------------------------------- -
-- Fuegen Sie alle moeglichen Kombinationen der COLORS, NATIONALITIES
-- und PETS Datensaetze in die DATA Tablle ein.
-- region Beispiel Ressourcen)
value varchar(10) not null,
insert into colors values ('yellow');
insert into colors values ('blue');
insert into colors values ('red');
insert into colors values ('white');
insert into colors values ('green');
create table nationalities
value varchar(20) not null,
insert into nationalities values ('Norway');
insert into nationalities values ('Ukraine');
insert into nationalities values ('England');
insert into nationalities values ('Spain');
insert into nationalities values ('Japan');
name varchar(20) not null,
insert into pets values ('fox');
insert into pets values ('horse');
insert into pets values ('snail');
insert into pets values ('dog');
insert into pets values ('zebra');
color varchar(20) not null,
nationality varchar(20) not null,
pet varchar(20) not null,
primary key (color, nationality, pet),
constraint fk_data_color foreign key (color)
references colors (value),
constraint fk_data_nationality foreign key (nationality)
references nationalities (value),
constraint fk_data_pet foreign key (pet)
-- region 1.1) INSERT Statements
DROP TABLE nationalities;
-- ---------------------------------------------------------------------- -
-- 2. Beispiel) DDL Statements
-- ---------------------------------------------------------------------- -
-- Erzeugen Sie die PROJECTS Tabellen in der Datenbank und uebernehmen Sie die
-- Daten in die Datenbank.
-- Adaptieren Sie anschliessend die Tabellen und Daten entsprechend der geforderten
-- region PROJECTS Ressourcen)
PROJECT_ID NUMBER(19, 0) NOT NULL AUTO INCREMENT,
TITLE VARCHAR(100) NOT NULL UNIQUE,
DESCRIPTION VARCHAR(4000),
INSERT INTO projects (PROJECT_ID, description, title) VALUES (1,'Finite Elemente in der Simulation. Zur Simulation der Kraftstoffverbrennung in Motoren sollen Finite Elemente Methoden eingesetzt werden.', 'Finite Elemente in der Simulation');
INSERT INTO projects (PROJECT_ID, description, title) VALUES (2,'Schnellhärteverfahren in der Betontechnik. Für den Einsatz unter extremen Bedingungen (Brückenbau) sollen Schnellhärteverfahren in der Betontechnik gefunden werdne.', 'Schnellhärteverfahren in der Betontechnik');
INSERT INTO projects (PROJECT_ID, description, title) VALUES (3,'AI in der Robotertechnik. Entwickeln einer leistungsstarken AI für die Robotersteuerung im Roboterfussball', 'AI in der Robotortechnik');
INSERT INTO projects (PROJECT_ID, description, title) VALUES (4,'Brückenbau im Meer. Es sollen Methoden zum Brückenbau zwischen Inseln erdacht und perfektioniert werden', 'Brückenbau im Meer');
INSERT INTO projects (PROJECT_ID, description, title) VALUES (5,'Aufschüttung von künstlichen Inseln', 'Aufschüttung von künstlichen Inseln');
INSERT INTO projects (PROJECT_ID, description, title) VALUES (6,'Bau von industriellen Flughäfen auf künstlichen Inseln.', 'Bau von industriellen Flughäfen auf künstlichen Inseln');
INSERT INTO projects (PROJECT_ID, description, title) VALUES (7,'Numerische Methoden in der Differentiellen Analysis', 'Numerische Methoden in der Differentiellen Analysis');
INSERT INTO projects (PROJECT_ID, description, title) VALUES (8,'Numerische Methoden in der Geometrischen Algebra', 'Numerische Methoden in der Geometrischen Algebra');
INSERT INTO projects (PROJECT_ID, description, title) VALUES (9,'Computeralgorithmen auf Graphen', 'Computeralgorithmen auf Graphen');
INSERT INTO projects (PROJECT_ID, description, title) VALUES (10,'Computeralgorithmen in der Diskreten Mathematik', 'Computeralgorithmen in der Diskreten Mathmatik');
INSERT INTO projects (PROJECT_ID, description, title) VALUES (11,'Statistische Prognosen in der Wahlanalyse', 'Statistische Prognosen in der Wahlanalyse');
INSERT INTO projects (PROJECT_ID, description, title) VALUES (12,'Algorithmen in der Mustererkennung', 'Algorithmen in der Mustererkennung');
INSERT INTO projects (PROJECT_ID, description, title) VALUES (13,'Gesichtsmerkmale in der Mustererkennung', 'Gesichtmerkmale in der Mustererkennung');
INSERT INTO projects (PROJECT_ID, description, title) VALUES (14,'Generierung von Zufallszahlen', 'Generierung von Zufallszahlen');
INSERT INTO projects (PROJECT_ID, description, title) VALUES (15,'Gleichverteilte Zufallszahlen in statistischen Algorithmen', 'Gleichverteilte Zufallszahlen in statistischen Algorithmen');
INSERT INTO projects (PROJECT_ID, description, title) VALUES (16,'Codierungsverfahren', 'Codierungsverfahren');
INSERT INTO projects (PROJECT_ID, description, title) VALUES (17,'Codes in der Gruppenalgebra', 'Codes in der Gruppenalgebra');
INSERT INTO projects (PROJECT_ID, description, title) VALUES (18,'Kürzeste Wege in Graphen berechnen', 'Kürzeste Wege in Graphen berechnen');
INSERT INTO projects (PROJECT_ID, description, title) VALUES (19,'Numerische Methoden für die Fourier Transformation', 'Numerische Methoden für die Fourier Transformation');
INSERT INTO projects (PROJECT_ID, description, title) VALUES (20,'Infrastruktur im alpinen Gelände', 'Infrastruktur im alpinen Gelände');
INSERT INTO projects (PROJECT_ID, description, title) VALUES (21,'Tunnelbau im alpienen Gelände', 'Tunnelbau im alpinen Gelände');
-- region 2.1) ALTER TABLE, UPDATE
-- Aendern Sie den Namen der PROJECTS Tabelle zu PROJECTS_BT
-- Ein Projekt wird eindeutig identifiziert durch eine PROJECT_ID. Fuer Projekte
-- wird ein TITLE (varchar(200) - not null, unique), eine DESCRIPTION (varchar(4000))
-- und ein Datum CREATED_AT (DATE - not null) gespeichert.
-- Die Werte der CREATED_AT Spalte muessen vor dem 12.01.2020 liegen! Stellen
-- Sie eine entsprechende Pruefung sicher.
-- Verwenden Sie den ALTER TABLE und UPDATE Befehl um die PROJECTS Tabelle und die
-- entsprechenden Daten zu adaptieren.
-- region REQUEST_FUNDING_PROJECTS, RESEARCH_FUNDING_PROJECTS Ressourcen
create table research_funding_projects
project_id number(19, 0) not null,
is_eu_sponsored number(1) not null,
is_ffg_sponsored number(1) not null,
is_fwf_sponsored number(1) not null,
primary key (project_id),
constraint fk_rfp_project_id foreign key (project_id)
references projects (PROJECT_ID)
create table request_funding_projects
project_id number(19, 0) not null,
is_small_project number(1) not null,
primary key (project_id),
constraint fk_researchfp_project_id foreign key (project_id)
references projects (PROJECT_ID)
INSERT INTO research_funding_projects (IS_EU_SPONSORED, IS_FFG_SPONSORED, IS_FWF_SPONSORED, project_id) VALUES (0, 1, 0, 1);
INSERT INTO research_funding_projects (IS_EU_SPONSORED, IS_FFG_SPONSORED, IS_FWF_SPONSORED, project_id) VALUES (1, 1, 0, 3);
INSERT INTO research_funding_projects (IS_EU_SPONSORED, IS_FFG_SPONSORED, IS_FWF_SPONSORED, project_id) VALUES (0, 1, 1, 7);
INSERT INTO research_funding_projects (IS_EU_SPONSORED, IS_FFG_SPONSORED, IS_FWF_SPONSORED, project_id) VALUES (0, 1, 1, 8);
INSERT INTO research_funding_projects (IS_EU_SPONSORED, IS_FFG_SPONSORED, IS_FWF_SPONSORED, project_id) VALUES (0, 0, 1, 9);
INSERT INTO research_funding_projects (IS_EU_SPONSORED, IS_FFG_SPONSORED, IS_FWF_SPONSORED, project_id) VALUES (0, 0, 1, 10);
INSERT INTO research_funding_projects (IS_EU_SPONSORED, IS_FFG_SPONSORED, IS_FWF_SPONSORED, project_id) VALUES (1, 0, 0, 12);
INSERT INTO research_funding_projects (IS_EU_SPONSORED, IS_FFG_SPONSORED, IS_FWF_SPONSORED, project_id) VALUES (0, 0, 1, 13);
INSERT INTO research_funding_projects (IS_EU_SPONSORED, IS_FFG_SPONSORED, IS_FWF_SPONSORED, project_id) VALUES (1, 0, 0, 14);
INSERT INTO research_funding_projects (IS_EU_SPONSORED, IS_FFG_SPONSORED, IS_FWF_SPONSORED, project_id) VALUES (0, 0, 1, 15);
INSERT INTO research_funding_projects (IS_EU_SPONSORED, IS_FFG_SPONSORED, IS_FWF_SPONSORED, project_id) VALUES (0, 1, 0, 16);
INSERT INTO research_funding_projects (IS_EU_SPONSORED, IS_FFG_SPONSORED, IS_FWF_SPONSORED, project_id) VALUES (1, 1, 0, 17);
INSERT INTO research_funding_projects (IS_EU_SPONSORED, IS_FFG_SPONSORED, IS_FWF_SPONSORED, project_id) VALUES (0, 0, 1, 18);
INSERT INTO request_funding_projects (is_small_project, project_id) VALUES (0, 2);
INSERT INTO request_funding_projects (is_small_project, project_id) VALUES (0, 4);
INSERT INTO request_funding_projects (is_small_project, project_id) VALUES (0, 5);
INSERT INTO request_funding_projects (is_small_project, project_id) VALUES (0, 6);
INSERT INTO request_funding_projects (is_small_project, project_id) VALUES (0, 11);
INSERT INTO request_funding_projects (is_small_project, project_id) VALUES (1, 19);
INSERT INTO request_funding_projects (is_small_project, project_id) VALUES (0, 20);
INSERT INTO request_funding_projects (is_small_project, project_id) VALUES (0, 21);
-- region 2.2) CREATE TABLE
-- Es werden 2 Arten von Projekten unterschieden: RESEARCH_FUNDING_PROJECTS und
-- REQUEST_FUNDING_PROJECTS. Fuer Forschungsfoerderungsprojekte werden zusaetzlich die
-- folgenden Spalten gespeichert: IS_EU_SPONSORED (number(1) - not null), IS_FFG_SPONSORED
-- (number(1) - not null), IS_FWF_SPONSORED (number(1) - not null).
-- Fuer Forschungsfoerderungsprojekte muss sichergestellt werden dass zumindestens einer
-- der 3 SPONSERED Werte gesetzt ist.
-- Fuer Auftragsforschungsprojekte wird zusaetzlich IS_SMALL_PROJECT (number(1) - not null)
-- Wird ein PROJECTS Datensatz geloescht, muss der entsprechende REQUEST_FUNDING_PROJECTS
-- bzw. RESEARCH_FUNDING_PROJEJECTS Datensatz ebenfalls geloescht werden!
-- Listen Sie alle Constraints der PROJECTS, REQUEST_FUNDING_PROJECTS bzw. RESEARCH_FUNDING_PROJECTS
-- Tabelle auf. Welche der Constraints sind dafuer verantwortlich das die Beziehungen zwischen
-- den Tabellen von der Datenbank als 1:1 Beziehungen erkannt werden?
-- region 2.3) TRUNCATE TABLE
-- Loeschen Sie alle Projekte!
-- region 2.4) DROP TABLE
-- Loeschen Sie die folgenden Tabellen und Ressourcen:
-- REQUEST_FUNDING_PROJECTS
-- RESEARCH_FUNDING_PROJECTS
-- SEQ_PROJECTS_PROJECT_ID
-- ---------------------------------------------------------------------- -
-- 3. Beispiel) DML Befehle
-- ---------------------------------------------------------------------- -
-- region 3.1) CREATE TABLE AS SELECT ...
-- Legen Sie die Tabelle EMPLOYEE_REPORTS an. Die Spalten entsprechen den
-- Spalten der angegebenen Tabellen!
-- DEPARTMENT_NAME DEPARTMENTS
-- COUNTRY_NAME COUNTRIES
-- region 3.2) ALTER TABLE
-- Erweitern Sie die EMPLOYEE_REPORTS Tabelle um folgende Constraints:
-- * PRIMARY KEY (EMPLOYEE_ID)
-- * Definieren Sie die entsprechenden FOREIGN KEY Constraints!
-- region 3.3) ALTER TABLE, UPDATE
-- Erweitern Sie die EMPLOYEE_REPORTS Tabelle um folgende Spalten:
-- VERSION NUMBER(10) not null (Initialwert: 0)
-- INCOME VARCHAR(20) (Initialwert: 'DEFAULT')
-- @VERSION: Die Versionsspalte zeigt an wie oft ein Datensatz
-- geaendert wurde. Fuer jede Aenderung eines Datensatzes ist der
-- @INCOME: Bei einem Einkommen das hoeher als 6000 (EMPLOYEES->SALARY) ist
-- ist der Wert HIGH_INCOME einzutragen.
-- region 3.4) DELETE FROM
-- Loeschen Sie alle Angestellten die nicht in einer IT Abteilung arbeiten.
-- Hinweis: IT, IT Support, IT Helpdesk
-- Aendern Sie den Namen der IT Abteilung zu 'IT - Softwareengineering'.
-- region 3.6) DROP TABLE
-- Loeschen sie die EMPLOYEES_REPORTS Tabelle.