“Aplicaciones Web dinámicas con PHP y MySql”

Base de Datos en la web:
RDBMS

Sergio Gabriel Rodríguez http://www.3trex.com.ar

¿Qué es una Base de Datos?
• Es un conjunto de datos almacenados con una estructura lógica. • La colección de datos, normalmente llamada base de datos, contiene información relevante para una empresa. • Tan importante como los datos, es la estructura conceptual con la que se relacionan entre ellos. • Si no tenemos los dos factores unidos no podemos hablar de una base de datos, ya que ambos combinados dan la coherencia necesaria para poder trabajar con los datos de una manera sistemática. Modelo Relacional: en las bases de datos relacionales se utilizan un grupo de tablas para representar los datos y las relaciones entre ellos. • El Modelo Relacional evita la redundancia e inconsistencia de los datos.

Definiciones de BDR
Tabla Tupla Atributo Dominio Clave Conjunto de datos organizados referentes a una entidad. Está compuesta por filas y columnas Es una hilera o fila en una tabla. Es una columna en una tabla. Es el conjunto de valores que puede tomar un Atributo. Es un atributo con una característica de relevancia para identificar la tupla.

Clave Primaria Es una clave de valor único, no ocurre más de una vez en el atributo. Cardinalidad Grado Relación Es el número de tuplas de una tabla. Es el número de atributos de una tabla. Una definición simple, es que una relación se corresponde con una tabla.

¿Qué es una DBMS?
• Son las siglas de “Sistema de Gestión de Bases de Datos”. En inglés “DataBase Manager System” • Consiste en una colección de datos interrelacionados y un conjunto de programas para acceder a dichos datos. • Su objetivo principal es proporcionar una forma de almacenar y recuperar información de una Base de Datos, tanto práctica como eficientemente. • Deben proporcionar la fiabilidad de la información almacenada, a pesar de las caídas del sistema. • Debe garantizar la seguridad de acceso a los datos. • Debe proveer herramientas para definición de estructuras (DDL) y manipulación de datos (DML). Ej: creación de tablas, consultas, etc.

Bases de datos en la web
Las bases de datos permiten almacenar de una forma estructurada y eficiente toda la información de un sitio web.

Algunas Ventajas: • Proporcionar información actualizada • Facilitar la realización de búsquedas • Disminuir los costos de mantenimiento • Implementar sistemas de control de acceso • Almacenar preferencias de los usuarios

Bases de datos en la web
Solicitud de una página web dinámica con Base de datos
El cliente solicita una Página dinámica El server busca el Script solicitado

Internet

El script tiene código de acceso a BD

El documento HTML generado es enviado al cliente

El navegador interpreta y muestra el HTML

El script PHP genera un documento HTML a partir de los datos extraídos de la BD

PHP se conecta y accede a la BD

DBMS: MySQL
• MySQL es un Sistema de Gestión de Base de Datos, multihilo y multiusuario con más de seis millones de instalaciones • MySQL AB es la empresa que desarrolla MySQL como software libre en un esquema de licenciamiento dual. Por un lado lo ofrece bajo la GNU GPL, pero, empresas que quieran incorporarlo en productos privativos pueden comprar una licencia que les permita ese uso. • Su popularidad como aplicación web está muy ligada a PHP, que a menudo aparece en combinación con MySQL. • Es una base de datos muy rápida en la lectura cuando utiliza el motor no transaccional MyISAM, pero puede provocar problemas de integridad en entornos de alta concurrencia en la modificación. • En aplicaciones web hay baja concurrencia en la modificación de datos y en cambio el entorno es intensivo en lectura de datos, lo que hace a MySQL ideal para este tipo de aplicaciones.

Características de MySQL
• Un amplio subconjunto de ANSI SQL 99, y varias extensiones.

• Soporte a multiplataforma.
• Procedimientos Almacenados. • Triggers. • Vistas. • Motores de almacenamiento independientes (MyISAM para lecturas rápidas, InnoDB para transacciones e integridad referencial) • Soporte SSL. • Query caching. • Sub-SELECTs (or nested SELECTs). • Full-text indexing and searching using MyISAM engine • ACID compliance using the InnoDB, BDB and Cluster engines

(La prueba
)

ACID es un test usado por profesionales para determinar la robustez y fiabilidad de un RDBMS determinado

