You are on page 1of 167

UNIVERSIDAD PRIVADA TELESUP

UNIVERSIDAD PRIVADA TELESUP

Prefacio:

La asignatura de Diseo de Base de Datos, es de naturaleza terico prctico y


pertenece al rea de formacin profesional. El presente curso tiene como propsito
introducir al participante en el diseo de la base de datos; para ello se plantea el uso
de herramientas de software sofisticados con la finalidad de brindar el
soporte para el diseo y manejo de la base de datos. Debido al creciente
proceso de mejora en las organizaciones, se requiere de la
disposicin de herramientas y tcnicas especficas de diseo de
base de datos en las organizaciones actuales.

Comprende cuatro Unidades de Aprendizaje:


Unidad I: Base de Datos
Unidad II: Herramientas de Base de Datos: ERWIN.
Unidad III: Manejo del SQL Bsico
Unidad IV: Manejo de SQL Avanzado.

UNIVERSIDAD PRIVADA TELESUP

Estructura de los Contenidos

Base de Datos

Herramientas de

Manejo del SQL

Base de Datos :

Bsico

Manejo de SQL
Avanzado

Erwin
Introduccin a la
Base de Datos

SQL-Bsico
Introduccin
al Erwin

Consultas con
varias tablas
internas y externas

Lenguaje de
Manipulacin de
Datos

Sistema de Gestin
de base de datos
Creacin de
Llaves
Modelo Entidad
Relacin

Consultas
Avanzadas
Funciones en SQL

Creacin de
Relaciones

ndices y Vistas

Normalizacin
Modelo fsico
de Datos

Procedimientos
Almacenados

Triggers

La competencia que el estudiante debe lograr al final de


la asignatura es:
Aplica las tcnicas y mtodos del Diseo de Base de
Datos para la construccin de modelo, expresando sus
ideas con coherencia, lgica, orden, claridad, fundamento
y buen lenguaje.

UNIVERSIDAD PRIVADA TELESUP

ndice del Contenido

I. REFACIO
II. DESARROLLO DE LOS CONTENIDOS
UNIDAD DE APRENDIZAJE 1: BASE DE DATOS
1.
Introduccin
a. Presentacin y contextualizacin
b. Competencia (logro)
c. Capacidades
d. Actitudes
e. Ideas bsicas y contenido
2.
Desarrollo de los temas
a. Tema 01: Introduccin a la Base de datos
b. Tema 02: Sistema de Gestin de base de datos
c. Tema 03: Modelo Entidad Relacin
d. Tema 04: Normalizacin
3.
Lecturas recomendadas
4.
Actividades
5.
Autoevaluacin
6.
Resumen
UNIDAD DE APRENDIZAJE 2: HERRAMIENTAS DE BASE DE DATOS: ERWIN
1.
Introduccin
a. Presentacin y contextualizacin
b. Competencia (logro)
c. Capacidades
d. Actitudes
e. Ideas bsicas y contenido
2.
Desarrollo de los temas
a. Tema 01:Introduccin al Erwin
b. Tema 02: Creacin de Llaves
c. Tema 03: Creacin de Relaciones
d. Tema 04: Modelo fsico de Datos
3.
Lecturas recomendadas
4.
Actividades
5.
Autoevaluacin
6.
Resumen
UNIDAD DE APRENDIZAJE 3: MANEJO DEL SQL BASICO
1.
Introduccin
a. Presentacin y contextualizacin
b. Competencia (logro)
c. Capacidades
d. Actitudes
e. Ideas bsicas y contenido
2.
Desarrollo de los temas
a. Tema 01: SQL-Bsico
b. Tema 02: Lenguaje de Manipulacin de Datos
c. Tema 03: Funciones en SQL
d. Tema 04: ndices y Vistas
3.
Lecturas recomendadas
4.
Actividades
5.
Autoevaluacin
6.
Resumen
UNIDAD DE APRENDIZAJE 4: MANEJO DE SQL AVANZADO
1.
Introduccin
a. Presentacin y contextualizacin
b. Competencia
c. Capacidades
d. Actitudes
e. Ideas bsicas y contenido
2.
Desarrollo de los temas
a. Tema 01: Consultas con varias tablas internas y externas
b. Tema 02: Consultas Avanzadas
c. Tema 03: Procedimiento Almacenados
d. Tema 04: Triggers
3.
Lecturas recomendadas
4.
Actividades
5.
Autoevaluacin
6.
Resumen
III. GLOSARIO
IV. FUENTES DE INFORMACIN
V. SOLUCIONARIO

02
05 - 167
05-48
06
06
06
06
06
06
07-34
07
15
25
34
45
45
46
48
49-85
50
50
50
50
50
50
51-73
51
61
68
73
82
82
83
85
86-125
87
87
87
87
87
87
88-97
88
98
108
118
122
122
123
125
126-164
127
127
127
127
127
127
128-125
128
138
146
154
161
161
162
164
165
166
167

UNIVERSIDAD PRIVADA TELESUP

Introduccin
5

UNIVERSIDAD PRIVADA TELESUP

Introduccin

a)Presentacin y contextualizacin
En esta unidad de aprendizaje conoceremos las herramientas y tcnicas a usar
para el diseo y la implementacin de una base de datos.
As como tambin el proceso de Normalizacin para la validez y consistencia al
momento de crear la base de datos.

b)Competencia
Conceptualiza las tres perspectivas bsicas para el modelado de datos:
Diseo conceptual.
Diseo lgico.
Diseo fsico.

c) Capacidades
1. Reconoce la importancia del uso de los niveles de diseo en el modelado de datos.
2. Reconoce la importancia que tiene los sistemas de gestin de base de datos en
las organizaciones.
3. Reconoce la importancia del Modelo Entidad - Relacin.
4. Identifica las etapas de la Normalizacin.

d)Actitudes
Desarrolla una actitud emprendedora mediante la toma de iniciativas, promocin de
actividades y toma de decisiones en relacin a la actividad asignada.
Acta con responsabilidad personal, al cumplir con los horarios establecidos y el
respeto a las normas de convivencia.
Cumple con la presentacin de los trabajos encomendados con puntualidad.
Desarrolla la creatividad, la innovacin, la actitud emprendedora y el respeto a la
honestidad intelectual.

e) Presentacin de Ideas bsicas y contenido esenciales de la Unidad:


La Unidad de Aprendizaje 01: Base de Datos comprende el desarrollo de los
siguientes temas:
TEMA 01: Introduccin a la Base de datos
TEMA 02: Sistema de Gestin de base de datos
TEMA 03: Modelo Entidad Relacin
TEMA 04: Normalizacin

UNIVERSIDAD PRIVADA TELESUP

Introduccin
A la

TEMA 1

Base de

Datos

Competencia:
Reconocer la importancia del uso de los
niveles de diseo en el modelado de datos.

UNIVERSIDAD PRIVADA TELESUP

Desarrollo de los Temas

Tema 01: Introduccin a la Base de Datos


INTRODUCCIN

El objetivo principal de las bases de datos es


el de unificar los datos que se manejan y los
programas o aplicaciones que los manejan.

Anteriormente los programas se codificaban junto con los datos, es decir, se


diseaban para la aplicacin concreta que los iba a manejar, lo que desembocaba
en una dependencia de los programas respecto a los datos, ya que la estructura de
los ficheros va incluida dentro del programa, y cualquier cambio en la estructura del
fichero provocaba modificar y recopilar programas.

Adems, cada aplicacin utiliza ficheros que pueden ser comunes a otras de la misma
organizacin, por lo que se produce una REDUNDANCIA de la informacin, que
provoca mayor ocupacin de memoria, laboriosos programas de actualizacin (unificar
datos recogidos por las aplicaciones de los diferentes
departamentos), e inconsistencia de datos (no son correctos)
si los datos no fueron bien actualizados en todos los
programas. Con las bases de datos, se busca independizar
los datos y las aplicaciones, es decir, mantenerlos en
espacios diferentes.

Los datos residen en memoria y los programas mediante un


sistema gestor de bases de datos, manipulan la informacin. El
sistema gestor de bases de datos recibe la peticin por parte
del programa para manipular los datos y es el encargado de
recuperar la informacin de la base de datos y devolvrsela al
programa que la solicit.

UNIVERSIDAD PRIVADA TELESUP

Cada programa requerir de una cierta informacin de la base de datos, y podr


haber otros que utilicen los mismos datos, pero realmente residirn en el mismo
espacio de almacenamiento y los programas no duplicarn esos datos, si no que
trabajarn directamente sobre ellos concurrentemente. Aunque la estructura de la base
de datos cambiara, si los datos modificados no afectan a un programa especfico, ste
no tendr por qu ser alterado.
Mediante estas tcnicas de base de datos se pretende conseguir a travs del
Sistema Gestor de Bases de Datos (SGBD):

INDEPENDENCIA de los Datos:


Cambios en la estructura de la Base de Datos no modifican
las aplicaciones.

INTEGRIDAD de los Datos:


Los datos han de ser siempre correctos. Se
establecen una serie de restricciones (reglas de
validacin) sobre los datos.

SEGURIDAD de los Datos:


Control

de

acceso

los

datos

para

evitar

manipulaciones de estos no deseadas.


.

Definicin de Bases de Datos


Es una coleccin de datos referentes a una organizacin estructurada segn un
modelo de datos de forma que refleja las relaciones y restricciones existentes entre los
objetos del mundo real, y consigue independencia, integridad y seguridad de los datos.
Lo que debemos tener claro es la diferencia entre Base de Datos y SGBD. La base de
datos es el almacenamiento donde residen los datos. El SGBD es el encargado de
manipular la informacin contenida en ese almacenamiento mediante operaciones de
lectura/escritura sobre la misma.

UNIVERSIDAD PRIVADA TELESUP

Adems las bases de datos no slo contendrn las tablas (ficheros) de datos, sino que
tambin almacenar formularios (interfaces para edicin de datos), consultas sobre los
datos, e informes. El SGBD se encargar de manipular esos datos, controlar la
integridad y seguridad de los datos, reconstruir y reestructurar la base de datos cuando
sea necesario.

Modelos de Datos:

Hablar del concepto lgico o fsico de Base de Datos involucra un conjunto de


pensamientos concretos que hacen posible la absorcin temtica del significado de los
datos. La abstraccin de los datos como una forma o un comportamiento que hace
posible concretar un algo, se asocia con un esquema del conocimiento lgico, su
semntica, condiciones y acciones, que permiten la produccin de modelos por medio
de los cuales se representa la funcionalidad de un sistema.

Inicialmente el "dato" fue trabajado desde la ptica pura de su almacenamiento a


travs de los "Sistemas de Archivos"; donde cada uno de los archivos que se creaban
solo obedeca a una necesidad de almacenamiento ms que a la utilizacin funcional
del dato.

Por este motivo surgen los esquemas conceptuales que son elaborados a travs del
anlisis de procesos de las reas del negocio, los cuales involucran al "dato" como una
consecuencia lgica funcional de ellos.

Pero para poder estandarizar este tratamiento se crea el concepto del "Modelo de
Datos", por medio del cual se definen un conjunto de elementos y smbolos que
permiten estandarizar y traducir dicho anlisis a un
lenguaje semntico y sistemtico que dispone de reglas
de control y evaluacin del comportamiento del dato en
el transcurso del tiempo, tanto en su almacenamiento
como en su utilizacin.

10

UNIVERSIDAD PRIVADA TELESUP

Estos modelos de datos, hacen posible que la lgica de un negocio pueda ser
estructurada de forma tangible a travs de un esquema fsico que representa el
almacenamiento de los datos bajo las reglas del negocio y de un sistema gestor de
base de datos que permitir la persistencia de estos a travs del tiempo.
Los Modelos de Datos, tambin llamados modelos lgicos, se han clasificado en dos
grandes grupos debido al tratamiento de los datos: Basados en Objetos y basados en
Registros.
Estos dos grupos de modelos representan dos estados de la interpretacin de los
requerimientos de usuario:

Basados en Objetos
Un problema de la vida real maneja concepciones abstractas o concretas, tangibles o
intangibles, a las cuales se les ha dado el nombre de "objetos", calificados a partir de
un valor significativo dentro de los parmetros de una forma o estilo de vida; dichos
objetos se modelan a travs de propuestas que fueron estructuradas para as poder
estandarizar la forma de manipularlos. Dentro de estos modelos tenemos:
o

Modelo Entidad Relacin (MER)

Modelo Orientado a Objetos (MOO)

Modelo Semntico

Modelo Deductivo

Basados en Registros
Otra forma de tratar lgicamente la informacin suministrada por un sistema es a
travs de los "Registros", originalmente concebidos por los sistemas de archivos
(registro: conjunto de campos que almacenan informacin de diferentes tipos), lo cual
dio pie a la estructuracin de modelos lgicos tales como:
o

Modelo Relacional (MR)

Modelo de Red

Modelo Jerrquico

11

UNIVERSIDAD PRIVADA TELESUP

Al modelar es importante conocer muy bien la semntica de estos modelos y lo


que es posible lograr con ellos.
En la Ingeniera de Software, el tratamiento de los datos Las Bases de Datos dentro
del ciclo de vida de un proyecto informtico, estn ubicadas dentro del proceso del
Diseo, "el CMO", estructurar la funcionalidad expuesta en los requerimientos. El
siguiente esquema escenifica esta situacin:

_________

Algunas Terminologas en las bases de datos

DATO:
Es una informacin que refleja el valor de una caracterstica de un objeto real, sea
concreto o abstracto, o imaginario. Debe permanecer en el tiempo, debe tener un
significado y debe ser manipulable mediante operadores.

Un dato es un valor que representa algo.

12

UNIVERSIDAD PRIVADA TELESUP

Por
ejemplo:

o mara: es un dato que representa el nombre de una persona.


o 18: es un dato que puede ser la edad de una persona.
o 1.70: es un dato que representa la talla de una persona.

Informacin:
Es un conjunto de datos convenientemente tratado, que
puede ser utilizado en la realizacin de clculos o toma de
decisiones.
Ejemplo: con los datos anteriores se puede tener la
siguiente observacin:
Mara tiene 18 aos y mide 1.70

Campo:
Es la unidad ms pequea a la cual uno puede referirse en un programa. Desde el
punto de vista del programador representa una caracterstica de un individuo u objeto.
CAMPO
S

Registro:
Coleccin de campos de iguales o de diferentes tipos.

REGISTROS

Archivo:

13

UNIVERSIDAD PRIVADA TELESUP

Coleccin de registros almacenados siguiendo una estructura homognea.

Aplicacin:
Son aquellos programas que permiten la interaccin entre el usuario y la
computadora. Esta comunicacin se lleva acabo cuando el usuario elige entre las
diferentes opciones o realiza actividades que le ofrece el programa.

14

UNIVERSIDAD PRIVADA TELESUP

Sistema de
Gestin

TEMA 2

de Base

De datos
Competencia:

Reconocer la importancia que tiene los


sistemas de gestin de base de datos en las
organizaciones.

15

UNIVERSIDAD PRIVADA TELESUP

Tema 02: Sistema de Gestin de Base de Datos


Definicin
Los
. Sistemas de Gestin de Base de Datos (SGBD) son un tipo de software muy
especfico, dedicado a servir de interfaz entre la base de datos, el usuario y las
aplicaciones que la utilizan.
Se compone de un lenguaje de definicin de datos, de un lenguaje de manipulacin de
datos y de un lenguaje de consulta. El SGBD y DBMS, son ambos equivalentes, y
acrnimos, respectivamente.

El DBMS:
(Data Base Management System) Es un conjunto de programas que se encargan de
manejar la creacin y todos los accesos a las bases de datos, est compuesto por:

DDL: Lenguaje de Definicin de Datos


DML: Lenguaje de Manipulacin de Datos
SQL: Lenguaje de Consulta.

Propsito
El propsito general de los sistemas de gestin de base de datos es el de
manejar de manera clara, sencilla y ordenada un conjunto de datos.

Objetivos
Existen distintos objetivos que deben cumplir los SGBD:

Ventajas
1. Facilidad de manejo de grandes volmenes de informacin.
2. Gran velocidad en muy poco tiempo.
3. Independencia del tratamiento de informacin.
4. Seguridad de la informacin (acceso a usuarios autorizados), proteccin de
informacin, de modificaciones, inclusiones, consulta.

16

UNIVERSIDAD PRIVADA TELESUP

5. No hay duplicidad de informacin, comprobacin de informacin en el momento de


introducir la misma.
6. Integridad referencial el terminar los registros.

Inconvenientes
1. El costo de actualizacin del hardware y software son
muy elevados.
2. Costo (salario) del administrador de la base de datos es
costoso.
3. El mal diseo de esta puede originar problemas a futuro.
4. Un mal adiestramiento a los usuarios puede originar problemas a futuro.
5. Si no se encuentra un manual del sistema no se podrn hacer relaciones con facilidad.
6. Generan campos vacos en exceso.
7. El mal diseo de seguridad genera problemas.

Arquitectura de un Sistema de Gestin de Base De Datos


Los SGBD pueden ser estudiados desde 3 niveles distintos:

1.- Nivel Fsico


Es el nivel real de los datos almacenados. Es decir cmo se
almacenan los datos, ya sea en registros, o como sea. Este
nivel es usado por muy pocas personas que deben estar
cualificadas para ello. Este nivel lleva asociada una
representacin de los datos, que es lo que denominamos
Esquema Fsico.

2.- Nivel Conceptual.


Es el correspondiente a una visin de la base de datos desde el punto de visto del
mundo real. Es decir tratamos con la entidad u objeto representado, sin importarnos
como est representado o almacenado. Este nivel lleva asociado el Esquema
Conceptual.

17

UNIVERSIDAD PRIVADA TELESUP

3.- Nivel Visin (Usuario)


Son partes del esquema conceptual. El nivel conceptual
presenta toda la base de datos, mientras que los usuarios por lo
general slo tienen acceso a pequeas partes de sta. El nivel
visin es el encargado de dividir estas parcelas. Un ejemplo
sera el caso del empleado que no tiene porqu tener acceso al
sueldo de sus compaeros o de sus superiores. El esquema asociado a ste nivel es
el Esquema de Visin.

Los 3 niveles vistos, componen lo que conocemos como arquitectura de base de


datos a 3 niveles. A menudo el nivel fsico no es facilitado por muchos DBMS, lo
cual no permite al usuario elegir como se almacenan sus datos y vienen con una
forma estndar de almacenamiento y manipulacin de los datos.

Lenguaje de definicin de datos.


Un esquema de BD se especifica por medio de un
conjunto de definiciones que se expresan mediante un
lenguaje especial llamado lenguaje de definicin de
datos (data).
definition language, DDL).
El resultado de la compilacin de sentencias de DDL es un conjunto de tablas que
se almacenan en un archivo especial que llamado diccionario de datos o
directorio. Un directorio de datos es un archivo que contiene metadatos, es decir,
datos sobre datos. Este archivo se consulta antes de leer o modificar los datos
reales en el sistema de BD.

La estructura de almacenamiento y los mtodos de acceso se especifican por medio


de un conjunto de definiciones en un tipo especial de DDL llamado lenguaje de
almacenamiento y definicin de datos. El resultado de la compilacin de estas
definiciones es un conjunto de instrucciones que especifican los detalles de
implementacin de los esquemas que normalmente se esconden a los usuarios.

18

UNIVERSIDAD PRIVADA TELESUP

Lenguaje de manipulacin de datos.


Por manipulacin de datos entendemos la recuperacin y
modificacin de la informacin almacenada y la insercin y
supresin de informacin.
Un lenguaje de manipulacin de datos (data manipulation
lenguage, DML) es un lenguaje que capacita a los usuarios a
acceder o manipular los datos. Una consulta es una sentencia que solicita la
recuperacin de informacin. El trozo de un DML que implica recuperacin de
informacin se llama lenguaje de consultas. Aunque es incorrecto, suelen utilizarse
los trminos lenguaje de consultas y lenguaje de manipulacin de datos como
sinnimos.

Administrador de bases de datos.


Una de las razones principales para tener DBMS es tener control central de los datos
y de los programas que acceden a esos datos. La persona que tiene dicho control
central sobre el sistema se llama administrador de la BD (data, base, administrador,
DBA).

Las funciones del DBA son:

1.- Definicin de esquema.


El esquema original de la BD se crea escribiendo un conjunto de definiciones
que son traducidas por el compilador de DDL a un conjunto de tablas,
almacenadas permanentemente en el diccionario de datos.

2.- Definicin de la estructura de almacenamiento y del mtodo de acceso.


Se crean escribiendo un conjunto de definiciones traducidas por el compilador del
lenguaje de almacenamiento y definicin de datos.

3.- Modificacin del esquema y de la organizacin fsica.


Las modificaciones son poco comunes, pero se logran escribiendo un conjunto de
definiciones usadas por el compilador DDL para generar modificaciones a las tablas
internas apropiadas.

19

UNIVERSIDAD PRIVADA TELESUP

4.- Concesin de autorizacin para el acceso a los datos.


La concesin de diferentes tipos de autorizacin permite al DBA regular qu partes
de la BD van a poder ser accedidas por varios usuarios.

5.- Especificacin de las restricciones de integridad.


Las restricciones de integridad se mantienen en una estructura especial del sistema
que consulta el gestor de la BD cada vez que tiene lugar una actualizacin.

Usuarios de bases de datos.


Un objetivo principal de un DBMS es proporcionar un entorno para recuperar y almacenar
informacin en la BD. Hay cuatro tipos de usuarios, diferenciados por la forma de
interaccionar con el sistema:

1.- Programadores de aplicaciones.


Las profesionales en computacin interaccionan con el
sistema por medio de llamadas en DML, incorporadas
en un programa escrito en un lenguaje principal (como
Pascal

C).

Estos

programas

se

denominan

comnmente programas de aplicacin. Puesto que la


sintaxis de DML es normalmente diferente de la del lenguaje principal, las llamadas en
DML van normalmente precedidas de un carcter especial de forma que se pueda
generar el cdigo apropiado. Un preprocesador especial, llamado pre compilador de
DML, convierte las sentencias en DML a llamadas en el lenguaje principal. El
programa resultante se ejecuta entonces por el compilador del lenguaje principal, que
genera el cdigo objeto apropiado.

2.- Usuarios sofisticados.


Interaccionan con el sistema sin escribir programas, en cambio escriben sus preguntas
en un lenguaje de consultas. Cada consulta se somete a un procesador de consultas,
cuya funcin es tomar una sentencia en DML y descomponerla en instrucciones que
entienda el gestor de la BD.

20

UNIVERSIDAD PRIVADA TELESUP

3.- Usuarios especializados.


