You are on page 1of 99

Modelo de Datos

Conjunto de conceptos para describir la estructura de una base


de datos, es decir, a las entidades involucradas, sus relaciones,
semántica asociada a los datos y restricciones de consistencia.
Los modelos de datos se clasifican :

1. Modelo Jerárquico
SGBD de Primera
Nivel Implementación

2. Modelo de Redes Generación


3. Modelo Entidad Relación SGBD de Segunda
Generación

Alto Nivel
4. Modelo Relacional
5. Modelo de Objetos
6. Modelo Objeto-Relacional SGBD de Tercera
Generación
BD. DISTRIBUIDAS, ACTIVAS, ESPACIALES
ORIENTADAS A OBJETOS, ...
1
Modelo de Datos
Un modelo es un conjunto de conceptos para describir los datos y
la relación semántica entre ellos, dentro de las restricciones que
apliquen en la empresa
La triada MD { G, O, R }
G Reglas de Generación de objetos
0 Operaciones, elementos de manipulación
R Restricciones inherentes y explícitas
MD Notación formal matemática para expresar datos y relaciones
Esquema del Modelo de Datos: Es un plano de la Base de Datos
Vista del Modelo de Datos: Es un sub esquema del M. de D.

2
Modelado

3
Definición del Modelo
El modelo relacional es una estructura basada en colecciones de
tablas en 2 dimensiones con propiedades especiales, que permiten
representar distintos tipos de asociaciones
Las tablas se denominan entidades y están formadas por un conjunto
de tuplas o instancias de cada relación de datos atómicos, llamados
dominios.

Cada tupla representa un hecho elemental o aseveración de la


realidad a modelar:
< Id objeto, propiedad 1, propiedad 2, … , propiedad n >
< Arbol, Altura, Color, … , Edad >
< Fresno, 10.30, café oscuro, … , 10 >

El orden de cada tupla en la entidad y de cada dominio es irrelevante


en la organización. Aunque los valores de los dominios pueden
repetirse, las asociaciones son únicas, por lo que no pueden existir
dos instancias iguales.
4
Operaciones con el Modelo
El modelo relacional permite
consultar las tablas: instancia por instancia
insertar nuevas entidades: definición de archivos
insertar nuevas instancias: altas
eliminar entidades: bajas de archivos
eliminar instancias: bajas
actualizar entidades: cambios
interrelacionar entidades: a través de un dominio
El modelo asume la existencia de un lenguaje de interacción poderoso

El modelo fue desarrollado por F. Codd en los 70’s y parte de la definición matemática de que
un entidad es un subconjunto del producto cartesiano entre los dominios de la realidad a
modelar:
Sean los dominiosD1:{d1a,d1b..d1n }, D2 :d2a, d2b … d2n}, D3:{d3a, d3b … d3n}
Entonces el producto cartesiano D1 x D2 x D3 esta dado por las tuplas
< d1a, d2a,d3a > ……. < d1a, d2a,d3b > hasta ….. < d1n, d2n,d3n >
El subconjunto de este producto es la realidad existente en un momento dado en
la empresa
5
Ejemplos del Modelo
Entidades: archivos existentes (esquema)
entidad: Edades
entidad: Direcciones Nombre x Edad x Estado Civil
Nombre x Dirección x Teléfono
Nombre Edad Estado Civil
Nombre Dirección Teléfono Pedro 34 casado
Pedro Pino 67 229-3456 Martín 45 soltero
Martín Encino 40 456-8907 Gonzalo 23 soltero
Gonzalo Suace 34 345-6789 Teresa 23 casada

Vistas: relación temporal entre archivos (subesquema)


Relación entre entidades

Nombre Edad Dirección Teléfono


Pedro 34 Pino 67 229-3456
Martín 45 Encino 40 456-8907

Note que no todos las tuplas están relacionadas, igualmente


las entidades son solo un subconjunto de todas las combinaciones
posibles de los productos cartesianos
6
Llaves y Atributos
Tradicionalmente existen las siguientes tipos de llaves de acceso a un archivo:
Llave Primaria: Dominio(s) independientes en la entidad

Llave Compuesta: Si la llave primaria es formada por varios dominios

Super Llave: Conjunto de llaves que satisfacen la identificación única. En el


modelo relacional es lo que se desea, para lo que se requiere el proceso de
normalización de entidades en el modelado de la realidad

Atributo Primario: es aquel dominio independiente y que forma parte de la


llave de una entidad específica.

Atributo segundario: es aquel dominio que dependa de una llave en una


entidad, sin participar en la llave.

Llave Foránea: Aquel dominio que existiendo como dependiente en una entidad
es a su vez una llave (Atributo primo) en otra entidad de la BD.

7
5. Normalización
Diseño de esquemas relacionales
Relaciones libres de anomalías
Ejemplos de descomposición
Descomposición sin pérdida
Dependencia funcional
Ejemplos básicos
Formas normales (anomalías)
1ª. Forma normal(1NF)
2ª. Forma normal(2NF)
3ª. Forma normal(3NF)
Forma normal BC(BCNF)
4ª. Forma normal(4NF)
5ª. Forma normal(5NF)
Guía para normalizar 3NF
8
 Es representada por los siguientes objetos:

 Relación: es un conjunto de datos referentes a un conjunto


de entidades y organizados en forma tabular filas y columnas
(tuplas y atributos). En la que cada intersección de filas y
columnas tiene un valor.
 Atributos: son las propiedades de las entidades.
 Dominio: es el conjunto de donde los atributos toman sus
valores.
 Tupla (registros): es un conjunto de información que forman
una fila de una tabla.
 Grado: es el numero de atributos o columnas que posee.
 Cardinalidad: se denomina así al numero de tuplas de una
