BASES DE DATOS

MODELADOS Y ANALISIS DE DATOS

PARTE I

FUNDAMENTOS DE BASES DE DATOS

Objetivos
s Usar en forma detallada las técnicas para diseño e implantación de bases de datos relacionales, para que sirvan de cimiento para el desarrollo de sistemas de información. s Desarrollar un proyecto de ingeniería referente a un sistema de información.

UNIDAD 1. INTRODUCCIÓN
s

Un sistema de manejo de Bases de Datos DBMS, es un conjunto de datos relacionados entre sí y un grupo de programas para tener acceso a esos datos.
DATOS PROGRAMAS

UNIDAD 1. INTRODUCCIÓN
s

s

El objetivo del DBMS es crear un ambiente en el que sea posible guardar y recuperar información de la base de datos, de forma eficiente. Incluye: - Definición de estructuras de almacenamiento de datos - Mecanismos para manejo de datos - Seguridad de la información - Uso concurrente de la base de datos

1. Propósito de los sistemas de bases de datos
s

Los DBMS minimizan los problemas de los sistemas de procesamiento de archivos: - Redundancia e inconsistencia de datos - Dificultad en el acceso a los datos - Aislamiento de datos - Problemas de integridad - Problemas de atomicidad - Anomalías en el acceso concurrente - Problemas de seguridad

2. Visión de los datos
s s s

Los DBMS proporcionan a los usuarios una visión abstracta de los datos. El sistema esconde ciertos detalles de cómo se almacenan y mantienen los datos. Las bases de datos revolucionaron el mundo de las computadoras, con este nuevo concepto “abstracción de los datos”, a diferencia de lo que era tradicional “abstracción de lenguajes de programación”.

2.1. Abstracción de los datos
s s

s

s

Para ocultar esta complejidad del almacenamiento se definen 3 niveles: Nivel físico.- Describe como se almacenan realmente los datos en forma de palabras y bytes. Nivel conceptual.- Describe qué datos se almacenan y qué relaciones hay entre ellos, en forma de estructuras. Nivel de visión.- Muchos usuarios necesitan acceder a una parte de la base de datos. El sistema proporciona vistas.

2.2. Ejemplares y esquemas
s

s

La colección de la información almacenada en la base de datos en un momento particular se llama un ejemplar de la base de datos. El esquema de la base de datos es una descripción de la misma en forma de estructuras de datos. Existen tres tipos de esquema: físico, lógico y subesquemas.

2.3. Independencia de datos
s

s

s

s

Es la capacidad de modificar una definición de esquema en un nivel sin que afecte al nivel superior. Independencia física de datos.- Es la capacidad de modificar el esquema físico sin tener que modificar los programas. Independencia lógica de datos.- Es la capacidad de modificar el esquema lógico sin tener que modificar los programas. La independencia lógica es más difícil de lograr que la independencia física.

3. Modelos de datos
s

s

s

Para describir el esquema de una base de datos en cualquiera de los 3 niveles, es necesario definir los modelos de datos. Un modelo de datos es un grupo de herramientas para describir los datos, sus relaciones, su semántica y sus ligaduras de consistencia. Se pueden agrupar en 3 tipos de modelos: - Modelos lógicos basados en objetos - Modelos lógicos basados en registros - Modelos físicos de datos

3.1 Modelos lógicos basados en objetos
s

s

s

Parten de mundo real delimitando el entorno del sistema y dentro de este entorno identifican los objetos de interés. Se utilizan para describir los datos en los niveles lógico y de visión, y especifican claramente las ligaduras de consistencia de los datos. Como ejemplos de este grupo están el modelo entidad-relación y el modelo orientado a objetos.

3.1.1. Modelo entidad-relación
s

Se basa en la percepción de un mundo real que consiste en un conjunto de objetos básicos llamados entidades, y de las relaciones entre estos objetos.
ci nombre modelo domicilio año kilometraje conductor fecha importe

persona

posee

automóvil

ocurrió

accidente

3.1.2. Modelo orientado a objetos
s s

Está basado en una colección de objetos agrupados en clases. Una clase describe un conjunto de objetos que comparten los mismos atributos, operaciones, relaciones y semántica.
Valor valorActual() historia()

CuentaCorriente tasaIeInterés ValorActual()

Acción valorActual()

Bono valorActual()

Propiedad tasación valorActual()

3.2 Modelos lógicos basados en registros
s s

s

Se usan para describir los datos en los niveles lógico y de visión. Se usan tanto para especificar la estructura lógica completa de la base de datos como para una descripción de alto nivel. A diferencia de los modelos basados en registros, no describen muy bien las ligaduras de consistencia de la base de datos.

3.2.1. Modelo relacional
s

Los datos y las relaciones entre ellos se representa por medio de una serie de tablas, donde cada una tiene varias columnas.
Artículos nro_artí nombre
5 10 25 35 Escobas Sardina Café Pasas

Movimientos nro_artí tipo cant
10 10 10 10 25 25 25 35 1 2 1 1 1 2 1 1 10 20 5 2 1 2 2 10

pre_unit
10 10 10 10 20 20 5 5

3.2.2. Modelo de red
s

Se representa por un conjunto de registros y las relaciones entre ellos por punteros
Escobas 10 10 10 25 25 1 2 1 1 2 1 10 20 5 1 2 10 10 10 10 20 20 5

5

10 Sardinas 25 Café 35 Pasas

35

3.2.3. Modelo jerárquico
s

Igual que el de red pero en forma de árbol

5

Escobas

25 Café 35 Pasas

10 Sardinas

10 1 10 10

10 1

5 10 25 1

25 2 1 20

2 20 35 1 10 5

10 2 20 10

3.3 Modelo de datos físico
s s

s

El modelo de datos físico se usa para describir datos en un nivel más bajo. Dos de los más conocidos son el modelo de unificación y el modelo de memoria de marcos. Este tipo de modelos no serán tema de estudio.

9. Estructura del sistema completo
Usuarios Normales Interfaces de aplicaciones Programadores de aplicación Programas de aplicación
Precompilador del DML Código objeto de los programas Gestor de transacciones

Usuarios sofisticados consulta

Administrador de base de datos Esquema de base de datos
Intérprete de DDL

Usuarios

Compilador del DML

Motor de evaluación de consultas Gestor de memoria intermedia

Procesador de consultas Gestor de almacenamiento

Gestor de archivos

DBMS
Archivo de datos

Índices

Datos estadísticos Diccionario de datos

Almacenamiento en disco

4. Lenguajes de bases de datos
s

s

Lenguaje de definición de datos DDL, es una serie de definiciones que especifican el esquema de la base de datos Lenguaje de manejo de datos DML, permite manipular la base de datos, utilizando las operaciones de recuperar, insertar, actualizar y borrar. Hay 2 tipos: - DML procedimental, se especifica qué datos se necesitan y cómo obtenerlos. - DML no procedimentales, solo se indica qué datos se necesitan, no cómo obtenerlos.

5. Gestión de transacciones
s

Una transacción es una colección de operaciones que se llevan a cabo en una aplicación de bases de datos. Debe ser atómica, consistente y permitir durabilidad.
!Me hacés todo o nada! TRANSACCIÓN.Transferencia de fondos: INICIA RETIRA DE CUENTA A DEPOSITA A CUENTA B FIN !!!Y no te equivoqués!

5. Gestión de transacciones
s

s s

s

El gestor de transacciones asegura las propiedades de atomicidad, consistencia y durabilidad de las transacciones. Atomicidad.- Se hacen todas las operaciones o ninguna. Consistencia.- Si la base de datos es consistente cuando comienza debe serlo también cuando termine. Durabilidad.- Los datos modificados por la transacción en la base de datos deben persistir.

6. Gestión de almacenamiento
s

s

El gestor de almacenamiento es un módulo de programas que proporciona la interfaz entre los datos de bajo nivel en la base de datos, y los programas de aplicación y consultas. Es responsable de la interacción con el gestor de archivos, y del almacenamiento, recuperación y actualización de la base.

7. Administración de la base de datos
s s

El DBMS tiene control centralizado sobre datos y programas. La persona que tiene este control sobre el sistema es el administrador de base de datos o DBA en inglés. Se ocupa de: - Definir el esquema - Estructura de almacenamiento y accesos - Modificación de la organización física - Autorización para el acceso a los datos - Especificación de ligaduras de integridad

8. Usuarios de la base de datos
s

¡

¡ ¡ ¡

Hay 4 tipos de usuarios en un sistema de base de datos, dependiendo de la forma como interactuan con el sistema. Programadores de aplicación, quienes usan un lenguaje anfitrión que permite anidar consultas DML Usuarios sofisticados, usan lenguaje DML Usuarios especializados, usan inteligencia artificial, sistemas de expertos, etc. Usuarios normales, usan programas que se han escrito previamente.

UNIDAD 2. MODELO ENTIDAD RELACIÓN

Objetivo Usar las técnicas existentes para modelar bases de datos de gran tamaño y complejas.

1. Conceptos básicos
s Entidad.- Es una cosa que puede ser objeto o concepto que el caso de estudio considera que tiene existencia independiente. s Atributo.- Es una propiedad de la entidad. s Relación.- Es una asociación entre entidades.

1. Conceptos básicos
s

Entidades, relaciones y ocurrencias.
agencia
a1 a5 La Paz Santa Cruz

almacena

producto
pr2 pr7 pr4 pr8 pr6 printer tape drive disk drive controler ploter

Entidades.- agencia, producto Relaciones.- almacena Ocurrencia de entidad.- 2 agencia, 5 producto Ocurrencia de relación.- 7 de almacena

1. Conceptos básicos
s Identificador de entidad.- Es un atributo o atributo compuesto, cuyos valores identifican una ocurrencia de una entidad, puede haber varios “identificadores candidatos”. s Identificador de relación.- Es la unión de los identificadores de las entidades que participan en la relación.

2. Propiedades de las relaciones cardinalidad y participación
s Cardinalidad o grado de una relación.Determina la cantidad de ocurrencias de las entidades que participan en la relación s Para relaciones binarias hay tres posibles clases de cardinalidad

2. Propiedades de las relaciones cardinalidad y participación
s Cardinalidad 1:1
profesor 1 enseña 1 cursor

Rosario Angel Corrado Ramona

IF-317 MAT-101 QMC-100 FIS-300

2. Propiedades de las relaciones cardinalidad y participación
s Cardinalidad 1:m
profesor 1 enseña m cursor

Rosario Angel Corrado Ramona

IF-317 MAT-101 QMC-100 FIS-300

2. Propiedades de las relaciones cardinalidad y participación
s Cardinalidad m:m
profesor m enseña n cursor

Rosario Angel Corrado Ramona

IF-317 MAT-101 QMC-100 FIS-300

2. Propiedades de las relaciones cardinalidad y participación
s Participación.- Hay dos formas en que una entidad puede participar en una relación: s Obligatoria.- Cada ocurrencia de la entidad participa en la relación, o sea que tiene al menos una ocurrencia asociada en la otra entidad s No obligatoria.- Una ocurrencia puede existir independientemente.

2. Propiedades de las relaciones cardinalidad y participación
departamento emplea empleado

Un departamento debe emplear al menos un empleado Un empleado debe ser empleado por un departamento departamento

emplea

empleado

Un departamento no necesita emplear ningun empleado Un empleado no necesita ser empleado por ningún depto.

2. Propiedades de las relaciones cardinalidad y participación
departamento emplea empleado

Un departamento no necesita emplear ningún empleado Un empleado debe ser empleado por un departamento departamento

emplea

empleado

Un departamento debe emplear al menos un empleado Un empleado no necesita ser empleado por ningún depto.

3. Trampas de conexión y relaciones ternarias
s Trampa de abanico.- Existe cuando dos o más relaciones salen de una entidad. 1 1
división tiene m depto emplea m empleado

Me sacás el departamento donde trabaja el empleado e1?

3. Trampas de conexión y relaciones ternarias
s Trampa de abanico.!! Oh mi Dios, no puedo... !!
depto de1 de2 1 di1 tiene división emplea empleado e1 e2

división

tiene

m

depto

1

emplea

m

empleado

3. Trampas de conexión y relaciones ternarias
s Trampa de grieta.- Ocurre cuando una relación descubierta no existe en el diagrama.
división

1

tiene

m

depto

1

emplea

m

empleado

Hola?. Quién habla?. El sereno. En que te puedo servir?. Mi contrato no está en la base de datos.

3. Trampas de conexión y relaciones ternarias
s Trampa de grieta.No tengo departamento “vigilancia”, y no me permiten crearlo... 1 1
trabaja

división

tiene

depto

1

emplea

m m

empleado

3. Trampas de conexión y relaciones ternarias
s Relaciones ternarias.- Otras trampas de conexión no pueden resolverse aumentando una relación binaria, la única forma es utilizar relaciones ternarias.
parte n provee m proveedor n entrega m proyecto

Hola, quien habla? La contadora, no sabemos que materiales se han usado en el proyecto del puente. A ver....., “que partes utilizan que proyectos?”.

3. Trampas de conexión y relaciones ternarias
s Relaciones ternarias.parte n provee m proveedor n entrega m proyecto

utiliza

Y ahora quien será. Hola, quien habla? El encargado de compras, aquí hay un transportista que dice que entregó ripio al proyecto del puente, y no está en la base de datos. ..“que proveedor entrega que parte a que proyecto?”.

3. Trampas de conexión y relaciones ternarias
s Relaciones ternarias.proveedor m n parte m entrega contrata n p proyecto

parte4 parte3 proveedor6 proveedor7

proy9 proy8

4. Características del modelo ER extendido
s El modelo ER extendido incluye los conceptos de especialización y categorización. s Subclases y superclases.- En muchos casos es necesario representar una entidad como varias entidades. Por ejemplo, empleado como secretaria y administrador, empleado representa la superclase y las otras son subclases.

4. Características del modelo ER extendido
s Especialización.- Es el proceso de definición de un set de subclases de una entidad, denominada superclase
empleado

d
secretaria técnico administrador

d
asalariado horario proyecto

1 velocidad_tipeo

Administra

1

4. Características del modelo ER extendido
s Especialización.- Hay dos motivos para generar especializaciones: 1 La primera es que ciertos atributos son aplicables solo a algunas ocurrencias de la entidad. Por ejemplo, secretaria tiene el atributo velocidad tipeo. 2 La segunda es que algunas relaciones participan con las subclases diréctamente y no con la superclase. Por ejemplo, la entidad proyecto participa con administrador y no necesariamente con empleado

4. Características del modelo ER extendido
s Especialización.- Hay dos tipos de especialización: 1 Disjunta. Las ocurrencias de la superclase pertenecen a una o ninguna subclase.
empleado

d
secretaria técnico

4. Características del modelo ER extendido
s Especialización.- Hay dos tipos de especialización: 2 Sobrepuesta.- Las ocurrencias de la superclase pueden pertenecer a varias subclases. parte

O
parte_comprada parte_manufacturada

