Diferencia entre revisiones de «Plantilla:PHP/ConceptosGeneralesBaseDatos»

De WikiEducator
Saltar a: navegación, buscar
(BASES DE DATOS: Introducción)
Línea 15: Línea 15:
 
{{MRM_Puntos clave|
 
{{MRM_Puntos clave|
 
El diseño de la base de datos se debería de hacer solo una vez y modificarlo pocas veces durante su vida}}
 
El diseño de la base de datos se debería de hacer solo una vez y modificarlo pocas veces durante su vida}}
;Normalización
+
====Normalización====
Las bases de datos han de estar construidas de una forma '''''normal''''', de manera que evitemos redundancias inecesarias, y sólo las mantengamos cuando las consideremos necesarias y seamos conscientes de que existen.
+
Las bases de datos han de estar construidas de una forma '''''normal''''', de manera que evitemos redundancias innecesarias, y sólo las mantengamos cuando las consideremos necesarias y seamos conscientes de que existen.
 
*Si hacemos nuestros diseños usando el modelo de chen, garantizamos hasta la '''''3FN'''''
 
*Si hacemos nuestros diseños usando el modelo de chen, garantizamos hasta la '''''3FN'''''
 
{{MRM_Resumen|Title=Formas Normales|
 
{{MRM_Resumen|Title=Formas Normales|
Línea 32: Línea 32:
 
*Idea de independizar la base de datos y el lenguaje de programación: concepto de driver, conector y extensión (mysql, mysqli, PDO).
 
*Idea de independizar la base de datos y el lenguaje de programación: concepto de driver, conector y extensión (mysql, mysqli, PDO).
 
  http://php.net/manual/es/mysqli.overview.php
 
  http://php.net/manual/es/mysqli.overview.php
*Para trabajar con bases de datos debemos
+
====Trabajar con bases de datos ====
**Conectarnos (Para ello necesitamos un software específico del gestor de bases de datos con el que vayamos a trabajar).
+
*Realizaremos las siguientes acciones de forma cotidiana
**Seleccionar (La base de datos con la que vamos a trabajar).
+
;Conectarnos
 +
:Para ello necesitamos un software específico del gestor de bases de datos con el que vayamos a trabajar.
 +
;Seleccionar
 +
:La base de datos con la que vamos a trabajar.
 
</div>
 
</div>
 
 
<div class="slide">
 
<div class="slide">
 
;Trabajar con Bases de datos
 
;Trabajar con Bases de datos
**Actuar con la base de datos (Consultas, inserciones, modificaciones y/o borrados)
+
;Actuar
**Procesar información
+
:acciones a hacer con la base de datos
**Cerrar la base de datos
+
:son las habituales (consultas, inserciones, modificaciones y/o borrados)
*Para realizar estas acciones disponemos de diversas '''''Funciones/Clases''''' específicas dentro de PHP, Nos referiremos a ellos como '''''extensiones''''' de PHP
+
;Procesar información
 +
:En caso de consultas deberemos recorrer el cursor u objeto que nos retorne la consulta
 +
:Siempre contendrá el conjunto de filas devueltas (en caso de que haya).
 +
;Cerrar la base de datos
 +
:Es importante no dejar conexiones abiertas de forma innecesaria
 +
<br/>
 +
Para realizar estas acciones disponemos de diversas '''''Funciones/Clases''''' específicas dentro de PHP, Nos referiremos a ellos como '''''extensiones''''' de PHP
 
</div>
 
</div>
  
 
<div class="slide">
 
<div class="slide">
;Bases de datos y PHP
+
====Bases de datos y PHP====
*PHP tiene un API especifico para trabajar directamente con mysql '''''mysqli''''', el cual incorpora el driver y conector necesario para trabajar con ella de forma nativa
+
'''PHP''' tiene un '''''API''''' especifico para trabajar directamente con mysql '''''mysqli''''', el cual incorpora el driver y conector necesario para trabajar con ella de forma nativa. Que el driver sea nativo implica que está implementado utilizando un '''framework''' de extensiones de php.<br />
*Que el driver sea nativo es que está implementado utilizando un '''framework''' de extensiones dde php.
+
También vamos a disponer de la extensión PDO, la cual se independiza del gestor concreto de bases datos que vayamos a utilizar.
*También vamos a disponer de la extensión PDO, la cual se independiza del gestor concreto de bases datos que vayamos a utilizar.
+
 
</div>
 
</div>
  
 
<div class="slide">
 
<div class="slide">
;Extensiones de php
+
====Extensiones de php====
 
*Por lo tanto en este tema vamos a ver dos extensiones:  
 
*Por lo tanto en este tema vamos a ver dos extensiones:  
 
#'''''mysqli''''' usar una extensión nativa con su SGBD en concreto mysql que viene con el propio lenguaje
 
#'''''mysqli''''' usar una extensión nativa con su SGBD en concreto mysql que viene con el propio lenguaje

Revisión de 20:40 9 ene 2017

BASES DE DATOS: Introducción

Una muy breve introducción sobre lo que es una base de datos. Es éste un concepto conocido, pues se ha debido de estudiar previamente.
En cualquier caso vamos a aclarar a nivel intuitivo conceptos importantes para usar posteriormente.


Icon define.gif
Base de datos

Una base de datos es una colección o conjunto de datos que vamos a almacenar en un dispositivo de almacenamiento permanente (generalmente HD), que tiene una determinada estructura u organización, la cual nos va a permitir operar de una forma organizada con esos datos


BibliotecaMRM.jpg

Sería inimaginable buscar un libro en una biblioteca si no hubiera una organización u orden para localizarlo o a la hora de añadir un libro nuevo (en una sección, en una estantería concreta y no en cualquiera.

LibroGrande.jpg

Igualmente si voy a tener libros pequeños, los pondré en estanterías pequeñas, si voy a almacenar libros grandes necesitaré tener estanterías grandes.
Siguiendo esta lógica, las bases de datos han de estar preparadas para almacenar el tipo de información que nos pueda venir, para ello habrá que hacer un diseño correcto de las tablas y atributos para poder almacenar toda la información de nuestro sistema.


Icon key points.gif

Puntos clave

El diseño de la base de datos es un factor fundamental para el éxito de la aplicación



Icon key points.gif

Puntos clave

El diseño de la base de datos se debería de hacer solo una vez y modificarlo pocas veces durante su vida

Normalización

Las bases de datos han de estar construidas de una forma normal, de manera que evitemos redundancias innecesarias, y sólo las mantengamos cuando las consideremos necesarias y seamos conscientes de que existen.

  • Si hacemos nuestros diseños usando el modelo de chen, garantizamos hasta la 3FN


Icon summary.gif
Formas Normales
1FN
Toda tabla tiene una clave primaria y no puede haber valores multivaluados en la misma tupla
2FN
Todo atributo no primo depende de forma completa de la clave y no solo de parte de ella
3FN
Los atributos no primos no implican a otros atributos no primos
Forma normal de Boyce y Codd.
Los atributos primos que forman una clave no se implican entre ellos


Icon present.gif
Tip: Atributos primos son los que forman parte de alguna clave candidata


Icon present.gif
Tip: Atributos no primos son los que no forman parte de ninguna clave candidata


  • Idea de independizar la base de datos y el lenguaje de programación: concepto de driver, conector y extensión (mysql, mysqli, PDO).
http://php.net/manual/es/mysqli.overview.php

Trabajar con bases de datos

  • Realizaremos las siguientes acciones de forma cotidiana
Conectarnos
Para ello necesitamos un software específico del gestor de bases de datos con el que vayamos a trabajar.
Seleccionar
La base de datos con la que vamos a trabajar.
Trabajar con Bases de datos
Actuar
acciones a hacer con la base de datos
son las habituales (consultas, inserciones, modificaciones y/o borrados)
Procesar información
En caso de consultas deberemos recorrer el cursor u objeto que nos retorne la consulta
Siempre contendrá el conjunto de filas devueltas (en caso de que haya).
Cerrar la base de datos
Es importante no dejar conexiones abiertas de forma innecesaria


Para realizar estas acciones disponemos de diversas Funciones/Clases específicas dentro de PHP, Nos referiremos a ellos como extensiones de PHP

Bases de datos y PHP

PHP tiene un API especifico para trabajar directamente con mysql mysqli, el cual incorpora el driver y conector necesario para trabajar con ella de forma nativa. Que el driver sea nativo implica que está implementado utilizando un framework de extensiones de php.
También vamos a disponer de la extensión PDO, la cual se independiza del gestor concreto de bases datos que vayamos a utilizar.

Extensiones de php

  • Por lo tanto en este tema vamos a ver dos extensiones:
  1. mysqli usar una extensión nativa con su SGBD en concreto mysql que viene con el propio lenguaje
  2. PDO usar una extensión genérica que permite conectarse con cualquier gestor de BD, sin necesidad de cambiar nada de código.