MANEJADORES DE BASES DE DATOSElementos 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.
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.
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
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
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.
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:
MS-ACCESS
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 en red• Modelo CODASYL • Modelo jerárquico• Modelo orientado a objetos• Modelo Entidad-Asociación• Modelo 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 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.
Estructura de datos en redClientes Cuentas
Ana xxxx 221528 25 180000
Angel xxxx 423374 30 50000
Mario xxxx 856490 50 20000
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
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
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
a1 a2 a3 b1 b2
r1
A B
RA RB
R
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 xxxx
221528 Ángel xxxx
423374 Mario xxxx
856490
50 2000040 3000035 5000025 180000
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 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
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-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
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, numero-
pago)
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: 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
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 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>
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 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
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.
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-a-pesos)
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 = 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.
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-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
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.
Top Related