jueves, 6 de abril de 2017

Bases de Datos

INTRODUCCIÓN 

Una base de datos (cuya abreviatura es BD) es una entidad en la cual se pueden almacenar datos de manera estructurada, con la menor redundancia posible. Diferentes programas y diferentes usuarios deben poder utilizar estos datos. Por lo tanto, el concepto de base de datos generalmente está relacionado con el de red, ya que se debe poder compartir esta información.

Que es ?

Una base de datos es el conjunto de datos informativos organizados en un mismo contexto para su uso y vinculación.

Se le llama base de datos a los bancos de información que contienen datos relativos a diversas temáticas y categorizados de distinta manera, pero que comparten entre sí algún tipo de vínculo o relación que busca ordenarlos y clasificarlos en conjunto.


Una base de datos puede ser de diverso tipo, desde un pequeño fichero casero para ordenar libros y revistas por clasificación alfabética hasta una compleja base que contenga datos de índole gubernamental en un Estado u organismo internacional. Recientemente, el término base de datos comenzó a utilizarse casi exclusivamente en referencia a bases construidas a partir de software informático, que permiten una más fácil y rápida organización de los datos. Las bases de datos informáticas pueden crearse a partir de software o incluso de forma online usando Internet. En cualquier caso, las funcionalidades disponibles son prácticamente ilimitadas.

Tipos de bases de datos 

Las bases de datos pueden clasificarse de varias maneras, de acuerdo al contexto que se este manejando, o la utilidad de la misma.

Segun la variabilidad de los datos almacenados:


Bases De Datos Estáticas

  Estas son bases de datos de solo lectura, utilizadas primordialmente para almacenar datos históricos que posteriormente se pueden utilizar para estudiar el comportamiento de un conjunto de datos a través del tiempo, realizar proyecciones  y tomar decisiones.

 

Bases De Datos Dinámicas

Estas son bases de datos donde la información almacenada se modifica con el tiempo, permitiendo operaciones como actualización, borrado y adición de datos, ademas de las operaciones fundamentales de consulta. Un ejemplo de esto puede ser la base de datos utilizada en un sistema de información de un supermercado, una farmacia, un videoclub o una empresa.


 ventajas y desventajas de una base de datos 

Ventajas.

  • Almacenan grandes cantidades de información.


Esto es muy útil para las grandes compañías que manejan grandes volúmenes de información.

  • Compartir la información.

Los usuarios de distintas oficinas pueden compartir datos e información que son de gran importancia para sus departamentos o funciones.

  • Acceso rápido a la información.

Esta es una gran ventaja, ya que la información siempre estará disponible para los usuarios.
Eliminación de información repetida o redundante.

Los usuarios tendrán la certeza de que la información que están solicitando no esta repetida o es redundante.

  • Aumento en la productividad.

Como la información está disponible y es coherente, los usuarios podrán aumentar su rendimiento al saber que cuentan con una información fiel.

  • Reducción del espacio de almacenamiento.

Al tener la información en medios electrónicos, se reduce considerablemente el espacio para almacenar de manera tradicional.

  • Mejora la seguridad de la información.

Existe un acceso reducido para los usuarios, de tal manera que cierta información podrá ser controlada por los administradores de la base de datos.

  • Mejor mantenimiento. 

Al estar la información en medios electrónicos, el darle mantenimiento es mucho más fácil ya que se cuentan con herramientas para este mantenimiento.


Desventajas:

  • Tamaño.
Entre más grande sea la base de datos, se requiere mayor capacidad e disco duro y más memoria ram para que pueda funcionar adecuadamente.

  • Costo.
El hardware y software para el correcto funcionamiento de una base de datos es costoso.

  • Actualización.

  Es necesario mantener actualizados a los usuarios ya que las tecnologías van cambiando constantemente.

  • Vulnerabilidad a los fallos.

  Esta es una gran desventaja ya que la base de datos está expuesta a fallos que no están en las manos de los usuarios, como una descarga eléctrica.


