INFORMATICA 1 Bach BASES DE DATOS

Anuncio
B.D. 1º Bach
INFORMATICA
BASES DE DATOS
1 Bach
1/17
B.D. 1º Bach
INDICE
1. Definiciones básicas ...................................................................................................................................... 3
1.1. Dato ....................................................................................................................................................... 3
1.2. Información ............................................................................................................................................ 3
1.3. Base de datos .......................................................................................................................................... 3
1.4. Abstracción ............................................................................................................................................ 3
1.5. Modelo de base de datos ......................................................................................................................... 3
1.6. Pasos para construir una BD ................................................................................................................... 4
2. Elementos básicos de una BD ........................................................................................................................ 4
2.1. Entidades. ............................................................................................................................................... 4
2.2. Atributos ................................................................................................................................................ 4
2.3. Relación ................................................................................................................................................. 5
3. Modelo E/R ................................................................................................................................................... 5
3.1. Introducción ........................................................................................................................................... 5
3.2. Entidades. ............................................................................................................................................... 5
3.3. Relaciones .............................................................................................................................................. 5
3.4. Cardinalidad ........................................................................................................................................... 6
3.5. Clasificación de las relaciones ................................................................................................................ 6
3.6. Diccionario de Datos .............................................................................................................................. 7
3.7. Metodología de diseño ............................................................................................................................ 7
3.8. ejemplo de E/R completo ........................................................................................................................ 8
4. Implementación en el ordenador .................................................................................................................... 9
4.1. Intro ....................................................................................................................................................... 9
4.2. Transformación. ..................................................................................................................................... 9
4.4. Tipos de datos ...................................................................................................................................... 11
4.5. Pasos para la resolución de los ejercicios. ............................................................................................. 11
4.6. Ejemplo esquema final en el ordenador................................................................................................. 11
4.7. Planificación y DD. .............................................................................................................................. 12
4.8. Ejemplos de transformación.................................................................................................................. 13
5. Ejercicios .................................................................................................................................................... 14
2/17
B.D. 1º Bach
Ejemplos de bases de datos comerciales son
MySQL, SQLServer, DBase y Access. Las hojas de
cálculo como Excell, pueden considerarse bases de
datos de propósito específico.
1. DEFINICIONES BÁSICAS
1.1. DATO
Por DATOS entendemos hechos conocidos
que pueden registrarse.
Un dato no dice nada sobre las cosas y por
si mismo no tiene ninguna relevancia. La toma de
decisiones utilizará los datos, pero estos nunca dirán
lo que hay que hacer, no dicen nada acerca de lo
que es importante o no. Por si mismo no reduce la
ignorancia de quien tiene que tomar decisiones.
Ejemplo: Catálogo de biblioteca. Relaciona
usuarios, libros, préstamos, devoluciones, etc.
El propósito de toda la base de datos es
registrar el préstamo de libros.
No es aleatoria pues todo está organizado
en torno a los libros y no existen datos no
relevantes.
Representa la parcela del mundo real que
antes se hacía con fichas en una biblioteca, pero no
representa la colocación de libros por ejemplo, ni
la atención al usuario.
Ejemplo de datos: nombre, apellidos,
número de teléfono, matrícula del coche.
Solo conviene almacenar datos que después
de analizados o procesados sirvan para resolver un
problema o tomar una decisión. Lo que nos lleva al
concepto de información.
Un SISTEMA GESTOR DE BASE DE
DATOS ( SGBD) es el software que no permite
crear la base de datos, e introducir y obtener datos
de la misma.
Un ejemplo de SGBD es ACCESS o
MySQL.
1.2. INFORMACIÓN
INFORMACIÓN es el significado que una
persona asigna a un dato. Por lo tanto si un dato es
información o no depende de la persona.
1.4. ABSTRACCIÓN
La ABSTRACCIÓN es el proceso de
descarte de los datos que nos llegan del exterior y
que no nos interesan.
Este proceso se está dando continuamente
en nuestro cerebro, por ello solo recordamos ciertas
cosas de lo que ha pasado durante el día, pues
almacenar todos los datos recogidos sería
imposible.
Mediante la abstracción se eliminan los
detalles irrelevantes.
Ejemplo de información: Un fabricante de
perfumes tiene intención de sacar al mercado un
nuevo producto. Necesita conocer la opinión de sus
posibles clientes. Entre las acciones a tomar decide
elaborar una encuesta, en la que recogerá estas
opiniones. Las respuestas recogidas son datos. Si
agrupamos, totalizamos y procesamos los datos
obtendremos
información
útil
para
el
Departamento de Marketing, y además esta
información
será
inteligible
para
este
departamento, aportándole un conocimiento nuevo,
de difícil o imposible predicción, y muy importante
para las decisiones a tomar en lo referente al
proceso de creación del nuevo perfume.
Así por ejemplo de una mesa diremos que
está formada por cuatro patas y un tablero encima,
con lo que todo el mundo sabrá lo que es una mesa.
Se han obviado los detalles del tipo de material:
madera, plastico, metal, el tipo de madera, las
dimensiones, es cuadrada, rectangular redonda,...
1.3. BASE DE DATOS
1.5. MODELO DE BASE DE DATOS
Una BASE DE DATOS (BD a partir de
ahora) es un conjunto de datos relacionados entre
si y con un propósito específico.
Una colección aleatoria de datos no puede
considerarse una base de datos. Una base de datos
representa una parcela del mundo real.
Debido a la complejidad del mundo real
nosotros solo podemos representar en los sistemas
informáticos una pequeña parte del mismo, la que
nos interesa. Además para representar esta parte
debemos simplificar y abstraer el funcionamiento
3/17
B.D. 1º Bach
del mundo real. Para esto se utilizan los modelos de
datos, que nos permiten representar el mundo de
una forma estándar y predeterminada que pueda ser
entendida por la mayoría.
sobre el que se quiere tener información en el
sistema.
Partiendo del lenguaje natural, un nombre
común que actúa como sujeto o complemento
directo en una frase, generalmente es una entidad, o
en su defecto, un atributo. Por su parte los nombres
propios suelen indicar instancias o ocurrencias de
una entidad.
Los MODELOS son por tanto una
representación simplificada de la realidad.
Este modelo sirve como herramienta para
poder manejar la información extraída de la realidad
y aplicada a situaciones que compartan un nexo
común.
Por ejemplo, si la parcela del mundo real es
una empresa, "empleado" sería una entidad puesto
que parece lógico que se quiera tener información
al respecto en el sistema.
Por ejemplo: el movimiento rectilíneo
uniforme. Se ha creado un modelo físico, en el que
a cualquier objeto que tenga un determinado tipo
de movimiento se le aplica siempre la misma
fórmula. El objeto debe cumplir una serie de
características. Cualquier objeto que las cumpla
será intercambiable por otro que también las
cumpla. Es decir, nos abstraemos del objeto en sí
mismo y nos fijamos solo en su movimiento que es
lo que nos interesa estudiar. No nos importa si el
objeto es blanco o negro, pues no afecta a su
movimiento, por tanto abstraemos estos datos.
Toda entidad debe quedar unívocamente
identificada por un nombre, que debe ser único en
el modelo y lo más significativo posible.
Normalmente las entidades se nombran con un
sustantivo.
Se denomina OCURRENCIA a cada uno
de los ejemplares de una entidad.
Por ejemplo, en la entidad "empleado", los
empleados Pedro y Juan, etc., son ocurrencias de la
misma.
Los modelos de datos dividen el mundo en
una serie de elementos, que nos permiten describir
los objetos del mundo real y sus relaciones. En el
punto 2 se estudia cuales son los elementos básicos
de una base de datos.
2.2. ATRIBUTOS
Se define ATRIBUTO como cada una de
las características, básicas de una entidad.
1.6. PASOS PARA CONSTRUIR UNA BD
Cuando queremos crear una base de datos
debemos dar los siguientes pasos:
Por ejemplo: de un empleado nos interesa
saber su nombre, apellidos, dni y puesto que
desempeña en nuestra empresa. Cada una de estas
unidades de información es un atributo y recibirá
un nombre distinto dentro de la entidad.
1. Diseñar la base de datos utilizando un
modelo. En nuestro caso utilizaremos el modelo
entidad/relacion.
2. Pasar este diseño al esquema lógico de la
base de datos que se va a utilizar, en nuestro caso
al modelo relacional.
3. Introducir datos en la base de datos.
2.1. ENTIDADES.
Se entiende por CLAVE PRINCIPAL
aquellos atributos de una entidad que identifican
unívocamente cada una de las ocurrencias de la
misma.
La función de la clave principal es
organizativa, permite identificar cada entidad a lo
hora de tener que buscarla. Es como el titulo de un
libro.
Una ENTIDAD es un objeto real o
abstracto, que tiene existencia por sí mismo, se
puede identificar de una manera clara y precisa y
En el ejemplo anterior la clave principal
sería el DNI, pues nadie puede tener el DNI
repetido.
2. ELEMENTOS BÁSICOS DE UNA BD
4/17
B.D. 1º Bach
Se define DOMINIO como el conjunto de
valores que puede tomar un atributo.
La principal utilidad del esquema E/R es
poner de manifiesto las relaciones entre
entidades.
Para el atributo nombre de un empleado el
dominio es el de los nombres de personas, así por
ejemplo no será posible el nombre mesa, silla,
perro o 1234.
3.2. ENTIDADES.
Las entidades se representan por medio de
un rectángulo, dentro del cual se escribe el nombre
de la entidad.
Los dominios más usuales en las bases de
datos comerciales son:
- números reales o Num
- caracteres o Car
- cadena de caracteres o CdC
- texto o Tex
- autonumérico. o Auto
- fecha o Fech
- moneda o Mon
EMPLEADO
Suponiendo que estamos modelando una
empresa el grafico anterior representaría un
empleado cualquiera.
3.3. RELACIONES
2.3. RELACIÓN
Una RELACIÓN
semántica entre entidades.
es
una
Las relaciones se representan por medio de
un rombo y se une a las entidades mediante una
línea.
Si estamos modelando una empresa que
tiene varias tiendas quizá nos interese saber en qué
tienda trabaja cada empleado, como se ve a
continuación.
conexión
Por ejemplo: entre las entidades
"empleado" y "empresa" se puede reconocer la
relación "pertenece".
3. MODELO E/R
3.1. INTRODUCCIÓN
La relación solo puede unir dos entidades.
Las relaciones no se pueden asociar con
otras relaciones.
La relación tiene dos sentidos de lectura.
La utilización de un modelo estándar tiene
las siguientes ventajas:
- Los esquemas resultantes transmiten un
mensaje preciso. No se pueden deducir de
él cosas que no estén representadas.
- Para las personas que sepan interpretarlos
son suficiente información. No hace falta
ninguna explicación adicional.
En el ejemplo podemos leer:
- En las tiendas trabajan empleados.
- Los empleados trabajan en las tiendas.
Con esta forma de hacer los gráficos ambos
sentidos de lectura dicen lo mismo, pero esta forma
de denotar la relación no nos permite saber cuántos
empleados trabajan en una tienda, ni en cuantas
tiendas trabaja un empleado. Por esto, vamos a
completar el modelo con la cardinalidad, y
comprobaremos como con este nuevo elemento el
sentido de lectura ya no se insignificante.
El modelo entidad relación nos proporciona
dos cosas:
- Un grafismo de representación. Es decir,
una forma de representar los elementos de
la base de datos mediante gráficos.
- Unas reglas. Estas reglas nos indican cómo
se construye un grafico correctamente.
Lo que se obtiene de aplicar lo anterior se
denomina el esquema E/R.
5/17
B.D. 1º Bach
3.4. CARDINALIDAD
La CARDINALIDAD nos permite saber
cuántas ocurrencias de una entidad se relacionan
con cuantas ocurrencias de la entidad del otro lado
de la relación.
“Un empleado trabaja como mínimo en una
tienda y como máximo en dos.”
3.5. CLASIFICACIÓN DE LAS RELACIONES
Existen dos tipos de cardinalidad:
- Se denomina CARDINALIDAD MÁXIMA
de la relación al número máximo de
ocurrencias de cada entidad que pueden
intervenir en la relación que se está
considerando.
- Se denomina CARDINALIDAD MÍNIMA,
al número mínimo de ocurrencias de cada
entidad que deben intervenir en la relación
que se está considerando.
Las relaciones pueden ser de varios tipos
dependiendo de cuantas ocurrencias de una entidad
se relacionen con las de otra a las que este unida
con una relación.
Una vez que hemos determinado la
cardinalidad de la relación es fácil saber de qué tipo
es, simplemente fijándonos es las cardinalidades
máximas. Así tendríamos:
Observar que con la cardinalidad minima la
relación es obligatoria, es decir, para que exista la
relación debe haber al menos tantas entidades
involucradas como indique la cardinalidad mínima.
1/1. Uno con uno. Si una ocurrencia de una
entidad se interrelaciona como máximo con una
ocurrencia de la otra entidad.
Por ejemplo, dadas las entidades "hombre"
y "mujer", la relación "está casado" es 1:1, ya que
un hombre está casado como máximo con una
mujer y una mujer está casada como máximo con
un hombre.
Estas cardinalidades se escriben separadas
por dos puntos, a la izquierda la cardinalidad
mínima y a la derecha la máxima. Se ponen al lado
de la entidad que, según el sentido, se lee en último
lugar.
1/N. Uno con muchos. Si una ocurrencia de
una entidad se interrelaciona con varias de la otra.
Por ejemplo, dadas las entidades
"empleado" y "departamento", la relación
"pertenece" es del tipo 1:N ya que un empleado
pertenece a un departamento y a un departamento
pueden pertenecer varios empleados.
Para nuestro ejemplo, supongamos que un
empleado puede trabajar como mucho en dos
tiendas y que una tienda tiene como mínimo dos
empleados y como mucho cinco. El grafico
quedaría como sigue:
N/N. Muchos con muchos. Si varias
ocurrencias de una entidad se interrelacionan con
varias ocurrencias de la otra.
Por ejemplo, dadas las entidades
"empleado" y "proyecto", la relación "trabaja" es
N:N ya que un empleado puede trabajar en muchos
proyectos y en un proyecto pueden trabajar muchos
empleados.
El mínimo de tiendas en que trabaja un
empleado es de 1, porque en caso contrario no
tendría sentido llamarlo empleado.
Ahora el sentido si importa. Leyendo de
izquierda a derecha leemos:
El tipo de relación se indica encima del robo
de la relación correspondiente.
“En una tienda trabajan al menos dos
empleados y como mucho cinco.”
Pero leyendo de derecha a izquierda:
6/17
B.D. 1º Bach
- Los atributos empieza después de una
tabulación debajo de la entidad a la que
pertenecen.
- La clave principal aparece la primera y
subrayada.
- El dominio de los atributos se indica después
de dos puntos.
- Para las cadenas de caracteres debemos
indicar el espacio que se reserva. Esto se
hace por eficiencia. De esta forma nuestra
base de datos ocupará solo el espacio
necesario y no más.
3.6. DICCIONARIO DE DATOS
Los datos que vamos a guarda en la base de
datos realmente se van a almacenar en los atributos
de las entidades. Por ello de cada entidad debemos
identificar los atributos que la componen, su
dominio y cuál es la clave principal.
Determinar el dominio de cada atributo nos
va a servir para restringir el tipo de información que
puede almacenarse en los atributos.
Por ejemplo si tenemos una entidad
denominada Alumno, con los atributos: nombre,
apellido1, apellido2, fechaNac y DNI. Obviamente
no queremos que el usuario se confunda e
introduzca el nombre en campo fecha. Si fijamos el
dominio a fecha para fechaNac evitaremos esto,
pues el sistema no lo permitará, ya que el nombre
son letras.
3.7. METODOLOGÍA DE DISEÑO
Para realizar el estudio de un enunciado y
llegar a una base de datos idónea, se debe seguir un
plan de acción organizado como sigue:
1. Leer el enunciado completamente.
2. Dividir el enunciado en partes coherentes y
resolver cada parte independientemente.
3. Para cada parte identificar las entidades y
sus atributos, así como la clave principal.
Crearemos el diccionario de datos.
4. Identificamos las relaciones entre entidades
y creamos el modelo E/R.
Debemos determinar cual es la clave
principal porque asi podremos identificar
unívocamente cada una de las ocurrencias.
Para el ejemplo anterior fijaríamos como
clave principal el atributo DNI, pues nadie puede
tener el mismo DNI. De esta forma para buscar un
alumno me basta con su DNI. En cambio como el
nombre se puede repetir, necesitaría también el
nombre y apellidos.
Con la práctica los pasos anteriores se
agilizan y podemos directamente pasar a crear el
esquema final.
Para determinar todo lo anterior crearemos
el diccionario de datos( DD en adelante).
La estructura del diccionario de datos se
puede observar en el siguiente ejemplo:
Existen una serie de consideraciones que nos
hacen más fácil la traducción de un enunciado del
lenguaje natural a un esquema E/R:
1. ¿Tengo todas las entidades?
2. ¿Todas las entidades tienen clave?
3. ¿Todas las relaciones tienen cardinalidades?
4. ¿Existe alguna entidad repetida en mi
esquema?
5. Si una entidad tiene un solo atributo o
ninguno posiblemente haya que representarla
como atributo de otra entidad.
6. Las relaciones de las que no se nos diga nada
normalmente tendrán cardinalidad 1:n.
7. Si no nos dicen la clave y no podemos
determinar una clave adecuada, crearemos
una clave autonumérica, de nombre ID_algo.
8. Si tenemos que asociar el atributo con otra
entidad diferente de a la que pertenece, es
probable que ese atributo deba ser una
entidad.
@Tienda
IdTienda: Auto
Ubicación: CdC (50)
Tamaño: Núm
@Empleado
DNI: CdC (9)
Nombre: CdC (20)
Apellido1: CdC (20)
Apellido2: CdC (20)
Como se puede observar cumple varias
reglas:
- Al nombre de la entidad se le antecede la @
7/17
B.D. 1º Bach
3.8. EJEMPLO DE E/R COMPLETO
El administrador de una empresa nos ha llamado porque quiere que creemos una base de datos para
gestionar su negocio. Nos ha dado las siguientes explicaciones:
“ Existen diferentes Jefes, de los que tenemos guardado su nombre, apellidos, DNI, titulación y
teléfono. De las dependientas solo tenemos el nombre, apellidos y DNI. Los jefes mandan en una sola tienda,
aunque es jefe de todas las dependientas de la tienda. Estas trabajan en una sola tienda. Las dependientas
tienen un solo jefe y nos interesa saber que productos son los que venden cada dependienta, teniendo en cuenta
que un mismo producto se puede vender por varias dependientas. De los productos nos interesa saber su
precio, nombre, tipo y cantidad de los mismos que tenemos. De cada tienda queremos saber tamaño y
ubicación”
DICCIONARIO DE DATOS
@Jefe
DNI: CdC (9)
Nombre: CdC (20)
Apellido1: CdC (20)
Apellido2: CdC (20)
Titulación: CdC(50)
Telefono: Num
@Dependienta
DNI: CdC (9)
Nombre: CdC (20)
Apellido1: CdC (20)
Apellido2: CdC (20)
@Productos
Codigo: Num
Precio: moneda
Nombre: CdC(30)
Tipo: CdC(10)
Cantidad: Num
@Tienda
Idtienda: Auto
Ubicación: CdC (30)
Tamaño: Num
8/17
B.D. 1º Bach
4. IMPLEMENTACIÓN EN EL ORDENADOR
4.1. INTRO
El modelo E/R nos sirve para diseñar la BD,
es decir, nos ayuda a pensar sobre el problema y a
hallar una solución lo más adecuada posible. Pero
este modelo no puede utilizarse directamente en el
ordenador. Además cada empresa de software
utiliza diferentes herramientas para crear la BD.
En
este
apartado
veremos
cómo
implementar la BD. Para ello debemos saber que
correspondencia hay entre los elementos de
nuestros diseños y los elementos que pone a nuestra
disposición el SGBD.
Nosotros vamos a utilizar ACCESS, que
utiliza el MODELO RELACIONAL, en el que el
elemento básico son las tablas.
Si pasamos la clave principal de Tienda a
Jefe tendríamos:
Access utiliza dos símbolos: 1 e ∞. El ∞ es
como N. Por tanto lo que dice el esquema superior
es: Un jefe atiende una sola tienda, pero una tienda
es atendida por infinitos jefes.
Además debemos obligar a que en la tabla
jefe, todo jefe tenga relleno el campo IdTienda pues
la cardinalidad mínima es 1. En Access esto se
consigue poniendo el atributo como requerido.
Pero eso no es exactamente lo que nosotros
queríamos. Probemos a poner la relación al revés.
4.2. TRANSFORMACIÓN.
4.2.1. ELEMENTOS.
El modelo de ACCESS se compone de tres
elementos básicos: tablas y claves ajenas. Las tablas
están compuestas a su vez por columnas y filas.
Las entidades son transforman en tablas.
Los atributos son las columnas de la tabla.
Cada atributo tiene un dominio. Un conjunto de
ellos será la clave principal.
Una fila representa una ocurrencia de la
entidad.
Las relaciones se modelan por medio de
claves ajenas que veremos a continuación.
4.3.2. RELACIONES.
Para relacionar dos entidades, en este caso
dos tablas, se utilizan un conjunto de atributos que
denominamos CLAVE AJENA. Lo que se hace es
coger un atributo de una tabla y colocarlo en otra,
de tal forma que la clave ajena se corresponde con
el atributo de origen.
Por tanto tenemos ya dos tipos de clave, la
principal y la ajena.
Debemos transformar las relaciones
atendiendo a su tipo:
¿Que indica el esquema anterior?
¿Qué es lo que me impide que un jefe
mande varias tiendas, si la relación que vemos es
1,? Nada. Para ello hay que añadir una restricción,
de tal forma que no se pueda repetir el valor de la
clave ajena dentro de la tabla que la contiene. En
este caso no se pueden repetir los valores de DNIJefe. En ACCESS esto se consigue poniendo como
características del atributo(o campo): Indexado, con
valor: Si( sin duplicados).
1/1. Uno con uno. Se crean dos tablas una
para cada entidad. La clave principal de una de ellas
pasa a la otra como clave ajena.
1/N. Uno con muchos. Se crean dos tablas
una para cada entidad. La clave principal de la
En el ejemplo del apartado anterior tenemos:
9/17
B.D. 1º Bach
entidad con cardinalidad 1 pasa como clave ajena a
la que tiene cardinalidad N.
Es igual a la anterior estrategia, pero en este
caso no podemos elegir donde va la clave ajena.
Siguiendo con el ejemplo del apartado
anterior, vamos a transformar los siguiente:
requeridas tantas como indique J. En realidad este
caso incluye al anterior.
Según lo anterior, ¿cómo se transformaría el
siguiente esquema?
N/N. Muchos con muchos. Se crean dos
tablas, una para cada entidad. Además se crea una
tabla que tendrá sendas claves ajenas apuntando a
cada una de las claves primarias correspondientes
de las entidades que asocia. Estas claves ajenas se
convierten en claves ajenas en la nueva tabla.
Nos quedaría así:
Teniendo esto:
Además debemos obligar a que el campo
Dependienta.IdTienda nunca pueda estar vacio,
pues la cardinalidad mínima es 1.
En la tabla tienda no se pueden repetir los
valores de IDTienda, pero en cambio en
Dependienta, los valores de IDTienda pueden estar
repetidos, por lo que varias dependientas distintas
pueden trabajar en la misma tienda. Obviamente en
nuestra base de datos, habrá más dependientas que
tiendas.
Nos quedaría:
De esta forma un producto puede ser
vendido por muchas dependientas y una
dependienta puede vender distintos productos.
Caso genérico
Pero podemos tener el caso que las
cardinalidades no sean 1,1, sino J:K, siendo J y K
dos números concretos cualesquiera, como por
ejemplo 2 y 3. Lo vemos en el siguiente diagrama.
Caso genérico
Si las cardinalidades no son 1:N, sino J:N y
K:N, siendo J y K dos números concretos
cualesquiera.
En este caso procederíamos de la siguiente
manera: desde E2 hacia E1, pasamos tantas claves
ajenas como indique K y se marcarán como
10/17
B.D. 1º Bach
- Texto. Texto o combinaciones de texto y
números, así como números que no
requieran cálculos, como los números de
teléfono. Solo permite hasta 255 caracteres.
- Numérico. Datos numéricos utilizados en
cálculos matemáticos.
- Autonumérico. Valor numérico que
aumenta automáticamente cuando se inserta
una nueva fila.
- Memo. Texto extenso de mas de 255
caracteres.
- Fecha/hora. Tipo especial de datos para
almacenar fechas.
Entonces hacemos una tabla con tantas
claves ajenas procedentes de E1 como indique J y
tantas de E2 como indique K, convirtiendose todas
en claves principales de la nueva tabla.
En caso de que J o K sean 0 se pasarán
como mínimo una clave ajena. El caso de que una
ocurrencia de E1 no se asocie con ninguna de E2 se
refleja en que no existirá entrada para esa
ocurrencia en la tabla, existiendo la ocurrencia en su
propia tabla de entidad.
Consideraciones
- Cuando una clave principal de tipo
autonumerico, pasa como ajena a otra tabla,
en esta se define como numérico.
- Para componer el nombre de la clave ajena
utilizaremos el nombre de la clave principal,
seguido de un guión y después el nombre de
la entidad de la que proviene.
- Las claves ajenas son también primarias solo
en las tablas que provienen de una relación
N/N.
- La cardinalidad mínima se asegura poniendo
las claves ajenas como requeridas.
- Si la cardinalidad mínima es cero, entonces
la clave ajena no se pondrá como requerida.
- Si la cardinalidad máxima es uno, entonces
la clave ajena se pondrá sin duplicados.
¿Porque distintos tipos de datos? Porque
aunque el atributo esté vacío ocupa el espacio
reservado para el tipo de datos, por tanto estamos
desperdiciando espacio. Siempre hemos de elegir el
tipo de dato que más se ajusta a los datos que
vamos a almacenar.
4.5. PASOS PARA LA RESOLUCIÓN DE LOS
EJERCICIOS.
Cuando resolvemos este tipo de ejercicios es
útil proceder de manera ordenada, un posible orden
de resolución es el siguiente:
1. Pasar las entidades a tablas y poner las
claves.
2. Transformar las relaciones:
2.1. Las N/M a tablas.
2.2. Las 1/N transportan la clave: 1  N.
2.3. Las 1/1 transportan la clave donde
queramos.
3. Unir las tablas.
4. Determinar los tipos de datos.
4.4. TIPOS DE DATOS
El tipo de datos se asocia a cada atributo y
determina los valores que este puede tomar. Es la
correspondencia con el término dominio que hacen
los sistemas comerciales.
En ACCESS el tipo de datos se debe definir
al crear un atributo y los más usados son:
4.6. EJEMPLO ESQUEMA FINAL EN EL ORDENADOR
11/17
B.D. 1º Bach
Por su parte los atributos que son claves
ajenas se indican con #.
Si algún atributo es requerido se indica
poniendo /R detrás de su tipo de datos.
Si algún atributo no se puede repetir,
entonces se indica con /ND. Ten en cuenta que la
clave principal nunca se puede repetir, así que no
hace falta ponerle /ND.
4.7. PLANIFICACIÓN Y DD.
Una de las tareas mas importantes de la
informática es la planificación. Por ello antes de
pasar a implementar la solución, vamos a estudiar
esta por medio de los esquemas E/R, los esquemas
relacionales como el anterior y por medio del DD.
Por ello por cada problema tendremos tres
documentos el primero el esquema E/R, después
haremos el DD, continuamos con el relacional y
volvemos a completar el DD.
Vamos a completarlo con la información
necesaria concerniente a las relaciones, es decir,
indicando las tablas que provienen de una relación
N/M, las claves ajenas y las restricciones sobre las
claves ajenas.
Para nuestro ejemplo el DD quedarías así:
DICCIONARIO DE DATOS
@Jefe
DNI: CdC (9)
Nombre: CdC (20)
Apellido1: CdC (20)
Apellido2: CdC (20)
Titulación: CdC(50)
Telefono: Num
@Dependienta
DNI: CdC (9)
Nombre: CdC (20)
Apellido1: CdC (20)
Apellido2: CdC (20)
#IdTienda: Num /R
@Productos
Codigo: Num
Precio: moneda
Nombre: CdC(30)
Tipo: CdC(10)
Cantidad: Num
@Tienda
Idtienda: Auto
Ubicación: CdC (30)
Tamaño: Num
#DNI-Jefe: CdC(9) /R /ND
$Vende:
#Codigo-Producto: Num.
#DNI-Dependienta: CdC(9)
Como se puede observar que, por medio de
$, se indica que la tabla vende proviene de una
relación N/N.
12/17
B.D. 1º Bach
4.8. EJEMPLOS DE TRANSFORMACIÓN
@EMPLEADO
DNI
Telefono
@TIENDA
Direccion
Nombre
@EMPLEADO
DNI
Telefono
#Direccion /ND
@EMPLEADO
DNI
Telefono
@TIENDA
Direccion
Nombre
@TIENDA
Direccion
Nombre
@Trabaja
#DNI
#Direccion
@EMPLEADO
DNI
Telefono
@TIENDA
Direccion
Nombre
#DNI /R
@EMPLEADO
@TIENDA
DNI
Direccion
Telefono
Nombre
#DNI
@EMPLEADO
@TIENDA
DNI
Direccion
Telefono
Nombre
#DNI /R /ND
#DNI /R /ND
#DNI /ND
@EMPLEADO
@TIENDA
DNI
Direccion
Telefono
Nombre
#DNI /R
#DNI /R
@EMPLEADO
@TIENDA
No se pueden representar
DNI
Direccion
las cardinalidades del
Telefono
Nombre
empleado.
#DNI /R
#DNI /R
Igual al anterior. Necesitamos mecanismos que aun no se han estudiado.
@EMPLEADO
DNI
Telefono
@TIENDA
Direccion
Nombre
13/17
@Trabaja
#DNI
#DNI
#DIreccion
#Direccion
#Direccion
B.D. 1º Bach
Ejemplo transformación a ACCESS
En la tabla tienda los siguientes atributos tienen características especiales:
DNI_empleado /R /ND
DNI_empleado_1 /ND
Al crear las relaciones en ACCESS, la tabla empleado se muestra dos veces, para poder crear dos
relaciones en la misma tabla.
En el grafico de ACCESS las relaciones creadas muestran 1-1, en vez de 1-∞, porque se a las claves
ajenas se le asignado /ND(indexado, sin duplicados), como antes se ha dicho, y por tanto no se pueden repetir
dentro de la tabla tienda. De esta forma conseguimos la cardinalidad 1:1.
La representación de la cardinalidad 1:2 se corresponde con las dos relaciones, desde una tabla a otras
dos.
Por ejemplo la relación "cursa": un alumno
cursa una asignatura.
5. EJERCICIOS
1. Piensa en 10 ejemplos de dato.
7. Realiza el diseño en el modelo E/R indicando
los supuestos que no han podido recogerse,
así como los que ha sido necesario introducir.
2. Para los datos anteriores describe situaciones
en las que se conviertan en información.
A. Alquiler de automóviles.
Se desea diseñar según el modelo E/R una
base de datos sobre la información de las
reservas de una empresa de alquiler de
automóviles. Los supuestos semánticos son los
siguientes:
a) Un determinado cliente puede tener en
un momento dado varias reservas.
b) Una reserva la realiza un único cliente,
pero puede involucrar varios coches.
c) Todo coche tiene siempre asignado un
determinado garaje que no puede cambiar.
d) Cada reserva se realiza en una
determinada agencia.
e) Pueden existir en la base de datos
clientes que no hayan hecho ninguna reserva.
3. Piensa cinco ejemplos de parcelas del mundo
real donde sería útil una base de datos.
4. Identifica como mínimo cinco entidades y dos
ocurrencias de las mismas de estas parcelas
del mundo real: instituto, partido de fútbol,
zapatería, concesionario y mapa de carreteras.
5. Identifica los atributos que puedan ser útiles
de las entidades reconocidas en el ejercicio 2.
Pon dos ejemplos de los posibles valores de
cada atributo, es decir, de su dominio.
6. Identifica posibles relaciones entre las
entidades reconocidas en el ejercicio anterior.
14/17
B.D. 1º Bach
f) Todas las entidades tienen una clave
alfanumérica que las identifica unívocamente.
Construya un diagrama de E/R para una
compañía de seguros automovilísticos sabiendo
que:
a) Se dispone de un fichero de clientes
con el dni, nombre y dirección.
b) Se dispone de un fichero de
automóviles con la matrícula, marca y modelo.
c) Un cliente puede asegurar varios
automóviles.
d) A cada cliente se la aplica una tarifa
distinta según el método bonus-malus, es decir,
paga más quien mas accidentes haya tenido.
Para ello se dispone de un historial con la fecha y
costes de los accidentes que ha tenido cada
cliente con cada automóvil.
e) Cada automóvil siniestrado en un
accidente se repara en un determinado taller,
para lo cual existe un fichero de talleres con su
nombre y dirección. Pueden existir accidentes en
los cuales no se repare el vehículo, por ejemplo,
en caso de siniestro total.
f) Se emite un recibo anual por cada
automóvil asegurado de cada cliente, llevándose
un control de cuales están pagados.
B. Agencia de viajes
Realiza el diseño de una base de datos
para una agencia de viajes que, para ofrecer
mejor servicio a sus clientes, considera de interés
tener registrada la información referente a los
diferentes tours que puede ofrecer. Tener en
cuenta lo siguiente:
a) Un tour, según su finalidad, cultural,
histórica, deportiva,.. tiene unos determinados
puntos de ruta y puede repetirse varias veces al
año.
b) Un tour concreto se realiza a partir de
una fecha determinada.
c) Los puntos de ruta de un tour pueden
ser ciudades, monumentos, zonas geográficas,
etc. y se consideran de visita solamente o de
visita y estancia.
d) En este último caso el punto de ruta
tiene asignado un hotel o varios.
e) Entendemos por cliente de un viaje la
persona que ha decidido hacerlo y ha hecho
efectiva una señal.
f) Un cliente puede confirmar su
participación en más de un viaje( se
sobreentiende que las fechas son diferentes)
g) Las personas que participan en un viaje
pueden ser alojadas en los mismos o en
diferentes hoteles.
E. Biblioteca.
Se pretende mecanizar la gestión de una
biblioteca. Para ello se recoge la siguiente
información:
a) Se dispone de un fichero de usuarios
con el número de carnet, nombre y dirección.
b) Se dispone de un fichero de libros con
la signatura, autor, titulo y editor.
c) Se realizan prestamos de libros a los
usuarios. Cada usuario puede tener prestados a
la vez varios libros.
d) Se quiere llevar un control histórico de
todos los prestamos que se van realizando,
sabiendo además del libro y usuario, las fechas
de inicio y de devolución del préstamo.
e) Para cada libro se debe llevar un
control de su estado, para saber si está
disponible cuando un usuario los pide prestado.
f) A los usuarios se les puede penalizar
cuando cometan diversos retrasos en la
devolución,
impidiéndoles
realizar
nuevos
prestamos.
C. Metro.
Las siguientes reglas de negocio indican
como funciona una empresa que gestiona las
líneas de metro de la ciudad:
a) Una línea está compuesta por una serie
de estaciones en un orden determinado, siendo
muy importante recoger la información de este
orden.
b) Cada estación pertenece al menos a
una línea, pudiendo pertenecer a varias.
c) Cada línea tiene asignados una serie de
trenes, no pudiendo suceder que un tren esté
asignado a más de una línea.
d) Algunas estaciones tienen cocheras y
cada tren tiene reservada una cochera.
e) Cada cochera puede estar reservada
para uno o varios trenes.
f) Hay dos tipos de estaciones: normales y
mixtas. Las estaciones normales solo tienen
servicio de metro, mientras que las mixtas tienen
conexión con otros servicios( RENFE, cercanías,
estación de autobuses, aeropuerto, etc) Solo
interesa saber que conexiones existen desde
cada estación.
F. Banco
Se conocen las siguientes reglas de
negocio de un banco:
a) El banco tiene cuentas corrientes,
cuentas de ahorro y clientes.
b) Un cliente tiene al menos una cuenta,
aunque puede tener varias cuentas de los dos
tipos.
c) Cada cuenta pertenece a un único
cliente.
D. Compañía de seguros.
15/17
B.D. 1º Bach
d) Los clientes tienen un nombre, una
dirección y se identifican por un código. Los
clientes del banco son personas reales u
organizaciones. Las personas tienen fecha de
nacimiento y sexo; en cambio las organizaciones
tienen un tipo de organización, un representante
y un numero de empleados.
e) Cada cuenta se identifica por un
código-cuenta-cliente(CCC), formado por el
identificador del banco, de la sucursal y el
numero de cuenta(dentro de dicha sucursal).
f) Todas las cuentas tienen un saldo actual
y un saldo medio, pero el tipo de amortización
sólo lo tienen las cuentas de ahorro.
g) Cada sucursal se identifica por su
número. Además tiene una dirección, un código
postal y una ciudad.
h) Los empleados del banco se identifican
por su DNI. También interesa conocer su
nombre, fecha de nacimiento, sexo y la sucursal
en la que trabajan.( aunque hay empleados que
no trabajan en ninguna sucursal)
d) En las tiendas se venden diferentes
productos y estos se venden en diferentes
tiendas.
e) Los productos se identifican por un
identificador llamando IDProductos. Además
poseen una talla.
f) Los diferentes productos son: faldas,
pantalones, calzado y camisas.
g) Nos interesa saber la hora y el día en
que una dependienta vende un producto.
h) Existen dos tipos de trabajadores, las
dependientas( antes mencionadas) y los jefes.
Ambos poseen los atributos: DNI, teléfono,
nombre y salario.
i) Los jefes se diferencia por que tiene un
bonus al salario.
j) Los jefes manda en diferentes tiendas y
una tienda es mandada por un solo jefe.
I.Empresa electrica
Una empresa dedicada al suministro de
energía eléctrica, como FENOSA, nos ha pedido
que hagamos una base de datos con las
siguientes condiciones:
a) La empresa está compuesta por
centrales eléctricas, de las cuales sabemos su
ubicación, tamaño y potencia.
b) En cada central tenemos un director,
varios instaladores y cuatro transportistas. De
todos ellos tenemos una lista con su: DNI,
nombre, primer apellido y segundo apellido.
c) Los transportistas transportan varios
tipos de materiales distintos y de los cuales se
sabe su cantidad y precio. Me interesa saber el
vehiculo que conduce el transportista.
d) De los instaladores nos interesa su
titulación y la zona geográfica en la que trabajan.
Los instaladores instalan el material. Se quiere
llevar un registro de cuando un instalador instala
un material y la cantidad de material que instala.
e) El director dirige las centrales
eléctricas. Como mucho puede dirigir tres
centrales. No puede haber más de un director en
cada central. El director tiene un bonus a su
sueldo.
f) Cada central eléctrica suministra
electricidad a varios hogares. Un hogar solo
recibe su electricidad de una central. De los
hogares nos interesa su ubicación y la potencia
que necesitan. Queremos almacenar los hogares,
incluso si no se le está suministrando electricidad
por ninguna central.
g) Cada central tiene al menos 2 sectores.
De cada sector se quiere guardar su número,
tamaño en metros cuadrados, función y nivel de
producción. No se quiere que una central sea
muy grande por tanto no se permite que tenga
más de 5 sectores.
G. Autobuses
Se quiere crear una base de datos para
gestionar la red de autobuses urbanos.
a) De los conductores nos interesa
guardar el nombre, DNI y numero de telefono.
b) De los autobuses nos interesa guardar
la marca y la matricula.
c) Hay dos tipos de autobuses: simples y
dobles. De los dobles nos interesa guardar el tipo
de bisagra que une las dos mitades.
d) Cada conductor conduce siempre el
mismo autobús y un autobús puede ser
conducido por distintos conductores.
e) Un autobús recorre una o varias lineas
y una línea es recorrida por distintos autobuses.
f) Nos interesa saber a que hora empieza
cada autobús a recorrer la línea.
g) De la línea nos interesa almacenar el
nombre y el color.
h)
Cada
linea
está
formada
por
estaciones, pero una estación solo pertenece a
una sola línea, es decir, las líneas son
independientes, no se cruzan.
i) De la estación nos interesa guardar el
nombre, ubicación y el orden en la línea.
H. Tiendas de ropa
a) Las tiendas tienen una ubicación y un
identificador numérico, llamado IDtienda.
b) Las dependientas trabajan en solo una
tienda y en una tienda trabajan mas de una
dependienta.
c) De las dependientes nos interesa saber
el nombre, DNI, salario y teléfono.
16/17
B.D. 1º Bach
J.Tienda de informática
Se quiere crear una base de datos para
gestionar una empresa de venta de productos
informáticos. De la base de datos se tiene la
siguiente información:
a) De todos los trabajadores nos interesa
saber su DNI, nombre, primer apellido, segundo
apellido y sueldo. En plantilla, es decir, propios
de la empresa, tenemos a los dependientes, los
jefes y los limpiadores.
b) De cada tienda nos interesa saber las
dimensiones, la calle y la ciudad donde está. En
cada tienda trabaja como mínimo un dependiente
y como máximo tres. Un dependiente atiende
solo una tienda.
c) De los dependientes nos interesa saber
donde viven, porque si viven en la misma ciudad
que en la que trabajan venden mas.
d) Los jefes mandan en varias tiendas y
en una tienda solo manda un jefe. De estos nos
interesa guardar el bonus de sueldo, que
depende de lo bien que funcionen las tiendas que
mandan. Como mucho un jefe puede mandar en
tres tiendas.
e) De los limpiadores nos interesa saber si
son ajenos o no, es decir, si los ha contratado la
empresa o son de una empresa de limpieza. Los
limpiadores limpian como mucho cuatro tiendas y
una tienda solo la limpia un limpiador.
f) De los productos que se venden nos
interesa saber el nombre, la marca, el precio y la
descripción. Un mismo producto puede ser
vendido por distintas marcas. Nos interesa saber
cuando vende un dependiente un determinado
producto.
g) Queremos guardar información de los
proveedores. Incluso de los que no nos proveen
ningún
producto.
De
estos
proveedores
queremos guardar el teléfono, nombre y DNI.
17/17
Descargar