Está en la página 1de 53

UNIVERSIDAD TECNOLGICA DEL CENTRO

DE VERACRUZ
UTCV

Manual de Asignatura:

Base de Datos

Tcnico Superior Universitario


Verano 2013

ndice de Contenido
Objetivo del curso............................................................................................................. 1
Competencia a la que contribuye....................................................................................1
Introduccin...................................................................................................................... 2
1

Fundamentos de Base de Datos...............................................................................4


1.1

Conceptos bsicos................................................................................................4

1.2

Anlisis de requerimientos de base de datos........................................................6

Modelo EntidadRelacin (E-R)..............................................................................12


2.1

Modelo de datos EntidadRelacin.....................................................................12

2.2

Modelo de datos EntidadRelacin Extendido....................................................15

Modelo relacional.....................................................................................................16
3.1

Conceptos del modelo relacional........................................................................16

3.2

Esquemas de base de datos relacionales...........................................................18

3.3

Algebra relacional...............................................................................................20

Diseo de base de datos relacionales....................................................................27


4.1

Restricciones de integridad.................................................................................27

4.2

Normalizacin.....................................................................................................28

4.2.1

Normalizacin..............................................................................................28

4.2.2

Primera forma normal (1FN)........................................................................28

4.2.3

Segunda forma normal (2FN)......................................................................29

4.2.4

Tercera forma normal (3FN).........................................................................30

Sistema Gestor de Bases de Datos (SGDB)...........................................................32


5.1

Fundamentos de los SGBD.................................................................................32

5.2

Manipulacin de una BD.....................................................................................33

Lenguaje de definicin de datos (SQL-DLL)..........................................................36


6.1

Introduccin a SQL.............................................................................................36

6.2

Creacin del esquema de una BD......................................................................37

6.3

Modificacin del esquema de una BD.................................................................41

Lenguaje de manipulacin de datos (SQL-DML)...................................................43


7.1

Consultas y vistas...............................................................................................44

7.2

Instrucciones de actualizacin............................................................................46
i

Bibliografa...............................................................................................................49

ii

ndice de Figuras
Figura 1.1 Estructura del sistema Gestor de Base de Datos...............................................6
Figura 1.2 Planeacin de bases de datos...........................................................................8
Figura 2.1 Modelo Entidad Relacin..................................................................................13
Figura 2.2 Diagrama con llaves.........................................................................................15
Figura 3.1 Ejemplo de una base de datos relacional.........................................................16
Figura 3.2 Relacin Pelcula..............................................................................................17
Figura 3.3 Estructura del modelo relacional......................................................................18
Figura 3.4 Ejemplo: Transformar el diagrama E-R a modelo relacional.............................19
Figura 3.5 Ejercicio: Transformar el modelo E-R a modelo relacional...............................20
Figura 3.6 Operacin Seleccionar.....................................................................................21
Figura 3.7 Operacin Proyectar........................................................................................22
Figura 3.8 Operacin renombrar.......................................................................................23
Figura 3.9 Operacin relacin...........................................................................................23
Figura 3.10 Operacin Unin............................................................................................24
Figura 3.11 Operacin interseccin...................................................................................25
Figura 3.12 Operacin Diferencia......................................................................................25
Figura 3.13 Operacin producto cartesianos.....................................................................26
Figura 3.14 Ejemplo de producto cartesiano.....................................................................26
Figura 4.1 Esquema de una tabla denormalizada a la cual se aplica la 1FN.....................29
Figura 4.2 Esquema de una tabla normalizada 1FN luego de aplicarle la 2FN.................30
Figura 4.3 Esquema de una tabla normalizada 2FN a la cual se aplica la 3FN.................31
Figura 5.1 Interaccin de un SGBD...................................................................................32
Figura 5.2 SGBD monousuario.........................................................................................33
Figura 5.3 SGBD multiusuario...........................................................................................33
Figura 5.4 Administrador de base de datos.......................................................................34

iii

Objetivo del curso

El alumno realizar el diseo, creacin y manipulacin de bases de datos relacionales,


acorde a los requerimientos establecidos, para la administracin de la informacin.

Competencia a la que contribuye

Implementar aplicaciones de software; mediante tcnicas de programacin


considerando los requerimientos de la organizacin; para hacer eficiente sus procesos.

Introduccin
Las bases de datos son el mtodo preferido para el almacenamiento estructurado de
datos. Desde las grandes aplicaciones multiusuario, hasta los telfonos mviles y las
agendas electrnicas utilizan tecnologa de bases de datos para asegurar la integridad de
los datos y facilitar la labor tanto de usuarios como de los programadores que las
desarrollaron.

Desde la realizacin del primer modelo de datos, pasando por la administracin del
sistema gestor, hasta llegar al desarrollo de la aplicacin, los conceptos y la tecnologa
asociados son muchos y muy heterogneos. Sin embargo, es imprescindible conocer los
aspectos clave de cada uno de estos temas para tener xito en cualquier proyecto que
implique trabajar con bases de datos.

En este curso trataremos de dar una visin completa de los conceptos relacionados con
los sistemas gestores de bases de datos. En los primeros captulos veremos los aspectos
involucrados en los motores de estos almacenes de datos, su evolucin histrica y los
distintos tipos de organizacin y abs-traccin que han ido surgiendo desde su
conceptualizacin hasta nuestros das. A continuacin profundizaremos en el modelo
llamado relacional (el ms usado en nuestros das), proporcionando los mtodos y
herramientas que nos permitan representar necesidades de almacenamiento y consulta
de datos en este modelo.

En el siguiente captulo estudiaremos a fondo el lenguaje de consultas estructurado SQL,


imprescindible para trabajar con bases de datos relacionales, ya sea directamente o a
travs de cualquier lenguaje de programacin. El diseo de bases de datos tiene tambin
un captulo dedicado a aprender a modelar y representar grficamente una base de datos,
a detectar los posibles problemas de diseo antes de que stos afecten a la aplicacin, y
a construir bases de datos ptimas para los distintos casos de relaciones entre entidades
que formarn nuestra base de datos.

Una vez sentadas estas bases, estaremos en disposicin de examinar detenidamente dos
de los sistemas gestores de bases de datos de software libre ms usados y populares
actualmente. As pues, aprenderemos el uso, administracin y particularidades de MySQL
y PostgreSQL mediante ejemplos y casos prcticos.

Tambin veremos las herramientas de consulta y administracin grficas para estos dos
sistemas gestores de bases de datos, que nos permitirn mejorar nuestra productividad
en el trabajo diario con ellos.

Finalmente, este curso esta descrito de manera gil y sencilla, proporcionando


conocimientos prcticos adems de ejercicio y cuestionarios de auto-evaluacin, con el
cual, al finalizar el curso cada participante podr hacer uso de las herramientas
aprendidas en sus actividades diarias y aplicadas al entorno empresarial incluso en su
vida personal.

1 Fundamentos de Base de Datos


Objetivo particular
Al trmino de esta unidad el participante analizar los conceptos fundamentales, la
manera de manipular de informacin en una empresa as como el uso en la misma.
Introduccin
Una base de datos es un sistema para archivar informacin en computadora cuyo
propsito general es mantener informacin y hacer que est disponible cuando se solicite.
Las bases de datos son un rea de la computacin que ha recibido mucha atencin
debido a sus mltiples aplicaciones: bibliotecas, automatizacin de oficinas, ingeniera de
software, diccionarios automatizados y en general cualquier programa orientado a
mantener y recuperar informacin textual. Su recuperacin, actualizacin y manejo es
relativamente simple con el uso de cualquier manejador de bases de datos.
Actualmente, el estudio de las bases de datos no estructuradas se ha acentuado por
diversas causas. Una de las principales, es la recuperacin de informacin. El objetivo de
cualquier sistema relacionado con recuperacin de informacin es ayudar a los usuarios
de la base de datos a encontrar lo que buscan. Una base de datos textual es aquella cuyo
propsito es almacenar documentos de texto, que pueden ser estructurados o no.

1.1 Conceptos bsicos


Objetivo Especfico
El alumno determinar los requerimientos de informacin para establecer el alcance de la
Base de datos.
Introduccin
Un Sistema de Gestin de Bases de Datos (SGBD) es un conjunto de programas que
permiten el almacenamiento, modificacin y extraccin de la informacin en una base de
datos, adems de proporcionar herramientas para aadir, borrar modificar y analizar los
datos. Los usuarios pueden acceder a la informacin usando herramientas especficas de
interrogacin y de generacin de informes, o bien mediante aplicaciones al efecto.
Ejercicio 1
Solicitar definir con sus propias palabras cada uno de los siguientes conceptos:

