miércoles, 14 de diciembre de 2016

Creación de Base de datos
Todas las bases de datos tienen dos archivos importantes que son: ldf(log database file). y mdf(master database file).
Los datos se almacenan en el mdf.
Siempre hay que estimar cuanto queremos que crezca la base de datos.
Las bases de datos del usuario son creadas para usos específicos por cualquier aplicación o usuario. Cuando el administrador de una base de datos crea una nueva, SQL Server crea el archivo MDF y LDF correspondiente a esa base de datos. SQL Server los coloca inicialmente en su directorio por defecto, o el administrador puede definir dónde van a ser almacenados. Después de la creación, pueden ser movidos a diferentes ubicaciones por razones de conveniencia, desempeño o almacenamiento.
SQL Server no exige las extensiones de archivo .mdf, .ndf, .ldf, pero estas extensiones ayudan a identificar las distintas clases de archivo.

Modelo 1: Creación de base de datos y archivos de base de datos:

Creación de base de datos:

Consideraciones para la creación de una base de datos:

  • Propósito del almacenamiento de datos 
  • Rendimiento de transacciones 
  • Crecimiento potencial del almacenamiento físico de datos 
  • Ubicación de los archivos 

Opciones de base de datos 

Establezca las opciones de base de datos utilizando:

  • SQL Server Management Studio
  •  Instrucción ALTER DATABASE 
Automática: Controla los comportamientos automáticos como estadísticas, cierre de base de datos y reducción

Disponibilidad: Controla si la base de datos tiene o no conexión, quién puede conectar con ella y si la base de datos es de sólo lectura

Cursor : Controla el comportamiento y el ámbito del cursor

Recuperación: Controla el modelo de recuperación de la base de datos

SQL: Controla las opciones de compatibilidad con ANSI como valores nulos ANSI y desencadenadores recursivos.

Cuándo crear grupos de archivos

  • Uso de varios archivos en un único grupo de archivos para mejorar el rendimiento 
  • Uso de varios grupos de archivos para controlar la colocación física de los datos 

domingo, 11 de diciembre de 2016

DBMS Oracle y MySQL
DBMS (Data Base Management System). Son las siglas en inglés para los Sistemas de Gestión de Bases de Datos (SGBD), es un Software que controla la organización, almacenamiento, recuperación, seguridad e integridad de los datos en una base de datos.

  • Tipos de datos
    • Tipo de dato (numérico, texto, fechas, etc.)
    • Nombre del tipo de dato (float, int, char(), varchar(), etc)
    • Número de bytes utilizados por cada tipo de dato
    • Valores permitidos para cada tipo de dato, valor máximo y mínimo
Existen varios tipos de datos en MySQL como de tipo numérico, cadena, fecha.

Numéricos: TinyInt, Bool, SmallInt, MediumInt, Int, BigInt, Float, Double, Decimal.
Cadena: Char, Varchar, Blob, Text.
Fecha: Date, DateTime, TimeStamp, Time, Year.

La cantidad de bytes utilizados varía según el tipo de dato:

Numéricos:
Fecha: 
Cadena:
Existen ciertos valores permitidos para cada tipo de dato:

Numéricos:

  • Decimal: Se almacena como cadena
  • Bool: 0 o 1
  • TinyInt: Con signo desde -128 a 127, sin signo desde 0 a 255.
  • SmallInt: Con signo el rango va desde -32768 a 32767. Sin signo, de 0 a 65535.
  • MediumInt: Con signo va desde -8.388.608 a 8.388.607. Sin signo desde 0 a 16.777.215.
  • Int: Con signo va desde -2.147.483.648 a 2.147.483.647. Sin signo desde 0 a 4.294.967.295
  • BigInt: Con signo va desde -9.223.372.036.854.775.808 a 9.223.372.036.854.775.807. Sin signo desde 0 a 18.446.744.073.709.551.615
  • Float: Los valores válidos van desde -3.402823466 e+38 a -1.175494351 e-38, 0 (cero) y desde 1.175494351 e- 38 a 3.402823466 e+38.
  • Double: Los valores van desde -1.7976931348623157 e+308 a -2.2250738585072014 e-308, 0 (cero) y desde 2.2250738585072014 e-308 a 1.7976931348623157 e+308
Fecha:
  • Date: El rango de valores va desde el 1 de enero del 1001 al 31 de diciembre de 9999.
  • DateTime: El rango va desde el 1 de enero del 1001 a las 0 horas, 0 minutos y 0 segundos al 31 de diciembre del 9999 a las 23 horas, 59 minutos y 59 segundos
  • TimeStamp: El rango va desde el 1 de enero de 1970 al año 2037
  • Time: El rango de horas va desde -838 horas, 59 minutos y 59 segundos a 838, 59 minutos y 59 segundos
  • Year: El rango de valores va desde el año 1901 al año 2155.
