64
Unidad 3 – Administración Básica de Bases de Datos en el SGBD Programador de Bases de Datos Relacionales 1 Estructura Unidad 3 Administración Básica de Bases de Datos en el SGBD 1.Objetivos de Unidad y Apartados............................................................ 2 2.Apartado 3.1: Estructura Básica de un Servidor SQL................................ 4 2.1.LECCIÓN 3.1.1: INTRODUCCIÓN ....................................................................... 4 2.2.LECCIÓN 3.1.2: ARQUITECTURA DE UN SERVIDOR SQL ....................................... 16 2.3.LECCIÓN 3.1.3: GESTIÓN DE OBJETOS DE UNA INSTANCIA ................................... 21 2.4.LECCIÓN 3.1.4: ADMINISTRACIÓN DE LA SEGURIDAD ......................................... 24 3.Apartado 3.2: Estructura Avanzada de un Servidor SQL ........................ 33 3.1.LECCIÓN 3.2.1: GESTIÓN DEL ALMACENAMIENTO DE DATOS EN INSTANCIAS ........... 33 3.2.LECCIÓN 3.2.2: GESTIÓN DE IMPORTACIÓN Y EXPORTACIÓN DE DATOS .................. 40 4.Anexo I: Instalación de Microsoft SQL Server ........................................ 44 4.1.INSTALACIÓN DEL SERVIDOR SQL SERVER EXPRESS 2005 .................................... 45 4.2.INSTALACIÓN DEL CLIENTE MICROSOFT SQL SERVER MANAGEMENT STUDIO EXPRESS ......................................................... 46 4.3.CONFIGURACIÓN MÍNIMA DEL SERVIDOR......................................................... 46 5.Anexo II: Instalación y Configuración del Servidor Mysql ...................... 50 5.1.INTRODUCCIÓN: ......................................................................................... 50 5.2.INSTALACIÓN: ............................................................................................ 51 6.Anexo III: Instalación de un Administrador para Mysql ......................... 57 6.1.MYSQL GUI TOOLS .................................................................................... 58 6.2.PHPMYADMIN .......................................................................................... 59

E Un 3 GBD

  • Upload
    others

  • View
    22

  • Download
    0

Embed Size (px)

Citation preview

Page 1: E Un 3 GBD

Unidad 3 – Administración Básica de Bases de Datos en el SGBD

Programador de Bases de Datos Relacionales 1

EEssttrruuccttuurraa UUnniiddaadd 33 AAddmmiinniissttrraacciióónn BBáássiiccaa ddee BBaasseess ddee DDaattooss eenn eell SSGGBBDD

1.‐ Objetivos de Unidad y Apartados ............................................................ 2 

2.‐ Apartado 3.1: Estructura Básica de un Servidor SQL ................................ 4 

2.1.‐  LECCIÓN 3.1.1: INTRODUCCIÓN ....................................................................... 4 

2.2.‐  LECCIÓN 3.1.2: ARQUITECTURA DE UN SERVIDOR SQL ....................................... 16 

2.3.‐  LECCIÓN 3.1.3: GESTIÓN DE OBJETOS DE UNA INSTANCIA ................................... 21 

2.4.‐  LECCIÓN 3.1.4: ADMINISTRACIÓN DE LA SEGURIDAD ......................................... 24 

3.‐ Apartado 3.2: Estructura Avanzada de un Servidor SQL ........................ 33 

3.1.‐  LECCIÓN 3.2.1: GESTIÓN DEL ALMACENAMIENTO DE DATOS EN INSTANCIAS ........... 33 

3.2.‐  LECCIÓN 3.2.2: GESTIÓN DE IMPORTACIÓN Y EXPORTACIÓN DE DATOS .................. 40 

4.‐ Anexo I: Instalación de Microsoft SQL Server ........................................ 44 

4.1.‐  INSTALACIÓN DEL SERVIDOR SQL SERVER EXPRESS 2005 .................................... 45 

4.2.‐  INSTALACIÓN DEL CLIENTE MICROSOFT SQL SERVER MANAGEMENT STUDIO EXPRESS ......................................................... 46 

4.3.‐  CONFIGURACIÓN MÍNIMA DEL SERVIDOR ......................................................... 46 

5.‐ Anexo II: Instalación y Configuración del Servidor Mysql ...................... 50 

5.1.‐  INTRODUCCIÓN: ......................................................................................... 50 

5.2.‐  INSTALACIÓN: ............................................................................................ 51 

6.‐ Anexo III: Instalación de un Administrador para Mysql ......................... 57 

6.1.‐ MYSQL GUI TOOLS .................................................................................... 58 

6.2.‐  PHPMYADMIN .......................................................................................... 59 

Page 2: E Un 3 GBD

1.- OBJETIVOS DE UNIDAD Y APARTADOS

OBJETIVOS UNIDAD 3

Conocer de forma global los elementos que componen un servidor SQL.

Entender el funcionamiento combinado de los componentes de un servidor SQL.

Ser capaz de administrar la seguridad y el rendimiento de las bases de datos

alojadas en un servidor SQL

Ser capaz de gestionar el almacenamiento de datos de un servidor

Realizar tareas de importación y exportación de bases de datos, esquemas y

objetos

ADMINISTRACIÓN BÁSICA DE BASES DE DATOS EN EL SGBD

OBJETIVOS APARTADO 3.1

Exponer al alumno los elementos básicos que componen un servidor SQL

Entender el funcionamiento combinado de los elementos que componen un

servidor de bases de datos SQL

Ser capaz de entender el funcionamiento de un servidor de bases de datos en

una red TCP/IP

Ser capaz de optimizar el rendimiento del servidor de bases de datos mediante

la definición de diferentes instancias

Ser capaz de administrar la seguridad del servidor de bases de datos

ESTRUCTURA BÁSICA DE UN SERVIDOR SQL

Unidad 3 – Administración Básica de Bases de Datos en el SGBD

Programador de Bases de Datos Relacionales 2

Page 3: E Un 3 GBD

OBJETIVOS APARTADO 3.2

Conocer otros elementos auxiliares para el mantenimiento de servidores de

bases de datos SQL

Entender el funcionamiento del almacenamiento de datos en un servidor de

bases de datos

Conocer diferentes herramientas para optimizar el almacenamiento y acceso a

los datos en un servidor de bases de datos

Conocer las técnicas de importación y exportación de bases de datos, esquemas

y objetos

ESTRUCTURA AVANZADA DE UN SERVIDOR SQL

Unidad 3 – Administración Básica de Bases de Datos en el SGBD

Programador de Bases de Datos Relacionales 3

Page 4: E Un 3 GBD

2.- APARTADO 3.1: ESTRUCTURA BÁSICA DE UN SERVIDOR SQL

2.1.- LECCIÓN 3.1.1: INTRODUCCIÓN

Un servidor SQL es un software para la gestión de bases de datos.

Esta definición incluye tanto la definición y mantenimiento de las bases de datos en el

servidor como la administración de los datos incluidos en cada una de las bases de datos.

La arquitectura de un servidor hace referencia a los elementos básicos comunes a todas las

implementaciones de servidores SQL que en el mercado están disponibles. Dichas

implementaciones permiten cumplir todo o parte de la versión del lenguaje SQL, añadiendo

funciones particulares para la gestión de los distintos componentes

Los bloques que componen la arquitectura de un servidor SQL dependen del lenguaje

usado en su desarrollo. Existen servidores SQL de libre distribución, cuya arquitectura interna es

más accesible, puesto que el código fuente desarrollado está disponible para el público. Un

ejemplo de estos servidores es MySQL, comercializado bajo la licencia GPL

(http://dev.mysql.com).

En los servidores SQL comerciales el código propietario está protegido bajo leyes de

privacidad intelectual y su arquitectura interna es menos accesible a un estudio detallado. Por

ejemplo, el servidor SQL Microsoft SQL Server de Microsoft. (http://www.microsoft.com/sql/).

Normalmente la arquitectura de un servidor SQL se compone de dos partes fundamentales

tratadas más adelante: El motor relacional y el motor de almacenamiento. Además es necesario

que existan métodos estándar de acceso a los datos para que las aplicaciones cliente sean capaces

de comunicar al servidor las consultas y acciones a realizar sobre los datos.

Antes de profundizar con los servidores SQL y su arquitectura, es conveniente conocer las

bases del funcionamiento de redes de comunicación, puesto que los servidores SQL se valen de

ellas para comunicarse.

Unidad 3 – Administración Básica de Bases de Datos en el SGBD

Programador de Bases de Datos Relacionales 4

Page 5: E Un 3 GBD

2.1.1.- Introducción a las redes

Las redes entre ordenadores se desarrollan para cubrir dos grandes

necesidades: Intercambiar información y compartir recursos comunes.

Para ello es necesario disponer:

Una infraestructura física (tarjetas de red, hub, router,…) que una los distintos

nodos de la red y que se ocupa de realizar la interconexión física entre ellos.

Software, que son los programas que hacen que varios nodos se entiendan entre

sí y que sepan cómo utilizar los dispositivos físicos utilizados para su

interconexión.

Esta forma de comunicación está estandarizada a través del modelo de referencia OSI, que

ofrece un modelo abstracto del funcionamiento de la red y es independiente de la tecnología

empleada, por lo que puede aplicarse a cualquier situación.

El Modelo OSI de intercomunicación divide el proceso de envío y recepción de información

en siete capas. En cada una de ellas se describe cuál es la función que deben realizar los

protocolos que actúan en cada capa Los siete niveles o capas son:

Nivel 1: Fisico-Hardware

Define las conexiones físicas necesarias para interconectar las nodos de la red y los

estándares que se deben cumplir.

Cable RJ-45, Tarjetas PCI, hubs, router, etc..

Nivel 2: Enlace de datos

Describe el método que han de seguir los nodos de la red para transmitir y recibir las

tramas de datos por el medio físico descrito en el nivel 1

Redes Ethernet, Redes Wi-Fi, etc..

Unidad 3 – Administración Básica de Bases de Datos en el SGBD

Programador de Bases de Datos Relacionales 5

Page 6: E Un 3 GBD

Nivel 3: Nivel de Red

Describe cómo se debe identificar cada nivel uno de los nodos conectados a la red, y cómo

se puede localizar a cada uno de ellos en la red.

Nivel 4 y 5: Transporte y Sesión

Los protocolos que actúan en este nivel se ocupan de garantizar el flujo de información

entre dos nodos, controlando las conexiones y verificando la integridad de la información que se

envía y recibe

Protocolo TCP, SPX.

Nivel 6: Presentación

Son los servicios que responden a las peticiones de los clientes. Normalmente son

protocolos de alto nivel que se encargan de crear establecer diálogos entre máquinas para prestar

el servicio

Protocolos Cliente-Servidor: POP3, SMTP, (Correo electrónico) HTTP (Servicio

web), etc.

El servidor SQL de bases de datos se encuadra en este nivel, así como los programas

cliente que se utilizan para acceder a él. (Por ejemplo Microsoft SQL Server como servidor y

Microsoft SQL Management Studio)

Nivel 7: Aplicación

Son las aplicaciones que proveen de una interfaz de visualización de datos transmitidos o

recibidos y permiten el envío de comandos y respuestas que permiten la utilización de los servicios

prestados en la red sin conocer el lenguaje propio de cada uno de ellos.

Las interfaces de utilización que se ven cuando iniciamos un servidor Microsoft SQL Server

y un cliente Microsoft SQL Management Studio se encuadran en este nivel de la capa OSI. Estas

aplicaciones crean un entorno para gestionar el servidor a través de los controles de sus

herramientas, evitando en muchos casos conocer o utilizar la instrucción SQL correspondiente.

Unidad 3 – Administración Básica de Bases de Datos en el SGBD

Programador de Bases de Datos Relacionales 6

Page 7: E Un 3 GBD

AplicaciAplicacióónn

PresentaciPresentacióónn

SesiSesióónn

TransporteTransporte

dRed

e d tosEnlace de datos

FFí ico ar asico / Hardware

AplicaciAplicacióónn

PresentaciPresentacióónn

SesiSesióónn

TransporteTransporte

dRed

e d tosEnlace de datos

FFí ico ar asico / Hardware

Correo y exploradores webCorreo y exploradores web

HTTP,POP3,SMTPHTTP,POP3,SMTP

TCPTCP

TCPTCP

IIP

EthEthernet

H dwar , abl one sHardware,cables,conectores

Correo y exploradores webCorreo y exploradores web

HTTP,POP3,SMTPHTTP,POP3,SMTP

TCPTCP

TCPTCP

IIP

EthEthernet

H dwar , abl one sHardware,cables,conectores

La comunicación entre los nodos se realiza a través de protocolos de comunicación.

Un protocolo es un conjunto de normas que deben seguir los nodos de una red para garantizar que la comunicación sea

correcta

En cada nivel el protocolo correspondiente encapsula los datos que le envía su predecesor

si está emitiendo información o la desencapsula en el caso de que la información se está

recibiendo.

Actualmente la infraestructura de red más utilizada es la llamada red TCP/IP, por ser

estos dos protocolos los que realizan las funciones fundamentales hasta el nivel 5. En los niveles

superiores actúan los propios programas servidor y cliente, como http (Servidor web y navegador

web).

Dentro de esta infraestructura de red la identificación y encaminamiento de paquetes la

realiza el protocolo IP, que permite configurar cada nodo con su identificación (Número IP) y

describe cómo buscar un camino entre nodos de distintas redes, mediante los siguientes

parámetros

o Número IP (Internet Protocol): Identifica exclusivamente una máquina. No

existe en la red una maquina con el mismo número

o Máscara de red: Define la parte de número IP que identifica a la red a la

que pertenece el nodo. Dicha red condiciona el alcance máximo de la

información. La maquina sabe hasta dónde puede llegar su información de

forma directa.

o Puerta enlace: Es la dirección IP de una máquina que comunica varias

redes distintas. Permite a los nodos enviar información más allá de los

límites de la red a la que pertenecen.

Unidad 3 – Administración Básica de Bases de Datos en el SGBD

Programador de Bases de Datos Relacionales 7

Page 8: E Un 3 GBD

o Dns (Domain name server): Permite la traducción de direcciones IP a

nombres de servicios y nodos para facilitar la navegación a los usuarios.

El flujo de información entre nodos se realiza actualmente con el protocolo TCP, UDP e

ICMP. TCP y UDP se utilizan en comunicaciones de datos e ICMP es usado para comprobaciones de

red.

TCP (Transmission Control Protocol): Comprueba que la información que se emite llega

correctamente a su destino y utiliza para ello el establecimiento de comunicaciones entre nodos y

algoritmo de comprobación de errores. Por eso se dice que TCP es un protocolo fiable y orientado

a conexión

UDP (User Datagram Protocol): Es un protocolo no fiable y no orientado a conexión.

Transmite la máxima información en el menor tiempo posible. Se utiliza para transmisiones

de información no crítica para los procesos, por lo que no incluye mecanismos de control de

datos.

Unidad 3 – Administración Básica de Bases de Datos en el SGBD

Programador de Bases de Datos Relacionales 8

Page 9: E Un 3 GBD

Para identificar cada comunicación que se establece entre dos nodos de la red se utilizan

los llamados puertos, que son identificadores numéricos que se asignan a cada fragmento de la

información transmitida. De esta manera se conoce siempre con exactitud a qué comunicación

pertenece cada paquete que llega al nodo destino.

Para cada servicio en la red se asigna un puerto, que es el identificador que se debe

asignar a cada paquete que se dirige al nodo de la red que alberga el servicio. Existen dos tipos de

puerto:

Puertos bien conocidos (Well Known ports) (0-1024): Son los puertos asignados

a servicios estándar.

o Por ejemplo, el servicio web tiene asignado el puerto 80, el servicio ftp

tiene asignado el puerto 21, etc…

Puertos restantes: Son los puertos que quedan libres para que cada

programador asigne uno al servicio que desarrolla, con la única restricción de

que no está ocupado en la red. Van desde el 1025 hasta el 65536.

o Por ejemplo, el servidor SQL Server de Microsoft tiene asignado el puerto

1433, mientras que MySQL tiene asignado el 3306.

Cuando un nodo se comunica con otro siempre se debe indicar la dirección IP de origen y

destino, y el puerto de origen y destino. A la combinación de dirección IP y puerto se le conoce

con el nombre de Socket. La combinación de los dos socket de origen y destino definen una

comunicación única en la red.

Un servidor SQL de bases de datos es un servicio más de la red y funciona como cualquier

otro según los principios expuestos. Esto debe tenerse en cuenta a la hora de la instalación y

configuración básica de servidores de bases de datos en la red.

Unidad 3 – Administración Básica de Bases de Datos en el SGBD

Programador de Bases de Datos Relacionales 9

Page 10: E Un 3 GBD

2.1.2.- Instalación de un servidor SQL en una red

Un servidor SQL se instala dentro de una red como u servicio más, con un puerto y una

dirección IP asignada. Los clientes acceden al mismo a través de la infraestructura de la red.

Normalmente un servidor SQL no actúa sólo. Los clientes que acceden a él no son los

usuarios de la red, sino aplicaciones que toman base los datos almacenados para su

funcionamiento. En la actualidad, la mayoría de ellas suelen estar alojadas en servidores web. Nos

detendremos entonces en la instalación y funcionamiento de un servidor de bases de datos junto a

un servidor web.

El proceso desde la petición del cliente hasta la recepción de los datos se realiza en los

siguientes pasos:

El cliente lanza la petición al servidor web solicitando un página web con los

datos

El servidor procesa la página web (asp, php, etc…) donde está definido el acceso

al servidor de bases de datos

El servidor web conecta con el servidor de bases de datos a través de un

conector adecuado (ODBC, OLDB, etc…) y le envía la consulta sobre los datos

Unidad 3 – Administración Básica de Bases de Datos en el SGBD

Programador de Bases de Datos Relacionales 10

Page 11: E Un 3 GBD

Unidad 3 – Administración Básica de Bases de Datos en el SGBD

Programador de Bases de Datos Relacionales 11

El servidor de bases de datos procesa la consulta y devuelve al servidor web los

datos solicitados a través del mismo conector.

ágina solicitada

n los datos recibidos y la

envía al cliente

El cliente muestra la página con los datos solicitados.

El servidor web procesa los datos recibidos y realiza sobre ellos las operaciones

definidas en la p

El servidor web compone una página web en HTML co

Ejemplos:

Intranet privada en la blón de anuncios que que existe un ta

los clientes consultan, un foro en Internet, un catálogo de una

tienda on-line…

Es posible que el cliente disponga de una aplicación que funciona en local para acceder al

servidor de bases de datos directamente. En este caso no hace falta un servidor web para acceder

a los datos.

Ejemplos:

Aplicaciones de contabilidad, agendas compartidas…

2.1.3.- Conectividad con el servidor – Bibliotecas de red

Para que sea posible la conexión de una aplicación con el servidor SQL es necesario que el

sistema operativo que contiene al servidor SQL sea capaz de recibir las peticiones y canalizar las

consultas hacia el servidor. Para ello se dispone de un conjunto de programas que funcionan en el

sistema operativo y que realizan la función de conectar el servidor de bases de datos con la

aplicación cliente.

Page 12: E Un 3 GBD

Las librerías de red representan todos los métodos y funciones que el

sistema operativo necesita para integrarse con SQL y viceversa y poder

establecer una comunicación con la aplicación que lo precise.

Este software depende el sistema operativo que contiene al servidor.

Una vez que el cliente ha establecido el canal de comunicación con el servidor SQL se

envían y reciben una serie de mensajes a través del mismo que componen la comunicación. Dichos

mensajes incluyen las instrucciones a realizar en un lenguaje interpretado conocido por ambos

participantes. Éste lenguaje es SQL

Proceso de comunicación de un cliente SQL sobre un servidor SQL Server.

El servidor SQL puede usar estas funciones/librerías para la comunicación con otros

servidores de bases de datos SQL si así fuera preciso. Es decir, este servidor se comportaría como

cliente de otros servidores, o, en algún caso, redirigir las peticiones directamente a otros

servidores.

Las librerías independizan las versiones de la aplicación de la versión de servidor utilizado,

La mayoría de servidores admite lenguajes SQL de versiones anteriores, de forma que aplicaciones

desarrolladas con una versión de SQL puedan actualizarse a las nuevas versiones al mismo tiempo

que se actualizan los servidores. Si la librería que se utiliza es la misma, la aplicación no necesita

ser modificada cuando existe una actualización de servidor, o incluso si el software servidor

cambia (Migración de servidor)

Unidad 3 – Administración Básica de Bases de Datos en el SGBD

Programador de Bases de Datos Relacionales 12

Page 13: E Un 3 GBD

Ejemplo:

Una Base de Datos funcionando sobre un servidor Microsoft

SQL Server 2000, puede migrarse (actualizarse) sobre un

Microsoft SQL Server 2005. Si la librería de red utilizada para

su acceso no cambia, la aplicación puede seguir funcionando

sin realizar ningún cambio sobre ella.

Para realizar con éxito esta conexión se debe utilizar un lenguaje de acceso al motor de

bases de datos, como puede ser XML, ADO, OLE DB, ODBC… Éstos son las librerías que se encargan

de dar acceso y transmitir las instrucciones SQL al motor de bases de datos para poder acceder y

manejar los datos de las dichas bases correctamente. El siguiente diagrama muestra un caso de

conectividad de un servidor Microsoft SQL con algunas posibilidades que se contemplan para

permitir la comunicación con otros servidores de bases de datos:

Unidad 3 – Administración Básica de Bases de Datos en el SGBD

Programador de Bases de Datos Relacionales 13

Page 14: E Un 3 GBD

Estos lenguajes se denominan proveedores de accesos a datos y con ellos se consigue el

acceso a las bases de datos y la consulta de sus datos. Algunos de los más importantes son:

ODBC (Open Data Base Connect): es un estándar de industria y un componente

de Microsoft Windows Open Services Architecture. Permite el acceso de

aplicaciones a datos almacenados en cualquier SGBD relacional. Microsoft ofrece

unidades de ODBC en sus Sistemas Operativos que permiten el acceso a los

distintos motores de bases de datos. Para todos los demás es necesario instalarlo

aparte:

o ODBC para SQL Server

o ODBC para Oracle

o ODBC para Microsoft Visual FoxPro®

o ODBC para Access (Jet engine)

o ODBC para DB2 (IBM)…

OLE DB (Object Linking and Embedding for Databases) es otro estándar abierto

diseñado para el acceso a distintas fuentes de datos de manera uniforme. OLE

DB soporta ODBC. Así como ODBC se planificó para acceder a bases de datos

relacionales, OLE DB se diseñó para fuentes de información similares,

relacionales o no

Actualmente el desarrollo de aplicaciones se basa principalmente en OLE DB

puesto que tiene mayores prestaciones que ODBC, manteniendo la

compatibilidad para ODBC.

Para la manipulación de datos obtenidos a través de los distintos proveedores es necesario

contar con objetos que sean accesibles tanto desde la aplicación cliente como desde los

proveedores de datos. Alguno de los más importantes son:

Unidad 3 – Administración Básica de Bases de Datos en el SGBD

Programador de Bases de Datos Relacionales 14

Page 15: E Un 3 GBD

ADO: (ActiveX Data Object) proporciona una interfaz fácil de utilizar para OLE

DB. Proporciona una serie de objetos que permiten recuperar y almacenar datos

a través de OLEDB ú ODBC para su manejo por parte de la aplicación.(Conexión,

recordset, …) e independiza la programación de la fuente de datos.

o Puede acceder a los datos utilizando muy poco código de programación

o Puede conectarse a cualquier proveedor de OLE DB y seguir usando el

mismo modelo de programación

XML (Extensive Markup language): Es un estándar de de definición de

documentos estructurados mediante marcas o etiquetas. Permite el intercambio

de información estructurada entre distintas aplicaciones y fuentes.

Particularmente es muy utilizado en aplicaciones web.

La mayoría de las implementaciones de servidores SQL

permiten la obtención de datos usando los proveedores de

acceso a datos ODBC y OLEDB

Unidad 3 – Administración Básica de Bases de Datos en el SGBD

Programador de Bases de Datos Relacionales 15

Page 16: E Un 3 GBD

2.2.- LECCIÓN 3.1.2: ARQUITECTURA DE UN SERVIDOR SQL

Los dos componentes fundamentales de un servidor SQL son el motor relacional y el motor

de almacenamiento.

El motor relacional permite organizar los datos siguiendo las reglas que definen un sistema

de bases de datos relacional. El motor de almacenamiento gestiona el flujo de datos entre el

servidor y el sistema de archivos elegido para guardar la información.

2.2.1.- Motor relacional – Relational engine

El motor relacional de bases de datos se utiliza para el almacenamiento

y procesado de datos en un formato relacional.

El motor de bases de datos o motor relacional es el componente más importante de

un servidor SQL. Es el encargado de interpretar las instrucciones SQL enviadas y ejecutarlas

de forma correcta sobre las bases de datos almacenadas.

Este componente se divide en tres grupos de subsistemas:

Compilación de las consultas. El optimizador interpreta la petición SQL y la convierte

en un conjunto de Entrada y Salida de información, filtros y cualquier otra lógica de

procedimiento que cumpla la petición con eficacia

Ejecución. Se encarga de realizar las operaciones especificadas en la zona de

compilación

El Administrador SQL: Realiza las siguientes funciones

o Control del flujo de contenido entre las aplicaciones y los datos almacenados en

el servidor

o Control y gestión de las llamadas de las aplicaciones para su acceso a los datos.

Existen dos componentes que dan servicios adicionales que normalmente utiliza el servidor

para su propia gestión

Componente de servicios de catálogos: r. El listado de tablas, restricciones, usuarios,

permisos, relaciones entre datos, etc… Es una base de datos de bases de datos. Los

servicios referentes a catálogos realizan, entre otras, las siguientes funciones

Unidad 3 – Administración Básica de Bases de Datos en el SGBD

Programador de Bases de Datos Relacionales 16

Page 17: E Un 3 GBD

o Realiza la gestión interna de los datos y estructuras de tabla. Por ejemplo,

cuando se crea una tabla en una base de datos ‘ciudades’ a través de la

instrucción CREATE TABLE nombres, se añade al catálogo una entrada en la que

se especifica que la tabla ‘nombres’ pertenece a la base de datos ‘ciudades’,

que la ha creado un usuario específico, la lista de campos, etc. Actúa como un

usuario de la base de datos del sistema.

o Controlan las tablas del sistema, de manera que todas las tablas permanecen

siempre perfectamente identificadas.

o Alrededor de un tercio del mismo funciona en el entorno del motor de

almacenamiento, que es quien se ocupa de gestionar la parte de datos de las

bases de datos que se alojan en el servidor.

UMS (User Mode Scheduler, programador de modos de usuario): Permite programar

la asignación de recursos a distintos procesos simultáneos para repartir la carga entre

el hardware disponible. Se definen distintas prioridades en función de algunos

parámetros, como el perfil del usuario autentificado que lanza un proceso.

Las funciones que realiza el motor de base de datos relacional como un todo son las

siguientes:

Permitir el diseño y creación de bases de datos que contengan los datos

necesarios para las aplicaciones clientes, organizándolos en campos, y éstos a su

vez, agrupados dentro de una estructura de tablas relacionadas

Implementar sistemas de control para la obtención de acceso al servidor y

modificar los datos almacenados.

Diseñar y crear objetos que permitan el control del acceso a las bases de datos y

las acciones que se realizarán sobre ellas.

Análisis y procesado de los mensajes dados por las aplicaciones clientes,

presentando los resultados en forma tabular

Gestionar la comunicación directa con el motor de almacenamiento para:

Unidad 3 – Administración Básica de Bases de Datos en el SGBD

Programador de Bases de Datos Relacionales 17

Page 18: E Un 3 GBD

o Controlar el almacenamiento de los distintos objetos que conforman una

base de datos

Optimizar el acceso a los datos, permitiendo el diseño y creación de objetos Esquema en bloques de ejemplo de un motor

relacional (Microsoft SQL Server)

o que permitan la reorganización y/o obtención rápida de los datos

2.2.2.- Motor de almacenamiento – Data storage engine

El motor de almacenamiento se encarga de las operaciones de

almacenamiento en el medio elegido (normalmente HDD) de

los distintos componentes de una base de datos. Esto incluye

desde las estructuras básicas, hasta los datos que contienen.

Se encarga también de la extracción de los datos solicitados

Forma parte de la arquitectura global de la base de datos y se encarga de manejar los

datos que persisten en la propia base y llevan a cabo las operaciones de entrada y salida de los

mismos. También es el responsable de determinadas características propias, como puede ser el

bloqueo de datos ante accesos simultáneos.

El motor de almacenamiento depende del servidor elegido. La elección del motor de

almacenamiento determinará el comportamiento y rendimiento de la base de datos. Algunos

sistemas de gestión de bases de datos permiten elegir uno u otro en función de la previsión de

utilización de los datos almacenados.

Unidad 3 – Administración Básica de Bases de Datos en el SGBD

Programador de Bases de Datos Relacionales 18

Page 19: E Un 3 GBD

La elección de un motor u otro se basa principalmente en cuatro parámetros:

Tipo de campos: Cada motor de almacenamiento tiene definido tipos de datos

distintos. Normalmente todos los motores disponen de tipos de datos comunes además

de los propios de cada uno de ellos.

Tipos de bloqueo: Define la forma en que los motores de almacenamiento se

comportan ante accesos simultáneos a los mismos registros. Algunos bloquean la tabla

completa, otros sólo el registro…

Índices: Campo de una tabla que se utiliza como identificador del contenido del

registro y que permite agilizar las búsquedas de información. Cada motor de

almacenamiento configura y utiliza los índices de manera distinta, siendo más

efectivos unos que otros en función del tipo de búsquedas que se realizan.

Transacciones: Una transacción es un conjunto de instrucciones SQL que se ejecutan

de forma indivisible, formando una unidad de trabajo. Existen motores de

almacenamientos que respetan la integridad de los datos original si existe un fallo y la

transacción se interrumpe antes de ser finalizada (Motores transacionales) y otros que

no contemplan esta funcionalidad (no transacionales). Éstos últimos efectúan las

operaciones de forma más rápida, pero deben incorporar mecanismos de control en

caso de fallo de alguna instrucción, lo que complica la programación SQL de la

aplicación.

Las funciones que desarrolla un motor de almacenamiento en una base de datos relacional

son fundamentalmente:

Proporcionar herramientas que den soporte al almacenamiento de los datos.

Integrar los sistemas de almacenamiento interno-externo del sistema operativo

donde está implantado el servidor con el propio software servidor SQL , para el

almacenamiento de las estructuras, objetos y datos de la base de datos tanto

para el almacenamiento como para la obtención de los datos

Proporcionar las herramientas que permitan la realización de salvaguardas de

información de los datos almacenados y recuperación de los mismos en caso de

error.

Unidad 3 – Administración Básica de Bases de Datos en el SGBD

Programador de Bases de Datos Relacionales 19

Page 20: E Un 3 GBD

Agilizar la gestión de las bases de datos almacenadas mediante distintas

herramientas:

o Compactación de los datos en la base de datos

o Creación y desarrollo de objetos que optimicen el acceso a los datos

almacenados

o Mantener la integridad de los datos almacenados, evitando que se

almacenen datos inconsistentes o duplicados que merman la velocidad o/y

disponibilidad de los datos

o Creación de herramientas para que varias copias de la misma información

se distribuyan en varias bases de datos obteniéndose una mayor

velocidad/disponibilidad de los datos (ver gráfico)

Esquema en bloques de ejemplo de un motor de base de datos distribuyendo información a otros servidores

Unidad 3 – Administración Básica de Bases de Datos en el SGBD

Programador de Bases de Datos Relacionales 20

Page 21: E Un 3 GBD

2.3.- LECCIÓN 3.1.3: GESTIÓN DE OBJETOS DE UNA INSTANCIA

Una instancia de un servidor SQL está formada por cada una

de las veces que el servidor está ejecutándose en la memoria

del ordenador junto a su configuración particular. Permite que

un mismo servidor se comporte como varios, puesto que cada

una de sus instancias está definida de forma diferente

Normalmente las instancias se utilizan para mantener separados distintos servicios dentro

de un servidor de bases de datos. Es posible disponer de una instancia que de soporte a una

aplicación web y otra distinta que de soporte a aplicaciones cliente instaladas en la red. De esta

manera es posible controlar mejor el tráfico que va dirigido a cada una de las bases de datos

instaladas en el servidor.

Dentro de la arquitectura de los servidores SQL las instancias se pueden gestionar como

cualquier otro objeto. Es decir, se permite la creación, modificación y eliminación de las mismas.

Cuando se genera una instancia se hereda del servidor todos los aspectos que son comunes a

todas, heredando las posibles modificaciones que puedan afectar a dichos aspectos. Cuando las

modificaciones se efectúan sobre una instancia en particular éstas no afectan a la configuración

del servidor.

Desde el administrador del servidor es posible modificar la configuración de las instancias

de un servidor. La configuración de la misma incluye:

Configuración de la conexión a la misma: Deben diferenciar a la instancia e

identificarla de forma unívoca a través de la configuración de los protocolos

permitidos, puertos de escucha y nombre de la instancia

Configuración de seguridad: Cada instancia permite la definición de usuarios

diferentes, método de autentificación y política de seguridad para las bases de

datos almacenadas.

Mapa de base de datos: Cada instancia puede disponer de distintas bases de

datos que no son accesibles desde otras instancias. Es posible definir bases de

datos comunes a todas las instancias.

Para crear nuevas instancias es necesario ejecutar la instalación del servidor tantas veces

como sea necesario, indicando en cada caso que se desea crear una nueva instancia. Para

eliminarla, basta con desintalarla del sistema.

Unidad 3 – Administración Básica de Bases de Datos en el SGBD

Programador de Bases de Datos Relacionales 21

Page 22: E Un 3 GBD

La instalación de los servidores y sus instancias se detallan en los anexos de esta unidad

correspondientes cada uno de ellos a los servidores libres más extendidos en la actualidad. El

anexo I detalla la instalación de Microsoft SQL Server y l anexo II la del servidor MySQL. Así mismo

se detalla en el anexo III la instalación y configuración de aplicaciones cliente para acceder y

utilizar el servidor de base de datos elegido.

Ejemplo de utilización de instancias:

Una empresa desea instalar un servidor SQL para cubrir las siguientes

necesidades:

1.- Se desea albergar una base de datos de uso público a través de un servidor

web donde se permite modificar el contenido de la base de datos. (Por ejemplo

con un foro). Esta base de datos se llama ‘publicdb’.

2.- Se desea albergar una base de datos para uso interno de los empleados

donde se almacena la información que utiliza la empresa para prestar sus

servicios. Esta base de datos se llama ‘internaldb’.

Se dispone de un servidor web y un servidor SQL dentro de la red. Los clientes

internos disponen de una aplicación interna que permite el acceso a la base de

datos ‘internaldb’.

Solución a): Un único servidor

Se podría instalar un servidor SQL de bases de datos y diseñar las bases de

datos en él. A través de la asignación de privilegios se pueden definir usuarios

distintos para este servidor y limitar el acceso de unos y otros a sus respectivas

bases de datos.

Esta solución presenta dos grandes inconvenientes:

Unidad 3 – Administración Básica de Bases de Datos en el SGBD

Programador de Bases de Datos Relacionales 22

Page 23: E Un 3 GBD

El servidor al que acceden los usuarios públicos es el mismo donde está alojada

la base de datos interna de las aplicaciones de gestión de la empresa con el

consiguiente riesgo de accesos indebidos.

Es muy complicado poder equilibrar la carga de procesamiento asignando más

recursos de procesador a la base de datos que lo requiera puesto que el

proceso que controla ambas bases de datos es el mismo.

Solución b): Varias instancias de servidor

Se podrían instalar dos instancias de servidor SQL. Una para controlar la base

de datos interna ‘internaldb’ llamada internalSQL y otra para gestionar la base

de datos pública ‘publicdb’ que se llamará ‘publicSQL’. De esta forma se

solucionan los dos inconvenientes antes citados:

Para cada una de las instancias es posible definir usuarios distintos e

independientes, con lo que un usuario público nunca podría entrar en la

instancia ‘internalSQL’, puesto que no tiene definido ese usuario. La seguridad

se ve incrementada en gran medida.

Ahora sí es posible asignar más recursos de procesamiento a una de las

instancias, puesto que están controladas por dos procesos distintos. La base de

datos pública puede necesitar más recursos si los accesos desde el exterior son

muy numerosos.

Unidad 3 – Administración Básica de Bases de Datos en el SGBD

Programador de Bases de Datos Relacionales 23

Page 24: E Un 3 GBD

Unidad 3 – Administración Básica de Bases de Datos en el SGBD

Programador de Bases de Datos Relacionales 24

2.4.- LECCIÓN 3.1.4: ADMINISTRACIÓN DE LA SEGURIDAD

La información almacenada en una base de datos puede llegar a tener un gran valor. Los

Sistemas de gestión de bases de datos deben garantizar que la información se encuentra segura

