23m

22
 MANUAL DE  PLAN ISIC-2010- INGENIERÍA EN SISTEMAS  FUNDAMENTOS DE BASES DE DATOS AEF-1031 Índice

description

jjj

Transcript of 23m

Manual de Prcticas

Taller de Bases de Datos [SCA-1025]

FUNDAMENTOS DE BASES DE DATOS

AEF-1031

Manual de Prcticas

PLAN ISIC-2010-224Ingeniera en Sistemas Computacionales ndice

INTRODUCCIN1

PRCTICA 1INSTALACIN DE UN SISTEMA MANEJADOR DE BASES DE DATOS2PRCTICA 2DISEO DE UN MODELO ENTIDAD RELACIN4PRCTICA 3DISEO DE UN ESQUEMA RELACIONAL6PRCTICA 4NORMALIZACIN DE LA BASE DE DATOS8PRCTICA 5USO DE OPERADORES RELACIONALES DEL ALGEBRA RELACIONAL10PRCTICA 6USO DEL LENGUAJE SQL13PRCTICA 7CREACIN DE UNA BASE DE DATOS ORIENTADA A OBJETOS17

LISTA DE MATERIAL, EQUIPO O REACTIVO A UTILIZAR25LISTA DE BIBLIOGRAFA REQUERIDA25

CONTROL DE CAMBIOS DEL MANUAL DE PRCTICAS26

INTRODUCCIN

El presente documento tiene el objetivo de guiar el desarrollo de actividades de prcticas de laboratorio para la materia de Fundamentos de bases de datos, con ejemplos prcticos y orientados al desarrollo de un proyecto final de la misma asignatura.

En las primeras prcticas se empieza con la instalacin de un sistema manejador de bases de datos, que nos posibilita la creacin, empleo y mantenimiento de una base de datos. Asi como la creacin de un modelo entidad relacin con los datos de una empresa real, misma que se puede utilizar para el desarrollo de un proyecto de la asignatura.

Este proyecto planteado, puede ser el mismo para crear un modelo relacional y poder realizar distintas operaciones con este, adems de los ejercicios propuestos.

Por el ltimo crear sentencias en lenguaje SQL, para poder desarrollar todas las actividades dentro del sistema manejador de bases de datos.

Prctica1

INSTALACIN DE UN SISTEMA MANEJADOR DE BASES DE DATOS.

Observaciones Esta prctica no est en las prcticas propuestas, sin embargo se propone para realizarla en la unidad 1.

1.- OBJETIVOInstalar un sistema manejador de bases de datos con el objetivo de manejar la creacin y todos los accesos a las bases de datos.

2.- MARCO TERICOSGBD SMBD: Conjunto de programas que controla todo el acceso a la Base de Datos , y proporciona la interfaz entre el usuario y el sistema de Base de Datos.Base de Datos: Es una coleccin de archivos interrelacionados, creados con un SGBD. El contenido de una Base de Datos engloba la informacin concerniente (almacenadas en archivos) de una organizacin, de tal manera que los datos estn disponibles para los usuarios, una finalidad de la base de datos es eliminar la redundancia o al menos minimizarla.Server2Go. Servidor portable para el desarrollo de aplicaciones que incluye entre otros MySQL, Apache, PHP, etc.

3.- MATERIAL, EQUIPO, REACTIVO o SOTFWARE A UTILIZAR1. Computadora personal o Laptop1. Sistema Operativo1. Procesador de Textos

4.- COMPETENCIAS ESPECFICASI. Investigar 2 sistemas manejadores de bases de datosII. Realizar un cuadro comparativo de los sistemas manejadores de bases de datosIII. Seleccionar un sistema manejador de bases de datos investigadoIV. Realizar la instalacin del sistema manejador de bases de datos seleccionadoV. Realizar un reporte de los pasos para la instalacin del sistema manejador de bases de datos

5. RESULTADOSDocumentar la instalacin y configuracin del SGBD instalado.

6. CONCLUSIONESAl concluir esta prctica el alumno habr realizado la descarga, instalacin y configuracin del servidor portable u otro SGBD comercial.7.- BIBLIOGRAFA Silberschatz, Abraham. Fundamentos de Base de Datos. Ed. Mc Graw Hill. http://postgresql.com http://www.mysql.com www.server2go.com

