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

Post on 23-Jan-2016

220 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

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

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

Course Logistics

Jenny Archundiasoporte@4js.com

Instructora

Presentación

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

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

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

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.

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

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.

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

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

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.

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.

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.

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

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.

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

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

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

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

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

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

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

Laboratorio 2

• Instalar y configurar GeneroDB en:

c:\fourjs\generodb

• Instalar GeneroDB Enterprise Manager• Instalar Power Designer

Laboratorio 2

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

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.

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

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

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.

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)

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.

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.

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.

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.

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

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

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.

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

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

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.

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

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.

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

Extensiones

Tipos de datos

• Para tipos de datos CARÁCTER:

CHAR

VARCHAR

STRING

• Para tipos de datos FECHA:

DATE

Tipos de datos

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

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

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

top related