Diferencia entre revisiones de «Plantilla:PHP/ConceptosGeneralesBaseDatos»
Línea 1: | Línea 1: | ||
+ | __TOC__ | ||
<div id=parrafo> | <div id=parrafo> | ||
===BASES DE DATOS: Introducción=== | ===BASES DE DATOS: Introducción=== | ||
Línea 4: | Línea 5: | ||
En cualquier caso vamos a aclarar a nivel intuitivo conceptos importantes para usar posteriormente.<br /> | En cualquier caso vamos a aclarar a nivel intuitivo conceptos importantes para usar posteriormente.<br /> | ||
{{MRM_Definicion|Title=Base de datos| | {{MRM_Definicion|Title=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 ( | + | 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}}<br /> |
[[Imagen:bibliotecaMRM.jpg|center]]<br /> | [[Imagen:bibliotecaMRM.jpg|center]]<br /> | ||
− | Sería inimaginable buscar un libro en una biblioteca si no hubiera una | + | 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.<br /> |
[[Imagen:libroGrande.jpg|center]]<br /> | [[Imagen:libroGrande.jpg|center]]<br /> | ||
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.<br /> | 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.<br /> | ||
Línea 19: | Línea 20: | ||
{{MRM_Resumen|Title=Formas Normales| | {{MRM_Resumen|Title=Formas Normales| | ||
;1FN | ;1FN | ||
− | :Toda tabla tiene una clave primaria y no puede haber valores multivaluados en la misma tupla | + | :Toda tabla tiene una clave primaria y no puede haber valores '''multivaluados''' en la misma tupla |
;2FN | ;2FN | ||
:Todo atributo no primo depende de forma completa de la clave y no solo de parte de ella | :Todo atributo no primo depende de forma completa de la clave y no solo de parte de ella | ||
Línea 27: | Línea 28: | ||
:Los atributos primos que forman una clave no se implican entre ellos }} | :Los atributos primos que forman una clave no se implican entre ellos }} | ||
{{Tip|Atributos '''''primos''''' son los que forman parte de alguna '''clave candidata'''}} | {{Tip|Atributos '''''primos''''' son los que forman parte de alguna '''clave candidata'''}} | ||
− | {{Tip|Atributos no primos son los que no forman parte de ninguna clave candidata}} | + | {{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). | *Idea de independizar la base de datos y el lenguaje de programación: concepto de driver, conector y extensión (mysql, mysqli, PDO). | ||
Línea 50: | Línea 48: | ||
;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 es que está implementado | + | *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> | ||
Línea 58: | Línea 56: | ||
*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 | ||
− | #'''''PDO''''' usar una extensión | + | #'''''PDO''''' usar una extensión genérica que permite conectarse con cualquier gestor de BD, sin necesidad de cambiar nada de código. |
</div> | </div> | ||
<div class="slide"> | <div class="slide"> | ||
</div> | </div> |
Revisión de 21:35 9 ene 2017
Contenido
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.
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 |
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.
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.
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 inecesarias, 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
|
- 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
- Para trabajar con bases de datos debemos
- 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).