Que es una base de datos es una entidad en la cual se pueden almacenar datos de manera estructurada, con la menor redundancia posible. A continuacin se presentan las caractersticas principales que puede tener una base de datos Concurrencia, Cualquier usuario que tenga acceso puede obtener, modificar o eliminar los datos. Integridad, ningn dato se puede daar o la misma informacin se debe presentar a todos los usuarios que estn realizado las consultas Seguridad, debe permitir administrar los usuarios para el nivel de acceso a la informacin SQL Server SQL (Lenguaje de consulta estructurado) server es un motor de base de datos desarrollado por Microsoft, El lenguaje de desarrollo utilizado (por lnea de comandos o mediante la interfaz grfica de Management Studio) es Transact-SQL (TSQL), una implementacin del estndar ANSI del lenguaje SQL, utilizado para manipular y recuperar datos, crear tablas y definir relaciones entre ellas. Lenguaje de definicin de datos DDL Grupo de sentencias del SQL que soportan la definicin y declaracin de los objetos de la base de datos. Objetos tales como: la base de datos misma(DATABASE), las tablas(TABLE), las Vistas (VIEW), los ndices (INDEX), los procedimientos almacenados (PROCEDURE), los disparadores (TRIGGER). Las sentencias utilizadas son: CREATE (crea cualquier tabla, base de datos), ALTER (modifica un objeto, tabla o base de datos) y DROP (elimina un objeto, tabla o base de datos) Lenguaje de manipulacin de datos DML Grupo de sentencias del SQL para manipular los datos que estn almacenados en las bases de datos, a nivel de filas (tuplas) y/o columnas (atributos). Ya sea que se requiera que los datos sean modificados, eliminados, consultados o que se agregaren nuevas filas a las tablas de las base de datos. Las sentencias utilizadas son : INSERT (inserta un registro), UPDATE (modifica uno o varios registros), DELETE (elimina uno o varios registros) y SELECT (muestra uno o varios registros) Lenguaje de control de datos DCL Grupo de sentencias del SQL para controlar las funciones de administracin que realiza el DBMS, tales como la atomicidad y seguridad. COMMIT TRANSACTION (acepta el cambio, ingreso o eliminacin),ROLLBACK TRANSACTION (regresa los datos a su opcin inicial, antes de ejecutar), GRANT (concede permisos) y REVOKE (quita permisos) Versiones SQL Versin Descripcin Contempla todas las caractersticas (deshabilitadas en otras ediciones).Es el tipo de Enterprise versin con ms privilegios existente en el mercado. Una versin limitada segn la configuracin del servidor y sus caractersticas, Standard diseada para servidores inferiores. Por ejemplo: en la versin 2012, la edicin Enterprise soporta un nmero ilimitado de procesadores, y la agregacin de memoria y CPUs en caliente sin la interrupcin del servicio o del servidor; mientras la edicin Standard esta limitada a 16 procesadores y no soporta la "agregacin en caliente". Una versin gratuita que posibilita la creacin de bases de datos limitadas con Express caractersticas bsicas, con el fin de apoyar aplicaciones que necesiten una solucin simple para almacenamiento de una cantidad limitada de datos, o usuarios que sus recursos y necesidades son limitados. En la versin 2012, esta edicin puede utilizar un mximo de 1 GB de memoria, y almacenar no ms de 10GB, funciona en servidores con un nmero mximo de cuatro procesadores. Estas limitaciones se mantienen en la versin 2014 (4 cores, 1GB ram, y 10Gb por base de datos). Base de dato relacional Es un tipo de base de datos (BD) que cumple con el modelo relacional (el modelo ms utilizado actualmente para implementar las BD ya planificadas). El modelo relacional, para el modelado y la gestin de bases de datos, es un modelo de datos basado en la lgica de predicados y en la teora de conjuntos. Caractersticas Una base de datos se compone de varias tablas o relaciones. No pueden existir dos tablas con el mismo nombre ni registro. Cada tabla es a su vez un conjunto de campos (columnas) y registros (filas). La relacin entre una tabla padre y un hijo se lleva a cabo por medio de las claves primarias y claves forneas (o ajenas). Las claves primarias son la clave principal de un registro dentro de una tabla y estas deben cumplir con la integridad de datos. Las claves ajenas se colocan en la tabla hija, contienen el mismo valor que la clave primaria del registro padre; por medio de estas se hacen las formas relacionales. MODELO ENTIDAD-RELACIN (ER) El modelo entidad-relacin ER es un modelo de datos que permite representar cualquier abstraccin, percepcin y conocimiento en un sistema de informacin formado por un conjunto de objetos denominados entidades y relaciones, incorporando una representacin visual conocida como diagrama entidad-relacin. Para proceder con el modelado de un sistema inicial se requiere tener algunos conceptos bsicos, los cuales se describen a continuacin. Entidad La entidad es cualquier clase de objeto o conjunto de elementos tangible o intangible, en un contexto determinado dado por el sistema de informacin o las funciones y procesos que se definen en un plan de automatizacin. Las entidades constituyen las tablas de la base de datos que permiten el almacenamiento de los registros del sistema. Por ejemplo, si se desea almacenar informacin de los estudiantes se debe crear una tabla que va ser una entidad y que llevar el nombre estudiante Atributos Son las caractersticas, rasgos y propiedades de una entidad, es decir, los atributos de una tabla son en realidad sus campos descriptivos, cada atributo debe estar asociado un tipo de dato Siguiendo el ejemplo del estudiante este tiene nombres, apellidos, sexo, nmero de identificacin Relaciones Vnculo que permite definir una dependencia entre los conjuntos de dos o ms entidades. Esto es la relacin entre la informacin contenida en los registros de varias tablas. Siguiendo el ejemplo del estudiante un estudiante tiene muchas materias, la relacin hacia la entidad materia seria a muchas. A continuacin se presentan los tipos de relaciones que puede existir Relacin de uno a varios (1,n). Se crea una relacin de uno a varios si uno de los campos relacionados es una clave principal. Esta relacin es la ms comn. Cada registro de una tabla puede estar enlazado con varios registros de una segunda tabla, pero cada registro de la segunda slo puede estar enlazado con un nico registro de la primera. Relacin de uno a uno (1,1). Se crear una relacin de este tipo si ambos campos relacionados son claves principales. En este tipo de relacin, un registro de la tabla uno slo puede estar relacionado con un nico registro de la tabla dos y viceversa. No es muy usada. Relacin de varios a varios (n,m). En este caso, ninguno de los campos relacionados son claves principales. Cada registro de la primera tabla puede estar enlazado con varios registros de la segunda y viceversa. Este tipo de relacin implica la repeticin de los campos de cada tabla; esto es lo que Access pretende evitar. Para establecer relaciones de este tipo, es necesario crear una tabla intermedia que est relacionada con las dos de uno a varios. Ejemplos de tipos de relaciones Como desarrollar un modelo relacional Para poder desarrollar un modelo relacional se debe tener las siguientes consideraciones 1.- Identificar las entidades, estas entidades pueden ser tangibles o intangibles. 2.- Identificar atributos que tienen cada una de las entidades. 3.- seleccionar las claves candidatas para luego definir las claves primarias 4.- relacionar cada entidad si es necesario. 5.- validar la consistencia en el modelo realizado. Clave Es el campo o atributo de una entidad que tiene como objetivo distinguir cada registro del conjunto, sirviendo sus valores como datos vinculantes de una relacin entre registros de varias tablas. Superclave. Es la combinacin de campos clave que identifican unvocamente un registro en una tabla o entidad. Clave principal o primaria. Permiten identificar unvocamente cada registro de una tabla. Clave candidata. Campos que cumplen las condiciones de identificacin nica de registros, pero que no fueron definidos como principales por el diseador. Clave externa. Campo clave conformado por el valor de una clave principal primaria de otra tabla. Tipos de datos SQL Server Tipo de tamao dato Los tipos de datos Microsoft Access SQL de BINARY 1 byte por carcter motor de base de datos consisten en 13 tipos de BIT 1 byte datos principales definidos por el motor de base de datos de Microsoft Access y varios sinnimos TiNYINT 1 byte
vlidos reconocidas para estos tipos de datos. MONEY 8 byte
Adicional a estos tipos de datos se pueden DATETIME 8 byte
utilizar tipos de datos compuestos tales como REAL 4 byte
nvarchar, varchar, ntext, image. FLOAT 8 byte
Vase en la siguiente direccin SMALLINT 2 byte
https://msdn.microsoft.com/es- INTEGER 4 byte
es/library/ms187752.aspx DECIMAL 17 byte
TEXT 2 byte por carcter
CHAR 2 byte por carcter
Ejercicio Realizar un modelo entidad relacin de registros de asistencias de alumnos, los datos a guardar son los siguientes: nombre del alumno, nmero de documento, nombres y apellidos y los das de asistencia, si el alumno no ha asistido a clases se debe colocar una bandera de indicacin. Se desea almacenar la informacin de pelculas. Cada pelcula, necesitas su ttulo, ao, nacionalidad y algunos datos de su director: el nombre, la fecha de nacimiento y su pas de origen. Adems, se quiere saber su idioma, si tiene alguna restriccin de edad, un resumen. La ficha tcnica de cada pelcula tambin debe incluir el reparto de actores, donde aparecer su nombre, su nacionalidad. IDE SQL Server A continuacin se presenta el IDE de administracin y desarrollo del SQL server que utilizaremos para realizar las prcticas y actividades en el transcurso del curso Barras de mens, contienen las opciones para permitir la administracin de la base de datos Explorador de objetos, Contiene la administracin de las bases de datos entre los principales se puede citar acceso a las bases y administracin de usuarios que utilizan la base de datos bulkadmin, pueden ejecutar la sentencia bulk insert. dbcreator, los miembros de esta opcin pueden crear, modificar o borrar la base de datos Lista las bases de datos diskadmin, utilizado para administrar los archivos que posee la instancia del disco processadmin, pueden finalizar los procesos que se ejecutan en la instancia. public, permite que el objeto este disponible a Lista los usuarios que todos, slo asigne permisos pblicos a cualquier estn registrados en la objeto cuando desee que el objeto est disponible instancia. para todos los usuarios. securiryadmin, gestionan los inicios de sesin y sus propiedades. Pueden conceder, negar y rechazar los permisos a nivel de servidor. Lista los perfiles que estn serveradmin, pueden cambiar las opciones de registrados en la instancia configuracin de todo el servidor y cerrar el servidor. setupadmin, pueden agregar y eliminar servidores enlazados mediante instrucciones Transact-SQL. sysadmin, puede realizar cualquier actividad en el servidor COMANDOS DE ADMINISTRACIN A continuacin se presentan algunos comandos tiles para la administracin del sistema, para mostrar los registros se debe utilizar la sentencia SELECT En el sys.database se puede encontrar todos los objetos que contiene la base de datos pertenecientes a la instancia SELECT * FROM sys.databases ; Sys.sysusers muestra todos los usuarios que pertenecen a la instancia SELECT * FROM sys.sysusers ; Select - DML Esta sentencia permite realizar la bsqueda de registros entre una tabla o varias tablas Para realizar una consulta se debe obtener la siguiente estructura
SELECT [columnas] FROM [nombre tabla] WHERE [condicin]
Si deseamos unir varias tablas en nuestra consulta se debe utilizar la opcin INNER JOIN colocando SELECT [columnas] FROM [tabla uno] INNER JOIN [tabla dos] ON [tablaUno.pk] = [tablaDos.pk] Tipos de funciones en SQL usados Existen muchas funciones que se pueden utilizar en SQL server, por lo que en este tema se tratar unos cuantos que nos ayudar a realizar nuestras consultas Nombre Funcin Descripcin AVG Permite obtener un promedio de las columnas SUM Permite realizar la suma de los valores COUNT Realiza el conteo de filas, si la columna seleccionada tiene el valor NULL, no realiza la cuenta MAX, MIN Obtiene el valor mximo y obtiene el valor mnimo. LEN Obtiene el nmero de caracteres que posee la columna o una variable SUBSTRING Permite realizar el corte en la cadena de caracteres su sintaxis es SUBSTRNG(<dato>,inicio,fin) LTRIM Elimina los espacios en blanco a la izquierda que pueda tener una cadena RTRIM Elimina los espacios en blanco a la derecha que pueda tener una cadena CAST Realiza una conversin de datos CAST(<dato> as <tipo de dato> ) CONVERT Realiza la conversin de datos CAST(<tipo de dato>,<dato>) Select con inner join Vista Una vista es una consulta en la cual puede agrupar varios tablas, y al momento de realizar la llamada se la puede tratar como una sola tabla; al igual que una tabla se la puede aplicar filtros, order by u otros operadores que hemos utilizado Para crear una vista debemos utilizar la siguiente sintaxis
Para utilizarla se debe llamar a la vista a travs de un select
Create database - DDL Esta opcin nos permite crear una base de datos, tabla, vista, procedimiento almacenado, trigger A continuacin se procede a mostrar la estructura de creacin de una base de datos
NOTA: en este ejemplo se ha indicado donde se desea guardar la nueva base de
datos, pero si no colocamos ningn path y solo colocamos la primera lnea por defecto se crear en la carpeta por defecto de SQL Server CREACION DE TABLAS Se pueden crear dos tipos de tablas, tablas temporales y tablas fijas. Para crear una tabla en primer lugar se debe tener definido la estructura de la tabla con las claves primarias, o forneas (externos) que pude tener, y sus respectivas restricciones que posea las columnas CREATE TABLE [nombre Tabla] ( Las columnas que posee las tablas indicando la clave primaria (primary key), cada columna debe ser separada por una coma ) Relacin con claves externas En SQL permite establecer las relaciones, entre tablas utilizando una palabra clave a lado de la columna como se indica en la siguiente figura. Restriccin de valores nicos Se puede realizar una restriccin de valores mediante dos opciones, la primera es asignado a la columna el valor de clave primaria o el segundo caso es creando una restriccin para que el valor de la columna sea nico en la tabla. Relacin con Contraints Un constraint es un objeto delimitador, o si se lo quiere asignar es una regla Insert Esta opcin permite realizar el ingreso o insercin de un registro en una tabla, para realizar esta operacin debemos utilizar la siguiente opcin
En la primera opcin se deben especificar el orden como se va a inserta la informacin
en el registro. En la segunda opcin se ingresa en el orden como esta definido la tabla en la base de datos NOTA: las columnas definidas como identidad no se deben especificar al momento del ingreso o se deben utilizar la opcin IDENTITY_INSERT para poder realizar la insercin del registro adicional se debe especificar las columnas que se van a insertar Update Permite realizar la actualizacin de uno o varios registros, se recomienda al momento de utilizar esta opcin se utilice la opcin con el WHERE, si no es usado esta opcin se actualizar todo el registro de la tabla. Delete Esta opcin permite realizar el borrado de registros en nuestra tabla, es recomendable utilizar esta opcin acompaado de la sentencia WHERE Procedimientos almacenados Un procedimiento almacenado es un conjunto de instrucciones u operaciones que realiza una determinada accin, ya sea esta una consulta (Select),Ingreso de registros (insert), actualizacin de datos (update) o una eliminacin de datos (delete) Sintaxis de un procedimiento almacenado Triggers o disparadores Son objetos que se asocian con tablas y se almacenan en la base de datos. Su nombre se deriva por el comportamiento que presentan en su funcionamiento, ya que se ejecutan cuando sucede algn evento sobre las tablas a las que se encuentra asociado. Los eventos que hacen que se ejecute un trigger son las operaciones de insercin (INSERT), borrado (DELETE) o actualizacin (UPDATE), ya que modifican los datos de una tabla. Cuando se enva un insert podemos ver la informacin antes de insertar mediante la utilizacin de una tabla temporal denominada inserted Cuando se realiza un delete podemos ver la informacin antes de borrar mediante la utilizacin de la tabla temporal denominada deleted Cuando se realiza un update la nueva informacin se almacena en la tabla inserted y la informacin actual se almacena en la tabla deleted Sintaxis de TRIGGER