Bases de Datos. Notas de Curso. Miguel Murguía miguelmurguía@gmail.com México, D.F. Mayo, 2004 Junio, 2005



Documentos relacionados
BASES DE DATOS TEMA 4 DISEÑO DE BASES DE DATOS RELACIONALES

Tema 1. Conceptos básicos

INTRODUCCIÓN A LOS SISTEMAS GESTORES DE BASE DE DATOS

1.1.- Objetivos de los sistemas de bases de datos Administración de los datos y administración de bases de datos Niveles de Arquitectura

Base de datos relacional

Una base de datos es una colección de información ordenada e interrelacionada que es de importancia para una empresa.

TEORIA DE BASES DE DATOS. M. Sc. Cristina Bender Lic. Diana Gázquez

Modelo Entidad-Relación

Bases de Datos Modelo Relacional

3. Modelo relacional: Estructura e integridad.

Elementos requeridos para crearlos (ejemplo: el compilador)

Unidad II: Diseño de Bases de Datos y el modelo E-R. 2.1 El Proceso de Diseño

El modelo relacional

Base de datos en Excel

BASE DE DATOS UNIVERSIDAD DE LOS ANDES FACULTAD DE MEDICINA T.S.U. EN ESTADISTICA DE SALUD CATEDRA DE COMPUTACIÓN II. Comenzar presentación

Estructura de Bases de datos. Leonardo Víquez Acuña

Introducción. Componentes de un SI. Sistema de Información:

INTRODUCCION. entidades. Modelo lógico de la base de datos. Matricula. carne. codigo_curso. año semestre nota. propiedades

Bases de Datos 3º Informática de Sistemas

Programa Analítico Plan de estudios Asignatura: Bases de Datos

Sistemas de Bases de Datos I. Modelo Lógico Modelo Relacional

ELEMENTO I INTRODUCCION A LOS SISTEMAS DE BASES DE DATOS

DBMS (Data Base Management System) Un Sistema de Gestión de Base de Datos, consiste en una colección de datos interrelacionados y un conjunto de

Maestría en Bioinformática. Bases de Datos y Sistemas de Información. Diseño Lógico. Ing. Alfonso Vicente, PMP alfonso.vicente@logos.com.

Tema 2: Modelo Entidad-Relación(ER)

Registro (record): es la unidad básica de acceso y manipulación de la base de datos.

ARQUITECTURA DE DISTRIBUCIÓN DE DATOS

Estas visiones de la información, denominadas vistas, se pueden identificar de varias formas.

Unidad 1. Introducción a los conceptos de Bases de Datos

SISTEMA DE GESTIÓN DE BASE DE DATOS (Database Management System (DBMS))

Alumna: Adriana Elizabeth Mendoza Martínez. Grupo: 303. P.S.P. Miriam De La Rosa Díaz. Carrera: PTB. en Informática 3er Semestre.

Carrera: IFM Participantes. Representantes de la academia de sistemas y computación de los Institutos Tecnológicos.

BASES DE DATOS TEMA 1. INTRODUCCION

BASE DE DATOS RELACIONALES

Base de Datos. Profesor: José Miguel Rubio L. P. UNIVERSIDAD CATÓLICA DE VALPARAÍSO FACULTAD DE INGENIERÍA ESCUELA DE ING.

Capítulo 1: Introducción a los Sistemas de Gestión de Bases de Datos (SGBD)

Conceptos básicos Oracle 10g Introducción - Administración de Oracle - Orasite.com

INTRODUCCION A LAS BASES DE DATOS Procesamiento de Archivos vs Bases de Datos ARCHIVOS BASES DE DATOS

Seminario de Informática. Modulo V: Bases de Datos Elementos Conceptuales


TEMA 2.- EL SISTEMA GESTOR DE BASES DE DATOS.

Temario Curso Bases de Datos

Universidad de Colima Facultad de Ingeniería Mecánica y Eléctrica. Base de Datos I. Maestra: Martha E. Evangelista Salazar

Modelos y Bases de Datos

Tema 5: Teoría de diseño de Bases de Datos Relacionales.

UNIVERSIDAD NACIONAL DE TRUJILLO ESCUELA DE INFORMATICA BASE DE DATOS

Tema 11 Bases de datos. Fundamentos de Informática

Modelos y Bases de Datos

UNIDAD 2: Abstracción del Mundo real Al Paradigma Orientado a Objetos

SEGURIDAD Y PROTECCION DE FICHEROS

proceso que consiste en aplicar una serie de reglas a las relaciones obtenidas tras el paso del modelo entidad-relación al modelo relacional.

CAPITULO 1. Introducción a los Conceptos Generales de Bases de Datos Distribuidas

UNIDAD DIDACTICA 1: SISTEMAS GESTORES DE BASES DE DATOS

Bases de Datos. Sistemas de Gestión de Bases de Datos

Introducción a las redes de computadores

ADMINISTRACIÓN DE BASES DE DATOS DISTRIBUIDAS

Temario. Índices simples Árboles B Hashing

Sistemas de Información II Tema 1. El enfoque de bases de datos

Proyecto de Normalización Automática de Base de Datos

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

Asignaturas, profesores, alumnos. Profesores, grupos, asignaturas, aulas

Es una colección de datos operativos almacenados y utilizados por los programadores de aplicaciones y por usuarios finales de muy diversa índole!

Teoría formal de la normalización de esquemas relacionales. Definición formal de las tres primeras Formas Normales

[CASI v.0110] Pág. 1

Normalización. Universidad Nacional de Colombia Facultad de Ingeniería

Diseño de bases de datos Diapositiva 1

GENERALIDADES DE BASES DE DATOS

IAP ENTORNOS INFORMATIZADOS CON SISTEMAS DE BASES DE DATOS

Arquitectura de Aplicaciones

- Bases de Datos - - Diseño Físico - Luis D. García

Introducción. Metadatos

Ventajas, Características y Aplicaciones de los SGBD Distribuidos.

Principios de Bases de Datos Relacionales, Normalización. Unidad 4

"Diseño, construcción e implementación de modelos matemáticos para el control automatizado de inventarios

UNIDAD 3. MODELO RELACIONAL

rg.o El l c i c c i l c o l o de d vi v d i a d a cm a l@ rza e de d u n u n si s s i t s e t ma m a de d in i f n or o ma m c a i c ó i n ó b

Generaciones de Bases de Datos

Administración de Bases de Datos (Ingeniería Técnica en Informática de Gestión)

UNIVERSIDAD RICARDO PALMA FACULTAD DE INGENIERÍA

Introducción a los sistemas de Bases de datos. Profesor: Msc. MIGUEL ANGEL NIÑO ZAMBRANO

SISTEMAS DE GESTIÓN DE BASE DE DATOS SGBD / DBMS

Capitulo III. Diseño del Sistema.

Sistemas de Gestión de Bases de Datos

TEMARIO. - Programa de teoría

Resumen. El rol del lenguaje SQL en los SGBDR y en la Relacional. cjimenez@inf.udec.cl, tamrstro@inf.udec.cl

ADMINISTRACIÓN DE BASE DE DATOS

DEPARTAMENTO: Computación y diseño NOMBRE DEL CURSO: Base de datos I CLAVE: ACADEMIA A LA QUE PERTENECE: Base de datos I

Repaso de Conceptos Básicos de Bases de Datos

BASES DE DATOS TEMA 2. MODELOS DE DATOS

Introducción a las bases de datos

BASES DE DATOS TEMA 3. MODELO RELACIONAL

