Compartiendo para dos mundos

Hablando de programación paralela.
Tutoriales en: https://www.youtube.com/user/jambrizgdl
Twitter: @dogoteacher

Buscar este blog

martes, 11 de septiembre de 2007

Dependencias funcionales

Dependencia funcional simple

Es una relación - matemáticamente hablando - entre dos subconjuntos de campos que pertenecen a una tabla. Indica una función total - matemáticamente hablando - basada en los registros posibles; se reconocen al realizar el análisis de los requisitos de un sistema de información, se especifica un subconjunto de campos que constituyen su dominio y otros el rango de la función.

Dado un valor V1 en el campo X se presenta siempre el valor V2 en un campo Y. El campo X constituye el dominio de la función y el valor Y el rango. En otras palabras el campo X es la "variable independiente" de la función y el campo Y la "variable dependiente", si varia el valor de X pudiera cambiar el valor de Y.

El nombre de la persona determina el estado de la República Mexicana del cual es originario. Las dependencias funcionales indican una relación matemática entre dominos. Un valor del dominio del campo NOMBRE se relaciona con un único elemento del dominio del campo ESTADO. Aunque las personas LUISA y MARIA tienen el mismo ESTADO ninguna de las dos puede tener dos o más estados de la República de los cuales sean originarios.

Aunque una persona solo puede tener un único estado de la República del cual sea originario, sin embargo de forma inversa un estado puede tener a varias personas relacionadas. Es decir, pueden existir varias personas originarias del DF o de Jalisco.

Dependencia funcional múltiple

Al contrario de la dependencia funcional simple, dado un valor V1 en el campo X se presenta siempre un conjunto de valores {V2, V3, V4, ..., Vn} en un campo Y. El campo X constituye el dominio de la función y el valor Y el rango. En otras palabras el campo X es la "variable independiente" de la función y el campo Y la "variable dependiente".

Esta dependencia se encuentra en los campos multivaluados que pueden tener uno o varios valores. No son dañinas estas dependencias funcionales, sin embargo le agregan complejidad al modelo de datos, entre otros aspectos porque los elementos del rango ( TELEFONO ) pueden ser compartidos por los elementos del dominio. Este es el caso del teléfono 12345678 que es compartido por las personas PILAR y MARIA.

Dependencia funcional extendida

Hasta el momento solo se ha hablado de las dependencia funcionales que tienen un único campo como parte del dominio, sin embargo en la realidad se presenta comunmente que el dominio de la función este formado por varios campos al igual que el rango. En otras palabras, varios campos determinan el contenido de otros tantos.

En las facturas de un autoservicio la combinación FOLIO y ARTICULO determina la cantidad de ejemplares que se compraron. Es decir en la factura 190 se compraron de pañales 1 ejemplar, de la misma factura de cerveza se compraron 6 ejemplares. Si se supiera únicamente el numero del folio no se sabria cuantos ejemplares se compraron de cada artículo, se requiere conocer además este dato para poder determinar los ejemplares.

martes, 4 de septiembre de 2007

Administración de base de datos


1.- Introducción

El lenguaje SQL se divide en dos grupos importantes de instrucciones, cada uno con objetivos diferentes:


a) DML: Por sus siglas en inglés Data Manipulation Language. Manipular los datos de la bdr. Incluye la recuperación de datos ( SQL ).


b) DDL: Por sus siglas en inglés Data Definition Language. Manipular la estructura de la bdr.


Este documento trata de la segunda parte.


2.- Definición y borrado de una base de datos relacional ( bdr )

El estándar SQL 1992 define una bdr por medio de un “ESQUEMA”, que es una unidad lógica que encierra los elementos de una bdr ( tablas, vistas, etc. ).


El Sistema Administrador de Bases de Datos Relacionales ( SABDR ) que se utiliza en el curso Ms SQL Server 7 / 2000 implementa el concepto de ESQUEMA con el nombre “BASE DE DATOS”.


No define ESQUEMAS sino BASES DE DATOS que son unidades lógicas que agrupan a los siguientes elementos: Ttablas, vistas, procedimientos, etc.


Sintaxis

CREATE DATABASE nombre_base_datos_relacional


Donde nombre_base_datos_relacional es el nombre de la bdr.


Al eliminar una bdr con el comando DROP DATABASE se borran todos sus elementos y datos.


Sintaxis

DROP DATABASE nombre_base_datos_relacional


Donde nombre_base_datos_relacional es el nombre de la bdr.


La organización física de los datos en archivos para cada SABDR es diferente y decidirá la inclución o no de más parámetros a las sentencias anteriores.

