Está en la página 1de 64

Universidad de Ibagu Facultad de Ingeniera Programa de Ingeniera de Sistemas

Diseo de Base de Datos Carlos Andrs Lugo Gonzlez

Febrero 2011

NOTAS Universitarias | 1

Notas Universitarias Diseo de Bases de Datos Facultad de Ingeniera Programa de Ingeniera de Sistemas Universidad de Ibagu Ibagu, Colombia. Febrero de 2011

ISSN 2216-0302

Presidente del Consejo Superior Eduardo Aldana Valds Rector Alfonso Reyes Alvarado Vicerrectora Nidia Chaparro Cuervo

Universidad de Ibagu, 2011

Carlos Andrs Lugo Gonzlez, 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 autorizacin expresa y por escrito de la Universidad de Ibagu

NOTAS Universitarias | 2

Carlos Andrs Lugo Gonzlez es Ingeniero de Sistemas de la Universidad Distrital Francisco Jos de Caldas. Cuenta con una especializacin en Teleinformtica de la Universidad de Ibagu. Ha participado en encuentros y conferencias como Tendencias en ingeniera de software e inteligencia artificial y Euro American Conference On Telematics and Information Systems. Ha estado vinculado a la Universidad de Ibagu por 11 aos. Es docente de tiempo completo en el rea de Ingeniera de sistemas.

NOTAS Universitarias | 3

NOTAS Universitarias | 4

Contenido
Introduccin

1. Conceptos generales de bases de datos 1.1 Qu es una base de datos? 1.2 Sistema gestor de base de datos 1.3 Actores de la base de datos 1.4 Conceptos bsicos 1.5 Modelo de datos 1.5.1 Caracterstica esttica 1.5.2 Caracterstica dinmica 1.6 Restricciones de integridad 1.6.1 Clasificacin de las restricciones 1.7 Proceso de diseo de una base de datos 2. Modelo entidad / interrelacin 2.1 Elementos del modelo entidad / interrelacin 2.2 Restricciones de integridad 2.3 Elementos de un tipo interrelacin 2.3.1 Dependencia en existencia y en identificacin 2.4 Control de redundancia 2.4.1 Atributos derivados 2.4.2 Interrelaciones redundantes 2.5 Interrelaciones de grado superior a 2 2.6 Restricciones sobre interrelaciones adicionales 2.7 Generalizacin 2.8 Esquematizacin con herramientas CASE 2.9 Ejercicios 3. Modelo de datos relacional 3.1 Intensin y extensin de una relacin 3.2 Restricciones del modelo relacional 3.2.1 Restricciones semnticas 3.2.2 Clasificacin de las restricciones segn los elementos a los que afecta la condicin 3.3 Paso del modelo E/R al relacional 3.3.1 Paso de una asociacin muchos a muchos entre dos entidades

NOTAS Universitarias | 5

3.3.2 3.3.3 3.3.4 3.3.5 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. Lenguaje de consulta estructurado SQL 4.1 Instrucciones DDL 4.1.1 Instruccin CREATE 4.1.2 Instruccin ALTER 4.1.3 Instruccin RENAME 4.1.4 Instruccin TRUNCATE 4.1.5 Instruccin DROP 4.2 Instrucciones DML 4.2.1 Instruccin INSERT 4.2.2 Instruccin UPDATE 4.2.3 Instruccin DELETE 4.3 Instrucciones DCL 4.3.1 Instruccin GRANT 4.3.2 Instruccin REVOKE 4.4 Instrucciones de control de transacciones 4.4.1 Instruccin COMMIT 4.4.2 Instruccin SAVEPOINT 4.4.3 Instruccin ROLLBACK 4.5 Instrucciones de recuperacin de datos 4.5.1 Instruccin SELECT 4.6 Proceso de Respaldo y Recuperacin 4.7 Ejercicios Bibliografa

NOTAS Universitarias | 6

Introduccin
En la actualidad, la gestin de bases de datos es un rea fundamental para el desarrollo profesional del ingeniero de sistemas moderno, debido en gran medida a que todas las organizaciones requieren de almacenar informacin. Cualquier empresa, sin importar su naturaleza, debe gestionar informacin y, ms especficamente almacenarla, con el fin de procesarla y acceder a ella en todo momento y fundamentalmente al tomar las decisiones que permiten cumplir los objetivos. El ingeniero de sistemas actual debe estar en capacidad de disear e implementar una base de datos que cumpla con las caractersticas de eficiencia y eficacia que garanticen el correcto almacenamiento y posterior consulta de la informacin para la cual se crea la base de datos. Este proceso de diseo e implementacin no es tarea fcil y necesita de la experticia y conocimiento que solo la prctica puede ofrecer. Estas Notas Universitarias ofrecen al lector un punto de partida sencillo para iniciar en el proceso de diseo e implementacin de las bases de datos. Brinda los conceptos bsicos necesarios para que, a partir de los diferentes modelos de datos, 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 captulos. El primer captulo se centra en la conceptualizacin inicial de las bases de datos, se presentan conceptos generales y de gran importancia para los posteriores captulos. En el captulo dos se muestra el modelo de datos Entidad Interrelacin, de mucha importancia para el proceso de diseo y muy flexible en trminos de las capacidades que ofrece. En el siguiente captulo se ofrece el modelo de datos relacional, el cual es el ms utilizado actualmente por la mayora de motores de bases de datos comerciales; su correcta comprensin es fundamental para el ingeniero que desee realizar un buen diseo de base de datos. Por ltimo, el captulo cuarto se refiere al lenguaje de consulta unificado SQL, el cual es un lenguaje que permite implementar el diseo creado, utilizando el modelo de datos relacional. Este documento es el resultado del estudio de diferentes autores y de la experiencia en el desarrollo de base de datos reales; muchas de las ilustraciones y referencias estn basadas en el libro Diseo de Bases de Datos Relacionales de los autores Miguel Piatitini y Marcos. A ellos, nuestros ms sinceros agradecimientos y reconocimiento. Esperamos que este documento sea de buen provecho para el potencial lector y satisfaga la sed de conocimientos que lo impulsa a estudiar. El Autor.

NOTAS Universitarias | 7

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: Coleccin organizada de informacin. Conjunto de datos relacionados entre s. Coleccin compartida de datos lgicamente relacionados, junto con una descripcin de estos datos, que estn diseados para satisfacer las necesidades informticas de una organizacin. Cualquiera de las anteriores definiciones es vlida y de acuerdo a la complejidad del sistema de base de datos a desarrollar, podemos aadir nuevas caractersticas a la definicin.

\
Figura 1. Representacin grafica de una base de datos

Algunas caractersticas que deben poseer las bases de datos son: Las BASE DE DATOS representan algn aspecto del mundo real (Minimundo). Una BASE DE DATOS es un conjunto de datos lgicamente coherente con cierto significado inherente. Toda BASE DE DATOS se disea, construye y puebla con datos para un propsito 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 definicin 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 informacin). o Un sistema de integridad de la informacin (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 recuperacin de la informacin (que restaura la base de datos a un estado previo coherente despus de cada fallo hardware o software). o Un sistema de control de redundancia (que reduzca al mnimo la redundancia de datos en la base de datos). Un SGBASE DE DATOS ofrece una representacin conceptual de los datos, es decir que el software gestor de base de datos debe tener la capacidad de plasmar de alguna forma la representacin conceptual de los datos. En trminos informales un modelo de datos es un tipo de abstraccin de los datos con que se obtiene esa representacin 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 trmino la construccin de una base de datos, la separacin de tareas es fundamental en cualquier tipo de proyecto ya que especializa y organiza los procesos dentro del proceso de desarrollo; a continuacin se describen los principales actores dentro del desarrollo y construccin 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 gestin de la base de datos que incluye procesos como el control de la seguridad y la asignacin 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. Diseador de la base de datos: En general existen dos tipos de diseadores de bases de datos; el diseador lgico y el diseador fsico de la base de datos. El diseador lgico se encarga de identificar los objetos de la base de datos como las

NOTAS Universitarias | 10

entidades y sus atributos, las relaciones entre estas y las restricciones que operan sobre los datos. El diseador fsico es el encargado de materializar fsicamente el diseo lgico de la base de datos, utilizando las estructuras ms adecuadas segn el motor de base de datos que se utilice. En trminos generales en diseador lgico se encarga de l que mientras que el diseador fsico se encarga del cmo. Usuario final: Son las personas o sistemas que necesiten tener acceso a la base de datos para consultarla y realizar transacciones, se pueden dividir en 2 grandes tipos: o Avanzado: Estn familiarizados con el diseo de la base de datos y con el motor de base de datos; usualmente utilizan un lenguaje de consulta de alto nivel como SQL para realizar las transacciones a la base de datos. o General: Usualmente no conocen la base datos y utilizan las aplicaciones de usuario para interactuar con sta. Analista de sistemas y desarrolladores de aplicaciones: Determinan los requisitos de los usuarios finales y desarrollan aplicaciones que satisfagan dichos requerimientos, usualmente para este fin utilizan un lenguaje de programacin de propsito general como Java, VB.Net, etc. 1.4 Conceptos bsicos Para continuar es necesario hacer claridad respecto a algunas definiciones utilizadas a lo largo de este documento, entre las que encontramos: Dato: Unidad de informacin mnima, smbolo con significado limitado. Informacin: Conjunto organizado de datos interpretados con mayor significado que los datos. Modelar: Consiste en definir un mundo abstracto y terico tal que las conclusiones que se puedan sacar del, coincidan con las manifestaciones aparentes del mundo real; al igual que en otras disciplinas, modelar consiste en representar el mundo real a travs de de un modelo. Modelo de Datos: Es un dispositivo de abstraccin que nos permite ver el bosque en oposicin a los arboles; proporciona mecanismos de abstraccin que permiten la representacin de aquella parcela del mundo real cuyos datos nos interesa registrar y que comnmente conocemos como universo en discurso o minimundo. 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. Abstraccin: Consiste en separar por medio de una operacin intelectual las cualidades de un objeto para considerarlas aisladamente o para considerar el mismo objeto en su pura esencia o nocin. Este proceso oculta detalles insignificantes y se fija en lo esencial, busca propiedades comunes, reduce la

NOTAS Universitarias | 11

complejidad y ayuda a la comprensin del mundo real. Cuando se realiza un proceso de abstraccin se lleva del mundo real al mundo conceptual, enfocndonos en lo esencial apara solucionar el problema informtico. 1.5 Modelo de datos Un modelo de datos es el conjunto de conceptos, 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. Es equivalente al mismo modelo lgico que se entiende como cualquier tipo de modelo en el campo de las bases de datos, el modelo de datos no es igual a esquema de datos. 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, como una fotografa de ella. El modelo de datos debe poseer como mnimo 2 caractersticas, la caracterstica esttica y la dinmica. 1.5.1 Caracterstica esttica La caracterstica esttica es la encargada de definir la base de datos en su componente esttico, es decir en los objetos y componente que no cambian (no cambian mucho) a lo largo del tiempo, est compuesta por: Elementos permitidos: Son los elementos estticos (estructuras) que conforman el modelo, varan de acurdo al modelo, en general son: o Objetos, son las entidades, relaciones (NO confundir con asociaciones), etc. o Asociaciones, son la interrelaciones entre los objetos como las entidades. o Propiedades, son las caractersticas de un objeto como una entidad (atributos, campos, etc). o Dominios, son los posibles valores que puede tomar un atributo o propiedades, se define como un conjunto homogneo de valores. 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; un ejemplo de restriccin es que no haya registros duplicados (iguales) en una entidad o que un curso tenga mximo 20 alumnos matriculados. Existen dos tipos de restricciones: o Restricciones inherentes: Son aquellas impuestas por el modelo de datos, por ejemplo toda entidad debe tener un nombre.

NOTAS Universitarias | 12

Restricciones de integridad o semnticas: Son aquellas que permiten plasmar las reglas o restricciones del mundo real. Un ejemplo es una restriccin que limite el nmero de retiros diarios que puede realizar un cliente de un banco en su cuenta. Las restricciones semnticas pueden ser: Reconocidas por el modelo de datos: Son aquellas impuestas por el mundo real pero gestionadas por el modelo de datos, por ejemplo que el gnero de un empleado se M o F. Ajenas al modelo de datos: Son aquellas impuestas por el mundo real pero no gestionables por el modelo de datos, 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.5.2 Caracterstica dinmica Es la encargada de efectuar las operaciones en la base de datos; estas operaciones tienen 2 componentes: Localizacin: Consiste en ubicar un ejemplar (registro) o un conjunto de ejemplares (de acuerdo a una condicin) en un objeto de la base de datos (usualmente una entidad). Accin: Consiste en realizar la accin especificada en l o los ejemplares (registros) previamente ubicados mediante la localizacin, y puede ser la recuperacin de los datos o la modificacin de los mismos, mediante una insercin, actualizacin o eliminacin. LOCALIZACIN <condicin> ACCIN <objetivo> Donde LOCALIZACIN y ACCIN son comandos del lenguaje del modelo de datos. 1.6 Restricciones de integridad Las restricciones de integridad son las reglas que debemos implementar basndonos en el mundo real; inicialmente las restricciones pueden ser: Restricciones propias: Son las restricciones semnticas que pueden ser especificadas en el propio modelo de datos y representadas en el esquema de datos (los diagramas).

NOTAS Universitarias | 13

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. Las restricciones de integridad tienen tres componentes principales: La operacin: se refiere a la operacin de insercin, actualizacin o eliminacin cuya ejecucin genera la comprobacin de la restriccin. Condicin: que se debe cumplir, es una expresin lgica simple (que retorna verdadero o falso) y que dependiendo del resultado dispara la accin subsecuente. Accin: Que se debe hacer de pendiendo el resultado de la condicin, en caso que la condicin sea verdadera, lo ms usual es que la accin sea de rechazo de la operacin. 1.6.1 Clasificacin de las restricciones Las restricciones se clasifican como se puede apreciar en la figura 2.

Figura 2. Clasificacin de las Restricciones Adaptado de [1]

NOTAS Universitarias | 14

Restricciones Inherentes: Son las que el modelo de datos impone, como que cada entidad debe tener como mnimo un atributo. Restricciones Semnticas: Son aquellas que modelan el mini universo, son las restricciones que impone el mundo real que se est analizando para la creacin de la base de datos. Restricciones Propias: Son definidas al definir el es esquema de la base de datos, pueden ser manejadas por el modelo de datos. Restricciones Ajenas: Son las restricciones que no puede manejar por si solo el modelo de datos, se implementan en los programas de la aplicacin (capa lgica). Restricciones de Lenguaje de Propsito General: Son las restricciones ajenas implementadas mediante un lenguaje de propsito general como C++, Java, VB.Net, etc. 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. Restricciones de Accin General: Son las restricciones donde es preciso programar estilo mtodo para determinar la accin que hay que llevar a cabo, son muy parecidas a las restricciones ajenas con lenguaje de programacin del motor de base de datos. Procedimientos Almacenados: Se definen de forma procedimental, son las que se asemejan ms a las restricciones ajenas al modelo. Disparadores: Se desencadenan cuando sucede cierta condicin, se declaran como procedimientos y se disparan automticamente cuando un evento de insercin, actualizacin o eliminacin ocurre. Restricciones Accin especfica: Esta implcita en la misma restriccin (generalmente la negativa genera un rechazo). Restricciones de Condicin General: Generan rechazo siempre y cuando sean falsas; se definen como una proposicin lgica. Restricciones de verificacin: Son especificas a un elemento del esquema.

NOTAS Universitarias | 15

Restricciones de Asercin: Igual que las anteriores pero afectan a varios objetos simultneamente. Restricciones de Condicin Especfica: Son opciones proporcionadas por el propio modelo. No especifica los componentes relativos a la restriccin. 1.7 Proceso de diseo de una base de datos Conjunto de etapas necesarias para pasar de una determinada realidad (mini universo) a la base de datos que representa. La etapas en el diseo se presentan en la figura numero 3.
MUNDO REAL

(Cualquier problema informtico, como el de una entidad bancaria, universidad, etc.)

UNIVERSO DEL DISCURSO (Visin del problema informtico bajo el problema especifico a resolver)

MODELADO CONCEPTUAL DE DATOS (Modelo E/R de la solucin del problema informtico)

MODELADO LGICO (Modelo de la solucin de la base de datos, Modelo Relacional)

MODELADO INTERNO (Modelo de estructuras internas de la base de datos como los ndices, secuencias, etc.)

ALMACENAMIENTO FSICO (Estructuras fsicas de almacenamiento, como tablas, atributos, etc.)


Figura 3. Etapas del diseo de una Base de Datos. Adaptado de [1]

NOTAS Universitarias | 16

2 Modelo entidad / interrelacin


El modelo entidad interrelacin es un modelo de datos usado como base para una vista unificada de los datos, adoptando el enfoque ms natural del mundo real que consiste en entidades e interrelaciones. 2.1 Elementos del modelo entidad interrelacin Los elementos encontrados en el modelo entidad interrelacin son los siguientes: Entidad: Cualquier objeto real o abstracto que existe en el universo y acerca del cual queremos almacenar informacin en la base de datos. Haciendo un paralelo con el modelo Orientado a Objetos, podemos decir que la entidad (en trminos generales) es la misma clase si omitimos las operaciones. Existen 2 tipos de entidades. o Entidad regular: Cuyos ejemplares (registros de la entidad) existen por s mismos. La representacin de este tipo de entidad es un rectngulo con el nombre de la entidad dentro de l. El ejemplo de una materia ilustra este tipo de entidad, ya que una materia (con ciertas consideraciones) tiene existencia propia.

Figura 4. Entidad Regular

Entidad dbil: Cuyos ejemplares dependen de que exista cierto ejemplar en otro tipo entidad. La representacin de este tipo de entidad es un rectngulo de lnea doble con el nombre de la entidad dentro de l. Un curso se considera una entidad dbil debido a que para poder existir, debe existir previamente una materia de la cual se cree el curso.

Figura 5. Entidad Dbil

NOTAS Universitarias | 17

Reglas de las entidades: Las entidades deben cumplir ciertas reglas que hagan valida su existencia, entre ellas encontramos: Tienen que tener existencia propia, 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 dbiles). Cada ejemplar debe poder distinguirse de otro, es decir que no deben existir dos ejemplares exactamente iguales en la misma entidad. Todos los ejemplares de la misma entidad debe tener las mismas propiedades, es decir que todos los ejemplares de la entidad deben obligatoriamente tener valores en las propiedades de la entidad, as alguno(s) valor(es) sean NULL. Interrelacin: Es una asociacin, vinculacin o correspondencia entre entidades; en trminos generales es muy parecida a una entidad, con la connotacin de que su existencia se debe a la vinculacin entre entidades. Dos entidades pueden poseer ms de dos interrelaciones. La representacin de una interrelacin es a travs de un rombo. El modelo E/R tiene como restriccin inherente que solo permite establecer interrelaciones entre entidades, NO estn permitidas entre Entidad - Interrelacin ni entre Interrelacin - Interrelacin.

Figura 6. Interrelacin Imparte

NOTAS Universitarias | 18

Figura 7. Interrelacin Imparte y Recibe

Dominio: Es el conjunto de posibles valores que puede tomar cierta propiedad de una entidad o interrelacin. Se puede definir por: o Intencin: Especificando el tipo de dato. o Extensin: Declarando el valor de cada elemento, ej.: azul, rojo, verde. Los dominios tienen existencia propia independiente de cualquier otro elemento. Atributo: Cada una de las propiedades o caractersticas que tiene una entidad o interrelacin. Se representa con una lnea y circulo la entidad o interrelacin a la que pertenece. El nmero de atributos de una entidad o interrelacin es n, es decir cualquier nmero entre 1 e infinito.

