Base de Dados Curso Ferias

132
Centro de Formação São Domingos ProjectoOi@ cultura é partilha You should be the change that you want to see in the world" ("Você deve ser a mudança que quer ver no mundo") = Gandhi= Curso de Base de Dados

Transcript of Base de Dados Curso Ferias

Page 1: Base de Dados Curso Ferias

Centro de Formação São Domingos

ProjectoOi@cultura é partilha

You should be the change that you want to see in the world" ("Você deve ser a mudança que quer ver no mundo")

= Gandhi=

Curso de Base de Dados

Page 2: Base de Dados Curso Ferias

Frei Joaquim José Hangalo

Centro de Formação São DomingosUniversidade Católica de Angola

Base de dadosProgramação Java SE e Java EE Interacção Homem Máquina

Programação Web (Web Standards)

Page 3: Base de Dados Curso Ferias

Objectivo do curso

• Apresentar os fundamentos teóricos e práticos de base de dados e de sistemas de gestão da base de dados.

• Compreender os conceitos de modelagem, projecto de administração de bases de dados

Page 4: Base de Dados Curso Ferias

Conteúdo

Conceitos de Base de dadosModelagem e Projecto de Base de dadosModelo Entidade RelacionamentoNormalizaçãoConceitos e práticas para a construção e

manipulação de base de dados ( Linguagem SQL)

Page 5: Base de Dados Curso Ferias

Dinâmica das aulas

Exposição e PráticaExercícios em Sala de aulas

Trabalhos de casa

Enviar os trabalhos para: [email protected]

Page 6: Base de Dados Curso Ferias

Certificado do CursoDo Centro de Formação São Dominogos

Os alunos que tiverem bom aproveitamentoNos trabalhos durante a semana

Poderão posteriormente fazer o projectoE defende-lo conforme prática

Do Centro de Formação São Domingos

Enviar os trabalhos para: [email protected]

Page 7: Base de Dados Curso Ferias

Formas de Estudo

Não estudar pelos slidesEstudar através de livros, apostilas e outras

referencias indicadas

Page 8: Base de Dados Curso Ferias

Ferramentas a utilizar

Microsoft Access 2007

MYSQL

Mysql Workbench

Page 9: Base de Dados Curso Ferias

Outras Ferramentas

NetBeans 7.2

Astash

Page 10: Base de Dados Curso Ferias
Page 11: Base de Dados Curso Ferias

Bibliografica

Silberschatz, A, Korth, HF,; Sudarshan, S. Sistema de base de dados, Makron Books, 1999

A. Heuser, Carlos Alberto, Projeto de Banco de Dados, Instituto de Informática da UFTGS

Damas, L., SQL, FCA

Page 12: Base de Dados Curso Ferias

Introdução a base de dados

Conceitos

Page 13: Base de Dados Curso Ferias

Dados e Informação

Dado:Dados são todos os elementos que servem de

base para a formação de opiniões ou para a tomada de decisões. Um dados é apenas um índice, um registo, uma manifestação objectiva, passível de análise, exigindo interpretação da pessoa para a sua manipulação.

Page 14: Base de Dados Curso Ferias

Dados e Informação

Dado:Em si, os dados têm pouco valor, mas quando

classificados, armazenados e relacionados entre si, eles permitem a obtenção de informações.

A informação apresenta significado e intencionalidade, aspectos que a diferenciam do conceitos de dados.

Page 15: Base de Dados Curso Ferias

Dados e Informação

InformaçãoInformação é o dado processado, trabalhado,

que permite ao executivo tomar decisões. É o resultado do tratamento dos dados existentes a cerca de alguém ou de alguma coisa.

Pode-se definir também a informação como um conjunto de factos organizados de tal forma que adquirem valor adicional além do valor do facto em si.

Page 16: Base de Dados Curso Ferias

Base de dados

Conceitos e definições

Page 17: Base de Dados Curso Ferias

As bases de dados transformaram-se num componente essencial do dia-a-dia na sociedade moderna

Exemplo depositar ou retirar dinheiro do banco fazer uma reserva num hotel ou companhia aérea fazer pesquisa de itens numa biblioteca informatizada pesquisar preços de itens num supermercado

Page 18: Base de Dados Curso Ferias

As actividades acima são exemplos de aplicações tradicionais de base de dados. Onde a maioria das informações são armazenadas através de textos ou números.

Há poucos anos atrás, a tecnologia permitiu novas aplicações para base de dados

ExemplosBases de dados multimédia: armazenam figuras, som e vídeoSIGS – Sistemas de informação geográficas: armazenam e analisam mapas, tempo e imagem de satéliteSistemas em tempo real: controlo de fabrico e processo de manufactura.

Page 19: Base de Dados Curso Ferias

Base de dados: definições

Definições:É uma colecção de dados inter-relacionados,

representado informação sobre um domínio específico (conceito geral)

É uma colecção de dados relacionados referentes a um mesmo assunto e organizados de maneira útil com o propósito de servir de base para que o utilizador recupere informações, tire conclusões e tome decisões.

Page 20: Base de Dados Curso Ferias

Uma base de dados é uma colecção logicamente coerente de dados com algum significado inerente; um arranjo aleatório de dados não pode ser considerado uma base de dados.

Page 21: Base de Dados Curso Ferias

