trabajo base de datos

16
Conceptos básicos: Datos: Los datos son valores que describen hechos, condiciones o situaciones. Un dato puede ser una letra, un número, un signo ortográfico o cualquier símbolo y que representa una cantidad, una medida, una palabra o una descripción. Información: Los datos se convierten en información cuando se organizan de forma que describen un ente o fenómeno. Campo: Es la mínima unidad de información almacenada, por ejemplo el valor: 3.1416927 por sí solo no nos dice nada, hasta que lo asociamos a la cantidad de veces que entra el diámetro de la circunferencia en su perímetro. El valor 30682873864 es solo una serie de números pero al darle formato 30-68287386-4 podemos decir que se trata de un CUIT. Los campos poseen características que debemos conocer para poder utilizarlos: Tipo de dato: Carácter, Numérico, etc. Longitud: Cantidad de símbolos (bytes) que lo conforman Cantidad de decimales: Solo para los datos numéricos Registro: Es un conjunto de campos que están relacionados entre sí, por ejemplo: 30682873864UNLA UNIVERSIDAD NACIONAL DE LANUS Podemos ver claramente una cadena de caracteres formada por tres campos: CUIT NUMERICO (11, 0) SIGLA CARACTER (10) DENOMINACION CARACTER (50) Estos datos podrían haber sido organizados de otras formas para formar un registro, por ejemplo: Separados por comas: 30682873864,UNLA,UNIVERSIDAD NACIONAL DE LANUS Separados por comas y con comillas para las cadenas de caracteres: 30682873864,”UNLA”, ”UNIVERSIDAD NACIONAL DE LANUS” Separados por tabulaciones: 30682873864 ”UNLA” ”UNIVERSIDAD NACIONAL DE LANUS” U otros cientos de formatos que cada uno puede definir y deben conocer todos los que necesiten leer la información contenida en el archivo. Archivo de datos: Es un conjunto de datos almacenados de forma que puedan ser utilizados por un programa de computadora, los archivos de datos están conformados por una cantidad de registros; estos pueden tener longitud fija o variable; poseer registros de cabecera y cierre (registros de control) y estar organizados de forma tal que puedan ser leídos en forma secuencial, dinámica (random) o ambos

Upload: calisayas

Post on 22-Dec-2015

20 views

Category:

Documents


1 download

DESCRIPTION

bd

TRANSCRIPT

Page 1: Trabajo Base de Datos

Conceptos básicos: Datos: Los datos son valores que describen hechos, condiciones o situaciones. Un dato puede

ser una letra, un número, un signo ortográfico o cualquier símbolo y que representa una

cantidad, una medida, una palabra o una descripción.

Información: Los datos se convierten en información cuando se organizan de forma que

describen un ente o fenómeno.

Campo: Es la mínima unidad de información almacenada, por ejemplo el valor: 3.1416927 por

sí solo no nos dice nada, hasta que lo asociamos a la cantidad de veces que entra el diámetro

de la circunferencia en su perímetro. El valor 30682873864 es solo una serie de números pero

al darle formato 30-68287386-4 podemos decir que se trata de un CUIT. Los campos poseen

características que debemos conocer para poder utilizarlos:

Tipo de dato: Carácter, Numérico, etc.

Longitud: Cantidad de símbolos (bytes) que lo conforman

Cantidad de decimales: Solo para los datos numéricos

Registro: Es un conjunto de campos que están relacionados entre sí, por ejemplo:

30682873864UNLA UNIVERSIDAD NACIONAL DE LANUS

Podemos ver claramente una cadena de caracteres formada por tres campos:

CUIT NUMERICO (11, 0)

SIGLA CARACTER (10)

DENOMINACION CARACTER (50)

Estos datos podrían haber sido organizados de otras formas para formar un registro, por

ejemplo:

Separados por comas:

30682873864,UNLA,UNIVERSIDAD NACIONAL DE LANUS

Separados por comas y con comillas para las cadenas de caracteres:

30682873864,”UNLA”, ”UNIVERSIDAD NACIONAL DE LANUS”

Separados por tabulaciones:

30682873864 ”UNLA” ”UNIVERSIDAD NACIONAL DE LANUS”

U otros cientos de formatos que cada uno puede definir y deben conocer todos los que

necesiten leer la información contenida en el archivo.

Archivo de datos: Es un conjunto de datos almacenados de forma que puedan ser utilizados

por un programa de computadora, los archivos de datos están conformados por una cantidad

de registros; estos pueden tener longitud fija o variable; poseer registros de cabecera y cierre

(registros de control) y estar organizados de forma tal que puedan ser leídos en forma

secuencial, dinámica (random) o ambos

Page 2: Trabajo Base de Datos

De esta forma la información necesaria para hacer funcionar una aplicación se agrupa en

archivos donde los registros están formados por campos que poseen cierto nivel de relación

definida por el individuo que diseña el sistema.

A lo largo de la vida útil del sistema este puede pasar por las manos de varios diseñadores que

lo modifican agregando campos o archivos; lamentablemente no todos poseemos el mismo

criterio y el dejar ciertas reglas al libre albedrio hace que los sistemas lleguen a un momento

de su vida útil donde un dato en particular puede encontrarse en distintos archivos con

distinto nivel de actualización.

Este es un concepto difícil de comprender porque en un mundo ideal que se les describe todo

el tiempo en los libros la documentación de los sistemas está completa, pero cuando

trabajamos en empresas reales nos encontramos con documentación incompleta, necesidades

de desarrollo (tiempos) que impiden realizar el análisis completo en los archivos y programas

que los utilizan, programas de los que no tenemos los fuentes y por tanto deben seguir

trabajando con la misma estructura de archivo, etc.

Todos estos problemas del mundo real son los que dieron como resultado un caos que pedía a

gritos ser organizado, es así que nace CODASYL acrónimo para "Conference on Data Systems

Languages" que crea en un principio lenguajes estandarizados de programación como COBOL y

luego las bases de datos secuenciales que derivaron en las plex hasta llegar a las relacionales

que conocemos y utilizamos masivamente hoy en día.

Esto no hace que los archivos de datos se hayan dejado de usar, solo que restringió su uso para

algunas determinadas funciones como archivos de parámetros y de intercambio de datos

entre sistemas.

Bases de datos: Las bases de datos son estructuras de datos almacenadas (en su mayoría) en archivos

monolíticos (enormes archivos donde se almacenan todos los datos); la estructura utilizada

para almacenar estos datos fue variando con las distintas evoluciones de las bases de datos,

pero todas ellas se basaron en dos grandes repositorios de datos: el diccionario de datos y los

datos del sistema. El diccionario de datos es el corazón de las bases de datos y posee

información sobre la forma en que encontraremos almacenados los datos del sistema en la

base de datos (por esto también reciben el nombre de metadata).

Las razones de esta complejidad se deben a la necesidad de extraer de los sistemas

tradicionales la complejidad del manejo de los datos para ponerla en un sistema administrador

de base de datos que se encarga de administrarla: este concepto lo podrán ver reconocer del

análisis orientado a objetos como encapsulación.

La información en todas las bases de datos se encuentra almacenada en tablas que, en un nivel

de abstracción razonablemente alto, podemos ver con una apariencia similar a la de una

planilla de cálculo, poseen filas y columnas con intersecciones donde se almacenan los datos.

La información sobre el formato y contenido de cada tabla se almacena en un sector de la base

de datos llamado diccionario de datos.

La realidad es que son mucho mas complejas, pero en este momento necesitamos verlas

desde un punto de vista simplista para poder comprender como utilizarlas; por tanto y solo

para el objetivo de este apunte simplificaremos las bases de datos como un conjunto de datos

organizados en tablas donde las columnas de cada fila cumplen con ciertas restricciones que

en la teoría veremos como reglas de normalización.

Page 3: Trabajo Base de Datos

Para poder crear las estructuras de datos y consultarlas utilizaremos un lenguaje estructurado

de consulta que se conoce como SQL (Structured Query Language).

Las instrucciones que se utilizan para crear, actualizar y eliminar las estructuras de datos se

