Sei sulla pagina 1di 48

BASE DE DATOS 1 Preparado por:

JOSE PALACIO EDGAR MORILLO

Reservados todos los derechos, prohibida su reproduccin total o parcial.

Copyright 2003

BASE DE DATOS 1

CONTENIDO

BASE DE DATOS ........................................................... 1

DISEO DE UNA BASE DE DATOS ..............................15

PROBLEMAS PROPUESTOS ........................................40

BASE DE DATOS 1

La organizacin de informacin, ya sea a nivel de empresa o simplemente a nivel domestico, conlleva a buscar la mejor manera de realizar esta labor, a nivel de empresa se puede pensar en una serie de archivadores que permitan organizar todos los documentos de la misma, permitiendo su manipulacin de forma fcil y rpida. A nivel domestico, una simple libreta donde se lleve un directorio con todos los telfonos de amigos, conocidos y familiares.

Hay muchas formas de organizar informacin; con el desarrollo de los computadores, estas formas de organizacin se ampliaron en gran medida, permitiendo la administracin y organizacin de forma mucho ms rpida y eficiente. En 1963, en un simposio celebrado en California se habl por primera vez de trmino de bases de datos, y desde entonces se han venido desarrollando una serie de software enfocados a la administracin de dichas bases de datos.

BASE DE DATOS 1

CONCEPTOS GENERALES

Dato: Conjunto de caracteres con algn significado, pueden ser numricos, alfabticos o alfanumricos.

Informacin: Es un conjunto ordenado de datos, los cuales son manejados segn la necesidad del usuario. Para que un conjunto de datos pueda ser procesador eficientemente y pueda dar lugar a informacin, primero se debe guardar lgicamente en un archivo.

Archivo:

Coleccin

de

registros

almacenamiento

siguiendo

una

estructura

homognea.

Campo: Es la unidad ms pequea a la cual uno puede referirse en un programa. Desde el punto de vista del programador representa una caracterstica de un individuo u objeto.

Registro: Coleccin de campos de iguales o de diferentes tipos referentes a una misma entidad de la base de datos.

BASE DE DATOS 1
Base de Datos: Una base de datos se puede definir como un conjunto de informacin relacionada que se encuentra agrupada estructurada.

Desde el punto de vista de informtico, la base de datos es un sistema formado por un conjunto de datos almacenados en discos que permiten el acceso directo a ellos y un conjunto de programas que manipulen ese conjunto de datos (DBMS).

El contenido de una base de datos engloba a la informacin concerniente de una organizacin, de tal manera que los datos estn disponibles para los usuarios, una finalidad de la base de datos es eliminar la redundancia de datos o al menos disminuirla. Los tres componentes principales de un sistema de base de datos son el hardware, el software DBMS y los datos a manejar, as como el personal encargado del manejo del sistema.

Las bases de datos buscan facilitar la manipulacin de informacin en cualquier ambiente donde se necesite un manejo exhaustivo de datos, y se requiera seguridad y facilidad en dicho manejo, buscando rapidez y eficacia en la manipulacin de los datos.

BASE DE DATOS 1

OBJETOS DE UNA BASE DE DATOS

Tablas: Estas son la parte central de una base de datos, ya que estas son las que contienen toda la informacin que va a ser organizada, en estos objetos es donde se centra todo el diseo de la base de datos, ya que a partir de aqu se comenzar a ramificar todos los dems objetos que harn parte de la base de datos, por lo tanto es aqu donde se debe poner ms nfasis a la hora de disear una base de datos.

Una tabla es muy similar a una hoja de datos de Microsoft Excel, ya que est formada por filas y columnas. Sin embargo, en una base de datos, las columnas son conocidas como campos y almacenan datos con ciertas caractersticas o atributos. Por ejemplo, en una tabla de clientes, puede existir un campo para telfonos y otro para direcciones electrnicas. Por su parte, las filas son llamadas registros y ah es donde se agregan las direcciones o telfonos de cada cliente.

BASE DE DATOS 1
Consultas: Es un elemento de la base de datos que se utiliza para visualizar, modificar y requerir informacin de las tablas. Al realizar una consulta, se especifica un criterio de seleccin para visualizar los datos que cumplan dicho criterio.

Informes: Es un objeto de la base de datos que presenta la informacin almacenada en las tablas en una vista preliminar o en un formato impreso de una manera clara y organizada. Se utiliza para distribuir una copia de la informacin a los usuarios de la base de datos.

Relaciones: Una relacin especifica la unin de dos o ms tablas por medio de un campo en comn que posean entre ellas. De esta forma los datos entre una tablas y otra presentan cierta consistencia y permite manipular su informacin como si fueran una sola tabla. El tema de las relaciones ser ampliado ms adelante en este mdulo.

BASE DE DATOS 1

CARACTERSTICAS DE UNA BASE DE DATOS

Una base de datos contiene entidades de informacin que estn relacionadas va organizacin y asociacin. La arquitectura lgica de una base de datos se define mediante un esquema que representa las definiciones de las relaciones entre las entidades de informacin. La arquitectura fsica de una base de datos depende de la configuracin del hardware residente. Sin embargo, tanto el esquema (descripcin lgica) como la organizacin (descripcin fsica) deben adecuarse para satisfacer los requerimientos funcionales y de comportamiento para el acceso al anlisis y creacin de informes.

IMPORTANCIA DE LAS BASES DE DATOS

La utilizacin de bases de datos como plataforma para el desarrollo de Sistemas de Aplicacin en las Organizaciones se ha incrementado notablemente en los ltimos aos, se debe a las ventajas que ofrece su utilizacin, algunas de las cuales se comentarn a continuacin:

Globalizacin de la informacin: permite a los diferentes usuarios considerar la informacin como un recurso corporativo que carece de dueos especficos.
8

