Sei sulla pagina 1di 55

Profesor: Rubn Jernimo Yedra Asesora: martes de 10-12hrs Lugar: rea de posgrado DAIS, cubculo 3.

PROGRAMA ACADEMICO MODELADO, DISEO Y MANEJO DE BASE DE DATOS 1) 2) 3) 4) 5) 6) Fundamentos Modelado de datos El modelo relacional El proceso de normalizacin Creacin de un esquema de la Base de Datos Manejo de la Base de Datos

OBJETIVO GENERAL Implementar una Base de Datos con un enfoque relacional, con la aplicacin de sentencias para la creacin (sentencia DDL) y manejo de la informacin (DML) almacenada en la Base de Datos usando un lenguaje estructurado de consulta (SQL).

BIBLIOGRAFIA Introduccin a un sistema de Base de Datos (autor: DATE/Editorial: AddisonWesley). Sistema de Base de Datos: Un libro completo (autor: Garca-Molina/Editorial: Prentice-Hall). El modelo Entidad-Relacin: Mtodo Case (autor: Barker/Editorial: AddisonWesley).

REGLAS Tener una libreta y sus tareas a mano. Puntualidad a sus clases, ya que se requiere 80% de asistencia como mnimo para poder presentar examen. La tolerancia para entrar al aula es de 20min despus de la hora de clases. Una vez iniciada la clase nadie entra al saln. El da del examen una vez que ha iniciado no se permite ingresar a presentarlo (se requiere su puntualidad). El da del examen venir bien hechos del 1 y del 2. Las asesoras se les da a los alumnos desde el primer da de clases hasta el ltimo marcado en el calendario escolar. En fechas de exmenes ordinarios y extraordinarios no se atiende a nadie. Todo trabajo que se envi al buzn del instructor debe llevar los datos del alumno. Asimismo enviarse copia asimismo por aquello que no llegue al buzn del instructor. Estar dentro del aula de clases no afuera. Celulares apagados. El uso de MSN es con fines de aclarar dudas, no es mdulo de informacin.

DEFINICIONES PRELIMINARES

a) Datos: representacin (normalmente magntica u ptica) de nmeros, letras, caracteres ASCII, sin que su significado sea la caracterstica ms importante.

b) Informacin: son datos que tienen una organizacin estructurada entre ellos y que tiene algn significado. Un dato no puede tener informacin, pero no puede haber informacin sin datos.

c) Archivo: es un conjunto de datos organizados en una coleccin de registros que tienen un significado para una aplicacin determinada.

d) Registros: coleccin de campos relacionados entre s. e) Campo: es una columna dentro de un registro, que contenga datos especficamente del mismo tipo.

BASE DE DATOS Es una coleccin de datos almacenados en un conjunto de archivos relacionados.

Qu es un sistema manejador de base de datos (SMBD)? Es un sistema de cmputo, cuya finalidad general es: Almacenar informacin Recuperar informacin Actualizar informacin Qu tareas pueden hacer los usuarios en un SMBD? Insertar datos Modificar datos Recuperar datos Eliminar datos de archivos Agregar nuevos registros Eliminar archivos existentes

TAREA 1: DESVENTAJAS DE USAR UN SISTEMA DE ARCHIVOS EN LUGAR DE UNA BASE DE DATOS 1) En los sistemas de archivos cada usuario define e implementa los archivos requeridos para una aplicacin, en una Base de Datos se mantiene un nico almacn de datos y al cual pueden tener acceso muchos usuarios. 2) En los sistemas de archivos se definen los datos dentro del programa de aplicacin, por lo cual, cada programa solo trabaja con una base de datos especifica. Esto hace redundante la aparicin de datos y poco efectiva la utilidad de los mismos. 3) En los sistemas de archivos no hay una debida actualizacin de los datos por tal razn llegan haber muchas incoherencias al momento de utilizar o mover un dato; en cambio, en una BD se permite el acceso simultaneo a muchos usuarios y tienen un software que controla las actualizaciones de datos para que sean lo ms correcto posible. 4) Los sistemas de archivos son de poca fiabilidad por el manejo masivo de datos. 5) No facilitan las relaciones entre los datos, pues cada dato es de uso exclusivo en cada programa de aplicacin que ha sido definido.

TAREA 2: COMPONENTES DE UN SISTEMA MANEJADOR DE BASE DE DATOS Datos: es la unidad mnima de informacin manejada por una BD las cuales estn almacenadas de acuerdo a la estructura externa y van a ser procesados para convertirse en informacin definida y con significado para el usuario. Representan la informacin almacenada en archivos que contienen un significado para una empresa. Usuarios: son las personas que trabajan en una Base de Datos pueden recuperar o almacenar nueva informacin, existen los siguientes tipos de usuarios: Usuario final: es la persona que utiliza los datos esta persona ve datos convertidos en informacin (borrar, ingresar, actualizar archivos, etc.). Desarrollador de aplicaciones: es la persona que desarrolla los sistemas que interactan con la Base de Datos. Administrador de Base de Datos(ABD): es la persona que asegura integridad, consistencia, redundancia eliminada al menos parcialmente y seguridad de la Base de Datos, as como tambin el mantenimiento diario o peridico de los datos. Hardware: est constituido por dispositivo de almacenamiento como discos magnticos, dispositivos de E/S, procesadores de hardware, etc. Software: es el SMBD o Sistema Manejador de Base de Datos que puede agregar, eliminar archivos, recuperar o almacenar datos desde y en dichos archivos. Su funcin general consiste en ocultar a los usuarios de BD los detalles a nivel de hardware.
Software: Administrador de BD
Integrados: unin de
varios archivos con una redundancia eliminada al menos parcialmente.

B.D.

Datos

Compartidos:

individuales en la BD que pueden ser compartidos entre diferentes usuarios y que cada uno de ellos puede tener acceso a la misma pieza de datos, probablemente con fines diferentes.

piezas

B. . . . . . . HW
Hardware:

(DBMS): puede agregar, eliminar archivos, recuperar o almacenar datos desde y en dichos archivos. Su funcin general consiste en ocultar a los usuarios de la BD los detalles a nivel de hardware.

Usuarios finales: es la persona que


utiliza los datos, ve los datos convertidos en informacin, puede borrar, ingresar o actualizar archivos, etc.

HW

Administrador de la BD: es la
persona que asegura integridad, consistencia, redundancia eliminada al menos parcialmente y seguridad de la base de datos, as como tambin el mantenimiento diario o peridico de los datos.

est constituido por dispositivos de almacenamiento secundario como discos, tambores, cintas, discos magnticos, dispositivos de E/S, procesadores hardware, etc.

Programadores de aplicacin: es
la persona que desarrolla los sistemas que interactan con la BD, es decir, disean las pistas necesarias para la BD.

ESTRUCTURA DE UNA BASE DE DATOS

Base de Datos compuesta por:


DATOS METADATO: son datos que sirven para especificar la estructura de la BD.

