programacion de 'bases de datos1

Post on 06-Jun-2015

1.700 Views

Category:

Documents

1 Downloads

Preview:

Click to see full reader

DESCRIPTION

es todo sobre bases de datos

TRANSCRIPT

BASES DE DATOS

MODELADOS Y ANALISIS DE DATOS

PARTE I

FUNDAMENTOS DE BASES DE DATOS

Objetivos

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.

Desarrollar un proyecto de ingeniería referente a un sistema de información.

UNIDAD 1. INTRODUCCIÓN

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

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

UNIDAD 1. INTRODUCCIÓN

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

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

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. Visión de los datos

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.1. Abstracción de los datos

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.2. Ejemplares y esquemas

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.

2.3. Independencia de datos

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. Modelos de datos

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 Modelos lógicos basados en objetos

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.

3.1.1. Modelo entidad-relación

persona automóvil accidenteposee ocurrió

kilometraje

modeloconductor

fecha importeañonombre

ci

domicilio

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.

3.1.2. Modelo orientado a objetos

Valor

valorActual()historia()

CuentaCorrientetasaIeInterésValorActual()

Acción

valorActual()

Bono

valorActual()

PropiedadtasaciónvalorActual()

3.2 Modelos lógicos basados en registros

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.

Los datos y las relaciones entre ellos se representa por medio de una serie de tablas, donde cada una tiene varias columnas.Artículos Movimientosnro_artí nombre nro_artí tipo cantpre_unit

3.2.1. Modelo relacional

10 1 10 1010 2 20 1010 1 5 1010 1 2 1025 1 1 2025 2 2 2025 1 2 535 1 10 5

5 Escobas10 Sardina25 Café35 Pasas

Se representa por un conjunto de registros y las relaciones entre ellos por punteros

3.2.2. Modelo de red

5 Escobas

10 Sardinas

25 Café

35 Pasas

10 1 10 10

35 1 10 5

25 2 2 20

25 1 1 20

10 1 5 10

10 2 20 10

Igual que el de red pero en forma de árbol

3.2.3. Modelo jerárquico

5 Escobas

10 Sardinas

25 Café

35 Pasas

10 1 10 10

35 1 10 5

25 2 2 20

25 1 1 20

10 1 5 10

10 2 20 10

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.

3.3 Modelo de datos físico

9. Estructura del sistema completoUsuariosNormales

Programadoresde aplicación

Usuariossofisticados

Administradorde base de datos

Interfaces deaplicaciones

Programas de aplicación

consulta Esquema debase de datos

Código objetode los

programas

Precompilador del DML

Compilador del DML

Intérprete de DDL

Motor de evaluación de consultas

Índices Datos estadísticos

Diccionario de datosArchivo de datos

Gestor de transac-ciones

Gestor de memoria

intermedia

Gestor de archivos

Procesadordeconsultas

Gestor dealmacena-miento

Almacena-miento endisco

Usuarios

DBMS

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.

4. Lenguajes de bases de datos

5. Gestión de transacciones

Una transacción es una colección de operaciones que se llevan a cabo en una aplicación de bases de datos. Debe seratómica, consistente y permitir durabilidad.

TRANSACCIÓN.- Transferencia de fondos:INICIARETIRA DE CUENTA ADEPOSITA A CUENTA BFIN

!Me hacéstodo

o nada!

!!!Y no teequivoqués!

5. Gestión de transacciones

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.

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.

6. Gestión de almacenamiento

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

7. Administración de la base de datos

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 inteligen-

cia artificial, sistemas de expertos, etc. Usuarios normales, usan programas que

se han escrito previamente.

8. Usuarios de la base de datos

UNIDAD 2.MODELO ENTIDAD RELACIÓN

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

1. Conceptos básicos

Entidad.- Es una cosa que puede ser objeto o concepto que el caso de estudio considera que tiene existencia independiente.

Atributo.- Es una propiedad de la entidad.

Relación.- Es una asociación entre entidades.

Entidades, relaciones y ocurrencias.

Entidades.- agencia, productoRelaciones.- almacenaOcurrencia de entidad.- 2 agencia, 5 productoOcurrencia de relación.- 7 de almacena

1. Conceptos básicos

pr2 printerpr7 tape drivepr4 disk drivepr8 controlerpr6 ploter

a1 La Paz

a5 Santa Cruz

agencia productoalmacena

1. Conceptos básicos

Identificador de entidad.- Es un atributo o atributo compuesto, cuyos valores identifican una ocurrencia de una entidad, puede haber varios “identificadores candidatos”.

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 Cardinalidad o grado de una relación.-

Determina la cantidad de ocurrencias de las entidades que participan en la relación

Para relaciones binarias hay tres posibles clases de cardinalidad

2. Propiedades de las relaciones

cardinalidad y participación Cardinalidad 1:1

profesor cursorenseña

Rosario

Angel

Corrado

Ramona

IF-317

MAT-101

QMC-100

FIS-300

1 1

2. Propiedades de las relaciones

cardinalidad y participación Cardinalidad 1:m

profesor cursorenseña1 m

Rosario

Angel

Corrado

Ramona

IF-317

MAT-101

QMC-100

FIS-300

2. Propiedades de las relaciones

cardinalidad y participación Cardinalidad m:m

profesor cursorenseñam n

Rosario

Angel

Corrado

Ramona

IF-317

MAT-101

QMC-100

FIS-300

2. Propiedades de las relaciones

cardinalidad y participación Participación.- Hay dos formas en que una

entidad puede participar en una relación: Obligatoria.- Cada ocurrencia de la entidad

participa en la relación, o sea que tiene al menos una ocurrencia asociada en la otra entidad

No obligatoria.- Una ocurrencia puede existir independientemente.

2. Propiedades de las relaciones

cardinalidad y participación

departamento empleadoemplea

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

departamento empleadoemplea

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

2. Propiedades de las relaciones

cardinalidad y participación

departamento empleadoemplea

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

departamento empleadoemplea

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

3. Trampas de conexión yrelaciones ternarias

Trampa de abanico.- Existe cuando dos o más relaciones salen de una entidad.

depto empleado

emplea

división

tienem

1 1

m

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

3. Trampas de conexión yrelaciones ternarias

depto empleadoemplea división tiene m1 1 m

depto tiene división emplea empleado

de1

de2di1

e1

e2

!! Oh mi Dios, no puedo... !!

Trampa de abanico.-

3. Trampas de conexión yrelaciones ternarias

Trampa de grieta.- Ocurre cuando una relación descubierta no existe en el diagrama.

depto empleadoemplea división tiene m1 1 m

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 yrelaciones ternarias

Trampa de grieta.-

depto empleadoemplea división tiene

m

1 1 m

No tengo departamento “vigilancia”, y nome permiten crearlo...

trabaja

1

3. Trampas de conexión yrelaciones ternarias

Relaciones ternarias.- Otras trampas de conexión no pueden resolverse aumentando una relación binaria, la única forma es utilizar relaciones ternarias.

proveedor proyectoentregaparte provee mnmn

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 yrelaciones ternarias

Relaciones ternarias.-

proveedor proyectoentregaparte provee mnmn

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

utiliza

3. Trampas de conexión yrelaciones ternarias

Relaciones ternarias.-

proveedor

proyectopartep

n

m entrega

contratan

m

parte4 proy9

proveedor6

parte3 proy8

proveedor7

4. Características del modeloER extendido

El modelo ER extendido incluye los conceptos de especialización y categorización.

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 modeloER extendido

Especialización.- Es el proceso de definición de un set de subclases de una entidad, denominada superclase

empleado

secretaria técnico administrador asalariado horario

d d

proyectoAdmi-nistra

1

1velocidad_tipeo

4. Características del modeloER extendido

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 modeloER extendido

Especialización.- Hay dos tipos de especialización:

1 Disjunta. Las ocurrencias de la superclase pertenecen a una o ninguna subclase.

empleado

secretaria técnico

d

4. Características del modeloER extendido

Especialización.- Hay dos tipos de especialización:

2 Sobrepuesta.- Las ocurrencias de la superclase pueden pertenecer a varias subclases.

parte

parte_comprada parte_manufacturada

O

4. Características del modeloER extendido

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 modeloER extendido

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.

compañiapersona banco

U

dueño vehículotienem1

5. Esqueleto del modelo ERreglas de representación

Esqueleto del ER.- Es el diagrama ER, sus restricciones, y una lista de tablas con sus identificadores.

Modelo ER.- Es el diagrama ER, sus restricciones, y una descripción completa de las tablas y sus identificadores.

1-1. Participación obligatoria de ambas

autoempleado usa11

Mario

Enrique

Gino

Chichi

317-SJH

101-PLU

100-WRA

300-LPQ

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

* *

5. Esqueleto del modelo ERreglas de representación

1-1. Participación obligatoria de una entidad

autoempleado usa11

Mario

Enrique

Gino

Chichi

317-SJH

101-PLU

100-WRA

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

*

5. Esqueleto del modelo ERreglas de representación

1-1. Participación no obligatoria en ambas

autoempleado usa11

Mario

Enrique

Gino

Chichi

317-SJH

101-PLU

100-WRA

300-LPQ

empleado (nro_emple, .......)auto (nro_auto, .......)usa (nro_auto, nro_emple, .........)

5. Esqueleto del modelo ERreglas de representación

1-m. Participación obligatoria de entidad m.

pacientesala ocupam1

sala-1

sala-7

sala-8

sala-4

Dante

Diodato

Oso

Techo e paja

sala (nro_sala, .......)paciente (nro_paciente, ......., nro_sala)

*

5. Esqueleto del modelo ERreglas de representación

1-m. Participación no obligatoria de entidad m.

pacientesala ocupam1

sala-1

sala-7

Dante

Diodato

Oso

Techo e paja

sala (nro_sala, .......)paciente (nro_paciente, .......)ocupa (nro_paciente, nro_sala, ........)

5. Esqueleto del modelo ERreglas de representación

m-n. Muchos a muchos todos los casos.

alumnoprofesor enseñanm

Corrado

Chichi

Gustavo

Mario

Jesús

María

José

Isabel

profesor (nro_profe, .......)alumno (nro_alumno, .......)enseña (nro_profe, nro_alumno, .........)

5. Esqueleto del modelo ERreglas de representación