BASE DE DATOS 1
Eliminacin de informacin inconsistente: si existen dos o ms archivos con la misma informacin, los cambios que se hagan a stos debern hacerse a todas las copias del archivo. Permite compartir informacin. Permite mantener la integridad en la informacin: la integridad de la informacin es una de sus cualidades altamente deseable y tiene por objetivo que slo se almacena la informacin correcta. Independencia de datos: el concepto de independencia de datos es quizs el que ms ha ayudado a la rpida proliferacin del desarrollo de Sistemas de Bases de Datos. La independencia de datos implica un divorcio entre programas y datos.

MODELOS DE BASE DE DATOS

Existen distintos modos de organizar la informacin y representar las relaciones entre los datos en una base de datos. Los sistemas administradores de bases de datos convencionales usan uno de los tres modelos lgicos de bases de datos para hacer seguimiento de las entidades, atributos y relaciones. Los tres modelos lgicos principalmente de bases de datos son el jerrquico, de redes y el relacional. Cada modelo lgico tiene ciertas ventajas de procesamiento y tambin ciertas ventajas de negocios.

BASE DE DATOS 1

Modelo de jerrquico de datos Una clase de modelo lgico de bases de datos que tiene una estructura arborescente. Un registro subdivide en segmentos que se interconectan en relaciones padre e hijo y muchos ms. Los primeros sistemas administradores de bases de datos eran

jerrquicos. Puede representar dos tipos de relaciones entre los datos: relaciones de uno a uno y relaciones de uno a muchos.

Modelo de datos en red Es una variacin del modelo de datos jerrquico. De hecho las bases de datos pueden traducirse de jerrquicas a en redes y viceversa con el objeto de optimizar la velocidad y la conveniencia del procesamiento. jerrquicas describen relaciones de muchos a muchos. Mientras que las estructuras

Modelo relacional de datos: Es el ms reciente de estos modelos, supera algunas de las limitaciones de los otros dos anteriores. El modelo relacional de datos representa todos los datos en la base de datos como sencillas tablas de dos dimensiones llamadas relaciones. Las tablas son semejantes a los archivos planos, pero la informacin en ms de un archivo puede ser fcilmente extrada y combinada.

10

BASE DE DATOS 1

MANEJADORES DE BASES DE DATOS Un DBMS (Data Base Management System) es una coleccin de numerosas rutinas de software interrelacionadas, cada una de las cuales es responsable de una tarea especfica, se encarga de administrar y gestionar toda la integridad de los datos.

El objetivo primordial de un sistema manejador de base de datos es proporcionar un contorno que sea a la vez, conveniente y eficiente, para ser utilizado al extraer, almacenar y manipular informacin de la base de datos. Todas las peticiones de acceso a la base, se manejan centralizadamente por medio del DBMS, por lo que este paquete funciona como interfase entre los usuarios y la base de datos.

Las funciones principales de un DBMS son: Crear y organizar la base de datos. Establecer las relaciones entre las tablas. Establecer y mantener las trayectorias de acceso a la base de datos de tal forma que los datos puedan ser accesados rpidamente. Manejar los datos de acuerdo a las peticiones de los usuarios. Registrar el uso de la base de datos. Interaccin con el manejador de archivos. Esto a travs de una serie de sentencias al comando del sistema de archivos. As el manejador de base de datos es el responsable del verdadero almacenamiento de los datos.
11

BASE DE DATOS 1
Respaldo y recuperacin. Consiste en contar con mecanismos implantados que permitan la recuperacin fcil de datos en caso de ocurrir fallas en el sistema de base de datos. Control de concurrencia. Consiste en controlar la interaccin entre usuarios concurrentes para no afectar la consistencia de los datos. Seguridad e integridad. Consiste en contar con mecanismos que permitan el control de la consistencia de los datos evitando que estos se vean perjudicados por cambios no autorizados o previstos.

El DBMS es conocido tambin como Gestor de Base de Datos.


Peticin del usuario Indagaciones DBMS Sistema de manejo de archivos Sistema Operativo Base de datos fsica Base de datos

La figura muestra el DBMS como interfase entre la base de datos fsica y las peticiones del usuario. El DBMS interpreta las peticiones de entrada/salida del usuario y las manda al sistema operativo para la transferencia de datos entre la unidad de memoria secundaria y memoria principal.

En s, un sistema manejador de base de datos es el corazn de la base de datos ya que se encarga del control total de los posibles aspectos que la puedan afectar.
12

BASE DE DATOS 1
Entre los programas manejadores de bases de datos que existen en la actualidad tenemos: Oracle, SQL Server, Microsoft Visual Fox Pro, Microsoft Access, Informix, MySQL, Paradox, e incluso programas como Visual Basic, que no se encuentran enfocados hacia el manejo de base de datos, posee formas de manejar las mismas. Cada DBMS posee sus propias caractersticas, cual es mejor de tos depender de las necesidades del usuario, los requerimientos de la base de datos y el tamao de la misma.

ARQUITECTURA CLIENTE / SERVIDOR

El concepto de cliente / servidor proporciona una forma eficiente de utilizar todos estos recursos de mquina, de tal forma que la seguridad y fiabilidad que proporcionan los entornos mainframe se traspasa a la red de rea local. A esto hay que aadir la ventaja de la potencia y simplicidad de los ordenadores personales.

La arquitectura cliente / servidor es un modelo para el desarrollo de sistemas de informacin, en el que las transacciones se dividen en procesos independientes que cooperan entre s para intercambiar informacin, servicios o recursos. Se denomina cliente al proceso que inicia el dilogo o solicita los recursos y servidor, al proceso que responde a las solicitudes.

13

BASE DE DATOS 1
Es el modelo de interaccin ms comn entre aplicaciones en una red. No forma parte de los conceptos de la Internet como los protocolos IP, TCP o UDP, sin embargo todos los servicios estndares de alto nivel propuestos en Internet funcionan segn este modelo.