Prctica2

DISEO DE UN MODELO ENTIDAD RELACIN.

Observaciones: Esta prctica incluye a las Prctica # 1 del temario de Fundamentos de Base de Datos que indica El estudiante realizar el modelo entidad relacin de una base de datos de una empresa.

1.- OBJETIVORealizar el modelo entidad relacin de una base de datos de una empresa.

2.- MARCO TEORICOEl modelo entidad relacin es un modelo de datos basado en una percepcin del mundo real que consiste en un conjunto de objetos bsicos llamados entidades y relaciones entre estos objetos, implementndose en forma grfica a travs de Diagramas entidad relacin.

Se habla de ejemplares cuando nos referimos a una clase de objetos con caractersticas similares.

Se puede definir como entidad a cualquier objeto, real o abstracto, que existe en un contexto determinado a puede llegar a existir y del cual deseamos guardar informacin.

Los atributos son caractersticas o propiedades asociadas a la entidad que toman valor en una instancia particular. Ejemplo: nombre, cdula, telfono.

3.- MATERIAL, EQUIPO, REACTIVO o SOTFWARE A UTILIZAR1. Computadora personal o Laptop1. Sistema Operativo1. Procesador de Textos

4.- COMPETENCIAS ESPECFICASI. Organizar por equipos a los alumnos (2 integrantes mximo).II. Identificar los datos que se registran en una organizacin realIII. Realizar una descripcin del proceso del almacenamiento de los datosIV. Realizar el modelo entidad relacin de los datos

5. RESULTADOS

6. CONCLUSIONESAl concluir esta prctica el alumno realizado un anlisis del manejo de informacin en una organizacin y deber de haber realizado un modelo entidad relacin de los mismos

7.- BIBLIOGRAFA Silberschatz, Abraham. Fundamentos de Base de Datos. Ed. Mc Graw Hill. De Miguel, Santa Maria Adoracin y Piattini, Mario. Fundamentos y modelos de Base de datos. 2. Ed. Alfaomega & Ra-ma.http://www.itescam.edu.mx/principal/sylabus/fpdb/recursos/r88103.PDF

Prctica3

DISEO DE UN ESQUEMA RELACIONAL

Observaciones: Esta prctica incluye a la Prctica # 2 del temario de Fundamentos de Base de Datos que indica El estudiante convertir el esquema conceptual de un modelo E-R a un esquema relacional.

1.- OBJETIVOConvertir el esquema conceptual de un modelo Entidad Relacin a un esquema relacional

2.- MARCO TEORICOEl modelo relacional constituye una alternativa para la organizacin y representacin de la informacin que se pretende almacenar en una base de datos. Se trata de un modelo terico matemtico que, adems de proporcionarnos los elementos bsicos de modelado (las relaciones), incluye un conjunto de operadores (definidos en forma de un algebra relacional) para su manipulacin, sin ambigedad posible.

El carcter formal del modelo relacional hace relativamente sencilla su representacin y gestin por medio de herramientas informticas. No es casual, pues, que haya sido elegido como referencia para la construccin de la gran mayora de los Sistemas de Gestin de Bases de Datos comerciales disponibles en el mercado; ni tampoco que sea tambin habitualmente seleccionado como modelo de referencia para la elaboracin del esquema lgico de una base de datos, como tercer paso de la habitual metodologa de diseo de BDs (despus del anlisis de requerimientos y la elaboracin del esquema conceptual). En el modelo relacional se basa en el concepto matemtico de relacin. En este modelo, la informacin se representa en forma de tablas o relaciones, donde cada fila de la tabla se interpreta como una relacin ordenada de valores (un conjunto de valores relacionados entre s). El siguiente ejemplo presenta una relacin que representa al conjunto de los departamentos de una determinada empresa, y que recoge informacin sobre los mismos.

El esquema de una relacin es una descripcin de su estructura interna (es decir, los atributos que la componen), en la forma siguiente: R (A1, ... , An) siendo R el nombre de la relacin, y A1, ... , An los nombres de sus n atributos. As, el esquema de la relacin Departamentos sera: Departamentos (Num, Nombre, Localidad)

