Está en la página 1de 10

Evaluación Final (20) – Parte 2 (Valor 10) Normalizacion – Hasta la 3Fn.

A. Describe brevemente las primeras tres formas normales.


B. 1FN – Primera Forma Normal

Una tabla está en Primera Forma Normal si todos los atributos son atómicos, La tabla
contiene una clave primaria única, La clave primaria no contiene atributos nulos, No debe
existir variación en el número de columnas. Los campos no clave deben identificarse por la
clave.

2FN – Segunda Forma normal


Una tabla está en 2FN si además de estar en 1FN cumple que los atributos no clave depende
de TODA la clave principal.
3FN – Tercera Forma Normal

Una tabla está en 3FN si además de estar en 2FN no existe ninguna dependencia transitiva
entre los atributos que no son clave.

C. Analiza los casos y realiza el proceso de normalización

1. Tabla de ordenes de artículos.

1ra forma de normalización

Articulo
Id_art Nom_art Precio
3786 Red 35.00
4011 Raqueta 65.00
9132 Paq-3 4.75
5794 Paq-6 5.00
3141 Funda 10.00

2302 1 5794 4
2303 4011 2
2303 3141 2

2da forma de normalización

Articulo
Id_art Nom_art Precio
3786 Red 35.00
4011 Raqueta 65.00
9132 Paq-3 4.75
5794 Paq-6 5.00
3141 Funda 10.00

Orde
n
Id_ord Id_client Fecha Ciudad
en e
2301 101 23/02/ Riobamb
11 a
2302 107 25/02/ Ambato
Id_orden Id_art cant
2301 3786 3
2301 4011 6
2301 9132 8
2302 5794 4
2303 4011 2
2303 3141 2

Cliente
Id_cliente Nombre_cliente
101 Martin
107 Herman
110 Pedro

3ra forma de normalización


Articulo
Id_art Nom_art Precio
3786 Red 35.00
4011 Raqueta 65.00
9132 Paq-3 4.75
5794 Paq-6 5.00
3141 Funda 10.00

Id_orden Id_art cant


2301 3786 3
2301 4011 6
2301 9132 8
2302 5794 4
2303 4011 2
2303 3141 2

Ciudad
Id_ciu Ciudad
1 Riobamba
2 Ambato
3 Quito

Cliente
Id_cliente Nombre_cliente
101 Martin
107 Herman
110 Pedro

Código Codigo Nombre Nombre Autor Fecha


Libro Cliente Cliente Libro Alquiler

1ra forma de normalización

Libro
Código_Libro Nombre_Libro Autor
29833 Historia de dos ciudades Charles Dickens
29877 Fausto Johann Wolfgang
37228 El nombre de la rosa Umberto Eco
10575 Anatomía del amor Helen Fisher
10313 Orgullo y prejuicio Jane Austen
10423 El lobo estepario Hermann Hesse

Alquiler
Id_Alquil Fecha Id_cliente Nombre_cliente
er
1 23/02/11 10010 Pedro
2 25/02/11 10011 María
3 27/0/11 10012 Juan
4 23/02/11 10013 Jonathan
2da forma de normalización

Libro
Código_Libro Nombre_Libro Autor
29833 Historia de dos ciudades Charles Dickens
29877 Fausto Johann Wolfgang
37228 El nombre de la rosa Umberto Eco
10575 Anatomía del amor Helen Fisher
10313 Orgullo y prejuicio Jane Austen
10423 El lobo estepario Hermann Hesse

Alquiler
Id_Alquil Fecha Id_cliente
er
1 23/02/11 10010
2 25/02/11 10011
3 27/0/11 10012
4 23/02/11 10013

Detalle Alquiler
Id_Alquiler Código_Libro
1 29833
1 29877
2 37228
2 10575
3 10313
4 10423

Cliente
Id_cliente Nombre_cliente
10010 Pedro
10011 María
10012 Juan
10013 Jonathan

3ra forma de normalización

Libro
Código_Libro Nombre_Libro Id_autor
29833 Historia de dos ciudades 1
29877 Fausto 2
37228 El nombre de la rosa 3
10575 Anatomía del amor 4
10313 Orgullo y prejuicio 5
10423 El lobo estepario 6

Alquiler
Id_Alquil Fecha Id_cliente
er
1 23/02/11 10010
2 25/02/11 10011
3 27/0/11 10012
4 23/02/11 10013

Detalle Alquiler
Id_Alquiler Código_Libro
1 29833
1 29877
2 37228
2 10575
3 10313
4 10423

Cliente
Id_cliente Nombre_cliente
10010 Pedro
10011 María
10012 Juan
10013 Jonathan

Autor
Id_autor Nombre_ autor
1 Charles Dickens
2 Johann Wolfgang
3 Umberto Eco
4 Helen Fisher
5 Jane Austen
6 Hermann Hesse

1. Luego de completar el proceso en el punto 2.

Crea una consulta que muestre el total de libros alquilados por año.
create table articulo(

Id_art int primary key not null, Nom_art varchar(50),

Precio money );
create table Orden(

Id_orden int primary key not null, Id_cliente int,

Id_ciu int, Fecha datetime);

create table Detalle_Orden( Id_orden int,

Id_art int, cant int,

);

ALTER TABLE Detalle_Orden ADD PRIMARY KEY ( Id_orden , Id_art )

create table Ciudad(

Id_ciu int primary key not null, Ciudad varchar(50));

create table Cliente(

Id_cliente int primary key not null, Nombre_cliente varchar(50));

Create table libro

(idLibro int primary key not null, nombre varchar(50) null,

idautor int not null

);

go

Create table autor

(idautor int primary key not null, nombre varchar(50) null

);

go
Create table Alquiler

(Id_Alquiler int primary key not null, Fecha datetime null,

Id_cliente int not null

);

go

Create table Detalle_Alquiler (Id_Alquiler int primary key not null, Código_Libro int
null

);

Create table Cliente

(Id_cliente int primary key not null, Nombre_cliente varchar(50) null

);

select count(*) AS TOTAL, YEAR(Alquiler.Fecha) as año from Detalle_Alquiler inner join


alquiler on Detalle_Alquiler.Id_Alquiler=alquiler.Id_Alquiler group by Alquiler.Fecha

También podría gustarte