Los principales componentes del esquema cliente / servidor son entonces los Clientes, los Servidores y la infraestructura de comunicaciones.

Medio de Transmisin

SERVIDOR El servidor responde a las peticiones de los clientes

CLIENTES Los clientes hacen peticiones al servidor

En este modelo, las aplicaciones se dividen de forma que el servidor contiene la parte que debe ser compartida por varios usuarios, y en el cliente permanece slo lo particular de cada usuario.

14

BASE DE DATOS 1
Los Clientes interactan con el usuario, usualmente en forma grfica. Frecuentemente se comunican con procesos auxiliares que se encargan de establecer conexin con el servidor, enviar el pedido, recibir la respuesta, manejar las fallas y realizar actividades de sincronizacin y de seguridad.

Los clientes realizan generalmente funciones como: Manejo de la interfase del usuario. Captura y validacin de los datos de entrada. Generacin de consultas e informes sobre las bases de datos.

Los Servidores proporcionan un servicio al cliente y devuelven los resultados. En algunos casos existen procesos auxiliares que se encargan de recibir las solicitudes del cliente, verificar la proteccin, activar un proceso servidor para satisfacer el pedido, recibir su respuesta y enviarla al cliente. Adems, deben manejar los interbloqueos, la recuperacin ante fallas, y otros aspectos afines. Por las razones anteriores, la plataforma computacional asociada con los servidores es ms poderosa que la de los clientes. Por esta razn se utilizan PCs poderosas, estaciones de trabajo, minicomputadores o sistemas grandes. Adems deben manejar servicios como administracin de la red, mensajes, control y administracin de la entrada al sistema (login), auditoria y recuperacin y contabilidad. Usualmente en los servidores existe algn tipo de servicio de bases de datos. En ciertas circunstancias,

15

BASE DE DATOS 1
este trmino designar a una mquina. Este ser el caso si dicha mquina est dedicada a un servicio particular, por ejemplo: servidores de impresin, servidor de archivos, servidor de correo electrnico, etc.

Por su parte los servidores realizan, entre otras, las siguientes funciones: Gestin de perifricos compartidos. Control de accesos concurrentes a bases de datos compartidas. Enlaces de comunicaciones con otras redes de rea local o extensa. Siempre que un cliente requiere un servicio lo solicita al servidor correspondiente y ste, le responde proporcionndolo. Normalmente, pero no necesariamente, el cliente y el servidor estn ubicados en distintos procesadores. Los clientes se suelen situar en ordenadores personales y/o estaciones de trabajo y los servidores en procesadores departamentales o de grupo.

Para que los clientes y los servidores puedan comunicarse se requiere una infraestructura de comunicaciones, la cual proporciona los mecanismos bsicos de direccionamiento y transporte. La red debe tener caractersticas adecuadas de desempeo, confiabilidad, transparencia y administracin.

Entre las principales caractersticas de la arquitectura cliente / servidor, se pueden destacar las siguientes:
16

BASE DE DATOS 1
El servidor presenta a todos sus clientes una interface nica y bien definida. El cliente no necesita conocer la lgica del servidor, slo su interface externa. El cliente no depende de la ubicacin fsica del servidor, ni del tipo de equipo fsico en el que se encuentra, ni de su sistema operativo. Los cambios en el servidor implican pocos o ningn cambio en el cliente.

Como ejemplos de clientes pueden citarse interfaces de usuario para enviar comandos a un servidor, APIs para el desarrollo de aplicaciones distribuidas, herramientas en el cliente para hacer acceso a servidores remotos (por ejemplo, servidores de SQL) o aplicaciones que solicitan acceso a servidores para algunos servicios.

Como ejemplos de servidores pueden citarse servidores de ventanas como XWindow, servidores de archivos como NFS, servidores para el manejo de bases de datos (como los servidores de SQL), servidores de diseo y manufactura asistidos por computador, etc.

17

BASE DE DATOS 1
Las ventajas y desventajas de este sistema en el manejo de base de datos son las siguientes:
VENTAJAS Mayor seguridad: Los datos son accesados en forma indirecta Mejor rendimiento: El procesamiento y la lectura de los datos se realiza en el servidor, y l transmite los resultados al cliente para que se encargue de mostrarlos. DESVENTAJAS Complejidad: No son fciles de configurar. Requerimientos: Para dar servicios a usuarios, el servidor requiere ser una mquina potente, ya que a mayor nmero de clientes necesitar ms potencia de procesamiento y consumir ms memoria.

BASE DE DATOS DISTRIBUIDAS

Una Base de Datos Distribuida es, una base de datos construida sobre una red computacional y no por el contrario en una mquina aislada. La informacin que constituye la base de datos esta almacenada en diferentes sitios en la red, y las aplicaciones que se ejecutan accesan datos en distintos sitios.

Un sistema de base de datos distribuidas se compone de un conjunto de sitios, conectados entre s mediante algn tipo de red de comunicaciones, en el cual cada sitio es un sistema de base de datos en s mismo, pero los sitios han convenido en trabajar juntos (si es necesario) con el fin de que un usuario de cualquier sitio pueda

18

BASE DE DATOS 1
obtener acceso a los datos de cualquier punto de la red tal como si todos los datos estuvieran almacenados en el sitio propio del usuario.

