Diferencia entre revisiones de «Usuario:ManuelRomero/PHPBasico/BD/Conceptos»

De WikiEducator
Saltar a: navegación, buscar
 
(5 revisiones intermedias por el mismo usuario no mostrado)
Línea 47: Línea 47:
 
*Se representa medianta un círculo con su nombre
 
*Se representa medianta un círculo con su nombre
 
[[Archivo:elementosAtributo.png]]
 
[[Archivo:elementosAtributo.png]]
 +
*Hay varios tipos de atributos , vamos a considerar dos casos especiales
 +
**Las entidades tienen uno o varios atributos especiales, que es (o son), los atributos que identifican de forma unívoca  cada ocurrencia de esa entidad.
 +
**Ese atributo o conjunto de atributos se denomina Atributo Identificador Principal (AIP), o '''''atributo clave'''''
 +
 +
*También hay situaciones en las que los atributos pueden tomar '''''varios''''' valores para cada elemento de la entidad.
 +
*Este se conoce como atributo '''''multivaluados'''''.
 +
{{Ejemplo|
 +
'''''Un socio que se identifica por el número de socio y de él queremos saber su nombre, dirección , edad e idiomas que habla}}                   
 +
[[Archivo:entidadSocio.png]]
  
Las entidades tienen uno o varios atributos especiales, que es (o son), los atributos que identifican de forma unívoca  cada ocurrencia de esa entidad.
 
Ese atributo o conjunto de atributos se denomina Atributo Identificador Principal (AIP).
 
Las interrelaciones también se puede dar el caso en el que tengan algún atributo.
 
Los atributos (En cierta medida están muy relacionados con el contenido del diccionario de datos, que ya hemos visto anteriormente), los podemos clasificar:
 
Simples o compuestos:
 
Simples :no se pueden dividir en otros atributos
 
Compuesto: Se pueden  dividir en componenetes más pequeños que representan atributos más básicos con su propio significado independiente Ejemplo: Dirección
 
Monovaluados o multivaluados
 
Monovaluados: son aquellos que tienen un sólo valor para una entidad en particular.
 
Multivaluados: Cuando un atributo, puede tener  un conjunto de valores para la misma entidad.  Los atributos multivaluados, pueden tener límite superior e inferior.
 
Almacenados o derivados
 
Los atributos almacenados: son aquellos  que la forma de obtener los valores que tienen, es consultado a los valores que previamente se han introducido.
 
Los atributos derivados: su valor se obtiene a partir de realizar algún tipo de operación con atributos almacenados, o valores conocidos.
 
 
===Relaciones===
 
===Relaciones===
 +
*Define una relación o asociación existente entre dos entidades.
 +
*Se representa con un rombo en cuyo interior se introduce en nombre da la relación
 +
[[Archivo:elementoRelacion.png]]
 +
*Normalmente la relación se identifican por verbos en la narrativa del sistema
 
====Cardinalidades====
 
====Cardinalidades====
 +
*Representa el número mayor y menor de ocurrencias de una entidad que pueden estar interrelacionadas con una ocurrencia
 +
de la  otra entidad.
 +
*Cada entidad en una interrelación, tiene su propia cadinalidad.
 +
*Los valores que se pueden establecer en la cardinalidad, son los siguientes:
 +
[0,1]
 +
[1,1]
 +
[0,N]
 +
[1,N]
 +
*El primer valor de la pareja solo puede ser 0 o 1 y dice si un elemento obligatoriamente se tiene que relacionar con otro o no
 +
*El segundo valor del par puede tomar los valores 1 o muchos (N) y respresenta si un elemento solo se puede relacionar con 1 o con varios
 +
{{Ejemplos
 +
|Establece la relación Clientes - Facturas
 +
}}
  
 
;Qué es una base de datos
 
;Qué es una base de datos
 +
*Una base de datos es un conjunto de información (datos) almacenados de forma organizada siguiendo algún criterio de forma que se optimice su gestión.
 +
'''''Almacenados''''' Necesito un dispositivo de almacenamiento permanente (un disco duro)
 +
'''''
 +
== do
 +
== f ==
 +
==
 +
 +
 
;elementos
 
;elementos
 
#tabla
 
#tabla
Línea 79: Línea 100:
  
 
;
 
;
 +
==Mysql con php==
 +
===Conectándonos a la base de datos===
 +
===Mysql y su extensión mysqli para php===
 +
: CONECTARNOS A LA BASE DE DATOS
 +
*A continuación iremos viendo como implementar las acciones básicas en el lenguaje
 +
:Conectarse
 +
*Para conectarse a una base de datos , creamos una instacia de la clase mysqli de la forma
 +
<source lang=php>
 +
$miConexion = new mysqli(....);
 +
</source>
 +
</div>
 +
 +
<div class="slide">
 +
;Extensión Mysqli
 +
*El constructor de la clase puede recibir hasta 5 parámetros, de los cuales 4 se suelen usar con bastante frecuencia
 +
#$host nombre o ip del equipo (null o localhost, identificaría el equipo actual).i
 +
#'''''$usario''''' es el usuario de la base de datos
 +
#'''''$pass'''''
 +
#'''''$nombreBD'''''
 +
#'''''$puerto'''''
 +
#'''''$shocket'''''
 +
</div>
 +
 +
<div class="slide">
 +
;Ejemplo new mysqli(...)
 +
<source lang=php>
 +
$host="localhost"
 +
$usuario="manolo";
 +
$pass="romero";
 +
$nombreBD="alumnos";
 +
 +
$miConexion = new mysqli ($host,$usuario,$pass,$nombreBD);
 +
if ($miConexion==null)
 +
    echo"Error conectando a la base de datos";
 +
else
 +
    echo "Conectado a la base de datos";
 +
</source>
 +
 +
 +
 +
 +
 +
===Clausula SELECT con query===
 +
*Tenemos dos maneras de realizar consultas con mysqli
 +
#query
 +
#real_query
 +
*En el primero caso el método nos retorna un cursor que será de la clase mysqli_result
 +
*En el segundo caso nos retornará un booleano y para leer los datos deberemos usar o '''''store_result''''' o '''''use_result''''' según veamos a continuación.
 +
</div>
 +
<div class="slide">
 +
===Método query===
 +
*Una vez que tenemos los datos almacenados debemos saber acceder.
 +
*Tenemos 4 formas de poder acceder a los datos según usemos un método u otro
 +
;fetch_array()
 +
:Va obteniendo cada registro como un array
 +
:Este array podemos usar tanto de forma indexada, como asociativa (con el nombre del campo)
 +
</div>
 +
<div class="slide">
 +
 +
;fetch_assoc()
 +
:En este caso el array que retorna es asociativo
 +
;fetch_row()
 +
:En este caso el array que retorna es indexado
 +
;fetch_object()
 +
:En este caso en lugar de retornar un array, retorna un objeto, donde cada campo son los diferentes atributos de ese objeto
 +
*En todos los casos cada vez que leemos un elemento de mysqli_result, lo que por comparativa sería un cursor, vamos avanzando al siguiente. Cuando hayamos leído todos retornaría null
 +
</div>
 +
<div class="slide">
 +
 +
{{Actividad|
 +
Optén todos los registros de la tabla familia  y visualizalos en una tabla usando los tres modos de lectura de datos vistos anteriormente}}
 +
*Para liberar un recurso del tipo '''''mysqli_result''''', usamos el método '''''free()''''';
 +
</div>
 +
<div class="slide">
 +
*La clase '''''mysqli_result''''', además de los métodos vistos tiene un par de atributos interesantes
 +
;int $field_count;
 +
:Nos dice cuantas columnas tiene el query actual
 +
;int $num_rows;
 +
:Nos dice cuantas filas hemos obtenido con la consulta
 +
*Tenemos una lista completa
 +
http://es.php.net/manual/es/class.mysqli-result.php
 +
</div>
 +
<div class="slide">
 +
</div>
 +
<div class="slide">
 +
{{Resumen|
 +
<source lang=php>
 +
$conexion= new mysqli($host,$user,$pass,$bd);
 +
if ($conexion->connect_errno==null){
 +
  $resultado = $conexion->query($consulta);
 +
  $numFilas = $resultado->num_rows;
 +
  $numCampos = $resultado->fields_count;
 +
  echo "La consulta ha retornado $numFilas filas con  $numCampos columnas";
 +
  $fila = $resultado->fetch_array();
 +
  while ( $fila){
 +
          echo"El valor del primer campo es $fila[0]";
 +
          $fila = $resultado->fetch_array();
 +
  }
 +
  $resultado->free();
 +
  $conexion->close();
 +
}
 +
</source>

Última revisión de 01:39 21 may 2016



Modelo de datos de una aplicación

  • Cuando vamos a realizar una aplicación sea web o sea de escritorio, nos vamos a encontrar con que nuestra aplicación va a gestionar datos
  • Estos datos que en nuestra aplicación será información, en muchas ocasiones los tendremos que almacenar para que permanezcan accesibles despúes de que la aplicación deje de ejecutarse, de modo que en próximas ejecuciones podamos acceder a ella.


Icon casestudy.gif

Ejemplo

El usuario inserta un nombre de usuario y password


  • Para este cometido están las bases de datos. Un sistema de información informatizado y organizado que permite almacenar datos de manera organizada que persisten en el sistema.

La base de datos

  • La base de datos hay que construirla
  • Como todas las construcciones, antes de construirla hay que diseñar como va a ser
  • En este campo para diseñar la base de datos vamos

Modelo entidad relación

  • Es un diagrama que nos va a permitir hacer una especie de análisis/diseño de nuestra base de datos
  • Se trata de investigar y obtener la siguiente información


Icon activity.jpg

Diagrama Entidad/Relación

  1. De QUÉ elementos queremos almacenar información entidades
  2. QUÉ información quiero almacenar atributos
  3. QUÉ relación existe entre las entidades



ElementosER.png


Icon casestudy.gif

Ejemplo

Quiero guardar información de los usuarios de una biblioteca (nombre y dirección) que toman prestados libros (título y autor)





Icon casestudy.gif

Ejemplo

En un instituto necesitamos saber qué alumnos (nombre y edad) están matriculados en cada asignatura (título y horas de clase) y los profesores que las imparten (nombre y titulo universitario


  • A continuación vamos a realizar una visión general del modelo.

Entidades

  • Se representa mediante un cuadrado como ya hemos visto antes

ElementosEntidad.png

  • Es el objeto básico de representación en el modelo E/R.


Icon define.gif

Definición

  • Ente del mundo real con existencia independiente;
  • La existencia puede ser física o conceptual.

Es un elementos del sistema, acerca del cual queremos almacenar información


  • Suelen ser nombre


Icon casestudy.gif

Ejemplo

  • Un socio de la biblioteca toma prestados libros
  • Un visitante se identifica con nombre y usario para acceder al sistema

...


Atributos

  • Cada una de las propiedades o características de una entidad.
  • Se representa medianta un círculo con su nombre

ElementosAtributo.png

  • Hay varios tipos de atributos , vamos a considerar dos casos especiales
    • Las entidades tienen uno o varios atributos especiales, que es (o son), los atributos que identifican de forma unívoca cada ocurrencia de esa entidad.
    • Ese atributo o conjunto de atributos se denomina Atributo Identificador Principal (AIP), o atributo clave
  • También hay situaciones en las que los atributos pueden tomar varios valores para cada elemento de la entidad.
  • Este se conoce como atributo multivaluados.


Icon casestudy.gif

Ejemplo

Un socio que se identifica por el número de socio y de él queremos saber su nombre, dirección , edad e idiomas que habla


EntidadSocio.png

Relaciones

  • Define una relación o asociación existente entre dos entidades.
  • Se representa con un rombo en cuyo interior se introduce en nombre da la relación

ElementoRelacion.png

  • Normalmente la relación se identifican por verbos en la narrativa del sistema

Cardinalidades

  • Representa el número mayor y menor de ocurrencias de una entidad que pueden estar interrelacionadas con una ocurrencia
de la  otra entidad.
  • Cada entidad en una interrelación, tiene su propia cadinalidad.
  • Los valores que se pueden establecer en la cardinalidad, son los siguientes:
[0,1]
[1,1]
[0,N]
[1,N]
  • El primer valor de la pareja solo puede ser 0 o 1 y dice si un elemento obligatoriamente se tiene que relacionar con otro o no
  • El segundo valor del par puede tomar los valores 1 o muchos (N) y respresenta si un elemento solo se puede relacionar con 1 o con varios

Plantilla:Ejemplos

Qué es una base de datos
  • Una base de datos es un conjunto de información (datos) almacenados de forma organizada siguiendo algún criterio de forma que se optimice su gestión.

Almacenados Necesito un dispositivo de almacenamiento permanente (un disco duro)

== do

f

==


elementos
  1. tabla
  2. atributo
  3. relaciones
atributo

tipo restricciones o reglas

relaciones

integridad referencial

Qué es un gestor de bases de datos

campo campo clave

Mysql con php

Conectándonos a la base de datos

Mysql y su extensión mysqli para php

CONECTARNOS A LA BASE DE DATOS
  • A continuación iremos viendo como implementar las acciones básicas en el lenguaje
Conectarse
  • Para conectarse a una base de datos , creamos una instacia de la clase mysqli de la forma
 $miConexion = new mysqli(....);

</div>

Extensión Mysqli
  • El constructor de la clase puede recibir hasta 5 parámetros, de los cuales 4 se suelen usar con bastante frecuencia
  1. $host nombre o ip del equipo (null o localhost, identificaría el equipo actual).i
  2. $usario es el usuario de la base de datos
  3. $pass
  4. $nombreBD
  5. $puerto
  6. $shocket
Ejemplo new mysqli(...)
 $host="localhost"
 $usuario="manolo";
 $pass="romero";
 $nombreBD="alumnos";
 
 $miConexion = new mysqli ($host,$usuario,$pass,$nombreBD);
 if ($miConexion==null)
     echo"Error conectando a la base de datos";
 else
     echo "Conectado a la base de datos";



Clausula SELECT con query

  • Tenemos dos maneras de realizar consultas con mysqli
  1. query
  2. real_query
  • En el primero caso el método nos retorna un cursor que será de la clase mysqli_result
  • En el segundo caso nos retornará un booleano y para leer los datos deberemos usar o store_result o use_result según veamos a continuación.

Método query

  • Una vez que tenemos los datos almacenados debemos saber acceder.
  • Tenemos 4 formas de poder acceder a los datos según usemos un método u otro
fetch_array()
Va obteniendo cada registro como un array
Este array podemos usar tanto de forma indexada, como asociativa (con el nombre del campo)
fetch_assoc()
En este caso el array que retorna es asociativo
fetch_row()
En este caso el array que retorna es indexado
fetch_object()
En este caso en lugar de retornar un array, retorna un objeto, donde cada campo son los diferentes atributos de ese objeto
  • En todos los casos cada vez que leemos un elemento de mysqli_result, lo que por comparativa sería un cursor, vamos avanzando al siguiente. Cuando hayamos leído todos retornaría null



Icon activity.jpg

Actividad

Optén todos los registros de la tabla familia y visualizalos en una tabla usando los tres modos de lectura de datos vistos anteriormente



  • Para liberar un recurso del tipo mysqli_result, usamos el método free();
  • La clase mysqli_result, además de los métodos vistos tiene un par de atributos interesantes
int $field_count;
Nos dice cuantas columnas tiene el query actual
int $num_rows;
Nos dice cuantas filas hemos obtenido con la consulta
  • Tenemos una lista completa
http://es.php.net/manual/es/class.mysqli-result.php

{{Resumen|

$conexion= new mysqli($host,$user,$pass,$bd);
if ($conexion->connect_errno==null){
   $resultado = $conexion->query($consulta);
   $numFilas = $resultado->num_rows;
   $numCampos = $resultado->fields_count;
   echo "La consulta ha retornado $numFilas filas con  $numCampos columnas";
   $fila = $resultado->fetch_array();
   while ( $fila){
          echo"El valor del primer campo es $fila[0]";
          $fila = $resultado->fetch_array();
   }
   $resultado->free();
   $conexion->close();
}