copyright 2006 four j's development tools, inc. no part of this book may be reproduced or...

51
Copyright 2006 Four J's Development Tools, Inc. No part of this book may be reproduced or transmitted in any form without prior written permission of the publisher. Diseño de Base de datos y Programación SQL

Upload: alberto-pinto-guzman

Post on 23-Jan-2016

220 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Copyright 2006 Four J's Development Tools, Inc. No part of this book may be reproduced or transmitted in any form without prior written permission of the

Copyright 2006 Four J's Development Tools, Inc.

No part of this book may be reproduced or transmitted in any form without prior written permission of the publisher.

Diseño de Base de datos y Programación SQL

Page 2: Copyright 2006 Four J's Development Tools, Inc. No part of this book may be reproduced or transmitted in any form without prior written permission of the

DAY 3:

MODULO 4: Fundamentos de Genero

TOPICOS: Características del lenguaje Tipos de datos

Literales Operadores Expresiones y Excepciones Variables y constantes Registros y Arreglos Funciones Estructuras de control

Laboratorio 4

DAY 4:

MODULO 4:

Programación SQL en Genero

TOPICOS:

Conexiones

Transacciones

SQL dinámico y estático

Results Sets

Laboratorio 4

DAY 5:

MODULO 5: Programación SQL en Genero

TOPICOS:

Instrucciones I/O de SQL

Programación

Rendimiento

Portabilidad

Laboratorio 5

Agenda

DAY 1:

MODULO 1: Bases de Datos TOPICOS:

ConceptosNormalización y DiseñoLaboratorio 1

DAY 2:

MODULO 2: SQL Básico TOPICOS:

ConceptosTipos de datosOperadores y funcionesTipos de comandosDLLDML Laboratorio 2

MODULO 3: SQL Avanzado TOPICOS:

Store ProceduresLaboratorio 3

Page 3: Copyright 2006 Four J's Development Tools, Inc. No part of this book may be reproduced or transmitted in any form without prior written permission of the

Course Logistics

Page 5: Copyright 2006 Four J's Development Tools, Inc. No part of this book may be reproduced or transmitted in any form without prior written permission of the

Presentación

Page 6: Copyright 2006 Four J's Development Tools, Inc. No part of this book may be reproduced or transmitted in any form without prior written permission of the

Copyright 2006 Four J's Development Tools, Inc.

No part of this book may be reproduced or transmitted in any form without prior written permission of the publisher.

Modulo 1: Bases de Datos

Page 7: Copyright 2006 Four J's Development Tools, Inc. No part of this book may be reproduced or transmitted in any form without prior written permission of the

Ubicación y avance del Curso

5. ProgramaciónSQL en Genero

4. Fundamentos deGenero

3. SQL Avanzado

2. SQL Básico

1. Base de Datos

Diseño de Basede Datos

Y Progrmación con SQL

Page 8: Copyright 2006 Four J's Development Tools, Inc. No part of this book may be reproduced or transmitted in any form without prior written permission of the

Copyright 2006 Four J's Development Tools, Inc.

No part of this book may be reproduced or transmitted in any form without prior written permission of the publisher.

Conceptos

Page 9: Copyright 2006 Four J's Development Tools, Inc. No part of this book may be reproduced or transmitted in any form without prior written permission of the

Conceptos

• Base de datos:Es un conjunto de datos que pertenecen al mismo contexto almacenados sistemáticamente para su posterior uso.

• Archivo:La información de un archivo informático normalmente consiste de paquetes más pequeños de información (a menudo llamados registros o líneas) que son individualmente diferentes pero que comparten algún rasgo en común.

• Registro:Conjunto de datos pequeño, en otras palabras son líneas de información.

Page 10: Copyright 2006 Four J's Development Tools, Inc. No part of this book may be reproduced or transmitted in any form without prior written permission of the

Conceptos

• Dato:Es una representación simbólica (numérica, alfabética, etc.), atributo o característica de una entidad.

• Información:Es un conjunto organizado de datos, que constituyen un mensaje sobre un determinado ente o fenómeno

Page 11: Copyright 2006 Four J's Development Tools, Inc. No part of this book may be reproduced or transmitted in any form without prior written permission of the

Base de datos relacional

• Es un conjunto de dos o mas tablas estructuradas en registros (líneas) y campos (columnas), que se vinculan entre sí por un campo en común, en ambos casos posee las mismas características.