Gestor
Almacenamiento
ndices
Datos
Campos
Registros
4

Son numerosas las definiciones que se pueden sealar acerca de lo que significa la
palabra administracin, a continuacin se mencionan algunas definiciones, que llaman
ms la atencin y que se consideran para integrar el concepto de administracin de
empresa agroindustrial:
Base de datos: Una base de datos es un archivo o conjunto de archivos que contienen
mltiples informaciones que de alguna forma guardan relacin. Por ej. Una base de datos
para gestionar un Videoclub almacenar mltiples informaciones sobre pelculas, socios,
etc y entre ellas existirn relaciones como por ej. una pelcula con un socio por medio
de un prstamo o alquiler.
Sistema Gestor de Bases de Datos (SGBD): Para construir una base de datos en soporte
informtico con todas las informaciones a almacenar (estructuras de datos, tablas, ndices
, etc), es necesario disponer de una herramienta que lo permita. Este es el cometido de
un SGBD; bsicamente permite crear, manipular gestionar y eliminar tanto los datos como
las estructuras de una base de datos, permitiendo de esta forma el tratamiento
automatizado y fcil de la informacin almacenada en ella. No se debe confundir base de
datos con SGBD con Base de Datos, el primero es una herramienta para la creacin
mientras que la segunda es una solucin concreta a un problema de almacenamiento de
datos determinado. Por ej. Con Access (es un SGBD) podemos crear y gestionar mltiples
bases de datos (para gestionar un videoclub, una biblioteca, un comercio, etc) con
diferentes necesidades de almacenamiento.
Tabla: Estructura que almacena todos los datos sobre un tipo de entidad o relacin. Por ej.
Clientes, Socios, Libros, Prstamos.
Campo: Cada uno de las informaciones que se almacenan sobre una entidad. Por ej.
Edad, Telfono, DNI (columnas de la tabla).
Estructura del Registro: Conjunto de campos que determinan que datos se almacenan
sobre una entidad. Por ej. Nombre, Apellidos, Telfono, (nombres de los campos que
definen la estructura de la tabla).
Registro de datos (o Registro): Cada uno de los conjuntos de datos almacenados sobre
una ocurrencia de una entidad determinada. Por ej. Antonio, Garca Ramos, 956432178
son los datos que conforman el registro de Antonio. (filas de datos de la tabla).
Campo ndice: Es un tipo especial de campo por el que se establece un orden para realiza
bsquedas. La necesidad de estos campos es evidente. Si por ej. tenemos una tabla con
5000 registros de personas, resultar ms fcil buscar a una persona por sus apellidos si
la tabla est ordenada por este campo. Si no estuviera ordenada se podra realizar la
bsqueda pero para un apellido como Martn en el peor de los casos tendramos que
buscar hasta el final de la tabla, mientras que con un orden (ndice) sobre el campo
apellidos, en el peor de los casos no pasaramos de los registros que tuvieran el apellido
Martn ya que ms all no podra haber ninguna persona con ese apellido.
Ejercicio 2: Elaborar en libreta los elementos que conforman una estructura del sistema.
5

Figura 1.1 Estructura del sistema Gestor de Base de Datos.

Conclusin
Las base de datos son de suma importancia hoy en da, el contar con herramientas de
vanguardia protegen la entidad del usuario. La implementacin de una base de datos
mejora el rendimiento y la accesibilidad de los datos debido a una disminucin de trfico
de la red y a un trabajo colaborativo de varios servidores como si fuera un solo equipo de
trabajo.

1.2 Anlisis de requerimientos de base de datos


Objetivo Especfico
Los participantes aplicaran diversas tcnicas de recopilacin de datos tales como
entrevistas, cuestionarios entre otros para la mejor compresin y anlisis de informacin.
Introduccin
6

Como vimos en el subtema anterior, el anlisis de requerimientos es la tarea que plantea


la asignacin de software a nivel de sistema y el diseo de programas. El anlisis de
requerimientos facilita al ingeniero de sistemas especificar la funcin y comportamiento de
los programas, indicar la interfaz con otros elementos del sistema y establecer las
ligaduras de diseo que debe cumplir el programa. El anlisis de requerimientos permite
al ingeniero refinar la asignacin de software y representar el dominio de la informacin
que ser tratada por el programa. El anlisis de requerimientos del diseador, la
representacin de la informacin y las funciones que pueden ser traducidas en datos,
arquitectura y diseo procedimental. Finalmente, la especificacin de requerimientos
suministra al tcnico y al cliente, los medios para valorar la calidad de los programas, una
vez que se haya construido.
Ejercicio 4: Solicitar a los alumnos el concepto de un requerimiento administrativo de base
de datos.
Requerimientos administrativos: se requiere mucho ms para el desarrollo de sistemas de
bases de datos que nicamente seleccionan un modelo lgico de base de datos. La bases
de datos es una disciplina organizacional, un mtodo, ms que una herramienta o una
tecnologa. Requiere de un cambio conceptual y organizacional.
Elementos claves de organizacin en un ambiente de Bases de Datos

Sistema de administracin de base de datos


Administracin de informacin
Tecnologa de administracin de base de datos
Usuarios
Planeacin de informacin y tecnologa de modelaje

Figura 1.2 Planeacin de bases de datos.

Los mtodos de obtencin de informacin pueden ser:


LA ENTREVISTA
7

La entrevista es una conversacin dirigida, con un propsito especfico y que usa un


formato de preguntas y respuestas.
Con la entrevista se busca obtenerla opinin y sentimientos del entrevistado acerca del
sistema actual, los objetivos de la organizacin y los personales.
En ocasiones las opiniones de la persona pueden ser ms importantes y ms reveladoras
que los hechos, debido a que el entrevistado conoce mejor la organizacin que el analista.
Los objetivos son informacin importante que puede ser recogida en la entrevista. Los
hechos pueden representar los hechos pasados, los objetivos futuros.
En la entrevista, se est dando una relacin con alguien que probablemente es extrao.
Por tanto se necesita dar confianza, comprensin rpidamente pero al mismo tiempo, se
debe mantener el control de la entrevista. Dentro de la entrevista se deber vender el
sistema proporcionando al entrevistado informacin necesaria.
Las entrevistas permiten la interaccin con las preguntas y su significado. En una
entrevista el analista tiene la oportunidad de refinar una pregunta, definir un trmino
dudoso; cambiar el curso de las preguntas, responder una apariencia confusa y en
general controlar el contexto.
CUESTIONARIO
Los cuestionarios son tcnicas de recopilacin de informacin que permiten que los
analistas estudien actitudes, creencias, comportamientos y caractersticas de varias
personas principales en la organizacin que pueden ser afectadas por los sistemas
actuales y en proceso.

Las actitudes son lo que la gente de la organizacin dice que quiere.


Las creencias son lo que la gente piensa que es, de hecho cierto.
El comportamiento es lo que hacen los miembros de la organizacin.
Las caractersticas son propiedades de las personas o cosas.
Las respuestas obtenidas mediante cuestionarios usando preguntas cerradas
pueden ser cuantificadas.
Las respuestas a cuestionarios de preguntas abiertas personalizadas e
interpretadas de otras formas.
Las preguntas sobre actitudes y creencias son notablemente sensibles a la
redaccin escogida por el analista.
Los cuestionarios pueden ser usados para determinar qu tan amplio o limitado
es el sentimiento expresado en una entrevista. Pueden ser usados para
investigar a una gran muestra de usuarios de un sistema, para tratar de
encontrar problemas o recoger cosas importantes antes para realizar la
entrevista.

OBSERVACIN

La observacin es otra tcnica til para el analista en su proceso de investigacin,


