Vous êtes sur la page 1sur 27

INSTITUTO TECNOLGICO SUPERIOR

VIDA NUEVA







CARRERA DE INFORMTICA


BASE DE DATOS II


TEMA: GENERAR UNA BASE DE DATOS EN PLSQL


TUTOR: ING. CARLOS MOREANO



INTEGRATES:
SANGOLUISA TATIANA
TITUAA DAYANA



QUITO-ECUADOR
2012-2013

OBJETIVOS

GENERAL:
Aprender diferentes objetos de la base de datos, que permitan modularizar el
cdigo de programacin, como las funciones, procedimientos, vistas, ndices y
cursores.

ESPECFICOS:
Aplicar los conocimientos obtenidos en la creacin de una base de datos.
Crear los cdigos para la creacin de los distintos procesos en PL/SQL de la
base de datos.
Disear una base de datos por medio del sistema identidad relacin.
Aprender a identificar cules son los requerimientos del cliente para identificar
las clases y los atributos.










INTRODUCCIN
SQL es un lenguaje de consulta para los sistemas de bases de datos relacinales, pero
que no posee la potencia de los lenguajes de programacin. No permite el uso de
variables, estructuras de control de flujo, bucles y dems elementos caractersticos de la
programacin. No es de extraar, SQL es un lenguaje de consulta, no un lenguaje de
programacin.
Sin embargo, SQL es la herramienta ideal para trabajar con bases de datos. Cuando se
desea realizar una aplicacin completa para el manejo de una base de datos relacional,
resulta necesario utilizar alguna herramienta que soporte la capacidad de consulta del
SQL y la versatilidad de los lenguajes de programacin tradicionales. PL/SQL es el
lenguaje de programacin que proporciona Oracle para extender el SQL estndar con
otro tipo de instrucciones y elementos propios de los lenguajes de programacin.
Con PL/SQL vamos a poder programar las unidades de programa de la base de datos
ORACLE, estn son:
Procedimientos almacenados
Vistas
ndices
Cursores
En este informe vamos a ver el lenguaje PL SQL y trataremos los siguientes temas:
BASE DE DATOS: Es un conjunto de datos pertenecientes a un mismo contexto y
almacenados sistemticamente para su posterior uso.
SQL: Es un lenguaje declarativo de acceso a bases de datos relacionales que permite
especificar diversos tipos de operaciones en ellas.
PL SQL: Es un lenguaje de programacin que proporciona Oracle, soporta todas las
consultas la manipulacin de datos es la misma que en SQL.


MARCO TERICO
BASE DE DATOS
Es una entidad en la cual se pueden almacenar datos de manera estructurada, con la
menor redundancia posible. Diferentes programas y diferentes usuarios deben poder
utilizar estos datos. Por lo tanto, el concepto de base de datos generalmente est
relacionado con el de red ya que se debe poder compartir esta informacin. De all el
trmino base. "Sistema de informacin" es el trmino general utilizado para la
estructura global que incluye todos los mecanismos para compartir datos que se han
instalado.