• Uma Base de Dados Relacional é um sistema de armazenamento de dados em forma tabular baseado nos relacionamentos entre elementos de dados buscando uma normalização (sem redundâncias) dos dados.

Page 22: Base de Dados Curso Ferias

Propriedades de uma base de dados• Uma base de dados é uma colecção

logicamente coerente de dados com algum significado inerente

• Uma base de dados é projectada, construída e “povoada” com dados para um propósito específico . A ela está relacionado um grupo de utilizadores e aplicações de interesse a estes utilizadores.

Page 23: Base de Dados Curso Ferias

Propriedades de uma base de dados• Uma base de dados representa um mini-

mundo. Representa algum aspecto do mundo real. Quaisquer alterações neste mundo real são reflectidas na base de dados.

Page 24: Base de Dados Curso Ferias

Uma base de dados pode ser de qualquer tamanho e variar de complexidade. Por exemplo, a lista de nomes, endereços e telefones de uso pessoal pode ter dezenas de registos e possui uma estrutura simples.

Por outro lado, o catálogo de livros de uma grande biblioteca pode ter milhares (ou milhoes) de registos, classificados e caracterizados com dados do autor (primeiro e ultimo nomes), título, editora, data de publicação, edição, etc

Page 25: Base de Dados Curso Ferias

Uma base de dados pode ser gerada e mantida manualmente ou por uma máquina. O catálogo ou ficheiro de uma biblioteca é um exemplo de uma base de dados criada e mantida manualmente.

Uma base de dados informatizada pode ser criada e mantida por:

• Um grupo de programas especialmente escritos para esta tarefa; ou

• Um sistema de gestão de base de dados.

Page 26: Base de Dados Curso Ferias

Sistema de Gestão de Base de DadosData Base Managemet System (DBMS)Um sistema de gestão de base de dados (SGBD)

é uma colecção de softwares(Programas) que habilitam o utilizador para a criação e manutenção uma base de dados. O SGBD é um software de propósitos gerais que facilita o processo de definição, construção e manipulação de bases de dados.

Page 27: Base de Dados Curso Ferias

Sistemas de Gestão de Bases de Dados (SGBD)

• São softwares que permitem a definição de estruturas para armazenamento de informações e fornecimento de mecanismos para manipula-las

Page 28: Base de Dados Curso Ferias

Sistemas de Gestão de Bases de Dados (SGBD)

• Exemplos

• Oracle• Microsoft SQL Server• Mysql• Micorosft Access• PostgreSQL• Etc.

Page 29: Base de Dados Curso Ferias

Recursos de um SGBD• Adição de novos ficheiros• Criação de novas bases de dados• Inserção de dados• Recuperação de dados• Actualização• Eliminação dos dados• Criação de visões• Atribuição de privilégios• ….

Page 30: Base de Dados Curso Ferias

Profissionais• Administrador de Bases de dados (Database

Administrator – DBA).• Coordena de monitora a utilização da(s) base(s) de dado(s) –

segurança, tempo de reposta, etc• Autoriza o acesso à base de dados• Ajusta o projecto físico quando necessário• Adquire software e hardware necessários

• Projectista de base de dados• Identifica os dados a serem armazenados na base de dados• Escolhe as estruturas apropriadas para representar e

armazenar estes dados• Faz o levantamento das necessidades dos utilizadores

(requisitos)

Page 31: Base de Dados Curso Ferias

Profissionais

• Programador de aplicações:• Escreve os programas aplicativos• Realiza requisições ao SGBD

• Utilizador final• Manipula a base de dados através de:

– Linguagens de consulta– Programas previamente desenvolvidos

• Tipos de utilizadores:– Leigos(operador de terminal) X sofisticados(engenheiros)– Casuais(gerentes) X frequentes (caixas de bancos)

Page 32: Base de Dados Curso Ferias

Tipos de Bases de Dados

Dois tiposAnalíticas (Datawarehouse)Operacionais

Page 33: Base de Dados Curso Ferias

Bases de dados analíticasSão fundamentalmente estáticas. Armazenam dados de arquivo histórico

Por exemplo, uma empresa poderia armazenar registos de vendas durante os últimos dez anos numa base de dados analítica e poderia utilizar esta base de dados para analisar estratégias de marketing.

Page 34: Base de Dados Curso Ferias

Bases de dados operacionais

São utilizadas para administrar dados mais dinâmicos. Estes tipos de base de dados permitem mais do que ver os dados arquivados.

As bases de dados operacionais permitem modificar aqueles dados (adicionar, alterar, apagar dados, etc…)

Page 35: Base de Dados Curso Ferias

Bases de dados operacionais

Normalmente são utilizadas para localizar informação em tempo real.

Por exemplo, uma companhia poderia utilizar uma base de dados operacional para saber a quantidade armazenada de um conjunto de produtos. Este tipo de informação é fundamental para gerir qualquer stock

Page 36: Base de Dados Curso Ferias

Modelo conceitual de dados

Page 37: Base de Dados Curso Ferias

Modelo conceitual de dados

Um modelo de dados é um conjunto de conceitos utilizados para descrever a estrutura de uma base de dados

Um modelo de dados é a descrição formal da estrutura de uma base de dados

Um modelo de dados permite identificar os dados de um determinado ambiente, as relações entres eles e as suas restrições de integridade.

Page 38: Base de Dados Curso Ferias

Modelo conceitual de dados

Estrutura: tipos de dados, relacionamentos e restrições que deve suportar os dados.

A maioria dos modelos inclui uma série de operações básicas para recuperações e actualizações.

Page 39: Base de Dados Curso Ferias

Modelo conceitual de dados

O Modelo de dadosdescreve o tipo de informação que vai ser armazenada numa base de dados.

Exemplo da industria:O modelo de dados informa:

• São armazenadas informações sobre produtos• Para cada produto, são armazenados o código, o preço e a

descrição

O Modelo de dados não informa• Quais produtos estão armazenados na base de dados

Page 40: Base de Dados Curso Ferias

Modelo conceitual de dados

O modelo conceitual de dados é a representação dos conceitos e características observadas no ambiente;

Tem como característica principal ignorar particularidades de implementação

Page 41: Base de Dados Curso Ferias

Modelo conceitual de dados

O modelo conceitual de dados é independente do tipo de SGBDregista

A estrutura dos dados que podem aparecer na base de dados;

Não registaa forma como estes dados estão armazenados a nível do SGBD

Page 42: Base de Dados Curso Ferias

Modelo conceitual de dados

O Modelo de dados é uma representação das necessidades de dados de um determinado ambiente e de como estes dados se relacionam

É uma das primeiras actividades que deve ser feita ao longo do processo de identificação e compreensão de um ambiente, tendo em vista as necessidades de automatização.

Page 43: Base de Dados Curso Ferias

Modelo conceitual de dados

Construir um modelo de dados significa: • colectar e documentar informações relevantes do ambiente

estudado;• representar as informações, de forma clara e objectiva, e

num formato padrão que possa facilitar o entendimento dos participantes do processo;

• definir, de maneira clara, o escopo do ambiente modelado• Adquirir o entendimento do ambiente através de

refinamentos sucessivos do modelo;• e representar graficamente as necessidades de informação

independentemente do Software e do Hardware a serem utilizados na implementação do Sistema

Page 44: Base de Dados Curso Ferias

Como qualquer representação é o resultado de um processo de abstracção

Durante esse processo de abstracção, objectos relevantes, associações entre eles e características (atributos) de objectos e associações são seleccionadas.

A relevância de um objecto, de uma associação ou de um atributo é determinada pelos objectivos do modelo.

Page 45: Base de Dados Curso Ferias

Modelo conceitual de dados

• Componentes de um modelo conceitual de dados

• Entidades• Tipo de entidades• Atributos• Relacionamentos• E dicionário de dados

Page 46: Base de Dados Curso Ferias

Modelo conceitual de dados

Modelos lógicos baseados em ObjectosModelo de Entidade x RelacionamentoModelo distribuídoModelo Relacional Orientado a Objecto

Modelos Lógicos Baseados em RegistosModelo HierárquicoModelo de Redes

Page 47: Base de Dados Curso Ferias

Modelos de Bases de Dados

• O desenvolvimento de uma base de dados

pode ser realizado segundo diferentes

modelos conceituais.

Page 48: Base de Dados Curso Ferias

Modelos de Bases de Dados

• Existem muitos modelos de bases de dados

mas, o mais conhecido e mais utilizado, é o

modelo Entidade – Relação, também

conhecido por Entidade – Relacionamento

ou, simplesmente, modelo ER.

Page 49: Base de Dados Curso Ferias

Modelo Entidade - Relacionamento

Page 50: Base de Dados Curso Ferias

É uma técnica desenvolvida para auxiliar em projectos de Base de dados

Características:Características:

1) Gráfica: permite representar o modelo de informação com:

• clareza;

• redução de esforço;

• facilidade de compreensão;

• facilidade de apresentação.

2) Baseado na percepção de que o mundo real é constituído de dois objetos:

• Entidade e relacionamentos.

Modelo Entidade-Relacionamento::

Page 51: Base de Dados Curso Ferias

Modelo Entidade-Relacionamento

• Criado e publicado por Peter Chen em 1976

• Técnica mais difundida de modelagem conceitual . É um padrão de fato para modelagem conceitual

• É representado através do diagrama entidade-relacionamento (DER)

Page 52: Base de Dados Curso Ferias

Modelo Entidade-Relacionamento

• O modelo ER especifica o esquema da base

de dados através da identificação dos

grandes objectos informacionais com

interesse para o sistema a informatizar e nas

relações entre estes.

Page 53: Base de Dados Curso Ferias

Modelo Entidade-Relacionamento

• Este modelo baseia-se na percepção de que o

mundo real é constituído por dois objectos:

– Entidades

–Relacionamentos

Page 54: Base de Dados Curso Ferias

Modelo Entidade-Relacionamento

Conceitos fundamentais da modelagem ER• Entidade• Atributo• Relacionamento• Cardinalidade

– Extensão do modelo ER• Generalização/especialização

54

Page 55: Base de Dados Curso Ferias

ENTIDADE

Page 56: Base de Dados Curso Ferias

• Entidade é tudo aquilo sobre o qual se deseja manter informações;

• são elementos relevantes, abstractos ou concretos, sobre

os quais é necessário guardar informação.– Representam pessoas ou objectos que existem no mundo real, e

sobre os quais se quer guardar informações

– denota um conjunto de ocorrências de um facto