consiste en observar a las personas cuando efectan su trabajo. Como tcnica de
investigacin, la observacin tiene amplia aceptacin cientfica.
La observacin es una tcnica de observacin de hechos durante la cual el analista
participa activamente o acta como espectador de las actividades llevadas a cabo por una
persona para conocer mejor su sistema. El propsito de la observacin es mltiple,
permite al analista determinar que se est haciendo, como se est haciendo, quien lo
hace, cuando se lleva a cabo, cuanto tiempo toma, donde se hace y porque se hace.
TIPOS DE OBSERVACIN
El analista puede observar de tres maneras bsicas:
Puede observar a una persona o actividad sin que el observador se d cuenta y sin
interactuar por parte del propio analista.
El analista puede observar una operacin sin intervenir para nada pero estando la
persona observada enteramente consiente de la observacin.
Se puede observar y estar en contacto con las personas observadas. La interrogacin
puede consistir simplemente en preguntar respecto a una actividad especfica, pedir una
explicacin, etc.
La observacin puede emplearse para verificar los resultados de una entrevista, o bien
como preparacin de la misma. Tambin es otra tcnica valiosa para recopilar datos que
implican relaciones. La observacin tiende a adquirir mayor sentido al nivel tcnico del
procesamiento de datos, donde las tareas se cuantifican ms fcilmente. Entre estas
tareas encontramos la recopilacin, acumulacin y transformacin de los datos.
Ejercicio 5: Formar equipo de trabajo y realizar ejemplos de posibles preguntas utilizando
alguna tcnica de recoleccin de informacin.
Cules son los problemas ms frecuentes que presenta su sistema de informacin?
a_______________________________________________________________________
b_______________________________________________________________________
c_______________________________________________________________________

De los problemas listados anteriormente, cual es el que se presenta con mayor


frecuencia?
________________________________________________________________________
________________________________________________________________________
____________________________________________
Por qu?
________________________________________________________________________
________________________________________________________________________
________________________________________________________________________
________________
Preguntas cerradas
Conocidas tambin como enunciados. Son aquellas que se limitan o cierran las opciones
de respuesta disponibles.
Ejemplo:De acuerdo a sus necesidades marque con una cruz el nombre del software que
usa para sus actividades diarias con mayor frecuencia:
[ ] Word [ ] Visual Fox

[ ] Excell

[ ] Turbo c

[ ] Powerpoint

[ ] Arena

Conclusin
En cuanto al requerimiento podemos decir que cumple las mismas tareas de anlisis que
del software y tiene como caracterstica relacionar la informacin como va organizacin y
asociacin donde la base de datos tiene una ventaja que es utilizar la plataforma para el
desarrollo del sistema de aplicacin en las organizaciones.
Otro aspectos importante sera el diseo y creacin de la base de datos, donde existen
distintos modos de organizar la informacin y representar las relaciones entre por datos
los tres modelos lgicos principales dentro de una base de datos son el jerrquico, de
redes y el relacional, los cuales tiene ciertas ventajas de procesamiento y de negocios.
Conclusin de la Unidad
Como se puede observar en el desarrollo de esta temtica, algunos de los aspectos
aprendidos y que de gran peso es la base de datos su definicin, requerimiento, ventajas
y caractersticas donde podemos decir que la base de datos: Es una coleccin de datos o
informacin usados para dar servicios a muchas aplicaciones al mismo tiempo.
Otro punto necesario de recalcar es la clase de bases de datos las cuales son, base de
datos documental, base de datos distribuidas y base de datos orientadas a objetos e
hipermedia y tienen como funcin derivar, almacenar y procesar datos dentro de una
informacin.

10

2 Modelo EntidadRelacin (E-R)


Objetivo Particular
Al trmino de esta unidad el participante realizar el modelo E-R y el modelo Entidad
Relacin Extendido (EE-R) para disear un esquema de la base de datos, de acuerdo a
los requerimientos establecidos.
Introduccin
El modelo entidad-relacin (E-R) es uno de los varios modelos conceptuales existentes
para el diseo de bases de datos. Fue inventado por Peter Chen en los aos setenta. El
propsito de este modelo es simplificar el diseo de bases de datos a partir de
descripciones textuales de los requerimientos.
Los elementos esenciales del modelo son las entidades, los atributos y las relaciones
entre las entidades. Una entidad es un objeto que existe y que es distinguible de otros
objetos. Por ejemplo, Horst von Brand, profesor de la Universidad Santa Mara, siendo
una persona distinguible de cualquier otra, es una entidad. Una entidad puede ser
concreta (como dicho profesor) o abstracta (como un algoritmo, un curso o una direccin
en Internet).
Las entidades tienen atributos. Un atributo de una entidad es una caracterstica
interesante sobre ella, es decir, representa alguna propiedad que nos interesa almacenar.
Por ejemplo, el profesor tiene un nombre, una fecha de nacimiento y un nmero de R.U.T;
algunos de los valores de estos atributos los comparte con otras personas, y otros son
exclusivos de l. El profesor adems tiene otras propiedades, como su masa o estatura,
que no son interesantes1.

2.1 Modelo de datos EntidadRelacin


Objetivo Especfico
El participante aplicara los conceptos de entidades, relaciones y atributos que son
necesarios en un diagrama E-R
Introduccin
Primeramente es importante dar a conocer los elementos que integran un diagrama
entidad relacin tales como entidades, atributos simples y compuestos, llaves primarias
entre otros.
Ejercicio 1: Solicitar a los participantes la solucin de un ejercicio planteado del mundo
real.
Se quiere modelar un sistema para manejar artculos cientficos. Un artculo est escrito
por un autor, aunque a veces pueden ser varios. Obviamente una misma persona puede
participar en ms de un artculo. Cada artculo tiene ttulo, resumen y contenido. Cada
11

autor pertenece a alguna institucin. Las entidades que pueden extraerse de esta
descripcin podran ser:

Artculo
Autor
Institucin

Los atributos de un artculo seran el ttulo, el resumen y el contenido. Un autor tendra los
atributos de una persona: el nombre, la nacionalidad y la fecha de nacimiento. De una
institucin slo tomaremos el nombre.
Entre estas entidades podemos reconocer las siguientes relaciones: el artculo es escrito
por los autores; el autor pertenece a una institucin. La Figura 2.3 muestra un diagrama
de E-R que ilustra esta descripcin.

Figura 2.3 Modelo Entidad Relacin.

Atributos y Llaves
Los atributos, tanto de entidades como de relaciones, toman sus valores posibles de un
conjunto llamado dominio. El dominio es, entonces, el conjunto de valores posibles que
puede tomar un atributo dado de un conjunto de entidades dado. Por ejemplo, la fecha de
nacimiento de una persona puede ser una fecha cualquiera anterior a la fecha actual. El
dominio de las fechas de nacimiento, entonces, es el subconjunto de fechas que son
anteriores (o iguales, en algunos casos) a la fecha de hoy. El dominio de los nmeros de
telfono, en Chile, podra ser una cadena de caracteres que cumpliera con el formato (XX)
XXX-XXXX (simplificado), donde las X son dgitos. En general los dominios sern ms
bien amplios, aunque cuando se lleva a cabo la implementacin es preferible restringir los
dominios lo ms posible de manera que el gestor de bases de datos automticamente
haga algunas verificaciones sobre los datos que se almacenan, para asegurar la
integridad de los datos. Veremos cmo hacer esto en la seccin siguiente.

12

Algunos atributos de un conjunto de entidades son especiales. De partida es necesario


definir cules de ellos son opcionales y cules son obligatorios. Como el nombre lo indica,
un atributo obligatorio es aquel que siempre debe estar definido para toda entidad. Un
atributo opcional, en cambio, puede quedar sin definir para algunas de las entidades del
conjunto de entidades. En general, es deseable que la mayor cantidad de atributos
posible se definan como obligatorios, puesto que permite simplificar mucho algunas
operaciones, al tiempo que asegura una mejor integridad de los datos. Veremos ms
sobre esto en la seccin siguiente.
Otro concepto importante relacionado con los atributos es el de las llaves. Una superllave
de una entidad es un atributo o conjunto de atributos que permite distinguir de modo nico
cada entidad dentro de un conjunto de entidades. Por ejemplo, el nombre y RUT de una
persona sera una superllave. Slo el nombre no podra serlo, puesto que dos personas
pueden tener el mismo nombre. Un conjunto de entidades puede tener ms de una
superllave; otra superllave para personas podra ser el nombre, la fecha de nacimiento y
la direccin postal, puesto que es muy improbable que dos personas hayan nacido el
mismo da, vivan en la misma casa y se llamen igual; pero omitiendo cualquiera de esos
atributos es razonable esperar encontrar coincidencias.
Adems, una superllave puede contener ms atributos de los necesarios para identificar
unvocamente cada entidad. Eliminando los atributos innecesarios de las superllaves se
obtienen las llaves candidatas. Por ejemplo, en el caso del nombre y RUT, usando slo el
RUT servira tambin como superllave, y por lo tanto como llave candidata. Observe que
todos los atributos que forman una llave candidata son obligatorios, puesto que si falta
alguno, no es posible identificar completamente la entidad.
Finalmente, se escoge una de las llaves candidatas y se designa como llave primaria del
conjunto de entidades.
Ejercicio 2: Revisar el ejercicio e identificar lo siguiente:
1.
2.
3.
4.