Especialización.- Hay 4 formas de mapeo:1.- todos los casosempleado (ci, nombre,...)secretaria (ci, vel_tipeo, ...)técnico (ci, univ, .....)

5. Esqueleto del modelo ERreglas de representación

empleado

secretaria técnico2.- Disjunto y participación totalsecretaria (ci, vel_tipeo,nombre..)técnico (ci, universidad,nombre..)

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

4. Pocos atributos en subclases y sobrepuestoempleado (ci, nombre, vel_tipeo,universidad,t1,t2,...)

tipoParticipa-ción

Categorización.- Forma de mapeo:

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

5. Esqueleto del modelo ERreglas de representación

compañiapersona banco

U

dueño

6. Entidades débiles

Entidad débil o identificador prepuesto.- Cuando el identificador de la tabla, contiene el identificador de otra tabla.

departamentocompañia tienem1

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

*

7. Relaciones recursivas

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

esposo

7. Relaciones recursivas

Relación 1:1

persona

casado

1 1esposa

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

supe

rvisado

7. Relaciones recursivas

Relación 1:m

empleado

supervisa

1 msupe

rvisor

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

*

parte

_m

eno

r

7. Relaciones recursivas

Relación m:n

parte

compone

m nparte

_m

ayo

r

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

8. Asignación de atributos

El próximo paso después de hacer el esqueleto del modelo es asignar atributos.

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

1:1 no obligatorio en ambas entidades.

empleado (nro_emple, )auto (nro_auto, )usa (nro_emple, nro_auto, )

nom_emple marca km_auto

km_emple km_actual

nom_emple,marca, km_auto

km_emple

km_actual

8. Asignación de atributos

1:m no obligatorio en entidad m.

sala (nro_sala, )paciente (nro_paciente, )ocupa (nro_paciente, nro_sala, )

tipo_salanúmero_camas

nom_paciente fecha_nacimfecha_admisión

tipo_sala,nom_paciente, fecha_nacim

número_camas

fecha_admisión

8. Asignación de atributos

m:n en todos los casos.

profesor (nro_prof, )alumno (nro_alum, )supervisa (nro_prof, nro_alum, )

nro_aulahoras_prof_sem

nom_alumno horas_alu_semhoras_atención

nro_aula,nom_alumno, horas_alu_sem

horas_prof_sem

horas_atención

9. Metodología de diseñoconceptual 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ñoconceptual 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ñoconceptual 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 demodelo conceptual y lógico

MODELO DE DATOSBIBLIOTECA

11. Diseño físico

Las tablas obtenidas en el diseño conceptual y lógico, se obtienen a partir de las reglas de mapeo descritas.

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

1-1. Participación no obligatoria en ambas

proyectoempleado trabaja11

95%10%

Casi todos los proyectos tienen empleado,aquí se puede mapear como si proyectofuese obligatorio en la relación.

empleado (nro_emple, nom_emple)proyecto (nro_proy, nom_proy, nro_emple)

11. Diseño físico

1-m. Participación obligatoria de 1

proyectoempleado trabaja1m

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

m-n. Participación obligatoria de m

proyectoempleado trabajanm

Pocos 1, 2

Un proyecto tiene m empleados el lado m sonpocos 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

Partición de tablas

máquina_detallemáquina tiene11

Máquina es una entidad pero tiene muchosatributos, y unos se usan más que otros. Esposible 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

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 estudiomodelo físico

CASO DE ESTUDIO

LA BIBLIOTECA

UNIDAD 4.ALGEBRA RELACIONAL

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

Una base de datos relacional muestra las tablas en forma de filas y columnas

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

a1 La Paza5 Santa Cruza6 Tarijaa9 Potosí

ciudad (nro_ciudad nom_ciudad)

1. LAS BASES DE DATOS RELACIONALES

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.

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

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.

Es por esto que en el álgebra relacional se denomina relación a una tabla y tupla a un fila de tabla.

1. LAS BASES DE DATOS RELACIONALES

Se define el álgebra relacional como un lenguaje para bases de datos relacionales de tipo procedural. Operadores:seleccionar unarioproyectar unarioproducto cartesiano x binariorenombrar unariounión binariodiferencia - binarioEstos son los 6 operadores fundamentales del álgebra relacional para generar consultas

2. EL ÁLGEBRA RELACIONAL

2. EL ÁLGEBRA RELACIONAL SELECCIONAR, , UNARIO

Permite recuperar un subconjunto de tuplas de una relación.

Operadores relacionales: =, , >, <, <=, >=Operadores lógicos: ,

Ej.1.- “Los préstamos de la sucursal JUNIN” : nom_suc=‘JUNIN’ (préstamo)

2. EL ÁLGEBRA RELACIONAL SELECCIONAR, , UNARIO

CAÑOTO 144 1500BOLIVAR 122 1200JUNIN 125 1800BOQUERON 188 1500JUNIN 132 1600BOLIVAR 177 1550

préstamo (nom_suc nro_pres importe)

JUNIN 125 1800JUNIN 132 1600

Ej.2.- “Los préstamos de la sucursal JUNIN, con importe mayor a 1650” : nom_suc=‘JUNIN’ importe>1650 (préstamo)

2. EL ÁLGEBRA RELACIONAL SELECCIONAR, , UNARIO

CAÑOTO 144 1500BOLIVAR 122 1200JUNIN 125 1800BOQUERON 188 1500JUNIN 132 1600BOLIVAR 177 1550

préstamo (nom_suc nro_pres importe)

JUNIN 125 1800

Ej.3.- “Los clientes que tienen el mismo nombre quesu oficial de créditos” : nom_clien = nom_emple (resp_presta)

2. EL ÁLGEBRA RELACIONAL SELECCIONAR, , UNARIO

SUCHA RAMONA 134MARCO JAIME 122RUBÉN RUBÉN 178

resp_presta (nom_clien nom_emple nro_pres)

RUBÉN RUBÉN 178

2. EL ÁLGEBRA RELACIONAL PROYECTAR, , UNARIO

Permite recuperar un subconjunto de columnas de una relación.

Ej.4.- “Seleccionar los clientes con préstamos mayoresa 1500, y la sucursal donde sacaron el préstamo” : nro_pres, importe ( importe>1500 (préstamo))

2. EL ÁLGEBRA RELACIONAL PROYECTAR, , UNARIO

CAÑOTO 144 1500BOLIVAR 122 1200JUNIN 125 1800BOQUERON 188 1500JUNIN 132 1600BOLIVAR 177 1550

préstamo (nom_suc nro_pres importe)

125 1800132 1600177 1550

Ej.5.- “Los clientes que tienen el mismo nombre quesu oficial de créditos, sin repetir el nombre” : nom_clien ( nom_clien = nom_emple (resp_presta))

2. EL ÁLGEBRA RELACIONAL PROYECTAR, , UNARIO

RUBÉN

SUCHA RAMONA 134MARCO JAIME 122RUBÉN RUBÉN 178

resp_presta (nom_clien nom_emple nro_pres)

2. EL ÁLGEBRA RELACIONAL Producto cartesiano, x, binario

Opera sobre dos relaciones r,s. Permite combinar cada un de las tuplas de r con cada una de las tuplas de s.

Si r tiene n columnas y s tiene m columnas r x s tiene n+m columnas.

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

2. EL ÁLGEBRA RELACIONAL Producto cartesiano, x, binario

MARCO calle5 La PazRUBÉN calle12 Potosí

cliente(nom_clien calle ciudad)

MARCO calle5 La Paz SUCHA RAMONA 134MARCO calle5 La Paz MARCO JAIME 122MARCO calle5 La Paz RUBÉN RUBÉN 178RUBÉN calle12 Potosí SUCHA RAMONA 134RUBÉN calle12 Potosí MARCO JAIME 122RUBÉN calle12 Potosí RUBÉN RUBÉN 178

cliente. resp_presta.nom_clien calle ciudad nom_clien nom_emple

SUCHA RAMONA 134MARCO JAIME 122RUBÉN RUBÉN 178

resp_presta (nom_clien nom_emple nro_pres)

cliente x resp_presta :

resp_presta.nom_clien=cliente.nom_clien ( cliente x resp_presta)

2. EL ÁLGEBRA RELACIONAL Producto cartesiano, x, binario

MARCO calle5 La Paz MARCO JAIME 122RUBÉN calle12 Potosí RUBÉN RUBÉN 178

cliente. atiende.nom_clien calle ciudad nom_clien nom_emple nro_pres

MARCO calle5 La Paz SUCHA RAMONA 134MARCO calle5 La Paz MARCO JAIME 122MARCO calle5 La Paz RUBÉN RUBÉN 178RUBÉN calle12 Potosí SUCHA RAMONA 134RUBÉN calle12 Potosí MARCO JAIME 122RUBÉN calle12 Potosí RUBÉN RUBÉN 178

cliente. resp_presta.nom_clien calle ciudad nom_clien nom_emple nro_pres

resp_presta.nom_clien=cliente.nom_clien ( cliente x resp_presta)

cliente.nom_clien, ciudad ( resp_presta.nom_clien=cliente.nom_clien ( cliente x resp_presta))

2. EL ÁLGEBRA RELACIONAL Producto cartesiano, x, binario

MARCO La PazRUBÉN Potosí

cliente. nom_clien ciudad

MARCO calle5 La Paz MARCO JAIME 122RUBÉN calle12 Potosí RUBÉN RUBÉN 178

cliente. resp_préstamo.nom_clien calle ciudad nom_clien nom_emple nro_pres

2. EL ÁLGEBRA RELACIONAL RENOMBRAR, , UNARIO

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.

Permite cambiar el nombre de la relación, para diferenciar atributos del mismo nombre.

cliente x resp_presta x cli(cliente)

2. EL ÁLGEBRA RELACIONAL RENOMBRAR, , UNARIO

SUCHA calle5 Sta. CruzRUBÉN calle12 PotosíRAMONA calle8 TarijaRENATO calle1 Potosí

cliente(nom_clien calle ciudad)

SUCHA RAMONA 134MARCO JAIME 122RUBÉN RUBÉN 178

resp_presta (nom_clien nom_emple nro_pres)

2. EL ÁLGEBRA RELACIONAL UNION, , BINARIO

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.