FICHEROS Y BASES DE DATOS (E44) 3º INGENIERÍA EN INFORMÁTICA. Tema 8. Elementos Básicos

UNIVERSIDAD NACIONAL DE ASUNCION FACULTAD POLITÉCNICA CARRERA: LCIK MATERIA: Bases de Datos I Prof: Lic. Lilian Riveros Unidad 2: Modelo Relacional

Análisis de Sistemas. M.Sc. Lic. Aidee Vargas C. C. octubre 2007

SIIGO Pyme. Informes de Saldos y Movimientos de Inventarios. Cartilla I

ESPECIALISTA EN BASE DE DATOS

Formularios. Formularios Diapositiva 1

Unidad I: Sistemas Gestores de Bases de Datos. 1.1 Objetivo de las Bases de Datos

Capítulo 2. Planteamiento del problema. Capítulo 2 Planteamiento del problema

Programa de Asignatura Base de datos

Transcripción:

Bases de Datos Notas de Curso Miguel Murguía miguelmurguía@gmail.com México, D.F. Mayo, 2004 Junio, 2005

Contenido I Introducción...6 I. Conceptos Básicos de Bases de Datos...6 1.1 Panorama de las Bases de Datos... 6 1.2 Modelos de Datos: 3 Niveles... 9 1.3 Los Lenguajes en las Bases de Datos... 12 1.4 Arquitectura general de un DBMS... 14 Preguntas... 16 2. El Modelo Entidad-Relación...17 Generalidades del Modelo Entidad-Relación... 17 Dominios y Atributos... 27 Restricción en las relaciones... 28 Relaciones (papeles y recursividad)... 29 II El Modelo Relacional de Bases de Datos...30 1. Introducción al Modelo Relacional...30 Antecedentes y orígenes del Modelo Relacional... 30 Conceptos del Modelo Relacional... 31 Tuplas... 32 Diagrama E-R para una escuela... 36 Otra definición de relación... 37 Esquemas de relaciones... 38 Esquema de una Base de Datos... 40 Notación... 41 2. Principales características del Modelo Relacional...42 Restricciones del Modelo Relacional... 42 Relación: el único tipo de dato compuesto... 43 Críticas al modelo Entidad-Relación... 44 Evolución del Modelo Relacional... 45 Diferencias entre las Matemáticas y en el Modelo Relacional del concepto de relación y terminología... 46 Objetivos del Modelo Relacional... 47 Interrelación de información entre relaciones distintas... 47 Transacción... 48 SQL (Structured Query Language)... 49 DBMS relacionales... 50 La relación universal... 51 Razones para soportar dominios... 52 Recuerde que... 54 Bases de Datos. Miguel Murguía. FAR. 2

III Álgebra Relacional...55 1. Operadores básicos del Álgebra Relacional...55 Introducción... 55 Los operadores... 56 Proyección... 58 Theta-Selección... 60 Combinando selección y proyección... 62 Select y Theta-Select... 63 Theta-selección extendido... 65 Producto cartesiano... 66 Renombrar... 71 Unión... 72 Compatibilidad de unión... 73 Diferencia... 74 Definición formal del álgebra relacional... 75 Intersección... 76 Producto natural... 77 Theta Join... 79 Theta Join extendido... 81 Join natural... 81 División... 82 División (Reforzamiento)... 85 Asignación... 86 Ejercicios I... 88 Ejercicios II... 89 2. Modificación de la Base de Datos...90 Asignación... 90 Inserción... 91 Actualización... 92 Borrar... 93 3. Vistas...93 Definición de vistas... 93 Modificabilidad de las Vistas... 95 Algoritmo VU... 96 IV Diseño de bases de Datos Relacionales...97 1. Normalización...97 Dependencia funcional... 97 1a. forma normal... 99 2a. forma normal... 99 3a. forma normal... 101 Forma normal de Boyce-Codd... 103 4a. forma normal... 105 Dependencia multivaluada... 107 Limitaciones de la normalización... 109 Dependencia de reunión (join)... 110 5NF o PR/NF (forma normal de proyección-reunión)... 111 Bases de Datos. Miguel Murguía. FAR. 3

Resumen de Formas Normales... 115 Dependencias Funcionales... 116 Axiomas de Armstrong... 117 Análisis... 119 Síntesis... 120 Ejercicios... 121 2. Árboles, redes y relaciones recursivas...123 Árboles... 123 Relaciones recursivas... 124 Redes... 126 3. Integridad...127 Integridad de dominio... 127 Integridad intra-relacional... 129 Integridad referencial... 129 Integridad semántica intra-relacional... 130 Análisis de consistencia en bases de datos geográficas... 130 Afirmaciones... 131 Disparadores... 132 4. Autorizaciones...132 5. Catálogo...135 On-line... 135 Concurrencia... 135 Descripción de dominios, relaciones base y vistas... 137 Restricciones de integridad... 138 Funciones definidas por el usuario... 139 Datos de autorización... 139 Estadísticas... 139 V Lógica y Cálculo Relacional de Tuplas...141 1. Lógica...141 Operadores lógicos... 141 Tablas de verdad... 143 Tautologías... 145 Reglas de inferencia... 145 Equivalencias lógicas... 149 2. Lógica de predicados...150 Lenguaje de 1er orden o de predicados... 150 Reglas de la negación:... 150 Reglas de cuantificación... 151 3. Cálculo relacional de tuplas...153 Bibliografía...156 Páginas WWW...157 Temarios... 157 Bases de Datos. Miguel Murguía. FAR. 4

Modelo Relacional... 157 ANEXO 1. Prolog como Base de Datos...158 A) Código del Programa...158 B) Resultado de Querys...160 Bases de Datos. Miguel Murguía. FAR. 5

I Introducción I. Conceptos Básicos de Bases de Datos 1.1 Panorama de las Bases de Datos Orígenes del modelo relacional La era de las bases de datos relacionales se inicia con la publicación de una serie de artículos de Codd; el primero es: Codd, E. F. 1970. A relational model of data for large shared data banks. Communications of the ACM 13:377-387. Previo al modelo relacional existían otros, los más populares eran el modelo de red y el modelo jerárquico. Actualmente se puede decir que esos modelos fueron un camino recorrido que llevó al modelo relacional. Aunque los modelos jerárquico y de red son la base de algunos DBMS usados en la actualidad, se puede decir, en general, que esos modelos son historia. A inicios de los años 60 s se construyó lo que se puede considerar el primer DBMS, el sistema Integrated Data Store, por Charles Bachman de la General Electric que sentó las bases del modelo de red. A finales los años 60 s nace el IMS (Information Management System) de IBM y que fue base del modelo de jerárquico. El modelo relacional soluciona varios de los problemas no resueltos por otros modelos previos, sin embargo, se debe de considerar que el correcto planteamiento de los problemas es en sí un avance hacia su solución. Así, los modelos jerárquico y de red pueden considerarse como escalones en la construcción de modelos eficientes de bases de datos. El modelo relacional es robusto debido a la formalidad con que se plantea, pues está fundamentado matemáticamente en el álgebra de relaciones. En la actualidad, una de las principales alternativas al modelo relacional es el modelo orientado a objetos, sin embargo, el modelo relacional aún se considera más importante por su fundamento, la cantidad de usuarios, herramientas y sistemas comerciales existentes. Bases de Datos. Miguel Murguía. FAR. 6

