Anda di halaman 1dari 54

1

MODULO DE BASE DE DATOS


2
CONCEPTO
Una base de datos es
una coleccin de datos relacionados.

Representa algn Tiene un


aspecto del mundo propsito
real Es una coleccin de especfico.
datos lgicamente
coherente
3
DBMS
Data Base Management System
Sistema de Administracin de Base de Datos

Permiten definir la estructuras de datos a


almacenar.
Proveen de mecanismos de manipulacin de
datos.
Se encargan de garantizar la fiabilidad de la
informacin almacenada.
Manejan la concurrencia de usuarios accediendo
a una misma base de datos
4
DBMS
Funciones

Construccin
Compartir
Metadatos de la base Manipulacin
datos
de datos

Transaccio- Manteni-
Consultas Proteccin
nes miento

5
Sistemas de Base de Datos
Centralizados y Distribuidos

Servidor de BD instalado Servidor de BD externo


localmente en la computadora Comunicacin TCP/IP
6
Clasificacin de Bases de Datos
Modelo de datos: es una serie de conceptos que sirven para
describir un conjunto de datos y las operaciones para
MODELO DE manipularlos.
DATOS Expresividad
Tipos de modelos de datos:
Simplicidad
- Modelos conceptuales
- Modelos lgicos. Minimalidad
Formalidad

Un esquema es un conjunto de representaciones lingsticas o


ESQUEMA grficas que describen la estructura de los datos de inters.

Se utilizan modelos de datos para describir un esquema.

7
Clasificacin de Bases de Datos

Cronolgicamente los modelos de datos fueron:

Basados en sistemas de archivos convencionales

Jerrquico

De Red

8
Clasificacin de Bases de Datos

Entidad-Relacin

Orientado a Objetos

9
Clasificacin de Bases de Datos

Orientado a Documentos

Multidimensional

10
Modelo Entidad Relacin

Caso de Estudio
Sistema de Gestin de Ventas y Reservas de
Entradas para un Complejo de Cines
1. Un complejo de cines est integrado por varios cines.
2. Cada cine cuenta con una cantidad de salas
3. La programacin de las funciones de las pelculas de las
salas se renueva en forma semanal.
4. No todas las salas tienen la misma capacidad.
5. La programacin es la que determina qu pelculas van a
proyectarse y los horarios para cada funcin de cada una de las
salas, para todos los cines.
6. Una entrada es vlida nicamente para la fecha, hora y funcin
indicadas en la misma.
11
Modelo Entidad Relacin
Es el elemento bsico representado por el modelo entidad relacin.
ENTIDAD
Representa una cosa del mundo real
Puede tener existencia fsica o existencia conceptual.
Cada ejemplo de la entidad se denomina instancia.
Cosas tangibles: Artculo, Repuesto, Rodado.
Ejemplos Roles desempeados por personas u organizaciones: Cliente, Proveedor.
de ENTIDAD
Incidentes: Siniestros, Anulacin de Venta
Interacciones: Representan alguna transaccin: Compra, Pedido, Venta
RESPONDER
Cules son las entidades del caso de estudio?
12
Modelo Entidad Relacin
Una entidad tiene atributos.
Un atributo es una abstraccin que identifica caractersticas, propiedades de
ATRIBUTOS una entidad.
Los atributos deben ser: completos, plenamente elaborados, mutuamente
independientes

Ejemplo Entidad: Aula


Atributos:
numero: 1, piso: 2, ancho: 4 mts,
largo: 6 mts, bancos:25

RESPONDER
Cules son los atributos de las entidades identificadas?
13
Modelo Entidad Relacin

CLASIFICACIN Identificadores
ATRIBUTOS Descriptivos
Referenciales

IDENTIFICADOR Uno o ms atributos que identifican unvocamente


UNICO cada instancia de una entidad.
Un atributo, es identificador nico si posee

Unicidad: en cualquier momento dado Minimidad: Si A es compuesto, no ser


no existen 2 instancias con el mismo posible eliminar ningn componente de A sin
valor de A. destruir la propiedad de unicidad.

14
Modelo Entidad Relacin

IDENTIFICADOR
UNICO

15
Modelo Entidad Relacin

ATRIBUTO Un atributo referencial se utiliza para poder