VENTAJAS DE LA BASE DE DATOS 1) 2) 3) 4) 5) 6) 7) Independencia de los datos y los programas del proceso. Menor redundancia. Integridad de los datos. Mayor seguridad de los datos. Datos ms documentados Acceso a los datos ms eficiente. Menor espacio de almacenamiento.

Arquitectura de una base de datos y sus funciones generales.


La arquitectura ANSI/SPARC se divide en tres niveles, conocidos como interno, conceptual y externo, respectivamente. Hablando en trminos generales:

a) Nivel interno: (tambin conocido como nivel fsico), es el que est ms cerca del almacenamiento fsico; es decir, el que tiene que ver con la forma en que los datos estn almacenados fsicamente. Es la representacin de bajo nivel de toda la base de datos.

b) Nivel externo: (nivel lgico de usuario), es el ms prximo a los usuarios, es decir, el que tiene que ver con l forma en que los usuarios individuales ven los datos. Cada usuario tiene a su disposicin un lenguaje:

a. Para el programador su lenguaje ser de programacin convencional (PL/I, C++, java) o bien un lenguaje de tipo propietario que sea especifico al sistema en cuestin. b. Para el usuario final, el lenguaje ser de consulta o bien algn lenguaje de finalidad especfica, tal vez controlado por formularios o por minas.

c) Nivel conceptual: (nivel lgico de la comunidad o nivel lgico), es un nivel de indicacin entre los otros. Es una representacin de todo el contenido de la informacin de la base de datos, la vista conceptual pretende ser una vista de los datos tal como son, en vez de tal como los usuarios estn obligados a verlos.

Ejercicios Elabora un cuadro sinptico que contenga todas las funciones de una base de datos. En el siguiente dibujo representa los 3 niveles de la arquitectura de un DBMS, escriba su correspondiente definicin.

Cuadro sinptico: funciones de una base de datos (DBMS)

Definicin de datos: acepta definiciones de datos (esquemas externos, esquema conceptual, esquema interno y todas las transformaciones respectivas) en tu forma fuente y convertirlas a la forma objeto correspondiente. Manipulacin de datos: el DBMS maneja peticione para recuperar, actualizar o eliminar datos existentes en la B. D o agregar nuevas a esta. Optimizacin y ejecucin: su finalidad es determinar una forma eficiente de implementar la ejecucin o peticin.

Procesador DDL O Procesador DDL

Procesador DML O Procesador DML

Administrador en tiempo de ejecucin

Funciones de un DMS

Seguridad e integridad de los datos: debe vigilar las peticiones del usuario y rechazar todo intento de violar las restricciones de seguridad e integridad, estas tareas e realizan durante la compilacin, ejecucin o en ambos. Administrador de transacciones o monitor de procedimiento de transacciones

Recuperacin concurrencia: criterios de concurrencia.

de datos y impone ciertos recuperacin y

Direccin de datos: es una base de datos por derecho propio. Contiene datos acerca de datos; es decir, definiciones de otros objetos del sistema en lugar de simples datos en bruto.

Rendimiento: el DBMS debe realizar todas las tareas antes identificados de la manera ms eficiente posible.

Arquitectura de las DBMS La arquitectura para un DBMS proporciona un marco de referencia para descubrir los conceptos generales de base de datos y explicar la arquitectura de sistemas especficos y el cual consta de 3 niveles. 1) Nivel interno: se ocupa de la forma en cmo se almacena fsicamente los datos. 2) Nivel externo: se ocupa de la forma en cmo los usuarios perciben los datos. 3) Nivel conceptual: es un nivel de mediacin entre los niveles anteriores.

*Select nombre, matricula, edad *Insert From Alumno Into alumno Where promedio>8.0 value(0005 juan 10)

Matricula char(4); Nombre char(20); Edad integer; Promedio float;


Matricula Nombre Edad Promedio

Usuarios finales (capturistas, secretarias, gerentes, etc.)

Es del usuario final

Programadores de aplicacin DBA (Administrador de base de datos)

10

a) Nivel externo Cada tipo de usuario dispone de un lenguaje que puede ser un lenguaje de programacin convencional o un lenguaje de consulta. Todos los lenguajes deben incluir un sublenguaje de datos (DSL), que permite la definicin y manipulacin de la BD.

Lenguaje de definicin de datos (DDL) permite la definicin o declaracin de objetos de la BD.

DSL
Lenguaje de manipulacin de datos (DML) este apoya la manipulacin o procesamiento de los objetos de la BD.

Nota: al usuario final solo le interesa una porcin de lavase de datos.

b) Nivel conceptual El nivel conceptual es una vista del contenido de la BD. La vista conceptual se define por medio de un esquema conceptual que consiste bsicamente de definiciones de cada uno de los tipos de registros conceptuales de la BD. c) El nivel interno El nivel interno es la vista interna de la BD que constituye una representacin de bajo nivel de toda la BD. La vista interna se define mediante un esquema interno, el cual no solo define los diversos tipos de registros sino tambin especifica cuales ndices hay, como se representan los campos almacenados y en que secuencia fsica se encuentran almacenados los registros.

11

Funciones generales de los DBMS


Un DBMS deber incluir por lo menos las siguientes funciones. Definicin de datos: o Debe ser capaz de aceptar definiciones de datos(esquemas externos, el esquema conceptual, el esquema interno y todas operaciones asociadas) Manipulacin de datos: o Debe ser capaz de atender las solicitudes del usuario para extraer y quiz poner al da, datos que ya existen en la base de datos o para agregar en ella datos nuevos, es decir, incluir un componente DML. Seguridad e integridad: o Debe supervisar las solicitudes de los usuarios y rechazar los intentos de violar las medidas de seguridad e integridad definid el DBA. Recuperacin y concurrencia de datos: o Debe cuidar el cumplimiento de ciertos controles de recuperacin y concurrencia. Diccionario de datos: o Debe incluir una funcin para el registro y mantenimiento de un diccionario de datos. Un diccionario de datos es una base de datos que contiene datos (metadatos) acerca de la BD, es decir, definiciones de otros objetos del sistema y no solo los datos en s.
Diversos esquemas y correspondencias

En un diccionario de datos Se almacenan.

Referencias para determinar cules programas usan parte de la base de datos.

Referencias para determinar cules usuario requieren cuales informes.

Optimizacin y ejecucin: o Las peticiones DML, planeadas o no planeadas, deben ser procesados por el componente optimizador, cuya finalidad es determinar una forma eficiente de implementar la peticin.

12

Modelo de datos
Un modelo de datos es una coleccin de herramientas conceptuales para describir datos, entre ellos, semntica asociativa entre ellos y restricciones de consistencia. Los diversos modelos de datos se dividen en tres grupos: Modelo lgico basado en registros Modelo lgico basado en objetos Modelo fsico de datos a).- Modelo lgico basado en registros: este modelo se utiliza para describir datos en los modelos conceptual y fsico, se usa para especificar la estructura lgica global de la base de datos y para proporcionar una descripcin a nivel ms alto de la implementacin. Los modelos basados en registros se llaman as porque la base de datos est estructurada en registros de formato fijo de varios tipos. Cada tipo de registro define un nmero fijo de campos o atributos donde estos ltimos normalmente son de longitud fija. Los tres modelos de datos usados en el modelo lgico de registros ms ampliamente aceptados son: El modelo jerrquico El modelo de red El modelo relacional

