SlideShare ist ein Scribd-Unternehmen logo
1 von 29
Downloaden Sie, um offline zu lesen
Datenbankadministration mit Access –
           Grundlagen



          VHS Mönchengladbach



                                22.-23.9.2012

                                            1
Über uns



     IT-Beratung, Training, Web-Design, Programmierung

     Thomas Siegers                 ts@interwerkstatt.net


 Diese Präsentation ist frei zugänglich auf:
 http://www.slideshare.net/thomasjs


Dieses Werk bzw. Inhalt steht unter einer Creative Commons
Namensnennung - Weitergabe unter gleichen Bedingungen 3.0
Unported Lizenz.
Siehe mehr unter: http://creativecommons.org/licenses/by-sa/3.0/deed.de
                                                                          2
Agenda

 Einführung
 Live Demo
 SQL
 Access
   Grundlagen
   Tabellen
   Beziehungen
   Abfragen
   Formulare
   Berichte
   Übungen


                           3
Motto



"Sage es mir und ich vergesse es,
zeige es mir und ich erinnere mich,
lass es mich tun und ich behalte es."
Konfuzius, chinesischer Philosoph, 551-479 v. Chr.




                                                     4
Warum Datenbanken?

 Daten strukturiert speichern
 Daten sicher eingeben
 Daten schnell finden
 Beliebige Daten abfragen
 Verschiedene Datenquellen miteinander verbinden
 Beliebig große Mengen an Daten verwalten
 Daten beliebig fein unterteilen
 Beliebige Berechtigungen für Daten vergeben
 Daten beliebig ausgeben
 Benutzer gleichzeitig mit Daten arbeiten lassen
 Daten im- und exportieren
                                                    5
Begriffe

 Aufbau
   Datenbankmanagementsystem (DBMS)
   Datenbank (DB)


                                       DBMS




Typen
   Hierarchisch                        DB

   Objektorientiert
   Relational




                                              6
Relationale Datenbanken

 Tabelle
                                    Tabelle 1
   Relation, entity                Feld 1
                                    Feld 2
 Beziehung                         Feld 3
   relationship
                                                Beziehung
 Spalte
   Attribut, Feld, field, column
                                                            Tabelle 2
 Zeile                                                     Feld 1
   Tupel, Datensatz, record, row                           Feld 2
                                                            Feld 3

            Feld   1    Feld   2    Feld   3
            Wert   11   Wert   12   Wert   13
            Wert   21   Wert   22   Wert   23
            Wert   31   Wert   32   Wert   33               Wikipedia
                                                             Wikipedia

                                                                         7
ER-Diagram




             Wikipedia
              Wikipedia

                     8
Normalisierung

 Eliminierung / Reduzierung von Redundanz
                                                        Wikipedia
                                                         Wikipedia
 Erste bis fünfte Normalform (1NF - 5NF)

  Nr   Name     Firma         Nr   Name     Fa-Nr
  1    Willy    AEG           1    Willy    1
  2    Walter   IBM           2    Walter   2
  3    Werner   BMW           3    Werner   3
  4    Anton    BMW           4    Anton    3
  5    Anna     AEG           5    Anna     1
  6    Agnes    BMW           6    Agnes    3



                                              Nr    Firma
                                              1     AEG
                                              2     IBM
                                              3     BMW


                                                            9
Beziehungen

Nr   Name     Fa-Nr
1    Willy    1         1 : n one-to-many
2    Walter   2
3    Werner   3                        Nr    Firma
4    Anton    3                        1     AEG
5    Anna     1                        2     IBM
6    Agnes    3                        3     BMW


                      junction table
Nr   Name
1    Willy            Ma-Nr
                          1
                              Fa-Nr
                              1
                                            n : m many-to-many
2    Walter
3    Werner               2   2
4    Anton                3   3
                          4   3                 Nr   Firma
5    Anna
                          5   1                 1    AEG
6    Agnes
                          5   2                 2    IBM
                          6   3                 3    BMW
                          6   2
                                                             10
Schlüssel

 Mithilfe von Schlüsseln werden die Beziehungen zwischen
  Tabellen hergestellt.
 Primärschlüssel (primary key, PK)
    I.d.R. hat jede Tabelle einen PK.
    Eine Tabelle kann nur einen PK haben.
    Die Werte im PK müssen eindeutig sein.
    Die Werte im PK werden i.d.R. automatisch vom DBMS erzeugt.

 Fremdschlüssel (foreign key, FK)
    Der FK enthält die Werte des PK der verknüpften Tabelle.
    Eine Tabelle darf mehr als einen FK haben.
    Die Werte im FK dürfen mehrdeutig sein.
    Die Werte im FK werden i.d.R. vom Anwendungsprogramm erzeugt.

                                                                11
Indizes

 Indizes werden verwendet, um
  das Auffinden von Datensätzen
  zu beschleunigen.                       Tabelle
                                     Nr   Firma    Umsatz
 Indizes können auf eine Spalte     1    AEG      123.456
  oder eine Kombination von          2    IBM      987.654
  mehreren Spalten gesetzt           3    BMW      456.789
  werden.
 Primär- und Fremschlüssel               Index auf Umsatz
  sind immer indiziert.                    Nr     Umsatz
                                           1      123.456
 Wenn eine Spalte nicht indiziert         3      456.789
  ist, muss bei einer Suche im             2      987.654
  ungünstigsten Fall die gesamte
  Tabelle durchsucht werden
  (full table scan).

                                                        12
Integrität
Korrektheit, Vollständigikeit und Konsistenz der Daten

 Primärschlüssel
    muss eindeutig sein und darf nicht Null sein

 Wertebereich
    Daten müssen innerhalb eines bestimmten Bereiches liegen

 Referentielle Integrität
    “Die referentielle Integrität - auch Beziehungsintegrität besagt, dass
    Attributwerte von einem Fremdschlüssel auch als Attributwert des
    Primärschlüssels vorhanden sein müssen.”
    http://www.wirtschaftsinformatik-24.de/datenbanken/referentielle-integritaet.php

 Sperren
    Soll eine Datenbank mehrbenutzerfähig sein, so muss ein Datensatz, der
    gerade von einem Benutzer editiert wird, für andere Benutzer gesperrt
    werden.

 Transactionssicherheit                                                   Wikipedia
    atomicity, consistency, isolation, durability (ACID)                    Wikipedia

                                                                                 13
Architektur

 Client – Server
    Client enthält Anwendungslogik.
    Datenverkehr zwischen Client und Server ist relativ gering.

 Multi-Tier
    Client kümmert sich nur um Präsentation.
    Client kann – muss aber nicht – nur aus Browser bestehen.
    Datenverkehr zwischen Client und Server ist sehr gering.




    Client
                         Web-Server       Anwendung         DBMS
  Web-Browser




                                                                   14
Hersteller

Server            PC
 Oracle           Access
 DB2              Paradox
 MS SQL           dBase
 MySQL            Foxpro
 PostgreSQL




                              15
Datentypen
!   Datentypen sind nicht einheitlich für alle DBMS.
     http://w3schools.com/sql/sql_datatypes.asp

 Numerisch
     INT(6) – Ganzzahl mit 6 Stellen
     TINYINT – 8 bit, 28=256, unsigned 0 bis 255, signed -128 bis 127
     FLOAT(8,2) – Kommazahl mit 8 Stellen und 2 Nachkommastellen

 Text
     CHAR(25) – Zeichenkette fester Länge
     VARCHAR(255) – Zeichenkette variabler Länge

 Datum
     DATE – Datum im Format YYYY-MM-DD
     DATETIME – Datum und Zeit im Format YYYY-MM-DD HH:MM:SS
                                                                    16
Feld-Eigenschaften

 Datentyp, Länge
 Standardwert (default) – 0, null, benutzerdefiniert
 Collation – Code für alphabetische Sortierung
 Attribut – signed, unsigned
 Null – Feld darf nicht leer sein
 Index – Primärschlüssel, eindeutig
 Auto-Inkrement – Wert wird automatisch erhöht




                                                        17
Funktionen

 Aggregatfunktionen
  SUM(), MIN(), MAX(), AVG(), COUNT()

 Numerische Funktionen
  SQRT(), PI(), SIN(), RAND(), ROUND()

 Zeichenketten
  LIKE, SUBSTR(), TRIM(), UPPER(), REPLACE()

 Datum und Zeit
  DATE(), YEAR(), NOW(), ADDDATE(), DAYOFYEAR()