Algunos usuarios sofisticados escriben aplicaciones de BD especializadas que no
encajan en el marco tradicional de procesamiento de datos, como diseo asistido por
computador, sistemas basados en el conocimiento, etc.

4.- Usuarios ingenuos.


Los usuarios no sofisticados interactan con el sistema invocando a uno de los
programas de aplicacin permanentes que se han escrito anteriormente.

Tipos de bases de datos


Las bases de datos pueden clasificarse de varias maneras, de acuerdo al criterio elegido
para su clasificacin:
Segn la variabilidad de los datos almacenados

Bases de datos estticas


stas

son

bases

primordialmente
posteriormente

de

para
se

datos

de

almacenar
pueden

slo

lectura,

datos

utilizar

utilizadas

histricos

para

estudiar

que
el

comportamiento de un conjunto de datos a travs del tiempo,


realizar proyecciones y tomar decisiones.

Bases de datos dinmicas

stas son bases de datos donde la informacin almacenada


se modifica con el tiempo, permitiendo operaciones como
actualizacin y adicin de datos, adems de las operaciones
fundamentales de consulta. Un ejemplo de esto puede ser la
base de datos utilizada en un sistema de informacin de una
tienda de abarrotes, una farmacia, un videoclub, etc.

21

UNIVERSIDAD PRIVADA TELESUP

Segn el contenido
Bases de datos bibliogrficas
Solo contienen una representacin de la fuente primaria, que permite localizarla.
Un registro tpico de una base de datos bibliogrfica
contiene informacin sobre el autor, fecha de publicacin,
editorial, ttulo, edicin, de una determinada publicacin,
etc. Puede contener un resumen o extracto de la
publicacin original, pero nunca el texto completo, porque
si no estaramos en presencia de una base de datos a
texto completo (o de fuentes primarias).
Como su nombre lo indica, el contenido son cifras o nmeros. Por ejemplo, una
coleccin de resultados de anlisis de laboratorio, entre otras.

Bases de datos de texto completo


Almacenan las fuentes primarias, como por ejemplo, todo el contenido de todas las
ediciones de una coleccin de revistas cientficas.

Directorios
Un ejemplo son las guas telefnicas en formato electrnico.

Bases de datos o "bibliotecas" de informacin Biolgica


Son bases de datos que almacenan diferentes tipos de informacin proveniente de
las ciencias de la vida o mdicas. Se pueden considerar en varios subtipos:

Bases de datos
de

estructura,

comprende

los

registros

de

datos

experimentales sobre estructuras 3D de biomolculas


Bases de datos clnicas Bases de datos bibliogrficas
(biolgicas),

22

UNIVERSIDAD PRIVADA TELESUP

Modelos de datos.
Es una coleccin de herramientas conceptuales que se utilizan para describir datos,
relaciones entre ellos, semntica asociada a los datos y restricciones de
consistencia. Los diversos modelos de datos se dividen en tres grupos:

Modelos lgicos basados en objetos


Modelos lgicos basados en registros
Modelos fsicos de datos.

Modelos lgicos basados en objetos


Los modelos lgicos basados en objetos se usan para describir datos en el nivel
conceptual y de visin. Se caracterizan porque proporcionan capacidad de
estructuracin bastante flexible y permiten especificar restricciones de datos
explcitamente. Hay muchos modelos diferentes, y aparecern ms. Algunos de los
ms conocidos son, el modelo entidad-relacin, el orientado a objetos, el binario, el
semntico de datos y el modelo funcional de datos.
El modelo entidad-relacin ha ganado aceptacin y se utiliza ampliamente en la
prctica, el modelo orientado a objetos incluye muchos conceptos del anterior, y es
tambin aceptado rpidamente.

Modelos lgicos basados en registros.


Los modelos lgicos basados en registros se utilizan
para describir datos en los modelos conceptual y fsico. A
diferencia de los modelos lgicos basados en objetos, se
usan para especificar la estructura lgica global de la BD
y para proporcionar una descripcin a nivel ms alto de
la implementacin.

Los modelos basados en registros se llaman as porque la BD est estructurada en


registros de formato fijo de varios tipos. Cada tipo de registro define un nmero fijo
de campos, o atributos, y cada campo normalmente es de longitud fija. La estructura
ms rica de estas BD a menudo lleva a registros de longitud variable en el nivel
fsico.

23

UNIVERSIDAD PRIVADA TELESUP

Los modelos basados en registros no incluyen


un mecanismo para la representacin directa
de cdigo de la BD, en cambio, hay lenguajes
separados que se asocian con el modelo
para expresar consultas y actualizaciones

Los tres modelos de

datos ms aceptados son los modelos relacional, de red y jerrquico. El modelo


relacional ha ganado aceptacin por encima de los otros.

Modelos fsicos de datos.


Los modelos fsicos de datos se usan para describir datos en
el nivel ms bajo. Hay muy pocos de modelos fsicos de
datos en uso, siendo los ms conocidos el modelo
unificador y de memoria de elementos.

24

UNIVERSIDAD PRIVADA TELESUP

Modelo

TEMA 3

Entidad
Relacin
Competencia:
Reconocer la importancia del Modelo
Entidad - Relacin.

25

UNIVERSIDAD PRIVADA TELESUP

Tema 03: Modelo Entidad - Relacin


Definicin
Denominado por sus siglas como: E-R. Percibe el mundo
real como una serie de objetos relacionados entre si y
pretende

representarlos

grficamente,

mediante

un

determinado mecanismo de abstraccin. Este mecanismo


est basado en una serie de smbolos, reglas y mtodos que nos
permitirn representar grficamente los datos de inters del mundo real.

El modelo entidad-relacin es una tcnica para el modelado de datos utilizando diagramas


entidad relacin. No es la nica tcnica pero si la ms utilizada. Brevemente consiste en
los siguientes pasos:

1. Se parte de una descripcin textual del problema o


sistema de informacin a Automatizar (los requisitos).
2. Se hace una lista de los sustantivos y verbos que
aparecen.
3. Los sustantivos son posibles entidades o atributos.
4. Los verbos son posibles relaciones.
5. Analizando las frases se determina la cardinalidad de las
relaciones y otros detalles.
6. Se elabora el diagrama (o diagramas) entidad-relacin.
7. Se completa el modelo con listas de atributos y una
descripcin de otras restricciones que no se pueden
reflejar en el diagrama.

Dado lo rudimentario de esta tcnica se necesita cierto entrenamiento y


experiencia para lograr buenos modelos de datos.

26

UNIVERSIDAD PRIVADA TELESUP

Elementos del Modelo Entidad - Relacin


Entidades
Una entidad es cualquier "objeto" discreto sobre el que se tiene informacin. Se
representa mediante un rectngulo o "caja" etiquetada en su interior mediante un
nombre.
Ejemplos de entidades habituales en los sistemas de informacin son: factura,
persona, Producto, empleado, etc.
Se representa grficamente de la siguiente manera:

Cliente

Artculos

Cada ejemplar de una entidad se denomina instancia. Por ejemplo, Francisco y Luisa
pueden ser dos instancias distintas de la entidad "persona". Las instancias no se
representan en el diagrama. No obstante, se pueden documentar aparte porque son
tiles para inicializar la base de datos resultante.

Ejemplo Prctico:
Que entidades podemos observar en una clnica:
Respuesta Correcta: Paciente, Medico, Medicinas.

Atributos
Tambin llamadas Propiedades, los atributos describen informacin til sobre las
entidades. En particular, los atributos identificativos son aquellos que permiten
diferenciar a una instancia de la entidad de otra distinta. Por ejemplo, el atributo
identificativo que distingue a un empleado de otro es su numero de la Seguridad
Social.
Ejemplos de atributos de la entidad "persona": Documento
Nacional de Identidad
(Identificativo), nombres, apellidos, direccin, cdigo postal,
etc.

27

UNIVERSIDAD PRIVADA TELESUP

Los atributos poseen la siguiente estructura:

Nombre: Especificacin fsica


Tipo: Valor que se utiliza para escribir caractersticas relacionadas al dato (cadena,
booleano, fecha, etc.)
Dominio: Conjunto de valores permitidos que va a usar un atributo.
Ejemplo grafico de Atributo:

Los atributos se representan mediante elipses, y en su interior el nombre del atributo:

Ejemplo Prctico
Mostrar los atributos que tengan las entidades cliente y artculos.

ARTICULOS
Cdigo
Nombre
Precio
Stock
UnidadMedid
a

Tipos de Atributos:
1. Simples, aquellos que no estn divididos en sub-partes. Ejem:
Cdigo, DNI

2. Compuestos, aquellos que pueden dividirse en sub-partes (es


decir, en otros atributos.)

28

UNIVERSIDAD PRIVADA TELESUP

Ejemplo:

3. Monovalorados, cuando se tiene un nico valor para una entidad concreta.


Ejemplo: Nmero de Factura, Nmero de Matrcula.

4. Multivalorado, cuando se tiene un conjunto de valores para una entidad especifica.


Ejemplo: Considera un conjunto de entidades alumno, con el atributo nmero
telfono, cualquier alumno puede tener cero, uno o ms nmeros de telfonos a los
que se le pueda ubicar. Es frecuente usar una doble elipse para indicar este tipo de
atributos.

Relaciones
Es una asociacin entre entidades, se caracteriza por restricciones especficas que
determinan las entidades que pueden o no participar en dicha relacin.
Una relacin describe cierta interdependencia (de cualquier tipo) entre una o ms
entidades. Se representa mediante un rombo etiquetado en su interior empleando un
verbo. Adems, dicho rombo debe unirse mediante lneas con las entidades que
relaciona (es decir, los rectngulos). Una relacin no tiene sentido sin las entidades
que la relaciona.

29

UNIVERSIDAD PRIVADA TELESUP

A la asociacin entre conjunto de entidades, se le conoce como Participacin.


Cuando una entidad participa en una relacin puede adquirir un papel fuerte o dbil.
Una entidad dbil es aquella que no puede existir sin participar en la relacin, es decir,
aquella que no puede ser identificada solamente por sus atributos. Una entidad fuerte
es aquella que "presta" algunos de sus atributos a la entidad dbil para que se pueda
identificar cualquier instancia. Esto lo hace a travs de la relacin que las une.
Las entidades dbiles se representan mediante un doble rectngulo, es decir, un
rectngulo con doble lnea.

Cardinalidad de las relaciones


Es el nmero de ocurrencias de una entidad asociada a una ocurrencia de otra
entidad o la misma entidad a travs de una relacin.
Las relaciones, en principio binarias, pueden involucrar a un numero distinto de
instancias de cada entidad. As, son posibles tres tipos de cardinalidades:

de uno a uno: una instancia de la entidad A se relaciona


con una y solamente una de la entidad B.

de uno a muchos: cada instancia de la entidad A se


relaciona con varias instancias de la entidad B.

de muchos a muchos: cualquier instancia de la entidad A


se relaciona con cualquier instancia de la entidad B.

30

UNIVERSIDAD PRIVADA TELESUP

Opcionalidad: es la participacin obligatoria u opcional en la entidad de la


relacin.

Como se lee el Grado Cardinalidad:


.Uno a muchos: una instancia de la entidad A se relaciona con una ms
instancias de la entidad B.

.Muchos a muchos: una instancia de la entidad A se relaciona con una ms


instancias de la entidad B y una instancia de la entidad B se relaciona con uno ms
instancias de le entidad B.

.Uno a uno: una instancia de la entidad A se relaciona con uno y slo una instancia de la
entidad B.

31

UNIVERSIDAD PRIVADA TELESUP

Claves o Llaves
Llave Primaria (PK): Un atributo (Llave simple) o conjunto de atributos (Llave
compuesta) que identifican nicamente una instancia (fila o registro) de una entidad.

Llave Alterna (AK): Un atributo (Llave simple) o conjunto de


atributos (Llave compuesta) que identifican nicamente una
instancia (fila o registro) de una entidad, pero que NO ES
ESCOGIDA como llave primaria.

Llave Fornea (FK): Una llave fornea es una llave primaria de una entidad padre
(Fuerte) que es AGREGADA a la entidad hijo (Dbil) a travs de su relacin.

Modelo Relacional

El Modelo Relacional representa los datos y las relaciones entre estos, a travs de una
coleccin de tablas, en las cuales los renglones (tuplas o registros) equivalen a los
cada uno de los registros que contendr la base de datos y las columnas
corresponden a las caractersticas (atributos) de cada registro localizado en la tupla.

32

UNIVERSIDAD PRIVADA TELESUP

Las caractersticas ms importantes de los modelos relacionales son:

Cada atributo solo puede tomar un nico valor del dominio, no se admiten valores
mltiples.

No existen 2 tuplas iguales.


La informacin en las bases de datos son representados como datos explcitos,
no existen apuntadores o ligas entre las tablas.

El orden de las tuplas dentro de la relacin y el de los atributos, dentro de cada


tupla, no es importante.

El modelo se compone de tres partes:


1. Estructura de datos: Bsicamente se compone de relaciones.
2. Manipulacin de datos: Un conjunto de operadores para recuperar, derivar o
modificar los datos almacenados.
3. Integridad de datos: Una coleccin de reglas que definen la consistencia de la
base de datos.

33

UNIVERSIDAD PRIVADA TELESUP

TEMA 4

Normalizacin
Competencia:
Identificar las etapas de la normalizacin.

34

UNIVERSIDAD PRIVADA TELESUP

Tema 04: Normalizacin


Definicin
La normalizacin es el proceso mediante el cual se transforman datos complejos a un
conjunto de estructuras de datos ms pequeas, que adems de ser ms simples y
ms estables, son ms fciles de mantener.
Tambin se puede entender la normalizacin como una serie de
reglas que sirven para ayudar a los diseadores de bases de
datos a desarrollar un esquema que minimice los problemas de
lgica. Cada regla est basada en la que le antecede.

La normalizacin se adopt porque el viejo estilo de poner todos los datos en un solo
lugar, como un archivo o una tabla de la base de datos, era ineficiente y conduca a
errores de lgica cuando se trataban de manipular los datos. La normalizacin tambin
hace las cosas fciles de entender. Los seres humanos tenemos la tendencia de
simplificar las cosas al mximo.

Lo hacemos con casi todo, desde los animales hasta con los automviles. Vemos una
imagen de gran tamao y la hacemos ms simple agrupando cosas similares juntas. Las
guas que la normalizacin provee crean el marco de referencia para simplificar una
estructura de datos compleja.

Grados de normalizacin
Existen bsicamente tres niveles de normalizacin: Primera
Forma Normal (1NF), Segunda Forma Normal (2NF) y Tercera
Forma Normal (3NF).
Cada una de estas formas tiene sus propias reglas. Cuando
una base de datos se conforma a un nivel, se considera
normalizada a esa forma de normalizacin.

35

UNIVERSIDAD PRIVADA TELESUP

No siempre es una buena idea tener una base de datos conformada en el nivel ms alto
de normalizacin, puede llevar a un nivel de complejidad que pudiera ser evitado si
estuviera en un nivel ms bajo de normalizacin.

En la tabla siguiente se describe

brevemente en qu consiste cada una de las reglas, y posteriormente se explican con ms


detalle.

Regla
Primera

Forma

Descripcin

Incluye la eliminacin de todos los grupos repetidos.

Normal (1FN)

Segunda Forma

Asegura que todas las columnas que no son llave sean completamente
dependientes de la llave primaria (PK).

Normal (2FN)

Tercera

Forma

Normal (3FN)

Elimina cualquier dependencia transitiva. Una dependencia transitiva es aquella


en la cual las columnas que no son llave son dependientes de otras columnas
que tampoco son llave.

1. Proceso de Normalizacin.
Proceso mediante el cual una tabla va pasando de una forma normal hacia otra del
siguiente nivel, con la finalidad de evitar la redundancia de los datos, protegiendo
la actualizacin y la integridad de los datos.

2. Primera Forma Normal (1FN).


Una tabla que se encuentra en 1FN se caracteriza por:

Todos los atributos son atmicos.


Hay una clave primaria.
No existen atributos nulos.
No existen grupos repetitivos.
Alumnos

Cdigo

Nombre

Fecha de Nacimiento

Telfono

36

UNIVERSIDAD PRIVADA TELESUP

1935.0456

Carlos Castro

01-05-1917

543-2178

1944.9870

Pedro Prado

26-03-1924

442-2226, 442-3256

1956.0045

Juan Bautista

18-07-1935

Cuadro 2: Tabla de Alumnos


En el cuadro 2, se presenta una tabla de Alumnos. La necesidad de guardar mltiples
nmeros telefnicos implica un problema de grupos repetidos, si consideramos
tenerlos en una sola tabla. Asimismo, existe la posibilidad de que algn alumno no
tenga telfono, lo que da lugar a atributos nulos. Esto nos indica que el atributo
telfono no est bien ubicado en la tabla Alumnos. Es recomendable retirar este
atributo y formar una nueva tabla llamada Telfonos del Alumno, En el cuadro 3 vemos
a la tabla Alumno modificada, mientras que en el cuadro 4 vemos a la nueva tabla
Telfonos del Alumno.

Telfonos del Alumno


Alumnos
Cdigo

1935.0456

1944.9870

1956.0045

Nombre

Carlos
Castro
Pedro
Prado
Juan
Bautista

Cdigo

Telfono

1935.0456

543-2178

1944.9870

442-2226

1944.9870

442-3256

Fecha de
Nacimiento
01-05-1917

26-03-1924

Cuadro 4: Nueva tabla de


Telfonos del Alumno.
18-07-1935

Cuadro 3: Tabla de Alumnos modificada.

37

UNIVERSIDAD PRIVADA TELESUP

3. Segunda Forma Normal (2FN).


Una tabla que se encuentra en 2FN se caracteriza por:

Se encuentra en 1FN.
Todo atributo que no forma parte de alguna clave depende de manera
completa de la clave principal.

En el cuadro 5, se presenta una tabla de Cursos por Alumno. En ella se consideran


los atributos cdigo, curso y correo electrnico.
La clave candidata est formada por los atributos cdigo y curso. Observe que el
atributo correo electrnico slo depende del atributo cdigo; pero, no depende del
atributo curso. Esto implica que el atributo correo electrnico no dependa de manera
completa de la clave principal o primaria. Por ello, este atributo no est bien ubicado
en la tabla Cursos por Alumnos.

Cdigo

Curso

Correo electrnico

1935.0456

Sistemas de Informacin Gerencial

ccastro@hotmail.com

1935.0456

Direccin Financiera 3

ccastro@hotmail.com

1935.0456

Deontologa Profesional

ccastro@hotmail.com

1944.9870

Sistemas de Informacin Gerencial

pprado@yahoo.com

1944.9870

Direccin Financiera 2

pprado@yahoo.com

1956.0045

Sistemas de Informacin Gerencial

a19560045@hotmail.com

1956.0045

Deontologa Profesional

a19560045@hotmail.com

Cuadro 5: Tabla Cursos por Alumno.


La pregunta aqu es, qu hacemos con el atributo correo electrnico? La duda pasa
por saber si lo incorporamos en la tabla que naturalmente correspondera, que sera
una tabla Alumno. Sin embargo, la duda pasa por si las necesidades del sistema a
desarrollar consideran que debamos almacenar ms de un correo electrnico por
alumno.

38

UNIVERSIDAD PRIVADA TELESUP

Asumiendo que esto ltimo es una condicin, lo


recomendable es crear una nueva tabla llamada Correo
electrnico del alumno. El cuadro 6 presenta a la tabla
Cursos por Alumno modificada, mientras que el cuadro
7 muestra a la nueva tabla Correo electrnico del
alumno.

Cursos por Alumno

Cdigo

Curso
Correo electrnico del alumno
Sistemas de Informacin

1935.0456

Gerencial

1935.0456

Direccin Financiera 3

1935.0456

Deontologa Profesional

1944.9870

1944.9870

1956.0045

1956.0045

Cdigo

Sistemas de Informacin

Correo electrnico

1935.0456

ccastro@hotmail.com

1944.9870

pprado@yahoo.com

1956.0045

a19560045@hotmail.com

Gerencial
Direccin Financiera 2
Sistemas de Informacin
Gerencial

As, se permite tener varios


correos electrnicos por alumno.
Cuadro 7: Nueva tabla Correo
electrnico del Alumno.

Deontologa Profesional

Cuadro 6: Tabla Cursos por Alumno modificada.

4. Tercera Forma Normal (3FN).


Una tabla que se encuentra en 3FN se caracteriza por:

Se encuentra en 2FN.
Ningn atributo no primario depende transitivamente de alguna
clave candidata.

39

UNIVERSIDAD PRIVADA TELESUP

Ciclo

Primer Lugar

Fecha de Nacimiento

1935.0456

01-05-1917

1957-2

1944.9870

26-03-1924

1958-1

1956.0045

18-07-1935

1958-2

1944.9870

26-03-1924

1957-1

Cuadro 8: Tabla Primer Lugar por Ciclos.


En el cuadro 8, se presenta la tabla Primer Lugar por Ciclos. En ella se presentan los
atributos ciclo, primer lugar y fecha de nacimiento. La clave candidata es ciclo. El
atributo no primario fecha de nacimiento es dependiente transitivamente, va el
atributo no primario primer lugar. Luego, el atributo fecha de nacimiento debe ser
retirado de la tabla Primer Lugar por Ciclos. La pregunta es A dnde va a ir? En
este caso, la fecha de nacimiento no puede tener mltiples valores por cada alumno.
Por ello, es natural que sea incorporada en una tabla llamada Alumno. El cuadro 9
nos presenta a la tabla Primer Lugar por Ciclos modificada, mientras que el cuadro
10 nos presenta a la nueva tabla alumno.

Primer Lugar por Ciclos

Ciclo

1957-1

Primer Lugar

1935.0456

Alumno

Cdigo

1935.0456

Fecha de Nacimiento

01-05-1917

1957-2

1944.9870

1944.9870

26-03-1924

1958-1

1956.0045

1956.0045

18-07-1935

1958-2

1944.9870

Cuadro 10: Nueva tabla Alumnos.


Cuadro 9: Tabla Primer Lugar por Ciclos modificada.

40

UNIVERSIDAD PRIVADA TELESUP

Ejercicio de Normalizacin.
En el cuadro 11, se presenta una tabla llamada Men Bsico Semanal por Cafetera.

Men Bsico Semanal por Cafetera

Cafetera

El Ruso

Dueo
Eric
Moscovita

Correo

Telfono

Da

123-2345,
emosca@yahoo.com

Bsico

Mircoles

Estofado
con pasas

Lunes

Fondue de
caviar

Martes

Arroz a lo
pobre

Jueves

Lomo fino a
lo pobre

Viernes

Arroz con
Pollo

345-1234
999-99999,

Cool