1. - Modelo de red Los datos en el modelo de red se presenta mediante colecciones de registros y la relaciones entre los datos se presenta mediante enlaces, los cuales pueden usarse o verse como apuntadores (punteros). Los registros en la B.D. se organizan como una coleccin de grficos abstractos. Ejemplo:

Diego

Maple

Villanueva

900

55

Silva

Olivo

Saltillo

556 677

100,000 103,666 10,537 13

Hugo

Ceiba

Puebla

800

2.- modelo jerrquico Es muy similar al modelo de red, en el sentido en 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 estn organizados como colecciones de rboles en vez de grafos arbitrarios.

Diego

Maple

Villanueva

Hugo

Ceiba

Puebla

Silva 900 55

Olivo

Saltillo 800 10,537

556

100,000

677

103,666

3.- modelo relacional El modelo relacional representa los datos y las relaciones entre los datos mediante una coleccin de tablas, cada una de las cuales tiene un nmero de columna con nombres nicos. Nombre Diego Silvia Hugo T.planta Maple Olivo Ceiba Ciudad Villahermosa Saltillo Puebla Clave 900 556 677 800 Existencias 55 100,000 103,666 10,537

14

Caractersticas generales del modelo relacional


a) Los datos son almacenados en relaciones, y cada relacin es un conjunto de datos b) El orden en que los datos se almacenan no tiene mucha importancia a diferencia del modelo jerrquico y el de red. c) Es de fcil comprensin y utilizacin para usuarios no expertos d) La informacin puede ser recuperada o almacenada por medio de consultas que brinda flexibilidad para administrarla e) Considera a la base de datos como una coleccin de relaciones f) Una relacin representa una tabla (conjunto de filas), cada fila es un conjunto de campos y cada campo representa un valor en el mundo real. g) La manipulacin de informacin se hace atravs de un lenguaje relacional: Algebra relacional: permite describir la forma de realizar una consulta Calculo relacional: indica lo que se desea devolver h) Su estructura se basa en registros Qu es una relacin? Es el elemento bsico del modelo relacional, est compuesta por dos partes: Cabecera y cuerpo. La cabecera est formada por un conjunto fijo de atributos. El cuerpo est formado por un conjunto de tuplas, por esto podemos nombrar una relacin con el nombre TABLA, la cual est compuesta por filas y columnas, donde cada fila (tupla) representa un conjunto de valores relacionados entre s (hechos del mundo real), y las columnas (atributos) tienen la funcin de llegar a interpretar el significado de los valores que est en cada fila de la tabla. Qu es una tupla? Una secuencia ordenada de objetos, esto es, una lista con un nmero limitado de objetos. Una definicin ms normal de tupla es la siguiente: conjunto de elementos de distinto tipos que se guardan de forma consecutiva en memoria. Una tupla tambin se define como una funcin finita que mapea (asocia unvocamente) los nombres con algunos valores. Qu es un dominio? Es un conjunto de valores atmicos que puede adoptar un atributo en particular. Un dominio rene caractersticas de tipo, comportamientos propios y distinguibles. Para que el dominio pueda tomar parte de una estructura se debe especificar su tipo de datos, siendo estas definidas por el DBMS. En conclusin un dominio debe tener: un nombre, un tipo de tato y formato.

15

Qu es la cardinalidad? La cardinalidad expresa el nmero de entidades alas que otra entidad puede estar asociada va un conjunto de relaciones ejemplo de una relacin que expresa cardinalidad: Cada esposo (entidad) est casado (relacin) con una nica esposa (entidad) Un cliente (entidad) puede comprar (relacin) varios artculos (entidad) y un artculo puede ser comprado por varios clientes distintos. Relacin N:N

Tipos de dominios Los dominios pueden ser: enteros, cadenas de caracteres, decimales, etc. La norma SQL soporta un conjunto de tipos de dominios predefinidos, que incluye los siguientes: Char (n) es una cadena de caracteres de longitud fija especificada por el usuario. Varchar (n) conjunto de caracteres de longitud variable Int es un entero, tambin se puede utilizar la palabra interger Smallint es un entero pequeo (subconjunto del dominio de los enteros) Numeric (p, d) es un numero en coma flotante (punto decimal), cuya precisin la especifica el usuario. Real, doubl son nmeros en coma flotante y nmeros en coma flotante en doble precisin, con precisin dependiente de la mquina. Float (n) es un nmero en coma flotante, cuya precisin es de al menos n dgitos. Time es la hora del da expresada en horas, minutos y segundos. Date es una fecha del calendario que contiene un ao (4 dgitos), un mes y un da del mes Times tamp es una combinacin de date y time.

Tipos de raciones Se pueden distinguir tres tipos de relaciones: Relacin uno a uno: cuando un registro de la tabla solo puede estar relacionado don un nico registro de la otra tabla Relacin uno a varios: cuando un registro de una tabla (tabla secundaria) solo puede estar racionado don un nico registro de la otra tabla (tabla primaria) y un registro de la otra tabla (tabla principal) puede tener ms de un registro relacionado en la primera tabla (tabla secundaria)

16

Relacin de uno a varios: cuando un registro de una tabla puede estar relacionado con ms de un registro de la otra tabla y viceversa. Reglas de integridad relacional Son restricciones que se deben cumplir en todas las bases de datos relacionales y en todos sus estados o instancias, es decir, se deben cumplir en todo tiempo. Existen bsicamente 2 reglas de integridad asociadas con el modelo relacional. 1. Integridad de entidad.- aseguran la integridad de las entidades que son modeladas por el sistema. En el nivel ms simple, la existencia de una clave principal es una restriccin de entidad que impone la regla, en cada entidad debe ser identificada de forma nica. 2. Integridad referencial.- define que la base de datos no debe contener valores de claves forneas sin concordancia. Si en una relacin hay alguna clave fornea, entonces sus valores deben coincidir con los valores de la clave primaria a la que hace referencia, o bien debe ser completamente nulo.

MODELO RELACIONAL
Los sistemas relacionales se basan en el modelo relacional de datos, lo que significa que he dichos sistemas se consideran los siguientes aspectos: 1) Aspecto estructural: El usuario percibe la informacin de la base de datos como tablas. 2) Aspecto de integridad: Las tablas satisfacen ciertas restricciones de seguridad. 3) Aspecto de Manipulacin: Los operadores disponibles para que el usuario manipule estas tablas son operadores que derivan tablas a partir de tablas. Tablas a partir de tablas: El modelo relacional se ocupa de 3 aspectos de los datos: A. Su estructura. B. Su integridad. C. Su manipulacin. a) La estructura de datos relacional. Aqu se definen todos los datos que conforman una tabla como: *Relacion: corresponde a la que comnmente se llama una tabla.

17

