Está en la página 1de 9

Normalizacin

vista

vista

usuario

fsica

-FORMA NORMAL-- fn
1fn
2fn vista usuario
3fn vista fsica
4fn *
5fn *
Primera Forma Normal (1FN) Incluye la eliminacin de todos los grupos repetidos.
Segunda Forma Normal (2FN) Asegura que todas las columnas que no son llave
sean completamente dependientes de la llave primaria (PK).
Tercera Forma Normal (3FN) Elimina cualquier dependencia transitiva. Una
dependencia transitiva es aquella en la cual las columnas que no son llave son
dependientes de otras columnas que tampoco son llave.
1fn
*pk -----------------> llave primaria, campo nico
*atomizar ------------> reducir a u mnima expresin
3*grupo repetitivos -----------------> es un campo que dentro de la misma puede
almacenar mltiples campos
2fn
*limitar dependencia parciales
3fn
*Dependencia Transitiva ---> es cuando un campo depende de otro campo
--Modelador de Datos es un software que le sirve para disear bases de datos.
--diccionario de datos el conjunto de campos que nosotros analizamos
Clase 30-06-2014 lunes
Con los grupos repetitivos debemos crear una nueva identidad
Clase 01-07-2014 martes
2 tipos de tablas en las bases de datos:
Maestras
1

Transaccionales
*los valores de las tablas maestras nunca cambian.
*dependencia transitiva, cuando un campo depende de otro CAMPO
las relaciones que pueden existir en las tablas son:
de 1 a 1
de 1 a muchos
de muchos a muchos
las relaciones siempre estarn relacionadas por 2 tablas
tabla padre o independiente y la otra tabla hijo o dependiente, la cardinalidad, la
forma en que debe fluir la informacin en las tablas padre a hijo una relacin ser
de 1 a muchos si la tabla a un registro se puede relacionar con varios registros de la
tabla b siempre la tabla padre ser 1, y la tabla hijo ser muchos las relaciones de 1
a 1, es cuando para cada registro de la tabla a, solo pueda diferenciar un registro en
la tabla b o viceversa, relacin de muchos a muchos relacin lgica, pero
fsicamente no existe una base de datos que las pueda relacionar que ocurre con
esta relacin de muchos a muchos: en la prctica se divide en 2 relaciones de 1 a
muchos.
Relacin de muchos a muchos no se puede representar en la base de datos
En la tabla padre se puede ingresar la cantidad de registros sin depender de otras
tablas
La tabla hijo los registros de esta depende de los registros de la tabla padre como
se llama la relacin de 1 a muchos, se le llama llave fornea la relacin fsica entre
los 2, si no hay relacin fsica no es llave fornea.
Llave fornea es si existe fsicamente la relacin en las tablas
No porque haya campos iguales en ambas tablas.
CLASE 03-07-2014
create database Matricula
Termino log on, es una bitcora, se almacena las actividades de una base de datos,
historial de lo que hagamos
Datos y Log on, juntos forman una base de datos
Para borrar una base de datos el comando es drop database "nombre"
Para que se pueda borrar no debe estar conectado en esa base de datos que se
quiere borrar
Clausula on, para definir los parmetros de datos
2

Clausula log on, para definir los parmetros de log


Estos parmetros
name =

sirve para especificar registrar el nombre lgico

filename = es el archivo fsico donde queremos que se almacene


size =

tamao inicial que tendr

filegrowth= tamao que crezca en la base de datos


termino sufijo, un texto que se coloca al final de una palabra
create table "tabla"
(

"lista de campos"

)
hay dominios entre 20 a 40
En la clase trabajaremos con 6 dominios bsicos:
int, varchar, float, numeric, datetime, bit
el sql server tiene 6 diferentes tipos de enteros.
la diferencia es el rango de valores.
tipo varchar, y nvarchar
nvarchar: para almacenar datos graficos
diferencia entre float y numeric
numeric para usar cualquier cantidad de decimales
el float solo 8 bit permite
--------------------------------------------------------------CLASE 08-07-2014
sp_tables: no es ningn comando, es un procedimiento almacenado de un sistema
dentro de un programa SQL
select * from sysobjects
select * from sysobjects where xtype = 'U' :esto es para ver los tipos en las tablas
de la base de datos
select * from syscolumns

: muestra todas las columnas de nuestra base de datos

Integridad en base de datos: que los datos sean congruentes, consistentes, la


integridad de las base de datos de 2 maneras la podemos conocer:
3

1. integridad por procedimiento: son todas las validaciones que se colocan en el


lenguaje

de

programacin

ejemplo

no

permitir

datos

nulos,

ingresar

obligatoriamente
2. integridad declarativa: es todo aquel conjunto de reglas o restricciones que se
colocan en la base de datos.
El objetivo general de ambas integridades es el objetivo especfico de los datos.
CONSTRAINT: Restriccin dentro de una base de datos
Integridad declarativa se divide en:
1. integridad de entidad o identidad: busca conservar la consistencia dentro de
una misma tabla REGISTROS SEAN UNICOS
2. integridad referencial: la referencia en registros de diferentes tablas sean validas
3. integridad dominio:

pretende restringir la lista de valores permitidos por

una columna o registro


La integridad dominio: se divide en 4 tipos:
1. Valores x default u omisin: son aquellos valores que se aplican cuando
especificamos un dato como debe ser, el valor por omisin en las BD son null,
TODO valor operado con un nulo ser nulo, todo columna que ser utilizada por
un campo no debe aceptar nulos, podemos poner en vez de null mejor 0 usar o 1
dependiendo lo que necesitemos
2. check o condiciones:
3. reglas
4. dominios de usuarios
3 son las modificaciones que se puede hacer en la estructura de una tabla:
alter table carrera add director varchar (50) null

: agregamos a la tabla una

nueva columna
alter table carrera alter column nombre varchar (100): modificamos la columna
alter table carrera drop column director

: elimina la columna

add, alter, drop


sp_help 'carrera'
sirve para poder ver las caractersticas de la informacin de los campos de la tabla
*** si creamos un campo en la tabla con tamao de 20 caracteres,
Podemos agregar ms tamao de caracteres con alter column nombre de varchar
(50) por ejemplo a (100), pero no disminuir,
4

Si anteriormente hemos ingresados y usado los 20 caracteres en algunos registros


almacenados en la tabla, nos dar error.
***para cambiar el nombre de la columna solamente es por medio de la interfaz
grafica.
Una forma seria crear una nueva columna, agregar, mover los registros de la que
queremos borrar para cambiar el nombre de la columna, y despus borramos con el
drop la columna que queras cambiar nombre, y as en la nueva columna que
creamos, esa ser la que usemos con el nombre que queramos llamar
CLASE 09-07-2014
Se llama clave primaria a un campo o a una combinacin de campos que identifica
de forma nica a cada fila de una tabla.
alter table carrera add constraint ukcarreranombre unique (nombre): para

crear

una llave alterna


Diremos que una llave es mnima cuando si se elimina cualquiera de los atributos
que la componen, deja de ser llave. Si en una entidad existe ms de una de estas
llaves mnimas, cada una de ellas es una llave candidata.
llave candidata: es cada una de las llaves mnimas existente en un conjunto de
entidades
llave Alternativa. Una llave alternativa es aquella llave candidata que no ha sido
seleccionada como llave primaria, pero que tambin puede identificar de forma
nica a una fila dentro de una tabla.
comando para ingresar agregar filas registros a la tabla
Estas son 2 maneras de ingresar registros a las tablas:
insert into carrera values (1, 'Computacion')
insert into carrera (carreraid, nombre) values (2, 'Mercadeo')

--para colocar en

orden en cada columna estos registgros // es esta mejor usar


Independencia de datos: es la capacidad, el hecho de que un sistema no se vea
afectado por la estructura de la tabla
Si la columna tiene constraint, no podremos eliminar la columna sin antes quitar el
constraint
alter table carrera drop column directo
para que un campo tenga llave primaria:
1. que los campos no sean nulos
2. que no hayan registros que violenten la integridad
5

Para poder colocar constraint a un campo de la tabla:


constraint pkalumno primary key (alumnoid)
constraint ukalumnonombre unique (nombre)
Integridad referencial hace que un registro de una tabla haga referencias validas
con otro registro de otra tabla
Las llaves forneas se agregan a la tabla hijos haciendo referencias con las tablas
padres
fk: abreviacin de foreign key
La cantidad, tipo de dato y orden de los campos que forman la llave primaria, debe
coincidir con la cantidad tipo y orden de los campos que forman la llave fornea
Una llave fornea puede aceptar nulos
en la llave fornea debe coincidir el orden de los campos
si en la tabla es:
paisid
muniid
en la referencia del alter table debe ser (paisid, muniid)
CLASE 14-07-2014
REGLAS de integridad de las llaves forneas
1. no se puede hacer referencia de una tabla hijo a un registro de una tabla padre si
dicho registro no existe en la tabla padre
2. no se puede eliminar un registro de la tabla padre, si est relacionado
referenciado con un registro de una tabla hijo
Cascada: sirve para hacer un replicacin de las actualizaciones que se hagan de las
tablas padres en las tablas hijos
sirve para actualizar registros modificados en las tablas padres donde sern igual
en las tablas hijos que haya relacin
**como habilitamos la cascada: se agrega en el momento que se crea la llave
fornea:
alter table alumno add constraint pkalumnocarrera foreign key (carreraid) reference
carrera -> manera de crear la llave fornea
alter table alumno add constraint pkalumnocarrera foreign key (carreraid) reference
carrera on update cascade

-> manera de crear la llave fornea con CASCADA

habilitar esta opcin


6

alter table alumno add constraint pkalumnocarrera foreign key (carreraid) reference
carrera on delete cascade -> para eliminar la opcin de cascada deshabilitar esta
opcin
al usar este mtodo de cascada debemos tener en cuenta que actualizara todos los
registros que este relacionados en las tablas y haya relacin
si la usamos para eliminar y actualice en las siguientes tablas, hay que tener
cuidado porque si eliminamos el que no era nos creara ms problemas tener que
manualmente ingresar datos que no debimos eliminar
constante 0:
create default dftcero
as
0
constante pi:
create default dftpi
as
3.141539
-------------------------------------------------CLASE 15-07-2014
checks: son condiciones que se ponen en las tablas para restringir informaciones
ejemplo el sexo o el estado civil
alter table <tabla> add constraint <nombre constraint> check (<condicion>)
si una tabla tiene mas de un check la tabla relaciona todos esos check por igual
EN LOS CHECK SOLO EXISTE UNA CONDICION PARA APLICAR
delete: para eliminar registros
delete from <tabla>
un delete incondicional
un delete condicional elimina todos los registros de las tablas
COMO CONDICIONAMOS UN delete:
con el where
-------------------------------------------------------------------------CLASE 17-07-2014
7

go
create rule rnotas as @col between 0 and 100
con esta condicin en cualquier columna que lo apliquemos solo nos aceptaran
nmeros entre 0 y 100
-- todo esto lo ejecutamos 1 por 1, lnea por lnea
go
create rule rnotas as @col between 0 and 100
exec sp_bindrule 'rnotas', 'notas.parcial1'
exec sp_bindrule 'rnotas', 'notas.parcial2'
exec sp_bindrule 'rnotas', 'notas.parcial3'
exec sp_bindrule 'rnotas', 'notas.promedio'
Crear enteros:
--crearemos entegros:
--esta lneas las ejecutamos una por una
create default dftentero as 0
create rule rentero as @col >=0
--tipo de datos entero, procedimiento almacenado:
sp_addtype 'entero', int
sp_bindefault 'dftentero','entero'
sp_bindrule 'rentero','entero'
--creamos un tipo de dato que su valor es cero, no acepta negativos, ya que le
pusimos una regla que los valores sean >=0
create table factura
(

facturaid

entero not null,

clienteid

entero not null,

fecha

datetime not null,

subtotal

entero not null,

impuesto

entero not null,

total

entero not null

)
--en esta tabla hicimos uso del tipo de dato que creamos "entero"
--ahora probemos agregando valores a la tabla:
insert factura (facturaid, fecha) values (1,'2014-01-01')
8

select * from factura


***cuando

no

aplicamos

el

not

null

en

un

campo

creado

de

la

tabla,

automaticamente el programa entiende que permite nulos el campo


***campos autonumericos:
--Campos autonumericos:
create table departamento
(

departamentoid

int identity (1,1),

nombre

varchar(50) not null

)
alter

table

departamento

add

constraint

pkdepartamentoid

primary

key

(departamentoid)
alter table departamento add constraint ukdepartamentonombre unique (nombre)
--para poder manipular columnas de campos que tienen IDENTITY
--automaticamente el identity va agregando el valor incrementando en cada vez
que agreguemos nuevas filas de campos
--desventaja del identity no cuenta registros solo cuenta intentos, cada insert que
agreguemos mal o bien cuenta el intento
insert into departamento values('sistema')
insert into departamento values('contabilidad')
--de arriba hacia abajo ordena
select * from departamento

También podría gustarte