MODELOS DE DATOS Un modelo de base de datos es un tipo de modelo de datos que determina la estructura lgica de una base de datos y de manera fundamental determina el modo de almacenar, organizar y manipular los datos. Entre los modelos lgicos comunes para bases de datos se encuentran: Modelo jerrquico Modelo en red Modelo relacional Modelo entidadrelacin Modelo entidadrelacin extendido modelo de objetos modelo documental Modelo entidadatributovalor modelo en estrella Los modelos fsicos de datos incluyen: ndice invertido fichero plano Otros modelos lgicos pueden ser: modelo asociativo modelo multidimensional modelo multivalor modelo semntico base de datos XML grafo etiquetado Triplestore USUARIOS Usuarios normales. Son usuarios no sofisticados que interactan con el sistema mediante un programa de aplicacin con una interfaz de formularios, donde puede rellenar los campos apropiados del formulario. Estos usarios pueden tambin simplemente leer informes generados de la base de datos. Usuarios sofisticados. Interactan con el sistema sin programas escritos, usando el lenguaje de consulta de base de datos para hacer sus consultas. Los analistas que envan las consultas para explorar los datos en la base de datos entran en esta categora, usando ellos las herramientas de procesamiento analtico en lnea (OLAP, OnLine Analytical Processing), o herramientas de recopilacin de datos. Usuarios especializados. Son usuarios sofisticados que escriben aplicaciones de bases de datos especializadas y adecuadas para el procesamiento de datos tradicional. Entre estas aplicaciones estn los sistemas de diseo asistido por computadora, sistemas de base de conocimientos y sistemas expertos, sistemas que almacenan datos de tipos de datos complejos (como grficos y de audio) y sistemas de modelado de entorno. PASOS PARA DESARROLLAR UNA BASE DE DATOS 1 Determinar la finalidad de la base de datos
El primer paso para disear una base de datos es determinar su finalidad y cmo se utiliza. Debe saber qu informacin desea obtener de la base de datos. A partir de ah, puede determinar sobre qu asuntos necesita almacenar hechos (las tablas) y qu hechos necesita almacenar sobre cada asunto (los campos de las tablas).
2 Determinar las tablas que se necesitan Determinar las tablas puede ser el paso ms complicado del proceso de diseo de la base de datos. Esto se debe a que los resultados que desea obtener de la base de datos (los informes que desea imprimir, los formularios que desea utilizar, las preguntas para las que desea respuestas) no proporcionan pistas necesariamente acerca de la estructura de las tablas que los producen. No es necesario que disee las tablas mediante algn producto (Microsoft Access por Ej.). De hecho, posiblemente sea ms conveniente realizar un boceto en papel de la base de datos y trabajar sobre el diseo primero. Al disear las tablas, divida la informacin teniendo en cuenta los siguientes principios de diseo fundamentales: Una tabla no debe contener informacin duplicada, y no debe duplicarse informacin entre tablas. A este respecto, una tabla de una base de datos relacional es diferente a una tabla de una aplicacin de archivos simples como por ejemplo una hoja de clculo. Cuando cada elemento de informacin est almacenado en una tabla, se actualiza en un solo lugar. Esto resulta ms eficiente y elimina la posibilidad de que existan entradas duplicadas que contengan informacin diferente. Por ejemplo, probablemente desee almacenar la direccin y el nmero de telfono de cada cliente una sola vez en una sola tabla.
3 Determinar los campos que se necesitan
Cada tabla contiene informacin acerca del mismo asunto, y cada campo de una tabla contiene hechos individuales sobre el asunto de la tabla. Por ejemplo, la tabla de Clientes puede incluir los campos del nombre de la compaa, la direccin, la ciudad, el pas y el nmero de telfono. Al realizar bocetos de los campos para cada tabla, tenga en cuenta estas sugerencias:
Relacione cada campo directamente con el asunto de la tabla.
No incluya datos derivados ni calculados (datos que son el resultado de una expresin).
4 Identificar el campo o campos con valores nicos en cada registro
Para relacionar informacin almacenada en tablas independientes (por ejemplo, para conectar a un cliente con todos los pedidos del cliente), cada tabla de la base de datos debe incluir un campo o un conjunto de campos que identifiquen de forma exclusiva cada registro individual de la tabla. Este campo o conjunto de campos se denomina clave principal. 5 Perfeccionar el diseo Una vez diseadas las tablas, los campos y las relaciones que necesita, es el momento de estudiar el diseo y detectar los posibles fallos que puedan quedar. Es ms sencillo cambiar el diseo de la base de datos ahora que una vez que haya rellenado las tablas con datos. Utilice un software de bases de datos (Microsoft Access por Ej.) para crear las tablas, especificar relaciones entre las tabl as e introducir suficientes datos de ejemplo en las tablas para poder comprobar el diseo. Para probar las relaciones de la base de datos, compruebe si puede crear consultas para obtener las respuestas que desee. Busque duplicaciones de datos innecesarias y elimnelas. Si encuentra problemas, perfeccione el diseo.
6 Introducir datos y crear otros objetos de la base de datos Cuando considere que la estructura de las tablas cumple los principios de diseo descritos anteriormente, es el momento de comenzar a agregar los datos existentes a las tablas. A continuacin, puede crear las consultas, formularios, informes, etc. que desee.
7 Utilizar las herramientas de anlisis de Microsoft Access Microsoft Access incluye dos herramientas que pueden ayudarle a perfeccionar el diseo de la base de datos de Microsoft Access. El Asistente para analizar tablas puede analizar el diseo de una tabla, proponer nuevas estructuras de tablas y relaciones si es conveniente y dividir una tabla en nuevas tablas relacionadas si es necesario. El Analizador de rendimiento puede analizar la base de datos completa y realizar recomendaciones y sugerencias para mejorarla. El asistente tambin puede implantar estas recomendaciones y sugerencias.
MODELO LOGICO El Modelo Conceptual de Datos es independiente del software de gestin de bases de datos utilizado. Para proceder al diseo de los ficheros y de las bases de datos del sistema, se debe convertir previamente el modelo conceptual que inclua tipos de entidades y relaciones con atributos asociados, en un modelo lgico que nicamente considere tipos de registros compuestos por campos de datos. Al Modelo Lgico de Datos normalmente se le suele llamar Diagrama de Estructura de Datos (DED) o Diagrama de Bachman.
Existen tres tipos de SGBD. Basados en una base de datos relacional, en el que se almacenan los datos como un conjunto de tablas o relaciones. Basados en una base de datos en red, en el que la estructura de los registros establece una relacin subordinada "padre-hijo" entre ellos. (P.e. un registro Departamento puede poseer registros Proyectos que, a su vez, poseen registros Empleados). Basados en una base de datos jerrquica, similar a la anterior, con la diferencia que cada registro slo puede tener un padre. Nos limitaremos a las basadas en bases de datos relacionales, ya que son las ms utilizadas y poseen la ventaja de que la conversin del modelo conceptual es directa, sin ms que considerar las entidades como registros y los atributos como campos de stos. RESTRICCIONES DE INTEGRIDAD Las restricciones de los dominios son la forma ms simple de restriccin de integridad. Se especifica para cada atributo un dominio de valores posibles. Una definicin adecuada de las restricciones de los dominios no slo permite verificar los valores introducidos en la base de datos sino tambin examinar las consultas para asegurarse de que tengan sentido las comparaciones que hagan. Por ejemplo, normalmente no se considerar que la consulta Hallar todos los clientes que tengan el nombre de una sucursal tenga sentido. Por tanto, nombre-cliente y nombre-sucursal deben tener dominios diferentes. La clusula check de SQL:1999 permite restringir los dominios de maneras poderosas que no permiten la mayor parte de los sistemas de tipos de los lenguajes de programacin La clusula check permite especificar un predicado que debe satisfacer cualquier valor asignado a una variable cuyo tipo sea el dominio. Por ejemplo: Nmero de cifras Nmero de decimales create domain sueldo-por-hora numeric(4,2) constraint comprobacin-valor-sueldo check(value 6.00) Restricciones de existencia Dentro de las restricciones de los dominios, un tipo especial de restriccin que se puede aplicar a cualquier dominio es la restriccin de existencia. Esta restriccin evita la aparicin de valores nulos en las columnas. Restricciones de unicidad Otro tipo especial de restriccin que se puede aplicar a cualquier dominio es la restriccin de unicidad. Esta restriccin evita la aparicin de valores duplicados en las columnas BASE DE DATOS RELACIONALES En una computadora existen diferentes formas de almacenar informacin. Esto da lugar a distintos modelos de organizacin de la base de datos: jerrquico, red, relacional y orientada a objeto. Los sistemas relacionales son importantes porque ofrecen muchos tipos de procesos de datos, como: simplicidad y generalidad, facilidad de uso para el usuario final, perodos cortos de aprendizaje y las consultas de informacin se especifican de forma sencilla. Las tablas son un medio de representar la informacin de una forma ms compacta y es posible acceder a la informacin contenida en dos o ms tablas. Ms adelante explicaremos que son las tablas. Las bases de datos relacionales estn constituidas por una o ms tablas que contienen la informacin ordenada de una forma organizada. Cumplen las siguientes leyes bsicas: Generalmente, contendrn muchas tablas. Una tabla slo contiene un nmero fijo de campos. El nombre de los campos de una tabla es distinto. Cada registro de la tabla es nico. El orden de los registros y de los campos no est determinados. Para cada campo existe un conjunto de valores posible.
MODELO ENTIDAD- RELACION 1. MODELO ENTIDAD-RELACIN El modelo entidad relacin se basa en una percepcin de un mundo real que consiste en un conjunto de elementos bsicos llamados entidades y relaciones entre estos elementos.
ENTIDADES: Una Entidad es un conjunto de elementos que existen y se distinguen de otros elementos gracias a que tienen caractersticas propias (Atributos) que los describen. Por ejemplo, Juan Esteban Henao con Nmero de cdula 10.022.723, de 22 aos de edad, del sexo masculino es un elemento del conjunto Empleados de una empresa en particular. De esta forma podemos tener entidades como: Materias, Estudiantes, Profesores, Vehculos, pases, etc. cada una con caractersticas que describen y diferencian cada elemento.
ATRIBUTOS: Los Atributos son las caractersticas por las cuales puedo describir una Entidad y que a su vez no tienen caractersticas propias (Atributos) representativas. define al vehculo y este adems tiene atributos propios que lo definen, como nombre, cedula, direccin, telfono, edad, sexo, etc.Hay entidades que no necesitan ser diferentes, por ejemplo en un colegio es posible definir la entidad Estudiantes y definir la entidad Profesores y a simple vista podran tener los mismos atributos, como documento de identidad, nombre, edad, telfono, direccin, sexo, etc. De esta manera se podra malinterpretar y crear una sola entidad con el nombre de Personas, que podran ser tanto los estudiantes como los profesores pero estas practicas no son convenientes, por tal motivo los nombres debern ser lo ms especficos posible tanto para las entidades como para los atributos ENTORNO DE SQL SERVER Introduccin y historia de SQL El lenguaje de consulta estructurado (SQL) es un lenguaje de base de datos normalizado, utilizado por los diferentes motores de bases de datos para realizar determinadas operaciones sobre los datos o sobre la estructura de los mismos. Pero como sucede con cualquier sistema de normalizacin hay excepciones para casi todo; de hecho, cada motor de bases de datos tiene sus peculiaridades y lo hace diferente de otro motor, por lo tanto, el lenguaje SQL normalizado (ANSI) no nos servir para resolver todos los problemas, aunque si se puede asegurar que cualquier sentencia escrita en ANSI ser interpretable por cualquier motor de datos. HISTORIA DE SQL La historia de SQL (que se pronuncia deletreando en ingls las letras que lo componen, es decir "ese-cu-ele" y no "siquel" como se oye a menudo) empieza en 1974 con la definicin, por parte de Donald Chamberlin y de otras personas que trabajaban en los laboratorios de investigacin de IBM, de un lenguaje para la especificacin de las caractersticas de las bases de datos que adoptaban el modelo relacional. Este lenguaje se llamaba SEQUEL (Structured English Query Language) y se implement en un prototipo llamado SEQUEL-XRM entre 1974 y 1975. Las experimentaciones con ese prototipo condujeron, entre 1976 y 1977, a una revisin del lenguaje (SEQUEL/2), que a partir de ese momento cambi de nombre por motivos legales, convirtindose en SQL. El prototipo (System R), basado en este lenguaje, se adopt y utiliz internamente en IBM y lo adoptaron algunos de sus clientes elegidos. Gracias al xito de este sistema, que no estaba todava comercializado, tambin otras compaas empezaron a desarrollar sus productos relacionales basados en SQL. A partir de 1981, IBM comenz a entregar sus productos relacionales y en 1983 empez a vender DB2. En el curso de los aos ochenta, numerosas compaas (por ejemplo Oracle y Sybase, slo por citar algunos) comercializaron productos basados en SQL, que se convierte en el estndar industrial de hecho por lo que respecta a las bases de datos relacionales.
En 1986, el ANSI adopt SQL (sustancialmente adopt el dialecto SQL de IBM) como estndar para los lenguajes relacionales y en 1987 se transfom en estndar ISO. Esta versin del estndar va con el nombre de SQL/86. En los aos siguientes, ste ha sufrido diversas revisiones que han conducido primero a la versin SQL/89 y, posteriormente, a la actual SQL/92.
El hecho de tener un estndar definido por un lenguaje para bases de datos relacionales abre potencialmente el camino a la intercomunicabilidad entre todos los productos que se basan en l. Desde el punto de vista prctico, por desgracia las cosas fueron de otro modo. Efectivamente, en general cada productor adopta e implementa en la propia base de datos slo el corazn del lenguaje SQL (el as llamado Entry level o al mximo el Intermediate level), extendindolo de manera individual segn la propia visin que cada cual tenga del mundo de las bases de datos.
Actualmente, est en marcha un proceso de revisin del lenguaje por parte de los comits ANSI e ISO, que debera terminar en la definicin de lo que en este momento se conoce como SQL3. Las caractersticas principales de esta nueva encarnacin de SQL deberan ser su transformacin en un lenguaje stand-alone (mientras ahora se usa como lenguaje hospedado en otros lenguajes) y la introduccin de nuevos tipos de datos ms complejos que permitan, por ejemplo, el tratamiento de datos multimediales.
COMPONENTES DEL SQL El lenguaje SQL est compuesto por comandos, clusulas, operadores y funciones de agregado. Estos elementos se combinan en las instrucciones para crear, actualizar y manipular las bases de datos.
Comandos
Existen dos tipos de comandos SQL:
DLL que permiten crear y definir nuevas bases de datos, campos e ndices. DML que permiten generar consultas para ordenar, filtrar y extraer datos de la base de datos. COMANDOS Comandos DLL Comando Descripcin CREATE Utilizado para crear nuevas tablas, campos e ndices DROP Empleado para eliminar tablas e ndices ALTER Utilizado para modificar las tablas agregando campos o cambiando la definicin de los campos. Comandos DML Comando Descripcin SELECT Utilizado para consultar registros de la base de datos que satisfagan un criterio determinado INSERT Utilizado para cargar lotes de datos en la base de datos en una nica operacin. UPDATE Utilizado para modificar los valores de los campos y registros especificados DELETE Utilizado para eliminar registros de una tabla de una base de datos
CLUSULAS Las clusulas son condiciones de modificacin utilizadas para definir los datos que desea seleccionar o manipular.
Clusula Descripcin FROM Utilizada para especificar la tabla de la cual se van a seleccionar los registros WHERE Utilizada para especificar las condiciones que deben reunir los registros que se van a seleccionar GROUP BY Utilizada para separar los registros seleccionados en grupos especficos HAVING Utilizada para expresar la condicin que debe satisfacer cada grupo ORDER BY Utilizada para ordenar los registros seleccionados de acuerdo con un orden especfico OPERADORES LGICOS Y OPERADORES DE COMPARACIN Operador Uso AND Es el "y" lgico. Evala dos condiciones y devuelve un valor de verdad slo si ambas son ciertas. OR Es el "o" lgico. Evala dos condiciones y devuelve un valor de verdad si alguna de las dos es cierta. NOT Negacin lgica. Devuelve el valor contrario de la expresin. Operador Uso < Menor que > Mayor que <> Distinto de <= Menor o igual que >= Mayor o igual que = Igual que BETWEEN Utilizado para especificar un intervalo de valores. LIKE Utilizado en la comparacin de un modelo In Utilizado para especificar registros de una base de datos FUNCIONES DE AGREGADO Las funciones de agregado se usan dentro de una clusula SELECT en grupos de registros para devolver un nico valor que se aplica a un grupo de registros. Funcinn Descripcin AVG Utilizada para calcular el promedio de los valores de un campo determinado COUNT Utilizada para devolver el nmero de registros de la seleccin SUM Utilizada para devolver la suma de todos los valores de un campo determinado MAX Utilizada para devolver el valor ms alto de un campo especificado MIN Utilizada para devolver el valor ms bajo de un campo especificado INTERFAZ GRAFICA DE MICROSOFT SQL SERVER