sábado, 26 de febrero de 2011

Una base de datos programada en MYSQL


CREATE database nombre_bd;
USE nombre_bd


CREATE TABLE usuario(
clave INT NOTNULL primary key,
nombre VARCHAR(20) NOTNULL,
DIRECCION VARCHAR(30) NOTNULL,
TELEFONO VARCHAR(10) NOTNULL,
EMAIL VARCHAR(20) NOTNULL,
OCUPACION VARCHAR(20) NOTNULL,
)EGINE = INNOBD;

CREATE TABLE LIBRO(
ISBN VARCHAR(20) NOTNULL PRIMARY KEY,
TITULO VARCHAR(20) NOTNULL,
AUTOR VARCHAR (30) NOTNULL,
NEDICION VARCHAR(20) NOTNULL,
NEJEMPLAR VARCHAR (20) NOTNULL,
)ENGINE = INNOBD;

CREATE TABLE EJEMPLAR(
ISBN VARCHAR(20) NOTNULL,
NUMEJEMPLAR VARCHAR(20) NOTNULL,
EDOCONSERVACION VARCHAR(2'0) NOTNULL
PRIMARY KEY(ISBN,NUMEJEMPLAR),
FOREINGN KEY (ISBN) REFERENCES LIBRO(ISBN)
)ENGINE = INNODB;

CREATE TABLE PRESTAMO(
CLAVEUSUARIO VARCHAR(20) NOTNULL PRIMARY KEY,
ISBN VARCHAR(20) NOTNULL,
NUMEJEMPLAR VARCHAR(10) NOTNULL,
MULTA INT NOTNULL,
FOREINGN KEY (ISBN) REFERENCES EJEMPLAR(ISBN),
FOREINGN KEY (NUMEJEMPLAR) REFERENCES EJEMPLAR(NUMEJEMPLAR),
)ENGINE = INNODB;

lunes, 21 de febrero de 2011

SISTEMA GESTOR DE BASE DE DATOS


Un Sistema Gestor de Bases de Datos (SGBD) o DBMA (DataBase Management System) es una colección de programas cuyo objetivo es servir de interfaz entre la base de datos, el usuario y las aplicaciones. Se compone de un lenguaje de definición de datos, de un lenguaje de manipulación de datos y de un lenguaje de consulta. Un SGBD permiten definir los datos a distintos niveles de abstracción y manipular dichos datos, garantizando la seguridad e integridad de los mismos.


Un SGBD debe permitir:
• Definir una base de datos: especificar tipos, estructuras y restricciones de datos.
• Construir la base de datos: guardar los datos en algún medio controlado por el mismo SGBD
• Manipular la base de datos: realizar consultas, actualizarla, generar informes.


Las características de un Sistema Gestor de Base de Datos SGBD son:
• Abstracción de la información. Los SGBD ahorran a los usuarios detalles acerca del almacenamiento físico de los datos. Da lo mismo si una base de datos ocupa uno o cientos de archivos, este hecho se hace transparente al usuario. Así, se definen varios niveles de abstracción.
• Independencia. La independencia de los datos consiste en la capacidad de modificar el esquema (físico o lógico) de una base de datos sin tener que realizar cambios en las aplicaciones que se sirven de ella.
• Redundancia mínima. Un buen diseño de una base de datos logrará evitar la aparición de información repetida o redundante. De entrada, lo ideal es lograr una redundancia nula; no obstante, en algunos casos la complejidad de los cálculos hace necesaria la aparición de redundancias.
• Consistencia. En aquellos casos en los que no se ha logrado esta redundancia nula, será necesario vigilar que aquella información que aparece repetida se actualice de forma coherente, es decir, que todos los datos repetidos se actualicen de forma simultánea.
• Seguridad. La información almacenada en una base de datos puede llegar a tener un gran valor. Los SGBD deben garantizar que esta información se encuentra segurizada frente a usuarios malintencionados, que intenten leer información privilegiada; frente a ataques que deseen manipular o destruir la información; o simplemente ante las torpezas de algún usuario autorizado pero despistado. Normalmente, los SGBD disponen de un complejo sistema de permisos a usuarios y grupos de usuarios, que permiten otorgar diversas categorías de permisos.
• Integridad. Se trata de adoptar las medidas necesarias para garantizar la validez de los datos almacenados. Es decir, se trata de proteger los datos ante fallos de hardware, datos introducidos por usuarios descuidados, o cualquier otra circunstancia capaz de corromper la información almacenada.
• Respaldo y recuperación. Los SGBD deben proporcionar una forma eficiente de realizar copias de respaldo de la información almacenada en ellos, y de restaurar a partir de estas copias los datos que se hayan podido perder.
• Control de la concurrencia. En la mayoría de entornos (excepto quizás el doméstico), lo más habitual es que sean muchas las personas que acceden a una base de datos, bien para recuperar información, bien para almacenarla. Y es también frecuente que dichos accesos se realicen de forma simultánea. Así pues, un SGBD debe controlar este acceso concurrente a la información, que podría derivar en inconsistencias.



Componentes SGBD
  • Lenguajes
    • Lenguaje de definición de datos (DDL)
    • Lenguaje de manipulación de datos (DML)
  • Diccionario de datos: lugar donde se deposita información sobre todos los objetos que forman la base de datos (estructura lógica y física de los datos, definiciones de todos los objetos de la base de datos...)


Modelos de datos
  • Uno de los objetivos más importantes de un SGBD es proporcionar a los usuarios una visión abstracta de los datos.
  • Los modelos de datos son el instrumento ideal para ofrecer esa abstracción.
    • Modelos lógicos basados en objetos
    • Modelos lógicos basados en registros

Modelos lógicos basados en objetos
  • Se usan para describir datos en el nivel conceptual y el externo
  • Los más conocidos son:
    • Modelo entidad-relación
    • Modelo orientado a objetos

Modelos lógicos basados en registros
  • Se usan para describir los datos en los modelos conceptual y físico.
  • La BD está estructurada en registros de formato fijo de varios tipos
  • Cada tipo de registro define un número fijo de campos o atributos, y cada normalmente es de longitud fija


PRODUCTOS SGBD DISPONIBLES EN EL MERCADO

SGBD libres

  • PostgreSQL (http://www.postgresql.org Postgresql) Licencia BSD
  • Firebird basada en la versión 6 de InterBase, Initial Developer's PUBLIC LICENSE Version 1.0.
  • SQLite (http://www.sqlite.org SQLite) Licencia Dominio Público
  • DB2 Express-C (http://www.ibm.com/software/data/db2/express/)
  • Apache Derby (http://db.apache.org/derby/)

SGBD no libres

  • IBM IMS Base de Datos Jerárquica
  • CA-IDMS

SGBD no libres y gratuitos

  • Microsoft SQL Server Compact Edition Basica
  • Sybase ASE Express Edition para Linux (edición gratuita para Linux)
  • Oracle Express Edition 10