Page 12: Copyright 2006 Four J's Development Tools, Inc. No part of this book may be reproduced or transmitted in any form without prior written permission of the

Diagrama Entidad-Relación

Persona-Direcciones

Persona-telefonosPersona-Correos

Personas

nom_personaapp_personaapm_personafecnac_persona...

Variable characters (150)Variable characters (150)Variable characters (150)Variable characters (150)...

persona <pi>

telefonos

cve_personatelnum_tel...

IntegerVariable characters (150)...

telefono <pi>

Direcciones

cve_personadircalle_dirnumext_dirnumint_dircol_dircp_dirciudad_dirmunicipio_dirpais_dir...

IntegerVariable characters (255)IntegerIntegerVariable characters (155)Variable characters (5)Variable characters (100)Variable characters (80)Variable characters (80)...

<M>

...

direccion <pi>

correos

cve_persona_correomail...

IntegerVariable characters (255)...

Identifier_1 <pi>

Entidad

Relaciones

Atributos

Page 13: Copyright 2006 Four J's Development Tools, Inc. No part of this book may be reproduced or transmitted in any form without prior written permission of the

Cardinalidad

Las relaciones, pueden involucrar a un número distinto de instancias de cada entidad. Así, son posibles tres tipos de cardinalidades:

• Relaciones de uno a uno: una instancia de la entidad A se relaciona con una y solamente una de la entidad B.

• Relaciones de uno a muchos: cada instancia de la entidad A se relaciona con varias instancias de la entidad B.

• Relaciones de muchos a muchos: cualquier instancia de la entidad A se relaciona con cualquier instancia de la entidad B

Page 14: Copyright 2006 Four J's Development Tools, Inc. No part of this book may be reproduced or transmitted in any form without prior written permission of the

Normalización

• Consiste en aplicar una serie de reglas a las relaciones obtenidas tras el paso del modelo E-R (entidad-relación) al modelo relacional.

Page 15: Copyright 2006 Four J's Development Tools, Inc. No part of this book may be reproduced or transmitted in any form without prior written permission of the

Ventajas del modelo relacional

• Garantiza herramientas para evitar la duplicidad de registros, a través de campos claves o llaves.

• Garantiza la integridad referencial: Así al eliminar un registro elimina todos los registros relacionados dependientes.

• Favorece la normalización por ser más comprensible y aplicable.

Page 16: Copyright 2006 Four J's Development Tools, Inc. No part of this book may be reproduced or transmitted in any form without prior written permission of the

Diseño de base de datos

De forma general, las etapas son:

• Conocer cuál será la información que se almacenará.• Identificar cuales son las entidades que participarán.• Para cada entidad identificar los atributos.• Normalizar.

Page 17: Copyright 2006 Four J's Development Tools, Inc. No part of this book may be reproduced or transmitted in any form without prior written permission of the

Ejemplo-Usuarios

• Diseñar una base de datos para almacenar información de los usuarios de un sistema.

Los datos que se requieren:– Nombre

– Empresa

– Dirección

– mail

– Direcciones URL de la empresa

Page 18: Copyright 2006 Four J's Development Tools, Inc. No part of this book may be reproduced or transmitted in any form without prior written permission of the

Ejemplo - Usuarios

• Donde la entidad que podemos identificar es: Usuarios

Nombre Empresa Direccion_emp url1 url2

Angel Fourjs Alborada 4js.latin.com 4js.com

Jenny Fourjs Alborada 4js.latin.com 4js.com

Angel Fourjs Lat Alborada 4js.com 4js.com

Problemas:

-Si se requiere otra URL, como se almacenará ?

-Cuando se requiera buscar el nombre “Angel” , el resultado serán dos registros.

Page 19: Copyright 2006 Four J's Development Tools, Inc. No part of this book may be reproduced or transmitted in any form without prior written permission of the

Ejemplo-Usuarios: Normalización 1FN

• Primer Nivel de NormalizaciónNo hay campos múltiples. Todas las filas deben tener el mismo numero de columnas.

REGLAS• Eliminar los grupos repetitivos de las entidades. • Crear una entidad separada por cada grupo de datos

relacionados. • Identificar cada grupo de datos relacionados con una clave

primaria

cve-usuario nombre empresa Dirección url

1 Angel Fourjs Alborada 4js.latin.com

