Diferencia entre revisiones de «Usuario:ManuelRomero/php/NewPHP/B2T8/BD»
De WikiEducator
< Usuario:ManuelRomero | php
Línea 12: | Línea 12: | ||
<div class="slides layout-regular template-default"> | <div class="slides layout-regular template-default"> | ||
<div id=parrafo> | <div id=parrafo> | ||
− | + | {{Indice| | |
+ | Titulo= Programación de aplicaciones entorno servidor | ||
+ | |Imagen=php.jpg | ||
+ | |Subtitulo= Presentación y puesta en marcha<br/> | ||
+ | |Listado= | ||
+ | #[[Usuario:ManuelRomero/micursos/INAEM2017/Bases_datos|Bases de datos: conceptos generales]] | ||
+ | #[[Usuario:ManuelRomero/micursos/INAEM2017/Bases_datos|Nivel Conceptual]] | ||
+ | #[[Usuario:ManuelRomero/micursos/INAEM2017/Bases_datos|Nivel Lógico]] | ||
+ | }} | ||
Línea 26: | Línea 34: | ||
+ | ===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<BR /> | ||
+ | [[Imagen:especificacion1.png]] | ||
+ | ====Modelado conceptual==== | ||
+ | <br /> | ||
+ | {{MRM_Definicion|Title=Modelado| | ||
+ | Lo entederemos como un '''''lenguaje'''''<br 7> | ||
+ | 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}} | ||
+ | {{MRM_Definicion|Title=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.}} | ||
+ | {{MRM_Definicion|Title=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 | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | {{MRM_Definicion|Title=Entidad| | |
− | [[Imagen: | + | El conjunto de elementos u objetos concretos o abstractos de los que se quiere almacenar información dentro de este sistema}} |
− | + | [[Imagen:concepto_entidad.png]] | |
− | + | ;Representación gráfica | |
− | + | *Su representación es un rectángulo | |
− | + | *El nombre se especifica dentro del rectángulo | |
− | + | *Se suelen poner en singular | |
− | + | [[Imagen:entidad.png]] | |
− | + | *Una entidad va a representar un conjunto de elementos, por ejemplo la entidad '''''Alumno''''' representará varios alumnas | |
− | + | [[Imagen:entidad_conjunto.png]] | |
− | + | ;Tipos de entidades | |
− | {{MRM_Definicion|Title= | + | {{MRM_Definicion|Title=Entidades débiles| |
− | + | *Son entidades que dependen de otra para que existan o incluso para poderse identificar | |
+ | *Se representan con un doble cuadrado | ||
+ | [[Archivo:Entidad_debil.png]] | ||
}} | }} | ||
− | {{MRM_Definicion|Title= | + | {{MRM_Definicion|Title=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 | |
+ | {{MRM_Ejemplo|Title=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 | ||
+ | [[Archivo:debilidad_existencia_emp_fam.png]] | ||
}} | }} | ||
− | {{ | + | ;Debilidad en identificación |
− | + | *Son entidades que dependen de otra para que existan o incluso para poderse identificar | |
+ | *Se representan con un doble cuadrado | ||
+ | {{MRM_Ejemplo|Title=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. | ||
+ | [[Archivo:debilidad_identificacion_pla_hab.png]] | ||
}} | }} | ||
− | == | + | |
+ | ;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 | ||
+ | {{MRM_Definicion|Title=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) | ||
+ | {{MRM_Ejemplo|Title=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) | ||
+ | [[Imagen:jerarquia_1.png]] | ||
+ | |||
+ | }} | ||
+ | {{MRM_Ejemplo|Title=Jerarquía con relaciones individuales| | ||
+ | En el ejemplo anterior además una '''''publicaciones''''' tiene subscriptores | ||
+ | [[Imagen:jerarquia_2.png]] | ||
+ | }} | ||
+ | {{MRM_Ejemplo|Title=Entidad con un atributo tipo, pero sin jerarquía| | ||
+ | [[Imagen:jerarquia_3.png]] | ||
+ | }} | ||
+ | |||
+ | }} | ||
+ | ;Concepto de agregación | ||
+ | |||
+ | =====Atributos===== | ||
+ | *Qué son | ||
+ | {{MRM_Definicion|Title=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 | ||
+ | [[Imagen:atributo.png]] | ||
+ | *Se une a la entidad con una línea | ||
+ | [[Imagen:atributo_entidad.png]] | ||
+ | }} | ||
+ | ;Tipos de atributos | ||
+ | {{MRM_Definicion|Title=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. | ||
+ | {{MRM_Ejemplo|Title=Representacion| | ||
+ | [[Archivo:atributo_clave.png]]<br /> | ||
+ | *Otro caso:<br /> | ||
+ | [[Archivo:atributo_clave2.png]]<br /> | ||
+ | }} | ||
+ | |||
+ | }} | ||
+ | {{MRM_Definicion|Title=Atributo Compuesto| | ||
+ | *Es un atributo que a su vez está formado por más atributos | ||
+ | {{MRM_Ejemplo|Title=Representacion| | ||
+ | Se representa ligando con una flecha al atributo compuesto sus componentes | ||
+ | [[Archivo:atributo_compuesto.png]]<br /> | ||
+ | }} | ||
+ | |||
+ | }} | ||
+ | {{MRM_Definicion|Title=Atributo Multivaluado| | ||
+ | *Ocurre cuando un atributo puede tomar varios valores. | ||
+ | {{Nota|No confundir con el hecho de que pueda tomar un valor | ||
+ | entre una lista de valores posibles}} | ||
+ | {{MRM_Ejemplo|Title=Representación| | ||
+ | ;Se representa con un doble círculo | ||
+ | Un alumno puede hablar varios idiomas | ||
+ | [[Archivo:atributo_multivaluado1.png]] | ||
+ | Un alumno estudiante puede tener varios estudios | ||
+ | [[Archivo:atributo_multivaluado2.png]] | ||
+ | Un alumno estudiante puede tener varios estudios pero solo nos interesa el de mayor nivel entre (ESO, BASH, CICLO, CERTIFICADO, GRADO) | ||
+ | [[Archivo:atributo_multivaluado3.png]] | ||
+ | }} | ||
+ | }} | ||
+ | |||
+ | |||
+ | {{MRM_Definicion|Title=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. | ||
+ | {{MRM_Ejemplo|Title=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 | ||
+ | [[Archivo:atributo_derivado.png]] | ||
+ | |||
+ | |||
+ | }} | ||
+ | ;Atributos de la relación | ||
+ | {{MRM_Definicion|Title=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. | ||
+ | {{MRM_Ejemplo|Title=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'''''. | ||
+ | [[Imagen:atributo_relacion.png]] | ||
+ | {{Nota;: Los atributos pueden ser también de la relación}} | ||
+ | }} | ||
+ | }} | ||
+ | |||
+ | =====Interrelaciones o vínculos===== | ||
<br /> | <br /> | ||
− | + | {{MRM_Definicion|Title=Relaciones| | |
− | {{MRM_Definicion|Title= | + | *Establecen las cardinalidades entre los elementos que se relacionan de entidades |
− | 1. | + | [[Imagen:cardinalidades_1.png]] |
− | + | *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. | |
− | + | {{MRM_Ejemplos|Title=Analicemos el caso anterior| | |
− | + | {{MRM_Pregunta|Title=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''''' | |
− | + | }} | |
− | + | {{MRM_Pregunta|Title=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''''' | ||
+ | }} | ||
+ | }} | ||
+ | {{MRM_Ejemplo|Title=Representación| | ||
+ | [[Imagen:Cardinalidades_2.png]] | ||
+ | }} | ||
+ | {{MRM_Definicion|Title=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)''''' | ||
+ | [[Imagen:Cardinalidades_2.png]] | ||
+ | }} | ||
+ | |||
+ | *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 | ||
+ | *Qué es | ||
+ | #Cardinalidad de la entidad | ||
+ | #Cardinalidad de la relación | ||
+ | ;Relaciones | ||
+ | |||
+ | |||
{{Bases_datos/Nivel_conceptual}} | {{Bases_datos/Nivel_conceptual}} |
Revisión de 01:44 26 abr 2018
|