999-88888,

Miguel
ngelo

artcool@gmail.com
444-4444,
444-5555

El
Pueblo

Paro Misio

misionero@gmaill.co
m

Alpha

Humano
Homero

humo@hotmail.com

El Ruso

Eric
Moscovita

emosca@yahoo.com

777-7777
123-2345,
345-1234

Cuadro 11: Tabla Men Bsico Semanal por Cafetera.


Entendiendo que slo es una muestra de los datos ya que cada cafetera presenta
un men por da, aplique la 3FN a todas las tablas que se generen.
Una solucin posible: Nuestra primera tabla es Men Bsico Semanal por Cafetera.
Le aplicamos la 1FN. Todos los atributos son Atmicos:
La columna que podra ser considerada no atmica es el Dueo. Cabe la posibilidad
de convertirla en dos columnas: Nombre y Apellido.
La clave primaria es: Cafetera, Da y Bsico. Estas 3 columnas hacen nica las filas
de la tabla. Encontramos que la columna Telfono incumple tanto por tener
contenidos nulos como por contener grupos repetitivos.

41

UNIVERSIDAD PRIVADA TELESUP

Ahora tenemos dos tablas, entendiendo que la columna Telfono corresponde al


Dueo.

La segunda tabla, Telfonos del Dueo, tiene como clave primaria: Nombre, Apellido y
Telfono. Esta tabla se encuentra en la 3FN. Continuamos con la primera tabla, para
revisar la 2FN.
Todo atributo que no forma parte de alguna clave depende de manera completa de
la clave principal. Las columnas Nombre y Apellido, que no forman parte de una
clave, slo dependen de la columna Cafetera. Por ello, tenemos una tercera tabla,
llamada Dueo y una cuarta tabla llamada Cafetera. Las tablas van quedando as:

Men Bsico Semanal por Cafetera

Cafetera

Correo

Da

Bsico

Telfonos del Dueo

Nombre

Telfono

Cafetera

Dueo

Nombre

Apellido

Apellido

Cafetera

Nombre

Apellido

Para la cuarta tabla, la clave primaria es Cafetera, Nombre y Apellido. Falta


resolver cul ser la clave primaria para la tercera tabla. Dado que los nombres
pueden repetirse o ser muy largos, es conveniente buscar otra clave. Una clave
candidata es el DNI. Sin embargo, existe la posibilidad de que algn dueo sea
extranjero y no tenga DNI, sino, carn de extranjera.

42

UNIVERSIDAD PRIVADA TELESUP

Entonces, se puede definir una clave primaria


mediante dos nuevas columnas: Cdigo de
Documento

de Identidad

y Nmero

de

Documento de Identidad. Esto nos conduce a


crear una quinta tabla, llamada Cdigos de
Documento de Identidad.

Las tablas quedan as:

Telfonos del Dueo

Men Bsico Semanal por Cafetera

Cafetera

Correo

Da

COD
DOC

Bsico

NUM DOC

Telfono

Dueo
Cdigos de Documento de Identidad
COD
DOC

NUM
DOC

Nombre

Apellido
COD DOC

Descripcin

DNI

Carn de extranjera

Otros

Esta quinta tabla tiene como clave primaria a la columna COD DOC. A excepcin
de la primera tabla, todas se encuentran en la 3FN. La columna Correo depende del
Dueo y no de toda la clave primaria. Por ello, esta columna es trasladada a la tabla
Dueo. Con ello, la situacin final es la siguiente:

43

UNIVERSIDAD PRIVADA TELESUP

Men Bsico Semanal por


Cafetera

Cafetera

Da

Telfonos del Dueo

COD
DOC

Bsico

NUM DOC

Telfono

Cafetera
Dueo
Cafetera

COD DOC

COD
DOC

NUM DOC

Cdigos de Documento de
Identidad

COD DOC

NUM
DOC

Nombre

Apellido

Correo

Cafetera
Cafetera

Descripcin

COD DOC

NUM DOC

IMPORTANTE TOMAR EN CUENTA: si se considera que los dueos pueden


tener ms de un correo, entonces es pertinente definir una sexta tabla, llamada
Correos del Dueo.
Men Bsico Semanal por
Cafetera
Telfonos del Dueo
Cafetera

Da

Bsico
COD
DOC

NUM
DOC

Telfono

Dueo
COD
DOC

NUM
DOC

Nombre

Apellido

Correo
Correos del Dueo

Cdigos de Documento de
Identidad
COD DOC

COD
DOC

NUM DOC

Correo

Descripcin

Esta ltima tabla tiene como clave primaria a COD DOC, NUM DOC y Correo. Con esto
se concluye esta solucin propuesta. Como podrn ver, los supuestos que uno vaya
planteando van configurando y refinando el diseo de las tablas.

44

UNIVERSIDAD PRIVADA TELESUP

Lecturas Recomendadas

INTRODUCCIN A LA BASE DE DATOS

http://www.desarrolloweb.com/articulos/introduccion-base-datos.html

MODELO ENTIDAD-RELACIN

NORMALIZACIN

http://www.cs.us.es/cursos/bd-2002/HTML/modeloER.htm

http://es.wikipedia.org/wiki/Normalizaci%C3%B3n_de_bases_de_datos

Actividades y Ejercicios

1. Ingresa

al

link

Base

de

Datos

lee

atentamente

las

indicaciones, desarrllalo y envalo por el mismo medio.


Cul es la diferencia entre Lenguaje de Definicin de Datos y
Manipulacin de datos?
Enumere 5 entidades para un sistema acadmico.
Enumere 5 atributos para la ENTIDAD : ALUMNO
Enumere 3 atributos para la ENTIDAD : MATRICULA
Enumere los tipos de usuarios para una base de datos.

45

UNIVERSIDAD PRIVADA TELESUP

Autoevaluaciones

1- Es un valor numrico o alfanumrico que representa algo.


a.
b.
c.
d.
e.

Informacin
Objeto
Dato
Campo
Registro

2.- Es como una caracterstica o propiedad de un objeto.


a. Informacin
b. Objeto
c. Dato
d. Campo
e. Registro
3.- Es un lenguaje que se encarga de manipular los datos de la base de datos.
a.
b.
c.
d.
e.

DDL
DLL
DML
DLM
DCL

4.- Qu tipo de usuario de base de datos es la persona que desarrolla los sistemas
que interactan con la Base de Datos?
a.
b.
c.
d.
e.

Usuario final
Programadores de Aplicacin
DBA
Operador
DbOwner

5.- Qu tipo de usuario de base de datos son los que no pueden hacer nada y solo
utilizan los programas que ya estn hechos?
a.
b.
c.
d.
e.

Ingenuos
Sofisticados
Programadores
Especializados
Novatos

6.- Son las propiedades que tiene una entidad.


a. Atributo
b. Property
c. Registro
d. Relacin
e. DML

46

UNIVERSIDAD PRIVADA TELESUP

7.- Unin que existen entre entidades


a.
b.
c.
d.
e.

Relacin
Atributo
Registro
Campo
Interconexin

8.- Cuando una instancia de una Entidad se relacin con muchas Instancias de otra
Entidad. Cmo se llama esta relacin?
a.
b.
c.
d.
e.

Uno a Uno
Uno a Muchos
Muchos a Muchos
Uno a Todos
Uno a Cero.

9.- Cuntos niveles de normalizacin bsicos existen?


a.
b.
c.
d.
e.

1
2
3
4
5

10.- Asegurar que todas las columnas que no son llaves, sean completamente
dependientes de la llave primaria: es?
a.
b.
c.
d.
e.

1 forma normal
2 forma normal
3 forma normal
4 forma normal
5 forma normal

47

UNIVERSIDAD PRIVADA TELESUP

Resumen

UNIDAD DE APRENDIZAJE I:

Una base de datos es una coleccin de datos referentes a una organizacin estructurada
segn un modelo de datos de forma que refleja las relaciones y restricciones existentes
entre los objetos del mundo real, y consigue independencia, integridad y seguridad de los
datos.
Utilizamos DBMS para permitir a los usuarios acceder y manipular la base de datos.
Asimismo, para proveer a los administradores de bases de datos (DBA) herramientas que
le permitan realizar tareas de mantenimiento y administracin de los datos.
Existen los siguientes modelos de datos: Entidad Relacin, Jerrquico, de red, relacional,
relacional extendido y orientado a objetos.

Los Sistemas Gestores de Bases de Datos (SGBD)

son un tipo de software muy

especfico, dedicado a servir de interfaz entre las bases de datos y las aplicaciones que la
utilizan. Se compone de un lenguaje de definicin de datos, de un lenguaje de
manipulacin de datos y de un lenguaje de consulta.
El modelo Entidad relacin denominada por sus siglas como: E-R. Percibe el mundo real
como una serie de objetos relacionados entre si y pretende representarlos grficamente,
mediante un determinado mecanismo de abstraccin. Este mecanismo esta basado en una
serie de smbolos, reglas y mtodos que nos permitirn representar grficamente los datos
de inters del mundo real.
El modelo entidad-relacin es una tcnica para el modelado de datos utilizando diagramas
entidad relacin. No es la nica tcnica pero si la ms utilizada.

La normalizacin es el proceso mediante el cual se transforman datos complejos a un


conjunto de estructuras de datos ms pequeas, que adems de ser ms simples y ms
estables, son ms fciles de mantener. Tambin se puede entender la normalizacin como
una serie de reglas que sirven para ayudar a los diseadores de bases de datos a
desarrollar un esquema que minimice los problemas de lgica. Cada regla est basada en
la que le antecede. La normalizacin se adopt porque el viejo estilo de poner todos los
datos en un solo lugar, como un archivo o una tabla de base de datos, era ineficiente y
conduca a errores de lgica cuando se trataban de manipular los datos.

48

UNIVERSIDAD PRIVADA TELESUP

49

UNIVERSIDAD PRIVADA TELESUP

Introduccin

a) Presentacin y contextualizacin
En esta unidad se presenta un

tutorial de uso de la herramienta ERwin. Una

herramienta muy til para el diseo y modelo de una base de datos. Abarcando la
creacin de entidades, atributos, llaves y relaciones.

b) Competencia
Determina la importancia del uso de herramientas para la implementacin de base
de datos.

c) Capacidades
1. Identifica y desarrolla las herramientas bsicas del software ERWIN.
2. Desarrolla las llaves primarias y alternas.
3. Analiza y crea las relaciones entre entidades
4. Desarrolla el modelo fsico de datos.

d) Actitudes
Desarrolla una actitud emprendedora mediante la toma de iniciativas, promocin de
actividades y toma de decisiones en relacin a la actividad asignada.
Acta con responsabilidad personal, al cumplir con los horarios establecidos y el
respeto a las normas de convivencia.
Cumple con la presentacin de los trabajos encomendados de manera individual y
en equipo, respetando la iniciativa y aportes de los integrantes.
Desarrolla la creatividad, la innovacin, la actitud emprendedora y el respeto a la
honestidad intelectual.

e) Presentacin de Ideas bsicas y contenido esenciales de la Unidad:


La Unidad de Aprendizaje 02: Herramientas de base de Datos: ERWIN
comprende el desarrollo de los siguientes temas:
TEMA 01: Introduccin al ERwin
TEMA 02: Creacin de Llaves
TEMA 03: Creacin de Relaciones
TEMA 04: Modelo fsico de Datos

50

UNIVERSIDAD PRIVADA TELESUP

Introduccin
Al

TEMA 1

ERWIN
Competencia:
Identificar y desarrollar las herramientas
bsicas del software ERWIN.

51

UNIVERSIDAD PRIVADA TELESUP

Desarrollo de los Temas

Tema 01: Introduccin al ERwin


Rol de ERwin en el Modelamiento de Datos
ERwin es una herramienta de base de datos que le
ayuda a disear, generar y mantener aplicaciones de
base de datos de calidad y alto rendimiento.
Desde un modelo lgico de sus requerimientos de
informacin y reglas del negocio que definen su base de datos, hasta un modelo fsico,
optimizado por las caractersticas especficas de su base de datos de destino, ERwin
le permite visualizar la estructura adecuada, los elementos clave y un diseo
optimizado de su base de datos.

ERwin genera tablas automticamente y miles de lneas de stored procedures y cdigo


trigger para las principales bases de datos. Su tecnologa "complete-compare" permite
el desarrollo interactivo, de manera que su modelo est siempre sincronizado con su
base de datos. A travs de la integracin con los ambientes de desarrollo lderes en la
industria, ERwin tambin acelera la creacin de aplicaciones data-centric.

Beneficios de Erwin
poder reusarlo, la integracin de los datos del
proyecto al proporcionar el bosquejo que las IT necesitan para
entender, analizar y comunicar la estructura de la base de datos.
Mejora la productividad entre los desarrolladores cuando los diseos de
la base de datos son divididos, compartidos, y reutilizados. El ambiente
grfico facilita la visualizacin de la estructura completa, los elementos
claves y el diseo optimizado de la base de datos.

transaccionales de alto rendimiento y para data ware house. Mantiene los recursos y
mejora la precisin al sincronizar el modelo y la base de datos.

52

UNIVERSIDAD PRIVADA TELESUP

Herramientas de Navegacin de ERwin

53

UNIVERSIDAD PRIVADA TELESUP

ATENCION: para el presente manual se esta usando el ERwin 3.52 se debe entrar al
ERwin y hacer click en el men new file (pide escoger un modelo, se escoge
modelo fsico/lgico y clic en ok).

El Editor de Diagrama
Para crear un Modelo en ERwin utilice el Editor de Diagrama. Para ello realizar los
siguientes pasos:

1. Desde el men Edit, elegir Diagram...

2. Ingrese Nombre y Autor.


3. Seleccione el Servidor de Base de Datos (Target Server).
4. Clic en OK para retornar al modelo.

54

UNIVERSIDAD PRIVADA TELESUP

Ventana Principal de ERwin

Creando Entidades y Atributos


Tipos de Entidades en ERwin
En ERwin el modelo lgico puede contener dos
tipos de entidades: independiente y dependiente.

Una entidad independiente es una entidad que puede identificarse sin


determinar su relacin con otra entidad. Cada entidad tiene llave propia, se
representa como una caja con rincones cuadrados. Una entidad dependiente es
una entidad que para identificarse requiere de su relacin a otra entidad o
entidades. Se representa como una caja con rincones redondeados.

Entidad Independiente Entidad Dependiente

Asegurarse
que este
seleccionado
Logical

55

UNIVERSIDAD PRIVADA TELESUP

Construyendo y Nombrando Entidades


Para crear una entidad realizar lo siguiente:

Nota: ERwin establece un nombre por defecto para la Entidad as como para
cualquier objeto construido.

El Editor de Entidades
Utilice el editor de entidades para ingresar/editar, definiciones de entidades y sus
notas, para explorar definiciones, cambiar el nombre a la entidad o para asignar
propiedades definidas por el usuario UPD. Para ello realizar lo siguiente:

56

UNIVERSIDAD PRIVADA TELESUP

Finalmente la entidad quedara definida tal como se muestra en la figura:

57

UNIVERSIDAD PRIVADA TELESUP

El Editor en Pantalla
El editor en pantalla permite crear en forma rpida el nombre de la entidad, atributos, y
Llaves. Para ello realizar lo siguiente:

Nota:
1. Si la llave primaria es compuesta use la tecla ENTER para escribir atributos
adicionales en esta rea.
2. Utilizar la tecla ENTER para incluir mas atributos

El Editor de Atributos
El editor es utilizado construir y editar llaves primarias y atributos no-llave, explorar
entidades, definir atributos, asignar dominios y crear llaves alternas y entradas inversas.
Para ingresar al editor de atributos realizar lo
siguiente:

1. Clic derecho en una entidad.


2. Elija la opcin Attribute Editor.
3. Finalmente ERwin le mostrara la siguiente
ventana.

58

UNIVERSIDAD PRIVADA TELESUP

1. Seleccione el CheckBox

2. Seleccione el CheckBox

Primary Key en el tab

Logical Only para indicar

General para designar que un

que un atributo seleccionado

atributo es parte de la llave

no aparezca como una

primaria

columna en el modelo fsico.

3. Seleccione el CheckBox
Required para indicar que
un atributo debe tener un valor.

Para el caso en estudio las entidades a crear son las siguientes:

PRODUCTO, CLIENTE, PERSONAL, USUARIO, PROFORMA, FACTURA, NOTA


DE PEDIDO, BOLETA.
El modelo quedar tal como se muestra en la siguiente figura:

59

UNIVERSIDAD PRIVADA TELESUP

60

UNIVERSIDAD PRIVADA TELESUP

Creacin
De

TEMA 2

Llaves
Competencia:
Desarrollar las llaves primarias y alternas.

61

UNIVERSIDAD PRIVADA TELESUP

Tema 02: Creacin de Llaves


Creando Llaves Primaria (PK)
Por definicin un Llave Primaria es aquella que identifica de manera
nica una fila de la entidad. Esta debe cumplir ciertos
requisitos:
1. No cambia con el tiempo
2. No acepta valores NULL
3. No acepta valores repetidos

En ERwin para crear una Llave Primaria realizar lo siguiente:

1.

Clic derecho sobre la entidad

2.

Seleccione Key Group

62

UNIVERSIDAD PRIVADA TELESUP

3.

4.

Posteriormente ERwin le mostrar la siguiente ventana:

En la zona de Available Attributes seleccione el atributo CODIGO DE


PERSONAL.

5.

Posteriormente haga clic en el botn

para elegir el atributo como PK.

6. En el cuadro combinado que tiene como titulo Entity elija otra entidad y seleccione
el atributo que usted ha elegido como Llave Primaria.

7.

Repita el paso 5

8.

Finalmente Clic en OK

Otra forma de crear Llaves Primarias es


haciendo

uso

de

la

herramienta

de

manipulacin de atributos de la barra de


trabajo de ERwin de la siguiente manera:

63

UNIVERSIDAD PRIVADA TELESUP

1. Clic en la caja de herramienta que tiene como titulo manipulacin de atributos.


2. Haga clic en el atributo CODIGO DE PERSONAL, arrstrelo y ubquelo por encima de
la lnea y suelte.
3. Automticamente ERwin creara la Llave Primaria.
4. Realizar los mismos pasos para las dems entidades.

Para el caso en estudio las lleves primaria del modelo sern las que se muestran a
continuacin:

ENTIDADES DEL MODELO CON


SUS LLAVES PRIMARIA (PK)

64

UNIVERSIDAD PRIVADA TELESUP

Creando Llaves Alternas (AK)


Una llave alterna (AK) es un atributo o grupos de atributos que no fueron elegidos
como Llaves Primarias. En ERwin para crear una Llave Alterna realizar lo
siguiente:

1. Clic derecho sobre la entidad


2. Seleccione Key Group...
3. ERwin le mostrar la siguiente ventana

1. Haga clic en el botn NEW


2. ERwin le mostrara la siguiente ventana

1. Seleccione Key Group y escriba AK


2. Un nombre por defecto es creado pero puede ser modificado.
Finalmente clic en OK

65

UNIVERSIDAD PRIVADA TELESUP

4. Luego seleccione los atributos que van a ser incluidos dentro de la llave.
5. Clic en la flecha derecha para incluir atributos.
6. Finalmente clic en OK.

Creando Llaves Inversas (IE)


Para crear Llaves Inversa o Entrada Inversa repita los mismos
pasos que sigui para
crear una Llave Alterna. En la ventana New Key Group elija el
botn que tiene como
ttulo Inversion Entry (no-unique).
Tal como se muestra en la figura:

66

UNIVERSIDAD PRIVADA TELESUP

Finalmente Seleccione los atributos que van a ser incluidos dentro de la llave y haga clic
en la flecha derecha para incluirlos. El modelo quedara tal como se muestra en la figura:

El Modelo para el caso en estudio la entidad personal quedara tal como se muestra
en la figura:

Entidad Personal con una


Llave Alterna (AK1.1) y
con
una Entrada Inversa
(IE1.1)
definidas

67

UNIVERSIDAD PRIVADA TELESUP

Creacin

TEMA 3

De

Relaciones
Competencia:
Analizar y crear las relaciones entre
entidades.

68

UNIVERSIDAD PRIVADA TELESUP

Tema 03: Creacin de Relaciones


Creando Relaciones
ERwin define tres tipos de relaciones:

1. Relacin Identificada.
2. Relacin no Identificada.
3. Relacin Muchos a Muchos.

Para todos los casos la construccin de las relaciones es tal como se detalla a
Continuacin:

1. Seleccione el tipo de relacin de la caja de herramienta.


2. Seleccione la entidad Padre.
3. Seleccione la entidad hijo.
4. Seleccione la flecha de la caja de herramienta para desactivar la relacin.
Para el ejemplo las relaciones quedaran establecidas de acuerdo a la siguiente
figura:

69

UNIVERSIDAD PRIVADA TELESUP

Nota:

Las relaciones estn sin editarse dentro del modelo, a continuacin

pasaremos a hablar sobre la edicin de la relaciones.

Para crear la relacin se arrastrar un atributo primario de una entidad hacia otra.
En la otra entidad se creara automticamente el campo arrastrado con unas siglas (FK) el
cual significa que es una clave fornea.

Editando la Relaciones
Para editar una relacin realizar lo siguiente:

1.
2.

Haga doble clic sobre la relacin


ERwin le mostrara la siguiente ventana:

70

UNIVERSIDAD PRIVADA TELESUP

Para el presente modelo edite las siguientes relaciones de acuerdo a la tabla que se
muestra a continuacin:

Finalmente el modelo se visualizara tal como se muestra en la figura:

71

UNIVERSIDAD PRIVADA TELESUP

Creando Frase-Verbo a las Relaciones


Una frase verbo permite describir la relacin entre dos entidades, para ello realizar lo
siguiente:

1. Doble clic sobre la relacin


2. En el TAB General ingrese a la zona que tiene como titulo Parent-to-Child y
escriba el verbo para la relacin

3. Finalmente clic en OK

Si aplicamos esta opcin a todas nuestra relaciones dentro del modelo estas se
visualizaran tal como se muestra en la figura:

Nota: El modelo lgico debe tener todas sus entidades totalmente relacionadas, no
puede existir ninguna entidad acfala ya que dejara de ser un modelo EntidadRelacin.

72

UNIVERSIDAD PRIVADA TELESUP

Modelo

TEMA 4

Fsico de

Datos
Competencia:
Desarrollar el Modelo Fsico de Datos.

73

UNIVERSIDAD PRIVADA TELESUP

Tema 04: Modelo Fsico de Datos


Representacin Fsica del Modelo de Datos
ERwin mantiene las representaciones Lgica y Fsica del
modelo de datos. Soporta caractersticas fsicas del
servidor objetivo (Target Server). Sincroniza el modelo
fsico de datos con el catlogo del servidor objetivo.

