You are on page 1of 35

Bases de

Datos I
Archivos convencionales,
desventajas
Base de datos: Conjunto de
datos relacionados entre si
bajo un mismo contexto.
Tipos de Bases de Datos segun como se almacena la
información:

• Bases de datos jerarquicas.


• Bases de datos en red.
• Bases de datos relacionales.
• Bases de datos orientadas a objetos
• Bases de datos Multidimencionales
• Bases de datos orientadas a documentos (NoSQL)
Modelo de datos: Herramienta que nos permite
abstraernos de la composicion fisica de la base de
datos (como se almacena y gestiona la información)

• Modelo entidad relacion


• Modelo relacional
Sistema Gestor de Bases de Datos
vs
Base de Datos
Características SGBD

• Abstracción de la información.
• Independencia.
• Redundancia mínima.
• Consistencia.
• Seguridad.
• Integridad.
• Respaldo y recuperación.
• Control de la concurrencia.
Selección de un
SGBD
¿Cómo?
Tipos de usuarios
Componentes de los SGBD

Lenguaje de definición de datos (DDL)


Lenguaje de manipulación de datos (DML)
Un Lenguaje de consulta de datos (QL)
Niveles de abstracción de una Base de datos

Nivel de Vistas
(Externo)
QL >>
Vista 1 Vista 2 … Vista n

Nivel
DML >> Lógico
(Conceptual)

Nivel
DDL >>
Físico
Estructura de una Base de datos

• Campo
• Registro o tupla
• Tabla
• Relaciones
Modelo Entidad-Relación
Entidad.
Es una cosa o un objeto del mundo real que es
distinguible de otros objetos. Por ejemplo: Un paciente
en un hospital.
Una entidad tiene un juego de propiedades y los
valores de estas propiedades identifican en forma única
una entidad. Por ejemplo: El número que se le asigna al
paciente al ingresar al hospital.
Atributos.

Una entidad es representada por


un juego de atributos.
Los atributos son propiedades
descriptivas de las entidades.
Relación
Una relación es una asociación entre entidades.

Ejemplo: Un x Paciente tiene tal Padecimiento.

Paciente Padecimiento
Fernando Gómez Gripe
Cardinalidad

Es el número de registros con los cuales otro registro


puede asociar mediante una relación

Considerando una relación binaria entre el juego de


entidades A y el B, la cardinalidad puede ser:

• Uno a uno.

• Uno a muchos ó muchos a uno.

• Muchos a muchos.
Uno a Uno

Una entidad en A esta asociada con una entidad en B y


viceversa.

Entidad A Entidad B
A1 B1
A2 B2
A3 B3

Ejemplo: Un paciente en un hospital tiene un solo cuarto y un cuarto pertenece


a un solo paciente (hospital privado).
Uno a Muchos

Una entidad en A esta asociada con cualquier número (0 ó


más) de entidades en B. Una entidad en B, puede estar
asociada a lo mucho con una entidad en A.

Entidad A Entidad B
A1 B1
A2 B2
A3 B3
B4
B5

Ejemplo: El titular de una cuenta de cheques puede tener cualquier


número de tarjetas, pero cada tarjeta pertenece a una sola persona.
Muchos a Muchos

Una entidad en A esta asociada con cualquier número de


entidades en B (0 ó más) y viceversa.

Entidad A Entidad B
A1 B1
A2 B2
A3 B3
A4 B4
A5 B5

Ejemplo: En un proyecto de investigación puede haber cualquier número


de médicos, un médico puede participar en cero o varios proyectos.
Tipos de atributos

Simples: son aquellos que no se han dividido en subpartes.

Compuestos: son los que pueden dividirse en otros


atributos, el atributo nombre, puede dividirse en nombre,
apellido materno y apellido paterno.

Univalor: Por ejemplo la edad del paciente es única.


Tipos de atributos

Multivalor: Por ejemplo un paciente puede tener cero


o más números telefónicos.

Derivado: el valor de este tipo de atributo es obtenido


a partir de los valores de otro.
Normalización
La normalización es el proceso mediante el cual se transforman datos
complejos a un conjunto de estructuras de datos mas pequeñas, que
ademas de ser las mas simples y mas estables, son mas faciles de
mantener.

También se puede entender la normalización como una serie de reglas