3.- MATERIAL, EQUIPO, REACTIVO o SOTFWARE A UTILIZAR1. Computadora personal o Laptop1. Sistema Operativo1. Procesador de Textos

4.- COMPETENCIAS ESPECFICASa) Organizar por equipos a los alumnos (2 integrantes mximo).b) Representar la informacin obtenida en la prctica 2, en un esquema relacionalc) Definir el dominio del esquema relacionald) Obtener el grado del esquema relacionale) Identificar las claves candidatas de cada uno de los esquemas relacionales f) Identificar el atributo o atributos que formarn la clave primaria de la relacin

5.- RESULTADOSConstruir un modelo relacional en base a un modelo entidad relacin. 6. CONCLUSIONESAl concluir esta prctica el alumno habr realizado un modelo relacional en base a los datos de una empresa

7.- BIBLIOGRAFA Silberschatz, Abraham. Fundamentos de Base de Datos. Ed. Mc Graw Hill. Kroenke, David M. Procesamiento de Base de Datos Fundamentos, diseo e implementacin-. 8. Ed. Pearson Prentice-Hall.

Prctica4:

NORMALIZACIN DE LA BASE DE DATOS

Observaciones Esta prctica incluye a las Prcticas # 5 del temario de Fundamentos de Base de Datos que indica El estudiante normalizar un modelo de datos relacional, aplicando las diferentes formas normales.

1.- OBJETIVOAplicar las diferentes formar normales a una base de datos para obtenerla normalizada

2.- MARCO TERICOLa 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.

Otra ventaja de la normalizacin de base de datos es el consumo de espacio. Una base de datos normalizada ocupa menos espacio en disco que una no normalizada. Hay menos repeticin de datos, lo que tiene como consecuencia un mucho menor uso de espacio en disco.

En la tabla siguiente se describe brevemente en qu consiste cada una de las reglas, y posteriormente se explican con ms detalle.

3.- MATERIAL, EQUIPO, REACTIVO o SOTFWARE A UTILIZAR1. Computadora personal o Laptop1. Sistema Operativo1. Procesador de Textos

4.- COMPETENCIAS ESPECFICASa) Organizar por equipos a los alumnos (3 integrantes mximo).b) Considerar los datos de la siguiente tabla, para realizar paso por paso la normalizacin de los datos (primera, segunda y tercera forma normal)

c) Realizar la normalizacin de la base de datos creada hasta el momento, del proyecto a desarrollar en la asignatura.

5.- RESULTADOSNormalizacin de los datos del ejercicio y la normalizacin completa de la base de datos del proyecto semestral 6.- CONCLUSIONESAl concluir esta prctica el alumno comprendido las restricciones para poder tener una bases de datos normalizada.

7. BIBLIOGRAFA Silberschatz, Abraham. Fundamentos de Base de Datos. Ed. Mc Graw Hill. Kroenke, David M. Procesamiento de Base de Datos Fundamentos, diseo e implementacin-. 8. Ed. Pearson Prentice-Hall. http://www.eet2mdp.edu.ar/alumnos/MATERIAL/MATERIAL/info/infonorma.pdf

Prctica5

USO DE OPERADORES RELACIONALES DEL ALGEBRA RELACIONAL

Observaciones Esta prctica incluye a las Prcticas # 3 del temario de Fundamentos de Base de Datos que indica El estudiante aplicar los operadores relacionales del algebra relacional a bases de datos relacionales.

1.- OBJETIVOUtilizar operadores relacionales del algebra relacional para la obtencin de informacin de una base de datos

2.- MARCO TERICOElClculo Relacionales una notacin lgica, donde las consultas se expresan formulando algunas restricciones lgicas que las tuplas de la respuesta deban satisfacer.Ellgebra Relacionalfue introducida por E.F.Codd en 1972. Consiste en un conjunto de operaciones con las relaciones. SELECT (): extraetuplasa partir de una relacin que satisfagan una restriccin dada. SeaRuna tabla que contiene un atributoA. A=a(R) = {t R t(A) = a} dondetdenota una tupla deRyt(A)denota el valor del atributoAde la tuplat. PROJECT (): extraeatributos(columnas) especficos de una relacin. SeaRuna relacin que contiene un atributoX. X(R) = {t(X) t R}, dondet(X) denota el valor del atributoXde la tuplat. PRODUCT (): construye el producto cartesiano de dos relaciones. SeaRuna tabla de rango (arity)k1y seaSuna tabla con rango (arity)k2.RSes el conjunto de lask1+k2-tuplas cuyos primerosk1componentes forman una tupla enRy cuyos ltimosk2componentes forman una tupla enS. UNION (): supone la unin de la teora de conjuntos de dos tablas. Dadas las tablasRyS(y ambas deben ser del mismo rango), la uninRSes el conjunto de las tuplas que estn enRSo en las dos. INTERSECT (): Construye la interseccin de la teora de conjuntos de dos tablas. Dadas las tablasRyS,RSes el conjunto de las tuplas que estn enRy enS>. De nuevo requiere queRyStengan el mismo rango. DIFFERENCE ( or ): supone el conjunto diferencia de dos tablas. SeanRySde nuevo dos tablas con el mismo rango.R-SEs el conjunto de las tuplas que estn enRpero no enS. JOIN (): conecta dos tablas por sus atributos comunes. SeaRuna tabla con los atributosA,ByCy seaSuna tabla con los atributosC,DyE. Hay un atributo comn para ambas relaciones, el atributoC. R S = R.A,R.B,R.C,S.D,S.E(R.C=S.C(R S)). Qu estamos haciendo aqu? Primero calculamos el producto cartesianoRS. Entonces seleccionamos las tuplas cuyos valores para el atributo comnCsea igual (R.C = S.C). Ahora tenemos una tabla que contiene el atributoCdos veces y lo corregimos eliminando la columna duplicada.

3.- MATERIAL, EQUIPO, REACTIVO o SOTFWARE A UTILIZAR1. Computadora personal o Laptop1. Sistema Operativo1. Procesador de Textos

4.- COMPETENCIAS ESPECFICASi. Organizar equipos de trabajo de mximo 2 alumnosii. Dado la siguiente figura

Realizar las siguientes acciones

iii. Decir, para cada una de las siguientes operaciones de actualizacin, si se podra aceptar su aplicacin sobre la base de datos que se ha utilizado en esta unidad:a) Insertar en EDIFICIOS_EMP la tupla .b) Insertar en DESPACHOS la tupla .c) Insertar en EMPLEADOS_ADM la tupla .d) Modificar en DESPACHOS la tupla por .e) Borrar en EMPLEADOS_PROD la tupla .f) Modificar en EMPLEADOS_ADM la tupla por .g) Borrar en EDIFICIOS_EMP la tupla si para la clave fornea edificio de DESPACHOS se ha seleccionado la poltica de restriccin en caso de borradoh) Borar en EDIFICIOS_EMP la tupla si para la clave fornea edificio de DESPACHOS se ha seleccionado la poltica de actualizacin en cascada en caso de borrado

iv. Escribir secuencias de operaciones de algebra relacional que resuelven las siguientes consultas en la base de datos que se ha creado

a. Obtener los despachos con una superficie mayor que 15. Concretamente, se quiere saber el nombre del edificio, el nmero y la superficie de estos despachos, junto con la superficie media de los despachos del edificio donde estn situados.b. Obtener el nombre del edificio y el nmero de los despachos que no tienen asignados a ningn empleado (ni de produccin ni de administracin)c. Obtener el nombre y el apellido de los empleados (tanto de administracin como de produccin), que no tienen despachod. Obtener el nombre y el apellido de todos los empleados (tanto de administracin como de produccin) que tienen despacho asignado, junto con la superficie de su despacho y la superficie media de los despachos del edificio al que pertenece su despachoe. Obtener los despachos con una superficie mayor que la superficie del despacho diagonal, 120. Concretamente, se quiere saber el nombre del edificio y el nmero de estos despachos.f. Obtener todos los despachos de la empresa (tanto si tienen empleados como si no), junto con los empleados que tienen asignados (en caso de que los tengan). Concretamente, se quiera conocer el nombre del edificio, el numero de despacho y el DNI del empleadosv. Sea R la relacin que resulta de la interseccin de las relaciones T y S, es decir, R := T S.vi. Escribir una secuencia de operaciones del lgebra relacional que incluya slo operaciones primitivas y que obtenga como resultado R.vii. Sean las relaciones de esquema T(A, B, C) y S(D, E, F), y sea R la relacin que resulta de laviii. siguiente combinacin:a. R := T[B = D, C = E]S.ix. Escribir una secuencia de operaciones del lgebra relacional que incluya slo operaciones primitivas y que obtenga como resultado R.x. Realizar la representacin mediante operaciones de algebra relacional sobre las consultas ms significativas (mnimo 5) de la base de datos creada como proyecto de materia