2 Jenny Fourjs Alborada 4js.latin.com

3 Angel Fourjs Lat México 4js.com

Entidad - Usuarios

Page 20: Copyright 2006 Four J's Development Tools, Inc. No part of this book may be reproduced or transmitted in any form without prior written permission of the

Ejemplo-Usuarios: Normalización 2FN

• Segundo Nivel de NormalizaciónTodo campo que no sea clave debe depender por completo de toda la clave.

REGLAS

• Crear entidades separadas para aquellos grupos de datos que se aplican a varios registros.

• Relacionar estas entidades mediante una clave externa.

cve-url rel-usuario desc-url

1 1 4js.latin.com

2 1 4js.latin.com

3 2 4js.com

cve-usuario nombre empresa Dirección

1 Angel Fourjs Alborada

2 Jenny Fourjs Alborada

3 Angel Fourjs Lat México

Entidad - Usuarios

Entidad - Urls

Page 21: Copyright 2006 Four J's Development Tools, Inc. No part of this book may be reproduced or transmitted in any form without prior written permission of the

Ejemplo-Usuarios: Normalización 3FN

• Tercer Nivel de NormalizaciónNo hay dependencias transitivas. Un campo debe depender de la clave y no de otro campo.

REGLAS

• Eliminar aquellos campos que no dependan de la clave.

cve-usuario nombre rel-empresa

1 Angel 1

2 Jenny 1

3 Angel 2

Entidad - Usuarios

Page 22: Copyright 2006 Four J's Development Tools, Inc. No part of this book may be reproduced or transmitted in any form without prior written permission of the

Ejemplo-Usuarios: Normalización 3FN

cve-empresa nom_empresa dir_empresa

1 FourJs Alvorada

2 FourJs Lat México

cve-url rel-usuario desc-url

1 1 4js.latin.com

2 1 4js.latin.com

3 2 4js.es

Entidad - Empresas

Entidad - Urls

Page 23: Copyright 2006 Four J's Development Tools, Inc. No part of this book may be reproduced or transmitted in any form without prior written permission of the

Ejemplo-Usuarios: Normalización 4FN

• Cuarto Nivel de NormalizaciónUna fila no debe contener dos o más campos multi-valorados (aquellos que pueden contener más de un valor simultaneamente) sobre una entidad.

REGLAS

• Revisar relaciones entre entidades

cve-usuario nombre rel-empresa

1 Angel 1

2 Jenny 1

3 Angel 2

Entidad - Usuarios

Page 24: Copyright 2006 Four J's Development Tools, Inc. No part of this book may be reproduced or transmitted in any form without prior written permission of the

Ejemplo-Usuarios: Normalización 4FN

cve-empresa nom_empresa dir_empresa

1 FourJs Alvorada

2 FourJs Lat México

cve-url desc-url

1 4js.latin.com

2 4js.com

cve_usu_url rel_usu rel-url

1 1 1

2 1 1

3 3 2

Entidad - Empresas

Entidad - Urls

Entidad – Rel_Usuario_Urls

Page 25: Copyright 2006 Four J's Development Tools, Inc. No part of this book may be reproduced or transmitted in any form without prior written permission of the

Laboratorio 1

• Se requiere optimizar la información de un directorio donde hasta el momento se tienen los siguientes problemas:– Es complicado buscar todas las direcciones de una persona

– No es posible capturar todos los teléfonos y correos de una persona.

Entidad: Personas

Nombre Dir1 Dir2 Dir3 Telcel Telfij Mail

Page 26: Copyright 2006 Four J's Development Tools, Inc. No part of this book may be reproduced or transmitted in any form without prior written permission of the

Laboratorio 2

• Instalar y configurar GeneroDB en:

c:\fourjs\generodb

• Instalar GeneroDB Enterprise Manager• Instalar Power Designer

Page 27: Copyright 2006 Four J's Development Tools, Inc. No part of this book may be reproduced or transmitted in any form without prior written permission of the

Laboratorio 2

• Diseñar una base de datos para realizar el proceso de:– Pedidos de libros en Internet

Page 28: Copyright 2006 Four J's Development Tools, Inc. No part of this book may be reproduced or transmitted in any form without prior written permission of the
Page 29: Copyright 2006 Four J's Development Tools, Inc. No part of this book may be reproduced or transmitted in any form without prior written permission of the

