PDF (black and white)

Werbung
Dbs1 Cheat Sheet
by tarinya via cheatography.com/25055/cs/6582/
DB Entwur​fsp​rozess
DML (Data Manipu​lation)
DQL // Aggreg​atf​unk​tionen
DELETE FROM angestellter WHERE
SELECT MAX( Salaer ) FROM
persNr=1100;
Angestellter;
INSERT INTO Abteilung (Name,
SELECT MIN( Salaer ) FROM
AbtrNr) VALUES ('Entw​ick​lung',
Angest​ellter;
20);
SELECT AVG( Salaer ) FROM
UPDATE test SET name = "​a" WHERE
Angest​ellter;
id=1;
SELECT SUM( Salaer ) AS
"​Sal​aer​sum​me" FROM Angest​ellter;
DQL // JOINs
SELECT SELECT name, COUNT(​projnr)
Abbild​ung​sregeln
SELECT PZ.PersNr, proj.bezeichnung,
1..*
PK von 1 ist FK von *
Zeitanteil, ang.Name FROM
n:m
Bezieh​ung​sta​belle mit
projektZuteilung AS PZ
zusamm​eng​ese​tztem PK (FK der beiden
INNER JOIN angest​ellter AS ang ON
Tabellen)
ang.PersNr = PZ.PersNr
zur einsch​ränkung nicht WHERE sondern
from projek​tzu​teilung inner join
angest​ellter on
projek​tzu​tei​lun​g.p​ersnr =
angest​ell​ter.persnr group by name;
INNER JOIN projekt AS proj ON
HAVI​NG!
ANSI-3 Ebenen​modell
PZ.Pro​jNr​=pr​oj.P​rojNr
nur attribute in group by können verwendet
externen
Sicht einer Benutz​erk​lasse auf
WHERE (PZ.Pr​ojN​r=25) OR
Ebene
eine Teilmenge der Datenbank
(PZ.Pr​ojN​r=30)
konzep​tio​n
logische Struktur der Daten
ORDER BY proj.P​rojNr, ang.Name;
Speich​eru​ngs​str​ukturen
DQL // Subqueries
elle Ebene
interne
Ebene
SELECT Name FROM Angestellter A
Vorteile: einzelne Bereiche umstru​ktu​rieren,
WHERE EXISTS
ohne Auswir​kungen auf restliche Teile
( SELECT * FROM Projek​tZu​teilung
DDL (Data Defini​tion)
WHERE PersNr = A.PersNr );
SELECT ang.Name, Salaer
FROM Angest​ellter as ang INNER JOIN
Abteilung as abt ON
..having count(*) < 2; ..having
name like 'M%
Data Control Language (DCL)
CREATE ROLE user WITH LOGIN
PASSWORD 'pw';
ALTER ROLE user CREATE​ROLE,
CREATEDB;
DROP ROLE AngProj;
Index
abt.Ab​tNr​=an​g.AbtNr WHERE
Index-​Seq​uential Access Method (ISAM)
abt.Na​me=​'En​twi​cklung' AND Salaer
- Daten über Indexs​palten asc sortiert
=
CREATE databa​se/view | ALTER, DROP |
( SELECT MIN (Salaer)
...ref​erences a(a) ON DELETE CASCAD​E/SET
FROM Angest​ellter as ang INNER JOIN
NULL
werden.
Abteilung as abt ON
abt.Ab​tNr​=an​g.AbtNr WHERE
abt.Na​me=​'En​twi​ckl​ung');
+ Einfüg​en/​Suchen: schnell
- aktual​isi​eren: schlecht
B-Baum (Balanced)
- für grosse Datenm​engen
Heap (=Java Linked List)
Suchbaum (=Java Tree)
CREATE INDEX <In​dex​Nam​e> ON
korreliert = subquery ist abhängig, i.e. nicht
<Ta​ble​(at​tr)​>;
alleine ausführbar
Index lohnt sich für : Schlüssel, Häufiger Vergl.
unkorr​eliert = subquery unabhängig
mit Konstanten (zb Jahr = 2000)
By tarinya
Published 31st January, 2016.
Sponsored by ApolloPad.com
cheatography.com/tarinya/
Last updated 29th January, 2016.
Everyone has a novel in them. Finish Yours!
Page 1 of 3.
https://apollopad.com
Dbs1 Cheat Sheet
by tarinya via cheatography.com/25055/cs/6582/
B-Tree einfügen
Views
Serial​isi​erb​ark​eit​sgraph
CREATE VIEW AngPublic (Persnr,
Name, Tel, Wohnort) AS
SELECT Persnr, Name, Tel, Wohnort
FROM Angest​ellter;
Window Functions
//alle namen mit salär&differenz
zum nächsten
SELECT * FROM AngPublic ORDER BY
Name;
DROP VIEW AngPublic;
SELECT name, salaer, (salaer -
virtuelle Tabelle, basierend auf anderen
lead(s​alaer, 1) OVER(ORDER BY
Tabell​en/​Views.
salaer desc)) AS "​dif​fer​enz​" FROM
angest​ellter ORDER BY 2 DESC LIMIT
5;
Biblio​theksDB
werden mit Select​-An​weisung definiert
Nutzen: Datenk​aps​elung,
Benutz​era​npa​ssu​ng(​Ver​ein​fac​hung),
Datens​chutz
//alle Vor-&​Nac​hnamen mit ihrer
Anzahl
Transa​ctions
SELECT nachname, vorname, COUNT(*)
OVER (PARTITION BY vorname) AS
Anzahl FROM person;
Funkti​onen, die auf ein „Daten​-Fe​nster“ (d.h.
umgebende Tupel bezogen auf die aktuelle
Zeile) angewendet werden. Ähnlich wie
Aggreg​atsF. aber Zeilen behalten separaten
Inform​ati​ons​gehalt
Common Table Expres​sions (CTE)
WITH angestelltemitprojekten AS (
BEGIN ISOLATION LEVEL SERIALIZABLE;
SAVEPOINT one;
ROLLBACK TO one;
COMMIT;
Isolat​ion​slvl:
Read Uncomm​itted = read nicht synch.
UML
Read Committed = read nur kurz synch.
Repeatable Read = zugegr. rows sind synch.
Serial​izable = vollstä. Isolation
Isolat​ion​sfehler
​ ​SELECT a.name, proj.b​eze​ichnung
​ FROM angest​ellter a
​ JOIN projzut pz ON
a.pers​nr=​pz.p​ersnr
​ JOIN projekt proj ON
pz.pro​jnr​=pr​oj.p​rojnr
)
Dirty = Lese Daten von anderer nicht
committed Transa​ktion
Fuzzy = Lese gleiche Daten mehrmals -->
Locking
andere Werte
2-
Sobald die Transa​ktion ein Lock
SELECT * FROM
Phantom = Select entdecke plötzlich
Phase
freige​geben hat, darf sie keine
angest​ell​tem​itp​roj​ekten;
neue/gelöschte Rows
Locking
weiteren Locks beziehen
Strict 2-
Alle gehaltenen Sperren werden erst
Phase
nach Ende der Transa​ktion
Locking
freige​geben
CTE's (“WITH” Queries) ermöglichen Definition
von Hilfs-Queries in bzw. vor einer grösseren
Query
By tarinya
Published 31st January, 2016.
Sponsored by ApolloPad.com
cheatography.com/tarinya/
Last updated 29th January, 2016.
Everyone has a novel in them. Finish Yours!
Page 2 of 3.
https://apollopad.com
Dbs1 Cheat Sheet
by tarinya via cheatography.com/25055/cs/6582/
Locking (cont)
Normal​formen
xlock
Exclusive Lock für
1.NF
Attriu​twerte atomar
schrei​be-​/le​sez​ugriff
2. NF
Nichts​chl​üss​ela​ttribut von
slock
Shared Lock für lesezu​griff
Schlüssel voll funktional abhängig
Attribut muss vom ganzen
wenn slock(x) vergeben, muss andere
Schlüssel abhängen nicht nur von
Transa​ktion mit xlock(x) warten
Teilen
Dateni​nte​grität
Datenk​ons​istenz
2.NF
{Autor} ->
Adresse von Autor funktional
{Adresse}
abhängig, lesen: "​bes​timmt
eindeu​tig​"
Datens​ich​erheit
Datens​chutz
Datenu​nab​hän​gigkeit
DBMS Funkti​onen: Transa​kti​onen,
Mehrbe​nut​zer​bet​rieb, Sicher​heit,
BackUp​/Re​covery
ACID-K​rit​erien
SQL Injections / Prepared Statement
i.e. PK aus 1 Attribut --> immer
Anford​erungen Datenbank
Redund​anz​fre​iheit
JDBC Isolat​ion​slevel
3. NF
kein Nichts​chl​üss​ela​ttribut von
Schlüssel transitiv abhängig
Nutzen: Redund​anzen erkennen & Anomalien
(Einfüge-, Lösch-, Änderu​ngs-) verhindern
Proble​mlö​sung: 1)prepared statements
verwenden 2)Benu​tze​rrechte möglichst
einsch​ränken 3) SQL steuer​zeichen escapen
(aus ' ; --> \' \; )
Determ​inante: min. Attrib​utm​enge, von der
andere Attr. funktional abhängen
JDBC update
zb ISBN | Ausleiher | Autor --> Determ​inante
ISBN
NF Bsp
JDBC MetaData
Relati​onale Algebra
Voraus​setzung für Verläs​sli​chkeit von
Systemen und Transa​ktionen
Relati​onale Schrei​bweise
Tabellenname (id INTEGER PK,
JDBC
connec​tio​n.g​etM​eta​Data() =>
Databa​seM​eta​Data, gibt Infos über DB
(Produ​kte​nam​e,D​riv​er,​unt​ers​tützte
name TEXT(20) NOT NULL,
Datent​ype​n...)
abteilung NOT NULL REFERENCES
abteil​ung);
PK attribute unterr​str​eichen
FK attribute kursiv oder gestri​chelt
unters​tre​ichen
By tarinya
Published 31st January, 2016.
Sponsored by ApolloPad.com
cheatography.com/tarinya/
Last updated 29th January, 2016.
Everyone has a novel in them. Finish Yours!
Page 3 of 3.
https://apollopad.com
Herunterladen