Tema 1 Fundamentos teóricos de las bases de datos-Clase Teórica

download Tema 1 Fundamentos teóricos de las bases de datos-Clase Teórica

of 59

Transcript of Tema 1 Fundamentos teóricos de las bases de datos-Clase Teórica

Tema 1 Fundamentos de las Bases de Datos Tema 1 Fundamentos tericos de las bases de datos Contenido 1- Introduccin a las Bases de Datos 2- Introduccin al modelo relacional 3- Fundamentos del modelo relacional 4- Introduccin al modelo orientado a objetos 5- Fundamentos al modelo orientado a objetos 6- Modelo deductivo Objetivos Que los estudiantes conozcan: ? Los conceptos fundamentales sobre los que se sustentan los modelos de datos, como punto de partida para entender su evolucin y las particularidades de los gestores de base de datos. ? ? ? cul es el fundamento terico que hay detrs de las definiciones del modelo relacional y que por dems se consideran que han hecho de este modelo el ms popular y que ms ha perdurado. cul es el fundamento terico que hay detrs de las definiciones del modelo orientado a objetos o modelo de objetos. cul es el fundamento terico que hay detrs de las definiciones del modelo deductivo.

Bibliografa1. De Miguel, A. y Piattini, M. Concepcin y diseo de Bases de datos: del modelo entidad/relacin al

modelo relacional Addison Wesley Iberoamericana. Espaa. 1993. .2. Embley, D. Object database development: concepts and principles Addison Wesley Longman. Inc. .

EUA. 1998.3. Kroenke, D. Procesamiento de Base de datos 5ta. Edicin. Prentice-Hall Hispanoamericana, S.A. .

Espaa. 1996.4. Codd, E.F. Extending the Database Relation Model to capture more meaning ACM transaction on .

database systems, No. 4, pginas 397-434. 1979.5. Date, C.J. Introduccin a los Sistemas de Gestin de Base de Datos Addison Wesley .

Iberoamericana. 7ma edicin. Espaa. 2003.6. De Miguel, A. y Piattini, M. Ms semntica para el modelo E/R Revista Chip Informtica. Espaa. .

Noviembre/Diciembre 1991.7. Elmasri, et al. The category concept: an extension to the entity relationship model Data G. Knowledge .

Engineering, pginas 75-116. 1985..8. Korth, H. and Siberschatz, A. Fundamentos de Bases de Datos 2da. Edicin. McGraw.

Hill/Iberoamericana de Espaa. S.A. 1993,9. Piattini, M. supervivencia del modelo relacional Revista Chip Informtica. Mayo. 1992. La . 10. Dalton, P. Microsoft SQ2 Server Black Book International Thomson Publishing Company. Published .

by the Corilis Group, Inc. EUA. 1997.11. Layandi, H. SQL2: un lesahed SAMS publishing. EUA. 1997. . 12. Alagic, Saud. Object-oriented Database Progranming 1989. .

Dra. Anaisa Hernndez Gonzlez Asignatura: Base de Datos

1 Diplomado en Informtica Aplicado

Tema 1 Fundamentos de las Bases de Datos13. Bertino, E. and Martn, L. Object-oriented Database Systems: concepts and architectures 1993 . 14. Davis, J.R. Object-relational database managers (ORDBMS) Distributed computing monitor, Vol. 19, .

No. 2, pginas 3-29. Febrero 1995.15. Khoshafian, S. and Abnous, R. Object-Orientation: concepts, languages, databases, user interfaces.

John Wiley & Sos, Inc. 1990.16. Francett, B. Hybrid DBMSs offer best of both words Software Magazine, Volumen 15, No. 8, pginas .

61-65. August 1995.17. Frank, M. Object-relational hybrids: a look at Technology and products that blend object and relational .

DBMS, Volumen 8, No. 8, pginas 46-52. July 1995.18. Graham, I. Mtodos orientados a objetos 2da. Edicin. Addison-Wesley/Daz Santos. Espaa. 1996. . 19. Hughes, J. G. Object-Oriented Databases Prentice Hall Internacional Group. 1991. . 20. Abiteboul, S.; Hull, P. and Vianu, V. Foundation of Database Addison-Wesley Publishing Company. . 1995. 21. Andrade, L. F; Gouveia, J. C.; Xardon, P, J. and Camara, JA. Architectural concerns in automating code generation OBLOG. Software S.A. http://www,oblog.com&bews/concerns.html. 1999. . 22. Barry, D. ODMG 2.0: A standard for object storage . Component Strategies. http://www.org/libary/readingroom/ Artides-Component Stratragues-July html. July 1998. 98. 23. Cans, J. H. Tesis doctoral: OASIS: un lenguaje nico para Base Datos Orientadas a objetoDSICUPV. Espaa. Julio 1996. 24. Cattel, R.G.G:; Barry, D. K: Berler, M.; Eastman, J.; Jordan, D.; Rusell, C.; Shadow, O.; Stanierda, T. and Velez, F. The Object Data Standard: ODMG 3.0 The Morgan Kofman Series in Data . Management Systems. http://www.odmg.org/. January 2000. 25. Frederiks, P.J.M.; Hofstede, ter A.H.M. and Lippe. E. Unifying framework for conceptual data A modeling concepts Information and Software Technology. Volumen 39, No. 1, pginas 15-25. . http://www.icis.qut.au/auther/artcles/Howto.ps.Z. January 1997.. 26. Hofstede, ter, A.H.M. and Proper, H.A. How to formalize it? Formalization Principles for Information Systems Development Methods Technical report # 4/97, Faculty of Information Technology, . Queensland University of Technology, Brisbane, Austria. Http://www.icisqut.edu.au/author/work.ps.z. June 1997. 27. Jungclaus, T.: Saake, G.; Hartman, T. and Sernadas, C. Troll-a language for object-oriented Specification of Information Systems. Volumen 14, No. 2, pginas 175.211. 1995. 28. Kovcs, G. and Van Bonnel, P. Conceptual modeling based design of object-oriented Databases . Information and Software Technology. Volumen 40, No. 1, pginas 1-14. 1998. 29. Oblong Software S.A. The OBLOG Specification Language Htt://www.oblog. com/tech/spec.html. . 1999 30. Pastor, O. Tesis doctoral: Diseo y desarrollo de un entorno de ejecucin automtica de software en el modelo orientado a objetos DSIC-UPV. Espaa, Abril 1992. . 31. Tuijn, Ch. and Gyssens, M. CGODO, a categorical graph-oriented object data model Theorical . computer Science. 160, pginas 217-239. 1996. 32. Celma, M. Deductividad y actividad en Bases de Datos Parte I Bases de Datos Deductivas . .

Programa de Doctorado. Programacin Declaratoria e Ingeniera de la programacin. Universidad Politcnica de Valencia. Espaa. 1977-98. Introduccin

Dra. Anaisa Hernndez Gonzlez Asignatura: Base de Datos

2 Diplomado en Informtica Aplicado

Tema 1 Fundamentos de las Bases de Datos Para un usuario final de una aplicacin no es importante saber cmo estn representados los datos internamente, solo le preocupa que su aplicacin responda a sus requerimientos de manera eficiente y correcta. Este problema es del analista, el diseador y el programador; y para darle respuesta tienen que saber cmo representarlos. Para llegar a este conocimiento hay que pasar por la historia del proceso de almacenamiento, y el desarrollo en ascenso que han tenido los modelos de datos utilizados para la descripcin de la informacin. 1.1-Almacenamiento de la informacin La mayora de las aplicaciones de software que se desarrollan requieren del almacenamiento, en memoria externa, de informacin. Durante estos aos se han utilizado diferentes formas de organizacin. Aquellos sistemas, cuyo objetivo principal es la gestin de datos que pueden ser creados, eliminados y consultados, provocaron un inters especial por parte de la comunidad de desarrolladores de software con vistas a aplicar mecanismos de organizacin eficaces. 1.1.1 - Organizacin de los datos La organizacin clsica se basa en sistemas orientados a procesos o sistemas de procesamiento de archivos, nombres que indistintamente permiten reconocer a este tipo de organizacin. Estos tipos de sistemas ponen nfasis en los tratamientos que reciben los datos, los cuales se almacenan en ficheros diseados para una determinada informacin. Las aplicaciones se analizan e implementan con entera independencia unas de otras, y los datos no suelen transferirse entre ellas, sino que se duplican siempre que los correspondientes trabajos los necesiten (Figura 1.1).D1 D2D3

F1

P1

F2

P2

D4 D5 Datos F3

P3

Cada aplicacin incluye los programas necesarios para extraer, aadir y consultar informacin almacenada en los archivos.

Archivos

Programas de aplicacin

Figura 1.1 Sistema de procesamiento de archivos. Los principales problemas de este tipo de organizacin han sido abordados profundamente, y pueden resumirse en: ? ? ? ? ? ? Datos separados y aislados. Redundancia e inconsistencia de los datos. Es difcil representar los datos en el modo que los usuarios los ven. Dependencia de los datos respecto al soporte fsico y a los programas, lo que da lugar a una falta de flexibilidad y de adaptabilidad frente a los cambios. Anomalas del acceso concurrente. Problemas de integridad. 3 Diplomado en Informtica Aplicado

Dra. Anaisa Hernndez Gonzlez Asignatura: Base de Datos

Tema 1 Fundamentos de las Bases de Datos Tomando en cuenta estos problemas y la proliferacin de sistemas de gestin de datos, se desarroll una forma de organizacin conocida como sistemas de procesamiento de base de datos o sistemas orientados a los datos. Los datos se organizan y mantienen en un conjunto estructurado que no est diseado para una aplicacin concreta, sino que por el contrario, tienden a satisfacer las necesidades de informacin de toda la organizacin; necesidades cuya diversidad se ve acentuada con el transcurso del tiempo. Para procesar los datos almacenados se posee un conjunto de programas que se agrupan en un Sistema de Gestin de Base de Datos (SGBD). Los programadores no deben preocuparse por las formas en que los datos se almacenan y hacen uso del SGBD para incluir, extraer y consultar informacin (Figura 1.2).

D1 D2 D3 D4 BD SGBD

P1 Los programas de aplicacin acceden a la BD a travs del SGBD

P2

P3 D5 Datos Base de datos Sistema de Gestin de Base de datos Programas de aplicacin

Figura 1.2 Sistema de procesamiento de Base de Datos. 1.1.2 - Qu es una Base de Datos (BD)? El trmino aparece a comienzo de los aos '70 y se ha definido como: ? "Coleccin de datos interrelacionados en un conjunto sin redundancias perjudiciales e innecesarias; su finalidad es servir a una aplicacin o ms, de la mejor manera posible; los datos se almacenan de modo que resultan independientes de los programas que los usan; se emplean mtodos bien determinados para incluir nuevos datos y para modificar o extraer los datos almacenados." (Martn, 1995) "Coleccin o depsito de datos, donde los datos estn lgicamente relacionados entre s, tienen una definicin y descripcin comunes y estn estructurados de una forma particular. Una BD es, tambin, un modelo del mundo real y, como tal, debe poder servir para toda un gama de usos y aplicaciones." (Conferencie des Statisciens Europecienens, 1977) "Conjunto de datos de la empresa memorizado por un ordenador, que es utilizado por numerosas personas y cuya organizacin est registrada por un modelo de datos." (Floy, 1982) "Conjunto estructurado de datos registrados sobre soportes accesibles por ordenador para satisfacer simultneamente varios usuarios de forma selectiva y en tiempo oportuno". (De Lobel, 1982) "Coleccin no redundante de datos compartidos entre diferentes sistemas de aplicacin." (Howe, 1983) 4 Diplomado en Informtica Aplicado

?

? ?

?

Dra. Anaisa Hernndez Gonzlez Asignatura: Base de Datos

Tema 1 Fundamentos de las Bases de Datos ? "Coleccin integrada y generalizada de datos, estructurada atendiendo a las relaciones naturales de modo que suministre todos los caminos de acceso necesarios a cada unidad de datos con objeto de poder atender todas las necesidades de los diferentes usuarios." (Deen, 1985) "Conjunto de ficheros maestros, organizados y administrados de una manera flexible de modo que los ficheros puedan ser fcilmente adaptados a nuevas tareas imprevistas." (Frank, 1988) "Coleccin de datos interrelacionados. (Elmasri y Navathe, 1989) "Coleccin o depsito de datos integrados, con redundancia controlada y con una estructura que refleje las interrelaciones y restricciones existentes en el mundo real; los datos, que han de ser compartidos por diferentes usuarios y aplicaciones, deben mantenerse independientes de estas, y su definicin y descripcin, nicas para cada tipo de datos, han de estar almacenadas junto con los mismos. Los procedimientos de actualizacin y recuperacin, comunes y bien determinados, habrn de ser capaces de conservar la integridad, seguridad y confidencialidad del conjunto de datos." (De Miguel y Piattini, 1993) "Una BD es auto descriptiva porque contiene datos y una descripcin de su estructura (metadatos). Est formado por un conjunto de registros que es la suma de archivos de datos del usuario, metadatos, ndices y metadatos de aplicacin."(Kroenke,1996) Es una larga, persistente e integrada coleccin de datos dinmicos que brinda algunas operaciones para describir, establecer, manipular y accesar estos datos.(Embley,1998) Larga: no es suficiente el almacenamiento primario por lo que se necesita almacenamiento secundario y en ocasiones se requiere distribuirla en una red. Persistente: los datos duran ms que las aplicaciones que los operan. Integrada: la BD es de inters de varios usuarios o grupos de usuarios por lo que el acceso a los datos puede causar problemas. Toda esta informacin est junta y puede un mismo dato actualizarse o consultarse simultneamente. Dinmica: los datos cambian con el tiempo lo que puede provocar dificultades para el almacenamiento y mantenimiento de una organizacin ptima y puede causar problemas en el mantenimiento de la integridad de los datos 1.1.3 - Ventajas de la organizacin en BD sobre los ficheros clsicos Las ventajas del uso de la organizacin en BD sobre los ficheros clsicos, han sido fundamentadas en tres direcciones diferentes: ? Para los usuarios: ? ? ? ? ? ? ? ? ? Acceso ms rpido y sencillo. Aumenta las facilidades para compartir los datos por el conjunto de los usuarios. Mayor flexibilidad para atender a demandas cambiantes. Para los datos: Independencia de estos con respecto al tratamiento y viceversa. Mejor disponibilidad de los mismos. Mayor eficiencia en la recogida, codificacin y entrada en el sistema. Para los resultados: Mayor coherencia porque la informacin se recoge y almacena una solo vez por lo que un cambio en los datos solo hay que actualizarlo una vez. 5 Diplomado en Informtica Aplicado

? ? ?

?

?

Dra. Anaisa Hernndez Gonzlez Asignatura: Base de Datos

Tema 1 Fundamentos de las Bases de Datos ? ? Mayor valor informativo al estar en la BD los datos almacenados interrelacionadamente. Mejor y ms normalizada la documentacin de la informacin al estar integrada con los datos.

La decisin de adoptar este tipo de organizacin, en el desarrollo de aplicaciones, por lo general depende de las caractersticas de la aplicacin en s. Las condiciones que influyen sobre la forma de organizacin de los datos son: ? Interrelaciones complejas en el modelo de informacin. ? Integracin de distintas aplicaciones. ? Mtodos mltiples de acceso. ? Modos mltiples de tratamiento. ? Diferentes tipos de registros en los ficheros. ? Exigencias de confidencialidad, seguridad e integridad en las aplicaciones. A pesar de todo esto hay dos razones por las cuales se puede decidir no utilizar la organizacin en BD: relativas a la implementacin (la tecnologa requerida es costosa) y relativa a los usuarios (personal especializado). 1.1.4 - Sistema de Gestin de Base de Datos Un SGBD es un conjunto coordinado de programas, procedimientos, lenguajes; que suministran, tanto a los usuarios no informticos como a los analistas, programadores o al administrador, los medios necesarios para describir, recuperar y mantener los datos almacenados en la base de datos, manteniendo su integridad, confidencialidad y seguridad. Posee dos partes: ? Gestor de la BD: Es un mdulo de programa que proporciona la interfaz entre los datos de bajo nivel almacenados en la BD y los programas de aplicacin y consultas hechos al sistema. Es responsable de las siguientes tareas: ? ? ? ? ? Interaccin con el gestor de archivos. Implantacin de la integridad. Implantacin de la seguridad. Copia de seguridad y recuperacin. Control de concurrencia.

? Administrador de la BD: Tiene el control central de los datos y de los programas que acceden a esos datos. Sus funciones: ? ? ? ? ? Definicin de esquema. Definicin de la estructura de almacenamiento y el mtodo de acceso. Modificacin del esquema y de la organizacin fsica. Concesin de autorizacin para el acceso a los datos. Especificacin de las restricciones de seguridad.

Ullman en 1988 defini como caractersticas comunes de los SGBD las siguientes: ? Capacidad para administrar datos persistentes y acceder a grandes cantidades de estos datos de forma eficiente y segura. ? Apoyo para modelos abstractos de datos. ? Apoyo para la administracin de transacciones en entornos multiusuarios. Dra. Anaisa Hernndez Gonzlez Asignatura: Base de Datos 6 Diplomado en Informtica Aplicado

Tema 1 Fundamentos de las Bases de Datos ? Apoyo para los controles acerca del acceso y propiedad de los datos. ? Apoyo para la verificacin de datos y para la comprobacin de congruencias. ? Apoyo para la recuperacin congruente de datos despus de fallas del sistema y del hardware, lo cual minimiza la prdida de datos. Sobre la forma en que se almacenar la informacin en una aplicacin, hay que tomar una decisin cuando se desarrolla un sistema. Cualquier decisin tiene sus ventajas e inconvenientes, la tarea del desarrollador es analizar en su aplicacin las caractersticas que posee tomando como base los criterios antes expuestos y poner todas las respuestas en una balanza. 1.1 - Modelo de datos Un modelo de datos es un formalismo matemtico que consta de una notacin para describir los datos y las estructuras de datos (informacin), y de un conjunto de operaciones vlidas que se pueden utilizar para manipular estos datos, o, al menos, los smbolos que los representan. Es un dispositivo de abstraccin que nos permite ver el bosque (la informacin contenida en los datos) en oposicin a los rboles (valores individuales de los datos). Objetivos del modelo de datos: ? Formalizacin: ? ? ? Describir las estructuras permitidas y las restricciones a fin de representar los datos de un sistema de informacin. Establecer las bases para la definicin de un lenguaje de datos. Facilitar la apreciacin objetiva de la riqueza o flexibilidad de las estructuras de datos, ayudando a la comparacin formal de los distintos modelos de datos y a la evaluacin de un SGBD.

? Diseo: ? Es uno de los elementos bsicos (junto con los lenguajes, documentacin y otras herramientas) para el desarrollo de una metodologa de diseo de BD.

El sistema de ficheros es el precursor de los SGBD. El nivel alcanzado por el soporte fsico y las necesidades de los usuarios con respecto a la informacin que necesitan almacenar al desarrollarse aplicaciones cada vez ms complejas, han propiciado el desarrollo de diferentes modelos de datos. En la actualidad se reconocen tres generaciones: 1ra generacin: Modelos jerrquicos y en red o reticular. 2da generacin: Modelo relacional. 3ra generacin: Modelos semntico, de objetos complejos, orientado a objetos y deductivo. 1.2.1 - Definicin formal El par MD = donde: ? S: es el conjunto de reglas de generacin que permiten representar la componente esttica, es decir, describir las estructuras del universo del discurso (UD). Se corresponde con el LDD (Lenguaje de definicin de datos). O: es el conjunto de operaciones autorizadas sobre la estructura que permiten representar la componente dinmica. Se corresponde con el LMD (Lenguaje de manipulacin de datos). UD : es la visin que del mundo real tiene el diseador. LDD: Permite describir los elementos de datos, su estructura, interrelaciones validaciones. 7 Diplomado en Informtica Aplicado

? ? ?

Dra. Anaisa Hernndez Gonzlez Asignatura: Base de Datos

Tema 1 Fundamentos de las Bases de Datos ? LMD: Permiten buscar, aadir, suprimir y modificar datos de la BD; lo cual supone definir un criterio de seleccin, la estructura lgica a recuperar y accesar a la estructura fsica.

Dra. Anaisa Hernndez Gonzlez Asignatura: Base de Datos

8 Diplomado en Informtica Aplicado

Tema 1 Fundamentos de las Bases de Datos

?Modelo

Un SGBD se corresponde con un modelo de datos por lo que est equipado con mecanismos para controlar, asegurar la consistencia de los datos, poder acceder eficientemente a los datos y un subsistema para optimizar las operaciones de consulta.

1.2.2 - Comparacin entre los modelos de datos Los modelos jerrquicos, en red y relacional han sido soportados por gran cantidad de SGBD durante ms de tres dcadas. Los que soportan los modelos de 3ra generacin, estn comenzando ha ser implementados. Las principales caractersticas de los modelos de la 1ra y 2da generacin y sus debilidades se describen en la tabla. Caractersticas Debilidades No hay independencia fsica de los datos, es decir, que la forma en que se navega y la jerarqua de la BD reflejan la forma en que los datos son organizados, accesados y almacenados. Esto limita la extensibilidad, mantenimiento, reusabilidad y portabilidad de los SGBD desarrollados con estos modelos. Adems, sus interfaces de bajo nivel impiden su utilizacin directa por los usuarios finales para responder a preguntas no planificadas como las que lleva consigo la toma de decisiones.

Reticular o Consiste en tipos de registros y en red relaciones de 1:m entre estos registros. Un tipo de registro puede estar involucrado en ms de una relacin. Es una relacin de dueo/miembros.

Jerrquico

Un tipo de registros solo est involucrado en una relacin como "padre" y solo en una relacin como "hijo". Es una relacin padre/hijo. Se basa en almacenar datos en tablas de dos dimensiones (registros-filas o tuplas y campos-columnas o atributos). Las relaciones entre las tablas se establecen mediante la conexin de atributos (llaves). Por lo tanto los usuarios las perciben como un conjunto de tablas (las entidades son tablas y las relaciones son tablas). En principio no fue posible explotar todas sus posibilidades porque el hardware existente era insuficiente, por eso hasta la dcada de los '80 no aparecieron SGBD fuertes que hicieran cambiar de parecer a los usuarios. Adems, estos productos les parecan raros cuando en realidad su forma de representar y procesar los datos era ms natural. En la actualidad hay reas de aplicacin para las que, debido a sus especiales exigencias, resultan insuficientes. EJ.: CASE, CAD, CAM, CIM, Datos espaciales, imgenes.

Relacional

Dra. Anaisa Hernndez Gonzlez Asignatura: Base de Datos

9 Diplomado en Informtica Aplicado

Tema 1 Fundamentos de las Bases de Datos 1.2.3 - Evolucin del modelo relacional1968-70 Surge el modelo (Codo) 1970... Desarrollo tericos 1970... 1973-78 Prototipos (Ingres, Sistema R), 1976 Modelo Entidad-Relacin (Peter Chen), 1978 QBE (Query By Example), 1978 Oracle y Refinamientos del Codd (entidad dbil)

1980... 1980 Ingres, 1981 SQL, 1982... DB2, Informix, Supera, RDG, SyBase, InterBase 1984 SQL ISO (9075) 1990 Modelo relacional versin 2 (vistas) 1992 SQL92 1993 Disparadores

1999 SQL3 SQL:1999

En la actualidad es el modelo relacional el que ha demostrado mayor fuerza y se encuentra ms difundido porque: ? Los datos y las relaciones entre ellos se almacenan, al menos conceptualmente, de un modo en que los usuarios entiendan con ms facilidad. ? Posee una fundamentacin desde el punto de vista terico que se basa en la matemtica (los conceptos del lgebra relacional ) y la teora de predicados de 1er orden. ? Los usuarios pueden obtener informacin de la BD sin asistencia de sistemas complejos. 1.2.4 - Nuevos modelos Tomando como base las debilidades del modelo relacional y el desarrollo alcanzado en el soporte fsico, han evolucionado los modelos de datos tal como se muestra en la figura 1.3.

Dra. Anaisa Hernndez Gonzlez Asignatura: Base de Datos

10 Diplomado en Informtica Aplicado

Tema 1 Fundamentos de las Bases de Datos

Modelo relacional

Modelo semntico

Enfoque orientados a objetos

Modelo de objetos semnticos

Modelo deductivo

Modelo de objetos

Figura 1.3 Evolucin del modelo de datos a partir del modelo relacional. 1.2.4.1 - Modelo semntico ? Finales de la dcada '80. ? Es una de las alternativas para modelar mejor el mundo real. ? Usan los conceptos de nodo y enlace del modelo reticular. Los nodos son un tipo de entidad. ? Se usaron como herramienta de diseo para reforzar la BD reticular y relacional. ? Ejemplos: Abrial's 1974 Modelo entidad relacin 1976 Chen 1.2.4.2 - Modelo de objetos complejos ? Mantienen la fundamentacin terica del modelo relacional, pero no es necesario que se cumpla la 1FN por lo que se puede construir usando conjuntos y tuplas. ? Contienen una o ms de las siguientes expresiones: 1. 2. 3. 4. 5. ? ? ? Conjunto de valores atmicos. Identidad de objetos. Atributos que su valor sea una tupla. Atributos que su valor es un conjunto de tuplas. Relaciones anidadas.

? Otros nombres del modelo de datos: No en 1FN. Modelo de conjuntos y tuplas. Modelo de datos basados en la lgica con trminos complejos. Bancihon y Khoshafian 1986,1989 Abiteboul, 1990 Dra. Anaisa Hernndez Gonzlez Asignatura: Base de Datos 11 Diplomado en Informtica Aplicado

? Ejemplos:

Tema 1 Fundamentos de las Bases de Datos 1.2.4.3 - Modelo de objetos semnticos ? Es una representacin de cosas identificables en el ambiente de trabajo de los usuarios, son algo que los usuarios reconocen como independiente y separado. ? Es un conjunto de atributos que describen con eficacia una entidad bien determinada. Los atributos pueden ser simples, de grupo y tipo objeto semntico. ? Ejemplo: Kroenke, 1988 1.2.4.4 - Modelo de objetos ? Es un modelo que permite describir los datos, sus estructuras y las operaciones vlidas que se pueden realizar pero apoyndose en los conceptos del paradigma de la orientacin a objetos (conceptos de objeto, clase, herencia, encapsulamiento, identificacin de objetos, comunicacin a travs de mensajes y el polimorfismo. ? Hay una fuerte actividad prctica, pero desde el punto de vista terico hay poca formalizacin. 1.2.4.5 - Modelo de deductivo ? Permite aadir nuevo conocimiento a partir de la inferencia. ? Necesitan reglas declarativas para expresar las interrelaciones semnticas entre objetos, de manera que, cuando se producen ciertas condiciones, ejecuta de forma automtica las acciones especificadas de antemano en la fase de definicin de la BD. ? Est muy bien fundamentada en la lgica de predicado de 1er orden, pero en la prctica no se ha logrado concretar en un SGBD comercial. Su actividad experimental es casi nula comparada con otros modelos. ? Ejemplo: Datalog. 1.3 - Conclusiones En la actualidad muchas organizaciones continan usando arquitecturas de BD que tienen ms de 25 aos y no tienen en planes inmediatos moverse a las bases de datos relacionales. Tony Percy (Vicepresidente y director del centro de investigaciones de Tecnologa de software Gartner Group, Stanford, Conn), expone como razones, para preservar estos sistemas, las siguientes: 1. Corren eficientemente y son altamente pronosticables donde respuestas en el tiempo son requeridas. 2. El costo (tiempo, dinero y recursos) de implementacin de sistemas es enorme an si las personas conocen cmo se trabaja con BDR. 3. Relativa a la curva de aprendizaje: a menos que las personas adopten diferentes tcnicas de diseo de sus datos y procesos, ellos al final abusarn del modelo y fallarn en la migracin. Si analizamos este ejemplo, podemos concluir que no es fcil migrar haca los modelos de la 3ra generacin que, por dems, no son an tan fuertes como el relacional y hay todava resistencia a usarlos. 2. INTRODUCCIN AL MODELO RELACIONAL Segn Codd un SGBD relacional tienen tres partes fundamentales: ? ? ? Datos que se presentan en forma de tablas. Operadores para manipular las tablas. Reglas de integridad aplicables a las tablas.

Para un usuario, en esencia, estas son las cosas visibles de una BD relacional, pero detrs hay un grupo de conceptos que tiene que estar claros cuando se disea la BD. Algunos son conceptos que aparecieron en las primeras versiones propuestas por Codd a finales de los 60 y principios de los 70, otros han Dra. Anaisa Hernndez Gonzlez Asignatura: Base de Datos 12 Diplomado en Informtica Aplicado

Tema 1 Fundamentos de las Bases de Datos surgido con la firma de otros autores, pero reflejan los esfuerzos de aos que se han realizado en la bsqueda de representar ms semntica del mundo real. 2.1 Relacin Se basa en la teora matemtica de las relaciones, donde una relacin puede definirse formalmente como: Sean los conjuntos D1, D2,... , Dn (no necesariamente distintos). R es una relacin sobre esos n conjuntos si est constituido por un conjunto de n-tuplas ordenado de d1,d2,...,dn tales que d1? D1, d2? D2,..., dn? Dn. Los conjuntos D1, D2,...., Dn se llaman dominios de R. El valor n es el grado de R.

2.1.1 Caractersticas En una relacin no hay dos filas (tuplas) iguales, el orden de las filas y columnas es insignificante y cada valor dentro de una relacin (cada valor de dominio en cada tupla) es un dato atmico (no descomponible). Una relacin se representa como una tabla aunque no son lo mismo: ? En la cabecera de una relacin hay un conjunto fijo de atributos, es decir, de pares atributodominio, donde a cada atributo le corresponde uno y solo uno de los dominios subyacentes. En una tabla no aparecen los dominios subyacentes, aunque conceptualmente estn en la cabecera. En el cuerpo de una relacin hay un conjunto de tuplas que vara con el tiempo. Cada tupla est formada por un conjunto de pares atributo-valor. Como una tabla es una instantnea de los valores que aparecen en la BD en un momento dado, no se ve que vare en el tiempo. En una tabla por ninguna parte se dice explcitamente que cada columna corresponde a uno y solo uno de los dominios y que cada fila representa una tupla.

?

?

2.1.2 Tipos de relaciones ? Relaciones base o reales: son aquellas cuya importancia para la aplicacin es tal que tienen nombre y forman parte directa de la base de datos. ? Vistas o relaciones virtuales: tienen nombre y es representada dentro del sistema mediante su definicin en trmino de otras relaciones con nombre. ? Instantneas: es una relacin derivada con nombre, que se define en trmino de otras relaciones con nombre y tienen sus datos almacenados. ? Resultados de consulta: son la relacin final resultante de una consulta. Puede o no tener nombre. No tiene existencia persistente dentro de la base de datos. ? Resultados intermedios: es una relacin (casi siempre sin nombre) resultante de alguna expresin relacional anidada dentro de alguna otra expresin relacional ms grande. No tiene existencia persistente dentro de la base datos. ? Relaciones temporales: es una relacin con nombre que se destruye de forma automtica en algn momento apropiado. Las relaciones base, las instantneas y vistas son ms permanentes en cuanto a que se destruyen por una accin explcita del usuario. 2.2 Definiciones formales Antes de adentrarnos en las particularidades del modelo, es importante conocer qu expresan los principales conceptos sobre los que se fundamentan. Podra darse una descripcin informal de cada de ellos, pero se estara renunciando a la posibilidad de poseer una definicin precisa que ha permitido, que todos los que trabajan en este campo, posean un lenguaje comn.

Dra. Anaisa Hernndez Gonzlez Asignatura: Base de Datos

13 Diplomado en Informtica Aplicado

Tema 1 Fundamentos de las Bases de Datos 2.2.1 Dominio Es un conjunto finito de valores homogneos y atmicos V1, V2,...., Vn caracterizado por un nombre. Homogneo: son todos del mismo tipo. Atmico: son indivisibles en lo que al modelo se refiere, es decir, si se descomponen perdera la semntica a ellos asociada. La exigencia de atomicidad es para dominios simples no para dominios complejos (concepto introducido por Codd en 1990 en la 2da versin del modelo). Un dominio complejo es la combinacin de dominios simples que tienen nombre y a la que se pueden aplicar ciertas restricciones de integridad. 2.2.2 Esquema de relacin Denotado R (A1:D1, A2:D2,...., An:Dn) es un conjunto de n pares atributo-dominio subyacente ? (Ai:Di)? donde n es el grado del esquema de relacin. La intencin es la parte definida y esttica de la relacin ( o relativamente esttica). 2.2.3 Ocurrencia de una relacin Tambin llamada instancia o simplemente relacin. Denotada por r(R) es un conjunto de n tuplas ? t1, t2,....,TN? donde cada tupla es un conjunto de m pares atributo-valor ? (Ai:Vij)? , donde Vij es un valor j del dominio Di asociado al atributo Ai; el nmero de tuplas m es la cardinalidad. La relacin r(R) es, por lo tanto, el conjunto de tuplas que, en un instante determinado, satisfacen el correspondiente esquema de relacin R; as como el esquema de relacin e relativamente- invariante, su extensin vara en el transcurso del tiempo. Cuando la relacin se percibe como una tabla, el cuerpo de la tabla sera la extensin. 2.2.4 Superllave Sea R un esquema de relaciones. Un subconjunto K de r es una superllave de R si, en cualquier relacin legal r(R), para todos los pares t1 y t2 de tuplas en r tales que t1? t2, t1[K] ? t2[K]. Es decir, dos tuplas en cualquier relacin legal r(R) no pueden tener el mismo valor en el conjunto de atributos K. En una relacin pueden existir varias superllaves. Tambin se les llama clave candidata de una relacin e informalmente puede definirse como un conjunto no vaco de atributos que identifican unvocamente y mnimamente cada tupla. En una relacin R2 puede encontrarse una clave ajena. Una clave ajena es un conjunto no vaco de atributos cuyos valores han de coincidir con los valores de la clave primaria de una relacin R1 (R1 y R2 no son necesariamente distintas). 2.2.5 Restricciones de integridad referencial Se conoce tambin como dependencia de sujetos porque puede escribirse ? ? (r2) ? ? como:K1(r2)

y se define

Sean r1(R1) y r2(R2) relaciones con claves primarias K1 y K2 respectivamente. Decimos que un subconjunto ? en R2 es una clave exterior con referencia K1 en la relacin r1 si es necesario que para cada tupla t2 en r2 haya una tupla t1 en r1 tal que t1[K1]=t2[K2]. Para que tenga sentido una restriccin de integridad referencial, o bien ? =K1 ? y K1 deben ser conjuntos de atributos compatibles. Fuentes de restricciones de integridad ? Una relacin que surge de la relacin entre varias entidades porque tendr llaves extranjeras (la llave de cada una de las relaciones). ? Entidad dbil porque depende de otra entidad y tiene que incluir la llave primaria de las relaciones de que depende como llave extranjera. Dra. Anaisa Hernndez Gonzlez 14 Asignatura: Base de Datos Diplomado en Informtica Aplicado

Tema 1 Fundamentos de las Bases de Datos Para proteger la restriccin de integridad referencial ? ? (r2) ? ? siguiente:K1(r2)

hay que tener en cuenta lo

? Insertar: Si una tupla t2 se inserta en r2, el sistema debe asegurar que exista una tupla t1 en r1, tal que t1[K]=t2[K]. Es decir, t2[? ]? ? K(r1). ? Eliminar: Si una tupla t1 se elimina de r1, el sistema debe calcular el conjunto de tuplas en r2 que hacen referencia a t1: ? ? =t1[K] (r2). Si este conjunto no est: ? ? Se rechaza la orden de eliminar. Se eliminan las tuplas que hacen referencia a t1. Esto puede llevar a eliminaciones en forma de cascada.

? Actualizar: ? Si se elimina una tupla t2 en la relacin r2 y la actualizacin modifica valores para la clave exterior ? , entonces se hace una prueba similar a la del caso de insertar. t2 representa el nuevo valor de la tupla t2. El sistema debe asegurarse que: t2[? ]? ? K(r1). Si se actualiza una tupla t1 en r1 y la actualizacin modifica valores para la clave primaria (K), entonces se hace una prueba similar a la del caso de eliminar. El sistema debe calcular ? ? =t1[K] (r2) usando el valor antiguo de t1 (se aplica el valor de antes de la actualizacin). Si el conjunto no est vaco, la actualizacin se rechaza como un error.

?

Reglas de integridad relacional 1 El conjunto de atributos que identifica unvocamente a una tupla (superllave) tiene que, adems de tomar un valor nico, ser mnimo. Es decir, las llaves primarias tienen que cumplir dos principios: unicidad y minimalidad. Restriccin sobre el nmero de ocurrencias que delimitan el nmero de objetos que pueden intervenir en un tipo de interrelacin: Para ello es necesario definir, cuando se establece una relacin entre relaciones, la cardinalidad mxima y mnima (es decir, la cantidad mxima y mnima de objetos) en cada extremo de la nueva relacin. Restricciones de dominio o regla de integridad de entidad: Ningn atributo que forme parte de la clave primaria de una relacin puede tomar un valor nulo, es decir, un valor desconocido e inexistente. El modelo no exige que se aplique a claves extranjeras o ajenas pues la cardinalidad mnima en ese extremo puede ser cero, aunque debe ser as. Integridad referencial: Si una relacin R2 (relacin que referencia) tiene un descriptor que es la clave primaria de la relacin R1 (relacin referenciada), todo valor de dicho descriptor debe: concordar con un valor de la clave primaria de R1 o ser nulo. El descriptor es, por lo tanto, una clave ajena a la relacin R2. Adems de definir claves ajenas, hay que determinar las consecuencias, que operaciones de borrado y modificacin realizadas sobre tuplas de la relacin que contiene la llave primaria referenciada, puedan tener sobre las tuplas con dicha clave en la relacin que contiene la clave ajena (tal como se vio en el epgrafe anterior). Restriccin de dependencia funcional: Es una restriccin al conjunto de relaciones legales. Permiten expresar hechos acerca de la empresa que se est modelando con la Base de Datos.

2

3

4

5

2.3 Extensiones En el mundo de las BD no hay un criterio unnime de cmo llamarle a los aportes al modelo relacional original propuesto por Codd en 1969-70. Algunos plantean que son extensiones, otros los asocian con el modelo semntico y existen quienes los consideran como nuevas versiones del modelo relacional. Consideramos que esto no es lo ms importante, lo esencial es conocer, entender y usar estos aportes. Dra. Anaisa Hernndez Gonzlez Asignatura: Base de Datos 15 Diplomado en Informtica Aplicado

Tema 1 Fundamentos de las Bases de Datos 2.3.1 Modelo entidad-relacin (ME/R) ? Tambin conocido como modelo entidad-interrelacin. ? Propuesto por Peter Chen en 1976 ? Define dos perspectivas en la definicin del modelo de datos: ? Perspectiva esttica. ? Entidad: Es aquel objeto (real o abstracto) acerca del cual se quiere almacenar informacin en la base de datos. Debe cumplir las siguientes reglas: 1. Tiene que tener existencia propia. 2. Cada ocurrencia de un tipo de entidad debe poder distinguirse de las dems. 3. Todas las ocurrencias de un tipo deben tener los mismos tipos de caractersticas (atributos). ? Interrelacin: Asociacin o correspondencia existente entre entidades. Matemticamente: El conjunto de interrelaciones de un tipo de interrelacin R se define como ? e1, e2,... , en? donde ei es una ocurrencia del tipo de entidad Ei y n el grado del tipo de interrelacin. Dominio (conjunto de valores posibles que puede tomar una cierta caracterstica) y valor. Atributo. Restricciones: ? Sobre los valores, que delimitan los valores que pueden corresponder a un cierto objeto del modelado. ? Sobre el nmero de ocurrencias, que delimitan el nmero de objetos que pueden intervenir en un tipo de interrelacin. ? Perspectiva dinmica: Lenguajes que operan en el nivel conceptual basndose en el modelo entidad-relacin. Estos lenguajes permiten formular consultas a la BD con sentencias que se parecen al lenguaje natural y son sencillas de formular. Ejemplo: CABLE (Chain Based Language) 1980. CLEAR (Conceptual Language for Entities and Relationships) 1978. ? El Diagrama Entidad-Relacin (DER) representa varios tipos de restricciones, algunas explcitas (herencia, agregacin y cardinalidad) y otras implcitas (integridad referencial y dominio de atributos). ? Permite un diseo de la BD top-down. 2.3.2 Modelo entidad-relacin extendido (MER/E) A partir de la propuesta original de Chen, mucho autores han hecho aportaciones por lo que hay una familia de modelos derivados del ME/R, las inclusiones ms importantes son: 1. Cardinalidad de un tipo de entidad 2. Dependencia de existencia 3. Dependencia en identificacin 4. Interrelaciones exclusivas 5. Generalizacin/Especializacin 6. Dimensin temporal Dra. Anaisa Hernndez Gonzlez Asignatura: Base de Datos 16 Diplomado en Informtica Aplicado

? ? ?

Tema 1 Fundamentos de las Bases de Datos 7. Atributos derivados 8. Categorizacin 9. Instanciacin 10. 11. Meronimia Agrupamiento

2.3.2.1 Cardinalidad de un tipo de relacin Nmero mximo y mnimo de ocurrencias de un tipo de entidad que pueden estar interrelaciones con una entidad del otro u otros tipos de entidad que participan en un tipo de interrelacin. Representacin grfica- una etiqueta del tipo: ? ? ? ? (0,1) (1,1) (1, constante) (1,mucho) ? ? ? ? (0,constante) (0,mucho) (mucho,mucho) (constante,mucho)

2.3.2.2 Dependencia en existencia Las ocurrencias de un tipo de entidad (entidad dbil) no pueden existir si desaparece la ocurrencia de la entidad regular de la cual depende. 2.3.2.3 Dependencia en identificacin Tiene que cumplirse la dependencia en existencia y adems las ocurrencias del tipo de entidad dbil no se pueden identificar unvocamente mediante los atributos propios de la misma y exigen aadir la clave del tipo de entidad regular del cual dependen. 2.3.2.4 Interrelaciones exclusivas Dos o ms tipos de interrelaciones son exclusivas cuando cada ocurrencia de un tipo de entidad solo puede pertenecer a un tipo de interrelacin. (Figura 2.1)

Figura 2.1 Ejemplo de interrelaciones exclusivas. 2.3.2.5 Generalizacin/especializacin Descomposicin de tipos de entidades en varios subtipos ( un tipo de o un es es ). Toda ocurrencia de un subtipo es una ocurrencia de supertipo, aunque no sucede lo contrario, con lo que las cardinalidades sern siempre (1,1) en el supertipo y (0,1) o (1,1) en los subtipos. Dra. Anaisa Hernndez Gonzlez Asignatura: Base de Datos 17 Diplomado en Informtica Aplicado

Tema 1 Fundamentos de las Bases de Datos

Trae consigo el concepto de

HERENCIA

Por defecto (los supertipos son prototipos, por lo tanto los subtipos heredan los atributos siempre que no los refinan.

Estricta (todos los atributos del supertipo deben ser heredados por los subtipos).

Inhibir la herencia de determinados atributos.

Tomando como base la cardinalidad entre los subtipos/supertipos se han definido cuatro clases de generalizaciones: ? Total sin solapamiento. ? Total con solapamiento. ? Parcial sin solapamiento. ? Parcial con solapamiento. Donde: Parcialidad: implica la admisin de nulos en el atributo discriminante. Solapamiento: implica que el atributo discriminante sera un grupo repetitivo. Por lo tanto, los subtipos se solapan o son disjuntos (si una ocurrencia puede o no pertenecer a ms de un subtipo) y la unin de los subtipos recubre o no el supertipo - generalizacin total o parcial (si toda la ocurrencia del supertipo tiene que pertenecer o no a algn subtipo). (Figura 2.2).

Dra. Anaisa Hernndez Gonzlez Asignatura: Base de Datos

18 Diplomado en Informtica Aplicado

Tema 1 Fundamentos de las Bases de Datos

Figura 2.2 Ejemplo de las clases de generalizacin: a) Total sin solapamiento. b) Total con solapamiento. c) Parcial sin solapamiento. d) Parcial con solapamiento.