REFERENCIAL establecer relaciones entre diferentes
entidades.
Se dice que un atributo j, un conjunto de
atributos, de una entidad B es un atributo
referencial si y solo si satisface dos propiedades:

Cada valor j es nulo del todo o no Existe una entidad A con atributo
nulo del todo. En caso de ser un identificador j tal que:
atributo compuesto, Cada valor no nulo de j es en la
formado por ms de un atributo. entidad B idntico al valor j en alguna
16
instancia de la entidad A.
Modelo Entidad Relacin

ATRIBUTO
REFERENCIAL

17
Modelo Entidad Relacin

1. Integridad de Entidades: Ningn componente


REGLAS
DE INTEGRIDAD
del atributo identificador en una entidad
aceptar NULOS

Pelcula: {NULL, 2014, true, 122, 01/08/2014, "Relatos


Salvajes", "Relatos Salvajes,1}

Pelcula: { 2, 2014, true, 122, 01/08/2014, "Relatos Salvajes",


"Relatos Salvajes",1}
18
Modelo Entidad Relacin

2. Integridad Referencial: Un modelo de datos no debe


REGLAS contener valores en sus atributos
DE INTEGRIDAD
referenciales para los cuales no exista un valor
concordante en el ( los) atributos
identificadores en la entidad objetivo.

Pelcula: { 2, 2014, true, 122, 01/08/2014, "Relatos Salvajes",


"Relatos Salvajes",4}
No existe en la tabla PaisDeOrigen una instancia con
id_pais_de_origen = 4.
Pelcula: { 2, 2014, true, 122, 01/08/2014, "Relatos Salvajes",
"Relatos Salvajes",1}
19
Modelo Entidad Relacin

Una relacin es la abstraccin de un conjunto de


RELACIONES
asociaciones que existen entre las instancias de
dos entidades.
Tienen sentido bidireccional.

CARDINALIDAD Indica para una instancia de una entidad A con


cuntas instancias de la entidad B se relaciona.

Indica para una instancia de una entidad A, si la


OPCIONALIDAD
relacin con instancias de la entidad B, es
opcional u obligatoria.
20
Modelo Entidad Relacin
OPCIONALIDAD Uno a Muchos

Uno a uno

21
Modelo Entidad Relacin
OPCIONALIDAD
Muchos a muchos

Muchos a Uno

22
Modelo Entidad Relacin
OPCIONALIDAD
Muchos a muchos

Muchos a Uno

23
Base de Datos Relacional
El modelo relacional representa la base de datos como una coleccin
de relaciones.
Cada una de estas relaciones se parece a una tabla de valores.

Entidad
Instancia

24
Base de Datos Relacional

Entidad Instancia

Atributo
Identificador

25
Base de Datos Relacional
Entidad
Una relacin corresponde a lo que conocemos como tabla.
Un atributo corresponde a una columna o campo. El nmero de
atributos se denomina grado. Instancia
Una tupla corresponde a una fila o registro de esa tabla.
El nmero de tuplas de una tabla se denomina cardinalidad.
La clave primaria es un identificador nico para la tabla, es decir una
columna o combinacin de columnas con la siguiente propiedad: Atributo
Nunca existen dos filas de la tabla con el mismo valor en esa
Identificador
columna o combinacin de columnas.
Un dominio es una coleccin de valores, de los cuales uno o ms
atributos (columnas) obtienen sus valores reales.
26
Base de Datos Relacional
RELACIONES Propiedades de las Relaciones:
No existen tuplas repetidas.
Las tuplas no tienen que estar ordenadas.
Los atributos no tienen que estar ordenados.
Todos los valores de los atributos son atmicos

27
Base de Datos Relacional
REGLA DE Un atributo a (posiblemente compuesto) de la relacin
INTEGRIDAD
R es una clave candidata de R, s y solo s satisface
Clave Primaria
las siguientes propiedades:

Unicidad: no existen dos Minimalidad: si a es un atributo


tuplas de R con el mismo valor compuesto, no puedo eliminar un
de a, en un momento dado. componente de a sin destruir la
propiedad de unicidad.

