08 Programacion Contenidos PDF
08 Programacion Contenidos PDF
PROGRAMACIÓN
SEMANA 8
Bases de datos en PHP
Todos los derechos de autor son de la exclusiva propiedad de IACC o de los otorgantes de sus licencias. No está
IACCemitir, difundir, poner a disposición del público ni
permitido copiar, reproducir, reeditar, descargar, publicar,
utilizar los contenidos para fines comerciales de ninguna clase. 1
SEMANA 8 – PROGRAMACIÓN
APRENDIZAJE ESPERADO
• Programar interacción con base de datos
y tablas utilizando MySQL y PHP.
IACC
2
SEMANA 8 – PROGRAMACIÓN
IACC
3
SEMANA 8 – PROGRAMACIÓN
INTRODUCCIÓN
Al utilizar bases de datos combinadas con el
lenguaje de programación PHP se generan
sistemas informáticos dinámicos que tienen la
capacidad de interactuar con el usuario y,
además, guardar la información para que
pueda ser consultada y gestionada en todo
momento.
Medir el progreso del desarrollo de software por líneas de código es como medir el progreso de la
construcción de un avión por su peso.
Bill Gates
IACC
4
SEMANA 8 – PROGRAMACIÓN
Una base de datos puede tener una estructura simple. Por ejemplo, una base de datos que contenga
los títulos de todos los libros que se tiene en una biblioteca o bien, una más compleja, como la base
de datos de un sitio web que contiene toda su información.
La información que se almacena en una base de datos proviene desde muchas fuentes. Por ejemplo,
el catálogo en línea de una compañía requiere una base de datos para almacenar información sobre
todos los productos de la compañía. Un sitio web de membresía requiere una base de datos para
almacenar información sobre los miembros. Un sitio web de empleo requiere una base de datos (o
quizás dos bases de datos) para almacenar información sobre ofertas de trabajo e información de
los currículos. La información que planea almacenar podría ser similar a la información almacenada
por los sitios web en Internet, o información exclusiva de su aplicación.
IACC
5
SEMANA 8 – PROGRAMACIÓN
Una base de datos web está diseñada para ayudar a un usuario a realizar una tarea. En ese sentido,
puede tratarse de una aplicación simple que muestra información en una ventana del navegador
(por ejemplo, las vacantes de trabajo cuando el usuario selecciona un título) o un programa
complicado con funcionalidad extendida (por ejemplo, la solicitud de registro en alguna página
web).
En gran medida, la base de datos es la memoria a largo plazo de su aplicación de base de datos web.
Su aplicación radica en que permite la interacción del usuario con la información dentro de la base
de datos. Los programas crean la pantalla que el usuario ve en la ventana del navegador, hacen que
su aplicación sea interactiva al aceptar y procesar la información que el usuario escribe en la ventana
del navegador y almacenan información en la base de datos.
Las páginas web creadas solo con HTML son estáticas, lo que significa que el usuario no puede
interactuar con el sitio. Las páginas web dinámicas, por otro lado, permiten al usuario interactuar
con ellas. De este modo, diferentes usuarios pueden ver diferentes páginas web y estas páginas
pueden requerir el manejo y almacenamiento de datos lo que a través de formularios o recursos
web le dan dinamismo a la aplicación.
Por ejemplo, un usuario que mira el catálogo de productos en línea de una tienda de muebles puede
optar por ver información sobre sofás, mientras que otro usuario puede optar por ver información
sobre las mesas de café.
Cabe señalar que, para la creación de páginas web dinámicas, se debe usar otro idioma además de
HTML. Un lenguaje ampliamente utilizado para dinamizar páginas web es JavaScript. Es útil para
varios propósitos, como mouse-over (uso del mouse sobre el texto) o para aceptar y validar la
información que los usuarios escriben en un formulario web. Sin embargo, no es útil para interactuar
con una base de datos ya que a nivel de base de datos se requiere de un manejador de base de
datos y de un lenguaje de programación que facilite la integración entre el código HTML y esta. En
este sentido no se utilizaría JavaScript para mover la información del formulario web a una base de
datos. Sin embargo, PHP es un lenguaje especialmente adecuado para interactuar con bases de
datos, ya que puede aceptar y validar la información que los usuarios escriben en un formulario web
y también puede mover la información a una base de datos.
IACC
6
SEMANA 8 – PROGRAMACIÓN
Otros conceptos que se deben definir al hablar de bases de datos, se refiere a los principales
lenguajes o manejadores, es decir, a SQL y MySQL.
1.1.1 SQL
SQL (Structured Query Language, o Lenguaje de Consulta Estructurada) se puede definir como el
lenguaje estándar ANSI/ISO de creación, inserción, interacción y control de bases de datos
relacionales. Es un lenguaje declarativo, en donde solo hay que indicar qué se quiere realizar. En
comparación a los lenguajes procedimentales, es necesario ser específico de cómo hay que hacer
cualquier acción sobre la base de datos. SQL es parecido al lenguaje natural y precisamente, se
parece mucho al inglés, siendo bastante expresivo. Por ello, como lenguaje estándar, con él se
pueden acceder los sistemas relacionales.
Un modelo relacional tiene una estructura de almacenamiento de los datos a través de relaciones.
En la siguiente imagen se muestra un ejemplo de este modelo.
A la base de datos se le asigna un nombre, y dentro de esta se definen tablas, cada tabla posee a un
conjunto de atributos. Al trabajar con SQL, a las relaciones se les denomina tablas en lugar de
relaciones, de columnas en lugar de atributos y de filas en lugar de datos secuenciales (o tuplas). A
pesar de que la nomenclatura utilizada en SQL sea diferente, la conceptualización de estos son los
mismos.
IACC
7
SEMANA 8 – PROGRAMACIÓN
1.1.2 MySQL:
Oracle, proveedor de MySQL, define esta herramienta como un sistema para administración de
bases de datos relacional (RDBMS). Las bases de datos permiten almacenar datos, buscar
información en ellas, ordenar y recuperar sus datos de forma rápida y sólida. Su servidor controla el
acceso a los datos para el uso simultáneo de varios usuarios, proporcionar acceso a los datos que
contenga y asegurar solo tengan acceso los usuarios con autorización. Por lo cual, MySQL es un
servidor multiusuario y de subprocesamiento múltiple. Utiliza SQL, el lenguaje más usado en el
mundo para la consulta de bases de datos, este trabaja con una licencia de código abierto, y también
existen licencias comerciales.
MySQL es rápido y fácil de usar, y por ello se usa en muchos sitios web. La velocidad fue el foco
principal de los desarrolladores desde el principio, y en pos de eso, tomaron la decisión de ofrecer
menos funciones que sus principales competidores (como Oracle y Sybase). Sin embargo, a pesar
de que MySQL tiene menos funciones que sus competidores comerciales, posee todas las
características que necesita la mayoría de los desarrolladores de bases de datos.
Las bases de datos relacionales se componen de relaciones, conocidas de manera más común como
tablas. Para familiarizarse con estos elementos, se deben conocer algunos conceptos clave, tales
como:
• Tablas: Se refiere a una estructura para almacenar datos. Las tablas tienen un nombre, y
además se componen de columnas y de filas, que contienen información específica.
• Columnas: Cada columna debe tener un nombre único y cada una de estas, lleva anudado
un tipo de datos.
• Filas: Se trata de los valores asignados a cada registro. Todos tienen los mismos atributos
debido al formato tabular.
• Valores: Cada fila se compone de valores individuales que se enlazan con las columnas. Cada
valor contiene el tipo de dato especificado por su columna.
IACC
8
SEMANA 8 – PROGRAMACIÓN
El servidor MySQL debe ser capaz de comprender las instrucciones que se envían. La comunicación
con el servidor se basa principalmente en SQL. El servidor MySQL entiende SQL, pero PHP no
entiende SQL, lo que no es necesario, ya que PHP establece una conexión con el servidor MySQL y
envía el mensaje SQL a través de la conexión. El servidor MySQL interpreta el mensaje SQL y sigue
las instrucciones. El servidor MySQL envía un mensaje de retorno, indicando su estado y lo que hizo
(o reportando un error si no pudo entender o seguir las instrucciones).
IACC
9
SEMANA 8 – PROGRAMACIÓN
Para conectar con el servidor, hay que asegurarse que está funcionando y de que permite
conexiones, sean estas locales o remotas. Además, se debe contar con la autorización necesaria
para la conexión.
IACC
10
SEMANA 8 – PROGRAMACIÓN
Se debe sustituir el parámetro nombre_bd por el nombre de la base de datos que se desee. Luego
de eso, la base de datos está creada, debiendo aparecer una secuencia que indica que se ha
creado correctamente.
Lo anterior, arrojaría -en un principio- como resultado que el campo está vacío porque no se estaría
haciendo uso de base de datos alguna. Para observar las bases de datos existentes en el sistema, se
realiza la siguiente consulta:
IACC
11
SEMANA 8 – PROGRAMACIÓN
De este modo, MySQL mostraría el listado de las bases de datos existentes en el servidor. Para
trabajar con una de ellas, se debe abrir de la siguiente forma:
La sentencia “create table” genera una nueva tabla en la base de datos en uso. Esta tiene tres
columnas (nombre, apellido y dirección), cada una es de tipo carácter y su longitud. Cabe destacar
que los nombres de las columnas admiten caracteres acentuados.
IACC
12
SEMANA 8 – PROGRAMACIÓN
https://bit.ly/2QC4LPo
Las tablas pueden borrarse con la sentencia “drop table”, como se muestra a continuación:
IACC
13
SEMANA 8 – PROGRAMACIÓN
IACC
14
SEMANA 8 – PROGRAMACIÓN
Dada la siguiente tabla, determine qué trabajadores ganan un salario mayor a 1350.
• ¿Qué datos piden en la consulta? En este caso, el nombre y los apellidos de los trabajadores.
• ¿Dónde están esos datos? Solo se muestra una tabla, entonces, en la tabla de trabajadores
está la información.
• Finalmente, ¿qué requisitos o condiciones deben cumplir los registros de búsqueda? Se
solicita que el sueldo debe ser mayor a 1350.
El Sistema de Gestión de Base de Datos (SGBD) interpreta esta información, con el fin de generar
una respuesta que se ajusta a las condiciones dadas. En este sentido y en lenguaje natural sería algo
así como:
Selecciónar el NOMBRE y los APELLIDOS del archivo EMPLEADOS donde el SALARIO sea mayor a
1350
En SQL se establece una sintaxis que traduce esta misma información, ya que la forma de operar es
parecida. Esta información se obtiene mediante la siguiente consulta:
IACC
15
SEMANA 8 – PROGRAMACIÓN
• Los campos: NOMBRE, APELLIDOS Y SALARIO deben existir en la tabla EMPLEADOS, ya que
de lo contrario, se generará un error.
• La tabla EMPLEADOS debe existir en la base de datos.
NOMBRE APELLIDOS
Carlos Jiménez Clarín
José Calvo Sisman
Tabla 2. Visualización de Consulta en SQL.
Fuente: Elaboración propia en base a https://bit.ly/2DDHQk2
En general y luego de observar este ejemplo, se puede concluir que una consulta en MySQL cuenta
con una estructura definida:
IACC
16
SEMANA 8 – PROGRAMACIÓN
En donde los CAMPOS y la TABLA deben estar previamente creados en la base de datos y la
CONDICIÓN puede estar compuesta de operadores lógicos, matemáticos y relacionales.
https://bit.ly/2TfrNx4
https://bit.ly/2n2UZbw
IACC
17
SEMANA 8 – PROGRAMACIÓN
IACC
18
SEMANA 8 – PROGRAMACIÓN
COMENTARIO FINAL
Manejar bases de datos en SQL o MySQL es una competencia necesaria en el mundo de la
computación y la informática en la actualidad, no solo en el ámbito de PHP, sino a partir de cualquier
lenguaje, ya que estos requieren la conexión con una base de datos para la gestión de los mismos.
Al diseñar o programar sistema web, el programador se verá en la necesidad de trabajar con bases
de datos, de manera casi imprescindible. Las bases de datos le permitirán realizar consultas,
almacenar datos, eliminarlos y realizar todo el sistema de gestión.
Finalmente, en esta unidad, se dieron a conocer los comandos básicos para crear, modificar, insertar
registros y realizar consultas dentro de una colección de datos, con la finalidad de adquirir destrezas
en los comandos, cuestión que permite lograr esta interacción convirtiendo una aplicación web en
un sistema web informático dinámico.
IACC
19
SEMANA 8 – PROGRAMACIÓN
REFERENCIAS
The PHP Group. (2001 – 2018). PHP. Consultado en www.php.net
IACC
20
SEMANA 8 – PROGRAMACIÓN
IACC
21