frente a:

Usuarios malintencionados, que intenten acceder a información privilegiada

Ataques que deseen manipular o destruir la información

Posibilidad de error no intencionado en la manipulación de los datos por parte

de usuarios autorizados.

Normalmente, los SGBD disponen de un complejo sistema de permisos a usuarios y grupos

de usuarios, que permiten otorgar diversas categorías de permisos y que persigue controlar tanto

el acceso a los datos como las acciones que se pueden realizar con ellos.

Los mecanismos de seguridad más utilizados habitualmente son:

2.4.1.- Inicios de Sesión

Uno de los mecanismos de seguridad más usados es el control de acceso al servidor

mediante inicios de sesión consistente en la autentificación del usuario a través de,

normalmente, un nombre de usuario y contraseña. El servidor comprueba y valida el inicio de

sesión enviado y comprueba en lo sucesivo, si el cliente puede o no realizar las acciones que está

enviando a través de las instrucciones SQL.

Proceso de comunicación: 1.- Envío de login al servidor. 2.- El Servidor valida información del login enviado. 3.- El

servidor admite y procesa el mensaje SQL.

ServidorSQL

ClienteSQL

CANAL COMUNICACIÓN

pepe

usuario

****

contraseñapepe

usuario

****

contraseñaLogin

permitid

o

MensajeSQL

1 2

3

Page 25: E Un 3 GBD

Los servidores disponen de herramientas que permiten la gestión de las cuentas de usuario.

Dicha gestión comprende las acciones de crear nuevos usuarios, eliminar los existentes y modificar

las cuentas existentes asignando o quitando permisos y privilegios.

Para realizar esta gestión se utilizan dos técnicas:

Uso de una aplicación gráfica cliente de administración: Las aplicaciones

cliente de gestión de servidor suelen llevar incorporados módulos de gestión de

cuentas de usuario

Adaptación / Ampliación del lenguaje SQL: A algunos servidores se les añade

en sus librerías nuevas instrucciones que complementan el lenguaje SQL para

permitir la gestión de cuentas de usuarios, así como los permisos y privilegios

asociados a cada una de ellas.

2.4.2.- Privilegios

Además de permitir el acceso a un servidor de bases de datos las cuentas de acceso

permiten controlar la capacidad de realizar ciertas acciones dentro de la base de datos. Las

acciones que un usuario puede realizar dentro de la administración de un servidor o en las bases

de datos a las que tenga acceso se conocen con el nombre de privilegios.

Los privilegios permiten controlar que parte del lenguaje SQL

se puede procesar dentro del servidor SQL al validar una

cuenta de usuario.

Cuando se envía una cuenta de usuario a un servidor, éste la valida. Si es correcta permite

el acceso al mismo. A continuación se comprueban los privilegios de la cuenta para:

Permitir al acceso sólo a los datos que el usuario pueda ver. Se comprueba el

catálogo de bases de datos sobre las que el usuario tenga privilegios.

Permitir la ejecución de determinadas instrucciones SQL que realizan las

acciones sobre los datos que el usuario pueda realizar mediante el procesado de

cada mensaje que el cliente envía al servidor en un entorno de ejecución

controlado.

Unidad 3 – Administración Básica de Bases de Datos en el SGBD

Programador de Bases de Datos Relacionales 25

Page 26: E Un 3 GBD

Uso de Privilegios: 1.- El servidor comprueba los privilegios de la cuenta. 2.- El mensaje se procesa de acuerdo a las

acciones permitidas por los privilegios.

La seguridad en cuanto a cuentas de usuario y privilegios se

almacena en tablas propias del servidor SQL. El acceso o

gestión de dichas tablas se realiza por medio de privilegios

llamados privilegios administrativos

Los privilegios administrativos se asignan a los administradores del servidor y permite que

éstos puedan gestionar cuentas de usuario, seguridad del servidor y bases de datos albergadas. En

realidad los privilegios administrativos permiten la gestión de las bases de datos internas del

servidor.

En general, los privilegios se asignan del siguiente modo:

Un usuario que crea una tabla o cualquier otro objeto de la base de datos es el

propietario y se le garantizan automáticamente todos los privilegios aplicables a

dicho objeto, con la posibilidad de darles también a otros usuarios dichos

privilegios (privilegio de concesión).

Un usuario que tenga un privilegio y posea además sobre él el privilegio de

concesión puede asignarle tal privilegio a otro usuario y pasarle también el

privilegio de concesión.

Los privilegios los concede quien tiene el permiso (es decir el propietario del

objeto y quien tiene el privilegio de concesión) mediante la instrucción GRANT,

y los revoca mediante la orden REVOKE.

La sintaxis de la orden GRANT es la siguiente para asignar a un usuario o grupo de usuarios

la lista de privilegios indicada sobre el objeto especificado:

Unidad 3 – Administración Básica de Bases de Datos en el SGBD

Programador de Bases de Datos Relacionales 26

Page 27: E Un 3 GBD

GRANT lista_privilegios ON objeto TO lista_usuarios [WITH GRANT OPTION]

Los privilegios asignables más usuales son los siguientes:

USAGE: Permite usar un objeto de la base de datos.

SELECT: Permite acceder a todas las columnas de la tabla o vista especificada.

INSERT [ (nombre_columna) ]: Permite la inserción de valores en la tabla o

vista especificada. Si se especifica la opción nombre_columna, el privilegio se

limita a la columna indicada. Sin el nombre_columna se incluyen todas las

columnas de la tabla, incluidas las que se puedan agregar después de la

concesión del privilegio.

UPDATE [ (nombre_columna) ]: Permite la modificación de los datos en la

tabla o vista especificada. Si se especifica el parámetro nombre_columna el

privilegio se limita a las columnas indicadas. Si no es así el privilegio se aplica

sobre todas las columnas de la tabla, incluidas las que se agreguen después de la

concesión del permiso.

DELETE: Permite eliminar líneas de una tabla o de una vista.

El objeto al que se refiere el privilegio es generalmente una tabla o una vista. La sintaxis

para su especificación es en ese caso ‘[TABLE] nombre_tabla’. Si el objeto es otro la sintaxis será

‘tipo_objeto nombre_objeto’ donde tipo_objeto puede ser DOMAIN, CHARACTER SET, COLLATION

o TRANSLATION. En el caso de objetos que no sean tablas o vistas, el único privilegio aplicable es

el de USAGE.

La lista_usuarios es una lista de identificativos de usuarios o grupos de usuarios a los que

se les concede el privilegio indicado. Si se utiliza la clave PUBLIC, se indicará a que todos los

usuarios y los grupos conocidos en el sistema se les concede el permiso

Si se especifica la opción [WITH GRANT OPTION], el servidor asignará además del permiso

en cuestión, el privilegio de concesión, que permite a los usuarios conceder los privilegios que se

les han asignado a otros usuarios.

Unidad 3 – Administración Básica de Bases de Datos en el SGBD

Programador de Bases de Datos Relacionales 27

Page 28: E Un 3 GBD

Ejemplo: Para asignar al usuario ‘Pepe’ los privilegios de acceso, agregar datos y

modificar la columna nombre de una tabla personas y permitir además que estos

permisos los pueda conceder a otros usuarios sería necesario enviar al servidor la

instrucción

GRANT SELECT, INSERT, UPDATE(nombre) ON persona TO pepe WITH GRANT

OPTION

Para eliminar los privilegios a una cuenta de usuario se utiliza la instrucción REVOKE con la

siguiente sintaxis:

REVOKE [GRANT OPTION FOR] lista_privilegios ON objeto FROM

lista_usuarios {RESTRIC | CASCADE}

Donde lista_privilegios, objeto y lista_usuarios tienen el mismo significado que las

correspondientes opciones de GRANT. La opción GRANT OPTION FOR elimina el privilegio de

concesión.

Si se especifica la cláusula RESTRICT, la orden REVOKE puede fallar si el usuario al que se

le han revocado los privilegios se los ha concedido posteriormente a otros. Si está presente la

cláusula CASCADE, la instrucción se completará siempre con éxito y se revocarán también los

privilegios de esos usuarios y de todos aquellos a quienes a su vez se les han concedido. Se

destruirán, además, los objetos de la base de datos construidos gracias a dichos permisos.

2.4.3.- Roles: Agrupación de privilegios y Asignación a cuentas de usuario

A la hora de gestionar la seguridad de un servidor de bases de datos se suelen asignan los

mismos privilegios a distintos usuarios dependiendo de la capacidad que éstos deban tener para

ejecutar instrucciones SQL en el servidor. Se generan así grupos de usuarios a los que se les asigna

grupos de privilegios comunes.

Unidad 3 – Administración Básica de Bases de Datos en el SGBD

Programador de Bases de Datos Relacionales 28

Page 29: E Un 3 GBD

Ejemplo: Una política de seguridad a aplicar en un servidor de bases de datos público

puede consistir en que a la mayoría de los usuarios públicos se les asignará un control

total de las bases de datos que hayan sido creados por ellos, mientras que a otro

conjunto se les asignará privilegios de administración de todas las bases de datos. Por

último existirá un conjunto con un número limitado de usuarios que dispondrá de

privilegios de administración del servidor.

Los roles consisten en agrupaciones de privilegios bajo un nombre que permiten la

asignación fácil y rápida a las distintas cuentas de usuario. Permiten definir un conjunto de

permisos que definen el comportamiento del usuario incluido en el rol dentro del servidor

Dependiendo del tipo de privilegios que se agrupan nos encontramos:

Roles de servidor: Los roles de servidor incluyen privilegios para la gestión de

la seguridad de las bases de datos y la administración del servidor como

creación de usuarios, definición de privilegios, gestión de roles, gestión de bases

de datos, etc. Están definidos por los administradores de los servidores de bases

de datos y afecta globalmente a todos los objetos del servidor.

Roles de base de datos: Incluyen los privilegios de gestión de las distintas bases

de datos como crear estructuras en la base de datos, crear objetos para el uso

optimizado de la base de datos, etc. Afecta exclusivamente a una base de datos

y está dirigido a los usuarios que manejan dicha base. Algunos de los roles de

bases de datos incluidos por defecto en los servidores de bases de datos son:

Unidad 3 – Administración Básica de Bases de Datos en el SGBD

Programador de Bases de Datos Relacionales 29

Page 30: E Un 3 GBD

Rol B.D. Descripción

db_owner Tiene todos los permisos de la base de datos

db_accessadmin Puede agregar o eliminar Id. de usuario

db_securityadmin Puede administrar todos los permisos, la propiedad de los objetos, las funciones y la pertenencia a ellas

db_ddladmin Puede utilizar TODAS las instrucciones DDL, menos las instrucciones GRANT, REVOKE o DENY

db_backupoperator Puede utilizar las instrucciones DBCC, CHECKPOINT y BACKUP

db_datareader Puede seleccionar todos los datos de cualquier tabla de usuario de la base de datos

db_datawriter Puede modificar todos los datos de cualquier tabla de usuario de la base de datos

db_denydatareader No puede seleccionar ningún dato de cualquier tabla de usuario de la base de datos

db_denydatawriter No puede modificar ningún dato de cualquier tabla de usuario de la base de datos

Roles de aplicación: Incluyen los privilegios que se asignan a los usuarios de la

base de datos, normalmente una aplicación. Normalmente hacen referencia a la

gestión de los datos incluidos en la base de datos permitiendo consultar, agregar

o actualizar los datos de la base de datos. Normalmente no hay predefinidos y

es necesario crearlos y asignarlos a los distintos inicios de sesión. Afectan sólo a

una base de datos.

Además es posible definir roles particulares para objetos de una base de datos

determinada, que sólo afectan a dichos objetos creados en la base seleccionada y asignarlos

a distintos inicios de sesión.

Ejemplo de aplicación de diferentes roles

El administrador puede crear una base de datos nueva porque tiene asignado un rol de

servidor, mientras que un usuario puede crear una tabla dentro de esa base de datos

