Sei sulla pagina 1di 37

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.
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 20 $500
Ana Alban 28 $1000
José Mora 30 $1500
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

Interfase de
Procesamiento Motor/Núcleo
Usuario E/S Físicas
de
DBMS S.O
Aplicación Desarrollo de
Aplicaciones

Diccionario de
Datos
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 Sueldo del cliente


Juan Pérez $ 150
Juan Pérez $ 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


• 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)
Validación • Valor de dato entero
• Valores claves o
nulos
• Integridad referencial
• 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 Cliente
.
.
VN

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)
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
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
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.

SISTEMA DE FACTURACIÓN
______
______
REQUERIMIENTO ______
______
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
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:
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 debe

OPCIONAL 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
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.
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
# codigo
# Numero * nombre
* Fecha_coloca * direcci
º fecha_pago * 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.


PROFESOR PERSONA

# codigo # codigo
* nombre * nombre
* sexo * sexo
* salario * salario

PROFESOR
ALUMNO
* salario
# codigo
* nombre ALUMNO
* sexo * beca
* 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.
"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 Tipo_Equipo

Bote Mantenimiento

Cliente Viajes Reparación

Tripulación
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 Actores Clientes


Tipos_peliculas Alquiler Pelicula

Modelo Entidad / Relación Tienda de Videos

Cassette Tipo_Película

Película Actor

Alquiler

Cliente
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 • Estancias
• Hotel • Actos Vandálicos
• Habitación • Tipo Mueble
• Mobiliario • Tipo Cliente

Modelo Entidad Relación Actos Vandálicos


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.
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.


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 Y

Cod_empleado Codigo_empleado

01 Juan Pérez
02 Nicolas Vera
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


Nunca repetir
002 Nicolas Vera

003 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 Juan Pérez 01

002 Ana Felipe 02

03 Jeanine Leal 03

04 Carla Da´Silva 04

Z DEPARTAMENTO

Cod_departam nombre_departa

001 Juan Pérez

002 Ana Felipe


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
# #
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
lenguajes Relacionales y Comerciales SQL

SQL (Structure Query Languaje)

DML (Data Manipulation Languaje)


Select
Insert Trabaja a nivel de datos
Update o campos.
Delete Maneja datos.

DDL (Definition Data Languaje)

Create Trabaja a nivel de


Alter estructuras o tablas.
Drop
Maneja Tablas.
Truncate

TCL (Transacction Control Languaje)


Trabaja con el DML.
Commit Controlan todas las
RollBack transacciones.

SENTENCIAS DDL (CREATE, ALTER, DROP, TRUNCATE)

CREATE: Máximo 30 Caracteres

CREATE TABLE CLIENTE CREATE TABLE CLIENTE


( (
Id_Cliente Number, Id_Cliente Number PRIMARY kEY,
Nombre Varchar2(50), Nombre Varchar2(50) NOT NULL,
Apellido Varchar2(50), Apellido Varchar2(50) NOT NULL,
Dirección Varchar2(80), Dirección Varchar2(80),
Edad Number Edad Number
); );

1ra Forma 2da Forma

CREATE TABLE FACTURA


( Id_Factura Number PRIMARY KEY,
Num_Fact Number NOT NULL,
Fecha_Factura Date NOT NULL,
Id_Cliente Number FOREIGN KEY REFERENCES CLIENTE(Id_Cliente),

• );
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)
);
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;
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) NOT NULL,
Direccion Varchar2(80) NOT NULL,
Telefono1 Number,
Edad Number
);

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)
);
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);
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


SENTENCIAS DML (INSERT, UPDATE, SELECT, DELETE)

EQUIPOS GRUPOS
Id_equipo nombre id_jugador Id_grupo nombre
1 Brasil H A Grupo A
2 Ecuador A B Grupo B
3 Alemania A C Grupo C
4 Argentina C D Grupo D
5 Inglaterra D E Grupo E

JUGADORES POSICIÓN
Id_jugador nombre id_equipo id_posición Id_posición nombre
1 Mendez 2 3 1 arquero
2 Ronaldo 1 4 2 defensa
3 Dida 1 1 3 medio
4 delantero

PARTIDOS
Id_partido equipo1 equipo2 fecha 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;
SELECT:

Æ Mostrar el Nombre de todos los equipos y sus respectivos grupos.

SELECT * SELECT Nombre, Id_Grupo


FROM EQUIPOS; 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 < Menor que


<> Desigualdad >= Mayor o igual que
> Mayor 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’;
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%’;
Æ 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:
SELECT * 7 X 3 = 21 Registros
FROM EMPLEADO, DEPARTAMENTO;

Producto Cartesiano

Si ejecuto:
SELECT *
FROM EMPLEADO, DEPARTAMENTO
7 Registros
WHERE Id_Departamento = Departamento;

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);
Æ 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

L. López 5000 B
Resultado M. Ruiz 2500 B
J. Mora 2500 B
M. Aviléz 1500 C
P. Plúas 1500 C
A. Rojas 800 D
P. Paredes 800 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.
Resultado EQUI-JOIN

L. López Marketing
M. Ruiz Ventas
J. Mora Sistemas
P. Plúas Operaciones
A. Rojas Operaciones
P. Paredes Operaciones

SELECT A.Nombre, B.Nombre


FROM EMPLEADO E, DEPARTAMENTO D
WHERE A.Id_Departamento(+) = Id_Dep

L. López Marketing
M. Ruiz Ventas
Resultado
J. Mora Sistemas
M. Aviléz
P. Plúas Operaciones
A. Rojas Operaciones
P. Paredes 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

L. López
M. Ruiz L. López
Resultado
J. Mora L. López
M. Aviléz M. Ruiz
P. Plúas J. Mora
A. Rojas J. Mora
P. Paredes J. Mora
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
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.

Potrebbero piacerti anche