Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
1.3. Personas que se relacionan con una base de datos y tipos de usuarios de una Base
de Datos, DBA y funciones de una DBA.
Administrador de base de datos (DBA): Define los esquemas de la base de datos;
estructuras y esquemas de los 3 niveles. Más que una persona suele ser un grupo
de personas.
Programador de aplicaciones: Utilizando un lenguaje de alto nivel y llamadas
en DML crean programas para usar la base de datos.
Usuarios casuales: Son usuarios que tienen conocimientos de los DL, hacen uso de
los DML de modo interactivo (es decir a través del procesador de consultas).
Usuarios ingenuos: Emplean el SBD sin conocimientos de informática, es decir
usan los programas de aplicación.
Administrador de Base de Datos: Denominado por sus siglas como: DBA, Database
Administrador. Es la persona encargada y que tiene el control total sobre el
sistema de base de datos, sus funciones principales son:
Definición de esquema: Es el esquema original de la base de datos se crea
escribiendo un conjunto de definiciones que son traducidas por el compilador de
DDL a un conjunto de tablas que son almacenadas permanentemente en el
diccionario de datos.
Definición de la estructura de almacenamiento del método de acceso: Estructuras
de almacenamiento y de acceso adecuados se crean escribiendo un conjunto de
definiciones que son traducidas por e compilador del lenguaje de almacenamiento
y definición de datos.
Concesión de autorización para el acceso a los datos: Permite al administrador de
la base de datos regular las partes de las bases de datos que van a ser accedidas
por varios usuarios.
Especificación de limitantes de integridad: Es una serie de restricciones que se
encuentran almacenados en una estructura especial del sistema que es consultada
por el gestor de base de datos cada vez que se realice una actualización al sistema.
1.4. Niveles de Abstracción, método general para realizar la abstracción del mundo real.
Uno de los objetivos principales de una base de datos es proporcionar a los usuarios una
visión abstracta de los datos. Es decir, el sistema oculta ciertos detalles relativos a la forma
en que se almacenan y mantienen los datos. Esto se logra definiendo tres niveles de
abstracción en los que puede considerarse la base de datos: físico, conceptual y de visión.
En el nivel físico se describe cómo se almacenan los datos en cuanto a detalles de
estructuras de datos complejas del nivel más bajo.
En el nivel conceptual, que es el siguiente nivel más alto de abstracción, se
describe cuáles son los datos reales que están almacenados en la base de datos y
qué relaciones existen entre los datos.
El nivel de visión es más alto, en el cual se describe solo una parte de la base de
datos y se presentan vistas diferentes de la misma base de datos a los usuarios.
Comandos
Existen dos tipos de comandos SQL:
DLL que permiten crear y definir nuevas bases de datos, campos e índices.
DML que permiten generar consultas para ordenar, filtrar y extraer datos de la
base de datos.
Comandos DLL
Comando Descripción
CREATE Utilizado para crear nuevas tablas, campos e índices
DROP Empleado para eliminar tablas e índices
Utilizado para modificar las tablas agregando campos o cambiando la definición
ALTER
de los campos.
Comandos DML
Comando Descripción
Utilizado para consultar registros de la base de datos que satisfagan un criterio
SELECT
determinado
INSERT Utilizado para cargar lotes de datos en la base de datos en una única operación.
UPDATE Utilizado para modificar los valores de los campos y registros especificados
DELETE Utilizado para eliminar registros de una tabla de una base de datos
Cláusulas
Las cláusulas son condiciones de modificación utilizadas para definir los datos que desea
seleccionar o manipular.
Cláusula Descripción
Utilizada para especificar la tabla de la cual se van a seleccionar los
FROM
registros
Utilizada para especificar las condiciones que deben reunir los registros
WHERE
que se van a seleccionar
GROUP BY Utilizada para separar los registros seleccionados en grupos específicos
HAVING Utilizada para expresar la condición que debe satisfacer cada grupo
Utilizada para ordenar los registros seleccionados de acuerdo con un
ORDER BY
orden específico
Operadores Lógicos
Operador Uso
Es el "y" lógico. Evalúa dos condiciones y devuelve un valor de verdad sólo si
AND
ambas son ciertas.
Es el "o" lógico. Evalúa dos condiciones y devuelve un valor de verdad si alguna de
OR
las dos es cierta.
NOT Negación lógica. Devuelve el valor contrario de la expresión.
Operadores de Comparación
Operador Uso
< Menor que
> Mayor que
<> Distinto de
<= Menor o igual que
>= Mayor o igual que
= Igual que
BETWEEN Utilizado para especificar un intervalo de valores.
LIKE Utilizado en la comparación de un modelo
In Utilizado para especificar registros de una base de datos
Funciones de Agregado
Las funciones de agregado se usan dentro de una cláusula SELECT en grupos de registros
para devolver un único valor que se aplica a un grupo de registros.
Funciónn Descripción
AVG Utilizada para calcular el promedio de los valores de un campo determinado
COUNT Utilizada para devolver el número de registros de la selección
SUM Utilizada para devolver la suma de todos los valores de un campo determinado
MAX Utilizada para devolver el valor más alto de un campo especificado
MIN Utilizada para devolver el valor más bajo de un campo especificado
Orden de ejecución de los comandos
Dada una sentencia SQL de selección que incluye todas las posibles cláusulas, el orden de
ejecución de las mismas es el siguiente:
1. Cláusula FROM
2. Cláusula WHERE
3. Cláusula GROUP BY
4. Cláusula HAVING
5. Cláusula SELECT
6. Cláusula ORDER BY
Unidad III. Modelado Relacional
3.1. Modulación de una Base de Datos
Los modelos de datos aportan la base conceptual para diseñar aplicaciones que hacen un
uso intensivo de datos, así como la base formal para las herramientas y técnicas
empleadas en el desarrollo y uso de sistemas de información. Con respecto al diseño de
bases de datos, el modelado de datos puede ser descrito así (Brodie 1984:20): "dados los
requerimientos de información y proceso de una aplicación de uso intensivo de datos (por
ejemplo, un sistema de información), construir una representación de la aplicación que
capture las propiedades estáticas y dinámicas requeridas para dar soporte a los procesos
deseados (por ejemplo, transacciones y consultas). Además de capturar las necesidades
dadas en el momento de la etapa de diseño, la representación debe ser capaz de dar
cabida a eventuales futuros requerimientos".
Entidades y Relaciones
El modelo de datos más extendido es el denominado ENTIDAD/RELACIÓN (E/R) En el
modelo E/R se parte de una situación real a partir de la cual se
definen entidades y relaciones entre dichas entidades:
Entidad.- Objeto del mundo real sobre el que queremos almacenar información
(Ej: una persona). Las entidades están compuestas de atributos que son los datos
que definen el objeto (para la entidad persona serían DNI, nombre, apellidos,
dirección,...). De entre los atributos habrá uno o un conjunto de ellos que no se
repite; a este atributo o conjunto de atributos se le llama clave de la entidad, (para
la entidad persona una clave seria DNI). En toda entidad siempre hay al menos una
clave que en el peor de los casos estará formada por todos los atributos de la
tabla. Ya que pueden haber varias claves y necesitamos elegir una, lo haremos
atendiendo a estas normas:
Que sea única.
Que se tenga pleno conocimiento de ella.- ¿Por qué en las empresas se asigna a
cada cliente un número de cliente?.
Que sea mínima, ya que será muy utilizada por el gestor de base de datos.
Relación.- Asociación entre entidades, sin existencia propia en el mundo real que
estamos modelando, pero necesaria para reflejar las interacciones existentes entre
entidades. Las relaciones pueden ser de tres tipos:
Relaciones 1-1.- Las entidades que intervienen en la relación se asocian una a una
(Ej: la entidad HOMBRE, la entidad MUJER y entre ellos la relación MATRIMONIO).
Relaciones 1-n.- Una ocurrencia de una entidad está asociada con muchas (n) de
otra (Ej: la entidad EMPRESA, la entidad TRABAJADOR y entre ellos la relación
TRABAJAR-EN).
Relaciones n-n.-Cada ocurrencia, en cualquiera de las dos entidades de la relación,
puede estar asociada con muchas (n) de la otra y viceversa (Ej: la entidad
ALUMNO, la entidad EMPRESA y entre ellos la relación MATRÍCULA).
Representación gráfica de Entidades y Relaciones
Para asimilar fácilmente un diseño de datos cuando se emplea el modelo E/R se
utilizan los siguientes elementos gráficos:
identificadores Un atributo que ayuda a identificar a una entidad son los atributos de la
llave primaria.
.
*Aridad: El número de columnas es llamado aridad o grado.
Consiste en aplicar una serie de reglas a las relaciones obtenidas tras el paso del modelo
entidad-relación al modelo relacional.
Dependencias Funcionales
Una dependencia funcional, denotada por X -> Y, entre dos conjuntos de atributos X y Y
que son subconjuntos de R (R ={A1, A2,...,A3}) especifica una restricción sobre las posibles
tuplas que podrían formar un ejemplar de relación r de R. La restricción dice que, para
cualesquier dos tuplas t1 y t2 de r tales que t1[X] = t2[X], debemos tener también t1[Y] =
t2[Y]. Esto significa que los valores componentes de Y de una tupla de r dependen de los
valores del componente X, o están determinados por ellos; o bien, que los valores del
componente X de una tupla determinan de manera única (o funcionalmente) los valores
del componente Y. También decimos que hay una dependencia funcional de X a Y o que Y
depende funcionalmente de X.
atributo puede determinar funcionalmente a varios atributos lo cual se denota a -> (b1,
b2, ...). Puede darse una dependencia funcional mutua: a -> b y b -> a o lo que es lo
mismo a <-> b. Nóse que el concepto de dependencia funcional no depende de la
extensión concreta (contenido) que en un momento determinado tenga la tabla sino de
cualquier posible extensión que pudiera tener.
Proyectividad. Si x -> y+z entonces x -> y. Ejemplo: si a partir del dni es posible deducir el
nombre y la dirección de una persona, entonces con el dni es posible determinar el
nombre.
Aditividad. Si x -> y y z -> w entonces x+z -> y+w. Ejemplo: si con el dni se determina el
nombre y con la dirección el teléfono de una persona, entonces con el dni y la dirección
podrá determinarse el nombre y el teléfono.
Transitividad o enlace de dependencias funcionales. Si x -> y e y -> z entonces x -> z.
Ejemplo: si con el dni puede determinarse el código de la provincia de residencia de una
persona y con éste código puede determinarse el nombre de la provincia, entonces con el
dni puede determinarse el nombre de la provincia. Éste es el mecanismo básico de
funcionamiento del enlace entre tablas a partir de claves ajenas.
Reglas de normalización
1. No pérdida de información.
Sea T(A,D) que se divide en T1(A1,D1) y T2(A2,D2). A partir de los atributos comunes en
ambos esquemas es posible determinar los atributos de T1 no presentes en T2 (es decir, el
conjunto A1 - A2) o bien los atributos de T2 no presentes en T1 (el conjunto diferencia A2
- A1). Desde cualquier esquema se consigue recuperar los datos del otro mediante un
mecanismo de clave ajena que permite reconstituir el esquema original de partida.
Expresado mediante dependencias funcionales, la intersección de los conjuntos de
atributos A1 y A2 debe determinar funcionalmente la diferencia de los conjuntos de
atributos A1 - A2 o bien A2 - A1.
Un esquema relacional que satisface todas las restricciones impuestas por la tercera
forma normal se considera de buena calidad aunque es mejor que satisfaga una
interesante propiedad. La verificación de una forma normal implica el cumplimiento de
todas las formas normales anteriores. La primera forma normal es de cumplimiento
obligatorio para que exista siquiera un esquema relacional propiamente formado
FN2. Si FN1 y cada atributo de la tabla que no forma parte de la clave depende
funcionalmente de forma completa de la clave primaria. Es decir, depende de toda la clave
y no de ningún subconjunto de ella. Se pretende garantizar una correcta elección de
claves y eliminar redundancias. Si la clave están formada por un único atributo entonces
ese esquema estará seguro en segunda forma normal.
Es una de las formas normales mas deseables que se pueden obtener. Es un esquema de
relación R esta en FNBC respecto a un conjunto de dependencias funcionales F si , para
todas las dependencias funcionales de F+ de la forma α → ß, donde α → R y B→ R, se
cumple al menos una de las siguientes condiciones:
Tutoriales. Unidad IV
El proceso de normalización
El proceso de normalización consiste en comprobar en secuencia si el esquema original
está en 1FN, 2FN y 3FN, analizando las dependencias funcionales en cada paso.
Un ejemplo completo
Tenemos una empresa pública donde los puestos de trabajo están regulados por el
Estado, de modo que las condiciones salariales están determinadas por el puesto. Se ha
creado el siguiente esquema relacional
adiaz@ecn.es;
333Ana Díaz Administrativo1500
ana32@gmail.com
La clave primaria de R' es (K, M'), dado que podrá haber valores de K repetidos,
para los valores multivaluados en M.
Siguiendo el ejemplo, tendríamos el siguiente esquema para la nueva
tabla EMPLEADOS'(a) con clave primaria (nss, email):
nss nombre puesto salarioemail
TABLE 2
Crear una nueva relación N(K, M'), es decir, una relación con una clave
ajena K referenciando R', junto al atributo M', que es la variante mono-valuada del
atributo M.
TABLE 3
nss email
111 juanp@ecn.es
111 jefe2@ecn.es
222 jsanchez@ecn.es
333 adiaz@ecn.es
333 ana32@gmail.com
... ...
TABLE 4
Está en 1FN.
Todos sus atributos que no son de la clave principal tienen dependencia funcional
completa respecto de todas las claves existentes en el esquema. En otras palabras, para
determinar cada atributo no clave se necesita la clave primaria completa, no vale con una
subclave.
La 2FN se aplica a las relaciones que tienen claves primarias compuestas por dos o más
atributos. Si una relación está en 1FN y su clave primaria es simple (tiene un solo atributo),
entonces también está en 2FN. Por tanto, de las soluciones anteriores, la
tabla EMPLEADOS'(b) está en 1FN (y la tabla EMAILS no tiene atributos no clave), por lo
que el esquema está en 2FN. Sin embargo, tenemos que examinar las dependencias
funcionales de los atributos no clave de EMPLEADOS'(a). Las dependencias funcionales
que tenemos son las siguientes:
puesto->salario
En general, tendremos que observar los atributos no clave que dependan de parte de la
clave.
Para solucionar este problema, tenemos que hacer lo siguiente para los gupos de
atributos con dependencia incompleta M:
Siguiendo el ejemplo anterior, crearíamos una nueva relación con los atributos que tienen
dependencia incompleta:
11
Juan Pérez Jefe de Área 3000
1
22
José SánchezAdministrativo1500
2
33
Ana Díaz Administrativo1500
3
TABLE 5
Y al eliminar de la tabla original estos atributos nos quedaría:
nss email
11
juanp@ecn.es
1
11
jefe2@ecn.es
1
22
jsanchez@ecn.es
2
33
adiaz@ecn.es
3
33
ana32@gmail.com
3
... ...
TABLE 6
Como vemos, la solución a la que llegamos es la misma que en la otra opción de solución
para el problema de 1FN.
está en 2FN
nss->puesto
puesto->salario
Por lo tanto la descomposición sería la siguiente:
11
Juan Pérez Jefe de Área
1
22
José SánchezAdministrativo
2
33
Ana Díaz Administrativo
3
TABLE 7
En la nueva tabla PUESTOS, la clave sería el puesto, que también queda como clave ajena
referenciando la tabla EMPLEADOS. El resto de las tablas quedan como estaban.