Google

26 mayo 2006

BASE DE DATOS

Una base de datos es un conjunto de datos que pertenecen al mismo contexto almacenados sistemáticamente para su uso posterior. 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 gracias al desarrollo tecnológico de campos como la
informática y la electrónica, la mayoría de las bases de datos tienen formato electrónico, que ofrece un amplio rango de soluciones al problema de almacenar datos.
En informática existen los
sistemas gestores de bases de datos (SGBD), que permiten almacenar y posteriormente acceder a los datos de forma rápida y estructurada.

25 mayo 2006

BDD: TEMA I NORMALIZACION

Es un proceso que busca definir los datos eliminando dependencias funcionales (atributos independientes), pero manteniendo los relacionamientos.
Ej: Depto(código, nombre_depto).
En este caso no interesa eliminarla, pues código siempre tiene asociado un nombre.

Proveedor(num_proveedor, nombre_prov, codigo_ciudad, ciudad).
En este caso, si cambio el proveedor, no necesariamente debo cambiar el código de la ciudad.

Para normalizar un Modelo Conceptual, se han definido distintas reglas que deben cumplirse en forma sucesiva. A ellas se les denomina FORMAS NORMALES.

Existen definidas un gran número de FN, a nosotros para la metodología de Modelamiento de Datos, nos interesa las tres primera (1FN, 2FN, 3FN).

PRIMERA FORMA NORMAL 1FN:
Eliminar de las entidades del MC aquellos atributos repetitivos
(eliminar significa pasarlas a nuevas entidades)


SEGUNDA FORMA NORMAL 2FN:
Eliminar las relaciones M:N entre entidades del modelo (eliminar significa convertir esas relaciones en relaciones 1:N generando entidades NUB entre ellas). Además, el modelo debe estar en 1FN.




TERCERA FORMA NORMAL 3FN:

Eliminar las transitividades (dependencias transitivas) entre atributos cuyos valores están repetidos en distintas ocurrencias de la entidad (eliminar significa pasar a una nueva entidad los atributos repetidos). Además, el modelo debe estar en 2FN.


















Sale como padre de empleado en una relación 1:N
Todo atributo con excepción del identificador o clave puede ser considerado como atributo repetido y en caso de aplicar 3FN debe ser sacado de la entidad y traspasado a una entiad que hace de PADRE en la relación 1:N generada.

Ejercicio:

Normalizar el siguiente Modelo Conceptual MC.
Alumno(rol, nombre, carrera, direccion, solicitud 1(fecha, resolucion, motivo), solicitud2(fecha,
resolucion, moivo),...)
Asignatura(clave, nombre_asignatura, creditos, pre_req1, pre_req2, pre_req3...)
Profesor(rol_prof, nombre, direccion, titulo1 (nombre, fecha), titulo2(nombre, fecha)..., cargo1
(nombre, fecha), cargo2(nombre, fecha)....)

24 mayo 2006

BDD:TALLER 3

Planteamiento

Un Administrador necesita una aplicación que permita administrar correctamente el condominio de edificios de departamentos donde trabaja.
El condominio tiene 4 torres de edificios, dos piscinas comunes y una lavandería por cada torre.
Cada departamento de cada torre se identifica únicamente de la siguiente forma: Torre "A", "B", "C", "D". Departamento 101, 102, 103, 201, 202, 203, etc, donde el número del departamento 101, por ejemplo corresponde al primer piso, departamento 01, etc. Entonces, el departamento A301 corresponde a la torre "A", tercer piso, departamento 01.
Cada departamento tiene 1, 2 ó 3 dormitorios, y 1 ó 2 baños. Todos tienen logia, pero solo algunos tienen terraza.

Los Gastos Comunes de cada departamento se calculan en base a los metros cuadrados del departamento, los gastos de vigilancia y de mantención del edificio y el uso de la lavandería ($500 por carga).

El administrador lleva también un registro de GGCC pagados y morosos. Adicionalmente, el administrador permite que los GGCC no sean pagados en su totalidad, lo que significa que parte de la deuda del mes o meses anteriores se traspasa al GGCC del mes vigente.
Los GGCC son por departamento. Al administrador le interesa saber qué departamentos están sin arrendar o están para la venta, afín de controlar los accesos y publicar correctamente los carteles de arriendo o de venta. Un departamento para arrendar está vacío. Un departamento para la venta no necesariamente está vacío.
El Condominio tiene una única entrada y salida, por lo que solo trabajan 3 porteros con turnos de 8 horas cada uno (así cubren las 24 horas del día). Además, trabajan 6 vigilantes en parejas, con turnos iguales de 8 horas.

Se pide:
Construir el Modelo Conceptual y Físico que resuelva el problema del administrador.
Debe hacer los supuestos necesario.

23 mayo 2006

BDD:SENTENCIAS SQL

SQL (Structured Query Lenguaje)