Ej.7.- “Los clientes que tienen préstamo o depósito” nom_clien (prestatario) nom_clien (impositor)

2. EL ÁLGEBRA RELACIONAL UNION, , BINARIO

144 MARCO125 SUCHA

prestatario (nro_pres nom_clien)

174 MARCO182 RUBEN

impositor (nro_cuen nom_clien)

MARCOSUCHARUBEN

nom_suc

2. EL ÁLGEBRA RELACIONAL DIFERENCIA, -, BINARIO

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.

Ej.7.- “Los clientes que tienen préstamo pero notienen depósito” nom_clien (prestatario) - nom_clien (impositor)

2. EL ÁLGEBRA RELACIONAL DIFERENCIA, -, BINARIO

SUCHAnom_suc

144 MARCO125 SUCHA

prestatario (nro_pres nom_clien)

174 MARCO182 RUBEN

impositor (nro_cuen nom_clien)

Es posible demostrar matemáticamente que se puede obtener cualquier consulta con los 6 operadores fundamentales que vimos:seleccionar unarioproyectar unarioproducto cartesiano x binariorenombrar unariounión binariodiferencia - binarioCualquier otro lenguaje es “completo” si puede ejecutar estas 6 operaciones.

2. EL ÁLGEBRA RELACIONALCOMPLETITUD

En el álgebra relacional se definen los operadores adicionales:intersección binarioproducto natural binariodivisión binariotodos estos operadores pueden ser expresados mediante los 6 fundamentales. Son necesarios solo para simplificar la escritura de algunas consultas.

2. EL ÁLGEBRA RELACIONALOPERADORES ADICIONALES

2. EL ÁLGEBRA RELACIONALINTERSECCIÓN, , BINARIO

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.

Equivalencia.-r s = r - ( r - s )

Ej.7.- “Los clientes que tienen préstamo y depósito” nom_clien (prestatario) nom_clien (impositor)

2. EL ÁLGEBRA RELACIONALINTERSECCIÓN, , BINARIO

MARCOnom_suc

144 MARCO125 SUCHA

prestatario (nro_pres nom_clien)

174 MARCO182 RUBEN

impositor (nro_cuen nom_clien)

2. EL ÁLGEBRA RELACIONALProducto natural, , BINARIO

El producto natural es un producto cartesiano mas la condición de que los valores de los atributos comunes deben ser los mismos.

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 RELACIONALProducto natural, , BINARIO

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

MARCO calle5 La PazRUBÉN calle12 Potosí

cliente(nom_clien calle ciudad)

MARCO calle5 La Paz JAIME 122RUBÉN calle12 Potosí RUBÉN 178

nom_clien calle ciudad nom_emple nro_pres

nom_clien, ciudad (cliente resp_presta)

MARCO La Paz RUBÉN Potosí

SUCHA RAMONA 134MARCO JAIME 122RUBÉN RUBÉN 178

resp_presta (nom_clien nom_emple nro_pres)

2. EL ÁLGEBRA RELACIONALDivisión, , BINARIO

La división entre r y s, de esquemas R y S, requiere que SR.

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.

Equivalencia.-r s = R-S ( r ) - R-S (( R-S ( r ) x s) - r)

2. EL ÁLGEBRA RELACIONALDivisión, , BINARIO

Definición formal.- Dadas r,s relaciones y R,S sus esquemas. Una tupla t está en la división si:

t está en R-S ( r )

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 RELACIONALDivisión, , BINARIO

c de f

s(C D )

a b c da b e fb c e fe d c de d e fa b d e

r(A B C D )

a be d

rs(A B )

2. EL ÁLGEBRA RELACIONALDivisión, , BINARIO,

presprespréstamoprestatario

CAÑOTO 144 MARCO 1500BOLIVAR 122 RUBEN 1200JUNIN 125 RUBEN 1800BOQUERON 188 RUBEN 1500JUNIN 132 PLATINI 1600BOLIVAR 177 PLATINI 1550

prespres(nom_suc nro_pr nom_clien importe)

CAÑOTO LPZBOLIVAR SCZBOQUERON LPZJUNIN SCZBOLIVAR CBBA

sucursal(nom_suc ciudad)

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

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

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.

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.

5. OPERACIONES DEL ALGEBRA RELACIONAL EXTENDIDA

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.

Borrado.- Permite eliminar tuplas de la base de datos. Se expresa así:r r - Edonde 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

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.

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, saldosaldo*1.05 (r)

6. MODIFICACIÓN DE LA BASE DE DATOS

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

7. VISTAS

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.

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.

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

Permite recuperar un subconjunto de tuplas de una relación.

3. CALCULO RELACIONAL DE TUPLASSELECCIÓN

Ej.1.- “Los préstamos de la sucursal JUNIN” :{ t / t préstamo nom_suc=‘JUNIN’ }

3. CALCULO RELACIONAL DE TUPLASSELECCIÓN

CAÑOTO 144 1500BOLIVAR 122 1200JUNIN 125 1800BOQUERON 188 1500JUNIN 132 1600BOLIVAR 177 1550

préstamo (nom_suc nro_pres importe)

JUNIN 125 1800JUNIN 132 1600

Ej.2.- “Los préstamos de la sucursal JUNIN, con importe mayor a 1650” :{ t / t préstamo nom_suc=‘JUNIN’ importe>1650 }

3. CALCULO RELACIONAL DE TUPLASSELECCIÓN

CAÑOTO 144 1500BOLIVAR 122 1200JUNIN 125 1800BOQUERON 188 1500JUNIN 132 1600BOLIVAR 177 1550

préstamo (nom_suc nro_pres importe)

JUNIN 125 1800

Ej.3.- “Los clientes que tienen el mismo nombre quesu oficial de créditos” :{ t / t resp_presta nom_clien=nom_emple }

3. CALCULO RELACIONAL DE TUPLASSELECCIÓN

SUCHA RAMONA 134MARCO JAIME 122RUBÉN RUBÉN 178

resp_presta (nom_clien nom_emple nro_pres)

RUBÉN RUBÉN 178

Permite recuperar un subconjunto de columnas de una relación.

3. CALCULO RELACIONAL DE TUPLASPROYECCIÓN

Ej.4.- “Seleccionar los clientes con préstamos mayoresa 1500, y la sucursal donde sacaron el préstamo” :{ t[nro_pres, importe] / t préstamo importe>1500 }

3. CALCULO RELACIONAL DE TUPLASPROYECCIÓN

CAÑOTO 144 1500BOLIVAR 122 1200JUNIN 125 1800BOQUERON 188 1500JUNIN 132 1600BOLIVAR 177 1550

préstamo (nom_suc nro_pres importe)

125 1800132 1600177 1550

Ej.5.- “Los clientes que tienen el mismo nombre quesu oficial de créditos, sin repetir el nombre” :{ t[nom_clien] / t resp_presta nom_clien=nom_emple }

3. CALCULO RELACIONAL DE TUPLASPROYECCIÓN

RUBÉN

SUCHA RAMONA 134MARCO JAIME 122RUBÉN RUBÉN 178

resp_presta (nom_clien nom_emple nro_pres)

Es posible en el CRT operar sobre dos o más relaciones.

3. CALCULO RELACIONAL DE TUPLASPRODUCTO

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

MARCO La PazRUBÉN Potosí

nom_clien ciudad

{ t[nom_clien, ciudad] / t cliente u (u resp_presta t[nom_clien]=u[nom_clien] ) }

3. CALCULO RELACIONAL DE TUPLASPRODUCTO

MARCO calle5 La PazRUBÉN calle12 Potosí

cliente(nom_clien calle ciudad)

SUCHA RAMONA 134MARCO JAIME 122RUBÉN RUBÉN 178

resp_presta (nom_clien nom_emple nro_pres)

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 TUPLASUNIÓN

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]) }

3. CALCULO RELACIONAL DE TUPLASUNIÓN

144 MARCO125 SUCHA

prestatario (nro_pres nom_clien)

174 MARCO182 RUBEN

impositor (nro_cuen nom_clien)

MARCOSUCHARUBEN

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 TUPLASDIFERENCIA

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

3. CALCULO RELACIONAL DE TUPLASDEFERENCIA

SUCHA

144 MARCO125 SUCHA

prestatario (nro_pres nom_clien)

174 MARCO182 RUBEN

impositor (nro_cuen nom_clien)

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 TUPLASINTERSECCIÓN

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]) }

3. CALCULO RELACIONAL DE TUPLASINTERSECCIÓN

MARCOnom_suc

144 MARCO125 SUCHA

prestatario (nro_pres nom_clien)

174 MARCO182 RUBEN

impositor (nro_cuen nom_clien)

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 t-u

3 t[i] a, donde a es una constante.

3. CALCULO RELACIONAL DE TUPLASDEFINICIÓN FORMAL

Las fórmulas se forman a partir de átomos usando las siguiente definición recursiva:

1 Un átomo es un fórmula2 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 24 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 TUPLASDEFINICIÓN FORMAL

A continuación tenemos las siguientes equivalencias más utilizadas en el CRT

(1 2) (1 2) s ((s)) s ((s)) (1 2) (1 2)

3. CALCULO RELACIONAL DE TUPLASDEFINICIÓN FORMAL

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:

