Sei sulla pagina 1di 85

DISEÑO DE BASES DE

DATOS

ANALISTA DESARROLLADOR DE APLICACION DE SOFTWARE.


MODULO 5 DISEÑO DE BASES DE DATOS

APRENDIZAJES ESPERADOS

1. Gestiona el diseño de la solución de la base de datos de acuerdo a


estándares definidos por la industria y/o empresa.
2. Diseña la solución de la base de datos de acuerdo a los principios de
diseño de bases de datos.
DEFINICIONES

DATOS

En informática se conoce como dato a cualquier elemento


informativo que tenga relevancia para un usuario. Desde su
nacimiento, la informática se ha encargado de proporcionar
herramientas que faciliten la manipulación de los datos.
DEFINICIONES

INFORMACION

Información consiste en un conjunto de datos que poseen un


significado, de modo tal que reducen la incertidumbre y
aumentan el conocimiento de quien se acerca a
contemplarlos. Estos datos se encuentran disponibles para su
uso inmediato y sirven para clarificar incertidumbres sobre
determinados temas.
DEFINICIONES

SISTEMA DE INFORMACION

El termino Sistemas de Información (SI), ha sido empleado en el


tiempo en una multitud de campos y disciplinas, y se le ha
atribuido algunos de los siguientes significados: En la teoría
general de sistemas, un SI es un sistema, automático o manual,
que comprende personas, maquinas y/o métodos
organizados para agrupar, procesar, transmitir y diseminar
datos que representan información para el usuario
Murdick, R. Sistemas de Información. Prentice Hall Latinoamericana: México.
DEFINICIONES

SGBD (Sistema de Gestión de Base de Datos)

Definimos un Sistema Gestor de Bases de Datos o SGBD,


también llamado DBMS (Data Base Managment System) como
una colección de datos relacionas entre sí, estructurados y
organizados, y un conjunto de programas que acceden y
gestionan esos datos. La colección de esos datos se
denomina Base de Datos o BD, (DB Data Base).
DEFINICIONES
SGBD (Sistema de Gestión de Base de Datos)

Como objetivos principales de los SGBD constan los siguientes:


Independencia de datos: Los programas de aplicación deben
verse afectados lo menos posible por cambios efectuados en
datos que no usan.
Integridad de los datos: La información almacenada en la BD
debe cumplir ciertos requisitos de calidad, para ello hace
falta, en el momento de introducirse los valores de los datos,
que éstos se almacenen debidamente, y que posteriormente
no se deterioren.
DEFINICIONES
SGBD (Sistema de Gestión de Base de Datos)

Seguridad de los datos: A la información almacenada en la BD


sólo pueden acceder las personas autorizadas y de la forma
autorizada.
Es entonces deber del SGBD ofrecer los servicios típicos:
- Creación y definición de la base de datos.
- Manipulación de los datos.

- Acceso a los datos.


- Mantener la integridad y consistencia de los datos.

- Mecanismos de copias de respaldo y de recuperación.


DEFINICIONES
CUBO OLAP

OLAP es el acrónimo en inglés de procesamiento analítico en


línea (On-Line Analytical Processing).
Es una solución utilizada en el campo de la llamada
inteligencia empresarial (o Business Intelligence) cuyo objetivo
es agilizar la consulta de grandes cantidades de datos.
Para ello utiliza estructuras multidimensionales (o cubos OLAP)
que contienen datos resumidos de grandes bases de datos o
Sistemas Transaccionales (OLTP). Se usa en informes de
negocios de ventas, marketing, informes de dirección, minería
de datos y áreas similares.
DEFINICIONES

DATAWAREHOUSE

El Data Warehouse es una herramienta tecnológica que permite


mejorar la gestión de la información almacenada en las grandes
bases de datos empresariales intentando resolver los problemas
clásicos con los que se enfrentan los sistemas de información
tradicionales como costos, redundancia de datos, dispersión de la
información, escasa visión global corporativa y falta de fiabilidad.
Una adecuada implantación de este tipo de herramienta puede
redundar en mejoras de desempeño empresarial, materializadas en
considerables reducciones de costos, mejor comportamiento de la
empresa y fomentar procesos de cambio en la organización.
DEFINICIONES

FUNCIONES DBMS

Abstracción de los datos. Los DBMS ahorran a los usuarios detalles


acerca del almacenamiento físico de los datos. Da lo mismo si una
base de datos ocupa uno o cientos de archivos, este hecho se hace
transparente al usuario. Así, se definen varios niveles de abstracción.
Independencia. Consiste en la capacidad de modificar el esquema
(físico o lógico) de una base de datos sin tener que realizar cambios
en las aplicaciones que se sirven de ella.
Consistencia. En aquellos casos en los que no se ha logrado eliminar
la redundancia, será necesario vigilar que aquellos datos que
aparecen repetidos se actualice de forma coherente, es decir, que
todos los datos repetidos se actualicen de forma simultánea.
DEFINICIONES

FUNCIONES DBMS

Seguridad. Los datos almacenados en una base de datos pueden


llegar a tener un gran valor. Los DBMS deben garantizar que estos
datos se encuentren seguros frente a usuarios malintencionados, que
intenten leer datos privilegiados; frente a ataques que deseen
manipular o destruir los datos; o simplemente ante las torpezas de
algún usuario autorizado pero despistado. Normalmente, los DBMS
disponen de un complejo sistema de permisos a usuarios y grupos de
usuarios, que permiten otorgar diversas categorías de permisos.
DEFINICIONES

FUNCIONES DBMS

Integridad. Adoptar las medidas necesarias para garantizar la validez


de los datos almacenados. Es decir, se trata de proteger los datos
ante fallos de hardware, datos introducidos por usuarios descuidados,
o cualquier otra circunstancia capaz de corromper los datos
almacenados. Los DBMS proveen mecanismos para garantizar la
recuperación de la base de datos hasta un estado consistente
conocido en forma automática.
Respaldo. Los DBMS deben proporcionar una forma eficiente de
realizar copias de respaldo de los datos almacenados y de restaurar
a partir de estas copias los datos que se hayan podido perder.
DEFINICIONES

FUNCIONES DBMS

Control de la concurrencia. En la mayoría de entornos lo más habitual


es que sean muchas las personas que acceden a una base de datos,
y es también frecuente que simultánea. Así pues, un DBMS debe
controlar este acceso concurrente a la DB, que podría derivar en
inconsistencias.
Manejo de Transacciones. Una Transacción es un programa que se
ejecuta como una sola operación. Esto quiere decir que el estado
luego de una ejecución en la que se produce una falla es el mismo
que se obtendría si el programa no se hubiera ejecutado. Los DBMS
proveen mecanismos para programar las modificaciones de los datos
de una forma mucho más simple que si no se dispusiera de ellos.
DEFINICIONES

FUNCIONES DBMS

Tiempo de respuesta. Lógicamente, es deseable minimizar el tiempo


que el DBMS tarda en darnos la información solicitada y en
almacenar los cambios realizados.
DEFINICIONES

El DBA es responsable primordialmente de:

- Administrar la estructura de la Base de Datos.


- Administrar la actividad de los datos.
- Administrar el DBMS.
- Establecer el Diccionario de Datos.
- Asegurar la confiabilidad de la Base de Datos.
- Confirmar la seguridad de la Base de Datos.
DEFINICIONES

Desarrolladores: Son aquellos profesionales en informática que


interactúan con el sistema a través del DML(Lenguaje de
Manipulación de Datos), los cuales se encuentran en un lenguaje de
programación. Es el encargado de escribir programas de aplicación
que usen Bases de Datos.

Usuario Final: Accede a la base de datos desde un equipo en el cual


puede utilizar lenguaje de consulta generado como parte del sistema
o acude a un programa de aplicación suministrado por un
programador.
DEFINICIONES

Componentes de un DBMS.

Gestor de archivos. Gestiona la asignación de espacio en la memoria


del disco y de las estructuras de datos usadas para representar datos.

Manejador de base de datos. Sirve de interfaz entre los datos y los


programas de aplicación.

Procesador de consultas. Traduce las proposiciones en lenguajes de


consulta a instrucciones de bajo nivel. Además convierte la solicitud
del usuario en una forma más eficiente.
DEFINICIONES
Componentes de un DBMS.

Compilador de DDL. Convierte las proposiciones DDL en un conjunto


de tablas que contienen metadatos, estas se almacenan en el
diccionario de datos.
Archivo de datos. En él se encuentran almacenados físicamente los
datos de una organización.
Diccionario de datos. Contiene la información referente a la
estructura de la base de datos.
Índices. Permiten un rápido acceso a registros que contienen valores
específicos.
DEFINICIONES
Redundancia de datos se produce en sistemas de base de datos que tienen
un campo que se repite en dos o más tablas. Por ejemplo, cuando los datos
del cliente son duplicados y atados con cada producto compraron,
redundancia de datos es una fuente conocida de inconsistencia puesto que
el cliente puede aparecer con diferentes valores para un determinado
atributo. Redundancia de datos conduce a la corrupción y las anomalías de
datos y generalmente deben evitarse por diseño. Normalización de bases de
datos evita la redundancia y hace el mejor uso posible de almacenamiento
de información. Uso apropiado de llaves foráneas puede reducir al mínimo la
redundancia de datos y posibilidad de anomalías destructivas. Sin embargo,
las preocupaciones de la eficiencia y conveniencia a veces pueden resultar
en diseño de datos redundantes a pesar del riesgo de corromper los datos
DEFINICIONES
Integridad : La integridad en una base de datos se refiere a la corrección y
exactitud de la información contenida. Una base de datos determinada
podría estar sujeta a cualquier cantidad de restricciones de integridad (en
general) de una complejidad arbitraria. En la mayoría de los sistemas actuales,
la verificación de la integridad se realiza mediante códigos de procedimientos
escritos por los usuarios.

Consistencia : La propiedad de Consistencia se asegura que cualquier


transacción llevará a la base de datos de un estado válido a otro estado
válido. Cualquier dato que se escriba en la base de datos tiene que ser válido
de acuerdo a todas las reglas definidas, incluyendo (pero no limitado a) los
constraints, los cascades, los triggers, y cualquier combinación de estos.
DEFINICIONES
Una base de datos tiene un concepto de Consistencia si se encuentra en un
estado coherente en la información o datos que contiene y que relaciona, en
el cual la información cumple las necesidades o expectativas de quien la
requiera. El término en referencia es un complemento de la “Redundancia ”
ya que para lograr la consistencia se debe lograr eliminar o controlar las
redundancias de datos existentes, lo que traerá como resultado una baja tasa
en el riesgo de inconsistencias.
DEFINICIONES
Una base de datos tiene un concepto de Consistencia si se encuentra en un
estado coherente en la información o datos que contiene y que relaciona, en
el cual la información cumple las necesidades o expectativas de quien la
requiera. El término en referencia es un complemento de la “Redundancia ”
ya que para lograr la consistencia se debe lograr eliminar o controlar las
redundancias de datos existentes, lo que traerá como resultado una baja tasa
en el riesgo de inconsistencias.
MODELOS DE DATOS
Modelo Entidad-Relación.
El modelo de datos entidad-relación (E-R) está basado en una percepción del
mundo real que consta de una colección de objetos básicos, llamados
entidades, y de relaciones entre estos objetos. Una entidad es una «cosa» u
«objeto» en el mundo real que es distinguible de otros objetos. Por ejemplo,
cada persona es una entidad, y las cuentas bancarias pueden ser
consideradas entidades. Las entidades se describen en una base de datos
mediante un conjunto de atributos. Por ejemplo, los atributos número-cuenta y
saldo describen una cuenta particular de un banco y pueden ser atributos del
conjunto de entidades cuenta. Análogamente, los atributos nombre-cliente,
calle-cliente y ciudad-cliente pueden describir una entidad cliente.
MODELOS DE DATOS
Modelo Entidad-Relación.
Una relación es una asociación entre varias entidades. Por ejemplo, una
relación impositor asocia un cliente con cada cuenta que tiene. El conjunto
de todas las entidades del mismo tipo, y el conjunto de todas las relaciones
del mismo tipo, se denominan respectivamente conjunto de entidades y
conjunto de relaciones.
MODELOS DE DATOS
Modelo Entidad-Relación.
La estructura lógica general de una base de datos se puede expresar
gráficamente mediante un diagrama E-R, que consta de los siguientes
componentes:
Rectángulos, que representan conjuntos de entidades.
Elipses, que representan atributos.
Rombos, que representan relaciones entre conjuntos de entidades.
Líneas, que unen los atributos con los conjuntos de entidades y los conjuntos
de entidades con las relaciones.
MODELOS DE DATOS
Modelo Entidad-Relación.
MODELOS DE DATOS
Modelo jerárquico.
El sistema jerárquico más comúnmente conocido es el sistema IMS de IBM. Esta
base de datos tiene como objetivo establecer una jerarquía de fichas, de
manera que cada ficha puede contener a sus vez listas de otras fichas, y así
sucesivamente. P.ej., una ficha de clientes puede contener una lista de fichas
de facturas, cada una de las cuales puede contener a su vez una lista de
fichas de líneas de detalle que describen los servicios facturados.
Una base de datos jerárquica está compuesta por una secuencia de bases
de datos físicas, de manera que cada base de datos física se compone de
todas las ocurrencias de un tipo de registro o ficha determinada.
MODELOS DE DATOS
Modelo jerárquico.
Una ocurrencia de registro es una jerarquía de ocurrencias de segmento.
Cada ocurrencia de segmento está formada por un conjunto de ocurrencias
o instancias de los campos que componen el segmento. P.ej., en la figura
siguiente tenemos una ocurrencia del tipo de registro Curso, de manera que
como cabeza principal tenemos una instancia del segmento curso, de la cual
dependen una o varias instancias de los segmentos Requisito y Oferta; a su
vez, de Oferta dependen otros que son Profesor y Estudiante.
MODELOS DE DATOS
Modelo jerárquico.

Ejemplo de tipo de registro.


Los tipos de segmento son CURSO, REQUISITO,OFERTA, PROFESOR, y ESTUDIANTE.
CURSO es el tipo de segmento raíz.
MODELOS DE DATOS
Modelo en red.
Podemos considerar al modelo de bases de datos en red como de una potencia
intermedia entre el jerárquico y el relacional que estudiaremos más adelante. Su
estructura es parecida a la jerárquica aunque bastante más compleja, con lo que se
consiguen evitar, al menos en parte, los problemas de aquél.
Los conceptos fundamentales que debe conocer el administrador para definir el
esquema de una base de datos jerárquica, son los siguientes:
- Registro: Viene a ser como cada una de las fichas almacenadas en un fichero
convencional.
- Campos o elementos de datos. Son cada uno de los apartados de que se compone
una ficha.
- Conjunto: Es el concepto que permite relacionar entre sí tipos de registro distintos.
MODELOS DE DATOS
Modelo en red.
MODELOS DE DATOS
Modelo en red.
MODELOS DE DATOS
Modelo orientado a objetos.
Actualmente, la creación de programas más grandes y complejos, ha hecho
avanzar los métodos de programación hacia nuevas formas que permiten el
trabajo en equipo de una forma más eficaz y en la que se disminuyen los
problemas de coordinación. Uno de estos métodos consiste en la
programación orientada a objetos (POO), que trata los problemas desde un
punto de vista realista, y modelando cada uno de ellos como si se tratase de
un conjunto de elementos u objetos que interrelacionan entre sí para
solucionar el problema.
MODELOS DE DATOS
Modelo orientado a objetos.

Esquema de clases para almacenar información sobre coches.


MODELO ENTIDAD RELACION
El modelo de datos de entidad-relación (ER) se basa en una percepción de un
mundo real que consiste en un conjunto de objetos básicos llamados entidades y
de relaciones entre estos objetos. Se desarrolló para facilitar el diseño de bases
de datos permitiendo especificar un esquema empresarial. Este esquema
representa la estructura lógica general de la base de datos.

Entidades y conjunto de entidades Una entidad es un objeto que existe y puede


distinguirse de otros objetos. La entidad puede ser concreta, por ejemplo: una
persona o un libro; o abstracta, por ejemplo un día festivo o un concepto. Un
conjunto de entidad es un grupo de entidades del mismo tipo.

El conjunto de todas las personas que tienen una cuenta en el banco, por
ejemplo, puede definirse como el conjunto de entidades clientes.
MODELO ENTIDAD RELACION

Una entidad está representada por un conjunto de atributos. Los posibles


atributos del conjunto de entidades clientes son nombre, documento, calle y
ciudad. Para cada atributo existe un rango de valores permitidos, llamado
dominio del atributo. El dominio del atributo nombre podría ser el conjunto de
todas los nombres de personas de cierta longitud.
MODELO ENTIDAD RELACION

TUPLA

Una tupla se define como una función finita que asocia unívocamente los nombres de los
atributos de una relación con los valores de una instanciación de la misma. En términos
simplistas, es una fila de una tabla relacional.
MODELO ENTIDAD RELACION

Relaciones
Asociación entre entidades, sin existencia propia en el mundo real que estamos
modelando, pero necesaria para reflejar las interacciones existentes entre
entidades. Las relaciones pueden ser de tres tipos:
Relaciones 1-1.- Las entidades que intervienen en la relación se asocian una a
una (Ej: la entidad HOMBRE, la entidad MUJER y entre ellos la relación
MATRIMONIO).
Relaciones 1-n.- Una ocurrencia de una entidad está asociada con muchas (n)
de otra (Ej: la entidad EMPERSA, la entidad TRABAJADOR y entre ellos la relación
TRABAJAR-EN).
Relaciones n-n.-Cada ocurrencia, en cualquiera de las dos entidades de la
relación, puede estar asociada con muchas (n) de la otra y viceversa (Ej: la
entidad ALUMNO, la entidad EMPRESA y entre ellos la relación MATRÍCULA).
MODELO ENTIDAD RELACION

Representación gráfica de Entidades y Relaciones


MODELO ENTIDAD RELACION

Dominio
Se define dominio como un conjunto de valores que puede tomar un determinado atributo
dentro de una entidad. Por ejemplo:
MODELO ENTIDAD RELACION

TIPOS DE LLAVES

Clave Candidata (Candidate Key): conjunto de atributos que identifican unívoca


y mínimamente cada tupla de la relación

• Una clave debe ser única


• Pueden estar formadas por un solo atributo o por la Bases de Datos
• Pueden estar formadas por un solo atributo o por la concatenación de varios
atributos
• Para poder definirlas es necesario conocer las reglas bajo las cuales operan los
datos en la relación
MODELO ENTIDAD RELACION

TIPOS DE LLAVES

Una relación puede poseer más de una llave.

– Súper Llave : Atributo o conjunto de atributos que identifica de manera única una
relación
– Llaves candidatas: llaves que posee una relación, número mínimo de atributos
– Llave primaria: llave escogida de entre las llaves candidatas para trabajar con ella en
la relación. Se selecciona buscando que posea el menor número de atributos, y que no
pueda tener valores nulos
– Llaves secundarias: llaves candidatas que no fueron seleccionadas como llave
primaria
MODELO ENTIDAD RELACION
Reglas de Codd para considerar un DBMS relacional.

- Toda la información debe estar almacenada en tablas.


