Bases de Datos Relacionales Principios de Diseño y Normalización Lic. Gabriel Asato Bases de Datos Relacionales Garantizan la Consistencia Interna de los Datos Las bases de datos relacionales se construyen a partir de establecer enlaces entre distintas tablas a través de un campo y atributos comunes. Objetivo Evitar la aparición de anomalías de: ● Borrado ● Edición ● Ingreso de Datos ¿Cómo? Asegurando que cada dato que no sea una clave dependa únicamente de la clave. Este proceso de construcción de la base de datos se denomina NORMALIZACION El concepto de BDR fue introducido por primera vez por E.F. Codd, 1970. Lic. Gabriel Asato Bases de Datos Relacionales Anatomía de una Tabla Campos Registro s Datos La tabla sin normalizar se denomina TABLA UNIVERSAL Lic. Gabriel Asato Bases de Datos Relacionales Tipos de Datos y Restricciones Tipos ● Numéricos (enteros, reales, punto flotante) ● Binario ● Fechas ● Lógicos (TRUE, FALSE) ● Texto, Caracteres ● Geometría Dominio ● Definido por el tipo de dato ● Definido por una lista enumerada de valores Lic. Gabriel Asato Bases de Datos Relacionales Modelo Entidad-Relación (ERM) ● Representación conceptual y abstracta de los datos. ● Metodología de modelado de base de datos ● Se distinguen los siguientes objetos básicos: ● Entidades ● Atributos (de las entidades) ● Relaciones (que relacionan entidades) Lic. Gabriel Asato Chen, 1976 Bases de Datos Relacionales Modelo Entidad-Relación (ERM) Afloramientos Ubicación Forma Descripción Hay Muestras de Roca Localización Descripción Clasificación Color Lic. Gabriel Asato Bases de Datos Relacionales ¿Que es son las claves? ● Clave primaria ● ● Clave compuesta ● ● Identifica unívocamente a la entidad. Es única e irrepetible para cada una de las entidades y no puede cambiar a lo largo de la vida de la BD Es una clave primaria creada a partir de la combinación de varios atributos Clave foránea ● Es la clave, que no es primaria, pero permite generar una relación entre tablas o entidades Lic. Gabriel Asato Bases de Datos Relacionales Tipos de Relaciones Sitios Uno a Uno Afloramientos Afloramientos Uno a Muchos Muestras de Roca Muestras de Roca Muchos a Muchos Minerales Lic. Gabriel Asato Bases de Datos Relacionales Normalización de Datos Es un mètodo de diseño que minimiza la redundancia de datos y reduce los problemas que generan las anomalías de ingreso, borrado y actualización de datos. ● ● Este proceso consiste en aplicar varias formas normales al diseño de la base de datos La tabla original (universal) es dividad en tablas más pequeñas con estructuras de relación bien formadas Lic. Gabriel Asato Ejemplo Tabla Areas Mineras IDENTIFICADOR AREA N Area NOMBRES YACIMIENTOS SUS1 3 Zona 1 S. Martin, Custodio, Salamanca Cu 12 Zona 6 Cajoncillo U Cu 13 El Fraile U Cu 14 La Yesera Cu 17 Las Abritas U 18 Alemania U Cantera Amarilla, Cantera Azul Zn 23 La Despedida U 30 El Coro Clz 31 Juramento Cu Puente de Plata Yes 15 El Zorrito U 32 Cuchuma Ptr 22 35 Lic. Gabriel Asato Area BB Paraje el Solitario SUS2 Cu Cu Ag Cu Bases de Datos Relacionales Primera Forma Normal ● No debe haber columnas repetidas en una línea. ● No debe haber columnas con más de un valor. ● ● Como resultado la primera forma normal simplifica atributos y hace que las consultas sean más sencillas de realizar. Se trata de tratar de controlar la repetición de elementos Lic. Gabriel Asato 1FN IDENTIFICADOR AREA N Area NOMBRES YACIMIENTOS SUS 3 Zona 1 S. Martin Cu 3 Zona 1 Custodio Cu 3 Zona 1 Salamanca Cu 12 Zona 6 Cajoncillo U 12 Zona 6 Cajoncillo Cu 13 El Fraile U 13 El Fraile Cu 14 La Yesera Cu 17 Las Abritas Cu 17 Las Abritas U 18 Alemania U 22 Area BB Cantera Amarilla Zn 22 Area BB Cantera Azul Zn La Despedida Cu 23 Lic. Gabriel Asato Bases de Datos Relacionales Segunda Forma Normal ● Remover las redundancias verticales ● ● Cada atributo debe ser dependiente en forma funcional a una clave primaria ● ● ● Es decir que los datos no se deben repetir a lo largo de las líneas. Relación Funcional. La propiedad de una o más atributos a los que les corresponden uno y tan sólo un valor de otros atributos. Los atributos no dependientes se mueven a otras tablas más pequeñas. 2FN mantiene la integridad de los datos ● Previene los problemas originados por las anomalías de inserción, modificación y borrado Lic. Gabriel Asato 2FN Detección de Relaciones Funcionles IDENTIFICADOR AREA Lic. Gabriel Asato N Area NOMBRES YACIMIENTOS SUS 3 Zona 1 S. Martin Cu 3 Zona 1 Custodio Cu 3 Zona 1 Salamanca Cu 12 Zona 6 Cajoncillo U 12 Zona 6 Cajoncillo Cu 2FN Atributos Independientes se Mueven a Otras Tablas IDENTIFICADOR AREA 3 12 N Area NOMBRES YACIMIENTOS Zona 1 Zona 6 S. Martin Custodio 13 Salamanca 14 Cajoncillo El Fraile 17 La Yesera 18 22 23 Las Abritas Area BB Alemania Cantera Amarilla Cantera Azul La Despedida Lic. Gabriel Asato SUS Desc Cu Cobre U Uranio Zn Zinc Bases de Datos Relacionales Tercera Forma Normal ● Todos los items deben estar directamente relacionados a una clave primaria ● Remover dependencias transitivas ● ● Dependencia transitiva. Dos entidades separadas existen dentro de una tabla ● Las dependencias transitivas son separadas y movidas a tablas más pequeñas 3FN mantiene la integridad de los datos ● ● ● Crea tablas sin datos foráneos Previene los problemas originados por las anomalías de inserción, modificación y borrado En general, se considera normalizada una base de datos según la 3FN. Lic. Gabriel Asato 3FN Las Tablas IDENTIFICADOR AREA N Area 3 Zona 1 12 Zona 6 13 14 17 18 22 Area BB 23 Lic. Gabriel Asato IDENTIFICA DOR AREA Id Yac NOMBRES YACIMIENTOS Id Yac SUS SUS Desc 3 001 S. Martin 001 Cu Cu Cobre 3 002 Custodio 002 Cu U Uranio 3 003 Salamanca 003 Cu Zn Zinc 12 004 Cajoncillo 004 U 13 006 El Fraile 005 Cu 14 008 La Yesera 006 U 17 009 Las Abritas 007 Cu 18 010 Alemania 008 Cu 22 011 Cantera Amarilla 009 Cu 22 012 Cantera Azul 009 U 23 013 La Despedida 010 U 011 Zn 012 Zn 013 Cu Modelo de BD con DBDesigner 4 Lic. Gabriel Asato Resumen Normalización ● ● ● No debe haber más de un dato en una columna, no debe haber repeticion de mismos tipos datos en diferentes columnas Detectar relaciones funcionales y separar los elementos detectados en tablas menores Las tablas se relacionan a través de claves. Lic. Gabriel Asato Bases de Datos Relacionales Ejercicio: Modelado de una Base de Datos Diseñar una base de datos Realizar la normalización de tabla universal ● BDesigner 4. http://www.fabforece.net/dbdesigner4 ● Tutorial: http://www.phlonx.com/resources/nf3/nf3_tutorial_spanish.pdf Lic. Gabriel Asato Módulo II BDR Bases de Datos Relacionales Consultas y Restricciones Lic. Gabriel Asato Introducción a la Consulta de BD Variables Numéricas Representan Números Comparación Matemática Variables Tipo Carácter No tienen sentido matemático Definen cualidades Comparación alfanumérica ● > < <> = ● ● Se pueden utilizar para hacer cálculos o clasificaciones Lic. Gabriel Asato ● equivalente ==, eq, contiene (Contains) Simililar o como (Like) Distinto NOT, nq = Consultas y Lógica del Boole NOT == ~ A (complemento) U A B U OR == Unión de A con B A B U AND == Intersección de A con B A Lic. Gabriel Asato B Consultas. Lógica de Boole en Mapas Uso del AND Seleccionar provincias tal que: ( Sup_km2 > 30.000 ) AND ( Sup_km2 < 100.000 ) Lic. Gabriel Asato Consultas. Lógica de Boole en Mapas Uso del OR Seleccionar Yacimientos tal que: ( Mena = ‘ORO’ ) OR ( Mena = ‘Cobre’ ) Lic. Gabriel Asato Consultas. Lógica de Boole en Mapas Uso del NOT Seleccionar Yacimientos tal que: Mena NOT ‘Cobre’ Lic. Gabriel Asato Conjunto de Instrucciones SQL SQL es un lenguaje estándar de consulta de base de datos relacionales SQL significa Simple Query Languaje ESTRUCTURA BASICA SELECT <CAMPOS> FROM <TABLA> WHERE <CONDICIONES> Ejemplo: SELECT yac_nom.ID, yac_nom.NOMBRE FROM yac_nom; donde: yac_nom.ID yac_nom.NOMBRE son items. Yac_nom es el nombre de la tabla de nombres de yacimientos Lic. Gabriel Asato ID 1 2 3 3 4 4 5 6 7 8 9 10 11 12 12 12 12 13 14 15 16 17 NOMBRE El Torno Aluviones de Santa Catalina Palca Ingenio La Perdida La Perdida Palca Ingenio Eureka Azules San Francisco Azules San Francisco Oratorio Oratorio Casa Amarilla Rosario Cruz del Sur Cartelone Pucará Chico Vitella o Casa Blanca El Rodeo El Rodeo Nazareno Ejemplos de Consulta SQL con Tablas Relacionadas SELECT yac_nom.nombre, dep_asoc.asociacion FROM yac_nom, dep_asoc WHERE yac_nom.asoc_id = dep_asoc.asoc_n ; Lic. Gabriel Asato Bases de Datos Relacionales Consultas y Restricciones ● ● Los operadores para consulta de datos son también utilizados para definir conjuntos o subconjuntos de datos dentro de una población. Es decir que estos operadores se utilizan para definir las restricciones o ámbitos de aplicación de un tipo de dato. p.e. Yacimientos_económicos = Yacimientos.Ley >= valor Lic. Gabriel Asato Bases de Datos Relacionales Diccionarios, Terminología y Clasificaciones (authority tables, data standards) ● Son tablas que albergan la nomenclatura estándar utilizada por la organización. ● Eumerated attributes, authority tables. ● Controlan la correcta entrada de datos. Lic. Gabriel Asato Bases de Datos Relacionales Ejemplo OZMIN Mineral Deposits Database (Australia Geoscience) Commodities Types SITES COMMODITIES DEPOSITS DEPOSREFS DEPOSDATA Bibliographic Reference Database DeposAttribMins A Union of Deposattribs & AGSO Minerals REGROCKS REGSTRUCT RegAttribs REGROCKDATA RegAttribMins A Union of RegAttribs & AGSO Minerals Ewers & Ryburn, 1993 Lic. Gabriel Asato Aplicaciones Institucionales (servicios geológicos) ● Biblioteca ● Repositorio de muestras, análisis y estudios. ● Paleontología ● GIS ● Catastro Minero ● Etc, etc. Lic. Gabriel Asato Consejos ● ● Evite a toda costa el Síndrome de la Tabla Excel (produce información inconsistente, difícil de mantener y con tendencia monopólica) Propóngase como objetivo mejorar el diálogo (creando lenguajes comunes) con informáticos especialistas en BDR. ● Convierta las bases de datos institucionales en servicios a la comunidad. ● Promueva la capacitación continua. Software BDR ● Posgres ● FireBird ● MySQL ● Oracle Lic. Gabriel Asato