Daten Bank. 5. Vorlesung



Ähnliche Dokumente
Daten Bank. 5. Vorlesung. Dr. Karsten Tolle PRG2 SS 2014

Daten Bank. 5. Vorlesung. Dr. Karsten Tolle PRG2 SS 2013

Daten Bank. 5. Vorlesung

Daten Bank. 5. Vorlesung. Dr. Karsten Tolle PRG2 SS 2012

Daten Bank. 4. Vorlesung

Isolationsstufen für. Dr. Karsten Tolle Dienstag 31. Januar 2012

Transaktionen in der Praxis. Dr. Karsten Tolle

7. Übung - Datenbanken

Normalformen: Sinn und Zweck

Datenbanken SQL Einführung Datenbank in MySQL einrichten mit PhpMyAdmin

Design Theorie für relationale Datenbanken

Tag 4 Inhaltsverzeichnis

Das SQL-Schlüsselwort ALL entspricht dem Allquantor der Prädikatenlogik

Tag 4 Inhaltsverzeichnis

Hinweise zur Installation von MySQL

Lehrveranstaltung Grundlagen von Datenbanken

Daten Bank. 4. Vorlesung

mysql - Clients MySQL - Abfragen eine serverbasierenden Datenbank

Proseminar Datenbanken

DB2 Kurzeinführung (Windows)

Sicherheit in Webanwendungen CrossSite, Session und SQL

Professionelle Seminare im Bereich MS-Office

Daten Bank. 4. Vorlesung

Mengenvergleiche: Alle Konten außer das, mit dem größten Saldo.

Freigabemitteilung Nr. 39. Neue Funktionen adresse zurücksetzen / ändern Kennung ändern Anlegen von OCS (elektr. Postfach) Mailbenutzern

Klausur zur Vorlesung Datenbanken I im Wintersemester 2011/12

SQL für Trolle. mag.e. Dienstag, Qt-Seminar

Albert HAYR Linux, IT and Open Source Expert and Solution Architect. Open Source professionell einsetzen

Inhaltsverzeichnis. Beschreibung. Hintergrund

Oracle SQL Tutorium - Wiederholung DB I -

Datenbanktechnologie mit praktischen Übungen in MySQL und PHP

WordPress installieren mit Webhosting

2. Einrichtung der ODBC-Schnittstelle aus orgamax (für 32-bit-Anwendungen)

105.3 SQL-Datenverwaltung

SQL - Übungen Bearbeitung der Datenbank Personal (1)

Probeklausur im Modul Informationstechnik 1, WS 2003/04. Studiengang IWD 1. Semester Seite 1 von 5

Interaktive Medien Richtlinien für das Codieren Version vom 18. Juni 2014

SharePoint Demonstration

Administrator-Anleitung

Fachhochschule Deggendorf Platzziffer:...

In diesem Thema lernen wir die Grundlagen der Datenbanken kennen und werden diese lernen einzusetzen. Access. Die Grundlagen der Datenbanken.

php Hier soll ein Überblick über das Erstellen von php Programmen gegeben werden. Inhaltsverzeichnis 1.Überblick Parameterübergabe...

IV. Datenbankmanagement

MySQL Installation. AnPr

DV-Organisation und Anwendungsentwicklung. 4. Klausur

ER-Modellierung am Beispiel der Universitätsdatenbank aus der DBIS-Vorlesung

Anleitung zur Einrichtung einer ODBC Verbindung zu den Übungsdatenbanken

Vorlesung Dokumentation und Datenbanken Klausur

MySQL 101 Wie man einen MySQL-Server am besten absichert

Handbuch. timecard Connector Version: REINER SCT Kartengeräte GmbH & Co. KG Goethestr Furtwangen

Das Starten von Adami Vista CRM

cs241: Datenbanken mit Übungen HS 2011

Normalformen. Datenmodellierung, Datenbanksysteme. Ingo Claÿen, Martin Kempa, Peter Morcinek. Hochschule für Technik und Wirtschaft Berlin

TEAMWORK-Uploader. Dokumentenaustausch mit dem PC

MSDE 2000 mit Service Pack 3a

Process4.biz Release Features Übersicht. Repository. Das Schützen von Diagrammen wurde optimiert (check-in, check-out)

Datenbanken für Online Untersuchungen

Anwendungsbeispiele Buchhaltung

Java: Vererbung. Teil 3: super()

Einführung Datenbanken: Normalisierung

OP-LOG

AGROPLUS Buchhaltung. Daten-Server und Sicherheitskopie. Version vom b

Eigenen WSUS Server mit dem UNI WSUS Server Synchronisieren