Dominio de fórmula.- DOM(), es el conjunto de constantes que aparecen en más todos los valores de las relaciones que se usa .

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 TUPLASSEGURIDAD DE LAS FÓRMULAS

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 formas (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 formas (W(s)), si un componente de s no está en DOM(W), entonces s debe hacer verdad W.

3. CALCULO RELACIONAL DE TUPLASSEGURIDAD DE LAS FÓRMULAS

Normalmente se usa de la siguiente forma los cuantificadores existencial y universal: s (sr ......) s ((sr) ......)

son dos formas de comenzar a escribir la fórmula, para que la fórmula resultante sea segura.

3. CALCULO RELACIONAL DE TUPLASSEGURIDAD DE LAS FÓRMULAS

La división entre r y s, de esquemas R y S, requiere que SR.

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 TUPLASDIVISIÓN

c de f

s(C D )

a b c da b e fb c e fe d c de d e fa b d e

r(A B C D )

a be d

(A B )

{ t[A,B] / tr u ((ur) v (vr u[C]=v[C] u[D]=v[D] t[A]=v[A] t[B]=v[B] ))}

3. CALCULO RELACIONAL DE TUPLASDIVISIÓN

BOLIVAR 144 MARCO 1500BOLIVAR 122 RUBEN 1200JUNIN 125 RUBEN 1800BOQUERON 188 RUBEN 1500JUNIN 132 PLATINI 1600BOLIVAR 177 PLATINI 1550

prespres(nom_suc nro_pr nom_clien importe)

CAÑOTO LPZBOLIVAR SCZBOQUERON LPZJUNIN SCZBOLIVAR CBBA

sucursal(nom_suc ciudad)

Los clientes que tienen préstamo en todas las sucursales de SCZ{ t[nom_clien] / tprespres u ((usucursal) (u[ciudad]=‘SCZ’) v (vprespres u[nom_suc]=v[nom_suc] t[nom_clien]=v[nom_clien] )) }

RUBENPLATINI

3. CALCULO RELACIONAL DE TUPLASDIVISIÓN, presprespréstamoprestatario

Se construye con los mismo operadores y reglas del CRT, se usan variables tipo dominio en vez de variables tipo tupla.

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 Las otras definiciones y reglas son

equivalentes.

4. CALCULO RELACIONAL DE DOMINIOS

“Los préstamos de la sucursal JUNIN” :{ ns,np,im / <ns,np,im> préstamo ns=‘JUNIN’ }

4. CALCULO RELACIONAL DE DOMINIOSSELECCIÓN

CAÑOTO 144 1500BOLIVAR 122 1200JUNIN 125 1800BOQUERON 188 1500JUNIN 132 1600BOLIVAR 177 1550

préstamo (nom_suc nro_pres importe)

JUNIN 125 1800JUNIN 132 1600

“Los préstamos de la sucursal JUNIN, con importe mayor a 1650” :{ ns,np,im / <ns,np,im> préstamo ns=‘JUNIN’ im>1650 }

4. CALCULO RELACIONAL DE DOMINIOSSELECCIÓN

CAÑOTO 144 1500BOLIVAR 122 1200JUNIN 125 1800BOQUERON 188 1500JUNIN 132 1600BOLIVAR 177 1550

préstamo (nom_suc nro_pres importe)

JUNIN 125 1800

“Los clientes que tienen el mismo nombre quesu oficial de créditos” :{ nc,ne,np / <nc,ne,np> resp_presta ns=ne }

4. CALCULO RELACIONAL DE DOMINIOSSELECCIÓN

SUCHA RAMONA 134MARCO JAIME 122RUBÉN RUBÉN 178

resp_presta (nom_clien nom_emple nro_pres)

RUBÉN RUBÉN 178

“Seleccionar los clientes con préstamos mayoresa 1500, y la sucursal donde sacaron el préstamo” :{ np,im / ns (<ns,np,im> préstamo im>1500) }

4. CALCULO RELACIONAL DE DOMINIOSPROYECCIÓN

CAÑOTO 144 1500BOLIVAR 122 1200JUNIN 125 1800BOQUERON 188 1500JUNIN 132 1600BOLIVAR 177 1550

préstamo (nom_suc nro_pres importe)

125 1800132 1600177 1550

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

4. CALCULO RELACIONAL DE DOMINIOSPROYECCIÓN

RUBÉN

SUCHA RAMONA 134MARCO JAIME 122RUBÉN RUBÉN 178

resp_presta (nom_clien nom_emple nro_pres)

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 ) ) }

4. CALCULO RELACIONAL DE DOMINIOSPRODUCTO

MARCO La PazRUBÉN Potosí

nom_clien ciudad

MARCO calle5 La PazRUBÉN calle12 Potosí

cliente(nom_clien calle ciudad)

SUCHA RAMONA 134MARCO JAIME 122RUBÉN RUBÉN 178

resp_presta (nom_clien nom_emple nro_pres)

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

4. CALCULO RELACIONAL DE DOMINIOSUNIÓN

144 MARCO125 SUCHA

prestatario (nro_pres nom_clien)

174 MARCO182 RUBEN

impositor (nro_cuen nom_clien)

MARCOSUCHARUBEN

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

4. CALCULO RELACIONAL DE DOMINIOSDIFERENCIA

SUCHA

144 MARCO125 SUCHA

prestatario (nro_pres nom_clien)

174 MARCO182 RUBEN

impositor (nro_cuen nom_clien)

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

4. CALCULO RELACIONAL DE DOMINIOSINTERSECCIÓN

MARCOnom_suc

144 MARCO125 SUCHA

prestatario (nro_pres nom_clien)

174 MARCO182 RUBEN

impositor (nro_cuen nom_clien)

La división entre r y s, de esquemas R y S, requiere que SR.

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 DOMINIOSDIVISIÓN

c de f

s(C D )

a b c da b e fb c e fe d c de d e fa b d e

r(A B C D )

a be d

(A B )

{ A,B / C,D(< A,B,C,D>r C1,D1 ((<C1,D1>s) (< A,B,C1,D1>r ) ) }

4. CALCULO RELACIONAL DE DOMINIOSDIVISIÓN

BOLIVAR 144 MARCO 1500BOLIVAR 122 RUBEN 1200JUNIN 125 RUBEN 1800BOQUERON 188 RUBEN 1500JUNIN 132 PLATINI 1600BOLIVAR 177 PLATINI 1550

préstamo(nom_suc nro_pr nom_clien importe)

CAÑOTO LPZBOLIVAR SCZBOQUERON LPZJUNIN SCZBOLIVAR CBBA

sucursal(nom_suc ciudad)

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 ) ) }

RUBENPLATINI

4. CALCULO RELACIONAL DE DOMINIOSDIVISIÓN, presprespréstamoprestatario

UNIDAD 4.SQL Y OTROS LENGUAJES

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

SQL se ha establecido claramente en el lenguaje estandar de bases de datos relacionales.

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

Los comando más importante son: LDD, definición de datos:

CREATE TABLE, CREATE INDEX, CREATE VIEW, DROP TABLE, DROP INDEX, DROP VIEW, ALTER TABLE, COMMENT.

LMD, manipulación de datos:SELECT, INSERT, UPDATE, DELETE.

LCD, control de datos:GRANT, REVOKE, COMMIT, ROOLBACK.

1. SQL

1. SQLSELECT

Permite recuperar información de la base de datos.

Junto con insert, update y delete permiten manipular los datos de cualquier forma.

1. SQLSELECT - SELECCIÓN

CAÑOTO 144 1500BOLIVAR 122 1200JUNIN 125 1800BOQUERON 188 1500JUNIN 132 1600BOLIVAR 177 1550

préstamo (nom_suc nro_pres importe)

Ej.1.- “Los préstamos de la sucursal JUNIN” :select * from prestamo where nom_suc=‘JUNIN’

JUNIN 125 1800JUNIN 132 1600

CAÑOTO 144 1500BOLIVAR 122 1200JUNIN 125 1800BOQUERON 188 1500JUNIN 132 1600BOLIVAR 177 1550

préstamo (nom_suc nro_pres importe)

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. SQLSELECT - SELECCIÓN

SUCHA RAMONA 134MARCO JAIME 122RUBÉN RUBÉN 178

resp_presta (nom_clien nom_emple nro_pres)

Ej.3.- “Los clientes que tienen el mismo nombre quesu oficial de créditos” :select * from resp_presta where nom_clien=nom_emple

RUBÉN RUBÉN 178

1. SQLSELECT - SELECCIÓN

CAÑOTO 144 1500BOLIVAR 122 1200JUNIN 125 1800BOQUERON 188 1500JUNIN 132 1600BOLIVAR 177 1550

préstamo (nom_suc nro_pres importe)

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 1800132 1600177 1550

1. SQLSELECT - PROYECCIÓN

Ej.5.- “Los clientes que tienen el mismo nombre quesu oficial de créditos, sin repetir el nombre” :select nom_clien from resp_presta where nom_clien=nom_emple

RUBÉN

1. SQLSELECT - PROYECCIÓN

SUCHA RAMONA 134MARCO JAIME 122RUBÉN RUBÉN 178

resp_presta (nom_clien nom_emple nro_pres)

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

MARCO calle5 La PazRUBÉN calle12 Potosí

cliente(nom_clien calle ciudad)

MARCO calle5 La Paz SUCHA RAMONA 134MARCO calle5 La Paz MARCO JAIME 122MARCO calle5 La Paz RUBÉN RUBÉN 178RUBÉN calle12 Potosí SUCHA RAMONA 134RUBÉN calle12 Potosí MARCO JAIME 122RUBÉN calle12 Potosí RUBÉN RUBÉN 178

cliente. resp_presta.nom_clien calle ciudad nom_clien nom_emple

1. SQLSELECT - PRODUCTO

SUCHA RAMONA 134MARCO JAIME 122RUBÉN RUBÉN 178

resp_presta (nom_clien nom_emple nro_pres)

Select * from cliente, resp_presta :

Select * from cliente, resp_presta where resp_presta.nom_clien, cliente.nom_clien

MARCO calle5 La Paz MARCO JAIME 122RUBÉN calle12 Potosí RUBÉN RUBÉN 178

cliente. atiende.nom_clien calle ciudad nom_clien nom_emple nro_pres

1. SQLSELECT - PRODUCTO

MARCO calle5 La Paz SUCHA RAMONA 134MARCO calle5 La Paz MARCO JAIME 122MARCO calle5 La Paz RUBÉN RUBÉN 178RUBÉN calle12 Potosí SUCHA RAMONA 134RUBÉN calle12 Potosí MARCO JAIME 122RUBÉN calle12 Potosí RUBÉN RUBÉN 178

cliente. resp_presta.nom_clien calle ciudad nom_clien nom_emple nro_pres

Select * from cliente, resp_présta where resp_presta.nom_clien, cliente.nom_clien

Select cliente.nom_clien, ciudad from cliente, resp_présta where resp_presta.nom_clien, cliente.nom_clien

MARCO La PazRUBÉN Potosí

cliente. nom_clien ciudad

1. SQLSELECT - PRODUCTO

MARCO calle5 La Paz MARCO JAIME 122RUBÉN calle12 Potosí RUBÉN RUBÉN 178

cliente. resp_préstamo.nom_clien calle ciudad nom_clien nom_emple nro_pres