http://dev.mysql.com/doc/refman/5.0/en/functions.html

 SQL Anweisungen
   GROUP BY
   HAVING



                                                        18
Live Demo

 MySQL Demo Datenbank auf interwerkstatt.net
   Server-Adresse
   Datenbankname
   Benutzername
   Kennwort
   Zugriff
    lokal - phpMyAdmin
    entfernt – MySQL Workbench, Access

 LAMP-Umgebung lokal installieren
   Linux, Apache, MySQL, PHP
   XAMPP für Windows




                                                19
SQL

 Structured Query Language
                                                  Wikipedia
                                                   Wikipedia
 Datenbank-Abfragesprache
   Daten abfragen, einfügen, ändern, löschen
   Verwaltung von Datenbanken

 Beispiele
SELECT * FROM person;
SELECT name, telefon FROM person WHERE nr>3;
SELECT name, telefon FROM person ORDER BY name ASC;
CREATE TABLE person (
  nr int(6) NOT NULL DEFAULT '0',
  name varchar(12) DEFAULT NULL,
  telefon varchar(12) DEFAULT NULL,
  PRIMARY KEY (nr);
)
                                                      20
SQL – Beispiele 1

 Abfrage über mehere Tabellen
SELECT
   p.name AS Person, f.name AS Firma, a.name AS Abteilung
   FROM person p
   INNER JOIN abteilung a ON p.nr=a.pn
   INNER JOIN firma f ON a.fn=f.nr;

 Abfrage mit Bedingung und Sortierung
SELECT
   p.name AS Person, f.name AS Firma, a.name AS Abteilung
   FROM person p
   INNER JOIN abteilung a ON p.nr=a.pn
   INNER JOIN firma f ON a.fn=f.nr
   WHERE p.name LIKE 'W%'
   ORDER BY p.name ASC;




                                                     21
SQL - Beispiele 2

 Abfrage mit Berechnung
SELECT f.name AS Firma, SUM(u.umsatz) AS Umsatz
FROM firma f INNER JOIN umsatz u ON f.nr = u.fn
GROUP BY f.name;

 Abfrage mit Berechnung und Bedingung
SELECT f.name AS Firma, SUM(u.umsatz) AS `Umsatz 2011`
FROM firma f INNER JOIN umsatz u ON f.nr = u.fn
WHERE YEAR(u.datum) = 2011
GROUP BY f.name;

 Abfrage mit Berechnung und Bedingung
SELECT f.name AS Firma, SUM(u.umsatz) AS Umsatz
FROM firma f INNER JOIN umsatz u ON f.nr = u.fn
GROUP BY f.name
HAVING SUM(u.umsatz) > 30000000;


                                                     22
SQL – Beispiele 3

 Einfügen
INSERT INTO person (name, telefon)
  VALUES ('Anita', '0172-4387680');
INSERT INTO person (name, telefon) VALUES
  ('Anita', '0172-4387680'),
  ('Angelika', '');

Ändern
UPDATE person
  SET telefon='02161-3462334'
  WHERE name='Anita';
UPDATE person
  SET stadt='MG'

 Löschen
DELETE FROM person
  WHERE name='Anita';
                                            23
PL/SQL

 Procedural Language/SQL
  Datenbanksprache der Firma Oracle

 Prozedurale Programmiersprache
  Variablen, Bedingungen, Schleifen, Ausnahmebehandlung

 Programme in der Datenbank gespeichert
  stored procedures, trigger

 Programme werden im DBMS ausgeführt
  hoch performant

 Bedingungen innnerhalb von SQL-Anweisungen
  SELECT name,
    CASE SUBSTR(name,1,1)
      WHEN 'W'
      THEN 'Mann'
      ELSE 'Frau'
    END AS geschlecht
  FROM person
                                                          24
