BASES DE DATOS I - Facultad de Ciencias Exactas

Anuncio
Bases de Datos I
Cursada 2008
Clase 1: Introducción
Facultad de Ciencias Exactas
Universidad Nac. Centro de la Pcia. de Bs. As.
BASES DE DATOS I
INTRODUCCION
•
Sistemas de archivos.
Creados sin seguir un enfoque metodológico producen:
Duplicación de datos  datos redundantes.
Separación y aislamiento de datos.
Distintos formatos para los mismos datos.
Dependencia de datos  Programas dependientes de la estructura
física de los archivos.
Formatos de archivos incompatibles.
Consultas fijas / proliferación de programas de aplicación.
BASES DE DATOS I
BASE DE DATOS:
Base de datos: conjunto de datos almacenados inter-relacionados.
Diseñada para satisfacer los requerimientos de información de una
organización.
Almacena:
- los datos de la organización y
- una descripción de dichos datos (datos acerca de los datos)
metadatos  diccionario de datos
independencia de datos lógica – física.
BASES DE DATOS I
BASE DE DATOS:
Sistemas de bases de datos  Surgen a causa de los
problemas que plantean los sistemas de archivos.

Punto de vista lógico (usuarios):
- almacenan todos los datos en un solo lugar
- almacenan definiciones de las relaciones entre los datos.

Punto de vista físico:
- los datos se almacenan en uno o varios discos y en uno o
varios archivos (aún en una o varias locaciones).

