domingo, 11 de diciembre de 2016

DBMS ORACLE Y MYSQL

DBMS Oracle y MySQL
MySQL
  • 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
Servicios de MySQL
Nombre
Descripción
Edición
Net start MySQL
Inicia la base de datos
MySQL 5.7
Net stop MySQL
Parar el servidor MySQL
MySQL 5.7
MySQLD
Inicializa el servidor en la instalación
MySQL 5.7
  • 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)
Bases de datos
Sistema
MySQL es una base de datos veloz en la lectura cuando utiliza el motor no transaccional MyISAM
Por defecto
En MySQL se instalan los servicios, paquetes y bases necesarias por defecto.
  • Proceso de instalación
    • Requerimientos de sw y hw mínimos
Los requerimientos de Software y Hardware mínimos para Oracle y MySQL están determinados dentro de la siguiente tabla:

Resultado de imagen para MySQL y Oracle Requerimientos de sw y hw mínimos

    • Descripción de proceso y captura de imágenes de instalación

Descargar MySQL de la página oficial y elegir el sistema operativo.



Aceptar los términos y condiciones de MySQL


Escoger el tipo de configuración:


Instalar MySQL en las diferentes aplicaciones compatibles:



Configurar una clave de usuario administrador, además se pueden agregar usuarios según sea el caso.


Conectarse al servidor:


  • Tipos de datos
    • Tipo de dato (numérico, texto, fechas, etc.)
En MySQL existen tipos de datos numéricos, tipo fecha y tipo cadena.
    • Nombre del tipo de dato (float, int, char(), varchar(), etc)
Numéricos: TinyInt, Bool, SmallInt, MediumInt, Int, BigInt, Float, Double, Decimal.
Fecha: Date, DateTime, TimeStamp, Time, Year.
Cadena: Char, Varchar, Blob, Text.
    • Número de bytes utilizados por cada tipo de dato
La cantidad de bytes utilizados varía según la especificación:

Numéricos:



Fecha:




Cadena: 


    • Valores permitidos para cada tipo de dato, valor máximo y mínimo
MySQL:

Numéricos
  • TinyInt: Con signo desde -128 a 127, sin signo desde 0 a 255.
  • Bool: 0 o 1
  • 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
  • Decimal: Se almacena como cadena
  • 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.
  • 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.


ORACLE
  • 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
Servicios de ORACLE
Nombre
Descripción
Edición
Service_id
Servicio ID
Database 12.1
Name
Indica el nombre del servicio que se va a ejecutar
Database 12.1
Network_Name
Indica la red
Database 12.1
Creation_Date
Muestra la fecha en la que se creó la base
Database 12.1
DTP
Bandera para los servicios
Database 12.1
Goal
Gestiona la carga de la base
Database 12.1
Clb_Goal
Equilibrio de carga de conexión
Database 12.1
Stait_Id
Muestra las estadísticas
Database 12.1
Stait_Name
Nombre de la estadística
Database 12.1
Value
Microsegundos acumulados en la estadística
Database 12.1
Total_Timeouts
Tiempo de ejecución en un evento
Database 12.1
  • 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)
Bases de datos
Sistema
ORACLE es uno de los sistemas de bases de datos más completos, se destaca el soporte en las transacciones, su estabilidad, escalabilidad y su soporte en multiplataforma.
Por defecto
En MySQL se instalan los servicios y bases necesarias por defecto.
  • Proceso de instalación
    • Requerimientos de sw y hw mínimos
Los requerimientos de Software y Hardware mínimos para Oracle y MySQL están determinados dentro de la siguiente tabla:

Resultado de imagen para MySQL y Oracle Requerimientos de sw y hw mínimos

  • Tipos de datos
Referencias:


miércoles, 23 de noviembre de 2016

Bases de datos SQL

Orígenes y Evolución: 

  • Entre 1974 y 1975 se implementó en un prototipo llamado SEQUEL-XRM.
  • Entre 1976 y 1977, condujeron a una revisión del lenguaje (SEQUEL/2)
  • Cambió de nombre por motivos legales. convirtiéndose en SQL.
  • A partir de 1981, IBM comenzó a entregar sus productos relacionales
  • En 1983 empezó a vender DB2
  • En 1986, el ANSI adoptó SQL como estándar para los lenguajes relacionales.
  • En 1987 se transformó en estándar ISO, con el nombre de SQL/86.
  • Luego se presento la versión SQL/89.
  • En 1992 se lanza un nuevo estándar ampliado y revisado del SQL llamado "SQL-92"
  • SQL3 nuevo estándar de SQL en 1999, después de más de 7 años de debate.

Resultado de imagen para sql linea de tiempo origenes y evolucion

Funciones de SQL:

DDL: Data Definition Language
  • Creación de estructuras de la base de datos.
  • Integridad de los datos. 
  • Se tienen tres comandos:
    • Create: Crear un objeto. Ej. CREATE DATABASE nombreDB
    • Alter: Modificar un objeto. 
    • Drop: Eliminar un objeto. (Eliminar Tablas)
DML: Data Manipulation Language
  • Recuperación de datos.
  • Manipulación de datos.
  • Se tienen cuatro comandos:
    • Insert: Insertar datos dentro de una tabla. Ej. CREATE DATABASE nombreDB
    • Update: Actualizar datos dentro de una tabla. 
    • Delete: Borrar datos dentro de una tabla. (No se borra la tabla).
    • Select: Comando de consulta de datos
DCL: Data Control Language
  • Control de acceso.
  • Compartición de datos.
  • Se tienen dos comandos:
    • Grant: Otorga permisos sobre lo que queramos.
    • Revoke: Eliminar o quitar permisos.
Roles SQL:



Invocación de SQL 

Invocación Directa o Interactiva:
  • La sentencia es invocada desde el terminal.
  • Los datos devueltos se presentan en pantalla.
  • El resultado puede ser:
    • Un valor
    • Una lista de valores
    • Una tabla
    • Vacío
Invocación desde programa: „ 

  • La sentencia se invoca como parte de la ejecución del programa.
  • Los datos devueltos se recogen en una área de entrada del rea de entrada del programa.
Ventajas de SQL 
  • Independencia de los fabricantes 
  • Portabilidad a cualquier tipo de plataforma
  • SQL está estandarizado
  • Basado en el modelo relacional 
  • Lenguaje de alto nivel
  • Consultas interactivas ad-hoc 
  • Utilización en Lenguaje de programación 
  • Múltiples vistas de los datos 
  • Lenguaje de base de datos 
  • Definición dinámica de datos 
  • Arquitectura cliente/servidor
Tipos de Datos:


Creación de Dominios:
  • Los dominios se pueden utilizar como tipos de datos.
  • Permite Cambiar el tipo simultáneamente a varios atributos.
CREATE DOMAIN dominio [AS] tipodatos 
[DEFAULT valor_defecto] 
[CHECK condicion]

Operadores:
  • Comparación: =, <>, <, >, <=, >=, IS NULL
  • Lógicos: AND, OR, NOT
  • Intervalos: BETWEEN … AND...Ej.( BETWEEN 90 AND 95)
  • Cadenas de texto: LIKE Ej. (apellido LIKE ‘%nandez%’)
  • Conjuntos: IN Ej. color IN (‘Red’, ‘Blue’)
Creación de Tablas:
  • Se utiliza el comando CREATE TABLE
    • Al crear la tabla se puede indicar el esquema en el que se crea: nombre_esquema.nombre_tabla
  • Se especifican los atributos de la relación y sus tipos.
  • Se especifica la clave primaria.
  • Se especifica las restricciones de integridad.
  • Se especifica la integridad referencial.

Restricciones de columna:
  • UNIQUE „ 
  • NOT NULL 
  • DEFAULT < valor_por_defecto>
  • CHECK (condicion) „ 
  • PRIMARY KEY 
  • REFERENCES nombre_tabla(nombre_atributo) accion_referencial 

Restricciones de tabla:
  • UNIQUE „ 
  • PRIMARY KEY 
  • FOREIG KEY
  • CHECK 
Acciones Referenciales
  • ON UPDATE 
  • ON DELETE
  • RESTRICT
    • Si no se especifica nada, se considera RESTRICT
Borrado de tablas:

Se utiliza el comando:


  • Si se utiliza CASCADE CONSTRAINT, se elimina la tabla y sus restricciones.
  • Si no se utiliza CASCADE CONSTRAINT y si la tabla tiene restricciones, no se elimina, por lo que hay que eliminar primero las restricciones.
  • Al eliminar una tabla, se eliminan los datos almacenados.
Modificar una Tabla:


  • Acciones de modificación
    • Añadir atributos
      • ADD nuevo_atributo tipo restricciones 
        • „Las restricciones sólo pueden ser NOT NULL, CHECK y DEFAULT
        • „Un atributo NOT NULL sólo se puede añadir a una tabla si esta vacía
    • „Borrar atributos
      • DROP (nombre_atributo, …)
      • DROP COLUMN nombre atributo [CASCADE CONSTRAINT] [CASCADE CONSTRAINT]
    • „Modificar atributos
      • MODIFY nombre_atributo nuevo_tipo restricciones
        • „Se puede cambiar el tipo o disminuir el tamaño de un atributo si todas las tuplas tienen ese campo vacío
        • „Un atributo existente se puede hacer NOT NULL si todas las tuplas tienen valor en ese atributo
        • „ Si no se especifica algo en la modificación, permanece como estaba
Inserción de Datos:
  • Introduce información en la tabla y atributos indicados.
  • El orden y el tipo de los atributos debe coincidir con el orden y tipo de los valores.
  • Los valores se pueden obtener mediante una consulta.
  • Si un atributo no se indica, toma valor null.

  • Si se omite la lista de atributos, los valores se almacenan de acuerdo al orden de definición de los mismos en el CREATE TABLE.
  • Los tipos de la lista de valores deben coincidir con los tipos de definición en el CREATE TABLE

