Sistema Manejador de Bases de Datos SMBD - PowerPoint PPT Presentation

1 / 139
About This Presentation
Title:

Sistema Manejador de Bases de Datos SMBD

Description:

... acceder a los datos. DBMS contiene informaci n acerca de una ... DBMS proporciona un entorno pr ctico y eficiente de usar, almacenar y recuperar informaci n ... – PowerPoint PPT presentation

Number of Views:795
Avg rating:3.0/5.0
Slides: 140
Provided by: marily308
Category:

less

Transcript and Presenter's Notes

Title: Sistema Manejador de Bases de Datos SMBD


1
Sistema Manejador de Bases de Datos (SMBD)
  • Colección de datos interrelacionados
  • Conjunto de programas para acceder a los datos
  • DBMS contiene información acerca de una empresa
  • DBMS proporciona un entorno práctico y eficiente
    de usar, almacenar y recuperar información
  • Proporcionan fiabilidad de la información a pesar
    de las caidas del sistema e intentos de acceso no
    autorizados

2
Propósito de un sistema de Bases de Datos
  • En un principio las bases de datos fueron
    construidad en un sistema de archivos
  • Inconvenientes importantes de del sistema de
    archivos
  • Redundancia e inconsistencia de datos
  • Diferentes formatos de archivos, información
    duplicada en diferentes archivsos
  • Dificultad en el acceso a los datos
  • Necesidad de escribir un nuevo programa para
    nuevas tareas
  • Aislamiento de datos multipleas archivos y
    formatos
  • Problemas de integridad
  • Ligaduras de integridad (e.j. Saldo minimo gt 0)
    es parte del codigo del programa
  • Dificultad en cambiar o adicionar nuevas
    ligaduras de integridad

3
Purpose of Database Systems (Cont.)
  • Inconvenientes de sistemas de archivos (cont.)
  • Atomicidad
  • Las fallas pueden dejar a la base de datos en un
    estado de inconsistencia debido a actualizaciones
    parciales
  • E.j. La tranferencia de fondos de una cuenta a
    otra debe ocurrir completamente o no realizarce
  • Anomalias en el acceso concurrente
  • Nivel de respuesta aceptable a accesos
    concurrentes
  • Accesos concurrentes sin control dejan la DB en
    un estado inconsistente
  • E.j. Dos personas leyendo un balance y
    actualizandolo al mismo tiempo
  • Problemas de seguridad
  • Un sistema de bases de datos ofrece soluciones a
    todos estos aspectos

4
Niveles de abstracción
  • Nivel Físico describe cómo se almacenan
    realmente los datos.
  • Nivel Lógico describe qué datos se almacenan en
    la base de datos y qué relaciones existen entre
    esos datos.
  • Nivel de Vista describe sólo una parte de la
    base de datos. Pueden esconder información con
    propósitos de seguridad

5
View of Data
An architecture for a database system
6
Ejemplares y Esquemas
  • Similar a los tipos de datos y las variables en
    lenguajes de programación
  • Esquema la estructura lógica de la base de
    datos
  • Esquema Físico diseño de la base de datos a
    nivel físico
  • Esquema Lógico diseño de la base de datos a
    nivel lógico
  • Ejemplar (instancia) el actual contenido de la
    base de datos en un tiempo especifico
  • Physical Data Independence la habilidad para
    modificar el esquema físico sin realizar cambios
    en el esquema lógico

7
Modelo de Datos
  • Colección de herramientas conceptuales para
    describir
  • datos
  • relaciones de datos
  • semantica de los datos
  • ligaduras de consistencia
  • Modelo Entidad - Relación
  • Modelo Relacional
  • Otros Modelos
  • modelo orientado a objetos
  • modelo de datos semiestructurado
  • modelos viejos modelo jerarquico y modelo de red

8
Modelo Entidad - Relación
  • Ejemplo de un esquema en un modelo entidad -
    relación

9
Modelo Entidad - Relación (Cont.)
  • Modelo E-R del mundo real
  • Entidades (objeto o cosa en el mundo real
    distingible de otros objetos)
  • Relaciones (asociación entre entidades)
  • Ampliamente usado para el diseño de bases de
    datos
  • El diseño de una base de datos en modelo E-R
    normalmemte es convertido en un diseño de modelo
    Relacional, el cual es usado para almacenamiento
    y procesamiento.

10
Modelo Relacional
Atributos
  • Ejemplo de datos tabulados en un modelo relacional

Calle-cliente
Numero-cuenta
Nombre-cliente
Ciudad-cliente
Cliente_id
Johnson Smith Johnson Jones Smith
192-83-7465 019-28-3746 192-83-7465 321-12-3123
019-28-3746
Alma North Alma Main North
A-101 A-215 A-201 A-217 A-201
Palo Alto Rye Palo Alto Harrison Rye
11
Un Ejemplo de Base de Dato Relacional
12
Lenguaje de Definición de Datos (DDL)
  • Especifica detalles de implementación del esquema
    dela base de datos
  • E.j. create table cuenta (
    numero-cuenta char(10), saldo
    integer)
  • El compilador DDL genera un conjunto de tablas
    que se almacena en el diccionario de datos
  • El diccionario de datos contiene los metadatos
    (datos acerca de los datos)

13
Lenguaje de Manipulación de Datos (DML)
  • Lenguaje para accesar o manipular los datos
    organizados por un modelo de datos apropiado.
  • DML también es conocido como lenguaje de
    consultas
  • Tipo de lenguajes
  • Procedimental el usuario especifica qué datos
    de necesitan y cómo obtener estos datos
  • No procedimental el usuario especifica qué
    datos se necesitan, sin especificar cómo obtener
    estos datos
  • SQL es el lenguaje de consultas más amplimente
    usado

14
SQL
  • SQL widely used non-procedural language
  • E.g. find the name of the customer with
    customer-id 192-83-7465 select
    customer.customer-name from
    customer where customer.customer-id
    192-83-7465
  • E.g. find the balances of all accounts held by
    the customer with customer-id 192-83-7465 select
    account.balance from depositor,
    account where depositor.customer-id
    192-83-7465 and
    depositor.account-number account.account-number
  • Application programs generally access databases
    through one of
  • Language extensions to allow embedded SQL
  • Application program interface (e.g. ODBC/JDBC)
    which allow SQL queries to be sent to a database

