Grundlagen DBS = nDB + DBMS - Computertrainer Andreas Schöbel

Werbung
Autor:
Andreas Schöbel
Seite 1
Grundlagen
Access 2010
Wesen relationaler Datenbanken
Datenbanken stellen (große) Sammlungen von Daten dar, die zur Auswertung und
Bearbeitung zur Verfügung gestellt werden.
Datenbanken bezeichnen sowohl die Gesamtheit der Datenbasis als auch den einzelnen Datencontainer.
Datenbanksysteme (DBS) besteher aus einen oder mehreren Datenbanken (DB)
und einem Datenbankmanagementsystem (DBMS), das die Funktionalität zur Bearbeitung der Daten und zur Sicherheit des Datenbestandes bereit stellt. Für den Zugriff auf die Datenbanken werden Werkzeuge in Form von Sprachen zur Verfügung
gestellt.
DBS = nDB + DBMS
Relationale Datenbanken speichern die Daten in Form von Tabellen, die im mathematischen Sinne Relationen sind. Die einzelnen zusammengehörigen Daten bilden
also Tupel, die in der ganzen Tabelle gleich strukturiert sind.
Die Beziehungen zwischen den verschiedenen Tabellen werden ebenfalls als Relationen bezeichnet und gelegentlich auch durch solche abgebildet. Im mathematischen Sinne sind das Mengenoperationen über die einzelnen Relationen (Tabellen)
Datensatz: speichert eine Instanz
eines Objektes (einer Entität), in
dem er deren Attribute auflistet
Datenbank(tabelle): Container zur Aufnahme der Instanzen eines Objekt
(types), d. h. einer Entität, Gesamtheit
aller Datensätze
Feldname: beschreibt ein Attribut der
zu speichernden Entität
Feld: Teil eines Datensatzes zur Aufnahme des Wertes eines bestimmten
Attributes, kleinste, bedeutungstragende Einheit
Felder oder Feldkombinationen, mit denen sich ein ganzer Datensatz eindeutig identifizieren
lässt, heißen Schlüssel.
Der für die Benutzung besonders herausgehobene Schlüssel heißt Primärschlüssel.
Ein Feld, das die Beziehung zu einer anderen Tabelle herstellt und in der anderen Tabelle ein
Schlüssel ist, heißt Fremdschlüssel.
Autor:
Andreas Schöbel
Seite 2
Grundlagen
Access 2007
Datenbanksichten (Schichten)
3 Schichten (Schemata / Sichten) einer Datenbank
Externes Schema / externe Sicht
Konzeptionelles Schema / logische Sicht
Internes Schema / interne Sicht
File 1
File 2
File 3
Externes Schema
Im externen Schema wird beschrieben, wie sich die Daten der Datenbank dem Nutzer darbieten, also welche Daten in welcher Struktur mit welchen Bearbeitungsrechten welchem
Nutzer zur Verfügung gestellt werden.
Konzeptionelles Schema / logische Sicht
Im konzeptionellen Schema wird die innere, also logische Struktur der Datenbank beschrieben. Es wird also festgelegt, welche Datenbanktabellen bei relationalen Datenbanken mit
welcher Struktur und welchen Beziehungen vorhanden sind. Hierzu gehören auch die detailierte Bestimmung der Felder und die Bestimmung von Schlüsseln.
Die Aufstellung dieses Schemas erfordert es, eine Reihe von Regeln einzuhalten.
Internes Schema / interne Sicht
Im internem Schema wird die physische Ablage der Daten auf dem Datenträger beschrieben.
Autor:
Andreas Schöbel
Seite 3
Grundlagen
Access 2010
Bestandteile von Access-Datenbanken
Formulare
Tabellen
Module
Berichte
Automatisieren
Makros
Abfragen
wahl und Datenmanipulation beinhalten:

Kontrollschaltflächen

Befehlsschaltflächen

Kombinationsflächen

Listenfelder

Optionsschaltflächen

usw. (alle Windows-GrafikElemente und zusätzlich sogenannte AktivX-Elemente)
Tabellen




die eigentlichen Datenquelle
die Datensätze werden in Tabellen abgelegt (Zeilen)
die Tabellen verfügen über Felder
(Spalten)
für die Felder steht eine Vielzahl von
Datentypen zur Verfügung
Abfragen




gespeicherte Auswertungen der Datenbanktabellen
können auch Selektionen aus mehreren
Tabellen (die verknüpft sind) beinhalten
(Daten aus mehreren Tabellen selektieren)
können auch benutzt werden, um Daten
zu manipulieren
Erstellen neuer Tabellen auf Grundlage
der selektierten Daten



eingeben von Daten
löschen von selektierten Daten
verändern von selektierten Daten
Formulare





Berichte




bessere Darstellung der Daten auf dem
Drucker
kann vorher auf dem Bildschirm betrachtet werden
lassen Seiten- und Abschnittsüberschriften zu
lassen Gruppierungen (nach Namen bei
Kunden z. B.) zu und Zusammenfassungen der Gruppe (Summe der Artikelpreise)
Makros

lassen die Benutzung aller AccessMenübefehle und deren Zuordnung zu
grafischen Steuerelementen und Handlungen des Nutzers zu (EreignisseReaktionen)
bessere Darstellung der Daten aus den
Tabellen bzw. Abfragen
können auch Daten aus verknüpften
Tabellen bzw- Abfragen gleichzeitig darModule
stellen

VBA-Code, der an der Stelle von Makros
können wahlweise einen oder mehrere
genutzt werden kann
Datensätze darstellen

