Modelo Relacional. (La piedra angular de las tecnologías de información en nuestra época) Universidad de los Andes Demián Gutierrez Enero

Documentos relacionados
Ing. Yim Isaias Apestegui Florentino

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

Introducción a las Bases de Datos y al Modelo Relacional

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

Materia requisito: DOMINIOS COGNITIVOS (Objetos de estudio, temas y subtemas) I. INTRODUCCION A LAS BASES DE DATOS

Modelo relacional. El modelo relacional

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

Bases de datos 1. Teórico: Modelo Relacional

MODELO RELACIONAL BASE DE DATOS RELACIONALES

Modelo ERE. Universidad de los Andes Demián Gutierrez Marzo

Atributos Los atributos son las columnas de un relación y describen características particulares de ella.

BASES DE DATOS - SQL. Javier Enciso

Fundamentos de programación y Bases de Datos

Los Modelos de Datos y el Modelo Objeto-Relacional Página 1 de 27

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

Formas Normales. Normalización. Introducción

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

Transformación del Modelo ERE al Modelo Relacional. Universidad de los Andes Demián Gutierrez Enero

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

INTRODUCCIÓN A BASE DE DATOS. Excel - Access

TEMA 5.- ESTRUCTURA DE DATOS RELACIONAL.

Modelos y Bases de Datos

Modelo Relacional: Conceptos

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

UNIDAD PEDAGÓGICA LIBERTAD, S.C.

Los diagramas de clases y de objetos sirven para modelar diversos aspectos estructurales o estáticos de un sistema: Modelado - Vocabulario del Sistema

RESUMEN DE LAS DIAPOSITIVAS DE BASE DE DATOS 1

Álgebra Relacional. Universidad de los Andes Demián Gutierrez Mayo

Temario. Índices simples Árboles B Hashing

El Modelo Relacional de Bases de Datos

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

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

Diseño de Bases de Datos Bases de Datos Documentales Grao en Información e Documentación Curso 2013/2014

Esquema Lógico F1. EXAMEN 1 de diciembre de EQUIPO (NOMBRE:cadena) CP (NOMBRE) DIRECTOR (NOMBRE:cadena) CP (NOMBRE)

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):

Funciones: Aspectos básicos

Terminología Equivalente

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

NORMAS DE DISEÑO DE BASE DE DATOS

El modelo relacional

Carlos Castillo UPF 2008

Pontificia Universidad Católica del Ecuador

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.

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

Bases de Datos Modelo Relacional

DESVENTAJAS DEL USO DE LA BASE DE DATOS

Generaciones de Bases de Datos

Capítulo 16. Diagrama de Clases UML

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

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

REGLAS DE CODD DEL MODELO RELACIONAL

Base de datos relacional

Integridad Referencial. Restricciones (constraints)

El modelo relacional y el álgebra relacional

ALGORITMOS, ESTRUCTURAS Y PROGRAMACION

Restricciones de Integridad

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

BASES DE DATOS TEMA 2 MODELOS DE DATOS

INFORMÁTICA Y COMUNICACIONES

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

