Base de Datos SQL para radiodifusión

Base de Datos SQL para radiodifusión

mario.hernandez 20 December 2020

La siguiente estructura de Base de datos SQL toma como ejemplo el servicio de Televisión Digital Terrestre, sin embargo, aplicaría lo mismo para el Servicio de radio AM y FM, e incluso otros servicios diferentes a la radiodifusión:

Esquema de Base de Datos Radiodifusión

Figura 1. Esquema de Base de Datos SQL para la TDT.

El esquema de la base de datos que se representa en la Figura 1, consta de 3 Tablas SQL, de la siguiente manera:

  1. infoTDT: Contiene los parámetros técnicos de las estaciones transmisoras. Dado que cada servicio posee parámetros técnicos propios, pudiensen existir otras tablas para cada uno de ellos, por ejemplo, infoFM, infoAM, info4G, para radio FM, radio AM y red 4G, respectivamente:

    parámetros técnicos
  2. inegi2010: Contiene la información de las localidades definidas por el INEGI. En este ejemplo, se observa la base de datos del 2010:



  3. popTDT: Tabla que conecta/relaciona las tablas infoTDT e inegi2010, en otras palabras, nos permite saber que estaciones tiene cobertura en cada una de las localidades del inegi2010. Abajo un fragmento de la tabla, ahí por ejemplo, la población con id del INEGI=290340181, tiene servicio de las estaciones con id=1 y id=2, de la Tabla infoTDT, es decir, XEIMT y XEIPN, respectivamente:

De esta forma ahora podremos hacer consultas a nuestra base de datos de forma rápida en lenguaje SQL, dejo unos elemplos:

¿Qué estaciones de TDT brindan servicio a la localidad del INEGI con id=290340181?

SELECT DISTINCT infoTDT_id, infoTDT.e_call FROM popTDT
	INNER JOIN infoTDT ON infoTDT.id=infoTDT_id
	WHERE inegi2010_id LIKE "290340181";

¿Todas las poblaciones del INEGI que cuentan por lo menos con presencia de alguna estación de Televisión Digital?

SELECT DISTINCT inegi2010_id, inegi2010.* FROM popTDT
	INNER JOIN inegi2010 ON inegi2010.id=popTDT.inegi2010_id
ORDER BY inegi2010_id;

¿Cuáles poblaciones de México (INEGI) NO cuentan con servicio de Televisión Digital?

SELECT * FROM inegi2010
	WHERE id NOT IN (SELECT DISTINCT inegi2010_id FROM popTDT)
ORDER BY id;

¿Poblaciones donde brinda servicio la estación XEIPN (Tomando en cuenta transmisores Principales y Complementarios)?

SELECT DISTINCT inegi2010.* FROM infoTDT
	INNER JOIN popTDT ON infoTDT.id=popTDT.infoTDT_id
	INNER JOIN inegi2010 ON popTDT.inegi2010_id=inegi2010.id
	WHERE e_call="XEIPN" 
ORDER BY inegi2010.id;

 

Mario Hernández Twitter: @armiok