Los Turing Award Los reconocimientos Turing Award son el equivalente en computación al premio Nobel. El área de Bases de Datos ha recibido ya tres de ésos reconocimientos: el primero para Bachman, por haber puesto las bases del modelo de red; el segundo para Codd por su Modelo Relacional, y el tercero para James Gray por sus trabajos sobre el concepto de transacción en Bases de Datos. Objetivos de los DBMS Los sistemas manejadores de bases de datos (DBMS por sus siglas en inglés) son un tipo de sistemas informáticos enfocados a la tarea del almacenamiento y recuperación de información, por lo que pueden ser sujetos a las metodologías de desarrollo de sistemas, por ejemplo UML. Existe una amplia gama de DBMS comerciales, como por ejemplo MS- Access, MS-SQL_Server, Oracle, Informix o Sybase; También existen alternativas de DBMS libres como MySQL o PosgreSQL. Los DBMS pueden ser vistos como esqueletos de bases de datos, en los que sólo es necesario incorporar los datos específicos de nuestra aplicación, por ejemplo, los nombres de los alumnos de una escuela, las calificaciones para cada materia, las claves de los grupos y los nombres de los profesores. Sin embargo, también es necesario definir la estructura de los datos, es decir el modelo de datos. Ese modelo de datos debe construirse de acuerdo a las necesidades de información, ya que para un mismo dominio (escuela o un sistema de control de inventario, por ejemplo) existen varias maneras de definir el modelo de acuerdo al nivel de precisión que se requiera. Los principales objetivos de los DBMS son: Almacenamiento de grandes volúmenes de información. Procesamiento de la información (generación de reportes, análisis, reportes ejecutivos). Seguridad, eficiencia y oportunidad en la información. Los DBMS dan facilidades para realizar varias tareas comúnmente asociadas a la información de una base de datos, como son la definición de la estructura de las tablas donde se almacenará la información, el tipo de datos a almacenar, la creación de pantallas de captura, la generación de reportes, clasificaciones, filtros, actualizaciones, entre otras. Por ejemplo, para una base de datos de una escuela, el DBMS debe dar facilidades para: Registro de calificaciones. Impresión de listas de los grupos. Captura de calificaciones finales. Corrección de calificaciones. Reportes de materias que adeuda un estudiante. Promedios de calificaciones por materia. Bases de Datos. Miguel Murguía. FAR. 7

Generación de historias académicas. Se puede generar un programa para cada tarea que funcione de manera independiente para constituir un sistema procesador de archivos. Pero se tienen los problemas de: Redundancia e inconsistencia de datos. Las direcciones de los clientes pueden estar almacenados en dos archivos (por ejemplo, en el de cuentas de ahorro y en el de cuentas de cheques ), lo que hace que ocupen doble espacio, además de que se puede generar la situación de que se actualice sólo en un archivo generando una inconsistencia. Dificultad en el acceso. Casi todas las consultas son planeadas. Para hacer consultas no planeadas se necesitan escribir nuevos programas. Aislamiento de los datos. Los datos están repartidos en varios archivos, por lo que pueden tener diferentes formatos y es necesario escribir programas para cada nuevo proceso. Seguridad. No todos los usuarios del sistema deben tener acceso a todas las operaciones (v.g. actualización de saldos, ver ciertas cuentas, etc.). Integridad. Los valores de los campos de las tablas deben satisfacer ciertas restricciones de dominio. Por ejemplo, las cuentas de ahorro no deben contener cantidades negativas. Las ventajas de los DBMS con respecto a los sistemas de archivos son: Independencia de Datos Eficiencia en el Acceso Integridad y Seguridad Administración de Datos Acceso Concurrente Recuperación de Crash Desarrollo de Aplicaciones en tiempos reducidos La independencia de datos se refiere a que los programas de aplicación están aislados de la forma en que estructuran los datos, y a su vez, la forma en que estructuran los datos tiene cierta independencia de cómo se almacenan físicamente. Se logra gracias a la existencia de esquemas, que se revisarán más adelante. Bases de Datos. Miguel Murguía. FAR. 8

1.2 Modelos de Datos: 3 Niveles Abstracción de datos Uno de los objetivos de los sistemas de bases de datos es mostrar una visión abstracta de los datos, es decir, se esconden ciertos detalles de cómo se almacenan y manejan los datos, para mostrar sólo aquellos aspectos de utilidad práctica al usuario. Esa visión abstracta de los datos puede clasificarse en tres niveles: Nivel físico. Se describe el almacenamiento digital de los datos en la memoria principal y secundaria de la computadora. Se debe de considerar la arquitectura y atributos de los sistemas y medios de almacenamiento. Nivel conceptual. Se describe la información que se almacena en la base de datos, hasta cierto punto independientemente del sistema físico en el que se implemente. En este nivel, la información ya tiene un carácter semántico concreto y directo para los usuarios (v.g. un 7 no se ve como una representación decimal de 0111 en binario, sino como la calificación de un alumno en cierta materia). Nivel de visión. Aunque en el nivel conceptual se describe la manera de almacenar información que tiene un significado concreto en el dominio de aplicación, en el nivel de visión se centra aún más en el significado para el usuario. La información se clasifica de acuerdo al tipo de usuario, cambiando el formato de presentación y seleccionando sólo aquella de interés directo. Modelos de datos Los modelos de datos son herramientas para describir la estructura de una base de datos: los datos y las relaciones entre ellos, la semántica asociada y las restricciones de consistencia. Se clasifican en tres grupos según el nivel de abstracción. Semántico: Modelos basados en objetos Lógico: Modelos lógicos basados en registros Físico: Modelos físicos de datos Bases de Datos. Miguel Murguía. FAR. 9

Nivel SEMÁNTICO: Niveles conceptual y de visión. Permiten expresar restricciones de datos explícitamente. Hay muchos modelos, entre ellos: UML Modelo entidad-relación Modelo orientado a objetos Modelo binario Modelo semántico de datos Modelo infológico Modelo funcional de datos De los anteriores, los más usados en la actualidad son el modelo entidad relación y el orientado a objetos. Algunos conceptos manejados en el modelo entidad relación son: Entidades Relaciones Conjunto de Entidades Conjunto de Relaciones Cardinalidad de Asignación Diagrama E-R Conceptos manejados en el modelo orientado a objetos son: Clases Instancias Métodos Mensaje Herencia Polimorfismo Nivel LÓGICO Los modelos lógicos basados en registros correspondes a los niveles de abstracción conceptual y físico. Se llaman basados en registros porque la base de la representación son los registros de formato fijo, donde cada campo normalmente es de longitud fija, lo que simplifica su implementación. En el modelo orientado a objetos se utilizan registros de longitud variable, generando una estructura más rica en el nivel físico. Los tres modelos de datos más aceptados actualmente son el relacional y el de objetos. Los modelos de red y jerárquico se consideran, como ya se comento, un escalón histórico para la concepción del relacional. Bases de Datos. Miguel Murguía. FAR. 10

Nivel FÍSICO Los modelos físicos corresponden al nivel de abstracción físico. Hay muy pocos modelos físicos en uso, a diferencia de los modelos lógicos; dos de los más conocidos son el modelo unificado y la memoria de elementos. Esquema: operación de los niveles de abstracción Los niveles de abstracción de datos son una estrategia para organizar los datos considerando desde la plataforma física hasta el nivel de usuario. Los esquemas son las estructuras diseñadas para resolver cada nivel de abstracción, así, los sistemas de bases de datos soportan varios esquemas: Nivel de abstracción Físico Conceptual Visión Esquema Esquema físico Esquema conceptual Esquema externo En el nivel de visión pueden existir varios subesquemas, ya que su función es brindar una forma especializada de acceso a la información a cada tipo de usuario. Figura 2. Los tres niveles de esquemas en los modelos de Bases de Datos. El esquema es en sí una estructura capaz de almacenar un conjunto de datos. Uno de los problemas que debe resolver una base de datos es el cambio de la información a través del tiempo, por esa razón se define el concepto de instancia, que es una colección de datos almacenada en un determinado instante. Por lo que la instancia, por definición cambiaa través del tiempo, mientras que el esquema, el diseño global de la BD, normalmente no cambia o cambia poco y en intervalos de tiempo mucho mayores. Bases de Datos. Miguel Murguía. FAR. 11