3.- Definición y borrado de tablas

Cualquier tabla de una bdr tiene las siguientes partes:

  1. Campos

  2. Restricciones


Sintáxis

CREATE TABLE nombre_tabla (

{Declaración_campo } …

{ Declaración_restricción }

)


Una coma indica el fin de una declaración de campo o restricción.


Donde

Declaración_campo es la definición de un campo.

Sintaxis


Nombre_campo tipo_dato configuración


Donde

Nombre_campo

Es el identificador del campo.


Tipo_dato

Es el nombre de un tipo de dato proporcionado por el SABDR.


Configuración

Es un conjunto de restricciones para un campo:

  • NULL: Permite agregar un registro sin proporcionar el valor que corresponde al campo.


  • NOT NULL: Obliga a proporcionar el valor del campo al momento de agregar un registro.


  • DEFAULT: Especifica un valor predeterminado cuando no se conoce el valor del campo al momento de agregar un registro.

Sintaxis

DEFAULT valor_predenterminado


  • IDENTITY: Indica que el campo es llave subrrogada. Solo puede ser indicado para un campo en una tabla.

Sintaxis

IDENTITY( numbase, numincremento )


Numbase: Número a partir del cual se generan los valores secuenciales.


Numincremento: Rango del incremento secuencial.

  • PRIMARY KEY: El campo es el único que forma parte de la llave primaria.


  • UNIQUE: El campo forma una llave candidata por si solo.


  • REFERENCES: El campo hace referencia a otro campo en la tabla indicada.

Sintaxis

REFERENCES nombre_tabla ( nombre_campo )


Algunos valores de configuración se contraponen:

  • Un campo definido como llave primaria no puede permitir nulos: En caso contrario podrían existir dos registros o más con dicho campo nulo y no se podría distinguir uno de otro.

  • Un campo definido como llave primaria no tiene definido un valor predeterminado: En caso contrario podrían existir dos registros o más con dicho valor y no se podría distinguir uno de otro.

  • Las llaves candidatas, puesto que tienen la misma característica de una llave primaria están sujetas a las dos consideraciones anteriores.


Declaración_restricción: Define una restricción que puede involucrar a más de un campo.


  • PRIMARY KEY

Define la llave primaria que puede o no constar de más de un campo.


Sintaxis

PRIMARY KEY ( CAMPO1, CAMPO2, … , CAMPOn )


  • UNIQUE

Define una llave candidata que puede o no constar de más de un campo.


Sintaxis

UNIQUE ( CAMPO1, CAMPO2, … , CAMPOn )


  • FOREIGN KEY

Define una llave foránea que puede o no constar de más de un campo.


Sintaxis

FOREIGN KEY ( CAMPOa1, … , CAMPOan ) REFERENCES TABLAx ( CAMPOb1, … , CAMPObn )

Define una llave foránea que solo puede tener un campo


nombre_campo1 tipo_dato1 REFERENCES TABLAx ( CAMPOb1, … , CAMPObn )

Los campos con subindice ‘a’ pertenecen a la tabla definida que hacen referencia a los campos con subindice ‘b’ que pertenecen a la tabla TABLAx.


Eliminar una tabla

El comando DROP TABLE borra una tabla si no existen llaves foráneas en otras tablas en la base de datos que hagan referencia a ella.


Sintaxis DROP TABLE nombre_tabla


Ejemplo1

La estructura de la base de datos del estacionamiento es:


Tcajones

Campo

Tipo

Varios

Numcajon

Int

PK

Tamanio

Char(1)

Nn

Piso

Int

Nn

Status

Bit

Nn, d(1)


Tentradas

Campo

Tipo

Varios

Ticket

Int

PK, I(1,1)

Fhentrada

Smalldatetime

Nn, d(getdate())

Fhsalida

Smalldatetime

N

Cajon

Int

FK

Placas

Varchar(8)

Nn

Total

Money

N, d(0)



1er. paso: Definir la base de datos relacional

CREATE DATABASE ESTACIONAMIENTO


2do. paso: Definir cada tabla de la base de datos relacional


CREATE TABLE TCAJONES (

NUMCAJON INT NOT NULL PRIMARY KEY,

TAMANIO CHAR(1) NOT NTULL,

PISO INT NOT NULL,

STATUS BIT NOT NULL DEFAULT 1

)