15
Usuarios de la Base de Datos
  • Los usuarios se diferencian por la forma como
    esperan interactuar con el sistema
  • Programador de aplicaciones interactuan con el
    sistema atravez de llamadas del DML
  • Usuario
  • s sofisticados forman sus consultas en un
    lenguaje de consultas de bases de datos
  • Usuarios especializados escriben aplicaciones
    de bases de datos especializadas que no son
    adecuadas en el marcode procesamiento de datos
    tradicional
  • Usiarios normales invocan programas de
    aplicación permanente que se han escrito
    prevbiamente

16
Administrador de la Base de Datos
  • Coordina todas las actividades del sisetma de
    base de datos
  • Sus funciones incluyen
  • Definición del esquema
  • Estructura de almacenamiento y definición del
    método de acceso
  • Esquema y modificación de la organización física
  • Concesión de autorizaciones para el acceso a los
    datos
  • Especificación de las ligaduras de integridad
  • Actua como un liaison con los usuarios
  • Monitorea el performance y responde a los cambios
    de requerimientos

17
Administración de Transacciones
  • Una transacción es una colección de operaciones
    que se llevan a cabo como una función lógica
    simple en una aplicación de base de datos
  • Es responsabilidad del administrador de
    transacciones, asegurar el estado de consistencia
    aún despues de haber ocurrido fallas en el
    sistema o transacciones (atomicidad y
    durabilidad)
  • El administrador de control de concurrencia
    controla la interacción entre las transacciones
    concurrentes para asegurar la consistencia de la
    base de datos.

18
Gestión de Almacenamiento
  • Un gestor de almacenammiento es un módulo de
    programa que proporciona la interfaz entre los
    datos de bajo nivel en la base de datos y los
    programas de aplicación y consultas suministradas
    al sistema.
  • El gestor de almacenamiento es responsable de las
    siguientes tareas
  • interacción con el administrador de archivos
  • eficiente almacenamiento, recuperación y
    actualización de los datos en la base de datos

19
Estructura del Sistema
20
Modelo Entidad - Relación
  • Conjunto de Entidades
  • Conjunto de Relaciones
  • Cuestiones de Diseño
  • Ligaduras de Correspondencia
  • Claves
  • Diagrama E-R
  • Características del Modelo E-R Extendido
  • Diseño de un Esquema de Bases de Datos E-R
  • Reducción de un Esquema E-R a Tablas

21
Conjunto de Entidades
  • Una base de datos puede ser modelada como
  • un conjunto de entidades,
  • relaciones entre las entidades.
  • Una entidad es un objeto que existe y es
    distinguble de otros objetos.
  • Ejemplos persona específica, empresa, evento,
    planta
  • Las entidadades tienen atributos
  • Ejemplo las personas tienen nombre, dirección,
    etc.
  • Un conjunto de entidades es un conjunto de
    entidades del mismo tipo que comparten las mismas
    propiedades
  • Ejemploconjunto de todas las personas, empresas,
    arboles

22
Conjunto de Entidades Clientes y Prestamos
cliente-id cliente cliente-
cliente- prestamo- monto
nombre calle ciudad
numero
23
Atributos
  • Una entidad es representada por un conjunto de
    atributos, los cuales describen las propiedades
    de todos los miembros de unconjunto de entidades.
  • Dominio conjunto de valores permitidos para
    cada atributo
  • Tipos de atributos
  • Simples y compuestos
  • Univalorados y multivalorados
  • E.j. multivalorado numero-telefono
  • Derivados
  • Puede ser derivado de valores de otros atributos
    o entidades
  • E.j. edad, dada la fecha de nacimiento

Ejemplo clienter (cliente-id,
cliente-nombre, cliente-calle,
cliente-ciudad) prestamo (prestamo-numerp,
monto)
24
Atributos Compuestos
25
Conjunto de Relaciones
  • Una relación es una asociación etre diferentes
    entidades
  • Ejemplo Ortiz posee A-102 entidad
    cliente conjunto relaciones entidad
    cuenta
  • Una relación también puede tener atributos
    descriptivos

26
Conjunto de Relaciones Prestatario
27
Conjunto de Relaciones (Cont.)
28
Grado de una Relacion
  • Se refiere al número de conjunto de entidades que
    participan en un conjunto de relaciones.
  • Un conjunto de relaciones en la cual se
    involucran dos conjuntos de entidades se denomina
    binaria(o grado dos). La mayoría de relaciones
    entreconjunto de entidades son binarias

29
Correspondencia de Cardinalidad
  • Expresa en número de entidades a las que otra
    entidad puede estar asociada vía un conjunto de
    relaciones.
  • Para un conjunto de relaciones benarias las
    correspondencia de cardinalidades debe ser una de
    los siguinetes tipos
  • uno a uno
  • uno a muchos
  • muchos a uno
  • muchos a muchos

30
Correspondencia de Cardinalidad
Uno a uno
Uno a muchos
31
Correspondencia de Cardinalidad
Muchos a uno
Muchos a muchos
32
Mapping Cardinalities affect ER Design
  • Can make access-date an attribute of account,
    instead of a relationship attribute, if each
    account can have only one customer
  • I.e., the relationship from account to customer
    is many to one, or equivalently, customer to
    account is one to many

33
Diagramas E-R
  • Rectangulos representa conjunto de entidades.
  • Ronbos representa relaciones.
  • Lineas une atributos o conjunto de entidades a
    conjuntos de relaciones.
  • Elipses representa atributos
  • Elipses dobles representa atributos
    multivalorados.
  • Elipses discontinuasdenotan atributos derivados.
  • Subrayado indica atributo de llave primaria

34
Diagrama E-R con Atributos Compuestos,
Multivalorados y Derivados
35
Conjunto de Relaciones con Atributos
36
Roles
  • El conjunto de entidades en una relación no
    necesita ser distingido
  • Las etiquetas manager y worker son llamadas
    roles ellas especifican cómo la entidad employee
    interactua atravéz de la relación works-for.
  • Los roles se indican como etiquetas sobre las
    líneas que contienen los rombos y los rectangulos
    en el modelo E-R.
  • Los roles son opcionales, y son usados para
    clarificar la semantica de la relación

37
Restricciones de Cardinalidad
  • Las restricciones de cardinalidad se pueden
    expresar dibujando una linea dirigida (?), para
    indicar uno, o una linea sin dirección (), para
    indicar muchos, entre un conjunto de relaciones y
    uno de relaciones.
  • E.j. Relación uno a uno
  • Un cliente es asociado con máximo un prestamo vía
    prestatario
  • Un prestamo es asociado con máximo un cliente vía
    prestatario

38
Relación Uno a Muchos
  • En la relación uno a muchos, un préstamo es
    asociado con máximo un cliente vía prestatario, y
    un cliente asociado con muchos prestamos
    (incluyendo 0) vía prestatario.