Tipos de Columnas
• En MySQL existen bastantes tipos diferentes disponibles, de modo que será mejor que los agrupemos por categorías: de caracteres, enteros, de coma flotante, tiempos, bloques, enumerados y conjuntos. • Tipos de datos de cadenas de caracteres CHAR: Contiene una cadena de longitud constante. Para mantener la longitud de la cadena, se rellena a la derecha con espacios. Estos espacios se eliminan al recuperar el valor. Los valores válidos para M son de 0 a 255. CHAR es un alias para CHARACTER VARCHAR: Contiene una cadena de longitud variable. Los valores válidos para M son de 0 a 255, y de 1 a 255 en versiones de MySQL anteriores a 4.0.2. Los espacios al final se eliminan. VARCHAR es un alias para CHARACTER VARYING

Tipos de Columnas
• Tipos de datos enteros TINYINT: Contiene un valor entero muy pequeño. El rango con signo es entre -128 y 127. El rango sin singo, de 0 a 255. BIT, BOOL, BOOLEAN: son sinónimos de TINYINT. SMALLINT : Contiene un entero corto. El rango con signo es de -32768 a 32767. El rango sin singo, de 0 a 65535. MEDIUMINT : Contiene un entero de tamaño medio, el rango con signo está entre 8388608 y 8388607. El rango sin signo, entre 0 y 16777215. INT: Contiene un entero de tamaño normal. El rango con signo está entre -2147483648 y 2147483647. El rango sin singo, entre 0 y 4294967295. BIGINT: Contiene un entero grande. El rango con signo es de 9223372036854775808 a 9223372036854775807. El rango sin signo, de 0 a 18446744073709551615.

Tipos de Columnas
• Tipos de datos en coma flotante FLOAT: Contiene un número en coma flotante pequeño (de precisión sencilla). Los valores permitidos son entre -3.402823466E+38 y -1.175494351E-38, 0, y entre 1.175494351E-38 y 3.402823466E+38. Si se especifica el modificador UNSIGNED, los valores negativos no se permiten. DOUBLE: Contiene un número en coma flotante de tamaño normal (precisión doble). Los valores permitidos están entre -1.7976931348623157E+308 y 2.2250738585072014E-308, 0, y entre 2.2250738585072014E-308 y 1.7976931348623157E+308. Si se especifica el modificador UNSIGNED, no se permiten los valores negativos. DECIMAL: Contiene un número en coma flotante sin empaquetar. Se comporta igual que una columna CHAR: "sin empaquetar" significa que se almacena como una cadena, usando un carácter para cada dígito del valor. El punto decimal y el signo '-' para valores negativos, no se cuentan en M (pero el espacio para estos se reserva). Si D es 0, los valores no tendrán punto decimal ni decimales.

Tipos de Columnas
• Tipos de datos para tiempos DATE: Contiene una fecha. El rango soportado está entre '1000-01-01' y '999912-31'. MySQL muestra los valores DATE con el formato 'AAAA-MM-DD', pero es posible asignar valores a columnas de este tipo usando tanto números como cadenas. DATETIME: Contiene una combinación de fecha y hora. El rango soportado está entre '1000-01-01 00:00:00' y '9999-12-31 23:59:59'. MySQL muestra los valores DATETIME con el formato 'AAAA-MM-DD HH:MM:SS', pero es posible asignar valores a columnas de este tipo usando tanto cadenas como números. TIMESTAMP: Contiene un valor del tipo timestamp. El rango está entre '1970-0101 00:00:00' y algún momento del año 2037. TIMESTAMP: Una hora. El rango está entre '-838:59:59' y '838:59:59'. MySQL muestra los valores TIME en el formato 'HH:MM:SS', pero permite asignar valores a columnas TIME usando tanto cadenas como números.

Tipos de Columnas
• Tipos de datos datos sin tipo o grandes bloques de datos TINYBLOB, TINYTEXT: Contiene una columna BLOB o TEXT con una longitud máxima de 255 caracteres (28 - 1). BLOB, TEXT: Contiene una columna BLOB o TEXT con una longitud máxima de 65535 caracteres (216 - 1). MEDIUMBLOB, MEDIUMTEXT: Contiene una columna BLOB o TEXT con una longitud máxima de 16777215 caracteres (224 - 1). LONGBLOB, LONGTEXT: Contiene una columna BLOB o TEXT con una longitud máxima de 4294967298 caracteres (232 - 1).