28
Base de Datos Relacional
REGLA DE
Toda relacin tendr por fuerza una clave primaria.
INTEGRIDAD
La clave primaria es la que tiene verdadera importancia; las dems,
Clave Primaria claves candidatas y alternativas, son slo conceptos que surgen en el
proceso de decisin.
Al nombrar al atributo identificador, es conveniente hacerlo como clave
primaria, porque hay muchos tipos de claves.

Por qu son importantes las Claves Primarias?


Son importantes porqu constituyen el mecanismo de
direccionamiento a nivel de tuplas, bsico en un sistema relacional.
Es el nico modo garantizado por el sistema para localizar una tupla
especfica.
Ningn componente de la clave primaria de una relacin base puede
aceptar nulos.

29
Base de Datos Relacional
En una base de datos relacional, nunca registraremos
REGLA DE informacin de algo que no podamos identificar.
INTEGRIDAD Para las claves primarias compuestas: cada valor individual de
Relaciones la clave primaria debe ser no nulo en su totalidad.
Esta regla se aplica a las relaciones base nicamente.
Se aplica slo a las claves primarias.

REGLA DE La clave ajena (FOREIGN KEY, en ingls) es un atributo


INTEGRIDAD (quizs compuesto) de una relacin R2 cuyos valores
Claves Ajenas deben concordar con los de la clave primaria de alguna
otra relacin R1.
30
Motores de Bases de Datos Relacionales

Es el servicio que permite interactuar


con la base de datos, permitiendo
almacenar los datos, procesarlos y
recuperarlos.

31
Motores de Bases de Datos Relacionales

TRANSACCIONES

NDICES
PROCEDIMIENTOS ALMACENADOS Y
FUNCIONES
VISTAS

TRIGGERS O DISPARADORES

32
Motores de Bases de Datos Relacionales

TRANSACCIONES

1. Sirven para definir unidades lgicas del Cada del


sistema.
procesamiento de una base de datos.
2. Incluye una o ms operaciones de acceso a la base Error en
de datos. transaccin.
3. El DBMS es responsable de garantizar que todas las
operaciones de la transaccin se completen Control de
Concurrencia.
satisfactoriamente.
4. El DBMS no debe permitir que algunas operaciones de Fallo del disco.
una transaccin T se apliquen a la base de datos
mientras otras no. Esto puede pasar si ocurre un fallo a Problemas
lo largo de la ejecucin de las operaciones. fsicos y
catstrofes
33
Motores de Bases de Datos Relacionales
TRANSACCIONES

Propiedades Estados de una transaccin y


operaciones adicionales

Atomicidad
Consistencia
Aislamiento
Durabilidad

34
Motores de Bases de Datos Relacionales

NDICES

Son comparables a los ndices de


los libros en las bibliotecas.
Se puede ms de un ndice por
relacin. Por ejemplo, se puede ndices ordenados: estos ndices
buscar un libro segn el autor, la estn basados en una disposicin
ordenada de los valores.
materia o el ttulo.
Los atributos o conjunto de
atributos usados para buscar se ndices asociativos: estos ndices
estn basados en una distribucin
llaman claves de bsqueda. uniforme de los valores a travs de
Hay dos tipos bsicos de ndices: una serie de cajones (buckets).
35
Motores de Bases de Datos Relacionales

NDICES ORDENADOS

Pueden ser de tres tipos:

ndice principal o
primario: ndice agrupado:
Cuando el campo de Ordenacin fsica
Cuando el campo de ordenacin no es un
ordenacin es un campo clave.
campo clave.

ndice secundario: se
Puede tener un ndice
puede especificar principal o un agrupado
sobre cualquier campo
no ordenado de un
fichero.

36
Motores de Bases de Datos Relacionales
NDICES MULTI-NIVEL

37
Motores de Bases de Datos Relacionales
PROCEDIMIENTOS ALMACENADOS Y
FUNCIONES

En ocasiones es til crear mdulos de programa de bases de datos


(procedimientos o funciones) que el DBMS almacena y ejecuta en el servidor de
bases de datos. Pueden estar compuesto por comandos SQL sencillos, como
recuperaciones y actualizaciones

CREATE FUNCTION <nombre de la funcin> parmetros


RETURNS <tipo de devolucin>
<declaraciones locales>
<cuerpo de la funcin>;

CREATE PROCEDURE <nombre del procedimiento> parmetros