Relaciones en bases de datos 

No siempre las condiciones para establecer vínculos entre dos tablas son iguales, la manera en que se relacionan las tablas entre sí da lugar a comportamientos diferentes. En la estructura de cualquier base de datos encontramos principalmente tres tipos de relaciones que se describen del siguiente modo:

  • Uno a muchos.
  • Muchos a muchos.
  • Uno a uno.

De todas ellas, la más utilizada y recomendable en la mayoría de los casos será el modelo Uno a muchos como veremos a continuación.

Uno a muchos

Veamos el primer modelo de relación tomando como referencia las tablas Alumnos y Grupos. Cualquier alumno (MUCHOS) pertenece sólo a un grupo (UNO), un alumno no puede estar en más de una clase. Pues bien, ni más ni menos que este sería el argumento de una relación MUCHOS A UNO.



Uno a uno

Las relaciones uno a uno no son demasiado frecuentes pero existen así que debemos conocerlas. Buscando alguna coincidencia en nuestro entorno que nos pueda servir como ejemplo encontramos el vínculo entre un tutor y su grupo. Como sabemos, un profesor puede ser tutor de un sólo grupo (UNO) y del mismo modo, cada grupo sólo puede tener un tutor. Esta sería una relación UNO a UNO.
Cada registro de la tabla A se relaciona con un único registro de la tabla B y cada registro de la tabla B sólo se relaciona con un elemento de la tabla A. Como hemos comentado, este tipo de relaciones son poco comunes.

Muchos a muchos

Resumiendo lo visto hasta ahora podemos decir que el tipo de relación ideal es uno a muchos o muchos a uno. Las relaciones uno a uno no aportan demasiado a la base de datos, simplemente nos ayudan a tener mejor organizada la información pero poco más. Veamos qué ocurre con las relaciones muchos a muchos.
Por ejemplo, si queremos conocer los profesores que dan clase a un grupo o los grupos a los que da clase un profesor determinado, necesitamos en principio dos tablas: Profesores y Grupos. ¿Y cuál sería la relación entre estas dos tablas? Pues bien, para establecerla podríamos leer que un profesor da clases a varios grupos (1A, 1B, 2C, etcétera) y un grupo recibe clases de varios profesores (Carlos Pérez, Antonio García, etcétera). Por lo tanto, nos encontramos entre una relación MUCHOS A MUCHOS.


Llaves primarias 

Una llave primaria es un campo o grupo de campos que identifica de forma única a cada registro dentro de una tabla

Llave secundaria 

Cuando determinas que dos tablas guardan una relación entre sí, generalmente estableces la relación tomando una copia de la clave primaria de la primer tabla y la incorporas dentro de la estructura de la segunda tabla, donde se convierte en una clave secundaria. El nombre “clave secundaria” se deriva del hecho de que la segunda tabla ya tiene una clave primaria propia, y la clave primaria que estás introduciendo desde la primer tabla es “secundaria” a la segunda tabla

Tablas 

Tabla en las bases de datos, se refiere al tipo de modelado de datos, donde se guardan los datos recogidos por un programa. Su estructura general se asemeja a la vista general de un programa de hoja de cálculo.

Una tabla es utilizada para organizar y presentar información. Las tablas se componen de filas y columnas de celdas que se pueden rellenar con textos y gráficos.



Share:

miércoles, 16 de noviembre de 2016

MATRICES




Matrices son arreglos con dos dimensiones  es decir se puede decir que tienen filas y columnas, su manejo es igual que los vectores anteriormente explicados, los valores de las variables se llaman elementos, de la misma forma que en los arreglos


Una matriz es una estructura de datos, con mas técnicamente un espacio de memoria que permite almacenar una colección de elementos, todos del mismo tipo la diferencia con los vectores esta en que en las matrices , los elementos no están organizados lineal mente si no que su organización es dimensional. es decir filas y columnas. una matriz se convierte en una organización de celdas de memorias o casillas, en cada una de las cuales se puede guardar un elemento de la colección

