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 continuación se presentan las características principales que puede tener una base de datos • Concurrencia, Cualquier usuario que tenga acceso puede obtener, modificar o eliminar los datos. • Integridad, ningún dato se puede dañar o la misma información se debe presentar a todos los usuarios que están realizado las consultas • Seguridad, debe permitir administrar los usuarios para el nivel de acceso a la información SQL Server • SQL (Lenguaje de consulta estructurado) server es un motor de base de datos desarrollado por Microsoft, El lenguaje de desarrollo utilizado (por línea de comandos o mediante la interfaz gráfica de Management Studio) es Transact-SQL (TSQL), una implementación del estándar ANSI del lenguaje SQL, utilizado para manipular y recuperar datos, crear tablas y definir relaciones entre ellas. Lenguaje de definición de datos DDL • Grupo de sentencias del SQL que soportan la definición y declaración 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 manipulación de datos DML • Grupo de sentencias del SQL para manipular los datos que están 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 administración que realiza el DBMS, tales como la atomicidad y seguridad. • COMMIT TRANSACTION (acepta el cambio, ingreso o eliminación),ROLLBACK TRANSACTION (regresa los datos a su opción inicial, antes de ejecutar), GRANT (concede permisos) y REVOKE (quita permisos) Versiones SQL Versión Descripción Contempla todas las características (deshabilitadas en otras ediciones).Es el tipo de Enterprise versión con más privilegios existente en el mercado. Una versión limitada según la configuración del servidor y sus características, Standard diseñada para servidores inferiores. Por ejemplo: en la versión 2012, la edición Enterprise soporta un número ilimitado de procesadores, y la agregación de memoria y CPUs en caliente sin la interrupción del servicio o del servidor; mientras la edición Standard esta limitada a 16 procesadores y no soporta la "agregación en caliente". Una versión gratuita que posibilita la creación de bases de datos limitadas con Express características básicas, con el fin de apoyar aplicaciones que necesiten una solución simple para almacenamiento de una cantidad limitada de datos, o usuarios que sus recursos y necesidades son limitados. En la versión 2012, esta edición puede utilizar un máximo de 1 GB de memoria, y almacenar no más de 10GB, funciona en servidores con un número máximo de cuatro procesadores. Estas limitaciones se mantienen en la versión 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 más utilizado actualmente para implementar las BD ya planificadas). El modelo relacional, para el modelado y la gestión de bases de datos, es un modelo de datos basado en la lógica de predicados y en la teoría de conjuntos. Características • 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 relación entre una tabla padre y un hijo se lleva a cabo por medio de las claves primarias y claves foráneas (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-RELACIÓN (ER) • El modelo entidad-relación ER es un modelo de datos que permite representar cualquier abstracción, percepción y conocimiento en un sistema de información formado por un conjunto de objetos denominados entidades y relaciones, incorporando una representación visual conocida como diagrama entidad-relación. • Para proceder con el modelado de un sistema inicial se requiere tener algunos conceptos básicos, los cuales se describen a continuación. Entidad • La entidad es cualquier clase de objeto o conjunto de elementos tangible o intangible, en un contexto determinado dado por el sistema de información o las funciones y procesos que se definen en un plan de automatización. • 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 información de los estudiantes se debe crear una tabla que va ser una entidad y que llevará el nombre estudiante Atributos • Son las características, 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, número de identificación Relaciones • Vínculo que permite definir una dependencia entre los conjuntos de dos o más entidades. Esto es la relación entre la información contenida en los registros de varias tablas. Siguiendo el ejemplo del estudiante un estudiante tiene muchas materias, la relación hacia la entidad materia seria a muchas. • A continuación se presentan los tipos de relaciones que puede existir • Relación de uno a varios (1,n). Se crea una relación de uno a varios si uno de los campos relacionados es una clave principal. Esta relación es la más común. Cada registro de una tabla puede estar enlazado con varios registros de una segunda tabla, pero cada registro de la segunda sólo puede estar enlazado con un único registro de la primera. • Relación de uno a uno (1,1). Se creará una relación de este tipo si ambos campos relacionados son claves principales. En este tipo de relación, un registro de la tabla uno sólo puede estar relacionado con un único registro de la tabla dos y viceversa. No es muy usada. • Relación 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 relación implica la repetición 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 relación entre registros de varias tablas. • Superclave. Es la combinación de campos clave que identifican unívocamente un registro en una tabla o entidad. • Clave principal o primaria. Permiten identificar unívocamente cada registro de una tabla. • Clave candidata. Campos que cumplen las condiciones de identificación única de registros, pero que no fueron definidos como principales por el diseñador. • Clave externa. Campo clave conformado por el valor de una clave principal primaria de otra tabla. Tipos de datos SQL Server Tipo de tamaño dato • Los tipos de datos Microsoft Access SQL de BINARY 1 byte por carácter 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 sinónimos TiNYINT 1 byte
válidos 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
• Véase en la siguiente dirección SMALLINT 2 byte
• https://msdn.microsoft.com/es- INTEGER 4 byte
es/library/ms187752.aspx DECIMAL 17 byte
TEXT 2 byte por carácter
CHAR 2 byte por carácter
Ejercicio • Realizar un modelo entidad relación de registros de asistencias de alumnos, los datos a guardar son los siguientes: nombre del alumno, número de documento, nombres y apellidos y los días de asistencia, si el alumno no ha asistido a clases se debe colocar una bandera de indicación. • Se desea almacenar la información de películas. Cada película, necesitas su título, año, nacionalidad y algunos datos de su director: el nombre, la fecha de nacimiento y su país de origen. Además, se quiere saber su idioma, si tiene alguna restricción de edad, un resumen. La ficha técnica de cada película también debe incluir el reparto de actores, donde aparecerá su nombre, su nacionalidad. IDE SQL Server • A continuación se presenta el IDE de administración y desarrollo del SQL server que utilizaremos para realizar las prácticas y actividades en el transcurso del curso • Barras de menús, contienen las opciones para permitir la administración de la base de datos • Explorador de objetos, Contiene la administración de las bases de datos entre los principales se puede citar acceso a las bases y administración de usuarios que utilizan la base de datos bulkadmin, pueden ejecutar la sentencia bulk insert. dbcreator, los miembros de esta opción 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, sólo asigne permisos públicos a cualquier están registrados en la objeto cuando desee que el objeto esté disponible instancia. para todos los usuarios. securiryadmin, gestionan los inicios de sesión y sus propiedades. Pueden conceder, negar y rechazar los permisos a nivel de servidor. Lista los perfiles que están serveradmin, pueden cambiar las opciones de registrados en la instancia configuración 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 ADMINISTRACIÓN • A continuación se presentan algunos comandos útiles para la administración 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 búsqueda de registros entre una tabla o varias tablas • Para realizar una consulta se debe obtener la siguiente estructura
• SELECT [columnas] FROM [nombre tabla] WHERE [condición]
• Si deseamos unir varias tablas en nuestra consulta se debe utilizar la opción 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 Función Descripción 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 máximo y obtiene el valor mínimo. LEN Obtiene el número 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 conversión de datos CAST(<dato> as <tipo de dato> ) CONVERT Realiza la conversión 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 través de un select
Create database - DDL Esta opción nos permite crear una base de datos, tabla, vista, procedimiento almacenado, trigger A continuación se procede a mostrar la estructura de creación 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 ningún path y solo colocamos la primera línea 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 foráneas (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 • ) Relación 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. Restricción de valores únicos • Se puede realizar una restricción de valores mediante dos opciones, la primera es asignado a la columna el valor de clave primaria o el segundo caso es creando una restricción para que el valor de la columna sea único en la tabla. Relación con Contraints • Un constraint es un objeto delimitador, o si se lo quiere asignar es una regla Insert • Esta opción permite realizar el ingreso o inserción de un registro en una tabla, para realizar esta operación debemos utilizar la siguiente opción
• En la primera opción se deben especificar el orden como se va a inserta la información
en el registro. • En la segunda opción 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 opción IDENTITY_INSERT para poder realizar la inserción del registro adicional se debe especificar las columnas que se van a insertar Update • Permite realizar la actualización de uno o varios registros, se recomienda al momento de utilizar esta opción se utilice la opción con el WHERE, si no es usado esta opción se actualizará todo el registro de la tabla. Delete • Esta opción permite realizar el borrado de registros en nuestra tabla, es recomendable utilizar esta opción acompañado de la sentencia WHERE Procedimientos almacenados • Un procedimiento almacenado es un conjunto de instrucciones u operaciones que realiza una determinada acción, ya sea esta una consulta (Select),Ingreso de registros (insert), actualización de datos (update) o una eliminación 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 algún evento sobre las tablas a las que se encuentra asociado. Los eventos que hacen que se ejecute un trigger son las operaciones de inserción (INSERT), borrado (DELETE) o actualización (UPDATE), ya que modifican los datos de una tabla. • Cuando se envía un insert podemos ver la información antes de insertar mediante la utilización de una tabla temporal denominada inserted • Cuando se realiza un delete podemos ver la información antes de borrar mediante la utilización de la tabla temporal denominada deleted • Cuando se realiza un update la nueva información se almacena en la tabla inserted y la información actual se almacena en la tabla deleted Sintaxis de TRIGGER