47
1 Diseño de Base de Datos Relacionales Se utilizará la herramienta CASE Data Architect para realizar el modelo conceptual de la base de datos, posteriormente se migrará el modelo conceptual al modelo físico para implementarlo en el administrador de base de datos robusto SQL Server.

Unidad ii diseño de bd

Embed Size (px)

Citation preview

Page 1: Unidad ii diseño de bd

1

Diseño de Base de Datos Relacionales

Se utilizará la herramienta CASE Data Architect para realizar el modelo conceptual de la base de datos, posteriormente se migrará el modelo conceptual al modelo físico para implementarlo en el administrador de base de datos robusto SQL Server.

Page 2: Unidad ii diseño de bd

M.C. Daniel Esparza Soto 2

Diseño de una Base de Datos

Espacio del problema

Modelo de Datos: Modelo Lógico

Esquema de BD: Modelo Físico

Implementación en la BD

Page 3: Unidad ii diseño de bd

M.C. Daniel Esparza Soto 3

Espacio del problema

El espacio del problema define características con que contará la BD que se desea desarrollar. Generalmente la definición del espacio del problema se ha realizado de manera textual y en ella se define las necesidades requeridas por la BD.

Una buena definición del espacio del problema se lleva a cabo analizando todos los procesos en donde se desarrollará la BD.

Page 4: Unidad ii diseño de bd

M.C. Daniel Esparza Soto 4

Análisis del espacio de problema

1.- Todos los documentos que presenten información capturada por los usuarios.

2.- Revisar cualquier tipo de reportes que se utilizan dentro de la empresa, esto es para obtener información relativa a los periodos de captura.

3.- Analizar los procesos internos de manejo de materiales, entradas de almacén, etc., todo esto para encontrar información no contemplada en los puntos anteriores.

4.- Si se trata de remplazar un sistema ya existente, es necesario revisar las especificaciones de dicho sistema y aportar las mejoras necesarias.

Page 5: Unidad ii diseño de bd

M.C. Daniel Esparza Soto 5

Espacio del problema:Ferreteria

Administrar las ventas de una ferreteria llevando el control de articulos agrupados por familias. Las ventas deben llevar el registro del cliente y el empleado que realiza la venta.

Es necesario reportes:

De Ventas Por municipio y colonia.

De ventas por zonas de empleado.

Page 6: Unidad ii diseño de bd

M.C. Daniel Esparza Soto 6

Espacio del problema: Lavado de automoviles

Administrar una cadena de lavado de carros, donde se debe registrar el servicio proporcionado a cada vehiculo, señalando :El nombre del cliente.Marca y modelo del vehiculo, Numero de unidad de lavado, Empleado que lavó el carro y Servicios proporcionados: lavado int. , ext. , de motor, shampoo,etc.

Page 7: Unidad ii diseño de bd

M.C. Daniel Esparza Soto 7

Analisis del problema:Liga de futbol

Realizar el control de equipos de futbol en una liga o torneo, en la liga de futbol habrá entrenadores y cada jugador solamente puede pertenecer a un equipo.

La liga contará con 5 categorias: 8-10,11-12,13-14,15-16.

Se contará con 2 ramas: femenil y varonil.

Realizar el calendario regular y resultados de los partidos.

Page 8: Unidad ii diseño de bd

M.C. Daniel Esparza Soto 8

Modelo de datos

Es una descripción conceptual del espacio del problema, esto incluye la definición de entidades, sus atributos y sus restricciones. También incluye una descripción de las relaciones establecidas entre las entidades y cualquier restricción que se aplique a sus relaciones. El modelo de datos se expesará entonces en función de:

1.- Entidades.

2.- Atributos.

3.- Dominios

4.- Asociaciones.

Page 9: Unidad ii diseño de bd

M.C. Daniel Esparza Soto 9

Entidades

Una entidad es cualquier cosa que resulte necesaria en el sistema para mantener información. Cuando se empieza a diseñar el modelo de datos la recopilación de entidades es el inicio del proceso. Cuando se habla del espacio del problema, la mayoría de los nombres y verbos que se utilizan estarán sujetos a convertirse en entidades.

Page 10: Unidad ii diseño de bd

M.C. Daniel Esparza Soto 10

Entidades

Liga de Futbol:Liga.Equipos.Jugadores.Entrenadores.Categorias.Ramas.Calendario.Resultados.

Ferreteria:ArticulosFamiliasVentasFerreteriasEmpleadosClientesZonasColoniasMunicipios

Lavado:LavadoVehiculosEmpleadosClientesUnidadesServiciosMarcasModelos

Page 11: Unidad ii diseño de bd

M.C. Daniel Esparza Soto 11

Atributos

El sistema tendrá que plasmar ciertos hechos de cada entidad. Esos hechos se refieren como los atributos de la entidad. La determinación de los atributos que hay que incluir en cada entidad es un proceso semántico, se deben tomar descisiones basadas en el significado de los datos y en cómo se utilizarán. Con el estado actual de la tecnología no hay forma de desarrollar un diseño de BD que se pueda demostrar que es correcto. Se puede probar que algunos diseños tienen fallas, pero no se puede probar que uno concreto no las tenga.

Page 12: Unidad ii diseño de bd

M.C. Daniel Esparza Soto 12

Atributo identificador o clave principal

Una vez definidas las entidades y sus respectivos atributos debemos considerar dentro de cada entidad, un atributo principal que identifique cada elemento de la entidad, a este atributo se le conocera como identificador, clave candidata o clave principal de la entidad.

Esta clave principal posteriormente se convertirá en la llave primaria de la tabla.

Page 13: Unidad ii diseño de bd

M.C. Daniel Esparza Soto 13

Dominios

El dominio establece el conjunto de valores posibles que el atributo puede contener para hacer considerado como válido. A menudo se confunden los dominios con los tipos de datos, aunque no son exactamente lo mismo. Tipo de dato es el concepto físico, mientras que dominio es un concepto lógico. El concepto de dominio es más amplio que el tipo de datos, un dominio establece una descripción más especifica de datos que son válidos.

Page 14: Unidad ii diseño de bd

M.C. Daniel Esparza Soto 14

Ejemplo 1: espacio del problema, entidades y atributos.

Espacio del problema:

Se desea llevar el registro de unas elecciones en el estado donde se eligirá gobernador. Habrá casillas por municipios y se tendrán candidatos por partidos políticos.

Es necesario un reporte de los ciudadanos que esten dados de alta en las casillas. Un reporte final de votaciones por candidatos en cada municipio y en cada casilla.

Page 15: Unidad ii diseño de bd

M.C. Daniel Esparza Soto 15

Asociaciones

Además de los atributos de cada entidad, un modelo de datos debe especificar las asociaciones existentes entre las entidades. En el nivel conceptual, las asociaciones son simplemente relaciones existentes entre entidades. Las entidades se clasifican en :

- Entidades participantes.

- Grado de una asociación.

Page 16: Unidad ii diseño de bd

M.C. Daniel Esparza Soto 16

Entidades participantes

Son las entidades que participan en una asociación. Se clasificán en :1.- Entidades débil: Es la entidad que sólo puede existir en relación a otra entidad. También se le conoce como entidad con participación total en la asiciación debido a que sólo existe si existe la asociación.

2.- Entidad normal: Es la entidad que puede existir por si misma en la asociación. También se le conoce como entidad con participación parcial.

Page 17: Unidad ii diseño de bd

M.C. Daniel Esparza Soto 17

Entidades participantes

PedidosClientes

E. Normal E. débil

ProductosFamilias

E. Normal E. débil

Page 18: Unidad ii diseño de bd

M.C. Daniel Esparza Soto 18

Clasificación de entidades

1.- Entidad Principal: Es la entidad que compartirá su clave principal con la otra entidad la cual se le conocerá como entidad externa. La entidad principal siempre es la entidad normal.

2.- Entidad Externa: Es la entidad que contendrá la clave principal de la entidad principal. Generalmente es la entidad débil.

Page 19: Unidad ii diseño de bd

M.C. Daniel Esparza Soto 19

Entidades participantes

E. Normal E. débil

ProductosFamilias

E. Normal E. débil

PedidosClientes

E. Principal E. Externa

E. Principal E. Externa

Page 20: Unidad ii diseño de bd

M.C. Daniel Esparza Soto 20

Grado de una asociación

Es el numero de entidades participantes en una asociación, se clasifican en :

1.- Asociación unaria: Es una asociación de una entidad consigo misma.

2.- Asociación binaria: Es una asociación entre 2 entidades, este es el tipo de asociación más común.

3.- Asociaciones ternarias: Es una asociación donde intervienen 3 entidades, este tipo de asociación es el menos conocido.

Page 21: Unidad ii diseño de bd

M.C. Daniel Esparza Soto 21

Es el número máximo de ejemplares de una entidad que se pueden asociar con un ejemplar de otra entidad. Hay 3 variaciones:

1.- Asociación uno-a-uno.

2.- Asociación uno-a-muchos.

3.- Asociación muchos-a-muchos.

Cardinalidad de la asociación

Page 22: Unidad ii diseño de bd

M.C. Daniel Esparza Soto 22

Asociación uno-a-uno

Este tipo de asociaciones ocurre cuando un ejemplar de la entidad X se puede asociar tan solo con un ejemplar de la entidad Y. Cuando se eligen las asociaciones uno-a-uno entre entidades hay que asegurarse de que la asociación se mantiene en todo momento y en caso de que cambie no nos interesan los valores pasados.Estas asociaciones son raras en el mundo real, pero son muy comunes y útiles como concepto abstracto. Se utilizan principalmente para reducir el numero de atributos de una relación o para modelar las subclases de las entidades.

Page 23: Unidad ii diseño de bd

M.C. Daniel Esparza Soto 23

Asociaciones uno-a-uno

En estas asociación cualquiera de las 2 entidades puede ser la entidad principal o la entidad externa. La elección depende de las especificaciones del espacio del problema.

Una vez elegida cada una de ellas, se procede a copiar la clave principal que pertenece a la entidad principal a los atributos de la entidad externa. Este nuevo atributo dentro de la entidad externa se deberá marcar como entidad única o campo único.

Page 24: Unidad ii diseño de bd

M.C. Daniel Esparza Soto 24

Ejemplo: asociaciones uno-a-uno

Modelar la asociación que existe entre empleados y despachos en un edificio en donde en cada despacho solamente puede trabajar un empleado.

Atributos:Empleadosdespachos

Clave

Nombre

Domicilio

Fecha Nac.

NumeroDesp (unico)

Numero

Dimensiones

Baños

Ventanas

E. principal E. Externa

Page 25: Unidad ii diseño de bd

M.C. Daniel Esparza Soto 25

Solución II:

Atributos:

Empleadosdespachos

Clave

Nombre

Domicilio

Fecha Nac.

Numero

Dimensiones

Baños

Ventanas

Clave(unico)

E. Externa E. principal

Page 26: Unidad ii diseño de bd

M.C. Daniel Esparza Soto 26

Asociación uno-a-muchos

Es el más común entre las entidades y es donde un ejemplar de una entidad se puede asociar con uno o muchos ejemplares de otra entidad.

La entidad del lado de uno de la asociación siempre es la relación principal, su clave principal se copia en la relación del lado muchos que se convierte en la relación externa, por lo tanto, la entidad del lado de muchos siempre es la relación externa.

Page 27: Unidad ii diseño de bd

M.C. Daniel Esparza Soto 27

Ejemplo: asociaciones uno-a-muchos

Modelar la asociación que existe entre estados y municipios donde cada estado tiene muhcos municipios.

Atributos:

MunicipiosEstados

ClaveMpio

Nombre

Tamaño

ClaveEdo

ClaveEdo

Nombre

Tamaño

Page 28: Unidad ii diseño de bd

M.C. Daniel Esparza Soto 28

Ejemplos:

1.- Realizar el modelo lógico de paises, estados, municipios y colonias.

2.- Modelar una empresa donde cada empleado tiene derecho a un cajon de estacionamiento. Además llevar el registro de los cajones existentes por piso. Los empleados estan asignados a un departamento en la empresa.

Page 29: Unidad ii diseño de bd

M.C. Daniel Esparza Soto 29

Asociación muchos-a-muchos

Este tipo de asociaciones relaciona los elementos de una entidad contra todos los elementos de la otra entidad. Se puede considerar una relación doble uno-a-muchos en ambos sentidos. Este tipo de asociaciones genera una tercera entidad abstracta llamada tabla unión la cual tendrá asociaciones uno-a-muchos dirigida a ella por el lado de muchos. Por lo tanto tendremos 2 entidades principales las cuales heredarán sus claves principales a la tabla unión que será la relación externa.

Esta tabla unión, por lo tanto tendrá las claves principales de las entidades principales como su propia clave principal.

Page 30: Unidad ii diseño de bd

M.C. Daniel Esparza Soto 30

Ejemplo: asociaciones muchos-a-muchos

Modelar la asociación entre alumnos y materias donde un alumnos puede tomar clases en muchas materias y una materia puede tener muchos alumnos.

Se convierte en :

Atributos:

AlumnosMaterias

T. uniónMaterias Alumnos

ClaveMateria

Nombre

Créditos

Matricula

Nombre

Dirección

Matricula

ClaveMateria

Page 31: Unidad ii diseño de bd

M.C. Daniel Esparza Soto 31

1.- Realizar el modelo lógico de la relación que existe entre almacenes y materiales, donde cada material puede estar guardado en varios almacenes.

2.- Realizar el modelo lógico para el prestamo de libros en una biblioteca, llevando el control de prestamos de cada alumno.

Page 32: Unidad ii diseño de bd

M.C. Daniel Esparza Soto 32

Asociaciones binaria

Modelar la asociación entre Despachos y Empleados en cada uno de estos casos:

1.- Asociación binaria uno-a-uno.

