Modelado de Base de Datos (Trabajo 3)

República Bolivariana de Venezuela Ministerio del Poder Popular para la Educación Universitaria Universidad Politécnica

Views 81 Downloads 4 File size 480KB

Report DMCA / Copyright

DOWNLOAD FILE

Recommend stories

Citation preview

República Bolivariana de Venezuela Ministerio del Poder Popular para la Educación Universitaria Universidad Politécnica Territorial de los Altos Mirandinos "Cecilio Acosta" Programa Nacional de Formación en Informática Trayecto: 3 – Sección: 02 Los Teques - Estado Miranda

MODELADO DE BASE DE DATOS

Docente: Julio Morales

Alumno: José Martínez CI 26.323.184

Los Teques, 2017

Índice Contenido CONSULTAS ......................................................................................................................................... 3 SUB-CONSULTAS ................................................................................................................................. 3 CÓMO UTILIZAR SUB-CONSULTAS ...................................................................................................... 3 SUB-CONSULTAS QUE PRODUCEN VALORES ESCALARES: .................................................................. 4 CONDICIONES QUE INVOLUCRAN RELACIONES: ................................................................................. 4 SUBCONSULTAS EN CLAUSULAS FROM............................................................................................... 5 ELIMINACIÓN DE DUPLICADOS ........................................................................................................... 5 AGRUPACIÓN Y AGREGACIÓN............................................................................................................. 5 TIPOS DE DATOS .................................................................................................................................. 6 DEFINICIÓN DE TABLAS ....................................................................................................................... 6 MODIFICACIÓN DE ESQUEMAS ........................................................................................................... 7 VALORES POR DEFECTO ...................................................................................................................... 7 ÍNDICES ................................................................................................................................................ 7 DECLARACIÓN DE CLAVES PRIMARIAS ................................................................................................ 8 RESTRICCIONES SOBRE CLAVES ........................................................................................................... 9 DECLARACIÓN DE RETRACCIONES DE INTEGRIDAD REFERENCIAL ................................................... 10 CHEQUEO DIFERIDO DE RESTRICCIONES .......................................................................................... 10 INSERCIÓN, ELIMINACIÓN Y ACTUALIZACIÓN................................................................................... 11 DECLARACIÓN DE VISTAS Y CONSULTA SOBRE VISTAS ..................................................................... 11

Unidad 3: Consultas Avanzadas en Bases de Datos

CONSULTAS Las consultas son objetos que vamos a utilizar para visualizar parte de la información contenida en nuestras bases de datos desde una perspectiva más detallada y más adaptada a las necesidades concretas a una situación puntual, en contraposición al contenido total de las tablas de nuestra base de datos. Se pueden realizar sobre una o varias tablas relacionadas y el resultado que devuelven se muestran también en forma de tabla.

SUB-CONSULTAS Una subconsulta, o una consulta dentro de una consulta, pueden ponerse dentro de la cláusula WHERE de una consulta. Esto produce una expansión de las capacidades de una cláusula WHERE. La consulta que incluye a esta subconsulta se llama consulta externa (outer query) o consulta principal. La subconsulta puede ejecutarse lógicamente antes de que alguna fila sea examinada por la consulta principal. En cierto sentido, la subconsulta es independiente de la consulta principal. Esta podría ejecutarse como una consulta propiamente dicha. Se dice que esta clase de subconsulta no está correlacionada con la consulta principal. Las subconsultas pudieran también estar correlacionadas.

CÓMO UTILIZAR SUB-CONSULTAS Cuando decida utilizar sub-consultas, tenga en cuenta los siguientes hechos e instrucciones: • Las sub-consultas se deben incluir entre paréntesis. • Se pueden utilizar sub-consultas en lugar de una expresión siempre y cuando-se devuelva un solo valor o una lista de valores.

• Se pueden utilizar sub-consultas que devuelvan un conjunto de registros de varias columnas enlugar de una tabla o para realizar la misma función que una combinación. • No se pueden utilizar sub-consultas que recuperen columnas con tipos de datos Text e image • .Puede tener sub-consultas dentro de sub-consultas, con una anidación de hasta 32 niveles. El límite varía según la cantidad de memoria disponible y la complejidad de las otras expresiones de la consulta. Las consultas individuales pueden no admitir una anidación de hasta 32 niveles.

