Download objeto. - miguel cotaña

Document related concepts

SQL wikipedia , lookup

Normalización de bases de datos wikipedia , lookup

Base de datos objeto wikipedia , lookup

Modelo de base de datos wikipedia , lookup

Lenguaje de manipulación de datos wikipedia , lookup

Transcript
UNIVERSIDAD MAYOR DE SAN ANDRES
FACULTAD DE CIENCIAS ECONOMICAS Y FINANCIERAS
MAESTRIA EN AUDITORIA Y CONTROL FINANCIERO
Auditoría de Sistemas
Informáticos:
1.3 Gestión de Bases de datos
M. Sc. Miguel Cotaña Mier
Lp, Septiembre 2013
2
DEFINICION
Una BD es una colección de datos
operacionales almacenados sin
redundancia perjudiciales y utilizadas para una o mas aplicaciones,
de una empresa en particular.
3
ARQUITECTURA DE SBD
• NIVEL EXTERNO: Describe solo parte
de la BD(mundo real)
• NIVEL CONCEPTUAL: Describe que
datos son almacenados en la BD y las
relaciones que existen entre los datos.
(mundo de ideas)
• NIVEL INTERNO: Describe el
almacenamiento fisico de los
datos(mundo de datos)
4
SISTEMA DE BD (SBD)
Un SBD es un sistema cuyo proposito
general es el de
almacenar y recuperar
informacion
inherente
a
la
organización donde
opera.
• DATOS: Un SBD
puede comprender 1
o varias BD´s.
• USUARIOS:
personas que
accesan a las BD.
• HARD: Donde recide
las BD.
• SOFT: Se lo conoce
como DBMS.
5
6
CARACTERISTICAS DE LOS
SBD
•
•
•
•
•
•
Control de la redundancia;
Evitar la inconsistencia;
Compartimiento de los datos;
Integridad y seguridad de los datos;
Estandarizar la información en el sistema;
Independencia de datos.
7
TIPOS DE BASE DE DATOS
•
•
•
•
•
•
•
•
•
•
Base de Datos Jerárquica;
Base de Datos Relacional;
Base de Datos de Red;
Base de Datos Orientada a Objetos;
Base de Datos Distribuidas;
Base de Datos Objeto Relacional;
Base de Datos Multidimensionales;
Base de Datos Transaccionales;
Base de Datos Documentales;
Base de Datos Declarativas (deductivas y
funcionales).
8
BASE DE DATOS
RELACIONAL
Este es el modelo mas utilizado para
modelar
problemas
reales
y
administrar datos dinamicamente.
Su idea fundamental es el uso de
“relaciones”. Durante su diseño, una
BD relacional pasa por el proceso de
normalizacion.
9
DISEÑO CONCEPTUAL
MODELO E-R
El modelo de datos entidad-relación
(E-R) se basa en una percepción del
mundo real que consiste en un
conjunto de objetos basicos llamados
entidades y relaciones entre estos
objetos.
10
….conceptos y grafica
• Conjunto de relaciones: Conjunto de
relacionamientos del mismo tipo.
Ej:
Funcionario TRABAJA en el Proyecto
NOMBRE
F-nac
cod
CODIGO
dir
nom
FUNCIONARIO
TRABAJA
en
PROYECTO
DEPTO
11
TABLA RELACIONAL
ATRIBUTOS
FUNCIONARIO
CODIGO
NOMBRE SEXO
EDAD
A1
Ximena
F
21
A2
Marcos
M
26
A3
Zulma
F
28
REPRESENTACION LOGICA:
FUNCIONARIO(codigo,nombre,sexo,edad)
T
U
P
L
A
S
12
OBJETIVOS DEL M.R.
• Proveer esquemas de facil utilización;
• Mejorar la independencia lógica y física de
datos;
• Proveer a los usuarios de lenguajes de
manipulación de BD de alto nivel, permitiendo el
acceso a usuarios sin experiencia;
• Optimizar el acceso a BD;
• Mejorar la integridad y seguridad de los datos;
• Proveer un enfoque metodológico para el diseño
de esquemas.
13
CARACTERISTICAS DE BASES DE
DATOS RELACIONAL
• Una BD, puede ser organizada en
relaciones;
• Se caracteriza por utilizar una tabla
bidimensional, para la organización de los
datos (filas y columnas);
• Cada fila contiene la información a una
entrada en la BD;
• Cada columna define un ítem de la BD.
14
LENGUAJES DE BD
• Lenguaje de definicion de datos(LDD)
Usualmente el LDD incorpora la definicion
de constraints y la definicion de vistas.
• Lenguaje de manipulacion de datos(LMD)
- Alto nivel: orientada a conjuntos
- Bajo nivel: orientada a registros
• Lenguaje huesped
Lenguaje de programacion en el cual
comandos del LMD son embutidos.
15
RESTRICCIONES DE
ASIGNACION
(Mapping)
16
RESTRICCIONES DE ASIGNACIÓN
• Una planificación E-R de una empresa pueden
definir ciertas restricciones: CARDINALIDAD,
que expresan el número de entidades con las
que puede asociarse otra entidad mediante un
conjunto de entidades.
• Para un conjunto binario de relaciones R entre
los conjuntos de entidades A y B, la cardinalidad
de asignación debe ser una de las siguientes:
17
……restricciones de asig.
• Una a una. Una entidad en A esta
asociada a lo sumo con una entidad en B,
y una entidad en B esta asociada a lo
sumo con una entidad en A.
• Una a muchas. Una entidad en A esta
asociada con numero cualquiera de
entidades en B. Una entidad en B puede
asociarse a lo sumo con una entidad en A
18
……restricciones de asig.
• Muchas a una. Una entidad en A esta asociada
a lo sumo con una entidad en B, sin embargo,
puede estar asociada con un numero cualquiera
de entidades en A.
• Muchas a muchas. Una entidad en A esta
asociada con numero cualquiera de entidades
en B, y una entidad en B esta asociada con un
numero cualquiera de entidades en A
19
BASE DE DATOS O.O.
Para todas las cosas orientadas a objetos,
el marco de referencia conceptual es el
modelo de objetos. Se menciona los
siguientes elementos en este modelo:
- Abstracción;
- Encapsulamiento;
- Modularidad;
- Jerarquia;
- Tipos;
- Persistencia;
- Concurrencia.
20
ABSTRACCION
Una abstracción denota
las
características
esenciales de un objeto
que lo distinguen de
todos los demás tipos
de objeto y proporciona
fronteras conceptuales
nítidamente definidas
respecto
a
la
perspectiva
del
observador.
21
ENCAPSULAMIENTO
Es el proceso de
almacenar en un
mismo
compartimiento los
elementos de una
abstracción
que
constituyen
su
estructura y su
comportamiento
22
MODULARIDAD
La modularidad es
la propiedad que
tiene un sistema
que
ha
sido
descompuesto en
un conjunto de
módulos cohesivos
y
débilmente
acoplados.
23
JERARQUIA
La jerarquía es
una
clasificación u
ordenación de
abstracciones.
24
PARADIGMA O.O.
La Orientación a Objetos (OO), es una
técnica para el modelado de sistemas como
un conjunto de objetos relacionados que
interactuan entre sí. La OO es similar a la
forma en que las personas observan su
entorno.
La OO es un enfoque de desarrollo de
software que organiza tanto el problema
como su solución.
25
OBJETOS
OBJETO. Es la representacion abstraida de las cosas
Desde la perspectiva de la cognición humana un objeto es:
- Una cosa tangible y/o visible.
- Algo que puede comprenderse.
- Algo hacia lo que se dirige una acción o
pensamiento.
Todo lo que hay en el mundo serán objetos?
26
OBJETOS
Los objetos tienen atributos y operaciones.
Los atributos son sus características y sus
operaciones (servicios, métodos) son las acciones
que el objeto puede realizar
La definicion de objetos implica la descripción de
atributos,
comportamientos,
operaciones
y
mensajes
27
EJEMPLO
TOYOTA: CORONA
- Placa
- Modelo
- Color
- Nro-motor
- Frenar()
- Cambiar-caja()
Comportamiento del objeto
OBJETO
ATRIBUTOS
OPERACIONES
28
CLASE
Clase es una agrupación de objetos
con
los
mismos
tipos
de
características
Los objetos son instancias de las
clases.
Las clases definen atributos y
operaciones para sus objetos, no
para ellas mismas.
……….CLASES Y OBJETOS
CLASE. Es un conjunto de objetos que comparten una
estructura comun y un comportamiento común.
29
30
TIPOS DE RELACION ENTRE
CLASES
asociacion
agregacion (tiene)
composicion (incluye)(parte de)
dependencia
navegacion (es un)
31
CLASIFICACIÓN
Identificar clases y objetos es fundamental en el
DOO. Implica descubrimiento e invención.
32
ABSTRACCIONES CLAVE
Es una clase u objeto que forma parte del
vocabulario del dominio del problema.
33
SISTEMA DE BD
SGBD
Procesador de consulta
BD
Metadatos(DD)
+
Archivos de datos
34
SGBD
•
•
•
•
•
•
•
•
•
•
•
•
•
MySql: Licencia Dual;
PostgreSQL (http://www.postgresql.org);
SQLite (http://www.sqlite.org);
DB2 Express-C
(http://www.ibm.com/software/data/db2/express/)
Apache Derby (http://db.apache.org/derby/);
IBM Informix;
Microsoft Access;
Microsoft SQL Server;
Open Access;
Oracle;
Paradox;
Apache;
Sybase ASE.
35
PostgreSQL
Es un potente motor de bases de datos, que
tiene
prestaciones
y
funcionalidades
equivalentes a muchos gestores de bases
de datos comerciales. Es más completo que
MySQL
ya
que
permite
métodos
almacenados, restricciones de integridad,
vistas, etc.
36
Características
• Alta concurrencia: Mediante un sistema
denominado MVCC (Acceso concurrente
multiversión) PostgreSQL permite que mientras
un proceso escribe en una tabla, otros accedan
a la misma tabla sin necesidad de bloqueos.
Cada usuario obtiene una visión consistente de
lo último a lo que se le hizo commit. Esta
estrategia es superior al uso de bloqueos por
tabla o por filas común en otras bases,
eliminando la necesidad del uso de bloqueos
explícitos.
37
• Claves ajenas: también denominadas
Llaves ajenas o Claves Foráneas (foreign
keys).
• Disparadores(triggers): Se define en una
acción especifica basada en algo
ocurrente dentro de la BD. En PostgreSQL
esto significa la ejecución de un
procedimiento almacenado basado en una
determinada acción sobre una tabla
específica
38
Funciones: Bloques de código que se
ejecutan en el servidor. Pueden ser escritos
en varios lenguajes, con la potencia que
cada uno de ellos da, desde las operaciones
básicas de programación, tales como
bifurcaciones
y
bucles,
hasta
las
complejidades de la programación orientada
a objetos o la programación funcional.
Algunos de los lenguajes: C, C++, Java
PL/JavaWeb, plPHP, pl/Python, Pl/Ruby,
pl/sh, pl/Tcl, pl/Scheme.
39
Servidor de BD
Veamos como esta construido un servidor
de bases de datos relacional :
1.
2.
3.
4.
La capa de acceso a los datos;
La capa gestora SQL;
La capa traductora SQL;
La capa de comunicaciones .
Como cliente nos conectaremos a la capa 4,
le enviaremos los comandos SQL a esta
capa, que los pasará a la capa 3.
40
Ésta hace la traducción del comando y, si
no hay errores, envía el comando a la capa
2. La capa 2 hace toda la gestión del
comando con la colaboración de la capa 1:
recoge los datos y errores para enviarlos al
cliente, vía la capa 4; y es capaz de
mantener un diálogo con el programa cliente
para coordinarse. La capa 1 es la
encargada de gestionar correctamente los
datos y controlar los bloqueos y
transacciones.
41
Ejemplo: creamos 3 tablas
Fichero: paises.sql
create table paises
nombre varchar(30));
(cod_pais
insert into paises values (1, 'pais 1');
insert into paises values (2, 'pais 2');
insert into paises values (3, 'pais 3');
commit work;
integer,
42
Fichero: provincias.sql
create table provincias (cod_provincia int, cod_pais
int, nom_provincia varchar(30));
insert into provincias values (1, 1, 'Provincia 1, Pais 1');
insert into provincias values (2, 1, 'Provincia 2, Pais 1');
insert into provincias values (1, 2, 'Provincia 1, Pais 2');
insert into provincias values (2, 2, 'Provincia 2, Pais 2');
insert into provincias values (1, 3, 'Provincia 1, Pais 3');
insert into provincias values (2, 3, 'Provincia 2, Pais 3');
commit work;
Fichero: municipios.sql
create table municipios (cod_pais int, cod_provincia int, cod_municipio
nombre_municipio varchar(60));
insert into municipios values (1, 1, 1, 'Municipio 1, Provincia 1, Pais 1');
insert into municipios values (2, 1, 1, 'Municipio 2, Provincia 1, Pais 1');
insert into municipios values (3, 1, 1, 'Municipio 3, Provincia 1, Pais 1');
insert into municipios values (1, 2, 1, 'Municipio 1, Provincia 2, Pais 1');
insert into municipios values (2, 2, 1, 'Municipio 2, Provincia 2, Pais 1');
insert into municipios values (3, 2, 1, 'Municipio 3, Provincia 2, Pais 1');
insert into municipios values (1, 3, 1, 'Municipio 1, Provincia 3, Pais 1');
insert into municipios values (2, 3, 1, 'Municipio 2, Provincia 3, Pais 1');
insert into municipios values (3, 3, 1, 'Municipio 3, Provincia 3, Pais 1');
insert into municipios values (1, 1, 2, 'Municipio 1, Provincia 1, Pais 2');
insert into municipios values (2, 1, 2, 'Municipio 2, Provincia 1, Pais 2');
insert into municipios values (3, 1, 2, 'Municipio 3, Provincia 1, Pais 2');
insert into municipios values (1, 2, 2, 'Municipio 1, Provincia 2, Pais 2');
insert into municipios values (2, 2, 2, 'Municipio 2, Provincia 2, Pais 2');
insert into municipios values (3, 2, 2, 'Municipio 3, Provincia 2, Pais 2');
insert into municipios values (1, 3, 2, 'Municipio 1, Provincia 3, Pais 2');
insert into municipios values (2, 3, 2, 'Municipio 2, Provincia 3, Pais 2');
insert into municipios values (3, 3, 2, 'Municipio 3, Provincia 3, Pais 2');
insert into municipios values (1, 1, 3, 'Municipio 1, Provincia 1, Pais 3');
insert into municipios values (2, 1, 3, 'Municipio 2, Provincia 1, Pais 3');
insert into municipios values (3, 1, 3, 'Municipio 3, Provincia 1, Pais 3');
commit work;
43
int,
44
OBJETIVOS de SGBD
• Proveer un ambiente que
sea
adecuado y eficiente para recuperar y
almacenar información de la Base de
Datos.
• Gestionar grandes volúmenes de
información.
• Proveer seguridad a la información
almacenada en las Bases de Datos.
45
FUNCIONES DEL ABD
• Identifica información relevante;
• Definiciones de esquema (LDD);
• Definición de la estructura de almacenamiento y del
método de acceso;
• Modificación del esquema y de la organización fisica;
• Definición de aspectos de seguridad(usuarios, entornos,
infraestructura);
• Especificación de las restricciones de integridad;
• Reorganización;
• Administracion del uso de la BD;
• Estadisticas;
• Auditoria;
• Backup y recuperacion;
46
NORMALIZACION
47
DEPENDENCIA
•
•
•
•
•
Dependencia funcional;
Dependencia funcional completa;
Dependencia funcional trivial;
Dependencia funcional elemental;
Dependencia funcional transitiva.
48
CLAVES
Clave candidata, clave primaria, clave
alternativa, clave ajena.
49
FORMAS NORMALES
• Cuando se diseña una BD mediante el
MR, al igual que ocurre con otros
modelos,
obtenemos
diferentes
esquemas relacionales y no todos ellos
son equivalentes, ya que unos van a
representar la realidad mejor que otros.
• Con la teoria de la normalizacion, se
consigue una formalización en el diseño
lógico de BDR.
50
1ra. FORMA NORMAL
Para que una tabla pueda ser considerada
una relación no debe admitir grupos
repetitivos, esto es, debe estar en primera
forma normal
Se dice que una relacion esta en 1FN
cuando cada atributo solo toma un valor del
dominio simple subyacente.
51
2da. FORMA NORMAL
Esta basada en el concepto de
dependencia plena y en las interrelaciones
existentes entre los atributos principales de
una relación.
Se dice que una relación esta en 2FN sí:
Está en 1FN y cada atributo no principal
tiene DFC respecto de cada una de las
claves.
52
3ra. FORMA NORMAL
Esta basada en el concepto de DFT
Un esquema de relación R está en 3FN Sii.
Esta en 2FN y no existe ningún atributo no
principal que dependa transitivamente de
alguna clave R
53
FORMA NORMAL Boyce-Codd
Para ciertos problemas fueron insuficientes
las tres primeras formas normales, en
relaciones que presentaban varias claves
candidatas compuestas que se solapaban.
Se dice que una relación se encuentra en
FNBC sí, y solo sí, todo determinante es
una clave candidata.
54
SQL
(Structured Query Languaje)
• La mayoria de los SGBD relacionales
proveen un lenguaje de alto nivel, en el
que el usuario solo especifica lo que
desea como resultado, dejando las
decisiones de como ejecutar la consulta
para el sistema.
• El SQL es lenguaje standard de BD.
• Incorpora el algebra relacional y el calculo
relacional