5.- RESULTADOSRepresentacin mediante algebra relacional de consulta de informacin a las bases de datos. 6.- CONCLUSIONES

Al concluir esta prctica el alumno representado en algebre relacional las consultas necesarias ene una base de datos.

7.- BIBLIOGRAFA Silberschatz, Abraham. Fundamentos de Base de Datos. Ed. Mc Graw Hill.

Prctica 6

USO DEL LENGUAJE SQL

Observaciones Esta prctica incluye a la Prcticas # 4 del temario de Fundamentos de Base de Datos que indica El estudiante aplicar las clusulas del lenguaje SQL a una base de datos relacional.

1.- OBJETIVOEntender y aplicar las sentencias bsicas del lenguaje SQL sobre una base de datos relacional

2.- MARCO TEORICO

El SQL es el lenguaje estndar ANSI/ISO de definicin, manipulacin y control de bases de datos relacionales. Es un lenguaje declarativo: slo hay que indicar qu se quiere hacer. En cambio, en los lenguajes procedimentales es necesario especificar cmo hay que hacer cualquier accin sobre la base de datos. El SQL es un lenguaje muy parecido al lenguaje natural; concretamente, se parece al ingls, y es muy expresivo. Por estas razones, y como lenguaje estndar, el SQL es un lenguaje con el que se puede acceder a todos los sistemas relacionales comerciales.El modelo relacional tiene como estructura de almacenamiento de los datos las relaciones. La intensin o esquema de una relacin consiste en el nombre que hemos dado a la relacin y un conjunto de atributos. La extensin de una relacin es un conjunto de tuplas. Al trabajar con SQL, esta nomenclatura cambia, como podemos apreciar en la siguiente figura:

Hablaremos de tablas en lugar de relaciones. Hablaremos de columnas en lugar de atributos. Hablaremos de filas en lugar de tuplas.

3.- MATERIAL, EQUIPO, REACTIVO o SOTFWARE A UTILIZAR1. Computadora personal o Laptop1. Sistema Operativo1. Procesador de Textos

4.- COMPETENCIAS ESPECFICAS Hacer equipos de mximo 2 integrantes Realizar los ejercicios realizados en la practica 5, por medio del lenguaje SQL Realizar los ejercicios de la base de datos de proyecto final en el lenguaje SQL

5.- RESULTADOSRealizar las operaciones de los ejercicios y representarlos en el lenguaje SQL

6. CONCLUSIONESEl alumno habr comprendido las instrucciones de lenguaje SQL y aplicado en la solucin de problemas bsicos.

7.- BIBLIOGRAFA Silberschatz, Abraham. Fundamentos de Base de Datos. Ed. Mc Graw Hill. http://ocw.uoc.edu/computer-science-technology-and-multimedia/bases-de-datos/bases-de-datos/P06_M2109_02149.pdf

Prctica 7

CREACIN DE UNA BASE DE DATOS ORIENTADA A OBJETOS

Observaciones Esta prctica incluye a la Prctica # 6 del temario de Fundamentos de Base de Datos que indica El estudiante transformar los modelos de bases de datos realizados al modelo de bases de datos orientado a objetos.

1.- OBJETIVOTransformar los modelos de bases de datos realizados al modelo de bases de datos orientado a objetos

