Está en la página 1de 40

BASE DE DATOS

AVANZADA I
UNIDAD I: BASE DE DATOS Y TABLAS
Definicin de base de datos

ORGANIZADOS Y RELACIONADOS
CONJUNTO DE DATOS ENTRE S

SISTEMAS DE INFORMACIN DE UNA EMPRESA


Sistema de gestin de base de datos

Es un software muy especfico, dedicado a servir de


interfaz entre la base de datos, el usuario y las
aplicaciones que la utilizan. Se compone de un
lenguaje de definicin de datos, de un lenguaje de
manipulacin de datos y de un lenguaje de consulta.
SQL Server 2014

Microsoft SQL Server es un sistema para la gestin de bases de


datos producido por Microsoft basado en el modelo relacional. Sus
lenguajes para consultas son T-SQL y ANSI SQL. Microsoft SQL
Server constituye la alternativa de Microsoft a otros potentes
sistemas gestores de bases de datos como son Oracle, PostgreSQL
o MySQL.
Transact - SQL
Es el lenguaje de programacin usado para SQL Server.

Permite:
Tener acceso a la informacin
Realizar bsquedas
Actualizar y administrar sistemas de bases de datos
Relacionales
Autenticacin en SQL Server

AUTENTICACIN

SQL Server
comprueba la
Grupo o usuario conexin de confianza
de Windows Server Windows Server
SQL
O BIEN Server

SQL Server
comprueba el nombre
Cuenta de inicio de y la contrasea
sesin de SQL Server
Conexin en SQL Server

servidor

Autenticacin

Usuario

sql
Password del
Usuario
Tipos de Base de Datos en SQL Server

Bases de datos del sistema

master
model tempdb msdb distribution

pubs Northwind User1

Bases de datos de usuario


Bases de datos Snapshot

Un Snapshot provee una imagen de solo lectura de una Base de Datos sin incluir
las transacciones no finalizadas. Estas transacciones son eliminadas para evitar que
ejecuten cuando la Copia de Seguridad es restaurada de nuevo.
A diferencia de restaurar un backup, con el fin de llevar una base de datos a un
estado previo, un snapshot es ms fcil y rpido de aplicar.
Por ejemplo, dependiendo del tamao de la base de datos, una restauracin desde
un backup (.bak) puedes demorar 30 minutos mientras que con un snapshot esta
nicamente emplea 1 o 2 minutos.
Usar las snapshots puede ser de gran utilidad cuando nos encontramos trabajando
en procesos en los que es necesario aplicar cambios en la estructura de la base de
datos y se requiere rpidamente volver a un estado anterior.
Los snapshot tambin pueden ser usados para cuando se aplican cambios crticos
por lotes en una base de datos productiva y se quiere volver a un punto anterior
rpidamente sin tener que restaurar backup ya que este requiere ms tiempo para
ejecutarse.
Estructura de Base de Datos en SQL Server

Archivo de datos
Archivo fsico donde se
almacenan los datos de
manera permanente.

Archivo de registro
Archivo fsico donde se
almacena los datos
temporalmente
Consideraciones ubicacin
Tipos de archivos
Archivos de datos
Primario (*.MDF)
Secundario (*.NDF)
Archivo de registro(*.LDF)
Ubicacin de los archivos
Ubicar los archivos en diferentes disco para
mejora en el desempeo
Almacenamiento de datos
Archivos de datos
Almacenamiento de datos
Archivo de Registro
Creacin de la Base de Datos

CREATE DATABASE database_name


[ ON
[ PRIMARY ] [ filespec [, n] ]
[ FILEGROUP filegroup_name [DEFAULT]
filespec [, n] ] [, n] ]
[ LOG ON
[filespec [, n] ]
[ COLLATE collation_name ] ]
Creando una Base de Datos (por defecto)

Create Database BD_Negocios

PRIMARY

BD_Negocio.mdf BD_Negocio_log.ldf
(Archivo de datos) (Archivo de Log)
Creando una Base de Datos (personalizada)

Create Database BD_Negocios2


On (
Name = ' BD_Negocios2_Data',
Filename = 'D:\Data\BD_Negocios2_Data.mdf',
Size = 5MB,
Maxsize = 15MB, PRIMARY
Filegrowth = 50% BD_Negocios2_Data.mdf
(Archivo de datos)
)
Log on (
Name = 'BD_Negocios2_Log', BD_Negocios2_Log.ldf
(Archivo de Log)
Filename = 'D:\Data\BD_Negocios2_Log.ldf',
Size = 4MB,
Maxsize = 8MB,
Filegrowth = 2MB
)
Qu son los Filegroups?

Son una capa intermedia de objetos, que se encargan


de "mapear" cada archivo de datos a un determinado
archivo de base de datos.
Cuando creamos una nueva tabla (entre otros objetos),
podemos indicarle en que FILEGROUP ser creado el
objeto mediante la clausula ON, sino indicamos ningn
FILEGROUP los objetos son creados en el
FILEGROUP por defecto.
Creando una Base de Datos (Filegroups)

Create Database BD_Ejemplo


On
PRIMARY (file.mdf )
FILEGROUP Gestion
(file.ndf ), ( file.ndf)
Log on (file.log)
Creando una Base de Datos (Filegroups)

create database bd_ejemplo


on
primary
(name = ejemplo_data, filename = d:\...\ejemplo_data.mdf')
'
filegroup grupo1
(name = ejemplo_hist1, filename = 'd:\...\ejemplo_hist1.ndf'),
(name = ejemplo_hist2, filename = 'd:\...\ejemplo_hist2.ndf')
log on
(name = ejemplo_log, filename = d:\...\ejemplo_log.ldf')
create database bd_prueba
on primary
(name= 'prueba01', filename = 'd:\prueba01.mdf, size = 8mb, maxsize= 1gb,
filegrowth =10mb),
filegroup grupo1
(name= 'prueba02', filename = 'd:\prueba02.ndf', size = 4mb, maxsize= 1gb,
filegrowth =10mb),
filegroup grupo2
(name= 'prueba03', filename = 'd:\prueba03.mdf', size = 4mb, maxsize= 2gb,
filegrowth =10mb)
log on
(name ='prueba04', filename = 'd:\prueba04.ldf', size = 4mb, maxsize= 50,
filegrowth =10mb)
Adicionando Filegroups a la BD

Agregando FileGroups en la Base de Datos


alter database bd_ejemplo add filegroup Grupo2
alter database bd_ejemplo add filegroup Grupo3

Agregando archivos secundarios a los FileGroups


alter database bd_ejemplo add file (name = data1, filename =
'd:\data1.ndf', size = 1mb, maxsize = 10mb, filegrowth = 1mb) to
filegroup data_1

alter database bd_ejemplo add file ( name = data2, filename =


'd:\data_2.ndf', size = 1mb, maxsize = 10mb, filegrowth = 1mb) to
filegroup data_2
Agregar archivos de datos a una base de datos

alter database bd_prueba


add file
(name = prueba05, filename =
unidad\prueba05.ndf', size = 5mb,
maxsize = 100mb, filegrowth = 5mb )
Comandos adicionales

Listar las Bases de Datos


SELECT * FROM sys.sysdatabases

Visualizar la estructura de la Base de Datos


SP_HELPDB BD_Negocios

Listar los archivos FileGroups de la Base de Datos


SELECT * FROM sys.sysfilegroups
Creacin de Tablas

Es el elemento principal
Coleccin de datos
de la base de datos, ya
que all se registra la sobre una entidad
informacin que se especfica, que tiene
quiere gestionar. Est un nmero discreto
compuesta, por filas y de atributos
columnas. designados (por
ejemplo cantidad o
tipo).
Sintaxis para crear una tabla
Nombre de tabla
Create Table tb_Empleado(
Campo Tipo de dato Caracterstica
cod_Emp Char(8) Not Null,
nom_Emp Varchar(30) Not Null,
sex_Emp Char(1) Null
) [ON FILEGROUP]

El nombre de la columna debe ser nico; sin embargo, se puede repetir


en otras tablas dentro de la misma base de datos.
Tipo de dato ofrecido por SQL Server o tipos de datos de usuario.
Not Null requiere la asignacin de un valor.
ON FILEGROUP, indica en que FileGroup se guardar, por defecto se
almacena en el FILEGROUP PRIMARY
Modificando la estructura de una tabla

Para agregar una o varias columnas a una tabla se


ejecuta el comando ALTER TABLE <tabla> ADD.
cod_Emp nom_Emp sex_Emp

Alter Table tb_Empleado


Add sue_Emp Numeric(8,2) Null

cod_Emp nom_Emp sex_Emp sue_Emp


Modificando la estructura de una tabla

Para eliminar una o varias columnas a una tabla se ejecuta


el comando ALTER TABLE <tabla> DROP COLUMN.

cod_Emp nom_Emp sex_Emp sue_Emp

Alter Table tb_Empleado


drop Column sex_Emp

cod_Emp nom_Emp sue_Emp


Eliminando una tabla

Para eliminar una o tabla se ejecuta el


comando DROP TABLE.

Drop Table tb_Empleado


Crear una tabla en un filegroup

1. Crear una tabla en un Filegroup

Create table T_Ejemplo (campo1 int identity primary


key, Campo2 nvarchar(30)) on Gestion1
Schema de Base de Datos
Qu es un Schema?
Entidad independiente, contenedor de objetos distintos
del usuario que ha creado esos objetos.
Un esquema slo puede ser propiedad de un usuario a
la vez, pero un solo usuario puede ser dueo de
muchos esquemas.

Esquema por defecto


El esquema predeterminado es el primer esquema que
se busca al resolver los nombres de objeto no
calificadas. Si no hay ningn esquema predeterminado
se define para una cuenta de usuario, SQL Server
asumir dbo.
Ventajas de un Schema

Proporcionan la oportunidad de simplificar la administracin de la


seguridad, backup y restauracin, y administracin de base de
datos.
Los esquemas facilitan un espacio de nombres (namespace), por
lo que tambin nos permitirn organizar y agrupar nuestros
objetos y tambin facilitan la configuracin de seguridad
(GRANT, DENY, REVOKE) al poder conceder permisos sobre
todos los objetos contenidos en un esquema mediante una nica
instruccin.
A travs de esquemas, un DBA puede controlar el acceso a los
objetos fundamentales que de otra manera estaran abiertos a
los cambios potencialmente destructiva por los usuarios.
Sintaxis para crear un Schema

CREATE SCHEMA schema_name

[AUTHORIZATION owner_name

| schema_name AUTHORIZATION owner_name


Sintaxis modificar un Schema

ALTER SCHEMA <Schema>


TRANSFER <Schema>.<Tabla>

Esta sintaxis se utiliza para mover elementos que


pueden protegerse entre esquemas en la misma base de
datos. Para cambiar o quitar un elemento que puede
protegerse dentro de un esquema, utilice el ALTER o
DROP especfica para ese elemento.
Aplicacin de schemas (BD: pedidos)

a. Creacin de esquema simple


create schema contabilidad

b. Creamos esquemas con autorizacin al dbo


create schema venta authorization dbo
create schema compra authorization dbo
create schema rrhh authorization dbo

c. Listar esquemas
select * from sys.schemas where principal_id=1

d. Asignarle uno de los esquemas creados a las tablas


alter schema venta transfer cliente
alter schema rrhh transfer empleado
Permisos
CASO N 01

1. En una empresa se desea disear una BD llamada Comercializacin


con las siguientes condiciones
BD Archivos T. Inicial Grupo Tabla
Comercializacion Comercializacion.mdf 10Mb Gestion

Comercializacion.mdf 5Mb Seguridad

Comercializacion.ndf 10Mb Gestion Ejemplo1

Comercializacion_1 Comercializacin_1.mdf 5Mb Primary (defecto) Ejemplo1

Comercializacin_1.ndf 5Mb Gestion Ejemplo1


RESOLVER

1. Pudo crear el Archivo Comercializacion.mdf en el grupo


Gestin y Seguridad? Si/No. Porqu?
2. Pudo crear el Archivo Comercializacion1.ndf en el grupo
Gestion? Si/No. Porqu?
3. Es posible que al crear la tabla Ejemplo1 en el grupo
Primario y Gestin de la base de datos
Comercializacin1? Si/No. Porqu?
Base de Datos
Tarea 01
Resolver el Laboratorio_tema1. Adjuntar las
pantallas de solucin o un video.