A continuación daré 5 ejemplos de matrices ,espero les sirva 


1 :
hacer una matriz que permita almacenar datos en 3 filas y 3 columnas
 y nos muestre los numero.

arreglo[3,3]de entero num

entero f,c

inicio
para f<-1 hasta 3 haga
para c<-1 hasta 3 haga
escriba "ingrese los números:"
lea num[f,c]
fin para
fin para
llamar nueva_linea
para f<-1 hasta 3 haga
para c<-1 hasta 3 haga
escriba ",",num[f,c]
fin para
llamar nueva_linea
fin para
fin


2:
algoritmo que muestre la posición de un dato 
arreglo[5,4] de entero numero
entero L,C
inicio
para L <- 1 hasta 5 haga
para c <- 1 hasta 4 haga
Escriba "Numero[", L , ",", C, "]"
lea numero[L,C]
Fin Para
Fin Para
para L <- 1 hasta 5 haga
para c <- 1 hasta 4 haga
Escriba numero[L,C]," "
Fin Para
llamar nueva_linea
Fin Para

fin

3:
Desarrollar una matriz 3x3 que me almacene los nombres y al final me los muestre.

arreglo[3,3]de cadena[10] nombre
entero f,c

inicio
para f<-1 hasta 3 haga
para c<-1 hasta 3 haga
escriba "ingrese los nombres:"
lea nombre[f,c]
fin para
fin para
llamar nueva_linea
llamar nueva_linea
para f<-1 hasta 3 haga
para c<-1 hasta 3 haga
escriba " ",nombre[f,c]

fin para
llamar nueva_linea
fin para

fin


4:

Multiplicar 2 matrices 3x3, mostrar la matriz resultante y las 2 matrices ingresadas.

Arreglo [3,3] de entero matriz1
Arreglo [3,3] de entero matriz2
Arreglo [3,3] de entero matriz3
Entero f,c

Inicio
 Para f<- 1 hasta 3 haga
  Para c<- 1 hasta 3 haga
Escriba " Ingrese el numero 1 : "
Lea matriz1[f,c]
 Fin para
  Fin para
    Llamar nueva_linea
Para f<- 1 hasta 3 haga
 Para c<- 1 hasta 3 haga
Escriba " Ingrese el numero 2 : "
Lea matriz2[f,c]  

 Fin para
  Fin para  

  Llamar nueva_linea
Para f<- 1 hasta 3 haga
 Para c<- 1 hasta 3 haga
Escriba " ", matriz1[f,c]
 Fin para
 Llamar nueva_linea
 Fin para
  Llamar nueva_linea
Para f<- 1 hasta 3 haga
 Para c<- 1 hasta 3 haga
Escriba " ", matriz2[f,c]
 Fin para
 Llamar nueva_linea
 Fin para

 Llamar nueva_linea
 
Para f<- 1 hasta 3 haga
 Para c<- 1 hasta 3 haga
   matriz3[f,c]<- matriz1[f,c] * matriz2[f,c]
Escriba " ", matriz3[f,c]
Fin para
Llamar nueva_linea
Fin para   
  
 Fin

5:
arreglo [5,5] de real matriz
entero filas,columnas
inicio
escriba “ejemplo de como se llena e imprime una matriz de 5 X 5.
llamar nueva_linea
escriba “ingrese los valores a ser ubicados en las filas de la matriz”
llamar nueva_linea
para filas<-1 hasta 5 haga
para columnas<-1 hasta 5 haga
escriba “digite el valor: “
lea matriz[filas,columnas]
llamar nueva_linea
fin para
fin para
escriba “imprimir la matriz creada.”
llamar nueva_linea
para filas<-1 hasta 5 haga
para columnas<-1 hasta 5 haga
escriba matriz[filas,columnas]
llamar nueva_linea
fin para
fin para
fin


Share:

jueves, 27 de octubre de 2016

VECTORES