• Dica: Numa especificação(problema) são os

substantivos

Page 57: Base de Dados Curso Ferias

• Uma entidade representa um objecto do mundo real que possui existência própria e cujas características ou propriedades desejamos armazenar. O objecto representado pode ser um objecto concreto (uma pessoa, um carro, um livro, etc) ou abstracto (um departamento, um projecto, um curso).

Page 58: Base de Dados Curso Ferias

• Às características do objecto que desejamos armazenar damos o nome de atributos. Cada atributo de uma entidade possui um nome e um valor específico.

Page 59: Base de Dados Curso Ferias

Entidade

• Podendo representar :

a)Objectos concretos como Pessoas, livros, carros...

b)Objectos abstractos como empresas, eventos, departamentos...

Page 60: Base de Dados Curso Ferias

Entidade

• São representadas no DER através de um rectângulo com o nome no interior

Convenção: escreve o nome das entidade no singular com a primeira letra maiúscula.

Page 61: Base de Dados Curso Ferias

Exemplos:

Pessoas (Fornecedores, Empregados, Clientes, Alunos, etc.)

Organizações (Empresas, Hospitais, Escolas, Farmácias, etc.)

Objetos (Carro, Factura, Produtos, etc.)

Símbolo:Símbolo:

Entidade

Page 62: Base de Dados Curso Ferias

Entidade

• Exemplos• Sistema de informações industrial

• Produtos• Tipos de produtos• Compras• Vendas

• Sistema de contas corrente ?

62

• Clientes

• Contas corrente

• Cheques

• Agências

Page 63: Base de Dados Curso Ferias

Exercício

• Identificar entidades

63

Deseja-se construir uma base de dados para um sistema de vendas. Em cada venda são vendidos vários produtos e um determinado produto pode aparecer em diferentes vendas. Cada venda é efetuada por um vendedor a um determinado cliente. Um produto está armazenado numa prateleira de uma estante de um determinado armazem. Um armazem pode ter várias estantes.

Page 64: Base de Dados Curso Ferias

• Identificar entidades

Nma clínica trabalham médicos e existem pacientes internados. Cada médico é identificado pelo seu CM (código de Médico), possui um nome e recebe um salário na clínica. Um médico tem formação em diversas especialidades (ortopedia, traumatologia, etc), mas só exerce uma delas na clínica.

Para todo paciente internado na clínica são cadastrados alguns dados pessoais: nome, endereço, telefone(s) para contacto, data do nascimento e sexo. Um paciente tem sempre um determinado médico como responsável (com um horário de visita diário predeterminado), porém vários outros médicos podem participar do seu tratamento. Os pacientes estão sempre internados em quartos individuais, que são identificados por um número e ficam num andar da clínica.

ExercícioExercício

Page 65: Base de Dados Curso Ferias

ATRIBUTOS

Page 66: Base de Dados Curso Ferias

Atributo

São as propriedades que caracterizam ou descrevem uma entidade ou um relacionamento;

Dado ou informação que é associado a cada ocorrência de uma entidade ou de um relacionamento

Page 67: Base de Dados Curso Ferias

• Um atributo corresponde a alguma propriedade de interesse que ajuda a descrever uma entidade, como o nome do funcionário ou seu salário

Page 68: Base de Dados Curso Ferias

• Exemplo: A entidade CARRO poderia ter os seguintes atributos : Placa, modelo, ano de fabrico, cor, preço;

• Cada atributo possui um domínio que identifica o conjunto de valores permitidos para aquele atributo: nome domínio string, salário domínio numérico;

Page 69: Base de Dados Curso Ferias

• Atributos– Representação Gráfica

nomeDoAtributo

Page 70: Base de Dados Curso Ferias

TIPOS DE ATRIBUTOS

Page 71: Base de Dados Curso Ferias

• Diversos tipos de atributos ocorrem no modelo ER: • simples versus composto,• monovalorado ou univalorado versus

multivalorado,• e armazenado versus derivado.• Nulo

Page 72: Base de Dados Curso Ferias

Atributos Simples (Atómicos).

• Não é possível decompor esses atributos em

unidades mais elementares.

• Exemplo:

– N.º de aluno, salário, nome próprio...

Page 73: Base de Dados Curso Ferias

Tipos de atributos

• Compostos – São atributos que podem ser

decompostos em unidades mais elementares.

• Exemplo:

– O nome completo de uma pessoa pode ser

decomposto em nome próprio e sobrenome.

Page 74: Base de Dados Curso Ferias

• Os atributos compostos podem ser divididos em subpartes menores, que representam a maioria dos atributos básicos com significados independentes.

• Por exemplo, o atributo Endereço, pode ser subdividido:

• em Rua, Município, Bairro, Casa...

Page 75: Base de Dados Curso Ferias

• O valor de um atributo composto é a concatenação dos valores componentes dos seus atributos simples

Page 76: Base de Dados Curso Ferias

• Os atributos compostos são úteis para modelar as situações nas quais o utilizador algumas vezes refere-se ao atributo como um grupo e, noutras ocasiões, refere-se especificamente a um de seus componentes.

Page 77: Base de Dados Curso Ferias

• Se o atributo composto é referido apenas como um todo, não há necessidade de subdividi-lo em atributos componentes.

