Diferencia entre revisiones de «Usuario:ManuelRomero/PHPBasico/BD/Conceptos»
De WikiEducator
(10 revisiones intermedias por el mismo usuario no mostrado) | |||
Línea 1: | Línea 1: | ||
{{Usuario:ManuelRomero/PHPBasico/BD/nav}} | {{Usuario:ManuelRomero/PHPBasico/BD/nav}} | ||
__NOTOC__ | __NOTOC__ | ||
− | + | ===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. | ||
+ | {{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 | ||
+ | {{Actividad | ||
+ | |Title=Diagrama Entidad/Relación | ||
+ | | | ||
+ | #De '''''QUÉ''''' elementos queremos almacenar información '''''entidades''''' | ||
+ | #'''''QUÉ''''' información quiero almacenar '''''atributos''''' | ||
+ | #'''''QUÉ''''' relación existe entre las entidades}} | ||
+ | [[Imagen:elementosER.png|400px|center]] | ||
+ | {{Ejemplo| | ||
+ | Quiero guardar información de los usuarios de una biblioteca (nombre y dirección) que toman prestados libros (título y autor) | ||
+ | }} | ||
+ | {{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 | ||
+ | [[Imagen:elementosEntidad.png]] | ||
+ | *Es el objeto básico de representación en el modelo E/R. | ||
+ | {{Definicion | ||
+ | |title=Entidad | ||
+ | | | ||
+ | *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 | ||
+ | {{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 | ||
+ | [[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]] | ||
+ | |||
+ | ===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==== | ||
+ | *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 19: | 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.
- 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
Ejemplo | |
Quiero guardar información de los usuarios de una biblioteca (nombre y dirección) que toman prestados libros (título y autor)
|
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
- Es el objeto básico de representación en el modelo E/R.
Es un elementos del sistema, acerca del cual queremos almacenar información |
- Suelen ser nombre
Ejemplo | |
... |
Atributos
- Cada una de las propiedades o características de una entidad.
- Se representa medianta un círculo con su nombre
- 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 |
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
- 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
- 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
- tabla
- atributo
- 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>