Talleres BD1

  • View
    225

  • Download
    1

Embed Size (px)

DESCRIPTION

DB, Ejercicios BD

Text of Talleres BD1

  • Talleres del Curso BDI

    Carlos Alberto Olarte (carlosolarte@puj.edu.co)

    Enero 2003

  • Indice general

    1. Introduccion 5

    2. SQL+ y la Consola de Comandos 62.1. Ingreso a SQL+ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6

    2.1.1. Login y Password . . . . . . . . . . . . . . . . . . . . . . . . . . 62.1.2. String de Conexion . . . . . . . . . . . . . . . . . . . . . . . . . 62.1.3. Ingreso a SQL+ desde Windows . . . . . . . . . . . . . . . . . . 62.1.4. Ingreso a SQL+ desde Linux . . . . . . . . . . . . . . . . . . . . 72.1.5. Cambio de Password . . . . . . . . . . . . . . . . . . . . . . . . 7

    2.2. Ejecucion de Comandos . . . . . . . . . . . . . . . . . . . . . . . . . . 82.2.1. Buffer SQL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82.2.2. Utilidades de edicion . . . . . . . . . . . . . . . . . . . . . . . . 82.2.3. Almacenamiento del Buffer . . . . . . . . . . . . . . . . . . . . . 8

    2.3. Archivos SQL (Scripts) . . . . . . . . . . . . . . . . . . . . . . . . . . . 92.4. Comandos Interactivos . . . . . . . . . . . . . . . . . . . . . . . . . . . 9

    3. Insercion, eliminacion y modificacion de registros 113.1. INSERT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113.2. DELETE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123.3. Actualizacion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123.4. Practica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12

    4. Modelado de Bases de Datos 144.1. Descripcion del problema . . . . . . . . . . . . . . . . . . . . . . . . . . 144.2. Practica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14

    4.2.1. Modelo E/R . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144.2.2. DSD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 154.2.3. Script . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15

    5. Scripts de Tablas 165.1. Creacion de Tablas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 165.2. Adicion de llaves primarias . . . . . . . . . . . . . . . . . . . . . . . . . 165.3. Adicion de llaves foraneas . . . . . . . . . . . . . . . . . . . . . . . . . 175.4. Adicion de Restricciones . . . . . . . . . . . . . . . . . . . . . . . . . . 17

    5.4.1. Valor unico . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17

    1

  • INDICE GENERAL 2

    5.4.2. Validaciones de Entrada . . . . . . . . . . . . . . . . . . . . . . 175.5. Practica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17

    6. Creacion de Tipos de Datos en Oracle 196.1. Introduccion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 196.2. Creacion de Tipos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 196.3. Eliminacion de Tipos . . . . . . . . . . . . . . . . . . . . . . . . . . . . 206.4. Creacion de Tablas de Objetos . . . . . . . . . . . . . . . . . . . . . . . 206.5. Composicion de Objetos . . . . . . . . . . . . . . . . . . . . . . . . . . 206.6. Creacion de Tablas Anidadas . . . . . . . . . . . . . . . . . . . . . . . 216.7. Operador THE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 236.8. Referencia a Objetos . . . . . . . . . . . . . . . . . . . . . . . . . . . . 236.9. Practica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25

    7. Introduccion a PL/SQL y Cursores 267.1. Bloques en PL/SQL . . . . . . . . . . . . . . . . . . . . . . . . . . . . 267.2. Estructuras de Control . . . . . . . . . . . . . . . . . . . . . . . . . . . 26

    7.2.1. Condicional . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 267.2.2. Ciclos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27

    7.3. Tipos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 287.3.1. Registros (Estructuras) . . . . . . . . . . . . . . . . . . . . . . . 28

    7.4. Cursores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 297.4.1. Cursores Parametrizables . . . . . . . . . . . . . . . . . . . . . . 30

    7.5. Practica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31

    8. Funciones y Procedimientos en PL/SQL 328.1. Creacion de un Procedimiento . . . . . . . . . . . . . . . . . . . . . . . 32

    8.1.1. Or Replace . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 328.1.2. Argumentos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 328.1.3. Ejemplo 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 348.1.4. Eliminacion de Procedimientos . . . . . . . . . . . . . . . . . . 35

    8.2. Funciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 358.2.1. Ejemplo 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35

    8.3. Diccionario de Datos . . . . . . . . . . . . . . . . . . . . . . . . . . . . 368.4. Practica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36

    9. Paquetes en PL/SQL 389.1. Introduccion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 389.2. Especificacion de un Paquete . . . . . . . . . . . . . . . . . . . . . . . . 38

    9.2.1. Sobrecarga de funciones . . . . . . . . . . . . . . . . . . . . . . 389.3. Cuerpo del Paquete . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 399.4. Invocacion de los elementos de los paquetes . . . . . . . . . . . . . . . . 399.5. Inicializacion de un Paquete . . . . . . . . . . . . . . . . . . . . . . . . 399.6. Ejemplo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 409.7. Practica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42

  • INDICE GENERAL 3

    10.Triggers (Disparadores) 4410.1. Introduccion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4410.2. Creacion de Triggers . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4410.3. Restricciones de los disparadores . . . . . . . . . . . . . . . . . . . . . . 4510.4. Eliminacion y desactivacion de triggers . . . . . . . . . . . . . . . . . . 4510.5. Ejemplo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46

    10.5.1. Predicados de los disparadores . . . . . . . . . . . . . . . . . . . 4610.5.2. Pseudo-Variables :NEW y :OLD . . . . . . . . . . . . . . . . . . 47

    10.6. Practica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47

    11.Manejo de Errores 4811.1. Declaracion de Excepciones . . . . . . . . . . . . . . . . . . . . . . . . 48

    11.1.1. Excepciones predefinidas en Oracle . . . . . . . . . . . . . . . . 4911.2. Captura de Excepciones . . . . . . . . . . . . . . . . . . . . . . . . . . 4911.3. Lanzamiento de Excepciones . . . . . . . . . . . . . . . . . . . . . . . . 5011.4. SQLERRM, SQLCODE . . . . . . . . . . . . . . . . . . . . . . . . . . 5011.5. Ambito de las Excepciones . . . . . . . . . . . . . . . . . . . . . . . . . 5111.6. Practicas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51

    12.Temas adicionales SQL 5212.1. Vistas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5212.2. Sinonimos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5312.3. Indices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5312.4. Secuencias . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53

    13.Consultas 5513.1. Creacion de Tablas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5513.2. Inserciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5613.3. Consultas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57

  • Indice de figuras

    5.1. E/R Telefona Celular . . . . . . . . . . . . . . . . . . . . . . . . . . . 18

    4

  • Captulo 1

    Introduccion

    El siguiente documento presenta una serie de talleres que se deben realizar duranteel curso de Bases de Datos I, con el fin de fortalecer la teora vista en clase y adquirirhabilidades en el uso de SQL para crear (DDL) y manipular (DML) bases de datosrelacionales. Adicionalmente se presentan algunos temas de PL/SQL para que el es-tudiante implemente funciones, procedimientos, triggers, etc sobre una base de datosORACLE como un acercamiento a los diferentes lenguajes que existen en el mercadopara la programacion en Bases de Datos.

    5

  • Captulo 2

    SQL+ y la Consola de Comandos

    Este taller pretende familiarizar al estudiante con el uso de la consola de comandosSQL*PLUS de Oracle as como con sus facilidades para dar formato a las consultasejecutadas.

    2.1. Ingreso a SQL+

    El ingreso a SQL+ se lleva a cabo de acuerdo al sistema operativo sobre el cual sehaya instalado el cliente para acceder a la base de datos. Normalmente en los clientesWindows, existe un Item del menu con el Nombre SQL PLUS. En los clientes Unix, sedebe digitar el comando sqlplus.

    2.1.1. Login y Password

    El login y password se refieren a los usuarios creados en el servidor de la base dedatos.

    2.1.2. String de Conexion

    Se refiere al nombre asignado en la configuracion de conexion a la base de datos.Dicha conexion tiene en cuenta el servidor de la base de datos (HOST), puerto deescucha (normalmente el 1521) y el nombre de la instancia de Oracle (SID).

    2.1.3. Ingreso a SQL+ desde Windows

    En las salas de la Universidad, se encuentra instalado las aplicaciones cliente deOracle. Para conectarse A SQL+, se buscar el icono en el menu de inicio. El login ypassword se asignan al principio del semestre por estudiante. El String de Conexion esacademico para acceder a la Base de Datos destinada para el uso de estudiantes en elCSI 1.

    1Centro de Servicios Informaticos

    6

  • CAPITULO 2. SQL+ Y LA CONSOLA DE COMANDOS 7

    2