llaman DDL (Data Description Language), las que se utilizan para crear o eliminar filas en las

tablas o para actualizar sus datos se denominan DML (Data Management Language).

Todas las bases de datos relacionales utilizan versiones distintas versiones de SQL adaptadas

del estándar creado por ANSI (American National Standards Institute) en sus distintas

versiones desde que lo lanzara en 1987 y hasta la última revisión del 2013.

Instrucciones DDL:

CREATE

Se utiliza para crear estructuras de datos, vistas, índices de acceso, tipos de datos de usuario,

funciones, procedimientos, disparadores, etc.

ALTER

Se utiliza para modificar estructuras de datos, índices de acceso, tipos de datos de usuario,

funciones, procedimientos, disparadores, etc.

DROP

Se utiliza para eliminar estructuras de datos, índices de acceso, tipos de datos de usuario,

funciones, procedimientos, disparadores, etc.

Instrucciones DML:

INSERT

Se utiliza para agregar datos en una tabla o vista actualizable

UPDATE

Se utiliza para actualizar los datos de una tabla o vista actualizable

DELETE

Se utiliza para eliminar datos de una tabla o vista actualizable

TRUNCATE

Se utiliza para eliminar todos los datos de una tabla

MySQL Este año trabajaremos sobre la base de datos MySQL en su última versión liberada que pueden

descargar desde http://dev.mysql.com/downloads/ para el sistema operativo que deseen; el

instalador para Microsoft Windows contiene todos los utilitarios necesarios, a los aventureros

que deseen instalarlo sobre alguna versión de Linux, les recomiendo que lo instalen desde los

repositorios de la versión de Linux que tengan instalado (server y cliente suelen estar

disponible en paquetes por separado y deben instalar los dos) y luego descarguen e instalen

MySQL Workbench y MySql Utilities desde http://www.mysql.com/products/workbench/

La http://downloads.mysql.com/docs/refman-5.6-en.pdf encontraran la documentación

completa de la base de datos, incluyendo la del lenguaje SQL utilizado por esta base de datos

relacional.

Page 4: Trabajo Base de Datos

Subconjunto de instrucciones SQL de MySQL que utilizaremos este año:

Instrucciones DDL en MySQL:

CREATE TABLE

Se usa para crear estructuras de tablas de datos

ALTER TABLE

Se usa para modificar estructuras de tablas de datos, se deben seguir reglas de validación de

datos cuando las tablas de datos tienen contenido

DROP TABLE

Se usa para eliminar estructuras de tablas de datos, cuando se eliminan los datos se pierde la

información almacenada en ellas

CREATE INDEX

Se usa para crear índices de acceso a los datos almacenados en las tablas

ALTER INDEX

Se usa para modificar índices de acceso a los datos almacenados en las tablas

DROP INDEX

Se usa para eliminar índices de acceso a los datos almacenados en las tablas

CREATE VIEW

Se usa para crear vistas a las tablas de datos

DROP VIEW

Se usa para eliminar vistas a las tablas de datos

Instrucciones DML en MySQL:

INSERT

Se usa para agregar filas a las tablas de datos, para que funcione se deben cumplir las

restricciones definidas en el diccionario de datos

UPDATE

Se usa para actualizar los datos de las filas de las tablas, para que funcione se deben cumplir

las restricciones definidas en el diccionario de datos

DELETE

Se usa para eliminar filas de las tablas de datos

TRUNCATE TABLE

Se usa para eliminar todas las filas de una tabla de datos

SELECT

Se usa para recuperar la información de una o mas tablas de datos, para que funcione se

deben cumplir restricciones del diccionario de datos

Page 5: Trabajo Base de Datos

Instrucciones DDL:

Ejercicio 1: Crear una base de datos con nombre “unla_introdb” usando la instrucción CREATE DATABASE

Ejercicio 2: Usando la instrucción CREATE TABLE, crear una tabla con nombre “alumnos” en la base de

datos “unla_introdb” con el siguiente formato:

Columna Tipo de dato Restricciones Adicionales

legajo int NOT NULL PRIMARY KEY

nombre varchar(50) NOT NULL

apellido varchar(50) NOT NULL

cohorte smallint NOT NULL

activo char(1) DEFAULT 'S'

Ejercicio 3: Usando la instrucción CREATE INDEX, crear una indice con nombre “alumnos_ayn” en la tabla

“alumnos” de la base de datos “unla_introdb” con el siguiente formato:

Columna Orden

nombre ascendente

apellido ascendente

cohorte descendente

Ejercicio 4: Usando la instrucción ALTER TABLE, modificar la estructura de la tabla “alumnos” de la base

de datos “unla_introdb” agregando las siguientes columnas:

Columna Tipo de dato Restricciones Adicionales

fecha_nacimiento datetime NULL

fecha_estado datetime DEFAULT CURDATE()

estado smallint DEFAULT 0

Estado: {0: activo, 1: regular, 2: libre}

Page 6: Trabajo Base de Datos

Ejercicio 5: Usando la instrucción ALTER TABLE, modificar la estructura de la tabla “alumnos” de la base

de datos “unla_introdb” eliminando la columna activo

Ejercicio 6: Usando las instrucción de los ejercicios 1 a 5 :

1. Crear una base de datos con nombre “ejercicio6”

2. Crear en la base de datos “ejercicio6” las siguientes tablas:

3. Agregar a la tabla “articulos” la columna “precio” (float default 0)

4. Crear un indice por el campo “tipo_articulo_id” con orden ascendente para la tabla

“articulos”

Ejercicio 7: Usando la instrucción DROP TABLE, eliminar la tabla “tipos_articulo” de la base de datos

“ejercicio6”

Ejercicio 8: Usando la instrucción DROP DATABASE eliminar la base de datos “ejercicio6”

Ejercicio 9: Usando la instrucciones SQL que correspondan agregar las siguientes tablas a la base de

datos:

Tabla: “notas_alumno”

Columna Tipo de dato Restricciones Adicionales

nota_id smallint NOT NULL PRIMARY KEY

legajo int NOT NULL PRIMARY KEY

nota_valor float DEFAULT 0

Tabla: “notas”

Columna Tipo de dato Restricciones Adicionales

nota_id smallint NOT NULL PRIMARY KEY

nota_desc varchar(20) NOT NULL

Tabla: “grupos_tp”

Page 7: Trabajo Base de Datos

Columna Tipo de dato Restricciones Adicionales

grupo_id smallint NOT NULL PRIMARY KEY

grupo_nombre varchar(50) NOT NULL

nota_grupal float DEFAULT 0

Ejercicio 10: Usando la instrucciones SQL que correspondan agregar los siguientes valores a la tabla notas:

nota_id nota_nom

1 Primer parcial

2 Segundo parcial

3 Tercer parcial

4 Recuperatorio primer parcial

5 Recuperatorio segundo parcial

6 Recuperatorio tercer parcial

7 Final

Ejercicio 11: Realizar un resguardo (BACKUP o DUMP o EXPORT) de la base de datos y entregarlo al profesor

Page 8: Trabajo Base de Datos

Instrucciones DML:

Usando: Usando la base de datos “unla_introdb” se realizarán los ejercicios en forma grupal y se

guardarán los comandos para cada caso, entregándolo al profesor junto con el resguardo del

último ejercicio

Ejercicio 1: Usando la instrucción INSERT sobre la tabla “alumnos” insertar los datos de los alumnos del

grupo de trabajo (al menos 5 registros).

Ejercicio 2: Usando las instrucciones DML que corresponda agregar a la tabla “alumnos” la siguientes

columnas:

Columna Tipo de dato Restricciones Adicionales

dni bigint NOT NULL

email varchar(50) NULL

grupo_id smallint DEFAULT 0

Ejercicio 3: Usando la instrucción UPDATE modificar el contenido de las filas de la tabla “alumnos”

agregando la información para las columnas del punto anterior.

Ejercicio 4: Usando la instrucción INSERT modificar el contenido de las filas de la tabla “alumnos”

agregando la información de los siguientes alumnos:

Nombre y

Apellido

Legajo Cohorte Estado

