Buscar

Aula 5 - Modelo Relacional - PARTE 1

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 30 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 30 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 30 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Banco de Dados
Modelagem de Banco de Dados
Modelo Relacional (R)
Projeto de BD – Uma Visão Panorâmica 
Revisão 
Projeto de BD – Uma Visão Panorâmica 
Revisão 
1. Coleta e análise dos requisitos.
2. Projeto conceitual do Banco de 
dados.
3. Escolha de um SGBD.
4. Mapeamento do modelo de dados.
5. Projeto físico do Banco de dados.
6. Implementação e implantação no 
SGBD escolhido.
Modelo Relacional – R : Definição 
Def. O MODELO RELACIONAL representa um banco de 
dados como uma coleção de relações. Uma relação é uma 
tabela de valores, onde cada linha é um conjunto de 
valores relacionados e cada coluna um conjunto de valores 
de mesmo tipo e significado. 
Coluna Tabela Cliente 
Linha 
Página 2 
R - Características 
• Foi proposto por Ted Codd em 1970; 
• Versões comerciais disponibilizadas no início da década 
de 80 (SQL/DS; ORACLE); 
• Seu formalismo usa teoria de conjuntos e lógica de 
primeira ordem; 
• É um método declarativo de especificar dados e 
consultas; 
Página 3 
R – Conceitos informais 
• Relação é uma tabela de valores 
• Cada linha da tabela representa fatos do mundo real, 
chamada tupla no modelo formal 
• Cada coluna da tabela tem um cabeçalho que indica o 
significado do item de dado na coluna, chamado atributo 
no modelo formal 
• Cada linha tem pelo menos uma chave que é um 
subconjunto de valores que identifica unicamente a linha 
Página 4 
R – Exemplo de Relação 
Página 5 
R – Definições formais 
Definições formais 
Página 6 
R – Domínio e Cardinalidade 
Def. um domínio D é um conjunto de valores atômicos e a 
cardinalidade de D, denotada por |D|, é o número de 
valores em D. 
Exemplos: 
D 1 =Domínio(sexo)={F, M}; |D 1 |=2 ? 
D 2 =Dom(funcionario.idade)= [15, 80]; |D 2 |=66 ? 
• Um domínio tem também um tipo de dado ou formato 
• funcionario.idade: inteiro 
• fone: (dd)dddd.dddd, onde cada “d” representa 
um dígito númerico decimal, sendo os dois 
primeiros um código de área 
Página 7 
R – Esquema de relação e atributo 
Def. O esquema de relação descreve a relação e é definido 
por R(A1 , A2 , ..., An), onde R é o nome da relação e cada Ai
é o nome de um atributo. 
Def. O atributo é o nome do papel desempenhado por algum 
domínio na relação 
Exemplo: EMPREGADO(cpf, nome, endereco, sexo) 
• Dom(cpf)=ddd.ddd.ddd-dd 
• Dom(nome)=cadeia de caracteres que 
representam nomes de pessoas 
• Dom(endereco)=cadeia de caracteres que 
representam endereços 
• Dom(sexo)={F, M} 
Página 8 
R – Tupla, valor de atributo e NULL 
Def. uma tupla t é um conjunto ordenado de valores 
denotado por t=<v1 , v2 ..., vn >, onde cada vi é derivado
do domínio apropriado de Ai ou é um valor nulo. 
Def. o valor nulo, denotado por NULL, é um valor especial 
para representar valores desconhecidos ou que não se aplicam. 
• Se t=<v1 , v2 ..., vn > então t[Ai ] = t.Ai = vi
• Exemplo: 
– EMPREGADO(cpf, nome, endereco, sexo) 
– empregado=<12363289544, 'John Smith', '101 Main St. Atlanta, GA 
30332', 'M'> 
– empregado.sexo='M' 
• Um domínio pode ser definido por um tipo. Ex: int, date 
Página 9 
R – Relação, estado, grau e cardinalidade 
Def. uma relação r de um esquema R(A 1 , A 2 , ..., A n ), 
denotado por r(R), é um conjunto de tuplas r={t 1 , t 2 , ..., tm }.
Obs: 
• O estado da relação r reflete as tuplas válidas que 
representam um estado particular do mundo real 
• O esquema R é relativamente estático, mas em 
geral, o estado da relação r é dinâmico; 
• n é o grau do esquema da relação; 
• m é a cardinalidade da relação; 
Página 10 
R – Características das relações 
• as tuplas em uma relação não possuem ordem; 
• os atributos em uma tupla estão ordenados de acordo com o 
esquema da relação; 
• não há atributos compostos ou multivalorados no modelo 
relacional normalizado, pois todos os atributos são atômicos; 
• NULL é um valor especial para representar valores 
desconhecidos ou que não se aplicam; 
• um esquema de relação pode ser interpretado como uma 
afirmação ou asserção sobre a estrutura da relação; 
• uma tupla pode ser interpretada como um fato ou instância 
da afirmação; 
• uma relação pode representar uma entidade ou um 
relacionamento do modelo ER; 
Página 11 
R – Restrições e suas categorias 
Def. RESTRIÇÕES são condições que devem ser mantidas 
por todos os estados válidos das relações 
CATEGORIAS DE RESTRIÇÕES: 
• Inerentes: são características do modelo de dados, por 
exemplo, não há atributo composto no modelo R; 
• Baseadas em esquema: podem ser expressas no modelo 
de dados, por exemplo, restrição de domínio; 
• Baseadas na aplicação: não podem ser expressas no 
modelo de dados, portanto devem ser implementadas 
por meio de programas de aplicação; 
Página 12 
R – Superchave 
Def. SUPERCHAVE é um subconjunto de atributos SCh do 
esquema de relação R, tal que em qualquer estado válido r 
de R não existem duas tuplas com a mesma combinação de 
valores para os atributos de SCh 
Sejam as tuplas ti, tj com i≠j 
ENTÃO ti[SCh] ≠ tj[SCh] 
OBS: SCh=R é uma superchave, pois a relação r é um conjunto
Página 13 
R – Chave 
Def. CHAVE Ch de R é uma superchave de R tal que a 
remoção de qualquer atributo de Ch gera um 
subconjunto Ch' que não é superchave de R 
Obs: 
• uma relação pode ter mais de uma chave, cada uma é 
chamada chave candidata, e uma delas é chamada chave 
primária PK; 
• a Integridade de Entidade é uma restrição inerente ao 
Modelo R e define que a chave primária não pode ser 
nula. 
Página 14 
R–Chave estrangeira e integridade referencial 
Def. Uma CHAVE ESTRANGEIRA FK de uma relação R 
que referencia a relação S é um conjunto de atributos FK 
de R com o mesmo domínio da chave primária PK de S tal 
que para qualquer tupla r de R r[FK] é nulo ou existe s[PK] 
tal que r[FK]=s[PK] 
Seja FKi (R) = PK(S) 
então para toda tupla r em R 
Existe s em S | r[FKi ]= s[PK] ou r[FKi ]=NULL 
Uma chave estrangeira FK(R)=PK(S) define uma 
INTEGRIDADE REFERENCIAL de R para S 
Página 15 
R – Esquema de BD 
Def. um Esquema de BD é um conjunto de esquemas de 
relações que pertencem ao BD 
S = {R 1 , R 2 , ..., R n } 
Página 16 
R – Exemplo de Esquema de BD Company 
Página 17 
R–Integridade referencial em esquema de BD 
Página 18 
R–Esquema de BD, de relações e suas chaves 
COMPANY = {employee, department, dept_locations, 
project, works_on, dependent} 
employee(fname, minit, lname, ssn, bdate, address, sex, 
salary, superssn, dno) 
dependent(essn,dependent_name, sex, bdate, relationship) 
department(dname, dnumber, mgrssn, mgrstartdate) 
dept_locations(dnumber, dlocation) 
project(pname, pnumber, plocation, dnum) 
works_on(essn, pno, hours) 
Página 19 
R – Chave primária 
PK(employee)=ssn 
PK(dependent)=(essn,dependent_name) 
PK(department)=dnumber 
PK(dept_locations)=(dnumber, dlocation) 
PK(project)=pnumber 
PK(works_on)=(essn, pno) 
Página 20 
R–Integridade referencial – Chave estrangeira 
FK dno (employee)=PK(department) 
FK superssn (employee)=PK(employee) 
FK essn (dependent)=PK(employee) 
FK mgrssn (department)=PK(employee) 
FK dnumber (dept_locations)=PK(department) 
FK dnumber (project)=PK(department) 
FK essn (works_on)=PK(employee) 
FK pno (works_on)=PK(project) 
Página 21 
R – Restrições de domínio 
Dom(employee.sex)=Dom(dependent.sex)={'M', 'F'} 
Dom(employee.bdate)=DATE 
Dom(department.mgrstartdate)=DATE 
Dom(employee.salary)=DECIMAL(10, 2) 
Dom(department.dnumber)=Dom(employee.dno) 
=Dom(project.dnum)=Dom(project.pnumber) 
=Dom(works_on.pno)=INTEGER 
Página 22 
R–Operações no BD e violação de restrições 
Vamos estudar as operações de 
inserir – INSERT; 
excluir – DELETE; e 
alterar - UPDATE 
e a manutenção da consistência do BD ou seja, execução das 
operações sem violar as restrições modeladas. 
A Instância do BD Empresa a seguir será utilizada para 
ilustrar as alternativas de tratamento das violações de 
restrições nas operações acima. 
Página 23 
R–Violação de restrições em INSERIR 
EMPREGADO(fname, minit, lname, ssn, bdate,address, sex, salary, superssn, dno) 
Inserir empregado<'cecilia', 'F','Ribeiro', NULL, '05-04-1960', 'Rua 
Esmeralda, 35, Uberlandia, MG', F, 28000, NULL, 4> 
empregado.ssn=NULL => viola restrição integridade de entidade 
Inserir empregado<'cecilia', 'F','Ribeiro', 123456789, '05-04-1960', 
'Rua Esmeralda, 35, Uberlandia, MG', F, 28000, NULL, 4> 
empregado.ssn=123456789 => viola restrição de chave 
Inserir empregado<'cecilia', 'F','Ribeiro',677678989, '05-04-1960', 
'Rua Esmeralda, 35, Uberlandia, MG', F, 28000, NULL, 7> 
empregado.dno=7 => viola restrição integridade referencial 
Página 25 
R–Violação de restrição em EXCLUIR 
EMPREGADO(fname, minit, lname, ssn, bdate, address, sex, salary, superssn, dno) 
DEPARTAMENTO(dname, dnumber, mgrssn, mgrstartdate) 
FK dno (empregado)=PK(departamento) 
Excluir tuplas em DEPARTAMENTO com dnumber=5 
=> viola restrição de integridade referencial FK dno (empregado) 
Opções de tratamento de violação de restrições em exclusão: 
restrict: rejeita a exclusão ? 
cascade: propaga a exclusão ? 
set null: modifica valores de atributos que ? 
referenciam a causa das violações 
Exemplo: Qual o resultado da operação acima na instância do BD 
Empresa anterior, considerando cada uma das três opções? 
Página 26 
R–Violação de restrição em ALTERAR 
A operação ALTERAR pode ser interpretada como uma 
operação Excluir seguida de Inserir, portanto está sujeita 
às mesmas violações, inclusive às opções de tratamento de 
violações mostradas anteriormente, a saber, restrict, 
cascade e set null. 
Página 27 
Atividade 3
Descreva o Esquema de BD no modelo R, incluindo as restricoes para um Sistema de Eventos 
Esportivos-SEE especificado a seguir. A principio vamos descrever o Esquema de BD SEE 
independente do Esquema Conceitual especificado por meio do diagrama EER. O SEE 
tem como objetivo armazenar dados de modalidades esportivas (ex: natação), 
categorias (ex: 100m costas), competições, locais, pessoas e equipes participantes. Além 
disso, armazenar dados de empresas patrocinadoras e resultados das competições. 
Uma categoria deve ter nome, tipo (individual ou coletiva) e gênero. Cada competição 
tem uma data, horário, local e refere-se a uma fase da categoria, sendo que deve existir 
pelo menos uma fase final por categoria. Os atletas ou equipes se inscrevem em 
categorias e participam de competições. Cada atleta(ou equipe) terá um resultado na 
competição, incluindo um escore e uma indicação de colocação na campetição e na 
categoria. O vencedor da competição final será o vencedor da categoria. Cada local 
terá um endereço, capacidade de público e lista de modalidades esportivas. As pessoas 
terão cpf, nome, idade e serão do tipo funcionário ou atleta. Dos atletas deve-se 
registrar as categorias inscritas. Os funcionários podem ser responsáveis por locais. 
Cada local deve ter um responsável. O árbitro é um tipo especial de funcionário para o 
qual deve-se registrar as modalidades. Cada esquipe terá um nome e uma lista de 
atletas participantes. Cada empresa patrocinadora terá um cnpj, nome, endereço e tipo 
de patrocínio (atleta, equipe e/ou evento). Nos dois primeiros casos deve-se registrar 
quem são os patrocinados, no último caso deve-se registrar o valor do patrocínio. 
Página 28

Continue navegando