Los vectores o arreglos son una forma de almacenar datos que permiten contener una serie de valores del mismo tipo, cada uno de los elementos contenidos tiene una posición asociada que se usará para acceder los.  Está posición o índice será siempre un número entero positivo.


ESTRUCTURA


 ARREGLO [ ] DE VARIABLE , NOMBRE DEL VECTOR 

                    
                        TAMAÑO DEL  "ENTERO"
                           VECTOR        "REAL"
                                                  "CADENA"

ejemplo 1:

desarrollar un arreglo que me permita el ingreso de 20 frutas y al final las muestre 

arreglo de [20] de cadena [20] fruta 

entero i 
inicio
        para i <----  0 hasta 19 haga 
       escriba "ingrese fruta:"
         lea fruta [i]
fin para 
     para i <----  0 hasta 19 haga 
         escriba fruta [i]
fin para 
fin 


ejemplo 2:

desarrollar un programa que me permita almacenar en dos vectores los 10 nombres y al frente las edades correspondientes a dichas personas

arreglo[10] de cadena [10] nombre 

arreglo [10] de entero edad
entero i 
inicio 
      para i <---- 0 hasta 9 haga 
        escriba"ingrese nombre :"
lea nombre [i]
        escriba "ingrese edad :"
lea edad [i]
fin para  
    para i <---- 0 hasta 9 haga 
 escriba nombre [i]
escriba edad [i]
llamar nueva_linea
           fin para
fin

ejemplo 3: 
Arreglo que almacene 10 números , evalúa si son pares o impares y al final saca un mensaje totalizando la cantidad de pares e impares

arreglo de [10] de entero num 
entero i, pares,impar 
inicio
pares<-0
impar<-0
        para i <----  0 hasta 19 haga 
       escriba "ingrese el numero:"
         lea num [i]
si num [i] mod 2= 0 entonces 
    pares <- pares + 1 
 sino 
impar <- impar + 1 
fin si 
  fin para 
     fin para 
     para i <-  0 hasta 19 haga 
         escriba "total pares :" ,pares [i]
         escriba "total impares :", impar [i]
fin para 
fin 

ejemplo 4 

arreglo que empieza pidiendo la cantidad de números que contiene el vector y al final muestre su promedio 


arreglo [20] de entero numero , real, suma, prom 

entero i ,l 
inicio 
escriba "ingrese números que contiene el vector "
 lea l 
suma <- 0 
  para i <- 1 hasta l haga 
    escriba "ingrese numero"
  lea numero [i]
suma <- suma+numero [i]
fin para 
prom <- suma/l
escriba "el promedio es :", prom
fin 

ejemplo 5 

arreglo tipo vector que permite ingresar el sexo de la persona y su respectiva edad
(10 personas )

arreglo [10] de cadena [10]sexo, edad
entero i
para i <- 0 hasta 9 haga
  escriba "ingrese el sexo "
lea sexo [i]
  escriba "ingrese la edad "
lea edad [i]
fin para
 para i <- 0 hasta 9 haga
    escriba sexo [i]
   escriba edad [i]
fin para
   fin

A continuación pasaremos algunos ejemplos de secuencial a arreglo 

   SECUENCIAL                 ➡             ARREGLO

 1:   inicio                                                        arreglo de [20] de cadena [20] fruta 
   escriba "ingrese fruta:"                       entero i 
     lea fruta   
escriba "su fruta es :",  fruta                  inicio
   fin                                                                para i <----  0 hasta 19 haga 
                                                                      escriba "ingrese fruta:"
                                                                      lea fruta [i]
                                                             fin para 
                                                                      para i <----  0 hasta 19 haga 
                                                                      escriba fruta [i]
                                                              fin para 
                                                                          fin 




