Base de Datos I (I Bimestre)

4,194 views

Published on

Universidad Técnica Particular de Loja
Ciencias de la Computación
Base de Datos I
I Bimestre
Abril - Agosto 2007
Ponente: Ing. Audrey Romero

0 Comments
3 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
4,194
On SlideShare
0
From Embeds
0
Number of Embeds
32
Actions
Shares
0
Downloads
263
Comments
0
Likes
3
Embeds 0
No embeds

No notes for slide

Base de Datos I (I Bimestre)

  1. 1. ESCUELA : PONENTE : BIMESTRE : BASE DE DATOS I CICLO : CIENCIAS DE LA COMPUTACIÓN I BIMESTRE ING. AUDREY ROMERO ABRIL – AGOSTO 2007
  2. 2. Objetivo General <ul><li>Dotar al profesional en formación del marco conceptual, t écnico y metodológico en diseño y desarrollo de SBD relacionales normalizados. </li></ul>
  3. 3. Orientaciones Generales <ul><li>Materiales </li></ul><ul><ul><li>Guía </li></ul></ul><ul><ul><li>Texto base </li></ul></ul><ul><li>¿Cómo estudiar? </li></ul><ul><ul><li>Técnicas de estudio </li></ul></ul><ul><ul><li>Organice su tiempo </li></ul></ul><ul><ul><li>“ No deje para mañana lo que puede hacer HOY” </li></ul></ul>
  4. 4. Orientaciones Generales(2) <ul><li>Apoyo tecnológico e interactividad EVA </li></ul><ul><ul><li>La interactividad y participación en los foros tiene una calificación de 2 puntos. </li></ul></ul><ul><ul><li>Acceso desde www.utpl.edu.ec </li></ul></ul>
  5. 5. Objetivo General <ul><li>Dotar al profesional en formación del marco conceptual, t écnico y metodológico en diseño y desarrollo de SBD relacionales normalizados. </li></ul>
  6. 6. PRIMER BIMESTRE
  7. 7. Objetivos <ul><li>Conocer elementos conceptuales de BD y SGBD, sus componentes, personal implicado, historia y usos comunes. </li></ul><ul><li>Analizar los componentes del entorno de BD. </li></ul><ul><li>Aplicar el modelo de datos relacional para representar datos y destacar su importancia. </li></ul><ul><li>Contruir consultas a través de algebra relacional, SQL. </li></ul>
  8. 8. Introducción a las Bases de datos TEMA 1
  9. 9. <ul><li>Sistemas basados en archivos </li></ul><ul><ul><li>Predecesores de los SGBD </li></ul></ul><ul><ul><li>Colección de programas de aplicación. </li></ul></ul><ul><ul><li>Cada programa define y gestiona sus datos. </li></ul></ul><ul><ul><li>Problemas significativos: </li></ul></ul><ul><ul><ul><li>Redundancia de datos </li></ul></ul></ul><ul><ul><ul><li>Dependencia entre programas y datos. </li></ul></ul></ul>
  10. 10. <ul><li>Limitaciones Sistemas basados en archivos </li></ul><ul><ul><li>Separación y aislamiento de los datos </li></ul></ul><ul><ul><li>Duplicación de los datos </li></ul></ul><ul><ul><li>Dependencia entre los datos </li></ul></ul><ul><ul><li>Formatos de archivos incompatibles </li></ul></ul><ul><ul><li>Consultas fijas </li></ul></ul><ul><ul><li>Crecimiento de programas de aplicación </li></ul></ul>
  11. 11. <ul><li>Sistemas basados en archivos </li></ul><ul><ul><li>Ejemplo: En un banco que tiene aplicativos basados en archivos un cliente apertura una cuenta y luego solicita un crédito. </li></ul></ul>
  12. 12. <ul><li>Sistemas de gestión de base de datos </li></ul><ul><ul><li>BD es una colección de datos relacionados. </li></ul></ul><ul><ul><li>SGBD software que gestiona y controla el acceso a la BD. </li></ul></ul><ul><ul><li>Aplicación BD programa que interactúa con BD. </li></ul></ul><ul><ul><li>El SGBD interactúa con las aplicaciones y BD. </li></ul></ul><ul><ul><li>Compras en el supermercado </li></ul></ul><ul><ul><li>Depósito en el banco </li></ul></ul><ul><ul><li>Reserva en un hotel </li></ul></ul>
  13. 13. <ul><li>Un SGBD normalmente: </li></ul><ul><ul><li>Permite a los usuarios definir la BD mediante DDL y manipular la BD mediante DML. </li></ul></ul><ul><ul><li>Proporciona acceso controlado a la BD. </li></ul></ul><ul><ul><li>Proporciona un catálogo que contiene descripciones de la BD. </li></ul></ul>
  14. 14. <ul><li>Componentes de un entorno SGBD </li></ul>PUENTE
  15. 15. <ul><li>Ventajas SGBD </li></ul><ul><li>Control de redundancia de datos </li></ul><ul><li>Coherencia y Compartición de datos </li></ul><ul><li>Mayor integración de datos </li></ul><ul><li>Mayor seguridad </li></ul><ul><li>Mejor accesibilidad de datos y capacidad de respuesta. </li></ul><ul><li>Productividad mejorada </li></ul><ul><li>Mejora de seguridad y recuperación </li></ul>
  16. 16. <ul><li>Desventajas SGBD </li></ul><ul><li>Complejidad </li></ul><ul><li>Tamaño </li></ul><ul><li>Coste de SGBD </li></ul><ul><li>Coste de hardware adicional </li></ul><ul><li>Costes de conversión de hardware </li></ul><ul><li>Prestaciones </li></ul><ul><li>Mayor impacto a fallos </li></ul>
  17. 17. <ul><li>Interactividad en el campus virtual </li></ul><ul><ul><li>Describir los usos de las bases de datos, evitando repetir el tipo de aplicación si otro participante ya lo ha descrito. </li></ul></ul><ul><ul><li>Consulte y comparta a través del foro sobre los SGDB orientados a objetos y los objeto – relacionales. </li></ul></ul>
  18. 18. MODELO RELACIONAL TEMA 2
  19. 19. <ul><li>Modelo relacional </li></ul><ul><ul><li>Trabaja con relaciones, atributos y tuplas. </li></ul></ul><ul><ul><li>Su fortaleza la estructura lógica simple. </li></ul></ul>
  20. 20. Estructura Concepto Relación Tabla con columnas y filas Atributo Columna nominada de una relación Dominio Conjunto de valores permitidos para uno o más atributos Tupla Una tupla es un fila de una relación. Grado Número de atributos que contiene Cardinalidad Número de tuplas que contiene BD Relacional Colección de relaciones normalizadas donde cada relación tiene un nombre distintivo.
  21. 21. <ul><li>Propiedades de las relaciones </li></ul><ul><ul><li>Nombres distintos </li></ul></ul><ul><ul><li>Cada celda tiene un valor atómico </li></ul></ul><ul><ul><li>Cada atributo tiene un nombre distinto </li></ul></ul><ul><ul><li>Los valores de un atributo tienen igual dominio </li></ul></ul><ul><ul><li>No hay tuplas duplicadas </li></ul></ul><ul><ul><li>El orden de los atributos no tiene importancia </li></ul></ul><ul><ul><li>Teóricamente no importa el orden de tuplas </li></ul></ul>
  22. 22. <ul><li>Claves relacionales </li></ul><ul><ul><li>Superclave , atributo(s) que identifica(n) unívocamente cada tupla de la relación. </li></ul></ul><ul><ul><li>Clave candidata , superclave que no contiene atributos adicionales innecesarios. </li></ul></ul><ul><ul><li>Clave principal , la clave candidata seleccionada para identificar unívocamente una relación. </li></ul></ul><ul><ul><li>Clave externa/ajena , atributo de R1 que se corresponde con la clave candidata de R2. </li></ul></ul>
  23. 23. <ul><li>Restricciones de integridad Modelo Relacional </li></ul><ul><ul><li>Valores nulos </li></ul></ul><ul><ul><li>Integridad de entidad </li></ul></ul><ul><ul><li>Integridad referencial </li></ul></ul><ul><ul><li>Restricciones generales de usuario </li></ul></ul>
  24. 24. <ul><li>EJEMPLO </li></ul><ul><ul><li>La información sobre sucursales se la representará por la relación BRANCH, que tiene las columnas para los atributos branchNo, street, city, post code. </li></ul></ul><ul><ul><li>Además se tiene información de empleados en la relación STAFF con columnas para los atributos staffNo, fName, lname, position, sex, DOB, salary, y BranchNo. </li></ul></ul>
  25. 25. <ul><li>Identifique: </li></ul><ul><ul><li>Las relaciones </li></ul></ul><ul><ul><li>Los atributos </li></ul></ul><ul><ul><li>Claves principales (integridad de entidades) </li></ul></ul><ul><ul><li>Claves candidatas </li></ul></ul><ul><ul><li>Superclave </li></ul></ul><ul><ul><li>Clave Externa (integridad referencial) </li></ul></ul><ul><ul><li>Grado </li></ul></ul><ul><ul><li>Cardinalidad </li></ul></ul><ul><ul><li>Dominios </li></ul></ul>
  26. 28. ALGEBRA RELACIONAL TEMA 3
  27. 29. <ul><li>Algebra Relacional </li></ul><ul><li>Lenguaje procedimental con operaciones que se aplican a una o más relaciones. </li></ul>
  28. 30. <ul><li>Trabajaremos con dos tablas </li></ul><ul><ul><ul><li>LIBRO (idlibro, titulo, idautor, editorial) </li></ul></ul></ul><ul><ul><ul><li>AUTOR (idautor, autor) </li></ul></ul></ul>
  29. 31. <ul><li>Operaciones fundamentales </li></ul><ul><ul><li>Selección , selecciona tuplas que satisfacen una condición. </li></ul></ul><ul><ul><li>Ejemplo: </li></ul></ul><ul><ul><li>Seleccione los libros de la editorial Ra-Ma. </li></ul></ul><ul><ul><li> editorial = “Ra-Ma” (libro) </li></ul></ul> <condicion>(<nombretabla>)
  30. 32. <ul><ul><li>Proyección , identifica atributos/columnas para presentar. </li></ul></ul><ul><ul><li>Ejemplo: </li></ul></ul><ul><ul><li>Muestre los titulos con su editorial de los libros existentes. </li></ul></ul><ul><ul><li>  libro, autor (libro) </li></ul></ul><ul><ul><li> <atributo> (<nombretabla>) </li></ul></ul>
  31. 33. <ul><ul><li>Producto Cartesiano , combina/multiplica todas las tuplas entre tablas. </li></ul></ul><ul><ul><li>Ejemplo: </li></ul></ul><ul><ul><li>Realice el producto carteciano entre libro y autor. </li></ul></ul><ul><li>(libro x autor) </li></ul><ul><ul><li>(<nombretabla1> x <nombretabla2>) </li></ul></ul>
  32. 34. <ul><ul><li>Producto Natural , combina/multiplica todas las tuplas iguales en las tablas implicadas. </li></ul></ul><ul><ul><li>Ejemplo: </li></ul></ul><ul><ul><li>Realice el producto natural entre libro y autor. </li></ul></ul><ul><ul><li>(libro  autor) </li></ul></ul><ul><ul><li>libro.autorid = autor.autorid </li></ul></ul><ul><ul><li>(<nombretabla1>  <nombretabla2>) </li></ul></ul>
  33. 35. <ul><ul><li>Unión, combina todas las tuplas de la tabla1 y la tabla2 eliminando las filas repetidas. </li></ul></ul><ul><ul><li>Ejemplo: </li></ul></ul><ul><ul><li>Realice la unión de los libros de la editorial Ra-Ma y los de la editorial Alfaomega </li></ul></ul><ul><ul><li>(  editorial=“Ra-Ma”(libro))  (  editorial=“Alfaomega” (libro)) </li></ul></ul><ul><ul><li>(<nombretabla1  <nombretabla2 > ) </li></ul></ul>
  34. 36. <ul><ul><li>Intersección, obtiene las tuplas comunes entre la tabla1 y la tabla2. </li></ul></ul><ul><ul><li>Ejemplo: </li></ul></ul><ul><ul><li>Realice la intersección de los libros de la editorial Andrés Bello con los libros de A2 </li></ul></ul><ul><ul><li>(  editorial =“Editorial Andrés Bello”(libro))  </li></ul></ul><ul><ul><li>(  autorid=“A2”(libro)) </li></ul></ul><ul><ul><li>(<nombretabla1)  (<nombretabla2 > ) </li></ul></ul>
  35. 37. <ul><ul><li>Diferencia, obtiene los datos que encuentran en la tabla1 pero no en la tabla2 </li></ul></ul><ul><ul><li>Ejemplo: </li></ul></ul><ul><ul><li>Realice la diferencia de libros de la editorial Andrés Bello excepto los libros de A2 </li></ul></ul><ul><ul><li>(  editorial=“Editorial Andrés Bello”(libro)) – </li></ul></ul><ul><ul><li>(  autorid= A2 (libro)) </li></ul></ul><ul><ul><li>(<nombretabla1> - <nombretabla2>) </li></ul></ul>
  36. 38. <ul><li>Operaciones de conjuntos </li></ul><ul><ul><li>Diferencia, obtiene los datos que se encuentran en la tabla1 pero no en la tabla2 </li></ul></ul><ul><ul><li> (<nombretabla1>) - (<nombretabla2>) </li></ul></ul><ul><ul><li>(  editorial=“Ra-Ma”(libro)) - (  autor=“Jesús C.” (libro)) </li></ul></ul>
  37. 39. MANIPULACION DE DATOS TEMA 4
  38. 40. <ul><li>Escritura de comandos SQL </li></ul><ul><ul><li>Palabras reservadas y definidas por el usuario </li></ul></ul><ul><ul><li>Hay palabras reservadas que son obligatorias y otras opcionales. </li></ul></ul><ul><ul><li>No es sensitivo a mayúsculas en las palabras reservadas. </li></ul></ul><ul><ul><li>Sensitivo a mayúsculas en los datos a obtener por ejemplo: “Smith” “SMITH” “SMith” se tratan de diferente manera. </li></ul></ul>
  39. 41. <ul><li>Manipulación de datos: SELECT, INSERT </li></ul><ul><ul><li>SELECT, para consultar datos </li></ul></ul><ul><ul><ul><li>SELECT atributo1, …. n </li></ul></ul></ul><ul><ul><ul><li>FROM nombretabla [alias] </li></ul></ul></ul><ul><ul><ul><li>[WHERE condicion] </li></ul></ul></ul><ul><ul><ul><li>[ORDER BY] atributos </li></ul></ul></ul><ul><ul><ul><li>[GROUP BY] atributos </li></ul></ul></ul><ul><ul><li>INSERT, para insertar datos </li></ul></ul><ul><ul><ul><li>INSERT INTO <nombretabla> (atributo1,…n) </li></ul></ul></ul><ul><ul><ul><li>VALUES (valor1, …n) </li></ul></ul></ul>
  40. 42. <ul><ul><li>UPDATE, para actualizar datos </li></ul></ul><ul><ul><ul><ul><li>UPDATE <nombretabla> </li></ul></ul></ul></ul><ul><ul><ul><ul><li>[SET atributo1 = valor1] </li></ul></ul></ul></ul><ul><ul><ul><ul><li>WHERE <condicion> </li></ul></ul></ul></ul><ul><ul><li>DELETE, para borrar datos </li></ul></ul><ul><ul><ul><ul><li>DELETE FROM <nombretabla> </li></ul></ul></ul></ul><ul><ul><ul><ul><li>[WHERE <condicion>] </li></ul></ul></ul></ul>
  41. 43. <ul><li>Consultas simples </li></ul><ul><li>Las consultas son un herramienta potente que combina operaciones de Algebra Relacional Selección y Proyección. </li></ul><ul><li>Una consulta simple consiste en extraer datos de una tabla. </li></ul><ul><ul><ul><li>SELECT código, titulo, codAutor </li></ul></ul></ul><ul><ul><ul><li>FROM libro </li></ul></ul></ul><ul><ul><ul><li>WHERE editorial = “Rama” </li></ul></ul></ul><ul><li>Ordenación de resultados </li></ul><ul><ul><ul><ul><ul><li>SELECT código, titulo, codAutor </li></ul></ul></ul></ul></ul><ul><ul><ul><ul><ul><li>FROM libro </li></ul></ul></ul></ul></ul><ul><ul><ul><ul><ul><li>ORDER BY titulo </li></ul></ul></ul></ul></ul>
  42. 44. <ul><li>Consultas de varias tablas </li></ul><ul><li>Permite combinar varias tablas (join) </li></ul><ul><ul><li>FROM: incluir las tablas separadas con , </li></ul></ul><ul><ul><li>WHERE: especificar las columnas de la combinación. </li></ul></ul><ul><ul><ul><ul><ul><li>SELECT código, titulo, autor </li></ul></ul></ul></ul></ul><ul><ul><ul><ul><ul><li>FROM libro, autor </li></ul></ul></ul></ul></ul><ul><ul><ul><ul><ul><li>WHERE libro.codAutor= autor.CodAutor </li></ul></ul></ul></ul></ul>
  43. 45. DEFINICION DE DATOS TEMA 5
  44. 46. <ul><li>Tipos de datos </li></ul><ul><ul><li>Numérico NUMERIC INTEGER </li></ul></ul><ul><ul><li>Decimal FLOAT DOUBLE </li></ul></ul><ul><ul><li>Carácter CHAR VARCHAR </li></ul></ul><ul><ul><li>Fecha DATE </li></ul></ul><ul><li>Características de mejora de integridad </li></ul><ul><ul><li>Datos requeridos, algunos atributos deben tener obligatoriamente un valor ( NOT NULL ) </li></ul></ul><ul><ul><li>Restricciones de dominio, algunos atributos deben contener sólo ciertos valores ( CHECK ) </li></ul></ul><ul><ul><li>Integridad de entidades (PRIMARY KEY) </li></ul></ul><ul><ul><li>Integridad referencial (FOREIGN KEY) </li></ul></ul>
  45. 47. <ul><li>Crear una tabla </li></ul>CREATE TABLE nombreTabla { {<Atributo><tipodato> [NOT NULL] [PRIMARY KEY] [CHECK <condicion>] } [PRIMARY KEY (atributo (S)] [FOREIGN KEY (clave externa) REFERENCES <tablaPadre> (clave candidata)] }
  46. 48. <ul><li>Modificar una tabla </li></ul>ALTER TABLE nombreTabla [ ADD COLUMN <Atributo><tipodato> [NOT NULL]] <ul><li>Eliminar una tabla </li></ul>DROP TABLE nombreTabla
  47. 49. <ul><li>Otros objetos: índices, vistas, secuencias </li></ul><ul><ul><li>Índices, estructura que permite acelerar el acceso a las filas. INDEX </li></ul></ul><ul><ul><li>Vistas, resultado operaciones relacionales. VIEW </li></ul></ul><ul><ul><li>Secuencias, objeto que genera números secuenciales. SEQUENCE </li></ul></ul><ul><li>Asignar/Eliminar privilegios a otros usuarios </li></ul><ul><ul><li>Acciones que se permite a un usuario ejecutar sobre una tabla como lectura, escritura, … </li></ul></ul><ul><ul><li>GRANT {privilegios} </li></ul></ul><ul><ul><li>ON nombreTabla </li></ul></ul><ul><ul><li>REVOKE {privilegios} </li></ul></ul><ul><ul><li>ON nombreTabla </li></ul></ul>

×