En consecuencia, la llamada base de datos distribuida es en realidad una especie de objeto virtual, cuyas partes componentes se almacenan fsicamente en varias bases de datos reales distintas ubicadas en diferentes sitios. De hecho, es la unin lgica de esas bases de datos. En otras palabras, cada sitio tiene sus propias bases de datos reales locales, sus propios usuarios locales, sus propios DBMS y programas para la administracin de transacciones, y su propio administrador local de comunicacin de datos (administrador DC). En particular un usuario dado puede realizar operaciones sobre los datos en su propio sitio local exactamente como si ese sitio no participara en absoluto en el sistema distribuido. As pues, el sistema de bases de datos distribuidas puede considerarse como una especie de sociedad entre los DBMS individuales locales de todos los sitios. Un nuevo componente de software en cada sitio (en el aspecto lgico, una extensin del DBMS local) realiza las funciones de sociedad necesarias; y es la combinacin de este nuevo componente y el DBMS ya existente lo que constituye el llamado sistema de administracin de bases de datos distribuidas (DDBMS, distributed database management system ).

19

BASE DE DATOS 1

CMO FUNCIONA UNA BASE DE DATOS?

La complejidad de estas bases de datos depende del aspecto de negocio que traten y tambin de su finalidad. De tal forma que pueden ser tan sencillas como un listado con los datos de sus empleados, que se utilice principalmente como directorio e incluya el nombre, puesto, ingreso y datos personales de los mismos. O bien, puede ser un archivo que integre todas las operaciones de sus clientes, como sus datos generales, sus compras y los tipos de crditos que tienen.

En un manejador de base de datos, es posible almacenar y clasificar la informacin de una sola base de datos en diversas tablas, dependiendo de las caractersticas de los datos y del tema con el que estn relacionados. Por ejemplo, su base de datos de clientes puede estar formada por una tabla con las actividades de sus compradores (sean usuarios finales o revendedores), otra con la clase de crdito que tienen (30, 60, 90 das), otra con las compras y otra ms con sus datos generales (nombre de la empresa o de la persona, direccin, telfono, etc.).

20

BASE DE DATOS 1

Una vez que se tiene clasificada la informacin que desea incluir, es necesario definir las relaciones entre las tablas, es decir, indicar cmo se vinculan los datos de las mismas. Si tomamos el ejemplo anterior, en este paso debemos establecer cmo los datos de la tabla crditos debe integrar a la tabla con los datos generales de cada cliente.

Tambin puede crear formularios para ver, introducir o cambiar datos directamente en una tabla de una manera sencilla. As mismo, mediante consultas puede obtener informacin que relacione los datos de diversas tablas, como crear un listado de compras por cliente.

Una de sus principales ventajas es que permiten reunir y administrar, desde un solo lugar, la informacin que proviene de distintas fuentes. As, al tener los datos de sus clientes en un archivo, si alguno cambia de telfono usted nicamente tendr que hacer los cambios en este archivo central, y el resto de los materiales que usen este documento como referencia puede ser actualizado en forma automtica.

21

BASE DE DATOS 1
Todo este proceso se maneja por medio de las relaciones entre tablas y la integridad referencial.

DISEO DE UNA BASE DE DATOS

Para el diseo de una base de datos eficiente se requiere de un anlisis exhaustivo de la informacin que ser almacenada y como se maneja la misma en la empresa donde se implantar el sistema, este proceso fue explicado anteriormente en los mdulos de anlisis y diseo de sistemas.

Como en la mayora de los procesos de negocio donde se utiliza la tecnologa para obtener los mejores resultados es conveniente que usted invierta algn tiempo en el diseo. Esto significa que necesitar definir primero el tema de su archivo (por ejemplo, operaciones por clientes), as mismo, deber identificar los diferentes aspectos que lo componen y la informacin especfica de cada uno que desea incluir. Tambin debe considerar cul ser la funcin de su base de datos y para qu ser utilizada. Un buen diseo es la pieza clave para realizar las operaciones que necesita de una forma efectiva, precisa y eficaz.

stos son los pasos bsicos para disear una base de datos: 1. Determinar su finalidad.

22

BASE DE DATOS 1
2. Determinar las tablas que se necesitan. 3. Determinar los campos que se incluirn en las tablas. 4. Determinar las relaciones entre las tablas. 5. Agregar datos.

1. Determinar la finalidad de la base de datos

Determine el objetivo de su base de datos y la forma en que desea utilizarla. Un ejemplo puede ser llevar un control de las operaciones de sus clientes.

Especifique, de acuerdo al anlisis de sistemas realizado todas las preguntas que desea que responda su base de datos. Es posible que adems de conocer las compras por cliente, desee tener un reporte del estado de sus crditos. Una buena idea es realizar bocetos de los informes que requiere y analizar los materiales o reportes que utiliza actualmente.

2. Determinar las tablas que se necesitan Determinar las tablas puede ser el paso ms complicado, ya que usted necesitar identificar y clasificar cada uno de los diferentes aspectos que se relacionan con el objetivo general de su base de datos. En nuestro caso los aspectos relacionados pueden ser actividades, crditos, compras y datos generales.
23

BASE DE DATOS 1
Para disear las tablas, considere los siguientes aspectos:

La informacin no debe duplicarse dentro de una tabla y tampoco entre las diversas tablas que forman una base de datos. Por ejemplo, almacene la direccin y el nmero de telfono de cada cliente una sola vez en una sola tabla (por ejemplo, en la tabla datos generales), en lugar de capturarlo repetidas veces en diversas tablas. Posteriormente utilice esta tabla como fuente de datos, es decir cree un vnculo a sta cuando necesite hacer referencia a estos datos. Esto aumentar la eficiencia de sus sistemas y eliminar la posibilidad de que existan entradas duplicadas que contengan informacin inexacta.

Cada tabla debe contener informacin sobre un solo tema. Por ejemplo, almacene los datos generales de sus clientes (direccin, telfono, direccin electrnica) en una tabla y las compras en otra. De esta forma, podr mantener independiente la informacin acerca de cada aspecto.

3. Determinar los campos que se necesitan

Una vez que se ha definido las tablas que se necesitarn, se debe especificar concretamente en la clase de datos que necesita incluir, estos son los campos. Como hemos mencionado anteriormente, la tabla de Datos generales de clientes puede