Cadena:
  • Char:  La cadena podrá contener desde 0 a 255 caracteres.
  • Varchar:  La cadena podrá contener desde 0 a 255 caracteres.
  • Blob:  Los cuatro tipos BLOB son TINYBLOB, BLOB, MEDIUMBLOB, y LONGBLOB.
  • Text:  Los cuatro tipos TEXT son TINYTEXT, TEXT, MEDIUMTEXT, y LONGTEXT.
  • Servicios:
    • Servicios disponibles por el DBMS, para la ejecución de sus funcionalidades
    • Descripción general de cada servicio, que indique para qué funcionalidad es requerido 
    • Especificación de la edición del DBMS en la que viene incluido el servicio
MYSQL
ORACLE
  •  Gestión de Conexiones: Es responsable de mantener las múltiples conexiones de los clientes, por otro lado, se puede configurar el límite en el número de conexiones y también se implementa un pool de conexiones.
  • Conectores: Son bibliotecas en diferentes lenguajes de programación que permiten la conexión ya sea remota o local con servidores MYSQL y la ejecución de consultas
  • MySQL toma una serie de decisiones, que pueden incluir el determinar el orden de lectura de las tablas, el uso de ciertos índices, o la re-escritura de la consulta en una forma más eficiente.


  •  Motores De Almacenamiento:  El control de concurrencia en un gestor de bases de datos es simplemente el mecanismo que se utiliza para evitar que lecturas o escrituras simultáneas a la misma porción de datos terminen en inconsistencias o efectos no deseados.

  • Sistema de gestión de la memoria: Su función es que haya suficiente memoria para que el RDBMS funcione eficazmente y a la vez nunca dejar menos memoria de la que necesita el Sistema Operativo para que la máquina funcione.


  • Gestión de Entrada y Salida: Para conseguir que los accesos a los datos sean adecuados.          


  • Procesador de Lenguajes: Para interpretar las instrucciones SQL (o de otros lenguajes válidos) que los usuarios lanzan a la base de datos.   


  • Control de procesos. Gestiona los programas en ejecución necesarios para el funcionamiento de la base de datos.
  • Control de la red: Para gestionar las conexiones a la base de datos desde la red y evitar problemas a la base de datos en caso de desconexión.
  • : Permite gestionar las transacciones (series de operaciones que se pueden anular o llevar a cabo al final.
  • MySQL Standard Edition
  • MySQL Enterprise Edition
  • MySQL Classic Edition
  • MySQL Community Edition
  • MySQL Cluster CGE
  • MySQL Embedded (OEM/ISV)




  • Enterprise Edition (EE).
  • Standard Edition (SE).
  • Standard Edition 
  • One
  •  (SE2)
  •  (XE).
  •  (PE).
  •  (LE).


















































  • Bases de datos del sistema
    • Bases de datos del sistema y bases de datos que se cargan por defecto en la instalación del DBMS
    • Descripción de cada una de las bases de datos (funcionalidad o uso)
MYSQL
ORACLE
   
Cada conjunto de relaciones que componen un modelo completo forma una base de datos. Desde el punto de vista de SQL, una base de datos es sólo un conjunto de relaciones (o tablas), y para organizarlas o distinguirlas se accede a ellas mediante su nombre. A nivel de sistema operativo, cada base de datos se guarda en un directorio diferente.



Una Base de Datos Oracle es un conjunto de datos almacenado y accesible según el formato de tablas relacionales. Una tabla relacional tiene un nombre y unas columnas y su definición. Los datos están almacenados en las filas.
Una Base de Datos Oracle está almacenada físicamente en ficheros, y la correspondencia entre los ficheros y las tablas es posible gracias a las estructuras internas de la BD, que permiten que diferentes tipos de datos estén almacenados físicamente separados. 

Bases de Datos Creada por defecto:
  •  Information_schema
  • MySQL

Por defecto

Resultado de imagen para show databases
  • Proceso de instalación
    • Requerimientos de sw y hw mínimos
    • Descripción de proceso y captura de imágenes de instalación
Resultado de imagen para MySQL y Oracle Requerimientos de sw y hw mínimos

Descargamos el instalador o insertamos el cd de instalación 
Tras seleccionar la ruta de los ficheros en donde se va a instalar Oracle hacemos clic en Siguiente.
 A continuación seleccionaremos el tipo de instalación que deseemos(si es que solo queremos la base de datos damos clic en la primera opción):

 A continuación seleccionaremos el tipo de instalación que deseemos:
Seleccionamos el uso que le vamos a dar a nuestra base de datos, generalmente se marca la primera opción: 
Seleccionamos el puerto que por defecto es el 2030:
Especificamos como se llamara la base y la dirección de la misma.
Tras la instalación de Oracle y la creación de la base de datos aparecerá una ventana indicando que el proceso de instalación ha finalizado:
MySQL:
Ejecutamos el instalador del software y de le damos clic en Siguiente:
Aceptamos términos y licencias:
La instalación típica es la mas sencilla y puede cumplir nuestros propósitos:
Optamos por Detailed Configuration, de modo que se optimice la configuración del servidor MySQL.
Dependiendo del uso que vayamos a darle a nuestro servidor deberemos elegir una opción u otra, cada una con sus propios requerimientos de memoria:
Deja ambas opciones marcadas, tal como vienen por defecto. Y seleccione el puerto 3306:
Dejar la opción marcada, tal como viene por defecto y seleccionar el motor de la base de datos arranque por defecto y esté siempre a nuestra disposición. La alternativa es hacer esto manualmente. 
Última etapa: listos para generar el fichero de configuración y arrancar el servicio.
Referencias:

lunes, 5 de diciembre de 2016

Funciones de Agregación
Son funciones que toman una colección de valores como entrada y producen un único valor de salida.
COUNT(atributo)

  • Devuelve el número de tuplas o valores especificados en una consulta para el atributo indicado. 
  • Se puede utilizar como atributo *.
  • SUM(atributo), MAX(atributo), MIN(atributo), AVG(atributo). 
  • Se aplican a valores numéricos y devuelven la suma, el máximo, mínimo y media de los atributos indicados. 
  • Se pueden utilizar en la cláusula SELECT o en el HAVING. 
  • En el SELECT no pueden aparecer otros atributos a menos que se incluyan en el GROUP BY.
Ejemplos: 
¿Cuántas películas ha protagonizado Mickey Mouse?
SELECT COUNT(*) FROM pelicula P, protagoniza S, actor A WHERE P.titulo = S.titulo_pelicula AND P.anio = S.anio_pelicula AND A.nombre = S.nombre_actor AND A.nombre = ‘Mickey Mouse’

SELECT SUM (sueldo), MAX (sueldo), MIN(sueldo) AVG(sueldo) FROM empleado  SELECT COUNT (*) FROM empleado  SELECT COUNT(DISTINCT sueldo) FROM empleado

Subconsultas

  • En general se admiten varios niveles de anidación.
  • Para evitar la ambigüedad los atributos sin cualificar siempre se referirán a las relaciones declaradas en la consulta más interna. 
  • Para evitar problemas es aconsejable cualificar los atributos y utilizar alias para las relaciones.
SELECT nombre
FROM empleado
WHERE sueldo > SELECT sueldo
                              FROM empleado
                              WHERE dpto = 5

Operadores de Subconsultas
EXISTS (subconsulta)

  • Se utiliza para comprobar si el resultado de una consulta anidada es vacio. 
  • Devuelve true si la tabla no es vacía, en otro caso devuelve falso. 

NOT EXISTS (subconsulta)

  • Se utiliza para comprobar si el resultado de una consulta anidada no es vacio. 
  • Devuelve true si la tabla es vacía, en otro caso devuelve falso. 

atributo operador_comparación ALL (subconsulta)

  •  Se utiliza para comparar, mediante alguno de los operadores de comparación, si el valor de un atributo es mayor, menor, igual, … que todos los valores de un determinado conjunto de valores. 
  •  La subconsulta debe devolver una lista de valores. 

Atributo operador_comparación ANY (subconsulta)

  • Es similar al operador ALL, lo único que lo diferencia es que el valor del atributo únicamente tiene que ser igual, menor, mayor, … que al menos uno de los valores del conjunto. 
  • La subconsulta debe devolver una lista de valores.
Group By
  • Se utiliza para formar agrupaciones de tuplas en función de los valores de uno o varios atributos. 
  • Se utiliza con funciones de agregación. 
  • No es necesario utilizar WHERE. 
  • Como resultado en el SELECT, sólo pueden aparecer funciones de agregación o los atributos que aparecen en GROUP BY. … GROUP BY at1 , at2 , …, atn , … 
Ejemplo:
SELECT dpto, COUNT(*), AVG(sueldo) FROM empleado GROUP BY dpto

Having:

  • Se utiliza siempre con GROUP BY. 
  • Impone condiciones sobre los grupos formados previamente en GROUP BY. 
  • Las condiciones son similares a las utilizadas en WHERE, pero se pueden utilizar funciones de agregación. 
  • Mientras que WHERE impone condiciones a las tuplas , HAVING impone condiciones los grupos.