SUB-CONSULTAS QUE PRODUCEN VALORES ESCALARES: Un valor escalar puede ser entendido como un valor numérico, aunque también se consideran escalares los caracteres o las cadenas de caracteres (considerando éstas como un tipo de datos elemental, no como un vector de caracteres). Una sub consulta que obtiene exactamente un valor de una columna de una fila es también llamada sub consulta escalar. El valor de una expresión en una sub consulta escalar es el valor del elemento de la lista seleccionado de la sub consulta. Ejemplo: Empleados que ganan más que el promedio de salarios pagados en el depto 20.

CONDICIONES QUE INVOLUCRAN RELACIONES: ANY. Chequean si alguna fila de la lista resultado de una subconsulta se encuentra el valor especificado en la condición. Compara un valor escalar con los valores de un campo y devuelven "true" si la comparación con cada valor de la lista de la subconsulta es verdadera, sino "false". El tipo de datos que se comparan deben ser compatibles. ALL: También compara un valor escalar con una serie de valores. Chequea si TODOS los valores de la lista de la consulta externa se encuentran en la lista de valores devuelta por la consulta interna. EXITS: Cuando anidamos sentencias SELECT, todos los operadores lógicos son válidos. En suma, se puede usar el operador EXISTS. Este operador es frecuentemente usado en sub consultas relacionales para verificar cuando un valor recuperado por la consulta externa existe en el conjunto de resultados obtenidos por la consulta interna. Si la sub consulta obtiene al menos una fila, el operador obtiene el valor TRUE. Si el valor no existe, se obtiene el valor FALSE.

Consecuentemente, NOT EXISTS verifica cuando un valor recuperado por la consulta externa no es parte del conjunto de resultados obtenidos por la consulta interna.

SUBCONSULTAS EN CLAUSULAS FROM La cláusula FROM sirve para identificar las tablas de donde serán proveídos los datos a retornarse, como un SubQuery o Subconsulta retorna un conjunto de valores también puede ser utilizado como una tabla más.

ELIMINACIÓN DE DUPLICADOS Los datos duplicados a menudo se generan cuando múltiples usuarios agregan datos a la base de datos al mismo tiempo o si la base de datos no fue diseñada para revisar si hay duplicados. Es más fácil usar una consulta cuando desea eliminar muchos datos duplicados.

AGRUPACIÓN Y AGREGACIÓN La cláusula GROUP BY unida a un SELECT permite agrupar filas según las columnas que se indiquen como parámetros, y se suele utilizar en conjunto con las funciones de agrupación, para obtener datos resumidos y agrupados por las columnas que se necesiten. Las funciones de agregación en SQL nos permiten efectuar operaciones sobre un conjunto de resultados, pero devolviendo un único valor agregado para todos ellos. Es decir, nos permiten obtener medias, máximos, sobre un conjunto de valores. Las funciones de agregación básicas que soportan todos los gestores de datos son las siguientes: o

COUNT: devuelve el número total de filas seleccionadas por la consulta.

o

MIN: devuelve el valor mínimo del campo que especifiquemos.

o

MAX: devuelve el valor máximo del campo que especifiquemos.

o

SUM: suma los valores del campo que especifiquemos. Sólo se puede utilizar en columnas numéricas.

o

AVG: devuelve el valor promedio del campo que especifiquemos. Sólo se puede utilizar en columnas numéricas.

TIPOS DE DATOS En SQL Server, cada columna, variable local, expresión y parámetro tiene un tipo de datos relacionado. Un tipo de datos es un atributo que especifica el tipo de datos que el objeto puede contener: datos de enteros, datos de caracteres, datos de moneda, datos de fecha y hora, cadenas binarias, etc.

DEFINICIÓN DE TABLAS Tabla en las bases de datos, se refiere al tipo de modelado de datos, donde se guardan los datos recogidos por un programa. Su estructura general se asemeja a la vista general de un programa de hoja de cálculo. Una tabla es utilizada para organizar y presentar información. Las tablas se componen de filas y columnas de celdas que se pueden rellenar con textos y gráficos.

LAS TABLAS SE COMPONEN DE DOS ESTRUCTURAS: 

Registro: es cada una de las filas en que se divide la tabla. Cada registro contiene datos de los mismos tipos que los demás registros. Ejemplo: en una tabla de nombres y direcciones, cada fila contendrá un nombre y una dirección.



Campo: es cada una de las columnas que forman la tabla. Contienen datos de tipo diferente a los de otros campos. En el ejemplo anterior, un campo contendrá un tipo de datos único, como una dirección, o un número de teléfono, un nombre, etc.