2.3.2.6 Dimensin temporal Recoger en el esquema funcional la influencia, en la variacin de los datos, que tienen algunos hechos. Cmo podra representarse? : ? Paso del tiempo: a travs de campos fecha (Figura 2.3).

Figura 2.3 Ejemplo de implementacin del paso del tiempo. ? Nocin de estado para representar la evolucin de un tipo de entidad (Figura 2.4).

Dra. Anaisa Hernndez Gonzlez Asignatura: Base de Datos

19 Diplomado en Informtica Aplicado

Tema 1 Fundamentos de las Bases de Datos

Figura 2.4 Ejemplo de implementacin de nocin de estado. ? Una ocurrencia de un tipo de entidad se transforma en una ocurrencia de otro tipo de entidad. 2.3.2.7 Atributos derivados Son redundantes, pero no dan lugar a incoherencias porque se calcula a partir de otros existentes. Es necesario incluir en el diccionario de datos la regla de derivacin. 2.3.2.8 Categorizacin Es una nueva categora que es el conjunto de la unin de la relacin entre entidades (Figura 2.5).

Figura 2.5 Ejemplo de categorizacin. 2.3.2.9 Instanciacin Es otro tipo de jerarquizacin en herencia. Es el caso de las interrelaciones ejemplar de que se establece en el sentido de que si el tipo de entidad A ejemplar de tipo de entidad B, significa que el es tipo de entidad B existe en A uno o varios ejemplares. Se trata de interrelaciones 1:N. El atributo identificador principal de los subtipos no suele ser el del supertipo, sino que por lo general est compuesto por el identificador del supertipo junto con un atributo discriminante presente en el subtipo (Figura2.6).

Figura 2.6 Ejemplo de instanciacin. 2.3.2.10 Meronimia Reflejan el concepto de parte de Los tipos que existen representan distintos aspectos del concepto . ser parte deo formar parte de(visto desde el punto de vista semntico): ? Porcin/masa. ? Materia/objeto. ? Actividad/subactividad. Dra. Anaisa Hernndez Gonzlez Asignatura: Base de Datos 20 Diplomado en Informtica Aplicado

Tema 1 Fundamentos de las Bases de Datos ? Lugar/rea. ? Componente/objeto integral: Se corresponde con el concepto de agregacin en el que pueden distinguirse: ? ? ? Agregacin simple de atributos para construir una entidad (Figura 2.7a). Agregacin de tipos de entidad para construir un tipo de entidad compuesto sin posibilidades de desensamblarse (Figura 2.7b). Agregacin de tipo de entidad para construir un tipo de entidad compuesto con posibilidad de desensamblarse (una bicicleta).

Figura 2.7 Ejemplo de componente/objeto integral. Miembro/coleccin: Es una entidad que agrupa a un conjunto de ocurrencia de un mismo tipo de entidad (Figura 2.8).

Figura 2.8 Ejemplo de miembro/coleccin. 2.3.2.11 Agrupamiento Si T designa a algn conjunto entidad (entidad) y T1, T2,... ,Tn son bien conjuntos valor (dominios) asociados con T o conjuntos entidad (entidades) relacionados con T va alguna relacin, entonces el operador de agrupamiento construye un nuevo conjunto entidad agrupado (entidad agrupada o agrupamiento) Tg donde cada elemento es un conjunto de entidades (ocurrencias) de T, tales que, dentro de uno de tales conjuntos las entidades (ocurrencias) tienen los mismos valores y entidades

Dra. Anaisa Hernndez Gonzlez Asignatura: Base de Datos

21 Diplomado en Informtica Aplicado

Tema 1 Fundamentos de las Bases de Datos relacionadas desde los conjuntos entidad (entidad) T1,T2,...,Tn asociados. Los tipos T1,T2,...,Tn se llamarn tipos ndice y T se llamar base. En la figura 2.9 se representa un ejemplo de un agrupamiento que se define a partir de la entidad trabajador, en este caso se agrupa a los trabajadores que tienen igual salario.

Figura 2.9 Ejemplo de agrupamiento. 2.3.3 Refinamientos de Codd El propio Codd ha refinado su modelo: ? 1979: Se aade ms semntica la modelo, de manera que las relaciones representadas como entidades. Las entidades pueden clasificarse en:?

entre

entidades

son

Asociativa: representa una relacin M:N entre dos entidades distintas. Fuerza a que la entidad asociativa existe si existen todas las entidades que participan en la asociacin. Caracterstica: describe algunos aspectos de otra entidad superior (en el modelo llamada entidad dbil). La regla de integridad asociada es que la entidad caracterstica solo puede existir si existe la entidad superior. Ncleo: es la entidad fundamental sin la cual no existen las entidades anteriores. Soporta dos tipos de relaciones subtipo/supertipo: ? Alternativa o condicional: una tupla del supertipo puede corresponderse o no con alguna tupla de entidades subtipo (se corresponde con el concepto de Parcialidad en las extensiones descritas en el epgrafe anterior). Absoluto o incondicional: cada instancia del supertipo se corresponde con alguna instancia de algn subtipo (se corresponde con el concepto de Total).

?

? ?

? ? 1990:

Este ao se divulg una nueva versin del modelo relacional (MR/V2). Entre los aspectos novedosos que se exige a un SGBDR, se destacan: 1. Catlogo: debe contener no solo la descripcin de las tablas, dominios y vistas del sistema, sino tambin reglas de integridad, funciones definidas por el usuario, datos de autorizacin y estadsticas. Codd destac la importancia de ir enriqueciendo la semntica del catlogo descargando a las aplicaciones. 2. Vistas: deben ser tratadas por el SGBD del mismo modo que las relaciones. Se incluye la necesidad de un algoritmo para determinar si una vista es o no actualizable. 3. Autorizacin: en este apartado se destac la importancia de determinar "quin", "cmo" y "cundo" accede a "qu" parte de la BD, resaltando que en el MR/V2 se ha introducido la caracterstica denominada "N-person turn key" por la cual el SGBD debe poder exigir que ms de una persona proporcione autorizacin para llevar a cabo ciertas actividades. Dra. Anaisa Hernndez Gonzlez Asignatura: Base de Datos 22 Diplomado en Informtica Aplicado

Tema 1 Fundamentos de las Bases de Datos 4. Funciones: en este apartado se explic la utilizacin del calificador "grado de duplicacin" (DOD-Degree of Duplication), que indica el nmero de veces que un valor concreto ocurre en una columna, y que permite resolver el problema de las tuplas duplicadas sin violar los fundamentos del modelo relacional. 5. Informacin desconocida: Codd propone que se aplique una lgica cuatrivaluada (L4V) donde existan los valores: verdadero, falso, desconocido pero aplicable (por ejemplo, fecha de nacimiento de un empleado) y desconocido inaplicable (por ejemplo, comisin en empleados que no son vendedores). De manera que el valor nulo ahora se clasifica como A-aplicable o Iinaplicable. Date plantea que hay infinidad de variantes (desconocido, inaplicables, no existe, indefinido, invlido, no proporcionados, conjuntos vacos, etctera), por lo tanto es mejor ignorar el hecho y dar un valor por defecto. 6. Sentencias para el DBA, estas abarcan:? ? ? ? ?

Creacin (create) de dominios, relaciones, vistas, columnas, instantneas e ndices. Modificacin (alter) de dominios y columnas. Adicin (append) de columnas. Borrado (drop) de relaciones, vistas, dominios, columnas, instantneas e ndices. Renombramiento (rename) de relaciones, vistas, dominios, columnas, instantneas e ndices. Carga (load) de relaciones. Descripcin (explain) de relaciones. Archivacin (archive). Reactivacin (reactivate) de relaciones. Sentencias que contemplan al cuantificador universal (Find all).

? ? ? ? ?

7. Cualificadores: se utilizan para modificar algn aspecto de la ejecucin de sentencias relacionales (por ejemplo, order by), en el MR/V2 se describen 13. 8. Indicadores: sirven para representar condiciones excepcionales en el argumento de una sentencia o en el resultado de la misma, por ejemplo relacin vaca, divisor vaco, argumento inexistente, dominio no declarado,... , hasta un total de 14. 2.3.4 Disparadores En la propuesta original de Sequel se inclua un concepto que no est presente en el SQL estndar, y en la actualidad es soportando por algunos SGBDR. Su reaparicin se puede enmarcar en 1993. Nos referimos a los disparadores. Un disparador es una sentencia que el sistema ejecuta automticamente como un efecto secundario de una modificacin de la BD. Para disear un mecanismo de disparo hay que: ? ? Especificar las condiciones bajo las cuales se va a ejecutar el disparador, es decir, hay que especificar el o los valores que debe tomar el o los campos de la tabla. Especificar las acciones que se van a tomar cuando se ejecute el disparador.

Se define tambin como acciones que hay que realizar si ciertas restricciones se cumplen o si se incumple o viola una restriccin. 2.3.5 Nuevas restricciones de integridad La inclusin de estas operaciones plantea nuevas restricciones de integridad: Dra. Anaisa Hernndez Gonzlez Asignatura: Base de Datos 23 Diplomado en Informtica Aplicado

Tema 1 Fundamentos de las Bases de Datos ? Al aplicar la generalizacin/especializacin, una entidad puede pertenecer a una jerarqua de diferentes conjuntos entidad (entidades). Una entidad existente a un nivel dado, tiene que existir en todos los niveles superiores. La agregacin constituye un conjunto entidad (entidad agregada) sobre la base de una relacin, por lo que dicho conjunto se comportar de forma similar a como se comporta la relacin. Para que el conjunto agregado exista, deben existir todos los conjuntos entidad (entidades) que forman parte en la relacin. Lo inverso no tiene que ocurrir necesariamente. Al aplicar el agrupamiento, la base es indispensable solo en el sentido de que para que exista cada entidad agrupada en el conjunto de entidad obtenido, al menos tiene que existir una entidad en la base. Lo inverso no se requiere, o sea, no es necesario que cada entidad en el conjunto base sea miembro de alguna entidad en el conjunto agrupado.

?

?

2.4 Conclusiones El modelo relacional brida un significativo paso de avance en la modelacin de los datos y ofrece un esquema realista para una implementacin eficiente, lo que se evidencia en el gran nmero de SGBDR que existen. Sin embargo este modelo ha resultado inadecuado cuando se quieren construir aplicaciones que involucran a entidades complejas y gran nmero de interrelaciones. El problema es que el modelo tiene problemas al representar la semntica del mundo real. 3 FUNDAMENTOS DEL MODELO RELACIONAL A diferencia de otros modelos de datos, para el caso del MR la fuerte actividad experimental de las ltimas dcadas ha estado precedida de un modelo formal. Esta formalizacin permiti obtener un estndar que ha unificado a los productos presentes en el mercado. El modelo se basa tericamente en el lgebra y clculo relacional, pero qu toma de ellos y qu introduce?. 3.1 lgebra relacional El lgebra relacional es un lenguaje procedimental o procedural que define las operaciones bsicas usadas en los lenguajes de consulta relacionales. Es equivalente en capacidad a las dos formas del clculo relacional, que se profundizan en el epgrafe 2.2, cuando estn restringidas a operaciones seguras. 3.1.1 Definicin formal Sean E1 y E2 expresiones del lgebra relacional, entonces las siguientes son todas expresiones del lgebra relacional: ? E1 U E2. Unin ? E1 - E2. Diferencia ? E1 x E2. Producto cartesiano ? ? p(E1), donde p es un predicado con atributos de E1. Seleccin ? ? s(E1), donde s es una lista que consta de algunos de los atributos de E1. Proyeccin 3.1.2 Operadores Una clasificacin de los operadores podra ser: ? ? Primitivos Derivados

Adems, Codd defini otros operadores y existen operadores adicionales de consulta y manipulacin. Dra. Anaisa Hernndez Gonzlez Asignatura: Base de Datos 24 Diplomado en Informtica Aplicado

Tema 1 Fundamentos de las Bases de Datos 3.1.3.1 Primitivos Pertenecen a la teora de conjuntos. ? Unin (? ): Debe cumplir los siguientes requisitos: ? ? ? ? Las relaciones r y s deben tener el mismo nmero de atributos. Los dominios del atributo i-simo de r y del atributo i-simo de s, deben ser los mismos Diferencia (-): Permite encontrar tuplas que estn en una relacin, pero no en la otra. Producto cartesiano (x): A partir de las tuplas de una relacin r se forma una nueva relacin con todas combinaciones resultantes de su relacin con las tuplas de una relacin s.

3.1.2.2 Derivados Se obtienen a partir de los primitivos. ? Combinacin (join) ?x ?: Es una operacin binaria que nos permite combinar ciertas selecciones y un producto cartesiano en una operacin. Forma un producto cartesiano de sus dos argumentos, realiza una relacin forzando la igualdad en aquellos atributos que aparezcan en ambas planificaciones de relaciones, y finalmente quita las columnas duplicadas. r ?x ?s = ?r? s

(? r.A1=s.A1? ...? ? r.An=s.AnRxS)

? Interseccin (? ): r? s = r-(r-s) donde r? s = {A1,...A2} ? Divisin (? ): Se establece para aquellas consultas que incluyen la frase para todos . Sean r(R) y s(S) relaciones y S ? R. La relacin r? s es una relacin del esquema R-S. Una tupla t est en r? s si para cada tupla tr en r que satisface las dos condiciones siguientes: tr [s] = ts [s] tr [R-S] = t [R-S] . 3.1.2.3 Introducidos por Codd ? Restriccin o seleccin (? ): ?

() = > < ? ? ?

? Proyeccin (? ): ?

3.1.2.4 Adicionales de consulta ? Agrupacin. ? Cierre transitivo: se define sobre dos atributos compatibles (igual dominio) de una relacin, aadiendo a la relacin de origen todas las tuplas que se deducen, sucesivamente por transitividad hasta la saturacin. Dra. Anaisa Hernndez Gonzlez Asignatura: Base de Datos 25 Diplomado en Informtica Aplicado

Tema 1 Fundamentos de las Bases de Datos 3.1.2.5 Adicionales de manipulacin ? Asignacin (? ): asignar un nombre de relacin al resultado de una consulta. ? Insercin de tuplas: Se expresa V? r? E donde r es una relacin y E es una expresin del lgebra relacional. Se deben cumplir las siguientes condiciones: ? ? Los valores de los atributos para las tuplas insertadas deben ser miembros del dominio de los atributos. Las tuplas insertadas deben ser del mismo orden.

? Borrado: Se expresa V? r-E donde r es una relacin y E es una consulta del lgebra relacional. Se expresa similar a una consulta, pero en vez de representarlas, se quitan de la BD. ? Modificacin: ?? a? E(r) donde r es el nombre de una relacin con atributo A, al cual se le asigna el valor de la expresin E. La expresin E es cualquier expresin aritmtica que implica constantes y atributos en la planificacin de relacin r. 3.2 Clculo relacional El clculo relacional se puede ver desde dos puntos de vistas diferentes que pueden ser usados para representar una consulta: ? Clculo relacional de tuplas: Una expresin de la forma {t|P(t)} donde P es una frmula. En una frmula pueden aparecer varias variables de tuplas. Se dice que una variable de tupla es una variable libre a menos que este cuantificada por un cuantificador universal (? ) o por un cuantificador existencial (? ). Una frmula en el clculo relacional de tuplas se compone de tuplas. ? Clculo relacional de dominios: Esta forma usa variables de dominio que toman valores del dominio de un atributo ms que valores de una tupla completa. El clculo relacional de tuplas y dominios es un lenguaje no procedimental que representa la capacidad bsica requerida en un lenguaje de consulta relacional. 3.3 Lenguajes El lgebra y clculo relacionales son lenguajes concisos, formales e inadecuados para usuarios casuales de un SGBD, por lo tanto los SGBD comerciales por lo general usan lenguajes con ms azcar semntica. Los ms usados son: ? SQL (Structure Query Language): combinacin de construcciones del lgebra y el clculo. ? QBE (Query By Example): basado en el clculo relacional de dominios. ? Quel : basado en el clculo relacional de dominios y tuplas. En los SGBD se debe poseer adems un lenguaje que permita definir instrucciones adicionales para, por ejemplo, controlar secuencias, ciclos y bifurcaciones, entrada/salida a dispositivos fsicos y funciones matemticas. 3.3.1 Comparacin entre lenguajes Lenguaje Caractersticas QUEL Se introdujo como lenguaje de consulta para el SGBD Ingres, desarrollado en la Universidad de California, Berkeley. El sistema Ingres acadmico original ofreci el lenguaje Quel, actualmente ofrece Quel y SQL. Es el nombre de un lenguaje de manipulacin de datos y un sistema de base de datos que incluye este lenguaje. El sistema de base de datos se desarroll a principios de los en T.J. Watson Research de IBM. A pesar de que ya est fuera de uso, el lenguaje 70 26 Diplomado en Informtica Aplicado

QBE

Dra. Anaisa Hernndez Gonzlez Asignatura: Base de Datos

Tema 1 Fundamentos de las Bases de Datos Lenguaje Caractersticas de manipulacin es parte del Query Management Facility (QMF) de IBM. Tiene una sintaxis bidimensional, es decir, para expresar una consulta se requieren dos dimensiones. Para obtener la respuesta deseada, el usuario da un ejemplo de lo que desea y el sistema generaliza este ejemplo para calcular la respuesta a la consulta. SQL Aparece aproximadamente en 1980. Su nombre original fue Sequel y fue implementado en la dcada de los 70, posteriormente se le llam SQL. Su versin original fue desarrollada en San Jos Research Laboratory. Todas las versiones respetan un conjunto de funciones estndar definidas por un comit ANSI? . Se han definido dos versiones, la primera en 1986 y la segunda en 1992. A esta ltima se le conoce como SQL2. En entornos de trabajo, segn la arquitectura cliente-servidor, el lenguaje SQL es el intermediario principal y directo de todos los mensajes que gestionan bases de datos, incluso indirectamente (SQL embebido o inmerso) cuando acta desde el interior de las aplicaciones cliente. Lamentablemente buena parte de los gestores de base de datos que implementan SQL, no son absolutamente relacionales. 3.3.2 SQL SQL forma el producto cartesiano de las relaciones nombradas en la clusula FROM, realiza una seleccin del lgebra relacional usando el predicado de la clusula WHERE y despus proyecta el resultado a los atributos de la clusula SELECT. Una consulta puede optimizarse para que el procesamiento sea ms eficiente. Internamente los SGBD poseen un mecanismo de optimizacin. El resultado de una consulta en SQL es una relacin. Los lenguajes de consulta formales se basan en la nocin matemtica de relacin como un conjunto. Por ello nunca aparecen tuplas duplicadas en las relaciones (a menos que usted lo solicite en la consulta). En la prctica la eliminacin de duplicados consume mucho tiempo. Implcitamente se admiten duplicados. 3.4 Lenguaje de manipulacin de datos (LMD) Un LMD define un lenguaje de consulta basado en el lgebra y clculo relacional de tuplas. Incluye rdenes para insertar, suprimir y modificar tuplas de la BD.

SELECT [palabra reservada para no permitir duplicado] FROM [WHERE [GROUP BY [HAVING ]] [ORDER BY [ASC/DESC]]

?

ANSI-American National Standards Institute Dra. Anaisa Hernndez Gonzlez Asignatura: Base de Datos

27 Diplomado en Informtica Aplicado

Tema 1 Fundamentos de las Bases de Datos Ejemplo de palabra reservada que no permite duplicado: DISTINT 3.4.1 Conectores lgicos ? AND ? OR ? NOT ? ? ?

3.4.2 Operadores de seleccin para comparacin de cadenas de caracteres. ? % es igual a cualquier subcadena. ? es igual a cualquier carcter.

3.4.3 Pertenencia a un conjunto ? IN: Prueba si es miembro de un conjunto, donde el conjunto es una coleccin de valores producidos por una consulta SELECT. ? NOT IN: Prueba la no pertenencia al conjunto. 3.4.4 Operadores para comparacin de consulta ? SOME Mayor que algn. ? ALL Mayor que todos. ? < ALL Menor que todos. ? ? ALL Mayor o igual que algn. ? ? ALL Menor o igual que algn. ? = ALL igual que todos. ? ? ALL desigual que todos. Nota: ANY es sinnimo de SOME y era permitido en las primeras versiones, pero se sustituye por SOME para evitar ambigedad lingstica de la palabra Any en ingls. 3.4.5 Comparacin entre conjuntos CONTAINS (NOT CONTAINS): Permite comparar conjuntos para determinar si un conjunto contiene o no todos los miembros de algn otro conjunto. Fue introducido en Sequel, pero ha sido omitida en implementaciones posteriores y no est en el ANSI estndar, posiblemente porque su procesamiento es extremadamente caro. Las ltimas versiones de Oracle lo incluyen. 3.4.6 Existencia de una tupla EXIST (NOT EXIST): Permite probar si una subconsulta tiene alguna tupla en su resultado (o no tiene). Dra. Anaisa Hernndez Gonzlez Asignatura: Base de Datos 28 Diplomado en Informtica Aplicado

Tema 1 Fundamentos de las Bases de Datos 3.4.7 Eliminar tuplas de una relacin DELETE r WHERE p , donde p representa a un predicado y r una relacin. Las tuplas t en r, para las cuales p(t) es verdadero, son eliminadas en r. Si contienen un SELECT incorporado que hace referencia a la relacin de la que se van a suprimir las tuplas, pueden ocurrir anomalas. 3.4.8 Insertar tuplas en una relacin Condiciones: ? los valores de atributos para las tuplas insertadas deben ser miembros del dominio de los atributos, ? deben tener el nmero correcto de atributos y ? el orden de los atributos, si no se pone, debe corresponder con el orden que tienen los campos en la tabla. INSERT INTO r VALUES (, , ) SQL estndar no permite el SELECT inmerso que haga referencia a relacione en las que las tuplas van a ser insertadas. Para evitar problemas en consultas, SQL puede prohibir en la insercin que se den valores nulos a los atributos. 3.4.9 Actualizacin UPDATE r SET La clusula WHERE puede estar presente en la sentencia. Al igual que en la insercin, el SQL estndar no permite que el SELECT haga referencia a la relacin que se est actualizando. 3.4.10 Clusulas de SQL que implementan las operaciones del lgebra. Operacin del lgebra Producto cartesiano Representacin grfica A B AxB Explicacin Clusula de SQL que la implementa

a

x y

a x a y A[x]

Conjunto de tuplas de T tales FROM: lista de las que es la concatenacin de una relaciones que se tupla de a? A y una tupla de b? B. van a examinar en la evaluacin de la rxs = {t1,t2 ? t1? r and t2? s} expresin. Se extraen columnas de una relacin indicando el orden en que se desean. ? A(r) = {t[A] ? t? r} SELECT: lista de atributos que se desean en el resultado de la consulta.

Proyeccin

A

x a c Seleccin A

y b d

x a c A[x]

Se obtiene un conjunto de tuplas T tales que la comparacin t.x ? t.y tome valores cierto donde los atributos x y y estn definidos en

WHERE: predicado que en la definicin de la condicin involucra a atributos

Dra. Anaisa Hernndez Gonzlez Asignatura: Base de Datos

29 Diplomado en Informtica Aplicado

Tema 1 Fundamentos de las Bases de Datos Operacin del lgebra Representacin grfica x a a b Interseccin y f z f x a y z Conjunto de tuplas que pertenecen a ambas relaciones. Es una operacin asociativa. r? s = {t ? t? r and t? s} INTERSECT: Form parte de Sequel, pero no est incluido en el estndar. Se puede expresar su semntica usando lo operadores de pertenencia a un conjunto IN y NOT IN. No existe un operador, puede modelarse usando el predicado NOT EXIST (o alguno de igual efecto) y replantear la consulta usando doble negacin. y=z Explicacin el mismo dominio y ? es una operacin de comparacin (,=,...). ? F(r) = {t ? t? r and t satisface F} Clusula de SQL que la implementa de las relaciones que aparecen.

Divisin

r? s = ? r S(r) - ? r-

Divide una relacin dividiendo A de grado m+n entre una relacin s ((? r S(r)*s)-r) divisor B de grado m. El atributo m+i de A y el i-simo de B deben donde estar definidos en el mismo ? r S(r) son todas las dominio (i=1,2,...,n). A entre B es tuplas candidatas. el conjunto de tuplas T tales que ? r S(r)*s combinacin de para todas la tuplas b de B las candidatas con s. ocurre t concatenado con b? A. r? s = {t ? ? u? s tu? r} Conjunto de las tuplas que pertenecen a R y que no pertenecen a S. No es una operacin asociativa. r-s = {t ? t? r and t? s}

Diferencia

MINUS: Form parte de Sequel, pero no est incluido en el estndar.

Combinacin (JOIN)

A s s1 s2 s3 x x1 x2 x3

B x x1 x2 x3 z z1 z2 z3

Se refiere a -? de A sobre el atributo x con B sobre el atributo y como el conjunto de tuplas t tales que t es -? de una tupla a? A y es una tupla b? B en las que el predicado a.x ? b.y toma un valor cierto. Si ? es =, entonces a la operacin se le llama equijoin (hay dos atributos idnticos). Si una de estas columnas se elimina, se le llama concatenacin natural. r s = { t ? (? u? r) (? v? s) (t[R]=u and t[S]=v)}

x2 z4

No tiene representacin directa, pero puede definirse en trmino de producto cartesiano, una seleccin y una proyeccin.

A JOIN B s s1 Dra. Anaisa Hernndez Gonzlez Asignatura: Base de Datos x x1 z z1

30 Diplomado en Informtica Aplicado

Tema 1 Fundamentos de las Bases de Datos Operacin del lgebra Representacin grfica s2 s3 s3 Unin x1 x2 x2 z1 z2 z4 Se establece entre dos relaciones compatibles, provocando una nueva relacin con las tuplas de ambas relaciones. r? s = {t ? t? r or t? s} 3.5 Lenguaje de definicin de datos (LDD) Un LDD proporciona rdenes para definir esquemas de relacin, eliminar esquemas, crear ndices y modificar esquemas de relacin. 3.5.1 Vistas CREATE VIEW AS Cuando se define una vista en trmino de varias relaciones, se pueden producir anomalas en la actualizacin de las vistas. Es por esto que muchos SGBD basados en SQL imponen la siguiente condicin: permite una modificacin a travs de una vista solo si la vista en cuestin est definida Se en trminos de una relacin de la BD relacional real, es decir, la BD del nivel conceptual . Dentro de proceso de construccin de una vista estn prohibidas las operaciones de INSERT, DELETE y UPDATE. 3.5.2 Disparadores Los disparadores no se incluyeron en el SQL estndar original, pero la propuesta original Sequel inclua disparadores limitados. Este concepto se retom en 1993 como una posibilidad de incluir dinmica a la BD. En SQL server la sintaxis es: CREATE TRIGGER [dueo.] ON [dueo.] [WITH ENCRYPTION] FOR {INSERT, UPDATE, DELETE} lo que se dispara en respuesta a alguna de estas operaciones. AS sentencia SQL se ejecuta un procedimiento almacenado. Posteriormente se abordar este concepto a profundidad. 3.5.3 Operaciones sobre el esquema ? CREATE TABLE r(A1D1,...,AnDn) Donde r nombre de la relacin. Ai Nombre de un atributo. Di tipo de datos de los valores en el dominio del atributo Ai. Era parte del SQL estndar. Oracle define el operador UNION. Explicacin Clusula de SQL que la implementa

Dra. Anaisa Hernndez Gonzlez Asignatura: Base de Datos

31 Diplomado en Informtica Aplicado

Tema 1 Fundamentos de las Bases de Datos Aqu se puede especificar, adems, el conjunto de ndices que se van a mantener para cada relacin, la informacin de seguridad y autorizacin para cada relacin, los lmites de integridad, entre otras cosas. ? ? DROP TABLE r Elimina una relacin. ALTER TABLE r ADD Aade atributos a una relacin existente asignndole a todas las tuplas de la relacin el valor null en ese atributo. No est en el estndar.

3.6 Funciones de agregacin Pueden usarse en las clusulas SELECT, WHERE y HAVING. Permiten calcular funciones en grupos de tuplas usando la clusula GROUP BY. Las tuplas con el mismo valor en todos los atributos en la clusula GROUP BY se colocan en el mismo grupo. El resultado de una funcin de agregacin es un nico valor. Funcin SUM COUNT AVG MAX MIN 3.7 Implementacin de restricciones Se permite especificar dentro del dominio de los atributos si se puede o no tomar valores nulos (NOT NULL). En el estndar original no se tena nada para especificar la integridad referencial, actualmente se pueden definir, a partir de clusulas, las claves como parte de la sentencia CREATE TABLE. Para la clave primaria hay que especificar NOT NULL en su dominio. Clusula Primary key Unique Key Foreing Key Accin Incluye una lista de atributos que comprenden la clave primaria. Incluyen una lista de atributos que comprenden una clave candidata. Incluye una lista de atributos que comprenden la clave externa y el nombre de la relacin a la que hace referencia la clave exterior Significado Total Contar Promedio Mximo Mnimo

En SQL estndar original se permitan definir afirmaciones que se usaban para modelar aspectos no posibles de expresar de otra forma. Una afirmacin es un predicado que expresa una condicin que se desea satisfaga la BD. Las formas especiales de afirmacin son: ? ? ? Restricciones de dominio. Dependencias funcionales. Restricciones de integridad.

La prueba de las afirmaciones es muy costosa, por eso se quitaron en algunos gestores. ASSERT ALL ON : 3.8 Lenguaje de control de datos (LCD) En el caso de los privilegios a la BD, lo ms elemental es definirlos para los usuarios. De esta forma un usuario tiene privilegio para ejecutar un comando dado solo en un cierto objeto de la BD. Dra. Anaisa Hernndez Gonzlez Asignatura: Base de Datos 32 Diplomado en Informtica Aplicado

Tema 1 Fundamentos de las Bases de Datos De manera general se usan las palabras GRANT y REVOKE para permitir o no el acceso de los usuarios a algunas de las siguientes operaciones, sobre toda una tabla o algunos de los campos. Estas operaciones son: ? ? ? ? ? ? ? SELECT UPDATE DELETE INSERT REFERENCES ALTER INDEX

En Oracle, por ejemplo, los privilegios pueden asociarse a roles, por lo tanto un usuario tendr acceso en un momento dado a los que le permita el rol que juega en ese momento. Las vistas pueden ser usadas tambin para controlar el acceso a columnas o filas de las tablas. 3.9 Caso de estudio Supongamos las siguientes relaciones: Cliente NombreCliente Calle CiudadCliente

Sucursal NombreSucursal Activo CantidadSucursal

Depsito NombreSucursal NmeroCuenta NombreCliente Saldo

Prestamo NmeroPrestamo NombreCliente CantidadPrstamo

Figura 3.1 Diagrama entidad relacin lgebra relacional. ? ? Insertar el hecho de que Juan tiene 5000 pesos en la cuenta 9732 de la sucursal 1092. Depsito ? depsito ? {( 1092 ,9732, Juan ,5000)} Proporcionar a todos los clientes con prestamos en la sucursal 1092 una cuenta de ahorro de 200 pesos. R1 ? (? Nombre Sucursal = 1092 (Prstamo) R2 ? (? Nombre Sucursal, Nmero Prestamo, Nombre Cliente (R1) Depsito ? Depsito ? (R2 ? {(200)})

Eliminar todas las cuentas de Juan. 33 Diplomado en Informtica Aplicado

Dra. Anaisa Hernndez Gonzlez Asignatura: Base de Datos

Tema 1 Fundamentos de las Bases de DatosNombreCliente Calle NombreSucursal Activo

CLIENTE DEPSITO

SUCURSAL

m 1CiudadCliente NmeroCuenta Saldo

nCantidadSucursal

mPRSTAMO

NmeroPrtamo

CantidadPrtamo

Depsito ? Depsito - (? Nombre Cliente = Juan(Depsito) ? Eliminar todas las cuentas de las sucursales situadas en Cienfuegos. R1 ? (? Ciudad Sucursal = Cienfuegos(Depsito ?x ? Sucursal) R2 ? (? ? ?Nombre Sucursal, Nmero Cuenta, Nombre Cliente, Saldo

(R1)

Depsito ? Depsito - R2 Incrementar todos los saldos en un 5%. ?? Saldo ? Saldo * 1.05 (Depsito) Incrementar los saldos de las cuentas mayores 10 000 en un 6% y el resto en 5%. ?? Saldo ? Saldo * 1.06 (?? Saldo>10 000 Depsito)) ?? Saldo ? Saldo * 1.05 (?? Saldo 1200)} Se lee: el conjunto de todas las tuplas t tales que existe una tupla s en la relacin Prstamo para la cual los valores de t y s para el atributo Nombre Cliente son iguales, y el valor de s para el atributo Cantidad Prstamo es mayor de 1200 pesos. Clculo relacional de dominios. { ? ? b,l,a ( ? Prstamo ? a> 1200)} Dra. Anaisa Hernndez Gonzlez Asignatura: Base de Datos 34 Diplomado en Informtica Aplicado

Tema 1 Fundamentos de las Bases de Datos Diferencias: En el clculo relacional de tuplas, cuando se escribe ? s para un variable de tuplas, lo asociamos directamente a una relacin escribiendo ? s? r. Sin embargo, cuando se escribe ? b en el clculo relacional de dominios, b no est relacionado con una tupla, sino a un valor de dominio. As, el dominio de variable b es ilimitado hasta que la subfrmula ( ? Prstamo limite a b a nombres de sucursales que aparezcan en la relacin Prstamo. SQL. ? Encontrar los nombres de todas las sucursales que tiene un activo mayor que alguna sucursal situada en Matanzas. Solucin 1: SELECT DISTINT T.NombreSucursal FROM Sucursal T, Sucursal S WHERE T.Activo>S.Activo AND S.CiudadSucursal= Matanzas Solucin 2: SELECT NombreSucursal FROM Sucursal WHERE Activo>SOME (SELECT Activo FROM Sucursal WHERE CiudadSucursal= Matanzas ) S y T se conocen como variables de tuplas. Son muy tiles para comparar tuplas de la misma relacin. ? Encontrar los nombres de todas las sucursales que tienen un activo mayor que todas las sucursales de Matanzas. SELECT NombreSucursal FROM Sucursal WHERE Activo>ALL (SELECT Activo FROM Sucursal WHERE CiudadSucursal= Matanzas ) ? Encontrar a todos los clientes que tienen una cuenta en todas las sucursales situadas en Matanzas SELECT DISTINT S.NombreCliente FROM Depsito S WHERE (SELECT T. NombreSucursal FROM Depsito T WHERE S.NombreCliente=T.NombreCliente) CONTAINS (SELECT NombreSucursal Dra. Anaisa Hernndez Gonzlez Asignatura: Base de Datos 35 Diplomado en Informtica Aplicado

Tema 1 Fundamentos de las Bases de Datos FROM Sucursal WHERE CiudadSucursal= Matanzas ) El primer SELECT encuentra todas las sucursales en las que el cliente S.NombreCliente tiene una cuenta y el segundo encuentra todas las sucursales en Matanzas. ? Encontrar todos los clientes que tienen una cuenta y un prstamo en la sucursal 1092. SELECT NombreCliente FROM Cliente WHERE EXIST (SELECT * FROM Depsito WHERE Depsito.NombreCliente=Cliente.NombreCliente AND NombreSucursal= 1092 ) AND EXIST (SELECT * FROM Prstamo WHERE Prstamo.NombreCliente=Cliente.NombreCliente AND Nombre Sucursal= 1092 ) El primer SELECT averigua si el cliente tiene una cuenta en la sucursal 1092, y el segundo comprueba si tiene un prstamo en esa sucursal. ? Listar en orden alfabtico todos los clientes que tiene un prstamo en la sucursal 1092. SELECT DISTINT NombreCliente FROM Prstamo WHERE NombreSucursal= 1092 ORDER BY NombreCliente ? Encontrar el saldo promedio en todas las cuentas en todas las sucursales. SELECT NombreSucursal, AVG(Saldo) FROM Depsito Group By NombreSucursal ? Contar el nmero de tuplas de una relacin. SELECT Count(*) FROM Cliente ? Encontrar aquellas sucursales con el saldo promedio mayor. SELECT NombreSucursal FROM Depsito Group By NombreSucursal HAVING AVG(Saldo)? ALL (SELECT AVG(Saldo) Dra. Anaisa Hernndez Gonzlez Asignatura: Base de Datos 36 Diplomado en Informtica Aplicado

Tema 1 Fundamentos de las Bases de Datos FROM Depsito Group BY (NombreSucursal)) ? Encontrar el saldo promedio de todos los clientes con depsitos que viven en Villa Clara y tienen por lo menos 3 cuentas. SELECT AVG(Saldo) FROM Depsito, Cliente WHERE Depsito.NombreCliente=Cliente.NombreCliente AND CiudadClientes Villa Clara GROUP BY Depsito.NombreCliente HAVING COUNT (DISTINT Nmero Cuenta) ? 3 ? Proporcionar a todos los clientes con cuenta de ahorro en 1092una cuenta de ahorro con 200 pesos. INSERT INTO Depsito SELECT Nombre Sucursal, NmeroPrstamo, NombreCliente,200 FROM Prstamo WHERE NombreSucursal= 1092 ? Incrementar el saldo de todas las cuentas un 5%. UPDATE Depsito SET Saldo=1.05*Saldo ? Crear una vista que incluya a todos los clientes que tengan prstamo o depsito. CREATE VIEW Todos-Clientes AS (SELECT NombreSucursal, NombreCliente FROM Depsito) (SELECT Nombre Sucursal, NombreCliente FROM Prestamo) ? Ningn empleado de banco puede ser su propio banquero. ASSERT Limite_Banquero ON Persona: NombreCliente? NombreEmpleado ? Prevenir la adicin de una cuenta a menos que exista el cliente (es una restriccin de integridad referencial) ASSERT Limite_Direccin ON INSERTION TO Depsito EXIST (SELECT * FROM Cliente WHERE Cliente.Nombre_Cliente=Depsito.Nombre_Cliente) ? No se permitirn saldos negativos, cuando esto vaya a ocurrir , se crea un prstamo con la cantidad en deuda. DEFINE TRIGGER Saldo_Deudor ON UPDATE OF Depsito T Dra. Anaisa Hernndez Gonzlez Asignatura: Base de Datos 37 Diplomado en Informtica Aplicado

Tema 1 Fundamentos de las Bases de Datos (If new T.Saldo