4. Características del modelo ER extendido
s Especialización.- La especialización puede ser parcial o total: 1 Total.- Todas las ocurrencias de la superclase están representadas en la subclase. 2 Parcial.- No es obligatorio que las ocurrencias de la superclase estén representadas en alguna subclase.

4. Características del modelo ER extendido
s Categorización.- En algunos casos hay dos o más entidades que no tienen nada en común, que se relacionan con otra entidad, en este caso es posible representarlas en una categoria.
persona banco compañia

U
dueño

1

tiene

m vehículo

5. Esqueleto del modelo ER reglas de representación
s Esqueleto del ER.- Es el diagrama ER, sus restricciones, y una lista de tablas con sus identificadores. s Modelo ER.- Es el diagrama ER, sus restricciones, y una descripción completa de las tablas y sus identificadores.

5. Esqueleto del modelo ER reglas de representación
s 1-1. Participación obligatoria de ambas
empleado 1 usa

*

1

* auto

empleado(nro_emple, ....., nro_auto, .....)

Mario Enrique Gino Chichi

317-SJH 101-PLU 100-WRA 300-LPQ

5. Esqueleto del modelo ER reglas de representación
s 1-1. Participación obligatoria de una entidad
empleado 1 usa

*

1

auto

empleado(nro_emple, .......) auto (nro_auto, ......., nro_emple) Mario Enrique Gino Chichi 317-SJH 101-PLU 100-WRA

5. Esqueleto del modelo ER reglas de representación
s 1-1. Participación no obligatoria en ambas
empleado 1 usa 1 auto

empleado (nro_emple, .......) auto (nro_auto, .......) usa (nro_auto, nro_emple, .........) Mario Enrique Gino Chichi 317-SJH 101-PLU 100-WRA 300-LPQ

5. Esqueleto del modelo ER reglas de representación
s 1-m. Participación obligatoria de entidad m.
sala 1 ocupa

*

m

paciente

sala (nro_sala, .......) paciente (nro_paciente, ......., nro_sala) sala-1 sala-7 sala-8 sala-4 Dante Diodato Oso Techo e paja

5. Esqueleto del modelo ER reglas de representación
s 1-m. Participación no obligatoria de entidad m.
sala 1 ocupa m paciente

sala (nro_sala, .......) paciente (nro_paciente, .......) ocupa (nro_paciente, nro_sala, ........) sala-1 sala-7 Dante Diodato Oso Techo e paja

5. Esqueleto del modelo ER reglas de representación
s m-n. Muchos a muchos todos los casos.
profesor m enseña n alumno

profesor (nro_profe, .......) alumno (nro_alumno, .......) enseña (nro_profe, nro_alumno, .........) Corrado Chichi Gustavo Mario Jesús María José Isabel

5. Esqueleto del modelo ER reglas de representación
s Especialización.- Hay 4 formas de mapeo:
empleado

Participación
secretaria

tipo

1.- todos los casos empleado (ci, nombre,...) secretaria (ci, vel_tipeo, ...) técnico (ci, univ, .....) 2.- Disjunto y participación total secretaria (ci, vel_tipeo,nombre..) técnico (ci, universidad,nombre..)

técnico

3.- Pocos atributos en subclases y disjunto. empleado (ci, nombre, vel_tipeo,universidad,t,...) 4. Pocos atributos en subclases y sobrepuesto empleado (ci, nombre, vel_tipeo,universidad,t1,t2,...)

5. Esqueleto del modelo ER reglas de representación
s Categorización.- Forma de mapeo:
persona banco compañia

U
dueño

persona (ci, nombre,...) banco (banco#, banco_dirección,...) compañía (compañía#, compañía_dirección, ...) dueño (dueño#, .....)

6. Entidades débiles
s Entidad débil o identificador prepuesto.Cuando el identificador de la tabla, contiene el identificador de otra tabla.
compañia 1 tiene

*

m departamento

compañia (nro_depto, .......) departamento (nro_compañía, nro_depto, .......)

7. Relaciones recursivas
s Las reglas de representación de relaciones es la misma, pero es necesario distinguir entre los diferentes roles que tienen los identificadores

7. Relaciones recursivas
s Relación 1:1
persona 1 1

esposo

persona (persona_id, ........) casado (persona_id_esposo, persona_id_esposa, ......)

espos a

casado

7. Relaciones recursivas
s Relación 1:m
empleado 1 m supervisado supervisor

supervisa

*

Empleado (nro_empleado, ......., nro_emple_supervisor)

7. Relaciones recursivas
s Relación m:n
parte m n parte_mayor parte_menor

compone

Parte (nro_parte, .......) compone (nro_parte_mayor, nro_parte_menor, .........)

8. Asignación de atributos
s El próximo paso después de hacer el esqueleto del modelo es asignar atributos. s Debemos asignar atributos a las tablas de tal forma que queden normalizadas, hasta la cuarta forma normal incluyendo la forma normal de Boyce Cood.

8. Asignación de atributos
s 1:1 no obligatorio en ambas entidades.
nom_emple km_emple marca km_actual ) km_auto

empleado (nro_emple, nom_emple, km_emple auto (nro_auto, marca, km_auto ) usa (nro_emple, nro_auto, km_actual )

8. Asignación de atributos
s 1:m no obligatorio en entidad m.
fecha_admisión nom_paciente fecha_nacim número_camas tipo_sala

sala (nro_sala, tipo_sala, número_camas ) paciente (nro_paciente, nom_paciente, fecha_nacim ) ocupa (nro_paciente, nro_sala, fecha_admisión )

8. Asignación de atributos
s m:n en todos los casos.
horas_atención nom_alumno horas_alu_sem nro_aula horas_prof_sem

profesor (nro_prof, nro_aula, horas_prof_sem ) alumno (nro_alum, nom_alumno, horas_alu_sem ) supervisa (nro_prof, nro_alum, horas_atención )

9. Metodología de diseño conceptual y lógico
1.- Identificar los objetos del sistema que están dentro del contexto y son de interés. 2.- Prepara una lista preliminar de eventos o transacciones, que el sistema soportará. 3.- Preparar una lista preliminar de atributos. 4.- Hacer una lista de entidades importantes 2 a 4, con sus identificadores. 5.- Dibujar el diagrama ER partiendo de las entidades más importantes, no es necesario más que 2 a 4 entidades.

9. Metodología de diseño conceptual y lógico
6.- Verificar si el diagrama ER soporta los eventos, corregir el diagrama si es necesario. Analizar trampas de conexión. 7.- Hacer el esqueleto del modelo a partir del diagrama ER. 8.- Asignar atributos a las tablas, borrándolos de la lista. 9.- Si hay atributos que no entran en las tablas, definir nuevas entidades y/o relaciones. Si es necesario repetir de 5

9. Metodología de diseño conceptual y lógico
10.- Verificar si hay algún atributo o evento que sea necesario incluir, si es así repetir de 6 con nuevos eventos o de 8 con nuevos atributos. 11.- Hacer una revisión general, ver si las tablas están normalizadas, si los eventos son soportados. Si es necesario repetir desde 1. 12.- Borrar entidades superfluas.

10. Caso de estudio de modelo conceptual y lógico

MODELO DE DATOS BIBLIOTECA

11. Diseño físico
s Las tablas obtenidas en el diseño conceptual y lógico, se obtienen a partir de las reglas de mapeo descritas. s En el diseño físico, dependiendo del hardware y software en que se implementa, pueden aplicarse cambios en base a un estudio de las siguientes consideraciones.

11. Diseño físico
s 1-1. Participación no obligatoria en ambas
empleado 1 trabaja 1 proyecto

10%

95%

Casi todos los proyectos tienen empleado, aquí se puede mapear como si proyecto fuese obligatorio en la relación. empleado (nro_emple, nom_emple) proyecto (nro_proy, nom_proy, nro_emple)

11. Diseño físico
s 1-m. Participación obligatoria de 1
empleado m trabaja 1 proyecto

solo 2

Un proyecto tiene m empleados pero m=2, El lado m puede mapearse como si fuese 1, en ese caso mapeamos solo dos tablas. empleado (nro_emple, nom_emple) proyecto (nro_proy, nom_proy, nro_emple_reponsable, nro_emple_subal)

11. Diseño físico
s m-n. Participación obligatoria de m
empleado m trabaja n proyecto

Pocos 1, 2

Un proyecto tiene m empleados el lado m son pocos 1 o 2. El lado m puede mapearse como si fuese 1, en ese caso mapeamos solo dos tablas. empleado (nro_emple, nom_emple) proyecto (nro_proy, nro_emple, nom_proy)

11. Diseño físico
s Partición de tablas
máquina 1 tiene 1 máquina_detalle

Máquina es una entidad pero tiene muchos atributos, y unos se usan más que otros. Es posible generar máquina_detalle. máquina (nro_maq, tipo, centro_trabajo, capacidad) máquina_detalle (nro_maq, fecha_adquisición, fecha_servicio, fecha_último_fallo)

11. Diseño físico
s Atributos derivados.- Son aquellos cuya información puede obtenerse a partir de otras tablas de la base de datos. precio_total = cantidad * precio_unitario empleado (nro_emple, nro_proy, nom_proy) proyecto (nro_proy, nom_proy, fecha_ini_pro)

12. Caso de estudio modelo físico

CASO DE ESTUDIO LA BIBLIOTECA

UNIDAD 4. ALGEBRA RELACIONAL

Objetivo Introducir los lenguajes conceptuales de las bases de datos relacionales, creados a partir de fundamentos matemáticos.

1. LAS BASES DE DATOS RELACIONALES
s Una base de datos relacional muestra las tablas en forma de filas y columnas
ciudad (nro_ciudad nom_ciudad)
a1 a5 a6 a9 La Paz Santa Cruz Tarija Potosí

s Dominio.- Es el conjunto de todos los valores permitidos que una columna puede tomar. Se tiene D1,D2,...,Dn, si tenemos n columnas.

1. LAS BASES DE DATOS RELACIONALES
s Tupla.- Cada una de las filas de una tabla se compone de n elementos (v1,v2,..,vn) En matemáticas este conjunto ordenado de elementos se llama tupla. s Producto cartesiano.- De lo anterior se tiene v1 ∈D1, v2 ∈D2, ... , vn ∈Dn, porque cada elemento está en el dominio respectivo. En matemáticas podemos decir que la tupla es un elemento del producto cartesiano de los dominios: (v1,v2,....,vn) ∈(D1xD2x.....xDn) =Xi=1,n(Di)

1. LAS BASES DE DATOS RELACIONALES
s Relación.- Por tanto, la tabla es un subconjunto del producto cartesiano de dominios, en otras palabra, por definición matemática, es una relación. s Es por esto que en el álgebra relacional se denomina relación a una tabla y tupla a un fila de tabla.

2. EL ÁLGEBRA RELACIONAL
s Se define el álgebra relacional como un lenguaje para bases de datos relacionales de tipo procedural. Operadores: seleccionar σ unario proyectar π unario producto cartesiano x binario renombrar ρ unario unión ∪ binario diferencia binario Estos son los 6 operadores fundamentales del álgebra relacional para generar consultas

2. EL ÁLGEBRA RELACIONAL SELECCIONAR, σ, UNARIO
s Permite recuperar un subconjunto de tuplas de una relación.

2. EL ÁLGEBRA RELACIONAL SELECCIONAR, σ, UNARIO
préstamo (nom_suc
CAÑOTO BOLIVAR JUNIN BOQUERON JUNIN BOLIVAR

nro_pres
144 122 125 188 132 177

importe)
1500 1200 1800 1500 1600 1550

Ej.1.- “Los préstamos de la sucursal JUNIN” :

σ nom_suc=‘JUNIN’ (préstamo)
JUNIN JUNIN 125 132 1800 1600

Operadores relacionales: =, ≠, >, <, <=, >= Operadores lógicos: ∧, ∨

2. EL ÁLGEBRA RELACIONAL SELECCIONAR, σ, UNARIO
préstamo (nom_suc
CAÑOTO BOLIVAR JUNIN BOQUERON JUNIN BOLIVAR

nro_pres
144 122 125 188 132 177

importe)
1500 1200 1800 1500 1600 1550

Ej.2.- “Los préstamos de la sucursal JUNIN, con importe mayor a 1650” :

σ nom_suc=‘JUNIN’ ∧ importe>1650 (préstamo)
JUNIN 125 1800

2. EL ÁLGEBRA RELACIONAL SELECCIONAR, σ, UNARIO
resp_presta (nom_clien
SUCHA MARCO RUBÉN

nom_emple nro_pres)
RAMONA JAIME RUBÉN 134 122 178

Ej.3.- “Los clientes que tienen el mismo nombre que su oficial de créditos” :

σ nom_clien = nom_emple (resp_presta)
RUBÉN RUBÉN 178

2. EL ÁLGEBRA RELACIONAL PROYECTAR, π, UNARIO
s Permite recuperar un subconjunto de columnas de una relación.

2. EL ÁLGEBRA RELACIONAL PROYECTAR, π, UNARIO
préstamo (nom_suc
CAÑOTO BOLIVAR JUNIN BOQUERON JUNIN BOLIVAR

nro_pres
144 122 125 188 132 177

importe)
1500 1200 1800 1500 1600 1550

Ej.4.- “Seleccionar los clientes con préstamos mayores a 1500, y la sucursal donde sacaron el préstamo” :

π nro_pres, importe (σ importe>1500 (préstamo))
125 132 177 1800 1600 1550

2. EL ÁLGEBRA RELACIONAL PROYECTAR, π, UNARIO
resp_presta (nom_clien
SUCHA MARCO RUBÉN

nom_emple nro_pres)
RAMONA JAIME RUBÉN 134 122 178

Ej.5.- “Los clientes que tienen el mismo nombre que su oficial de créditos, sin repetir el nombre” :

π nom_clien (σ nom_clien = nom_emple (resp_presta))
RUBÉN

2. EL ÁLGEBRA RELACIONAL Producto cartesiano, x, binario
s Opera sobre dos relaciones r,s. Permite combinar cada un de las tuplas de r con cada una de las tuplas de s. s Si r tiene n columnas y s tiene m columnas r x s tiene n+m columnas.

2. EL ÁLGEBRA RELACIONAL Producto cartesiano, x, binario
cliente (nom_clien
MARCO RUBÉN

calle
calle5 calle12

resp_presta ciudad) (nom_clien nom_emple nro_pres)
La Paz Potosí SUCHA MARCO RUBÉN RAMONA JAIME RUBÉN 134 122 178

Ej.6.- “Los clientes que tienen oficial y la ciudad donde radican”. cliente x resp_presta:
cliente. nom_clien
MARCO MARCO MARCO RUBÉN RUBÉN RUBÉN

calle
calle5 calle5 calle5 calle12 calle12 calle12

ciudad
La Paz La Paz La Paz Potosí Potosí Potosí

resp_presta. nom_clien nom_emple
SUCHA MARCO RUBÉN SUCHA MARCO RUBÉN RAMONA JAIME RUBÉN RAMONA JAIME RUBÉN 134 122 178 134 122 178

2. EL ÁLGEBRA RELACIONAL Producto cartesiano, x, binario
cliente. nom_clien
MARCO MARCO MARCO RUBÉN RUBÉN RUBÉN

cliente x resp_presta :
calle
calle5 calle5 calle5 calle12 calle12 calle12

ciudad
La Paz La Paz La Paz Potosí Potosí Potosí

resp_presta. nom_clien nom_emple nro_pres
SUCHA MARCO RUBÉN SUCHA MARCO RUBÉN RAMONA JAIME RUBÉN RAMONA JAIME RUBÉN 134 122 178 134 122 178

σ resp_presta.nom_clien=cliente.nom_clien ( cliente x resp_presta)
cliente. nom_clien
MARCO RUBÉN

calle
calle5 calle12

ciudad
La Paz Potosí

atiende. nom_clien
MARCO RUBÉN

nom_emple nro_pres
JAIME RUBÉN 122 178

2. EL ÁLGEBRA RELACIONAL Producto cartesiano, x, binario
σ resp_presta.nom_clien=cliente.nom_clien ( cliente x resp_presta)
cliente. nom_clien
MARCO RUBÉN

calle
calle5 calle12

ciudad
La Paz Potosí

resp_préstamo. nom_clien nom_emple nro_pres
MARCO RUBÉN JAIME RUBÉN 122 178

π cliente.nom_clien, ciudad ( σ resp_presta.nom_clien=cliente.nom_clien ( cliente x resp_presta))
cliente. nom_clien ciudad
MARCO RUBÉN La Paz Potosí

2. EL ÁLGEBRA RELACIONAL RENOMBRAR, ρ, UNARIO
s Permite cambiar el nombre de una una relación. Se usa normalmente cuando se usa dos veces una relación en una consulta, permite diferenciar los nombres de las columnas, que de otra forma serían idénticos.

2. EL ÁLGEBRA RELACIONAL RENOMBRAR, ρ, UNARIO
s Permite cambiar el nombre de la relación, para diferenciar atributos del mismo nombre.
cliente (nom_clien
SUCHA RUBÉN RAMONA RENATO

calle
calle5 calle12 calle8 calle1

resp_presta ciudad) (nom_clien nom_emple nro_pres)
Sta. Cruz Potosí Tarija Potosí SUCHA MARCO RUBÉN RAMONA JAIME RUBÉN 134 122 178

cliente x resp_presta x ρcli(cliente)

2. EL ÁLGEBRA RELACIONAL UNION, ∪, BINARIO
s Permite recuperar los atributos de la primera relación r más los atributos de la segunda relación s. La unión solo es posible cuando r y s cumplen las siguientes dos condiciones: 1 r y s tienen la misma cantidad de atributos. 2 Los atributos que se corresponden en r y s tienen los mismos dominios.

2. EL ÁLGEBRA RELACIONAL UNION, ∪, BINARIO
prestatario (nro_pres
144 125

nom_clien)
MARCO SUCHA

impositor

(nro_cuen
174 182

nom_clien)
MARCO RUBEN

Ej.7.- “Los clientes que tienen préstamo o depósito”

π nom_clien (prestatario) ∪ π nom_clien (impositor)
nom_suc
MARCO SUCHA RUBEN

2. EL ÁLGEBRA RELACIONAL DIFERENCIA, -, BINARIO
s Permite recuperar los atributos de la primera relación r que no están en la segunda relación s. La diferencia solo es posible cuando r y s cumplen las siguientes dos condiciones: 1 r y s tienen la misma cantidad de atributos. 2 Los atributos que se corresponden en r y s tienen los mismos dominios.

2. EL ÁLGEBRA RELACIONAL DIFERENCIA, -, BINARIO
prestatario (nro_pres
144 125

nom_clien)
MARCO SUCHA

impositor

(nro_cuen
174 182

nom_clien)
MARCO RUBEN

Ej.7.- “Los clientes que tienen préstamo pero no tienen depósito”

π nom_clien (prestatario) - π nom_clien (impositor)
nom_suc
SUCHA

2. EL ÁLGEBRA RELACIONAL COMPLETITUD
s Es posible demostrar matemáticamente que se puede obtener cualquier consulta con los 6 operadores fundamentales que vimos: seleccionar σ unario proyectar π unario producto cartesiano x binario renombrar ρ unario unión ∪ binario diferencia binario Cualquier otro lenguaje es “completo” si puede ejecutar estas 6 operaciones.

2. EL ÁLGEBRA RELACIONAL OPERADORES ADICIONALES
s En el álgebra relacional se definen los operadores adicionales: intersección ∩ binario producto natural ⇑ binario división ÷ binario todos estos operadores pueden ser expresados mediante los 6 fundamentales. Son necesarios solo para simplificar la escritura de algunas consultas.

2. EL ÁLGEBRA RELACIONAL INTERSECCIÓN, ∩, BINARIO
s Permite recuperar los atributos de la primera relación r que también están en la segunda relación s. La intersección solo es posible cuando r y s cumplen las siguientes mismas dos condiciones. s Equivalencia.r∩s=r-(r-s)

2. EL ÁLGEBRA RELACIONAL INTERSECCIÓN, ∩, BINARIO
prestatario (nro_pres
144 125

nom_clien)
MARCO SUCHA

impositor

(nro_cuen
174 182

nom_clien)
MARCO RUBEN

Ej.7.- “Los clientes que tienen préstamo y depósito”

π nom_clien (prestatario) ∩ π nom_clien (impositor)
nom_suc
MARCO

2. EL ÁLGEBRA RELACIONAL Producto natural, ⇑, BINARIO
s El producto natural es un producto cartesiano mas la condición de que los valores de los atributos comunes deben ser los mismos. s Equivalencia.Sea r,s relaciones y R,S sus esquemas o listas de atributos: r ⇑ s = π R ∪ S (σ r.A1=s.A1 ∧.... ∧ r.An=s.An(r x s)) donde: R ∩ S = {A1, A2, ....,An}

2. EL ÁLGEBRA RELACIONAL Producto natural, ⇑, BINARIO
cliente (nom_clien
MARCO RUBÉN

calle
calle5 calle12

ciudad)
La Paz Potosí

resp_presta (nom_clien nom_emple nro_pres)
SUCHA MARCO RUBÉN RAMONA JAIME RUBÉN 134 122 178

Ej.6.- “Los clientes que tienen oficial y la ciudad donde radican”. cliente ⇑ resp_presta:
nom_clien
MARCO RUBÉN

calle

ciudad
La Paz Potosí

nom_emple nro_pres
JAIME RUBÉN 122 178

calle5 calle12

π nom_clien, ciudad (cliente ⇑ resp_presta)
MARCO RUBÉN La Paz Potosí

2. EL ÁLGEBRA RELACIONAL División, ÷, BINARIO
s La división entre r y s, de esquemas R y S, requiere que S⊆R. s La división da algunas tuplas de r proyectadas sobre R-S, aquellas que en su proyección sobre S tienen todas las tuplas de la relación s. s Equivalencia.r ÷ s = π R-S ( r ) - π R-S ((π R-S ( r ) x s) - r)

2. EL ÁLGEBRA RELACIONAL División, ÷, BINARIO
s Definición formal.- Dadas r,s relaciones y R,S sus esquemas. Una tupla t está en la división si: s t está en π R-S ( r ) s para cada tupla ts de s hay una tupla tr de r que cumple las condiciones: a) tr[S] = ts[S] b) t = tr[R-S]

