[go: up one dir, main page]

0% encontró este documento útil (0 votos)
127 vistas144 páginas

BD Guia de Estudio v6

Este documento presenta conceptos generales sobre bases de datos, incluyendo definiciones de base de datos, sus componentes y procesos. Explica el modelo relacional y el papel de un sistema gestor de bases de datos. También describe conceptos clave como la independencia de datos y programas, y los actores principales de una base de datos como administradores, diseñadores y usuarios.

Cargado por

ebenavente27
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
127 vistas144 páginas

BD Guia de Estudio v6

Este documento presenta conceptos generales sobre bases de datos, incluyendo definiciones de base de datos, sus componentes y procesos. Explica el modelo relacional y el papel de un sistema gestor de bases de datos. También describe conceptos clave como la independencia de datos y programas, y los actores principales de una base de datos como administradores, diseñadores y usuarios.

Cargado por

ebenavente27
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 144

Diseño de Bases de

Datos

Guía de Estudio
Primer Parcial
Introducción a las Bases de Datos y el Modelo
Relacional
Introducción

Conceptos Generales
Conceptos Generales
Conceptos:
• Bases de Datos
• Datos

Procesos que se realizan en una base de datos:


• Definición
• Construcción
• Manipulación
Propiedades de una Base de Datos

Componentes de una Base de Datos

Sistema Gestor de Bases de Datos


• Definición
• Ventajas de utilizarlo

Arquitectura de un Sistema Gestor de Base de Datos

Independencia entre Datos y Programas y Abstracción de Datos

Actores de una Base de Datos


Conceptos Generales:
Definiciones
Conceptos Generales:
Propiedades de una BD
Una base de datos representa algunos aspectos del mundo real,
se le denomina minimundo o Universo del Tema. Los cambios
del minimundo se reflejan en la base de datos.

Una base de datos es una colección coherente de datos con


significados inherentes. Un conjunto aleatorio de datos no puede
considerarse una base de datos.

Una base de datos se diseña, construye y puebla con datos para


un propósito específico está destinada a un grupo de usuarios
concreto y tiene aplicaciones preconcebidas en las cuales están
interesados dichos usuarios
Conceptos Generales: ¿Porqué una
base de datos?
Conceptos Generales: ¿Porqué una
base de datos?
Conceptos Generales

Agregar nuevos archivos

Insertar datos dentro de los archivos

Recuperar (Consultar) datos de los


archivos

Operaciones que se realizan Modificar datos de los archivos


en una base de datos

Eliminar datos de los archivos

Ordenar datos en los archivos

Modificar y eliminar archivos


Conceptos Generales:
Procesos de una BD
• Consiste en especificar los tipos de datos, las
Definición: estructuras y las restricciones para los datos que se
van a almacenar en la base de datos

• Es el proceso de almacenar datos concretos sobre


Construcción: algún medio de almacenamiento controlado por el
Sistema Gestor de Bases de Datos.

• Incluye funciones como consultar la base de datos


para recuperar datos específicos, actualizar la base
Manipulación: de datos para reflejar los cambios ocurridos en el
minimundo y generar informes a partir de los datos.
Conceptos Generales: Componentes
de un sistema de Base de Datos

Datos • Deben ser integrados y compartidos

• Volúmenes de almacenamiento secundario


Hadware • Dispositivos de E/S
• Procesadores y memoria principal

Software • Administrador o Servidor de Bases de Datos o Sistema Gestor de


Bases de Datos (SGBD).

• Diseñador de Bases de Datos

Actores •


Administrador de la base de datos
Programador de Aplicaciones (connvencionales o en línea)
Usuarios finales
Conceptos Generales: Entorno de un
Sistema de Base de Datos
Usuarios Programas de Aplicación/ Programadores
Consultas

Software para procesar


consultas/ programas

Software para acceder a


datos almacenados

Definición de
base de datos Base de Datos
almacenados almacenada
(metadatos)
Conceptos Generales: Sistema
Gestor de Bases de Datos
Ejemplos de Sistemas
Definiciones Gestores de Bases de Datos
 Es una colección de programas
que permiten a los usuarios
crear y mantener una base de  ORACLE
datos.  Microsoft SQL Server
 Otra definición: “Es un sistema  DB2
de software de propósito general
que facilita los procesos de  Sybase
definición, construcción y  MySQL
manipulación de bases de datos
para distintas aplicaciones”.  Microsoft ACCESS
Conceptos Generales: Sistema
Gestor de Bases de Datos

• Una característica fundamental del


enfoque de bases de datos es qe el
SGBD no contiene solo la base de
datos propiamente dicha, sino
también una definición o descripción
completa de la estructura de la base
de datos y sus restricciones.
• Esta definición se almacena en el

Metadatos catálogo del sistema y contiene


información sobre la estructura de
cada archivo, el tipo y formato de
almacenamiento de cada elemento y
restricciones sobre los datos que se
graban en el archivo.
• A esta información se le conoce
como metadatos.
Conceptos Generales:
Independencia y Abstracción
Independencia entre Programas y Datos

• Cuando se integra la estructura de los archivos de datos a los


programas, la modificación a la estructura del fichero implica la
modificación de todos los programas.
• En bases de datos la estructura de los archivos de datos se almacena en
el catálogo del SGBD, separadamente de los programas de acceso. Hay,
por tanto, una independencia entre programas y datos

Abstracción de Datos

• Es la característica que permite que haya independencia de datos y


programas.
• Un SGBD ofrece a los usuarios una representación conceptual de los
datos.
• Un modelo de datos es un tipo de abstracción de datos que se utiliza
para hacer la representación conceptual.
Conceptos Generales: Ejemplo
de una Base de Datos
ALUMNOS Nombre Código Año Carrera CURSOS Nombre Código UV Carrera
Introducción a IC1310 4 IC
López 900 1 IC la Informática

Fúnez 700 2 IC Estructura de IC3320 4 IC


Datos

INFORMES Código Código Calificación Circuitos CD2110 3 IE


NOTAS Alumno Sección Digitales

900 112 B Bases de Datos IC3380 3 IC

900 119 C
700 85 A
SECCIONES Código Código Semestre Año Profesor
700 92 A
Sección Curso
700 102 B 85 CD2110 2 98 King
700 135 A 92 IC1310 2 98 Anderson
102 IC3320 1 99 Stone
CARRERAS Código Nombre Carrera 112 CD2110 2 99 Kendall
IC Ingeniería Computación 119 IC1310 2 99 Chang

GN Gerencia de Negocios 135 IC3380 2 99 Anderson

IE Ingeniería Electrónica
Conceptos Generales: Ejemplo
de una Vista de una Base de
Datos
EXPEDIENTES Nombre Alumno Expediente del Alumno

Código Curso Calificación Semestre Año Sección


López IC1310 C 1 99 119

IE2110 B 1 99 112
Fúnez IE2110 A 1 98 85
IC1310 A 1 98 92

IC3320 B 2 99 102

IC3380 A 1 99 135
Conceptos Generales: Actores
en una Base de Datos
Administrador de bases de datos
• Es el encargado de autorizar acceso a la base de datos,
coordinar y vigilar su utilización, y adquirir (u orientar la
adquisición) de los recursos de hardware y software que
sean necesarios. Es el responsable cuando se
presentan violaciones a la seguridad o cuando el tiempo
de respuesta es muy lento.
• En resumen sus funciones son las siguientes:
• Definición del esquema
• Definición de la estructura y del método de acceso.
• Modificación del esquema y de la organización física.
• Concesión de autorización para el acceso a los datos.
• Mantenimiento rutinario.

Analistas de Sistemas y Programadores Diseñador de bases de datos


de Aplicaciones • Identifica los datos que se almacenarán
• Los analistas determinan los requerimientos de los en la base de datos y eligen las
usuarios finales, sobre todo los más simples y estructuras apropiadas para presentar y
paramétricos y desarrollan especificaciones para almacenar dichos datos. Es el
transacciones programadas que satisfagan esos responsable de comunicarse con los
requerimientos.
usuarios para comprender sus
• Los programadores implementan esas
especificaciones en forma de programas, luego
necesidades de información y poder
prueban, depuran, implementan y mantienen esas presentar un diseño que satisfaga esos
transacciones programadas. requerimientos.
• Para realizar estas tareas tanto los analistas como
los programadores deben conocer a la perfección
la gama de capacidades del SGBD.
Conceptos Generales: Actores
en una Base de Datos
Usuarios Finales Ocasionales Usuarios Finales Simples o
• Generalmente consultan diferente información Paramétricos
de la base de datos. Gerentes de nivel medio. • Consultan y actualizan constante mente la base
de datos utilizando programas realizados por los
analistas/programadores. Ejemplo: Cajeros,
encargados de reservas en líneas aéreas, etc.

Usuarios Finales

Usuarios Finales Avanzados Usuarios Autónomos


• Ingenieros, científicos o analistas de negocios • Mantienen bases de datos personales mediante
familiarizados con los recursos de SGBD que la utilización de paquetes de programas
implementan aplicaciones sobre ellas, para comerciales que cuentan con interfaces de fácil
cumplir sus propios fines. uso. Ejemplo: paquetes de contabilidad.
Tipos de Bases de Datos
Bases de Datos Relacionales
Tipos de Bases de Datos:
Bases de Datos Relacionales
Concepto:

• Una base de datos relacional consiste en un


conjunto de tablas, a cada una de las cuales se le
asigna un nombre exclusivo.
• Cada fila de la tabla representa una relación entre
un conjunto de valores.
• Dado que cada tabla es un conjunto de dichas
relaciones, hay una fuerte correspondencia entre el
concepto de tabla y el concepto matemático de
relación. De ahí el nombre de modelo de datos
relacional.
Tipos de Bases de Datos: Bases
de Datos Orientadas a Objetos

• Se basa en el paradigma de la Programación


Orientada a Objetos.
• Un concepto esencial que no encaja en el
modelo relacional es el de encapsular los datos
y el código que opera sobre ellos en un objeto.
• La estructura de superclases y subclases es
Características equivalente al concepto de tablas relacionadas
(o entidades) en las bases de datos relacionales.
• Debe considerarse que bajo este enfoque los
objetos creados a partir de las clases son
persistentes, ya que los datos deben estar
disponibles para usos futuros.
Modelado de Datos
Modelo Relacional
Modelado de Datos: ¿Qué es
Modelo de Datos?

