Escolar Documentos
Profissional Documentos
Cultura Documentos
Introduccin
Para disear una base de datos debemos establecer un proceso partiendo del
mundo real, de manera que sea posible plasmarlo mediante una serie de
datos. La imagen que obtenemos del mundo real se denomina modelo
conceptual y consiste en una serie de elementos que definen lo que queremos
plasmar del mundo real en la base de datos. La definicin de este modelo se
denomina esquema conceptual.
Los sistemas informticos tradicionales han sido llamados por algunos autores
sistemas orientados hacia el proceso, debido a que en ellos se pone el nfasis
en los tratamientos que reciben los datos, los cuales se almacenan en ficheros
diseados para una determinada aplicacin. Las aplicaciones se analizan e
implantan con entera independencia unas de otras, y los datos no se suelen
transferir entre ellas, sino que se duplican siempre que los correspondientes
trabajos los necesitan.
Estos sistemas orientados hacia los datos, van substituyendo a los sistemas
orientados hacia el proceso, que por su poca fiabilidad, falta de adecuacin a la
realidad y mal asegurada confidencialidad han ido perdiendo de forma
progresiva la confianza de los usuarios.
Una base de datos puede ser local, es decir que puede utilizarla slo un
usuario en un equipo, o puede ser distribuida, es decir que la informacin se
almacena en equipos remotos y se puede acceder a ella a travs de una red.
TERMINOS
Archivo Coleccin de registros del mismo tipo
Base de datos Conjunto de datos persistentes, pertenecientes a un
mismo contexto, almacenados sistemticamente para
ser usados por los sistemas de aplicacin de alguna
empresa dada.
Base de datos Una BD relacional, incorpora mltiples tablas con
relacional mtodos para hacerlas trabajar conjuntamente,
eliminando inconsistencias y redundancia. Se vale del
lgebra Relacional y el Clculo Relacional. Su paradigma
se basa en la lgica de proposiciones y la teora de
conjuntos.
Campo Es el conjunto ordenado de datos los cuales pueden
recuperarse de acuerdo a la necesidad del usuario
Diccionario de Descripcin lgica de los datos para el usuario. Rene la
datos informacin sobre los datos almacenados en la BD
(descripciones, significado, estructuras, consideraciones
de seguridad, edicin y uso de las aplicaciones, etc.).
Directorio de Es un subsistema del sistema de gestin de base de
datos datos que describe dnde y cmo se almacenan los
datos en la BD (modo de acceso y caractersticas fsicas
de los mismos).
Inconsistencia El contenido de una base de datos es inconsistente si
dos datos que deberan ser iguales no lo son. Por
ejemplo, un empleado aparece en una tabla como activo
y en otra como jubilado.
Informacin Es la unidad ms pequea al cual uno puede referirse
(contiene el dato)
Integridad Condicin de seguridad que garantiza que la informacin
es modificada, incluyendo su creacin y borrado, slo
por el personal autorizado.
Motores Son aquellos motores que soportan transacciones, las
Transaccionales cuales constituyen la unidad lgica de trabajo, es decir,
son operaciones atmicas que mantienen la consistencia
de la BD. Se ejecuta todo o nada.
Redundancia Repeticin de los mismos datos en varios lugares.
Registro Un conjunto agrupado de campos con relacin entre si
Sistema de Consiste en un conjunto de programas, procedimientos y
Gestin de Bases lenguajes que nos proporcionan las herramientas
de Datos (SGBD) necesarias para trabajar con una base de datos.
Incorporar una serie de funciones que nos permita
definir los registros, sus campos, sus relaciones,
insertar, suprimir, modificar y consultar los datos.
(Access, Sql Server, Informix, etc.)
DEFINICIONES
Consiste en un conjunto de programas, procedimientos y lenguajes que
nos proporcionan las herramientas necesarias para trabajar con una
base de datos. Incorporar una serie de funciones que nos permita definir
los registros, sus campos, sus relaciones, insertar, suprimir, modificar y
consultar los datos.
Las ventajas de los sistemas de bases de datos son, entre otras, las
siguientes:
A) Instalacin costosa:
La implantacin de un sistema de bases de datos puede llevar consigo un coste
elevado, tanto en equipo fsico (nuevas instalaciones o ampliaciones), como en
el lgico (sistemas operativos, programas, compiladores, etc... necesarios para
su uso).
B) Personal especializado:
Los conocimientos, que resultan imprescindibles para una utilizacin correcta y
eficaz y sobre todo para la administracin de las bases de datos, implican una
necesidad de personal especializado que resulta difcil de encontrar, y de
formar. El problema de la contratacin y formacin de este tipo de personal es
clave a la hora de crear un sistema de base de datos.
Datos
Las caractersticas ms importantes de la informacin en estos sistemas es que
va a estar integrada y compartida.
Equipo (Hardware)
Conjunto de dispositivos fsicos utilizados para almacenar y procesar los datos.
Ordenadores, utilizados para procesar los datos de la Base de datos:
pueden ser mainframe, miniordenador u ordenador personal. El
mainframe y los miniordenadores fueron utilizados tradicionalmente
para soportar el acceso de varios usuarios a una base de datos comn.
Los ordenadores personales eran empleados, inicialmente, para manejar
bases de datos autnomas
Volmenes de almacenamiento. Generalmente son unidades de disco
que constituyen el mecanismo de almacenamiento principal para las
bases de datos.
Otros dispositivos, como unidades de cinta, terminales, impresoras, etc.
Programas (Software)
Un sistema de base de datos incluye dos tipos de programas:
El software de propsito general, para la gestin de la base de datos,
comunmente llamado Sistema Gestor de Bases de Datos (S. G.B.D., o
tambin D. B. M S, en ingls). El S.G.B.D maneja todas las solicitudes
de acceso a la base de datos formuladas por los usuarios y los
programas de aplicacin.
Personal
En un sistema de base de datos intervienen un nmero importante de
usuarios, que podemos clasificar en tres grupos:
Administrador de la base de datos (A.B.D.). Son los encargados de
disear la estructura de la base de datos y los responsables de que el
sistema funcione correctamente. El A.B.D. se encarga de autorizar el
acceso a la base de datos, de coordinar y vigilar su utilizacin y de
adquirir los recursos necesarios de software y hardware. El A.B.D. es el
responsable cuando surgen problemas como violaciones de seguridad o
una respuesta lenta del sistema. El A.B.D. tiene, entre otras, las
siguientes funciones:
Definicin del esquema: Decidir el contenido de la base de
datos, eligiendo cuales son los datos que interesa tener
almacenados y organizarlos de la mejor forma posible, creando
el esquema conceptual, que se escribir mediante un lenguaje
de definicin de datos (DDL).
Definicin de las estructuras de almacenamiento y mtodo de
acceso: Debe decidir sobre la forma en que se van a
almacenar los datos sobre los soportes fsicos en los que se
grabar la base de datos y la correspondencia entre esta
estructura de almacenamiento y el esquema conceptual.
Modificacin del esquema y de la organizacin fsica si los
requerimientos cambian.
Decidir los controles de autorizaciones para el acceso a los
datos: Es el que concede diferentes tipos de autorizaciones al
resto de los usuarios de la base de datos.
Especificar las restricciones de integridad: Debe definir los
procedimientos de validacin que habrn de ejecutarse cada
vez que se actualiza la base de datos. Estas restricciones son
consultadas por el SGBD cada vez que se realiza una
actualizacin de los datos.
Usuarios finales, que son personas que no tienen por que tener
conocimientos informticos y que pueden manipular los datos
(examinarlos y actualizarlos) con la ayuda de las aplicaciones, o bien
de lenguajes de consulta no procedimentales (no es necesario indicar
el algoritmo de acceso a los datos), tipo SQL, o bien, mediante
herramientas basadas en sistemas de mens. Se distinguen tres
tipos de usuarios finales:
Usuarios especializados: Aquellos que son capaces de escribir
ciertas aplicaciones para la BD, para su uso propio.
Usuarios casuales: Aquellos que realizan consultas a travs de
un procesador de consultas. Esas consultas pueden ser
creadas por ellos mismos o por otras personas.
Usuarios ingenuos: Aquellos que solo acceden a travs de
aplicaciones previamente escritas por otros usuarios.
En este nivel se representan los datos que se van a utilizar sin tener en cuenta
aspectos como lo que representamos en el nivel interno.
Una base de datos especfica tiene un nico nivel interno y un nico nivel
conceptual pero puede tener varios niveles externos.
Modelos de bases de datos
Importancia del Modelos de base de datos
El diseador de la base de datos emplea herramientas de comunicacin
para facilitar la interaccin entre el diseador, los programadores de
aplicaciones y el usuario.
Modelo de bases de datos
Conjunto de ideas utilizadas para representar la estructura de
datos y las relaciones entre ellos dentro de la base de datos.
Estos modelos se pueden agrupar en dos categoras: modelos
conceptuales y modelos de ejecucin
Modelo jerrquico
stas son bases de datos que, como su nombre indica, almacenan su
informacin en una estructura jerrquica. En este modelo los datos se
organizan en una forma similar a un rbol (visto al revs), en donde un nodo
padre de informacin puede tener varios hijos. El nodo que no tiene padres es
llamado raz, y a los nodos que no tienen hijos se los conoce como hojas.
Modelo en red
ste es un modelo ligeramente distinto del jerrquico; su diferencia
fundamental es la modificacin del concepto de nodo: se permite que un
mismo nodo tenga varios padres (posibilidad no permitida en el modelo
jerrquico).
Fue una gran mejora con respecto al modelo jerrquico, ya que ofreca una
solucin eficiente al problema de redundancia de datos; pero, aun as, la
dificultad que significa administrar la informacin en una base de datos de red
ha significado que sea un modelo utilizado en su mayora por programadores
ms que por usuarios finales.
Durante su diseo, una base de datos relacional pasa por un proceso al que se
le conoce como normalizacin de una base de datos.
Modelo entidadrelacin
Un diagrama o modelo entidad-relacin (a veces denominado por sus siglas en
ingls, E-R "Entity relationship", o del espaol DER "Diagrama de Entidad
Relacin") es una herramienta para el modelado de datos que permite
representar las entidades relevantes de un sistema de informacin as como
sus interrelaciones y propiedades.
En el Modelo Entidad-Relacin.
Se elabora el diagrama (o diagramas) entidad-relacin.
Se completa el modelo con listas de atributos y una descripcin de otras
restricciones que no se pueden reflejar en el diagrama.
Modelo de objetos
En la dcada de 1990, el paradigma de la orientacin a objetos se aplic a las
bases de datos creando un nuevo modelo llamado base de datos orientada a
objetos. Esto tuvo el fin de reducir la impedancia objeto-relacional, la
sobrecarga de convertir la informacin de su representacin en la base de
datos -como filas en tablas- a su representacin en el programa -tpicamente
como objeto. Incluso ms, los tipos de datos usados en una aplicacin pueden
definirse directamente en la base de datos, preservando as la base de datos la
misma integridad de datos. Las bases de datos orientadas a objetos tambin
introducen las ideas clave de la programacin orientada a objetos -
encapsulacin y polimorfismo- en el mundo de las bases de datos.
Modelo documental
Una base de datos documental est constituida por un conjunto de programas
que almacenan, recuperan y gestionan datos de documentos o datos de algn
modo estructurados. Este tipo de bases de datos constituyen una de las
principales subcategoras dentro de las denominadas bases de datos no SQL. A
diferencia de las bases de datos relacionales, estas bases de datos estn
diseadas alrededor de una nocin abstracta de "Documento".
{
Nombre:"Pepe",
Direccin:"Plaza Mayor 5",
Profesin:"Panadero"
}
DEFINICIONES
Entidad. Es un objeto concreto o abstracto que existe y que se diferencia de
otros y del cual se desea almacenar informacin. Por ejemplo, alumnos,
empleados, aviones, coches, alojamientos
Diagramas entidad-relacin
Describen el esquema de una base dedatos
Tipos de atributo
Atributos atmicos o compuestos
Valores
Monovaluados (ej.: edad)
Multivaluados (ej.: telfonos)
Almacenados o derivados
Ej.: la edad de una persona es casi siempre un atributo derivado
de la fechade nacimiento
Posiblemente nulos
Cuando un atributo se puede dejar en blanco
Claves
Permiten localizar una entidad, son nicos
Relaciones
Tipo de relacin
Ejemplo: es_jefe_de, participar_en_curso
Instancia de relacin
Juan es_jefe_de Pedro
Grado de una relacin
Nmero de entidades que participan
Binario, terciario, etc.
Cardinalidades
Nmero de instancias de cada entidad
Tipos de Relaciones
Clasificacin por Cardinalidad
Relacin Uno a Uno: Cuando un registro de una tabla slo puede
estar relacionado con un nico registro de la otra tabla y viceversa.
En este caso la clave fornea se ubica en alguna de las dos tablas.
Relacin 1:1
Relacin M:N
Ejercicio
Hacer un modelo Entidad-Relacin para la siguiente situacin:
Tenemos una universidad, en la que hay varios cursos. Cada curso est
dirigido por un profesor, el cual puede dirigir varios cursos.Los cursos
son subvencionados, por lo que slo que un alumno se matricule de un
curso.
SOLUCIN TABLAS
Generalizacin/Especializacin
Generalizacin: Varios conjuntos de entidades se sintetizan (se generalizan)
en un conjunto de entidades de nivel ms alto basado en caractersticas
comunes
Especializacin: Un conjunto de entidades puede incluir subgrupos de
entidades que se diferencien (se especializan) de alguna forma de las otras
entidades del conjunto.
Agregacin
La agregacin es una abstraccin a travs de la cual las relaciones se tratan
como entidades de nivel ms alto. Permiten establecer relaciones entre
relaciones.
EJERCICIO
Realice el DER de las siguientes situaciones e identifique el grado con el que
participan las entidades en las relaciones:
MODELO RELACIONAL
El modelo relacional para la gestin de una base de datos es un modelo de
datos basado en la lgica de predicados y en la teora de conjuntos. Es el
modelo ms utilizado en la actualidad para modelar problemas reales y
administrar datos dinmicamente.
En este modelo todos los datos son almacenados en relaciones, y como cada
relacin es un conjunto de datos, el orden en el que stos se almacenen no
tiene relevancia (a diferencia de otros modelos como el jerrquico y el de red).
Esto tiene la considerable ventaja de que es ms fcil de entender y de utilizar
por un usuario no experto. La informacin puede ser recuperada o almacenada
por medio de consultas que ofrecen una amplia flexibilidad y poder para
administrar la informacin.
CLAVES
Superclave: Conjunto de atributos cuya combinacin es nica para un
tipo de entidad. Por ejemplo, el conjunto total de atributos de un tipo de
entidad es una superclave(trivial).
Clave: Una superclave mnima, tambin llamada clave candidata
Clave primaria: Una clave que se designa como primaria para un tipo
de entidad
TABLAS:
ENTIDAD12(A, B, C, D) o puede ser ENTIDAD12 (C, D, A, B)
Toda relacin N:M se convierte en una tabla que tendr como clave
primaria las dos claves primarias de las entidades que se asocian
TABLAS:
ENTIDAD1(A, B)
ENTIDAD2 (C, D)
ENTIDAD12(A, C, E, F)
TABLAS:
ENTIDAD3(F, G, H )
TABLAS:
ENTIDAD1(F, A, B)
ENTIDAD2(F, C, D)
TABLAS:
ENTIDAD3(E, F, G, A,C)
ENTIDAD1(A, B, C) // hereda c por ser del extremo 1
ENTIDAD2(C, D)
TABLAS:
ENTIDAD1(A, B)
ENTIDAD1(A, C, D)
TABLAS
Escuela (NUME, NOM, DIRECC)
Aula (NUMA, CANTPUP, PISO, NUME)
Alumno (NUMAL, NOMBRE, FECHA_NACI, SEXO, NUM_IDEN)
Grupo_Maestro(NUM_IDEN, NOMBRE_MA, SEXO_MA,
AO_DE_GRAD, NUMG, CANT_ALUM, GRADOGRU, NUME)
ALGEBRA RELACIONAL
El modelo relacional es un modelo de datos y, como tal, tiene en cuenta los
tres aspectos siguientes de los datos:
La estructura, que debe permitir representar la informacin que
nos interesa del mundo real.
La manipulacin, a la que da apoyo mediante las operaciones de
actualizacin y consulta de los datos.
La integridad, que es facilitada mediante el establecimiento de
reglas de integridad; es decir, condiciones que los datos deben
cumplir.
Se llama tupla a cada fila de una tabla, y es por supuesto un elemento del
producto cartesiano de los dominios que dan nombre a las columnas
(atributos).
OPERACIONES BSICAS
Las siguientes son operaciones bsicas:
Seleccionar
Proyectar
Unir
Diferencia (de conjuntos)
Producto cartesiano
Seleccionar
Podemos ver la seleccin como una operacin que sirve para elegir algunas
tuplas de una relacin y eliminar el resto. Ms concretamente, la seleccin es
una operacin que, a partir de una relacin, obtiene una nueva relacin
formada por todas las tuplas de la relacin de partida que cumplen una
condicin de seleccin especificada.
Proyectar
Podemos considerar la proyeccin como una operacin que sirve para elegir
algunos atributos de una relacin y eliminar el resto. Ms concretamente, la
proyeccin es una operacin que, a partir de una relacin, obtiene una
nueva relacin formada por todas las (sub)tuplas de la relacin de partida
que resultan de eliminar unos atributos especificados.
OPERACIONES DERIVADAS
Las siguientes operaciones no aaden ninguna funcionalidad nueva pero
facilitan la formacin de preguntas a la base de datos.
Interseccin de conjuntos
producto natural (natural join)
Divisin
Interseccin de conjuntos
La interseccin es una operacin que, a partir de dos relaciones, obtiene
una nueva relacin formada por las tuplas que pertenecen a las dos
relaciones de partida.
Ejemplo:
Range of SX is SUM
Las listas de campos se separan por comas y se pueden usar los conectores
lgicos: And, or y not.
El formato ser:
Range of T is X1, X2, .. Xn
Lista objetos: predicado
Para control de pago en una empresa productiva se tienen las siguientes tablas
relacionales:
Tabla TRABAJADOR (T)
(NUMEXPETE, NOMBRE, CARGO, DPTO, SUBDIRECCIN, SALARIO)
RANGE of Tx is T
RANGE of Ax is A
TEORA DE NORMALIZACIN
Cuando se disea una base de datos mediante el modelo relacional, al igual
que ocurre en otros modelos de datos, tenemos distintas alternativas, es decir,
podemos obtener diferentes esquemas relacionales y no todos son
equivalentes, ya que algunos van a representar la realidad mejor que otros.
Cuando estudiamos la estructura del modelo relacional, nos dimos cuenta que
la base de datos puede representarse por medio de un conjunto de objetos
(dominios y relaciones) y de un conjunto de reglas de integridad.
La propiedad de las tablas relacionales se puede expresar como que todos los
dominios subyacentes son a su vez simples, de manera informal esto significa
que en cada fila y columna dentro de la tabla debe existir nada ms que un
solo valor y nunca ms de uno, cuando esto se cumple se dice que la relacin
est normalizada por lo tanto de acuerdo con la propiedad de las tablas
relacionales se dice que una tabla relacional est normalizada.
PEDIDO DE PRODUCTOS
PEDIDO N: 12345
PROVEEDOR N: 7543
NOMBRE PROVEEDOR: J. PEREZ
FECHA: 02 DE MAYO DEL 2013 CIUDAD: RIOBAMBA
DESEAMOS NOS ENVIE:
N PRODUCTO DESCRIPCIN PRECIO CANTIDAD TOTAL
969715 TELEVISOR 600 1 600
432018 ANTENA 20 10 200
548409 ENCHUFLES 10 10 100
IMPORTE TOTAL: 900
PROBLEMAS
Adicin(sobre productos qu an no aparezca un proveedor que lo
solicite)
Eliminacin(se puede eliminar un producto que era nico en todos los
pedidos se pierde esa informacin)
Modificacin(cada lnea tiene varios campos de un producto y si se
cambia alguno se debe de cambiar en todos los pedidos donde haya ese
producto)
DEPENDENCIAS FUNCIONALES
Sean R una tabla relacional y X1; : : : ; Xk e Y campos de R.
Diremos que Y depende funcionalmente de X1; : : : ;Xk si al fijar un valor de
los campos X1 : : : ;Xk, se fija tambin el valor que puede tomar el campo Y en
la tabla R.
Lo escribiremos: X -> Y .
X = determinante o implicante
Y = campo implicado
EJEMPLO:
EJEMPLO:
SP(NUMS, CIUDAD, NDTO, CANT)
SP(NUMS,NDTO) -> CANT
Hay dependencia funcional completa
EJEMPLO:
SP(NUMS, NDTO) -> CIUDAD
NUMS -> CIUDAD
No hay dependencia funcional completa CIUDAD solo depende de NUMS
Sea una base de datos para control de trfico para una terminal de buses. En
la terminal salen varias rutas para cada una se conoce nmero de ruta, punto
de destino, cantidad de kilmetros que recorre, cada ruta efecta varios viajes
diarios, para cada viaje se conoce nmero de ruta que realiza, hora de salida,
nmero del chofer que realiza, hora de llegada. De cada chofer se conoce su
nmero, edad, nombre, y aos de servicio.
Determinar:
Determine las dependencias funcionales
Represente el diagrama de dependencias funcionales
Rutas
NumRuta -> PuntoDestino, CantKm
Viaje
NumRuta, NumChofer -> HoraSalida, HoraLlegada
Chofer
NumChofer -> Nombre, Edad, AosServicio
Ejercicios:
Sea una base de datos sobre una empresa distribuidora de productos
varios la empresa posee un conjunto de almacenes para los cuales se
conoce su cdigo, direccin y capacidad. En cada almacn se tienen en
existencia diferentes productos cada uno en una cierta cantidad y un
producto puede encontrarse en varios almacenes. De cada producto se
conoce su cdigo, descripcin, dimensin y modelo. Cada producto que
posee dimensiones determinadas se corresponde con el mismo modelo
independientemente del producto que sea.
Determinar:
Determine las dependencias funcionales
Represente el diagrama de dependencias funcionales
1 Forma Normal
Una relacin es primera forma normal si y solo si sus tuplas (filas) contienen
valores atmicos, es decir, no contienen valores que a su vez sean conjuntos.
En resumen, que todos los atributos (columnas) deben tener todos sus valores,
o lo que es lo mismo, no debe haber celdas en blanco.
S# P# QTY
s1 p1 300
p2 200
p3 400
s2 p1 200
p2 100
EJEMPLO:
ANOMALIAS
A,B ->C
A->D
R1(A,B,C)
R2(A, D)
3 Forma Normal
Una relacin est en tercera forma normal si y solo si:
Es segunda forma normal.
Los atributos (columna) no pertenecientes a una clave (primaria o
extranjera) son mutuamente independientes funcionalmente.
Ejemplo:
SUM(SNUM, SNOM, CIUDAD, SITUACION)
R1(SNUM, SNOM,CIUDAD)
R2(CIUDAD, SITUACIN)
EJEMPLO.
R(CIUDAD, CALLE, CODPOSTAL)
El problema se reduce:
R1(CODPOSTAL, CIUDAD)
R2(CALLE, CODPOSTAL)
4 Forma Normal
Una relacin es cuarta forma normal si y solo si:
Es forma normal de BCNF.
Para toda la dependencia multivalor todos los atributos (columna)
distintos de A dependen funcionalmente de A, es decir, A es clave.
Dependencias multivalor
Tambin pueden aparecer dependencias multivalor, caso aplicable
exclusivamente a relaciones con al menos tres atributos.
Se dice que en una relacin con atributos A, B y C (estos atributos
tambin pueden ser compuestos) existe dependencia multivalor entre
los atributos A y B cuando tomada cualquier pareja de valores A, C de la
relacin el conjunto de valores de B que acompaan a esa pareja en
cualquier tupla (columna) de la relacin solo depende funcionalmente
del valor de A y no depende funcionalmente del valor de C.
Esta dependencia se representa: A -> B|C
Ejemplo de dependencia multivalor:
5 Forma Normal
Una relacin es quinta forma normal si y solo si:
Cada dependencia de JOIN que exista en dicha relacin est implicada
exclusivamente por claves candidatas.
Dependencias de JOIN
En ocasiones, no nos basta con realizar la descomposicin de una
relacin y unirla mediante un JOIN para recomponerla, sino que es
necesario descomponerla en tres o ms relaciones.
Existe entonces la llamada independencia de JOIN, en la cual sean X, Y,
... Z un subconjunto del conjunto de atributos de una relacin R.
Se dice que la relacin satisface la dependencia de JOIN si y solo si la
relacin R queda recompuesta a su estado original efectuando el JOIN
de las relaciones obtenidas proyectando R en X, Y... Z respectivamente.
Por ejemplo: descomponemos la relacin SPJ en tres relaciones:
SPJ
s# p# j#
s1 p1 j2
s1 p2 j1
s2 p1 j1
s1 p1 j1
SP PJ JS
s# p# p# j# j# s#
s1 p1 p1 j2 j2 s1
s1 p2 p2 j1 j1 s1
s2 p1 p1 j1 j1 s2
s# p# j#
s1 p1 j2
s1 p1 j1
s1 p2 j1
s2 p1 j2
s2 p1 j1
Si con esta tabla realizamos un JOIN con JS sobre j#,s# volveremos a la tabla
original:
SPJ
s# p# j#
s1 p1 j2
s1 p2 j1
s2 p1 j1
s1 p1 j1
EJERCICIOS
Se desea disear una base de datos para controlar la disponibilidad
de materiales de construccin. De cada proveedor de materiales se
conocen su cdigo que lo identifica, su nombre, y el municipio en que
radica. De cada material se sabe su cdigo que lo identifica, su
descripcin, la unidad de medida que se aplica al material y el precio
por unidad de medida. Para guardar estos materiales hasta su
posterior distribucin existen diverso almacenes. De cada almacn
se conoce su cdigo que lo identifica, su direccin y la capacidad de
almacenamiento. Un proveedor puede suministrar varios materiales
y un material puede ser suministrado por diferentes proveedores se
sabe que un material suministrado por un proveedor en un almacn
lo almacena en una determinada cantidad. En un almacn se
almacena distintos materiales que pueden proceder de distintos
proveedores y un mismo material puede existir en varios almacenes.
Determinar las dependencias funcionales
Obtenga el diagrama de dependencias funcionales
Normalice hasta la FNBC
SQL Introduccin
El SQL es un lenguaje estndar de programacin para el acceso a bases de
datos.
El lenguaje SQL se utiliza para acceder y manipular datos en cualquier base
de datos del mercado, como por ejemplo, para las bases de datos MySQL,
Oracle, DB2, SQL Server, Access.
El SQL se compone de sentencias SQL, cada una con una utilidad diferente,
como por ejemplo:
Creacin de una base de datos (CREATE DATABASE)
Creacin de una tabla (CREATE TABLE)
Creacin de una vista (CREATE VIEW)
Creacin de un ndice de una tabla (CREATE INDEX)
Creacin de procedimientos almacenados (CREATE PROCEDURE)
Creacin de disparadores (CREATE TRIGGER)
Consultar los datos almacenados en una tabla (SELECT)
Insertar datos en una tabla (INSERT)
Modificar datos ya existentes en una tabla (UPDATE)
Borrar datos almacenados en una tabla (DELETE)
Dar permiso de acceso a los datos de una tabla (GRANT)
Eliminar permisos de acceso a datos de una tabla (REVOKE)
Finalizar la transaccin de una sentencia SQL (COMMIT)
Retroceder la transaccin de una sentencia SQL (ROLLBACK).
SQL SINTAXIS
Un sistema de base de datos suele contener varias bases de datos. Cada base
de datos suele contener varias tablas. Las tablas almacenan los datos
organizados por filas. Cada fila contiene varios campos.
Cada campo tiene una serie de propiedades, como por ejemplo, el nombre del
campo, su longitud, tipo de dato que se va a almacenar, etc.
Este punto y coma tambin puede servir para separar una sentencia SQL de
otra sentencia SQL en la misma lnea.
SQL Select
Una de las sentencias SQL ms importantes es SELECT, ya que permite
realizar consultas sobre los datos almacenados en la base de datos.
SQL DISTINCT
Al realizar una consulta puede ocurrir que existan valores repetidos para
algunas columnas. Por ejemplo
SQL WHERE
La clusula WHERE se utiliza para hacer filtros en las consultas, es decir,
seleccionar solamente algunas filas de la tabla que cumplan una determinada
condicin.
SQL AND OR
Los operadores AND y OR se utilizan para filtrar resultados con 2 condiciones.
El operador AND mostrar los resultados cuando se cumplan las 2 condiciones.
Condicion1 OR condicion2
En la tabla personas
nombre apellido1 apellido2
ANTONIO PEREZ GOMEZ
ANTONIO GARCIA BENITO
LUIS LOPEZ PEREZ
SQL ORDER BY
ORDER BY se utiliza para ordenar los resultados de una consulta, segn el
valor de la columna especificada.
SELECT nombre_columna(s)
FROM nombre_tabla
ORDER BY nombre_columna(s) ASC|DESC
SQL INSERT
La sentencia INSERT INTO se utiliza para insertar nuevas filas en una tabla. Es
posible insertar una nueva fila en una tabla de dos formas distintas:
Ejemplo:
Dada la siguiente tabla personas:
nombre apellido1 apellido2
ANTONIO PEREZ GOMEZ
LUIS LOPEZ PEREZ
ANTONIO GARCIA BENITO
SQL UPDATE
La sentencia UPDATE se utiliza para modificar valores en una tabla. La sintaxis
de SQL UPDATE es:
UPDATE nombre_tabla
SET columna1 = valor1, columna2 = valor2
WHERE columna3 = valor3
La clusula SET establece los nuevos valores para las columnas indicadas. La
clusula WHERE sirve para seleccionar las filas que queremos modificar.
SQL DELETE
La sentencia DELETE sirve para borrar filas de una tabla. La sintaxis de SQL
DELETE es:
SQL LIKE
El operador LIKE se utiliza en la clusula WHERE para buscar por un patrn.
Sintaxis de SQL LIKE
Este es el resultado
SQL WILDCARDS
Los caracteres Wildcards (comodines) son caracteres especiales que se utilizan
para realizar bsquedas especiales, como por ejemplo, buscar palabras que
empiecen por una letra determinada (letra%) o que contengan la letra a
(%a%), o que contengan alguna vocal ([aeiou]), etc.
Los caracteres Wildcards se utilizan con el operador SQL LIKE en una sentencia
SELECT.Los caracteres Wildcards son :
Ejemplos:
Ejemplos Wildcards
Resultado:
nombre apellido1 apellido2
PEDRO RUIZ GONZALEZ
Resultado:
nombre apellido1 apellido2
ANTONIO PEREZ GOMEZ
Resultado:
nombre apellido1 apellido2
ANTONIO PEREZ GOMEZ
ANTONIO GARCIA RODRIGUEZ
SQL IN
El operador IN permite seleccionar mltiples valores en una clusula WHERE.
Sintaxis SQL IN
SELECT columna
FROM tabla
WHERE columna
IN (valor1, valor2, valor3, )
Ejemplo SQL IN
SQL BETWEEN
El operador BETWEEN se utiliza en la clusula WHERE para seleccionar valores
entre un rango de datos.
SELECT columna
FROM tabla WHERE columna
BETWEEN valor1 AND valor2
SELECT *
FROM personas
WHERE apellido1
BETWEEN FERNANDEZ AND HUERTAS
nombre apellido1 apellido2
ANTONIO GARCIA RODRIGUEZ
SELECT *
FROM personas
WHERE apellido1
NOT BETWEEN FERNANDEZ AND HUERTAS
SQL ALIAS
Un alias, es otra forma de llamar a una tabla o a una columna, y se utiliza para
simplificar las sentencias SQL cuando los nombre de tablas o columnas son
largos o complicados. Sintaxis SQL ALIAS para una tabla:
SELECT columna
FROM nombretabla
AS aliastabla
SELECT nombrecolumna
AS aliascolumna
FROM tabla
apellido1 apellido2
PEREZ GOMEZ
GARCIA RODRIGUEZ
Sin utilizar el alias, la sentencia SELECT quedara un poco ms larga:
apellido1 apellido2
PEREZ GOMEZ
GARCIA RODRIGUEZ
SQL UNION
La sentencia SQL UNION es utilizada para acumular los resultados de dos
sentencias SELECT. Las dos sentencias SELECT tienen que tener el mismo
nmero de columnas, con el mismo tipo de dato y en el mismo orden.
Tabla personas_empresa1
per nombre apellido1 apellido2
1 ANTONIO PEREZ GOMEZ
2 ANTONIO GARCIA RODRIGUEZ
3 PEDRO RUIZ GONZALEZ
Tabla personas_empresa2
per nombre apellido1 apellido2
1 JUAN APARICIO TENS
2 ANTONIO GARCIA RODRIGUEZ
3 LUIS LOPEZ VAZQUEZ
nombre apellido1
ANTONIO PEREZ
ANTONIO GARCIA
PEDRO RUIZ
JUAN APARICIO
LUIS LOPEZ
La persona ANTONIO GARCIA RODRIGUEZ aparecer solo una vez en el
resultado, porque no aparecern las filas repetidas.
Las dos sentencias SELECT tienen que tener el mismo nmero de columnas,
con el mismo tipo de dato y en el mismo orden.
Tabla personas_empresa1
per nombre apellido1 apellido2
1 ANTONIO PEREZ GOMEZ
2 ANTONIO GARCIA RODRIGUEZ
3 PEDRO RUIZ GONZALEZ
Tabla personas_empresa2
per nombre apellido1 apellido2
1 JUAN APARICIO TENS
2 ANTONIO GARCIA RODRIGUEZ
3 LUIS LOPEZ VAZQUEZ
nombre apellido1
ANTONIO PEREZ
ANTONIO GARCIA
PEDRO RUIZ
JUAN APARICIO
ANTONIO GARCIA
LUIS LOPEZ
SELECT *
INTO nuevatabla [IN nuevabasedatos]
FROM tablaactual
SELECT *
INTO personasBackup
FROM personas
SELECT *
INTO personasBackup
FROM personas
WHERE nombre = ANTONIO
Las columnas nombre y apellido llevan NOT NULL, esto quiere decir que
cualquier fila insertada en esta tabla tiene que tener algn valor para las
columnas nombre y apellido1.
SQL UNIQUE
La restriccin UNIQUE identifica de manera nica a cada fila de una tabla.
Puede haber varias restricciones UNIQUE en diferentes columnas de una tabla.
Ejemplo SQL UNIQUE para las bases de datos ORACLE, SQLSERVIR, ACCESS
Crea una restriccin UNIQUE (valor nico en toda la tabla) para la columna
identificador. Se puede crear tambin restricciones para varias columnas a la
vez
Cada tabla slo puede tener una clave primaria (PRIMARY KEY). Ejemplo
PRIMARY KEY , clave primaria en MySQL
La clave primaria (PRIMARY KEY) puede estar compuesta por varias columnas,
por ejemplo por las columnas identificador y nombre, entonces se define as:
Tabla personas, con una clave externa FOREIGN KEY dep, que hace referencia
a la clave primaria dep de la tabla anterior departamentos y por tanto, solo
puede tener un valor de los que tiene en esa tabla.
per nombre apellido1 apellido2 dep
1 ANTONIO PEREZ GOMEZ 1
2 ANTONIO GARCIA RODRIGUEZ 2
3 PEDRO RUIZ GONZALEZ 4
Para borrar un clave externa (FOREIGN KEY) utilizamos DROP, pero vara
segn la base de dato:
Borrar FOREIGN KEY en MySQL ALTER TABLE personas DROP FOREIGN KEY
dep
SQL CHECK
La restriccin CHECK se utiliza para limitar el rango de valores que puede tener
una columna.
SQL DEFAULT
La restriccin DEFAULT se utiliza para establecer un valor por defecto a una
columna. Si no se especifica un valor al insertar una fila, entonces se podr el
valor por defecto (DEFAULT) que tenga cada columna.
Un ndice sirve para buscar datos rpidamente, y no tener que recorrer toda la
tabla secuencialmente en busca alguna fila concreta. Si una columna es ndice
de una tabla, al buscar por un valor de esa columna, iremos directamente a la
fila correspondiente. La bsqueda as es mucho ms ptima en recursos y ms
rpida en tiempo.
Actualizar una tabla con ndices tarda ms tiempo porque tambin hay que
actualizar los ndices, as que solo se deben poner ndices en las columnas por
las que buscamos frecuentemente.
SQL DROP
La sentencia DROP se utiliza para borrar definitivamente un ndice, tabla o
base de datos.
DROP INDEX
Sintaxis DROP INDEX para MySQL
DROP TABLE
Se utiliza DROP TABLE para borrar definitivamente una tabla
DROP DATABASE
Se utiliza para borrar una base de datos definitivamente.
DROP DATABASE nombrebasededatos
SQL ALTER
La sentencia SQL ALTER se utiliza para aadir, eliminar o modificar columnas
de una tabla.
Sintaxis SQL ALTER. Para aadir una nueva columna a una tabla
SQL VIEWS
Una vista es una tabla virtual.
Las vista muestran siempre datos reales de una o varias tablas. Cada vez que
un usuario pregunta o consulta una vista, el sistema de base de datos,
actualiza los datos de la vista, para mostrar siempre datos reales.
En la tabla personas
nombre apellido1 apellido2 edad
ANTONIO PEREZ GOMEZ 30
ANTONIO GARCIA RODRIGUEZ 45
PEDRO RUIZ GONZALEZ 50
SQL DATE
Existen diferentes formatos para almacenar las fechas y horas en los distintos
sistemas de bases de datos.
Los tipos de datos de cada columna se definen cuando se crea la tabla.
Tipos de Datos para las fechas y horas en la base de datos MySQL
Funciones para SQL Server sobre los tipos de datos de fecha y hora anteriores
GETDATE Muestra la fecha y hora actuales
DATEPART Muestra parte de una fecha y hora
Muestra una fecha como suma o resta de un intervalo de tiempo
DATEADD
sobre una fecha
DATEDIFF Muestra el tiempo entre 2 fechas
CONVERT Muestra la fecha y hora en diferentes formatos
Ejemplos del uso de fecha y hora
CREATE TABLE pedidos
(
idpedido int NOT NULL,
nombreproducto varchar(50) NOT NULL,
fechapedido datetime NOT NULL
PRIMARY KEY (idpedido)
)
idpedido nombreproducto fechapedido
1 papel oficina 2012-02-23 14:05:00
Si queremos almacenar solo la fecha (y no la hora) utilizaremos el tipo de
datos date en lugar de datetime.
Este valor NULL puede ser asignado como valor a cualquier columna de una
tabla. Si el valor de una columna es opcional, quiere decir, que podemos
insertar una fila en la tabla sin asignarle ningn valor a esa columna opcional,
as que esa columna tomar el valor NULL.
El valor NULL es un valor especial, y por tanto, no se puede comparar con los
operadores aritmticos normales (=, >, <, <>), y en su lugar debemos utilizar
los operadores IS y IS NOT.
DATE El tipo de dato DATE sirve para almacenar una fecha con el
formato YYYY-MM-DD (4 dgitos para el ao, guin, 2 dgitos
para el mes, guin, 2 dgitos para el da).
DATETIME El tipo de dato DATETIME sirve para almacenar fecha y hora,
con el formato YYYY-MM-DD HH:MM:SS
TIMESTAMP El tipo de dato TIMESTAMP es equivalente al tipo anterior,
DATETIME, YYYY-MM-DD HH:MM:SS
TIME El tipo de dato TIME sirve para almacenar la hora con el
formato HH:MM:SS
YEAR El tipo de dato YEAR sirve para almacenar el ao con el
formato YYYY
Tabla pedidos
id pedido cliente precio
1 p1 RUIZ 100
2 p2 PEREZ 300
3 p3 GOMEZ 250
4 p4 RODRIGUEZ 490
5 p5 LOPEZ 60
Si quieres saber el valor medio del campo precio, usa la siguiente funcin SQL
SELECT AVG(precio)
AS preciomedio
FROM pedidos
Si quieres seleccionar los clientes con el precio del pedido superior al precio
medio de los pedidos.
Sintaxis GROUP BY
Como la clusula WHERE no se puede utilizar con funciones SQL del tipo SUM,
MAX, entonces utilizamos en su lugar, HAVING.
Sintaxis HAVING
El resultado ser:
cliente SUM(precio)
RUIZ 590
Solamente el cliente RUIZ suma en sus valores para precio 490 + 100 = 590
un valor superior a 500
SELECT UCASE(columna)
FROM tabla
SELECT UCASE(cliente)
FROM pedidos
El resultado ser:
cliente
RUIZ
PEREZ
GOMEZ
Funcin SQL LCASE
La funcin LCASE sirve para convertir a minsculas el valor de una columna.
Sintaxis SQL LCASE
SELECT LCASE (columna) FROM tabla
Ejemplo SQL LCASE:
Dada la siguiente tabla pedidos
id pedido cliente precio
1 p1 Ruiz 100
2 p2 Perez 300
3 p3 Gomez 250
SELECT LCASE (cliente) FROM pedidos
El resultado ser:
cliente
ruiz
perez
gomez
El resultado ser:
cliente
Rui
Per
Gom
El resultado ser:
producto precio fecha
ordenador 900.25 10/2/2012 10:15:42 AM
impresora 65.57 10/2/2012 10:15:42 AM
teclado 10.84 10/2/2012 10:15:42 AM
id producto precio
1 ordenador 1200.25
2 impresora 65.57
3 teclado 10.84
Si queremos saber los precios de los productos a fecha de hoy, pero queremos
que la fecha tenga el formato YYYY-MM-DD, es decir, 4 caracteres para el
ao, guin, 2 caracteres para el mes, guin y 2 caracteres para el da.
update copiaest
set nivel =nivel +2
where nombre ='Maria';
update copiaest
set nivel =nivel +2,
fecna = '12/12/2000'
where nombre ='Maria';
update copiaest
set nivel =null
where nombre ='Maria';
TABLA:
uses prueba
Fecna date
NombreM char(10),
nivel int
Total int,
Iva int,
Fecha date,
Cliente,
Sucursal,
not null,
not null ,
not null,
ALTER.
[cdigo de modificacin]
UNIQUE (nombreUsuario)
b. Table Level
CREATE TABLE Products
(
ProductID INT,
ProductName VARCHAR(25)
CONSTRAINT pk_products_pid PRIMARY KEY(ProductID)
);
GO
b. Table Level
CREATE TABLE ProductSales
(
SalesID INT,
ProductID INT,
SalesPerson VARCHAR(25)
CONSTRAINT pk_productSales_sid PRIMARY KEY(SalesID),
CONSTRAINT fk_productSales_pid
FOREIGN KEY(ProductID)REFERENCES Products(ProductID)
);
GO
1) Alter Table Statement to create Foreign Key
ALTER TABLE ProductSales
ADD CONSTRAINT fk_productSales_pid
FOREIGN KEY(ProductID)REFERENCES Products(ProductID)
GO
2) Alter Table Statement to Drop Foreign Key
ALTER TABLE ProductSales
DROP CONSTRAINT fk_productSales_pid;
GO
USE AdventureWorks2008
GO
CREATE TABLE Customer
(
CustomerID INT CONSTRAINT pk_customer_cid PRIMARY KEY,
CustomerName VARCHAR(30),
CustomerAddress VARCHAR(50) CONSTRAINT df_customer_Add
DEFAULT 'UNKNOWN'
);
GO
http://blog.sqlauthority.com/2008/09/08/sql-server-%E2%80%93-
2008-creating-primary-key-foreign-key-and-default-constraint/
VISTAS EN SQL
CREATE VIEW
Una vista es una alternativa para mostrar datos de varias tablas. Una vista es
como una tabla virtual que almacena una consulta. Los datos accesibles a
travs de la vista no estn almacenados en la base de datos como un objeto.
Entonces, una vista almacena una consulta como un objeto para utilizarse
posteriormente. Las tablas consultadas en una vista se llaman tablas base. En
general, se puede dar un nombre a cualquier consulta y almacenarla como una
vista.
Una vista suele llamarse tambin tabla virtual porque los resultados que
retorna y la manera de referenciarlas es la misma que para una tabla.
Las vistas permiten:
Ocultar informacin: permitiendo el acceso a algunos datos y
manteniendo oculto el resto de la informacin que no se incluye en la
vista. El usuario opera con los datos de una vista como si se tratara de
una tabla, pudiendo modificar tales datos.
Simplificar la administracin de los permisos de usuario: se
pueden dar al usuario permisos para que solamente pueda acceder a los
datos a travs de vistas, en lugar de concederle permisos para acceder a
ciertos campos, as se protegen las tablas base de cambios en su
estructura.
Mejorar el rendimiento: se puede evitar tipear instrucciones
repetidamente almacenando en una vista el resultado de una consulta
compleja que incluya informacin de varias tablas.
Podemos crear vistas con: un subconjunto de registros y campos de una tabla;
una unin de varias tablas; una combinacin de varias tablas; un resumen
estadstico de una tabla; un subconjunto de otra vista, combinacin de vistas y
tablas.
Los nombres de las vistas deben seguir las reglas que se aplican a los
identificadores y ser nicos para cada esquema. Adems, el nombre
debe ser distinto del de las tablas incluidas en ese esquema.
Y deseamos crear una vista denominada V_Customer que contiene slo las
columnas First_Name, Last_Name y Pas de esta tabla, ingresaramos
CREATE VIEW V_Customer
AS SELECT First_Name, Last_Name, Country
FROM Customer
Podemos utilizar tambin una vista para aplicar uniones a dos tablas. En este
caso, los usuarios slo ven una vista en vez de dos tablas, y la instruccin SQL
que los usuarios necesitan emitir se vuelve mucho ms simple. Digamos que
tenemos las siguientes dos tablas:
Tabla Store_Information
store_name Sales Date
Los Angeles 1500 05-Jan-1999
San Diego 250 07-Jan-1999
Los Angeles 300 08-Jan-1999
Boston 700 08-Jan-1999
Tabla Geography
region_name store_name
East Boston
East New York
West Los Angeles
West San Diego
Y deseamos construir una vista que tenga ventas organizadas segn la regin.
Colocaramos la siguiente instruccin SQL:
CREATE VIEW V_REGION_SALES
AS SELECT A1.region_name REGION, SUM(A2.Sales) SALES
FROM Geography A1, Store_Information A2
WHERE A1.store_name = A2.store_name
GROUP BY A1.region_name
Esto nos brinda una vista, V_REGION_SALES, que se ha definido para las
ventas de los negocios segn los registros de la regin. Si deseamos saber el
contenido de esta vista, ingresamos:
SELECT * FROM V_REGION_SALES
Resultado:
REGION SALES
East 700
West 2050
CREATE INDEX
Los ndices nos ayudan a obtener datos de las tablas en forma ms rpida.
Utilicemos un ejemplo para ilustrar este punto: Digamos que estamos
interesados en leer en un libro de jardinera acerca de cmo cultivar pimientos.
En vez de leer el libro desde el comienzo hasta que encontremos una seccin
sobre pimientos, es mucho ms rpido para nosotros ir a la seccin ndice al
final del libro, ubicar qu pginas contienen la informacin sobre pimientos, y
luego dirigirnos a esas pginas directamente. Al dirigirnos al ndice primero
ahorramos tiempo y seguramente es el mtodo ms eficiente para ubicar la
informacin que necesitamos.
Un ndice es una estructura de disco asociada con una tabla o una vista que
acelera la recuperacin de filas de la tabla o de la vista. Un ndice contiene
claves generadas a partir de una o varias columnas de la tabla o la vista.
Dichas claves estn almacenadas en una estructura (rbol b) que permite que
SQL Server busque de forma rpida y eficiente la fila o filas asociadas a los
valores de cada clave.
ASC: la clusula ASC es la que se asume por defecto e indica que el orden
elegido para el ndice es ascendente (en orden alfabtico si la columna es de
tipo texto, de menor a mayor si es de tipo numrico, en orden cronolgico si es
de tipo fecha).
WITH DISALLOW NULL indica que no permite valores nulos en las columnas
que forman el ndice.
WITH IGNORE NULL indica que las filas que tengan valores nulos en las
columnas que forman el ndice se ignoran, no aparecen cuando recuperamos
las filas de la tabla utilizando ese ndice.
Ejemplo:
Crea un ndice llamado ind1 sobre la tabla clientes formado por las columnas
provincia, poblacin y fecha_nacimiento. Este ndice permite tener ordenadas
las filas de la tabla clientes de forma que aparezcan los clientes ordenados por
provincia, dentro de la misma provincia por poblacin y dentro de la misma
poblacin por edad y del ms joven al ms mayor.
Al aadir la clusula UNIQUE el ndice no permitir duplicados por lo que no
podra tener dos clientes con la misma fecha de nacimiento en la misma
poblacin y misma provincia, para evitar el poblema sera mejor utilizar:
Note que la sintaxis exacta para CREATE INDEX puede ser distinta segn las
diferentes bases de datos. Debera consultar con su manual de referencia de
base de datos para obtener la sintaxis precisa.
ndices y restricciones
Los ndices se crean automticamente cuando las restricciones PRIMARY KEY y
UNIQUE se definen en las columnas de tabla. Por ejemplo, cuando crear una
tabla e identifica una columna particular a la clave primaria, SQL Server
Database Engine (Motor de base de datos de SQL Server) crea
automticamente una restriccin PRIMARY KEY y un ndice en esa columna.
DROP INDEX
La sentencia DROP INDEX sirve para eliminar un ndice de una tabla. Se
elimina el ndice pero no las columnas que lo forman.
La sintaxis es la siguiente:
Ejemplo:
CONSTRAINT
Se utiliza la clusula CONSTRAINT en las instrucciones ALTER TABLE y CREATE
TABLE para crear o eliminar ndices. Existen dos sintaxis para esta clusula
dependiendo si desea Crear Eliminar un ndice de un nico campo o si se
trata de un campo multindice. Si se utiliza el motor de datos de Microsoft, slo
podr utilizar esta clusula con las bases de datos propias de dicho motor. Para
los ndices de campos nicos:
En donde:
nombre Es el nombre del ndice que se va a crear.
primarioN Es el nombre del campo o de los campos que forman el
ndice primario
nicoN Es el nombre del campo o de los campos que forman el
ndice de clave nica.
refN Es el nombre del campo o de los campos que forman el
ndice externo (hacen referencia a campos de otra tabla).
tabla externa Es el nombre de la tabla que contiene el campo o los
campos referenciados en refN
campos Es el nombre del campo o de los campos de la tabla externa
externos especificados por ref1, ref2,... , refN
Indice Descripcin
UNIQUE Genera un ndice de clave nica. Lo que implica que los registros
de la tabla no pueden contener el mismo valor en los campos
indexados.
PRIMARY Genera un ndice primario el campo o los campos especificados.
KEY Todos los campos de la clave principal deben ser nicos y no
nulos, cada tabla slo puede contener una nica clave principal
FOREIGN Genera un ndice externo (toma como valor del ndice campos
KEY contenidos en otras tablas). Si la clave principal de la tabla
externa consta de ms de un campo, se debe utilizar una
definicin de ndice de mltiples campos, listando todos los
campos de referencia, el nombre de la tabla externa, y los
nombres de los campos referenciados en la tabla externa en el
mismo orden que los campos de referencia listados. Si los
campos referenciados son la clave principal de la tabla externa,
no tiene que especificar los campos referenciados,
predeterminado por valor, el motor Jet se comporta como si la
clave principal de la tabla externa estuviera formada por los
campos referenciados.
PROCEDIMIENTOS ALMACENADOS
Es un conjunto de cdigo puro del lenguaje que utilizamos dentro de las bases
de datos como por ejemplo: create table, insert into, Select from. Que se
almacena fsicamente en la base de datos y de la misma forma se exportan
cuando creamos una copia de seguridad de nuestra base de datos.
Iniciamos con:
Codigo: 001
Nombre: Fabian
Apellido: Bermeo
Edad: 19
Universidad: Tecnolgico Sudamericano
create procedure pa
@mes int, @cant int output
as
begin
end
declare @s int
exec pa 1, @s output
select @s as cantidad;
TRIGGERS
Un "trigger" (disparador o desencadenador) es un tipo de procedimiento
almacenado que se ejecuta cuando se intenta modificar los datos de una tabla
(o vista).
Sintaxis bsica:
create triggre NOMBREDISPARADOR
on NOMBRETABLA
for EVENTO- insert, update o delete
as
SENTENCIAS
Analizamos la sintaxis:
"Create trigger" junto al nombre del disparador.
Consideraciones generales:
"Create trigger" debe ser la primera sentencia de un bloque y slo
se puede aplicar a una tabla.
USE StockArticulos
GO
Probemos el ejercicio
Mostremos el Stock actual
SELECT A.ID,A.NOMBRE,A.STOCK FROM dbo.Articulos A
Gestin de privilegios
GRANT: Asignar privilegios
Esta instruccin sirve para asignar permisos a un usuario. Su sintaxis resumida
es:
GRANT privilegios
ON elemento
TO nombreUsuario IDENTIFIED BY 'contrasea'
[ WITH GRANT OPTION ];
Privilegios puede ser ALL PRIVILEGES, para asignar todos los privilegios
excepto GRANT, o una lista de rdenes SQL separadas por coma (SELECT,
INSERT, DELETE, UPDATE).
baseDeDatos.Tabla
Una tabla determinada de una base de datos concreta
EJEMPLO:
GRANT ALL PRIVILEGES ON * to administrador@localhost IDENTIFIED
BY "inorik"
REVOKE privilegios
ON elemento
FROM nombre_de_usuario;
EJEMPLO:
REVOKE ALL PRIVILEGES ON * FROM administrador@localhost
Proceso de Backup:
Escogemos la base de datos para realizar su respaldo, hacemos clic derecho,
tareas, copia de seguridad.
En la pestaa General escribimos el nombre del respaldo, en este caso
compania_backup y un tipo de copia completa.
Finalmente damos clic en Aceptar y esperamos a que SQL Server haga la copia
de seguridad.
Proceso de Recuperacin
Hacemos clic en Base de datos del panel principal de la izquierda. Damos clic
en Restaurar base de datos.
Escribimos el nombre de la base de datos, en este caso compania y elegimos
desde donde vamos a restaurar, en el ejemplo elegimos desde dispositivo y
buscamos el archivo .bak
Finalmente hacemos una consulta para comprobar los datos.
http://darwinproanioorellana.blogspot.com/2011/02/backups-y-restauracion-
de-bases-de.html