Tipos de Columnas
• Tipos de datos datos enumerados y conjuntos ENUM: Contiene un enumerado. Un objeto de tipo cadena que puede tener un único valor, entre una lista de valores 'valor1', 'valor2', ..., NULL o el valor especial de error "". Un ENUM puede tener un máximo de 65535 valores diferentes. SET: Contiene un conjunto. Un objeto de tipo cadena que puede tener cero o más valores, cada uno de los cuales debe estar entre una lista de valores 'valor1', 'valor2', ... Un conjunto puede tener un máximo de 64 miembros.

Lenguaje SQL
Un Sistema de Bases de Datos proporciona: Un Lenguaje de Definición de Datos (DDL) para especificar el esquema de la Base de Datos y un Lenguaje de Manipulación de Datos (DML) para expresar las consultas a la Base de Datos. En la práctica no son dos lenguajes separados, sino que forman parte de un único lenguaje: SQL (Structured Query Language) es el lenguaje que se utiliza para comunicarse con la Base de Datos.
Página PHP orden SQL Base de datos resultado

DML: Lenguaje de Consultas SQL
• • • Las instrucciones más habituales son SELECT, INSERT, UPDATE, DELETE Veamos su sintaxis básica y algunos ejemplos de uso Para ello utilizaremos una tabla Pelicula con cinco campos: un identificador único de la película, el título, el director, los actores y el género de la misma.

Pelicula idPelicula título director actores genero

SQL: SELECT
Mediante la sentencia SELECT es posible extraer datos de una tabla, seleccionando las columnas de las que queremos obtenerlos. Sintaxis: SELECT expresión FROM tabla [WHERE condición] [ORDER BY {unsigned_integer | col_name | formula} [ASC | DESC] ,...] [LIMIT [offset,] row_count | row_count OFFSET offset] Ejemplo: SELECT idPelicula, titulo FROM pelicula WHERE idPelicula > 5 ORDER BY titulo DESC Obtiene las películas con id mayor a 5, ordenadas por título

SQL: INSERT
Mediante la sentencia INSERT es posible agregar registros a una tabla.

Sintaxis: INSERT [INTO] nombre_tabla [(nombre_columna,...)] VALUES ((expresión | DEFAULT),...), (...),... Ejemplo: INSERT INTO pelicula (idPelicula, titulo, director, actores, genero) VALUES (1, ‘Titanic’, ‘James Cameron, ‘Leonardo Di Caprio, Kate Winslet’, ‘Romántica’); Agrega una fila a la tabla película con los valores indicados

SQL: UPDATE
Mediante la sentencia UPDATE es posible modificar los valores de los datos de un registro dado. Sintaxis: UPDATE nombre_tabla SET nombre_columna1=expr1 [, nombre_columna2=expr2 ...] [WHERE condición] [ORDER BY ...] [LIMIT row_count] Ejemplo: UPDATE pelicula SET titulo = ‘Cadena de Favores’ WHERE id = 6; Modifica el título de la película cuyo id es 6.

SQL: DELETE
Mediante la sentencia DELETE es posible eliminar registros de una tabla. Sintaxis: DELETE FROM nombre_tabla [WHERE condición] [ORDER BY ...] [LIMIT row_count] Ejemplo: DELETE FROM pelicula WHERE genero = ‘Terror’; Elimina de la tabla pelicula todas aquellas del género Terror.

Iniciando MySQL desde Xampp
Xammp integra una versión de MySQL lista para usar, como todo servidor, MySQL necesita ser iniciado para poder recibir peticiones. Debemos iniciar el servicio desde el Control Panel Application de XAMPP.

phpMyAdmin
phpMyAdmin es un Sistema de Administración de Bases de Datos MySQL, desarrollado integramente en PHP, es open source, la última versión disponible la pueden encontrar en http://www.phpmyadmin.net/ Con phpMyAdmin podemos realizar todo tipo de operaciones sobre una base de datos MySQL, crear base de datos, tablas, realizar consultas, exportar/importar, etc.

Ejercicio.
• Iniciar phpMyAdmin
• Crear la Base de datos ‘movieStore’ • Crear dos tablas, Película y Género con la siguiente estructura

• Ingresar datos (al menos 10 registros) en ambas tablas desde la consola SQL de
phpMyAdmin, utilizando la instrucción INSERT. • Eliminar una fila de cualquiera de las tablas usando la instrucción DELETE. • Rescatar todas las peliculas del género “Drama” con la instrucción SELECT

Sign up to vote on this title
UsefulNot useful