Professional Documents
Culture Documents
Introduccin ................................................................................................................................................................ 3
Base de datos........................................................................................................................................................... 3
DBMS ....................................................................................................................................................................... 3
Los DBMS ofrecen: .............................................................................................................................................. 3
Caractersticas de los DBMS ................................................................................................................................ 3
Es la web una BBDD? ......................................................................................................................................... 4
Componentes de las BBDD .................................................................................................................................. 4
Niveles de Abstraccin ............................................................................................................................................ 4
1.
2.
Esquema fsico........................................................................................................................................... 4
3.
Especializacin. ........................................................................................................................................... 11
Agregacin. ................................................................................................................................................. 11
Especializacin ................................................................................................................................................... 11
Generalizacin ................................................................................................................................................... 11
Herencia de atributos ........................................................................................................................................ 12
Ligaduras de diseo ........................................................................................................................................... 12
Agregacin ......................................................................................................................................................... 13
Normalizacin ............................................................................................................................................................ 13
Primera Forma Normal .......................................................................................................................................... 13
Segunda Forma Normal ......................................................................................................................................... 13
Tercera Forma Normal .......................................................................................................................................... 13
Ejemplo de Normalizacin ..................................................................................................................................... 13
Diseo Fsico .............................................................................................................................................................. 15
Integridad de los datos .......................................................................................................................................... 15
Tipos de datos........................................................................................................................................................ 15
1
Tipos ...................................................................................................................................................................... 15
Crear Tablas ........................................................................................................................................................... 16
Diseo Fsico .......................................................................................................................................................... 16
Seguridad ............................................................................................................................................................... 16
Grant ...................................................................................................................................................................... 19
Privilegios............................................................................................................................................................... 20
Roles ...................................................................................................................................................................... 20
Revoke ................................................................................................................................................................... 20
SQL ............................................................................................................................................................................. 21
Esquemas SQL Server ............................................................................................................................................ 21
Master: ........................................................................................................................................................ 21
Msdb: .......................................................................................................................................................... 21
Model: ......................................................................................................................................................... 21
Tempdb: ...................................................................................................................................................... 21
SELECT.................................................................................................................................................................... 21
SELECT ALL ......................................................................................................................................................... 21
SELECT DISTINCT ................................................................................................................................................ 21
FROM ................................................................................................................................................................. 21
WHERE ............................................................................................................................................................... 22
GROUP BY .......................................................................................................................................................... 22
HAVING COUNT ................................................................................................................................................. 22
ORDER BY ........................................................................................................................................................... 22
Introduccin
Base de datos
DBMS
Data Base Management System es un software diseado para que en una base de datos se puedan
realizar las siguiente tareas:
o Guardar
o Administrar
o Garantizar y regular acceso
Se compone de un motor que atiende peticiones y las traduce.
Mantenimiento de la METADATA (Diccionario de datos)
La aplicacin debe administrar grandes conjuntos de datos entre memoria principal y almacenamiento
secundario.
Debe proteger los datos de posibles inconsistencias provocadas por mltiples usuarios concurrentes.
Debe proveer recuperacin ante fallas.
Seguridad y control de acceso.
Generalmente funcionan en entornos dedicados.
Independencia de datos.
Acceso eficiente.
Reduce el tiempo de desarrollo de una aplicacin.
Integridad de los datos y seguridad.
Administracin uniforme de los datos.
Acceso concurrente.
Niveles de Abstraccin
anlisis de requisitos
diseo conceptual
diseo lgico
refinamiento del esquema
diseo fsico
diseo de seguridad
Anlisis de Requisitos
Detectar
Qu datos sern almacenados en la base de datos ?
Qu aplicaciones deben utilizar estos datos ?
Performance: Que datos se accedern / almacenaran y como se requiere recuperarlos?
Proceso informal y subjetivo
Se usan diversas metodologas para organizar y presentar esta informacin como por ejemplo UML
Diseo Conceptual
Se utiliza la informacin obtenida en la fase anterior
Se describe la informacin a ser almacenada en la base de datos en trminos de:
objetos
relaciones entre ellos
Habitualmente, se utiliza el diagrama de Entidad-Relacin
Diseo Lgico
Se elige algn DBMS
Se convierte el diseo conceptual en un esquema del DBMS elegido
DER esquema relacional
Refinamiento del esquema
Se analiza el conjunto de relaciones resultantes para identificar problemas potenciales
Esta etapa no es subjetiva
Se basa en la Teora de Normalizacin de relaciones
Esta teora busca asegurar algunas propiedades deseables para las relaciones (por ejemplo, que no haya
perdida de informacin ni informacin redundante)
Diseo Fsico
Al diseo lgico se le incorporan atributos para:
cumplir requerimientos no funcionales (bsicamente, performance)
optimizar el mantenimiento y organizacin fsica de los datos (clustering)
5
Atributos
Los atributos describen propiedades que posee cada miembro de un conjunto de entidades.
Se clasifican en:
6
Simples y compuestos
o Atributos compuestos
Pueden dividirse en otros con significado propio
Univalorados y multivalorados
o Atributos monovalorados (monovaluados)
slo un valor para cada entidad
fechanacim [de un EMPLEADO particular]
aoestreno [de una PELICULA concreta]
o Atributos multivalorados (multivaluados)
ms de un valor para la misma entidad
nacionalidad [ PELICULA coproducida por varios pases ]
telefono [ EMPLEADO con varios telfonos de contacto]
Pueden tener lmites superior e inferior del n de valores por entidad
nacionalidad (1-2)
telefono (0-3)
Nulos
o El nulo (null value) es usado cuando...
Se desconoce el valor de un atributo para cierta entidad
El valor existe pero falta
altura [de un EMPLEADO]
No se sabe si el valor existe o no
numtelfono [de un EMPLEADO]
La entidad no tiene ningn valor aplicable para el atributo:
fechaalquiler [PELICULA slo en vdeo-venta (no alquiler)]
Derivados y almacenados
o Atributos derivados
Valor calculado a partir de otra informacin ya existente (atributos, entidades
relacionadas)
Son informacin redundante...
edad [de EMPLEADO], clculo a partir de fechanacim
atributo derivado del valor de otro atributo
numcopias [de una PELICULA], cuenta del n de entidades copia
relacionadas con cada pelcula concreta
atributo derivado de entidades relacionadas
o Atributos almacenados
nacionalidad [de una PELICULA]
fechanacim [de un EMPLEADO]
Relaciones
Asociacin, vnculo o correspondencia entre instancias de entidades relacionadas de alguna manera en
el mundo real
el director Julio Mdem ha rodado la pelcula Tierra
el empleado 87654321 trabaja en el local de videoclub principal
la pelcula El imperio contraataca es una continuacin de la pelcula La guerra de las galaxias
Estructura genrica o abstraccin del conjunto de relaciones existentes entre dos o ms tipos de entidad
un DIRECTOR ha rodado PELICULA
1:n Cuando un registro de una tabla (tabla secundaria) slo puede estar relacionado con un nico
registro de la otra tabla (tabla principal) y un registro de la tabla principal puede tener ms de un
registro relacionado en la tabla secundaria.
Todo tipo de entidad que participa en un tipo de relacin juega un papel especfico en la relacin
Limitan las posibles combinaciones de entidades que pueden participar en las relaciones
Extradas de la situacin real que se modela
Una pelcula debe haber sido dirigida por uno y slo un director
Un director ha dirigido al menos una pelcula y puede haber dirigido muchas
Clases de restricciones estructurales:
Razn de cardinalidad (o tipo de correspondencia)
Razn de participacin
Ligaduras de correspondencia
Correspondencia de cardinalidades: expresa el nmero de entidades a las que otra entidad puede estar
asociada va un conjunto de relaciones.
o Uno-uno
1-1
Varios-uno
n-1
o Uno-varios
1-n
Varios-varios
n-n
Atributos en Relacin
Llaves o claves
Llave candidata: Son aquellos atributos que tienen caractersticas para ser super llaves, pero hay dos o
ms en una entidad; una se tomara como llave primaria y otra como llave secuendaria.
El atributo que es la llave primaria en una entidad se subraya.
10
Especializacin.
Generalizacin y Especializacin
Herencia de atributos
Ligas de diseo
Agregacin.
Especializacin
Especializacin: Un conjunto de entidades que pueden incluir subgrupos de entidades que se diferencian
de alguna forma de las otra entidades del conjunto.
Proceso de definicin de un conjunto de subtipos de un tipo de entidad ( supertipo)
Subtipos suelen estar definidos segn caracterstica distintiva de las entidades del supertipo
Discriminante de la especializacin
Generalizacin
Generalizacin: Conjunto de entidades en niveles de subgrupos de entidades, representado un proceso
de diseo descendente (top down), tambin puede ser en forma ascendente (bottom up)
Proceso inverso de la especializacin
Suprimir diferencias entre varios tipos de entidad: identificar atributos y relaciones comunes y formar un
supertipo que los incluya
Agrupacin de instancias dentro de un tipo de entidad, que debe representarse explcitamente debido a
su importancia para el diseo o aplicacin
Subtipos del tipo de entidad VEHCULO:
CAMIN
TURISMO
11
AUTOBS
CICLOMOTOR
Subtipos del tipo de entidad EMPLEADO:
SECRETARIO
GERENTE
COMERCIAL
El tipo de entidad que se especializa en otros se llama supertipo ( VEHICULO, EMPLEADO )
Generalizacin
nfasis en las similitudes
Cada instancia del supertipo es tambin una instancia de alguno de los subtipos
Especializacin
nfasis en las diferencias
Alguna instancia del supertipo puede no ser instancia de ningn subtipo
Herencia de atributos
Herencia de atributos: Los atributos de los conjuntos de entidades de niveles mas altos se dicen que son
heredados por los conjuntos de entidades del nivel mas bajo.
Un subtipo puede tener atributos propios (especficos) y participar en relaciones por separado
Un subtipo hereda todos los atributos del supertipo, y toda relacin en la que participa el supertipo
Un subtipo, con sus atributos y relaciones especficos, ms los atributos y relaciones que hereda
del supertipo, es un tipo de entidad por derecho propio
Ligaduras de diseo
Ligaduras de diseo: Son usadas en la generalizacin, en el diagrama Entidad Relacin que determina que
entidades pueden ser miembros del conjunto de entidades del nivel mas bajo.
Dos (o ms) tipos de relacin son exclusivos,
respecto de un tipo de entidad que participa en ambos, si cada instancia del tipo de entidad slo puede
participar en uno de los tipos de relacin
12
Agregacin
Agregacin: Una limitacin del modelo E-R que no es posible expresar entre relaciones
Restriccin inherente del MER:
No puede expresar relaciones
entre varias relaciones, ni
entre un tipo de relacin y un tipo de entidad
La agregacin...
Permite combinar varios tipos de entidad, relacionados mediante un tipo de relacin, para
formar un tipo de entidad agregada de nivel superior
til cuando el tipo de entidad agregado debe relacionarse con otros tipos de entidad
Normalizacin
Primera Forma Normal
Todos los atributos son atmicos. Un atributo es atmico si los elementos del dominio son indivisibles,
mnimos.
La tabla contiene una clave primaria nica.
La clave primaria no contiene atributos nulos.
No debe existir variacin en el nmero de columnas.
Debe Existir una independencia del orden tanto de las filas como de las columnas, es decir, si los datos
cambian de orden no deben cambiar sus significados
Una tabla no puede tener mltiples valores en cada columna.
Clave candidata?
Un atributo no primario (Fecha Nac) no es dependiente enteramente de la PK.
Ejemplo de Normalizacin
1. Cumple FN1?
13
Solucin 1
Solucin 2
2. Est en FN2?
Para determinar cada atributo no clave se necesita la clave primaria completa, no vale con una
subclave.
La 2FN se aplica a las relaciones que tienen claves primarias compuestas por dos o ms atributos. Si
una relacin est en 1FN y su clave primaria es simple (tiene un solo atributo), entonces tambin est
en 2FN.
En general, tendremos que observar los atributos no clave que dependan de parte de la clave.
Para la solucin 1 (con clave nss y email) nombre y salario tenan una dependencia incompleta de
email por lo cual no cumple 2FN (con solucin 2 si se cumple)
3. Est en FN3?
A partir de un esquema en 2FN, tenemos que buscar dependencias funcionales entre atributos
que no estn en la clave.
nss->puesto
puesto->salario
14
Diseo Fsico
Evitar la redundancia de los datos
Ejemplo Localidad
Integridad de los datos
Nomenclatura univoca
Entidad y atributos autodescriptivos
Evitar nomenclaturas A_23943_CXX
Verificacin de n-plicidad
Ejemplos por restricciones en creacin
Tablas de integracin DW
Tipos de datos (columnas).
Tipos de datos
El tipo de datos de las columnas deben responder al dominio al cual pertenecen sin desperdiciar espacio
de almacenamiento.
La mayora de los motores soporta columnas del tipo VARCHAR.
Verificar tipos de datos permitidos por motor y por versin
Tipos
Char
Nchar
Varchar
Nvarchar
Text
Ntext
Image
Int
Bigint
Smallint
Tinyint
Decimal/numeric
Float
Real
Money
Smallmoney
Datetime
Smalldatetime
Timestamp
Uniqueindentifier
Binary
Varbinary
Bit
15
Crear Tablas
2 Formas
o Mediante Wizard
o Mediante Cdigo SQL
CREATE TABLE Personas
(
ID_Persona int PRIMARY KEY,
Apellido varchar(255) NOT NULL,
Nombre varchar(255) NOT NULL,
Edad int NOT NULL,
Direccion varchar(255) NOT NULL,
Ciudad varchar(255) NOT NULL,
Pais int FOREIGN KEY REFERENCES Paises(Id_Pais),
CHECK (Edad>0)
);
Diseo Fsico
En el diseo conceptual se obtienen todos los requerimientos, en el diseo lgico se convierten todos los
requerimientos en entidades con sus respectivos atributos y en el diseo fsico se construyen las tablas
con sus relaciones.
La entrada principal es el diagrama ER y la salida es la implementacin de la base de datos con sus
restricciones.
Organizacin optima de los sistemas de archivos.
CREATE TABLESPACE lmtbsb DATAFILE '/u02/oracle/data/lmtbsb01.dbf' SIZE 50M EXTENT
MANAGEMENT LOCAL UNIFORM SIZE 128K;
ALTER TABLESPACE bigtbs RESIZE 80G;
ALTER TABLESPACE bigtbs AUTOEXTEND ON NEXT 20G;
Disear vistas de usuario
Disear mecanismos de seguridad
ndices
Seguridad
Son el derecho que tiene un usuario para ejecutar una sentencia SQL
El Administrador de la base de datos (DBA) tiene todos los privilegios y puede otorgar privilegios a otros
usuarios
Los privilegios del sistema dan acceso a la base de datos
Los privilegios de objeto dan la capacidad de manipular el contenido de los objetos de la base de datos
Los usuarios pueden dar privilegios a otros usuarios o a roles (grupos de usuarios)
16
17
18
Grant
19
Privilegios
Roles
Un rol es un grupo de privilegios que reciben un nombre, este rol puede ser otorgado posteriormente a un
usuario.
Usar roles hace ms fcil el manejo de los privilegios
Un usuario puede tener asignados varios roles y varios usuarios pueden tener el mismo rol
Los roles normalmente se crean debido a necesidades de las aplicaciones
El DBA o un usuario con privilegios de crear roles, crea el rol y luego a ese rol se le asignan los privilegios
Revoke
La sentencia REVOKE permite quitar/revocar privilegios del sistema otorgados a un usuario, rol o PUBLIC
La palabra ALL PRIVILEGES quita/revoca todos los privilegios del sistema otorgados al usuario, rol o PUBLIC
Revocar un privilegio de sistema a un usuario no tiene efectos en cascada
20
SQL
Se divide en dos grandes grupos DML (Data Manipulation Languaje) y DDL (Data Definition Languaje).
SELECT
La sentencia se utiliza para extraer informacin de la BD.
Segn el proveedor puede tener distintas particularidades que no aplican al estandar ISO.
Estructura/Ejemplo de SELECT:
select UBICACION , count(*) as EJEMPLARES
from MASCOTAS
where ESTADO = 'A'
group by UBICACION
having count(*) > 2
SELECT ALL
Valor implcito cuando no se especifica
Indica la contraposicin al distinct
Reportan todos los registros que cumplen con la clausulas desarrolladas por joins y where
SELECT DISTINCT
Se utiliza cuando se quiere registros/valores distintos.
Una tpica utilizacin es cuando se requiere contabilizar distintos valores dentro de una tabla(s) que
repiten el elemento del atributo.
Ejemplo:
FROM
Se utiliza para indicar la(s) tabla(s) de las cuales se recuperar la informacin.
Opcionalmente pueden ser vistas, sinnimos o tablas remotas (utilizando DBLINKS)
Ejemplo:
21
WHERE
Se indican las condiciones que deben cumplir los registros de las tablas afectadas.
Se combinan a travs de los indicadores lgicos AND y/o OR.
Ejemplo:
GROUP BY
Se utiliza para agregar la informacin del dataset resultante por distintas dimensiones de la junta.
Ejemplo quiero agrupar todos los clientes del mismo pas:
HAVING COUNT
Son clausulas condiciones restrictivas (como el WHERE) pero referidas a las agregaciones que se estn
realizando por una agrupacin.
Siempre que se utilicen debe existir una clausula GROUP BY anterior.
Ejemplo:
ORDER BY
Se utiliza para indicar el criterio de ordenamiento del dataset resultante.
Se indican columnas y si se requiere order ascendente o descendente. ASC (Implcito) o DESC
respectivamente.
22