<?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>Maggie Nelson &#187; relational</title>
	<atom:link href="http://maggienelson.com/tag/relational/feed/" rel="self" type="application/rss+xml" />
	<link>http://maggienelson.com</link>
	<description>databases and code goodness</description>
	<lastBuildDate>Tue, 06 Apr 2010 17:24:02 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>More distributed key/value storage options</title>
		<link>http://maggienelson.com/2009/07/more-distributed-keyvalue-storage-options/</link>
		<comments>http://maggienelson.com/2009/07/more-distributed-keyvalue-storage-options/#comments</comments>
		<pubDate>Tue, 14 Jul 2009 14:47:15 +0000</pubDate>
		<dc:creator>maggie</dc:creator>
				<category><![CDATA[entry]]></category>
		<category><![CDATA[cassandra]]></category>
		<category><![CDATA[couchdb]]></category>
		<category><![CDATA[data]]></category>
		<category><![CDATA[database]]></category>
		<category><![CDATA[distributed]]></category>
		<category><![CDATA[keyvalue]]></category>
		<category><![CDATA[relational]]></category>
		<category><![CDATA[tokyocabinet]]></category>

		<guid isPermaLink="false">http://maggienelson.com/?p=277</guid>
		<description><![CDATA[CouchDB has infected me and I&#8217;ve been reading a lot about alternative ways to store data AND organize it.  In the midst of options for alternatives to relational databases, these two stand out:
Cassandra &#8211; &#8220;Cassandra is a highly scalable, eventually consistent, distributed, structured key-value store. Cassandra brings together the distributed systems technologies from Dynamo [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://couchdb.apache.org/">CouchDB</a> has infected me and I&#8217;ve been reading a lot about alternative ways to store data AND organize it.  In the midst of options for alternatives to relational databases, these two stand out:</p>
<p><a href="http://incubator.apache.org/cassandra/">Cassandra</a> &#8211; &#8220;Cassandra is a highly scalable, eventually consistent, distributed, structured key-value store. Cassandra brings together the distributed systems technologies from Dynamo and the data model from Google&#8217;s BigTable. Like Dynamo, Cassandra is eventually consistent. Like BigTable, Cassandra provides a ColumnFamily-based data model richer than typical key/value systems.&#8221;</p>
<p>The huge appeal of Cassandra seems to be the approach to make it highly fault-tolerant.  Writes never fail.  Data is always available.  No single point of failure.  If you&#8217;re making a Twitter-like app, you should consider it.  </p>
<p><a href="http://tokyocabinet.sourceforge.net/spex-en.html">Tokyo Cabinet</a> &#8211; &#8220;Tokyo Cabinet uses hash algorithm to retrieve records. If a bucket array has sufficient number of elements, the time complexity of retrieval is &#8220;O(1)&#8221;. That is, time required for retrieving a record is constant, regardless of the scale of a database. It is also the same about storing and deleting. Collision of hash values is managed by separate chaining. Data structure of the chains is binary search tree. Even if a bucket array has unusually scarce elements, the time complexity of retrieval is &#8220;O(log n)&#8221;.&#8221;</p>
<p>Tokyo Cabinet is slightly newer and is apparently stupidly fast, faster than any other storage solutions out there (at least for now). It&#8217;s written in C and provided as API of C, Perl, Ruby, Java, and Lua.</p>
<p>Do you know anyone who has used these two already?  Care to share your experiences?</p>
]]></content:encoded>
			<wfw:commentRss>http://maggienelson.com/2009/07/more-distributed-keyvalue-storage-options/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>ORM in the PHP World</title>
		<link>http://maggienelson.com/2009/05/orm-in-the-php-world/</link>
		<comments>http://maggienelson.com/2009/05/orm-in-the-php-world/#comments</comments>
		<pubDate>Thu, 21 May 2009 16:05:36 +0000</pubDate>
		<dc:creator>maggie</dc:creator>
				<category><![CDATA[entry]]></category>
		<category><![CDATA[architecture]]></category>
		<category><![CDATA[code]]></category>
		<category><![CDATA[database]]></category>
		<category><![CDATA[orm]]></category>
		<category><![CDATA[relational]]></category>

		<guid isPermaLink="false">http://maggienelson.com/?p=262</guid>
		<description><![CDATA[Yesterday I gave a talk at the php&#124;tek 2009 Conference about the ORM in the PHP World.  In the first part of the presentation, I&#8217;m focusing on what an ORM is, what would make a great ORM, design patters for ORM and tying ORM systems to the PHP world in terms of philosophy, uses [...]]]></description>
			<content:encoded><![CDATA[<p>Yesterday I gave a talk at the <a href="http://joind.in/event/view/14">php|tek 2009 Conference</a> about the <a href="http://maggienelson.com/conferences/phptek2009/ORM_in_the_PHP_World.pdf">ORM in the PHP World</a>.  In the first part of the presentation, I&#8217;m focusing on what an ORM is, what would make a great ORM, design patters for ORM and tying ORM systems to the PHP world in terms of philosophy, uses and approaches.  The second part of the presentation talks about a list of ORMs that I have seen and their pros and cons.  </p>
<p>The ORMs I mention:</p>
<ul>
<li><a href="http://propel.phpdb.org/trac/">Propel</a></li>
<li><a href="http://www.doctrine-project.org/">Doctrine</a></li>
<li><a href="http://getdorm.com/">dOrm</a></li>
<li>Zend Framework &#8211; specifically the proposed <a href="http://framework.zend.com/wiki/display/ZFPROP/Zend_Db_Mapper+-+Benjamin+Eberlei">Zend_Db_Mapper</a></li>
<li><a href="http://xyster.devweblog.org/wiki/xyster/Orm">Xyster Framework</a></li>
<li><a href="http://codeigniter.com/user_guide/">CodeIgniter</a></li>
<li>ez components&#8217;s <a href="http://ezcomponents.org/docs/api/latest/introduction_PersistentObject.html">Persistent Object</a> and <a href="http://ezcomponents.org/docs/tutorials/PersistentObject#the-persistence-mapping">Persistent Mapping</a></li>
<li><a href="http://www.symfony-project.org/doc/1_2/">symfony</a></li>
<li><a href="http://phplinq.codeplex.com/">PHPLinq</a></li>
<li><a href="http://solarphp.com/package/Solar_Sql_Model">Solar&#8217;s Solar_Sql_Model</a></li>
<li><a href="http://www.outlet-orm.org/">Outlet PHP ORM</a></li>
<li><a href="http://www.coughphp.com/">CoughPHP</a></li>
<li><a href="http://www.greaterscope.net/projects/ORMer">ORMer</a></li>
</ul>
<p>I plan on talking about each of these ORMs in detail in separate blog posts, so stay tuned!</p>
]]></content:encoded>
			<wfw:commentRss>http://maggienelson.com/2009/05/orm-in-the-php-world/feed/</wfw:commentRss>
		<slash:comments>20</slash:comments>
		</item>
	</channel>
</rss>