Figura 8. Representacin de los atributos

NOTAS Universitarias | 19

En la figura 8 se puede apreciar dos atributos pertenecientes a la entidad profesor, el primer atributo llamado nombre es un atributo simple, el segundo atributo llamado fec nac. Es un atributo compuesto (es decir que a su vez est compuesto de atributos). Los atributos a diferencia de los dominios NO tienen vida propia, es decir estn ligados al tipo entidad o interrelacin correspondiente. Adicionalmente es necesario aclarar que las entidades e interrelaciones poseen atributos y los ejemplares toman valores para cada atributo. 2.2 Restricciones de integridad La principal restriccin inherente (es decir las restricciones propias del modelo de datos y no las que impone el mundo real) del modelo de datos entidad interrelacin E/R, prohbe que haya interrelaciones entre interrelaciones, es decir que una interrelacin solo podr existir entre dos entidades; tambin obliga a que todas las entidades posean un identificador o nombre nico en todo el esquema de la base de datos. Otras importantes restricciones son: Restriccin sobre Valores: Se establecen mediante la definicin del dominio, cada valor solo puede pertenecer a un conjunto definido. Restriccin sobre Atributos (IC): Entre todos los atributos de un tipo entidad existe uno o varios (simples y/o compuestos) que identifican unvocamente cada uno de los ejemplares de esta entidad. A cada uno de de estos conjuntos de atributos se les denomina Identificador Candidato (IC); todo IC debe cumplir la condicin de ser unvoco y mnimo. 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. o Identificadores Alternos: El resto de atributos candidatos que no son el identificador principal.

Figura 9. Representacin de los atributos Candidatos

NOTAS Universitarias | 20

Restriccin sobre Atributos (otros): Otras restricciones aplican sobre los atributos, como los atributos multivaluados, que son aquellos que pueden tomar ms de un solo valor; ej.: una materia se puede impartir en dos a ms idiomas. Los atributos opcionales son aquellos que pueden tener valores nulos lo cual indica que el valor de ese atributo es NULL.

Figura 10. Atributos regulares, multivaluados y opcionales.

La cardinalidad es el rango de valores que puede tomar en este caso un atributo y generalmente tiene un valor mnimo y mximo. Como se puede observar, en el modelo de datos E/R un atributo puede ser multivaluados. Sin embargo, en el modelo de datos relacional (siguiente captulo) esto no est permitido.

Figura 11. Cardinalidad de los atributos.

2.3 Elementos de un tipo interrelacin Los elementos que componen a una interrelacin son:

NOTAS Universitarias | 21

Nombre: Lo distingue unvocamente del resto de elementos; debe ser nico y descriptivo de la entidad, usualmente es un sustantivo en singular (con contadas excepciones). Grado: Es el nmero de entidades que participan en un tipo interrelacin. De este concepto podemos deducir que el nmero de entidades que asocia una interrelacin no es necesariamente 2, puede ser 1, 3, etc. Tipo correspondencia: Es el nmero mximo de ejemplares de una entidad que pueden estar asociados en una determinada interrelacin, con un ejemplar de otro tipo.

Figura 12. Ejemplos de interrelacin.

Papel (Rol): Es la funcin que cada uno de los tipos entidad realiza en el tipo interrelacin.

Figura 13. Roles entre la Interrelacin.

NOTAS Universitarias | 22

Cardinalidad de un tipo entidad: se define como el nmero mximo y mnimo de ejemplares de un tipo entidad que pueden estar interrelacionados con un ejemplar de otro.

Figura 14. Cardinalidad entre la Interrelacin.

Atributos de las interrelaciones Ciertas consideraciones deben tenerse en cuenta cuando se analizan los atributos de una interrelacin, por ejemplo, cuando en una interrelacin 1:N se tiene un atributo asociado, este atributo se lleva a la entidad cuya cardinalidad es N. Cuando la interrelacin es 1:1 es muy conveniente conservar el atributo dependiendo de la interrelacin. Los atributos de las Interrelaciones N:M son propios de la misma y no de las entidades vinculadas por la interrelacin. Ejercicio: Graficar dos ejemplos de los posibles casos en los que un atributo est presente en la interrelacin.

2.3.1 Dependencia en existencia y en identificacin Existen 2 tipos de interrelacin, las regulares y las dbiles, segn estn asociando a dos entidades regulares, o a una entidad dbil con una entidad (dbil o regular), respectivamente. La interrelacin dbil tiene dos divisiones, la dependencia en existencia y en identificacin. Dependencia en existencia: cuando los ejemplares de un tipo entidad dbil no pueden existir si desaparece el ejemplar de tipo entidad regular del cual dependen.

NOTAS Universitarias | 23

Es decir que el ejemplar de la entidad dbil no puede crearse si no se ha creado previamente el ejemplar de la entidad regular a la que est asociada.

Figura 15. Dependencia en existencia.

Dependencia en identificacin: adems de la condicin anterior, los ejemplares del tipo entidad dbil no se pueden identificar por s mismos y exigen aadir el identificador principal del tipo entidad regular del cual dependen. Es decir que el identificador principal de la entidad dbil est compuesto de forma total o parcial por el identificador candidato de la entidad regular a la cual est asociado.

NOTAS Universitarias | 24

Figura 16. Dependencia en identificacin.

2.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 mnimo (lo ideal sera evitarla totalmente) la redundancia en nuestra base de datos y para esto existen tcnicas aplicables desde el mismo modelo de base de datos utilizado. Debemos analizar la existencia de redundancia por los problemas de inconsistencias a los que puede dar lugar; se dice que un elemento del esquema es redundante cuando puede ser eliminado sin prdida de semntica, es decir, sin prdida del significado de los datos en la propia base de datos. Existen dos tipos de redundancia, en los atributos (derivados) y en las interrelaciones (derivadas). 2.4.1 Atributos derivados Son aquellos que se obtienen a partir de otros ya existentes, son calculados, por lo que aunque son redundantes, no son inconsistentes siempre y cuando se indique su procedencia y la frmula para hallarlos. Usualmente este tipo de atributos son creados con fines de eficiencia de la base de datos, como ejemplo podemos analizar una entidad bancaria con sus cuentas y las transacciones que generan estas cuentas, en la figura 17 se observa la relacin entre la entidad CUENTA y la TRANSACCION; si se quisiera calcular el saldo de la cuenta sera posible hacerlo a travs de la suma y resta de acuerdo a la

NOTAS Universitarias | 25

naturaleza de las transacciones, sin embrago y considerando el posible nmero de transacciones, esta operacin podra ser muy costosa computacionalmente generando retrasos en la consulta. Lo mal til sera crear un atributo saldo en la entidad CUENTA y actualizarlo constantemente cada vez que se haga una transaccin.

Figura 17. Ejemplo entidad bancaria.

Un atributo derivado se puede calcular en 2 momentos distintos: Al actualizar: Es decir que cada vez que se genere una operacin de insercin, actualizacin o eliminacin, se actualice el atributo calculado (real). Al consultar: Es decir que se actualice solamente cuando se realice una consulta al atributo calculado (virtual). 2.4.2 Interrelaciones redundantes Se dice que una interrelacin es redundante cuando su eliminacin no implica la prdida de semntica (del significado de los datos en la base de datos) porque existe la posibilidad de realizar la misma asociacin de ejemplares por medio de otras interrelaciones. Se considera condicin necesaria aunque no suficiente que haga parte de un ciclo. En el ejemplo de la figura 18 se puede apreciar como existe una interrelacin redundante; si consideramos que un curso se encuentra adscrito a un departamento y que un profesor dicta uno o varios cursos, su puede asumir que los cursos que dicta un determinado profesor lo hacen miembro (directo o indirecto) del departamento al cual pertenece el curso, en ese caso la interrelacin pertenece entre el profesor y el departamento se hace redundante ya que su eliminacin no implica la prdida de semntica en el esquema. En la figura 19 se puede apreciar el caso contrario, en donde no es posible eliminar la interrelacin entre el docente y el departamento sin prdida de semntica; esto ocurre porque un curso ya no est adscrito a un solo departamento sino a varios, haciendo que la interrelacin entre el profesor y el departamento sea necesaria con el fin de determinar a qu departamento est adscrito un profesor.

NOTAS Universitarias | 26

Figura 18. Interrelacin redundante.

Figura 19. Interrelacin NO redundante.

Existen otros casos en donde la interrelacin, a pesar de poder ser deducida por otras, no se puede eliminar ya que posee atributos o que por razn ajenas al modelo sea conveniente conservarlas como prever un futuro cambio en la base de datos. Se debe comprobar que si se elimina la interrelacin, la semntica se conserve en ambos sentidos y que no se pierdan atributos.

NOTAS Universitarias | 27

Condiciones para eliminar una interrelacin Existir un ciclo. Que las interrelaciones del ciclo sean equivalentes semnticamente, es decir que al eliminar una interrelacin el significado de los datos en la base de datos sea equivalente con las dems interrelaciones. Que se puedan asociar los ejemplares de las dos entidades que estaban interrelacionadas, aun habiendo eliminado la interrelacin; si esto no es posible y un ejemplar de una entidad no se puede relacionar con otro ejemplar de otra entidad, la interrelacin no se puede eliminar. Que la interrelacin o bien no tenga atributos, o bien estos puedan ser transferidos a fin de no perder la semntica. 2.5 Interrelaciones de grado superior a 2 Lo ms conveniente en el modelo es que existan interrelaciones de grado 2, pero esto no es posible siempre. En ocasiones se puede descomponer una interrelacin de grado n en una ms simple, pero para esto es preciso analizar correctamente la semntica. En el ejemplo de la Figura 20 podemos apreciar como una interrelacin de grado 3 no se puede eliminar ya que se perdera la semntica; en este ejemplo, un profesor imparte diferentes temas en muchos cursos. Si se elimina la interrelacin de grado 3 por las tres interrelaciones de grado 2, no se podra determinar exactamente qu temas entran en un curso especfico. Por el contrario, en la Figura 21 podemos apreciar una interrelacin de grado 3 que es posible reemplazar por 3 interrelaciones de grado 2 sin prdida de semntica, ya que la informacin de qu cursos imparte el profesor, qu alumnos tiene como asistente un curso y a qu estudiantes da clase el profesor es consistente de cualquiera de las dos formas.