Haciendo una analogía con los lenguajes de alto nivel,el esquema corresponde a la nocón de tipo, mientras que la instancia a la de valor que adquiere determinada variable. Independencia de datos Independencia de datos es la capacidad de modificar la definición de un esquema sin afectar la definición de un nivel superior. Independencia Lógica: Modificar el esquema conceptual sin provocar que se necesiten escribir los programas de aplicación. Independencia Física: Modificar el esquema físico sin provocar que se necesiten escribir los programas de aplicación. La independencia lógica es más difícil de lograr que la física, pues los programas de aplicación son fuertemente dependientes de los datos que acceden. La independencia de datos es análoga a los tipos abstractos de datos de los lenguajes de programación. 1.3 Los Lenguajes en las Bases de Datos Los DBMS pueden responder a una amplia gama de preguntas sin necesidad de mucho esfuerzo por parte del usuario. Estas preguntas a la BD se llaman Queries. Los lenguajes para trabajar con datos se pueden dividir en dos tipos, o bien tiene dos funciones: Lenguaje de definición de datos Lenguaje de manipulación de datos Lenguaje de definición de datos DDL (data definition language): Lenguaje de definición de datos. Especifica un esquema de base de datos. El resultado de la compilación de un conjunto de instrucciones de DDL son un conjunto de tablas cuya definición se almacena en el diccionario de datos (o directorio). El diccionario contiene metadatos (datos sobre los datos). Lenguaje de manipulación de datos DML (data manipulation language): Lenguaje que permite a los usuarios acceder los datos y permite: Recuperar información almacenada en la BD Incorporar nueva información Borrar información Bases de Datos. Miguel Murguía. FAR. 12

Modificar información almacenada en la BD Se pueden dividir en dos tipos: Procedimentales (qué datos y cómo obtenerlos) No procedimentales (qué datos y no cómo obtenerlos) Lenguaje de consulta: subconjunto del DML que permite sólo consultas, pero no modificaciones. El lenguaje usado actualmente como DML y DDL es SQL. Aunque existen sistemas cion otros lenguajes, se puede de decir que para fines prácticos SQL es el lenguaje que utilizan los DBMS. Los fundamentos para los lenguajes de queries son el Cálculo Relacional y el Álgebra Relacional, ambos son equivalentes, el primero es declarativo, mientras que el segundo se concibe con base en operadores. El administrador de la base de datos La persona que se encarga del control central del sistema es el administrador de la base de datos (DBA). Sus funciones son: Definición del esquema. Definición de la estructura de almacenamiento y del método de acceso. Modificación del esquema y de la organización física. Concesión de autorizaciones para el acceso a los datos. Especificación de las restricciones de integridad. Aspectos de seguridad Usuarios de bases de datos Se pueden clasificar en cuatro: Programadores de aplicaciones. Generan programas de aplicación en DML, en ocasiones inmerso en algún lenguaje de alto nivel. Usuarios sofisticados. No escriben programas de aplicación, pero sí realizan preguntas sofisticadas en el lenguaje DML. Usuarios especializados. Usuarios interesados en aplicaciones sofisticadas, como sistemas expertos, sistemas de Información para Ejecutivos, Sistemas Multimedia (video, sonido, etc.). Usuarios finales. Únicamente hacen uso de los programas o queries ya establecidos. Bases de Datos. Miguel Murguía. FAR. 13

1.4 Arquitectura general de un DBMS En la figura 3 se muestra la arquitectura básica de un DBMS, los diferentes módulos se pueden agrupar en cuatro grandes clases: Máquina de evaluación Gestor de Base de Datos Administrador de Recuperación Control de Concurrencia Figura 3. Arquitectura de un DBMS (tomada de Ramakrishnan y Gehrke, 2003). Máquina de evaluación. Traduce instrucciones del lenguaje de consultas a instrucciones de bajo nivel que entiende el gestor de base de datos. Intenta transformarla en una pregunta equivalente pero eficiente. Parser Optimizador Plan de ejecución Evaluador. Traduce las instrucciones del DML a comandos de manipulación de archivos de bajo nivel. Bases de Datos. Miguel Murguía. FAR. 14

Gestor de Base de Datos. Interfaz entre los datos de bajo nivel y los programas de aplicación y consultas al sistema: Métodos de acceso Administrador del buffer Administrador de espacio en disco: Asignación de espacio en disco. Estructuras de datos usadas para representar información. Administrador de Recuperación. Todos los sistemas informáticos están sujetos a fallas lógicas y físicas (daño del disco, alteraciones en el suministro de energía, errores de software, etc.), el DBMS debe ser capaz de detectar estas fallas y tomar las medidas necesarias para reestablecer la base de datos, normalmente mediante copias de seguridad o bitácoras (archivos log ). Control de Concurrencia. Cuando varios usuarios actualizan la base de datos es posible que no se conserve la consistencia de los datos. El DBMS debe controlar estas concurrencias, que es los que permite a los usuarios pensar como si ellos estuvieran trabajando de manera aislada. Administrador de transacciones Administrador de Bloqueos. protocolo de bloqueo Otros elementos que administra el DBMS son: Precompilador DML. Convierte las instrucciones de DML en un programa de aplicación, en llamadas normales a procedimientos en lenguaje de alto nivel. Compilador DDL. Convierte instrucciones de DDL (Data Definition Language) en un conjunto de tablas con metadatos. Archivos de Datos. Almacenan la base de datos. Diccionario de Datos. Almacenan metadatos: datos o información sobre la estructura de la base de datos. Índices. Proporcionan acceso rápido a los datos. Bases de Datos. Miguel Murguía. FAR. 15

Preguntas 1. Cuáles son los niveles de esquemas de una BD? 2. Qué relación tiene la independencia de datos y los esquemas? 3. Cuáles son las ventajas de usar un DBMS? 4. Identifica cada ventaja con los datos que manipulas en tu trabajo 5. Explica el concepto de TRANSACCION y su importancia en el manejo de información. 6. Explica la arquitectura de los DBMS. 7. Define con tus palabras los siguientes conceptos: BD Relacional Bloqueo Concurrencia DBA DBMS DML Esquema Independencia de Datos Nivel de abstracción Protocolo de bloqueo Recuperación Registro de Transacciones SQL Bases de Datos. Miguel Murguía. FAR. 16

2. El Modelo Entidad-Relación Generalidades del Modelo Entidad-Relación El modelo entidad relación es un modelo lógico basado en objetos que resuelve el problema de la descripción de datos en los niveles conceptual y de visión. Consiste en un conjunto de objetos básicos llamados Relaciones y Entidades. Entidades y Relaciones Entidad. Objeto que existe y es distinguible de otros. Puede ser físico (v.g. persona o libro) o abstracto (v.g. día festivo o conceptos). Conjunto de Entidades. Grupo de entidades del mismo tipo, por ejemplo, el conjunto (ALUMNO) de todas las personas que toman cursos en la FAR. Los conjuntos de entidades no necesariamente deben ser disjuntos, por ejemplo ALUMNO y PROFESOR pueden compartir entidades. Atributo. Características de las entidades. Una entidad está representada por un conjunto de atributos. Los atributos representan el uso de un dominio. Por ejemplo, Nombre_alumno es una atributo del conjunto de entidades ALUMNO. Dominio. Conjunto de valores permitidos para cada atributo. Por ejemplo, el dominio del atributo calificación podría ser el conjunto de todos los reales entre 0 y 10. Relación. Asociación entre dos o más entidades. Bases de Datos. Miguel Murguía. FAR. 17

