domingo, 31 de octubre de 2010

Bases de datos: Introducción

Otro tema nuevo en el blog. Y es que, como estoy aprendiendo Python, en poco me tocará aprender Python Database API (DB-API). Así que, intentaré resumir los aspectos mas básicos sobre las DB (Database, Base de datos).

Podemos denominar Dato a cualquier tipo de información que deseemos almacenar: Un número de teléfono, un DNI, el nombre de una persona, etc. Una Base de Datos (DB) es un sistema para organizar datos relacionados, de forma lógica para que los datos puedan ser procesados por un programa. Aparte de los datos, la DB debe de tener un método de organizar toda la información.

Los sistemas DB están formados por los siguientes componentes:

  • Hardware: Las computadoras dedicadas a almacenar los datos
  • Software: Sistemas para gestionar y administrar las DB
  • Datos: La información a almacenar
    • Metadatos: Descriptores de datos en la DB
  • Usuarios: Personas que interactúan con el sistema:
    • Usuarios finales
    • Desarrolladores
    • Administradores (DBA, DataBase Administrator)
    Dentro de una DB nos vamos a encontrar Datos y Metadatos. Básicamente, los metadatos especifican la estructura de la DB. Por ejemplo, en una base de datos en la que almacenamos el nombre de varias personas y su DNI, cada DNI sería un Dato, de tipo DNI que sería el metadato.


    Sistemas Gestores de Bases de datos (DBMS)

    Un DBMS (DataBase Management System) es el sistema empleado que permite interactuar a los usuarios con una DB.

    Un buen DBMS tiene que tener:
    • Herramientas para crear y administrar Bases de Datos
    • Herramientas para administrar la estructura física de Datos
    • Herramientas para manipular y consultar Datos
    • Herramientas de recuperación de Datos
    • Herramientas de creación de copias de seguridad
    • Herramientas para la gestión de la comunicación en las DB.

    Funciones de un DBMS:
    • Descripción: Describe los Datos. Control de visitas de usuarios, etc. Proporcionado por DDL (Lenguaje de Definición de Datos)
    • Manipulación: Permite añadir, suprimir y modificar datos. Proporcionado por DML (Lenguaje de Manipulación de Datos)
    • Control: Permite a los DBA administrar la DB.

    Niveles:

    Una base de datos no siempre es vista igual: Cada programa que accede a la base manipula solo ciertos datos y estructuras. La unión de todos los datos y sus relaciones se denomina Esquema Conceptual, y el almacenamiento de los datos y sus formas de accedo Esquema Físico.

    El DBMS es el encargado de realizar las traducciones para pasar del esquema
    conceptual al físico. ANSI creó una sección llamada SPARC dedicada a estándares de sistemas de información.
    1. Esquema Externo: Visión de la base de datos que ofrece cada aplicación.
    2. Esquema Conceptual: Representación teórica de sus datos y sus relaciones
    3. Esquema Físico: Representa los datos según como son almacenados en un medio físico.
    El esquema conceptual debe ser totalmente independiente al esquema físico: Aunque el Sistema Físico cambie, no debe verse afectado el Esquema Conceptual. 


    Modelado de datos

    Un modelo es un esquema conceptual en el que se intenta reproducir las características de una realidad específica. En el caso del Modelo de Datos, se reproduce información real que deseamos almacenar en un Sistema Informático.

    Un esquema es la descripción de un Modelo de Datos. El conjunto de datos representados por el esquema forma la base de datos.


    Modelo Entidad Relación

    El modelo E/R sirve para crear esquemas conceptuales de bases de datos.

    Entidad: Objeto o elemento que puede almacenar información. No es una propiedad concreta sino un objeto que puede contener varias propiedades (Atributos).

    Conjuntos de Entidades: Varias entidades con las mismas propiedades. Podemos tener el conjunto de entidades "Coches" y las entidades "Seat", "Fiat", "Renault", etc. También podemos llamar Entidad a "Coches" y decir que "Seat" es un ejemplo de la entidad Coches.

    Tipos de Entidades:
    • Regulares: Existen por si mismas sin depender de otras. 
    • Débiles: Su existencia depende de otras Entidades. Por ejemplo, la entidad "Modelo_rueda_coche" solo puede existir si existe "Coche".
    Atributos: Describen propiedades de las entidades y de las relaciones. Por ejemplo, los atributos de un ejemplo de la entidad "Coche" podrían ser: "Modelo", "Color", "Matrícula".

    Identificador: Propiedad única en cada ejemplo de una entidad. Por ejemplo, un buen identificador para la entidad "Coche" sería la matrícula, por ser único en cada ejemplar.


    Pasos para el diseño de una DB

    1> Encontrar entidades (conjuntos de entidades)

    2> Identificar atributos de las entidades

    3> Buscar identificadores

    4> Especificar las relaciones y cardinalidades

    5> Identificar entidades débiles

    6> Especializar y generalizar entidades donde sea posible


    Fuente: Diseño Conceptual de Bases de Datos (Jorge Sánchez) CC



    SQLite: Primeros pasos

    Ya que hablamos de Bases de datos, no podemos despedir la entrada sin tomar contacto con un DBMS. El elegido es SQLite, bajo Ubuntu 10.10.

    Si no lo tenemos instalado, basta con tipear en el terminal:
    sudo apt-get install sqlite
    Y se iniciará el proceso de instalación. Una vez instalado, podemos iniciar la aplicación ejecutando:
    sqlite
    Salida del terminal:
    serch@serch-server:~$ sqlite
    SQLite version 2.8.17
    Enter ".help" for instructions
    sqlite>
    Como vemos, nos muestra la versión instalada. Y abajo, nos indica el prompt que ya podemos empezar a usar sqlite. Como bien indica, lo primero que vamos a hacer es ejecutar .help para ver la ayuda. Dentro, vemos, entre otros, el comando para salir de sqlite: .exit

    En próximas entradas, crearemos y administraremos tablas. Paciencia.

      1 comentario: