Вы находитесь на странице: 1из 27

UPC

Implementacion de Base de Datos

Implementacin
de Base de Datos
Profesores:
Mg. Javier Cullas Huapaya
Mg. Jorge del Mar Arzola

Objetivos de hoy
Conocer cul ser el contenido del curso
Revisar el Lenguaje SQL (conceptos
principales, DDL y DCL)

UPC - Ingeniera de Sistemas

UPC
Implementacion de Base de Datos

Contenido del Curso


Lenguaje SQL
Administracin de la memoria
Gestin de ndices
Procesamiento de Consultas
Optimizacin de Consultas
Arquitecturas de los DBMS
Procesamiento de transacciones, control de
concurrencia, seguridad y recuperacin
Bases de datos distribuidas

Algunos tpicos del Curso


Crear bases de datos
Crear tipos de datos y tablas
Planificar, crear y optimizar ndices
Implementar la integridad de los datos de
las bases de datos
Implementar
vistas,
procedimientos
almacenados, y funciones
Administrar transacciones y bloqueos
Otros temas

UPC - Ingeniera de Sistemas

UPC
Implementacion de Base de Datos

Objetivos del Curso


Comprender la arquitectura y funcionamiento
de los manejadores de bases de datos

Desarrollar la capacidad para gestionar la


implementacin de una base de datos,
considerando los procesos de administracin,
optimizacin y mantenimiento, as como la
seguridad de la informacin

Fases en el diseo e implementacin de una


base de datos grande
Contenido de datos y estructura

Aplicaciones de
bases de datos

Fase 1: Recopilacin y
Anlisis de requisitos

Requisitos de datos

Requisitos de
procesamiento

Fase 2: Diseo
conceptual

Diseo del esquema conceptual


(independiente del DBMS)

Diseo de
transacciones y de la
aplicacin
(independiente del
DBMS)

Fase 3: Eleccin del


DBMS
Fase 4: Mapeo del
modelo de datos
(diseo lgico)

Esquema lgico y diseo de vistas


(depende del tipo de DBMS)

Fase 5: Diseo fsico

Diseo del esquema interno (depende del


DBMS)

Fase 6: Implementacin
y puesta a punto del
sistema

Sentencias DDL
Sentencias SDL (instrucciones de
definicin de almacenamiento)

Restricciones
de rendimiento
de frecuencias

Implementacin de
transacciones y
aplicaciones

Fuente: Fundamentos de Sistemas de Bases de Datos. Elmasri / Navathe. 5ta Ed.

UPC - Ingeniera de Sistemas

UPC
Implementacion de Base de Datos

El Ciclo de Vida de una BD


ESTUDIO
ESTUDIOPREVIO
PREVIOYYPLAN
PLANDE
DETRABAJO
TRABAJO
--ESTRATEGIA
ESTRATEGIA -

CONCEPCION
CONCEPCIONDE
DELA
LABD
BDYY
SELECCIN
SELECCINDEL
DELEQUIPO
EQUIPO

DISEO
DISEOYYCARGA
CARGA
--CONSTRUCCIN
CONSTRUCCIN--

PRODUCCIN
PRODUCCIN

CONCEPCIN DE LA BD Y
SELECCIN DE EQUIPO

ESTUDIO PREVIO

MODELADO
MODELADOCONCEPTUAL
CONCEPTUALYY
MODELADO
MODELADOLGICO
LGICO

EVALUACIN
EVALUACINYYSELECCIN
SELECCINDE
DE
EQUIPO
FSICO
EQUIPO FSICOYYLGICO
LGICO
NECESARIOS
NECESARIOS

SI, CON REPAROS

APROBADO?
APROBADO?
SI

DISEO Y CARGA

UPC - Ingeniera de Sistemas

N
O
Lo aprueba la Direccin en
lneas generales?
Estn de acuerdo los
usuarios?

UPC
Implementacion de Base de Datos

DISEO
DISEOFSICO
FSICO

DISEO Y CARGA

CARGA
CARGA
PRUEBAS
PRUEBASDE
DEPROGRAMAS
PROGRAMAS

PROBLEMAS
PROBLEMASEN
ENLA
LA
ESTRUCTURA?
ESTRUCTURA?

PRODUCCIN

N
O

SI

N
O
SE
SEHA
HACARGADO
CARGADO
TODA
TODALA
LABASE?
BASE?
SI
SISTEMA
SISTEMADE
DE
EXPLOTACIN
EXPLOTACIN

Caractersticas de una BD
Un buen diseo
Una eficacia plena
Disponibilidad del 100%
Una adaptacin a los requerimientos

UPC - Ingeniera de Sistemas

UPC
Implementacion de Base de Datos

i
c
a Planificar
t
n
e
Organizar
m
e
l
Desarrollar
p
Im
Controlar

Lenguaje SQL

UPC - Ingeniera de Sistemas

UPC
Implementacion de Base de Datos

SQL
El

Lenguaje de consulta estructurado


(Structured Query Language) es un lenguaje
declarativo de acceso a bases de datos
relacionales que permite especificar diversos tipos
de operaciones en stas

Una de sus caractersticas es el manejo del

lgebra relacional permitiendo efectuar consultas


con el fin de recuperar -de una forma sencillainformacin de inters de una base de datos, as
como tambin hacer cambios sobre ella

SQL
El SQL es un lenguaje de acceso a bases de

datos que explota la flexibilidad y potencia


de los sistemas relacionales permitiendo
gran variedad de operaciones
Es un lenguaje declarativo de "alto nivel" o
"de no procedimiento", que gracias a su
fuerte base terica y su orientacin al
manejo de conjuntos de registros, permite
una alta productividad en codificacin

UPC - Ingeniera de Sistemas

UPC
Implementacion de Base de Datos

SQL
Este curso pretende brindar lo bsico y

esencial de SQL
No se pretende realizar un estudio
exhaustivo
de
todas
las
opciones,
comandos y aspectos de almacenamiento y
administracin que se pueden considerar
en SQL
Slo se pretende presentar y explicar los
comandos ms utilizados con sus opciones
ms tiles, dejando los detalles ms
especficos a los manuales de referencia

Introduccin al SQL
Sentencias DDL:
CREATE
ALTER
DROP
TRUNCATE
COMMENT
RENAME

UPC - Ingeniera de Sistemas

UPC
Implementacion de Base de Datos

Introduccin al Lenguaje SQL


Sentencias DCL:
GRANT
REVOKE

Introduccin al Lenguaje SQL


Sentencia DML:

UPC - Ingeniera de Sistemas

SELECT
INSERT
UPDATE
DELETE
SELECT
Clusulas SELECT, FROM, INTO, WHERE
Clusulas GROUP BY, HAVING
Clusula ORDER BY
Tipos de JOIN
Subqueries

UPC
Implementacion de Base de Datos

Introduccin al Lenguaje SQL


Sentencias TCL:
COMMIT
SAVEPOINT
ROLLBACK
SET TRANSACTION

SENTENCIAS DDL

UPC - Ingeniera de Sistemas

UPC
Implementacion de Base de Datos

DDL
El lenguaje de definicin de datos
(en ingls Data Definition Language,
o DDL), es el que se encarga de la
creacin y modificacin de la
estructura de los objetos de la base
de datos.

Introduccin al SQL
Sentencias DDL:
CREATE
ALTER
DROP
TRUNCATE
COMMENT
RENAME

UPC - Ingeniera de Sistemas

UPC
Implementacion de Base de Datos

SENTENCIAS DDL

CREATE TABLE
Las tablas se definen en tres pasos:
1)
2)
3)

Dar el nombre a la tabla


Definir cada columna, posiblemente
incluyendo restricciones de columna
Definir las restricciones de la tabla

SENTENCIAS DDL

CREATE TABLE
CREATE TABLE

nombre-tabla
{campo1 (tipo
tamao / dominio)
[NOT NULL],
[campo2 (tipo

tamao / dominio)

[NOT NULL]],
[PRIMARY KEY (c1,
c2, ..., cn)],
[FOREIGN KEY (c1)
REFERENCES tablax],
[CHECK (P)]}

UPC - Ingeniera de Sistemas

Nombre-tabla:
Es
el
nombre de la tabla que
se va a crear
Campo i: son los nombres
de los campos de la tabla
Tipo: Es el tipo de datos
del campo
Tamao: es el tamao del
campo en caracteres
Dominio: es el nombre
del dominio asignado al
campo

UPC
Implementacion de Base de Datos

SENTENCIAS DDL

CREATE TABLE
CREATE TABLE

nombre-tabla
{campo1 (tipo tamao
/ dominio) [NOT
NULL],
[campo2 (tipo

tamao / dominio)

[NOT NULL]],
[PRIMARY KEY (c1,
c2, ..., cn)],
[FOREIGN KEY (c1)
REFERENCES tablax],
[CHECK (P)]}

Primary Key: especifica


las
columnas
que
conforman
la
clave
primaria de la tabla
Foreign key: indica las
columnas
que
constituyen clave externa
en la tabla
References:
indica
la
tabla que provee la clave
fornea
Check (P): especifica un
predicado
que
debe
satisfacer cada fila de la
tabla

SENTENCIAS DDL

Ejemplos de CREATE TABLE


CREATE TABLE Cliente
(id-cliente
char(5) not null,
nombre-cliente char(20),
calle-cliente
char(30),
primary key id-cliente)

UPC - Ingeniera de Sistemas

UPC
Implementacion de Base de Datos

SENTENCIAS DDL

Ejemplos de CREATE TABLE


CREATE TABLE Cuenta
(id-cuenta
char(10) not null,
id-cliente
char(5),
saldo
integer
check
(saldo >= 0),
primary key id-cuenta
foreign key
id-cliente references
Cliente)

SENTENCIAS DDL

Constraints
Se puede colocar restricciones para
crear o eliminar ndices, limitar el tipo
de dato que puede ingresarse en una
tabla o para el manejo de clave primaria
o clave externa
Se
puede
utilizar
la
clusula
CONSTRAINT en las instrucciones ALTER
TABLE y CREATE TABLE para crear o
eliminar restricciones

UPC - Ingeniera de Sistemas

UPC
Implementacion de Base de Datos

SENTENCIAS DDL

Constraints
CONSTRAINT nombre
{PRIMARY KEY (principal1
[,principal2 [, ...]]) |
UNIQUE (nico1 [,nico2 [,
...]]) |
NOT NULL (negadonulo1
[,negadonulo2 [, ...]]) |
FOREIGN KEY (referencia1
[,referencia2 [, ...]])
REFERENCES
tabla_externa
[(campo_externo1
[,campo_externo2 [,
...]])]}

Nombre: Es el nombre de
la restriccin que se va a
crear
principal1,
principal2:
Son los nombres de los
campos que se van a
designar
como
clave
principal
nico1, nico2: Son los
nombres de los campos
que se van a designar
como clave nica

SENTENCIAS DDL

Constraints
CONSTRAINT nombre
{PRIMARY KEY (principal1
[,principal2 [, ...]]) |
UNIQUE (nico1 [,nico2 [,
...]]) |
NOT NULL (negadonulo1
[,negadonulo2 [, ...]]) |
FOREIGN KEY (referencia1
[,referencia2 [, ...]])
REFERENCES
tabla_externa
[(campo_externo1
[,campo_externo2 [,
...]])]}

UPC - Ingeniera de Sistemas

negadonulo1,
negadonulo2: Son los
nombres de campos que
se van a limitar a valores
no Null
referencia1, referencia2:
Son los nombres de los
campos de la clave
externa a los que se hace
referencia en otra tabla

UPC
Implementacion de Base de Datos

SENTENCIAS DDL

Constraints
CONSTRAINT nombre
{PRIMARY KEY (principal1
[,principal2 [, ...]]) |
UNIQUE (nico1 [,nico2 [,
...]]) |
NOT NULL (negadonulo1
[,negadonulo2 [, ...]]) |
FOREIGN KEY (referencia1
[,referencia2 [, ...]])
REFERENCES tabla_externa
[(campo_externo1
[,campo_externo2 [, ...]])]}