bietet weit mehr Möglichkeiten als MakVeränderung der Modellvorstellung:
ros, setzt aber einige Programmierstatt Tabelle Karteikasten
kenntnisse voraus
können eine Vielzahl verschiedener grafischer Steuerelemente zur Datenaus-
Autor:
Andreas Schöbel
Seite 4
Grundlagen
Access 2010
Access-Spezifikation
Maximale Größe einer Access-Datenbank
2 GB
Anzahl der Objekte in einer Datenbank
32.768
Anzahl der Module
1.000
Anzahl der Zeichen für einen Objektnamen
64
Anzahl gleichzeitiger Benutzer
255
Anzahl Zeichen für ein Kennwort
20
Anzahl Zeichen in einem Benutzernamen
20
Anzahl in einem Tabellen– oder Feldnamen
64
Anzahl der Felder in einer Tabelle
255
Anzahl der geöffneten Tabellen
2048
Maximale Größe einer Tabelle
2 GB
Anzahl der Zeichen in einem Feld vom Typ Text
255
Anzahl der Zeichen in einem Feld vom Typ Memo
65.535
Größe eines Feldes vom Typ OLE
1 GB
Anzahl der Indizes in einer Tabelle
32
Anzahl der Felder in einem Index
10
Anzahl der Zeichen in einer Gültigkeitsmeldung
255
Anzahl der Zeichen in einer Gültigkeitsregel
2.048
Anzahl der Zeichen in einer Tabellen– oder Feldbeschreibung
255
Maximale Zeichenzahl (ohne Memo– und OLE-Feld, bei Kompression)
4.000
Zeichenzahl in den Eigenschaftseinstellungen eines Feldes
255
Anzahl der Tabellen in einer Abfrage
32
Anzahl der Verknüpfungen in einer Abfrage
16
Anzahl der Felder in einer Abfrage
255
Anzahl von verschachtelten Abfragen
50
Maximale Anzahl von Zeichen in einem Feld des Datenbankentwurfs
1.024
Anzahl der Zeichen für den Namen eines Parameters
255
Anzahl der AND-Verknüpfungen in WHERE– und HAVING-Klauseln
99
Anzahl der Zeichen in einer SQL-Anweisung
64.000
Anzahl der Zeichen in einem Bezeichnungssteuerelement
2.048
Anzahl der Zeichen in einem Textfeld-Steuerelement
65.536
Maximale Breite eine Berichtes oder Formulars und Höhe eine Bereiches
55,87 cm
Gesamthöhe eines Berichtes oder Formulars
508 cm
Anzahl der Gruppenbereiche in Berichten
10
Anzahl der maximale in der Lebensdauer hinzufügbare Steuerelemente
754
Anzahl der Aktionen in einem Makro
999
Autor:
Andreas Schöbel
Seite 5
Grundlagen
Access 2010
Access-Oberfläche
Startfenster (Backstage)
zuletzt genutzte Datenbanken und andere Bereiche des
Backstage-Bereiches
Datenbankvorlagen
Schnellzugriffleiste
Register (Hier aktiv:
Datei = Backstage)
Kontextsensitiver Abschnitt
Menüband
Register
Befehlsgruppe
Schnellstart für
Dialogfelder
Diverse Befehlsschaltflächen
Geöffnete Datenbank
Register der
Fenster
Navigator
Geöffnetes
Objekt
Autor:
Andreas Schöbel
Seite 6
Tabellenentwurf
Access 2010
Felddatentypen
Felddatentyp
Felder und Ihre Größe
Text
Text mit einer Textlänge bis zu 255 Zeichen
die Zeichenlänge wird als Feldgröße angegeben
Memo
Text mit einer maximalen Größe von 65.535 Zeichen
die Feldgröße ist nicht einstellbar, sondern wird dynamisch angepasst
Zahl
Ein beliebiger Zahlenwert
Feldgrößen
Byte
1 Byte
Integer
2 Byte
Long Integer
4 Byte
Single
4 Byte
Double
8 Byte
Dezimal
12 Byte
ReplikationsID
16 Byte
0 bis 255
-32.768 bis 32.767
-2.147.483.648 bis 2.147.483.647
-3,402823*1038 bis -1,401298*10-45
1,401298*10-45 bis 3,402823*1038
Genauigkeit 7 Stellen
-1,79769313486232*10308 bis
-4,9405645841247*10-324
4,9405645841247*10-324 bis
1,79769313486232*10308
Genauigkeit 15 Stellen
-1028–1 bis 1028-1
Genauigkeit 28 Stellen
Global Unique Identifier (GUID)
automatisch vergebene, weltweit
eindeutige Datensatznummer
Datum/Uhrzeit
Datum und Uhrzeit zwischen dem Jahr 100 und 9999
Währung
Zahlenwert zwischen -922.337.203.685.477,5808 und
922.337.203.685.477,5807 mit einer Genauigkeit von 4 Stellen
nach dem Komma,
die Größe ist nicht weiter einstellbar
AutoWert
automatisch erstellter Wert
In der Feldgröße kann zwischen
Long Integer (8 Byte) und ReplikationsID (16 Byte) gewählt werden
Ja/Nein
Boolscher Datentyp - es gibt nur zwei mögliche Inhalte: Ja oder Nein,
Wahr oder Falsch, An oder Aus usw.
die Feldgröße kann nicht besonder eingestellt werden
OLE-Objekt
In diesen Feldern können OLE-Objekte gespeichert werden (PaintBilder, Excel-Tabellen, Word-Texte usw.),
die Feldgröße kann nicht eingestellt werden (max. 1 GB)
Hyperlink
Ein Hyperlinkadresse kann eingegeben werden,
die Feldgröße kann nicht geregelt werden
NachschlageAssistent Verknüpfungsfeld zu einer anderen Tabelle oder Werteliste
die Feldgröße hängt vom verknüpften Feld ab
mehrwertige Felder und das Editieren der Werte durch den Benutzer
sind möglich
Anlage
Dateianhänge (insg. 2 GB, je Datei max. 256 MB)
Berechnet
Erlaubt es, den Feldinhalt aus anderen Felder durch Formeln abzuleiten
Autor:
Andreas Schöbel
Seite 7
Tabellenentwurf
Access 2010
Beziehungen zwischen Tabellen
Beziehungen (Verknüpfungen) zwischen Datenbanktabellen
Die Art der Verknüpfung ergibt sich aus der Art der Felder, über die die Verknüpfung hergestellt wird
Arten von Verknüpfungen zwischen Tabellen
1:1 - Verknüpfungen
w Beide verknüpften Felder kommen in beiden Tabellen als Schlüssel
Adressdaten 1
für der jeweiligen Tabelle vor (hier z. B. Personalnummer)
w Für jeden Datensatz der Tabelle „Adressdaten 1“ gibt es genau einen
Adressdaten 2
zugehörigen Datensatz der anderen Tabelle „Adressdaten 2“ und
umgekehrt.
1 : 1 - Beziehung
1:n - Verknüpfungen
w Eines der verknüpften Felder ist ein Schlüssel - möglichst ein Primärschlüssel - für die eine Tabelle - der korrespondierende Fremd- Klasse
schlüssel ist aber kein Schlüsselfeld in seiner Tabelle (hier z. B. Klasse)
w Zu jedem Datensatz in der Tabelle „Klasse“ (mit dem Primärschlüssel) gibt es mehrere Datensätze in der Tabelle „Schüler“, aber nicht
umgekehrt - zu jedem Datensatz der Tabelle „Schüler“ gibt es nur
einen Datensatz in der Tabelle „Klasse“.
m:n - Verknüpfungen
w Keines der Felder, auf denen die Verknüpfung beruht sind in ihren
Schüler
1 : n - Beziehung
Schrauben
Muttern
Tabellen Schlüsselfelder (hier z. B. Gewindegröße)
w Zu jedem Datensatz der Tabelle „Schrauben“ gibt es mehrere zugehörige Datensätze in der Tabelle „Muttern“ und zu jedem Datensatz
in der Tabelle „Muttern“ gibt es mehrere zugehörige Datensätze in
der Tabelle „Schrauben“
m : n - Beziehung
Darüber hinaus kann für jede Verknüpfung (Beziehung) festgelegt werden, ob sie nur die
Datensätze beider Tabellen aufnehmen soll, für die es in der jeweils anderen Tabelle auch
eine Entsprechung gibt, oder ob auch aus einer der beiden verknüpften Tabellen Datensätze aufgenommen werden sollen, für die es in der anderen Tabelle keine Entsprechung gibt.
Resultierende Möglichkeiten
Weiterhin lässt sich „Referentielle Integrität“ prüfen, d. h., ob es zu jedem Datensatz der
Detailtabelle auch eines Datensatz in der Haupttabelle gibt. Dabei kann veranlasst werden,
dass bei Löschungen eines Datensatzes der Haupttabelle auch der zugehörige Datensatz
gelöscht wird. Wird der Schlüssel der Haupttabelle geändert, so kann auch der zugehörige
Fremdschlüssel automatisch korrigiert werden.
Autor:
Andreas Schöbel
Seite 8
Tabellenentwurf
Access 2010
Feldeigenschaften
Feldeigenschaft
Bedeutung
Feldname
Feldname mit 64 Zeichen, im Strukturbereich festzulegen
Felddatentyp
Auswahlfeld im Strukturbereich, Standard ist Text mit 50
Zeichen
Beschreibung
Kommentar für das Feld
Primärschlüssel
Über Schaltfläche oder Kontextmenü festzulegende Eigen-
Die folgenden Eigenschaften sind im Detailbereich festzulegen
Feldgröße
Für Textfelder die erlaubte Zeichenzahl, für Zahlfelder der
Wertebereich
Format
Vordefinierte und selbsterstellbare Formate für Zahlen
Dezimalstellenanzeige
Anzahl der Nachkommastellen
Eingabeformat
Formate für die Eingabegestaltung (Eingabemaske)
Beschriftung
Definiert eine vom Feldnamen abweichende Spaltenüberschrift
Standardwert
Vorgabewert, der automatisch bei neuen Datensätzen in das
Feld eingetragen wird
Gültigkeitsregel
Legt die Regeln für die Eingabe von Werten durch Ausdrü-
Gültigkeitsmeldung
Meldung, die erscheint, wenn die Gültigkeitsregel bei der
Eingabe nicht eingehalten wurde
Eingabe erforderlich
Legt fest, ob das Feld leer bleiben darf oder Werte enthalten
muss
Leere Zeichenfolge
Legt fest, ob als Eingabe auch eine leere Zeichenfolge ("")
erlaubt ist
Neue Werte
Legt für Autowert-Felder "Inkrement" oder "Zufall" fest
Indiziert
Legt fest, ob für das Feld ein Index gebildet werden soll und
falls ja, ob doppelte Werte erlaubt sind
Unicode-Kompression
komprimierte Speicherung für Unicode-Zeichen
IME-Modus
nur für ostasiatische Sprachen (Input Message Editor)
IME-Satzmodus
für Japanisch
Smarttags
Erlaubt es, dem Feld ein Smarttag zuzuordnen
Textformat
Erlaubt Rich-Text-Memofelder (mit Formatierung)
Textausrichtung
Legt Ausrichtung der Daten im Feld fest (links, rechts, ...)
Datumsauswahl anzeigen
Legt fest, ob ein Datumsauswahlfeld geöffnet werden kann
Nur anfügen
verbietet das Ändern oder Löschen eingefügter Daten
Autor:
Andreas Schöbel
Seite 9
Tabellenentwurf
Access 2010
Normalisieren
Normalisieren der Datenbank während des Entwurfs =
Gewährleisten der ersten bis dritten Normalform:
1. Normalform:
Eine Relation befindet sich in der ersten Normalform, wenn die Attribute
nur atomare Werte aufweisen (d. h., keine Aufzählungen mehrere Werte
in Attributen)
2. Normalform:
Eine Relation befindet sich in der zweiten Normalform, wenn sie sich bereits in der ersten Normalform befindet und alle Nichtschlüsselattribute
ausschließlich vom gesamten Primärschlüssel bzw. Primärschlüsselkombination abhängt (d. h., bei Primärschlüssel, die sich aus Attributkombinationen ergeben, darf es keine eindeutigen Abhängigkeiten von Teilschlüssel geben)
3. Normalform:
Eine Relation befindet sich in der dritten Normalform, wenn sie sich in
der zweiten Normalform befindet und kein Nichtschlüsselattribut eindeutig von einem anderen Nichtschlüsselattribut abhängt (d. h., keine transitiven Funktionalitäten)
Darstellung des logischen Datenbankschemas
Titel
PK
ISBN
Titel
Autor
Verlag
Erscheinungsjahr
Leser
PK,I1
Leser-ID
Name
Vorname
Geburtsjahr
Straße
PLZ
Ort
Bücher
PK,I1
Buch-ID
FK1,I2
ISBN
Ausleihen
FK1,I2
Buch-ID
FK2,I4,I3
Leser-ID
Ausleihdatum
Rückgabedatum
Autor:
Andreas Schöbel
Seite 10
Tabellenentwurf
Access 2010
Symbole für die Feldformate
Feldformat
Legt fest, wie die Feldinhalte dargestellt werden.
Entweder Auswahl mit Hilfe von Kombinationsfeldern oder Eingabe von Formatstrings:
0, #
= Ziffer
,
= Tausenderpunkt und Dezimaltrennzeichen
%
= Umrechnung in Prozent und Darstellung des
Prozenttrennzeichens
E-, E+, e+, e= Darstellung in Exponentialschreibweise
-, +, $, (, )
= werden genau dargestellt, darstrellen von
Formatzeichen: mit \ davor
*
= auffüllen mit Sternen
t, tt, ttt, tttt
= Datumstag
ttttt
= kurzes Windowsdatumsformat
tttttt
= langes Windowsdatumsformat
w
= Wochentag
ww
= Woche
m, mm, mmm, mmmm
= Monat
q
= Quartal
j
= Tag des Jahres
jj, jjjj
= Jahr
h, hh
= Stunde
n, nn
= Minute
s, sms
= Sekunde
zzzz
= Windowssystemzeit
@
= Textzeichen (obligatorisch, notfalls Leerzeichen)
&
= Textzeichen (fakultativ)
<
= nachfolgenden Text in Kleinbuchstaben
>
= nachfolgenden Text in Großbuchstaben
Es sind mehrere Teile möglich.
Bei Zahlen: positive Werte, negative Werte, Nullwerte, keine Eingabe
Bei Text: Normaler Text, Leerer Text, keine Eingabe
Autor:
Andreas Schöbel
Seite 11
Tabellenentwurf
Access 2010
Symbole für die Eingabeformate
Eingabeformat
Legt fest, wie die Eingabe erfolgen muss.
Für Text und Datum/Zeit steht ein Formatassistent zu Verfügung.
Es können wieder Formatzeichen eingegeben werden:
0
= obligater Ziffer
9
= fakultative Ziffer
#
= fakultative Ziffer (fehlende durch Leerzeichen ersetzt
L
= ein obligater Buchstabe
?
= ein fakultativer Buchstaben
A
= ein beliebiges obligates alphanumerisches Zeichen
a
= ein beliebiges fakultatives alphanumerisches Zeichen
&
= ein beliebiges obligates Zeichen
C
= ein beliebiges fakultatives Zeichen
.,:;-/
= das Zeichen selbst
>
= umwandeln der Folgezeichen in Großbuchstaben
<
= umwandeln der Folgezeichen in Kleinbuchstaben
!
= Füllung der Maske von rechts nach links
\
= bei nachfolgenden Formatierungszeichen werden diese
als Textzeichen behandelt
Drei Teile: Formatstring, Speichern (0) oder nicht speichern (1) der Formatierung, Platzhalter
Autor:
Andreas Schöbel
Seite 12
Abfragen
Access 2010
Arten von Abfragen 1
Abfragen
Auswahlabfragen
Kreuztabellenabfragen
Aktionsabfragen
Selektionen
Tabellenerstellungsabfragen
Projektionen
Anfügeabfragen
Aktualisierungsabfragen
Löschabfragen
Untertypen
Abfragen mit
Verknüpfung
Abfragen mit
Berechnungen
Abfragen mit
Gruppierungen
Parameterabfragen
Abfragen mit
Sortierung
UNION-Abfragen
(Nur bei SQL)
Kombinationen sind möglich zwischen:
 den Abfragetypen und mehreren Untertypen
 den Arten von Auswahlabfragen
 Abfragen mit Verknüpfungen beziehen mehrere Ausgangstabelle ein.
 Abfragen mit Berechnungen erzeugen in der Ergebnistabelle zusätzliche Felder, deren Inhalt sich aus Berechnungen bzw. Unterabfragen ergeben.
 Abfragen mit Gruppierungen fassen einzelne Felder nach gleichen Inhalten als Ausgabedatensatz zusammen und berechnen die Inhalte für andere ausgewählte Felder mit Aggregatfunktionen.
 Parameterabfragen legen Teile der Abfrage erst zum Ausführungszeitpunkt über erfolgen
Eingabeaufforderungen fest.
 Sortierungen erfolgen nach Feldinhalten.
Autor:
Andreas Schöbel
Seite 13
Abfragen
Access 2010
Arten von Abfrage 2
Auswahlabfragen
Selektion
Projektion
Originaltabelle
Originaltabelle
Eine Selektion wählt
Datensätze aus.
Eine Projektion
gibt ausgewählte
Attribute wieder.
Temporäre Ergebnistabelle
Temporäre Ergebnistabelle
Kreuztabellenabfrage
Ausgangstabelle
Kreuztabelle
Bei Kreuztabellen werden aus gleichen Inhalten
eines Feldes einer Ausgangstabelle Felder der
Kreuztabelle. Aus gleichen Inhalte eines anderen Feldes der Ausgangstabelle werden Datensätze. Am Schnittpunkt erfolgt eine Berechnung
mit Aggregatfunktionen.
Aktionsabfragen
Tabellenerstellungsabfrage
Ausgangstabelle
Aktualisierungabfrage
Tabelle vorher
Tabelle nachher
Neue Tabelle
Diese Abfrage erstellt eine Tabelle aus ausgewählten
Daten.
Diese Abfrage ändert Daten in einer bestehenden Tabelle.
Anfügeabfrage
Löschabfrage
Tabelle 1
Tabelle 2
Tabelle vorher
Tabelle 2
Tabelle nachher
Diese Abfrage fügt Daten an eine
bestehende Tabelle an.
Diese Abfrage löscht ausgewählte Datensätze.
Autor:
Andreas Schöbel
Seite 14
Abfragen
Access 2010
Erstellen von Abfragen 1
Ergebnisse von Abfrage:
Auswahlabfragen erzeugen die temporäre Ergebnistabelle aus den zum Zeitpunkt der Abfragedurchführung aktuellen Daten. Die temporäre Ergebnistabelle kann wie eine Datentabelle
benutzt werden. D. h., Abfragen können auch als Datengrundlage für andere Abfragen dienen.
Temporäre Ergebnistabelle können DynaSets oder SnapShots sein. DynaSets sind bearbeitbare Datenauszüge. SnapShots sind nicht bearbeitbar.
Bei einfachen Selektionen und Projektionen (außer für berechnete Felder) ist das Ergebnis
in der Regel ein DynaSet.
Bei Gruppierungen und Kreuztabellenabfragen ist das Ergebnis immer ein SnapShot.
Aktionsabfragen beeinflussen oder erstellen Tabellen, wenn sie ausgeführt werden.
Erstellen von Abfragen mit Assistent
1. Starten des Auswahlabfrage-Assistenten
2. Auswahl von Tabellen und Feldern
3. Festlegen des Abfragenamens (darf nicht
mit einem Tabellennamen konkurrieren)
4. Ergebnistabelle
Autor:
Andreas Schöbel
Seite 15
Abfragen
Access 2010
Erstellen von Abfragen 2
Erstellen von Abfragen in der Entwurfsansicht
Strukturbereich: Hier werden die in die Abfrage einzubeziehenden
Tabellen und ihre Verknüpfungen angegeben. Verknüpfungen lassen sich erstellen und (mit der rechten Maustaste) bearbeiten.
Eigenschaftsfenster
Entwurfsbereich: Hier werden die in das Ergebnis einzubeziehenden
Felder angegeben.
In der Feldzeile können Feldnamen und Berechnungsformel für berechnete Felder eingegeben werden. Syntax: Feldname: Ausdruck.
Hierfür steht ein Ausdruckseditor zur Verfügung (rechte Maustaste:
Aufbauen)
In der Sortierungszeile werden die Sortierungen festgelegt. Dabei
spielt die Feldreihenfolge ein Rolle.
In den Kriterienzeilen werden Selektionsausdrücke eingegeben
Weiterhin kann mit der rechten Maustaste (Funktionen) eine Zeile
für Gruppierungs-– und Aggregatfunktionen geöffnet werden.
Erstellen von Aktionsabfragen
1. Erstellen einer Auswahlabfrage, die die DaAktualisierungsausdruck für die zu aktualitensätze und Felder auswählt, aus denen
sierenden Felder angegeben werden, bei
eine neue Tabelle erstellet werden soll
Tabellenerstellungsabfragen der Name der
(Tabellenerstellungsabfrage) oder die gezu erstellenden Tabelle, bei Anfügeabfraändert werden soll
gen der Name der Tabelle an die die Daten
(Aktualisierungsabfrage) bzw. die an eine
anzufügen sind.
andere, entsprechend strukturierte Tabelle
4. Gegebenenfalls Speichern der Abfrage.
angefügt werden sollen (Anfügeabfrage)
5. Ausführen der Abfrage. Die Abfrage wird
oder die die Datensätze auswählt die geüber das Register "Entwurf", Gruppe
löscht werden sollen (Löschabfrage).
"Ergebnis" oder nach dem Schließen der
2. Im Register "Entwurf", Gruppe
Abfrage durch Öffnen des entsprechenden
"Abfragetyp" den Abfragetyp auswählen.
Objektes ausgeführt. Einfache "Öffnen"
3. Spezielle Einstellungen vornehmen. Bei
öffnet die Abfrage nicht zum Ändern, sonAktualisierungsabfragen muss danach der
der führt sie aus!
Autor:
Andreas Schöbel
Seite 16
Abfragen
Access 2010
Ausdrücke, Operatoren und Platzhalter
Ausdrücke
Bedeutung
Beispiel
Einfacher Ausdruck mit Konstanten
[Brutto]/119*19
Berechnete Spalte mit Spaltenname
Brutto: [Netto]*1,19
Formel mit Bezug auf Tabellen
[Artikel]![Netto]*1,19
Formel mit Bezug auf Tabellen (vereinfacht)
[Artikel].[Netto]*1,19
Formel, die sich auf einen Eigenschaftswert eines Formulars bezieht
Formulare![Artikel]![Wert].Standardwert
Formel mit mit Funktion
Summe([Netto])
Operatoren
Operator
Bedeutung
Operator
Bedeutung
^
Potenz
<=
Kleiner als oder Gleich
-
Negatives Vorzeichen
>=
Größer als oder Gleich
*
Multiplikation
Wie
Mustervergleich
/
Division
Nicht
Negation
\
Ganzzahldivision
Und
Konjuktion
Mod
Rest der Ganzzahldivision
Oder
Disjunktion
+
Addition
ExOder
Exklustion
-
Subtraktion
Äqv
Äquivalenz
&
Textverkettung
Imp
Implikation
=
Gleich
Zwischen ... Und ..
Geschlossener Intervall
<>
Ungleich
In(...)
Innerhalb einer Liste
<
Kleiner als
Ist Null
Vergleich auf Nullwert
>
Größer als
Ist Nicht Null
Kein Nullwert
Platzhalter
Platzhalter
Bedeutung
Beispiel
?
Ein beliebiges Zeichen
M??er
*
Null oder beliebig viele beliebige Zeichen
M*er
#
Eine Ziffer
Maier#
[]
Eines der Zeichen in der Klammer
M[ae][iy]er
[-]
Eines der aufgezählten Zeichen
Maier[1-3]
[!]
Nicht das aufgeführte Zeichen
M[!a]ier
Autor:
Andreas Schöbel
Seite 17
Abfragen
Access 2010
Wichtige Funktionen
Funktion
Bedeutung
Abs(Wert)
Liefert den absoluten Betrag des wertes
DatAdd(Intervall;Wert;Datum)
Addiert zum Datum entwprechend "Intervall" Werte hinzu
Intervall: "jjjj", "q", "m", "j", "t", "w", "ww", "h", "n", "s"
DatDiff(Intervall;Dat1;Dat2)
Bildet die Differenz zwischen den Datums entspr. Intervall
DatSeriell(Jahr;Monat;Tag)
Bildet aus den Angaben ein Datum
Datum()
Liefert das aktuelle Datum
DatWert(String)
Wandelt eine Zeichenfolge in ein Datum um
Format(Wert;Formatstring)
Formatiert den Wert entsprechend des Formatstrings
Glätten(String)
Entfernt führende und folgende Leerzeichen
InStr(String1;String2)
Sucht das Vorkommen des String2 in String1
IstDatum(Wert)
Prüft, ob der Wert ein Datum ist
IstLeer(Wert)
Prüft, ob Wert leer ist
IstNull(Wert)
Prüft ob der Wert einen Nullwert einhält
IstNumerisch(Wert)
Prüft, ob der Wert numerisch ist
Jahr(Datum)
Liefert den Jahresteil des Datums
Jetzt()
Liefert das aktuelle Datum und die aktuelle Zeit
Länge(String)
Liefert die Anzahl der Zeichen in String
Links(String;Anzahl)
Liefert die Anzahl Zeichen von der linken Seite des Strings
Minute(Zeit)
Liefert den Minutenteil der Zeit
Mittelwert(Wertemenge)
Liefert den Mittelwert der Wertemenge
Monat(Datum)
Liefert den Monatsteil des Datums
Rechts(String;Anzahl)
Liefert die Anzahl der Zeichen von rechts im String
Runden(Wert[;Stelle])
Rundet den Wert auf die angegebene Stellenzahl
Sekunde(Zeit)
Liefert den Sekundenteil der Zeit
Str(Wert)
Wandelt den Wert in einen String um
Stunde(Zeit)
Liefert den Stundenteil der Zeit
Summe(Wertemenge)
Liefert die Summe der Wertemenge
Tag(Datum)
Liefert den Tagteil des Datums
Wenn(Bedingung;Dann;Sonst)
Wertet die Bedingung aus, bei True wird der Dann-
Wert(String)
Wandelt den String in einen numerischen Wert um
Wochentag(Datum[;ErsterTag]) Liefert die Zahl des Wochentags von Datum
Zeit()
Gibt die aktuelle Zeit wieder
ZeitSeriell
Liefert die Zeit einsprechend der angegebenen Werte
Autor:
Andreas Schöbel
Seite 18
Abfragen
Access 2010
SQL 1
Allgemeine Erläuterungen
In den folgenden Syntaxschemata werden angegeben:
IN GROßBUCHSTABEN
In Groß- und Kleinschreibung
In eckigen Klammern [...]
Mit Pipe-Operator |
Mit geschweiften Klammern {}
Reservierte Worte
Zu ersetzende Begriffe
Optionale Teile
Alternativen
Obligatorische Auswahlmöglichkeiten
In den Abfragen werden verwendet:
Eckige Klammern []
Zur Begrenzung von Tabellen- und Feldnamen. Sie sind notwendig, wenn Leerzeichen oder andere verwechselbare Zeichen in den Namen vorkommen
Punkt .
Seperator zwischen Tabellen- und Feldnamen
Hochkomma '...'
Zur Eingrenzung von Strings
Rauten #...#
Zur Eingrenzung von Datumsangaben
Der Wert NULL
Als Zeichen für leere Felder
Semikolon ;
Abschluss der Anweisung
Platzhalter:
Stern *
Fragezeichen ?
Raute #
Ein Zeichen
Mehrere Zeichen
Eine Ziffer
Die anderen Platzhalter und Operatoren sind Access-üblich
DML / DQL
Auswahlabfrage bzw. -anweisung
SELECT [ALL | DISTINCT | DISTINCTROW | TOP nn]
{ * | Ausdruck | Tabelle.* | [Tabelle.]Feld1 [AS Alias1] [, [Tabelle.]Feld2 [AS Alias2] [,
...]]}
FROM
Tabellenausdruck [, ...] [IN ExterneDatenbank]
[WHERE Bedingung]
[GROUP BY Feld1 [, Feld2 [, ...]] [HAVING Bedingung]]
[ORDER BY [ASC | DESC] Feld1 [, Feld2 [, ...]]];
Erläuterungen
*
ALL
DISTINCT
DISTINCTROW
TOP nn
WHERE
GROUP BY
HAVING
ORDER BY
ASC
DESC
Alle Felder
Alle Datensätze werden angezeigt (Standard – kann daher weggelassen werden)
Unterdrücken von doppelten Datensätzen (doppelt im Sinne der Ergebnistabelle) – führt zu einem SnapShut
Unterdrücken von doppelten Datensätzen, die durch die Verknüpfung von Tabellen entstehen – kann trotzdem
eine DynaSet erzeugen
Zeigt nur die Anzahl der ersten nn Datensätze an
Schränkt die zur Auswahl herangezogenen Datensätze ein. Kann neben Vergleichsoperatoren auch enthalten:
LIKE
Für Mustervergleiche ("Wie")
BETWEEN ... AND …
Als Bereichsoperator ("Zwischen"... "und"...)
IN, EXIST
Vergleich mit Liste einer Unterabfrage
Gruppiert die Datensätze nach den angegebenen Feldern – fasst gleiche Werte zu einer Gruppe zusammen, erlaubt die Anwendung von Aggregatfunktionen auf die Gruppe. Alle in der Feldliste angegebenen Felder müssen
gruppiert sein.
Einschränkung, die auf die Gruppe angewendet wird
Sortierungen
Aufsteigend – Standard kann daher weggelassen werden
Absteigend
Verknüpfungen
FROM Tabelle1
{INNER | LEFT | RIGHT} JOIN Tabelle2 ON Tabelle1.Feld1 { = | < | > | <= | >= | <>}
Tabelle2.Feld2
Erläuterungen
INNER JOIN
LEFT JOIN
RIGHT JOIN
Verknüpfung erfasst nur die Datensätze, die das verknüpfte Feld in beiden verknüpften Tabellen aufweist; Besteht
eine 1:n-Vernüpfung, so entstehen genau soviel Datensätze, wie die n-Tabelle an verknüpften Datensätzen aufweist. Besteht eine m:n-Verknüpfung, so entsteht aus jeder verknüpften Kombination ein Datensatz
Wie Inner Join, nur werden zusätzlich auch alle unverknüpften Datensätze der linken Tabelle aufgenommen
Wie Inner Join, nur werden zusätzlich auch alle unverknüpften Datensätze der rechten Tabelle aufgenommen
Autor:
Andreas Schöbel
Seite 19
Abfragen
Access 2010
SQL 2
Parameter-Deklaration
PARAMETERS Name Datentyp [, Name Datentyp [, ...]];
Erläuterungen
Datentyp
Siehe Tabellendefinition
Abfrageeinschränkung mit Unterabfrage
{HAVING | WHERE} { = | < | > | <= | >= | <>} [ANY | ALL | SOME] (SQLAnweisung)
{HAVING | WHERE} Ausdruck [NOT] IN (SQLAnweisung)
{HAVING | WHERE} [NOT] EXISTS (SQLAnweisung)
Erläuterungen
ALL
Um TRUE zu Liefern muss der Vergleich auf allen Werten der Unterabfrage zu treffen; Liefert die Unterabfrage eine leere Menge so ist
das Ergebnis auch TRUE; Liefert der Vergleich mit einem Wert der Ergebnismenge der Unterabfrage FALSE, so ist das Ergebnis auch
FALSE (AND-Verknüfung der Vergleiche mit der Ergebnismenge) - Die Unterabfrage darf nur eine Spalte beinhalten
ANY
Ist die Ergebnismenge der Unterabfrage leer, so ist das Ergebnis FALSE, ist das Ergebnis mindestens eines Vergleiches mit einem Wert
der Unterabfrage TRUE, so ist das Gesamtergebnis TRUE, sonst FALSE (OR-Verknüpfung der Vergleiche mit der Ergebnismenge der
Unterabfrage) - Die Unterabfrage darf nur eine Spalte beinhalten
SOME Wie ANY
IN
Testet, ob der Ausdruck in der Ergebnismenge (Unterabfrage) enthalten ist. Die Unterabfrage darf nur eine Spalte beinhalten
EXIST Prüft, ob die Menge der Unterabfrage nicht leer ist
Avg(Ausdr)
Count(Ausdr)
First(Ausdr)
Last(Ausdr)
Min(Ausdr)
Max(Ausdr)
Mittelwert
Anzahl
Erster Wert
Letzter Wert
Minimum
Maximum
StDev(Ausdr)
StDevP(Ausdr)
Sum(Ausdr)
Var(Ausdr)
VarP(Ausdr)
Standardabweichung der Grundgesamtheit
Standardabweichung der Stichprobe
Summe
Varianz der Grundgesamtheit
Varianz der Stichprobe
Anfügeabfrage
INSERT INTO Ziel [IN ExterneDatenbank] [(Feld1[, Feld2[, ...]]])]
SELECT [Quelle.]Feld1[, Feld2[, ...]]
FROM Tabellenausdruck;
INSERT INTO Ziel [IN ExterneDatenbank] [(Feld1[, Feld2[, ...]]])]
VALUES (Wert1[, Wert2[, ...]);
Aktualisierungabfrage
UPDATE Tabelle SET Feld1 = Ausdruck1[, Feld2 = Ausdruck[, ...]] WHERE Kriterien;
Löschabfrage
DELETE [[Tabelle.]*] FROM Tabelle WHERE Kriterien;
Kreuztabellenabfrage
TRANSFORM AggFunktion
Auswahlanweisung
PIVOT Pivot-Feld [IN (Wert1[, Wert2[, ...]])];
Erläuterungen
AggFunktion
Auswahlanweisung
Pivot-Feld
Ausdruck mit einer auf ein Feld angewendeten Aggregatfunktion, die zur Berechnung der Datensatzfelder benutzt
werden – Es werden die Tabellen der SELECT-Anweisung herangezogen
SELECT-Anweisung mit GROUP-BY-Klausel, die Feldinhalte liefert, die als "Zeilenüberschriften"dienen
Feld, das für Spaltenüberschriften dient – Es werden die Tabellen der SELECT-Anweisung herangezogen
UNION-Abfrage
[TABLE] Abfrage1
UNION
[ALL] [TABLE] Abfrage2
[UNION
[ALL] [TABLE] AbfrageN [ ... ]];
Erläuterungen
ALL
Standardmäßig werden bei UNION-Abfragen doppelte Datensätze unterdrückt, mit ALL geschieht das nicht
Autor:
Andreas Schöbel
Seite 20
Abfragen
Access 2010
SQL 3
Tabellenerstellungsabfrage
SELECT Anweisungen INTO NeueTabelle [IN ExterneDatenbank] FROM Quelle;
DDL
Tabellendefinition
CREATE TABLE Tabelle (
Feld1 Typ[(Größe)] [NOT NULL] [Index1] [,
Feld2 Typ[(Größe)] [NOT NULL] [Index2] [,
...]] [,
CONSTRAINT Einschränkung [, ...]]);
Erläuterungen
CONSTRAINS
Einschränkung – kann Eindeutigkeiten und Beziehungen zu anderen Tabellen festlegen, erzeugt u. U. einen Index
zur Realisierung
Datentypen
Datentyp
BINARY
BIT
TINYINT
MONEY
DATETIME
UNIQUEIDENTIFIER
REAL
FLOAT
SMALLINT
INTEGER
DECIMAL
TEXT
IMAGE
CHARACTER
Beschreibung
Beliebige Arten von Daten können in einem Feld diesen Typs gespeichert
werden. Die Art, wie Daten in ein BINARY-Feld eingegeben werden, bestimmt die Art der Ausgabe.
Ja/Nein-Werte (boolesche Werte) sowie Felder.
Eine Ganzzahl von 0 bis 255.
Eine Ganzzahl von
– 922.337.203.685.477,5808 bis 922.337.203.685.477,5807.
Eine Datums- oder Zeitangabe ab dem Jahr 100 bis zum Jahr 9999.
Eine eindeutige Kennnummer.
Eine Gleitkommazahl einfacher Genauigkeit, die die folgenden Werte annehmen kann: -3,402823E38 bis -1,401298E-45 für negative Werte, 1,401298E
-45 bis 3,402823E38 für positive Werte und 0.
Eine Gleitkommazahl doppelter Genauigkeit, die die folgenden Werte annehmen kann: -1.79769313486232E308 bis -4.94065645841247E-324 für negative Werte, 4,94065645841247E-324 bis 1,79769313486232E308 für positive Werte und 0.
Eine Ganzzahl von – 32.768 bis 32.767.
Eine Ganzzahl von – 2.147.483.648 bis 2.147.483.647.
Ein genauer numerischer Datentyp, der Werte von 1028 - 1 bis - 1028 - 1
enthält. Sie können sowohl Präzision (1 - 28) als auch Dezimalstelle (0 - definierte Präzision) definieren. Die Standardwerte für Präzision und Dezimalstelle lauten 18 bzw. 0.
Von 0 bis maximal 2,14 GB.
Von 0 bis maximal 2,14 GB. Wird für OLE-Objekte verwendet.
Von 0 bis 255 Zeichen.
Autor:
Andreas Schöbel
Seite 21
Abfragen
Access 2010
SQL 4
Einschränkungen in Tabellendefinitionen oder -änderungen inkl. Beziehungsdefinition
CONSTRAINT Name
{PRIMARY KEY |
UNIQUE |
NOT NULL |
REFERENCES FremdTabelle [(FremdFeld1, FremdFeld2)]
[ON UPDATE CASCADE | SET NULL]
[ON DELETE CASCADE | SET NULL]
};
Mehrfeldereinschränkung:
CONSTRAINT Name
{PRIMARY KEY (Primär1[,Primär2[, ...]]) |
UNIQUE (Eindeutig1[,Eindeutig2[, ...]]) |
NOT NULL (Nichtnull1[, Nichtnull2 [, ...]]) |
FOREIGN KEY [NO INDEX] (Ref1[, Ref2 [, ...]])
REFERENCES FremdTabelle [(FremdFeld1 [, FremdFeld2 [, ...]])]}
[ON UPDATE {CASCADE | SET NULL}]
[ON DELETE {CASCADE | SET NULL}];
Erläuterungen
PRIMARY KEY
Bestimmt einen Primärschlüssel
UNIQUE
Legt Eindeutigkeit fest
NOT NULL
Legt fest, dass keine leeren Felder erlaubt sind
FOREIGN KEY
Fremdschlüsselfestlegung
REFERENCES
Legt Beziehungen zu einer anderen Tabelle fest
ON UPDATE
Aktualisierungsweitergabe
ON DELETE
Löschweitergabe
CASCADE
Bei Aktualisierung / Löschung diese Weitergeben
SET NULL
Bei Aktualisierung / Löschung Fremdschlüssel auf NULL setzen
Indexdefinition
CREATE [ UNIQUE ] INDEX Index
ON Tabelle (
Feld [ASC|DESC][,
Feld [ASC|DESC][,
...]])
[WITH { PRIMARY | DISALLOW NULL | IGNORE NULL }];
Erläuterungen:
UNIQUE
PRIMARY
DISALLOW NULL
IGNORE NULL
ASC
DESC
Eindeutigkeit festlegen
Festlegen als Primärschlüssel
NULL-Werte verboten
NULL-Werte erlaubt
Aufsteigend sortiert
Absteigend sortiert
Tabellenänderung
ALTER TABLE Tabelle
{ADD
{COLUMN Feld Typ[(Größe)] [NOT NULL] |
CONSTRAINT Einschränkung} |
ALTER {COLUMN Feld Typ[(Größe)] [NOT NULL] |
CONSTRAINT Einschränkung} |
DROP {COLUMN Feld |
CONSTRAINT Einschränkung}
};
Erläuterungen
ADD
ALTER
DROP
COLUMN
CONSTRAINS
Hinzufügen
Ändern
Löschen
Spalte
Einschränkung
Tabelle bzw. Index löschen
DROP {TABLE Tabelle | INDEX Index ON Tabelle};
Autor:
Andreas Schöbel
Seite 22
Formulare
Access 2010
Grundlagen
Formulare und Berichte
stellen die von Access zur Verfügung gestellt Benutzerschnittstelle dar (mit den Abfragen
zusammen sind sie Teil der externen Sicht)
Sie basieren auf einer oder mehreren Tabellen und Abfragen und besitzen eigene Fähigkeiten, die den Abfragemöglichkeiten zum Teil ähneln (Verknüpfen von Tabellen, Gruppieren
von Datensätzen einschließlich Aggregatfunktionen, Sortieren usw.)
Formulare
dienen der Darstellung und überwiegend auch der Bearbeitung der Daten auf dem Bildschirm. Sie können auch ausgedruckt werden.
Formulare lassen sich erstellen mittels:
 Assistenten
 Mittels der Entwurfsansicht
Entwurfsansicht
Formularkopf - einmal am Anfang der Formulars ausgeführt
Seitenkopf - am Anfang jeder gedruckten
Seite ausgeführt
Detailbereich - für jeden Datensatz einmal
ausgeführt
Seitenfuß - am Ende jeder gedruckten Seite
ausgeführt
Formularfuß - einmal am Ende des Formulars ausgeführt.
Autor:
Andreas Schöbel
Seite 23
Berichte
Access 2010
Grundlagen
Berichte
dienen der Darstellung der Daten überwiegend beim Ausdruck, gegebenenfalls aber auch
auf dem Bildschirm und für den Text-Export.
Berichte lassen sich erstellen mittels:
 Assistenten
 Mittels der Entwurfsansicht
Entwurfsansicht
Berichtskopf - einmal am Anfang der
Berichts ausgeführt
Seitenkopf - am Anfang jeder gedruckten Seite ausgeführt
Gruppenkopf - am Anfang jeder Gruppe ausgeführt
Detailbereich - für jeden Datensatz
einmal ausgeführt
Gruppenfuß - am Ende jeder Gruppe
ausgeführt
Seitenfuß - am Ende jeder gedruckten
Seite ausgeführt
Berichtsfuß - einmal am Ende des Berichts ausgeführt.
Herunterladen