*Llave primaria: es un identificador nico para esa tabla, el cual puede ser el resultado de una columna, donde existe la propiedad de que nunca existen dos filas en la tabla con el mismo valor en esa columna o combinacin de columnas *Dominios: conjunto de valores escalares todos del mismo tipo. Los dominios son los fondos de valores de los cuales se extraen los valores reales que aparecen en los atributos. Se consideran dos tipos de dominios: a).-Dominios simples: son aquellos dominios que contienen valores atmicos. Ejemplo: enteros, reales, etc b).-Dominios compuestos: son aquellos dominios que contienen una combinacin de valores de dominio simple. Ejemplo: los tipos llamados fecha: mes/da/ao --- da/mes/ao *Atributo: representa las propiedades de la relaciones normalmente es una columna dentro de una relacin (tabla). *Relaciones: una relacin sobre un conjunto de dominios D1, D2Dn se compone de 2 partes: una cabecera y un cuerpo.

18

*Cabecera: est formado por un conjunto fijo de atributos en trminos ms precisos de pares atributo-dominio *Cuerpo: est conformado por un conjunto de tuplas, el cual vara con el tiempo. Cada tupla a su vez est formado por un conjunto de pares atributo-valor. *Grado: es el nmero de atributos en una relacin: Una relacin de grado 1 se llama Unaria. Una relacin de grado 2 se llama Binaria. Una relacin de grado 3 se llama N-ara. *Cardinalidad: es el nmero de tuplas en una relacin. Propiedades de las relaciones.- existen 4 propiedades fundamentales en las relaciones del modelo relacin: 1).-No existen tuplas duplicadas: El cuerpo de una relacin es un conjunto de datos, por lo tanto, por definicin los conjuntos no tienen elementos duplicados. 2).-Las tuplas no estn ordenadas (de arriba hacia abajo): Como el cuerpo de una relacin es un conjunto, los conjuntos no tienen orden. 3).-Los atributos no tienen orden (de izquierda a derecha): La cabecera de una relacin se define como un conjunto, por lo tanto, los conjuntos no tienen orden. 4).-Todos los valores de los atributos simples son atmicos: En cada posicin (interseccin) de fila y columna de una tabla y siempre hay un solo valor, nunca una lista de valores.

19

TIPOS DE RELACIONES En un sistema relacional puede existir diversos tipos de relaciones como: 1) Relacion base (relaciones reales): una relacin base es una relacin autnoma con nombre, es decir, son aquellas cuya importancia es tal que el diseador de la base de datos ha decidido darle un nombre y hacerlos parte directa de la base de datos en s. Ejemplo: una relacin base que muestra la informacin de todos los alumnos inscritos en una asignatura. 2)Vistas (relaciones virtuales): una vista es una relacin derivada, con nombre, representada dentro de un sistema exclusivamente mediante su definicin en trminos de otras relaciones con nombre, no posee datos almacenados propios separados y distinguibles (a diferencia de las relaciones base). Ejemplo: una relacin (vista) que muestre solo informacin de todos los alumnos que tienen promedio mayor de 8 y juegan futbol. 3)Instantneas: una instantnea es una relacin derivada con nombre, como una vista pero a diferencia de las vistas instantneas son reales, no virtuales, es decir, estn representadas no solo por su definicin en termino de otras relaciones con nombre, sino tambin por sus propios datos almacenados. Ejemplo: una relacin instantneas que muestra los asientos disponibles en un autobs con un destino determinado.

20

REGLAS DE INTEGRIDAD RELACIONAL El modelo relacional incluye dos reglas generales de integridad, las cuales se refieren respectivamente a las llaves primarias y a las llaves ajenas. Llaves primarias: en trminos informales, la llave primaria de una relacin es solo un identificador nico para esta relacin. Es posible tener una relacin con ms de un identificador nico. En caso as, se dir que la relacin tiene varias llaves candidatas, donde pauta a escoger una de ellas para que sea llave primaria y las dems llamaremos llaves alternativas. Una llave primaria tambin llamada superllave o superclave, tendr la funcin de identificador de modo nico las tuplas de una relacin. Llave candidata: el atributo K (posiblemente compuesto) de una relacin R es una llave candidata de R, si y solo si satisface las siguientes 2 propiedades del tiempo: 1) Unicidad: en cualquier momento dado, no existe 2 tuplas en R (tabla) con el mismo valor de K (atributo (columna)). 2) Minimalidad: si K es compuesto, no ser posible eliminar ningn componente de K sin destruir la propiedad de unicidad. Ejemplo:

21

REGLA DE INTEGRIDAD DE LAS ENTIDADES Ningn componente de la llave primaria de una relacin base puede aceptar valores nulos. Con nulos se quiere decir informacin faltante por alguna razn por ejemplo: si la propiedad no es aplicable o si el valor se desconoce, etc. Una relacin base es una relacin autnoma y con nombre. La regla de integridad de las entidades se justifica si se considera que las llaves primarias identifican de una forma nica a las entidades dentro de la B.D. La regla de integridad de las entidades se expresa a veces as: En una base de datos relacional nunca registraremos informacin acerca de algo que no podamos identificar *Llaves ajenas: una llave ajena es un atributo (quiz compuesto) de una relacin (R2) cuyos valores deben concordar con los de la llave primaria de alguna relacin R 1. Un valor de una llave ajena representa una referencia a la tupla donde se encuentra el valor correspondiente de la llave primaria. Por lo tanto, el problema de garantizar que la B.D. no incluya valores no validos de una llave ajena se conoce como el problema de integridad referencial. La relacin que contiene a la llave ajena se conoce como relacin referencial y la relacin que contiene la llave primaria correspondiente se denomina relacin referida o relacin objeto. PK

Relacin objetivo

PK

AK

Relacin referencia

Sera conveniente que las dos fueran llaves primarias

22

La regla de integridad referencial La base de datos no puede contener valores de llaves ajenas sin concordancia. Con el trmino valores de llaves ajenas sin concordancia se quiere decir que no existe un valor no nulo de las llaves ajenas para el cual no exista un valor concordante de la llave primaria en relacin objetivo permanente. MODELO ENTIDAD-RELACIN (E-R) El modelo entidad-relacin (E-R) se basa en la percepcin de un mundo real, que cosiste en un conjunto de objetos bsicos llamados entidades y de relaciones entre estos objetos. Se desarroll para facilitar el diseo de base de datos permitiendo especificar un esquema empresarial. Este esquema representa la estructura lgica general en la base de datos. Objetos bsicos de modelo E-R. Los conceptos bsicos previstos por el modelo E-R son: entidad, relaciones y atributos. 1.- Qu son las entidades? Una entidad es un objeto que existe y puede distinguirse de otros objetos, de acuerdo con sus caractersticas llamadas atributos. Las entradas pueden ser concretas como una persona o abstracta como una fecha. Una entidad representa una cosa o objeto de mundo real con existencia independiente, es decir se diferencia nicamente de cualquier objeto o cosa, incluso siendo del mismo tipo o una misma entidad. Entidad: persona Mujer 1 Blanca Gordita Mecnica Natacin Mujer 2 Morena Delgada Cocina Juega bsquet

