Вы находитесь на странице: 1из 38

Taller de Base de Datos

Sesión 02
Creación de Tablas
Implementación de Restricciones

Computación e Informática
2017 - I Prof.: Yuri José Pando Fernández
Logro de la Sesión
Al terminar la unidad, los alumnos construirán
una base de datos relacional utilizando el
gestor de base de datos SQL Server 2014 y los
comandos del Lenguaje de Definición de
Datos (DDL), asegurando la integridad de los
datos mediante el empleo de restricciones
tomando como caso un proceso de negocio
real.
Temas a tratar
• Creación de tablas
Título Presentación
• Implementación de restricciones
PRIMARY KEY
FOREIGN KEY
CHECK
UNIQUE
DEFAULT
Tabla: Definición
• Colección de datos sobre una
entidad (Persona, Lugar,
Cosa) específica, que tiene un
número discreto de atributos
designados (por ejemplo
cantidad o tipo).

• Las tablas están en el corazón


de SQL Server y del modelo
relacional en general.
Tabla: Creación
• Para crear una tabla debemos especificar :
• El nombre que le queremos asignar
• El nombre de cada campo
• El tipo de dato de cada campo
• Características de cada campo
• Tener en cuenta el estándar para crear objetos
Tabla: Creación
Nombre de tabla
Create Table Empleado(
Campo Tipo de dato Característica
codEmp char(8) not null,
nombreEmp varchar(30) not null,
sexoEmp char(1) Null
)

• El nombre de la columna debe ser único dentro de la tabla; sin embargo, se


puede repetir en otras tablas dentro de la misma base de datos.

• El tipo de dato debe ser alguno de los ofrecidos por SQL Server. También se
pueden definir tipos de datos de usuario.

• Not Null indica que dicha columna requiere la asignación de un valor distinto
de ‘null’. Null indica que la columna acepta ‘null’ como un valor.
Tabla: Sintaxis DDL

1. CREATE TABLE.- Crea un tabla

2. ALTER TABLE.- Modifica la estructura de una tabla

3. DROP TABLE.- Elimina una tabla y sus datos. Es


necesario que la tabla no tenga dependencias
asociadas.
Ejemplo :
Relaciones entre Tablas

• Las relaciones sirven para poder utilizar datos


procedentes de otras tablas como si formaran parte
de la tabla en la que se esté trabajando.

• Establecer una relación entre dos tablas equivale a


establecer una unión entre ellas, para poder hacer
esto se debe dar una condición muy concreta: en las
dos tablas tiene que haber un campo que contenga
el mismo dato.
Relaciones entre Tablas: 1 a 1

• Se crean si ambas tablas tienen una llave


primaria o restricción única.

• La clave principal y externa se indican con una


llave
Relaciones entre Tablas: 1 a M

• Una relación de uno a varios sólo se crea si


una de las columnas relacionadas es una
clave principal o tiene una restricción única .
• El lado de la clave principal de una relación
de uno a varios se indica con un símbolo de
llave, mientras que el lado de la clave externa
de una relación se indica con un símbolo de
infinito
Relaciones entre Tablas: 1 a M

• A continuación se muestra una relación de


uno a muchos en una relación recursiva.

• Un Contrato puede ser la extensión de otro


contrato y un contrato puede tener
muchas extensiones.
Relaciones entre Tablas: M a M

A nivel físico, una relación “Muchos a Muchos” se representa como 2 relaciones


“Uno a Muchos”.

MODELO LÓGICO

m m
se
DEPARTAMENTOS registra
CONTRATO

Cod_Edif Area_Tot_Dep Cod_Cont


Cod_Dep Fec_Ini_Alq Fec_Fin_Alq
Relaciones entre Tablas: M a M

MODELO FÍSICO

Se define una tabla intermedia (que une a las relacionadas) la cual tiene una PK
(Primary Key) conformada por las columnas PK de las otras dos tablas.
Integridad de Datos: Restricción

Restricciones

Data Base Owner (dbo) BASE DE DATOS


Integridad de Datos: Restricción

Una restricción consiste en la definición de una


característica adicional que tiene una columna
o una combinación de columnas, suelen ser
como:
• Valores no nulos (campo requerido)
• Definición de índice sin duplicados
• Definición de clave principal y clave foránea
• Definición de validación del dominio de las
columnas
Integridad de Datos: Restricción

Son 7 restricciones o constraint a nivel del motor


de base de datos.

1. PRIMARY KEY. Clave Primaria.


2. FOREIGN KEY. Clave externa.
3. UNIQUE. Unicidad de datos.
4. NULL. Valor vacío.
5. DEFAULT. Valor predeterminado.
6. IDENTIDAD. Correlativo automático.
7. CHECK. Alternativa de valores.
Constraint: Primary Key

• Valor que identifica de manera única a cada FILA


• El valor puede ser el de un campo (simple) o la
combinación de varios campos (compuesta)
• Los campos que identifican al Primary Key deben ser
Not Null
• Restricción:
– No permite valores nulos.
– No permite valores duplicados.
Constraint : Primary Key
ENTIDAD DISTRITOS
ID_DISTRITO NOM_DiSTRITO
L01 CERCADO DE LIMA
L02 LA VICTORIA
L03 LINCE

• Se define un Primary Key por TABLA


• Se puede definir para una o más
COLUMNAS
• Índice de tipo CLUSTERED: La tabla está
ordenada físicamente por su índice
Constraint : Foreign Key

• Un Foreign Key permite definir una clave externa, que es


una columna o combinación de columnas, que se utiliza
para establecer y exigir un vínculo entre los datos de dos
tablas.

• Evidencia una relación física entre dos entidades

• En una relación “Uno a Muchos” la llave del lado “Uno”


