administracion de base de datos

50

Upload: himbher-ls

Post on 14-Jan-2016

11 views

Category:

Documents


0 download

DESCRIPTION

Administración de Bases de SQL Server desde la creación de Bases de Datos

TRANSCRIPT

7/18/2019 Administracion de Base de Datos

http://slidepdf.com/reader/full/administracion-de-base-de-datos-56970afe138c6 1/50

7/18/2019 Administracion de Base de Datos

http://slidepdf.com/reader/full/administracion-de-base-de-datos-56970afe138c6 2/50

ADMINISTRACIÓN DE BASE DE DATOS

7/18/2019 Administracion de Base de Datos

http://slidepdf.com/reader/full/administracion-de-base-de-datos-56970afe138c6 3/50

FUNDAMENTOS DE BASE DE DATOS

SISTEMA ADMINISTRACIÓN DE BASE DE DATOS

Introducción

En la época actual, la información y su tratamiento automatizado no solo son necesaria para el

eficiente funcionamiento de toda organización, sino que se ha convertido en uno de los principales

elementos de competitividad. En este contexto, el almacenamiento de la información (en forma de

datos) y su disponibilidad para las aplicaciones de negocio se hace indispensable para la normal

operación y funcionamiento de cualquier empresa. El personal que opera las diferentes aplicaciones

rutinarias interacta con la !"ase de #atos$.

%a gerencia, que evala y controla la eficiencia de estas operaciones también requerir& de

información, de manera de planificar nuevas tareas y'o corregir aquellas que no vayan con la

estrategia de negocio planteada. su vez, las personas que decidan las estrategias de negocio(nuevos mercados, nuevas lneas de negocio, simple supervivencia, etc.) también requieren

información para toma de decisiones. *e dice que el principal activo de una organización es su

persona.

Entonces podra decirse que el segundo en importancia seria su información, aunque probablemente

y en muchos casos esta ltima sea m&s difcil de reemplazar que le primero.

+a sea que la base de datos sea usada para apoyar alguno de los niveles organizacionales

comentados o todos, debe elegirse la tecnologa adecuada que garantice su permanente y eficiente

disponibilidad, as como que facilite el desarrollo de aplicaciones y la administración de la base de

datos misma por parte del personal de aplicaciones del &rea de sistemas de la organización.

Dato

#efinición de dato encontrada en un diccionario !#ato ntecedente que permite llegar mas

f&cilmente al conocimiento de una cosa$. -equeo %arousse

El dato es la representación de un mensa/e.

Entonces la definición se da de un contexto donde existe comunicación

• Entre persona.• Entre un ob/eto y persona(s).• Entre ob/etos.

El dato, al ser una representación (que tendr& que ser interpretada) contiene caractersticas de

ob/etividad. En el caso de ser personas las que interpreten un dato, existir& la posibilidad de

sub/etividad al momento de la interpretación (conclusión de la información).

Información

0nformación significado percibido al recibir un mensa/e. %a percepción humana es, por naturaleza,

sub/etiva. -or lo tanto la información referida a un mismo dato tendr& la posibilidad de ser resultado

de varias interpretaciones.

*i se tienen varias persona que interpretaran un mismo dato o con/unto de datos, deber& existir un

acuerdo para la forma de interpretarlos (obtener el significado o información). -ara la obtención de

información es necesario un proceso El proceso mental de interpretación o un proceso automatizado

7/18/2019 Administracion de Base de Datos

http://slidepdf.com/reader/full/administracion-de-base-de-datos-56970afe138c6 4/50

que de forma y significado a los datos accedidos en algn medio. 1tro aspecto importante es que

muchas veces el hecho de contar con m&s datos o con datos colaterales al estrictamente requerido

permite un me/or proceso para la obtención de información. 1tra definición 0nformación, es el grado

de disminución de la incertidumbre sobre algo.

Base de Datos2na base de datos es un con/unto de datos organizados de tal manera que pueda extraerse

información.

En esta definición general no se hace mención al medo donde residir&n los datos ni la forma o

tecnologa de acceso a los mismos.

3uchas veces el solo hecho de cambiar de medio de almacenamiento (como en el e/emplo mostrado)

!obliga$ a un mnimo de organización. %a organización de los datos persigue el ob/etivo que estos

puedan ser compartidos por varios usuarios.

Sistema de Administración de Base de Datos

#"3* por sus siglas en 0ngles (#ata"ase 3anagement *ystem). *oft4are que administra el acceso a

los datos, permitiendo su almacenamiento, consulta y actualización. 5iene la capacidad de responder 

a mltiples usuarios accediendo en forma concurrente a los dato. -rovee facilidades para la

administración del con/unto como toma de respaldos y recuperación.

El #"3* permite tener los datos de toda la organización (incluida la información de sus principales

entidades) de forma integrada, de manera que estos se encuentren disponibles a consultas o

actualizaciones de transacciones realizadas por el personal de la empresa, clientes de la misma, a

través de aplicaciones de un sistema de información o directamente a través de un lengua/e que sea

!comprendido$ por el #"3*.

Este lengua/e, en el caso de bases de datos relacionales (6"#3*) es el *7%, que se vera mas

adelante. El lengua/e no solo debe de permitir la comunicación para acceder los datos, sino par 

definirlos. ctualmente los soft4are 6"#3* se encuentran en diversas plataformas, aunque son

desarrollados para arquitecturas tanto mainframe como cliente'servidor (tema tocado mas adelante)

corriendo en el !bac8 end$ (host o servidor) usando la infraestructura de red disponible para la

comunicación con los usuarios.

CARACTERISTICAS Y FUNCIONES REACIONADAS DE OS DBMSs

Esca!a"i!idad

9apacidad de me/orar con el incremento de recursos invertidos (generalmente los recursos pueden

medirse en dinero). 2n #"3* debe de permitir inversión de recursos de medida que se requiera

mayores y'o me/ores servicios de la base de datos. Esta situación generalmente se presenta para un

me/or aprovechamiento de los sistemas de información, por crecimiento del negocio'organización, u

otros factores.

Rendimiento

7/18/2019 Administracion de Base de Datos

http://slidepdf.com/reader/full/administracion-de-base-de-datos-56970afe138c6 5/50

9aractersticas de realizar las tareas involucradas como de recuperación de datos, actualización,

respuesta a la concurrencia de muchos usuarios, etc., de una manera eficiente. *in embargo el

rendimiento de un #"3* depende de otros factores como la plataforma donde corre.

#orta"i!idad9aracterstica de permitir transportar de una manera transparente o f&cil un producto de una

plataforma a otra. En el caso de los #"3*, no solo es la consideración de portabilidad del producto

(el soft4are mismo) sino los datos que la base de datos administra.

Uni$ersa!idad

*e refiere a los mltiples tipos de datos que puede mane/ar un #"3*, los que actualmente se

denominan datos multimedia.

Dis%oni"i!idad &#ermanente e ininterrum%ida'

 ctualmente es uno de los factores cruciales, pues el servicio de base de datos apoya a las

aplicaciones crticas de la operativa de los negocios.

Esca!a"i!idad (ori)onta!

9apacidad de incrementar la cantidad de usuarios de la base de datos o la cantidad de estaciones

con conexión a base de datos. 2na de las diferencias entre los gestores de base de datos para

microcomputadora y #"3* para servidores es precisamente la capacidad de los segundos para

escalar horizontalmente. :eneralmente el costo de licencia de un #"3* est& relacionado con lacantidad de usuarios concurrentes. Es as que si bien un producto particular puede proveer esta

facilidad, existir& un costo asociado.

Esca!a"i!idad *ertica!

9apacidad para incrementar el tamao y'o la potencia del servidor y as obtener me/oras con mismo

producto.

Tres Ni$e!es de Ar+uitectura de Datos

E! Ni$e! E,terno

5ambién llamado nivel de visión o !subesquemas$ (segn 3artin) es el nivel m&s cercano al

usuario final, o sea es la forma como estos perciben los datos. :eneralmente a un usuario le

interesa solo una parte de toda la base de datos y no le interesa los aspectos !técnicos$

deseando solo indicar 72E datos son los que requiere.

E! Ni$e! Conce%tua!

5ambién llamado !Esquema$ (;. 3artin) describe la totalidad de los datos de la base de datos.

En este nivel interesa 92%E* son los datos necesarios, as como las relaciones entre estos.

Este nivel es visible a usuarios profesionales de *.0., desarrolladores y por supuesto al #.

Ni$e! Interno

7/18/2019 Administracion de Base de Datos

http://slidepdf.com/reader/full/administracion-de-base-de-datos-56970afe138c6 6/50

5ambién llamado nivel fsico, describe 9<31 son almacenados los datos en la base de

datos. 2na parte de este nivel debe de ser visible el #" y totalmente visible a quienes

desarrollan soft4are del tipo #"3*s. En este nivel es importante el conocimiento (visibilidad)

del ambiente operativo donde correr& el soft4are "#3*.

C!iente-Ser$idor Es la actual arquitectura para sistemas con bases de datos basada en la distribución de

aplicaciones y'o datos en una red de computadoras, conocido por sus siglas 9'*, también es

sinónimo de computación abierta que permite utilización de hard4are variado, sin

dependencia de un solo proveedor.

Ti%os de Ser$idores

 

*ervidor de rchivosEl cliente (tpicamente una -9) requiere archivos a través de la red. *e requier mucho

intercambio de mensa/es. #e utilidad para repositorios de diferentes tipos de archivos

como documentos, im&genes, etc. 

*ervidor de "ase de #atosEl cliente enva requerimientos en *7%, la consulta u operación asociada es

e/ecutada por el soft4are (#"3*) que corre el servidor devolviendo los resultados y'o

código de error correspondientes. Es en el mismo equipo servidor donde se

encuentran almacenados los datos. 

3onitor de 5ransaccionesEl cliente invoca procedimientos (módulos) almacenados en el servidor, que se

componen de varias sentencias *7% todas las cuales ser&n exitosas o fracasaran

como una sola unidad (transacción). Esta funcionalidad (de procedimientos

almacenados) es provista por productos #"3* modernos (como por e/emplo el #"=

y 0"3) sin embargo para la función del control minucioso de transacciones en

ambientes fuertemente concurrentes (sistemas 1%5-), existe soft4are especializado

denominado monitores de transacciones.  :roup4are

Este tipo de servidores mane/an información semi estructurada como texto,

im&genes, correo boletines y el flu/o de traba/os (!4or8flo4$). %otus >otes es el lder 

mundial en este tipo de soft4are.  *ervidor de 1b/etos

%as aplicaciones son escritas como un con/unto de ob/etos que se comunican. %os

ob/etos del cliente se comunican con los del servidor a través de !16"s$ (1b/ect

6equest "ro8ers).  *ervidor ?eb

%os clientes se comunican a través de protocolo @55- para que el servidor provea los

requerimientos correspondientes (un documento @53% por e/emplo).

Ti%os de a%!icaciones

%as aplicaciones cliente'servidor también pueden ser clasificadas (diferenciadas) de acuerdo

a como es distribuido el proceso entre el cliente y el servidor.

7/18/2019 Administracion de Base de Datos

http://slidepdf.com/reader/full/administracion-de-base-de-datos-56970afe138c6 7/50

• E! c!iente !i.ero (o servidor pesado) distribuye m&s funciones en el lado del servidor.

"a/o este esquema se trata de minimizar el tr&fico entre el cliente y servidor (tr&fico

en la red) creando m&s abstractos de servicios.• E! c!iente %esado (o servidor ligero) distribuye m&s funciones en el lado del cliente.

En los casos de servidores de archivos o servidores de bases de datos sin uso deprocedimientos almacenados, el !traba/o$ de la aplicación es concentrado en el cliente (!frontA

end$), donde no solo se realizaran las funciones de interacción y presentando (interfaz al

usuario) sino el procesamiento de los datos que son extrados del servidor).

Mode!os de Distri"ución C!iente-Ser$idor 