Alicia

Mara

23

Algunos ejemplos: Una persona (se diferencia de cualquier otra persona, incluso siendo gemelas). Un automvil (aunque que son de la misma marca, mismo modelo, tendrn atributos diferentes)

Un objeto con existencia fsica Una entidad puede ser Un objeto con existencia conceptual Un puesto de trabajo Una asignatura de clase Un nombre Una persona Un animal Una casa

Un conjunto de entidades 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.

Cliente 1 Cliente 2 Cliente 3 Cliente N

Cuenta 1 Cuenta 2 Cuenta 3 Cuenta N CLIENTES

24

Una entidad est representada por un conjunto de sus caractersticas o atributos. Los posibles atributos del conjunto de entidades CLIENTES podran ser nombres, documentos, calle y ciudad.

Otro ejemplo podra ser la entidad persona

Nombre Documento Cliente Calle Ciudad Persona

Nombre Apellidos Genero Estatura Peso Fecha de nacimiento

Para a cada atributo existente existe un rango de valores permitidos, llamado dominio del atributo. El dominio del atributo nombre podra ser el conjunto de todos los nombres de personas de cierta longitud.

25

Relaciones y conjuntos de relaciones Una relacin es una asociacin entre dos o ms entidades. Un conjunto de relaciones es un grupo de relaciones del mismo tipo.

Tipo de relaciones Una a una: una entidad de A esta asociada nicamente con una entidad de B y una entidad de B este asociada solo con una entidad de A.

a1 a2 A a3 a4

b1 b2 b3 b4 B

Una a muchas: una entidad de A esta asociada con varias entidades de B, pero una entidad de B puede asociarse nicamente con una de A.

1 b1 a1 A a2 a3 b2 b3 b4 b5 B

N 1

26

Muchas a una: una entidad de A esta asociada nicamente con una entidad de B, pero una entidad de B est asociada con muchas de A.

a1 a2 A a3 a4 a5 b1 b2 b3 B

1 1

Muchas a muchas: una entidad de A esta asociada con varias entidades de B y entidad de B esta vincula con varias entidades de A.

a1 A a2 a3 a4

b1 b2 b3 b4 B

27

Componentes del diagrama entidad relacin (ER) Los componentes bsicos de los diagramas ER son los atributos, los tipos de entidades y los tipos de relaciones. Rectngulos: representa un conjunto de entidades

Ejemplo:

Asignatura

Elipses: representa atributos y se conectan mediante lneas a los tipos de entidades o tipos de relaciones. Edad

Ejemplo:

Asignatura Nombre

Telfono

Atributos compuestos: los componentes de un atributo compuesto se representa a su vez como atributos. Calle Numer Colonia

Ejemplo:

Domicilio

Rombos: representa el conjunto de relaciones y son conectados a los tipos de entidades que relacionan.

Ejemplo:

Alumno

Matricula

Asignatura

28

Lneas: conecta los atributos a los conjuntos de entidades y los conjuntos de entidades a los conjuntos de relaciones. cada componente (entidad, relacin) se etiquetan con su nombre correspondiente.

Ejemplo: sea el conjunto de entidades Cliente y Cuenta, encontrar las relaciones.

Calle

RFC RFC Ciudad RFC

Nombre

Cliente

Matricula

Cuenta

Si el cliente solo tiene una cuenta 1:1

Si el cliente tiene muchas cuentas 1:N

Si muchos clientes comparten una misma cuenta N:1

Si muchos clientes tienen muchas cuentas N:N

Alumno

Tiene

Materias

Libros

Hay/tiene

Biblioteca

Cliente

Tiene

Video-club

29

Ejercicio del modelo Entidad-Relacin. Ejemplo.Hacer el diagrama ER para la base de datos que permita apoyar la gestin de un sistema de ventas. La empresa necesita llevar el control de. Proveedores Clientes Productos Categoras Ventas Los productos se clasifican en varias categoras y adems estas tienen varios proveedores. Por razones de contabilidad se registra la informacin de cada venta que se realiza a los clientes. Categoras

Tienen

Producto n

Provee

Proveedores

Se registra

1 Ventas 1

Se entrega a

1 Clientes
30

Ejemplo.Se pide hacer un diagrama ER para la base de datos que represente la informacin para una pequea empresa que debe contener informacin acerca de: Clientes Artculos Pedidos

Donde los clientes pueden hacer muchos pedidos y teniendo en cuenta que cada pedido puede contener muchos artculos.

Cliente

n 1

Podrn hacer

n n

Producto 1 n

Contiene n registra

n Artculos

31

Ejemplo: Una compaa est organizada en departamentos, cada departamento tiene un nombre y un nmero nico. Todo empleado est asignado a un departamento. Cada departamento controla cierto nmero de proyectos, cada uno de los cuales tiene nombre y nmero nico. Un empleado puede trabajar en varios proyectos, que no necesariamente estn controlados por el mismo departamento. *empleado Realice el diagrama ER:
Nombre Departamento Numero unico Proyectos Numero Nombre

*proyecto

*departamento

Empleado

Departamento

Departamento

Proyecto

Empleado

Proyecto

Empleado

Pertenece

Departamento

Controla

Trabaja

Proyecto

32

Ejemplo: En un peridico se tienen muchas ediciones (una por da), cada edicin se separa en secciones (deportivas, polticas, espectculos, etc.) y estas en pginas y estas a su vez de dividen en artculos. Puede darse el caso que los artculos solo ocupen una pgina. Entendindose que los artculos tienen un autor que recopila o respalda su contenido. Construya el diagrama ER para llevar el control de la informacin de este peridico. Piense que atributos podrn contener. (Autor, Edicion, Secciones, etc.) >edicin >secciones >paginas >artculos >autor
Edicion Seccion Paginas Articulo

Seccion Paginas Articulos Autor

Edicion

Seccion

Paginas

Articulos

Autor

33

Disee un diagrama ER para una BD que lleve el control de un centro comercial organizado por departamentos que contenga informacin sobre los clientes y sus compras. Es necesario almacenar infomacion con respecto a sus empleados que realizan las ventas, los productos y proveedoras. Entre los empleados existen jefes y los vendedores. La venta la realiza un solo vendedor a un solo cliente, donde se puede incluir desde uno o ms productos. Para cada departamento puede haber un solo jefe. Los proveedores suministran productos a un determinado precio. Cada producto puede pertenecer a un nico departamento. Defina que atributos seran necesarios para departamentos, cliente, empleados y proveedores. >departamentos >empleados >productos >proveedores >jefe >vendedores >cliente
Vendedor Departamento Departamento Departamento Venta Cliente Venta Jefe Vendedor Producto Vendedor Producto

Proveedores

Producto

Producto

Proveedor

Departamento

Ventas

Cliente

Empleado

34