puesto que tiene asignado un rol de base de datos. Así mismo una aplicación puede

agregar o eliminar datos en las tablas, pero no puede crear nuevas tablas en la base de

datos, puesto que tiene asignado un rol de aplicación.

Unidad 3 – Administración Básica de Bases de Datos en el SGBD

Programador de Bases de Datos Relacionales 30

Page 31: E Un 3 GBD

Aún utilizando los roles para los usuarios, es posible definir permisos de forma explícita

utilizando las instrucciones GRANT y REVOKE vistas anteriormente. En el caso de que un permiso

explícito esté en contradicción con uno perteneciente al rol que tiene asignado el usuario, siempre

se aplicará el más restrictivo, de forma que se garantiza siempre la seguridad.

Ejemplo: Si un usuario pertenece a un rol donde tiene asignado el privilegio para

eliminar columnas en una tabla, y explícitamente se le revocado, el usuario no podrá

eliminar las columnas.

2.4.3.1.- Procedimientos almacenados

Un procedimiento almacenado es una agrupación de instrucciones SQL

dentro del servidor al que se le asigna un nombre

Cada vez que se llama al procedimiento almacenado por el nombre asignado se ejecutan

las instrucciones que comprende.

Las características más importantes de los procedimientos almacenados son:

Al Permitir agrupar sentencias SQL dentro del propio servidor SQL se

automatizan determinadas tareas evitando tener que llamar a todas las

instrucciones cada vez que es necesario ejecutarlas

Permiten el uso de variables, parámetros y bucles que de otra forma sería más

complicado o imposible de implementar.

Cuando un procedimiento es llamado por primera vez se compila. El

procedimiento compilado se guarda en memoria para optimizar el rendimiento,

puesto que las siguientes veces que sea llamado no será necesario compilarlo.

La devolución de los datos se vuelve más efectiva y rápida.

Al usar procedimientos almacenados, es posible utilizar la asignación de privilegios para

permitir su ejecución. De esta forma es posible controlar más la ejecución de sentencias SQL,

puesto que se puede denegar la ejecución de cualquier instrucción y permitir la ejecución de los

procedimientos almacenados. Esta técnica eleva el nivel de seguridad aplicado.

Unidad 3 – Administración Básica de Bases de Datos en el SGBD

Programador de Bases de Datos Relacionales 31

Page 32: E Un 3 GBD

Procedimiento almacenado en

Servidor

Análisis sintáctico

CreaciónPlan de ejecucióncompilado en la cachéde procedimientos

Siguientes ejecuciones

Optimización

Resolución

Plan

de

ejec

ució

nPl

an d

e ej

ecuc

ión

Primera ejecución

Se realizatodo

el Proceso

Se ejecutadesde

la caché

Compilación

Ejecución de Procedimientos almacenados: Una vez creado el procedimiento, se almacena en el servidor. Al ejecutarse

por primera vez, más lentamente, el servidor elabora un plan de ejecución que le permite aprende a resolver la

ejecución del procedimiento. El resultado del plan de ejecución se almacena en caché. Las siguiente ejecuciones

solo leen lo aprendido, acelerando la ejecución, y devolviendo los datos más eficientemente.

Sólo los servidores SQL más avanzados tecnológicamente

admiten los procedimientos almacenados y roles

Unidad 3 – Administración Básica de Bases de Datos en el SGBD

Programador de Bases de Datos Relacionales 32

Page 33: E Un 3 GBD

3.- APARTADO 3.2: ESTRUCTURA AVANZADA DE UN SERVIDOR SQL

3.1.- LECCIÓN 3.2.1: GESTIÓN DEL ALMACENAMIENTO DE DATOS

EN INSTANCIAS

3.1.1.- El motor de almacenamiento

El motor de almacenamiento se encarga de las operaciones de almacenamiento en el

medio elegido (normalmente HDD) de los distintos componentes de una base de datos. Esto

incluye desde las estructuras básicas, hasta los datos que contienen. Se encarga también de la

extracción de los datos solicitados cuando son solicitados por las aplicaciones clientes

Las principales responsabilidades del motor de almacenamiento incluyen:

• Ofrecer características que faciliten el uso en la administración de los

componentes de almacenamiento

• Administrar los búferes de datos y todas las E/S en los archivos físicos

• Controlar la concurrencia, administración de transacciones, bloqueos y registro

• Administrar los archivos y las páginas físicas utilizadas para almacenar datos

• Recuperar desde errores graves del sistema

3.1.2.- Almacenamiento de los datos

A la hora de gestionar el almacenamiento de datos en un servidor de bases de datos SQL se

utilizan una estructura que dependiendo del punto de vista se puede clasificar en:

Estructura lógica: El servidor de base de datos almacena los datos

organizándolos en tablas, registros y campos. Es la estructura de la base de

datos diseñada por el administrador.

Estructura física: El almacenamiento de la estructura lógica se realiza en forma

de ficheros dentro del sistema operativo del servidor SQL, formando la

estructura física. Para ello el servidor SQL utiliza los dispositivos físicos de

almacenamiento de datos, normalmente discos duros.

La mayoría de servidores SQL utilizan tres tipos de archivos para almacenar una base de

datos, en una estructura física: archivos principales, archivos secundarios y registros de

transacciones.

Unidad 3 – Administración Básica de Bases de Datos en el SGBD

Programador de Bases de Datos Relacionales 33

Page 34: E Un 3 GBD

La base de datos debe tener un archivo de datos principal y,

como mínimo, un archivo de registro de transacciones.

Opcionalmente puede crearse uno o varios archivos de datos secundarios así como archivos

de registro de transacciones adicionales.

Archivos principales: Estos archivos contienen la información de inicio de la

base de datos. Se utilizan también para almacenar datos. Cada base de datos

tiene un archivo principal que se define al crearla

Archivos secundarios: Estos archivos contienen todos los datos que no caben en

el archivo de datos principal. No es necesario que las bases de datos tengan

archivos de datos secundarios si el archivo principal es lo suficientemente

grande como para contener todos los datos. Algunas bases de datos pueden ser

muy grandes y necesitar varios archivos de datos secundarios o utilizar archivos

secundarios en unidades de disco distintas, de modo que los datos estén

distribuidos en varios discos.

Registros de transacciones: Estos archivos contienen la información de registro

que se utiliza para recuperar la base de datos. Cada base de datos debe tener al

menos un archivo de registro de transacciones, aunque puede tener más de uno.

Ejemplo de creación de base de datos mostrándose la información de los ficheros que la componen.

Unidad 3 – Administración Básica de Bases de Datos en el SGBD

Programador de Bases de Datos Relacionales 34

Page 35: E Un 3 GBD

A la hora de crear una base de datos es necesario definir dónde se ubicarán los archivos

principal y de registro de transacciones, indicando además al servidor su tamaño original y si se va

a permitir un crecimiento del mismo. Es posible limitar así el espacio que ocupará cada base de

datos creada, gestionando el espacio total disponible entre todas las bases de datos.

3.1.3.- Indexación de los datos – Index

Un índice es una estructura de datos que permite acceder a diferentes

filas de una misma tabla a través de un campo (o campos clave).

A la hora de almacenar los datos en una tabla, el servidor SQL divide la misma en páginas

de datos a las que podemos acceder rápidamente a través de un índice. Esta idea es la que se

aplica en el mundo de las bases de datos, la información está guardada en una tabla (el libro) que

tiene muchas hojas de datos (las páginas del libro), con un índice en el que se puede buscar la

información que se desea recuperar. De esta forma se optimiza la búsqueda y localización de la

información almacenada en la estructura lógica de la base de datos.

Al realizar una búsqueda se consulta primero el índice y se obtiene dónde está ubicada la

información que se busca dentro de la tabla. El acceso se realiza de forma directa, mientras que si

no se dispone de índices sería necesario recorrer toda la tabla hasta localizar el valor buscado.

Un índice es una estructura de disco asociada con una tabla que contiene claves generadas

a partir de una o varias columnas de la tabla. Dichas claves están almacenadas en una estructura

que permite que el servidor SQL busque de forma rápida y eficiente la fila o filas asociadas a los

valores de cada clave

El lenguaje SQL permite la creación de índices para las tablas basados en uno o varios de

los campos. Es necesario ser cuidadoso con la elección de los índices, puesto que si se definen

muchos índices las operaciones de inserción y borrado de datos pueden ralentizarse demasiado al

ser necesario actualizar también los índices.

Unidad 3 – Administración Básica de Bases de Datos en el SGBD

Programador de Bases de Datos Relacionales 35

Page 36: E Un 3 GBD

Normalmente se definirán índices basados en campos que se utilicen únicamente como

identificadores de registros y basados en campos sobre los que se realicen la mayoría de las

búsquedas, es decir, aquéllos que más aparezca en las cláusulas WHERE de las instrucciones SQL.

3Aranda

4Vela

2Toledo

5Martínez

1García

6Castro

3Aranda

4Vela

2Toledo

5Martínez

1García

6Castro

6

5

4

3

2

1

Daniel

Ana

Manuel

Patricia

Luís

José 76432853XGarcía

62184134PCastro

43158638TMartínez

95184132LVela

05632461KAranda

98431835FToledo

6

5

4

3

2

1

Daniel

Ana

Manuel

Patricia

Luís

José 76432853XGarcía

62184134PCastro

43158638TMartínez

95184132LVela

05632461KAranda

98431835FToledo

ÍndiceÍndice

Ejemplo de indexación de una tabla.

Para crear un índice se utiliza la instrucción SQL CREATE INDEX con la siguiente

sintaxis:

CREATE [UNIQUE] INDEX <nombre indice> ON <nombre tabla> (<nombre campo> [ASC | DESC] {,<nombre_campo> [ASC | DESC]}));

Donde:

UNIQUE especifica que el valor utilizado como índice no se puede repetir

Nombre_índice, nombre_tabla y nombre_campo especifican los nombres de los

objetos involucrados en la creación del índice

ASC | DESC indica si el índice se va a ordenar de forma ascendente o

descendente

Es posible basar un índice en más campos separándolos por comas e indicando el

orden que van a seguir para cada campo.

Para eliminar un índice se utiliza la instrucción DROP INDEX nombre_indice

Al definir una clave principal en una tabla se define también un índice basado en ese

campo.

Unidad 3 – Administración Básica de Bases de Datos en el SGBD

Programador de Bases de Datos Relacionales 36

Page 37: E Un 3 GBD

3.1.3.1.- Índices agrupados - Clustered

Un índice agrupado es similar a una guía de teléfonos. El conjunto que está ordenado es el

registro completo por el valor de uno de sus campos, de forma que se facilita su localización

siguiendo el orden establecido. En este tipo de índices los registros de la tabla se ordenan

físicamente.

Algunas características de los índices agrupados son:

Ordenan y almacenan las filas de los datos de la tabla de acuerdo con los

valores de la clave del índice.

Sólo puede haber un índice agrupado por cada tabla, porque las filas de datos

sólo pueden estar ordenadas de una forma.

La única ocasión en la que las filas de datos de una tabla están ordenadas es

cuando la tabla contiene un índice agrupado. Cuando una tabla tiene un índice

agrupado, la tabla se denomina tabla agrupada. Si la tabla no tiene un índice

agrupado se denomina montón de datos

Los índices agrupados se guardan junto a la misma tabla, puesto que están

incluidos en una de sus columnas.

3.1.3.2.- Índices no agrupados – NonClustered

Un índice no agrupado es como el índice de un libro. Se guarda en un lugar diferente a la

tabla y los punteros indican la ubicación de la información buscada dentro de la tabla.

Algunas características de los índices no agrupados son:

Los índices no agrupados tienen una estructura separada de las filas de datos, es

decir, se guardan en lugares diferentes. Normalmente es otra tabla de uso

interno que se guarda en archivos diferentes.

Un índice no agrupado contiene los valores de clave de índice no agrupado y

cada entrada de valor de clave tiene un puntero a la fila de datos en la tabla

que contiene el valor clave.

El puntero de una fila de índice no agrupado hacia una fila de datos se denomina

localizador de fila.

Unidad 3 – Administración Básica de Bases de Datos en el SGBD

Programador de Bases de Datos Relacionales 37

Page 38: E Un 3 GBD

La estructura del localizador de filas depende de si las páginas de datos están

almacenadas en un montón o en una tabla agrupada. Si están en un montón, el