Daten-Validierung

 Sicherstellen der Integrität – Wertebereich
 Anwendung
   Meist übernimmt die Anwendung die Validierung.


              Benutzer            Anwendung               Datenbank
               Daten-                Daten-                 Daten-
               eingabe             validierung            speicherung

                               nein                        ja
                                                 gültig



 Datenbank
   Validierung auch möglich mit stored procedures.

 Access
   Gültigkeitsregel für Felder definieren.

                                                                        25
Access als Frontend für MySQL

Server
 Datenbank anlegen
   Adresse, Name, Benutzer, Passwort, Remote-Zugriff

Client
 ODBC-Treiber für MySQL installieren
   http://dev.mysql.com/downloads/connector/odbc/

 ODBC-Datenquelle einrichten
   Systemsteuerung > Verwaltung > Datenquellen (ODBC)
   Benutzer-DSN hinzufügen

 Leere Access Datenbank anlegen
   Externe Daten > ODBC-Datenbank > Verknüpfung erstellen

 Externe Tabellen verknüpfen


                                                            26
Access Datentypen

 Memo
  Texte mit bis zu 65535 Zeichen

 Währung
 AutoWert
  Wert wird bei neuer Zeile automatisch inkrementiert

 Ja/Nein
  logisches 1/0 oder wahr/falsch

 OLE-Objekt
  OLE – object linking & embedding

 Hyperlink




                                                        27
Q&A




Fragen?

          28
Übungen

Access 2010 für Windows
Grundlagen für Datenbankentwickler

Herdt Verlag


Übungsdateien herunterladen
http://www.herdt.de/artikel/ACC2010D/Access-2010-fuer-Windows/

Dateien ins Verzeichnis C:Übung kopieren




                                                           29

Weitere ähnliche Inhalte

Empfohlen

2024 State of Marketing Report – by Hubspot
2024 State of Marketing Report – by Hubspot2024 State of Marketing Report – by Hubspot
2024 State of Marketing Report – by HubspotMarius Sescu
 
Everything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPTEverything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPTExpeed Software
 
Product Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage EngineeringsProduct Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage EngineeringsPixeldarts
 
How Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthHow Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthThinkNow
 
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfAI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfmarketingartwork
 
PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024Neil Kimberley
 
Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)contently
 
How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024Albert Qian
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsKurio // The Social Media Age(ncy)
 
Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Search Engine Journal
 
5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summarySpeakerHub
 
ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd Clark Boyd
 
Getting into the tech field. what next
Getting into the tech field. what next Getting into the tech field. what next
Getting into the tech field. what next Tessa Mero
 
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentGoogle's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentLily Ray
 
Time Management & Productivity - Best Practices
Time Management & Productivity -  Best PracticesTime Management & Productivity -  Best Practices
Time Management & Productivity - Best PracticesVit Horky
 
The six step guide to practical project management
The six step guide to practical project managementThe six step guide to practical project management
The six step guide to practical project managementMindGenius
 
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...RachelPearson36
 

Empfohlen (20)

2024 State of Marketing Report – by Hubspot
2024 State of Marketing Report – by Hubspot2024 State of Marketing Report – by Hubspot
2024 State of Marketing Report – by Hubspot
 
Everything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPTEverything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPT
 
Product Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage EngineeringsProduct Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage Engineerings
 
How Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthHow Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental Health
 
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfAI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
 
Skeleton Culture Code
Skeleton Culture CodeSkeleton Culture Code
Skeleton Culture Code
 
PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024
 
Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)
 
How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie Insights
 
Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024
 
5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary
 
ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd
 
Getting into the tech field. what next
Getting into the tech field. what next Getting into the tech field. what next
Getting into the tech field. what next
 
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentGoogle's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search Intent
 
How to have difficult conversations
How to have difficult conversations How to have difficult conversations
How to have difficult conversations
 
Introduction to Data Science
Introduction to Data ScienceIntroduction to Data Science
Introduction to Data Science
 
Time Management & Productivity - Best Practices
Time Management & Productivity -  Best PracticesTime Management & Productivity -  Best Practices
Time Management & Productivity - Best Practices
 
The six step guide to practical project management
The six step guide to practical project managementThe six step guide to practical project management
The six step guide to practical project management
 
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
 

