Compartiendo para dos mundos

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

Buscar este blog

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.




Cardinalidad

Es la cantidad de entidades dentro de un conjunto entidad que se relacionan por medio de un vínculo son otro conjunto entidad. Como el vínculo relaciona por lo menos 2 conjuntos entidad (aunque sea la misma entidad se relaciona jugando un rol diferente) se debe establecer la cantidad de entidades involucradas en el vínculo.


Figura 20


Para descubrir la cardinalidad en el vínculo V1 de la figura anterior, es necesario analizar el vínculo desde dos puntos de vista: Desde E1 y E2; contestando las siguientes preguntas:

  1. ¿Cuantas entidades del conjunto entidad E1 se relacionan con una entidad del conjunto entidad E2?


  1. ¿Cuantas entidades del conjunto entidad E2 se relacionan con una entidad del conjunto entidad E1?


Ejemplo 1: En la figura 12:

¿Cuantos camiones tiene un trabajador? La respuesta es solo uno.

¿Cuántos trabajadores son encargados de un camión? La respuesta es solo uno.


Por lo tanto la cardinalidad es: De 1 a 1 ( 1 a 1 , 1:1 )


Figura 21


Se forman 2 oraciones:

Un trabajador tiene un carro

Un carro esta asignado a un trabajador.


Ejemplo 2: En la figura 14:

¿Cuantos derechohabientes tiene un trabajador? La respuesta es 0 o más

¿Cuántos trabajadores son encargados de un derechohabiente? La respuesta es solo 1


Por lo tanto la cardinalidad es: De muchos a 1 ( M a 1 , *:1 )


Figura 22


Se forman 2 oraciones:

Un trabajador puede tener ninguno, uno o muchos derechohabientes

Un derechohabiente pertenece a un trabajador.



Ejemplo 3: En la figura 13:


¿Cuantos títulos de libros puede comprar un cliente? La respuesta es 0 o más

¿Cuántos clientes pueden comprar un mismo título de libro? La respuesta es 0 o más


Por lo tanto la cardinalidad es: De muchos a muchos ( M a N , *:* )


Figura 23


Se forman 2 oraciones:

Un título de libro puede ser comprado por muchos clientes

Un cliente puede comprar varios títulos de libros


En los vínculos ternarios y N- arios la cardinalidad siempre es de “muchos a muchos”.


Llaves

Son conjuntos de atributos que cumplen dos propósitos y de ahí su división:


Proposito 1: Distinguir indiscutiblemente una entidad de otra en un conjunto entidad


Llave candidata

Es el conjunto mínimo de atributos que distinguen a una entidad de otra en un conjunto entidad. Pero no logró ser la llave primaría. Se puede representar por medio de un subrayado entrecortado en todos los atributos que forman parte de ella.


Llave primaria

Es una llave candidata que fue escogida para ser usada por el administrador como la primera opción para encontrar una entidad en el conjunto entidad al que pertenece.


Se representa por medio de un subrayado en todos los atributos que forman parte de ella.


En la figura 24, los 3 atributos subrayados son 3 llaves diferentes:


  • Nombre Llave primaría del conjunto entidad Tipos

  • Código de barras Llave primaría del conjunto entidad Clientes

  • Código Llave primaría del conjunto entidad Peliculas

Figura 24


Propósito 2: Reconocer las entidades vinculadas


Llave foránea

Es un conjunto de atributos de un conjunto entidad A, que permite saber con que entidad se relaciona en forma inequívoca en otro conjunto entidad B.


En la cardinalidad se especificó cuantos elementos están involucrados en un vínculo, las llaves foráneas permiten saber con precisión cuales son dichos elementos.


Para distinguir a una entidad de otra se usa la llave primaria del conjunto entidad. Estas mismas sirven para en otra entidad diferente señalar a que entidad se quiere hacer referencia.


No es necesario que los campos que forman la llave foránea se llamen igual que los campos que forman la llave primaria a la cual se enlazan.


Ejemplo 1 : En la figura 21, ¿Cómo se contesta la siguiente pregunta?: ¿Qué camión esta asignado a cada trabajador?


Por pasos:

1.- Se establece las llaves primarias de cada conjunto entidad

Figura 25


2.- La respuesta es: Conociendo el número de motor del camión que tiene cada trabajador.