39
Relaciones Muchos a Uno
  • En la relación muchos a uno el prestamo es
    asociado con varios(incluido 0) clientes, y un
    cliente con máximo un prestamo vía prestatario.

40
Relaciones Muchos a Muchos
  • Un cliente es asociado con varios (posiblemente
    0) prestamos vía prestatario
  • Un prestamo es asociado con varios (posiblemente
    0) clientes vía prestatario

41
Notación Alternativa para Límites de Cardinalidad
  • Se pueden expresar límites de cardinalidad

42
Claves
  • Una super clave es un conjunto de uno o mas
    atributos que, tomados colectivamente, permiten
    identificar de forma única una entidad en el
    conjunto de entidades.
  • Una clave candidata de un conjunto de entidades
    es una super clave minima (los subconjuntos de
    ella no son super claves)
  • Cliente-id es llave candidata para cliente
  • cuenta-numero es llave candidata para cuenta
  • Aunque pueden existir varias claves candidatas,
    una de ellas es seleccionada para ser llave
    primaria.

43
Claves para un Conjunto de Relaciones
  • La combinación de las claves primarias de los
    conjuntos de relaciones participantes forman una
    super clave del conjunto de relaciones.
  • (cliente-id, cuenta-numero) es la super clave de
    depositor
  • Se debe considerar especificar la cardinalidad
    del conjunto de relaciones
  • Se necesita considerar la semantica del conjunto
    de relaciones seleccionando la clave primaria
    en caso de tener mas de una clave candidata.

44
Diagrama E-R con Relaciones Ternarias
45
Convirtiendo una Relación No-Binaria en forma
Binaria
  • En general, cualquier relacion no-binaria puede
    ser representada usando relaciones binarias
    creando un conjunto de entidades artificial

46
Especialización
  • Un conjunto de entidades puede incluir subgrupos
    de entidades que se diferencian de alguna forma
    de las otras entidades del conjunto.
  • Estos subgrupos llegan a ser entidades de bajo
    nivel que tienen atributos o participan en
    relaciones que no aplican al conjunto de
    relaciones de alto nivel.
  • Attributos heredados un conjunto de entidades
    de bajo nivel hereda todos los atributos y
    relaciones que participan en el conjunto de
    entidades de alto nivel.

47
Ejemplo de Especialización
48
Resumen de simbolos usados en la notación E-R
49
Resumen de Simbolos (Cont.)
50
Notaciones Alternativas para E-R
51
Reducción de un Esquema E-R a Tablas
  • Las claves primarias Primary keys allow entity
    sets and relationship sets to be expressed
    uniformly as tables which represent the contents
    of the database.
  • Una base de datos conformada por un diagrama E-R
    puede ser representado cmo una colección de
    tablas.
  • Por cada conjunto de entidades y conjunto de
    relaciones hay una única tabla a la cual se le
    asigna el nombre correspondiente al conjunto
    derelaciones o conjunto de entidades.
  • Cada tabla tiene un númeri de columnas
    (correspondientes a los atributos), los cuales
    tienen nombres únicos.
  • Convertir una representación de base de datos
    de un diagrama E-R a un formato de tablas es la
    base para la derivación de un diseño de bases de
    datos relacional

52
Modelo Relacional
  • Estructura de Bases de Datos Relacionales
  • Algebra Relacional
  • Tuplas del Cálculo Relacional
  • Dominio del Cálculo Relacional
  • Operaciones del Algebra Relacional Extendido
  • Modificaciones de la Base de Datos
  • Vistas

53
Ejemplo de una Relación
54
Tipos de Atributos
  • Cada atributo de una relación tiene un nombre
  • El conjunto de valores permitidos para casa
    atributo es llamado dominio del atributo
  • Los valores de los atributos (normalmente) se
    requieren que sean atómicos, esto es, indivisible
  • E.j. atributos multivalorados no son atómicos
  • E.j. atributos compuestos no son atómicos
  • El valos especial null es parte de todos los
    dominios

55
Instancia de las Relaciones
  • Los valores actuales (instancia de la relación)
    son especificados en una tabla
  • Un elemento t de r es una tupla, representado
    por una fila en la tabla

atributos (o columnas)
Cliente-nombre
Cliente-calle
Cliente-ciudad
Jones Smith Curry Lindsay
Main North North Park
Harrison Rye Rye Pittsfield
tuplas (o filas)
clientes
56
Base de Datos
  • Una base de datos consiste en muchas relaciones
  • La información de la empresa es dividida en
    partes, las cuales forman una relación que
    almacena parte la información E.j. cuenta
    almacena la información de las cuentas
    depositario almacena información de
    los clientes
    que son propietarios de cuentas
    cliente almacena información de los
    clientes
  • Almacenar toda la información en una simple
    relación como banco(numero de cuenta, saldo,
    cliente-nombre, ..)resulta en
  • Repetición de información (e.j. 2 clientes
    propietarios de una cuenta)
  • Necesidad de valores nulos (e.j. representar
    clientes sin una cuenta)
  • La teoría de la normalización permite hacer un
    buen diseño de esquemas relacionales

57
La Relación Cliente
58
La Relación Depositor
59
Diagrama E-R para un Banco
60
Diagrama de un Esquema de un Banco
61
Lenguaje de Consultas
  • Lenguaje en el cual los usuarios hacen requisitos
    de información a la base de datos.
  • Categorias de los lenguajes
  • procedimental
  • No-procedimental
  • Puros languajes
  • Algebra Relacional
  • Tuplas del Cálculo Relacional
  • Dominio del Cálculo Relacional

62
Algebra Relacional
  • Lenguaje Procedimental
  • Seis operaciones básicas
  • selección
  • proyección
  • union
  • diferencia de conjunto
  • producto cartesiano
  • renombramiento
  • Los operadores toman dos o más relaciones como
    entrada y su resultado es una nueva relación.

63
Ejemplo de la Operación de Selección
A
B
C
D
  • Relación r

? ? ? ?
? ? ? ?
1 5 12 23
7 7 3 10
  • ?AB D gt 5 (r)

A
B
C
D
? ?
? ?
1 23
7 10
64
Operación de Selección
  • Notación ? p(r)
  • p es llamado predicado de la selección
  • Definido como
  • ?p(r) t t ? r and p(t)
  • Donde p es una formula consistente con el
    cálculo proposicional de terminos conectados por
    ? (y), ? (o), ? (no)Cada termino es uno de
  • ltatributogt op ltatributogt o ltconstantegt
  • donde op es uno de , ?, gt, ?. lt. ?
  • Ejemplo de selección ? sucursal-nombrePerryri
    dge(cuenta)