SQL
Es un sistema para la gestin de bases de datos producido por Microsoft basado en el
modelo relacional. Sus lenguajes para consultas son T-SQL y ANSI SQL. Microsoft
SQL Server constituye la alternativa de Microsoft a otros potentes sistemas gestores de
bases de datos como son Oracle, PostgreSQL o MySQL
Comandos
Existen dos tipos de comandos SQL:
DLL que permiten crear y definir nuevas bases de datos, campos e ndices.
DML que permiten generar consultas para ordenar, filtrar y extraer datos de la base de
datos.
Comandos DLL
Comando Descripcin
CREATE Utilizado para crear nuevas tablas, campos e ndices
DROP Empleado para eliminar tablas e ndices
ALTER
Utilizado para modificar las tablas agregando campos o cambiando la
definicin de los campos.
Comandos DML
Comando Descripcin
SELECT
Utilizado para consultar registros de la base de datos que satisfagan un
criterio determinado
INSERT
Utilizado para cargar lotes de datos en la base de datos en una nica
operacin.
UPDATE
Utilizado para modificar los valores de los campos y registros
especificados
DELETE Utilizado para eliminar registros de una tabla de una base de datos
.
PL/SQL
Es el lenguaje de programacin que proporciona Oracle para extender el SQL estndar
con otro tipo de instrucciones y elementos propios de los lenguajes de programacin.
Puede combinar las consultas SQL y las instrucciones de procedimientos (condicional y
procesamiento iterativo) para crear un tratamiento complejo y ser almacenados en
la base de datos.
Para programar en PL/SQL es necesario conocer sus fundamentos.
Como introduccin vamos a ver algunos elementos y conceptos bsicos del lenguaje.
PL/SQL no es CASE-SENSITIVE, es decir, no diferencia maysculas de minsculas
como otros lenguajes de programacin como C o Java. Sin embargo debemos
recordar que ORACLE es CASE-SENSITIVE en la bsquedas de texto.
Una lnea en PL/SQL contiene grupos de caracteres conocidos como UNIDADES
LEXICAS, que pueden ser clasificadas como:
Delimitadores
Identificadores
Literales
Comentarios
Expresiones
DELIMITADOR: Es un smbolo simple o compuesto que tiene una funcin especial
en PL/SQL. Estos pueden ser:
Operadores Aritmticos
Operadores Lgicos
Operadores Relacionales
IDENTIFICADOR: Son empleados para nombrar objetos de programas en PL/SQL
as como a unidades dentro del mismo, estas unidades y objetos incluyen:
Constantes
Cursores
Variables
Subprogramas
Excepciones
Paquetes
LITERAL: Es un valor de tipo numrico, carcter, cadena o lgico no representado
por un identificador (es un valor explcito).
COMENTARIO: Es una aclaracin que el programador incluye en el cdigo. Son
soportados 2 estilos de comentarios, el de lnea simple y de multilnea, para lo cual son
empleados ciertos caracteres especiales como son:

-- Lnea simple


/*
Conjunto de Lneas
*/

Tipos de datos en PL/SQL
Cada constante y variable tiene un tipo de dato en el cual se especifica el formato de
almacenamiento, restricciones y rango de valores validos.
PL/SQL proporciona una variedad predefinida de tipos de datos. Casi todos los tipos de
datos manejados por PL/SQL son similares a los soportados por SQL. A continuacin
se muestran los TIPOS de DATOS ms comunes:
NUMBER (Numrico): Almacena nmeros enteros o de punto flotante, virtualmente de
cualquier longitud, aunque puede ser especificada la precisin (Nmero de digitos) y la
escala que es la que determina el nmero de decimales.
-- NUMBER [(precisin, escala)]
Saldo NUMBER(16,2);
/* Indica que puede almacenar un valor numrico de 16
posiciones, 2 de ellas decimales. Es decir, 14 enteros
y dos decimales */
CHAR (Caracter): Almacena datos de tipo caracter con una longitud mxima de 32767
y cuyo valor de longitud por default es 1


-- CHAR [(longitud_maxima)]
nombre CHAR(20);
/* Indica que puede almacenar valores alfanumricos de 20
posiciones */
VARCHAR2 (Caracter de longitud variable): Almacena datos de tipo caracter
empleando slo la cantidad necesaria an cuando la longitud mxima sea mayor.


-- VARCHAR2 (longitud_maxima)
nombre VARCHAR2(20);
/* Indica que puede almacenar valores alfanumricos de hasta 20
posiciones */
/* Cuando la longitud de los datos sea menor de 20 no se
rellena con blancos */
BOOLEAN (lgico): Se emplea para almacenar valores TRUE o FALSE.