Tarea: Disear un diagrama ER para llevar el control de una base de datos que tendr como datos la informacin de todos los soldados que realizan el servicio militar en tabasco. Considere lo siguiente: Un soldado pertenece a un nico grupo y una nica compaa durante todo el servicio militar. A una compaa puede pertenecer soldador de diferentes grupos, no habiendo relacin directa entre compaas y grupos. Los soldados de una misma compaa pueden estar destinados a diferentes cuarteles, es decir, una compaa puede estar ubicada en varios cuarteles y en un cuartel varias compaas. Entendiendo que un soldado solo puede estar en un cuartel. Un soldado realiza varios servicios a lo largo del periodo que pertenece al batalln. Un mismo servicio puede ser realizado por ms de un soldado, siendo significativa la fecha de realizacin.

35

Normalizacin
Qu es la normalizacin? Proceso mediante el cual se transforman datos complejos a una estructura de datos ms pequeas, que adems de ser ms simples y ms estables son ms fciles de mantener. Se considera a la normalizacin como una serie de reglas que sirven para ayudar a los diseadores a base de datos a desarrollar un esquema que minimice problemas de lgica. La normalizacin de base de datos relacionales toma un esquema relacional y le aplican un conjunto de tcnicas para producir un nuevo esquema que representa la misma informacin que contiene menos redundancia y evita posibles anomalas en las inserciones, actualizaciones y borrado.

Niveles de normalizacin: Existen bsicamente tres niveles de normalizacin: Primera forma normal (1NF) Segunda forma normal (2NF) Tercera forma normal (3NF) Donde cada una de estas formas tienen sus propias reglas.

Primera forma normal (1NF) La regla de la primera forma normal establece que: las columnas repetidas deben eliminarse y colocarse en tablas separadas.

Segunda forma norma (2NF) La regla de la segunda forma normal establece que: todas las dependencias se deben eliminar y separar dentro de sus propias tablas. Una dependencia parcial es un trmino que describe aquellos datos que no dependen de la llave primaria de la tabla para identificarlos.

36

Tercera forma normal (3NF) Una tabla est normalizada en la tercera forma normal (3NF) si todas las columnas que no son llaves son funcionalmente dependientes por completo de la llave primaria y no hay dependencias transitivas. 1NF Columnas repetidas deben eliminarse Los atributos de una tabla deben tener valores atmicos Dependencias parciales se deben eliminar Todos los atributos que no son llaves primarias tienen dependencia funcional, en otras palabras para determinar cada atributo no llave, se necesita la llave primaria completa. Si todos los atributos de una relacin son funcionalmente dependientes de la llave primaria.

2NF

3NF

Tarea: investigar que hacen la 4NF y 5NF y en qu casos se aplican estos niveles a una relacin.

Ejemplo de normalizacin Sean los siguientes datos de un reporte de ventas. 1 2 3 4 5 6 7 8 Nm. Nombre rea de Nm. Nombre Numero Ubicacin Valor vendedor vendedor venta cliente cliente almacn almacn venta 105 pedro refacciones 3045 Luis 15 Puebla sec. 5500 3100 Carlos 12 San Luis 3900 3420 David 12 San Luis 9000 302 Jos servicios 1013 Mara 10 Mxico, DF 5035 1505 Pedro 25 Villahermosa 3900 1700 Sofa 10 Mxico, DF 9300 . . . . . . . . . . . . . . . . . . . . . . . . Analizando los datos que pueden almacenarse en el reporte de ventas.

37

El reporte de ventas es una relacin NO normalizada, ya que cuenta con grupos repetidos, donde NUMERO VENDEDOR no puede servir como llave, donde la razn de ello es por lo siguiente: El NUMERO VENDEDOR y los atributos NOMBRE VENDEDOR y AREA DE VENTA existe una relacin uno a uno. Tambin NUMERO VENDEDOR y los dems atributos existe una relacin uno a muchos.

1) El primer paso para normalizar una relacin es eliminar los grupos que estn repetidos: 1 2 3 1 4 5 6 7 8

vendedor

Cliente-vendedor

La relacin no normalizada REPORTE-VENTAS, se descompone en 2 formas: VENDEDOR y CLIENTE-VENDEDOR. La segunda relacin VENDEDOR-CLIENTE contiene la llave primaria de la relacin vendedor, as como todos los atributos que forman parte del grupo repetido; sin embargo al saber el nmero VENDEDOR no es suficiente para conocer el nombre del cliente, valor de ventas, ubicacin del almacn, etc por tal motivo debe de usarse una llave conectada (NUMERO VENDEDOR y NUMERO CLIENTE) para acceder al resto de la informacin. En la SEGUNDA FORMA NORMAL todos los atributos sern funcionalmente dependientes de la llave primaria. El siguiente paso ser eliminar todas las dependencias parciales y colocarlas en otra relacin. La relacin CLIENTE-VENDEDOR no se encuentra en una forma ideal de normalizacin, ya que ciertos atributos no son funcionalmente dependientes de la llave primaria (NUMERO VENDEDOR, NUMERO-CLIENTE), en otras palabras, ciertos atributos no llaves son dependientes solo de NUMERO CLIENTE y no del criterio conectado.

38

1 Numero vendedor 5 Nombre cliente 8 Valor venta 6 Numero almacn 4 Numero cliente 7 Ubicacin del almacn

La relacin CLIENTE-ALMACEN se encuentra en una segunda forma normal. Aunque algunos atributos que no son primarios son independientes no solo de la llave primaria sino tambin de atributos que no lo son. A Esta se le denomina dependencia transitiva. Una relacin normalizada est en tercera forma normal si todos sus atributos que no son llave primaria son completamente dependientes desde un punto de vista funcional de la llave primaria y no hay dependencias transitivas.
Nombre cliente

Dependencia transitiva

Numero cliente

Nmero almacn

Ubicacin almacn

CLIENTE

ALMACEN 39

ACTIVIDAD EN CLASE: Normalizar la siguiente informacin.


1 2 3 4 5 6 7 8

matricula

Nombre alumno

Semestre

Clave materia

Nombre materia

Clave profesor

Nombre profesor

Calificacin materia

Solucin 1 2 3 1 4 5 6 7 8

ALUMNO

4 8

MATERIA-PROFESOR

CALIFICACIONES

MATERIA-PROFESOR

MATERIAS

PROFESOR

40

ACTIVIDAD EN CLASE: Se la relacin Asignacin de turnos, que contiene informacin relativa a la asignacin de los turnos de trabajos de los empleados de los distintos centros de una cadena de tiendas departamentales, Normalizar los datos para encontrar las tablas que contendr la B.D.

CURP
1

Nm.2 empleado

Cdigo3 tienda

Direccin tienda
4

Turno
5

Fecha
6

1 1 2 3 4

EMPLEADO

TIENDA

TURNO

TAREA.
ClaveNomCantidad- Precio ClaveNomDircClave- Nombreproducto producto producto proveedor proveedor proveedor cliente cliente Fecha Montode compra compra

41

EJEMPLOS de Normalizacin de bases de datos


Ejemplo completo 1 Ejemplo prctico. Cmo a partir de una factura podemos disear una base de datos sencilla aplicando su normalizacin. Aqu podrs ver cmo a partir de una simple factura podemos desarrollar una base de datos normalizada. Diccionario de datos: Forma UNF