CREATE TABLE TENTRADAS (

TICKET INT NOT NULL IDENTITY(1,1) PRIMARY KEY,

FHENTRADA SMALLDATETIME NOT NULL DEFAULT GETDATE(),

FHSALIDA SMALLDATETIME NULL,

CAJON INT NOT NULL REFERENCES TCAJONES( NUMCAJON ),

PLACAS VARCHAR(8) NOT NULL,

TOTAL MONEY NULL DEFAULT 0

)


El último elemento definido en una tabla no lleva una coma ( , ) al final.


Tipos de tablas

Con relación al tipo de información del negocio que almacena una tabla, estas se clasifican en:

* Tablas base:Aquellas que almacenan entes de la realidad que interactuan en el ambito del sistema de información. Por ejemplo; en el sistema del videocentro: las películas, generos, tipos y clientes; en la tintorería: clientes y en el estacionamiento: cajones.

A estas tablas comunmente se les agrega información al inicio de la implantación del sistema y poco mantenimiento tienen después.

* Tablas de transacciones: Las que registran hechos relizados por los entes que interactuan en el ámbito del sistema de información. Por ejemplo; en el sistema del videocentro: rentas; en la tintorería: lavan y en el estacionamiento: estacionan.

A estas tablas comunmente se les agrega información al inicio y durante todo el ciclo de vida del sistema de informació. Requiern mantenimiento constantemente.

* Tablas de históricos: Almacenan información desactualizada del sistema de información. Las políticas de negocio definiran cuando se considera desactualizada la información. Se generan comúnmente de tablas de transacciones del negocio, ya que los entes del negocio dificilmente pierden vigencia.

Su objetivo es almacenar información que no es importante en el momento para el sistema, pero que será útil al momento de revisar el histórico de la compañia y buscar errores o aciertos cometidos en el pasado.

lunes, 3 de septiembre de 2007

Diseño de BD utilizando el Modelo Relacional


Sus elementos

El modelo relacional fue propuesto por Codd en los 1970 y desde ese momento revolucionó el concepto de DB que se tenia, gracias a los modelos jerárquicos y de red. Sin embargo son los 90’s el estallido de dicho modelo con productos de las más variadas especies y fabricantes.


Es simple en su concepción, una base de datos es un conjunto de relaciones ( también llamadas tablas )


Figura 31


Una relación ( o tabla ) es un conjunto de filas.


Figura 32

Y una fila es un conjunto de columnas (campos ), cada una especifíca: su nombre y el tipo de dato que acepta. Por Tipo de dato se entiende, los posibles valores que se pueden aceptar. Por ejemplo: numeros, letras, letras y números, fechas, horas, fechas y horas, etc.

Figura 33

Para describir una tabla se usará el siguiente formato:


Nombre_tabla ( nombrecampo: tipo_de_dato , nombrecampo: tipo_de_dato, … )


El lenguaje de manipulación de datos que describio para su servicio es el SQL ( en su vesión ISO-IE/ 1992, la siguiente versión relacional orientada a objetos está fuera del alcance de este módulo ).


Las relaciones ( tablas ) son el principal elemento del modelo relacional y estan formadas por:

  1. Esquema de la relación ( tabla ): Son las columnas (campos ) que forman la relación junto con sus tipos de datos.

  2. Instancia de la relación ( tabla ): Es el conjunto de tuplas ( filas o registros ) que tienen el mismo número de atributos (campos ) que el esquema. Donde 2 filas no pueden ser identicas y el orden de las columnas (campos ) no es importante ( solamente al momento de la implementación en un ABDR ).


Figura 34


El dominio es definido en el esquema de la tabla para cada campo, en el cual se definen los valores que pueden incluirse en el. Y la instancia de la tabla debe de satisfacer estas condiciones. Es decir no nos válidos tipos de datos no permitidos, como se muestra en la figura 35.


Figura 35


La cardinalidad de una relación es el número de tuplas ( registros ) que la forman. El grado o aridad es el número de campos que tiene dicha relación. ( ver figura 36 )


Una db relacional es una colección de relaciones distintas. El esquema relacional de la base de datos es el conjunto de esquemas de las relaciones en la bd. ( ver figura 37 )

En la figura 37 se muestran los esquemas de las relaciones amigos y agenda. Los cuales forman el esquema de la base de datos BDTiempo.


Figura 36


Figura 37


Dichas relaciones fueron obtenidas a travez de un diagrama entidad – vínculo que luego se convirtió en las relaciones que tenemos aquí. Las llaves primarías se subrayan y las foráneas son encerradas en un círculo.


Figura 38


En la figura 38 se indica que el campo amigo de la tabla agenda, es una llave foránea hacia el campo codigo de la tabla amigos.

Referencias