2.- Asociación binaria uno-a-muchos.

3.- Asociación binaria muchos-a-muchos.

Page 33: Unidad ii diseño de bd

M.C. Daniel Esparza Soto 33

Asociaciones unarias

Modelar la asociación entre Empleados y Jefes ( que también son empleados) para cada uno de estos casos:

1.- Asociación unaria uno-a-uno.

2.- Asociación unaria uno-a-muchos.

3.- Asociación unaria muchos-a-muchos.

Page 34: Unidad ii diseño de bd

M.C. Daniel Esparza Soto 34

Herramientas CASE para el modelado de datos

Page 35: Unidad ii diseño de bd

M.C. Daniel Esparza Soto 35

Visio

Page 36: Unidad ii diseño de bd

M.C. Daniel Esparza Soto 36

Data Architect by Thekompany

Page 37: Unidad ii diseño de bd

M.C. Daniel Esparza Soto 37

Data Architect by PowerDesigner

Page 38: Unidad ii diseño de bd

M.C. Daniel Esparza Soto 38

Metodología par resolver un espacio del problema y encontrar su diagrama Entidad/Relación.

1.- Encontrar las entidades normales que pudiera tener el espacio del problema y listarlas.

2.- Determinar los atributos de cada entidad.

3.- Señalar la clave principal en cada entidad.

4.- Modelar las asociaciones existentes entre las entidades

5.- Generar el modelo Físico.

6.- Generar la secuencia de comandos para crear la BD y tablas.

Page 39: Unidad ii diseño de bd

M.C. Daniel Esparza Soto 39

1.- Determinar las entidades

a

a.- Seleccionar en la barra de herramientas el botón de entidad y arrastrarlo al área de diseño.b.- Editar la entidad haciendo doble click sobre la entidad en la ventana Entity Propierties.

b

Page 40: Unidad ii diseño de bd

M.C. Daniel Esparza Soto 40

2.- Determinar los artibutos de cada entidad

a.- En la ventana Entity Property oprimir el botón Atributes para definir los artibutos de la entidad.

b.- Teclear los nombres de los atributos y determinar el tipo de datos opriminendo el botón en dicha columna.

a

b

Page 41: Unidad ii diseño de bd

M.C. Daniel Esparza Soto 41

3.- Señalar la clave principal en cada entidad.

a.- Seleccionar si el campo es la clave principal (Identifier) y si el campo obligatorio (Mandatory)

b.- Obtendremos la entidad

Terminada como lo muestra

la siguiente figura.

c

Page 42: Unidad ii diseño de bd

M.C. Daniel Esparza Soto 42

4.- Modelar las asociaciones existentes entre las entidades.

a.- Seleccionar en la barra de herramientas el botón de RelantionShip y arrastrarlo sobre las dos entidades que se se quieren asociar.

b.-Para determinar el tipo de cardinalidad entre las entidades, hacer doble click sobre la relación.

ab

Page 43: Unidad ii diseño de bd

M.C. Daniel Esparza Soto 43

4.- Modelar las asociaciones existentes entre las entidades.

c.- Escribir el nombre de la asociación.

d.- Determinar la cardinalidad de la relación : uno-a-uno, uno-a-muchos o muchos-a-muchos.

e.- Determinar si los campos que se van a compartir son obligatorios (Mandatory).

c

d

e

Page 44: Unidad ii diseño de bd

M.C. Daniel Esparza Soto 44

5.- Generar el modelo Físico

a.- Seleccionar en el Menú Dictionary la opción Generate Physical Model.

b.- Elegir el tipo de base de datos como SQL Server y el nombre del archivo físico PDM.

a

b

Page 45: Unidad ii diseño de bd

M.C. Daniel Esparza Soto 45

5.- Generar el modelo Físico

c.- En la ventana de mensajes, se mostrarán los resultados de la generación del modelo físico e indicará si la generación fue exitosa.

Page 46: Unidad ii diseño de bd

M.C. Daniel Esparza Soto 46

6.- Generar la secuencia de comandos para crear la BD y tablas.

a.- Seleccionar en el Menú Database la opción Generate Database.

b.- Elegir el nombre del archivo de la secuencia de comandos y su directorio.

c.- Seleccionar la pestaña Database para configurar la base de datos.

a

b

c

Page 47: Unidad ii diseño de bd

M.C. Daniel Esparza Soto 47

6.- Generar la secuencia de comandos para crear la BD y tablas.

d.- Seleccionar la opción Create Database para generar también el código de creación de la base de datos.

e.- Oprimir el botón Generate Script para generar la BD.

f.- Se oprime el botón Si para mostrar la secuencia de comandos que se utilizará para generar la BD y tablas.

d

e

f