Atributos llave
Entidad
Entidad dbil
Superllave

13

Figura 2.4 Diagrama con llaves.

2.2 Modelo de datos EntidadRelacin Extendido


Objetivo Especfico
El participante aplicar los conceptos de subclase, super clase y herencia en la solucin
de un problema determinado.
Introduccin
Los atributos, tanto de entidades como de relaciones, toman sus valores posibles de un
conjunto llamado dominio. El dominio es, entonces, el conjunto de valores posibles que
puede tomar un atributo dado de un conjunto de entidades dado. Por ejemplo, la fecha de
nacimiento de una persona puede ser una fecha cualquiera anterior a la fecha actual. El
dominio de las fechas de nacimiento, entonces, es el subconjunto de fechas que son
anteriores (o iguales, en algunos casos) a la fecha de hoy.
Conclusin de la Unidad
En general los dominios sern ms bien amplios, aunque cuando se lleva a cabo la
implementacin es preferible restringir los dominios lo ms posible de manera que el
gestor de bases de datos automticamente haga algunas verificaciones sobre los datos
que se almacenan, para asegurar la integridad de los datos.

14

3 Modelo relacional
El modelo E-R se considera un modelo conceptual ya que permite a un nivel alto el ver
con claridad la informacin utilizada en algn problema o negocio.
El modelo relacional consiste en desarrollar un buen modelo "lgico" que se conoce como
"esquema de la base de datos" (database schema) a partir del cual se podr realizar el
modelado fsico en el DBMS, es importante mencionar que es un paso necesario, no se
puede partir de un modelo conceptual para realizar un fsico.

Figura 3.5 Ejemplo de una base de datos relacional.

3.1 Conceptos del modelo relacional


Objetivo
El alumno transformar un diagrama E-R o EE-R a un modelo relacional para realizar
consultas.
Conceptos bsicos
Tablas: El modelo relacional proporciona un manera simple de representar los datos: una
tabla bidimensional llamada relacin.

15

Figura 3.6 Relacin Pelcula

La relacin Pelculas tiene la intencin de manejar la informacin de las instancias en la


entidad Pelculas, cada rengln corresponde a una entidad pelcula y cada columna
corresponde a uno de los atributos de la entidad. Sin embargo las relaciones pueden
representar ms que entidades, como se explicar ms adelante.
Atributos: Los atributos son las columnas de un relacin y describen caractersticas
particulares de ella.
Esquemas: Es el nombre que se le da a una relacin y el conjunto de atributos en ella.
Pelculas (ttulo, ao, duracin, tipo)
Nota: En un modelo relacin, un diseo consiste de uno o ms esquemas, a este conjunto
se le conoce como "esquema relacional de base de datos" (relational database schema) o
simplemente "esquema de base de datos" (database schema).
Tuplas
Cada uno de los renglones en una relacin conteniendo valores para cada uno de los
atributos.
(Star Wars, 1977, 124, color)
Dominios
Se debe considerar que cada atributo (columna) debe ser atmico, es decir, que no sea
divisible, no se puede pensar en un atributo como un "registro" o "estructura" de datos.

16

Figura 3.7 Estructura del modelo relacional.

3.2 Esquemas de base de datos relacionales


Clave primaria o principal: Es un identificador nico para la tabla.
Clave fornea o ajena: Representa una referencia a la tupla donde se encuentra el
valor correspondiente de la clave primaria.
Reglas para la conversin del modelo E-R al Modelo Relacional:
Definicin de tablas

una tabla por cada conjunto de entidades


nombre de tabla = nombre de conjunto de entidades
una tabla por cada conjunto de relaciones m-m
nombre de tabla = nombre de conjunto de relaciones

Definicin de columnas para cada tabla

conjuntos fuertes de entidades


columnas = nombre de atributos
conjuntos dbiles de entidades
columnas = llave_primaria (dominante) y atributos(subordinado)
conjunto de relaciones R (m-m) entre A, B
columnas (R) = llave_primaria (A) y llave_primaria (B) y atributos(R)
conjunto de relaciones R (1-1) entre A y B
columnas (A) = atributos(A) y llave primaria(B) y atributos(R)
conjunto de relaciones R (1-m) entre A y B
columnas (B) = atributos(B) y llave primaria(A) y atributos(R)

17

Figura 3.8 Ejemplo: Transformar el diagrama E-R a modelo relacional.

Solucin:
Compositores(DNI, NombreYApe)
Canciones(Titulo, duracion,NmSerie)
Autor(DNI, Titulo, duracin, NmSerie)
CD(NumSerie, TtuloCD, intrprete)

Ejercicio: Transformar el siguiente modelo entidad-relacin al modelo relacional:

Figura 3.9 Ejercicio: Transformar el modelo E-R a modelo relacional.

18

3.3 Algebra relacional


El lgebra relacional consiste de algunas simples pero poderosas maneras de construir
nuevas relaciones a partir de otras. Si pensamos que las relaciones iniciales son los datos
almacenados entonces las nuevas relaciones se pueden ver como respuestas a algunas
consultas deseadas.
Es la manera de hacer consultas a una base de datos empleando algunos conceptos
matemticos aplicados a un esquema relacional.
Operaciones del Algebra Relacional

Seleccionar
Proyectar
Renombrar
De la Teora de Conjuntos
o Unin
o Interseccin
o Diferencia
o Producto Cruzado
Reunin
Reunin Natural
Divisin

Operaciones del Algebra Relacional Seleccionar Sigma (sigma)


Crea una nueva relacin a partir de otra, pero incluyendo slo algunas de las tuplas a
partir de un criterio dado.

El criterio se basa en restricciones sobre los atributos de la relacin R y no pueden


incluirse otras relaciones en dicho criterio que no estn en R.
Sintaxis
Sigma Ax Condicin (R)

19

Figura 3.10 Operacin Seleccionar

20

Figura 3.11 Operacin Proyectar

21

Figura 3.12 Operacin renombrar.

Figura 3.13 Operacin relacin.

22

Figura 3.14 Operacin Unin.

23

Figura 3.15 Operacin interseccin.

Figura 3.16 Operacin Diferencia

24

Figura 3.17 Operacin producto cartesianos.

Figura 3.18 Ejemplo de producto cartesiano.

25

4 Diseo de base de datos relacionales


4.1 Restricciones de integridad
Las restricciones de integridad, son condiciones que debern cumplir todas las instancias
vlidas de una relacin para garantizar la integridad de los datos.
Seis tipos de principales:
1.
2.
3.
4.
5.
6.

De llave
De unicidad
Valor nulo
De dominio
Integridad referencial
Generales

Restriccin de llave (Primary Key)

Llave: conjunto de atributos que identifican unvocamente a cada tupla de una


tabla.
Si una relacin tiene muchas llaves (candidatas), una se elige como llave
primaria.
Ningn par de tuplas debe tener la misma combinacin de valores en los atributos
que forman la llave primaria.

Restriccin de Unicidad (Unique)

Bajo esta restriccin, un atributo slo puede tomar valores diferentes.


Ejemplo: el email de un cliente.
Una llave primaria por definicin debe satisfacer esta restriccin.

Restriccin de valor Nulo (Not null)

Bajo esta restriccin, un atributo no debe tomar nulo como valor. (Las relaciones
debe ser diseadas de tal forma que sus tuplas tengan el menor nmero de nulos
posibles)
Una llave primaria por definicin debe satisfacer esta restriccin.
Razones para el valor nulo:
o Atributo no aplicable o invlido
o Valor del atributo desconocido (puede existir)
o Valor de existencia conocida, pero indisponible.
Los atributos que son nulos frecuentemente pueden ser colocados en relaciones
separadas.

Restriccin de dominio (SET / ENUM)

26

Bajo esta restriccin, un atributo debe tomar su valor de un conjunto


predeterminado.
Los conjuntos pueden ser:
o Enumerados: Telfono puede tomar un valor de {Celular, Fijo}
o Definidos por un rango: 0 <= edad < 150

Restriccin de Integridad Referencial (Foreign key)

Especificada entre dos tablas para mantener la consistencia de los datos entre
ellas.
Definicin de llave fornea: Conjunto de uno o ms atributos de una tabla
referenciando a la llave primaria de otra tabla.
El valor del atributo (o atributos) de la llave fornea FK de la tabla refernecial R1
es:
o Un valor existente de llave primaria en la tabla referenciada R2.
o Nulo.
Hay que determinar las consecuencias de la modificacin de la relacin.
o CASCADE Propagacin de la accin realizada (borrado).
o SET NULL Poner valor nulo a la llave fornea.
o SET DEFAULT - Poner un valor a la llave fornea.
Entindase como modificacin la actualizacin o borrado de datos.