Vista en el Modelo Lgico

Vista en el Modelo Fsico

Objetos Logical Only (Solo Lgicos)


Entre estos objetos tenemos:
1. Las relaciones Muchos a Muchos solamente se muestran en el
modelo lgico.
2. Los smbolos de Generalizacin Jerrquica cambian en el
modelo Fsico.
3. Entidades, atributos individuales o relaciones podran ser
diseadas como solo lgicos.

74

UNIVERSIDAD PRIVADA TELESUP

Relaciones Muchos a Muchos


Vista en el Modelo Lgico
Vista en el Modelo Fsico

Modelo Lgico

Modelo Fsico

Modelo Lgico

75

UNIVERSIDAD PRIVADA TELESUP

Modelo Fsico

Asignando Propiedades a Columnas


Para asignar propiedades a las columnas realizar lo siguiente:

1. Clic derecho sobre la tabla


2. Elija Column Editor

76

UNIVERSIDAD PRIVADA TELESUP

En esta ventana especifique la informacin del cliente y del servidor incluyendo tipo de
dato y regla de validacin. En el TAB General seleccione:

Un dominio
Configure la Llave Primaria
Configure Physical Only

Asignando Tipo de Datos


Para asignar tipo de dato a las columnas realizar lo siguiente:

1. Clic derecho sobre la tabla.


2. Elija Column Editor
3. Elija el TAB que tiene como nombre el servidor de base de datos elegido.

Elija el TAB DBMS y seleccione:


Tipo de dato
Longitud si es necesario
Opcin NULL

77

UNIVERSIDAD PRIVADA TELESUP

Creando Reglas de Validacin (Validation Rule)


Es una expresin que establece un rango de valores aceptables que pueden ser
almacenadas en una columna.
Pueden ser ingresadas y mantenidas desde ERwin y
permiten que el servidor de bases de datos valide la
informacin a ser almacenada. Permite que la aplicacin
cliente valide la informacin antes de hacer una llamada a
la base de datos.
Para crear una regla de validacin en ERwin realizar los siguientes pasos:

1. Cambiar al modelo Fsico.


2. Clic derecho en la tabla y elija la opcin Column Editor
3. ERwin le mostrar la siguiente ventana:

1. Clic al costado del ComboBox VALID


2. ERwin le mostrara la siguiente ventana

78

UNIVERSIDAD PRIVADA TELESUP

79

UNIVERSIDAD PRIVADA TELESUP

Posteriormente ERwin le mostrara nuevamente la ventana anterior con la regla de


validacin creada:

Clic en OK nuevamente para regresar al editor de columnas donde la regla ser


ligada a la columna tal como se muestra en la figura.

80

UNIVERSIDAD PRIVADA TELESUP

Dominio
Conjunto

de

propiedades

de

atributos/columnas

definidas por el usuario. Utilizar los dominios para:

Ahorrar tiempo.
Evitar errores.
Estandarizar el Modelo.

Todo lo que puede especificar para una columna con aquellas especificadas para el
dominio lgico. Estas propiedades estn relacionadas con aquellas especificadas para
el dominio lgico. Crear dominios para la informacin de uso comn.

Asignando Tipo de Datos a un Dominio


Para asignar un tipo de datos a un dominio realizar lo siguiente:

1. Pasar al modelo Fsico.


2. En el examinador de dominios haga doble clic sobre uno de ellos
Dominios creados en el modelo Lgico.

81

UNIVERSIDAD PRIVADA TELESUP

Lecturas Recomendadas

TUTORIAL DE ERWIN
http://es.scribd.com/doc/3075477/Manual-de-Usuario-de-Erwin

REFINANDO EL MODELO DE DATOS


http://es.scribd.com/doc/52157227/9/Refinando-el-Modelo-de-Datos

Actividades y Ejercicios

Ingresa al link Erwin lee atentamente las indicaciones,


desarrllalo y envalo por el mismo medio.
1. Qu es el modelo Entidad Relacin?
2. Enumere 3 ejemplos de atributos de una entidad ALUMNO:
3. Enumere 3 beneficios de usar ERwin:

Las siguientes preguntas se desarrollaran en el programa Erwin ,


se tomar un pantallazo y se pondr en el documento de Word y
esta se enviar a travs de Desarrollo en Erwin
1. Crear una entidad Alumno, Curso y Notas (con sus respectivos
atributos), luego relacionarlos entre si.
2. Poner en el modelo Fsico los tipos de datos a los atributos del
modelo creado en la pregunta anterior.

82

UNIVERSIDAD PRIVADA TELESUP

Autoevaluaciones
1.- Qu es el ERwin?
a. Lenguaje de programacin.
b. Software para disear BD.
c. DBMS.
d. Lenguaje de juegos.
e. Software libre.

2.- Tipos de entidades que maneja el ERwin?


a. Lgica/Fsica.
b. Independiente/Dependiente.
c. Alta/Baja.
d. Baja
e. Dependiente
3.- Caractersticas de una llave primaria
a. No acepta valores nulos.
b. Acepta valores repetidos.
c. Acepta valores nulos.
d. Valores superficiales.
e. Acepta codificaciones alternas.

4.- Cuntos tipos de llaves maneja el ERwin?


a.

b.

c.

d.

e.

5.- Las llaves que no fueron seleccionadas como primarias se denominan?


a. Secundarias
b. Alternas
c. Atributos
d. Primarias
e. Opcionales

83

UNIVERSIDAD PRIVADA TELESUP

6.- Cuntos tipos de relaciones existen segn Erwin?


a. 1
b. 2
c. 3
d. 4
e. 5
7.- Una frase verbo permite describir la relacin entre:
a. Dos entidades.
b. Una clave alterna.
c. Una clave inversa.
d. Llave primaria.
e. Llave primary key.

8.- Conjunto de propiedades de atributos/columnas definidas por el usuario:


a. Almacenamiento:
b. Dominio
c. Modelo Fsico
d. Datos
e. Llave primary key
9.- Los tipos de datos se asignan en el
a.
b.
c.
d.
e.

Modelo Fsico
Modelo Lgico
rea de Negocio
Atributo
La entidad

10.- Son condiciones para que se puedan almacenar valores en un campo de la


entidad:
a. Validation ruler
b. Normalizacion
c. Primary key
d. Software para disear
e. Logica

84

UNIVERSIDAD PRIVADA TELESUP

Resumen

UNIDAD DE APRENDIZAJE II:

ERwin es una herramienta de base de datos que le ayuda a disear, generar y mantener
aplicaciones de base de datos de calidad y alto rendimiento. Desde un modelo lgico de
sus requerimientos de informacin y reglas del negocio que definen su base de datos,
hasta un modelo fsico, optimizado por las caractersticas especficas de su base de datos
de destino. ERwin le permite visualizar la estructura adecuada, los elementos clave y un
diseo optimizado de su base de datos. Entre los beneficios de usar ERwin tenemos:
Asegura consistencia, poder reusarlo, la integracin de los datos del proyecto al
proporcionar el bosquejo que las IT necesitan para entender, analizar y comunicar la
estructura de la base de datos. Mejora la productividad entre los desarrolladores cuando
los diseos de la base de datos son divididos, compartidos, y reutilizados.
elementos
claves y el diseo optimizado de la base de datos.

La creacin de llaves permite que una entidad tenga un campo clave, es decir un campo
que identifique a toda la entidad. Es como si hablaremos del DNI de una persona es un
dato que identifica a una persona y con ese dato podemos obtener mas datos como el
nombre, direccin, telfono, etc. Entonces se dira que el DNI es la llave principal de una
persona. El ERwin permite crear estas llaves en el modelado de las entidades

Las relaciones entre entidades es muy importante por que estas nos mostrarn el mbito
general de las entidades y como interactan entre ellas.
El ERwin permite crear estas relaciones mostrando una flecha grfica que indica que
entidad se relaciona con otra, de esa forma se tiene una mejor visin del modelo de datos
ya que se estara observando las interacciones entre las entidades.

ERwin mantiene las representaciones Lgica y Fsica del modelo de datos. Soporta
caractersticas fsicas del servidor objetivo (Target Server). Sincroniza el modelo fsico de
datos con el catlogo del servidor objetivo.
Generalmente el modelo fsico es el que nos servir para asignar los tipos de datos a cada
atributo de la entidad.

85

UNIVERSIDAD PRIVADA TELESUP

86

UNIVERSIDAD PRIVADA TELESUP

Introduccin

a) Presentacin y contextualizacin
El contenido de esta unidad es el manejo bsico de las sentencias SQL.
Estas sentencias permitirn la creacin, manipulacin y control de las bases de
datos. As como tambin el uso de funciones, ndices y vistas.

b) Competencia
Identificar las sentencias principales de SQL para el manejo de la base de
datos.

c) Capacidades
1. Analiza y comprende comandos bsicos de SQL.
2. Desarrolla comandos SQL para la manipulacin de datos.
3. Desarrolla comandos SQL usando funciones.
4. Define ndices y vistas.

d) Actitudes
Desarrolla una actitud emprendedora mediante la toma de iniciativas, promocin de
actividades y toma de decisiones en relacin a la actividad asignada.
Acta con responsabilidad personal, al cumplir con los horarios establecidos y el
respeto a las normas de convivencia.
Cumple con la presentacin de los trabajos encomendados con puntualidad.
Desarrolla la creatividad, la innovacin, la actitud emprendedora y el respeto a la
honestidad intelectual.

e) Presentacin de Ideas bsica y contenida esencial de la Unidad:


La Unidad de Aprendizaje 03: Manejo del SQL Bsico comprende el desarrollo de
los siguientes temas:
TEMA 01: SQL-Bsico
TEMA 02: Lenguaje de Manipulacin de Datos
TEMA 03: Funciones en SQL
TEMA 04: ndices y Vistas

87

UNIVERSIDAD PRIVADA TELESUP

SQL

TEMA 1

Bsico
Competencia:
Analizar y comprender comandos bsicos
de SQL.

88

UNIVERSIDAD PRIVADA TELESUP

Desarrollo de los Temas

Tema 01: SQL - Bsico


1.1.- Lenguaje SQL
El SQL (Structured query language), lenguaje de consulta
estructurado, es un lenguaje surgido de un proyecto de
investigacin de IBM para el acceso a bases de datos relacionales.
Actualmente se ha convertido en un estndar de lenguaje de bases de
datos, y la mayora de los sistemas de bases de datos lo soportan, desde
sistemas para ordenadores personales, hasta grandes ordenadores.

Por supuesto, a partir del estndar cada sistema ha desarrollado su propio SQL que
puede variar de un sistema a otro, pero con cambios que no suponen ninguna
complicacin para alguien que conozca un SQL concreto.

Como su nombre indica, el SQL nos permite realizar consultas a la base de datos.
Pero el nombre se queda corto ya que SQL adems realiza funciones de definicin,
control y gestin de la base de datos.

Las sentencias SQL se clasifican segn su finalidad dando origen a tres


lenguajes o mejor dicho sublenguajes:

DML (Data Manipulation Language),

lenguaje

de manipulacin de datos, nos permite recuperar los


datos almacenados en la base de datos y tambin
incluye rdenes para permitir al usuario actualizar la
base de datos aadiendo nuevos datos, suprimiendo
datos

antiguos

modificando

datos

previamente

almacenados.

89

UNIVERSIDAD PRIVADA TELESUP

DDL (Data Description Language),

lenguaje de definicin de datos,

incluye rdenes para definir, modificar o borrar las tablas en las que se
almacenan los datos y de las relaciones entre estas. (Es el que ms varia de un
sistema a otro).

DCL (Data Control Language),

lenguaje de control de datos, contiene

elementos tiles para trabajar en un entorno multiusuario, en el que es


importante la proteccin de los datos, la seguridad
de las tablas y el establecimiento de restricciones en
el acceso, as como elementos para coordinar la
comparticin de datos por parte de usuarios
concurrentes, asegurando que no interfieren unos
con otros.

1.2.- Terminologa de BD
Es bueno saber algunos trminos en bases de datos como lo que es una tabla,
registro o campo, aqu algunos conceptos:
CONCEPTO

DESCRIPCIN

Tabla

Es la estructura bsica de almacenamiento en una BD


relacional. Consiste de una o ms columnas y cero o ms
filas.

Fila(Registro)

Es el equivalente a un registro en un sistema de


archivos. Las filas se componen de columnas.

Columna(Campo)

Es un elemento de una fila que contiene un dato. Equivale


a un campo en un registro.

Llave primaria (PK)

Es la columna o conjunto de ellas que identifica de forma


nica a una fila dentro de la tabla.

Llave fornea (FK)

Es la columna o conjunto de columnas que sirve de


relacin con la llave primaria de otra tabla.

Vistas

Estructuras dinmicas "virtuales" que se comportan en

90

UNIVERSIDAD PRIVADA TELESUP

forma similar a una tabla (para efectos de consulta) y que


se crean con un select.
Transaccin

Conjunto de instrucciones que se ejecutan todas o


ninguna.

La

transaccionalidad

permite

mantener

consistente la informacin en una BD.

1.3.- Lenguaje de Definicin de Datos.- (DDL)


El lenguaje de definicin de datos permite:

Definir y crear una nueva tabla.


Suprimir una tabla que ya no se necesita.
Cambiar la definicin de una tabla existente.
Definir una tabla virtual (o vista) de datos.
La concesin de privilegios sobre un objeto de la base de
datos.

La revocacin de privilegios sobre un objeto de la base de


datos.

Construir un ndice para hacer ms rpido el acceso a la tabla.


Aqu unos ejemplos de los comandos mas usados (Se est tomando como referencia
el gestor de Base de Datos SQL Server).

1.- Comando USE.- Use sirve para activar alguna base de datos por ejemplo si
queremos trabajar con la base de datos NORTHWIND debemos poner en el
analizador de consultas USE NORTHWIND (Por defecto cuando se abre el
analizador de consultas se est en la base de datos MASTER).

2.- Objeto SYSDATABASES.- Es una tabla del sistema que se


encuentra en la base de datos MASTER en esa tabla se almacena
todos los objetos creados en el SQL Server. En el campo name
se guarda el nombre de las bases de datos creadas.
SELECT * FROM SYSDATABASES

91

UNIVERSIDAD PRIVADA TELESUP

3.- Objeto SYSOBJECTS .- Es una tabla del sistema que se almacena en cada base
de datos y tiene guarda el nombre, fecha de creacin, tipo, etc. de todos los
objetos creados en esa base de datos. El campo name hace referencia al nombre
del objeto y el campo type hace referencia a que clase de objeto es por ejemplo si
es U es una tabla hecha por el usuario, si es P es un procedimiento
almacenado.
Aqu los posibles tipos :C = Restriccin CHECK, D = Valor predeterminado o
restriccin DEFAULT,F = Restriccin FOREIGN KEY,FN = Funcin escalar,IF =
Funcin de tabla en lnea,K = Restriccin PRIMARY KEY o UNIQUE,L =
Restriccin,P = Procedimiento almacenado,R = Regla,RF = Procedimiento
almacenado de filtro de duplicacin S = Tabla del sistema ,TF = Funcin de
tabla,TR = Desencadenador,U = Tabla de usuario,V = Vista,X = Procedimiento
almacenado extendido.

4.- Crear una Base de Datos.- CREATE DATABASE Nombre Ejemplo: Crear una
base de Datos llamada BDIDAT: CREATE DATABASE BDIDAT

5.-Eliminar una Base de Datos.- DROP DATABASE Nombre Ejemplo: Borrar la


base de datos llamada BDIDAT DROP DATABASE BDIDAT.

6.- Crear una tabla.- CREATE TABLE Nombre (Campo tipo, Campo2 tipo....)
Ejemplo: Crear la tabla AREAS reas (cdigo, nombre, departamento).
CREATE TABLE reas (cdigo varchar 3),
nombre

(varchar

55),

departamento

(varchar3).
Hay que tener en cuenta que debemos
estar en la base de datos donde queremos
crear las tablas antes de hacer esto.

92

UNIVERSIDAD PRIVADA TELESUP

Tipos de Datos en SQL Server


bigint .-Datos enteros (nmeros enteros grandes)
int .- Datos enteros (nmeros enteros)
smallint .- Datos enteros pequeos
tinyint.- Datos enteros comprendidos 0 y 255.
bit .- Datos enteros con valor 1 0.
decimal .- Datos de precisin y escala numrica(Enteros y decimales).
numeric .- Funcionalmente equivalente a decimal.
money .- Valores de moneda comprendidos con una precisin de una diezmilsima de la
unidad monetaria.

smallmoney .-

Valores de moneda (ms pequeo) con una precisin de una

diezmilsima de la unidad monetaria.

float .- Un valor de coma flotante de precisin doble.


real .- Un valor de coma flotante de precisin simple.
datetime .- Datos de fecha y hora comprendidos entre el 1 de enero de 1753 y el 31 de
diciembre de 9999, con una precisin de 3,33 milisegundos.

smalldatatime.- Datos de fecha y hora comprendidos entre el 1 de enero de 1900 y el 6


de junio de 2079, con una precisin de un minuto.

char.- Datos de caracteres de longitud fija con una longitud mxima de 8.000 caracteres.
varchar.- Datos de longitud variable con un mximo de 8.000 caracteres.
text.- Datos de longitud variable con una longitud mxima de 231 - 1 (2.147.483.647)
caracteres.

image.- Datos binarios de longitud variable con una longitud mxima de 231 - 1
(2.147.483.647) bytes.

Otros tipos de datos


cursor.- Una referencia a un cursor.
sql_variant.- Un tipo de datos que almacena valores de varios tipos de datos aceptados
en SQL Server, excepto text, ntext, timestamp y sql_variant.

table.- Un tipo de datos especial que se utiliza para almacenar un conjunto de resultados
para un proceso posterior.
timestamp.- Un nmero nico para toda la base de datos que se actualiza cada vez que
se actualiza una fila.

93

UNIVERSIDAD PRIVADA TELESUP

1.4.- Lenguaje de Control de Datos.- (DCL)

Contiene elementos tiles para trabajar en un entorno multiusuario, en el que es


importante la proteccin de los datos, la seguridad de las tablas y el establecimiento de
restricciones en el acceso, as como elementos para coordinar la comparticin de datos
por parte de usuarios concurrentes, asegurando que no interfieren unos con otros.

Restricciones (CONSTRAINT)
Son reglas de validacin a algunos campos se puede declarar al momento de crear la tabla
o despus modificando la tabla.

Comandos ms comunes:
NOT NULL. La columna no permitir valores nulos.
CONSTRAINT. Permite asociar un nombre a una restriccin.
DEFAULT. La columna tendr un valor por defecto.
PRIMARY KEY. Permite indicar que esta columna forma parte de la clave primaria.
FOREIGN KEY Indica que campo/s, es/son clave externa y hace referencia a la clave
primaria de otra tabla.
REFERENCES. Es la manera de indicar que este campo, es clave externa y hace
referencia a la clave primaria de otra tabla. Esta foreign key es slo de una columna.
UNIQUE. Obliga a que los valores de una columna tomen valores nicos (no puede
haber dos filas con igual valor). Se implementa creando un ndice para dicha(s)
columna(s).
CHECK (condicin). Permite indicar que condicin debe de cumplir esa columna.
Ejemplo: Crear una tabla carrera que el campo codcar tenga la restriccin de que
solo acepte letras

1.- Esta es una forma se pone al constraint al momento de crear la tabla y al costado del
campo

94

UNIVERSIDAD PRIVADA TELESUP

create table carrera(codcar varchar(1) primary key not null constraint rscodcar
check(codcar like '[a-z]'),
nomcar varchar(15))

2.- Esta otra forma tambin es cuando se crea la tabla pero el constraint se pone al final
de haber declarado todos los campos.
create table carrera(codcar varchar(1) primary key not null,
nomcar varchar(15),
constraint rscodcar check(codcar like '[a-z]'))

3.- Y aqu primero se crea la tabla y luego se aade el constraint


create table carrera(codcar varchar(1) primary key not null,
nomcar varchar(15))
Alter table Carrera Add constraint rscodcar check(codcar like '[a-z]')
En los 3 casos se creo un constraint llamado RscodCar, para borrar un constraint seria:
Alter table Carrera Drop constraint rscodcar
Ejemplo: Crear una tabla llamada Alumno con los campos CODALU, NOMALU,
FECHANAC, SEXO y CIUDAD donde no se permita ingresar ningn valor NULL
adems de que el campo CODALU sea clave primaria ,en el campo CIUDAD darle
un valor por defecto que sea LIMA , y al campo sexo solo se pueda ingresar M o F.
CREATE TABLE ALUMNO (
CODALU INT NOT NULL PRIMARY KEY,
NOMALU VARCHAR(30) NOT NULL,
FECHANAC DATETIME NOT NULL,
SEXO VARCHAR(1) NOT NULL CONSTRAINT PKSEXO CHECK (SEXO LIKE
'[M,F]'),
CIUDAD VARCHAR(15) NOT NULL CONSTRAINT PKCIU DEFAULT 'LIMA',
CODCUR VARCHAR(4) NOT NULL)

4.- Borrar una tabla.- DROP TABLE Nombre Ejem: DROP TABLE CURSO
Se est eliminando la tabla curso

5.- Modificar tabla.Ejemplo tenemos la tabla CURSO con 2 campos CODALU, NOMALU.
Aadir un campo ALTER TABLE Nombre ADD Nombre, Campo, Tipo.
Ejemplo: Agregar el campo CODPROF de tipo INT a la tabla curso.

95

UNIVERSIDAD PRIVADA TELESUP

ALTER TABLE CURSO ADD CODPROF INT


Eliminar un campo: ALTER TABLE Nombre DROP COLUMN Nombre Campo.
Ejemplo: borrar el campo CODPROF de la tabla curso.
ALTER TABLE CURSO DROP COLUMN CODPROF.
Modificar un Campo: ALTER TABLE Nombre ALTER COLUMN Nombre Tipo.
Ejemplo: Modificar el campo nomcur para que tenga 10 caracteres.
ALTER TABLE CURSO ALTER COLUMN NOMCUR VARCHAR(10)

Ejemplo Prctico
go
CREATE DATABASE ESTUDIOS
GO
USE ESTUDIOS
GO
Create Table Carreras
(codcar int not null primary key,
nomcar varchar(30)
)
go
Create Table Alumnos
(codalu int identity(1001,1) not null primary key,
nomalu varchar(30),
codcar int,
foreign key(codcar) references carreras(codcar)
on update cascade
on delete cascade
)
go
- Agregar tabla Locales con 2 campos (cod y nom)
Create table Locales(Codlocal varchar(2) primary key,nomlocal varchar(30))
- Agregar campo Ubicacion(Lima,Lince,Jesus Maria) a la tabla carreras
alter table carreras add Ubicacion varchar(10)