hay_error BOOLEAN;
DATE (Fecha): Almacena datos de tipo fecha. Las fechas se almacenan internamente
como datos numricos, por lo que es posible realizar operaciones aritmticas con ellas.
Atributos de tipo. Un atributo de tipo PL/SQL es un modificador que puede ser usado
para obtener informacin de un objeto de la base de datos. El atributo %TYPE permite
conocer el tipo de una variable, constante o campo de la base de datos. El atributo
%ROWTYPE permite obtener los tipos de todos los campos de una tabla de la base de
datos, de una vista o de un cursor.
PL/SQL tambin permite la creacin de tipos personalizados (registros) y colecciones
(tablas de PL/SQL), que veremos en sus apartados correspondientes.
Existen por supuesto ms tipos de datos, la siguiente tabla los muestra:
TIPOS DE RESTRICCIONES
NOT NULL
Obliga a que la columna tenga un valor no nulo. Los valores nulos son diferentes de 0 y
el espacio en blanco.
UNIQUE
Evita valores repetidos en una columna, admitiendo valores nulos.
CHECK
Verifica que se cumpla una condicin especifica
DEFAULT
Estable un valor por defecto para esta columna, si no se le asigna ninguno.
PRIMARY KEY
Una clave primaria identifica de forma nica a un registro de una tabla. Establece
columna o conjunto de columnas que hacen parte de la clave primaria. Solo puede
existir una clave primaria por tabla. Puede ser referenciada como clave fornea por otras
tablas.
FOREIGN KEY
Es una restriccin que hace referencia a una clave en otra tabla, a menudo
una clave primaria. Establece que el contenido de esta columna ser uno de los valores
contenidos en una columna de otra tabla o de la misma. Se usa claves forneas para
vincular mltiples tablas, como una tabla de clientes y una tabla que liste los artculos
comprados por cada cliente.


CURSORES
CURSORES
El rea de contexto es la memoria designada para procesar una instruccin SQL, la cual
incluye
el nmero de registros procesados,
un apuntador a la representacin de la instruccin SQL analizada y,
en el caso de una consulta, el conjunto de registros que regresan de la consulta.
Un cursor es un manejador o apuntador para el rea de contexto. Por medio de ste un
programa PL/SQL puede controlar el rea de contexto.
Los cursores implcitos son creados por Oracle para manejar alguna instruccin SQL y
no son declarados por el programador.
Los cursores explcitos son aquellos qwe se declaran, generalmente por medio de una
consulta SQL.
Pasos para procesar un cursor explcito
1. Declaracin del cursor
o La consulta no debe contener la clusula INTO.
o Se puede hacer referencia a variables dentro de la clusula WHERE.
CURSOR nombre_cursor IS
instruccin_SELECT

o Tambin es posible declarar una lista de parmetros:
CURSOR nombre_cursor(param1 tipo1, ..., paramN tipoN) IS
instruccin_SELECT


9. Abrir el cursor
o La sintaxis es:
OPEN nombre_cursor;
o Se examinan los valores de las variables
o Se determina el conjunto activo
o El apuntador para el conjunto activo se establece en el primer registro
10. Recuperar los resultados en variables PL/SQL
o Tiene dos formas:
FETCH cursor_name INTO lista_variables;
o
FECTH cursor_name INTO registro_PL/SQL;
11. Cerrar el cursor
o La sintaxis es:
CLOSE nombre_cursor;
o Cuando se cierra el cursor, es ilegal tratar de usarlo
o Es ilegal tratar de cerrar un cursor que ya est cerrado o no ha sido
abierto
PL/SQL utiliza cursores para gestionar las instrucciones SELECT. Un cursor es un
conjunto de registros devuelto por una instruccin SQL. Tcnicamente los cursores son
fragmentos de memoria que reservados para procesar los resultados de una
consulta SELECT que devuelvan ms de una fila.
TIPOS DE CURSORES
Cursores implcitos. Este tipo de cursores se utiliza para operaciones SELECT
INTO. Se usan cuando la consulta devuelve un nico registro.
Cursores explcitos. Son declarados y controlados por el programador. Se utilizan
cuando la consulta devuelve un conjunto de registros. Se utilizan en consultas que
devuelven un nico registro por razones de eficiencia.
Un cursor se define como cualquier otra variable de PL/SQL y debe nombrarse de
acuerdo a los mismos convenios que cualquier otra variable. Los cursores implcitos no
necesitan declaracin.
Un cursor admite el uso de parmetros. Los parmetros deben declararse junto con el
cursor.
El siguiente ejemplo muestra la declaracin de un cursor con un parmetro, identificado
por p_continente.