Permite cambiar el nombre de la relación, para diferenciar atributos del mismo nombre.

SUCHA calle5 Sta. CruzRUBÉN calle12 PotosíRAMONA calle8 TarijaRENATO calle1 Potosí

cliente(nom_clien calle ciudad)

Select * from cliente, resp_presta, cliente as cl

1. SQLSELECT - RENOMBRAR

SUCHA RAMONA 134MARCO JAIME 122RUBÉN RUBÉN 178

resp_presta (nom_clien nom_emple nro_pres)

144 MARCO125 SUCHA

prestatario (nro_pres nom_clien)

174 MARCO182 RUBEN

impositor (nro_cuen nom_clien)

Ej.7.- “Los clientes que tienen préstamo o depósito”(select nom_clien from prestatario) union(select nom_clien from impositor)

MARCOSUCHARUBEN

nom_suc

1. SQLSELECT - UNION

Ej.7.- “Los clientes que tienen préstamo pero notienen depósito”(select nom_clien from prestatario) except(select nom_clien from impositor)

SUCHAnom_suc

1. SQLSELECT - DIFERENCIA

144 MARCO125 SUCHA

prestatario (nro_pres nom_clien)

174 MARCO182 RUBEN

impositor (nro_cuen nom_clien)

Ej.7.- “Los clientes que tienen préstamo y depósito”(select nom_clien from prestatario) intersect(select nom_clien from impositor)

MARCOnom_suc

1. SQLSELECT - INTERSECCIÓN

144 MARCO125 SUCHA

prestatario (nro_pres nom_clien)

174 MARCO182 RUBEN

impositor (nro_cuen nom_clien)

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.columnaen el producto natural mantiene las tuplas de r que no se combinan.

1. SQLSELECT - 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. SQLSELECT - OUTER JOIN

Funciones agregadas.- se puede usar las funciones agregadas: sum, avg, max, min, count, count_distinct, etc. Se usan así:select sum(importe) from préstamosuma todos los importes de la relación préstamo.

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. SQLSELECT - FUNCIONES AGREGADAS

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.

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. SQLDELETE

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.

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. SQLINSERT, UPDATE

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

1. SQLVISTAS

Query by example QBE es un lenguaje para bases de datos relacionales, basado en el cálculo relacional de dominios.

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.

También se conoce el QUEL basado en el cálculo relacional de tuplas, el cual no los trataremos.

1. QBE

1. QBESELECT

Permite recuperar información de la base de datos. QBE elimina los resultados duplicados por default.

Junto con insert, update y delete permiten manipular los datos de cualquier forma.

1. QBESELECT - SELECCIÓN

CAÑOTO 144 1500BOLIVAR 122 1200JUNIN 125 1800BOQUERON 188 1500JUNIN 132 1600BOLIVAR 177 1550

préstamo (nom_suc nro_pres importe)

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

JUNIN 125 1800JUNIN 132 1600

préstamo nom_suc nro_pres importe

P. JUNIN

CAÑOTO 144 1500BOLIVAR 122 1200JUNIN 125 1800BOQUERON 188 1500JUNIN 132 1600BOLIVAR 177 1550

préstamo (nom_suc nro_pres importe)

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

JUNIN 125 1800

1. QBESELECT - SELECCIÓN

préstamo nom_suc nro_pres importe

P. JUNIN >1650

SUCHA RAMONA 134MARCO JAIME 122RUBÉN RUBÉN 178

resp_préstamo (nom_clien nom_emple nro_pres)

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

RUBÉN RUBÉN 178

1. QBESELECT - SELECCIÓN

resp_préstamo nom_clien nom_emple nro_pres

P. _x _x

CAÑOTO 144 1500BOLIVAR 122 1200JUNIN 125 1800BOQUERON 188 1500JUNIN 132 1600BOLIVAR 177 1550

préstamo (nom_suc nro_pres importe)

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

125 1800132 1600177 1550

1. QBESELECT - PROYECCIÓN

préstamo nom_suc nro_pres importe

P. P.>1650

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

RUBÉN

1. QBESELECT - PROYECCIÓN

SUCHA RAMONA 134MARCO JAIME 122RUBÉN RUBÉN 178

resp_préstamo (nom_clien nom_emple nro_pres)

resp_préstamo nom_clien nom_emple nro_pres

P._x _x

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

MARCO calle5 La PazRUBÉN calle12 Potosí

cliente(nom_clien calle ciudad)

1. QBESELECT - PRODUCTO

SUCHA RAMONA 134MARCO JAIME 122RUBÉN RUBÉN 178

resp_presta (nom_clien nom_emple nro_pres)

MARCO La PazRUBÉN Potosí

cliente nom_clien calle ciudad

P._x P.

resp_préstamo nom_clien nom_emple nro_pres

_x

144 MARCO125 SUCHA

prestatario (nro_pres nom_clien)

174 MARCO182 RUBEN

impositor (nro_cuen nom_clien)

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

MARCOSUCHARUBEN

1. QBESELECT - UNION

prestatario nro_pres nom_clien

P._x

impositor nro_cuen nom_clien

P._y

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

SUCHA

nom_suc

1. QBESELECT - DIFERENCIA

144 MARCO125 SUCHA

prestatario (nro_pres nom_clien)

174 MARCO182 RUBEN

impositor (nro_cuen nom_clien)

prestatario nro_pres nom_clien

P._x

impositor nro_cuen nom_clien

_x

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

MARCOnom_suc

1. QBESELECT - INTERSECCIÓN

144 MARCO125 SUCHA

prestatario (nro_pres nom_clien)

174 MARCO182 RUBEN

impositor (nro_cuen nom_clien)

prestatario nro_pres nom_clien

P._x

impositor nro_cuen nom_clien

_x

Ej.7.- “Los números de préstamo que tienen importe mayor a cualquier préstamo de la sucursal BOLIVAR”

144188177

nro_pres

1. QBECAJA DE CONDICIÓN

CAÑOTO 144 1500BOLIVAR 122 1200JUNIN 125 1400BOQUERON 188 1500JUNIN 132 1600BOLIVAR 177 1550

préstamo (nom_suc nro_pres importe)

préstamo nom_suc nro_pres importe

_v P. _x_v _y

condición

_v='JUNIN' and _x>_y

“Préstamos de sucursal BOLIVAR con nom_clien”

1. QBERELACIÓN RESULTADO

CAÑOTO 144 1500BOLIVAR 122 1200JUNIN 125 1400BOQUERON 188 1500JUNIN 132 1600BOLIVAR 177 1550

préstamo (nom_suc nro_pres importe)

144 MARCO125 SUCHA122 TUCHO188 RUBÉN177 TUCHO132 JOSELITO

prestatario (nro_pres nom_clien)

préstamo nom_suc nro_pres importe

BOLIVAR _x _v

prestatario nro_pres nom_clien

_x _u

resultado nom_clien nro_pres importe

P. _u _x _v

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.

Agrupación.- Saca los resultados agrupando por los atributos indicados.

1. QBEFUNCIONES AGREGADAS

1. QBEFUNCIONES AGREGADAS

préstamo nom_suc nro_pres importe

BOLIVAR P.sum.all

prestatario nro_pres nom_clien

P.cnt.unq.all

préstamo nom_suc nro_pres importe

P.G P.avg.all._x

condición

avg.all._x > 8000

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.

Borrado.- Permite eliminar tuplas de la base de datos. Por ejemplo para eliminar los préstamos de la sucursal JUNIN:

1. SQLDELETE

préstamo nom_suc nro_pres importe

D. BOLIVAR

Inserción.- Permite aumentar una o varias tuplas en la base de datos. Por ejemplo para insertar un cliente:

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:

1. QBEINSERT, UPDATE

cliente nom_clien calle ciudad

I. JOSELITO ca3 SCZ

cuenta nom_suc nro_cuen saldo

U. _x * 1.05_x

UNIDAD 5.OPTIMIZACIÓN DE CONSULTAS

ObjetivoUsar 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.

El enfoque ciego y el de descomposición permiten responder bien y barato.

Ambos se basan en representaciones algebraicas.

Bueno, en realidad es optimización de las respuestas no de consultas.

1. INTRODUCCIÓN

Dr. Renato Barrera.

Trabaja con un árbol sintáctico. Es una receta de cocina. Fácil de aplicar Bastante bueno. 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

Cuesta menos procesar relaciones pequeñas que grandes.

Las selecciones y proyecciones reducen el tamaño de las relaciones

Luego, haga usted cuanto antes las selecciones y proyecciones.

2. EL MÉTODO CIEGOMOTIVACIÓN

1 Obtenga el árbol sintáctico2 Transforme producto natural en “selección -

producto cartesiano”.

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

2. EL MÉTODO CIEGOPASOS CIEGOS

x

Unifique selecciones y proyecciones A B AB

c1 c2 c1c2

Recombine juntas Haga planes de ejecución

2. EL MÉTODO CIEGOPASOS CIEGOS

“Dame nombres de los proveedores de partes de color rojo”. sname ( color=‘rojo’ ( (s sp) p))

2. EL MÉTODO CIEGOEJEMPLO

sname

color=‘rojo’

p

s sp

1

Árbolsintáctico

2. EL MÉTODO CIEGOEJEMPLO

sname

color=‘rojo’

p.p#=sp.p#

p

2

xs.s#=sp.s#

x

s sp

sname

p.p#=sp.p#

3

p

xs.s#=sp.s#

x

s sp

color=‘rojo’

Empuja seleccioneshacia abajo

Descomposiciónde juntas

2. EL MÉTODO CIEGOEJEMPLO

sname

p.p#=sp.p#

4

p#

color=‘rojo’

p#, color

p

xp#, sname

s.s#=sp.s#

x

sname, s#

sp#, s#

sp

Empuja proyecciones hacia abajo

2. EL MÉTODO CIEGOEJEMPLO

sname

6

p#

color=‘rojo’

p#, color

p

p#, sname

sname, s#

sp#, s#

sp

5 Unificar proyecciones y selecciones. Innecesario

Recombinar juntas

2. EL MÉTODO CIEGOEJEMPLO

sname

7

p#

color=‘rojo’

p#, color

p

p#, sname

sname, s#

sp#, s#

sp

Planes de ejecución

Se concentra en juntas Todas las otras operaciones se consideran

