domingo, 5 de enero de 2014

Ejemplo de una construcción de bases de datos




1.- ¿Que es el dominio del problema?

      El objetivo principal es obtener un conocimiento suficiente del dominio del problema como para poder comunicarse eficazmente con clientes y usuarios, comprender su negocio, entender sus necesidades y poder proponer una solución adecuada.  Estudiar el dominio del problema es una de las actividades que forman parte del Procedimiento para identificar las necesidades de negocio de clientes y usuarios del proceso de Ingeniería de Requisitos.

     Por tal razón el dominio del problema, puede definirse como: área de experiencia o aplicación que necesita conocerse para resolver un problema.   En el ámbito de los sistemas de información, el dominio del problema es el conjunto de conceptos interrelacionados que es necesario conocer para entender el negocio del cliente, y por lo tanto, para poder entender sus necesidades y proponer una solución adecuada.



     Ejemplo: El kárdex académico es el  historial académico por ciclos escolares de un alumno, certificada por el control de estudios. Mediante este instrumento es posible cuantificar la evolución del alumno dentro de la carrera.  Específicamente se evaluara el Kardex de Diannellys Marcano estudiante de Computación de la Universidad central de Venezuela.



 2.- ¿Que es modelado de base de datos (Diagrama relacional)?

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.

El modelo relacional constituye una alternativa para la organización y representación de la información que se pretende almacenar en una base de datos. Se trata de un modelo teórico matemático que, además de proporcionarnos los elementos básicos de modelado (las relaciones), incluye un conjunto de operadores (definidos en forma de un álgebra relacional) para su manipulación, sin ambigüedad posible.  El carácter formal del modelo relacional hace relativamente sencilla su representación y gestión por medio de herramientas informáticas. 

No es casual, pues, que haya sido elegido como referencia para la construcción de la gran mayoría de los Sistemas de Gestión de Bases de Datos comerciales disponibles en el mercado; ni tampoco que sea también habitualmente seleccionado como modelo de referencia para la elaboración del esquema lógico de una base de datos, como tercer paso de la habitual metodología de diseño de base de datos (después del análisis de requerimientos y la elaboración del esquema conceptual).

En el modelo relacional se basa en el concepto matemático de relación. En este modelo, la información se representa en forma de “tablas” o relaciones, donde cada fila de la tabla se interpreta como una relación ordenada de valores (un conjunto de valores relacionados entre sí). El siguiente ejemplo presenta una relación que representa al conjunto de los departamentos de una determinada empresa, y que recoge información sobre los mismos.   Son abstracciones que permiten la implementación de un sistema de base de datos en un proceso complejo que contienen decisiones en muchos distintos niveles, si se descompone el problema en sub problemas esto se resuelve independientemente, utilizando técnicas especificas.





 3.- ¿Que es tercera forma normal (3FN)?

Una relación está en tercera forma normal cuando se cumplen las siguientes reglas:

- La tabla está en segunda forma normal (2FN).  Todos los atributos no clave dependen de manera no transitiva de la clave primaria.




 
 3FN





    

 4.-Que es construcción de bases de datos (DDL).