96

UNIVERSIDAD PRIVADA TELESUP

- Agregar campo cdigo de local a la tabla carreras y ponerlo como clave fornea
alter

table

carreras

add

codlocal

varchar(2)

foreign

key(codlocal)

references

Locales(codlocal)
- Agregar campo fecha de matricula a la tabla alumnos
alter table alumnos add fecmat datetime
- Cambiar el tipo de dato al campo ubicacin mas grande esto en la tabla carreras
alter table carreras alter column Ubicacion varchar(50)
.- Poner al campo ubicacin por defecto Lima esto en la tabla carreras
alter table carreras add constraint res1 default 'Lima' for Ubicacin
.- Poner al campo fecha de matricula por defecto la fecha actual esto en la tabla alumnos
alter table Alumnos add constraint res2 default getdate() for fecmat
- Eliminar el constraint res3
alter table notas drop constraint res3
- Validar que el campo precio de curso sea mayor a 100 esto en la tabla cursos
alter table cursos add constraint res4 check(precio > 100)
- Validar que el campo sexo solo acepte M o F esto en la tabla alumnos
alter table Alumnos add constraint res5 check(sexo='M' or sexo ='F')
--Tambin podra ser as:
--alter table Alumnos add constraint res5 check(sexo like'[M,F]')
- Eliminar el campo cdigo de local de la tabla carreras
alter table carreras drop column codlocal
-Eliminar constraints
alter table carreras drop constraint FK__carreras__codloc__014935CB
- Eliminar el campo ubicacin de la tabla carerras
alter table carreras drop column ubicacin
- Eliminar la tabla Local
drop table locales

97

UNIVERSIDAD PRIVADA TELESUP

Lenguaje de

TEMA 2

Manipulacin
de Datos
Competencia:
Desarrollar comandos
manipulacin de datos.

SQL

para

la

98

UNIVERSIDAD PRIVADA TELESUP

Tema 02: Lenguaje de Manipulacin de Datos


2.1.- Lenguaje de Manipulacin de Datos
Se presentan las instrucciones que se pueden ejecutar desde
un intrprete de SQL, lo que se denomina SQL interactivo.
SQL es un lenguaje muy expresivo y, en general, permite
muchas formas de expresar las mismas rdenes.

Las cuatro instrucciones que componen el lenguaje de manipulacin de datos son


las siguientes:

SELECT: permite la declaracin de consultas para la recuperacin de


informacin de una o ms tablas de una base de datos.

INSERT: realiza la insercin de una o varias filas sobre una tabla.


DELETE: permite efectuar el borrado de una o varias filas de una tabla.
UPDATE: realiza una modificacin de los valores de una o ms columnas de una o varias
filas de una tabla.
Para demostrar estas sentencias utilizaremos una tabla de ejemplo llamada
CLIENTES
Create Table Clientes(Nombre varchar(100),
Apellidos varchar(100),
Direccin varchar(150),
Poblacin varchar(30),
Cdigo Postal varchar(6),
email varchar(100),
pedidos int)

2.2.- INSERT
Los registros pueden ser introducidos a partir de sentencias que emplean la
instruccin Insert.

99

UNIVERSIDAD PRIVADA TELESUP

La sintaxis utilizada es la siguiente:

Insert Into nomtabla (nomcampo1, nomcampo2,...)


Values (valorcampo1, valorcampo2...)
Un ejemplo sencillo a partir de nuestra tabla modelo es
la introduccin de un nuevo cliente lo cual se hara con
una instruccin de este tipo:
Insert Into clientes (nombre, apellidos, direccion, poblacion, codigopostal, email, pedidos) Values
('Perico', 'Palotes', 'Percebe n13', 'Lepe', '123456', 'perico@desarrolloweb.com', 33)

Como puede verse, los campos no numricos o booleanos van delimitados por apostrofes:
'. Tambin resulta interesante ver que el cdigo postal lo hemos guardado como un campo
no numrico. Esto es debido a que en determinados pases (como en Inglaterra) los
cdigos postales contienen tambin letras.
Por supuesto, no es imprescindible rellenar todos los campos del registro. Eso s, puede
ser que determinados campos sean necesarios. Estos campos necesarios pueden ser
definidos cuando construimos nuestra tabla mediante la base de datos.
Resulta muy interesante, ya veremos ms adelante el por qu, el introducir durante la
creacin de nuestra tabla un campo auto incrementable que nos permita asignar un nico
nmero a cada uno de los registros. De este modo, nuestra tabla clientes presentara para
cada registro un nmero exclusivo del cliente el cual nos ser muy til cuando consultemos
varias tablas simultneamente.
Una forma ms sencilla de utilizar el insert seria as :
Insert Into clientes Values ('Perico', 'Palotes', 'Percebe n13', 'Lepe', '123456',
'perico@desarrolloweb.com', 33)
Noten que aqu no hizo falta poner los nombres de los campos y se hizo la misma
insercin.

100

UNIVERSIDAD PRIVADA TELESUP

2.3.- DELETE
Para borrar un registro nos servimos de la instruccin Delete. En este caso debemos
especificar cul o cuales son los registros que queremos borrar. Es por ello necesario
establecer una seleccin que se llevar a cabo mediante la clusula WHERE.
Delete From nomtabla Where condicion
Si queremos por ejemplo borrar todos los registros de los clientes que se
llamen Perico lo haramos del siguiente modo:
Delete From clientes Where nombre='Perico'
Hay que tener cuidado con esta instruccin ya que si no especificamos
una condicin con WHERE, lo que estamos haciendo es borrar toda la
tabla, como en este ejemplo:
Delete From clientes.

2.4.- UPDATE
Es la instruccin que nos sirve para modificar nuestros registros. Como
para el caso de Delete, necesitamos especificar por medio de
Where cules son los registros en los que queremos hacer
efectivas

nuestras

modificaciones.

Adems,

obviamente,

tendremos que especificar cules son los nuevos valores de los


campos que deseamos actualizar. La sintaxis es de este tipo:

Update nomtabla Set nomcampo1 = valorcampo1, nomcampo2 = valorcampo2.. Where


condicion
Ejemplo: Update clientes Set nombre='Jos' Where nombre='Pepe'
Mediante esta sentencia cambiamos el nombre Pepe por el de Jos en todos los registros
cuyo nombre sea Pepe.
Aqu tambin hay que ser cuidadoso de no olvidarse de usar Where, de lo contrario,
modificaramos todos los registros de nuestra tabla.

101

UNIVERSIDAD PRIVADA TELESUP

2.5.- SELECT
La seleccin total o parcial de una tabla se lleva a cabo mediante la instruccin Select.
En dicha seleccin hay que especificar: Los campos que queremos seleccionar, la
tabla en la que hacemos la seleccin y la condicin que vamos a usar.
La sintaxis seria:
Select nomcampo1.nomcampo2,from nomtabla where condicion
Y si vamos a ver todos los campos seria:
Select * From nomtabla where condicion
OJO: Si obviamos el WHERE se mostraran todo los datos
En nuestra tabla modelo de clientes podramos hacer por ejemplo una seleccin del
nombre y direccin de los clientes con una instruccin de este tipo:
Select nombre, direccin From clientes
Si queremos ver todos los campos :
Select * From clientes
Resulta tambin muy til el filtrar los registros
mediante condiciones que vienen expresadas
despus de la clusula Where. Si quisisemos mostrar los clientes de una
determinada

ciudad

usaramos

una

expresin

como

esta:

Select * From clientes Where poblacion = 'Madrid'

2.6.- Operadores
En la sentencia SELECT podemos utilizar los siguientes
operadores que sern utilizados despus de la clusula
Where y pueden ser combinados hbilmente mediante
parntesis para optimizar nuestra seleccin a muy altos
niveles.

102

UNIVERSIDAD PRIVADA TELESUP

Operadores matemticos:
>

Mayor que

<

Menor que

Otros operadores
Selecciona los registros cuyo valor de
Like

campo se asemeje, no tomar en cuenta

>= Mayor o igual que

maysculas y minsculas.

<= Menor o igual que

Da un conjunto de valores para un campo


In y Not In

<> Distinto
=

para los cuales la condicin de seleccin es


(o no) vlida.

Igual

Is Null y Is Not Selecciona aquellos registros donde el


Null

campo especificado est (o no) vaco.

Operadores lgicos
Between...And

And

Selecciona los registros comprendidos en


un intervalo

Or

Distinct

Selecciona los registros no coincidentes.

Not

Desc

Clasifica los registros por orden inverso.

Comodines
*

Sustituye a todos los campos.

% Sustituye a cualquier cosa o nada dentro de una cadena.


_ Sustituye un solo carcter dentro de una cadena.

Empleados

Id empleado

Salario

Beneficios

Cargo

101

75000

15000

Encargado

215

60000

12500

Encargado

244

50000

12000

Tcnico

300

45000

10000

Tcnico

335

40000

10000

Tcnico

400

32000

7500

Aprendiz

103

UNIVERSIDAD PRIVADA TELESUP

Para ver los operadores que se pueden utilizar en la sentencia


SELECT vamos a utilizar l tabla Empleado

AND , OR
Mostrar los empleados cuyo salario es igual 4000 y que su crago
sea TECNICO
SELECT * FROM Empleados WHERE Salario=40000 AND Cargo = Tcnico
Mostrar los cdigos de todos aquellos que ganan menos de 40.000 o tienen menos de
10.000 en beneficios
SELECT ID_EMPLEADO FROM EMPLEADOS
WHERE
SALARIO
<
40000
OR
BENEFICIOS
<
10000;
AND & OR pueden ser combinadas, por ejemplo:
SELECT ID_EMPLEADO FROM EMPLEADOS WHERE CARGO = 'Encargado' AND
SALARIO 60000 OR BENEFICIOS 12000;
Primero, SQL encuentra las filas donde el salario es mayor de 60.000 y la columna del
cargo es igual a Encargado, una vez tomada esta nueva lista de filas, SQL buscar si hay
otras filas que satisfagan la condicin AND previa o la condicin que la columna de los
Beneficios sea mayor de 12.000. Consecuentemente, SQL solo muestra esta segunda
nueva lista de filas, recordando que nadie con beneficios sobre 12.000 ser excluido ya
que el operador OR incluye una fila si el resultado de alguna de las partes es
VERDADERO.
Date cuenta que la operacin AND se ha hecho primero.
Para generalizar este proceso, SQL realiza las operaciones AND para determinar las filas
donde las operaciones AND se mantienen VERDADERO (recordar: todas las condiciones
son verdaderas), entonces estos resultados son usados para comparar con las
condiciones OR, y solo muestra aquellas filas donde las condiciones unidas por el
operador OR se mantienen ciertas para alguna de las partes de la condicin.
Para realizar OR antes de AND, pero si quisieras ver una lista de empleados ganando un
gran salario (50.000) o con un gran beneficio (10.000), y slo quieres que lo mire para los
empleados con el cargo de Encargado, usa parntesis: SELECT ID_EMPLEADO FROM
EMPLEADOS
WHERE CARGO = 'Encargado' AND (SALARIO 50000 OR BENEFICIO 10000);

104

UNIVERSIDAD PRIVADA TELESUP

IN , BETWEEN
Un mtodo fcil de usar condiciones compuestas es usando IN o BETWEEN. Por
ejemplo si t quieres listar todos los encargados y Tcnico:
SELECT * FROM EMPLEADOS WHERE CARGO IN ('Encargado', 'Tcnico');
O para listar aquellos que ganen ms o 30.000, pero menos o igual que 50.000, usa:
SELECT * FROM EMPLEADOS WHERE SALARIO BETWEEN 30000 AND 50000;
Para listar todos los que no estn en este rango:
SELECT * FROM EMPLEADOS WHERE SALARIO NOT BETWEEN 30000 AND
50000;
De forma similar, NOT IN lista todas las filas excluyendo aquellas de la lista IN.
SELECT * FROM EMPLEADOS WHERE CARGO NOT IN ('Encargado', 'Tcnico');

IS NULL, IS NOT NULL


Para listar todos los empleados que tenga el campo SALARIO nulo
SELECT * FROM EMPLEADOS WHERE SALARIO IS NULL
De forma similar sera el NOT
SELECT * FROM EMPLEADOS WHERE SALARIO IS NOT NULL

LIKE
Observa la Empleados, y di que quieres ver todas las personas en las
cuales su apellido comience por "l":, intenta:
SELECT

FROM

EMPLEADOS

WHERE

APELLIDOS

LIKE

'L%';

El tanto por ciento (%) es usado para representar un posible carcter (sirve como
comodn), ya sea nmero, letra o puntuacin, o para seleccionar todos los caracteres
que puedan aparecer despus de "L". Para encontrar las personas con el apellidos
terminado en "L", usa %L, o si quieres la L en medio de la palabra %L%. El %
puede ser usado en lugar de cualquier carcter en la misma posicin relativa a los
caracteres dados. NOT LIKE muestra filas que no cumplen la descripcin dada.

105

UNIVERSIDAD PRIVADA TELESUP

ORDER BY
Esta sentencia permite ordenar los registros ya se en forma
ascendente o descendente (DESC).
Mostrar los empleados ordenados por salario en forma
descendente y por apellido en forma ascendente.
SELECT * FROM EMPLEADOS ORDER BY SALARIO
DESC, APELLIDO.

DISTINCT
Esta es una funcin que sirve para mostrar resultados no repetitivos
Ejemplo: mostrar los cargos de los empleados.
SELECT DISTINCT CARGO FROM EMPLEADOS
Este select solo mostrar:
Encargado, Tcnico, Aprendiz
Ahora si queremos ordenarlo alfabticamente tendramos que poner lo siguiente:
SELECT DISTINCT CARGO FROM EMPLEADOS ORDER BY CARGO.

TOP
Muestra solo cierta cantidad de registros depende del nmero que vaya acompaado de la
palabra TOP.
Mostrar 3 empleados que tengan los salarios ms altos
SELECT TOP 3 * FROM EMPLEADOS ORDER BY SALARIO DESC
Ejemplo Prctico : Manipulacin de Base de Datos

Tomando de ejemplo las tablas anteriores (Carreras, Cursos, Alumnos y Notas)


realizar diferentes operaciones SQL

106

UNIVERSIDAD PRIVADA TELESUP

Actualizar los Datos


