martes, 31 de diciembre de 2013

VISTAS

Creación de vistas utilizando T-SQL

¿Qué es una vista?

En sistemas de gestión de bases de datos relacionales (RDMS) se crea una tabla lógica a través de las especificaciones de una o más operaciones relacionales en una o más tablas.

Una vista es una tabla virtual que muestra los datos de una o varias tablas seleccionadas.

Un usuario de una base de datos podría ver sólo tablas virtuales. Sólo el administrador de la base de datos puede ver las tablas reales

Cuáles son las ventajas de las vistas

Una vista se puede concebir como una consulta almacenada.

Los datos accesibles a través de la vista no se almacenan en la base de datos como un objeto definido.

Lo que se almacena en la base de datos es una sentencia SELECT. El resultado del conjunto de sentencias SELECT forman la tabla virtual.

La tabla virtual se accede al referenciar el nombre de la vista en sentencias T-SQL como se indica a continuación:

SELECT * from Where

¿Cómo se pueden utilizar las vistas?

Una vista se puede utilizar para:

Hacer que el usuario utilice filas específicas en la tabla. Por ejemplo: puede permitirle a un empleado que sólo vea las filas que registren su trabajo en la tabla de seguimiento laboral.

Hacer que el usuario utilice columnas específicas. Por ejemplo: puede permitirle a los empleados que no estén en nómina que vean las columnas de nombre, oficina, teléfono de oficina y departamentos, pero no las columnas con información salarial o personal.

Restringir información en lugar de proporcionar detalles. Por ejemplo, puede mostrar a suma de una columna o el valor máximo o mínimo de una columna

¿Cómo se crea una vista?

CREATE VIEW AS

SELECT

FROM

Ejemplo:

CREATE VIEW graduados AS

SELECT id_alumno, nombre_alumno

FROM alumnos_inscritos

El código anterior crea una tabla virtual llamada graduados que contiene los datos de identificación del alumno y su nombre. Los datos se obtienen de la tabla alumnos_inscritos.

Creación de una vista con condiciones

Para crear una vista, utilice el siguiente código:

CREATE VIEW AS

SELECT

FROM

WHERE condición

Por ejemplo: este código crea una tabla virtual que contiene sólo mujeres.

CREATE VIEW graduados AS

SELECT id_alumno, nombre_alumno

FROM alumnos_inscritos

WHERE Sexo = “F”

viernes, 27 de diciembre de 2013

UML

Introducción.-

UML (Unified Modeling Language) es un lenguaje que permite modelar, construir y documentar los elementos que forman un sistema software orientado a objetos. Se ha convertido en el estándar de facto de la industria, debido a que ha sido concebido por los autores de los tres métodos más usados de orientación a objetos: Grady Booch, Ivar Jacobson y Jim Rumbaugh.

Estos autores fueron contratados por la empresa Rational Software Co. para crear una notación unificada en la que basar la construcción de sus herramientas CASE. En el proceso de creación de UML han participado, no obstante, otras empresas de gran peso en la industria como Microsoft, Hewlett-Packard, Oracle o IBM, así como grupos de analistas y desarrolladores.

CLASIFICACIÓN DE LOS MODELOS UML

Modelo estático (estructural)

Diagrama de clases Diagrama de objetos Diagrama de componentes Diagrama de despliegue

Modelo dinámico (comportamiento)

Diagrama de actividades Diagrama de casos de uso Diagrama de estados Diagrama de secuencia Diagrama de colaboración

MODELO ESTÁTICO

DIAGRAMAS DE CLASES

un diagrama de clases es un tipo de diagrama estático que describe la estructura de un sistema mostrando sus clases, atributos y las relaciones entre ellos. Los diagramas de clases son utilizados durante el proceso de análisis y diseño de los sistemas informáticos.

Piense en las cosas que lo rodean, es probable que muchas de esas cosas tengan atributos(propiedades) y que realicen determinadas acciones. Podriamos imaginar cada una de esas acciones como conjunto de tareas.

Tambien se encontrara con que las cosas naturalmente se albergaran en categorias(automoviles, mobiliario, lavadoras). A tales categorias las llamaremos clases. Una clase es una categoria o grupo de cosas que tienen atributos y acciones similares, he aqui un ejemplo: cualquier cosa dentro de la clase lavadoras tiene atributos como son la marca, el modelo, el numero de serie y la capacidad. Entre las acciones de las cosas de esta clase se encuentran: agregar ropa, agregar detergente, activarse y sacar ropa.

DIAGRAMAS DE OBJETOS

Los diagramas de objetos utilizan un subconjunto de los elementos de un diagrama de clase. Los diagramas de objetos no muestran la multiplicidad ni los roles, aunque su notación es similar a los diagramas de clase. Una diferencia con los diagramas de clase es que el compartimiento de arriba va en la forma, Nombre de objeto: Nombre de clase. Por ejemplo, Miguel: Persona. Alfredo Arcos: Persona