2:
cadena[50] nombre                                                           arreglo [10]de cadena [50] nombre 
inicio                                                                                entero i,z
escriba "nombre "                                   ➡                      inicio
lea nombre                                                                        escriba "numero de nombres "
 escriba "el nombre es :"; nombre                                       lea z 
 fin                                                                                        para i<-0 hasta z haga
                                                                                                  escriba "nombre "
                                                                                                 lea nombre[i]
                                                                                       fin para 
                                                                                             para i<-0 hasta z haga
                                                                                               lea nombre[i]
                                                                                               llamar nueva_linea
                                                                                        fin para 
                                                                                           fin



3:real edad               


  inicio 
escriba "edad "
lea edad
fin                                                                             arreglo [10] real  edad
                                                                                           entero i z
                                                ➡                              inicio 
                                                                                   escriba "numero de datos "
                                                                                             lea z 
                                                                                      para i<-0 hasta z haga
                                                                                     escriba "edad"
                                                                                          lea edad[i]
                                                                                          fin para 
                                                                                      para i<-0 hasta z haga
                                                                                        escriba  edad[i]
                                                                                      llamar nueva_linea
                                                                                                  fin para 
                                                                                                   fin



A continuación pasaremos algunos ejercicios de condicional a arreglo 



1:real numero 
inicio 
escriba "numero "
lea numero 
si numero =100 entonces                         
escriba "numero muy alto"
fin si                                                                          
fin


arreglo [10] real  [50] numero
entero i z
inicio 
escriba "numero de datos "
lea z 
para i<-0 hasta z haga
escriba "numero "
lea numero[i]
si numero =100 entonces 

escriba "numero muy alto"
fin para 
para i<-0 hasta z haga
escriba  numero[i]
llamar nueva_linea
fin para
fin 


2:

cadena[50] nombre 
inicio
escriba "nombre "
lea nombre  
si nombre = juan entonces 
escriba "felicitaciones" 
fin si
fin



arreglo [10]de cadena [50] nombre 
entero i z
inicio 
escriba "numero de nombres "
lea z 
para i<-0 hasta z haga
escriba "nombre "
lea nombre[i]
si nombre = juan entonces 
escriba "felicitaciones" 

fin si
fin para 
para i<-0 hasta z haga
lea nombre[i]
llamar nueva_linea
fin para 
fin

3:

real edad 
inicio 
escriba "edad "
lea edad
si edad > 150 entonces
 "escriba usted esta muerto" 
fin



arreglo [10] real  edad
entero i z
inicio 
escriba "numero de datos "
lea z 
para i<-0 hasta z haga
escriba "edad"
lea edad[i]
si edad > 150 entonces 
escriba "usted esta muerto"
sino 
fin si 
fin para 
para i<-0 hasta z haga
escriba  edad[i]
llamar nueva_linea
fin para 
fin


4:
real salario 
inicio 
escriba "salario "
lea salario
si salario > 1000000 entonces 
escriba "felicitaciones "
sino 
salario <- salario 
fin si 
fin



arreglo [10] real  salario
entero i z
inicio 
escriba "numero de datos "
lea z 
para i<-0 hasta z haga
escriba "salario"
lea salario[i]
si salario > 1000000 entonces 
escriba "felicitaciones "
sino 
salario <- salario 

fin si 
fin para 
para i<-0 hasta z haga
escriba  salario[i]
llamar nueva_linea
fin para 
fin

Los siguientes ejercicios los pasaremos de siclo para a arreglo 

1:

real num_1,num_2,total
entero i
inicio
para i<-1 hasta 10 haga
escriba "ingrese un numero: "
lea num_1
escriba "ingrese un numero: "
lea num_2
si num_1<10 entonces 
 total[i]<-num_1-num_2
  sino total[i]<-num_1+num_2
fin si
fin para
para i<- 1 hasta 10 haga 
escriba total
llamar nueva_linea
fin para
fin


arreglo[10] de entero total
real num_1,num_2,total
entero i
inicio
para i<-1 hasta 10 haga
escriba "ingrese un numero: "
lea num_1
escriba "ingrese un numero: "
lea num_2
si num_1<10 entonces 
 total[i]<-num_1-num_2
  sino total[i]<-num_1+num_2
