Info sobre Bases de Datos

Enviado por Programa Chuletas y clasificado en Otras materias

Escrito el en español con un tamaño de 25,51 KB

 

Tema3: metadatos (literalmente “sobre datos”): hace referencia a datos que describen otros datos. es decir, son “datos sobre datos”.diccionario de datos: es el conjunto de metadatos que contiene las características de los datos que se van a utilizar en el sistema al que pertenece dicho diccionario. es una herramienta que se usa para asignar a cada dato almacenado en nuestra base de datos su significado en el sistema de información real representado. guarda toda la información necesaria para el sgbd sobre los datos almacenados en sus bases de datos basados en modelos de datos primitivos.•diccionario de datos (dd):-contiene las características lógicas de los sitios donde se almacenan los datos del sistema,incluyendo datos como el nombre, la descripción, el alias o el contenido identificando los procesos donde se emplean los datos y los sitios donde se necesita el acceso a dicha información. también sirve de guía para describir la bd y los objetos que la forman y reúnela información sobre los datos almacenados en la bd mediante una descripción lógica de los datos orientada al usuario.-los elementos mas importantes son flujos de datos, almacenes de datos y procesos donde se emplean los datos. el dd guarda los detalles y descripción de todos estos elementos.-el diccionario de datos es un esquema más a añadir al conceptual, lógico e interno. en realidad es parte del esquema externo como componente del sgbd.-el diccionario de datos además de almacenar las definiciones de todos los elementos de los datos en la base de datos, almacena las interrelaciones que existen entre las diversas estructuras de datos. a esto es a lo que llamamos metadatos o datos sobre los datos.//En una BD relacional, el diccionario de datos proporciona información acerca de:-La estructura lógica y física de la BD.-Las definiciones de todos los objetos de la BD: tablas, vistas, índices, disparadores,procedimientos, funciones, etcétera.-El espacio asignado y utilizado por los objetos.-Los valores por defecto de las columnas de las tablas.-Información acerca de las restricciones de integridad.-Los privilegios y roles otorgados a los usuarios.-Auditoría de información, como los accesos a los objetos.•Características: un diccionario de datos debe cumplir las siguientes características:-Debe soportar las descripciones de los modelos conceptual, lógico, interno y externo.-Debe estar integrado dentro del SGBD.-Debe apoyar la transferencia eficiente de información al SGDB. La conexión entre los modelos interno y externo debe ser realizada en tiempo de ejecución.-Debe comenzar con la reorganización de versiones de producción de la BD. Además debe reflejar los cambios en la descripción de la BD. Cualquier cambio a la descripciónde programas ha de ser reflejado automáticamente en la librería de descripción de programas con la ayuda del diccionario de datos.-Debe estar almacenado en un medio de almacenamiento con acceso directo para la fácil recuperación de información.•TIPOS:-DD pasivo o no integrado: no tiene relación directa con el SGBD y es el usuario quién debe alimentar el diccionario con datos sobre su sistema.-DD activo o integrado: está integrado y sirve tanto a los usuarios como al propio SGBD.•RAZONES para su utilización:-Para manejar los detalles en sistemas muy grandes con enormes cantidades de datos.Incluso en sistemas mas pequeños hay gran cantidad de datos. Mediante el diccionario de datos se puede llevar un seguimiento de las modificaciones hechas sobre los datos.-Para asignarle un solo significado a cada uno de los elementos y actividades del sistema,asegurando significados comunes para dichos objetos.-Para documentar las características del sistema, incluyendo partes y componentes así como los aspectos que los distinguen.-Para facilitar el análisis de los detalles con la finalidad de evaluar las características y determinar donde efectuar cambios en el sistema. Se abordan las características:▪Naturaleza de las transacciones: las actividades que se llevan a cabo mientras se emplea el sistema.▪Preguntas: solicitudes para la recuperación o procesamiento de información para generar una respuesta especifica.▪Archivos y bases de datos: detalles de las transacciones y registros maestros que son de interés para la organización.▪Capacidad del sistema: Habilidad del sistema para aceptar, procesar y almacenar transacciones y datos.-Localizar errores y omisiones en el sistema, detectan dificultades, y las presentan en un informe. Aun en los sistemas manuales, se revelan errores.•Contenido de un registro del diccionario: El diccionario tiene dos tipos de descripciones para el flujo de datos del sistema, son los elementos datos y estructura de datos.-Elemento dato o dato elemental: son los bloques básicos para todos los demás datos del sistema, por si mismos no le dan un significado suficiente al usuario. Se agrupan para formar una estructura de datos. Cada entrada en el diccionario consiste de un conjunto de detalles que describen los datos utilizados o producidos por el sistema. Cada uno esta identificado con un nombre, una descripción de lo que representa, un alias, su longitud y los valores que pueden tomar los datos.-Estructura de datos: es un grupo de datos que están relacionados con otros y que en conjunto describen un componente del sistema. Se construyen sobre cuatro relaciones de componentes que se pueden utilizar en combinación ya sea individualmente o en conjunción con alguna otra:▪Relación secuencial: define los componentes que siempre se incluyen en una estructura de datos.▪Relación de selección: (uno u otro), define las alternativas para datos o estructuras de datos incluidos en una estructura de datos. ▪Relación de iteración: (repetitiva), define la repetición de un componente.▪Relación opcional: los datos pueden o no estar incluidos, una o ninguna iteración.•NOTACIÓN:-Los analistas usan símbolos especiales con la finalidad de no usar demasiada cantidad de texto para la descripción de las relaciones entre datos y mostrar con claridad las relaciones estructurales. A veces se emplean términos diferentes para describir la misma entidad (alias) estos se representan con un signo igual (=) que vincula los datos.•EJEMPLOS DE DATOS GUARDADOS: -Masa = masa de una persona. Unidad: kilo. Rango:0-200.-Altura = altura de una persona. Unidad: cm. Rango: 0-250.-Sexo = sexo de una persona. Valores: [F|M].EN MYSQL:•En MySQL la BD denominada INFORMATION_SCHEMA contiene los metadatos y proporciona acceso a los metadatos relacionados con la base de datos, tales como el nombre de la base de datos o tabla, el tipo de datos de una columna, o permisos de acceso.Seguridad e integridad de datos:•INTEGRIDAD DE DATOS: este término se refiere a la corrección y exactitud de la información contenida en una base de datos. Cuando los contenidos se modifican con sentencias INSERT, DELETE o UPDATE, la integridad de los datos almacenados puede perderse de muchas maneras diferentes.•Una de las funciones importantes de un SGBD relacional es preservar la integridad de sus datos almacenados en todo momento conservando la seguridad ante el acceso de múltiples usuarios de forma paralela. Esto se consigue mediante restricciones o reglas que el SGBD vigila que se cumplan. Así se definirá con precisión el rango de valores válidos para un elemento y las operaciones que se podrán realizar.•Tipos de restricciones de integridad:◦Integridad de dominio : cuando se define un atributo o columna sobre un dominio (conjunto de valores posibles que puede tomar un campo) se impone una restricción sobre el conjunto de valores permitidos para cada atributo. Los dominios son la forma más elemental de restricciones de integridad. Por ejemplo el campo “Datetime” tendrá 8 bytes de tamaño y su descripción es “Fecha”.◦Datos Requeridos: establece que una columna tenga un valor no nulo (NULL es un valor no aplicable o que simplemente desconocido, que no se corresponde con un valor real).Se define efectuando la declaración de una columna como NOT NULL cuando se crea la tabla que la contiene por primera vez mediante la sentencia CREATE TABLE.◦Comprobación de validez: cuando se crea una tabla cada columna tiene un tipo de datos y el SGBD se encarga de que solamente se almacenen datos del tipo especificado en la tabla.◦Integridad de entidad : establece que la clave primaria de una tabla debe tener un valor único para cada fila de la tabla, por lo tanto no podrá seer nulo. En caso contrario la BD perderá su integridad. Este campo se especifica al utilizar la sentencia CREATE TABLE. El SGBD comprueba automáticamente la unicidad del valor de la clave primaria con cada sentencia INSERT Y UPDATE. Un intento de insertar o actualizar una fila con un valor de la clave primaria ya existente fallará. Estas reglas se dan por lo siguiente: ▪Las tuplas en las relaciones base representan entidades en la realidad. ▪Las entidades en la realidad son identificables por definición.▪Sus representaciones en la base de datos también deben ser identificables.▪Los valores de la clave primaria sirven como identificadores en la base de datos.▪Los valores de clave primaria no pueden ser nulos.◦Integridad referencial:asegura la integridad entre las llaves foráneas y primarias en las relaciones padre-hijo. La base de datos no debe contener valores de claves foráneas sin concordancia. Existen cuatro actualizaciones de la base de datos que pueden corromper la integridad referencial:▪Se produce la inserción de una fila hijo en la que no coincide la llave foránea con la llave primaria del padre.▪Se actualiza la llave foránea de la fila hijo con una sentencia UPDATE y la misma no coincide con ninguna llave primaria.▪Se elimina una fila padre, por lo que si tiene uno o más hijos, las filas hijos quedarán huérfanas.▪Se actualiza la llave primaria de una fila padre, por lo que si tiene uno o más hijos se quedarán huérfanas al no actualizar el valor de la clave foránea.Cuando se realiza una operación ilegal, existen dos opciones: rechazar la operación ilegal o bien aceptar la operación y realizar operaciones adicionales compensatorias que conduzcan a volverla legal. Para cada clave foránea en la base de datos habrá que contestar a dos preguntas:▪Regla de los nulos: ¿tiene sentido que la clave foránea acepte nulos?▪Regla de borrado: ¿Qué ocurre si se intenta borrar la tupla referenciada por la clave foránea?. Las opciones pueden ser:•Restringir: no se permite borrar la tupla padre referenciada.•Propagar: se borra la tupla padre referenciada y se propaga el borrado a las tuplas hijas que hacen referencia mediante la clave foránea.•Anular: se borra la tupla padre referenciada y en las tuplas hijas que la referenciaban se indica un valor nulo a la clave foránea (sólo si acepta nulos). La Integridad referencial también vigila que se cumplan las siguientes reglas:▪No se podrá introducir un valor en la tabla relacionada si antes no ha sido introducida en la tabla principal. ▪No se puede eliminar un registro de una tabla principal si existen registros coincidentes en la tabla relacionada.▪No se puede cambiar un valor de la clave primaria en la tabla principal si el registro tiene registros relacionados.•Vistas como sistemas de seguridad:◦Las vistas tienen la misma estructura que una tabla, filas y columnas, pero sólo se almacena de ellas la definición, no los datos. Es decir, una vista no contiene datos duplicados de una tabla de la base de datos. De hecho, no tiene absolutamente ningún dato, pues no es una tabla real, es una tabla virtual donde se pueden insertar, actualizar, borrar y seleccionar datos, aunque realmente estas operaciones se realicen sobre las tablas originales.◦De esta forma, las vistas pueden proporcionar un nivel adicional de seguridad. Permiten ocultar la complejidad de los datos mostrando sólo los datos interesantes para el usuario de una manera visualmente más simple, con unos nombres razonables para las consultas.◦En las vistas se pueden crear reglas a nivel de campo y de registro para validar datos introducidos antes de enviarlos al origen de datos. Puesto que el objetivo de estas reglas es impedir que se envíe al origen de datos cualquier dato que pueda ser rechazado por las reglas de integridad del servidor, se deben reproducir las reglas del origen de datos en las reglas que se crean para la vista.•SEGURIDAD: gracias al diccionario de datos y otros sistemas, el SGBD proporciona los siguientes mecanismos para garantizar esta seguridad e integridad de los datos:◦Garantiza la protección de los datos contra accesos no autorizados, tanto intencionados como accidentales. Debe controlar que sólo los usuarios autorizados accedan a la BD.◦Ofrece mecanismos para implantar restricciones de integridad en el diccionario de datos y en la BD. Los valores de los datos que se almacenan deben satisfacer estas restricciones de consistencia y reglas de integridad, que especificará el administrador de la BD. El SGBD puede determinar si se produce una violación de la restricción.◦Proporciona herramientas y mecanismos para la planificación y realización de copias de seguridad y restauración.◦Debe ser capaz de recuperar la BD llevándola a un estado consistente en caso de ocurrir algún suceso que la dañe.◦Debe asegurar el acceso concurrente y ofrecer mecanismos para conservar la consistencia de los datos en el caso de que varios usuarios actualicen la BD de forma concurrente.•Mediante el DD también se mejora la independencia de datos en el SGBD. Se define su estructuración en esquemas que eliminan las redundancias innecesarias de datos y se programan aplicaciones en vez de utilizar directamente el interfaz de usuario del SGBD.DEFINICIÓN DE LOS DATOS:•Una definición de un dato se introduce mediante el símbolo “=”, que se lee como “está definido por”, “está compuesto de”, o “significa”. Para definir un dato se debe incluir en la definición:◦El significado del dato en el contexto de la aplicación. Esto se documenta en forma de comentario.◦La composición del dato, si es que está compuesto de otros elementos significativos.◦Los valores que el dato puede tomar, si se trata de un dato elemental que ya no puede ser descompuesto.•DATOS ELEMENTALES:◦Son aquellos para los cuales no hay una descomposición significativa. Dependerá del contexto del sistema modelado. Por ejemplo puede ser que se requiera o no descomponer el nombre de una persona en primer-nombre, apellido-materno y apellido-paterno o simplemente como nombre-completo.◦Cuando se han identificado los datos elementales, deben ser introducidos en el DD y proveer una breve descripción que describa el significado del dato. Se podría omitir la descripción en el caso de que el dato tenga un nombre significativo aunque es importante especificar las unidades de medida que el dato puede tomar. •DATOS OPCIONALES:◦Un dato opcional es aquel que puede o no estar presente como componente de un dato compuesto. Se caracteriza por estar encerrado entre paréntesis. ◦Ejemplo: para definir una dirección donde ciudad, país y código-postal son datos opcionales. Dirección = calle + número + (ciudad) + (país) + (código-postal).•SELECCIÓN:◦Indica que un elemento consiste de exactamente una opción de un conjunto de alternativas que se encierran entre corchetes. Cada una se separa por un tubería, “pipe" o barra vertical (Alternativa 1 | Alternativa 2).◦Ejemplo: para elegir entre hombre y mujer:Sexo = [ Femenino | Masculino ]◦Para elegir un tipo de alumno específico:Tipo-de-alumno = [ Convalidado | Repetidor | Normal ].•ITERACIÓN:◦Se usa para indicar ocurrencias repetidas de un componente en un elemento compuesto.◦Ejemplo: para indicar que una matrícula de un alumno tiene un nombre, un apellido y cero o varias asignaturas: Matrícula-alumno = nombre + apellido + {asignatura}◦Ejemplo: para indicar límites inferiores, superiores o ambos se pueden utilizar números a los lados. En caso de tener 1 asignatura mínimo y 10 como máximo:Matrícula-alumno = nombre + apellido + 1{asignatura}10 2. FICHEROS LOG .DEFINICIÓN:•La palabra log es un anglicismo utilizado en los países de habla hispana equivalente a la palabra bitácora en castellano. Un log es un registro oficial de eventos durante un rango de tiempo en particular. Para los profesionales en seguridad informática es usado para registrar datos o información sobre quién, qué, cuándo, dónde y por qué un evento ocurre para un dispositivo en particular o aplicación. •Por lo general la mayoría de los logs se almacenan en texto plano. De esta forma cada log generado por un dispositivo en particular puede ser leído y desplegado en otro diferente.•También se puede considerar un log a los mensajes que genera el programador de un SO,alguna aplicación o algún proceso, por el cual se muestra un evento del sistema.•A su vez la palabra log se relaciona con el término evidencia digital. Un tipo de evidencia física construida de campos magnéticos y pulsos electrónicos que pueden ser recolectados y analizados con herramientas y técnicas especiales, lo que implica la lectura del log y deja al descubierto la actividad registrada en el mismo.EN MYSQL:•El servidor MySQL utiliza espacio en disco para almacenar lo siguiente:◦Las bases de datos.◦Las tablas.◦Los ficheros de formato de tablas ("*.frm") y algunos ficheros de datos y de índices para los motores de almacenamiento.◦Los ficheros de "tablespaces" (archivos físico donde se almacenan tablas y datos de usuario) de InnoDB, si el motor de almacenamiento InnoDB está activado.◦Los ficheros de registro ("logs") y de estado. ◦Los programas cliente y servidor, y sus librerías.•Dentro de los ficheros de registro, MySQL tiene varios archivos diferentes que pueden ayudarle a encontrar lo que está ocurriendo en mysqld (servidor):◦El registro de error: registra problemas encontrados iniciando, ejecutando, o parando mysqld.◦El registro de consultas: registra las conexiones de clientes establecidas, y las sentencias ejecutadas.◦El registro de actualizaciones: registra las sentencias que cambian datos. Este registro está ya en desuso.◦El registro binario: registra todas las sentencias que cambian datos. También utilizado para replicación.◦El registro de lentitud: registra todas las sentencias que tardaron más que la variable long_query_time en segundos en ejecutarse, o no utilizaron índices.•Por defecto, todos los registros son creados en el directorio de datos de mysqld (En windows C:\Archivos de programa\MySQL\MySQL Server 5.5\data\mysql). Se puede forzar a mysqld a que cierre y reabra los archivos de registro (o en algunos casos, cambiar a un nuevo registro) mediante el volcado de registros. El volcado de registros ocurre cuando ejecuta la sentencia FLUSH LOGS desde la consola de MySQL o con el comando “mysqladmin flush-logs” o “mysqladmin refresh” desde consola. •Por ejemplo se pueden usar para restaurar los cambios en la base de datos que se produjeron desde cierto momento obteniendo dichos cambios de los ficheros log. •Hay un log de workbench en C:\Archivos de programa\MySQL\MySQL Workbench CE 5.2.34.2\modules\data\db_mysql_catalog_reporting\Basic_Text.tpl •En el Workbench accediendo a la administración de seguridad con la cuenta de administrador se puede acceder a server logs, aunque si no están activados como tabla, no podrán verse. •Para activar los logs desde la misma administración, fichero de opciones, Log files.•Conviene hacer copias de seguridad y eliminar los registros viejos de vez en cuando, y decirle a MySQL que comience a registrar en archivos nuevos. EL REGISTRO DE ERRORES (ERROR LOG):•El archivo de registro de errores contiene información que indica cuando se ha iniciado y parado mysqld y también si ha ocurrido algún error crítico mientras el servidor se estaba ejecutando.•Si mysqld termina inesperadamente y mysqld_safe necesita reiniciarlo, mysqld_safe escribe un mensaje restarted mysqld en el registro de errores. Si mysqld se da cuenta de que hay una tabla que necesita ser automáticamente comprobada o reparada, escribe un mensaje al registro de errores.•En algunos sistemas operativos, el registro de errores contiene un volcado de la pila si mysqld muere.•Para especificar dónde se quiere que mysqld almacene el registro de errores se debe utilizar la opción --log-error[=file_name]. Si no se proporciona ningún valor para file_name, mysqld utiliza el nombre host_name.err y escribe el archivo en el directorio de datos.•Si no se especifica --log-error, o en Windows no se utiliza la opción --console, los errores se escriben en stderr, la salida estándar de errores, normalmente el terminal. EL REGISTRO GENERAL DE CONSULTAS:•Para iniciarlo se debe utilizar la opción --log[=file_name] o -l [file_name]. Si no se da un valor para file_name, el nombre por defecto es host_name.log. Esto registra todas las conexiones y sentencias a un archivo. Este registro puede ser muy útil cuando se sospeche que hay un error en un cliente y quiera saber exactamente qué envió el cliente a mysqld.• Los reinicios del servidor y volcado de registros no provocan que se genere un nuevo archivo de registro de consultas general (aunque el volcado lo cierra y lo reabre). EL REGISTRO BINARIO (BINARY LOG):•El registro binario contiene toda la información que está disponible en el registro de actualizaciones, en un formato más eficiente y de una manera que es segura para las transacciones. •El registro binario contiene todas las sentencias que han actualizado datos o podrían haberlo hecho (por ejemplo, un DELETE que no borró filas). También contiene información sobre cuanto ha tardado cada sentencia que actualizó la base de datos •El registro binario ha reemplazado al antiguo registro de actualizaciones que ya no está disponible desde MySQL 5.0.•El propósito principal del registro binario es el de actualizar la base de datos durante una operación de recuperación tan completamente como sea posible, porque el registro binario contiene todas las actualizaciones hechas tras la copia de seguridad.•Ejecutar el servidor con el registro binario activado hace que el rendimiento baje un 1%, pero se dan beneficios en cuanto a restauración y replicación. •Iniciando con la opción --log-bin[=file_name] mysqld se escribe un archivo de registro que contiene todos los comandos SQL que actualizan datos. Si no se da ningún valor para file_name, el valor por defecto es el nombre de la máuqina host seguido por -bin. Si se da el nombre del archivo, pero ninguna ruta, el archivo se escribe en el directorio de datos. •Si se proporciona una extensión (por ejemplo, --log-bin=file_name.extension), se ignora y elimina sin aviso. Mysqld agrega una extensión numérica al nombre del registro binario que se incrementa cada vez que se inicia el servidor o se vuelcan los registros. •Mysqld también crea un archivo de índice de los registros binarios que contiene los nombres de todos los archivos de registro binario utilizados. Por defecto éste tiene el mismo nombre que el archivo de registro binario, con la extensión '.index'. Se puede cambiar el nombre del archivo de índice con la opción –log-bin-index[=file_name]. •Se puede examinar el archivo de registro binario con la utilidad mysqlbinlog. EL REGISTRO DE CONSULTAS LENTAS (SLOW QUERY LOG): •Se debe utilizar la opción --log-slow-queries[=file_name], y mysqld escribe un archivo de registro que contiene todos las sentencias SQL que llevaron más tiempo en segundos que el marcado en long_query_time para ejecutarse completamente.•Si no se da ningún valor a file_name, el nombre por defecto es el nombre de la máquina host con el sufijo -slow.log. Si se da un nombre de archivo, pero no como ruta absoluta, el archivo se escribe en el directorio de datos.•Se puede utilizar para encontrar consultas que usen demasiado tiempo y sean por tanto candidatos a optimización. Para examinarlo se puede utilizar el comando mysqldumpslow que le ofrecerá un resumen de las sentencias que aparecen en el registro.MANTENIMIENTO DE FICHEROS DE REGISTRO (LOG):•Se deben limpiar los archivos de registro regularmente para asegurarse de que no ocupan demasiado espacio.•Además es conveniente realizar copias de seguridad.•Puede forzar a MySQL para que comience a utilizar archivos de registro nuevos usando mysqladmin flush-logs o con la sentencia SQL FLUSH LOGS.

Entradas relacionadas: