Laboratorio de Informix
Octubre 2004
Qué es una base de datos
Es una colección de datos relacionados
que sirven de múltiples propósitos y
soportan múltiples usuarios.
Sistemas de archivos
convencionales
Desventajas
Datos redundantes
Problemas de integridad
Compartir datos en forma limitada
Restricciones en la disponibilidad de datos
Dificultad en el manejo de datos
Base de datos relacionales
Ventajas
Reduce los datos redundantes
Asegura la integridad de los datos
Se ocupa de la seguridad de los datos
Pueden los datos ser accedidos
concurrentemente por muchas personas
Soporta datos compartidos
Se adapta a los cambios fácilmente
Sistema de Manejo de Base
de Datos Relacional
Un RDBMS es un sistema que integra los
archivos de datos en una base de datos
haciéndolos accesibles a toda la empresa
Base de datos
Servicios al Cliente
Recursos Humanos
Funcionalidad
El motor de base de datos es el
encargado de las siguientes prestaciones
Almacenamientos , organización y
distribución eficiente y segura de los datos
Implementación de un lenguaje de consulta
(SQL)
Implementación de control de acceso de
usuarios
Características Generales
La mayoría de las implementaciones
cuentan con:
Concurrencia a nivel de usuario y a nivel
transacción
Tolerancia y recuperación contra fallos
Facilidades para resguardo (Backup)
RDBMS Comerciales
Informix dinamyc server (Informix)
Oracle database server (Oracle)
DB2 (IBM)
MySQL y PosgreSql
SQL Server
Interbawse (Borland)
Informix Dinamyc Server
IDS es un motor de base de datos
multiusuario basado en una arquitectura
de comunicación cliente-servidor. Posee
versiones basadas en distintos sistemas
operativos. Tiene paquetes adicionales
que le permiten tener una base de datos
distribuidas, replicar los datos en línea y
una introducción a las bases de datos
orientadas a objetos
Usuarios de la Base de
Datos
Diseñador de la base de datos:
Su función crear y administrar una base de datos
Administrador: (dba)
Cuya funciones son:
⌧Realizar la instalación y administración del motor de base de datos
⌧Hacer los resguardos
⌧Mantener los usuarios
⌧Administrar el espacio físico
Programador de aplicación:
Es el encargado de implementar un sistema basado en una base de datos.
Diseño de la Base de Datos
Estudio de factibilidad
Análisis de requerimientos funcionales
Diseño
Codificación y Testeo
Implementación
Mantenimientos
Diseño de la Bd
Diseño de la Base de Datos
Entender el problema
Identificar los principales objetos de datos
Hacer el ER
Resolver el modelo lógico
Determinar la especificación de los atributos y los tipos
de datos
Instanciar las relaciones
Verificar el modelo lógico a través de la normalización
Usar SQL para transformar el modelo lógico en modelo
físico
Diseño de la Base de Datos
Entender el problema
Alquiler de videos
Identificar los primeros objetos de datos
Entidades (videos,cliente)
Relaciones(alquiler)
⌧
Ver cardinalidad
Identificar Atributos
⌧
Determinar claves
⌧
Datos derivados
Diseño de la Base de Datos
Hacer el ER
Clientes
Videos
Alquila
Número Apellido Nombre Fec Alquiler Fec Devol. Nombre Pelicula Número Tipo Fecha AdquisicionDiseño de la base de datos
Resolver el modelo Lógico
Resolver las relaciones
Cliente(Número,Apellido,Nombre)
Alquiler(Número,Número Video,Fec. alquiler,Fec. devolucion) Video(Numero Video,Nombre Pelicula,Fecha Adquisicion)
Establecer la clave primaria
⌧En cliente número
⌧En video número Video
⌧En alquiler número lquiler
Establecer las claves foráneas
⌧En alquiler número de cliente y número de video
Modelo lógico de la base de
datos
Diseño de la base de datos
Especificación de los atributos y tipos de
datos
Establecer convenciones
Ver valores que van a asumir los atributos
⌧
Clasificación en video podría resolverse como una
entidad
Identificar atributos no nulos
Identificar atributos únicos
Determinar el tipo de datos de cada atributo
Tipo de datos en Informix
Character
Numeric
⌧
Integer, SmallInt
⌧
Float,SmallFloat
⌧
Decimal
Serial
Date
Money
Tipo de datos en Informix
Date
Datetime
Interval
Longitud Variable
Varchar
Blob
⌧
Text
⌧
byte
Modelo Físico de la base de
datos
Ejemplos de tablas
Cliente
Numero Apellido Nombre Dirección Tel 1 Perez Juan 12 de Octubre 66666 2 Juarez Pedro 11 de Abril 88888 3 Alvarez Luis Corrientes 889900
4 Perez Alberto Alem 23213
Video
Numero Video Codigo Clasificacion Nombre Pelicula Fecha Adquisicion
1 ATP Rey Leon 22/10/2001
2 ATP Barbie Cascanueces 18/12/2003
3 ATP Rey Leon 26/06/1990
4 ATP Aladin 08/09/1996
5 ATP Cenicienta 12/12/2002
6 ATP Pinocho 01/07/1992
7 ATP Aladin 28/02/2004
Alquiler
Numero Alquiler Numero Cliente Numero Video Fecha Alquiler Fecha Devolu
1 1 1 05/10/2004 null 2 1 2 05/10/2004 null 3 2 3 05/10/2004 null 4 3 4 05/10/2004 null 5 1 5 05/10/2004 null 6 2 6 05/10/2004 null 7 1 7 05/10/2004 null
Diseño de base de datos
Normalización
Establecer dependencia funcionales
En la relación video, vemos a titulo repetido por
cada copia del video
Código película
Nombre película
la relación no esta en 3FN
Normalizar las relaciones
⌧
Video
⌧
Película
Diseño físco de la base de
datos final
Diseño del esquema de base
de datos
Por último usar sentencias SQL para
transformar el modelo físico en el
esquema de la base de datos.
CREATE TABLE Pelicula (
Codigo_Pelicula serial NOT NULL, Nombre_Pelicula varchar(20) PRIMARY KEY (Codigo_Pelicula));
CREATE TABLE Clasificacion (
Codigo_Clasificaci char(2) NOT NULL, Descripcion char(18) NOT NULL); ALTER TABLE Clasificacion
ADD CONSTRAINT PRIMARY KEY (Codigo_Clasificaci); CREATE TABLE Cliente (
Numero_Cliente serial NOT NULL, Apellido varchar(50) NOT NULL, Nombre varchar(50) NOT NULL, Direccion varchar(50), Telefono varchar(20)); ALTER TABLE Cliente
ADD CONSTRAINT PRIMARY KEY (Numero_Cliente);
Diseño del esquema de base
de datos
CREATE TABLE Video (
Numero_Video serial NOT NULL, Codigo_Clasificaci char(2), Codigo_Pelicula integer, Fecha_Adquisicion date PRIMARY KEY (Numero_Video)); CREATE TABLE Alquiler (
Numero_Alquiler serial NOT NULL, Numero_Cliente integer, Numero_Video integer,
Fecha_alquiler date DEFAULT CURRENT NOT NULL, Fecha_devolucion date DEFAULT CURRENT PRIMARY KEY (Numero_Alquiler));
Diseño del esquema de la
base de datos
ALTER TABLE Video
ADD CONSTRAINT FOREIGN KEY (Codigo_Pelicula) REFERENCES Pelicula;
ALTER TABLE Video
ADD CONSTRAINT FOREIGN KEY (Codigo_Clasificaci) REFERENCES Clasificacion; ALTER TABLE Alquiler
ADD CONSTRAINT FOREIGN KEY (Numero_Video) REFERENCES Video;
ALTER TABLE Alquiler
ADD CONSTRAINT FOREIGN KEY (Numero_Cliente) REFERENCES Cliente;
Diseño del esquema de la
base de datos
Modelo lógico vs físico
Fila
Instancia de entidades
Restricciones de clave
primaria y foránea
Relaciones
Columnas
Atributos
Tablas
Entidades
Esquema de bd
ER del modelo
Dbacces
Es un conjunto de facilidades de Informix que provee
una manera de acceder a la base de datos sin una
herramienta de desarrollo de aplicaciones
Crear y borrar db
Crear, modificar y borrar tablas
Cargar archivos de datos del sistema operativo
Cargar,modificar y recuperar información de la base de datos Crear y borrar índices y privilegios
Crear y ejecutar stored procedures
Obtener información acerca de la base de datos y de las tablas
Dbacces
Permite ejecutar SQL Permite conectarse a una db Permite seleccionar,crear o eliminar una db Permite modificar,crear o eliminar una tablaMenu Query Language
Permite crear una nueva sql Ejecuta una sql Permiten modificar o editar una sql Permite seleccionar o guardar o borrar una sql Redirecciona la salida de una sql Ejecuta una sql
Menú de Conexión
Conectarse a una db Desconectarse a una dbMenú Servidor de Datos
Menú de Base de Datos
Seleccionar una db
Crear una db
Información
una db Borrar una db
Menú para Tablas
Crear una tabla
Información de una tabla
Borrar una tabla Modificar una tabla
Menú Información de Tablas
Columnas Indices Privilegios Referencias
Lista de tablas que la referencian
Estado Restricciones
Lista de tablas referencia,clave primaria,restricciones de chequeos y de unicidad y borrados en cascadas
Triggers Fragmentos
Sesión
Dbschema
Muestra las sentencias sql para replicar
una db.
dbschema -d video
Redirecciona la salida a un archivo
dbschema -d video video.sql
Pasos para conectarse al
servidor de base de datos
En la máquina local
Loguearse en con el usuarios ebd con su respectivo
passwd.
Abrir una consola
En la linea de comando ejecutar telnet tulkas
login grupo1 y su respectivo pass
En el servidor
Cada grupo tiene su base de datos creada y solo tiene permiso para acceder a ella
Desde la línea de comandos ejecutar dbacces y conectarse a su propia base de datos
En la máquina local
Usar un editor de texto para escribir las sentencias sql. Luego pintar y copiar la consulta sobre el dbaccess conectado al servidor. Si las consultas la traes en un archivo de texto en un diskette:
En las Sun con Solaris
⌧Para montar el diskette usar el file manager, open floppy
⌧Clickear sobre el archivo y editar.
⌧Desmotar y ejectar el diskette.
En las Pc con Linux
⌧Para montar el diskette hacer en la linea de comandos
• mount /dev/fd0
• Clickear sobre el archivo que esta en /mnt/floppy • Desmontar el diskete haciendo desde la línea de comandos
umount /dev/fd0