vault backup: 2026-07-22 17:11:34

This commit is contained in:
Benjamin Neumann
2026-07-22 17:11:34 +02:00
commit 96281716d4
47 changed files with 3653 additions and 0 deletions
+5
View File
@@ -0,0 +1,5 @@
{
"newFileLocation": "current",
"attachmentFolderPath": "./Anhänge",
"alwaysUpdateLinks": true
}
+1
View File
@@ -0,0 +1 @@
{}
+3
View File
@@ -0,0 +1,3 @@
[
"obsidian-git"
]
+33
View File
@@ -0,0 +1,33 @@
{
"file-explorer": true,
"global-search": true,
"switcher": true,
"graph": true,
"backlink": true,
"canvas": true,
"outgoing-link": true,
"tag-pane": true,
"footnotes": false,
"properties": true,
"page-preview": true,
"daily-notes": true,
"templates": true,
"note-composer": true,
"command-palette": true,
"slash-command": true,
"editor-status": true,
"bookmarks": true,
"markdown-importer": false,
"zk-prefixer": false,
"random-note": false,
"outline": true,
"word-count": true,
"slides": false,
"audio-recorder": true,
"workspaces": false,
"file-recovery": true,
"publish": false,
"sync": true,
"bases": true,
"webviewer": false
}
+3
View File
@@ -0,0 +1,3 @@
{
"format": "DD-MM-YYYY"
}
+22
View File
@@ -0,0 +1,22 @@
{
"collapse-filter": false,
"search": "",
"showTags": false,
"showAttachments": false,
"hideUnresolved": false,
"showOrphans": true,
"collapse-color-groups": true,
"colorGroups": [],
"collapse-display": true,
"showArrow": false,
"textFadeMultiplier": 0,
"nodeSizeMultiplier": 1,
"lineSizeMultiplier": 1,
"collapse-forces": true,
"centerStrength": 0.518713248970312,
"repelStrength": 10,
"linkStrength": 1,
"linkDistance": 250,
"scale": 1,
"close": true
}
+43
View File
@@ -0,0 +1,43 @@
{
"snapStepMinutes": 10,
"progressIndicator": "mini-timeline",
"showTaskNotification": false,
"zoomLevel": 2,
"timelineIcon": "calendar-with-checkmark",
"endLabel": "All done",
"startHour": 6,
"timelineDateFormat": "DD-MM-YYYY",
"centerNeedle": false,
"plannerHeading": "Day planner",
"plannerHeadingLevel": 1,
"timelineColored": false,
"timelineStartColor": "#006466",
"timelineEndColor": "#4d194d",
"timestampFormat": "HH:mm",
"hourFormat": "H",
"extendDurationUntilNext": false,
"defaultDurationMinutes": 30,
"minimalDurationMinutes": 10,
"showTimestampInTaskBlock": false,
"showUncheduledTasks": true,
"showUnscheduledNestedTasks": true,
"showNow": true,
"showNext": true,
"pluginVersion": "0.33.0",
"showCompletedTasks": true,
"showSubtasksInTaskBlocks": true,
"icals": [],
"colorOverrides": [],
"releaseNotes": true,
"taskStatusOnCreation": " ",
"eventFormatOnCreation": "task",
"sortTasksInPlanAfterEdit": false,
"firstDayOfWeek": "monday",
"multiDayRange": "3-days",
"showTimelineInSidebar": true,
"showActiveClockInStatusBar": true,
"timelineColumns": {
"planner": true,
"timeTracker": false
}
}
File diff suppressed because one or more lines are too long
+11
View File
@@ -0,0 +1,11 @@
{
"id": "obsidian-day-planner",
"name": "Day Planner",
"version": "0.33.0",
"minAppVersion": "0.16.0",
"description": "A day planner with clean UI and readable syntax",
"author": "James Lynch, continued by Ivan Lednev",
"authorUrl": "https://github.com/ivan-lednev",
"fundingUrl": "https://www.buymeacoffee.com/machineelf",
"isDesktopOnly": false
}
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
+10
View File
@@ -0,0 +1,10 @@
{
"author": "Vinzent",
"authorUrl": "https://github.com/Vinzent03",
"id": "obsidian-git",
"name": "Git",
"description": "Integrate Git version control with automatic backup and other advanced features.",
"isDesktopOnly": false,
"fundingUrl": "https://ko-fi.com/vinzent",
"version": "2.38.6"
}
+23
View File
@@ -0,0 +1,23 @@
#!/bin/sh
PROMPT="$1"
TEMP_FILE="$OBSIDIAN_GIT_CREDENTIALS_INPUT"
cleanup() {
rm -f "$TEMP_FILE" "$TEMP_FILE.response"
}
trap cleanup EXIT
echo "$PROMPT" > "$TEMP_FILE"
while [ ! -e "$TEMP_FILE.response" ]; do
if [ ! -e "$TEMP_FILE" ]; then
echo "Trigger file got removed: Abort" >&2
exit 1
fi
sleep 0.1
done
RESPONSE=$(cat "$TEMP_FILE.response")
echo "$RESPONSE"
+705
View File
@@ -0,0 +1,705 @@
@keyframes loading {
0% {
transform: rotate(0deg);
}
100% {
transform: rotate(360deg);
}
}
.workspace-leaf-content[data-type="git-view"] .button-border {
border: 2px solid var(--interactive-accent);
border-radius: var(--radius-s);
}
.workspace-leaf-content[data-type="git-view"] .view-content {
padding-left: 0;
padding-top: 0;
padding-right: 0;
}
.workspace-leaf-content[data-type="git-history-view"] .view-content {
padding-left: 0;
padding-top: 0;
padding-right: 0;
}
.loading {
overflow: hidden;
}
.loading > svg {
animation: 2s linear infinite loading;
transform-origin: 50% 50%;
display: inline-block;
}
.obsidian-git-center {
margin: auto;
text-align: center;
width: 50%;
}
.obsidian-git-textarea {
display: block;
margin-left: auto;
margin-right: auto;
}
.obsidian-git-disabled {
opacity: 0.5;
}
.obsidian-git-center-button {
display: block;
margin: 20px auto;
}
.tooltip.mod-left {
overflow-wrap: break-word;
}
.tooltip.mod-right {
overflow-wrap: break-word;
}
/* Limits the scrollbar to the view body */
.git-view {
display: flex;
flex-direction: column;
position: relative;
height: 100%;
}
/* Re-enable wrapping of nav buttns to prevent overflow on smaller screens #*/
.workspace-drawer .git-view .nav-buttons-container {
flex-wrap: wrap;
}
.git-tools {
display: flex;
margin-left: auto;
}
.git-tools .type {
padding-left: var(--size-2-1);
display: flex;
align-items: center;
justify-content: center;
width: 11px;
}
.git-tools .type[data-type="M"] {
color: orange;
}
.git-tools .type[data-type="D"] {
color: red;
}
.git-tools .buttons {
display: flex;
}
.git-tools .buttons > * {
padding: 0;
height: auto;
}
.workspace-leaf-content[data-type="git-view"] .tree-item-self,
.workspace-leaf-content[data-type="git-history-view"] .tree-item-self {
align-items: center;
}
.workspace-leaf-content[data-type="git-view"]
.tree-item-self:hover
.clickable-icon,
.workspace-leaf-content[data-type="git-history-view"]
.tree-item-self:hover
.clickable-icon {
color: var(--icon-color-hover);
}
/* Highlight an item as active if it's diff is currently opened */
.is-active .git-tools .buttons > * {
color: var(--nav-item-color-active);
}
.git-author {
color: var(--text-accent);
}
.git-date {
color: var(--text-accent);
}
.git-ref {
color: var(--text-accent);
}
/* ====== diff2html ======
The following styles are adapted from the obsidian-version-history plugin by
@kometenstaub https://github.com/kometenstaub/obsidian-version-history-diff/blob/main/src/styles.scss
which itself is adapted from the diff2html library with the following original license:
https://github.com/rtfpessoa/diff2html/blob/master/LICENSE.md
Copyright 2014-2016 Rodrigo Fernandes https://rtfpessoa.github.io/
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated
documentation files (the "Software"), to deal in the Software without restriction, including without limitation the
rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit
persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the
Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/
.theme-dark,
.theme-light {
--git-delete-bg: #ff475040;
--git-delete-hl: #96050a75;
--git-insert-bg: #68d36840;
--git-insert-hl: #23c02350;
--git-change-bg: #ffd55840;
--git-selected: #3572b0;
--git-delete: #cc3333;
--git-insert: #399839;
--git-change: #d0b44c;
--git-move: #3572b0;
}
.git-diff {
.d2h-d-none {
display: none;
}
.d2h-wrapper {
text-align: left;
border-radius: 0.25em;
overflow: auto;
}
.d2h-file-header.d2h-file-header {
background-color: var(--background-secondary);
border-bottom: 1px solid var(--background-modifier-border);
font-family:
Source Sans Pro,
Helvetica Neue,
Helvetica,
Arial,
sans-serif;
height: 35px;
padding: 5px 10px;
}
.d2h-file-header,
.d2h-file-stats {
display: -webkit-box;
display: -ms-flexbox;
display: flex;
}
.d2h-file-header {
display: none;
}
.d2h-file-stats {
font-size: 14px;
margin-left: auto;
}
.d2h-lines-added {
border: 1px solid var(--color-green);
border-radius: 5px 0 0 5px;
color: var(--color-green);
padding: 2px;
text-align: right;
vertical-align: middle;
}
.d2h-lines-deleted {
border: 1px solid var(--color-red);
border-radius: 0 5px 5px 0;
color: var(--color-red);
margin-left: 1px;
padding: 2px;
text-align: left;
vertical-align: middle;
}
.d2h-file-name-wrapper {
-webkit-box-align: center;
-ms-flex-align: center;
align-items: center;
display: -webkit-box;
display: -ms-flexbox;
display: flex;
font-size: 15px;
width: 100%;
}
.d2h-file-name {
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
color: var(--text-normal);
font-size: var(--h5-size);
}
.d2h-file-wrapper {
border: 1px solid var(--background-secondary-alt);
border-radius: 3px;
margin-bottom: 1em;
max-height: 100%;
}
.d2h-file-collapse {
-webkit-box-pack: end;
-ms-flex-pack: end;
-webkit-box-align: center;
-ms-flex-align: center;
align-items: center;
border: 1px solid var(--background-secondary-alt);
border-radius: 3px;
cursor: pointer;
display: none;
font-size: 12px;
justify-content: flex-end;
padding: 4px 8px;
}
.d2h-file-collapse.d2h-selected {
background-color: var(--git-selected);
}
.d2h-file-collapse-input {
margin: 0 4px 0 0;
}
.d2h-diff-table {
border-collapse: collapse;
font-family: var(--font-monospace);
font-size: var(--code-size);
width: 100%;
}
.d2h-files-diff {
width: 100%;
}
.d2h-file-diff {
/*
overflow-y: scroll;
*/
border-radius: 5px;
font-size: var(--font-text-size);
line-height: var(--line-height-normal);
}
.d2h-file-side-diff {
display: inline-block;
margin-bottom: -8px;
margin-right: -4px;
overflow-x: scroll;
overflow-y: hidden;
width: 50%;
}
.d2h-code-line {
padding-left: 6em;
padding-right: 1.5em;
}
.d2h-code-line,
.d2h-code-side-line {
display: inline-block;
-webkit-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none;
white-space: nowrap;
width: 100%;
}
.d2h-code-side-line {
/* needed to be changed */
padding-left: 0.5em;
padding-right: 0.5em;
}
.d2h-code-line-ctn {
word-wrap: normal;
background: none;
display: inline-block;
padding: 0;
-webkit-user-select: text;
-moz-user-select: text;
-ms-user-select: text;
user-select: text;
vertical-align: middle;
width: 100%;
/* only works for line-by-line */
white-space: pre-wrap;
}
.d2h-code-line del,
.d2h-code-side-line del {
background-color: var(--git-delete-hl);
color: var(--text-normal);
}
.d2h-code-line del,
.d2h-code-line ins,
.d2h-code-side-line del,
.d2h-code-side-line ins {
border-radius: 0.2em;
display: inline-block;
margin-top: -1px;
text-decoration: none;
vertical-align: middle;
}
.d2h-code-line ins,
.d2h-code-side-line ins {
background-color: var(--git-insert-hl);
text-align: left;
}
.d2h-code-line-prefix {
word-wrap: normal;
background: none;
display: inline;
padding: 0;
white-space: pre;
}
.line-num1 {
float: left;
}
.line-num1,
.line-num2 {
-webkit-box-sizing: border-box;
box-sizing: border-box;
overflow: hidden;
/*
padding: 0 0.5em;
*/
text-overflow: ellipsis;
width: 2.5em;
padding-left: 0;
}
.line-num2 {
float: right;
}
.d2h-code-linenumber {
background-color: var(--background-primary);
border: solid var(--background-modifier-border);
border-width: 0 1px;
-webkit-box-sizing: border-box;
box-sizing: border-box;
color: var(--text-faint);
cursor: pointer;
display: inline-block;
position: absolute;
text-align: right;
width: 5.5em;
}
.d2h-code-linenumber:after {
content: "\200b";
}
.d2h-code-side-linenumber {
background-color: var(--background-primary);
border: solid var(--background-modifier-border);
border-width: 0 1px;
-webkit-box-sizing: border-box;
box-sizing: border-box;
color: var(--text-faint);
cursor: pointer;
overflow: hidden;
padding: 0 0.5em;
text-align: right;
text-overflow: ellipsis;
width: 4em;
/* needed to be changed */
display: table-cell;
position: relative;
}
.d2h-code-side-linenumber:after {
content: "\200b";
}
.d2h-code-side-emptyplaceholder,
.d2h-emptyplaceholder {
background-color: var(--background-primary);
border-color: var(--background-modifier-border);
}
.d2h-code-line-prefix,
.d2h-code-linenumber,
.d2h-code-side-linenumber,
.d2h-emptyplaceholder {
-webkit-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none;
}
.d2h-code-linenumber,
.d2h-code-side-linenumber {
direction: rtl;
}
.d2h-del {
background-color: var(--git-delete-bg);
border-color: var(--git-delete-hl);
}
.d2h-ins {
background-color: var(--git-insert-bg);
border-color: var(--git-insert-hl);
}
.d2h-info {
background-color: var(--background-primary);
border-color: var(--background-modifier-border);
color: var(--text-faint);
}
.d2h-del,
.d2h-ins,
.d2h-file-diff .d2h-change {
color: var(--text-normal);
}
.d2h-file-diff .d2h-del.d2h-change {
background-color: var(--git-change-bg);
}
.d2h-file-diff .d2h-ins.d2h-change {
background-color: var(--git-insert-bg);
}
.d2h-file-list-wrapper {
a {
text-decoration: none;
cursor: default;
-webkit-user-drag: none;
}
svg {
display: none;
}
}
.d2h-file-list-header {
text-align: left;
}
.d2h-file-list-title {
display: none;
}
.d2h-file-list-line {
display: -webkit-box;
display: -ms-flexbox;
display: flex;
text-align: left;
}
.d2h-file-list {
}
.d2h-file-list > li {
border-bottom: 1px solid var(--background-modifier-border);
margin: 0;
padding: 5px 10px;
}
.d2h-file-list > li:last-child {
border-bottom: none;
}
.d2h-file-switch {
cursor: pointer;
display: none;
font-size: 10px;
}
.d2h-icon {
fill: currentColor;
margin-right: 10px;
vertical-align: middle;
}
.d2h-deleted {
color: var(--git-delete);
}
.d2h-added {
color: var(--git-insert);
}
.d2h-changed {
color: var(--git-change);
}
.d2h-moved {
color: var(--git-move);
}
.d2h-tag {
background-color: var(--background-secondary);
display: -webkit-box;
display: -ms-flexbox;
display: flex;
font-size: 10px;
margin-left: 5px;
padding: 0 2px;
}
.d2h-deleted-tag {
border: 1px solid var(--git-delete);
}
.d2h-added-tag {
border: 1px solid var(--git-insert);
}
.d2h-changed-tag {
border: 1px solid var(--git-change);
}
.d2h-moved-tag {
border: 1px solid var(--git-move);
}
/* needed for line-by-line*/
.d2h-diff-tbody {
position: relative;
}
/* My additions */
.cm-merge-revert {
width: 4em;
}
/* Ensure that merge revert markers are positioned correctly */
.cm-merge-revert > * {
position: absolute;
background-color: var(--background-secondary);
display: flex;
}
}
/* ====================== Line Authoring Information ====================== */
.cm-gutterElement.obs-git-blame-gutter {
/* Add background color to spacing inbetween and around the gutter for better aesthetics */
border-width: 0px 2px 0.2px;
border-style: solid;
border-color: var(--background-secondary);
background-color: var(--background-secondary);
}
.cm-gutterElement.obs-git-blame-gutter > div,
.line-author-settings-preview {
/* delegate text color to settings */
color: var(--obs-git-gutter-text);
font-family: monospace;
height: 100%; /* ensure, that age-based background color occupies entire parent */
text-align: right;
padding: 0px 6px;
white-space: pre; /* Keep spaces and do not collapse them. */
}
@media (max-width: 800px) {
/* hide git blame gutter not to superpose text */
.cm-gutterElement.obs-git-blame-gutter {
display: none;
}
}
.git-unified-diff-view,
.git-split-diff-view .cm-deletedLine .cm-changedText {
background-color: #ee443330;
}
.git-unified-diff-view,
.git-split-diff-view .cm-insertedLine .cm-changedText {
background-color: #22bb2230;
}
.git-obscure-prompt[git-is-obscured="true"] #git-show-password:after {
-webkit-mask-image: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="svg-icon lucide-eye"><path d="M2.062 12.348a1 1 0 0 1 0-.696 10.75 10.75 0 0 1 19.876 0 1 1 0 0 1 0 .696 10.75 10.75 0 0 1-19.876 0"></path><circle cx="12" cy="12" r="3"></circle></svg>');
}
.git-obscure-prompt[git-is-obscured="false"] #git-show-password:after {
-webkit-mask-image: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="svg-icon lucide-eye-off"><path d="M10.733 5.076a10.744 10.744 0 0 1 11.205 6.575 1 1 0 0 1 0 .696 10.747 10.747 0 0 1-1.444 2.49"></path><path d="M14.084 14.158a3 3 0 0 1-4.242-4.242"></path><path d="M17.479 17.499a10.75 10.75 0 0 1-15.417-5.151 1 1 0 0 1 0-.696 10.75 10.75 0 0 1 4.446-5.143"></path><path d="m2 2 20 20"></path></svg>');
}
/* Override styling of Codemirror merge view "collapsed lines" indicator */
.git-split-diff-view .ͼ2 .cm-collapsedLines {
background: var(--interactive-normal);
border-radius: var(--radius-m);
color: var(--text-accent);
font-size: var(--font-small);
padding: var(--size-4-1) var(--size-4-1);
}
.git-split-diff-view .ͼ2 .cm-collapsedLines:hover {
background: var(--interactive-hover);
color: var(--text-accent-hover);
}
.git-signs-gutter {
.cm-gutterElement {
display: grid;
/* Needed to align the sign properly for different line heigts. Such as
* when having a heading or list item.
*/
padding-top: 0 !important;
}
}
.git-gutter-marker:hover {
border-radius: 2px;
}
.git-gutter-marker.git-add {
background-color: var(--color-green);
justify-self: center;
height: inherit;
width: 0.2rem;
}
.git-gutter-marker.git-change {
background-color: var(--color-yellow);
justify-self: center;
height: inherit;
width: 0.2rem;
}
.git-gutter-marker.git-changedelete {
color: var(--color-yellow);
font-weight: var(--font-bold);
font-size: 1rem;
justify-self: center;
height: inherit;
}
.git-gutter-marker.git-delete {
background-color: var(--color-red);
height: 0.2rem;
width: 0.8rem;
align-self: end;
}
.git-gutter-marker.git-topdelete {
background-color: var(--color-red);
height: 0.2rem;
width: 0.8rem;
align-self: start;
}
div:hover > .git-gutter-marker.git-change {
width: 0.6rem;
}
div:hover > .git-gutter-marker.git-add {
width: 0.6rem;
}
div:hover > .git-gutter-marker.git-delete {
height: 0.6rem;
}
div:hover > .git-gutter-marker.git-topdelete {
height: 0.6rem;
}
div:hover > .git-gutter-marker.git-changedelete {
font-weight: var(--font-bold);
}
.git-gutter-marker.staged {
opacity: 0.5;
}
/* Prevent shifting of the editor when git signs gutter is the only gutter present */
.cm-gutters.cm-gutters-before:has(> .git-signs-gutter:only-child) {
margin-inline-end: 0;
.git-signs-gutter {
margin-inline-start: -1rem;
}
}
.git-changes-status-bar-colored {
.git-add {
color: var(--color-green);
}
.git-change {
color: var(--color-yellow);
}
.git-delete {
color: var(--color-red);
}
}
.git-changes-status-bar .git-add {
margin-right: 0.3em;
}
.git-changes-status-bar .git-change {
margin-right: 0.3em;
}
+289
View File
@@ -0,0 +1,289 @@
{
"main": {
"id": "9c1779da22965d91",
"type": "split",
"children": [
{
"id": "fd9f21d5268b584f",
"type": "tabs",
"dimension": 52.39520958083832,
"children": [
{
"id": "efb8a850d4a5a594",
"type": "leaf",
"state": {
"type": "markdown",
"state": {
"file": "SS2026/Datenbanken und Informationssysteme/Relationales Datenmodell/Relationales Datenmodell.md",
"mode": "source",
"source": false
},
"icon": "lucide-file",
"title": "Relationales Datenmodell"
}
},
{
"id": "25f5b25d5eca7203",
"type": "leaf",
"state": {
"type": "canvas",
"state": {
"file": "SS2026/Klausurplan.canvas",
"viewState": {
"x": -97,
"y": -49,
"zoom": 0
}
},
"icon": "lucide-layout-dashboard",
"title": "Klausurplan"
}
}
]
},
{
"id": "5958b9e0863b6a71",
"type": "tabs",
"dimension": 47.604790419161674,
"children": [
{
"id": "2d42c893aebdc580",
"type": "leaf",
"state": {
"type": "graph",
"state": {},
"icon": "lucide-git-fork",
"title": "Graph-Ansicht"
}
},
{
"id": "b17bf38e7ce59fd4",
"type": "leaf",
"state": {
"type": "pdf",
"state": {
"file": "SS2026/Datenbanken und Informationssysteme/Relationales Datenmodell/Anhänge/3-Rel.pdf"
},
"icon": "lucide-file-text",
"title": "3-Rel"
}
}
],
"currentTab": 1
}
],
"direction": "vertical"
},
"left": {
"id": "dbec5b084b80785d",
"type": "split",
"children": [
{
"id": "3ee4c271e9fe9ccc",
"type": "tabs",
"children": [
{
"id": "edfc392d0dca0b06",
"type": "leaf",
"state": {
"type": "file-explorer",
"state": {
"sortOrder": "alphabetical",
"autoReveal": false
},
"icon": "lucide-folder-closed",
"title": "Dateiexplorer"
}
},
{
"id": "3a98510d3b81cce8",
"type": "leaf",
"state": {
"type": "search",
"state": {
"query": "",
"matchingCase": false,
"explainSearch": false,
"collapseAll": false,
"extraContext": false,
"sortOrder": "alphabetical"
},
"icon": "lucide-search",
"title": "Suchen"
}
},
{
"id": "30879dc22dd3d627",
"type": "leaf",
"state": {
"type": "bookmarks",
"state": {},
"icon": "lucide-bookmark",
"title": "Lesezeichen"
}
}
]
}
],
"direction": "horizontal",
"width": 200
},
"right": {
"id": "478efdc893d510ef",
"type": "split",
"children": [
{
"id": "06a14e4075d5a61f",
"type": "tabs",
"children": [
{
"id": "30d6da2f46e8f057",
"type": "leaf",
"state": {
"type": "backlink",
"state": {
"file": "SS2026/Datenbanken und Informationssysteme/Relationales Datenmodell/Relationales Datenmodell.md",
"collapseAll": false,
"extraContext": false,
"sortOrder": "alphabetical",
"showSearch": false,
"searchQuery": "",
"backlinkCollapsed": false,
"unlinkedCollapsed": true
},
"icon": "links-coming-in",
"title": "Rückverweise auf Relationales Datenmodell"
}
},
{
"id": "1616af2be8cdc80f",
"type": "leaf",
"state": {
"type": "outgoing-link",
"state": {
"file": "SS2026/Datenbanken und Informationssysteme/Relationales Datenmodell/Relationales Datenmodell.md",
"linksCollapsed": false,
"unlinkedCollapsed": true
},
"icon": "links-going-out",
"title": "Ausgehende Links von Relationales Datenmodell öffnen"
}
},
{
"id": "4eec6599004d8bd0",
"type": "leaf",
"state": {
"type": "outline",
"state": {
"file": "SS2026/Datenbanken und Informationssysteme/Relationales Datenmodell/Relationales Datenmodell.md",
"followCursor": false,
"showSearch": false,
"searchQuery": ""
},
"icon": "lucide-list",
"title": "Gliederung von Relationales Datenmodell"
}
},
{
"id": "8761ea66289023e9",
"type": "leaf",
"state": {
"type": "tag",
"state": {
"sortOrder": "frequency",
"useHierarchy": true,
"showSearch": false,
"searchQuery": ""
},
"icon": "lucide-tags",
"title": "Tags"
}
},
{
"id": "e1afa168ef20f488",
"type": "leaf",
"state": {
"type": "all-properties",
"state": {
"sortOrder": "frequency",
"showSearch": false,
"searchQuery": ""
},
"icon": "lucide-archive",
"title": "Alle Eigenschaften"
}
},
{
"id": "7a44ea2178cf22ba",
"type": "leaf",
"state": {
"type": "git-view",
"state": {},
"icon": "git-pull-request",
"title": "Source Control"
}
}
],
"currentTab": 5
}
],
"direction": "horizontal",
"width": 200
},
"left-ribbon": {
"hiddenItems": {
"switcher:Schnellauswahl öffnen": false,
"graph:Graph-Ansicht öffnen": false,
"canvas:Neuen Canvas erstellen": false,
"daily-notes:Heutige Notiz öffnen": false,
"templates:Vorlage einfügen": false,
"command-palette:Befehlspalette öffnen": false,
"bases:Neue Base erstellen": false,
"audio-recorder:Audioaufzeichnung starten/stoppen": false,
"obsidian-day-planner:Open Timeline": false,
"obsidian-day-planner:Open Multi-Day View": false,
"obsidian-git:Open Git source control": false
}
},
"active": "efb8a850d4a5a594",
"lastOpenFiles": [
"SS2026/Datenbanken und Informationssysteme/Relationales Datenmodell/Anhänge/Pasted image 20260722154712.png",
"SS2026/Datenbanken und Informationssysteme/Relationales Datenmodell/Anhänge/Pasted image 20260722154629.png",
"SS2026/Datenbanken und Informationssysteme/Relationales Datenmodell/Anhänge/Pasted image 20260722154305.png",
"SS2026/Datenbanken und Informationssysteme/Relationales Datenmodell/Relationales Datenmodell.md",
"SS2026/Datenbanken und Informationssysteme/Relationales Datenmodell/Anhänge/Pasted image 20260722153712.png",
"SS2026/Datenbanken und Informationssysteme/Relationales Datenmodell/Anhänge/Pasted image 20260722153710.png",
"SS2026/Datenbanken und Informationssysteme/Relationales Datenmodell/Anhänge/Pasted image 20260722153519.png",
"SS2026/Datenbanken und Informationssysteme/Relationales Datenmodell/Anhänge/3-Rel.pdf",
"SS2026/Datenbanken und Informationssysteme/Relationales Datenmodell/Anhänge/Pasted image 20260722152527.png",
"SS2026/Datenbanken und Informationssysteme/Relationales Datenmodell/Intrarelationale Abhängigkeiten.md",
"SS2026/Datenbanken und Informationssysteme/Relationales Datenmodell/Anhänge/Pasted image 20260722150147.png",
"SS2026/Klausurplan.canvas",
"SS2026/Datenbanken und Informationssysteme/Relationales Datenmodell/Anhänge/Pasted image 20260722145754.png",
"SS2026/Datenbanken und Informationssysteme/Relationales Datenmodell/Anhänge/Pasted image 20260722144852.png",
"SS2026/Datenbanken und Informationssysteme/Relationales Datenmodell/Anhänge",
"SS2026/Datenbanken und Informationssysteme/Datenbanken und Informationssysteme.md",
"SS2026/Datenbanken und Informationssysteme/Relationales Datenmodell",
"SS2026/Datenbanken und Informationssysteme/Anhänge/2-ERM.pdf",
"SS2026/Datenbanken und Informationssysteme/ER-Modell/Entity-Relationship-Modell.md",
"SS2026/Datenbanken und Informationssysteme/ER-Modell/Konzeptueller Entwurf.md",
"SS2026/Datenbanken und Informationssysteme/ER-Modell/Erweitertes Konzept isA.md",
"SS2026/Datenbanken und Informationssysteme/ER-Modell/Anhänge/Pasted image 20260722142539.png",
"SS2026/Datenbanken und Informationssysteme/ER-Modell/Datenbankentwurf.md",
"SS2026/Datenbanken und Informationssysteme/ER-Modell/Kardinalitäten.md",
"SS2026/Datenbanken und Informationssysteme/ER-Modell/Schwache Entity-Typen.md",
"SS2026/Datenbanken und Informationssysteme/ER-Modell/Anhänge",
"SS2026/Datenbanken und Informationssysteme/ER-Modell/Unbenannt.base",
"SS2026/Datenbanken und Informationssysteme/Einführung/Einführung.md",
"SS2026/Datenbanken und Informationssysteme/Anhänge/1-Intro.pdf",
"SS2026/Datenbanken und Informationssysteme/Einführung/ANSI SPARC Modell.md",
"ANSI/SPARC Modell.md",
"ANSI",
"SS2026/Datenbanken und Informationssysteme/Einführung",
"SS2026/Datenbanken und Informationssysteme/ER-Modell",
"Datenbanken und Informationssysteme/13-08-2026.md",
"SS2026/Quantum Computing/Test2.md",
"Willkommen.md",
"Neuer Link.md"
]
}
@@ -0,0 +1,8 @@
## [[Einführung]]
![[1-Intro.pdf]]
## [[Entity-Relationship-Modell]]
![[2-ERM.pdf]]
## [[Relationales Datenmodell]]
Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 21 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 29 KiB