Acceso a datos:
- a través del DBMS (Database Management System) y
mediante sentencias específicas (lenguajes de cuarta
generación).
ARQUITECTURA EN TRES NIVELES
BASES DE DATOS I
ARQUITECTURA EN TRES NIVELES
Propuesta de arquitectura del grupo
de estudio ANSI/SPARC (1977) para
los DBMS
Nivel conceptual  Esquema
conceptual  descripción de la BD
sin considerar el DBMS
Nivel interno  Esquema interno 
descripción de la BD en términos de
su representación física
Nivel externo  Esquema externo 
descripción de las vistas parciales de
la BD para cada grupo de usuarios
BASES DE DATOS I
ARQUITECTURA EN TRES NIVELES
Debido a que no existe un modelo conceptual generalizado y
accesible a los distintos tipos de DBMS, se prefiere distinguir cuatro
niveles:
– Nivel conceptual  Esquema conceptual
descripción organizativa de la BD
– Nivel lógico  Esquema lógico
descripción de la BD en términos del modelo de datos del DBMS
– Nivel interno  Esquema interno
descripción de la BD en términos de su representación física
– Nivel externo  Esquema externo
descripción de las vistas parciales de la BD que poseen los
distintos usuarios
BASES DE DATOS I
ESQUEMA DE ACCESO DEL SGBD A LOS DATOS
BASES DE DATOS I
INDEPENDENCIA DE DATOS
Propiedad que asegura que los programas de
aplicación sean independientes o inmunes a los cambios
realizados en datos que no usan o en detalles de
representación física de los datos a los que acceden.
Independencia lógica entre el esquema lógico/conceptual y los externos:
– Los esquemas externos y los programas de aplicación no deben ser
afectados por alteraciones del esquema lógico/conceptual sobre datos
que no usan.
Independencia física entre el esquema interno y el lógico/conceptual:
– el esquema lógico/conceptual no debe verse afectado por cambios en
el esquema interno referentes a la implementación de las estructuras de
datos, modos de acceso, tamaños de páginas, caminos de acceso, etc.
BASES DE DATOS I
SGBD / DBMS: SISTEMA DE GESTIÓN DE LA BASE DE DATOS
El SGBD/DBMS es una aplicación de alta complejidad que:
-Permite a los usuarios definir, crear la base de datos mediante el
lenguaje de definición de datos (DDL).
- Permite la inserción, actualización, eliminación y consulta de datos
mediante el lenguaje de manejo de datos (DML).
Hay dos tipos de lenguajes de manejo de datos:
Operativos (‘Procedurales’).
No operativos (declarativos) (SQL)
-Proporciona un acceso controlado a la base de datos mediante:
· sistema de seguridad.
· sistema de integridad.
· sistema de control de concurrencia.
· sistema de control de recuperación.
· catálogo o diccionario de datos (metadatos).
BASES DE DATOS I
SGBD / DBMS: SISTEMA DE GESTIÓN DE LA BASE DE DATOS (cont)
- Permite definir subesquemas o vistas: cada usuario “ve” la
parte de la base de datos que necesita.
. Proporcionan un nivel de seguridad adicional.
. Proporcionan un mecanismo para que los usuarios vean
los datos en el formato deseado.
. Representan una imagen consistente y permanente de
la base de datos, aunque ésta cambie su estructura.
BASES DE DATOS I
FUNCIONES DE LOS DBMS
1. Permitir a los usuarios almacenar datos, acceder a ellos y
actualizarlos, ocultando su estructura física.
2. Proporcionar un catálogo accesible por los usuarios.
3. Proporcionar un mecanismo que garantice el procesamiento de las
transacciones.
4. Proporcionar un mecanismo que realice el control de la
concurrencia.
5. Proporcionar un mecanismo para recuperación ante fallos.
6. Proporcionar un mecanismo de seguridad.
7. Integrarse con algún software de comunicación.
8. Encargarse de mantener las reglas de integridad.
9. Encargarse de mantener la independencia entre los programas y la
estructura de la base de datos.
10. Proporcionar herramientas para administrar la base de datos.
BASES DE DATOS I
ROLES EN EL AMBIENTE DE LAS BASES DE DATOS
- Administrador de la base de datos: realiza las siguientes tareas:
· Diseño físico e implementación de la base de datos.
· Control de la seguridad y la concurrencia.
· Mantenimiento del sistema.
· Mantenimiento de las prestaciones.
- Diseñadores de la base de datos: llevan a cabo el diseño lógico
de la base de datos.
- Programadores de aplicaciones: implementan los programas que
darán servicio a los usuarios finales.
- Usuarios finales: son los clientes de la base de datos.
BASES DE DATOS I
SISTEMAS DE BASE DE DATOS
Mantiene tres formas de ver los datos (en concordancia con los
niveles):
-El esquema de la base de datos: visión lógica global.
diseñador de la base de datos
administrador de la base de datos
-El subesquema o vista: visión lógica de los datos relacionados con una
aplicación.
programadores de aplicaciones
usuarios finales
-El esquema físico: el modo en que los datos están almacenados.
programadores de sistemas
creadores de DBMS
BASES DE DATOS I
HISTORIA DE LOS SISTEMAS DE BASES DE DATOS
- Primera generación: sistema jerárquico y sistema de red.
· Requieren complejos programas de aplicación.
· La independencia de datos es mínima.
· No tienen un fundamento teórico.
- Segunda generación: modelo relacional.
· Lenguaje de consultas estructurado: SQL.
· Desarrollo de DBMS relacionales comerciales.
· Limitada capacidad para modelar datos.
- Tercera generación: modelo orientado a objetos y modelo
relacional extendido.
· Subsana falencias del modelo relacional puro
BASES DE DATOS I
VENTAJAS DE LOS SISTEMAS DE BASES DE DATOS
Por la integración de datos:
. Se reduce la redundancia de datos, por lo tanto, se ocupa
menos espacio en disco.
. Se pueden evitar los problemas de inconsistencia de datos.
. Se puede extraer información adicional sobre los datos.
. Se pueden compartir los datos.
. Se facilita el mantenimiento de estándares.
BASES DE DATOS I
VENTAJAS DE LOS SISTEMAS DE BASES DE DATOS
Por las funciones del DBMS:
. Se reduce el problema de la integridad de los datos mediante la
especificación de reglas de integridad.
. Se mejora la seguridad de la BD frente a accesos no autorizados.
. Se pueden consultar los datos sin tener que programar aplicaciones.
. Se mejora la productividad de los programadores.
. Proporciona independencia de datos lógica – física.
. Se aumenta la concurrencia.
. Mejoran los servicios de copias de seguridad y de recuperación.
Estructura General de un DBMS
Fundamentos y Modelos de Bases de Datos
Adoración de Miguel y Mario Piattini. Ed.: 2º Ed. RA-MA, 1999.
BASES DE DATOS I
INCONVENIENTES DE LOS SISTEMAS DE BASES DE DATOS
-Los DBMSs son conjuntos de programas muy complejos y muy
extensos.
-Son caros.
-Frecuentemente se requiere adquirir equipamiento adicional.
-Si se pasa de un sistema de archivos a un sistema de bases de
datos, el costo de la migración es elevado.
-Algunas prestaciones pueden disminuir su desempeño.
- Son más vulnerables a los fallos.
BASES DE DATOS I
MODELOS DE DATOS
Un modelo de datos está formado por:
- Un conjunto de conceptos para definir la estructura de la base de
datos:
• Datos y Relaciones entre datos 
SENTENCIAS del lenguaje (DDL) para creación/modificación de la
estructura/supresión de tablas
-Un conjunto de conceptos para definir vínculos significativos
(semánticos) entre los datos y relaciones:
• Restricciones sobre datos y relaciones.
SENTENCIAS del lenguaje (DDL) para creación, modificación,
supresión de restricciones
- Un conjunto de operaciones para realizar consultas y
actualizaciones de datos.
SENTENCIAS del lenguaje (DML) para consultar, insertar, borrar,
modificar tuplas
BASES DE DATOS I
MODELOS DE DATOS
Dependiendo de los tipos de conceptos, los modelos de datos se
clasifican en:
Modelos conceptuales  Entidades Atributos Relaciones
Modelos lógicos  Registros / Objetos
Modelos físicos  Formato de los registros
Estructura de los ficheros
Métodos de acceso
BASES DE DATOS I
LENGUAJES DE LOS DBMS
. Lenguaje de Definición de Datos (DDL):
Definición del esquema de la base de datos.
Definición de vistas.
Definición de las estructuras de almacenamiento.
. Lenguaje de Manejo de Datos (DML):
Leer datos.
Actualizar datos.
. Lenguajes de Cuarta Generación (4GL):
Generadores de formularios.
Generadores de informes.
Generadores de gráficos.
Generadores de aplicaciones.
BASES DE DATOS I
MODELO RELACIONAL
Una relación R definida sobre un conjunto de dominios D1, D2, ...
Dn consta de:
Cabecera: conjunto fijo de pares atributo:dominio.
{(A1:D1), (A2:D2), ... (An:Dn)}
Cada Aj corresponde a un único Dj. Los Aj son distintos, los Dj
pueden coincidir.
Cuerpo: conjunto variable de tuplas.
Tupla: conjunto de pares atributo:valor.
{(A1:vi1), (A2:vi2), ... (An:vin)} con i = 1, 2, ... m
En cada (Aj:vij) se tiene que vij  Dj.
n: grado de R (relación n-aria)
m: cardinalidad de R (número de tuplas)
BASES DE DATOS I
TIPOS DE RELACIONES
Relaciones base: tienen nombre, son reales (archivos) (componentes
básicos de la base de datos).
Vistas: tienen nombre, se obtienen operando sobre tablas base u otras
vistas, habitualmente virtuales.
Instantáneas: tienen nombre, son derivadas, reales (sólo lectura),
refresco periódico.
Resultados de consultas: con o sin nombre, no persisten en la base
de datos.
Resultados intermedios: sin nombre, no persisten en la base de
datos.
Resultados temporales: con nombre, se destruyen automáticamente.
BASES DE DATOS I
REGLAS DE INTEGRIDAD
Regla de integridad : restricción que debe cumplirse sobre una
BD en todos sus estados.
Reglas inherentes al modelo relacional:
Regla de integridad de entidades  claves primarias
Regla de integridad referencial  claves extranjeras
Reglas de negocio : concepto general que abarca reglas de
integridad específicas de cada universo de discurso (plasmadas en
la BD)
Restricciones de dominios : al definir cada atributo sobre un
dominio, se impone una restricción sobre el conjunto de valores
permitidos (nulidad, unicidad)
BASES DE DATOS I
REGLA DE INTEGRIDAD DE ENTIDADES
"Ninguno de los atributos que componen la clave primaria puede ser
nulo."
Superclave: conjunto de atributos que identifica de modo único las
tuplas de una relación.
Clave candidata: superclave en la que ninguno de sus subconjuntos
es una superclave de la relación.
Clave: Debe satisfacer:
Unicidad
Irreducibilidad (minimalidad)
Observaciones:
La regla se aplica a las relaciones base (tablas base en la BD)
La regla se aplica sólo a la clave primaria (no a las claves alternativas).
BASES DE DATOS I
REGLA DE INTEGRIDAD REFERENCIAL
"Si en una relación hay alguna clave extranjera, sus valores deben
coincidir con valores de la clave primaria a la que hace referencia,
o bien, deben ser nulos."
Claves extranjeras de más de un atributos pueden ser parcial o
totalmente nulas  diferentes formas de “matching”
Si estando en un estado legal, una operación sobre los datos
conduce a un estado ilegal  dos estrategias:
Rechazar la operación (restrict / no action).
Aceptar la operación y Reparar realizando operaciones
compensatorias adicionales que conduzcan a un estado legal
(cascade / set null / set default).
BASES DE DATOS I
SQL