24

BASE DE DATOS 1
incluir los campos del nombre de la compaa, la direccin, la ciudad, el pas y el nmero de telfono.

Para realizar el diseo de los campos, tenga presentes estos puntos: Almacene informacin en sus partes ms pequeas (por ejemplo, Nombre y Apellidos, en lugar del Nombre completo). No incluya datos derivados ni calculados (datos que son el resultado de una operacin). Asegrese que cada campo est relacionado con el asunto concreto de la tabla. Por otro lado, para establecer relaciones entre la informacin almacenada en tablas independientes (por ejemplo, para conectar a un cliente con todas sus compras), cada tabla debe contener un campo o un conjunto de campos que identifiquen de forma exclusiva cada registro individual de la tabla. Este campo es conocido como clave principal.

El proceso de disear las tablas y los campos que contendrn las mismas se denomina NORMALIZACION.

25

BASE DE DATOS 1
4. Determinar las relaciones entre las tablas

Despus de dividir la informacin en tablas e identificar los campos de clave principal, necesita indicar, a la base de datos, la forma en que desea relacionar y vincular la informacin.

5. Introducir datos

Una vez que se haya diseado la estructura de la base de datos, se analizan sus elementos y relaciones, asimismo, se intentan detectar las posibles imprecisiones y cualquier duplicacin de datos. Recuerde que es ms sencillo cambiar el diseo de la base de datos cuando an est en papel que cuando ya contiene toda la informacin. Cuando considere que su diseo cumple con sus objetivos, se empiezan a agregar sus datos.

RELACIONES Como se dijo anteriormente una relacin es la unin de varias tablas por medio de un campo en comn.

26

BASE DE DATOS 1
Antes de definir los tipos de relaciones que se pueden utilizar entre las tablas definamos los tipos de campos que puede contener una tabla y cuales de dichos campos se pueden utilizar para relacionar las tablas.

TIPOS DE CAMPOS Campo PRIMARIO (llave PRIMARIA) Es un campo cuyo valor identifica de manera nica a cada registro de una tabla. Una de sus caractersticas es que no es repetible, por lo tanto es imposible que haya dos registros con el mismo valor en dicho campo. Una clave principal se conoce como clave externa cuando es referenciada desde otra tabla.

Campo FORNEO (llave FORNEA) Designa el campo o los campos que se utilizarn para relacionar una tabla con otra. En algunos casos el campo principal es el mismo campo forneo, en algunos casos la calve fornea no debe permitir valores duplicados (slo si es el campo principal de la tabla).

Campo CANDIDATO (llave CANDIDATA) Es un campo primario alternativo, utilizado para identificar de manera nica a un dato en una tabla, puede ser utilizado como campo primario de bsqueda en caso

27

BASE DE DATOS 1
de ser necesario, al igual que la llave principal no permite valores duplicados en los registros de una tabla.

Campo NORMAL (llave NORMAL) Es un campo cualquiera de la tabla que puede utilizarse para realizar una bsqueda, se caracteriza por permitir valores duplicados en los diferentes registros de una tabla, en algunos casos puede convertirse en una llave fornea para relacionar dos tablas.

TIPOS DE RELACIONES

Existen tres tipos de relaciones entre tablas: 1. Relaciones uno a uno En este tipo de relaciones un registro de una tabla A no puede tener ms de un registro coincidente en una tabla B y a un registro de la tabla B no le puede corresponde ms de un registro de la tabla A.

Este tipo de relacin se genera cuando se utilizan dos campos principales de dos tablas.

28

BASE DE DATOS 1
2. Relaciones uno a varios En esta relacin un registro de la tabla A puede tener ms de un registro coincidente en la tabla B, pero cada registro de la tabla B, tendr como mximo un registro coincidente en la tabla A. Esta es la relacin ms comn y utilizada en las bases de datos, se genera cuando se relaciona una clave principal o candidata con una clave normal.

3. Relaciones varios a varios En este caso un registro de la tabla A puede tener ms de un registro coincidente en la tabla B y a un registro de la tabla B tambin puede corresponderle ms de un registro de la tabla A. Este tipo de relacin es muy raro, y se genera cuando se relacionan dos calves normales.

INTEGRIDAD REFERENCIAL

La integridad tiene como funcin proteger la BD contra operaciones que introduzcan inconsistencias en los datos. Se habla de integridad en el sentido de correccin, validez o precisin de los datos.

29

BASE DE DATOS 1
La integridad se utiliza para validar registros de tablas relacionadas con el fin de que la informacin sea consistente, es decir, que los datos que se estn referenciando realmente existan, por ejemplo, si un cliente hace una compra, se debe asegurar que realmente exista en la base de datos.

El subsistema de integridad de un DBMS debe por tanto detectar y corregir, en la medida de lo posible, las operaciones incorrectas. En la prctica es el punto dbil de los DBMS comerciales, ya que casi toda la verificacin de integridad se realiza mediante cdigo de procedimientos escritos por los usuarios.

Habr operaciones cuya falta de correccin no sea detectable, por ejemplo, introducir una fecha de nacimiento 25/12/1945 cuando en realidad era 25/12/1954.

NORMALIZACION

La eficiencia y eficacia de una base de datos depende en un alto porcentaje de su diseo. Por tal motivo, no importa que tantas rutinas de programacin implemente, si el diseo no es apropiado, la base de datos tiende a generar inconsistencia en la informacin.

30

BASE DE DATOS 1
Para cubrir esta necesidad, se han diseado una serie de normas estandarizadas que permiten determinar y crear un diseo apropiado para la base de datos, esto es lo que llamamos normalizacin.

La normalizacin bsicamente trata de lograr la integridad referencial dentro de un sistema de base de datos, como por ejemplo evitar la redundancia y sobrecarga de datos en una tabla. Muchos diseadores hablan de la normalizacin como el sentido comn de los datos integrados en un sistema.