relación.
 Clave: se define a aquel atributo que nos determinan de
forma única y mínima a una tupla de esa relación.
Tipos de Relaciones

 Existen cuatro tipos de relaciones que pueden establecerse


entre entidades.
1. Uno a uno (1 : 1)
2. Uno a muchos (1 : N)
3. Muchos a uno (M:1)
4. Muchos a muchos (M : M)
A estas relaciones se las conoce como cardinalidad.

C C

C = Cardinalidad
Propiedades de las Relaciones

 Cada relación tiene un nombre único.


 Los valores de los atributos son atómicos.
 No hay dos atributos que se llamen de igual forma.
 El orden de los atributos no importa.
 Cada tupla es distinta.
 El orden de las tuplas no importa.
Entidades

Son los objetos que aparecen en la vida real. Una entidad


va a ser representado en una Base de Datos.
Existen 2 tipos:
 Entidad Fuerte: hacen referencia a la propia entidad.

 Entidad Débil: es aquella que solo tiene sentido gracias a las


propiedades que identifican a otras entidades (fuertes o a
su vez débiles).
Atributos
 Es una característica o propiedad de una entidad.
 Se identifica con un nombre y todos los posibles
valores que puede tener.
Proceso de Normalización
 La normalización es el proceso de organizar los datos
de una base de datos.
 Incluye la creación de tablas y las relaciones entre ellas
según reglas diseñadas para proteger los datos como
para eliminar la redundancia.
 Los datos redundantes desperdician el espacio de disco
y crean problemas de mantenimiento.
 Hay algunas reglas en la normalización de una base de
datos. Cada regla se denomina una "forma normal“.
Primera Forma Normal
 Una tabla se dice que esta en 1FN si y sólo si:
 los valores que componen el atributo de una tupla son atómicos.
 La tabla contiene una clave primaria única.
 La clave primaria no contiene atributos nulos.
 Un atributo solo debe mantener valores elementales o únicos.
 Debe Existir una independencia del orden tanto de las filas como de
las columnas.

Pasos a seguir para Normalizar en 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
Primera Forma Normal (1FN)
Nombre Antig Direcciones Ciudad Producto
No esta normalizada
reg 1 TASA 25 a–os Reforma 23 Puebla clavos ya que no existen
tornillos relaciones atómicas
tuercas
tachuelas
entre los dominios.
reg 2 MESA 15 a–os Juarez 15 Cholula tuercas Anomalía
tachuelas
reg 3 GISA 20 a–os Sur 322 Puebla clavos ¿De qué tamaño es
tornillos un registro?
tuercas

Nombre Antig Direcciones Ciudad Producto Cant


Entidad en 1FN
tupla 1 TASA 25 a–os Reforma 23 Puebla clavos 400
tupla 2 TASA 25 a–os Reforma 23 Puebla tornillos 200
En el producto tupla 3 TASA 25 a–os Reforma 23 Puebla tuercas 100
cartesiano todos los tupla 4 TASA 25 a–os Reforma 23 Puebla tachuelas 50
tupla 5 MESA 15 a–os Juarez 15 Cholula tuercas 30
dominios tienen tupla 6 MESA 15 a–os Juarez 15 Cholula tachuelas 20
valores atómicos tupla 7 TASA 20 a–os Sur 322 Puebla clavos 20
tupla 8 GISA 20 a–os Sur 322 Puebla tornillos 50
tupla 9 GISA 20 a–os Sur 322 Puebla tuercas 40
16
Segunda Forma Normal
La Segunda Forma Normal está basada
en el concepto de dependencia
completamente funcional.
 Una tabla se dice que esta en 2FN si y
solo si cumple dos condiciones:
 Se encuentra en 1FN.
 Todo atributo secundario ( aquéllos que
no pertenecen a la clave principal)
depende totalmente de la clave completa.
Dependencias Funcionales
 Es una conexión entre uno o más atributos.
 Las dependencias funcionales del sistema se escriben
utilizando una flecha, de la siguiente manera:
 FechaDeNacimiento Edad
 Dependencia Funcional Transitiva:
Se aplica para analizar las tablas en tercera forma normal
(3FN).
Consiste en considerar que “un atributo no primario solo
debe conocerse a través de la clave principal o claves
secundarias.
A B y B A
Se dice que C tiene una dependencia funcional transitiva
con A si se cumple que B C.
Segunda Forma Normal (2FN)
Sin embargo la 1FN tiene problemas cuando los atributos tienen
dependencia de varias llaves o dominios independiente.
Nombre Antig Direcciones Ciudad Producto Cant
Anomalía
tupla 1
tupla 2
TASA
TASA
25 a–os
25 a–os
Reforma 23
Reforma 23
Puebla
Puebla
clavos
tornillos
400
200
¿Qué pasa cuando dejo de
tupla 3
tupla 4
TASA
TASA
25 a–os
25 a–os
Reforma 23
Reforma 23
Puebla
Puebla
tuercas
tachuelas
100
50
comprarle a TASA ?
tupla 5 MESA 15 a–os Juarez 15 Cholula tuercas 30
tupla 6 MESA 15 a–os Juarez 15 Cholula tachuelas 20
tupla 7 TASA 20 a–os Sur 322 Puebla clavos 20
tupla 8 GISA 20 a–os Sur 322 Puebla tornillos 50
tupla 9 GISA 20 a–os Sur 322 Puebla tuercas 40

Ent 1 Nombre Antig Direcciones Ciudad

Entidades en 2FN tupla 1 TASA 25 a–os Reforma 23 Puebla


