Base De Datos I

7,643 views

Published on

Las tecnologías de bases de datos, incluyen métodos de arquitectura y acceso para atender la demanda de administración de información.

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
7,643
On SlideShare
0
From Embeds
0
Number of Embeds
54
Actions
Shares
0
Downloads
317
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide
  • utpl
  • Base De Datos I

    1. 1. ESCUELA : NOMBRES Base de Datos I I BIMESTRE I FECHA : Ing. Audrey Romero ABRIL – AGOSTO 2009 CIENCIAS DE LA COMPUTACION
    2. 2. <ul><li>La importancia e impacto de las bases de datos es incuestionable. </li></ul><ul><li>Las organizaciones mantienen bases de datos: documentos de texto en lenguaje natural, tablas estadísticas, datos financieros y objetos multimedia, datos de naturaleza técnica y científica … </li></ul><ul><li>Las tecnologías de bases de datos, incluyen métodos de arquitectura y acceso para atender la demanda de administración de información. </li></ul>Presentación de la Asignatura
    3. 3. <ul><li>Dotar al profesional en formación de las bases formales de Bases de Datos. </li></ul><ul><li>Dar a conocer al profesional en formación los criterios aplicables en el diseño de Bases de Datos. </li></ul><ul><li>Desarrollar en el profesional en formación las destrezas y conocimientos necesarios para el diseño de una base de datos. </li></ul>Objetivos Generales
    4. 4. 5 PRIMER BIMESTRE
    5. 5. Introducción a las Bases de datos <ul><li>TEMA 1 </li></ul>
    6. 6. <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>Presentan problemas significativos, como: </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><ul><ul><li>Funcionan bien con un número pequeño de datos o cuando sólo se requiere almacenar y extraer datos. </li></ul></ul><ul><ul><li>Inadecuados cuando se requiere procesar y relacionar información. </li></ul></ul>Introducción a las bases de datos
    7. 7. <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>Introducción a las bases de datos
    8. 8. <ul><li>Sistemas basados en archivos </li></ul>Introducción a las bases de datos
    9. 9. <ul><li>Sistemas de gestión de base de datos </li></ul><ul><ul><li>BD : 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 la BD. </li></ul></ul><ul><ul><li>SGBD interactúa con las aplicaciones y la BD. </li></ul></ul><ul><ul><li>Ejemplos: </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>Introducción a las bases de datos
    10. 10. <ul><li>Un SGBD normalmente: </li></ul><ul><ul><li>Permite a los usuarios definir la BD mediante DDL. </li></ul></ul><ul><ul><li>Permite a los usuarios 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>Introducción a las bases de datos
    11. 11. <ul><li>Componentes de un entorno SGBD </li></ul>Introducción a las bases de datos
    12. 12. Introducción a las bases de datos Historia de los SGBD
    13. 13. <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>Introducción a las bases de datos
    14. 14. <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>Introducción a las bases de datos
    15. 15. Entorno de la Base de Datos
    16. 16. <ul><li>Arquitectura ANSI - SPARC </li></ul><ul><li>Se percibió la necesidad de adoptar un enfoque en tres niveles, con: </li></ul><ul><ul><li>Vista del sistema -> Esquema </li></ul></ul><ul><ul><li>Vistas de usuario -> Subesquema </li></ul></ul>Entorno de la base de datos
    17. 17. Entorno de la base de datos
    18. 18. <ul><li>Independencia de los datos </li></ul><ul><li>Se percibió la necesidad de adoptar un enfoque en tres niveles, con: </li></ul><ul><ul><li>Vista del sistema -> Esquema </li></ul></ul><ul><ul><li>Vistas de usuario -> Subesquema </li></ul></ul>Entorno de la base de datos
    19. 19. MODELO RELACIONAL
    20. 20. <ul><li>El modelo relacional propuesto por Codd, cuya fortaleza es la estructura lógica simple. Se basa en el concepto de: </li></ul><ul><li>Relación Matemática : subconjunto de un producto cartesiano de 2 o más conjuntos. </li></ul><ul><li>Relaciones en BD se representan mediante Tablas . </li></ul><ul><li>Estructuras </li></ul><ul><ul><li>Relación, tabla con columnas y filas </li></ul></ul><ul><ul><li>Atributos , columna de la relación </li></ul></ul><ul><ul><li>Tuplas , fila de la relación </li></ul></ul><ul><ul><li>Dominio , conjunto valores permitidos de un atributo </li></ul></ul><ul><ul><li>Grado , número de atributos </li></ul></ul><ul><ul><li>Cardinalidad , número de tuplas </li></ul></ul><ul><ul><li>DB Relacional , colección de relaciones normalizadas </li></ul></ul>Modelo Relacional
    21. 21. <ul><li>Propiedades de las relaciones </li></ul><ul><ul><li>Nombres distintos (únicos) </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>Modelo Relacional
    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>Modelo Relacional
    23. 23. <ul><li>Restricciones de integridad Modelo Relacional </li></ul><ul><ul><li>De dominio: limitación en valores permitidos a un atributo. </li></ul></ul><ul><ul><li>Valores nulos : Valores desconocidos. </li></ul></ul><ul><ul><li>Integridad de entidad : Ningún atributo que es clave principal puede ser nulo. </li></ul></ul><ul><ul><li>Integridad referencial : El valor de una clave externa debe corresponderse con el valor de una clave candidata de alguna tupla en su relación origen. </li></ul></ul><ul><ul><li>Restricciones generales : Reglas adicionales especificadas por los usuarios. </li></ul></ul>Modelo Relacional
    24. 24. ALGEBRA RELACIONAL
    25. 25. <ul><li>Lenguaje procedimental con operaciones que se aplican a una o más relaciones. </li></ul><ul><li>Las 5 operaciones básicas en algebra relacional son: </li></ul><ul><ul><li>Selección </li></ul></ul><ul><ul><li>Proyección </li></ul></ul><ul><ul><li>Producto Cartesiano </li></ul></ul><ul><ul><li>Unión </li></ul></ul><ul><ul><li>Diferencia de Conjuntos </li></ul></ul><ul><li>Las operaciones son: </li></ul><ul><ul><li>Unarias </li></ul></ul><ul><ul><li>De conjuntos </li></ul></ul>Algebra Relacional
    26. 26. <ul><li>Lenguaje procedimental con operaciones que se aplican a una o más relaciones. </li></ul><ul><li>Ejemplo: </li></ul>Algebra Relacional
    27. 27. <ul><li>Operaciones unarias </li></ul><ul><ul><li>Selección , selecciona tuplas que satisfacen una condición. </li></ul></ul><ul><ul><li> <condicion>( <nombretabla> ) </li></ul></ul><ul><ul><li> salary > 10000 (Staff) </li></ul></ul><ul><ul><li>Proyección , identifica atributos/columnas para presentar. </li></ul></ul><ul><ul><li> <atributo(s)> ( <nombretabla> ) </li></ul></ul><ul><ul><li> fname, lname, salary (Staff) </li></ul></ul>Algebra Relacional
    28. 28. <ul><ul><li>Operaciones de conjuntos </li></ul></ul><ul><ul><li>Producto Cartesiano , combina/multiplica todas las tuplas entre tablas. </li></ul></ul><ul><ul><li>(<nombretabla1>) x (<nombretabla2>) </li></ul></ul><ul><ul><li>(Branch) x (Staff) </li></ul></ul><ul><ul><li>Producto Natural , combina/multiplica dos tablas sobre todos los atributos comunes entre ambas. </li></ul></ul><ul><ul><li>(<nombretabla1>)  (<nombretabla2>) </li></ul></ul><ul><ul><li>(Branch)  (Staff) </li></ul></ul>Algebra Relacional
    29. 29. <ul><li>Operaciones de conjuntos </li></ul><ul><li>Se requiere que las relaciones sean compatible en la Unión. </li></ul><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>(<nombretabla1)  (<nombretabla2) </li></ul></ul><ul><ul><li> city (Branch)   city (PropertyforRent) </li></ul></ul>Algebra Relacional City London Aberdeen Glasgow Bristol
    30. 30. <ul><ul><li>Intersección, obtiene las tuplas comunes entre la tabla1 y la tabla2. </li></ul></ul><ul><ul><li>(<nombretabla1)  (<nombretabla2) </li></ul></ul><ul><ul><li> city (Branch)   city (PropertyforRent) </li></ul></ul>Algebra Relacional City London Aberdeen Glasgow
    31. 31. <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> city (Branch) -  city (PropertyforRent) </li></ul></ul>Algebra Relacional City Bristol
    32. 32. MANIPULACION DE DATOS
    33. 33. <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>Manipulación de datos
    34. 34. <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>Manipulación de datos
    35. 35. <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>Manipulación de datos
    36. 36. <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. Una consulta simple consiste en extraer datos de una tabla. </li></ul><ul><li>Ejemplos: </li></ul><ul><ul><ul><li>1) SELECT * </li></ul></ul></ul><ul><ul><ul><li>FROM Staff </li></ul></ul></ul><ul><ul><ul><li>2) SELECT fName, lname, salary </li></ul></ul></ul><ul><ul><ul><li>FROM Staff </li></ul></ul></ul><ul><ul><ul><li>WHERE salary > 10000 </li></ul></ul></ul><ul><li>3) Ordenación de resultados </li></ul><ul><ul><ul><li>SELECT fName, lname, salary </li></ul></ul></ul><ul><ul><ul><li>FROM Staff </li></ul></ul></ul><ul><ul><ul><li>ORDER BY salary </li></ul></ul></ul>Manipulación de datos
    37. 37. <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 branchNo, fname, lname, salary </li></ul></ul></ul></ul></ul><ul><ul><ul><ul><ul><li>FROM Branch, Staff </li></ul></ul></ul></ul></ul><ul><ul><ul><ul><ul><li>WHERE Branch.branchNo= Staff. branchNo </li></ul></ul></ul></ul></ul>Manipulación de datos
    38. 38. DEFINICION DE DATOS
    39. 39. Definición de datos <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>
    40. 40. <ul><li>Crear una tabla </li></ul>Definición de datos CREATE TABLE nombreTabla { <Atributo><tipodato> [NOT NULL] [PRIMARY KEY] [CHECK <condicion>] } [PRIMARY KEY (atributo (S)] [FOREIGN KEY (clave externa) REFERENCES <tablaPadre> (clave candidata)]} CREATE TABLE Staff staffno varchar2(4) PRIMARY KEY, fname varchar2(20), lname varchar2(20),branchNo varchar2(4), FOREING KEY branchNo REFERENCES branch (branchNo)
    41. 41. <ul><li>Modificar una tabla </li></ul>Definición de datos ALTER TABLE nombreTabla [ ADD COLUMN <Atributo><tipodato> [NOT NULL]] <ul><li>Eliminar una tabla </li></ul>DROP TABLE nombreTabla
    42. 42. <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>Definición de datos <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>

    ×