Este documento describe la implementación de una base de datos para una tienda. Incluye el diseño conceptual (DER), el esquema de la base de datos en SQL Server, las tablas, reglas, valores predeterminados y consultas SQL. Se crean tablas para clientes, facturas, detalles de facturas y productos con sus campos, claves primarias y claves foráneas correspondientes. También se insertan registros de prueba y se incluyen ejemplos de consultas utilizando joins internos y externos.
1. Página 1
UNIVERSIDAD NACIONAL DE CHIMBORAZO
ESCUELA DE INGENIERIA EN SISTEMAS Y COMPUTACIÓN
TAREA No. 04
ASIGNATURA: Base de Datos II DOCENTE: Ing. Paúl Paguay
SEMESTRE: Cuarto
NOMBRE: Estuardo Cajilema, Alex Yungán, Samuel Naranjo
FECHA: 13/10/2014
Implementar una Base de Datos y crear un documento pdf con la siguiente información:
1. Diseño Conceptual (DER)
Cliente
cod_cliente
nombre
apellido
cédula
Teléfono
Factura
número fecha total
DetalleFactura
cantidad
precio_unitario
Producto
cod_producto
descripción
stock
precio_venta
tiene
1
N
N
N
2. Página 2
2. Esquema de Base de Datos (SQL Server)
cliente
cod_cliente
cedula
nombre
apellido
telefono
fatura
numero
cod_cliente
total
fecha
faturadetalle
numero
cod_producto
cantidad
precio_unitario
producto
cod_producto
descripcion
stock
precio_venta
3. Matriz de dominios
NOMBRE DEL
DOMINIO
TIPO DE
DATO
PERMITE
NULOS
VALOR
DEFECTO
REGLA
d_codigos Int No 1 @value>0
d_cedulas Varchar(11) No @value like ‘[0-9][0-9][0-9][0-9][0-9][0-
9][0-9][0-9][0-9][-] [0-9]’
d_nombres varchar(30) No
d_apellidos varchar(30) No
d_fechas Date SI Getdate() @value<= getdate()
d_telefonos Varchar(10) SI
d_descripciones Varchar(100) SI
d_moneda Numeric (10,2) SI 0 @value>=0
d_cantidad Int SI 0 @value>=0
d_stock Int SI 0 @value>=0
3. Página 3
4. Transact SQL
1. Reglas
Create Rule r_codigos
As @value>0
Go
Create Rule r_cedulas
As @value like '[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][-][0-9]'
Go
Create Rule r_fechas
As @value<=Getdate()
Go
Create Rule r_moneda
As @value>=0
Go
Create Rule r_cantidades
As @value>0
Go
Create Rule r_stock
As @value>=0
Go
2. Valores por Defecto
Create Default vd_codigos
As 1
Go
Create Default vd_fechas
As Getdate()
Go
Create Default vd_moneda
As 0
Go
Create Default vd_cantidades
As 0
Go
Create Default vd_stock
As 0
Go
5. Página 5
)
Create Table factura
(
numero d_codigos,
cod_cliente d_codigos,
total d_moneda,
fecha d_fechas,
Primary Key(numero),
Foreign Key(cod_cliente) References cliente(cod_cliente)
)
Create Table facturadetalle
(
numero d_codigos,
cod_producto d_codigos,
cantidad d_cantidades,
precio_unitario d_moneda,
Primary Key(numero,cod_producto),
Foreign Key(numero) References factura(numero),
Foreign Key(cod_producto) References producto(cod_producto)
)
6. Insertar 2 registros por tabla
Insert Into Cliente
Values (1,'060493608-1','Carlos','Gomez','0992595540')
Insert Into Cliente
Values (2,'060493608-9','Marco','Torres','0992595541')
Insert Into producto
Values(1,'Libro de Ciencia y Tecnología',DEFAULT,32.35)
Insert Into producto
Values(2,'Libro de Arte',1,40.35)
Insert Into factura
Values (1,1,32.35,'2014-10-08')
Insert Into factura
Values (2,2,40.35,'2014-10-08')
Insert Into facturadetalle
Values (1,1,1,32.35)
Insert Into facturadetalle
Values (2,2,1,40.35)
7. Consultas
1. Utilizando inner join
select cod_cliente,cod_producto, descripcion from cliente c inner join producto
p on c.cod_cliente=p.cod_producto
2. Utilizando outer join
select cod_cliente,cod_producto, descripcion from cliente c right outer join
producto p
on c.cod_cliente=p.cod_producto
select cod_cliente,cod_producto, descripcion from producto p left outer join
cliente c