- Toda la información debe poder ser consultada con solo utilizar un nombre de tabla,
un nombre de columna y un valor de llave primaria.
- Los valores nulos deben ser manejados de manera sistemática.
- Debe soportar un catálogo (término relacional para un diccionario de datos) en línea y
dinámico.
- Debe tener lenguajes que manejen la definición de datos, la definición de vistas, la
manipulación de datos, las reglas de integridad, y transacciones.
- Debe ser capaz de actualizar cualquier ‘vista’ de datos teóricamente actualizable, que
se pueda crear.
- Los comandos de Altas, Cambios y Bajas deben trabajar en tablas completas.
- Los cambios en los métodos de almacenamiento físico no deben afectar la ejecución
de las aplicaciones.
MODELO ENTIDAD RELACION
Reglas de Codd para considerar un DBMS relacional.

- Los cambios al esquema no deben afectar a las aplicaciones que no utilicen la porción
de la BD afectada por dichos cambios no utilicen la porción de la BD afectada por
dichos cambios.
- Debe soportar la definición de reglas de integridad. Las reglas deberán estar definidas
en el catálogo. El SMBD deberá comprobar que estas reglas se cumplan.
- Si la BD es distribuida, deberá aparecer a los usuarios como si estuviera centralizada.
- NO debe haber forma de violar las reglas de integridad especificadas en el catálogo.
MODELO ENTIDAD RELACION
Algebra Relacional

Conjunto de operaciones usadas para manipular relaciones. Estas operaciones


toman relaciones como operandos y regresan relaciones que a su vez pueden
ser manipuladas.

Los operadores:
- Unión, diferencia, intersección. Con el significado usual en conjuntos, aplicado a
relaciones.
- Selección. Selecciona ciertas tuplas de una relación.
- Proyección. Selecciona ciertas columnas de una relación.
- Productos y joins. Composición de relaciones.
- Renombrado de relaciones y atributos.
MODELO ENTIDAD RELACION
Calculo Relacional de tuplas

El Calculo Relacional (CR) está basado en una rama de la lógica matemática,


llamada Lógica de Predicados, o Cálculo de predicados de primer orden. Es por
ello, que al principio haremos una breve exposición de los fundamentos de dicha
lógica de predicados.

Caracteristicas:
- Lenguaje de Consulta para bases de datos relacionales.
- Se utiliza para manipulación de datos a partir de las relaciones
- Basado en el Cálculo de Predicados de Primer Orden (refleja las relaciones
que existen entre los elementos de un dominio)
- Variantes: de tuplas y de dominio.
LENGUAJES COMERCIALES
QBE

(Query By Example - Consulta por ejemplo). Es un método de consulta en base


de datos relacionales. Fue ideado por Moshé M. Zloof en el IBM Research a
mediados de los 70, en paralelo al desarrollo de SQL.

Fue el primer lenguaje de consulta gráfico, que utiliza tablas visuales donde el
usuario puede insertar comandos, elementos de ejemplos y condiciones.

QBE está basado en la idea de CRD (Calculo Relacional de Dominio), que es un


cálculo que fue introducido por Michel Lacroix y Alain Pirotte como un lenguaje
de consultas declarativo de base de datos para el modelo relacional.
LENGUAJES COMERCIALES
QUEL

Es un lenguaje de consulta de base de datos. Basado en el calculo relacional de


tuplas. Tiene algunas similitudes con SQL. Este fue creado como parte del SGBD
INGRES de la universidad Berkeley
LENGUAJES COMERCIALES
SQL

SQL usa una combinación de álgebra relacional y construcciones del cálculo


relacional. Aunque el lenguaje SQL se considere un lenguaje de consultas,
contiene muchas otras capacidades además de la consulta en bases de datos.
Incluye características para definir la estructura de los datos, para la
modificación de los datos en la base de datos y para la especificación de
restricciones de seguridad.
LENGUAJES COMERCIALES
SQL

SQL usa una combinación de álgebra relacional y construcciones del cálculo


relacional. Aunque el lenguaje SQL se considere un lenguaje de consultas,
contiene muchas otras capacidades además de la consulta en bases de datos.
Incluye características para definir la estructura de los datos, para la
modificación de los datos en la base de datos y para la especificación de
restricciones de seguridad.
DISEÑO DE BASE DE DATOS RELACIONALES
En general, el objetivo del diseño de las bases de datos relacionales es la
generación de un conjunto de esquemas relacionales que nos permita
almacenar la información sin redundancias innecesarias, pero que también nos
permita recuperar fácilmente esa información. Un enfoque es el diseño de
esquemas que se hallen en una forma normal adecuada. Para determinar si el
esquema de una relación se halla en una de las formas normales deseables hace
falta información adicional sobre la empresa real que se está modelando con la
base de datos.
DISEÑO DE BASE DE DATOS RELACIONALES
Lo primero que se debe tener muy bien documentados son tus requerimientos. Se
debe saber muy bien cuál es la necesidad que se va a resolver/solucionar. Con
los requerimientos se podrá ir diseñando cada uno de los componentes de su
aplicación. Generalmente, los requerimientos bien documentados son todo lo
que se necesita para comenzar a diseñar la bases de datos. Sin embargo, se
sugiere tener un prototipo que nos permita entender mejor el flujo de trabajo de
la aplicación, ya que con este prototipo se podrá entender procesos que
pueden ser difíciles de plasmar o de imaginar. Además, los prototipos pueden dar
más información de lo que los requerimientos ofrecen.
DISEÑO DE BASE DE DATOS RELACIONALES
Diseño Conceptual

Durante esta fase, se plasmaran nuestras entidades y las relaciones que existirán
entre ellas. Por lo general se hace a mano, es mucho más sencillo. Cada entidad
se identificará con un rectángulo y dentro de este se colocará su nombre. A
cada entidad se colocarán sus respectivos atributos y se resaltara el atributo
principal, aquél atributo que identificará cada registro de manera única. Y por
último se crearan las relaciones que existen entre dichas entidades.
DISEÑO DE BASE DE DATOS RELACIONALES
Diseño Lógico

Aquí podemos tabular el diseño conceptual. Este proceso es más utilizado que el
anterior, ya que cuando se lleva bastante tiempo trabajando en bases de datos,
el proceso tabular es más rápido de realizar y vemos resultados más
rápidamente. En esta fase, se debe pensar en cómo normalizar nuestras tablas
para evitar duplicidad de información y para ahorrar espacio de
almacenamiento. Esto último (ahorrar espacio) ya no es tan importante como
hace algunos años, incluso hoy en día se habla de inteligencia de negocios,
minería de datos, entre otros términos que exigen eliminar la normalización. Para
este proceso, las herramientas de modelado ayudan bastante a ver las
relaciones de las tablas.
DISEÑO DE BASE DE DATOS RELACIONALES
Diseño Lógico
DISEÑO DE BASE DE DATOS RELACIONALES
Diseño físico

En esta última fase ya se debe revisar con detalle los tipos de datos que se
utilizaran, sus dominios (qué valores va a permitir), cuales índices se deben crear
para optimizar las consultas, entre otros. Aquí ya se escribe nuestro SQL para
plasmar todo nuestro diseño en el motor de bases de datos elegido.
DISEÑO DE BASE DE DATOS RELACIONALES
Normalización de la base de datos

La normalización de la base de datos es el proceso de organizar los datos


siguiendo una serie de buenas prácticas y bases teóricas que desembocan en
estructuras de datos saneadas. Esta normalización afecta, fundamentalmente, a
las tablas y relaciones que las unen, así como restricciones y campos que los
forman, para proteger la integridad de la información que almacenan entre
otras ventajas. Esta integridad afecta, obviamente, al dato único, eliminando
redundancias y dependencias innecesarias o, por el contrario, aportando las
necesarias.

La normalización, ayudando a conseguir el dato único, tiende a eliminar la


información redundante en las bases de datos que cumplen estas normas. Si el
negocio exige un cambio en un dato, éste se propagará o afectará a otras
tablas solo donde sea necesario.
DISEÑO DE BASE DE DATOS RELACIONALES
Normalización de la base de datos

Primera forma normal. En esta forma normal se debe disponer de una tabla
independiente para cada conjunto de datos relacionados, identificando cada
conjunto de datos relacionados con una clave principal. Además, los datos de
significado similar no deben estar en una misma tabla. Por ejemplo, los stocks de
un artículo, si tenemos multialmacén, no deben ser varios campos en una misma
tabla del tipo “Stock almacen1”, “Stock almacen2”, etc… sino que debería
estructurarse en una o más tablas donde se registre, por cada almacén y
artículo, el stock.
DISEÑO DE BASE DE DATOS RELACIONALES
Normalización de la base de datos

Segunda forma normal. Si tenemos información que se aplica a múltiples registros,


ésta debe estar organizada en entidades separadas y unida con una clave
ajena. Por ejemplo, supongamos que tenemos la información de un cliente que
se utilizará en múltiples operaciones (venta, llamada, devolución, etc…); la
información del cliente se organiza de forma independiente y única pero se
relaciona con el resto de operaciones con una clave ajena.
DISEÑO DE BASE DE DATOS RELACIONALES
Normalización de la base de datos

Tercera forma normal. Para cumplir esta forma normal debemos diseñar los datos
de manera que en un mismo registro de una tabla, todos sus campos dependen
de la clave primaria. Por ejemplo, en un registro de una venta, no debería
almacenarse el stock del artículo ya que no tiene una dependencia directa con
la venta. También se verían afectados campos calculados, como el stock de un
producto concreto. Puede ser interesante aplicar la tercera forma normal sólo a
los datos que cambian con frecuencia ya que, de lo contrario, se podría ver
afectado el rendimiento de la base de datos al tener que desglosar, en
numerosas tablas de menor tamaño, toda la información.
DISEÑO DE BASE DE DATOS RELACIONALES
Normalización de la base de datos

La cuarta forma normal (4NF) es una forma normal usada en la normalización de


bases de datos. La 4NF se asegura de que las dependencias multivaluadas
independientes estén correcta y eficientemente representadas en un diseño de
base de datos.

Una tabla está en 4NF si y solo si esta en Tercera forma normal y no posee
dependencias multivaluadas no triviales. La definición de la 4NF confía en la
noción de una dependencia multivaluada. Una tabla con una dependencia
multivaluada es una donde la existencia de dos o más relaciones
independientes muchos a muchos causa redundancia; y es esta redundancia la
que es suprimida por la cuarta forma normal.
DISEÑO DE BASE DE DATOS RELACIONALES
Diccionario de Datos:

Los sistemas actuales son grandes y complejos, difíciles de controlar y manejar;


para facilitar estas tareas se utilizan los denominadas "Diccionarios de Datos" los
cuales presentan las siguientes ventajas:

- Un diccionario de datos es un conjunto de metadatos que contienen las


características lógicas y puntuales de los datos que se van a utilizar en el
sistema, incluyendo descripción, alias, contenido y organización.

- Los diccionarios se desarrollan durante el análisis de flujo de datos y ayudan a


los analistas que participan en la determinación de los requerimientos del
sistema, evitando así las ambigüedades, su contenido también se emplea
durante el diseño del proyecto. Los elementos más importantes son los flujos
de datos, almacenes de datos y procesos. El diccionario de datos guarda los
detalles y descripción de todos estos elementos.
DISEÑO DE BASE DE DATOS RELACIONALES
Diccionario de Datos:

Los diccionarios de datos son utilizados porque permiten:

- Manejar los detalles en sistemas muy grandes, ya que tienen enormes


cantidades de datos, aún en los sistemas más chicos hay gran cantidad de
datos.
- Facilitar el detalle de las características de las bases de datos relacionadas o
del sistema en general y si son necesarias nuevas características.
- Determinar dónde efectuar cambios en el sistema.
- Localizar errores, omisiones en el sistema y detectar dificultades.
- Aplicar un significado y terminología común para todos los elementos del
sistema. Los diccionarios de datos proporcionan asistencia para asegurar
significados comunes para los elementos y actividades del sistema.
HERRAMIENTAS CASE
Se puede definir a las Herramientas CASE como un conjunto de programas y ayudas que
dan asistencia a los analistas, ingenieros de software y desarrolladores, durante todos los
pasos del Ciclo de Vida de desarrollo de un Software. Como es sabido, los estados en el
Ciclo de Vida de desarrollo de un Software son: Investigación Preliminar, Análisis, Diseño,
Implementación e Instalación.

CASE se define también como:

Conjunto de métodos, utilidades y técnicas que facilitan la automatización del ciclo de vida
del desarrollo de sistemas de información, completamente o en alguna de sus fases.

La sigla genérica para una serie de programas y una filosofía de desarrollo de software que
ayuda a automatizar el ciclo de vida de desarrollo de los sistemas.

Una innovación en la organización, un concepto avanzado en la evolución de tecnología


con un potencial efecto profundo en la organización. Se puede ver al CASE como la unión
de las herramientas automáticas de software y las metodologías de desarrollo de software
formales.
Iniciación al lenguaje estructurado de consultas (SQL)

El lenguaje estructurado de consultas, más comúnmente llamado SQL, lo conforman una


serie de comandos, cláusulas y funciones que permiten realizar cualquier operación sobre la
información almacenada en la base de datos.

SQL no es exactamente un lenguaje de programación pero lleva implícita la complejidad de


estas herramientas.
Componentes del SQL

El lenguaje SQL está compuesto por comandos, cláusulas, operadores


y funciones de agregado. Estos elementos se combinan en las instrucciones para
crear, actualizar y manipular las bases de datos.

Existen dos tipos de comandos SQL:

• Los DLL que permiten crear y definir nuevas bases de datos, campos e índices.

• Los DML que permiten generar consultas para ordenar, filtrar y extraer datos
de la base de datos.
Comandos DLL

CREATE Utilizado para crear nuevas tablas, campos e índices

DROP Empleado para eliminar tablas e índices

ALTER Utilizado para modificar las tablas agregando campos o cambiando la definición
de los campos
Comandos DML

SELECT Utilizado para consultar registros de la base de datos que satisfagan un criterio
determinado
INSERT Utilizado para cargar lotes de datos en la base de datos en una única
operación.
UPDATE Utilizado para modificar los valores de los campos y registros especificados

DELETE Utilizado para eliminar registros de una tabla de una base de datos
Cláusulas

Las cláusulas son condiciones de modificación utilizadas para


definir los datos que desea seleccionar o manipular.

FROM Utilizada para especificar la tabla de la cual se van a seleccionar los registros

WHERE Utilizada para especificar las condiciones que deben reunir los registros que
se van a seleccionar

GROUP BY Utilizada para separar los registros seleccionados en grupos específicos

HAVING Utilizada para expresar la condición que debe satisfacer cada grupo

ORDERBY Utilizada para ordenar los registros seleccionados de acuerdo con un orden
específico
Operadores Lógicos

AND Es el “y” lógico. Evalúa dos condiciones y devuelve un valor de verdad sólo si
ambas son ciertas.

OR Es el “o” lógico. Evalúa dos condiciones y devuelve un valor de verdad si alguna


de las dos es cierta.

NOT Negación lógica. Devuelve el valor contrario de la expresión.


Operadores de Comparación

< Menor que

> Mayor que

<> Distinto de

<= Menor ó Igual que

>= Mayor ó Igual que

BETWEEN Utilizado para especificar un intervalo de valores.

LIKE Utilizado en la comparación de un modelo

In Utilizado para especificar registros de una base de datos


Funciones de Agregado

Las funciones de agregado se usan dentro de una cláusula SELECT


en grupos de registros para devolver un único valor que se aplica a un
grupo de registros.

AVG Utilizada para calcular el promedio de los valores de un campo determinado

COUNT Utilizada para devolver el número de registros de la selección

SUM Utilizada para devolver la suma de todos los valores de un campo determinado

MAX Utilizada para devolver el valor más alto de un campo especificado

MIN Utilizada para devolver el valor más bajo de un campo especificado


Consultas de Selección

Las consultas de selección se utilizan para indicar al motor de datos que devuelva
información de las bases de datos, esta información es devuelta en forma de conjunto de
registros que se pueden almacenar en un objeto recordset.

Este conjunto de registros es modificable.


Consultas básicas

La sintaxis básica de una consulta de selección es la siguiente:

En donde campos es la lista de campos que se deseen recuperar y tabla es el origen de los
mismos, por ejemplo:

Esta consulta devuelve un recordset con el campo nombre y teléfono de la tabla clientes.
Ordenar los registros

Adicionalmente se puede especificar el orden en que se desean recuperar los registros de las
tablas mediante la claúsula ORDER BY Lista de Campos. En donde Lista de campos
representa los campos a ordenar.

Ejemplo:

Esta consulta devuelve los campos CodigoPostal, Nombre, Telefono de la tabla Clientes
ordenados por el campo Nombre.
Ordenar los registros

Se pueden ordenar los registros por mas de un campo, como por ejemplo:
Ejemplo:
Ordenar los registros

Incluso se puede especificar el orden de los registros: ascendente mediante la clausula (ASC
-se toma este valor por defecto) ó descendente (DESC)
Consultas con Predicado

ALL Devuelve todos los campos de la tabla

TOP Devuelve un determinado número de registros de la tabla

DISTINCT Omite los registros cuyos campos seleccionados coincidan totalmente

DISTINCROW Omite los registros duplicados basandose en la totalidad del registro y


no sólo en los campos seleccionados.
ALL

Si no se incluye ninguno de los predicados se asume ALL.

El Motor de base de datos selecciona todos los registros que cumplen las condiciones
de la instrucción SQL. No se conveniente abusar de este predicado ya que obligamos al
motor de la base de datos a analizar la estructura de la tabla para averiguar los campos que
contiene, es mucho más rápido indicar el listado de campos deseados.
TOP

Devuelve un cierto número de registros que entran entre al principio o al final de un rango
especificado por una cláusula ORDER BY.

Supongamos que queremos recuperar los nombres de los 25 primeros estudiantes del curso
1994:
DISTINCT

Omite los registros que contienen datos duplicados en los campos seleccionados. Para
que los valores de cada campo listado en la instrucción SELECT se incluyan en la consulta
deben ser únicos.

Por ejemplo, varios empleados listados en la tabla Empleados pueden tener el mismo
apellido. Si dos registros contienen López en el campo Apellido, la siguiente instrucción SQL
devuelve un único registro:
DISTINCT

Con otras palabras el predicado DISTINCT devuelve aquellos registros cuyos campos
indicados en la cláusula SELECT posean un contenido diferente. El resultado de una consulta
que utiliza DISTINCT no es actualizable y no refleja los cambios subsiguientes realizados por
otros usuarios.
DISTINCTROW

Devuelve los registros diferentes de una tabla; a diferencia del predicado anterior que sólo se
fijaba en el contenido de los campos seleccionados, éste lo hace en el contenido
del registro completo independientemente de los campo indicados en la cláusula SELECT.

Si la tabla empleados contiene dos registros:

Antonio López y Marta López el ejemplo del predicado DISTINCT devuelve un único registro
con el valor López en el campo Apellido ya que busca no duplicados en dicho campo.
Este último ejemplo devuelve dos registros con el valor López en el apellido ya que se buscan
no duplicados en el registro completo.
Alias
En determinadas circunstancias es necesario asignar un nombre a alguna columna
determinada de un conjunto devuelto, otras veces por simple capricho o por otras
circunstancias.
Para resolver todas ellas tenemos la palabra reservada AS que se encarga de asignar el
nombre que deseamos a la columna deseada.
Tomado como referencia el ejemplo anterior podemos hacer que la columna devuelta por
la consulta, en lugar de llamarse apellido (igual que el campo devuelto) se llame Empleado.

En este caso procederíamos de la siguiente forma:

Potrebbero piacerti anche