Bases de datos y conexin con la web - PowerPoint PPT Presentation

1 / 54
About This Presentation
Title:

Bases de datos y conexin con la web

Description:

A menudo es un c digo creado expresamente para tal fin. Bases de datos y conexi n con la web ... que las canta, pero a menudo se trata de personas diferentes. ... – PowerPoint PPT presentation

Number of Views:153
Avg rating:3.0/5.0
Slides: 55
Provided by: Toni99
Category:
Tags: bases | cambio | con | conexin | datos | de | menudo | tipo | web

less

Transcript and Presenter's Notes

Title: Bases de datos y conexin con la web


1
Bases de datos y conexión con la web
  • Toni Navarrete
  • Interactivitat a Internet, Idees i Processos
  • Barcelona, 26/1/2002

2
Qué habéis hecho?
  • Páginas HTML
  • texto
  • imágenes
  • tablas
  • frames
  • plantillas
  • ...
  • Elementos de dinamismo en la presentación p.ej.
    rollovers (JavaScript)
  • Problema el contenido nunca cambia!!
  • Varios ejemplos siguientes transparencias

3
http//www.elperiodico.es/default.asp?idnoticia_PK
13246idseccio_PK60idiomaCAS
4
http//www.bcn.es/cgi-bin/veure_ag.pl?idiomaCAid
2011121124vBI
5
http//www.amazon.com/exec/obidos/ASIN/1565926269/
qid1011806907/sr2-3/refsr_2_75_3/002-4947685-71
33666
6
http//www.air-europa.com/dadeco/ecommerce.proc_hp
greservas?p_codlangESp_origenBCNp_destinoPMI
p_ddida26 p_mmyyida012002p_ddvuelta27p_mmyyv
uelta012002p_numpaxa01p_numpaxi00p_numpaxc0
0p_swirtS
7
http//es.my.yahoo.com/
8
Necesidad de páginas con contenidos dinámicos
  • La información se guarda en una base de datos
  • Hemos de conectar nuestras páginas con esa base
    de datos
  • Intentar que eso sea transparente al usuario

9
Cómo llega una página hasta nuestro navegador
10
Un ejemplo de página HTML
  • ltHTMLgt
  • ltHEADgt
  • ltTITLEgtTitulolt/TITLEgt
  • lt/HEADgt
  • ltBODY BGCOLORFFFFFFgt
  • Esto es una página ltbgtHTMLlt/bgt.ltbrgt
  • Podemos definir un enlace a la página de la lta
    hrefhttp//www.upf.esgtUPFlt/agt.
  • ltbrgt
  • También insertar una imagen ltimg
    srcimagen1.gifgt.
  • lt/BODYgt
  • lt/HTMLgt

11
Un ejemplo de transacción HTTP
GET /curso/hola.html HTTP/1.0 Accept
text/plain Accept text/html Accept
audio/ Accept video/mpeg ... Accept /
User-Agent Mozilla/4.5 (WinNT I) Línea en
blanco, indica final de petición
Respuesta
HTTP/1.1 200 OK Date Mon, 21 Jan 2002 212320
GMT Server Apache/1.3.3 (Unix)  (Red Hat/Linux)
MIME-version 1.0 Last-Modified Sun, 20 Jan
2002 164044 GMT Content-Length 5654
Content-Type text/html Línea en blanco, indica
quecomienza página ltHTMLgt ltHEADgt ltTITLEgtTitulolt/T
ITLEgt lt/HEADgt ltBODY BGCOLORFFFFFFgt ...
Solicitud
12
Esquema CGI (Common Gateway Interface)
13
Ejemplo de CGI escrito en C
  • main()
  • printf(Content-type text/html\n\n)
  • / \n significa cambio de línea, con lo hemos
    dejado la línea en blanco /
  • printf(ltHTMLgt\n)
  • printf(ltHEADgt\n)
  • printf(ltTITLEgtCGI sencilloltTITLEgt\n)
  • printf(lt/HEADgt\n)
  • printf(ltBODYgt\n)
  • printf(ltBgtHola, soy un CGIlt/bgt\n)
  • printf(lt/BODYgt\n)
  • printf(lt/HTMLgt\n)