Access

  • 1. Datenbankadministration mit Access – Grundlagen VHS Mönchengladbach 22.-23.9.2012 1
  • 2. Über uns IT-Beratung, Training, Web-Design, Programmierung Thomas Siegers ts@interwerkstatt.net Diese Präsentation ist frei zugänglich auf: http://www.slideshare.net/thomasjs Dieses Werk bzw. Inhalt steht unter einer Creative Commons Namensnennung - Weitergabe unter gleichen Bedingungen 3.0 Unported Lizenz. Siehe mehr unter: http://creativecommons.org/licenses/by-sa/3.0/deed.de 2
  • 3. Agenda  Einführung  Live Demo  SQL  Access  Grundlagen  Tabellen  Beziehungen  Abfragen  Formulare  Berichte  Übungen 3
  • 4. Motto "Sage es mir und ich vergesse es, zeige es mir und ich erinnere mich, lass es mich tun und ich behalte es." Konfuzius, chinesischer Philosoph, 551-479 v. Chr. 4
  • 5. Warum Datenbanken?  Daten strukturiert speichern  Daten sicher eingeben  Daten schnell finden  Beliebige Daten abfragen  Verschiedene Datenquellen miteinander verbinden  Beliebig große Mengen an Daten verwalten  Daten beliebig fein unterteilen  Beliebige Berechtigungen für Daten vergeben  Daten beliebig ausgeben  Benutzer gleichzeitig mit Daten arbeiten lassen  Daten im- und exportieren 5
  • 6. Begriffe  Aufbau  Datenbankmanagementsystem (DBMS)  Datenbank (DB) DBMS Typen  Hierarchisch DB  Objektorientiert  Relational 6
  • 7. Relationale Datenbanken  Tabelle Tabelle 1  Relation, entity Feld 1 Feld 2  Beziehung Feld 3  relationship Beziehung  Spalte  Attribut, Feld, field, column Tabelle 2  Zeile Feld 1  Tupel, Datensatz, record, row Feld 2 Feld 3 Feld 1 Feld 2 Feld 3 Wert 11 Wert 12 Wert 13 Wert 21 Wert 22 Wert 23 Wert 31 Wert 32 Wert 33 Wikipedia Wikipedia 7
  • 8. ER-Diagram Wikipedia Wikipedia 8
  • 9. Normalisierung  Eliminierung / Reduzierung von Redundanz Wikipedia Wikipedia  Erste bis fünfte Normalform (1NF - 5NF) Nr Name Firma Nr Name Fa-Nr 1 Willy AEG 1 Willy 1 2 Walter IBM 2 Walter 2 3 Werner BMW 3 Werner 3 4 Anton BMW 4 Anton 3 5 Anna AEG 5 Anna 1 6 Agnes BMW 6 Agnes 3 Nr Firma 1 AEG 2 IBM 3 BMW 9
  • 10. Beziehungen Nr Name Fa-Nr 1 Willy 1 1 : n one-to-many 2 Walter 2 3 Werner 3 Nr Firma 4 Anton 3 1 AEG 5 Anna 1 2 IBM 6 Agnes 3 3 BMW junction table Nr Name 1 Willy Ma-Nr 1 Fa-Nr 1 n : m many-to-many 2 Walter 3 Werner 2 2 4 Anton 3 3 4 3 Nr Firma 5 Anna 5 1 1 AEG 6 Agnes 5 2 2 IBM 6 3 3 BMW 6 2 10
  • 11. Schlüssel  Mithilfe von Schlüsseln werden die Beziehungen zwischen Tabellen hergestellt.  Primärschlüssel (primary key, PK)  I.d.R. hat jede Tabelle einen PK.  Eine Tabelle kann nur einen PK haben.  Die Werte im PK müssen eindeutig sein.  Die Werte im PK werden i.d.R. automatisch vom DBMS erzeugt.  Fremdschlüssel (foreign key, FK)  Der FK enthält die Werte des PK der verknüpften Tabelle.  Eine Tabelle darf mehr als einen FK haben.  Die Werte im FK dürfen mehrdeutig sein.  Die Werte im FK werden i.d.R. vom Anwendungsprogramm erzeugt. 11
  • 12. Indizes  Indizes werden verwendet, um das Auffinden von Datensätzen zu beschleunigen. Tabelle Nr Firma Umsatz  Indizes können auf eine Spalte 1 AEG 123.456 oder eine Kombination von 2 IBM 987.654 mehreren Spalten gesetzt 3 BMW 456.789 werden.  Primär- und Fremschlüssel Index auf Umsatz sind immer indiziert. Nr Umsatz 1 123.456  Wenn eine Spalte nicht indiziert 3 456.789 ist, muss bei einer Suche im 2 987.654 ungünstigsten Fall die gesamte Tabelle durchsucht werden (full table scan). 12
  • 13. Integrität Korrektheit, Vollständigikeit und Konsistenz der Daten  Primärschlüssel muss eindeutig sein und darf nicht Null sein  Wertebereich Daten müssen innerhalb eines bestimmten Bereiches liegen  Referentielle Integrität “Die referentielle Integrität - auch Beziehungsintegrität besagt, dass Attributwerte von einem Fremdschlüssel auch als Attributwert des Primärschlüssels vorhanden sein müssen.” http://www.wirtschaftsinformatik-24.de/datenbanken/referentielle-integritaet.php  Sperren Soll eine Datenbank mehrbenutzerfähig sein, so muss ein Datensatz, der gerade von einem Benutzer editiert wird, für andere Benutzer gesperrt werden.  Transactionssicherheit Wikipedia atomicity, consistency, isolation, durability (ACID) Wikipedia 13
  • 14. Architektur  Client – Server  Client enthält Anwendungslogik.  Datenverkehr zwischen Client und Server ist relativ gering.  Multi-Tier  Client kümmert sich nur um Präsentation.  Client kann – muss aber nicht – nur aus Browser bestehen.  Datenverkehr zwischen Client und Server ist sehr gering. Client Web-Server Anwendung DBMS Web-Browser 14
  • 15. Hersteller Server PC  Oracle  Access  DB2  Paradox  MS SQL  dBase  MySQL  Foxpro  PostgreSQL 15
  • 16. Datentypen ! Datentypen sind nicht einheitlich für alle DBMS. http://w3schools.com/sql/sql_datatypes.asp  Numerisch  INT(6) – Ganzzahl mit 6 Stellen  TINYINT – 8 bit, 28=256, unsigned 0 bis 255, signed -128 bis 127  FLOAT(8,2) – Kommazahl mit 8 Stellen und 2 Nachkommastellen  Text  CHAR(25) – Zeichenkette fester Länge  VARCHAR(255) – Zeichenkette variabler Länge  Datum  DATE – Datum im Format YYYY-MM-DD  DATETIME – Datum und Zeit im Format YYYY-MM-DD HH:MM:SS 16
  • 17. Feld-Eigenschaften  Datentyp, Länge  Standardwert (default) – 0, null, benutzerdefiniert  Collation – Code für alphabetische Sortierung  Attribut – signed, unsigned  Null – Feld darf nicht leer sein  Index – Primärschlüssel, eindeutig  Auto-Inkrement – Wert wird automatisch erhöht 17
  • 18. Funktionen  Aggregatfunktionen SUM(), MIN(), MAX(), AVG(), COUNT()  Numerische Funktionen SQRT(), PI(), SIN(), RAND(), ROUND()  Zeichenketten LIKE, SUBSTR(), TRIM(), UPPER(), REPLACE()  Datum und Zeit DATE(), YEAR(), NOW(), ADDDATE(), DAYOFYEAR() http://dev.mysql.com/doc/refman/5.0/en/functions.html  SQL Anweisungen  GROUP BY  HAVING 18
  • 19. Live Demo  MySQL Demo Datenbank auf interwerkstatt.net  Server-Adresse  Datenbankname  Benutzername  Kennwort  Zugriff lokal - phpMyAdmin entfernt – MySQL Workbench, Access  LAMP-Umgebung lokal installieren  Linux, Apache, MySQL, PHP  XAMPP für Windows 19
  • 20. SQL  Structured Query Language Wikipedia Wikipedia  Datenbank-Abfragesprache  Daten abfragen, einfügen, ändern, löschen  Verwaltung von Datenbanken  Beispiele SELECT * FROM person; SELECT name, telefon FROM person WHERE nr>3; SELECT name, telefon FROM person ORDER BY name ASC; CREATE TABLE person ( nr int(6) NOT NULL DEFAULT '0', name varchar(12) DEFAULT NULL, telefon varchar(12) DEFAULT NULL, PRIMARY KEY (nr); ) 20
  • 21. SQL – Beispiele 1  Abfrage über mehere Tabellen SELECT p.name AS Person, f.name AS Firma, a.name AS Abteilung FROM person p INNER JOIN abteilung a ON p.nr=a.pn INNER JOIN firma f ON a.fn=f.nr;  Abfrage mit Bedingung und Sortierung SELECT p.name AS Person, f.name AS Firma, a.name AS Abteilung FROM person p INNER JOIN abteilung a ON p.nr=a.pn INNER JOIN firma f ON a.fn=f.nr WHERE p.name LIKE 'W%' ORDER BY p.name ASC; 21
  • 22. SQL - Beispiele 2  Abfrage mit Berechnung SELECT f.name AS Firma, SUM(u.umsatz) AS Umsatz FROM firma f INNER JOIN umsatz u ON f.nr = u.fn GROUP BY f.name;  Abfrage mit Berechnung und Bedingung SELECT f.name AS Firma, SUM(u.umsatz) AS `Umsatz 2011` FROM firma f INNER JOIN umsatz u ON f.nr = u.fn WHERE YEAR(u.datum) = 2011 GROUP BY f.name;  Abfrage mit Berechnung und Bedingung SELECT f.name AS Firma, SUM(u.umsatz) AS Umsatz FROM firma f INNER JOIN umsatz u ON f.nr = u.fn GROUP BY f.name HAVING SUM(u.umsatz) > 30000000; 22
  • 23. SQL – Beispiele 3  Einfügen INSERT INTO person (name, telefon) VALUES ('Anita', '0172-4387680'); INSERT INTO person (name, telefon) VALUES ('Anita', '0172-4387680'), ('Angelika', ''); Ändern UPDATE person SET telefon='02161-3462334' WHERE name='Anita'; UPDATE person SET stadt='MG'  Löschen DELETE FROM person WHERE name='Anita'; 23
  • 24. PL/SQL  Procedural Language/SQL Datenbanksprache der Firma Oracle  Prozedurale Programmiersprache Variablen, Bedingungen, Schleifen, Ausnahmebehandlung  Programme in der Datenbank gespeichert stored procedures, trigger  Programme werden im DBMS ausgeführt hoch performant  Bedingungen innnerhalb von SQL-Anweisungen SELECT name, CASE SUBSTR(name,1,1) WHEN 'W' THEN 'Mann' ELSE 'Frau' END AS geschlecht FROM person 24
  • 25. Daten-Validierung  Sicherstellen der Integrität – Wertebereich  Anwendung Meist übernimmt die Anwendung die Validierung. Benutzer Anwendung Datenbank Daten- Daten- Daten- eingabe validierung speicherung nein ja gültig  Datenbank Validierung auch möglich mit stored procedures.  Access Gültigkeitsregel für Felder definieren. 25
  • 26. Access als Frontend für MySQL Server  Datenbank anlegen Adresse, Name, Benutzer, Passwort, Remote-Zugriff Client  ODBC-Treiber für MySQL installieren http://dev.mysql.com/downloads/connector/odbc/  ODBC-Datenquelle einrichten Systemsteuerung > Verwaltung > Datenquellen (ODBC) Benutzer-DSN hinzufügen  Leere Access Datenbank anlegen Externe Daten > ODBC-Datenbank > Verknüpfung erstellen  Externe Tabellen verknüpfen 26
  • 27. Access Datentypen  Memo Texte mit bis zu 65535 Zeichen  Währung  AutoWert Wert wird bei neuer Zeile automatisch inkrementiert  Ja/Nein logisches 1/0 oder wahr/falsch  OLE-Objekt OLE – object linking & embedding  Hyperlink 27
  • 29. Übungen Access 2010 für Windows Grundlagen für Datenbankentwickler Herdt Verlag Übungsdateien herunterladen http://www.herdt.de/artikel/ACC2010D/Access-2010-fuer-Windows/ Dateien ins Verzeichnis C:Übung kopieren 29