Modificar la nota TRA y poner 05 a todos los alumnos
UPDATE NOTAS SET TRA=5
Modificar el nombre de la carrera marketing por marketing informtico
UPDATE CARRERAS SET NOMCAR='Marketing Informatics'
WHERE CODCAR=4
Modificar al curso c0011 y poner de nombre 'taller de n-capas .net' y en precio 300
UPDATE CURSOS SET NOMCUR='Taller de N-Capas .Net, PRECIO=300
WHERE CODCUR='C0011'
Modificar el campo prom con el promedio de las notas (pp+tra+ex *2)/4
UPDATE NOTAS SET PROM=(PP + TRA + (EX * 2))/4
LIKE
Actualizar los precios de los cursos a 300 a los cursos cuyo nombre empiece con la
palabra Visual Basic
UPDATE CURSOS SET PRECIO=300 WHERE NOMCUR LIKE 'Visual Basic%'
IS NULL
Actualizar el campo PP donde PP sea nulo
UPDATE NOTAS SET PP=05 WHERE PP IS NULL
Eliminar Datos
Eliminar los cursos cuyo precio sea menor que 100
DELETE FROM CURSOS WHERE PRECIO <=100
BETWEEN
Eliminar las notas cuyo promedio estn entre 0 y 10
DELETE FROM NOTAS WHERE PROM BETWEEN 0 AND 10
Eliminar los alumnos cuyo nombre termine con la letra A o que empiece con la M
pero solo de la carrera de computacin e informtica
DELETE FROM ALUMNOS
WHERE (NOMALU LIKE '%A' OR NOMALU LIKE M %') AND CODCAR=1
Seleccionar los datos
Para Visualizar los Datos
SELECT * FROM CARRERAS
SELECT * FROM CURSOS
SELECT * FROM ALUMNOS
SELECT * FROM NOTAS
Mostrar los nombres de los alumnos que son de la carrera 2
SELECT NOMALU FROM ALUMNOS WHERE CODCAR=1
IN
Mostrar los alumnos que sean de la carrera 1 o 3
SELECT * FROM ALUMNOS WHERE CODCAR IN(1,3)
ORDER BY
Mostrar los cursos ordenados por precio
SELECT * FROM CURSOS ORDER BY PRECIO
Mostrar las notas del alumno 1000008 ordenadas por prom en forma descendente
SELECT * FROM NOTAS
WHERE CODALU=1000008 ORDER BY PROM DESC

107

UNIVERSIDAD PRIVADA TELESUP

Funciones

TEMA 3

en

SQL
Competencia:
Desarrollar
funciones.

comandos

SQL

usando

108

UNIVERSIDAD PRIVADA TELESUP

Tema 03: Funciones en SQL


3.1 Funciones Agregadas
Vamos

ver

cinco

agregadas: SUM, AVG, MAX, MIN

importantes
y COUNT.

funciones

Son

llamadas

funciones agregadas porque resumen el resultado de una


consulta.

SUM ()

Devuelve el total de todas las fila, satisfaciendo todas las condiciones de


una columna dada, cuando la columna dada es numrica.

AVG ()

Devuelve la media de una columna dada.

MAX ()

Devuelve el mayor valor de una columna dada.

MIN ()

Devuelve el menor valor en una columna dada.

COUNT(*) Devuelve el nmero de filas que satisfacen las condiciones.

SELECT SUM (SALARIO), AVG(SALARIO) FROM EMPLEADOS;


Esta consulta muestra el total de todos los salarios de la tabla, y la media
salarial de todas las entradas en la tabla.
SELECT MIN (BENEFICIOS) FROM EMPLEADOS WHERE CARGO =
'Encargado'; Esta consulta devuelve el menor valor de la columna de
beneficios, de los empleados que son Managers, la cual es 12.500.
SELECT COUNT (ID_EMPLEADO)

FROM EMPLEADOS

WHERE

CARGO = 'Tcnico'. Esta consulta nos dice cuantos empleados tienen la


categora de Tcnico (3).

109

UNIVERSIDAD PRIVADA TELESUP

3.2.- GROUP BY
Combina los registros con valores idnticos, en la lista de
campos especificados, en un nico registro. Para cada
registro se crea un valor sumario si se incluye una funcin
SQL agregada, como por ejemplo Sum o Count, en la
instruccin SELECT. Su sintaxis es:

SELECT campos FROM nomtabla WHERE

condicion GROUP BY campos del grupo Se utiliza la clusula WHERE para excluir
aquellas filas que no desea agrupar, y la clusula HAVING para filtrar los registros
una vez agrupados.
Ejemplo:
Mostrar la cantidad de empleados que hay por Cargo
SELECT CARGO,COUNT(ID_EMPLEADO) FROM EMPLEADOS

GROUP BY CARGO
Encargado

Tcnico

Aprendiz

El resultado seria asi:

Utilizando el HAVING podriamos hacer una consulta como esta


SELECT CARGO,COUNT(ID_EMPLEADO) FROM EMPLEADOS
GROUP BY CARGO HAVING COUNT(ID_EMPLEADO) > = 3
Aqui estamos mostrando solo los cargos que tienen mas de 3 empleados

3.3.- Funciones de fecha y hora


Estas funciones escalares realizan una operacin sobre un valor de fecha y hora
de entrada, y devuelven un valor de cadena, numrico o de fecha y hora.
Esta tabla presenta las funciones de fecha y hora.

110

UNIVERSIDAD PRIVADA TELESUP

DATEPART.- DATEPART (datepart, date)

Datepart.- Es el parmetro que especifica la parte de la fecha que se va a devolver.


La tabla enumera las partes de las fechas y abreviaturas reconocidas por Microsoft
SQL Server.
Parte de la fecha

Abreviaturas

Year

yy, yyyy

Quarter

qq, q

Month

mm, m

Dayofyear(dia del ao son 365 dias dy, y


por ao)
Day

dd, d

Week(Numero de semana Tome en wk, ww


cuenta que le mes tiene 4 semanas
mas o menos)
Weekday(Numero de dia Ejemplo: 1 Dw
lunes,2 martes etc)
Hour

Hh

Minute

mi, n

Second

ss, s

Millisecond

Ms

Ejemplo:
SELECT DATEPART(MM,'01/08/2003') .- Esto Devuelve el mes de la fecha 01-08-03
Otras Funciones.FUNCIN

CONCEPTO
Devuelve un valor que es la suma de un intervalo a la fecha
especificada.

DATEADD

Sintaxis
DATEADD ( datepart , number, date )
En este ejemplo a un campo fecha llamado pubdate se le
esta sumando 21 das.
USE pubs
GO
SELECT DATEADD(day, 21, pubdate) FROM titles

111

UNIVERSIDAD PRIVADA TELESUP

Devuelve la diferencia de fecha y hora que hay entre dos


fechas especificadas.
Sintaxis
DATEDIFF ( datepart , startdate , enddate )
DATEDIFF

Ejemplos
En este ejemplo se determina la diferencia en das entre la
fecha actual y la fecha de publicacin de los ttulos de la
base de datos pubs.
USE pubs
GO
SELECT DATEDIFF(day, pubdate, getdate()) FROM titles

Devuelve una cadena de caracteres que representa la parte


de la fecha especificada de la fecha especificada.
DATENAME

Sintaxis
DATENAME ( datepart , date )
Ejemplos
En este ejemplo se extrae el nombre del mes de la fecha
devuelta por GETDATE.
SELECT DATENAME(month, getdate()) AS 'Month Name'

DAY

Devuelve un entero que representa la parte del da de la


fecha especificada.
Sintaxis
DAY ( date )
Equivale a DATEPART(dd,Fecha)
Devuelve la fecha y hora actual

GETDATE

Sintaxis
GETDATE ( )
Devuelve un entero que representa el mes de una fecha
especificada.

MONTH

Sintaxis
MONTH ( date )
Equivale a DATEPART(mm,Fecha)
Devuelve un entero que representa la parte de ao de la
fecha especificada.

YEAR

Sintaxis
YEAR ( date )
Equivale a DATEPART(yy,Fecha)

112

UNIVERSIDAD PRIVADA TELESUP

3.4.- Funciones matemticas


Estas funciones escalares realizan un clculo, normalmente basado en valores
de entrada proporcionados como argumentos, y devuelven un valor numrico.
Aqu solo algunas funciones de ejemplo:

ABS Devuelve el valor DEGREES Dado un ngulo en RAND Devuelve un valor


absoluto, positivo de la radianes, devuelve el ngulo float aleatorio de 0 a 1.
expresin numrica dada. correspondiente en grados.
Sintaxis
Sintaxis
Sintaxis
RAND
ABS (numeric_expression DEGREES(numeric_expression) (numeric_expression)
)
Ejem: SELECT RAND(5)

Todas las funciones matemticas, excepto RAND, son funciones deterministas; devuelven
siempre el mismo resultado cada vez que se les llama con un conjunto especfico de
valores de entrada. RAND es determinista slo cuando se especifica un parmetro de
inicializacin

3.5.- Funciones de cadena


Estas funciones escalares realizan una operacin sobre una cadena de entrada y
devuelven un valor de cadena o un valor numrico.

ASCII.- Devuelve el cdigo ASCII del carcter ms a la izquierda de una expresin


de caracteres.
Ejemplo: SELECT ASCII ('\').- Esta funcin devolver 92

CHAR.- Una funcin de cadena que convierte un cdigo ASCII int en un carcter.
Ejemplo : SELECT CHAR('64').- Esta funcion devolvera @

CHARINDEX.- Devuelve la posicin inicial de la expresin especificada en


una cadena de caracteres.

113

UNIVERSIDAD PRIVADA TELESUP

Sintaxis
CHARINDEX (Caracter a buscar,Cadena en donde se busca, [opcional desde que carcter
se quiere buscar])
SELECT CHARINDEX (S,'CASA').- Esta funcin devolver 3 que es la posicin
SELECT CHARINDEX (S,'CASA',4).- Esta funcin devolver 0 por que no se encontr el
carcter S a partir de la posicin 4.

LEFT.- Devuelve la parte de una cadena de caracteres que comienza en un nmero de


caracteres especificado a partir de la izquierda.
SELECT LEFT(REFRIGERADORA, 5) Esta funcin devolver REFRI

RIGHT.- Devuelve la parte de una cadena de caracteres que comienza en el nmero de


caracteres especificado en integer_expression a partir de la derecha.
SELECT RIGHT (REFRIGERADORA, 5) Esta funcin devolver ADORA

LEN.-Devuelve la longitud de la cadena.


SELECT LEN (CASA) Esta funcin devolver 4

LOWER.- Devuelve una cadena convertida en minscula


SELECT LOWER (casa).- Esto devuelve CASA
UPPER.- Devuelve una cadena convertida en mayscula.
SELECT UPPER (CASA).- Esto devuelve casa

LTRIM.- Suprime los espacios en blanco a la izquierda


SELECT LTRIM (CASA).- Esto devuelve CASA

RTRIM.- Suprime los espacios en blanco a la derecha


SELECT RTRIM (CASA).- Esto devuelve CASA

SPACE.- Devuelve una cadena de espacios repetidos.


SELECT LA + SPACE (2) + CASA.-Esto devuelve LA CASA

REPLACE.- Reemplaza por una tercera expresin todas las apariciones de la


segunda expresin de cadena proporcionada en la primera expresin de cadena.
Sintaxis
REPLACE (cadena donde se busca' , 'cadena a buscar' , 'cadena a reemplazar' )
SELECT REPLACE (ABCDEF,DEF,XX) El resultado seria ABCXXX

SUBSTRING.- Devuelve una sub cadena a raz de otra


SELECT SUSBTRING (ABCD,2,2) El resultado seria BC

114

UNIVERSIDAD PRIVADA TELESUP

3.6.- Otras funciones CAST y CONVERT


Convierten explcitamente una expresin de un tipo de datos en otro. CAST y
CONVERT proporcionan funciones similares.
Uso de CAST:
CAST (expression AS data type)
Uso de CONVERT:
CONVERT ( data type , expression )
Ejemplo:
SELECT * FROM TITLES WHERE CAST (PRICE AS VARCHAR (7)) LIKE '19%'
SELECT * FROM TITLES WHERE CONVERT (VARCHAR (7), PRICE) LIKE '19%'
En ambos casos el campo Price es numrico y usando el CAST y el Convert (se
puede usar cualquiera de los dos) el campo se esta cambiando a varchar (7) por eso
podemos usar el like.

Ejemplos de Funciones de fecha y de cadenas en SQL Server (funciones.sql)

Funciones de Fecha
--Mostrar el nombre del alumno la fecha de matricula y la fecha de
inicio de clases (10 das despus de la matricula).
SELECT NOMALU, FECHAMAT, DATEADD (DD, 10, FECHAMAT) AS
FECHA_INICIO FROM ALUMNO.
--Mostrar el nombre del alumno el ao, y el mes en que se matricularon.

115

UNIVERSIDAD PRIVADA TELESUP

SELECT NOMALU, DATEPART (YY, FECHAMAT) AS ANIO, DATEPART (MM,


FECHAMAT) AS MES FROM ALUMNO
--Mostrar el nombre del alumno, la fecha de matricula, y la cantidad de das que han
pasado desde que se matricul.
SELECT NOMALU, FECHAMAT, DATEDIFF (DD, FECHAMAT, AND GETDATE) LAS
CANTIDIAS FROM ALUMNO.
--Mostrar el nombre del alumno, la fecha de matricula, el nombre del da y el nombre del
mes de la matrcula.
SELECT NOMALU, FECHAMAT, DATENAME (DW, FECHAMAT) AS DIA, DATENAME
(MM, FECHAMAT) AS MES FROM ALUMNO.
--Mostrar el mes, el da y el ao de la fecha actual y la fecha actual.
SELECT YEAR(GETDATE()),MONTH(GETDATE()),DAY(GETDATE()),GETDATE()
Funciones de Cadena
--autogenerar el cdigo con el ultimo digito del codalu + el primer caracter del apellido
-- los 2 primeros caracteres del nombre + los tres primeros caracteres del mes +
-- los 2 ltimos caracteres del ao.
SELECT RIGHT (CONVERT (VARCHAR (4), CODALU(1), FROM ALUMNO --Extrae el
Ultimo caracter del cdigo.
SELECT SUBSTRING (NOMALU, CHARINDEX (' ', NOMALU) + 1 ,1) FROM ALUMNO
Extrae de la posicin de 1 un caracter.
--Lo primero charindex(' ',nomalu) esa funcin busca un caracter o sea busca el espacio
en blanco en el campo nomalu y si lo encuentra devuelve la posicin
SELECT UPPER (LEFT (DATENAME (MM, FECHAMAT),3)) FROM ALUMNO--Saca los
3 primeros caracteres del mes.
SELECT RIGHT (CAST (YEAR (FECHAMAT) AS VARCHAR (2)),2) FROM ALUMNO-Saca los 2 caracteres del ao.
--y aqu todo junto.

116

UNIVERSIDAD PRIVADA TELESUP

SELECT

ALUMNO.*,RIGHT(CONVERT(VARCHAR(4),CODALU),1)

SUBSTRING(NOMALU,CHARINDEX(' ' ,NOMALU)+1,1) +


LEFT(NOMALU,2)

UPPER(LEFT(DATENAME(MM,FECHAMAT),3))

RIGHT(CAST(YEAR(FECHAMAT) AS VARCHAR(4)),2)
FROM ALUMNO

USO DEL CASE WHEN THEN


--Mostrar los datos de la tabla Curso ms un mensaje que diga 'Caro' si el precio es
mayor a 50 o 'Barato' si es menor a 50.

SELECT CURSO.*,

--la sintaxis del CASE WHEN seria as:

MENSAJE=CASE

--variable = CASE

WHEN PRECUR > 50 THEN 'CARO'

--WHEN COND1 THEN RESULTADO1

ELSE 'BARATO'

--WHEN COND2 THEN RESULTADO2

END

--WHEN COND3 THEN RESULTADO3

FROM CURSO

--ELSE RESULTADODELELSE

Donde Mensaje es una variable y es

--END

ah donde se va a guardar el
mensaje Caro o Barato.

117

UNIVERSIDAD PRIVADA TELESUP

ndices

TEMA 4

Vistas
Competencia:
Definir ndices y vistas.

118

UNIVERSIDAD PRIVADA TELESUP

Tema 04: ndices Y Vistas


NDICES
Los ndices nos ayudan a obtener datos de las tablas en
forma ms rpida. Utilicemos un ejemplo para ilustrar
este punto: Digamos que estamos interesados en leer
en un libro de jardinera acerca de cmo cultivar
pimientos. En vez de leer el libro desde el comienzo
hasta que encontremos una seccin sobre pimientos, es mucho ms rpido para
nosotros ir a la seccin ndice al final del libro, ubicar qu pginas contienen la
informacin sobre pimientos, y luego dirigirnos a esas pginas directamente. Al
dirigirnos al ndice primero ahorramos tiempo y seguramente es el mtodo ms
eficiente para ubicar la informacin que necesitamos.

Ejemplo :
CREATE UNIQUE INDEX titles_ind
ON titles (title,type)
Aqui se esta creando un ndice llamado titles_ind indicando que el campo
title y type no se podrn repetir.
Para borrar un ndice seria DROP INDEX TITLES.TITLES_IND (Va el
nombre de la tabla. El nombre del ndice).

Ejemplo:

En la tabla clientes, este ejemplo crea un ndice nico


en el campo NIF. Esto nos permitir buscar mucho
mas rpido por el campo NIF y nos asegurar que no
tengamos dos NIF iguales.
CREATE UNIQUE INDEX UIX_CLIENTES_NIF ON
CLIENTES (NIF)

119

UNIVERSIDAD PRIVADA TELESUP

Ejemplo:
Teniendo la siguiente tabla :
Tabla Customer
(First Name char (50),
Last Name char (50),
Address char (50),
Cities char (50),
Country char (25),
Birth Date date)

Si deseamos crear un ndice tanto en Ciudad como en Pas, ingresaramos,

CREATE INDEX IDX_CUSTOMER_LOCATION


on CUSTOMER (City, Country)
No hay una regla estricta respecto de cmo nombrar un ndice. El mtodo
generalmente aceptado es colocar un prefijo, tal como IDX_, antes del nombre
de un ndice para evitar la confusin con otros objetos de la base de datos.
Tambin es una buena idea brindar informacin sobre qu tabla y columna(s) se
utilizar el ndice. Por favor note que la sintaxis exacta para CREATE INDEX
puede ser distinta segn las diferentes bases de datos. Debera consultar con su
manual de referencia de base de datos para obtener la sintaxis precisa.

VISTAS
.

En SQL, tu puedes (comprueba tu DBA) tener acceso a crear vistas por ti mismo. Lo
que una vista hace es permitirte asignar resultados de una consulta a una tabla nueva
y personal, que puedes usar en otras consultas, pudiendo utilizar el nombre dado a la
tabla de tu vista en la clusula FROM.
Cuando accedes a una vista, la consulta que est
definida en la sentencia que crea tu lista est
relacionada (generalmente), y los resultados de
esta consulta son como cualquier otra tabla en la
consulta que escribiste invocando tu vista.

120

UNIVERSIDAD PRIVADA TELESUP

Por ejemplo, para crear una vista:

CREATE VIEW ANTVIEW AS SELECT PRODUCTOPEDIDO FROM PEDIDOS;


Ahora, escribe una consulta usando esta vista como tabla, donde la tabla es una
listado de todos los Productos Pedidos de la tabla Pedidos:
SELECT ID_VENDEDOR
FROM ANTIGEDADES, ANTVIEW
WHERE PRODUCTOPEDIDO = PRODUCTO;
Esta consulta muestra todos los ID_vendedor de la tabla de Antigedades donde el
producto, en esta tabla, aparece en la vista Antview, la cual no es ms que todos los
Productos Desired de la tabla Pedidos. El listado es generado yendo uno por uno por
los Productos Antigos hasta donde hay una coincidencia con la vista Antview. Las
vistas pueden ser usadas para restringir el acceso a las bases de datos, as como
para simplificar una consulta compleja.
Crea una tabla virtual que representa los datos de una o ms tablas de una forma
alternativa. CREATE VIEW debe ser la primera instruccin en una secuencia de
consultas.
Ejemplo:
CREATE VIEW titles_view
AS
SELECT title, type, price, pubdate
FROM titles

Se ha creado una vista llamada titles_view con algunos campos de la tabla t excepcin
itles, a esta vista se le puede hacer los mismos procesos que a una tabla.
Para eliminar se pone DROP VIEW Nombre de la Vista.

121

UNIVERSIDAD PRIVADA TELESUP

Lecturas Recomendadas

TUTORIAL SQL BASICO


http://www.webtaller.com/construccion/lenguajes/sql/manuales/tutorial_
basico_sql.php

MANUAL DE SQL
http://mygnet.net/manuales/sql//tutorial_de_sql_basico.1108

Actividades y Ejercicios

Ingresa al link SQL Bsico lee atentamente las indicaciones,


desarrllalo y envalo por el mismo medio.
Mediante cdigo SQL desarrollar lo siguiente:
1. Crear una tabla llamada ALUMNO con los siguientes
Campos (cdigo, nombre y apellido, direccin, email, fecha de
Nacimiento, distrito, pensin)
2. Mediante sentencias SQL llenar datos (10 registros) a la tabla
creada (ALUMNO)
3. Mostrar los alumnos que nacieron en la dcada de los 80 y que son
De COMAS o LINCE (Aplique SELECT)
4. Mostrar los alumnos que se apelliden GARCIA (no importa si es su
Primer apellido o el segundo) y que su pensin este entre 300 y
500.

122

UNIVERSIDAD PRIVADA TELESUP

Autoevaluaciones

1.- El lenguaje estndar en la mayora de Sistemas de Gestin de Bases de Datos


es el?
a.
b.
c.
d.
e.

MySQL
SQL
DBMS
RSQL
DBS

2.- Qu sentencias permiten modificar las estructuras de los objetos de la base de


datos?
a.
b.
c.
d.
e.
3.-

DDL
DBMS
RDBMS
DLL
DBS

Qu sentencia SQL permite crear objetos en la base datos?

a. Select
b. Create
c. Delate
d. Update
e. Insert
4.- Qu sentencia SQL permite borrar datos en la base datos?
a.
b.
c.
d.
e.

Select
Create
Drop
Delete
Where

5.- Qu sentencia SQL permite modificar datos en la base datos?


a.
b.
c.
d.
e.

Select
Create
Delete
Update
Insert

6.- Qu sentencia SQL permite visualizar los datos de una tabla?


a. Alter
b. Create

123

UNIVERSIDAD PRIVADA TELESUP

c.

Delete

d. Select
e. Insert
7.- La funcin que permite Calcular la media aritmtica de un conjunto de valores
es?
a. Sum
b. avg
c. max
d. min
e. div
8.- Cul es la funcin que sirve para aadir un valor a una fecha?
a. Datediff
b. AddDate
c. DateAdd
d. DatePart
e. Date Fech
9.- Sirve para encontrar mas rpido los datos dentro de una tabla?
a.
b.
c.
d.
e.

Primary Key
Foreign Key
ndices
Llaves alternas
Llave Fornea

10.- Una Vista seria?


a. Una consulta temporal
b. Como una tabla que se crea en base a una consulta
c. Un conjunto de datos que solo funcionan con la sentencia WHERE
d. La estructura de unas llaves primarias
e. Una consulta

124

UNIVERSIDAD PRIVADA TELESUP

Resumen

UNIDAD DE APRENDIZAJE III:

SQL (Structured Query Language / Lenguaje de consulta estructurado) es el


lenguaje estndar en la mayora de Sistemas de Gestin de Bases de Datos.
Es un lenguaje declarativo; es decir, que indica qu es lo que quiere y no
cmo se obtiene. La manera en la que se acceden a los datos para
responder a las sentencias SQL depende de cada motor de base de datos.

El Lenguaje de Manipulacin de Datos (Data Manipulation Language) permite


realizar consultas y manipulacin de los datos. Las sentencias DML son:
SELECT: permite la declaracin de consultas para la recuperacin de informacin
de una o ms tablas de una base de datos.
INSERT: realiza la insercin de una o varias filas sobre una tabla.
DELETE: permite efectuar el borrado de una o varias filas de una tabla.
UPDATE: realiza una modificacin de los valores de una o ms columnas de una o
varias filas de una tabla.

Las funciones en SQL son diversas y vienen integradas dentro del mismo SQL.
Entre las funciones tenemos las siguientes: Funciones de fechas que sirve para
manipular los campos de tipo fecha como por ejemplo mostrar el mes o ao de una
fecha dada. Funciones de cadenas que sirve para operar con los campos de tipo
cadena (varchar , char, etc), por ejemplo mostrar los 2 primeros caracteres del
nombre de una persona, buscar una letra dentro de una cadena, etc.
Funciones Matemticas que sirve para clculos aritmticos como mostrar la raz
cuadrada de un campo, etc. Funciones de agregado son llamadas funciones
agregadas porque resumen el resultado de una consulta. Tenemos la funcin Count
para contar, Max para mostrar el mayor, etc.

Los ndices nos ayudan a obtener datos de las tablas en forma ms rpida.
Lo que una vista hace es permitir asignar resultados de una consulta a una tabla
nueva y personal, que se puede usar en otras consultas, pudiendo utilizar el nombre
dado a la tabla de la vista en la clusula FROM.

125

UNIVERSIDAD PRIVADA TELESUP

126

UNIVERSIDAD PRIVADA TELESUP

Introduccin

a) Presentacin y contextualizacin
En esta unidad se desarrollara el manejo avanzado de las sentencias SQL, el
cual permitir al alumno crear consultas avanzadas utilizando las diferentes
funciones que soporta el SQL. Adems se mostrara la creacin y manipulacin
de cdigos internos dentro de las bases de datos denominados Procedimientos
almacenados y Triggers

b) Competencia
Identificar las sentencias avanzadas SQL el cual permitir el manejo total de
la base de datos.

c) Capacidades
1. Define correctamente consultas internas y externas.
2. Analiza y crea la administracin de cdigo almacenado para consultas avanzadas.
3. Analiza y define procedimientos almacenados.
4. Analiza y define Triggers.

d) Actitudes
Desarrolla una actitud emprendedora mediante la toma de iniciativas, promocin de
actividades y toma de decisiones en relacin a la actividad asignada.
Acta con responsabilidad personal, al cumplir con los horarios establecidos y el
respeto a las normas de convivencia.
Cumple con la presentacin de los trabajos encomendados con puntualidad.
Desarrolla la creatividad, la innovacin, la actitud emprendedora y el respeto a la
honestidad intelectual.

e) Presentacin de Ideas bsicas y contenido esenciales de la Unidad:


La Unidad de Aprendizaje 04: Manejo de SQL Avanzado comprende el desarrollo
de los siguientes temas:
TEMA 01: Consultas con varias tablas internas y externas
TEMA 02: Consultas Avanzadas
TEMA 03: Procedimientos Almacenados
TEMA 04: Triggers

127

UNIVERSIDAD PRIVADA TELESUP

Consultas
Con varias tablas

TEMA 1

Internas y
Externas
Competencia:
Definir correctamente consultas internas y
externas.

128

UNIVERSIDAD PRIVADA TELESUP

Desarrollo de los Temas

Tema 01: Consultas con Varias Tablas Internas y


Externas
Consultas de Unin Internas
Las vinculaciones entre tablas se realiza mediante la clusula INNER que combina
registros de dos tablas siempre que haya concordancia de valores en un campo
comn.
Su sintaxis es:
SELECT campos FROM tb1 INNER JOIN tb2 ON tb1.campo1 comp tb2.campo2
En donde:
tb1, tb2 Son los nombres de las tablas desde las que se combinan los registros.
campo1, campo2 Son los nombres de los campos que se combinan. Si no son
numricos, los campos deben ser del mismo tipo de datos y contener el mismo tipo
de datos, pero no tienen que tener el mismo nombre.
comp
Es cualquier operador de comparacin relacional : =, <, <=, =, o <.

Se puede utilizar una operacin INNER JOIN en cualquier clusula FROM. Esto crea
una combinacin por equivalencia, conocida tambin como unin interna. Las
combinaciones Equi son las ms comunes; stas combinan los registros de dos tablas
siempre que haya concordancia de valores en un campo comn a ambas tablas.
Se puede utilizar INNER JOIN con las tablas Departamentos
y Empleados para seleccionar todos los empleados de cada
departamento. Por el contrario, para seleccionar todos los
departamentos (incluso si alguno de ellos no tiene ningn
empleado asignado) se emplea LEFT JOIN o todos los
empleados (incluso si alguno no est asignado a ningn
departamento), en este caso RIGHT JOIN.

129

UNIVERSIDAD PRIVADA TELESUP

Si se intenta combinar campos que contengan datos Memo u


Objeto OLE, se produce un error. Se pueden combinar dos
campos numricos cualesquiera, incluso si son de diferente
tipo de datos. Por ejemplo, puede combinar un campo
Numrico para el que la propiedad Size de su objeto Field
est establecida como Entero, y un campo Contador.
El ejemplo siguiente muestra cmo podra combinar las tablas Categoras y
Productos basndose en el campo IDCategoria:

SELECT
FROM

Nombre_Categora,
Categorias

NombreProducto

INNER

JOIN

Productos

ON Categorias.IDCategoria = Productos.IDCategoria;
En el ejemplo anterior, IDCategoria es el campo combinado, pero no est incluido en
la salida de la consulta ya que no est incluido en la instruccin SELECT. Para incluir
el campo combinado, incluir el nombre del campo en la instruccin SELECT, en este
caso, Categorias.IDCategoria.
Tambin se pueden enlazar varias clusulas ON en una instruccin JOIN, utilizando la
sintaxis siguiente:
SELECT
FROM

tabla1

campos
INNER

JOIN

tabla2
AND

ON

tb1.campo1

comp

tb2.campo1

ON

tb1.campo2

comp

tb2.campo2)

OR

ON tb1.campo3 comp tb2.campo3)];


Tambin puede anidar instrucciones JOIN utilizando la siguiente sintaxis:
SELECT
FROM
(tb2
[INNER

tb1

INNER

INNER
JOIN

campos

[(

JOIN
]tablax

JOIN
[(

[INNER

]tb3
JOIN

...)]

ON

tb3.campo3

comp

tbx.campox)]

ON

tb2.campo2

comp

tb3.campo3)

ON tb1.campo1 comp tb2.campo2;

130

UNIVERSIDAD PRIVADA TELESUP

Un LEFT JOIN o un RIGHT JOIN puede anidarse dentro de un INNER JOIN, pero
un INNER JOIN no puede anidarse dentro de un LEFT JOIN o un RIGHT JOIN.
Ejemplo
SELECT DISTINCTROW Sum([Precio unidad] * [Cantidad])

AS [Ventas],