• Por exemplo, se não é necessário referir-se a um componente individual de um endereço (Caixa Postal, rua, e assim por diante), então o endereço pode ser definido como um atributo simples.

Page 78: Base de Dados Curso Ferias

Tipos de atributos

• Compostos• Representação gráfica

Os atributos compostos são implementados pelas suas partes

Page 79: Base de Dados Curso Ferias

Atributos mono valorados• São atributos que para uma mesma entidade

só recebem um valor.• A maioria dos atributos tem um valor único

para uma dada entidade;• Por exemplo, data de nascimento é um

atributo mono valorado de uma pessoa.

Page 80: Base de Dados Curso Ferias

Tipos de atributos

• Multivalorados – são atributos que para uma

mesma entidade podem receber dois ou mais

valores.

Page 81: Base de Dados Curso Ferias

• um atributo pode ter um conjunto de valores para a mesma entidade — por exemplo, um atributo Cor para um carro ou um atributo Titulação para uma pessoa. Os carros com uma cor têm um valor único, enquanto aqueles com dois tons contêm dois valores para Cor.

Page 82: Base de Dados Curso Ferias

• Da mesma forma, uma pessoa pode não ter um título académico, outra pessoa pode ter um e, uma terceira pessoa, dois ou mais títulos, portanto, pessoas diferentes podem ter números de valores diferentes para o atributo Titulação.

Page 83: Base de Dados Curso Ferias

• Um atributo multivalorado deve ter limite inferior e superior para restringir o número de valores permitidos a cada entidade individual.

• Por exemplo, o atributo Cor de um carro pode ter entre um e três valores, se presumirmos que um carro possa ter, no máximo, três cores.

Page 84: Base de Dados Curso Ferias

Tipos de atributos

• Multivalorados• Representação gráfica

Page 85: Base de Dados Curso Ferias

• No processo de implementação de atributos multivalorados é importante considerar dois aspectos:

• 1) Quando a quantidade de valores é pequena e conhecida a priori. Substitui-se o atributo multivalorado por um conjunto de atributos de mesmo domínio, cada um representando a ocorrência de um valor.

• 2) Quando a quantidade de valores é muito grande, variável ou desconhecida.

• Retira-se da tabela o atributo multivalorado, e cria- se uma nova tabela que tem o mesmo conjunto de atributos chave, mais o atributo multivalorado como chave, porém tomado como monovalorado.

Page 86: Base de Dados Curso Ferias

• Atributos Armazenados versus Derivados.• Em alguns casos, dois (ou mais) valores de atributos

estão relacionados — por exemplo, os atributos Idade e DataNascimento de uma pessoa.

• Para uma entidade pessoa em particular, o valor de Idade pode ser determinado pela data corrente (hoje) e o valor de DataNascimento da pessoa. Portanto, o atributo Idade é chamado atributo derivado, e é dito derivado do atributo DataNascimento, que, por sua vez, é chamado atributo armazenado.

Page 87: Base de Dados Curso Ferias

• Alguns valores de atributos podem ser derivados de entidades relacionadas; por exemplo, um atributo NumerodeEmpregados, de uma entidade departamento, pode ser derivado da contagem do número de empregados relacionados (que trabalham) neste departamento.

• Atributos derivados – podem ser calculados a partir de outros atributos

No digrama são representados com uma elipse com os limites descontínuos

Page 88: Base de Dados Curso Ferias

NulosNulo – é utilizado quando uma entidade não possui ou desconhece o valor de um determinado atributo

Exemplo: Um funcionário que não possua dependentes terá o valor do atributo nomeDependente nulo.

Page 89: Base de Dados Curso Ferias

• A representação de um atributo sem valor é colocarmos um valor especial null.

• Null também pode ser utilizado quando não conhecemos o valor de um atributo, por exemplo, quando é desconhecida a data de nascimento de uma pessoa.

Page 90: Base de Dados Curso Ferias

RELACIONAMENTOS

Page 91: Base de Dados Curso Ferias

• Ao definir as entidades componentes de um diagrama entidade relacionamento, nota-se vários relacionamentos implícitos entre elas. De facto, sempre que um atributo de um tipo de entidade refere-se a um outro tipo de entidade, temos um relacionamento entre as entidades.

Page 92: Base de Dados Curso Ferias

Relacionamento

• Um relacionamento consiste numa associação entre entidades do negócio. Mais concretamente, se se vir uma entidade como um conjunto de ocorrências, existe um relacionamento entre entidades se ocorrências de uma destas entidades estiverem associadas a uma ou mais ocorrências de outras entidades.

• Associações entre entidades estabelecidas de acordo com as necessidades de gestão.

Page 93: Base de Dados Curso Ferias

• conceito utilizado para indicar associações entre elementos de diferentes conjuntos de entidades. Um relacionamento binário é um par ordenado (e1, e2) onde e1 e e2 são respectivamente elementos de E1 e E2.

• Conjunto de relacionamentos – conjunto dos pares ordenados que associam entidades. A representação gráfica desse conjunto é um losango.

Page 94: Base de Dados Curso Ferias

• Conjunto de relacionamentos são representados graficamente por meio de losangos contendo o nome do tipo de relacionamento conectados aos conjuntos de entidades cujos elementos ele associa

Funcionáriotrabalha no

Departamento

Page 95: Base de Dados Curso Ferias

CLASSIFICAÇÃO DOS RELACIONAMENTOS