SQL es un lenguaje para la definición y manipulación de
datos, desarrollado inicialmente en los laboratorios de
investigación de IBM en California

Se transformó en un estándar en 1986 (SQL-1986)

La última versión desarrollada es SQL:1999 (también
conocida como SQL3), e incluye características
orientadas a objetos

El estándar previo es SQL-92 (SQL2)
BASES DE DATOS I
SQL

Componentes
 DDL (definición de esquemas, relaciones,
índices …)
 DML (manipulación de datos: inserciones,
borrados, modificaciones, consultas)
 Manipulación de datos empotrada (permite
ser usado desde otro lenguaje anfitrión)
BASES DE DATOS I
SQL permite:
• Crear y modificar esquemas, tablas, índices.
• Definir dominios para cada atributo de las relaciones.
• Forzar restricciones de integridad: de dominio, de clave primaria,
referenciales, de semántica compleja y/o arbitraria.
• Definir acciones ante violaciones de restricciones.
• Consultar tuplas mediante una combinación de álgebra y
cálculo relacional.
• Definir vistas de una relación o combinación de ellas.
• Insertar, borrar y actualizar tuplas en una relación.
BASES DE DATOS I
CREACIÓN DE TABLAS

EL SQL se basa en el modelo relacional: implementa
las relaciones como tablas, los atributos como
columnas y las tuplas como filas de las tablas.

