Date post: | 26-Jun-2015 |
Category: |
Education |
Upload: | thomas-siegers |
View: | 1,033 times |
Download: | 0 times |
1
22.-23.9.2012
Datenbankadministration mit Access – Grundlagen
VHS Mönchengladbach
2
Über uns
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.0Unported Lizenz.
Siehe mehr unter: http://creativecommons.org/licenses/by-sa/3.0/deed.de
IT-Beratung, Training, Web-Design, Programmierung
Thomas Siegers [email protected]
3
Einführung
Live Demo
SQL
Access
Grundlagen
Tabellen
Beziehungen
Abfragen
Formulare
Berichte
Übungen
Agenda
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.
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
6
Begriffe
Aufbau
Datenbankmanagementsystem (DBMS)
Datenbank (DB)
Typen
Hierarchisch
Objektorientiert
Relational
DB
DBMS
7
Relationale Datenbanken
Tabelle
Relation, entity
Beziehung
relationship
Spalte
Attribut, Feld, field, column
Zeile
Tupel, Datensatz, record, row
Tabelle 1Feld 1Feld 2Feld 3
Tabelle 2Feld 1Feld 2Feld 3
Feld 1 Feld 2 Feld 3 Wert 11 Wert 12 Wert 13Wert 21 Wert 22 Wert 23Wert 31 Wert 32 Wert 33
Beziehung
WikipediaWikipedia
8
ER-Diagram
WikipediaWikipedia
9
Normalisierung
Eliminierung / Reduzierung von Redundanz
Erste bis fünfte Normalform (1NF - 5NF)WikipediaWikipedia
Nr Name Firma1 Willy AEG2 Walter IBM3 Werner BMW4 Anton BMW5 Anna AEG6 Agnes BMW
Nr Name Fa-Nr1 Willy 12 Walter 23 Werner 34 Anton 35 Anna 16 Agnes 3
Nr Firma1 AEG2 IBM3 BMW
10
Beziehungen
Nr Name Fa-Nr1 Willy 12 Walter 23 Werner 34 Anton 35 Anna 16 Agnes 3
Nr Firma1 AEG2 IBM3 BMW
1 : n one-to-many
Nr Name 1 Willy2 Walter3 Werner4 Anton5 Anna6 Agnes
Nr Firma1 AEG2 IBM3 BMW
Ma-Nr Fa-Nr 1 1 2 2 3 3 4 3 5 1 5 2 6 3 6 2
n : m many-to-many
junction table
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.
12
Indizes
Indizes werden verwendet, um das Auffinden von Datensätzen zu beschleunigen.
Indizes können auf eine Spalte oder eine Kombination von mehreren Spalten gesetzt werden.
Primär- und Fremschlüssel sind immer indiziert.
Wenn eine Spalte nicht indiziert ist, muss bei einer Suche im ungünstigsten Fall die gesamte Tabelle durchsucht werden(full table scan).
Nr Firma Umsatz 1 AEG 123.4562 IBM 987.6543 BMW 456.789
Nr Umsatz 1 123.4563 456.7892 987.654
Tabelle
Index auf Umsatz
13
Integrität
Korrektheit, Vollständigikeit und Konsistenz der Daten
Primärschlüsselmuss eindeutig sein und darf nicht Null sein
WertebereichDaten 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
SperrenSoll eine Datenbank mehrbenutzerfähig sein, so muss ein Datensatz, der gerade von einem Benutzer editiert wird, für andere Benutzer gesperrt werden.
Transactionssicherheitatomicity, consistency, isolation, durability (ACID) WikipediaWikipedia
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.
ClientWeb-Browser
Web-Server Anwendung DBMS
15
Hersteller
Server
Oracle
DB2
MS SQL
MySQL
PostgreSQL
PC
Access
Paradox
dBase
Foxpro
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
!
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
18
Funktionen
AggregatfunktionenSUM(), MIN(), MAX(), AVG(), COUNT()
Numerische FunktionenSQRT(), PI(), SIN(), RAND(), ROUND()
ZeichenkettenLIKE, SUBSTR(), TRIM(), UPPER(), REPLACE()
Datum und ZeitDATE(), YEAR(), NOW(), ADDDATE(), DAYOFYEAR()
http://dev.mysql.com/doc/refman/5.0/en/functions.html
SQL Anweisungen
GROUP BY
HAVING
19
Live Demo
MySQL Demo Datenbank auf interwerkstatt.net
Server-Adresse
Datenbankname
Benutzername
Kennwort
Zugrifflokal - phpMyAdminentfernt – MySQL Workbench, Access
LAMP-Umgebung lokal installieren
Linux, Apache, MySQL, PHP
XAMPP für Windows
20
SQL
Structured Query Language
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);)
WikipediaWikipedia
21
SQL – Beispiele 1
Abfrage über mehere Tabellen
SELECTp.name AS Person, f.name AS Firma, a.name AS AbteilungFROM person pINNER JOIN abteilung a ON p.nr=a.pnINNER JOIN firma f ON a.fn=f.nr;
Abfrage mit Bedingung und Sortierung
SELECTp.name AS Person, f.name AS Firma, a.name AS AbteilungFROM person pINNER JOIN abteilung a ON p.nr=a.pnINNER JOIN firma f ON a.fn=f.nr
WHERE p.name LIKE 'W%' ORDER BY p.name ASC;
22
SQL - Beispiele 2
Abfrage mit Berechnung
SELECT f.name AS Firma, SUM(u.umsatz) AS UmsatzFROM firma f INNER JOIN umsatz u ON f.nr = u.fnGROUP 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.fnWHERE YEAR(u.datum) = 2011GROUP BY f.name;
Abfrage mit Berechnung und Bedingung
SELECT f.name AS Firma, SUM(u.umsatz) AS UmsatzFROM firma f INNER JOIN umsatz u ON f.nr = u.fnGROUP BY f.nameHAVING SUM(u.umsatz) > 30000000;
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';
24
PL/SQL
Procedural Language/SQLDatenbanksprache der Firma Oracle
Prozedurale ProgrammierspracheVariablen, Bedingungen, Schleifen, Ausnahmebehandlung
Programme in der Datenbank gespeichertstored procedures, trigger
Programme werden im DBMS ausgeführthoch performant
Bedingungen innnerhalb von SQL-AnweisungenSELECT name, CASE SUBSTR(name,1,1) WHEN 'W' THEN 'Mann' ELSE 'Frau' END AS geschlechtFROM person
25
Daten-Validierung
Sicherstellen der Integrität – Wertebereich
AnwendungMeist übernimmt die Anwendung die Validierung.
DatenbankValidierung auch möglich mit stored procedures.
AccessGültigkeitsregel für Felder definieren.
BenutzerDaten-
eingabe
AnwendungDaten-
validierung
DatenbankDaten-
speicherung
gültignein ja
26
Access als Frontend für MySQL
Server
Datenbank anlegenAdresse, Name, Benutzer, Passwort, Remote-Zugriff
Client
ODBC-Treiber für MySQL installierenhttp://dev.mysql.com/downloads/connector/odbc/
ODBC-Datenquelle einrichtenSystemsteuerung > Verwaltung > Datenquellen (ODBC)Benutzer-DSN hinzufügen
Leere Access Datenbank anlegenExterne Daten > ODBC-Datenbank > Verknüpfung erstellen
Externe Tabellen verknüpfen
27
Access Datentypen
MemoTexte mit bis zu 65535 Zeichen
Währung
AutoWertWert wird bei neuer Zeile automatisch inkrementiert
Ja/Neinlogisches 1/0 oder wahr/falsch
OLE-ObjektOLE – object linking & embedding
Hyperlink
28
Q & A
Fragen?
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