declare
cursor c_paises (p_continente INVARCHAR2) is
SELECT CO_PAIS, DESCRIPCION
FROM PAISES
WHERE CONTINENTE = p_continente;
begin
/* Sentencias del bloque ...*/
end;
El siguiente diagrama representa como se procesa una instruccin SQL a travs de un
cursor.


SINTAXIS:
CURSOR nombre_cursor IS sentencia_SELECT;
El nombre del cursor es un identificador PL/SQL, y ha de ser declarado en la seccin
declarativa del bloque antes de poder hacer referencia a l.
APERTURA DE UN CURSOR
OPEN nombre_cursor;
EJEMPLO:


La clusula INTO de la consulta es parte de la orden FETCH. Dicha orden tiene dos
formas posibles:
FETCH nombre_cursor INTO lista_variables;
FETCH nombre_cursor INTO registro_PL/SQL;
Nombre_cursor:Identifica a un cursor abierto y ya declarado.
Lista_variables: Es una lista de variables PL/SQL previamente declaradas y separadas
por comas.
Registro_PL/SQL:Es un registro PL/SQL previamente declarado.
En ambos casos, la variable o variablesde la clusula INTO deben ser compatibles en
cuanto a tipocon la lista de seleccin de la consulta.
Despus de cada FETCH, se incrementa el puntero activo, para que apunte a la
siguiente fila. De esta forma, cada FETCH devolver filas sucesivas del conjunto activo,
hasta que se devuelve el conjunto completo.
Cuando se ha terminado de extraer el conjunto activo, debe cerrarse el cursor.
Esta accin informa a PL/SQL de que el programa ha terminado de utilizar el cursor, y
de que se pueden liberar los recursos con l asociados. Estos recursos incluyen las reas
de almacenamiento empleadas para contener el conjunto activo, as como cualquier
espacio temporal utilizado en la determinacin de dicho conjunto.
La sintaxis para el cierre del cursor es:
CLOSE nombre_cursor;
CREACIN DE UN PROCEDIMIENTO ALMACENADO
Un procedimiento PL/SQL es similar a los procedimientos de otros lenguajes de
programacin. Es un bloque con nombre que tiene la misma estructura que los bloques
annimos.
La sintaxis es:

CREACIN DE UN PROCEDIMIENTO
nombre_procedimiento: Nombre del procedimiento que se quiere crear
Argumento: Nombre de un parmetro del procedimiento
Tipo: Tipo del parmetro asociado
Cuerpo_procedimiento: Bloque PL/SQL que contiene el cdigo del procedimiento
tipodatos_parametro indica el tipo de datos que tendr el parmetro segn lo indicado
en Tipos de datos Oracle/PLSQL.
El uso deOR REPLACEpermite sobreescribir un procedimiento existente. Si se omite,
y el procedimiento existe, se producir, un error.
LOS PARMETROS FORMALES: IN, OUT O IN OUT.
IN indica que el parmetro es de entrada y no se podr modificar.
OUT indica que el parmetro es de salida con lo que el procedimiento devolver un
valor en l.
IN OUT indica que el parmetro es de entrada/salida. Con lo que al llamar al
procedimiento se le dar un valor que luego podr ser modificado por el procedimiento
y devolver este nuevo valor.
TIPOS DE PROCEDIMIENTOS
INSERTAR

ACTUALIZAR

ELIMINAR

BUSCAR