65
Ejemplo de la operación de Proyección
A
B
C
  • Relación r

? ? ? ?
10 20 30 40
1 1 1 2
A
C
A
C
  • ?A,C (r)

? ? ? ?
1 1 1 2
? ? ?
1 1 2

66
Operación de Proyección
  • Notación ?A1, A2, , Ak (r)
  • donde A1, A2 son nombres de atributos y r es el
    nombre de la relación.
  • El resultado es definido como una relación de k
    columnas obtenidas de borrar las columnas que no
    están listadas
  • Las filas duplicadas son removidas del resultado
  • E.j. Para eliminar el atributo sucursal-nombre de
    cuenta ?account-number, balance
    (cuenta)

67
Ejemplo de la Operación Unión
  • Relaciónes r, s

A
B
A
B
? ? ?
1 2 1
? ?
2 3
s
r
r ? s
A
B
? ? ? ?
1 2 1 3
68
Operación de Unión
  • Notación r ? s
  • Definido como
  • r ? s t t ? r or t ? s
  • Para que r ? s seválida.
  • 1. r, s deben ser de la misma aridad (mismo
    número de atributos)
  • 2. Los dominios de las tributos deben ser
    compatibles find all customers with either an
    account or a loan 3. r y s pueden ser relaciones
    temporales que sean resultado de expresiones del
    álgebra relacional. E.j.
  • ?customer-name (depositor) ? ?customer-name
    (borrower)

69
Ejemplo de Operación Diferencia de Conjunto
  • Relations r, s

A
B
A
B
? ? ?
1 2 1
? ?
2 3
s
r
r s
A
B
? ?
1 1
70
Operación Diferencia de Conjunto
  • Notación r s
  • Definida como
  • r s t t ? r and t ? s
  • Se debe asegurar que la diferencia de conjuntos
    se realice entre relaciones compatibles.
  • r y s deben ser de la misma aridad
  • alos domminios de los atributos de r y s sean
    compatibles

71
Ejemplo de la Operación Producto Cartesiano
A
B
C
D
E
Relationes r, s
? ?
1 2
? ? ? ?
10 10 20 10
a a b b
r
s
r x s
A
B
C
D
E
? ? ? ? ? ? ? ?
1 1 1 1 2 2 2 2
? ? ? ? ? ? ? ?
10 10 20 10 10 10 20 10
a a b b a a b b
72
Operación Producto Cartesiano
  • Notación r x s
  • Definido como
  • r x s t q t ? r and q ? s
  • Asume que los atributos de r(R) y s(S) son
    disyuntos. (Esto esto, R ? S ?).
  • Si los atributos de r(R) y s(S) no son disyuntos,
    entonces se debe usar renombramiento.

73
Composición de Operaciones
  • Se pueden construir expresiones usando multiples
    operaciones
  • Ejemplo ?AC(r x s)
  • r x s
  • ?AC(r x s)

A
B
C
D
E
? ? ? ? ? ? ? ?
1 1 1 1 2 2 2 2
? ? ? ? ? ? ? ?
10 10 20 10 10 10 20 10
a a b b a a b b
A
B
C
D
E
? ? ?
? ? ?
10 20 20
a a b
1 2 2
74
Opertación de Renombramiento
  • Allows us to name, and therefore to refer to, the
    results of relational-algebra expressions.
  • Permite referirse a una relación por más de un
    nombre.
  • Ejemplo
  • ? x (E)
  • Devuelve la expresión E bajo el nombre X
  • Si la expresión del algebra relacional E tiene
    aridad n, entonces
  • ?x (A1,
    A2, , An) (E)
  • devuelve el resultado de la expresiónE bajo el
    nombre X, y con los atributos renombrados a A1,
    A2, ., An.

75
Operaciones Adicionales
  • Se definen operaciones que no adicionan poder al
    algebra relacioneal pero simplifican alfunas
    consultas.
  • Intersección
  • Reunión Natural
  • División
  • Asignación

76
Operación de Intersección
  • Notación r ? s
  • Definida como
  • r ? s t t ? r and t ? s
  • Asume
  • r, s tienen la misma aridad
  • Atributos de r y s son compatibles
  • Note r ? s r - (r - s)

77
Ejemplo de Operación de Intersección
  • Relation r, s
  • r ? s

A B
A B
? ? ?
1 2 1
? ?
2 3
r
s
A B
? 2
78
Operación de Reunión Natural
  • Notación r s
  • La reaunión natural es una operación binaria que
    permite combinar ciertas selecciones y un
    producto cartesiano en una sola operación y
    elimina los atributos repetidos.
  • Example
  • R (A, B, C, D)
  • S (E, B, D)
  • Result schema (A, B, C, D, E)
  • r s is defined as ?r.A, r.B, r.C, r.D,
    s.E (?r.B s.B ? r.D s.D (r x s))

79
Ejemplo de una Operación de Reunión Natural
  • Relaciones r, s

B
D
E
A
B
C
D
1 3 1 2 3
a a a b b
? ? ? ? ?
? ? ? ? ?
1 2 4 1 2
? ? ? ? ?
a a b a b
r
s
A
B
C
D
E
? ? ? ? ?
1 1 1 1 2
? ? ? ? ?
a a a a b
? ? ? ? ?
80
Operación de División
r ? s
  • Adecuada para consultas que incluyen la expresión
    para todos.
  • Si r y s son relaciones de los esquemas R y S
    respectively where
  • R (A1, , Am, B1, , Bn)
  • S (B1, , Bn)
  • El resultado de r ? s es una relación sobre el
    esquema
  • R S (A1, , Am)
  • r ? s t t ? ? R-S(r) ? ? u ? s ( tu ? r
    )

81
Ejemplo de la Operación de División
A
B
Relations r, s
B
? ? ? ? ? ? ? ? ? ? ?
1 2 3 1 1 1 3 4 6 1 2
1 2
s
r ? s
A
r
? ?
82
Operación de Asignación
  • La operación de asignación (?) prevee una
    conveniente forma de expresar queries complejos.
  • Ejemplo Escribir r ? s como s
  • temp1 ? ?R-S (r) temp2 ? ?R-S ((temp1 x s)
    ?R-S,S (r)) result temp1 temp2
  • El resultado a la derecha de ? es asignado a la
    relación de la izquierda de ?.
  • Se pueden usar variable en las sibsiguientes
    expresiones.