>o existe una regla para dividir una aplicación, sin embargo es razonable situar las funciones

y datos cerca posibles para la operativa de la organización. Esto sin embargo tiene su contra,

pues es me/or el enfoque centralizado, desde el punto de vista de la administración de los

datos. *i bien puede hacer una amplia gana de combinaciones para distribuir la lógica de una

aplicación, puede simplificarse la explicación a tres

#resentación distri"uida

%a lógica de presentación de los datos es remota respecto a la (lógica) de negocio y datos. En

su forma m&s simple la lógica de presentación es solo la interfaz al usuario que accede a

procedimientos transaccionales ya existentes en el servidor. %a lógica de presentación pueda

ir !engordando$ con funciones de consistencia de datos, iniciación de lógica de negocio, etc.

Funciones Distri"uidas

3odelo que proporciona gran flexibilidad y permite un control donde situar las funciones en la

red. 2n proceso cliente invoca a otro proceso en el servidor (en el mismo equipo u otro

remoto), este servidor (de aplicaciones) puede invocar a su vez los servicios de otro servidor,

hasta el proceso de los datos requeridos y su evolución a la cadena de clientes que fuera

form&ndose.

Datos Distri"uidos

*olo los resultados son devueltos al proceso cliente que invoco al servidor de base de datos.

%os servidores de bases de datos son la base fundamental de los sistemas de soporte a

decisiones que requieren preguntas no planificadas e informes flexibles.Com%ontes de !a Ar+uitectura C!iente-Ser$idor 

E CIENTE

En el cliente corre la parte de la aplicación correspondiente. %o hace en el sistema operativo,

que a su vez provee la interfaz usuario (2.0) hace ya buen tiempo grafica (:20) u orientada a

ob/etos (1120) y puede acceder diferentes servicios distribuidos.

-ara acceder a servicios distribuidos lo hace a través del componente middle4are, quien

mane/a los servicios que no son locales. En el cliente también corre un componente del

