Vous êtes sur la page 1sur 24

TITULO

Estructurando una Base de Datos


y sus Objetos con SQL Server
2012

Programacion Avanzada de Base De Datos


Temas a Tratar
• Definición y Creación de una Base de Datos.
• Trabajando con Tablas
– Creación y eliminación de Tablas
– Campos Calculados.
– Campos IDENTITY.
• Creación de CONSTRAINT
– Primary Key
– Foreign Key
– Default
– Check
¿Qué son las bases de datos?
• Una base de datos es un “almacén” que nos permite guardar grandes
cantidades de información de forma organizada para que luego podamos
encontrar y utilizar fácilmente
• Una base de datos es una colección de información organizada de forma que
un programa de ordenador pueda seleccionar rápidamente los fragmentos de
datos que necesite.
• Las bases de datos tradicionales se organizan por campos, registros y archivos.
Un campo es una pieza única de información; un registro es un sistema
completo de campos; y un archivo es una colección de registros. Por ejemplo,
una guía de teléfono es análoga a un archivo. Contiene una lista de registros,
cada uno de los cuales consiste en tres campos: nombre, dirección, y número
de teléfono.
• Una base de datos (cuya abreviatura es BD) es una entidad en la cual se
pueden almacenar datos de manera estructurada, con la menor redundancia
posible. Diferentes programas y diferentes usuarios deben poder utilizar estos
datos.
Tipos de Base de Datos

Base de Datos del Sistema

master
model tempdb msdb

User3 User2 User1

Base de Datos del usuario


Objetos de Base de Datos
Donde almacenan los datos una BD
Cuando se crea una Base de Datos, se crean 2 archivos, donde se guarda la
información, estos son:

Archivo MDF (Arch. De Datos)= Se usan para almacenar datos y objetos como tablas,
índices, vistas y procedimientos almacenados.

Archivo LDF (Reg. Transacciones) = Contiene toda la información de registro de


transacciones utilizada para recuperar la base de datos. Toda base de datos debe tener al
menos una archivo de registro
Como crear una Base de Datos, mediante un
Script
1ra Forma de Crear una Base de Datos (Valores por Defecto)
Create Database BDPrueba_Def
-- visualizar la estructura de la Base de datos
sp_helpDB BDPrueba_Def
2da Forma de Crear una Base de Datos (Valores parametrizados)
Create Database BDPRueba
On Primary
(NAME = ' BDPRueba _Data',
FILENAME= 'C:\ BDPRueba_Data.Mdf',
SIZE = 15Mb,
MAXSIZE= 30Mb,
FILEGROWTH = 5Mb)
Log On
(NAME= ' BDPRueba _Log',
FILENAME= 'C:\ BDPRueba _Log.Ldf',
SIZE = 5Mb,
MAXSIZE= 10Mb,
FILEGROWTH = 1Mb)
Trabajando con una Base de Datos
-- Error Común, cuando se ejecuta mas de una vez la sentencia de creación
Create Database BDPrueba_Def
-- Database 'BDPrueba_Def' already exists. Choose a different database
name.

-- Para Eliminar una base de datos, es el siguiente formato.

DROP DATABASE [NOMBRE_BD]


-- Regla Principal - no se puede eliminar una BD, si esta se encuentra activa.

-- Activar la base de datos BDPrueba_Def


Use BDPrueba_Def

-- Eliminar la base de datos BDPrueba_Def


DROP Database BDPrueba_Def
Error - Cannot drop database " BDPrueba_Def " because it is currently in use.
Trabajando con una Base de Datos
-- Otro error que se produce siempre es con el nombre una nueva BD
Create Database BDSistemas Prueba -- Error, solo debe ser una palabra
Create Database BDSistemas_prueba – OK

-- verficar al estructura en archivos de la BD


sp_helpDB BDSistemas_prueba

-- Listar todas las base de datos del servidor


-- Todos los datos de las BD del servidor
Select * from Sysdatabases

-- Solo el nombre de las BD del servidor


Select NAME from Sysdatabases

-- Por defecto todos trabajos en la BD Master, activar otra BD


USE BDPrueba_Def -- activar la BD

-- Muestra información de la base de datos activa en este momento


sp_helpFile -- los archivos de la BD actual
Trabajando con Tablas en SQL Server 2012
Tipos de Datos provistos por SQL Server

• Numéricos
– Integer
– Exact numeric
– Approximate numeric
– Monetary
• Date and Time
• Character y Unicode Character
• Binary
• Sql_Variant, Table, uniqueidentifier, timestamp
Crear y Eliminar Tablas
• Crear tablas
Nombre de columna Tipo de dato NULL o NOT NULL
CREATE TABLE Empleados
(codEmpleado int IDENTITY (1,1) NOT NULL,
nomEmpleado varchar(25) NOT NULL,
direcEmp Varchar(50) NOT NULL,
foto image NULL)
)

• Eliminar tablas
DROP TABLE [Nombre_Tabla]

Visualizar la Estructura de la Tabla –


Sp_help nombre_tabla
Adicionar o eliminar columnas
Agregar ALTER TABLE Empleados
ADD sueldo money null

codEmpleado nomEmpleado direcEmp foto sueldo

Eliminar
ALTER TABLE Empleados
DROP COLUMN foto

Listar todas las tablas de una Base de Datos –


Select name from Sys.Objects Where Type ='u'
Crear y Eliminar tipos de datos de usuario
Crear

EXECUTE sp_addtype nuevo_nombre,tipo_dato,null/not null


EXEC sp_addtype codigo, 'char(5)', NOT NULL
EXEC sp_addtype cadena, 'varchar(50)', NULL
EXEC sp_addtype direc, 'varchar(65)', NULL