@@ -0,0 +1,29 @@
Struktur <-> Verhalten
| Nutzenanalyse | Anforderungsanalyse |
| ------------------------ | ------------------------------------------------------ |
| Anwendungsgebiete | Informationsanforderungen<br>Welche Daten gespeichert? |
| Kosten-Nutzen-Rechnungen | Bearbeitungsanforderungen<br>Welche Operationen? |
| Prioritäten setzen | Benutzeranforderungen<br>UI,Format,Hilfssysteme? |
STUFE 1
Erfassung der Semantik unabhängig von Technik
STUFE 2
Übersetzung in mathematisches Modell
STUFE 3
Optimierung für Hardware
### Qualitätskriterien
#### Korrektheit & Vollständigkeit
Syntaktisch Fehlerfrei
Alle realen Aspekte erfasst
#### Lesbarkeit
selbsterklärend und dokumentiert
#### Minimalitat
keine Redundanz
#### Modifizierbarkeit
modularer Aufbau
@@ -0,0 +1,26 @@
[[Datenbankentwurf]]
Graphisches Modell auf hohem Abstraktionsniveau
Physische Effizienz keine Rolle!!
![[Pasted image 20260722134006.png]]
Entity Typ = Schablone im Schema
Entity Set = alle Objekte dieses Typs auf Instanzebene
ER-Modell beschreibt nur Typen
Attribute charakterisieren Typen - Farbe, Gewicht etc... aus definierten Wertebereichen INT STRING..
Schlüsselkandidat: minimale attributmenge die Entität eindeutig identifiziert
Primärschlüssel wird unterstrichen
Attribute können Unter Attribute haben.
Mehrwertige Attribute sind Menge von Werten des Typs - doppelt umrandete Ellipse
Beziehungen als Rauten repräsentieren Zusammenhänge
Kanten werden oft mit Rollen annotiert.
n-stellige Beziehungen sind Teilmengen des Kartesischen Produkts
[[Kardinalitäten]]
[[Schwache Entity-Typen]]
[[Erweitertes Konzept isA]]
[[Konzeptueller Entwurf]]
@@ -0,0 +1,10 @@
### Erweiterte Konzepte
#### isA
![[Pasted image 20260722141838.png]]
| DISJUNKT $\downarrow$ | NICHT DISJUNKT $\uparrow$ | Total (t) | Partiell (p) |
| -------------------------------------------------------- | ------------------------------------------------------------- | ------------------------------------------------------------------- | ------------------------------------------------------------------------- |
| Pfeile zeigen auf<br>Spezialisierung<br>ENTWEDER<br>ODER | Pfeile zeigen auf<br>Generalisierung<br>Kann mehreres<br>sein | Vollständig<br>Jedes Element<br>liegt in mindestens<br>einem Subtyp | Echte Teilmenge<br>Elemente im Supertyp<br>die in keinem Subtyp<br>liegen |
![[Pasted image 20260722142324.png]]
![[Pasted image 20260722142539.png]]
@@ -0,0 +1,11 @@
### Kardinalitäten
#### Chen Notation
![[Pasted image 20260722135135.png]]
Gibt maximale Anzahl der Entitäten an
Bei mehrstelligen Beziehungen gilt die Kardinalität an A für alle paare \ A Entitäten
#### MinMax Notation
![[Pasted image 20260722135501.png]]
(min, max)
mindestens min höchstens max Verbindungen
Generell moderner und besser
@@ -0,0 +1,13 @@
Entitätstyp = Klasse von realen/abstrakten Objekten
Identifizierung oft durch Nomen im Text oder Leitfrage was wir Speichern müssen
Welche Eigenschaften sind wichtig und Primärschlüssel identifizieren (/ausdenken)
Beziehungen oft Verben
Rekursiv,Binär,Tertiär,...?
Generalisierung, Spezialisierung (isA), Aggregation (mit extra "besteht aus" Beziehung)?
Kardinalitäten an Regeln und Anforderungen festmachen
-> Jede min max Angabe muss begründbar sein!!
Redundanzen vermeiden
Zwischen Entität vs. Attribut vs. Beziehung entscheiden
z.B. Adresse als Entität oder Attribut wenn sie geteilt wird?
@@ -0,0 +1,6 @@
### Schwache Entity-Typen
![[Pasted image 20260722141101.png]]
doppelte Ränder = schwach
gestrichelter Schlüssel weil partiell
Kardinalität IMMER 1,1
schwacher typ ist abhängig von übergeordnetem Typ
@@ -0,0 +1,6 @@
ANSI/SPARC Modell:
Externe Ebene: Jeder sieht nur seinen Ausschnitt
->Logische Datenunabhängigkeit - Neue spalte alte app läuft weiter
Logische Ebene: Logische Gesamtsicht aller Daten
->Physische Datenunabhängigkeit - HDD -> SSD gleiche Logik
Physische Ebene: Physische Bytes auf Medium Wie?
@@ -0,0 +1,19 @@
![[1-Intro.pdf]]
Das **Problem**!:
Ein simples Dateisystem kann Nebenläufigkeit und Datensicherheit nicht garantieren!!!
##### Datenbanksystem:
Datenbank-Management-System + Datenbank
DBMS + DB
Softwareschicht + Datensammlung
Anwendungsprogramme greifen NIEMALS direkt auf die Daten zu!!!
System sucht besten Weg zu Daten - Selbst beschreibt nur den Weg!
Abstraktion ist das Ableiten des Wesentlichen!
DBS verwaltet Schema und Zustand gemeinsam!
[[ANSI SPARC Modell]]
Binary file not shown.

