View
1.700
Download
1
Category
Preview:
DESCRIPTION
es todo sobre bases de datos
Citation preview
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
Recommended