Está en la página 1de 5

CIBERTEC

Base de Datos Avanzado I

Base de Datos Avanzado I

Manejo de tablas y esquemas


COMPETENCIAS:
-

Al trmino de la sesin, el alumno crea y maneja una tabla de base de datos usando
particiones.

PREGUNTA 1 (Propuesto)
Una empresa de venta de productos al por mayor y menor necesita controlar sus ventas; para lo
cual se nos encomienda disear el modelo relacional de su base de datos como parte del modelo
de datos del Sistema de Control de Ventas. Debemos considerar los siguientes aspectos:
1.

Implemente la base de datos VENTAS_2014 con las siguientes caractersticas:


Valide la existencia de la base de datos VENTAS_2014 de tal manera que si la base
existe elimnela.

2.

El
o
o
o
o

archivo primario cuenta con las siguientes caractersticas:


Ubicacin: C:\EMPRESA
Tamao inicial: 50MB
Mximo tamao: 250MB
Tasa de crecimiento: 20%

El
o
o
o
o

archivo secundario cuenta con las siguientes caractersticas:


Ubicacin: C:\EMPRESA\SEC
Tamao inicial: 40MB
Mximo tamao: 150MB
Tasa de crecimiento: 2MB

El
o
o
o
o

archivo de transacciones cuenta con las siguientes caractersticas:


Ubicacin: C:\EMPRESA\LOG
Tamao inicial: 10MB
Mximo tamao: 50MB
Tasa de crecimiento: 2MB

Implemente el siguiente diagrama de base de datos respetando los tipos de datos y las
capacidades especificadas para sus campos:

Elaborado por: Equipo de Docentes

CIBERTEC

Base de Datos Avanzado I

Aplique de manera correcta las llaves primarias de cada una de las tablas.
Aplique de manera correcta las llaves forneas en las tablas relacionales.
Aplique las siguientes reglas de negocio:
o El precio del producto, stock actual y stock mnimo no deben ser inferior a cero.
o La fecha de la factura debe asignar la fecha actual como valor por defecto.
o En el campo email de la tabla cliente debe mostrarse el mensaje No cuenta solo
si el usuario no registra un correo electrnico.
Agregar un nuevo tipo de datos llamado CORREO que tenga la capacidad de 50
caracteres y que adems no sea obligatorio su registro.
Agregar un nuevo tipo de datos llamado FONO que tenga la capacidad de 15 caracteres
y que adems sea obligatorio su registro.
PREGUNTA 2
Una empresa inmobiliaria necesita controlar sus proyectos ejecutados hasta el ao 2009; para lo
cual se recomienda crear archivos secundarios y particionarlos de tal forma que cada una se
almacene en un grupo respectivo. Debemos considerar los siguientes aspectos:
Valide la existencia de la base de datos BD_PROYECTOS2014 de tal manera que si
la base existe elimnela.
USE MASTER
GO
La base de datos BD_PROYECTOS2014 debe registrarse en la carpeta
C:\PROYECTOS2014, tamao inicial de 10MB, un maximo tamao de 100MB y una tasa
de crecimiento del 10%.

Elaborado por: Equipo de Docentes

CIBERTEC

Base de Datos Avanzado I

IF DB_ID('BD_PROYECTOS2014') IS NOT NULL


DROP DATABASE BD_PROYECTOS2014
GO
CREATE DATABASE BD_PROYECTOS2014
ON (
NAME=PROYECTOS2014,
FILENAME='C:\PROYECTOS2014\PROYECTOS2014.MDF',
SIZE=10MB,
MAXSIZE=100MB,
FILEGROWTH=10%
)
GO
Cambiar el formato de la fecha usando la sentencia SET DATEFORMAT a estilo dia, mes
ao.
SET DATEFORMAT DMY
GO
Crear una particion llamada PORFECHA de tipo DATE que permita controlar un rango
de fechas en tres particiones:
o Primera particion: Fechas inferiores al ao 2004 inclusive el mismo ao.
o Segunda particion: Fechas entre los aos 2005 y 2009
o Tercera particion: Fechas superiores al ao 2009.
USE BD_PROYECTOS2014
GO
CREATE PARTITION FUNCTION PORFECHA(DATE)
AS RANGE LEFT
FOR VALUES('31-12-2004','31-12-2009')
GO
Crear tres grupos para cada una de las particiones llamados Grupo1, Grupo2 y Grupo3.
ALTER DATABASE BD_PROYECTOS2014 ADD FILEGROUP GRUPO1
GO
ALTER DATABASE BD_PROYECTOS2014 ADD FILEGROUP GRUPO2
GO
ALTER DATABASE BD_PROYECTOS2014 ADD FILEGROUP GRUPO3
GO
Agregar tres archivos secundarios a la base de datos BD_PROYECTOS2014 en la misma
carpeta del proyecto inicial.
ALTER DATABASE BD_PROYECTOS2014
ADD FILE(
NAME=PROYECTOS2014_SEC1,
FILENAME='C:\PROYECTOS2014\PROYECTOS2014_SEC1.NDF'
) TO FILEGROUP GRUPO1
GO
ALTER DATABASE BD_PROYECTOS2014
ADD FILE(
Elaborado por: Equipo de Docentes

CIBERTEC

Base de Datos Avanzado I

NAME=PROYECTOS2014_SEC2,
FILENAME='C:\PROYECTOS2014\PROYECTOS2014_SEC2.NDF'
) TO FILEGROUP GRUPO2
GO
ALTER DATABASE BD_PROYECTOS2014
ADD FILE(
NAME=PROYECTOS2014_SEC3,
FILENAME='C:\PROYECTOS2014\PROYECTOS2014_SEC3.NDF'
) TO FILEGROUP GRUPO3
GO
Crear un esquema de particion llamada ESQUEMA_PORFECHAS que permita organizar
las fechas segn la particion PORFECHA y asignada a los grupos Grupo1, Grupo2 y
Grupo3.
CREATE PARTITION SCHEME ESQUEMA_PORFECHA
AS PARTITION PORFECHA
TO (GRUPO1,GRUPO2,GRUPO3)
GO
Crear la tabla pedidos asignado al esquema de particion con las siguientes
caracteristicas:
IdPedido
FecPedido
idCliente

int
date
char(6)

CREATE TABLE PEDIDOS(


IDPEDIDO
INT
NOT NULL,
FECPEDIDO DATE NOT NULL,
IDCLIENTE CHAR(6) NOT NULL
) ON ESQUEMA_PORFECHA(FECPEDIDO)
GO
Insertar los siguientes registros para la prueba:
1,'10/01/2003','CLI001'
2,'21/04/2005','CLI001'
3,'01/09/2008','CLI003'
4,'08/05/2010','CLI001'
5,'30/08/2011','CLI004'
6,'28/03/2010','CLI007'
INSERT INTO PEDIDOS
VALUES (1,'10/01/2003','CLI001'),
(2,'21/04/2005','CLI001'),
(3,'01/09/2008','CLI003'),
(4,'08/05/2010','CLI001'),
(5,'30/08/2011','CLI004'),
(6,'28/03/2010','CLI007')
GO
Listar los pedidos de una determinada particion.

Elaborado por: Equipo de Docentes

CIBERTEC

Base de Datos Avanzado I

SELECT * FROM PEDIDOS


WHERE $PARTITION.PORFECHA(FECPEDIDO)=2;
GO
Listar todos los pedidos especificando a que particion pertenece.
SELECT *,BD_PROYECTOS2014.$PARTITION.PORFECHA(FECPEDIDO) AS PARTICION
FROM PEDIDOS
GO

Elaborado por: Equipo de Docentes