Download Práctica 6 - LSI - Universidad de Sevilla

Document related concepts
no text concepts found
Transcript
Departamento de Lenguajes y Sistemas Informáticos
E.T.S. Ingeniería Informática. Universidad de Sevilla
Avda Reina Mercedes s/n. 41012 Sevilla
Tlf/Fax 954 557 139 E-mail [email protected] Web www.lsi.us.es
Bases de Datos
e.t.s. ingeniería
informática
Bases de Datos
Práctica 6
WinRDBI
Definición de tablas y consultas en álgebra relacional
Sevilla, febrero 2010
V 2010.2.1
Bases de Datos. Práctica 6
WinRDBi
Sevilla, febrero 2010, V 2010.2.1
Indice
1
INTRODUCCIÓN. .................................................................................................................................................................... 3
1.1
2
ARRANQUE DE LA APLICACION. ........................................................................................................................................... 3
CREACIÓN DE LA BASE DE DATOS. ................................................................................................................................... 3
2.1
2.2
CREACIÓN DE TABLAS......................................................................................................................................................... 4
INSERCIÓN DE FILAS........................................................................................................................................................... 5
2.2.1
Edición con WordPad ..........................................................................................................................................................................................6
2.3
SALVAR LA BD .................................................................................................................................................................... 6
2.4
ABRIR LA BD...................................................................................................................................................................... 7
3
CONSULTAS. ............................................................................................................................................................................ 8
3.1
3.1.1
ALGEBRA RELACIONAL (AR) ............................................................................................................................................... 8
Equivalencia de operadores .................................................................................................................................................................................9
4
TIPOS DE ARCHIVOS ............................................................................................................................................................. 9
5
EJERCICIOS ............................................................................................................................................................................ 10
SOLUCIÓN ......................................................................................................................................................................................... 11
Pág. 2 de 11
Bases de Datos. Práctica 6
WinRDBi
Sevilla, febrero 2010, V 2010.2.1
1 Introducción.
WinRDBI es una herramienta educativa desarrollada por estudiantes de la Universidad de Arizona.
Permite, a través de una interfaz de usuario amigable en entorno Windows, crear bases de datos
relacionales, insertar contenidos en dichas bases de datos, y formular consultas en los lenguajes relacionales
álgebra relacional, cálculo relacional de tuplas y de dominios y SQL.
1.1
Arranque de la aplicacion.
Al acceder desde el entorno Windows aparece la siguiente pantalla:
2 Creación de la base de datos.
La opción ‘New Database’ permite crear una nueva base de datos.
Crear Base de Datos
Pág. 3 de 11
Bases de Datos. Práctica 6
WinRDBi
Sevilla, febrero 2010, V 2010.2.1
La base de datos tiene la extensión .rdb (desde la versión 4.0 también pueden generarse archivos .xml e
importar bases de datos de otros orígenes JDBC, ODBC).
2.1 Creación de tablas.
Una vez creada la base de datos, se pueden crear las tablas mediante la opción ‘Add Relation’.
Crear tabla
Los nombres de relaciones y atributos deben empezar por minúscula.
Los tipos de datos permitidos son char y numeric.
Pág. 4 de 11
Bases de Datos. Práctica 6
WinRDBi
Sevilla, febrero 2010, V 2010.2.1
2.2 Inserción de filas.
Permite insertar filas en las tablas
Insertar filas
Los campos tipo char deben ir entre comillas simples (‘)
Entre comillas
simples
Tablas creadas:
-personas
-hobbies
-aficiones
Pág. 5 de 11
Bases de Datos. Práctica 6
Sevilla, febrero 2010, V 2010.2.1
WinRDBi
2.2.1 Edición con WordPad
El archivo generado para la BD (.rdb) es editable con Word Pad. La estructura es simple e intuitiva y la
extensión de dicha BD figura para cada tabla a continuación de su definición. Basta editar dicho archivo y
salvarlo para tener un nuevo estado de la base de datos. Es mucho más sencillo este procedimiento que
utilizar las opciones de edición del propio software.
2.3 Salvar la BD
Permite además renombrar la base de datos:
Pág. 6 de 11
Bases de Datos. Práctica 6
WinRDBi
Sevilla, febrero 2010, V 2010.2.1
2.4 Abrir la BD.
La opción ‘Open File’ permite abrir las BD ya creadas. Abrir la BD equivale a fijar en memoria el archivo
de texto .rdb. Si se modifica con WordPad dicho archivo deberá reabrirse para ver los cambios.
Abrir Base de Datos
Al abrir un archivo conteniendo una base de datos (.rdb) aparece una ventana en el que se muestran las
distintas relaciones. En el panel derecho aparecen las tuplas correspondientes a la relación seleccionada en el
panel izquierdo.
Pág. 7 de 11
Bases de Datos. Práctica 6
WinRDBi
Sevilla, febrero 2010, V 2010.2.1
3 Consultas.
La opción ‘New Query’ permite crear las consultas a la base de datos.
Consultas a la BD
Será necesario especificar el lenguaje en el que se escribirá la consulta.
3.1 Algebra relacional (AR)
Los ficheros con consultas en álgebra relacional tiene la extensión .alg
Ejecución de la
consulta
Una vez que se escribe una consulta se puede ejecutar con el ícono en forma de signo de admiración.
Es necesario tener abierta una base de datos para ejecutar consultas.
Pág. 8 de 11
Bases de Datos. Práctica 6
WinRDBi
Sevilla, febrero 2010, V 2010.2.1
3.1.1
Equivalencia de operadores
Algebra Relacional
R
WinRDBi
select (f) (R)
f
project x (R)
R
x
R1
R2
R1 union R2
R1
R2
R1 intersect R2
R1 – R2
R1 R2
R1
S :=
R2
(R)
R1 difference R2
R1 product R2
R1 njoin R2
S := R
4 Tipos de archivos
Según la extensión podemos saber de qué archivo se trata.
Consultas en AR
Consultas en CROD
Base de Datos
Consultas en SQL
Consultas en CROT
Pág. 9 de 11
Bases de Datos. Práctica 6
WinRDBi
Sevilla, febrero 2010, V 2010.2.1
5 Ejercicios
1) Crear las siguientes tablas:
BD
personas (idPersona : numeric, persona : char )
hobbies hobby : char
aficiones (idPersona : numeric, hobby : char )
PK (idPersona)
PK (hobby )
PK (idPersona, hobby ) FK1(idPersona) / personas, FK 2(hobby) / hobbies
2) Insertar los siguientes valores en las tablas creadas.
personas
idPersona
1
2
3
4
5
persona
Ana
Pedro
Joaquín
Luisa
Amorfo
hobbies
hobby
Cine
Lectura
Fútbol
Tenis
Senderismo
aficiones
idPersona
1
2
2
3
3
4
4
4
4
4
hobby
Cine
Lectura
Fútbol
Tenis
Senderismo
Cine
Lectura
Fútbol
Tenis
Senderismo
3) Formular las siguientes consultas en AR.
1. Relación de hobbies
2. Lista de nombres de personas (Proyección)
3. Nombres de personas y sus aficiones (Join)
4. Personas a las que les gusta el Tenis
5. Personas a las que no les gusta ningún hobby
6. Personas a las que gustan todos los hobbies (División reescrita como dos diferencias)
Pág. 10 de 11
Bases de Datos. Práctica 6
Sevilla, febrero 2010, V 2010.2.1
WinRDBi
Solución
1) Creación de tablas
@personas(idPersona/numeric,persona/char):idPersona
1,'Ana'
2,'Pedro'
3,'Joaquín'
4,'Luisa'
5,'Amorfo'
@hobbies(hobby/char):hobby
'Cine'
'Lectura'
'Fútbol'
'Tenis'
'Senderismo'
@aficiones(idPersona/numeric,hobby/char):(idPersona,hobby)
1,'Cine'
2,'Lectura'
2,'Fútbol'
3,'Tenis'
3,'Senderismo'
4,'Cine'
4,'Lectura'
4,'Fútbol'
4,'Tenis'
4,'Senderismo'
3) Consultas AR
% 1. Relación de hobbies
qAR1:=hobbies;
% 2. Lista de nombres de personas (Proyección)
qAR2:=project persona (personas);
% 3. Nombres de personas y sus aficiones (Join)
qAR3:=personas njoin aficiones;
% 4. Personas a las que les gusta el Tenis
qAR4:= project persona,hobby (select (hobby='Tenis') (personas njoin aficiones));
% 5. Personas a las que no les gusta ningún hobby
qAR5 := (project idPersona (personas)) difference (project idPersona (aficiones));
% 6. Personas a las que gustan todos los hobbies (División reescrita como dos diferencias)
qAR6_TodasLasPersonas:= project idPersona (personas);
qAR6_TodasLasCombinaciones:= qAR6_TodasLasPersonas product hobbies;
qAR6_CombinacionesQFaltan:= qAR6_TodasLasCombinaciones difference aficiones;
qAR6_PersonasAQFaltaAlguna:= project idPersona (qAR6_TodasLasCombinaciones difference aficiones);
qAR6_PersonasAQNOFaltaNinguna:=qAR6_TodasLasPersonas difference qAR6_PersonasAQFaltaAlguna ;
qAR6_PersonasAQNOFaltaNinguna_ConNombre:= project persona(qAR6_PersonasAQNOFaltaNinguna njoin personas) ;
Pág. 11 de 11