• Es una definición lógica,


independiente y abstracta de los
objetos, operadores y demás que
Concepto en conjunto constituyen la máquina
abstracta con la que interactúan los
de usuarios.
• Los objetos nos permiten modelar la
Modelo: estructura de los datos. Los
operadores nos permiten modelar
su comportamiento.
Modelado de Datos: Modelo
Relacional

Breve y vagamente
un modelo
relacional es aquel
en que:
• Los datos son
percibidos por el usuario
como tablas.
• Los operadores
disponibles para el
usuario (por ejemplo
para recuperación) son
operadores que
generan nuevas tablas
a partir de las
anteriores.
Modelado de Datos:
El Diagrama Entidad/Relación
Tipos de Entidades

Entidades

Conjuntos de Entidades

Relaciones

Propiedades
Conceptos:
Cardinalidad

Dominio

Conjuntos de entidades

Conjuntos de relaciones

Atributos
Modelado de Datos: Definiciones
del Modelo Relacional
Entidad: Es una «cosa» u «objeto» en el mundo real que es distinguible de todos
los demás objetos.

Conjunto de entidades: Es un conjunto de entidades del mismo tipo que


comparten las mismas propiedades o atributos.

Tipo de entidad: Abstracción del conjunto de características que describen una


entidad.

Atributos: Los atributos describen propiedades que posee cada miembro de un


conjunto de entidades.

Valor: Cada entidad tiene un valor para cada uno de sus atributos.

Dominio: Conjunto de valores permitidos para cada atributo, también se le


denomina el conjunto de valores validos para ese atributo.

Valores nulos: En algunos casos, una cierta entidad podría no tener ningún valor
aplicable para un atributo.
Modelado de Datos: Definiciones
del Modelo Relacional
Atributo clave de un tipo de entidad:Es aquel atributo que por tener valores distintos para cada entidad
individual del conjunto de entidades es elegido como identificador único del conjunto.

Clave compuesta: Es cuando un solo atributo no es suficiente para garantizar la unicidad de una entidad en el
conjunto de entidades. En esos casos la clave principal se conforma con más de un atributo.

Atributos simples y compuestos: Los atributos compuestos son aquellos que son divisibles en elementos
más pequeños (por ejemplo, una dirección que puede dividirse en calle, avenida, etc.). Los simples son
aquellos que no son divisibles.