Para definir una tabla en SQL se usa la sentencia
CREATE TABLE:
BASES DE DATOS I
CREACIÓN DE TABLAS
CREATE TABLE NombreTabla
({NombreCol TipoDato [NOT NULL] [UNIQUE]
[DEFAULT ValorDefecto]
[CHECK Condicion] [,...]}
[PRIMARY KEY (ListaColumnas),]
{[UNIQUE (ListaColumnas),] […,]}
{[FOREIGN KEY (ListaColumnasFK)
REFERENCES NbreTablaPadre [(ListaColumnasCK)],
[ON UPDATE AccionReferencial]
[ON DELETE AccionReferencial ]] [,…]}
{[CHECK (Condicion)] [,…] });
BASES DE DATOS I
CREACIÓN DE TABLAS
Crea una tabla con una o más columnas con su
TipoDato especificado.
NOT NULL, indica que el sistema debe rechazar
cualquier intento de insertar un nulo en esa columna.
Se puede especificar un valor por defecto (DEFAULT)
para esa columna.
Las claves primarias deben especificarse siempre como
NOT NULL.
La cláusula FOREIGN KEY especifica las claves
extranjeras y su correspondiente acción referencial
BASES DE DATOS I
TIPOS DE DATOS

Los tipos de datos dependen de la implementación de
SQL para cada sistema
dialectos
adhesión al estándar SQL

Generalmente se tienen:
• int: enteros.
• float: números decimales de punto flotante.
• datetime: tipo de dato para fechas.
• money: tipo de dato especial para cantidades contables.
• char(n): cadena de caracteres de largo fijo.
• varchar(n): cadena de caracteres de largo variable.
• binary: para tipos de datos en formato binario (archivos)
BASES DE DATOS I
TIPOS DE DATOS



Es posible definir dominios y utilizarlos en la
definición de las tablas
Un dominio es una definición de un tipo de dato, que
usualmente incluye otra información: valor por
defecto, alguna restricción.
syntaxis:
CREATE DOMAIN NombreDominio [AS] TipoDato
[DEFAULT ValorDefecto]
[CHECK (Condicion)];
BASES DE DATOS I
EJEMPLO
CREATE TABLE Propiedad (
NroPropiedad
NroPpiedad NOT NULL,
Ambientes
Integer NOT NULL
DEFAULT 0,
Valor
Integer NOT NULL,
Propietario
Prop NOT NULL,
NroEmpleado
NroEmp,
NroSucursal
Integer NOT NULL,
PRIMARY KEY (NroPropiedad),
FOREIGN KEY (NroEmpleado ) REFERENCES Empleado
ON DELETE SET NULL ON UPDATE CASCADE ….);
NroPpiedad, IdProp, NroEmp son dominios definidos por el usuario:
CREATE DOMAIN Prop AS char(35)
DEFAULT ‘Inmobiliaria’;
BASES DE DATOS I
BORRADO DE TABLAS
Para eliminar una tabla se usa la sentencia
DROP TABLE:

DROP TABLE NombreTabla [RESTRICT | CASCADE]
BASES DE DATOS I
MODIFICAR UNA TABLA
Se usa la sentencia ALTER TABLE, para modificar la
especificación de tipo y/o la longitud de una columna y/o el
esquema de atributos:
ALTER TABLE NombreTabla
[ADD[COLUMN] NbreColumna tipoDato [NOT NULL] [UNIQUE]
[DEFAULT Valor]
[CHECK (Condicion)]]
[DROP[COLUMN] NbreColumna [RESTRICT|CASCADE]]
[ADD[CONSTRAINT[NbreRestriccion]] DefinicionRestr]
[DROP[CONSTRAINT] nombreRes
[RESTRICT|CASCADE]]
[ALTER[COLUMN] SET DEFAULT opciónPredeterminada]
[ALTER[COLUMN] DROP DEFAULT]
Descargar