Banco Banco de de Dados Dados // 11 Banco Banco de de Dados Dados // 22 Modelo Relacional Conceito de relaç relação matemá matemática (semelhante a tabela de valores) como seu bloco de construç construção bá básica. Engenharia da Computaç Computação UNIVASF Base teó teórica: teoria dos conjuntos e ló lógica de predicados de primeira ordem. Implementaç Implementações comerciais: BANCO DE DADOS – Década de 80: SGBD Oracle e sistema SQL/DS, componente do SO MVS, da IBM. – SGBDRs mais conhecidos: Aula 6 Modelo Relacional • DB2 e Informix Dynamic Server (IBM) • Oracle e Rdb (Oracle) • SQL Server e Access (Microsoft) Prof. ª FFátima átima Nunes Prof Prof. Edmundo Edmundo Spoto Spoto ee Profª Profª Nunes Marques Marques Prof. ª FFátima átima Nunes Prof Prof. Edmundo Edmundo Spoto Spoto ee Profª Profª Nunes Marques Marques Banco Banco de de Dados Dados // 33 Banco Banco de de Dados Dados // 44 Modelo Relacional Modelo Relacional - Conceitos atributos Banco de Dados: coleç coleção de relaç relações cada relaç relação tem um nome único. nico. Informalmente, uma relaç relação é semelhante a uma tabela de valores. Conta Agência Valor 25 Centro 236,99 678 VilaVerde 1598,70 433 Servidor 64,81 67 Matão 45,23 978 Nova Cidade 101,00 tuplas Relação DEPÓSITO Domínio = conjunto de valores permitidos para o atributo atômicos (indivisíveis) Prof. ª FFátima átima Nunes Prof Prof. Edmundo Edmundo Spoto Spoto ee Profª Profª Nunes Marques Marques Prof. ª FFátima átima Nunes Prof Prof. Edmundo Edmundo Spoto Spoto ee Profª Profª Nunes Marques Marques Banco Banco de de Dados Dados // 55 Banco Banco de de Dados Dados // 66 Modelo Relacional - Domí Domínios Modelo Relacional - Relaç Relação Domí Domínio conjunto de valores atômicos – cada valor é indivisí indivisível no diz respeito ao modelo relacional. Em geral, o domí domínio é designado como tipo de dado especificam valores possí possíveis – Exemplo: • número_do_cliente: conjunto de inteiros com quatro algarismos números de 1 a 9999 • nome_do_cliente: conjunto de caracteres alfanuméricos com 40 posições formato S(50) • número_do_aluno: 2 letras indicando o curso + 3 dígitos formato AA-999 Prof. ª FFátima átima Nunes Prof Prof. Edmundo Edmundo Spoto Spoto ee Profª Profª Nunes Marques Marques Definição formal de RELAÇÃO: Uma relação r(R) é uma relação matemática de grau n nos domínios dom(A1), dom(A2), ..., dom(An), que é um subconjunto de um produto cartesiano dos domínios que definem R dom(A1): domínio do atributo a1 dom(A2): domínio do atributo a2 ... dom(An): domínio do atributo an Produto Cartesiano = dom(A1) X dom(A2) X ... X dom(An): Relação R = subconjunto de dom(A1) X dom(A2) X ... X dom(An) Grau (ou arity) de R = n (número de atributos do esquema da relação) Prof. ª FFátima átima Nunes Prof Prof. Edmundo Edmundo Spoto Spoto ee Profª Profª Nunes Marques Marques 1 Banco Banco de de Dados Dados // 77 Banco Banco de de Dados Dados // 88 Modelo Relacional - Relaç Relação Modelo Relacional - Acesso aos dados Acesso aos dados EXEMPLO dom(A1): domínio de conta = conjunto de todos os números de conta dom(A2): domínio de agência = conjunto de todos os nomes de agência dom(A3): domínio de valor = conjunto de todos os valores possíveis Produto Cartesiano = dom(A1) X dom(A2) X dom(A3) Relação DEPÓSITO = Co nta A gên cia Valor 25 C entro 236,9 9 678 V ilaV erde 1598,70 433 S ervidor 64,81 dom(A1) X dom(A2) X dom(A3) 67 M atão 45,23 Grau de Depósito = 3 978 N ova C idade 101,0 0 subconjunto de chamando de t a primeira tupla da relação:: – t [conta] = valor de t no atributo conta – t[1] = valor de t no primeiro atributo (conta) Co nta A gên cia Valor 25 C entro 236,9 9 678 V ilaV erde 1598,70 433 S ervidor 64,81 67 M atão 45,23 978 N ova C idade 101,0 0 – t [agência] = t[2] = valor de t no atributo segundo atributo (agência). – E assim por diante... Prof. ª FFátima átima Nunes Prof Prof. Edmundo Edmundo Spoto Spoto ee Profª Profª Nunes Marques Marques Prof. ª FFátima átima Nunes Prof Prof. Edmundo Edmundo Spoto Spoto ee Profª Profª Nunes Marques Marques Banco Banco de de Dados Dados // 99 Banco Banco de de Dados Dados // 10 10 Esquema de um BD Notaç Notações do Modelo Relacional Esquema de um Banco de Dados Relacional: conjunto de Esquemas de Relaç Relações EBD = {ER1, ER2, ..., ERn } e um conjunto de restriç restrições de integridade Esquema de relaç relação R de grau n: R(A1,A2,...A ,...An) Banco de Dados Relacional: conjunto de Relaç Relações BD = {R1, R2, ..., Rn} Tupla t em uma relaç relação r(R): t=<v1,v2,...,v ,...,vn> - vi é o o valor correspondente ao atributo Ai. – cada Ri é uma instância de ERi – cada Ri satisfaz todas as restrições de integridade. Prof. ª FFátima átima Nunes Prof Prof. Edmundo Edmundo Spoto Spoto ee Profª Profª Nunes Marques Marques Prof. ª FFátima átima Nunes Prof Prof. Edmundo Edmundo Spoto Spoto ee Profª Profª Nunes Marques Marques Banco Banco de de Dados Dados // 11 11 Banco Banco de de Dados Dados // 12 12 Restriç Restrições do Modelo Relacional Restriç Restrições baseadas em esquema Regras a respeito dos valores que podem ser armazenados nas relaç relações 1. Restriç Restrições de domí domínio – Garantem que mudanças feitas no BD por usuários não resultem em inconsistência dos dados. – Valores devem ser sempre satisfeitos em quaisquer das relações R de um banco de dados BD. Três categorias: – Restrições inerentes baseadas em modelo. • Exemplo: relação não pode ter tuplas repetidas. – Restrições baseadas em esquemas: que podem ser expressas diretamente nos esquemas do modelo de dados. – Dentro de cada tupla , o valor de cada atributo A deve ser um valor atômico do domínio dom(A). 2. Restriç Restrições de chave – Duas tuplas distintas, não podem ter valores idênticos para todos os atributos da chave primária e superchaves (unicidade de chave). – Restrições baseadas em aplicação: devem ser expressas e impostas nos programas de aplicação. • Exemplo: tuplas que um usuário pode acessar em uma relação. Prof. ª FFátima átima Nunes Prof Prof. Edmundo Edmundo Spoto Spoto ee Profª Profª Nunes Marques Marques Prof. ª FFátima átima Nunes Prof Prof. Edmundo Edmundo Spoto Spoto ee Profª Profª Nunes Marques Marques 2 Banco Banco de de Dados Dados // 13 13 Banco Banco de de Dados Dados // 14 14 Restriç Restrições baseadas em esquema Restriç Restrições baseadas em esquema 3. Restriç Restrições de valores nulos 5. Restriç Restrições de integridade referencial – Especifica que um atributo da relação não pode ser nulo. Por exemplo: NOME is not null. 4. Restriç Restrições de integridade de entidade – Nenhum valor de chave primárias pode ser nulo. – o conceito de integridade referencial depende do conceito de chave estrangeira – Chave estrangeira: • Dois conjuntos de atributos C e D compatíveis existe uma ordem entre os atributos de ambos os domínios tal que o primeiro atributo de C tenha o mesmo domínio do primeiro atributo de D, o mesmo valendo para os segundos atributos, e assim por diante. • chave estrangeira conjunto de atributos C ⊆ R1 que não é chave em R1, é compatível com outro conjunto de atributos D ⊆ Rk que é a chave primária da relação Rk. Prof. ª FFátima átima Nunes Prof Prof. Edmundo Edmundo Spoto Spoto ee Profª Profª Nunes Marques Marques Prof. ª FFátima átima Nunes Prof Prof. Edmundo Edmundo Spoto Spoto ee Profª Profª Nunes Marques Marques Banco Banco de de Dados Dados // 15 15 Banco Banco de de Dados Dados // 16 16 Restriç Restrições baseadas em esquema Restriç Restrições baseadas em esquema chave estrangeira conjunto de atributos C ⊆ R1 que não é chave na relaç relação R1, R1, mas é compatí compatível com a chave primá primária de uma outra relaç relação. A restriç restrição de integridade referencial determina que o valor dos atributos C numa tupla qualquer t(C) da relaç relação R1 onde C não é chave: – ou é igual ao valor t(D) na relação Rk onde D é chave – ou é nulo. nulo Prof. ª FFátima átima Nunes Prof Prof. Edmundo Edmundo Spoto Spoto ee Profª Profª Nunes Marques Marques – Exemplo 1: Professor = (n (númeromero-professor,nome,data professor,nome,data--admissão) Disciplina = (c (código, digo,nomenome-disc, disc,profprof-responsá responsável) vel) Professor númeroprofessor 213 400 67 43 25 nome Antônio José Joana João Maria Disciplina dataadmissão 02/02/1999 02/04/2000 05/01/1998 10/11/1997 14/11/1996 código CC876 CC566 AS654 AS543 nome-disc profresponsável Banco Dados 43 Linguagem I 25 Algoritmos 67 Compiladores 400 Prof. ª FFátima átima Nunes Prof Prof. Edmundo Edmundo Spoto Spoto ee Profª Profª Nunes Marques Marques Banco Banco de de Dados Dados // 17 17 Restriç Restrições baseadas em esquema 6. Outros tipos de restriç restrições – Restrições de integridade semântica • Exemplos: – salário do empregado deve ser menor que o do chefe – Número máximo de horas-extras é 35. • Feitas através dos programas de aplicação ou da linguagem de especificação de restrição (gatilhos e asserções) – Restrições de dependência funcional • Estabelece relacionamento funcional entre dois conjuntos de atributos X e Y, sendo que X determina o valor de Y em todos os estados da relação. • Exemplo: o RA 335432 determina sempre o nome da aluna Júlia Neme Delgado. Prof. ª FFátima átima Nunes Prof Prof. Edmundo Edmundo Spoto Spoto ee Profª Profª Nunes Marques Marques 3