Plantilla:PHP/ConceptosGeneralesBaseDatos
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 es un término que habitualmente usamos de forma coloquial.
Una base de datos es una colección o conjunto de 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.
Esto implica tener que realizar un análisis detallado del sistema, buscando de alguna forma todos los posibles casos que se pueden producir para tener la base de datos preparada para que esa situación se pueda almacenar en forma de datos dentro de mi sistema
El diseño de la base de datos se debería de hacer solo una vez y modificarlo pocas veces durante su vida |
Sistema de información
Es la parte lógica o de información de un determinado sistema. |
Dentro de un sistema que vayamos a automatizar, tendremos elementos dinámicos que corresponden a las acciones o programación y una parte estática que corresponden a los datos que queremos almacenar en nuestro sistema |
Ciclo en el desarrollo de una base de datos
Hay tres niveles como podemos ver en la imagenive
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
Nivel Lógico
Nivel Físico
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
|
Usar BD desde un lenguaje de programación
Una de las principales características que tiene la programación del back-end o programación al lado del servidor es acceder a bases de datos. Esta parte sí que es intrínseca y propia del lado del servidor.
Nosotros accederemos a la base de datos desde nuestro programa. Desde él de manera habitual, realizaremos las siguientes acciones :
1. -Conectarnos a la base de datos
2. -Seleccionar
3. -Trabajar con Bases de datos
3.2 -Procesar información
3.3 -Cerrar la base de datos
|
Para realizar estas acciones disponemos de diversas Funciones/Clases específicas dentro de PHP, Nos referiremos a ellos como extensiones de PHP.
|
http://php.net/manual/es/mysqli.overview.php http://php.net/manual/es/book.pdo.php http://php.net/manual/es/book.mysqli.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:
- mysqli usar una extensión nativa con su SGBD en concreto mysql que viene con el propio lenguaje
- PDO usar una extensión genérica que permite conectarse con cualquier gestor de BD, sin necesidad de cambiar nada de código, salvo los parámetros de la construcción del objeto.
Ciclo en el desarrollo de una base de datos
Hay tres niveles como podemos ver en la imagen
- Nivel conceptual
- Nivel Lógico
- Nivel Físico
[imagen:ciclo_vida_bd.png]
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 [Imagen:especificacion.png]
Nivel Lógico
Nivel Físico
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
|
Usar BD desde un lenguaje de programación
Una de las principales características que tiene la programación del back-end o programación al lado del servidor es acceder a bases de datos. Esta parte sí que es intrínseca y propia del lado del servidor.
Nosotros accederemos a la base de datos desde nuestro programa. Desde él de manera habitual, realizaremos las siguientes acciones :
1. -Conectarnos a la base de datos
2. -Seleccionar
3. -Trabajar con Bases de datos
3.2 -Procesar información
3.3 -Cerrar la base de datos
|
Para realizar estas acciones disponemos de diversas Funciones/Clases específicas dentro de PHP, Nos referiremos a ellos como extensiones de PHP.
|
http://php.net/manual/es/mysqli.overview.php http://php.net/manual/es/book.pdo.php http://php.net/manual/es/book.mysqli.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:
- mysqli usar una extensión nativa con su SGBD en concreto mysql que viene con el propio lenguaje
- PDO usar una extensión genérica que permite conectarse con cualquier gestor de BD, sin necesidad de cambiar nada de código, salvo los parámetros de la construcción del objeto.
</div>