Por ejemplo, a continuación se muestra una relación entre las entidades PROVEEDOR y PRODUCTO: PRODUCTO PROVEEDOR Nombre_producto Nombre_proveedor Teléfono LAPIZ OFIMAX 645 4523 GOMA LUMEN 234 5467 CHOCOLATE EXPENDIO LUPITA 545 3421 CHAMOI MAGO DE OZ 534 6756 Que puede representarse por la tupla: Nombre_producto Nombre_proveedor Teléfono LAPIZ LUMEN 234 5467 y podría significar, por ejemplo, que LUMEN vende el producto LAPIZ. Formalmente: Dados los conjuntos D 1, D 2,..., D n, se dice que R es una relación sobre estos n conjuntos si es un conjunto de n elementos ordenados (d 1, d 2,..., d n ) tales que d 1 D 1, d 2 D 2,..., d n D n. Los conjuntos D 1, D 2,..., D n son los dominios de R. El valor n es el grado de R. Dada esa definición, el término relación, también suele usarse para denotar a una tabla o conjunto de entidades, pues si: D 1 = Nombre_proveedor D 2 = Teléfono entonces, la siguiente es una relación: PROVEEDOR Nombre_proveedor Teléfono OFIMAX 645 4523 LUMEN 234 5467 EXPENDIO LUPITA 545 3421 MAGO DE OZ 534 6756 Se dice que PROVEEDOR es una relación de grado 2 y tiene una cardinalidad de 4 (número de tuplas). Posteriormente se revisará otra definición de relación. Bases de Datos. Miguel Murguía. FAR. 18

Relación binaria. Relación de grado 2, i.e. entre dos entidades: R= {d i, d j } Cardinalidad de una relación. Número de entidades que contiene una relación. Conjunto de Relaciones Conjunto de relaciones: Conjunto de relaciones del mismo tipo. Por ejemplo, la relación CATALOGO entre las entidades PROVEEDOR y PRODUCTO: PRODUCTO CATALOGO PROVEEDOR Nombre_producto Nombre_proveedor Teléfono LAPIZ OFIMAX 645 4523 GOMA LUMEN 234 5467 CHOCOLATE EXPENDIO LUPITA 545 3421 CHAMOI MAGO DE OZ 534 6756 que puede representarse por la tabla: CATALOGO Nombre_producto LAPIZ LAPIZ LAPIZ GOMA GOMA CHOCOLATE CHOCOLATE CHAMOI Nombre_proveedor OFIMAX LUMEN EXPENDIO LUPITA LUMEN EXPENDIO LUPITA EXPENDIO LUPITA MAGO DE OZ EXPENDIO LUPITA Un conjunto de relaciones puede definirse como un subconjunto de: donde: R={(e 1, e 2,... e n ) e 1 E 1, e 2 E 2,... e n E n,} Bases de Datos. Miguel Murguía. FAR. 19

e 1, e 2,... e n son entidades; E 1, E 2,... E n son conjuntos de entidades y (e 1, e 2,... e n ) es una relación. Cardinalidad de asignación Cardinalidad de asignación: Número de entidades con las que puede asociarse otra entidad, dentro de un conjunto de relaciones. Si A y B son conjuntos de entidades, la cardinalidad de asignación de un conjunto de relaciones entre ellas, puede ser: 1:1 Si la entidad a A está asociada a lo más con una b B y la entidad b B está asociada a lo más con una a A. 1:N Si la entidad a A está asociada a lo más con una b B y la entidad b B está asociada con un número cualquiera de entidades a A. N:M Si la entidad a A está asociada con un número cualquiera de entidades b B y la entidad b B está asociada con un número cualquiera de entidades a A. Dependencia de existencia. La entidad x es dependiente por existencia de y, si es necesaria la existencia de la entidad y para la existencia de x. (Si se borra y, también se debe borrar x). Se dice que y es la entidad dominante y x la entidad subordinada. Bases de Datos. Miguel Murguía. FAR. 20

Cardinalidad de asignación: ejemplos Cardinalidad de asignación 1:1 ALUMNO DIRECCION Nombre_alumno... Calle_y_número Colonia... Cardinalidad de asignación 1:N CARRERA ALUMNO Nombre_carrera Nombre_alumno... Cardinalidad de asignación N:M PRODUCTO CATALOGO PROVEEDOR Nombre_producto Nombre_proveedor Teléfono LAPIZ OFIMAX 645 4523 GOMA LUMEN 234 5467 CHOCOLATE EXPENDIO LUPITA 545 3421 CHAMOI MAGO DE OZ 534 6756 Dependencia de existencia: ALUMNO (entidad subordinada) podría ser dependiente de CARRERA (entidad dominante). Bases de Datos. Miguel Murguía. FAR. 21

Claves Superclave. Conjunto de atributos que permiten distinguir de forma única a una entidad dentro del conjunto de entidades. Por ejemplo, {Rfc} es una superclave de la entidad CONTRIBUYENTE, también {Rfc, Nombre} es una superclave, pero {Nombre} no es una superclave, pues varios contribuyentes pueden tener el mismo nombre. Clave candidata. Superclave, tal que ningún sobconjunto propio es una superclave. El concepto de clave candidata sirve para definir conjuntos con cardinalidad mínima de atributos que identifiquen a las entidades. Pueden existir varias claves candidatas para cada entidad. Clave primaria. Clave candidata que elige el diseñador para distinguir a las entidades dentro del conjunto de entidades. Clave alterna. Clave candidata que no es la clave primaria. Conjunto débil de entidades. Conjunto de entidades para el que no se puede definir una clave candidata. Conjunto fuerte de entidades. Conjunto de entidades para el que sí se puede definir al menos una clave candidata. Entidad dominante. Entidad que pertenece a un conjunto fuerte de entidades. Entidad subordinada. Entidad que pertenece a un conjunto débil de entidades. Discriminador. Conjunto de atributos que el diseñador crea de manera artificial para permitir distinguir de manera única a cada entidad de un conjunto débil de entidades. Por ejemplo, el conjunto débil de entidades TRANSACCION = {Número_de_cuenta, Número_transacción, Fecha} contiene el atributo Número_transacción como discriminador. Así, la clave primaria de un conjunto débil de entidades está formada por la clave primaria del conjunto de entidades fuerte del que depende su existencia y el discriminador. Bases de Datos. Miguel Murguía. FAR. 22

Por ejemplo, {Número_de_cuenta, Número_transacción } distingue entidades TRANSACCION dentro de una misma CUENTA. Atributos de relaciones Sea R un conjunto de relaciones que involucran a los conjuntos de entidades E 1, E 2,...E n y sea E i los atributos que conforman a la clave primaria de Ei, entonces los atributos de R son: la clave primaria de E 1, la clave primaria de E 2,... y la clave primaria de E n es decir: {E 1, E 2,..., E n } R puede tener atributos descriptivos (adicionales), por lo que el conjunto de atributos de la relación R sería: {E 1, E 2,..., E n, a 1, a 2,..., a n } E 1 =PRODUCTO Nombre_producto LAPIZ GOMA CHOCOLATE CHAMOI Clase PAPELERIA PAPELERIA DULCERIA DULCERIA E 2 =PROVEEDOR Clase Nombre_proveedor Teléfono PAPELERIA OFIMAX 645 4523 PAPELERIA LUMEN 234 5467 DULCERIA EXPENDIO LUPITA 545 3421 DULCERIA MAGO DE OZ 534 6756 Por ejemplo, los atributos de la relación PEDIDO Bases de Datos. Miguel Murguía. FAR. 23

