MANEJADORES DE BASES DE DATOS Elementos de un SGBD MSI. GENARO MENDEZ LOPEZ / [email protected].

136
MANEJADORES DE BASES DE DATOS Elementos de un SGBD MSI. GENARO MENDEZ LOPEZ / [email protected]

Transcript of MANEJADORES DE BASES DE DATOS Elementos de un SGBD MSI. GENARO MENDEZ LOPEZ / [email protected].

Page 1: MANEJADORES DE BASES DE DATOS Elementos de un SGBD MSI. GENARO MENDEZ LOPEZ / genarom@grupocice.com.

MANEJADORES DE BASES DE DATOSElementos de un SGBD

MSI. GENARO MENDEZ LOPEZ / [email protected]

Page 2: MANEJADORES DE BASES DE DATOS Elementos de un SGBD MSI. GENARO MENDEZ LOPEZ / genarom@grupocice.com.

Objetivo

• Comprender los elementos de un Sistema Gestor de Base de Datos (SGBD).– Arquitectura, Esquemas, Lenguajes

e Interfaces– Clasificación– Características Principales.

Page 3: MANEJADORES DE BASES DE DATOS Elementos de un SGBD MSI. GENARO MENDEZ LOPEZ / genarom@grupocice.com.

TemasParte I• I. Modelos de Datos, Esquemas e

Instancias.– Categorías de los modelos de datos.– Esquemas, instancias y estados de una B.D.

• II. Arquitectura de un SGBD e Independencia de los Datos.– Arquitectura de tres esquemas– Independencia de Datos.

• III. Lenguajes e Interfaces de B.D.– Lenguajes del SGBD.– Interfaces del SGBD.

Page 4: MANEJADORES DE BASES DE DATOS Elementos de un SGBD MSI. GENARO MENDEZ LOPEZ / genarom@grupocice.com.

TemasParte II• IV. El entorno del SGBD.

– Módulos componentes del SGBD– Utilidades del SGBD.– Herramientas, entornos de

aplicación y recursos de comunicación

• V. Clasificación de los SGBD.• VI. Sistemas de Gestión de Bases

de Datos: Perspectiva Histórica

Page 5: MANEJADORES DE BASES DE DATOS Elementos de un SGBD MSI. GENARO MENDEZ LOPEZ / genarom@grupocice.com.

TemarioParte III• VII. Estructura Básica de Oracle.

– Estructura de la Base de Datos– Proceso Oracle– Arranque y Parada de Oracle

• VIII. Estructura de la B.D. y su Gestión en Oracle– Objetos del esquema– El diccionario de datos de Oracle– SQL en Oracle. Métodos en Oracle y Triggers

• IX. Organización del Almacenamiento en Oracle.– Bloques de Datos– Extensiones– Segmentos

Page 6: MANEJADORES DE BASES DE DATOS Elementos de un SGBD MSI. GENARO MENDEZ LOPEZ / genarom@grupocice.com.

TemarioParte IV• X. Programación de Aplicaciones en Oracle

– Programación en PL/SQL– Cursores en PL/SQL– Pro * C.

• XI. Herramientas de Oracle• XII. Visión General de Microsoft Access

– Arquitectura de Access– Definición de los Datos en Access– Definición de las relaciones y restricciones de Integridad

Referencial– Manipulación de Datos en Access

• XIII. Características y Funcionalidad en Access– Formulario– Informes– Macros y Access Basic y Características Adicionales.

Page 7: MANEJADORES DE BASES DE DATOS Elementos de un SGBD MSI. GENARO MENDEZ LOPEZ / genarom@grupocice.com.

Evaluación

• 2 Exámenes Parciales (20%)• Revisión de trabajos de

investigación y exposiciones en clase (30%)

• Exámen Final (50%)

Page 8: MANEJADORES DE BASES DE DATOS Elementos de un SGBD MSI. GENARO MENDEZ LOPEZ / genarom@grupocice.com.

Introducción

Manejadores de Bases de Datos

Page 9: MANEJADORES DE BASES DE DATOS Elementos de un SGBD MSI. GENARO MENDEZ LOPEZ / genarom@grupocice.com.

Conceptos y definiciones• Dato:

– Conjunto de caracteres con algún significado, pueden ser numéricos, alfabéticos, o alfanuméricos.

• Información:– Es un conjunto ordenado de datos los

cuales son manejados según la necesidad del usuario, para que un conjunto de datos pueda ser procesado eficientemente y pueda dar lugar a información, primero se debe guardar lógicamente en archivos.

Page 10: MANEJADORES DE BASES DE DATOS Elementos de un SGBD MSI. GENARO MENDEZ LOPEZ / genarom@grupocice.com.

Conceptos y definiciones• Campo:

– Es la unidad más pequeña a la cual uno puede referirse en un programa. Desde el punto de vista del programador representa una característica de un individuo u objeto.

• Registro:– Colección de campos de iguales o de

diferentes tipos.

• Archivo:– Colección de registros almacenados

siguiendo una estructura homogénea.

Page 11: MANEJADORES DE BASES DE DATOS Elementos de un SGBD MSI. GENARO MENDEZ LOPEZ / genarom@grupocice.com.

¿Qué es una Base de Datos?

• Una Base de Datos es el conjunto de datos almacenados con una estructura lógica.

Page 12: MANEJADORES DE BASES DE DATOS Elementos de un SGBD MSI. GENARO MENDEZ LOPEZ / genarom@grupocice.com.

Antecedentes• Nacieron en la temprana época

de las computadoras digitales, a mediados de la década de los 50 y fueron una de las principales herramientas que éstos ofrecían.

• Surgieron como extensiones de programas Fortran que permitían acceso compartido a los datos.

Page 13: MANEJADORES DE BASES DE DATOS Elementos de un SGBD MSI. GENARO MENDEZ LOPEZ / genarom@grupocice.com.

Antecedentes …• A finales de los 50, se

desarrollaron métodos de acceso soportados por el sistema operativo (acceso directo y secuencial) y maduraron con los sistemas operativos de segunda y tercera generación (principios de los 60).

Page 14: MANEJADORES DE BASES DE DATOS Elementos de un SGBD MSI. GENARO MENDEZ LOPEZ / genarom@grupocice.com.

Antecedentes …• En los 60’s se desarrollaron las bases de

datos estructuradas jerárquicamente y algo después las bases de datos de red.

• A finales de los 60, Ted Codd, investigador de IBM, desarrolló un lenguaje de programación de propósito general que denominó "programación relacional", basado en la teoría de conjuntos y la lógica y que contenía el germen de lo que había de ser el más extendido de los sistemas de bases de datos hasta la fecha, las bases de datos relacionales.

Page 15: MANEJADORES DE BASES DE DATOS Elementos de un SGBD MSI. GENARO MENDEZ LOPEZ / genarom@grupocice.com.

Objetivo principal• El objetivo primero de una base

de datos es, como su nombre indica, almacenar grandes cantidades de datos organizados siguiendo un determinado esquema o "modelo de datos" que facilite su almacenamiento, recuperación y modificación.

Page 16: MANEJADORES DE BASES DE DATOS Elementos de un SGBD MSI. GENARO MENDEZ LOPEZ / genarom@grupocice.com.

¿Que es un SGBD?• Un Sistema Gestor de Base de Datos,

es una colección de programas y estructuras de datos que nos permiten la manipulación o gestión de una BD.

• Un SGBD facilita las funciones de: – almacenar físicamente, – garantizar consistencia, – garantizar integridad, – atomicidad transaccional, – y manejar vistas a la información.

Page 17: MANEJADORES DE BASES DE DATOS Elementos de un SGBD MSI. GENARO MENDEZ LOPEZ / genarom@grupocice.com.

¿Por qué usar una SGBD?• ¿Qué aporta esta tecnología?

– Software “sofisticado” para manejo de grandes volúmenes de datos.

• ¿Qué se haría si no se puede usar?– Desarrollar programas usando

lenguajes de propósito general. C, Pascal, Java, C++, ...... Y

• ¿Esto que problemas trae?– Más trabajo para manipular datos.

Productividad, Costos, Calidad.

Page 18: MANEJADORES DE BASES DE DATOS Elementos de un SGBD MSI. GENARO MENDEZ LOPEZ / genarom@grupocice.com.

Ventajas• Organización de la información.

– Definición central de datos.– Abstracción de Datos.– Múltiples vistas de los datos.– Almacenamiento de datos y programas.

• “Programación” de la BD.– Separación entre programas y datos. – Control de Restricciones de Integridad. – Estandarización de modelos y lenguajes.

Page 19: MANEJADORES DE BASES DE DATOS Elementos de un SGBD MSI. GENARO MENDEZ LOPEZ / genarom@grupocice.com.

Ventajas• Explotación de la BD.

– Datos compartidos.– Control de concurrencia. – Seguridad y Recuperación ante

fallas.– Datos persistentes en modelos

avanzados.

Page 20: MANEJADORES DE BASES DE DATOS Elementos de un SGBD MSI. GENARO MENDEZ LOPEZ / genarom@grupocice.com.

Actores involucrados• Visibles.

– Administrador de BDs.– Diseñador de BDs. – Desarrolladores de Sistemas de

Info.– Usuarios finales.

• Poco visibles.– Implementadores de SGBD.– Operadores de sistemas.

Page 21: MANEJADORES DE BASES DE DATOS Elementos de un SGBD MSI. GENARO MENDEZ LOPEZ / genarom@grupocice.com.

¿Por qué no usar SGBDs?• Alto costo en inversión:

– Hardware.– Software.– Capacitación técnica.

• Costo de administración:– Del SGBD.– De las Bases de Datos.

Page 22: MANEJADORES DE BASES DE DATOS Elementos de un SGBD MSI. GENARO MENDEZ LOPEZ / genarom@grupocice.com.

¿Por qué no usar SGBDs?• ¿Cuando no se justifica usar SGBDs?:

– Muy pocos datos (planillas?). – Datos muy estables.– Alto performance (Tiempo Real).– No hay acceso concurrente.

• Los SGBDs “de escritorio”: – Similares en Modelo de Datos a los

grandes.– Bajo costo (plataforma PC). Por ejemplo:

MS-ACCESS

Page 23: MANEJADORES DE BASES DE DATOS Elementos de un SGBD MSI. GENARO MENDEZ LOPEZ / genarom@grupocice.com.

Objetivo específicos de un SGBDs• Es decir, un SGBD tiene por objetivos:

– Acceso concurrente– Independencia física y lógica– Redundancia controlada de los datos– Alta relación entre los datos– Integridad de los datos– Consistencia de los datos– Seguridad de los datos– Actualización fácil y coherente– Alto rendimiento– Reducción de la dificultad de programación

Page 24: MANEJADORES DE BASES DE DATOS Elementos de un SGBD MSI. GENARO MENDEZ LOPEZ / genarom@grupocice.com.

I. Modelo de Datos, Esquemas e Instancias.

Manejadores de Bases de Datos

Page 25: MANEJADORES DE BASES DE DATOS Elementos de un SGBD MSI. GENARO MENDEZ LOPEZ / genarom@grupocice.com.

Esquema e Instancia• Se denomina Instancia.

– Al estado que presenta una base de datos en un tiempo dado. Veámoslo como una fotografía que tomamos de la base de datos en un tiempo t, después de que transcurre el tiempo t la base de datos ya no es la misma.

• Esquema.– Es la descripción lógica de la base de datos,

proporciona los nombres de las entidades y sus atributos especificando las relaciones que existen entre ellos.

– Es un banco en el que se inscriben los valores que irán formando cada uno de los atributos.

– El esquema no cambia los que varían son los datos y con esto tenemos una nueva instancia.

Page 26: MANEJADORES DE BASES DE DATOS Elementos de un SGBD MSI. GENARO MENDEZ LOPEZ / genarom@grupocice.com.

Esquema e instancia• Esquema de una BD:

– Tipos de datos existentes.– Por ejemplo:

• CURSOS(nro_curso, nombre, horas).• ESTUDIANTES(CI, nombre, fecha_nacimiento).• TOMA_CURSO(nro_curso, CI).

– Muy estables.

• Instancias: – Datos almacenados.– Muy volátiles.

Page 27: MANEJADORES DE BASES DE DATOS Elementos de un SGBD MSI. GENARO MENDEZ LOPEZ / genarom@grupocice.com.

Modelos de Datos• ¿Qué son?

– Lenguajes usados para especificar BDs.

– Un Modelo de Datos permite expresar: • Estructuras.

– Objetos de los problemas: Por ejemplo: CURSOS (nro_curso, nombre, horas).

• Restricciones.– Reglas que deben cumplir los datos. Por

ejemplo: (c CURSOS ) (c. horas< 120)

• Operaciones.– Insertar, borrar y consultarla BD. Por ejemplo: – Insert into CURSOS (303,”BD”,90)

Page 28: MANEJADORES DE BASES DE DATOS Elementos de un SGBD MSI. GENARO MENDEZ LOPEZ / genarom@grupocice.com.

Modelos de Datos• Según el nivel de abstracción:

– Conceptuales. • Representan la realidad

independientemente de cualquier implementación de BD. Usado en etapa de Análisis.

– Lógicos. • Implementados en SGBDs. Usado en

etapas de Diseño e Implementación.

– Físicos. • Implementación de estructuras de datos.

P. Ej.: ArbolesB, Hash.

Page 29: MANEJADORES DE BASES DE DATOS Elementos de un SGBD MSI. GENARO MENDEZ LOPEZ / genarom@grupocice.com.

Modelos de Datos

Page 30: MANEJADORES DE BASES DE DATOS Elementos de un SGBD MSI. GENARO MENDEZ LOPEZ / genarom@grupocice.com.

Categorías de los modelos• Modelo en red• Modelo CODASYL • Modelo jerárquico• Modelo orientado a objetos• Modelo Entidad-Asociación• Modelo Relacional

Page 31: MANEJADORES DE BASES DE DATOS Elementos de un SGBD MSI. GENARO MENDEZ LOPEZ / genarom@grupocice.com.

Modelo en red• Una base de datos de red se compone

por una colección de registros que se conectan entre si por medio de ligas.

• Un registro equivale a una entidad y un campo a un atributo del modelo entidad relación.

• Los campos contienen exclusivamente valores atómicos.

• Una liga es una relación que se establece solamente entre dos registros; es decir; debe utilizarse una liga para cada relación entre una pareja de registros

Page 32: MANEJADORES DE BASES DE DATOS Elementos de un SGBD MSI. GENARO MENDEZ LOPEZ / genarom@grupocice.com.

Diag. de estructura en redDiagrama de Estructuras de Datos

(DED)• Permiten mostrar gráficamente el

esquema de una base de datos en el modelo de red. Sus componentes principales son: – Cajas o cuadros: representan

registros. – Líneas: representan ligas.

Page 33: MANEJADORES DE BASES DE DATOS Elementos de un SGBD MSI. GENARO MENDEZ LOPEZ / genarom@grupocice.com.

Estructura de datos en redClientes Cuentas

Ana xxxx 221528 25 180000

Angel xxxx 423374 30 50000

Mario xxxx 856490 50 20000

Page 34: MANEJADORES DE BASES DE DATOS Elementos de un SGBD MSI. GENARO MENDEZ LOPEZ / genarom@grupocice.com.

Ejemplo de diag. en redLiga FECHA-CLIENTE Liga FECHA-CUENTA

NOM DIR TEL NC SALDO

FECHA

Ana xxxx

22152825 180000

Angel xxxx

423374 30 50000

Mario xxxx

856490 50 2000001/03/2000

30/09/1999

15/07/1999

Page 35: MANEJADORES DE BASES DE DATOS Elementos de un SGBD MSI. GENARO MENDEZ LOPEZ / genarom@grupocice.com.

Diag. de Estructura de Datos del Modelo en Red. Cliente Cuenta Liga Sucursal

Liga CLIENTE Liga Cuenta

Instancia Cliente Liga Cuenta Sucursal

NOM DIR TEL NC SALDO

FECHA

NUM CIUDAD

Ana xxxx 22152825 180000

Angel xxxx 42337430 50000

Mario xxxx 85649050 20000

01/03/2000

30/09/1999

15/07/1999

35 Santiago

47 Concepción

Page 36: MANEJADORES DE BASES DE DATOS Elementos de un SGBD MSI. GENARO MENDEZ LOPEZ / genarom@grupocice.com.

Modelo CODASYL(COnference on DAta SYstem Languages,

Data Base Task Group)• Este modelo es una implementación de

las reglas generales de operación del modelo de red. Toma de éste los aspectos generales operativos, pero introduce las siguientes características particulares:

• Sólo pueden utilizarse ligas muchos a uno. Se prohíben las ligas muchos a muchos para simplificar la implementación. Las ligas uno a uno se representan utilizando ligas muchos a uno.

Page 37: MANEJADORES DE BASES DE DATOS Elementos de un SGBD MSI. GENARO MENDEZ LOPEZ / genarom@grupocice.com.

Esquema CODASYL

a1 a2 a3 b1 b2

r1

A B

RA RB

R

Page 38: MANEJADORES DE BASES DE DATOS Elementos de un SGBD MSI. GENARO MENDEZ LOPEZ / genarom@grupocice.com.

Modelo Jerárquico• Una base de datos jerárquica consiste

en una colección de registros que se conectan entre si por medio de ligas.– Los registros y las ligas son similares a los

del modelo de red, pero en el modelo jerárquico se organiza en forma de árbol con raíz (donde la raíz es un nodo ficticio); de tal manera que una base de datos jerárquica es una colección de árboles de este tipo, formando un bosque.

– A cada árbol con raíz se le denomina árbol de base de datos.

Page 39: MANEJADORES DE BASES DE DATOS Elementos de un SGBD MSI. GENARO MENDEZ LOPEZ / genarom@grupocice.com.

Desventajas del modelo.• En este modelo un registro

puede tener que repetirse en varios sitios que puede ocasionar los siguientes problemas: – Riesgos de la inconsistencia al

llevar a cabo actualizaciones. – Inevitable desperdicio de espacio

en el medio de almacenamiento secundario.

Page 40: MANEJADORES DE BASES DE DATOS Elementos de un SGBD MSI. GENARO MENDEZ LOPEZ / genarom@grupocice.com.

Diagramas de estruct. de árbol• Un diagrama de estructura de árbol es el

esquema de una base de datos jerárquica.

• Tiene dos componentes básicos: REGISTROS y LIGAS.

• Estos diagramas son similares a los de estructura de datos en el modelo de red. La diferencia radica en que en el modelo de red los registros se organizan en forma de un grafo arbitrario mientras que en el modelo jerárquico se organiza en forma de un árbol con raíz.

Page 41: MANEJADORES DE BASES DE DATOS Elementos de un SGBD MSI. GENARO MENDEZ LOPEZ / genarom@grupocice.com.

Reglas de formación del árbol• Las reglas para la formación del árbol

son: 1.-No hay ciclos 2.-De padre a hijos son válidas las relaciones

de uno a uno y uno a muchos.El esquema de una base de datos jerárquica se representa como una colección de diagramas de estructuras de árbol. Para cada diagrama existe una única instancia del árbol de base de datos. La raíz de este árbol es un nodo ficticio. Los hijos de ese nodo son instancias del tipo de registros adecuado.

Page 42: MANEJADORES DE BASES DE DATOS Elementos de un SGBD MSI. GENARO MENDEZ LOPEZ / genarom@grupocice.com.

Diagramas de Estructura de Datos del Modelo Jerárquico

Ana xxxx

221528 Ángel xxxx

423374 Mario xxxx

856490

50 2000040 3000035 5000025 180000

Page 43: MANEJADORES DE BASES DE DATOS Elementos de un SGBD MSI. GENARO MENDEZ LOPEZ / genarom@grupocice.com.

Problemas del Modelo Jerárquico• 1. Hijos con más de un padre• 2. Relaciones reflexivas• 3. Más de una relación entre

dos entidades• 4. Relaciones muchos a muchos• 5. Hijos sin padre

Page 44: MANEJADORES DE BASES DE DATOS Elementos de un SGBD MSI. GENARO MENDEZ LOPEZ / genarom@grupocice.com.

Modelo Orientado a Objetos• El modelo de bases de datos orientado por

objetos es una adaptación a los sistemas de bases de datos.

• Se basa en el concepto de encapsulamiento de datos y código que opera sobre estos en un objeto.

• Los objetos estructurados se agrupan en clases.

• El conjunto de clases esta estructurado en sub. y superclases basado en una extensión del concepto ISA del modelo Entidad - Relación.

• Puesto que el valor de un dato en un objeto también es un objeto, es posible representar el contenido del objeto dando como resultado un objeto compuesto.

Page 45: MANEJADORES DE BASES DE DATOS Elementos de un SGBD MSI. GENARO MENDEZ LOPEZ / genarom@grupocice.com.

Estructura de objetos.• El modelo orientado por objetos se basa en

encapsular código y datos en una única unidad, llamada objeto. El interfaz entre un objeto y el resto del sistema se define mediante un conjunto de mensajes.

• Un objeto tiene asociado: – Un conjunto de variables que contienen los datos del

objeto. El valor de cada variable es un objeto. – Un conjunto de mensajes a los que el objeto responde. – Un método, que es un trozo de código para implementar

cada mensaje.– Un método devuelve un valor como respuesta al

mensaje. • El término mensaje en un contexto orientado por

objetos, no implica el uso de un mensaje físico en una red de computadoras, si no que se refiere al paso de solicitudes entre objetos sin tener en cuenta detalles específicos de implementación.

Page 46: MANEJADORES DE BASES DE DATOS Elementos de un SGBD MSI. GENARO MENDEZ LOPEZ / genarom@grupocice.com.

Ventajas del Modelo OO• La capacidad de modificar la

definición de un objeto sin afectar al resto del sistema está considerada como una de las mayores ventajas del modelo de programación orientado a objetos.

Page 47: MANEJADORES DE BASES DE DATOS Elementos de un SGBD MSI. GENARO MENDEZ LOPEZ / genarom@grupocice.com.

Jerarquías de clases• En una base de datos existen objetos que responden

a los mismos mensajes, utilizan los mismos métodos y tienen variables del mismo nombre y tipo.

• Sería inútil definir cada uno de estos objetos por separado por lo tanto se agrupan los objetos similares para que formen una clase, a cada uno de estos objetos se le llama instancia de su clase. Todos los objetos de su clase comparten una definición común, aunque difieran en los valores asignados a las variables.

• Así que básicamente las bases de datos orientadas por objetos tienen la finalidad de agrupar aquellos elementos que sean semejantes en las entidades para formar un clase, dejando por separado aquellas que no lo son en otra clase.

Page 48: MANEJADORES DE BASES DE DATOS Elementos de un SGBD MSI. GENARO MENDEZ LOPEZ / genarom@grupocice.com.

Ejemplo de jerarquía• Por ejemplo: En la relación alumno-cursa-materia

agregándole la entidad maestro; donde los atributos considerados para cada uno son alumno: Nombre, Dirección, Teléfono, Especialidad, Semestre, Grupo; Maestro: Nombre, Dirección, Teléfono, Número económico, Plaza, RFC; Materia: Nombre, Créditos, Clave.

• Los atributos de nombre, dirección y teléfono se repiten en la entidad alumno y maestro, así que podemos agrupar estos elementos para formar la clase Persona con dichos campos. Quedando por separado en alumno: Especialidad, semestre, Grupo. Y en maestro: Número económico, Plaza y RFC; la materia no entra en la agrupación (Clase persona) ya que la clase específica los datos de solo personas, así que queda como clase materia.

Page 49: MANEJADORES DE BASES DE DATOS Elementos de un SGBD MSI. GENARO MENDEZ LOPEZ / genarom@grupocice.com.

Herencia• Las clases en un sistema orientado por objetos se

representan en forma jerárquica como en el diagrama anterior, así que las propiedades o características del elemento persona las contendrán (heredaran) los elementos alumno y maestro.

• Decimos que tanto la entidad Alumno y maestro son subclases de la clase persona este concepto es similar al utilizado en la de especialización (la relación ISA) del modelo E-R.

• Se pueden crear muchas agrupaciones (clases) para simplificar un modelo así que una jerarquía (en forma gráfica) puede quedar muy extensa, en estos casos tenemos que tener bien delimitados los elementos que intervienen en una clase y aquellos objetos que las heredan.

Page 50: MANEJADORES DE BASES DE DATOS Elementos de un SGBD MSI. GENARO MENDEZ LOPEZ / genarom@grupocice.com.

Consultas en BD. OO• Los lenguajes de programación orientados por

