|
|
(2 revisiones intermedias por el mismo usuario no mostrado) |
Línea 34: |
Línea 34: |
| {{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}} |
− | ===Sistema de información===
| |
− | {{MRM_Definicion|Title=Qué es un sistema}}
| |
− |
| |
− |
| |
− |
| |
− |
| |
− | ====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'''''
| |
− | {{MRM_Resumen|Title=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 }}
| |
− | {{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'''}}
| |
− |
| |
− | ====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 :<br />
| |
− | {{MRM_Actividad|Title=Acciones básicas trabajando con bases de datos|
| |
− | 1. -'''''Conectarnos a la base de datos'''''<br />
| |
− | :Para ello necesitamos un software específico del gestor de bases de datos con el que vayamos a trabajar.
| |
− | 2. -'''''Seleccionar'''''<br />
| |
− | :La base de datos con la que vamos a trabajar.
| |
− | 3. -'''''Trabajar con Bases de datos'''''<br />
| |
− | 3.1 -'''''Actuar'''''<br />
| |
− | :acciones a hacer con la base de datos
| |
− | :son las habituales (consultas, inserciones, modificaciones y/o borrados)
| |
− | 3.2 -'''''Procesar información'''''<br />
| |
− | :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).
| |
− | 3.3 -'''''Cerrar la base de datos'''''<br />
| |
− | :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.
| |
− | {{MRM_Puntos clave|
| |
− | ;Independizar la base de datos y el lenguaje de programación: concepto de driver, conector y extensión (mysql, mysqli, PDO).}}
| |
− | {{MRM_Recursos de la Web|Title=Lectura recomendada|
| |
− | 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.<br />
| |
− | 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>
| |
− |
| |
− | ====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'''''
| |
− | {{MRM_Resumen|Title=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 }}
| |
− | {{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'''}}
| |
− |
| |
− | ====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 :<br />
| |
− | {{MRM_Actividad|Title=Acciones básicas trabajando con bases de datos|
| |
− | 1. -'''''Conectarnos a la base de datos'''''<br />
| |
− | :Para ello necesitamos un software específico del gestor de bases de datos con el que vayamos a trabajar.
| |
− | 2. -'''''Seleccionar'''''<br />
| |
− | :La base de datos con la que vamos a trabajar.
| |
− | 3. -'''''Trabajar con Bases de datos'''''<br />
| |
− | 3.1 -'''''Actuar'''''<br />
| |
− | :acciones a hacer con la base de datos
| |
− | :son las habituales (consultas, inserciones, modificaciones y/o borrados)
| |
− | 3.2 -'''''Procesar información'''''<br />
| |
− | :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).
| |
− | 3.3 -'''''Cerrar la base de datos'''''<br />
| |
− | :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.
| |
− | {{MRM_Puntos clave|
| |
− | ;Independizar la base de datos y el lenguaje de programación: concepto de driver, conector y extensión (mysql, mysqli, PDO).}}
| |
− | {{MRM_Recursos de la Web|Title=Lectura recomendada|
| |
− | 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.<br />
| |
− | 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>
| |
− |
| |
| ===Ciclo en el desarrollo de una base de datos=== | | ===Ciclo en el desarrollo de una base de datos=== |
| <br /> | | <br /> |
− | Hay tres niveles como podemos ver en la imagenive | + | Hay tres niveles como podemos ver en la imagen |
| {{MRM_Definicion|Title=Niveles en el desarrollo de una base de datos| | | {{MRM_Definicion|Title=Niveles en el desarrollo de una base de datos| |
| #Nivel conceptual | | #Nivel conceptual |
Línea 152: |
Línea 42: |
| #Nivel Físico | | #Nivel Físico |
| }} | | }} |
− | {{imagen:ciclo_vida_bd.png}}
| + | [[Archivo: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===
| + | |
− | | + | |
− | | + | |
− | | + | |
− | | + | |
| | | |
| | | |
Línea 223: |
Línea 96: |
| #'''''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. | | #'''''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> | | </div> |
− |
| |
− | ===Ciclo en el desarrollo de una base de datos===
| |
− | <br />
| |
− | 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'''''
| |
− | {{MRM_Resumen|Title=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 }}
| |
− | {{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'''}}
| |
− |
| |
− | ====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 :<br />
| |
− | {{MRM_Actividad|Title=Acciones básicas trabajando con bases de datos|
| |
− | 1. -'''''Conectarnos a la base de datos'''''<br />
| |
− | :Para ello necesitamos un software específico del gestor de bases de datos con el que vayamos a trabajar.
| |
− | 2. -'''''Seleccionar'''''<br />
| |
− | :La base de datos con la que vamos a trabajar.
| |
− | 3. -'''''Trabajar con Bases de datos'''''<br />
| |
− | 3.1 -'''''Actuar'''''<br />
| |
− | :acciones a hacer con la base de datos
| |
− | :son las habituales (consultas, inserciones, modificaciones y/o borrados)
| |
− | 3.2 -'''''Procesar información'''''<br />
| |
− | :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).
| |
− | 3.3 -'''''Cerrar la base de datos'''''<br />
| |
− | :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.
| |
− | {{MRM_Puntos clave|
| |
− | ;Independizar la base de datos y el lenguaje de programación: concepto de driver, conector y extensión (mysql, mysqli, PDO).}}
| |
− | {{MRM_Recursos de la Web|Title=Lectura recomendada|
| |
− | 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.<br />
| |
− | 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> | | </div> |
| | | |
| | | |
− |
| |
− | </div>
| |
| |} | | |} |