un objeto es una instancia de una clase(una entidad que tiene valores especificos de los atributos y acciones. Su lavadora, por ejemplo podria tener la marca goma, el modelo gomilla el nuemero de serie GL25647 Y una capacidad de 7 kg

Un Diagrama es una representación gráfica de una colección de elementos de modelado, a menudo dibujada como un grafo conexo de arcos (relaciones) y vértices (otros elementos del modelo). Un diagrama no es un elemento semántico, un diagrama muestra representaciones de elementos semánticos del modelo, pero su significado no se ve afectado por la forma en que son representados. Un diagrama está contenido dentro de un paquete.

La mayoría de los diagramas de UML y algunos símbolos complejos son grafos que contienen formas conectadas por rutas. La infomación está sobre todo en la topología, no en el tamaño o la colocación de los símbolos (hay algunas excepciones como el diagrma de secuencia con un eje métrico de tiempo). Hay tres clases importantes de relaciones visuales: conexión (generalmente de líneas a formas de dos dimensiones), contención (de símbolos por formas cerradas de dos dimensiones), y adhesión visual (un símbolo que está "cerca" de otro en un diagrama). Estas relaciones geométricas se reasignan a conexiones entre nodos en un gráfico en la forma analizada de la notación.

La notación de UML está pensada para ser dibujada en superficies bidimensionales. Algunas formas bidimensionales son proyecciones de formas tridimensionales tales como cubos, pero todavía se representan como íconos en una superficie bidimensional.

Hay cuatro clases de construcciones gráficas que se usan en la notación de UML: íconos, símbolos bidimensionales, rutas y cadenas.

Un ícono es una figura gráfica con un tamaño y forma fijos. No se amplía para contener a su contenido. Los iconos pueden aparecer dentro de símbolos de área, como terminadores en las rutas o como símbolos independientes que puedan o no conectar con las rutas.

Los símbolos de dos dimensiones tienen altura y anchura variables, y pueden ampliarse para permitir otras cosas tales como listas de cadenas o de otros símbolos. Muchos de ellos están divididos en compartimientos similares o de tipos diferentes. Las rutas se conectan con los símbolos, el arrastrar o suprimir uno de ellos afecta a su contenido y las rutas conectadas.

DIAGRAMAS DE COMPONENTES

Los componentes pertenecen al mundo físico, es decir, representan un bloque de construcción al modelar aspectos físicos de un sistema.

Los diagramas de componentes describen los elementos físicos del sistema y sus relaciones. Muestran las opciones de realización incluyendo código fuente, binario y ejecutable. Los componentes representan todos los tipos de elementos software que entran en la fabricación de aplicaciones informáticas. Pueden ser simples archivos, paquetes de Ada, bibliotecas cargadas dinámicamente, etc. Las relaciones de dependencia se utilizan en los diagramas de componentes para indicar que un componente utiliza los servicios ofrecidos por otro componente.

Un diagrama de componentes representa las dependencias entre componentes software, incluyendo componentes de código fuente, componentes del código binario, y componentes ejecutables. Un módulo de software se puede representar como componente. Algunos componentes existen en tiempo de compilación, algunos en tiempo de enlace y algunos en tiempo de ejecución, otros en varias de éstas.

Un componente de sólo compilación es aquel que es significativo únicamente en tiempo de compilación. Un componente ejecutable es un programa ejecutable. Un diagrama de componentes tiene sólo una versión con descriptores, no tiene versión con instancias. Para mostrar las instancias de los componentes se debe usar un diagrama de despliegue.

Un diagrama de componentes muestra clasificadores de componentes, las clases definidas en ellos, y las relaciones entre ellas. Los clasificadores de componentes también se pueden anidar dentro de otros clasificadores de componentes para mostrar relaciones de definición.

Un diagrama que contiene clasificadores de componentes y de nodo se puede utilizar para mostrar las dependencias del compilador, que se representa como flechas con líneas discontinuas (dependencias) de un componente cliente a un componente proveedor del que depende. Los tipos de dependencias son específicos del lenguaje y se pueden representar como estereotipos de las dependencias.

El diagrama también puede usarse para mostrar interfaces y las dependencias de llamada entre componentes, usando flechas con líneas discontinuas desde los componentes a las interfaces de otros componentes.

El diagrama de componente hace parte de la vista física de un sistema, la cual modela la estructura de implementación de la aplicación por sí misma, su organización en componentes y su despliegue en nodos de ejecución. Esta vista proporciona la oportunidad de establecer correspondecias entre las clases y los componentes de implementación y nodos. La vista de implementación se representa con los diagramas de componentes.

DIAGRAMA DE DESPLIEGUE

Un diagrama de despliegue muestra las relaciones físicas entre los componentes hardware y software en el sistema final, es decir, la configuración de los elementos de procesamiento en tiempo de ejecución y los componentes software (procesos y objetos que se ejecutan en ellos).

Los Diagramas de Despliegue muestran la disposición física de los distintos nodos que componen un sistema y el reparto de los componentes sobre dichos nodos. La vista de despliegue representa la disposición de las instancias de componentes de ejecución en instacias de nodos conectados por enlaces de comunicación. Un nodo es un recurso de ejecución tal como un computador, un dispositivo o memoria. Los estereotipos permiten precisar la naturaleza del equipo:


• Dispositivos

• Procesadores

• Memoria

Los nodos se interconectan mediante soportes bidireccionales que pueden a su vez estereotiparse. Esta vista permite determinar las consecuencias de la distribución y la asignación de recursos. Las instancias de los nodos pueden contener instancias de ejecución, como instancias de componentes y objetos. El modelo puede mostrar dependencias entre las instancias y sus interfaces, y también modelar la migración de entidades entre nodos u otros contenedores.

Esta vista tiene una forma de descriptor y otra de instancia. La forma de instancia muestra la localización de las instancias de los componentes específicos en instancias específicas del nodo como parte de una configuración del sistema. La forma de descriptor muestra qué tipo de componentes pueden subsistir en qué tipos de nodos y qué tipo de nodos se pueden conectar, de forma similar a una diagrama de clases, esta forma es menos común que la primera.

MODELO DINÁMICO

DIAGRAMA DE CASO DE USO

Los diagramas de casos de uso organizan los comportamientos del sistema. Un diagrama de caso de uso representa un conjunto de casos de uso y actores (un tipo especial de clases) y sus relaciones.

Un caso de uso es la descripcion de las acciones de un sistema desde el punnto de vista del usuario. para los desarrolladores del sistema, esta es una herramienta valiosa, ya que es una tecnica de aciertos y errores para obtener los requerimientos del sistema desde el punto de vista del usuario. Esto es importante si la finalidad es crear un sistema que pueda ser utilizado por la gente en general (no solo por ezpertos en computacion)

Casos de Uso es una técnica para capturar información de cómo un sistema o negocio trabaja, o de cómo se desea que trabaje. No pertenece estrictamente al enfoque orientado a objeto, es una técnica para captura de requisitos.


•Los Casos de Uso (Ivar Jacobson) describen bajo la forma de acciones y reacciones el comportamiento de un sistema desde el p.d.v. del usuario.

• Permiten definir los límites del sistema y las relaciones entre el sistema y el entorno.

• Los Casos de Uso son descripciones de la funcionalidad del sistema independientes de la implementación.

• Comparación con respecto a los Diagramas de Flujo de Datos del Enfoque Estructurado.

• Los Casos de Uso cubren la carencia existente en métodos previos (OMT, Booch) en cuanto a la determinación de requisitos.

• Los Casos de Uso particionan el conjunto de necesidades atendiendo a la categoría de usuarios que participan en el mismo.

• Están basados en el lenguaje natural, es decir, es accesible por los usuarios.

Actores


• Principales: personas que usan el sistema.

• Secundarios: personas que mantienen o administran el sistema.

• Material externo: dispositivos materiales imprescindibles que forman parte del ámbito de la aplicación y deben ser utilizados.

• Otros sistemas: sistemas con los que el sistema interactúa.

La misma persona física puede interpretar varios papeles como actores distintos, el nombre del actor describe el papel desempeñado.

Los Casos de Uso se determinan observando y precisando, actor por actor, las secuencias de interacción, los escenarios, desde el punto de vista del usuario. Los casos de uso intervienen durante todo el ciclo de vida. El proceso de desarrollo estará dirigido por los casos de uso. Un escenario es una instancia de un caso de uso.

DIAGRAMAS DE ESTADOS

Un Diagrama de Estados muestra la secuencia de estados por los que pasa un caso de uso o un objeto a lo largo de su vida, indicando qué eventos hacen que se pase de un estado a otro y cuáles son las respuestas y acciones que genera.

en cualquier momento un objeto se encuentra en un estado en particular. Una persona puede ser nacida, infante, adolescente o adulto. Un elevador se movera hacia arriba, estara en estado de reposo o se movera hacia abajo. Una lavadora podra estar en la fase de remojo, lavado, enjuague, centrifugado o apagada

Un Diagrama es una representación gráfica de una colección de elementos de modelado, a menudo dibujada como un grafo conexo de arcos (relaciones) y vértices (otros elementos del modelo). Un diagrama no es un elemento semántico, un diagrama muestra representaciones de elementos semánticos del modelo, pero su significado no se ve afectado por la forma en que son representados. Un diagrama está contenido dentro de un paquete.

La mayoría de los diagramas de UML y algunos símbolos complejos son grafos que contienen formas conectadas por rutas. La infomación está sobre todo en la topología, no en el tamaño o la colocación de los símbolos (hay algunas excepciones como el diagrma de secuencia con un eje métrico de tiempo). Hay tres clases importantes de relaciones visuales: conexión (generalmente de líneas a formas de dos dimensiones), contención (de símbolos por formas cerradas de dos dimensiones), y adhesión visual (un símbolo que está "cerca" de otro en un diagrama). Estas relaciones geométricas se reasignan a conexiones entre nodos en un gráfico en la forma analizada de la notación.

La notación de UML está pensada para ser dibujada en superficies bidimensionales. Algunas formas bidimensionales son proyecciones de formas tridimensionales tales como cubos, pero todavía se representan como íconos en una superficie bidimensional.

Hay cuatro clases de construcciones gráficas que se usan en la notación de UML: íconos, símbolos bidimensionales, rutas y cadenas. Un ícono es una figura gráfica con un tamaño y forma fijos. No se amplía para contener a su contenido. Los iconos pueden aparecer dentro de símbolos de área, como terminadores en las rutas o como símbolos independientes que puedan o no conectar con las rutas.

Los símbolos de dos dimensiones tienen altura y anchura variables, y pueden ampliarse para permitir otras cosas tales como listas de cadenas o de otros símbolos. Muchos de ellos están divididos en compartimientos similares o de tipos diferentes. Las rutas se conectan con los símbolos, el arrastrar o suprimir uno de ellos afecta a su contenido y las rutas conectadas.

DIAGRAMAS DE ACTIVIDADES

Un diagrama de actividades representa los flujos de trabajo paso a paso de negocio y operacionales de los componentes en un sistema.

Las actividades que ocurren dentro de un caso de uso o dentro del comportamiento de un objeto se dan normalmente en secuencia

El Diagrama de Actividad es un diagrama de flujo del proceso multi-propósito que se usa para modelar el comportamiento del sistema. Los diagramas de actividad se pueden usar para modelar un Caso de Uso, o una clase, o un método complicado.

Un diagrama de actividad es parecido a un diagrama de flujo; la diferencia clave es que los diagramas de actividad pueden mostrar procesado paralelo (parallel processing). Esto es importante cuando se usan diagramas de actividad para modelar procesos 'bussiness' algunos de los cuales pueden actuar en paralelo, y para modelar varios hilos en los programas concurrentes.

DIAGRAMA DE SECUENCIA

El diagrama de secuencia es uno de los diagramas más efectivos para modelar interacción entre objetos en un sistema. Un diagrama de secuencia muestra la interacción de un conjunto de objetos en una aplicación a través del tiempo y se modela para cada método de la clase.

Los diagramas de clases y los de objeto representan informacion estatica. No obstante en un sistema funcional los objetos interactuan entre si, y tales interacciones suceden con el tiempo, el diagrama de secuencia muestra la mecanica de la interaccion con base en tiempos

Los 4 pasos a seguir:

A continuación se dará una muy breve descripción de los 4 pasos que se deben de seguir para dibujar correctamente diagramas de secuencia de ICONIX:

-Paso 1: Copia el texto de la especificación de tu caso de uso y pégalo en la parte superior de tu diagrama de secuencia. Con esto siempre se tendrá en cuenta que es lo que debe de hacer el diagrama de secuencia.

-Paso 2: Cada uno de los objetos entidad de tu diagrama de robustez es una instancia de la clase que debe de ser agregada a tu diagrama de secuencias ya que representa tu modelo estático. Hay que ser muy meticuloso con este paso, ya que representa el ultimo de tu modelo estático antes de codificar.

-Paso 3: Agrega las interfaces del diagrama de robustez. Con esto ya tenemos el diagrama de secuencias construido. Ahora, el cuarto paso es para decidir cuales métodos irían en cuales clases, lo cual es la esencia del modelo de iteraciones.

-Paso 4: Pon los métodos en las clases, lo cual significa convertir los controles uno por uno de tu diagrama de robustez en métodos y mensajes. Verifica que para cada control dibujado le pertenecen los mensajes correctos dentro del diagrama de secuencias.

DIAGRAMA DE COLABORACIÓN

Los diagramas de colaboración muestran explícitamente las relaciones de los roles. Por otra parte, un diagrama de colaboración no muestra el tiempo como una dimensión aparte, por lo que resulta necesario etiquetar con números de secuencia tanto la secuencia de mensajes como los hilos concurrentes.

Los elementos de un sistema trabajan en conjunto para cumplir los objetivos del sistema, y un lenguaje de modelado debera contar con una forma de representar esto, el diagrama de colaboracion esta diseñado con en este fin

Es una descripción de una colección de objetos que interactúan para implementar un cierto comportamiento dentro de un contexto. Describe una sociedad de objetos cooperantes unidos para realizar un cierto propósito. Una colaboración contiene ranuras que son rellenadas por los objetos y enlaces en tiempo de ejecución. Una ranura de colaboración se llama Rol porque describe el propósito de un objeto o un enlace dentro de la colaboración.

Un rol clasificador representa una descripción de los objetos que pueden participar en una ejecución de la colaboración, un rol de asociación representa una descripción de los enlaces que pueden participar en una ejecución de colaboración. Un rol de clasificador es una asociación que está limitada por tomar parte en la colaboración. Las relaciones entre roles de clasificador y asociación dentro de una colaboración sólo tienen sentido en ese contexto. En general fuera de ese contexto no se aplican las mismas relaciones.

Una Colaboración tiene un aspecto estructural y un aspecto de comportamiento. El aspecto estrucutral es similar a una vista estática: contiene un conjunto de roles y relaciones que definen el contexto para su comprtamiento. El comportamiento es el conjunto de mensajes intercambiados por los objetos ligados a los roles. Tal conjunto de mensajes en una colaboración se llama Interacción. Una colaboración puede incluir una o más interacciones.

Disciplinas del PUD

Estas son las disciplinas principales:

Modelado de negocio: Cuando se requiere comprender el negocio a gran escala o reingeniería de procesos del negocio, esto incluye el modelado dinámico con Diag. De actividades, reglas de negocio, usuarios, etc.

Captura de Requisitos: Listado de requisitos para una aplicación, como escritura de casos de uso en alto nivel e identificación de requisitos no funcionales.

Análisis: Especificación expandida de casos de usos en formato esencial. Modelo de dominio. Diagrama de secuencias y colaboración. Diag. de estados.

Diseño: Todos los aspectos de diseño, incluyendo la arquitectura global, objetos, base de datos, red, interfaz de usuarios, etc.

Implementación: Significa programar y construir el sistema utilizando una herramienta de desarrollo. Implementar la base de datos en un SGBD.

Prueba: Realizar planes de pruebas y documentar los casos de pruebas aplicando técnicas como de caja blanca, caja negra, u otras.

Fase de Inicio

El objetivo de la fase de inicio es desarrollar el análisis de negocio hasta el punto necesario para justificar la puesta en marcha del proyecto.

Lo que se intenta es hacer una idea de la arquitectura para asegurarse de que existe una arquitectura que puede soportar el ámbito del sistema.

Productos de la Fase de Inicio

Una lista de características

Una primera versión del modelo de negocio (o del dominio) que describe el contexto del sistema

Un esbozo de los modelos que representan una primera versión del modelo de casos de uso, el modelo de análisis y el modelo de diseño.

Un primer esquema de la descripción de una arquitectura candidata, que perfila las vistas de los modelos de casos de uso, análisis, diseño e implementación.

Posiblemente, un prototipo exploratorio que muestra el uso del nuevo sistema

Una lista inicial de riesgos y una clasificación de casos de uso

Un plan tentativo para el proyecto en su totalidad, incluyendo el plan general de las fases

Un primer borrador del análisis de negocio, que incluye:

Contexto del negocio y Criterios de éxito.

Fase de Elaboración

Al comienzo de la fase de elaboración, se recibe de la fase de inicio un plan para la fase de elaboración, un modelo de casos de uso parcialmente completo y una descripción de la arquitectura candidata.

También se dispone de un prototipo que muestre el funcionamiento del sistema.

Sin embargo, no se puede pretender construir sobre ese prototipo

Ejecución de los flujos de trabajo fundamentales:

Recopilación de requisitos: En este punto encontraremos, estableceremos la prioridad y estructuraremos los casos de uso.

Análisis:

Durante la fase de inicio, comenzamos a hacer un borrador del modelo de análisis. Ahora, construiremos sobre este borrador, pero podemos descubrir que es necesario desechar partes sustanciales de él.

Diseño:

El arquitecto es responsable del diseño de los aspectos arquitectónicamente significativos del sistema, tal como están descritos en la vista de la arquitectura del modelo de diseño.

La vista de la arquitectura del modelo de diseño incluye subsistemas, clases, interfaces y realizaciones de casos de uso arquitectónicamente significativos, incluidos éstos en la vista del modelo de casos de uso

Implementación:

Se implementa y prueba los componentes arquitectónicamente significativos a partir de los elementos de diseño arquitectónicamente significativos.

El resultado es la línea base de la arquitectura, implementada normalmente a partir de menos del 10 por ciento de los casos de uso.

Prueba:

Aquí el objetivo es asegurarse de que los subsistemas de todos los niveles y de todas las capas funcionen.

Sólo podemos probar los componentes ejecutables.

Preferiblemente un modelo completo de negocio que describe el contexto del sistema

Una nueva versión de todos los modelos: casos de uso, análisis, diseño, despliegue e implementación.

Una línea base de la arquitectura

Una descripción de la arquitectura, incluyendo vistas de los modelos de casos de uso, análisis, diseño, despliegue e implementación Una lista de riesgos actualizada

El plan del proyecto para las fases de construcción y transición

Un manual de usuario preliminar

El análisis de negocio completo, incluida la apuesta económica

Fase de Construcción

El propósito primordial de esta fase es dejar listo un producto software en su versión operativa inicial, a veces llamada “versión beta”.

El producto debería tener la calidad adecuada para su aplicación y asegurarse de cumplir los requisitos.

La construcción debería tener lugar dentro de los límites del plan de negocio.

Recordemos que para cumplir los objetivos de la fase de elaboración, se han recopilado casi todos los requisitos, pero aún no han sido detallados completamente.

Ejecución de los flujos de trabajo fundamentales:

Captura de requisitos:

en la fase de construcción se recorrerá todo el camino hasta lograr el sistema inicial con capacidad operativa, así que hay que realizar la recopilación completa de requisitos

Análisis:

Aquí consideraremos de nuevo las actividades de análisis de la arquitectura, analizar un caso de uso, analizar una clase y analizar un paquete, iniciadas en la fase de elaboración.

Diseño:

Normalmente, en esta fase se diseña e implementa el 90 por ciento restante de los casos de uso (aquellos que no fueron utilizados para desarrollar la línea base de la arquitectura).

Implementación:

Implementa y lleva a cabo las pruebas de unidad de todos los componentes, trabajando principalmente a partir del modelo de diseño. El resultado es la versión operativa inicial, que representa el 100 por 100 de los casos de uso.

El proyecto lleva a cabo la mayor parte del trabajo de la fase de construcción, construyendo los componentes

Prueba:

Los esfuerzos de los ingenieros de pruebas para descubrir lo que puede ser comprobado de forma efectiva y para desarrollar casos de prueba y procedimientos de prueba para hacerlo, tendrán su fruto en la fase de construcción.

Productos de la Fase de Construcción

El plan de proyecto para la fase de transición

El sistema software ejecutable. Ésta es la construcción final de la fase

Todos los artefactos, incluyendo los modelos del sistema

La descripción de la arquitectura, mínimamente modificada y actualizada

Una versión preliminar del manual de usuario, lo suficientemente detallado como para guiar a los usuarios de la beta

Fase de Transición

Una vez que el proyecto entra en la fase de transición, el sistema ha alcanzado la capacidad operativa inicial.

El jefe de proyecto ha considerado que el sistema ofrece la confianza suficiente como para operar en el entorno del usuario, aunque no sea necesariamente perfecto

El usuario puede descubrir con retraso la necesidad de determinadas características.

Si son muy importantes y casan bien con el producto existente, el jefe de proyecto puede aceptar añadirlas.

Sin embargo, los cambios deben ser lo suficientemente pequeños como para que puedan ser introducidos sin afectar seriamente el plan del proyecto.

Ejecución de los flujos de trabajo fundamentales:

En esta fase, la actividad es baja en los cinco flujos de trabajo.

Como casi todo el trabajo se realizó en la fase de construcción, el nivel de actividad en esta fase es bajo, justo lo necesario para corregir los problemas encontrados durante las pruebas en el entorno del usuario.

Normalmente, las actividades de diseño disminuyen durante la fase de transición.

La atención se desplaza a la corrección de defectos para :

eliminar los fallos que ocurran durante el uso inicial, a asegurarse de que las correcciones en sí están bien, y a hacer pruebas de regresión para asegurar que estas modificaciones no introduzcan nuevos defectos

Productos de la Fase de Transición

El propio software ejecutable, incluyendo el software de instalación Documentos legales como contratos, licencias, renuncias de derechos y garantías

La versión completa y corregida de línea base de la versión del producto, incluyendo todos los modelos del sistema La descripción completa y actualizada de la arquitectura

Manuales y material de formación del usuario final, del operador y del administrador del sistema

Referencias para la ayuda del cliente, acerca de dónde encontrar más información, cómo informar de defectos o dónde encontrar información sobre defectos y actualizaciones.

EL PROCESO UNIFICADO DE DESARROLLO (PUD)

Porque tener una Metodología o Proceso de Desarrollo de SW?

Es la forma más económica de empezar a introducir buenas practicas para el desarrollo.

Permite que las personas puedan trabajar en forma ordenada.

Puedan detectar sus fallas y adquirir mejoras prácticas.

¿Que características debe tener una Metodología?

Debe abarcar todo el proceso de creación del SW

Debe ser fácil de aplicar

Debe Brindar medidas objetivas para medir los errores y facilitar la estimación

Permitir identificar puntos débiles de las personas

Debe minimizar la introducción de errores

Aplicable a las herramientas de desarrollo utilizadas

El proceso de Construcción del Software

Es un proceso de resolución de problemas: Transformación de una necesidad en una solución automatizada que satisface la necesidad:

Qué: Obtención de los requisitos y Analizarlos

Cómo: Diseñar el sistema

Diseño de Alto Nivel o Preliminar:

Descomposición del Sistema en componentes y sus Relaciones

Diseño de Bajo Nivel o Detallado:

Especificación de la función de cada componente

Hacerlo:

Implementar

Probar:

Pruebas

Usar: Implantación y Uso Mantenimiento

El Proceso Unificado es un proceso de desarrollo de software, de modo que es :

Un conjunto de actividades necesarias para transformar requisitos de los usuarios en un sistema software.

Un marco de trabajo genérico, que puede especializarse para una gran variedad de sistemas de software, para diferentes áreas de aplicación, diferentes tipos de organizaciones, diferentes niveles de aptitud y diferentes tamaños de proyectos.

El PUD y UML

El Proceso Unificado está basado en componentes software interconectados a través de interfaces. Utiliza el Lenguaje Unificado de Modelado (UML) para preparar los esquemas de un sistema de software.

CARACTERÍSTICAS DEL PUD

Dirigido por Casos de Uso

Podríamos decir que un Caso de Uso es un fragmento de funcionalidad del sistema que proporciona al usuario un resultado importante Se utilizan para representar los requisitos funcionales.

No sólo inician el proceso de desarrollo, sino que le proporcionan un hilo conductor.

El proceso avanza a través de una serie de flujos de trabajo que parten de los casos de uso.

Los casos de uso se especifican, se diseñan, y los casos de uso finales son la fuente a partir de la cual se constituyen los casos de prueba.

Está centrado en la arquitectura

La arquitectura es una vista del diseño completo con las características más importantes resaltadas, dejando los detalles de lado.

El valor de la arquitectura depende de las personas que se hayan responsabilizado de su creación

Cada producto tiene tanto una función como una forma

Ambas fuerzas deben equilibrarse para lograr un producto de éxito

La función corresponde a los casos de uso y la forma a la arquitectura

Los casos de uso y la arquitectura deben evolucionar en paralelo.

EL PUD es iterativo e incremental

Un producto software puede conllevar mucho tiempo

Resulta más práctico dividirlo en pequeñas partes o miniproyectos Cada miniproyecto es una iteración que acaba en un incremento

Las iteraciones hacen referencia a pasos en el flujo de trabajo y los incrementos al crecimiento del producto

La iteración trata un grupo de casos de uso que amplía la utilidad del producto desarrollado e identifica los riesgos más importantes En cada iteración:

Se identifican y especifican los casos de uso más relevantes

Se crea un diseño utilizando la arquitectura como guía

Se implementa el diseño como componentes y Se verifica que dichos componentes satisfacen los casos de uso

La vida del Proceso Unificado

Se repite a lo largo de una serie de ciclos que constituyen la vida de un sistema.

Cada ciclo concluye con una versión del producto para los clientes.

Como vimos anteriormente, cada fase se subdivide en iteraciones.

Clasificación de los casos de uso

Los casos de uso deben ser clasificados y los que ocupen niveles más altos habrían de abordarse en los ciclos iniciales de desarrollo

Seleccionar aquellos que influyen profundamente en la arquitectura básica, dando soporte al dominio y a las capas de servicios de alto nivel o a los que presentan el máximo riesgo

Cuando Crear Artefactos

En la fase de elaboración pueden crearse ciertos artefactos, entre ellos:

El modelo Conceptual

Casos de uso de alto nivel

Conceptos Importantes

Artefacto:

Pieza de información tangible que:

Es creada, modificada y usada por los trabajadores al realizar las actividades

Representa un área de responsabilidad

Es candidata a ser tenida en cuenta para el control de la configuración.

Un artefacto puede ser:

un modelo

un elemento de un modelo

un documento

el código o alguna parte del mismo

Actividad:

Unidad tangible de trabajo realizada por un trabajador en un flujo de trabajo de forma que:

Implica una responsabilidad bien definida para el trabajador

Produce un resultado bien definido basado en una entrada bien definida

Representa una unidad de trabajo con límites bien definidos

Modelo:

Es una abstracción del sistema, especificando el sistema modelado desde un cierto punto de vista y en un determinado nivel de abstracción

Son abstracciones del sistema que construyen los arquitectos y desarrolladores

Un modelo siempre identifica el sistema que está modelando

Arquitectura de un SGBD Cliente Servidor

Características

Los clientes realizan generalmente funciones como

Manejo de la interfaz de usuario.

Captura y validación de los datos de entrada.

Generación de consultas e informes sobre las bases de datos.

Funciones de los servidores :

Gestión de periféricos compartidos (ejem. impresora, scanner, etc.).

Control de accesos concurrentes a bases de datos compartidas.

Enlaces de comunicaciones con otras redes de área local o extensa.

Principales características de la arquitectura cliente/servidor:

El servidor presenta a todos sus clientes una interfaz única y bien definida.

– El cliente no necesita conocer la lógica del servidor, sólo su interfaz externa.

– El cliente no depende de la ubicación física del servidor, ni del tipo de equipo físico en el que se encuentra, ni de su sistema operativo.

– Los cambios en el servidor implican pocos o ningún cambio en el cliente.

SQL (Lenguaje Estructura de Consulta)

SQL está dividido en tres sub lenguajes:

DDL (Data Definition Language)

Lenguaje de definición de datos. Definen la estructura de los datos

DML (Data Manipulation Language)

Lenguaje de manipulación de datos. Instrucciones que trabajan sobre los datos

DCL (Data Control Language)

Lenguaje de control de datos. Permite administrar la seguridad de datos y el control de consistencia.

Lenguaje de definición de datos DDL

Permite:

– Crear una base de datos.

– Crear, suprimir, modificar una tabla.

– Definir una tabla virtual (o vista) de datos.

– Construir un índice para hacer más rápido el acceso a una tabla.

– Controlar el almacenamiento físico de los datos por parte del SGBD.

Comprende instrucciones como: • CREATE, ALTER, DROP, etc.

Lenguaje de Manipulación de datos DML

Permite:

• Insertar, modificar o eliminar registros de una tabla.

• Realizar consultas a una o varias tablas.

• Implementar procedimientos y funciones almacenadas.

• Abarca instrucciones como:

– INSERT – UPDATE – DELETE – SELECT

Lenguaje de Control de datos DCL

Permite:

• Crear usuarios.

• Otorgar y/o revocar permisos a usuarios.

• Abarca instrucciones como:

– GRANT – REVOKE – DENY – etc.

Scripts

Los scripts son un conjunto de instrucciones generalmente almacenadas en un archivo de texto que deben ser interpretados línea a línea en tiempo real para su ejecución.

Se distinguen de los programas, en que estos ultimos deben ser convertidos a un archivo binario ejecutable para correrlos.

Lenguaje de definición de datos

DDL

Crear, modificar, eliminar una Base de Datos

Crear una BD: CREATE DATABASE

Modificar una BD: ALTER DATABASE < nombre base de datos>

Eliminar una BD: DROP DATABASE < nombre base de datos>

Ejemplos:

CREATE DATABASE BDPrueba; use master;

DROP DATABASE BDPrueba;

ALTER DATABASE BDPrueba SET READ_ONLY; --establece de solo lectura GO

Crear, modificar y eliminar Tablas

CREATE TABLE (nombre_columna1 tipo [restricción de columna], ........

nombre_columnaN tipo [restricción de columna], [restricción_de_tabla]);

drop table

alter table

[ALTER COLUMN | ADD ] [ NULL | NOT NULL ]

| DROP COLUMN ]