Tabla_externa:
Es
el
nombre de la tabla externa
que contiene el campo o los
campos especificados por
campo_externo
Campo_externo1,
campo_externo2: Son los
nombres de los campos en
tabla_externa especificados
por referencia1, referencia2.
Puede omitir esta clusula si
el campo al que se hace
referencia
es
la
clave
principal de tabla_externa

SENTENCIAS DDL

Ejemplo de Constraints
CREATE TABLE [dbo].[SalesHistory](
[SaleID]
[int] IDENTITY(1,1) NOT NULL,
[Product] [char](150) NULL,
[SaleDate] [datetime] NULL,
[SalePrice] [money] NULL,
CONSTRAINT pk_SaleID PRIMARY KEY
(SaleID)

UPC - Ingeniera de Sistemas

UPC
Implementacion de Base de Datos

SENTENCIAS DDL

Ejemplo de Constraints
CREATE TABLE Producto
(
ProductID int PRIMARY KEY,
UnitPrice money, CONSTRAINT
CK_UnitPrice2 CHECK(UnitPrice > 0
AND UnitPrice < 100)
)

SENTENCIAS DDL

ALTER TABLE
ALTER TABLE nombre-

tabla

{ADD | MODIFY
[COLUMN campo tipo
[(tamao)] [NOT
NULL] [CONSTRAINT

nombre-constraint
tipo-constraint]] |

[CONSTRAINT nombreconstraint tipo-

constraint

(campo,)]}

UPC - Ingeniera de Sistemas

Tabla: Es el nombre de
la tabla que se va a
modificar
Campo: Es el nombre
del campo que se va a
agregar o eliminar de
tabla
Tipo: Es el tipo de
datos del campo
Tamao:Es el tamao
del
campo
en
caracteres

UPC
Implementacion de Base de Datos

SENTENCIAS DDL

Ejemplos de ALTER TABLE


Adicionar un campo:

ALTER TABLE Empleado


ADD COLUMN Salario number(15,2)

Quitar el campo Salario de la tabla


Empleados:

ALTER TABLE Empleado


DROP COLUMN Salario

SENTENCIAS DDL

Ejemplos de ALTER TABLE


Adicionar una clave fornea:

ALTER TABLE Pedido


ADD CONSTRAINT PedidosEmpleados
FOREIGN KEY (IdEmpleado) REFERENCES
Empleados (IdEmpleado)

Quitar la clave externa existente de la


tabla Pedidos:

UPC - Ingeniera de Sistemas

ALTER TABLE Pedido


DROP CONSTRAINT PedidosEmpleados;

UPC
Implementacion de Base de Datos

SENTENCIAS DDL

Ejemplos de ALTER TABLE


Modificar una columna:
ALTER TABLE Proveedor
MODIFY Nombre varchar(100)
not null

SENTENCIAS DDL

DROP
DROP {TABLE tabla
| INDEX ndice
ON tabla}

UPC - Ingeniera de Sistemas

tabla: Es el nombre
de la tabla que se va
a eliminar o la tabla
de la cual se va a
eliminar un ndice
ndice: Es el nombre
del ndice que se va
a eliminar de la tabla

UPC
Implementacion de Base de Datos

SENTENCIAS DDL

Ejemplos de DROP
Ejemplo de como se elimina el ndice
Mi_Indice de la tabla Empleado:
DROP INDEX Mi_Indice ON Empleado;
Ejemplo de cmo se elimina una tabla:
DROP TABLE Practica;

SENTENCIAS DDL

TRUNCATE
TRUNCATE TABLE tabla
tabla: Es el nombre de la tabla que se va
a eliminar todas las filas sin registrar las
eliminaciones individuales de filas

UPC - Ingeniera de Sistemas

UPC
Implementacion de Base de Datos

SENTENCIAS DDL

Ejemplo de TRUNCATE
Ejemplo de como se elimina todas las filas de
una tabla:
TRUNCATE TABLE Alumno;

SENTENCIAS DDL

COMMENT
Permite colocar comentarios en el diccionario
COMMENT ON TABLE tabla IS comentario';
COMMENT ON COLUMN tabla.columna IS
comentario';

UPC - Ingeniera de Sistemas

UPC
Implementacion de Base de Datos

SENTENCIAS DDL

Ejemplos de COMMENT (oracle)


COMMENT ON TABLE T_PRODUCTO IS 'Tabla de
Productos';
COMMENT ON COLUMN
T_PRODUCTO.num_producto IS 'Cdigo de 6
digitos del producto';
COMMENT ON COLUMN
T_PRODUCTO.des_producto IS 'Descripcin
del producto';

SENTENCIAS DDL

Ejemplo de comentarios (sql server)


Ejemplo de comentarios con --:
CREATE VIEW PROYECTO_TI
-- PROYECTOS DE TI
AS SELECT CODIGO, NOMBRE
FROM PROYECTO
WHERE COD_DEPT = E21
Ejemplo de comentarios con /*:
CREATE VIEW PROYECTO_TI /* PROYECTOS DE TI */
AS SELECT CODIGO, NOMBRE
FROM PROYECTO
WHERE COD_DEPT = E21

UPC - Ingeniera de Sistemas

UPC
Implementacion de Base de Datos

SENTENCIAS DDL

RENAME TABLE
RENAME tabla to
nuevoNombre

tabla: Es el nombre
de la tabla que se
va a cambiar de
nombre

SENTENCIAS DDL

Ejemplos de RENAME TABLE


Renombrar una tabla
RENAME TABLE Empleado
TO Personal

UPC - Ingeniera de Sistemas

UPC
Implementacion de Base de Datos

SENTENCIAS DCL

SENTENCIAS DCL

DCL
El lenguaje de definicin de datos
(en ingls Data Control Language, o
DCL), es el que se encarga de la
seguridad de la base de datos, en
todo lo referente al control de
accesos y privilegios a los usuarios.

UPC - Ingeniera de Sistemas

UPC
Implementacion de Base de Datos

Introduccin al Lenguaje SQL


Sentencias DCL:
GRANT
REVOKE

SENTENCIAS DCL

GRANT
GRANT
lista_privilegios
ON tabla TO
lista_usuarios [
WITH GRANT
OPTION ]

UPC - Ingeniera de Sistemas

Lista_privilegios:
privilegios: SELECT,
INSERT,
DELETE,
UPDATE
Tabla: nombre de la
tabla
Lista_usuarios:
usuarios a los que se
les
dara
los
privilegios

UPC
Implementacion de Base de Datos

SENTENCIAS DCL

Ejemplos de GRANT
Ejemplo de como se asigna todos los
privilegios en la tabla Persona a Juan:
GRANT ALL ON Persona TO Juan
WITH GRANT OPTION
Ejemplo de como se da el privilegio de
SELECT sobre la tabla Persona a Juan:
GRANT SELECT ON Persona TO Juan

SENTENCIAS DCL

Ejemplos de GRANT
Ejemplo de como se asigna algunos
privilegios en la columna Nombre en la
tabla Persona a Juan:
GRANT SELECT, INSERT,UPDATE
(Nombre) ON Persona
TO Juan
WITH GRANT OPTION

UPC - Ingeniera de Sistemas

UPC
Implementacion de Base de Datos

SENTENCIAS DCL

REVOKE
REVOKE [ GRANT
OPTION FOR ]
lista_privilegios
ON tabla FROM
lista_usuarios {
RESTRICT |
CASCADE }

Lista_privilegios:
privilegios: SELECT,
INSERT,
DELETE,
UPDATE
Tabla: nombre de la
tabla
Lista_usuarios:
usuarios a los que se
les
quitara
los
privilegios

SENTENCIAS DCL

Ejemplos de REVOKE
Ejemplo de como se desasigna algunos
privilegios en la columna Nombre en la
tabla Persona a Juan:
REVOKE SELECT ON Persona FROM
Juan

UPC - Ingeniera de Sistemas