CURSO: SEGUNDO ESTADISTICA Y BASES DE DATOS Tema 2 TEMA 2: Introducción al modelado relacional. Conceptos básicos Juan M Camarillo. Dpto. de Geografía Física y AGR Juan A. Ortega. Dpto. de Lenguajes y Sistemas Informáticos Jesús Torres. Dpto. de Lenguajes y Sistemas Informáticos Juan Pedro Pérez. Geographica Studio CURSO: SEGUNDO ESTADISTICA Y BASES DE DATOS Tema 2 CURSO: SEGUNDO ESTADISTICA Y BASES DE DATOS Tema 2 CURSO: SEGUNDO ESTADISTICA Y BASES DE DATOS Tema 2 CURSO: SEGUNDO ESTADISTICA Y BASES DE DATOS Tema 2 Modelo conceptual/relacional: Ejemplo. Se pretende construir un modelo de gestión de la calidad de los ríos de Andalucía. Los ríos presentan estaciones de control que son de dos tipos, de calidad y de aforo. Las estaciones de aforo recogen datos de caudal, mientras que las de calidad recogen datos de ph, mercurio y plomo. Al mismo tiempo se deben almacenar los datos diarios registrados en cada una de esas estaciones. Atributos de los ríos: nombre, longitud, cuenca, caudal medio, número de embalses Atributos de corriente fluvial principal: desembocadura Atributos de afluente: río principal Atributos de estación de control: fecha de alta, tipo, latitud, longitud Atributos de estación de control de calidad: número de variables químicas Atributos de estación de control de aforos: tipo de caudalímetro Atributos de datos de aforo: fecha, caudal Atributos de datos de calidad: fecha, caudal Atributos de variables de calidad: nombre, unidad de medida CURSO: SEGUNDO ESTADISTICA Y BASES DE DATOS Tema 2 Modelo conceptual Estación de control Río Código estación Código Río Nombre Longitud 1 * Tipo Fecha alta Latitud Contiene / está en Cuenca Longitud Caudal medio 1 Nº embalses 1 Pertenece a Estación de control calidad Estación de control aforo Nº de variables químicas Tipo mide * mide * Datos_aforo Fecha Datos_calidad Caudal Fecha Valor Variables_calidad Código Variable * da 1 Nombre U. medida CURSO: SEGUNDO ESTADISTICA Y BASES DE DATOS Tema 2 rio estacion_control codigo_rio, String, 10 (PK) codigo_estación, String, 10 (PK) nombre, String, 100 tipo, String, 10 longitud, numeric, 10,1 fecha_alta, Date (DD/MM/YYYY) cuenca, String, 4 latitud, numeric, 10,2 caudal_medio, numeric, 10,2 longitud, numeric 10,2 n_embalses, integer, 2 Nota: los nombres de las tablas y de los campos en minúscula, sin espacios, mayúsculas, acentos o caracteres extraños CURSO: SEGUNDO ESTADISTICA Y BASES DE DATOS Tema 2 estacion_control estacion_control_calidad 1 es 1 codigo_estación, String, 10 (PK) tipo, String, 10 codigo_estación, String, 10 (PK) fecha_alta, Date (DD/MM/YYYY) n_variables_quimicas, integer, 3 latitud, numeric, 10,2 FK. Foreign Key. Clave foránea longitud, numeric 10,2 PK. Primary Key. Clave primaria CURSO: SEGUNDO ESTADISTICA Y BASES DE DATOS Tema 2 * datos_calidad codigo_estación, String, 10 (FK) codigo_variable, String, 10 (FK) fecha, Date, (DD/MM/AYYYY) estacion_control 1 valor, numeric, 10,2 codigo_estacion, String, 10 (PK) codigo_rio, String, 10 (FK) tipo, String, 10 datos_aforo fecha_alta, Date, (DD/MM/YYYY) latitud, numeric, 10,2 codigo_estacion, String, 10 (FK) longitud, numeric, 10,2 * fecha, Date, (DD/MM/YYYY) caudal, numeric, 10,2 CURSO: SEGUNDO ESTADISTICA Y BASES DE DATOS Tema 2 asignaturas profesores nrp, String, 10 (PK) * * codigo, integer, 10 (PK) nombre, String, 100 nombre, String, 50 categoría, texto, 50 curso, String, 20 Profesores_asignaturas nrp, String, 10 (FK) codigo, integer, 10 (FK) CURSO: SEGUNDO ESTADISTICA Y BASES DE DATOS Tema 2 estacion_control_calidad estacion_control codigo_estación, String, 10 (PK) codigo_estacion (FK), String, 10 n_variables_quimicas, integer, 3 tipo, String, 10 fecha_alta, Date (DD/MM/YYYY) latitud, numeric, 10,2 estacion_control_aforo longitud, numeric 10,2 codigo_estacion (FK), String, 10 tipo, String, 40 Modelo conceptual Estación de control Río Código estación Código Río Nombre Longitud 1 * Contiene / está en Cuenca Tipo Fecha alta Latitud Longitud Caudal medio 1 Nº embalses 1 Pertenece a Estación de control calidad Estación de control aforo Nº de variables químicas Tipo mide * * mide Datos_aforo Fecha Datos_calidad Caudal Fecha Valor Variables_calidad Código Variable * da 1 Nombre U. medida estacion_control Modelo lógico rio codigo_estacion (PK), String, 10 codigo_rio (PK), String, 10 codigo_rio (FK), String, 10 nombre, String, 100 tipo, String, 10 longitud, numeric, 10,2 fecha_alta, Date (DD/MM/YYYY) cuenca, String, 10 latitud, numeric, 10,2 caudal medio, numeric, 10,2 longitud, numeric, 10,2 n_embalses, integer, 3 estacion_control_aforo estacion_control_calidad codigo_estacion (FK), String, 10 codigo_estacion (FK), String, 10 tipo, String, 40 n_variables_quimicas, integer, 3 Datos_calidad codigo_estacion (FK), String, 10 datos_aforo codigo_variable (FK), String, 10 codigo_estacion (FK), String, 10 Fecha, Date, (DD/MM/YYYY) fecha, Date (DD/MM/YYYY) Valor, numeric, 10,2 Caudal, numeric, 10,2 Variables__calidad Codigo_variable (PK), String, 10 nombre, String, 50 u_medida, String, 10 CURSO: SEGUNDO ESTADISTICA Y BASES DE DATOS Tema 2 rio codigo_rio nombre ID_1 longitud cuenca caudal_medio n_embalses Guadalquivir 700 C01 600 5 ID_2 Guadalete 400 C03 150 3 ID_3 Andarax 300 C07 50 1 ID_19 Genil 150 C13 200 2 ID_23 Bembézar 125 C09 125 1 ID_12 Nacimiento 146 C23 98 0 estacion_control Codigo_estacion Codigo_rio tipo Fecha_alta Latitud Longitud EC_01 ID_1 calidad 13/06/2006 4123675 635289 EC_08 ID_1 calidad 10/09/2003 4563876 513587 EA_04 ID_1 aforo 23/09/2010 4345673 589765 EA_06 ID_12 aforo 25/02/2003 4123428 634789 CURSO: SEGUNDO ESTADISTICA Y BASES DE DATOS Tema 2 estacion_control_aforo codigo_estacion tipo EA_04 1 EA_06 1 datos_aforo codigo_estación fecha caudal EA_04 22/02/2011 1318 EA_04 23/02/2011 1245 EA_04 24/02/2011 1123 EA_04 25/02/2011 1467 EA_06 22/02/2011 23 EA_06 23/02/2011 32 EA_06 24/02/2011 36 EA_06 25/02/2011 54 CURSO: SEGUNDO ESTADISTICA Y BASES DE DATOS Tema 2 estacion_control_calidad codigo_estacion n_variables_quimicas EC_01 2 EC_08 3 Datos_calidad codigo_estacion codigo_variable fecha valor EC_01 V_01 22/02/2011 6,5 EC_01 V_02 22/02/2011 8 EC_01 V_01 23/02/2011 7 EC_01 V_02 23/02/2011 5 EC_08 V_01 22/02/2011 7,8 EC_08 V_02 22/02/2011 35 EC_08 V_03 22/02/2011 225 Variables_calidad Codigo_variable Nombre U_medida V_01 ph potencial hidrogeniónico V_02 nitratos mg/l V_03 sulfatos mg/l CURSO: SEGUNDO ESTADISTICA Y BASES DE DATOS Tema 2 CURSO: SEGUNDO ESTADISTICA Y BASES DE DATOS Tema 2 La normalización de los datos y el problema de la redundancia de los mismos CURSO: SEGUNDO ESTADISTICA Y BASES DE DATOS Tema 2 La normalización de los datos y el problema de la redundancia de los mismos rio codigo_rio nombre ID_1 longitud cuenca caudal_medio n_embalses Guadalquivir 700 C01 600 5 ID_2 Guadalete 400 C03 150 3 ID_3 Andarax 300 C07 50 1 ID_19 Genil 150 C13 200 2 ID_23 Bembézar 125 C09 125 1 ID_12 Nacimiento 146 C23 98 0 La siguiente tabla no está en 1FN codigo_estacion Tipo (EC_01, EC_08, EA_04) Calidad/Aforo EA_06 Aforo CURSO: SEGUNDO ESTADISTICA Y BASES DE DATOS Tema 2 Rio Codigo_rio Nombre ID_1 Longitud Cuenca Caudal_medio Guadalquivir 700 C01 600 ID_1 Guadalquivir 700 C01 ID_1 Guadalquivir 700 ID_2 Guadalete ID_3 Codigo_estacion Tipo 5 EC_01 Calidad 600 5 EC_08 Calidad C01 600 5 EA_04 Aforo 400 C03 150 3 Andarax 300 C07 50 1 ID_19 Genil 150 C13 200 2 ID_23 Bembézar 125 C09 125 1 ID_12 Nacimiento 146 C23 98 0 La siguiente tabla está en 1FN N_embalses EA_06 Aforo CURSO: SEGUNDO ESTADISTICA Y BASES DE DATOS Tema 2 Es necesario que un modelo de datos respete como mínimo la 2FN CURSO: SEGUNDO ESTADISTICA Y BASES DE DATOS Tema 2 La siguiente tabla no está en 2FN Rio Codigo_rio Nombre Longitud Cuenca Caudal_medio N_embalses Codigo_estacion ID_1 Guadalquivir 700 C01 600 5 EC_01 Calidad ID_1 Guadalquivir 700 C01 600 5 EC_08 Calidad ID_1 Guadalquivir 700 C01 600 5 EA_04 Aforo ID_2 Guadalete 400 C03 150 3 ID_3 Andarax 300 C07 50 1 ID_19 Genil 150 C13 200 2 ID_23 Bembézar 125 C09 125 1 ID_12 Nacimiento 146 C23 98 0 EA_06 Tipo Aforo CURSO: SEGUNDO ESTADISTICA Y BASES DE DATOS Tema 2 Rio Codigo_rio Nombre ID_1 Longitud Cuenca Caudal_medio N_embalses Guadalquivir 700 C01 600 5 ID_2 Guadalete 400 C03 150 3 ID_3 Andarax 300 C07 50 1 ID_19 Genil 150 C13 200 2 ID_23 Bembézar 125 C09 125 1 ID_12 Nacimiento 146 C23 98 0 Las siguientes tablas sí están en 2FN Estacion_control Codigo_estacion Codigo_rio Tipo Fecha_alta Latitud EC_01 ID_1 Calidad 13/06/2006 4123675 635289 EC_08 ID_1 Calidad 10/09/2003 4563876 513587 EA_04 ID_1 Aforo EA_06 ID_12 Aforo 23/09/2010 25/02/2003 Longitud 4345673 4123428 589765 634789 CURSO: SEGUNDO ESTADISTICA Y BASES DE DATOS Tema 2 Tercera forma normal 3FN: Cada atributo no-clave "debe proporcionar un hecho único sobre la clave. Es decir, los atributos no-clave deben ser dependientes de "nada excepto la clave" La siguiente tabla no está en 3FN Estacion_control Codigo_estacion Codigo_rio Tipo Fecha_alta Latitud EC_01 ID_1 Calidad 13/06/2006 4123675 635289 químico EC_08 ID_1 Calidad 10/09/2003 4563876 513587 químico EA_04 ID_1 Aforo EA_06 ID_12 Aforo 23/09/2010 25/02/2003 Longitud 4345673 4123428 589765 634789 Parámetro caudal caudal CURSO: SEGUNDO ESTADISTICA Y BASES DE DATOS Tema 2 Estacion_control Codigo_estacion Codigo_rio codigo_tipo Fecha_alta Latitud Longitud EC_01 ID_1 T_01 13/06/2006 4123675 635289 EC_08 ID_1 T_01 10/09/2003 4563876 513587 EA_04 ID_1 T_02 23/09/2010 4345673 589765 EA_06 ID_12 T_03 25/02/2003 4123428 634789 Las siguientes tablas sí están en 3FN Tipo_estacion_control Codigo_tipo Tipo T_01 T_02 Parámetro Calidad Químico Aforo Caudal CURSO: SEGUNDO ESTADISTICA Y BASES DE DATOS Tema 2