Práctica Final SQL

• Diseñar la base de datos para el proceso de registrar un pedido.

• Desarrollar el store procedure que permita actualizar los precios de los libros cada vez que se requiera.

Page 30: Copyright 2006 Four J's Development Tools, Inc. No part of this book may be reproduced or transmitted in any form without prior written permission of the

Copyright 2006 Four J's Development Tools, Inc.

No part of this book may be reproduced or transmitted in any form without prior written permission of the publisher.

Modulo 2: SQL básico

Page 31: Copyright 2006 Four J's Development Tools, Inc. No part of this book may be reproduced or transmitted in any form without prior written permission of the

Copyright 2006 Four J's Development Tools, Inc.

No part of this book may be reproduced or transmitted in any form without prior written permission of the publisher.

Conceptos

Page 32: Copyright 2006 Four J's Development Tools, Inc. No part of this book may be reproduced or transmitted in any form without prior written permission of the

Conceptos

• SQL (Standar Query Languaje)– Es un lenguaje estandarizado de base de datos relacionales, mediante

el cuál se realizan diferentes operaciones sobre la base de datos.

Page 33: Copyright 2006 Four J's Development Tools, Inc. No part of this book may be reproduced or transmitted in any form without prior written permission of the

Tipos de datos

• INT ó INTEGER– Almacena un entero de 32 bits (4,294,967,296)

• SMALLINT– Almacena un entero de 16 bits (65,536)

• BIGINT – Almacena un entero de 64 bits (18446744073709551616)

Page 34: Copyright 2006 Four J's Development Tools, Inc. No part of this book may be reproduced or transmitted in any form without prior written permission of the

Tipos de datos

• DOUBLE, DOUBLE PRECISION, REAL– Almacena un número real de 64 bits

• DECIMAL(p, s) – Almacena un número de precisión (p) y fracción (s)

• NUMERIC(p, s) or NUMBER(p, s)– Almacena un número de precisión (p) y fracción (s)

La principal diferencia entre NUMERIC y DECIMAL es que el tipo de dato NUMERIC garantiza la precisión especificada y DECIMAL al menos garantiza la precisión especificada.

La precisión (p) debe ser 15 o menor.

Page 35: Copyright 2006 Four J's Development Tools, Inc. No part of this book may be reproduced or transmitted in any form without prior written permission of the

Tipos de datos

• MONEY– Almacena un número con precisión cercana a 19 y fracción 4,

específicamente puede almacenar valores entre -922,337,203,685,477.5807 y 922,337,203,685,477.5807.

– Este rango es mucho mayor que cualquier otro tipo de dato numérico.

Page 36: Copyright 2006 Four J's Development Tools, Inc. No part of this book may be reproduced or transmitted in any form without prior written permission of the

Tipos de comandos

• Existen dos tipos de comandos SQL:

– Los DLL que permiten crear y definir nuevas bases de datos, campos e índices.

– Los DML que permiten generar consultas para ordenar, filtrar y extraer datos de la base de datos.

Page 37: Copyright 2006 Four J's Development Tools, Inc. No part of this book may be reproduced or transmitted in any form without prior written permission of the

Tipos de comandos

• Comandos DLL

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 definición de los campos.

Page 38: Copyright 2006 Four J's Development Tools, Inc. No part of this book may be reproduced or transmitted in any form without prior written permission of the

Tipos de comandos

• Comandos DML

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 operación.

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

Page 39: Copyright 2006 Four J's Development Tools, Inc. No part of this book may be reproduced or transmitted in any form without prior written permission of the

Cláusulas

Las cláusulas son condiciones de modificación utilizadas para definir los datos que desea seleccionar o manipular:

• FROM Utilizada para especificar la tabla de la cual se van a seleccionar los registros

• WHERE Utilizada para especificar las condiciones que deben reunir los registros que se van a seleccionar

• GROUP BY Utilizada para separar los registros seleccionados en grupos específicos

• HAVING Utilizada para expresar la condición que debe satisfacer cada grupo

• ORDER BY Utilizada para ordenar los registros seleccionados de acuerdo con un orden específico

Page 40: Copyright 2006 Four J's Development Tools, Inc. No part of this book may be reproduced or transmitted in any form without prior written permission of the

Operadores lógicos

• AND Es el "y" lógico. Evalúa dos condiciones y devuelve un valor de verdad sólo si ambas son ciertas.