14
Bases de datos relacionales y el modelo
entidad-relación
  • Puntos a tratar
  • Qué es una base de datos relacional ?
  • El sistema gestor de bases de datos
  • El modelo entidad-relación
  • entidad, atributos y elementos
  • (tablas, columnas y filas)
  • relaciones
  • Qué es SQL ?

15
Definición de BD
  • Una base de datos (BD) es un conjunto de datos
    interrelacionados almacenados en conjunto, sin
    redundancias innecesarias, de forma independiente
    de los programas que acceden a ellos.

16
El sistema gestor de BD (1 de 2)
17
El sistema gestor de BD (1 de 2)
  • Sirve para
  • definir y crear datos
  • manipular esos datos
  • seguridad e integridad de los datos
  • recuperar los datos lenguaje SQL
  • mantenimiento de un diccionario de datos
  • alto rendimiento se debe asegurar que todas
    estas funciones se ejecuten lo más rápidamente
    posible.
  • Microsoft Access es el SGBD que utilizaremos para
    las clases
  • Otros (gratuitos) son más potentes MySQL,
    PostgreSQL. Válidos hasta 500.000 accesos
    diarios
  • Otros (comerciales) Oracle, SQLServer,
    Informix,...

18
El modelo entidad-relación
  • Se usa para diseñar la BD
  • La mayoría de BD actuales son de tecnología
    relacional
  • Conceptos base
  • entidades (y atributos y elementos)
  • relaciones

19
Entidades
  • Los objetos que aparece en la vida real, es lo
    que llamamos entidad. Por ejemplo, alumnos,
    empleados, aviones, coches, alojamientos, ...
  • Una entidad da lugar a una tabla en la BD.

20
Atributos
  • Estas entidades están compuestas por varios
    atributos, también llamados campos, que vienen a
    ser sus propiedades. Por ejemplo, la entidad
    alumnos, tendrá los atributos nombre, DNI,
    nacionalidad, fecha de nacimiento, ...
  • Los atributos también reciben el nombre de
    columnas en la terminología de BD

21
Elementos
  • Cada entidad tendrá un número ilimitado de
    elementos. Por ejemplo, un elemento de la entidad
    alumnos será un alumno en sí así el alumno Pepe
    será un elemento, José será otro, ...
  • Cada uno de esos elementos también recibe el
    nombre de fila en la terminología de BD

22
Identificador o clave primaria
  • Dada una entidad, de entre todos sus atributos,
    uno o varios basta para identificar unívocamente
    a un elemento de los demás.
  • Este atributo o conjunto de atributos es lo que
    denominamos identificador o clave primaria
  • A menudo es un código creado expresamente para
    tal fin

23
Tablas
  • Combinando estos tres conceptos tenemos una
    estructura del tipo tabla, la base de las BD.

24
Creación de una tabla en Access (1 de 3)
  • Seleccionamos Tablas en el menú Objetos
  • Para definir la nueva
  • tabla, con sus atributos,
  • hemos de Crear una
  • tabla en vista Diseño

25
Creación de una tabla en Access (2 de 3)
  • Ahora hay que introducir todos los atributos
  • Su nombre
  • Su tipo (texto, números, fecha,...)
  • Una descripción, opcionalmente
  • Determinar la clave primaria (seleccionando el
    campo
  • y pulsando el botón de la
  • llave)
  • Guardar, dando un
  • nombre a la tabla

26
Creación de una tabla en Access (3 de 3)
  • La tabla Alumno aparece
  • en la lista de Tablas
  • Con doble click podemos
  • introducir los elementos o
  • filas

27
Relaciones
  • Las entidades no están aisladas sino que están
    relacionadas entre sí.
  • Estas relaciones pueden ser de tres tipos
    diferentes
  • 1 a 1
  • 1 a muchos (1 a N)
  • Muchos a muchos (M a N)

28
Representación del modelo (1 de 2)
  • Representaremos las entidades con recuadros con
    su nombre en el interior

29
Representación del modelo (2 de 2)
  • Representaremos las relaciones así
  • Relación 11
  • Relación 1N
  • Relación MN

30
Ejercicio 1
  • Hacer un modelo Entidad-Relación para la
    siguiente situación
  • tenemos una universidad, en la que hay varios
    cursos. Cada curso está dirigido por un profesor,
    el cual puede dirigir varios cursos. Los cursos
    son subvencionados, por lo que sólo se permite
    que un alumno se matricule de un curso.

31
Solución (ej. 1)
32
Solución las tablas
33
Crear las relaciones en Access
  • Herramientas Relaciones o botón
  • Seleccionar todas las tablas y cerrar
  • Arrastrar codigo_curso de alumno a codigo de
    curso
  • Exigir integridad referencial
  • Tipo de comb. 3

34
Ejercicio 2
  • Compliquemos un poco la situación anterior
  • ahora supongamos que un curso está compuesto por
    varias asignaturas. Cada una de ellas tiene un
    número de créditos. Los alumnos se matriculan de
    las asignaturas que quieren. Por último el alumno
    recibe una nota para cada asignatura, al final
    del curso.

35
Solución (ej. 2)
  • Las relaciones NM implican la creación de una
    nueva entidad

36
Más ejercicios
  • Ejercicio 1
  • Queremos hacer una base de datos con los discos
    que tenemos en casa. Un disco puede tener un
    cantante o grupo, o varios. Además un disco tiene
    una discográfica.

37
Más ejercicios
  • Ejercicio 2
  • Vamos a complicar un poco el ejemplo anterior
    ahora hemos de tener en cuenta que un disco está
    compuesto por canciones. Éstas pueden estar
    escritas por la misma persona que las canta, pero
    a menudo se trata de personas diferentes.

38
Más ejercicios
  • Ejercicio 3
  • Imaginemos que hemos de hacer un sistema para la
    Eurocopa2000. 16 selecciones nacionales se han
    clasificado, y en cada una hay 22 jugadores.
    Hemos de poder reflejar todos los partidos que se
    disputan (con los resultados) y qué jugadores lo
    hacen por cada equipo, así como quien marca los
    goles.

39
Ejercicio para próxima clase
  • Construcción de la base de datos correspondiente
    al Primer Proyecto Guiado

40
SQL
  • SQL es el lenguaje estándar utilizado para
    consultar las bases de datos relacionales
  • Permite (además de opciones más avanzadas) crear,
    modificar o borrar tablas, así como insertar,
    eliminar, modificar o consultar los elementos de
    las tablas
  • Lo más común es realizar consultas
  • sentencia SELECT

41
SQL sentencia select
  • SELECT nombre_de_columna
  • FROM nombre_de_tabla
  • WHERE condición
  • Ejemplo
  • Queremos saber el código del profesor Pepito
    Perez
  • SELECT codigo
  • FROM profesor
  • WHERE nombre"Don Pepito"

42
Una consulta en Access (1 de 2)
2. Seleccionamos la tabla, la agregamos y
cerramos la ventana con Cerrar
1. Seleccionamos Consultas del menú Objetos y
Crear una consulta en vista Diseño
43
Una consulta en Access (2 de 2)
3. Seleccionamos los campos que queremos ver y
los arrastramos a la lista de campos. Marcamos
los que queremos que se muestren (codigo) y los
criterios (que el nombre sea Don Pepito)
4. Ejecutamos la consulta pulsando el botón de
admiración en la barra superior. El resultado es 1
44
Una consulta en Access usando SQL
  • También podemos hacer la consulta en SQL en vez
    de gráficamente, seleccionando la opción SQL
  • Escribimos la consulta en SQL. Para ejecutar
    también pulsar el botón de admiración

45
Ejemplos de SQL las tablas
46
Ejemplos de SQL las relaciones
47
SQL ejemplos 1 y 2
  • Queremos saber el código del alojamiento Arts
  • SELECT alojamiento_id FROM Alojamiento WHERE
    nombreArts
  • Queremos saber los nombres de todos los
    alojamientos que se construyeron antes de 1980
  • SELECT nombre FROM Alojamiento WHERE
    anyo_construccion lt 1980

48
SQL ejemplo 3
  • Queremos saber los alojamientos de todos los
    profesores que se construyeron durante los 80,
    es decir, que su año de construcción está entre
    el 1980 y el 1989
  • SELECT nombre FROM Alojamiento WHERE
    (anyo_construccion gt 1980) and
    (anyo_construccion lt 1989)
  • Nota los paréntesis no son obligatorios, pero
    ayudan a la lectura.