2. EL ÁLGEBRA RELACIONAL División, ÷, BINARIO
r (A a a b e e a B b b c d d b C c e e c e d D) d f f d f e s (C c e D) d f r÷s (A a e B) b d

2. EL ÁLGEBRA RELACIONAL División, ÷, BINARIO, prespres←préstamo⇑
prestatario
prespres (nom_suc nro_pr nom_clien importe)
CAÑOTO BOLIVAR JUNIN BOQUERON JUNIN BOLIVAR 144 122 125 188 132 177 MARCO RUBEN RUBEN RUBEN PLATINI PLATINI 1500 1200 1800 1500 1600 1550

sucursal (nom_suc
CAÑOTO BOLIVAR BOQUERON JUNIN BOLIVAR

ciudad)
LPZ SCZ LPZ SCZ CBBA

Los clientes que tienen préstamo en todas las sucursales de SCZ

π nom_clien, nom_suc ( préstamo ) ÷ π nom_suc (σ ciudad=‘SCZ’ ( sucursal))

RUBEN PLATINI

5. OPERACIONES DEL ALGEBRA RELACIONAL EXTENDIDA
s Reunión externa.- Cuando hacemos producto natural, las tuplas de una tabla que no se combinan con tuplas de la otra tabla no aparecen en la relación resultante. 1 r ⇐ s, en el producto natural mantiene las tuplas de r que no se combinan. 2 r ⇒ s, en el producto natural mantiene las tuplas de s que no se combinan. 3 r ⇔ s, en el producto natural mantiene las tuplas de r y s que no se combinan.

5. OPERACIONES DEL ALGEBRA RELACIONAL EXTENDIDA
s Funciones de agregación.- se puede usar las funciones agregadas: sum, avg, max, min, count, count_distinct, etc. Se usan así: sum importe (préstamo) suma todos los importes de la relación préstamo. s Agrupación.- Saca los resultados agrupando por los atributos indicados. La forma es: nom_suc Gsum importe (préstamo) suma los préstamos de cada sucursal.

6. MODIFICACIÓN DE LA BASE DE DATOS
s Hasta ahora todos los programas se han centrado en extraer información. Es necesario además, insertar, borrar y modificar información en la base de datos. s Borrado.- Permite eliminar tuplas de la base de datos. Se expresa así: r←r-E donde r es una relación y E es una consulta del álgebra relacional, que obtiene las tuplas que se eliminarán de r.

6. MODIFICACIÓN DE LA BASE DE DATOS
s Inserción.- Permite aumentar una o varias tuplas en la base de datos. Se usa: r←r∪E donde r es una relación y E es un consulta del álgebra relacional o una tupla a insertar. s Actualización.- Permite modificar uno o varios valores de la base de datos. Se puede usar la proyección extendida: r ← π F1,F2,....,Fn (r) . Por ejemplo, aumentar 5% a todas las cuentas de depósito=r: r ← π nom_suc, nro_cue, saldo←saldo*1.05 (r)

7. VISTAS
s create view v como E; donde E es una consulta del álgebra relacional, y v es el nombre de la vista.

3. CALCULO RELACIONAL DE TUPLAS
s El cálculo relacional es un lenguaje sin procedimientos o no procedural, donde se da una descripción formal de la información deseada sin especificar como obtenerla. s Existen dos formas el cálculo relacional de tuplas CRT y el cálculo relacional de dominios CRD, las dos de características muy similares. s La forma general de una consulta en el CRT es: { t / P(t) }, se dice conjunto de tuplas t tales que cumplen P(T).

3. CALCULO RELACIONAL DE TUPLAS SELECCIÓN s Permite recuperar un subconjunto de tuplas de una relación.

3. CALCULO RELACIONAL DE TUPLAS SELECCIÓN
préstamo (nom_suc
CAÑOTO BOLIVAR JUNIN BOQUERON JUNIN BOLIVAR

nro_pres
144 122 125 188 132 177

importe)
1500 1200 1800 1500 1600 1550

Ej.1.- “Los préstamos de la sucursal JUNIN” :

{ t / t ∈préstamo ∧ nom_suc=‘JUNIN’ }
JUNIN JUNIN 125 132 1800 1600

3. CALCULO RELACIONAL DE TUPLAS SELECCIÓN
préstamo (nom_suc
CAÑOTO BOLIVAR JUNIN BOQUERON JUNIN BOLIVAR

nro_pres
144 122 125 188 132 177

importe)
1500 1200 1800 1500 1600 1550

Ej.2.- “Los préstamos de la sucursal JUNIN, con importe mayor a 1650” :

{ t / t ∈préstamo ∧ nom_suc=‘JUNIN’ ∧ importe>1650 }
JUNIN 125 1800

3. CALCULO RELACIONAL DE TUPLAS SELECCIÓN
resp_presta (nom_clien
SUCHA MARCO RUBÉN

nom_emple nro_pres)
RAMONA JAIME RUBÉN 134 122 178

Ej.3.- “Los clientes que tienen el mismo nombre que su oficial de créditos” :

{ t / t ∈resp_presta ∧ nom_clien=nom_emple }
RUBÉN RUBÉN 178

3. CALCULO RELACIONAL DE TUPLAS PROYECCIÓN s Permite recuperar un subconjunto de columnas de una relación.

3. CALCULO RELACIONAL DE TUPLAS PROYECCIÓN
préstamo (nom_suc
CAÑOTO BOLIVAR JUNIN BOQUERON JUNIN BOLIVAR

nro_pres
144 122 125 188 132 177

importe)
1500 1200 1800 1500 1600 1550

Ej.4.- “Seleccionar los clientes con préstamos mayores a 1500, y la sucursal donde sacaron el préstamo” :

{ t[nro_pres, importe] / t ∈préstamo ∧ importe>1500 } 125 1800
132 177 1600 1550

3. CALCULO RELACIONAL DE TUPLAS PROYECCIÓN
resp_presta (nom_clien
SUCHA MARCO RUBÉN

nom_emple nro_pres)
RAMONA JAIME RUBÉN 134 122 178

Ej.5.- “Los clientes que tienen el mismo nombre que su oficial de créditos, sin repetir el nombre” :

{ t[nom_clien] / t ∈resp_presta ∧ nom_clien=nom_emple }
RUBÉN

3. CALCULO RELACIONAL DE TUPLAS PRODUCTO s Es posible en el CRT operar sobre dos o más relaciones.

3. CALCULO RELACIONAL DE TUPLAS PRODUCTO
cliente (nom_clien
MARCO RUBÉN

calle
calle5 calle12

resp_presta ciudad) (nom_clien nom_emple nro_pres)
La Paz Potosí SUCHA MARCO RUBÉN RAMONA JAIME RUBÉN 134 122 178

Ej.6.- “Los clientes que tienen oficial y la ciudad donde radican”. cliente x atiende: { t[nom_clien, ciudad] / t ∈cliente ∧ ∃ u (u ∈resp_presta ∧ t[nom_clien]=u[nom_clien] ) }
nom_clien ciudad
MARCO RUBÉN La Paz Potosí

3. CALCULO RELACIONAL DE TUPLAS UNIÓN s Permite recuperar los atributos de la primera relación r más los atributos de la segunda relación s. La unión solo es posible cuando r y s cumplen las siguientes dos condiciones: 1 r y s tienen la misma cantidad de atributos. 2 Los atributos que se corresponden en r y s tienen los mismos dominios.

3. CALCULO RELACIONAL DE TUPLAS UNIÓN
prestatario (nro_pres
144 125

nom_clien)
MARCO SUCHA

impositor

(nro_cuen
174 182

nom_clien)
MARCO RUBEN