INDICES
Los ndices en SQL almacenan valores y punteros a las filas donde los valores se
producen.
Ejemplo
SELECT stock, precio
FROM producto
WHERE nombre = ' ESCOBAS' ;
La sentencia no dice si existe ndice sobre la columna nombre y la consulta se llevara a
cabo, exista ndice o no. Si no existe, hay que recorrer secuencialmente la tabla
producto fila por fila. Si Existe examina el ndice y sigue al puntero para encontrar la(s)
fila(s).
La bsqueda en ndices es muy rpida, pasar del ndice a la fila, tambin es muy rpido
ya que el ndice informa al DBMS en qu lugar del disco est localizada la fila. Tiene la
desventaja de que ocupa espacio adicional y que existirn tiempos adicionales en las
operaciones INSERT y UPDATE.
Sintaxis:
CREATE UNIQUE INDEX nombre-indice
ON nombre-tabla (nombre-columna(s);
CREATE UNIQUE INDEX indice1
ON producto (nombre)
Para borrar un ndice:
DROP INDEX nombre-indice
DROP INDEX indice1
VISTAS
Una vista es una consulta que esta permanentemente almacenada en la base de datos y a
la que se le asigna un nombre. Es como una tabla virtual. No puede ser modificada,
gasta espacio pero es muy veloz para consultas y se actualiza automticamente.
Sintaxis:
CREATE VIEW nombre-vista AS
SELECT {* | {nombre-columna(s),}
FROM {nombre-tabla(s),}
[WHERE condicin]
[ORDER BY {expresion | nombre-columna [ASC | DESC]}];
CREATE VIEW vista 1 AS
SELECT codpro, nombre, cantidad, valor
FROM pedido, producto
WHERE pedido.codpro = producto.codpro;
Para eliminar una vista se utiliza la sentencia:
DROP VIEW nombre-vista;
INFORMES CON SQL
SQL se puede crear la estructura de la base de datos, se pueden actualizar estos, pero la
herramienta ms poderosa es para crear informes refinados, rpidos y bien formateados.
Permitiendo un manejo sencillo sobre los ttulos, cabeceras de columnas, subtotales y
totales. Es el uso ms comn de SQL, consultas e impresin de informes.
PRINCIPALES COMANDOS
REMARK: Comentarios. Se puede abreviar a REM
SET HEADSEP <carcter>: Indica cual es el carcter utilizado para partir un ttulo en
2 o ms lneas.
TTITLE: Ttulo superior
BTITLE: Titulo inferior
COLUMN: Columnas del informe
BREAK ON: Donde imprimir subtotales o totales
COMPUTE SUM: Hace que SQL calcule totales
SET LINE SIZE: Caracteres por lnea
SET PAGE SIZE: Lneas por pagina
SPOOL: Re direcciona el informe para un archivo.

/* Comentarios entre varias lneas */

Ejemplo:
REM Programa ejemplo de informe con SQL
REM Descripcin : Informe de ventas por articulo.
SET HEADSEP !
TTITLE ' INFORME DE VENTAS DETALLADO ! POR ARTICULO '
BTTILE ' COMPAA XYZ '
COLUMN nombre HEADING ' Nombre ! Producto ' format a18 word -
wrapped siga en la siguiente lnea
COLUMN cantidad HEADING ' Unidades '
COLUMN valor HEADING ' Valor ! Venta '
BREAK ON nompro SKIP 2 salte 2 lneas antes de imprimir subtotales
COMPUTE SUM OF valor ON nompro
SET LINESIZE 80
SET PAGESIZE 50
SPOOL informe.lst el informe es guardado en un archivo llamado informe.lst
SELECT nombre, cantidad, valor
FROM pedido, producto
WHERE pedido.codpro = producto.codpro
ORDER BY nompro;
Generar una base de datos que permita mostrar las notas de los alumnos por medio del
numero de cedula del alumno, se muestra las materias que imparte el profesor y
visualizar las materias que se encuentre inscrito el alumno
MODELO IDENTIDAD RELACION







DIAGRAMA RELACIONAL ENTRE TABLAS


CRACION DE LA BASE DE DATOS CODIGO
CREATE DATABASE REGISTRO
USE REGISTRO
GO
CREATE TABLE ALUMNO (
CIALU NVARCHAR(10)PRIMARY KEY,
NOMALU NVARCHAR(70) NOT NULL,
APEALU NVARCHAR(70) NOT NULL,
DIRALU NVARCHAR(100) NOT NULL,
TELALU NVARCHAR(10) NOT NULL,
CELALU NVARCHAR(10) NOT NULL,
EMAILALU NVARCHAR(50) NOT NULL,
REPRESENTANTEALU NVARCHAR(50) NOT NULL,
SEXOALU NVARCHAR(50) NOT NULL,
CODICAR NVARCHAR(6)FOREIGN KEY (CODICAR) REFERENCES CARRERA
(CODCAR))
GO
CREATE TABLE PROFESOR (
CIPRO NVARCHAR(10)PRIMARY KEY,
NOMPRO NVARCHAR(70) NOT NULL,
APEPRO NVARCHAR(70) NOT NULL,
DIRPRO NVARCHAR(100) NOT NULL,
TELPRO NVARCHAR(10) NOT NULL,
CELPRO NVARCHAR(10) NOT NULL,
EMAILPRO NVARCHAR(50) NOT NULL,
TITULOSPRO NVARCHAR(50) NOT NULL,
CODCAR NVARCHAR(6)FOREIGN KEY (CODCAR) REFERENCES CARRERA
(CODCAR))
GO
CREATE TABLE CARRERA (
CODCAR NVARCHAR(6)PRIMARY KEY,
NOMCAR NVARCHAR(70) NOT NULL,
DESCRIPCIONCAR NVARCHAR(100) NOT NULL)
GO
CREATE TABLE NIVEL (
CODNIV NVARCHAR(6)PRIMARY KEY,
NOMNIV NVARCHAR(70) NOT NULL,
DESCRIPCIONNIV NVARCHAR(100) NOT NULL,
CODICAR NVARCHAR(7)FOREIGN KEY (CODICAR) REFERENCES CARRERA
(CODCAR))
GO
CREATE TABLE NOTAS(
CODNOT NVARCHAR (6)NOT NULL,
NOTA1 NVARCHAR (10) NOT NULL,
NOTA2 NVARCHAR (10) NOT NULL,
NOTAFINAL NVARCHAR (10) NOT NULL,
CODIMAT NVARCHAR(7)FOREIGN KEY (CODIMAT) REFERENCES MATERIA
(CODMAT))
GO
CREATE TABLE MATERIA(
CODMAT NVARCHAR (7) PRIMARY KEY ,
NOMMAT NVARCHAR(70) NOT NULL,
CREDITOSMAT NVARCHAR(10) NOT NULL,
FECINICIO DATETIME,
FECFINAL DATETIME,
CODALU NVARCHAR(10)FOREIGN KEY (CODALU) REFERENCES ALUMNO
(CIALU),
CODPRO NVARCHAR(10)FOREIGN KEY (CODPRO) REFERENCES PROFESOR
(CIPRO),
CODINIV NVARCHAR(6)FOREIGN KEY (CODINIV) REFERENCES NIVEL
(CODNIV))

POCEDIMIENTOS ALAMACENADOS
ELIMINAR
CREATE PROCEDURE [dbo].[ELIMINAR_ALU]
@CIALU NVARCHAR (10)
AS
DELETE FROM ALUMNO WHERE CIALU=@CIALU

INSERTAR

CREATE PROCEDURE [dbo].[INGRESAR_ALU]

@CIALU nvarchar(10),
@NOMALU nvarchar(70),
@APEALU nvarchar(70),
@DIRALU nvarchar(100),
@TELALU nvarchar(10),
@CELALU nvarchar(10),
@EMAILALU nvarchar(50),
@REPRESENTANTEALU nvarchar(50),
@SEXOALU nvarchar(50)
AS

BEGIN
INSERT INTO
ALUMNO(CIALU,NOMALU,APEALU,DIRALU,TELALU,CELALU,EMAILALU,R
EPRESENTANTEALU,SEXOALU)
VALUES
(@CIALU,@NOMALU,@APEALU,@DIRALU,@TELALU,@CELALU,@EMAILA
LU,@REPRESENTANTEALU,@SEXOALU)
print 'REGISTROS INGRESADOS EXITOSAMENTE'
END
EXECUTE INGRESAR_ALU
'1726032699','TATIANA','SANGOLUISA','GUAMANI','3006708','0984084873','TATI
ANAS2023@HOTMAIL.COM','KARLA','FEMENINO'

MODIFICAR

CREATE PROCEDURE [DBO].[ACTUALIZAR_ALU]

@CIALU NVARCHAR(10),
@NOMALU NVARCHAR(70),
@APEALU NVARCHAR(70),
@DIRALU NVARCHAR(100),
@TELALU NVARCHAR(10),
@CELALU NVARCHAR(10),
@EMAILALU NVARCHAR(50),
@REPRESENTANTEALU NVARCHAR(50),
@SEXOALU NVARCHAR(50)
AS
BEGIN
IF EXISTS (SELECT * FROM ALUMNO WHERE CIALU=@CIALU)
BEGIN
UPDATE ALUMNO SET
NOMALU=@NOMALU,
APEALU=@APEALU,
DIRALU=@DIRALU,
TELALU=@TELALU,
CELALU=@CELALU,
EMAILALU=@EMAILALU,
REPRESENTANTEALU=@REPRESENTANTEALU,
SEXOALU=@SEXOALU
WHERE CIALU=@CIALU
PRINT'REGISTRO ACTUALIZADO CORRECTAMENTE'
END
BUSCAR

CREATE PROCEDURE [dbo].[BUSCAR_ALU]
AS
SELECT *FROM PROFESOR
ORDER BY NOMPRO
EXEC BUSCAR_ALU
INDICES

VISTAS
CREATE VIEW VIPROFESOR
AS
SELECT CIPRO,NOMPRO,APEPRO,DIRPRO,TELPRO FROM PROFESOR
SELECT *FROM VIPROFESOR
CURSORES
DECLARE @CIPRO INT
DECLARE @NOMPRO VARCHAR(70)
DECLARE @APEPRO VARCHAR(70)

DECLARE CURSOR1 SCROLL CURSOR FOR
SELECT CIPRO, NOMPRO, APEPRO
FROM PROFESOR

OPEN CURSOR1
FETCH NEXT FROM CURSOR1 INTO @CIPRO
,@NOMPRO
,@APEPRO
WHILE @@FETCH_STATUS = 0
BEGIN
UPDATE PROFESOR
SET EMAILPRO =
LOWER(SUBSTRING(@NOMPRO,1,1)+@APEPRO+'@MIBASE.COM')
WHERE CIPRO = @CIPRO

FETCH NEXT FROM CURSOR1 INTO @CIPRO
,@NOMPRO
,@APEPRO
END
CLOSE CURSOR1
DEALLOCATE CURSOR1


CONCLUSIONES
Es necesario realizar el modelo identidad relacin para saber que es lo necesario
o que es lo que el cliente necesita.
Hay que plantear cuales son las clases y los atributos para poder identificar las
claves primarias y las claves forneas que hay en una base de datos
Se necesita realizar el diagrama para saber si las relaciones estn realizadas
correctamente para poder implementar los datos en cada tabla.
Los procedimientos se cra de acuerdo a los requerimientos del cliente.
Los ndices en pl/sql se crean automticamente al momento de crear cada tabla
en el proceso.

RECOMENDACIONES
En necesario tener los programas adecuados para generar una base de datos.








WEBGRAFIA

http://es.wikipedia.org/wiki/Base_de_datos
http://es.kioskea.net/contents/66-introduccion-bases-de-datos
http://personal.lobocom.es/claudio/sql001.htm
http://basdatos.tripod.com/SQL.html
http://personales.unican.es/zorrillm/BDAvanzadas/Practicas/belen_plsql.pdf
http://www.devjoker.com/contenidos/catss/32/Cursores-en-PLSQL.aspx
http://www.slideshare.net/josemiguelguerreromontero/sql-
procedimientosalmacenados
http://es.scribd.com/doc/3589792/Manual-De-Oracle-Y-Pl-Sql
http://www.slideshare.net/josemiguelguerreromontero/sql-
procedimientosalmacenados

Vous aimerez peut-être aussi