Crear, modificar y eliminar Registros

CREATE TABLE

(nombre_columna1 tipo [restricción de columna],

........

nombre_columnaN tipo [restricción de columna], [restricción_de_tabla]);

Eliminar

drop table

Borrar una tabla: drop table departamento;

Insertando registos:

1. Cuando se va ha introducir todos los datos en el mismo orden que fué definido: insert into pais values (2,'Peru',100)

2. Cuando se va ha asignar datos a ciertas columnas:

insert into continente(ContNombre) values ('America');

insert into pais(paisId, paisNombre, continenteId) values (1,'Bolivia',100)

insert into (Colum1,Colum2, ...) values (Valor1, Valor2, ...)

CREATE TABLE: Restricciones

La sentencia CREATE TABLE se utiliza para crear una tabla dentro de la cual habrá columnas que contienen datos y restricciones.

Sintaxis General de la sentencia CREATE TABLE:

CREATE TABLE

(nombre_columna1 tipo [restricción de columna],

........

nombre_columnaN tipo [restricción de columna],

[restricción_de_tabla]);

CREATE TABLE: Restricciones de columnas

• NOT NULL. La columna no permitirá valores nulos.

• CONSTRAINT. Permite asociar un nombre a una restricción.

• DEFAULT valor. La columna tendrá un valor por defecto. El SBGD utiliza este valor cuando no se especifica un valor para dicha columna.