fin si
fin para
para i<- 1 hasta 10 haga 
escriba total
llamar nueva_linea
fin para
fin


2:

real pago_i
cadena[20]nombre
entero i
inicio
para i<-1 hasta 3 haga
escriba "ingrese su nombre: "
lea nombre
escriba "ingrese su pago: "
lea pago_i
si nombre="diego" entonces 
 pago_t[i]<-pago_i+(pago_i*0.06)
  sino pago_t[i]<-pago_i
fin si
fin para
para i<-1 hasta 3 haga
escriba pago_t[i]
llamar nueva_linea
fin para
fin 

arreglo[10] de entero pago_t
real pago_i
cadena[20]nombre
entero i
inicio
para i<-1 hasta 3 haga
escriba "ingrese su nombre: "
lea nombre
escriba "ingrese su pago: "
lea pago_i
si nombre="diego" entonces 
 pago_t[i]<-pago_i+(pago_i*0.06)
  sino pago_t[i]<-pago_i
fin si
fin para
para i<-1 hasta 3 haga
escriba pago_t[i]
llamar nueva_linea
fin para
fin 


3:


entero suma,i,cant_n
real promedio
inicio 
escriba "ingrese la cantidad de numeros: "
lea cant_n
suma <-0
para i<-1 hasta cant_n haga
escriba "ingrese un numero: "
lea num[i]
suma<-suma+num[i]
escriba "lleva: ",suma
llamar nueva_linea
fin para
para i<-1 hasta 10 haga 
escriba num[i]
llamar nueva_linea
fin para
promedio<-suma/cant_n
escriba "el promedio es: ",promedio
fin 


arreglo [10] de entero num
entero suma,i,cant_n
real promedio
inicio 
escriba "ingrese la cantidad de numeros: "
lea cant_n
suma <-0
para i<-1 hasta cant_n haga
escriba "ingrese un numero: "
lea num[i]
suma<-suma+num[i]
escriba "lleva: ",suma
llamar nueva_linea
fin para
para i<-1 hasta 10 haga 
escriba num[i]
llamar nueva_linea
fin para
promedio<-suma/cant_n
escriba "el promedio es: ",promedio

fin 



Los siguientes ejercicios son ciclo mientras y los pasaremos a arreglos 

1:

real pago_i
cadena[20]nombre
entero i
inicio
mientras nombre= juan haga 
escriba "ingrese su nombre: "
lea nombre
escriba "ingrese su pago: "
lea pago_i
si nombre="diego" entonces 
 pago_t[i]<-pago_i+(pago_i*0.06)
  sino pago_t[i]<-pago_i
fin si
escriba pago_t[i]
llamar nueva_linea
fin mientras 
fin 

arreglo[10] de entero pago_t
real pago_i
cadena[20]nombre
entero i
inicio
para i<-1 hasta 3 haga
escriba "ingrese su nombre: "
lea nombre
escriba "ingrese su pago: "
lea pago_i
si nombre="diego" entonces 
 pago_t[i]<-pago_i+(pago_i*0.06)
  sino pago_t[i]<-pago_i
fin si
fin para
para i<-1 hasta 3 haga
escriba pago_t[i]
llamar nueva_linea
fin para
fin 


2:

entero ,numero,numero_2
inicio
suma[i]<-0
para i<-mientras numero < 100 haga 
escriba "ingrese un numero:"
lea numero
escriba "ingrese un numero"
lea numero_2
suma[i]<-numero_2+numero
escriba suma[i]
llamar nueva_linea
fin mientras 
fin

arreglo [10] de entero suma
entero i,numero,numero_2
inicio
suma[i]<-0
para i<-1 hasta 10 haga
escriba "ingrese un numero:"
lea numero
escriba "ingrese un numero"
lea numero_2
suma[i]<-numero_2+numero
fin para
para i<-1 hasta 10 haga 
escriba suma[i]
llamar nueva_linea
fin para
fin

Share: