Fundamentos de Bases de Datos Facultad de Ciencias UNAM

Documentos relacionados
Ing. Yim Isaias Apestegui Florentino

Integridad Referencial. Restricciones (constraints)

Carlos A. Olarte Ligaduras de Integridad y Restricciones sobre la BD

BASES DE DATOS (IG18 Semipresencial) El Modelo Relacional Reglas de Integridad

Modelo relacional. El modelo relacional

Fundamentos de Bases de Datos Facultad de Ciencias UNAM

Restricciones de Integridad

1. Lenguaje de Definición de Datos. 2. Lenguaje de Manipulación de. Datos. M. C. Gustavo Alfonso Gutiérrez Carreón

Metodología de Diseño Lógico. Sistemas Gestores de Bases de Datos

El Modelo Relacional de Bases de Datos

Sesión No. 10. Contextualización INFORMÁTICA 1. Nombre: Gestor de Base de Datos (Access)

MODELO RELACIONAL BASE DE DATOS RELACIONALES

Sistemas de Bases de Datos II ITS / ITSB EMT CETP

id_trabajador nombre tarifa_hr tipo_de_oficio id_supv 1235 F. Aguilera 12,50 Electricista A. Calvo 13,75 Fontanero N.

Objetivos y Temario CURSO MySQL 5

Bases de datos 1. Teórico: Modelo Relacional

Desde los programas más simples escritos en un lenguaje de programación suelen realizar tres tareas en forma secuencial.

MANUAL DE USUARIO INTERFACES. En esta sección se relacionan los componentes que intervienen para los procesos de la generación de Interface contable.

ORACLE 10g. Descripción A QUIEN VA DIRIGIDO?

Una base de datos de Access puede estar conformada por varios objetos, los más comunes son los siguientes:

Lenguaje para descripción de datos

- Bases de Datos (2012/2013) Adjunto Tema 1: Ampliación DER

Uso de Disparadores. Miguel Angel Garduño Cordova Isaac Méndez Hernández

FICHEROS Y BASES DE DATOS (E44) 3º INGENIERÍA EN INFORMÁTICA. Tema 9. Reglas de Integridad

ÍNDICE INTRODUCCIÓN...17

Manual de Usuario. WordPress

MATAFUEGOS DRAGO- DISTRIBUIDORA SAN MARTIN Notas de interés CC:

Bases de Datos. Laboratorio III, L106/L111. Profesor: Goyo Celada

PROPIEDADES DE LOS CAMPOS. Cada campo de una tabla dispone de una serie de características que proporcionan un control

Unidad III: Lenguaje de manipulación de datos (DML) 3.1 Inserción, eliminación y modificación de registros

1. Introducción: Qué es un Modelo de Datos? 2. Estática del modelo de datos relacional

SIIGO Pyme Plus. Apertura de Productos. Cartilla I

DISPARADORES EN SQL DISPARADORES EN SQL:1999 SINTAXIS GENERAL DE UN DISPARADOR EN SQL:1999 SINTAXIS GENERAL DE UN DISPARADOR EN SQL:1999

Algoritmos. Medios de expresión de un algoritmo. Diagrama de flujo

Universidad Tec Milenio: Profesional HG04002 Análisis de Decisiones I

Crear una tabla dinámica

MANUAL DE USUARIO. Solicitudes- Reembolsos. Con Seguros SURA, asegúrate de vivir

A continuación se presenta la información de la altura promedio para el año de 1998 en Holanda de hombres y mujeres jóvenes.

Conceptos de Bases de Datos Relacionales Triggers

La etiqueta logística

GESTORES GESTORES DE BASES DE DATOS

Modificación de datos

SIIGO WINDOWS. Procesos de Caja Menor. Cartilla I

ACCESS XP. Objetivos. Duración. 64 horas. Contenidos. Módulo 1: Introducción. Parte 1 Bienvenida Certificado MOUS Resumen

Descripción de servicio

Introducción Base de datos Tabla Tipos de campos Clave principal Índice Administrador de base de datos Relaciones entre tablas Consulta Formulario

FORMATO CONDICIONAL EN EXCEL

LABORATORIO Nº 8 FILTROS EN EXCEL

RECOMENDACIONES TÉCNICAS PARA LA CREACIÓN DE MODELOS DE DATOS

Restricciones de Integridad. Claves Primarias. Protección. Índice. Clave de una Relación. Declaración n de Claves

UNIDAD 4: FUNCIONES POLINOMIALES Y RACIONALES

ACCESS Duración en horas: 20

Manual del Integrador Contable Premium Soft

Asignatura: Administración de Bases de Datos

DED Diagramas de Estructura Lógica de Datos. Universidad de Oviedo Departamento de Informática

Manual de usuario Portal de Proveedores

Base de Datos. Docente: Ing. Francisco Rodríguez BASE DATOS. Resultados. Internet. Requerimientos

PROGRAMACIÓN. UNIDAD II. ALGORITMO PROFA : HAU MOY

Tema: Excel Formulas, Funciones y Macros

Consultas con combinaciones

Programación de Sistemas Depuradores (Debugger) MIS. Lizbeth Hdz. Glz.

Transformación ER Relacional para el diseño de bases de datos relacionales

INSTRUCTIVO DE LLENADO. Serie R18 Otras cuentas por pagar. Reporte B-1821 Desagregado de otros acreedores

NORMAS DE DISEÑO DE BASE DE DATOS

CREACIÓN Y MANEJO DE TABLAS Instructivo N 1

MICROSOFT EXCEL INTERMEDIO

SQLModificaciones a la BD

Relaciones entre Tablas en una Base de Datos Access

WorkManager E.D. Manual guía de usuario Diseñador de formularios

Conceptos básicos de bases de datos