83
Generalized Projection
  • Extención de la operación de proyección que
    permite funciones aritméticas para ser usadas en
    la lista de proyección. ? F1, F2, , Fn(E)
  • E es cualquier expresión del algebra relacional
  • cada uno de los F1, F2, , Fn es una expresión
    atritmética que involucra constantes y atributos
    en el esquema de E.
  • Data una relación info-credito(nombre-cliente,
    limite, saldo-credit), encuentre que tanto peden
    las personas gastar
  • ?nombre-cleinte, limite saldo-credito
    (info-credito)

84
Operaciones y Funciones de Agragación
  • Funciones de Agregación toma una colección de
    valores y retorna un solo valos como resultado.
  • avg valor promedio min valor mínimo max
    valor máximo sum suma de valores count
    número de valores
  • Operaciones de Agregación en el algebra
    relacional
  • G1, G2, , Gn g F1( A1), F2( A2),, Fn( An)
    (E)
  • E es cualquier expresión del algebra relacional
  • G1, G2 , Gn es una lista de atributosque se
    agrupan (pueden ser vacios)
  • Cada Fi es una función se agregación
  • Each Ai es un nombre de atributo

85
Ejemplo de Operación de Agregación
  • Relación r

A
B
C
? ? ? ?
? ? ? ?
7 7 3 10
sum-C
g sum(c) (r)
27
86
Ejemplo de Operación de Agregación
  • Relación account agrupada por branch-name

branch-name
account-number
balance
Perryridge Perryridge Brighton Brighton Redwood
A-102 A-201 A-217 A-215 A-222
400 900 750 750 700
branch-name g sum(balance) (account)
branch-name
balance
Perryridge Brighton Redwood
1300 1500 700
87
Función de Agregación (Cont.)
  • El resultado de una agregación no tiene nombre
  • Se puede usar la operación de renombramiento para
    darle un nombre
  • Por conveniencia, se permite renombrar como parte
    de la operación de agregamiento

branch-name g sum(balance) as sum-balance
(account)
88
Modificación de la Base de Datos
  • El contenido de la base de datos puede ser
    modificado usando las siguientes operaciones
  • Borrar
  • Insertar
  • Actualizar
  • Todas estas operaciones son expresadas usando el
    operador de asignación.

89
Borrado
  • Las solicitudes de borrado se extresan de forma
    similar que las consultas, salvo que en lugar de
    mostrar las tuplas, estas son eliminadas de la
    base de datos.
  • Solo se puede borrar la tupla entera no se
    pueden borrar valores particulares de atributos
  • El borrado se expresa en el algebra relacional
    como
  • r ? r E
  • donde r es una relación y E es una consulta del
    algebra relacional.

90
Ejemplos de Borrado
  • Borrar todas los registros de cuentas de la
    sucursal Perryridge.
  • cuenta ? cuenta ??nombre-sucursal
    Perryridge (cuenta)
  • Borrar todos los registros cuyo monto esté entre
    0 y 50

prestamo ? prestamo ??monto ??0?and monto ? 50
(prestamo)
91
Insercion
  • Para insertar datos en una relación, we either
  • especificar la tupla que se va a insertar
  • escribir un query cuyo resultado sea un conjunto
    de tuplas que vayan a insertarsen
  • en el álgebra relacional, una insercion se
    expresa como
  • r ? r ? E
  • donde r es una relación y E es una expresión del
    álgebra relacional.

92
Ejemplos de Inserción
  • Inserte información en la base de datos
    especificando que Smith tieme 1200 ien la cuenta
    A-973 en la sucursal Perryridge.

cuenta ? cuenta ? (Perryridge, A-973,
1200) depositor ? depositor ? (Smith,
A-973)
93
Actualización
  • El mecanismos para cambiar los valores de una
    tupla sin cambiar todos sus valores
  • Use el operador de proyección generalizada para
    realizar esta tarea
  • r ? ? F1, F2, , FI, (r)
  • Se desea incrementar el 5 de interés en todos
    los saldos de las cuentas.

94
Vistas
  • En algunas ocaciones no es deseable que todos los
    usuarios puedan ver la totalidad del modelo
    lógico (e.j., todas las relaciones de la base de
    datos.)
  • Considere una persona que necesita conocer los
    números de prestamo pero no su monto. Esta
    persona podría ver la relación descrita en el
    álgebra relacional por
  • ?nombre-cliente, numero-prestamo (prestatario
    prestamo)
  • Cualquier relación que no es del modelo
    conceptual pero es visible al usuario como una
    relación virtual es llamada vista.

95
Definición de Vista
  • Una vista es definida usando la expresión create
    view
  • create view v as lt query gt
  • donde ltquerygt es cualquier expresión legal del
    algebra relacional. El nombre de la vista se
    representa mediante v
  • Una vez se ha definido una vista, se puede
    utilizar el nombre de la vista para hacer
    referencia a la relación virtual que genera la
    vista.

96
Ejemplos de Vista
  • Considere la vista (llamada todos-clientes) que
    consiste en las sucursales y sus clientes.

97
E-R Diagram
98
Estructura Básica
  • SQL esta basado en un conjunto de operaciones
    relacionales con ciertas modificaciones y
    extenciones
  • Una consulta típica de SQL es select A1, A2,
    ..., An from r1, r2, ..., rm where P
  • Ais representa atributos
  • ris representa relaciones
  • P es un predicado.
  • Esta consulta es equivalente a la expresin del
    álgebra relacional.
  • ?A1, A2, ..., An(?P (r1 x r2 x ... x
    rm))
  • El resultado de una consulta SQL es una relación.

99
La Clausula Select
  • La clausula select lista los atributos señalados
    en el resultado de la consulta
  • Corresponda a la operación de proyección del
    algebra relacional
  • E.j. encontrar los nombres de todas las
    sucursales en la relación de prestamos select
    nombre-sucursal from prestamo
  • En el álgebra relacional la consulta seria
  • ?nombre-sucursal(prestamo)

100
La Clausula Select (Cont.)
  • SQL permite la duplicación el la consulta
    resuldato.
  • Para forzar la eliminación de duplicados se una
    la palbra clave distinct después de select.
  • Encontrar los nombres de todas las sucursales en
    la relación de prestamos, y remueva los
    duplicados
  • select distinct nombre-sucursal from prestamo
  • La palabra all especifica que los duplicados no
    se eliminan.
  • select all nombre-sucursalk from prestamo