[Nombre] & " " & [Apellidos] AS [Nombre completo] FROM [Detalles de pedidos],
Pedidos, Empleados, Pedidos INNER JOIN [Detalles de pedidos] ON Pedidos.
[ID de pedido] = [Detalles de pedidos].[ID de pedido], Empleados INNER JOIN
Pedidos ON Empleados.[ID de empleado] = Pedidos.[ID de empleado] GROUP BY
[Nombre] & " " & [Apellidos];
Crea dos combinaciones equivalentes: una entre las tablas Detalles de pedidos y
Pedidos, y la otra entre las tablas Pedidos y Empleados. Esto es necesario ya que la
tabla Empleados no contiene datos de ventas y la tabla Detalles de pedidos no
contiene datos de los empleados. La consulta produce una lista de empleados y sus
ventas totales.
Si empleamos la clusula INNER en la consulta se seleccionarn slo aquellos
registros de la tabla de la que hayamos escrito a la izquierda de INNER JOIN que
contengan al menos un registro de la tabla que hayamos escrito a la derecha. Para
solucionar esto tenemos dos clusulas que sustituyen a la palabra clave INNER,
estas clusulas son LEFT y RIGHT. LEFT toma todos los registros de la tabla de la
izquierda aunque no tengan ningn registro en la tabla de la izquierda. RIGHT
realiza la misma operacin pero al contrario, toma todos los registros de la tabla de
la derecha aunque no tenga ningn registro en la tabla de la izquierda.

Consultas de Unin Externas


Se utiliza la operacin UNION para crear una consulta
de unin, combinando los resultados de dos o ms
consultas o tablas independientes. Su sintaxis es:

[TABLE]

consulta1

UNION

[ALL]

[TABLE]

consulta2 [UNION [ALL] [TABLE] consultan [ ... ]]


En donde:
consulta1, consulta2, consultan

131

UNIVERSIDAD PRIVADA TELESUP

Son instrucciones SELECT, el nombre de una consulta almacenada o el nombre de


una tabla almacenada precedido por la palabra clave TABLE.
Puede combinar los resultados de dos o ms consultas, tablas e instrucciones
SELECT, en cualquier orden, en una nica operacin UNION. El ejemplo siguiente
combina una tabla existente llamada Nuevas Cuentas y una instruccin SELECT:
TABLE

[Nuevas

Cuentas]

UNION

ALL

SELECT

FROM

Clientes

WHERE [Cantidad pedidos] 1000;


Si no se indica lo contrario, no se devuelven registros duplicados cuando se utiliza la
operacin UNION, no obstante puede incluir el predicado ALL para asegurar que se
devuelven todos los registros. Esto hace que la consulta se ejecute ms rpidamente.
Todas las consultas en una operacin UNION deben pedir el mismo nmero de
campos, no obstante los campos no tienen porqu tener el mismo tamao o el mismo
tipo de datos.
Se puede utilizar una clusula GROUP BY y/o HAVING en cada argumento consulta
para agrupar los datos devueltos. Puede utilizar una clusula ORDER BY al final del
ltimo argumento consulta para visualizar los datos devueltos en un orden especfico.
SELECT

[Nombre

de

compaa],

Ciudad

FROM

Proveedores

WHERE

Pas = 'Brasil' UNION SELECT [Nombre de compaa], Ciudad FROM Clientes


WHERE Pas = "Brasil"
Recupera los nombres y las ciudades de todos proveedores y clientes de Brasil
SELECT [Nombre de compaa], Ciudad FROM Proveedores WHERE Pas =
'Brasil'
UNION SELECT [Nombre de compaa], Ciudad FROM Clientes WHERE Pas =
'Brasil' ORDER BY Ciudad
Recupera los nombres y las ciudades de todos proveedores y clientes radicados en
Brasil, ordenados por el nombre de la ciudad
SELECT [Nombre de compaa], Ciudad FROM Proveedores WHERE Pas =
'Brasil'
UNION SELECT [Nombre de compaa], Ciudad FROM Clientes WHERE Pas =
'Brasil' UNION SELECT [Apellidos], Ciudad FROM Empleados WHERE Regin =
'Amrica del Sur'

132

UNIVERSIDAD PRIVADA TELESUP

Recupera los nombres y las ciudades de todos los proveedores y clientes de brasil
y los apellidos y las ciudades de todos los empleados de Amrica del Sur
TABLE [Lista de clientes] UNION TABLE [Lista de proveedores]
Recupera los nombres y cdigos de todos los proveedores y clientes

Ejemplo Prctico: Manipulacin de Base de Datos

133

UNIVERSIDAD PRIVADA TELESUP

Mostrar el cdigo del alumno, nombre del alumno y nombre de la carrera.


SELECT A.CODALU,A.NOMALU,C.NOMCAR
FROM ALUMNOS AS A INNER JOIN CARRERAS AS C
ON A.CODCAR=C.CODCAR

--Mostrar el cdigo del alumno, nombre del alumno y nombre de la carrera


solo de la carrera ADMINISTRACIN
SELECT A.CODALU,A.NOMALU,C.NOMCAR
FROM ALUMNOS AS A INNER JOIN CARRERAS AS C
ON A.CODCAR=C.CODCAR WHERE C.NOMCAR='Administracion'

--Mostrar el nombre del alumno, nombre del curso y prom pero solo de los
alumnos aprobados
SELECT A.NOMALU,C.NOMCUR,N.PROM
FROM
ALUMNOS AS A INNER JOIN NOTAS AS N
ON A.CODALU=N.CODALU
INNER JOIN CURSOS AS C
ON C.CODCUR=N.CODCUR
WHERE N.PROM >10

134

UNIVERSIDAD PRIVADA TELESUP

--Mostrar el nombre del alumno y todas sus notas pero solo las notas del
curso de 'Taller' o de 'Economa'
SELECT A.NOMALU,C.NOMCUR,N.PP,N.TRA,N.EX,N.PROM
FROM ALUMNOS AS A INNER JOIN NOTAS AS N
ON

A.CODALU=N.CODALU

C.CODCUR=N.CODCUR

INNER

WHERE

JOIN

(C.NOMCUR

CURSOS
LIKE

AS

ON

'Taller

%'

OR

C.NOMCUR='Economia')

--Mostrar los nombres de los alumnos que tienen Nota


SELECT A.NOMALU
FROM ALUMNOS AS A INNER JOIN NOTAS AS N
ON A.CODALU=N.CODALU

--Mostrar los 3 primeros puestos(Nombre del alumno y Prom)


SELECT TOP 3 A.NOMALU,N.PROM
FROM ALUMNOS AS A INNER JOIN NOTAS AS N
ON A.CODALU=N.CODALU
ORDER BY PROM DESC

--Mostrar el Mayor y menor Precio de los cursos


-- MAX,MIN,SUM,AVG,COUNT
SELECT MAX(PRECIO) AS PREMA,MIN(PRECIO) AS PREME FROM CURSOS

135

UNIVERSIDAD PRIVADA TELESUP

--Mostrar los alumnos(codigo) con su mayor nota


--GROUP BY
SELECT CODALU,MAX(PROM) FROM NOTAS
GROUP BY CODALU
-Mostrar la cantidad de alumnos que hay por carrera
SELECT C.NOMCAR,COUNT(A.CODALU) FROM CARRERAS AS C INNER
JOIN ALUMNOS AS A
ON C.CODCAR=A.CODCAR
GROUP BY C.NOMCAR
--HAVING
SELECT A.NOMALU,AVG(N.PROM) AS PROMEDIO FROM ALUMNOS AS A
INNER JOIN NOTAS AS N
ON A.CODALU=N.CODALU
GROUP BY A.NOMALU
HAVING AVG(N.PROM)>10
--SUBCONSULTAS
--Mostrar los cursos cuyo precio sea mayor o igual al precio promedio de
todos los cursos
SELECT * FROM CURSOS WHERE PRECIO >=(SELECT MAX(PRECIO) FROM
CURSOS)
--Mostrar los nombres de los alumnos que no tengan notas
SELECT

CODALU,NOMALU

FROM

ALUMNOS

WHERE

CODALU

NOT

IN(SELECT DISTINCT CODALU FROM NOTAS)

136

UNIVERSIDAD PRIVADA TELESUP

--Mostrar el cdigo del alumno, nombre del curso, adems un mensaje Aorobado o
Desaprobado
SELECT N.CODALU,A.NOMALU,C.NOMCUR,N.PROM,
OBS=CASE
WHEN N.PROM<=10 THEN 'Desaprobado'
WHEN N.PROM>10 THEN 'Aprobado'
END
FROM ALUMNOS AS A INNER JOIN NOTAS AS N
ON A.CODALU=N.CODALU INNER JOIN CURSOS AS C ON C.CODCUR=N.CODCUR

137

UNIVERSIDAD PRIVADA TELESUP

Consultas

TEMA 2

Avanzadas
Competencia:
Analizar y crear la administracin de cdigo
almacenado para consultas avanzadas.

138

UNIVERSIDAD PRIVADA TELESUP

Tema 02: Consultas Avanzadas


Agrupamiento de Registros
1.- GROUP BY
Combina los registros con valores idnticos, en la lista de
campos especificados, en un nico registro. Para cada registro
se crea un valor sumario si se incluye una funcin SQL
agregada, como por ejemplo Sum o Count, en la instruccin
SELECT.
Su sintaxis es:
SELECT campos FROM tabla WHERE criterio GROUP BY campos del grupo
GROUP BY es opcional. Los valores de resumen se omiten si no existe una funcin
SQL agregada en la instruccin SELECT. Los valores Null en los campos GROUP BY
se agrupan y no se omiten. No obstante, los valores Null no se evalan en ninguna de
las funciones SQL agregadas. Se utiliza la clusula WHERE para excluir aquellas
filas que no desea agrupar, y la clusula HAVING para filtrar los registros una vez
agrupados.

A menos que contenga un dato Memo u Objeto OLE , un campo de la


lista de campos GROUP BY puede referirse a cualquier campo de las
tablas que aparecen en la clusula FROM, incluso si el campo no
esta incluido en la instruccin SELECT, siempre y cuando la
instruccin SELECT incluya al menos una funcin SQL agregada.

Todos los campos de la lista de campos de SELECT deben o bien incluirse en la


clusula GROUP BY o como argumentos de una funcin SQL agregada.
SELECT Id_Familia, Sum(Stock) FROM Productos GROUP BY Id_Familia;

139

UNIVERSIDAD PRIVADA TELESUP

Una vez que GROUP BY ha combinado los registros, HAVING muestra cualquier
registro agrupado por la clusula GROUP BY que satisfaga las condiciones de la
clusula HAVING.
HAVING es similar a WHERE, determina qu
registros se seleccionan. Una vez que los registros
se han agrupado utilizando GROUP BY, HAVING
determina cuales de ellos se van a mostrar.
SELECT Id_Familia Sum(Stock) FROM Productos GROUP BY
Id_Familia HAVING Sum(Stock) 100 AND NombreProducto Like
BOS*;

AVG
Calcula la media aritmtica de un conjunto de valores contenidos en un campo
especificado de una consulta. Su sintaxis es la siguiente Avg(expr)
En donde expr representa el campo que contiene los datos numricos para los que se
desea calcular la media o una expresin que realiza un clculo utilizando los datos de
dicho campo. La media calculada por Avg es la media aritmtica (la suma de los
valores dividido por el nmero de valores). La funcin Avg no incluye ningn campo
Null en el clculo.
SELECT Avg(Gastos) AS Promedio FROM Pedidos WHERE Gastos 100;

3 Count
. Calcula el nmero de registros devueltos por una consulta. Su sintaxis es la siguiente
Count(expr)
En donde expr contiene el nombre del campo que desea
contar. Los operandos de expr pueden incluir el nombre de
un campo de una tabla, una constante o una funcin (la cual
puede ser intrnseca o definida por el usuario pero no otras
de las funciones agregadas de SQL). Puede contar cualquier
tipo de datos incluso texto.

140

UNIVERSIDAD PRIVADA TELESUP

Aunque expr puede realizar un clculo sobre un campo, Count simplemente cuenta el
nmero de registros sin tener en cuenta qu valores se almacenan en los registros. La
funcin Count no cuenta los registros que tienen campos null a menos que expr sea el
carcter comodn asterisco (*). Si utiliza un asterisco, Count calcula el nmero total de
registros,

incluyendo

aquellos

que

contienen

campos

null.

Count(*)

es

considerablemente ms rpida que Count(Campo). No se debe poner el asterisco


entre dobles comillas ('*').
SELECT Count(*) AS Total FROM Pedidos;
Si expr identifica a mltiples campos, la funcin Count cuenta un registro slo si al
menos uno de los campos no es Null. Si todos los campos especificados son Null, no
se cuenta el registro. Hay que separar los nombres de los campos con ampersand
(&). SELECT Count(FechaEnvo & Transporte) AS Total FROM Pedidos;

4 Max, Min
Devuelven el mnimo o el mximo de un conjunto de valores contenidos en un
campo especifico de una consulta. Su sintaxis es:
Min(expr)
Max(expr)
En donde expr es el campo sobre el que se desea realizar el clculo. Expr pueden
incluir el nombre de un campo de una tabla, una constante o una funcin (la cual
puede ser intrnseca o definida por el usuario pero no otras de las funciones
agregadas de SQL).
SELECT Min(Gastos) AS ElMin FROM Pedidos WHERE Pais = 'Espaa';
SELECT Max(Gastos) AS ElMax FROM Pedidos WHERE Pais = 'Espaa';

5 StDev, StDevP
Devuelve estimaciones de la desviacin estndar para la poblacin (el total de los
registros de la tabla) o una muestra de la poblacin representada (muestra aleatoria) .
Su sintaxis es:
StDev(expr)
StDevP(expr)

141

UNIVERSIDAD PRIVADA TELESUP

En donde expr representa el nombre del campo que contiene los datos que desean
evaluarse o una expresin que realiza un clculo utilizando los datos de dichos
campos. Los operandos de expr pueden incluir el nombre de un campo de una tabla,
una constante o una funcin (la cual puede ser intrnseca o definida por el usuario
pero no otras de las funciones agregadas de SQL)
StDevP evala una poblacin, y StDev evala una muestra de la poblacin. Si la
consulta contiene menos de dos registros (o ningn registro para StDevP), estas
funciones devuelven un valor Null (el cual indica que la desviacin estndar no puede
calcularse).
SELECT StDev(Gastos) AS Desviacion FROM Pedidos WHERE Pais = 'Espaa';
SELECT StDevP(Gastos) AS Desviacion FROM Pedidos WHERE Pais= 'Espaa';

6 Sum
Devuelve la suma del conjunto de valores contenido en un campo especifico de una
consulta. Su sintaxis es: Sum(expr)
En donde expr respresenta el nombre del campo que
contiene los datos que desean sumarse o una expresin
que realiza un clculo utilizando los datos de dichos
campos.
Los operandos de expr pueden incluir el nombre de un campo de una tabla, una
constante o una funcin (la cual puede ser intrnseca o definida por el usuario pero no
otras de las funciones agregadas de SQL).
SELECT Sum(PrecioUnidad * Cantidad) AS Total FROM DetallePedido;

7 Var, VarP
Devuelve una estimacin de la varianza de una poblacin (sobre el total de los registros) o
una muestra de la poblacin (muestra aleatoria de registros) sobre los valores de un
campo. Su sintaxis es:
Var(expr)
VarP(expr)

142

UNIVERSIDAD PRIVADA TELESUP

VarP evala una poblacin, y Var evala una muestra de la poblacin. Expr el nombre
del campo que contiene los datos que desean evaluarse o una expresin que realiza
un clculo utilizando los datos de dichos campos. Los operandos de expr pueden
incluir el nombre de un campo de una tabla, una constante o una funcin (la cual
puede ser intrnseca o definida por el usuario pero no otras de las funciones
agregadas de SQL) Si la consulta contiene menos de dos registros, Var y VarP
devuelven Null (esto indica que la varianza no puede calcularse). Puede utilizar Var y
VarP en una expresin de consulta o en una Instruccin SQL.
SELECT Var(Gastos) AS Varianza FROM Pedidos WHERE Pais = 'Espaa';
SELECT VarP(Gastos) AS Varianza FROM Pedidos WHERE Pais = 'Espaa';

SubConsultas
Una subconsulta es una instruccin SELECT anidada dentro de una instruccin
SELECT, SELECT...INTO, INSERT...INTO, DELETE, o UPDATE o dentro de otra
subconsulta.
Puede utilizar tres formas de sintaxis para crear una subconsulta:
comparacin

[ANY

expresin

ALL

[NOT]

|
IN

SOME]

(instruccin

(instruccin

sql)
sql)

[NOT] EXISTS (instruccin sql)


En donde:
comparacin
Es una expresin y un operador de comparacin que compara la expresin con el
resultado de la subconsulta.
expresin
Es una expresin por la que se busca el conjunto resultante de la subconsulta.
instruccin sql
Es una instruccin SELECT, que sigue el mismo formato y reglas que cualquier otra
instruccin SELECT. Debe ir entre parntesis.

143

UNIVERSIDAD PRIVADA TELESUP

Se puede utilizar una subconsulta en lugar de una expresin en la lista de campos de


una instruccin SELECT o en una clusula WHERE o HAVING. En una subconsulta,
se utiliza una instruccin SELECT para proporcionar un conjunto de uno o ms
valores especificados para evaluar en la expresin de la clusula WHERE o HAVING.
Se puede utilizar el predicado ANY o SOME, los cuales son sinnimos, para recuperar
registros de la consulta principal, que satisfagan la comparacin con cualquier otro
registro recuperado en la subconsulta. El ejemplo siguiente devuelve todos los
productos cuyo precio unitario es mayor que el de cualquier producto vendido con un
descuento igual o mayor al 25 por ciento.:
SELECT

FROM

Productos

WHERE

PrecioUnidad

ANY

(SELECT PrecioUnidad FROM DetallePedido WHERE Descuento = 0 .25);

El predicado ALL se utiliza para recuperar nicamente aquellos registros de la


consulta principal que satisfacen la comparacin con todos los registros recuperados
en la subconsulta. Si se cambia ANY por ALL en el ejemplo anterior, la consulta
devolver nicamente aquellos productos cuyo precio unitario sea mayor que el de
todos los productos vendidos con un descuento igual o mayor al 25 por ciento. Esto es
mucho ms restrictivo. El predicado IN se emplea para recuperar nicamente aquellos
registros de la consulta principal para los que algunos registros de la subconsulta
contienen un valor igual. El ejemplo siguiente devuelve todos los productos vendidos
con un descuento igual o mayor al 25 por ciento.:
SELECT

FROM

Productos

WHERE

IDProducto

IN

(SELECT IDProducto FROM DetallePedido WHERE Descuento = 0.25);


Inversamente se puede utilizar NOT IN para recuperar nicamente aquellos registros
de la consulta principal para los que no hay ningn registro de la subconsulta que
contenga un valor igual. El predicado EXISTS (con la palabra reservada NOT
opcional) se utiliza en comparaciones de verdad/falso para determinar si la
subconsulta devuelve algn registro. Se puede utilizar tambin alias del nombre de la
tabla en una subconsulta para referirse a tablas listadas en la clusula FROM fuera de
la subconsulta. El ejemplo siguiente devuelve los nombres de los empleados cuyo
salario es igual o mayor que el salario medio de todos los empleados con el mismo
ttulo. A la tabla Empleados se le ha dado el alias T1::

144

UNIVERSIDAD PRIVADA TELESUP

SELECT

Apellido,

WHERE

Nombre,

Salario

Titulo,

Salario

(SELECT

FROM

Avg(Salario)

Empleados

AS

T1

FROM

Empleados

FROM

Empleados

WHERE T1.Titulo = Empleados.Titulo) ORDER BY Titulo;


En el ejemplo anterior , la palabra reservada AS es opcional.
SELECT

Apellidos,

Nombre,

Cargo,

Salario

WHERE Cargo LIKE "Agente Ven*" AND Salario ALL (SELECT Salario FROM
Empleados WHERE (Cargo LIKE "*Jefe*") OR (Cargo LIKE "*Director*"));
Obtiene una lista con el nombre, cargo y salario de todos los agentes de ventas cuyo
salario es mayor que el de todos los jefes y directores.
SELECT

DISTINCTROW

NombreProducto,

Precio_Unidad

FROM

Productos

