base de datos - Docencia FCA-UNAM

Anuncio
BASE DE DATOS Base de datos
Definición
Una base de datos o banco de datos, también conocido como DB? (Data Base = Base de
datos en inglés) o también como BBDD o BD, es un conjunto de datos pertenecientes a un
mismo contexto y almacenados sistemáticamente para su posterior uso. En este sentido, una
biblioteca puede considerarse una base de datos compuesta en su mayoría por documentos
y textos impresos en papel e indexados para su consulta. En la actualidad, y debido al
desarrollo tecnológico de campos como la informática y la electrónica, la mayoría de las
bases de datos están en formato digital (electrónico), que ofrece un amplio rango de
soluciones al problema de almacenar datos.
Una base de datos es un “almacén” que nos permite guardar grandes cantidades de
información de forma organizada para que luego podamos encontrar y utilizar fácilmente.
A continuación te presentamos una guía que te explicará el concepto y características de las
bases de datos.
El término de bases de datos fue escuchado por primera vez en 1963, en un simposio
celebrado en California, USA. Una base de datos se puede definir como un conjunto de
información relacionada que se encuentra agrupada ó estructurada.
Desde el punto de vista informático, la base de datos es un sistema formado por un
conjunto de datos almacenados en discos que permiten el acceso directo a ellos y un
conjunto de programas que manipulen ese conjunto de datos.
Cada base de datos se compone de una o más tablas que guarda un conjunto de datos. Cada
tabla tiene una o más columnas y filas. Las columnas guardan una parte de la información
sobre cada elemento que queramos guardar en la tabla, cada fila de la tabla conforma un
registro.
Mediante una base de datos es posible procesar archivos guiándose por el significado de
sus contenidos y por las características de organización. Una base de datos debe reflejar la
información de una realidad relevante para una organización. El diseño de la forma y
estructura de la base de datos es un proceso muy importante, pues de ello dependerá la
simplicidad o complejidad de los programas de aplicación, y lo compacta o redundante que
sea la información dentro del sistema.
Página 1 BASE DE DATOS Funcionalidad de un DB
Una base de datos (sea cual sea) es un soporte digital que tiene como fin el almacenamiento
masivo de información en formato texto plano. No es capaz de almacenar imágenes como
se cree, sino que almacena las rutas (path) de dichas fotos; ni almacena otro tipo de datos;
sino que almacena sus rutas de acceso de ser necesario.
Las bases de datos, son utilizadas en sistemas que requieren una interacción fluida con la
aplicación; estas se encargan muchas veces de administrar, editar, y dar de alta. Usualmente
la base de datos, esta ligada a la programación directa del site, causando que una edición en
ella cause una modificación directa en lo que ve el usuario.
Ejemplos de aplicación de una base de datos (entiéndase que están ligadas a un lenguaje
dinámico como PHP o ASP): E – comerce, Agendas, Libros de visitas, foros, portales, etc
€ CARACTERÍSTICAS
€ Independencia lógica y física de los datos.
€ Redundancia mínima.
€ Acceso concurrente por parte de múltiples usuarios.
€ Integridad de los datos.
€ Consultas complejas optimizadas.
€ Seguridad de acceso y auditoria.
€ Respaldo y recuperación.
€ Acceso a través de lenguajes de programación estándar.
Página 2 BASE DE DATOS Clasificación
Las bases de datos pueden clasificarse de varias maneras, de acuerdo al criterio elegido
para su clasificación:
Según la variabilidad de los datos almacenados
Bases de datos estáticas
Éstas son bases de datos de sólo 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
Éstas son bases de datos donde la información almacenada se modifica con el tiempo,
permitiendo operaciones como actualización y adición de datos, además de las operaciones
fundamentales de consulta. Un ejemplo de esto puede ser la base de datos utilizada en un
sistema de información de una tienda de abarrotes, una farmacia, un videoclub, etc.
Según el contenido
Bases de datos bibliográficas
Solo contienen un surrogante (representante) de la fuente primaria, que permite localizarla.
Un registro típico de una base de datos bibliográfica contiene información sobre el autor,
fecha de publicación, editorial, título, edición, de una determinada publicación, etc. Puede
contener un resumen o extracto de la publicación original, pero nunca el texto completo,
porque si no estaríamos en presencia de una base de datos a texto completo (o de fuentes
primarias—ver más abajo). Como su nombre lo indica, el contenido son cifras o números.
Por ejemplo, una colección de resultados de análisis de laboratorio, entre otras.
Bases de datos de texto completo
Almacenan las fuentes primarias, como por ejemplo, todo el contenido de todas las
ediciones de una colección de revistas científicas.
Directorios
Un ejemplo son las guías telefónicas en formato electrónico.
Página 3 BASE DE DATOS Tipos de Base de Datos
Entre los diferentes tipos de base de datos, podemos encontrar los siguientes:
MySql: es una base de datos con licencia GPL basada en un servidor. Se caracteriza por
su rapidez. No es recomendable usar para grandes volúmenes de datos.
PostgreSql y Oracle: Son sistemas de base de datos poderosos. Administra muy bien
grandes cantidades de datos, y suelen ser utilizadas en intranets y sistemas de gran calibre.
Access: Es una base de datos desarrollada por Microsoft. Esta base de datos, debe ser
creada bajo el programa access, el cual crea un archivo .mdb con la estructura ya
explicada.
Microsoft SQL Server: es una base de datos más potente que access desarrollada por
Microsoft. Se utiliza para manejar grandes volúmenes de informaciones.
Modelos de bases de datos
Además de la clasificación por la función de las bases de datos, éstas también se pueden
clasificar de acuerdo a su modelo de administración de datos.
Un modelo de datos es básicamente una "descripción" de algo conocido como contenedor
de datos (algo en donde se guarda la información), así como de los métodos para almacenar
y recuperar información de esos contenedores. Los modelos de datos no son cosas físicas:
son abstracciones que permiten la implementación de un sistema eficiente de base de datos;
por lo general se refieren a algoritmos, y conceptos matemáticos.
Algunos modelos con frecuencia utilizados en las bases de datos:
Bases de datos jerárquicas
Éstas son bases de datos que, como su nombre indica, almacenan su información en una
estructura jerárquica. En este modelo los datos se organizan en una forma similar a un árbol
(visto al revés), en donde un nodo padre de información puede tener varios hijos. El nodo
que no tiene padres es llamado raíz, y a los nodos que no tienen hijos se los conoce como
hojas.
Las bases de datos jerárquicas son especialmente útiles en el caso de aplicaciones que
manejan un gran volumen de información y datos muy compartidos permitiendo crear
estructuras estables y de gran rendimiento.
Página 4 BASE DE DATOS Una de las principales limitaciones de este modelo es su incapacidad de representar
eficientemente la redundancia de datos.
Base de datos de red
Éste es un modelo ligeramente distinto del jerárquico; su diferencia fundamental es la
modificación del concepto de nodo: se permite que un mismo nodo tenga varios padres
(posibilidad no permitida en el modelo jerárquico).
Fue una gran mejora con respecto al modelo jerárquico, ya que ofrecía una solución
eficiente al problema de redundancia de datos; pero, aun así, la dificultad que significa
administrar la información en una base de datos de red ha significado que sea un modelo
utilizado en su mayoría por programadores más que por usuarios finales.
Base de datos relacional
Éste es el modelo más utilizado en la actualidad para modelar problemas reales y
administrar datos dinámicamente. Tras ser postulados sus fundamentos en 1970 por Edgar
Frank Codd, de los laboratorios IBM en San José (California), no tardó en consolidarse
como un nuevo paradigma en los modelos de base de datos. Su idea fundamental es el uso
de "relaciones". Estas relaciones podrían considerarse en forma lógica como conjuntos de
datos llamados "tuplas". Pese a que ésta es la teoría de las bases de datos relacionales
creadas por Edgar Frank Codd, la mayoría de las veces se conceptualiza de una manera más
fácil de imaginar. Esto es pensando en cada relación como si fuese una tabla que está
compuesta por registros (las filas de una tabla), que representarían las tuplas, y campos (las
columnas de una tabla).
En este modelo, el lugar y la forma en que se almacenen los datos no tienen relevancia (a
diferencia de otros modelos como el jerárquico y el de red). Esto tiene la considerable
ventaja de que es más fácil de entender y de utilizar para un usuario esporádico de la base
de datos. La información puede ser recuperada o almacenada mediante "consultas" que
ofrecen una amplia flexibilidad y poder para administrar la información.
El lenguaje más habitual para construir las consultas a bases de datos relacionales es SQL,
Structured Query Language o Lenguaje Estructurado de Consultas, un estándar
implementado por los principales motores o sistemas de gestión de bases de datos
relacionales.
Durante su diseño, una base de datos relacional pasa por un proceso al que se le conoce
como normalización de una base de datos.
Durante los años '80 (1980-1989) la aparición de BASE produjo una revolución en los
lenguajes de programación y sistemas de administración de datos. Aunque nunca debe
olvidarse que dBase no utilizaba SQL como lenguaje base para su gestión.
Página 5 BASE DE DATOS Bases de datos multidimensionales
Son bases de datos ideadas para desarrollar aplicaciones muy concretas, como creación de
Cubos OLAP. Básicamente no se diferencian demasiado de las bases de datos relacionales
(una tabla en una base de datos multidimensional podría serlo también en una base de datos
multidimensional), la diferencia está más bien a nivel conceptual; en las bases de datos
multidimensionales los campos o atributos de una tabla pueden ser de dos tipos, o bien
representan dimensiones de la tabla, o bien representan métricas que se desean estudiar.
Bases de datos orientadas a objetos
Este modelo, bastante reciente, y propio de los modelos informáticos orientados a objetos,
trata de almacenar en la base de datos los objetos completos (estado y comportamiento).
Una base de datos orientada a objetos es una base de datos que incorpora todos los
conceptos importantes del paradigma de objetos:
•
•
•
Encapsulación - Propiedad que permite ocultar la información al resto de los objetos,
impidiendo así accesos incorrectos o conflictos.
Herencia - Propiedad a través de la cual los objetos heredan comportamiento dentro de una
jerarquía de clases.
Polimorfismo - Propiedad de una operación mediante la cual puede ser aplicada a distintos
tipos de objetos.
En bases de datos orientadas a objetos, los usuarios pueden definir operaciones sobre los
datos como parte de la definición de la base de datos. Una operación (llamada función) se
especifica en dos partes. La interfaz (o signatura) de una operación incluye el nombre de la
operación y los tipos de datos de sus argumentos (o parámetros). La implementación (o
método) de la operación se especifica separadamente y puede modificarse sin afectar la
interfaz. Los programas de aplicación de los usuarios pueden operar sobre los datos
invocando a dichas operaciones a través de sus nombres y argumentos, sea cual sea la
forma en la que se han implementado. Esto podría denominarse independencia entre
programas y operaciones.
Se está trabajando en SQL3, que es el estándar de SQL92 ampliado, que soportará los
nuevos conceptos orientados a objetos y mantendría compatibilidad con SQL92.
Bases de datos documentales
Permiten la indexación a texto completo, y en líneas generales realizar búsquedas más
potentes. Tesaurus es un sistema de índices optimizado para este tipo de bases de datos.
Base de datos deductivas
Un sistema de base de datos deductivas, es un sistema de base de datos pero con la
diferencia de que permite hacer deducciones a través de inferencias. Se basa principalmente
Página 6 BASE DE DATOS en reglas y hechos que son almacenados en la base de datos. También las bases de datos
deductivas son llamadas base de datos lógica, a raíz de que se basan en lógica matemática.
Gestión de bases de datos distribuida
La base de datos está almacenada en varias computadoras conectadas en red. Surgen debido
a la existencia física de organismos descentralizados. Esto les da la capacidad de unir las
bases de datos de cada localidad y acceder así a distintas universidades, sucursales de
tiendas, etcétera. .
CAMPO (FIELD).
Espacio o área donde se colocan datos de un registro.
Tipos de Campos
Cada Sistema de Base de Datos posee tipos de campos que pueden ser similares o
diferentes. Entre los más comunes podemos nombrar:
Numérico: entre los diferentes tipos de campos numéricos podemos encontrar enteros “sin
decimales” y reales “decimales”.
Booleanos: poseen dos estados: Verdadero “Si” y Falso “No”.
Memos: son campos alfanuméricos de longitud ilimitada. Presentan el inconveniente de no
poder ser indexados.
Fechas: almacenan fechas facilitando posteriormente su explotación. Almacenar fechas de
esta forma posibilita ordenar los registros por fechas o calcular los días entre una fecha y
otra.
Alfanuméricos: contienen cifras y letras. Presentan una longitud limitada (255 caracteres).
Auto incrementables: son campos numéricos enteros que incrementan en una unidad su
valor para cada registro incorporado. Su utilidad resulta: Servir de identificador ya que
resultan exclusivos de un registro.
Página 7 BASE DE DATOS Tipos de Campo
Un campo puede ser:
Campo genérico (También llamado Campo índice o campo clave (llave)) [editar]
Aquel campo que posee un dato único para una repetición de entidad. Puede servir para la
búsqueda de una entidad en específico.
Tipos de campo
Caja de selección
Permite crear una o más cajas de selección. Cada línea escrita en las 'opciones' aparecerá
como una caja de selección diferente en la ventana de edición de la entrada. Al editar la
entrada podremos seleccionar una o más de las opciones y al visualizar la entrada aparecerá
en el campo correspondiente el texto de la o las opción/es seleccionada/s (en el caso de que
se haya seleccionado más de una opción aparecerán la una bajo la otra, no en la misma
línea). Los Botones de radio se pueden utilizar si se desea que el usuario, al editar la
entrada, seleccione tan sólo una de las opciones.
Las cajas de selección múltiple se pueden utilizar, por ejemplo, en una base de datos de
películas, que pueden ser de horror, comedia, del oeste, etc. En este caso se podrían
seleccionar combinaciones de géneros, por ejemplo horror-comedia o comedia-del oeste.
El campo Menú (selección múltiple) también permite una selección de opciones, pero en
este caso clicando en un menú (lo cual a menudo no resulta tan obvio como seleccionar una
opción).
Fecha
Permite que los usuarios entren una fecha seleccionando en un listado desplegable el día,
mes y año correspondientes.
Archivo
Permite que los usuarios suban un fichero desde su ordenador. Si se trata de un fichero de
imagen sería mejor opción seleccionar el campo dibujo.
Página 8 BASE DE DATOS Menú Es parecido a la caja de selección pero el texto escrito en el área opciones se presentará
como un listado desplegable a la hora de editar la entrada. Cada línea de las opciones será una
opción del desplegable.
Menú (selección múltiple)
Parecido al caso anterior pero permite que el usuario seleccione más de una opción al editar
la entrada manteniendo apretadas las teclas de control o mayúsculas mientras clica con el
ratón. Resulta un poco más complejo de utilizar que la caja de selección, que también
permite selecciones múltiples.
Número
Pide a los usuarios que escriban un número. El número debe ser entero, aunque puede ser
negativo (por ejemplo: -2,-1,0,1,2,3,...). Si se escriben caracteres no numéricos éstos y los
que le siguen no aparecerán o, si no hay ningún número, el resultado será el cero. Por
ejemplo: "3.14" se transformará en "3"; "1,000,000" en "1"; y "seis" aparecerá como "0".
Dibujo Permite al usuario subir un fichero de imagen desde su ordenador.
Botones de radio
Permite al usuario escoger una de diversas opciones. Además, tan sólo podrá guardar la
entrada cuando haya realizado la selección. Si sólo hay dos opciones opuestas (por ejemplo
verdadero/falso, sí/no), se puede utilizar una caja de selección múltiple, aunque de esta
manera se podrán guardar entradas aunque el usuario no haya seleccionado ninguna de las
opciones.
Texto Los usuarios pueden escribir hasta 60 caracteres de texto. El campo área de texto se puede
utilizar para textos más largos o que requieran algún tipo de formato.
Área de texto
Permite a los usuarios escribir un texto largo y añadirle formato de manera similar a cuando
se escribe un mensaje a un foro. Puede especificar el ancho en columnas y el alto en filas
del área que se presentará a los usuarios.
URL Pide al usuario que escriba una URL. Si se selecciona la opción auto enlazar la URL ésta
aparecerá como un hipervínculo. Si además se escribe algo en nombre forzado para el enlace éste
será el texto utilizado para el hipervínculo. Por ejemplo: en una base de datos sobre autores puede
resultar interesante incorporar la página web del autor. Si se escribe 'página web' como nombre
Página 9 BASE DE DATOS forzado, al clicar en el texto página web de la entrada podremos acceder a la URL que hayamos
escrito.
¿Para qué sirve una DB?
Almacenar datos
¿Cómo se aprende a programar en mySQL?
No se aprende, mySQL es una base de datos, no un lenguaje
¿SQL es una base de datos?
SQL server sí, pero SQL es un lenguaje
¿Cuántos tipos hay?
Muchos, pero los habituales en web son Access, mySQL y SQL Server 2000
¿Necesito algún lenguaje especial para conectarme?
Sí, SQL es el lenguaje para interactuar con las bases de datos
¿Qué es un Query?
Una consulta a la base de datos
¿Qué es ABM?
Alta, Baja y Modificación de cualquier cosa. Usualmente de una base de datos que contiene
datos.
¿Qué es CMS?
Control Managment System: Un panel de control que administra un web site, y a menudo
una base de datos.
Estructura normal de una DB
Una base de datos, a fin de ordenar la información de manera lógica, posee un orden que
debe ser cumplido para acceder la información de manera coherente.
Cada base de datos tiene una o más tablas, las cuales cumplen la función de contener los
campos. Un ejemplo de tabla sería “contactos”. Para entender mejor esto, sería como un
libro en el excel. Mientras que los campos serían las columnas del excel donde se ordena
cada datos insertado al libro. Ejemplo “id, nombres, apellidos, teléfono”. Y luego
finalmente tenemos las filas (row), que son la información propiamente dicha.
Por consiguiente una base de datos posee el siguiente orden jerárquico:
•
•
•
Tablas
Campos
Registros
Página 10 BASE DE DATOS En la web, se suelen usar 3 tipos de bases de datos:
Access: Es una base de datos desarrollada por Microsoft comúnmente utilizada bajo el
lenguaje ASP (Active Server Pages). Esta base de datos, debe ser creada bajo el programa
access, el cual crea archivo .mdb con la estructura ya explicada. El programa usa un
entorno gráfico normal, y es muy parecido a usar excel.
MySQL: Es una base de datos con licencia GPL basada en un servidor, puede ser sólo
creada por código. Usualmente se utiliza el programa phpMyAdmin como soporte para
administrar la base de datos en el nivel de programación (a un usuario normal le resultaría
complicado utilizarla desde linea de comandos).
SQL Server: Es una base de datos más potente que access desarrollada por Microsoft
también, que se supone es recomendable arriba del millon datos.
PostgreSQL / Oracle: Son realmente mucho más poderosas que todas las antes
mencionadas, aunque también se duplican los problemas. Administra muy bien grandes
cantidades de datos, y suelen ser utilizadas en intranets y sistemas de gran calibre.
Página 11 BASE DE DATOS LLAVE PRIMARIA O IDENTIFICADORA.
Cada instancia de una entidad debe ser unívocamente identificable, de manera tal que cada
registro de la entidad debe estar separado y ser unívocamente identificable del resto de los
registros de esa misma entidad; y quien permite esta identificación es la llave primaria. La
llave primaria, que generalmente se identificada por medio de la letra @, puede ser un
atributo o una combinación de atributos.
En consecuencia en cada archivo solo podrá existir un único registro que posea un valor
determinado para su llave primaria. En otras palabras no puede existir en un archivo un
registro que cuente con el mismo valor de otro registro en el campo de la llave primaria; la
llave primaria no puede tener valores repetidos para distintos registros.
La llave primaria debe permitirle a un Sistema de Gestión de Base de Datos (SGBD),
correctamente proyectado, generar un error si un usuario intenta incluir un nuevo registro
cuya llave primaria coincida con la de otro registro ya existente en el archivo.
En el caso de la Base de Datos de compras, descripta anteriormente, las llaves primarias de
cada archivo son:
•
•
•
ARCHIVO DE PRODUCTOS: @ Código artículo
ARCHIVO DE PROVEEDORES: @ Código proveedor
ARCHIVO ORIGEN DE LOS PRODUCTOS: @(Código proveedor + Código
producto).
INDICES DE ACCESO
Un índice de acceso es un archivo auxiliar utilizado internamente por el SGDB para
acceder directamente a cada registro del archivo de datos. La operación de indexación,
creada por el SGDB, ordena a los registros de un archivo de datos de acuerdo con los
campos utilizados como llave primaria e, incrementa sensiblemente la velocidad de
ejecución de algunas operaciones sobre el archivo de datos. Normalmente para cada
archivo de datos debe existir un índice cuya llave de indexación sea idéntica a su llave
primaria. Este índice es llamado índice primario.
También es posible crear índices para un archivo de datos utilizando atributos (campos), o
conjunto de atributos, diferentes de los de la llave primaria. Este tipo de índice, llamado
índice secundario, es utilizado para reducir el tiempo de localización de una determinada
información dentro de un archivo o para clasificar los registros del archivo de acuerdo con
el orden necesario para la obtención de la información deseada.
Página 12 BASE DE DATOS Microsoft Access es un programa Sistema de gestión de base de datos relacional creado y
modificado por Microsoft para uso personal de pequeñas organizaciones. Es un
componente de la suite Microsoft Office aunque no se incluye en el paquete "básico". Una
posibilidad adicional es la de crear ficheros con bases de datos que pueden ser consultados
por otros programas. Dentro de un sistema de información entraría dentro de la categoria de
Gestión y no en la de Ofimática como algunos creen.
Inconvenientes
Para bases de datos de gran calibre (en cuanto a volumen de datos o de usuarios) es
recomendable usar otros sistemas como MySQL o Microsoft SQL Server, y código VBA
(Visual Basic para Aplicaciones).
Entre sus mayores inconvenientes figuran que no es multiplataforma, pues sólo está
disponible para sistemas operativos de Microsoft, Su uso es inadecuado para grandes
proyectos de software que requieren tiempos de respuesta críticos o muchos accesos
simultáneos a la base de datos.
Extensiones de archivo
Microsoft Access usa las siguientes extensiones para guardar sus datos:
.mdb -Base de datos de Access (Versión 2003 y anteriores)
.mde -Base de datos de Access protegida, con macros (Versión 2003 y anteriores)
.accdb - Base de datos de Access (Versión 2007)
.accde - Base de datos de Access protegida, con macros (Versión 2007 y anteriores)
.mam - Macro de Access
.maq - Consulta de Access
.mar - Informe de Access
.mat - Tabla de Access
.maf - Formulario de Access
.adp - Proyecto de Acess
.adn - Plantilla de proyecto de Access
Página 13 BASE DE DATOS Lenguaje SQL
Este es el lenguaje que se utiliza para conectarse a una base de datos. Son sentencias, que
realizan un query (consulta) a la DB a fin de que esta les responda con una cantidad de
datos limitada según lo buscado. Básicamente, existen muchísimas funciones de SQL, pero
detallaré las más usuales, con las cuales se pueden lograr una interacción buena con la DB.
Tendencias futuras
En el futuro la mayoría de las organizaciones cambiarán la forma convencional de manejo
de la información a la arquitectura de base de datos a las ventajas derivadas de su uso. El
uso de las bases de datos distribuidas se incrementará de manera considerable en la medida
en que la tecnología de comunicación de datos brinde más facilidades para ello. El uso de
bases de datos facilitará y soportará en gran medida a los Sistemas de Información para la
Toma de Decisiones.
Página 14 
Descargar