Eliminar

EXECUTE sp_droptype nombre_tipo_dato


EXEC sp_droptype cadena
Columnas Calculadas
A partir de SQL Server 2000, es posible definir columnas calculadas, Este tipo de
columna se genera de otras columnas de la misma tabla. Son columnas NO
Editables, no se le ingresa valor, Se calcula su valor.

NULL o
Nombre de columna Tipo de dato
NOT NULL
CREATE TABLE DemoCalc
(cod Char(4) NOT NULL,
des varchar(25) NOT NULL,
precio money NOT NULL,
cant integer NULL)
total As (precio * cant)
)
Propiedad Identity
Permite generar valores secuenciales del sistema, este tipo de valores
pueden ser utilizados en columnas que seran empleadas como
PRIMARY KEY.
Para emplear esta propiedad debe especificar un [VALOR DE INICIO]
y [INCREMENTO o DECREMENTO DEL VALOR_INICIO].
Recuerde que este tipo de columnas no son EDITABLES. Solo
trabajando con la sentencia INSERT

Sintaxis
Alter Table NombreTabla
Add Column nomCol Tipo_dato IDENTITY (Vi,Inc) NOT NULL
Creacion de Constraint en una Tabla
Integridad de datos
La integridad de los datos se refiere a la consistencia y exactitud
de los datos que se guardan en una base de datos.
• Tipos de integridad de datos
Integridad de dominio
(columnas)

Integridad de Entidad
(filas)

Integridad Referencial
(entre tablas)
Tipos de Integridad
• Integridad de dominio - Se conoce como el dominio de un atributo al
conjunto de valores aceptables para dicho atributo.
• Integridad de entidad - Una tabla almacena los datos de cada una de las
ocurrencias de una entidad. La entidad (o tabla) requiere que todas sus filas
sean únicas. Esto se garantiza definiendo para cada fila de la entidad un
identificador único (llave primaria).
• Integridad referencial - La integridad referencial garantiza que la relación
entre la llave primaria (en la tabla referenciada) y la llave foránea (en la
tabla de referencia) siempre se mantiene

Forzar integridad de datos


• Integridad declarativa
Criterios definidos en un objeto
Implementar usando constraints
• Integridad por procedimientos
Forzar scripts
Implementar triggers y stored procedures
Tipos de Constraint (Restricciones)
CONSTRAINT PRIMARY KEY
• Solo un CONSTRAINT PRIMARY KEY por tabla
• Los valores deben ser únicos
• Los valores NULL no están permitidos
• Crea un índice sobre las columnas especificadas

ALTER TABLE nombre_tabla


ADD CONSTRAINT PK_nombre_tabla
PRIMARY KEY( columnaX, columnaP, … )

Donde:
PK_nombre_tabla es el nombre de la restricción de la clave primaria. Se
recomienda definir como nombre de la clave primaria, con el prefijo PK_. Si
no se especifica el nombre de la restricción, SQL Server le asigna un nombre.
columnaX, columnaP, es la columna o combinación de columnas que se define
como clave primaria. Las columnas involucradas no deben permitir valores nulos,
y además, no deben tener valores duplicados.
CONSTRAINT FOREIGN KEY
Es la que controla la relación Integral de las diferentes tablas que componen
la base de datos. Sus principales reglas son:
• Deben referenciar a un constraint PRIMARY KEY
• Proveen integridad referencial
• No crean índices
ALTER TABLE nombre_tabla ADD CONSTRAINT FK_nombre_tabla_tabla_referenciada
FOREIGN KEY( columnaX, columnaP, … ) REFERENCES tabla_referenciada

Donde:
FK_nombre_tabla_tabla_referenciada es el nombre de la restricción clave
foránea. Se recomienda definir como nombre de la clave foránea con el
prefijo FK_. Si no se especfica el nombre de la restricción, SQL Server le asigna un
nombre.
columnaX, columnaP, es la columna ó combinación de columnas que se define
como clave foránea.
tabla_referenciada es el nombre de la tabla primaria con la que se
relaciona la tabla secundaria que tiene la clave foránea.
CONSTRAINT DEFAULT
• Aplicado sólo para sentencias INSERT
• Sólo se acepta un DEFAULT por columna
• No puede ser usado con la propiedad IDENTITY

ALTER TABLE nombre_tabla


ADD CONSTRAINT DF_nombre_tabla_nombre_columna
DEFAULT valor_predeterminado FOR columnaX

Donde:
DF_nombre_tabla_nombre_columna es el nombre de la restricción valor
predeterminado o DEFAULT. Se recomienda definir como nombre de la
restricción, el nombre de la tabla seguido del nombre de la columna afectada,
todo con el prefijo DF_. Si no se especifica el nombre de la restricción, SQL Server
le asigna un nombre.
valor_predeterminado es el valor que se almacena en columnaX cuando al
insertar una fila no se especifica el valor para esa columna.
columnaX es la columna a la que se aplica la restricción.
CONSTRAINT CHECK
• Son empleados con sentencias INSERT y UPDATE
• Pueden referenciar otras columnas en la tabla

ALTER TABLE nombre_tabla


ADD CONSTRAINT CK_nombre_tabla_nombre_columna
CHECK( condición )

Donde:
CK_nombre_tabla_nombre_columna es el nombre de la restricción regla
de validación o CHECK. Se recomienda definir como nombre de la
restricción, el nombre de la tabla seguido del nombre de la columna
afectada, todo con el prefijo CK_. Si no se especifica el nombre de la
restricción, SQL Server le asigna un nombre.
Condición, es la expresión que determina cómo debe ser el valor a ingresar
en la columna afectada por la restricción.

Vous aimerez peut-être aussi