NOTAS Universitarias | 28

Figura 20. Interrelacin de grado 3 que no se puede reemplazar.

Figura 21. Interrelacin de grado 3 que s se puede reemplazar.

2.6

Restricciones sobre interrelaciones adicionales

NOTAS Universitarias | 29

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, aunque lo recomendable es crear un modelo lo ms simple posible. Existen ocasiones en las que este tipo de restricciones aplican de forma adecuada. Restriccin de exclusividad: Este tipo de restriccin aplica cuando el ejemplar del tipo entidad solo puede pertenecer a uno de los tipos de la interrelacin, pero en el momento que pertenezca a uno ya no podr formar parte del otro. Un caso especial es cuando se asocian ms de dos entidades y se considera la cardinalidad. En la Figura 22 se observa cmo un empleado se relaciona con un departamento por medio de dos posibles interrelaciones. Si dirige el departamento, no puede asistirlo y caso contrario. En la Figura 23 tambin se observa una restriccin de exclusividad con la cardinalidad respecto a las dos interrelaciones.

Figura 22. Ejemplo de Interrelacin de exclusividad.

NOTAS Universitarias | 30

Figura 23. Ejemplo de Interrelacin de exclusividad.

Restriccin de exclusin: todo ejemplar de la primera entidad que este unido a la segunda entidad mediante la primera interrelacin, no podr estar unido al mismo ejemplar de la segunda entidad mediante la segunda interrelacin. 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.

Figura 24.

Ejemplo de Interrelacin de exclusin.

NOTAS Universitarias | 31

Restriccin de inclusividad: todo ejemplar de la primera entidad que participa en unos de los dos tipos de interrelacin tiene necesariamente que participar en la otra. En la Figura 25 se observa el ejemplo en donde un empleado que dirige un departamento tiene que haber asistido a (en este caso) mnimo 3 departamentos.

Figura 25. Ejemplo de Interrelacin de inclusividad.

Restriccin de inclusin: es an ms fuerte que la restriccin de Inclusividad, especfica que para que un ejemplar exista en una interrelacin previamente debera existir en la otra. En el ejemplo de la Figura 26 se especifica que para dirigir un departamento se debi asistirlo previamente.

Figura 26. Ejemplo de Interrelacin de inclusin.

NOTAS Universitarias | 32

2.7 Generalizacin Se considera un caso especial de interrelacin entre varios tipos entidad (subtipos) y un tipo ms general (supertipo) cuyas caractersticas son comunes a todos los subtipos. La generalizacin en el modelo E/R es en esencia la misma del modelo orientado a objetos. El concepto base de la generalizacin consiste en observar las caractersticas generales de varias entidades y agruparlas en una sola que posee todas estas caractersticas, a esta entidad se le denomina supertipo; a partir de esta entidad se crean diferentes entidades especializadas que poseen sus propios atributos y heredan los atributos del supertipo, a estas entidades se les denomina subtipos. Existen diferentes caractersticas en la generalizacin de a cuerdo a la relacin que existe o puede existir entre los ejemplares de las entidades involucradas. Estas caractersticas son: Solapamiento: ocurre si un mismo ejemplar del supertipo puede pertenecer a ms de un subtipo. Exclusividad: ocurre si un ejemplar del supertipo solo puede pertenecer a uno de los subtipos. Totalidad: si todo ejemplar del supertipo tiene que pertenecer a algn subtipo Parcialidad: si un ejemplar del supertipo no tiene que pertenecer a algn subtipo. Para representar la exclusividad se utiliza un arco en la relacin de la entidad supertipo y los subtipos y un crculo para representar la jerarqua total como se puede apreciar en los ejemplos de las figuras 27 y 28.

Figura 27. Ejemplo de Generalizacin.

NOTAS Universitarias | 33

Tanto un docente como una secretaria son empleados (Generalizacin). Un mismo empleado no puede ser a la vez un docente y una secretaria (exclusividad o disyuncin). Todo empleado tiene que ser obligatoriamente un docente o una secretaria (totalidad).

Figura 28. Ejemplo de Generalizacin.

Un curso dirigido y un curso virtual son cursos (Generalizacin). Un mismo curso no puede ser al mismo tun curso dirigido y un curso virtual (exclusividad o disyuncin). Un curso puede ser curso dirigido o curso virtual o ninguno de los dos (parcialidad).

Dimensin temporal en el modelo E/R Las bases de datos almacenan informacin en el tiempo y considerando que no debe borrarse informacin de estas, la mejor forma de modelar el tiempo es a travs de atributos fecha que almacenen las fechas de los acontecimientos y el manejo de estados en los ejemplares de cada entidad.

NOTAS Universitarias | 34

2.8 Esquematizacin 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 trminos de tiempo y de dinero1. Dependiendo de la herramienta CASE utilizada, la forma de representacin cambia un poco, aunque en general todas siguen el mismo patrn. Por ejemplo en Power Designer2, la representacin de los atributos de una entidad o interrelacin se hacen dentro el objeto no con crculos y lneas. A continuacin se presenta un ejemplo de los objetos manejados en el modelo E/R de acuerdo a su representacin en la herramienta CASE Power Designer; la Figura 29 representan una entidad con sus atributos, la Figura 30 una interrelacin con sus atributos y la Figura 31 el uso de la generalizacin.

CURSO CODIGOCUR <pi> Number <M> NOMBRECUR Variable characters (50) INTHORARIACUR Number ESTADOCUR Variable characters (2) CPCURSO <pi> ...

Figura 29.

Entidad con atributos

INSCRIPCION CODIINSCRIPCION Number FECHAINSCRIPCION Date ESTADOINSCRIPCION Variable characters (2)

Figura 30.

Interrelacin con atributos

1 2

http://es.wikipedia.org/wiki/Herramienta_CASE http://www.sybase.com/products/modelingdevelopment/powerdesigner

NOTAS Universitarias | 35

CURSO CODIGOCUR <pi> Number <M> NOMBRECUR Variable characters (50) INTHORARIACUR Number ESTADOCUR Variable characters (2) CPCURSO <pi> ... ES UN

CURSOVIRTUAL DESCHERRAMIENTACV Variable characters (200) NUMMODULOSCV Number

Figura 31. Generalizacin

El ejemplo de la Figura 32 rene los diferentes objetos del modelo E/R en un esquema que relaciona un curso con programa acadmico y alumno.
PROGRAMAACADEMICO CODPROGACA <pi> Number NOMBRPROGACA Variable characters (50) FECHREGCALPRGACA Date ESTAPROGACA Variable characters (2) PKPROGRAMAACADEMICO <pi> ... <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,n 0,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> ... ES UN

CURSOVIRTUAL DESCHERRAMIENTACV Variable characters (200) NUMMODULOSCV Number

CURSODIRIGIDO NOMBASESORCD Variable characters (50) NUMHORASPRES Number

Figura 32. Esquema de ejemplo E/R.

2.9

Ejercicios

NOTAS Universitarias | 36

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

NOTAS Universitarias | 37

NOTAS Universitarias | 38

Modelo de datos relacional

El modelo de datos relacional es el modelo de datos ms utilizado en la actualidad, fue propuesto por Codd en 1970 y supuso una revolucin en las bases de datos debido a su enfoque y la separacin de los datos en s mismos de las aplicaciones utilizadas para gestionar dichos datos. La estructura u objeto bsico de este modelo es la relacin o tabla, cuya funcin es la de representar las entidades del mundo del problema as como las asociaciones o interrelaciones del modelo E/R. Los componentes bsicos del modelo son: Dominio: Es el conjunto de posibles valores que puede tomar un atributo, debe ser finito y nominal. Se puede definir por extensin (nombrando sus posibles valores) o por intensin (mediante el tipo de datos), siendo este ltimo el ms utilizado. Atributo: Es una propiedad o caracterstica de la relacin, es la misma columna de una tabla en el modelo fsico. Un atributo se encuentra siempre en una relacin (es una propiedad de una relacin), mientras que un dominio tiene existencia independiente a las relaciones del esquema; ej.: los nmeros enteros existen as no haya relaciones (tablas) en el esquema. Un atributo debe tomar los valores de un dominio y de solo un dominio segn su definicin y diferentes atributos pueden tomar sus valores del mismo dominio, es decir que varios atributos pueden ser del mismo tipo. Relacin: es el conjunto de elementos llamados tuplas {tj}, 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; se expresa: (<A1:V1j> , ... <Ai:Vnj> , ... <An:Vnj>). El esquema de relacin es la representacin de la relacin en trminos de sus atributos con sus respectivos dominios, se compone del nombre de la relacin R (usualmente un sustantivo en singular), 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, y dos o ms atributos pueden tener el mismo dominio) {Di}. Se expresa: R (A1:D1 , A2:D2 , An:Dn) donde R es el nombre del esquema de relacin, Ai es el nombre del atributo y Di el dominio al cual pertenece cada atributo.

Una relacin se representa fsicamente utilizando una tabla en donde:

NOTAS Universitarias | 39

Los atributos de la relacin son las columnas de la tabla. Cada registro de la tabla es una tupla de la relacin, el conjunto de todas las tuplas conforman la relacin. El nmero de tuplas se llama cardinalidad de la relacin. 3.1 Intensin y extensin de una relacin La intensin de una relacin es el mismo esquema de la relacin, es decir la parte definitoria de la relacin, los metadatos o abstraccin de la relacin. Se puede representar como en la Figura 33.
CURSO CODIGOCUR <pi> Number <M> NOMBRECUR Variable characters (50) INTHORARIACUR Number ESTADOCUR Variable characters (2) CPCURSO <pi> ...

Figura 33. Esquema de relacin.