PEDIDO E 1 E 2 a 1 Nombre_producto Nombre_proveedor Cantidad LAPIZ LUMEN 100 CHOCOLATE LUPITA 20 Reglas de integridad La interpretación del mundo real que se hace de una relación, lleva a considerar la imposición de reglas de integridad. Es decir, hay cosas que el modelo teórico permite, pero que no se dan en la realidad. 1: Integridad de la Entidad. Ningún valor de un componente de la llave primaria puede ser nulo. 2: Integridad de Referencia. Sea D un dominio primario y R una relación con atributo A que se define sobre D. Cada valor de A en R debe ser un valor de la llave primaria de alguna relación con llave primaria sobre D. Dominio Primario. Dominio para el que existe una llave primaria de un sólo atributo. Clave foránea. Atributo con las propiedades de A. Extensión. Conjunto de tuplas que tiene una relación en un instante dado. Comprensión. Esquema de la relación. Por ejemplo, considerando los conjuntos de entidades PRODUCTO y PROVEEDOR de la tabla 2.1: E 1 = PRODUCTO E 2 = PROVEEDOR (E 1 )= NOMBRE_PRODUCTO (E 2 )= NOMBRE_PROVEEDOR a 1 = CANTIDAD Entonces, el conjunto de atributos de R es: R= PEDIDO = {(E 1 ), (E 2 ), a 1 } El conjunto de atributos de un conjunto R de relaciones es una superclave. Bases de Datos. Miguel Murguía. FAR. 24

La clave primaria de un conjunto de relaciones depende de la cardinalidad de la asignación. Relación normalizada. Relación en la que todo valor de cada atributo es atómico, no compuesto por un conjunto de valores. Diagramas E-R Los elementos usados en los diagramas Entidad-Relación son: Se puede indicar la cardinalidad gráficamente por: Una a muchas Muchas a una Muchas a muchas Una a una Bases de Datos. Miguel Murguía. FAR. 25

De los diagramas E-R a Tablas Cada conjunto de entidades y cada conjunto de relaciones se puede representar mediante una tabla. Conjunto fuerte de entidades. Cada atributo corresponde a una columna y cada entidad a un renglón (tupla o fila). Conjunto débil de entidades. Cada atributo se representa por una columna y se deben añadir una columna por cada atributo de la clave primaria del conjunto de entidades fuerte del que depende. Conjuntos de relaciones. Una tabla con una columna por cada atributo. EJERCICIOS 1. Defina un esquema para el control de un negocio. 2. Realiza un diagrama E-R. Utilice adecuadamente la simbología revisada en clase. 3. Indique algunos ejemplos de atributos que podrían definirse como entidades y viceversa, de acuerdo a diferentes necesidades de control. 4. Ejemplifique: relaciones recursivas, atributos multivaluados y compuestos, restricciones de participación total y parcial. Bases de Datos. Miguel Murguía. FAR. 26

Dominios y Atributos Atributo. Características de las entidades. Una entidad está representada por un conjunto de atributos. Los atributos representan el uso de un dominio. Por ejemplo, Nombre_alumno es una atributo del conjunto de entidades ALUMNO. Dominio. Conjunto de valores permitidos para cada atributo. Por ejemplo, el dominio del atributo calificación podría ser el conjunto de todos los reales entre 0 y 10. Cada atributo simple de un tipo de entidad está asociado con un conjunto de valores o dominio. El atributo A de un tipo de entidad E cuyo conjunto de valores es V, puede definirse como una función de E hacia el conjunto potencia de V: A: E P(V) El conjunto potencia P(V) de un conjunto V es el conjunto de todos los subconjuntos de V. Atributo derivado. Atributo que puede ser calculado a partir de otro almacenado. Por ejemplo, la Edad puede derivarse del atributo Fecha_de_nacimiento. Atributo almacenado. Atributo que se graba físicamente en los archivos y que puede servir de base para calcular otros. Por ejemplo el atributo Sueldo puede servir para calcular el Impuesto. Atributo compuesto. Atributo que está formado por otros atributos. Por ejemplo, Dirección puede componerse de Calle, Número, Colonia y Cp. Atributo multivaluado. Atributo que puede adquirir más de un valor para una misma entidad. Por ejemplo, el atributo Color de un coche puede tener hasta 3 valores. Bases de Datos. Miguel Murguía. FAR. 27

Restricción en las relaciones Cardinalidad de asignación. Número de entidades con las que puede asociarse otra entidad, mediante un conjunto de relaciones. Restricción de participación. Especifica si la existencia de una entidad depende de la de otra via relación. Puede ser total o parcial. Dependencia de existencia (participación total). Especifica que toda entidad está relacionada a alguna(s) de la del otro conjunto. Por ejemplo, todo MUNICIPIO pertenece a un ESTADO. Participación parcial. Especifica que algunas entidades (pero no necesariamente todas) están relacionadas a alguna(s) de la del otro conjunto. Por ejemplo, algunos MUNICIPIOS tienen PUERTOS Restricción estructural. Cardinalidad de asignación y restricciones de participación. Restricción estructural Restricción de participación Cardinalidad total parcial 1 : 1 1 : N N : M Bases de Datos. Miguel Murguía. FAR. 28

Relaciones (papeles y recursividad) Papel. Una entidad que participa en una relación, desempeña un papel. El nombre del tipo de la entidad no necesariamente es el mismo que el del papel (v.g. en las relaciones recursivas). Ejemplos de papeles que puede desempeñar un EMPLEADO ENTIDAD RELACION ENTIDAD EMPLEADO Colaborador PARTICIPACION PROYECTO EMPLEADO Director EMPLEADO Supervisor DIRECCION SUPERVISION PROYECTO EMPLEADO Supervisado Relación recursiva. Relación en la que participan entidades del mismo conjunto (tipo). Una entidad que participa en una relación recursiva puede tener dos papeles distintos. Bases de Datos. Miguel Murguía. FAR. 29

II El Modelo Relacional de Bases de Datos 1. Introducción al Modelo Relacional Antecedentes y orígenes del Modelo Relacional 1969 Primera publicación de Codd sobre el modelo relacional 1970 Publicación de Codd que consolida al modelo relacional 1971 Codd publica sus 1NF, 2NF y 3NF 1970-1988 Codd publica varios artículos para consolidar el modelo 1976 Ronald Fagin inventa 4NF y 5NF 1976 Chen publica su modelo Entidad-Relación 1979 Codd presenta la versión extendida de su modelo 1990 Codd sintetiza su segunda versión que es un subconjunto de su versión extendida Bases de Datos. Miguel Murguía. FAR. 30