WHERE (Precio_Unidad = (SELECT Precio_Unidad FROM Productos WHERE


Nombre_Producto = "Almbar anisado");
Obtiene una lista con el nombre y el precio unitario de todos los productos con el
mismo precio que el almbar anisado.
SELECT DISTINCTROW Nombre_Contacto, Nombre_Compaia, Cargo_Contacto,
Telefono

FROM

Clientes

WHERE

(ID_Cliente

IN

(SELECT

DISTINCTROW

ID_Cliente FROM Pedidos WHERE Fecha_Pedido = #04/1/93# <#07/1/93#);


Obtiene una lista de las compaas y los contactos de todos los clientes que han
realizado un pedido en el segundo trimestre de 1993.
SELECT

Nombre,

Apellidos

FROM

Empleados

AS

WHERE

EXISTS

(SELECT * FROM Pedidos AS O WHERE O.ID_Empleado = E.ID_Empleado);


Selecciona el nombre de todos los empleados que han reservado al menos un pedido.
SELECT
(SELECT

DISTINCTROW
DISTINCTROW

Productos.Id_Producto

Pedidos.Id_Producto,

Productos.Nombre
Pedidos.Id_Producto)

FROM
AS

Pedidos.Cantidad,
Productos
ElProducto

WHERE
FROM

Pedidos WHERE Pedidos.Cantidad 150 ORDER BY Pedidos.Id_Producto;


Recupera el Cdigo del Producto y la Cantidad pedida de la tabla pedidos,
extrayendo el nombre del producto de la tabla de productos.

NOTA: Para las sentencias SQL que se estn usando en este tema se esta tomando
como modelo el gestor de base de datos ACCESS

145

UNIVERSIDAD PRIVADA TELESUP

TEMA
3
Procedimientos

Almacenados
Competencia:
Analizar
y
almacenados.

definir

procedimientos

146

UNIVERSIDAD PRIVADA TELESUP

Tema 03: Procedimientos Almacenados


Concepto.
Bajo el nombre STORE PROCEDURE (Procedimiento Almacenado) se concentra
una variedad de programas que se encuentran dentro de la Base de Datos. Los ms
usados son:

PROCEDURES (Procedimientos).
FUNCTIONS (Funciones).
TRIGGERS (Disparadores).
PACKAGES (Paquetes).
El cdigo almacenado es fundamental en una base de datos. La ventaja reside en que
est directamente bajo el control del motor de la base de datos. Con ello, se logra un
mejor desempeo de la base de datos.

Un procedimiento almacenado es un objeto


perteneciente a una base de datos, que contiene un
conjunto de instrucciones SQL, tanto de consulta,
como de manipulacin de datos, como de control
de la secuencia del programa, asociados a un
nombre, y que son ejecutados en conjunto. Puede
contener parmetros tanto de entrada como de salida
(parmetros pasados por referencia), as como devolver un valor de retorno. Son pre
compilados al ejecutarse por primera vez, y no vuelven a ser compilados con las
subsiguientes ejecuciones, lo que proporciona una cierta mejora en el rendimiento. No
obstante si se desea se puede forzar su re compilacin.
Una de las principales ventajas de este tipo de objetos, es que al
residir en la propia base de datos son compartibles por todos los
usuarios, pudiendo de esta manera beneficiarse de los distintos
cachs del servidor.

147

UNIVERSIDAD PRIVADA TELESUP

Al mismo tiempo al ser cdigo externo a la aplicacin puede ser alterado sin que
exista siempre la necesidad de modificar el cdigo de la misma.
Al ser objetos de la base de datos se hallan sujetos a los esquemas de seguridad
determinados por el administrador de la misma:
Existen diversas clases de procedimientos almacenados, entre los que se encuentra
los procedimientos almacenados del sistema, que sirven de herramientas para la
realizacin de distintas tareas de administracin.

Un procedimiento almacenado se crea con la sentencia CREATE PROCEDURE,


que debe ser la nica dentro de un mismo bat ch. La creacin de un procedimiento
almacenado puede ser realizada bien desde el ISQL_W, bien desde la opcin
Manage.Stored Procedures del Enterprise Manager, o bien desde la propia
ventana donde se muestran los objetos de la base de datos, en el grupo
correspondiente a los procedimientos almacenados, dentro de esta ltima
herramienta.
La sintaxis de dicha instruccin es bsicamente la siguiente:
CREATE PROCEDURE Nombre _del _ procedimiento
[Lista_de_parmetros]
AS
(Sentencias SQL)
[RETURN [Valor]]
Donde:
Nombre _ del _ procedimiento Identificador.
Que determina el nombre asignado al procedimiento y que debe cumplir con la
regla de definicin de identificadores establecida en MSSQL Server.
Lista _ de _ parmetros.

148

UNIVERSIDAD PRIVADA TELESUP

Parmetros definidos en el procedimiento con la siguiente


sintaxis:@nombre_var
El smbolo @ es necesario no slo en la declaracin sino que forma parte del
propio nombre.
Dicha lista puede contener un mximo de 255 parmetros.
Sentencias _SQL
Como se explic anteriormente, el cuerpo del procedimiento puede estar
compuesto de cualquier tipo de instruccin SQL, a excepcin de las siguientes:
CREATE VIEW
CREATE DEFAULT
CREATE RULE
CREATE PROCEDURE
CREATE TRIGGER

Entre las instrucciones que puede contener, est la llamada a otros procedimientos
almacenados, los cuales podrn acceder a los objetos pertenecientes al llamador,
exceptuando las tablas temporales creadas por el mismo.

RETURN [Valor]

Un procedimiento almacenado puede devolver un valor de


retorno de tipo integer, no nulo, que puede ser rescatado por
el cdigo llamador para tener conocimiento del resultado del
proceso de dicho procedimiento. Los valores -1 al -99 estn
reservados por el sistema, as como el 0 que se interpreta
como finalizado con xito.

149

UNIVERSIDAD PRIVADA TELESUP

Si no se proporciona un cdigo definido por el usuario, se utilizan los del sistema. De


la misma forma los definidos por el usuario tiene prioridad sobre los definidos por el
sistema. En caso de producirse varios errores a lo largo de la ejecucin del mismo
procedimiento, se devuelve el cdigo cuyo valor absoluto es mayor. Algunos
ejemplos de cdigos y sus significados son los siguientes:
-2 Error de tipo de datos
-4 Error de Permisos
-5 Error de Sintaxis
-13 Base de Datos Corrupta

Llamadas a procedimientos almacenados


La sintaxis de la llamada a un procedimiento almacenado, depende de como se halla
creado dicho procedimiento, por lo que en cada uno de los ejemplos que siguen, se
especifica la llamada al mismo, ponindose de manifiesto dicha sintaxis en cada caso
particular.

Ejemplos
Procedimiento 1
Es un procedimiento simple, sin parmetros que devuelve un conjunto de filas que
cumplen siempre la misma condicin.
CREATE PROCEDURE prod_1
AS
SELECT * FROM CLIENTES
Llamada:
EXECUTE prod_1

150

UNIVERSIDAD PRIVADA TELESUP

Procedimiento 2
Es un procedimiento que recibe dos parmetros de entrada, correspondientes a un rango
de cdigos de clientes, y devuelve el conjunto de filas de la tabla CLIENT ES cuyo cdigo
se encuentra en el rango determinado por los parmetros.
CREATE PROCEDURE prod_2
@p_CodIni CHAR (6), @p_CodFin CHAR (6)
AS
SELECT * FROM CLIENTE
WHERE IDCLIENTE BETWEEN @p_CodIni AND @p_CodFi
Llamada:
EXECUTE prod_2 000100, 000500

Procedimiento 3
Es un procedimiento que recibe un parmetro de entrada y uno de salida. El parmetro de
entrada corresponde a un cdigo de tipo de producto y el de salida, el nmero de
productos existentes, que corresponden a dicho tipo.
CREATE PROCEDURE prod_3
@p_CodTipProd CHAR (3), @p_NumProductos SMALLINT OUTPUT
AS
SELECT @p_NumProductos = COUNT(*) FROM PRODUCTOS WHERE
IDTIPROD = @p_CodTipProd
Llamada:
DECLARE @p_parmsal SMALLINT
EXECUTE prod_3 KBD, @p_parmsal OUTPUT

151

UNIVERSIDAD PRIVADA TELESUP

Procedimiento 4
Es un procedimiento almacenado que realiza inserciones en una tabla, con los valores
devueltos por uns ubquer y realizado sobre otra tabla que tiene la misma estructura. El
valor devuelto por el procedimiento almacenado, es el nmero de filas insertadas.
CREATE PROCEDURE prod_4
AS
INSERT TIPSOPPRU SELECT * FROM TIPSOPORTE
RETURN @@ROWCOUNT
Llamada:
DECLARE @p_retorno INTEGER
EXECUTE @p_retorno = prod_4

Ejemplo de Procedimientos Almacenados


Suponiendo que hay una tabla Artculos realizar los siguientes procedimientos

1.- Grabar Artculo


Create Procedure GrabaArti
@Cod char(5),@nom varchar(30),@uni char(4),@precio numeric(10,2),@stock int
as
Insert Into Articulos values(@cod,@nom,@uni,@precio,@stock)
GO

2.- Editar Artculo


Create Procedure EditaArti
@Cod char(5),@nom varchar(30),@uni char(4),@precio numeric(10,2),@stock int
as
Update

Articulos

set

art_nombre=@nom,art_unidad=@uni,art_precio=@precio,art_stock=@stock
where art_codigo=@cod
GO

152

UNIVERSIDAD PRIVADA TELESUP

3.- Eliminar Artculo


Create Procedure BorraArti
@Cod char(5)
as
delete from Articulos where art_codigo=@cod
GO

4.- Listar Artculo


Create Procedure ListaArti
as
Select * from articulos
GO

5.- Nuevo Artculo


Create Procedure NuevoArti
@Cod char(5) output
as
declare @auxi char(5)
select @auxi = max(art_codigo) from articulos
select @cod = 'A' + right(str(convert(int,right(@auxi,4)) + 10001),4)

153

UNIVERSIDAD PRIVADA TELESUP

TEMA 4

Triggers
Competencia:
Analizar y definir Triggers.

154

UNIVERSIDAD PRIVADA TELESUP

Tema 04: TRIGGERS


Manejo de Errores

Raiserror .- Esta funcin permite establecer mensajes de errores en el


SQL-Server Sintaxis: Raiserror(Msg, Nivel ,Estado)

Msg .- Es el mensaje que se quiere mostrar

Nivel.- Se trata del nivel de gravedad definido por el usuario que se asocia con este
mensaje. Todos los usuarios pueden utilizar los niveles de gravedad de 0 a 18. Slo
los miembros de la funcin fija de servidor sysadmin pueden utilizar los niveles de
gravedad de 19 a 25.

Estado.- Es un entero arbitrario entre 1 y 127 que representa informacin acerca


del estado de llamada del error. Un valor negativo de Estado pasa a tener un valor
predeterminado de 1.

Ejemplo:

RaisError ('Este es es un mensaje con nivel 0 y estado 1', 0,1)


Sysmessages .- Es una tabla que se encuentra en la base de datos Master que
contienes todos los mensajes disponibles
Ejemplo: select * from sysmessages (donde el campo error es el numero de error,
Severity el nivel, etc.)
SP _ add Message.- Agrega un nuevo mensaje de error a la tabla sysmessages
Ejemplo:
Sp _ addmessage 50001, 16, Este es el mensaje 50001
Una vez hecho esto el mensaje se adiciona a la tabla y para llamarlo seria as:
RAISERROR (50001, 16,1)

155

UNIVERSIDAD PRIVADA TELESUP

sp_dropmessage .- Elimina un mensaje


Ejemplo: sp_dropmessage 50001 donde 50001 es el nmero de mensaje que se
quiere eliminar (Los mensajes se pueden aadir a partir del 50001)
@@Rowcount.- Saca la cantidad de Filas afectadas en la ltima instruccin SQL.

Triggers
Los triggers son procedimientos internos que se
ejecutan cada vez que se haga un Insert, Update o
Delete, Internamente se crea una tabla temporal
Inserted cuando se agrega, Deleted cuando se
elimina y ambas cuando se actualiza.
En el caso de una actualizacin se crean las dos tablas Inserted y Deleted en la
tabla Inserted va los datos a insertar en la actualizacin y en Deleted los datos que
van a ser sustituidos.
Sintaxis:
Create Trigger Nombre Trigger
On Table For Insert, update, Delete
As
Donde Tabla es la tabla donde se va a crear el Trigger y en For va
cuando se va a ejecutar el Trigger (Si fuera en los 3 casos se pone
los 3 Insert,Update y Deleted y solo se separan por una coma)
Ejemplos de Triggers:

Crear la Siguiente Base de Datos.


USE master
go
CREATE DATABASE ESTUDIOS
GO
USE ESTUDIOS
GO
-- Creacin de las Tablas.

156

UNIVERSIDAD PRIVADA TELESUP

Create Table Carreras


(codcar int not null primary key,
nomcar varchar(30)
)
GO
Create Table Alumnos
(codalu char(7) not null primary key,
nomalu varchar(30),
codcar int
)
GO
Create Table Notas
(codalu char(7),
codcur char(5),
pp int,
ep int,
ef int
)
GO
Create Table Cursos
(codcur char(5) not null primary key,
nomcur varchar(25)
)
go
Create Table LogCursos
(codcur char(5),
nomcur varchar(25),
Fecha Datetime,
Usuario Varchar(10))
Go

157

UNIVERSIDAD PRIVADA TELESUP

Con la base de Datos Estudio crear los siguientes Triggers.

--Creacion de Triggers
--1.- Mostrar un Mensaje Cuando se haga un Insert,Update o Delete
Create Trigger TR1
on Cursos For Insert,Update,Delete
as
RaisError('Se ha afectado %d Fila',0,1,@@Rowcount)
--Aqui el Nivel es 0 y el Estado 1 Al haber %d se le pasa el valor de una
Variable en este Caso @@Rowcount
GO

--2.- No permitir que se agregue un Curso con el Mismo Nombre


Create Trigger TR2
on Cursos For Insert
as
Declare @nom varchar(25)
Select @nom = nomcur from inserted
If (Select count(*) from cursos where nomcur=@nom)>1
Bejn
RaisError('Nombre del Curso ya existe',0,1)
Rollback Transaction
End
Go
--3.- Crear un Trigger que no permita Modificar el Nombre de Un alumno
Create Trigger TR3
on Alumnos For Update
as
If Update(Nomalu)
Begin
Print 'No se puede Modificar el Nombre del Alumno '
Rollback Transaction
End
Go

158

UNIVERSIDAD PRIVADA TELESUP

--4.- Crear un trigger que no permita Modificar el campo pp con una nota
menor a la que ya tiene
Create Trigger TR4
on Notas For Update
as
Declare @n1 int,@n2 int
Select @n1 = pp from deleted
Select @n2 = pp from inserted
if Update(pp)
Begin
if @n2 < @n1
Begin
--Print 'No se puede Modificar la nota ' + convert(varchar(2),@n1) + ' por la
nota ' + convert(varchar(2),@n2)
--Print 'No se puede Modificar la nota ' + cast(@n1 as varchar(2)) + ' por la
nota ' + cast(@n2 as varchar(2))

RaisError('No se puede Modificar la nota %d por la nota %d por ser


menor',0,1,@n1,@n2)
Rollback Transaction
End
End
Go
--5.- Crear un trigger que no permita eliminar Una Carrera que este en la
tabla alumnos
Create Trigger TR5
on Carreras For Delete
as
Declare @xcod int
Select @xcod = codcar from deleted
if Exists(select * from Alumnos where codcar=@xcod)
Begin
Print 'No se puede Eliminar la carrera'
Rollback Transaction
End
Go

159

UNIVERSIDAD PRIVADA TELESUP

--6.- Crear Un Trigger que Al eliminar Un curso elimine en Cascada


Las Notas de esos cursos.
Create Trigger TR6
on Cursos For Delete
as
Declare @xCodcur VARCHAR(5)
Select @xCodCur = Codcur from deleted
Delete from Notas where Codcur = @XcodCur
Go

--7.- Crear un Trigger a la tabla Cursos que cuando se modifique un


registro se guarden los datos a Modificar en una tabla
--Para este ejercicio debemos crear una tabla Idntica a la Tabla Cursos la
cual llamaremos LogCursos
Create Trigger TR7
on Cursos For Update
as
Declare @xCod VARCHAR(5)
Declare @xNom varchar(25)
Select @xCod = codcur from deleted
Select @xNom = NomCur from deleted
INSERT INTO LogCursos values(@xcod,@xnom,getdate(),'SUPERVISOR')

160

UNIVERSIDAD PRIVADA TELESUP

Lecturas Recomendadas

TUTORIAL SQL AVANZADO


http://sql.1keydata.com/es/sql-avanzado.php

PROCEDIMIENTOS ALMACENADOS
http://www.devjoker.com/contenidos/catss/238/Procedimientos-almacenados-enTransact-SQL.aspx

PROCEDIMIENTOS ALMACENADOS Y TRIGGERS


http://es.scribd.com/doc/10325656/Procedimientos-Almacenados-y-Triggers-en-SQLServer

Actividades y Ejercicios

Ingresa al link SQL Avanzado lee atentamente las indicaciones,


desarrllalo y envalo por el mismo medio.

Trabajar con la tabla ALUMNO creada en la actividad de la Unidad 3


1. Crear un procedimiento almacenado que permita grabar datos a la Tabla
ALUMNO.
2. Crear un procedimiento almacenado que permita actualizar datos a la
tabla ALUMNO.
3. Crear un trigger que no permita grabar un nombre y apellido que ya
exista en la tabla ALUMNO.
4. Crear un trigger que no permita grabar si en el campo de fecha de
nacimiento se ingresa una fecha mayor al ao 01/01/95

161

UNIVERSIDAD PRIVADA TELESUP

Autoevaluaciones

1.- Sentencia que sirve para comparar inexactamente?


a.
b.
c.
d.
e.

Like
Between
Compare
In
On

2.- Sentencia que sirve para ordenar los datos?


a.
b.
c.
d.
e.

Sort
Group By
Having
Order by
Compare

3.- Cul es la sentencia que une a las tablas?


a.
b.
c.
d.
e.

Relation Ship
Select
inner Join
insert
int

4.- Cmo se pone una condicin a un campo que usa SUM, Max, etc.?
a.
b.
c.
d.
e.

Where
Group By
Having
Insert
Delete

5.- Sentencia que sirve para agrupar datos


a.
b.
c.
d.
e.

Group
Group By
Having
Order by
Delete

6.- Qu sentencia permite hacer una condicin dentro de una sentencia SELECT?
a.
b.
c.
d.
e.

IF
CASE
Select Case
For
Order by

162

UNIVERSIDAD PRIVADA TELESUP

7.- Qu sentencia SQL permite pasar y devolver parmetros o argumentos?


a.
b.
c.
d.
e.

Procedure
Query
Sum
Create
Delete

8.- Cul es la sentencia para ejecutar un procedimiento almacenado?


a.
b.
c.
d.
e.

Call
Execute
Ex
Connect
Listar

9.- Cules son los procedimientos que se ejecutan cuando se presenta un


determinado evento?
a.
b.
c.
d.
e.

Parmetros
TRIGGERS
Procedures
Funciones
Sentencias

10.- Para mostrar un mensaje cuando se ejecuta un triggers la sentencia es?


a. msgbox
b. messagebox
c. Raiserror
d. msgError
e. msq

163

UNIVERSIDAD PRIVADA TELESUP

Resumen

UNIDAD DE APRENDIZAJE IV:

Las consultas entre tablas son diversas y hay veces tenemos la necesidad de
mostrar datos que se encuentran en diferentes tablas.
Para eso el SQL maneja la clausula INNER JOIN que es la que permite unir varias
tablas cabe recordar que si se utiliza INNER JOIN se tendr que utilizar tambin la
clausula ON que es la que relaciona los campos en comn. Se debe de tener en
cuenta los campos que permiten esta unin para que con ellos se pueda hacer la
relacin entre las tablas.
Ejemplo: Mostrar el cdigo del alumno, nombre del alumno y nombre de la carrera.
SELECT A.CODALU, A.NOMALU, C.NOMCAR FROM ALUMNOS AS A INNER
JOIN CARRERAS AS C ON A.CODCAR=C.CODCAR

El SQL permite hacer sub consultas que quiere decir una consulta dentro de otra
esto se considera una consulta avanzada.
Se tiene funciones como GROUP BY, HAVING, ORDER BY, etc. que permitir
hacer este tipo de consultas

Un procedimiento almacenado es un objeto perteneciente a una base de datos,


que contiene un conjunto de instrucciones SQL, tanto de consulta, como de
manipulacin de datos, como de control de la secuencia del programa,
asociados a un nombre, y que son ejecutados en conjunto. Puede contener
parmetros tanto de entrada como de salida (parmetros pasados por
referencia), as como devolver un valor de retorno.

Los triggers son procedimientos internos que se ejecutan cada vez que se
haga un Insert, Update o Delete, Internamente se crea una tabla temporal
Inserted cuando se agrega, Deleted cuando se elimina y ambas cuando se
actualiza. En el caso de una actualizacin se crean las dos tablas Inserted y
Deleted en la tabla Inserted va los datos a insertar en la actualizacin y en
Deleted los datos que van a ser sustituidos.

164

UNIVERSIDAD PRIVADA TELESUP

Glosario

MODELOS DE DATOS: Tambin llamados modelos lgicos, se han clasificado en dos


grandes grupos debido al tratamiento de los datos: Basados en Objetos y basados en
Registros.

ADMINISTRACIN DE DATOS: Sin los datos y la capacidad para procesarlos, una


organizacin no podra completar con xito la mayor parte de sus actividades de
negocios.

MODELOS DE BASE DE DATOS: En la mayor parte de las bases de datos, la


estructura de las relaciones sigue uno de tres modelos lgicos de base de datos.
Jerrquico, de red y relacional.

BASES DE DATOS DISTRIBUIDAS: Un procesamiento distribuido incluye colocar


unidades de procesamiento en diferentes ubicaciones y vincularlas a travs de equipos
de telecomunicaciones.

DISPONIBILIDAD: Los sistemas de bases de datos deben asegurar la disponibilidad


de los datos a aquellos usuario que tienen derecho a ello por lo que proporcionan
mecanismos que permiten recuperar la base de datos contra fallos lgicos o fsicos que
destruyan los datos en todo o en parte.

INTEGRIDAD: El objetivo en cuanto a la integridad es proteger la base de datos contra


operaciones que introduzcan inconsistencias en los datos, por eso hablamos de
integridad en el sentido de correccin, validez o precisin de los datos de la base.

CAMPO: Es la unidad ms pequea a la cual uno puede referirse en un programa.


Desde el punto de vista del programador representa una caracterstica de un individuo
u objeto.

DATO: Es una informacin que refleja el valor de una caracterstica de un objeto real,
sea concreto o abstracto, o imaginario. Debe permanecer en el tiempo, debe tener un
significado y debe ser manipulable mediante operadores.

165

UNIVERSIDAD PRIVADA TELESUP

Fuentes de Informacin
BIBLIOGRFICAS:

PREZ LOPEZ, CSAR MYSQL PARA WINDOWS Y LINUX Apress 2004


KRUGLINSKI, DAVID J SISTEMAS DE ADMINISTRACIN DE BASE DE DATOS Editorial MxGraw
Hill 2004
DATE, C.J. INTRODUCCIN A LOS SISTEMAS DE BASES DE DATOS. 7A. ED. Prentice Hall 2001
MARCO A. GUEVARA INJOQUE CSAR R. FLORES NAZARIO TUTORIAL ERWIN

ELECTRONICAS:
Tutorial SQL Avanzado
http://sql.1keydata.com/es/sql-avanzado.php

ERwin
http://es.scribd.com/doc/3075477/Manual-de-Usuario-de-Erwin

Normalizacin de la Base de Datos


http://mygnet.net/articulos/mysql/182

Introduccin a la base de datos


http://www.desarrolloweb.com/articulos/introduccion-base-datos.html

VIDEOS
http://www.youtube.com/watch?v=4XMp9EubJTM
http://www.youtube.com/watch?v=R5UVM9Bxod4&feature=related
http://www.youtube.com/watch?v=iaYfDeijJng&feature=related

166

UNIVERSIDAD PRIVADA TELESUP

Solucionario

UNIDAD DE

1. c

UNIDAD DE
APRENDIZAJE 2:
1. b

2. d

2. b

3. c

3. a

4. b

4. c

5. a

5. b

6. a

6. c

7. a

7. a

8. b

8. b

9. c

9. a

10. b

10. a

APRENDIZAJE 1

UNIDAD DE
APRENDIZAJE 3:

UNIDAD DE
APRENDIZAJE 4:

1. b

1. a

2. a

2. d

3. b

3. c

4. d

4. c

5. d

5. b

6. d

6. b

7. b

7. a

8. c

8. b

9. c

9. b

10. b

10. c

167