teischl.com Software Design & Services e.u. office@teischl.com

Aufbau des SELECT-Befehls. Im Folgenden werden zunächst Abfragen aus einer Tabelle vorgenommen.

Dieses Dokument soll dem Administrator helfen, die ENiQ-Software als Client auf dem Zielrechner zu installieren und zu konfigurieren.

Berechtigungen im Kalender Anleitung für die Rechtevergabe im Outlook Kalender FHNW, Services, ICT

PostgreSQL unter Debian Linux

Kapitel 06 Normalisierung von Relationen. 6 Die Normalisierung von Relationen

Theoretische Informatik SS 04 Übung 1

SSH Authentifizierung über Public Key

Aktualisierung zum Buch Windows und PostgreSQL

Database Exchange Manager. Infinqa IT Solutions GmbH, Berlin Stralauer Allee Berlin Tel.:+49(0) Fax.:+49(0)

How to install freesshd

Daten Bank. 4. Vorlesung. Dr. Karsten Tolle PRG2 SS 2014

12. Dokumente Speichern und Drucken

Ev. Kirche Hirschlanden

Windows Server 2008 (R2): Anwendungsplattform

Stellen Sie bitte den Cursor in die Spalte B2 und rufen die Funktion Sverweis auf. Es öffnet sich folgendes Dialogfenster

IMAP Backup. Das Programm zum Sichern, Synchronisieren, Rücksichern und ansehen von gesicherten Mails. Hersteller: malu-soft

Repetitorium: Wer: Tung Le Trong Wann: (Freitag) Genauer wann : von Uhr Wo: H IV. Dr. Karsten Tolle PRG2 SS

Tutorial -

Informatik 12 Datenbanken SQL-Einführung


Wie richten Sie Ihr Web Paket bei Netpage24 ein

Dynamisches SQL. Folien zum Datenbankpraktikum Wintersemester 2009/10 LMU München

Leichte-Sprache-Bilder

Er musste so eingerichtet werden, dass das D-Laufwerk auf das E-Laufwerk gespiegelt

Ein Ausflug zu ACCESS

PHPNuke Quick & Dirty

Österreichische Trachtenjugend

Erstellen einer digitalen Signatur für Adobe-Formulare

Installationsanleitung dateiagent Pro

Verwendung des IDS Backup Systems unter Windows 2000

Dipl. Inf. Dipl. Math. Y. Orkunoglu Datum:

Software-Engineering Einführung

Transkript:

Daten Bank 5. Vorlesung

4. VL von bis Person (0,n) lebt_in (0,n) Ort AusweisNr. Name Vorname PLZ Ortsname SQL: create insert select 1. Normalform Schlüssel und Funktionale Abhängigkeiten Dr. Karsten Tolle PRG2 SS 2015 2

Heute von bis Person (0,n) lebt_in (0,n) Ort AusweisNr. Name Vorname PLZ Ortsname SQL: create insert select 1. Normalform Schlüssel und Funktionale Abhängigkeiten 2. Normalform Sicherheit Dr. Karsten Tolle PRG2 SS 2015 3

Fahrzeuge der Firma AB HERSTELLER KENNZEICHEN ZUGEL_GES_GEW FÜHRERSCHEIN VW F-AB 123 3.5 B MB F-AB 234 7.5 C1 MB F-AB 235 7.5 C1 MAN F-AB 236 12 C MB F-AB 239 12 C MB F-AB 230 17 C aus ZUGEL_GES_GEW folgt hier FÜHRERSCHEIN: ZUGEL_GES_GEW FÜHRERSCHEIN umgekehrt nicht! bis 17 Tonnen Dr. Karsten Tolle PRG2 SS 2015 4

Fahrzeuge der Firma AB HERSTELLER KENNZEICHEN ZUGEL_GES_GEW VW F-AB 123 3.5 MB F-AB 234 7.5 MB F-AB 235 7.5 MAN F-AB 236 12 MB F-AB 239 12 MB F-AB 230 17 Fremdschlüssel ZUGEL_GES_GEW FÜHRERSCHEIN 3.5 B 7.5 C1 12 C 17 C Dr. Karsten Tolle PRG2 SS 2015 5

vorrat (Teil Lager Menge Strasse Hausnr) 101 1 25 Waag. 10 102 3 410 Krugerstr. 42 102 1 300 Waag. 10 F = { Teil Lager Menge Lageradresse Lager Lageradresse 112 } 4 10 Brunnerstr. 105 F = { Teil Lager Menge Strasse Hausnr Lager Strasse Hausnr } Dr. Karsten Tolle PRG2 SS 2015 6