Modificación de datos:



  • Actualiza en la tabla indicada los valores del atributo siempre y cuando se cumpla la condición especificada.
  • Los valores se pueden obtener mediante una subconsulta o mediante fórmulas matemáticas.
  • Si no hay condición, se actualizan todas las filas de la tabla (PELIGRO).
Borrado de datos:


  • Borra de la tabla las tuplas que cumplen cierta condición.
  • Si no hay condición se borran todas las filas de la tabla (PELIGRO).
  • A diferencia de DROP TABLE no borra la estructura de la tabla.

Consulta de Datos:


  • Consulta valores de una o varias tablas de acuerdo a las condiciones impuestas en la sentencia.
  • Las únicas partes obligatorias son SELECT Y FROM, el resto son opcionales.
    • Si aparecen deben ir en el orden que aparecen en la sentencia.
    • HAVING solo puede aparecer si hay GROUP BY.
  • SELECT: se indican los atributos que se quieren obtener como erspuesta a la consulta.
  • FROM: indica la tabla o tablas que son necesarias para obtener la información.
  • WHERE: se indican las condiciones que deben cumplir las tuplas obtenidas como resultado de la consulta.
  • GROUP BY: se utiliza para formar grupos de datos en función de algún atributo.
  • HAVING: establece condiciones sobre los grupos que se formen.
  • ORDER BY: indica si muestra el resultado ordenado en función de algún atributo.
SELECT:
  • Lista de atributos separados por comas. 
    • SELECT at1 , at2 , …, atn … 
  • Se indican solamente aquellos atributos que queremos que aparezcan en el resultado. 
  • Se utiliza * si queremos todos los atributos de las tablas involucradas. 
    • SELECT * … 
  • Pueden aparecen filas duplicas. 
    • Para evitarlos se puede utilizar DISTINCT. 
    • SELECT DISTINCT lista_atributos … 
      • Sólo se obtienen como resultado filas no duplicadas para la combinación de los atributos que aparecen en el SELECT.
  • Los nombres de los atributos se pueden cambiar en el resultado de la consulta (alias de atributo) 
    • SELECT nombre_atributo [AS] nuevo_nombre …
FROM:
  • Lista de tablas que se utilizan en la consulta separadas por comas. 
    • …FROM tab1 , tab2 , …, tabn … 
  • Realiza el producto cartesiano (X) de las mismas 
  • Las condiciones (WHERE, GROUP BY) se imponen sobre el producto cartesiano 
  • Los atributos que aparecen en el SELECT se toman del producto cartesiano 
  • Dentro de la consulta una tabla se puede renombrar (alias de tabla) 
    • … FROM nombre_tabla nuevo_nombre_tabla … 
WHERE:
  • Indica las condiciones que deben cumplir las filas obtenidas como resultado. 
    • Si no aparece se recuperan todas las filas del producto cartesiano de las tablas que hay en el FROM. 
  • La condición es una expresión n booleana. 
    • Sólo se obtienen aquellas filas que cumplen la condición. 
  • Operadores para construir condiciones. 
    • Comparación: =, <>, >, <, >=, <= 
    • Lógicos: AND, OR, NOT.  
    • Matemáticos: +, -, *, / 
    • Otros: BETWEEN … AND, IN, LIKE  
JOIN:
  • No se realiza automaticamente. 
  • Hay que escribir la condición en la consulta. 
  • Si no se pone la condición de join, se obtiene el producto cartesiano (X). 
  • Escritura de join: 
    • Las tablas tienen que estar relacionadas mediante claves foráneas (atributos comunes). 
    • Igualar los atributos comunes de las tablas participantes en la consulta. 

Ambigüedades:
  • Cuando el mismo nombre de atributo aparece en más de una tabla: 
    • Hay que distinguir a que atributo se refiere. 
    • Se cualifica el atributo con el nombre de la tabla: nombre_tabla.nombre_atributo 

Alias en Tablas:
  • Cuando la misma relación se la usa más de una vez en la consulta. 
  • En ese caso se utilizan alias para las tablas. 


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.
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. 



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. 



Referencias:
  • Orígenes y Evolución de SQL. (Sin fecha). Recuperado el 23 de noviembre de 2016 de http://sql3.wikispaces.com/4.-+Or%C3%ADgenes+y+Evoluci%C3%B3n+de+SQL.
  • Características de SQL. (Sin fecha). Recuperado el 23 de noviembre de 2016 de http://aprende-web.net/progra/sql/sql_2.php
  • Óscar Marbán Gallego. (2012). SQL. Diciembre 5, 2016, de Facultad de Informática - UPM. Sitio web: http://pegaso.ls.fi.upm.es/BD/Documentacion/06-SQL.pdf