En otras palabras, la llave primaria del conjunto entidad “camiones” debe de tenerla el conjunto entidad “trabajadores”.

Figura 26


Como la llave primaria permite distinguir una entidad de otra, entonces con el dato que se tenga en ella en el conjunto entidad “trabajadores” podremos encontrarlo fácilmente en el conjunto entidad “camiones”.


No se puede aceptar en el conjunto entidad trabajadores, en su atributo “número de motor” ningún valor que no exista previamente para alguna entidad ( en su atributo número de camión) en el conjunto entidad camiones.


Las llaves foráneas solucionan los diversos casos de cardinalidad, pero algunos autores proponen no establecerlas en este modelo sino hasta el modelo relacional. Sin embargo se analizarán aquí caso por caso.


Como regla general, se anota: Si la cardinalidad de un vínculo entre 2 entidades es 1 a 1, indica que cualquiera de las entidades que participan, pasa su llave primaria a la otra entidad como llave foránea.


Ejemplo 2:

En la figura 22, ¿Cómo se contesta la siguiente pregunta?: ¿Cuáles son los nombres de los derechohabientes de cada trabajador?


Por pasos:

1.- Se establece las llaves primarias de cada conjunto entidad


Figura 27



2.- La respuesta es: Conociendo para cada derechohabiente, el número de nómina del trabajador al cual pertenece.


Para este tipo de cardinalidad, siempre se establece la llave primaria del conjunto entidad que tiene cardinalidad 1, como llave foránea en el otro conjunto entidad.

Figura 28



Ejemplo 3:

En la figura 23, ¿Cómo se contesta la siguiente pregunta?: ¿Cuáles son los libros que compró cada cliente?


Por pasos:

1.- Se establece las llaves primarias de cada conjunto entidad


Figura 29


2.- La respuesta es: Si se agrega las llaves primarias de los conjuntos entidad que participan en el vínculo en él mismo, los documentos que registran la acción tendrán la respuesta.


Figura 30

sábado, 18 de agosto de 2007


Diseño de BD utilizando el Modelo Entidad – Vínculo


El propósito de este modelo es ayudar al diseñador de la base de datos a obtener un esquema intermedio antes de diseñar las estructuras de datos requeridas. Es decir es un paso intermedio hacia el modelo relacional.

Este paso previo consiste en realizar un análisis de los requisitos del sistema. Comprender el dominio del problema ( ¿cuál es el problema que se quiere resolver?, ¿cuáles son los procesos realizados?, etc. )


PROPÓSITO DEL MODELO E-V


  • Facilitar el diseño de la BD, permitiendo al diseñador expresar las propiedades lógicas de la BD, del esquema organizacional o empresarial.

  • Expresar la estructura general del modelo lógico.

  • Los elementos del modelo entidad - vínculo representan "algo" en el mundo real y las relaciones entre ellos son los vínculos. El modelo describe el ambiente en términos de Entidades, Atributos y Vínculos.


Elementos


Cualquier conjunto de objetos, personas, lugares, eventos, o conceptos, en el mundo real, que se desea representar en la BD y tienen las mismas características. Un ente en la realidad no se visualiza solo, sino como un conjunto con características comunes que forma un tipo de ente. Es decir no es Juan Hernández sino ser humano, no es la taza azul que esta en el escritorio, sino las tasas. Se representa por medio de un rectángulo.


Figura 8


Las entidades similares forman un CONJUNTO de ENTIDADES, este debe ser bien definido para que se pueda decidir si una entidad “X” pertenece o no a ese conjunto de entidades.

Figura 9


Una entidad se describe en la bd usando un conjunto de atributos. Un atributo es un accidente del ser; es decir una característica que no es parte de la esencia del ser, sino solo un dato que ayuda a DESCRIBIRLO. Como su tamaño, color, y peso.

Figura 10


Todas las entidades que pertenecen a un mismo conjunto deben tener los mismos atributos. Es importante por lo tanto definir que atributos de dichas entidades se quieren controlar y cuales NO se necesitan.


Por ejemplo: las cualidades de los estudiantes pueden ser: Nombre, numero de credencial y dirección. Pero también lo son la edad, estado civil y el país de origen, pero no se requiere registrar estas últimas. Los atributos son representados como elipses alrededor de cada entidad. Como lo muestra la siguiente figura.


Para cada atributo se debe determinar su dominio, es decir el conjunto de posibles valores que puede contener dicho atributo ( números , letras, números y letras, fechas, cantidades monetarias, etc. ).


El modelo Entidad – Vínculo es básicamente una representación gráfica de los elementos de la realidad que queremos modelar y para ello se utiliza un esquema gráfico (diagrama ).

Figura 11


Las entidades no son independientes o autónomas, al vivir en un mundo físico y en sociedad interactúan con diversos entes de diversas formas. Las entidades que se reconocieron, están VINCULADAS entre si; a esos lazos que las unen se les llama vínculos.


Un vínculo es la asociación que existe entre 2 o más conjuntos de entidades. Y al igual que las entidades, conservamos una colección de vínculos similares dentro de un conjunto de vínculos (tipo de vínculo ).


Figura 12


Estos vínculos expresan acciones que realizan juntas las entidades. Con un verbo dentro del rombo se describe dicha actividad.


Para obtener estas relaciones y entenderlas se forman oraciones, iniciando en una entidad y terminando en otra. En el caso de la figura anterior, la oración es: Los trabajadores tienen un camión asignado.


¿Por qué para cada trabajador? los vínculos son conjuntos de relaciones entre elementos de un conjunto entidad, por lo tanto cuando se analizó la realidad se descubrió que:

1ro

Juan es un trabajador y tiene un camión asignado

Adriana es un trabajador y tiene un camión asignado

Pedro es un trabajador y tiene un camión asignado

Lucia es un trabajador y tiene un camión asignado


2do.

A la pregunta ¿todos los trabajadores tienen un camión asignado?, la empresa respondió: SI. Por lo tanto se puede expresar en una sola oración:

“Los trabajadores tienen un camión asignado”


Un vínculo puede tener atributos descriptivos que permiten saber los datos que requiere la acción para llevarse a cabo. En la figura siguiente se muestran las entidades “clientes” y “libros” relacionados por el vínculo “compra”.


Durante la acción de “comprar” se genera un documento: la factura de la compra. Y sus datos son los atributos en el vínculo.

Figura 13


La oración que se forma es: Los clientes compran títulos de libros. Pero también puede formarse la oración: Los títulos de libros se venden a los clientes; lo que implica colocar la palabra “vender” en el vínculo. Cualquiera de dichas opciones es correcta.


Tipos de entidades

En la realidad existen 2 tipos de entidades:


Fuertes: Existen por sí mismas, de manera independiente.

Débiles: No pueden existir por sí mismas. Representada con un doble rectángulo.


Por ejemplo. Para un empresa, los trabajadores son entidades fuertes existen sin necesidad de que exista otra entidad. Pero sus hijos y esposa que son llamados “derechohabientes” no existen si el trabajador no existe. Por lo tanto “derechohabientes” es una entidad débil.


Estas 2 entidades se unen por medio de un vínculo ( “tener” ). Porque “los trabajadores tienen derechohabientes”, es un vínculo de pertenencia.


Figura 14




Tipos de Atributos


  1. Simple: (Atómico) Toma un valor simple e indivisible para cada entidad.


  1. Compuesto: La instancia puede ser subdividida en unidades más pequeñas con significado. Las partes son elipses que salen de la elipse del atributo compuesto.



  1. Mono-Valuado o Valuado: Toma un único valor para cada entidad.


  1. Multi-Valuado: Toma múltiples valores para cada entidad. La elipse tiene otra elipse anidada.



  1. Derivado: Valores obtenidos de otros atributos. La elipse tiene bordes punteados.

  2. Nulos: (NULLS) El valor del atributo es desconocido, o no aplica para algunas entidades dentro del conjunto entidad.


Figura 15


En la anterior figura, el campo “total” es un campo calculado ya que por medio del tipo de la película se sabe su costo y se puede calcular el total de la factura.


El nombre completo es un campo compuesto, y sus partes son: nombre, ap paterno y ap materno.


Las películas son en realidad títulos de películas y de cada título existen muchas cintas, las cintas de un título de película están en el campo códigos cintas.


¿Qué otro atributo es multi-valuado ? – aparte de códigos cintas.



Tipos de vínculos


Pueden dividirse de acuerdo a varios criterios:

  • Cantidad de entidades relacionadas

  • Jerarquía de entidades

  • Agrupación de entidades


Cantidad de entidades relacionadas

Como su nombre lo dice, se nombran los vínculos dependiendo de los conjuntos de entidades que participen en el vínculo.


Unaria ( 1 entidad ): Un conjunto entidad se relaciona consigo mismo. Este tipo de vínculo aplica cuando se reúnen en el mismo conjunto entidad, entidades que representan 2 tipos de roles distintos. Por ejemplo: Para agrupar a todos los trabajadores se generó el conjunto entidad “trabajadores”, pero entre ellos unos son supervisores y otros son obreros. El vínculo debe formar la siguiente oración: El supervisor tiene a cargo varios obreros. Como se muestra a continuación.

Figura 16


Binaria ( 2 entidades )

Un conjunto entidad se relaciona con otro distinto. Y todos los elementos de cada conjunto se relacionan entre si. Ya han sido mostrados en las figuras 12, 13, 14 y 15.


Ternaria ( 3 entidades )

En una acción participan 3 entidades distintas, pero no existe ningún caso en la realidad en el cual se realice la acción sin la intervención de alguno de los conjuntos entidad.


Figura 17

En la figura 17 se establece que para que un cliente compre un libro, se requiere la asistencia de un trabajador de la empresa. Y que además en el sistema se quiere reflejar esa intervención, puede ser que se lleve un registro de las ventas realizadas por cada trabajador para efecto de comisiones.


Concluyendo, pueden existir acciones en la realidad que siempre se realicen con la intervención de 3 entes, pero quizás en el sistema no se quiere registrar esa participación. Cuando se unen estas dos condiciones es cuando surgen los vínculos terciaríos.


N-aria ( N entidades )

Son el caso más genérico, de 4 o más conjuntos entidad participando siempre en la realización de una acción y además se desea registrar su participación.


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

viernes, 17 de agosto de 2007

Introducción a la programación

Conceptos básicos

La computadora es un aparato electrónico que obedece órdenes. Estas deben de ser expresadas de forma que la computadora las entienda. Lo único que reconoce la computadora son ceros y unos ( 0's y 1's ) que indican una ausencia o presencia de voltaje en sus circuitos. Todas las órdenes que reconozca la computadora deben de ser expresadas de esta forma, es decir, una combinación de 0's y 1's le ordena la computadora una actividad X y otra combinación le indica a la computuadora una actividad Y.

La computadora no realiza órdenes aisladas, comúnmente las órdenes que debe de realizar son complicadas y comprenden a múltiples órdenes más sencillas. La computadora puede resolver muchos problemas distintos, no porque tenga la capacidad de resolver cada uno de ellos en general, sino que puede resolver muchos problemas sencillos, que si se órdenan de la forma adecuada pueden resolver muchos problemas más complicados y difíciles. Por ejemplo, la computadora no tiene en sus circuitos programada la órden que muestra en pantalla una imagen, pero si tiene las siguientes instrucciones: Abrir un archivo, leer una parte del archivo, realizar condiciones para saber interpretar los valores que tienen los archivos, mostrar un pixel de un color determinado en la pantalla, etc.

El programador es la persona encargada de organizar las órdenes ( sencillas ) que puede realizar una computadora, de forma que pueda realizar la actividad que se busca. Si no están organizadas las órdenes de la forma adecuada, puede ser que la computadora realice algo, pero no lo que se buscaba. Por tanto es muy importante ordenar de forma adecuada las instrucciones (órdenes) que puede realizar la computadora para obtener el resultado esperado.

Un programa de computación es un documento electrónico ( no impreso ) en el que se especifica una secuencia de órdenes ( instrucciones ) que realiza una computadora para obtener un resultado determinado. Por "secuencia de órdenes" se indica un conjunto de órdenes en un órden determinado para obtener el resultado esperado; ya que pueden colocarse esas mismas instrucciones de forma distinta y obtener resultados diferentes.

Tipos de lenguajes

El ser humano debe escribir programas para la computadora, pero esta solo entiende 0's y 1's en combinaciones distintas ( que expresan órdenes diferentes ), entonces solo hay dos opciones ( al parecer ):

1) El ser humano aprende a realizar programas para la computadora en 0's y 1's ( lenguaje máquina )

2) La computadora aprende el lenguaje del programador ( "lenguaje natural" ) y lo traduce en 0's y 1's

La opción 2 es la más viable, por la dificultad que implica la opción 1. Actualmente la computadora no reconoce totalmente el "lenguaje natural" es decir el lenguaje del programador ( inglés, frances, español, etc. ), pero existen varios lenguajes que se acercan más o menos con el lenguaje natural; estos lenguajes se han dividido en las siguientes clasificaciones o tipos:

a) Lenguajes de bajo nivel: Las instrucciones que se utilizan son abreviaciones de palabras en el lenguaje natural (llamados mnemónicos ) pero cada una de ellas corresponde a una instrucción del lenguaje máquina.

b) Lenguajes de medio nivel: Es un lenguaje de alto nivel, con la posiblidad de incluir partes escritas en algún lenguaje de bajo nivel.

c) Lenguaje de alto nivel: Las instrucciones que se utilizan son parecidas a las palabras usadas en algún lenguaje natural ( inglés comúnmente ).

lunes, 13 de agosto de 2007

Características de una base de datos

Para resolver los problemas relacionados a la administración de la información por medio de archivos, se ha propuesto el diseño de las llamadas bases de datos ( bd ), que tienen las siguientes características:

1.- Representan aspectos de la realidad

2.- Es un conjunto de datos que pertenecen a la realidad que se habla.

3.- La bd cumple un objetivo y es utilizada por un grupo de personas.

El sistema de información que administra una o más bd's se le llama "gestor de bases de datos", el cual proporciona la información como un recurso propio; por tanto se le denomina "servidor de bd's"; que tiene las siguientes características:

a) Centralización

Los usuarios que utilicen el servidor encontrarán la información que buscan en un único lugar; esto facilitará la actualización de la información para los usuarios que no conservan versiones distintas de la misma.

b) Seguridad

Los esfuerzos por salvaguardar la información de los extraños evitando su mal uso o daño; se concentran en un mismo lugar. La criptografía y evaluación de permisos es tratada en ese servidor por un único administrador del sistema que define políticas de seguridad que defienden al sistema contra si mismo.

c) Solución de problemas de concurrencia

El servidor se encarga de resolver los problemas de concurrencia y otorgar los permisos de acceso necesarios para la convivencia armónica de varios usuarios sobre los mismos recursos.

d) Facilita el mantenimiento

Existen varias tareas de administración de la información, como son los respaldos, la administración de usuarios y permisos, la programación de tareas automáticas que puedan ser realizadas sin intervensión del hombre, la comunicación con otros servidores para compartir la información, migrar información a otros formatos reconocidos por diferentes sistemas de cómputo, etc.

Estos servidores resuelven el problema de la persistencia de la información, generando un sistema de información que actua sobre una "meta - información". Es decir; se genera una estructura que puede almacenar cualquier estructura de bases de datos. De esta forma las rutinas de acceso a la información son generales para cualquier bd.

Niveles de abstracción de una bd

El diseño y manipulación de los datos puede verse desde 3 puntos de vista:

· Nivel físico

Implica las estructuras internas de lo/s archivo/s que conforma/n la base de datos, los algoritmos para recuperar la información, el manejo de indices, etc. . Este nivel ve la información a nivel de funciones escritas en un lenguaje de programación que permite obtener bloques de bytes; como lo muestra la siguiente figura.

· Nivel lógico

Son las estructuras diseñadas para esquematizar aspectos de la realidad que se desean manipular en la base de datos. En este nivel actualmente se encuentra la perspectiva del diseñador de base de datos e implica los modelos que se van a analizar.

La anterior figura muestra un posible esquema escrito en el modelo entidad – vínculo.

· Nivel de usuario:

Es el punto de vista que tiene el usuario de la información, es decir la persona que directamente maneja la información ( el cajero en un banco, el alumno en una escuela, el ingeniero civil en una obra, etc. ). La información puede expresarse de diversas formas como gráficas, tablas, enunciados, números, etc. pero no tiene porque estar atada a la estructura definida en el nivel lógico.

La figura anterior muestra una gráfica que como tal no estará guardada en la base de datos, solamente la información que la origina. Tampoco serán todos los datos, pueden ser solo una fracción, la que necesite ver el usuario o a la que pueda tener acceso.

