Download Capítulo 1: Introducción a los Sistemas de Gestión de Bases de

Document related concepts

Denormalización (base de datos) wikipedia , lookup

Base de datos wikipedia , lookup

Cursor (base de datos) wikipedia , lookup

Lenguaje de definición de datos wikipedia , lookup

Modelo semántico de datos wikipedia , lookup

Transcript
Capítulo 1: Introducción a los
Sistemas de Gestión de Bases de Datos
(SGBD)
Fernando Cano Espinosa
Universidad de Oviedo. Departamento de Informática
[email protected]
Produced with LATEX seminar style & PSTricks
1
C ONTENIDO
1. Definición y Objetivos de un SGBD
2. Visión de los datos
3. Modelos de datos
4. Lenguajes de definición y de manipulación de datos
5. Funcionalidades de un SGBD
6. Usuarios de bases de datos
C ONTENIDO
2
D EFINICIÓN
Y
O BJETIVOS
DE LOS
SGBD
Definición de los SGBD
1. Una BD es una colección de datos interrelacionados
sobre un determinado sistema (ventas, un almacen, una
biblioteca, una línea aérea, una contabilidad, etc.)
2. Un SGBD es una colección de programas y estructuras
de datos que nos permiten la manipulación o gestión de
una BD.
3. Un SGBD nos debe proporcionar un entorno que nos
permita hacer todo lo que necesitamos con nuestros
datos y además de forma eficiente (rápida y cómoda).
4. Hoy tenemos bases de datos hasta en la sopa.com
D EFINICIÓN
Y
O BJETIVOS
DE LOS
SGBD
3
D EFINICIÓN
Y
O BJETIVOS
DE LOS
SGBD
Definición de los SGBD
1. Una BD es una colección de datos interrelacionados
sobre un determinado sistema (ventas, un almacen, una
biblioteca, una línea aérea, una contabilidad, etc.)
2. Un SGBD es una colección de programas y estructuras
de datos que nos permiten la manipulación o gestión de
una BD.
3. Un SGBD nos debe proporcionar un entorno que nos
permita hacer todo lo que necesitamos con nuestros
datos y además de forma eficiente (rápida y cómoda).
4. Hoy tenemos bases de datos hasta en la sopa.com
D EFINICIÓN
Y
O BJETIVOS
DE LOS
SGBD
4
Objetivos de los SGBD
Al principio los sistemas de manipulación de datos se
basaban en sistemas de ficheros (binarios o de texto). Por
ejemplo un fichero para los clientes, otro para los productos,
otro para los pedidos, etc. Estos sistemas presentan serios
inconvenientes:
• La duplicación de la información en ficheros diferentes
(ej. la información de un empleado aparece en el
fichero que manejan los de nominas y en el de los de
recursos humanos) que genera Redundancia y posibles
inconsistencias
• Los programas que utilizan los ficheros se encuentran con
diferentes formatos y se necesita generar nuevo código
ante modificaciones en la forma de almacenamiento
D EFINICIÓN
Y
O BJETIVOS
DE LOS
SGBD
5
• Aparecen problemas en accesos concurretes a los
ficheros que normalmente se delegan al sistema
operativos y a cada uno de los programas.
• Las restricciones de los datos (edad 18 años) se deben
codificar en todos los programas y añadir o modificar las
restricciones supone recodificaciones.
• Ante el problema de accesos de distintos usuarios, los
programas deben implementar sistemas para mantener
la seguridad y confidencialidad de los datos.
• Otro problema es la atomicidad. Se deben establecer
mecanismos para que ciertos procedimientos se
ejecuten de forma completa o no se realice ninguna de
sus acciones. Por ejemplo la transferencia de dinero de
una cuenta a otra. Para ello hay que tener en cuenta
que se pueden producir fallos de muy diversa naturaleza.
D EFINICIÓN
Y
O BJETIVOS
DE LOS
SGBD
6
Los sistemas de bases de datos ofrecen soluciones para
todos los problemas anteriores.
D EFINICIÓN
Y
O BJETIVOS
DE LOS
SGBD
7
V ISIÓN
DE LOS
DATOS
Niveles de Abstracción
• El nivel físico describe cómo se almacenan realmente los
datos (ej. el nombre del cliente es un varchar de 15, la
edad un smallint, etc.).
• El nivel lógico describe qué se almacena en la base de
datos (para un cliente almaceno el nombre, la edad, su
cuenta corriente, etc.) y las relaciones existenes entre
ellos (clientes y pedidos que realizan).
• El nivel de vistas describe qué se ve se desde las
diferentes visiones que tenemos de la base de datos.Se
puede ocultar información (ej el sueldo) por motivos de
confidencialidad, de eficiencia, etc.
V ISIÓN
DE LOS
DATOS
8
Niveles de Abstracción
• Lo ideal es intentar mantener una independencia entre
los distintos niveles. Es decir que los cambios en un nivel
no afecten a los otros (lógicamente muchas veces es
imposible).
• Pero se puede conseguir que modificaciones en un nivel
bajo (ej: la forma de almacenar el nombre de un cliente
o su edad) no afecte a niveles superiores.
• Las aplicaciones que se desarrollan sobre BD dependen
fundamentalmente del nivel lógico (de qué es lo que se
almacena).
V ISIÓN
DE LOS
DATOS
9
Instancias y Esquemas
• Los esquemas definen la estructura de los datos que se
van a guardar (similar a la definición de una clase en
lenguajes de programación). Por ejemplo, en un
esquema se define la estrutura de la tabla de clientes.
• Las instancias son el conjunto de datos que tengo
almacenados en un momento dado. Por ejemplo, el
contenido de la tabla de clientes
V ISIÓN
DE LOS
DATOS
10
M ODELOS
DE
DATOS
• Definición: Colección de herramientas conceptuales
para describir los datos con lo que vamos a trabajar.
Podremos representar (en algunos casos de forma
gráfica):
– los propios datos
– las relaciones entre ellos
– la semántica de los datos
– las restricciones de consistencia de los datos
• Dependiendo del nivel de abstracción en el que
trabajemos utilizaremos unos otros modelos.
• Las instancias son el conjunto de datos que tengo
almacenados en un momento dado. Por ejemplo, el
contenido de la tabla de clientes
M ODELOS
DE
DATOS
11
Algunos Modelos de Datos
• Modelo entidad-relación
• Modelo relacional
• Otros modelos:
– Modelo orientado a objetos
– Modelos semiestructurados (XML)
– Modelo de red
– Modelos jerárquico
M ODELOS
DE
DATOS
12
Modelo Entidad-Relación
• Se trata de modelar un problema del mundo real de
forma gráfica (Diagrama Entidad-Relación) dentro de un
nivel lógico de datos.
• Se identifican las entidades (producto, cliente, pedido,
etc.) con los atributos que las definen (nombre, edad,
precio, etc.).
• Se establecen las relaciones entre las entidades.
• Una vez realizado el Diagrama se puede traducir de
forma casi automática a código ejecutable en un SGDB
Relacional.
M ODELOS
DE
DATOS
13
Ejemplo de Pedidos
Pedido: 1369
Cliente: Vanesa Brosa
Empleado: Bibi Ciosa
Fecha: 02/02/2005
Producto
Patatas
Peras
Kiwis
Cantidad
5
2
4
Precio
Total
10
12
13
50
24
52
Total Pedido
M ODELOS
DE
DATOS
126
14
Ejemplo de Pedidos
Se pretende crear una una base de datos que refleje la
información que necesita empresita para organizar sus
pedidos. El sistema debe contemplar los siguientes datos y
restricciones:
• De los productos se quiere registrar un identificador, su
descripción, su precio y sus existencias.
• Para los clientes se quiere registrar un identificador, el
nombre, la calle y la ciudad.
• Para los empleados se quiere registrar un identificador, el
nombre, la calle y la ciudad.
• De los pedidos se almacenará el cliente que lo solicita, el
empleado que le atiende, la fecha y la cantidad de
cada producto que incluye.
M ODELOS
DE
DATOS
15
Modelo ER de Pedidos
id_empleado
calle
nombre
EMPLEADO
ciudad
(1, 1)
1:N
ATIENDE
precio
descripcion
id_producto
PRODUCTO
(0, n)
N:M
DETALLES_PEDIDO
cantidad
(0, n)
(0, m)
id_pedido
PEDIDO
fecha
(0, n)
existencias
1:N
SOLICITA
(1, 1)
nombre
calle
id_cliente
CLIENTE
ciudad
M ODELOS
DE
DATOS
16
Modelo Relacional
• Vamos a trabajar con tablas (relaciones) compuestas
por una serie de columnas (atributos).
• Repartiremos los datos de nuestro problema real en
diferentes tablas. Repitiendo columnas en diferentes
tablas podremos relacionar toda la información.
• Nos movemos en un nivel de abstracción lógico y casi
físico.
• Contaremos con toda una teoría matemática que nos
permitirá establecer restricciones entre los datos y
analizar la bondad del diseño (esquema) de nuestrs BD.
• Este modelo tiene una traducción casi directa a código
ejecutable en un SGBDR (normalmente SQL)
M ODELOS
DE
DATOS
17
Ejemplo Modelo Relacional
P edidos
IdPedido
Fecha
IdCliente
IdEmpleado
100
01/01/2005
1
10
101
01/01/2005
1
12
102
03/01/2005
2
12
Clientes
M ODELOS
DE
Empleados
IdCliente
Nombre
IdEmpleado
Nombre
1
Pepe
10
Luis
2
Paco
11
Ana
3
María
12
Pedro
DATOS
18
Ejemplo Modelo Relacional
P roductos
IdProducto
Nombre
Precio
Existencias
200
Patatitas
10
100
201
Gusanitos
12
1234
202
Scrotitos
21
222
DetallesP edido
M ODELOS
DE
DATOS
IdPedido
IdProducto
Cantidad
100
200
10
100
201
8
101
200
333
19
L ENGUAJES
DE
D EFINICIÓN
Y
M ANIPULACIÓN
DE DATOS
Lenguajes de Definición de datos
• Permiten especificar el esquema de la base de datos.
create table productos (
ID_producto smallint not null primary key,
descripcion varchar (15) not null,
precio decimal (6,2),
existencias int);
• El compilador de LDD genera un diccionario de datos
que contiene metadatos (es decir, datos acerca de los
datos)
• También suelen incluir órdenes para definir la estructura
de almacenamiento y los métodos de acceso utilizados
por el SGBD.
L ENGUAJES
DE
D EFINICIÓN
Y
M ANIPULACIÓN
DE DATOS
20
F UNCIONALIDADES
DE UN
SGBD
Los SGBDs son como pequeños sistemas operativos
orientados a la gestión de datos. Dentro de sus
componentes funcionales podemos resaltar los siguientes
gestores.
• Gestor de almacenamiento (gestión de la memoria
intermedia).
• Gestor de usuarios
• Gestor de integridad
• Gestor de transacciones
• Gestor de concurrencia
• Gestor de recuperaciones
Muchos de estos gestores están interrelacionados
F UNCIONALIDADES
DE UN
SGBD
21
U SUARIOS
DE
SGBD
Los usuarios se diferencian por la forma en que interactúan
con el SGBD.
• Administrador de la base de datos: Es el responsable
global del SGBD y de cada base de datos.
• Programadores de bases de datos: generan código
(SQL) propio del SGBD, pueden realizar labores de
definición y de manejo de datos. Interactúan con
intérpretes del SGBD generalmente de SQL.
• Programadores de aplicaciones: generan aplicaciones
en un determinado lenguaje e interactúan con el SGBD
por medio de llamadas LMD.
• Usuarios finales: invocan alguno de los programas de
aplicación previamente programados.
U SUARIOS
DE
SGBD
22
El Adminstrador del SGBD
• Coordina todas las actividades del SGBD.
• Entre las funciones del ABD se incluyen:
– Definición del esquema
– Estructura de almacenamiento y definición del
método de acceso
– Modificación del esquema y de la organización física
– Concesión de autorización para el acceso a los datos
– Especificación de las restricciones de consistencia
– Actuar como enlace con los usuarios
– Supervisión del rendimiento y respuesta a cambios de
los requisitos
U SUARIOS
DE
SGBD
23
U SUARIOS
DE
SGBD
24
U SUARIOS
DE
SGBD
25
U SUARIOS
DE
SGBD
26