After

Width:  |  Height:  |  Size: 37 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 25 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 25 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

@@ -0,0 +1,14 @@
### Intrarelationale Abhängigkeiten
Gültigkeit einer einzelnen Relation
Innerhalb einer Tabelle
z.B. $\sigma$ : Rel(X) -> {true, false}
erfüllt oder verletzt Regel
### Interrelationale Abhängigkeiten
Regeln zwischen Tabellen
Konsistenz über die gesamte Datenbank
![[Pasted image 20260722152527.png]]
Etwas in einer Tabelle muss auch in einer anderen existieren
auch Exklusionsabhängigkeiten müssen erstellt werden!
z.B. Assistent $\cap$ Professor = $\emptyset$
@@ -0,0 +1,46 @@
![[3-Rel.pdf]]
![[Pasted image 20260722144852.png]]
Wertebereiche = Domänen = Atomare Datentypen
![[Pasted image 20260722145754.png]]
Relation = Ausprägung eines Schemas
Datenbankschema = Menge von Schemata
Datenbank = Menge aller gegenwärtigen Relationen
Schema = Bauplan - Datenbank = aktueller Gesamtzustand
Tupel-Projektion
![[Pasted image 20260722150147.png]]
isolieren relevanter Teilinformationen
Wir wählen bestimmte Spalten einer Zeile aus
Schlüsselkandidat : eine MINIMALE menge S eines Schemas R deren Werte den Tupel EINDEUTIG identifizieren
Primärschlüssel : gewählter Schlüsselkandidat
[[Intrarelationale Abhängigkeiten]]
[[Intrarelationale Abhängigkeiten]]
### Fremdschlüssel
Referenziert einen Primärschlüssel einer anderen Tabelle
### ER-Modell zu Relationalem Modell
Starke Entities werden zu Relationen
Attribute werden zu Spalten
Primärschlüssel bleibt Primärschlüssel
![[Pasted image 20260722153519.png]]
Zusammengesetzte Attribute werden aufgeteilt und bekommen eigene Spalten
außer wenn es eh nie zerlegt ausgewertet wird
mehrwertige Attribute bekommen eigene Relation
![[Pasted image 20260722153712.png]]
n:m Beziehungen bekommen eigene Relation
![[Pasted image 20260722154305.png]]
1:n Beziehungen entweder eigene Relation oder in Relation der n Seite integrieren
![[Pasted image 20260722154629.png]]
1:1 Beziehung Verschmelzen oder Fremdschlüssel
![[Pasted image 20260722154712.png]]
Rekursive Beziehungen
1:1 / 1:n
+38
View File
@@ -0,0 +1,38 @@
{
"nodes":[
{"id":"71880b99a91c67bd","type":"text","text":"13.08 [[Datenbanken und Informationssysteme]]","x":-540,"y":-280,"width":250,"height":60,"color":"1"},
{"id":"d9dae797ebe948cd","type":"text","text":"20.08 Quantum Computing","x":-540,"y":-200,"width":250,"height":60,"color":"1"},
{"id":"f1808e4ab000c548","type":"text","text":"27.08 MaLo","x":-540,"y":-120,"width":250,"height":60,"color":"1"},
{"id":"3c8b84526662b594","type":"text","text":"16.09 MIT","x":-540,"y":-40,"width":250,"height":60,"color":"1"},
{"id":"039d99cbeaa8bacd","type":"text","text":"23.09 EmSys","x":-540,"y":40,"width":250,"height":60,"color":"1"},
{"id":"60d4af65fb43a687","type":"text","text":"25.09 Stocha","x":-540,"y":120,"width":250,"height":60,"color":"1"},
{"id":"03f4465ffcf1d9fa","type":"text","text":"22.07 - 29.07","x":-200,"y":-280,"width":140,"height":60,"color":"3"},
{"id":"39e9857d626dc5bf","type":"text","text":"30.07 - 05.08","x":-200,"y":-200,"width":140,"height":60,"color":"3"},
{"id":"afc80995e1d2cc43","type":"text","text":"06.08 - 20.08","x":-200,"y":-120,"width":140,"height":60,"color":"3"},
{"id":"0c3a7d9fc441e6a1","type":"text","text":"21.08 - 27.08","x":-200,"y":-40,"width":140,"height":60,"color":"3"},
{"id":"0ee51e9aebc3d818","type":"text","text":"28.08 - 11.09","x":-200,"y":40,"width":140,"height":60,"color":"3"},
{"id":"3b0c086a17329c0a","type":"text","text":"12.09 - 24.09","x":-200,"y":120,"width":140,"height":60,"color":"3"},
{"id":"bee8484892d1409c","type":"text","text":"","x":0,"y":-280,"width":140,"height":60,"color":"4"},
{"id":"0a635fdaf64bc22d","type":"text","text":"","x":0,"y":-200,"width":140,"height":60,"color":"4"},
{"id":"d5ded2115fd31993","type":"text","text":"","x":0,"y":-120,"width":140,"height":60,"color":"4"},
{"id":"0ec16c554bfaa7e9","type":"text","text":"","x":0,"y":-40,"width":140,"height":60,"color":"4"},
{"id":"ca3de096ea9269e8","type":"text","text":"","x":0,"y":40,"width":140,"height":60,"color":"4"},
{"id":"c052e34046983ae6","type":"text","text":"","x":0,"y":120,"width":140,"height":60,"color":"4"},
{"id":"e74425550b43bf28","type":"text","text":"Ungefähre Lernzeiten","x":-200,"y":-380,"width":140,"height":67},
{"id":"a8b3bf4c3bdccbf9","type":"text","text":"Tatsächliche Lernzeiten","x":0,"y":-380,"width":140,"height":67}
],
"edges":[
{"id":"1da7a77dff461800","fromNode":"71880b99a91c67bd","fromSide":"right","toNode":"03f4465ffcf1d9fa","toSide":"left"},
{"id":"788b860464a21e1e","fromNode":"d9dae797ebe948cd","fromSide":"right","toNode":"39e9857d626dc5bf","toSide":"left"},
{"id":"38fc551c57bccf60","fromNode":"f1808e4ab000c548","fromSide":"right","toNode":"afc80995e1d2cc43","toSide":"left"},
{"id":"8dac71e371406da3","fromNode":"3c8b84526662b594","fromSide":"right","toNode":"0c3a7d9fc441e6a1","toSide":"left"},
{"id":"c2017f87eabffa52","fromNode":"039d99cbeaa8bacd","fromSide":"right","toNode":"0ee51e9aebc3d818","toSide":"left"},
{"id":"38203538ac18d22e","fromNode":"60d4af65fb43a687","fromSide":"right","toNode":"3b0c086a17329c0a","toSide":"left"},
{"id":"a83ecc24c2914893","fromNode":"03f4465ffcf1d9fa","fromSide":"right","toNode":"bee8484892d1409c","toSide":"left"},
{"id":"a11a2eb874a8d449","fromNode":"39e9857d626dc5bf","fromSide":"right","toNode":"0a635fdaf64bc22d","toSide":"left"},
{"id":"74f0e35bd1291b45","fromNode":"afc80995e1d2cc43","fromSide":"right","toNode":"d5ded2115fd31993","toSide":"left"},
{"id":"8a320dd8867a7d10","fromNode":"0c3a7d9fc441e6a1","fromSide":"right","toNode":"0ec16c554bfaa7e9","toSide":"left"},
{"id":"fd26af14f8eee9b9","fromNode":"0ee51e9aebc3d818","fromSide":"right","toNode":"ca3de096ea9269e8","toSide":"left"},
{"id":"aeb4280051d17429","fromNode":"3b0c086a17329c0a","fromSide":"right","toNode":"c052e34046983ae6","toSide":"left"}
]
}