localizador de filas es un puntero hacia la fila. Si están en una tabla agrupada,

el localizador de fila es la clave de índice agrupada.

3.1.4.- Integridad de los datos

Todo servidor SQL debe como norma de funcionamiento evitar o exigir que se cumplan

ciertas normas a la hora de introducir los datos de una fila que eviten la información defectuosa o

errónea.

El conjunto de normas que deben cumplir los dominios de los campos

presentes en las tablas se denominan normas de integridad.

Los tipos de datos que poseen los campos definen los posibles valores que pueden

almacenar en una fila. En sí mismo es una norma de integridad, la primera que se puede imponer.

Por ejemplo, si se define un campo como numérico, de entrada el servidor no permitirá almacenar

valores textuales.

El administrador debe aplicar otras normas para asegurar la integridad de los datos. Por

ejemplo, en un campo edad no se deberían permitir valores negativos. Para implementar estas

normas de integridad el lenguaje SQL y dependiendo de la implementación del servidor dispone de

las siguientes herramientas:

DEFAULT-Valor predeterminado: Define un valor que es almacenado en una

campo cuando no se indica ningún otro valor. Normalmente es utilizado cuando

un campo se define como obligatorio y se permite desde aplicación no indicar

ningún valor.

RULE/CHECK-Reglas de validación: Define los valores validos a almacenar en

una columna o un tipo de dato.

PRIMARY KEY-Clave Primaria: Define que el valor a almacenar en una columna

o campo sea valor único y no nulo.

FOREIGN KEY-Clave Foránea: Define que el valor a almacenar en una columna

o campo contiene un valor que hace referencia a una fila de otra tabla. Si se

intenta modificar o eliminar un campo referenciado en otras tablas, se produce

un error de integridad referencial y el servidor no lo permitirá.

Unidad 3 – Administración Básica de Bases de Datos en el SGBD

Programador de Bases de Datos Relacionales 38

Page 39: E Un 3 GBD

UNIQUE-Valor Único: Define un índice único sobre una columna o sobre una

combinación de columnas. Un índice único es un índice que no permite valores

duplicados.

Unidad 3 – Administración Básica de Bases de Datos en el SGBD

Programador de Bases de Datos Relacionales 39

Page 40: E Un 3 GBD

3.2.- LECCIÓN 3.2.2: GESTIÓN DE IMPORTACIÓN Y EXPORTACIÓN

DE DATOS

3.2.1.- Importación y exportación masiva de datos

La importación y exportación masiva de datos permite la transferencia eficaz de datos

entre servidores de bases de datos y orígenes de datos heterogéneos. La exportación masiva se

refiere a la copia de datos de una tabla de la base de datos en un archivo de datos externo o en

otro servidor de bases de datos y la importación masiva significa cargar datos de un archivo de

datos u otro servidor a una tabla de la base de datos. Por ejemplo, puede exportar datos de una

aplicación de Microsoft Excel a un archivo de datos y, después, importarlos masivamente en una

tabla de la base de datos

La capacidad de trasladar datos entre una tabla del servidor

SQL y un archivo es un requisito básico de la administración

de bases de datos.

La mayoría de servidores SQL disponen de herramientas propias de importación y

exportación de datos en masa.

Es esencial para la transferencia eficaz de datos entre servidores SQL

La exportación-exportación masiva se refiere a la copia-carga de datos de

una tabla del servidor SQL en-desde un archivo de datos.

XML es el formato más comúnmente usado por los servidores

SQL para realizar la importación-exportación masiva de

información

Normalmente, la importación – exportación masiva de datos será necesaria cuando se

precise una actualización de los servidores de datos SQL. La actualización del software servidor es

un proceso complejo que requiere de los procesos de importación-exportación de datos, y debe

ser riguroso en su planificación para evitar la pérdida de información

Unidad 3 – Administración Básica de Bases de Datos en el SGBD

Programador de Bases de Datos Relacionales 40

Page 41: E Un 3 GBD

Herramienta de importación-exportación masiva de datos usada en servidores Microsoft SQL Server 2000. En

esta pantalla del asistente se elige el destino, en este caso, un servidor SQL, dando la información de cuenta de usuario-

contraseña y base de datos donde volcar la información

3.2.1.1.- Código XML para el movimiento masivo de información

El lenguaje que podría denominarse “estandar” (debido a la multitud de sistemas que lo

implementan) para la mayoría de servidores SQL es el XML (eXtensible Markup Language)

XML proviene de un lenguaje inventado por IBM en los años

setenta, llamado GML (General Markup Language), que surgió

por la necesidad que tenía la empresa de almacenar grandes

cantidades de información.

Unidad 3 – Administración Básica de Bases de Datos en el SGBD

Programador de Bases de Datos Relacionales 41

Page 42: E Un 3 GBD

Unidad 3 – Administración Básica de Bases de Datos en el SGBD

Programador de Bases de Datos Relacionales 42

Algunas ventajas de utilizar XML como herramienta para la importación y exportación

masiva de datos son:

Extensible: Una vez diseñado y puesto en producción, permite la adición de

nuevas etiquetas de manera que es compatible con diseños anteriores.

El analizador es un componente estándar: no es necesario crear uno, se

permite el empleo de uno de tantos disponibles. De esta manera se evitan

errores de programación y se acelera el desarrollo de la aplicación.

Multiplataforma: Pueden crearse aplicaciones usando el lenguaje XML que

trabajen con diferentes implementaciones de servidor SQL, siempre que

soporten XML

Ejemplo de código XML. Este ejemplo muestra una estructura simple del código de marcas XML

3.2.1.2.- Lenguaje SQL para el movimiento masivo de información

Algunas de las implementaciones de servidores SQL incluyen código SQL para el

movimiento masivo de información hacia-desde el servidor.

La instrucción BULK INSERT Copia un archivo de datos a una tabla o vista de base de datos

en un formato especificado por el usuario.

Algunas consideraciones a tener en cuenta para evitar la pérdida de datos son:

Se debe definir bien el formato en el que están los datos del fichero de datos, es

decir, se debe indicar los caracteres que se utilizan para delimitar el valor de

cada campo ó el número de caracteres asignados a cada uno de ellos

<?xml version="1.0" "ISO-8859-1" encoding= ?> <Edit_Mensaje> <Mensaje> <Remitente> <Nombre>Nombre del remitente</Nombre> <Mail> Correo del remitente </Mail> </Remitente> <Destinatario> <Nombre>Nombre del destinatario</Nombre> <Mail> Correo del destinatario</Mail> </Destinatario> <Texto> <Parrafo>

Este es mi documento con una estructura muy sencilla no contiene atributos ni entidades....

</Parrafo> </Texto> </Mensaje> </Edit_Mensaje>

Page 43: E Un 3 GBD

Puede usarse XML para definir como están organizados los datos del archivo de

datos, de forma que luego la importación a la base de datos se realice desde el

archivo xml generado. Los datos se vuelcan primero desde el archivo externo al

archivo XML que contiene la definición de los mismos.

BULK INSERT base_de_datos.dbo.[nombre_tabla]

FROM 'unidad:\fichero_datos.txt'

WITH (

FIELDTERMINATOR = '|',

ROWTERMINATOR = '|\n'

)

BULK INSERT base_de_datos.dbo.[nombre_tabla]

FROM 'unidad:\fichero_datos.txt'

WITH (

FORMATFILE='C:\formato.xml'

)

Ejemplo instrucción BULK. Dos ejemplos que muestran la sintaxis SQL para la utilización de la instrucción BULK INSERT:

(A.- Usando opciones que indican el formato de los datos), (B.- Usando opciones XML que indica el formato de los datos)

Normalmente los servidores de bases de datos actuales inlcuyen herramientas que

permiten definir de forma sencilla el proceso de importación y exportación masiva de datos.

Unidad 3 – Administración Básica de Bases de Datos en el SGBD

Programador de Bases de Datos Relacionales 43

Page 44: E Un 3 GBD

4.- ANEXO I: INSTALACIÓN DE MICROSOFT SQL SERVER

Microsoft SQL Server es un sistema de gestión de bases de datos relacionales (SGBD)

basado en una modificación del estándar de SQL llamado Transact-SQL, capaz de poner a

disposición de muchos usuarios grandes cantidades de datos de manera simultánea.

Microsoft SQL Server constituye la alternativa de Microsoft a otros potentes sistemas

gestores de bases de datos como son Oracle, Sybase ASE, PostgreSQL o MySQL.

Algunas características de este sistema de gestión de bases de datos son:

Soporte de transacciones. (Motor de base de datos transaccional)

Escalabilidad, estabilidad y seguridad.

Soporta procedimientos almacenados.

Incluye también un potente entorno gráfico de administración, que permite el

uso de comandos DDL y DML gráficamente.

Permite trabajar en modo cliente-servidor, donde la información y datos se

alojan en el servidor y los terminales o clientes de la red sólo acceden a la

información.

Además permite administrar información de otros servidores de datos.

A la hora de instalar un software servidor se necesitará también un software cliente que

permita acceder al servicio para configurarlo y administrarlo. Además se deberá considerar la

necesidad de instalar paquetes adicionales de herramientas que amplíen la funcionalidad del

servicio.

En el caso de Microsoft SQL Server las versiones elegidas son:

Prerrequisitos: El software servidor necesita para su funcionamiento de ciertas

librerías instaladas en sistema, incluidas en el paquete Microsoft .Net

Framework 2.0. Estas librerías se encuentran en la página web de Microsoft para

su descarga en la dirección (Archivo dotnetfx.exe):

http://www.microsoft.com/downloads/details.aspx?FamilyID=0856EACB-4362-4B0D-8EDD-AAB15C5E04F5&displaylang=en

Software servidor: Microsoft dispone de múltiples versiones de SQL Server que

se diferencian en la cantidad de funciones adicionales disponibles para la

gestión de las bases de datos. En la fecha de redacción de este documento la

más reciente es Microsoft SQL Server 2005, aunque existe una versión beta de

Unidad 3 – Administración Básica de Bases de Datos en el SGBD

Programador de Bases de Datos Relacionales 44

Page 45: E Un 3 GBD

Microsoft SQL Server 2008. Dentro de las opciones disponible la más

recomendable es Microsoft SQL Server 2005 Express Edition, por ser una versión

de distribución gratuita y con la funcionalidad suficiente para el aprendizaje del

lenguaje SQL.

Software cliente: Microsoft dispone de un software cliente para la

administración del servidor SQL, Microsoft SQL Server Management Studio

Express. Dispone de un entorno gráfico para lanzar comandos DDL y DML, así

como un analizador de consultas. Es el más recomendable por su integración y

facilidad de utilización. Es posible su descarga gratuita desde la página web de

Microsoft

El sistema operativo que va a albergar el servidor debe cumplir con los siguientes

requerimientos mínimos:

Sistemas operativos compatibles

o Windows 2000 Service Pack 4

o Windows Server 2003 Service Pack 1

o Windows XP Service Pack 2

Requerimientos mínimos de Hardware

o Procesador: PIII a 600 MHz

o RAM : 192MB

o Disco duro : 525 MB

4.1.- INSTALACIÓN DEL SERVIDOR SQL SERVER EXPRESS 2005

La instalación del servidor no entraña ninguna dificultad puesto que prácticamente se

mantienen todas las opciones por defecto que el instalador presenta. Es posible modificar esta

configuración a posteriori desde la administración del servidor si fuera necesario.

El asistente de instalación va recopilando los parámetros necesarios para el correcto

funcionamiento posterior del servidor.

Unidad 3 – Administración Básica de Bases de Datos en el SGBD

Programador de Bases de Datos Relacionales 45

Page 46: E Un 3 GBD

4.2.- INSTALACIÓN DEL CLIENTE MICROSOFT SQL SERVER

MANAGEMENT STUDIO EXPRESS

Esta instalación no requiere prácticamente la participación del usuario. Como se verá más

adelante, será necesario configurar el servidor para hacer posible las conexiones desde el cliente.

En ese momento se dispondrá del servidor y cliente completamente funcional para comenzar a

definir las bases de datos y sus recursos.

4.3.- CONFIGURACIÓN MÍNIMA DEL SERVIDOR

Es necesario realizar ciertas configuraciones previas a la utilización del servidor instalado.

Para ello se instala de forma automática junto al servidor una aplicación llamada Microsoft SQL

Server Configuration Manager. Las más importantes son:

4.3.1.- Configuración de conexiones remotas

Por razones de seguridad Microsoft SQL

Server se instala por defecto únicamente para

admitir conexiones locales desde el propio

servidor. No permite la conexión remota de

clientes, y, por lo tanto, no permite el acceso a

los datos de forma remota. Es necesario activar

y configurar el servicio para que acepte esas

conexiones a través de, normalmente, TCP/IP.

Desde la aplicación de configuración se accede a

las propiedades del protocolo utilizado para la

transimisión de datos.

Una vez activado el protocolo de

comunicación con sus parámetros

correspondientes se debe activar el Explorador

de SQL Server para que se permita la navegación

por los recursos del servidor a través de las conexiones remotas de clientes.

Unidad 3 – Administración Básica de Bases de Datos en el SGBD

Programador de Bases de Datos Relacionales 46

Page 47: E Un 3 GBD

En caso necesario se deben configurar los servicios de la red de forma que se permitan las

conexiones al servidor. Por defecto, el servidor SQL de Microsoft utiliza el puerto 1433 y 1434 para

aceptar las conexiones de los clientes, aunque se pueden modificar por seguridad. Normalmente

se asignarán de forma estática, deshabilitando la

opción de puerto dinámico en la configuración

del protocolo TCP/IP. Los dispositivos de la red

como firewalls o routers deben permitir las

conexiones a los puertos seleccionados.

Después de aplicar un cambio de

configuración sobre el servidor es necesario

reiniciar el servicio para que se haga efectivo.

Ahora es posible conectar con el servidor desde una aplicación cliente como SQL

Management Studio para empezar a utilizarlo.

A la hora de conectar es necesario indicar correctamente los parámetros de conexión. Los

más importantes son :

4.3.1.1.- Nombre de servidor

Normalmente el nombre de servidor está compuesto por la pareja

servidor\nombreinstancia, siendo servidor el nombre de la máquina que lo alberga y

nombreinstancia el nombre asignado a la instancia del servidor que se desea conectar

Una instancia no es más que el conjunto de características y comportamientos dados al

servicio SQL instalado en el Sistema Operativo.

Unidad 3 – Administración Básica de Bases de Datos en el SGBD

Programador de Bases de Datos Relacionales 47

Page 48: E Un 3 GBD

Los objetos de una instancia son todas aquellas

configuraciones necesarias para dar a los clientes del servicio

la conectividad deseada; es decir, cuales son los protocolos

de conexión permitidos, como deben conectarse, etc.

Para instalar nuevas instancias del servidor será necesario ejecutar de nuevo la instalación

y definir un nuevo nombre de instancia. Posteriormente se deberá efectuar la configuración

mínima de la instancia para permitir el acceso remoto de la misma forma que se ha indicado en la

instancia por defecto llamada SQLEXPRESS.

Ejemplo de herramienta de configuración de los objetos de conectividad de la instancia MSSQLSERVER de un

servidor Microsoft SQL Server.

4.3.1.2.- Método Autenticación

Hace referencia al modo de comprobación de los usuarios que se conectan al servidor. Al

instalar el servidor se instala por defecto un usuario administrador con nombre sa y un login o

método de entrada con este usuario basado en nombre de usuario y contraseña. Para definir un

método de entrada se debe asignar un login y un password

Se denomina login al método de entrada utilizado para acceder a nuestro servidor,

compuesto de un nombre de usuario y una contraseña. En la instalación se define para el usuario

super administrador (sa) y en la creación de nuevos usuarios para su propio acceso. Es posible

utilizar usuarios definidos en el sistema como autentificación de entrada en el servidor. Para el

uso de la autenticación Windows se deberá crear previamente un usuario dentro del sistema que

compartan las contraseñas para que el usuario en cuestión pueda acceder tanto a los recursos del

sistema operativo como a la instancia del SQL y a los servicios que éste último utiliza.

Unidad 3 – Administración Básica de Bases de Datos en el SGBD

Programador de Bases de Datos Relacionales 48

Page 49: E Un 3 GBD

El password de cada usuario es la contraseña que se asigna a cada usuario para completar

el login y acceder al servidor SQL. Es importante resaltar que el super administrador (Usuario sa)

es un administrador total del servidor y es conveniente asignar

una contraseña a este usuario para evitar entradas indeseadas en

el mismo.

Una vez creada la instancia correctamente y tras haber

comprobado su correcto funcionamiento se debe aplicar unas

medidas básicas de seguridad consistentes en evitar que las

aplicaciones cliente sean incapaces de explorar las instancias que

existen en un servidor. Esta operación se puede realizar desde el

configurador de Microsoft SQL Server.

Unidad 3 – Administración Básica de Bases de Datos en el SGBD

Programador de Bases de Datos Relacionales 49

Page 50: E Un 3 GBD

5.- ANEXO II: INSTALACIÓN Y CONFIGURACIÓN DEL SERVIDOR MYSQL

5.1.- INTRODUCCIÓN:

MySQL es un servidor de bases de datos open source basado en el lenguaje SQL lenguaje

estándar de comunicación para la gestión de bases de datos.

Permite la conexión simultánea de usuarios a través del puerto TCP-3306

El acceso a las BD del servidor está controlado por medio de autenticación de cuentas de

usuarios, donde cada cuenta dispone de privilegios.

Las características más importantes de este servidor son:

Es de libre distribución, por lo que es gratuita su instalación y utilización.

Permite la instalación de distintos motores de bases de datos en función de los

requerimientos de utilización

Permite el acceso simultáneo a las bases de datos a través de puertos TCP

El acceso a las bases de datos del servidor está controlado por medio de

autentificación de cuentas de usuario

Permite la definición de políticas de seguridad y privilegios a cada cuenta de

acceso al servidor

Puede ser utilizado por aplicaciones basadas en servidor como Aplicaciones web

o por clientes dentro de la misma red

Unidad 3 – Administración Básica de Bases de Datos en el SGBD

Programador de Bases de Datos Relacionales 50

Page 51: E Un 3 GBD

Instalación típica de un servidor MySQL

5.2.- INSTALACIÓN:

Para instalar el servidor MySQL es necesario disponer de los archivos de

instalación. Éstos archivos se pueden descargar gratuitamente desde la página

web oficial del servidor http://www.mysql.org, donde es posible encontrar el

software para distintas arquitecturas y sistemas operativos. En el caso general se buscará la

versión completa para sistemas operativos Microsoft Windows en arquitecturas x86. Se recomienda

descargar el ejecutable .exe ó .msi, puesto que incorpora un asistente de instalación.

Unidad 3 – Administración Básica de Bases de Datos en el SGBD

Programador de Bases de Datos Relacionales 51

Page 52: E Un 3 GBD

Unidad 3 – Administración Básica de Bases de Datos en el SGBD

Programador de Bases de Datos Relacionales 52

Una vez descomprimido el archivo se inicia la

instalación al ejecutar el archivo setup.exe.

Inmediatamente aparece un asistente que recopilará los

datos suficientes para realizar la instalación en el sistema.

Los parámetros más importantes son:

5.2.1.- Tipo de instalación

Típica : instalación con valores

predeterminado

Completa : instalación con todas las

opciones

Custom: Instalación personalizada. Permite

seleccionar más valores que no se instalarán

por defecto como en las anteriores

Si se elige ésta última opción el asistente preguntará

Componentes para instalar: Servidor MySQL, programas cliente, documentación

y ayuda y herramientas de desarrollo

Ruta para instalar los archivos del servidor

Al finalizar el proceso de instalación se lanza el proceso de configuración del servidor a

través de un . El servidor no será funcional hasta que no se realice la configuración inicial.

Page 53: E Un 3 GBD

5.2.2.- Configuración inicial:

La configuración inicial se realiza a través de un asistente que recoge los parámetros de

funcionamiento del servidor para ajustar la instalación del servidor. Los parámetros más

importantes son:

Tipo de configuración:

o Detallada : configuración de todos los

parámetros

o Standard : configuración predeterminada

del servidor

Tipo de Servidor: Utilización principal que se le dará al servidor. Incide directamente

en la utilización de recursos del sistema por parte del servidor.

o Developer: Servidor de desarrollo.

Rendimiento bajo ya que usará pocos

recursos de la memoria.

o Server: SQL con Servidor Web.

Rendimiento Medio con un uso

razonable de la memoria.

o Dedicated: Dedicado Rendimiento

Alto. MySQL utilizará toda la memoria

disponible en el sistema.

Uso de las bases de datos. Determina cómo se va a realizar el acceso a las bases de

datos. Incide en el flujo de datos

o Multifuncional Database: Bases de datos

de propósito general. Se tratará de

optimizar el flujo de datos y la rapidez de

ejecución en las consultas

o Transactional Database Only: Gran

cantidad de información. Se tratará de

optimizar el flujo de datos. Normalmente

se aplican sobre un servidor dedicado

Unidad 3 – Administración Básica de Bases de Datos en el SGBD

Programador de Bases de Datos Relacionales 53

Page 54: E Un 3 GBD

o Non-Transactional Database Only: Se tratará de optimizar la rapidez de

ejecución en las consultas por encima del

flujo de datos.

Directorio de almacenamiento de las Bases de

Datos. Carpeta del disco del servidor donde se

almacenará la información de las bases de datos

creadas en el servidor.

Número de conexiones que se permiten

o OLAP: 20 conexiones

o OLTP: 500 conexiones, Servidor dedicado

o Manual: indicarlo manualmente

Conexión TCP/IP: Permite habilitar la conexión TCP/IP para el acceso al servidor

MySQL e indicar el puerto a utilizar. El puerto predeterminado es el 3306

Juego de caracteres: Permite definir el conjunto de caracteres válidos para utilizar a

la hora de almacenar la información. Permite las

siguientes opciones

o Standard: idioma por defecto, inglés e

idiomas europeos

o Best: Soporte multilenguaje. Permite

almacenar datos de cualquier idioma

o Manual: Elegir idioma de forma manual

Unidad 3 – Administración Básica de Bases de Datos en el SGBD

Programador de Bases de Datos Relacionales 54

Page 55: E Un 3 GBD

Modo de inicio del servicio: Permite indicar cómo se debe iniciar el servidor MySQL en

Windows.

o Install as Windows Service: lanzar el

servidor MySQL automáticamente como

servicio de Windows cada vez que se

arranque el sistema.

o Include BIN directory in Windows

PATH: Para lanzar el servidor MySQL

manualmente es posible incluir la ruta

de los ejecutables del servidor en el

path de Windows para no tener que navegar por las carpetas del sistema de

archivos y poder llamarlo desde cualquier carpeta

Método de acceso: Permite configurar la

contraseña del administrador del servidor.

o Modify Security Settings. Permite

especificar una cuenta de acceso “root”

con la contraseña que indiquemos

o Enable root Access: permite el acceso del

administrador de forma remota desde otro

nodo de la red

o Create an anonymous account: Permite habilitar un acceso anónimo sin

contraseña

Una vez el Asistente tiene toda la información procede a la configuración del Servidor

Unidad 3 – Administración Básica de Bases de Datos en el SGBD

Programador de Bases de Datos Relacionales 55

Page 56: E Un 3 GBD

Tras todos estos pasos, el servidor está listo para usarse, a falta de un inicio de sesión, que

es básico e indispensable para trabajar contra el servidor. Este inicio de sesión o login está

asociado a unos determinados permisos, que determinan que tareas está autorizado a realizar ese

usuario y qué tareas no puede hacer dentro del servidor. Entre ellas aparecen el acceso,

modificación y consulta de datos, además de realizar tareas administrativas y de control de las

bases de datos.

El servidor MySQL gestiona internamente las cuentas de acceso y los privilegios. Se realiza

a través de la cuenta que se configuró en el momento de la instalación, conocida como “root”, la

cual gestiona la administración de las cuentas dentro del propio servidor.

Dentro del servidor, aparece una base de datos ya creada por defecto llamada también

mysql, cuya finalidad es almacenar los datos de las cuentas y los privilegios

En cada acceso (login) se compara la información dada por el usuario con la tabla user

(de la base de datos mysql) para ver si existe coincidencia con el nombre de usuario,

host y contraseña

Si es así, se autoriza el acceso

La instalación de más instancias del servidor se realiza repitiendo el proceso de instalación

del servidor y especificando los parámetros de configuración descritos para cada una de las

instancias.

Unidad 3 – Administración Básica de Bases de Datos en el SGBD