es referenciada desde el lado “Muchos”
Constraint : Foreign Key
ID_DISTRITO DIS_NOMBRE
Tabla DISTRITOS
L01 CERCADO DE LIMA
L02 LA VICTORIA
L03 LINCE

ID_CLIENTEID_DISTRITO CLI_RAZON
9871899 L01 BIMBO S.A.
Tabla CLIENTES
9871900 L01 LA FABRIL SRLTDA.
9871901 L02 CREDICORP

• Antes de registrar un dato en Clientes, debe


haber sido registrado en Distritos.
• Antes de borrar un dato de Distritos, no debe de
existir un dato en Clientes.
Constraint : Foreign Key

Alter Table Estado


Add Primary Key (Cod_Est)

Llave primaria
Alter Table Usuario
Add Primary Key (Cod_Usua)

Llave foránea

Llave primaria
Alter Table Usuario
Add Foreign Key (Cod_Est)
References Estado
Constraint : Permitir valores NULL

• La nulabilidad de una columna determina si las filas de


una tabla pueden contener un valor NULL en esa
columna.
• Un valor NULL no es lo mismo que cero (0), en blanco o
que una cadena de caracteres de longitud cero, como "".
• NULL significa que no hay ninguna entrada. La presencia
de un valor NULL suele implicar que el valor es
desconocido o no está definido.
Constraint NULL
ENTIDAD : tb_Distrito
ID_DIST NOM_DIST CAT_DIST
L01 CERCADO DE LIMA B
L02 LA VICTORIA (NULL)
L03 LINCE (NULL)

• Por defecto todo DATO ES OBLIGATORIO.


• Se pueden actualizar los datos (null) en otro momento de
la edición.
• ¿Qué dato me puede faltar cuando registro una fila nueva?
Constraint UNIQUE

SIMPLE COMPUESTO
Tabla: tb_Pais Tabla : tb_ClientexDistrito

idPais nom_pais
L01 Peru
ID_DIST
ID_CLI
L02 Chile L01 808098
L03 Argentina L01 808099
L03 808098

UN_DISNOMBRE

UN_DISTRITO_CLIENTE
Constraint DEFAULT
• Se asigna un valor predeterminado a la columna.
• En caso de dejarse vacía al momento de la
creación de la fila se registra dicho valor.

DF_CERO : Si no se registra un
valor para un precio este será 0
(CERO).
Constraint CHECK
• Las restricciones CHECK exigen la integridad del dominio
mediante la limitación de los valores que puede aceptar una
columna a partir de una expresión lógica que no se basa en
datos de otra columna.
• Algunas columnas tienen un rango de valores válidos.
• Este rango puede ser un conjunto de valores estáticos :
(‘MASCULINO’,’FEMENINO’)
• Este rango puede ser una condición de validez : =,<,>,>=,<=.
• Este rango puede tener relación con otras entidades.
Constraint CHECK
ENTIDAD : tb_.PedidosDeta
idPedido Cantidad
001-5698 4
001-5699 20
001-5700 1

• Si la cantidad que se vende debe ser siempre


mayor que 0, pero menor que 100:
• Expresión en Transact/SQL:
(Cantidad > 0 and Cantidad < 100)
IDENTITY

Es una columna se Una entidad puede


convierte en un tener solo una columna
correlativo automático; Identidad.
debe ser de tipo En algunos casos puede
numérico entero; debe coincidir con el
ser de solo lectura PRIMARY KEY.
IDENTITY

Debe tener un Valor Inicial y un. Incremento


Tabla: tb_PedidosCabe

idPedido FechaPedido MontoPedido


5 01/08/2000 8900.00
10 02/08/2000 780.00
15 02/08/2000 450.00

IDENTIDAD : 5 : 5 (Inicio e Incremento)


EJERCICIOS

1. Cree la base de datos BD_SUSCRIPCIONES


en la carpeta C:\PRODUCCION\ con la
siguiente configuración:
• Archivo de datos: Un tamaño inicial de 20MB,
máximo de 40MB y un factor de crecimiento de
5MB.
• Archivo de transacciones: Un tamaño inicial de
4MB, máximo de 20MB y un factor de crecimiento
de 10%.

2. Active la base de datos BD_SUSCRIPCIONES


BD_SUSCRIPCIONES
3. Cree las tablas mostradas usted defina los tipos de datos :
EJERCICIOS
CONSTRAINS
1. Los países válidos deben ser PERU, CHILE y ARGENTINA.
2. El PORC_DSCTO_CLI debe ser mayor o igual a 0.
3. El TIEMPO_ENVIO por defecto es 1.
4. La FEC_INICIO_SUSC debe ser por defecto igual a la fecha del día
de hoy.
5. Las descripciones de los envíos, DESC_ENVIO, deben ser únicos.
EJERCICIOS
CONSTRAINS
1. Los países válidos deben ser PERU, CHILE y
ARGENTINA. CHECK
2. El PORC_DSCTO_CLI debe ser mayor o igual a 0.
CHECK
3. El TIEMPO_ENVIO por defecto es 1. DEFAULT
4. La FEC_INICIO_SUSC debe ser por defecto igual a la
fecha del día. DEFAULT
5. Las descripciones de los envíos, DESC_ENVIO, deben
ser únicos. UNIQUE
ACTIVIDAD PROPUESTA
Base de datos VENTAS
EJERCICIOS
CONSTRAINS
1. Los stocks de los productos deben ser mayor o igual
a 0. CHECK
2. Los precios de venta se encuentran entre 1 y 1,000.
CHECK
3. La fecha de la boleta por defecto es la fecha del día.
DEFAULT
4. Las descripciones de los productos deben ser
únicos. UNIQUE
GRACIAS

Вам также может понравиться