PMG2224 4/DB Beleg/Emilie

Aus ProgrammingWiki

Wiki-Quelltext dieser Seite.

<language>SQL</language>
= '''Datenbank eines Bibliothekssystems einer Schule'''=


== Ziel der Datenbank ==

Das Ziel der Datenbank für die Schulbibliothek ist es, eine effiziente Verwaltung und Organisation der Bibliotheksbücher zu ermöglichen, den Zugriff auf diese zu kontrollieren und Ausleihvorgänge der Schüler zu verfolgen. Durch diese Datenbank kann die Schulbibliothek effektiver betrieben werden und einen besseren Service für die Schülerinnen und Schüler bieten.


== ERM Bibliothekssystem ==
[[Bild:Emilie_2.png|center|1000px]]


== Transformation in das Relationenmodell ==

[[Bild:Emilie_Image.png|center|1000px]]

== Erstellung der Datenbank ==

<code id="65e859885c564">

-- Tabelle für Schüler erstellen
CREATE TABLE IF NOT EXISTS Schüler (
    SchülerID INT PRIMARY KEY,
    Vorname varchar,
    Nachname varchar,
    Klasse varchar,
);

-- Beispiel-Schüler einfügen
INSERT INTO Schüler VALUES (111, 'Max', 'Mustermann', '10A');
INSERT INTO Schüler VALUES (222, 'Maria', 'Musterfrau', '10B');
INSERT INTO Schüler VALUES (333, 'Fritz', 'Beispiel', '11A');

-- Tabelle für Bücher erstellen
CREATE TABLE IF NOT EXISTS Bücher (
    BuchID INT PRIMARY KEY,
    Titel varchar,
    Autor varchar,
);
    
-- Beispiel-Bücher einfügen
INSERT INTO Bücher VALUES (123, 'Der kleine Prinz', 'Antoine de Saint-Exupéry');
INSERT INTO Bücher VALUES (234, 'Harry Potter und der Stein der Weisen', 'J.K. Rowling');
INSERT INTO Bücher VALUES (345, 'Die Verwandlung', 'Franz Kafka');


-- Tabelle für Ausleihe erstellen
CREATE TABLE IF NOT EXISTS Ausleihe (
    AusleihID INT PRIMARY KEY,
    SchülerID INT,
    BuchID INT,
    Ausleihdatum DATE,
    FOREIGN KEY (SchülerID) REFERENCES Schüler(SchülerID),
    FOREIGN KEY (BuchID) REFERENCES Bücher(BuchID),
);

-- Beispiel-Ausleihen einfügen
INSERT INTO Ausleihe VALUES (101, 111, 123, '2024-03-19');
INSERT INTO Ausleihe VALUES (202, 222, 234, '2024-03-20');
INSERT INTO Ausleihe VALUES (303, 333, 345, '2024-03-21');



</code>

<run id="65e859885c5b5">
SELECT * FROM Schüler;
SELECT * FROM Bücher;
SELECT * FROM Ausleihe;

</run>


== Erstellung unterschiedlicher Abfragen ==

Abfrage 1
<run id="65fa0777edc20">
-- Abfrage des derzeitigen Beitzers von "Der kleine Prinz"
</run>


Abfrage 2
<run id="65fa0777edc6e">
-- Nenne alle Schüler die im März eine Ausleihe getätigt haben
</run>

Abfrage 3
<run id="65fa0777edcb3">
-- Nenne alle ausgeliehen Bücher von Max Mustermann
</run>

== Kritische Reflexion ==
'Datensicherheit'
Die Datenbank enthält keine Verschlüsselung von Daten, somit sind diese nicht vor unbefugtem Zugriff geschützt

'Effizienz'
Die Effizienz der Datenbank könnte durch eine große Anzahl von Ausleihen und Schülern beeinträchtigt werden. Hier könnte die Implementierung anderer Techniken sinnvoll sein.

'Benutzerfreundlichkeit'
Die Datenbank könnte benutzerfreundlicher gestaltet werden, damit Mitarbeiter leichter damit arbeiten können.


== Quellen ==
'Tools'
https://erdplus.com/standalone
https://programmingwiki.de/PMG2224_4/

'Internet'
https://www.php-einfach.de/mysql-tutorial/uebersicht-sql-befehle/