Fabian Gonzalez 23435 2008 2

Esteban Nagata 23437 2008 2

Carlos Urquiza 23455 2008 2

Carolina Martinez 23502 2008 2

Ejercicio 5: Usando la instrucción SELECT consultar todos los datos de la tabla “alumnos”.

Ejercicio 6: Usando la instrucción DELETE eliminar de la tabla “alumnos” los datos de los alumnos libres.

Page 9: Trabajo Base de Datos

Ejercicio 7: Usando la instrucciones SQL que correspondan crear la fila para el grupo de los alumnos

ingresados en la tabla “alumnos” del grupo de trabajo práctico que les asigne el profesor.

Ejercicio 8: Realizar un resguardo (BACKUP o DUMP o EXPORT) de la base de datos y entregarlo al profesor

Page 10: Trabajo Base de Datos

Uso de la instrucción SELECT:

Usando: Usando la base de datos “select_introdb” se realizarán los ejercicios en forma grupal y se

guardarán los comandos para cada ejercicio, entregándolo al profesor al finalizar el ejercicio.

Ejercicio 1: Escribir la sentencia SELECT que permita recuperar la información de la lista de artículos

Ejercicio 2: Agregar a la sentencia del ejercicio anterior los datos del tipo de artículo y el precio, para

obtener una lista de precios

Ejercicio 3: Agregar a la sentencia del ejercicio anterior la restricción necesaria para mostrar solo los

artículos del que se poseen existencias, lista de precios de artículos en existencia

Ejercicio 4: Teniendo en cuenta que se realiza un pedido de artículos semanalmente, escribir la sentencia

SELECT que permita recuperar la información de la lista de artículos cuyas existencias se

encuentren por debajo del punto de reposición

Ejercicio 5: Modificar la sentencia anterior para mostrar solo los registros que no tengan pedidos

pendientes de semanas anteriores

Ejercicio 6: Modificar la sentencia anterior para mostrar también los artículos que se traen solo a pedido

(punto de reposición = cero)

Ejercicio 7: Escribir la sentencia SELECT que permita recuperar la información de la lista de vendedores

Ejercicio 8: Agregar a la sentencia anterior la información del jefe de grupo de ventas

Entregar al profesor: Las instrucciones SQL creadas para cada ejercicio

Page 11: Trabajo Base de Datos

Uso de la instrucción SELECT … BETWEEN:

Usando: Usando la base de datos “select_introdb” se realizarán los ejercicios en forma grupal y se

guardarán los comandos para cada ejercicio, entregándolo al profesor al finalizar el ejercicio.

Ejercicio 1: Escribir la sentencia SELECT que permita recuperar la información del monto total de ventas

realizadas mensualmente (año y mes) entre los años 2010 y 2011

Ejercicio 2: Escribir la sentencia SELECT que permita recuperar la información de la cantidad de artículos

vendidas por tipo de artículo y artículo entre los años 2010 y 2011

Ejercicio 3: Escribir la sentencia SELECT que permita recuperar la información de la cantidad de artículos y

monto realizado por sus ventas por tipo de artículo y artículo en los dos primeros trimestres de

2011

Entregar al profesor: Las instrucciones SQL creadas para cada ejercicio

Page 12: Trabajo Base de Datos

Uso de la instrucción SELECT … GROUP BY:

Usando: Usando la base de datos “select_introdb” se realizarán los ejercicios en forma grupal y se

guardarán los comandos para cada ejercicio, entregándolo al profesor al finalizar el ejercicio.

Ejercicio 1: Escribir la sentencia SELECT que permita recuperar la información del monto total de ventas

realizadas mensualmente (año y mes)

Ejercicio 2: Escribir la sentencia SELECT que permita recuperar la información del monto total de ventas

realizadas semanalmente (año, mes y semana)

Ejercicio 3: Escribir la sentencia SELECT que permita recuperar la información del monto total de ventas

realizadas trimestralmente (año y trimestre)

Ejercicio 4: Escribir la sentencia SELECT que permita recuperar la información del monto total de ventas

realizadas mensualmente (año y mes) por artículo

