Skip to content

Commit 7b5c588

Browse files
committed
added bpmn extendes slides, added sql-join wip slides
1 parent 24384c2 commit 7b5c588

10 files changed

+289
-0
lines changed
Lines changed: 130 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,130 @@
1+
---
2+
theme: seriph
3+
routerMode: hash
4+
title: BPMN - Fortgeschritten
5+
info: |
6+
## BPMN - Fortgeschritten
7+
background: https://github.com/HTL-Wolfsberg-Betriebsinformatik/skript/blob/main/slides/content/slides/background-cover-16-9.webp?raw=true
8+
class: text-center
9+
drawings:
10+
persist: false
11+
transition: slide-left
12+
mdc: true
13+
layout: cover
14+
hideInToc: true
15+
download: true
16+
export:
17+
format: pdf
18+
dark: false
19+
withClicks: true
20+
withToc: true
21+
selectable: true
22+
---
23+
24+
# BPMN - Fortgeschritten
25+
26+
---
27+
hideInToc: true
28+
---
29+
30+
# Inhalt
31+
32+
<Toc minDepth="1" maxDepth="1" />
33+
34+
---
35+
36+
# Pools & Lanes
37+
38+
- Der **Pool** definiert in der Regel die **Organisation oder Einheit**, in der der Prozess stattfindet.
39+
- Die **Lane** (Bahn) definiert die **Rolle oder Abteilung**, die für die Ausführung der einzelnen Aufgaben verantwortlich ist.
40+
41+
![Pools and Lanes Beispiel](./assets/bpmn-pools-and-lanes-example.drawio.png){width=50%}
42+
43+
---
44+
45+
# Beispiel: Fehlender Schuhgrößen Prozess
46+
47+
***
48+
49+
![Fehlender Schuhgrößen Prozess 1.0](./assets/bpmn-exercise-missing-shoe-size-process.drawio.png)
50+
51+
---
52+
53+
# Beispiel: Fehlender Schuhgrößen Prozess 2.0
54+
55+
***
56+
57+
![Fehlender Schuhgrößen Prozess 1.0](./assets/bpmn-exercise-missing-shoe-size-process-with-warehouse-manager.drawio.png){width=80%}
58+
59+
---
60+
61+
# Closing Gateways
62+
63+
Um Aktivitäten (Tasks) wieder zusammenzuführen, benutzt man *Closing Gateways*.
64+
65+
<br>
66+
67+
![Closing Gateway Beispiel](./assets/bpmn-example-closing-gateways.drawio.png)
68+
69+
---
70+
71+
# Übung: Lieferung Großhändler
72+
73+
Der Verkäufer steht vor einer neuen Herausforderung. Er erhält eine Lieferung vom Großhändler und weiß nicht, was er als Nächstes tun soll. Sein Chef sagt zu ihm:
74+
75+
„Keine Sorge. Zuerst überprüfst du, ob die Bestellung und die Rechnung korrekt sind. Wenn nicht, gibst du das Paket an den Versandmitarbeiter zurück. Wenn alles stimmt, prüfst du, ob es sich um eine Standardbestellung oder um eine Kundenbestellung handelt. Wenn es eine Standardbestellung ist, bringst du die Schuhe einfach ins Lager. Wenn es eine Kundenbestellung ist, stellst du die Schuhe hinter die Kasse – und das war’s!“
76+
77+
Deine Aufgabe ist es nun, dem Verkäufer zu helfen, indem du einen einfachen Prozess erstellst. Ignoriere dabei die Aufgaben des Versandmitarbeiters. Modelle nur, was der Verkäufer tun muss.
78+
79+
---
80+
81+
# Lösung: Lieferung Großhändler
82+
83+
***
84+
85+
![Lösung: Lieferung Großhändler](./assets/bpmn-exercise-shoe-delivery-process.drawio.png)
86+
87+
---
88+
89+
# Token Konzept
90+
91+
Einen *Token* kann man sich als *Ball* oder *Murmel* vorstellen.
92+
93+
![Blaue Murmel](./assets/blue-marble.png){width=40%}
94+
95+
- Der *Token* rollt durch den Prozess, vom Start- bis zum Endevent!
96+
- Der *Token* durchläuft alle Arten von Aktivitäten und Gateways, die ihn beeinflussen.
97+
- Sobald die Aktivität fertig ist, rollt der Token weiter
98+
99+
---
100+
hideInToc: true
101+
layout: default
102+
clicks: 2
103+
---
104+
105+
# Token Konzept
106+
107+
<div class="h-full w-full flex justify-center items-center">
108+
<div class="absolute"
109+
v-motion
110+
:initial="{ x: -80 }"
111+
:enter="{ x: -70, y: -30 }"
112+
:click-1="{ x: 0, y: 0 }"
113+
:click-2="{ x: 160, y: -30 }">
114+
<BpmnToken />
115+
</div>
116+
<img src="./assets/bpmn-token-example.drawio.png" alt="BPMN Token Beispiel">
117+
</div>
118+
119+
---
120+
hideInToc: true
121+
---
122+
123+
# Token Konzept
124+
125+
Die eigentliche Stärke des Token-Konzepts besteht darin, zu veranschaulichen, wie verschiedene Gateways funktionieren.
126+
127+
TODO: Zeichnung
128+
129+
130+
720 KB
Loading
27.5 KB
Loading
Loading
69.6 KB
Loading
67.8 KB
Loading
9.87 KB
Loading
5.51 KB
Loading
Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
<script setup lang="ts">
2+
defineProps({
3+
size: {
4+
type: Number,
5+
default: 32,
6+
},
7+
color: {
8+
type: String,
9+
default: 'blue',
10+
},
11+
x: {
12+
type: Number,
13+
default: 0,
14+
},
15+
y: {
16+
type: Number,
17+
default: 0,
18+
},
19+
})
20+
</script>
21+
22+
<template>
23+
<span
24+
:style="{
25+
fontSize: size + 'px',
26+
color,
27+
transform: `translate(${x}px, ${y}px)`,
28+
}"
29+
>
30+
&#9679;
31+
</span>
32+
</template>
Lines changed: 127 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,127 @@
1+
---
2+
theme: seriph
3+
routerMode: hash
4+
title: SQL - JOIN
5+
info: SQL JOIN
6+
background: https://github.com/HTL-Wolfsberg-Betriebsinformatik/skript/blob/main/slides/content/slides/background-cover-16-9.webp?raw=true
7+
class: text-center
8+
drawings:
9+
persist: false
10+
transition: slide-left
11+
mdc: true
12+
layout: cover
13+
hideInToc: true
14+
download: true
15+
export:
16+
format: pdf
17+
dark: false
18+
withClicks: true
19+
withToc: true
20+
selectable: true
21+
---
22+
23+
# SQL JOIN
24+
25+
## Daten aus mehreren Tabellen gemeinsam anzeigen
26+
27+
---
28+
hideInToc: true
29+
---
30+
31+
# Inhalt
32+
33+
<Toc minDepth="1" maxDepth="1" />
34+
35+
---
36+
37+
# Warum `JOIN`s?
38+
39+
- In relationalen Datenbanken sind **Informationen auf mehrere Tabellen verteilt**.
40+
- JOINs ermöglichen es, **zusammenhängende Daten** wieder **zusammenzuführen**.
41+
42+
<br>
43+
44+
**Beispiel:**
45+
46+
- Tabelle `Kunde`
47+
- Tabelle `Bestellung`
48+
49+
> Wir möchten sehen, welcher Kunde welche Bestellung gemacht hat.
50+
51+
---
52+
53+
# Grundidee
54+
55+
Ein `JOIN` verbindet Datensätze über gemeinsame Werte, meist über **Primär- und Fremdschlüssel**.
56+
57+
<br>
58+
59+
**Beispiel:**
60+
- `kunden.id` <--> `bestellungen.kunden_id`
61+
62+
```sql
63+
CREATE TABLE kunden (
64+
id INT PRIMARY KEY,
65+
name NVARCHAR(50)
66+
);
67+
68+
CREATE TABLE bestellungen (
69+
id INT PRIMARY KEY,
70+
kunden_id INT,
71+
produkt NVARCHAR(50)
72+
);
73+
```
74+
75+
---
76+
layout: two-cols-header
77+
layoutClass: gap-16
78+
---
79+
# `INNER JOIN`
80+
81+
Der `INNER JOIN` zeigt nur Datensätze, die in **beiden Tabellen vorkommen**.
82+
83+
::left::
84+
85+
```sql
86+
SELECT k.name, b.produkt
87+
FROM kunden AS k
88+
INNER JOIN bestellungen AS b
89+
ON k.id = b.kunden_id;
90+
```
91+
92+
::right::
93+
94+
| name | produkt |
95+
| ----- | -------- |
96+
| Anna | Laptop |
97+
| Carla | Handy |
98+
| Carla | Tastatur |
99+
100+
101+
---
102+
layout: two-cols-header
103+
layoutClass: gap-16
104+
---
105+
106+
# `OUTER JOIN`
107+
108+
Der `OUTER JOIN` zeigt auch Datensätze, die **keine Übereinstimmung** in der anderen Tabelle haben.
109+
110+
::left::
111+
112+
```sql
113+
SELECT k.name, b.produkt
114+
FROM kunden AS k
115+
INNER JOIN bestellungen AS b
116+
ON k.id = b.kunden_id;
117+
```
118+
119+
::right::
120+
121+
| name | produkt |
122+
| ----- | -------- |
123+
| Anna | Laptop |
124+
| Carla | Handy |
125+
| Carla | Tastatur |
126+
| Bernd | NULL |
127+
| NULL | Fernseher|

0 commit comments

Comments
 (0)