Bases de datos: El servidor es fundamental
¡Las bases de datos: Parte fundamental en el servidor de desarrollos web
PHP Un lenguaje de script al lado del servidor
Nivel Conceptual
- Corresponde a obtener las especificaciones del cliente
- En este nivel debemos establecer comunicación con el cliente y técnicos.
- Cliente
Grupo de personas que saben mucho de su negocio, pero seguramente poco de tecnologías de desarrollo
- Técnico
Persona/s que tienen (deben tener) un alto conocimiento de desarrollo técnico, pero seguramente saben poco del negocio que han de automatizar
- Objetivo
Qué el grupo técnico tenga un conocimiento detallado del negocio y puedan desarrollar una aplicación que satisfaga
las necesidades del cliente
Modelado conceptual
Modelado
Lo entederemos como un lenguaje
que nos va a permitir describir datos .
|
- Serán los datos que queremos almacener de un determinado universo del discurso.
- Usaremos el Modelo Entidad/Relación
- también conocido como modelo Entidad interrelacion o modelo de chen}}
El diagrama entidad-interrelación (DEI)
Este diaglama es un modelado que permite representar la estática del modelo de datos entidad-interrelación mediante un lenguaje gráfico de definición de estructuras.
|
Elementos o lexemas de este lenguaje
- entidades
- atributos
- interrelaciónes entre entidades.
|
Modelo Entidad/Relación
- Es un modelo que nos va a permitir mostrar la parte estática del sistema
- Solo va a mostrar los elementos o entidades y las relaciones que ocurren ente ellos
Entidades
- Las entidades son esos elementos de los cuales queremos guardar información
Entidad
El conjunto de elementos u objetos concretos o abstractos de los que se quiere almacenar información dentro de este sistema
|
- Representación gráfica
- Su representación es un rectángulo
- El nombre se especifica dentro del rectángulo
- Se suelen poner en singular
- Una entidad va a representar un conjunto de elementos, por ejemplo la entidad Alumno representará varios alumnas
- Tipos de entidades
Entidades débiles
- Son entidades que dependen de otra para que existan o incluso para poderse identificar
- Se representan con un doble cuadrado
|
Tipos de debilidades
- Debilidad en existencia
- Para que exista un elemento de la entidad tiene que existir el elemento de la entidad con el que está relacionado
|
Debilidad en existencia
|
|
- Supongamos el siguiente ejemplo
En una empresa que tiene empleados se quiere saber los familiares
de los empleados para por ejemplo tener acceso a las instalaciones
o acceder a determinadas promociones
Si un empleado dejara de serlo, claramente los familiares de ese empleado
ya no serían datos que a la empresa le interesara conocer
Aquí vemos la debilidad en existencia
|
- Debilidad en identificación
- Son entidades que dependen de otra para que existan o incluso para poderse identificar
- Se representan con un doble cuadrado
|
Debilidad en identificación
|
|
- Es una debilidad más fuerte
- En ella para poder identificar un elemento de una entidad, necesitamos identificar previamente el elemento de la entidad con el que está relacionado
- Supongamos un ejemplo
En un hotel tenemos plantas (primero, segunda, ...)
cada planta tiene unas características y más atributos que nos interesa guardar
Las plantas tienen habitaciones que se identifican por
un número (de la 1 hasta el número de habitaciones que haya.
Está claro que para saber de qué habitación hablamos en un momento dado,
no podemos decir la habitacion 10, habrá que decir la habitación 10,
de la planta 2 o la que sea
Aquí vemos la debilidad en identificación ya que para identificar un elemento
de la entidad habitación, previamente necesitamos conocer el elemento de la entidad
Planta con el que está relacionado.
Por supuesto que también es una debilidad en existencia,
ya que si desapareciera una planta, desaparecerían también las habitaciones.
|
|
- Jerarquía entre entidades
- Como ya hemos estudiado en la herencia dentro de la programación orientada a objetos, puede ocurrir que una entidad se pueda especializar.
- Es decir que una entidad pueda ser de diferentes tipos, y ademas, cada uno de esos subtipos tengan atributos o relaciones de forma individual (no compartidos).
- En este caso podremos establecer una jerarquía
Jerarquia
- Es una estructura de datos en la cual tenemos entidades que se especializan en subtimos
- Cada subtipo a de tener atributos y/o relaciones de forma individual (Si no fuera así sería suficiente con tener un atributo llamado tipo)
|
Jerarquía con atributos individuales
|
|
Una editorial realiza publicaciones. Estas publicaciones pueden
ser libros en cuyo caso necesitamos conocer el autor principal
o también revistas, en cuyo caso necesitamos la tirada (número de ejmplares
de esa publicación)
|
|
Jerarquía con relaciones individuales
|
|
En el ejemplo anterior además una publicaciones tiene subscriptores
|
|
- Concepto de agregación
Atributos
Atributos
- Son las características que queremos guardar de las entidades
- Van a permitir diferenciar una elemento de otro dentro de la entidad
- Se pueden representar de diferentes maneras, usaremos un cículo
- Se une a la entidad con una línea
|
- Tipos de atributos
Atributo Clave
- Hemos dicho que una entidad representa un conjunto de elementos
- Por definición un conjunto está formado por 0 o más elementos los cuales han de ser necesariamente diferenciables
- Aplicado a nuestro caso, quiere decir que hemos de poder diferenciar dos elementos cualesqueira de nuestro conjunto.
- Esto se consigue teniendo uno o más atributos que constituyan la clave, es decir que sus valores no se pueden repetir.
|
Representacion
|
|
|
|
Atributo Compuesto
- Es un atributo que a su vez está formado por más atributos
|
Representacion
|
|
Se representa ligando con una flecha al atributo compuesto sus componentes
|
|
Atributo Multivaluado
- Ocurre cuando un atributo puede tomar varios valores.
(: No confundir con el hecho de que pueda tomar un valor
entre una lista de valores posibles)
|
Representación
|
|
- Se representa con un doble círculo
Un alumno puede hablar varios idiomas
Un alumno estudiante puede tener varios estudios
Un alumno estudiante puede tener varios estudios pero solo nos interesa el de mayor nivel entre (ESO, BASH, CICLO, CERTIFICADO, GRADO)
|
|
Atributo Derivado
- Es aquel atributo cuyo valor no necesitamos almacenarlo, ya que lo podemos calcular a partir de los valores de otro/s atributos y/o valores del sistema.
|
Representación
|
|
- Se representa con líneas discontinuas en el círculo
De un alumno se quiere saber su fecha de nacimiento y su edad
La edad la podremos calcular a partir de la fecha de nacimiento
y de la fecha actual que siempre podremos obtener del sistema
|
{{{1}}}
|
- Atributos de la relación
Atributo de la relación
- Hay muchas ocasiones en las cuales las propiedades o características se establecen entre dos entidades que se relacionan
- Pero en realidad no pertenecen en particular a ninguna de ellas, sino que son características que toman valor cuando se establece la relación entre dos elementos relacionados
- En este caso diremos que el atributo es de la relación.
|
Atributos de la relación
|
|
Un programador trabaja en un proyecto con un determinado cargo
el programador puede desempeñar diferentes cargos:
(analista, programador, diseñador de software, maquetador)
Este atributo toma valor cuando un programador trabaja en un proyecto
Lo hace con undeterminado cargo.
(: Los atributos pueden ser también de la relación)
|
|
Interrelaciones o vínculos
Relaciones binarias
- El los sistema de información los elementos o entidades se interrelacionan entre si.
- Esto ocurre de forma natural, es muy extraño que un elemento o entidad no se interrelacione con ningún otro elemento
- Lo más habitual es que dos elementos se relacionen,e estableciendo una relación binaria (Entre dos entidades)
- Esta son las que habitualmente hemos venido viendo
Archivo:Relacion binaria.png
|
Relaciones reflexivas
- Son aquellas en las cuales una entidad se relaciona con sigo misma
- Lo hace ocupando diferentes roles
- En el ejemplo un concepto es empleado, y otro es gerente, que son empleados que tiene a su cargo a más personas
- Al pasarlo al modelo relaciona se propaga la clave a la misma tabla con el rol correspondiente
|
Relaciones
- Establecen las cardinalidades entre los elementos que se relacionan de entidades
- Sólo nos interesan los valores mínimos ( 0 o 1) y los máximos ( 1 o n).
- Lo que hay que hacer es establecer las preguntas de formas correctas.
|
Analicemos el caso anterior
|
|
Pregunta para obtener el mínimo ( 0 o 1)
- Puede un cliente no tener facturas
Si es SI entences ponemos un 0
Si es NO entences ponemos un 1
|
Pregunta para obtener el máximo ( 1 o N)
- Puede un cliente tener muchas facturas
Si es SI entences ponemos un N
Si es NO entences ponemos un 1
|
|
|
Representación
|
|
|
Cardinalidades de la relación
- Cogiendo los máximos de las cardinalidades de las entidades, colocamos los máximos en las relaciones
- Esta pareja de números se llama la cardinalidad de la relación
- Los valores pueden ser (1:1), (M:N) o (1:N)
|
- Lo anteriormente expuesto corresponden a las cardinalidades de la entidad
- En el caso anterior diremos que la cardinalidad de Cliente es (1,1) y la de factura es (0,N)
- El hecho de ponerlos en los extremos opuestos favorece la lectura
Un cliente tiene 0 o Muchas facturas
Una Factura pertenece a 1 y solo 1 Cliente
|
- Pueden ser débil si relacionan una entidad fuerte con una débil
- Cardinalidad
- Cardinalidad de la entidad
- Cardinalidad de la relación
- Relaciones
- Supongamos el siguiente ejemplo
Suponemos una relación ternaria entre Profesores- Cursos- Asignaturas
en la que un profesor imparte en varios cursos varias asignaturas
y pueden haber asignaturas impartidas por más de un profesor en varios cursos.
- Este es un caso de relación M
- N:P es decir muchos a muchos a muchos
- En este caso, igualemente que en las relaciones M:N, creamos una nueva tabla o relación por el vínculo
|
- En el caso de la jerarquí podemos realizar tres tipos de acciones
- Cada entidad una relación con sus atributos y sus vínculos, se cambia la jerarquía por vínculos con debilidad en identificación
- Propagar todo al super tipo y crear una única relacion, añadiendo el atributo tipo
- Eliminar el supertipo y propagar todo a los subtipos
Sistema de viviendas
Se desear considerar la información correspondientes al catastro de viviendas de un determinado municipio. En el municipio existe una serie de zonas urbanas en las cuales se han edificado un conjunto de viviendas.
- Vivienadas unifamiliares (casas en las que solo habita una familia
- Bloques de pisos: en los cuales existe un conjunto de viviendas a priori indeterminado en cada una de las cuales vive una familia
- Se considera mantener la información corresondiente a las personas que viven en cada una de las viviendas, así como el cabeza de familia de las personas que habitan o son propietarias de las viviendas.
- Para cada vivienda , además de la información correspondiente a las características de las mismas, es necesario conocer la persona propietaria de la misma.
Se consideran además los sigueientes supuestos:
- Toda persona habita en una y solo una vivienda, la cual es considerada como su vivienda habitual.
- Cada vivienda tiene uno y solo una propietaria
- Las viviendas se encuentran en una única zona urbana correspondiente al municipio
- Las zonas urbanas en las que está dividido geográficamente el municipio tienes nombres diferentes.
- En cada zona urbana del municipio existen una serie de calles en las que se construyen las viviendas. Los nomjbres de las calles son únicos para el municipio con independencia de la zona urbana en la que se encuentren
- En el contexto del problema, una familia es un conjunto de personas que tienen una relación familiar directa y que habita o no en una misma vivienda. Este conjunto a de ser unario.
|
|