TEMA II. El Modelo Relacional de Datos. El Modelo Relacional de Datos. El Modelo Relacional de Datos. El Modelo Relacional de Datos. Temario (cont.

Tema II: El modelo relacional de datos. (2.4)

Programación en java. Estructuras algorítmicas

Elementos de un programa en C

Capítulo 4. Lógica matemática. Continuar

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

Fundamentos de Programación Visual Basic

Requerimientos de Software

Teórico 9 Del MER al MR

BASES DE DATOS TEMA 2 MODELOS DE DATOS

Explican las características de el modelo entidad relación. Utilizar la simbología del modelo entidad relación. Resolver problemas utilizando el

rg.o cm a Diseñ e o o l óg ó ico c l@ rza e b Di D s i e s ño d e b as a e s s s d e d at a o t s s r e r la l c a i c o i nal a e l s


Arquitectura de Software El Rol del Arquitecto de Software

MICROSOFT ACCESS 2007 (COMPLETO)

Tema 2. Bases de Datos Relacionales

DES: Programa(s) Educativo(s): Tipo de materia: Clave de la materia: Semestre: Área en plan de estudios:

Fundamentos de Programación y Bases de Datos

Ítems/Entidades/Objetos [sustantivos]: Objetos que existen en el mundo y que son

Instituto Tecnológico de Celaya

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

Tema: Herramientas UML, Análisis y diseño UML

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

Modelado de datos. Bibliografía. Representación de la información Modelos de datos Modelado semántico

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

Afinación y Rendimiento de Bases de Datos

El modelo relacional y el álgebra relacional

Guía práctica de estudio 05: Diagramas de flujo

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

PARTE II. MODELO RELACIONAL. ESTÁTICA

UNIVERSIDAD NACIONAL EXPERIMENTAL DE GUAYANA VICERRECTORADO ACADÉMICO COORDINACION DE PRE-GRADO PROYECTO DE CARRERA DE INGENIERIA INDUSTRIAL

LABORATORIO DE PROCESADORES DE LENGUAJE Curso: Práctica 2: Analizador léxico/sintáctico/semántico con Flex y Bison

Matemáticas Básicas para Computación

Universidad Centroccidental Lisandro Alvarado. Decanato de Ciencias y Tecnología Departamento de Sistemas

Configuración de Procedimientos en SQL. Introducción

Elaboración de Documentos en Procesadores de Textos

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

Temario Curso Bases de Datos

El propósito de este material es brindar las explicaciones más importantes sobre bases de datos, relevantes para el uso de GeneXus.

Transcripción:

Modelo Relacional (La piedra angular de las tecnologías de información en nuestra época) Universidad de los Andes Demián Gutierrez Enero 2010 1

Modelo ER / Diagramas ER Modelos Conceptuales (De alto nivel, ERE, UML) Esquema Externo Mundo Real (Minimundo) Modelado ER Esquema Conceptual Transformación Transformación Esquema Interno Modelos de Implementación (básicos) (De bajo nivel) BD 2

Modelo Básicos (de implementación) Jerárquico (1960 / 1966, primera implementación IBM) Redes (Charles Bachman en 1969) Relacional (E. Codd en 1970 ) Orientado por Objetos (Fines de los 80) Objeto Relacional (Inicios de los 90) 3

Modelo Relacional (Objeto-Relacional) Está basado en el concepto matemático de relación. Se fundamenta en la teoría de normalización de las relaciones, que permite eliminar el comportamiento anormal de las relaciones, luego de actualizaciones, así como el control de la redundancia de datos 4

Modelo Relacional (Conceptos) Dominio: Conjunto de valores Ej: colores = {'rojo', 'verde', 'azul'} marcas = {'fiat', 'toyota', 'ford', 'honda'} 5

Modelo Relacional (Conceptos) Relación: Subconjunto del producto cartesiano de una lista de dominios Subcon... de qué de una lista de qué? 6

Modelo Relacional (Conceptos) Producto cartesiano de colores y marcas (denotado colores x marcas): colores={'rojo', 'verde', 'azul'} marcas={'fiat', 'toyota', 'ford', 'honda'} Producto Cartesiano: Todos contra todos: color marca fiat rojo fiat verde fiat azul toyota rojo toyoya verde toyota azul ford rojo...... 7

Modelo Relacional (Conceptos)...luego podemos tomar un subconjunto del producto cartesiano de los dominios: R1={('fiat', 'verde'), ('toyota', 'azul'), ('ford', 'rojo')} color marca fiat rojo fiat verde fiat azul toyota rojo toyoya verde toyota azul ford rojo...... R2={('rojo', 'honda')}, o bien R3={} Relación R1 color marca fiat toyota ford verde azul rojo 8

Modelo Relacional (Conceptos) Atributo: Columna en una relación identificada por un nombre Esquema de una relación (o tabla): nombre de la relación seguido de la lista de sus atributos con sus dominios Tupla / Registro: Fila en una tabla o relación que contiene un conjunto de valores acordes al esquema de la relación (sus columnas y dominios) 9

Modelo Relacional (Conceptos) Tabla o Relación Esquema por extensión Atributo o Columna R1(marca, color) Esquema por intensión (Si, con s, no es un error) Tupla o fila (toyota, azul) R1 color marca verde azul rojo fiat toyota ford NOTA: El valor de un atributo puede ser nulo en una columna particular. Qué significa esto? 10

Modelo Relacional (Conceptos) INTENSIÓN. En Teoría de los Conceptos, el conjunto de las propiedades, las características o atributos esenciales (y también accidentales) de un objeto, que le dan una identidad específica y lo distinguen de cualquier otro. En la construcción de un concepto, refiere a la suma de sus enunciados esenciales. // 2. En Lingüística, conjunto de rasgos semánticos que definen la clase denotada por el signo. Cuanto mayor es la intensión de un concepto, más limitada es su extensión. Son precisos más rasgos semánticos para definir "gaviota" que para definir "ave", aunque en el universo real hay más aves que gaviotas. V.A. DEFINICION POR INTENSION. V.A. EXTENSION. I INTENSION; CONNOTATION. Tomado de: http://www.eubca.edu.uy/diccionario/letra_i.htm 11

qué es una base de datos relacional? 12

Base de Datos Relacional Base de Datos Relacional: Base de datos que cumple con el modelo relacional, donde su esquema es un conjunto de esquemas de relación de diferente nombre cada uno Esquema de una base de datos: El conjunto de esquemas o tablas que conforman una base de datos 13

Reglas de Formación Para que una relación sea una relación, debe cumplir con: Cada relación o tabla contiene un único tipo de fila o tupla Cada tupla tiene un número fijo de atributos o columnas No se permiten atributos compuestos o grupos repetitivos (Atributos Multivaluados) 14

Modelo Relacional (Conceptos) Estudiante Cédula Nombre Apellido Curso 9.644.667 Pedro Pérez BD, I S 10.133.212 Gabriel Mendoza PRI, CA10 11.332.334 Luis Gonzales PRI I, SR10, EST1 14.126.112 Gilberto Zapata BD, I A Atributo Multivaluado / Compuesto Grupo Repetitivo Estudiante Cédula Nombre Apellido Curso 9.644.667 Pedro Pérez BD 9.644.667 Pedro Pérez IS 10.133.212 Gabriel Mendoza PRI 10.133.212 Gabriel Mendoza CA10 11.332.334 Luis Gonzales PRII 11.332.334 Luis Gonzales SR10 11.332.334 Luis Gonzales EST1 14.126.112 Gilberto Zapata BD 14.126.112 Gilberto Zapata IA 15

Reglas de Formación Además, también, debe cumplir con: Cada tupla es única y se identifica con su clave primaria Un atributo o grupo de ellos que identifiquen unívoca e inequívocamente cada tupla de la relación es una clave candidata La clave primaria de una relación se selecciona entre las claves candidatas Los atributos que forman parte de la clave primaria no pueden ser nulos 16

Modelo Relacional (Conceptos) Estudiante Cédula #Carnet Nombre Apellido 9.644.667 10203 Pedro Pérez 14.126.112 11098 Gilberto Zapata Superclaves: Cédula + #Carnet Cédula + Nombre #Carnet + Apellido etcétera... Claves candidatas: Cédula o bien... #Carnet Clave primaria (seleccionada de las claves candidatas): Cédula La clave se representa subrayando los atributos que la componen Estudiante Cédula #Carnet Nombre Apellido 9.644.667 10203 Pedro Pérez 14.126.112 11098 Gilberto Zapata Por qué nombre + apellido no es una clave candidata? 17

Claves: Concretas / Abstractas / Incrementales (Auto) La cédula es algo muy concreto, existe, hasta cierto punto se puede tocar Estudiante Cédula #Carnet Nombre Apellido 9.644.667 10203 Pedro Pérez 14.126.112 11098 Gilberto Zapata El código en el fondo no existe, es un invento que se usa para poder diferenciar una materia de otra (pero sin embargo, una vez establecido es un atributo que tiene sentido) Materia Código BD01 IS02 Nombre Bases de Datos Ing. del Software El id (de identificador) simplemente no existe. Cada fila tiene (por decreto) un id distinto, y este se va generando de forma incremental a medida que se insertan registros Independientemente de que el Id sea la clave la cédula podrá repetirse? Estudiante Id Cédula #Carnet Nombre Apellido 1 9.644.667 10203 Pedro Pérez 2 14.126.112 11098 Gilberto Zapata 18

Claves: Simples / Compuestas La cédula por si sola puede diferenciar un estudiante de otro Estudiante Cédula #Carnet Nombre Apellido 9.644.667 10203 Pedro Pérez 14.126.112 11098 Gilberto Zapata El CodSem por si mismo puede diferenciar un semestre de otro Semestre CodSem Fecha Inicio Fecha Fin A09 07/01/09 06/05/09 B09 15/05/09 15/12/09 A10 05/01/10 15/07/10 B10 20/05/10 14/12/10 Ni el atributo Sem, ni el atributo Año por si mismos pueden diferenciar un semestre de otro, es necesario usarlos en conjunto (concatenados) para poder diferenciar un semestre de otro Semestre Sem Año Fecha Inicio Fecha Fin A 09 07/01/09 06/05/09 B 09 15/05/09 15/12/09 A 10 05/01/10 15/07/10 B 10 20/05/10 14/12/10 19

Reglas de Formación Además, también, debe cumplir con: Si un atributo A que pertenece a R1 es también la clave primaria de R2, entonces A es un atributo foráneo de R1, y se le suele llamar clave foránea (Integridad Referencial) 20

Reglas de Formación Además, también, debe cumplir con: Los atributos que forman parte de una clave foránea pueden ser nulos (no hay relación), aunque en muchos casos es buena idea evitar esto si es posible Si A es la clave primaria de R2 y también una clave foránea de R1, entonces para toda tupla de R1 donde A!= nulo debe existir la tupla correspondiente en R2 con el valor de A que existe en la tupla de R1 21

Claves: Foráneas (I) Profesor Cédula Nombre Apellido CodDpto 9.644.667 Pedro Pérez 01 14.126.112 Gilberto Zapata 02 CodDpto es una clave foránea de Profesor que apunta al atributo Código en Departamento CédulaJefe es una clave foránea de departamento que apunta al atributo Cédula en Profesor Si tomamos todas las claves foráneas del diagrama y asumimos que CédulaJefe en Departamento es única (Es decir, no se puede repetir en filas distintas) Qué tipos relaciones existen (cardinalidad) entre Departamento y Profesor? Departamento Código Nombre CédulaJefe 01 Inv. de Operaciones 9644667 02 Computación 14126112 03 Control NULL 22

Claves: Foráneas (II) Estudiante Cédula Nombre Apellido 9.644.667 Pedro Pérez 14.126.112 Gilberto Zapata Est-Mat es una tabla intermedia que sirve para relacionar Estudiante con Materia Est-Mat CedulaEst CódigoMat 9.644.667 BD 9.644.667 SO 14.126.112 BD 14.126.112 I S Cuál será la clave primaria de esta relación? Qué tipo de relación existe (cardinalidad) entre Estudiante y Est-Mat? Y entre Est-Mat y Materia? Y entre Estudiante y Materia? Materia Código Nombre BD Bases de Datos IS Ing. del Software SO Sist. Operativos 23

Reglas de Formación Además...: El orden de las tuplas en la relación es irrelevante (No se puede contar con que las tuplas vengan en cierto orden) Los valores de los atributos deben pertenecer al dominio definido para cada atributo 24

Reglas de Formación Además...: Un mismo dominio puede ser usado por diferentes atributos (Independientemente de que exista una relación de claves foráneas o no) A partir de una o más tablas se pueden producir nuevas tablas diferentes mediante el uso de las operaciones del álgebra relacional 25

Reglas de Integridad Los Sistemas de Gestión de Bases de Datos permiten establecer ciertas reglas que deben cumplirse sobre los atributos en las distintas relaciones que conforman una base de datos relacional Semestre CodSem Fecha Inicio Fecha Fin Fecha Inscripción Fecha Retiro U09 07/01/09 06/05/09 05/01/09 01/04/09 A10 11/01/10 15/07/10 05/01/10 10/06/10 B10 20/05/10 14/12/10 15/05/10 09/11/10 Fecha Inicio< Fecha Fin Fecha Inscripción < Fecha Inicio Fecha Retiro < Fecha Fin Son los predicados definidos por el Administrador de la Base de Datos sobre los valores de los atributos usando el lenguaje de definición de datos 26

Ejemplo de un Esquema Relacional (Esquema) Cliente(codCli, nombre, balance, limitecrédito, descuento, dirección) Cuántos clientes están involucrados en un pedido? Pedido-Cliente(codPed, codcli) Qué relaciones extrañas, posibles problemas o incoherencias puede encontrar en el modelo? Pedido(codPed, estado, direnvio, codart, cantpedida, cantenviada) Cuántos artículos pueden incluirse en un pedido? Articulo( codart, nomart, descripcion) Cuántos artículos puedo almacenar en una planta? Inventario(codArt, codplanta, cantidadexistencia) Las claves primarias están subrayadas y las claves foráneas aparecen escritas en itálicas (y en negrita) 27

Ejemplo de un Esquema Relacional (Esquema) Cliente(codCli, nombre, balance, limitecrédito, descuento, dirección) Pedido(codPed, estado, direnvio, codcli, cantpedida, cantenviada) Pedido-Artículo(codPed, codart) Articulo( codart, nomart, descripcion) Inventario(codArt, codplanta, cantidadexistencia) 28

Ejemplo de un Esquema Relacional (Tabla de Dominios I) (Una tabla global) Atributo Descripción Dominio codcli Código del cliente Cadena(4) nombre Nombre del cliente Cadena(32) sólo letras,. - balance Balance actual del cliente Moneda (NO NULO) limitecrédito Límite de crédito del Moneda (NO NULO) cliente descuento Descuento aplicado Moneda (NO NULO) dirección, direnvio Dirección del cliente Cadena(128) letras, y dirección de envío dígitos,., # / - codped Código del pedido Cadena(6) TODO: REVISAR COHERENCIA continua... Se puede tener una sola tabla de dominios (con todos los dominios de todas las relaciones) 29

Ejemplo de un Esquema Relacional (Tabla de Dominios I) (Una tabla global)...continuación Atributo Descripción Dominio estado cantpedida cantenviada codart nomart descripción codplanta cantexistencia Línea de pedido Cantidad pedida Cantidad enviada del artículo Código del artículo Nombre del artículo Descripción del artículo Código de la planta Cantidad actual en existencia Enumerado: 0=pedido, 1=procesado, 2=pagado, 3=enviado, 4=cancelado Entero+ Entero+ Cadena(8) Cadena(64) letras, dígitos Cadena(256) letras,. - Cadena(2) Entero+ (NO NULO) 30

Ejemplo de un Esquema Relacional (Tabla de Dominios I) (Una tabla por relación) Tabla: Cliente Atributo Descripción Dominio codcli nombre Código del cliente Nombre del cliente Cadena(4) (PK) Cadena(32) sólo letras,. - balance Balance actual del cliente Moneda (NO NULO) limitecrédito Límite de crédito del cliente Moneda (NO NULO) descuento Descuento aplicado Moneda (NO NULO) dirección Dirección del cliente y dirección de envío Cadena(128) letras, dígitos,., # / - Tabla: Pedido Atributo Descripción Dominio codped Código del pedido Cadena(6) continua... estado direnvio codcli cantpedida cantenviada Línea de pedido Dirección del cliente y dirección de envío Código del cliente que realiza Cadena(8) (Referencia a el pedido la tabla Cliente) Cantidad pedida Entero+ Cantidad enviada del artículo Entero+ Enumerado: 0=pedido, 1=procesado, 2=pagado, 3=enviado, 4=cancelado Cadena(128) letras, dígitos,., # / - 31

Ejemplo de un Esquema Relacional (Tabla de Dominios II) (Una tabla por relación)...continuación Tabla: Pedido-Artículo Atributo Descripción Dominio codped codart Código del pedido Código del artículo Cadena(6) (Referencia a la tabla Pedido) (PK) Cadena(4) (Referencia a la tabla Cliente) (PK) Tabla: Artículo Atributo Descripción Dominio codart nomart descripción Código del artículo Nombre del artículo Descripción del artículo Cadena(8) (PK) Cadena(64) letras, dígitos Cadena(256) letras,. - Tabla: Inventario Atributo Descripción Dominio codart Código del artículo Cadena(8) (Referencia a la tabla Artículo) (PK) codplanta Código de la planta Cadena(2) (PK) cantexistencia Cantidad actual en existencia Entero+ (NO NULO) 32

Modelo Objeto-Relacional Es una extensión (algunas veces caótica poco estandarizada y muy dependiente del SGBD) que pretende añadir algunas características de Orientación por objetos al modelo Relacional 33

Modelo Objeto-Relacional Se pueden crear nuevos tipos de datos que pueden ser tipos compuestos, pero que deben ser soportados por el propietario del tipo, esto es deben definir al menos dos métodos transformadores, uno para convertir el tipo nuevo a ASCII y el otro que convierte de ASCII al nuevo tipo. Se soportan tipos complejos como: registros, conjuntos, referencias, listas, pilas, colas y arreglos Tipo Compuesto Teléfono (cód_país, cód_área, cód_sector, número_local) Ej: Teléfono (58, 274, 244, 3454) transformación definida por el propietario o creador del tipo Se traduce a una columna (Atributo) que tiene cadenas de con el siguiente formato: '+cód_país-cód_área-cód_sector-número_local' Ej: '+58-274-244-3454' 34

Modelo Objeto-Relacional Se pueden crear funciones que tengan un código en algún lenguaje de programación, por ejemplo: SQL, Java, C, etcétera (Stored Procedures / Procedimientos Almacenados) Posibilidad de incluir el chequeo de las reglas de integridad referencial a través de los triggers o gatillos Se soporta el encadenamiento dinámico y herencia en los tipos tupla o registro Se pueden crear operadores asignándoles un nombre y asociándolos a una función ya definida o creada con anterioridad 35

Gracias Gracias! 36