Zielsetzung:
HiWis sollen in der Lage sein, Daten aus einzelnen oder mehreren Tabell der Datenbank abzufragen, ändern (Vorsicht!).
- Theorie: Aufbau einer relationalen Datenbank
- Was bedeutet "relational" und warum?
- Welche Relationen gibt es?
- 1:1
- 1:n
- n:n
- Aufbau der VerbaAlpina-Datenbank va_xxx
- relevante Tabellen
- Workflow: wie durchläuft Information die Datenbank
- Vorbereitung
- Anlegen der Stimuli (obligatorisch)
- Anlegen der Informanten (obligatorisch)
- Anlegen der Konzepte (optional)
- `vtbl_stimulus_konzept`
- Transkription: Erfassung der Äußerungen
- `aeusserungen` Aeusserung, Klassifizierung, ID_Informant, ID_Stimulus, Erfasst_Am, Tokenisiert
- `vtbl_aeusserungen_konzept` Äußerung wird mit Konzept verknüpft
- Tokenisierung
- Splitten der Aeusserung in Einzeltokens
- Trennung der lexikalischen von der grammatischen Information, z.B. Artikel, Präposition usw.
- Typisierung
- Token → Konzept `vtbl_token_konzept`
- Token → Morphtyp `vtbl_token_konzept`
- Morphtyp → Basistyp `vtbl_morph_basistyp`
- Morphtyp → Lemmata `vtbl_morph_typ_lemma`
- Vorbereitung
- Praxis: SQL
- Was ist die Struktur eine Abfrage/Query in SQL?
- SELECT <was?>
FROM <woraus?>
WHERE <was?> <LIKE, RLIKE> <Bedingung>
(AND <was?> <LIKE, RLIKE> <Bedingung>)
(OR <was?> <LIKE, RLIKE> <Bedingung>)
Bsp.:
-- Alle Informanten des AIS
SELECT *
FROM informanten
WHERE Erhebung LIKE 'AIS'-- Alle Informanten des AIS und ASLEF
SELECT *
FROM informanten
WHERE Erhebung LIKE 'AIS'
AND Erhebung LIKE 'ASLEF'Aufgaben:
- Alle Crowd-Informanten auswählen, die slawisch als Sprache angegeben haben.
- Alle deutschsprachigen Informanten ohne Crowd-Informanten.
- Alle Crowd-Informanten, die sich nicht angemeldet haben.
- Alle Crowd-Informanten, die sich angemeldet haben. (NOT LIKE)
- SELECT <was?>
- Was ist die Struktur eine Abfrage/Query in SQL?
LIKE vs. RLIKE
-
- LIKE – sucht nach einer Zeichenkette und nur danach
SELECT * FROM stimuli WHERE Erhebung like 'ALJA'
- LIKE – sucht nach einer Zeichenkette und nur danach
Erhebung | Karte | Nummer | Stimulus | va_phase | Bemerkung |
---|---|---|---|---|---|
ALJA | 151 | 1 | un pré; deux prés | 2 | 2533 |
ALJA | 152 | 1 | un pré long et étroit | 4 | ist relevant? |
ALJA | 153 | 1 | un mauvais pré | 4 | ist relevant? |
- Operator % % – sucht nach einer Zeichenkette im Ganzen: % steht für ein beliebiges Zeichen
SELECT * FROM stimuli WHERE Erhebung like '%AL%'
Erhebung | Karte | Nummer | Stimulus | va_phase | Bemerkung |
---|---|---|---|---|---|
ALD-I | 76 | 1 | la caldaia | 1 | |
ALD-II | 15 | 1 | l'asilo | ||
ALEPO | 2342 (76.1a) | 1 | La mammella(della vacca) | 0 | |
ALF | 1 | 1 | abeille | 2 | 2525 |
ALI | 1 | 1 | scheletro | 0 | |
ALJA | 151 | 1 | un pré; deux prés | 2 | 2533 |
ALL | 1 | 1 | noms officiels des localités | ||
ALP | 166 | 1 | pré; prés | 2 | 166_1 |
ALTR | 1 | 1 | Sennhütte | 1 | |
VALTS | I_8 | 1 | r + Konsonant in Arbeit | ||
VIVALDI | 1 | 1 | l'acqua |
SELECT * FROM stimuli WHERE Erhebung like '%ALT%'
Erhebung | Karte | Nummer | Stimulus | va_phase | Bemerkung |
---|---|---|---|---|---|
ALTR | 1 | 1 | Sennhütte | 1 | |
VALTS | I_8 | 1 | r + Konsonant in Arbeit |
- RLIKE oder REGEXP – sucht nach einer definierten Zeichenkette im ganzen Feld
SELECT * from stimuli WHERE Erhebung rlike 'ALT'
Erhebung | Karte | Nummer | Stimulus | va_phase | Bemerkung |
---|---|---|---|---|---|
ALTR | 1 | 1 | Sennhütte | 1 | |
VALTS | I_8 | 1 | r + Konsonant in Arbeit |
gleiches Ergebnis, wie in SELECT * FROM stimuli WHERE Erhebung like '%ALT%'
- RLIKE oder REGEXP ermöglicht eine exakte Suche nach bestimmten Zeichen, bzw. Gruppen von Zeichen. Hier kommen die sog. regulären Ausdrücke zum Einsatz.
Unter „regulären Ausdrücken“ (kurz auch: RA, regex oder RE[engl.: Regular Expression]) versteht man ein Verfahren, mit dem man nahezu beliebige Zeichenfolgen beschreiben und suchen bzw. suchen und ersetzen kann. -
Literale: Zeichen, die für sich selbst stehen: a bezeichnet exakt das Zeichen a
- Metazeichen: besitzen eine Sonderfunktion:
- . Der Punkt steht für ein beliebiges Zeichen (Zahl, Buchstabe, Spatium etc.)SELECT * FROM morph_typen where Orth rlike 'bat'
- \ Der Backslash "maskiert" Zeichen mit Sonderfunktion
- Alternativen []
- einzelne Zeichen
SELECT * FROM - Zeichenbereiche
- einzelne Zeichen
- . Der Punkt steht für ein beliebiges Zeichen (Zahl, Buchstabe, Spatium etc.)SELECT * FROM morph_typen where Orth rlike 'bat'
-
-
- JOINS (Verbindung mindestens 2 Tabellen)
1. Möglichkeit: wenn Spalten, über die ein JOIN gemacht wird, denselben Namen tragen- SELECT <was?>
FROM <woraus?>
JOIN <was?> USING <gemeinsames Feld>
WHERE <was?> <LIKE, RLIKE> <Bedingung>
(AND <was?> <LIKE, RLIKE> <Bedingung>)
(OR <was?> <LIKE, RLIKE> <Bedingung>)Bsp.:
--
SELECT *
FROM aeusserugen
JOIN stimuli USING (id_Stimulus)
WHERE Erhebung LIKE 'AIS'
- SELECT <was?>
- JOINS (Verbindung mindestens 2 Tabellen)
-