Restricciones Generales (Check / Assertion)

Comprobar que los valores de un atributo cumplan con una condicin


especificada.
o Puede aplicar sobre un atributo de una tabla.
o O sobre varios atributos de diferentes tablas.
Ligadas a la semntica de la aplicacin.
Ejemplo: la fecha de envo de una canasta de compra no debe ser anterior a la
fecha de pago.

4.2 Normalizacin
4.2.1 Normalizacin
La normalizacin es un trmino que hace referencia al conjunto de reglas metodolgicas
que se aplican sobre entidades con el propsito de adaptarlas al modelo relacional. Este
proceso apunta a generar modelos de datos donde la redundancia de stos no existe o se
mantiene en su mnima expresin.
Fue Codd quien enunci las reglas o formas de normalizacin. Esta metodologa permite
a una entidad en estado inicial (o denormalizada) pasar a la primera forma normal
(abreviada como 1FN), segunda forma normal (2FN) y as sucesivamente hasta alcanzar
el grado de normalizacin deseado.

27

4.2.2 Primera forma normal (1FN)


Una tabla se encuentra en primera forma normal (1FN) si y slo si cada uno de los
campos contiene un nico valor para un registro determinado y la tabla tiene definida una
clave primaria (Rosa, 2005).
As que el primer paso en la normalizacin es poner los datos en la primera forma normal.
Esto se hace situando los datos en tablas separadas, de manera que cuando una entidad
no ha sido normalizada, decimos que est denormalizada. La Figura 4.19 muestra cmo
se aplica la normalizacin 1FN a una tabla para corregir los problemas que genera la
redundancia de datos.
Podemos ver que los registros no tienen una clave primaria, y los campos de curso no
contienen un nico valor para el registro. Lo que debemos considerar revisar aqu es:

Eliminar los grupos repetitivos de las tablas individuales.


Crear una tabla separada por cada grupo de datos relacionados.
Identificar cada grupo de datos relacionados.

Figura 4.19 Esquema de una tabla denormalizada a la cual se aplica la 1FN.

4.2.3 Segunda forma normal (2FN)


Una entidad se encuentra en segunda forma normal (2FN) si comparando todos y cada
uno de los campos de la tabla con la clave definida, todos dependen directamente de
sta. Por otra parte, para aplicar la 2FN, la entidad ya debe estar en 1FN.
Empezamos a comparar cada uno de los campos y nos damos cuenta que el campo de
cursos no dependen directamente de la clave definida. Estos nos lleva a:
28

Crear tablas separadas para aquellos grupos de datos que se aplican a varios
registros.
Relacionar estas tablas mediante una clave externa.

Para nuestro ejemplo creamos la tabla curso y establecemos la relacin mediante la llave
id_alumno externa para la tabla curso.

Figura 4.20 Esquema de una tabla normalizada 1FN luego de aplicarle la 2FN.

4.2.4 Tercera forma normal (3FN)


Se dice que una tabla est en tercera forma normal (3FN) si y slo si los campos de la
tabla dependen nicamente de la clave, es decir que los campos de las tablas no
dependen unos de otros.

29

Tomando como referencia el ejemplo anterior, veremos que id_alumno de la relacin


curso no est relacionado con la clave primaria de la relacin curso.
Entonces lo que hacemos es separar el id_alumno en otra tabla, pero recordemos que
no se debe perder esta relacin de informacin. Por lo tanto creamos la tabla detalle de
cursos.
Como resultado tendramos tres tablas: alumno, curso y detalle_curso.

Figura 4.21 Esquema de una tabla normalizada 2FN a la cual se aplica la 3FN.

Las tablas que al final nos quedan, despus de aplicar la 1FN, 2FN y la 3FN so:

alumno
curso
detalle_curso

30

5 Sistema Gestor de Bases de Datos (SGDB)


Objetivo
El alumno realizar la gestin de la BD a travs de un SGBD para aprender su
funcionamiento. Se lo qu es sistema gestor de bases de datos, como una herramienta
para manejar una base de datos; se identifica el usuario que se encarga de administrar la
base de datos.

5.1 Fundamentos de los SGBD


SGBD es un conjunto de programas que se encargan de manejar la creacin y todos los
accesos a la base de datos.
SGBD es un conjunto coordinado de programas, procedimientos, lenguajes, etc. que
suministra, tanto a los usuarios no informticos como a los analistas, programadores o al
administrador, los medios necesarios para describir, recuperar y manipular los datos
almacenados en la BD, manteniendo su integridad, confidencialidad y seguridad.
SGBD es una herramienta que permite interactuar los datos con los usuarios de datos, en
forma que se garantice todas las propiedades definidas para una base de datos.

Figura 5.22 Interaccin de un SGBD.

Tipos de sistemas gestionadores de base de datos


SGBD monousuarios, permiten crear base de datos y puede acceder a l un solo
usuario.

31

Figura 5.23 SGBD monousuario.

SGBD multiusuario, permiten crear base de datos y pueden acceder a l varios


usuarios.

Figura 5.24 SGBD multiusuario.

5.2 Manipulacin de una BD


Componentes de un sistema gestionador de base de datos
Los SGBD estn compuesto por: lenguaje de definicin de datos y lenguaje de
manipulacin de datos.
Lenguaje de definicin de datos (DDL Data Definition Language), Es utilizado para
describir todas las estructuras de la informacin y los programas que se usan para
construir, actualizar e introducir la informacin que contiene una base de datos.
Lenguaje de manipulacin de datos (DML Data Manipulation Language), es
utilizado para escribir programas que crean, actualizan y extraen informacin de la base
de datos.
Entre las principales tareas de los SGBD tenemos

El SGBD oculta
al usuario los detalles del
almacenamiento
informacin, mostrando una visin abstracta de la informacin.

de

la

32

El SGBD permite integrar distintos tipos de informacin y permite compartirlos


entre distintas aplicaciones y usuarios.
El SGBD se encarga de garantizar la seguridad de la informacin controlando
el acceso a la misma.
El SGBD controla la integridad de la informacin comprobando la consistencia
de la misma cuando se realizan las operaciones de insercin, modificacin o
borrado.

Administrador de base de datos (ABD)


ABD es la persona encargada de la operacin del sistema, y es el responsable de decidir:

Los datos que se deben almacenar en la base de datos


La poltica de mantenimiento, tratamiento de los datos y seguridad de la
informacin

ABD es un especialista en base de datos e informtica que conoce las herramientas de


gestin de la BD, as como la forma de desarrollar los planes del administrador de datos.
As mismo, decide la poltica de copias de seguridad, duplicacin de la informacin filtros
de acceso de usuarios que aseguren los niveles de seguridad deseados, tanto frente a la
prdida de informacin como frente al acceso no autorizado.

Figura 5.25 Administrador de base de datos.

Entre las principales funciones del ABD tenemos:

Apoyar y asesorar durante el proceso de adquisicin del SGBD.


Definir la informacin que contendrn las base de datos corporativas.
Mantener la relacin y comunicacin estrecha con los especialistas del SGBD.
Disear las estructuras de almacenamiento y estrategias de acceso a las
base de datos.
Atender y servir como punto de enlace entre los usuarios de la organizacin.
Definir estndares y procedimientos para respaldar y recuperar la informacin
que contiene las base de datos.
Proporcionar
asesora
tcnica
a analistas y programadores que se
encuentran desarrollando aplicaciones que crean y/o accedan las base de datos.
33

Conclusin de la unidad
En esta unidad se estudiado el sistema gestor de base de datos: una herramienta para
manipular una base de datos, pues es con esta herramienta como se administran los
datos de una base de datos realmente. El SGBD utiliza SQL para que el usuario pueda
agregar o consultar datos.

34

6 Lenguaje de definicin de datos (SQL-DLL)