FAC-NUM: Nmero de Factura de Compra-Venta FAC-FECHA: Fecha de la factura de Compra-Venta CLI-NOM: Nombre del Cliente CLI-DIR: Direccin del Cliente CLI-CC: Cdula del Cliente CLI-TEL: Telfono del Cliente CATEGORIA: Categora del producto CODIGO: Cdigo del Producto DESC: Descripcin del producto VR-UNIT: Valor Unitario del producto CANT: Cantidad de productos a pedir

Primera Forma Normal (1FN): Para el grupo repetitivo podemos ver que corresponden a los tems de CATEGORA, CDIGO, DESC, VR-UNIT y CANT, ya que para la misma factura se pueden tener varios tems de stos.

42

Grupo No Repetitivo Grupo Repetitivo FAC-NUM CATEGORA FAC-FECHA CDIGO CLI-NOM DESC CLI-DIR VR-UNIT CLI-CC CANT CLI-TEL Para el grupo repetitivo se tiene como llave el campo de CDIGO, ya que el campo de CATEGORA se puede repetir varias veces para distintos productos, mientras que el campo de CDIGO es nico. Por lo cual se combina con el campo FAC-NUM para que quede como llave nica. Grupo 1 FAC-NUM FAC-FECHA CLI-NOM CLI-DIR CLI-CC CLI-TEL Grupo 2 FAC-NUM CDIGO CATEGORA DESC VR-UNIT CANT

43

Segunda Forma Normal (2FN): Para los campos CATEGORA, DESC y VR-UNIT no dependen enteramente de la llave compuesta, sino que slo dependen del campo CDIGO, por lo que generamos un tercer grupo cuya llave va a ser CDIGO: Grupo 1 FAC-NUM FAC-FECHA FAC-NUM CLI-NOM CDIGO CLI-DIR CANT CLI-CC CLI-TEL Tercera Forma Normal (3FN): Para el grupo 1 los campos CLI-NOM, CLI-DIR y CLI-TEL son totalmente dependientes de CLI-CC, por lo que genero un grupo 4 que contiene los datos del cliente, quedando: Grupo 1 Grupo 2 Grupo 3 CDIGO FAC-NUM FAC-NUM CATEGORA FAC-FECHA CDIGO DESC CLI-CC CANT VR-UNIT CLI-TEL CLI-DIR CLI-NOM Grupo 4 CLI-CC VR-UNIT DESC CATEGORA CDIGO Grupo 2 Grupo 3

Y finalmente cada grupo corresponde a una tabla en la base de datos.

44

Ejemplo completo 2 Un dato sin normalizar no cumple con ninguna regla de normalizacin. Para explicar con un ejemplo en qu consiste cada una de las reglas, vamos a considerar los datos de la siguiente tabla.

ID_ORD EN 2301 2301 2301 2302 2303 2303

FECH A 2/23/0 3 2/23/0 3 2/23/0 3 2/25/0 3 2/27/0 3 2/27/0 3

ID_CLIEN TE 101 101 101 107 110 110

NOM_CLIEN TE MARTI MARTI MARTI HERMAN WESPORTS WESPORTS

ESTAD O CA CA CA WI MI MI

NUM_IT EM 3786 4011 9132 5794 4011 3141

DESC_IT EM RED RAQUET A PAQ-3 PAQ-6 RAQUET A FUNDA

CAN T 3 6 8 4 2 2

PRECI O 35 65 4.75 5.0 65 10

Al examinar estos registros, podemos darnos cuenta que contienen un grupo repetido para NUM_ITEM, DESC_ITEM, CANT y PRECIO. La primera forma normal 1FN prohbe 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 RDENES y ARTICULOS_ORDENES - ORDENES: ID_ORDEN 2301 2302 2303 FECHA ID_CLIENTE NOM_CLIENTE ESTADO 2/23/03 101 MARTI CA 2/25/03 107 HERMAN WI 2/27/03 110 WE-SPORTS MI

45

- ARTICULOS_ORDENES: ID_ORDEN NUM_ITEM DESC_ITEM CANT PRECIO 2301 3786 RED 3 35 2301 4011 RAQUETA 6 65 2301 9132 PAQ-3 8 4.75 2302 5794 PAQ-6 4 5.0 2303 4011 RAQUETA 2 65 2303 3141 FUNDA 2 10 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 cules 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.

La tabla RDENES est en 2FN. Cualquier valor nico de ID_ORDEN determina un slo 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 continuacin 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: - ARTICULOS_ORDENES: ID_ORDEN 2301 2301 2301 2302 2303 2303 NUM_ITEM 3786 4011 9132 5794 4011 3141 CANT 3 6 8 4 2 2

46

- ARTICULOS: NUM_ITEM 3786 4011 9132 5794 4011 3141 DESC_ITEM RED RAQUETA PAQ-3 PAQ-6 RAQUETA FUNDA PRECIO 35 65 4.75 5.0 65 10

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 RDENES 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 RDENES se muestran a continuacin. - ORDENES ID_ORDEN 2301 2302 2303 FECHA 2/23/03 2/25/03 2/27/03 ID_CLIENTE 101 107 110

- CLIENTES ID_CLIENTE 101 107 110 NOM_CLIENTE MARTI HERMAN WE-SPORTS ESTADO CA WI MI
47

Ejemplo completo 3 Ejemplo de una base de datos para una pequea biblioteca. CodLibr o 1001 1004 1005 Titulo Variable compleja Visual Basic 5 Estadstica Autor Editorial NombreLect or FechaDe v

Murray Spieg McGraw Hil Prez 15/04/200 el l Gmez, Juan 5 E. Petroustso Anaya s Ros Tern, Ana 17/04/200 5 16/04/200 5 20/04/200 5

Murray Spieg McGraw Hil Roca, Ren el l Oracle Cor p. Garca Roque, Luis

1006

Nancy Oracle Universi Greenberg y ty Priya Nathan Clipper 5.01 Ramalho

1007

McGraw Hil Prez 18/04/200 l Gmez, Juan 5

Esta tabla no cumple el requisito de la Primera Forma Normal (1NF) de slo tener campos atmicos, pues el nombre del lector es un campo que puede (y conviene) descomponerse en apellido paterno, apellido materno y nombres. Tal como se muestra en la siguiente tabla. 1NF CodLibro 1001 1004 1005 1006 1006 1007 Titulo Variable compleja Visual Basic 5 Estadstica Autor Murray Spiegel E. Petroustsos Murray Spiegel Editorial Paterno Materno Nombres FechaDev Gmez Tern Juan Ana Ren Roque Roque Gmez Luis Luis Juan 15/04/2005 17/04/2005 16/04/2005 20/04/2005 20/04/2005 18/04/2005

McGraw Hill Prez Anaya Ros

McGraw Hill Roca

OracleUniversity NancyGreenberg Oracle Corp. Garca OracleUniversity Priya Nathan Clipper 5.01 Ramalho Oracle Corp. Garca McGraw Hill Prez