objetos requieren que toda la interacción con objetos se realiza mediante el envío de mensajes.

• Consideremos el ejemplo de alumno-cursa-materia deseamos realizar la consulta de los alumnos que cursan la materia de Base de Datos 1, para realizar esta consulta se tendría que enviar un mensaje a cada instancia alumno

• Así un lenguaje de consultas para un sistema de bases de datos orientado por objetos debe incluir tanto el modelo de pasar el mensaje de objeto a objeto como el modelo de pasar el mensaje de conjunto en conjunto.

Page 51: MANEJADORES DE BASES DE DATOS Elementos de un SGBD MSI. GENARO MENDEZ LOPEZ / genarom@grupocice.com.

Complejidad de modificación

• En base de datos orientados por objetos pueden existir los siguientes cambios:

– Adición de una nueva clase: Para realizar este proceso, la nueva clase debe colocarse en la jerarquía de clase o subclase cuidando las variables o métodos de herencia correspondientes.

– Eliminación de una clase: Se requiere la realización de varias operaciones, se debe de cuidar los elementos que se han heredado de esa clase a otras y reestructurar la jerarquía.

• En sí la estructuración de modelos orientados por objetos simplifica una estructura evitando elementos o variables repetidas en diversas entidades, sin embargo el precio de esto es dedicarle un minucioso cuidado a las relaciones entre las clases cuando en modelo es complejo, la dificultad del manejo de objetos radica en la complejidad de las modificaciones y eliminaciones de clases, ya que de tener variables que heredan otros objetos se tiene que realizar una reestructuración que involucra una serie de pasos complejos.

Page 52: MANEJADORES DE BASES DE DATOS Elementos de un SGBD MSI. GENARO MENDEZ LOPEZ / genarom@grupocice.com.

Modelo E-R• Modelo Entidad - Relación

– Es un MD de alto nivel– Está basado en una percepción del

mundo real que consiste en una colección de objetos básicos (entidades) y de relaciones entre estos objetos.

Page 53: MANEJADORES DE BASES DE DATOS Elementos de un SGBD MSI. GENARO MENDEZ LOPEZ / genarom@grupocice.com.

Elementos del Modelo ER• Conjuntos entidad• Conjuntos asociación• Cuestiones de diseño• Restricciones de asociaciones• Claves• Diagrama E-A• Características del modelo E-A

ampliado

Page 54: MANEJADORES DE BASES DE DATOS Elementos de un SGBD MSI. GENARO MENDEZ LOPEZ / genarom@grupocice.com.

Conjuntos entidad• Una base de datos se puede modelar como:

– Un conjunto de entidades,– Asociaciones entre entidades.

• Una entidades un objeto que existe y es distinguible de otros objetos.– Ejemplo: una persona, compañía, evento o planta

determinada• Las entidades tienen atributos

– Ejemplo: las personas tienen nombres y direcciones.

• Un conjunto entidad es un conjunto de entidades del mismo tipo que comparten las mismas propiedades.– Ejemplo: el conjunto de todas las personas,

compañías, árboles, vacaciones

Page 55: MANEJADORES DE BASES DE DATOS Elementos de un SGBD MSI. GENARO MENDEZ LOPEZ / genarom@grupocice.com.

Ejemplo

Page 56: MANEJADORES DE BASES DE DATOS Elementos de un SGBD MSI. GENARO MENDEZ LOPEZ / genarom@grupocice.com.

Atributos• Una entidad se representa por un conjunto de

atributos, que son propiedades descriptivas que tienen todos los miembros de un conjunto entidad.

cliente = (id-cliente, nombre-cliente, direccion-cliente, ciudad-cliente)

prestamo= (numero-prestamo, cantidad)

• Dominio–el conjunto de valores permitidos para cada atributo

• Tipos de atributo:– Atributos simplesy compuestos.– Atributos monovalorados y multivalorados

• P.e. atributo multivalorado : numeros-telefono– Atributos derivados– Se pueden calcular a partir de otros atributos

• P.e. edad, dada la fecha de nacimiento

Page 57: MANEJADORES DE BASES DE DATOS Elementos de un SGBD MSI. GENARO MENDEZ LOPEZ / genarom@grupocice.com.

Atributos compuestos

Page 58: MANEJADORES DE BASES DE DATOS Elementos de un SGBD MSI. GENARO MENDEZ LOPEZ / genarom@grupocice.com.

Conjuntos de relación• Una asociación es una relación entre varias

entidades Ejemplo: López deposita A-102entidad cliente conjunto asociación entidad cuenta

• Un conjunto asociación es una relación matemática entre n≥2 entidades, cada una perteneciente a un conjunto entidad

{(e1, e2, …en) | e1єE1, e2 є E2, …, en є En}

• donde (e1, e2, …, en) es una asociaciónEjemplo:(López, A-102) є depositos

Page 59: MANEJADORES DE BASES DE DATOS Elementos de un SGBD MSI. GENARO MENDEZ LOPEZ / genarom@grupocice.com.

Ejemplo

Page 60: MANEJADORES DE BASES DE DATOS Elementos de un SGBD MSI. GENARO MENDEZ LOPEZ / genarom@grupocice.com.

Conjuntos asociación• Un atributo también puede ser

propiedad de un conjunto asociación.

• Por ejemplo, el conjunto asociación depositante entre los conjuntos entidad cliente y cuenta puede tener el atributo fecha-acceso

Page 61: MANEJADORES DE BASES DE DATOS Elementos de un SGBD MSI. GENARO MENDEZ LOPEZ / genarom@grupocice.com.

Ejemplo

Page 62: MANEJADORES DE BASES DE DATOS Elementos de un SGBD MSI. GENARO MENDEZ LOPEZ / genarom@grupocice.com.

Grado de un conj. asociación• Indica el número de conjuntos entidad que pueden

participar en un conjunto asociación.• Los conjuntos asociación en que participan dos

conjuntos entidad se denominan binarias (o de grado dos). Normalmente, la mayoría de los conjuntos asociación son binarias.

• En un conjuntos asociación pueden participar mas de dos conjuntos entidad. – P.e. Supongamos que los empleados de un banco

pueden tener puestos (responsabilidades) en varias sucursales, con diferentes responsabilidades en cada sucursal. Entonces habrá una asociación ternaria entre los conjuntos entidad empleado, puesto y sucursal

• Las asociaciones entre más de dos conjuntos entidad no son comunes. La mayoría de las asociaciones son binarias.

Page 63: MANEJADORES DE BASES DE DATOS Elementos de un SGBD MSI. GENARO MENDEZ LOPEZ / genarom@grupocice.com.

Cardinalidad de un conj. asociación• Indica el número de entidades a las que

se puede asociar otra entidad mediante el conjunto asociación.

• Fundamentalmente es útil para conjuntos asociación binarios.

• La cardinalidad de un conjunto asociación binario puede ser de cuatro tipos:– Uno a uno (1:1)– Uno a varios (1:M)– Varios a uno (M:1)– Varios a varios (M:N)

Page 64: MANEJADORES DE BASES DE DATOS Elementos de un SGBD MSI. GENARO MENDEZ LOPEZ / genarom@grupocice.com.

Cardinalidad

Page 65: MANEJADORES DE BASES DE DATOS Elementos de un SGBD MSI. GENARO MENDEZ LOPEZ / genarom@grupocice.com.

La cardinalidad afecta al diseño E-R• Podemos hacer fecha-apertura un

atributo de cuenta, en vez de un atributo de asociación, si cada cuenta sólo puede pertenecer a un único cliente– Es decir, la asociación de cuenta a

cliente es varios a uno, o, los que es equivalente, cliente a cuenta es uno a varios

Page 66: MANEJADORES DE BASES DE DATOS Elementos de un SGBD MSI. GENARO MENDEZ LOPEZ / genarom@grupocice.com.

Ejemplo

Page 67: MANEJADORES DE BASES DE DATOS Elementos de un SGBD MSI. GENARO MENDEZ LOPEZ / genarom@grupocice.com.

Diagramas E-R• Rectángulos: representan conjuntos entidad.• Rombos: representan conjuntos asociación.• Líneas: unen los atributos con los conjuntos entidad y los

conjuntos entidad con los conjuntos asociación.• Elipses: representan atributos• Elipses dobles: representan atributos multivaluados.• Elipses discontinuas: denotan atributos derivados.• Subrayado: indica que un atributo es una clave primaria

