Seminario de Excel Avanzado

Anuncio
Bases de Datos y el Modelo Entidad-Relación
Todo buen curso necesita empezar con algunos conceptos básicos para el mejor entendimiento del mismo,
por lo tanto empezaremos con las definiciones que involucran a las bases de datos.
Dato:
Conjunto de caracteres con algún significado, pueden ser numéricos, alfabéticos, o alfanuméricos.
Información:
Es un conjunto ordenado de datos los cuales son manejados según la necesidad del usuario, para que un
conjunto de datos pueda ser procesado eficientemente y pueda dar lugar a información, primero se debe
guardar lógicamente en archivos.
Conceptos básicos de archivos computacionales.
Campo:
Es la unidad más pequeña a la cual uno puede referirse en un programa. Desde el punto de vista del
programador representa una característica de un individuo u objeto.
Registro:
Colección de campos de iguales o de diferentes tipos.
Archivo:
Colección de registros almacenados siguiendo una estructura homogénea.
Base de datos:
Es una colección de archivos interrelacionados, son creados con un DBMS. El contenido de una base de
datos engloba a la información concerniente(almacenadas en archivos) de una organización, de tal manera
que los datos estén disponibles para los usuarios, una finalidad de la base de datos es eliminar la
redundancia o al menos minimizarla. Los tres componentes principales de un sistema de base de datos son
el hardware, el software DBMS y los datos a manejar, así como el personal encargado del manejo del
sistema.
Sistema Manejador de Base de Datos. (DBMS)
Un DBMS es una colección de numerosas rutinas de software interrelacionadas, cada una de las cuales es
responsable de una tarea específica. El objetivo primordial de un sistema manejador base de datos es
proporcionar un contorno que sea a la vez conveniente y eficiente para ser utilizado al extraer, almacenar
y manipular información de la base de datos. Todas las peticiones de acceso a la base, se manejan
centralizadamente por medio del DBMS, por lo que este paquete funciona como interfase entre los
usuarios y la base de datos.
Objetivos de la Base de Datos
Los sistemas de base de datos se diseñan para manejar grandes cantidades de información, la
manipulación de los datos involucra tanto la definición de estructuras para el almacenamiento de la
información como la provisión de mecanismos para la manipulación de la información, además un
sistema de base de datos debe de tener implementados mecanismos de seguridad que garanticen la
integridad de la información, a pesar de caídas del sistema o intentos de accesos no autorizados.
Un objetivo principal de un sistema de base de datos es proporcionar a los usuarios finales una visión
abstracta de los datos, esto se logra escondiendo ciertos detalles de como se almacenan y mantienen los
datos.
Objetivos de los sistemas de bases de datos
Los objetivos principales de un sistema de base de datos es disminuir los siguientes aspectos:
Redundancia e inconsistencia de datos.
Puesto que los archivos que mantienen almacenada la información son creados por diferentes tipos de
programas de aplicación existe la posibilidad de que si no se controla detalladamente el almacenamiento,
se pueda originar un duplicado de información, es decir que la misma información sea más de una vez en
un dispositivo de almacenamiento. Esto aumenta los costos de almacenamiento y acceso a los datos,
además de que puede originar la inconsistencia de los datos - es decir diversas copias de un mismo dato
no concuerdan entre si -, por ejemplo: que se actualiza la dirección de un cliente en un archivo y que en
otros archivos permanezca la anterior.
Dificultad para tener acceso a los datos.
Un sistema de base de datos debe contemplar un entorno de datos que le facilite al usuario el manejo de
los mismos. Supóngase un banco, y que uno de los gerentes necesita averiguar los nombres de todos los
clientes que viven dentro del código postal 78733 de la ciudad. El gerente pide al departamento de
procesamiento de datos que genere la lista correspondiente. Puesto que esta situación no fue prevista en el
diseño del sistema, no existe ninguna aplicación de consulta que permita este tipo de solicitud, esto
ocasiona una deficiencia del sistema.
Aislamiento de los datos.
Puesto que los datos están repartidos en varios archivos, y estos no pueden tener diferentes formatos, es
difícil escribir nuevos programas de aplicación para obtener los datos apropiados.
Anomalías del acceso concurrente.
Para mejorar el funcionamiento global del sistema y obtener un tiempo de respuesta más rápido, muchos
sistemas permiten que múltiples usuarios actualicen los datos simultáneamente. En un entorno así la
interacción de actualizaciones concurrentes puede dar por resultado datos inconsistentes. Para prevenir
esta posibilidad debe mantenerse alguna forma de supervisión en el sistema.
Problemas de seguridad.
La información de toda empresa es importante, aunque unos datos lo son más que otros, por tal motivo se
debe considerar el control de acceso a los mismos, no todos los usuarios pueden visualizar alguna
información, por tal motivo para que un sistema de base de datos sea confiable debe mantener un grado
de seguridad que garantice la autentificación y protección de los datos. En un banco por ejemplo, el
personal de nóminas sólo necesita ver la parte de la base de datos que tiene información acerca de los
distintos empleados del banco y no a otro tipo de información.
Problemas de integridad.
Los valores de datos almacenados en la base de datos deben satisfacer cierto tipo de restricciones de
consistencia. Estas restricciones se hacen cumplir en el sistema añadiendo códigos apropiados en los
diversos programas de aplicación.
Modelos de datos.
Para introducirnos en este tema, empezaremos definiendo que es un modelo.
modelo:
Es una representación de la realidad que contiene las características generales de algo que se va a realizar.
En base de datos, esta representación la elaboramos de forma gráfica.
¿Qué es modelo de datos?
Es una colección de herramientas conceptuales para describir los datos, las relaciones que existen entre
ellos, semántica asociada a los datos y restricciones de consistencia.
Los modelos de datos se dividen en tres grupos:



Modelos lógicos basados en objetos.
Modelos lógicos basados en registros.
Modelos físicos de datos.
Modelos lógicos basados en objetos.
Se usan para describir datos en los niveles conceptual y de visión, es decir, con este modelo
representamos los datos de tal forma como nosotros los captamos en el mundo real, tienen una capacidad
de estructuración bastante flexible y permiten especificar restricciones de datos explícitamente. Existen
diferentes modelos de este tipo, pero el más utilizado por su sencillez y eficiencia es el modelo EntidadRelación.
* Modelo Entidad-Relación.
Denominado por sus siglas como: E-R; Este modelo representa a la realidad a través de entidades, que
son objetos que existen y que se distinguen de otros por sus características, por ejemplo: un alumno se
distingue de otro por sus características particulares como lo es el nombre, o el numero de control
asignado al entrar a una institución educativa, así mismo, un empleado, una materia, etc. Las entidades
pueden ser de dos tipos:

Tangibles :
Son todos aquellos objetos físicos que podemos ver, tocar o sentir.

Intangibles:
Todos aquellos eventos u objetos conceptuales que no podemos ver, aun sabiendo que existen,
por ejemplo: la entidad materia, sabemos que existe, sin embargo, no la podemos visualizar o
tocar.
Las características de las entidades en base de datos se llaman atributos, por ejemplo el nombre, dirección
teléfono, grado, grupo, etc. son atributos de la entidad alumno; Clave, número de seguro social,
departamento, etc., son atributos de la entidad empleado. A su vez una entidad se puede asociar o
relacionar con más entidades a través de relaciones.
Entidades.
Una entidad es un objeto que tiene significado o importancia, cuya información necesito conocer.
Otras definiciones:
Un objeto de interés al negocio
Una entidad es una clase o categoría de algo
Una entidad es el nombre de una cosa
Por ejemplo, para identificar las entidades en el contexto de una administración de personal en una
empresa, las entidades podrían ser:
Empleado
Departamento
Proyecto
Atributos
Los atributos describen las entidades y son las piezas específicas de información que necesitamos
conocer. Por ejemplo, posibles atributos para la entidad empleado serían:
Nombre
Fecha nacimiento
Sueldo
Rut
Para la entidad Departamento, serían:
Nombre Depto
Localización
Abreviación
Una entidad deber tener atributos que necesiten ser conocidos desde el punto de vista de los
requerimientos, o no es una entidad dentro del alcance de los requerimientos planteados.
Instancias.
Cada entidad debe tener múltiples ocurrencias o instancias. Por ejemplo, la entidad Empleado, tiene una
ocurrencia (o instancia) por cada empleado en la empresa. Cada instancia de la entidad, tiene valores
específicos para los atributos de la entidad.
Nombre de la
Entidad
EMPLEADO
Ÿ
Ÿ
Ÿ
Atributos de la
Entidad
Nombre
Fecha
Nacimiento
Sueldo
Juan Bravo
27/10/73Miguel Plaza
Jorge Ulloa
300.00030/04/69
800.00029/06/74
350.000
instancias de
la Entidad
Observaciones:
Las instancias a menudo son confundidas con las entidades.
Una entidad es una clase o categoría de algo, por ejemplo EMPLEADO
Una instancia es una "cosa" específica, por ejemplo, el empleado Juan Bravo.
Llave primaria
Cada instancia debe ser únicamente identificable de otra instancia de la misma entidad. Un atributo o
conjunto de atributos que identifican únicamente una entidad es llamado Llave Primaria.Una entidad,
cuyas instancias no pueden ser identificables de manera única, se conoce como entidad débil.
Una llave primaria, puede estar compuesta de uno o más atributos, en este último caso se llama llave
compuesta.
Relaciones
Una relación es una asociación bi-direccional entre dos entidades, o entre una entidad consigo mismo.
Ejemplo, la relación entre la entidad INSTRUCTOR y CURSO es:
Cada CURSO puede ser impartido por sólo un INSTRUCTOR.
Cada INSTRUCTOR puede ser asignado a uno a más cursos.
Grado de opcionalidad:
Opcional: Puede ser.
Obligatorio: Debe ser
Grado de cardinalidad:
uno o más
uno y solo uno
Ejemplos,
1) Empleado-Departamento
- cada EMPLEADO debe ser asignado a uno y sólo un DEPARTAMENTO
- cada DEPARTAMENTO puede ser responsabilidad de uno o más EMPLEADOs
- cada EMPLEADO puede ser asignado a una o más ACTIVIDADES
- cada ACTIVIDAD debe ser desarrollada por uno o más EMPLEADOs
EMPLEADO
N
M
Desarrolla
N
Asignado
1
DEPARTAMENTO
ACTIVIDAD
2) Cursos en Universidad
- Se dictan cursos semestrales (llaves primarias: semestre, año)
- Los curso los dicta sólo un profesor (llave primaria: NombreP )
- Los profesores pueden dictar mas de un curso (distinto) por semestre
- Los profesores potencialmente pueden dictar varios cursos.
Año
Semestre
NombreP
Sem-año
Profesor
Semestre
1
Ofrece
N
N
M
Puede_ Impartir
Se_ofrece_durante
M
N
Curso
CodCurso
Pero para entender mejor esto, veamos un ejemplo:
Consideremos una empresa que requiere controlar a los vendedores y las ventas que ellos realizan; de este
problema determinamos que los objetos o entidades principales a estudiar son el empleado (vendedor) y
el artículo (que es el producto en venta), y las características que los identifican son:
Empleado:
Nombre
Puesto
Salario
R.F.C.
Artículo:
Descripción
Costo
Clave
La relación entre ambas entidades la podemos establecer como Venta.
Bueno, ahora nos falta describir como se representa un modelo E-R gráficamente, la representación es
muy sencilla, se emplean símbolos, los cuales son:
Símbolo
Representa
ENTIDAD
RELACION
ATRIBUTOS
LIGAS
Así nuestro ejemplo anterior quedaría representado de la siguiente forma:
Ejercicios
Realizar un diagrama Entidad-Relación para las siguientes situaciones.
1) Compañía de capacitación
"Soy el administrador de una compañía de capacitación que provee cursos en técnicas de
administración. Enseñamos muchos cursos, cada uno de los cuales tiene un código, un nombre y
un precio. Introducción a Internet y Programación Java son dos de nuestros más populares cursos.
Cursos se dictan entre uno a cuatro días. Un instructor puede enseñar varios cursos. Nosotros
registramos el nombre y número de teléfono de los profesores. Cada curso es enseñado por sólo un
instructor. Creamos un curso y luego le asignamos un profesor. Los estudiantes pueden tomar
varios cursos a la vez, y muchos de ellos lo hacen. También registramos el nombre y teléfono de
cada estudiante. Algunos de nuestros estudiantes e instructores no nos dan sus números
telefónicos."
2) Vendedores con experiencia
"Tenemos estos vendedores en terreno, tratando de vender nuestros productos a la gente de su
región. El problema es que algunas de nuestras cuentas nuevas son firmas realmente muy
especializadas, y algunos de los vendedores que tenemos no están capacitados para atenderlos
adecuadamente.
Así que necesitamos alguna manera de clasificar a estos clientes, y mantener un registro de
cuales empleados tienen capacitación en esas áreas, para poder mandar a alguien donde el cliente
que tenga un mayor grado de conocimiento en ese negocio, así evitaremos que él trasmita una
mala imagen y nosotros como empresa."
3) Compañía de Videos
"Soy el propietario de una pequeña tienda de videos. Tenemos alrededor de 3.000 cintas de las
cuales necesitamos mantener su estado.
Cada uno de nuestras cintas tiene un número de identificación. Para cada película, necesitamos
conocer su título y categoría (comedia, suspenso, drama, acción, guerra, etc.)Tenemos múltiples
copias de muchas de nuestras películas. A cada película le asignamos un identificador y le
asociamos la cinta que la contiene. Una cinta puede ser formato Beta o VHS. Siempre tenemos al
menos una cinta para cada película que nosotros rastreamos, y cada cinta es siempre una copia de
una única película. Nuestras cintas son de larga duración y no tenemos películas que requieran
múltiples cintas.
Frecuentemente nos preguntan por películas con actores populares específicos. Así que
deseamos registrar las películas donde están los actores de moda. No todas nuestras películas
tienen actores famosos o de moda. Clientes desean conocer de cada actor su nombre real y fecha
de cumpleaños. Sólo registramos los actores que aparecen en películas de nuestro inventario.
Tenemos cientos de clientes. Sólo arrendamos videos a gente asociada a nuestro video-club. Para
cada socio, registramos su nombre, apellido, teléfono, dirección. Y, por supuesto cada socio tiene
su número de socio.
Luego, necesitamos conocer que cinta ha retirado cada cliente. Un cliente puede retirar varias
cintas al mismo tiempo. Sólo registramos los arriendos actuales, no los históricos."
4) Servicio de Radiotaxis
"El usuario es el gerente de un servicio de taxis de gran escala.
Hay setecientos taxis que manejan alrededor de mil cuatrocientos choferes en dos turnos.
La ciudad donde operan está dividida en novecientas áreas cuadradas, cada una consistente de
un número de calles. Todas las calles son rectas y van de este a oeste o de norte a sur. Una calle
puede estar en más de una área. Los nombres de las calles son únicos.
A cada chofer se le asigna un taxi y un área específica cuando llega a trabajar. El chofer se
reporta a la Central de Control de Taxis por radio cuando toma un pasajero ("taxi 47, en uso") y
cuando deja un pasajero ("taxi 47, disponible") El chofer también informa cambios de área de esta
manera ("taxi 47, área 13")
El sistema es responsable de las siguientes operaciones:
Ubicar el área, dados los nombre de dos calles que se interceptan;
Ubicar un taxi disponible en una área en particular;
Determinar cuántos taxis están en cada área, el promedio de taxis por área, el área con
mayor número de taxis y el área con el menor número de taxis;
Mantener un registro del número total de taxis "en uso" y disponibles"
Ubicar un chofer dado su nombre; y
Calcular el porcentaje actual de taxis "disponibles"
5) Cadena de negocios
“Mire, hace cinco años que Mamá y yo empezamos esta pequeña tienda de alimentos naturales, y ahora
vea ¡tenemos cinco! ¡Y en tres estados diferentes!
“Bueno, como se puede imaginar, se nos está haciendo un gran problema el controlar las cosas. Siempre
ocurre que en una de las tiendas se acaba algún ítem, mientras que en la otra rebalsamos del mismo ítem.
“¡Y los empleados!. Antes éramos Mamá y yo, Ahora tenemos otros seis, y ni siquiera podemos recordar
quien trabaja donde.
“Una cosa que definitivamente necesitamos saber es la cantidad disponible de cada ítem en cada tienda.
La cantidad que se ha perdido también sería útil. También tenemos que imprimir una lista de precios con
todos los ítems que cada tienda vende, para saber por cuanto venderlos - nos gusta mantener los precios
iguales en todas las tiendas.
“Tenemos que mantener un registro de los nombres y números de teléfono de los empleados, también, y
necesitamos saber en que estado viven para poder calcular sus impuestos correctamente. (ejemplo de
USA, con impuestos diferentes por estado)“y tenemos que mantener un registro del numero total de los
diferentes ítems, el numero de tiendas en cada estado, el numero de empleados en cada tienda, y el
numero total de empleados, para así poder imprimir todo esto en el informe anual.
Modelos lógicos basados en registros.
Se utilizan para describir datos en los niveles conceptual y físico. Este modelo utiliza registros e
instancias para representar la realidad, así como las relaciones que existen entre estos registros (ligas) o
apuntadores. A diferencia de los modelos de datos basados en objetos, se usan para especificar la
estructura lógica global de la base de datos y para proporcionar una descripción a nivel más alto de la
implementación.
Los tres modelos de datos más ampliamente aceptados son:



