Está en la página 1de 31

Introducción a SQL

PersonalSoft S.A.S

www.personalsoft.com
Agenda

Conjuntos
Operaciones entre conjuntos
Pensar en conjuntos
Data Centric Programming
Programación Tradicional
SQL
Objetos nativos (DDS) y objetos SQL
Interoperabilidad DDS y SQL
www.personalsoft.com
Reglas de juego

Estar “presentes" en la actividad


Participar activamente
Hacer las tareas

www.personalsoft.com
Conjuntos

Un conjunto es una colección de


objetos distintos y es considerado un
objeto en sí mismo.

www.personalsoft.com
Ejemplos de conjuntos

El conjunto de colores primarios


Las letras del alfabeto
Los números pares menores que
100

www.personalsoft.com
Operaciones

Intersección
Unión
Complemento (Diferencia)

www.personalsoft.com
Operaciones

A={1, 2, 3, 4}, B={3, 4, 5}


Intersección A∩B ={3, 4}
Unión – AUB = {1, 2, 3, 4, 5}
Complemento A\B = {1,2}

www.personalsoft.com
Pensando en conjuntos

Result set# 1

Result set # 2 Result set

Result set # 3

www.personalsoft.com
Data Centric Programming

 Programación Centrada en los datos


o Resolver problemas de negocio
utilizando las capacidades de la BD.
o Dejar que el DBMS haga más por
nosotros.
o Implementar la mayor parte de la
lógica de negocio en la BD.
o Separar la lógica de negocio de la
lógica de presentación.
www.personalsoft.com
Data Centric Programming / Traditional

 Programación Centrada en los


datos
o El DBMS conoce acerca de los
datos y sus relaciones.
 Tradicional
o El programa conoce acerca de los
datos y sus relaciones.
www.personalsoft.com
Data Centric Programming

 Aprender
 Des-aprender
 Ciencia
 Arte

www.personalsoft.com
Importancia del modelo

 Un adecuado
modelamiento permite
buenas definiciones de
conjuntos de datos.
 Esto a la vez permite
un buen uso del
lenguaje SQL.

www.personalsoft.com
SQL Introducción
Structured Query Language
 Declarativo, no procedimental
 Pensamos en conjuntos y definimos
operaciones sobre dichos conjuntos.
 El conjunto de instrucciones para definir
datos se conoce como DDL.
 El conjunto de instrucciones para
manipular los datos se conoce como
DML.
www.personalsoft.com
SQL Introducción
Structured Query Language
 Desarrollado por IBM en la mitad de la década de los
70s
 Estandarizado, independiente de la plataforma. Es un
lenguaje pensado para instanciar, procesar y manejar
bases de datos relacionales, objetos y datos.
 Basado en el idioma inglés
 Últimos estándares:
• ISO 2011
• ANSI 2011
 Diseñado para procesamiento basado en conjuntos.
www.personalsoft.com
Porqué SQL?
Por qué utilizar SQL
 Mayor productividad del programador
o SQL es un lenguaje más natural e intuitivo
o Es posible realizar las pruebas de manera
independiente de la demás lógica de la aplicación
 Estándar de la industria
o Mayor portabilidad entre plataformas
 Más fácil encontrar programadores
o El conocimiento/habilidades es más transferible a
otras plataformas
 Mayor información disponible por ser un estándar de
la industria.
www.personalsoft.com
SQL en DB2 for i
Por qué utilizar SQL en DB2 for i?
 Está integrada con el sistema
o El sistema operativo incluye todo el soporte para
trabajar
 DB2 cumple altamente con los estándares definidos
 Muchas mejoras del sistema están disponibles sólo para
SQL.
 El sistema IBM i y la base de datos DB2 están muy
optimizados el uno con respecto al otro
 Para operaciones de datos tiene mejor performance que HLL
 Más detalles…
o Lectura White Paper: “Benefits of Modernizing with
www.personalsoft.com
SQL”.
Conjuntos y SQL

Sucursales Ubicaciones

Preguntas:
 Número de sucursales por ubicación
 Lista de sucursales en una ubicación
www.personalsoft.com
Conjuntos y SQL
Intersección

Sucursales Ubicaciones

Preguntas:
 Número de sucursales por ubicación
 Lista de sucursales en una ubicación
 Existe una sucursal en determinada ubicación?
www.personalsoft.com
Conjuntos y SQL

Sucursales Ubicaciones

CREATE TABLE SUCURSALES ( CREATE TABLE UBICACIONES


SUCURSAL_PK Many to 1 (
INTEGER, UBICACION_PK
UBICACIÓN_FK INTEGER,
INTEGER NOMBRE CHAR (30),
CODIGO CHAR (25)) DIRECCION CHAR
(100),
CIUDAD CHAR(25),
www.personalsoft.com
ESTADO CHAR(25),
Llaves Subrogadas

Una llave subrogada


es un identificador
único que
generalmente no tiene
ningún significado
desde el punto de vista
de negocio. Son
siempre de tipo de
datos numérico y
preferiblemente
autoincremental.
www.personalsoft.com
Record Level Access vs. SQL

 Record Level Access (RLA)


o Le decimos a la BD qué hacer Y cómo
hacerlo.

 SQL
o Le decimos a la BD qué hacer PERO no
le decimos cómo hacerlo.

www.personalsoft.com
Record Level Access

Resultados

Programa HLL

DB2

T1 T2 T3 T4

www.personalsoft.com
Data Centric Programming - SQL

Programa
HLL/Interface

Resultados

DB2

T1 T2 T3 T4

www.personalsoft.com
Record Level Access con SQL

 DECLARE CURSOR
 OPEN CURSOR
 FETCH from cursor
 DOW SQLCOD = 0
 Lógica adicional…
 ENDDO
 CLOSE CURSOR

Tratar de evitar el procesamiento de un registro a la


vez. Pensar en conjuntos!!!
Utilizar funciones de agregación
www.personalsoft.com
Objetos Nativos / SQL

www.personalsoft.com
Jerarquía de objetos IBM i

www.personalsoft.com
Interoperabilidad SQL/DDS

Objetos SQL Programas SQL

Objetos creados con Programas


DDS nativos*

www.personalsoft.com
Interoperabilidad SQL/DDS

 La recomendación
de IBM es no crear
más objetos
mediante DDS,
sino utilizando
SQL.

www.personalsoft.com
Conclusiones

 La programación centrada en
los datos permite que el
DBMS haga más trabajo por
nosotros.
 SQL es la manera más
poderosa de hacer esto.
 SQL es el lenguaje de base
de datos que nos permite
definir y comunicar los
requerimientos de negocio.

www.personalsoft.com
Preguntas y Respuestas

www.personalsoft.com
www.personalsoft.com

También podría gustarte