Page 96: Base de Dados Curso Ferias

Classificação dos relacionamentos

Os Relacionamentos são classificados de acordo com as características ✔ Grau• Número de entidades envolvidas no relacionamento ✔ Obrigatoriedade• Entidades participam com carácter opcional ou

obrigatório no relacionamento ✔ Cardinalidade• Relação entre o número de ocorrências numa

entidade com as respectivas ocorrências na outra com que tem o relacionamento

Page 97: Base de Dados Curso Ferias

Grau dos Relacionamentos

Unário || Binários || n-ários

O grau de um relacionamento corresponde ao numero dediferentes tipos de entidades que dele participam. Os relacionamentos podem associar um numero qualquer de tipos entidades. Os relacionamentos mais comuns são aqueles degrau dois (relacionamentos binários).

Page 98: Base de Dados Curso Ferias

• Relacionamentos do tipo Trabalha NO, por exemplo, possuem grau dois. Um exemplo de tipo relacionamento ternário e FORNECE.

• Ele associa os tipos de entidades FORNECEDOR, PECA e PROJECTO

Page 99: Base de Dados Curso Ferias

Grau dos Relacionamentos

Unário || Binários || n-ários

Page 100: Base de Dados Curso Ferias

Atributos de um relacionamento• Atributos de um relacionamento: assim como no caso das

entidades, os relacionamentos também podem possuir certos atributos.

• O numero de horas que um funcionário trabalha num projecto, por exemplo, pode ser visto como um atributo do conjunto de relacionamentos DESENVOLVE

Page 101: Base de Dados Curso Ferias

Obrigatoriedade dos Relacionamentos

• A participação de entidades A e B num relacionamento podem ser obrigatória ou opcional

Page 102: Base de Dados Curso Ferias

Restrição de Participação

• Restrição de Participação: determina se a existência de uma entidade esta condicionada ou não ao seu relacionamento com outra entidade.

• Existem dois tipos de restrições de participação: total e parcial. Na primeira, uma entidade existe somente quando ela se relaciona com outra entidade via um relacionamento.

• Por exemplo, se a politica da empresa determina que todo funcionário deve trabalhar em um departamento, então a participação de FUNCIONARIO em TRABALHA NO é total

Page 103: Base de Dados Curso Ferias

Restrição de Participação

• Caso contrario, ou seja, se a existência de uma entidade é independente do facto dela estar relacionada com outra, tem-se uma restrição de participação parcial.

• A participação de FUNCION ARIO em DESENVOLVE, por exemplo, é parcial. Ou seja, nem todo funcionário precisa desenvolver um projecto dentro da empresa.

• A restrição de participação total e representada graficamente por meio de linhas duplas ligando o conjunto de entidades ao conjunto de relacionamentos. Já a participação parcial e representada por meio de linhas simples.

Page 104: Base de Dados Curso Ferias

Cardinalidade dos RelacionamentosA cardinalidade de um relacionamento consiste no

número relacionado de ocorrências para cada uma das entidades envolvidas no relacionamento

• Dadas duas entidades A e B as mais habituais são ✔ Relacionamento 1:1 ✔ Relacionamento 1:N (um para muitos) ✔ Relacionamento M:N (muitos para muitos)

Notação Crow Foot

Page 105: Base de Dados Curso Ferias

Cardinalidade dos Relacionamentos

Funcionário Departamentocolocado1N

Os símbolos “1” e “N” nas arestas de ligação determinam a cardinalidade ou classe do relacionamento

Page 106: Base de Dados Curso Ferias

“N para 1” ou “muitos para um” ou “N:1”

• Uma entidade em A está associada a várias entidades em B. Entretanto, uma entidade em B, deve estar associada a no máximo uma entidade em A

Exemplo: Uma turma tem vários alunos, mas um aluno só pertence a uma turma

Page 107: Base de Dados Curso Ferias

“1 para 1” ou “1:1” - Um para um (1:1)

• Uma entidade em A está associada no máximo a uma entidade em B, e uma entidade em B está associada a no máximo uma entidade em A

Exemplo: Um empregado está associado no máximo a um carro, e um carro está associado no máximo a um empregado

Page 108: Base de Dados Curso Ferias

“N para N” ou “muitos para muitos” ou “N:M”

Uma entidade em A está associada a um número qualquer de entidades em B, e uma entidade em B está associada a um número qualquer de entidades em A

Exemplo: Uma conta pode estar associada a mais do que um cliente, e um cliente pode ter mais do que uma conta associada

Page 109: Base de Dados Curso Ferias

CHAVES

Page 110: Base de Dados Curso Ferias

Chaves

• Um conceito fundamental no contexto do modelo entidade-relacionamento é o de “chave”.

• Existem diferentes tipos de chaves:• Chave Candidata• Super-Chave• Chave Primária• Chave estrangeira (externa):

Page 111: Base de Dados Curso Ferias

Chaves• Chave Candidata: Subconjunto dos atributos de

uma entidade que podem ser utilizados como identificadores de uma instância. O subconjunto não pode ser reduzido sem perder esta qualidade.

Exemplos: {BI},{Contribuinte},{Eleitor, Município}

Page 112: Base de Dados Curso Ferias

Chaves• Super-Chave: O conceito de super-chave é mais

