<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Datenbank Archive - CEOsBay</title>
	<atom:link href="https://ceosbay.com/tag/datenbank/feed/" rel="self" type="application/rss+xml" />
	<link>https://ceosbay.com/tag/datenbank/</link>
	<description>It&#039;s all about Tech</description>
	<lastBuildDate>Fri, 13 Oct 2023 04:49:12 +0000</lastBuildDate>
	<language>de</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9.1</generator>

<image>
	<url>https://i0.wp.com/ceosbay.com/wp-content/uploads/2022/11/image.jpg?fit=32%2C32&#038;ssl=1</url>
	<title>Datenbank Archive - CEOsBay</title>
	<link>https://ceosbay.com/tag/datenbank/</link>
	<width>32</width>
	<height>32</height>
</image> 
<site xmlns="com-wordpress:feed-additions:1">211828771</site>	<item>
		<title>PostgreSQL &#8211; Der flexible Open-Source Datenbankmotor</title>
		<link>https://ceosbay.com/2023/10/13/postgresql-der-flexible-open-source-datenbankmotor/</link>
					<comments>https://ceosbay.com/2023/10/13/postgresql-der-flexible-open-source-datenbankmotor/#respond</comments>
		
		<dc:creator><![CDATA[CEO]]></dc:creator>
		<pubDate>Fri, 13 Oct 2023 03:55:00 +0000</pubDate>
				<category><![CDATA[Datenbanken]]></category>
		<category><![CDATA[Datenwissenschaft]]></category>
		<category><![CDATA[Informationstechnologie]]></category>
		<category><![CDATA[Open Source]]></category>
		<category><![CDATA[Technologie]]></category>
		<category><![CDATA[Website]]></category>
		<category><![CDATA[Abfrageoptimierung]]></category>
		<category><![CDATA[Abfrageplan]]></category>
		<category><![CDATA[ACID]]></category>
		<category><![CDATA[Aggregation]]></category>
		<category><![CDATA[Analytische Anwendungen]]></category>
		<category><![CDATA[Asynchronous Commit]]></category>
		<category><![CDATA[Berkeley]]></category>
		<category><![CDATA[Bitemporal Data]]></category>
		<category><![CDATA[Commit]]></category>
		<category><![CDATA[Concurrency Control]]></category>
		<category><![CDATA[Constraints]]></category>
		<category><![CDATA[Continuous Archiving]]></category>
		<category><![CDATA[Datenabfrage]]></category>
		<category><![CDATA[Datenarchitektur]]></category>
		<category><![CDATA[Datenbank]]></category>
		<category><![CDATA[Datenbank-Backup]]></category>
		<category><![CDATA[Datenbank-Caching]]></category>
		<category><![CDATA[Datenbank-Clustering]]></category>
		<category><![CDATA[Datenbank-Indexierung]]></category>
		<category><![CDATA[Datenbank-Join]]></category>
		<category><![CDATA[Datenbank-Logs]]></category>
		<category><![CDATA[Datenbank-Mirroring]]></category>
		<category><![CDATA[Datenbank-Monitoring]]></category>
		<category><![CDATA[Datenbank-Partitionierung]]></category>
		<category><![CDATA[Datenbank-Pooling]]></category>
		<category><![CDATA[Datenbank-Snapshot]]></category>
		<category><![CDATA[Datenbankmanagement]]></category>
		<category><![CDATA[Datenbankschema]]></category>
		<category><![CDATA[Datenbanktreiber]]></category>
		<category><![CDATA[Datenbankverbindung]]></category>
		<category><![CDATA[Datenintegrität]]></category>
		<category><![CDATA[Datenkompression]]></category>
		<category><![CDATA[Datenmigration]]></category>
		<category><![CDATA[Datenmodellierung]]></category>
		<category><![CDATA[Datenoptimierung]]></category>
		<category><![CDATA[Datenredundanz]]></category>
		<category><![CDATA[Datensicherheit]]></category>
		<category><![CDATA[Denormalisierung]]></category>
		<category><![CDATA[Embedded Systeme]]></category>
		<category><![CDATA[Erweiterbarkeit]]></category>
		<category><![CDATA[ETL-Prozesse]]></category>
		<category><![CDATA[Failover]]></category>
		<category><![CDATA[Foreign Data Wrapper]]></category>
		<category><![CDATA[Foreign Key]]></category>
		<category><![CDATA[Full-Text Search]]></category>
		<category><![CDATA[GIS]]></category>
		<category><![CDATA[Hochverfügbarkeit]]></category>
		<category><![CDATA[JSON]]></category>
		<category><![CDATA[Large Objects]]></category>
		<category><![CDATA[Listenansicht]]></category>
		<category><![CDATA[Load Balancing]]></category>
		<category><![CDATA[Locking]]></category>
		<category><![CDATA[Logical Replication]]></category>
		<category><![CDATA[MVCC]]></category>
		<category><![CDATA[Nested Transactions]]></category>
		<category><![CDATA[Normalisierung]]></category>
		<category><![CDATA[NoSQL-Integration]]></category>
		<category><![CDATA[Objektrelationales Mapping]]></category>
		<category><![CDATA[OLAP]]></category>
		<category><![CDATA[OLTP]]></category>
		<category><![CDATA[Open-Source]]></category>
		<category><![CDATA[Parallel Query Execution]]></category>
		<category><![CDATA[Partitionierung]]></category>
		<category><![CDATA[Performance]]></category>
		<category><![CDATA[Performance Tuning]]></category>
		<category><![CDATA[Point-in-Time Recovery]]></category>
		<category><![CDATA[PostGIS]]></category>
		<category><![CDATA[POSTGRES]]></category>
		<category><![CDATA[PostgreSQL]]></category>
		<category><![CDATA[Primary Key]]></category>
		<category><![CDATA[psql]]></category>
		<category><![CDATA[Relational]]></category>
		<category><![CDATA[Replikation]]></category>
		<category><![CDATA[Restore]]></category>
		<category><![CDATA[Rollback]]></category>
		<category><![CDATA[Row-Level Security]]></category>
		<category><![CDATA[Sequences]]></category>
		<category><![CDATA[Skalierbarkeit]]></category>
		<category><![CDATA[SQL]]></category>
		<category><![CDATA[SQL-Standard]]></category>
		<category><![CDATA[Stored Procedures]]></category>
		<category><![CDATA[Streaming Replication]]></category>
		<category><![CDATA[Subqueries]]></category>
		<category><![CDATA[Tabelle]]></category>
		<category><![CDATA[Tablespaces]]></category>
		<category><![CDATA[Transaktionen]]></category>
		<category><![CDATA[Trigger]]></category>
		<category><![CDATA[Upsert]]></category>
		<category><![CDATA[Vakuum]]></category>
		<category><![CDATA[Webanwendungen]]></category>
		<guid isPermaLink="false">https://ceosbay.com/?p=2256</guid>

					<description><![CDATA[<p>PostgreSQL gehört zu den leistungsstärksten Open-Source-Datenbanksystemen auf dem Markt. Ursprünglich als POSTGRES in den 1980er Jahren an der University of California, Berkeley, entwickelt, hat es sich ständig weiterentwickelt und bietet heute viele moderne Funktionen, einschließlich &#8230;</p>
<p>Der Beitrag <a href="https://ceosbay.com/2023/10/13/postgresql-der-flexible-open-source-datenbankmotor/">PostgreSQL &#8211; Der flexible Open-Source Datenbankmotor</a> erschien zuerst auf <a href="https://ceosbay.com">CEOsBay</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>PostgreSQL gehört zu den leistungsstärksten <a href="https://ceosbay.com/2022/11/16/erklaerung-open-source/">Open-Source</a>-Datenbanksystemen auf dem Markt. Ursprünglich als POSTGRES in den 1980er Jahren an der University of California, Berkeley, entwickelt, hat es sich ständig weiterentwickelt und bietet heute viele moderne Funktionen, einschließlich MVCC (Multi-Version Concurrency Control) und Unterstützung für <a href="https://ceosbay.com/2023/03/14/erklaerung-json/">JSON</a>-Datenstrukturen.</p>



<h3 class="wp-block-heading">Die Geschichte</h3>



<p>Die Anfänge liegen in einem Forschungsprojekt der Universität Berkeley. Mit der Zeit fand die Software dank ihrer Robustheit und Skalierbarkeit große Anerkennung in der Entwicklergemeinschaft. 1996 erfolgte die Umbenennung in PostgreSQL, um die <a href="https://ceosbay.com/2022/10/29/structured-query-language-sql/">SQL</a>-Unterstützung des Systems hervorzuheben. Seitdem haben zahlreiche Freiwillige und Organisationen dazu beigetragen, es zu einem der fortschrittlichsten Datenbanksysteme zu machen.</p>



<h3 class="wp-block-heading">Erste Schritte</h3>



<p>Für den Einstieg empfiehlt es sich, es von der <a href="https://www.postgresql.org">offiziellen Webseite</a> herunterzuladen und zu installieren. Dank einer aktiven Gemeinschaft stehen viele Tutorials und Dokumentationen zur Verfügung, um Anfängern den Einstieg zu erleichtern. Mit dem Befehlszeilen-Tool <code>psql</code> kann man direkt mit der Datenbank interagieren und <a href="https://ceosbay.com/2022/10/29/structured-query-language-sql/">SQL</a>-Befehle ausführen.</p>



<h3 class="wp-block-heading">Beispiele für den Einsatz</h3>



<h4 class="wp-block-heading">Es zeigt seine Stärken in verschiedenen Einsatzgebieten:</h4>



<ol class="wp-block-list">
<li><strong>Webanwendungen:</strong> Viele moderne Web-Plattformen, wie zum Beispiel Content-Management-Systeme oder E-Commerce-Websites, nutzen es als Backend-Datenbanksystem.</li>



<li><strong>Geografische Informationssysteme (GIS):</strong> Mit der Erweiterung PostGIS erweitert es seine Fähigkeiten um geospatiale Datenverarbeitung.</li>



<li><strong>Analytische Anwendungen:</strong> Es unterstützt große Datensätze und komplexe Abfragen, wodurch es sich hervorragend für Business Intelligence und Data Warehousing eignet.</li>



<li><strong>Embedded Systeme:</strong> Aufgrund seiner Flexibilität und Skalierbarkeit lässt es sich auch in kleineren, eingebetteten Systemen verwenden.</li>
</ol>



<p><strong>Hier ein kurzes Beispiel, wie man eine Tabelle erstellt und Daten hinzufügt:</strong></p>



<pre class="wp-block-code"><code>CREATE TABLE mitarbeiter (
    id SERIAL PRIMARY KEY,
    vorname VARCHAR(100),
    nachname VARCHAR(100),
    geburtsdatum DATE
);

INSERT INTO mitarbeiter (vorname, nachname, geburtsdatum)
VALUES ('Anja', 'Maier', '1990-12-15'), ('Max', 'Mustermann', '1985-06-23');</code></pre>



<h3 class="wp-block-heading">Vorteile von PostgreSQL:</h3>



<ol class="wp-block-list">
<li><strong>Open Source</strong>: Es ist kostenlos und bietet gleichzeitig eine robuste Funktionsvielfalt.</li>



<li><strong>Erweiterbarkeit</strong>: Nutzer können eigene Datentypen, Funktionen und mehr erstellen.</li>



<li><strong>Kompatibilität</strong>: Es unterstützt viele Programmiersprachen und Betriebssysteme.</li>



<li><strong>Concurrency</strong>: Durch MVCC können viele Nutzer gleichzeitig auf die Datenbank zugreifen, ohne Konflikte zu verursachen.</li>



<li><strong>PostGIS</strong>: Diese Erweiterung macht es zu einer der besten Datenbanken für geospatiale Daten.</li>



<li><strong>ACID-Compliance</strong>: Garantiert zuverlässige Transaktionen und Datenintegrität.</li>
</ol>



<h3 class="wp-block-heading">Nachteile von PostgreSQL:</h3>



<ol class="wp-block-list">
<li><strong>Performance</strong>: In einigen Fällen kann es langsamer sein als kommerzielle Datenbanken wie Oracle oder proprietäre Systeme wie Microsoft SQL Server.</li>



<li><strong>Verwaltung</strong>: Kann komplexer sein als andere Systeme, insbesondere für Anfänger.</li>



<li><strong>Replikation</strong>: Frühere Versionen hatten Einschränkungen bei der Replikation, obwohl moderne Versionen diese Probleme größtenteils behoben haben.</li>
</ol>



<h3 class="wp-block-heading">Vergleich mit anderen Datenbanksystemen:</h3>



<ul class="wp-block-list">
<li><strong>MySQL</strong>:
<ul class="wp-block-list">
<li><strong>Lizenzierung</strong>: Beide sind <a href="https://ceosbay.com/2022/11/16/erklaerung-open-source/">Open Source</a>, aber <a href="https://ceosbay.com/2022/10/31/ubuntu-linux-starten-und-nutzen-mysql-server/">MySQL</a> wird von Oracle kontrolliert, während PostgreSQL eine echte Gemeinschaftsentwicklung ist.</li>



<li><strong>Erweiterbarkeit</strong>: PostgreSQL ist in Bezug auf Funktionen und erweiterbare Datenbankobjekte flexibler.</li>



<li><strong>Performance</strong>: <a href="https://ceosbay.com/2022/10/31/ubuntu-linux-starten-und-nutzen-mysql-server/">MySQL</a> könnte in einigen Fällen schneller sein, besonders wenn es um Read-Heavy-Operationen geht.</li>
</ul>
</li>



<li><strong>Microsoft SQL Server</strong>:
<ul class="wp-block-list">
<li><strong>Lizenzierung</strong>: SQL Server ist proprietär und kostenpflichtig, während PostgreSQL <a href="https://ceosbay.com/2022/11/16/erklaerung-open-source/">Open Source</a> ist.</li>



<li><strong>Betriebssystem</strong>: PostgreSQL ist plattformunabhängig, während SQL Server hauptsächlich auf Windows läuft (obwohl es eine <a href="https://ceosbay.com/2022/11/22/erklaerung-linux/">Linux</a>-Version gibt).</li>



<li><strong>Tooling</strong>: SQL Server bietet integrierte BI-Tools, während PostgreSQL sich auf Drittanbieter-Tools verlässt.</li>
</ul>
</li>



<li><strong>Oracle</strong>:
<ul class="wp-block-list">
<li><strong>Kosten</strong>: Oracle kann sehr teuer sein, während PostgreSQL kostenlos ist.</li>



<li><strong>Funktionsumfang</strong>: Beide Systeme bieten einen reichen Funktionsumfang, aber Oracle hat einige fortschrittliche Features, die in PostgreSQL nicht nativ vorhanden sind.</li>



<li><strong>Community</strong>: PostgreSQL profitiert von einer aktiven <a href="https://ceosbay.com/2022/11/16/erklaerung-open-source/">Open-Source</a>-Community, während Oracle-Updates und -Patches von der Firma Oracle kommen.</li>
</ul>
</li>
</ul>



<h3 class="wp-block-heading">Fazit</h3>



<p>PostgreSQL hat sich als eines der zuverlässigsten und flexibelsten Datenbanksysteme etabliert. Egal, ob für kleine Projekte oder komplexe Unternehmensanwendungen, es bietet leistungsstarke Funktionen, die den Anforderungen moderner Anwendungen gerecht werden.</p>



<p></p>
<p>Der Beitrag <a href="https://ceosbay.com/2023/10/13/postgresql-der-flexible-open-source-datenbankmotor/">PostgreSQL &#8211; Der flexible Open-Source Datenbankmotor</a> erschien zuerst auf <a href="https://ceosbay.com">CEOsBay</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://ceosbay.com/2023/10/13/postgresql-der-flexible-open-source-datenbankmotor/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">2256</post-id>	</item>
		<item>
		<title>CRUD &#8211; Kernprinzipien für effiziente Datenmanipulation und solide Anwendungsarchitektur</title>
		<link>https://ceosbay.com/2023/04/03/erklaerung-crud/</link>
					<comments>https://ceosbay.com/2023/04/03/erklaerung-crud/#respond</comments>
		
		<dc:creator><![CDATA[CEO]]></dc:creator>
		<pubDate>Mon, 03 Apr 2023 19:33:47 +0000</pubDate>
				<category><![CDATA[Allgemein]]></category>
		<category><![CDATA[Datenbanken]]></category>
		<category><![CDATA[DevOps]]></category>
		<category><![CDATA[Entwicklung]]></category>
		<category><![CDATA[Finanzen]]></category>
		<category><![CDATA[Internet]]></category>
		<category><![CDATA[Programmieren]]></category>
		<category><![CDATA[Soziale Medien]]></category>
		<category><![CDATA[Website]]></category>
		<category><![CDATA[Aktualisieren]]></category>
		<category><![CDATA[API]]></category>
		<category><![CDATA[Banken]]></category>
		<category><![CDATA[Client]]></category>
		<category><![CDATA[Commerce]]></category>
		<category><![CDATA[Create]]></category>
		<category><![CDATA[CRUD]]></category>
		<category><![CDATA[Daten]]></category>
		<category><![CDATA[Datenbank]]></category>
		<category><![CDATA[Datenmengen]]></category>
		<category><![CDATA[Delete]]></category>
		<category><![CDATA[E]]></category>
		<category><![CDATA[Kommerz]]></category>
		<category><![CDATA[Language]]></category>
		<category><![CDATA[Lesen]]></category>
		<category><![CDATA[Löschen]]></category>
		<category><![CDATA[Query]]></category>
		<category><![CDATA[R]]></category>
		<category><![CDATA[Rest]]></category>
		<category><![CDATA[Restful]]></category>
		<category><![CDATA[SQL]]></category>
		<category><![CDATA[Update]]></category>
		<category><![CDATA[www]]></category>
		<guid isPermaLink="false">https://ceosbay.com/?p=1316</guid>

					<description><![CDATA[<p>CRUD ist eine Abkürzung für Create, Read, Update und Delete, was man in der Regel im Zusammenhang mit Datenbanken und Softwareentwicklung verwendet. Diese vier Operationen sind die grundlegenden Funktionen, die eine Anwendung benötigt, um Daten &#8230;</p>
<p>Der Beitrag <a href="https://ceosbay.com/2023/04/03/erklaerung-crud/">CRUD &#8211; Kernprinzipien für effiziente Datenmanipulation und solide Anwendungsarchitektur</a> erschien zuerst auf <a href="https://ceosbay.com">CEOsBay</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>CRUD ist eine Abkürzung für Create, Read, Update und Delete, was man in der Regel im Zusammenhang mit Datenbanken und Softwareentwicklung verwendet. Diese vier Operationen sind die grundlegenden Funktionen, die eine Anwendung benötigt, um Daten in einer Datenbank zu verwalten:</p>



<ul class="wp-block-list">
<li>Create: Erstellt einen neuen Datensatz in der Datenbank.</li>



<li>Read: Liest einen Datensatz aus der Datenbank.</li>



<li>Update: Ändert einen vorhandenen Datensatz in der Datenbank.</li>



<li>Delete: Löscht einen Datensatz aus der Datenbank.</li>
</ul>



<p>CRUD verwendet man häufig in Webanwendungen, um Benutzereingaben zu verarbeiten und Daten in einer Datenbank zu speichern, abzurufen, zu aktualisieren oder zu löschen. Es ist ein grundlegender Bestandteil vieler Anwendungen und ein wichtiger Teil der Softwareentwicklung.</p>



<h3 class="wp-block-heading">Kurze Zeitreise</h3>



<p>Die Idee von CRUD geht zurück auf die Anfänge der Datenbanktechnologie in den 70er Jahren. Zu dieser Zeit gestalteten sich Datenbanksysteme noch sehr rudimentär und man hat sie hauptsächlich für die Verwaltung von Geschäftsdaten verwendet. Die grundlegenden CRUD-Operationen waren bereits zu dieser Zeit vorhanden, wenn auch in einer trivialeren Form.</p>



<p>In den 80er Jahren gewannen relationale Datenbanksysteme immer mehr an Popularität, was die Entwicklung von Standard-Sprachen wie <a href="https://ceosbay.com/2022/10/29/structured-query-language-sql/" target="_blank" rel="noreferrer noopener">SQL</a> (<a href="https://ceosbay.com/2022/10/29/structured-query-language-sql/" target="_blank" rel="noreferrer noopener">Structured Query Language</a>) förderte. Diese Sprachen boten eine standardisierte Möglichkeit, Daten in einer Datenbank zu manipulieren, einschließlich der CRUD-Operationen.</p>



<p>Mit dem Aufkommen des World Wide Web und der Entwicklung von Webanwendungen in den 90er Jahren stieg die Bedeutung von CRUD signifikant an. Webanwendungen benötigen eine Möglichkeit, Daten zu speichern und abzurufen, um interaktive Funktionen bereitzustellen. Die Standardisierung von https und die Entwicklung von <a href="https://ceosbay.com/2022/12/23/erklaerung-rest/" target="_blank" rel="noreferrer noopener">REST</a>-basierten Architekturen haben CRUD zu einem wichtigen Konzept für die Entwicklung von Webanwendungen gemacht.</p>



<p>Heute ist es ein grundlegendes Konzept in der Softwareentwicklung und kann in einer Vielzahl von Anwendungen und Technologien Verwendung finden. Von relationalen Datenbanksystemen und RESTful-Webservices bis hin zu NoSQL-Datenbanken und Frontend-<a href="https://ceosbay.com/2022/11/14/erklaerung-frameworks/" target="_blank" rel="noreferrer noopener">Frameworks</a>. Man erwartet, dass es auch in Zukunft eine wichtige Rolle spielt, da Datenverarbeitung und -manipulation immer wichtig ist.</p>



<h3 class="wp-block-heading">CRUD im Kontext von REST</h3>



<p>Im Kontext von <a href="https://ceosbay.com/2022/12/23/erklaerung-rest/" target="_blank" rel="noreferrer noopener">REST</a> (<a href="https://ceosbay.com/2022/12/23/erklaerung-rest/" target="_blank" rel="noreferrer noopener">Representational State Transfer</a>) bezieht es sich auf die grundlegenden https-Methoden, die man für die Interaktionen mit Ressourcen verwendet:</p>



<ul class="wp-block-list">
<li>Create: Die POST-Methode verwendet man um eine neue Ressource zu erstellen.</li>



<li>Read: Die GET-Methode verwendet man um eine vorhandene Ressource zu lesen.</li>



<li>Update: Die PUT-Methode verwendet man um eine vorhandene Ressource vollständig zu aktualisieren und die PATCH-Methode um Teile einer Ressource zu aktualisieren.</li>



<li>Delete: Die DELETE-Methode verwendet man um eine vorhandene Ressource zu löschen.</li>
</ul>



<p>Diese Methoden entsprechen den CRUD-Operationen und bilden die Grundlage für die Interaktion mit RESTful-Webservices. Wenn man eine RESTful-API erstellt, sollte man die https-Methoden immer so implementieren, dass sie den CRUD-Operationen entsprechen und somit eine standardisierte und intuitive Schnittstelle für die Client-Software bereitstellen.</p>



<h3 class="wp-block-heading">CRUD außerhalb von Datenbanken und Softwareentwicklung?</h3>



<p>CRUD findet auch Anwendung in anderen Bereichen als der Datenbank- und Softwareentwicklung. Vor allem, wenn es generell um die Verwaltung von Informationen oder Objekten geht.</p>



<h3 class="wp-block-heading">Hier noch einige Beispiele für die Anwendungsgebiete von CRUD</h3>



<ul class="wp-block-list">
<li>Content Management Systeme (CMS): CMS-Plattformen wie WordPress oder Drupal verwenden CRUD, um Inhalte wie Artikel, Seiten oder Medien zu verwalten und zu bearbeiten.</li>



<li>E-Commerce-Plattformen: E-Commerce-Websites verwenden CRUD, um Produkte zu erstellen, zu lesen, zu aktualisieren und zu löschen.</li>



<li>Projektmanagement-Tools: Man nutzt es, um Projekte, Aufgaben und Aufgabenlisten in Projektmanagement-Tools wie Trello oder Asana zu verwalten.</li>



<li>IoT (Internet der Dinge): Geräte im Internet der Dinge erzeugen häufig große Datenmengen, die man speichern und abrufen muss. Man verwendet es daher, um diese Daten in einer Datenbank zu speichern und zu manipulieren.</li>



<li>Medizinische Datensätze: In der Gesundheitsbranche verwendet man CRUD-Operationen, um medizinische Datensätze zu erstellen, zu aktualisieren und zu löschen, z.B. Patientenakten, Diagnosen und medizinische Tests.</li>
</ul>



<h3 class="wp-block-heading">Fazit</h3>



<p>Zusammenfassend lässt sich sagen, dass CRUD ein grundlegendes Konzept in der Datenbank- und Softwareentwicklung ist. Es eignet sich hervorragend für die Verwaltung von Daten in einer Datenbank. Auch für die Interaktion mit einer Ressource über eine RESTful-API Schnittstelle. Die vier CRUD-Operationen (Create, Read, Update und Delete) sind die grundlegenden Funktionen. Die benötigt eine Anwendung immer. Sowohl um Daten zu verwalten als auch zu manipulieren.</p>



<p>CRUD hat in den letzten Jahrzehnten eine wichtige Rolle in der Entwicklung von Webanwendungen, CMS, E-Commerce-Plattformen, Projektmanagement-Tools, IoT und der Gesundheitsbranche gespielt. Dies ändert sich voraussichtlich auch voraussichtlich nicht. Lediglich die Geschwindigkeit als auch die Effizient werden sich der Technologie voraussichtlich anpassen. Es ist ein wichtiger Bestandteil der meisten Anwendungen und ein grundlegendes Konzept, welches jeder Entwickler verstehen sollte.</p>
<p>Der Beitrag <a href="https://ceosbay.com/2023/04/03/erklaerung-crud/">CRUD &#8211; Kernprinzipien für effiziente Datenmanipulation und solide Anwendungsarchitektur</a> erschien zuerst auf <a href="https://ceosbay.com">CEOsBay</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://ceosbay.com/2023/04/03/erklaerung-crud/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">1316</post-id>	</item>
		<item>
		<title>Spring Boot &#8211; Schnell und einfach Webanwendungen erstellen</title>
		<link>https://ceosbay.com/2023/03/22/erklaerung-spring-boot/</link>
					<comments>https://ceosbay.com/2023/03/22/erklaerung-spring-boot/#respond</comments>
		
		<dc:creator><![CDATA[CEO]]></dc:creator>
		<pubDate>Wed, 22 Mar 2023 17:12:00 +0000</pubDate>
				<category><![CDATA[Agile]]></category>
		<category><![CDATA[Big-Data]]></category>
		<category><![CDATA[Cloud]]></category>
		<category><![CDATA[Datenbanken]]></category>
		<category><![CDATA[DevOps]]></category>
		<category><![CDATA[Entwicklung]]></category>
		<category><![CDATA[Internet]]></category>
		<category><![CDATA[Open Source]]></category>
		<category><![CDATA[Programmieren]]></category>
		<category><![CDATA[Testing]]></category>
		<category><![CDATA[Website]]></category>
		<category><![CDATA[Abhängigkeiten]]></category>
		<category><![CDATA[Applications]]></category>
		<category><![CDATA[Apps]]></category>
		<category><![CDATA[Automation]]></category>
		<category><![CDATA[Boot]]></category>
		<category><![CDATA[Container]]></category>
		<category><![CDATA[Datenbank]]></category>
		<category><![CDATA[Dependencies]]></category>
		<category><![CDATA[Dependency]]></category>
		<category><![CDATA[Frame]]></category>
		<category><![CDATA[Framework]]></category>
		<category><![CDATA[Frei]]></category>
		<category><![CDATA[Freie]]></category>
		<category><![CDATA[Injection]]></category>
		<category><![CDATA[Injizieren]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[JVM]]></category>
		<category><![CDATA[Lesitung]]></category>
		<category><![CDATA[Microservices]]></category>
		<category><![CDATA[Modular]]></category>
		<category><![CDATA[Objekte]]></category>
		<category><![CDATA[Open]]></category>
		<category><![CDATA[Optionated]]></category>
		<category><![CDATA[Performance]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[Source]]></category>
		<category><![CDATA[Spring]]></category>
		<category><![CDATA[Test]]></category>
		<category><![CDATA[Tool]]></category>
		<category><![CDATA[Webanwendungen]]></category>
		<category><![CDATA[Work]]></category>
		<guid isPermaLink="false">https://ceosbay.com/?p=1057</guid>

					<description><![CDATA[<p>Java Spring Framework ist ein beliebtes Open-Source&#8211;Framework zur Erstellung eigenständiger, produktionsreifer Anwendungen, die auf der Java Virtual Machine (JVM) laufen. Spring Boot ist ein Tool, dass die Entwicklung von Webanwendungen und Microservices mit Spring Framework &#8230;</p>
<p>Der Beitrag <a href="https://ceosbay.com/2023/03/22/erklaerung-spring-boot/">Spring Boot &#8211; Schnell und einfach Webanwendungen erstellen</a> erschien zuerst auf <a href="https://ceosbay.com">CEOsBay</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p><a href="https://ceosbay.com/2023/03/16/erklaerung-java/" target="_blank" rel="noreferrer noopener">Java</a> Spring <a href="https://ceosbay.com/2022/11/14/erklaerung-frameworks/" target="_blank" rel="noreferrer noopener">Framework</a> ist ein beliebtes <a href="https://ceosbay.com/2022/11/16/erklaerung-open-source/" target="_blank" rel="noreferrer noopener">Open-Source</a>&#8211;<a href="https://ceosbay.com/2022/11/14/erklaerung-frameworks/" target="_blank" rel="noreferrer noopener">Framework</a> zur Erstellung eigenständiger, produktionsreifer Anwendungen, die auf der <a href="https://ceosbay.com/2023/03/16/erklaerung-java/" target="_blank" rel="noreferrer noopener">Java</a> Virtual Machine (JVM) laufen. Spring Boot ist ein Tool, dass die Entwicklung von Webanwendungen und Microservices mit Spring Framework durch drei Kernfunktionen beschleunigt und einfacher macht.</p>



<ol class="wp-block-list" type="1">
<li>Autokonfiguration</li>



<li>Ein Opinionated-Konfigurationsansatz</li>



<li>Die Fähigkeit, eigenständige Anwendungen zu erstellen</li>
</ol>



<p>Das Zusammenspiel dieser Funktionen ermöglicht die Installation einer Spring basierten Anwendung mit minimalem Konfigurations- bzw. Einrichtungsaufwand, worauf ich nachfolgend näher eingehe. Mit einem breiten Spektrum an Funktionalitäten ist es eine ganzheitliche Lösung, wobei die Entkopplung der Applikationskomponenten im Vordergrund steht.</p>



<h3 class="wp-block-heading">Was ist das Spring Framework und was stellt Spring Boot damit an?</h3>



<p>Ein Spring <a href="https://ceosbay.com/2022/11/14/erklaerung-frameworks/" target="_blank" rel="noreferrer noopener">Framework</a> bietet eine Abhängigkeitsinjektionsfunktion, mit der Objekte ihre eigenen Abhängigkeiten definieren können.Der Spring-Container injiziert diese nachfolgend. So kann man als Entwickler modulare Anwendungen erstellen, die aus losen verbundenen Komponenten bestehen. Diese eignen sich ideal für Microservices und verteilte Netzanwendungen.</p>



<p>Das Spring <a href="https://ceosbay.com/2022/11/14/erklaerung-frameworks/" target="_blank" rel="noreferrer noopener">Framework</a> bietet auch die integrierte Unterstützung für typische Aufgaben, die eine Anwendung ausführen muss. Beispiele hierfür sind Datenbindung, Typumsetzung, Prüfung und Bewertung, Ausnahmebehandlung, Ressourcen- und Ereignismanagement und vielem mehr. Darüber hinaus lässt es sich mit verschiedenen <a href="https://ceosbay.com/2023/03/16/erklaerung-java/" target="_blank" rel="noreferrer noopener">Java</a> EE-Technologien wie RMI (Remote Method Invocation), AMQP (Advanced Message Queuing Protocol), <a href="https://ceosbay.com/2023/03/16/erklaerung-java/" target="_blank" rel="noreferrer noopener">Java</a> Web Services und anderen integrieren. Alles in allem liefert das Spring <a href="https://ceosbay.com/2022/11/14/erklaerung-frameworks/" target="_blank" rel="noreferrer noopener">Framework</a> Entwicklern alle Tools und Funktionen, die man benötigt, um lose verbundene, plattformunabhängige <a href="https://ceosbay.com/2023/03/16/erklaerung-java/" target="_blank" rel="noreferrer noopener">Java</a> EE-Anwendungen zu erstellen, die man in den verschiedensten Umgebungen ausführen kann. So leistungsfähig und umfassend das Spring <a href="https://ceosbay.com/2022/11/14/erklaerung-frameworks/" target="_blank" rel="noreferrer noopener">Framework</a> auch ist, so viel Zeit und Know-How erfordert es, Spring-Anwendungen sauber zu konfigurieren, einzurichten und bereitzustellen. Spring Boot verringert diesen Aufwand mit den bereits zu Beginn erwähnten drei wichtigen Funktionen.</p>



<h3 class="wp-block-heading">Autokonfiguration in Spring Boot</h3>



<p>Unter der Autokonfiguration verstehen man die Initialisierung von Anwendungen mit voreingestellten Abhängigkeiten ohne den manuellen Eingriff eines Entwicklers. Da <a href="https://ceosbay.com/2023/03/16/erklaerung-java/">Java</a> Spring Boot über integrierte Autokonfigurationsfunktionen verfügt, konfiguriert es sowohl das zugrunde liegende Spring <a href="https://ceosbay.com/2022/11/14/erklaerung-frameworks/" target="_blank" rel="noreferrer noopener">Framework</a> als auch die Pakete von Drittanbietern automatisch auf der Grundlage der eigenen individuellen Einstellungen. Dies trägt auch zur grundlegenden Fehlervermeidung bei. Auch wenn man die Standardeinstellungen nach Abschluss der Initialisierung überschreiben kann, ermöglicht die Autokonfigurationsfunktion von <a href="https://ceosbay.com/2023/03/16/erklaerung-java/" target="_blank" rel="noreferrer noopener">Java</a> Spring Boot einen schnellen Start bei der Entwicklung von Spring-basierten Anwendungen. Dies reduziert die Möglichkeit menschlicher Fehler.</p>



<h3 class="wp-block-heading">Opinionated-Konfigurationsansatz</h3>



<p>Der Optionated-Ansatz bei Spring Boot findet Anwendung beim Hinzufügen und bei der Konfiguration von Steuer-Abhängigkeiten, basierend auf den Projektanforderungen. Spring Boot wählt nach eigenem Ermessen die passenden Pakete zur Installation aus und setzt auch die Standardwerte, ohne dass ein nachträgliches manuelles Eingreifen erforderlich ist.</p>



<p>Man kann die Anforderungen des jeweiligen Projekts während des Initialisierungsprozesses definieren. Dabei wählt man zwischen mehreren Starter-Abhängigkeiten (den Spring Starters) die typische Anwendungsfälle abdecken. Man startet den Spring Boot Initializr (Das ist kein Rechtschreibfehler 😉 ), indem man ein einfaches Webformular ausfüllt. Alles erst einmal ohne zu programmieren und ohne Code.</p>



<p>Mit der Starter-Abhängigkeit „Spring Web&#8220; kann man beispielsweise Spring-basierte Webanwendungen mit minimaler Konfiguration erstellen, indem man im Projekt alle erforderlichen Abhängigkeiten – wie den Apache Tomcat Webserver – hinzufügt. „Spring Security&#8220; ist eine weitere vielfach eingesetzte Starter-Abhängigkeit, die automatisch Authentifizierungs- und Zugriffskontrollfunktionen zur Verfügung stelllt. Spring Boot enthält von Haus aus über 50 Spring-Starter, und viele weitere Starter von Drittanbietern sind ebenfalls verfügbar.</p>



<h3 class="wp-block-heading">Eigenständige Anwendungen</h3>



<p>Spring Boot hilft Entwicklern, Anwendungen zu erstellen, die einfach funktionieren. Insbesondere kann man damit eigenständige Anwendungen erstellen, die ohne einen externen Webserver auskommen, indem man einen Webserver wie Tomcat oder Netty während des Initialisierungsprozesses in der eigenen Anwendung einbettet. So kann man die Anwendung auf jeder Plattform starten, indem man einfach auf den Befehl „Ausführen&#8220; klickt. Man kann aber auch auf diese Funktion verzichten, indem man dies in der Konfiguration deaktiviert.</p>



<h3 class="wp-block-heading">Fazit</h3>



<p>In der Praxis ist die Verwendung von Spring Boot durchaus zu empfehlen. Außer man hat vor, eine sehr spezielle Konfiguration zu implementieren. Man kann weiterhin das vielfach eingesetzte Annotationssystem von Spring <a href="https://ceosbay.com/2022/11/14/erklaerung-frameworks/" target="_blank" rel="noreferrer noopener">Framework</a> verwenden, mit dem man auf einfache Weise zusätzliche Abhängigkeiten (deren Abdeckung nicht von Spring Starters gewährleistet ist) in die Anwendung implementieren kann. Auch hat man weiterhin Zugriff auf alle Spring <a href="https://ceosbay.com/2022/11/14/erklaerung-frameworks/" target="_blank" rel="noreferrer noopener">Framework</a>-Funktionen, einschließlich der einfachen Ereignisverarbeitung, Prüfung und Bewertung, Datenbindung, Typumsetzung und der integrierten Sicherheits- und Testfunktionen. Kurz zusammengefasst &#8211; Wenn die Abdeckung des Projektumfangs lediglich ein Spring Starter gewährleistet, kann Spring Boot die Entwicklung signifikant rationalisieren.</p>
<p>Der Beitrag <a href="https://ceosbay.com/2023/03/22/erklaerung-spring-boot/">Spring Boot &#8211; Schnell und einfach Webanwendungen erstellen</a> erschien zuerst auf <a href="https://ceosbay.com">CEOsBay</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://ceosbay.com/2023/03/22/erklaerung-spring-boot/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">1057</post-id>	</item>
		<item>
		<title>XML &#8211; Effiziente Datenstrukturierung</title>
		<link>https://ceosbay.com/2022/12/27/erklaerung-xml/</link>
					<comments>https://ceosbay.com/2022/12/27/erklaerung-xml/#respond</comments>
		
		<dc:creator><![CDATA[CEO]]></dc:creator>
		<pubDate>Tue, 27 Dec 2022 06:59:00 +0000</pubDate>
				<category><![CDATA[Big-Data]]></category>
		<category><![CDATA[Datenbanken]]></category>
		<category><![CDATA[DevOps]]></category>
		<category><![CDATA[Internet]]></category>
		<category><![CDATA[Metaverse]]></category>
		<category><![CDATA[Netzwerk]]></category>
		<category><![CDATA[Programmieren]]></category>
		<category><![CDATA[Soziale Medien]]></category>
		<category><![CDATA[Website]]></category>
		<category><![CDATA[API]]></category>
		<category><![CDATA[Aufbau]]></category>
		<category><![CDATA[Auto]]></category>
		<category><![CDATA[Automation]]></category>
		<category><![CDATA[Base]]></category>
		<category><![CDATA[Consortium]]></category>
		<category><![CDATA[Data]]></category>
		<category><![CDATA[Daten]]></category>
		<category><![CDATA[Datenbank]]></category>
		<category><![CDATA[Datenzentriert]]></category>
		<category><![CDATA[Dokument]]></category>
		<category><![CDATA[Dokumente]]></category>
		<category><![CDATA[DOM]]></category>
		<category><![CDATA[Donauwörth]]></category>
		<category><![CDATA[DTD]]></category>
		<category><![CDATA[Element]]></category>
		<category><![CDATA[encoding]]></category>
		<category><![CDATA[end]]></category>
		<category><![CDATA[Extensible]]></category>
		<category><![CDATA[GPX]]></category>
		<category><![CDATA[GraphML]]></category>
		<category><![CDATA[Gültigkeit]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[Klassifizierung]]></category>
		<category><![CDATA[Language]]></category>
		<category><![CDATA[Lesbarkeit]]></category>
		<category><![CDATA[logisch]]></category>
		<category><![CDATA[logische]]></category>
		<category><![CDATA[Mark]]></category>
		<category><![CDATA[Markup]]></category>
		<category><![CDATA[Maschine]]></category>
		<category><![CDATA[Maschinen]]></category>
		<category><![CDATA[München]]></category>
		<category><![CDATA[Parser]]></category>
		<category><![CDATA[physisch]]></category>
		<category><![CDATA[physische]]></category>
		<category><![CDATA[Processing]]></category>
		<category><![CDATA[Prozessoren]]></category>
		<category><![CDATA[PULL]]></category>
		<category><![CDATA[Rest]]></category>
		<category><![CDATA[RSS]]></category>
		<category><![CDATA[SAX]]></category>
		<category><![CDATA[Semistrukturiert]]></category>
		<category><![CDATA[Sprache]]></category>
		<category><![CDATA[Sprache Extensible Markup Language]]></category>
		<category><![CDATA[start]]></category>
		<category><![CDATA[Strukturiert]]></category>
		<category><![CDATA[SVG]]></category>
		<category><![CDATA[Tag]]></category>
		<category><![CDATA[UTF-8]]></category>
		<category><![CDATA[Valid]]></category>
		<category><![CDATA[Validität]]></category>
		<category><![CDATA[W3C]]></category>
		<category><![CDATA[Web]]></category>
		<category><![CDATA[Wide]]></category>
		<category><![CDATA[xml]]></category>
		<guid isPermaLink="false">https://ceosbay.com/?p=1063</guid>

					<description><![CDATA[<p>XML (Extensible Markup Language) ist eine Auszeichnungssprache zur Darstellung hierarchisch strukturierter Daten im Format einer Textdatei, die sowohl von Menschen als auch von Maschinen lesbar ist. Im Endeffekt kann man damit Daten auf gemeinsam nutzbare &#8230;</p>
<p>Der Beitrag <a href="https://ceosbay.com/2022/12/27/erklaerung-xml/">XML &#8211; Effiziente Datenstrukturierung</a> erschien zuerst auf <a href="https://ceosbay.com">CEOsBay</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>XML (Extensible Markup Language) ist eine Auszeichnungssprache zur Darstellung hierarchisch strukturierter Daten im Format einer Textdatei, die sowohl von Menschen als auch von Maschinen lesbar ist. Im Endeffekt kann man damit Daten auf gemeinsam nutzbare Weise definieren und speichern. Es unterstützt den Informationsaustausch zwischen Computersystemen wie Websites, Datenbanken und Anwendungen von Drittanbietern. Vordefinierte Regeln erleichtern die Übertragung von Daten als XML-Dateien über ein beliebiges Netzwerk, da der Empfänger diese Regeln verwenden kann, um die Daten genau und effizient zu lesen. Dazu aber im Anschluss etwas mehr und vor allem etwas genauer.</p>



<h3 class="wp-block-heading">Eine wirklich kurze Zeitreise</h3>



<p>Die Extensible Markup Language wurde vom World Wide Web Consortium (W3C) am 10. Februar 1998 veröffentlicht. Die aktuelle Fassung ist die fünfte Ausgabe vom 26. November 2008. Alle bisherigen und aktuellen Publikationen kann man <a href="https://www.w3.org/XML/Core/#Publications" target="_blank" rel="noreferrer noopener">hier</a>&nbsp;einsehen.</p>



<h3 class="wp-block-heading">Was ist XML nun wirklich und was tut es?</h3>



<p>Es ist eine Metasprache, auf deren Basis durch strukturelle und inhaltliche Einschränkungen anwendungsspezifische Sprachen definiert werden. Diese Einschränkungen werden entweder durch eine Document Type Definition (DTD) oder durch ein XML Schema ausgedrückt. Beispiele für XML-Sprachen sind: RSS, MathML, GraphML, XHTML, XAML, Scalable Vector Graphics (SVG), GPX, aber auch das XML-Schema selbst. Auf diese Sprachen gehe ich in zukünftigen Sprachen ein. Besonders SVG hat einen Großteil meiner persönlichen Entwicklung geprägt.</p>



<p>Die Standardzeichenkodierung eines XML-Dokumentes ist UTF-8. XML-bearbeitende Systeme müssen die Kodierungen UTF-8 und UTF-16 beherrschen. XML-Dokumente, die UTF-8 oder UTF-16 verwenden, können in allen Texteditoren, die diese Kodierungen unterstützen, angezeigt und bearbeitet werden. Damit sind so ziemlich alle &#8222;Browser&#8220; gemeint 😉</p>



<p>Wenn das XML-Dokument Binärdaten enthalten soll, müssen diese Daten zu Text konvertiert bzw. umkodiert werden. Dazu kann z. B. die Base64-Kodierung verwendet werden.</p>



<h3 class="wp-block-heading">Das Element</h3>



<p>Die essenzielle Struktureinheit eines XML-Dokumentes ist das Element. Elemente können Text wie auch weitere Elemente als Inhalt enthalten. Elemente bilden die Knoten des Strukturbaumes eines XML-Dokumentes. Der Name eines Elementes kann in Dokumenten ohne Dokumenttypdefinition (DTD) frei gewählt werden. In XML-Dokumenten mit DTD muss der Name eines Elementes in der DTD deklariert sein und das Element muss sich in einer zugelassenen Position innerhalb des Strukturbaumes gemäß DTD befinden. In der DTD wird u. a. der mögliche Inhalt eines jeden Elementes definiert. Elemente sind die Träger der Information in einem XML-Dokument.</p>



<h3 class="wp-block-heading">Tag</h3>



<p>Für die Auszeichnung von Elementen werden Tags verwendet. Auf den ersten Blick sehen XML-Tags fast wie HTML-Tags aus. Start-Tags beginnen mit &lt; und End-Tags mit &lt;/. Bei beiden folgt anschließend der Name des Elements, und sie werden beide durch &gt; geschlossen. Anders als bei den HTML-Tags können Sie jedoch neue Tags erzeugen. Um eine Person zu beschreiben, benutzt man die Tags &lt;person&gt; und &lt;/person&gt;. Um ein Tier zu beschreiben, verwendet man die Tags &lt;tier&gt; und &lt;/tier&gt;. Die Namen der Tags spiegeln im Allgemeinen die Art des Inhalts innerhalb des Elements wider und nicht die Art und Weise, wie der Inhalt formatiert wird.</p>



<h3 class="wp-block-heading">Wohlgeformtheit</h3>



<p>Ein XML-Dokument ist „wohlgeformt“ (well-formed), wenn es alle Regeln einhält.</p>



<h3 class="wp-block-heading">Die Regeln</h3>



<ul class="wp-block-list">
<li>Das Dokument besitzt genau ein Wurzelelement. Als Wurzelelement wird dabei das jeweils äußerste Element bezeichnet, z. B. &lt;html&gt; in XHTML.</li>



<li>Alle Elemente mit Inhalt besitzen einen Start- und einen Endtag (z. B. &lt;eintrag&gt;Eintrag 1&lt;/eintrag&gt;). Elemente ohne Inhalt können mit einem Leertag gekennzeichnet werden (z. B. &lt;eintrag /&gt;).</li>



<li>Die Start- und Endtags sind ebenentreu-paarig verschachtelt. Dies bedeutet, dass alle Elemente geschlossen sind, bevor die End-Auszeichner des entsprechenden Elternelements oder die Beginn-Auszeichner eines Geschwisterelements erscheinen.</li>



<li>Ein Element darf nicht mehrere Attribute mit demselben Namen besitzen.</li>



<li>Attributwerte müssen in Anführungszeichen stehen (&#8222;&#8230;&#8220; oder &#8218;&#8230;&#8216;).</li>



<li>Die Start- und Endtags sind Case sensitive, also beachten die Groß- und Kleinschreibung (z. B. &lt;eintrag&gt;&lt;/Eintrag&gt; ist ungültig).</li>
</ul>



<h3 class="wp-block-heading">Gültigkeit (Validität)</h3>



<p>Verwendet man es für den Datenaustausch, ist es von Vorteil, wenn das Format mittels einer Grammatik (z. B. einer Dokumenttypdefinition oder eines XML-Schemas) definiert ist. Der Standard definiert ein XML-Dokument als gültig (oder englisch valid), wenn es wohlgeformt ist, den Verweis auf eine Grammatik enthält und das durch die Grammatik beschriebene Format einhält.</p>



<h3 class="wp-block-heading">Parser</h3>



<p>Programme oder Programmteile, die XML-Daten auslesen, interpretieren und ggf. auf Gültigkeit prüfen, nennt man XML-Parser. Prüft der Parser die Gültigkeit, so ist er ein validierender Parser. Darauf gehe ich aber in einem zukünftigen Beitrag genauer ein.</p>



<h3 class="wp-block-heading">Wie sieht die Extensible Markup Language eigentlich aus?</h3>



<pre class="wp-block-code"><code>&lt;?xml version="1.0" encoding="UTF-8" standalone="yes"?&gt;
&lt;verzeichnis&gt;
    &lt;titel&gt;Städteverzeichnis&lt;/titel&gt;
    &lt;eintrag&gt;
        &lt;stichwort&gt;München&lt;/stichwort&gt;
        &lt;eintragstext&gt;München ist der Sitz von ...&lt;/eintragstext&gt;
    &lt;/eintrag&gt;
    &lt;eintrag&gt;
        &lt;stichwort&gt;Donauwörth&lt;/stichwort&gt;
        &lt;eintragstext&gt;Donauwörth ist eine Stadt, die ...&lt;/eintragstext&gt;
    &lt;/eintrag&gt;
&lt;/verzeichnis&gt;</code></pre>



<h3 class="wp-block-heading">XML-Dokumente besitzen einen physischen und einen logischen Aufbau.</h3>



<p><strong>Der physische Aufbau</strong></p>



<ul class="wp-block-list">
<li>Die Dokument-Entität (Document entity) enthält das Hauptdokument.</li>



<li>Weitere mögliche Entitäten sind über Entitätenreferenzen (&amp;name; für das Dokument bzw. %name; für die Dokumenttypdefinition) eingebundene Zeichenketten, eventuell auch ganze Dateien, sowie Referenzen auf Zeichenentitäten zur Einbindung einzelner Zeichen, die über ihre Nummer referenziert wurden (&amp;#Dezimalzahl; oder &amp;#xHexadezimalzahl;).</li>



<li>Eine XML-Deklaration wird verwendet, um die Version, Zeichenkodierung und eine mögliche Verarbeitbarkeit ohne DTD zu spezifizieren.</li>



<li>Eine DTD wird verwendet, um Entitäten sowie den erlaubten logischen Aufbau zu spezifizieren. Die Verwendung einer DTD kann in der Deklaration abgewählt werden.</li>
</ul>



<p><strong>Der logische Aufbau</strong></p>



<p>Der logische Aufbau entspricht einer Baumstruktur und ist damit hierarchisch organisiert. Es gibt folgende Baumknoten:</p>



<ul class="wp-block-list">
<li>Elemente, deren physische Auszeichnung mittels eines passenden Paars aus Starttag &lt;Tagname&gt; und End-Tag &lt;/Tagname&gt; oder eines Leertags &lt;Tagname/&gt; erfolgen kann.</li>



<li>Attribute als bei einem Starttag oder Leertag geschriebene zusätzliche Eigenschaften der Elemente in der Syntax Attributname=Attributwert.</li>



<li>Verarbeitungsanweisungen &lt;?Zielname Daten?&gt; (engl. Processing Instructions).</li>



<li>Kommentare &lt;!&#8211; Kommentar-Text &#8211;&gt;.</li>



<li>Text, der als normale Zeichendaten oder in Form eines CDATA-Abschnittes &lt;![CDATA[ beliebiger Text]]&gt; auftreten kann.</li>
</ul>



<p>Ein XML-Dokument muss genau ein Element auf der obersten Ebene enthalten. Unterhalb dieses Dokumentelements können weitere Elemente und Texte verschachtelt werden.</p>



<h3 class="wp-block-heading">Was ist DTD</h3>



<p>Wie vorher kurz ausgeschrieben und angeschnitten, handelt es sich dabei um die Dokumenttypdefinition und beschreibt die Struktur sowie Grammatik von Dokumenten. Sie ist Systembestandteil von XML und per Standard aktiviert.</p>



<p>Werden Dokumente mit Bezug zu einer externen Dokumenttypdefinition oder mit einer integrierten Dokumenttypdefinition erstellt, prüft der Parser das Dokument bereits beim Öffnen (Lesen). Ein Dokument auf Basis einer Dokumenttypdefinition ist stets ein valides Dokument. Die Übereinstimmung des Dokumentinhaltes mit den Regeln der Dokumenttypdefinition steht im Vordergrund. Die technische Lesbarkeit, also auch das Lesen von nicht validen Dokumenten ist nachrangig. Das ist für Volltextdokumente (erzählende Dokumente, engl. narrative documents) vorgesehen und der Haupteinsatzzweck.</p>



<p>Dokumente ohne DTD sind eher für den beliebigen Datenaustausch geeignet. Der Parser prüft diese Dokumente nur nach den Regeln der Wohlgeformtheit. Die technische Lesbarkeit steht hier an erster Stelle. Das Prüfen und Auslesen der eigentlichen Informationen wird mit nachgelagerten Prozessen realisiert.</p>



<h3 class="wp-block-heading">Lesbarkeit</h3>



<p>Wie zu Beginn erwähnt, können alle Webbrowser wie Apple Safari, Google Chrome, Microsoft Edge, Mozilla Firefox, Opera usw. XML-Dokumente mit Hilfe des eingebauten Parsers direkt visualisieren. Dadurch werden keine zusätzlichen PlugIns oder der Gleichen benötigt.</p>



<h3 class="wp-block-heading">Klassifizierung von XML-Dokumenten</h3>



<p>XML-Dokumente lassen sich anhand ihrer Bestimmung und ihres Strukturierungsgrades in dokumentzentrierte und datenzentrierte Dokumente unterteilen. Die Grenze zwischen diesen Dokumentenarten ist fließend. Mischformen können als semistrukturiert bezeichnet werden.</p>



<h3 class="wp-block-heading">Dokumentzentriert</h3>



<p>Das Dokument ist an ein Textdokument angelehnt, dass für den menschlichen Leser größtenteils auch ohne die zusätzliche Metainformation verständlich ist. XML-Elemente werden hauptsächlich zur semantischen Markierung von Passagen des Dokuments genutzt.&nbsp;</p>



<p>Das Dokument ist nur schwach strukturiert. Aufgrund der schwachen Strukturierung ist eine maschinelle Verarbeitung schwierig.</p>



<h3 class="wp-block-heading">Datenzentriert</h3>



<p>Das Dokument ist hauptsächlich für die maschinelle Verarbeitung bestimmt. Es folgt einem Schema, das Entitäten eines Datenmodells beschreibt und definiert, in welcher Beziehung die Entitäten zueinanderstehen und welche Attribute die Entitäten haben. Das Dokument ist somit stark strukturiert und für den unmittelbaren menschlichen Gebrauch weniger geeignet.</p>



<h3 class="wp-block-heading">Semistrukturiert</h3>



<p>Semistrukturierte Dokumente stellen eine Art Mischform dar, die stärker strukturiert ist als dokumentzentrierte Dokumente, aber schwächer als datenzentrierte Dokumente.</p>



<p>Es ist typisch für datenzentrierte XML-Dokumente, dass Elemente entweder Elementinhalte oder Textinhalte haben. Der sogenannte gemischte Inhalt (Mixed Content), bei dem Elemente sowohl Text als auch Childs (Kind-Elemente) enthalten, ist für die anderen XML-Dokumente typisch.</p>



<h3 class="wp-block-heading">Verarbeitungskriterien der Extensible Markup Language</h3>



<p>Grundsätzlich sind drei Aspekte beim Zugriff auf ein XML-Dokument von Bedeutung:</p>



<ol class="wp-block-list" type="1">
<li>Wie erfolgt der Zugriff auf die XML-Datei: sequenziell oder wahlfrei?</li>



<li>Wie ist der Ablauf beim Zugriff auf die Daten gestaltet: „Push“ oder „Pull“? (Push bedeutet, dass die Ablaufkontrolle des Programms beim Parser liegt. Pull bedeutet, dass die Ablaufkontrolle im Code, der den Parser aufruft, implementiert ist.)</li>



<li>Wie erfolgt das Baumstrukturmanagement der XML-Daten: hierarchisch oder verschachtelt?</li>
</ol>



<h3 class="wp-block-heading">Programmgesteuerter Zugriff auf XML-Dokumente</h3>



<p>Das Einlesen von XML-Dokumenten erfolgt auf unterster Ebene über eine spezielle Programmkomponente, einem XML-Prozessor, auch XML-Parser genannt. Er stellt eine Programmierschnittstelle (API) zur Verfügung, über die die Anwendung auf das XML-Dokument zugreift. Ich habe zwar in einem vorherigen Beitrag über die <a href="https://ceosbay.com/2022/12/23/erklaerung-rest/" target="_blank" rel="noreferrer noopener">REST API</a> geschrieben, doch werde ich definitiv die Programmierschnittstelle explizit nochmals ein einem Beitrag thematisieren.</p>



<h3 class="wp-block-heading">Die XML-Prozessoren unterstützen dabei drei grundlegende Verarbeitungsmodelle</h3>



<ol class="wp-block-list" type="1">
<li>DOM: Ein DOM-API repräsentiert ein XML-Dokument als Baumstruktur und gewährt wahlfreien Zugriff auf die einzelnen Bestandteile der Baumstruktur. DOM erlaubt außer dem Lesen von den Dokumenten auch die Manipulation der Baumstruktur und das Zurückschreiben der Baumstruktur in ein XML-Dokument. Aus diesem Grund ist DOM sehr speicherintensiv.</li>



<li>SAX: Ein SAX-API repräsentiert ein XML-Dokument als sequentiellen Datenstrom und ruft für im Standard definierte Ereignisse vorgegebene Rückruffunktionen (callback function) auf. Eine Anwendung, die SAX nutzt, kann eigene Unterprogramme als Rückruffunktionen registrieren und auf diese Weise die Daten auswerten.</li>



<li>Pull-API: Eine XML-Pull-API verarbeitet Daten sequenziell und bietet sowohl ereignisbasierte Verarbeitung als auch einen Iterator an. Es ist hoch speichereffizient und ggf. leichter zu programmieren als das SAX-API, da die Ablaufkontrolle beim Programm und nicht beim Parser liegt.</li>
</ol>



<p>Weitere Verarbeitungsmodelle sind das Data-Binding, welches die XML-Daten als Datenstruktur direkt für einen Programmzugriff bereitstellt. Die XML-Daten werden per Unmarshalling (Dies ist der Prozess der Umwandlung einer Art von Darstellung auf niedrigerer Ebene, oft ein &#8222;Drahtformat&#8220;, in eine Struktur auf höherer Ebene (Objekt).) direkt in z. B. Objekte gewandelt. Und die Nicht-extrahierende-XML-API, bei der die Daten auf Byte-Ebene sehr effizient verarbeitet sind.</p>



<p>Oftmals greift der Anwendungscode nicht direkt auf die Parser-API zu. Stattdessen wird es weiter gekapselt, so dass der Anwendungscode mit nativen Objekten / Datenstrukturen arbeitet, welche sich auf darauf abstützen. Beispiele für solche Zugriffsschichten sind JAXB in Java, der Data Binding Wizard in Delphi oder das XML Schema Definition Toolkit in .Net. Die Umwandlung von Objekten in die Extensible Markup Language ist üblicherweise bidirektional möglich. Diese Umwandlung bezeichnet man als Serialisierung oder Marshalling.</p>



<h3 class="wp-block-heading">Transformation und Darstellung von XML-Dokumenten</h3>



<p>Ein XML-Dokument kann mittels geeigneter Transformationssprachen wie XSLT oder DSSSL in ein anderes Dokument transformiert werden. Oftmals dient die Transformation zur Überführung eines Dokuments aus einer Extensible Markup Language in eine andere Extensible Markup Language, beispielsweise zur Transformation nach XHTML, um das Dokument in einem Webbrowser anzuzeigen.</p>



<h3 class="wp-block-heading">Warum XML?</h3>



<p><strong>Unterstützung von und bei Transaktionen</strong></p>



<p>Wenn ein Unternehmen eine Ware oder Dienstleistung an ein anderes Unternehmen verkauft, müssen die beiden Unternehmen Informationen wie Kosten, Spezifikationen und Lieferpläne austauschen. Man kann damit alle erforderlichen Informationen elektronisch teilen und komplexe Geschäfte automatisch abschließen, ohne dass ein menschliches Eingreifen erforderlich ist.</p>



<p><strong>Aufrechterhaltung der Datenintegrität</strong></p>



<p>Man kann damit Daten zusammen mit der Beschreibung der Daten übertragen und so den Verlust der Datenintegrität verhindern. Folglich kann man so die Datengenauigkeit überprüfen, automatische Anpassungen der Datenpräsentation für verschiedene Benutzer vornehmen und Daten konsistent über mehrere Plattformen hinweg speichern&nbsp;</p>



<p><strong>Sucheffizienz verbessern</strong></p>



<p>Computerprogramme wie Suchmaschinen können die Dateien damit effizienter und präziser sortieren und kategorisieren als andere Arten von Dokumenten. Beispielsweise kann das Wort mark (markieren) entweder ein Substantiv oder ein Verb sein. Basierend auf XML-Tags können Suchmaschinen mark für relevante Suchergebnisse genau kategorisieren. Somit hilft es, die natürliche Sprache für Maschinen effizienter interpretierbar zu machen.</p>



<p><strong>Flexible Anwendungen entwerfen</strong></p>



<p>Man kann damit auch das eigene Anwendungsdesign bequem aktualisieren oder ändern. Viele Technologien, insbesondere neuere Technologien, verfügen dafür über eine integrierte Schnittstelle bzw. Unterstützung. So kann man automatisch Datendateien lesen und verarbeiten, sodass die Änderungen stattfinden können, ohne gleich die gesamte Datenbank neu formatieren zu müssen.</p>
<p>Der Beitrag <a href="https://ceosbay.com/2022/12/27/erklaerung-xml/">XML &#8211; Effiziente Datenstrukturierung</a> erschien zuerst auf <a href="https://ceosbay.com">CEOsBay</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://ceosbay.com/2022/12/27/erklaerung-xml/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">1063</post-id>	</item>
		<item>
		<title>Ubuntu Linux &#8211; Starten und nutzen von MySQL Server</title>
		<link>https://ceosbay.com/2022/10/31/ubuntu-linux-starten-und-nutzen-mysql-server/</link>
		
		<dc:creator><![CDATA[CEO]]></dc:creator>
		<pubDate>Mon, 31 Oct 2022 11:00:00 +0000</pubDate>
				<category><![CDATA[Datenbanken]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Open Source]]></category>
		<category><![CDATA[apt]]></category>
		<category><![CDATA[Datenbank]]></category>
		<category><![CDATA[Install]]></category>
		<category><![CDATA[Installation]]></category>
		<category><![CDATA[MySQL]]></category>
		<category><![CDATA[OpenSource]]></category>
		<category><![CDATA[Terminal]]></category>
		<category><![CDATA[Ubuntu]]></category>
		<guid isPermaLink="false">https://ceosbay.com/?p=126</guid>

					<description><![CDATA[<p>Eine kurze Einführung in MySQL Server auf Ubuntu. Was ist MySQL? MySQL ist ein relationales Open-Source-SQL-Databaseverwaltungssystem, das von Oracle entwickelt und unterstützt wird. Selbstverständlich sollte man hierfür so ein bisschen mit Ubuntu Linux, dem Terminal &#8230;</p>
<p>Der Beitrag <a href="https://ceosbay.com/2022/10/31/ubuntu-linux-starten-und-nutzen-mysql-server/">Ubuntu Linux &#8211; Starten und nutzen von MySQL Server</a> erschien zuerst auf <a href="https://ceosbay.com">CEOsBay</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>Eine kurze Einführung in MySQL Server auf Ubuntu.</p>



<h3 class="wp-block-heading">Was ist MySQL?</h3>



<p>MySQL ist ein relationales <a href="https://ceosbay.com/2022/11/16/erklaerung-open-source/">Open-Source</a>-SQL-Databaseverwaltungssystem, das von Oracle entwickelt und unterstützt wird.</p>



<p>Selbstverständlich sollte man hierfür so ein bisschen mit Ubuntu Linux, dem Terminal und mit den Standardbefehlen in SQL und Linux vertraut sein.</p>



<h3 class="wp-block-heading">Terminal</h3>



<pre class="wp-block-code"><code>$ sudo apt update</code></pre>



<p>Man öffnet ein frisches Terminal Fenster für das Repository Update. Ein Update ist bei einer Neuinstallation einer neuen Anwendung immer erforderlich.</p>



<h3 class="wp-block-heading">MySQL Server installieren</h3>



<pre class="wp-block-code"><code>$ sudo apt install mysql-server -y</code></pre>



<p>Mit diesem Befehl initiiert man die Installation des MySQL Servers.</p>



<p>Jetzt kann man eventuell fragen, &#8222;Wofür dieses -y&#8220;. Ganz einfach &#8211; Mit der Option -y wird apt-get (Advanced Package Tool (APT) ist eine freie Software-Benutzeroberfläche, die mit Kernbibliotheken arbeitet, um die Installation und Entfernung von Software unter Debian und Debian-basierten Linux-Distributionen zu verwalten) angewiesen, alle Fragen, die bei der Installation auftauchen, mit einem &#8222;Ja!&#8220; zu beantworten. Bei der Installation kommt es immer wieder einmal zu der Frage, ob die Installation fortgesetzt werden soll, wenn die richtigen Pakete gefunden werden. Mit dem Zusatz -y wird diese Frage schlichtweg automatisch mit einem Y, wie Yes, beantwortet und ohne Unterbrechung automatisch fortgesetzt. Im Anschluss ist ein MySQL Server erstellt und aktiv.</p>



<h3 class="wp-block-heading">Überprüfung</h3>



<p>Überprüfung mit dem folgenden Befehl:</p>



<pre class="wp-block-code"><code>$ sudo systemctl status mysql</code></pre>



<p>Wenn in der dritten Zeile die Rückmeldung active (running) zurückgegeben wird, wurde alles richtig gemacht und der Server ist ordnungsgemäß installiert und im Einsatz.</p>



<h3 class="wp-block-heading">MySQL Monitor starten</h3>



<p>Um den MySQL Monitor zu starten, reicht ein einfaches:</p>



<pre class="wp-block-code"><code>$ sudo mysql</code></pre>



<p>Und schon befindet man sich im Command Promt des MySQL Monitors.</p>



<p>Mit dem nachfolgenden Befehl lassen sich alle verfügbaren Datenbanken anzeigen:</p>



<pre class="wp-block-code"><code>mysql&gt; show databases;</code></pre>



<p>So werden die Standard Datenbanken die routinemäßig angelegt werden angezeigt. </p>



<p>Zur Veranschaulichung wird eine Verkaufsliste erstellt, dessen Produkte mit ID&#8217;s, Namen, einer Haltbarkeitsdauer von kurz- mittel- und langfristig und einem Preis definiert werden. </p>



<pre class="wp-block-code"><code>mysql&gt; create database coes_database;</code></pre>



<p>Um die eigene Datenbank zu erstellen.</p>



<pre class="wp-block-code"><code>mysql&gt;  use coes_database</code></pre>



<p>Um die Datenbank zu nutzen.</p>



<p>&#8222;Database changed&#8220; zeigt, dass die Datenbank zur Bearbeitung ausgewählt ist.</p>



<pre class="wp-block-code"><code>mysql&gt; show tables;</code></pre>



<p>Um alle Tabellen anzuzeigen.</p>



<pre class="wp-block-code"><code>mysql&gt; create table verkaufsliste (</code></pre>



<p>Zur Erstellung einer Tabelle mit der Bezeichnung &#8222;verkaufsliste&#8220;.</p>



<p>Unter &#8222;Tables_in_coes_database&#8220;, sollte nun die Tabelle &#8222;verkaufsliste&#8220; zu sehen sein.</p>



<pre class="wp-block-code"><code>-&gt; id int,
-&gt; name varchar(255),
-&gt; haltbarkeitsdauer varchar(255),
-&gt; preis float
-&gt; );</code></pre>



<p>Um die ersten Spalten zu füllen, die Inhalte mit der Inhaltsform definieren und nach jedem &#8222;,&#8220; Komma mit der Enter Taste bestätigen. Bzgl. der Definition: int = Integer = ganze Zahlen, varchar = variable Charakter = string mit maximal 255 Zeichen und float = Gleitkommazahl.</p>



<p>Die Spalten id gefolgt von name, land, haltbarkeitsdauer, und preis sind erstellt. </p>



<pre class="wp-block-code"><code>mysql&gt; describe verkaufsliste;</code></pre>



<p>Um die Inhalte der Tabelle anzuzeigen nutzt man den Befehle describe.</p>



<pre class="wp-block-code"><code>mysql&gt; insert into verkaufsliste values (1, "apfel", "kurz", "1.20");</code></pre>



<p>&#8222;insert&#8220; Befehl um die erste Zeile zu füllen. </p>



<p>Die Zeilen danach ähnlich füllen. Man definiert lediglich die spezifischen ID&#8217;s und Inhalte.</p>



<pre class="wp-block-code"><code>mysql&gt; insert into verkaufsliste values (2, "Zitrone", "mittel", "0.4");
mysql&gt; insert into verkaufsliste values (3, "erdbeer", "kurz", "3");
mysql&gt; insert into verkaufsliste values (4, "wassermelone", "lang", "4");</code></pre>



<p>Dadurch wurden der Tabelle nun 3 weitere Zeilen hinzugefügt.</p>



<pre class="wp-block-code"><code>mysql&gt; select * from verkaufsliste;</code></pre>



<p>Für Spezifische Inhalte ersetzt man &#8222;*&#8220; durch die benötigte Spaltenbezeichnung. In diesem Beispiel &#8222;name&#8220;.</p>



<p>Um alle Inhalte der Tabelle anzuzeigen nutzt man &#8222;*&#8220;.</p>



<pre class="wp-block-code"><code>mysql&gt; select name from verkaufsliste;</code></pre>



<p>Als Einführung sollte dies reichen 😉</p>
<p>Der Beitrag <a href="https://ceosbay.com/2022/10/31/ubuntu-linux-starten-und-nutzen-mysql-server/">Ubuntu Linux &#8211; Starten und nutzen von MySQL Server</a> erschien zuerst auf <a href="https://ceosbay.com">CEOsBay</a>.</p>
]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">126</post-id>	</item>
		<item>
		<title>SQL &#8211; Structured Query Language &#8211; Industriestandard-Sprache zur Verwaltung und Manipulation von relationalen Datenbanken</title>
		<link>https://ceosbay.com/2022/10/29/structured-query-language-sql/</link>
		
		<dc:creator><![CDATA[CEO]]></dc:creator>
		<pubDate>Sat, 29 Oct 2022 13:13:00 +0000</pubDate>
				<category><![CDATA[Datenbanken]]></category>
		<category><![CDATA[Database]]></category>
		<category><![CDATA[Datenbank]]></category>
		<category><![CDATA[Datenbanksprache]]></category>
		<category><![CDATA[DBMS]]></category>
		<category><![CDATA[DCL]]></category>
		<category><![CDATA[DDL]]></category>
		<category><![CDATA[JSON]]></category>
		<category><![CDATA[MySQL]]></category>
		<category><![CDATA[NoSQL]]></category>
		<category><![CDATA[PostgreSQL]]></category>
		<category><![CDATA[SchemaSQL]]></category>
		<category><![CDATA[SEQUEL]]></category>
		<category><![CDATA[SQL]]></category>
		<category><![CDATA[TransactSQL]]></category>
		<guid isPermaLink="false">https://ceosbay.com/?p=109</guid>

					<description><![CDATA[<p>Was ist SQL? Die Abkürzung SQL steht für den Begriff Structured Query Language und bezeichnet eine Sprache für die Kommunikation mit relationalen Datenbanken. Mit SQL-Befehlen lassen sich Daten relativ einfach einfügen, verändern oder löschen. Was &#8230;</p>
<p>Der Beitrag <a href="https://ceosbay.com/2022/10/29/structured-query-language-sql/">SQL &#8211; Structured Query Language &#8211; Industriestandard-Sprache zur Verwaltung und Manipulation von relationalen Datenbanken</a> erschien zuerst auf <a href="https://ceosbay.com">CEOsBay</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<h3 class="wp-block-heading">Was ist SQL?</h3>



<p>Die Abkürzung SQL steht für den Begriff Structured Query Language und bezeichnet eine Sprache für die Kommunikation mit relationalen Datenbanken. Mit SQL-Befehlen lassen sich Daten relativ einfach einfügen, verändern oder löschen.</p>



<h3 class="wp-block-heading" id="Datenbank">Was ist eine Datenbank?</h3>



<p>Eine Datenbank, auch Datenbanksystem genannt, ist ein System zur elektronischen Datenverwaltung. Die wesentliche Aufgabe einer Datenbank ist es, große Datenmengen effizient, widerspruchsfrei und dauerhaft zu speichern und benötigte Teilmengen in unterschiedlichen, bedarfsgerechten Darstellungsformen für Benutzer und Anwendungsprogramme bereitzustellen.</p>



<h3 class="wp-block-heading">Wie wird eine Datenbank genutzt?</h3>



<p>In der Regel nutzt man ein sogenanntes Datenbank-Managementsystem (DBMS), eine Systemsoftware zum Erstellen und Verwalten von Datenbanken. Mit einem solchen Programm können Nutzer Daten in eine Datenbank einpflegen, um sie zu sammeln, zu lesen, zu aktualisieren und zu löschen. </p>



<h3 class="wp-block-heading">Datenbank-Managementsysteme?</h3>



<p>Ja, plural! Man unterscheidet zwischen relationalen (SQL bzw. RDMS) und nicht relationalen (NoSQL &#8222;Not only SQL&#8220;) Datenbanken bzw. Datenbanksystemen. Relationale Datenbanken modellieren Daten als Datensätze in Zeilen und Tabellen mit logischen Verknüpfungen zwischen ihnen. Und NoSQL verwendet stattdessen ein Speichermodell, das für die spezifischen Anforderungen des gespeicherten Datentyps optimiert ist. Daten können beispielsweise als einfache Schlüssel-Wert-Paare, als JSON-Dokumente oder als Diagramm mit Edges und Scheitelpunkten eingepflegt werden. Bekannte Implementierungen sind Riak, Apache Cassandra, CouchDB, MongoDB und Redis.<br>Was wir definitiv festhalten können &#8211; NoSQL Systeme können SQL nicht verstehen 🙂</p>



<h3 class="wp-block-heading">Funfact Aussprache: S-Q-L / SEQUEL</h3>



<p>Die Sprache wurde in den 70er Jahren von <a href="https://www.ibm.com/de-de" target="_blank" rel="noreferrer noopener">IBM</a> entwickelt und als SEQUEL bezeichnet. Das Akronym für Structured English Query Language. Es wurde aber später in SQL abgeändert, da &#8222;SEQUEL&#8220; eine Marke des britischen Flugzeugherstellers Hawker Siddeley war.</p>



<h3 class="wp-block-heading">Eigentümlichkeiten von SQL</h3>



<p>Die Datenbanksprache zeichnet sich durch eine einfach gehaltene Syntax aus. Sie basiert auf der relationalen Algebra und besteht semantisch im Wesentlichen aus englischen Sprachelementen. SQL ist standardisiert und kann plattformübergreifend mit vielen Datenbanksystemen genutzt werden. Es existieren verschiedene Dialekte (<a href="https://ceosbay.com/2022/10/31/ubuntu-linux-starten-und-nutzen-mysql-server/">MySQL</a>, PostgreSQL, SchemaSQL, Transact-SQL), die eine hundertprozentige Kompatibilität verhindern. Die meisten Datenbanksysteme verfügen über Schnittstellen und ermöglichen den Zugang zu den gespeicherten Daten über die universelle SQL-Datenbanksprache. Die eigentlichen Abfragen sind mit wenig Aufwand zu realisieren, da für einen Großteil der Anweisungen nur wenige Befehle erforderlich sind.</p>



<h3 class="wp-block-heading">Kategorien der SQL-Befehle</h3>



<p>Neben den Befehlen zum Anlegen, Bearbeiten und Löschen von Daten besitzt SQL Elemente für die Definition von Datenstrukturen und zur Abfrage von Datenbeständen. Grundsätzlich kann zwischen drei verschiedenen Kategorien von SQL-Befehlen unterschieden werden. Diese Kategorien sind:</p>



<ul class="wp-block-list">
<li>DML-Befehle (Data Manipulation Language)</li>



<li>DDL-Befehle (Data Definition Language)</li>



<li>DCL-Befehle (Data Control Language)</li>
</ul>



<p>Während DML-Befehle zum Bearbeiten, Einfügen oder Löschen von Daten oder für den lesenden Zugriff auf die Datenbank vorgesehen sind, lassen sich die DDL-Befehle für die Definition des Schemas einer Datenbank verwenden. DCL-Befehle dienen hingegen der Rechtevergabe oder zur Kontrolle von Transaktionen. Abfragen von Daten aus der Datenbank werden mit dem Befehl „SELECT“ eingeleitet, dem weitere Befehle wie „FROM“ oder „WHERE“ folgen. Im Rahmen einer Abfrage ermöglicht SQL, das Ergebnis in Tabellenform auszugeben und diese Daten als neue Tabelle weiterzuverwenden oder zu bearbeiten.</p>



<h3 class="wp-block-heading">Beispiele für SQL-Befehle der verschiedenen Kategorien</h3>



<p><strong>Wichtige DML-Befehle<br></strong>&#8211; SELECT FROM … für das Lesen von Daten aus Tabellen<br>&#8211; DELETE FROM … für das Löschen von Daten in Tabellen<br>&#8211; INSERT INTO … für das Einfügen von Daten in Tabellen</p>



<p><strong>Wichtige DDL-Befehle<br></strong>&#8211; CREATE TABLE … &#8211; für das Anlegen von Tabellen<br>&#8211; DROP INDEX … für das Löschen eines Index<br>&#8211; ALTER TABLE … für das Ändern von Tabellen</p>



<p><strong>Wichtige DCL-Befehle<br></strong>&#8211; GRANT ON TO … für die Weitergabe von Rechten an einer Tabelle zu einem bestimmten User<br>&#8211; REVOKE … für das Widerrufen von Rechten</p>



<h3 class="wp-block-heading">Datentypen in SQL</h3>



<p>Mit Befehlen wie „CREATE TABLE“ oder „ALTER TABLE“ lassen sich per Tabellen und Spalten anlegen, für die jeweils ein Datentyp zu definieren ist. Zu diesem Zweck sind in dieser Sprache viele verschiedene Datentypen vorgesehen. Wichtige Standarddatentypen sind beispielsweise:</p>



<p>&#8211; Integer für ganze Zahlen<br>&#8211; Numeric und Decimal für Festkommazahlen<br>&#8211; Float, Real und Double für Gleitkommazahlen<br>&#8211; Charakter und Text für Zeichenketten<br>&#8211; Date und Time für Datum- und Zeitangaben<br>&#8211; diverse Binärformate wie Blob<br>&#8211; und viele mehr</p>



<h3 class="wp-block-heading">Programmieren mit SQL?</h3>



<p>Bei dieser Datenbanksprache handelt es sich um keine vollwertige Programmiersprache. Mit den Befehlen selbst können daher keine vollständigen Programme erstellt werden. Allerdings lässt sich SQL sehr gut mit anderen Programmiersprachen kombinieren oder in Programme einbetten. Hierfür kommen verschiedene Techniken wie Embedded SQL, Programmierschnittstellen oder Frameworks zum Einsatz.</p>



<p>Bei den Befehlen kann zwischen dynamischem und statischem SQL unterschieden werden. Während statische Anweisungen beim Zeitpunkt der Übersetzung des Programms festgelegt sind, sind dynamische Anweisungen erst direkt zum Zeitpunkt der Programmausführung bekannt. Dadurch müssen die Anweisungen direkt zur Laufzeit der Programme durch das Datenbanksystem interpretiert werden.</p>
<p>Der Beitrag <a href="https://ceosbay.com/2022/10/29/structured-query-language-sql/">SQL &#8211; Structured Query Language &#8211; Industriestandard-Sprache zur Verwaltung und Manipulation von relationalen Datenbanken</a> erschien zuerst auf <a href="https://ceosbay.com">CEOsBay</a>.</p>
]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">109</post-id>	</item>
	</channel>
</rss>