• PRIMARY KEY. Permite indicar que esta columna es la clave primaria.

• REFERENCES. Es la manera de indicar que este campo, es clave ajena y hace referencia a un campo llave de otra tabla. Esta foreign key es sólo de una columna.

• UNIQUE. Obliga a que los valores de una columna tomen valores únicos (no puede haber dos filas con igual valor). Se implementa creando un índice para dicha(s) columna(s).

• CHECK (condición). Permite indicar una condición que debe de cumplir esa columna.

CREATE TABLE: Restricciones de tablas

PRIMARY KEY (columna1, columna2...).

Permite indicar las columnas que forman la clave primaria.

FOREIGN KEY (columna1, columna2....) REFERENCES NombreTabla

Indica las. columnas que son clave ajena referenciando a una clave candidata de otra tabla.

UNIQUE (columna1, columna2...)

El valor combinado de una o varias columnas es único.

CHECK (condición)

Permite indicar una condición que deben cumplir las filas de la tabla. Puede afectar a varias columnas.

CREATE TABLE: Restricciones sobre llaves foráneass

CREATE TABLE

( nombre_colum1 tipo [restricción de columna], :

nombre_columN tipo references TablaPrimaria(campo)

[ ON DELETE { NO ACTION | CASCADE | SET NULL | SET DEFAULT } ]

[ ON UPDATE { NO ACTION | CASCADE | SET NULL | SET DEFAULT } ]

[restricción_de_tabla] );