CURSO(CODIGOCUR:NUMERICO, NOMBRECUR:CADENA, INTHORARIACUR:NUMERICO, ESTADOCUR:CADENA)

La extensin de una relacin es el conjunto de tuplas (registros) que componen la relacin, todas las tuplas deben ser iguales en trminos de estructura (no de valores) para satisfacer la estructura de la relacin, estas tuplas se almacenan en la base de datos y suelen llamarse simplemente relacin. La Figura 34 muestra un ejemplo de relacin que satisface el esquema de relacin de la Figura 33. CODIGOCUR 2245 2215 2219 NOMBRECUR Programacin Lgica Base de Datos INTHORARIACUR 4 6 4 ESTADOCUR AC AC IN

Figura 34. Relacin.

Un esquema relacional es el conjunto de esquemas de relacin que describen el minimundo del problema del cual se disea la base de datos. Cuando se crea un diagrama relacional de base de datos, se est creando un esquema relacional que satisfaga la estructura informtica del mundo del problema.

NOTAS Universitarias | 40

3.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) idnticos en una relacin. EL orden en que se encuentran las tuplas en la relacin 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. El orden en que se encuentran los atributos en la relacin no es importante, sin embargo y por razones ajenas al modelo, se recomienda esquematizar los atributos ms relevantes al inicio de la relacin. Cada atributo de la relacin solo puede tomar un solo valor en un momento determinado del dominio al cual est asociado, es decir que por ejemplo al atributo GNERO solo puede ser M F, pero no los dos al tiempo. Esto se conoce en teora de la normalizacin como la primera forma normal. El nico objeto del modelo relacional es la relacin, as que toda entidad y / o interrelacin creada en el modelo E/R debe representarse a travs de este objeto. En toda entidad debe existir un atributo o conjunto de atributos que son la clave primaria, este atributo (o atributos) no puede tomar el valor nulo (null). 3.2.1 Restricciones semnticas Las restricciones semnticas deben reflejar las reglas del mundo real. En el modelo relacional una restriccin de integridad es de tipo evento condicin accin, donde el evento puede ser una insercin, actualizacin o eliminacin; la condicin es un predicado que se aplica sobre el conjunto de datos sobre los cuales se dispara el evento y la accin es la respuesta al evento y condicin anteriores, siendo el rechazo la accin por defecto. Por ejemplo si se desea insertar un ejemplar (registro) sobre una relacin (tabla) cuyo valor en la clave primaria ya se encuentre en la relacin, se rechaza la insercin. La creacin de las restricciones semnticas se debe poder hacer de forma simple y precisa as como permitir cierta flexibilidad en el manejo de la condicin y la accin de la restriccin. Es labor del motor de base de datos permitir la definicin de las restricciones semnticas as como validar la consistencia de estas reglas al momento de definirlas como al momento de aplicarlas. 3.2.2 Clasificacin de las restricciones segn los elementos a los que afecta la condicin La forma ms simple de clasificar las restricciones semnticas es de acuerdo con el o los elementos que afectan la condicin de la restriccin.

NOTAS Universitarias | 41

Que afectan los atributos de una sola relacin (clave primaria, unicidad, not null, etc.): es definido en el esquema de relacin como S1 =<A,P> donde A es el conjunto de atributos (uno o varios) a los que se aplica la condicin y P es un predicado (expresin que retorna un valor booleano). Entre este tipo de restricciones se encuentran: o Restriccin de Unicidad (UNIQUE): indica que un atributo (o conjunto de atributos) no puede tener los mismos valores en dos tuplas o registros; esto no indica que puedan no tener valor, es decir que sean nulos o NULL. En caso de que se intente insertar o actualizar un registro que viole esta restriccin, la accin es de rechazo de la insercin o actualizacin. o Restriccin de nulidad (NOT NULL): indica que un atributo no puede ser vacio; en realidad lo que limita esta restriccin es que el atributo no pueda recibir el valor NULL. En caso de que se intente insertar o actualizar un registro que viole esta restriccin, la accin es de rechazo de la insercin o actualizacin. o Restriccin de llave primaria (PK): en una relacin pueden existir uno o varios atributos que identifiquen unvocamente a cada ejemplar dentro de la relacin, 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, la cual indica que el o los atributos que componen esta clave NO pueden tener valores iguales en dos tuplas o registros de la relacin NI ser nulos. o Restriccin de llave alterna: todas las claves candidatas que no son llaves primarias se denominan claves o llaves alternas. La forma de implementar las llaves alternas es utilizando la estriccin de unicidad junto a la de nulidad. o Restriccin de verificacin (CHECK): indica que un atributo debe cumplir con determinado predicado, se declara al momento de definir la relacin y en caso de realizarse una insercin o actualizacin y no cumplir con el predicado, la accin es de rechazo; un ejemplo es: CHECK ESTADO = AC. Que afectan los atributos de ms de una relacin (integridad referencial): tambin llamada clave o llave fornea; en una relacin 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. La Relacion2 se denomina la relacin referenciada y la Relacion1 la relacin que referencia. La llave fornea asegura la integridad de los datos al validar que los valores de la Relacion1 coincidan con los de la Relacion2 o ser nulos. Las figuras 35 y 36 muestran el esquema de relacin y las relaciones de una llave fornea.

NOTAS Universitarias | 42

PROGRAMAACADEMICO CODPROGACA <pi> Number NOMBRPROGACA Variable characters (50) FECHREGCALPRGACA Date ESTAPROGACA Variable characters (2) PKPROGRAMAACADEMICO <pi> ... <M> <M> <M> <M> FKPROGMAT

MATERIA CODMATE <pi> Number <M> CODPROGACAD Number NOMMATE Variable characters (50) INTHORMATE Number ESTAMATE Variable characters (2) PKMATERIA <pi> ...

Figura 35. Esquema de Relacin que utiliza una llave fornea.

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 Lgica Procesos Estructuras de Datos Comunicacin de datos INTHORMATE 4 4 6 4 ESTAMATE AC AC AC IN

Figura 36. Relaciones con llavea fornea.

En el ejemplo anterior un nuevo registro cuyo cdigo de programa CODPROGACA sea diferente a los valores 22, 23 o 25 (que son los registros de la relacin PROGRAMACADEMICO) no podra existir en la relacin MATERIA. Definidas sobre las tuplas de una relacin (cardinalidad): el nmero de tuplas o registros que puede tener una relacin se puede gestionar a travs de una restriccin de cardinalidad; sin embargo al implementar esta restriccin es necesario el uso de disparadores o procedimientos almacenados en el motor de base de datos. Un ejemplo de esta restriccin es limitar el nmero de alumnos matriculados en un curso.

NOTAS Universitarias | 43

Sobre los dominios (verificacin sobre los valores de un dominio): todos los atributos de una relacin deben ser definidos sobre un dominio y deben contener valores dentro del conjunto del dominio especfico. 3.3 Paso del modelo E/R al relacional El paso de un diseo realizado utilizando el modelo entidad interrelacin al modelo relacin (que es el que utiliza la gran mayora de motores comerciales de bases de datos) es relativamente simple si se siguen una serie de patrones y recomendaciones. A continuacin se describirn diferentes alternativas y tcnicas para realizar esta transformacin. 3.3.1 Paso de una asociacin muchos a muchos entre dos entidades Cuando se posee en diagrama de base de datos dos entidades relacionadas con cardinalidad muchos a muchos, la mejor opcin es romper esa relacin con una te rcera entidad; es usual que nuevos atributos aparezcan en la tercera entidad. Las figuras 37 y 38 muestran un ejemplo de este proceso.
CURSO CODICURS <pi> Number NOMBCURS Variable characters (50) INHOCURS Number CREDCURS Number ESTACURS Variable characters (2) PKCURSO <pi> ... <M> <M> <M> <M> ALUMNO relacionMuchosAMuchos CODALUMN <pi> Number NOMBALUM Variable characters (50) GENEALUM Variable characters (1) TELEALUM Variable characters (15) PKALUMNO <pi> ... <M> <M> <M> <M>

Figura 37. 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> ... <M> <M> <M> <M>

CODICURS <pi> Number NOMBCURS Variable characters (50) INHOCURS Number CREDCURS Number ESTACURS Variable characters (2) PKCURSO <pi> ...

INSCRIPCION FKCURINSC CONSINSC <pi> Number <M> FECHINSC Date <M> ESTAINSC Variable characters (2) <M> PKINSCRIPCION <pi> ... FKALUMINC

Figura 38. Tres entidades con relaciones uno a muchos

NOTAS Universitarias | 44

3.3.2 Asociaciones uno a uno Las asociaciones uno a uno entre dos entidades (o relaciones en el modelo relacional) son muy sospechosas, sin embargo son tiles y hasta necesarias en algunos casos. La forma de implementar estas asociaciones es creando una llave fornea entre las dos entidades y adicionalmente sobre los atributos que tiene asociada la llave fornea de la tabla (relacin) que referencia, se implementa una restriccin de unicidad y de no nulidad (esta ltima segn sea necesaria). La Figura 39 muestra un ejemplo de una relacin uno a uno.
CLIENTE CODICLIEN <pi> Number <M> NOMCLIEN Variable characters (50) <M> ESTACLIEN Variable characters (2) <M> PKCLIENTE <pi> ... FKCLIENTARJ TARJETAPUNTOS CODITARJ <pi> Number <M> FECHCTARJ Date <M> PUNTTARJ Number <M> PKTARJETAPUNTOS <pi> ...

Figura 39. Dos entidades relacionadas por una asociacin uno a uno

3.3.3 Paso de Herencia a relaciones uno a muchos La asociacin de herencia tan comn en el modelo E/R (Figura 40) no existe en el modelo relacional y aunque existen muchas tcnicas para transformar esta asociacin, a continuacin presentamos dos posibles alternativas las cuales se representan en las figuras 41 y 42.
EMPLEADO DEPARTAMENTO CODIDPTO <pi> Number <M> NOMDPTO Variable characters (50) <M> PKDEPARTAMENTO <pi> ... FKDPTOEMPLE NUMIDENEMPL <pi> Number <M> TIPIDENEMPL <pi> Variable characters (3) <M> NOMBEMPL Variable characters (50) <M> TELEEMPL Variable characters (15) PKEMPLEADO <pi> ... ES UN

