27/01/2016
Fundamentos de Bases de datos
Introduccin
Nivelacin - 2016
Ing. Martn Leiva Castillo
[email protected]
Objetivos del curso
Disear bases de datos relacionales para el soporte de
sistemas de procesamiento de transacciones
Programar bases de datos transaccionales usando
Microsoft SQL Server 2012
Administrar bases de datos usando Microsoft SQL Server
2012
Disear e implementar bases de datos para el soporte de
toma de decisiones
Principales herramientas
Microsoft SQL Server
Microsoft SQL Server 2012 Express
http://www.microsoft.com/es-es/download/details.aspx?id=29062
AllFusion Erwin Data Modeler 7
27/01/2016
Microsoft SQL Server 2012 Express (1)
Microsoft SQL Server 2012 Express (2)
Ambiente de procesamiento de archivos
REPORTES
ARCHIVO
CLIENTES
PROGRAMA DE
CLIENTES
CONSULTA
REPORTES
Bases de datos
ARCHIVO
PROVEEDORES
PROGRAMA DE
PROVEEDORES
CONSULTA
27/01/2016
Ambiente de procesamiento de archivos
Desventajas
Satisfacen necesidades especficas
Redundancia de datos
Aislamiento de los datos
Difcil acceso a los datos
Problemas de integridad de datos
Ambiente de administracin de datos
DATOS DE
CLIENTES
DATOS
DE
PROVEEDORES
REPORTES
PROGRAMA DE
CLIENTES
CONSULTA
Sistema de gestin
de bases de datos
(DBMS)
Base de datos
REPORTES
PROGRAMA DE
PROVEEDORES
CONSULTA
REPORTES
CONSULTA
Qu es una base de datos?
Es una coleccin de datos interrelacionados almacenados en
conjunto sin redundancias perjudiciales e innecesarias
Su finalidad es la de servir a una o ms aplicaciones de la
mejor manera posible
Los datos se almacenan de modo que resultan
independientes de los programas que los usan
Tipo de bases de datos
Existen varias categorizaciones
Las ms comunes son:
Bases de datos OLTP (On Line Transaction Processing)
Bases de datos OLAP (On Line Analytical Processing)
27/01/2016
Bases de datos OLTP
Bases de datos dinmicas donde la informacin se
modifica en tiempo real
Los datos se insertan, se eliminan, se modifican y se
consultan en lnea durante la operatividad de los sistemas
informticos
Estn diseadas para un mejor desempeo en la insercin,
eliminacin y modificacin de datos
Bases de datos OLAP
Bases de datos estticas donde la informacin no es
afectada en tiempo real
Los datos se consultan para el anlisis y toma de
decisiones
Estn diseadas para un mejor desempeo de las
consultas con grandes volmenes de datos
Los datos que utilizan principalmente se obtienen de las
bases de datos OLTP
Bases de datos OLTP
Logstica
Sistema de
logstica
Ventas
Sistema de
ventas
Personal
Sistema de
personal
Bases de datos OLTP
Sistemas
informticos
Bases de datos OLAP
Logstica
Ventas
Proceso de
extraccin,
transformacin y
carga de datos
(ETL)
Base de datos
OLAP
Personal
Bases de datos OLTP
27/01/2016
Sistema de gestin de base de datos (SGBD)
Database Management System o DBMS
Es un conjunto de programas especializados, diseados para
proveer un ambiente que sea conveniente y eficiente para la
descripcin, proteccin, almacenamiento y acceso a la base
de datos
Funciones de un DBMS
Definir los datos en forma separada a las aplicaciones que
los utilizan
Proporcionar un mtodo para insertar, modificar y eliminar
los datos
Proteger los datos de manera segura, confiable, consistente
y correcto
Permitir que mltiples usuarios compartan los datos
Permitir la recuperacin de los datos mediante un lenguaje
entendible
Permite:
Altos volmenes de informacin
Estructuras de almacenamiento
Manipulacin de datos
Seguridad de los datos almacenados
Mantener la integridad de datos
Beneficios de utilizar un DBMS
Mejora la integridad de los datos
Aumento de accesibilidad de los datos
Mejora en el control de los datos
Facilidad en el desarrollo y administracin de las aplicaciones
Mejora en la seguridad de los datos
Mejora el acceso concurrente
Sistemas de gestin de bases de datos
Logstica
Aplicativo de
logstica
Ventas
DBMS
Aplicativo de
ventas
Aplicativo de
personal
Personal
Consultas
Bases de datos
Programas
27/01/2016
Algunos DBMS
Abstraccin de datos
Visin 1
Visin 2
Visin 3
...
Visin n
Nivel
Conceptual
Nivel Fsico
Lenguajes de bases de datos
Independencia de datos
Visin 1
Visin 2
Visin 3
...
Independencia
Lgica de datos
Nivel
Conceptual
Independencia
Fsica de datos
Nivel Fsico
Lenguaje de definicin de datos (DDL)
Visin n
Sentencias que permiten crear, modificar o eliminar bases de datos
Tambin permiten crear, modificar o eliminar los componentes de
una base de datos (tablas, procedimientos, funciones, vistas, etc.)
Lenguaje de manipulacin de datos (DML)
Sentencias que permiten insertar, modificar y eliminar datos
Tambin permiten consultar datos
Lenguaje de control de datos (DCL)
Sentencias que permiten asignar o quitar permisos de acceso a los
datos
Restringe el acceso a los usuarios
27/01/2016
Administracin de base de datos
Definen el esquema lgico de la base de datos
Definen las estructuras de almacenamiento y los mtodos
de acceso
Modifican el esquema lgico y la organizacin fsica
Autorizan el acceso a los datos
Especifican las restricciones de integridad de datos
Definen y administran los procedimientos de respaldo y
recuperacin de datos
Monitorean el rendimiento de la base de datos
Instalan y configuran los servidores de datos
Modelos de datos
Tipo de modelos de datos
Modelos de datos
Un modelo es una representacin simplificada de la realidad
Un modelo de datos es un conjunto de herramientas
conceptuales que sirven para describir la estructura de una
base de datos
La estructura de la base de datos esta formada por los
datos, los vnculos entre datos, la semntica de datos y las
restricciones que deben de cumplirse para esos datos
Modelos de datos de alto nivel
Modelos de datos de bajo nivel
Modelos de datos conceptuales
Utilizan conceptos como entidades, atributos y relaciones
Modelos Entidad-Relacin
Modelos de datos fsicos
Describen formato de los registros, estructura de archivos y mtodos
de acceso
Modelos de datos de representacin
Modelos de datos de implementacin
Modelos ms comunes:
Modelo relacional de datos
Modelo de red
Modelo jerrquico
27/01/2016
Modelo relacional de datos
Modelo Relacional de Datos
Estructura de una Tabla
Basado en la lgica de predicados y en la teora de conjuntos
Formulado por Edgar F. Codd de IBM en 1970
Es el ms utilizado para modelar y administrar datos
Se basa en el uso de relaciones, que pueden considerarse en
forma lgica como conjuntos de datos llamadas tuplas
Se puede pensar en cada relacin como si fuese una tabla que
esta compuesta de registros (filas) y columnas (campos)
El nmero de filas de una tabla se llama cardinalidad de una
relacin
El nmero de columnas de una tabla se llama grado de una
relacin
Bases de datos relacionales
Columnas, campos o
Atributo
Filas, registros
o tuplas
El modelo relacional considera a la base de datos como una
coleccin de relaciones
Una relacin representa una tabla que no es ms que un
conjunto de filas, cada fila es un conjunto de campos y cada
campo representa un valor que describe el mundo real
Existen dos lenguajes relacionales formales para manipular los
datos:
lgebra relacional, permite describir la forma de realizar una consulta
Clculo relacional, slo indica lo que se desea devolver
El DBMS que gestiona las bases de datos relacionales reciben el
nombre de Sistema de Gestin de Bases de Datos Relacionales
(RDBMS)
27/01/2016
Esquemas
Instancias
Un esquema contiene la definicin de una estructura que
generalmente es una relacin o tabla
Un instancia es la aplicacin de un esquema a un conjunto
finito de datos
Determina la identidad de la relacin y qu tipo de
informacin podr ser almacenada (metadatos)
Es el contenido de una tabla en un momento dato o un
subconjunto de la informacin contenida en una tabla
Consta de:
Nombre o identificador de la relacin
Nombre de los campos de la relacin y sus dominios
El dominio define los valores permitidos en un campo. Se puede
considerar como equivalente el tipo de datos
Dependencias funcionales
Una dependencia funcional es una conexin entre dos o ms
atributos
Se dice que un conjunto de funciones es funcionalmente dependiente
cuando existe una relacin funcional entre ellas
Si y depende funcionalmente de x se denota x
y
Ejemplo: FechaNacimiento
Edad
Propiedades:
Dependencia funcional reflexiva
Si y esta incluido en x entonces x
Algunas columnas de una tabla
Algunas filas de una tabla
La instancia es ms dinmica que el esquema, pues los datos
que se almacenan en la base de datos pueden cambiar con
frecuencia
Normalizacin de base de datos
Es un proceso que consiste en aplicar una serie de reglas a las
relaciones que componen una base de datos relacional
Permiten:
Minimizar la redundancia de los datos
Disminuir problemas de actualizacin de los datos
Proteger la integridad de los datos
Formas normales:
Dependencia funcional aumentativa
Si x
y entonces xz
yz
Dependencia funcional transitiva
Si x
yyy
z entonces x
Primera Forma Normal (1FN)
Segunda Forma Normal (2FN)
Tercera Forma Normal (3FN)
Forma normal de Boyce-Codd (FNBC)
Cuarta Forma Normal (4FN)
Quinta Forma Normal (5FN)
27/01/2016
Consideraciones
Propiedades de las columnas
Cada tabla debe tener un nombre nico
Todos los datos de una columna deben ser del mismo tipo
No pueden haber dos filas iguales
El nombre de la columna es exclusivo en una tabla
Principales propiedades:
Cada fila debe identificarse unvocamente por una columna o
conjunto de columnas llamada clave primaria
La clave primaria puede ser generada mediante una secuencia
numrica incrementada automticamente cada vez que se
inserta una fila
Nombre
Tipo de dato
Longitud
Opcional / obligatorio
Valor predeterminado
Regla de validacin
Restricciones de base de datos
Ejemplo de columnas
Tabla: Alumno
Nombre
Tipo de
dato
Longitud
Obligatorio
codigo
Texto
apellidoPaterno
Texto
30
apellidoMaterno
Texto
30
nombres
Texto
30
fechaNacimiento
Fecha
No
fechaIngreso
Fecha
telefono
hermanos
estado
Texto
10
Nmero
Texto
12
Predeterminado
Una restriccin es una limitacin que obliga el cumplimiento
de ciertas condiciones en la base de datos
Limitan los datos que pueden ser almacenados en las tablas
Son:
Regla de validacin
S
S
Restricciones de dominio
Restricciones de clave
Debe ser mayor a los 15 aos
Fecha del sistema
No
Ingresante
Mayor o igual a 0
Ingresante, Matriculado, Egresado
Los valores de una columna deben ser del mismo tipo de dato
Toda tabla debe tener una clave primaria que identifica a una nica fila de la
tabla
Integridad referencial
Sirve para mantener la consistencia entre filas de dos tablas
10
27/01/2016
Claves
Ejemplo de claves
Una tabla no debe tener filas duplicadas
Una clave candidata es un conjunto de columnas que permiten
identificar a una nica fila de una tabla
Una tabla puede tener una o muchas claves candidatas
La clave primaria es la clave candidata que el diseador de base de
datos escoge para identificar las filas de una tabla
Las claves nicas o claves alternativas son las claves candidatas que
no han sido escogidas como clave primaria
La clave fornea o clave ajena es una referencia a una clave en otra
tabla. Determina la relacin existente entre dos tablas
Una clave compuesta es una clave que esta conformada por ms
de una columna
Claves candidatas
Tabla: Cliente
Codigo
RazonSocial
RUC
Telefono
0001
Representaciones Iigo SAC
0002
Comercializadora de Alimentos SA
5676895847
234576
0003
Diseo y estilos SRL
9860003456
435894
0004
House Center SAC
4536748998
456787
0005
Mundo Informtico SA
3456738344
453677
0006
Corporacin del Bosque SAC
2633295844
334456
Clave primaria
2345567890
453647
Claves nicas
Desarrollo de una Base de Datos
Ejemplo de claves forneas
Tabla: Escuela
Codigo
Captura y anlisis de
requisitos
Nombre
01
Agronoma
02
Biologa
03
Administracin
Diseo Lgico
Seleccin del DBMS
Tabla: Alumno
Codigo
Nombre
CodigoEscu
945678B
RAMIREZ/LOPEZ/VERONICA
956473C
FERNANDEZ/TORRES/MANUEL
02
990045A
LISBOA/CARDENAS/TOMAS
01
Clave primaria
01
034563B
GUINEA/ESTELA/MARIA
03
035466J
CARMONA/AQUILAR/LUIS
03
057839D
DIAZ/CHAVEZ/MARCELA
02
Clave primaria
Diseo Fsico
Construccin de Base
de Datos
Carga de Datos
Clave fornea
11
27/01/2016
Algunos trminos adicionales
Servidor de base de datos
NULL
Valor especial que puede tomar una columna en una fila cuando se
desconoce dicho valor
Bases de datos distribuidas
Computadora donde esta instalado el DBMS
Bibliografa
Apuntes del curso
http://es.wikipedia.org/wiki/Modelo_relacional
http://es.wikipedia.org/wiki/Normalizaci%C3%B3n_de_bases_de_datos
http://es.wikipedia.org/wiki/Dependencia_funcional
http://es.wikipedia.org/wiki/L%C3%B3gica_de_primer_orden
http://es.wikipedia.org/wiki/Inferencia
Bases de datos dividida en partes y donde cada una de ellas se ubica
en diferentes computadoras
Migracin de base de datos
Paso de datos de una fuente de datos a una base de datos
12