tupla 2 MESA 15 a–os Juarez 15 Cholula
tupla 3 GISA 20 a–os Sur 322 Puebla
Las entidades están en 1FN y
además cada dominio o atributo Ent 2 Nombre Producto Cant
depende de un sola llave:
tupla 1 TASA clavos 400
tupla 2 TASA tornillos 200
Ent 1 Nombre tupla 3 TASA tuercas 100
tupla 4 TASA tachuelas 50
==> Ant, Dir,Cd tupla 5 MESA tuercas 30
Ent 2 Nombre, Producto tupla 6 MESA tachuelas 20
tupla 7 TASA clavos 20
==> Cant tupla 8 GISA tornillos 50
tupla 9 GISA tuercas 40 19
Tercera Forma Normal
 Se dice que esta en 3FN si y solo si se
cumplen dos condiciones:
 Se encuentra en 2FN.
 Cada atributo secundario solo se debe
conocer a través de la clave principal o
claves secundarias de la tabla y no por
medio de otro atributo primario.
Tercera Forma Normal (3FN)
Sin embargo la 2FN tiene problemas cuando uno de los atributos tienen
dependencia transitiva de los dominios o atributos
Anomalía
Ent 1 Nombre Antig Direcciones Ciudad ¿Qué pasa cuando TASA
tupla 1 TASA 25 a–os Reforma 23 Puebla de ser mi proveedor?
tupla 2 MESA 15 a–os Juarez 15 Cholula
tupla 3 GISA 20 a–os Sur 322 Puebla

Entidades en 3FN
Ent 1 Nombre Antig Direcciones

Las entidades están en 2FN y tupla 1 TASA 25 a–os Reforma 23


tupla 2 MESA 15 a–os Juarez 15
además cada dominio o atributo tupla 3 GISA 20 a–os Sur 322
depende NO transitivamente de
un sola llave:

Ent 1 Nombre Ent 3 Direcciones Ciudad


==> Ant, Direcciones tupla 1 Reforma 23 Puebla
Ent 3 Direcciones tupla 2 Juarez 15 Cholula
tupla 3 Sur 322 Puebla
==> Ciudad 21
Tercera Forma Normal
 Se dice que esta en 3FN si y solo si se
cumplen dos condiciones:
 Se encuentra en 2FN.
 Cada atributo secundario solo se debe
conocer a través de la clave principal o
claves secundarias de la tabla y no por
medio de otro atributo primario.
Dependencias Funcionales

 Dependencia Funcional Transitiva: DF Transitiva


Se aplica para analizar las tablas en tercera forma normal
(3FN).
Consiste en considerar que “un atributo no primario solo
debe conocerse a través de la clave principal o claves
secundarias.

DF
Clave Atributos con DFT Atributos con DF Transitiva
Tercera Forma Normal
(Dependencia Funcional Transitiva)

E S E
F T F
A G A G
H H
I I
J J
K K

E S

F T
Forma Normal de Boyce-Codd

 Una tabla esta en FNBC si y solo si las


únicas dependencias funcionales
elementales son aquellas en las que la
clave principal y claves secundarias
determinan un “atributo”.
Dependencia Multivaluada (DMV)
 La dependencia multivaluada es un concepto que se introduce para
tratar la 4FN. Es necesario que entre dos atributos el resto de los
campos sean independientes. Deben existir al menos 3 atributos para
que haya dependencia multivaluada.
la definición dice:
“sean A, B y C tres subconjuntos distintos de atributos de una tabla T se
dice que A tiene una dependencia multivaluada con B, que A
multidetermina B, o que B depende multivaluadamente de A y se
escribe:
A B
Si para cada valor de A existen un conjunto de valores B asociados y esta
es independiente del resto de atributos C”.

Dependencia Join:
 Es una dependencia entre tablas
Cuarta Forma Normal
 Se aplica para eliminar las DMV de las
tablas (por redundancia de datos).
 Se dice que esta en 4FN si esta en FNBC
 Las únicas DMV existentes son las DF de
la clave con los atributos secundarios.
 Es como FNBC, pero con dependencias
multivaluadas.
Quinta Forma Normal
 Es un nivel de normalización de bases de
datos diseñado para reducir redundancia en
las bases de datos relacionales que guardan
hechos multivalores aislando
semánticamente relaciones múltiples
relacionadas.
 Debe cumplir dos condiciones:
 encontrarse en 4FN.
 Toda Dependencia Join viene implicada por
las claves de la tabla.
Forma Normal de Boyce-Codd

 Una tabla esta en FNBC si y solo si las


únicas dependencias funcionales
elementales son aquellas en las que la
clave principal y claves secundarias
determinan un “atributo”.
Dependencia Multivaluada (DMV)
 La dependencia multivaluada es un concepto que se
introduce para tratar la 4FN. Es necesario que entre dos
atributos el resto de los campos sean independientes. Deben
existir al menos 3 atributos para que haya dependencia
multivaluada.
la definición dice:
“sean A, B y C tres subconjuntos distintos de atributos de una
tabla T se dice que A tiene una dependencia multivaluada con
B, que A multidetermina B, o que B depende
multivaluadamente de A y se escribe:
A B
Si para cada valor de A existen un conjunto de valores B
asociados y esta es independiente del resto de atributos C”.

Dependencia Join:
 Es una dependencia entre tablas
Cuarta Forma Normal
 Se aplica para eliminar las DMV de las
tablas (por redundancia de datos).
 Se dice que esta en 4FN si esta en FNBC
 Las únicas DMV existentes son las DF de
la clave con los atributos secundarios.
 Es como FNBC, pero con dependencias
multivaluadas.
Quinta Forma Normal
 Es un nivel de normalización de bases de
datos diseñado para reducir redundancia
en las bases de datos relacionales que
guardan hechos multivalores aislando
semánticamente relaciones múltiples
relacionadas.
 Debe cumplir dos condiciones:
 encontrarse en 4FN.
 Toda Dependencia Join viene implicada
por las claves de la tabla.
Normalización: Redundancia controlada
La normalización genera más entidades, sin
embargo esta redundancia aparente esta
controlada por el manejador de BD, siendo Entidades normalizadas
ajena para el usuario.
Ent 1 Nombre Antig Direcciones
Por otro lado el tamaño de los archivos tiende
a reducirse. tupla 1 TASA 25 a–os Reforma 23
tupla 2 MESA 15 a–os Juarez 15
tupla 3 GISA 20 a–os Sur 322

Ent 2 Nombre Producto Cant

Entidad sin normalizar tupla 1


tupla 2
TASA
TASA
clavos
tornillos
400
200
tupla 3 TASA tuercas 100
Nombre Antig Direcciones Ciudad Producto tupla 4 TASA tachuelas 50
tupla 5 MESA tuercas 30
reg 1 TASA 25 a–os Reforma 23 Puebla clavos tupla 6 MESA tachuelas 20
tornillos
tuercas tupla 7 TASA clavos 20
tachuelas tupla 8 GISA tornillos 50
reg 2 MESA 15 a–os Juarez 15 Cholula tuercas tupla 9 GISA tuercas 40
tachuelas
reg 3 GISA 20 a–os Sur 322 Puebla clavos
tornillos
tuercas Ent 3 Direcciones Ciudad

tupla 1 Reforma 23 Puebla


tupla 2 Juarez 15 Cholula
tupla 3 Sur 322 Puebla
33
Normalización Ulterior
La normalización puede ser continuada mas allá de la 3FN, existen
argumentos académicos interesantes para la existencia de

BCFN Forma Normal de Boyce y Codd


Las entidades están en 3FN y además todo dominio independiente es
una llave candidato: Ent={A,B,C,D} y las depencias son A==> BCD
y D==>A
aqui A y D son llaves

4FN Cuarta Forma Normal


Las entidades están en BCFN y además no se tienen dependencias
multievaluadas

5FN Quinta Forma Normal

D/KFN Forma Normal de Dominio y Llave

Para los propósitos de una operación administrativa


la 3FN es suficientemente poderosa. 34
Guía de Normalización
1. Defina los Dominios ( Atomice lo mínimo necesario )
2. Defina los Formatos ( Defina formatos comunes )
3. Escriba todas las suposiciones semánticas iniciales
4. Obtenga la Tabla de Dependencias
(conectando todos los dominios)
5.Determine las dependencias funcionales
( sentido de la fecha, dominios independientes conjuntos )
6. Elimine las dependencias transitivas
7. Partiendo de la Tabla de Dependencias obtenga:
Las entidades mínimas necesarias, tomando cada dominio(s) independiente
para entablar a la entidad.
8. Complete la lista de suposiciones semánticas
9. Presente los resultados:
Dominios, Entidades, Suposiciones
10. Obtenga aprobación firmada de la definición ó en caso necesario efectúe las
modificaciones requeridas
(un buen diseño debe no contener más de 100 dominios y 40 entidades por
sistema ) 35
Elementos del modelo
Entidad - Relación
Elementos
Rectángulo
Representa entidades básicas
Doble Rectángulo
Representa entidades débiles que
no tienen llaves primarias
Diamante
identificador de relaciones
Elipse
Atributos de la entidad, si esta subrayado es llave primaria
Línea
Ligas

36
Modelo Entidad - Relación

Introduce el enfoque de Orientado a Objetos al


definir tipos de datos que encapsulen a una entidad
completa como un nuevo objeto

Permite analizar partes de una Base de Datos de


mayor dimensión (muchos dominios) a nivel
entidades sin tener que estudiar todos los dominios
específico que se vuelven atributos de las mismas.

37
Guía de Lectura
 Capitulo 5 El Modelo Relacional y Normalización (BD D
Kroenke.pdf)

 Capitulo 6 Diseño de Bases de Datos Utilizando Modelos E/R


(BD D Kroenke.pdf)

38
Trabajo Práctico
Sistema del mercado de Frutas

39
Descripción de las reglas de negocio

Puestos M1 Puestos M2 Puestos M3


Datos del mercado Datos de un Almacen que distribuye Fruta
CODMER Codigo de mercado CODALM Código Almacen
NOMMER Nombre NOMALM Nombre
DIRMER Dirección CIFALM Código de Identificación Fiscal
CPOMER Código postal CODFRU Código de la fruta que distribuye
CIUMER Ciudad CMEFRU Código de medida de distribución
CPRMER Código de Provincia STKALM Stock de fruta en el almacen
PROMER Nombre de la Provincia PDIFRU Precio de distribución
TELMER Télefono Datos de la Factura de un Almacen a un puesto
Datos del puesto de un Mercado NUMFAC Número de factura
CODPTO Código de Puesto FECFAC Fecha
CIFPTO Código de Identificación Fiscal CODALM Codigo almecen
NOMPTO Nombre NOMALM Nombre Almacen
NPRPTO Nombre propietario CIFALM Código de Identificación Fiscal
Datos de fruta que vende un puesto CODMER Codigo de mercado
CODFRU Código NOMMER Nombre del mercado
NOMFRU Nombre DIRMER Dirección del mercado
CMEFRU Código medida CPOMER Código de Provincia del mercado
NMEFRU Nombre de la medida CIUMER Ciudad del mercado
STKPTO Stock en medidad en el puesto PROMER Provincia del mercado
PVEFRU Precio de venta CODPTO Código de Puesto
NOMPTO Nombre del Puesto
CIFPTO Código de Identificación Fiscal
NPRPTO Nombre del propietario del puesto
CODFRU Codigo de fruta
NOMFRU Nombre de la fruta
CMEFRU Código de medida de la fruta
NMEFRU Nombre de la medida
UMEFRU Unidedaes de medida vendida
PDIFRU Precio de distribución
PTOFRU Precio total de la fruta
BIMFRU Base impotible de la factura
PROIVA Porcentaje del Iva
IVAFAC Importe del IVA
TOTFAC Total de la factura
Para generar los gráficos de dependencia funcional se debe estudiar
que zonas del mismo se tratan primero.
Estas serán conformadas por los las entidades y relaciones con
mayor cohesión.
De dicha zona se desarrolla el grafico, mostrando solo las DF
afectadas.
Una vez normalizada la zona, se continúa con las siguientes.
• Zona 1 formado por la relación
• DISTRIBUIR
• Zona 2 formada por las relaciones
• SUMINISTRAR
• TENER
• POSEER
• VENDER
• Zona 3
• HACER FACTURAS
• RECIBIR FACTURAS
• FACTURAR
2FN - Dependencia Funcional Total

