Download I. Introducción a las bases de datos relacionales

Document related concepts

NoSQL wikipedia , lookup

SQL wikipedia , lookup

Base de datos relacional wikipedia , lookup

Mapeo objeto wikipedia , lookup

Modelo de base de datos wikipedia , lookup

Transcript
I. Introducción a las bases de datos
relacionales
1.
2.
3.
4.
Descripción del concepto de base de datos (BD) relacional
Ejemplo de BD relacional
Servidores BD
Lenguaje SQL: ejemplos.
Bases de datos relacionales
z Un
paradigma para guardar información y
recuperarla, de forma eficaz.
z Base de datos: aplicación que gestiona el
almacenamiento estructurado y consulta de
los datos.
z Están formadas por una colección
estructurada de TABLAS con información.
Tema II
Arquitecturas Distribuidas
2
Bases de datos relacionales
z TABLAS:
Prop1 Prop2 Prop3
Objeto 1
Objeto 2
Objeto 3
...
Objeto M
Tema II
...
PropN
Cada celda contiene el valor
de la propiedad para el objeto
correspondiente
Arquitecturas Distribuidas
3
Bases de datos relacionales
z TUPLAS:
Una fila de la tabla se
denomina TUPLA: conjunto
Prop1 Prop2
Prop3 ... dePropN
de propiedades
un objeto.
Objeto 1
Objeto 2
Objeto 3
...
Objeto M
Tema II
Arquitecturas Distribuidas
4
Bases de datos relacionales
z Ejemplo
TABLAS: Clasificación de la Liga
de Fútbol:
Nombre
Puntos Ganados Empatados Jugados
Real Madrid
30
10
0
10
Celta
27
9
0
10
Murcia
15
4
3
10
3
0
3
10
...
Deportivo
Tema II
Arquitecturas Distribuidas
5
Bases de datos relacionales
z Ejemplo
TABLAS: Clasificación de la Liga
de Fútbol: Alguna información puede
Nombre
Real Madrid
Celta
Murcia
inferirse
con
los
datos
de
Puntos Ganados Empatados Jugados
otras
columnas:
¿Debe
30
10
10
0
en
27 guardarse
9
0 la tabla10
o no?10
15 explícitamente
4
3
...
Deportivo
Tema II
3
0
3
Arquitecturas Distribuidas
10
6
Bases de datos relacionales
z RELACIONALES:
– Las BD están formadas por múltiples tablas.
– Distintos objetos se relacionan entre si.
– La información debe estar estructurada de modo
que cada objeto se defina independientemente:
Evitar duplicación: No definir las mismas propiedades
para el mismo objeto en tablas diferentes.
z Evitar dispersión: Definir claramente cada tipo de
objeto en su tabla correspondiente.
z
Tema II
Arquitecturas Distribuidas
7
Bases de datos relacionales
z RELACIONALES
Ejemplo: Seguimiento de
trabajadores en una empresa:
– Tabla para saber qué empleados hay.
– Tabla para saber qué trabajos hay actualmente
contratados.
– Hay que relacionar de algún modo que empleado
hace cada trabajo.
Tema II
Arquitecturas Distribuidas
8
Bases de datos relacionales
z RELACIONALES
Ejemplo: Seguimiento de
usuarios en una empresa.
EMPLEADOS
Nombre
Apellidos
Dirección
Edad
Título
Pepe
Perez
x
x
x
Maria
x
x
x
x
Paco
x
x
x
x
Tema II
Arquitecturas Distribuidas
9
Bases de datos relacionales
z RELACIONALES
Ejemplo: Seguimiento de
usuarios en una empresa.
EMPLEADOS
Nombre
Apellidos
Dirección
Edad
Título
Pepe
Perez
x
x
x
Maria
x
x
x
x
Paco
x
x
x Nombre
x
Tema II
TRABAJOS
Quien lo
contrata
Tiempo
Coste
Instalación
UltraSPARC
Workstation
x
x
x
Actualización
página web
x
x
x
Arquitecturas Distribuidas
10
Bases de datos relacionales
z RELACIONALES
Ejemplo: Seguimiento de
usuarios en una empresa.
¿Cómo las
relacionamos?
EMPLEADOS
Nombre
Apellidos
Dirección
Edad
Título
Pepe
Perez
x
x
x
Maria
x
x
x
x
Paco
x
x
x Nombre
x
Tema II
TRABAJOS
Quien lo
contrata
Tiempo
Coste
Instalación
UltraSPARC
Workstation
x
x
x
Actualización
página web
x
x
x
Arquitecturas Distribuidas
11
Bases de datos relacionales
ASIGNACIÓN
z RELACIONALES
Ejemplo:
Seguimiento de
Empleado Nombre
usuarios Nombre
en una
empresa.
Trabajo
Pepe
EMPLEADOS
Nombre
Pepe
Apellidos
Dirección
Paco
Maria
x
x
Maria
x
Paco
x
x
Tema II
Perez
Instalación
UltraSPARC
Workstation
Edad Título
Actualización
x páginax web
Actualización
x páginax web
Otra tabla
TRABAJOS
x Nombre
x
Quien lo
contrata
Tiempo
Coste
Instalación
UltraSPARC
Workstation
x
x
x
Actualización
página web
x
x
x
Arquitecturas Distribuidas
12
Bases de datos relacionales
ASIGNACIÓN
z RELACIONALES
Ejemplo:
Seguimiento de
Empleado Nombre
usuarios Nombre
en una
empresa.
Trabajo
Pepe
EMPLEADOS
Nombre
Pepe
Apellidos
Dirección
Paco
Maria
x
x
Maria
x
Paco
x
x
Tema II
Perez
Instalación
UltraSPARC
Workstation
Edad Título
Actualización
x páginax web
Actualización
x páginax web
RELACIONES
TRABAJOS
x Nombre
x
Quien lo
contrata
Tiempo
Coste
Instalación
UltraSPARC
Workstation
x
x
x
Actualización
página web
x
x
x
Arquitecturas Distribuidas
13
Bases de datos relacionales
z
Servidores de BBDD:
– Programas servidores que manejan BBDD.
– Los clientes se conectan a ellos, y solicitan datos
contenidos en las tablas.
– Servicios que implementan:
z
z
z
z
Indexado
Control de la concurrencia
Transacciones
Seguridad
– Existe un lenguaje estándar para hacer consultas a un
servidor de bases de datos: SQL (Structured Query
Language).
Tema II
Arquitecturas Distribuidas
14
Bases de datos relacionales
z SQL:
– Ordenes que permiten seleccionar “celdas” de
las tablas.
TABLA
Nombre
Tema II
Apellidos
Dirección
Edad
Título
Pepe
Perez
x
x
x
Maria
x
x
x
x
Paco
x
x
x
x
Arquitecturas Distribuidas
15
Bases de datos relacionales
z Ejemplos
de ordenes SQL:
– Seleccionar toda la tabla:
SELECT * FROM tabla
TABLA
Nombre
Tema II
Apellidos
Dirección
Edad
Título
Pepe
Perez
x
x
x
Maria
x
x
x
x
Paco
x
x
x
x
Arquitecturas Distribuidas
16
Bases de datos relacionales
z Ejemplos
de ordenes SQL:
– Selección por filas:
SELECT * FROM tabla WHERE nombre=‘pepe’
TABLA
Nombre
Tema II
Apellidos
Dirección
Edad
Título
Pepe
Perez
x
x
x
Maria
x
x
x
x
Paco
x
x
x
x
Arquitecturas Distribuidas
17
Bases de datos relacionales
z Ejemplos
de ordenes SQL:
– Selección por columnas:
SELECT nombre, edad FROM tabla
TABLA
Nombre
Tema II
Apellidos
Dirección
Edad
Título
Pepe
Perez
x
x
x
Maria
x
x
x
x
Paco
x
x
x
x
Arquitecturas Distribuidas
18
Bases de datos relacionales
z Ejemplos
de ordenes SQL:
– Selección por filas y columnas:
SELECT nombre, edad, titulo FROM tabla
WHERE Apellidos=‘Perez’
TABLA
Nombre
Tema II
Apellidos
Dirección
Edad
Título
Pepe
Perez
x
x
x
Maria
x
x
x
x
Paco
x
x
x
x
Arquitecturas Distribuidas
19
Bases de datos relacionales
z Ejemplos
de ordenes SQL:
– Inserción de información:
INSERT INTO tabla VALUES
(‘Andrés’,’’,’’,’30’,’’);
TABLA
Nombre
Tema II
Apellidos
Dirección
Edad
Título
Pepe
Perez
x
x
x
Maria
x
x
x
x
Paco
x
x
x
x
Andrés
x
x
30
x
Arquitecturas Distribuidas
20
Bases de datos relacionales
z Ejemplos
de ordenes SQL:
– Actualización de información:
UPDATE tabla SET edad=’31’ WHERE
name=‘Andrés’
TABLA
Nombre
Tema II
Apellidos
Dirección
Edad
Título
Pepe
Perez
x
x
x
Maria
x
x
x
x
Paco
x
x
x
x
Andrés
x
x
31
x
Arquitecturas Distribuidas
21
Bases de datos relacionales
z
z
z
Muchos lenguajes de programación incluyen
librerías de trabajo con BBDD relacionales.
PHP proporciona librerías para acceso a MySQL,
PostGre, etc.
SQL es independiente del lenguaje de
programación: las consultas se hacen mediante
sentencias SQL codificadas como cadenas de
caracteres en el lenguaje.
Tema II
Arquitecturas Distribuidas
22
Ejemplo consulta MySQL con
PHP
z
<?php
$link = mysql_connect('localhost', 'mysql_user', 'mysql_password');
if (!$link) {
die('Not connected : ' . mysql_error());
}
// make foo the current db
$db_selected = mysql_select_db('foo', $link);
if (!$db_selected) {
die ('Can\'t use foo : ' . mysql_error());
}
z
$query = "SELECT firstname, lastname, address, age FROM friends WHERE
firstname=‘$fname' AND lastname=‘$lname'“;
// Perform Query
$result = mysql_query($query,$link);
z
Tema II
Arquitecturas Distribuidas
23
Arquitectura en 3 capas de las
aplicaciones web
Cliente
Servidor HTTP
Javascript,
plugins (Flash,
Procesado
Scripts PHP, ASP,
Video)
BBDD
servlets, otros
HTML,
CSS
Tema II
Arquitecturas Distribuidas
24
Referencias y bibliografía
z
Teoría de BD:
–
Tema II
“Fundamentos de bases de datos”, Henri F. Korth,
Abraham Silberschatz, 2ª ed, McGraw-Hill, 1993.
Arquitecturas Distribuidas
25
Referencias y bibliografía
z
Sistemas comerciales de BD:
–
Microsoft SQL Server:
z
–
Oracle:
z
Tema II
http://www.microsoft.com/sql/
http://www.oracle.com/
Arquitecturas Distribuidas
26
Referencias y bibliografía
z
Sistemas de BD libres:
–
MySQL:
z
–
PostgreSQL:
z
Tema II
http://dev.mysql.com/
http://www.postgresql.org/
Arquitecturas Distribuidas
27