Ejemplo: ON DELETE { NO ACTION | CASCADE | SET NULL | SET DEFAULT }

• Especifica la acción que tiene lugar en las filas de una tabla B cuyas filas tienen una relación referencial con una fila de la tabla A que se acaba de eliminar. El valor predeterminado es NO ACTION. NO ACTION Genera un error y se revierte la acción de eliminación de la fila de la tabla primaria. CASCADE Se eliminan las filas correspondientes de la tabla B que hacen referencia a la fila eliminada en la tabla A.

SET NULL Todos los valores que forman la clave foránea se establecen en NULL si se elimina la fila correspondiente de la tabla primaria.

Restricción: Las columnas de clave externa deben admitir valores NULL.

SET DEFAULT Todos los valores que forman la clave foranea se establecen en los valores predeterminados si se elimina la fila correspondiente de la tabla primaria.

Restricción: Las columnas de clave externa deben tener valores predeterminados. Si la columna admite valores NULL y no hay ningún valor predeterminado establecido de forma explícita, NULL se convierte en el valor predeterminado implícito de la columna.

Procedimiento Almacenado

Sub programa el cual es almacenado físicamente en una base de datos.

Uso: Encapsular un proceso grande y complejo.

Ventaja:

Al ser ejecutado, en respuesta a una petición de usuario, es ejecutado directamente en el motor de bases de datos, el cual usualmente corre en un servidor separado.

Posee acceso directo a los datos que necesita manipular y sólo necesita enviar sus resultados de regreso al usuario, deshaciéndose de la sobrecarga resultante de comunicar grandes cantidades de datos salientes y entrantes.

Cuando una base de datos es manipulada desde muchos programas externos. Al incluir la lógica de la aplicación en la base de datos, se evita embeber la misma lógica en todos los programas que acceden a los datos es reducida.

Tipos de procedimientos almacenados

Procedimientos almacenados definidos por el usuario

Diseñados por el programador.

Procedimientos almacenados extendidos

Le permiten crear sus propias rutinas externas en un lenguaje de programación como pueda ser C.

Son DLL que una instancia de MicrosoftSQL Server puede cargar y ejecutar dinámicamente.

Esta característica se quitará en una versión futura de Microsoft SQL Server.

Un procedimiento es un programa dentro de la base de datos que ejecuta una acción o conjunto de acciones especificas.

Un procedimiento tiene un nombre, un conjunto de parámetros (opcional) y un bloque de código.

Pueden devolver valores (numerico entero) o conjuntos de resultados.

Para crear un procedimiento almacenado debemos emplear la sentencia CREATE PROCEDURE.

CREATE PROCEDURE [@param1 , ...] AS

--

Sentencias del procedure

Si queremos que los parámetros de un procedimiento almacenado sean de entrada-salida debemos especificarlo a través de la palabra clave OUTPUT , tanto en la definición del procedure como en la ejecución.

Procedimientos almacenados del sistema

• Se almacenan físicamente en la base de datos Resource e incluyen el prefijo sp_. Los procedimientos almacenados del sistema aparecen de forma lógica en el esquema sys de cada base de datos definida por el usuario y el sistema.

En SQL Server 2008, los permisos GRANT, DENY y REVOKE se pueden aplicar a los procedimientos almacenados del sistema.

SQL Server admite los procedimientos almacenados del sistema que proporcionan una interfaz desde SQL Server a los programas externos para varias actividades de mantenimiento. Estos procedimientos almacenados extendidos utilizan el prefijo xp_.

Ejemplos:

sp_helpdb Presenta información acerca de una base de datos especificada o de todas las bases de datos.

sp_spaceused Muestra el número de filas, el espacio de disco reservado y el espacio de disco utilizado por una tabla, vista o la base de datos completa. Etc.

Triggers (desencadenadores)

Es una clase especial de procedimiento almacenado que se ejecuta automáticamente cuando se produce un evento en el servidor de bases de datos.

Tipos de triggers en Sql Server:

1) Trigger DML

Se ejecutan cuando un usuario intenta modificar datos mediante un evento de lenguaje de manipulación de datos.

Los eventos DML son instrucciones INSERT, UPDATE o DELETE de una tabla o vista.

2) Trigger DDL

Se ejecutan en respuesta a una variedad de eventos de lenguaje de definición de datos (DDL).

Estos eventos corresponden principalmente a instrucciones CREATE, ALTER y DROP.

Fundamentos de Base Datos

Objetivos

Usar en forma detallada las técnicas para diseño e implantación de bases de datos relacionales, para que sirvan de cimiento para el desarrollo de sistemas de información.

Desarrollar un proyecto de ingeniería referente a un sistema de información

INTRODUCCIÓN

Un sistema de manejo de Bases de Datos DBMS, es un conjunto de datos relacionados entre sí y un grupo de programas para tener acceso a esos datos.

El objetivo del DBMS es crear un ambiente en el que sea posible guardar y recuperar información de la base de datos, de forma eficiente.

Incluye: -

Definición de estructuras de almacenamiento de datos -

Mecanismos para manejo de datos -

Seguridad de la información -

Uso concurrente de la base de datos

Propósito de los sistemas de bases de datos

Los DBMS minimizan los problemas de los sistemas de procesamiento de archivos: -

Redundancia e inconsistencia de datos

Dificultad en el acceso a los datos -

Aislamiento de datos -

Problemas de integridad -

Problemas de atomicidad -

Anomalías en el acceso concurrente -

Problemas de seguridad

Visión de los datos

Los DBMS proporcionan a los usuarios una visión abstracta de los datos.

El sistema esconde ciertos detalles de cómo se almacenan y mantienen los datos.

Las bases de datos revolucionaron el mundo de las computadoras, con este nuevo concepto “abstracción de los datos”, a diferencia de lo que era tradicional “abstracción de lenguajes de programación”.

Abstracción de los datos

Para ocultar esta complejidad del almacenamiento se definen 3 niveles:

Nivel físico.- Describe como se almacenan realmente los datos en forma de palabras y bytes.

Nivel conceptual.- Describe qué datos se almacenan y qué relaciones hay entre ellos, en forma de estructuras.

Nivel de visión.- Muchos usuarios necesitan acceder a una parte de la base de datos. El sistema proporciona vistas.

Ejemplares y esquemas

La colección de la información almacenada en la base de datos en un momento particular se llama un ejemplar de la base de datos.

El esquema de la base de datos es una descripción de la misma en forma de estructuras de datos. Existen tres tipos de esquema: físico, lógico y subesquemas.

Independencia de datos

Es la capacidad de modificar una definición de esquema en un nivel sin que afecte al nivel superior.

Independencia física de datos.- Es la capacidad de modificar el esquema físico sin tener que modificar los programas.

Independencia lógica de datos.- Es la capacidad de modificar el esquema lógico sin tener que modificar los programas.

La independencia lógica es más difícil de lograr que la independencia física.

Modelos de datos

Para describir el esquema de una base de datos en cualquiera de los 3 niveles, es necesario definir los modelos de datos.

Un modelo de datos es un grupo de herramientas para describir los datos, sus relaciones, su semántica y sus ligaduras de consistencia.

Se pueden agrupar en 3 tipos de modelos: - Modelos lógicos basados en objetos - Modelos lógicos basados en registros - Modelos físicos de datos

Modelos lógicos basados en objetos

Parten de mundo real delimitando el entorno del sistema y dentro de este entorno identifican los objetos de interés.

Se utilizan para describir los datos en los niveles lógico y de visión, y especifican claramente las ligaduras de consistencia de los datos.

Como ejemplos de este grupo están el modelo entidad-relación y el modelo orientado a objetos.

Modelo entidad-relación

Se basa en la percepción de un mundo real que consiste en un conjunto de objetos básicos llamados entidades, y de las relaciones entre estos objetos.

Modelo orientado a objetos

Está basado en una colección de objetos agrupados en clases.

Una clase describe un conjunto de objetos que comparten los mismos atributos, operaciones, relaciones y semántica.

Modelos lógicos basados en registros

Se usan para describir los datos en los niveles lógico y de visión.

Se usan tanto para especificar la estructura lógica completa de la base de datos como para una descripción de alto nivel.

A diferencia de los modelos basados en registros, no describen muy bien las ligaduras de consistencia de la base de datos.

Administración de Base de Datos


Objetivos



Instalar y configurar el SQL Server

Configuración de SQL Server

Conocer la arquitectura de un SGBD
Abarca diversas tareas como ser:

Definir y controlar las bases de datos corporativas.

Proporcionar asesoría a los desarrolladores, usuarios y ejecutivos que la requieran.

Responsabilidad sobre el control y manejo del sistema de base de datos.

Utilizar conocimientos y experiencia en DBMS, diseño de bases de datos, Sistemas operativos, comunicación de datos, hardware y programación
Recuperabilidad: Crear y probar Respaldos.

Integridad: Verificar o ayudar a la verificación en la integridad de datos.

Seguridad: Definir y/o implementar controles de acceso a los datos

Disponibilidad : Asegurarse del mayor tiempo de encendido

Desempeño: Asegurarse del máximo desempeño incluso con las limitaciones

Desarrollo y soporte a pruebas: Ayudar a los programadores e ingenieros a utilizar eficientemente la base de datos.
p>

Sistema de Administración de Base de Datos (DBMS).

En inglés: DataBase Management System.

Tipo de software muy específico, dedicado a servir de interfaz entre la base de datos, el usuario y las aplicaciones que la utilizan.

El sistema de gestión de la base de datos (SGBD) es una aplicación que permite a los usuarios definir, crear y mantener la base de datos, y proporciona acceso controlado a la misma”.

Distintos objetivos que deben cumplir los SGBD:



Abstracción de la información

La independencia de los datos

Consistencia
Seguridad

Integridad

Respaldo

Control de la concurrencia

Manejo de Transacciones


TRANSACT - SQL

ES LA FORMA DE PODER PROGRAMAR EN SQL SERVER.

CONJUNTO DE CODIGO PARA SOLUCIONAR PROBLEMAS. PROPIO DE SQL SERVER

Transact-SQL (T-SQL) es el lenguage de programación del SQL Sever, a través de el podemos realizar muchas operaciones relacionadas con el SQL sin tener que volver a pasar por código ASP o VB, esto simplificará vuestro código y ganará en rapidez dado que el T-SQL se ejecuta dentro del SQL Sever y es código compilado, se compila la primera vez que se ejecuta.

TABLA DE CLASIFICACION

PROCEDIMIENTOS ALMACENADOS

FUNCIONES

DISPARADORES

CURSORES

TRANSACCIONES

SEGURIDAD

CARACTERISTICAS

INSTRUCCIÓNES PARA EL CONTROL DE FLUJO, - VARIABLES, - TIPOS DE DATOS - FUNCIONES MATEMÁTICA, DE TRATAMIENTO DE CADENAS, DE FECHA Y HORA PERO ADEMÁS INCLUYE FUNCIONES PROPIAS DEL SQL SEVER PARA TRABAJAR CON LAS BASES DE DATOS.

TIPO DE DATOS

int Datos enteros (números enteros) comprendidos entre -2^31 (-2.147.483.648) y 2^31 - 1 (2.147.483.647).

decimal Datos de precisión y escala numérica fijas comprendidos entre -1038 +1 y 1038 – 1.

numeric Funcionalmente equivalente a decimal.

char Datos de caracteres no Unicode de longitud fija con una longitud máxima de 8.000 caracteres.

varchar Datos no Unicode de longitud variable con un máximo de 8.000 caracteres.

datetime Datos de fecha y hora comprendidos entre el 1 de enero de 1753 y el 31 de diciembre de 9999, con una precisión de 3,33 milisegundos. Otros más.

COMENTARIOS

Como todo lenguaje de programación en T-SQL también podemos comentar nuestro código para que éste pueda ser mas amigable y leerse con más comodidad. Los comentarios se identifican de la siguiente forma

: -- Comentario de una linea /* comentario de varias lineas */

VARIABLES

Para declarar variables dentro del SP utilizaremos la palabra reservada Declare seguida de @ nombre de variable y tipo de datos, de la siguiente forma: Declare @NombreVariable Varchar(40) Para inicializarla utilizaremos la palabra reservada Set o Select : Set @NombreVariable = 'PRUEBAS' Select @NombreVariable = 'PRUEBAS'

CONTROL DE FLUJO DE PROGRAMA

Para controlar el flujo del programa disponemos de una serie de instrucciones: Palabra clave definición BEGIN...END Define un conjunto de instrucciones. BREAK Sale de un bucle while. CONTINUE Continua un bucle while. IF...ELSE Define una ejecución condicional y, opcionalmente, una ejecución alternativa si la condición es FALSE.

RETURN Sale del Stored Procedure si ejecutar nada más. WAITFOR Espera cierto tiempo a seguir con la ejecución de SP. WHILE Repite instrucciones mientras una condición específica sea TRUE.

FUNCIONES

Bajo estas líneas se pone un ejemplo de diferentes funciones en T-SQL (no estan todas las funciones), se puede encontrar más información y el listado de todas las funciones en los Books OnLine que vienen con el SQL Server.

FUNCIONES DE CADENA

ASCII Devuelve el código ASCII del carácter más a la izquierda de una expresión de caracteres

CHAR Una función de cadena que convierte un código ASCII int en un carácter

LEN Devuelve el número de caracteres. - LTRIM Devuelve una expresión de caracteres después de quitar los espacios en blanco a la izquierda

REPLACE Reemplaza por una tercera expresión todas las apariciones de la segunda expresión de cadena proporcionada en la primera expresión de cadena

SUBSTRING Devuelve parte de una expresión de caracteres

UPPER Devuelve una expresión de tipo carácter con datos de carácter en minúscula convertidos a mayúscula.

FUNCIONES DE FECHA Y HORA

DATEADD Devuelve un valor datetime nuevo que se basa en la suma de un intervalo a la fecha especificada.

DATEDIFF Devuelve el número de límites de fecha y hora que hay entre dos fechas especificadas

DATEPART Devuelve un entero que representa la parte de la fecha especificada de la fecha indicada

GETDATE Devuelve la fecha y hora actuales del sistema.

Teoria General de Sistemas

Qué se entiende por “Teoría General de Sistemas

Teoría:

conjunto de leyes que explican el comportamiento de un fenómeno que es comprobable y demostrable.

General:

se refiere a algo que es aceptado de manera universal.

Sistemas:

conjunto de elementos q ue interactúan entre sí para lograr un objetivo común.

Qué es un Sistema

Base de Datos

DEFINICIÓN DE BASE DE DATOS

Cualquier conjunto de datos organizados para su almacenamiento en la memoria de un ordenador o computadora, diseñado para facilitar su mantenimiento y acceso de una forma estándar. Los datos suelen aparecer en forma de texto, números o gráficos

BASE DE DATOS RELACIONALS

Tipo de base de datos o sistema de administración de bases de datos, que almacena información en tablas (filas y columnas de datos) y realiza búsquedas utilizando los datos de columnas especificadas de una tabla para encontrar datos adicionales en otra tabla

PROCESO DE DISEÑO DE UNA BASE DE DATOS

Incluye el diseño conceptual, diseño lógico y diseño físico de la BD

DEFINICIÓN DE DISEÑO CONCEPTUAL DE BASES DE DATOS

Conjunto de actividades que resultan en un esquema conceptual de alto nivel de una base de datos, independiente del software gestor (SGBD), partiendo de especificaciones de requerimientos.

Suele hacerse empleando un DER o mediante el modelo de dominio. Las personas encargadas de esta tarea suelen llamarse diseñadores de bases de datos.

Etapas del diseño conceptual

Identificar las entidades

Identificar las relaciones.

Identificar los atributos y asociarlos a entidades y relaciones.

Determinar los dominios de los atributos.

Determinar los identificadores.