NOMMER
DIRMER
CIUMER
CodMer CPOMER
CPRMER
PROMER
TELMER
CIFPTO
NOMPTO
NPRPTO
CodPto
CodFru NOMFRU

CmeFru NMEFRU
STKPTO
PVEFRU
2FN - Dependencia Funcional Total

CodAlm

NumFac

CodFru
CmeFru
Diseño Global

49
6. Integridad y seguridad:
Directorio de Datos
Las bitácoras modelan y registran los procesos que se
efectúan dentro de la base de datos

Se logra por medio de almacenar los datos asociados con la ejecución de los
comandos del SQL de la base de datos (altas bajas cambios, perdidas) .
Contienen el QUE, QUIEN, COMO, DONDE y CUANDO de la BD 50
BITACORAS:
QUE, QUIEN, COMO, DONDE y CUANDO

Bitácora de Usuarios:
Usuario, Password, depto, sistema, archivos, terminal, permisos
Bitácora de Archivos:
Password, Dueño, sistema que los usan, dominos, formatos, ubicación,
usuarios
Catálogo de Sistemas:
Depto, sistema, archivos, terminal, programas, responsable
Bitácora de Errores:
Tipo, programa, descripción, hora, lugar, usuario, fecha, archivo, sistema
Bitácora de Uso:
Fecha, Usuario, Sistema, Permiso, Terminal, Registro, tipo de a,cceso Imagen
Vieja, Imagen Nueva
Manuales del Sistema:
Sistema, depto, archivos, procedimiento de uso, nivel de
sistematización/automatización
51
Normalización del Directorio
Ejemplo de las dependencias funcionales
de la bitácora de uso

52
Uso de la Bitácora

Ante estas
actualizaciones en las
Entidades TAM y ABC
la bitácora refleja la
siguiente actividad

53
Recuperación

54
Arranque en Frío
1 Determinación de la Entidad (Archivo) perdido
2 Cargado del último respaldo
3 Ordenamiento de la bitácora según el archivo
perdido
4 Lectura de Imágenes nuevas de cada registro de la
entidad en cuestión
5 Lectura de Imágenes viejas de la bitácora y
corroboración con la imagen en el respaldo
6 Actualización correspondiente de más antiguo a más
reciente

55
Respaldos
1 Respaldar la base de datos BD cuando se llene la
bitácora de uso
2 Respaldar la bitácora de uso y limpiarla la copia
actual
3 Se deben mantener copias de la BD y la bitácora en el
sitio
4 Es recomendable tener una copia adicional en un
lugar ajeno físicamente de la instalación
5 El tamaño de la bitácora es función del número de
actualizaciones que tenga la base de datos

56
Arranque en Caliente
1 Determinación del último punto estable
2 Lectura de imágenes viejas de los archivos
modificados en el período de inestabilidad del
proceso usando la bitácora de uso
3 Lectura de imágenes nuevas de la bitácora y
corroboración con la imagen en el archivo
4 Desactualización de los archivos por medio del
reemplazo de imágenes viejas por nuevas
5 Aviso a los usuarios para que repitan las
actualizaciones efectuadas durante el período de
inestabilidad

57
Camino al cambio de las TI
SER == > Existencia de Carencias
Sistema caótico, dependiente y limitado
Querer Ser == > Convencimiento
Unificación y Confianza
Saber Ser == > Compromiso
Preparación, Selección, Capacitación
Poder Ser == > Costo
Inversión Adecuada en tecnología
DEBER SER == > Crecimiento e Innovación
Libertad, Eficiencia, Confiabilidad e Independencia

58
Estrategias en Base de Datos

Para convencer
Simulaciones en Hoja de Cálculo
Para unificar y generar confianza
Llevar a Base de Datos las aplicaciones
nuevas
Para promover la cooperación
Primero llevar a Base de Datos los procesos
externos

59
Introducción a SQL
Basado en ORACLE
Lenguajes para BD:
álgebra y cálculo relacional
El LDD es el Lenguaje de Definición de los Datos
El LMD es el Lenguaje de Manipulación de los Datos
Existen dos grandes clases de lenguajes de consulta y acceso
relacional:
Basados en álgebra relacional
El prototipo de esta clase es el denominado
SQL (Structured Query Language)
Select PROV.PROV#
From PROV
Where PROV.CIUDAD = “Puebla”

Basados en el cálculo de predicados.


El prototipo de esta tipo de lenguajes es el PROLOG

61
Lenguaje de las Base de Datos
Los SGBD emplean como lenguaje estándar el SQL.
El SQL es un lenguaje Declarativo que permite la
definición, construcción y la manipulación de datos.
Tipos de sentencias:
- DML (Data Manipulation Languaje)
- DDL (Data Definition Languaje)
Tipo de Comando Comandos Descripción
Recuperación de SELECT Recupera los datos de la base de Datos. Es el comando utilizado
Datos con mayor frecuencia.
DML INSERT Ingresa nuevas filas, modifica filas existentes y elimina filas de
Lenguaje de UPDATE tablas de la base de datos, respectivamente.
Manipulación de DELETE
Datos
DDL CREATE Crea, modifica y eliminan estructuras de datos desde las tablas.
Lenguaje de ALTER
Definición de Datos DROP
RENAME
TRUNCATE
Control de COMMIT Maneja los cambios hechos por las sentencias DML. Los
Transacción ROLLBACK cambios a los datos pueden ser agrupados en transacciones
SAVEPOINT lógicas.
DCL GRANT Permite o restringe los derechos de acceso a la base de datos
– Lenguaje de REVOKE Oracle y a las estructuras dentro de ésta.
Control de Datos
SQL
Esquema de Base de Datos

Cursa

1 M
1 M M 1
Alumnos Efectua Examenes Pertenece Materias

Pertenece

Departamentos
Definición de Tablas

Claves Primarias

Alumnos Exámenes Materias


Nlegajo Númerico 7 Nlegajo Númerico 7 CodMateria Númerico 3
CodCarrera Númerico 3 CodMateria Númerico 3 Nlegajo Númerico 7
Nombre Caracteres 25 FechaExamen Date NombreMater Caracteres 30
Apellido Caracteres 25 Nota Númerico 2,2 CodDepto Númerico 3
Domicilio Caracteres 25 CodCarrera Númerico 3
Localidad Caracteres 25
Cod. Postal Caracteres 10
Promedio Númerico 2,2
MaterAprob Númerico 2

Departamentos
CodDepto Númerico 3
Nombre Depto Caracteres 30
Definición de Tablas

Claves Secundarias
Alumnos Exámenes Materias
Nlegajo Númerico 7 Nlegajo Númerico 7 Nlegajo Númerico 7
CodCarrera Númerico 3 CodMateria Númerico 3 CodMateria Númerico 3
Nombre Caracteres 25 FechaExamen Date NombreMater Caracteres 30
Apellido Caracteres 25 Nota Númerico 2,2 CodDepto Númerico 3
Domicilio Caracteres 25 CodCarrera Númerico 3
Localidad Caracteres 25
Cod. Postal Caracteres 10
Promedio Númerico 2,2
MaterAprob Númerico 2

Departamentos
CodDepto Númerico 3
Nombre Depto Caracteres 30
Sintaxis SQL

Una sola tabla


SELECT atributo1, atributo2, ...
FROM tabla
WHERE {condiciones1} and/or condiciones2}
..........
ORDER BY {atributo1, atributo2}

Múltiples tablas

SELECT tabla.atributo1, tabla.atributo2, ...


FROM tabla1, tabla2
WHERE {tabla1.columna = tabla2.columna} AND
{condiciones1} and/or condiciones2}
..........
ORDER BY {tabla.atributo1} ASC/DES
Ejemplo consulta en SQL

Tabla ALUMNOS

NLEGAJO APELLIDO PROMEDIO Tabla MATERIAS


--- ------------ --------
NLEGAJO NOMBREMATER CODDEPTO
1 Velasquez 5
--- -------------- ---------
2 Perez 4 50 Sistemas I 1
3 Dominguez 3 50 Contabilidad II 2
4 Gonzalez 10 ... Tabla DEPARTAMENTOS
50 Matematicas 3
... CODDEPTO NOMBREDEPTO
50 Psicología 4
--- --------------
1 Informatica
2 Contable
3 Exactas
4 Sociales
5 Ciencias Empresarias
6 Ciencias Industriales
......

Ejemplo
Mostrar el Legajo, Apellido del Alumno, Nombre de la materia que cursa y Nombre del
departamento que pertenece la materia de los alumnos cuyo promedio es superior a 7 puntos.

SELECT ALUMNOS,nlegajo,ALUMNOS.apellido,
MATERIAS.nombremater,DEPARTAMENTOS.nombredepto
FROM ALUMNOS,MATERIAS, DEPARTAMENTOS
WHERE ALUMNOS.nlegajo = MATERIAS.nlegajo AND
MATERIAS.coddepto = DEPARTAMENTOS.coddepto AND
ALUMNOS.promedio > 7;
Bloque de Consulta Básico
Una sentencia SELECT recupera información desde la base de datos, implementando
todos los operadores algebraicos.

SELECT [DISTINCT] {*,column [alias] , . . . .}


FROM table;

Donde:
SELECT identifica qué columnas.
DISTINCT suprime duplicados.
* Recupera todas las columnas.
Columna: recupera la columna nombrada.
alias: asigna a la columna recuperada un encabezamiento diferente.
FROM table especifica la tabla que contiene las columnas.

En su forma más simple, una sentencia SELECT puede incluir:


 Una cláusula SELECT, que especifica las columnas a ser visualizadas.
 Una cláusula FROM, que especifica la tabla que contiene las columnas listadas en la
cláusula SELECT
Escritura de Comandos SQL
 Los Comandos pueden constar de una o varias líneas
 Se puede ubicar las cláusulas en diferentes líneas y usar tabulaciones e
indentaciones para mayor legibilidad y facilidad de edición.
 No están permitidas las abreviaturas y separación de palabras.
 Los comandos SQL no son case sensitive, salvo los indicados.
 Un comando SQL se ingresa en el prompt SQL y las líneas subsiguientes
están numeradas. Esto se llama el buffer SQL.
 En el buffer puede haber una sentencia por vez y la misma puede ser
ejecutada de diferentes formas:
 Tipear un punto y coma (;) al final de la última cláusula
 Tipear un punto y coma (;) o una barra (/) en la última línea del buffer
 Tipear un slash en el prompt de SQL