Instrucciones DML (Data Manipulation Language)
Las instrucciones DML consultan o manipulan datos de los objetos de un esquema. Permiten
* Recuperar datos de una o más tablas o vistas (SELECT)
* Agregar registros a una tabla o vista (INSERT)
* Cambiar los valores de las columnas en los registros de una tabla o vista (UPDATE)
* Eliminar registros de una tabla o vista (DELETE)


Instrucciones DDL (Data Definition Language)
Las instrucciones DDL definen, modifican la estructura de los objetos de un esquema, o los eliminan de la base de datos. Con ellas es posible
* Crear, modificar y eliminar objetos del esquema y otras estructuras de la base de datos, incluyendo a la BD y a los usuarios (CREATE, ALTER, DROP)
* Cambiar los nombres de los objetos del esquema (RENAME)
* Eliminar los todos los datos en los objetos del esquema sin remover la estructura de los objetos (TRUNCATE)
* Obtener estadísticas acerca de los objetos del esquema, validar la estructura, y listar registros vinculados dentro de los objetos (ANALYZE)

Las instrucciones DDL implícitamente ejecutan un COMMIT.

Instrucciones DCL (Data Control Language)
Otorgar y remover privilegios y roles (GRANT, REVOKE)


Estructura de una sentencia SQL SELECT
SELECT – columnas definidas en el resultado
Nombres De columnas
Expresiones Aritméticas
Funciones Escalares
Funciones en columnas
Concatenación
FROM Nombres de tables o vistas
WHERE Condiciones (cualidades de columnas)
ORDER BY resultado ordenado




Selección especificando columnas

Ejemplo
SELECT DEPTNO, DEPTNAME,ADMRDEPT
FROM DEPARTAMENT









Selección especificando Orden de salida

Ejemplo:
SELECT DEPTNO, DEPTNAMEADMRDEPT
FROM DEPARTAMENT
ORDER BY ADMRDEPT ASC










En este caso el orden de salida es ascendente por la columna admrdept
ASC/DESC


Duplicado de columnas en la Salida
Distinct elimina las columnas duplicadas y contenidas en la columna especificada en el SELECT.

SELECT DISTINCT
DEPTNO
FROM EMPLEADO



INTRUCCIONES SQL

Inserta nuevas filas en la tabla especificada.
INSERT INTO (NOMBRE_TABLA)
(COLUMNA1,COLUMNA2,COLUMNA3)
VALUES (VALOR_COLUMNA1,VALOR_COLUMNA2,VALOR_COLUMNA3)

Actualiza datos en la tabla especificada
UPDATE (NOMBRE TABLA)
SET (CAMPO1=VALOR NUEVO1, CAMPO2=VALOR NUEVO2)
WHERE (CONDICIONES DE ACTUALIZACIÓN)

Elimina datos de la tabla , según las condiciones de búsqueda.
DELETE FROM (NOMBRE TABLA) WHERE (CONDICIONES DE ELIMINACIÓN)

Crear una tabla
CREATE TABLE (NOMBRE TABLA)
(NOMBRE CAMPO TIPO CAMPO,…….)

Ejemplo
CREATE TABLE CLIENTE
(First_Name char(50),Last_Name char(50),Address char(50), City char(50),Country char(25), Birth_Date date)

ELIMINAR UNA TABLA
DROP TABLE (NOMBRE TABLA)

Ejemplo
DROP TABLE CLIENTE

22 mayo 2006

BDD:CREATE TABLE

CREATE TABLE

La instrucción CREATE TABLE es usada para especificar una nueva relación, dándole un nombre y especificando sus atributos y restricciones. A cada atributo se le da un nombre, un tipo de datos (para especificar su dominio de valores) y opcionalmente algunas restricciones. De este modo se especifican las restricciones de integridad

El siguiente ejemplo muestra las instrucciones de creación de datos en SQL














La cláusula PRIMARY KEY especifica uno o más atributos que forman la llave primaria de la relación. La cláusula UNIQUE especifica llaves alternas. La integridad de referencia es especificada a través de la cláusula FOREIGN KEY.

En el ejemplo tabla DEPARTAMENTO restringe a la tabla EMPLEADO
1.-)SOLO PODEMOS ALMACENAR UN RUTGERENTE EN LA TABLA DEPARTAMENTO, QUE SE ENCUENTRE CONTENIDO EN LA TABLA EMPLEADO CAMPO RUT.
2.-) NO PODEMOS ELIMINAR UN RUT DE LA TABLA DE EMPLEADO, SI SE ENCUENTRA CONTENIDO EN LA TABLA DEPARTAMENTO CON EL CAMPO RUTGERENTE.


21 mayo 2006

BDD: CONSTRAINT

Se utiliza la cláusula CONSTRAINT en las instrucciones ALTER TABLE y CREATE TABLE para crear o eliminar índices. Existen dos sintaxis para esta cláusula dependiendo si desea Crear ó Eliminar un índice de un único campo o si se trata de un campo multiíndice. Si se utiliza el motor de datos de Microsoft, sólo podrá utilizar esta cláusula con las bases de datos propias de dicho motor.
Para los índices de campos únicos:
CONSTRAINT nombre {PRIMARY KEY UNIQUE REFERENCES tabla externa [(campo externo1, campo externo2)]}
Para los índices de campos múltiples:


CONSTRAINT nombre {PRIMARY KEY (primario1[, primario2 [, ...]]) UNIQUE (único1[, único2 [, ...]]) FOREIGN KEY (ref1[, ref2 [, ...]]) REFERENCES tabla externa [(campo externo1 [,campo externo2 [, ...]])]}

BDD:LAB4

EJERCICIOS


Considerando el siguiente esquema relacional:
Crear las estructuras de tablas (Create Table).
Los campos subrayados corresponde a las claves Primary KEY


DEPARTAMENTOS (codigo, nombre) AREAS (codigo, nombre, departamento)
PROFESORES (codigo, apellido1, apellido2, nombres, activo, categoria, area)
ASIGNATURAS (siglas, nombre, creditos, curso, anualidad, clase, horas_teoria, horas_practica, grupos_teoria , grupos_practica, alumnos)
LOCALES (codigo, nombre, docente, capacidad, edificio, situacion) GRUPOS (curso, clase, codigo, nombre)
DOCENCIA (id, curso, clase, grupo, siglas, profesor, local, dia, hora, periodicidad)

Y considerando las siguientes claves Foreign key:
areas.departamento Æ departamentos

profesores.areaÆ areas
docencia.curso, clase, grupoÆ grupos

docencia.profesorÆ profesores
docencia.localÆ locales
docencia.siglasÆ asignaturas

Realizar los siguientes ejercicios:
(EJERCICIOS DE CONSULTAS)

Realizar a lo menos 5 inserciones en cada Tabla (INSERT)
Realizar a lo menos 5 Updates en cada Tabla (UPDATE)
Listar los profesores que contiene "Ruiz" en el primer o segundo apellido
Listar las áreas que corresponden al departamento de Informática.


20 mayo 2006

BDD:CREACION DE INDICES

Si se utiliza el motor de datos Jet de Microsoft sólo se pueden crear índices en bases de datos del mismo motor. La sintaxis para crear un índice en ua tabla ya definida en la siguiente:

CREATE [ UNIQUE ] INDEX índice ON tabla (campo [ASCDESC][, campo [ASCDESC], ...]) [WITH { PRIMARY DISALLOW NULL IGNORE NULL }] En donde:

















Se puede utilizar CREATE INDEX para crear un pseudo índice sobre una tabla adjunta en una fuente de datos ODBC tal como SQL Server que no tenga todavía un índice. No necesita permiso o tener acceso a un servidor remoto para crear un pseudo índice, además la base de datos remota no es consciente y no es afectada por el pseudo índice. Se utiliza la misma sintaxis para las tabla adjunta que para las originales. Esto es especialmente útil para crear un índice en una tabla que sería de sólo lectura debido a la falta de un índice.


CREATE INDEX MiIndice ON Empleados (Prefijo, Telefono);
Crea un índice llamado MiIndice en la tabla empleados con los campos Prefijo y Telefono.
CREATE UNIQUE INDEX MiIndice ON Empleados (ID) WITH DISALLOW NULL;
Crea un índice en la tabla Empleados utilizando el campo ID, obligando que que el campo ID no contenga valores nulos ni repetidos.

19 mayo 2006

BDD: ALTER TABLE

Modifica el diseño de una tabla ya existente, se puden modificar los campos o los índices existentes. Su sintaxis es:
ALTER TABLE tabla {ADD {COLUMN tipo de campo[(tamaño)] [CONSTRAINT índice] CONSTRAINT índice multicampo} DROP {COLUMN campo I CONSTRAINT nombre del índice} } En donde:

























ALTER TABLE Empleados ADD COLUMN Salario CURRENCY;
Agrega un campo Salario de tipo Moneda a la tabla Empleados.


ALTER TABLE Empleados DROP COLUMN Salario;
Elimina el campo Salario de la tabla Empleados.


ALTER TABLE Pedidos ADD CONSTRAINT RelacionPedidos FOREIGN KEY (ID_Empleado) REFERENCES Empleados (ID_Empleado);

Agrega un indice externo a la tabla Pedidos. El índice externo se basa en el campo ID_Empleado y se refiere al campo ID_Empleado de la tabla Empleados. En este ejemplo no es necesario indicar el campo junto al nombre de la tabla en la cláusula REFERENCES, pues ID_Empleado es la clave principal de la tabla Empleados.

ALTER TABLE Pedidos DROP CONSTRAINT RelacionPedidos;
Elimina el índice de la tabla Pedidos.

18 mayo 2006

BDD:INNER JOIN

Consultas de Combinación entre tablas
Las vinculaciones entre tablas se realizan mediante la cláusula INNER que combina registros de dos tablas siempre que haya concordancia de valores en un campo común. Su sintaxis es:


SELECT campos
FROM tb1 INNER JOIN tb2 ON tb1.campo1 comp tb2.campo2
En donde: