Professional Documents
Culture Documents
DATOS
CATEDRTICO :
ESTUDIANTES:
ADMINISTRACIN DE BASE DE
SEMESTRE:
TURNO :
VI
Tarde
Agradecemos al docente
de la ctedra, por su constante
exigencia, orientacin, enseanzas y
consejos para forjar en nosotros
buenos profesionales.
Introduccin
En la poca actual, la informacin y su tratamiento automatizado no slo
esnecesaria para el eficiente funcionamiento de toda organizacin, sino que se
ha convertido en uno de los principales elementos de competitividad.
Ya 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 administracin de la base de datos misma por
parte del personal del rea de sistemas de la organizacin.
Las alumnas
CAPITULO I
1.1.2. Informacin
Informacin: significado percibido al recibir un mensaje.
La percepcin humana es, por naturaleza, subjetiva. Por lo tanto la informacin
referida a un mismo dato tendr la posibilidad de ser resultado de varias
interpretaciones.
Si se tienen varias personas que interpretarn un mismo dato o conjunto de
datos, deber existir un acuerdo para la forma de interpretarlos (obtener el
significado o informacin).
a. Medio de Almacenamiento
El medio es el objeto real, mecanismo o tecnologa disponible para que los
datos (representaciones abstractas de informacin) permanezcan, sean
registrados, accedidos, modificados o eliminados. En el contexto de bases de
datos almacenadas y accedidas en forma mecnica (con uso de computadoras,
por ejemplo), actualmente los medios ms usados son:
- Medio Magntico
- Medio ptico
b. Representacin
La representacin, al ms bajo nivel puede ser:
- Analgica o contina
- Digital o discreta.
son
desarrollados
para
arquitecturas
tanto
mainframe
como
a. Escalabilidad
Capacidad de mejorar con el incremento de recursos invertidos (generalmente
los recursos pueden medirse en dinero). Un DBMS debe permitir inversin de
recursos a medida que se requiera mayores y/o mejores servicios de la base
de
datos.
Esta
situacin generalmente se
presenta
para un mejor
b. Rendimiento
Caracterstica de realizar las tareas involucradas como de recuperacin de
datos, actualizacin, respuesta a la concurrencia de muchos usuarios, etc. de
una manera eficiente. Sin embargo el rendimiento de un DBMS depende de
otros factores como la plataforma donde corre.
c. Portabilidad
Caracterstica de permitir transportar de una manera transparente o fcil un
producto de una plataforma a otra.
En el caso de los DBMS, no slo es la consideracin de portabilidad del
producto (el software mismo) sino los datos que la base de datos administra.
d. Universalidad
Se refiere a los mltiples tipos de datos que puede manejar un DBMS, los que
actualmente se denominan datos multimedia.
f. Escalabilidad Horizontal
Capacidad de incrementar la cantidad de usuarios de la base de datos o la
cantidad de estaciones con conexin a la base de datos.
a. El nivel Externo
Tambin llamado nivel de visin o "subesquemas" (segn J.Martin) es el nivel
ms cercano al usuario final, o sea es la forma cmo estos perciben los datos.
Generalmente a un usuario le interesa slo una parte de toda la base de datos
y no le interesa los aspectos "tcnicos" deseando slo indicar QUE datos son
los que requiere.
b. El nivel Conceptual
Tambin llamado "Esquema" (J.Martin) describe la totalidad de los datos de la
base de datos.
En este nivel interesa CUALES son los datos necesarios, as como las
relaciones entre estos.
Este nivel es visible a usuarios profesionales de S.I., desarrolladores y - por
supuesto - al DA.
c. El nivel Interno
Tambin llamado nivel fsico, describe CMO son almacenados los datos en la
base de datos.
Una parte de este nivel debe ser visible al DBA y totalmente visible a quienes
desarrollan software del tipo DBMSs.
Crecimiento
Reestructuracin
1.1.10.
Modelos de datos
1.1.11.
Se describen mediante:
a. Una estructura:
Cmo son diferenciados los datos, as como agrupados de manera que reflejen
significado (informacin).
b. Un conjunto de Operaciones:
Las operaciones deben permitir manejar tanto los datos individuales como las
estructuras (agrupaciones de datos).
c. Definiciones de integridad:
Reglas y/o lmites para la existencia y los valores de los datos, que hagan a
estos vlidos y coherentes para el significado en conjunto.
1.1.12.
Cliente/Servidor
a. Tipos de Servidores
Servidor de Archivos
Monitor de transacciones
Groupware
Servidor de Objetos
Servidor Web
Los clientes se comunican a travs del protocolo HTTP para que el servidor
provea los requerimientos correspondientes (un documento HTML por
ejemplo).
1.1.13.
Las
aplicaciones
Tipos de aplicaciones
cliente/servidor
tambin
pueden
ser
clasificadas
1.1.14.
No existe una regla para dividir una aplicacin, sin embargo es razonable situar
las funciones y datos ms cerca posible para la operativa de la organizacin.
Esto sin embargo y datos.
En su forma ms simple la lgica de presentacin es slo la interfaz al usuario
que accede a procedimientos transaccionales ya existentes en el servidor. La
lgica de presentacin puede ir "engordando" con funciones de consistencia de
datos, iniciacin de lgica de negocio, etc.
Funciones Distribuidas
Modelo que proporciona gran flexibilidad y permite un control sobre dnde
situar las funciones en la red.
Un 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 llegar al proceso de los datos requeridos y su
evolucin a la cadena de clientes que fuera formndose.
Datos Distribuidos
Slo los resultados son devueltos al proceso cliente que invoc al servidor de
base de datos.
Los servidores de bases de datos son la base fundamental de los sistemas de
soporte a decisiones que requieren preguntas no planificadas e informes
flexibles.
1.1.15.
2 niveles)
1.1.16.
El cliente
El servidor
El middleware
c. Servicios especficos
Tambin deben correr en ambos lados, cliente y servidor, de manera de
proveer la funcionalidad necesaria como por ejemplo acceso y recuperacin de
datos de una base de datos, correo electrnico, brokers de objetos y otros.
CAPITULO II
TEORA DE RELACIONES MODELO ENTIDAD-RELACIN
2.1.
Definiciones
2.1.1. Conjunto
Aunque en general un conjunto puede agrupar objetos de diversos tipos, para
los casos de estudio se tendr en cuenta que un conjunto agrupa objetos del
mismo tipo.
2.1.2. Subconjunto
Conjunto formado por ningn, algn o todos los elementos de un conjunto.
2.1.3. Cardinalidad
Cantidad de elementos de un conjunto
2.2.
Relacin
2.2.3. Tupla
2.3.
Relacin Inversa
2.4.
2.5.
Clasificacin
A.2.Clasificacin Parcial
Existe algn elemento del conjunto genrico que no corresponde con ningn
elementode los subconjuntos. Dicho de otro modo, si la cardinalidad mnima de
la relacinentre el conjunto genrico y sus subconjuntos es 0.
2.6.
El Modelo Entidad-Relacin
1) ENTIDAD
Una entidad es una "cosa" u "objeto" del mundo real, con existencia
independiente y distinguible de los dems objetos. Cada entidad tiene un
conjunto de propiedades y valores que la identifican de forma unvoca. Esta
puede ser tanto tangible (existencia fsica), ejemplo: Un carro, como intangible
(existencia conceptual), ejemplo: Un curso universitario. Una entidad es un
objeto concreto o abstracto existente y distinguible de otros. Se representa por
2) ATRIBUTO
Dato (abstraccin) para identificar o describir una entidad. Se representa con
un nombre (del dato) dentro de una elipse unida o "conectada" por una lnea a
la entidad asociada.
Las propiedades que califican y le dan vida a la entidad se denominan
atributos.
Ejemplo: la entidad persona se puede describir por las siguientes propiedades:
cdula, nombre, direccin, sexo, peso, altura, color, tipo de sangre, salario.
Cada entidad tendr un valor por cada uno de los atributos, que posteriormente
ser almacenado en la base de datos. El valor de cada atributo est
enmarcado en un conjunto de valores permitidos llamado Dominio. Ejemplo: el
conjunto de valores permitidos (dominio) para el atributo cdula pueden ser
todos los enteros positivos.
2).1. Tipos de Atributos:
Simples: No divisible, es decir es un atributo atmico. Ejemplo: El atributo
cdula, su propiedad no tiene sentido dividirla, no tendr significado para la
entidad, ya que la concepcin de este es un nmero indivisible.
Compuesto: Est conformado por un conjunto de partes que en el momento
de dividirlas pueden formar otros atributos sin perder el sentido bsico de la
propiedad que est calificando la entidad. Ejemplo: los atributos nombre,
direccin pueden estar conformados en su naturaleza funcional por varias
partes. Si tomramos el atributo nombre con un valor de: JUAN PEREZ
CORREA, sin perder la propiedad del mismo, se podrn crear otros dos
atributos simples tales como: primer_apellido,
5000),
NOVEDADES(nro_horas_trabajadas,
uno a
muchos.
2.7.
Dependencia Existencial
Clasificacin
Generalizacin
Muchas veces encontrar iguales atributos es indicativo de una generalizacin.
Slo indicativo, ms no necesariamente.
Agregacin
2.8.
CAPITULO III
EL MODELO RELACIONAL
3.1.
Introduccin
Varios avances han tenido lugar en las ltimas dos dcadas que sealan la
falta deexpresividad y riqueza semntica del modelo relacional. Sin embargo, la
sencillez del modelo ha facilitado la construccin de lenguajes de consulta e
interfaces para los usuarios finales de fcil utilizacin, y ha resultado en una
productividad ms alta de los programadores de bases de datos. La gestin de
bases de datos relacinales ser una tecnologa muy til durante varios aos, o
incluso dcadas. En esta parte se muestra cmo ir desde el modelo conceptual
E-R al modelo relacional para implantar una base de datos. Tambin se
muestra cmo tomar un conjunto de relaciones existentes y aplicarles
retroingeniera para convertirlas en un esquema ER, captando la semntica
propuesta para un mejor entendimiento.
El elemento bsico del modelo es la relacin, y un esquema de base de datos
relacional es una coleccin de definiciones de relaciones. El esquema de cada
relacin es una agregacin de atributos; el conjunto de todos los valores que
puede adoptar un atributo en particular se denomina dominio de ese atributo.
3.2.
de
las
claves
como
clave
primaria
de
la
relacin.
Nuestro
de
ESTUDIANTE
NOMBRE_ESTUDIANTE
de
EXAMEN.
Obsrvese que por cada caso de ESTUDIANTE existen cero, uno o ms casos
de EXAMEN, relacionados por el mismo nombre de estudiante. De manera
similar, la interrelacin de uno a muchos entre CURSO y EXAMEN se obtiene
igualando los atributos
CDIGO de CURSO y NUMERO-CURSO de examen.
3.2.
la figura anterior,
la
relacin
EXAMEN tiene la
clave
primaria
(NUMERO_CURSO,
NOMBRE_ESTUDIANTE). El atributo NOMBRE_ESTUDIANTE se refiere al
estudiante que hizo el examen, por tanto, se puede designar
3.3.
Este apartado presenta una metodologa para el diseo lgico que tiene como
objetivo el modelo relacional. Se supone que el punto de partida es un
esquema lgico ER. El resultado de la correspondencia es un esquema
relacional. Este consiste en un conjunto de definiciones de relaciones, en el
cual cada relacin tiene una clave primaria. Las relaciones producidas por la
transformacin
de
esquemas
corresponden
entidades
bien
3.4.
Transformacin de entidades
Este paso es bastante simple: se transforma cada entidad del esquema en una
relacin.
Los atributos y la clave primaria de la entidad se convierten en los atributos y la
clave primaria de la relacin. Un ejemplo se muestra en la siguiente figura:
3.5.
primaria
NUM_CLIENTE.
En
este
caso,
las
dos
relaciones
(CODIGO_POSTAL,
CALLE,
NUM_CASA),
respectivamente.
En este caso tambin se integran en una relacin combinando todos los
atributos e incluyendo las claves primarias de ambas. Una de las dos
claves primarias ser la clave primaria de la relacin resultante; por
ejemplo, en la relacin que sigue se escoge NUM_CLIENTE.
ENVIOLCLIENTE (NUM_CLIENTE, NOMBRE_CLIENTE, NUM_CASA,
CALLE, CODIGO_POSTAL)
NUM_TARJETA)
son
claves
candidatas
de
No se puede
seleccionar
(TIPO.TARJETA, y NUM_TARJETA) como clave primaria de la relacin
integrada, porque en este caso los clientes sin tarjeta de crdito no
podran ser representados.
interrelacin
se
denomina
dependencia
de
inclusin
de
NUM_PEDIDO en
PEDIDO_VENTAS respecto a NUM_PEDIDO en PEDIDO en el modelo
relacional.
figura
muestra
lainterrelacin
ternaria
SUMINISTRA
entre
NOMBRE_COMERCIANTE
determina
funcionalmente
CAPITULO IV
ALGEBRA RELACIONAL
Restricciones:
1. R y S deben tener esquemas idnticos.
2. El orden de las columnas debe ser el mismo
Ejemplos:
Proyeccin
.1.
.2.
A1,A3,A6 (R)
CAPITULO V
GESTIN DE BASES DE DATOS EN SQL SERVER
SEGURIDAD:
SOPORTE MULTIPROCESADOR:
SERVICIO MSSQLServer:
SERVICIO SQLServerAgent:
SERVICIO
MICROSOFT
DISTRIBUTED
TRANSACTION
COORDIRATOR:
MSDTC permite a los clientes incluir muchos tipos de datos en una
transaccin.
5.5.1. COMUNICACIN:
SQL Server usa una arquitectura de comunicacin por capas para aislar
aplicaciones internas de red y protocolos. Esta arquitectura permite
desplegar la misma aplicacinen diferentes ambientes de red. Los
componentes en la arquitectura de comunicacin incluyen:
En general, estas interfaces son ms fciles de usar que las Bases de Datos
API pero pueden no tener tanta funcionalidad como un API.
ACTIVE X DATA OBJECTS: (ADO) Encapsula la OLE DB API en
unmodelo simplificado de objetos que reduce el desarrollo de
aplicaciones ylos costos de mantenimiento. ADO puede ser usado a
partir de Microsoft
Visual Basic, Visual Basic para Aplicaciones, Active Server Pages (ASP) y el
Scripting Object Model de Microsoft Internet Explorer.
REMOTE DATA OBJECTS: (RDO) Mapea y encapsula al ODBC API.
RDO puede ser usado desde Visual Basic y Visual Basic para aplicaciones.
5.5.4. ADMINISTRACIN:
Cada SQL Server tiene dos tipos de Bases de datos: Bases de Datos del
Sistema y Bases de Datos del usuario. Las Bases de Datos del sistema
almacenan informacin acerca de SQL Server como un total. SQL Server usa
la Base de Datos del sistema para operar y administrar al sistema. Las Bases
de Datos de usuarios, son Bases de
Datos creadas por los usuarios. Una copia del SQL Server puede administra
una o ms Bases de datos de usuario.
Algunas veces, una aplicacin utiliza slo una base de datos; otras
aplicaciones pueden tener acceso a varias bases de datos.
No es necesario ejecutar varias instancias de SQL Server para que varios
usuarios puedan tener acceso a las bases de datos de un servidor. SQL Server
es capaz de controlar el trabajo de miles de usuarios sobre varias bases de
datos en el mismo servidor y al mismo tiempo. SQL Server deja disponibles
todas las bases de datos del servidor para todos los usuarios que conecten con
dicho servidor, de acuerdo con los permisos de seguridad definidos.
Al conectar con SQL Server, la conexin queda asociada con una base de
datos concreta del servidor. Esta base de datos recibe el nombre de base de
datos actual.
Normalmente, el usuario se conecta a una base de datos definida como
predeterminada por el administrador del sistema, aunque puede utilizar las
opciones de conexin de las
API de la base de datos para especificar otra base de datos. Puede cambiar de
una base de datos a otra mediante la instruccin Transact-SQL USE
nombreBaseDatos o mediante una funcin API que cambie el contexto de su
base de datos actual.
SQL
para
deshacer
las
modificaciones
(si
fuera
necesario
CAPITULO VI
6.1.
Conectndose al Servidor
6.2.
6.3.
6.4.
6.5.
( NAME = SupermercadoLog,
FILENAME = '\\DATA\SupermercadoLog.ldf',
SIZE = 20MB,
MAXSIZE = 100MB,
FILEGROWTH = 10MB )
16. Genere la base de datos Farmacia:
CREATE DATABASE Farmacia ON PRIMARY
( NAME = Farmacia1,
FILENAME = '\\DATA\Farma1.mdf',
SIZE = 5,
MAXSIZE = 50,
FILEGROWTH = 5 ),
( NAME = Farmacia2,
FILENAME = '\\DATA\Farma2.ndf',
SIZE = 5,
MAXSIZE = 50,
FILEGROWTH = 5 )
LOG ON
( NAME = FarmaciaLog1,
FILENAME = '\\DATA\FarmaLog1.ldf',
SIZE = 10,
MAXSIZE = 10,
FILEGROWTH = 1 ),
( NAME = FarmaciaLog2,
FILENAME = '\\DATA\FarmaLog2.ldf',
SIZE = 20MB,
MAXSIZE = 20,
FILEGROWTH = 2 )
17. Genere la base de datos Restaurante, con 1 archivo para la base de datos
y 2 archivos de registro. Asigne un tamao inicial de 15 Mb, un mximo de 30
Mb, y crecimiento de 5 Mb para cada archivo.
18. Genere la base de datos Ferreteria, con 2 archivos para la base de datos y
2 archivos de registro. Asigne tamaos arbitrarios segn su criterio.
6.6.
6.7.
sp_helpdb banco
6.8.
6.9.
CAPITULO VII
GESTIN DE TABLAS EN SQL SERVER
7.1. Tablas
Las tablas son objetos de la base de datos que contienen todos sus datos. Una
tabla se define mediante una coleccin de columnas. En las tablas, los datos se
organizan con arreglo a un formato de filas y columnas, similar al de una hoja
de clculo. Cada fila representa a un registro nico, y cada columna representa
a un campo dentro de un registro. Por ejemplo, en una tabla que contenga los
datos de los empleados de una compaa puede haber una fila para cada
empleado y distintas columnas en las que figuren detalles de los empleados
tales como el nmero de empleado, el nombre, la direccin, el puesto que
ocupa y su nmero de telfono particular
7.2.1. Enteros
bit
int
smallint
tinyint
Moneda
Money
smallmoney
Real
datetime
smalldatetime
timestamp
uniqueidentifier
char
varchar
text
nchar
nvarchar
(1.073.741.823) caracteres.
Cadenas binarias
binary
Datos binarios de longitud fija con una longitud mxima de 8.000 bytes.
varbinary
Datos Unicode de longitud variable con una longitud mxima de 8.000 bytes.
image
Integridad de entidad
Integridad de dominio
Integridad referencial
Integridad de dominio
La integridad de dominio viene dada por la validez de las entradas para una
columna determinada. Puede forzar la integridad de dominio si restringe el tipo
(mediante tipos de datos), el formato (mediante las reglas y las restricciones
CHECK), o el intervalo de valores posibles (mediante restricciones FOREIGN
KEY, restricciones CHECK, definiciones DEFAULT, definiciones NOT NULL y
reglas).
Integridad referencial
Por ejemplo, con las tablas sales (compras) y titles (ttulos) de la base de
datos
pubs, la integridad referencial se basa en la relacin entre la clave externa
contiene una entrada con una o varias columnas (la clave de bsqueda) de
cada fila de una tabla. Un rbol B se ordena con la clave de bsqueda y se
puede buscar de forma eficiente en cualquier subconjunto principal de la clave
de bsqueda. Por ejemplo, un en A, B y C.
Mientras que la mayor parte de los libros contienen un ndice general de
palabras, nombres, lugares, etc., las bases de datos contienen ndices
individuales para tipos o columnas de datos seleccionados. Es como un libro
con un ndice para los nombres de las personas y otro ndice para los lugares.
Cuando cree una base de datos y la optimice para mejorar el rendimiento, es
recomendable que cree ndices para las columnas que se utilizan en las
consultas con el fin de buscar datos.
En la base de datos de ejemplo pubs suministrada con Microsoft SQL Server,
la tabla employee tiene un ndice en la columna emp_id. En la siguiente
ilustracin se muestra cmo almacena el ndice cada valor emp_id y seala a
las filas de datos de la tabla con cada valor.
Cuando SQL Server ejecuta una instruccin para buscar datos en la tabla
employee apartir de un valor de emp_id especfico, reconoce el ndice para la
columna emp_id y lo utiliza para buscar los datos. Si no hay un ndice,
empieza desde el principio de la tabla y va buscando, fila por fila, el valor de
emp_id especificado.
SQL Server crea automticamente ndices para determinados tipos de
restricciones (por ejemplo, restricciones de clave principal (PRIMARY KEY) y
de no duplicados (UNIQUE)). Tambin puede personalizar las definiciones de
la tabla mediante la creacin de ndices independientes de las restricciones.
No obstante, las ventajas que ofrecen los ndices por lo que respecta al
rendimiento tambin tienen un costo. Las tablas con ndices necesitan ms
espacio de almacenamiento en la base de datos. Asimismo, es posible que los
comandos de insercin, actualizacin o eliminacin de datos sean ms lentos y
precisen ms tiempo de proceso para mantener los ndices. Cuando disee y
cree ndices, deber asegurarse cuanto a espacio de almacenamiento y
recursos de proceso.
7.5. Disear un ndice
Cuando Microsoft SQL Server ejecuta una consulta, el optimizador de
consultas evala los costos de los mtodos disponibles para recuperar los
datos y utiliza elmtodo ms eficiente. Puede explorar una tabla o bien utilizar
un ndice, en el caso de que exista. Cuando SQL Server explora una tabla,
empieza desde el principio y examina todas las filas de la tabla, una por una,
para extraer las que cumplen los criterios de la consulta. Cuando SQL Server
utiliza un ndice, busca la ubicacin de almacenamiento de las filas necesarias
para la consulta y extrae nicamente esas filas.
Cuando se plantee la posibilidad de crear un ndice en una columna, tenga en
cuenta si se utilizarn columnas indizadas en las consultas y de qu modo. Los
ndices son tiles cuando una consulta:
CAPITULO VIII
8.1.
8.2.
conectar
SQL
Server
con
la
autentificacin
de
Para conectarse con SQL Server cuando ste se ejecuta con Windows
95/98, yaque en Windows 98/ME no est disponible la autenticacin de
Windows XP/2003.
Administrador
del
sistema
(sa)
es
una
cuenta
especial.
De
forma
sa
es
una
cuenta
de
administrador
integrada,
no
debe
Permiten reunir a los usuarios en una sola unidad a la cual se le pueden aplicar
permisos. SQL Server contiene roles de servidor y de Base de Datos
predefinidos, para tareas administrativas comunes, de manera que pueden
asignrsele determinados permisos administrativos a un usuario en particular.
Tambin se pueden crear roles de Base de Datos definidos por el usuario. En
SQL Server, los usuarios pueden pertenecer a varios roles: o Roles fijos del
Servidor: Proveen agrupamientos con privilegios administrativos a nivel del
Servidor. Son administrados independientemente de las Bases de Datos de
Las cuentas de usuario utilizadas para aplicar permisos de seguridad son las
de usuarios, o grupos de Windows XP/2003 o las de SQL Server. Las cuentas
de usuario son especficas para cada Base de Datos.
8.2.10.
Validacin de permisos
Por ejemplo, si un servidor contiene una base de datos llamada personal y otra
llamada contratos, para los usuarios que deban tener acceso a contratos,
pero no a personal , se crear una cuenta nicamente en la base de datos
contratos.
La cuenta de usuario de cada base de datos se utiliza para aplicar los permisos
de seguridad en los objetos (tablas, vistas, procedimientos almacenados,
etctera) que contiene la base de datos. Esta cuenta de usuario puede
asignarse desde cuentas de usuario de Microsoft Windows XP/2003, grupos de
Windows XP/2003 de los que el usuario sea miembro o cuentas de inicio de
sesin de SQL Server. Si no hay ninguna cuenta asignada directamente, el
usuario puede trabajar en la base de datos con la cuenta invitado, si existe.
Las actividades que se permite realizar al usuario se controlan con los
8.2.11.
La cuenta de usuario guest (invitado) permite iniciar una sesin sin tener
una cuenta de usuario para obtener acceso a una base de datos. Al
iniciar una sesin se asume laidentidad del usuario guest cuando se
cumplen todas las condiciones siguientes:
8.2.12.
Funcin public
No es posible eliminarla
8.2.13.
Permisos
Cuando los usuarios se conectan con Microsoft SQL Server, las actividades
que pueden llevar a cabo se determinan con los permisos otorgados a sus
cuentas de seguridad, a los grupos de Microsoft Windows XP/2003 o a las
jerarquas de funciones a las que pertenecen sus cuentas de seguridad. El
usuario debe tener los permisos adecuados para realizar cualquier actividad
que implique cambiar la definicin de una base de datos o el acceso a su
contenido. Algunas actividades como, por ejemplo, las que no cambien ningn
elemento de la base de datos ni supongan acceso a su contenido, no necesitan
permisos. Dentro de cada Base de Datos, se asignan permisos a las cuentas
de usuarios y a los roles para permitir o limitar ciertas acciones. SQL
Permisos de instruccin
Las actividades que implica la creacin de una base de datos o de uno de sus
elementos, como una tabla o un procedimiento almacenado, necesitan una
clase diferente de permisos, llamados permisos de instruccin. Por ejemplo, si
un usuario necesita crear una tabla en una base de datos, ser necesario
otorgarle el permiso de instruccin CREATE TABLE. Los permisos de
instruccin como, por ejemplo,
CREATE DATABASE, se aplican a la instruccin en s y no a un objeto
especfico definido en la base de datos.
Permisos implcitos
8.2.14.
CAPITULO IX
NORMALIZACIN
lista
de
las
columnas
cuyos
datos
se
van
devolver
(CompanyName,
ContactName, Phone)
Los criterios de seleccin (slo para los clientes que viven en Estados
Unidos)
A continuacin se muestra la sintaxis de Transact-SQL utilizada para recuperar
esta
informacin:
SELECT CompanyName, ContactName, Phone
FROM Northwind.dbo.Customers
WHERE Country = 'USA'
Entre los elementos adicionales usados en instrucciones de Transact-SQL se
encuentran:
Funciones
Identificadores
Los identificadores son los nombres dados a los objetos, como, por ejemplo,
tablas, vistas, bases de datos e ndices. Un identificador se puede especificar
sin delimitadores (por ejemplo, TEST), con delimitadores entre comillas (por
ejemplo, "TEST") o entre corchetes (por ejemplo, [TEST]).
Comentarios
Expresiones
Valores NULL
Los valores NULL son aquellos que son desconocidos. Puede usar valores
NULL para indicar que la informacin se proporcionar posteriormente. Por
ejemplo, si la persona de contacto de la empresa Comercio Leka cambia y no
se conoce la nueva persona de contacto, podra indicar que su nombre es
desconocido con un valor NULL.
Tipos de datos
Los tipos de datos definen el formato en el que se almacenan los datos. Por
ejemplo, puede usar cualquiera de los tipos de datos de carcter o Unicode
(char, varchar, nchar o nvarchar) para almacenar los datos de carcter como,
por ejemplo, los nombres de los clientes.
Lotes
Operadores
Aunque las consultas tienen varias formas de interactuar con un usuario, todas
realizanla misma tarea: presentan al usuario el conjunto de resultados de una
instruccin
SELECT. Incluso si el usuario no especifica nunca una instruccin SELECT,
como suele suceder con las herramientas grficas como MS Query, el software
de cliente transforma la consulta de cada usuario en una instruccin SELECT
que se enva a SQL Server.
La instruccin SELECT recupera los datos de SQL Server y los presenta de
nuevo al usuario en uno o ms conjuntos de resultados. Un conjunto de
resultados es una organizacin tabular de los datos obtenidos de SELECT. Al
igual que una tabla de SQL, el conjunto de resultados est formado por
columnas y filas.
La sintaxis completa de la instruccin SELECT es compleja, aunque la mayor
parte de las instrucciones SELECT describen las cuatro propiedades
principales de un conjunto de resultados:
Las condiciones que deben cumplir las filas de las tablas de origen
parasatisfacer los requisitos de la instruccin SELECT. Las filas que no
cumplenlas condiciones se omiten.
Vistas del servidor SQL Server local. SQL Server resuelve internamente
lareferencia de una vista a las referencias en las tablas base que
componen lavista.
Tablas vinculadas, que son las tablas de los orgenes de datos OLE
DBaccesibles para SQL Server.
WHERE condicionesBsqueda
La clusula WHERE es un filtro que define las condiciones que debe cumplir
cada fila de las tablas de origen para satisfacer los requisitos de la instruccin
SELECT. Slo las filas que cumplen las condiciones contribuyen con datos al
conjunto de resultados.
Los datos de las filas que no cumplen las condiciones no se usan.
La clusula WHERE se usa tambin en las instrucciones DELETE y UPDATE
para definir las filas de las tablas de destino que deben modificarse.
GROUP BY listaAgrupaciones
La clusula GROUP BY particiona en grupos el conjunto de resultados segn
los valores de las columnas de la listaAgrupaciones. Por ejemplo, la tabla
Northwind
Orders tiene tres valores en ShipVia. Una clusula GROUP BY ShipVia divide
el conjunto de resultados en tres grupos, uno por cada valor de ShipVia.
HAVING condicionesBsqueda
La clusula HAVING es un filtro condicional que se aplica al conjunto de
resultados.
Lgicamente, la clusula HAVING filtra las filas del conjunto intermedio de
resultados que se genera como consecuencia de la aplicacin de alguna
clusula
FROM, WHERE o GROUP BY en la instruccin SELECT. Las clusulas
HAVING se usan normalmente con una clusula GROUP BY, aunque no se
necesita una clusula GROUP BY antes de una clusula HAVING.
ORDER BY listaClasificacin [ ASC | DESC ]
La clusula ORDER BY define el orden de las filas del conjunto de resultados.
listaClasificacinespecifica las columnas del conjunto de resultados que forman
lalista de clasificacin. Las palabras clave ASC y DESC se usan para
especificar si las filas se ordenan en una secuencia ascendente o descendente.
Customers
JOIN
Orders
ON
Orders.CustomerID)
WHERE Orders.ShippedDate > 'May 1 1998'
Utilizar combinaciones
Customers.CustomerID
las filas de la tabla izquierda y cada fila de la tabla izquierda se combina con
todas las filas de la tabla de la derecha. Las combinaciones cruzadas se llaman
tambin productos cartesianos.
Por ejemplo, sta es una combinacin interna que recupera los autores que
viven en la misma ciudad y estado que un editor:
USE pubs
SELECT a.au_fname, a.au_lname, p.pub_name
FROM authors AS a INNER JOIN publishers AS p
ON a.city = p.city
AND a.state = p.state
ORDER BY a.au_lname ASC, a.au_fname ASC
Vistas
Una vista es una tabla virtual cuyo contenido est definido por una consulta. Al
igual que una tabla real, una vista consta de un conjunto de columnas y filas de
datos con un nombre. Sin embargo, la vista no existe como conjunto de valores
de datos almacenados en una base de datos. Las filas y las columnas de datos
proceden de tablas a las que se hace referencia en la consulta que define a la
vista y se producen de forma dinmica cuando se hace referencia a la vista.
Una vista acta como filtro de lastablas subyacentes a las que se hace
referencia en ella. La consulta que define a lavista puede ser de una o de
varias tablas, o bien tratarse de otras vistas de la base de datos actual o de
otras bases de datos. Asimismo, es posible utilizar las consultas distribuidas
para definir vistas que utilicen datos de orgenes diversos. Esto puede resultar
de utilidad, por ejemplo, si desea combinar datos de estructura similar que
proceden de distintos servidores, cada uno de los cuales almacena los datos
para una regin distinta de la organizacin.No hay restricciones que afecten a
Funciones de Agregado
Funcin de agregado:
SUM([ALL
DISTINCT]
expression)
Total
de
los
valores
de
la
expresinnumrica.
AVG([ALL | DISTINCT] expression) Promedio de los valores de la expresin
numrica.
COUNT([ALL | DISTINCT] expression) Nmero de valores en la expresin.
COUNT(*) Nmero de filas seleccionadas.
MAX(expression) Valor mayor de la expresin.
1.
Restaure
la
base
de
Datos
Supermercado
desde
el
archivo
SELECT IDDocuVenta,Fecha
FROM DocVenta
WHERE Fecha BETWEEN '01/01/1997' and '12/31/1997'
17. Los clientes que viven en Mxico D.F.
SELECT RazonSocial
FROM Cliente
WHERE Ciudad='Mxico D.F.'
18. Los artculos cuyas unidades en exitencia son de 10 o 20 unidades.
SELECT NombreArticulo,UnidExistencia
FROM Artculo
WHERE UnidExistencia=10 or UnidExistencia=20
SELECT NombreArticulo,UnidExistencia
FROM Artculo
WHERE UnidExistencia IN (10,20)
19. Los artculos que cuestan mas de 20 soles por unidad y estn suspendidos
SELECT NombreArticulo, PrecioUnidad
FROM Artculo
WHERE PrecioUnidad>20 AND Supendido=1
20. Los artculos cuyo nombre comience por la letra C
SELECT NombreArticulo
FROM Artculo
WHERE NombreArticulo LIKE 'C%'
21. Los clientes cuya segunda letra de la Razn Social sea O
SELECT RaznSocial
FROM Cliente WHERE RaznSocial LIKE "_O%"
22. Los clientes cuyo cdigo empiece con F o G
SELECT IDCliente,RazonSocial
FROM Cliente
WHERE IDCliente LIKE "[FG]%"
23. Una lista de precios de artculos ordenados de menor a mayor
SELECT DISTINCT PrecioUnidad
FROM Articulo
ORDER BY PrecioUnidad ASC
ointencionadamente,
realiza
un
gran
nmero
de
Puede volver a crear los datos, por ejemplo, a partir de cargas por lotes
quetienen lugar por la noche y reemplazar el contenido de la mayor
parte de labase de datos.
seguridad
de
la
base
de
datos
utilizarms
espacio
de
datos
registros
de
transacciones.
puede
anteriormente.
no
ser
posible
por
los
motivosmencionados
Sobrescribir
copias
de
seguridad
existentes
en
un
medio
utilizadoanteriormente.
que enven los comandos a SQL Server y procesen los resultados, o bien
almacenar los programas como procedimientos almacenados en
SQL Server y crear aplicaciones que ejecuten los procedimientos almacenados
y procesen los resultados.
Los procedimientos almacenados de SQL Server son similares a los
procedimientos de otros lenguajes de programacin en el sentido de que
pueden:
Server en
vez de
de Transact-SQL que se envan varias veces desde el cliente cada vez que
deben ejecutarse tienen que ser compiladas y optimizadas siempre que
SQL Server las ejecuta.
Pueden reducir el trfico de red.
Una operacin que necesite centenares de lneas de cdigo Transact-SQL
puede realizarse mediante una sola instruccin que ejecute el cdigo en un
procedimiento, en vez de enviar cientos de lneas de cdigo por la red.
Pueden utilizarse como mecanismo de seguridad.
Es posible conceder permisos a los usuarios para ejecutar un procedimiento
almacenado, incluso si no cuentan con permiso para ejecutar directamente las
instrucciones del procedimiento.
Para crear un procedimiento almacenado de SQL Server se utiliza la
instruccin
CREATE PROCEDURE de Transact-SQL; asimismo, puede utilizarse la
instruccin ALTER PROCEDURE para modificar la instruccin.
La definicin del procedimiento almacenado contiene dos componentes
principales: la especificacin del nombre del procedimiento y sus parmetros, y
el cuerpo del procedimiento que contiene las instrucciones de Transact-SQL
que pueden realizar las operaciones del procedimiento.
siguiente
procedimiento
almacenado,
get_sales_for_title,
utiliza
un
GO
Muestra:
10 20 30
EXECUTE my_proc @second = 500 -- Only second parameter supplied by
name
GO
Muestra:
NULL 500 3
EXECUTE my_proc 40, @third = 50 -- Only first and third parameter
GO -- supplied
Muestra:
40 2 50
Exigir reglas de empresa con desencadenadores
Un desencadenador es un procedimiento almacenado de tipo especial que se
invoca automticamente cada vez que se modifican los datos de la tabla. Los
desencadenadores se invocan en respuesta a las instrucciones INSERT,
UPDATE o
DELETE. Un desencadenador puede realizar una consulta en otras tablas e
incluirinstrucciones de Transact-SQL complejas. El desencadenador y la
instruccin que lo activa se tratan como una sola transaccin que puede
deshacerse desde el desencadenador. Si se detecta un error grave, se
deshace automticamente toda la transaccin.
Los desencadenadores tienen varias utilidades:
Pueden realizar cambios en cascada a travs de tablas relacionadas de la base
de datos.
Por ejemplo, un desencadenador de eliminacin en la columna title_id (IdTtulo)
de la tabla titles (ttulos) provoca la eliminacin de las filas coincidentes de
otras tablas; y se utiliza la columna title_id como clave nica para localizar las
filas en titleauthor
(ttuloAutor), sales (ventas) y roysched (progRoy).
2.
DECLARE @Precio int
SET @Precio=100
PRINT @Precio
3.
DECLARE @maxprecio numeric(9,2)
SELECT @maxprecio=Max(PrecioUnidad)
FROM Articulo
PRINT 'El mximo precio en la tabla artculo es: ' +
Convert(varchar,@maxprecio) + ' soles.'
4.
SELECT * FROM Unidad
PRINT 'Esta operacin genera: ' + Convert(varchar,@@rowcount) + ' filas...'
5.
DECLARE @MinUnidades int
SELECT @MinUnidades=Min(UnidExistencia)
FROM Articulo
IF @MinUnidades<5
PRINT 'Existen artculos con menos de 5 unidades en stock...'
ELSE
PRINT 'El stock todava es suficiente'
6.
SELECT NombreArticulo,
CASE
WHEN PrecioUnidad <10 THEN "Barato"
WHEN PrecioUnidad <50 THEN "Asequible"
WHEN PrecioUnidad >=50 THEN "Caro"
END AS Calificativo
FROM Articulo
7.
DECLARE @Contador Int
SET @Contador=1
WHILE (@Contador<=10)
BEGIN
PRINT @Contador
SET @Contador=@Contador+1
END
WHERE IDCajero=@CodCajero
10. Comprube el procedimiento con el siguiente cdigo:
DECLARE @Cantidad int
EXEC PedidosCajeros 7,@Cantidad OUTPUT
PRINT 'Atendi ' + Convert(Varchar,@Cantidad) + ' pedidos.'
11. Desde el administrador corporativo, revise los procedimientos almacenados
implementados.
12. Disparador que alerte si se ha agregado algn registro en la tabla Cliente:
CREATE TRIGGER SeAgregoCliente
ON Cliente
FOR INSERT
AS
IF UPDATE(IDCliente)
PRINT 'Se agreg un nuevo cliente... Trigger disparado'
13. Pruebe el disparador con la siguiente instruccin:
INSERT INTO Cliente (IDCliente, RazonSocial, ApPatContacto,
ApMatContacto, NombreContacto)
VALUES
('JPF','Restaurente El Remanso','Parker','Ferrer','Jos')
14. Crear un disparador que no permita ingresar un Artculo con precio
negativo:
CREATE TRIGGER VerificaPrecio
ON Articulo
FOR INSERT
AS
IF (SELECT PrecioUnidad FROM Inserted)<0
BEGIN
PRINT 'No se permite precios negativos... Tigger Disparado...'
ROLLBACK
END
15. Pruebe el disparador con la siguiente instruccin:
INSERT INTO
Articulo(IDArticulo,NombreArticulo,UnidExistencia,PrecioUnidad,UnidMinimo
)
VALUES(114,'Spaguetti',50,-5,10)
16. Crear un disparador que no permita modificar las Descripciones
almacenadas en la tabla unidad.
CREATE TRIGGER NoCambiosUnidad
ON Unidad
FOR UPDATE
AS
IF UPDATE(Descripcion)
BEGIN
PRINT 'No se deben cambiar las descripciones... Trigger Disparado...'
ROLLBACK
END
17. Pruebe el disparador con la siguiente instruccin:
UPDATE Unidad
SET Descripcion='Carnes/Embutidos'
WHERE IDUnidad=6