DOCENTE TIPODOCTE Variable characters (50) CARSEMDCTE Number

SERVICIOSGENERALES NUMTURSEM Number

Figura 40. Asociacin de herencia entre empleado con docente y servicios generales

NOTAS Universitarias | 45

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> ... SERVICIOSGENERALES NUMIDENEMPLE <pi> Number TIPIDENEMPLE <pi> Variable characters (3) NOMBEMPL Variable characters (50) TELEEMPL Variable characters (15) NUMTURSEM Number PKSERVICIOSGENERALES <pi> ... <M> <M> <M> <M>

FKDPTOSERVGEN

Figura 41. Asociacin entre empleado con docente y servicios generales sin herencia opcin 1

Figura 42. Asociacin entre empleado con docente y servicios generales sin herencia opcin 2

NOTAS Universitarias | 46

3.3.4 Asociaciones recursivas (a la misma tabla) La relacin recursiva, es decir a la misma tabla, se utiliza cuando se desea modelar una relacin entre ejemplares de la misma entidad, por ejemplo como se puede apreciar en la Figura 43 existe una relacin de tipo jefe empleado, pero el jefe es a su vez un empleado, as que se considera un ejemplar dentro de la tabla.

FKJEFE

EMPLEADO CODEMPL <pi> Number NUMDOCEMPL Number TIPODOCEMPL Variable characters (2) NOMEMPL Variable characters (50) GENEEMPL Variable characters (1) PKEMPLEADO <pi> ... <M> <M> <M> <M>

Figura 43. Asociacin recursiva

3.3.5 Ejemplo de manejo de productos Un ejemplo prctico interesante de analizar es el de empresas dedicadas a la venta de productos, y especficamente a dos tipos muy diferentes de productos; por un lado encontramos productos comestibles como arroz, frijol, etc. Por otro lado tenemos productos como un vehculo o un computador. Aunque el proceso de venta es prcticamente el mismo, la diferencia radica en el control sobre la informacin del producto a vender; llevar control sobre todas y cada una de las bolsas de arroz vendidas probablemente sea ineficiente e innecesaria. Por el contrario, llevar control sobre cada vehculo vendido es completamente necesario. Las figuras 44 y 45 representan dos posibles diseos para la base de datos (simplificada) del proceso de venta, el primero para la venta de productos en volumen (como los comestibles) y el segundo para artculos como vehculos.

NOTAS Universitarias | 47

TIPOPROCUTO CODITPPROD <pi> Number <M> NOMTIPROD Variable characters (50) <M> ESTATIPROD Variable characters (2) <M> PKTIPOPROCUTO <pi> ... FKTIPPRODPROD

VENTA CODIVENT <pi> Number <M> FECHVENT Date <M> ESTAVENT Variable characters (2) <M> PKVENTA <pi> ... FKVENTDETVENT

PRODUCTO CODPROD <pi> Number CANTPROD Number (7) VALOR Number (12,2) ESTAPROD Variable characters (2) PKPRODUCTO <pi> ... <M> <M> <M> <M>

DETALLEVENTA NUMITEM <pi> Number CANTDETVEN Number VALORVENT Number (12,2) ESTADEVE Variable characters (2) PKDETALLEVENTA <pi> ... <M> <M> <M> <M>

FKPRODDETVENT

Figura 44. 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> ... 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,2) ESTAPROD Variable characters (2) PKPRODUCTO <pi> ... <M> <M> <M> <M>

DETALLEVENTA FKPRODDETVENT NUMITEM <pi> Number <M> ESTADEVE Variable characters (2) <M> VALORVENT Number (12,2) <M> PKDETALLEVENTA <pi> ...

Figura 45. Diagrama relacional para venta de productos con control individual

3.4

Ejercicios Crear un ejemplo de los datos (tablas en una hoja de clculo) para cada uno de los pasos del numeral 3.3. 2. Disear una base de datos relacional para el problema informtico de una biblioteca. En clase se plantea un dominio de una biblioteca ficticia y a partir de este dominio se genera el diseo de la base de datos. 1.

NOTAS Universitarias | 48

3. Disea una base de datos relacional para el problema informtico de una entidad bancaria. En clase se plantea un dominio de una entidad bancaria ficticia y a partir de este dominio se genera el diseo de la base de datos. 4. Disea una base de datos relacional para el problema informtico de una cadena de supermercados. En clase se plantea un dominio de una entidad cadena de supermercados ficticia y a partir de este dominio se genera el diseo de la base de datos. 5. Disea una base de datos relacional para el problema informtico de una video tienda. En clase se plantea un dominio de una video tienda ficticia y a partir de este dominio se genera el diseo de la base de datos.

NOTAS Universitarias | 49

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 sern utilizados de forma constante en este documento: Operadores: Los operadores aritmticos son: o Multiplicacin * o Divisin / o Adicin + o Substraccin - Los operadores Lgicos 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

o o

Mayor o igual que >= Menor o igual que <=

Tipos de Datos en Oracle Los tipos de datos comnmente utilizados en este documento son: VARCHAR2(n), tipo de dato tipo cadena de caracteres con una longitud mxima de 4000 bytes especificada por el parmetro n. NUMBER(p,s), tipo de dato numrico, donde p es la precisin (rango 1 a 38)y s la escala (rango -84 a 124). DATE, tipo de dato fecha, permite almacenar valores desde enero 1 de 4712 AC hasta diciembre 31 de 9999 DC. BLOB, tipo de dato Binary Large Object para el almacenamiento de archivos en la base de datos, el tamao mximo es de 4 GB. 4.1 Instrucciones DDL Las instrucciones DDL (Data Definition Language) son utilizadas para crear, modificar o eliminar los objetos de la base de datos. 4.1.1 Instruccin CREATE La instruccin CREATE puede ser muy compleja o relativamente simple dependiendo de su uso; a continuacin veremos varios ejemplos del uso de esta instruccin: CREATE TABLE nombreDeLaTabla( identificadorColumna1 tipoDeDato, identificadorColumna2 tipoDeDato, identificadorColumnan tipoDeDato); La forma bsica de la instruccin CREATE incluye el nombre de la tabla y la creacin de una o ms columnas. En el siguiente ejemplo podemos apreciar la creacin de una tabla con cuatro columnas:
CREATE TABLE ESTUDIANTE( CEDULA NUMBER, NOMBRE VARCHAR2(100), FECHANACIMIENTO DATE, ESTADO VARCHAR2(2));

La primera columna llamada CEDULA es de tipo NUMBER. La segunda columna se denomina NOMBRE y es de tipo VARCHAR2 con una tamao de 100 caracteres. 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; por ltimo se declara la columna ESTADO de tipo VARCHAR2 con una longitud de dos caracteres. Es importante

NOTAS Universitarias | 52

resaltar cmo el tipo de datos NUMBER puede ser utilizado si ninguna especificacin de su precisin y escala. El motor asigna un valor por defecto a estos parmetros. Sin embargo, si se desea tener control sobre estos parmetros es necesario especificarlos; en el caso de tipo VARCHAR2 es necesario especificar su longitud mxima; el tipo DATE por defecto permite almacenar una fecha compuesta del da, mes, ao, minutos, segundos y milisegundos y no necesita de ningn parmetro adicional.
RESTRICCIONES (CONSTRAINTS)

Existen cinco restricciones (constraints) principales en SQL, ellas son: Llave Primaria (Primary Key): La llave primaria es una restriccin 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. Llave Fornea (Foreign Key): La llave fornea es una restriccin entre dos tablas A y B (la tabla B puede ser la misma A. Este concepto ser explicado con detalle ms adelante), en donde una o ms columnas de la tabla B referencian al mismo nmero 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). Restriccin de No Nulidad (Not Null): La restriccin de NO nulidad indica que los valores de una columna no pueden ser nulos. Unicidad (Unique): Indica que la columna o columnas Unique deben poseer valores nicos aunque pueden contener valores nulos. Validacin booleana (Check): Es una restriccin aplicable al momento de insertar o actualizar registros en la tabla y dependiendo del resultado de la expresin (el resultado es booleano es decir verdadero o falso) se puede efectuar la actualizacin o insercin segn sea el caso. En el siguiente ejemplo podemos observar la creacin de una tabla con los mismo atributos que el ejemplo anterior y con la creacin de la llave primaria para el atributo CEDULA de dos formas posibles.

CREATE TABLE ESTUDIANTE( CEDULA NUMBER PRIMARY KEY, NOMBRE VARCHAR2(100), FECHANACIMIENTO DATE, ESTADO VARCHAR2(2) );

CREATE TABLE ESTUDIANTE( CEDULA NUMBER, NOMBRE VARCHAR2(100), FECHANACIMIENTO DATE, ESTADO VARCHAR2(2), CONSTRAINT PKESTUDIANTE PRIMARY KEY (CEDULA) );

NOTAS Universitarias | 53

El Primer ejemplo muestra la creacin de la tabla utilizando la forma simple de asignar la restriccin de llave primaria al atributo CEDULA. La segunda muestra la forma larga de hacerlo; como veremos en los siguientes apartados, es conveniente utilizar la segunda forma. Existe la posibilidad de crear una llave primaria compuesta de dos o ms atributos, como se puede observar en el siguiente ejemplo:
CREATE TABLE ESTUDIANTE( NUMDOC NUMBER PRIMARY KEY, TIPODOC VARCHAR2(2) PRIMARY KEY, NOMBRE VARCHAR2(100), FECHANACIMIENTO DATE, ESTADO VARCHAR2(2) ); CREATE TABLE ESTUDIANTE( NUMDOC NUMBER, TIPODOC VARCHAR2(2), NOMBRE VARCHAR2(100), FECHANACIMIENTO DATE, ESTADO VARCHAR2(2), CONSTRAINT PKESTUDIANTE KEY (NUMDOC,TIPODIC) );

PRIMARY

En el ejemplo anterior se puede observar cmo en la tabla ESTUDIANTE (utilizando cualquiera de los dos mtodos), se declara una llave primaria (solo puede existir una sola llave primaria por tabla), aunque esta llave primaria este compuesta por las columnas NUMDOC Y TIPODOC. La forma general de crear una restriccin tipo llave primaria dentro de la declaracin de la tabla es:
CONSTRAINT NombreLlavePrimaria PRIMARY KEY (columna(s))

En el siguiente ejemplo podemos observar como en la declaracin de la tabla se adicionan dos nuevos tipos de restricciones, el Unique y el Not Null:
CREATE TABLE ESTUDIANTE( NUMDOC NUMBER, TIPODOC VARCHAR2(2), CODIGO NUMBER NOT NULL, NOMBRE VARCHAR2(100) NOT NULL, FECHANACIMIENTO DATE NOT NULL, CELULAR VARCHAR2(20), ESTADO VARCHAR2(2) NOT NULL, CONSTRAINT PKESTUDIANTE PRIMARY KEY (NUMDOC,TIPODIC), CONSTRAINT ESTUCODIUNIQUE UNIQUE(CODIGO) );

Como se puede observar todas las columnas de la tabla a excepcin de la columna


CELULAR son ahora Not Null lo cual indica que no pueden tener valores nulos; se podra

NOTAS Universitarias | 54

considerar que las columnas NUMDOC y TIPODOC pueden recibir valores nulos (su caracterstica por defecto es permitir valores nulos), sin embargo al ser llave primaria, automticamente se aade la restriccin de Not Null a estas columnas. La restriccin Unique afecta a la columna CODIGO impidiendo que en esta columna existan valores duplicados. La forma simple de crear restricciones Not Null a una columna en una tabla es simplemente agregando la frase NOT NULL despus del tipo de datos de la columna. La forma general de crear una restriccin tipo Unique dentro de la declaracin de la tabla es:
CONSTRAINT NombreRestriccionUnique UNIQUE (columna(s))

Las llaves forneas se crean de una forma similar al resto de restricciones. Sin embargo, es fundamental tener claro donde se crea. La llave fornea se crea en la tabla que referencia y NO en la tabla referenciada; la Figura 46 muestra a la izquierda la tabla que es referenciada y a la derecha la tabla que referencia, como se puede observar la terminacin en tres lneas llega a la tabla que referencia.
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> ... <M> <M> <M> <M>

Figura 46. Tabla que referenciada y tabla que referencia.


CREATE TABLE PROGRAMAACADEMICO( CODPROGACA NUMBER, NOMBPROGACA VARCHAR2(50) NOT NULL, FECHREGCALPRGACA DATE NOT NULL, ESTAPROGACA VARCHAR2(2) NOT NULL, CONSTRAINT PKPROGRAMAACADEMICO PRIMARY KEY (CODPROGACA) );

CREATE TABLE ALUMNO( CODIGOALUM NUMBER, NOMBREALUM VARCHAR2 (50) NOT NULL, DIRECCIONALUM VARCHAR2 (50), GENEROALUM VARCHAR2 (1) NOT NULL, ESTADOALUM VARCHAR2 (2) NOT NULL, CODPROGACA NUMBER NOT NULL, CONSTRAINT CPALUMNO PRIMARY KEY (CODIGOALUM), CONSTRAINT FKPROGACAALUM FOREIGN KEY (CODPROGACA) PROGRAMAACADEMICO(CODPROGACA) NOTAS | 55 );

REFERENCES

Universitarias

En el ejemplo anterior se puede observar la codificacin del diagrama de la Figura 43; es importante resaltar nuevamente como la llave fornea se crea en la tabla que referencia a travs de la instruccin: nombrellaveForanea FOREIGN KEY (atributoAsociado) REFERENCES TablaReferenciada(atributoReferenciado)
CONSTRAINT

Otro objeto de la base de datos que se puede crear utilizando la instruccin CREATE es un ndice (estructura que hace ms eficiente la localizacin de los datos en las tablas) y la instruccin general de construccin es:
CREATE INDEX nombreDelIndice ON nombreDelaTabla (atributo(s)

de la tabla)

El siguiente ejemplo muestra cmo crear un ndice llamado indiceapellido sobre el atributo apellido de la tabla empleado:
CREATE INDEX indiceapellido ON EMPLEADO(APELLIDO);

Muchas veces se utiliza un atributo auto numerado en una tabla, es decir un atributo que toma un valor automticamente; en el caso del motor de base de datos Oracle, la forma de implementar sto es atreves de una secuencia. Una secuencia es un objeto de la base de datos que posee un valor numrico y cada vez que realizamos una insercin en una tabla y utilizamos esta secuencia, se incrementa o decrementa (segn sea el caso) automticamente. La forma de crear una secuencia es la siguiente:
CREATE SEQUENCE nombreDeLaSecuencia START WITH valorInicial;

En el siguiente ejemplo se crea una secuencia llamada secEmpleado que inicia su valor en 1000:
CREATE SEQUENCE secEmpleado START WITH 1000;

4.1.2 Instruccin ALTER La instruccin ALTER es utilizada cuando se desea realizar una modificacin estructural de una tabla de la base de datos, como adicionar un atributo, modificar el tamao o tipo de un atributo existente o eliminar un atributo. Para adicionar un atributo la instruccin genrica del ALTER es:
ALTER TABLE nombreDeLaTabla ADD (nombreAtributo tipoDeDato);

NOTAS Universitarias | 56

En el siguiente ejemplo se adiciona un atributo llamado telCelular de tipo varchar2 a la tabla EMPLEADO:
ALTER TABLE EMPLEADO ADD (telCelular varchar2(12));

Para modificar un atributo existente dentro de una tabla se utiliza la instruccin:


ALTER TABLE nombreDeLaTabla MODIFY (nombreAtributo tipoDeDato);

El nombreAtributo es un atributo ya existente y el tipoDeDato es el nuevo tipo de dato del atributo o el mismo con diferente longitud; las siguientes reglas deben tenerse en cuenta al momento de realizar la modificacin: Solo se puede decrementar el tamao de un atributo si la tabla no tiene valores en ese atributo. Solo se puede cambiar el tipo de dato del atributo si el atributo no tiene valores en la tabla. Solo se puede asignar la restriccin NOT NULL al atributo si ste no posee valores NULOS. Para eliminar un atributo de la tabla se utiliza la instruccin:
ALTER TABLE nombreDeLaTabla DROP COLUMN nombreAtributo;

El siguiente ejemplo elimina el atributo llamado telCelular de la tabla EMPLEADO:


ALTER TABLE EMPLEADO DROP COLUMN telCelular;

4.1.3 Instruccin RENAME La instruccin RENAME renombra una tabla a un nuevo nombre, la instruccin es:
RENAME nombreActual TO nuevoNombre;

En el siguiente ejemplo se renombra la tabla ESTUDIANTE por ALUMNO.


RENAME ESTUDIANTE TO ALUMNO;

NOTAS Universitarias | 57

4.1.4 Instruccin TRUNCATE La instruccin TRUNCATE se utiliza cuando se desea eliminar todos los registros de una tabla sin eliminar la tabla en s, es mucho ms eficiente que la instruccin DELETE (ver ms adelante) y no genera ROLLBACK. La instruccin genrica es:
TRUNCATE TABLE nombreDeLaTable;

4.1.5 Instruccin DROP La instruccin DROP es utilizada para eliminar objetos de la base de datos como las tablas, la siguiente instruccin y el ejemplo a continuacin demuestran el uso de la instruccin DROP. DROP TABLE nombreDeLaTabla; DROP TABLE nombreDeLaTabla CASCADE CONSTRINTS;
DROP TABLE EMPLEADO; DROP TABLE EMPLEADO CASCADE CONSTRINTS;

La clausula CASCADE CONSTRINTS se utiliza cuando hay llaves forneas relacionadas con la tabla y se deben borrar.

4.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.; las tres instrucciones clave son el INSERT, UPDATE y el DELETE. 4.2.1 Instruccin INSERT La instruccin INSERT es utilizada para insertar nuevos registros en las tablas, tiene dos posibles versiones de acuerdo a la forma de utilizacin, las cuales son:
INSERT INTO nombreDeLaTabla VALUES(valor1, valor2, valor_n);

nombreDeLaTabla(atributo1, atributo2, atributon) VALUES(valor1, valor2, valor_n);


INSERT INTO

La diferencia entre las dos versiones radica en que en la segunda especificamos el orden de los atributos, mientras que en la primera se asume el orden de los atributos que en este momento posee la tabla. En los siguientes ejemplos se muestra el uso de la instruccin INSERT en la tabla CURSO, la cual tiene cuatro atributos, el primero de tipo

NOTAS Universitarias | 58

numrico, el segundo de tipo cadena de caracteres, el siguiente de tupo fecha y el ltimo de tipo cadena pero que puede ser NULO.
INSERT INTO CURSO VALUES (1102, CALCULO I, 01/01/2011, NULL); INSERT INTO CURSO (NOMBCUR, CODCUR, ESTACUR, FECHCUR) VALUES (CALCULO I, 1102, NULL, 01/01/2011);

El tipo fecha se puede ingresar como una cadena de caracteres, ya que el motor realiza la transformacin 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. 4.2.2 Instruccin UPDATE La instruccin UPDATE es utilizada con el fin de actualizar uno o varios datos existentes en una tabla. La forma general de utilizar la instruccin es:
UPDATE nombreDeLaTabla SET atributoX = valorX WHERE atributoY = valorY;

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 condicin para cambiar el valor en ese registro siempre y cuando sea igual al valorY. El siguiente ejemplo ilustra el uso de la instruccin UPDATE para actualizar el estado del curso a AC siempre y cuando el cdigo del curso sea 1102.
UPDATE CURSO SET ESTACUR = AC WHERE CODICUR = 1102;

La clausula WHERE puede ser ms compleja que la comparacin entre un atributo y un valor, pueden ser expresiones booleanas que incluyan operadores lgicos y relacionales. 4.2.3 Instruccin DELETE La instruccin DELETE se utiliza para eliminar registros de una tabla, posee dos versiones tanto para eliminar todos los registros de la tabla como para eliminar solo alguno(s).
DELETE FROM nombreDeLaTabla; DELETE FROM nombreDeLaTabla WHERE condicin;

NOTAS Universitarias | 59

En los siguientes ejemplos se eliminan todos los registros (primer ejemplo) de la tabla y solo los que cumplan con la condicin de tener estado AC (segundo ejemplo). DELETE FROM CURSO;
DELETE FROM CURSO WHERE ESTACUR = AC;

4.3 Instrucciones DCL Las instrucciones DCL (Data Control Language) son utilizadas para dar privilegios a los usuarios de la base de datos, es decir dar permisos como poder insertar, actualizar, etc sobre los datos. 4.3.1 Instruccin GRANT La instruccin GRANT otorga privilegios a los usuarios, la estructura general de la instruccin es:
GRANT nombreProvilegio TO nombreUsuario;

Donde nombreProvilegio es el nombre del privilegio que se quiere otorgar y nombreUsuario es el usuario al cual se le quiere otorgar el privilegio. Es vlido en lugar de otorgar un privilegio, otorgar un rol (conjunto de privilegios); en el siguiente ejemplo se otorga el rol de DBA (Data Base Administrator) al usuario ESTUDIANTE.
GRANT DBA TO ESTUDIANTE;

4.3.2 Instruccin REVOKE La instruccin REVOKE a diferencia de GRANT, remueve privilegios de un usuario; la estructura general de la instruccin es:
REVOKE nombreProvilegio FROM nombreUsuario;

El siguiente ejemplo revoca los privilegios (rol en este caso) de DBA del usuario ESTUDIANTE.
REVOKE DBA FROM ESTUDIANTE;

Para otorgar y revocar privilegios se debe ser un usuario de la base de datos con el privilegio de otorgar / revocar privilegios, es muy comn que sea el administrador de la base de datos quien se encargue de esta tarea.

NOTAS Universitarias | 60

4.4 Instrucciones de Control de Transacciones Las instrucciones de control de transacciones permiten confirmar una transaccin (o conjunto de transacciones) en la base de datos como un INSERT, UPDATE DELETE. Cuando varios usuarios de forma simultnea acceden a la base de datos, el motor gestiona una parte de la memoria para las transacciones que realiza cada usuario, esta memoria es temporal mientras dura la sesin del usuario y permite mantener separadas las transacciones de diferentes usuarios; sin embargo cuando un usuario desee confirmar o deshacer las transacciones realizadas tiene que utilizar un comando especifico. 4.4.1 Instruccin COMMIT La instruccin COMMIT permite confirmar el conjunto de transacciones realizadas por un usuario desde la ltima confirmacin; la forma de utilizarlo es simplemente digitando el comando en la consola de la base de datos.
COMMIT;

Cuando se realiza una instruccin DDL se hace implcitamente un COMMIT. 4.4.2 Instruccin SAVEPOINT La instruccin SAVEPOINT permite crear un punto de salvado entre transacciones, es comn utilizarlo cuando queremos realizar diferentes transacciones por lotes sin mezclarlas ni confirmar por cada lote o al terminar. La instruccin general es:
SAVEPOINT nombreDelSavePoint; En el siguiente ejemplo se realizan 5 transacciones y dos SAVEPOINT. INSERT INTO EMPLEADO VALUES(1,CARLOS,AC); INSERT INTO EMPLEADO VALUES(2,ANDRES,AC); SAVEPOINT SAV1; INSERT INTO EMPLEADO VALUES(3,ANGELA,AC); INSERT INTO EMPLEADO VALUES(4,PILAR,AC);

SAVEPOINT SAV2;
INSERT INTO EMPLEADO VALUES(5,LUIS,AC);

Esta instruccin es usada comnmente en conjunto a la instruccin ROLLBACK la cual se especifica a continuacin. 4.4.3 Instruccin ROLLBACK La instruccin ROLLBACK es utilizada para deshacer las transacciones realizadas hasta el ltimo punto de confirmacin (COMMIT); esta instruccin tiene dos posibles versiones, en la primera simplemente se utiliza ROLLBACK hasta la ltima confirmacin, en la segunda se

NOTAS Universitarias | 61

deshacen las transacciones hasta el punto de salvado que se desee. Las instrucciones genricas de ROLLBACK son las siguientes:
ROLLBACK; ROLLBACK nombreDelSavePoint;

Si se realiza un ROLLBACK hasta un SAVEPOINT, ste debe haberse creado con anterioridad. Al realizarse un ROLLBACK, todos los SAVEPOINT creados son eliminados automticamente. 4.5 Instrucciones de recuperacin de datos La instruccin de recuperacin de datos SELECT permite mostrar al usuario los datos almacenados en las tablas de la base de datos. 4.5.1 Instruccin SELECT La instruccin SELECT se compone de varias partes, dos obligatorias y las dems opcionales. La instruccin general de consulta simple es:
SELECT columna1, columna2, columnaN FROM nombreDelaTabla;

Donde columna1, columna2, etc. Son los nombres de las columnas que queremos mostrar y el nombreDeLaTabla es la tabla de donde se encuentran los datos que queremos mostrar. Por ejemplo si queremos mostrar las columnas CODICUR y NOMBCUR de la tabla CURSO, podemos utilizar la siguiente instruccin:
SELECT CODICUR, NOMBCUR FROM CURSO;

Esta consulta mostrara todos los registros de la tabla CURSO, especficamente en las columnas CODICUR, NOMBCUR; si se desea limitar el nmero de registros, se debe utilizar la clausula WHERE. En el siguiente ejemplo se muestra como realizar la misma consulta del ejemplo anterior, pero limitando el numero de registros solo a los cursos que tengan estado AC.
SELECT CODICUR, NOMBCUR FROM CURSO WHERE ESTACUR = AC;

La expresin asociada a la clausula WHERE debe arrojar un resultado booleano y en esta expresin se pueden utilizar los operadores aritmticos, lgicos y relacionales que

NOTAS Universitarias | 62

se consideren tiles para la condicin. En general la estructura de la instruccin SELECT con condicin es:
SELECT columna1, columna2, columnaN

FROM nombreDelaTabla
WHERE expresionDeCondicion;

4.6 Proceso de respaldo y recuperacin Para realizar el proceso de importacin de una base de datos ejemplo en el motor Oracle, como la base de datos DEMO, es necesario seguir los siguientes pasos: Debe existir un usuario a donde importar como "seminario" en este caso. 1. Abrir una ventana de comandos y dirigirse al directorio donde fue instalado Oracle, especficamente a la carpeta BIN y el programa IMP.exe ej: C:\Oracle\DataBase\product\11.1.0\db_2\BIN 2. 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.dmp' Donde system/Oracle es la pareja nombre de usuario / contrasea que posee privilegios de importacin. FROMUSER= DEMO, es el usuario de donde se realizo el backup. TOUSER=CURSO, es el usuario donde quedara restablecido el backup. FILE = es la ruta donde se encuentra el archivo con el backup. Para realizar la exportacin, es decir el respaldo de la base de datos, se realizan los pasos anteriores, pero en lugar de utilizar el comando IMP, se utiliza el comando EXP. 4.7 Ejercicios

1. Investigar sobre diferentes opciones adicionales a las instrucciones SQL de este captulo. 2. Codificar la base de datos basada en el diseo creado en el capitulo anterior. 3. Codificar la base de datos del punto anterior en por lo menos tres motores diferentes de base de datos. 4. Realizar 5 consultas simples a la base de datos DEMO. 5. Investigar y realizar 5 consultas de tipo join a la base de datos DEMO. 6. Utilizar el comando EXP para exportar una base de datos.

NOTAS Universitarias | 63

Bibliografa
De Miguel, Adoracin; Piattini, Mario y Marcos, Esperanza. Diseo de Bases de Datos Relacionales. Espaa. Alfaomega. 2000. 549 p. Connolly, Thomas y Begg, Carolyn. Sistemas de bases de datos. 4 ed. Espaa. Pearson. 2005. 1320 p. Silberschatz, Abraham; Korth, Henry y Sudarshan. Fundamentos de bases de datos. 5 ed. Espaa. McGraw-Hill. 2006. 953 p. Elmasri, Ramez y Navathe, Shamkant. Sistemas de bases de datos : Conceptos gundamentales. 2 ed. Estados Unidos de America. Addison Wesley. 1997. 887 p. Urman, Scott. Oracle 8 : Programacin PL/SQL. Espaa. Osborne. 1999. 778 p.

Cibergrafa
http://es.wikipedia.org/wiki/Base_de_datos (Definicion de base de datos, consultado: 2011) http://www.alegsa.com.ar/Dic/sgbase de datos.php (Sistema gestor de base de datos, consultado: 2011) http://www3.uji.es/~mmarques/f47/apun/node83.html consultado: 2011) (Modelo Entidad / Interrelacin,

http://www.monografias.com/trabajos24/herramientas-case/herramientas-case.shtml (Herramientas CASE para bases de datos, consultado: 2011) www.uazuay.edu.ec/analisis/El%20modelo%20relacional.pdf (EL modelo relacional, consultado: 2011) http://ora.u440.com/ddl/ (Instrucciones DDL, consultado: 2011) http://ora.u440.com/dml/ (Instrucciones DML, consultado: 2011) http://psoug.org/reference/dcl.html (Instrucciones DCL, consultado: 2011) http://ist.marshall.edu/ist480adbp/plsql_trnctl.html consultado: 2011) (Instrucciones Transaction Control,

http://psoug.org/reference/select.html (Instrucciones Data Retrieval, consultado: 2011)

NOTAS Universitarias | 64

También podría gustarte