49
SQL ejemplos 4 y 5
  • Queremos saber los nombres de todos los
    alojamientos que se construyeron tanto durante la
    década de los 60 como durante los 80. Para ello
    necesitamos utilizar una OR entre las
    condiciones
  • SELECT nombre FROM Alojamiento WHERE
    ((anyo_construccion gt 1960) and
    (anyo_construccion lt 1969)) or
    ((anyo_construccion gt 1990) and
    (anyo_construccion lt 1989))
  • Queremos saber qué alojamientos (todos los datos)
    están en el municipio con código BARC
  • SELECT FROM alojamiento WHERE
    municipio_idBARC

50
SQL ejemplo 6
  • Queremos saber qué alojamientos (todos los datos)
    son del tipo Hotel. Ahora necesitaremos usar
    más de una tabla, ya que el Hotel es el nombre
    del Tipo de alojamiento y necesitaremos saber
    cuál es su código
  • SELECT FROM Alojamiento, Tipo WHERE
    (Tipo.nombre Hotel) and (Alojamiento.tipo_id
    Tipo.tipo_id)
  • Lo que hemos hecho es primero buscar el código
    del tipo en cuestión
  • Tipo.nombre Hotel
  • Ahora, nos devuelve la lista de todos los tipos
    cuyo nombre es ése (en este caso, sólo uno). Ya
    sólo nos queda buscar los alojamientos con ese
    código (que queda almacenado en Tipo.tipo_id )
  • Alojamiento.tipo_id Tipo.tipo_id

51
SQL ejemplo 7 (y último)
  • Queremos saber qué alojamientos se encuentran en
    la provincia de Tarragona (todos los datos).
    Primero buscaremos los municipios de Tarragona y
    luego los alojamientos cuyo municipio_id coincida
    con ésos
  • SELECT Alojamiento. FROM Alojamiento, Municipio,
    Provincia WHERE
  • (Provincia.nombre Tarragona) and
    (Municipio.provincia_id Provincia.provincia_id)
    and (Alojamiento.municipio_id
    Municipio.municipio_id)

52
SQL más cosas ... (1 de 2)
  • Insertar, borrar y modificar los datos de una
    tabla
  • 1) Insertar
  • INSERT INTO Tipo VALUES (AG,Agroturismo,Centr
    os de agroturismo y turismo rural)
  • (Inserta todos los valores de una fila de Tipo)
  • INSERT INTO Hotel (hotel_id, nombre) VALUES
    (7,Arts)
  • (Inserta sólo algunos valores de una fila de
    Hotel)
  • 2) Eliminar
  • DELETE FROM Hotel
  • (Borrar todas las filas de la tabla avión)
  • DELETE FROM Hotel WHERE codigo5
  • (Borra sólo las filas que cumplan una condición)
  • 3) Modificar
  • UPDATE Hotel SET nombreLes Arts WHERE
    hotel_id7
  • (Modificar el atributo nombre en todas las filas
    que cumplan la condición)

53
SQL más cosas ... (2 de 2)
  • Cómo crear una tabla
  •  
  • CREATE TABLE Municipio
  • (
  • municipio_id CHAR(4) PRIMARY KEY,
  • nombre VARCHAR2(20) NOT NULL,
  • provincia_id CHAR(2) REFERENCES
    Provincia(provincia_id)
  • )
  •  
  • También hay sentencias para borrar (Drop table)
    una tabla y también para modificarla (Alter
    table), pero no las veremos aquí.

54
Resumen
  • Hemos aprendido
  • Qué es una base de datos relacional y el sistema
    gestor de bases de datos
  • Qué es el Diagrama Entidad-Relación
  • Cómo crear nuestro D.E.R. y traducirlo a tablas
    de una BD relacional
  • Cómo crear nuestra BD en Microsoft Access
  • Qué es SQL y cómo hacer consultas sobre la BD
  • De aquí en adelante conectarla con las páginas
    para conseguir que los contenidos de nuestra web
    sean dinámicos
Write a Comment
User Comments (0)
About PowerShow.com