PHP-Hispano.net Comunidad hispana de desarrollo web

Contacto | #php_para_torpes | Enlázanos | ¿Quiénes somos?

1106 usuarios Online (0)

Darse de alta en la web | Recuperar password   
Inicio / Noticias PHP-Hispano / Diseño y uso de bases de datos relacionales

Diseño y uso de bases de datos relacionales

por Zubyc 10 jun 09 7056 lecturas 9 comentarios

Noticias anteriores

Eloy, que está en racha, nos ha enviado otro artículo para publicar en PHP-Hispano. Siguiendo la temática anterior, éste también trata sobre bases de datos, aunque en este caso nos explica una serie de pautas a seguir para diseñar una base de datos. Cómo organizar las tablas y las claves en función de los datos de los que dispongamos. De la misma forma, hace un repaso por las directivas más importantes utilizadas cuando realizamos consultas en la BD.

Os dejo una introducción all artículo, junto con el índice del mismo y el enlace donde podéis encontrarlo.


Para diseñar una base de datos se parte de la recolección de atributos o campos que va a tener, y de la definición de sus tipos de dato. La manera más profesional es realizando el análisis de requisitos con todas las personas que van a hacer uso de los datos. Pero por experiencia ya sabéis que esto se hace muy a ojo: os piden realizar una aplicación y según los requisitos de la aplicación hacéis el diseño de la BD...

* Diseñando la BD
* Normalizando la BD
* Normalizando la BD: primera forma normal (1FN)
* Normalizando la BD: segunda forma normal (2FN)
* Normalizando la BD: tercera forma normal (3FN)
* Diseñando la BD sobre la marcha
* Consultando la BD: SELECT
* Consultando la BD: INNER JOIN
* Consultando la BD: LEFT JOIN
* Consultando la BD: GROUP BY
* Consultando la BD: optimizar consultas

http://www.php-hispano.net/articulos/modelo-uso-bases-datos-relacionales.html

Comentarios (9)

Avatar de Irozga #1 Irozga
10 jun 09
Que grande eloy, muchísimas gracias^^
Avatar de jurena #2 jurena
12 jun 09
Eloy,
tu artículo es magnífico, con un estilo conciso, vigoroso y claro, y, en mi humilide opinión, muy, muy útil. Me ha encantado.
Lo recomiendo a todos nuestros amigos del foro. Y tú sigue escribiendo artículos como este. Si aceptas alguna sugerencia, yo diría: como hacer mejores subconsultas.

Avatar de Arias #3 Arias
13 jun 09
Como siempre: excelente
Avatar de jordifreek #4 jordifreek
15 jun 09
Mil gracias Eloy, está cojonudo. Tiempo ya buscando esta información.
Avatar de Eloy8857 #5 Eloy8857
16 jun 09
Me alegro de que os sea útil!

El análisis es algo que descuidamos con frecuencia... pero es el cimiento de todo desarrollo así que nos conviene mimarlo. Programar bien no sirve de nada si el análisis es mediocre; y según crecen los proyectos es más necesario que la base esté bien formada: para futuras modificaciones y ampliaciones por ejemplo.

A ver con qué os sorprendo la próxima vez...
Avatar de Arias #6 Arias
19 jun 09
Un streaptease tal vez? :P
Avatar de Eloy8857 #7 Eloy8857
23 jun 09
Acabo de modificar la página de INNER JOIN con un ejemplo algo más largo, con tres tablas. Ya me habían comentado un par de personas que se echaba en falta algún ejemplo más complejo así que ahí tenéis :)

Por cierto Zubyc, prueba lo de modificar el artículo por partes, ¿no?
Avatar de Zubyc #8 Zubyc
24 jun 09
Perdón Eloy, descuido mio, pero ya está solucionado ;)
Avatar de osmodiars #9 osmodiars
06 jul 09
La verdad muy bueno, muy claro al explicar que hay muchas formas de crear tablas y de generar consultas. No siempre es la misma solucion para todas las db, primero hay que analizarla muy bien y luego crearla. En mi opinión, las tablas de la db deben ser creadas "perfectamente", no hay margen de error.

Sobre la optimizacion de las consultas, al principio parece innecesario, pues al principio uno maneja dbs con pocos datos. No importa las consultas que usemos, el tiempo de execucion no sera notado...pero en db con muchisimos datos, la optimizacion es muy neceria.

Tuve una experiencia en mysql, tuve que optimizar una consutla, demoraba como 40 seg... y la solucion la verdad que no me la esperaba

No voy a escribir la consulta entera, pero era algo asi

SELECT
[valores],
(SELECT [valores] WHERE a!=b)
INNER JOIN [tabla] ON [condicion]
WHERE [condiciones]

probe de todo, y no lograba optimizar la consulta, hasta que ya en mis ultimos intentos cambie:

(SELECT [valores] WHERE a=a OR a=c) (osea, saque el !=)

No se por que, pero la consulta se optimizo como 30 segundos.

Tal vez eso les sirve para optimizar mas sus consultas.

Gracias por el articulo :)
Para poder participar debes estar registrado e identificado. Si no estás registrado como usuario de PHP-Hispano, :: Registrar ::
Login / Password   

php-hispano.net 2002 - 2010 | XHTML 1.0
Datos Legales | Webmaster