Módulo de Aprendizaje de Base de Datos - EXAMEN
Módulo de Aprendizaje de Base de Datos - EXAMEN
Módulo de Aprendizaje de Base de Datos - EXAMEN
FACULTAD DE CIENCIAS
DEPARTAMENTO ACADÉMICO
Ingeniería de Sistemas y
Telecomunicaciones
ESCUELA PROFESIONAL
Ingeniería de Sistemas e Informática
CURSO
Base de Datos
MÓDULO DE
APRENDIZAJE
DOCENTE
Noé M. Vásquez Ramírez
Huaraz - Perú
2017
INDICE
Pag.
INTRODUCCIÓN A LOS SISTEMAS DE BASES DE DATOS
1. Objetivos del Diseño de almacenamiento de datos 3
2. Archivos convencionales y Bases de Datos 3
3. Organización de Sistemas de Bases de Datos 9
4. Enfoque Orientado a Datos para el Diseño de Sistemas 11
5. Conceptos Sobre el Modelado de Datos 12
MODELADO DE DATOS
6. El Modelo Entidad-Relación 14
7. Conceptos sobre Modelado de Datos 14
8. Elementos Básicos del Modelo ER 14
9. Claves de una Relación (de una Tabla) 20
10. Practica de Laboratorio 21
11. Problemas Propuestos Diseño Conceptual 22
12. Practica de Laboratorio – PowerDesigner 25
DISEÑO CONCEPTUAL DE BASES DE DATOS
13. Diseño Conceptual 30
13.1. Elementos Usados en el Diseño Conceptual. 30
13.2. Estrategias para el Diseño de Esquemas 30
13.3. Cualidades de un Buen Esquema de Base de Datos 33
13.4. Metodología para el Diseño Conceptual 34
13.5. Observación Importante Sobre la Normalización 35
14. Diseño Conceptual de un Sistema 36
15. CASO: Diseño Conceptual de un Sistema Académico 36
16. Problemas Propuestos Diseño Conceptual 44
DISEÑO LÓGICO EN EL MODELO RELACIONAL
Modelo Relacional 46
17. Restricciones de Integridad 50
18. Definición de Restricciones de Integridad 50
19. Práctica de Laboratorio.- Reglas de Integridad Referencial 51
MEJORA DE LA CALIDAD DE LOS ESQUEMAS DE BASES DE DATOS
20. Teoría de Normalización 54
21. Noción Intuitiva de las Formas Normales 55
22. Dependencias Funcionales 57
23. Definición Formal de la Tres Primeras Formas Normales 58
24. Organización de Relaciones 59
25. Resumen Normalización 60
26. Diseño Lógico (Relacional) 62
27. Ejercicios Normalización Transformación Esquemas ER a MR 67
EL LENGUAJE DE CONSULTA SQL
28. Lenguaje de Consulta SQL - Básico 69
29. Practica SQL Básico 78
30. Lenguaje de Consulta SQL - Intermedio 79
31. Practica SQL - Intermedio 84
32. Lenguaje de: manipulación de datos y de definición de datos 85
TENDENCIAS EN LAS TECNOLOGÍAS DE BASES DE DATOS
33. Base de datos cliente/servidor 89
34. Base de datos distribuidas 90
REFERENCIAS BIBLIOGRAFICAS 92
Universidad Nacional Antúnez de Mayolo
Escuela de Ingeniería de Sistemas e Informática
E l presente documento tiene como objetivo fundamental servir como guía didáctica
para la asignatura de Base de Datos para los alumnos del VI ciclo de la Escuela
de Ingeniería de Si stemas e Informática de la Univerisdad Nacional
Santiago Antúnez de Mayolo.
El contenido de éste material de lectura corresponde al sílabo oficial del curso, y está
dividido de acuerdo a los temas que se consideran fundamentales para los objetivos
académicos propios para el conocimiento del Profesional de I n g e n i e r í a d e
Sistemas e I n f o r m á t i c a . Como son El modelado de datos, el diseño
conceptual de bases de datos, Lenguaje de consulta SQL, protección, seguridad de
los datos y alternativas en la distribución de datos.
Es necesario anotar que por si solo éste material de lectura no es suficiente para su
total comprensión, sino que tiene que ir acompañada de una explicación detallada
brindada por el profesor del curso.
PRIMERA UNIDAD
NOMBRE hasta tres veces, el cambio de nombre (por ejemplo, por un cambio en el
estado civil) requeriría de la actualización de tres archivos individuales,
una cuenta bancaria A, con 500 dólares. Si dos clientes retiran fondos
(digamos 50 y 100 dólares, respectivamente) de la cuenta A casi al
mismo tiempo, el resultado de las ejecuciones concurrentes puede dejar
la cuenta en un estado incorrecto (o inconsistente). En particular, la
cuenta puede contener 450 o 400 dólares, en vez de 350 dólares Para
prevenir esta posibilidad, debe mantenerse alguna forma de supervisión
en el sistema. Puesto que se puede acceder a los datos por medio de
diversos programas de aplicación diferentes que no han sido previamente
coordinados, esta supervisión es muy difícil de proporcionar.
- Problemas de seguridad: No todos los usuarios del sistema de base de
datos deben poder acceder a todos los datos. Por ejemplo, en un sistema
bancario, el personal de las nóminas solo necesita ver la parte de la base
de datos que tiene información acerca de los distintos empleados del
banco. No necesitan acceder a información sobre las cuentas de los
clientes. Puesto que los programas de aplicación se añaden al sistema de
una forma específica, es difícil implantar tales restricciones de seguridad.
- Problemas de integridad: La integración de los datos llega a convertirse
en una causa de preocupación, ya que los cambios en un archivo,
requerirán también la modificación de ciertos datos en otros archivos.
Aquellos archivos utilizados esporádicamente bien pueden quedar
ignorados durante la fase de la actualización. Por otra parte, los valores
de datos almacenados en la base de dalos deben satisfacer ciertos tipos
de restricciones de consistencia. Por ejemplo, el saldo de una cuenta
bancaria nunca debe caer por debajo de una cantidad prescrita (digamos,
25 dólares). Estas restricciones se hacen cumplir en el sistema añadiendo
códigos apropiados en los diversos programas de aplicación. Sin
embargo, cuando se añaden restricciones nuevas, es difícil cambiar los
programas para hacerlos cumplir. El problema se complica aún más
cuando las restricciones implican varios elementos de información de
distintos archivos.
Estas dificultades, entre otras, han fomentado el desarrollo de sistemas de
gestión de bases de datos.
La anterior lista de objetivos nos advierte sobre las ventajas y desventajas del
enfoque de la base de datos.
La primera ventaja: el compartir los datos, significa que éstos deben
almacenarse una sola vez. Esto a su vez apoya que se mantenga la
integridad de los datos, ya que el cambio de los datos se realizará de manera
más sencilla y confiable si éstos aparecen una vez y no en varios archivos.
Cuando un usuario necesite un dato particular, la base de datos con un buen
diseño, debería anticipar tal necesidad. En consecuencia, los datos tendrán
mayor probabilidad de encontrarse disponibles en una base de datos que en
un sistema de archivos convencionales. Una base de datos con un buen
diseño también llega a ser más flexible que dos archivos separados, esto
significa que una base de datos llega a evolucionar conforme se modifican
las necesidades de los usuarios y de sus aplicaciones.
Resumen
Sistemas de Almacenamiento de Datos
Archivos Convencionales
Inconvenientes
Falta de potencial para evolucionar
Redundancia e inconsistencia de datos
Dificultades de Acceso
Problemas de Concurrencia
ABSTRACCIÓN DE DATOS
Un objetivo importante de un sistema de bases de datos es proporcionar a los
usuarios una visión abstracta de los datos. Es decir, el sistema esconde ciertos
detalles de cómo se almacenan y mantienen los datos. Sin embargo, para que el
sistema sea manejable, los datos se deben extraer eficientemente. Este
INDEPENDENCIA DE DATOS
Anteriormente definimos tres niveles de abstracción en los que puede verse la
base de datos. La capacidad de modificar una definición de un esquema en un
nivel sin afectar la definición de un esquema en el nivel superior siguiente se llama
independencia de datos. Hay dos niveles de independencia de datos:
Independencia física de datos: es la capacidad de modificar el esquema
físico sin provocar que se vuelvan a escribir los programas de aplicación. En
algunas ocasiones son necesarias las modificaciones en el nivel físico para
mejorar el funcionamiento.
Independencia lógica de datos: es la capacidad de modificar el esquema
conceptual sin provocar que se vuelvan a escribir los programas de aplicación.
Las modificaciones en el nivel conceptual son necesarias siempre que se altera
la estructura lógica de la base de datos.
La independencia lógica de datos es más difícil de lograr que la independencia
física de datos, ya que los programas de aplicación son fuertemente dependientes
de la estructura lógica de los datos a los que acceden.
Una vez completo el diseño físico de la base de datos, la base de datos se crea y
se carga, y puede ser probada. Las aplicaciones que usan las bases de datos
pueden especificarse, implantarse y probarse completamente. De este modo, la
base de datos se vuelve paulatinamente operacional.
MODELOS DE DATOS.
Un modelo de datos es una serie de conceptos que pueden utilizarse para
describir un conjunto de datos y operaciones para manipular los mismos.
Los modelos de datos se describen, por lo regular, mediante representaciones
lingüísticas y gráficas; es decir, puede definirse una sintaxis y puede desarrollarse
una notación gráfica, como partes de un modelo de datos (Batini).
Modelos Conceptuales.
Son instrumentos para representar la realidad a un alto nivel de abstracción.
Con su uso se puede construir una descripción de la realidad, fácil de entender
e interpretar. Se caracterizan por el hecho de que proporcionan capacidad de
estructuración bastante flexible y permiten especificar restricciones de datos
explícitamente. Hay modelos diferentes, y es probable que aparezcan más.
Algunos de los más extensamente conocidos son:
o El modelo entidad-relación.
o El modelo orientado a objetos.
o El modelo binario.
o El modelo semántico de datos.
o El modelo infológico.
o El modelo funcional de datos.
Modelos Lógicos.
Apoyados por los sistemas de manejo de base de datos (SMBD). Describen los
datos procesables en un computador. Los tres modelos de datos más
ampliamente aceptados son los modelos relacional, de red y jerárquico.
El modelo relacional, que ha ganado aceptación por encima de los otros dos en
años recientes. Los modelos de red y jerárquico, son todavía usados en un
gran número de bases de datos más antiguas, pero están cayendo
rápidamente en desuso. Debajo presentamos una breve visión de cada
modelo.
Modelo relacional
El modelo relacional representa los datos y las relaciones entre los datos
mediante una colección de tablas, cada una de las cuales tiene un número de
columnas con nombres únicos.
Modelo de red
Los datos en el modelo de red se representan mediante colecciones de
registros (en el sentido de la palabra en Pascal o PL/1) y las relaciones entre
los datos se representan mediante enlaces, los cuales pueden verse como
punteros. Los registros en la base de datos se organizan como colecciones de
grafos arbitrarios.
Modelo jerárquico
El modelo jerárquico es similar al modelo de red en el sentido de que los datos
y las relaciones entre los datos se representan mediante registros y enlaces,
respectivamente. Se diferencia del modelo de red en que los registros están
organizados como colecciones de árboles en vez de grafos arbitrarios.
Una forma de ver la diferencia entre esquema y caso es considerar que el primero
denota propiedades estructurales de los datos, y el segundo denota una asignación de
valores a los datos.
ENTIDADES
Las entidades representan clases de objetos. Una entidad es un objeto que es
distinguible de otros objetos por medio de un conjunto específico de atributos. Una
entidad puede ser concreta, tal como una persona o un libro, o puede ser
abstracta, como un día festivo o un concepto. PERSONA, EMPLEADO y CIUDAD,
son ejemplos de entidades para una base de datos de Personal. Las entidades se
representan gráficamente por medio de rectángulos.
RELACIONES
Las relaciones representan agregaciones de dos o más entidades. Un ejemplo de
la relación binaria en el esquema mostrado arriba es NACIDO_EN, que relaciona
PERSONA y CIUDAD de nacimiento. Mas adelante al analizar la cardinalidad,
veremos que es posible obtener varios tipos de relaciones, como son: las
relaciones n-arias (una relación entre más de 2 entidades) y las relaciones
recursivas (una relación de una entidad consigo misma).
ATRIBUTOS
Los atributos representan las propiedades básicas de las entidades o relaciones.
Toda información extensiva es portada por los atributos. Para cada atributo hay un
conjunto de valores permitidos llamados dominio de ese atributo. Formalmente, un
atributo es una función que asigna un conjunto de entidades a un dominio. Así,
cada entidad se describe por medio de un conjunto de pares (atributo, valor del
dato), un par para cada atributo del conjunto de entidades. Por ejemplo, los
atributos de PERSONA podrían ser: Nombre, Apellido, DNI y Profesión.
ATRIBUTO O ENTIDAD
Existen situaciones en las que un atributo puede modelarse como una entidad
distinta. Considérese el conjunto de entidades empleado con atributos nombre-
empleado y número-teléfono. Se puede argumentar fácilmente que un teléfono es
una entidad en sí misma con atributos número-teléfono y ubicación (la oficina
donde está colocado el teléfono). Si tomamos este punto de vista, el conjunto de
entidades empleado debe definirse como sigue:
El conjunto de entidades empleado con atributo nombre-empleado.
El conjunto de entidades teléfono con atributo número-teléfono y situación.
El conjunto de relaciones EmpITelef, que indica la asociación entre los
empleados y los teléfonos que tienen.
Surge entonces una pregunta natural: ¿Qué constituye un atributo, y que
constituye una entidad? Desafortunadamente, no hay una respuesta sencilla. La
distinción depende principalmente de la estructura del dominio de problema que se
está modelando y de la semántica asociada con el atributo en cuestión.
CARDÍNALIDAD.
Además de entidades y relaciones, el modelo E-R representa ciertas restricciones
a las que deben ajustarse los contenidos de una base de datos. Una restricción
importante es la de cardinalidad.
Se distingue entre cardinalidad mínima y cardinalidad máxima.
La cardinalidad máxima es utilizada para especificar cuantas veces una entidad
está asociada, como máximo, a través de un conjunto de relaciones. Se
consideran dos cardinalidades máximas:
1: indica que una entidad está asociada como máximo a una entidad a través
de la relación.
n: indica que una entidad puede estar asociada a muchas entidades a través
de la relación.
La cardinalidad mínima es utilizada para especificar cuantas veces una entidad
está asociada, como mínimo, a través de un conjunto de relaciones. Se consideran
dos cardinalidades mínimas:
0: indica que una entidad no está obligatoriamente asociada a través de la
relación (participación opcional).
1: indica que una entidad debe estar asociada al menos una vez a través de la
relación (participación obligatoria).
Cardinalidad en Atributos
En general puede considerarse que cada entidad de un conjunto, tiene asociada
exactamente un valor de cada atributo. Sin embargo esto no es obligatorio.
Pueden especificarse cantidad mínima y máxima de valores de un atributo
asociados a una entidad.
La cardinalidad mínima indica el número mínimo de valores para el atributo:
Si la card-min = 0 indica que el atributo es opcional y puede no estar
especificado en algunos casos.
Si la card-min = 1 indica que el atributo es obligatorio y al menos un valor debe
especificarse para cada instancia de la entidad.
Ej.: card-min (PERSONA, Nombre) = 1, card-min (PERSONA, Teléfono) = 0
La cardinalidad máxima indica el número máximo de valores para el atributo. Si la
card-max = 1 indica que el atributo es monovalente. Si la card-max > 1 indica que
el atributo es polivalente.
Ej.: card-max (PERSONA, DNÍ) = 1, card-max (PERSONA, Teléfono) = n
Cardinalidad en Relaciones
Expresan el número de entidades con las que puede asociarse otra entidad
mediante un conjunto de relaciones. En esta sección nos concentraremos sólo en
conjuntos binarios de relaciones. Más adelante trataremos con conjuntos de
relaciones n-arios (n > 2).
Para un conjunto binario de relaciones R entre los conjuntos de entidades A y B, la
cardinalidad de asignación debe ser una de las siguientes:
Una a Una (1,1): Una entidad en A está asociada a lo sumo con una entidad de
B, y una entidad en B está asociada a lo sumo con una entidad en A.
Una a Muchas (1, n): Una entidad en A está asociada con un número
cualquiera de entidades en B. Una entidad en B, sin embargo puede estar
asociada a lo sumo con una entidad en A.
Muchas a Una (n, 1); Una entidad en A está asociada a lo sumo con una
entidad en B. Una entidad en B, sin embargo, puede estar asociada con un
número cualquiera de entidades en A.
Muchas a muchas (n, n): Una entidad en A está asociada con un número
cualquiera de entidades en B, y una entidad en B está asociada con un número
cualquiera de entidades en A.
El gráfico muestra una parte de un esquema ER, que representa las entidades
CURSO, AULA y DÍA y la relación ternaria SE DICTA.
Las relaciones que conectan a una entidad consigo misma, se conocen como
relaciones recursivas.
JERARQUÍAS DE GENERALIZACIÓN
Una entidad E es una generalización de un grupo de entidades El, E2,..., En
(entidades subconjunto), si cada objeto de la clase El, E2,..., En, es también un
objeto de la clase E (entidad genérica).
Lo opuesto a la generalización es la especialización.
Todas las propiedades (atributos, relaciones o generalizaciones) de la entidad
genérica serán heredadas por las entidades subconjunto.
IDENTIFICADORES
Un identificador de una entidad E es un grupo de atributos o de entidades
relacionadas con E, que tienen la propiedad de determinar en forma única todos
los casos de E. Los identificadores se llaman también claves primarias o claves
candidatas. Los identificadores se clasifican básicamente en simples y
compuestos, según que consistan de un solo atributo o cuando se componen de
más de dos atributos, respectivamente. PERSONA
En el gráfico adjunto se muestra la entidad PERSONA, con sus tres DNI
atributos: DNI, Nombre y Profesión. El atributo DNI es el identificador Nombre
o clave primaria. No es recomendable considerar el identificador Apellido
Profesión compuesto (Nombre, Apellido), ya que se puede dar el Profesión
caso de homonimia, violando la unicidad del identificador.
También es común representar a los atributos fuera del rectángulo de la entidad,
mediante líneas conectadas al rectángulo y al extremo un pequeño círculo con el
nombre del atributo.
Ejemplo: en Perú, para una entidad Persona, el identificador puede ser DNI.
Ejemplo: En una biblioteca, se tiene para cada libro uno o más ejemplares. Cada
LIBRO tiene un código único, mientras que para diferenciar a un ejemplar de otro,
se le agrega un correlativo. Para esta situación, se puede tener un esquema como
el siguiente, donde el tipo de entidad LIBRO tiene como atributos código, título y
año edición, mientras que EJEMPLAR tiene como atributos número de ejemplar y
ubicación.
Práctica de Laboratorio
Ejercicio
3. Considerando lo siguiente:
En un instituto de investigación se tienen proyectos y computadoras disponibles para
los usuarios (posibles participantes en los proyectos).
Hay 2 tipos de usuarios: investigadores y aprendices. Cada proyecto es coordinado por
un investigador y puede tener como miembros a varios usuarios. Las computadoras
tienen horarios (hay una entidad Horario con atributos fecha y hora de inicio, y es una
entidad débil con respecto a Computadora). Los investigadores registran las
infracciones de los aprendices en una entidad denominada Infracción (entidad débil
4. Se requiere una base de datos que contenga el origen de los alumnos de la Universidad.
Se debe registrar: datos personales, colegios donde estudió, tipo de colegio, dirección
del colegio, teléfonos, director actual, nota en los 3 últimos años de secundaria y
puntaje de ingreso a la universidad. Dibujar el esquema entidad-relación.
5. En una Biblioteca se tienen en forma simplificada lo siguiente: cada libro tiene varios
temas, y varios libros pueden abarcar el mismo tema. Hay dos tipos de usuarios:
internos y externos. Los usuarios internos pueden llevar los libros, prestados a
domicilio o a la sala de lectura. Los usuarios externos no pueden llevar libros a domicilio.
Con el fin de tener estadísticas para efectuar nuevas compras, se registran los
préstamos de cada libro e inclusive los pedidos no atendidos (esto es, un libro pedido
que no estaba disponible). Dibujar el esquema entidad-relación.
10. El club de Gisela, imparte clases de baile de salón y ofrece lecciones privadas y en
grupo; cobra S/. 20.00 la hora por estudiante (o pareja) cuando se trata de una lección
privada, y S/.5.00 la hora por estudiante en el caso de una lección en grupo. Las
lecciones privadas se imparten a cualquier hora, desde el medio día hasta las 22:00
horas, seis días a la semana. Las lecciones en grupo se imparten sólo en las tardes.
El club de bailes emplea dos tipos de instructores: asalariados de tiempo completo, e
instructores de medio tiempo. La remuneración de los instructores de tiempo completo
consiste en una cantidad fija por semana y a los de tiempo parcial se les paga cierta
cantidad por una tarde, o por impartir sólo una clase.
Además de las lecciones, el club patrocina a la semana dos presentaciones de baile
social con música grabada. La cuota de admisión es de S/.3.00 por persona. El baile de
los viernes por la noche es el más popular y en promedio se reúnen 80 personas; el baile
del domingo por la noche atrae aproximadamen te a 30. El propósito de los bailes es
proporcionar a los estudiantes un lugar para que practiquen sus habilidades. No se
sirven alimentos ni bebidas.
Al club de Gisela le gustaría desarrollar un sistema de información para dar
seguimiento a los estudiantes y a las clases que éstos han tomado. Al administrador
también le gustaría saber cuántas lecciones y de que tipo ha impartido cada maestro, y
poder calcular el costo promedio por lección de cada uno de sus instructores.
11. Ingrese al sitio Web de un vendedor de libros, por ejemplo Amazon (www.amazon.com).
Use el sitio Web para determinar los tres mejores libros de XML (Extended Markup
Language). Cuando visite el sitio Web piense en la estructura de una posible base de
datos de libros, autores, temas y temas afines.
Desarrolle un diagrama entidad-relación de una base de datos de libros para este sitio
Web. Muestre todas las entidades y relaciones y cuando menos dos o tres atributos por
entidad. Indique las cardinalidades mínimas y máximas para ambos lados de cada
relación. Las posibles entidades son: TITULO, AUTOR, EDITORIAL, COPIA Y TEMA.
Por supuesto, hay muchas más entidades posibles. Modele cualquier atributo multivalor.
Use subtipos donde sea apropiado. Para evitar que el diagrama se expanda demasiado,
suponga que solo se dará seguimiento a los libros. Además, limite su diseño a las
necesidades de alguien que esta buscando libros que quiere comprar. No considere
pedido del cliente, entrega del pedido, orden de compra y otros procesos de negocios.
Practica de Laboratorio
Autobús Empleado
(p, e) Habilitado
(p, 1)
(p, 1)
Asignado Ingeniero (1, n)
(0, n)
Obtiene
Provee
(1, 1)
(1, 1)
Certificación
Servicio
(0, n)
Tarifa Solicitado
(1, n)
(1, n)
Cliente
Recomienda a
(0, 1)
Recomienda
Es recomendado
En el proceso de diseño de bases de datos, usted usa un modelo lógico como un paso
intermedio entre lo físico y lo conceptual del diseño:
Comience con un CMD que contenga entidades, atributos, relaciones, dominios, datos y
reglas de negocio.
Generar un modelo lógico (PDM con el <Modelo Lógico> del DBMS). Crear índices y FK
especificar nombres de columna y otras características comunes.
Generar un conjunto de PDMS, cada una dirigida a una determinada aplicación DBMS.
Si es necesario, puede desarrollar el CMD en varios pasos a partir de un modelo de alto
nivel a un nivel bajo de CMD.
Este proceso de diseño le permite mantener todo coherente en un gran esfuerzo de
desarrollo.
Objetos en un CDM
1. Entidad
Una entidad representa un objeto definido dentro del sistema de información sobre la
que desea almacenar información. Por ejemplo, en un modelo concerniente a empleados
y divisiones, las entidades son los empleados y la división.
Una ocurrencia de una entidad es un elemento perteneciente a la entidad. Por ejemplo,
el empleado Martín es una ocurrencia de la entidad Empleado.
2. Relaciones
Una relación es un enlace entre entidades. Por ejemplo, en un CMD que gestiona
recursos humanos, la relación miembro vincula a las entidades de empleados y
equipo, ya que los empleados pueden ser miembros de los equipos. Esta relación
expresa que cada empleado trabaja en un equipo y que cada equipo tiene
empleados.
Una ocurrencia de una relación corresponde a un caso de cada una de las dos
entidades que participan en la relación. Por ejemplo, el empleado Martín
trabajando en el equipo de marketing es una ocurrencia de la relación miembro.
Cardinalidad
Cardinalidad indica el número de instancias (ninguno, uno, o muchos)
de una entidad en relación a otra entidad. Puede seleccionar los
siguientes valores de cardinalidad
3. Herencia
La herencia le permite definir una entidad como un caso especial de una entidad
de carácter más general. Las entidades que participan en una herencia tienen
muchas características similares, pero sin embargo son diferentes. La entidad
general que se conoce como una entidad supertipo (o padre) y contiene todas
las características comunes. El caso especial de entidad que se conoce como un
subtipo (o hijo) de las entidades y contiene todas las características
particulares.
Entre las entidades, también es posible definir una herencia enlace. En una
herencia enlace, uno o más entidades subtipos (o hijo) a heredar, en el plano
físico, la totalidad o una parte de la entidad atribuye a cargo de una entidad
supertipo (o padre).
E/R y Notación Merise Descripción
Estándar
Mutuamente exclusiva
Herencia completa
4. Asociación
Una asociación es una relación entre las entidades. En la metodología de
modelado Merise una asociación se usa para conectar varias entidades que cada
uno representa claramente definidos los objetos, pero están unidos por un
evento, que puede no ser tan claramente representado por otra entidad.
Cada instancia de una asociación corresponde a una instancia de cada entidad
vinculada a la asociación.
Ejemplo:
Tres entidades VIDEOK7, CLIENTE, y ALMACEN, contiene video, cliente y
almacén de información. Ellos están vinculados por una asociación que
representa a una cinta de vídeo de alquiler (K7RENTAL). La asociación
K7RENTAL también contiene los atributos fecha y STAFF_ID, que dan la
fecha del alquiler, y la identidad del funcionario que alquila la cinta de vídeo.
Generalización
T3: Entidad ?
Entidades no
relacionadas
T4: Relación ?
Relaciones
paralelas
T5: Relación ?
Entidad con
relaciones
T6: Desarrollo de
atributos
Generalización
T4: Atributos?
Agregación
de atributos
Clasificación de las primitivas ascendentes
Dominio de aplicación
Dominio de aplicación
Esquema Final
Dominio de aplicación
Esquema Inicial
Esquema Final
Dominio de aplicación
Dominio de Dominio de
aplicación 1 aplicación 2
Esquema
Armazón
Esquema 1 Esquema 2
Esquema
Integrado
2. DISEÑO INICIAL
Aquí se obtendrá un esquema armazón inicial. Los conceptos que aparecen
en este esquema son los más evidentes mencionados en los requerimientos.
Para obtener el esquema armazón, nos servimos del agrupamiento por
conceptos realizado en el paso anterior (conceptos que son buenos
candidatos a convertirse en entidades del esquema armazón).
3. DISEÑO DE ESQUEMAS
Aquí se refina y extiende el esquema a fin de representar todas las
características expresadas en los requerimientos.
El análisis se concentra en el Esquema Armazón Inicial, verificando si se
puede refinar con el uso de los refinamientos (primitivas) descendentes,
ascendentes o centrífugos.
3.1. Refinamientos descendentes
La entidad NOTAS se puede refinar en subconjuntos a fin de ser más
específicos, estos subconjuntos corresponden a los 2 tipos de notas y
son: Las obtenidas por convalidaciones, representadas en la entidad
CONVALIDACIONES y las de los cursos llevados en cada semestre,
representadas en la entidad REGULAR.
3.2. Refinamientos ascendentes
De manera similar al surgir la entidad REGULAR, que son las notas del
semestre actual, es necesario indicar a que curso del semestre actual
se refieren, por lo que surge la relación DE, entre las entidades
REGULAR y CURSOSECCIONPROG.
3.3. Refinamientos centrífugos
Al surgir la entidad que representa a las notas de CONVALIDACIONES,
se ve la necesidad de referenciarlas al documento que les dio origen, en
este caso, a la resolución de convalidación, la cual contiene varias notas
de un solo alumno, surge as í la entidad DOC_CONVALIDAC, la cual
inclusive, trae consigo las relación con la entidad ALUMNO (relación
PEDIDOPOR) y la relación con la entidad CONVALIDACIONES
(relación CONTIENE).
Producto de estos refinamientos se obtiene el Esquema Armazón
Refinado al cual también se le denomina Esquema Conceptual, (o
Esquema Conceptual Inicial) y se muestra a continuación:
3.4. Refinamientos Mixtos
Emplea las estrategias descendentes y ascendentes permitiendo dividir
en forma controlada los requerimientos. Partiendo de n dominios de
aplicación y utilizando un esquema armazón, es posible llegar a un
esquema final integrado.
Esquema Conceptual
Para el proyecto de asignatura (de la empresa que hallan elegido), acompañar el CDM
en PowerDesigner, que se corresponda con su esquema final.
Estrategias de diseño
Instrucciones. - Resolver con los grupos ya conformados y presentar, el día del examen.
2. Se desea mantener una base de datos para una cadena de farmacias distribuida en
diferentes ciudades. Cada farmacia tiene sus empleados propios y un farmacéutico. Por
cada ciudad existe un único farmacéutico; esto es, si en una ciudad hubiera más de una
farmacia, el mismo farmacéutico estaría afectado a todas las farmacias de esa ciudad.
Cada farmacia tiene a su vez su stock de medicamentos. El mismo se mant iene por
medicamento y presentación. Los medicamentos se organizan según la o las monodrogas
que lo componen, su presentación (por ejemplo ampollas de 5 unidades, jarabe de 100ml,
inyecciones por 10 unidades, pomada 60gr, etc.), el laboratorio que lo comercializa, y su
acción terapéutica (analgésico, antibiótico, etc.). Por cada medicamento se mantiene su
precio y la cantidad en existencia del mismo. El sistema deberá permitir consultar la base
de datos de diferentes alternativas para medicamentos compuestos por una monodroga,
medicamentos de un laboratorio, presentaciones de un medicamento, entre otras. Diseñe
la BD correspondiente empleando la estrategia Ascendente.
6. Se requiere controlar la historia clínica de los clientes inscritos en una Empresa que brinda
seguro médico por medio de una serie de Clínicas y Farmacias a disposición de los
clientes. Cada historia clínica registra las atenciones que ha tenido cada paciente. En cada
atención se debe indicar el Doctor que lo atendió (un Doctor puede trabajar en varias
clínicas), la Clínica donde se atendió, el diagnóstico, y los medicamentos recetados. De los
medicamentos, solo algunos son cubiertos por el seguro, por lo que se debe indicar desde
que farmacia del seguro se hizo la entrega de cada medicamento. Además de los
medicamentos, en cada atención es posible que se incluyan otros servicios, como por
ejemplo, toma de radiografías, rayos X, etc. Emplear la estrategia centrífuga
SEGUNDA UNIDAD
El modelo relacional, como todo modelo de datos, tiene que ver con tres aspectos
de los datos:
a. Estructura de datos.
b. Integridad de datos.
c. Manipulación de los datos.
Clave primaria
atributos
Grado
a) Relaciones
El modelo relacional se basa en el concepto matemático de relación, que
gráficamente se representa mediante una tabla. Codd, que era un experto
matemático, utilizó una terminología perteneciente a las matemáticas, en
concreto de la teoría de conjuntos y de la lógica de predicados.
Una relación es una tabla con columnas y filas. Un SGBD sólo necesita que el
usuario pueda percibir la base de datos como un conjunto de tablas. Esta
percepción sólo se aplica a la estructura lógica de la base de datos (en el nivel
externo y conceptual de la arquitectura de tres niveles ANSI-SPARC). No se
aplica a la estructura física de la base de datos, que se puede implementar con
distintas estructuras de almacenamiento.
d) Una tupla es una fila de una relación. Los elementos de una relación son las
tuplas o filas de la tabla. En la relación FUTBOLISTA, cada tupla tiene seis
valores, uno para cada atributo. Las tuplas de una relación no siguen ningún
orden.
Cada relación tiene un nombre y éste es distinto del nombre de todas las
demás.
No hay dos atributos que se llamen igual.
h) Tipos de relaciones
En un SGBD relacional pueden existir varios tipos de relaciones, aunque no
todos manejan todos los tipos.
Relaciones base. Son relaciones reales que tienen nombre y forman parte
directa de la base de datos almacenada (son autónomas).
Vistas. También denominadas relaciones virtuales, son relaciones con
nombre y derivadas: se representan mediante su definición en términos de
otras relaciones con nombre, no poseen datos almacenados propios.
Instantáneas. Son relaciones con nombre y derivadas. Pero a diferencia de
las vistas, son reales, no virtuales: están representadas no sólo por su
definición en términos de otras relaciones con nombre, sino también por
sus propios datos almacenados. Son relaciones de sólo de lectura y se
refrescan periódicamente.
Res ultados de consultas. Son las relaciones resultantes de alguna consulta
especificada. Pueden o no tener nombre y no persisten en la base de
datos.
Resultados intermedios. Son las relaciones que contienen los resultados de
las subconsultas. Normalmente no tienen nombre y tampoco persisten en la
base de datos.
Resultados temporales. Son relaciones con nombre, similares a las
relaciones base o a las instantáneas, pero la diferencia es que se destruyen
automáticamente en algún momento apropiado.
i) Claves
Ya que en una relación no hay tuplas repetidas, éstas se pueden distinguir
unas de otras, es decir, se pueden identificar de modo único. La forma de
identificarlas es mediante los valores de sus atributos.
Unicidad: nunca hay dos tuplas en la relación con el mismo valor de
Irreductibilidad
Cuando una clave candidata está formada por más de un atributo, se dice que
es una clave compuesta. Una relación puede tener varias claves candidatas.
Para identificar las claves candidatas de una relación no hay que fijarse en un
estado o instancia de la base de datos. El hecho de que en un momento dado
no haya duplicados para un atributo o conjunto de atributos, no garantiza que
los duplicados no sean posibles. Sin embargo, la presencia de duplicados en
un estado de la base de datos sí es útil para demostrar que cierta combinación
de atributos no es una clave candidata. El único modo de identificar las claves
candidatas es conociendo el significado real de los atributos, ya que esto
permite saber si es posible que aparezcan duplicados. Sólo usando esta
información semántica se puede saber con certeza si un conjunto de atributos
forman una clave candidata.
Las claves candidatas que no son escogidas como clave primaria son
denominadas claves alternativas.
Base de Datos Relacionales.- una base de datos relacional es una base de datos
percibida por el usuario como una colección de relaciones normalizadas de
diversos grados que varía con el tiempo.
“La base de datos no debe contener valores de clave ajena sin concordancia”
Propiedades PK-FK
SEGUNDA FORMA NORMAL (2FN), también introducida por Codd. Una
relación está en 2FN, si además de estar en 1FN, todos los atributos que
no forman parte de ninguna clave candidata constituyen información acerca
de la clave completa, y no sólo de una parte de la clave.
Para la relación:
PRESTAMO (num_socio, nombre_socio, cod_libro, fec_prest, editorial, país),
Cuyas claves candidatas son:
(num_socio, cod_libro) y
(nombre_socio, cod_libro)
Se puede observar que ciertos atributos que no forman parte de las claves
candidatas, tal como editorial, constituye información acerca del libro, pero
no acerca de la clave completa. Luego, la relación préstamo no se
encuentra en 2FN.
La solución es descomponer esta relación en las siguientes:
PRESTAMO1( num_socio, nombre_socio, codJibro, fec_prest)
LIBRO (cod_libro, editorial, país)
TERCERA FORMA NORMAL (3FN), propuesta por Codd. Una relación
está en 3FN, si además de estar en 2FN, los atributos que no forman parte
de ninguna clave candidata constituyen información sólo de la(s) clave(s) y
no de otros atributos.
En la relación PRESTAMO1, el atributo fec_prest constituye información de
las claves, y ya que no existen más atributos, entonces, está en 3FN.
En la relación LIBRO, el atributo país constituye información acerca de la
editorial que publica el libro (es decir de un atributo que no es clave), por lo
que no está en 3FN.
La solución es descomponer la relación LIBRO en:
LIBR01 (cod_libro, editorial)
EDITORIAL (editorial, país),
Que están en 3FN, ya que todo atributo no clave constituye información
sólo acerca de la clave.
Hasta ahora nuestro esquema relacional está compuesto por las siguientes
relaciones en FNBC:
LIBRO1 (cod_libro. editorial)
EDITORIAL (editorial, país)
SOCIO (num_socio, nombre_socio)
PRESTAMO2( num_socio, codJibro, fec_prest)
NOTA: Con un adecuado modelamiento conceptual se tendría el siguiente
esquema:
Ejercicio:
R (estudiante, nro_matricula, curso, centro, profesor, texto),
Con las restricciones:
Un estudiante puede estar matriculado en varios cursos
Un estudiante tiene un numero de matrícula distinto para cada
curso en el que está matriculado
Un curso se imparte en un solo centro
El número de matrícula identifica al centro en el que se imparte
el curso y al curso mismo
Un curso es impartido por un solo profesor, pero un profesor
puede impartir varios cursos
Un curso se apoya en distintos textos y un mismo texto puede
servir de soporte a varios cursos.
Reducir el esquema anterior a un conjunto equivalente de
relaciones en FNBC
Desnormalizacion y Particionamiento
Son métodos o formas de organizar las relaciones, teniendo en cuenta razones
de tipo físico:
Tasa de actualizaciones versus consultas
Las veces que se accede conjuntamente a los atributos
El tamaño en bytes de los atributos
Tipos de proceso (en línea-batch)
Prioridad de los procesos
Tamaño de las tablas.
Una relación está en BCNF si y sólo si todo atributo del cual depende funcionalmente por
completo algún otro atributo es una clave candidata.
Importe: $865.00
IGV: $164.35
TOTAL: $1029.35
Al aplicar las transformaciones propias del diseño lógico, las cuales se describen
más adelante, las relaciones producidas corresponden, a entidades o a relaciones,
y además, mantienen la misma forma normal.
Esquema resultante:
ESTUDIANTE: número-matricula, nombre, carrera, título-tesis, tipo
Esquema resultante
Esquema resultante:
Ejercicio
Efectuar la transformación del modelo
E-R, necesarios para llegar al esquema lógico correspondiente.
(p, e)
4. Un sistema de control de pedidos de materiales utiliza una sola tabla ( un pedido puede
incluir varios materiales):
PEDIDO (codpedido, codmaterial, nombrematerial, densidadmaterial, cantidad, fecha)
a. Indique claramente los problemas de esta tabla, incluyendo los tipos de anomalías, si
las hubiera (2 puntos)
b. ¿En que forma normal se encuentra la tabla?. Justifique su respuesta (1 puntos)
c. Rediseñe adecuadamente la base de Datos (esquema conceptual y lógico)
ATENTAMENTE,
EL DOCENTE.