Page 68: MANEJADORES DE BASES DE DATOS Elementos de un SGBD MSI. GENARO MENDEZ LOPEZ / genarom@grupocice.com.

Diagrama con atributos multivaluados y derivados

Page 69: MANEJADORES DE BASES DE DATOS Elementos de un SGBD MSI. GENARO MENDEZ LOPEZ / genarom@grupocice.com.

Conjuntos asociación con atributos

Page 70: MANEJADORES DE BASES DE DATOS Elementos de un SGBD MSI. GENARO MENDEZ LOPEZ / genarom@grupocice.com.

Roles

• Los conjuntos entidad que participan en una asociación no tienen por que ser distintos

• En los diagramas E-A los roles se indican etiquetando las líneas que unen rombos y rectángulos.

• Las etiquetas de rol son opcionales y se utilizan para clarificar la semántica de la asociación.

Page 71: MANEJADORES DE BASES DE DATOS Elementos de un SGBD MSI. GENARO MENDEZ LOPEZ / genarom@grupocice.com.

Ejemplo• Las etiquetas “director”y “trabajador” se

denominan roles; indican cómo interactúan las entidades a través del conjunto asociación “trabaja-para”.

Page 72: MANEJADORES DE BASES DE DATOS Elementos de un SGBD MSI. GENARO MENDEZ LOPEZ / genarom@grupocice.com.

Restricciones de cardinalidad

Las restricciones de cardinalidad se indican dibujando o bien una flecha (→), que significa “uno,”o bien un extremo sin flecha (—), que significa “varios,”entre el conjunto asociación y el conjunto entidad correspondiente.

Page 73: MANEJADORES DE BASES DE DATOS Elementos de un SGBD MSI. GENARO MENDEZ LOPEZ / genarom@grupocice.com.

Asociación uno-a-unoUn cliente se asocia con, como máximo

un préstamo mediante la asociación prestatario

• Un préstamo se asocia con como máximo un cliente mediante prestatario

Page 74: MANEJADORES DE BASES DE DATOS Elementos de un SGBD MSI. GENARO MENDEZ LOPEZ / genarom@grupocice.com.

Asociación uno a varios• En una asociación uno-a-varios un préstamo

se asocia con, como mucho, un cliente a través de prestatario, y un cliente se asocia con varios (incluido 0) prestamos a través de prestatario.

Page 75: MANEJADORES DE BASES DE DATOS Elementos de un SGBD MSI. GENARO MENDEZ LOPEZ / genarom@grupocice.com.

Asociación varios a varios• Un cliente se asocia con varios (incluido 0)

préstamos a través de prestatario• Un préstamo se asocia con varios (incluido

0) clientes a través de prestatario

Page 76: MANEJADORES DE BASES DE DATOS Elementos de un SGBD MSI. GENARO MENDEZ LOPEZ / genarom@grupocice.com.

Participación de un conjunto entidad en conjunto asociación• Participación total (se indica mediante

una línea doble): cada entidad del conjunto entidad participa en al menos una asociación del conjunto asociación– P.e. la participación de préstamo en

prestatario es total cada préstamo debe tener un cliente asociado a través de prestatario

• Participación parcial: algunas entidades pueden no participar en ninguna asociación del conjunto asociación– P.e. la participación de cliente en

prestatario es parcial

Page 77: MANEJADORES DE BASES DE DATOS Elementos de un SGBD MSI. GENARO MENDEZ LOPEZ / genarom@grupocice.com.

Participación total y parcial

Page 78: MANEJADORES DE BASES DE DATOS Elementos de un SGBD MSI. GENARO MENDEZ LOPEZ / genarom@grupocice.com.

Cardinalidad• Los límites de cardinalidad también

pueden expresar restricciones de participación.

• Cardinalidad mínima.. Cardinalidad máxima.

Page 79: MANEJADORES DE BASES DE DATOS Elementos de un SGBD MSI. GENARO MENDEZ LOPEZ / genarom@grupocice.com.

Claves• Una superclave de un conjunto entidad es un

conjunto de uno o más atributos cuyos valores determinan de manera única cada entidad.

• Una clave candidata de un conjunto entidad es una superclave mínima– Id-cliente es una clave candidata de cliente– numero-cuenta es una clave candidata de cuenta

• Aunque pueden existir varias claves candidatas en un conjunto entidad, una de ellas se debe elegir como clave primaria.

Page 80: MANEJADORES DE BASES DE DATOS Elementos de un SGBD MSI. GENARO MENDEZ LOPEZ / genarom@grupocice.com.

Ejemplo de claves

Page 81: MANEJADORES DE BASES DE DATOS Elementos de un SGBD MSI. GENARO MENDEZ LOPEZ / genarom@grupocice.com.

Conjuntos de entidad débil• Un conjunto entidad que no tiene una clave primaria

se denomina conjunto entidad débil.• La existencia de un conjunto entidad débil depende

de la existencia de un conjunto entidad identificador – debe estar relacionado con el conjunto entidad

identificador mediante un conjunto asociación uno-a-varios total desde el conjunto entidad identificador al conjunto entidad débil

– La asociación identificadora se representa mediante un rombo doble

• El discriminador (o clave parcial) de un conjunto entidad débil es el conjunto de atributos que diferencian las entidades del conjunto entidad débil.

• La clave primaria de un conjunto entidad débil está formada por la clave primaria del conjunto entidad fuerte del que depende existencialmente el conjunto entidad débil junto con el discriminador del propio conjunto entidad débil.

Page 82: MANEJADORES DE BASES DE DATOS Elementos de un SGBD MSI. GENARO MENDEZ LOPEZ / genarom@grupocice.com.

Conj. entidad débil• Un conjunto entidad débil se representa mediante un

rectángulo doble.• El discriminador de un conjunto entidad débil se

subraya con una línea discontinua.• Numero-pago:discriminador del conjunto entidad pago• Clave primaria para pago –(numero-prestamo, numero-

pago)

Page 83: MANEJADORES DE BASES DE DATOS Elementos de un SGBD MSI. GENARO MENDEZ LOPEZ / genarom@grupocice.com.

Conj. entidad débil• Nota: la clave primaria de un conjunto

entidad fuerte no se almacena explícitamente en el conjunto entidad débil, dado que está implícita en la asociación identificadora.

• Si numero-prestamo se almacenara explícitamente, pago se podría convertir en entidad fuerte, pero entonces la asociación entre pago y prestamo debería duplicarse por la asociación implícita definida por el atributo numero-prestamo común a pago y prestamo

Page 84: MANEJADORES DE BASES DE DATOS Elementos de un SGBD MSI. GENARO MENDEZ LOPEZ / genarom@grupocice.com.

Especialización• Proceso de diseño arriba-abajo; creamos

subgrupos con un conjunto de entidades que se distinguen de las demás entidades del conjunto.

• Estos subgrupos se convierten en conjuntos entidad de más bajo nivel que tiene atributos o participan en asociaciones que no son aplicables al conjunto entidad de nivel superior.

• Se representa mediante un triángulo con la etiqueta ISA (P.e. cliente“es una”persona).

• Herencia de atributos–un conjunto entidad de nivel más bajo hereda todos los atributos y participaciones en asociaciones del conjunto entidad de nivel superior al que está enlazado.

Page 85: MANEJADORES DE BASES DE DATOS Elementos de un SGBD MSI. GENARO MENDEZ LOPEZ / genarom@grupocice.com.

Ejemplo

Page 86: MANEJADORES DE BASES DE DATOS Elementos de un SGBD MSI. GENARO MENDEZ LOPEZ / genarom@grupocice.com.

Generalización

• Proceso de diseño abajo-arriba –combinar una serie de conjuntos entidad que comparten las mismas características en un conjunto entidad de más alto nivel.

• La especialización y la generalización son procedimientos opuestos. Por ello se representan de la misma forma en los diagramas E-A.

• Los términos especialización y generalización se pueden utilizar como sinónimos.

Page 87: MANEJADORES DE BASES DE DATOS Elementos de un SGBD MSI. GENARO MENDEZ LOPEZ / genarom@grupocice.com.

Especialización y generalización• Puede haber varias especializaciones de un

conjunto entidad en base a diferentes características– P.e. empleados-temporales vs. empleados-fijos,

además de oficinistas vs. secretarios vs. Vendedores