middle4are de administración de sistemas distribuidos (#*3).

7/18/2019 Administracion de Base de Datos

http://slidepdf.com/reader/full/administracion-de-base-de-datos-56970afe138c6 8/50

E SER*IDOR

El componente de aplicación en el servidor generalmente corre sobre un soft4are para la

correspondiente plataforma (del servidor) un #"3* con *7%, un monitor de transacciones,

group4are, servidores de ob/etos y el 4eb. #epende del *.1. para !interfazar$ con elcomponente middle4are que hace los requerimientos de servicios. 5ambién corre un

componente del #*3.

E MIDDE/ARE

El componente middle4are corre tanto en el cliente como el servidor. *e puede clasificar en

tres categoras de middle4are

01 E! soft2are &o me3or dic4o !os %rotoco!os' de trans%orte

-rovee comunicación a través de ?>s y %>s y por supuesto la necesaria combinación

%>'?>'%>. Estos protocolos vienen como drivers en los sistemas operativos

modernos, los que proveen interfaces muy bien definidas entre componentes de manera

de llegar desde las aplicaciones hasta los adaptadores de red.

51 E! sistema o%erati$o de red

 unque el término !de red$ ya pr&cticamente quedo en el pasado, pues los sistemas

operativos ofrecen la funcionalidad son usadas en un ambiente cliente servidor tales

como servicios de directorio, compartición de recursos, seguridad, etc. Bacilidades para

internet'intranet son proporcionadas también por los sistemas operativos.

61 Ser$icios es%ec7ficos

5ambién deben de correr en ambos lados, cliente y servidor, de manera de proveer la

funcionalidad necesaria como por e/emplo acceso y recuperación de datos de una base

de datos, correo electrónico, bro8ers de ob/etos y otros.

7/18/2019 Administracion de Base de Datos

http://slidepdf.com/reader/full/administracion-de-base-de-datos-56970afe138c6 9/50

MODEO DE ENTIDAD REACIÓN

INTRODUCCIÓN

  finales de la década de CDF, cuando las bases de datos entraron por primera vez en el

mercado de soft4are, los diseadores de soft4are actuaban como artesanos, con

herramientas muy primitivas diagramas de bloques y estructuras de registros y el diseo de

"ase de #atos se confunda frecuentemente con la implantación de la base de datos. #icha

situación ahora ha cambiado los métodos y los modelos del diseo de batos han

evolucionado paralelamente con el progreso de la tecnologa en los sistemas de base de

datos. simismo el diseño de la Base de Datos es una actividad esencial en el desarrollo de

Sistemas de Información.

E dise8o de !a "ase de datos en e! cic!o de $ida de !os sistemas de información

%as bases de #atos son solo uno de los componentes de los sistemas de información, que

también incluyen programas de aplicación, interfaces para usuarios y otro tipo de paquetes desoft4are. *in embargo, las bases de datos son esenciales para la supervivencia de cualquier 

organización, porque los datos estructurados constituyen un recurso esencial para todas las

organizaciones.

El tpico ciclo de vida de un sistema de información consiste en

01 Estudio de Facti"i!idad9 5rata de determinar la rentabilidad de las distintas

alternativas de diseo de sistemas de información y las prioridades de

los diversos componentes del sistema.51 Reco!ección : an;!isis de re+uerimientos9 *e ocupa de la misión del sistema de

información, es decir las &reas de aplicación del sistema dentro de una empresa y los

problemas a resolver. %os usuarios describen sus necesidades a los diseadores y

esas descripciones se le conoce como especificando de requerimientos.61 Dise8o9 *e ocupa de la especificación de la estructura del sistema de 0nformación.

*e distingue el diseo de la base de datos (estructura de la "#) y el diseo de las

aplicaciones (programas de aplicación).<1 Creación de #rototi%os9 El prototipo permite a los usuarios verificar si el sistema de

información satisface las necesidades.=1 Im%!antación9 *e refiere a la programación de la versión final y operativa del sistema

de información.>1 *a!idación : #rue"a9 -rocedimiento mediante el cual se garantiza que cada fase del

desarrollo es de calidad aceptable.?1 O%eración9 *e empieza con la carga inicial de los datos y termina cuando el sistema

se vuelve obsoleto y tiene que ser reemplazado, adem&s se necesita mantenimiento

para me/orarlo.

Fase de! dise8o de !a "ase de datos

El diseo de la "ase de #atos se descompone en diseo conceptual, diseo lógico y diseo

fsico como muestra la figura

7/18/2019 Administracion de Base de Datos

http://slidepdf.com/reader/full/administracion-de-base-de-datos-56970afe138c6 10/50

01 Reco!ección : an;!isis de Re+uerimiento9 %os diseadores entrevistan a los futuros

usuarios de la base de datos para recoger y documentar sus necesidades de

información.51 Dise8o Conce%tua!9  -arte de la especificación de todos los requerimientos, el

siguiente paso es crear el esquema conceptual para la base de datos mediante un

modelo de datos conceptual de alto nivel. El esquema conceptual contiene una

descripción detallada de los requerimientos de información de los usuarios

(información de la base de datos), y contiene descripciones de los usuarios

(información de la base de datos), y contiene descripciones de los tipos de datos,

relaciones entre ellos y restricciones. -ara el curso utilizaremos diseo de esquemas

conceptuales el modelo EA6 (Entidad 6elación), que describe los datos como

entidades, vnculos (relaciones) y atributos.61 Dise8o ó.ico de !a Base de Datos &Transformación de mode!o de Datos'9 El

siguiente paso en el proceso de diseo consiste en implementar de hecho la base de

datos con un *.:.".#., comercial, transformando el modelo conceptual al modelo de

los datos empleados<1 Dise8o f7sico de !a "ase de datos9 -arte del esquema lógico y produce como

resultado el esquema fsico. El esquema fsico especifica las estructuras de

almacenamiento internas y los métodos usados para tener un acceso efectivo a los

datos. -or esta razón el diseo fsico se adapta a un sistema #"3* especfico.

E! Mode!o Entidad@Re!ación

En CDG -eter 9hen publica !5he Entity H 6elationship 3odel H to ?ard a unified vie4 of 

data$. Este modelo diferencia a los ob/etos, de quienes representamos datos, en entidades y

relaciones, aadiendo sem&ntica y sencillez gr&fica. -ara disear y planificar bases de datos,

el modelo Entidad 6elación es el que ha tenido mayor éxito en la industria de la 0ngeniera de

*oft4are. %a mayora de herramientas que apoyan la 0ngeniera de *oft4are y el desarrollo de

sistemas de información (9*Es) han adoptado algn modelo.

ENTIDAD

%as entidades representan cosas u ob/etos (ya sean reales o abstractos), que se diferencian

claramente entre s.

-ara poder seguir un e/emplo durante el artculo aadiré e/emplos sobre un taller mec&nico,donde se podra crear las siguientes entidades

• Coc4es (ob/eto fsico) contiene la información de cada taller.• Em%!eado (ob/eto fsico) información de los traba/adores.• Car.o de! em%!eado (cosa abstracta) información de la función del empleado.

Estas entidades se representan en un diagrama con unos rect&ngulos, como los siguientes.

ATRIBUTO

Cargo del

Empleado

EmpleadoCoche

7/18/2019 Administracion de Base de Datos

http://slidepdf.com/reader/full/administracion-de-base-de-datos-56970afe138c6 11/50

%os atributos definen o identifican las caractersticas de entidad (es el contenido de esta

entidad). 9ada entidad contiene distintos atributos, que dan información sobre esta entidad.

Estos atributos pueden ser de distintos tipos (numéricos, texto, fechaI).

*iguiendo el e/emplo de antes podemos analizar los atributos de nuestra entidad !9oches!,

que nos dar&n información sobre los coches de nuestro supuesto taller.2nos posibles atributos seran los siguientes nmero de chasis, matrcula, #>0 del

propietario, marca, modelo y muchos otros que complementen la información de cada coche.

%os atributos se representan como crculos que descienden de una entidad, y no es necesario

representarlos todos, sino los m&s significativos, como a continuación.

REACIÓN

Es un vnculo que nos permite definir una dependencia entre varias entidades, es decir, nos

permite exigir que varias entidades compartan ciertos atributos de forma indispensable.

-or e/emplo, los empleados del taller (de la entidad !Empleados!) tienen un cargo (segn la

entidad !9argo del empleado!). Es decir, un atributo de la entidad !Empleados !especificar&

que cargo tiene en el taller, y tiene que ser idéntico al que ya existe en la entidad !9argo del

empleado!.

%as relaciones se muestran en los diagramas como rombos, que se unen a las entidades

mediante lneas.

REACIONES DE CARDINAIDAD-odemos encontrar distintos tipos de relaciones segn como participen en ellas las entidades.

Es decir, en el caso anterior cada empleado puede tener un cargo, pero un mismo cargo lo

pueden compartir varios empleados.

Esto complementa a las representaciones de las relaciones, mediante un intervalo en cada

extremo de la relación que especifica cuantos ob/etos o cosas (de cada entidad) pueden

intervenir en esa relación.

2no a uno 2na entidad se relaciona nicamente con otra y viceversa. -or e/emplo, si

tuviésemos una entidad con distintos chasis y otra con matrculas deberamos de determinar 

que cada chasis solo puede tener una matrcula (y cada matrcula un chasis, ni m&s enningn caso).

7/18/2019 Administracion de Base de Datos

http://slidepdf.com/reader/full/administracion-de-base-de-datos-56970afe138c6 12/50

2no a varios o varios a uno determina que un registro de una entidad puede estar 

relacionado con varios de otra entidad, pero en esta entidad existir solo una vez. 9omo hasido en el caso anterior del traba/ador del taller.

Jarios a varios determina que una entidad puede relacionarse con otra con ninguno o varios

registros y viceversa. -or e/emplo, en el taller un coche puede ser reparado por varios

mec&nicos distintos y esos mec&nicos pueden reparar varios coches distintos.

%os indicadores numéricos indican el primero el nmero mnimo de registros en una relación y

posteriormente el m&ximo (si no hay lmite se representa con una !n!).

CA*ES

Es el atributo de una entidad, al que le aplicamos una restricción que lo distingue de los

dem&s registros (no permitiendo que el atributo especfico se repita en la entidad) o le aplica

un vnculo (exactamente como coment&bamos en las relaciones). Estos son los distintos

tipos

*uperclave aplica una clave o restricción a varios atributos de la entidad, para as asegurarse

que en su con/unto no se repitan varias veces y as no poder entrar en dudas al querer 

identificar un registro.

9lave primaria identifica inequvocamente un solo atributo no permitiendo que se repita en la

misma entidad. 9omo sera la matrcula o el nmero de chasis de un coche (no puede existir 

dos veces el mismo).

9lave externa o clave for&nea este campo tiene que estar estrictamente relacionado con la

clave primaria de otra entidad, para as exigir que exista previamente ese clave.

 nteriormente hemos hablado de ello cuando coment&bamos que un empleado

indispensablemente tiene que tener un cargo (que lo hemos representado numéricamente),

por lo cual si intent&semos darle un cargo inexistente el gestor de bases de datos nos

devolvera un error.

>uestro gestor de ""## sin la necesidad de crear un gran diagrama, sino usando notas m&s

simples

MODEO REACIONA

El 3odelo 6elacional fue propuesto por E.9odd en CDGF ( E. 9odd era entonces un investigador del

9entro de 0"3 en *an ;osé (9alifornia ) y publicó su propuesta en un artculo fundamental que obtuvoel 93 4ard correspondiente al 9ongreso J%#" de CDGF ) .

7/18/2019 Administracion de Base de Datos

http://slidepdf.com/reader/full/administracion-de-base-de-datos-56970afe138c6 13/50

%a estructura subyacente b&sica es la relación, entendida en su acepción matem&tica b&sica 2n

subcon/unto de un producto cartesiano de con/untos. 9uando se pretende describir una parcela de la

realidad mediante el formalismo relacional, el primer paso es discernir los atributos presentes en el

problema. 2n atributo es un tem elemental de información, en el sentido de no poder desglosarse en

componentes m&s simples. %os atributos son los nombres que damos a las propiedades de losob/etos acerca de los cuales se va a guardar información.

NOMBRE EDAD SEO;hon *mith

*ally "oyce

5ony *tar8

"ill "allucci

5ina :raver 

CD

=K

CL

KM

CD

Jarón

3u/er 

Jarón

Jarón

3u/er 

En la relación Estudiante tiene tres atributos (>13"6E, E##, *EN1) y cinco tuplas, cada una

representando nombre, edad y sexo de un estudiante. -or tanto el grado y la cardinalidad de

E*52#0>5E son tres y cinco, respectivamente las definiciones matem&ticas de las relaciones se

desarrolla empezando por la noción de dominios. 2n dominio es una colección de valores. #ados

varios atributos, C, =,I, n, con subdominios #C, #=, I, #n un caso de relación de grado n es

simplemente un sub con/unto del producto cartesiano #C x #= I #n. Esta definición destaca una

importante propiedad de las relaciones, a saber, que son con/untos de tuplas en el sentido

matem&tico una relación en ningn momento puede tener tuplas duplicadas. *in embargo, la

mayora de los sistemas relacionales no imponen una restricción, ya que en diversas situacionespueden ocurrir duplicados y puede ser til mantenerlos.

C!a$es #rimarias : For;neas &e,ternas'

  !a$e #rinci%a!9 9olumna(s) que contendr&(n) valores para identificar de

manera nica al ob/eto representado por la tupla. El valor de la llave primaria

en cada fila identifica al ob/eto particular representado por cada fila dentro de

la clase de ob/etos que representa esa relación.  !a$e For;nea9 9olumna(s) que contiene(n) los valores de un dominio que sirven al mismo

de la llave primaria en otra(s) tabla(s) para identificar al mismo ob/eto. 

2na caracterstica fundamental del modelo relacional es que la representación de las

relaciones entre ob/etos del mundo real se hace por comparación entre valores, sirvan estos

para identificar a los ob/etos o para describir atributos de los mismos. 

%as relaciones entre clases de ob/etos (con/untos de ob/etos del mismo tipo) est&n

expresadas en términos de los atributos comunes de las instancias de las clases relacionadas

(no solo con el mismo dominio, sino con el mismo significado).  En el modelo relacional, el concepto de clave est& definido de una manera muy similar al

concepto de identificador ene l modelo E6O una clave de una relación es un con/unto de

atributos de la relación que identifica de manera nica cada tupla de cada expresión de esa

relación.

7/18/2019 Administracion de Base de Datos

http://slidepdf.com/reader/full/administracion-de-base-de-datos-56970afe138c6 14/50

   s, la nica diferencia entre nuestro uso de identificadores y claves es que en el modelo

relacional solo se acepta la identificación interna.

7/18/2019 Administracion de Base de Datos

http://slidepdf.com/reader/full/administracion-de-base-de-datos-56970afe138c6 15/50

NORMAIACIÓN

INTRODUCCIÓN

2na vez creada el diseo de la base de datos, debemos analizarla para asegurarnos de que carece

de problemas potenciales. -ara ello, seguiremos un proceso llamado normalización, en el que

identificamos la existencia de problemas potenciales como duplicación y redundancia de datos, e

implantaremos maneras de corregir esos problemas.

El ob/etivo de la normalización es convertir las relaciones no normalizadas (tablas que satisfacen la

definición de una relación pero que pueden contener grupos repetidos) en varios tipos de formas

normalizadas. 2na tabla de una forma normalizada en concreto posee un determinado y deseable

con/unto de propiedades. unque hay varias formas normalizadas, las m&s comunes son la primera

forma normalizada, la segunda forma normalizada y la tercera forma normalizada. %a normalización

es un proceso en el que una tabla que est& en primera forma normalizada, es me/or que una tabla

que no est& en primera forma normalizada, una tabla en segunda forma normalizada es me/or que

otra que est& en primera forma normalizada, y as sucesivamente. El ob/etivo de este proceso es

permitirnos obtener una tabla o con/unto de tablas y producir un nuevo con/unto de tablas que

representa la misma información pero que carece de problemas.

#RIMERA FORMA NORMAIADA

#e acuerdo con la definición de una relación, una relación (tabla) no puede contener un grupo

repetido en el que existan mltiples entradas en una sola fila. *in embargo, en el proceso de diseo

de base de datos, podemos crear una tabla que tenga todo el resto de propiedades de una relación,

pero que contiene un grupo repetido. Eliminar grupos repetidos es el punto de partida para convertir 

un con/unto de datos no normalizados en una tabla que esté en primera forma normalizada. 2na tabla

(relación) est& en primera forma normalizada (C>B) cuando no contiene un grupo repetido.

-or e/emplo, en el proceso de diseo, podemos crear la siguiente tabla t-edido, en la que hay un

grupo repetido que consiste en codirti y cantirti. %a formulación para esta tabla es as

t-edido (codi-edi, fecha-edi, (codirti, cantirti))

esta formulación describe una tabla llamada t-edido que consiste en una clave principal, codi-edi, y

una columna llamada fecha-edi. El paréntesis interior indica un grupo repetido que contiene dos

columnas codirti y cantirti. Esta tabla contiene una fila por pedido con valores en las columnas

codirti y cantirti para cada pedido con el código codi-edi y situado en fecha-edi. En la figura =.G

vemos un pedido sencillo con mltiples combinaciones de código de artculo y el correspondientenmero de unidades pedidas.

7/18/2019 Administracion de Base de Datos

http://slidepdf.com/reader/full/administracion-de-base-de-datos-56970afe138c6 16/50

t-edido

codi-edi fecha-edi codirti cantirti

=CFL CF'=F'=FC

F

 5DM CC

=CCF

CF'=F'=FC

F

#6DK

#?CC

C

C=CCK CF'=C'=FC

F

P%= M

=CCM CF'=C'=FC

F

P5FK =

=CCGCF'=K'=FC

F

"JF

9#Q=

=

M=CCD CF'=K'=FC

F

#6DK C

=C=K CF'=K'=FC

F

PJ=D =

Bigura =.G. #atos de pedido no normalizado.

-ara convertir la tabla en primera forma normalizada, eliminamos el grupo repetido de esta manera

t-edido (codi-edi, fecha-edi, codirti, cantirti)

En la figura =.L vemos la tabla en primera forma normalizada. En la figura =.G, la segunda fila indica

que el artculo #6DK y el artculo #?CC est&n incluidos en el pedido =CCF. En la figura =.L esta

información est& representada por dos filas, la segunda y la tercera. %a clave principal en la tabla

t-edido no normalizada era la columna codi-edi solamente. %a clave principal de la tabla normalizada

es ahora la combinación de las columnas codi-edi y codirti.

9uando convertimos una tabla no normalizada en una tabla en primera forma normalizada, la clave

principal de la tabla en primera forma normalizada es normalmente la clave principal de la tabla no

normalizada concatenada con la clave del grupo repetido, que es la columna del grupo repetido que

diferencia una aparición del grupo repetido de otra dentro de una fila determinada de la tabla. En la

tabla t-edido, codirti era la clave del grupo repetido y codi-edi la clave principal de la tabla. l

convertir los datos no normalizados en primera forma normalizada, la clave principal es ahora la

concatenación de las columnas codi-edi y codirti.t-edido

codi-edi fecha-edi codirti cantirti

=CFL CF'=F'=FC

F

 5DM CC

=CCF CF'=F'=FC

F

#6DK C

=CCF CF'=F'=FC

F

#?CC C

=CCK CF'=C'=FC

F

P%= M

=CCM CF'=C'=FC P5FK =

7/18/2019 Administracion de Base de Datos

http://slidepdf.com/reader/full/administracion-de-base-de-datos-56970afe138c6 17/50

F=CCG CF'=K'=FC

F

"JF =

=CCG CF'=K'=FC

F

9#Q= M

=CCD CF'=K'=FCF

#6DK C

=C=K CF'=K'=FC

F

PJ=D =

Bigura =.L. #atos del pedido convertidos en primera forma normalizada.

SEUNDA FORMA NORMAIADA

%a siguiente tabla t-edido est& en primera forma normalizada, porque no contiene ningn grupo

repetido.

t-edido (codi-edi, fecha-edi, codirti, descriprti, cantirti, precio9orti)

%a tabla contiene las siguientes dependencias funcionalescodi-edi R fecha-edi codirti R descriprti

codi-edi, codirti R cantirti, precio9orti

Esta formulación indica que codi-edi por s misma determina fecha-edi, y codirti por s misma

determina descriprti, pero necesita tanto un codi-edi como un codirti para determinar la cantirti o

bien el precio9orti. 9onsidere el e/emplo de esta tabla que vemos en la figura =.D. unque la tabla

t-edido est& en primera forma normalizada (porque no contiene grupos repetidos), existen problemas

en ella que hacen necesario su reestructuración.

%a descripción de un artculo especfico, por e/emplo #6DK, aparece dos veces en la tabla. Esta

duplicación (formalmente llamada redundancia) provoca varios problemas. 1cupa espacio

intilmente, pero esto no es el problema m&s grave. %os otros problemas se denominan anomalas de

actualización, y se dividen en cuatro categoras

t-edido

codi-edi fecha-edi codirti descriprti cantirti precio9orti

=CFL CF'=F'=FCF 5DM 0ron CC S=C.DQ=CCF CF'=F'=FCF #6DK :as 6ange C SMDQ.FF=CCF CF'=F'=FCF #?CC ?asher C SKDD.DD=CCK CF'=C'=FCF P%= #ryer M SK=D.DQ=CCM CF'=C'=FCF P5FK #ish4asher = SQDQ.FF=CCG CF'=K'=FCF "JF @ome :ym = SC=.DQ=CCG CF'=K'=FCF 9#Q= 3icro4ave

1ven

M SCQF.FF

=CCD CF'=K'=FCF #6DK :as 6ange C SMDQ.FF=C=K CF'=K'=FCF PJ=D 5readmill = SK=Q.DD

Bigura =.D. E/emplo de tabla t-edido.

C. Actua!i)aciones *i tenemos que cambiar la descripción del artculo #6DK, tenemos que

hacerlo dos veces una vez en cada una de las filas en que aparece el artculo #6DK.

 ctualizar la descripción del artculo m&s de una vez hace que el proceso de actualización

sea mucho m&s pesado y lleve m&s tiempo.

=. Datos inconsistentes >o hay nada en el diseo que impida que el artculo #6DK tenga dos

descripciones diferentes en la base de datos. #e hecho, si el artculo #6DK aparece en =F

7/18/2019 Administracion de Base de Datos

http://slidepdf.com/reader/full/administracion-de-base-de-datos-56970afe138c6 18/50

filas de la tabla, este artculo puede llegar a tener =F descripciones diferentes en la base de

datos.K. Adiciones 9uando intentamos aadir un artculo nuevo y su descripción a la base de datos,

nos encontramos con un grave problema. 9omo la clave principal de la tabla t-edido consiste

tanto en codi-edi como en codirti, necesitamos valores para ambas columnas para aadir 

una fila nueva a la tabla. *i aadimos un artculo a la tabla que an no tenga ningn pedido,

T7ué ponemos como codi-ediU %a nica solución es crear un codi-edi ficticio y después

sustituirlo por el codi-edi real una vez se reciba realmente un pedido para este artculo. Esto

no es una solución aceptable.M. E!iminaciones *i eliminamos el pedido =CFL de la base de datos y es el nico pedido que

contiene el artculo 5DM, al eliminar el pedido también se elimina toda la información sobre el

artculo 5DM. -or e/emplo, ya no podramos saber que el artculo 5DM es una plancha.

Estos problemas aparecen porque tenemos una columna, descriprti, dependiente de solo una parte

de la clave principal, codirti, y no de toda la clave principal. Esta situación lleva a la definición de la

segunda forma normalizada. %a segunda forma normalizada representa una me/ora sobre la primera

forma normalizada porque elimina las anomalas de actualización en estas situaciones. 2na tabla

(relación) est& en segunda forma normalizada (=>B) cuando est& en primera forma normalizada y no

hay ninguna columna noAclave (es decir, una columna que no sea parte de la clave principal) que

dependa de sólo una parte de la clave principal.

>ota 9uando la clave principal de una tabla contiene una sola columna, la tabla est&

autom&ticamente en segunda forma normalizada.

-odemos identificar el problema fundamental con la tabla t-edido no est& en segunda forma

normalizada. unque es importante identificar el problema, lo que necesitamos realmente es un

método para corregirlo, tenemos que poder convertir tablas en segunda forma normalizada. En primer 

lugar, tome el subcon/unto del con/unto de columnas que conforman la clave principal y comience una

nueva tabla con este subcon/unto como su clave principal. -ara la tabla t-edido, el nuevo diseo es

(codi-edi,

(codirti,

(codi-edi, codirti,

En segundo lugar, site cada una de las otras columnas con la clave principal adecuada, es decir,

site cada una con el mnimo con/unto de columnas de que depende. -ara la tabla t-edido, aada las

nuevas columnas de esta manera

(codi-edi, fecha-edi)

(codirti, descriprti)

(codi-edi, codirti, cantirti, precio9orti)

7/18/2019 Administracion de Base de Datos

http://slidepdf.com/reader/full/administracion-de-base-de-datos-56970afe138c6 19/50

  cada una de estas nuevas tablas se le asigna un nombre descriptivo basado en el significado y

contenido de la tabla, como t-edido, trticulo y t#etalle-edido. En la figura =.CF vemos e/emplos de

estas tablas.

En la figura =.CF, al convertir la tabla original t-edido en una tabla t-edido, una tabla trticulo y una

tabla t#etalle-edido elimina las anomalas de actualización. *ólo aparece una descripción una vezpara cada artculo, por tanto no tenemos la redundancia que exista en el diseo original de la tabla.

 l cambiar la descripción del artculo #6DK de :as 6ange a por e/emplo, #eluxe 6ange, ahora es un

proceso muy sencillo que implica un solo cambio. 9omo la descripción de un artculo aparece en un

solo lugar, no es posible tener varias descripciones para un solo artculo en la base de datos al mismo

tiempo. -ara aadir un nuevo artculo y su descripción, creamos una nueva fila en la tabla trticulo,

independientemente de si ese artculo tiene pedidos pendientes o actuales o no. dem&s, al borrar el

pedido =CLF no se borra el código de artculo 5DM de la base de datos porque sigue existiendo en

la tabla trticulo. -or ltimo, no hemos perdido ninguna información al convertir la tabla t-edido en

segunda forma normalizada. -odemos reconstruir los datos en la tabla original a partir de los datos de

las nuevas tablas.

t-edido

codi-edi fecha-edi codirti descriprti cantirti precio9orti

=CFL CF'=F'=FCF 5DM 0ron CC S=C.DQ=CCF CF'=F'=FCF #6DK :as 6ange C SMDQ.FF=CCF CF'=F'=FCF #?CC ?asher C SKDD.DD=CCK CF'=C'=FCF P%= #ryer M SK=D.DQ=CCM CF'=C'=FCF P5FK #ish4asher = SQDQ.FF=CCG CF'=K'=FCF "JF @ome :ym = SC=.DQ

=CCG CF'=K'=FCF 9#Q= 3icro4ave1ven

M SCQF.FF

=CCD CF'=K'=FCF #6DK :as 6ange C SMDQ.FF=C=K CF'=K'=FCF PJ=D 5readmill = SK=Q.DD

7/18/2019 Administracion de Base de Datos

http://slidepdf.com/reader/full/administracion-de-base-de-datos-56970afe138c6 20/50

 

TERCERA FORMA NORMAIADA

-ero an pueden surgir problemas en la segunda forma normalizada. -or e/emplo, imagine que crea

la siguiente tabla t9liente

t9liente (codi9lien, nombre9lien, balan9lien, limi9re9lien, codiJende, apeJende, nombreJende)

Esta tabla tiene las siguientes dependencias funcionales

codi9lien V  nombre9lien, balan9lien, limi9re9lien, codiJende, apeJende, nombreJende codiJende V

apeJende, nombreJende

codi9lien determina a todo el resto de columnas. dem&s, codiJende determina a apeJende y

nombreJende. 9uando la clave principal de una tabla es una sola columna, la tabla est&

autom&ticamente en segunda forma normalizada. (*i la tabla no estuviera en segunda forma

normalizada, alguna columna sera dependiente de sólo una parte de la clave principal, lo que es

imposible cuando la clave principal es sólo una columna.) s, la tabla t9liente est& en segunda forma

normalizada. unque esta tabla est& en segunda forma normalizada, la figura =.CC muestra que sigue

padeciendo problemas de actualización similares a los identificados en la tabla t-edido de la figura

=.D. En la figura =.CC, el nombre del vendedor aparece muchas veces en la tabla.

t9liente

codi9lie

n

nombre9lien direc9lien ciudad9lien

balan9lien

limi9re9lien

codiJende

apeJende

nombreJende

CML lWs ppliance and

*port

=LKG

:reen4ay

Billmore SQQF.FF SGQFF.FF =F Paiser Jalerie

=L= "roo8ings #irect KL=G #evon :rove SMKC.QF SCFFFF.FF KQ @ull 6ichardKQ BergusonWs KL=

?ild4ood

>orthfiel

d

SQGLQ.FF SGQFF.FF Q -erez ;uan

MFL 5he Everything *hop CL=L 6aven 9rystal SQ=LQ.=Q SQFFF.FF KQ @ull 6ichardM= "argains :alore KL=D 9entral :rove SKMC=.FF SCFFFF.FF Q -erez ;uan

Q=M PlineWs LKL6idgeland

Billmore SC=G=.FF SCQFFF.FF =F Paiser Jalerie

FL ;ohnsonWs

#epartment *tore

KG= 1xford *heldon S=CF.FF SCFFFF.FF Q -erez ;uan

LG %eeWs *port and

 ppliance

=L=

Evergreen

 ltonville S=LQC.FF SQFFF.FF KQ @ull 6ichard

G=Q #eerfieldWs Bour 

*easons

=L=

9olumbia

*heldon S=ML.FF SGQFF.FF KQ @ull 6ichard

LM= ll *eason =L %a8evie4 :rove SL==C.FF SGQFF.FF =F Paiser JalerieBigura =.CC. E/emplo de la tabla t9liente

7/18/2019 Administracion de Base de Datos

http://slidepdf.com/reader/full/administracion-de-base-de-datos-56970afe138c6 21/50

%a redundancia de incluir un código y nombre de vendedor en la tabla t9liente resulta en el mismo

con/unto de problemas que existan en la tabla t-edido. dem&s el problema del espacio, tenemos las

siguientes anomalas de actualización.

 ctualizaciones 9ambiar el nombre de vendedor implica cambios en mltiples filas de la tabla.

#atos inconsistentes El diseo no impide mltiples repeticiones de nombres de vendedor en la basede datos. -or e/emplo, un vendedor podra representar a =F clientes y su nombre podra estar metido

de =F maneras diferentes en la tabla.

 diciones -ara aadir el vendedor LG (Emily #aniels) a la base de datos, debe representar al menos

a un cliente. *i Emiliy an no representa a ningn cliente, no podemos registrar el hecho de que su

nombre sea Emily #aniels o bien tenemos que crear un cliente ficticio para que ella lo represente,

hasta que represente a un cliente real. >inguna de esas soluciones es deseable.

Eliminaciones *i eliminamos a todos los clientes del vendedor KQ de la base de datos, también

perderemos toda la información sobre el vendedor KQ.

Estas anomalas de actualización son debidas al hecho de que codiJende determina a apeJende y

nombreJende, pero codiJende no es la clave principal. 9omo resultado, puede aparecer en muchas

filas diferentes el mismo codiJende y en consecuencia el mismo apeJende y nombreJende.

@emos visto que las tablas en segunda forma normalizada representa una me/ora sobre las tablas en

primera forma normalizada, pero para eliminar problemas con las tablas en segunda forma

normalizada, necesitamos una estrategia an me/or para crear tablas. %a tercera forma normalizada

proporciona esa estrategia.

*in embargo, antes de adelantarnos en la tercera forma normalizada, tenemos que familiarizarnos

con el nombre especial que se da a cualquier columna que determina a otra columna (como

codiJende en la tabla t9liente). 9ualquier columna (o con/unto de columnas) que determina a otra

columna se llama determinante. %a clave principal de una tabla es un determinante. #e hecho, por 

definición, cualquier clave candidata es un determinante. (6ecuerde que una clave candidata es una

columna o con/unto de columnas que podran funcionar como clave principal.) En la figura =.CC,

codiJende es un determinante, pero no es una clave candidata, y ése es el problema.

2na tabla est& en tercera forma normalizada (K>B) cuando est& en segunda forma normalizada y los

nicos determinantes que contiene son claves candidatas.

 hora ya hemos identificado el problema con la tabla t9liente no est& en tercera forma normalizada.

@ay varios pasos para convertir tablas en tercera forma normalizada. En primer lugar, para cada

determinante que no es una clave candidata, elimine de la tabla las columnas que dependen de este

determinante (pero no elimine el determinante). #espués, cree una nueva tabla con todas las

columnas a partir de la tabla original que dependen de este determinante. -or ltimo, haga del

determinante la clave principal de esta nueva tabla. -or e/emplo, en la tabla t9liente, elimine

apeJende y nombreJende porque dependen del determinante codiJende, que no es una clave

>ota Esta definición de la tercera forma normalizada no es la definición original. Esta definición

m&s reciente, que es preferible a la original, se suelo conocer como "9>B ("oyceA9odd >ormal

Borm) cuando es importante hacer una distinción entre esta definición y la original. En este text nohacemos tal distinción pero tomamos esta como la definición de la tercera forma normalizada.

7/18/2019 Administracion de Base de Datos

http://slidepdf.com/reader/full/administracion-de-base-de-datos-56970afe138c6 22/50

candidata. *e ha formado una nueva tabla, que consiste en codiJende como clave principal y las

columnas apeJende y nombreJende, de esta manera t9liente (codi9lien, nombre9lien, balan9lien,

limi9re9lien, codiJende) y

tJendedor (codiJende, apeJende, nombreJende)

En la figura =.C= vemos la tabla original t9liente y las tablas creadas al convertir la tabla original atercera forma normalizada.

T@a corregido este nuevo diseo de la tabla t9liente todos los problemas previamente identificadosU

El nombre del vendedor aparece solo una vez, con lo que se evita la redundancia y se simplifica el

proceso de cambiar el nombre de un vendedor. En este diseo no se permite que un vendedor tenga

nombre diferentes en una base de datos.

-ara aadir un nuevo vendedor a la base de datosO aadiremos una fila a la tabla tJendedor, no es

necesario que un nuevo vendedor represente a algn cliente. -or ltimo, eliminar a todos los clientes

de un vendedor determinado no eliminar& el registro del vendedor de la tabla tJendedor, sino que su

nombre se mantendr& en la base de datos. -odemos reconstruir todos los datos en la tabla original a

partir de los datos del nuevo con/unto de tablas. 5odos los problemas mencionados anteriormente ya

se han resuelto.

t9liente

codi

9lien

nombre9lien direc9lien ciudad

9lien

balan

9lien

limi9re

9lien

codi

Jend

e

ape

Jend

e

nombre

Jende

CML lWs ppliance and*port

=LKG:reen4ay

Billmore SQQF.FF SGQFF.FF =F Paiser

Jalerie

=L= "roo8ings #irect KL=G #evon :rove SMKC.QF SCFFFF.F

F

KQ @ull 6ichar 

dKQ BergusonWs KL=

?ild4ood

>orthfiel

d

SQGLQ.FF SGQFF.FF Q -erez ;uan

MFL 5he Everything *hop CL=L 6aven 9rystal SQ=LQ.=Q SQFFF.FF KQ @ull 6ichar 

dM= "argains :alore KL=D

9entral

:rove SKMC=.FF SCFFFF.F

F

Q -erez ;uan

Q=M PlineWs LKL6idgeland

Billmore SC=G=.FF

SCQFFF.FF

=F Paiser

Jalerie

FL ;ohnsonWs #epartment

*tore

KG= 1xford *heldon S=CF.FF SCFFFF.F

F

Q -erez ;uan

LG %eeWs *port and

 ppliance

=L=

Evergreen

 ltonville S=LQC.FF SQFFF.FF KQ @ull 6ichar 

dG=Q #eerfieldWs Bour 

*easons

=L=

9olumbia

*heldon S=ML.FF SGQFF.FF KQ @ull 6ichar 

dLM= ll *eason =L %a8evie4 :rove SL==C.FF SGQFF.FF =F Paise

r

Jalerie

codiJende apeJende nombreJende=F Paiser Jalerie

7/18/2019 Administracion de Base de Datos

http://slidepdf.com/reader/full/administracion-de-base-de-datos-56970afe138c6 23/50

 

KQ @ull 6ichardQ -erez ;uan

Bigura =.C=. %a tabla t9liente convertida en tercera forma normalizada.

-reguntas y 6espuestas

-regunta 9onvierta la siguiente tabla en tercera forma normalizada. En esta tabla, codilum

determina a nombrelum, nume9redi, codi5utor y nombre5utor. codi5utor determina a nombre5utor.

codi9urso determina a descrip9urso.

%a combinación de un codilum y de un codi9urso determina una nota9urso.

tlumno (codilum, nombrelum, nume9redi, codi5utor, nombre5utor, (codi9urso, descrip9urso,

nota9urso))

6espuesta 9omplete los siguientes pasos

-aso C Elimine el grupo repetido para convertir la tabla en primera forma normalizada de esta

manera

tlumno (codilum, nombrelum, nume9redi, codi5utor, nombre5utor,

codi9urso, descrip9urso, nota9urso)

%a tabla tlumno est& ahora en primera forma normalizada porque no tiene grupos repetidos. *in

embargo no est& en segunda forma normalizada porque nombrelum depende solo de codilum, que

es solo una parte de la clave principal.

-aso = 9onvierta la tabla tlumno en segunda forma normalizada. En primer lugar, para cada parte

de la clave principal, empiece una tabla con esa parte como una clave de/ando lo siguiente

7/18/2019 Administracion de Base de Datos

http://slidepdf.com/reader/full/administracion-de-base-de-datos-56970afe138c6 24/50

(codilum,

(codi9urso,

(codilum, codi9urso,

#espués, site el resto de columnas con el con/unto de columnas m&s pequeo de las que dependen,as

tlumno (codilum, nombrelum, nume9redi, codi5utor, nombre5utor) t9urso (codi9urso,

descrip9urso)

tlumno9urso (codilum, codi9urso, nota9urso)

 hora estas tablas est&n en segunda forma normalizada, y las tablas t9urso y tlumno9urso también

est&n en tercera forma normalizada. *in embargo, la tabla tlumno no est& en tercera formanormalizada, porque contiene un determinante (codi5utor) que no es una clave candidata.

-aso K 9onvierta la tabla tlumno en tercera forma normalizada eliminando la columna que depende

del determinante codi5utor y situ&ndola en una tabla aparte, de esta manera

(codilum, nombrelum, nume9redi, codi5utor)

(codi5utor, nombre5utor)

-aso M >ombre todas las tablas y agrupe todo el con/unto as

tlumno (codilum, nombrelum, nume9redi, codi5utor) t5utor (codi5utor, nombre5utor) t9urso

(codi9urso, descrip9urso) tlumno9urso (codilum, codi9urso, nota9urso)

IM#EMENTACION DE BASES DE DATOS

7/18/2019 Administracion de Base de Datos

http://slidepdf.com/reader/full/administracion-de-base-de-datos-56970afe138c6 25/50

S Ser$er 

*7% server es un sistema administrador para "ases de #atos relacionales basadas en la arquitectura

9liente'*ervidor (6#"3*) que usa 5ransact *7% para mandar peticiones un cliente y el *7% *erver.

*7% *erver usa la arquitectura 9liente'*ervidor para separar la carga de traba/o en tareas que corran

en computadoras tipo *ervidor y tareas que corran en computadoras tipo 9liente• El cliente es responsable de la parte lógica y de presentar la información al usuario.

:eneralmente, el cliente corre en una o m&s computadoras 9liente, aunque también puede

correr en una computadora *ervidor con *7% *erver.• *7% *erver administra "ases de #atos y #istribuye los recursos disponibles del *ervidor 

(tales como memoria, operaciones de disco, etc.) entre las mltiples peticiones.

Bases de Datos S Ser$er 

9ada *7% *erver tiene dos tipos de "ases de #atos "ases de #atos del *istema y "ases de #atos

del 2suario. %as "ases de #atos del sistema almacenan información acerca de *7% *erver como un

total. *7% *erver usa la "ase de #atos del sistema para operar y administrar al sistema. %as "asesde #atos de usuarios, son "ases de #atos creadas por los usuarios. 2na copia del *7% *erver puede

administrar una o m&s "ases de #atos de usuario.

Caracter7sticas .enera!es de! S

El *7% es un lengua/e de acceso a bases de datos que explota la flexibilidad y potencia de los

sistemas relacionales y permite as gran variedad de operaciones.

Es un lengua/e declarativo de Xalto nivelX o Xde no procedimientoX que, gracias a su fuerte base

teórica y su orientación al mane/o de con/untos de registros y no a registros individualesY permite

una alta productividad en codificación y la orientación a ob/etos. #e esta forma, una sola sentencia

puede equivaler a uno o m&s programas que se utilizaran en un lengua/e de ba/o nivel orientado a

registros. *7% también tiene las siguientes caractersticas

• en.ua3e de definición de datos El %## de *7% proporciona comandos para la definición

de esquemas de relación, borrado de relaciones y modificaciones de los esquemas de

relación.• en.ua3e interacti$o de mani%u!ación de datos El %3# de *7% incluye lengua/es de

consultas basado tanto en &lgebra relacional como en c&lculo relacional de tuplas.• Inte.ridad El %## de *7% incluye comandos para especificar las restricciones de integridad

que deben cumplir los datos almacenados en la base de datos.• Definición de $istas9 El %## incluye comandos para definir las vistas.• Contro! de transacciones9 *7% tiene comandos para especificar el comienzo y el final de

una transacción.• S incor%orado : din;mico9 Esto quiere decir que se pueden incorporar instrucciones de

*7% en lengua/es de programación como 9ZZ, 9, ;ava, -@-, 9obol, -ascal y Bortran.• Autori)ación9 El %## incluye comandos para especificar los derechos de acceso a las

relaciones y a las vistas.

Ti%os de Datos

 lgunos de los tipos de datos b&sicos de *7% son

• Date una fecha de calendario que contiene el ao (de cuatro cifras), el mes y el da.• Time %a hora del da en horas minutos segundos (el valor predeterminado es F).

7/18/2019 Administracion de Base de Datos

http://slidepdf.com/reader/full/administracion-de-base-de-datos-56970afe138c6 26/50

• Timestam% la combinación de #ate y 5ime.

O%timi)ación

9omo ya se di/o antes, y suele ser comn en los lengua/es de acceso a bases de datos de alto nivel,

el *7% es un lengua/e declarativo. 1 sea, que especifica qué es lo que se quiere y no cómo

conseguirlo, por lo que una sentencia no establece explcitamente un orden de e/ecución.El orden de e/ecución interno de una sentencia puede afectar seriamente a la eficiencia del *:"#,

por lo que se hace necesario que éste lleve a cabo una optimización antes de su e/ecución. 3uchas

veces, el uso de ndices acelera una instrucción de consulta, pero ralentiza la actualización de los

datos. #ependiendo del uso de la aplicación, se priorizar& el acceso indexado o una r&pida

actualización de la información. %a optimización difiere sensiblemente en cada motor de base de

datos y depende de muchos factores.

Existe una ampliación de *7% conocida como B*7% (Buzzy *7%, *7% difuso) que permite el acceso

a bases de datos difusas, usando la lógica difusa. Este lengua/e ha sido implementado a nivel

experimental y est& evolucionando r&pidamente.

en.ua3e de definición de datos &DD'

El lengua/e de definición de datos (en inglés #ata #efinition %anguage, o ##%), es el que se encarga

de la modificación de la estructura de los ob/etos de la base de datos. 0ncluye órdenes para modificar,

borrar o definir las tablas en las que se almacenan los datos de la base de datos. Existen cuatro

operaciones b&sicas 96E5E, %5E6, #61- y 562>95E.

CREATE CREAR

Este comando permite crear ob/etos de datos, como nuevas bases de datos, tablas, vistas

y procedimientos almacenados.E/emplo (crear una tabla)

96E5E 5"%E [92*513E6*[O

ATER MODIFICAR

Este comando permite modificar la estructura de una tabla u ob/eto. *e pueden

agregar'quitar campos a una tabla, modificar el tipo de un campo, agregar'quitar ndices a una tabla,

modificar un trigger, etc.

E/emplo (agregar columna a una tabla)

 %5E6 5"%E [%23>1*[ ## E## 0>5 2>*0:>E#O

DRO# EIMINAREste comando elimina un ob/eto de la base de datos. -uede ser una tabla, vista, ndice, trigger,

función, procedimiento o cualquier ob/eto que el motor de la base de datos soporte. *e puede

combinar con la sentencia %5E6.

E/emplo

 #61- 5"%E [%23>1*[O.

TRUNCATE BORRAR TABA

Este comando trunca todo el contenido de una tabla. %a venta/a sobre el comando #61-, es que si

se quiere borrar todo el contenido de la tabla, es mucho m&s r&pido, especialmente si la tabla es muy

grande. %a desventa/a es que 562>95E sólo sirve cuando se quiere eliminar absolutamente todos

7/18/2019 Administracion de Base de Datos

http://slidepdf.com/reader/full/administracion-de-base-de-datos-56970afe138c6 27/50

los registros, ya que no se permite la cl&usula ?@E6E. *i bien, en un principio, esta sentencia

parecera ser #3% (%engua/e de 3anipulación de #atos), es en realidad una ##%, ya que

internamente, el comando 562>95E borra la tabla y la vuelve a crear y no e/ecuta ninguna

transacción.

E/emplo 562>95E 5"%E [>13"6E\5"%[O

en.ua3e de mani%u!ación de datos DM &Data Mani%u!ation an.ua.e'

Definición

2n lengua/e de manipulación de datos (#ata 3anipulation %anguage, o #3% en inglés) es un lengua/e

proporcionado por el sistema de gestión de base de datos que permite a los usuarios llevar a cabo las

tareas de consulta o manipulación de los datos, organizados por el modelo de datos adecuado.

El lengua/e de manipulación de datos m&s popular hoy da es *7%, usado para recuperar y manipular 

datos en una base de datos relacional.

SEECT SEECCIONAR

%a sentencia *E%E95 nos permite consultar los datos almacenados en una tabla de la base de datos.

FORMA BSICA

SELECT [ ALL | DISTINCT ]

  <nombre_campo> [{,<nombre_campo>}]

FROM  <nombre_tabla>|<nombre_vista>

[{,<nombre_tabla>|<nombre_vista>}]

[ WHERE <condición> [{ AND|OR  <condición>}]]

[GROUP BY <nombre_campo> [{,<nombre_campo >}]]

[HAVING <condición>[{ AND|OR  <condición>}]]

[ORDER BY <nombre_campo>|<indice_campo> [ ASC | DESC]

  [{,<nombre_campo>|<indice_campo> [ ASC | DESC ]}]] 

SEECT -alabra clave que indica que la sentencia de *7% que queremos e/ecutar es de selección.

A 0ndica que queremos seleccionar todos los valores.Es el valor por defecto y no sueleespecificarse casi nunca.

DISTINCT 0ndica que queremos seleccionar sólo los valores distintos.

FROM

0ndica la tabla (o tablas) desde la que queremos recuperar los datos. En el caso de que

exista m&s de una tabla se denomina a la consulta Xconsulta combinadaX o X/oinX. En las

consultas combinadas es necesario aplicar una condición de combinación a través de una

cl&usula /(ERE.

/(EREEspecifica una condición que debe cumplirse para que los datos sean devueltos por la

consulta. dmite los operadores lógicos AND y OR.ROU#

BY

Especifica la agrupación que se da a los datos. *e usa siempre en combinación con

funciones agregadas.(A*IN Especifica una condición que debe cumplirse para que los datos sean devueltos por la

7/18/2019 Administracion de Base de Datos

http://slidepdf.com/reader/full/administracion-de-base-de-datos-56970afe138c6 28/50

consulta. *u funcionamiento es similar al de /(ERE pero aplicado al con/unto de

resultados devueltos por la consulta. #ebe aplicarse siempre /unto a ROU# BY y la

condición debe estar referida a los campos contenidos en ella.

ORDER

BY

-resenta el resultado ordenado por las columnas indicadas. El orden puede expresarse

con ASC (orden ascendente) y DESC (orden descendente). El valor predeterminado

es ASC1

E/emplo

-ara formular una consulta a la tabla 9oches y recuperar los campos matricula, marca, modelo, color,

numero\8ilometros, num\plazas debemos e/ecutar la siguiente consulta. %os datos ser&n devueltos

ordenados por marca y por modelo en orden ascendente, de menor a mayor. %a palabra

clave FROM indica que los datos ser&n recuperados de la tabla 9oches.

 SELECT matricula, marca, modelo, color, numero_kilometros, num_plazas

FROM  Coches

 ORDER BY marca,modelo;

E/emplo de 9onsulta simplificada a través de un comodn de 9ampos (])

El uso del asterisco indica que queremos que la consulta devuelva todos los campos que existen en

la tabla y los datos ser&n devueltos ordenados por marca y por modelo.

 SELECT * FROM  Coches ORDER BY marca, modelo;

C!;usu!a /(ERE

%a cl&usula WHERE  es la instrucción que nos permite filtrar el resultado de una sentencia SEECT.

@abitualmente no deseamos obtener toda la información existente en la tabla, sino que queremos

obtener sólo la información que nos resulte til en ese momento. %a cl&usula /(ERE filtra los datos

antes de ser devueltos por la consulta. 9uando en la 9l&usula ?@E6E queremos incluir un tipo texto,

debemos incluir el valor entre comillas simples.

E/emplos

En nuestro e/emplo, se desea consultar un coche en concreto, para esto se agregó una

cl&usula /(ERE. Esta cl&usula especifica una o varias condiciones que deben cumplirse para que la

sentencia SEECT devuelva los datos. En este caso la consulta devolver& sólo los datos del coche

con matrcula para que la consulta devuelva sólo los datos del coche con matrcula 3BA=KMA^#  o

7/18/2019 Administracion de Base de Datos

http://slidepdf.com/reader/full/administracion-de-base-de-datos-56970afe138c6 29/50

bien la matrcula BPADKLA^% . *e puede utilizar la cl&usula /(ERE solamente, ó en combinación con

tantas condiciones como queramos.

 SELECT matricula, marca, modelo, color, numero_kilometros, num_plazas

FROM  Coches

  WHERE matricula !"#$%&'$()!

OR  matricula !#$+&$(-! ;

2na 9ondición ?@E6E puede ser negada a través del 1perador %ógico >15. %a *iguiente consulta

devolver& todos los datos de la tabla 9oches, menos el que tenga la 3atrcula 3BA=KMA^# .

 SELECT matricula,marca, modelo, color, numero_kilometros, num_plazas

 FROM  coches

  WHERE NOT matricula !"#$%&'$()!;

%a *iguiente consulta utiliza la condicional DISTINCT, la cual nos devolver& todos los valores distintos

formados por los 9ampos Marca y Modelo. #e la tabla coches.

 SELECT DISTINCT marca, modelo FROM  coches;

C!;usu!a ORDER BY

%a cl&usula ORDER B   es la instrucción que nos permite especificar el orden en el que ser&n

devueltos los datos. -odemos especificar la ordenación ascendente o descendente a través de las

palabras clave ASC y DESC. %a ordenación depende del tipo de datos que esté definido en lacolumna, de forma que un campo numérico ser& ordenado como tal, y un alfanumérico se ordenar&

de la a la ^, aunque su contenido sea numérico. El valor predeterminado es *9 si no se especifica

al hacer la consulta.

E/emplos

SEECT matricula,

marca,

modelo,color,

7/18/2019 Administracion de Base de Datos

http://slidepdf.com/reader/full/administracion-de-base-de-datos-56970afe138c6 30/50

numero\8ilometros,

num\plazas

FROM coches

ORDER BY marca ASC,modelo DESCO Este e/emplo, selecciona todos los campos matricula, marca,

modelo, color, numero\8ilometros y num\plazas de la tabla coches, orden&ndolos por los camposmarca y modelo, marca en forma ascendente y modelo en forma descendente.

SELECT matricula,

marca,

modelo,

color,

numero_kilometros, num_plazas

FROM   coches

ORDER BY %;

Este e/emplo, selecciona todos los campos matrcula, marca, modelo, color, numero\8ilometros y

num\plazas de la tabla coches, orden&ndolos por el campo marca, ya que aparece en segundo lugar 

dentro de la lista de campos que componen la *E%E95.

INSERT INSERTAR

2na sentencia 0>*E65 de *7% agrega uno o m&s registros a una (y sólo una) tabla en una base de

datos relacional.

Forma ";sica INSERT INTO !ta.latura! /!columna0!,[!columna%,111 !]2 

 VALUES /!3alor0!, [!3alor%,111!]2

%as cantidades de columnas y valores deben ser iguales. *i una columna no se especifica, le ser&

asignado el valor por omisión. %os valores especificados (o implcitos) por la

sentencia 0>*E65 deber&n satisfacer todas las restricciones aplicables. *i ocurre un error de sintaxis

o si alguna de las restricciones es violada, no se agrega la fila y se devuelve un error.

E3em%!o

 INSERT INTO a4enda_tele5onica /nom.re, numero2 

 VALUES /!6o.erto 7eldrez!, '89:2;

9uando se especifican todos los valores de una tabla, se puede utilizar la sentencia acortada

 INSERT INTO nom.rea.la VALUES /!3alor0!, [!3alor%,111!]2

E/emplo (asumiendo que [nombre[ y [nmero[ son las nicas columnas de la tabla

[agenda\telefonica[)

 INSERT INTO a4enda_tele5onica

 VALUES /!7honn =4uiar!, ::'&+82;

Formas a$an)adas

7/18/2019 Administracion de Base de Datos

http://slidepdf.com/reader/full/administracion-de-base-de-datos-56970afe138c6 31/50

2na caracterstica de *7% (desde *7%AD=) es el uso de constructores de filas para insertar mltiples

filas a la vez, con una sola sentencia *7%

INSERT INTO !!ta.la!! /!!columna0!!, [!!columna%,111 !!]2 

 VALUES /!!3alor0a!!, [!!3alor0.,111!!]2, 

/!!3alue%a!!, [!!3alue%.,111!!]2,111;

U#DATE

2na sentencia 2-#5E de *7% es utilizada para modificar los valores de un con/unto de registros

existentes en una tabla.

E3em%!o

UPDATE "_ta.le SET 5ield0  !updated 3alue asd!  WHERE 5ield%  !?!;

DEETE

2na sentencia #E%E5E de *7% borra uno o m&s registros existentes en una tabla.

Forma ";sica

DELETE FROM  ta.la WHERE columna0  !3alor0!

E3em%!o

DELETE FROM  "_ta.le WHERE 5ield%  !?!;

7/18/2019 Administracion de Base de Datos

http://slidepdf.com/reader/full/administracion-de-base-de-datos-56970afe138c6 32/50

ESTIÓN DE USUARIOS Y ESUEMAS DE SEURIDAD

AUTENTICACIÓN

2n usuario debe de tener una cuenta para conectarse al *7% *erver. Este reconoce = mecanismos

de utentificación de *7% *erver y de ?indo4s. 9ada uno tiene diferente tipo de cuenta.

Autentificación de S Ser$er 

9uando se usa un administrador del *istema *7% *erver, define una cuenta y un pass4ord

*7% *erver. %os usuarios deben de suministrar tanto el login como el pass4ord cuando se

conectan.

Autentificación /indo2s

9uando se usa el usuario no necesita de una cuenta *7% *erver, para conectarse. 2n

administrador del sistema debe definir ya sean cuentas de ?indo4s o grupos de ?indo4s

como cuentas validas de *7% *erver.

E Inicio de Sesion GsaH &S:stem Administration'

7/18/2019 Administracion de Base de Datos

http://slidepdf.com/reader/full/administracion-de-base-de-datos-56970afe138c6 33/50

 dministrador del *istema (sa) es una cuenta especial. #e forma predeterminada, esta

asignada a la función fi/a de servidor s:sadmin y no es posible cambiarla. *e incluye por 

compatibilidad con versiones anteriores de 3icrosoft *7% *erver. unque sa es una cuenta

de administrador integrada, no debe de utilizarse habitualmente. En su lugar, los

administradores deben de pertenecer a la función fi/a de servidor s:sadmin y conectarse consus propios nombres de inicio de sesión. *olo debe de usarse sa cuando no haya otro modo

de iniciar sesión en *7% *erverO por e/emplo, cuando los dem&s administradores del sistema

no estén disponibles o cuando hayan olvidado sus contraseas.

ROES Y FUNCIONES

*7% *erver proporciona roles de nivel de servidor para ayudarle a administrar los permisos de un

servidor. Estos roles son entidades de seguridad que agrupan otras entidades de seguridad. %os roles

de nivel de servidor se aplican a todo el servidor en lo que respecta a su &mbito de

permisos. (%os roles son como los grupos del sistema operativo ?indo4s.)

%os roles fi/os de servidor se proporcionan por comodidad y compatibilidad con versiones

anteriores. *iempre que sea posible, asigne permisos m&s especficos.

*7% *erver proporciona nueve roles fi/os de servidor. %os permisos que se conceden a los roles fi/os

de servidor no se pueden modificar. partir de *7% *erver =FC=, puede crear roles de servidor 

definidos por el usuario y agregarles permisos de nivel de servidor.

-uede agregar entidades de seguridad a nivel de servidor (inicios de sesión de *7% *erver, cuentas

de ?indo4s y grupos de ?indo4s) a los roles de nivel de servidor. 9ada miembro de un rol fi/o deservidor puede agregar otros inicios de sesión a ese mismo rol. %os miembros de roles de servidor 

definidos por el usuario no pueden agregar otras entidades de seguridad de servidor al rol.

ROES FIOS DE NI*E DE SER*IDOR

En la tabla siguiente se muestran los roles fi/os de nivel de servidor y sus capacidades.

Ro! fi3o

de ni$e!

de

ser$idor 

Descri%ción

s:sadmin

%os miembros del rol fi/o de servidor sysadmin pueden realizar cualquier actividad enel servidor.

ser$erad

min

%os miembros del rol fi/o de servidor serveradmin pueden cambiar las opciones de

configuración del servidor y apagarlo.securit:a

dmin

%os miembros del rol fi/o de servidor securityadmin administran los inicios de sesión y

sus propiedades. dministran los permisos de servidor :6>5, #E>+ y

6EJ1PE. 5ambién pueden administrar los permisos de nivel de base de datos

:6>5, #E>+ y 6EJ1PE si tienen acceso a una base de datos. simismo, pueden

restablecer las contraseas para los inicios de sesión de *7% *erver.

 >ota de seguridad

7/18/2019 Administracion de Base de Datos

http://slidepdf.com/reader/full/administracion-de-base-de-datos-56970afe138c6 34/50

%a capacidad de conceder acceso a 3otor de base de datos y configurar los permisos de usuario per 

la mayora de los permisos de servidor. El rol securityadmin se debe tratar como equivalente al rol

%rocessa

dmin

%os miembros del rol fi/o de servidor processadmin pueden finalizar los procesos que

se e/ecuten en una instancia de *7% *erver.

setu%ad

min

%os miembros del rol fi/o de servidor setupadmin pueden agregar y quitar servidores

vinculados mediante instrucciones 5ransactA*7%. (*e necesita la pertenencia a

sysadmin cuando se utiliza 3anagement *tudio)."u!Jadmi

n

%os miembros del rol fi/o de servidor bul8admin pueden e/ecutar la instrucción "2%P

0>*E65.disJadmi

n

El rol fi/o de servidor dis8admin se usa para administrar archivos de disco.

d"creato

%os miembros del rol fi/o de servidor dbcreator pueden crear, modificar, quitar y

restaurar cualquier base de datos.%u"!ic 9ada inicio de sesión de *7% *erver pertenece al rol de servidor public. 9uando a una

entidad de seguridad de servidor no se le han concedido ni denegado permisos

especficos para un ob/eto protegible, el usuario hereda los permisos concedidos al rol

public para ese ob/eto. *olo asigne permisos pblicos en cualquier ob/eto cuando

desee que el ob/eto esté disponible para todos los usuarios. >o puede cambiar la

pertenencia en public.

 >ota

public se implementa de manera diferente que otros roles. *in embargo, se pueden conceder, denega

#ERMISOS DE NI*E DE SER*IDOR

*olo se pueden agregar a los roles de servidor definidos por el usuario los permisos de nivel de

servidor. -ara enumerar los permisos de nivel de servidor, e/ecute la instrucción siguiente. %os

permisos de nivel de servidor son

5ransactA*7%

*E%E95 ] B613 sys.fn\builtin\permissions([*E6JE6[) 16#E6 "+ permission\nameO

-ara obtener m&s información acerca de los permisos, vea -ermisos (motor de base de

datos) y sys.fn\builtin\permissions (5ransactA*7%).

5raba/ar con roles de nivel de servidor 

En la tabla siguiente se explican los comandos, las vistas y las funciones que se pueden utilizar para

traba/ar con roles de nivel de servidor.

Caracter7stica Ti%o Descri%cións%K4e!%sr$ro!e &Transact@

S'

3etadatos #evuelve una lista de roles de nivel de servidor.

s%K4e!%sr$ro!emem"er 

&Transact@S'

3etadatos #evuelve información acerca de los miembros de

un rol de nivel de servidor.

s%Ksr$ro!e%ermission&Transact@S'

3etadatos 3uestra los permisos de un rol de nivel de servidor.

7/18/2019 Administracion de Base de Datos

http://slidepdf.com/reader/full/administracion-de-base-de-datos-56970afe138c6 35/50

ISKSR*ROEMEMBER

&Transact@S'

3etadatos 0ndica si un inicio de sesión de *7% *erver es

miembro del rol de nivel de servidor especificado.s:s1ser$erKro!eKmem"ers

&Transact@S'

3etadatos #evuelve una fila por cada miembro de cada rol de

nivel de servidor.s%Kaddsr$ro!emem"er 

&Transact@S'

9omando grega un inicio de sesión como miembro de un rol

de nivel de servidor. #esusado. 2tilice %5E6

*E6JE6 61%E en su lugar.s%Kdro%sr$ro!emem"er 

&Transact@S'

9omando 7uita un inicio de sesión de *7% *erver o un

usuario o grupo de ?indo4s de un rol de nivel de

servidor. #esusado. 2tilice %5E6 *E6JE6

61%E en su lugar.CREATE SER*ER ROE

&Transact@S'

9omando 9rea un rol de servidor definido por el usuario.

ATER SER*ER ROE

&Transact@S'

9omando 9ambia la pertenencia de un rol de servidor o

cambia el nombre de un rol de servidor definido por el usuario.

DRO# SER*ER ROE

&Transact@S'

9omando 7uita un rol de servidor definido por el usuario.

ISKSR*ROEMEMBER

&Transact@S'

Bunción #etermina la pertenencia del rol de servidor.

ESTIÓN DE CO#IAS DE SEURIDAD

 5ener instalado 3icrosoft *7% *erver 3anagement *tudio para la conexión a la instancia de "ase de

datos (segn sea =FC=, =FFL 6=, =FFL, =FFQ).

5ener instalada una misma versión e intercalación (collation) de *7% en los *ervidores involucrados

(donde se va a restaurar el bac8up y de donde se obtuvo el bac8up).

 

7/18/2019 Administracion de Base de Datos

http://slidepdf.com/reader/full/administracion-de-base-de-datos-56970afe138c6 36/50

 

Consideraciones adiciona!es

*i usted est& moviendo un proyecto que se encuentra en fases de automatización (ambiente de

desarrollo), hacia un servidor diferente (pero igual de desarrollo) y desea conservar las instancias de

-roceso (casos), tenga en cuenta que los ad/untos de estos casos no estar&n dentro de la

información del bac8up.

-or lo tanto en el hipotético escenario en el que desee trasladar los casos de un ambiente de

desarrollo, deber& considerar mover también la ubicación de éstos (sea el *ervidor "-3, un *ervidor 

diferente de archivos, o un E93).

 Crear un BacJu%

-ara crear un bac8up de su "ase de datos

 utentquese en su instancia de *7% *erver (login) a través de *7% *erver 3anagement *tudio.

 

7/18/2019 Administracion de Base de Datos

http://slidepdf.com/reader/full/administracion-de-base-de-datos-56970afe138c6 37/50

 2bique la "ase de datos y dé clic derecho sobre ésta. *eleccione la opción "ac8up... desde las

tareas

 

Especifique que el bac8up se realice completo (modo B2%%). 

7/18/2019 Administracion de Base de Datos

http://slidepdf.com/reader/full/administracion-de-base-de-datos-56970afe138c6 38/50

 

>ótese que debe seleccionar una ruta v&lidar para almacenar el archivo resultante (.ba8).

*i no desea utilizar la ruta por defecto, puede navegar y seleccionar otro directorio. *i utiliza otro

directorio, asegrese de contar con los permisos de escritura sobre él.

 

@aga clic en 1P cuando la operación se haya completado 

7/18/2019 Administracion de Base de Datos

http://slidepdf.com/reader/full/administracion-de-base-de-datos-56970afe138c6 39/50

 

0mportante

>ótese que podr& crear = tipos b&sicos de "ac8ups

_

Bull "ac8up Esta opción crea un bac8up completo (de toda la "ase de datos). 9on esta opción se

limpian las transacciones almacenadas en el log de transacciones.

_#ifferential "ac8up Es un bac8up diferencial, donde se almacena la parte que ha cambiado conrespecto al ltimo bac8up completo (Bull "ac8up). El log de transacciones también es truncado.

 

-ara restaurar un proyecto de "izagi a su ltimo estado por medio de un bac8up, se recomienda crear 

y utilizar los bac8ups en modo Bull bac8up.

-or e/emplo, los bac8ups autom&ticos que toma "izagi los realiza de esta manera.

 

7/18/2019 Administracion de Base de Datos

http://slidepdf.com/reader/full/administracion-de-base-de-datos-56970afe138c6 40/50

 

7/18/2019 Administracion de Base de Datos

http://slidepdf.com/reader/full/administracion-de-base-de-datos-56970afe138c6 41/50

ESTIÓN DE #ROCEDIMIENTOS AMACENADOS Y

DIS#ARADORES

#ROCEDIMIENTOS AMACENADOS

2n procedimiento es un programa dentro de la base de datos que e/ecuta una acción o con/unto deacciones especficas.

2n procedimiento tiene un nombre, un con/unto de par&metros (opcional) y un bloque de código.

En 5ransact *7% los procedimientos almacenados pueden devolver valores (numerico entero) o

con/untos de resultados.

-ara crear un procedimiento almacenado debemos emplear la sentencia CREATE #ROCEDURE.

CREATE PROCEDURE <nombre_procedure> [@param1 <tipo>, ...]

AS

-- Sentencias del procedure

-ara modificar un procedimiento almacenado debemos emplear la sentencia ATER #ROCEDURE.

ALTER PROCEDURE <nombre_procedure> [@param1 <tipo>, ...]

AS

-- Sentencias del procedure

 

El siguiente e/emplo muestra un procedimiento almacenado, denominado spu\add9liente que inserta

un registro en la tabla X9%0E>5E*X.

CREATE PROCEDURE spu_addCliente @nombre varchar(100),

@apellido1 varchar(100),

@apellido varchar(100),

@ni!Ci! varchar(0),

@!"#aciento datetime

AS

INSERT INTO C$%&#'&S

(nombre, apellido1, apellido, ni!ci! , !"nacimiento) VALUES

7/18/2019 Administracion de Base de Datos

http://slidepdf.com/reader/full/administracion-de-base-de-datos-56970afe138c6 42/50

(@nombre, @apellido1, @apellido, @ni!Ci! , @!"#aciento)

 

-ara la e/ecutar un procedimiento almacenado debemos utilizar la sentencia EEC. 9uando la

e/ecución del procedimiento almacenado es la primera instrucción del lote, podemos omitir el uso

de EEC.

El siguiente e/emplo muestra la e/ecución del procedimiento almacenado anterior.

DECLARE @!eca_nacimiento datetime

set @!eca_nacimiento  con*ert(datetime, +101/+, 10)

EXEC spu_addCliente +edro+, +2errarte+, +Sance3+, 

+0000000+, @!eca_nacimiento

*iempre es deseable que las instrucciones del procedure estén dentro de un bloque TRY CATC( y

controlados por una transacción.

ALTER PROCEDURE spu_addCliente @nombre varchar(100),

@apellido1 varchar(100),

@apellido varchar(100),

@ni!Ci! varchar(0),

@!"#aciento datetime

AS

BEGIN TRY 

BEGIN TRAN 

INSERT INTO C$%&#'&S

(nombre, apellido1, apellido, ni!ci! , !"nacimiento) VALUES

(@nombre, @apellido1, @apellido, @ni!Ci! , @!"#aciento) 

COMMIT

END TRY 

BEGIN CATC

7/18/2019 Administracion de Base de Datos

http://slidepdf.com/reader/full/administracion-de-base-de-datos-56970afe138c6 43/50

ROLLBAC! 

PRINT &4454_6&SS78&()

END CATC

*i queremos que los par&metros de un procedimiento almacenado sean de entradaAsalida debemos

especificarlo a través de la palabra clave OUT#UT, tanto en la definición del procedure como en la

e/ecución.

El siguiente e/emplo muestra la definición de un procedure con par&metros de salida.

CREATE PROCEDURE spu_5btenerSaldoCuenta @numCuenta varchar(0), 

@saldo decima"(10,) #$t%$t 

AS

BEGIN

SELECT @saldo  S7$95

&ROM C:&#'7S

'ERE #:6C:&#'7  @numCuenta

END

 

+ para e/ecutar este procedure

DECLARE @saldo decima"(10,)

EXEC spu_5btenerSaldoCuenta +0000000001+, @saldo #$t%$t

PRINT @saldo

2n procedimiento almacenado puede devolver valores numéricos enteros a través de la instrucción

6E526>. >ormalmente debemos utilizar los valores de retorno para determinar si la e/ecución del

procedimiento ha sido correcta o no. *i queremos obtener valores se recomienda utilizar par&metros

de salida o funciones escalares (se ver&n m&s adelante en este tutorial).

El siguiente e/emplo muestra un procedimiento almacenado que devuelve valores.

CREATE PROCEDURE spu_&sta&n#umeros4o;os @numCuenta varchar(0)

7/18/2019 Administracion de Base de Datos

http://slidepdf.com/reader/full/administracion-de-base-de-datos-56970afe138c6 44/50

AS

BEGIN

I& (SELECT S7$95 &ROM C:&#'7S

  'ERE #:6C:&#'7  @numCuenta) < 0

BEGIN

RETURN 1

END

ELSE

RETURN 0

END

El siguiente e/emplo muestra como e/ecutar el procedure y obtener el valor devuelto.

DECLARE @r* i(t

EXEC @r*  spu_&sta&n#umeros4o;os +0000000001+

PRINT @r*

1tra caracterstica muy interesante de los procedimientos almacenados en 5ransact *7% es

que pueden devolver uno o varios con/untos de resultados.

El siguiente e/emplo muestra un procedimiento almacenado que devuelve un con/unto de resultados.

CREATE PROCEDURE spu_6o*imientosCuenta @numCuenta varchar(0)

AS

BEGIN

SELECT  @numCuenta, 

S7$95_7#'&4%54, 

S7$95_5S'&4%54, 

%654'&, 

=65%6%&#'5

7/18/2019 Administracion de Base de Datos

http://slidepdf.com/reader/full/administracion-de-base-de-datos-56970afe138c6 45/50

&ROM 65%6%&#'5S

%##&4  ?5%# C:&#'7S ON 65%6%&#'5S.%9C:&#'7  C:&#'7S.%9C:&#'7

'ERE #:6C:&#'7  @numCuenta

ORDER BY  =65%6%&#'5 DESC

END

%a e/ecución del procedimiento se realiza normalmente.

EXEC spu_6o*imientosCuenta +0000000001+ 

El resultado de la e/ecución ...

NUMCUENTA SALDO_ANTERIOR SALDO_POSTERIOR IMPORTE FXMOVIMIENTO

------------ -------------- ---------------- -------

-----------------------

200700000001 50.99 100.99 50.00 2007-08-25

16:18:36.490

200700000001 0.99 50.99 50.00 2007-08-23

16:20:41.183

200700000001 50.99 0.99 50.00 2007-08-23

16:16:29.840

200700000001 0.99 50.99 50.00 2007-08-23

16:14:05.900

TRIERS

2n trigger( o desencadenador) es una clase especial de procedimiento almacenado que se e/ecuta

autom&ticamente cuando se produce un evento en el servidor de bases de datos.

*7% *erver proporciona los siguientes tipos de triggers

• 5rigger #3%, se e/ecutan cuando un usuario intenta modificar datos mediante un evento de

lengua/e de manipulación de datos (#3%). %os eventos #3% son instrucciones 0>*E65,

2-#5E o #E%E5E de una tabla o vista.

• 5rigger ##%, se e/ecutan en respuesta a una variedad de eventos de lengua/e de definición

de datos (##%). Estos eventos corresponden principalmente a instrucciones 96E5E, %5E6

y #61- de Transact-SQL, y a determinados procedimientos almacenados del sistema

que ejecutan operaciones de tipo DDL.

Tri..er DM1

%os trigger #3% se e/ecutan cuando un usuario intenta modificar datos mediante un evento de

lengua/e de manipulación de datos (#3%). %os eventos #3% son instrucciones 0>*E65, 2-#5E o

#E%E5E de una tabla o vista.

%a sintaxis general de un trigger es la siguiente.

7/18/2019 Administracion de Base de Datos

http://slidepdf.com/reader/full/administracion-de-base-de-datos-56970afe138c6 46/50

CREATE TRIGGER < 'rier_#ame, s)s(ame, 'rier_#ame> 

ON < 'able_#ame, s)s(ame, 'able_#ame> 

7'&4 <9ata_6odiAcation_Statements, , INSERT,DELETE,UPDATE>

AS 

BEGIN

-- S&' #5C5:#' 5# added to pre*ent e"tra result sets !rom

-- inter!erin Bit S&$&C' statements.

SET NOCOUNT ON

-- %nsert statements !or trier ere

END

 ntes de ver un e/emplo es necesario conocer las tablas inserted y deleted.

%as instrucciones de triggers #3% utilizan dos tablas especiales denominadas inserted y deleted. *7%

*erver =FFQ crea y administra autom&ticamente ambas tablas. %a estructura de las

tablas inserted y deleted es la misma que tiene la tabla que ha desencadenado la e/ecución del

trigger.

%a primera tabla (inserted) solo est& disponible en las operaciones 0>*E65 y 2-#5E y en ella est&nlos valores resultantes despues de la inserción o actualización. Es decir, los datos

insertados. 0nserted estar& vacia en una operación #E%E5E.

En la segunda (deleted), disponible en las operaciones 2-#5E y #E%E5E, est&n los valores

anteriores a la e/ecución de la actualización o borrado. Es decir, los datos que

ser&n borrados. #eleted estar& vacia en una operacion 0>*E65.

T>o existe una tabla 2-#5E#U >o, hacer una actualización es lo mismo que borrar (deleted) e

insertar los nuevos (inserted). %a sentencia 2-#5E es la nica en la que inserted y deleted tienen

datos simult&neamente.

>o se puede modificar directamente los datos de estas tablas.

El siguiente e/emplo, graba un histórico de saldos cada vez que se modifica un saldo de la tabla

cuentas.

CREATE TRIGGER '4_C:&#'7S

ON C:&#'7S

7'&4 UPDATE

AS 

7/18/2019 Administracion de Base de Datos

http://slidepdf.com/reader/full/administracion-de-base-de-datos-56970afe138c6 47/50

BEGIN

-- S&' #5C5:#' 5# impide Due se eneren mensa;es de te"to

-- con cada instrucciEn

SET NOCOUNT ON

INSERT INTO 2C5_S7$95S

(%9C:&#'7, S7$95, =S7$95)

SELECT %9C:&#'7, S7$95, etdate()

&ROM %#S&4'&9

END

%a siguiente instrucción provocar& que el trigger se e/ecute

UPDATE C:&#'7S

SET S7$95  S7$95 F 10

'ERE %9C:&#'7  1

2na consideración a tener en cuenta es que el trigger se e/ecutar& aunque la instruccion #3%

(2-#5E, 0>*E65 o #E%E5E ) no haya afectado a ninguna fila. En este

caso inserted y de!eted devolveran un con/unto de datos vacio.

-odemos especificar a que columnas de la tabla debe afectar el trigger.

ALTER TRIGGER '4_C:&#'7S

ON C:&#'7S

7'&4 UPDATE

AS 

BEGIN

-- S&' #5C5:#' 5# impide Due se eneren mensa;es de te"to

-- con cada instrucciEn

SET NOCOUNT ON

7/18/2019 Administracion de Base de Datos

http://slidepdf.com/reader/full/administracion-de-base-de-datos-56970afe138c6 48/50

 

I& UPDATE(S7$95) -- Solo si se actuali3a S7$95

BEGIN 

INSERT INTO 2C5_S7$95S

(%9C:&#'7, S7$95, =S7$95)

SELECT %9C:&#'7, S7$95, etdate()

&ROM %#S&4'&9

END

END

%os trigger est&n dentro de la transacción original (0nsert, #elete o 2pdate) por lo cual si dentro de

nuestro trigger hacemos un 6oll"ac8 5ran, no solo estaremos echando atr&s nuestro trigger sino

también toda la transacciónO en otras palabras si en un trigger ponemos un 6oll"ac8 5ran, la

transacción de 0nsert, #elete o 2pdate volver& toda hacia atr&s.

ALTER TRIGGER '4_C:&#'7S

ON C:&#'7S

7'&4 UPDATE

AS 

BEGIN

-- S&' #5C5:#' 5# impide Due se eneren mensa;es de te"to

-- con cada instrucciEn

SET NOCOUNT ON

INSERT INTO 2C5_S7$95S

(%9C:&#'7, S7$95, =S7$95)

SELECT %9C:&#'7, S7$95, etdate()

&ROM %#S&4'&9

 

7/18/2019 Administracion de Base de Datos

http://slidepdf.com/reader/full/administracion-de-base-de-datos-56970afe138c6 49/50

ROLLBAC! 

END

En este caso obtendremos el siguiente mensa/e de error

%a transacción terminó en el desencadenador. *e anuló el lote.

-odemos activar y desactivar 5riggers a través de las siguientes instrucciones.

 

-- 9esacti*a el trier '4_C:&#'7S

DISABLE TRIGGER '4_C:&#'7S ON C:&#'7S

85

-- acti*a el trier '4_C:&#'7S

ENABLE TRIGGER '4_C:&#'7S ON C:&#'7S

85

-- 9esacti*a todos los trier de la tabla C:&#'7S

ALTER TABLE C:&#'7S DISABLE TRIGGER 7$$

85

-- 7cti*a todos los trier de la tabla C:&#'7S

ALTER TABLE C:&#'7S ENABLE TRIGGER 7$$ 

Tri..er DD

%os trigger ##% se e/ecutan en respuesta a una variedad de eventos de lengua/e de definición de

datos (##%). Estos eventos corresponden principalmente a instrucciones 96E5E, %5E6 y #61-de 5ransactA*7%, y a determinados procedimientos almacenados del sistema que e/ecutan

operaciones de tipo ##%.

%a sintaxis general de un trigger es la siguiente.

CREATE TRIGGER <trier_name, s)s(ame, table_alter_drop_sa!etG> 

ON DATABASE 

&OR <data_deAnition_statements, , 945_'7H$&, 7$'&4_'7H$&> 

7/18/2019 Administracion de Base de Datos

http://slidepdf.com/reader/full/administracion-de-base-de-datos-56970afe138c6 50/50

AS 

BEGIN

***

END 

%a siguiente instrucción impide que se e/ecuten sentencias #61- 5"%E y %5E6 5"%E en la base

de datos.

CREATE TRIGGER '4_S&8:4%979

ON DATABASE &OR 945_'7H$&, 7$'&4_'7H$&

AS 

BEGIN

RAISERROR (+>o est& permitido borrar ni modificar tablas `+ , 1I, 1)

ROLLBAC!  TRANSACTION 

END