triviales Representa consulta como “grafo de

consulta”

3. MÉTODO DE DESCOMPOSICIÓN

SemijuntaA B A ( A B)

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

3. MÉTODO DE DESCOMPOSICIÓN

Cuando el grafo es de una ruta, se hace un paso atrás y uno adelante

3. MÉTODO DE DESCOMPOSICIÓNGRAFO DE UNA RUTA

r1 r2 rk-1 rk

HACIA ATRÁSratk = rk

ratk-1 = rk-1 ratk

ratk-2 = rk-2 ratk-1

...........rat2 = r2 rat3

rat1 = r1 rat2

HACIA ADELANTErad1 = rat1

rad2 = rat2 rat1

rad3 = rat3 rat2

...........radk-1 = ratk-1 ratk-2

radk = ratk ratk-1

Método.-1 Escoja un nodo del árbol como raíz del mismo2 Oriente los lados del árbol hacia fuera de la

raíz3 Haga el barrido hacia atrás de cada rama de

árbol4 Haga barrido hacia delante, partiendo de la

raíz5 Mande ensamblar

3. MÉTODO DE DESCOMPOSICIÓNGRAFO DE VARIAS RUTA

3. MÉTODO DE DESCOMPOSICIÓNGRAFO DE VARIAS RUTA

AC

B

ED

raiz

A

C

BE

D

Escoja una raiz

Oriente los lados

3. MÉTODO DE DESCOMPOSICIÓNGRAFO DE VARIAS RUTA

A

C

B

E

D

Paso hacia atrásEat=E Bat=B Aat=ADat=DE

Cat=((C Aat) Bat) DaCad=Cat

Paso hacia delanteAad=Aat Cad Bad=BatCad Dad=DatCad

Ead=EatDad

Envíe Aad, Bad, Cad, Dad, Ead y ensamble.

3. MÉTODO DE DESCOMPOSICIÓNGRAFO CON CICLO

deporte_practicado

Futbol VenancioJai Alai Joao

deporte_practicado (deporte persona)

Joao BrasilVenancio España

origen (persona país)

Brasil FutbolEspaña Jai Alai

deporte_nacional (país deporte)

deporte_nacional

origen

“Dame las personas que practican su deporte nacional”

Quienes? !!NADIE!!

3. MÉTODO DE DESCOMPOSICIÓNGRAFO CON CICLO

deporte_practicado

deporte_nacional

origen

TRUCO.- migración de llaves.1 Rompa un nodo del ciclo2 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ÓNGRAFO CON CICLO

deporte_practicado

deporte_nacional

origen

origen1 origen2dep_prac dep_nac

1 Joao Brasil2 Venancio España

origen2 (llave, persona, país)

3. MÉTODO DE DESCOMPOSICIÓNGRAFO CON CICLO

origen1 origen2dep_prac dep_nac

1 Brasil Futbol2 España Jai Alai

dep_nac_at = dep_nac origen2dep_nac_at (llave, país, deporte)

Brasil FutbolEspaña Jai Alai

dep_nac (país, deporte)

1 Joao Brasil2 Venancio España

origen2_at(llave, persona, país)

3. MÉTODO DE DESCOMPOSICIÓNGRAFO CON CICLO

origen1 origen2dep_prac dep_nac

1 Brasil Futbol2 España Jai Alai

dep_nac_at (llave, país, deporte)

Futbol VenancioJai Alai Joao

dep_prac (deporte persona)

1 Futbol Venancio2 Jai Alai Joao

dep_prac_at = dep_prac dep_nac_atdep_prac_at (llave, deporte, persona)

3. MÉTODO DE DESCOMPOSICIÓNGRAFO CON CICLO

origen1 origen2dep_prac dep_nac

1 Futbol Venancio2 Jai Alai Joao

dep_prac_at (llave, deporte, persona)

1 Joao Brasil2 Venancio España

origen1(llave, persona, país)

origen1_at = origen1 dep_prac_atorigen1_at (llave, persona, país)

!!!!NADIE!!!, correcto Fin Renato.

UNIDAD 6.CREACIÓN DE BASES DE DATOS

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

La implementación de la base de datos comienza con la creación de las tablas.

CREATE SEQUENCE s_dept_id MINVALUE 1 MAXVALUE 9999999 INCREMENT BY 1 START WITH 51 NOCACHE NOORDER NOCYCLE;

INTRODUCCIÓN

CREATE TABLE s_dept (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));

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

INTRODUCCIÓN

Los índices aceleran la recuperación de datos, pero ocupan espacio, pueden ser:uniqueadmitir valores duplicados

Las claves primarias son siempre unique

Las claves foráneas pueden admitir duplicados

Pueden crearse índices sobre grupos de campos

1. ÍNDICES

Create unique index index_id on s_dept(id)

Create index index_name on s_dept(name)

Create unique index index_name_reg on s_dept(name, region_id)

1. ÍNDICES

Permite asegurar la consistencia entre las relaciones.

2. INTEGRIDAD REFERENCIAL

Padre(maestro)

Hijo(detalle)

Clave primaria

Clave foránea

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

Las claves primarias deben declararse como not nulls.

La clave primaria debe ser unique.

Si el usuario borra una clave primaria, y existen claves foráneas asociadas, falla.

Si el usuario modifica una clave primaria y existen claves foráneas asociadas, falla.

Si el usuario actualiza o inserta una clave foránea y no existe clave primaria, falla.

2. INTEGRIDAD REFERENCIAL

Referencias cíclicas

Autoreferencias

Referencias múltiples

2. INTEGRIDAD REFERENCIAL

Padre

Hijo

Padre/Hijo

Padre

Hijo Hijo

ALTER TABLE s_dept ADD CONSTRAINT s_dept_id_pk PRIMARY KEY (id),

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

2. INTEGRIDAD REFERENCIALReferencias cíclicas

CREATE TABLE empleado ( emp_num number NOT NULL, gerente number, CONSTRAINT pk_en PRIMARY KEY (emp_num), CONSTRAINT fk_en FOREIGN KEY (gerente) REFERENCES empleado(emp_num));

2. INTEGRIDAD REFERENCIALAutoreferencias

ALTER TABLE tienda ADD CONSTRAINT pk_tienda PRIMARY KEY (tienda_cod);

ALTER TABLE video ADD CONSTRAINT fk1_tienda FOREING KEY (tienda_cod) REFERENCES tienda;

ALTER TABLE empleado ADD CONSTRAINT fk2_tienda FOREING KEY (tienda_cod) REFERENCES tienda;

2. INTEGRIDAD REFERENCIALReferencias múltiples

Toda clave primaria es un índice. Las claves primarias y foráneas son estructurales: implican una relación con otra relación.

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”.

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

3. CLAVES Y COLUMNAS CONVALORES ÚNICOS

La restricción unique asegura que todas las filas tendrán un valor único en la columna indicada.

Una columna que es primary key es automáticamente de valor único.

Un índice único también asegura esta propiedad:

ALTER TABLE s_dept ADD CONSTRAINT s_dept_na_reg_id_uk UNIQUE (name, region_id);

3. CLAVES Y COLUMNAS CONVALORES ÚNICOS

Las autorizaciones de uso de la base de datos son denominadas privilegios.

El dueño de la base de datos tiene todos los privilegios.

Existen privilegios sobre:la baselas tablaslas columnas

4. PERMISOS DE ACCESOY PRIVILEGIOS

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;

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 ACCESOY PRIVILEGIOS

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 ACCESOY PRIVILEGIOS

Solo el dueño puede dar permisos para accesar a una base de datos. Se puede usar: all, select, update, insert, delete y otros.

Por ejemplo Paty puede autorizar a Pedro:Grant all on s_dept to pedro;

Paty autoriza a Katia para actualizar el atributo name de la tabla s_deptGrant update(name) on paty.s_dept to katia;

4. PERMISOS DE ACCESOY PRIVILEGIOS

Restringe el uso de columnas de tablas Restringe el uso de filas de tablas Restringe los updates a rangos Acceso a datos derivados Encapsular detalles de un select complicado Permite optimizar consultas, de acuerdo a los

criterios del método ciego.

5. VISTAS

CREATE VIEW v_cliente AS SELECT cod, nom, apell FROM cliente;

CREATE VIEW v_cli_est AS SELECT cli_cod, dir, ciu, estado.nom FROM cliente, estado WHERE cliente.est=estado.cod;

SELECT * FROM v_cli_est WHERE cli_cod=105;

5. VISTAS

UNIDAD 7.GENERACIÓN DE APLICACIONES

ObjetivoUtilizar 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

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

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.

1. DIFICULTADES EN EL DISEÑODE BD RELACIONALES

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.

2. REDUNDANCIA VERSUSDUPLICIDAD DE DATOS

P1 rojop2 azulp3 rojo