Ejercicio 5: Escribir la sentencia SELECT que permita recuperar la información del monto total de ventas

realizadas semanalmente (año, mes y semana) por artículo

Ejercicio 6: Escribir la sentencia SELECT que permita recuperar la información del monto total de ventas

realizadas trimestralmente (año y trimestre) por artículo

Ejercicio 7: Escribir la sentencia SELECT que permita recuperar la información del monto total de ventas

realizadas mensualmente (año y mes) por tipo de artículo y artículo

Ejercicio 8: Escribir la sentencia SELECT que permita recuperar la información del monto total de ventas

realizadas semanalmente (año, mes y semana) por tipo de artículo y artículo

Ejercicio 9: Escribir la sentencia SELECT que permita recuperar la información del monto total de ventas

realizadas trimestralmente (año y trimestre) por tipo de artículo y artículo

Ejercicio 10: Escribir la sentencia SELECT que permita recuperar la información del monto total de ventas

realizadas mensualmente (año y mes) por grupo de ventas y vendedor

Ejercicio 11: Escribir la sentencia SELECT que permita recuperar la información del monto total de ventas

realizadas semanalmente (año, mes y semana) por grupo de ventas y vendedor

Page 13: Trabajo Base de Datos

Ejercicio 12: Escribir la sentencia SELECT que permita recuperar la información del monto total de ventas

realizadas trimestralmente (año y trimestre) por grupo de ventas y vendedor

Ejercicio 13: Escribir la sentencia SELECT que permita recuperar la información del promedio de la cantidad

de unidades de cada artículo vendidas por operación

Ejercicio 14: Escribir la sentencia SELECT que permita recuperar la información del promedio de la cantidad

de unidades de cada artículo vendidas por operación y vendedor

Ejercicio 15: Escribir la sentencia SELECT que permita recuperar la información del promedio de la cantidad

de unidades de cada artículo vendidas por operación y grupo de ventas

Ejercicio 16: Escribir la sentencia SELECT que permita recuperar las comisiones de ventas totales por cada

mes (año y mes)

Ejercicio 17: Idem pero separadas por cada grupo de ventas

Ejercicio 18: Idem pero separadas por cada vendedor

Entregar al profesor: Las instrucciones SQL creadas para cada ejercicio

Page 14: Trabajo Base de Datos

Uso de JOIN:

Usando: Usando la base de datos “select_introdb” se realizarán los ejercicios en forma grupal y se

guardarán los comandos para cada ejercicio, entregándolo al profesor al finalizar el ejercicio.

Reescribir las instrucciones de la práctica de GOUP BY utilizando JOIN para conectar las tablas

Entregar al profesor: Las instrucciones SQL creadas para cada ejercicio

Page 15: Trabajo Base de Datos

Vistas

Usando: Usando la base de datos “select_introdb” se realizarán los ejercicios en forma grupal y se

guardarán los comandos para cada ejercicio, entregándolo al profesor al finalizar el ejercicio.

Crear vistas para los primeros doce ejercicios de la práctica anterior.

Entregar al profesor: Las instrucciones SQL creadas para cada ejercicio

Page 16: Trabajo Base de Datos

Usando MySQL Workbench para diseñar una base de datos:

Diseño de base de datos: Diseñar una estructura de base de datos para almacenar la información de los turnos de una

peluquería, tener en cuenta que se deben almacenar datos de: clientes, empleados,

especialidades de los empleados e historia de atención a clientes; no entra dentro del alcance

la facturación de los servicios.

Cargar datos para diez empleados (cuatro peluqueros, dos manicuras, dos asistentes y dos

administrativos), dos turnos de atención rotativos semanalmente, no se atiende los lunes,

sábado horario extendido (tres turnos de 4hs)

Para asegurar que la estructura de datos funciona correctamente verificar que se puedan

realizar las siguientes consultas:

1. Agenda del próximo lunes para cada peluquero

2. Historia de atención de un cliente determinado del último mes

3. En que horario se puede hacer corte, manicura y color en forma simultanea para los

próximos tres días

Entregar al profesor: Entregar el modelo con datos y el prototipo de las consultas en SQL