Datenbanken:
MS Access: Gut für Desktop Datenbanken, einzelbenutzer.
Für mehrbenutzer: Datenbank-Server (relationale Datenbanken) MySQL, MS-SQL, ....
Warum Datenbanken? - Grosse Mengen an Daten und Informationen - Daten gewinnen an Information, wenn sie in Beziehung gesetzt sind - Daten-Programm Unabhängigkeit - Flexible Speicherung - Verwaltungsfunktionen
Entity-Relationship-Modell - Modell (Abbildung der Realität) - Hilfsmittel zur Verständigung mit "Nicht-Informatikern" - Konzeptionelle Idee einer Datenbank - Unabhängig von der Imlementation - ERD Entity Relationship Diagram - Visualisierung des ERM - Kann in ein logisches modell umgewandelt werden
-> Eingeführt 1976 von Chen -> Verschiedene Variationen im Gebrauch -> Konzept - Entität: Ding der realen Welt (Haus, Person) - Attribut: Eigenschaften von Entitäten - Ein spezielles Entity hat einen Wert für jedes seiner Attribute - Beziehungen: (Meist binäre) Relationen zwischen Entitäten)
-> Alternativen - Hierarchisches Modell - Netzwerkmodell - Objektorientiertes Modell - Objekt-relationale Modelle
-> Von der Realwelt zur Datenbank - Besteht aus Objekten - Und Beziehungen - Objekte haben eine Beziehung zu anderen Objekten ---> Beispiel Buchausleihe - Bücher werden von Personen ausgeliehen - Etintät oder Objekt - Zusammenfassen von gleichartigen Dingen - Objekte sind also Bücher und Personen - Die Ausleihe ist eine BEZIEHUNG zwischen Buch und Person
-> Entität - Stammt aus der Realwelt (ein Objekt, ein Prozess oder eine Funktionseinheit) -> Eigenschaft
Relationales Modell: - Relation: Tabelle mit Spalten und Zeilen - Tabellenname (Entität) - beschreibt den Objekttyp - Spaltenname (Attribut) - beschreibt Eigenschaft oder Kategorie einer Tabelle (Name, Ort)
- Tabellenzeile (Tupel oder Datensätze) - Zeilen einer Tabelle beinhalten konkrete Daten für die einzelnen Objekte - Attributwerte - Die konkreten Werte haben eine Datentyp (Integrer, String usw.)
- Relation -> Objekttyp, zweidimensionale Tabelle - Zeile -> Tupel, Datensatz, konkrete Objektbeschreibung - Spalte -> Objekteigenschaft, Attribut - Domäne -> Wertebereich, Menge von Werten eines Attributes
- Kardinalität -> Anzahl der Zeilen einer Relation - Grad -> Anzahl der Spalten einer Relation
- Bsp: Relation Buch -> Buch(ISBN, Autor, Titel, Jahr) - Bsp: Relation Person -> (Person, Personennummer, Name, Adresse)
n:m Beziehung = immer eine neue zwischen-Tabelle!
Normailisierung: 1. Normalform - Definition: Ein Relationstyp ist in der 1. NF, wenn alle Attribute maximal einen Wert haben. Am Kreuzungspunkt einer Spalte mit einer Reihe darf also maximal ein Datenwert stehen. Nichtvorhandensein von Daten ist zulässig.
2. Normalform - Definition: Muss alle Anforderungen der 1. NF erfüllen. Relationstypen, die in der 1. NF sind, sind automatisch in der 2. NF, wenn ihr Primärschlüssel nicht zusammengesetzt ist.
3. Normalform - Definition: Die 3. NF ist erfüllt, wenn die 2. NF erfüllt ist und die Nicht-Schlüssel-Attributte funktional umabhängig voneinander sind. Sind A und B Attributte einses relationshtyps, so ist B funktional abhängig von A, wenn für jedes Vorkommen ein und desselben Wertes von A immer derselbe Wert von B auftreten muss. Eine funktionale Abhängigkeit kann auch von einer Gruppe von Attributen bestehen.
------ SQL / DDL Structured Query Language Skriptsprache für Admin, Entwickler und Anwender Programmschnittstelle zwischen Datenankanwender und der Anwendersoftware DBMS -> SQL -> Anwender
Normierte Skriptsprache für relationale Datenbanken, "einfach" zu erlernen. Anweisungen an die englische Sprache angelehnt.
ONLINE MYSQL DATENBANKEN IMMER MIT PASSWÖRTER VERSEHEN!
-----
Datenmodelle
Man macht Datenbanken, um verschiedene Informationen zu sammeln. Daten gewinnen an Wert, wenn Sie Beziehungen untereinander haben. Dieses Prinzip versucht man mit Datenbanken umzusetzen. Datenbanken sind also auch ein Abbild des richtigen Lebens.
Man kann das Objektorientierte Datenbankmodell in zwei wesentliche Bereiche aufteilen – den Struktur- und den Operationsteil.
Hier werden die statischen Aspekte der Objekte aus der zu modellierenden Datenbank und ihre Beziehungen untereinander beschrieben.
Wichtige Meilensteine der orientierten Datenbank
1980: Dissertation von D. McLeod am MIT(Massachusetts Institute of Technology) über semantische Datenmodelle.
1986/87: Firmen Servio und Ontologic bieten die ersten kommerziellen DBMS an.
1990: Über 10 Firmen bieten kommerzielle Systeme an. (es existiert kein Standard)
1991: Hersteller und Anwender gründen die Object Database Management Group (ODMG).
1993: ODMG schlägt ersten Standard für objektorientierte Datenbanken vor (ODMG-93)
Warum braucht man eine orientierte Datenbank?
Da die objektorientierte Daten, die man in eine Datenbank ohne objektorientiertes Modell speichert, in relationale Daten umgewandelt werden müssen, hat man die objektorientierte Datenbanken ins Leben gerufen. So muss man die Daten nicht mehr in ein anderes Modell umrechnen und kann Sie so wie Sie vom Programm kommen, in die Datenbank ablegen.
Vorteile: alle Beziehungen darstellbar effizienter Zugriff einfache Änder-, Erweiterbarkeit
Nachteile: zwar Standard (ODMG´97), aber Klasse von Modellen mit großen Unterschieden schwierige Handhabung, (noch) nicht etabliert
Das Hierarchisches Datenmodell ist das älteste Datenmodell das es gibt. In den Jahren 1950 und 1960 ging es aus dem Informationsmanagementsystem hervor. Das Modell wurde in Banken und Versicherungsunternehmen gebraucht. Hierarchische Datenmodelle werden zum Teil auch heute noch gebraucht. Weil es ein Baumstruktur besitzt, gehört das Modell zu den einfachsten die es gibt.
Ein gutes Beispiel für das Hierarchische Datenmodell findet man im DOS dessen Aufbau der Verzeichnisse.
Das Konzept eignet sich besonders für Beziehungen, in denen sich aus dem Oberbegriff viele Unterbegriffe arbeiten lassen (1:n)
Vorteile:
Nachteile:
Der US-amerikanische Mathematiker und Wissenschaftler Dr. Edgar Frank Codd, erfand in den 60ern und 70ern das relationale Datenmodell. Auf dem Gebiet der Datenbanken erhielt Dr. Edgar Frank Codd 1981 den Turing-Award, der als höchste Auszeichnung in der Informatik gilt. Er schuf in den 1960er und 1970er Jahren bei seiner Forschungsarbeit am IBM Almaden Research Center in San Jose die Grundlagen der relationalen Datenbanken.
Die Vorteile des relationalen Datenmodells sind:
- Einfachheit, alle Beziehungen darstellbar. - Redundanzarme Datenspeicherung (kontrollierte Redundanz). - Einfach erweiter-, änder-, abfragbar. - Keine Zugriffspfade, sondern frei definierbare Abfragen. - Abfragesprache SQL
Die Nachteile sind:
- Probleme bei komplexen Datenstrukturen. - Performance bei Abfragen über viele Tabellen
Relationale Datenbanken bestehen aus mehreren Tabellen, welche zueinander relational sind (einen Zusammenhang aufweisen).
Die Idee war, grosse Datenmengen gut strukturiert und übersichtlich sammeln zu können. Man spart dabei Speicherplatz und kann vieles zusammenfassen. Um die Beziehungen gewährleisten zu können wird ein Primärschlüssel bwz. ein Fremdschlüssel gewählt. Das Tupel erhält so eine eindeutige ID.
SQL (Structured Query Language) ist eine weit verbreitete Datenbanksprache zur Definition, Abfrage und Manipulation von Daten in relationalen Datenbanken.
Notitzen SQL:
SELECT: SELECT attribut FROM .tabellenname
Optional: [WHERE … ] [ORDER BY]
Bsp:
SELECT tab1.name1, Tab2.ort AS ortneu FROM tab1, tab2 WHERE tab1.name like „Me[iy]er“ ORDER BY tab1.name DESC; ASC
DELETE
DELETE attribute FROM tabelle [WHERE …]
Bsp: DELETE * FROM tabelle WHERE name = “Meier”;
Befehle: SELECT, INSERT, DELETE, UPDATE, CREATE TABLE, WHERE, ORDER BY, BETWEEN, LIKE Log. Verknüpfungen: AND, OR, NOT Funktionen: AVG, COUNT, MAX, MIN, SUM
BSP: INSERT INTO tab1 (vorname, code) VALUES („Fritz“, 12);
DELETE … FROM … [WHERE…];
DELETE plz FROM tab WHERE Code BETWEEN 3 AND 28;
UPDATE … SET … [WHERE];
UPDATE tabellenname SET spaltenname = “VALUE” WHERE spaltenname = “fankyy”;
CREATE TABLE tabellenname ( Spaltenname dateityp (länge), …
Platzhalter: … LIKE “S*” … LIKE “*AG” … LIKE “[AD*]” … LIKE “*or?” … LIKE “Me[iy]er” LIKE name = “Meier” OR name = “Meyer”; LIKE/NOT LIKE
= <> > >=