[ 1 ] Elmasri & Navathe. (2000). Sistemas de Bases de Datos Conceptos Fundamentales. 2da. Edición. Pearson Education.


[ 2 ] Date, C. J. . ( 1993 ). Introducción a los Sistemas de Bases de Datos. 5ta. Edición. Addison – Wesley Iberoamericana.



Diseño de BD utilizando el Modelo Relacional


Convertir modelo Entidad – Vínculo a modelo relacional


Se logra realizando los siguientes pasos:


Nota: Se usará la figura 24, pero a continuación se muestra con cardinalidades y llaves.


Figura 39


  1. Una entidad es convertida en una relación y cada atributo es un campo de la misma ( solo atributos simples ).


Los tipos de datos asignados a los campos deben de corresponder con el tipo de dato que exista en el ABDR.


Evitar tener nombres de campos con espacios en blanco internos, en su representación se pondrán guiones bajos ( _ ).


Tipos( nombre:string, costo:money, dias:int )


Peliculas( codigo:int, título:string, genero: string, clasificacion:string,

codigos_cintas:string, nomtipo: string )


Clientes( codigo_barras:string, nombre:string, ap_paterno:string, ap_materno:string, direccion:string, telefono:string )


  1. Las llaves de cada entidad son las llaves de la tabla.


Es común subrayar todos los campos que pertenecen a la llave primaria.


Un campo compuesto es una llave primaria indica que todos los campos simples que lo integran formarán la llave primaria de la tabla.


No se tienen varias llaves primarias en una tabla, es solo UNA, pero esta puede estar formada por varios campos ( llave compuesta ).


Las llaves candidatas establecidas en el modelo Entidad – Vínculo permanecen y pueden ser subrayadas con lineas entrecortadas.


Las llaves foráneas pueden ser encerradas en círculos y no tiene obligatoriamente que llamarse igual que las llaves primarias a las cuales hacen referencia.


Figura 40


  1. Los atributos multivaluados deben ser eliminados de la siguiente forma:


  1. Definir una nueva tabla


  1. Quitar el atributo multivaluado de la tabla y agregarlo en la nueva tabla



  1. Copiar la llave primaria ( los campos que la formen ) a la nueva tabla y en ella son definidos como llave foránea.


  1. Definir la llave primaria de la tabla como todos los campos que la integran



Figura 41


Con esta modificación se logra que en la nueva tabla ( Pel_Invent ), al ser la llave primaria la combinación de los campos de la llave primaria anterior y el multivaluado, se pueda registrar en cada registro un valor diferente para el campo multivaluado, pero sin perder la referencia a la anterior tabla y sin embargo la llave primaria no se repite ya que la conforman la combinación de los campos anteriormente mencionados.


Por ejemplo: Tabla clientes, antes de la modificación, implicaba que se anotarán varios telefonos en el mismo espacio lo cual es erroneo e inválido. ( figura 42 ). Al realizar las modificaciones se permite que exista un registro para cada teléfono en la tabla Client_tel, con la mínima repetición que consiste en el código de barras del cliente, esto es inevitable ya que de quitar este campo en la tabla Client_tel, se pierde la referencía del cliente al cual pertenece el teléfono. ( figura 43 ).



Caso 1:

Si el campo multivaluado puede tener nulos ( o desconocerse su valor ), otro beneficio que se gana es que en la tabla nueva generada para él, no tienen porque aparecer registros que no contengan datos, en otras palabras: los clientes que no tengan teléfono no aparecerán en ella.


Figura 42



Figura 43


Caso 2:

Si el campo multivaluado, contiene datos que son irrepetibles, o que constituyen una llave candidata de la tabla de la cual salieron, en la tabla nueva que se genera; ellos son los únicos que forman parte de la llave primaria.


Este es el caso de la tabla Peliculas y Pel_Invent, ya que el código de la cinta es irrepetible.


Figura 44


  1. Para las entidades debiles, se define su tabla con todos sus atributos, y la llave primaria será la combinación de la llave primaria de la entidad debil más la llave primaria de la entidad fuerte, de la cual deriva.


Tomando como ejemplo la figura 28.


Figura 45


Caso 1: Si la llave primaria de la entidad debil es irrepetible, sin necesidad de la llave primaria de la entidad fuerte, puede conservarse como estaba; solo se agrega como llave foránea la llave primaria de la entidad fuerte para no perder la referencia.


  1. En las vínculos, el análisis se basa en su cardinalidad:


  1. Cardinalidad 1:1: Se escoge una de las entidades que intervienen para que en ella se deposite la llave primaria de la otra como llave foranea. Teniendo cuidado en evitar casos de nulos.Tomándo como ejemplo la figura 26. Las tablas pueden ser:


Figura 46



Figura 47

¿De que dependerá la elección? De la realidad. Se decidirá de acuerdo a la combinación que menos posibilidades tenga de generar valores nulos en la llave foránea.


Para este ejemplo se hace la siguiente pregunta:

¿Qué es más factible en la compañía: que un trabajador no tenga un carro asignado ( por cualquier motivo ) o que un carro no tenga asignado un trabajador?


  1. Cardinalidad 1:N: La entidad de lado del 1 es la que cede su llave primaria para la otra entidad que la conserve como llave foranea. ( ver figura 40 )


  1. Cardinalidad N:M: En este caso se define una nueva tabla que tendrá como campos, los atributos que se le hayan conferido especificamente ( si el vínculo tenía atributos ) y los campos que formen parte de las llaves primarias de las entidades que participan en el vínculo ( que son llaves foráneas ). ( ver figura 39 )


Es el caso del vínculo rentar:


rentar ( folio: int, fecha:date, total:money, cod_barras:string, codigo: int )


La llave primaria esta formada por los campos que llegarón como llaves foráneas y si es necesario algún/os atributo/s del vínculo. En este caso, la figura siguiente muestra que es necesario incorporar a la llave primaría el campo fólio, ya que puede darse el caso que el mismo cliente rente la misma película en diferentes ocasiones, solo haría distinción la factura en la cual las rentó.


Figura 48


Caso 1:

Existe un conjunto de campos del vínculo ( sin las llaves foráneas ) que pueden ser considerados como la llave primaria.


En este ejemplo, el fólio de la factura es un número que en la realidad no se puede repetir, es decir por cada renta se genera una factura cuyo número es irrepetible, este puede ser nuestra llave primaria.


Figura 49


Caso 2

En los vínculos con cardinalidad “muchos a muchos”, algunos campos que llegan como llaves foráneas ( de las entidades que relaciona el vínculo ) en la acción que representa el vínculo, pueden tomar muchos valores. En otras palabras con campos multivaluados. Por lo tanto se realiza el paso 3.


Figura 50


El campo código ( es el código del título de la película que se rento ) es multivaluado, porque un cliente puede rentar varias películas en la misma factura.



Referencias

[ 1 ] Elmasri & Navathe. (2000). Sistemas de Bases de Datos Conceptos Fundamentales. 2da. Edición. Pearson Education.


[ 2 ] Date, C. J. . ( 1993 ). Introducción a los Sistemas de Bases de Datos. 5ta. Edición. Addison – Wesley Iberoamericana.



Jerarquía de libros

Objetivo: Los alumnos diseñarán una estructura jerárquica de entidades en base a los tipos de libros que puede introducir un profesor como parte de la bibliografía de su curso.

Desarrollo: La problemática a analizar es la siguiente: Los profesores al momento de realizar su guía de clase, pueden agregar como "referencias" varios tipos de documentos, entre ellos los documentos electromagnéticos, estos se clasifican en:

Al momento de agregar alguno de ellos se solicitan los siguientes datos:

Tipo de documento Datos
Monografía electromagnética
Revistas
Artículos
Videos

Instrucciones:

Diseña un diagrama entidad vínculo para los tipos de referencias que puede introducir un profesor; como jerarquía de entidades. Utiliza los datos proporcionados en las imágenes para obtener los atributos de las entidades.

jueves, 30 de agosto de 2007

Jerarquía de libros

Objetivo: Los alumnos diseñarán una estructura jerárquica de entidades en base a los tipos de libros que puede introducir un profesor como parte de la bibliografía de su curso.

Desarrollo: La problemática a analizar es la siguiente: Los profesores al momento de realizar su guía de clase, pueden agregar como "referencias" varios tipos de documentos, los principales son:

Los documentos impresos pueden ser:

Al momento de agregar alguno de ellos se solicitan los siguientes datos:

Tipo de documento

Datos solicitados

Monografías

Partes de monografía

(con autor de la parte)

Partes de monografía

(sin autor de la parte)

Revistas
Artículos de revistas
Fascículo de revista
Tesis doctoral
Legislación
Apuntes del profesor

Instrucciones:

Diseña un diagrama entidad vínculo para los tipos de referencias que puede introducir un profesor; como jerarquía de entidades. Utiliza los datos proporcionados en las imágenes para obtener los atributos de las entidades.

Generalización y especialización