• Cada empleado debe ser:– Miembro de empleados-.temporales o de

empleados fijos, – y también miembro de uno de los siguientes

grupos: oficinistas, secretarios, o vendedores

• La asociación ISA también se denomina asociación superclase –subclase

Page 88: MANEJADORES DE BASES DE DATOS Elementos de un SGBD MSI. GENARO MENDEZ LOPEZ / genarom@grupocice.com.

Restricciones de diseño en una generalización y especialización

• Restricciones sobre que entidades pueden ser miembros de un conjunto de entidades de nivel más bajo.– Definido por condiciones

• P.e. todos los clientes de más de 65 años son miembros del conjunto entidad mayor-de-edad; mayor-de-edad ISA persona.

– Definido por el usuario• Restricciones sobre cuando o no las entidades pueden pertenecer a

más de un conjunto entidad de nivel más bajo dentro de la misma generalización.– Disjunto

• Una entidad puede pertenecer a un solo conjunto entidad de menor nivel.

• Se indica en el diagrama E-A escribiendo disjunto al lado del triángulo ISA

– Solapado• Una entidad puede pertenecer a varios conjuntos entidad de

menor nivel

Page 89: MANEJADORES DE BASES DE DATOS Elementos de un SGBD MSI. GENARO MENDEZ LOPEZ / genarom@grupocice.com.

Restricciones (cont.)• Restricción de completitud – especifica

cuando o no una entidad del conjunto entidad de nivel superior debe pertenecer a al menos un conjunto entidad de menor nivel en la generalización.– total : una entidad siempre debe pertenecer

a un conjunto entidad de menor nivel– parcial: una entidad no necesita pertenecer

a uno de los conjuntos entidad de menor nivel

Page 90: MANEJADORES DE BASES DE DATOS Elementos de un SGBD MSI. GENARO MENDEZ LOPEZ / genarom@grupocice.com.

Agregación• Consideremos la asociación ternaria trabaja-en.• Supongamos que queremos almacenar información

sobre los directores de las tareas que realiza cada empleado en una sucursal

Page 91: MANEJADORES DE BASES DE DATOS Elementos de un SGBD MSI. GENARO MENDEZ LOPEZ / genarom@grupocice.com.

Agregación (cont.)

• Los conjuntos asociación trabaja-en y dirige representan información redundante– Cada asociación dirige corresponde a una asociación

trabaja-en– Sin embargo, algunas asociaciones trabaja-en pueden

no corresponderse con ninguna asociación dirige• Por eso no podemos descartar la asociación trabaja-en

• Eliminamos esta redundancia mediante agregación– Tratamos la asociación como una entidad abstracta– Permitimos asociaciones ente asociaciones– Abstraemos la asociación en una nueva entidad

• Sin introducir redundancia, el siguiente diagrama representa:– Un empleado trabaja en un puesto concreto en una

sucursal concreta– Una combinación empleado, sucursal, puesto puede

tener asociado un director

Page 92: MANEJADORES DE BASES DE DATOS Elementos de un SGBD MSI. GENARO MENDEZ LOPEZ / genarom@grupocice.com.

Diagrama E-A con agregación

Page 93: MANEJADORES DE BASES DE DATOS Elementos de un SGBD MSI. GENARO MENDEZ LOPEZ / genarom@grupocice.com.

Decisiones de diseño• El uso de un atributo o conjunto entidad para

representar un objeto.• Cuándo un concepto del mundo real se

expresa mejor mediante un conjunto entidad o mediante un conjunto asociación.

• El uso de asociaciones terciarias vs. dos asociaciones binarias.

• El uso de conjuntos entidad fuertes o débiles.• El uso de especialización/generalización –

contribuye a la modularidad en el diseño.• El uso de agregación – se puede tratar el

conjunto entidad agregado como una sola unidad sin importar los detalles de su estructura interna.

Page 94: MANEJADORES DE BASES DE DATOS Elementos de un SGBD MSI. GENARO MENDEZ LOPEZ / genarom@grupocice.com.

Resumen de símbolos utilizados en E-A

Page 95: MANEJADORES DE BASES DE DATOS Elementos de un SGBD MSI. GENARO MENDEZ LOPEZ / genarom@grupocice.com.

Resumen de símbolos.

Page 96: MANEJADORES DE BASES DE DATOS Elementos de un SGBD MSI. GENARO MENDEZ LOPEZ / genarom@grupocice.com.

Resumen de símbolos

Page 97: MANEJADORES DE BASES DE DATOS Elementos de un SGBD MSI. GENARO MENDEZ LOPEZ / genarom@grupocice.com.

Modelo relacional

numero-cuenta nombre-sucursal

saldo

A-101 Veracruz 500

A-102 Puebla 400

A-201 Oaxaca 900

A-215 Sonora 700

A-217 Guerrero 750

A-222 San Luis 700

A-305 Merida 350

Page 98: MANEJADORES DE BASES DE DATOS Elementos de un SGBD MSI. GENARO MENDEZ LOPEZ / genarom@grupocice.com.

Dominios• Un dominio Di es un conjunto de

valores• Ejemplo:

– D1: (0,10,11,12,14,16)– D2: Conj. De los números naturales– D3: (0,1,1/2,3,1/3,2/3)– D4:Conj. De los números reales– D5: (0,1,2,-1,-2)– D6: (0, 3.1416, -3.1416)

Page 99: MANEJADORES DE BASES DE DATOS Elementos de un SGBD MSI. GENARO MENDEZ LOPEZ / genarom@grupocice.com.

Estructura básica• Formalmente, dados los conjuntos D1, D2, …. Dn una

relación r es un subconjunto de D1x D2 x …x Dn

– Es decir, una relación es un conjunto de n-tuplas (a1,a2, …, an) donde cada ai∈Di

• Ejemplo: Sinombre-cliente= {López, Vega, Suárez,

Dominguez}calle-cliente= {5 de Mayo, Norte, Diagonal}ciudad-cliente= {Mérida, Veracruz, Guadalajara}

• Entonces r= { (López, 5 de Mayo, Mérida), (Vega, Norte, Veracruz),(Suárez, Norte, Veracruz),(Dominguez, Diagonal, Guadalajara)}

es una relación sobre nombre-cliente x calle-cliente x ciudad-cliente

Page 100: MANEJADORES DE BASES DE DATOS Elementos de un SGBD MSI. GENARO MENDEZ LOPEZ / genarom@grupocice.com.

Tipos de atributo• Cada atributo de una relación tiene un nombre• El conjunto de valores permitidos para cada

atributo se denomina dominio del atributo• Los valores de los atributos deben ser

(normalmente) atómicos, es decir, indivisibles– P.e. atributos con valores multivaluados no son

atómicos– P.e. atributos con valores compuestos no son atómicos

• El valor especial null pertenece a cualquier dominio

• El valor nulo complica la definición de algunos operadores

Page 101: MANEJADORES DE BASES DE DATOS Elementos de un SGBD MSI. GENARO MENDEZ LOPEZ / genarom@grupocice.com.

Esquema de una relación• A1, A2, …, An son atributos• R= (A1, A2, …, An) es un

esquema de relación– P.e. Esquema-cliente= (nombre-

cliente, calle-cliente, ciudad-cliente)

• r(R) es una relación sobre el esquema de relación R– P.e. cliente (Esquema-cliente)

Page 102: MANEJADORES DE BASES DE DATOS Elementos de un SGBD MSI. GENARO MENDEZ LOPEZ / genarom@grupocice.com.

Definiciones• Tupla: es el nombre de cada elemento de R.• Grado de una tupla: nºde componentes que tiene.• Grado de una relación: el de sus tuplas.• Como R es un conjunto, todas sus tuplas son

diferente y no hay un criterio de orden definido entre las tuplas de R.

• Una tupla es una lista ordenada de valorest=<t1, t2, ... tn> | t1∈D1... tk∈Dk

• Atributos: a cada dominio que participa en una relación se le da un nombre.

• Ahora una tupla puede ser una lista desordenada de valores identificadas por sus nombres de atributos.

t=<ATRIB1=t1, ATRIB2=t2, ... ATRIBn=tn> ót=<ATRIB3=t3, ATRIB1=t1, ... ATRIBk=tk>

Page 103: MANEJADORES DE BASES DE DATOS Elementos de un SGBD MSI. GENARO MENDEZ LOPEZ / genarom@grupocice.com.