Determinar las jerarquías de generalización (si las hay).

Dibujar el diagrama entidad-relación.

Revisar el esquema conceptual local con el usuario.

Ejemplo de diseño conceptual de bases de datos utilizando el MER

Ejemplo de Diseño con conceptual de BD utilizando el diagrama de clases de UML

DEFINICIÓN DE DISEÑO LÓGICO DE BASES DE DATOS

El diseño lógico de una base de datos parte del esquema conceptual de una base de datos, resultando en un esquema lógico de la base de datos.

Un esquema lógico de una base de datos es una 8 descripción de la estructura de la base de datos que puede procesar un SGBD.

El esquema lógico de base de datos depende de un tipo de SGBD (relacional, de redes, jerárquico...), pero no de un SGBD específico.

EJEMPLO DE DISEÑO LÓGICO DE LA BASE DE DATOS

DISEÑO FÍSICO DE BASE DE DATOS

El diseño físico parte del esquema lógico de bases de datos y da como resultado un esquema físico de bases de datos.

El esquema físico de una base de datos, depende del tipo de SGBD y de un SGBD específico.

El esquema físico de una base de datos es una descripción de la implementación de una base de datos en memoria secundaria, describiendo las estructuras de almacenamiento y los métodos de acceso a esos datos.

Diseño de base de datos Modelo conceptual de la base de datos mediante el Diagrama de clases de UML

Antes de entrar hablar en detalle del diseño de base datos haremos u breve repaso de lo que es clase y objeto

Clase

Es el descriptor de un conjunto de objetos con una estructura, comportamiento y relaciones similares.

Cada clase se representa en un rectángulo con tres compartimientos:

Ejemplo

Sistemas de ventas Hipermaxi

Sistema de ventas de una Carpinteria

Objeto

Entidad discreta con identidad, estado y comportamiento invocable.

Se representa de la misma forma que una clase.

En el compartimento superior aparecen el nombre del objeto junto con el nombre de la clase subrayados, según la siguiente sintaxis

Ejemplo

Visibilidad de los atributos y servicios de una Clase

Relación de asociación

Una asociación es una abstracción de la relación existente en los enlaces entre los objetos.

Ejemplo de asociación, con nombre y dirección (indica el sentido en el que se lee la asociación)

Tipos de asociación

De acuerdo a la cantidad de clases que participan en la asociación, se divide en:

Multiplicidad

Expresa cuantos objetos de una clase se asociación objetos de otra clase

La multiplicidad puede expresarse de las siguientes formas:

Con un número fijo: 1

Con un intervalo de valores: 2..5

Con un rango en el cual uno de los extremos es un asterisco.

Significa que es un intervalo abierto. Por ejemplo, 2..* significa 2 o más.

Con una combinación de elementos como los anteriores separados por comas: 1, 3..5, 7, 15..*.

Con un asterisco: * . En este caso indica que 4. Multiplicidad puede tomar cualquier valor (cero o más).

Ejemplos de multiplicidad en asociaciones

Participación en la asociación

Participación TOTAL

1 Uno y sólo uno

1..* Uno o muchos (al menos uno)

Participación PARCIAL

0..1 Cero o uno

0..* Cero o muchos

ROLES

Para indicar el papel que juega una clase en una asociación se puede especificar un nombre de rol.

Se representa en el extremo de la asociación junto a la clase que desempeña dicho rol.

EJEMPLO

Estructura de Agregación y Composición

Agregación

Forma de asociación que especifica una relación todo-parte entre un agregado (todo) y las partes que lo componen.

El tiempo de vida del objeto incluido es independiente del que lo incluye (Parámetros por referencia).

Estructura de Composición

Es una forma más fuerte de asociación en la cual el compuesto es el responsable único de gestionar sus partes.

El tiempo de vida del objeto incluido esta condicionado por el tiempo de vida del que lo incluye (parámetros por valor).

DEPENDENCIA

A diferencia de la composición y agregación, un objeto Empleado no está compuesto o formado por Dependientes.

El tiempo de vida de un objeto incluido (dependiente) está condicionado por el tiempo de vida del que lo incluye (Empleado).

Si desaparece el Empleado no tiene sentido que existan sus dependientes

Generalización/Especialización

Es la relación taxonómica entre una descripción más general y una descripción más específica, que se construye sobre ella y la extiende.

Tipos de Herencia: Simple y Múltiple

Definición de Normalización

Es el análisis de dependencias funcionales entre atributos de una tabla o relacion.

Propósito:

Reducir complejas vistas de usuario a un conjunto de pequeñas y estables estructuras de datos.

Una Base de Datos normalizada es:

Mas flexible

Estable

Fácil de mantener.

Dependencias Funcionales

Dependencia funcional:

Es una conexión entre uno o más atributos.

Ejemplo: Si se conoce el valor de FechaDeNacimiento podemos conocer el valor de Edad.

Las dependencias funcionales del sistema se escriben utilizando una flecha, de la siguiente manera: FechaDeNacimiento -----> Edad

Se puede leer de dos formas:

1. FechaDeNacimiento determina a Edad.

2. Edad es funcionalmente dependiente de FechaDeNacimiento.

Dependencia Funcional parcial:

Cuando un atributo no dependen del campo llave.

Dependencia Funcional completa:

Cuando un atributo depende totalmente del campo llave.

Claves

Clave primaria (primary key)

Columna (o conjunto de columnas) que identifica únicamente a una fila.

Se acostumbra a poner la clave primaria como la primera columna de la tabla.

Muchas veces la clave primaria es numérica auto-incrementada, es decir, generada mediante una secuencia numérica incrementada automáticamente cada vez que se inserta una fila.

Claves candidatas.

Columnas que pueden ser clave primaria por sí misma.

Formas Normales

Primera Forma Normal-1FN

Una relación está en 1FN si:

Todos los atributos son atómicos (indivisible).

La tabla contiene una llave primaria única.

La llave primaria no contiene atributos nulos.

No debe existir variación en el número de columnas.

Los Campos no llave deben identificarse por la llave (Dependencia Funcional) No contiene grupos repetitivos.

Segunda Forma Normal-1FN

Una relación está en 2FN si:

Está en 1FN.

Los atributos que no forman parte de ninguna clave dependen de forma completa de la clave primaria.

Tercera Forma Normal-1FN

Una relación esta en 3FN si:

Esta en 2FN.

No contiene dependencias transitivas.

jueves, 19 de diciembre de 2013

ALGEBRA RELACIONAL

Objetivo

Introducir los lenguajes conceptuales de las bases de datos relacionales, creados a partir de fundamentos matemáticos

Una base de datos relacional muestra las tablas en forma de filas y columnas

Dominio.-

Es el conjunto de todos los valores permitidos que una columna puede tomar. Se tiene D1,D2,...,Dn, si tenemos n columnas

Tupla.-

Cada una de las filas de una tabla se compone de n elementos (v1,v2,..,vn)

En matemáticas este conjunto ordenado de elementos se llama tupla.

Producto cartesiano.-

De lo anterior se tiene v1 D1, v2 D2, ... , vn Dn,

porque cada elemento está en el dominio respectivo. En matemáticas podemos decir que la tupla es un elemento del producto cartesiano de los dominios: (v1,v2,....,vn) (D1xD2x.....xDn) =Xi=1,n(Di)

Relación.-

Por tanto, la tabla es un subconjunto del producto cartesiano de dominios, en otras palabra, por definición matemática, es una relación.

Es por esto que en el álgebra relacional se denomina relación a una tabla y tupla a un fila de tabla.

EL ÁLGEBRA RELACIONAL

Se define el álgebra relacional como un lenguaje para bases de datos relacionales de tipo procedural. Operadores:

seleccionar  unario

proyectar  unario

producto cartesiano x binario

renombrar  unario

unión  binario

diferencia - binario

Estos son los 6 operadores fundamentales del álgebra relacional para generar consultas