Pueden dividirse de acuerdo a varios criterios:

  • Cantidad de entidades relacionadas

  • Jerarquía de entidades

  • Agrupación de entidades


Jerarquía de entidades

En ocasiones aunque se trata de reunir en un conjunto entidad a la mayor cantidad de entidades parecidas, surgen clasificaciones dentro del mismo conjunto entidad que en algún momento serán importantes.


Se realiza una división del conjunto entidad principal en subconjuntos, que serán mostrados como dependientes jerárquicamente del conjunto principal.


Figura 18


En la figura anterior se indica que un usuario del sistema “es un” gerente, un supervisor o una secretaría. Cada uno de ellos tiene propiedades propias, pero comparte las propiedades indicadas en el conjunto entidad usuarios.


Estos vínculos hablan de 2 conceptos muy ligados:


  • Generalización

Consiste en considerar para varios tipos de entidades los atributos que les son comunes y generar una “super - entidad” que las contiene. Las atributos que no son comunes permanecen en los tipos de entidades originales.




  • Especialización

Consiste en analizar las entidades que forman un conjunto entidad y agruparlas en subconjuntos de acuerdo a los atributos comunes, los subconjuntos serán disjuntos cuando no compartan ninguna propiedad y cada un genera un tipo de entidad llamado “sub – entidad“


lunes, 27 de agosto de 2007

Ensayo

Tipo de datos en Ms Access 2000

El software Ms Access 2000 cuenta con los siguientes tipos de datos:

* Texto

* Memo

* Numérico

* Fecha/ hora

* Moneda

* Autonumérico

* Si/No

* Objeto OLE

* Hipervínculo

A continuación algunas de las características principales cada uno de los tipos de datos:

Tipo de dato Definición Características Ejemplo

Texto

Texto plano Almacena hasta 255 caracteres "juan lava la ropa"
Memo Texto plano largo Almacena hasta 64,000 caracteres. No permite ningun formato ( negritas, subrayado, etc. ) solo el texto crudo. El contenido de un archivo completo de word como lo es este documento. Pero sin la tabla como esta.
Numérico Numeros naturales Depende del formato puede ser de 1,2,4 u 8 bytes de longitud. 123
Fecha/ hora Fecha y hora

Depende del formato se considerá la fecha u hora. Otra opción es la fecha y hora juntos.

8 bytes

Existen funciones especiales para obtener cada una de las partes de una fecha que puede ser tomada como un dato compuesto.

2 de mayo del 2007 16:00 hrs.
Moneda Números reales 8 bytes de longitud. $15.2
Autonumérico Numeros naturales 4 Bytes de datos númericos no repetibles. Es proporcionado por el gestor de base de datos. Una serie de números: 1,2,3,etc.
Si/No Valor lógico 1 bit, 0 o 1 lógico 1 / 0
Objeto OLE Objeto definido en una aplicación de Ms No tiene límite. Acepto cualquier objeto OLE ( Object Linking and Embedding). Es decir, puede almacenar un documento en Ms Word y "abrirlo" desde Ms Access. Lo lo abre textualmente, sino que busca la aplicación Ms Word y esta es la que abre el documento. Este archivo convertido en word. Una imagen realizada en Ms Paint
Hipervínculo Contiene una ruta UNC o URL Hasta 64,000 http://www.uag.mx

Referencias

1) MailxMail. Tutoriales gratuitos. Tutorial de Ms Access. http://www.mailxmail.com/curso/informatica/access2000/capitulo110.htm

2) MailxMail. Tutoriales gratuitos. Tutorial de Ms Access. http://www.mailxmail.com/curso/informatica/access2000/capitulo111.htm

3) Msdn. Microsoft Corp. Información de los tipos de datos. http://support.microsoft.com/kb/824263

martes, 21 de agosto de 2007

Estructuras básicas de la programación estructurada

Son tres estructuras básicas de la programación estructurada.

a) Secuencia

b) Condicional

c) Iteración

a) Secuencia

Un conjunto de instrucciones se realizan una después de otra en un órden determinado ( formando una secuencia ) que buscan un objetivo un objetivo.

b) Bifulcación

En la secuencia de ejecución de un programa la verificación de una condición hace que se puedan tomar dos rutas distintas en la ejecución. Posteriormente se vuelven a unir las dos rutas para lograr el objetivo final.

c) Iteración

Una subsecuencia de instrucciones se repite varias veces de acuerdo al estado de una condición; puede haber dos casos:

- Mientras una condición sea verdadera una subsecuencia de instrucciones se sigue repitiendo.

- Mientras una condición sea falsa una subsecuencia de instrucciones se sigue repitiendo.

Planteamiento de una solución

La computadora trabaja en base a órdenes. Estas deben de ser dadas en una secuencia determinada para poder cumplir un objetivo. La computadora ejecutará un programa que contiene dichas órdenes (programa ejecutable) y que fue producto de un código fuente en el cual se indicó la secuencia de las órdenes. Para elaborar dicho código fuente existen dos estrategías:

a) Elaboración de algoritmos

Un algoritmo es una secuencia de pasos para obtener un objetivo determinado. Donde cada paso está detallado en los pasos que se requieren para realizarlo. Se elabora para describir detalladamente y con precisión como se llegará al objetivo; pero manteniendo la relación de un paso con sus "subpasos"; de esta forma se tiene una visión general del algoritmo y al mismo tiempo una visión particular de cada paso.

Se puede vislumbrar como un árbol en donde loas ramas son los pasos que se deben de detallar y las hojas los pasos que no requieren mayor explicación. Se numeran los pasos y subpasos por niveles para no perder su ubicación dentro del árbol.

b) Elaboración de diagrama de flujo

Se le llama "flujo de un programa" a la secuencia de instrucciones que se siguen desde el inicio del programa hasta su término para lograr el objetivo buscado. Este flujo del programa se muestra graficamente por medio de un diagrama llamado "diagrama de flujo", cada instrucción se simboliza por medio de un rectángulo, las bifulcaciones por medio de un rombo y la secuencia de instrucciones se ilustra con flechas que indican la siguiente instrucción a ejecutar. El inicio y final del programa se indica por medio de un círculo en los extremos del diagrama.

Para diseñar un diagrama entidad - vínculo se requiere el concepto: VARIABLE. Un programa no se realiza para realizar las órdenes con datos "fijos", es decir con datos dados en el código fuente y no por el usuario del programa. Al contrario, el objetivo es solicitar los datos al usuario y que los valores con los que trabaja el programa sean "variables".

Al igual que las variables en el álgebra que pueden tomar cualesquier valor, así mismo un programa de computación define "variables" que pueden tomar diferentes valores y sin embargo el programa seguirá realizando su objetivo.

EJEMPLO 1

Problema: Realiza un programa que verifique si un número es par o no.

Solución: No se realiza un programa por cada uno de los números naturales para verificar que sea o no par; por el contrario se realiza un único programa que verifica si un número ( cualesquiera ) es par o no.

lunes, 20 de agosto de 2007

Proceso de compilación

Un programa escrito en un lenguaje de alto nivel, no puede ser entendido por la computadora; por tanto require una traducción. Las órdenes expresadas en el lenguaje de alto nivel, deben de ser convertidas a 0's y 1's, es decir a las instrucciones necesarias reconocidas por el lenguaje de la computadora. A esto se le llama "proceso de compilación".

Este proceso, es en escencia una traducción realizada por la computadora, es decir es otro programa de computadora, que fue escrito en un lenguaje de bajo, medio o alto nivel. Comúnmente se expresa lo anterior por medio de una T. Se indica el lenguaje en el que está hecho el traductor, el lenguaje del programa que se quiere convertir y el lenguaje al cual se quiere convertir. Por ejemplo, la siguiente figura indica que se convertirá un programa escrito en Visual Basic al lenguaje máquina por medio de un traductor escrito en lenguaje C.

En este proceso de traducción intervienen varias entidades:
* Código fuente: Archivo de texto realizado por un programador, escrito en un lenguaje de alto nivel que indica una secuencia de instrucciones ( órdenes ) para realizar un objetivo determinado.
* Código objeto: Archivo escrito parcialmente en lenguaje máquina (0's y1's) que podrá ser entendido por una computadora que utiliza un sistema operativo determinado.
* Código ejecutable: Archivo escrito completamente en lenguaje máquina, para un sistema operativo determinado que puede ser ejecutado por la computadora. Se dice que la computadora "ejecuta" un código ejecutable cuando esta puede ejecutar las órdenes indicadas en el código ejecutable.

Los programas de computadora que intervienen en este proceso de traducción son llamados traductores; son programas que traducen un programa escrito en un lenguaje de alto nivel al lenguaje máquina para poder ser ejecutado. Pueden ser de dos tipos: compiladores o intérpretes.

Un compilador es un traductor que verifica todo el program de alto nivel, si es correcto realiza la traducción, en caso contrario muestra los errores que encontró. En cambio, un intérprete es un traductor que verifica y traduce instrucción por instrucción del programa de alto nivel; si ocurre un error en alguna instrucción detiene la traducción en ese momento, no sigue verficando el resto del código.

Ejemplos comúnes de compilador es el usado por la empresa Borland para compilar programas fuente escritos en el lenguaje C (http://dn.codegear.com/article/20633) y un ejemplo común de intérprete es el usado por Visual Basic 6.0.

El proceso completo de compilación se muestra en la siguiente figura.

Tipos de vínculos


Pueden dividirse de acuerdo a varios criterios:

  • Cantidad de entidades relacionadas

  • Jerarquía de entidades

  • Agrupación de entidades


Jerarquía de entidades

En ocasiones aunque se trata de reunir en un conjunto entidad a la mayor cantidad de entidades parecidas, surgen clasificaciones dentro del mismo conjunto entidad que en algún momento serán importantes.


Se realiza una división del conjunto entidad principal en subconjuntos, que serán mostrados como dependientes jerárquicamente del conjunto principal.


Figura 18


En la figura anterior se indica que un usuario del sistema “es un” gerente, un supervisor o una secretaría. Cada uno de ellos tiene propiedades propias, pero comparte las propiedades indicadas en el conjunto entidad usuarios.


Estos vínculos hablan de 2 conceptos muy ligados:


  • Generalización

Consiste en considerar para varios tipos de entidades los atributos que les son comunes y generar una “super - entidad” que las contiene. Las atributos que no son comunes permanecen en los tipos de entidades originales.




  • Especialización

Consiste en analizar las entidades que forman un conjunto entidad y agruparlas en subconjuntos de acuerdo a los atributos comunes, los subconjuntos serán disjuntos cuando no compartan ninguna propiedad y cada un genera un tipo de entidad llamado “sub – entidad“


Agrupación de entidades

En ocasiones surgen entidades de la agrupación de otras entidades y sus vínculos. Por ejemplo. En una escuela los profesores enseñan a los alumnos (se pasa por alto la materia a impartir por no aporta nada al ejemplo) y en esa relación, algunos alumnos tienen problemas académicos y se les asigna un asesor para ser apoyados en los trabajos que realizan con el profesor.

No es una relación ternaria, porque no son todos los alumnos a los cuales les da clase el profesor los que reciben apoyo de un asesor, sino solamente los “alumnos problemáticos”

( este podría ser el nombre de la nueva entidad marcada con líneas punteadas)


Figura 19


Proceso de diseño de una bd utilizando el modelo entidad – vínculo


1.- Realizar el análisis de los requisitos para el sistema de información basado en la informática que se quiera desarrollar.


2.- Identificar los entes que participan en la problemática analizada. Distingue un ente ( entidad ) de una cualidad de un ente ( atributo ). Estos son las entidades del diagrama.


Si alguna de las entidades del problema, aunque participa en la realidad, no se quiere registrar su participación se elimina del diagrama.


Si algún ente identificado es un documento que es producto de una acción realizada entre otras entidades se elimina del diagrama como una entidad y será un vínculo con atributos - se hará referencia a él por medio de la acción de la cual es producto – .


La empresa o el ente superior que se analiza y el cual abarca el ambiente de trabajo no es nunca un conjunto entidad. Es decir, si se realiza un sistema de información para un banco, no existe un conjunto entidad llamado “banco”. Si se realiza un sistema de información para un corporativo de bancos, si hay un conjunto entidad “bancos”, pero no existe un conjunto entidad llamado “corporativo de bancos”.


3.- Identificar todas las propiedades de cada conjunto entidad.


Se descartan aquellas que no se quieren controlar con el sistema de información.


Se evita proponer propuestas de cómo resolver los problemas relacionados con la pobre definición de procesos, agregando apresuradamente para ello propiedades propuestas por el diseñador de la bd. Pero se agregan aquellas que son de utilidad para solucionar los procesos bien definidos por el cliente.


4.- Buscar relaciones entre los conjuntos entidad, es decir vínculos. No hay que forzar su aparición. Estas se pueden encontrar en los documentos oficiales y no oficiales de la empresa o en los procesos definidos o por definir que realizan los futuros usuarios del sistema de información.


Si quedan conjuntos entidad desconectados de cualquier otro, es muy probable que estos conjuntos entidad no sean de utilidad o no se esta entendiendo bien el problema en la parte que trata de él.


Por lo general, todos los conjuntos entidad están conectados formando un único diagrama de la base de datos.


Hay que determinar los atributos de cada vínculo teniendo en cuenta las propiedades que tiene la acción al ejecutarse y no las propiedades de los entes que la llevan a cabo.