Ej.7.- “Los clientes que tienen préstamo o depósito” { t[nom_clien]/∃ u(u ∈ prestatario ∧ t[nom_cli]=u[nom_cli]) ∨ ∃ v(v ∈ impositor ∧ t[nom_cli]=v[nom_cli]) }
MARCO SUCHA RUBEN

3. CALCULO RELACIONAL DE TUPLAS DIFERENCIA s Permite recuperar las tuplas de la primera relación r que no están en la segunda relación s. La diferencia solo es posible cuando r y s cumplen las siguientes dos condiciones: 1 r y s tienen la misma cantidad de atributos. 2 Los atributos que se corresponden en r y s tienen los mismos dominios.

3. CALCULO RELACIONAL DE TUPLAS DEFERENCIA
prestatario (nro_pres
144 125

nom_clien)
MARCO SUCHA

impositor

(nro_cuen
174 182

nom_clien)
MARCO RUBEN

Ej.7.- “Los clientes que tienen préstamo pero no tienen depósito” { t[nom_clien]/∃ u(u ∈ prestatario ∧ t[nom_cli]=u[nom_cli]) ∧ ¬∃ v(v ∈ impositor ∧ t[nom_cli]=v[nom_cli]) }
SUCHA

3. CALCULO RELACIONAL DE TUPLAS INTERSECCIÓN s Permite recuperar las tuplas de la primera relación r que también están en la segunda relación s. La intersección solo es posible cuando r y s cumplen las dos condiciones mencionadas en unión.

3. CALCULO RELACIONAL DE TUPLAS INTERSECCIÓN
prestatario (nro_pres
144 125

nom_clien)
MARCO SUCHA

impositor

(nro_cuen
174 182

nom_clien)
MARCO RUBEN

Ej.7.- “Los clientes que tienen préstamo y depósito” { t[nom_clien]/∃ u(u ∈ prestatario ∧ t[nom_cli]=u[nom_cli]) ∧ ∃ v(v ∈ impositor ∧ t[nom_cli]=v[nom_cli]) }
nom_suc
MARCO

3. CALCULO RELACIONAL DE TUPLAS DEFINICIÓN FORMAL
s Las expresiones del CRT son de la forma: { t / ψ(t) }, donde t es una variable de tipo tupla y ψ es una fórmula construida a partir de átomos. Hay tres tipos de átomo: 1 t ∈ r, significa que la tupla t pertenece a la relación r. 2 t[i] Θ u[j], Θ es un operador relacional: =, ≠, >, <, <=, >=, i-j son dos atributos de las tuplas tu 3 t[i] Θ a, donde a es una constante.

3. CALCULO RELACIONAL DE TUPLAS DEFINICIÓN FORMAL
s Las fórmulas ψ se forman a partir de átomos usando las siguiente definición recursiva: 1 Un átomo es un fórmula 2 Si β es una fórmula también lo son ¬ β y (β) 3 Si β1 y β2 son fórmulas, también los son: β1 ∧ β2, β1 ∨ β2, β1 ⇒ β2 4 Si β(s) es una fórmula en función de s, donde s es una variable de tipo tupla, entonces: ∀s (β(s)), ∃s (β(s)), también son fórmulas. 5 Nada más es una fórmula.

3. CALCULO RELACIONAL DE TUPLAS DEFINICIÓN FORMAL
s A continuación tenemos las siguientes equivalencias más utilizadas en el CRT s (β1 ∧ β2) ⇔ ¬ (¬β1 ∨ ¬β2) s ∀s (β(s)) ⇔ ¬∃s (¬β(s)) s (β1 ⇒ β2) ⇔ (¬β1 ∨ β2)

3. CALCULO RELACIONAL DE TUPLAS SEGURIDAD DE LAS FÓRMULAS
s En el CRT no se permite obtener consultas que retornen un número infinito de tuplas. Sin embargo es necesario 3 reglas adicionales para impedir expresiones incorrectas como: { t / ¬ψ(t) }. Pero necesitamos la definición: s Dominio de fórmula.- DOM(ψ), es el conjunto de constantes que aparecen en ψ más todos los valores de las relaciones que se usa ψ. s Por ejemplo en ψ=“t[1]=a ∨ (t ∈ r)”, donde r es una relación con dos atributos (1,2) DOM(ψ) = {a} ∪ π1( r ) ∪ π2( r )

3. CALCULO RELACIONAL DE TUPLAS SEGURIDAD DE LAS FÓRMULAS
s Decimos que una expresión del CRT { t / ψ(t)} es una fórmula segura si: 1 Siempre que t haga verdadera ψ, cada componente de t debe pertenecer a DOM(ψ). 2 Para cada subfórmula ψ de la forma ∃s (W(s)), si s hace verdadera la fórmula W, entonces cada componente de s debe pertenecer al dominio DOM(W). 3 Para cada subfórmula ψ de la forma ∀s (W(s)), si un componente de s no está en DOM(W), entonces s debe hacer verdad W.

3. CALCULO RELACIONAL DE TUPLAS SEGURIDAD DE LAS FÓRMULAS
s Normalmente se usa de la siguiente forma los cuantificadores existencial y universal: ∃s (s∈r ∧ ......) ∀s (¬(s∈r) ∨ ......) s son dos formas de comenzar a escribir la fórmula, para que la fórmula resultante sea segura.

3. CALCULO RELACIONAL DE TUPLAS DIVISIÓN s La división entre r y s, de esquemas R y S, requiere que S⊆R. s La división genera algunas tuplas de r proyectadas sobre R-S, aquellas que en su proyección sobre S tienen todas las tuplas de la relación s.

3. CALCULO RELACIONAL DE TUPLAS DIVISIÓN
r (A a a b e e a B b b c d d b C c e e c e d D) d f f d f e s (C c e

D) d f

(A a e

B) b d

{ t[A,B] / t∈r ∧ ∀u (¬(u∈r) ∨ ∃v (v∈r ∧ u[C]=v[C] ∧ u[D]=v[D] ∧ t[A]=v[A] ∧ t[B]=v[B] ))}

3. CALCULO RELACIONAL DE TUPLAS DIVISIÓN, prespres←préstamo⇑prestatario
prespres (nom_suc nro_pr nom_clien importe)
BOLIVAR BOLIVAR JUNIN BOQUERON JUNIN BOLIVAR 144 122 125 188 132 177 MARCO RUBEN RUBEN RUBEN PLATINI PLATINI 1500 1200 1800 1500 1600 1550

sucursal (nom_suc
CAÑOTO BOLIVAR BOQUERON JUNIN BOLIVAR

ciudad)
LPZ SCZ LPZ SCZ CBBA

Los clientes que tienen préstamo en todas las sucursales de SCZ { t[nom_clien] / t∈prespres ∧ ∀u (¬(u∈sucursal) ∨ ¬(u[ciudad]=‘SCZ’) ∨ ∃v (v∈prespres ∧ u[nom_suc]=v[nom_suc] ∧ t[nom_clien]=v[nom_clien] )) }
RUBEN PLATINI

4. CALCULO RELACIONAL DE DOMINIOS
s Se construye con los mismo operadores y reglas del CRT, se usan variables tipo dominio en vez de variables tipo tupla. s Diferencias en la definición de átomos: 1 <x1,x2,...,xn>∈r; donde x1,..,xn son las variables tipo dominio y r una relación. 2 x Θ y; x e y son las variables dominio. 3 x Θ k; x es variable dominio y k constante s Las otras definiciones y reglas son equivalentes.

4. CALCULO RELACIONAL DE DOMINIOS SELECCIÓN
préstamo (nom_suc
CAÑOTO BOLIVAR JUNIN BOQUERON JUNIN BOLIVAR

nro_pres
144 122 125 188 132 177

importe)
1500 1200 1800 1500 1600 1550

“Los préstamos de la sucursal JUNIN” :

{ ns,np,im / <ns,np,im> ∈préstamo ∧ ns=‘JUNIN’ }
JUNIN JUNIN 125 132 1800 1600

4. CALCULO RELACIONAL DE DOMINIOS SELECCIÓN
préstamo (nom_suc
CAÑOTO BOLIVAR JUNIN BOQUERON JUNIN BOLIVAR

nro_pres
144 122 125 188 132 177

importe)
1500 1200 1800 1500 1600 1550

“Los préstamos de la sucursal JUNIN, con importe mayor a 1650” :

{ ns,np,im / <ns,np,im> ∈préstamo ∧ ns=‘JUNIN’ ∧ im>1650 }
JUNIN 125 1800

4. CALCULO RELACIONAL DE DOMINIOS SELECCIÓN
resp_presta (nom_clien
SUCHA MARCO RUBÉN

nom_emple nro_pres)
RAMONA JAIME RUBÉN 134 122 178

“Los clientes que tienen el mismo nombre que su oficial de créditos” :

{ nc,ne,np / <nc,ne,np> ∈ resp_presta ∧ ns=ne }
RUBÉN RUBÉN 178

4. CALCULO RELACIONAL DE DOMINIOS PROYECCIÓN
préstamo (nom_suc
CAÑOTO BOLIVAR JUNIN BOQUERON JUNIN BOLIVAR

nro_pres
144 122 125 188 132 177

importe)
1500 1200 1800 1500 1600 1550

“Seleccionar los clientes con préstamos mayores a 1500, y la sucursal donde sacaron el préstamo” :

{ np,im / ∃ ns (<ns,np,im> ∈ préstamo ∧ im>1500) } 125 1800
132 177 1600 1550

4. CALCULO RELACIONAL DE DOMINIOS PROYECCIÓN
resp_presta (nom_clien
SUCHA MARCO RUBÉN

nom_emple nro_pres)
RAMONA JAIME RUBÉN 134 122 178

“Los clientes que tienen el mismo nombre que su oficial de créditos, sin repetir el nombre” : { nc / ∃ ne,np (<nc,ne,np> ∈ resp_presta ∧ nc=ne) }

RUBÉN

4. CALCULO RELACIONAL DE DOMINIOS PRODUCTO
cliente (nom_clien
MARCO RUBÉN

calle
calle5 calle12

resp_presta ciudad) (nom_clien nom_emple nro_pres)
La Paz Potosí SUCHA MARCO RUBÉN RAMONA JAIME RUBÉN 134 122 178

Ej.6.- “Los clientes que tienen oficial y la ciudad donde radican”. cliente x atiende:

{ nc, ci / ∃ ca (<nc,ca,ci> ∈ cliente ∧ ∃ ne,np (<nc,ne,np> ∈ resp_presta ) ) }
nom_clien ciudad
MARCO RUBÉN La Paz Potosí

4. CALCULO RELACIONAL DE DOMINIOS UNIÓN
prestatario (nro_pres
144 125

nom_clien)
MARCO SUCHA

impositor

(nro_cuen
174 182

nom_clien)
MARCO RUBEN

Ej.7.- “Los clientes que tienen préstamo o depósito” { nc/ ∃ np (<np,nc> ∈ prestatario ) ∨ ∃ ncu (<ncu,nc> ∈ impositor) }
MARCO SUCHA RUBEN

4. CALCULO RELACIONAL DE DOMINIOS DIFERENCIA
prestatario (nro_pres
144 125

nom_clien)
MARCO SUCHA

impositor

(nro_cuen
174 182

nom_clien)
MARCO RUBEN

Ej.7.- “Los clientes que tienen préstamo pero no tienen depósito” { nc/ ∃ np (<np,nc> ∈ prestatario ) ∧ ¬∃ ncu (<ncu,nc> ∈ impositor ) }
SUCHA

4. CALCULO RELACIONAL DE DOMINIOS INTERSECCIÓN
prestatario (nro_pres
144 125

nom_clien)
MARCO SUCHA

impositor

(nro_cuen
174 182

nom_clien)
MARCO RUBEN