• OR Es el "o" lógico. Evalúa dos condiciones y devuelve un valor de verdad si alguna de las dos es cierta.

• NOT Negación lógica. Devuelve el valor contrario de la expresión.

Page 41: Copyright 2006 Four J's Development Tools, Inc. No part of this book may be reproduced or transmitted in any form without prior written permission of the

Operadores de comparación

• < Menor que• > Mayor que• <> Distinto de• <= Menor ó Igual que• >= Mayor ó Igual que• = Igual que• BETWEEN Utilizado para especificar un intervalo de valores.• LIKE Utilizado en la comparación de un modelo• IN Utilizado para especificar registros de una base de datos

Page 42: Copyright 2006 Four J's Development Tools, Inc. No part of this book may be reproduced or transmitted in any form without prior written permission of the

Funciones de agregado

• AVG Utilizada para calcular el promedio de los valores de un campodeterminado

• COUNT Utilizada para devolver el número de registros de la selección

• SUM Utilizada para devolver la suma de todos los valores de un campo determinado

• MAX Utilizada para devolver el valor más alto de un campo especificado

• MIN Utilizada para devolver el valor más bajo de un campo especificado

Page 43: Copyright 2006 Four J's Development Tools, Inc. No part of this book may be reproduced or transmitted in any form without prior written permission of the

Consultas de Predicado

• ALL Devuelve todos los campos de la tabla

• TOP Devuelve un determinado número de registros de latabla

• DISTINCT Omite los registros cuyos campos seleccionadoscoincidan totalmente

• DISTINCTROW Omite los registros duplicados basándose en la totalidad del registro y no sólo en los campos seleccionados.

Page 44: Copyright 2006 Four J's Development Tools, Inc. No part of this book may be reproduced or transmitted in any form without prior written permission of the

Copyright 2006 Four J's Development Tools, Inc.

No part of this book may be reproduced or transmitted in any form without prior written permission of the publisher.

Módulo 3: SQL Avanzado

Page 45: Copyright 2006 Four J's Development Tools, Inc. No part of this book may be reproduced or transmitted in any form without prior written permission of the

Stores Procedures

• Es un programa o función el cual está físicamente almacenado en una base de datos.

La exacta implementación de un stored procedure incluyendo lo que es y como es implementado varía de un manejador de bases de datos a otro.

Page 46: Copyright 2006 Four J's Development Tools, Inc. No part of this book may be reproduced or transmitted in any form without prior written permission of the

Copyright 2006 Four J's Development Tools, Inc.

No part of this book may be reproduced or transmitted in any form without prior written permission of the publisher.

Módulo 4: Fundamentos de Genero

Page 47: Copyright 2006 Four J's Development Tools, Inc. No part of this book may be reproduced or transmitted in any form without prior written permission of the

Extensiones

Page 48: Copyright 2006 Four J's Development Tools, Inc. No part of this book may be reproduced or transmitted in any form without prior written permission of the

Tipos de datos

• Para tipos de datos CARÁCTER:

CHAR

VARCHAR

STRING

• Para tipos de datos FECHA:

DATE

Page 49: Copyright 2006 Four J's Development Tools, Inc. No part of this book may be reproduced or transmitted in any form without prior written permission of the

Tipos de datos

• INTEGER • SMALLINT • FLOAT (almacena hasta 8 bytes) • SMALLFLOAT (almacena hasta 4 bytes)• DECIMAL • MONEY

Page 50: Copyright 2006 Four J's Development Tools, Inc. No part of this book may be reproduced or transmitted in any form without prior written permission of the

Estructura de un programa

El código fuente se encuentra en un archivo con extensión 4gl. Por ejemplo: miprograma.4gl

MAIN

.

.

END MAIN

FUNCTION nombre (parámetros)..RETURN (variable)END FUNCTION

Page 51: Copyright 2006 Four J's Development Tools, Inc. No part of this book may be reproduced or transmitted in any form without prior written permission of the

Definición y asignación de variables

MAIN# Comentarios-- Comentarios

CONSTANT c1 = "Drink" --Define una constante de tipo carácter CONSTANT c2 = 4711 --Define una constante de tipo entero

DEFINE cadena VARCHAR(255) # Esta es una definición

LET cadena = “Hola, estamos en curso” # Esta es una asignación

END MAIN