Es la parte del SQL dedicada a la definición de la base de El DDL (Data Defini

tion Language, o Data Description Language según datos, consta de sentencias para definir la estructura de la base de datos, permite definir gran parte del nivel interno de la base de datos. Por este motivo estas sentencias serán utilizadas normalmente por el administrador de la base de datos.


La definición de la estructura de la base de datos incluye tanto la creación inicial  de los diferentes objetos que formarán la base de datos, como el mantenimiento de esa estructura.

Sencillo lenguaje artificial para definir y describir los objetos de la base de datos, su estructura, relaciones y restricciones. En la práctica puede consistir en un subconjunto de instrucciones de otro lenguaje informático. Aparte suele poseer dos subconjuntos de instrucciones:

CREATE DATABASE postgres
  WITH OWNER = postgres
       ENCODING = 'UTF8'
       TABLESPACE = pg_default
       LC_COLLATE = 'Spanish_Spain.1252'
       LC_CTYPE = 'Spanish_Spain.1252'
       CONNECTION LIMIT = -1;

*==============================================================*/
/* DBMS name:      PostgreSQL 8                                 */
/* Created on:     18/01/2014 9:05:20                           */
/*==============================================================*/



drop table CENTRODEESTUDIANTES;



drop table ESCUELA;



drop table ESTUDIANTE;



drop table FACULTAD;



drop table KARDEX;



drop table LABORATORIO;



drop table MATERIA;



drop table PRACTICA;



drop table TEORIA;



/*==============================================================*/

/* Table: CENTRODEESTUDIANTES                                   */
/*==============================================================*/
create table CENTRODEESTUDIANTES (
   NOMBRE               VARCHAR(0)           null,
   REPRESENTANTES       VARCHAR(0)           null,
   ACTIVIDADES          VARCHAR(0)           null,
   ID_CENTRO            INT4                 not null,
   constraint PK_CENTRODEESTUDIANTES primary key (ID_CENTRO)
);


/*==============================================================*/

/* Table: ESCUELA                                               */
/*==============================================================*/
create table ESCUELA (
   NOMBRE               VARCHAR(0)           null,
   ID_ESCUELA           INT4                 null,
   DIRECTOR             VARCHAR(0)           null
);


/*==============================================================*/

/* Table: ESTUDIANTE                                            */
/*==============================================================*/
create table ESTUDIANTE (
   CEDULA               I(8)                 not null,
   NOMBRE               VARCHAR(1)           null,
   APELLIDO             VARCHAR(0)           null,
   LUGAR_DE_NACIMIENTO  VARCHAR(0)           null,
   DIRECCION            VARCHAR(0)           null,
   TRABAJA              VARCHAR(0)           null,
   DISCAPASITADO        VARCHAR(0)           null,
   constraint PK_ESTUDIANTE primary key (CEDULA)
);


/*==============================================================*/

/* Table: FACULTAD                                              */
/*==============================================================*/
create table FACULTAD (
   NOMBRE               VARCHAR(0)           null,
   ID_FACULTAD          INT2                 not null,
   DECANO               VARCHAR(2)           null,
   constraint PK_FACULTAD primary key (ID_FACULTAD)
);


/*==============================================================*/

/* Table: KARDEX                                                */
/*==============================================================*/
create table KARDEX (
   ID_KARDEX            INT2                 not null,
   UC                   INT2                 null,
   TIPO                 VARCHAR(0)           null,
   ARTICULO             VARCHAR(0)           null,
   constraint PK_KARDEX primary key (ID_KARDEX)
);


/*==============================================================*/

/* Table: LABORATORIO                                           */
/*==============================================================*/
create table LABORATORIO (
   ID_LAB               VARCHAR(0)           null,
   SALA                 INT2                 null,
   HORAS                INT2                 null
);


/*==============================================================*/

/* Table: MATERIA                                               */
/*==============================================================*/
create table MATERIA (
   CODIGO               INT2                 not null,
   SECCION              VARCHAR(0)           null,
   TIPO                 VARCHAR(0)           null,
   PERIODO              VARCHAR(0)           null,
   CODIGO_MATE          INET                 null,
   constraint PK_MATERIA primary key (CODIGO)
);


/*==============================================================*/

/* Table: PRACTICA                                              */
/*==============================================================*/
create table PRACTICA (
   PROFESOR             VARCHAR(0)           null,
   HORAS                INT2                 null,
   ID_PROF              INT2                 null
);


/*==============================================================*/

/* Table: TEORIA                                                */
/*==============================================================*/
create table TEORIA (
   ID_TEOR              INT2                 null,
   EXAMENES             VARCHAR(0)           null,
   ACTIVIDADES          VARCHAR(0)           null
);





 5.- ¿Que es manipulación de base de datos (DML)?


         Es un lenguaje proporcionado por el sistema de gestión de base de datos que permite a los usuarios llevar a cabo las tareas de consulta o manipulación de los datos, organizados por el modelo de datos adecuado. El lenguaje de manipulación de datos más popular hoy día es SQL, usado para recuperar y manipular datos en una base de datos relacional. Otros ejemplos de DML son los usados por bases de datos IMS/DL1, CODASYL u otras.


1- INSERT: Una sentencia INSERT de SQL agrega uno o más registros a una (y sólo una) tabla en una base de datos relacional.  Ejemplo (inserto valores alumno pepe en la materia spd2 a la tabla cursada):

INSERT INTO ''Estudiante'' (''nombre'', ''id'') VALUES (''Diannellys Marcano'', ''17053587'')

INSERT INTO ''Facultad'' (''nombre'') VALUES (''Ciencias'')
INSERT INTO ''materia'' (''nombre'', ''codigo'') VALUES (''Matematicas I'', ''8206'')
INSERT INTO ''materia'' (''nombre'', ''codigo'') VALUES (''Algoritmo de Datos'' ''6201'')
INSERT INTO ''materia'' (''nombre'', ''codigo'') VALUES (''Matematicas Discretas'', ''6106'')
INSERT INTO ''materia'' (''nombre'', ''codigo'') VALUES (''Introduccion a la Informatica'', ''6103'')
INSERT INTO ''materia'' (''nombre'', ''codigo'') VALUES (''Matematicas II'', ''8207'')
INSERT INTO ''materia'' (''nombre'', ''codigo'') VALUES (''Organización y Estructura del Computador I'', ''6001'')
INSERT INTO ''materia'' (''nombre'', ''codigo'') VALUES (''Matematicas Discretas  II'', ''6107'')
INSERT INTO ''materia'' (''nombre'', ''codigo'') VALUES (''Algoritmo y estructuras de Datos'', ''6202'')
INSERT INTO ''materia'' (''nombre'', ''codigo'') VALUES (''Ingenieria del Software'', ''6203'')
INSERT INTO ''materia'' (''nombre'', ''codigo'') VALUES (''Sistema Operativo'', ''6204'')
INSERT INTO ''materia'' (''nombre'', ''codigo'') VALUES (''Actividad Coral'', ''0206'')
INSERT INTO ''materia'' (''nombre'', ''codigo'') VALUES (''Base de Dtaos'', ''6303'')
INSERT INTO ''materia'' (''nombre'', ''codigo'') VALUES (''Sistemas de Informacion'', ''6302'')
INSERT INTO ''materia'' (''nombre'', ''codigo'') VALUES (''Actividad Coral  II'', ''0220'')
INSERT INTO ''materia'' (''nombre'', ''codigo'') VALUES (''Tecnica y recursos de aprendizaje'', ''8203'')
INSERT INTO ''materia'' (''nombre'', ''codigo'') VALUES (''Inteligencia artificial'', ''6325'')
INSERT INTO ''materia'' (''nombre'', ''codigo'') VALUES (''Almacen de Datos y soporte de decisiones'', ''6325'')
INSERT INTO ''materia'' (''nombre'', ''codigo'') VALUES (''Administracion de Base de Datos'', ''6311'')
INSERT INTO ''materia'' (''nombre'', ''codigo'') VALUES (''Laboratorio de Base de datos'', ''6536'')
INSERT INTO ''materia'' (''nombre'', ''codigo'') VALUES (''Ingles I'', ''0030'')
INSERT INTO ''materia'' (''nombre'', ''codigo'') VALUES (''Matematicas III'', ''8208'')
INSERT INTO ''materia'' (''nombre'', ''codigo'') VALUES (''Analisis de Sistemas de Informacion'', ''6321'')
INSERT INTO ''materia'' (''nombre'', ''codigo'') VALUES (''Construccion de Sistemas de Informacion'', ''6323'')
INSERT INTO ''materia'' (''nombre'', ''codigo'') VALUES (''Ingles II'', ''0031'')
INSERT INTO ''materia'' (''nombre'', ''codigo'') VALUES (''Diseño de Sistemas de Informacion'', ''6322'')
INSERT INTO ''materia'' (''nombre'', ''codigo'') VALUES (''comunicación de Datos'', ''6003'')
INSERT INTO ''materia'' (''nombre'', ''codigo'') VALUES (''Probabilidad y Estadistica'', ''6104'')
INSERT INTO ''materia'' (''nombre'', ''codigo'') VALUES (''Analisis de Sistemas de Informacion'', ''6321'')
INSERT INTO ''materia'' (''nombre'', ''codigo'') VALUES (''Innovacion Tecnologica'', ''6332'')
INSERT INTO ''materia'' (''nombre'', ''codigo'') VALUES (''Calculo Cientifico'', ''6109'')
INSERT INTO ''materia'' (''nombre'', ''codigo'') VALUES (''Ingenieria Ontológica'', ''2111'')


2- UPDATE: Una sentencia UPDATE de SQL es utilizada para modificar los valores de un conjunto de registros existentes en una tabla.  Ejemplo (modifico la materia donde  el alumno sea pepe):

UPDATE ''cursada'' SET ''materia''= ''Matemáticas I'' WHERE ''nota''=''14''
UPDATE ''cursada'' SET ''materia''= ''Introduccion a la Informatica'' WHERE ''nota''=''18''




3- DELETE: Una sentencia DELETE de SQL borra uno o más registros existentes en una tabla.  Ejemplo (borro todos los valores de las columnas alumno y materia donde la materia sea spd2):

DELETE FROM ''materia'' WHERE ''materia''= ''2111''



esta materia fue retirada en el semestre cursante, por tanto fue modificada del kardex

y su estatus fue modificado a RETIRADA.


 DELETE FROM ''status'' WHERE ''kardex''= ''RETIRADA''

No hay comentarios:

Publicar un comentario