Ej.7.- “Los clientes que tienen préstamo y depósito” { nc/ ∃ np (<np,nc> ∈ prestatario ) ∧ ∃ ncu (<ncu,nc> ∈ impositor)
nom_suc
MARCO

4. CALCULO RELACIONAL DE DOMINIOS DIVISIÓN s La división entre r y s, de esquemas R y S, requiere que S⊆R. s La división genera algunas tuplas de r proyectadas sobre R-S, aquellas que en su proyección sobre S tienen todas las tuplas de la relación s.

4. CALCULO RELACIONAL DE DOMINIOS DIVISIÓN
r (A a a b e e a B b b c d d b C c e e c e d D) d f f d f e s (C c e

D) d f

(A a e

B) b d

{ A,B / ∃C,D(< A,B,C,D>∈r ∧ ∀C1,D1 ( ¬(<C1,D1>∈s) ∨ (< A,B,C1,D1>∈r ) ) }

4. CALCULO RELACIONAL DE DOMINIOS DIVISIÓN, prespres←préstamo⇑prestatario
préstamo (nom_suc nro_pr nom_clien importe)
BOLIVAR BOLIVAR JUNIN BOQUERON JUNIN BOLIVAR 144 122 125 188 132 177 MARCO RUBEN RUBEN RUBEN PLATINI PLATINI 1500 1200 1800 1500 1600 1550

sucursal (nom_suc
CAÑOTO BOLIVAR BOQUERON JUNIN BOLIVAR

ciudad)
LPZ SCZ LPZ SCZ CBBA

Los clientes que tienen préstamo en todas las sucursales de SCZ { nc / ∃ns,np,im(< ns,np,nc,im>∈préstamo ∧ ∀ns1,ci ( ¬(<ns1,ci>∈sucursal) ∨ ¬(ci=‘SCZ’) ∨ ∃np1,im1 (<ns1,np1,nc,im1>∈préstamo ) ) }
RUBEN PLATINI

UNIDAD 4. SQL Y OTROS LENGUAJES

Objetivo Introducir a los lenguajes de uso más frecuente en bases de datos relacionales SQL y QBE.

1. SQL
s SQL se ha establecido claramente en el lenguaje estandar de bases de datos relacionales. s Es un lenguaje LDD o de definición de datos, LMD de manipulación de datos, y LCD o de control de datos. Todo esto en un solo lenguaje SQL.

1. SQL
s Los comando más importante son: s LDD, definición de datos: CREATE TABLE, CREATE INDEX, CREATE VIEW, DROP TABLE, DROP INDEX, DROP VIEW, ALTER TABLE, COMMENT. s LMD, manipulación de datos: SELECT, INSERT, UPDATE, DELETE. s LCD, control de datos: GRANT, REVOKE, COMMIT, ROOLBACK.

1. SQL SELECT
s Permite recuperar información de la base de datos. s Junto con insert, update y delete permiten manipular los datos de cualquier forma.

1. SQL SELECT - SELECCIÓN
préstamo (nom_suc
CAÑOTO BOLIVAR JUNIN BOQUERON JUNIN BOLIVAR

nro_pres
144 122 125 188 132 177

importe)
1500 1200 1800 1500 1600 1550

Ej.1.- “Los préstamos de la sucursal JUNIN” :

select * from prestamo where nom_suc=‘JUNIN’
JUNIN JUNIN 125 132 1800 1600

1. SQL SELECT - SELECCIÓN
préstamo (nom_suc
CAÑOTO BOLIVAR JUNIN BOQUERON JUNIN BOLIVAR

nro_pres
144 122 125 188 132 177

importe)
1500 1200 1800 1500 1600 1550

Ej.2.- “Los préstamos de la sucursal JUNIN, con importe mayor a 1650” :

select * from prestamo where nom_suc=‘JUNIN’ and importe>1650
JUNIN 125 1800

1. SQL SELECT - SELECCIÓN
resp_presta (nom_clien
SUCHA MARCO RUBÉN

nom_emple nro_pres)
RAMONA JAIME RUBÉN 134 122 178

Ej.3.- “Los clientes que tienen el mismo nombre que su oficial de créditos” :

select * from resp_presta where nom_clien=nom_emple
RUBÉN RUBÉN 178

1. SQL SELECT - PROYECCIÓN
préstamo (nom_suc
CAÑOTO BOLIVAR JUNIN BOQUERON JUNIN BOLIVAR

nro_pres
144 122 125 188 132 177

importe)
1500 1200 1800 1500 1600 1550

Ej.4.- “Número de préstamo e importe de los préstamos con importe mayor a 1500” :

select nro_pres, importe from préstamo where importe = 1500
125 132 177 1800 1600 1550

1. SQL SELECT - PROYECCIÓN
resp_presta (nom_clien
SUCHA MARCO RUBÉN

nom_emple nro_pres)
RAMONA JAIME RUBÉN 134 122 178

Ej.5.- “Los clientes que tienen el mismo nombre que su oficial de créditos, sin repetir el nombre” :

select nom_clien from resp_presta where nom_clien=nom_emple
RUBÉN

1. SQL SELECT - PRODUCTO
cliente (nom_clien
MARCO RUBÉN

calle
calle5 calle12

resp_presta ciudad) (nom_clien nom_emple nro_pres)
La Paz Potosí SUCHA MARCO RUBÉN RAMONA JAIME RUBÉN 134 122 178

Ej.6.- “Los clientes que tienen oficial y la ciudad donde radican”. Select * from cliente, resp_presta:
cliente. nom_clien
MARCO MARCO MARCO RUBÉN RUBÉN RUBÉN

calle
calle5 calle5 calle5 calle12 calle12 calle12

ciudad
La Paz La Paz La Paz Potosí Potosí Potosí

resp_presta. nom_clien nom_emple
SUCHA MARCO RUBÉN SUCHA MARCO RUBÉN RAMONA JAIME RUBÉN RAMONA JAIME RUBÉN 134 122 178 134 122 178

1. SQL SELECT - PRODUCTO
cliente. nom_clien
MARCO MARCO MARCO RUBÉN RUBÉN RUBÉN

Select * from cliente, resp_presta :
calle
calle5 calle5 calle5 calle12 calle12 calle12

ciudad
La Paz La Paz La Paz Potosí Potosí Potosí

resp_presta. nom_clien nom_emple nro_pres
SUCHA MARCO RUBÉN SUCHA MARCO RUBÉN RAMONA JAIME RUBÉN RAMONA JAIME RUBÉN 134 122 178 134 122 178

Select * from cliente, resp_presta where resp_presta.nom_clien, cliente.nom_clien
cliente. nom_clien
MARCO RUBÉN

calle
calle5 calle12

ciudad
La Paz Potosí

atiende. nom_clien
MARCO RUBÉN

nom_emple nro_pres
JAIME RUBÉN 122 178

1. SQL SELECT - PRODUCTO
Select * from cliente, resp_présta where resp_presta.nom_clien, cliente.nom_clien
cliente. nom_clien
MARCO RUBÉN

calle
calle5 calle12

ciudad
La Paz Potosí

resp_préstamo. nom_clien nom_emple nro_pres
MARCO RUBÉN JAIME RUBÉN 122 178

Select cliente.nom_clien, ciudad from cliente, resp_présta where resp_presta.nom_clien, cliente.nom_clien
cliente. nom_clien ciudad
MARCO RUBÉN La Paz Potosí

1. SQL SELECT - RENOMBRAR
s Permite cambiar el nombre de la relación, para diferenciar atributos del mismo nombre.
cliente (nom_clien
SUCHA RUBÉN RAMONA RENATO

calle
calle5 calle12 calle8 calle1

resp_presta ciudad) (nom_clien nom_emple nro_pres)
Sta. Cruz Potosí Tarija Potosí SUCHA MARCO RUBÉN RAMONA JAIME RUBÉN 134 122 178

Select * from cliente, resp_presta, cliente as cl

1. SQL SELECT - UNION
prestatario (nro_pres
144 125

nom_clien)
MARCO SUCHA

impositor

(nro_cuen
174 182

nom_clien)
MARCO RUBEN

Ej.7.- “Los clientes que tienen préstamo o depósito”

(select nom_clien from prestatario) union (select nom_clien from impositor)
nom_suc
MARCO SUCHA RUBEN

1. SQL SELECT - DIFERENCIA
prestatario (nro_pres
144 125

nom_clien)
MARCO SUCHA

impositor

(nro_cuen
174 182

nom_clien)
MARCO RUBEN

Ej.7.- “Los clientes que tienen préstamo pero no tienen depósito”

(select nom_clien from prestatario) except (select nom_clien from impositor)
nom_suc
SUCHA

1. SQL SELECT - INTERSECCIÓN
prestatario (nro_pres
144 125

nom_clien)
MARCO SUCHA

impositor

(nro_cuen
174 182

nom_clien)
MARCO RUBEN

Ej.7.- “Los clientes que tienen préstamo y depósito”

(select nom_clien from prestatario) intersect (select nom_clien from impositor)
nom_suc
MARCO

1. SQL SELECT - OUTER JOIN
s Reunión externa.- Cuando hacemos producto natural, las tuplas de una tabla que no se combinan con tuplas de la otra tabla no aparecen en la relación resultante. 1 Select * from tabla1, tabla2 where tabla1.columna (+) = tabla2.columna en el producto natural mantiene las tuplas de r que no se combinan.

1. SQL SELECT - OUTER JOIN
2 Select * from tabla1, tabla2 where tabla1.columna = tabla2.columna (+) en el producto natural mantiene las tuplas de s que no se combinan. 3 Select * from tabla1, tabla2 where tabla1.columna (+) = tabla2.columna (+) en el producto natural mantiene las tuplas de r y s que no se combinan.

1. SQL
SELECT - FUNCIONES AGREGADAS
s Funciones agregadas.- se puede usar las funciones agregadas: sum, avg, max, min, count, count_distinct, etc. Se usan así: select sum(importe) from préstamo suma todos los importes de la relación préstamo. s Agrupación.- Saca los resultados agrupando por los atributos indicados. La forma es: select sum(importe) from préstamo group by nom_suc suma los préstamos de cada sucursal.

1. SQL DELETE
s Hasta ahora todos los programas se han centrado en extraer información. Es necesario además, insertar, borrar y modificar información en la base de datos. s Borrado.- Permite eliminar tuplas de la base de datos. Se expresa así: delete from r where <condición> donde r es una relación y es una condición where de SQL, que obtiene las tuplas de r que se eliminarán.

1. SQL INSERT, UPDATE
s Inserción.- Permite aumentar una o varias tuplas en la base de datos. Se usa: insert into r E donde r es una relación y E es un consulta “select” o “values(...)” donde se indican los datos de la tupla a insertar. s Actualización.- Permite modificar uno o varios valores de la base de datos. Se puede usar la proyección extendida: update set <asigna> where <condición>

1. SQL VISTAS
s create view v as E; donde E es una consulta “select” del SQL, y v es el nombre de la vista.

1. QBE
s Query by example QBE es un lenguaje para bases de datos relacionales, basado en el cálculo relacional de dominios. s Por tanto es lo más próximo a un lenguaje no procedural, en la práctica no existe como lenguaje, está inmerso en los lenguajes comerciales, con excelentes resultados. s También se conoce el QUEL basado en el cálculo relacional de tuplas, el cual no los trataremos.

1. QBE SELECT
s Permite recuperar información de la base de datos. QBE elimina los resultados duplicados por default. s Junto con insert, update y delete permiten manipular los datos de cualquier forma.

1. QBE SELECT - SELECCIÓN
préstamo (nom_suc
CAÑOTO BOLIVAR JUNIN BOQUERON JUNIN BOLIVAR

nro_pres
144 122 125 188 132 177

importe)
1500 1200 1800 1500 1600 1550

Ej.1.- “Los préstamos de la sucursal JUNIN” :
préstamo P. JUNIN JUNIN nom_suc JUNIN 125 132 1800 1600 nro_pres importe

1. QBE SELECT - SELECCIÓN
préstamo (nom_suc
CAÑOTO BOLIVAR JUNIN BOQUERON JUNIN BOLIVAR

nro_pres
144 122 125 188 132 177

importe)
1500 1200 1800 1500 1600 1550

Ej.2.- “Los préstamos de la sucursal JUNIN, con importe mayor a 1650” :
préstamo P. JUNIN nom_suc JUNIN 125 1800 nro_pres importe >1650

1. QBE SELECT - SELECCIÓN
resp_préstamo (nom_clien
SUCHA MARCO RUBÉN

nom_emple nro_pres)
RAMONA JAIME RUBÉN 134 122 178

Ej.3.- “Los clientes que tienen el mismo nombre que su oficial de créditos” :
resp_préstamo P. RUBÉN nom_clien _x RUBÉN nom_emple _x 178 nro_pres

1. QBE SELECT - PROYECCIÓN
préstamo (nom_suc
CAÑOTO BOLIVAR JUNIN BOQUERON JUNIN BOLIVAR

nro_pres
144 122 125 188 132 177

importe)
1500 1200 1800 1500 1600 1550

Ej.4.- “Número de préstamo e importe de los préstamos con importe mayor a 1500” :
préstamo nom_suc 125 132 177 nro_pres P. 1800 1600 1550 importe P.>1650

1. QBE SELECT - PROYECCIÓN
resp_préstamo (nom_clien
SUCHA MARCO RUBÉN

nom_emple nro_pres)
RAMONA JAIME RUBÉN 134 122 178

Ej.5.- “Los clientes que tienen el mismo nombre que su oficial de créditos, sin repetir el nombre” :
resp_préstamo nom_clien P._x RUBÉN nom_emple _x nro_pres

1. QBE SELECT - PRODUCTO
cliente (nom_clien
MARCO RUBÉN

calle
calle5 calle12

resp_presta ciudad) (nom_clien nom_emple nro_pres)
La Paz Potosí SUCHA MARCO RUBÉN RAMONA JAIME RUBÉN 134 122 178

Ej.6.- “Los clientes que tienen oficial y la ciudad donde radican”.
cliente resp_préstamo nom_clien P._x nom_clien _x MARCO RUBÉN La Paz Potosí calle nom_emple ciudad P. nro_pres

1. QBE SELECT - UNION
prestatario (nro_pres
144 125

nom_clien)
MARCO SUCHA

impositor

(nro_cuen
174 182

nom_clien)
MARCO RUBEN

Ej.7.- “Los clientes que tienen préstamo o depósito”
prestatario impositor nro_pres P._x nro_cuen P._y nom_clien nom_clien MARCO SUCHA RUBEN

1. QBE SELECT - DIFERENCIA
prestatario (nro_pres
144 125

nom_clien)
MARCO SUCHA

impositor

(nro_cuen
174 182

nom_clien)
MARCO RUBEN

Ej.7.- “Los clientes que tienen préstamo pero no tienen depósito”
prestatario impositor nro_pres P._x nro_cuen _x nom_clien nom_clien

nom_suc
SUCHA

¬

1. QBE SELECT - INTERSECCIÓN
prestatario (nro_pres
144 125

nom_clien)
MARCO SUCHA

impositor

(nro_cuen
174 182

nom_clien)
MARCO RUBEN

Ej.7.- “Los clientes que tienen préstamo y depósito”
prestatario impositor nro_pres P._x nro_cuen _x nom_clien nom_clien

nom_suc
MARCO

1. QBE CAJA DE CONDICIÓN
préstamo (nom_suc
CAÑOTO BOLIVAR JUNIN BOQUERON JUNIN BOLIVAR

nro_pres
144 122 125 188 132 177

importe)
1500 1200 1400 1500 1600 1550

Ej.7.- “Los números de préstamo que tienen importe mayor a cualquier préstamo de la sucursal BOLIVAR”
préstamo nom_suc ¬ _v _v nro_pres P. importe _x _y

nro_pres
144 188 177

condición _v='JUNIN' and _x>_y

1. QBE RELACIÓN RESULTADO
préstamo (nom_suc nro_pres
144 122 125 188 132 177

importe)
1500 1200 1400 1500 1600 1550

prestatario (nro_pres nom_clien)
144 125 122 188 177 132 MARCO SUCHA TUCHO RUBÉN TUCHO JOSELITO

CAÑOTO BOLIVAR JUNIN BOQUERON JUNIN BOLIVAR

“Préstamos de sucursal BOLIVAR con nom_clien”
préstamo prestatario resultado P. nom_suc BOLIVAR nro_pres _x nom_clien _u nro_pres _x nom_clien _u nro_pres _x importe _v importe _v

1. QBE
FUNCIONES AGREGADAS
s Funciones agregadas.- se puede usar las funciones agregadas: sum, avg, max, min, cnt, cnt_distinct, etc. Es necesario aumentar .all para evitar que elimine los duplicados. s Agrupación.- Saca los resultados agrupando por los atributos indicados.

1. QBE
FUNCIONES AGREGADAS

préstamo

nom_suc BOLIVAR

nro_pres

importe P.sum.all

prestatario

nro_pres P.cnt.unq.all nom_suc P.G

nom_clien

préstamo

nro_pres

importe P.avg.all._x

condición avg.all._x > 8000

1. SQL DELETE
s Hasta ahora todos los programas se han centrado en extraer información. Es necesario además, insertar, borrar y modificar información en la base de datos. s Borrado.- Permite eliminar tuplas de la base de datos. Por ejemplo para eliminar los préstamos de la sucursal JUNIN:
préstamo D. nom_suc BOLIVAR nro_pres importe

1. QBE INSERT, UPDATE
s Inserción.- Permite aumentar una o varias tuplas en la base de datos. Por ejemplo para insertar un cliente:
cliente I. nom_clien JOSELITO calle ca3 ciudad SCZ

s Actualización.- Permite modificar uno o varios valores de la base de datos. Por ejemplo para incrementar el 5% a todos los saldos de las cuentas:
cuenta U. nom_suc nro_cuen saldo _x * 1.05 _x

UNIDAD 5. OPTIMIZACIÓN DE CONSULTAS

Objetivo Usar las técnicas existentes para optimizar las consultas a las bases de datos relacionales. Especialmente aquellas que son críticas en el funcionamiento del sistema.

Dr. Renato Barrera.

1. INTRODUCCIÓN
s El enfoque ciego y el de descomposición permiten responder bien y barato. s Ambos se basan en representaciones algebraicas. s Bueno, en realidad es optimización de las respuestas no de consultas.

2. EL MÉTODO CIEGO
s Trabaja con un árbol sintáctico. s Es una receta de cocina. s Fácil de aplicar s Bastante bueno. s Es ciego a: La implementación de los operadores, quizá los operadores lo consideran, pero por lo general si optimiza. !Y cuando lo necesitás! Estadisticas de los datos, quizá de acuerdo a la cantidad de datos no es necesario.

2. EL MÉTODO CIEGO MOTIVACIÓN
s Cuesta menos procesar relaciones pequeñas que grandes. s Las selecciones y proyecciones reducen el tamaño de las relaciones s Luego, haga usted cuanto antes las selecciones y proyecciones.

2. EL MÉTODO CIEGO PASOS CIEGOS
1 Obtenga el árbol sintáctico 2 Transforme producto natural en “selección producto cartesiano”.
⇑ ⇔ σ x

3 Empuje las selecciones lo mas abajo posible 4 Empuje proyecciones lo mas abajo posible

2. EL MÉTODO CIEGO PASOS CIEGOS
s Unifique selecciones y proyecciones πA πB ⇔ πA∩B σc1 σc2 ⇔ σc1∧c2 s Recombine juntas s Haga planes de ejecución

2. EL MÉTODO CIEGO EJEMPLO
s “Dame nombres de los proveedores de partes de color rojo”.

π sname (σ color=‘rojo’ ( (s ⇑ sp) ⇑ p))
1 Árbol sintáctico

⇑ ⇑

πsname σcolor=‘rojo’ p

s sp

2. EL MÉTODO CIEGO EJEMPLO
2 Descomposición de juntas 3 Empuja selecciones hacia abajo

πsname σcolor=‘rojo’ σp.p#=sp.p# σs.s#=sp.s#
x x

πsname σp.p#=sp.p# σs.s#=sp.s#
x x

p s sp

σcolor=‘rojo’ p

sp

s

2. EL MÉTODO CIEGO EJEMPLO
4 Empuja proyecciones hacia abajo

πsname σp.p#=sp.p#

πp#, sname σs.s#=sp.s#
x

x

πsname, s# s

πp#, s# sp

πp# σcolor=‘rojo’ πp#, color p

2. EL MÉTODO CIEGO EJEMPLO
5 6 Unificar proyecciones y selecciones. Innecesario Recombinar juntas

πsname πp#, sname
⇑ ⇑

πsname, s# s

πp#, s# sp

πp# σcolor=‘rojo’ πp#, color p

2. EL MÉTODO CIEGO EJEMPLO
7 Planes de ejecución

πsname πp#, sname
⇑ ⇑

πsname, s# s

πp#, s# sp

πp# σcolor=‘rojo’ πp#, color p

3. MÉTODO DE DESCOMPOSICIÓN
s Se concentra en juntas s Todas las otras operaciones se consideran triviales s Representa consulta como “grafo de consulta”

3. MÉTODO DE DESCOMPOSICIÓN
s Semijunta A←B ⇔

π A ( A ⇑ B)

s Grafo de consulta.Cada nodo del grafo es una relación Existe lado entre nodo A y nodo B, si A y B están unidos por una junta.

3. MÉTODO DE DESCOMPOSICIÓN GRAFO DE UNA RUTA
s Cuando el grafo es de una ruta, se hace un paso atrás y uno adelante r1 r2 rk-1 rk

HACIA ATRÁS ratk = rk ratk-1 = rk-1 ← ratk ratk-2 = rk-2 ← ratk-1 ........... rat2 = r2 ← rat3 rat = r ← rat

HACIA ADELANTE rad1 = rat1 rad2 = rat2 ← rat1 rad3 = rat3 ← rat2 ........... radk-1 = ratk-1 ← ratk-2 rad = rat ← rat

3. MÉTODO DE DESCOMPOSICIÓN GRAFO DE VARIAS RUTA
s Método.1 Escoja un nodo del árbol como raíz del mismo 2 Oriente los lados del árbol hacia fuera de la raíz 3 Haga el barrido hacia atrás de cada rama de árbol 4 Haga barrido hacia delante, partiendo de la raíz 5 Mande ensamblar

3. MÉTODO DE DESCOMPOSICIÓN GRAFO DE VARIAS RUTA
Escoja una raiz

B A A

raiz

C

E D B D C E

Oriente los lados

3. MÉTODO DE DESCOMPOSICIÓN GRAFO DE VARIAS RUTA
Paso hacia atrás E Eat=E Bat=B Dat=D←E

Aat=A

A

B

D

Cat=((C ←Aat) ←Bat) ←Da Cad=Cat Dad=Dat←Cad Ead=Eat←Dad

C

Paso hacia delante Aad=Aat ←Cad Bad=Bat←Cad

Envíe A B C D E y ensamble.

3. MÉTODO DE DESCOMPOSICIÓN GRAFO CON CICLO
“Dame las personas que practican su deporte nacional”
deporte_practicado (deporte persona) origen (persona país)

Futbol Jai Alai

Venancio Joao

Joao Venancio

Brasil España

deporte_nacional (país deporte)

deporte_practicado origen deporte_nacional

Brasil España

Futbol Jai Alai

Quienes?

!!NADIE!!

3. MÉTODO DE DESCOMPOSICIÓN GRAFO CON CICLO
origen deporte_practicado

deporte_nacional s TRUCO.- migración de llaves. 1 Rompa un nodo del ciclo 2 Añada una llave a tal nodo, tomo ese nodo como raíz. 3 Haga pasos hacia atrás y hacia delante: Migrando llaves cuando haga semijunta con otra relación sin llave, y usando llaves cuando junte con relación que tiene llave.

3. MÉTODO DE DESCOMPOSICIÓN GRAFO CON CICLO
origen deporte_practicado deporte_nacional origen1 dep_nac
país)

dep_prac

origen2

origen2 (llave,

persona,

1 2

Joao Brasil Venancio España

3. MÉTODO DE DESCOMPOSICIÓN GRAFO CON CICLO
origen1
dep_nac (país,

dep_prac
deporte)

dep_nac
origen2_at (llave, persona,

origen2
país)

Brasil España

Futbol Jai Alai

1 2

Joao Venancio

Brasil España

dep_nac_at = dep_nac ← origen2 dep_nac_at (llave, país, deporte)

1 2

Brasil Futbol España Jai Alai

3. MÉTODO DE DESCOMPOSICIÓN GRAFO CON CICLO
origen1
dep_prac (deporte

dep_prac
persona)

dep_nac
dep_nac_at (llave, país,

origen2
deporte)

Futbol Jai Alai

Venancio Joao

1 2

Brasil Futbol España Jai Alai

dep_prac_at = dep_prac ← dep_nac_at dep_prac_at (llave, deporte, persona)

1 2

Futbol Jai Alai

Venancio Joao

3. MÉTODO DE DESCOMPOSICIÓN GRAFO CON CICLO
origen1
origen1 (llave, persona,

dep_prac
país)

dep_nac
dep_prac_at (llave, deporte,

origen2
persona)

1 2

Joao Venancio

Brasil España

1 2

Futbol Jai Alai

Venancio Joao

origen1_at = origen1 ← dep_prac_at origen1_at (llave, persona, país)

!!!!NADIE!!!, correcto

Fin Renato.

UNIDAD 6. CREACIÓN DE BASES DE DATOS

Objetivo Implementar bases de datos relacionales, utilizando los recursos y lenguajes existentes en el momento.

INTRODUCCIÓN
s La implementación de la base de datos comienza con la creación de las tablas.
l CREATE SEQUENCE s_dept_id l l l l l MINVALUE 1 MAXVALUE 9999999 INCREMENT BY 1 START WITH 51 NOCACHE NOORDER NOCYCLE;

INTRODUCCIÓN
l CREATE TABLE s_dept l l l l l l l (id NUMBER(7) CONSTRAINT s_dept_id_nn NOT NULL, name VARCHAR2(25) CONSTRAINT s_dept_name_nn NOT NULL, region_id NUMBER(7), CONSTRAINT id PRIMARY KEY (id), CONSTRAINT nr UNIQUE (name,region_id));

l INSERT INTO s_dept VALUES l (10, 'Finance',1);

1. ÍNDICES
s Los índices aceleran la recuperación de datos, pero ocupan espacio, pueden ser: unique admitir valores duplicados s Las claves primarias son siempre unique s Las claves foráneas pueden admitir duplicados s Pueden crearse índices sobre grupos de campos

1. ÍNDICES
s Create unique index index_id on s_dept(id) s Create index index_name on s_dept(name) s Create unique index index_name_reg on s_dept(name, region_id)

2. INTEGRIDAD REFERENCIAL
s Permite asegurar la consistencia entre las relaciones.
Clave primaria Padre (maestro)

Clave foránea

Hijo (detalle)

Todo hijo debe tener un padre Todo padre debe tener una clave primaria única

2. INTEGRIDAD REFERENCIAL
s Las claves primarias deben declararse como not nulls. s La clave primaria debe ser unique. s Si el usuario borra una clave primaria, y existen claves foráneas asociadas, falla. s Si el usuario modifica una clave primaria y existen claves foráneas asociadas, falla. s Si el usuario actualiza o inserta una clave foránea y no existe clave primaria, falla.

2. INTEGRIDAD REFERENCIAL
s Referencias cíclicas
Padre Hijo

s Autoreferencias

Padre/Hijo

Padre

s Referencias múltiples
Hijo Hijo

2. INTEGRIDAD REFERENCIAL Referencias cíclicas
l ALTER TABLE s_dept ADD l CONSTRAINT s_dept_id_pk l PRIMARY KEY (id),

l ALTER TABLE s_dept ADD l CONSTRAINT s_dept_region_id_fk l FOREIGN KEY (region_id) l REFERENCES s_region (id);

2. INTEGRIDAD REFERENCIAL Autoreferencias
l CREATE TABLE empleado ( l emp_num number NOT NULL, l gerente number, l CONSTRAINT pk_en l PRIMARY KEY (emp_num), l CONSTRAINT fk_en l FOREIGN KEY (gerente) l REFERENCES empleado(emp_num) l );

2. INTEGRIDAD REFERENCIAL Referencias múltiples
l ALTER TABLE tienda l ADD CONSTRAINT pk_tienda l PRIMARY KEY (tienda_cod); l ALTER TABLE video l ADD CONSTRAINT fk1_tienda FOREING KEY l (tienda_cod) REFERENCES tienda; l ALTER TABLE empleado l ADD CONSTRAINT fk2_tienda FOREING KEY l (tienda_cod) REFERENCES tienda;

3. CLAVES Y COLUMNAS CON VALORES ÚNICOS
s Toda clave primaria es un índice. Las claves primarias y foráneas son estructurales: implican una relación con otra relación. s Un índice es básicamente una herramienta de optimización de performance: no es parte de la estructura: “podemos hacer un drop de un índice,
no podemos eliminar una clave primaria”.

s Las claves foráneas no incluyen un índice, cuando la tabla crece es importante incorporarlo para mejorar la performance.

3. CLAVES Y COLUMNAS CON VALORES ÚNICOS
s La restricción unique asegura que todas las filas tendrán un valor único en la columna indicada. s Una columna que es primary key es automáticamente de valor único. s Un índice único también asegura esta propiedad:
ALTER TABLE s_dept ADD CONSTRAINT s_dept_na_reg_id_uk UNIQUE (name, region_id);

4. PERMISOS DE ACCESO Y PRIVILEGIOS
s Las autorizaciones de uso de la base de datos son denominadas privilegios. s El dueño de la base de datos tiene todos los privilegios. s Existen privilegios sobre: la base las tablas las columnas

4. PERMISOS DE ACCESO Y PRIVILEGIOS
s Connect.- Permite crear un usuario que podrá conectarse a otras bases de datos si le dan permiso. Se usa para los usuarios comunes. Grant connect to pedro identified by caña; s Resource.- Da permiso a un usuario ya creado con “connect”, para crear una base de datos, incluyendo tablas, procedimiento almacenados, índices, etc. Grant resource to paty identified by minie;

4. PERMISOS DE ACCESO Y PRIVILEGIOS
s DBA.- Da permiso a un usuario con permiso “resource”, para convertirse en administrador de la base de datos. Grant dba to katia identified by clarabella;

4. PERMISOS DE ACCESO Y PRIVILEGIOS
s Solo el dueño puede dar permisos para accesar a una base de datos. Se puede usar: all, select, update, insert, delete y otros. s Por ejemplo Paty puede autorizar a Pedro: Grant all on s_dept to pedro; s Paty autoriza a Katia para actualizar el atributo name de la tabla s_dept Grant update(name) on paty.s_dept to katia;

5. VISTAS
s Restringe el uso de columnas de tablas s Restringe el uso de filas de tablas s Restringe los updates a rangos s Acceso a datos derivados s Encapsular detalles de un select complicado s Permite optimizar consultas, de acuerdo a los criterios del método ciego.

5. VISTAS
s CREATE VIEW v_cliente AS SELECT cod, nom, apell FROM cliente; s CREATE VIEW v_cli_est AS SELECT cli_cod, dir, ciu, estado.nom FROM cliente, estado WHERE cliente.est=estado.cod; s SELECT * FROM v_cli_est WHERE cli_cod=105;

UNIDAD 7. GENERACIÓN DE APLICACIONES

Objetivo Utilizar herramientas Oracle para generar bases de datos y desarrollar aplicaciones. - Control de usuarios - Desarrollo de aplicaciones en Oracle

UNIDAD 8. DISEÑO DE BASES DE DATOS RELACIONALES

Objetivo Aplicar las reglas de normalización de tablas en bases de datos relacionales, propuestas por Cood y otros.

1. DIFICULTADES EN EL DISEÑO DE BD RELACIONALES
s El DBMS no es suficiente, de ninguna manera, para administrar una base de datos relacional, en gran parte depende del DBA. Para comenzar, debe aplicar las siguientes restricciones cuando crea las tablas: 1 El orden de las filas no debe ser significante. 2 Orden de columnas no debe ser significante. 3 Cada intersección fila/columna debe contener un valor simple del atributo. 4 Cada fila en una tabla debe ser distinta.

2. REDUNDANCIA VERSUS DUPLICIDAD DE DATOS
s Duplicidad.- La duplicidad de datos está presente cuando un atributo tiene dos valores idénticos, la duplicidad si está permitida. Al borrar un datos repetido se pierde información.
p (p#, color) p (p#, color)

P1 p2 p3

rojo azul rojo

P1 p2 p3

rojo azul

!!PERDI LA INFORMACIÓN!!, QUE COLOR TIENE p3?

2. REDUNDANCIA VERSUS DUPLICIDAD DE DATOS
s Redundancia.- Un dato es redundante cuando está repetido, esto es, se puede borrar sin perder información, la redundancia no está permitida en bases de datos, es 100% responsabilidad del DBA evitar la redundancia.
sp (s#, p#, pnombre) sp (s#, p#, pnombre)

s2 s3 s4

p1 p1 p3

lápiz lápiz borrador

s2 s3 s4

p1 p1 p3

lápiz borrador

NO PIERDO LA INFORMACIÓN, p1 ES lápiz

3. REPETICIÓN DE GRUPOS PRIMERA FORMA NORMAL
s La primera forma normal tiene que ver con las siguientes tres forma de almacenamiento de datos en una tabla de una base de datos relacional.

3. REPETICIÓN DE GRUPOS PRIMERA FORMA NORMAL
s Repetición de grupos.- Mencionamos que cada intersección fila/columna debe contener un valor simple del atributo. Estas formas de la tabla sp, no cumplen la primera forma normal:
sp (s#, snombre sp (s#, snombre p# ) p# )

s5 s2 s7 s9

Aria Baratillo ABC Tiluchi

p1 p1, p4 p6 p8,p2,p6

s5 Aria p1 s2 Baratillo p1 p4 s7 ABC p6 s9 Tiluchi p8 p2 p6

3. REPETICIÓN DE GRUPOS PRIMERA FORMA NORMAL
s Atributos separados.- Para evitar la repetición de grupos podría crearse tres atributos p#_1a, p#_2a, p#_3a, pero esto tampoco está permitido por la 1FN, porque p# es un solo atributo indivisible.
sp (s#, snombre p#_1a p#_2a p#_3a )

s5 s2 s7 s9

Aria Baratillo ABC Tiluchi

p1 p1 p6 p8

p4 p2 p6

4. DETERMINANTES E IDENTIFICADORES
s Determinante o “atributo que tiene dependencia funcional” .- Un atributo A es determinante de otro atributo B, si cada valor de A tiene precisamente un valor asociado de B.
carnet_id combre_persona

Carnet_id es determinante de nombre_persona porque un carnet tiene un solo nombre. Y EN SENTIDO CONTRARIO?

4. DETERMINANTES E IDENTIFICADORES
s Diagrama de dependencias funcionales.- Es posible generar un diagrama de dependencias funcionales. Las otras reglas de normalización se basan en estas dependencias funcionales, por tanto el DBA si no tiene el diagrama debe conocer a la perfección estas dependencias.
p_nombre p# cant_en_stock

4. DETERMINANTES E IDENTIFICADORES
s Determinantes compuestos.- A veces un grupo de atributos son determinate de otro atributo.

factura#

fecha_factura

artículo#

cant_vendida

4. DETERMINANTES E IDENTIFICADORES
s Dependencias transitivas.- Si A determina a B y B determina a C, por definición A determina a C y se llama dependencia transitiva. Pero esta última no es necesario representarla en el diagrama, se sobreentiende.
A B C

factura#

cliente#

nombre_cli

4. DETERMINANTES E IDENTIFICADORES
s Identificadores.- Identificador de una tabla es uno o más atributos que identifican plenamente a una fila, además, debe tener la mínima cantidad de atributos. s La regla que dice que no pueden haber dos filas idénticas en una tabla, significa que toda tabla tiene al menos un identificador. Algunas tablas tiene varios identificadores.
factura# cliente# nombre_cli

5. FORMAS NORMALES, COOD SEGUNDA FORMA NORMAL
s “Una tabla no cumple la 2FN cuando un atributo, que no sea identificador ni parte de identificador, depende de una parte de un identificador”.
parte# cantidad

bodega#

dirección_bodega

5. FORMAS NORMALES, COOD SEGUNDA FORMA NORMAL
s “Una tabla no cumple la 2FN cuando un atributo, que no sea identificador ni parte de identificador, depende de una parte de un identificador”. NORMALIZADO.
parte# cantidad bodega#

bodega#

dirección_bodega

5. FORMAS NORMALES, COOD TERCERA FORMA NORMAL
s “Una tabla no cumple la 3FN cuando un atributo, que no sea identificador ni parte de identificador, depende de otro atributo que tampoco es identificador ni parte de identificador”.

factura#

cliente#

nombre_cli

5. FORMAS NORMALES, COOD TERCERA FORMA NORMAL
s “Una tabla no cumple la 3FN cuando un atributo, que no sea identificador ni parte de identificador, depende de otro atributo que tampoco es identificador ni parte de identificador”. NORMALIZADO.
factura# cliente#

cliente#

nombre_cli

5. FORMAS NORMALES, COOD
FORMA NORMAL DE BOYCE-COOD
s Simplemente. “Una tabla está en FNBC si todo determinante es un identificador”.
nombre_cliente nombre_banquero nombre_sucursal

OJO. !!DOS IDENTIFICADORES!!

5. FORMAS NORMALES, COOD
FORMA NORMAL DE BOYCE-COOD
s Simplemente. “Una tabla está en FNBC si todo determinante es un identificador”. NORMALIZADO.
nombre_cliente nombre_banquero

nombre_banquero

nombre_sucursal

5. FORMAS NORMALES, COOD CUARTA FORMA NORMAL
s La 4FN y 5FN tienen que ver con hechos ”multivalorados” , por ejemplo el empleado que tiene muchos dependientes, o el empleado que tiene muchas habilidades.
empleado# dependiente

empleado#

habilidad

5. FORMAS NORMALES, COOD CUARTA FORMA NORMAL
s Una tabla está en 4FN si cumple: ° No tiene dos o más hechos multivalorados independientes ° Está en FNBC.
auto empleado# dirección

5. FORMAS NORMALES, COOD CUARTA FORMA NORMAL
s Una tabla está en 4FN si cumple: ° No tiene dos o más hechos multivalorados independientes ° Está en FNBC. NORMALIZADO
empleado# auto

empleado#

dirección

5. FORMAS NORMALES, COOD QUINTA FORMA NORMAL
s La 5FN tiene que ver con hechos multivalorados dependientes como: p# s# j# s Este tipo de tablas solo es posible descomponer en otras más pequeñas, si hacemos que las tuplas cumplan la condición: si (sx,px,j1)∈spj y (sx,p1,jx)∈spj y (s1,px,jx)∈ spj entonces (s1,p1,j1)∈spj

5. FORMAS NORMALES, COOD QUINTA FORMA NORMAL
s Si la tabla cumple la condición indicada: si (sx,px,j1)∈spj y (sx,p1,jx)∈spj y (s1,px,jx)∈ spj entonces (s1,p1,j1)∈spj, entonces se puede normalizar separando en tres tablas:

s#

p#

p#

j#

s#

j#

5. FORMAS NORMALES, COOD QUINTA FORMA NORMAL
s Dependencia de junta.- Una relación r satisface una dependencia de junta: DJ*(x1, x2,....,xn), si es igual a la junta o producto natural de sus proyecciones sobre x1, x2,....,xn. Donde x1, x2,....,xn son subconjuntos del esquema de r. s Una relación está en 5FN si tiene una dependencia de junta DJ*(x1, x2,....,xn), y cada una de las proyecciones de r sobre x1,x2,..,xn, tiene como identificador un identificador de r.

UNIDAD 9. BASES DE DATOS ORIENTADAS A OBJETOS
s Nuevas aplicaciones de las bases de datos s El modelo orientado a objetos s Lenguajes orientados a objetos s Lenguajes de programación persistentes s Sistemas C++ persistentes

UNIDAD 10. BD RELACIONALES ORIENTADAS A OBJETOS
s Relaciones anidadas s Los tipos complejos y la programación orientada a objetos s Consultas con tipos complejos s Creación de valores y de objetos complejos s Comparación entre las bases de datos orientadas a objetos y las bases de datos relacionales orientadas a objetos

CONCLUSIÓN

PARTE II

ANÁLISIS Y DISEÑO ESTRUCTURADO

Objetivos
Aplicar en detalle los conocimientos científicos, capacidades técnicas y métodos básicos, para el análisis y diseño estructurado de sistemas de información. s Desarrollar un proyecto de ingeniería referente a un sistema de información.
s

DEFINICIONES
l Análisis estructurado Deriva en un modelo estructurado de requerimientos l Diseño estructurado q Desarrollo de un sistema computarizado, como solución a un problema
q

OBJETIVOS DEL AE Y DE
l Mejorar la calidad del software y recudir el riesgo de fallas. l Permitie confiabilidad, flexibilidad, facilidad de mantenimiento, eficiencia, portabilidad y seguridad.

BENEFICIOS DEL AE Y DE
l Concentrarse sobre el propósito fundamental del sistema l Desarrollo de documentación del software l Creación de un mapa del sistema

HISTORIA DEL ANÁLISIS ESTRUCTURADO
l Structured Analysis Design Technique
q

Douglas Ross Tom DeMarco

l Structured Design
q

HISTORIA DEL DISEÑO ESTRUCTURADO
l Desarrollado en los 1970s l Larry Constantine l Edward Yourdon l Diseño estructurado de procesos l Michael Jackson y Jean Dominique Warnier l Diseño estructurado de datos

1. INTRODUCCIÓN
l Concepto general de sistema l Clasificación de los sistemas l Sistemas automatizados. Clasificación. l Principios generales de los sistemas. l El análisis de sistemas.

2. PARTICIPANTES EN EL ANÁLISIS DE SISTEMAS
l Usuarios. l Dirección. l Auditores, encargados estándares. l Analistas de sistemas. l Diseñador de sistemas. l Programadores. l Personal operativo.

de

calidad

y

3. TÉCNICAS DE ENTREVISTAS Y RECOLECCIÓN DE DATOS
l Objetivos de una entrevista l Tipos de entrevistas l Guías para conducir entrevistas l Posibles formas de resistencia en la entrevista l Problemas que hay que evitar l Formas alternativas de recolectar información

4. HERRAMIENTAS DE ANÁLISIS ESTRUCTURADO
l Características de las herramientas l Diagrama de flujo de datos l Diagrama entidad relación l Diagramas de transición de estado l Diagramas de estructura

5. CICLO DE VIDA DE LOS SISTEMAS
l Concepto de ciclo de vida de los proyectos l El ciclo de vida clásico. Desventajas l Ciclo de vida semiestructurado l Ciclo de vida estructurado. Ventajas. Formas de aplicación l Ciclo de vida por prototipos l Las herramientas CASE

6. ASPECTOS IMPORTANTES DE LOS SISTEMAS AUTOMATIZADOS
l Productividad l Confiabilidad l Facilidad de mantenimiento l Eficiencia l Portabilidad l Seguridad

UNIDAD 3. PROCESOS DEL ANÁLISIS
l El libro de Edward Yourdon fue escrito en 1989
q

después de dos años de estudio y experiencias. Modelo ambiental Modelo del comportamiento

l Modelo esencial
q q

l Implementación del modelo

13. EL MODELO ESENCIAL
l Dificultades en la identificación de requerimientos l El concepto de esencia del sistema l Dificultades en la construcción de un modelo l Componentes del modelo esencial

14. EL MODELO AMBIENTAL
l Descripción del propósito del sistema l Diagrama de contexto l Lista de eventos l Otros componentes del modelo ambiental l Construcción del modelo ambiental

13. EL MODELO AMBIENTAL Diagrama de contexto
l Diagrama de flujo de datos de nivel alto l Sistema en perspectiva del mundo real l Simple caja negra con interfaces a fuentes externas y usuarios

14. EL MODELO AMBIENTAL Diagrama de contexto
Monedas y selección

Soda en lata y cambio

El usuario

Máquina monedera de soda en lata Monedas

La máquina

Soda en lata y cambio

14. EL MODELO AMBIENTAL Lista de eventos
l Vendedor llena máquina de soda en lata con soda l Vendedor saca monedas de la máquina de soda en lata l Vendedor aumenta cambio a máquina de soda en lata l Usuario inserta monedas en la máquina de soda en lata l Usuario selecciona el sabor de la soda l Usuario saca la soda de la máquina de soda en lata l Usuario saca su cambio de la máquina de soda en lata

Ejercicio
Caso de estudio
q

q

Automatizar el sistema de control de inventario para un almacén de salida de grandes cajas (muebles, herramientas, abarrotes, etc.). Use el AE y el DE para modelar la situación actual y determinar como puede ser automatizado el sistema.

Ejercicio
Situation actual
q

q

q

q

Cada dia, Ramona introduce los recibos de ventas, en una hoja Excel que Renato generó. La hoja electrónica marca los ítems que deben ser reordenados. Ramona escribe las órdenes de compra para cada ítem que fue marcado. Cuando el ítem llega, Ramona introduce este en la hoja electrónica.

Ejercicio
l Propósito del nuevo sistema
q q q

Ramona está comenzando a fallar. Rosalva necesita más control sobre el sistema. Renato está comenzando a perder peso en la organización, solo tiene tiempo para mantener la hoja electrónica.

Ejercicio
Propósito del ejercicio:
q

q q

familiarizarse con lo que es un diagrama de contexto, y poder desarrollar un sesión con lluvia de ideas, evaluar las ventajas y desventajas de la técnica, determinar el criterio de entrada y salida en la sesión de construcción del diagrama de contexto.

Ejercicio
l Proceso
q

Desarrollar el diagrama de contexto y discutir el resultado.

l Símbolos

Sistema

Interacciones

Objectos externos

15. EL MODELO DEL COMPORTAMIENTO
l Identificación de respuestas a los eventos l Conexión de las respuestas l Desarrollo del modelo inicial l Nivelación de los DFDs l Completando el diccionario de datos l Completando las especificaciones del proceso l Refinamiento del diagrama entidad relación

16. EL MODELO A IMPLEMENTARSE
l Determinar los límites a automatizarse l Determinar dispositivos de entrada y salida l Formatos de entrada y salida l Diseño de formularios l Códigos de entrada y salida l Identificar soporte manual adicional l Especificación de restricciones de operaciones

UNIDAD 2. HERRAMIENTAS PARA MODELAR SISTEMAS
l Diagrama de flujo de datos DFD l Diccionario de datos DD l Especificación de procesos l Diagramas entidad relación l Diagramas de transición de estado

7. DIAGRAMA DE FLUJO DE DATOS
l Componentes de los diagramas de flujo de datos (DFD) l Guías para la construcción de un DFD l DFDs con niveles l Extensiones de DFDs a procesos de tiempo real

7. DIAGRAMA DE FLUJO DE DATOS
l El diagrama de flujo de datos DFDs, muestran la descomposición funcional, con un énfasis en la transferencia de datos dentro y fuera del sistema, y entre unidades de programa.

7. DIAGRAMA DE FLUJO DE DATOS Componentes de los DFDs
l Notación (Yourdon/DeMarco)
Flujo Proceso

Terminador Almacén

DATOS Guías para la construcción de un DFD
l Como debe ser la notación de los DFDs?
q q

Flujo de dato: nombre-frase que describa el dato. Terminator: nombre o frase que describa el sistema,
agente, dispositivo, u otro, al que el dato entra, y donde el dato existe en el sistema.

q

Almacén de datos: nombre-frase del archivo, base de
datos o repositorio donde el sistema guarda el dato.

q

Proceso: verbo-frase que describe la operación hecha

sobre el dato: puede contener el nombre de un sistema u operación que manipula el dato.

DATOS Guías para la construcción de un DFD
l Donde comenzar?
q q

Diagrama de contexto Nivel cero del DFD
Monedas y selección Soda en lata y cambio

El usuario

Máquina monedera de soda en lata Monedas

La máquina

Soda en lata y cambio

7. DIAGRAMA DE FLUJO DE DATOS DFDs con niveles
l Como continuar?
q

q q

Descomponer los procesos en niveles más y más bajos hasta que estén listos para representar diseño detallado. Cada DFD debería tener entre 3 y 9 procesos. La descripción de procesos primitivos se llama “especificación de procesos” o “miniespecificaciones”, usualmente se representa en seudocódigo.

7. DIAGRAMA DE FLUJO DE DATOS DFDs con niveles
Monedas y selección Soda en lata y cambio

El usuario

Máquina monedera de soda en lata Monedas

La máquina

Soda en lata y cambio

Monedas Cambio cuenta

Monedas Deposito Soda lata

Cambio

Cambio coloca Momedas saca

Monedas Congelador Sodas lata

Selección Soda lata despacha

carga

Sodas lata

7. DIAGRAMA DE FLUJO DE DATOS DFDs con niveles
lTerminador Vs. Almacén:
Un terminador (fuente de datos o basurero) está fuera de la frontera del sistema en análisis; un almacén de datos está dentro y bajo el control del sistema objeto de análisis.
Terminador
Almacén

7. DIAGRAMA DE FLUJO DE DATOS DFDs con niveles
Y X F a f2 X f1 b f3 c d f4 e f5 f f6 g h f7

Y

c d

f41 f44

c1 f42 c2 d2 f43 d1 f45

e

7. DIAGRAMA DE FLUJO DE DATOS DFDs con niveles
lBalanceo :
q

q

Los “datos de entrada” del nivel hijo, deben ser idénticos a los “datos de entrada” del nivel padre. Los “datos de salida” del nivel hijo, deben ser idénticos a los “datos de salida” del nivel padre.

7. DIAGRAMA DE FLUJO DE DATOS DFDs con niveles
l Consideraciones prácticas:
q q

q

q

q

Cada símbolo debe ser etiquetado. No hay procesos sin flujos de datos de entrada. No hay procesos sin flujos de datos de salida. Los datos no fluyen diréctamente entre datos fuente, basureros o almacenes. Los niveles deberían ser balanceados.

7. DIAGRAMA DE FLUJO DE DATOS DFDs con niveles
l Sumario de DFD:
q

Se centra en aspectos funcionales del sistema:
• •

Qué funciones debe ejecutar el sistema? Cuales son las interacciones entre estas funciones?

q

Representar el DFD en niveles es una técnica “Top down”.

8. DICCIONARIO DE DATOS
l Necesidad de una notación l Notación: definiciones, datos elementales, datos opcionales, iteracción-selección-alias l Como mostrar el diccionario de datos al usuario l Implementación del Diccionario de Datos

8. DICCIONARIO DE DATOS
l Es un repositorio de descripciones detalladas referentes a varias construcciones que aparecen el cada DFD. l No hay un formato formal, pero cada construcción debería tener una entrada en el Diccionario de Datos. l Muchas de las herramientas CASE proveen el Diccionario de Datos en forma automática.

8. DICCIONARIO DE DATOS
l Describir por cada entrada:
q

q q q q

Tipo(Flujo de datos, Almacén de datos,Terminador, Proceso) Nombre Alias Descripción Contenido

8. DICCIONARIO DE DATOS
l Un ejemplo:
q q q q

q

Tipo: Flujo de dato Nombre:Cambio Alias: Description: Fdesde el proceso “coloca” hasta el almacén de datos “depósito” …... Contenido: …….

9. ESPECIFICACIÓN DE PROCESOS
l Lenguaje estructurado l Pre/post condiciones l Tablas de decisión l Gráficos y diagramas l Diagramas de flujo l Diagramas Nassi-Shneiderman

9. ESPECIFICACIÓN DE PROCESOS
l Son las especificaciones de los procesos primitivos, o mini-especificaciones.
q

q

q

Los pasos esenciales de tipo procedural, para lograr la acción necesaria de un proceso primitivo. Tipos de acción: secuencial, paralela, decisión e iteracción. Español estructurado, árbol o tabla de decisiones, o seudocódigo…

9. ESPECIFICACIÓN DE PROCESOS
Monedas Cambio cuenta Deposito Soda lata Selección Soda lata despacha Congelador Monedas Sodas lata saca Monedas Cambio Cambio coloca Momedas

carga

Sodas lata

Especificación de proceso: cuenta Inicio:
Hacer{ Obtener moneda }hasta (total >= requirido);. Informa proceso “despachar”; if (total > requirido) Return cambio:

End;

Ejercicio: DFD
Propósito del ejercicio:
q

q

familiarizarse con lo que los DFDs son, y conococer como se obtiene este a partir del diagrama de contexto. Descubir el propósito del diseño en varios niveles.

Ejercicio: DFD
l Crear un DFD y su diccionario de datos a partir de tu diagrama de contexto.
q

q

Partir el diagrama de contexto en al menos 3 burbujas. Escoger una burbuja del primer nivel y partirla en otras, y así sucesivamente. Compare / contraste los DFDs con Casos de Uso.

l Grupos de discución:
q

10. DIAGRAMAS ENTIDAD RELACIÓN
l Componentes de un diagrama entidad relación l Guías para la construcción de un diagrama entidad relación l Extensiones del diccionario de datos para los diagramas entidad relación

10. DIAGRAMAS ENTIDAD RELACIÓN
l Qué es?
q q q

Una herramienta para modelamiento de datos. Por P. Chen’s modelo ER (1976). El modelo ER ha sido usado ampliamente en el diseño de bases de datos.

l Porqué el diagrama ER?

10. DIAGRAMAS ENTIDAD RELACIÓN
l Construcción del diagrama ER
q q q

Entidad Relación Atributo(Propiedad)

10. DIAGRAMAS ENTIDAD RELACIÓN
l Entidad
q

Una entidad en ER representa un objeto del mundo real
Entity Name

10. DIAGRAMAS ENTIDAD RELACIÓN
l Relación
q

Una relación define como se relacionan las entidades, es representada por un rombo.

Fuente

Relación

Destino

10. DIAGRAMAS ENTIDAD RELACIÓN
l Cardinalidad y participación. !YA VIMOS!

10. DIAGRAMAS ENTIDAD RELACIÓN
1 Genera 1-n Visita 1 Paciente 1 tiene 1-n estudio 1 contiene 1-n Series 1 contiene 0-n resultados 1-n tiene 0-n Resultados 1 contiene 0-1 Reporte

1includes n contiene 0-n imagenes 1

11. DIAGRAMA TRANSICIÓN DE ESTADO
l Notación y componentes l Diagramas particionados l Construcción de diagramas de transición de estado l Relación con otras herramientas de modelación

11. DIAGRAMA TRANSICIÓN DE ESTADO
l Qué son?
q

q

Herramientas para definir el comportamiento del modelo Un estado es:
“Un set de circunstancias o atributos que caracterizan a una persona o cosa en un momento o tiempo dado; camino o forma en que existe; condición.”

l Aplicación
q

Sistemas que dependen del tiempo

11. DIAGRAMA TRANSICIÓN DE ESTADO Notación y componentes
l Símbolos
Estado
condición acción

o

Estado

Transición de estado

– Estados
corresponde a estados observables del sistema s estados inicial y final
s

– Condiciones y acciones – Diagramas particionados

ESTADO Construcción diagramas transición de estado

Espera monedas
Rechaza botón presionado Retorna moneda insertada

Producto vendido Da cambio si hay

Suficiente dinero insertado

Vende producto

Espera selección

Selección hecha

ESTADO Construcción diagramas transición de estado
l Guía para la construcción
q q

definir primero todos los posibles estados definir el estado inicial y obtener todas las transiciones todos los estados deben ser definidos (incluyendo errores) todos los estados deben ser representados todo estado final debe tener un sucesor

l Verificación y completitud
q

q q

11. DIAGRAMA TRANSICIÓN DE ESTADO Relación con otras herramientas
l Relación con otras herramientas
q

especificación de procesos para control de burbujas de DFD
• condiciones == aferente (de entrada) flujo de control • acciones == eferente (de salida) control de flujo

q

puede ser especificación de proceso para el sistema completo (diagrama de contexto)

11. DIAGRAMA TRANSICIÓN DE ESTADO Pros y contras
l Pros
q q

provee alto detalle para la implementación provee buena documentación para aspectos dependientes del tiempo en el sistema mucho esfuerzo de diseño requerido asume que los estados de transición son instantaneos puede resultar muy complejo

l Contras
q q

q

11. RELACIÓN ENTRE DISTINTAS HERRAMIENTAS
l Balance del DFD contra el DD l Balance del DFD y las especificaciones de proceso l Balance de las especificaciones de proceso contra el DFD y el DD l Balance del DD contra el DFD y las especificaciones de proceso l Balance del DER contra el DFD y las especificaciones de proceso l Balance del DFD contra el diagrama de estado de transición

UNIDAD 4. ETAPAS POSTERIORES AL ANÁLISIS

17. EL DISEÑO DE SISTEMAS
l Asignación de procesadores l Asignación de tareas l Implementación de tareas por programas l Diagramas de estructura l Cohesión l Acoplamiento l Diseño basado en la transformación central l Diseño basado en las transacciones

17. EL DISEÑO DE SISTEMAS Diagrama de estructura
l Qué son ellos?
q

q q

Herramienta para ayudar a definir la implementación del modelo modularizar vistas del sistema originalmente fue la principal herramienta del diseño estructurado vista general para desarrolladores y diseñadores

l Aplicaciones
q

17. EL DISEÑO DE SISTEMAS Diagrama de estructura
l Símbolos de módulo
Módulo

Módulo Predefinido

Llamada a módulo

17. EL DISEÑO DE SISTEMAS Diagrama de estructura
l Símbolos de comunicación
q

Dato de acople
• procesado • externamente relevante
emisor

nombre receptor

q

Bandera
• seteado y probado • internamente relevante
emisor

nombre receptor

17. EL DISEÑO DE SISTEMAS Diagrama de estructura
l Modulos
q

nombrado por un verbo sentencia, describe un procesamiento nombrado con un nombre. nombrada por un adjetivo, descripción de estado nombrada por un verbo.

l Dato
q

l Bandera descriptiva
q

l Bandera de control
q

17. EL DISEÑO DE SISTEMAS Diagrama de estructura
Suficientes nonedas

Vende soda en lata
Producto seleccionado moneda

Producto seleccionado

Obtener suficientes fondos
monedas monedas

Lee producto seleccionado
Monedas >= cant. necesitada

Obtiene cambio

Entrega producto

selección

Recibir monedas

Verifica suficiente fondo

Lee selección

17. EL DISEÑO DE SISTEMAS Diagrama de estructura
l Módulos
q q

necesitan funciones bien definidas e interfaces Deberían ser relativamente pequeños (10-100 LOC) reducir banderas de control (indican pobre partición) muy relacionados con DFDs DFD a diagramas de estructura por transformación del análisis

l Banderas
q

l Relación con otras herramientas
q q

17. EL DISEÑO DE SISTEMAS Diagrama de estructura
l Pros
q q

q

vista gráfica de alto nivel se concentra sobre los aspectos “caja-negra” de los módulos Permite subjetividad puede ser difícil crearlo puede volverse muy subjetivo

l Contras
q q

Ejercicio: Diagrama de estructura
l Porpósito del ejercicio:
q

q

introducir los conceptos de transacción y transformación del análisis, familiarizarse con el diagrama de estructura.

l Transformar una transacción en tu DFD del ejercicio en un diagrama de estructura para esa transacción.

Ejercicio: Diagrama de estructura
l Diagrama de estructura
q

Tomado de Page-Jones:
“The Practical Guide to Structured System Design”

q

Objetivo: crear un jerárquico y bien balanceado sistema
• módulos top trabajan con datos limpios y refinados • módulos bottom trabajan con datos crudos y no editados

Ejercicio: Diagrama de estructura
l Identificar transacciones en DFD l Para cada transacción, identificar la “transformación central”
q q q

inspección o, aislar flujo de datos esencial o, seguir criterio “mundo ideal” identificar o crear un módulo “jefe” convertir datos e ítems de control en datos acoplados y flags Partir las burbujas del DFD en una jerarquía de módulos funcionales, llamados desde el módulo “jefe”

l Producir primer diagrama de estructura
q q q

Ejercicio: Diagrama de estructura. Identificar la transformación central
l Inspección
q

Visualmente inspeccionar el DFD e identificar lo que “parece” la transformación central Marcar el punto entre flujos de datos aferentes (input) y eferentes (output), donde los datos han sido refinados pero no transformados, las burbujas que están dentro son la transformación central Remover algunas burbujas mediante manejo central de errores y formateo de datos, dejar las burbujas que

l Aislar flujos de datos esenciales
q

l “Mundo ideal”
q

Ejercicio: Diagrama de estructura. Ejemplo
Monedas y selección Soda en lata y cambio

El usuario

Máquina monedera de soda en lata Monedas

La máquina

Soda en lata y cambio

Monedas Cambio cuenta

Monedas Deposito Soda lata

Cambio

Cambio coloca Momedas saca

Monedas Congelador Sodas lata

Selección Soda lata despacha

carga

Sodas lata

Ejercicio: Diagrama de estructura. Ejemplo
Suficientes nonedas

Vende soda en lata
Producto seleccionado moneda

Producto seleccionado

Obtener suficientes fondos
monedas monedas

Lee producto seleccionado
Monedas >= cant. necesitada

Obtiene cambio

Entrega producto

selección

Recibir monedas

Verifica suficiente fondo

Lee selección

17. EL DISEÑO DE SISTEMAS Cohesión
l Medida de la fuerza de asociación de los elementos de un módulo l Niveles
q q q q q q q

funcional secuencial comunicacional procedural temporal logico coincidental

best

worst

17. EL DISEÑO DE SISTEMAS Acoplamiento
l Medida de la interdependencia de los módulos best l Tipos
q

normal
• datos • estampilla • control

q q

común contenido

worst

17. EL DISEÑO DE SISTEMAS Especificaciones
l Muchos métodos potenciales l Interface y especificaciones funcionales
q q q

dan un buen balance de detalle de especificación proveen módulo general de documentación menos detalles de implementación Alto detalle, menos errores potenciales puede resultar muy abundante en palabras

l Seudocódigo
q q

18. PROGRAMACIÓN, PRUEBAS, CONVERSIÓN, INSTALACIÓN Y ENTRENAMIENTO l El papel del analista en la programación y prueba l Organización del trabajo de programación l Programación y lenguaje de programación l Aspectos importantes de la programación l La prueba de programas l Instalación l Entrenamiento

Conclusión