Esquemas y relaciones• Como ya fue mencionado

anteriormente, El esquema es el diseño lógico de la BD

• El concepto de esquema de la relación se corresponde con el concepto de los tipos de datos en los lenguajes de programación.

• El concepto de relación se corresponde con el concepto de variable de los lenguajes de programación.

Page 104: MANEJADORES DE BASES DE DATOS Elementos de un SGBD MSI. GENARO MENDEZ LOPEZ / genarom@grupocice.com.

Instancia de una relación• Los valores actuales (instancia) de una

relación se especifican mediante una tabla• Un elemento t de r es una tupla, y está

representado por una fila en una tabla

Page 105: MANEJADORES DE BASES DE DATOS Elementos de un SGBD MSI. GENARO MENDEZ LOPEZ / genarom@grupocice.com.

Las relaciones no tienen orden• El orden de las tuplas no es relevante (las tuplas se

pueden almacenar en un orden arbitrario) • P.e. la relación cuentas con tuplas no ordenadas

numero-cuenta nombre-sucursal saldo

A-101 Veracruz 500

A-102 Puebla 400

A-201 Oaxaca 900

A-215 Sonora 700

A-217 Guerrero 750

A-222 San Luis 700

A-305 Merida 350

Page 106: MANEJADORES DE BASES DE DATOS Elementos de un SGBD MSI. GENARO MENDEZ LOPEZ / genarom@grupocice.com.

Bases de datos relacionales• Una base de datos está formada por un conjunto de relaciones• La información sobre una organización se divide en partes y cada

relación almacena una parte de la información

P.e.: cuenta: almacena información sobre cuentasdepositante: almacena información sobre que cliente tiene

asignada que cuentacliente: almacena información sobre clientes

• Almacenar toda la información en una sola relación: banco(numero-cuenta, saldo, nombre-cliente, ..) da lugar a

– información repetida (p.e. dos clientes tienen una misma cuenta)– necesidad de valores nulos (p.e. información sobre un cliente sin

cuenta)

• La teoría de la normalización se encarga de como diseñar esquemas relacionales correctos

Page 107: MANEJADORES DE BASES DE DATOS Elementos de un SGBD MSI. GENARO MENDEZ LOPEZ / genarom@grupocice.com.

Claves• Dado K ⊆R• K es una superclave de R si los valores de K

son suficientes para identificar cada una de las tuplas de cada relación posible r(R)– por “posible r” indicamos una relación r que pueda

existir en la organización que estamos modelando.– Ejemplo: {nombre-cliente, calle-cliente} y

{nombre-cliente} son ambas superclaves de Cliente, si consideramos que dos clientes no pueden tener el mismo nombre.

• K es una clave candidata si K es mínima– Ejemplo: {nombre-cliente} es una clave candidata

para Cliente, dado que es una superclave (asumiendo que dos clientes no pueden tener el mismo nombre), y ningún subconjunto es una superclave.

Page 108: MANEJADORES DE BASES DE DATOS Elementos de un SGBD MSI. GENARO MENDEZ LOPEZ / genarom@grupocice.com.

Determinación de claves a partir de diagramas E-A

• Conjunto entidad fuerte. La clave primaria del conjunto entidad pasa a ser la clave primaria de la relación.

• Conjunto entidad débil. La clave primaria de la relación está formada por la unión de la clave primaria del conjunto entidad fuerte y el discriminador del conjunto entidad débil.

• Conjunto asociación. La unión de las claves primarias de los conjuntos entidad participantes es una superclave de la relación.– Para conjuntos asociación varios-a-uno, la clave primaria del

conjunto entidad “varios” pasa a ser la clave primaria de la relación.

– Para conjuntos asociación uno-a-uno, la clave primaria de la relación puede ser la de cualquiera de los conjuntos entidad.

– Para conjuntos asociación varios-a-varios, la unión de las claves primarias pasa a ser la clave primaria de las relación.

Page 109: MANEJADORES DE BASES DE DATOS Elementos de un SGBD MSI. GENARO MENDEZ LOPEZ / genarom@grupocice.com.

Conversión de esquemas E-A a relaciones• Las claves primarias permiten representar tanto los

conjuntos entidad como los conjuntos asociación como relaciones que representan los contenidos de la base de datos.

• Una base de datos que sigue el esquema E-A se puede representar mediante un conjunto de relaciones.

• Para cada conjunto entidad y cada conjunto asociación existe una única relación a la que se le asigna el nombre del conjunto entidad o conjunto asociación correspondiente.

• Cada relación tiene columnas (normalmente una por atributo), que tienen nombres únicos.

• Convertir un diagrama E-A a relaciones es la base para conseguir un diseño relacional a partir de ese diseño E-A

Page 110: MANEJADORES DE BASES DE DATOS Elementos de un SGBD MSI. GENARO MENDEZ LOPEZ / genarom@grupocice.com.

Representación de conjuntos entidad como relaciones

• Un conjunto entidad fuerte se transforma en una relación con los mismos atributos.

Page 111: MANEJADORES DE BASES DE DATOS Elementos de un SGBD MSI. GENARO MENDEZ LOPEZ / genarom@grupocice.com.

Representación de conjuntos entidad débiles.

• Un conjunto entidad débil se transforma en una relación a la que se le añade una columna para la clave primaria del conjunto entidad fuerte identificado

Page 112: MANEJADORES DE BASES DE DATOS Elementos de un SGBD MSI. GENARO MENDEZ LOPEZ / genarom@grupocice.com.

Representación de conjuntos asociación como relaciones • Un conjunto asociación varios a varios se representa

con una relación con columnas para las claves primarias de los dos conjuntos entidad participantes, y también para los atributos descriptivos del conjunto asociación.

P.e.: relación para el conjunto asociación Prestatario

Page 113: MANEJADORES DE BASES DE DATOS Elementos de un SGBD MSI. GENARO MENDEZ LOPEZ / genarom@grupocice.com.

Diagrama E-A para una entidad bancaria

Page 114: MANEJADORES DE BASES DE DATOS Elementos de un SGBD MSI. GENARO MENDEZ LOPEZ / genarom@grupocice.com.

La relación cliente

Page 115: MANEJADORES DE BASES DE DATOS Elementos de un SGBD MSI. GENARO MENDEZ LOPEZ / genarom@grupocice.com.

La relación depositante

Page 116: MANEJADORES DE BASES DE DATOS Elementos de un SGBD MSI. GENARO MENDEZ LOPEZ / genarom@grupocice.com.

Diagrama del esquema para una entidad bancaria

Page 117: MANEJADORES DE BASES DE DATOS Elementos de un SGBD MSI. GENARO MENDEZ LOPEZ / genarom@grupocice.com.

Restricciones de dominio

• Las restricciones de integridad nos protegen ante daños accidentales en la base de datos, asegurando que los cambios autorizados en la base de datos no van a producir una pérdida de consistencia en los datos

• Las restricciones de dominios son la forma más elemental de restricciones de integridad.

• Comprueban los valores insertados en la base de datos, y comprueban las consultas para asegurar que las comparaciones tienen sentido.

Page 118: MANEJADORES DE BASES DE DATOS Elementos de un SGBD MSI. GENARO MENDEZ LOPEZ / genarom@grupocice.com.

Restricciones de dominio

• Se pueden crear nuevos dominios a partir de los tipos de datos existentes

P.e. create domain Pesos numeric(12, 2) create domain Dolares numeric(12,2)

• No se puede asignar o comparar un valor de tipo Pesos con un valor de tipo Dólares.

• No obstante, se pueden convertir tipos:(cast r.A as Dolares)

(Se debería también multiplicar por la conversión dolares-a-pesos)

Page 119: MANEJADORES DE BASES DE DATOS Elementos de un SGBD MSI. GENARO MENDEZ LOPEZ / genarom@grupocice.com.

II. Arquitectura de un SGBD e Independencia de los Datos

Manejadores de Bases de Datos

Page 120: MANEJADORES DE BASES DE DATOS Elementos de un SGBD MSI. GENARO MENDEZ LOPEZ / genarom@grupocice.com.

Arquitectura lógica• Propiedades importantes de SGBDs:

– Control global único de la BD.– Separación entre esquema y aplicaciones.

• Esquema: visión global de los datos de la realidad.

• Aplicaciones: programas sobre la BD.

– Soporte a diferentes visiones de los datos.• Usuarios/aplicaciones ven subconjuntos de la

BD.

– Independencia de datos. • Esquema lógico independiente de

implementación.

Page 121: MANEJADORES DE BASES DE DATOS Elementos de un SGBD MSI. GENARO MENDEZ LOPEZ / genarom@grupocice.com.

Arquitectura en tres niveles

Page 122: MANEJADORES DE BASES DE DATOS Elementos de un SGBD MSI. GENARO MENDEZ LOPEZ / genarom@grupocice.com.

Niveles de abstracción• El nivel físico describe cómo se almacena un registro

(p.e., cliente).• El nivel lógico: describe los datos almacenados en la

base de datos y las relaciones entre los datos.

typecliente = recordnombre: string;calle: string;ciudad: integer;

end;

• EL nivel de vista: los programas de aplicación ocultan detalles de los tipos de datos. Las vistas también pueden ocultar información (p.e. salario) por motivos de seguridad.

Page 123: MANEJADORES DE BASES DE DATOS Elementos de un SGBD MSI. GENARO MENDEZ LOPEZ / genarom@grupocice.com.

Esquema básico

Page 124: MANEJADORES DE BASES DE DATOS Elementos de un SGBD MSI. GENARO MENDEZ LOPEZ / genarom@grupocice.com.

Independencia de datos• Independencia Lógica.

– Independencia entre especificaciones de nivel Lógico y Externo.

– Cambiar partes de esquema lógico sin afectar a los esquemas externos o a las aplicaciones.

• Independencia Física.– Independencia entre especificación de

nivel Lógico y Físico. – Cambiar implementaciones sin afectar

esq. Lógico.

Page 125: MANEJADORES DE BASES DE DATOS Elementos de un SGBD MSI. GENARO MENDEZ LOPEZ / genarom@grupocice.com.

Lenguajes e Interfaces en ambientes de Base de Datos• Provistos por SGBD

– Definición de esquema:• VDL (o SSDL) - View Definition Language.• SDL - Storage Definition Language.• DDL - Data Definition Language.

– Suele englobar estos tres lenguajes.

• Manipulación de la BD:– DML - Data Manipulation Language.

• Modificaciones en instancias.

– QL - Query Language.• Subconjunto del DML, sólo para consultas

Page 126: MANEJADORES DE BASES DE DATOS Elementos de un SGBD MSI. GENARO MENDEZ LOPEZ / genarom@grupocice.com.

Lenguajes e Interfaces en ambientes de Base de Datos• Tipos de QL:• Declarativos.

– Se especifica qué propiedad cumplen los datos.– No se especifica cómo se recuperan de la BD.– Suelen recuperar conjuntos de items (registros).– Es el DBMS que define el plan de ejecución.

• Procedurales.– Se especifica un algoritmo que accede a

estructuras del esquema lógico y recupera los datos item por item (registro a registro).

Page 127: MANEJADORES DE BASES DE DATOS Elementos de un SGBD MSI. GENARO MENDEZ LOPEZ / genarom@grupocice.com.

Lenguajes e Interfaces en ambientes de Base de Datos• Lenguajes de programación:

– Lenguajes host (anfitrion):• Lenguajes de uso general (C, COBOL, etc) en el

cual se embeben sentencias de DML.• Se tiene un pre-procesador que traduce el

programa con DML embebido en un programa puro.

• PROBLEMAS: impedance-mismatch

– Lenguajes 4GL:• Lenguajes procedurales orientados a acceso a

BDs.• Conexión privilegiada con DMLs, reduce el

impedance-mismatch.

Page 128: MANEJADORES DE BASES DE DATOS Elementos de un SGBD MSI. GENARO MENDEZ LOPEZ / genarom@grupocice.com.

Resumen de lenguajes• DDL (Data Definition language): Lenguaje de Definición de Datos.

– Por medio de este el DBMS identifica las descripciones de los elementos de los esquemas y almacena la descripción del esquema en el catálogo del DBMS.

– Por medio de este el DBMS especifica el esquema conceptual e interno (Base de datos Almacenada).

• SDL (Store Definition language): Lenguaje de definición de almacenamiento.– Es utilizado por el DBMS para especificar el esquema interno que

corresponde a la Base de Datos Almacenada. • VDL (View Definition language): Lenguaje de Definición de Vistas.

– Es utilizado por el DBMS para especificar las vistas del usuario y sus correspondiencias con el esquema conceptual.

– En las Bases de Datos Relacionales, el SQL, representa una combinación de los anteriores.

• DML (Data Manipulation language): Lenguaje de Manipulación de Datos. – Permite la manipulación de las operaciones de Inserción,

Eliminación y Modificación. • Tipos de DML's:

– De alto Nivel o No por procedimientos: SQL. – De bajo Nivel o por procedimientos.

Page 129: MANEJADORES DE BASES DE DATOS Elementos de un SGBD MSI. GENARO MENDEZ LOPEZ / genarom@grupocice.com.

Lenguajes e Interfaces en ambientes SGBDs• Interfaces especializadas:

– Interfaces gráficas de consulta.• Se visualizan las estructuras en forma

gráfica.• Resultados como gráficas (pastel,

lineas, etc).

– Interfaces de Lenguaje Natural.• Se procesan frases y se traducen al QL.

– Interfaces para Administración.• Ambientes especializados.

Page 130: MANEJADORES DE BASES DE DATOS Elementos de un SGBD MSI. GENARO MENDEZ LOPEZ / genarom@grupocice.com.

Lenguaje SQL• SQL: lenguaje no procedimental

ampliamente utilizado– ej. encontrar el nombre del cliente con id-

cliente 192-83-7465select cliente.nombre-cliente from cliente where cliente.id-cliente= ‘192-83-7465’

– ej encontrar los balances de todas las cuentas pertenecientes al cliente con id-cliente 192-83-7465select cuenta.balance from depositante, cuenta where depositante.id-cliente= ‘192-83-7465’ and depositante.numero-cuenta = cuenta.numero-cuenta

Page 131: MANEJADORES DE BASES DE DATOS Elementos de un SGBD MSI. GENARO MENDEZ LOPEZ / genarom@grupocice.com.

SQL y programas de aplicaciòn• Los programas de aplicación

normalmente acceden a bases de datos mediante– Extensiones de lenguaje que

permiten embeded SQL– Interfaces de programación de

aplicaciones (ej. ODBC/JDBC) que permiten enviar consultas SQL a una base de datos

Page 132: MANEJADORES DE BASES DE DATOS Elementos de un SGBD MSI. GENARO MENDEZ LOPEZ / genarom@grupocice.com.

Usuarios de un SGBD• Personal del DBA• Usuarios Esporádicos• Programadores de Aplicaciones• Usuarios paramétricos

Page 133: MANEJADORES DE BASES DE DATOS Elementos de un SGBD MSI. GENARO MENDEZ LOPEZ / genarom@grupocice.com.

Estructura de un DBMS

Page 134: MANEJADORES DE BASES DE DATOS Elementos de un SGBD MSI. GENARO MENDEZ LOPEZ / genarom@grupocice.com.

Diferentes tipos de SGBDs• Según el Modelo de Datos:

– Relacional.– Orientado a Objetos.– Otros: Redes, Jerárquico, Deductivo, ...

• Según el porte:– Desktop (escritorio) / mono-usuario.– Servidor / multi-usuario.

• Según distribución de la BD:– Centralizado.– Distribuido.

Page 135: MANEJADORES DE BASES DE DATOS Elementos de un SGBD MSI. GENARO MENDEZ LOPEZ / genarom@grupocice.com.

Resumen de los elementos de un SGBDs

Page 136: MANEJADORES DE BASES DE DATOS Elementos de un SGBD MSI. GENARO MENDEZ LOPEZ / genarom@grupocice.com.

Gestor de Transacciones• Una transacción es un conjunto de

operaciones que realizan una única función lógica en una aplicación de bases de datos

• El componente de gestión de transacciones asegura que la base de datos se mantiene en un estado consistente (correcto) aun cuando se produzcan fallos en el sistema (ej. fallos de alimentación o del sistema operativo) o fallos de transacción.

• El gestor de control de concurrencia controla la interacción entre transacciones concurrentes, para asegurar la consistencia de la base de datos.