Workbook Dominik Fankhauser
headerimage
Main Menu
  • Home
  • Workbook
  •       Multimedia
  •       Webdesign
  •       Informatik
  •             Betriebssysteme
  •             Netzwerktechnik
  •             Dateisysteme
  •             PuTTY
  •             Programmierung
  •             Datenbanken
  •             Sonstiges
  •       Administration
  •       Projekte
  •       Other
  • About Me
  • Other
Navi_Back

Datenbanken

 

Um Daten möglichst automatisiert und dynamisch zu verwalten, müssen diese über eine Datenbank geführt werden.

 

 

Grundlagen Datenbanken

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

    • Hierarchisch
    • Netzwerk
    • Objektorientiert
    • Rel. DM

     



Objektorientierte Datenbanken

Datenbanken

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.

 

Objektorientiertes Datenbankmodell 

Man kann das Objektorientierte Datenbankmodell in zwei wesentliche Bereiche aufteilen – den Struktur- und den Operationsteil.

objektorientierte db1 

 

Der Strukturteil

Hier werden die statischen Aspekte der Objekte aus der zu modellierenden Datenbank und ihre
Beziehungen untereinander beschrieben.
objektorientierte db2

 

 

 

 

 

 

 

 

 

 




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



Hierarchisches Datenmodell

Hierarchisches Datenmodell

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.

Hierarchisches DatenmodellDas Konzept eignet sich besonders für Beziehungen, in denen sich aus dem Oberbegriff viele Unterbegriffe arbeiten lassen (1:n)

 

 

 

 

 

 

Vorteile:

  • Daten, die zusammen gehören, sind gemeinsam zugreifbar (wenn die Daten natürlicherweise hierarchisch aufgebaut sind)
  • praktisch für 1.n Beziehungen
  • Baumstrukturen sind sehr effizient und übersichtlich
  • wenn Daten in der Richtung der Hierarchie durchsucht werden, sehr schnell

Nachteile:

    • m:n nicht direkt darstellbar
    • Redundanz
    • Änderungen sind aufwändig
    • wenn Daten nicht in der Richtung der Hierarchie durchsucht werden, muss ev. die ganze DB durchsucht werden.
    • Benutzer muss mit der Hierarchie vertraut sein.



Relationales Datenmodell

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

Funktionsweise

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 Datenbank

SQL (Structured Query Language) ist eine weit verbreitete Datenbanksprache zur Definition, Abfrage und Manipulation von Daten in relationalen Datenbanken.

Notitzen SQL:

SQL – Select:

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”;


DB (SQL):

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

=  <>  >   >=

 

 

Arbeitsbuch v. 2.00 © Dominik Fankhauser 2008
topimg