Fundamentos Base de Datos
martes, 25 de noviembre de 2014
lunes, 10 de noviembre de 2014
martes, 4 de noviembre de 2014
UNIDAD 6.- SQL
DEFINICON
El término SQL es el acrónimo en inglés –cuyo significado es
sigla que se pronuncia como una palabra y que por el uso termina por
lexicalizarse- de Structured Query Language (Lenguaje de Consulta
Estructurado). Esta sigla fue introducida por primera vez, en 1979, por Oracle,
en una base de datos comercial. Anteriormente se llamaba SEQUEL –Structured
English Query Language- y servía como interfaz para un sistema experimental de
base de datos llamado SYSTEM R, se adoptó la nueva denominación por cuestiones
legales.
Entre sus características, se pueden mencionar:
-Permite el acceso a las bases de datos.
-Aprovecha el poder y la flexibilidad de los sistema
relacionales, facilitando las operaciones sobre ellos.
-Se considera un lenguaje declarativo de alto nivel.
-Acepta
negación y concesión de permisos, restricciones de integridad, controles a la
transacción, entre otros.
-Se puede usar
interactivamente, para lograr esto, sus sentencias se escriben y se llevan en
líneas de comandos.
-Otra de sus
versiones es el FSQL, que es el Structured Query Language, pero basado en
lógica difusa, para ser implementado, en bases de datos difusas.
Entre los
comandos que utiliza están:
Comandos para
definición de datos: como el Create Table que se usa para crear una nueva
relación a la que se le establece un nombre y unos atributos; también está Drop
Table, Alter Table, Create Index, Drop Index.
Comandos para
la manipulación de datos como el Select: que tiene por finalidad, recuperar la
información desde una base de datos. Existen funciones relacionados con este
comand, como la Distinct, Count, Sum entre otras. Además del Select están el
Update, Delete e Insert.
LENGUAJE DE DEFINICON DE DATOS
El lenguaje
de definición de datos (en inglés Data Definition Language, o DDL),
es el que se encarga de la modificación de la estructura de los objetos de la
base de datos. Incluye ó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: CREATE, ALTER, DROP y TRUNCATE.
CREATE | CREAR
Este comando
permite crear objetos de datos, como nuevas bases de datos, tablas, vistas y procedimientos
almacenados.
Ejemplo
(crear una tabla)
CREATE TABLE 'CUSTOMERS';
ALTER | MODIFICAR
Este comando
permite modificar la estructura de un objeto. Se pueden agregar/quitar campos a
una tabla, modificar el tipo de un campo, agregar/quitar índices a una tabla,
modificar untrigger, etc.
Ejemplo
(agregar columna a una tabla)
ALTER TABLE 'ALUMNOS'
ADD EDAD INT UNSIGNED;
DROP | ELIMINAR
Este comando
elimina un objeto de la base de datos. Puede ser una tabla, vista, índice, trigger,
función, procedimiento o cualquier objeto que el motor de la base de datos
soporte. Se puede combinar con la sentencia ALTER.
Ejemplo
DROP TABLE 'ALUMNOS';.
TRUNCATE | BORRAR TABLA
Este comando
trunca todo el contenido de una tabla. La ventaja sobre el comando DROP, 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. La desventaja es que TRUNCATE sólo
sirve cuando se quiere eliminar absolutamente todos los registros, ya que no se
permite la cláusula WHERE. Si bien, en un principio, esta sentencia parecería
ser DML (Lenguaje de Manipulación de Datos), es en realidad una DDL, ya que
internamente, el comando TRUNCATE borra la tabla y la vuelve a crear y no
ejecuta ninguna transacción.
Ejemplo
TRUNCATE TABLE 'NOMBRE_TABLA';
ESTRUCTURA BASICA SQL
OPERACIONES SOBRE CONJUNTOS
SQL Server
2005 permite tres tipos de operaciones con conjuntos:
· * UNION, disponible en todas las versiones de SQL Server.
· *EXCEPT, nuevo en SQL Server 2005.
· *INTERSECT, nuevo en SQL Server 2005.
Para utilizar
operaciones de conjuntos debemos cumplir una serie de normas:
· *Las consultas a unir deben tener el mismo número campos, y además
los campos deben ser del mismo tipo.
· *Sólo puede haber una única clausula ORDER BY al final de la
sentencia SELECT.
Fuentes.-
TABLAS DE EJERCICIOS ANTERIORES (Actividad atrasada)
Problema #1
Se quiere diseñar una base de datos relacional que almacene información relativa a los zoos existentes en el mundo, así como las especies animales que éstos albergan. De cada zoo se conoce el nombre, ciudad y país donde se encuentra, tamaño (en m2) y presupuesto anual. De cada especie animal se almacena el nombre vulgar y nombre científico, familia a la que pertenece y si se encuentra en peligro de extinción.
Además, se debe guardar información sobre cada animal que los zoos poseen, como su número de identificación, especie, sexo, año de nacimiento, país de origen y continente.
Además, se debe guardar información sobre cada animal que los zoos poseen, como su número de identificación, especie, sexo, año de nacimiento, país de origen y continente.
Problema #2
Se quiere diseñar una base de datos relacional para gestionar los datos de los socios de un club náutico. De cada socio se guardan los datos personales y los datos del barco o barcos que posee: número de matrícula, nombre, número del amarre y cuota que paga por el mismo. Además, se quiere mantener información sobre las salidas realizadas por cada barco, como la fecha y hora de salida, el destino y los datos personales del patrón, que no tiene por qué ser el propietario del barco, ni es necesario que sea socio del club.
Problema #3
Se quiere diseñar una base de datos relacional para almacenar información sobre los asuntos que lleva un gabinete de abogados. Cada asunto tiene un número de expediente que lo identifica, y corresponde a un solo cliente. Del asunto se debe almacenar el período (fecha de inicio y fecha de archivo o finalización), su estado (en trámite, archivado, etc.), Así como los datos personales del cliente al que pertenece (DNI, nombre, dirección, etc.). Algunos asuntos son llevados por uno o varios procuradores, de los que nos interesan también los datos personales.
lunes, 3 de noviembre de 2014
**************** EVALUACIÓN INTERMEDIA UNIDAD 5****************
Problema #1
Supongamos que se nos ha encargado el diseño de una biblioteca digital. Para
realizar nuestra tarea, hemos de comenzar diseñando la base de datos que dará soporte a las
distintas aplicaciones que posteriormente se irán implementando. En principio, la única
información de la que disponemos es la siguiente:
· Nuestra biblioteca digital ha de almacenar información bibliográfica (título, autor, edición,
ISBN…) de distintos títulos.
· Cada título de nuestra biblioteca digital se encuentra almacenado en una o varias URLs
alternativas.
· Además, cada título se encuentra catalogado: un título puede corresponder a una o más
categorías diferentes. Dichas categorías, por su parte, se encuentran organizadas de forma
jerárquica (una categoría puede tener varias subcategorías, si bien sólo puede estar
englobada por una supercategoría).
· Los usuarios del sistema han de identificarse para poder utilizar nuestra biblioteca digital,
que utilizará las técnicas más avanzadas de protección de datos.
· Al estilo de algunas librerías de Internet como Amazon, los usuarios del sistema podrán
evaluar y escribir comentarios acerca de los títulos albergados en la biblioteca. La
evaluación se hará clasificando los títulos de 1 a 5 estrellas en función de las preferencias
del usuario y el conjunto de las evaluaciones realizadas por los distintos usuarios servirá
para recomendar unos títulos frente a otros.
Diseñar una base de datos relacional que nos permita almacenar toda la información relativa a
nuestra biblioteca digital:
a) Identificar las entidades de nuestro modelo y los atributos correspondientes a cada una de
tales entidades.
b) Analizar las relaciones existentes entre las distintas entidades y determinar su cardinalidad
(uno a uno, uno a muchos, muchos a muchos).
c) Dibujar un diagrama entidad/relación que represente el esquema lógico correspondiente al
modelo de datos definido por las entidades y relaciones obtenidas en los apartados
anteriores.
d) A partir del diagrama, obtener el conjunto de tablas que nos permitirá implementar nuestro
modelo en un sistema gestor de bases de datos relacionales.
problema #2
Supongamos que se nos ha encargado el diseño de una base de datos que sirva de soporte al
sistema de gestión de las nóminas de una empresa. Tras analizar detenidamente el problema,
averiguamos que nuestro sistema debe cumplir los siguientes requisitos:
• La empresa tiene un conjunto de empleados trabajando con contrato (un empleado puede
firmar varios contratos a lo largo de su carrera profesional).
• Para cada empleado, el sistema almacena sus datos personales (DNI, nombre, apellidos,
teléfono, dirección) y el número de su cuenta corriente para realizar las transferencias
correspondientes a las nóminas.
• Cada contrato firmado por un empleado tiene una fecha de alta, una fecha de baja (nula si el
contrato es indefinido), una categoría asociada y un puesto de destino.
• El sueldo base de un empleado depende de su categoría.
• En función del puesto de destino del empleado, el empleado puede recibir uno o varios
complementos, que se sumarán al sueldo base del empleado.
• Además, por su antigüedad en la empresa, el empleado cobrará trienios (cuyo importe
depende de la categoría de su contrato actual).
• Por último, el empleado también cobrará complementos por los cargos que desempeñe
(durante la duración de su ocupación del cargo, que no tiene por qué coincidir con la de su
contrato).
• De las percepciones salariales indicadas en los puntos anteriores, la nómina de cada empleado
incluirá una serie de deducciones (p.ej. aportaciones seguro social, impuesto sobre la renta )
• El sistema debe almacenar todas las nóminas emitidas mensualmente e incluir
automáticamente tanto los distintos conceptos correspondientes a percepciones salariales del
empleado como los distintos tipos de deducciones a los que está sujeta su nómina.
problema #3
Problema de diseño de bases de datos
Supongamos que se nos ha encargado el desarrollo de un sistema de información para
una galería de arte. Tras analizar el problema, hemos obtenido la siguiente lista de requisitos:
• El sistema ofrecerá información acerca de las distintas exposiciones que estén programadas
(título, descripción, fecha de inauguración y fecha de clausura).
• En cada exposición se expondrán obras de distintos artistas. Cada obra vendrá identificada
por un número de registro. El sistema informará acerca del título, artista, estilo y precio de
salida de cada una de las obras de arte expuestas en las exposiciones.
• Cada obra tiene un propietario, que suele ser el artista que la creó, aunque esto no es
necesariamente así.
• Las obras expuestas se pueden comprar haciéndole ofertas a sus propietarios. Al término de
la exposición, el propietario de una obra puede vender la obra a la persona que haya
realizado la mejor oferta.
NOTA: Es esencial que en la base de datos no se almacenen datos de forma redundante, para lo
cual hemos de tener en cuenta que una misma persona puede ser propietaria de una obra de arte
y realizar ofertas para comprar otras obras de arte. De hecho, incluso puede ser responsable de
la creación de alguna de las obras expuestas.
Diseñe una base de datos relacional para el problema planteado:
a) Identifique las entidades y los atributos correspondientes a cada una de las entidades,
indicando explícita mente cuáles serán las claves primarias de las distintas entidades.
b) Analice las relaciones existentes entre las distintas entidades y determine su cardinalidad.
c) Dibuje un diagrama entidad/relación que represente el modelo de datos definido por las
entidades y las relaciones identificadas en los apartados anteriores.
d) A partir del diagrama, obtenga el conjunto de tablas que nos permita implementar nuestro
modelo en un sistema gestor de bases de datos relacionales, indicando las claves primarias
de todas y cada una de las tablas de nuestra base de datos.
Suscribirse a:
Entradas (Atom)