<?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>Bosque Viejo &#187; sql</title>
	<atom:link href="http://bosqueviejo.net/tag/sql/feed/" rel="self" type="application/rss+xml" />
	<link>http://bosqueviejo.net</link>
	<description>Sitio web sobre programación, software libre, redes, servidores, ofimática... y todo lo relacionado con la informática que nos rodea</description>
	<lastBuildDate>Tue, 08 May 2012 14:40:56 +0000</lastBuildDate>
	<language>es</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
		<item>
		<title>NewSQL: dos vías para mejorar SQL</title>
		<link>http://bosqueviejo.net/2011/12/20/newsql-dos-vias-para-mejorar-sql/</link>
		<comments>http://bosqueviejo.net/2011/12/20/newsql-dos-vias-para-mejorar-sql/#comments</comments>
		<pubDate>Tue, 20 Dec 2011 14:40:30 +0000</pubDate>
		<dc:creator>bombadil</dc:creator>
				<category><![CDATA[Base de Datos]]></category>
		<category><![CDATA[jdb]]></category>
		<category><![CDATA[newsql]]></category>
		<category><![CDATA[s2]]></category>
		<category><![CDATA[sql]]></category>

		<guid isPermaLink="false">http://bosqueviejo.net/?p=1171</guid>
		<description><![CDATA[ Últimamente hay muchos medios (como SDJournal) que van haciendo eco de una nueva versión, según algunos más fácil, de SQL.
Según vemos en la página oficial del proyecto, NewSQL dispone a día de hoy de dos posibles gramáticas a implementar. Una de ellas está basada en la Java Database (JDB) y otra sería la evolución propia de SQL (SQL II, o S2). Aún no se ha decidido qué versión será la empleada como newSQL, por lo que, podemos decir que es un proyecto a futuro y no hay implementación real de momento.
Implementación JDB
La sintaxis que se desea implementar al estilo JDB tendría esta forma en comparación con el SQL actual:


SQL
NewSQL JDB



CREATE TABLE TEST (
&#160;&#160;ID INT PRIMARY KEY,
&#160;&#160;NAME VARCHAR(255)
)


test = new table(
&#160;&#160;int id,
&#160;&#160;string name,
&#160;&#160;key(id)
)



INSERT INTO TEST VALUES(1, &#8216;Hello&#8217;)
test.add(1, &#8216;Hello&#8217;)


SELECT * FROM TEST
test.get()


SELECT T1.ID, T2.NAME FROM TEST T1, TEST T2 WHERE T.ID = T2.ID
t1 = test; t2 = test; t1.join(t2[t1.id==t2.id]).get(t1.id, t2.name)


UPDATE TEST SET NAME=&#8217;Hi&#8217; WHERE ID=1
test[id==1].set(name=&#8217;Hi&#8217;)


DELETE FROM TEST WHERE ID=1
test[id==1].delete()


DROP TABLE TEST
test.drop()


La sintaxis puede parecer bastante clara y limpia, sobre todo para los que programan con lenguajes del estilo de Java, C++, PHP y de sintaxis derivada. No obstante, si tenemos en cuenta que esto sustituye a SQL, pero no a la [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://bosqueviejo.net/wp-content/uploads/sql-150x150.jpg" alt="" title="sql" width="150" height="150" class="alignleft size-thumbnail wp-image-1172" /> Últimamente hay muchos medios (como <a href="http://en.sdjournal.org/software-developers-journal-511-5/">SDJournal</a>) que van haciendo eco de una nueva versión, según algunos más fácil, de SQL.</p>
<p>Según vemos en la <a href="http://newsql.sourceforge.net/">página oficial</a> del proyecto, NewSQL dispone a día de hoy de dos posibles gramáticas a implementar. Una de ellas está basada en la <em>Java Database</em> (JDB) y otra sería la evolución propia de SQL (SQL II, o S2). Aún no se ha decidido qué versión será la empleada como newSQL, por lo que, podemos decir que es un proyecto a futuro y no hay implementación real de momento.</p>
<h3>Implementación JDB</h3>
<p>La sintaxis que se desea implementar al estilo JDB tendría esta forma en comparación con el SQL actual:</p>
<table>
<tr>
<th>SQL</th>
<th>NewSQL JDB</th>
</tr>
<tr>
<td>
CREATE TABLE TEST (<br />
&nbsp;&nbsp;ID INT PRIMARY KEY,<br />
&nbsp;&nbsp;NAME VARCHAR(255)<br />
)
</td>
<td>
test = new table(<br />
&nbsp;&nbsp;int id,<br />
&nbsp;&nbsp;string name,<br />
&nbsp;&nbsp;key(id)<br />
)
</td>
</tr>
<tr>
<td>INSERT INTO TEST VALUES(1, &#8216;Hello&#8217;)</td>
<td>test.add(1, &#8216;Hello&#8217;)</td>
</tr>
<tr>
<td>SELECT * FROM TEST</td>
<td>test.get()</td>
</tr>
<tr>
<td>SELECT T1.ID, T2.NAME FROM TEST T1, TEST T2 WHERE T.ID = T2.ID</td>
<td>t1 = test; t2 = test; t1.join(t2[t1.id==t2.id]).get(t1.id, t2.name)</td>
</tr>
<tr>
<td>UPDATE TEST SET NAME=&#8217;Hi&#8217; WHERE ID=1</td>
<td>test[id==1].set(name=&#8217;Hi&#8217;)</td>
</tr>
<tr>
<td>DELETE FROM TEST WHERE ID=1</td>
<td>test[id==1].delete()</td>
</tr>
<tr>
<td>DROP TABLE TEST</td>
<td>test.drop()</td>
</tr>
</table>
<p>La sintaxis puede parecer bastante clara y limpia, sobre todo para los que programan con lenguajes del estilo de Java, C++, PHP y de sintaxis derivada. No obstante, si tenemos en cuenta que esto sustituye a SQL, pero no a la forma de enviar las consultas, generar una cadena de texto de este estilo para enviarla al Sistema Gestor de Base de Datos, puede resultar bastante tedioso igualmente.</p>
<p>Hay bastantes dudas sobre, por ejemplo el INSERT, ya que, ahí nos muestran una inserción completa, pero, ¿y si queremos que haya datos por defecto y solo declarar algunos? &#8230; igualmente, en la cadena de búsqueda, da la sensación de haber empleado XPath para seleccionar las tuplas&#8230; ¿cómo se haría si se busca por un criterio en lugar de un ID? &#8230; al final puede quedar algo difícil de entender, realmente.</p>
<h3>SQL II (S2)</h3>
<p>La otra opción, es una versión evolucionada de SQL (o simplificada, según se mire), que tiene la siguiente forma:</p>
<table>
<tr>
<th>SQL</th>
<th>NewSQL JDB</th>
</tr>
<tr>
<td>
CREATE TABLE TEST (<br />
&nbsp;&nbsp;ID INT PRIMARY KEY,<br />
&nbsp;&nbsp;NAME VARCHAR(255)<br />
)
</td>
<td>
create table test (<br />
&nbsp;&nbsp;id int;<br />
&nbsp;&nbsp;name string;<br />
&nbsp;&nbsp;primary key(id)<br />
)
</td>
</tr>
<tr>
<td>INSERT INTO TEST VALUES(1, &#8216;Hello&#8217;)</td>
<td>insert test (1, &#8216;Hello&#8217;)</td>
</tr>
<tr>
<td>SELECT * FROM TEST</td>
<td>select test</td>
</tr>
<tr>
<td>SELECT T1.ID, T2.NAME FROM TEST T1, TEST T2 WHERE T.ID = T2.ID</td>
<td>select t1:test join t2:test on t1.id == t2.id get t1.id, t2.name</td>
</tr>
<tr>
<td>UPDATE TEST SET NAME=&#8217;Hi&#8217; WHERE ID=1</td>
<td>update test set id=1 where name==&#8217;Hi&#8217;</td>
</tr>
<tr>
<td>DELETE FROM TEST WHERE ID=1</td>
<td>delete test where id==1</td>
</tr>
<tr>
<td>DROP TABLE TEST</td>
<td>drop test</td>
</tr>
</table>
<p>Revisándolo, se ve claro que no aporta mucho, realmente, a lo que se usa de hoy en día. Es más, se intenta introducir de forma fija el uso del operador &#8220;==&#8221; en lugar de &#8220;=&#8221;, lo cual resulta extraño e inapropiado, desde mi punto de vista, ya que, en todo caso, cambiaría mejor el &#8220;=&#8221; del UPDATE por un &#8220;&lt;-&#8221;.</p>
<h3>Conclusiones</h3>
<p>Desde mi punto de vista, más que centrarse en cómo escribir &#8220;mejor&#8221; los sistemas SQL, deberían de centrarse en agregar dichas sentencias para que se mezclasen con el código, algo como <a href="http://es.wikipedia.org/wiki/SQLJ">SQLJ</a>, de cara a integración con los lenguajes, y de cara al mejor uso de SQL, hacer estándares del uso de las fechas (que cada sistema los usa a su forma), así como los LIMIT, funciones básicas y tipos de datos, entre otras muchas cosas, para que los SGBD fuesen más compatibles entre ellos.</p>
]]></content:encoded>
			<wfw:commentRss>http://bosqueviejo.net/2011/12/20/newsql-dos-vias-para-mejorar-sql/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>El futuro de MySQL</title>
		<link>http://bosqueviejo.net/2010/03/02/el-futuro-de-mysql/</link>
		<comments>http://bosqueviejo.net/2010/03/02/el-futuro-de-mysql/#comments</comments>
		<pubDate>Tue, 02 Mar 2010 15:55:56 +0000</pubDate>
		<dc:creator>bombadil</dc:creator>
				<category><![CDATA[Base de Datos]]></category>
		<category><![CDATA[base de datos]]></category>
		<category><![CDATA[drizzle]]></category>
		<category><![CDATA[free software]]></category>
		<category><![CDATA[mariadb]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[sql]]></category>

		<guid isPermaLink="false">http://bosqueviejo.net/?p=240</guid>
		<description><![CDATA[Desde que MySQL fuese vendida a Sun Microsystems, ha habido bastante gente que ha visto con otros ojos el proyecto, mostrándose algo escépticos a que MySQL pudiera seguir siendo lo que venía siendo, una base de datos libre sin mayores pretensiones. Pero siendo Sun Microsystems una empresa que ha realizado mucho código para la comunidad, pero también ha guardado mucho otro de forma recelosa, teníamos nuestras dudas.
El problema real vino cuando Sun Microsystems fue adquirida por Oracle. Esta adquisición puso a MySQL en la duda de si seguiría siendo lo que es, o pasaría a ser otro producto más recortado en su versión comunitaria y ofrecido por un precio medio/alto a empresas que se lo puedan permitir. Como si de una versión light de Oracle DB se tratase.
Entre todo este tumulto, en parte levantado por Monty, uno de los principales desarrolladores de MySQL, que se fue de la empresa cuando comenzó todo el lío, surgen varias versiones de MySQL, forks, que prometen seguir la línea original y seguir apostando por el crecimiento de este sistema dentro de la comunidad y el software libre.
Una de las apuestas es MariaDB, promovida por el propio Monty, es un fork del último código estable [...]]]></description>
			<content:encoded><![CDATA[<p>Desde que <a href="http://www.error500.net/sun-compra-mysql">MySQL fuese vendida a Sun Microsystems</a>, ha habido bastante gente que ha visto con otros ojos el proyecto, mostrándose algo escépticos a que MySQL pudiera seguir siendo lo que venía siendo, una base de datos libre sin mayores pretensiones. Pero siendo Sun Microsystems una empresa que ha realizado mucho código para la comunidad, pero también ha guardado mucho otro de forma recelosa, teníamos nuestras dudas.</p>
<p>El problema real vino cuando <a href="http://www.error500.net/articulo/sun-microsystems-acaba-en-manos-oracle">Sun Microsystems fue adquirida por Oracle</a>. Esta adquisición puso a MySQL en la duda de si seguiría siendo lo que es, o pasaría a ser otro producto más recortado en su versión comunitaria y ofrecido por un precio medio/alto a empresas que se lo puedan permitir. Como si de una versión <em>light</em> de Oracle DB se tratase.</p>
<p>Entre todo este tumulto, <a href="http://www.xombra.com/go_news.php?articulo=4125">en parte levantado por Monty</a>, uno de los principales desarrolladores de MySQL, que se fue de la empresa cuando comenzó todo el lío, surgen varias versiones de MySQL, forks, que prometen seguir la línea original y seguir apostando por el crecimiento de este sistema dentro de la comunidad y el software libre.</p>
<p>Una de las apuestas es <a href="http://askmonty.org/wiki/index.php/MariaDB"><strong>MariaDB</strong></a>, promovida por el propio Monty, es un fork del último código estable de MySQL, agregando todos los patchs que no se incluyeron en MySQL y dando soporte a problemas que parece que los desarrolladores principales de MySQL han olvidado.</p>
<p>En otro punto se sitúa el proyecto <a href="http://drizzle.org/wiki/About_Drizzle"><strong>Drizzle</strong></a>, que intenta seguir los ideales iniciales de MySQL en un punto en los que muchos de los desarrolladores que pertenecían a esta comunidad, consideran que se torció el desarrollo principal.</p>
<p>Con esto podemos decir que el espíritu de MySQL no ha muerto, ni morirá, puesto que seguirá vivo en dos ramas separadas de su código original en los momentos clave en los que cada comunidad vió que era el momento de un cambio.</p>
<p>Como nota curiosa, el ecosistema de protección de los sistemas gestores de base de datos abiertas (<a href="http://odba.org/about/">Open Database Alliance</a>), se encarga de la promoción entorno a los sistemas gestores de las base de datos. Una propuesta interesante que promete un poco de seguridad dentro de este entorno.</p>
]]></content:encoded>
			<wfw:commentRss>http://bosqueviejo.net/2010/03/02/el-futuro-de-mysql/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
	</channel>
</rss>