MODIFICACIÓN DE ESQUEMAS Los tipos de modificación que pueden hacerse en un esquema de base de datos relacional son bastantes simples: 

Crear o quitar una relación.



Añadir o eliminar atributos de un esquema de relaciones.

Esta simplicidad no se cumple en los esquemas de bases de datos orientadas a objetos.

VALORES POR DEFECTO Si al insertar registros no se especifica un valor para un campo que admite valores nulos, se ingresa automáticamente "null" y si el campo está declarado "identity", se inserta el siguiente de la secuencia. A estos valores se les denomina valores por defecto o predeterminados. Un valor por defecto se inserta cuando no está presente al ingresar un registro y en algunos casos en que el dato ingresado es inválido.

ÍNDICES Un índice es una estructura de disco asociada con una tabla o una vista que acelera la recuperación 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 están almacenadas en una estructura (árbol b) que permite que SQL Server busque de forma rápida y eficiente la fila o filas asociadas a los valores de cada clave. Una tabla o una vista pueden contener los siguientes tipos de índices: 

Agrupado o

Los índices agrupados ordenan y almacenan las filas de los datos de la tabla o vista de acuerdo con los valores de la clave del índice. Son columnas incluidas en la definición del índice. Sólo puede haber un índice clúster por cada tabla, porque las filas de datos sólo pueden estar ordenadas de una forma.

o

La única ocasión en la que las filas de datos de una tabla están ordenadas es cuando la tabla contiene un índice clúster. Cuando una tabla tiene un índice clúster, la tabla se denomina tabla agrupada. Si una tabla no tiene un índice clúster, sus filas de datos están almacenadas en una estructura sin ordenar denominada montón.



No agrupado o

Los índices no agrupados tienen una estructura separada de las filas de datos. Un índice no agrupado contiene los valores de clave de índice no agrupado y cada entrada de valor de clave tiene un puntero a la fila de datos que contiene el valor clave.

o

El puntero de una fila de índice no agrupado hacia una fila de datos se denomina localizador de fila. La estructura del localizador de filas depende de si las páginas de datos están almacenadas en un montón o en una tabla agrupada. Si están en un montón, el localizador de filas es un puntero hacia la fila. Si están en una tabla agrupada, el localizador de fila es la clave de índice agrupada.

o

Puede agregar columnas sin clave al nivel hoja de un índice no agrupado con el fin de eludir los límites existentes para las claves de índice, 900 bytes y columnas de 16 claves, así como para ejecutar consultas indizadas y totalmente cubiertas. Para obtener más información.

DECLARACIÓN DE CLAVES PRIMARIAS En el diseño de bases de datos relacionales, se llama clave principal a un campo o a una combinación de campos que identifica de forma única a cada fila de una tabla. Una clave primaria comprende de esta manera una columna o conjunto de columnas. No puede haber dos filas en una tabla que tengan la misma clave primaria. Ejemplos de claves primarias son DNI (asociado a una persona) o ISBN (asociado a un libro). Las guías telefónicas y diccionarios no pueden usar nombres o palabras o números del sistema decimal de Dewey como claves candidatas, porque no identifican unívocamente números de teléfono o palabras.

El modelo relacional, según se lo expresa mediante cálculo relacional y álgebra relacional, no distingue entre clave primaria y otros tipos de claves. Las claves primarias fueron agregadas al estándar SQL principalmente para conveniencia del programador. En una arquitectura entidadrelación, la clave primaria permite las relaciones de la tabla que tiene la clave primaria con otras tablas que van a utilizar la información de esta tabla. Tanto claves únicas como claves primarias pueden referenciarse con claves foráneas.

RESTRICCIONES SOBRE CLAVES Clave principal

Una tabla suele tener una columna o una combinación de columnas cuyos valores identifican de forma única cada fila de la tabla. Estas columnas se denominan claves principales de la tabla y exigen la integridad de entidad de la tabla. Debido a que las restricciones de clave principal garantizan datos únicos, con frecuencia se definen en una columna de identidad. Cuando especifica una restricción de clave principal en una tabla, Motor de base de datos exige la unicidad de los datos mediante la creación automática de un índice único para las columnas de clave principal. Este índice también permite un acceso rápido a los datos cuando se usa la clave principal en las consultas. Si se define una restricción de clave principal para más de una columna, puede haber valores duplicados dentro de la misma columna, pero cada combinación de valores de todas las columnas de la definición de la restricción de clave principal debe ser única.

Clave externa

Una clave externa (FK) es una columna o combinación de columnas que se usa para establecer y aplicar un vínculo entre los datos de dos tablas a fin de controlar los datos que se pueden almacenar una tabla de clave externa. En una referencia de clave externa, se crea un vínculo entre dos tablas cuando las columnas de una de ellas hacen referencia a las columnas de la otra que contienen el valor de clave principal. Esta columna se convierte en una clave externa para la segunda tabla.

DECLARACIÓN DE RETRACCIONES DE INTEGRIDAD REFERENCIAL Una restricción de integridad referencial de Entity Data Model (EDM) es similar a una restricción de integridad referencial de una base de datos relacional. Del mismo modo que una columna (o columnas) de una tabla de base de datos puede hacer referencia a la clave principal de otra tabla, una propiedad (o propiedades) de un tipo de entidad puede hacer referencia a la clave de entidad de otro tipo de entidad. El tipo de entidad al que se hace referencia se denomina extremo principal de la restricción. El tipo de entidad que hace referencia al extremo principal se denomina extremo dependiente de la restricción. Una restricción de integridad referencial se define como parte de una asociación entre dos tipos de entidad. La definición para una restricción de integridad referencial especifica la siguiente información: 

El extremo principal de la restricción. Es un tipo de entidad a cuya clave de entidad hace referencia el extremo dependiente.



La clave de entidad del extremo principal.



El extremo dependiente de la restricción. Es un tipo de entidad que tiene una o varias propiedades que hacen referencia a la clave de entidad del extremo principal.



La propiedad o propiedades que hacen la referencia del extremo dependiente.

CHEQUEO DIFERIDO DE RESTRICCIONES Las restricciones CHECK exigen la integridad del dominio mediante la limitación de los valores que puede aceptar una columna. Son similares a las restricciones FOREIGN KEY porque controlan los valores que se colocan en una columna. La diferencia reside en la forma en que determinan qué valores son válidos: las restricciones FOREIGN KEY obtienen la lista de valores válidos de otra tabla, mientras que las restricciones CHECK determinan los valores válidos a partir de una expresión lógica que no se basa en datos de otra columna. Por ejemplo, es posible limitar el intervalo de valores para una columna salary creando una restricción CHECK que sólo permita datos entre 15.000 y 100.000 dólares. De este modo se impide que se escriban salarios superiores al intervalo de salario normal.

INSERCIÓN, ELIMINACIÓN Y ACTUALIZACIÓN o

La estructura básica para la sentencia insert utilizando el estándar de SQL es la siguiente:

insert into usuario (nombre, apellidos, edad, carrera) values ("Martín", "Bastida Godínez", "23", "Ingeniería en TI"); o

Para eliminar los registros de una tabla usamos el comando "delete":

delete from usuarios; La ejecución del comando indicado en la línea anterior borra TODOS los registros de la tabla. Si queremos eliminar uno o varios registros debemos indicar cuál o cuáles, para ello utilizamos el comando "delete" junto con la clausula "where" con la cual establecemos la condición que deben cumplir los registros a borrar. Por ejemplo, queremos eliminar aquel registro cuyo nombre de usuario es 'Martín': delete from usuarios where nombre='Martín'; Si solicitamos el borrado de un registro que no existe, es decir, ningún registro cumple con la condición especificada, no se borrarán registros, pues no encontró registros con ese dato. o

Para modificar uno o varios datos de uno o varios registros utilizamos "update" (actualizar).

DECLARACIÓN DE VISTAS Y CONSULTA SOBRE VISTAS Una vista es una consulta que se presenta como una tabla (virtual) a partir de un conjunto de tablas en una base de datos relacional.

Las vistas tienen la misma estructura que una tabla: filas y columnas. La única diferencia es que sólo se almacena de ellas la definición, no los datos. Los datos que se recuperan mediante una

consulta a una vista se presentarán igual que los de una tabla. De hecho, si no se sabe que se está trabajando con una vista, nada hace suponer que es así. Al igual que sucede con una tabla, se pueden insertar, actualizar, borrar y seleccionar datos en una vista. Aunque siempre es posible seleccionar datos de una vista, en algunas condiciones existen restricciones para realizar el resto de las operaciones sobre vistas.