Deutsch

Werbung
Vorlesung Datenbanken
Wintersemester 2013/14
Anhang
SQL: Syntaxzusammenfassung
CREATE TABLE <table name> (
<column name> <column type> [<attribute constraint>]
{, <column name> <column type> [<attribute constraint>]}
[<table constraint> {, <table constraint>}] )
DROP TABLE <table name>
ALTER TABLE <table name>
ADD <column name> <column type>
Prof. Dr. Dietmar Seipel
979
Vorlesung Datenbanken
Wintersemester 2013/14
SELECT [ DISTINCT ] <attribute list>
FROM ( <table name> {<alias>} | <joined table> )
{, (<table name> {<alias>} | <joined table> ) }
[ WHERE <condition> ]
[GROUP BY <grouping attributes>
[HAVING <group selection condition> ] ]
[ ORDER BY <column name> [ <order> ]
{, <column name> [ <order> ] } ]
<attribute list> ::=
( * | ( <column name> |
<function>( ( [ DISTINCT]<column name> | * ) ) )
{, ( <column name> |
<function>( ( [ DISTINCT]<column name> | * ) ) ) } )
<grouping attributes> ::=
<column name> {, <column name>}
Prof. Dr. Dietmar Seipel
980
Vorlesung Datenbanken
Wintersemester 2013/14
<order>::=(ASC | DESC)
INSERT INTO <table name>
[ ( <column name> {, <column name> } ) ]
VALUES
( <constant value> { , <constant value> } )
{ , ( <constant value> { , <constant value> } ) } |
<select statement>
DELETE FROM <table name>
[ WHERE <select condition> ]
UPDATE <table name>
SET <column name>=<value expression>
{, <column name>=<value expression>}
[ WHERE <select condition> ]
Prof. Dr. Dietmar Seipel
981
Vorlesung Datenbanken
Wintersemester 2013/14
CREATE [ UNIQUE] INDEX <index name>
ON <table name> (<column name> [ <order> ]
{, <column name> [ <order> ] })
[ CLUSTER]
DROP INDEX <index name>
CREATE VIEW <view name>
[ (<column name> {, <column name>})]
AS <select statement>
DROP VIEW <view name>
Prof. Dr. Dietmar Seipel
982
Vorlesung Datenbanken
Wintersemester 2013/14
SELECT etwas ausführlicher
select–expression ::=
SELECT [ ALL | DISTINCT] list–of–select–itmes
FROM list–of–table–references
[ WHERE condition]
[ GROUP BY list–of–column–names]
[ HAVING condition]
select–item ::=
{ * | expression }
expression ::=
term | expression { + | – } term
term ::=
factor | term {* | /} factor
Prof. Dr. Dietmar Seipel
983
Vorlesung Datenbanken
Wintersemester 2013/14
factor ::=
[ + | – ] primary
primary ::=
column–name | scalar–function | aggregate–function | ( expression )
aggregate–function ::=
COUNT(*) | { AVG | MAX | MIN | SUM | COUNT }
( [ ALL | DISTINCT] expression )
table–reference ::=
table–name [ [ AS ] range–variable [ ( list–of–column–names ) ] ]
( table–expression ) [ AS ] range–variable [ ( list–of–column–names ) ]
join–table–expression
table–expression ::=
join–table–expression | nonjoin–table–expression
Prof. Dr. Dietmar Seipel
984
Vorlesung Datenbanken
Wintersemester 2013/14
join–table–expression ::=
table–reference [ NATURAL ] [ join–type ] JOIN table–reference
[ ON condition | USING ( list–of–column–names ) ]
| table–reference CROSS JOIN table–reference
| ( join–table–expression )
join-type ::=
INNER | { LEFT | RIGHT | FULL } [ OUTER ] | UNION
nonjoin–table–expression ::=
select–expression
| select–expression { UNION | EXCEPT | INTERSECT }
select–expression
condition ::=
condition–term | condition OR condition–term
Prof. Dr. Dietmar Seipel
985
Vorlesung Datenbanken
Wintersemester 2013/14
condition–term ::=
condition–factor | condition–term AND condition–factor
condition–factor ::=
[ NOT ] condition–test
condition–test::=
condition–primary [ IS [ NOT ] { TRUE | FALSE | UNKNOWN } ]
condition–primary ::=
simple–condition | ( condition )
simple–condition ::=
compare–condition | between–condition | like–condition |
in–condition | exists–condition | unique–condition
compare–condition ::=
Prof. Dr. Dietmar Seipel
986
Vorlesung Datenbanken
Wintersemester 2013/14
expression IS [ NOT ] NULL |
expression { =|<|≤|>|≥|<> } { expression | ( select–expression ) }
between–condition ::=
expression [ NOT ] BETWEEN expression AND expression
like–condition ::=
column–name [ NOT ] LIKE ’string’
in–condition ::=
expression [ NOT ] IN { ( select–expression | table–expression ) }
exists–condition ::=
EXISTS ( table–expression )
unique–condition ::=
UNIQUE ( table–expression )
Prof. Dr. Dietmar Seipel
987
Vorlesung Datenbanken
Wintersemester 2013/14
Datenbank–Dumps in MyS QL
Mit dem Befehl mysqldump kann man die Datenbank company in eine
Datei company.sql speichern, welche aus lauter S QL–Befehlen besteht.
% mysqldump --opt company > company.sql
% echo "create database co; use co;" > h.sql;
% cat h.sql company.sql > mysql
Wenn man die Datei company.sql zusammen mit den S QL–Statements
create database co; use co; auf die Kommandozeile von
MyS QL schickt, so wird eine neue Datenbank co angelegt mit demselben
Inhalt wie company – die entsprechenden Tabellen einer eventuell bereits
vorhandenen Datenbank namens co würden überschrieben.
Prof. Dr. Dietmar Seipel
988
Vorlesung Datenbanken
Wintersemester 2013/14
company.sql:
-- MySQL dump 8.22
--- Host: localhost
Database: company
---------------------------------------------------------- Server version
3.23.52-log
--- Table structure for table ’department’
-DROP TABLE IF EXISTS department;
CREATE TABLE department (
DNAME varchar(15) NOT NULL default ’’,
DNUMBER int(11) NOT NULL default ’0’,
MGRSSN varchar(9) NOT NULL default ’’,
MGRSTARTDATE date default NULL,
PRIMARY KEY (DNUMBER),
UNIQUE KEY DNAME (DNAME)
) TYPE=MyISAM;
/*!40000 ALTER TABLE department DISABLE KEYS */;
Prof. Dr. Dietmar Seipel
989
Vorlesung Datenbanken
Wintersemester 2013/14
--- Dumping data for table ’department’
--
LOCK TABLES department WRITE;
INSERT INTO department VALUES
(’Research’,5,’222222222’,’1978-05-22’),
(’Administration’,4,’333333333’,’1985-01-01’),
(’Headquarters’,1,’111111111’,’1971-06-19’);
/*!40000 ALTER TABLE department ENABLE KEYS */;
UNLOCK TABLES;
Für jede Tabelle gibt es die entsprechenden Statements
• CREATE TABLE
• INSERT INTO
Prof. Dr. Dietmar Seipel
990
Vorlesung Datenbanken
Wintersemester 2013/14
Arbeiten mit MyS QL
% mysql
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is .... to server version: 3.23.52-log
Type ’help;’ or ’\h’ for help. Type ’\c’ to clear the buffer.
mysql> use company;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A
Database changed
mysql> show tables;
+-------------------+
| Tables_in_company |
+-------------------+
| department
|
| dependent
|
| dept_locations
|
| employee
|
| project
|
| works_on
|
+-------------------+
6 rows in set (0.00 sec)
Prof. Dr. Dietmar Seipel
991
Vorlesung Datenbanken
Wintersemester 2013/14
mysql> describe department;
+--------------+-------------+------+-----+---------+-------+
| Field
| Type
| Null | Key | Default | Extra |
+--------------+-------------+------+-----+---------+-------+
| DNAME
| varchar(15) |
| UNI |
|
|
| DNUMBER
| int(11)
|
| PRI | 0
|
|
| MGRSSN
| varchar(9) |
|
|
|
|
| MGRSTARTDATE | date
| YES |
| NULL
|
|
+--------------+-------------+------+-----+---------+-------+
4 rows in set (0.00 sec)
mysql> select * from department;
+----------------+---------+-----------+--------------+
| DNAME
| DNUMBER | MGRSSN
| MGRSTARTDATE |
+----------------+---------+-----------+--------------+
| Research
|
5 | 222222222 | 1978-05-22
|
| Administration |
4 | 333333333 | 1985-01-01
|
| Headquarters
|
1 | 111111111 | 1971-06-19
|
+----------------+---------+-----------+--------------+
3 rows in set (0.00 sec)
Prof. Dr. Dietmar Seipel
992
Vorlesung Datenbanken
Wintersemester 2013/14
Literatur
C.J. Date, H. Darwen: A Guide to the S QL Standard.
4th Edition, Addison–Wesley, 1997.
R. Elmasri, S.B. Navathe: Fundamentals of Database Systems.
3rd Edition, Benjamin Cummings, 2000.
A. Kemper, A. Eickler: Datenbanksysteme – Eine Einführung.
6. Auflage, Oldenbourg, 2006.
R. Ramakrishnan, J. Gehrke: Database Management Systems.
3rd Edition, McGraw–Hill, 2004.
J.D. Ullman: Principles of Database and Knowledge–Base Systems, Volumes I,II.
Computer Science Press, 1989.
G. Vossen: Datenmodelle, Datenbanksprachen und
Datenbank–Management–Systeme. 4. Auflage, Oldenbourg, 2000.
Prof. Dr. Dietmar Seipel
993
Vorlesung Datenbanken
Wintersemester 2013/14
Index
Äquivalenz
Konflikt–Äquivalenz, 476
View–Äquivalenz, 469
von fd–Mengen, 207
3NF, 248, 254
3NF–Kompatibilität, 257
3NF–Test, 256
Abhängigkeit
Abhängigkeits–Erhaltungs–Eigenschaft, 188
Abhängigkeitsbasis, DEP G (X), 273
direkte, 250
Existenzabhängigkeit, 46
funktionale, fd, 198
join, jd, 277
logische Folgerung, |=, 264
mehrwertige, mvd, 264
Schlüsselabhängigkeit, 281
transitive, 250
Prof. Dr. Dietmar Seipel
994
Vorlesung Datenbanken
Wintersemester 2013/14
ACID–Prinzip, 444
Algorithmus
Á Priori, 651
Basis–TO, 526
Dekomposition, 298
Graham–Reduktion, GYO, 378
ID3–classification of Quinlan, 632
K–means, 706
Synthese, 315
Tableau, 327
association rules, 673
Á Priori algorithm, 651
confidence, 673
support, 673
Attribut, 22
Attributmenge, 22
Hülle, 224
hidden attribute, 967
Nichtschlüsselattribut, NSA, 246
NOTNULL, 66
prim, 246
Schlüsselattribut, 22, 246
transitiv, 250
Prof. Dr. Dietmar Seipel
995
Vorlesung Datenbanken
Wintersemester 2013/14
universelle Attributmenge, 64
visible attribute, 967
Wertebereich, dom(A), 22, 64
ausführen, 500
Azyklizität, 373
Basis, 309
BCNF, 248, 254
BCNF–Kompatibilität, 257
BCNF–Test, 256
Bedingung
interrelationale, 78
intrarelationale, 66
Kardinalitätsbedingung, 42
BLOB, 971
Checkpoint, 441
class, 970
class hierarchy, 968
classification
classification rule, 579
decision tree, 586
entropy, 605
Prof. Dr. Dietmar Seipel
996
Vorlesung Datenbanken
Wintersemester 2013/14
horizontal decomposition, 616
ID3–algorithm of Quinlan, 632
clustering, 703
cluster centers, 710
hierarchical, 731
K–means–algorithm, 706
Commit
Commit–Punkt, 440
Commit–Serialisierbarkeit, 490
committed, 440
committed projection, 462
Crash, 442
data mining, 577
association rules, 642
classification, 579
clustering, 703
Daten
Data Dictionary, 12
Datenabstraktion, 12
Datenintegration, 12
Datenkonsistenz, 12
Datenschutz, 14
Prof. Dr. Dietmar Seipel
997
Vorlesung Datenbanken
Wintersemester 2013/14
Datensicherheit, 14
Datenteilung, 13
Datenunabhängigkeit, 12
Meta–Daten, 12
Persistenz, 14
Datenbank, 1
C OMPANY, 54
U NIVERSITY, 4
Datenbank–Management–System, DBMS, 2
Datenbanksystem, 2
Instanz, 78
relationale, DB, 78
relationales Datenbankschema, DBS, 78
temporale, 532
Datenbankbenutzer
Administrator, DBA, 16
Anwendungsprogrammierer, 17
Designer, 16
Endbenutzer, 16
Operateure und Betriebspersonal, 18
Programmierer, 18
Systemanalytiker, 17
Tool–Entwickler, 18
Prof. Dr. Dietmar Seipel
998
Vorlesung Datenbanken
Wintersemester 2013/14
Deadlock, 513, 516
Verhinderung, 520
Verhinderung: wait–die, 520
Verhinderung: wound–wait, 520
deductive databases, 855
DATALOG, 855
DD BASE, 895
F N Query, 951
P ROLOG, 855, 877
transitive closure, 868
Definitionsbereich, 66
delay, 500
dirty data, 431
Division, 91
domain, 960, 965
Einschränkung, 373
Entity, 22
Entity–Menge, 21
Entity–Typ, 21
schwacher Entity–Typ, 48
starker Entity–Typ, 48
equal
Prof. Dr. Dietmar Seipel
999
Vorlesung Datenbanken
Wintersemester 2013/14
deeply equal, 962
shallow equal, 962
ER
Entity–Relationship–Modell, 21
ER–Ausprägung, 33
ER–Datenbank, 33
ER–Schema, 33
ER–Symbole, 53
Erweiterungen des ER–Modells, 41
execute, 500
Faktorisierung, 91
fd, 198
Äquivalenz von fd–Mengen, 207
Hülle, 224
linke Seite, 198
rechte Seite, 198
foreign key, 68
format, 965
freigegeben, 440
Fremdschlüssel, foreign key, 68
frequent itemsets, 643
confidence, 643
Prof. Dr. Dietmar Seipel
1000
Vorlesung Datenbanken
Wintersemester 2013/14
support, 643
transactions, 643
function, 968
Hostsprache, 184
Hypergraph, 365
Reduktion, 370
Inferenzregeln
Akkumulation, 216
Armstrong, 211
Augmentierung, 211
Erweiterung, 269
fd, 211, 216
Koaleszenz, 270
Komplement, 269
mvd, 269
mvds und fds, 270
Projektion, 216
Pseudo–Transitivität, 216, 269
Reflexivität, 211, 269
Replikation, 270
Transitivität, 211
Prof. Dr. Dietmar Seipel
1001
Vorlesung Datenbanken
Wintersemester 2013/14
Vereinigung, 216
Zerlegung, 216
inheritance, 968
multiple inheritance, 973
selective inheritance, 973
jd, 277
Join, 86
Join Tree, 387
Konstruktion eines, 398
Kompatibilitätsmatrix, 506
Konflikt
bereinigte Konfliktrelation, 472
Konflikt–Äquivalenz, 476
Konflikt–Serialisierbarkeit, 476
Konfliktgraph, 478
Konfliktrelation, 472
Konsistenz, 351
global, 351
paarweise, 351
Lesen
Prof. Dr. Dietmar Seipel
1002
Vorlesung Datenbanken
Wintersemester 2013/14
Lese–Sperre, 504
Lese–Zeitstempel, 524
Liest–Von, 465
lock, 504
certify lock, 536
read lock, 504
write lock, 504
Log–Buch, 436
Mediafehler, 537
Mehrversionen–Zeitstempelverfahren, 533
message, 967
message passing, 967
Mini–Welt, 1
mvd, 264
nested
relation, 965
tuple, 965
Normalform
Boyce–Codd, BCNF, 248, 254
dritte, 3NF, 248, 254
erste, 1NF, 243
Prof. Dr. Dietmar Seipel
1003
Vorlesung Datenbanken
Wintersemester 2013/14
fünfte, 5NF, 281
Non–First–Normal–Form, NF2 , 965
Projekt–Join, PJNF, 281
vierte, 4NF, 281
zweite, 2NF, 247, 254
Nullwert, 64
object
complex, 960
configuration of a complex object, 974
object identifier, OID, 960
object–oriented database
application domains, 958
encapsulation, 967
Online Analytical Processing, OLAP, 542
Online Transaction Processing, OLTP, 541
ontology, OWL, 939
Overhead–Kosten, 20
Pfad, 371
polymorphism, 972
Primärschlüssel, primary key, 66
Projektion, 85, 239
Prof. Dr. Dietmar Seipel
1004
Vorlesung Datenbanken
Wintersemester 2013/14
Recovery
after image, AFIM, 539
before image, BFIM, 539
reject, 500
Relation, 65, 67
relationale Algebra, 81
Division, Faktorisierung, 91
Join, 86
Projektion, 85
Selektion, 85
spezifische relationale Operatoren, 85
Suchprädikate, 83
Umbenennung, Renaming, 91
Relationenschema, 66, 200
informelle Design–Richtlinien, 189
referenzierendes, 68
referenziertes, 68
Relationship, 25
Relationship–Typ, 25
binär, 25
informationstragend, 25
Renaming, 91
Retrieve, 1
Prof. Dr. Dietmar Seipel
1005
Vorlesung Datenbanken
Wintersemester 2013/14
Richtlinie
überflüssige Tupel, 194
informelle Design–Richtlinien, 189
Nullwerte, 193
Semantik der Attribute, 189
Vermeidung von Redundanz, 189
Vermeidung von Update–Anomalien, 189
Schedule, 448, 456
Abschluß, 462
commit–abgeschlossen, CA, 490
Dirty Read, Temporary Update, 431
fehlerhafte Zusammenfassung, 432
freigegebene Projektion, 462
konflikt–serialisierbar, CSR, 476
Lost Update–Problem, 430
Phantom–Problem, unrepeatable read, 430
präfix–abgeschlossen, PA, 490
präfix–commit–abgeschlossen, PCA, 490
Projektion, 462
rücksetzbar, recoverable, RC , 493
seriell, 456
strikt, ST , 493
Prof. Dr. Dietmar Seipel
1006
Vorlesung Datenbanken
Wintersemester 2013/14
vermeidet kaskadierende Aborts, ACA, 493
view–serialisierbar, VSR, 469
vollständiger, 455
Scheduler, 500
aggressiv, 503
Daten–Manager, DM, 501
erzeugbare Schedules, 503
f–sicher, 503
konservativ, 503
konservativ, statisch, C2PL, 509
s–sicher, 503
sicher, 503
streng, dynamisch, S2PL, 509
zweiphasig, 2–Phase Locking, 2PL, 509
Schema–Tableau, 326
Schlüssel, 224
Fremdschlüssel, foreign key, 68
globaler, 48
lokaler, 51
Nichtschlüsselattribut, NSA, 246
Oberschlüssel, 224
Primärschlüssel, primary key, 66
Schlüsselabhängigkeit, 281
Prof. Dr. Dietmar Seipel
1007
Vorlesung Datenbanken
Wintersemester 2013/14
Schlüsselattribut, 22, 246
Schreiben
Schreib–Sperre, 504
Schreib–Zeitstempel, 524
Schreibregel von Thomas, 529
Search, 1
Selektion, 85
Semi–Join, 354
Semi–Join–Programm, SJP, 359
voll reduzierendes SJP, 359, 403
Serialisierbarkeit
Commit–Serialisierbarkeit, 490
Konflikt–Serialisierbarkeit, 476
View–Serialisierbarkeit, 469
Shadow–Paging, 538
Shuffle–Produkt, 455
Sicht, 12
Sperre, 504
Rücksetzen einer, 504
Sperrprotokoll, 506
zweiphasig, 509
SQL, 95
Aggregatsfunktionen, 151
Prof. Dr. Dietmar Seipel
1008
Vorlesung Datenbanken
Wintersemester 2013/14
Aliasing, 127
Anfragen, 114
ANSI–Standards, 95
Datendefinition, 95
Datentypen, 102
Embedded SQL, 184
Gruppierung, 151
Hostsprache, 184
Indexe, 182
Integritätsbedingungen, 181
Sichten, 172
Syntaxzusammenfassung, 995
Trigger, 181
Typ–Definition, 111
Update–Statements, 166
Views, 172
SQL–Syntax
*, 130
A LTER TABLE, 112
AVG, 151
C OUNT, 151
C REATE DATABASE, 97
C REATE D OMAIN, 111
Prof. Dr. Dietmar Seipel
1009
Vorlesung Datenbanken
Wintersemester 2013/14
C REATE TABLE, 98
D ELETE, 169
D ROP S CHEMA, 111
D ROP TABLE, 111
E XISTS, 142
G ROUP B Y, 151, 162
H AVING, 151, 162
I NSERT, 166
L IKE, 163
M AX, 151
M IN, 151
S ELECT–F ROM –W HERE, 114
S UM, 151
U PDATE, 170
arithmetische Operatoren, 164
explizite Joins, 147
explizite Mengen, 139
geschachtelte Anfragen und Mengenvergleiche, 134
NULL–Werte, 140
Ordnung, 164
Tabellen als Mengen, 132
Teilstring–Vergleiche, 163
Umbenennung von Attributen, 147
Prof. Dr. Dietmar Seipel
1010
Vorlesung Datenbanken
Wintersemester 2013/14
star schema, 545
ROLL U P–Operator, 571
data cube, 569
dicing, 556
dimension tables, 545
drill–down, 556
fact table, 545
roll–up, 556
slicing and dicing, 552
star joins, 551
C UBE–operator, 565
starvation, 531
Systemfehler, 537
Systemkatalog, 12
Transaktion, 427, 454
Atomarität, atomicity, 444
Index, 454
Isolation, 445
Konsistenz, consistency, 444
locked transaction, 505
Persistenz, durability, 445
Status, 459
Prof. Dr. Dietmar Seipel
1011
Vorlesung Datenbanken
Wintersemester 2013/14
Transaktionsfehler, 537
Transaktionsmanager, TM, 500
Transaktionsverwaltung, 13
transitiv
transitive Abhängigkeit, 250
transitives Attribut, 250
Tupel, 65
type
sub–type, 970
super–type, 970
type constructors, 960
type hierarchy, 969
Umbenennung, 91
universelle
Attributmenge, 64
Wertemenge, 64
unlock
read unlock, 504
write unlock, 504
Update, 1
direkter, 538
Update–Anomalie, 189
Prof. Dr. Dietmar Seipel
1012
Vorlesung Datenbanken
Wintersemester 2013/14
Update–Konzepte, 538
verzögerter, 538
Verbund
Verbund, Join, 86
Verbundabhängigkeit, jd, 277
verlustfreie Verbund–Eigenschaft, 188
Verhungern, 531
version graph, 974
verzögern, 500
View, 12
Wartegraph, 516
web databases
Java applets, 834
Java server pages, 835
connections in P HP, 844
servlets, 823
X ML
X ML schema, 750
document type definition, DTD, 743
name spaces, 749
Prof. Dr. Dietmar Seipel
1013
Vorlesung Datenbanken
Wintersemester 2013/14
XQuery, 777
XPATH, 777
aggregation, 807
axes, 780
FLWOR expressions, 792
joins, 798
let, 805
location step, 778
nested queries, 797
recursive queries, 811
Zeitstempel, 524
Zeitstempelordnung, 525
Zeitstempelverfahren, 499
Zerlegung, 289
unabhängig, 289
verlustfrei, 289
zurückweisen, 500
Zusammenhangskomponente, 371
Zwei–Phasen–Sperrprotokoll, 499
2PL, 509
Mehrversionen–2PL, 535
Prof. Dr. Dietmar Seipel
1014
Herunterladen