P. 1
Diseño de Bases de Datos

Diseño de Bases de Datos

|Views: 3|Likes:
Publicado porJulio César Luna

More info:

Published by: Julio César Luna on May 08, 2013
Copyright:Attribution Non-commercial

Availability:

Read on Scribd mobile: iPhone, iPad and Android.
download as PDF, TXT or read online from Scribd
See more
See less

05/06/2015

pdf

text

original

Universidad de Ibagué Facultad de Ingeniería Programa de Ingeniería de Sistemas

Diseño de Base de Datos Carlos Andrés Lugo González

Febrero 2011

NOTAS Universitarias | 1

Notas Universitarias Diseño de Bases de Datos Facultad de Ingeniería Programa de Ingeniería de Sistemas Universidad de Ibagué Ibagué, Colombia. Febrero de 2011

ISSN 2216-0302

Presidente del Consejo Superior Eduardo Aldana Valdés Rector Alfonso Reyes Alvarado Vicerrectora Nidia Chaparro Cuervo

© Universidad de Ibagué, 2011

© Carlos Andrés Lugo González, 2011

Correspondencia Universidad de Ibagué, Oficina de publicaciones Calle 67, Carrera 22. Tel. (57 8) 2709400 Ibagué -Tolima, Colombia. www.unibague.edu.co publicaciones@unibague.edu.co

Esta obra no puede reproducirse sin la autorización expresa y por escrito de la Universidad de Ibagué

NOTAS Universitarias | 2

Carlos Andrés Lugo González es Ingeniero de Sistemas de la Universidad Distrital Francisco José de Caldas. Cuenta con una especialización en Teleinformática de la Universidad de Ibagué. Ha participado en encuentros y conferencias como “Tendencias en ingeniería de software e inteligencia artificial” y “Euro – American Conference On Telematics and Information Systems”. Ha estado vinculado a la Universidad de Ibagué por 11 años. Es docente de tiempo completo en el área de Ingeniera de sistemas.

NOTAS Universitarias | 3

NOTAS Universitarias | 4 .

7 Generalización 2.1 Atributos derivados 2.3 Actores de la base de datos 1.3.1 Dependencia en existencia y en identificación 2.Contenido Introducción 1.2 Clasificación de las restricciones según los elementos a los que afecta la condición 3.8 Esquematización con herramientas CASE 2. Modelo de datos relacional 3.4 Conceptos básicos 1.2 Característica dinámica 1.6 Restricciones sobre interrelaciones adicionales 2.1 Elementos del modelo entidad / interrelación 2.3.5.3 Elementos de un tipo interrelación 2.1 Paso de una asociación muchos a muchos entre dos entidades NOTAS Universitarias | 5 .1 Característica estática 1.5 Interrelaciones de grado superior a 2 2.6.5.1 ¿Qué es una base de datos? 1.6 Restricciones de integridad 1.2 Restricciones de integridad 2. Conceptos generales de bases de datos 1.1 Clasificación de las restricciones 1.7 Proceso de diseño de una base de datos 2.1 Restricciones semánticas 3.9 Ejercicios 3.2.2.2 Interrelaciones redundantes 2.4 Control de redundancia 2.5 Modelo de datos 1.4.1 Intensión y extensión de una relación 3.2 Sistema gestor de base de datos 1.2 Restricciones del modelo relacional 3.4. Modelo entidad / interrelación 2.3 Paso del modelo E/R al relacional 3.

3. Lenguaje de consulta estructurado SQL 4.1 Instrucción SELECT 4.4.3.2.5.4.2.4 3.3 3.6 Proceso de Respaldo y Recuperación 4.1.3 Instrucción ROLLBACK 4.2 Instrucciones DML 4.1 Instrucciones DDL 4.3.3.3 Instrucción RENAME 4.4 Instrucciones de control de transacciones 4.7 Ejercicios Bibliografía NOTAS Universitarias | 6 .1.2 Instrucción SAVEPOINT 4.5 3.1 Instrucción COMMIT 4.2 Instrucción UPDATE 4.3.2 Instrucción REVOKE 4.1 Instrucción GRANT 4.5 Instrucción DROP 4.1.1 Instrucción CREATE 4.2 Instrucción ALTER 4.3.3 Instrucción DELETE 4.4.1.2 3.4 Ejercicios Asociaciones uno a uno Paso de herencia a relaciones uno a muchos Asociaciones recursivas (a la misma tabla) Ejemplo de manejo de productos 4.3 Instrucciones DCL 4.5 Instrucciones de recuperación de datos 4.2.3.1 Instrucción INSERT 4.4 Instrucción TRUNCATE 4.1.

Introducción En la actualidad. El ingeniero de sistemas actual debe estar en capacidad de diseñar e implementar una base de datos que cumpla con las características de eficiencia y eficacia que garanticen el correcto almacenamiento y posterior consulta de la información para la cual se crea la base de datos. En el siguiente capítulo se ofrece el modelo de datos relacional. El Autor. A ellos. de mucha importancia para el proceso de diseño y muy flexible en términos de las capacidades que ofrece. NOTAS Universitarias | 7 . se presentan conceptos generales y de gran importancia para los posteriores capítulos. el cual es un lenguaje que permite implementar el diseño creado. a partir de los diferentes modelos de datos. el cual es el más utilizado actualmente por la mayoría de motores de bases de datos comerciales. Este proceso de diseño e implementación no es tarea fácil y necesita de la experticia y conocimiento que solo la práctica puede ofrecer. más específicamente almacenarla. el capítulo cuarto se refiere al lenguaje de consulta unificado SQL. Cualquier empresa. sin importar su naturaleza. El primer capítulo se centra en la conceptualización inicial de las bases de datos. debido en gran medida a que todas las organizaciones requieren de almacenar información. Estas Notas Universitarias ofrecen al lector un punto de partida sencillo para iniciar en el proceso de diseño e implementación de las bases de datos. debe gestionar información y. Brinda los conceptos básicos necesarios para que. Por último. Este documento es el resultado del estudio de diferentes autores y de la experiencia en el desarrollo de base de datos reales. utilizando el modelo de datos relacional. el estudiante cree una base de datos que satisfaga las necesidades del potencial cliente y/o usuario que así lo requiera. El documento está organizado en cuatro capítulos. su correcta comprensión es fundamental para el ingeniero que desee realizar un buen diseño de base de datos. nuestros más sinceros agradecimientos y reconocimiento. con el fin de procesarla y acceder a ella en todo momento y fundamentalmente al tomar las decisiones que permiten cumplir los objetivos. Esperamos que este documento sea de buen provecho para el potencial lector y satisfaga la sed de conocimientos que lo impulsa a estudiar. la gestión de bases de datos es un área fundamental para el desarrollo profesional del ingeniero de sistemas moderno. En el capítulo dos se muestra el modelo de datos Entidad Interrelación. muchas de las ilustraciones y referencias están basadas en el libro Diseño de Bases de Datos Relacionales de los autores Miguel Piatitini y Marcos.

NOTAS Universitarias | 8

1 Conceptos generales de bases de datos
1.1 ¿Qué es una base de datos? Muchas definiciones podemos encontrar de base de datos, entre ellas: Colección organizada de información. Conjunto de datos relacionados entre sí. Colección compartida de datos lógicamente relacionados, junto con una descripción de estos datos, que están diseñados para satisfacer las necesidades informáticas de una organización. Cualquiera de las anteriores definiciones es válida y de acuerdo a la complejidad del sistema de base de datos a desarrollar, podemos añadir nuevas características a la definición.

\
Figura 1. Representación grafica de una base de datos

Algunas características que deben poseer las bases de datos son: Las BASE DE DATOS representan algún aspecto del mundo real (Minimundo). Una BASE DE DATOS es un conjunto de datos lógicamente coherente con cierto significado inherente. Toda BASE DE DATOS se diseña, construye y puebla con datos para un propósito especifico. 1.2 Sistema gestor de base de datos SGBASE DE DATOS Un Sistema Gestor de Base de Datos o DBMS Data Base Managenment System; es un conjunto de programas (software) que permite a los usuarios definir, crear, mantener y controlar una BASE DE DATOS. Algunas de las funcionalidades que debe prestar un SGBASE DE DATOS son: Permite a los usuarios definir la Base de Datos, usualmente mediante un Lenguaje de definición de datos que permita crear modificar y eliminar los objetos de la base de datos como las tablas, vistas, etc.

NOTAS Universitarias | 9

Permite a los usuarios realizar operaciones sobre los datos como insertar, actualizar, eliminar y consultar. Proporciona un acceso controlado a la base de datos que puede incluir o Un sistema de seguridad de los datos (que evita que usuarios no autorizados accedan a la información). o Un sistema de integridad de la información (que mantiene la coherencia de los datos almacenados). o Un sistema de control de concurrencia (que permite el acceso compartido a la base de datos). o Un sistema de respaldo y recuperación de la información (que restaura la base de datos a un estado previo coherente después de cada fallo hardware o software). o Un sistema de control de redundancia (que reduzca al mínimo la redundancia de datos en la base de datos). Un SGBASE DE DATOS ofrece una representación conceptual de los datos, es decir que el software gestor de base de datos debe tener la capacidad de plasmar de alguna forma la representación conceptual de los datos. En términos informales un modelo de datos es un tipo de abstracción de los datos con que se obtiene esa representación conceptual. Dentro de cada base de datos existe una parte denominada catalogo del sistema, es aquí donde se almacenan los Metadatos o diccionario de datos (los datos acerca de los datos) y estos describen la estructura de la BASE DE DATOS primaria. 1.3 Actores de la base de datos Distintos roles y personas deben interactuar para llevar a buen término la construcción de una base de datos, la separación de tareas es fundamental en cualquier tipo de proyecto ya que especializa y organiza los procesos dentro del proceso de desarrollo; a continuación se describen los principales actores dentro del desarrollo y construcción de una base de datos: DBA: Data Base Administrator. El administrador de la BASE DE DATOS se encarga de administrar los recursos de la base de datos; el administrador es responsable de la gestión de la base de datos que incluye procesos como el control de la seguridad y la asignación de roles y privilegios a los usuarios, el control de la integridad de los datos en caso de fallas de hardware y software, el mantenimiento y fiabilidad del sistema y la certeza de garantizar el mejor rendimiento posible de las aplicaciones de la base de datos y la base de datos en sí. Diseñador de la base de datos: En general existen dos tipos de diseñadores de bases de datos; el diseñador lógico y el diseñador físico de la base de datos. El diseñador lógico se encarga de identificar los objetos de la base de datos como las

NOTAS Universitarias | 10

