<?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>ebene7 &#187; Datenstruktur</title>
	<atom:link href="http://blog.ebene7.com/schlagwort/datenstruktur/feed/" rel="self" type="application/rss+xml" />
	<link>https://blog.ebene7.com</link>
	<description></description>
	<lastBuildDate>Tue, 04 Jun 2013 18:57:27 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>CouchDB: kann mehr als nur Möbel speichern</title>
		<link>https://blog.ebene7.com/2010/09/30/couchdb-kann-mehr-als-nur-moebel-speichern/</link>
		<comments>https://blog.ebene7.com/2010/09/30/couchdb-kann-mehr-als-nur-moebel-speichern/#comments</comments>
		<pubDate>Thu, 30 Sep 2010 05:00:23 +0000</pubDate>
		<dc:creator>Daniel</dc:creator>
				<category><![CDATA[Datenbank]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[CouchDB]]></category>
		<category><![CDATA[Datenstruktur]]></category>
		<category><![CDATA[Futon]]></category>
		<category><![CDATA[MySQL]]></category>
		<category><![CDATA[Rest-API]]></category>

		<guid isPermaLink="false">http://blog.ebene7.com/?p=1514</guid>
		<description><![CDATA[CouchDB klingt nicht nur bequem, es ist bequem! CouchDB ist eine dokumentenbasierte Datenbank mit REST-API, serverseitigen JavaScript-Views, Datenaustausch im JSON-Format und weil das noch nicht genug ist gibt es das Admin-Webinterface Futon gleich noch mit der Installation dazu. Die Anbindung &#8230; <a href="https://blog.ebene7.com/2010/09/30/couchdb-kann-mehr-als-nur-moebel-speichern/">Weiterlesen <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>CouchDB klingt nicht nur bequem, es ist bequem! CouchDB ist eine dokumentenbasierte Datenbank mit REST-API, serverseitigen JavaScript-Views, Datenaustausch im JSON-Format und weil das noch nicht genug ist gibt es das Admin-Webinterface Futon gleich noch mit der Installation dazu.</p>
<p>Die Anbindung an eine (PHP-)Anwendung ist bei den Voraussetzungen nun denkbar einfach. Aber eins nach dem anderen.<span id="more-1514"></span></p>
<p>Was macht CouchDB denn aber nun zu einer &#8220;bequemen&#8221; Datenbank? Eigentlich fast alles. CouchDB arbeitet mit Dokumenten und eignet sich dadurch besonders für variable Strukturen und jegliche Daten, die eigentlich nicht in eine relationale Datenbank passen und nur mit viel Mühe geschrieben und gelesen werden können.</p>
<p>In RDBM-Systemen werden derartige Daten im besten Fall im EAV-Datenbankmodel (EAV = Entity-Attribute-Value) abgelegt. Das ist nicht nur sehr CPU-lastig, sondern auch für Menschen schwer bis garnicht lesbar. In CouchDB-Dokumenten liegen die Daten quasi im Stück vor, sind schnell geladen und können auch über Futon einfach bearbeitet werden.</p>
<p>Eigentlich macht alles einen sehr einfachen und leichten Eindruck. Die Installation dauerte mit ein paar Einstellungen nicht länger als zehn Minuten und das System war zumindest als Entwicklungsserver einsatzbereit. Das Admintool Futon und die REST-API sind unter &#8220;http://localhost:5984&#8243; direkt nach dem Start verfügbar.</p>
<p>Futon überrascht mit einer eher schlichten Oberfläche ohne unnötigen Schnickschnack, bietet aber alles Nötige, um damit arbeiten zu können.</p>
<p>Die Verbindung aus der PHP-Anwendung heraus habe ich mit <code>Zend_Http_Client</code> umgesetzt, es funktioniert aber auch mit curl oder anderen HTTP-Clients. Die Daten werden im JSON-Format gelesen und auch wieder geschrieben, daher lassen sich auch komplexere Strukturen einfach mit <code>json_encode()</code> und <code>json_decode()</code> verarbeiten.</p>
<p>Im Gespräch mit einem bekannten Entwickler bekam ich die Antwort, CouchDB sei doch nur ein einfacher Key-Value-Speicher und nicht mächtig genug.</p>
<p>Dem ersten Punkt möchte ich nicht widersprechen. Grob betrachtet haben wir einen Key-Value-Speicher, der jedoch durch seine Views die Daten in beliebiger Form zusammenstellen kann (habe ich eigentlich schon erwähnt, dass die Views mit einfachen JavaScript funktionieren?). Und gegen einfach ist aus meiner Sicht auch garnichts einzuwänden. Warum sollte man auch ein Tool nutzen wollen, welches die Arbeit komplizierter statt einfacher macht?</p>
<p>Fazit: Auch Zahnarztfrauen, ähm&#8230; Möbelhändler empfehlen <a href="http://couchdb.apache.org/" target="_self">CouchDB</a>!</p>
]]></content:encoded>
			<wfw:commentRss>https://blog.ebene7.com/2010/09/30/couchdb-kann-mehr-als-nur-moebel-speichern/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Objekte und Arrays casten</title>
		<link>https://blog.ebene7.com/2010/05/18/objekte-und-arrays-casten/</link>
		<comments>https://blog.ebene7.com/2010/05/18/objekte-und-arrays-casten/#comments</comments>
		<pubDate>Tue, 18 May 2010 05:00:19 +0000</pubDate>
		<dc:creator>Daniel</dc:creator>
				<category><![CDATA[Tipps und Tricks]]></category>
		<category><![CDATA[Array]]></category>
		<category><![CDATA[Datenstruktur]]></category>
		<category><![CDATA[Foreach]]></category>
		<category><![CDATA[Objekt]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Scheifen]]></category>
		<category><![CDATA[Type-Cast]]></category>

		<guid isPermaLink="false">http://blog.ebene7.com/?p=813</guid>
		<description><![CDATA[Letzte Woche fand ich den Artikel Objekte und Arrays auf phpmonkeys.de und war, ebenso wie der Autor auch, überrascht, wie einfach doch PHP zuweilen sein kann. In dem Artikel wird beschrieben, wie man Daten aus einem Array in ein Objekt &#8230; <a href="https://blog.ebene7.com/2010/05/18/objekte-und-arrays-casten/">Weiterlesen <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Letzte Woche fand ich den Artikel <a href="http://www.phpmonkeys.de/2010/05/10/objekte-und-arrays/" target="_blank">Objekte und Arrays auf phpmonkeys.de</a> und war, ebenso wie der Autor auch, überrascht, wie einfach doch PHP zuweilen sein kann.</p>
<p>In dem Artikel wird beschrieben, wie man Daten aus einem Array in ein Objekt (oder auch umgekehrt) überführen kann, ohne jedesmal eine foreach-Schleife zum Kopieren herumzubauen. Der Trick ist einfach, wie auch genial: Einfach ein Typecast und gut ist.</p>
<p>Ähnliches habe ich ja schonmal in einem <a href="http://blog.ebene7.com/2010/01/08/foreach-mit-typecast/">Artikel</a> über den Umgang mit &#8220;Nicht-Arrays&#8221; und foreach-Schleifen beschrieben.</p>
]]></content:encoded>
			<wfw:commentRss>https://blog.ebene7.com/2010/05/18/objekte-und-arrays-casten/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