Ciclo de vida de una bd

La vida que una bd en un sistema de información cumple el siguiente ciclo:

1.- Analisis de requisitos

Conocer cual es el objetivo de la bd y que información manipulará

2.- Diseño lógico

Escoger el modelo de datos a utilizar y la organización que tendrán los datos en él.

3.- Implementación

Establecer la bd en un sistema gestor de base de datos

4.- Mantenimiento

Verificar los cambios en la realidad que afectan el desempeño de la bd y si hay necesidad de cambios, volver a iniciar el primer paso.

Analisis de requisitos

Este inicia conociendo los requisitos de información que debe cubrir la bd; es decir que información almacenará. Para esto existen varias estrategías:

- Entrevistas: Por medio de entrevistas continuas con todos los interesados en el sistema de información y los usuarios del mismo, se obtienen las características que debe de cubrir.

- Diseño de formularios: Las entrevistas inician con una pregunta básica: ¿Qué actividades requiere que realice el sistema?, el interesado y el usuario de la información proporcionarán la forma de hacer crecer este formulario que debe de llevarse de preferencia por escrito a las entrevistas y ser la base de las mismas.

- Análisis de documentos oficiales: Los documentos que se generaban en el trabajo diario que fueron producto de sistemas de información pasados o impresos oficiales y extraoficiales , son un instrumento clave para entender los procesos de la empresa.

Preguntas clave en la realización de los instrumentos usados al realizar el análisis de requisitos

¿Existe un problema o necesidad por la cual se quiere diseñar un sistema de información basado en la informática?

¿Cuál es el problema o necesidad?

¿Quiénes estan involucrados en este problema o necesidad?

¿Cómo entienden ellos el problema o necesidad?

¿Entiendo sus puntos de vista?

¿En que son distintos?

¿Qué causas tiene el problema o necesidad?

¿Algunas de dichas causas tienen solución y esta implica la realización de un sistema de información basado en la informática?

¿Cómo puede ayudar la bd a la resolución del problema o necesidad?

¿Existen documentos escritos que tengan alguna relación con el problema o necesidad?

¿Qué políticas del negocio afectan al problema o necesidad?

¿Cómo lo afectan?

La persona que analiza las necesidades a cubrir por el sistema de información, debe conocer en detalle que se espera de la bd. Los tipos de sistemas de información que se tratan en este curso son "transaccionales" es decir, hablan de las acciones diarias de una entidad. Es decir, la bd registrará la información que intervienen en la realización de un proceso bien definido. Por tanto, lo que comúnmente se espera de una bd transaccional es registrar y recuperar la información de uno o varios procesos de la empresa o entidad.

Comunicación del gestor de base de datos con los sistema de información

Pero por si misma una bd no es útil, un sistema de información basado en la informática es el que “explota” – sacar provecho – la información que contiene ( el sistema es usuario de la información ) . Pese a esta dependencia, existen varias ventajas relacionadas al diseño independiente de la base de datos, pero a la vez dependiente del sistema de información.

Ventaja 1

La administración de la bd esta dividida de su programa usuario, esta se convierte en una proveedora de información. Como lo muestra la siguiente figura.

En caso de cambiar el programa usuario, esto no afectará la bd, conservará los datos y la estructura de forma independiente.

Ventaja 2

La administración de la bd promueve la administración ordenada de la información al mantener centralizados los datos.

Diferentes programas pueden utilizar la bd al mismo tiempo, tomando cada uno una parte de la información contenida y/o proporcionando información que otro programa necesitará después.

Ventaja 3

La centralización de la información implica la facilidad de la instalación de los programas en las computadoras.

Si existieran modificaciones en la bd que solo afectarán a la bd, no tendrían que re-instalarse los programas en las computadoras, los cambios se realizan en una ocasión en una computadora y todas pueden aprovechar la modificación realizada en el momento de su actualización.

Ventaja 4

No todos los usuarios de la información pueden conocer TODO, solamente la parte indicada. El sistema gestor de bases de datos permite y niega el acceso a diferentes usuarios restringiendo sus actividades sobre la bd.

Se pueden programar respaldos de la información a medios de almacenamiento secundario lentos, con el fin de evitar la perdida de información en un desastre.