usualmente para este fin utilizan un lenguaje de programación de propósito general como Java. El diseñador físico es el encargado de materializar físicamente el diseño lógico de la base de datos. reduce la NOTAS Universitarias | 11 .entidades y sus atributos. o General: Usualmente no conocen la base datos y utilizan las aplicaciones de usuario para interactuar con ésta.Net. Modelar: Consiste en definir un mundo abstracto y teórico tal que las conclusiones que se puedan sacar del. Es realmente el conjunto de reglas y mecanismos que nos permiten aplicar una serie de abstracciones con el fin de crear un modelo a partir del problema que queremos solucionar. 1. usualmente utilizan un lenguaje de consulta de alto nivel como SQL para realizar las transacciones a la base de datos. Modelo de Datos: Es un dispositivo de abstracción que “nos permite ver el bosque en oposición a los arboles”. Este proceso oculta detalles insignificantes y se fija en lo esencial. modelar consiste en representar el mundo real a través de de un modelo. Usuario final: Son las personas o sistemas que necesiten tener acceso a la base de datos para consultarla y realizar transacciones. VB. Abstracción: Consiste en separar por medio de una operación intelectual las cualidades de un objeto para considerarlas aisladamente o para considerar el mismo objeto en su pura esencia o noción. utilizando las estructuras más adecuadas según el motor de base de datos que se utilice. al igual que en otras disciplinas. las relaciones entre estas y las restricciones que operan sobre los datos. busca propiedades comunes.4 Conceptos básicos Para continuar es necesario hacer claridad respecto a algunas definiciones utilizadas a lo largo de este documento. En términos generales en diseñador lógico se encarga de él que mientras que el diseñador físico se encarga del cómo. Información: Conjunto organizado de datos interpretados con mayor significado que los datos. símbolo con significado limitado. Analista de sistemas y desarrolladores de aplicaciones: Determinan los requisitos de los usuarios finales y desarrollan aplicaciones que satisfagan dichos requerimientos. coincidan con las manifestaciones aparentes del mundo real. se pueden dividir en 2 grandes tipos: o Avanzado: Están familiarizados con el diseño de la base de datos y con el motor de base de datos. etc. entre las que encontramos: Dato: Unidad de información mínima. proporciona mecanismos de abstracción que permiten la representación de aquella parcela del mundo real cuyos datos nos interesa registrar y que comúnmente conocemos como universo en discurso o minimundo.

o Propiedades. son las características de un objeto como una entidad (atributos. relaciones (NO confundir con asociaciones). son las entidades. o Asociaciones. 1.5 Modelo de datos Un modelo de datos es el conjunto de conceptos.5. enfocándonos en lo esencial apara solucionar el problema informático. como una fotografía de ella. Elementos NO permitidos o Restricciones: Las restricciones son limitaciones impuestas por el mismo modelo de datos o por el mundo real con el fin de promover la integridad de los datos. por ejemplo “toda entidad debe tener un nombre”. Es equivalente al mismo modelo lógico que se entiende como cualquier tipo de modelo en el campo de las bases de datos.complejidad y ayuda a la comprensión del mundo real. son la interrelaciones entre los objetos como las entidades. la característica estática y la dinámica. etc). o Dominios. un ejemplo de restricción es que no haya registros duplicados (iguales) en una entidad o que un curso tenga máximo 20 alumnos matriculados. 1. Lenguaje de Datos = Modelo de Datos + Sintaxis SQL = Modelo de Datos Relacional + Sintaxis Se entiende como ejemplar a la base de datos en determinado momento. NOTAS Universitarias | 12 . etc. es decir en los objetos y componente que no cambian (no cambian mucho) a lo largo del tiempo.1 Característica estática La característica estática es la encargada de definir la base de datos en su componente estático. son los posibles valores que puede tomar un atributo o propiedades. El modelo de datos debe poseer como mínimo 2 características. Cuando se realiza un proceso de abstracción se lleva del mundo real al mundo conceptual. se define como un conjunto homogéneo de valores. está compuesta por: Elementos permitidos: Son los elementos estáticos (estructuras) que conforman el modelo. campos. en general son: o Objetos. reglas y convenciones bien definidas que nos permiten aplicar una serie de abstracciones a fin de describir y manipular los datos del minimundo que deseamos almacenar en la bases de datos. el modelo de datos no es igual a esquema de datos. varían de acurdo al modelo. Existen dos tipos de restricciones: o Restricciones inherentes: Son aquellas impuestas por el modelo de datos.

Las restricciones semánticas pueden ser:  Reconocidas por el modelo de datos: Son aquellas impuestas por el mundo real pero gestionadas por el modelo de datos. y puede ser la recuperación de los datos o la modificación de los mismos.o Restricciones de integridad o semánticas: Son aquellas que permiten plasmar las reglas o restricciones del mundo real. por ejemplo que el género de un empleado se “M” o “F”. 1.2 Característica dinámica Es la encargada de efectuar las operaciones en la base de datos.  Ajenas al modelo de datos: Son aquellas impuestas por el mundo real pero no gestionables por el modelo de datos. actualización o eliminación. Un ejemplo es una restricción que limite el número de retiros diarios que puede realizar un cliente de un banco en su cuenta. Acción: Consiste en realizar la acción especificada en él o los ejemplares (registros) previamente ubicados mediante la localización.5.6 Restricciones de integridad Las restricciones de integridad son las reglas que debemos implementar basándonos en el mundo real. estas operaciones tienen 2 componentes: Localización: Consiste en ubicar un ejemplar (registro) o un conjunto de ejemplares (de acuerdo a una condición) en un objeto de la base de datos (usualmente una entidad). 1. mediante una inserción. LOCALIZACIÓN <condición> ACCIÓN <objetivo> Donde LOCALIZACIÓN y ACCIÓN son comandos del lenguaje del modelo de datos. inicialmente las restricciones pueden ser: Restricciones propias: Son las restricciones semánticas que pueden ser especificadas en el propio modelo de datos y representadas en el esquema de datos (los diagramas). NOTAS Universitarias | 13 . por ejemplo asegurar que solo los mayores de edad pueden estar casado. Usualmente para este tipo de restricciones se utilizan las aplicaciones de la base de datos.

1 Clasificación de las restricciones Las restricciones se clasifican como se puede apreciar en la figura 2.Restricciones ajenas: Son las restricciones que no son soportadas por el modelo de datos y usualmente deben ser implementadas por aplicaciones independientes a la base de datos.6. actualización o eliminación cuya ejecución genera la comprobación de la restricción. Las restricciones de integridad tienen tres componentes principales: La operación: se refiere a la operación de inserción. Clasificación de las Restricciones Adaptado de [1] NOTAS Universitarias | 14 . en caso que la condición sea verdadera. Figura 2. lo más usual es que la acción sea de rechazo de la operación. Acción: Que se debe hacer de pendiendo el resultado de la condición. 1. es una expresión lógica simple (que retorna verdadero o falso) y que dependiendo del resultado dispara la acción subsecuente. Condición: que se debe cumplir.

Restricciones de Lenguaje de Propósito General: Son las restricciones ajenas implementadas mediante un lenguaje de propósito general como C++. actualización o eliminación ocurre. son las restricciones que impone el mundo real que se está analizando para la creación de la base de datos. Restricciones Ajenas: Son las restricciones que no puede manejar por si solo el modelo de datos. Restricciones de Acción General: Son las restricciones donde es preciso programar estilo método para determinar la acción que hay que llevar a cabo.Restricciones Inherentes: Son las que el modelo de datos impone. son las que se asemejan más a las “restricciones ajenas” al modelo. NOTAS Universitarias | 15 . son muy parecidas a las restricciones ajenas con lenguaje de programación del motor de base de datos. como que cada entidad debe tener como mínimo un atributo. se implementan en los programas de la aplicación (capa lógica). Restricciones del Lenguaje del SGBD: Son las restricciones ajenas implementadas mediante un lenguaje asociado a un motor de base de datos como PL/SQL de Oracle o Transact-SQL de Microsoft. VB. Restricciones Propias: Son definidas al definir el es esquema de la base de datos. se definen como una proposición lógica. Restricciones Acción específica: Esta implícita en la misma restricción (generalmente la negativa genera un rechazo). etc. Disparadores: Se desencadenan cuando sucede cierta condición. Restricciones Semánticas: Son aquellas que modelan el mini universo. se declaran como procedimientos y se disparan automáticamente cuando un evento de inserción. Restricciones de verificación: Son especificas a un elemento del esquema.Net. Java. pueden ser manejadas por el modelo de datos. Procedimientos Almacenados: Se definen de forma procedimental. Restricciones de Condición General: Generan rechazo siempre y cuando sean falsas.

