BANCO DE DADOS I DESENHO DE BANCOS DE
BANCO DE DADOS I DESENHO DE BANCOS DE DADOS RELACIONALES Características do Cálculo Relacional Ms. C. Leoder Alemañy Socarrás 11
Conteúdo • Características do cálculo relacional. • Expressões do cálculo relacional. • Cálculo relacional. • Exemplos. 2
Bibliografía Date C. J. Introducción a los sistemas de bases de datos, Capítulos 6 y 7, Editorial Félix Varela, La Habana, 2003. 3
Cálculo relacional Baseia-se num ramo da lógica chamada cálculo de pregados. 4
Variable de tupla RANGE OF T IS R T é a variável de tupla e R uma relação. Em qualquer momento do tempo, T representa a alguma tupla t de R. 5
DER Caso de estudio 6
CLIENTE (telef, CI, nombre, direc) LLAMADA(cod_llamada, fecha, telef_marcado, hora_com, hora_fin, telef) SERVICIOS_SUP (cod_serv, importe, descrip) CLIENTE_SERVICIOS_SUP (cod_serv, telef) • Podemos definir: RANGE OF CLIE IS CLIENTE RANGE OF LLAM IS LLAMADA RANGE OF SERSUP IS SERVICIOS_SUP RANGE OF CLIESERSUP IS CLIENTE_SERVICIOS_SUP 7
Expressões do cálculo relacional de tuplas <Lista objeto> [ WHERE < predicado>] 8
<Lista objeto> Formado por nomes qualificados de atributos separados por comas. Exemplos: CLIE. NOMBRE, LLAM. FECHA 9
Predicado Condições que devem verificar as tuplas para ser seleccionadas. 10
El predicado pode ser: • predicado • NOT predicado • predicado AND predicado • predicado OR predicado • EXISTS nom-var (predicado ) • FORALL nom-var (predicado ) 11
predicado r. columna 1 <operador> s. columna 2 r. columna <operador> c onde: operador : <, <=, >, >=, !=, =, . . . C constante que pertence ao domínio da coluna 12
A cada ocorrência de uma variáveis de tupla dentro de um predicado pode estar livre ou acotada. É acotada se foi introduzida por um cuantificador. Em caso contrário é livre. 13
La ocurrencia puede aparecer: üT. A üEXISTS T üFORALL T 14
As ocorrências de variables tuplas em os predicados (p), NOT (p) son livres /acotadas de acordo á se são livres /acotadas em p. p AND q, p OR q são livres /acotados de acordo á se são livres /acotados em p ou q. 15
- CLIE. NOMBRE = 'Luis' -CLIE. TELEF = LLAM. TELEF - CLIESERSUP. COD_SERV ≠ SERSUP. COD_SERV -NOT CLIE. NOMBRE = 'Luis' Todas as ocorrências de CLIE, SERSUP, LLAM y CLIESERSUP son livres. 16
EXISTS T (p): Existe um valor de T tal que quando se substitui em todas as ocorrências livres de T em p, o predicado p toma valor verdadeiro. 17
FORALL T (p): Qualquer valor de T que se substitua nas ocorrências livres de T em p, faz que o predicado p tome valor verdadeiro. 18
EXISTS CLIE (CLIE. TELEF=LLAM. TELEF AND CLIE. TELEF_MARCADO = '4444') A cada ocorrência de CLIE neste exemplo está dimensionada. A única ocorrência de LLAM é livre. 19
FORALL SERSUP (SERSUP. IMPORTE=3. 00) As 2 ocorrências de SERSUP são dimensionadas. 20
Forma das expreções del cálculo T. A, U. B, …. V. C where p onde: T, U, . . . V são variables de tupla. A, B, . . . C são atributos das relações asociadas. p e um predicado que contiene exactamente T, U, . . . V como variables livres. 21
Cálculo de dominio Similar ao de tuplas mas especificando os domínios da cada atributo. 22
Álgebra & Cálculo Álgebra Procedimental Cálculo No procedimental Prescriptiva Descriptiva Álgebra Cálculo 23
Exercicio 1 Obter os nomes dos clientes que têm o servicio S 2. - ((CLIENTE{NOMBRE, TELEF} JOIN CLIENTE_SERVICIOS_SUP) WHERE COD_SERV=‘S 2’) {NOMBRE} - CLIE. NOMBRE WHERE EXISTS CLIESERSUP (CLIESERSUP. TELEF=CLIE. TELEF AND CLIESERSUP. COD_SERV=‘S 2’) 24
Optimizando - ((CLIENTE{NOMBRE, TELEF} JOIN CLIENTE_SERVICIOS_SUP) WHERE COD_SERV=‘S 2’) {NOMBRE} -(CLIENTE{NOMBRE, TELEF} JOIN (CLIENTE_SERVICIOS_SUP WHERE COD_SERV=‘S 2’)) {NOMBRE} 25
Exercicio 2 Obter os nomes dos propietarios que têm todos os servicios. -(CLIENTE_SERVICIOS_SUP DIVIDEBY SERVICIOS_SUP{CODSERV} JOIN CLIENTE) {NOMBRE} - CLIE. NOMBRE WHERE FORALL SERSUP (EXISTS CLIESERSUP (CLIESERSUP. TELEF= CLIE. TELEF AND CLIESERSUP. COD_SERV=SERSUP. COD_SERV)) 26
Conclusiones • Operações do Álgebra: • União, diferença, produto, selecção, projeção, interseção, concatenación e divisão. • Operações do álgebra para: • Recuperação, Direitos de acesso, restrições de integridade, optimização. 27
Conclusiones • Cálculo relacional: : T. A, U. B, . . . V. C : p, donde: § T, U, . . . V são variáveis de tupla. § A, B, . . . C são atributos das relaciones asociadas. § p e um predicado que contiene exactamente T, U, . . . V como variables libvres. El resto son acotadas. 28
Conclusiones • O Álgebra relacional e o cálculo relacional são equivalentes. 29
Estudio Individual Dado o seguinte Modelo Relacional da venda de cartões UNITEL, pertencente ao estudo de casos UNITEL, Departamento de Vendas. PROVEEDOR (codigop, nombre, telefono) MATERIAP (codigom, elementoq) BASE (codigob) TARJETA (numero, codigot, ancho, largo, id_cliente) CLIENTE (id_cliente) PROVEEDOR_MATERIAP (codigop, codigom) MATERIAP_BASE (codigom, codigob) COLOR (numero, color) 30
Estudio Individual a) Obtenha o código, largo e longo de todos os cartões. b) Seleccionar os cartões de cor azul. c) Obter o nome de todos os provedores que forneça a matéria prima que esteja composta pelo elemento químico ‘carbono’. 31
- Slides: 31