abrangente que o de “chave candidata” definido anteriormente. Qualquer subconjunto de atributos de uma entidade que possa identificar univocamente qualquer instância da entidade é considerado uma super-chave

Exemplos: {BI}, {BI, nome}, {Nº Eleitor, Municipio}, {Nº Eleitor, BI}, {Nº Eleitor, BI, Nome}, { Nome, BI, Nº Contribuinte, Nº Eleitor, Município}

No limite, o conjunto de todos os atributos de uma entidade será sempre uma super-chave.

Page 113: Base de Dados Curso Ferias

Chaves• Chave Primária: Escolhida entre as possíveis

chaves candidatas, identifica de forma unívoca instancias de uma entidade. Deve respeitar as seguintes propriedades:

• Unívoca: Os atributos da chave primária têm um valor único para qualquer instancia de uma entidade.

• Não redundante: Se algum dos atributos for retirado da chave, os restantes atributos deixam de satisfazer a propriedade anterior.

• Não nula. Nenhum dos atributos que a constituem pode assumir o valor nulo.

Page 114: Base de Dados Curso Ferias

A chave primária também é chamada atributo identificador

O identificador de uma entidade, é o atributo (ou composição de atributos) que identifica esta entidade – ou melhor, identifica inequivocamente uma e só uma ocorrência desta entidade.

Page 115: Base de Dados Curso Ferias

Chaves

• Chave Primária: Escolhida entre as possíveis chaves candidatas, identifica de forma unívoca instancias de uma entidade.

Page 116: Base de Dados Curso Ferias

• Chave estrangeira (externa): Subconjunto dos atributos de uma entidade que constituem a chave primária de uma outra entidade. A sua existência denota um relacionamento entre entidades e constitui a base do modelo relacional.

• É um atributo que definido como chave primária numa entidade é colocado (na implementação) na estrutura da outra, para se poder definir o relacionamento.

Page 117: Base de Dados Curso Ferias

Chave estrangeira - Cardinalidade

• Num relacionamento 1:1 com participação obrigatória de ambas as entidades, é necessária apenas uma tabela, que representa ambas entidades e o relacionamento. Os identificadores de ambas entidades são chaves candidatas

• Num relacionamento 1:1 com classe de participação obrigatória de apenas uma das entidades, são necessárias duas tabela.

• A tabela que representa a entidade que tem participação obrigatória no relacionamento receberá a chave estrangeira (chave primária da outra entidade)

cadeira professorlecciona

Page 118: Base de Dados Curso Ferias

Chave estrangeira - Cardinalidade

• Num relacionamento 1:1 sem classe de participação obrigatória de nenhuma das entidades, são necessárias três tabelas, duas para representada cada uma das entidades em que a chave primeira é o identificador da respectiva entidade e outra para representar o relacionamento que incluirá os identificadores de ambas as entidades

cadeira professorlecciona

Page 119: Base de Dados Curso Ferias

Chave estrangeira - Cardinalidade

• Num relacionamento 1: N com classe de participação obrigatória da entidade do lado N, são necessárias duas tabelas, cada uma representado uma das entidade em que a chave primária é o identificador da respectiva entidade. Para além disso a tabela que representa a entidade do lado N representará também o relacionamento, incluindo assim como chave estrangeira o identificador da outra entidade.

cadeira professorlecciona

Page 120: Base de Dados Curso Ferias

Chave estrangeira - Cardinalidade

• Num relacionamento M: N são necessárias três tabelas, duas para representada cada uma das entidades em que a chave primeira é o identificador da respectiva entidade e outra para representar o relacionamento que incluirá os identificadores de ambas as entidades

cadeira professorlecciona

Page 121: Base de Dados Curso Ferias

ENTIDADES FRACAS

Page 122: Base de Dados Curso Ferias

• Um conjunto de entidades pode não ter atributos suficientes para formar uma chave primária. São os conjuntos de entidades fracas.

• Um conjunto de entidades que possui uma chave primária é dito forte.

Page 123: Base de Dados Curso Ferias

• A chave primária de um conjunto de entidades fracas é composto pela chave primárias do conjunto de entidades fortes ao qual a existência do primeiro está associada mais o identificador do conjunto de entidades fraca.

• O relacionamento que associa o conjunto de entidades fracas a seu proprietário é o relacionamento identificador.

Page 124: Base de Dados Curso Ferias

• Uma entidade fraca sempre possui uma restrição de participação total(dependência de existência) com relação a seu relacionamento identificador, porque uma entidade fraca não pode ser identificada sem uma entidade proprietária

• Ao contrário, tipos de entidades regulares que efectivamente possuem um atributo chave são às vezes chamados tipos de entidade fortes.

• As entidades fracas precisam estar relacionadas com uma entidade pertencente ao tipo de entidade proprietária ou identificadora.

• O relacionamento entre ambas é chamado de relacionamento identificador.

Page 125: Base de Dados Curso Ferias

EXERCÍCIOS

Page 126: Base de Dados Curso Ferias

Para cada uma das situações abaixo, construa um diagrama de entidades e relações que descreva a informação, e proponha um conjunto de tabelas correspondente ao diagrama.

Page 127: Base de Dados Curso Ferias

Situação 1Uma transportadora aérea pretende implementar uma

base de dados com a seguinte informação:A transportadora tem vários aviões. Cada avião tem, para

além da matrícula, um nome, a marca do avião, o número de lugares, e indicação da sua autonomia.

Na transportadora trabalham vários pilotos.Cada avião faz vários voos. Cada voo deve ter, pelo

menos, a indicação da data e hora em que se efectua, dos locais de partida e de destino.

Cada voo de um dado avião é pilotado por um piloto.

Page 128: Base de Dados Curso Ferias

Situação 2Uma fábrica pretende implementar uma base de dados para gerir os

"stocks" dos seus armazéns, as encomendas, e as vendas. Para tornar o problema menos extenso, não vamos aqui considerar a parte relativa às vendas. Há assim que ter em conta que:

A empresa comercializa vários produtos, cada um dos quais com um código, um nome, e um preço. Em cada momento a empresa deve ainda saber qual a quantidade existente no armazém de cada um dos produtos.

Uma encomenda, que deve ter um número de encomenda e a data em que foi feita, pode ter vários produtos, mas diz respeito apenas a um fornecedor.

De cada fornecedor a empresa deseja guardar a informação do seu nome, número de contribuinte, morada, forma de pagamento, prazo de pagamento, e um código interno de tipo de fornecedor.

Page 129: Base de Dados Curso Ferias

Situação 3Um grupo de docentes pretende organizar uma conferência e, para guardar

toda a informação relevante, vai ter que criar uma base de dados.Na conferência são apresentados vários artigos, cada um dos quais com um

título e um número. Cada artigo tem um ou mais autores. De cada autor, pretende armazenar-se para além do nome, o endereço deemail, e o nome e morada da instituição a que estão associados.

Há ainda a informação relativa aos participantes na conferência. De cada a participante deverá ser retida a informação do seu nome, morada e endereço de email. Além disso, distingue-se entre os participantes que são estudantes e os que não são. Cada participante não estudante tem de pagar antecipadamente a inscrição por transferência bancária, pelo que é necessário guardar o número da transação. Para não pagar, o estudante tem de enviar antecipadamente um certificado e na base de dados deve ser armazenado o nome da universidade que o passou.

Page 130: Base de Dados Curso Ferias

Situação 4Uma clínica médica pretende informatizar os seus serviços. Para já querem

começar por informatizar os dados referentes a médicos, a clientes (ou pacientes) e a consultas.

Na clínica trabalham vários médicos, de várias especialidades diferentes. De cada médico, identificado internamente por um número de empregado, a clínica pretende armazenar o nome, especialidade, morada e telefone.

Como é usual, os médicos dão consultas a clientes. A clínica pretende ter sempre disponível a informação dos nomes e moradas dos seus clientes.

A cada consulta está associado um só médico e um só cliente. Actualmente as consultas são numeradas para cada um dos médicos, ou seja para cada médico há uma consulta 1, uma consulta 2, etc. Para a clínica é importante manter este sistema de identificação das consultas, por forma a poderem ser introduzidos dados relativos ao tempo em que a clínica ainda não estava informatizada. Da consulta pretende armazenar-se a data em que ocorreu, bem como os vários fármacos que foram receitados pelo médico na consulta.

Page 131: Base de Dados Curso Ferias

Situação 5Um empresa de compra e vende de imóveis pretende informatizar os seus

serviços.A empresa tem vários casas para venda, cada uma das quais pertencente a

um cliente da empresa. Da casa a empresa quer ter disponível a zona de localização, o número de assoalhadas, o preço e o ano de construção. Dos clientes deve ser armazenado o seu nome, morada e nº de telefone. Um mesmo cliente pode ter várias casas para venda na empresa. Claro está que, nesses casos, não se quer repetir a informação da morada e nº de telefone do cliente.

Há ainda os clientes da empresa que, em vez de quererem vender casas, querem comprar. Desses deve ser armazenado, para além da informação que se guarda dos outros clientes, a informação acerca dos interesses do cliente. Dos interesses fazem parte o nº de assoalhadas e zona de localização da casa que pretendem comprar. Um cliente pode ter interesse por vários tipos de casas diferentes.

De cada casa que esteja para venda na empresa, deve ainda ser armazenada a informação de que clientes já a visitaram, e quando.

Page 132: Base de Dados Curso Ferias

Situação 6Pretende-se desenvolver uma base de dados para armazenar informação duma

biblioteca. Tal base de dados deverá conter pelo menos informação referente a:todos os títulos existentes na biblioteca incluindo, de cada um deles, o ISBN (que é um

código atribuído a nível internacional e que identifica univocamente um livro), o nome, o ou os autores, a editora, os descritores do livro, a sua classificação;

as localizações (e.g. o nº da prateleira) onde se devem encontram os vários livros (ou exemplares) de cada um dos títulos;

as informação relevantes sobre as editoras (como nome, telefone, morada, fax, etc);os leitores da biblioteca, cada um dos quais com um nº de leitor. Dos leitores, a

biblioteca pretende ainda ter mais alguma informação disponível, como o nome, morada, etc;

a biblioteca pretende, como é natural, ter disponível a informação de que leitores têm que livros requisitados.

Notas: Os descritores dos livros são como "palavras-chave" que dão indicações sobre os temas abordados pelos livros. Para uniformizar, os descritores não são livres, mas escolhidos de entre uma lista de possíveis descritores, sendo cada um deles identificado por um código.