Programador de Bases de Datos Relacionales 56

Page 57: E Un 3 GBD

6.- ANEXO III: INSTALACIÓN DE UN ADMINISTRADOR PARA MYSQL

Los gestores administrativos de MySQL son aplicaciones que proveen de una interfaz

gráfica más amigable que la línea de comandos para enviar instrucciones SQL y recibir los

resultados de ejecución de dichas instrucciones. Existen gestores de MySQL para la mayoría de los

sistemas operativos. Existe también la posibilidad de elegir un gestor MySQL basado en una

aplicación web, opción muy extendida. Entre los más utilizados están:

PhpMyAdmin: Es un gestor de MySQL basado en una

plataforma web. Utiliza HTML como interfaz de

usuario y PHP como lenguaje de programación que

accede al servidor, envía comandos y recibe las

respuestas del servidor. Necesita de un servidor

web para ser utilizado, normalmente Apache o

Internet Information Services con soporte para el

lenguaje PHP.

MySQL GUI Tools: Es un gestor de MySQL para Windows. Incluye las herramientas más

demandadas a la hora de administrar un servidor de bases de datos, que son

o MySQL Administrator: Administrador de MySQL

o MySQL Query Browser: Analizador y gestor de consultas que se envían al servidor

o MySQL Migration Toolkit: Herramienta que facilita la migración de bases de datos

desde o hacia MySQL

Otros administradores para Windows:

o WinSQL (ODBC) :

http://www.synametrics.com/synametricswebapp

/winsql.jsp

o EMS SQL Manager :

http://www.sqlmanager.net/en/products/mysql/

manager/download

o SQLYOG: http://webylog.com/en/downloads.php

o XAMPP: http://www.apachefriends.org/en/xampp-windows.html#644

Como ejemplo de instalación de cada tipo de gestor se detallará la instalación de MySQL

GUI Tools y PhpMyAdmin

de instalación de cada tipo de gestor se detallará la instalación de MySQL

GUI Tools y PhpMyAdmin

Unidad 3 – Administración Básica de Bases de Datos en el SGBD

Programador de Bases de Datos Relacionales 57

Page 58: E Un 3 GBD

Unidad 3 – Administración Básica de Bases de Datos en el SGBD

Programador de Bases de Datos Relacionales 58

6.1.- MYSQL GUI TOOLS

El paquete de instalación de MySQL GUI tools está

integrado dentro del paquete que se desacarga para la

instalación del servidor. Si no es así, se pueden descargar de

la página web oficial de MySQL, http://www.mysql.org. Las

MySQL GUI Tools incluyen tres herramientas, que se utilizan

para la gestión del servidor de manera gráfica.

Una vez descomprimido y ejecutado se lanzará un asistente con el objeto de recoger los

datos necesarios para la instalación de la aplicación.

Aceptación del contrato de licencia libre

Tipo de instalación: personalizada o estándar

Componentes a instalar

Ruta de instalación de los archivos

Una vez terminada la instalación los componentes elegidos están listos para funcionar

Page 59: E Un 3 GBD

6.2.- PHPMYADMIN

PhpMyAdmin es el gestor de bases de datos para MySQL basado en plataforma web más

utilizado en la actualidad. Debido a la especial arquitectura de la aplicación la instalación de

PhpMyAdmin necesita de una serie de requisitos iniciales:

Servidor Web con soporte para lenguaje PHP: Los más extendidos son Internet

Information Server para Windows y Apache con versiones disponibles para Windows y

Linux.

Librerías de acceso a MySQL :Necesarias para que PHP sea capaz de llamar a las

funciones que acceden al servidor y comunicarse con él.

Es necesario disponer de los archivos de instalación de los requisitos iniciales y de la

propia aplicación. En las siguientes direcciones web es posible encontrarlos:

Internet Information Server: Disponible junto al sistema operativo. Los archivos

necesarios para su instalación se incluyen con el sistema operativo.

Apache: Servidor web con licencia open source, que permite descargarlo desde

su página oficial sin coste alguno: http://www.apache.org

Intérprete de lenguaje PHP: Lenguaje con licencia Open source, por lo que es

posible su descarga gratuita desde su página web oficial: http://www.php.net

phpMyAdmin: Aplicación que también dispone de licencia open source, por lo

que desde su página web oficial http://www.phpmyadmin.net es posible su

descarga sin coste alguno.

6.2.1.- Instalación prerrequisitos:

Los prerrequisitos para poder utilizar la aplicación phpmyadmin son un servidor web con

intérprete de lenguaje php y librerías necesarias para acceder al servidor de bases de datos. Se

detalla la instalación de Internet Information Services y el intérprete PHP para este servidor.

6.2.1.1.- Internet Information Server

Internet Information Server es el servidor web de Microsoft y sólo se puede instalar en el

sistema operativo Windows. Se instala como un complemento del sistema y se ejecuta como un

servicio del sistema operativo

Unidad 3 – Administración Básica de Bases de Datos en el SGBD

Programador de Bases de Datos Relacionales 59

Page 60: E Un 3 GBD

Es necesario dirigirse al “Panel de control” de control del sistema e indicar , “Agregar o

quitar programas”. Una vez en el gestor de software se indicará “Agregar o quitar componentes de

Windows”

Indicar la instalación de “Servicios de internet Information System” y finalizar el

asistente. El servidor web ya está funcionando en el sistema con los parámetros del sitio web

predeterminado.

6.2.1.2.- Instalación Intérprete Php:

Un intérprete de un lenguaje de programación es una librería que permite que el sistema

sea capaz de entender las instrucciones que un programador lanza en ese lenguaje. PhpMyAdmin

utiliza php como lenguaje de programación, por lo que es necesario dotar al servidor web de un

intérprete que reconozca y sepa qué hacer cuando se llama a cada una de las instrucciones que

forman la aplicación.

PHP se puede instalar en la mayoría de los servidores

web puesto que es uno de los lenguajes más extendidos en la

programación de aplicaciones basadas en servidores web.

Una vez descargado el archivo y ejecutado, se presentará un

asistente que recogerá los datos necesarios para poder

realizar la correcta instalación del intérprete.

Unidad 3 – Administración Básica de Bases de Datos en el SGBD

Programador de Bases de Datos Relacionales 60

Page 61: E Un 3 GBD

Unidad 3 – Administración Básica de Bases de Datos en el SGBD

Programador de Bases de Datos Relacionales 61

En este caso, el asistente es muy sencillo y lo único que solicita es la aceptaci´pn del

contrato, la ruta de instalación y el servidor que se está utilizando.

Además el instalador preguntará los componentes adicionales a instalar, que son:

Extensiones:

o MySQL

o Multibyte String

o Mcrypt

Extras:

o Instalación del manual del intérprete.

o Instalador PEAR. Instalador para modulos PEAR

6.2.1.3.- Instalación PhpMyAdmin:

PhpMyAdmin es una aplicación web desarrollada en lenguaje PHP para

la administración de servidores MySQL, con la cual podemos gestionar

cualquier servidor MySQL. Permite tanto la administración de las bases de

datos de un servidor como la creación de su propia estructura de tablas y relaciones, así como

crear una barrera de seguridad para evitar accesos al servidor, ya que tras la instalación, sólo se

accede al servidor MySQL a través del propio PhpMyAdmin.

PhpMyAdmin es una aplicación web desarrollada en lenguaje PHP para

la administración de servidores MySQL, con la cual podemos gestionar

cualquier servidor MySQL. Permite tanto la administración de las bases de

datos de un servidor como la creación de su propia estructura de tablas y relaciones, así como

crear una barrera de seguridad para evitar accesos al servidor, ya que tras la instalación, sólo se

accede al servidor MySQL a través del propio PhpMyAdmin.

Page 62: E Un 3 GBD

A partir de esta instalación, quien lo use:

No precisa de grandes recursos de hardware: Sólo es necesario un S.O. con un

navegador y acceso al servidor Web.

No necesita realizar una instalación previa

No requiere un control de las versiones: Todos aquellos que se conecten al servidor

Web usan la misma aplicación y versión, puesto que es el servidor web quien accede al

servidor MySQL. Permite políticas de seguridad más estrictas, ya que es posible limitar

los accesos al servidor únicamente a los realizados desde el servidor web.

Alta disponibilidad mientras el servidor permanezca encendido, incluso para

permitir accesos desde fuera de la red local.

Para instalar la aplicación se deberá disponer de un servidor web y un servidor MySQL. La

configuración típica es la descrita en el anexo anterior, donde dentro de la red existe un servidor

web que accede a un servidor MySQL. El servidor Web y MySQL no requiere estar instalado en la

misma maquina

El servidor Web deberá disponer de un directorio virtual donde se alojarán las páginas php

del gestor. MySQL deberá tener creado una cuenta de acceso administrativo que será la que se

utilice para permitir al gestor acceder a él.

Instalación de phpMyAdmin

Los archivos de instalación se deberán descargar desde

la página web oficial de la aplicación. Los formatos

disponibles son

Archivos comprimidos en formato zip : Versión

para instalar en sistemas Microsoft Windows

Archivos comprimidos en formato tar.bz2,

tar.gz: Versión para instalar en sistemas Linux,

siendo válida cualquier distribución.

Realizar la instalación consiste únicamente en

descomprimir el paquete descargado en el directorio donde

está alojado el sitio web predeterminado del servidor Web,

conocido como el raíz del sitio web, o en el directorio

virtual definido a tal efecto.

Unidad 3 – Administración Básica de Bases de Datos en el SGBD

Programador de Bases de Datos Relacionales 62

Page 63: E Un 3 GBD

Una vez descomprimido ya se pude utilizar la aplicación, a falta de realizar una mínima

configuración inicial. Para ello basta con llamar a la página de inicio del sitio web index.php desde

un navegador de internet:

http://nombreservidor/phpmyadmin/index.php

Como aún no se ha realizado ninguna configuración el

sistema devolverá un error de acceso. El servidor no permite

el acceso con la cuenta por defecto configurada en

phpMyAdmin y remite un error a la aplicación.

Configuración mínima de phpMyAdmin

Para configurar phpMyadmin será necesario definir al menos los siguientes parámetros

Método de autentificación

Login

Ubicación del servidor MySQL

Todos los parámetros de configuración de la aplicación se encuentran incluidos en el

fichero config.inc.php. Será necesario, por tanto, editar dicho archivo y modificar los parámetros

necesarios. La aplicación dispone de archivos de configuración de ejemplo para las configuraciones

más usuales, por lo que lo más cómodo es utilizar uno de éstos y renombrarlo como

config.inc.php. Estos ficheros se encuentran en la raíz de la aplicación y sus nombres son:

Config.sample.inc.php

Libraries/config.default.php

Los parámetros a modificar en el archivo de configuración serán:

$cfg[’auth_type’]=‘cookie’. Método de autentificación mediante cookies

o Se creará una cookie en el navegador del

usuario de la aplicación con la información

de autenticación. Es el tipo de

autenticación que se utilizará para el

acceso al servidor puesto que es más

seguro. El gestor no se basa en

autentificación web, sino que el usuario se

autentifica ante el gestor.

Unidad 3 – Administración Básica de Bases de Datos en el SGBD

Programador de Bases de Datos Relacionales 63

Page 64: E Un 3 GBD

Unidad 3 – Administración Básica de Bases de Datos en el SGBD

Programador de Bases de Datos Relacionales 64

$cfg['Servers'][$i]['host']=‘localhost’. Ubicación del servidor MySQL

o El valor del parámetro puede ser el nombre del servidor MySQL o su dirección IP.

Si el servidor está ubicado en el mismo host que el servidor web es posible

utilizar el nombre genérico ‘localhost’

$cfg['blowfish_secret']=‘loq#ese@’. Codificación de la cookie

o Se debe codificar la cookie que contiene el login por razones de seguridad. Para

ello se utiliza un algoritmo de encriptación basado en una palabra secreta, que

es la que se incluye como valor del parámetro.

PhpMyAdmin es usado tanto para administrar el Servidor MySQL como para gestionar las

bases de datos que contiene.

Dependiendo de la validación se muestra:

Contenidos para un usuario administrador

Contenidos para un usuario de base de datos

Una vez introducido correctamente nuestro nombre de usuario y contraseña, se accede a

la interfaz de la aplicación. Se procederá a la administración del servidor a través de un conjunto

de páginas web que forman la aplicación de gestión.