Professional Documents
Culture Documents
➢ Análisis.
➢ Diseño del modelo entidad / relación.
➢ Diseño del modelo relacional.
➢ Lenguaje SQL y base de datos final.
1.1.Análisis
Debemos comenzar estudiando a fondo el mundo real que deseamos
representar en la aplicación y base de datos.
A partir de este estudio, debemos crear el UD, que es simplemente la visión
del mundo real bajo unos determinados objetivos.
1.2.Modelo entidad / relación (E/R)
El diseñador debe concebir la base de datos en un nivel superior,
abstrayéndose de cualquier consideración técnica o de implementación en
sistema, plataforma o aplicación.
Para ello puede contar con la ayuda de un modelo de datos como el E/R,
presentado por Peter P. Chen. Con él podrá centrarse en la estructura lógica
y abstracta de la información, siendo capaz de representar toda la
semántica del mundo real por medio de entidades y relaciones.
1.3.Modelo relacional
El diseñador debe transformar el modelo E/R en el modelo relacional,
teniendo muy en cuenta la teoría de la normalización. Esta es una
operación de cierta complejidad.
El modelo relacional, presentado por el Dr. E.F.Codd, fue revolucionario
puesto que consigue la independencia de las aplicaciones respecto a los
datos.
Este modelo de datos está basado en las teorías matemáticas de las
relaciones, haciendo que los datos se estructuren lógicamente en forma de
relaciones -tablas.
Presenta beneficios como:
➢ Sencillez y uniformidad: Al tener como resultado una colección de tablas,
y ser la tabla la estructura básica se da como resultado una gran
uniformidad, junto con la sencillez de los lenguajes de usuario que pueden
operar con ellas.
➢ Flexibilidad: Ofreciendo a los usuarios los datos de la forma más adecuada
a su aplicación.
➢ Independencia del interfaz de usuario: El modo en el que se almacena
los datos no influye en su manipulación lógica.
1
10 de
junio de BASE DE DATOS
2009
2. Diseño físico
El diseño físico es el proceso de producir la descripción de la implementación de la
base de datos en memoria secundaria: estructuras de almacenamiento y métodos
de acceso que garanticen un acceso eficiente a los datos.
En general, el propósito del diseño físico es describir cómo se va a implementar
físicamente el esquema lógico obtenido en la fase anterior. Concretamente, en el
modelo relacional, esto consiste en:
➢ Obtener un conjunto de relaciones (tablas) y las restricciones que se deben
cumplir sobre ellas.
➢ Determinar las estructuras de almacenamiento y los métodos de acceso que
se van a utilizar para conseguir unas prestaciones óptimas.
➢ Diseñar el modelo de seguridad del sistema.
3. Diseño conceptual
En esta etapa se debe construir un esquema de la información que se usa en la
empresa, independientemente de cualquier consideración física. A este esquema se
le denomina esquema conceptual. Al construir el esquema, los diseñadores
descubren la semántica (significado) de los datos de la empresa: encuentran
entidades, atributos y relaciones. El objetivo es comprender:
➢ La perspectiva que cada usuario tiene de los datos.
➢ La naturaleza de los datos, independientemente de su representación física.
➢ El uso de los datos a través de las áreas de aplicación.
El esquema conceptual se puede utilizar para que el diseñador transmita a la
empresa lo que ha entendido sobre la información que ésta maneja. Para ello,
ambas partes deben estar familiarizadas con la notación utilizada en el esquema. La
más popular es la notación del modelo entidad-relación, que se describirá en el
capítulo dedicado al diseño conceptual.
4. Diseño lógico
El diseño lógico es el proceso de construir un esquema de la información que utiliza
la empresa, basándose en un modelo de base de datos específico, independiente
del SGBD concreto que se vaya a utilizar y de cualquier otra consideración física.
En esta etapa, se transforma el esquema conceptual en un esquema lógico que
utilizará las estructuras de datos del modelo de base de datos en el que se basa el
SGBD que se vaya a utilizar, como puede ser el modelo relacional, el modelo de red,
el modelo jerárquico o el modelo orientado a objetos. Conforme se va desarrollando
el esquema lógico, éste se va probando y validando con los requisitos de usuario.
La normalización es una técnica que se utiliza para comprobar la validez de los
esquemas lógicos basados en el modelo relacional, ya que asegura que las
relaciones (tablas) obtenidas no tienen datos redundantes. Esta técnica se presenta
en el capítulo dedicado al diseño lógico de bases de datos.
➢ La velocidad de acceso,
➢ El tamaño de la información,
2
10 de
junio de BASE DE DATOS
2009
➢ El tipo de la información,
➢ Facilidad de acceso a la información,
➢ Facilidad para extraer la información requerida,
➢ El comportamiento del manejador de bases de datos con cada tipo de
información.
Entre las metas más importantes que se persiguen al diseñar un modelo de bases
de datos, se encuentran las siguientes que pueden observarse en esta figura.
Frecuentemente podemos generar algunos datos sobre la marcha sin tener que
almacenarlos en una tabla de una base de datos. En estos casos también tiene
sentido hacer esto desde el punto de vista del desarrollo de la aplicación.
3
10 de
junio de BASE DE DATOS
2009
Una vez identificadas todas las tablas y columnas que necesita la base de
datos, debemos determinar el tipo de dato de cada campo.
➢ Texto
➢ Números
➢ Fecha y hora
Cada uno de éstos presenta sus propias variantes, por lo que la elección del
tipo de dato correcto no sólo influye en el tipo de información que se puede
almacenar en cada campo, sino que afecta al rendimiento global de la base de
datos.
Los índices son un sistema especial que utilizan las bases de datos para
mejorar su rendimiento global. Dado que los índices hacen que las consultas se
ejecuten más rápido, podemos estar incitados a indexar todas las columnas de
nuestras tablas.
Sin embargo, lo que tenemos que saber es que el usar índices tiene un precio.
Cada vez que hacemos un INSERT, UPDATE, REPLACE, o DELETE sobre una
tabla, SQL tiene que actualizar cualquier índice en la tabla para reflejar los
cambios en los datos.
4
10 de
junio de BASE DE DATOS
2009
Cuando estamos trabajando con tablas muy grandes, suele suceder que
ocasionalmente necesitemos ejecutar algunas consultas sobre un pequeño
subconjunto de una gran cantidad de datos. En vez de ejecutar estas consultas
sobre la tabla completa y hacer que SQL encuentre cada vez los pocos registros
que necesitamos, puede ser mucho más rápido seleccionar dichos registros en
una tabla temporal y entonces ejecutar nuestras consultas sobre esta tabla.
5
10 de
junio de BASE DE DATOS
2009
8. Normalización
1. Enfoque intuitivo
Dependencia Funcional
B A
6
10 de
junio de BASE DE DATOS
2009
Tabla
EDITOR
IAL
Id_edit nombre_edit, direc_ed id_ciudad_e
it, dit
B A,B,C
Tabla: Ciudades
02 Cuenca
04 Guayaquil
07 Quito
*debe asignarse
* debe publicar
7
10 de
junio de BASE DE DATOS
2009
– Inserción
– Actualización
– Eliminación
Crear nuevas tablas y que sus columnas no clave dependan total y funcionalmente
únicamente de su clave primaria.
Está en primera forma normal cuando los valores para los campos o
columnas, en un registro o fila de una tabla, TIENEN UN SOLO VALOR.
Ej.:
8
10 de
junio de BASE DE DATOS
2009
Ej.:
Ej.:
9
10 de
junio de BASE DE DATOS
2009
PK
101 LNS zzz 02 Quito
102 Don Bosco xxx 04 Guayaquil
103 Norma yyy 07 Cuenca
Ej.:
id_TIPO tipo_l
_libro ibro
PK
001 Cienci
aF
002 Terror
003 Dram
a
10
10 de
junio de BASE DE DATOS
2009
id_edicio edic
n_libro ión
PK
001 Prim
era
002 Segu
nda
003 Prim
era
PK FK
101 LNS zzz 02
102 Don Bosco xxx 04
103 Norma yyy 07
id_ciud_ed nomb_ciud_
it edit
PK
02 Quito
04 Guayaquil
07 Cuenca
Anomalías debidas a dependencia de valores múltiples.
11
10 de
junio de BASE DE DATOS
2009
➢ Clientes
➢ Productos
➢ Proveedores
➢ Empleados
➢ Factura
Clientes
Cod_Cliente
12
10 de
junio de BASE DE DATOS
2009
Cod_Descuento
Cedula_RUC
Nombres
Apellidos
Direccion
e-mail
Telefono_Conven
sional
Telefono_Celular
Empleados
Cedula_Empleado
Nombres
Apellidos
Direccion
e-mail
Fecha_Nacimiento
Genero
Fecha_Ingreso
Sueldo_Mensual
Productos
Cod_Producto
Tipo
Marca
Modelo
Descripcion
Cantidad
Precio_Compra
Precio_Venta
Proveedores
Prov_RUC
Empresa
Encargad
o
Ciudad
Direccion
13
10 de
junio de BASE DE DATOS
2009
Factura
Factura_Num
Cod_Cliente
Subtotal
Cod_Impuesto
Descuento
Impuesto
Total
Cedula_Emplead
o
Empleados_Cargos
Cod_Cargo
Cedula_Emplead
o
Empleados_Telefonos
Cedula_Emplead
o
Telefono
Personal
Cod_Personal
Tipo_Personal
Cliente_Descuentos
Cod_Descuento
Descuento_Ocacio
nal
Descuento_Frecue
nte
Facturas_Descripcion
14
10 de
junio de BASE DE DATOS
2009
Factura_Nu
m
Cod_Product
o
Cantidad
Decripcion
Valor_Unitari
o
Valor_Total
Facturas_Impuestos
Cod_Impuest
o
Impuesto
Productos_Proveedo
res
Cod_Product
o
Prov_RUC
Proveedores_Fax
Prov_RUC
Fax
Proveedores_Telefon
os
Prov_RUC
Telefono
Tipo_Personal
Cod_Personal
Cedula_Emplead
o
15
10 de
junio de BASE DE DATOS
2009
FACTURA
CONSTRAIN TIPO DE LONGITU
T NOMBRE DATO D
NN-FK Factura_Num Numeric [5,0]
NN-FK Cod_Cliente Numeric [3,0]
NN Subtotal Money
NN-FK Cod_Impuesto Char [5]
NN Descuento Money
NN Impuesto Money
NN Total Money
NN-FK Cedula_Empleado Nchar [10]
FACTURA DESCRIPCION
CONSTRAINT NOMBRE TIPO DE DATO LONGITUD
NN-PK-UK Factura_Num Numeric [5,0]
NN-FK Cod_Producto Numeric [4,0]
NN Cantidad Numeric [3,0]
Descripcion Char [50]
NN Valor_Unitario Money
NN Valor_Total Money
FACTURA IMPUESTOS
CONSTRAINT NOMBRE TIPO DE DATO LONGITUD
NN-PK-UK Cod_Impuesto Char [5,0]
NN Impuesto Money
EMPLEADOS
CONSTRAIN TIPO DE LONGITU
T NOMBRE DATO D
NN-PK-UK Cedula_Empleado Nchar [10]
NN Nombre Char [25]
NN Apellido Char [25]
NN Direccion Char [40]
NN-UN e-mail Char [20]
NN Fecha de Nacimiento Date/Time
NN Genero Char [1]
NN Fecha_Ingreso Date/Time
NN Sueldo_Mensual Money
EMPLEADOS_TELEFONOS
CONSTRAIN TIPO DE LONGITU
T NOMBRE DATO D
NN-FK Cedula_Empleado Nchar [10]
NN Telefono Nchar [9]
16
10 de
junio de BASE DE DATOS
2009
TIPO_PERSONAL
CONSTRAIN TIPO DE LONGITU
T NOMBRE DATO D
NN-FK Cod_Personal Nchar [2]
NN-FK Cedula_Empleado Nchar [10]
TIPO_PERSONAL
CONSTRAINT NOMBRE TIPO DE DATO LONGITUD
NN-PK-UK Cod_Personal Nchar [2]
NN-UK Tipo_Personal Nchar [15]
EMPLEADOS_CARGO
CONSTRAIN TIPO DE LONGITU
T NOMBRE DATO D
NN-FK Cod_Cargo Char [20]
NN-FK Cedula_Empleado Nchar [10]
EMPLEADOS_CARGO
CONSTRAINT NOMBRE TIPO DE DATO LONGITUD
NN-PK-UK Cod_Cargo Char [20]
NN-UK Cargo Nchar [20]
CLIENTES
CONSTRAIN TIPO DE LONGITU
T NOMBRE DATO D
NN-PK-UK Cod_Cliente Numeric [3,0]
NN-FK Cod_Descuento Nchar [2]
NN-UK Cedula/RUC Nchar [13]
NN Nombre Char [25]
NN Apellido Char [25]
NN Direccion Char [40]
e-mail Char [30]
Telefono_Convencional Numeric [9,0]
Telefono_Celular Numeric [9,0]
CLIENTES_DESCUENTOS
CONSTRAINT NOMBRE TIPO DE DATO LONGITUD
NN-PK-UK Cod_Descuento Nchar [2]
NN Descuento Money
17
10 de
junio de BASE DE DATOS
2009
PRODUCTOS
CONSTRAINT NOMBRE TIPO DE DATO LONGITUD
NN-PK-UK Cod_Producto Numeric [4,0]
NN Tipo Char [20]
NN Marca Char [15]
NN Modelo Char [20]
NN Descripcion Char [50]
NN Cantidad Numeric [3,0]
NN Precio_Compra Money
NN Precio_Venta Money
PRODUCTOS_PROVEEDORES
CONSTRAINT NOMBRE TIPO DE DATO LONGITUD
NN-FK Cod_Producto Numeric [4,0]
NN-FK Prov_RUC Nchar [13]
PROVEEDORES
CONSTRAINT NOMBRE TIPO DE DATO LONGITUD
NN-PK-UK Prov_RUC Nchar [4,0]
NN Empresa Char [13]
NN Encargado Char [15]
NN Ciudad Char [20]
NN Direccion Char [50]
PROVEEDORES
CONSTRAINT NOMBRE TIPO DE DATO LONGITUD
NN-FK Prov_RUC Nchar [13]
NN Fax Nchar [9]
PROVEEDORES
CONSTRAINT NOMBRE TIPO DE DATO LONGITUD
NN-FK Prov_RUC Nchar [13]
NN Telefono Nchar [13]
9.5. Modelo Relacional: El modelo relacional trata del esquema o diagrama
realizado en un programa diseñador o modelador de base de datos el cual
nos mostrara las tablas con sus principales campos y relaciones,
mostrándonos como la base de datos quedara finalmente al momento de
trasladarlo a un sistema gestor de base de datos.
18
10 de
junio de BASE DE DATOS
2009
19