1 vorrat (Teil Lager Menge Strasse Hausnr) 101 1 25 Waag. 10 102 3 410 Krugerstr. 42 102 1 300 Waag. 10 F = { Teil Lager Menge Strasse Hausnr Lager Strasse Hausnr } 112 4 10 Brunnerstr. 105 Probleme: Redundanz Einfüge-Anomalie Lösch-Anomalie Lageradresse für jedes Teil im Lager redundant gespeichert Lager ohne Teile kann nicht eingefügt werden Lager ohne Teile würden gelöscht werden Dr. Karsten Tolle PRG2 SS 2015 7

vorrat (Teil Lager Menge Strasse Hausnr) F = { Teil Lager Menge Strasse Hausnr Lager Strasse Hausnr } 101 1 25 Waag. 10 102 3 410 Krugerstr. 42 102 1 300 Waag. 10 112 4 10 Brunnerstr. 105 Lösung: Zerlegung der Relation vorrat (Teil Lager Menge) 101 1 25 102 3 410 102 1 300 112 4 10 Fremdschlüssel lager (Lager Strasse Hausnr) 1 Waag. 10 2 RMS 10 3 Krugerstr. 42 4 Brunnerstr. 105 Dr. Karsten Tolle PRG2 SS 2015 8

Prim Ein Attribut A heißt prim in R, wenn es in einem der Schlüsselkandidaten von R enthalten ist, sonst heiße es nicht prim. A ist prim X: X ist Schlüssel, A X Dr. Karsten Tolle PRG2 SS 2015 9

volle funktionale Abhängigkeit Eine funktionale Abhängigkeit X Y heißt volle funktionale Abhängigkeit, wenn für keine Teilmenge X X, X Y gilt. Y heißt dann voll funktional abhängig von X. X Y voll funktional X X : X Y Dr. Karsten Tolle PRG2 SS 2015 10

2. Normalform Ein Relationenschema R ist in 2. Normalform (2NF), wenn es in 1NF ist und jedes nicht prime Attribut voll funktional von jedem Schlüssel von R abhängig ist. 2. NF A nicht prim Schlüssel A voll funktional Die 2. NF ist verletzt, wenn ein Teil eines Schlüssels ein Nicht-Schlüsselattribut funktional bestimmt. Dr. Karsten Tolle PRG2 SS 2015 11

vorrat (Teil Lager Menge Strasse Hausnr) 101 1 25 Waag. 10 nicht 2. NF 102 3 410 Krugerstr. 42 102 1 300 Waag. 10 112 4 10 Brunnerstr. 105 F = { Teil Lager Menge Strasse Hausnr Lager Strasse Hausnr } 2. NF vorrat (Teil Lager Menge) 101 1 25 102 3 410 102 1 300 112 4 10 lager (Lager Strasse Hausnr) 1 Waag. 10 2 RMS 10 3 Krugerstr. 42 4 Brunnerstr. 105 Dr. Karsten Tolle PRG2 SS 2015 12

Beispiel 2 R = ABCD F = {AB C, B D} B D verletzt 2. NF Zerlegung in: R1 = (ABC) mit F1 = {AB C} R2 = (BD) mit F2 = {B D} Dr. Karsten Tolle PRG2 SS 2015 13

Übung R = ABCDE B D verletzt 2. NF F = {AB C, B D, D E} Zerlegung in: R1 = (ABCE) und R2 = (BD) Zerlegung in: R1 = (ABC) und R2 = (BD) und R3 = (DE) dann geht D E verloren! Dr. Karsten Tolle PRG2 SS 2015 14

Vorgehen beim Prüfen auf NF (WICHTIG!!!) Ausgangspunkt: Relation R (mind. 1. NF) und Menge der FDs gegeben. 1. Welche Schlüssel gibt es? was sind die nicht primen Attribute! 2. Prüfe auf 2. NF (voll funktional abhängig von ALLEN Schlüsseln?) Dr. Karsten Tolle PRG2 SS 2015 15

Fahrzeug Kennzeichen Zugel_Ges_Gew Führerschein KENNZEICHEN ZUGEL_GES_GEW FÜHRERSCHEIN F-AB 123 3.5 B F-AB 234 7.5 C1 F-AB 235 7.5 C1 F-AB 236 12 C F-AB 239 12 C F-AB 230 17 C 2. NF? F = { Kennzeichen R, ZUGEL_GES_GEW FÜHRERSCHEIN} Dr. Karsten Tolle PRG2 SS 2015 16

