¿Defina que es una normalización de una base de datos? El proceso de normalización de bases de datos consiste en aplicar una serie de reglas a las relaciones obtenidas tras el paso del modelo entidad-relación al modelo relacional. Las bases de datos relacionales se normalizan para: ▪ Evitar la redundancia de los datos. ▪ Evitar problemas de actualización de los datos en las tablas. ▪ Proteger la integridad de los datos. En el modelo relacional es frecuente llamar tabla a una relación, aunque para que una tabla sea considerada como una relación tiene que cumplir con algunas restricciones: ▪ Cada tabla debe tener su nombre único. ▪ No puede haber dos filas iguales. No se permiten los duplicados. Todos los datos en una columna deben ser del mismo tipo. ¿para que sirve la normalización después de creada la base de datos? Las bases de datos relacionales se normalizan para: ▪ Evitar la redundancia de los datos. ▪ Evitar problemas de actualización de los datos en las tablas. ▪ Proteger la integridad de los datos. ¿Defina los niveles mas usados en la normalización y explique porque? Y de un ejemplo de primera normalización, de un ejemplo de segunda normalización y de un ejemplo de tercera normalización Entidad: Cada entidad es una tabla donde cada atributo será una columna de la tabla y la clave primaria será la clave de la entidad. Entidad débil:Cada entidad débil equivale a una tabla donde cada atributo será una columna de la tabla y la clave primaria será la clave de la entidad de la que depende más los atributos que sirvan como discriminadores si es que los hay. Relaciones 1 a 1: No generan una tabla. En la mayoría de los casos la entidad dependiente genera una tabla en la que la clave primaria será la clave de la entidad de la que depende. Relaciones 1 a N: Como ocurre en las relaciones 1 a 1 no generan una tabla por si mismas. Lo que se hace es incluir en la tabla de la parte “N” una clave extranjera para referenciar a la otra tabla (la de la parte 1). Relaciones N a M: Generan una tabla que incluye las claves de las entidades que se relacionan más los atributos descriptivos de la relación. En general la clave de esta tabla es la unión de estas claves, aunque dependiendo del caso los atributos descriptivos también pueden formar parte de la clave. Primera forma normal Una tabla está en 1FN si el valor que contiene una columna de un registro (atributo), es único y elemental. Es decir sólo se puede incluir un dato, aunque sea compuesto, pero no se pueden incluir una lista de datos. Por ejemplo: Un dispositivo RSU ejecuta una serie de algoritmos sobre los datos recolectados, esto podríamos representarlo de varias formas: Esta tabla no está en forma normal puesto que tiene una lista de datos “camuflada” como campo. La forma correcta sería sacar la lista a otra tabla y relacionarlas con una Foreign Key: TipoCarril Troncal Troncal I Via D 1 AP1 PuntoKilométrico Sentido TipoCarril Algoritmos 180 Creciente Troncal prob_nieve;prob_lluvia;prob_niebla I Via D PuntoKilométrico Sentido 1 AP-1 180 Creciente 2 AP-6 210 Creciente ID Algoritmo 1 prob_nieve 1 prob_lluvia 1 prob_niebla 2 otro_algoritmo Como guía, una tabla NO estará en 1FN si ocurre que: ▪ No tiene clave primaria ▪ Una vista cuya definición exige que los resultados sean retornados en un orden particular, de modo que el orden de la fila sea un aspecto intrínseco y significativo de la vista. ▪ Una tabla con por lo menos un atributo que pueda ser nulo. Segunda forma normal Para entender esta forma normal primero hay que comprender que es la dependencia funcional. Se dice que un atributo o conjunto de atributos tiene dependencia funcional de otro u otros si a cada uno de los primeros le corresponde sólo uno de los segundos. Una tabla está en Segunda Forma Normal cuando está en 1FN y todo atributo que no pertenece a la clave primaria tiene una dependencia funcional de la clave completa y no de parte de ella. Si la clave principal está formada por un solo atributo y está en 1FN, automáticamente estaría Página 14 de 16 Revisión: 3 en 2FN. Ejemplo: Supongamos que una estación meteorológica tiene asociadas N variables de tipo analógico: En este caso las unidades y sus valores mínimos y máximos dependen del tipo de variable, es decir, de la temperatura y no de el tipo de variable mas estación a la que pertenezcan. Esta tabla NO esta en 2FN. Imaginad que hay un error y actualizando la tabla se obtiene una inconsistencia que dice por un lado que la temperatura se mide en grados y por otro lado dice que se mide en Pascales. Eso no pasaría si solo hay una entrada para cada definición de variable. Esto se solucionaría partiendo la tabla en otras dos de la siguiente forma: En primer lugar la definición de variables: En segundo lugar la asociación entre estación y variables para esa estación: VariableAnalogica EstacionMetereologica Unidades ValorMinimo ValorMáximo Temperatura 1 Grados -10 60 Temperatura 2 Grados -10 60 Humedad 1 Porcentaje 0 100 Humedad 2 Porcentaje VariableAnalogica Unidades ValorMinimo ValorMáximo Temperatura Grados -10 60 Humedad Porcentaje 0 100 EstacionMeteo Variable 1 Temperatura 1 Humedad 2 Temperatura 2 Humedad 0 100 Tercera forma normal De nuevo es necesario conocer un concepto más. El concepto de dependencia funcional transitiva. Se dice que hay dependencia funcional transitiva entre dos atributos cuando un atributo que no pertenece a la clave primaria permite conocer el valor de otro atributo. Ejemplo: En una tabla con columnas “Variable”, “Unidades” y “Escala” Aquí tenemos un ejemplo de dependencia funcional transitivia puesto que dada la escala podemos deducir que las unidades son grados y no Kilos o Newtons. Diremos que una tabla está en 3FN si está en 2FN y no existen atributos que no pertenezcan a la clave primaria que puedan ser conocidos mediante otro atributo que no forma parte de la clave primaria. Para evitar esta dependencia funcional transitiva partiríamos la tabla como sigue: Variable Unidades Escala Temperatura Grados Farenheit Temperatura Grados Celsius Variable Escala Temperatura Farenheit Escala Unidad Farenheit Grados Celsius Grados indique porque es tan importante la clave primaria y secundaria en una normalización Una clave segundaria es una superclave que no contiene ningún subconjunto propio que sea a su vez superclave. Una clave primaria es la clave candidata elegida por el diseñador para distinguir a cada entidad. Que es un gestor de datos? El propósito general de los sistemas de gestión de bases de datos es el de manejar de manera clara, sencilla y ordenada un conjunto de datos que posteriormente se convertirán en información relevante para una organización. cuales son la partes de un gestor de datos ▪ Abstracción de la información. Los SGBD ahorran a los usuarios detalles acerca del almacenamiento físico de los datos. Da lo mismo si una base de datos ocupa uno o cientos de archivos, este hecho se hace transparente al usuario. Así, se definen varios niveles de abstracción. ▪ Independencia. La independencia de los datos consiste en la capacidad de modificar el esquema (físico o lógico) de una base de datos sin tener que realizar cambios en las aplicaciones que se sirven de ella. ▪ Consistencia. En aquellos casos en los que no se ha logrado eliminar la redundancia, será necesario vigilar que aquella información que aparece repetida se actualice de forma coherente, es decir, que todos los datos repetidos se actualicen de forma simultánea. Por otra parte, la base de datos representa una realidad determinada que tiene determinadas condiciones, por ejemplo que los menores de edad no pueden tener licencia de conducir. El sistema no debería aceptar datos de un conductor menor de edad. En los SGBD existen herramientas que facilitan la programación de este tipo de condiciones. ▪ Seguridad. La información almacenada en una base de datos puede llegar a tener un gran valor. Los SGBD deben garantizar que esta información se encuentra segura de permisos a usuarios y grupos de usuarios, que permiten otorgar diversas categorías de permisos. ▪ Manejo de transacciones. Una transacción es un programa que se ejecuta como una sola operación. Esto quiere decir que luego de una ejecución en la que se produce una falla es el mismo que se obtendría si el programa no se hubiera ejecutado. Los SGBD proveen mecanismos para programar las modificaciones de los datos de una forma mucho más simple que si no se dispusiera de ellos. Tiempo de respuesta. Lógicamente, es deseable minimizar el tiempo que el SGBD demora en proporcionar la información solicitada y en almacenar los cambios realizados. cuales nos lo beneficios al trabajar una base de datos en mysql Usted obtiene los siguientes beneficios al diseñar de forma adecuada una base de datos MySQL: * Velocidad - Dado que la base de datos es eficiente y utiliza los datos correctos y tipos de caracteres de longitud, mejorará la velocidad de consulta. * Seguridad - La seguridad mejora, ya que permiten a los datos específicos se almacenan en la base de datos MySQL, y nada más. * Eficiencia del espacio de almacenamiento - Ya que está desarrollando una base de datos que es puramente basado en especificaciones de los datos, no habrá bytes o caracteres innecesarios almacenados en la base de datos MySQL. Esto ahorra espacio en disco. mencione al menos 10 tipos de datos que puede soportar una base de datos en mysql? Los tipos de datos de MySQL más comúnmente utilizados son VARCHAR, DECIMAL, DATE, INT, TEXT , TIMESTAMP, DOUBLE, FLOAT,TIME y YEAR enuncie 5 aplicaciones de bases de datos actuales robustas para poder editar una base de datos relacional Sistemas libres ▪ PostgreSQL (http://www.postgresql.org Postgresql) Licencia BSD ▪ Firebird basada en la versión 6 de InterBase, Initial Developer's PUBLIC LICENSE Version 1.0. ▪ SQLite (http://www.sqlite.org SQLite) Licencia Dominio Público ▪ DB2 Express-C (http://www.ibm.com/software/data/db2/express/) ▪ Apache Derby (http://db.apache.org/derby/) ▪ MariaDB (http://mariadb.org/) ▪ MySQL (http://dev.mysql.com/) ▪ Drizzle (http://www.drizzle.org/) Sistemas no libres ▪ ▪ ▪ ▪ ▪ ▪ ▪ ▪ ▪ ▪ ▪ ▪ ▪ ▪ ▪ ▪ ▪ ▪ ▪ ▪ ▪ MySQL: Advantage Database dBase FileMaker Fox Pro gsBase IBM DB2: Universal Database (DB2 UDB) IBM Informix Interbase de CodeGear, filial de Borland MAGIC Microsoft Access Microsoft SQL Server NexusDB Open Access Oracle Paradox PervasiveSQL Progress (DBMS) Sybase ASE Sybase ASA Sybase IQ PARA QUE SIRVE LOS SIGUIENTES COMANDOS EN MYSQL: Crear una base de datos: create database nombre_base; Uso de una base de datos Use database; Para mostrar las bases de datos disponibles: show databases [like patrón _ búsqueda] modificar de registros: para modificar filas de una tabla se utiliza la expresión: modificaly [low_priory] from nombre_tabla [where expresión][limit n]