que sirven para ayudar a los diseñadores de bases de datos a
desarrollar un esquema que minimice los problemas de logica. Cada
regla esta basada en el antecedente.
Las bases de datos relacionales se normalizan para:
• Evitar la redundancia de los datos.
• Evitar problemas de actualización de los datos en las
tablas.
• Proteger la integridad de los datos.
Las bases de datos relacionales se normalizan para:
• Evitar la redundancia de los datos.
• Evitar problemas de actualización de los datos en las
tablas.
• Proteger la integridad de los datos.
Tipos de tablas en modelos normalizados.
En todo modelo y estructura de datos normalizada solemos encontrar los siguientes tipos
de tablas:
Tablas Maestras: Contienen registros cuyos valores son afectados muy poco por
operaciones de actualización.
Tablas Transaccionales: Su contenido se ve afectado por alta transaccionabilidad (gran
volumen de datos/registros) de operaciones de actualización.
Tablas de Referencias (Catálogos, Parámetros, Configuraciones): Surgen de codificar
campos en tablas maestras (llaves foráneas), valores que establecen comportamientos
en aplicativos, etc.
Existen básicamente tres niveles de normalización

• Primera forma normal (1FN): Incluye la eliminación de todos los


grupos repetidos
• Segunda forma normal (2FN): Asegura que todas las columnas
que no son llave sean completamente dependientes de la llave
primaria (PK)
• Tercera forma normal (3FN): Elimina cualquier dependencia
transitiva. Una dependencia transitiva es aquella en la cual las
columnas que no son llave son dependientes de otras columnas
que tampoco son llave.
Ejemplo
Ejemplo
• Al examinar estos registros, podemos darnos cuenta que
contienen un grupo repetido para NUM_ITEM, DESC_ITEM,
CANT y PRECIO. La 1FN prohibe los grupos repetidos, por lo
tanto tenemos que convertir a la primera forma normal. Los
pasos a seguir son:
• Tenemos que eliminar los grupos repetidos.
• Tenemos que crear una nueva tabla con la PK de la tabla base
y el grupo repetido.
• Los registros quedan ahora conformados en dos tablas que
llamaremos ORDENES y ARTICULOS_ORDENES
Ejemplo
Ejemplo
• Ahora procederemos a aplicar la segunda formal normal, es decir, tenemos que
eliminar cualquier columna no llave que no dependa de la llave primaria de la
tabla. Los pasos a seguir son:
• Determinar cuáles columnas que no son llave no dependen de la llave
primaria de la tabla.

• Eliminar esas columnas de la tabla base.

• Crear una segunda tabla con esas columnas y la(s) columna(s) de la PK de la


cual dependen.
Ejemplo

• La tabla ORDENES está en 2FN. Cualquier valor único de ID_ORDEN


determina un sólo valor para cada columna. Por lo tanto, todas las
columnas son dependientes de la llave primaria ID_ORDEN.

Por su parte, la tabla ARTICULOS_ORDENES no se encuentra en 2FN


ya que las columnas PRECIO y DESC_ITEM son dependientes de
NUM_ITEM, pero no son dependientes de ID_ORDEN. Lo que
haremos a continuación es eliminar estas columnas de la tabla
ARTICULOS_ORDENES y crear una tabla ARTICULOS con dichas
columnas y la llave primaria de la que dependen.
• Las tablas quedan ahora de la siguiente manera.
Ejemplo
Ejemplo
• La tercera forma normal nos dice que tenemos que eliminar cualquier columna no llave
que sea dependiente de otra columna no llave. Los pasos a seguir son:

• Determinar las columnas que son dependientes de otra columna no llave.


• Eliminar esas columnas de la tabla base.
• Crear una segunda tabla con esas columnas y con la columna no llave de la cual son
dependientes.
• Al observar las tablas que hemos creado, nos damos cuenta que tanto la tabla
ARTICULOS, como la tabla ARTICULOS_ORDENES se encuentran en 3FN. Sin embargo la
tabla ORDENES no lo está, ya que NOM_CLIENTE y ESTADO son dependientes de
ID_CLIENTE, y esta columna no es la llave primaria.

• Para normalizar esta tabla, moveremos las columnas no llave y la columna llave de la
cual dependen dentro de una nueva tabla CLIENTES. Las nuevas tablas CLIENTES y
ORDENES se muestran a continuación.
Ejemplo

You might also like