REGLAS

Existen 5 reglas de normalizacin, pero bsicamente con cumplir las 3 primeras se logra un buen diseo de la base de datos, cabe desatacar que estas reglas no son una camisa de fuerza ya que usted como analista y diseador puede lograr un buen diseo solo con el sentido comn.

Primer Nivel De Forma Normal 1. Eliminar los grupos repetidos de las tablas individuales. 2. Crear una tabla separada por cada grupo de datos relacionados. 3. Identificar cada grupo de datos relacionados con una clave primaria.

31

BASE DE DATOS 1
Segundo Nivel De Forma Normal 1. Crear tablas separadas para aquellos grupos de datos que se aplican a varios registros. 2. Relacionar estas tablas mediante una clave externa

Tercer Nivel De Forma Normal 1. Eliminar aquellos campos que no dependan de la clave principal.

Caso Problema N 1

Una video tienda quiere sistematizar sus procesos ms cotidianos como son los alquileres de pelcula partiendo del hecho de que se maneja informacin de (clientes, pelculas, cajeros, factura). Aclaro que esto depende del estudio que se halla

realizado en la empresa y de la ingeniera de requisitos que se halla obtenido.

Lo primero seria establecer que tablas necesito y que campos contendr cada una.

32

BASE DE DATOS 1
Tabla clientes Nombres Apellidos Telfono Direccin Tabla pelculas Nombre Formato Precio Estado Clasificacin Tabla cajeros Nombres Apellidos Tabla factura Nmerofactura Nombrecliente Apellidocliente Telfonocliente Direccincliente Pelcula Precio Cantidad Totalfactura Nombrecajero

Diseada la base de datos e ingresados algunos registros observamos que

TABLA CLIENTES
NOMBRE PEDRO ANTONIO MARIA ELENA CARLOS ALBERTO PEDRO ANTONIO PAOLA MILENA PEDRO ANTONIO APELLIDOS PEREZ PEINADO CASTELLANOS DIAZ PEREZ DE LA HOZ PEREZ PEINADO PEINADO MIRANDA PEREZ PEINADO TELFONO 3112233 3223344 3112288 3000011 3889745 315-7854926 DIRECCIN CALLE 40 58 78 CRA 80 68 54 CALLE 72 45 12 CALLE 40 58 78 CRA 78 58 98 CALLE 40 58 78

33

BASE DE DATOS 1
Si observamos los siguientes registros observamos varias cosas: 1. La informacin se esta repitiendo en el caso de Pedro Antonio ya que aparece en la tabla 3 veces, es decir se repite 3 veces el nombre del cliente en donde lo normal fuera una vez; debido a que el seor posee 2 lneas en su casa y el celular. 2. Por otro lado al momento de buscar a alguien seria muy incomodo ya que pueden existir varias personas con los mismos nombres, apellidos y por que no decir con el mismo telfono y la direccin. Es posible que vivan en la misma casa. Que casualidad, no!

Primero que todo se adicionara un campo llave principal o primaria en tabla como un cdigo o una cedula que no se repita y que identifique al cliente como un usuario nico :

Tabla clientes Cdula Nombres Apellidos Telfono Direccin

34

BASE DE DATOS 1
TABLA CLIENTES
CEDULA 70555222 22111888 22552381 70555222 65888791 70555222 NOMBRE APELLIDOS TELFONO 3112233 3223344 3112288 3000011 3889745 3157854926 DIRECCIN CALLE 40 58 78 CRA 80 68 54 CALLE 72 45 12 CALLE 40 58 78 CRA 78 58 98 CALLE 40 58 78

PEDRO ANTONIO PEREZ PEINADO MARIA ELENA CARLOS ALBERTO CASTELLANOS DIAZ PEREZ DE LA HOZ

PEDRO ANTONIO PEREZ PEINADO PAOLA MILENA PEINADO MIRANDA

PEDRO ANTONIO PEREZ PEINADO

Aqu surge otro problema y es que la cedula no permite que los campos se repitan y la 70555222 nos trae ese problema. Se debe a que el seor Pedro Antonio Prez Peinado posee mas de una lnea de telfono y esto causa que tanto los nombres como las cedulas se repitan en una misma tabla:

La solucin es construir otra tabla que se utilizara para almacenar los nmeros de telfono de los clientes, al hacer esto existirn dos tablas que posean un campo en comn, aqu entra a jugar el concepto de relacin entre tablas, naciendo as una relacin de 1 a varios, entre la tabla clientes y la nueva tabla creada:

35

BASE DE DATOS 1
TABLA TELCLIENTES
IDTEL (PRINCIPAL) 1 2 3 4 5 6 7 CEDULA (FORANEO) 70555222 70555222 70555222 22111888 22552381 65888791 65888791 TELFONO 3112233 3000011 3157854926 3223344 3112288 3889745 3889745

Como cada tabla debe tener un campo llave principal, aparece el campo IDTEL que identifica a un telfono y observe que el campo CEDULA en esta tabla se repite porque algunos clientes pueden poseer varios nmeros de telfono, adems, se debe observar, que es un campo forneo que va a comunicar esta tabla con la de clientes de 1 a varios, es decir 1 cliente puede tener 1 o mas telfonos. Y la tabla cliente quedara de la siguiente forma:

TABLA CLIENTES
CEDULA (PRINCIPAL) 70555222 22111888 22552381 65888791 NOMBRE PEDRO ANTONIO MARIA ELENA CARLOS ALBERTO PAOLA MILENA APELLIDOS PEREZ PEINADO CASTELLANOS DIAZ PEREZ DE LA HOZ DIRECCIN CALLE 40 58 78 CRA 80 68 54 CALLE 72 45-12

PEINADO MIRANDA CRA 78 58-98

36