Negocio de Artículos Deportivos
Esquema de base de datos

S_ITEM S_ORD S_CUSTOMER

S_INVENTORY S_EMP

S_PRODUCT S_WAREHOUSE S_DEPT

S_REGION

Ver estructura de Datos en C:\03 RG 2014-05-02\03 - MARIA REINA\1 Bibliografía\04 SQL 0 Itroducción.doc
Ejemplo: Selección de Todas las Columnas y Filas

SQL> SELECT *
2 FROM s_dept;

ID NAME REGION_ID
--------- ------------------------- ---------
10 Finance 1
31 Sales 1
32 Sales 2
33 Sales 3
34 Sales 4
35 Sales 5
41 Operations 1
42 Operations 2
43 Operations 3
44 Operations 4
45 Operations 5
50 Administration 1

12 filas seleccionadas.
Ejemplo: Selección Columnas específicas

SQL> SELECT dept_id, last_name, manager_id


2 FROM s_emp;

DEPT_ID LAST_NAME MANAGER_ID


--------- ------------------------- ----------
50 Velasquez Etiquetas de Columnas
41 Ngao 1
31 Nagayama 1 Por defecto la etiqueta es el nombre dado a la
10 Quick-To-See 1 columna en la definición de la tabla.
50 Ropeburn 1
41 Urguhart 2 Se puede reemplazar el nombre de la columna con
42 Menchu 2 un alias.
43 Biri 2 Por defecto, las etiquetas se muestran en
. . . mayúsculas.

25 filas seleccionadas. Las etiquetas de las columnas tipo carácter o fecha


se justifican a la izquierda dentro de la columna.

Las etiquetas de las columnas tipo número se


justifican a la derecha dentro de la columna.
Expresiones Aritméticas
Se puede crear expresiones aritméticas sobre tipos de datos numéricos y fechas.
Una expresión aritmética puede contener nombres de columnas, valores numéricos,
constantes y operadores aritméticos.
Se pueden usar los operadores aritméticos en cualquier sentencia de SQL excepto
en la cláusula FROM.
Ejemplo:
SQL> SELECT last_name, salary, salary*12
2 FROM s_emp;
LAST_NAME SALARY SALARY*12
------------------------- --------- ---------
Velasquez 2500 30000
Ngao 1450 17400
Nagayama 1400 16800
Quick-To-See 1450 17400
Ropeburn 1550 18600
Urguhart 1200 14400
. . . Operadores Descripción

+ Suma
- Resta
* Multiplicación
/ División
DISTINCT con Varias Columnas

DISTINCT se aplica a todas las columnas de la lista de la cláusula SELECT.


Cuando DISTINCT se aplica a varias columnas, el resultado representa las
diferentes combinaciones

SQL> SELECT DISTINCT dept_id, title


2 FROM s_emp;

DEPT_ID TITLE
--------- ---------------------
10 VP, Finance
31 Sales Representative
31 VP, Sales
32 Sales Representative
33 Sales Representative
. . .
21 filas seleccionadas.
La cláusula ORDER BY

El orden de las filas recuperadas por una consulta es indefinido. La cláusula ORDER BY
se puede usar para ordenar las filas.

SELECT expr
FROM tabla
[ORDER BY {columna, expr} [ASC | DESC] ] ;
Donde:
ORDER BYespecifica e orden en el cual se muestran las filas recuperadas.
ASC ordena las filas en orden ascendente. Este es el valor por defecto.
DESC ordena las filas en orden descendente.

Ejemplo

SQL> SELECT last_name, dept_id, start_date


2 FROM s_emp
3 ORDER BY last_name;

LAST_NAME DEPT_ID START_DA


------------------------- --------- --------
Biri 43 07/04/90
Catchpole 44 09/02/92
Chang 44 30/11/90
Dancs 45 17/03/91
Dumas 35 09/10/91
Restricción de las Filas seleccionadas con la cláusula WHERE
Se puede restringir las filas recuperadas usando la cláusula WHERE. Una Cláusula WHERE
contiene la condición que se debe cumplir y se ubica a continuación de la cláusula FROM.

SELECT expr
FROM tabla
[WHERE condicion(es) ]
[ORDER BY expr ] ;
Donde:
WHERE restringe la consulta a las filas que cumplen una condición.
condición se compone de nombres de columnas, expresiones, constantes y operadores de comparación.

La cláusula WHERE se ubica a continuación de la cláusula FROM.


Las condiciones consisten en lo siguiente:
 Nombre de columna, expersión, constante.
 Operador de comparación.
 Literal

Ejemplo
SQL> SELECT dept_id, last_name, salary
2 FROM s_emp
3 WHERE dept_id = 42;

DEPT_ID LAST_NAME SALARY


