Archivo de la categoría: Base de Datos

SQL y Teoria de Conjuto

Muchas veces cuando estamos haciendo consultas SQL complejas olvidamos que la teoria de conjunto puede sernos muy util, es alli donde esta imagen dice mas que mil palabras

SQL Joins

SQL Joins

Estuve buscando el post original de esta imagen pero no lo encontré.

Agradecimiento es para mi pana JETTO, quien hace poco compartió esta imagen en un google+.

Los invito a compartir este post para que seamos muchos los que podamos beneficiarnos de tan gráfico ejemplo.

Anuncios

BD País, Estado, Municipio, Parroquia.

Buscando en la web una base de datos con información de sobre Estados, Municipios, Parroquias; en Venezuela los resultados fueron bastantes pobres, ademas del hecho de que como comprobar la veracidad de tal información, es allí donde decido apuntar a los entes oficiales, me comentaron que el INE de Venezuela tenia tal información pero en todo su web no la encontré,  así que apunte al CNE y bueno luego de un trabajo interesante (problema de estructura datos que comentare mas adelante), obtuve los script que encontraran mas adelante.

A continuación, veremos dos formas de implementar a nivel de base de datos la información de las localidades:

1. – Modelo normalizado donde encontraremos esta información divida en diferentes tablas.

Modelo Normalizado

Modelo Normalizado de varias tablas

Este modelo no necesita mayor explicación, ya que es la forma habitual como trabajamos con una tablas de BD.

2. – Modelo de una sola tabla, esto debido a que muchos en algunas ocasiones por la naturaleza de los datos, unen en una sola tabla este tipo de información, ya que básicamente estamos hablando de localidades (texto).

Tabla localidades

Modelo de una Tabla

En este modelo manejamos 2 ordenes, uno superior que es la tabla localidades en si misma y uno de menor nivel que  indica el tipo localidad que estamos manejando, que esta representado por campo tabla, el cual debería contener algo como los siguientes valores: país, estado, municipio, parroquia, posiblemente región, entre otros. Algunos podrían comentar que el campo no hace falta, pero en mi caso yo lo agrego para tener una información mas consistente del dato que estamos manejando y facilitar algunas consultas SQL. Otro tema a tener en cuenta es que MySQL no implementa cheks de campos como lo hace PosgreSQL, en ese sentido, tal vez es necesario el uso de un trigger (no implementado en estos scritps) para garantizar que el campo tabla, contenga solo los valores permitidos.

Los scripts fueron migrado a github, aquí el enlace: https://github.com/josearodrigueze/localidad-ve

Para finalizar, me gustaría hacer crecer estos scripts con la información de mas naciones, al menos en primera instancia latinoamerica. Quienes deseen colaborar pueden dejar un comentario o escribirme a josearodrigueze@gmail.com o por twitter @josearodrigueze. Otra forma simple de colaborar es compartiendo el post para así sumar la mayor cantidad de colaboradores posibles. Gracias.

Entrada Original: Jose A. Rodriguez E.