En una empresa la informacin es uno de sus recursos ms valiosos, por lo que el uso de
buenas prcticas para administrarla es importante para sobrevivir. En las diferentes reas
y niveles organizacionales se genera informacin que se necesita almacenar para
despus utilizarse en los procesos de la organizacin. La informacin puede ser
almacenada utilizando software administrador de bases de datos, pero antes de utilizarlo
es necesario definir qu informacin es importante almacenar y conocer el uso que se le
dar. Este curso abarcar los aspectos ms importantes para su correcta comprensin,
diseo, construccin e implementacin.
Objetivo Particular
Al trmino de esta unidad el alumno identificar el concepto y funcionalidad del SQL, as
como las caractersticas de los lenguajes de DDL y DML.
Introduccin
El lenguaje de consulta estructurado o SQL es el lenguaje de manejo de datos
relacionales ms importante en la actualidad. El American National Standards Institute
(ANSI) lo ha respaldado como el lenguaje seleccionado para el manejo de bases de datos
relacionales, adems de ser el lenguaje de acceso a datos que usan la mayora de los
SMBD relacionales tales como Oracle, SYBASE, SQL Server, Paradox, Mysql,
PostgreSQL, Microsoft Access y otros.

6.1 Introduccin a SQL


Objetivo Especfico

El participante conocer los orgenes, caractersticas e importancia del lenguaje de


consulta ms usado por los SMBD relacionales que se comercializan.

Introduccin
El lenguaje de consulta estructurado es un lenguaje declarativo de acceso a bases de
datos relacionales que permite especificar diversos tipos de operaciones sobre las
mismas.
El desarrollo de SQL empez en las instalaciones de investigacin de IBM a mediados de
la dcada de 1970 con el nombre de SEQUEL. Salieron varias versiones de SEQUEL y en
1980 el producto recibi el nombre de SQL. Desde entonces, IBM en unin con otros
proveedores han desarrollado productos SQL.
SQL no es un lenguaje de programacin sino que es considerado un sublenguaje de
datos o un lenguaje de acceso a datos que se implanta en otros lenguajes, las rdenes de
SQL se pueden usar interactivamente como un lenguaje de consulta.
Caractersticas: Sus principales caractersticas son:
35

Manejo del lgebra y clculo relacional, lo que permite realizar consultas con el fin
de recuperar, de manera sencilla, informacin de inters de una base de datos, as
como tambin hacer cambios sobre la misma.
Es adems un lenguaje de cuarta generacin (4GL).
Puede ser incrustado en disparadores y procedimientos almacenados.
Las sentencias SQL deben terminar con punto y coma

Ventajas: Sus dos principales ventajas son:

Su gran difusin, al ser el lenguaje de la mayora de los SMBDR


Su elevada expresividad, permitiendo realizar operaciones complejas en poco
tiempo.

Ejercicio1: Considere las caractersticas del lenguaje de consulta SQL y mencione 1


ventaja por cada caracterstica que posee.

6.2 Creacin del esquema de una BD


Objetivo Especfico

El estudiante identificar las clusulas y sintaxis del DDL para la creacin de BD


(creacin de la base de datos, creacin de tablas, creacin de ndice, definicin
de restricciones, definicin de llave primaria y fornea) y vistas.

Introduccin
El esquema de una base de datos define la estructura de sta, sus tablas, relaciones,
dominios y reglas del negocio. El esquema es un diseo sobre el cual se construye la
base de datos y sus aplicaciones.
Ya que las tablas y relaciones son temas vistos con anterioridad slo se reforzar la
definicin de dominio y regla del negocio.
Dominio: Un dominio es un conjunto de valores que puede tener una columna. El dominio
puede ser el tipo de dato, por ejemplo, para el caso de una columna llamada Fecha de
nacimiento, cuyo dominio sera el tipo de dato DATE, o el tipo de dato ENTERO para una
columna denominada Cantidad.
Ya que los dominios se representan principalmente con tipos de datos, es necesario
conocer los tipos que maneja SQL, los cuales se dividen principalmente en:

Char, para texto de longitud fija


Varchar, para texto de longitud variable
Integer, para nmeros enteros

Aunque existen ms tipos de datos en el estndar SQL.

36

Reglas del negocio: son las restricciones en las actividades del negocio y necesitan
reflejarse en la base de datos al igual que en sus aplicaciones. Algunos ejemplos de
reglas de negocio para una base de datos de una biblioteca son:

Para pedir prestado un libro, se debe contar con credencial de alumno o profesor
No se puede prestar ms de 10 ejemplares al mismo alumno.
Los libros se prestan por un espacio no mayor a 10 das hbiles
No se permite el prstamo de otro ejemplar si tiene alguno vencido.

Las reglas del negocio son importantes dentro del esquema ya que especifican las
restricciones de los valores que han de guardarse en la base de datos. Sin importar si la
peticin de cambio viene directamente del usuario, de la aplicacin o e una consultarequerimiento actualizada.
Para crear el esquema de una base de datos se tienen las siguientes instrucciones:
CREATE DATABASE nombre_base_datos
La anterior instruccin sirve para crear una base de datos, la cual contendr una o varias
tablas que se crearn posteriormente, algunos ejemplos del uso de esta instruccin son:
CREATE DATABASE escuela;
CREATE DATABASE hospital;
CREATE DATABASE proyecto;
Donde los nombres de las bases de datos son escuela, hospital y proyecto.
Crear una Tabla
Para crear una tabla se usa la instruccin CREATE TABLE seguida del nombre de la
tabla. Posterior al nombre se abre un parntesis para listar dada columna que es descrita
con tres partes: nombre de la columna, tipo de dato y restricciones opcionales.
Ejemplo:
CREATE TABLE Proyecto(
IdProyecto Integer Primary Key,
Nombre Char(25) Unique Not null,
Departamento Varchar(100),
HorasMaximo Integer
);
Restricciones
37

Las restricciones pueden ser definidas dentro de las sentencias CREATE TABLE o
pueden ser aadidas a la tabla despus de ser creada usando sentencias ALTER que se
vern ms adelante.
Existen cinco tipos de restricciones:

PRIMARY KEY
UNIQUE
NOT NULL
FOREIGN KEY
CHECK

Para definir una llave primaria se usan las palabras PRIMARY KEY despus del tipo de
dato de la columna que ser llave.
Si se desea, se puede especificar durante la creacin que una o ms columnas no
pueden contener valores nulos. Para esto, las palabras NOT NULL se aaden despus
del tipo de dato de cada columna, tal es el caso de la columna Nombre dentro de la tabla
Proyecto.
Un valor nulo es un valor de un atributo que no fue proporcionado. Una de las razones por
las que es bueno evitarlos, es porque son ambigos, ellos pueden significar dos cosas,
que el valor es desconocido o inapropiado. Slo se pueden ignorar los valores nulos, si la
ambigedad no es un problema para los usuarios.
Tambin es posible especificar en el momento de creacin que una columna en una tabla
no puede contener valores duplicados, para ello se requiere usar la palabra UNIQUE
despus del tipo de dato o al final de la definicin de la tabla como lo muestra el siguiente
ejemplo:
CREATE TABLE Proyecto(
IdProyecto Integer Primery Key,
Nombre Char(25) Not null,
Departamento Varchar(100),
HorasMaximo Integer
) UNIQUE (Nombre);
Un punto importante con UNIQUE es que cualquier columna declarada para ser nica
debe tambin ser declarada NOT NULL, no es posible definir una columna que debe
contener un valor nico que pueda contener tambin valores nulos. SQL regresar un
error si se intenta crear as.
Ejercicio 2: Escribe la sentencia SQL para crear la siguiente relacin, aplica las
restricciones indicadas ESTUDIANTES(matrcula, nombre, direccin, ciudad, estado, cp,
38

gnero). Donde matrcula sea llave primaria y nombre sea nico, Departamento no puede
ser NULO.
Para definir las llaves forneas la sintaxis es la siguiente:
FOREIGN KEY campo_original REFERENCES Tabla(campo_referenciado)
Creacin de Vistas
Una vista es una tabla creada desde toda o parte de una o ms tablas existentes. Son
tambin llamadas tablas virtuales, mientras que las tablas que existen fsicamente en la
base de datos se le llaman reales.
As como las tablas reales, las vistas son creadas usando la sentencia CREATE. A
diferencia de las tablas, las filas y columnas que comprenden una vista deben existir en
una o ms tablas en la base de datos.
La forma general de una sentencia para crear una vista es:
CREATE VIEW nombre_vista (nombres_columnas) AS
SELECT nombres_columnas
FROM nombre_tabla
WHERE

predicado;