--------- ------------------------- ---------
42 Menchu 1250
42 Nozaki 1200
42 Patel 795
Operadores de Comparación Operador BETWEEN
Operador Significado
= Igual a
> Mayor que Selecciona las filas que se encuentran dentro de un rango de valores. El rango que
>= Mayor o igual que se especifica contiene un valor inferior y otro superior, se debe espcificar primero
< Menor que el límite inferior del rango. Los valores especificados con el operador BETWEEN
<= Menor o igual que
BETWEEN...AND... Entre dos valores (inclusive) se incluyen.
IN (list) Coincide con cualquier valor de la lista
LIKE Coincide con un patrón de caracteres Ejemplo
IS NULL Es un valor nulo
Seleccionar los departamentos cuyo numero de región está entre 2 y 4 inclusive.
Operadores Lógicos
Operador Significado
AND Si ambos componentes de la condición son verdaderos, el resultado también SQL> SELECT id, name, region_id
2 FROM s_dept
OR Si algún componente de la condición es verdadero, el resultado también 3 WHERE region_id BETWEEN 2 AND 4;
NOT Retorna la condición negada
Negación de Operadores ID NAME REGION_ID
Operador Significado
<> No igual a (en todos los sistemas operativos). Hay otras formas de --------- ------------------------- ---------
expresarlo, dependiendo de los sistemas ( ‘!=’ para VAX, UNIX,PC ; ‘^= ‘ o 32 Sales 2
‘:=’ para IBM) 33 Sales 3
NOT nombre-columna = No igual a
34 Sales 4
NOT nombre-columna > No mayor que 42 Operations 2
43 Operations 3
NOT BETWEEN...AND... No está entre los valores especificados
44 Operations 4
NOT IN (list) No está dentro de la lista especificada
NOT LIKE No es como la cadena de comparación 6 filas seleccionadas.
IS NOT NULL No es un valor nulo
Ejemplos de SQL
Asumiendo la existencia
de los siguientes archivos
(entidades)

Muebles :
( Mueble, Descripción Mueble )
Direcciones : ( Dirección, Cliente )
Ensambles : ( Herraje, Mueble, Número )
Herrajes :
( Herraje, Descripción Herraje, Calidad, Precio )
Ordenes : ( Folio, Dirección, Fecha )
Detalles :
( Folio, Línea Detalle, Cantidad, Herraje )
Inventarios :
( Planta, Herraje, Inventario )
Plantas : ( Planta, Descripción Planta )
Descuentos :
( Herraje, Volumen, % Descuento )

80
Solución del SQL

81
Ejemplos de SQL (2)
Asumiendo la existencia de los siguientes archivos (entidades)

82
Solución del SQL (2)

83
Ejemplo Numérico

Se obtienen las siguientes tuplas

Asumiendo estos datos


en las entidades

84
8. Manejo de Transacciones
Transacciones, Serialización
 Enfoques de solución
 Protocolo de bloque en dos fases
 Transacciones
 Consistencia
Estado de transacciones
 Diagrama de estado en una transacción
 Recuperación de falla

85
Criterios en una Transacción
En su diseño
Correctitud
Una transacción debe mantener la consistencia de la BD
Atomicidad
Una transacción debe manejarse como un objeto atómico, esto
es no puede ejecutarse un pedazo del mismo únicamente, o se
completa toda o no se completa

En su ejecución
Activa: SI se encuentra en proceso de ejecución
Parcialmente Comprometida: se ha ejecutado parte de ella
(es estado temporal)
Fallida: NO puede ser completada (requiere ser terminada)
Terminada: Se efectúa un ROLLBACK para deshacer el
proceso
Comprometida: Se efectúa un COMMIT para completarla

86
Ejemplo de transacción

87
Bibliografía
 Date C. J. Data Base Systems
 Procesamiento de Bases de datos D Kroenke

88
Bases de Datos
Diseño de Bases para Almacenes
Tablas Normalizadas
Tabla Almacenes Tabla Mercados

Tabla AlmFru Tabla Provincias

Tabla Puestos

Tabla Ciudad

Tabla Medidas
Tabla Frutas

Tabla Almmer
Tabla Propietarios

96
Tablas Normalizadas
Tabla PtoFru

Tabla FACTURAS

Esta tabla
está bien
diseñada ¿?

97
Tablas: Tipos de Datos
Valor Tipo de datos Tamaño
Texto Texto o combinaciones de texto y números, así Hasta 255 caracteres o la longitud que
indique la
como números que no requieran cálculos, como
los números de teléfono. Es el predeterminado. propiedad Tamaño del campo.

Memo Estos campos son particularmente adecuados para dotar a


cada registro de la tabla de un lugar para escribir todo tipo
Hasta 65.535 caracteres.

de comentarios. No es necesario definir su longitud, ya que


la misma se maneja de manera automática, extendiéndose a
medida que se le agrega información. El texto allí colocado
no dispone de ninguna posibilidad de formato, ni de carácter
ni de párrafo.

Numérico Datos numéricos utilizados en cálculos matemáticos. 1, 2, 4 u 8 bytes (16 bytes si el valor
de la propiedad Tamaño del campo
es Id. de réplica).

Fecha/Hora Valores de fecha y hora. 8 bytes.

Moneda Valores de moneda y datos numéricos utilizados en cálculos


matemáticos en los que estén implicados datos que
8 bytes.

contengan entre uno y cuatro decimales. La precisión es de


hasta 15 dígitos a la izquierda del separador decimal y hasta
4 dígitos a la derecha del mismo.

05/04/2018 98
Tablas: Tipos de Datos
Sí/No Valores Sí y No, y campos que contengan uno
de entre dos valores (Sí/No, Verdadero/Falso o
1 bit.

Activado/desactivado).

Objeto OLE Objeto (como por ejemplo una hoja de cálculo


de Excel, un documento de Word, gráficos,
Hasta 1 gigabyte (limitado por el
espacio disponible en disco)
sonidos u otros datos binarios) vinculado o
incrustado en una tabla de Access.

Hipervínculo Almacena una ruta UNC o una URL. Hasta 64000 caracteres.

Autonumérico Número secuencial (incrementado de uno a


uno) único, o número aleatorio que Microsoft
4 bytes (16 bytes si el valor de la
propiedad Tamaño del campo es
Access asigna cada vez que se agrega un nuevo Id. La réplica).
registro a una tabla. Los campos Autonumérico
no se pueden actualizar.

Asistente para Crea un campo que permite elegir un valor de


otra tabla o de una lista de valores mediante un
Tamaño igual al del campo clave
principal utilizado para realizar la
búsquedas cuadro de lista o un cuadro combinado. búsqueda.

05/04/2018 99

You might also like