PMG2426 4/DB Beleg/Sophia
Aus ProgrammingWiki
Wiki-Quelltext dieser Seite.
<language>SQL</language>
=='''Datenbankprojekt: Datenbank einer Arztpraxis'''==
==Ziel der Datenbank==
==Modellierung in einem ERM-Modell==
==Transformation in das Relationenmodell==
==Erstellen der DB==
<code id="52dcdf16795a2">
CREATE TABLE Arztpraxis (
Arztpraxis_ID INT PRIMARY KEY,
Telefonnummer VARCHAR(15),
Anschrift VARCHAR(255),
Postleitzahl VARCHAR(10),
Spezialisierung VARCHAR(50)
);
CREATE TABLE Arzt (
Arzt_ID INT PRIMARY KEY,
Vorname VARCHAR(50),
Nachname VARCHAR(50),
Geburtsjahr INT,
Arztpraxis_ID INT,
FOREIGN KEY (Arztpraxis_ID) REFERENCES Arztpraxis(Arztpraxis_ID)
);
CREATE TABLE Patient (
Patient_ID INT PRIMARY KEY,
Vorname VARCHAR(50),
Nachname VARCHAR(50),
Geburtsjahr INT,
Wohnort VARCHAR(50),
Krankenkasse VARCHAR(50)
);
CREATE TABLE Diagnose (
Diagnose_ID INT PRIMARY KEY,
Informationen TEXT,
Patient_ID INT,
FOREIGN KEY (Patient_ID) REFERENCES Patient(Patient_ID)
);
CREATE TABLE ArztBehandeltPatient (
Arzt_ID INT,
Patient_ID INT,
PRIMARY KEY (Arzt_ID, Patient_ID),
FOREIGN KEY (Arzt_ID) REFERENCES Arzt(Arzt_ID),
FOREIGN KEY (Patient_ID) REFERENCES Patient(Patient_ID)
);
INSERT INTO Arztpraxis VALUES (1, '030-1234567', 'Musterstraße 1, Berlin', '10115', 'Allgemeinmedizin');
INSERT INTO Arztpraxis VALUES (2, '040-2345678', 'Lindenweg 5, Hamburg', '20095', 'Dermatologie');
INSERT INTO Arztpraxis VALUES (3, '089-3456789', 'Kirchplatz 3, München', '80331', 'Pädiatrie');
INSERT INTO Arztpraxis VALUES (4, '069-4567890', 'Wiesenweg 10, Frankfurt', '60311', 'Orthopädie');
INSERT INTO Arztpraxis VALUES (5, '0221-5678901', 'Bahnhofstraße 8, Köln', '50667', 'Neurologie');
INSERT INTO Arzt VALUES (1, 'Hans', 'Müller', 1978, 1);
INSERT INTO Arzt VALUES (2, 'Maria', 'Schmidt', 1973, 2);
INSERT INTO Arzt VALUES (3, 'Thomas', 'Meier', 1988, 3);
INSERT INTO Arzt VALUES (4, 'Sabine', 'Schneider', 1983, 4);
INSERT INTO Arzt VALUES (5, 'Michael', 'Weber', 1968, 5);
INSERT INTO Patient VALUES (1, 'Peter', 'Becker', 1993, 'Berlin', 'AOK');
INSERT INTO Patient VALUES (2, 'Anna', 'Schulz', 1998, 'Hamburg', 'TK');
INSERT INTO Patient VALUES (3, 'Julia', 'Fischer', 1983, 'München', 'Barmer');
INSERT INTO Patient VALUES (4, 'Markus','Weiß', 1968, 'Frankfurt', 'DAK');
INSERT INTO Patient VALUES (5, 'Laura', 'Wagner', 1963, 'Köln', 'Barmer');
INSERT INTO Diagnose VALUES (1, 'Grippe', 1);
INSERT INTO Diagnose VALUES (2, 'Erkältung', 1);
INSERT INTO Diagnose VALUES (3, 'Allergie', 2);
INSERT INTO Diagnose VALUES (4, 'Diabetes Typ 2', 3);
INSERT INTO Diagnose VALUES (5, 'Bluthochdruck', 4);
INSERT INTO ArztBehandeltPatient VALUES (1, 1);
INSERT INTO ArztBehandeltPatient VALUES (1, 2);
INSERT INTO ArztBehandeltPatient VALUES (2, 3);
INSERT INTO ArztBehandeltPatient VALUES (3, 4);
INSERT INTO ArztBehandeltPatient VALUES (4, 5);
</code>
----
==Erstellen von verschiedenen Abfragen==
Abfrage aller Arztpraxen mit Spezialisierung "Pädiatrie"
<run id="52f89f4ff1818">
SELECT * FROM Arztpraxis
WHERE Spezialisierung = 'Pädiatrie';
</run>
Abfrage aller Patienten, die in Berlin leben
<run id="92f89f4ff1818">
SELECT Vorname, Nachname
FROM Patient
WHERE Wohnort = 'Berlin';
</run>
Abfrage von Patienten und ihren behandelnden Ärzten
<run id="52f89f4ff1811">
SELECT P.Vorname AS PatientVorname, P.Nachname AS PatientNachname,
A.Vorname AS ArztVorname, A.Nachname AS ArztNachname
FROM Patient P
JOIN ArztBehandeltPatient ABP ON P.Patient_ID = ABP.Patient_ID
JOIN Arzt A ON ABP.Arzt_ID = A.Arzt_ID;
</run>
Abfrage der Diagnose von Peter Becker
<run id="52f89f4fg1818">
SELECT D.Informationen
FROM Diagnose D
JOIN Patient P ON D.Patient_ID = P.Patient_ID
WHERE P.Vorname = 'Peter' AND P.Nachname = 'Becker';
</run>
==Kritische Reflexion zu Modellierung und Umsetzung==
==Verwendete Quellen, Tools, etc.==