Professional Documents
Culture Documents
1. Modelo Jerárquico
SGBD de Primera
Nivel Implementació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.
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
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:
C C
C = Cardinalidad
Propiedades de las Relaciones
Entidades en 3FN
Ent 1 Nombre Antig Direcciones
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
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
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
36
Modelo Entidad - Relación
37
Guía de Lectura
Capitulo 5 El Modelo Relacional y Normalización (BD D
Kroenke.pdf)
38
Trabajo Práctico
Sistema del mercado de Frutas
39
Descripción de las reglas de negocio
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”
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
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
Múltiples tablas
Tabla ALUMNOS
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.
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.
S_INVENTORY S_EMP
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
+ Suma
- Resta
* Multiplicación
/ División
DISTINCT con Varias Columnas
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
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.
Ejemplo
SQL> SELECT dept_id, last_name, salary
2 FROM s_emp
3 WHERE dept_id = 42;
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
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 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.
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).
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).
Hipervínculo Almacena una ruta UNC o una URL. Hasta 64000 caracteres.
05/04/2018 99