Ejemplo 1:
CREATE VIEW Facultad AS
SELECT id_profesor, nombre_profesor, telfono
FFROM profesores;
Debido a que no especificamos los nombres de columnas despus del nombre de la vista,
estos sern idnticos a los nombres especificados en el SELECT.
Ejemplo 2:
Se puede desear consultar frecuentemente las matrculas y nombres de los estudiantes
de Veracruz. Para facilitar el acceso a esta informacin, se creara una vista llamada
Alumnos_Ver con:
CREATE VIEW Alumnos_Ver(nombre, matricula, estado) AS
SELECT nombre_estudiante, matricula, estado
FROM Estudiantes
WHERE estado=Veracruz;
39

En este ejemplo, se ha cambiado el nombre de las columnas en la vista con respecto a


los de la tabla.
Ejercicio 3
1. Crear una vista incluyendo todas las columnas de la tabla Profesores excepto el salario
Profesores(id_profesor, nombre_profesor, telfono, salario)

2.

Crear una vista que contenga slo los registros de los alumnos de Crdoba de la tabla
Alumnos
Alumnos(matricula, nombre_alumno, direccin, ciudad, estado, cdigo_postal, gnero)

3. Crear una vista que contenga nombre, nmero y salario mensual de cada profesor
Profesores(id_profesor, nombre_profesor, telfono, salario_anual)
Aplicacin de las Vistas.
Las vistas pueden ser usadas para

Esconder columnas o filas


Mostrar los resultados de columnas calculadas

Ejercicio 4:
Escribe las sentencias SQL necesarias para crear las siguientes bases de datos con sus respectivas
tablas. Las restricciones a aplicar son: llave primaria a los campos subrayados, UNIQUE a los campos
en cursiva, y Foreign Key a los que lo indican de la siguiente forma (FK).
Base: CentroMedico
Tablas:
Medico(Cedula, Nombre, Direccin, Telfono, Celular, Ciudad)
Consultorio(nmero de consultorio, ubicacin, extensin, cdula(FK))
Pacientes(CURP, Nombre, Direccin, Telfono, Ciudad)
Citas(nmero de cita, fecha, motivo, cdula(FK), CURP(FK))

40

6.3 Modificacin del esquema de una BD


Objetivo Especfico:

El estudiante identificar las clusulas y sintaxis del DDL para la modificacin de la base de datos
(alter y drop).

Introduccin
Aunque las restricciones pueden establecerse en el diseo y creacin de una tabla, en la ejecucin de un
proyecto usualmente resulta que la base de datos debe sufrir cambios, cambios que consisten muchas veces
en nuevos campos no contemplados al inicio o en eliminar campos que ya no sern requeridos. Lo anterior lo
podemos ejecutar con sentencias que llevan ese propsito
ALTER: Estas sentencias cambian la estructura de la tabla, propiedades o restricciones despus de que han
sido creadas.
Sintaxis de ALTER
El esquema de una base de datos define la estructura de sta, sus tablas, relaciones, dominios y reglas del
negocio. El esquema es un diseo sobre el cual se construye la base de datos y sus aplicaciones.
Los cambios que se pueden realizar con la sentencia ALTER TABLE son:
1.

Aadir una definicin de la columna de una tabla, puede crearse con o sin valores nulos.
Sintaxis: ALTER TABLE nombre_tabla ADD nombre_columna_nueva TIPO_DE_DATO NOT NULL
Ejemplo: ALTER TABLE alumno ADD cuenta_facebook varchar(100)

2.

Eliminar una columna de la tabla, aunque antes de esto, deben ser eliminadas por ALTER TABLE
todas las restricciones que estn definidas sobre esta columna.
Sintaxis: ALTER TABLE Tabla DROP COLUMN columna
Ejemplo: ALTER TABLE alumno DROP COLUMN cuenta_msn;

3.

Eliminar las definiciones de llaves primarias, forneas o restricciones existentes para una tabla
Sintaxis: ALTER TABLE Tabla DROP CONSTRAINT PK_T1_numero_asignado_por_DBMS
Ejemplo: ALTER TABLE alumnos DROP CONSTRAINT PK_Alumno_031

4.

Definir una llave primaria para una tabla


Sintaxis: ALTER TABLE T1 ADD PRIMARY KEY (campo1,campo2)
Ejemplo: ALTER TABLE inscripcion ADD PRIMARY KEY (matricula,id_curso)

Un ejemplo que integra los elementos anteriores es el siguiente:


ALTER TABLE ASSIGNMENT
ADD CONSTRAINT empleadoFK
FOREIGN KEY (nominaEmp) REFERENCES Empleado(nomina)
ON UPDATE CASCADE
ON DELETE NO ACTION;

41

Ejercicio 5: Se tienen las siguientes relaciones en una base de datos, pero se desea agregar y eliminar
algunos campos. Escribe las sentencias ALTER necesarias para realizar lo siguiente

Aadir a la relacin Profesor(nomina, nombre, grado, direccin, telfono) el campo correo de


tipo varchar(30)
Aadir a la relacin Cursos(nombre, fecha_inicio, fecha_fin,lugar) el campo id_curso,
posteriormente establecerlo como llave primaria.
Eliminar de la relacin Profesor el campo de direccin
Establecer en la relacin Profesor el campo grado como una llave fornea de la relacin
Grados(id_grado, descripcin) con respecto a su campo id_grado.
Eliminar de la relacin cursos el campo de ubicacion

DROP: As como SQL permite la creacin de nuevas tablas, proporciona la manera de destruir las tablas
existentes. Esta destruccin se consigue usando la sentencia DROP. La forma general de DROP es:
DROP TABLE nombre_tabla
De la misma forma que CREATE, DROP no regresa otro resultado ms que un mensaje de SQL indicando
que la tabla indicada ha sido destruida.
Algunos ejemplos de uso de DROP son los siguientes:
DROP TABLE alumnos:
DROP TABLE profesores;
DROP TABLE empleados;
Ejercicio 6:
Escribir las sentencias SQL para eliminar las tablas Consultorio y Citas de la base de datos Centro
Mdico del ejercicio anterior.
Conclusin de la Unidad
De la misma forma que el diseo de una casa debe hacerse una realidad colocando ladrillo sobre ladrillo,
cuando diseamos una base de datos debemos llevarla al momento de su implementacin y para ello
requerimos al lenguaje SQL.
Para poder realizar esta primera fase de construccin hacemos uso de sentencias que pertenecen al DDL o
lenguaje de definicin de datos dentro de SQL, dicho lenguaje nos permite tanto crear como destruir,
establecer como eliminar aspectos que tienen que ver con el esquema o estructura de las tablas.

42

7 Lenguaje de manipulacin de datos (SQL-DML)


Objetivo Particular
Al trmino de esta unidad el alumno realizar scripts utilizando el Lenguaje de
Manipulacin de Datos (DML) para la actualizacin y consulta de informacin.
Introduccin
Como se aprendi en el captulo anterior, las sentencias CREATE de SQL permiten
aadir nuevas tablas a la base de datos. Sin embargo, CREATE no proporciona algn
mecanismo para llenar dichas tablas con registros y, mientras la sentencia SELECT
permite accesar a registros almacenados en las tablas tampoco permite aadir nuevos
registros, borrar los ms viejos o modificar los existentes. Para realizar lo anterior se debe
hacer uso de ms sentencias SQL a fin de poder posteriormente consultar la informacin
con SELECT.

7.1 Consultas y vistas


Objetivo Especfico:

El participante identificar las clusulas y sintaxis del DML para la generacin de consultas, manejo
de vistas y operaciones con los datos (select, view y funciones de agregado).

Introduccin:
En esta seccin se considerarn las facilidades de SQL para consultar una tabla independiente. Como se ha
visto SQL es un lenguaje orientado a la transformacin que acepta como entrada una o ms relaciones y
produce una sola relacin de salida. El resultado de cada consulta SQL es una relacin.
Considere la siguiente Tabla
Estudiante
*matricula
nombre
carrera
semestre

Para formar una proyeccin con SQL nombramos la relacin a proyectarse y listan las columnas que van a ser
mostradas. Ejemplo:
SELECT matricula, nombre, carrera FROM Estudiante;
Las palabras reservadas SELECT y FROM siempre se requieren; las columnas a obtener se listan despus de
la palabra SELECT y la tabla que se va a usar se enumera despus de la palabra FROM. Es importante no
confundir la palabra SELECT con el operador de seleccin del algebra relacional. SELECT es un verbo SQL
que se puede usar para realizar una proyeccin, seleccionar y especificar otras acciones

43

Si se desean eliminar los renglones duplicados en el resultado de una consulta se usa el calificador DISTINCT
de la siguiente forma:
SELECT DISTINCT carrera FROM Estudiante;

El operador del lgebra relacional tambin se lleva a cabo con la orden SQL SELECT. Un ejemplo de esto es:
SELECT matricula, nombre, carrera, semestre FROM Estudiante WHERE carrera=TIC;
La nueva frase WHERE proporciona la o las condiciones para la seleccin. El formato SELECT-FROMWHERE es la estructura fundamental de los enunciados SQL. La siguiente es una forma equivalente de la
consulta anterior:
SELECT * FROM Estudiante WHERE carrera=TIC;
El asterisco significa que deben obtenerse todas las columnas de la tabla. El resultado de ambas es el mismo.
Se pueden combinar la seleccin y la proyeccin como sigue:
SELECT nombre, carrera FROM Estudiante WHERE carrera=TIC;
Se pueden expresar varias condiciones en la clusula WHERE. Por ejemplo, con la expresin:
SELECT nombre, grado FROM Estudiante WHERE carrera=TIC AND semestre=1;
Las condiciones en las clusulas WHERE se pueden referir a un conjunto de valores. Para hacer esto, se
pueden usar las palabras reservadas IN o NOT IN. Considere:
SELECT nombre FROM Estudiante WHERE carrera IN [TIC,LGC];
La expresin carrera IN [TIC,LGC] significa que el valor de la columna carrera puede ser igual a cualquiera
de las especialidades listadas. Esto es equivalente al operador lgica OR. La expresin carrera NOT IN
[TIC,LGC] significa que el valor debe ser diferente a todas las especialidades listadas.
Las clusulas WHERE tambin se pueden referir a rangos y valores parciales. La palabra reservada
BETWEEN se usa para los rangos, por ejemplo, con el enunciado:
SELECT nombre, carrera FROM Estudiante

WHERE matricula BETWEEN 100 AND 200

Cabe aclarar que los valores finales, 200 y 300 en este caso, estn incluidos en el rango seleccionado.
Finalmente la palabra reservada LIKE, se usa en expresiones SQL para seleccionar valores parciales. El
smbolo _ (guin bajo) representa un carcter independiente no especificado; el smbolo % representa una
serie de uno o ms caracteres no especificados, as, ejemplos de expresiones de este tipo seran:
SELECT nombre, carrera FROM Estudiante WHERE carrera LIKE _A
SELECT nombre, carrera FROM Estudiante WHERE nombre LIKE %S

44

Ejercicio 7:
Observe las siguientes relaciones:
VENDEDOR(nombre, porcentajedeCuota, salario)
PEDIDO(nmero, nombreCliente, nombreVendedor, cantidad)
CLIENTE(nombre, ciudad, tipoIndustria)

Escriba los enunciados SQL

Mostrar los salarios de todos los vendedores


Mostrar los salarios de todos los vendedores, pero omitir duplicados
Mostrar los nombres de los vendedores que estn por debajo del 30% de la cuota
Mostrar los nombres de los vendedores que tengan un pedido con Farmacias del Ahorro
Mostrar los nombres de los vendedores que ganan ms de 14000 y menos de 20000
Mostrar los nombres de los vendedores con un porcentaje de cuota mayor a 49 y menor que
60
Mostrar los nombres de los clientes ubicados en ciudades que terminen con S
Mostrar los nombres y salarios de los vendedores que NO tienen un pedido con Farmacia del
Ahorro

7.2 Instrucciones de actualizacin


Objetivo Especfico:

El participante identificar las clusulas y sintaxis del DML para la actualizacin de datos (insert,
delete, update).

Introduccin
Una vez creada una tabla debe ser llenada con valores. Ya que, todos los valores de las tablas estn
contenidos en registros, aadir un nuevo valor requiere aadir un nuevo registro o rengln. SQL tiene medios
para cambiar datos en tablas insertando renglones nuevos, eliminando renglones y modificando los valores de
los reglones existentes.
Insercin de datos
En una tabla se pueden insertar renglones uno por uno o en grupos. Para insertar uno slo se establece:
INSERT INTO Profesores VALUES(303, Dr. Miguel Lopez,257-3049,18900.00);
INSERT INTO Inscripcion VALUES(400,BD445,44);
Si no conocemos todos los datos o bien no conocemos el orden de los campos, se puede decir:
INSERT INTO Inscripcion(matricula,clase) VALUES(400,BD445);

45

Ejercicio 8: Para la siguiente relacin o tabla, inserte:


Estudiante
*matricula
nombre
carrera
semestre

1 nuevo registro complete incluyendo todos los campos


1 nuevo registro sin incluir el campo semestre
1 nuevo registro insertando los datos en el orden siguiente: carrera, semestre, nombre, matricula.
Eliminacin de datos
Al igual que con la insercin, los renglones se pueden eliminar uno por uno o en grupos. El siguiente ejemplo
suprime el rengln para el Estudiante 100:
DELETE FROM Estudiante WHERE Estudiante.matricula=100;
SQL tambin proporciona una forma muy fcil de borrar todos los registros, sencillamente omitiendo la
clusula WHERE, por ejemplo, la instruccin:
DELETE FROM Estudiante
Borrar todos los registros de alumnos en la tabla Estudiante.
Ejercicio 9: Escribe las sentencias SQL necesarias para:

Borrar todos los registros de la relacin PARTICIPANTES(id_curso, seccin, estudiante,


grado) donde grado sea NULO
Remover todos los registros que contengan grados invlidos, los grados invlidos son
aquellos que son superiores a 10 e inferiores a 0.
Remover todos los registros de la tabla PARTICIPANTES

Modificacin de datos
Los renglones tambin se pueden modificar uno a la vez o en grupos. La palabra reservada SET se usa para
cambiar el valor de una columna. Despus de SET, se cambia el nombre de la columna y se especifica el
nuevo valor o la forma de calcularlo. Considere los siguientes ejemplos:
UPDATE Profesores set salario=28400.00 WHERE nombre_profesor=Dr Miguel Lopez;
UPDATE Inscripcion SET numeroInscripcion=44 WHERE matricula=400;
UPDATE Inscripcion SET numeroInscripcion=MAX(numeroInscripcion) + 1 WHERE matricula=400;

46

En el segundo enunciado UPDATE, el valor de la columna se calcula usando la funcin MAX. Sin embargo,
algunas implementaciones de SQL no permiten usar la funcin interconstruida como argumento en el
comando SET.

Ejercicio 10: Escribe las sentencias SQL para realizar las siguientes acciones:

El Dr. Miguel Lopez recibe un aumento salarial del 5 por ciento adems de un bono de 1000
El Dr. Miguel Lopez cambia su telfono anterior 7171213 a 7143050
Todos los profesores reciben un aumento salarial del 3%

Ejercicio 11:
Observe las siguientes relaciones:
VENDEDOR(nombre, porcentajedeCuota, salario)
PEDIDO(nmero, nombreCliente, nombreVendedor, cantidad)
CLIENTE(nombre, ciudad, tipoIndustria)
Muestre un enunciado SQL para

Insertar un nuevo rengln en CLIENTE

Insertar un nombre nuevo y edad en VENDEDOR, suponga que el salario no est determinado

Borrar un cliente de Farmacias del Ahorro

Eliminar todos los pedidos de Farmacias del Ahorro

Cambiar el salario del vendedor Santiago Lopez a 45000

Dar a todos los vendedores un aumento de 10 por ciento


Suponga que el vendedor Gilberto Ruiz cambia su nombre a Gil, muestre el enunciado SQL que crea
los cambios apropiados.

47

Conclusiones generales del curso


Las bases de datos han sido siempre un tema importante en el estudio de los sistemas de informacin,
aunado a eso, la expansin de Internet y el desarrollo de sus tecnologas relacionadas han hecho del
conocimiento de las tecnologas de las bases de datos un tema an mas relevante.
Las bases de datos han permitido que las distintas aplicaciones pasen de un comportamiento esttico a uno
dinmico adems de ser un medio estandarizado y de rpido acceso a la informacin. Por ello la importancia
de cada uno de los temas de este curso que brinda una base slida sobre esta tecnologa indispensable hoy
da.

48

8 Bibliografa

David Chappel. A Visual Introduction to SQL. USA, Editorial WILEY. 2 Edicin

David M. Kroenke. Procesamiento de Bases de Datos. Mxico. Prentice Hall,


2003. 8 Edicin

Date, C.J. (2001). Introduccin a los sistemas de bases de datos (7 ed.).


Prentice Hall.

Silberschatz, A; Korth, H.F; Sudarshan, S. (1998). Fundamentos de bases de


datos (3.a ed.). Madrid: McGraw-Hill.

49