p (p#, color)

P1 rojop2 azulp3

p (p#, color)

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

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.

2. REDUNDANCIA VERSUSDUPLICIDAD DE DATOS

s2 p1 lápizs3 p1 lápizs4 p3 borrador

sp (s#, p#, pnombre)

s2 p1 lápizs3 p1s4 p3 borrador

sp (s#, p#, pnombre)

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

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 GRUPOSPRIMERA FORMA NORMAL

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:

3. REPETICIÓN DE GRUPOSPRIMERA FORMA NORMAL

s5 Aria p1s2 Baratillo p1, p4s7 ABC p6s9 Tiluchi p8,p2,p6

sp (s#, snombre p# ) s5 Aria p1s2 Baratillo p1

p4s7 ABC p6s9 Tiluchi p8

p2p6

sp (s#, snombre p# )

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.

3. REPETICIÓN DE GRUPOSPRIMERA FORMA NORMAL

s5 Aria p1s2 Baratillo p1 p4s7 ABC p6s9 Tiluchi p8 p2 p6

sp (s#, snombre p#_1a p#_2a p#_3a )

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.

4. DETERMINANTES EIDENTIFICADORES

carnet_id combre_persona

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

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.

4. DETERMINANTES EIDENTIFICADORES

p#

p_nombre

cant_en_stock

Determinantes compuestos.- A veces un grupo de atributos son determinate de otro atributo.

4. DETERMINANTES EIDENTIFICADORES

artículo#

fecha_factura

cant_vendida

factura#

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.

4. DETERMINANTES EIDENTIFICADORES

cliente# nombre_clifactura#

A B C

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.

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.

4. DETERMINANTES EIDENTIFICADORES

cliente# nombre_clifactura#

“Una tabla no cumple la 2FN cuando un atributo, que no sea identificador ni parte de identificador, depende de una parte de un identificador”.

5. FORMAS NORMALES, COODSEGUNDA FORMA NORMAL

bodega#

cantidadparte#

dirección_bodega

“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.

5. FORMAS NORMALES, COODSEGUNDA FORMA NORMAL

bodega#cantidad

parte#

bodega# dirección_bodega

“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”.

5. FORMAS NORMALES, COODTERCERA FORMA NORMAL

cliente# nombre_clifactura#

“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.

5. FORMAS NORMALES, COODTERCERA FORMA NORMAL

cliente#factura#

cliente# nombre_cli

Simplemente. “Una tabla está en FNBC si todo determinante es un identificador”.

5. FORMAS NORMALES, COODFORMA NORMAL DE BOYCE-COOD

nombre_cliente

nombre_sucursal

nombre_banquero

OJO. !!DOS IDENTIFICADORES!!

Simplemente. “Una tabla está en FNBC si todo determinante es un identificador”. NORMALIZADO.

5. FORMAS NORMALES, COODFORMA NORMAL DE BOYCE-COOD

nombre_cliente nombre_banquero

nombre_sucursalnombre_banquero

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.

5. FORMAS NORMALES, COODCUARTA FORMA NORMAL

dependienteempleado#

habilidadempleado#

Una tabla está en 4FN si cumple:

No tiene dos o más hechos multivalorados independientes

Está en FNBC.

5. FORMAS NORMALES, COODCUARTA FORMA NORMAL

auto

dirección

empleado#

Una tabla está en 4FN si cumple:

No tiene dos o más hechos multivalorados independientes

Está en FNBC. NORMALIZADO

5. FORMAS NORMALES, COODCUARTA FORMA NORMAL

auto

dirección

empleado#

empleado#

La 5FN tiene que ver con hechos multivalorados dependientes como:

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, COODQUINTA FORMA NORMAL

s#

p#

j#

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:

5. FORMAS NORMALES, COODQUINTA FORMA NORMAL

s# p# j#p#

s# j#

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.

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.

5. FORMAS NORMALES, COODQUINTA FORMA NORMAL

Nuevas aplicaciones de las bases de datos El modelo orientado a objetos Lenguajes orientados a objetos Lenguajes de programación persistentes Sistemas C++ persistentes

UNIDAD 9. BASES DE DATOS ORIENTADAS A OBJETOS

Relaciones anidadas Los tipos complejos y la programación orientada a objetos Consultas con tipos complejos Creación de valores y de objetos complejos Comparación entre las bases de datos orientadas a objetos y las bases de datos relacionales orientadas a objetos

UNIDAD 10. BD RELACIONALES ORIENTADAS A OBJETOS

CONCLUSIÓN

ANÁLISIS Y DISEÑO ESTRUCTURADO

PARTE II

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.

Desarrollar un proyecto de ingeniería referente a un sistema de información.

DEFINICIONES

Análisis estructurado Deriva en un modelo estructurado de

requerimientos Diseño estructurado

Desarrollo de un sistema computarizado, como solución a un problema

OBJETIVOS DEL AE Y DE

Mejorar la calidad del software y recudir el riesgo de fallas.

Permitie confiabilidad, flexibilidad, facilidad de mantenimiento, eficiencia, portabilidad y seguridad.

BENEFICIOS DEL AE Y DE

Concentrarse sobre el propósito fundamental del sistema

Desarrollo de documentación del softwareCreación de un mapa del sistema

HISTORIA DEL ANÁLISIS ESTRUCTURADO

Structured Analysis Design Technique Douglas Ross

Structured Design Tom DeMarco

HISTORIA DEL DISEÑO ESTRUCTURADO

Desarrollado en los 1970sLarry ConstantineEdward YourdonDiseño estructurado de procesosMichael Jackson y Jean Dominique WarnierDiseño estructurado de datos

1. INTRODUCCIÓN

Concepto general de sistemaClasificación de los sistemasSistemas automatizados. Clasificación.Principios generales de los sistemas.El análisis de sistemas.

2. PARTICIPANTES EN EL ANÁLISIS DE SISTEMAS

Usuarios.Dirección.Auditores, encargados de calidad y estándares.Analistas de sistemas.Diseñador de sistemas.Programadores.Personal operativo.

3. TÉCNICAS DE ENTREVISTAS Y RECOLECCIÓN DE DATOS

Objetivos de una entrevistaTipos de entrevistasGuías para conducir entrevistasPosibles formas de resistencia en la entrevistaProblemas que hay que evitarFormas alternativas de recolectar información

4. HERRAMIENTAS DE ANÁLISIS ESTRUCTURADO

Características de las herramientasDiagrama de flujo de datosDiagrama entidad relaciónDiagramas de transición de estadoDiagramas de estructura

5. CICLO DE VIDA DE LOS SISTEMAS

Concepto de ciclo de vida de los proyectosEl ciclo de vida clásico. DesventajasCiclo de vida semiestructuradoCiclo de vida estructurado. Ventajas.

Formas de aplicaciónCiclo de vida por prototiposLas herramientas CASE

6. ASPECTOS IMPORTANTES DE LOS SISTEMAS

AUTOMATIZADOSProductividadConfiabilidadFacilidad de mantenimientoEficienciaPortabilidadSeguridad

UNIDAD 3. PROCESOS DEL ANÁLISIS

El libro de Edward Yourdon fue escrito en 1989 después de dos años de estudio y experiencias.

Modelo esencial Modelo ambiental Modelo del comportamiento

Implementación del modelo

13. EL MODELO ESENCIAL

Dificultades en la identificación de requerimientos

El concepto de esencia del sistemaDificultades en la construcción de un

modeloComponentes del modelo esencial

14. EL MODELO AMBIENTAL

Descripción del propósito del sistemaDiagrama de contextoLista de eventosOtros componentes del modelo ambientalConstrucción del modelo ambiental

Diagrama de flujo de datos de nivel altoSistema en perspectiva del mundo realSimple caja negra con interfaces a fuentes

externas y usuarios

13. EL MODELO AMBIENTALDiagrama de contexto

El usuario La máquinaMáquina monederade soda en lata

Monedas yselección

Soda en lata y cambio

Soda en lata y cambio

Monedas

14. EL MODELO AMBIENTALDiagrama de contexto

Vendedor llena máquina de soda en lata con sodaVendedor saca monedas de la máquina de soda en lataVendedor aumenta cambio a máquina de soda en lataUsuario inserta monedas en la máquina de soda en lataUsuario selecciona el sabor de la sodaUsuario saca la soda de la máquina de soda en lataUsuario saca su cambio de la máquina de soda en lata

14. EL MODELO AMBIENTALLista de eventos

Ejercicio

Caso de estudio 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.

Situation actual 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

Propósito del nuevo sistema 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: 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

Proceso Desarrollar el diagrama de contexto y discutir

el resultado.

Símbolos

Sistema Interacciones Objectos externos

Ejercicio

Identificación de respuestas a los eventosConexión de las respuestasDesarrollo del modelo inicialNivelación de los DFDsCompletando el diccionario de datosCompletando las especificaciones del procesoRefinamiento del diagrama entidad relaciónTerminado del diagrama transición de estado

15. EL MODELO DEL COMPORTAMIENTO

Determinar los límites a automatizarseDeterminar dispositivos de entrada y salidaFormatos de entrada y salidaDiseño de formulariosCódigos de entrada y salidaIdentificar soporte manual adicionalEspecificación de restricciones de operaciones

16. EL MODELO A IMPLEMENTARSE

UNIDAD 2. HERRAMIENTAS PARA MODELAR SISTEMAS

Diagrama de flujo de datos DFDDiccionario de datos DDEspecificación de procesosDiagramas entidad relaciónDiagramas de transición de estado

7. DIAGRAMA DE FLUJO DE DATOS

Componentes de los diagramas de flujo de datos (DFD)

Guías para la construcción de un DFDDFDs con nivelesExtensiones de DFDs a procesos de tiempo

real

7. DIAGRAMA DE FLUJO DE DATOS

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.

Notación (Yourdon/DeMarco)

Flujo

Proceso

Terminador

Almacén

7. DIAGRAMA DE FLUJO DE DATOS

Componentes de los DFDs

Como debe ser la notación de los DFDs? 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.

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

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.

7. DIAGRAMA DE FLUJO DE DATOS

Guías para la construcción de un DFD

Donde comenzar? Diagrama de contexto Nivel cero del DFD

El usuario La máquinaMáquina monederade soda en lata

Monedas yselección

Soda en lata y cambio

Soda en lata y cambio

Monedas

7. DIAGRAMA DE FLUJO DE DATOS

Guías para la construcción de un DFD

Como continuar? 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

cargadespacha

cuenta

saca

Congelador

Deposito

Sodas lata

Momedas

Monedas

Sodas lata

Monedas

Soda lata

Soda lata

Monedas

Cambio

Selección

colocaCambio Cambio

7. DIAGRAMA DE FLUJO DE DATOS

DFDs con niveles

El usuario La máquinaMáquina monederade soda en lata

Monedas yselección

Soda en lata y cambio

Soda en lata y cambio

Monedas

Terminador 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.

AlmacénTerminador

7. DIAGRAMA DE FLUJO DE DATOS

DFDs con niveles

FXY

f1

f2

f3

f4

f5

f6

f7

X Ya

b

c

de f

g

h

f41

f44 f45

f42

f43

c

d

c1c2

d1 d2

e

7. DIAGRAMA DE FLUJO DE DATOS

DFDs con niveles

Balanceo : 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

Consideraciones prácticas: 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

Sumario de DFD: Se centra en aspectos funcionales

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

funciones?

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

7. DIAGRAMA DE FLUJO DE DATOS

DFDs con niveles

Necesidad de una notaciónNotación: definiciones, datos elementales,

datos opcionales, iteracción-selección-aliasComo mostrar el diccionario de datos al

usuarioImplementación del Diccionario de Datos

8. DICCIONARIO DE DATOS

Es un repositorio de descripciones detalladas referentes a varias construcciones que aparecen el cada DFD.

No hay un formato formal, pero cada construcción debería tener una entrada en el Diccionario de Datos.

Muchas de las herramientas CASE proveen el Diccionario de Datos en forma automática.

8. DICCIONARIO DE DATOS

Describir por cada entrada: Tipo(Flujo de datos, Almacén de datos,Terminador,

Proceso) Nombre Alias Descripción Contenido

8. DICCIONARIO DE DATOS

Un ejemplo: Tipo: Flujo de dato Nombre:Cambio Alias: Description:

Fdesde el proceso “coloca” hasta el almacén de datos “depósito” …...

Contenido: …….

8. DICCIONARIO DE DATOS

Lenguaje estructuradoPre/post condicionesTablas de decisiónGráficos y diagramasDiagramas de flujoDiagramas Nassi-Shneiderman

9. ESPECIFICACIÓN DE PROCESOS

Son las especificaciones de los procesos primitivos, o mini-especificaciones. 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

Especificación de proceso: cuenta

Inicio:Hacer{

Obtener moneda

}hasta (total >= requirido);.

Informa proceso “despachar”;

if (total > requirido)

Return cambio:

End;

9. ESPECIFICACIÓN DE PROCESOS

cargadespacha

cuenta

saca

Congelador

Deposito

Sodas lata

Momedas

Monedas

Sodas lata

Monedas

Soda lata

Soda lata

Monedas

Cambio

Selección

colocaCambio Cambio

Ejercicio: DFD

Propósito del ejercicio: 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

Crear un DFD y su diccionario de datos a partir de tu diagrama de contexto. Partir el diagrama de contexto en al menos 3

burbujas. Escoger una burbuja del primer nivel y partirla en

otras, y así sucesivamente.

Grupos de discución: Compare / contraste los DFDs con Casos de Uso.

Componentes de un diagrama entidad relación

Guías para la construcción de un diagrama entidad relación

Extensiones del diccionario de datos para los diagramas entidad relación

10. DIAGRAMAS ENTIDAD RELACIÓN

Qué es? 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.

Porqué el diagrama ER?

10. DIAGRAMAS ENTIDAD RELACIÓN

Construcción del diagrama ER Entidad Relación Atributo(Propiedad)

10. DIAGRAMAS ENTIDAD RELACIÓN

Entidad Una entidad en ER representa un objeto del

mundo real

Entity Name

10. DIAGRAMAS ENTIDAD RELACIÓN

Relación Una relación define como se relacionan las

entidades, es representada por un rombo.

RelaciónFuente Destino

10. DIAGRAMAS ENTIDAD RELACIÓN

Cardinalidad y participación. !YA VIMOS!

10. DIAGRAMAS ENTIDAD RELACIÓN

Paciente

Visitaestudio

Generatiene

contiene

Series

contiene

tiene

Resultados

Reporte

contiene

imagenes

includes

1

1-n1-n

1

11-n

1

1-n

10-n

1-n

0-n

1

0-1

resultados0-n

contiene1

10. DIAGRAMAS ENTIDAD RELACIÓN

Notación y componentesDiagramas particionadosConstrucción de diagramas de transición de

estadoRelación con otras herramientas de

modelación

11. DIAGRAMA TRANSICIÓN DE ESTADO

Qué son? 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.”

Aplicación Sistemas que dependen del tiempo

11. DIAGRAMA TRANSICIÓN DE ESTADO

Símbolos Estado

Transición de estado

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

– Condiciones y acciones

– Diagramas particionados

condiciónacción

Estadoo

11. DIAGRAMA TRANSICIÓN DE ESTADO

Notación y componentes

11. DIAGRAMA TRANSICIÓN DE ESTADO

Construcción diagramas transición de estado

Esperamonedas

Vendeproducto

Esperaselección

Rechaza botónpresionado

Retorna monedainsertada

Suficiente dineroinsertado

Selección hecha

Producto vendidoDa cambio si hay

Guía para la construcción definir primero todos los posibles estados definir el estado inicial y obtener todas las

transiciones

Verificación y completitud todos los estados deben ser definidos (incluyendo

errores) todos los estados deben ser representados todo estado final debe tener un sucesor

11. DIAGRAMA TRANSICIÓN DE ESTADO

Construcción diagramas transición de estado

Relación con otras herramientas especificación de procesos para control de

burbujas de DFD• condiciones == aferente (de entrada) flujo de control

• acciones == eferente (de salida) control de flujo puede ser especificación de proceso para el

sistema completo (diagrama de contexto)

11. DIAGRAMA TRANSICIÓN DE ESTADO

Relación con otras herramientas

Pros provee alto detalle para la implementación provee buena documentación para aspectos

dependientes del tiempo en el sistema

Contras mucho esfuerzo de diseño requerido asume que los estados de transición son

instantaneos puede resultar muy complejo

11. DIAGRAMA TRANSICIÓN DE ESTADO

Pros y contras

Balance del DFD contra el DDBalance del DFD y las especificaciones de procesoBalance de las especificaciones de proceso contra el

DFD y el DDBalance del DD contra el DFD y las especificaciones de

procesoBalance del DER contra el DFD y las especificaciones de

procesoBalance del DFD contra el diagrama de estado de

transición

11. RELACIÓN ENTRE DISTINTAS HERRAMIENTAS

UNIDAD 4. ETAPAS POSTERIORES AL ANÁLISIS

Asignación de procesadoresAsignación de tareasImplementación de tareas por programasDiagramas de estructuraCohesiónAcoplamientoDiseño basado en la transformación centralDiseño basado en las transacciones

17. EL DISEÑO DE SISTEMAS

Qué son ellos? Herramienta para ayudar a definir la implementación del

modelo modularizar vistas del sistema originalmente fue la principal herramienta del diseño

estructurado

Aplicaciones vista general para desarrolladores y diseñadores

Modulos I/O, función, mecanismos, datos internos

17. EL DISEÑO DE SISTEMASDiagrama de estructura

Símbolos de módulo

Módulo

Módulo

Predefinido

Llamada a módulo

17. EL DISEÑO DE SISTEMASDiagrama de estructura

Símbolos de comunicación Dato de acople

• procesado

• externamente relevante Bandera

• seteado y probado

• internamente relevante

emisor receptor

nombre

emisor receptor

nombre

17. EL DISEÑO DE SISTEMASDiagrama de estructura

Modulos nombrado por un verbo sentencia, describe un

procesamiento

Dato nombrado con un nombre.

Bandera descriptiva nombrada por un adjetivo, descripción de estado

Bandera de control nombrada por un verbo.

17. EL DISEÑO DE SISTEMASDiagrama de estructura

17. EL DISEÑO DE SISTEMASDiagrama de estructura

Vendesoda

en lata

Obtenersuficientes

fondos

Leeproducto

seleccionado

Obtienecambio

Entregaproducto

Recibirmonedas

Verificasuficiente

fondo

Leeselección

selección

moneda

Productoseleccionado

Suficientesnonedas

monedasmonedas

Monedas >=cant. necesitada

Productoseleccionado

Módulos necesitan funciones bien definidas e interfaces Deberían ser relativamente pequeños (10-100 LOC)

Banderas reducir banderas de control (indican pobre partición)

Relación con otras herramientas muy relacionados con DFDs DFD a diagramas de estructura por transformación del

análisis

17. EL DISEÑO DE SISTEMASDiagrama de estructura

Pros vista gráfica de alto nivel se concentra sobre los aspectos “caja-negra” de

los módulos Permite subjetividad

Contras puede ser difícil crearlo puede volverse muy subjetivo

17. EL DISEÑO DE SISTEMASDiagrama de estructura

Ejercicio: Diagrama de estructura

Porpósito del ejercicio: introducir los conceptos de transacción y

transformación del análisis, familiarizarse con el diagrama de estructura.

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

Diagrama de estructura Tomado de Page-Jones: “The Practical Guide to Structured System Design” 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

Identificar transacciones en DFDPara cada transacción, identificar la “transformación central”

inspección o, aislar flujo de datos esencial o, seguir criterio “mundo ideal”

Producir primer diagrama de estructura 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”

Ejercicio: Diagrama de estructura

Inspección Visualmente inspeccionar el DFD e identificar lo que “parece” la

transformación central

Aislar flujos de datos esenciales 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

“Mundo ideal” Remover algunas burbujas mediante manejo central de errores y

formateo de datos, dejar las burbujas que son transformación central.

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

Ejercicio: Diagrama de estructura. Ejemplo

cargadespacha

cuenta

saca

Congelador

Deposito

Sodas lata

Momedas

Monedas

Sodas lata

Monedas

Soda lata

Soda lata

Monedas

Cambio

Selección

colocaCambio Cambio

El usuario La máquinaMáquina monederade soda en lata

Monedas yselección

Soda en lata y cambio

Soda en lata y cambio

Monedas

Ejercicio: Diagrama de estructura. Ejemplo

Vendesoda

en lata

Obtenersuficientes

fondos

Leeproducto

seleccionado

Obtienecambio

Entregaproducto

Recibirmonedas

Verificasuficiente

fondo

Leeselección

selección

moneda

Productoseleccionado

Suficientesnonedas

monedasmonedas

Monedas >=cant. necesitada

Productoseleccionado

Medida de la fuerza de asociación de los elementos de un módulo

Niveles funcional secuencial comunicacional procedural temporal logico coincidental

best

worst

17. EL DISEÑO DE SISTEMASCohesión

Medida de la interdependencia de los módulosTipos

normal• datos• estampilla• control

común contenido

best

worst

17. EL DISEÑO DE SISTEMASAcoplamiento

Muchos métodos potencialesInterface y especificaciones funcionales

dan un buen balance de detalle de especificación proveen módulo general de documentación menos detalles de implementación

Seudocódigo Alto detalle, menos errores potenciales puede resultar muy abundante en palabras

17. EL DISEÑO DE SISTEMASEspecificaciones

El papel del analista en la programación y prueba

Organización del trabajo de programaciónProgramación y lenguaje de programaciónAspectos importantes de la programaciónLa prueba de programasInstalaciónEntrenamiento

18. PROGRAMACIÓN, PRUEBAS, CONVERSIÓN, INSTALACIÓN Y

ENTRENAMIENTO

Conclusión

top related