2.- MARCO TEORICOLos modelos de bases de datos tradicionales presentan deficiencias en cuento a aplicaciones ms complejas o sofisticadas. Adems son difciles de utilizar cuando las aplicaciones que acceden a ellas estn escritas en un lenguaje de programacin orientado a objetos.

La orientacin a objetos ofrece flexibilidad, no est limitada por los tipos de datos y los lenguajes de consulta de los sistemas de bases de datos tradicionales. La caracterstica clave es la potencia que proporcionan al diseador al permitirle especificar tanto la estructura de objetos complejos, como las operaciones que se pueden aplicar sobre dichos objetos.

Las BDOO se han diseado para que se puedan integrar directamente con aplicaciones desarrolladas con lenguajes orientados a objetos. Tambin estn diseadas para simplificar la POO. Almacenan los objetos en la BD con las mismas estructuras y relaciones que los lenguajes de POO.

Una SGBDOO es una SGBD que almacena objetos incorporando as todas las ventajas de la OO. Pueden tratar directamente con objetos, no teniendo que hacer la traduccin a tablas o registros. Sus objetos se conservan, pueden ser gestionados aunque su tamao sea grande, pueden ser compartidos entre mltiples usuarios y mantienen su integridad como sus relaciones.

ODMG (Object Database Mangement Group) es el grupo de fabricantes de SGBDOO que propuso el estndar ODM-93 en 1993; en 1997 evolucion a ODMG-2.0 y en enero de 2000 se public la ltima versin ODMG 3.0. El uso del estndar proporciona portabilidad (que se pueda ejecutar sobre sistemas distintos), interoperabilidad (que la aplicacin pueda acceder a varios sistemas diferentes) y adems permite que los usuarios puedan comparar entre distintos sistemas comerciales.

3.- MATERIAL, EQUIPO, REACTIVO o SOTFWARE A UTILIZAR1. Computadora personal o Laptop1. Sistema Operativo1. Procesador de Textos 1. Sistema Gestor de Bases de datos Orientado a objetos4.- COMPETENCIAS ESPECFICASi. Crear equipo mximo de 2 integrantesii. Desarrollar los ejercicios de las prcticas anteriores en un modelo orientado a objetosiii. Desarrollar el proyecto del la asignatura en un modelo orientado a objetos

5.- RESULTADOSLa creacin de bases de datos en base a un modelo orientado a objetos

6.- CONCLUSIONESEl alumno habr desarrollado un modelos de bases de datos orientado a objetos.

7.- BIBLIOGRAFA Silberschatz, Abraham. Fundamentos de Base de Datos. Ed. Mc Graw Hill.

8.- LISTA DE MATERIAL, EQUIPO O REACTIVO A UTILIZAR FOLIONOMBRE DEL MATERIAL, EQUIPO O REACTIVOCANT.UNIDAD

1DIA Editor de UML

2Laboratorio de cmputo

3SGBD MySQL instalado o portable (Server2Go) o PostgreSQL o SQL Server, o WorkBench o MySQL Query Browser

9.- LISTA DE BIBLIOGRAFA REQUERIDA FOLIOBIBLIOGRAFIACANT

1Silberschatz, Abraham. Fundamentos de Base de Datos. Ed. Mc Graw Hill.

2Pgina oficial de MySQL http://www.mysql.com

3Microsoft SQL Server http://msdn.microsoft.com/es-es/library/fxk9yw1t.aspx

4MySql con clase http://www.conclase.net

5Pgina oficial de PostgreSQL http://www.postgresql

6

Fundamentos de Bases de Datos [AEF-1031]

Fecha de Actualizacin 13/12/2013Pgina 18

10.- CONTROL DE CAMBIOS DEL MANUAL DE PRCTICAS

DATOS GENERALES

FECHA DE ACTUALIZACIONELABOR Y/O ACTUALIZDESCRIPCIN DE LA ACTUALIZACIN

13/12/2013 MTRO. RYAMUNDO MONTIEL LIRA

SE CRE EL MANUAL DE PRCTICAS DE LA ASIGNATURA DE FUNDAMENTOS DE BASES DE DATOS

Fecha de Actualizacin 13/12/2013Pgina 20