Sie sind auf Seite 1von 75

Tema 3

Sistemas gestores de base de datos

Tema 3 Sistemas gestores de base de datos

Contenidos

Conceptos

Motores de base de datos de uso más frecuente

Proveedores de acceso a datos

Comunicación en arquitecturas de 3 capas

SGBD. Conceptos

Se define base de datos a la información perteneciente a un mismo contexto almacenada de forma organizada en ficheros.

¿ Una biblioteca puede considerarse una base de datos ?

SI, pues esta compuesta por documentos, textos impresos y papel de forma organizada e indexada.

SGBD. Conceptos

Dato. Es un trozo de información concreta

Tipo de dato. Indica la naturaleza del dato.

Campo. Es un espacio de almacenamiento para un dato en particular.

Registro. Colección de datos(campos) referentes a un mismo concepto.

Campo Clave. Campo esencial que identifica de forma única a cada registro.

SGBD. Conceptos

Tabla. Conjunto de registros bajo un mismo nombre. Ejemplo:

clientes

Consulta. Instrucción para hacer peticiones a una base de datos.

Índice. Estructura que almacena los campos clave para facilitar la búsqueda de registros.

Vista. Transformación de la tabla para obtener una nueva tabla virtual.

SGBD. Conceptos

Informe. Listado ordenado de los campos y registros seleccionados en un formato fácil de leer.

Procedimientos. Son scripts o conjunto de instrucciones ejecutados de forma ordenada.

SGBD. Conceptos

Las bases de datos están organizadas a su vez en tablas que almacenan la información específica de algún objeto.

A su vez estás tablas se relacionan entre si formando vínculos o relaciones entre ellas. Se conocen como relaciones derivadas, las cuales mantienen la información de los diversos objetos de forma ordenada y coherente.

SGBD. Conceptos

Cada tabla que tiene la BD es una estructura similar a una hoja de cálculo, formada por filas y columnas.

A cada fila se le denomina registro, Cada columna es un campo con un nombre definido,

Y la intersección del campo con el registro correspondiente se le denomina celda.

SGBD. Conceptos

¿Se considera a Excel una base de datos.?

SI

SGBD. Conceptos

¿Cuál es la Base de datos que más futuro tiene y con un gran crecimiento en los últimos años?

Redes Sociales

Ejercicio.

Buscar las bases de datos más grandes actualmente

Año 2018

Tamaño estimado

 

 

 

 

 

Conceptos

Las bases de datos más grandes del mundo (2007):

1. WDCC (World Data Centre for Climate ). 220 Terabytes de información y 6 Petabytes adicionales.

2. NERSC (National Energy Research Scientific Computing Center). El NERSC se dedica a investigar sobre distintos tipos de energía. Su base de datos tiene 2.8 Petabytes.

3. AT&T. Compañía de telecomunicaciones que almacena 323 Terabytes de información.

4. Google. Se estima que recibe 91 millones de consultas al día en aumento. Se estima en cientos de TBytes

Conceptos

Evolución de la base de datos del WDCC

Conceptos Evolución de la base de datos del WDCC

SGBD. Conceptos

¿Donde se alojan las bases de datos enormes que tienen estas empresas?

En un DataCenter

SGBD. Datacenter

SGBD. Datacenter

SGBD. Uso

¿Quién utiliza las bases de datos?

Existen cuatro perfiles que pueden hacer uso de las bases de datos:

Administrador

Diseñadores

Programadores de aplicaciones

Usuarios finales

SGBD. Uso

¿Para que se utilizan las bases de datos?

SGBD. Uso ¿Para que se utilizan las bases de datos?

SGBD. Clasificación

La clasificación tradicional de la base de datos establece cinco modelos de bases de datos:

Jerárquicos

En red

Relacional

Orientado a objetos

Deductivo

SGBD. Clasificación

Modelo Jerárquico

SGBD. Clasificación Modelo Jerárquico

SGBD. Clasificación

Modelo de red

SGBD. Clasificación Modelo de red

SGBD. Clasificación

Modelo relacional

SGBD. Clasificación Modelo relacional

SGBD. Clasificación

Modelo orientado a objetos. Datos almacenados como objetos

SGBD. Clasificación Modelo orientado a objetos. Datos almacenados como objetos

SGBD. Integridad referencial

La integridad referencial es una propiedad deseable en las bases de datos.