Trotzdem Probleme! KENNZEICHEN ZUGEL_GES_GEW FÜHRERSCHEIN F-AB 123 3.5 B F-AB 234 7.5 C1 F-AB 235 7.5 C1 F-AB 236 12 C F-AB 239 12 C F-AB 230 17 C Dr. Karsten Tolle PRG2 SS 2015 17

Fahrzeuge der Firma AB HERSTELLER KENNZEICHEN ZUGEL_GES_GEW VW F-AB 123 3.5 MB F-AB 234 7.5 MB F-AB 235 7.5 MAN F-AB 236 12 MB F-AB 239 12 MB F-AB 230 17 Fremdschlüssel ZUGEL_GES_GEW FÜHRERSCHEIN 3.5 B 7.5 C1 12 C 17 C Dr. Karsten Tolle PRG2 SS 2015 18

Normalformen Über die Normalformen (NF) werden Kriterien definiert, um Redundanzen und Anomalien zu verhindern. Es gibt: 1 NF 2 NF 3 NF BCNF 4 NF 5 NF 6 NF 1 NF 2 NF 3 NF Dr. Karsten Tolle PRG2 SS 2015 19

Auswirkungen!? Attribute 1-n Entität_1 Mapping ER rel. Model Evt. Erweitert um Beziehungsattribute (0,1) oder (1,1) oder sogar Attribute anderer Entitäten (bei 1-to-1 Bez.). A1 A2 An Bi Ci Normalisierung Dr. Karsten Tolle PRG2 SS 2015 20

Normalisierung / Denormalisierung Normalisierung: Der Prozess des Aufspaltens von Relationen, um Anomalien/Redundanzen zu verhindern. Denormalisierung: Der Prozess des Zusammenlegens von Relationen, um Performanz zu gewinnen. Dr. Karsten Tolle PRG2 SS 2015 21

Tabellen Ansicht ER-Modell Dr. Karsten Tolle PRG2 SS 2015 22

http://www.projekt-datenschutz.de/

Datenlecks zum Stöbern http://www.datenleck.net/ http://opalkatze.wordpress.com/to-becontinue/datenpannen/ (Listen für 2009 2013) http://www.faz.net/aktuell/wirtschaft/netzwirtsc haft/chronik-die-wichtigsten-hackerangriffe- 13345391.html Dr. Karsten Tolle PRG2 SS 2015 24

http://www.heise.de/newsticker/meldung/bundestag-verabschiedet-it-sicherheitsgesetz-2689526.html Dr. Karsten Tolle PRG2 SS 2015 25

3-Schicht Architektur Sicherheit Bild vom BSI IT-Grundschutz-Katalog: https://www.bsi.bund.de/de/themen/itgrundschutz/itgrundschutzkataloge/inhalt/_content/baust/b05/b05007.html Dr. Karsten Tolle PRG2 SS 2015 26

Benutzer und Rechte CREATE USER test IDENTIFIED BY PASSWORD li720lhjlj2' erzeugt einen neuen Benutzer GRANT select ON star_trek.* TO test weist dem Benutzer test die select Rechte für alle Tabellen der DB star_trek zu REVOKE select ON star_trek.* from test nimmt ihm die Rechte wieder GRANT select ON star_trek.offizier TO test weist dem Benutzer test die select Rechte für die Tabelle offizier zu Siehe auch: http://dev.mysql.com/doc/refman/5.6/en/account-management-sql.html Dr. Karsten Tolle PRG2 SS 2015 27

Grant und Revoke unter Workbench Dr. Karsten Tolle PRG2 SS 2015 28

Server Variablen wie bind-address bind-address = 127.0.0.1 // erlaubt nur Verbindungen von Localhost Windows (my.ini): C:\ProgramData\MySQL\MySQL Server 5.6 Linux (my.cnf): /etc/my.cnf or mysql-data-dir/my.cnf Dr. Karsten Tolle PRG2 SS 2015 29

Mitarbeiter Empno Vorname Nachname Gehalt 1 Ines Müller 75000 2 Fred Wagner 60000 3 Ingo Meyer 72000 4 Max Müller 26000 Jemand der die Vor- und Nachnamen der Mitarbeiter benötigt, würde z.b. die Select- Rechte an der Tabelle Mitarbeiter erhalten und so auch die Gehälter erfahren Dr. Karsten Tolle PRG2 SS 2015 30

Nutzung von Views Mitarbeiter Empno Vorname Nachname Gehalt 1 Ines Müller 75000 2 Fred Wagner 60000 3 Ingo Meyer 72000 4 Max Müller 26000 CREATE VIEW Mitarbeiter_Namen AS select Vorname, Nachname from Mitarbeiter; Vorname Ines Fred Ingo Max Nachname Müller Wagner Meyer Müller Dr. Karsten Tolle PRG2 SS 2015 31