TÍTULO: BASES DE DATOS Disponibilidad Objetivos 5 Definicion de una base de datos 9 Datos de nomina (tabla) 9 Esquema de bases de datos (mapa

REGLAS DE CODD DEL MODELO RELACIONAL

Apéndice A: Documentación Base de Datos.

PROCEDIMIENTO DE ACCIONES CORRECTIVAS Y PREVENTIVAS

SEACE V MODULO ACTOS PREPARATORIOS

Restricciones de Integridad

Integridad y Seguridad. Integridad y Seguridad. Restricción de Dominio. Protección. Índice. create domain. Dominios

Tablas: Modificar o cambiar el tipo de datos de un campo

Unidad 5. Tablas. La celda que se encuentra en la fila 1 columna 2 tiene el siguiente contenido: 2º Celda

SEGURIDAD EN LAS BASES DE DATOS

CREAR TABLAS EN BASES DE DATOS CON phpmyadmin. TIPOS DE DATOS BÁSICOS (VARCHAR, INT, FLOAT). INSERTAR FILAS. (CU00840B)

ESCUELA DE INFORMÁTICA

DI SEÑO DE BASES DE DATOS Y SEGURIDAD DE LA INFORMACIÓN (31 de mayo de 2005) 3DUFLDO. APELLIDOS: NOMBRE: TITULACIÓN (Sistemas/Gestión):

7. Poblar base de datos a partir de documentos XML validados con esquemas XML

Funciones como Subprogramas en C++

Nomenclatura para Tablas, Triggers, Secuencias, Procedimientos Almacenados y Constraints

Temario. Índices simples Árboles B Hashing

Expresiones Aritméticas. Programación digital I Escuela de Sistemas Facultad de Ingeniería Gilberto Diaz

ATRIBUTOS DE LOS FICHEROS EN LINUX

Creación y Modificación de Blog

El Manejador de Bases de Datos Relacionales ORACLE

Qué es una rúbrica? Segundo Congreso de Educación Formando Formadores «Hay Talento 2010»

Modelos y Bases de Datos

FLUJO DE INFORMACIÓN DE LA BIBLIOTECA PARA ACCEDER AL INFORME

Vamos a profundizar un poco sobre los distintos tipos de datos que podemos introducir en las celdas de una hoja de cálculo

Normalización. CC20A 1 Computación II Auxiliar 10 Iván Bustamante. Clase Auxiliar 10 1

CREACIÓN, SUPRESIÓN Y MODIFICACIÓN DE TABLAS.

Para realizar los procesos de cierre y apertura del ejercicio es conveniente disponer de la última versión de la aplicación es decir la V

MICROSOFT ACCESS 2007 (COMPLETO)

Transcripción:

Fundamentos de Bases de Datos Facultad de Ciencias UNAM M.I. Gerardo Avilés Rosas gar@ciencias.unam.mx Laboratorio: L en C.C. Erick Orlando Matla Cruz ematla@ciencias.unam.mx Práctica 07 Desarrollo Hasta ahora se ha estudiado a la estructura de una base de datos como una abstracción que puede representarse de varias formas y la mejor depende del problema que se quiera resolver. También se ha hecho un primer acercamiento a la implementación de la base de datos pero, no se han tomado las consideraciones para crear un buen diseño del modelo de la realidad. Se considera un buen diseño a aquel que protege, en la medida de lo posible, contra la cometida de errores de inconsistencia y brinda cierto nivel de integridad. Hay que tener en cuenta el no depender de la verificación de los datos de entrada en las aplicaciones que se comunican con la base de datos, sino utilizar las facilidades provistas por el SMBD que lleven a cabo este tipo de verificación. Integridad La integridad, es una propiedad que garantiza que el modelo de la realidad sea lo más parecido a esta y se conserve consistente con ella a través del tiempo. Se han definido múltiples tipos de integridad, pero para nuestro estudio sólo se consideran los siguientes: Integridad de entidad Integridad de dominio Integridad de usuario Integridad referencial Integridad de Entidad La integridad de entidad se refiere a que cualquier información del sistema se puede identificar por medio de tres elementos: La relación a la que pertenece (tabla). La columna a la que está relacionado (atributo). Identificación individual dentro de la tabla donde se encuentra.

Para los ejemplos de esta práctica considere el esquema de la Figura1. Figura 1 Esquema de ejemplo Llaves Primarias Se llama llave primaria a un campo o a una combinación de campos que identifica de forma única a cada fila de una tabla. Una llave primaria comprende de esta manera una columna o conjunto de columnas. No puede haber dos filas en una tabla que tengan la misma llave primaria. Una llave primaria debe identificar a todas las posibles filas de una tabla, no únicamente a las filas que se encuentran en un momento determinado. Para definir una llave primaria dentro de una tabla, se sigue la sintaxis presentada en la Figura 2. Es importante notar que dicha restricción de tabla posee el nombre pk_tabla1_nidtabla1 y como tal, ahora podrá identificarse dentro del motor de base de datos. Figura 2

Llaves foráneas Una llave foránea o llave ajena (o Foreign Key FK) es una limitación referencial entre dos tablas. La llave foránea identifica una columna o grupo de columnas en una tabla (tabla hija o referendo), que se refiere a una columna o grupo de columnas en otra tabla (tabla maestra o referenciada). Las columnas en la tabla referendo deben ser la llave primaria u otra llave candidata en la tabla referenciada. Los valores en una fila de las columnas referendo deben existir solo en una fila en la tabla referenciada. Así, una fila en la tabla referendo no puede contener valores que no existen en la tabla referenciada. De esta forma, las referencias pueden ser creadas para vincular o relacionar información. Para definir una llave foránea dentro de una tabla, se sigue la sintaxis presentada en la Figura 3. Figura 3 Integridad de Dominio Este tipo de integridad se da sobre el conjunto de valores que puede tomar cada una de las tuplas pertenecientes a una tabla (su dominio). Este dominio puede estar o no definido por el SMBD pero, siempre se generan reglas que automáticamente verifican el cumplimiento de este tipo de integridad. Por ejemplo, al querer ingresar un valor alfanumérico en el atributo2 de la Tabla1, el motor regresará una advertencia de que no se logró la inserción ya que los tipos de datos no coinciden o no se pudieron convertir. Sin embargo, existen distintos tipos de datos que pueden ser objeto de una conversión implícita. Si ahora se tiene quiere insertar un valor numérico o alfanumérico no se muestra mensaje de error, debido a la conversión implícita que se llevó a cabo. Por otro lado, también es posible restringir el conjunto de valores que podrá contener un atributo en cuestión. Dado que esto corresponde a una definición de restricción, para realizar esta tarea se recurre

nuevamente a la cláusula ALTER TABLE. Para este tipo de restricciones, por cada una de las tuplas que se inserten el sistema se encarga de revisar que cumplan con estas restricciones de dominio. Dentro de expresión puede suministrarse cualquier expresión válida de SQL que regrese un valor apropiado dentro del dominio original del dato, esto es, si se tiene un bigint como tipo de dato en la definición entonces dentro de la expresión se debe tener alguna que regrese un entero. Si se presenta en la definición como tipo de dato un varchar ( ) entonces la expresión debe regresar una cadena, y así sucesivamente. Si se denota una restricción, ésta también puede definirse con las cláusulas NULL, UNIQUE, NOT NULL entre otras, pero es de particular interés la cláusula CHECK, la cual permite definir restricciones sencillas dentro del domino de nuestros atributos. A modo de ejemplo, si se desea garantizar que todos los valores del atributo2 de la Tabla2 sean un número positivo o el cero, es necesario crear una restricción con la siguiente instrucción: Figura 4 Es importante mencionar que la cláusula CHECK no puede manejar subconsultas como restricción. Marcas NULL Un caso muy particular de restricción de dominio corresponde a la aparición de las marcas NULL. Dichas marcas poseen una variedad de significado y su presencia puede ser o no válida según la semántica que deseemos se represente con el modelo de la base de datos. Para controlar su existencia en la base de datos, se cuenta con la restricción de dominio NULL o NOT NULL, que indican si se permite o no este tipo de marcas para un atributo dado. Para definir una restricción de este tipo, se utiliza nuevamente la sentencia ALTER TABLE. A modo de ejemplo, si se desea evitar la aparición de marcas NULL en el atributo2 de la Tabla1 de la base de datos del curso, habrá que alterar dicha tabla de la siguiente forma: Figura 5

Unicidad Existe una restricción se refiere a mantener una unicidad de valores dentro del atributo o columna. Una razón para ello es que posiblemente un atributo debe ser único en el conjunto, pero no es una llave primaria por razones de eficiencia o administración. Un ejemplo de ello, es la utilización del atributo1 en la Tabla1. Para identificar este tipo de restricciones, nuevamente se utiliza la cláusula ALTER TABLE con el modificador UNIQUE. A modo de ejemplo, si se desea que el correo electrónico de un cliente sea único para la base de datos del curso, habrá que ejecutar la siguiente instrucción: Figura 6 Es importante hacer notar que una restricción UNIQUE no se cumple cuando existen dos o más tuplas en la tabla donde los valores de todas las columnas incluidas en la restricción son idénticos. Sin embargo, las marcas NULL no son consideradas equivalentes en una comparación, esto significa que aún en la presencia de una restricción UNIQUE es posible encontrar un número ilimitado de tuplas que tengan la marca NULL en la columna de la restricción. Además, tampoco es posible crear una restricción UNIQUE sobre un atributo cuando ya existen valores duplicados en él. Integridad de Usuario La integridad de usuario está relacionada con la autorización que tiene cada usuario de la base de datos y su interrelación con otros usuarios y con la base de datos misma. Es tema más avanzado de administración y no se profundizará en él. Integridad referencial La integridad referencial consiste en un sistema de reglas que utilizan la mayoría de las bases de datos relacionales para asegurarse que las tuplas de tablas relacionadas son válidas y que no se borren o cambien datos relacionados de forma accidental produciendo errores de consistencia. Cuando se define una columna como llave foránea, las tuplas de la tabla pueden contener en esa columna la marca NULL o bien un valor que existe en la otra tabla. Eso es lo que se denomina integridad referencial y consiste en que los datos que hacen referencia a otros (llaves foráneas) deben ser correctos. La integridad referencial hace que el SMBD se asegure de que no haya en las llaves foráneas valores que no estén en la tabla referenciada.

La integridad referencial se activa en cuanto es creada una llave foránea y a partir de ese momento se comprueba cada vez que se modifiquen datos que puedan alterarla. Los escenarios en los cuales se pueden producir errores en los datos contenidos en una llave foránea son: Cuando se inserta una nueva tupla en la tabla y el valor de la llave foránea no existe en la tabla referenciada. Cuando se modifica el valor de la llave primaria de una tupla que tiene referencias en otras tablas. Cuando se modifica el valor de la llave foránea, el nuevo valor debe existir en la tabla referenciada. Cuando se elimina una tupla de la tabla principal y esa tupla tiene referencias en otras tablas. Asociada a la integridad referencial están los conceptos de actualizar los registros en cascada y eliminar registros en cascada. El actualizar y/o eliminar registros en cascada, son opciones que se indican cuando es definida la llave foránea y que informan al SMBD qué acciones llevar a cabo en los casos comentados en el punto anterior. Actualizar registros en cascada: Indica al SMBD que al modificar un valor del atributo llave de la tabla referenciada, automáticamente se actualice el valor de la llave foránea de las tuplas relacionadas en la tabla referenciante. Si no se tiene definida esta opción, no se puede cambiar los valores de la llave primaria de la tabla referenciada. Un código de ejemplo para motores como SQLServer o PostgreSQL se deja a continuación: Figura 7 Eliminar registros en cascada: Indica al SMBD que al eliminar una tupla de la tabla referenciada automáticamente se borran también las tuplas relacionadas en la tabla referenciante. Si no se tiene definida esta opción, no se pueden borrar tuplas de la tabla referenciada si estas tienen tuplas relacionadas en la tabla referenciante.

Figura 8 Por lo tanto, para cada llave foránea de la base de datos habrá que contestar a tres preguntas: Tiene sentido que la llave foránea acepte nulos? Regla de borrado: Qué ocurre si se intenta borrar la tupla referenciada por la llave foránea? Restringir: no se permite borrar la tupla referenciada. Propagar: se borra la tupla referenciada y se propaga el borrado a las tuplas que la referencian mediante la llave foránea. Anular: se borra la tupla referenciada y las tuplas que la referenciaban obtienen la marca NULL en la llave foránea (sólo si acepta nulos). Regla de modificación: Qué ocurre si se intenta modificar el valor de la llave primaria de la tupla referenciada por la llave foránea? Restringir: no se permite modificar el valor de la llave primaria de la tupla referenciada. Propagar: se modifica el valor de la llave primaria de la tupla referenciada y se propaga la modificación a las tuplas que la referencian mediante la llave foránea. Anular: se modifica la tupla referenciada y las tuplas que la referenciaban obtienen la marca NULL en la llave foránea (sólo si acepta nulos). Ejercicios Añada las llaves primarias y foráneas a todas las tablas del esquema para el caso de uso del laboratorio (Diagrama1.jpg). (Utilizar el comando ALTER TABLE creallaves.sql) Añada 30 restricciones que considere importantes para el mismo esquema y que estén basadas en la lógica planteada en el Caso de Uso El pastor enchilado (crearestricciones.sql). En un reporte ejecutivo detalle un plan de riesgos incluyendo: Riesgo que se puede presentar durante el desarrollo del proyecto Probabilidad de ocurrencia (baja, media, alta)

Impacto en el desarrollo (bajo,medio, alto) Plan de contingencia Tiempo estimado de solución Dentro del reporte ejecutivo, añada los posibles cambios a la lógica del negocio que usted considere podrían aparecer durante la ejecución del proyecto (requerimientos). Deberán enviar sus archivos.sql y.pdf siguiendo los lineamientos para entrega de prácticas al correo ematla@ciencias.unam.mx. Fecha de entrega: 2 de Octubre del 2016, hora máxima: 23:59:59.