Modelo Relacional
Modelo de Red
Modelo Jerárquico
* Modelo relacional.
En este modelo se representan los datos y las relaciones entre estos, a través de una colección de
tablas, en las cuales los renglones (tuplas) equivalen a los cada uno de los registros que contendrá la base
de datos y las columnas corresponden a las características(atributos) de cada registro localizado en la
tupla;
Considerando nuestro ejemplo del empleado y el artículo:
Tabla del empleado
Ahora te preguntaras ¿cómo se representan las relaciones entre las entidades en este modelo?
Existen dos formas de representarla; pero para ello necesitamos definir que es una llave primaria: Es un
atributo el cual definimos como atributo principal, es una forma única de identificar a una entidad. Por
ejemplo, el RFC de un empleado se distingue de otro por que los RFC no pueden ser iguales.
Ahora si, las formas de representar las relaciones en este modelo son:
1. Haciendo una tabla que contenga cada una de las llaves primarias de las entidades involucradas
en la relación.
Tomando en cuenta que la llave primaria del empleado es su RFC, y la llave primaria del articulo es la
Clave.
La relación de nuestro modelo resulta
RFC
PECJ500922XYZ
MEAN761014ABC
Clave
C001
B300
2. Incluyendo en alguna de las tablas de las entidades involucradas, la llave de la otra tabla.
Incrustamos la llave primaria del artículo en la tabla del empleado:
Nombre
Juan Pérez Cota
Nora Méndez Angel
Puesto
Vendedor
Vendedor
Salario
5000
5000
R.F.C.
PECJ500922XYZ
MEAN761014ABC
Clave
C001
C001
* Modelo de red.
Este modelo representa los datos mediante colecciones de registros y sus relaciones se representan por
medio de ligas o enlaces, los cuales pueden verse como punteros. Los registros se organizan en un
conjunto de gráficas arbitrarias.
Ejemplo:
* Modelo jerárquico.
Es similar al modelo de red en cuanto a las relaciones y datos, ya que estos se representan por medio
de registros y sus ligas. La diferencia radica en que están organizados por conjuntos de arboles en lugar
de gráficas arbitrarias.
Modelos físicos de datos.
Se usan para describir a los datos en el nivel más bajo, aunque existen muy pocos modelos de este tipo,
básicamente capturan aspectos de la implementación de los sistemas de base de datos. Existen dos
clasificaciones de este tipo que son:


Modelo unificador
Memoria de elementos.
Descargar