Sunteți pe pagina 1din 12
“Aplicaciones Web dinámicas con PHP y MySql” Base de Datos en la web: RDBMS Sergio
“Aplicaciones Web dinámicas con PHP y MySql” Base de Datos en la web: RDBMS Sergio

“Aplicaciones Web dinámicas con PHP y MySql”

Base de Datos en la web:

RDBMS
RDBMS

Sergio Gabriel Rodríguez

http://www.3trex.com.ar

¿Qué¿Qué eses unauna BaseBase dede Datos?Datos?

¿Qué¿Qué eses unauna BaseBase dede Datos?Datos?
¿Qué¿Qué eses unauna BaseBase dede Datos?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.

DefinicionesDefiniciones dede BDRBDR

DefinicionesDefiniciones dede BDRBDR
DefinicionesDefiniciones dede BDRBDR

Tabla

Conjunto de datos organizados referentes a una entidad. Está compuesta por filas y columnas

Tupla

Es una hilera o fila en una tabla.

Atributo

Es una columna en una tabla.

Dominio

Es el conjunto de valores que puede tomar un Atributo.

Clave

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

Es el número de tuplas de una tabla.

Grado

Es el número de atributos de una tabla.

Relación

Una definición simple, es que una relación se corresponde con una tabla.

¿Qué¿Qué eses unauna DBMS?DBMS?

¿Qué¿Qué eses unauna DBMS?DBMS?
¿Qué¿Qué eses unauna DBMS?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.

BasesBases dede datosdatos enen lala webweb • Las bases de datos permiten almacenar de una

BasesBases dede datosdatos enen lala webweb

BasesBases dede datosdatos enen lala webweb • Las bases de datos permiten almacenar de una forma

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

control de acceso • Almacenar preferencias de los usuarios BasesBases dede datosdatos enen lala webweb Solicitud

BasesBases dede datosdatos enen lala webweb

de los usuarios BasesBases dede datosdatos enen lala webweb Solicitud de una página web dinámica con

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
Internet
dinámica El server busca el Script solicitado Internet El script tiene código de acceso a BD
dinámica El server busca el Script solicitado Internet El script tiene código de acceso a BD

El script tiene código de acceso a BD

solicitado Internet El script tiene código de acceso a BD PHP se conecta y accede a

PHP se conecta y accede a la BD

tiene código de acceso a BD PHP se conecta y accede a la BD El documento

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

DBMS:DBMS: MySQLMySQL

DBMS:DBMS: MySQLMySQL
DBMS:DBMS: MySQLMySQL

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ísticasCaracterísticas dede MySQLMySQL

CaracterísticasCaracterísticas dede MySQLMySQL
CaracterísticasCaracterísticas dede MySQLMySQL

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 )

 
 

TiposTipos dede ColumnasColumnas

  TiposTipos dede ColumnasColumnas
  TiposTipos dede ColumnasColumnas

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

 

TiposTipos dede ColumnasColumnas

TiposTipos dede ColumnasColumnas
TiposTipos dede ColumnasColumnas

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.

 
TiposTipos dede ColumnasColumnas • Tipos de datos en coma flotante FLOAT : Contiene un número

TiposTipos dede ColumnasColumnas

TiposTipos dede ColumnasColumnas • Tipos de datos en coma flotante FLOAT : Contiene un número en

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.

D es 0, los valores no tendrán punto decimal ni decimales. TiposTipos dede ColumnasColumnas • Tipos

TiposTipos dede ColumnasColumnas

punto decimal ni decimales. TiposTipos dede ColumnasColumnas • Tipos de datos para tiempos DATE : Contiene

Tipos de datos para tiempos

DATE: Contiene una fecha. El rango soportado está entre '1000-01-01' y '9999- 12-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-01- 01 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.

TiposTipos dede ColumnasColumnas • Tipos de datos datos sin tipo o grandes bloques de datos

TiposTipos dede ColumnasColumnas

TiposTipos dede ColumnasColumnas • Tipos de datos datos sin tipo o grandes bloques de datos TINYBLOB,

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).

TiposTipos dede ColumnasColumnas

TiposTipos dede ColumnasColumnas
TiposTipos dede ColumnasColumnas

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.

LenguajeLenguaje SQLSQL Un Sistema de Bases de Datos proporciona: Un Lenguaje de Definición de Datos
LenguajeLenguaje SQLSQL
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: SQLSQL (Structured(Structured QueryQuery Language)Language) es el lenguaje que
se utiliza para comunicarse con la Base de Datos.
Página
orden SQL
PHP
Base de
datos
resultado
DML:DML: LenguajeLenguaje dede ConsultasConsultas SQLSQL
• 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:SQL: SELECTSELECT

SQL:SQL: SELECTSELECT
SQL:SQL: SELECTSELECT

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:SQL: INSERTINSERT

SQL:SQL: INSERTINSERT
SQL:SQL: INSERTINSERT

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:SQL: UPDATEUPDATE

SQL:SQL: UPDATEUPDATE
SQL:SQL: UPDATEUPDATE

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.

  Modifica el título de la película cuyo id es 6. SQL:SQL: DELETEDELETE Mediante la sentencia

SQL:SQL: DELETEDELETE

título de la película cuyo id es 6. SQL:SQL: DELETEDELETE Mediante la sentencia DELETE es posible

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.

IniciandoIniciando MySQLMySQL desdedesde XamppXampp Xammp integra una versión de MySQL lista para usar, como todo

IniciandoIniciando MySQLMySQL desdedesde XamppXampp

IniciandoIniciando MySQLMySQL desdedesde XamppXampp Xammp integra una versión de MySQL lista para usar, como todo

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.

el servicio desde el Control Panel Application de XAMPP. phpMyAdminphpMyAdmin phpMyAdmin es un Sistema de
phpMyAdminphpMyAdmin phpMyAdmin es un Sistema de Administración de Bases de Datos MySQL, desarrollado integramente en
phpMyAdminphpMyAdmin
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.Ejercicio. • Iniciar phpMyAdmin • Crear la Base de datos ‘movieStore’ • Crear dos tablas,
Ejercicio.Ejercicio. • Iniciar phpMyAdmin • Crear la Base de datos ‘movieStore’ • Crear dos tablas,

Ejercicio.Ejercicio.

Iniciar phpMyAdmin

• Crear la Base de datos ‘movieStore’

• Crear dos tablas, Película y Género con la siguiente estructura

dos tablas, Película y Género con la siguiente estructura • Ingresar datos (al menos 10 registros)

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