<declaraciones locales>
<cuerpo del procedimiento>;
Los parmetros y las declaraciones locales son opcionales.
38
Motores de Bases de Datos Relacionales

VISTAS TRIGGERS O DISPARADORES

Es una tabla que deriva de otras SQL brinda un mecanismo que permite
tablas. Esas otras tablas pueden ser que a partir de una accin se
tablas base o vistas definidas desencadene la ejecucin de otras
anteriormente. acciones.
Una vista no existe necesariamente TRIGGER o DISPARADOR es una
en formato fsico; est considerada accin o evento que genera que otro
como una tabla virtual. evento ocurra.
Limita las posibles operaciones de Ejemplo: Logs
actualizacin.
Sin limitacin alguna al consultar
una vista.
39
Lenguaje de Consulta SQL

Structured Query Language


Lenguaje de Consulta Estructurado

Lenguaje de definicin de datos: DDL


(Data Definition Language). Permiten
crear y definir nuevas bases de
datos, campos e ndices
SQL brinda diferentes sentencias
para definir datos, realizar consultas y
actualizaciones.
Lenguaje de manipulacin de datos:
DML (Data Manipulation Language).
Permiten generar consultas para
ordenar, filtrar y extraer datos de la
base de datos

40
Lenguaje de Consulta SQL

DDL
CREATE: Crea nuevas tablas, campos e ndices.
DROP: Elimina tablas e ndices.
ALTER: Modifica las tablas agregando campos o cambiando la definicin de
los campos.

DML
SELECT: Consulta registros de la base de datos que satisfagan un criterio
determinado.
INSERT: Carga lotes de datos en la base de datos en una nica operacin.
UPDATE: Modifica los valores de los campos y registros especificados.
DELETE: Elimina registros de una tabla de una base de datos.

41
Lenguaje de Consulta SQL
Create Database
DDL
CREATE {DATABASE | SCHEMA} [IF NOT EXISTS] nombre_base_datos