Restricciones de Aserción: Igual que las anteriores pero afectan a varios objetos simultáneamente.) ALMACENAMIENTO FÍSICO (Estructuras físicas de almacenamiento. Modelo Relacional) MODELADO INTERNO (Modelo de estructuras internas de la base de datos como los índices. Etapas del diseño de una Base de Datos. La etapas en el diseño se presentan en la figura numero 3. Restricciones de Condición Específica: Son opciones proporcionadas por el propio modelo. etc. etc. como el de una entidad bancaria. secuencias. como tablas.7 Proceso de diseño de una base de datos Conjunto de etapas necesarias para pasar de una determinada realidad (mini universo) a la base de datos que representa.) UNIVERSO DEL DISCURSO (Visión del problema informático bajo el problema especifico a resolver) MODELADO CONCEPTUAL DE DATOS (Modelo E/R de la solución del problema informático) MODELADO LÓGICO (Modelo de la solución de la base de datos. atributos. Adaptado de [1] NOTAS Universitarias | 16 . universidad. 1. MUNDO REAL (Cualquier problema informático. etc.) Figura 3. No especifica los componentes relativos a la restricción.

1 Elementos del modelo entidad interrelación Los elementos encontrados en el modelo entidad interrelación son los siguientes: Entidad: Cualquier objeto real o abstracto que existe en el universo y acerca del cual queremos almacenar información en la base de datos. Haciendo un paralelo con el modelo Orientado a Objetos. Un curso se considera una entidad débil debido a que para poder existir.2 Modelo entidad / interrelación El modelo entidad interrelación es un modelo de datos usado como base para una vista unificada de los datos. o Entidad regular: Cuyos ejemplares (registros de la entidad) existen por sí mismos. El ejemplo de una materia ilustra este tipo de entidad. adoptando el enfoque más natural del mundo real que consiste en entidades e interrelaciones. Figura 5. Entidad Regular o Entidad débil: Cuyos ejemplares dependen de que exista cierto ejemplar en otro tipo entidad. debe existir previamente una materia de la cual se cree el curso. podemos decir que la entidad (en términos generales) es la misma clase si omitimos las operaciones. ya que una materia (con ciertas consideraciones) tiene existencia propia. Entidad Débil NOTAS Universitarias | 17 . La representación de este tipo de entidad es un rectángulo de línea doble con el nombre de la entidad dentro de él. 2. La representación de este tipo de entidad es un rectángulo con el nombre de la entidad dentro de él. Existen 2 tipos de entidades. Figura 4.

Cada ejemplar debe poder distinguirse de otro. Todos los ejemplares de la misma entidad debe tener las mismas propiedades. NO están permitidas entre Entidad . Dos entidades pueden poseer más de dos interrelaciones. El modelo E/R tiene como restricción inherente que solo permite establecer interrelaciones entre entidades. La representación de una interrelación es a través de un rombo. es decir que todos los ejemplares de la entidad deben obligatoriamente tener valores en las propiedades de la entidad. vinculación o correspondencia entre entidades.Interrelación. entre ellas encontramos: Tienen que tener existencia propia. con la connotación de que su existencia se debe a la vinculación entre entidades. Interrelación: Es una asociación. Figura 6. es decir que la existencia de sus ejemplares (los registros) debe tener existencia sin ninguna dependencia (aunque eso no es cierto en el caso de las entidades débiles). Interrelación “Imparte” NOTAS Universitarias | 18 . en términos generales es muy parecida a una entidad. es decir que no deben existir dos ejemplares exactamente iguales en la misma entidad.Interrelación ni entre Interrelación .Reglas de las entidades: Las entidades deben cumplir ciertas reglas que hagan valida su existencia. así alguno(s) valor(es) sean NULL.

Representación de los atributos NOTAS Universitarias | 19 . Se puede definir por: o Intención: Especificando el tipo de dato. o Extensión: Declarando el valor de cada elemento. Atributo: Cada una de las propiedades o características que tiene una entidad o interrelación. Interrelación “Imparte” y “Recibe” Dominio: Es el conjunto de posibles valores que puede tomar cierta propiedad de una entidad o interrelación. ej.Figura 7. verde. Se representa con una línea y circulo la entidad o interrelación a la que pertenece. rojo.: azul. es decir cualquier número entre 1 e infinito. Los dominios tienen existencia propia independiente de cualquier otro elemento. El número de atributos de una entidad o interrelación es n. Figura 8.

A cada uno de de estos conjuntos de atributos se les denomina Identificador Candidato (IC). Es un atributo compuesto (es decir que a su vez está compuesto de atributos). Se dividen en dos grupos: o Identificador Principal: Es aquel que por razones ajenas al modelo de datos es considerado el atributo “principal” de la entidad.2 Restricciones de integridad La principal restricción inherente (es decir las restricciones propias del modelo de datos y no las que impone el mundo real) del modelo de datos entidad interrelación E/R. 2. Los atributos a diferencia de los dominios NO tienen vida propia. Representación de los atributos Candidatos NOTAS Universitarias | 20 . cada valor solo puede pertenecer a un conjunto definido. o Identificadores Alternos: El resto de atributos candidatos que no son el identificador principal. Adicionalmente es necesario aclarar que las entidades e interrelaciones poseen atributos y los ejemplares toman valores para cada atributo. prohíbe que haya interrelaciones entre interrelaciones. el segundo atributo llamado fec nac. el primer atributo llamado nombre es un atributo simple. Otras importantes restricciones son: Restricción sobre Valores: Se establecen mediante la definición del dominio. es decir están ligados al tipo entidad o interrelación correspondiente.En la figura 8 se puede apreciar dos atributos pertenecientes a la entidad profesor. Figura 9. Restricción sobre Atributos (IC): Entre todos los atributos de un tipo entidad existe uno o varios (simples y/o compuestos) que identifican unívocamente cada uno de los ejemplares de esta entidad. es decir que una interrelación solo podrá existir entre dos entidades. también obliga a que todas las entidades posean un identificador o nombre único en todo el esquema de la base de datos. todo IC debe cumplir la condición de ser unívoco y mínimo.

como los atributos multivaluados. La cardinalidad es el rango de valores que puede tomar en este caso un atributo y generalmente tiene un valor mínimo y máximo.: una materia se puede impartir en dos a más idiomas. en el modelo de datos E/R un atributo puede ser multivaluados. Cardinalidad de los atributos.Restricción sobre Atributos (otros): Otras restricciones aplican sobre los atributos.3 Elementos de un tipo interrelación Los elementos que componen a una interrelación son: NOTAS Universitarias | 21 . Atributos regulares. que son aquellos que pueden tomar más de un solo valor. 2. Figura 11. Sin embargo. Los atributos opcionales son aquellos que pueden tener valores nulos lo cual indica que el valor de ese atributo es NULL. multivaluados y opcionales. en el modelo de datos relacional (siguiente capítulo) esto no está permitido. ej. Como se puede observar. Figura 10.

De este concepto podemos deducir que el número de entidades que asocia una interrelación no es necesariamente 2. con un ejemplar de otro tipo. Roles entre la Interrelación.Nombre: Lo distingue unívocamente del resto de elementos. Figura 12. Figura 13. 3. debe ser único y descriptivo de la entidad. etc. puede ser 1. usualmente es un sustantivo en singular (con contadas excepciones). Tipo correspondencia: Es el número máximo de ejemplares de una entidad que pueden estar asociados en una determinada interrelación. Papel (“Rol”): Es la función que cada uno de los tipos entidad realiza en el tipo interrelación. Grado: Es el número de entidades que participan en un tipo interrelación. NOTAS Universitarias | 22 . Ejemplos de interrelación.

Cuando la interrelación es 1:1 es muy conveniente conservar el atributo dependiendo de la interrelación. 2. Los atributos de las Interrelaciones N:M son propios de la misma y no de las entidades vinculadas por la interrelación. las regulares y las débiles. respectivamente. NOTAS Universitarias | 23 . La interrelación débil tiene dos divisiones. Figura 14.1 Dependencia en existencia y en identificación Existen 2 tipos de interrelación. o a una entidad débil con una entidad (débil o regular). cuando en una interrelación 1:N se tiene un atributo asociado. este atributo se lleva a la entidad cuya cardinalidad es N. Cardinalidad entre la Interrelación.Cardinalidad de un tipo entidad: se define como el número máximo y mínimo de ejemplares de un tipo entidad que pueden estar interrelacionados con un ejemplar de otro. según estén asociando a dos entidades regulares. Dependencia en existencia: cuando los ejemplares de un tipo entidad débil no pueden existir si desaparece el ejemplar de tipo entidad regular del cual dependen. Atributos de las interrelaciones Ciertas consideraciones deben tenerse en cuenta cuando se analizan los atributos de una interrelación. por ejemplo.3. la dependencia en existencia y en identificación. Ejercicio: Graficar dos ejemplos de los posibles casos en los que un atributo esté presente en la interrelación.

Es decir que el identificador principal de la entidad débil está compuesto de forma total o parcial por el identificador candidato de la entidad regular a la cual está asociado. los ejemplares del tipo entidad débil no se pueden identificar por sí mismos y exigen añadir el identificador principal del tipo entidad regular del cual dependen. NOTAS Universitarias | 24 . Figura 15.Es decir que el ejemplar de la entidad débil no puede crearse si no se ha creado previamente el ejemplar de la entidad regular a la que está asociada. Dependencia en identificación: además de la condición anterior. Dependencia en existencia.

es decir. sin pérdida del significado de los datos en la propia base de datos. 2. en la figura 17 se observa la relación entre la entidad CUENTA y la TRANSACCION.4 Control de redundancia La redundancia (duplicidad innecesaria de los datos) es un factor predominante de una buena base de datos. es imperativo reducir al mínimo (lo ideal sería evitarla totalmente) la redundancia en nuestra base de datos y para esto existen técnicas aplicables desde el mismo modelo de base de datos utilizado. Dependencia en identificación. 2. Debemos analizar la existencia de redundancia por los problemas de inconsistencias a los que puede dar lugar. Usualmente este tipo de atributos son creados con fines de eficiencia de la base de datos. en los atributos (derivados) y en las interrelaciones (derivadas). no son inconsistentes siempre y cuando se indique su procedencia y la fórmula para hallarlos. si se quisiera calcular el saldo de la cuenta sería posible hacerlo a través de la suma y resta de acuerdo a la NOTAS Universitarias | 25 . se dice que un elemento del esquema es redundante cuando puede ser eliminado sin pérdida de semántica. por lo que aunque son redundantes. son calculados.4.1 Atributos derivados Son aquellos que se obtienen a partir de otros ya existentes. como ejemplo podemos analizar una entidad bancaria con sus cuentas y las transacciones que generan estas cuentas. Existen dos tipos de redundancia.Figura 16.

NOTAS Universitarias | 26 .4. Un atributo derivado se puede calcular en 2 momentos distintos: Al actualizar: Es decir que cada vez que se genere una operación de inserción. en donde no es posible eliminar la interrelación entre el docente y el departamento sin pérdida de semántica. actualización o eliminación. Al consultar: Es decir que se actualice solamente cuando se realice una consulta al atributo calculado (virtual). en ese caso la interrelación “pertenece” entre el profesor y el departamento se hace redundante ya que su eliminación no implica la pérdida de semántica en el esquema. Lo mal útil sería crear un atributo saldo en la entidad CUENTA y actualizarlo constantemente cada vez que se haga una transacción. 2. Se considera condición necesaria aunque no suficiente que haga parte de un ciclo.naturaleza de las transacciones. En el ejemplo de la figura 18 se puede apreciar como existe una interrelación redundante. sin embrago y considerando el posible número de transacciones. En la figura 19 se puede apreciar el caso contrario. esto ocurre porque un curso ya no está adscrito a un solo departamento sino a varios. esta operación podría ser muy costosa computacionalmente generando retrasos en la consulta.2 Interrelaciones redundantes Se dice que una interrelación es redundante cuando su eliminación no implica la pérdida de semántica (del significado de los datos en la base de datos) porque existe la posibilidad de realizar la misma asociación de ejemplares por medio de otras interrelaciones. Ejemplo entidad bancaria. Figura 17. su puede asumir que los cursos que dicta un determinado profesor lo hacen miembro (directo o indirecto) del departamento al cual pertenece el curso. si consideramos que un curso se encuentra adscrito a un departamento y que un profesor dicta uno o varios cursos. haciendo que la interrelación entre el profesor y el departamento sea necesaria con el fin de determinar a qué departamento está adscrito un profesor. se actualice el atributo calculado (real).

Interrelación NO redundante. NOTAS Universitarias | 27 . la semántica se conserve en ambos sentidos y que no se pierdan atributos. Se debe comprobar que si se elimina la interrelación.Figura 18. Figura 19. a pesar de poder ser deducida por otras. Existen otros casos en donde la interrelación. Interrelación redundante. no se puede eliminar ya que posee atributos o que por razón ajenas al modelo sea conveniente conservarlas como prever un futuro cambio en la base de datos.

NOTAS Universitarias | 28 . pero para esto es preciso analizar correctamente la semántica. Que la interrelación o bien no tenga atributos. Si se elimina la interrelación de grado 3 por las tres interrelaciones de grado 2. Por el contrario. Que las interrelaciones del ciclo sean equivalentes semánticamente. o bien estos puedan ser transferidos a fin de no perder la semántica. en la Figura 21 podemos apreciar una interrelación de grado 3 que es posible reemplazar por 3 interrelaciones de grado 2 sin pérdida de semántica. ya que la información de qué cursos imparte el profesor.Condiciones para eliminar una interrelación Existir un ciclo. la interrelación no se puede eliminar. En el ejemplo de la Figura 20 podemos apreciar como una interrelación de grado 3 no se puede eliminar ya que se perdería la semántica. en este ejemplo. si esto no es posible y un ejemplar de una entidad no se puede relacionar con otro ejemplar de otra entidad. Que se puedan asociar los ejemplares de las dos entidades que estaban interrelacionadas. un profesor imparte diferentes temas en muchos cursos. qué alumnos tiene como asistente un curso y a qué estudiantes da clase el profesor es consistente de cualquiera de las dos formas. En ocasiones se puede descomponer una interrelación de grado n en una más simple.5 Interrelaciones de grado superior a 2 Lo más conveniente en el modelo es que existan interrelaciones de grado 2. no se podría determinar exactamente qué temas entran en un curso específico. aun habiendo eliminado la interrelación. 2. es decir que al eliminar una interrelación el significado de los datos en la base de datos sea equivalente con las demás interrelaciones. pero esto no es posible siempre.

Interrelación de grado 3 que sí se puede reemplazar.6 Restricciones sobre interrelaciones adicionales NOTAS Universitarias | 29 . 2. Figura 21. Interrelación de grado 3 que no se puede reemplazar.Figura 20.

pero en el momento que pertenezca a uno ya no podrá formar parte del otro. aunque lo recomendable es crear un modelo lo más simple posible. En la Figura 23 también se observa una restricción de exclusividad con la cardinalidad respecto a las dos interrelaciones. Figura 22. no puede asistirlo y caso contrario. Ejemplo de Interrelación de exclusividad.Existen restricciones sobre interrelaciones adicionales a las mencionadas anteriormente que permiten al modelo plasmas mejor la realidad del mundo del problema que se está analizando. NOTAS Universitarias | 30 . En la Figura 22 se observa cómo un empleado se relaciona con un departamento por medio de dos posibles interrelaciones. Un caso especial es cuando se asocian más de dos entidades y se considera la cardinalidad. Restricción de exclusividad: Este tipo de restricción aplica cuando el ejemplar del tipo entidad solo puede pertenecer a uno de los tipos de la interrelación. Existen ocasiones en las que este tipo de restricciones aplican de forma adecuada. Si dirige el departamento.

Figura 23. Ejemplo de Interrelación de exclusividad. NOTAS Universitarias | 31 . Restricción de exclusión: todo ejemplar de la primera entidad que este unido a la segunda entidad mediante la primera interrelación. no podrá estar unido al mismo ejemplar de la segunda entidad mediante la segunda interrelación. Figura 24. Ejemplo de Interrelación de exclusión. En la Figura 24 se observa el ejemplo de un empleado que o dirige o asiste a un departamento pero que al momento de dirigir un departamento no podrá asistirlo y viceversa.

Ejemplo de Interrelación de inclusividad. Figura 25. Restricción de inclusión: es aún más fuerte que la restricción de Inclusividad.Restricción de inclusividad: todo ejemplar de la primera entidad que participa en unos de los dos tipos de interrelación tiene necesariamente que participar en la otra. En el ejemplo de la Figura 26 se especifica que para dirigir un departamento se debió asistirlo previamente. NOTAS Universitarias | 32 . En la Figura 25 se observa el ejemplo en donde un empleado que dirige un departamento tiene que haber asistido a (en este caso) mínimo 3 departamentos. Ejemplo de Interrelación de inclusión. específica que para que un ejemplar exista en una interrelación previamente debería existir en la otra. Figura 26.

2. a estas entidades se les denomina subtipos. Totalidad: si todo ejemplar del supertipo tiene que pertenecer a algún subtipo Parcialidad: si un ejemplar del supertipo no tiene que pertenecer a algún subtipo. Existen diferentes características en la generalización de a cuerdo a la relación que existe o puede existir entre los ejemplares de las entidades involucradas. NOTAS Universitarias | 33 . a partir de esta entidad se crean diferentes entidades “especializadas” que poseen sus propios atributos y heredan los atributos del supertipo. a esta entidad se le denomina supertipo. Exclusividad: ocurre si un ejemplar del supertipo solo puede pertenecer a uno de los subtipos. Ejemplo de Generalización. El concepto base de la generalización consiste en observar las características generales de varias entidades y agruparlas en una sola que posee todas estas características. Figura 27. Estas características son: Solapamiento: ocurre si un mismo ejemplar del supertipo puede pertenecer a más de un subtipo. Para representar la exclusividad se utiliza un arco en la relación de la entidad supertipo y los subtipos y un círculo para representar la jerarquía total como se puede apreciar en los ejemplos de las figuras 27 y 28. La generalización en el modelo E/R es en esencia la misma del modelo orientado a objetos.7 Generalización Se considera un caso especial de interrelación entre varios tipos entidad (subtipos) y un tipo más general (supertipo) cuyas características son comunes a todos los subtipos.

Dimensión temporal en el modelo E/R Las bases de datos almacenan información en el tiempo y considerando que no debe borrarse información de estas. Un curso dirigido y un curso virtual son cursos (Generalización). Un curso puede ser curso dirigido o curso virtual o ninguno de los dos (parcialidad). Figura 28. Un mismo empleado no puede ser a la vez un docente y una secretaria (exclusividad o disyunción). Un mismo curso no puede ser al mismo tun curso dirigido y un curso virtual (exclusividad o disyunción). Todo empleado tiene que ser obligatoriamente un docente o una secretaria (totalidad). la mejor forma de modelar “el tiempo” es a través de atributos fecha que almacenen las fechas de los acontecimientos y el manejo de estados en los ejemplares de cada entidad. NOTAS Universitarias | 34 .Tanto un docente como una secretaria son empleados (Generalización). Ejemplo de Generalización.

Entidad con atributos .wikipedia. la forma de representación cambia un poco. Figura 29. Interrelación con atributos 1 2 http://es. la Figura 29 representan una entidad con sus atributos. la Figura 30 una interrelación con sus atributos y la Figura 31 el uso de la generalización..com/products/modelingdevelopment/powerdesigner NOTAS Universitarias | 35 .8 Esquematización con herramientas CASE Una herramienta CASE (Computer Aided Software Engineering) es “un software destinadas a aumentar la productividad en el desarrollo de software reduciendo el costo de las mismas en términos de tiempo y de dinero”1. la representación de los atributos de una entidad o interrelación se hacen dentro el objeto no con círculos y líneas. Por ejemplo en Power Designer2. aunque en general todas siguen el mismo patrón.2. INSCRIPCION CODIINSCRIPCION Number FECHAINSCRIPCION Date ESTADOINSCRIPCION Variable characters (2) Figura 30.org/wiki/Herramienta_CASE http://www. CURSO CODIGOCUR <pi> Number <M> NOMBRECUR Variable characters (50) INTHORARIACUR Number ESTADOCUR Variable characters (2) CPCURSO <pi> .. Dependiendo de la herramienta CASE utilizada. A continuación se presenta un ejemplo de los objetos manejados en el modelo E/R de acuerdo a su representación en la herramienta CASE Power Designer.sybase.

. ES UN CURSOVIRTUAL DESCHERRAMIENTACV Variable characters (200) NUMMODULOSCV Number CURSODIRIGIDO NOMBASESORCD Variable characters (50) NUMHORASPRES Number Figura 32.n INSCRIPCION CODIINSCRIPCION Number FECHAINSCRIPCION Date ESTADOINSCRIPCION Variable characters (2) <M> <M> <M> <M> CURSO CODIGOCUR <pi> Number <M> NOMBRECUR Variable characters (50) INTHORARIACUR Number ESTADOCUR Variable characters (2) CPCURSO <pi> . Esquema de ejemplo E/R. PROGRAMAACADEMICO CODPROGACA <pi> Number NOMBRPROGACA Variable characters (50) FECHREGCALPRGACA Date ESTAPROGACA Variable characters (2) PKPROGRAMAACADEMICO <pi> . Generalización El ejemplo de la Figura 32 reúne los diferentes objetos del modelo E/R en un esquema que relaciona un curso con programa académico y alumno.9 Ejercicios NOTAS Universitarias | 36 .n 0. <M> <M> <M> <M> pertenece ALUMNO CODIGOALUM <pi> Number NOMBREALUM Variable characters (50) DIRECCIONALUM Variable characters (50) GENEROALUM Variable characters (1) ESTADOALUM Variable characters (2) CPALUMNO <pi> .. 0.... ES UN CURSOVIRTUAL DESCHERRAMIENTACV Variable characters (200) NUMMODULOSCV Number Figura 31....CURSO CODIGOCUR <pi> Number <M> NOMBRECUR Variable characters (50) INTHORARIACUR Number ESTADOCUR Variable characters (2) CPCURSO <pi> . 2.

En un problema informático cualquiera. sus atributos y los identificadores candidatos de las entidades. Investigas como se grafica la generalización “completa” y “mutualmente exclusiva” en la herramienta Power Designer. identificar las entidades.1. hospital. 5. un esquema de base de datos completo en una herramienta CASE. 2. Identificar entidades que posean atributos compuestos y esquematizarlos. 4. etc. Ejemplo: biblioteca. Identificar tres ejemplos de atributos calculados en diferentes entidades. entidad bancaria. NOTAS Universitarias | 37 . 3. Crear a partir de un ejemplo dado por el profesor.

NOTAS Universitarias | 38 .

Se expresa: R (A1:D1 . se compone del nombre de la relación R (usualmente un sustantivo en singular). donde cada tupla o registro es una pareja conformada por el nombre del atributo “Ai” y el valor del atributo “Vij” sobre el dominio Di donde fue definido el atributo. es decir que varios atributos pueden ser del mismo tipo. Atributo: Es una propiedad o característica de la relación. Ai es el nombre del atributo y Di el dominio al cual pertenece cada atributo. A2:D2 . An:Dn) donde R es el nombre del esquema de relación. Se puede definir por extensión (nombrando sus posibles valores) o por intensión (mediante el tipo de datos).. ej. . es la misma columna de una tabla en el modelo físico. de un conjunto de atributos (el numero de atributos es cualquier entero positivo) {Ai} y de un conjunto de dominios (cada atributo debe tener un dominio. <Ai:Vnj> . Un atributo debe tomar los valores de un dominio y de solo un dominio según su definición y diferentes atributos pueden tomar sus valores del mismo dominio. La estructura u objeto básico de este modelo es la relación o tabla.. fue propuesto por Codd en 1970 y supuso una revolución en las bases de datos debido a su enfoque y la separación de los datos en sí mismos de las aplicaciones utilizadas para gestionar dichos datos. siendo este último el más utilizado. <An:Vnj>).3 Modelo de datos relacional El modelo de datos relacional es el modelo de datos más utilizado en la actualidad.. se expresa: (<A1:V1j> . Una relación se representa físicamente utilizando una tabla en donde: NOTAS Universitarias | 39 . El esquema de relación es la representación de la relación en términos de sus atributos con sus respectivos dominios. debe ser finito y nominal. y dos o más atributos pueden tener el mismo dominio) {Di}.: los números enteros existen así no haya relaciones (tablas) en el esquema.. mientras que un dominio tiene existencia independiente a las relaciones del esquema. cuya función es la de representar las entidades del mundo del problema así como las asociaciones o interrelaciones del modelo E/R. Relación: es el conjunto de elementos llamados tuplas {tj}. Un atributo se encuentra siempre en una relación (es una propiedad de una relación). Los componentes básicos del modelo son: Dominio: Es el conjunto de posibles valores que puede tomar un atributo. .

todas las tuplas deben ser iguales en términos de estructura (no de valores) para satisfacer la estructura de la relación. estas tuplas se almacenan en la base de datos y suelen llamarse simplemente relación. INTHORARIACUR:NUMERICO.Los atributos de la relación son las columnas de la tabla. NOMBRECUR:CADENA. ESTADOCUR:CADENA) La extensión de una relación es el conjunto de tuplas (registros) que componen la relación. CURSO(CODIGOCUR:NUMERICO. Se puede representar como en la Figura 33. Un esquema relacional es el conjunto de esquemas de relación que describen el minimundo del problema del cual se diseña la base de datos. NOTAS Universitarias | 40 . La Figura 34 muestra un ejemplo de relación que satisface el esquema de relación de la Figura 33. 3. Esquema de relación. el conjunto de todas las tuplas conforman la relación. Relación. El número de tuplas se llama cardinalidad de la relación.1 Intensión y extensión de una relación La intensión de una relación es el mismo esquema de la relación. Cuando se crea un diagrama relacional de base de datos. es decir la parte definitoria de la relación. se está creando un esquema relacional que satisfaga la estructura informática del mundo del problema.. los metadatos o abstracción de la relación. CODIGOCUR 2245 2215 2219 NOMBRECUR Programación Lógica Base de Datos INTHORARIACUR 4 6 4 ESTADOCUR AC AC IN Figura 34. Cada registro de la tabla es una tupla de la relación.. CURSO CODIGOCUR <pi> Number <M> NOMBRECUR Variable characters (50) INTHORARIACUR Number ESTADOCUR Variable characters (2) CPCURSO <pi> . Figura 33.

El único objeto del modelo relacional es la relación. este atributo (o atributos) no puede tomar el valor nulo (null). se rechaza la inserción. pero no los dos al tiempo. El orden en que se encuentran los atributos en la relación no es importante. 3. siendo el rechazo la acción por defecto. sin embargo y por razones ajenas al modelo. La creación de las restricciones semánticas se debe poder hacer de forma simple y precisa así como permitir cierta flexibilidad en el manejo de la condición y la acción de la restricción. donde el evento puede ser una inserción. NOTAS Universitarias | 41 . En el modelo relacional una restricción de integridad es de tipo evento condición acción.2.2 Clasificación de las restricciones según los elementos a los que afecta la condición La forma más simple de clasificar las restricciones semánticas es de acuerdo con el o los elementos que afectan la condición de la restricción. Cada atributo de la relación solo puede tomar un solo valor en un momento determinado del dominio al cual está asociado.3. En toda entidad debe existir un atributo o conjunto de atributos que son la clave primaria. Por ejemplo si se desea insertar un ejemplar (registro) sobre una relación (tabla) cuyo valor en la clave primaria ya se encuentre en la relación. Esto se conoce en teoría de la normalización como la primera forma normal.2 Restricciones del modelo relacional Las siguientes son las restricciones inherentes (las que son propias del modelo) del modelo relacional: No pueden existir dos tuplas (registros) idénticos en una relación. 3.1 Restricciones semánticas Las restricciones semánticas deben reflejar las reglas del mundo real. se recomienda esquematizar los atributos “más relevantes” al inicio de la relación. es decir que por ejemplo al atributo GÉNERO solo puede ser M ó F. así que toda entidad y / o interrelación creada en el modelo E/R debe representarse a través de este objeto. EL orden en que se encuentran las tuplas en la relación no es importante. Esto no implica que a la hora de realizar una consulta el orden no sea importante o no se pueda mostrar el resultado de forma ordenada. Es labor del motor de base de datos permitir la definición de las restricciones semánticas así como validar la consistencia de estas reglas al momento de definirlas como al momento de aplicarlas.2. la condición es un predicado que se aplica sobre el conjunto de datos sobre los cuales se dispara el evento y la acción es la respuesta al evento y condición anteriores. actualización o eliminación.

NOTAS Universitarias | 42 . o Restricción de verificación (CHECK): indica que un atributo debe cumplir con determinado predicado. Que afectan los atributos de más de una relación (integridad referencial): también llamada clave o llave foránea. unicidad. la acción es de rechazo de la inserción o actualización. este o estos atributos son llamados claves candidatas y entre las claves candidatas y por razones ajenas al modelo relacional se elije una y se le denomina llave primaria. o Restricción de llave alterna: todas las claves candidatas que no son llaves primarias se denominan claves o llaves alternas. la cual indica que el o los atributos que componen esta clave NO pueden tener valores iguales en dos tuplas o registros de la relación NI ser nulos. se declara al momento de definir la relación y en caso de realizarse una inserción o actualización y no cumplir con el predicado. La forma de implementar las llaves alternas es utilizando la estricción de unicidad junto a la de nulidad. en realidad lo que limita esta restricción es que el atributo no pueda recibir el valor NULL. es decir que sean nulos o NULL. la acción es de rechazo. o Restricción de llave primaria (PK): en una relación pueden existir uno o varios atributos que identifiquen unívocamente a cada ejemplar dentro de la relación. En caso de que se intente insertar o actualizar un registro que viole esta restricción.): es definido en el esquema de relación como S1 =<A.P> donde A es el conjunto de atributos (uno o varios) a los que se aplica la condición y P es un predicado (expresión que retorna un valor booleano). En caso de que se intente insertar o actualizar un registro que viole esta restricción.Que afectan los atributos de una sola relación (clave primaria. Las figuras 35 y 36 muestran el esquema de relación y las relaciones de una llave foránea. La llave foránea asegura la integridad de los datos al validar que los valores de la Relacion1 coincidan con los de la Relacion2 o ser nulos. not null. un ejemplo es: CHECK ESTADO = „AC‟. la acción es de rechazo de la inserción o actualización. etc. esto no indica que puedan no tener valor. Entre este tipo de restricciones se encuentran: o Restricción de Unicidad (UNIQUE): indica que un atributo (o conjunto de atributos) no puede tener los mismos valores en dos tuplas o registros. La Relacion2 se denomina la relación referenciada y la Relacion1 la relación que referencia. o Restricción de nulidad (NOT NULL): indica que un atributo no puede ser vacio. en una relación llamada Relacion1 existe uno o varios atributos (conjunto de atributos) cuyos valores coinciden con los valores de otro u otros atributos en la Relacion2 (Relacion1 y Relacion2 pueden ser la misma) o ser nulos.

PROGRAMACADEMICO CODPROGACA 22 23 25 NOMBPROGACAD SISTEMAS INSDUSTRIAL CIVIL FECHCREPROGACA 01/01/1986 01/01/1987 01/01/1985 ESTAPROGACA AC AC AC FKPROGMAT MATERIA CODMATE 2054 2048 2041 2078 CODPROGACAD 22 23 22 NOMMATE Lógica Procesos Estructuras de Datos Comunicación de datos INTHORMATE 4 4 6 4 ESTAMATE AC AC AC IN Figura 36. Relaciones con llavea foránea.. Figura 35.. 23 o 25 (que son los registros de la relación PROGRAMACADEMICO) no podría existir en la relación MATERIA. <M> <M> <M> <M> FKPROGMAT MATERIA CODMATE <pi> Number <M> CODPROGACAD Number NOMMATE Variable characters (50) INTHORMATE Number ESTAMATE Variable characters (2) PKMATERIA <pi> .. NOTAS Universitarias | 43 . En el ejemplo anterior un nuevo registro cuyo código de programa CODPROGACA sea diferente a los valores 22.PROGRAMAACADEMICO CODPROGACA <pi> Number NOMBRPROGACA Variable characters (50) FECHREGCALPRGACA Date ESTAPROGACA Variable characters (2) PKPROGRAMAACADEMICO <pi> .. Definidas sobre las tuplas de una relación (cardinalidad): el número de tuplas o registros que puede tener una relación se puede gestionar a través de una restricción de cardinalidad. Un ejemplo de esta restricción es limitar el número de alumnos matriculados en un curso. Esquema de Relación que utiliza una llave foránea. sin embargo al implementar esta restricción es necesario el uso de disparadores o procedimientos almacenados en el motor de base de datos.

.. INSCRIPCION FKCURINSC CONSINSC <pi> Number <M> FECHINSC Date <M> ESTAINSC Variable characters (2) <M> PKINSCRIPCION <pi> .Sobre los dominios (verificación sobre los valores de un dominio): todos los atributos de una relación deben ser definidos sobre un dominio y deben contener valores dentro del conjunto del dominio específico. <M> <M> <M> <M> Figura 37... <M> <M> <M> <M> CODICURS <pi> Number NOMBCURS Variable characters (50) INHOCURS Number CREDCURS Number ESTACURS Variable characters (2) PKCURSO <pi> . FKALUMINC Figura 38.1 Paso de una asociación muchos a muchos entre dos entidades Cuando se posee en diagrama de base de datos dos entidades relacionadas con cardinalidad muchos a muchos. Tres entidades con relaciones uno a muchos NOTAS Universitarias | 44 . <M> <M> <M> <M> ALUMNO relacionMuchosAMuchos CODALUMN <pi> Number NOMBALUM Variable characters (50) GENEALUM Variable characters (1) TELEALUM Variable characters (15) PKALUMNO <pi> .. la mejor opción es “romper” esa relación con una te rcera entidad. A continuación se describirán diferentes alternativas y técnicas para realizar esta transformación.. 3.3... Las figuras 37 y 38 muestran un ejemplo de este proceso.. 3.. Dos entidades relacionadas con cardinalidad muchos a muchos CURSO ALUMNO <M> <M> <M> <M> CODALUMN <pi> Number NOMBALUM Variable characters (50) GENEALUM Variable characters (1) TELEALUM Variable characters (15) PKALUMNO <pi> . CURSO CODICURS <pi> Number NOMBCURS Variable characters (50) INHOCURS Number CREDCURS Number ESTACURS Variable characters (2) PKCURSO <pi> . es usual que nuevos atributos aparezcan en la tercera entidad.3 Paso del modelo E/R al relacional El paso de un diseño realizado utilizando el modelo entidad interrelación al modelo relación (que es el que utiliza la gran mayoría de motores comerciales de bases de datos) es relativamente simple si se siguen una serie de patrones y recomendaciones.

FKDPTOEMPLE NUMIDENEMPL <pi> Number <M> TIPIDENEMPL <pi> Variable characters (3) <M> NOMBEMPL Variable characters (50) <M> TELEEMPL Variable characters (15) PKEMPLEADO <pi> .2 Asociaciones uno a uno Las asociaciones uno a uno entre dos entidades (o relaciones en el modelo relacional) son muy sospechosas.3. FKCLIENTARJ TARJETAPUNTOS CODITARJ <pi> Number <M> FECHCTARJ Date <M> PUNTTARJ Number <M> PKTARJETAPUNTOS <pi> .3 Paso de Herencia a relaciones uno a muchos La asociación de herencia tan común en el modelo E/R (Figura 40) no existe en el modelo relacional y aunque existen muchas técnicas para transformar esta asociación. se implementa una restricción de unicidad y de no nulidad (esta última según sea necesaria). Asociación de herencia entre empleado con docente y servicios generales NOTAS Universitarias | 45 .. sin embargo son útiles y hasta necesarias en algunos casos...3. CLIENTE CODICLIEN <pi> Number <M> NOMCLIEN Variable characters (50) <M> ESTACLIEN Variable characters (2) <M> PKCLIENTE <pi> . Figura 39. EMPLEADO DEPARTAMENTO CODIDPTO <pi> Number <M> NOMDPTO Variable characters (50) <M> PKDEPARTAMENTO <pi> .3. ES UN DOCENTE TIPODOCTE Variable characters (50) CARSEMDCTE Number SERVICIOSGENERALES NUMTURSEM Number Figura 40. La forma de implementar estas asociaciones es creando una llave foránea entre las dos entidades y adicionalmente sobre los atributos que tiene asociada la llave foránea de la tabla (relación) que referencia. La Figura 39 muestra un ejemplo de una relación uno a uno.. Dos entidades relacionadas por una asociación uno a uno 3... a continuación presentamos dos posibles alternativas las cuales se representan en las figuras 41 y 42...

. Asociación entre empleado con docente y servicios generales sin herencia – opción 1 Figura 42. <M> <M> <M> <M> FKDPTOSERVGEN Figura 41.... Asociación entre empleado con docente y servicios generales sin herencia – opción 2 NOTAS Universitarias | 46 . SERVICIOSGENERALES NUMIDENEMPLE <pi> Number TIPIDENEMPLE <pi> Variable characters (3) NOMBEMPL Variable characters (50) TELEEMPL Variable characters (15) NUMTURSEM Number PKSERVICIOSGENERALES <pi> .DOCENTE FKDPTODOCENTE NUMIDENEMPL <pi> Number <M> TIPIDENEMPL <pi> Variable characters (3) <M> NOMBEMPL Variable characters (50) <M> TELEEMPL Variable characters (15) TIPODOCTE Variable characters (50) CARSEMDCTE Number PKDOCENTE <pi> .. DEPARTAMENTO CODIDPTO <pi> Number <M> NOMDPTO Variable characters (50) <M> PKDEPARTAMENTO <pi> ..

3. llevar control sobre cada vehículo vendido es completamente necesario. Asociación recursiva 3. FKJEFE EMPLEADO CODEMPL <pi> Number NUMDOCEMPL Number TIPODOCEMPL Variable characters (2) NOMEMPL Variable characters (50) GENEEMPL Variable characters (1) PKEMPLEADO <pi> . Por el contrario. es decir a la misma tabla. etc. por ejemplo como se puede apreciar en la Figura 43 existe una relación de tipo jefe – empleado. la diferencia radica en el control sobre la información del producto a vender. y específicamente a dos tipos muy diferentes de productos.3.. Aunque el proceso de venta es prácticamente el mismo.3. el primero para la venta de productos en volumen (como los comestibles) y el segundo para artículos como vehículos. frijol. por un lado encontramos productos comestibles como arroz.5 Ejemplo de manejo de productos Un ejemplo práctico interesante de analizar es el de empresas dedicadas a la venta de productos.4 Asociaciones recursivas (a la misma tabla) La relación recursiva. pero el jefe es a su vez un empleado. así que se considera un ejemplar dentro de la tabla. <M> <M> <M> <M> Figura 43.. llevar control sobre todas y cada una de las bolsas de arroz vendidas probablemente sea ineficiente e innecesaria. Por otro lado tenemos productos como un vehículo o un computador. se utiliza cuando se desea modelar una relación entre ejemplares de la misma entidad. Las figuras 44 y 45 representan dos posibles diseños para la base de datos (simplificada) del proceso de venta. NOTAS Universitarias | 47 .

.... Diagrama relacional para venta de productos con control individual 3. <M> <M> <M> <M> FKPRODDETVENT Figura 44.. Diseñar una base de datos relacional para el problema informático de una biblioteca. Figura 45.. <M> <M> <M> <M> DETALLEVENTA FKPRODDETVENT NUMITEM <pi> Number <M> ESTADEVE Variable characters (2) <M> VALORVENT Number (12. FKTIPPRODPROD VENTA CODIVENT <pi> Number <M> FECHVENT Date <M> ESTAVENT Variable characters (2) <M> PKVENTA <pi> . FKVENTDETVENT PRODUCTO CODPROD <pi> Number PLACA Variable characters (7) VALOR Number (12.... En clase se plantea un dominio de una biblioteca ficticia y a partir de este dominio se genera el diseño de la base de datos...2) ESTAPROD Variable characters (2) PKPRODUCTO <pi> . FKVENTDETVENT PRODUCTO CODPROD <pi> Number CANTPROD Number (7) VALOR Number (12. NOTAS Universitarias | 48 ...3.2) ESTADEVE Variable characters (2) PKDETALLEVENTA <pi> . <M> <M> <M> <M> DETALLEVENTA NUMITEM <pi> Number CANTDETVEN Number VALORVENT Number (12..2) <M> PKDETALLEVENTA <pi> .4 Ejercicios Crear un ejemplo de los datos (tablas en una hoja de cálculo) para cada uno de los pasos del numeral 3. FKTIPPRODPROD VENTA CODIVENT <pi> Number <M> FECHVENT Date <M> ESTAVENT Variable characters (2) <M> PKVENTA <pi> .2) ESTAPROD Variable characters (2) PKPRODUCTO <pi> .. Diagrama relacional para venta de productos sin control individual TIPOPROCUTO CODITPPROD <pi> Number <M> NOMTIPROD Variable characters (50) <M> ESTATIPROD Variable characters (2) <M> PKTIPOPROCUTO <pi> .TIPOPROCUTO CODITPPROD <pi> Number <M> NOMTIPROD Variable characters (50) <M> ESTATIPROD Variable characters (2) <M> PKTIPOPROCUTO <pi> . 1. 2..

5. En clase se plantea un dominio de una entidad cadena de supermercados ficticia y a partir de este dominio se genera el diseño de la base de datos. En clase se plantea un dominio de una video tienda ficticia y a partir de este dominio se genera el diseño de la base de datos.3. En clase se plantea un dominio de una entidad bancaria ficticia y a partir de este dominio se genera el diseño de la base de datos. NOTAS Universitarias | 49 . Diseña una base de datos relacional para el problema informático de una entidad bancaria. 4. Diseña una base de datos relacional para el problema informático de una cadena de supermercados. Diseña una base de datos relacional para el problema informático de una video tienda.

NOTAS Universitarias | 50 .

4 Lenguaje de consulta estructurado SQL Existen cinco tipos de instrucciones SQL. que son: DDL (Data Definition language) o o o o o CREATE ALTER RENAME TRUNCATE DROP DML (Data Manipulation Language) o INSERT o UPDATE o DELETE DCL (Data Control Language) o GRANT o REVOKE Transaction Control o o o o COMMIT SAVEPOINT ROLLBACK SELECT Data Retrieval Antes de empezar a trabajar con las instrucciones SQL es necesario conocer otros conceptos que serán utilizados de forma constante en este documento: Operadores: Los operadores aritméticos son: o Multiplicación “*” o División “/” o Adición “+” o Substracción ” -” Los operadores Lógicos son: o o o AND OR NOT Los operadores Relacionales son: o Igual que “=” o Diferente que “<>” o Mayor que “>” o Menor que “<” NOTAS Universitarias | 51 .

donde p es la precisión (rango 1 a 38)y s la escala (rango -84 a 124). BLOB. tipo de dato numérico. tipo de dato fecha. NOMBRE VARCHAR2(100). modificar o eliminar los objetos de la base de datos.o o Mayor o igual que “>=” Menor o igual que “<=” Tipos de Datos en Oracle Los tipos de datos comúnmente utilizados en este documento son: VARCHAR2(n).s). ESTADO VARCHAR2(2)). La forma básica de la instrucción CREATE incluye el nombre de la tabla y la creación de una o más columnas. permite almacenar valores desde enero 1 de 4712 AC hasta diciembre 31 de 9999 DC. 4.1 Instrucciones DDL Las instrucciones DDL (Data Definition Language) son utilizadas para crear. Es importante NOTAS Universitarias | 52 . el tamaño máximo es de 4 GB. DATE. FECHANACIMIENTO DATE.1 Instrucción CREATE La instrucción CREATE puede ser muy compleja o relativamente simple dependiendo de su uso. tipo de dato tipo cadena de caracteres con una longitud máxima de 4000 bytes especificada por el parámetro n. La primera columna llamada CEDULA es de tipo NUMBER. NUMBER(p. La tercera columna es llamada FECHANACIMIENTO y es de tipo DATE lo que significa que puede almacenar una fecha que incluye las horas. minutos y segundos.1. identificadorColumna2 tipoDeDato. En el siguiente ejemplo podemos apreciar la creación de una tabla con cuatro columnas: CREATE TABLE ESTUDIANTE( CEDULA NUMBER. identificadorColumnan tipoDeDato). 4. a continuación veremos varios ejemplos del uso de esta instrucción: CREATE TABLE nombreDeLaTabla( identificadorColumna1 tipoDeDato. por último se declara la columna ESTADO de tipo VARCHAR2 con una longitud de dos caracteres. tipo de dato “Binary Large Object” para el almacenamiento de archivos en la base de datos. La segunda columna se denomina NOMBRE y es de tipo VARCHAR2 con una tamaño de 100 caracteres.

ESTADO VARCHAR2(2). segundos y milisegundos y no necesita de ningún parámetro adicional. mes. el tipo DATE por defecto permite almacenar una fecha compuesta del día. FECHANACIMIENTO DATE. NOMBRE VARCHAR2(100). CREATE TABLE ESTUDIANTE( CEDULA NUMBER. Validación booleana (Check): Es una restricción aplicable al momento de insertar o actualizar registros en la tabla y dependiendo del resultado de la expresión (el resultado es booleano es decir verdadero o falso) se puede efectuar la actualización o inserción según sea el caso. CONSTRAINT PKESTUDIANTE PRIMARY KEY (CEDULA) ). año. NOMBRE VARCHAR2(100). En el siguiente ejemplo podemos observar la creación de una tabla con los mismo atributos que el ejemplo anterior y con la creación de la llave primaria para el atributo CEDULA de dos formas posibles. ESTADO VARCHAR2(2) ). Unicidad (Unique): Indica que la columna o columnas “Unique” deben poseer valores únicos aunque pueden contener valores nulos. RESTRICCIONES (CONSTRAINTS) Existen cinco restricciones (constraints) principales en SQL. minutos. en el caso de tipo VARCHAR2 es necesario especificar su longitud máxima. en donde una o más columnas de la tabla B referencian al mismo número de columnas de la tabla A y los valores de la o las columnas de la tabla que referencia (B) deben coincidir con los valores de la o las columnas de la tabla que es referenciada (A). NOTAS Universitarias | 53 . ellas son: Llave Primaria (Primary Key): La llave primaria es una restricción que afecta a una o varias columnas e implica que los valores de la o las columnas no pueden ser nulos ni tener valores repetidos. Sin embargo. Restricción de No Nulidad (Not Null): La restricción de NO nulidad indica que los valores de una columna no pueden ser nulos. si se desea tener control sobre estos parámetros es necesario especificarlos. CREATE TABLE ESTUDIANTE( CEDULA NUMBER PRIMARY KEY. Llave Foránea (Foreign Key): La llave foránea es una restricción entre dos tablas A y B (la tabla B puede ser la misma A. Este concepto será explicado con detalle más adelante). El motor asigna un valor por defecto a estos parámetros. FECHANACIMIENTO DATE.resaltar cómo el tipo de datos NUMBER puede ser utilizado si ninguna especificación de su precisión y escala.

NOMBRE VARCHAR2(100). TIPODOC VARCHAR2(2) PRIMARY KEY.TIPODIC). TIPODOC VARCHAR2(2). el “Unique” y el “Not Null”: CREATE TABLE ESTUDIANTE( NUMDOC NUMBER. FECHANACIMIENTO DATE. es conveniente utilizar la segunda forma. aunque esta llave primaria este compuesta por las columnas NUMDOC Y TIPODOC. CELULAR VARCHAR2(20). como se puede observar en el siguiente ejemplo: CREATE TABLE ESTUDIANTE( NUMDOC NUMBER PRIMARY KEY. FECHANACIMIENTO DATE. CODIGO NUMBER NOT NULL. La segunda muestra la forma “larga” de hacerlo. CREATE TABLE ESTUDIANTE( NUMDOC NUMBER. ESTADO VARCHAR2(2). CONSTRAINT ESTUCODIUNIQUE UNIQUE(CODIGO) ). se podría NOTAS Universitarias | 54 . La forma general de crear una restricción tipo llave primaria dentro de la declaración de la tabla es: CONSTRAINT NombreLlavePrimaria PRIMARY KEY (columna(s)) En el siguiente ejemplo podemos observar como en la declaración de la tabla se adicionan dos nuevos tipos de restricciones. ESTADO VARCHAR2(2) NOT NULL. CONSTRAINT PKESTUDIANTE KEY (NUMDOC.El Primer ejemplo muestra la creación de la tabla utilizando la forma simple de asignar la restricción de llave primaria al atributo CEDULA. NOMBRE VARCHAR2(100) NOT NULL.TIPODIC) ). NOMBRE VARCHAR2(100). Como se puede observar todas las columnas de la tabla a excepción de la columna CELULAR son ahora “Not Null” lo cual indica que no pueden tener valores nulos. CONSTRAINT PKESTUDIANTE PRIMARY KEY (NUMDOC. como veremos en los siguientes apartados. PRIMARY En el ejemplo anterior se puede observar cómo en la tabla ESTUDIANTE (utilizando cualquiera de los dos métodos). FECHANACIMIENTO DATE NOT NULL. Existe la posibilidad de crear una llave primaria compuesta de dos o más atributos. se declara una llave primaria (solo puede existir una sola llave primaria por tabla). ESTADO VARCHAR2(2) ). TIPODOC VARCHAR2(2).

es fundamental tener claro donde se crea. NOMBPROGACA VARCHAR2(50) NOT NULL. FECHREGCALPRGACA DATE NOT NULL. automáticamente se añade la restricción de “Not Null” a estas columnas... DIRECCIONALUM VARCHAR2 (50). CONSTRAINT PKPROGRAMAACADEMICO PRIMARY KEY (CODPROGACA) ). PROGRAMAACADEMICO CODPROGACA <pi> Number NOMBRPROGACA Variable characters (50) FECHREGCALPRGACA Date ESTAPROGACA Variable characters (2) PKPROGRAMAACADEMICO <pi> . <M> <M> <M> <M> FKPROGACAALUM ALUMNO CODIGOALUM <pi> Number NOMBREALUM Variable characters (50) DIRECCIONALUM Variable characters (50) GENEROALUM Variable characters (1) ESTADOALUM Variable characters (2) CPALUMNO <pi> . REFERENCES Universitarias . CODPROGACA NUMBER NOT NULL. ESTAPROGACA VARCHAR2(2) NOT NULL. CONSTRAINT CPALUMNO PRIMARY KEY (CODIGOALUM). NOMBREALUM VARCHAR2 (50) NOT NULL. GENEROALUM VARCHAR2 (1) NOT NULL. Sin embargo.. como se puede observar la terminación en tres líneas llega a la tabla que referencia. la Figura 46 muestra a la izquierda la tabla que es referenciada y a la derecha la tabla que referencia. CONSTRAINT FKPROGACAALUM FOREIGN KEY (CODPROGACA) PROGRAMAACADEMICO(CODPROGACA) NOTAS | 55 ). <M> <M> <M> <M> Figura 46. La forma simple de crear restricciones “Not Null” a una columna en una tabla es simplemente agregando la frase “NOT NULL” después del tipo de datos de la columna.. La restricción “Unique” afecta a la columna CODIGO impidiendo que en esta columna existan valores duplicados. La forma general de crear una restricción tipo “Unique” dentro de la declaración de la tabla es: CONSTRAINT NombreRestriccionUnique UNIQUE (columna(s)) Las llaves foráneas se crean de una forma similar al resto de restricciones. CREATE TABLE PROGRAMAACADEMICO( CODPROGACA NUMBER. ESTADOALUM VARCHAR2 (2) NOT NULL. CREATE TABLE ALUMNO( CODIGOALUM NUMBER.considerar que las columnas NUMDOC y TIPODOC pueden recibir valores nulos (su característica por defecto es permitir valores nulos). Tabla que referenciada y tabla que referencia. sin embargo al ser llave primaria. La llave foránea se crea en la tabla que referencia y NO en la tabla referenciada.

Muchas veces se utiliza un atributo auto numerado en una tabla. Para adicionar un atributo la instrucción genérica del ALTER es: ALTER TABLE nombreDeLaTabla ADD (nombreAtributo tipoDeDato). La forma de crear una secuencia es la siguiente: CREATE SEQUENCE nombreDeLaSecuencia START WITH valorInicial. Una secuencia es un objeto de la base de datos que posee un valor numérico y cada vez que realizamos una inserción en una tabla y utilizamos esta secuencia. se incrementa o decrementa (según sea el caso) automáticamente.1. 4. es decir un atributo que toma un valor automáticamente. la forma de implementar ésto es atreves de una secuencia. En el siguiente ejemplo se crea una secuencia llamada secEmpleado que inicia su valor en 1000: CREATE SEQUENCE secEmpleado START WITH 1000. como adicionar un atributo. modificar el tamaño o tipo de un atributo existente o eliminar un atributo. en el caso del motor de base de datos Oracle. es importante resaltar nuevamente como la llave foránea se crea en la tabla que referencia a través de la instrucción: nombrellaveForanea FOREIGN KEY (atributoAsociado) REFERENCES TablaReferenciada(atributoReferenciado) CONSTRAINT Otro objeto de la base de datos que se puede crear utilizando la instrucción CREATE es un índice (estructura que hace más eficiente la localización de los datos en las tablas) y la instrucción general de construcción es: CREATE INDEX nombreDelIndice ON nombreDelaTabla (atributo(s) de la tabla) El siguiente ejemplo muestra cómo crear un índice llamado indiceapellido sobre el atributo apellido de la tabla empleado: CREATE INDEX indiceapellido ON EMPLEADO(APELLIDO).2 Instrucción ALTER La instrucción ALTER es utilizada cuando se desea realizar una modificación estructural de una tabla de la base de datos.En el ejemplo anterior se puede observar la codificación del diagrama de la Figura 43. NOTAS Universitarias | 56 .

NOTAS Universitarias | 57 . El siguiente ejemplo elimina el atributo llamado telCelular de la tabla EMPLEADO: ALTER TABLE EMPLEADO DROP COLUMN telCelular. Solo se puede asignar la restricción NOT NULL al atributo si éste no posee valores NULOS. Solo se puede cambiar el tipo de dato del atributo si el atributo no tiene valores en la tabla. El nombreAtributo es un atributo ya existente y el tipoDeDato es el nuevo tipo de dato del atributo o el mismo con diferente longitud. 4. la instrucción es: RENAME nombreActual TO nuevoNombre. Para modificar un atributo existente dentro de una tabla se utiliza la instrucción: ALTER TABLE nombreDeLaTabla MODIFY (nombreAtributo tipoDeDato). Para eliminar un atributo de la tabla se utiliza la instrucción: ALTER TABLE nombreDeLaTabla DROP COLUMN nombreAtributo.3 Instrucción RENAME La instrucción RENAME renombra una tabla a un nuevo nombre.En el siguiente ejemplo se adiciona un atributo llamado telCelular de tipo varchar2 a la tabla EMPLEADO: ALTER TABLE EMPLEADO ADD (telCelular varchar2(12)). las siguientes reglas deben tenerse en cuenta al momento de realizar la modificación: Solo se puede decrementar el tamaño de un atributo si la tabla no tiene valores en ese atributo. RENAME ESTUDIANTE TO ALUMNO.1. En el siguiente ejemplo se renombra la tabla ESTUDIANTE por ALUMNO.

2 Instrucciones DML Las instrucciones DML (Data Manipulation Language) se encargan de manipular los datos que se encuentran en las tablas de la Base de Datos.. 4.1. valor2. 4. el primero de tipo NOTAS Universitarias | 58 . 4. atributo2. INSERT INTO La diferencia entre las dos versiones radica en que en la segunda especificamos el orden de los atributos. La clausula CASCADE CONSTRINTS se utiliza cuando hay llaves foráneas relacionadas con la tabla y se deben borrar. La instrucción genérica es: TRUNCATE TABLE nombreDeLaTable. nombreDeLaTabla(atributo1.4 Instrucción TRUNCATE La instrucción TRUNCATE se utiliza cuando se desea eliminar todos los registros de una tabla sin eliminar la tabla en sí. valor_n). DROP TABLE EMPLEADO CASCADE CONSTRINTS.2. UPDATE y el DELETE.5 Instrucción DROP La instrucción DROP es utilizada para eliminar objetos de la base de datos como las tablas. DROP TABLE nombreDeLaTabla. las tres instrucciones clave son el INSERT. valor2. la siguiente instrucción y el ejemplo a continuación demuestran el uso de la instrucción DROP. mientras que en la primera se asume el orden de los atributos que en este momento posee la tabla. las cuales son: INSERT INTO nombreDeLaTabla VALUES(valor1. atributon) VALUES(valor1.4.1. es mucho más eficiente que la instrucción DELETE (ver más adelante) y no genera ROLLBACK. valor_n). DROP TABLE nombreDeLaTabla CASCADE CONSTRINTS. En los siguientes ejemplos se muestra el uso de la instrucción INSERT en la tabla CURSO. DROP TABLE EMPLEADO. la cual tiene cuatro atributos.1 Instrucción INSERT La instrucción INSERT es utilizada para insertar nuevos registros en las tablas. tiene dos posibles versiones de acuerdo a la forma de utilización.

4. ESTACUR. DELETE FROM nombreDeLaTabla. NULL. FECHCUR) VALUES („CALCULO I‟. el siguiente de tupo fecha y el último de tipo cadena pero que puede ser NULO. „01/01/2011‟). El tipo fecha se puede ingresar como una cadena de caracteres.numérico. 4. INSERT INTO CURSO (NOMBCUR.2. „CALCULO I‟. pueden ser expresiones booleanas que incluyan operadores lógicos y relacionales.3 Instrucción DELETE La instrucción DELETE se utiliza para eliminar registros de una tabla. Donde atributoX es el atributo de la tabla al que queremos cambiar su valor por el valorX y atributoY es el atributo sobre el cual se evaluara la condición para cambiar el valor en ese registro siempre y cuando sea igual al valorY. DELETE FROM nombreDeLaTabla WHERE condición. ya que el motor realiza la transformación al tipo de dato adecuado siempre y cuando el formato de la fecha coincida con el formato establecido en el motor de la base de datos. NULL).2 Instrucción UPDATE La instrucción UPDATE es utilizada con el fin de actualizar uno o varios datos existentes en una tabla. el segundo de tipo cadena de caracteres. „01/01/2011‟. 1102.2. La clausula WHERE puede ser más compleja que la comparación entre un atributo y un valor. El siguiente ejemplo ilustra el uso de la instrucción UPDATE para actualizar el estado del curso a „AC‟ siempre y cuando el código del curso sea 1102. INSERT INTO CURSO VALUES (1102. La forma general de utilizar la instrucción es: UPDATE nombreDeLaTabla SET atributoX = valorX WHERE atributoY = valorY. NOTAS Universitarias | 59 . CODCUR. posee dos versiones tanto para eliminar todos los registros de la tabla como para eliminar solo alguno(s). UPDATE CURSO SET ESTACUR = ‘AC’ WHERE CODICUR = 1102.

DELETE FROM CURSO WHERE ESTACUR = ‘AC’. en el siguiente ejemplo se otorga el rol de DBA (Data Base Administrator) al usuario ESTUDIANTE.3. es muy común que sea el administrador de la base de datos quien se encargue de esta tarea. la estructura general de la instrucción es: REVOKE nombreProvilegio FROM nombreUsuario. etc sobre los datos.3 Instrucciones DCL Las instrucciones DCL (Data Control Language) son utilizadas para dar privilegios a los usuarios de la base de datos.1 Instrucción GRANT La instrucción GRANT otorga privilegios a los usuarios. Para otorgar y revocar privilegios se debe ser un usuario de la base de datos con el privilegio de otorgar / revocar privilegios. GRANT DBA TO ESTUDIANTE. DELETE FROM CURSO. actualizar. es decir dar permisos como poder insertar. Donde nombreProvilegio es el nombre del privilegio que se quiere otorgar y nombreUsuario es el usuario al cual se le quiere otorgar el privilegio.2 Instrucción REVOKE La instrucción REVOKE a diferencia de GRANT. Es válido en lugar de otorgar un privilegio. otorgar un rol (conjunto de privilegios). El siguiente ejemplo revoca los privilegios (rol en este caso) de DBA del usuario ESTUDIANTE. 4. NOTAS Universitarias | 60 . 4. la estructura general de la instrucción es: GRANT nombreProvilegio TO nombreUsuario. REVOKE DBA FROM ESTUDIANTE. 4.3. remueve privilegios de un usuario.En los siguientes ejemplos se eliminan todos los registros (primer ejemplo) de la tabla y solo los que cumplan con la condición de tener estado „AC‟ (segundo ejemplo).

SAVEPOINT SAV2. Esta instrucción es usada comúnmente en conjunto a la instrucción ROLLBACK la cual se especifica a continuación. es común utilizarlo cuando queremos realizar diferentes transacciones por lotes sin mezclarlas ni confirmar por cada lote o al terminar. 4.‟AC‟). En el siguiente ejemplo se realizan 5 transacciones y dos SAVEPOINT.2 Instrucción SAVEPOINT La instrucción SAVEPOINT permite crear un “punto de salvado” entre transacciones.‟CARLOS‟.4. Cuando varios usuarios de forma simultánea acceden a la base de datos.‟AC‟).LUIS. la forma de utilizarlo es simplemente digitando el comando en la consola de la base de datos.4 Instrucciones de Control de Transacciones Las instrucciones de control de transacciones permiten confirmar una transacción (o conjunto de transacciones) en la base de datos como un INSERT. 4. Cuando se realiza una instrucción DDL se hace implícitamente un COMMIT. esta memoria es temporal mientras dura la sesión del usuario y permite mantener separadas las transacciones de diferentes usuarios. INSERT INTO EMPLEADO VALUES(5.3 Instrucción ROLLBACK La instrucción ROLLBACK es utilizada para “deshacer” las transacciones realizadas hasta el último punto de confirmación (COMMIT). COMMIT.‟AC‟). INSERT INTO EMPLEADO VALUES(3. 4.‟ANGELA‟.‟PILAR‟. SAVEPOINT SAV1. sin embargo cuando un usuario desee confirmar o deshacer las transacciones realizadas tiene que utilizar un comando especifico. el motor gestiona una parte de la memoria para las transacciones que realiza cada usuario. INSERT INTO EMPLEADO VALUES(2.4. La instrucción general es: SAVEPOINT nombreDelSavePoint.4. UPDATE ó DELETE. en la segunda se NOTAS Universitarias | 61 .4. INSERT INTO EMPLEADO VALUES(4.1 Instrucción COMMIT La instrucción COMMIT permite confirmar el conjunto de transacciones realizadas por un usuario desde la última confirmación.‟ANDRES‟.‟AC‟).‟AC‟). esta instrucción tiene dos posibles versiones. en la primera simplemente se utiliza ROLLBACK hasta la última confirmación. INSERT INTO EMPLEADO VALUES(1.

se debe utilizar la clausula WHERE. Esta consulta mostraría todos los registros de la tabla CURSO. columnaN FROM nombreDelaTabla. podemos utilizar la siguiente instrucción: SELECT CODICUR.1 Instrucción SELECT La instrucción SELECT se compone de varias partes. La expresión asociada a la clausula WHERE debe arrojar un resultado booleano y en esta expresión se pueden utilizar los operadores aritméticos. La instrucción general de consulta simple es: SELECT columna1. dos obligatorias y las demás opcionales. NOMBCUR FROM CURSO. Por ejemplo si queremos mostrar las columnas CODICUR y NOMBCUR de la tabla CURSO. columna2.5 Instrucciones de recuperación de datos La instrucción de recuperación de datos SELECT permite mostrar al usuario los datos almacenados en las tablas de la base de datos. ROLLBACK nombreDelSavePoint. pero limitando el numero de registros solo a los cursos que tengan estado ‟AC‟. lógicos y relacionales que NOTAS Universitarias | 62 . Las instrucciones genéricas de ROLLBACK son las siguientes: ROLLBACK. todos los SAVEPOINT creados son eliminados automáticamente. NOMBCUR FROM CURSO WHERE ESTACUR = ‘AC’. etc.deshacen las transacciones hasta el punto de salvado que se desee. específicamente en las columnas CODICUR. 4. Si se realiza un ROLLBACK hasta un SAVEPOINT. SELECT CODICUR. 4. si se desea limitar el número de registros. columna2. Donde columna1. éste debe haberse creado con anterioridad. Al realizarse un ROLLBACK.5. Son los nombres de las columnas que queremos mostrar y el nombreDeLaTabla es la tabla de donde se encuentran los datos que queremos mostrar. NOMBCUR. En el siguiente ejemplo se muestra como realizar la misma consulta del ejemplo anterior.

Codificar la base de datos del punto anterior en por lo menos tres motores diferentes de base de datos. FILE = „…‟ es la ruta donde se encuentra el archivo con el backup. 1. como la base de datos DEMO. 4. En general la estructura de la instrucción SELECT con condición es: SELECT columna1. es el usuario de donde se realizo el backup. Para realizar la exportación. 4. FROMUSER= DEMO.1. columna2.exe ej: C:\Oracle\DataBase\product\11. 4. columnaN FROM nombreDelaTabla WHERE expresionDeCondicion.dmp' Donde system/Oracle es la pareja nombre de usuario / contraseña que posee privilegios de importación. específicamente a la carpeta BIN y el programa IMP. Codificar la base de datos basada en el diseño creado en el capitulo anterior. Utilizar el comando EXP para exportar una base de datos. NOTAS Universitarias | 63 . Investigar y realizar 5 consultas de tipo join a la base de datos DEMO. 5. Abrir una ventana de comandos y dirigirse al directorio donde fue instalado Oracle. 2. TOUSER=CURSO. es necesario seguir los siguientes pasos: Debe existir un usuario a donde importar como "seminario" en este caso. 3. Investigar sobre diferentes opciones adicionales a las instrucciones SQL de este capítulo. pero en lugar de utilizar el comando IMP.0\db_2\BIN 2.se consideren útiles para la condición. es el usuario donde quedara restablecido el backup. Digitar en la ventana de comandos: IMP system/oracle FROMUSER=DEMO TOUSER=SEMINARIO FILE='G:\backup\Semestre A de 2010\Seminarios\BASE DE DATOS DEMO\backcal.7 Ejercicios 1. se realizan los pasos anteriores. Realizar 5 consultas simples a la base de datos DEMO. se utiliza el comando EXP. es decir el respaldo de la base de datos. 6.6 Proceso de respaldo y recuperación Para realizar el proceso de importación de una base de datos ejemplo en el motor Oracle.

edu. Cibergrafía http://es. Ramez y Navathe. España. 1997.wikipedia. Sistemas de bases de datos. consultado: 2011) http://ora.shtml (Herramientas CASE para bases de datos. 1999. Connolly. Elmasri. 5 ed.php (Sistema gestor de base de datos. Sistemas de bases de datos : Conceptos gundamentales. 2 ed. Osborne.alegsa. http://psoug.u440. España.html consultado: 2011) (Instrucciones Transaction Control. Fundamentos de bases de datos. Alfaomega. consultado: 2011) http://www3.u440.monografias. Carolyn.html (Instrucciones Data Retrieval.ar/Dic/sgbase de datos.org/reference/dcl. Scott.com/trabajos24/herramientas-case/herramientas-case. Estados Unidos de America. consultado: 2011) http://ist. Urman. Pearson.com.org/wiki/Base_de_datos (Definicion de base de datos.Bibliografía De Miguel.html (Instrucciones DCL.uji. Adoración. 953 p. 2005. 549 p. consultado: 2011) http://www. 778 p. Piattini. Abraham. 2006. 1320 p.marshall.html consultado: 2011) (Modelo Entidad / Interrelación.es/~mmarques/f47/apun/node83. Oracle 8 : Programación PL/SQL.com/dml/ (Instrucciones DML.ec/analisis/El%20modelo%20relacional. Esperanza. España. consultado: 2011) NOTAS Universitarias | 64 .edu/ist480adbp/plsql_trnctl.uazuay. Thomas y Begg. Diseño de Bases de Datos Relacionales.com/ddl/ (Instrucciones DDL. 2000. Henry y Sudarshan. 4 ed. España. consultado: 2011) www. McGraw-Hill. http://www. consultado: 2011) http://psoug.org/reference/select. 887 p. Shamkant. Silberschatz.pdf (EL modelo relacional. Addison Wesley. consultado: 2011) http://ora. Korth. Mario y Marcos.

You're Reading a Free Preview

Descarga
scribd
/*********** DO NOT ALTER ANYTHING BELOW THIS LINE ! ************/ var s_code=s.t();if(s_code)document.write(s_code)//-->