Diapositiva 1

Download Report

Transcript Diapositiva 1

MANEJADORES DE BASES
DE DATOS
Elementos de un SGBD
MSI. GENARO MENDEZ LOPEZ /
[email protected]
Objetivo
• Comprender los elementos de un
Sistema Gestor de Base de Datos
(SGBD).
– Arquitectura, Esquemas, Lenguajes e
Interfaces
– Clasificación
– Características Principales.
Temas
Parte 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.
Temas
Parte 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
Temario
Parte 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
Temario
Parte 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.
Evaluación
• 2 Exámenes Parciales (20%)
• Revisión de trabajos de
investigación y exposiciones en
clase (30%)
• Exámen Final (50%)
Introducción
Manejadores de Bases de Datos
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.
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.
¿Qué es una Base de Datos?
• Una Base de Datos es el conjunto
de datos almacenados con una
estructura lógica.
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.
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).
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.
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.
¿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.
¿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.
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.
Ventajas
• Explotación de la BD.
– Datos compartidos.
– Control de concurrencia.
– Seguridad y Recuperación ante fallas.
– Datos persistentes en modelos
avanzados.
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.
¿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.
¿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: MSACCESS
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
I. Modelo de Datos, Esquemas e
Instancias.
Manejadores de Bases de Datos
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.
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.
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)
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.
Modelos de Datos
Categorías de los modelos
•
•
•
•
•
•
Modelo
Modelo
Modelo
Modelo
Modelo
Modelo
en red
CODASYL
jerárquico
orientado a objetos
Entidad-Asociación
Relacional
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
Diag. de estructura en red
Diagrama 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.
Estructura de datos en red
Clientes
Cuentas
Ana
xxxx
221528
25
180000
Angel
xxxx
423374
30
50000
Mario
xxxx
856490
50
20000
Ejemplo de diag. en red
Liga FECHA-CLIENTE
NOM
DIR
TEL
Liga FECHA-CUENTA
NC
SALDO
FECHA
25
180000
30/09/1999
30
50000
01/03/2000
50
20000
Ana
xxxx
221528
15/07/1999
Angel
xxxx
423374
Mario
xxxx
856490
Diag. de Estructura de Datos del
Modelo en Red.
Cliente Cuenta
NOM
DIR
Liga Sucursal
TEL
Liga CLIENTE
NUM
CIUDAD
FECHA
Instancia
Cliente Liga Cuenta Sucursal
xxxx
221528
15/07/1999
Angel
xxxx
423374
30/09/1999
xxxx
856490
SALDO
Liga Cuenta
35
Ana
Mario
NC
01/03/2000
Santiago
25
180000
30
50000
47
Concepción
50
20000
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.
Esquema CODASYL
A
B
a1
a2
a3
b1
RA
RB
r1
R
b2
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.
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.
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.
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.
Diagramas de Estructura de
Datos del Modelo Jerárquico
Ana
25
xxxx
180000
221528
35
50000
Ángel
xxxx
40
423374
30000
Mario
50
xxxx
20000
856490
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
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.
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.
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.
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.
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.
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.
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.
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.
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.
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
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
Ejemplo
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
Atributos compuestos
Conjuntos de relación
• Una asociación es una relación entre varias
entidades Ejemplo:
López
entidad cliente
deposita
conjunto asociación
A-102
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ón
Ejemplo:
(López, A-102) є depositos
Ejemplo
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
Ejemplo
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.
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)
Cardinalidad
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
Ejemplo
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
Diagrama con atributos multivaluados y
derivados
Conjuntos asociación con atributos
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.
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”.
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.
Asociación uno-a-uno
Un 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
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.
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
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
Participación total y parcial
Cardinalidad
• Los límites de cardinalidad también pueden
expresar restricciones de participación.
• Cardinalidad mínima.. Cardinalidad máxima.
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.
Ejemplo de claves
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.
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, numeropago)
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
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.
Ejemplo
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.
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
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
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
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
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
Diagrama E-A con agregación
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.
Resumen de símbolos utilizados
en E-A
Resumen de símbolos.
Resumen de símbolos
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
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)
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: Si
nombre-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
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
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)
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 valores
t=<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>
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.
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
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
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 cuentas
depositante: almacena información sobre que cliente tiene
asignada que cuenta
cliente: 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
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 {nombrecliente} 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.
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.
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
Representación de conjuntos entidad como
relaciones
• Un conjunto entidad fuerte se transforma en una
relación con los mismos atributos.
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
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
Diagrama E-A para una entidad bancaria
La relación cliente
La relación depositante
Diagrama del esquema para una entidad
bancaria
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.
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-apesos)
II. Arquitectura de un SGBD e
Independencia de los Datos
Manejadores de Bases de Datos
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.
Arquitectura en tres niveles
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 = record
nombre: 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.
Esquema básico
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.
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
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).
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.
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.
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.
Lenguaje SQL
• SQL: lenguaje no procedimental
ampliamente utilizado
– ej. encontrar el nombre del cliente con id-cliente
192-83-7465
select cliente.nombre-cliente from
cliente where cliente.id-cliente= ‘19283-7465’
– ej encontrar los balances de todas las cuentas
pertenecientes al cliente con id-cliente 192-837465
select cuenta.balance from depositante,
cuenta where depositante.id-cliente=
‘192-83-7465’ and depositante.numerocuenta = cuenta.numero-cuenta
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
Usuarios de un SGBD
•
•
•
•
Personal del DBA
Usuarios Esporádicos
Programadores de Aplicaciones
Usuarios paramétricos
Estructura de un DBMS
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.
Resumen de los elementos de un
SGBDs
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.