miércoles, 12 de noviembre de 2008

Conceptos basicos de Bases de datos

Para los chavos de la prepa:

CONCEPTOS BASICOS

Dato: Conjunto de caracteres con algun significado.
p.e puede que "Juan" signifique el nombre de una persona registrada en nuestra base de datos.

Campo: Es la unidad mas pequeña a la cual puede referirse en un programa.

Registro: Coleccion de campos de iguales o diferente tipo de alguna manera asociados entre si.



¿QUE SON LAS BASES DE DATOS?


Una base de datos es una recopilacion de informacion relativa a un asunto o proposito particular como el seguimiento de pedidos de un clientes o el mantenimiento de una coleccion de musica.


OBJETIVOS DE UNA BASE DE DATOS

El objetivo de una base de datos es el de almacenar informacion sobre algo de manera eficiente, poniendo especial atencion en:

Disminuir la Redundancia y la Inconsistencia en la informacion: Esto quiere decir que evitaremos duplicar la informacion(redundancia) y que dicha informacion sea la mas actualizada(inconsistencia), esto lo podremos vislumbrar mejor con la siguiente analogia:
Supongamos que insertamos varios archivos mp3 a nuestro celular, entre estos archivos por un descuido metemos dos veces una misma cancion, al darnos cuenta de esto, seria logico que dejaramos que esta cancion se repitiera?, no lo creo porque lo que estaria haciendo seria unicamente ocupar memoria que bien podriamos ocupar para agregar una cancion mas a nuestro mobil o como espacio para fotos etc, pues bien uno de los objetivos de las bases de datos es acomodar la informacion de tal manera que esta no se repita inecesariamente y esto es a lo que llamamos redundancia.


Por otro imaginemos que tenemos una agenda donde tenemos anotada a nuestra amiga mari (siempre hay una mari), sin embargo recientemente mari cambio de telefono por lo que la volvemos a anotar con su nuevo telefono, ahora bien al echo de tener dos veces a la misma mari con numeros de telefonos diferentes es a lo que llamamos un error de inconsistencia, es decir forzosamente uno de los 2 numeros esta equivocado provocando que nuestra agenda no tenga informacion 100% veradera.

Reducir la dificultad para tener acceso a los datos
    Un sistema de base de datos debe contemplar un entorno de datos que le facilite al usuario el manejo de los mismos. Supóngase un banco, y que uno de los gerentes necesita averiguar los nombres de todos los clientes que viven dentro del código postal 78733 de la ciudad. El gerente pide al departamento de procesamiento de datos que genere la lista correspondiente. Puesto que esta situación no fue prevista en el diseño del sistema, no existe ninguna aplicación de consulta que permita este tipo de solicitud, esto ocasiona una deficiencia del sistema.
Eliminar problemas de seguridad en la informacion
    La información de toda empresa es importante, aunque unos datos lo son más que otros, por tal motivo se debe considerar la facilidad con que se acceden a los mismos, no todos los usuarios pueden visualizar la misma informacion, por tal motivo para que un sistema de base de datos sea confiable debe mantener un grado de seguridad que garantice la autentificación y protección de los datos. En un banco por ejemplo, el personal de nóminas sólo necesita ver la parte de la base de datos que tiene información acerca de los distintos empleados del banco y no a otro tipo de información.


MANEJADOR DE BASE DE DATOS

    El sistema  manejador   de bases de datos es la porción más importante de un sistema de base de datos. Un DBMS es una colección de numerosas rutinas de software interrelacionadas, cada una de las cuales es responsable de alguna tarea específica, dicho en otras palabras es un programa que sirve para crear y poder manipular las  bases de datos y la informacion que contienen.
TABLAS
Las tablas son la parte mas importante de una base de datos, ya que es ahi donde se guardara y organizara la informacion, las tablas se componen de dos partes la primera son las columnas(nombres de los campos) y la segunda son las filas tambien llamadas registros.

TIPOS DE USUARIOS

Existen en una base de datos dos tipos de usuarios bien definidos, el primero es el administrador de la base de datos o como todos en el medio lo conocen el DBA (Data base Administrator) de dicho usuario podemos decir que es el todopoderoso, todo lo puede ver y todo lo puede hacer vive sin limites ni reservas pero carga con la responsabilidad de todo aquello que suceda en la base de datos, mientras que el otro tipo de usuario es simplente llamado así "usuario" y este unicamente puede ver y hacer lo que el DBA le haya permitido.

Administrador de Bases de Datos

Denominado por sus siglas como: DBA, Database Administrator.

    Es la persona encargada y que tiene el control total sobre el sistema de base de datos, sus funciones principales son:

   Definición de esquema.
    Es decir es el que crea la estructura o esqueleto de la base de datos.


   Concesión de autorización para el acceso a los datos.
      Es decir genera los permisos de cuanto pueden ver o hacer los demas usuarios.

   Especificación de límitantes de integridad.
      Es una serie de restricciones que se encuentran almacenados en una estructura especial del sistema que es consultada por el gestor de base de datos cada vez que se realice una actualización al sistema.




 
 Usuarios de las bases de datos

    Podemos definir a los usuarios como toda persona que tenga todo tipo de contacto con el sistema de base de datos desde que este se diseña, elabora, termina y se usa.

Los usuarios que accesan una base de datos pueden clasificarse como:

   Programadores de aplicaciones.
      Los profesionales en computación que interactuan con el sistema por medio de llamadas en DML (Lenguaje de Manipulación de Datos), las cuales están incorporadas en un programa escrito en un lenguaje de programación (Por ejemplo, COBOL, PL/I, PHP, C, etc.)

   Usuarios sofisticados.
      Los usuarios sofisticados interactuan con el sistema sin escribir programas. En cambio escriben sus preguntas en un lenguaje de consultas de base de datos SQL.


   Usuarios ingenuos.
      Los usuarios no sofisticados interactuan con el sistema invocando a uno de los programas de aplicación permanentes que se han escrito anteriormente en el sistema de base de datos, podemos mencionar al usuario ingenuo como el usuario final que utiliza el sistema de base de datos sin saber nada del diseño interno del mismo por ejemplo: un cajero.


 
 
SQL
 
Hace algunos años cuando se descubrio la importancia de las bases de datos salieron al mercado muchos manejadores de bases de datos, cada uno utilizaba una manera muy propia para manipular los datos, esto ocasionaba principalmente dos graves problemas:

1) cada vez que se queria utilizar un nuevo manejador ya sea por su potencia, seguridad, efectividad etc; Habia que aprender desde el inicio a utilizarlo p.e en nuestro programa anterior para realizar una tarea como la de crear una nueva base de datos haciamos algo como: create new dabase with name mi_base execute now; mientras que en la nueva aplicacion para realizar la misma tarea se hacia: new data_base create now mi_base; lo que apesar de ser similar es diferente y nos causaria cierta confusion e incluso realmente la instruccion podria llegar a ser diferente: new arkud_data:data:bd_new mi_base; por decir algo.

2) El segundo problema por logica era la incompatibilidad entre bases de datos, es decir si habiamos echo nuestra base de datos en acces el mudarla a MySQL por X razon era una tarea muy tediosa si no imposible.

Observando la utilidad de las bases de datos y teniendo claro este problema se decidio crear un lenguaje de manipulacion estandar, el cual tomaria lo bueno de cada lenguaje y lo uniria para que todos los manejadores de bases de datos funcionaran con ese mismo lenguaje sin ningun problema.

Es de eso de lo que trata el Structured Query Language que no es mas que un lenguaje estándar de comunicación con bases de datos. Hablamos por tanto de un lenguaje normalizado que nos permite trabajar con cualquier tipo de lenguaje (ASP o PHP) en combinación con cualquier tipo de base de datos (MS Access, SQL Server, MySQL...).

El hecho de que sea estándar no quiere decir que sea idéntico para cada base de datos. En efecto, determinadas bases de datos implementan funciones específicas que no tienen necesariamente que funcionar en otras. 

Aparte de esta universalidad, el SQL posee otras dos características muy apreciadas. Por una parte, presenta una potencia y versatilidad notables que contrasta, por otra, con su accesibilidad de aprendizaje. 



COLUMNA(o Campo): Es un nombre que se asigna para identificar un conjunto de datos del mismo tipo.

FILA(o Registro): Es un conjunto de datos relacionados, todas las filas de la misma tabla tienen la misma estructura.

CLAVES PRIMARIAS: Se llama clave primaria a un campo, o a una combinación de campos, que identifica en forma única a cada registro.
Por ejemplo, para una tabla de clientes se podría usar, como clave primaria, una de las siguientes opciones:

La cédula de identidad del cliente.
La combinación de nombre y apellido. Esto es dudoso, ya que un dos clientes pueden tener el mismo nombre y el mismo apellido.
Un código de cliente, asignado por la empresa.
Sin embargo, lo más recomendable es utilizar un número que nunca verá el usuario final. Para este fin, se necesita un número secuencial. Esto nos trae numerosas ventajas, entre otras:

Se simplifican las claves foráneas y las relaciones entre las tablas. Por ejemplo, si para identificar a un cliente utilizamos la combinación de nombre y apellido, también necesitamos el nombre y el apellido del cliente en la factura, para identificar al cliente.
Se ahorra espacio, ya que un campo de tipo Integer (entero) sólo utiliza 4 bytes (sin embargo, permite números hasta 2 mil millones). Se puede argumentar que se necesita un campo más para la clave primaria; pero se ahorra espacio en las claves foráneas en otras tablas.
El acceso a los datos es más rápido. Esto está directamente relacionado con el hecho de que los campos de tipo Integer (y sus índices correspondientes) son más pequeños.
El usuario puede cambiar los códigos, sin que se tengan que "propagar" los cambios a otras tablas.
También hay algunas desventajas; sobre todo, la programación se hace más complicada en algunos casos. Pero he visto en la práctica que es un sacrificio que vale la pena.


CLAVES FORANEAS:  Es una referencia, en una tabla, a la clave primaria de otra tabla.

INDICES: El índice de una base de datos es una estructura de datos que mejora la velocidad de las operaciones, permitiendo un rápido acceso a los registros de una tabla. Al aumentar drásticamente la velocidad de acceso, se suelen usar sobre aquellos campos sobre los cuales se hagan frecuentes búsquedas.
El índice tiene un funcionamiento similar al índice de un libro, guardando parejas de elementos: el elemento que se desea indexar y su posición en la base de datos. Para buscar un elemento que esté indexado, sólo hay que buscar en el índice dicho elemento para, una vez encontrado, devolver el registro que se encuentre en la posición marcada por el índice.


Bueno ya para finalizar veremos muy generalmente algunas instrucciones para manipular bases de datos, dichas instrucciones pueden variar ligeramente dependiendo del manejador que utilicemos, ya que con ustedes estaremos ocupando MySQL les recomiendo que vean los comandos especificos para este manejador en el siguiente post:



CREATE DATABASE :Utilizaremos esta instruccion para crear una base de datos.

USE: Selecciona una base de datos para trabajar con ella.

CREATE TABLE: Utilizaremos esta instruccion para crear una nueva tabla tabla en la base de datos seleccionada.

DESC | DESCRIBE: Utilizaremos esta instruccion para ver la estructura y la informacion de una tabla.

INSERT: Con este comando podremos insertar informacion a una tabla.

UPDATE: Con esta instruccion podemos modificar la informacion contenida en una tabla.

DELETE: Con este comando podremos eliminar la informacion contenida en una tabla.

TRUNCATE: Elimina de una manera mas eficiente la toda informacion contenida en una tabla, pero no es utilcuando queremos borrar unicamente una parte de la informacion en vez de toda.

ALTER: Con este comando podremos modificar la estructura de una tabla, ojo digo estructura no contenido, modificar estructura es algo asi como modificar la informacion de las columnas, aumentar o disminuir su numero, mientras que modificar la informacion (UPDATE) se refiere a modificar las filas de la tabla.

DROP: Sirve para eliminar tablas.

SELECT: Es tal vez la instruccion mas compleja y mas poderosa de todo sql, su funcion es la de buscar determinada informacion en la base de datos y presetarla para utilizarla con multiples fines.   

Dada la importancia de esta instruccion les dejo un esquema basico de esta:

SELECT [DISTINCT] { * | columna [, columna]}
FROM tabla
[WHERE condicion_de_busqueda]
[ORDER BY columna [ASC|DESC] [,columna [ASC|DESC] ];

Donde:

SELECT es la palabra clave que indica que se va a realizar una seleccion de la informacion.

DISTINCT puede ir o no ir, si se pone indica que no muestre valores repetidos.

COLUMNA es la o las columnas de las cuales nos mostrara informacion.

FROM palabra reservada que indica que lo siguiente es el nombre de la tabla de donde quieres obtener dicha informacion.

WHERE es una instrucion de condicion, puede ir o no ir y si se pone condiciona la busqueda a un parametro como por ejemplo si la tabla es estudiantes podemos indicar que nos muestre todos los estudiantes de 5to semestre.

ORDER BY indica que la informacion se va ordenar ya sea numerica o alfabeticamente deacuerdo a la informacion de la columna o columnas especificadas.

ASC y DESC indica si la informacion se va a ordenar ascendentemente de la a-z o de 1 a-n o desendentemente z-a o de n a 1.



1 comentario:

Anónimo dijo...

me agrado el blog....esta genial...

me gustaria conocer mas amigos...


galindoepi@hotmail.com


1990............................