101
La Clausula Select (Cont.)
  • Un asterisco en la clausula select denota todos
    los atributos
  • select from prestamo
  • La clausula select puede contener expresines
    aritméticas involucrando los operadores, , , ?,
    y /, operando sobre constantes o atributos de las
    tuplas.
  • La consulta
  • select numero-prestamo, nombre-sucursal,
    monto ? 100 from prestamo
  • devolverá una relación igual a la de prestamo,
    pero con el saldo multiplicado por 100.

102
La Clausula where
  • La clausula where especifica condiciones cuyo
    resultado debe satisfacer
  • Corresponde al predicado de la selección en el
    álgebra relacional.
  • Encuentre todos lo sprestamos realizados en la
    sucursal de Perryridge cuyo monto sea superior a
    1200. select numero-prestamo from
    prestamo where nombre-sucursal Perryridge
    and monto gt 1200
  • Los operadores de comparación pueden ser
    utilizados en combinación con los conectores
    lógicos and, or, y not.
  • Las comparaciones pueden ser aplicadas a
    resultados de expresiones aritméticas.

103
La Clausula where (Cont.)
  • SQL incluye el operador de comparación between
  • E.j. Encuentre los números de prestamos de todos
    los préstamos cuyo monto este entre 90,000 y
    100,000 (esto es, ?90,000 y ?100,000)
  • select numero-prestamo
  • from prestamo where monto between 90000 and
    100000

104
La Clausula from
  • La clausula from lista las relaciones
    involucradas en la consulta
  • Corresponde a la operación de producto cartesiano
    del algebra relacional.
  • Encuentre el producto cartesiano entre
    prestatario x prestamo select
    ? from prestatario, prestamo
  • Encuentre el nombre, numero de prestamo, y
    monto del prestamo de todos los clientes que
    tienen prestamo en la sucursal de Perryridge.
  • select nombre-cliente, prestatario.numero-prestamo
    , monto from prestatario, prestamo where
    prestatario.numero-prestamo prestamo.numero-pres
    tamo
  • and nombre-sucursal Perryridge

105
La Operación Renombramiento
  • SQL permite renombrar las relaciones y atributos
    usando la clausula as nombre-viejo as
    nombre-nuevo
  • Encuentre el nombre, numero de prestamo y monto
    del prestamo de todos los clientes renombre el
    nombre de la columna numero-prestamo como
    prestamo-id.

select nombre-cleinte, prestatario.numero-prestamo
as prestamo-id, montofrom prestatario,
prestamowhere prestatario.numero-prestamo
prestamo.numero-prestamo
106
Variable de Tuplas
  • La variables de tuplas son definidas en la
    clausula from a travez de la clausula as.
  • Encuentre el nombre y numeros de prestamo de
    todos los clientes que tengan un prestamo en
    alguna sucursal.

select nombre-cleinte, T.numero de prestamo,
S.monto from prestatario as T, prestamo
as S where T.numero-prestamo
S.numero-prestamo
  • Obtenga el nombre de todas las sucursales que
    poseen un activo mayor que al menos una sucursal
    situada en Brooklyn.
  • select distinct T.nombre-sucursal from
    sucursal as T, sucursal as S where T.activo gt
    S.activos and S.ciudad-sucursal Brooklyn

107
Operaciones Sobre Cadenas de Caracteres
  • SQL incluye un operador para comparacion de
    cadenas de caracteres. Los patrones utilizan dos
    caracteres especiales
  • poprcentajet (). El caracter se iguala a
    cualquier substring.
  • underscore (_). El catacter _ se iguala a
    cualquier caracter.
  • Encuentre el nombre de todos los clientes que
    incluyen Main en la calle.
  • select nombre-cliente from cliente
    where calle-cliente like Main
  • Match the name Main
  • like Main\ escape \
  • SQL soporta una variedad de operaciones sobre
    string como
  • concatenacion (usando )
  • convirtiendo de mayuscula a minuscula y
    viceverza
  • Encontrando la longitud de un string, extrayendo
    substrings, etc.

108
Ordenando la Presentación de las Tuplas
  • Listar en orden alfabetico los nombres de todos
    los clientes que tienen un prestamo en la
    sucursal de Perryridge
  • select distinct nombre-cliente from
    prestatario, prestamo where prestatario.numero-pr
    estamoprestamo.numero- prestamo and
    nombre-sucursal Perryridge order by
    nombre-cliente
  • Se puede especificar el orden, desc para
    descendente o asc para ascendente.
  • E.j. order by nombre-cliente desc

109
Operaciones sobre Conjuntos
  • Encuentre todos los clientes que tienen un
    prestamo, una cuenta o ambos

(select nombre-cliente from depositor) union (se
lect nombre-cliente from prestatario)
  • Encuentre todos los clientes que tienen un
    prestamo y una cuenta.

(select nombre-cliente from depositor) intersect
(select nombre-cliente from prestatario)
  • Encuentre todos los cleintes que tienen una
    cuenta y no tienen
  • prestamo.
  • (select nombre-cliente from depositor) except (s
    elect nombre-cliente from prestatario)

110
Funciones de Agragación
  • Estas funciones toman un conjunto de valores como
    entrada y producen un único valor como salida.
  • avg valor promedio min valor mínimo max
    valor máximo sum suma de valores count
    numero de valores

111
Aggregate Functions (Cont.)
  • Encuentre el promedio de saldos de las cuentas en
    la sucursal de Peryridge.

select avg (saldo) from cuenta where
nombre-sucursal Perryridge
  • Encuentre el número de tuplas en la relación
    cliente.

select count () from cliente
  • Encuentre el número de depositores en el banco.

select count (distinct nombre-cliente) from
depositor
112
Vistas
  • Provee un mecanispo para esconder ciertos datos a
    ciertos usuarios. Para crear una vista use la
    siguiente instrucción

create view v as ltexpresión de consultagt
  • donde
  • ltexpresión de consultagt es una expresión legal
  • El nombre de la vista está representada por v

113
Modificando la Base de Datos - Borrado
  • Borrar todas las c uentas de la sucursal
    Perryridge delete from cuenta where
    nombre-sucursal Perryridge
  • Borre todas las cuentas de cada sucursal
    localizxada en la ciudad de Needham.
  • delete from cuentawhere nombre-sucursal in
    (select nombre-sucursal from sucursal
    where ciudad-sucursal Needham)delete
    from depositorwhere numero-cuenta in
    (select numero-cuenta from sucursal,
    cuenta where ciudad-sucursal Needham
    and sucursal.nombre-sucursal cuenta.nombre- suc
    ursal)