Conceptos del Modelo Relacional Informalmente, en el modelo relacional una relación es una tabla. Cada renglón de la tabla puede interpretarse como una colección de datos que describen una entidad del mundo real. Los nombres de las tablas y de las columnas se utilizan para ayudar a interpretar el significado de cada valor. Por ejemplo, la tabla ALUMNO contiene datos de los alumnos de la escuela y cada renglón representa una entidad del mundo real. Los nombres de cada columna especifican cómo interpretar los valores de cada renglón. Todos los valores de una columna son del mismo tipo de dato. En la terminología del modelo relacional, a cada renglón se le llama tupla, al encabezado de cada columna atributo y a la tabla relación. El tipo de datos que describe los tipos de valores que pueden aparecer en cada columna se la llama dominio. Dominio. Un dominio D es un conjunto de valores atómicos. Por atómico se entiende que cada valor es indivisible. Por ejemplo, el dominio de los números de cuenta es el conjunto de las cadenas de 6 dígitos; el dominio de las calificaciones son los reales entre 0 y 10. Relación. Una relación r de un esquema de relación R(A 1, A 2..., A n ), también denotada por r(r), es un conjunto de n-tuplas r={t 1, t 2,..., t m }. Cada n-tupla t es una lista ordenada de valores <v 1,v 2,...,v n > donde cada valor v i 1 i n es un elemento del dominio dom(a i ) o es un valor especial nulo. Bases de Datos. Miguel Murguía. FAR. 31

Tuplas Orden de las tuplas en una relación El orden de las tuplas en una relación no es parte de la definición de la relación, pues en teoría, una relación es un conjunto de tuplas y matemáticamente, los elementos de un conjunto no están ordenados. Figura. Las tuplas son elementos de un conjunto (colección no ordenada). Aunque en la implementación física de una relación, los renglones si tiene un orden, en el sentido de que se puede distinguir al primero y al segundo, etc. o al sucesor y al predecesor, una relación intenta representar hechos en un nivel abstracto o lógico. En un archivo físico, una relación puede estar ordenada por diversos criterios, por ejemplo, por los valores de un atributo; sin embargo, una relación ordenada con dos criterios distintos sigue siendo la misma relación. Figura. Un conjunto de tuplas es el mismo, aunque las tuplas se ordenen de manera diferente. Bases de Datos. Miguel Murguía. FAR. 32

Cuando una relación se concibe como una tabla: Cada renglón representa una tupla de R. El orden de los renglones no es importante Todos los renglones se distinguen de los demás por su contenido. Renglones repetidos Las tablas que tienen renglones repetidos no representan relaciones, particularmente son llamadas relaciones corruptas o relaciones impropias. Existen varias razones para no permitir tuplas repetidas: Reducen la optimización de los comandos relacionales. Generan problemas conceptuales severos al usuario así como restricciones. Además, una base de datos puede ser utilizada por cientos o miles de usuarios, por lo que debe existir un significado común para todos los datos que accecen. No existe una interpretación precisa, aceptada e independiente del contexto para los renglones repetidos. En general, cada tupla o renglón asociado al nombre de la relación a la que pertenece implica una aseveración. Por ejemplo, cada renglón de la relación ALUMNO es una aseveración de que una persona en específico es un alumno de la escuela. Este hecho hace a las bases de datos relacionales compatibles con las bases de conocimientos. Bases de Datos. Miguel Murguía. FAR. 33

Orden de los valores en una tupla De acuerdo a una de las definiciones de relación, una n-tupla es una lista ordenada de n valores, por lo que el orden de los valores en la tupla si es importante, y por lo tanto, también lo es el orden de los atributos en la definición de un esquema de relación. Adicionalmente, una tupla puede ser considerada como un conjunto de pares (<atributo>,<valor>), donde cada par da el valor de mapeo de un atributo A i un valor v i del dom(a i ). Así las siguientes tuplas son idénticas: t= <(Numero-cuenta, 950001), (Nombre-alumno, Oscar Martínez), (Año-ingreso, 95), (Carrera,Biología)> t= < (Nombre-alumno, Oscar Martínez), (Carrera,Biología), (Numero-cuenta, 950001), (Año-ingreso, 95)> Con esa concepción de tupla, el orden de los atributos dentro de ella no es importante. De hecho, existen razones adicionales para nombrar, de manera única, a las columnas: El nombre de las columnas dan al usuario una idea del significado de los datos que almacena. Permite a los usuario no tener que recordar el orden de cada columna. De una manera de distinguir el significado de la columna del de su dominio, pues una columna usa a un dominio. Bases de Datos. Miguel Murguía. FAR. 34

Instancia de la base de datos con esquema ESCUELA ALUMNO Numerocuentingreso Nombre-alumno Año- Carrera 950001 Oscar Martínez 95 Biología 950002 Mario Sánchez 95 Biología 970001 Emilio Vera 97 Biología 970002 Isabel Valderrama 97 Matemáticas 950003 Ma. Elena Cañedo 95 Matemáticas 950004 Carmen Díaz 95 Biología 950005 Jorge Soto 95 Física 970003 Miguel Romero 97 Biología 970004 José Malo 97 Matemáticas 970005 Salvador Pascual 97 Física MATERIA Clave-materia Nombre-materia Nivel Créditos Carrera 01002 Algebra 2 7 Matemáticas 01003 Cálculo 1 10 Matemáticas 02001 Estadística 1 5 Biología 02002 Botánica 3 8 Biología 03001 Física relativista 4 10 Física 03002 Partículas 3 9 Física elementales 02003 Bioquímica 2 12 Biología EXAMEN Numerocuenta Clavemateria Orden-de-pago Fechaexamen 950001 02002 3567 6/2/97 950005 03001 3678 4/2/97 970002 01002 3676 5/6/97 970005 03002 3789 3/6/97 Bases de Datos. Miguel Murguía. FAR. 35

HISTORIA Numero-cuenta Clave-materia Semestre-curso Calificacion 950001 02001 96 8.2 950002 02001 96 9 950002 02003 96 7 950004 02002 96 9 950004 02003 95 10 970003 02002 95 8 970003 02003 96 9 Diagrama E-R para una escuela Bases de Datos. Miguel Murguía. FAR. 36

Otra definición de relación Si se considera a la tabla ALUMNO, se puede observar que tiene los atributos Numero-cuenta, Nombre-alumno, Año-ingreso y Carrera. Para cada atributo existe un conjunto de posibles valores: su dominio. Por ejemplo, el dominio del atributo Carrera son todos los nombres de las carreras que se imparten en la escuela. Así, podemos definir los dominios D1, D2 D3 y D4, donde D1 es el conjunto de todos los números de cuenta, D2 de todos los nombres posibles de alumnos, D3 todos los años y D4 todas las carreras. Cada uno de los renglones de la tabla ALUMNO consta de cuatro valores (v1, v2, v3, v4), donde v1 es el número de cuenta, v2 el nombre del alumno, v3 el año de ingreso y v4 la carrera. Por lo anterior, la tabla ALUMNO es un subconjunto de: D1 x D2 x D3 x D4 Desde el punto de vista matemático, una relación se define como un subconjunto del producto cartesiano de una lista de dominios. En la terminología matemática, los términos de relación y tupla son análogos a los de tabla y fila en el Modelo Relacional.. La relación ALUMNO tiene 10 tuplas. Sea t la primera tupla de la relación, se usará la notación t[nombre-del-atributo] para indicar el valor de ese atributo en la tupla, así t[nombre-alumno]= Oscar Martínez, t[año-ingreso]=95. Es necesario que todos los dominios de todos los atributos de todas las relaciones sean atómicos, es decir, que los valores sean unidades indivisibles. Bases de Datos. Miguel Murguía. FAR. 37

