Beruflich Dokumente
Kultur Dokumente
DATOS
Nivel Bachillerato
HISTORIA Y
CONCEPTOS BSICOS
DE BASES DE DATOS
Base de Datos
Una base de datos o banco de datos (BD) es un conjunto
Metadatos
Definicin o informacin descriptiva de una base de datos
ACTORES EN UNA
BASE DE DATOS
DBMS.
Responsable :
acceso autorizado
coordinacin y monitorizacin de su uso, y de
recursos de software y hardware necesarios
Usuarios finales
Personas cuyos trabajos requieren acceso a la base de
requisitos
de
los
usuarios
finales,
especialmente de los usuarios finales
principiantes y paramtricos, as como las
especificaciones de desarrollo para las
transacciones enlatadas que satisfacen esos
requisitos.
Los
programadores
de
aplicaciones
implementan esas especificaciones como
programas; despus, verifican, depuran,
documentan y mantienen esas transacciones
enlatadas. Dichos analistas y programadores
(normalmente
conocidos
como
desarrolladores de software o ingenieros
de software) deben familiarizarse con todas
las posibilidades proporcionadas por el DBMS
al objeto de desempear sus tareas.
INTEGRIDAD
La integridad de una base de datos significa que, la base de datos o los
programas que generaron su contenido, incorporen mtodos que aseguren que
el contenido de los datos del sistema no se rompan as como las reglas del
negocio.
Dos pasos importantes en el diseo de las tablas son la identificacin de
valores vlidos para una columna y la determinacin de cmo forzar la
integridad de los datos en la columna. La integridad de datos pertenece a una
de las siguientes categoras:
Integridad de entidad
La integridad de entidad define una fila como entidad nica para una tabla
determinada. La integridad de entidad exige la integridad de las columnas de
los identificadores o la clave principal de una tabla, mediante ndices y
restricciones.
Integridad de dominio
La integridad de dominio viene dada por la validez de las entradas para una
columna determinada. Puede exigir la integridad de dominio para restringir el
tipo mediante tipos de datos, el formato mediante reglas y restricciones, o el
intervalo de valores posibles mediante restricciones.
Integridad referencial
La integridad referencial protege las relaciones definidas entre las tablas cuando
se crean o se eliminan filas. La integridad referencial garantiza que los valores de
clave sean coherentes en las distintas tablas. Para conseguir esa coherencia, es
preciso que no haya referencias a valores inexistentes y que, si cambia el valor de
una clave, todas las referencias a ella se cambien en consecuencia en toda la
base de datos.
Cuando se exige la integridad referencial, se impide a los usuarios:
Agregar o cambiar filas en una tabla relacionada si no hay ninguna fila
asociada en la tabla principal.
Cambiar valores en una tabla principal que crea filas hurfanas en una
tabla relacionada.
Eliminar filas de una tabla principal cuando hay filas relacionadas
coincidentes.
Integridad definida por el usuario
La integridad definida por el usuario permite definir reglas de empresa especficas
que no pertenecen a ninguna otra categora de integridad. Todas las categoras de
integridad admiten la integridad definida por el usuario. Esto incluye todas las
restricciones de nivel de columna y nivel de tabla en procedimientos almacenados
y desencadenadores.
SISTEMAS GESTORES DE
BASES DE DATOS.
Ejemplos de DBMS
ESTRUCTURA FSICA Y
LGICA DE GESTORES DE
BASES DE DATOS
ESTRUCTURA FSICA Y
LGICA DE LOS DBMS
Nivel Interno
Describe
la
estructura
almacenamiento fsico de la BD.
de
Nivel
Nivel Conceptual
Describe la estructura de toda la base de
Nivel Externo
Nivel
de vista incluye un
nmero
de
esquemas
externos
o
vistas
de
usuario.
Cada
esquema
externo describe la vista de
la BD de un grupo o de los
usuarios de la BD. Cada
vista tpicamente describe
la parte de la BD en la cual
un grupo de usuarios en
particular esta interesado y
oculta el resto de la BD para
otros grupos de usuario.
El nivel de visin es ms 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.
DISEO E IMPLEMENTACIN
DE MODELOS DE BASES DE
DATOS
Fases del diseo de bases de datos
Esquema conceptual
Descripcin concisa de los requisitos de datos por parte
Esquema conceptual
Alto nivel , se puede utilizar para garantizar que se han
Esquema lgico
Una
Esquema interno
Es la ltima fase del diseo de la DB, es aqu donde se
Diferencias
Modelo Conceptual
Modelo lgico
Depende de un tipo de
DBMS en particular
Mas cercano al ordenador
Ejemplos
Modelo conceptual
Modelo lgico
Modelo relacional
MODELO ENTIDAD
RELACIN
Conjuntos de entidades
Es un conjunto de entidades del mismo tipo que
Atributos
Los atributos describen propiedades que posee cada
Atributos
Tipos de atributos
Simples: No estn divididos en subpartes.
Compuestos: Se pueden dividir en subpartes. Por ejemplo
nombre-cliente, podra estar estructurado en un atributo
compuesto consistente en nombre, primer-apellido y segundoapellido.
Atributos derivados
El valor para este tipo de atributo se puede derivar de los
Conjunto de relaciones
Es una asociacin entre diferentes entidades. Por ejemplo
Ejemplo de relaciones
Particin
Es la asociacin de dos conjuntos de entidades, esto
Restricciones correspondencia de
cardinalidades
La
Uno a uno
Una entidad en A se asocia con a lo sumo una entidad en
Uno a varios
Una entidad en A se asocia con cualquier nmero de
Varios a uno
Una entidad en A se asocia con a lo sumo una entidad en
Varios a varios
Varios a varios. Una entidad en A se asocia con
Cardinalidad
Que tipo de cardinalidad es?
Claves
Una clave permite identificar un conjunto de atributos
Claves candidatas
Una superclave puede contener atributos innecesarios.
Clave primaria
Para denotar una clave candidata que es elegida por el
Diagrama Entidad-Relacin(E-R)
La estructura lgica general de una base de datos se
puede expresar grficamente mediante un diagrama ER. Los diagramas son simples y claros, cualidades que
pueden ser responsables del amplio uso del modelo E-R.
primaria.
CARACTERSTICAS
DEL MODELO E-R
EXTENDIDO
Especializacin
Un conjunto de entidades puede incluir subgrupos de entidades
Generalizacin
Es una relacin contenedora que existe entre el conjunto
Herencia de atributos
Los atributos de los conjuntos de entidades de nivel ms
Herencia de atributos
Si se llega a una porcin dada de un modelo E-R mediante
especializacin o generalizacin, el resultado es bsicamente el
mismo:
Un conjunto de entidades de nivel ms alto con atributos y relaciones
MODELO RELACIONAL
DE UN ESQUEMA E-R A
TABLAS
Tabla pago
Tabla Prestatario
Redundancia de tablas
Un conjunto de relaciones uniendo un conjunto de entidades dbiles
Redundancias de tablas
Combinacin de tablas
Considrese un conjunto AB de relaciones varios a uno
Combinacin de tablas
Por ejemplo, en el siguiente diagrama E-R la doble lnea
Atributos compuesto
Estos se representan en columnas separadas cada parte del atributo.
Qu es un modelo relacional?
El modelo relacional consiste en una representacin
Estructura bsica
Columnas, campos o cabeceras : Atributos
Dominio: conjunto de valores permitido para cada atributo,
Ejemplo
Relacin sucursal
Relacin cliente
Relacin impositor
Diagramas de esquema
Un esquema de bases de datos, junto con las dependencias de clave
ALGEBRA RELACIONAL
Qu es algebra relacional
Es un lenguaje de consulta procedimental, conformado
OPERACIONES
FUNDAMENTALES
Operaciones fundamentales
Las operaciones seleccin, proyeccin y renombramiento
se denominan operaciones unarias porque operan sobre
una sola relacin. Las otras tres operaciones operan sobre
pares de relaciones y se denominan, por lo tanto,
operaciones binarias.
Seleccin
Se representa por medio de la letra griega sigma en
minscula .
Permite seleccionar las tuplas de una relacin.
Ejemplo: Mostrar los prestamos donde el nombre de la
sucursal sea Navacerrada.
nombre-sucursal = Navacerrada (prstamo)
Relacin Prstamo
Resultado de la seleccin
Seleccin
Ejemplos
importe>1200 (prstamo)
Relacin prstamo
Resultado de la seleccin
Seleccin
Ejemplo:
Mostrar los prstamos de ms de 1.200 concedidos por
la sucursal de Navacerrada
nombre-sucursal = Navacerrada importe>1200 (prstamo)
Proyeccin
La proyeccin crea una nueva relacin con base a argumentos, es decir
Relacin prstamo
Resultado de la proyeccin
Composicin de operaciones
relacionales
Ejercicio:
Unin
Operacin binaria, denotada en la teora de conjuntos por medio de
una .
Ejemplo: averiguar el nombre de todos los clientes del banco que
tienen una cuenta, un prstamo o ambas cosas.
Relacin cliente: no tiene la informacin de las cuentas o prestamos.
Relacin impositor
Relacin prestatario
Diferencia de conjuntos
Se denota con el signo menos(-), permite buscar tuplas
Producto Cartesiano
La operacin producto cartesiano, denotada por un
OTRAS FUNCIONES
Interseccin
Se simboliza
Ejemplo:
Se desea averiguar todos los clientes que tienen un
Funciones de agregacin
Son funciones que toman una coleccin de valores y devuelven como
Definicin
avg
sum
max
min
count
Devuelve
conjunto
Distinct
el
nmero
de
elementos
del
trabajo-por-horas
Relacin trabajo-por-hora
Funcin de agregacin
G count-distinct(nombre-sucursal) (trabajo-por-horas)
El resultado de la funcin anterior es 3
(trabajo-por-horas)
LENGUAJES DE CONSULTA
ESTRUCTURADO (SQL)
SQL
Lenguajes de consulta estructurado.
Permite la realizacin de consultas a nivel de una gestor
de bases de datos.
LENGUAJE DE DEFINICIN DE
DATOS O ESQUEMAS DE
ESTRUCTURAS (DDL)
CREATE, ALTER Y DROP
Sesin II, libro Gua SQL Principiantes
CREATE
Permite la creacin de objetos tales como: base de datos,
CREATE Ejem
Crear una base de datos
USE master
GO
CREATE DATABASE NewDB
ON
(NAME = c:\cursosql1\ NewDB_dat,
FILENAME = c:\cursosql1\ NewDB.mdf,
SIZE = 4MB,
MAXSIZE = 10MB,
FILEGROWTH = 1)
GO
ALTER
Permite la modificacin de objetos a nivel de la base de
ALTER Ejem
Agregue por medio de la clusula ALTER a la tabla
PERSONA, la columna DIRECCION tipo varchar de 50.
ALTER TABLE PERSONA
ADD DIRECCION VARCHAR(50)
DROP
Borra fsicamente un objeto de base de datos: tablas,
de
Ejemplo
datos,
procedimientos
LENGUAJE DE
MANIPULACIN DE DATOS
(DML)
SELECT, INSERT, UPDATE y DELETE.
Sesin II, libro Gua SQL Principiantes
SELECT
Lanza consultas, se deben determinar cules son los campos (columnas)
SELECT Ejem
SELECT count (*), NOMBRE FROM dbo.PERSONA
WHERE EDAD=20
GROUP BY NOMBRE
HAVING COUNT(*)>1
INSERT
Permite el ingreso de datos a una tabla
Ejemplo:
INSERT
INTO
PERSONA (CEDULA,
APELLIDO, EDAD)
VALUES (509440300,MARIA,JUAREZ,20)
NOMBRE,
UPDATE
Permite la actualizacin de datos en una tabla
Importante
Si no se utiliza el comando WHERE, se modifica la
UPDATE Ejem
UPDATE dbo.PERSONA
SET EDAD = 15
WHERE CEDULA = '209440300'
DELETE
Permite eliminar los registros de una tabla, manteniendo
su estructura.
Importante:
Practica
Realizar las prcticas de la Sesin II de la Gua de SQL
OPERADORES Y
FUNCIONES DE
AGREGADO
Operadores lgicos: AND, OR Y NOT
Operadores de comparacin
Funciones de agregado
OPERADORES LGICOS
AND: Deben cumplirse todas las condiciones para que la consulta muestre las filas o registros
que cumplen con las condiciones establecidas. Combina dos expresiones booleanas y devuelve
TRUE cuando ambas expresiones son TRUE (verdaderas).
OR: Cualquiera de las condiciones que se cumplan la consulta muestra las filas o registros que cumplen
NOT: Permite mostrar las filas o registros que no coincidan con un valor.
OPERADORES LGICOS
OPERADORES DE COMPARACIN
Los operadores de comparacin comprueban si dos
FUNCIONES DE AGREGADO
Las funciones de agregado realizan un clculo sobre un
Ejemplos
SELECT CEDULA, NOMBRE
FROM dbo.PERSONA
WHERE
EDAD > 25
OR
EDAD < =35
CONSULTAS DE
SELECCIN
Select
CONSULTAS BSICAS
Entre las consultas bsicas se tienen, las consultas de
ORDENAMIENTO DE REGISTROS
Permite el ordenamiento de registros en forma ascendente
Ejemplo:
SELECT NOMBRE, APELLIDO FROM PERSONA
WHERE EDAD >20
ORDER BY NOMBRE DESC
CRITERIOS DE
SELECCIN
BETWEEN , LIKE E IN
BETWEEN
Permite
Ejemplo:
Muestre todas las personas en la que la edad no este
entre los 25 y 50 aos.
SELECT * FROM PERSONA
WHERE EDAD NOT BETWEEN 25 AND 50
LIKE
Permite encontrar coincidencias parciales entre cadenas
de texto.
Ejemplo:
Muestra las personas donde la primera letra del apellido es
P
SELECT * FROM PERSONA
WHERE APELLIDO LIKE 'P%'
IN
Este operador devuelve los registros que se encuentran dentro de una lista
Ejemplos:
Muestra todas las personas que tienen 25 o 45 o 50 aos.
SELECT * FROM PERSONA
WHERE EDAD IN (25,45,50)
AGRUPAMIENTO DE
REGISTROS Y FUNCIONES
AGREGADAS
GROUP BY
CLUSULA GROUP BY
Permite agrupar filas cuando se utilizan funciones como
CLUSULA HAVING
Una vez que GROUP BY ha combinado los registros, HAVING
Ejemplo
Muestra la cantidad de personas matriculadas en cada
TIPOS DE DATOS
Carcter, numricos, fecha y hora, cadenas
binarias, definidos por el usuario.
datos del sistema. Como su nombre lo indica son tipos de datos creados
por el usuario y definen para una base de datos especfica.
Para la creacin y eliminacin de tipos de datos de usuario se utilizan
los procedimientos almacenados sp_addtype y sp_droptype,
respectivamente.
Curso
USE CURSO
GO
EXEC sp_droptype DIRECCION
PROPIEDAD IDENTITY
Esta propiedad se suele utilizar para valores de llave primaria, genera en
Ejemplo:
CREATE TABLE CLASE
(
ID_ESTUDIANTE INT IDENTITY (50, 5) NOT NULL,
NOMBRE VARCHAR (20),
APELLIDO VARCHAR (20)
)
SUBCONSULTAS
Select anidados
SUBCONSULTAS
Las sub consultas son consultas de select anidades o
mnimo un registro
b. IN: Pertenencia a un conjunto de valores o ser miembro
SUBCONSULTAS
SUBCONSULTAS Ejem
Se necesita saber cul de las personas actualmente no
CONSULTAS
MULTITABLA O JOINS
Fusin, referencia cruzada, Unin
interna(unin, inner join), Unin externa(left
join, right join, full join)
CONSULTAS MULTITABLAS
Las consultas multitablas o joins, conocidas tambin como
PROCESO DE FUSIN
Es una de las formas ms simples de realizar una combinacin entre tablas, este proceso
Primero ordena las tablas por llave primaria y llave fornea respectivamente.
Luego recorre las tablas en forma secuencial revisando las condiciones especificadas en la clausula
where.
Cada vez que se cumpla la condicin en las dos tablas a la vez las filas sern mostradas en el
resultado.
Ejemplo:
Muestre, el nombre, apellido, cdigo, descripcin de curso, solo de las personas que
CONSULTAS DE REFERENCIAS
CRUZADAS
a. Muestran todas las combinaciones posibles de todas
CONSULTAS DE REFERENCIAS
CRUZADAS
Ejemplo:
SELECT A.CODIGO,DESCRIPCION
FROM CURSO A
CROSS JOIN HISTORIAL
INNER JOIN
Las consultas internas combinan tablas mediante la comparacin de los valores de las
Ejemplo:
Mostrar el nombre, apellido y cdula de todas las personas que estn actualmente
RIGHT JOIN: Unin a la derecha, toma los datos de la segunda tabla especificada.
FULL OUTER JOIN O FULL JOIN: Combinacin externa completa, incluye todas las filas
de ambas tablas, con independencia de que la otra tabla tenga o no un valor coincidente.
b.
c.
VISTAS
Tablas virtuales en SQL
Concepto de Vista
Una vista en terminologa SQL es una tabla que deriva de
view.
Ejemplo de vista
Crear una vista
CREATE VIEW
MATRICULADOS_VIEW
AS
SELECT A.CEDULA,A.NOMBRE,
A.APELLIDO
FROM PERSONA A
LEFT JOIN HISTORIAL B
ON A.CEDULA = B.CEDULA
WHERE B.CEDULA IS NOT NULL
GROUP BY A.CEDULA,A.NOMBRE,
A.APELLIDO
Para mostrar la informacin de la vista
SELECT * FROM
MATRICULADOS_VIEW
Nota: si se actualiza alguna de las tablas que componen la vista, esta se actualiza
automticamente.
SELECT INTO
Creacin de tablas
tabla con particiones, ya que las columnas de la tabla resultante son los campos
seleccionados en la consulta que dio origen a la nueva tabla. Los ndices, las
restricciones y los desencadenadores definidos en la tabla de origen no se transfieren
a la nueva tabla, ni se pueden especificar en la instruccin SELECT...INTO. Si se
requieren estos objetos, se deben crear despus de ejecutar SELECT...INTO.
Sintaxis
REGLAS DE INTEGRIDAD
Y NORMALIZACIN
REGLAS DE
INTEGRIDAD
Reglas de integridad
Las reglas de integridad son todas aquellas condiciones
NORMALIZACIN
1FN, 2FN y 3FN
Normalizacin
La normalizacin de un diseo lgico de la base de datos
son indivisibles.
Eliminar los grupos repetidos de las tablas individuales.
Crear una tabla independiente para cada conjunto de datos relacionados.
prctico. Si se tiene una tabla Clientes y se desea eliminar todas las dependencias posibles
entre los campos, se deben crear tablas independientes para las ciudades, cdigos
postales, representantes de venta, clases de clientes y cualquier otro factor que pueda estar
duplicado en varios registros. En teora, la normalizacin merece el trabajo que supone. Sin
embargo, muchas tablas pequeas pueden degradar el rendimiento o superar la capacidad
de memoria o de archivos abiertos.
Es ms factible aplicar la tercera forma normal slo a los datos que cambian con frecuencia.
Si quedan algunos campos dependientes, se debe disear la aplicacin para que pida al
usuario que compruebe todos los campos relacionados cuando cambie alguno.
Generalidades
Una tabla debe tener un identificador.
Una tabla solo debe almacenar datos para un nico tipo
de entidad.
En una tabla deben evitarse las columnas que acepten
valores nulos.
repitan.
PROCEDIMIENTOS
ALMACENADOS , TRIGER Y
CURSORES
Procedimientos almacenados
Los Procedimientos Almacenados o Store Procedure son
Procedimientos almacenados
Modificar
Eliminar
Ejecutar
Cursores
Un cursor es una especie de variable en el conjunto de
Cursores
Cerrar un cursor
Cursores
Declarar un cursor
Abrir un cursor
Cursores ejemplo
DECLARE HISTORIAL_CURSOR CURSOR FOR
SELECT CEDULA,CODIGO
FROM HISTORIAL
WHERE CEDULA = 609440300
AND CODIGO = 3
FOR UPDATE
OPEN HISTORIAL_CURSOR;
FETCH NEXT FROM HISTORIAL_CURSOR;
DELETE FROM HISTORIAL
WHERE CURRENT OF HISTORIAL_CURSOR;
CLOSE HISTORIAL_CURSOR;
DEALLOCATE HISTORIAL_CURSOR;
GO
Triggers
Se les conoce tambin como desencadenadores o
disparadores.
Son lo mismo que los Stored Procedures pero stos se
ejecutan desantendidamente y automticamente cuando
un usuario realiza una accin con la tabla de una base de
datos que lleve asociado este disparador. Se pueden
crear disparadores para las sentencias de SQL Insert,
Update y Delete.
Se utilizan en la validacin de datos, y el control de la
integridad dentro de la estructura de la base de datos.
Triggers
Creacin de trigger
Habilitar trigger
Deshabilitar trigger
Modificar un trigger
Eliminar trigger
Trigger ejemplo
CREATE TRIGGER TR_UP_HISTORIAL ON HISTORIAL
FOR UPDATE
AS
PRINT 'FILAS MODIFICADAS '+ CAST(@@ROWCOUNT
AS NCHAR(8))
GO
Referencias
Navathe E. Sistemas de Base de Datos. Addison Wesley,