El documento compara el procesamiento de archivos versus el uso de bases de datos, destacando las ventajas de las bases de datos como reducir la redundancia de datos, compartir datos entre aplicaciones, mantener la integridad y seguridad de los datos. Luego describe los componentes básicos de una base de datos, los tipos de usuarios, y conceptos como archivo, registro y campo.
1. Procesamiento de Archivos Vs. Base de Datos
Cuando se manejan archivos existen algunos problemas como el tener:
• Datos Repetidos (Redundancia).
• No se manejaban estándares.
• Había inconsistencia de datos.
• Falta de seguridad en los datos.
• No existían aplicaciones de uso general.
• A diferencia de cuando manejamos Base de Datos:
• Reducir Redundancia.
• Poder compartir los datos (Tanto aplicaciones viejas como nuevas que
utilizan la misma Base de Datos).
• Poder con las normas establecidas (Estándares)
• Mantener la seguridad en el sistema (Seguridades de acceso, de
personas, seguridades en operaciones permitidas).
• Mantener la Integridad de Datos.
Base de Datos.
Es un sistema que almacena datos que están relacionados en un repositorio
en donde guardamos información integrada que podamos almacenar y
recuperar.
Componentes de una Base de Datos.
• Hardware: Constituido por dispositivos de almacenamiento como
disco, tambores, cinta, etc.
• Software: Que es el DBMS o sistema administrador de la Base de
Datos.
• Datos: Los cuales están almacenados de acuerdo a la estructura
externa y van a ser procesados para convertirse en información.
2. USUARIO
DBMS
Métodos de Acceso
DATOS
Tipos de Usuarios.
• Usuario Final: Es la Persona que utiliza los datos, esta persona solo ve
datos convertidos en información.
• Desarrollador de Aplicaciones: Es la persona que desarrolla los
sistemas que interactúan con la Base de Datos.
• DBA (Database Administration): Es la persona que asegura integridad,
consistencia, redundancia, seguridad; este es el administrador de la
Base de Datos quien se encarga de realizar el mantenimiento diario o
periódico de los datos.
Conceptos Básicos de Base de Datos.
• Archivo: Son conjunto de registros.
• Registros: Los registros son un conjunto de campos.
• Campos: Es la mínima unidad de referencia.
Archivo Clientes
Juan Pérez
Ana Alban
José Mora
20
28
30
$500
$1000
$1500
3. NIVELES DE ABSTRACCIÓN DE BASE DE DATOS.
EXTERNO
CONCEPTUAL
INTERNO
Nivel Externo o Visión del Usuario Final.
Se ve como se manejan los datos ya convertidos en información.
Nivel Conceptual.
Se ve como esta conformada la Base de Datos, que tipo de datos tiene, como
están estructurados los registros.
Nivel Interno o Físico: Se ve como se almacenan los datos físicamente.
DBMS (Database Management System).
Subsistemas de un DBMS.
Herramientas de
definición
Usuario
de
Aplicación
Interfase de
Procesamiento
Desarrollo de
Aplicaciones
Diccionario de
Datos
Motor/Núcleo
DBMS
E/S Físicas
S.O
4. Características y objetivos:
• Independencia de datos :
Me provee una independencia de datos vs mis aplicaciones
Aplicación Contable
Aplicación Financiera
Aplicación Administrativa
Minimizar redundancias :
Datos repetidos
•
Nombre de cliente
Juan Pérez
Juan Pérez
Sueldo del cliente
$ 150
$ 150
• Independencia de datos :
Poder proteger nuestro programa de aplicación frente a las modificaciones
en la estructura de datos y viceversa sea en forma física y lógica
• Independencia de física :
Es protección a los programas de aplicación debido a cambios de la
estructura del archivo o cambio en las características de los campos
• Independencia de lógica :
Protección a los programas de aplicación cuando se modifica el sistema
Resumen
Física
Estructura de campos
Lógica
Esquema
.
.
Aplicaciones
5. •
Minimizar redundancia :
Datos repetidos y distribuidos en cualquier parte, el efecto que ocasiona
la redundancia es tener inconsistencia de datos y desperdicio de espacio
de almacenamiento
•
Inconsistencia de datos :
Datos que en un lugar tienen valor y en otro lugar tienen otro valor.
Ej.
Se actualizo el archivo de cliente pero no se actualiza el archivo de
Transacciones
•
Integridad de datos :
Conjunto de seguridades que son utilizadas para mantener los datos
correctos
1. Fuentes de error
Estas fuentes de error se originan si el programa de entrada de datos no esta
valido
Ej.
• Fallas de hardware
• Actualizaciones incompletas
• Defectos de Hardware
• Errores humanos
Una técnica que utiliza el D.B.M.S para una entrada de datos no valida es la
validación
Validación: es protegerlos datos, validarlos en entrada de datos existentes
tipos de validaciones
• Validación en el tipo de dato : es si se define un campo como carácter
o char y no se puede ingresar números enteros
• Validación valor de datos : si se define un valor entero se puede
especificar un rango y no se puede pasar de este valor
Resumen
nombre
• Tipo de dato.
(Char)
• Valor de dato
entero
Validación
• Valores claves o
nulos
• Integridad referencial
6. • Valores claves no nulos: asegura tener claves únicas no repetidas.
• Integridad referencial : me asegura que existen registros hijos sin sus
registros padres correspondientes
Control de concurrencias o simultaneidad
Este concepto se da en ambiente multiusaruios o sea varios usuarios tratando
de acceder a un objeto de datos al mismo tiempo
V1
V2
V3
.
.
VN
Cliente
Granularidad: es el tamaño de las unidades aseguradas Ej.
La granularidad puede proteger un campo un registro un archivo etc.
Bloqueo o Dead Lack: es la técnica que evita errores de concurrencia o
simultaneidad se da cuando se desarrolla una espera circular entre dos
transacciones y cada una de ellas solicita una actualización sobre el mismo
archivo no permite a otro archivo utilizarlo el el recurso hasta que termine el
proceso se da espera circular
Resumen
D.B.M.S
Subsistemas
Característica y objeto de un D.B.M.S o D.B.A
Independencia de datos
Minimizar redundancias
Integridad de datos
• Fuente de error
• Validaciones
• Control de concurrencia
• Control de seguridad
Granularidad
Bloqueo (dead – lock)
7. Recuperación de datos: recuperar los datos frente a las fuentes de error
mencionadas anteriormente. La restauración de la base de datos a su
estado normal, que es responsabilidad del D.B.A quien es el responsable
de implantar procedimiento de detección de errores y recuperación
Recuperación B/D
Alto disponibilidad de servicios
y aplicaciones
1. Backup (respaldo) : Backup caliente( B/D es operativa /diario)
Backup frió (B/D no es operativa / semanal)
2. Mirror o espejo : (Tener otra base de datos)
3. Archivo de logs : (Registro de transacciones)
• Reverso o recuperar lo ultimo que se hizo en una base de datos
Seguridad de datos: la seguridad los datos se pueden definir en los
siguientes aspectos
Objetos a asegurar: 1er objeto a asegurar son los dato después los
programas y finalmente el esquema
Codificación de clases: lo que me va a proveer el D.B.M.S es la
seguridad de login usuario
Control de acceso: se especifican seguridades en contra suceso no
indicados orientado a personas no autorizadas
Control y administración de recursos: el D.B.M.S debe proveer el D.B.A de
todos los mecanismos para control y administración de recursos. Para que
el deba cumpla con integridad de datos recuperación de errores
implementación de seguridades
Establecimiento de relaciones entre datos: el D.B.M.S debe proveer los
recursos para el establecimiento de las relaciones entre los datos:
Relaciones
Uno a uno
Uno a muchos
Muchos a muchos
8. Diseño de aplicación: en esta etapa se diseñan los programas de aplicación
que usaran y procesaran la base de datos.
Esta etapa y el diseño de la base de dato son paralelos en la mayor parte de
los casos, no se pueden finalizar el diseño délas aplicaciones hasta que se
haya terminado el diseño de la base de dato
La base de dato existe para dar soporte a las aplicaciones por lo que habrá
retroalimentación del diseño de las aplicaciones al diseño de la base.
En esta etapa hay que asegurarse de que toda la funcionabilidad especificada
en los requisitos de usuario se encuentre el diseño de aplicación
Prototipo: es opcional, es para construir prototipos de la aplicación que
permita a los diseñadores y a los usuarios probar el sistema. Un prototipo es
un modelo de trabajo de las aplicaciones del sistema el prototipo no tiene
toda la funcionabilidad del sistema final pero es suficiente para que los
usuarios puedan usar el sistema e identificar que aspectos están bien y cual
no son adecuados además de poder sugerir mejoras a la inclusión de nuevos
elementos.
Implementación: en esta etapa se crea las definiciones de la base de datos a
nivel conceptual externo e interno a si como los programas de aplicación.
La implementación de la base de datos se realiza mediante las sentencias
SQL, estas sentencias se encargan de crear el sistema o esquema de la base
los ficheros donde se almacenan los datos y las vistas de los usuarios.
Los programas de aplicación se implementan utilizando lenguajes de 3ra a
4ta generación, partes de estas aplicaciones son transacciones sobre la base
de datos que se incrementan también mediante lenguaje SQL.
La sentencia de este lenguaje se puede embeber en u lenguaje de
programación anfitrión como:
Visual Basic
C++
También se implementan en esta etapa todo los controles de seguridad e
integridad
Conversión y carga de datos: esta etapa es necesaria cuando se esta
reemplazando un sistema antiguo por uno nuevo los datos se cargan desde el
sistema viejo al nuevo directamente a si es necesario se convierten al formato
que requiera el nuevo sistema mas la base de dato y luego se cargo a esta
etapa se lo suele llamar “migración”
Etapa de prueba: en esta etapa se prueba y valida el sistema con los
requisitos específicos por los usuarios. Para ello se debe diseñar una batería
9. de test con datos reales que se deben llevar a cabo de Manero metódica y
rigurosa.
Si la fase de prueba se lleva a cabo correctamente descubrirá los errores los
programas de aplicación y e la estructura de la base e datos
Mantenimiento: una vez que el sistema esta probado e implementado se
pone en marcha. El sistema esta ahora en la fase de mantenimiento
Modelo Entidad / Relación
Modelaje
Es el proceso mediante el cual podemos identificar las propiedades
dinámicas o estáticas de un dominio de aplicación con mira a su
transformación en un diseño implementable en un sistema computarizado es
el plasmar los requerimientos de los usuarios en un diagrama para poder
implementarlo.
REQUERIMIENTO
______
______
______
______
SISTEMA DE FACTURACIÓN
DISEÑO
FISICO
DISEÑO LOGICO
Entidad
Es el objeto sobre el cual se requiere mantener o almacenar información.
Relación
Es la asociación significativa y establece entre dos entidades.
FACTURA
CLIENTE
Atributo
Son las propiedades que describen o califican una entidad. Ejemplo: entidad
CLIENTE
Las entidades se las representa mediante cajas donde se las coloca con letra
MAYUSCULA.
PERSONA
10. Las relaciones se representan con líneas que conectan las cajas de las
entidades.
origen de
PEDIDOS
CLIENTE
originado por
Los atributos se incluyen dentro de las cajas de las entidades y se escriben
con MINUSCULA.
CLIENTE
código
nombre
dirección
teléfono
ENTIDAD
Se puede considerar entidades a los sujetos, objetos, eventos a los lugares y a
las abstracciones.
SUJETO:
Personas y organizaciones que originan transacciones. Ejemplos:
Empleado, Cliente, Proveedor.
OBJETOS:
Entes tangibles. Ejemplos:
Producto, artículo
EVENTOS:
Son transacciones originadas por sujetos que afectan a los objetos.
Ejemplos:
Pedido, ajustes, calificación
LUGARES:
La ubicación de sujetos y objetos. Ejemplos:
Ciudad, país, bodega
ABSTRACCIONES:
Son conceptos empleados para clasificar, calificar o medir otras
entidades. Ejemplos:
11. Tipo de cliente, tipo de cuenta, unidad de medida.
RELACIONES
Las relaciones tienen tres propiedades o características:
Primer grado o Cardinalidad
UNO A UNO
UNO A MUCHOS
MUCHOS A MUCHOS
Segundo grado o Opcional
Es la partición obligatoria u opcional de la entidad en la relación.
Puede
OPCIONAL
debe
OBLIGATORIA
Tercer grado o Leyenda
Es una expresión que describe el rol de cada entidad en la relación.
tiene
EMPLEADO
DEPARTAMENTO
pertenece
leyendas
COMO SE LEE EL GRADO O CARDINALIDAD
UNO A MUCHOS
B
A
Una instancia de la entidad A se relaciona con una o más de la instancia B
EMPLEADO
DEPARTAMENTO
12. Un departamento puede estar compuesto por uno o varios empleados y un
empleado pertenecen a un solo departamento.
MUCHOS A MUCHOS
B
A
Una instancia de la entidad A se relaciona con una o mas instancias de la
entidad B y una instancia de la entidad B se relaciona con una o más
instancias de A.
ARTICULO
PROVEEDOR
Un proveedor puede se distribuidor de una o mas artículos y un articulo
puede ser distribuido por una o mas proveedores.
UNO A UNO
B
A
Una instancia de la entidad A se relaciona con una instancia de la entidad B
y una instancia de la entidad B se relaciona con una instancia de A.
MUJER
HOMBRE
Un hombre puede ser esposo de una sola mujer y una mujer solo puede ser
esposa de un solo hombre.
13. RELACIÖN RECURSIVA
Una instancia de una entidad se asocia con una instancia de si mismo, es
opcional en los 2 extremos es decir no hay el carácter de obligatorio.
Ejemplo:
Subordinado de
ARTICULO
Jefe de
Un empleado puede ser jefe de uno o mas empleados y un empleado puede
ser subordinado de un y solo un empleado.
Atributos:
Los atributos son empleados para identificar describir calificar o expresar el
estado de una entidad. Toda entidad posee un atributo o combinación de
atributos que se denomina Clave Primaria y que se emplea para diferenciar
cada instancia de las demás. Adicionalmente los atributos pueden ser
obligatorios u opcionales. A los atributos que forman parte de la
Clave Primaria se los identifica anteponiéndoles el signo de números (#).
A los atributos obligatorios se les antepone el asterisco (*).
A los atributos opcionales se les antepone el circulo (0).
Ej.:
CLIENTE
FACTURA
# Numero
* Fecha_coloca
º fecha_pago
#
*
*
*
º
º
codigo
nombre
direcci
fono1
fono2
fono3
En un diagrama entidad relación también pueden agrupar las entidades en
supertipo y en subtipo.
La Supertipo agrupan a 2 o mas entidades Subtipo.
Las Subtipo heredan los atributos de las entidades Supertipo.
14. PROFESOR
#
*
*
*
codigo
nombre
sexo
salario
PERSONA
#
*
*
*
codigo
nombre
sexo
salario
PROFESOR
ALUMNO
#
*
*
*
codigo
nombre
sexo
beca
* salario
ALUMNO
* beca
Cada subtipo puede tener relaciones propias independientes de las del
supertipo.
Los subtipos se representan como cajas dibujadas dentro de la caja del
subtipo.
Problema # 1 Compañía de Botes "San Juan"
"San Juan" es un agente que renta embarcaciones a los clientes por una
determinada tarifa. San Juan NO posee barcos, en lugar de eso los arrienda a
nombre de los propietarios que desean obtener ingresos cuando no usan sus
botes. Por tal servicio "San Juan" cobra una cuota y se especializa en barcos
que pueden usarse para viajes de varios días o semanas.
La embarcación más pequeña tiene 28 pies de largo y la más grande es de 44.
Cada barco esta por completo equipado cuando se rentan; gran parte del
equipo lo proporcionan los propietarios pero "San Juan" agrega otra parte. El
equipo que proporciona el propietario incluye lo que es parte del bote como
radios, brújulas, indicadores de profundidad, otros importantes
instrumentos como estufas y refrigeradoras. Otros que proporciona el
propietario no están instalados como parte del bote, tales complementos
incluyen velas, cuerdas, anclas, bolsas de caucho, salvavidas y en la cabina
platos, cubiertos, utensilios de cocina, etc. "San Juan" aporta el equipo de
consumo que podría considerarse como provisiones, libros de navegación,
tablas de marea y corrientes, jabón, toallas de cocina y artículos similares.
Una importante responsabilidad de "San Juan" es registrar el equipo que esta
en el bote en particular y los que no están fijos en la embarcación.
15. "San Juan" prefiere conservar registros precisos de sus clientes y los viajes
para tener estadísticas de cuales clientes han ido y en que viajes; algunos
itinerarios son más peligrosos que otros; por tal motivo a "San Juan" le
gustaría saber cuales clientes tienen determinada experiencia. En algunos
viajes los clientes solicitan servicio de una tripulación y "San Juan" contrata
por horas a tales personas.
Las embarcaciones necesitan mantenimiento. "San Juan" incluye registros
precisos de todos los procesos y costos de mantenimiento incluyendo
actividades normales como limpieza, cambio de aceite, o reparaciones no
programadas. En algunos casos son necesarias las reparaciones durante un
viaje en tal caso los clientes se comunican por radio con el despachador de
"San Juan" quien determina la mejor opción para hacer la reparación. Para
tomar estas decisiones, los despachadores necesitan información sobre sus
opciones de reparación y antecedentes sobre costos y calidad de la
reparación.
Entidades Principales
Modelo Entidad / Relación Compañía de Botes "San Juan"
Propietario
Equipos
Bote
Cliente
Viajes
Tripulación
Tipo_Equipo
Mantenimiento
Reparación
16. Problema # 2: Tienda de Videos
En una tienda de videos se necesita mantener información de alrededor de
3000 cassettes, cada uno de los cassettes tiene asignado un número. Por cada
película se necesita conocer su título y categoría, por ejemplo comedia,
suspenso, drama, acción, ciencia ficción, etc. Se mantienen algunas copias de
muchas películas. Se le da a cada película una identificación y se mantiene
un seguimiento de lo que contiene cada cassette. Un cassette puede venir en
varios formatos, y una película es agrupada en un solo cassette;
frecuentemente las películas son pedidas de acuerdo a un actor en específico
Tom Cruise y Demmi Moore son los más populares es por eso que se debe
mantener información de los actores que aparece en cada película. No en
todas las películas actúan artistas famosos, a los clientes de la tienda le gusta
conocer datos como el nombre real del actor y su fecha de nacimiento. En la
tienda se mantiene información solo de los actores que aparecen en las
películas que se tiene a disposición. Solo se alquila videos a aquellos que
pertenecen al club de video. Para pertenecer al club de video se debe tener
un buen crédito, por cada miembro del club se mantiene una ficha con su
nombre, teléfono y dirección, cada miembro del club tiene asignado un
número de membresía. Se debe mantener información de todos los cassettes
que el cliente ha alquilado. Cuando un cliente alquila un cassette se debería
conocer el título de la película, fecha en que lo alquiló y la fecha de
devolución.
Entidades Principales
Cassetes
Tipos_peliculas
Actores
Alquiler
Clientes
Pelicula
Modelo Entidad / Relación Tienda de Videos
Cassette
Tipo_Película
Película
Alquiler
Cliente
Actor
17. Problema # 3: Actos Vandálicos
Una cadena de hoteles ha decidido acabar con los clientes que deterioran el
mobiliario del hotel. Quieren guardar en una base de datos los clientes que
han deteriorado o robado muebles y cuáles son estos muebles.
En la base de datos tendremos información de cada hotel (código, dirección
y teléfono), así como un conjunto de habitaciones identificadas por un
número de habitación único para cada hotel y un conjunto de elementos de
mobiliario estándar con un código, descripción y precio, por ejemplo: "silla
de cuero diseño clásico, 98,75
USD.
Después de hacer un inventario, todo el mobiliario de los hoteles está
identificado, es decir, sabemos qué y cuantos elementos de mobiliario hay en
cada habitación de cada hotel. Los muebles pueden cambiar de habitación,
pero no necesitamos guardar la habitación antigua. Para cada habitación,
guardaremos también si es soleada, si tiene
lavabo y si tiene nevera. Cada cliente tiene información personal (DNI,
nombre, etc), y además un historial de sus actos vandálicos: para cada cliente
guardaremos qué muebles y cuántos ha deteriorado. También queremos
saber las estancias que ha hecho cada cliente en los hoteles, guardando en un
único atributo la fecha de llegada y
la de salida, así como la habitación en que se ha alojado. Un cliente puede
alojarse en una misma habitación de hotel en diferentes estancias.
Queremos saber los actos vandálicos (qué y cuantos muebles) que ha hecho
cada cliente en conjunto, independientemente de la habitación y hotel que
se hayan producido.
Queremos saber los actos vandálicos de cada cliente en cada habitación del
hotel.
Entidades Principales
•
•
•
•
Clientes
Hotel
Habitación
Mobiliario
•
•
•
•
Estancias
Actos Vandálicos
Tipo Mueble
Tipo Cliente
Modelo Entidad Relación Actos Vandálicos
18. Tipo_Cliente
Hotel
Clientes
Estancias
Habitación
Actos_Vandálicos
Muebles
Tipo_Muebles
Problema #4: Pinacoteca
El Ministerio de Educación y Ciencia quiere tener información sobre todos
los cuadros que se encuentran en las pinacotecas.
De cada pinacoteca se quiere saber el nombre único, ciudad donde se
encuentra, dirección y extensión en metros cuadrados.. Cada pinacoteca
tiene un conjunto de cuadros de los cuales se quiere guardar el código (único
para todas las pinacotecas), nombre, medidas, fecha en que se pintó y técnica
utilizada para pintarlo.
Cada cuadro es pintado por un único pintor del que queremos saber el
nombre y apellidos, ciudad y país donde nació, fecha de nacimiento y la
fecha de muerte. Un pintor puede tener un único maestro, pero un maestro
puede serlo de varios pintores.
Los pintores pueden pertenecer o no a una escuela de la cual se quiere saber
el nombre asi como el país y fecha en que apareció.
Los pintores pueden tener uno o varios mecenas que los protegen. De los
mecenas queremos saber el nombre y apellidos, país y fecha de nacimiento,
fecha de la muerte y la fecha de inicio y final del soporte que dió al pintor.
Un mecenas puede serlo de varios pintores y un pintor puede tener varios
mecenas en periodos diferentes. Se quiere recoger la relación que existe entre
un pintor y sus mesenas.
19. Maestro
Pinacoteca
Cuadro
Pintor
Escuela
Mecena
Ejemplos de Enunciados
1) Cada orden de compra da lugar a una factura.
ORDEN DE PAGO
FACTURA
2) Un empleado puede o no puede ser vendedor, pero un vendedor es un
empleado.
EMPLEADO
VENDEDOR
3) Un cliente solamente puede enviar una orden de compra al mismo
tiempo, cualquier persona que no tenga una orden pendiente no es un
cliente.
CLIENTE
ORDEN DE
4) Un cliente es un cliente sin importar el número de órdenes de compra
que tenga pendiente hasta la fecha. Cada orden de compra pertenece
solamente a un cliente.
ORDEN DE
CLIENTE
5) Un vendedor puede tener uno o más clientes.
20. 6) Cada producto que tenemos en stock está compuesto de una o más partes,
cada parte es usada en un solo producto.
La estructura de una base de datos es el conjunto de tablas relacionadas.
Normalización
Al realizar procesos sobre las tablas se pueden presentar problemas llamados
ANOMALÍAS que pueden ser de inserción, actualización, eliminación,
etc.…
El proceso que asegura que la tabla este bien estructurada se denomina
NORMALIZACIÓN.
La normalización esta basada en el concepto de formas normales, cada forma
normal tiene un conjunto de reglas que debe ser verificada (1ra forma
normal, 2da forma normal, 3ra forma normal).
Estas formas normales son anidadas, es decir que para una relación esté en
3ra forma normal debe haber pasado por la 2da forma normal, y esta por la
1ra forma normal.
Dependencia Funcional.
La Dependencia Funcional es la relación que existe entre dos atributos.
Ej. X à Y
Dado un valor de X, existe un valor de Y, entonces Y es funcionalmente
dependiente de X.
X
Cod_empleado
01
02
Y
Codigo_empleado
Juan Pérez
Nicolas Vera
21. Claves o Llaves.
Es el atributo que le da la diferenciación a cada tabla, este atributo hace que
no tengamos tuplas o filas repetidas.
#
Cod_cliente
nombre_cliente
001
Juan Pérez
002
Nicolas Vera
003
Nunca repetir
Javier Villota
Dependencia Transitiva.
Es la dependencia que está encadenada.
Dado un valor de X, existe un valor de Y, y dado un valor de Y existe un
valor de Z que es transitivamente dependiente de X.
X
Y
Z
EMPLEADO
X Cod_empleado
nombre_empleado
cod_empleado
Y
001
01
002
Ana Felipe
02
03
Jeanine Leal
03
04
Z
Juan Pérez
Carla Da´Silva
04
DEPARTAMENTO
Cod_departam
nombre_departa
001
Juan Pérez
002
Ana Felipe
22. Primera Forma Normal.
Una tabla esta en primera forma normal si cumple las siguientes
restricciones:
o Las celdas o campos deben tener valores singulares.
o Las entradas de columna o atributo deben ser de la misma clase.
o Cada columna debe tener un nombre único.
o Dos filas o tuplas no pueden ser iguales.
Segunda Forma Normal
Todo atributo no clave depende de un atributo clave.
"Eliminar dependencias parciales a la clave primaria de una tabla.
Tercera Forma Normal
Una relación está en tercera forma normal si está en segunda forma normal y
tiene dependencia transitiva (dependencia encadenada).
Modelo Relacional
Reglas de Transformación del Diagrama Entidad / Relación en el Modelo
Relacional
1. Toda entidad en el diagrama Entidad / Relación se representa como una
tabla separada y sus atributos son las mismas columnas de dicha tabla.
2. Toda relación de uno a muchos se representa replicando las columnas de
la clave primaria de la entidad del lado 1 como columnas extras de la
tabla de la entidad de lado M (Muchos).
Clave Foránea: Es una clave primaria de otra tabla.
A
B
#
3. Toda relación de uno a uno se representa replicando las columnas
componentes de la clave primaria de cada una de las entidades
participantes en la relación como columnas extras en la tabla de la otra.
A
B
#
#
23. 4. Toda relación de muchos a muchos es resuelta con una entidad de
intersección cuya clave primaria es la combinación de las claves de las
entidades intersectadas.
A
B
A
B
#
#
Eo Io
24. lenguajes Relacionales y Comerciales SQL
SQL (Structure Query Languaje)
DML (Data Manipulation Languaje)
Select
Insert
Update
Delete
Trabaja a nivel de datos
o campos.
Maneja datos.
DDL (Definition Data Languaje)
Create
Alter
Drop
Truncate
Trabaja a nivel de
estructuras o tablas.
Maneja Tablas.
TCL (Transacction Control Languaje)
Trabaja con el DML.
Controlan todas las
transacciones.
Commit
RollBack
SENTENCIAS DDL (CREATE, ALTER, DROP, TRUNCATE)
CREATE:
Máximo 30 Caracteres
CREATE TABLE CLIENTE
(
Id_Cliente Number,
Nombre Varchar2(50),
Apellido Varchar2(50),
Dirección Varchar2(80),
Edad
Number
);
1ra Forma
CREATE TABLE FACTURA
( Id_Factura
Number
Num_Fact
Number
Fecha_Factura
Date
Id_Cliente
Number
•
• );
CREATE TABLE CLIENTE
(
Id_Cliente Number PRIMARY kEY,
Nombre Varchar2(50) NOT NULL,
Apellido Varchar2(50) NOT NULL,
Dirección Varchar2(80),
Edad
Number
);
2da Forma
PRIMARY KEY,
NOT NULL,
NOT NULL,
FOREIGN KEY REFERENCES CLIENTE(Id_Cliente),
25. CREATE TABLE DEPARTAMENTO
(
Id_Departamento
Number PRIMARY KEY,
Nombre
Varchar2(30) NOT NULL,
Cant_Empleados
Number ,
Region
Varchar2(50) CHECK (Region IN (‘GYE’,’UIO’,’Insular’))
);
CREATE TABLE EMPLEADO
(
Id_Empleado
Number PRIMARY KEY,
Nombres
Varchar2(30) NOT NULL,
Apellidos
Varchar2(30) NOT NULL,
Cargo
Varchar2(30) CHEK (Cargo IN (‘Gerente’,’Ingeniero’,’Analista’,’Vendedor’)),
Fecha_Ingreso
Date,
Id_Manager
Number FOREIGN KEY REFERENCES EMPLEADO(Id_Empleado),
Id_Dpto
Number FOREIGN KEY REFERENCES DEPARTAMENTO(Id_Departamento)
);
CREATE TABLE CLIENTE
(
Id_Cliente
Number PRIMARY KEY,
Nombres
Varchar2(30) NOT NULL,
Apellidos
Varchar2(30) NOT NULL,
Dirección
Varchar2(80),
Teléfono
Number,
Tipo_Cliente
Varchar2(30) CHECK (Tipo_Cliente IN (‘Normal’,’VIP1’,’VIP2’,’VIP3’)),
Id_Vendedor
Number FOREIGN KEY REFERENCES EMPLEADO(Id_Empleado)
);
CREATE TABLE ORDEN
(
Id_Orden
Number PRIMARY KEY,
Descripción
Varchar2(30) NOT NULL,
Total
Number ,
Id_Cliente
Number FOREIGN KEY REFERENCES CLIENTE(Id_Cliente)
);
26. CONSTRAINTS
•
•
•
•
NOT NULL
PRIMARY KEY
FOREIGN KEY
CHECK
ALTER:
• Adicionar Columnas
ALTER TABLE DEPARTAMENTO
ADD CONSTRAINT Localidad Varchar2(25);
• Eliminar Columnas
ALTER TABLE DEPARTAMENTO
DROP COLUMN Cant_Empleados;
• Adicionar Clave Primaria
ALTER TABLE DEPARTAMENTO
ADD CONSTRAINT PK1 PRIMARY KEY (Id_Departamento);
• Adicionar Clave Foránea
ALTER TABLE ORDEN
ADD CONSTRAINT FK1 FOREIGN KEY (Id_Cliente)
REFERENCES CLIENTE(Id_Cliente);
• Eliminar Clave Primaria y Clave Foránea
ALTER TABLE DEPARTAMENTO
DROP CONSTRAINT PK1;
ALTER TABLE DEPARTAMENTO
DROP CONSTRAINT FK1;
27. DROP:
• Eliminar Tablas
DROP TABLE ORDEN
Observación:
1. Si creo tablas SIN PK y FK puedo crearlas en cualquier orden sin
importar relaciones.
2. Si utilizo ALTER puedo definir PK y FK sin importar el orden de las
tablas.
3. Si deseo eliminar tablas que tengan establecidos PK y FK, primero
debo eliminar las FK(Claves Foráneas), luego PK(Claves Primarias) y
por último procedo a eliminar las tablas en cualquier orden.
4. No puedo eliminar tablas en cualquier orden cuando contengan PK y
FK establecidos.
TRUNCATE:
Elimina los datos de la tabla pero no la estructura, y además se libera espacio
de la base de datos de la definición de la tabla.
No elimina campos solo información.
TRUNCATE TABLE ORDEN
1.- Crear Tablas.
CREATE TABLE CLIENTE
(
Id_Cliente
Number,
Nombre_Completo
Varchar2(50)
Direccion
Varchar2(80)
Telefono1
Number,
Edad
Number
);
NOT NULL,
NOT NULL,
CREATE TABLE ESTADIA
(
Id_Hotel
Number,
Id_Habitacion
Number,
Id_Cliente
Number,
Fecha_Ingreso
Date NOT NULL,
Fecha_Salida
Date NOT NULL,
Observaciones
Varchar2(80)
);
28. CREATE TABLE HABITACION
(
Id_Hotel
Number,
Id_Habitacion
Number,
Soleada
VarChar2(1)
);
NOT NULL,
CREATE TABLE HOTEL
(
Id_Hotel
Number,
Descripción
Varchar2(80),
Dirección
VarChar2(50),
);
2.- Crear Claves Primarias.
ALTER TABLE CLIENTE
ADD CONSTRAINT Cliente_PK PRIMARY KEY(Id_Cliente);
ALTER TABLE ESTADIA
ADD CONSTRAINT Estadia_PK PRIMARY KEY(Id_Hotel,Id_Habitacion,Id_Cliente,Fecha_Ingreso);
ALTER TABLE HABITACION
ADD CONSTRAINT Habitacion_PK PRIMARY KEY(Id_Hotel,Id_Habitacion);
ALTER TABLE HOTEL
ADD CONSTRAINT Hotel_PK
PRIMARY KEY(Id_Hotel);
3.- Crear Claves Foráneas.
ALTER TABLE HABITACION
ADD CONSTRAINT Habitacion_Hotel_FK FOREIGN KEY(Id_Hotel)
REFERENCES HOTEL(Id_Hotel);
ALTER TABLE ESTADIA
ADD CONSTRAINT Estadia_Clientel_FK FOREIGN KEY(Id_Cliente)
REFERENCES CLIENTE(Id_Cliente);
29. ALTER TABLE ESTADIA
ADD CONSTRAINT Estadia_Habitacion_FK FOREIGN KEY(Id_Hotel,Id_Habitacion)
REFERENCES HABITACION(Id_Hotel,Id_Habitacion);
4.- Crear Constraints CHECK.
ALTER TABLE HABITACION
ADD CONSTRAINT Habitacion_CK1 CHECK (Soleada IN (‘S’,’N’));
5.- Eliminar Claves Foráneas.
DROP CONTRAINT Habitación_Hotel_FK
DROP CONTRAINT Estadia_Cliente_FK
DROP CONTRAINT Estadia_Habitacion_FK
6.- Eliminar Claves Primarias.
DROP CONTRAINT Hotel_PK
DROP CONTRAINT Habitacion_PK
DROP CONTRAINT Estadia_PK
DROP CONTRAINT Cliente_PK
7.- Eliminar Tablas.
DROP TABLE CLIENTE
DROP TABLE ESTADIA
DROP TABLE HABITACION
DROP TABLE HOTEL
30. SENTENCIAS DML (INSERT, UPDATE, SELECT, DELETE)
EQUIPOS
Id_equipo
1
2
3
4
5
GRUPOS
nombre
Brasil
Ecuador
Alemania
Argentina
Inglaterra
id_jugador
H
A
A
C
D
Id_grupo
A
B
C
D
E
JUGADORES
Id_jugador
1
2
3
nombre
Grupo A
Grupo B
Grupo C
Grupo D
Grupo E
POSICIÓN
nombre
Mendez
Ronaldo
Dida
id_equipo
2
1
1
id_posición
3
4
1
equipo1
equipo2
fecha
Id_posición
1
2
3
4
PARTIDOS
Id_partido
estadio
INSERT:
INSERT INTO JUGADORES
VALUES (4,’Ballack’,3,3);
COMMIT;
Nota: Puedo hacer muchos INSERT y colocar un solo COMMIT.
DELETE:
DELETE FROM EQUIPO
WHERE Id_Equipo=3;
COMMIT;
nombre
arquero
defensa
medio
delantero
31. SELECT:
Mostrar el Nombre de todos los equipos y sus respectivos grupos.
SELECT *
FROM EQUIPOS;
SELECT Nombre, Id_Grupo
FROM EQUIPOS;
Mostrar el Nombre de los Jugadores del equipo con Código 1,
SELECT Nombre
FROM EQUIPOS
WHERE Id_Equipo = 1 ;
CLÁUSULA WHERE:
Operadores Aritméticos.
= Igualdad
<> Desigualdad
> Mayor que
< Menor que
>= Mayor o igual que
<= Menor o igual que
Seleccionar los jugadores que tengan más de 30 años.
SELECT *
FROM JUGADORES
WHERE Edad > 30;
Seleccionar el Nombre de los Equipos que han sido campeones.
SELECT Nombre
FROM EQUIPOS
WHERE Campeon = ‘S’;
32. Operadores Lógicos (AND, OR).
Seleccionar los Equipos que no han sido campeones mundiales y que
sean del continente de América.
SELECT Nombre
FROM EQUIPOS
WHERE Campeon = ‘N’ AND Continente =’America’;
Seleccionar el Nombre y el salario de los Empleados cuya Comisión sea
igual a 50 o menor o igual a 100.
SELECT Nombre, Salario
FROM EMPLEADOS
WHERE Comision >= 50 AND Comision <= 100;
Seleccionar el Nombre y el Apellido de los Empleados que ganen entre
500 y 1000 o cuya comisión sea nula.
SELECT Nombre, Apellido
FROM EMPLEADOS
WHERE (Salario >= 500 AND Salario <= 1000) OR (Comision IS NULL);
Operadores Espaciales.
IN
Lista de Valores (500, 800, 1000).
BETWEEN
Valores entre un rango mayor y uno
Menor (500 - 1000).
LIKE
Patrones en cadena de Caracteres.
%
Cero o más Caracteres.
_
Un solo Caracter.
IS NULL
Valores Nulos.
NOT
Negación.
Seleccionar los Empleados que gane 600, 1000 u 800 y cuyo nombre
empiece con la letra J.
SELECT *
FROM EMPLEADOS
WHERE Salario IN(600,1000,800) AND Nombre LIKE ‘J%’;
33. Seleccionar el Nombre y el Salario de los Empleados que ganen más de
800, que no tengan comisión nula y que su apellido en su 2da letra
contenga la ‘O’ o que sean del Departamento 10.
SELECT Nombre, Salario
FROM EMPLEADOS
WHERE (Salario >800 AND Comision NOT IS NULL AND Apellido LIKE ‘_O%’)
OR Departamento = 10 ;
EQUI-JOIN:
Uniones o Igualdades. Si utilizo n tablas tendré n-1 Joins.
Si ejecuto:
7 X 3 = 21 Registros
SELECT *
FROM EMPLEADO, DEPARTAMENTO;
Producto Cartesiano
Si ejecuto:
SELECT *
FROM EMPLEADO, DEPARTAMENTO
WHERE Id_Departamento = Departamento;
7 Registros
Para evitar ambigüedades se utiliza alias:
Alias
SELECT *
FROM EMPLEADO A, DEPARTAMENTO B
WHERE A.Id_Departamento = B.Departamento;
Visualizar el nombre de los Empleados, su cargo y su Salario de aquellos
empleados que sean jefes y su Comisión este entre 50 y 200.
SELECT A.Nombre , B.Descripción , A.Salario
FROM EMPLEADO A , CARGO B
WHERE B.Id_Cargo = A.Cargo AND B.Descripcion = ‘Jefes’
AND A.Comisión BETEWEEN (500, 1000);
34. Mostrar el Nombre y el Cargo de los Empleados cuyo Salario sea 1000,
800 ó 500, que trabajen en el Departamento de Operaciones y cuyo
Cargo sea Gerente.
SELECT E.Nombre , C.Descripción
FROM EMPLEADO E , CARGO C, DEPARTAMENTO D
WHERE E.Cargo = C.Id_Cargo AND E.Departamento = D.Id_Departamento
AND E.Salario IN (1000, 500, 800) AND D.Nombre = ‘Operaciones’
AND C.Descripción = ‘Gerente’;
NON-EQUI-JOIN:
Se utiliza cuando no existen ninguna relación entre dos tablas.
Visualizar el Nombre de los Empleados, su Salario e indicar el nivel de
su Salario.
SELECT A.Nombre, A.Salario
FROM EMPLEADO E, NIVELES-SALARIO NS
WHERE A.Salario BETWEEN B.Nivel_Bajo AND B.Nivel_Alto
Resultado
L. López
M. Ruiz
J. Mora
M. Aviléz
P. Plúas
A. Rojas
P. Paredes
5000
2500
2500
1500
1500
800
800
B
B
B
C
C
D
D
OUTER-JOIN:
Es utilizado cuando realizamos consultas entre dos tablas relacionadas pero
en su clave foránea pueden haber valores nulos, es decir que haya
inconsistencia de datos.
Visualizar el nombre del Empleado y su Departamento así no exista su
Departamento.
35. Resultado EQUI-JOIN
L. López
M. Ruiz
J. Mora
P. Plúas
A. Rojas
P. Paredes
Marketing
Ventas
Sistemas
Operaciones
Operaciones
Operaciones
SELECT A.Nombre, B.Nombre
FROM EMPLEADO E, DEPARTAMENTO D
WHERE A.Id_Departamento(+) = Id_Dep
Resultado
L. López
M. Ruiz
J. Mora
M. Aviléz
P. Plúas
A. Rojas
P. Paredes
Marketing
Ventas
Sistemas
Operaciones
Operaciones
Operaciones
SELF-JOIN:
Se aplica cuando tengo una relación de recursividad.
Mostrar el Nombre de los Empleados con el Nombre de sus respectivos
Jefes.
SELECT A.Nombre, B.Nombre
FROM EMPLEADO E, EMPLEADO B
WHERE A.Id_Manager = B.Id_Emp
Resultado
L. López
M. Ruiz
J. Mora
M. Aviléz
P. Plúas
A. Rojas
P. Paredes
L. López
L. López
M. Ruiz
J. Mora
J. Mora
J. Mora
36. SUB - QUERIES:
Visualizar el Nombre de los Empleados y sus Salarios de aquellos
empleados que tengan igual comisión que M. Aviléz.
SELECT C.Nombre, C.Salario
FROM EMPLEADOS C
WHERE C.Comision = ( SELECT A.Comision
FROM EMPLEADOS A
WHERE A.Nombre = ‘A. Aviléz’
)
Mostrar el Nombre y el cargo de los Empleados que trabajen en el
mismo Departamento en el cual trabaja el empleado A. Rojas
SELECT E.Nombre, C.Nombre
FROM EMPLEADOS C, CARGO C
WHERE E.Id_Cargo = C.Id_Cargo
AND C.Id_Cargo = ( SELECT E2.Id_Cargo
FROM EMPLEADOS E2
WHERE E2.Nombre = ‘A. Aviléz’
)
BASE DE DATOS DISTRIBUIDA
Es una base de datos construida sobre un red computacional y no sobre una
maquina aislada, la información constituye una base de datos distribuida
esta almacenada en diferentes sitios de la red, y las aplicaciones que se
ejecutan accesando datos en distintos sitios.
Una base datos distribuidas entonces es una colección de datos que
pertenecen lógicamente a un solo sistemas pero se encuentran físicamente en
varios sitios de la red.
La base de datos distribuida puede ser homogénea y heterogénea
Base de datos homogénea todos los sitios tienen los mismos sistemas de
gestión de bases de datos. Son consientes de la existencia de los demás sitios
y cooperan en el procesamiento de las solicitudes
Base de datos heterogénea cada sitio puede tener un sistema de gestión de
base de datos distinto así como el esquema puede ser diferente, puede ser
que algunos sitios no conozcan a otros, puede ser que solo ofrezcan
facilidades limitadas para la cooperación de procesamiento de transacciones.
Principios fundamentales de las bases de datos distribuidas
Regla 0.- desde el punto de vista del usuario un sistema distribuido deberá
ser idéntico a un sistema son distribuido
Regla 1.- autonomía local, deberá ser autónomo y no depender de una base
de datos que se encuentre en otro sitio de la red en otra ubicación geográfica
37. Regla 2.- no dependencia de un sitio central, no se debe depender de un solo
servidor para que no sea vulnerable y nadie puede accesar a la base de datos
Regla 3.- operación continua. Si se daña un punto de la base de datos no se
debería dañar solo se paraliza ese punto hasta realizar la operación de
mantenimiento de la base de datos.
Regla 4.- independencia de localización, para el usuario es transparente
conocer donde están los datos
Regla 5.- independencia de fragmentación de una gran tabla solo se utilizan
ciertos datos los mismos que están compartidos.
Regla 6.- independencia de la replica, cuando se hacen fragmentos se deben
replican la información para actualizar los datos los cuales deben ser
trasparentes para el usuario.
Regla 7.- procesamiento distribuid por consulta se puede tener diferentes
bloques que forman sistemas distribuidos para ello se crean tablas
intermedias que pueden acceder solo a los datos requeridos.
Regla 8.-manejo distribuido de transacciones, una transacción tiene muchas
implicaciones para actualizar los datos los cuales se replican para poder
interactuar con muchas plataformas o bases de datos al mismo tiempo
Regla 9.- implementación con respecto al equipo, si importar el equipo el
sistema debe funcionar igual, es decir debe tener el mismo tiempo de
respuesta
Regla 10.- no debe depender de un sistema operativo
Regla 11.- independencia con respecto a la red. No debe importar el tipo de
de red
Regla 12.- independencia con respecto al sistema de gestión de base de datos.
Se puede actuar en un sistema distribuido de base de datos heterogéneo
DATA ARE HOUSE
Es una colección de datos históricos acumulados de solo lectura.
Los datos pueden ser obtenidos de otras fuentes y generalmente son
sumarizadas y almacenadas por periodos de tiempo extenso (años) forman
parte del sistema de toma de decisiones gerencial.