BASE DE DATOS 1
El diseo de solo estas dos tablas quedara:

Tabla cliente Cdula (Primaria) Nombres Apellidos Direccin

Tabla Telclientes Idtel (Primaria) Cdula (Forneo) Telfono

Uno

Varios o muchos

O podra ser con otra simbologa 1 Uno varios o muchos.

Tabla pelculas Nombre Formato

Normalicemos la tabla pelcula: Aqu tambin encontramos un problema porque necesitamos un Cdigo de pelcula y un nuevo campo Cantidad ya que puede existir 3 Copias de MATRIX RELOADER.

Precio Estado Clasificacin

37

BASE DE DATOS 1
Sin normalizar:

PELICULAS
NOMBRE LA MOMIA II MATRIX RELOADER FACEOFF MATRIX RELOADER MATRIX RELOADER SEXTO SENTIDO EL SEOR DE LOS ANILLOS II FORMAT O DVD DVD VHS DVD DVD VHS DVD PRECIO 7000 7500 6000 7500 7500 6000 7000 ESTADO ESTRENO ESTRENO SEMIESTREN O ESTRENO ESTRENO SEMIESTREN O ESTRENO CLASIFICACIN 18 TODOS 18 TODOS TODOS 12 12

Normalizada:

PELCULAS
CODIGO
(PRIMARIA)

NOMBRE LA MOMIA II MATRIX RELOADER FACEOFF SEXTO SENTIDO EL SEOR DE LOS ANILLOS II

FORM DVD DVD VHS VHS DVD

PRECIO 7000 7500 6000 6000 7000

ESTADO ESTRENO ESTRENO SEMIESTREN O SEMIESTREN O ESTRENO

CLASIF 18 TODOS 18 12 12

CANT 1 3 1 1 1

111 222 333 444 555

38

BASE DE DATOS 1
Normalicemos la tabla Factura:
Tabla factura Nmerofactura Nombrecliente

Para la normalizacin de la tabla factura hay que tener en cuenta que existen unos campos que se repiten en diferentes tablas, y esto puede generar errores de integridad entre las diferentes tablas, ya que esta tabla ser la que unir a las otras por medio de relaciones.

Apellidocliente Telfonocliente Direccincliente Pelcula Precio Cantidad Totalfactura Nombrecajero

En esta tabla podemos observar la existencia de campos como Nombrecliente que representa el campo Nombre de la tabla Cliente, lo mismo con otros campos como Apellidocliente, etc. Al crear las tablas de una base de datos se debe tratar de evitar escribir la menor cantidad de veces los registros de una tabla, esto quiere decir que si ya existe una tabla que almacena los datos de los clientes, como nombre, apellido, direccin, etc., para que volverlos a escribir en la tabla factura, esto generara errores en la digitacin de datos, ya que podramos equivocarnos y al escribir el nombre del seor Pedro Antonio Prez Peinado, podramos escribir un nombre completamente diferente o escribirlo de forma incorrecta, lo que automticamente creara un nuevo cliente que no aparecera en la tabla clientes.

Para evitar esto seguimos creamos tablas separadas para grupos de datos relacionados, en nuestro caso, separamos los datos del cliente de la tabla factura,
39

BASE DE DATOS 1
relacionndolos por un campo en comn, que sera la cdula del cliente, lo mismo se debe hacer con los datos de la pelcula y los datos del cajero (tabla a la cual hay que agregarle un cdigo de cajero). Apareceran las tablas relacionadas de la siguiente forma:

Tabla clientes Cdula (Primaria) Nombres Apellidos Direccin Tabla cajeros Cdigo(Primaria) Nombres Apellidos Tabla factura Nmerofactura (Primaria) Cdulacliente (Fornea) CdigoPelcula (Fornea) Cantidad Totalfactura Codigocajero (Fornea)

Tabla pelculas Cdigo (Primaria) Nombre Formato Precio Estado Clasificacin Cantidad

Para saber que tipo de relacin debe existir en cada tabla, hay que utilizar el sentido comn, por ejemplo, el cliente slo puede aparecer una vez en la tabla clientes, pero, un cliente puede alquilar varias pelculas la cantidad de veces que ste desee, lo que quiere decir que puede aparecer varias veces en la tabla factura, esto permite especificar una relacin de uno a varios, entre la tabla cliente y la tabla factura, de la siguiente forma:

40

BASE DE DATOS 1
Tabla clientes Cdula (Primaria) Nombres Apellidos Direccin Tabla factura Nmerofactura (Primaria) Cdulacliente (Fornea) CdigoPelcula (Fornea) Cantidad Totalfactura Codigocajero (Fornea)

Lo mismo se debe hacer con las tablas pelculas y cajero.

Al parecer ya las tablas de la base de datos se encuentran listas para almacenar datos, pero observemos lo siguiente, digamos que el seor Pedro Antonio Prez Peinado, es un cliente asiduo de la videotienda y alquila varias pelculas el mismo da, esto quiere decir que se le entregara una sola factura con varias pelculas en ella. Adems que pasara si otro cliente alquila varias veces en la videotienda, en das diferentes:

41

BASE DE DATOS 1
FACTURA
NUMFAC (PRIMARIA) 1 1 1 2 3 4 CODCLIENT E (FORNEA) 70555222 70555222 70555222 22552381 22111888 22552381 CODPELICULA (FORNEA) 111 222 444 222 333 555 CANT 1 1 1 1 1 1 TOTALFA C 7000 7500 6000 7500 6000 6000 CODCAJERO (FORNEA) 001 001 001 001 002 002

TABLA CLIENTES
CEDULA (PRINCIPAL) 70555222 22111888 22552381 65888791 NOMBRE PEDRO ANTONIO MARIA ELENA CARLOS ALBERTO PAOLA MILENA APELLIDOS PEREZ PEINADO CASTELLANOS DIAZ PEREZ DE LA HOZ DIRECCIN CALLE 40 58 78 CRA 80 68 54 CALLE 72 45-12

