Download I. Introducción a las bases de datos relacionales
Document related concepts
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