114
Modificacón de la Base de Datos Inserción
  • Adicionar una nueva tupla en cuenta
  • insert into cuenta values (A-9732,
    Perryridge,1200)o su equivalenteinsert into
    cuenta (nombre-sucursal, saldo,
    nombre-cuenta) values (Perryridge, 1200,
    A-9732)
  • Adicionar una nueva tupla a cuenta con un saldo
    en nulo
  • insert into cuenta values (A-777,Perryridge
    , null)

115
Modificación a la Base de Datos Actualización
  • Incremente el saldo de todas las cuentas que
    tienen saldo superior a 10,000 en un 6, todos
    los otros ceciben un incremento del 5.
  • Se escriben dos isntrucciones update
  • update cuenta set saldo salso ? 1.06 where
    saldo gt 10000
  • update cuenta set saldo saldo ? 1.05 where
    saldo ? 10000
  • El orden es importante
  • Se puede hacer usando la clausula case

116
Modificación a la Base de Datos Actualización
  • El mismo query anterior
  • update cuenta
  • set saldo case
    when saldo lt 10000 then saldo 1.05
    else saldo 1.06
    end

117
Update of a View
  • Create a view of all loan data in loan relation,
    hiding the amount attribute
  • create view branch-loan as select
    branch-name, loan-number from loan
  • Add a new tuple to branch-loan
  • insert into branch-loan values (Perryridge,
    L-307)
  • This insertion must be represented by the
    insertion of the tuple
  • (L-307, Perryridge, null)
  • into the loan relation
  • Updates on more complex views are difficult or
    impossible to translate, and hence are
    disallowed.
  • Most SQL implementations allow updates only on
    simple views (without aggregates) defined on a
    single relation

118
Transacciones
  • Una transacción es una colección de operaciones
    que forman una única unidad lófica de trabajo.
  • Una transacción es iniciada implícitamente y
    terminada por alguno de
  • commit work Hace todas las operaciones de la
    transacción permanentes en la base de datos
  • rollback work deshace todas las actualizaciones
    realizadas por la transacción.
  • Ejemplo
  • Tla transferencia de dinero de una cuenta a otra
    involucra dos pasos
  • debitar de una cuenta y acreditar la otra
  • Si uno de estos pasos se realiza y el otro falla
    la base de datos queda en un estado inconsistente
  • Por tal razón ambos pasos se deben realizar o
    ninguno
  • Si un paso en una transacción falla, todo el
    trabajo realizada por ésta, debe ser deshecho por
    rollback work.
  • El Rollback de una transacción incompleta es
    realizado automáticamente en caso de fallas del
    sistema

119
Transacciones (Cont.)
  • En la mayoría de los systemas de Bases de Datos,
    cada instrucción SQL que se ejecuta
    satisfactoriamente es automatocamente committed.
  • Cada transacción consiste entonces de una simple
    instrucción
  • El commit automático se puede desactivar,
    permitiendo transacciones con múltiples
    instrucciones, pero la realización de esto
    depende del sistema de Bases de Datos
  • Una opción incorporada en SQL1999 es encerrar
    las transacciones en begin atomic
    end

120
Creación de Tablas
  • Una relación en SQL es definida usando la
    instrucción create table
  • create table r (A1 D1, A2 D2, ..., An
    Dn, (ligadura de integridad1), ..., (liga
    dura de integridadk))
  • r es el nombre de una relación
  • cada Ai es un nombre de atributo en el esquema de
    la relación r
  • Di ies el tipo de datos del atributo Ai
  • Ejemplo
  • create table sucursal (nombre-sucursal
    char(15) not null, ciudad-sucursal
    char(30), activo integer)

121
Lugaduras de Integridad en la Creación de Tablas
  • not null
  • primary key (A1, ..., An)
  • check (P), donde P es un predicado

EjemploDeclare nombre-sucursal en la tabla
sucursal como clave primaria y asegure que el
valor del activo no sea negativo. create table
sucursal (nombre-sucursal char(15),
ciudad-sucursal char(30) activo integer, pr
imary key (nombre-sucursal), check (activo gt
0))
La declaración de primary key automaticamente
asegura que es not null en SQL-92, pero se
necesita especificar en SQL-89
122
Borrar y Alterar el Esquema de la Tabla
  • La instrucción drop table borra toda la
    información de la tabla en la base de datos.
  • La instrucción alter table es usada para
    adicionar un atributo en la relación.
  • alter table r add A D
  • donde A es el nombre del atributos a ser
    adicionado en la relación r y D es el dominio de
    A.
  • La instrucción alter table también puede ser
    usada para borrar un atributo en la
    relación alter table r drop Adonde A es el
    nombre del atributo de la relación r
  • Borrar atributos no es soportado por muchas based
    de datos

123
Ligaduras de los Dominios
  • Las ligaduras de integridad proporcionan un medio
    de asegurar que las modificaciones hechas a la
    base de datos por los usuarios autirizados no
    provoque pérdidad de consistencia de los datos.
    Por lo tanto protejen a la base de datos contra
    los daños accidentales.
  • Ligaduras de Dominios es la forma más elemental
    de ligaduras de integridad.
  • Verifica los valores insertados en la base de
    datos, y asegura que las comparaciones realizadas
    en los queries tengan sentido.
  • Se pueden crear nuevos dominios con los tipos
    existentes
  • E.j. create domain Pesos numeric(12, 2)
    create domain Dolar numeric(12,2)

124
Ligaduras de Dominio (Cont.)
  • La clausula check SQL-92 permite restringir los
    dominios
  • El uso de check asegura que un empleado tenga un
    salario igual o mayor al salario mínimo.
  • create domain salario numeric(5,2) constraint
    minimo check(valor gt 360000.00)
  • El dominio tiene un constraint que asegura que el
    salario es igual o superior a 360000

125
Integridad Referencial
  • Asegura que los valores que aparecen en una
    relación para un conjunto de atributos dados,
    también aparezcan para para el conjunto de
    tatributos en otra relación.
  • Ejemplo Si Perryridge es el nombre d ela
    sucursal que aparece en una de las tuplas en la
    relación cuenta, entonces existe una tupla en la
    relación sucursal para la sucursal Perryridge.

126
Integridad Referencial en SQL
  • Las claves primarias, candidatas y forameas
    pueden ser especificadas en la clausula SQL
    create table
  • La clausula primary key lista los atributos que
    conforman la clave primaria.
  • La clausula unique key lista lista los atributos
    que conforman una clave candidata.
  • La clausula foreign key lista los atributos que
    conforman la clave foramea y el nombre de la
    relación que referencia.
  • Por defecto, una clave foranea referencia la
    clave primaria de la realación referenciada
  • foreign key (numero-cuenta) references
    cuenta
  • Forma corta de especificar una columna simple
    como clave foranea
  • numero-cuenta char (10) references cuenta
  • La columnas de referencia en la tabla
    especificada pueden ser referenciadas de forma
    explicita.
  • Pero deben ser declaradas como claves primaria /
    candidata
  • foreign key (numero-cuenta) references
    cuenta(numero-cuenta)