Gracias a la integridad referencial se garantiza que una entidad (registro) siempre se relaciona con otras entidadas válidas, es decir, que existen en la base de datos. Implica que en todo momento dichos datos sean correctos, sin repeticiones innecesarias, datos perdidos y relaciones mal resueltas.

SGBD. Normalización

El proceso de normalización de una base de datos consiste en aplicar una serie de reglas a las relaciones obtenidas.

Las bases de datos relacionales se normalizan para:

Evitar la redundancia de los datos.

Disminuir problemas de actualización de los datos en las tablas.

Proteger la integridad de los datos.

SGBD. Modelo relacional

Fue desarrollado por Codd en 1970.

El usuario lo percibe como un conjunto de tablas a nivel lógico.

Sin embargo, a nivel físico puede estar implementado mediante diferentes estructuras de almacenamiento.

SGBD. Modelo relacional

El lenguaje para construir las consultas de una base de datos relacionales es SQL (Structured Query Language), traducido como lenguaje estructurado de consultas.

El lenguaje SQL lo desarrollo IBM, unos años después de lanzar su motor de bases de datos DB2 en1980.

SGBD. Modelo relacional

Utiliza tablas bidimensionales (relaciones) para representación lógica de los datos y las relaciones que hay entre ellos.

Además, el nombre de cada tabla tiene que ser único y contiene un conjunto de columnas.

SGBD. Modelo relacional

Requisitos que cumplen las tablas:

Todos los registros deben ser del mismo tipo

No existen campos o atributos repetidos.

No existen registros duplicados

No existe orden en el almacenamiento de los registros.

Cada registro es identificado por una clave que puede estar formado por uno o varios campos.

SGBD. Modelo relacional

SGBD. Modelo relacional

SGBD. Modelo relacional

SGBD. Modelo relacional

SGBD. Objetivos

Los objetivos principales de un SGBD ó DBMS se podrían resumir como:

Facilitar la consulta de la información,

Proporcionar eficiencia y seguridad para actualizar/insertar datos en la base de datos.

Poder recuperar fácilmente la información.

Manipular grandes cantidades de información.

SGBD. Modelo relacional

SGBD. Modelo relacional

SGBD. Objetivos

El SGBD permite a los usuarios la creación y el mantenimiento de una base de datos, facilitando la definición, construcción y manipulación de la información contenida en éstas.

Definir una base de datos consistirá en especificar los tipos de datos, las estructuras y las restricciones que los datos han de cumplir a la hora de almacenarse en dicha base.

SGBD. Objetivos

La manipulación de la base de datos incluirá la posibilidad de realización de consultas para recuperar información específica, la actualización de los datos y la generación de informes a partir de su contenido

SGBD. Linux

ORACLE

MySQL

PGSQL

(Código abierto)

SGBD. Windows

ORACLE

MySQL

Microsoft SQL Server

Microsoft SQL Server Express (Gratuita)

(Código abierto)

SGBD. Recomendaciones de seguridad

Atacar a los servidores de base de datos es uno de los principales objetivos de los piratas informáticos.

Uno de los ataques más utilizados consiste en la inyección de código SQL (SQL Injection)

de los piratas informáticos. Uno de los ataques más utilizados consiste en la inyección de código

SGBD. Recomendaciones de seguridad

Identificación de datos sensibles.

Evaluación de la vulnerabilidad y la configuración

Endurecimiento del servidor

Auditorías

Monitorización

Autenticación y control de accesos

SGBD. Recomendaciones de seguridad

Identificación de datos sensibles.

Es necesario realizar un catálogo de las tablas o datos más sensibles y críticos, con objeto de prestar sobre ellos una atención especial bajo la perspectiva de la seguridad

SGBD. Recomendaciones de seguridad

Evaluación de la vulnerabilidad y la configuración.

Asegurar la no existencia de agujeros de seguridad o puertas de entrada:

Limitar el acceso a los procedimientos por perfiles de usuario

Limitar el acceso a los datos por perfiles de usuario

SGBD. Recomendaciones de seguridad

Endurecimiento del servidor.

Se define como endurecimiento de una base de datos a la aplicación de un conjunto de políticas y acciones para hacer de dicha base de datos un sistema más robusto frente a fallos y ataques.

Se deben suprimir todas las opciones y funciones que no vayan a utilizarse

SGBD. Recomendaciones de seguridad