Create Table
CREATE [TEMPORARY] TABLE [IF NOT EXISTS] nombre_de_tabla
nombre_de_columna tipo_de_dato [NOT NULL | NULL] [DEFAULT
valor_por_defecto]
[AUTO_INCREMENT] [UNIQUE | [PRIMARY] KEY
[CONSTRAINT [nombre_relacin] FOREIGN KEY (nombre_columna)
REFERENCES nombre_de_tabla (nombre_columna)]
[ON DELETE opciones_de_referencia]
[ON UPDATE opciones_de_referencia]
Create Index
CREATE INDEX nombre_indice
ON nombre_tabla (col_name [(length)] [ASC |
DESC])
[opcion_algoritmo | opcion_bloqueo]
42 ...
Lenguaje de Consulta SQL
DDL Alter Table
ALTER [IGNORE] TABLE nombre_tabla
ADD [COLUMN] nombre_columna columna_definicion
[FIRST | AFTER col_nombre]
| ADD [COLUMN] (nombre_columna definicin_columna)
| ADD {INDEX|KEY} [nombre_indice]
[tipo_indice] (nombre_columna_indice) [indice_opcion] ...
| ADD [CONSTRAINT] PRIMARY KEY
[indice_type] (indice_col_nombre,...) [indice_opcion] ...
| ADD [CONSTRAINT [nombre_relacin] FOREIGN KEY
(nombre_columna)
REFERENCES nombre_de_tabla (nombre_columna)]

Drop Table
DROP [TEMPORARY] TABLE [IF EXISTS]
nombre_tabla [,nombre_tabla] ...

43
Lenguaje de Consulta SQL
SELECT <lista de atributos>
DML
SELECT FROM <lista de tablas>
WHERE <condicin>;

SELECT nombre_columna,nombre_columna FROM nombre_tabla;

SELECT * FROM nombre_tabla;

SELECT DISTINCT nombre_columna, nombre_columna FROM nombre_tabla;


SELECT nombre_columna, nombre_columna FROM nombre_tabla WHERE
nombre_columna operador valor;
SELECT nro, fecha, monto, cliente_nombre FROM facturas WHERE monto >200;
SELECT SUM (sueldo), MAX (sueldo), MIN (sueldo), AVG(sueldo)FROM
empleados

44
Lenguaje de Consulta SQL

DML
Consulta multi-tablas.

SELECT Pelcula.nombre, Funcin.dia_semana,


Funcin.hora_inicio
FROM Pelicula INNER JOIN Funcion ON
Funcion.id_pelicula =
Pelicula.id_pelicula

45
Lenguaje de Consulta SQL

DML
Consulta multi-tablas Abreviacin del nombre de la
tabla.

SELECT pel.nombre, fun.hora_inicio, fun.dia_semana AS dia,


FROM Pelicula pel INNER JOIN Funcion fun
ON fun.id_pelicula = pel.id_pelicula Renombrado de
columna

LEFT JOIN != RIGHT JOIN != INNER JOIN


46
Lenguaje de Consulta SQL

DML
Subconsultas
Una subconsulta es una consulta anidada en una
instruccin SELECT, INSERT, UPDATE o DELETE,
o bien en otra subconsulta.

SELECT * FROM clientes WHERE id IN


(SELECT cliente_id FROM facturas WHERE fecha BETWEEN
2016-10-10 AND 2017-01-01);

47
Lenguaje de Consulta SQL

DML
Subconsultas
Operadores para Subconsultas

SELECT * FROM tabla WHERE columna ANY ( [ SUBCONSULTA ] )

SELECT * FROM tabla WHERE columna ALL ( [ SUBCONSULTA ] )

SELECT * FROM tabla WHERE columna IN ( [ SUBCONSULTA ] )

SELECT * FROM tabla WHERE EXISTS ( [ SUBCONSULTA ] )


48
Lenguaje de Consulta SQL

DML UPDATE Pelicula


UPDATE
SET disponible=1, duracion=160
WHERE id_pelicula=4

UPDATE nombre_tabla SET


col_nombre_1={valor1|DEFAULT} ,
col_nombre_2={valor2|DEFAULT}
[WHERE condicion]
[ORDER BY ...]
[LIMIT cantidad_filas]

49
Lenguaje de Consulta SQL

DML
INSERT
INSERT INTO nombre_tabla
INSERT INTO pelicula (columna1, columna2,
VALUES (2, 2014, true, 122, columna3,...)
01/08/2014, "Relatos Salvajes", VALUES (valor, valor2,
"Relatos Salvajes",1) valor3,...);

DELETE FROM nombre_tabla


DELETE [WHERE condicion]
DELETE FROM Pelicula [ORDER BY ...]
WHERE anio_estreno <1990 [LIMIT cantidad_filas]

50
Seguridad

Temas de
Niveles de
polticas a nivel
Aspectos Temas relativos seguridad y
gubernamental,
legales y ticos al sistema. acceso a datos
institucional o
segn nivel.
de empresa.

Amenazas

Prdida de Prdida de
Prdida de integridad.
disponibilidad. confidencialidad

51
Administracin de cuentas de usuario en
MySQL

Crear usuario CREATE USER 'nombre_usuario'@'localhost'


IDENTIFIED BY tu_contrasena';
Asignarle GRANT [permiso] ON [nombre de bases de
permisos datos].[nombre de tabla] TO [nombre de
usuario]@'localhost;
Remover REVOKE [permiso] ON [nombre de base de
permisos datos].[nombre de tabla] FROM [nombre de
Refrescar usuario]@localhost;
permisos FLUSH PRIVILEGES;
Remover DROP USER usuario_prueba@localhost;
usuario
52
Administracin de cuentas de usuario en
MySQL
Permisos ALL PRIVILEGES: esta opcin otorga todos los
permisos listados debajo.
CREATE: permite crear nuevas tablas o bases de
datos.
DROP: permite eliminar tablas o bases de datos.
DELETE: permite eliminar registros de tablas.
INSERT: permite insertar registros en tablas.
SELECT: permite leer registros en las tablas.
UPDATE: permite actualizar registros seleccionados en
tablas.
GRANT OPTION: permite otorgar o remover privilegios
a otros usuarios usuarios.

53
ORM

Object Relational Model


"mapeo de objetos a bases de
datos"

Son objetos que permiten acceder a los datos y que


contienen en s mismos el cdigo necesario para hacerlo.

54

Anda mungkin juga menyukai