127
Ejemplo de Integridad Referencial en SQL
  • create table cliente(nombre-cliente char(20),cal
    le-cliente char(30),ciudad-cleinte char(30),prim
    ary key (nombre-cliente))
  • create table sucursal(nombre-sucursal char(15),c
    iudad-sucursal char(30),activo integer,primary
    key (nombre-sucursal))

128
Acciones en Cascada en SQL
  • create table cuenta
  • . . . foreign key(nombre-sucursal) references
    sucursal on delete cascade on update
    cascade . . . )
  • Debido a la clausula on delete cascade, si se
    borra una tupla en sucursal, resulta en una
    violación de integridad, el borrado en cascada en
    la relación cuenta, borra las tuplas que se
    refieren a la sucursal que fue borrada
  • La actualización en cascada es similar

129
Cascading Actions in SQL (Cont.)
  • Si existe un cambio en una clave foranea en
    multiples relaciones, y se ha especificado on
    delete cascade en cada dependencia, el borrado o
    actualización se propaga sobre toda la cadena.
  • Si se realiza un borrado, teniendo una
    actualización en cascada, se causa una violación
    de integridad y el systema aborta la transacción.
  • Como resultado, todos los cambios causados por
    la transacción son deshechos.
  • La integridad referencial se verifica al final de
    la transacción

130
Disparador
  • Un disparador es una orden que el sistema ejecuta
    de manera automática como efecto secundario de la
    modificación de la base de datos.
  • Para diseñar un mecanismo disparados se debe
  • Especificar las condiciones en las que se va a
    ejecutar el disparador.
  • Especificar las acciones que se van a realizar
    cuando se ejecute el disparador.

131
Security
  • Security - protection from malicious attempts to
    steal or modify data.
  • Database system level
  • Authentication and authorization mechanisms to
    allow specific users access only to required data
  • We concentrate on authorization in the rest of
    this chapter
  • Operating system level
  • Operating system super-users can do anything they
    want to the database! Good operating system
    level security is required.
  • Network level must use encryption to prevent
  • Eavesdropping (unauthorized reading of messages)
  • Masquerading (pretending to be an authorized
    user or sending messages supposedly from
    authorized users)

132
Security (Cont.)
  • Physical level
  • Physical access to computers allows destruction
    of data by intruders traditional lock-and-key
    security is needed
  • Computers must also be protected from floods,
    fire, etc.
  • More in Chapter 17 (Recovery)
  • Human level
  • Users must be screened to ensure that an
    authorized users do not give access to intruders
  • Users should be trained on password selection and
    secrecy

133
Autorizaciones
  • Formas de autorizaciones en una base de datos
  • Read - permite la consulta, pero no la
    modificación de información.
  • Insert - permite la inserción de nueva
    información, pero no la modificación de la
    existente.
  • Update - permite modificaciones, pero no el
    borrado de datos.
  • Delete - permite el borrado de datos

134
Autorización (Cont.)
  • Formas de autorización de modificar el esquema de
    la base de datos
  • Index - permite la creación y borrado de indices.
  • Resources - permite la creación de nuevas
    relaciones.
  • Alteration - permite la adición y borrado de
    atributos en una relación.
  • Drop - permite el borrado de relaciones.

135
Especificación de la Seguridad en SQL
  • La instrucción grant es usada para otorgar
    autorizaciones
  • grant ltlista de privilegiosgt
  • on ltnombre de vista o relacióngt to ltlista de
    usuariosgt
  • ltlista de usuariosgt es
  • el user-id
  • public,permite a todos los usuarios válidos los
    privilegios concedidos
  • Un rol
  • Conceder un privilegio sobre una vista no implica
    la concesión sobre la relación.
  • Quien concede un privilegio debe tener el
    privilegio que concede, o ser el administrador de
    la base de datos.

136
Privilegios en SQL
  • select permite acceso de lectura a una
    relación,o la habilidad de realizar consultas con
    vistas
  • Ejemplo conceder a los usuarios U1, U2, y U3
    autorización select sobre la relación sucursal
  • grant select on sucursal to U1, U2, U3
  • insert la habilidad de insertar tuplas
  • update la habilidad de actualización usando
    instrucciones SQL
  • delete la habilidad de borrar tuplas
  • references habilidad de declarar claves foráneas
    cuando se crea una relación.
  • usage en SQL-92 autorizaciones de usar un
    dominio específico a un usuario
  • all privileges forma corta de hacer referencia a
    todos los privilegios

137
Privilegio de Conceder Privilegios
  • with grant option permite al usuario a quien se
    le concedió el privilegio de pasar el privbilegio
    a otro usuario.
  • Ejemplo
  • grant select on sucursal to U1 with grant option
  • gda a U1 el privilegio select sobre sucursal y
    permite concederselo a otros usuarios

138
Roles
  • Los roles permiten definir privilegios comunes
    para una clase especial de usuarios que conforman
    el rol
  • Los privilegios pueden ser concedidos o revocados
    al rol, como a un usuario
  • Los roles pueden ser asignados a los usuarios,
    asi tengan otros roles
  • SQL1999 soporta roles
  • create role cajerocreate role
    administrador
  • grant select on sucursal to cajerogrant
    update (saldo) on cuenta to cajerogrant all
    privileges on cuenta to administradorgrant
    cajero to administradorgrant cajero to juan,
    jaimegrant administrador to alvaro

139
Revocando Autorizaciones en SQL
  • La instrucción revoke es usada para revocar las
    autorizaciones concedidas.
  • revokeltlista de privilegiosgt
  • on ltnombre de la relación o vistagt from ltlista de
    usuariosgt restrictcascade
  • Ejemplo
  • revoke select on sucursal from U1, U2, U3
    cascade
  • La revocación d eprivilegios de un usuario puede
    causar que otros usuarios también pierdan el
    privilegioa, referidos como una reviocación en
    cascada.
  • Se puede prevenir la especificación de cascada
    usando la especificación restrict
  • revoke select on sucursal from U1, U2, U3
    restrict
  • con restrict, la instricción revoke falla al
    realizar la revocación en cascada.
Write a Comment
User Comments (0)
About PowerShow.com