Auditorías. Realización de auditorías de seguridad:

Implementar alertas sobre cambios en la configuración

Analizar las comunicaciones

Comprobar los privilegios de los usuarios

SGBD. Recomendaciones de seguridad

Monitorización.

La monitorización en tiempo real de la actividad de la base de datos es clave para detectar posibles agujeros de seguridad.

SGBD. Recomendaciones de seguridad

Autenticación y control de accesos.

No todos los usuarios deben ser creados con los mismos privilegios y derechos sobre la base de datos. Es necesario revisar con cierta frecuencia los privilegios de los usuarios y aplicaciones que ejecutan consultas sobre el servidor.

SGBD. T-SQL - SELECT

La sentencia SELECT nos permite consultar los datos almacenados en una tabla de la base de datos.

SELECT [ALL | DISTINCT] Lista de campos

FROM

Tabla [WHERE] Condición [ORDER BY] Lista de campos

SGBD. T-SQL - DELETE

La sentencia DELETE nos permite borrar los datos almacenados en una tabla de la base de datos.

DELETE

FROM

Tabla

[WHERE]

Condición

SGBD. T-SQL - UPDATE

La sentencia UPDATE nos permite actualizar los datos almacenados en una tabla de la base de datos.

UPDATE Tabla

SET Campo=valor

[WHERE]

Condición

SGBD. T-SQL - INSERT

La sentencia INSERT nos permite insertar datos para almacenarlos en una tabla de la base de datos.

INSERT INTO Tabla

VALUES

(valor1,valor2…)

SGBD. T-SQL - TRANSACCIONES

Una transacción es un conjunto de operaciones Transact SQL que se ejecutan como un único bloque, es decir, si falla una operación fallan todas.

Si una transacción tiene éxito, todas las modificaciones de los datos realizadas durante la transacción se confirman y se convierten en una parte permanente de la base de datos.

Si una transacción encuentra errores y debe cancelarse o revertirse, se borran todas las modificaciones de los datos.

SGBD. T-SQL - TRANSACCIONES

Validación de una transacción BEGIN TRANSACTION

---------

---------

COMMIT

SGBD. T-SQL - TRANSACCIONES

Anulación de una transacción BEGIN TRANSACTION

---------

---------

ROLLBACK

SGBD. T-SQL - BLOQUEOS

Debido al uso de transacciones el sistema puede encontrarse con el problema de que un proceso (A) intenta modificar o leer un registro que ha sido modificado por otro proceso (B) cuya transacción no ha finalizado.

El problema está en que podría darse el caso de

que esa transacción no terminara de forma satisfactoria (commit) sino que tuvieran que anularse los cambios producidos en ese registro.

SGBD. T-SQL - BLOQUEOS

¿Que se supone que debería hacer SQL cuando intentamos leer ese registro?

SGBD. T-SQL - BLOQUEOS ¿Que se supone que debería hacer SQL cuando intentamos leer ese registro?

SGBD. T-SQL - BLOQUEOS

1. ¿Mostrar el valor anterior a la actualización producida por el proceso que está en curso (B)?

2. ¿Mostrar el valor modificado por el proceso (B)?

SGBD. T-SQL - BLOQUEOS

Sql-Server generará un bloqueo en el momento en que el proceso (B) modifique el registro de manera que el proceso (A) esperará a que (B) termine (bien o mal) para poder continuar.

De esta forma nos aseguramos de que el proceso (A) se basará en datos correctos y no pondremos en peligro la consistencia de los mismos.

SGBD. T-SQL – INICIOS DE SESION

SGBD. T-SQL – INICIOS DE SESION

SGBD. T-SQL – INICIOS DE SESION

SGBD. T-SQL – INICIOS DE SESION

SGBD. T-SQL – INICIOS DE SESION

SGBD. T-SQL – INICIOS DE SESION

SGBD. T-SQL – ROLES DEL SERVIDOR

SQL Server proporciona roles de nivel de servidor para ayudar a administrar los permisos de un servidor. Estos roles son entidades de seguridad que agrupan otras entidades de seguridad. Los roles de nivel de servidor se aplican a todo el servidor en lo que respecta a su ámbito de permisos.

(Los roles son como los grupos del sistema operativo Windows.)

SGBD. T-SQL – ROLES DEL SERVIDOR

ROLES

PERMISOS

sysadmin

Los miembros del rol pueden realizar cualquier actividad en el servidor

serveradmin

Los miembros del rol pueden cambiar las opciones de configuración del servidor y apagarlo.

securityadmin

Los miembros del rol administran los inicios de sesión y sus propiedades. Asimismo, pueden restablecer las contraseñas para los inicios de sesión de SQL Server.

processadmin

Los miembros del rol pueden finalizar los procesos que se ejecuten en una instancia de SQL Server.

dbcreator

Los miembros del rol pueden crear, modificar, quitar y restaurar cualquier base de datos.

public

Cada inicio de sesión de SQL Server pertenece al rol de servidor public.

SGBD. T-SQL – Relaciones entre tabla

Relaciones uno a varios

Relaciones uno a uno

Relaciones varios a varios

SGBD. T-SQL – Relaciones entre tabla

SGBD. T-SQL – Relaciones entre tabla

SGBD. T-SQL – Relaciones entre tabla

Relaciones uno a varios

SGBD. T-SQL – Relaciones entre tabla Relaciones uno a varios

SGBD. Planes de mantenimiento

En SQL Server, los planes de mantenimiento crean un paquete de acciones, que ejecutan de forma secuencial.

Los planes de mantenimiento se pueden ejecutar manual o automáticamente a intervalos programados.

SGBD. Planes de mantenimiento. Tareas

Reorganizar datos

Comprimir archivos

Actualizar estadísticas

Realizar comprobaciones

Realizar copias de seguridad

SGBD. Planes de mantenimiento. Tareas

Reorganizar los datos de las páginas de datos y de índices mediante una nueva generación de los índices

Al volver a crear índices se asegura que las páginas de la base de datos contienen una cantidad de datos y espacio disponible distribuidos por igual.

También permite un crecimiento más rápido en el futuro.

SGBD. Planes de mantenimiento. Tareas

Comprimir archivos de datos mediante la eliminación de las páginas de base de datos que estén vacías.

SGBD. Planes de mantenimiento. Tareas

Actualizar las estadísticas de los índices para asegurarse de que el optimizador de consultas dispone de información actualizada acerca de la distribución de los valores de los datos en las tablas.

Esto permite al optimizador de consultas elegir el método más adecuado para obtener acceso a los datos, ya que dispone de más información acerca de los datos almacenados en la base de datos.

Aunque SQL Server actualiza periódicamente las estadísticas de los índices de forma automática, esta opción puede obligar a que se actualicen inmediatamente.

SGBD. Planes de mantenimiento. Tareas

Realizar comprobaciones de coherencia interna de los datos y de las páginas de datos de la base de datos para asegurarse de que no se han dañado debido a un problema de software o del sistema.

SGBD. Planes de mantenimiento. Tareas

Realizar copias de seguridad de la base de datos y de los archivos de registro de transacciones.

Las copias de seguridad de la base de datos y del registro pueden mantenerse durante un período especificado. Esto le permite crear un historial de copias de seguridad para utilizarlo si tiene que restaurar la base de datos a una fecha anterior a la de la última copia de seguridad de la base de datos.

También puede realizar copias de seguridad diferenciales.

SGBD. Planes de mantenimiento. Tareas

SGBD. Planes de mantenimiento. Tareas

SGBD. Cadenas de conexión

Especifica cómo conectarnos a una base de datos desde una aplicación informática. Está formada por varios parámetros que definen una cadena de texto. Los más importantes son:

Integrated Security. Seguridad Windows o Sql

Initial Catalog. Nombre de la base de datos

DataSource. Servidor/instancia de la base de datos

User. Usuario de la base de datos

Password. Password del usuario

SGBD. Cadenas de conexión

Especifica cómo conectarnos a una base de datos desde una aplicación informática.

Conexión con seguridad integrada

"Persist Security Info=False;Integrated Security=true; Initial

Catalog=Prueba;DataSource=MSSQL1"

"Persist Security Info=False;Integrated Security=true; Initial Catalog=Prueba;DataSource=(local)"

SGBD. Cadenas de conexión

Conexión con seguridad SqlServer

"Persist Security Info=False;Integrated Security=false; Initial Catalog=Prueba;DataSource=(local);

user=sa;password=admin1$"

SGBD. Proveedores de acceso a datos

ODBC : Open Database Connectivity

JDBC : Java Database Connectivity

OLE DB : Object Linking and embedding

Sql Server Client : . Net