Atributos monovalorados y multivalorados: Los monovalorados son aquellos que almacenan un único valor
para cada entidad (por ejemplo, el nombre de una persona). Los multivalorados son aquellos que pueden tener
más de un valor para cada entidad (por ejemplo, pasatiempos de una persona.

Atributos almacenados y derivados: Si para una persona se está almacenando el atributo Fecha de
Nacimiento, no se necesita almacenar la edad. La edad se puede derivar de la Fecha de Nacimiento restando
esa fecha de la fecha actual.
Modelado de Datos: Definiciones
del Modelo Relacional
Relación: Es una asociación entre diferentes entidades.

Conjunto de relaciones es un conjunto de relaciones del mismo tipo.

Participación: Se refiere a la asociación entre conjuntos de entidades. Es como


decir que los conjuntos de entidades E1, E2,…, En participan en el conjunto de
relaciones R

Papel o Rol: Es la función que desempeña una entidad en una relación.

Atributos descriptivos: Son aquellos atrbiutos que no forman parte de la clave


principal. Una relación puede también tener sus propios atributos descriptivos.
Modelado de Datos: Vínculos, roles y
restricciones estructurales en el Modelo
Relacional

Correspondencia de cardinalidades: o razón de


cardinalidad, expresa el número de entidades a las que
otra entidad puede estar asociada vía un conjunto de
relaciones. Pueden ser:

Uno a uno

Uno a varios

Varios a uno

Varios a varios
Modelado de Datos: Vínculos, roles y
restricciones estructurales en el Modelo
Relacional
Empleado Trabaja_Para Departamento

E1 R1

E2 R2
D1
E3 R3
D2
E4 R4
D3
E5 R5

E6 R6

E7 R7

Instancias del vínculo Trabaja_Para entre Empleado y Departamento


Modelado de Datos: Vínculos, roles y
restricciones estructurales en el Modelo
Relacional
Proveedor Suministrar Proyecto
S1
PV1
S2 PY1
PV2
S3 PY2

Departamento S4 PY3

D1 S5

D2 S6

D3 S7

Instancias del vínculo terniario Suministrar


Modelado de Datos: Vínculos, roles y
restricciones estructurales en el Modelo
Relacional
Empleado Supervisión

E1 Supervisa

Supervisado Supervisa R1
Supervisado
E2
R2
Supervisado
E3
R3
Supervisa

E4

Vínculo recursivo Supervisión, donde el tipo de entidad


Empleado interpreta dos roles: Supervisor y Supervisado
Modelado de Datos: Vínculos, roles y
restricciones estructurales en el Modelo
Relacional
Empleado Dirige Departamento

E1
R1
E2
D1
E3
R2 D2
E4
D3
E5
R3
E6

E7

El vínculo 1:1 Dirige con participación parcial de Empleado y


participación total de Departamento
Modelado de Datos: Vínculos, roles y
restricciones estructurales en el Modelo
Relacional
Empleado Trabaja_En Proyecto

E1 R1

E2 R2
P1
E3 R3
P2
E4 R4
P3
E5 R5

E6 R6

E7 R7

El vínculo M:N Trabaja_en entre Empleado y Proyecto


Modelo Relacional: Restricciones
Participación
• Se dice que es total si cada entidad en E participa al menos en una
relación en R.
• Si sólo algunas entidades en E participan en relaciones en R, la
participación del conjunto de entidades E en la relación R se llama
parcial.
Ejemplo
• Se puede esperar que cada entidad préstamo esté relacionada con al
menos un cliente mediante la relación prestatario. Por lo tanto, la
participación de préstamo en el conjunto de relaciones prestatario es
total.
• En cambio, un individuo puede ser cliente de un banco tenga o no
tenga un préstamo en el banco. Así, es posible que sólo algunas de las
entidades cliente estén relacionadas con el conjunto de entidades
préstamo mediante la relación prestatario, y la participación de cliente
en el conjunto de relaciones prestatario es por lo tanto parcial.
Modelo Relacional: Claves

Concepto

• Las claves, tambien Servicios


conocidas como llaves, ServCodigo
permiten identificar un
conjunto de atributos ServDescripcion
suficiente para distinguir ServCostoMensual
las entidades entre sí.
En esta entidad
• Las claves también ServCodigo
ayudan a identificar es la clave
unívocamente a las
relaciones y así a
distinguir las relaciones
entre sí.
Modelo Relacional: Claves
Candidatas y Claves Primarias
Conceptos Clientes

• Es posible que conjuntos distintos de CliCodigo


atributos pudieran servir como clave
candidata. CliNombre
• Supóngase que una combinación de
CliNombre- + CliTelefono es CliDireccion (O)
suficiente para distinguir entre los CliTel (O)
miembros del conjunto de entidades CliCel (O)
cliente. El número de identidad del
cliente sería otra clave candidata. CliFax (O)
• Se usará el término clave primaria
para denotar una clave candidata
que es elegida por el diseñador de la
base de datos como elemento
principal para identificar las
entidades dentro de un conjunto de
entidades.
Modelo Relacional: Claves
Primarias Compuestas
Clientes
Concepto CliCodigo

CliNombre
• La estructura de la clave CliDireccion (O)
primaria para el conjunto de CliTel (O)
relaciones depende de la CliCel (O)
CliFax (O)
correspondencia de
cardinalidades asociada al
conjunto de relaciones:
• Si el conjunto de relaciones es ServiciosXCliente
varios a varios, la clave primaria CliCodigo (FK)
consiste en la unión de las ServCodigo (FK)
claves primarias de la entidad A
y B de la relación.
• Si la entidad A solo puede tener
un valor de la entidad B, pero la
entidad B puede estar Servicios
representada en más de una ServCodigo
entidad A, entonces la clave
primaria de la relación es ServDescripcion
ServCostoMensual
simplemente la clave primaria
de A.
Ejemplo de relación de varios a varios
Modelo Relacional:¿Conjuntos
de Entidades o Atributos?
Empleados
Como distinguir Conjuntos de EmpID Profesiones
Entidades de Atributos ProfCodigo
EmpNombre
• Considérese el conjunto de entidades ProfNombre
empleado con los atributos nombre-
empleado y Código-Profesión. ProfesionesXEmpleado
• Opciones: EmpID (FK)
• El conjunto de entidades empleado ProfCodigo (FK)

con el atributo nombre-empleado +


conjunto de entidades profesión con
atributos código-profesión y Opción 1
descripción-profesión + relación
empleado-profesión, que denota la Empleados
asociación entre empleados y las Profesiones
EmpID
profesiones que tienen. ProfCodigo

• Código-profesión como un atributo EmpNombre


ProfCodigo (O) (FK)
ProfDescripcion
del conjunto de entidades empleado.
• ¿Cuál es la diferencia? Opción 2
• R=/ En la primera el empleado podría
tener más de una profesión
Modelo Relacional: Precaución

Tip de Modelado
(precaución)
Empleados1
• Un error común es usar la clave Profesiones1
primaria de un conjunto de EmpID
ProfCodigo
entidades como un atributo de otro EmpNombre
conjunto de entidades, en lugar de ProfCodigo (O)
ProfNombre
usar una relación.
• Surgen dos problemas como
resultado de esto:
• Los datos se almacenan varias
veces, desperdiciando espacio
de almacenamiento;
• Las actualizaciones dejan
potencialmente los datos en un
estado inconsistente, en el que
los valores difieren en dos
relaciones para atributos que se
supone tienen el mismo valor.
Modelo Relacional: Entidades
Fuertes y Entidades Débiles
Ciudades
Conceptos
CiuCodigo
• Un conjunto de entidades CiuNombre
puede no tener suficientes
atributos para formar una
clave primaria. Tal
conjunto de entidades se
Zonas
denomina conjunto de
entidades débiles. CiuCodigo (FK)
ZonaCodigo
• Un conjunto de entidades
que tiene una clave ZonaNombre
primaria se denomina
conjunto de entidades
fuertes.
Modelo Relacional: Entidades
Fuertes y Entidades Débiles
Concepto de Prestamos

discriminante PreNumero

PreFecha
PreValor
• El discriminante de un conjunto de
PrePlazo (O)
entidades débiles es un conjunto de
atributos que permite que se haga la
distinción entre fuerte y débil. Por ejemplo,
el discriminante del conjunto de entidades
débiles plan de pago es el atributo número
de cuota, ya que, para cada préstamo, un Cuotas
número de cuota identifica de forma única
cada pago para ese préstamo. PreNumero (FK)
• El discriminante de un conjunto de CuoNumero
entidades débiles se denomina la clave
parcial del conjunto de entidades. CuoFechaVence
• La clave primaria de un conjunto de CuoAporteCapital
entidades débiles se forma con: CuoIntereses (O)
• <Clave primaria del conjunto de entidades CuoTotal
identificadoras> + <Discriminante del
conjunto de entidades débiles>.
Modelo Relacional: Diagrama
Entidad/Relación Extendido

Especialización

Agregación. Generalización

Conceptos

Conjuntos de
Herencia de entidades de
atributos y nivel más alto y
más bajo
Modelo Relacional:
Especialización y Generalización
Conceptos Socios

SocID
• Un conjunto de entidades puede
incluir subgrupos de entidades SocNombre
que se diferencian de alguna SocRTN (O)
forma de las otras entidades del SocTelefono
conjunto. SocDireccion
• La relación que se genera se
puede llamar relación
superclase-subclase.
• Para todos los propósitos Avales
prácticos, la generalización es
una inversión simple de la SocID (FK)
especialización.
AvalCantidadPrestamos
• En términos del propio diagrama
E-R no se distingue entre
especialización y
generalización.
Modelo Relacional: Herencia

Concepto de herencia Socios

SocID
• Una propiedad crucial de las
entidades de nivel más alto y más SocNombre
bajo creadas mediante SocRTN (O)
especialización y generalización es SocTelefono
la herencia de atributos. SocDireccion
• Los atributos de los conjuntos de
entidades de nivel más alto se dice
que son heredados por los
conjuntos de entidades de nivel Avales
más bajo.
SocID (FK)
• En el ejemplo de socios Avales,
observe que no se especifica AvalCantidadPrestamos
nombre, RTN y otros datos sobre el
aval, porque los hereda de Socios
Modelo Relacional: Restricciones
sobre Generalización
Los conjuntos de entidades de Socios
nivel más bajo pueden ser uno de
SocID
los siguientes:
SocNombre
• Disjunto: Una restricción SocRTN (O)
sobre el carácter disjunto SocTelefono
SocDireccion
requiere que una entidad no
pertenezca a más de un Referencia
conjunto de entidades de SocID (FK)
nivel más bajo. Avales
RefTipo
• Solapado. En las SocID (FK)
generalizaciones solapadas, AvalCantidadPrestamos
la misma entidad puede
pertenecer a más de un Ejemplo de tipo
conjunto de entidades de solapado
nivel más bajo en una
generalización simple.
Modelo Relacional: Agregación

Concepto
• Una limitación del modelo E-R es que no resulta
posible expresar relaciones entre relaciones.
• Supóngase ahora que se desean registrar los
directores para las tareas realizadas por un
empleado en una sucursal; es decir, se desean
registrar directores por combinaciones (empleado,
sucursal, trabajo). Asúmase que existe una entidad
director.
• La mejor forma de modelar una situación como ésta es
usar la agregación. La agregación es una abstracción
a través de la cual las relaciones se tratan como
entidades de nivel más alto.
Normalización de bases de datos
Conceptos y Ejemplos
Normalización

• La normalización es el proceso de
organizar los datos de una base de
datos.
• Incluye la creación de tablas y el
establecimiento de relaciones entre
Concepto ellas según reglas diseñadas tanto
para proteger los datos como para
hacer que la base de datos sea más
flexible al eliminar la redundancia y
eliminar las dependencias
incoherentes.
¿Porqué eliminar la
redundancia?

Los datos redundantes desperdician el espacio


de disco y crean problemas de mantenimiento.

Si hay que cambiar datos que existen en más


de un lugar, se deben cambiar de la misma
forma exactamente en todas sus ubicaciones.

Un cambio en la dirección de un cliente es


mucho más fácil de implementar si los datos
sólo se almacenan en la tabla Clientes y no en
algún otro lugar de la base de datos.
¿Qué son dependencias
incoherentes? ¿Por qué eliminarlas?
Este término se refiere a datos que pueden aparecer en una fila
de una tabla (registro) pero no tener relación con directa con el
registro.

Por ejemplo, aunque es intuitivo para un usuario mirar en la


tabla Clientes para buscar la dirección de un cliente en
particular, puede no tener sentido mirar allí el salario del
empleado que llama a ese cliente.

El salario del empleado está relacionado con el empleado, o


depende de él, y por lo tanto se debería pasar a la tabla
Empleados.

Las dependencias incoherentes pueden dificultar el acceso


porque la ruta para encontrar los datos puede no estar o estar
interrumpida.
Proceso de normalización
Datos no Primera Forma Normal
normalizados Descomponer las filas •Tablas planas sin columnas
•Las filas contienen grupos para quitar grupos repetidas dentro de las filas
repetidos repetidos agregándolos a
nuevas tablas

En filas provistas de Segunda Forma


Eliminar la dependencias
claves basadas en más Normal transitivas (columnas que
de una columna todos los •Los datos de todas las no son claves, pero que
datos deben depender de columnas dependen totalmente
remiten a otros elementos
la clave. Dividir si no es de la clave primaria
de datos)
así

Tercera Forma Normal


•Todas las columnas dependen
de la clave principal y son
independientes entre sí
Formas Normales

Primera forma normal

• Elimine los grupos repetidos de las tablas individuales


• Cree una tabla independiente para cada conjunto de datos relacionados
• Identifique cada conjunto de datos relacionados con una clave principal

Segunda forma normal

• Cree tablas independientes para conjuntos de valores que se apliquen a


varios registros.
• Relacione estas tablas con una clave externa.

Tercera forma normal

• Elimine los campos que no dependan de la clave.


Ejemplo de Normalización: Datos
no Normalizados
Cuenta Alumno Código Carrera Asignatura Asignatura Nota Asignatura Asignatura Nota
Carrera Código Nombre Código Nombre
1011 Andrés IC Ing. BD-101 Bases de 90 IS-101 Ing. De 88
Computación Datos Software
1012 Daniel IC Ing. BD-101 Bases de 87 IS-101 Ing. De 89
Computación Datos Software
1013 Santiago IE Ing. CA-103 Cálculo I 80 II-101 Informática 95
Electrónica I
1014 Diana IE Ing. CA-104 Cálculo II 91 II-102 Informática 84
Electrónica II
1015 Ángel IC Ing. II-102 Informática 82 ES-101 Español I 73
Computación II
Ejemplo de Normalización:
Primera Forma Normal
Cuenta Alumno Código Carrera Cuenta Asignatura Asignatura Nota
Carrera Código Nombre

1011 Andrés IC Ing. 1011 BD-101 Bases de 90


Computación Datos

1012 Daniel IC Ing. 1011 IS-101 Ing. De 88


Computación Software

1013 Santiago IE Ing. 1012 BD-101 Bases de 87


Electrónica Datos

1014 Diana IE Ing. 1012 IS-101 Ing. De 89


Electrónica Software

1015 Ángel IC Ing. 1013 CA-103 Cálculo I 80


Computación
1013 II-101 Informática 95
I
1014 CA-104 Cálculo II 91

1014 II-102 Informática 84


II
1015 II-102 Informática 82
II
1015 ES-101 Español I 73
Ejemplo de Normalización:
Segunda Forma Normal
Cuenta Alumno Código Carrera Cuenta Asignatura Nota Asignatura Asignatura
Carrera Código Código Nombre
1011 Andrés IC Ing. 1011 BD-101 90 BD-101 Bases de
Computación Datos
1012 Daniel IC Ing. 1011 IS-101 88
IS-101 Ing. De
Computación Software
1013 Santiago IE Ing. 1012 BD-101 87
CA-103 Cálculo I
Electrónica
1012 IS-101 89
1014 Diana IE Ing. II-101 Informática
Electrónica I
1013 CA-103 80
1015 Ángel IC Ing. CA-104 Cálculo II
Computación 1013 II-101 95
II-102 Informática
1014 CA-104 91 II
ES-101 Español I
1014 II-102 84

1015 II-102 82

1015 ES-101 73
Ejemplo de Normalización:
Tercera Forma Normal
Cuenta Alumno Código Carrera Cuenta Asignatura Nota Asignatura Asignatura
Carrera Código Código Nombre
1011 Andrés
IC Ing. 1011 BD-101 90 BD-101 Bases de
1012 Daniel Computación Datos
1011 IS-101 88
IE Ing. IS-101 Ing. De
1013 Santiago Electrónica Software
1012 BD-101 87
CA-103 Cálculo I
1014 Diana
1012 IS-101 89
II-101 Informática
1015 Ángel
I
1013 CA-103 80
CA-104 Cálculo II
1013 II-101 95
II-102 Informática
1014 CA-104 91 II
ES-101 Español I
1014 II-102 84

1015 II-102 82

1015 ES-101 73
SQL

Lenguaje estructura de consultas


Componentes principales del
lenguaje SQL

Lenguaje de • Comandos para la definición,


modificación y borrado de
Definición de esquemas de relación (tablas,
Datos (DDL) relaciones, índices, etc.)

Lenguaje de • Lenguaje para consultar información


Manipulación en la base de datos. También
incluye comandos para insertar,
de Datos borrar y modificar registros en tablas
(DML) de las bases de datos.
Otros componentes del lenguaje
SQL
• El DDL incluye comandos para especificar restricciomnes de integridad
Integridad que deben cumplir los datos almacenados en la base de datos. Las
actualizaciones que violan las restricciones de integridad se rechazan.

Definición de • El DDL de SQL incluye comandos para la definición de vistas.


vistas
Control de • SQL incluye comandos para especificar el comienzo y el final de las
transacciones
transacciones
SQL incorporado • Definen como incorporar instrucciones de SQL en lenguajes de
programación de propósito general, como C++, C#, Java, etc.
y SQL dinámico
• El DDL incluye comandos para especificar los derechos de acceso a
Autorización las relaciones y vistas.
Lenguaje de Definición de Datos
(DDL)
Esquema de cada relación o tabla
Con
DDL Dominio de valores asociado a cada atributo de la
se tabla
puede Restricciones de integridad
definir:
Conjunto de índices que se deben mantener en
cada relación
Información de seguridad y de autorización de cada
relación
Estructura de almacenamiento físico de cada
relación en el disco.
Lenguaje de Definición de Datos
(DDL)
Tipos básicos de dominios
Char: Cadena de caracteres de longitud fija.

Varchar: Cadena de caracteres de longitud variable, con una


longitud máxima de n especificada por el usuario.
Int: Número entero. Longitud depende de la máquina. Sinonimo
con integer.

Smallint: Entero pequeño. Longitud depende de la máquina.

Numeric: Número de coma fija. Precisión especificada por el


usuario.
Real, double precision: Números de coma flotante. Precisión
dependiente de la máquina.

Float: Número de coma flotante cuya precisión es de, al menos,


n dígitos.
Lenguaje de Definición de Datos
(DDL)

• Create: Por ejemplo para crear


esquemas o tablas se utiliza
Principales “create table”
comandos Alter: Para modificar esquemas
para o tablas. Por ejemplo, añadirle
definición y un atributo: “alter table”.
Drop: Para eliminar esquemas u
modificación otros objetos de una base de
datos. Por ejemplo: “drop table”
Lenguaje de Manipulación de
Datos (DML)
Comandos
SELECT: Utilizado para consultar registros de la base
de datos que satisfagan un criterio determinado.

INSERT: Utilizado para cargar lotes de datos en la


base de datos en una única operación.

UPDATE: Utilizado para modificar los valores de los


campos y registros especificados.

DELETE: Utilizado para eliminar registros de una tabla


en una base de datos.
Lenguaje de Manipulación de
Datos (DML)
Clausulas
FROM: Utilizada para especificar la tabla de la cual se van
a seleccionar los registros.

WHERE: Utilizada para especificar las condiciones que


deben reunir los registros que se van a seleccionar.

GROUP BY: Utilizada para separar los registros


seleccionados en grupos específicos.

HAVING: Utilizada para expresar la condición que debe


satisfacer cada grupo.

ORDER BY: Utilizada para ordenar los registros


seleccionados de acuerdo a un orden específico
Lenguaje de Manipulación de
Datos (DML)

Operadores Lógicos

AND: Evalúa dos condiciones y devuelve


verdadero solo si ambas son ciertas.

OR: Evalúa dos condiciones y devuelve


verdadero si una de las dos es cierta.

NOT: Negación lógica. Devuelve el valor


contrario de la expresión.
Lenguaje de Manipulación de
Datos (DML)
Operadores de comparación

< : Menor que

> : Mayor que

<> : Distinto de

<= : Menor o igual que

>= : Mayor o igual que

= : Igual que

BETWEEN: Para especificar intervalos de valores

LIKE: Para comparación de cadenas de caracteres


(totales o parciales)

IN: Para especificar registros que cumplan una


condición.
Transacciones
Conceptos y Ejemplos
Sistemas de Procesamiento de
Transacciones: Características

• Son sistemas con grandes bases de datos y cientos de


usuarios concurrentes que están ejecutando
transacciones de bases de datos.
• Es el primer tipo de sistema que se implementa. Los
Sistemas de sistemas avanzan del nivel operativo a los mandos
intermedios y posteriormente a la alta gerencia.
Procesamiento • Tienen intensa actividad de Entrada/Salida de
datos/información.
de • Estos sistemas requieren alta disponibilidad y buen
Transacciones tiempo de respuesta para cientos de usuarios
concurrentes.
• Para soportar eficientemente un sistema de
procesamiento de transacciones un SGBD debe manejar
adecuadamente transacciones sobre la base de datos.
Transacciones: Concepto

• Por ejemplo:
• Si se va mover dinero de una cuenta bancaria a otra …
¿Cuál operación se realiza primero? ¿se quita a una
cuenta primero o se agrega a la otra?
Una transacción • La respuesta es: Cualquiera de las dos, siempre y cuando
es un conjunto de estemos seguros que se van a completar las dos.
• Toda transacción debe estar delimitada por un Inicio y un
operaciones que Fin de Transacción.
van a ser • Un SGBD es transaccional si es capaz de mantener la
integridad de los datos, haciendo que las transacciones no
tratadas como puedan finalizar en un estado intermedio.
• Cuando por alguna causa el sistema debe cancelar la
una única unidad. transacción, empieza a deshacer las ordenes ejecutadas
hasta dejar la base de datos en su estado inicial (llamado
punto de integridad), como si la orden de la transacción
nunca se hubiese realizado.
Transacciones: Propiedades de las
Transacciones

Atomicidad Consistencia
•Se ejecuta toda la •Antes y después de la
transacción o nada. Por lo transacción la base de
tanto, ante un fallo del datos está consistente. Se
sistema, no puede quedar ejecutan aquellas
a medias. operaciones que no van a
romper la reglas y
directrices de integridad
de la base de datos.

Isolation Durabilidad
(aislamiento) •Una vez hecha la
•Cada transacción debe transacción ésta es
aparecer como algo durable. Esta propiedad
separado de otras asegura que una vez
transacciones. Es la realizada la operación,
propiedad que asegura ésta persistirá y no se
que una operación no podrá deshacer aunque
puede afectar a otras. falle el sistema.
Transacciones: Requisitos de un
SGDB compatible con Transacciones

Registro y recuperación Garantía de Integridad de


Control de concurrencia
en caso de fallas los datos
• Si una transacción se • S refiere a mecanismos • Un SGBD se dice
interrumpe abruptamente que restrinjan a otros transaccional si es capaz
antes de concluir, o si se usuarios o procesos el de mantener la integridad
ha completado una acceso a datos que están de los datos, haciendo
transacción que dejó la siendo modificados. que estas transacciones
base de datos en un • Debe ser capaz de no puedan finalizar en un
estado no deseado, debe bloquear y desbloquear estado intermedio.
ser posible regresar a un tablas • Cuando por alguna
estado consistente. causa el sistema debe
• Cada cambio debe ser cancelar la transacción,
almacenado empieza a deshacer las
separadamente ordenes ejecutadas
• Se deshacen los cambios hasta dejar la base de
de las transacciones que datos en su estado inicial
quedaron “a medias”. (llamado punto de
integridad), como si la
orden de la transacción
nunca se hubiese
realizado.
Transacciones: Tipos de Fallos en
Procesamiento (1/2)

Un fallo del
• Durante la ejecución de una transacción se produce un error de
computador (caída hardware, software o de red.
del sistema)

• Alguna operación de la transacción puede hacer que ésta falle, por


Un error de la ejemplo un desbordamiento (overflow) de enteros o una división
entre cero. También puede haber un fallo de transacción debido a
transacción o del valores erróneos en los parámetros o a un error lógico de
sistema programación. También puede ser que el usuario interrumpa a
propósito la transacción.

Errores locales o • Por ejemplo, puede ser que no se encuentren los datos para la
condiciones de transacción. Un saldo insuficiente en una base de datos bancaria,
por ejemplo, puede hacer que se cancele una transacción de retiro.
excepción detectadas Si esta excepción se programa en la transacción no constituiría un
fallo.
por la transacción
Transacciones: Tipos de Fallos en
Procesamiento (2/2)

Imposición de • El método de control de concurrencia puede decidir


que la transacción se aborte, ya sea porque ha
control de superado el tiempo que se le había destinado o
porque está produciendo una situación de
concurrencia interbloqueo.

• Algunos bloques de disco pueden perder sus datos


por un mal funcionamiento de lectura o de escritura
Fallo del disco por un fallo de una cabeza de lectura/escritura. Esto
puede suceder durante una operación de lectura o de
escritura de la transacción.

Problemas • Es una lista interminable: Interrupción del suministro


físicos y de energía, incendio, robo, sabotaje, sobreescritura
de discos o cintas por error, etc.
catástrofes
Transacciones: Estados de transacciones
y operaciones adicionales
END
BEGIN
TRANSACTION Parcialmente COMMIT
TRANSACTION
Activa Confirmada
confirmada

ABORT

READ,
WRITE

ABORT

Fallida Terminada
Transacciones: Estados de transacciones
y operaciones adicionales

• BEGIN_TRANSACTION (Inicio de transacción): Marca el principio


de la ejecución de una transacción.
• READ (Leer) o WRITE (Escribir): Especifican operaciones de
lectura o escritura de elementos de la base de datos que se ejecutan
como parte de la transacción.
• END_TRANSACTION (Fin de transacción): Especifica que las
operaciones de READ o WRITE de la transacción han terminado y
marca el fin de la ejecución de la transacción. En este punto puede
ser necesario verificar si los cambios introducidos por la transacción
Operaciones: se pueden aplicar permanentemente a la base de datos (confirmar)
o si la transacción debe abortarse.
• COMMIT_TRANSACTION (Confirmar transacción): Esto señala
que la transacción terminó con éxito y que cualquier cambio
(actualizaciones) ejecutado por ella se puede confirmar sin peligro
en la base de datos y que será permanente.
• ROLLBACK (Restaurar) o ABORT (Abortar): Estas señales
indican que la transacción terminó sin éxito y que cualquier cambio o
efecto que pueda haberse aplicado a la base de datos se debe
deshacer.
Transact-SQL

Conceptos
¿Qué es Transact-SQL?

Transact-SQL (T-SQL) es una extensión al SQL


de Microsoft y Sybase.

Transact-SQL extiende el lenguiaje estándar


SQL para incluir, entre otras extensiones:
• Programación procedural
• Variables locales
• Funciones para procesamiento de cadenas de caracteres
• Procesamiento de fechas
• Funciones matemáticas
• Entre otras
Relación entre SQL y Transact-
SQL
Transact-SQL =
Lenguaje de
Programación

SQL = Lenguaje
de Consulta
Elementos de programación con
Transact SQL

Con
• Procedimientos almacenados
Transact- • Triggers
SQL pueden • Funciones
programarse
• Scripts
Procedimientos
almacenados

Conceptos y Ejemplos
Procedimientos almacenados:
Concepto

• Generalmente son escritos en un lenguaje de


bases de datos propietario como PL/SQL para
Un procedimiento Oracle database o PL/PgSQL para PostgreSQL, o
Transact-SQL para SQL Server, por ejemplo.
almacenado (stored • La ventaja de un procedimiento almacenado es
procedure) es un que al ser ejecutado, en respuesta a una petición
programa (o de usuario, es ejecutado directamente en el motor
procedimiento) el cual de bases de datos, el cual usualmente corre en un
es almacenado servidor separado.
• Como tal, posee acceso directo a los datos que
físicamente en una necesita manipular y solo necesita enviar sus
base de datos. resultados de regreso al usuario, deshaciéndose
de la sobrecarga resultante de comunicar grandes
cantidades de datos salientes y entrantes.
Procedimientos almacenados:
Comparación Servidor de Base de datos
vrs. Servidor de Transacciones
CLIENTES
El cliente envía solicitudes de SQL en
calidad de mensajes al servidor de SERVIDOR
bases de datos.

Aplicación
Los resultados de cada orden SQL
Llamadas de SQL
son devueltos por medio de la red.

El servidor hace uso de su propia Servidor de DBMS


capacidad de procesamiento para
encontrar los datos solicitados y los Aplicación

envía al cliente.
CLIENTE/SERVIDOR CON SERVIDORES DE BASES DE DATOS

El resultado es un uso mucho más


eficiente de la capacidad de
procesamiento distribuida.
Procedimientos almacenados:
Comparación Servidor de Base de datos
vrs. Servidor de Transacciones

El cliente invoca procedimientos remotos


que residen en un servidor con un CLIENTES
mecanismo de bases de datos de SQL.
SERVIDOR

Aplicación
Estos procedimientos remotos del servidor
Transacciones
ejecutan un grupo de instrucciones SQL.

DBMS
El intercambio por la red consiste en un Monitor de TP

solo mensaje de solicitud/respuesta (a Aplicación


diferencia de lo que ocurre en el servidor de
bases de datos, en el que es necesario un CLIENTE/SERVIDOR CON SERVIDORES DE TRANSACCIONES
mensaje de solicitud/respuesta para cada
instrucción de SQL en una transacción).
Procedimientos almacenados:
Ventajas

También se utilizan
para encapsular un
proceso grande y
complejo. Este
Al incluir la lógica de Se facilita la
proceso se ejecutará
la aplicación en la validación de datos
más rápido como un
base de datos que se integran a la
Los procedimientos procedimiento
utilizando Esto puede estructura de base de
pueden ser almacenado que de
procedimientos simplificar la creación datos (los
ventajosos cuando haber sido
almacenados, la y, particularmente, el procedimientos
una base de datos es implementado como,
necesidad de mantenimiento de los almacenados
manipulada desde por ejemplo, un
embeber la misma programas utilizados para este
muchos programas programa corriendo
lógica en todos los involucrados. propósito a menudo
externos. en el sistema cliente
programas que son llamados
y comunicándose con
acceden a los datos detonadores o
la base de datos
es reducida. triggers).
mediante el envío de
consultas SQL y
recibiendo sus
resultados.
Disparadores o
Triggers

Conceptos y Ejemplos
Triggers: Concepto

Concepto de trigger

• Un trigger o un disparador en una Base de


datos es un evento que se ejecuta cuando se
cumple una condición establecida al realizar
una operación de inserción (INSERT),
actualización (UPDATE) o borrado (DELETE).
• Son lo mismo que los procedimientos
almacenados con la diferencia de que se
ejecutan automáticamente cuando un usuario
realiza una acción con la tabla de una base de
datos que tenga asociado el trigger.
Triggers: Usos

• Los triggers son usados para mejorar


la administración de la Base de datos,
sin necesidad de contar con el usuario
que ejecute la sentencia de SQL.
• Además, pueden generar valores de
Usos columnas, previene errores de datos,
sincroniza tablas, modifica valores de
una vista, etc.
• Permite implementar programas
basados en paradigma lógico
(sistemas expertos, deducción).
Triggers: Componentes

El modelo que • El evento (o eventos) que activan el trigger: Por lo


general estos eventos son operaciones de actualización de
se emplea la base de datos que se aplican explícitamente a la base
de datos. Sin embargo, también podrían ser eventos
para la temporales u otro tipo de eventos externos. Por ejemplo:
Activar un trigger para ejecutarse todos los días a las 6:00
creación de a.m.
• La condición que determina si la acción de la regla
triggers en debería ejecutarse: Una vez que se produce el evento
activador, puede evaluarse una condición opcional. Si no
una base de se especifica esta condición la acción será ejecutada una
vez que se produzca el evento.
datos consta • La acción a emprender: La acción suele ser una serie de
sentencias SQL, pero trambién puede ser una transacción
de tres de base de datos (procedimiento almacenado) o un
programa externo que se ejecutará automáticamente.
componentes:
Triggers: Limitaciones

Solo se pueden aplicar a una tabla especifica, es decir, un trigger no sirve para dos
o más tablas

El trigger se crea en la base de datos que de trabajo pero desde un trigger puedes
hacer referencia a otras bases de datos.

Un trigger devuelve resultados al programa que lo desencadena de la misma forma


que un procedimiento almacenado aunque no es lo mas idóneo, para impedir que
una instrucción de asignación devuelva un resultado se puede utilizar la sentencia
SET NOCOUNT al principio del trigger.

Las siguientes instrucciones no se pueden utilizar en los triggers : ALTER


DATABASE / CREATE DATABASE ; DISK INIT / DISK RESIZE ; DROP DATABASE
/ LOAD DATABASE ; LOAD LOG RECONFIGURE; RESTORE DATABASE /
RESTORE LOG
Triggers: Tipos

Dos tipos de triggers,


clasificados según la cantidad
de ejecuciones a realizar:

Row Triggers (o Triggers de


fila): son aquellos que se
ejecutaran n-veces si se llama n-
veces desde la tabla asociada al
trigger

Statement Triggers (o Triggers


de secuencia): son aquellos que
sin importar la cantidad de veces
que se cumpla con la condición,
su ejecución es única.
Control de
Concurrencia

Conceptos y Técnicas
Control de Concurrencia:
Conceptos
El control de concurrencia en bases de datos se requiere para
garantizar la no interferencia o la propiedad de aislamiento de
transacciones que se ejecutan de manera concurrente.

Algunas de las técnicas que se utilizan para realizar el control de


concurrencia son:
• Bloqueo: Se bloquean los elementos de información para evitar que más de una
transacción tenga acceso a los elementos al mismo tiempo.
• Marcas de tiempo: Es un identificador único generado por el sistema para cada
transacción.
• Multiversión: Emplea múltiples versiones de un elemento de datos.
• Protocolos optimistas: Validan o certifican la transacción después de ejecutar
sus operaciones.
Control de Concurrencia:
Técnicas de bloqueo
Conceptos
• Un bloqueo corresponde a una variable asociada a un elemento
de la base de datos y describe el estado de ese elemento con
respecto a las posibles operaciones que se pueden aplicar a él.
• En general hay un bloqueo por cada elemento de información en
una base de datos.
• Los bloqueos ayudan a sincronizar el acceso a los elementos de
la base de datos por parte de transacciones concurrentes.
• Tipos de bloqueo:
• Bloqueos binarios
• Bloqueos compartidos/exclusivos (o bloqueos de
lectura/escritura)
• Conversión de bloqueos
Control de Concurrencia:
Técnicas de bloqueo
Bloqueos binarios
• Pueden tener dos estados o valores: bloqueado o desbloqueado (o
1 y 0, para simplificar).
• Si el valor de bloqueo sobre el elemento X es 1, ninguna operación
de la base de datos que solicite el elemento podrá tener acceso al
elemento X. Si el valor de bloqueo sobre X es 0, se podrá tener
acceso al elemento cuando se solicite.
• Cuando se usa bloqueo binario se debe incluir e las transacciones
dos operaciones: bloquear_elemento y desbloquear_elemento.
• Estas operaciones se deben implementar como unidades indivisibles
(conocidas como secciones críticas en sistemas operativos).
• El sistema mantiene registros para los elementos que están
bloqueados en una tabla de bloqueos. El SGBD cuenta con un
subsistema gestor de bloqueos para mantenerse al tanto y controlar
acceso a bloqueos.
Control de Concurrencia:
Técnicas de bloqueo
 Bloqueos binarios: Reglas: Bloquear elemento(X)
 Una transacción T debe emitir la B: If BLOQUEO(X) == 0
operación bloquear_elemento(X) Then BLOQUEO(X) = 1
antes de que se realice cualquier ELSE
operación leer_elemento(X) o BEGIN
escribir_elemento(X) en T.
wait (hasta que
BLOQUEO(X) = 0 y
 Una transacción T debe emitir la el gestor de
operación desbloquear_elemento(X) bloqueo
después de haber completado despierte la
transacción.
todas las operaciones
go to B
leer_elemento(X) y
END;
escribir_elemento(X) su ya posee
Desbloquear elemento(X)
el bloqueo del elemento X.
BLOQUEO(X) = 0
 Una transacción T no emitirá una IF (alguna transacción
operación desbloquear_elemento(X) está esperando)
a menos que ya posea el bloqueo THEN
del elemento X. Despertar transacción
en espera;
Control de Concurrencia:
Técnicas de bloqueo

Bloqueos compartidos/exclusivos (o bloqueos de


lectura/escritura)

• El esquema binario es muy restrictivo porque como máximo una


transacción puede poseer un bloqueo sobre un elemento dado.
• Con bloqueos compartidos/exclusivos podemos permitir que
varias transacciones tengan acceso a un mismo elemento X si lo
hacen únicamente para leerlo. Sin embargo, si una transacción va
a escribir un elemento X deberá poseer acceso exclusivo a él.
• En este tipo de bloqueo hay tres operaciones posibles:
bloquear_lectura(X), bloquear_escritura(X) y desbloquear(X).
• Por tanto un BLOQUEO(X) tiene 3 posibles estados: “Bloqueado
para leer”, “Bloqueado para escribir”, o “Desbloqueado”.
Control de Concurrencia:
Técnicas de bloqueo
Bloqueos compartidos/exclusivos (o bloqueos de
lectura/escritura): Reglas:
• Una transacción T debe emitir la operación bloquear_lectura(X) o
bloquear_escritura(X) antes de que se realice cualquier operación
leer_elemento(X) de T.
• Una transacción T debe emitir la operación bloquear_escritura(X) antes
de que se realice cualquier operación escribir_elemento(X) de T.
• Una transacción T debe emitir la operación desbloquear(X) una vez que
se hayan completado todas las operaciones leer_elemento(X) y
escribir_elemento(X) de T.
• Una transacción T no emitirá una operación bloquear_lectura(X) si ya
posee un bloqueo de lectura (compartido) o de escritura (exclusivo) para
el elemento X. Esta regla puede permitir excepciones.
• Una transacción T no emitirá una operación desbloquear(X) a menos que
ya posea un bloqueo de lectura (compartido) o de escritura (exclusivo)
para el elemento X.
Control de Concurrencia: Técnicas
de bloqueo: Bloqueo Compartido
Bloquear lectura(X) Bloquear escritura(X)
B: If BLOQUEO(X) == “desbloqueado” B: If BLOQUEO(X) == “desbloqueado”
Then Then
BEGIN BLOQUEO(X) =
BLOQUEO(X) = 1 “bloqueado
“bloqueado para
para leer”;
escribir”;
num_de_lecturas(X) = 1
Else
END
BEGIN
Else
wait(Hasta que
BLOQUEO(X) =
If BLOQUEO(X) = “Desbloqueado” y el
“bloqueado para leer” gestor de bloqueo
Then
despierte la
transacción):
num_de_lecturas(X) =
num_de_lecturas(X) + 1
go to B
Else
END;
BEGIN
wait(Hasta que BLOQUEO(X)
= “Desbloqueado” y el gestor de
bloqueo despierte la
transacción):
go to B
END;
Control de Concurrencia: Técnicas
de bloqueo: Bloqueo Compartido
Desbloquear(X)
B: If BLOQUEO(X) == “bloqueado para escribir”
Then
BEGIN
BLOQUEO(X) = 1 “desbloqueado”;
despertar una de las transacciones
que esperan, si las hay;
END
Else
If BLOQUEO(X) = “bloqueado para leer”
Then
BEGIN
num_de_lecturas(X) =
num_de_lecturas(X) – 1;
if num_de_lecturas(X) = 0
Then
BEGIN
BLOQUEO(X) = “Desbloqueado”;
Despertar una de las
transacciones que esperan, si
las hay
END
END;
Recuperación de
Bases de Datos

Conceptos y Ejemplos
Recuperación de Bases de
Datos: Conceptos

La recuperación de fallos en las transacciones casi siempre


equivale a la restauración de la base de datos al estado
consistente más reciente antes del momento del fallo.

Para lograr esto el sistema debe conservar la información


sobre cambios aplicados a los elementos de datos por las
diversas transacciones.

Por lo general esto se guarda en el diario del sistema


(archivos Log en SQL Server).
Recuperación de Bases de
Datos: Estrategia
Una estrategia de
recuperación típica
podría resumirse
así:

Si hay daños extensos en una amplia porción de la base de datos debido a un


fallo catastrófico, como falla de disco, el método de recuperación restaurará una
copia anterior de la base de datos que se habría respaldado en almacenamiento
de archivo (en cinta, disco, etc.) y reconstruirá un estado más actual rehaciendo
las operaciones de las transacciones confirmadas desde el diario respaldado
hasta el momento del fallo.

Cuando la base de datos no presenta daños físicos, pero se ha vuelto


inconsistente debido a fallos no catastróficos, la estrategia consiste en deshacer
algunas operaciones y rehacer otras para recuperar el estado consistente.
Recuperación de Bases de Datos:
Técnicas para recuperarse de fallos no
catastróficos en las transacciones

Actualización diferida

• No se actualiza físicamente la base de datos en disco hasta


después de que una transacción llega a su punto de
confirmación. En ese momento las actualizaciones se graban en
la base de datos.
• Antes de ser confirmadas todas las transacciones se graban en el
espacio de transacciones local (o buffers).
• Durante la confirmación las operaciones se graban primero en el
diario (log) y luego se escriben en la base de datos.
• Si una transacción falla antes de llegar al punto de confirmación
no se habrá modificado en absoluto la base de datos.
• Puede ser necesario REHACER el efecto de operaciones
confirmadas desde el diario.
• Se le conoce como algoritmo de NO-DESHACER/REHACER.
Recuperación de Bases de Datos: Técnicas para
recuperarse de fallos no catastróficos en las
transacciones

Actualización inmediata

• Es posible que algunas operaciones de una transacción


actualicen la base de datos antes de que la transacción llegue a
su punto de confirmación.
• Estas operaciones, sin embargo, se graban en el diario en disco
mediante escritura forzada antes de aplicarse a la base de datos,
lo que hace posible la recuperación.
• Si una transacción falla después de grabar algunos cambios en la
base de datos pero antes de llegar al punto de confirmación, será
preciso anular el efecto de sus operaciones sobre la base de
datos.
• Por tanto puede ser preciso deshacer y rehacer. Es por eso que
está técnica se conoce como algoritmo de
DESHACER/REHACER. Es la que se usa más frecuentemente
en la práctica.
Recuperación de Bases de Datos:
Restauración de Transacciones

Consideraciones

• Si una transacción falla después de actualizar la


base de datos, puede ser necesario revertir la
transacción
• Cualquier valor de elementos de información que
la transacción haya alterado o se haya escrito en
la base de datos deberá reestablecerse a sus
valores anteriores.
• Las entradas del diario (log) del tipo deshacer
sirven para recuperar los valores antiguos de los
elementos de información que deben revertirse.
Recuperación de Bases de Datos:
Por actualización diferida en entorno
monousuario
• Operaciones de Lectura/Escritura de dos transacciones:
• T1
• Leer_elemento(A)
• Leer_elemento(D)
• Escribir_Elemento(D)
• T2
En este caso las
operaciones escribir • Leer_elemento(B)
del elemento T1 se • Escribir_elemento(B)
rehacen y el • Leer_Elemento(D)
proceso de • Escribir_Elemento(D)
recuperación ignora • Diario del sistema en el momento de la caída:
las entradas de • Inicio_transaccion_T1
diario de T2
• T1: Escribir_elemento, D, 20
• Confirmar T1
• Inicio_Transaccion_T2
• T2: Escribir_elemento B, 10
• T2: Escribir_elemento, D, 25
• ---- Caida del Sistema ---
Recuperación de Bases de Datos:
Por actualización diferida en entorno
multiusuario
Operaciones de Lectura/Escritura Diario del sistema
• T1 • Inicio_transaccion_T1
• Leer_elemento(A) • T1: Escribir_elemento, D, 20
• Leer_elemento(D) • Confirmar T1
• Escribir_Elemento(D) • [punto de control]
• T2 • Inicio_Transaccion_T4
• Leer_elemento(B) • T4: Escribir_elemento B, 15
• Escribir_elemento(B) • T4: Escribir_elemento, A, 20
• Leer_Elemento(D) • Confirmar T4
• Escribir_Elemento(D) • Inicio Transaccion T2
• T3 • T2: Escribir elemento B, 12
• Leer_elemento(A) • Inicio Transaccion T3
• Escribir_elemento(A) • T3: Escribir elemento A, 30
• Leer_Elemento(C) • T2: Escribir elemento D, 25
• Escribir_Elemento(C) • ---- Caida del Sistema ---
• T4
• Leer_elemento(B)
• Escribir_elemento(B)
• Leer_Elemento(A)
• Escribir_Elemento(A)

En este caso:
• T2 y T3 se ignoran porque no llegaron a su punto de confirmación
• T4 se rehace porque su punto de confirmación fue después del último punto de control del sistema
Mantenimiento de una
base de datos

Conceptos de Respaldo y Recuperación


Mantenimiento de una base de datos:
Modelo de Recuperación

Conceptos

• El modelo de recuperación de una base de datos


determina como será utilizado el diario (archivo log).
• El modelo de recuperación establecido para una
base de datos determina cuando es borrada una
entrada de su Transaction Log.
• En el camino de una transacción desde el programa
de aplicación hasta la base de datos, las filas de
datos son escritas primero en forma secuencial en el
archivo log y luego en la base de datos.
• El modelo de recuperación determina que pasa con
la transacción después de eso.
Mantenimiento de una base de datos:
Modelo de Recuperación

Full
Bulk-
Simple
Logged
Tres
modelos de
recuperación
Mantenimiento de una base de datos:
Modelo de Recuperación Simple

• Si la base de datos está establecida en el


modelo de recuperación simple, después
de que la transacción sea escrita en la base
de datos la entrada respectiva del diario de
¿Como transacciones (archivo log) será borrada.
• En este caso, el diario de transacciones se
funciona? alarga y se encoje únicamente con las
entradas no confirmadas en cada momento
dado.
• La única forma de recuperar la base de
datos es restaurar un respaldo completo.
Mantenimiento de una base de datos:
Modelo de Recuperación Simple

Ventajas Consideraciones/ Desventajas

• No se necesita • El modelo de recuperación simple es útil


para bases de datos que no cambian con
mantenimiento adicional en frecuencia o que son solo de lectura y
el archivo log. que están completamente respaldadas
en algún lugar.
• El modelo de recuperación • Sus desventajas se evidencian en un
simple es rápido y eficiente. escenario de backup y recovery.
• No es una opción segura para bases de
datos en las que una pérdida súbita de
datos sea un problema grave, a menos
que se hagan respaldos completos con
mucha frecuencia.
• Hacer un respaldo completo impacta
fuertemente el performance del equipo,
lo cual lo hace poco deseable.
Mantenimiento de una base de datos:
Modelo de Recuperación Full o Completo

• El administrador de la base de datos puede recuperar ya sea


del respaldo total o del último respaldo del archivo log,
abreviando el tiempo de espera que tienen los usuarios frente a
un proceso de recuperación
• En este modelo, las entradas en el archivo log son retenidas en
el log después de que son almacenadas en la base de datos y

¿Cómo solo son removidas después de realizarse un nuevo backup, ya


sea de la base de datos completa o del archivo log.
• Utilizando este modelo de recuperación, puede realizarse un

funciona? respaldo completo periódicamente, una vez al día (o a la


semana, incluso), y hacer respaldo del archivo log con mayor
frecuencia (cada hora o dos veces al día, por ejemplo.
• Para cada entrada en el log se puede determinar la hora en que
ocurrió. Utilizando una opción especial en el comando
RESTORE, se puede restaurar estas entradas a el momento
específico que se requiera.
Mantenimiento de una base de datos:
Modelo de Recuperación Full o Completo

Ventajas
• Aunque no se tenga un respaldo del archivo log, siempre que la base de datos falle y no
el dispositivo donde estén los logs, todavía se puede recuperar la base de datos al
estado del último respaldo y luego aplicarle los logs.
• Si la base de datos es significativamente grande, no será posible hacer un respaldo
completo varias veces al día, pues no se tendría tiempo suficiente y se afectaría a los
usuarios.
• Pueden utilizarse las transacciones para restaurar la base de datos a un momento en
particular.
• Dado que el archivo log contiene solo nuevas entradas, los respaldos son más
pequeños y más rápidos afectando mínimamente a los usuarios
Desventajas
• Elimina las limitaciones del modelo simple pero requiere un poco más de trabajo de
mantenimiento.
Consideraciones
• Debido a la seguridad que provee, la brevedad para crear el respaldo y la habilidad para
poder restaurar desde un momento específico este es el modelo de recuperación más
adecuado para bases de datos en producción
Mantenimiento de una base de datos:
Modelo de Recuperación Bulk-Logged
Como funciona
• Este modelo de recuperación es similar al modelo completo, con la excepción de que no
toda operación es enviada al archivo log de transacciones.
• Este modelo permite obviar la siguientes transacciones para que no sean grabadas en
el log:
• Operaciones de select.
• Operaciones que involucran loos tipos Text, ntext, y image, si se está utilizando los
WRITETEXT y UPDATETEXT statements.
• Operaciones que utilizan el comando T-SQL SELECT INTO.
• Operaciones que utilizan instrucciones CREATE INDEX T-SQL.
Ventajas y consideraciones
• La ventaja de este modelo es que los respaldos son más pequeños, y que las
operaciones obviadas corren más rápido.
• Cuando se importan con frecuencia datos a una base de datos, es conveniente este
modelo.
• En estos casos se recomienda: Primero hacer un respaldo del log, luego establecer la
base de datos con el modelo de recuperación bulk-logged, y luego hacer la importación.
Luego hacer respaldo de la base de datos y volver a establecer el modelo en Full.
Mantenimiento de una base de datos:
Selección de Modelo de Recuperación
Mantenimiento de una base de datos:
Estrategia de Respaldo

Concepto

• Un respaldo (backup) es una copia de todos los datos de una base


de datos, grabado en un formato binario propietario y que no se
comprime.
• El respaldo se crea en uno o más archivos en cinta o en disco. Estos
archivos pueden encriptarse un respaldo con password, pero (en
SQL Server) no está protegido por default.

Consideraciones

• Un plan de mantenimiento debe incluir el respaldo de los datos con


tanta frecuencia como sea posible.
• La estrategia de respaldo debe contestar la pregunta “¿Cuantos
datos podemos darnos el lujo de perder“.
• A esto se le conoce como el “intervalo de riesgo”. Se refiere a la
cantidad de trabajo que se pierde entre un fallo catastrófico del
sistema y el momento en que está disponible nuevamente.
Mantenimiento de una base de datos:
Tipos de Respaldo

Diferencial

Respaldo del
Full Log de
Transacciones

Tres tipos
de respaldo
en SQL
Server 2005
Mantenimiento de una base de datos:
Respaldo de tipo full (Completo)
Un respaldo de tipo
full o completo
copia todos el
contenido de la
base de datos y los
archivos log.

¿Cómo
funciona?
Si la base de datos está
en modelo de Si la base de datos está
recuperación full o bulk- en modelo de
logged el respaldo copia recuperación simple, no
todos los datos y libera tiene ningún efecto más
borra las entradas que el copiado del
confirmadas en el archivo contenido.
log para ser borradas.
Mantenimiento de una base de datos:
Respaldo de tipo full (Completo)

Consideraciones

• Es el backup más completo que puede hacerse


y trabaja con todos los modelos de
recuperación.
• Se debe hacer un respaldo completo al menos
una vez al día, si la base de datos lo permite.
• Si la base de datos es extremadamente larga,
puede hacerse un respaldo completo cuando el
tiempo lo permita y un respaldo de archivo log,
diferencial y respaldos de filegroups en los
intervalos.
Mantenimiento de una base de datos:
Respaldo del log de transacciones

• Es una operación de respaldo separada y crea sus


propios archivos de respaldo.
• Esta operación copia los datos del archivo log que han
sido confirmados en la base de datos y luego libera esas
entradas para que sean borradas.
• Para crear este tipo de respaldo, la base de datos debe
¿Como estar en modelo de recovery full o bulk-logged.
• La estrategia recomendada es hacer un respaldo
funciona? completo periódicamente, por ejemplo a diario, y luego
hacer un respaldo de los archivos log con mayor
frecuencia. Cada hora, por ejemplo.
• Cuando el siguiente respaldo completo es realizado, los
respaldos de archivos log previos pueden ser borrados
porque el respaldo completo incluye todos los datos
contenidos en ellos.
Mantenimiento de una base de datos:
Respaldo diferencial

• Un respaldo diferencial guarda todos los datos confirmados desde el


último respaldo completo.
• Es similar a un respaldo de archivos log, ya que guarda todas las
transacciones confirmadas en el archivo log y no es de utilidad si no
se cuenta con un respaldo completo.
• La diferencia es que en el respaldo diferencial almacena más datos

¿Cómo ya que se incrementa a partir del último respaldo completo, cada vez
que se realiza este respaldo (y no se realiza uno completo) la
cantidad de datos aumenta, sin importar cuantos respaldos
diferenciales se hayan realizado.

funciona? • Para hacer un respaldo diferencial, se necesita hacer un respaldo


completo primero.
• Para restaurar la base de datos, se restaura primero el respaldo
completo y luego el último respaldo diferencial. Esto hace más rápida
la restauración que cuando se restaura de múltiples respaldos de
archivos log.
• El respaldo diferencial puede ser utilizado en cualquier modelo de
recuperación.
Mantenimiento de una base de datos:
Definición de dispositivo de respaldo
Tendencias de Bases
de Datos

Bases de datos distribuidas


Almacén de datos (Datawarehouse)
Extracción de datos (Datamining), y
Bases de datos en Internet
Bases de datos distribuidas

Particionadas
Base de

• Es decir, que Datos


Central

cada procesador
CPU Host
remoto tenga los
datos necesarios CPU remoto CPU remoto

para abastecer
sus propias
necesidades Partición A de
La Base de Datos
Partición B de
La Base de Datos
locales remota remota
Bases de datos distribuidas

Duplicadas
Base de
Datos

• En este caso se Central

mantienen CPU Host

copias de la CPU remoto CPU remoto


base de datos
en todas las
ubicaciones Base de Datos
Replicada
Base de Datos
Replicada

remotas.
Almacenes de datos y
extracción de datos
Datos de
Directorio de
Operaciones
Almacén de Datos y información
Extracción de datos Fuente Datos históricos
interna
• Un almacén es una base de
de
datos que almacena datos Datos de
Datos operaciones
actuales e históricos
extraídos de varios sistemas
operacionales y Datos históricos Almacén de
Extraer y
consolidados, y que se Datos
transformar
complementa con
herramientas para consulta y
elaboración de informes
• La extracción de datos se Fuente
externa Datos Externos
refiere al análisis de grandes
concentraciones de datos de Acceso y
para encontrar patrones y Datos Datos Externos análisis de
reglas que se puedan datos
emplear para guiar la toma •Consultas e informes
de decisiones y predecir el
•OLAP
comportamiento futuro.
•Extracción de Datos
Almacenes de datos y
extracción de datos
Clasificación de los sistemas de información que trabajan con Bases de
Datos
Tipo de Entradas de Procesamiento Salidas de Usuarios
Sistema información información
Sistemas de Datos acumulados; Gráficas, Proyecciones, Directores
Apoyo a externos e internos simulaciones, respuestas a
Ejecutivos (ESS) interactivo consultas
Sistemas de Datos de bajo volumen Interactivo, Informes Profesionale
Apoyo a Toma de o bases de datos simulaciones, especiales, s, gerentes
Decisiones (DSS) masivas, optimizadas análisis análisis de de personal
para análisis de datos, decisiones,
modelos analíticos y respuestas a
herramientas de consultas
análisis de datos
Sistemas de Datos resumidos de Informes de Informes Gerentes de
Información transacciones, datos de rutina, modelos resumidos o nivel medio
Gerencial (MIS) alto volumen, modelos simples, análisis excepciones
simples de bajo nivel
Sistemas de Especificaciones de Modelado, Modelos, gráficos Profesionale
Trabajo de diseño, base del simulaciones s, personal
Conocimiento conocimiento técnico
(KWS)
Sistemas de Transacciones, eventos Clasificación, Informes Personal
Procesamiento listado, fusión, detallados, listas, operativo,
de Transacciones actualización resúmenes supervisore
(TPS) s
Almacenes de datos y
Extracción de datos
Datawarehouse
• Repositorio completo de datos de la empresa, donde se almacenan datos
estratégicos, tácticos y operativos, al objeto de obtener información
estratégica y táctica.
• Es un expediente de una empresa más allá de la información transaccional y
operacional, almacenado en una base de datos diseñada para favorecer
análisis y la divulgación eficientes de datos (especialmente OLAP).

Data-Mart
• Los almacenes de los datos contienen a menudo grandes cantidades de
información que se subdividen a veces en unidades lógicas más pequeñas,
llamadas los centros de datos. Los data-mart son, por tanto, repositorios
parciales de datos de la empresa, donde se almacenan datos tácticos y
operativos, al objeto de obtener información táctica.

Data-Mining
• Técnicas de análisis de datos encaminadas a obtener información oculta en
un Datawarehouse.
Almacenes de datos y
Extracción de datos
OLTP (On-Line Transaction Processing)
• Define el comportamiento habitual de un entorno operacional de gestión:
• Altas/Bajas/Modificaciones/Consultas
• Consultas rápidas y escuetas
• Poco volumen de información
• Transacciones rápidas
• Gran nivel de concurrencia
OLAP: On-Line Analytical Process
• Define el comportamiento de un sistema de análisis de datos y elaboración
de información:
• Sólo Consulta
• Consultas pesadas y no predecibles
• Gran volumen de información histórica
• Operaciones lentas
Almacenes de datos y
extracción de datos
Comparativo de OLAP/OLTP
Característica OLTP OLAP
Tamaño de la Base Se mide en GigaBytes Se mide en GigaBytes,
de Datos pero tiende a crecer a
TeraBytes
Origen de los Datos Interno Interno y Externo
Actualización En línea Por lotes (Batch)
Períodicidad de la Actual Histórica
información
Consultas Predecibles AD-HOC (Específicas para
la ocasión, Impredecibles)
Actividad Operacional Analítica
Tipos de sistema Sistemas de Sistemas de Apoyo a
que soporta Procesamiento de Ejecutivos (ESS)
Transacciones (TPS) Sistemas de Apoyo a Toma
Sistemas de Información de Decisiones (DSS)
Gerencial (MIS)
Almacenes de Datos y
extracción de datos
Dos ideas básicas
dirigen la creación
de un almacén de
los datos

Integración
De los datos de bases de datos distribuidas y diferentemente
estructuradas, que facilita una descripción global y un análisis
comprensivo en el almacén de los datos.

Separación
De los datos usados en operaciones diarias de los datos
usados en el almacén de los datos para los propósitos de la
divulgación, de la ayuda en la toma de decisiones, para el
análisis y para controlar.
Almacenes de Datos y
extracción de datos
Razones Pérdida de rendimiento del entorno OLTP
por las que
OLTP y Falta de integración entre distintos
OLAP no aplicaciones OLTP
pueden Tecnologías de BBDD sin capacidad para
convivir en soportar aplicaciones OLAP
una misma Incorporación de datos externos difícilmente
base de aplicable a la BBDD OLTP
datos Distribución de los datos no adecuada para
análisis OLTP
Almacenes de Datos y
extracción de datos
Arquitectura de un Datawarehouse

Base de
Datos 1
Gestor de Gestor de
Carga Almacenamiento

Base de
Datos 2
Gestor de
Consultas
Almacenes de datos y
extracción de datos
Arquitectura de un Datawarehouse
Módulo Descripción Características/Problemas
Gestor de Este módulo se encarga Problemas inherentes a la carga:
Carga de realizar la carga del –Integración de los datos: Ya que una situación normal en
Data Warehouse estos entornos es que cada una de las bases de datos esté
extrayendo los datos de soportada por gestores de diferentes fabricantes.
las bases de datos –Momento en que debe hacerse la carga: Lo importante
operacionales en este tema se centra en que la extracción se debe realizar
en un momento en que todas las bases de datos estén en un
estado “estable” de tal forma que se minimicen las posibles
incoherencias,
–Operativa diaria: para realizar la carga no se puede parar
la operativa diaria de la institución ya que, normalmente, es
fundamental para su buen funcionamiento. Hay que diseñar
y preparar los procedimientos necesarios para minimizar el
tiempo destinado a ello.
–Diccionario de datos o “metadatos”: Es absolutamente
necesario conocer, de la estructura final del almacén de
datos, todos los detalles posibles. Esto quiere decir que un
diccionario de datos de estas características no puede ser un
mero registro de las características principales de los
atributos, sino que debe contemplar todos los detalles tales
como el atributo del que proviene, de qué base de datos, qué
transformación ha sufrido, por qué es necesario para el
almacén de datos, etc.
Almacenes de datos y
extracción de datos
Arquitectura de un Datawarehouse
Módulo Descripción Características/Problemas
Gestor de Es el encargado de Características:
Almacenamiento proceder al –Utiliza un modelo diferente al relacional dado que
almacenamiento y este último surge en base a una serie de
organización de los necesidades de gestión muy concretas y responde
datos. aceptablemente a dichos problemas.
–En un almacén de datos no tienen mucho sentido
dos de las grandes preocupaciones en el modelo
relacional: la normalización (que se ocupa, sobre
todo, de garantizar que no se van a producir
anomalías en las actualizaciones y en este modelo
no existen) y la integridad referencial (que se
supone garantizada por los procesos de integración
realizados durante la carga).
–Tiene la necesidad, no solamente de almacenar
los datos al detalle sino que, dado el tipo de
consultas que se van a realizar, de almacenar un
“resumen” de dichos datos por diferentes conceptos
(comúnmente denominados datos agregados o
globalizados).
–La necesidad de almacenar tal volumen de datos
hace que el diseño tenga en cuenta que los datos
detallados más actuales aparezcan almacenados en
dispositivos rápidos mientras que los menos
recientes, normalmente, se trasladen a dispositivos
más baratos y lentos, dejando los agregados en los
primeros.
Almacenes de datos y
extracción de datos
Arquitectura de un Datawarehouse
Módulo Descripción Características/Problemas
Gestor de Este gestor no optimiza las Características:
Consultas consultas en su ejecución, –Es de importancia vital la existencia de
capturando diferentes perfiles de un diccionario de datos activo y
consultas que presentan los avanzado, que permita a este gestor la
usuarios, de tal forma que pueda obtención de información acerca de
capturar y dirigir las consultas a los dichos agregados.
agregados ya existentes y que –Debe ser capaz de determinar la
reflejen la información solicitada. utilización que se está haciendo de los
agregados, de tal forma que fuera capaz
de crear nuevos o, ante la falta de
utilización de alguno en concreto, darlo
de baja.
–Debe estar preparado para trabajar
con “datamarts” orientadoa a atender
consultas de, por ejemplo, responsables
de zona a quienes le interesarán los
datos globalizados de todas las
sucursales de su zona, etc.
–Los "datamarts" son conjuntos de
datos que se corresponden con un
determinado perfil de consulta y que
podrían ser considerados como
"pequeños Data Warehouse" de cada
uno de los grupos.
Extracción (Minería) de Datos

Concepto

• La Minería de Datos es un conjunto de técnicas para la inducción de


conocimiento útil a partir de masas ingentes de datos.
• Otra definición: “Es la búsqueda de patrones interesantes y de
regularidades importantes en grandes bases de datos”.

Consideraciones

• La minería de datos tiene un solapamiento importante con otras


disciplinas como la estadística tradicional, el reconocimiento de
patrones, la inteligencia artificial, etc.
• La minería de datos estudia información acumulada en empresas y
otras organizaciones acerca de sus clientes, usuarios, etc., y las
interacciones de éstos con aquéllas de manera que el conocimiento
que pueda extraerse de ella sirva para mejorar la rentabilidad, el nivel
de servicio, redefinir estrategias de márketing, etc.
Extracción (Minería) de Datos

Aplicaciones de la minería de datos

• Tradicionalmente, las técnicas de minería de datos se


aplicaban sobre información contenida en almacenes de
datos.
• De hecho, muchas grandes empresas e instituciones han
creado y alimentan bases de datos especialmente
diseñadas para proyectos de minería de datos en las que
centralizan información potencialmente útil de todas sus
áreas de negocio, etc.
• No obstante, actualmente está cobrando una importancia
cada vez mayor la minería de datos no estructurados
como información contenida en ficheros de texto, en
internet, etc.
Extracción (Minería) de Datos

Provee una clasificación concisa y resumida de un


Tareas Descripción conjunto de datos y los distingue unos de otros. La
clasificación de los datos se conoce como

que de clases caracterización, y la distinción entre ellos como


comparación o discriminación.

realiza un
sistema Es el descubrimiento de relaciones de asociación o
de Asociación correlación en un conjunto de datos. Las asociaciones
se expresan como condiciones atributo-valor y deben
estar presentes varias veces en los datos.
Minería
de Datos
Analiza un conjunto de datos de entrenamiento cuya
Clasificación clasificación de clase se conoce y construye un modelo
de objetos para cada clase. Dicho modelo puede
representarse con árboles de decisión o con reglas de
clasificación, que muestran las características de los
datos. El modelo puede ser utilizado para la mayor
comprensión de los datos existentes y para la
clasificación de los datos futuros.
Extracción (Minería) de Datos

Esta función de la minería predice los valores posibles


Tareas Predicción de datos faltantes o la distribución de valores de
ciertos atributos en un conjunto de objetos.
que
realiza un
sistema
Identifica clusters en los datos, donde un cluster es
de Clustering una colección de datos “similares”. La similitud puede
medirse mediante funciones de distancia,
Minería especificadas por los usuarios o por expertos. La
Minería de Datos trata de encontrar clusters de buena
de Datos calidad que sean escalables a grandes bases de datos
y a data warehouses multidimensionales.

Analiza un gran conjunto de datos obtenidos con el


Análisis de correr del tiempo para encontrar en él regularidades y
series a características interesantes, incluyendo la búsqueda
de patrones secuenciales, periódicos, modas y
través del desviaciones.
tiempo
Bases de datos a través de
Internet
Internet

Muchas
organizaciones
Servidor
están Web
implementando Programas
soluciones de
Aplicación
informáticas que
les permiten
tener acceso Servidor de
desde Internet a bases de
datos
sus bases de
datos.
Bases de
datos

También podría gustarte