Como se puede ver, hay cierta redundancia caracterstica de 1NF. La Segunda Forma Normal (2NF) pide que no existan dependencias parciales o dicho de otra manera, todos los atributos no clave deben depender por completo de la clave primaria. Actualmente en nuestra tabla tenemos varias dependencias parciales si consideramos como atributo clave el cdigo del libro.

48

Por ejemplo, el ttulo es completamente identificado por el cdigo del libro, pero el nombre del lector en realidad no tiene dependencia de este cdigo, por tanto estos datos deben ser trasladados a otra tabla. 2NF CodLibro Titulo 1001 1004 1005 1006 1006 1007 Variable compleja Visual Basic 5 Estadstica Autor Murray Spiegel E. Petroustsos Murray Spiegel Editorial McGraw Hill Anaya McGraw Hill

Oracle University NancyGreenberg Oracle Corp. Oracle University Priya Nathan Clipper 5.01 Ramalho Oracle Corp. McGraw Hill

La nueva tabla slo contendr datos del lector. CodLector Paterno Materno Nombres 501 502 503 504 Prez Ros Roca Garca Gmez Tern Ruiz Roque Juan Ana Ren Luis

Hemos creado una tabla para contener los datos del lector y tambin tuvimos que crear la columna CodLector para identificar unvocamente a cada uno. Sin embargo, esta nueva disposicin de la base de datos necesita que exista otra tabla para mantener la informacin de qu libros estn prestados a qu lectores. Esta tabla se muestra a continuacin: CodLibro CodLector FechaDev 1001 1004 1005 1006 1007 501 502 503 504 501 15/04/2005 17/04/2005 16/04/2005 20/04/2005 18/04/2005

49

Para la Tercera Forma Normal (3NF) la relacin debe estar en 2NF y adems los atributos no clave deben ser mutuamente independientes y dependientes por completo de la clave primaria. Tambin recordemos que dijimos que esto significa que las columnas en la tabla deben contener solamente informacin sobre la entidad definida por la clave primaria y, por tanto, las columnas en la tabla deben contener datos acerca de una sola cosa. En nuestro ejemplo en 2NF, la primera tabla conserva informacin acerca del libro, los autores y editoriales, por lo que debemos crear nuevas tablas para satisfacer los requisitos de 3NF. 3NF CodAutor Autor CodLibro Titulo Variable 1001 compleja 1004 Visual Basic 5 1005 Estadstica 1006 Oracle University 1007 Clipper 5.01 801 Murray Spiegel 802 E. Petroustsos 803 Nancy Greenberg 804 Priya Nathan 806 Ramalho

CodEditorial

Editorial

901 McGraw Hill 902 Anaya 903 Oracle Corp.

Aunque hemos creado nuevas tablas para que cada una tenga slo informacin acerca de una entidad, tambin hemos perdido la informacin acerca de qu autor ha escrito qu libro y las editoriales correspondientes, por lo que debemos crear otras tablas que relacionen cada libro con sus autores y editoriales. CodLibro codAutor 1001 1004 1005 1006 801 802 801 803

50

CodLibro codAutor 1006 1007 804 806

CodLibro codEditorial 1001 1004 1005 1006 1007 901 902 901 903 901

Y el resto de las tablas no necesitan modificacin.

CodLector Paterno Materno Nombres 501 Prez 502 Ros 503 Roca 504 Garca Roque Gmez Tern Juan Ana Ren Luis

CodLibro CodLector FechaDev 1001 1004 1005 1006 1007 501 15/04/2005 502 17/04/2005 503 16/04/2005 504 20/04/2005 501 18/04/2005

51

EJEMPLOS de Normalizacin de bases de datos


Ejemplo 1

Veamos por ejemplo el modelo entidad-relacin simplificado (sin los atributos o campos de cada entidad) que describe la BD de la academia que se ha usado en las dos lecciones anteriores:

Observamos que existen tres entidades: CURSOS, PROFESORES y ALUMNOS, tambin se observa la cardinalidad de las relaciones mediante los indicadores a ambos lados de las mismas, junto a las entidades que se estn relacionando. Para establecer la cardinalidad de relaciones debemos formularnos las preguntas que responden a dicha cuestin, por ejemplo, tomemos la relacin CURSOS PROFESORES y veamos cmo se establece la cardinalidad de dicha relacin:

Un profesor puede impartir varios cursos. Lo que implica anotar una N en el lado de la entidad CURSOS de dicha relacin. Un curso es impartido por un solo profesor. Lo que implica anotar un UNO en el lado de la entidad PROFESORES de dicha relacin.

Como ya se dijo con anterioridad este tipo de relacin implica aadir una clave fornea de la tabla PROFESORES en la tabla CURSOS. Es decir, el campo ID_PROFE de la tabla CURSOS. Tomemos ahora la relacin CURSOS - ALUMNOS:

En un curso se matriculan varios alumnos. Lo que implica anotar una N en el lado de la entidad ALUMNOS de dicha relacin.
52

Un alumno puede asistir a varios cursos. Lo que implica anotar una M en el lado de la entidad CURSOS de dicha relacin. Obsrvese que se anota M porque la N ya se usa en el otro extremo de la relacin, con esto se indica que es una relacin de varios a varios pudiendo ser N y M de distinto valor para un curso y alumno dados. Como ya se dijo con anterioridad este tipo de relacin implica crear en la BD una tabla auxiliar llamada tabla de relacin.

http://www.programacion.com/articulo/modelo_entidad_relacion_212/5

Ejemplo 2 A medida que se van estableciendo las interrelaciones hay que prestar especial atencin a las interrelaciones cclicas o redundantes, que son aquellas que su eliminacin no implica la prdida de informacin. Pongamos como ejemplo en siguiente modelo entidad - relacin:

Segn se plantea el esquema la relacin "PERTECE" se puede suprimir porque para saber a qu departamentos pertenece un profesor basta con saber que cursos imparte y conociendo los cursos averiguamos que departamentos estn asociados a los cursos. En este caso se dice que: "PERTENECE" = "IMPARTE" + "ADSCRITO". En determinadas ocasiones aparecen relaciones que asocian a ms de dos entidades, se trata de las relaciones de grado superior. Un ejemplo de este tipo de relacin es el siguiente diagrama: http://www.programacion.com/articulo/modelo_entidad_relacion_212/5
53

54

Ejemplo 3 http://ame28.wordpress.com/2010/03/21/ejercicios-modelo-entidad-relacion1%C2%AA-parte/ Una empresa vende productos a varios clientes. Se necesita conocer los datos personales de los clientes (nombre, apellidos, DNI, direccin y fecha de nacimiento). Cada producto tiene un nombre y un cdigo, as como un precio unitario. Un cliente puede comprar varios productos a la empresa, y un mismo producto puede ser comprado por varios clientes. Los productos son suministrados por diferentes proveedores. Se debe tener en cuenta que un producto slo puede ser suministrado por un proveedor, y que un proveedor puede suministrar diferentes productos. De cada proveedor se desea conocer el NIF, nombre y direccin.

55

Potrebbero piacerti anche