PEINADO MIRANDA CRA 78 58-98

PELCULAS
CODIGO
(PRIMARIA)

NOMBRE LA MOMIA II MATRIX RELOADER FACEOFF SEXTO SENTIDO EL SEOR DE LOS ANILLOS II

FORM DVD DVD VHS VHS DVD

PRECIO 7000 7500 6000 6000 7000

ESTADO ESTRENO ESTRENO SEMIESTREN O SEMIESTREN O ESTRENO

CLASIF 18 TODOS 18 12 12

CANT 1 3 1 1 1

111 222 333 444 555

En este ejemplo notamos que en la factura 1 aparecen relacionadas varias pelculas, por lo tanto el nmero debe ser el mismo en estos registros, esto rompe la regla de la clave primaria, que dice que este campo no puede repetirse en diferentes registros, adems se debe registrar la fecha del alquiler que no aparece en la tabla factura, y si se observa el campo totalfactura se dar cuenta que este es el valor de cada pelcula,
42

BASE DE DATOS 1
cuando debera ser el total del alquiler. Esto se soluciona de la misma forma como se solucion el problema de los telfonos de los clientes, debemos separar en dos tablas la factura, de tal manera que en una tabla queden los campos nicos de una factura, y en otra los campos que puedan repetirse en la misma.

La tabla factura quedara de la siguiente forma:

TABLA FACTURA
NUMFAC (PRIMARIA) 1 2 3 4 FECHA 12/02/03 12/02/03 15/02/03 20/02/03 CODCLIENT E (FORNEA) 70555222 22552381 22111888 22552381 TOTALFA C 20500 7500 6000 6000 CODCAJERO (FORNEA) 001 001 002 002

TABLA DETALLES
NUMFAC (FORANEA) 1 1 1 2 3 4 CODPELICULA (FORNEA) 111 222 444 222 333 555 CANTIDAD 1 1 1 1 1 1

Las tablas de la base de datos quedaran relacionadas de la siguiente forma:

43

BASE DE DATOS 1
Tabla detalles Tabla factura Nmerofactura Fecha Cdulacliente Totalfactura Cdigocajero Nmerofactura Cdigopelicula Cantidad Tabla pelculas Cdigo Nombre Formato Precio Estado Clasificacin Cantidad

Tabla clientes Cdula Nombres Apellidos Direccin

Tabla telclientes Idtel Cdula Telfono

Tabla cajeros Cdigo Nombres Apellidos

NOTA: No confundan el campo cantidad de la tabla pelculas, con el campo cantidad de la tabla detalles, en la primera, indica la cantidad que hay de cada pelcula en existencia, y en la segunda la cantidad de pelculas alquiladas de cada una.

44

BASE DE DATOS 1
CASO PROBLEMA N 2 En un colegio se desea sistematizar por medio de una base de datos el procesamiento de las notas de sus alumnos, para los cuales se necesitan los siguientes parmetros:
Tabla Alumnos Tabla Profesores Nombre Apellido Direccin Telfono Doc_Iden Nombre Acudiente Apellido Acudiente Curso Saln Jornada Nombres Apellidos Telfono Direccin Cdula Especialidad

Tabla Notas Nombre Alumno Apellido Alumno Nombre Materia Nota Nombre Profesor Apellido Profesor Periodo Materia

Normalizando la tabla Alumnos, encontramos que se debe asignar una clave primaria a cada alumno, para esto se genera un cdigo de identificacin, adems. Teniendo en cuenta que varios alumnos pueden tener el mismo acudiente, es conveniente separar los datos del acudiente de los datos del alumno y relacionarlos por medio del cdigo del alumno. Tambin nos damos cuenta que es conveniente separar los datos personales del alumno de sus datos acadmicos. Los datos acadmicos generarn una nueva tabla que llamaremos Listados, tambin se generaran adems pequeas tablas para administrar la informacin de los cursos y las jornadas. Las tablas quedaran de la siguiente forma:
45

BASE DE DATOS 1
Tabla Listados Cod_Alum Cod_Curso Saln Cod_Jornada Tabla Alumnos Cdigo Nombre Apellido Direccin Telfono Doc_Iden Tabla Cursos Cod_Curso Curso Tabla Jornadas Cod_Jornada Jornada Tabla Acudiente Cdula Nombre Apellido Cod_Alum

En cuanto a la tabla Profesores, es necesario especificarle una clave principal, que puede ser un cdigo o la cdula del docente.

Para la normalizacin de la tabla Notas se debe tener en cuenta no repetir los datos de los alumnos ni del profesor, simplemente se relacionarn por medio de una clave externa que sern los cdigos de ambos. Adems se debe generar una tabla de materias y relacionarlas por un cdigo. Las tablas quedara:

46

BASE DE DATOS 1
Tabla Listados Cod_Alum Cod_Curso Saln Cod_Jornada Tabla Alumnos Cdigo Nombre Apellido Direccin Telfono Doc_Iden Tabla Jornadas Cod_Jornada Jornada Tabla Notas Cod_Alum Cod_Prof Tabla Cursos Cod_Curso Curso Nota Periodo Cod_Materia Tabla Profesores Cdigo Nombres Apellidos Telfono Direccin Cdula Especialidad Tabla Acudiente Cdula Nombre Apellido Cod_Alum

Tabla Materias Cdigo Materia

47

BASE DE DATOS 1

PROBLEMAS PROPUESTOS

1. Una discoteca desea organizar la informacin de toda su seleccin musical, para esto deciden que se disee una base de datos en la que se encuentre la siguiente informacin de sus discos: a. Titulo b. Canciones c. Cantante d. Grupo e. Genero f. Casa disquera

48

Potrebbero piacerti anche