Esquemas de relaciones Esquema de una relación. El esquema de una relación es la estructura de atributos que contiene, por ejemplo, el esquema de la relación ALUMNO es (Numero-cuenta, Nombre-alumno, Año-ingreso, Carrera). En general, se usará la notación esquema-alumno para referirse al esquema de la relación alumno, así: esquema-alumno=(numero-cuenta, Nombre-alumno, Año-ingreso, Carrera) También, se indicará que una relación se construye sobre un esquema mediante: nombre-de-la-relacion(nombre-del-esquema) Así, si se quiere indicar que la relación ALUMNO tiene el esquema esquemaalumno se escribe: alumno (esquema_alumno) El esquema de la relación EXAMEN es esquema-examen = (Numero-cuenta, Clave-materia, Orden-de-pago, Fechaexamen) El hecho de que pueda aparecer el mismo atributo en diferentes relaciones permite relacionar a las tuplas entre esas relaciones. Para la explicación de los conceptos sobre el modelo relacional se utilizarán como ejemplo el conjunto de relaciones ESCUELA, derivadas de la figura. Así, se tienen las relaciones ALUMNO, MATERIA, HISTORIA y EXAMEN. Sus esquemas son: Bases de Datos. Miguel Murguía. FAR. 38

esquema-alumno = (Numero-cuenta, Nombre-alumno, Año-ingreso, Carrera) esquema-materia = (Clave-materia, Nombre-materia, nivel, Créditos, Carrera) esquema-examen = (Numero-cuenta, Clave-materia, Orden-de-pago, Fecha-examen) esquema-historia = (Numero-cuenta, Clave-materia, Semestre-curso, Calificación) con claves primarias: Numero-cuenta Clave-materia Numero-cuenta, Clave-materia Numero-cuenta, Clave-materia respectivamente. Bases de Datos. Miguel Murguía. FAR. 39

Esquema de una Base de Datos Esquema de una base de datos relacional. El esquema de una base de datos relacional es el conjunto de esquemas de relaciones S={ R 1, R 2,..., R m } y un conjunto de restricciones de integridad RI. Por ejemplo, el esquema de la base de datos ESCUELA es: ALUMNO Numero-cuenta Nombre-alumno Año-ingreso Carrera MATERIA Clave-materia Nombre-materia Nivel Créditos Carrera EXAMEN Numero-cuenta Clave-materia Orden-de-pago Fecha-examen HISTORIA Numero-cuenta Clave-materia Semestre-curso Calificacion Bases de datos ricas. Bases de datos relacionales con muchas relaciones y generalmente pocas tuplas. Bases de datos extensas. Bases de datos relacionales con pocas relaciones y generalmente muchas tuplas. Por ejemplo, las bases de conocimiento son ricas, mientras que la mayoría de las comerciales son extensas. Bases de Datos. Miguel Murguía. FAR. 40

Notación Se utilizará la siguiente notación para describir al modelo relacional: Un esquema de relación de grado n se denota por R(A 1, A 2..., A n ). Una n-tupla ten una relación r(r) se denota por t= <v 1,v 2,...,v n donde vi es el valor correspondiente al atributo Ai. t[a i ] se refiere al valor vi en t para el atributo A i. t[a u,a w,..., A z ] donde A u, A w,...,a z es una lista de atributos de R, se refiere a la subtupla de valores <v u,v w,...,v z > de t correspondientes a los atributos especificados en la lista. Las letras Q, R y S denotan nombres de relaciones. Las letras q, r, s denotan instancias de relaciones. Las letras t, u, v denotan tuplas. En general, el nombre de una relación, como por ejemplo ALUMNO, indica el conjunto actual de tuplas en esa relación (estado actual de la relación o instancia), mientras que ALUMNO(Numero-de-cuenta, Nombre-alumno,...) se refiere al esquema. Bases de Datos. Miguel Murguía. FAR. 41

2. Principales características del Modelo Relacional Restricciones del Modelo Relacional El Modelo Relacional contempla la imposición de restricciones que se asocian a un esquema, algunas de ellas son: Integridad de Dominio Integridad de Claves Integridad de la Entidad Integridad Referencial A continuación se explica cada tipo: Integridad de Dominio. Todo valor del atributo A debe ser un valor atómico que pertenece al dominio dom(a) de ese atributo. Integridad de Claves. No pueden existir un par de tuplas que tengan los mismos valores en cada uno de sus atributos. Integridad de la Entidad. Ningún valor de un componente de la llave primaria puede ser nulo. Dominio Primario. Dominio para el que existe una llave primaria de un sólo atributo. Integridad de Referencia. Sea D un dominio primario y R una relación con atributo A que se define sobre D. Cada valor de A en R debe ser un valor de la llave primaria de alguna relación con llave primaria sobre D. Las restricciones de integridad de referencia pueden expresarse mediante flechas sobre el esquema de la base de datos, que conectan a atributos entre los esquemas de las relaciones. Bases de Datos. Miguel Murguía. FAR. 42

Relación: el único tipo de dato compuesto En el modelo relacional todas las operaciones se realizan sobre relaciones y como resultado producen relaciones. El único tipo de dato compuesto en el modelo relacional es la relación, pues los valores de los dominios en cada relación deben ser atómicos La razón por la que el modelo relacional permite sólo un tipo de dato compuesto es que los datos compuestos agregan complejidad sin agregar poder. Por ejemplo, las cuatro operaciones básicas de un lenguaje de manipulación de datos (DML) son: retrieve insert update delete Si existieran n tipos de datos compuestos, entonces se requerirían 4n comandos para cubrir las operaciones básicas. En general, en los modelos de bases de datos relacionales hay una tendencia a crear cada vez más y más tipos de datos compuestos y con ella se complican más los lenguajes de manipulación de datos, haciéndolos más difíciles de usar o programar. Bases de Datos. Miguel Murguía. FAR. 43

Críticas al modelo Entidad-Relación El modelo Entidad Relación fué propuesto posteriormente al Modelo Relacional. Codd, en su segunda versión del Modelo Relacional, critica al modelo ER diciendo: Sólo se describen aspectos de la estructura, no de las operaciones sobre estas estructuras ni de restricciones de integridad. Por lo tanto no es un modelo de datos. La distinción de entidades y relaciones no ha sido definida con precisión, como consecuencia, una entidad persona es otra relación persona. Aún si esta distinción se puede definir, añadiría complejidad sin añadir poder. Bases de Datos. Miguel Murguía. FAR. 44

Evolución del Modelo Relacional Aceptación Las nuevas versiones del Modelo Relacional son más proscriptivas, es decir, se imponen más restricciones. Estas imposiciones permitirán, dice Codd, avanzar de un estado primitivo a uno básico. Lo analoga a la discusión en programación en la que Dijkstra rechazaba el uso del comando GO TO. La versión modificada Tasmania del modelo de Codd incorpora nuevas características que dan potencia adicional a su primera versión, sin embargo, se ha integrado parcialmente en una segunda versión con la finalidad de dar oportunidad a los desarrolladores de asimilar estas adiciones. Nuevas características La segunda versión incorpora más aspectos sobre la semántica. Por ejemplo, se hace una distinción explícita entre los conceptos columna y dominio y hace una distinción entre los tipos de datos básicos y los extendidos. Además, se da una descripción, semántica, de las características de un lenguaje relacional. Aunque en la versión original ya se habían definido tres valores de verdad, TRUE, FALSE, MAYBE, se extienden a 4: TRUE, FALSE, MAYBE BUT APPLICABLE y MAYBE BUT INAPPLICABLE. MAYBE BUT APPLICABLE hace referencia a valores que no se han introducido a la base de datos, mientras que MAYBE BUT INAPPLICABLE hace referencia a valores que no se encuentran debido a que la propiedad es inaplicable al objeto. Bases de Datos. Miguel Murguía. FAR. 45