Mitarbeiter Empno Vorname Nachname Gehalt 1 Ines Müller 75000 2 Fred Wagner 60000 3 Ingo Meyer 72000 4 Max Müller 26000 Abteilung Depno Name Head 1 Finanzen 2 2 Einkauf 1 3 HR 1 Arbeitet_in CREATE VIEW Mitarbeiter_Dept AS select m.empno, m.nachname, d.name as Abt from Mitarbeiter m, Abteilung d, Arbeitet_in a where m.empno = a.empno and a.depno = d.depno; Mitarbeiter_Dept Mitarbeiter_Dept Empno Nachname Abt 1 Müller Einkauf 1 Müller HR 2 Wagner Finanzen 3 Meyer HR Empno Depno 1 2 1 3 2 1 3 3 4 2 Dr. Karsten Tolle PRG2 4 SS 2015 Müller Einkauf 32

Absichern am Bsp. MySQL keine Standard Benutzer z.b. root mysql> RENAME USER root TO new_user; show databases nicht unterstützen Netzwerkzugang nur erlauben, wenn nötig Firewall installieren Siehe auch: http://dev.mysql.com/doc/refman/5.6/en/general-security-issues.html Dr. Karsten Tolle PRG2 SS 2015 33

SQL Injection (böswilliges) Einschleusen oder Verändern von SQL-Befehlen an die Datenbank durch den Benutzer.

Web Related Vulnerabilities 2011 (commercial applications) Dr. Karsten Tolle PRG2 SS 2015 35 Application Security Trends Report März 2012 - CENZIC

Mögliche Gefahren Zusätzliche Bedingungen einzufügen: Eingabe: 1 or id > 1 or name like % select * from mytable where id = 1 or id > 1 or name like %?? Daten der Tabelle können ausgespäht werden. Dr. Karsten Tolle PRG2 SS 2015 36

Mögliche Gefahren Zusätzliche Statements einzufügen: Eingabe: 1; drop mytable; # select * from mytable where id = 1; drop mytable; #?? Direkter Schaden an der Datenbank, eventuell Ausfall der Applikation. Dr. Karsten Tolle PRG2 SS 2015 37

Was möglich ist hängt ab von DBMS Erlaubt es mehrere SQL-Statements gleichzeitig auszuführen? Welche Zeichen werden als Kommentare interpretiert? (z.b.: -- oder #) Verbindungsart / Programmiersprache JDBC, ODBC,??? Dr. Karsten Tolle PRG2 SS 2015 38

Gegenmaßnahmen Positivlisten Methode wurde eingegeben was man erwartet? Negativlisten Methode Ablehnung von Schlüsselwörtern Gegebene Funktion in PHP: mysql_real_escape_string() Sie Maskiert alle Zeichen mit denen man aus den Anführungszeichen ausbrechen kann. Kombination aller 3 ist die sicherste Variante. Anwendung diesbezüglich testen (testen lassen) Siehe auch (für PHP): http://www.inside-php.de/tutorial/php-sicherheit-13/sql-injections-vermeiden.html http://php.net/manual/en/security.database.sql-injection.php Dr. Karsten Tolle PRG2 SS 2015 39

Sicherheit Auf DBMS-Ebene Benutzer entsprechend anlegen Bereitstellung von Views Überwachung Auf Programmier-Ebene Wenig Infos nach Außen Mittel der verwendeten Prog. Sprache verwenden (z.b. PreparedStatement in Java oder Escape- Funktionen in PHP) Entsprechende Tests vorsehen

Literaturhinweise Handling Java Web Application Input, Part 1 von Stephen Enright http://today.java.net/pub/a/today/2005/09/08/handling-java-web-app-input.html Advanced SQL Injection In SQL Server Applications von Chris Anley http://www.cgisecurity.com/lib/advanced_sql_injection.pdf (more) http://www.encription.co.uk/downloads/more_advanced_sql_injection.pdf BSI zu Datenbanken https://www.bsi.bund.de/de/themen/itgrundschutz/itgrundschutzkataloge/inhalt/_content/baust/b05/b05007.html MySQL Manual zu Security http://dev.mysql.com/doc/refman/5.6/en/general-security-issues.html Advanced SQL Injection in MySQL (deutsch) http://www.alirecaiyekta.com/uploads/advanced-sql-injection-in-mysql-german.pdf Dr. Karsten Tolle PRG2 SS 2015 41