Fundamentos de Banco de Dados
-
Upload
henrique-campelo -
Category
Documents
-
view
217 -
download
1
Transcript of Fundamentos de Banco de Dados
Fundamentos de Banco de Dados
Peter Lucas Gomes Costa Branco
Introdução – Sociedade da
InformaçãoAula 1
3
Na sociedade da informação, dois conceitos são essenciais:
Dado: é matéria-prima de forma crua, fatos que podem ser gravados e que possuem
algum significado implícito
Informação: é a associação de dado e contexto capaz de prover conhecimento
Sociedade da Informação
Dado
Informação
Conhecimento
Sistema de
Informação
Vantagem
Estratégica
Conceitos
Dados:
Uma representação de fatos, conceitos ou instruções em uma maneira
formalmente ajustada para comunicação , interpretação ou
processamento por meios humanos ou automáticos.” (ROSEMBERG,
1986).
Informação
Resultado do processamento de dados, de forma que ela é derivada da
montagem, análise ou sumarização de dados em uma forma que
apresente sentido.” (Chandor, 1985).
Conceitos
Bancos de dados
Também chamado de Bases de Dados, são conjuntos de dados com uma
estrutura regular que organizam informação. Um banco de dados
normalmente agrupa informações utilizadas para um mesmo fim.
coleções de dados que são organizadas de tal forma que possam ser
facilmente acessados, manipulados e atualizados.
Conhecimento
Conhecimento é a informação refinada. É a informação que foi
interpretada, categorizada, aplicada e revisada. (Mcgraw, 1989)
Conceitos
Tecnologia da Informação
Captura da Informação;
Transmissão da Informação;
Processamento da Informação;
Armazenamento da Informação;
Exibição da Informação
Dentro desse contexto, Banco de Dados é o componente da
Tecnologia da Informação voltado para o Armazenamento da
Informação.
Conceitos
7
Os Bancos de Dados, conforme conhecidos hoje, estão ligados à maioria
dos sistemas de armazenamento e consulta digital
Exemplos:
Sistemas bancários, de controle de estoque, de farmácias, de locadoras, de
controle de reservas
Sistemas de gestão de recursos em empresas
Sistemas de bibliotecas e acervos digitais
Mais recentemente, além de lidar com dados tradicionais os Bancos de Dados
puderam ser utilizados em outras áreas do conhecimento:
Banco de dados multimídia: armazena imagens, som e vídeo
Sistemas de Informação Geográfica: armazena e oferece recursos para
manipular dados espaciais
Sistemas em tempo real: vigilância aérea e controle de chão de fábrica
Conceitos
8
Um banco de dados é uma coleção de dados relacionados
Deve armazenar e refletir fatos do mundo real
Um banco de dados deve atender 3 requisitos:
Um banco de dados deve representar aspectos do mundo real, chamado
de Universo de Discurso (UoD)
Um banco de dados deve possuir algum significado implícito
Um banco de dados é desenhado, construído e populado para um
público alvo e aplicações específicas
O SGBD – Sistema de
gerenciamento de banco
de dadosAula 2
O SGBD
10
Um Sistema Gerenciamento de Banco de
Dados (SGBD) é uma coleção de softwares
que permite criar e manter um banco de
dados
Definição de um banco de dados
Construção de um banco de dados
Manipulação de um banco de dados
Pode-se criar um Banco de Dados manualmente
Também é possível desenvolver um SGBD proprietário,
destinado a finalidades específicas
O habitual é usar um SGBD desenvolvido por uma grande
companhia
Hoje, SGBDs open-source estão ganhando mercado
Baixo custo
Aplicações simples
Profa. Elcione 12
Estrutura do SGBD
Conceitos
13
Funções de um SGBD
Armazenamento, recuperação e atualização de dados
Prover acesso ao catálogo
Suporte a transações
Serviços de controle de concorrência
Serviços de recuperação
Serviços de autenticação
Serviços para garantir integridade
Uso de Banco de Dados
Aula 3
Usando o banco de dados
15
Inicialmente, os programas eram criados armazenando seus
dados em arquivos definidos pelo programador
A definição da estrutura dos arquivos era mantida dentro dos
programas
Isto dificultava a manutenção, evolução e integração com
outros programas
Aspectos considerados no desenvolvimento de aplicativos
com arquivos:
Número de arquivos (limitações SO)
Limitação do tipo do arquivo
Uso de memória
Codificação em baixo nível para coordenar concorrência e sincronização
Uso de Banco de Dados
16
Do que foi apresentado, conclui-se que a criação de sistemas
baseados em arquivos possui desvantagens como:
Maior tempo de desenvolvimento
Necessidade de lidar com aspectos de manipulação de arquivos
Redundância na definição e armazenamento de dados
Maior esforço para manutenção do sistema
Dificuldade para implementar segurança
Isolamento
O desenvolvimento baseado em Bancos de Dados possui vantagens quando
comparado ao desenvolvimento baseado em arquivos
Uso de Banco de Dados
17
Natureza auto-descritiva de um banco de dados
Um banco de dados possui uma descrição completa da sua
estrutura, armazenada no catálogo
A mesma estrutura do catálogo pode ser compartilhada
entre vários Bancos de Dados
O catálogo também registra restrições, definições de
usuários e segurança, entre outros dados
Uso de Banco de Dados
18
Separação entre Programas e Dados e
Abstração de Dados
A independência entre programas e dados ocorre porque a alteração na
estrutura dos arquivos não precisa ser refletida nos programas (utilização de
mapeamentos)
A abordagem de Banco de Dados provê uma visão abstrata dos dados porque
oculta detalhes de como os dados são armazenados e mantidos. Isto chama-se
abstração de dados
Uso de Banco de Dados
19
Suporte a MúltiplasVisões dos Dados
A abordagem de Banco de Dados oferece subsídios para visualizar um mesmo
conjunto de dados de forma diferente, de acordo com a necessidade
Cada usuário vê somente sua parte de interesse, seu subconjunto, do Banco de
Dados
Permite aumentar a segurança e adaptar a aparência do Banco de Dados
Exemplo:
Considere uma grande rede de supermercados
Quais informações devem ser vistas por um responsável pelo estoque?
Quais informações devem ser vistas pelo gerente geral?
Uso de Banco de Dados
20
Compartilhamento de Dados e Suporte a Transações
Vários usuários acessam e operam sobre um Banco de Dados simultaneamente
Os dados permanecem integrados, mantidos em um único repositório
Os SGBDs fornecem mecanismos de controle de concorrência para que os
dados permaneçam consistentes após cada transação
Quando usar SGBDs
21
As seguintes características são beneficiadas com o uso de
SGBDs:
Controle de Redundância
Restrição de Acesso
Armazenamento Persistente para Objetos de Programas e Estruturas de Dados
Fornecimento de Múltiplas Interfaces de Usuários
Representação de Relacionamentos Complexos entre os Dados
Imposição de Restrições de Integridade
Backup e Recuperação
Redução no tempo de desenvolvimento de aplicações
Flexibilidade
Disponibilidade da informação atualizada
Economia de escala
Quando não usar SGBDs
22
Existem situações não apropriadas para o uso de um
SGBD devido:
Alto investimento inicial em hardware, software e treinamento
Generalidade que o SGBD fornece para definir e processar dados
Overhead gerado com a segurança, controle de concorrência,
recuperação e integridade dos dados
23
Componentes do SGBD
Dados:
Informação armazenada.
Hardware:
Servidor de banco de dados.
Software:
Sistema de Gerenciamento de Banco Dados (SGDB).
Usuário:
Usuários que acessam o banco de dados.
24
Exemplos de SGBDs
Em algumas circunstâncias é mais aconselhável usar arquivos regulares a
BDs:
MySQL;
Postgre;
Oracle;
SQL Server;
Sybase;
DB/2;
Informix
Classificação do SGBDs
25
Os SGBDs podem ser classificados em critérios como:
O modelo de dados
SGBDs Relacionais, SGBDs Orientados a Objetos e SGBDs Objeto-Relacionais
O número de usuários
SGBDs monousuário e SGBDs multi-usuários
O número de sítios:
SGBDs centralizados e SGBDs Distribuídos
Preço
SGBDs baratos e SGBDs de alto custo
Licenciamento
Gratuitos, Open-source e proprietários
Profissionais de Banco de dados
– The Database Professional
Aula 4
Profissionais e Banco de Dados
27
Pode-se destacar os seguintes profissionais envolvidos em um
ambiente de Banco de Dados
Administrador de Banco de Dados (DBA)
É o responsável por gerenciar os recursos do Banco de Dados, ou seja, o
Banco de Dados em si, o SGBD e demais softwares
Autoriza acesso ao Banco de Dados
Coordena e monitora seu uso, gerencia softwares e suas licenças e hardwares
Define esquemas e estruturas de armazenamento para os Bancos de Dados
Normalmente existe uma equipe constituída por vários DBAs que garantem
o bom funcionamento do Banco de Dados
Profissionais e Banco de Dados
28
Projetista de Banco de Dados
Identifica os requisitos para dados a serem armazenados
Escolhe estruturas adequadas para representar e armazenar os dados
A tarefa do projetista deve ser executada antes do Banco de Dados ser criado
O projetista pode compor a equipe de DBAs e realizar outras atividades relacionadas
ao Banco
Profissionais e Banco de Dados
29
Analistas e programadores
Determinam os requisitos e desenvolvem especificações para os sistemas que utilizam
o Banco de Dados
Usuário Final
Recuperam e inserem dados no Banco de Dados durante a execução de suas tarefas
Normalmente interagem com o Banco a partir de uma aplicação ou interface
customizada
Profissionais e Banco de Dados
30
Existem usuários que trabalham no desenvolvimento do SGBD
e seu ambiente:
Projetistas e desenvolvedores de SGBD: estão envolvidos no desenvolvimento
dos módulos de um SGBD
Desenvolvedores de ferramentas: são aqueles que desenvolvem ferramentas que
podem ser compradas para integrar o ambiente do Banco de Dados
Pessoal de manutenção e operadores: são os administradores de sistemas que
dão suporte a hardware e software relacionados ao Banco de Dados
O Sistema de Banco de dados -
SBD
Aula 5
O SBD – Sistema de banco de dados
32
O SGBD e o Banco de
Dados juntos constituem
o Sistema de Banco de
Dados
SGBD + BD = SBD
Dados + Catálogo = BD
Banco de Dados
SGBD
Sistemas/Aplicações
33
Arquitetura de SBD
Os SGBDs evoluíram de sistemas monolíticos para sistemas
modularizados
Basicamente funcionam de acordo com a arquitetura cliente-servidor
O lado cliente lida com as aplicações que acessam o BD, manipulando
as interações dos usuários
O lado servidor cuida do armazenamento de dados, seu acesso e sua
procura
Tem se tornado comum a interação com BDs via web
Arquitetura Cliente - Servidor
34
É um modelo computacional que separa clientes e servidores,
sendo interligados entre si geralmente utilizando-se uma rede
de computadores. Cada instância de um cliente pode enviar
requisições de dado para algum dos servidores conectados e
esperar pela resposta. Por sua vez, algum dos servidores
disponíveis pode aceitar tais requisições, processá-las e
retornar o resultado para o cliente.
Arquitetura Cliente - Servidor
Arquitetura de SBD
36
Acesso ao Banco de
Dados:
Aplicativo era executado em
uma única máquina, era
comum encontrar sistemas
monolíticos contendo todas
as funcionalidade s do
aplicativo em uma única
grande camada
37
Arquitetura de SBD
Cliente-servidor com duas
camadas:
O cliente gerencia a lógica de
negócio, o processamento do
dados e a interface de usuário
O servidor gerencia e controla
o acesso ao BD
Arquitetura de SBD
38
Cliente-servidor com três
camadas:
envolve a separação dasfuncionalidades usando camadas, como objetivo de separar a lógica deapresentação, a lógica de negocio e aconexão com o banco de dados(lógica de acesso a dados).
A separação em três camadas tornao sistema mais flexível, de modo quepartes podem ser alteradasindependentemente. Com oemprego de arquitetura em três,qualquer alteração em umadeterminada camada não influi nasdemais, desde que o mecanismo decomunicação entre elas permaneceinalterado.
39
Arquitetura de SBD
Os modelos de dados
Aula 6
41
Classificação de Modelos de Dados
A maneira mais prática de classificar bancos de dados é
de acordo com a forma que seus dados são vistos pelo
usuário, ou seja, seu modelo de dados.
42
Modelos
Modelos é a representação abstrata e simplificada de uma
determinada realidade, com a qual se pode explicar ou
testar o seu comportamento, em sua totalidade ou em
partes antes de sua existência real.
Modelos de Dados
Um modelo de dados é uma coleção de conceitos que podem
ser usados para descrever a estrutura de um BD (tipos e
definições, restrições e operações).
Modelo de dados é um conjunto de conceitos que podem ser
usados para descrever a estrutura de um banco de dado, tipos
de dados, relacionamentos e restrições. Pode também incluir
operações que especificam consultas e atualizações no banco
de dados.
43
Modelos de Dados
Diversos modelos foram e vem sendo utilizados ao
longo da história, com vantagens para um ou para
outro por determinados períodos.
Modelo em Redes
Modelo Hierárquico
Modelo Relacional
Modelo Orientado a Objetos
Modelo Hierárquico
No modelo de rede, os dados são representados
por uma coleção de registros e os
relacionamentos entre dados são representados
por meio de links.
A estrutura de registros e links também é a
estrutura do modelo hierárquico.
Modelo Hierárquico
São arquivos relacionados de forma que para cada
registro “Pai” pode se relacionar com vários
registros “Filhos” e o filho apenas pertencer a um
pai.
Não mapeia Relacionamentos de M:N
Modelo Hierárquico
dummy
nome rua cidade nome rua cidade nome rua cidade
número saldo número saldo número saldo
Árvore de Banco de Dados
Modelos de Redes
Um banco de dados de rede é uma coleção de registros
conectados uns aos outros por meio de links.
Um registro é, em muitos aspectos, similar a uma entidade
do modelo entidade-relacionamento.
Cada registro é uma coleção de campos (atributos), cada
qual contendo somente um valor..
Modelos de Redes
é um conjunto de arquivos relacionados, de tal forma que
cada arquivo "pai" pode se relacionar com vários arquivos
"filhos" e cada arquivo "filho" pode ser filho de vários
arquivos "pai“.
A limitação que existia anteriormente nos BD Hierárquicos
para a implementação de relacionamentos "não
hierárquicos", deixa de existir com os BD de Redes, porém,
os relacionamentos entre os arquivos continuaram sendo
implementados através de ponteiros físicos, cuja manipulação
continuava sendo relativamente complexa, dificultando a
criação de linguagens de manipulação de Banco de Dados
voltadas para usuários finais.
Modelos de Redes
Maria Soares 10 de Maio Manaus
José Batista 7 de setembro Manaus
1210 600,00
1310 700,00
1411 800,00
João da Silva Av. Tarumã Manaus 1010 500,00
Regsitro Cliente ContaLink
Modelo Relacional
Proposto por Peter Chen em 1976.
É um modelo de dados de alto nível.
As entidades, relacionamentos, atributos e restrições
descrevem as regras de negócio do sistema.
Modelo Entidade Relacionamento
O MER é um modelo de dados conceitual de alto-nível, ou
seja, seus conceitos foram projetados para serem
compreensíveis a usuários, descartando detalhes de como os
dados são armazenados.
Proporciona uma visão lógica de alto nível dos dados.
É uma descrição abstrata de uma porção do mundo real.
Através do MER, podemos ter uma fotografia do sistema.
Modelo Entidade Relacionamento
Componentes do MER
Entidade
Atributo de Entidade
Relacionamento entre Entidades
Cardinalidade
Exemplo do DER
Modelo Orientado à Objetos
O Uma nova maneira de pensar nos problemas utilizando
modelos organizados a partir de conceitos do mundo real. O
componente fundamental é o objeto que combina estrutura
e comportamento em uma única entidade".
Rumbaugh (1994)
Modelo de Dados Orientado à Objetos
O modelo de dados Orientado a Objeto engloba todos
os conceitos do paradigma orientado a objeto:
Classe, Objeto
Abstração, Encapsulamento
Herança, Polimorfismo etc.
Modelo de dados OO
Modelos de Dados
59
Os modelos de dados podem ser categorizados da seguinte forma:
Nível Conceitual
É o nível de abstração mais alto onde os conceitos são próximos ao modo como os
usuários percebem os dados. Preocupa-se com as entidades, os objetos do problema
Nível Lógico
É o nível de abstração intermediário, onde os conceitos identificados são representados
através de estruturas lógicas
Nível Físico
É o nível que se preocupa com o armazenamento dos dados e as estruturas físicas
relacionadas
Os níveis de banco de dados
Aula 7
Independência de Dados
61
Três importantes características da abordagem de Banco de
Dados são:
Separação entre programa e dados
Suporte a múltiplas visões dos dados
Uso do catálogo para armazenar a descrição do Banco de Dados
Estas três características são conseguidas graças a arquitetura
dos Sistemas de Bancos de Dados, chamada de arquitetura de
três esquemas
Independência de Dados
62
Esquema Conceitual
Esquema Interno
NÍVEL
CONCEITUAL
NÍVEL
INTERNO
Visão
Externa A
Mapeamento
Externo/Conceitual
Usuários
Finais
Banco de Dados
Visão
Externa B
Visão
Externa N..
.NÍVEL
EXTERNO
Mapeamento
Conceitual/Interno
Independência de Dados
63
Estes 3 esquemas são apenas descrições dos dados
Uma requisição ao dado nesta arquitetura segue o caminho:
Esquema externo → Esquema conceitual → Esquema interno
Níveis X Modelos
Nível Externo → Modelo de Dados de Alto Nível ou Implementação
Nível Conceitual → Modelo de Dados de Alto Nível ou Implementação
Nível Interno → Modelo de Dados Físico
Independência de Dados
64
A arquitetura mostrada viabiliza a independência dos dados porque é
possível modificar um nível sem afetar os níveis acima
Existem 2 tipos de independência de dados:
Independência lógica: alteração no esquema conceitual não altera os programas
Independência física: alteração no esquema interno não altera o esquema
conceitual e os programas
Modelagem de Dados
65
O desenvolvimento de sistemas envolve:
Criação de interfaces gráficas
Criação de módulos com a lógica de negócio
Definição e construção do Banco de Dados
Os Banco de Dados preocupam-se com os dados (parte
estática) e os programas realizam o processamento (parte
dinâmica)
Modelagem de Dados
Profa. Elcione66
Profa. Elcione 67
Abstração de Dados
O Maior propósito dos Sistemas de BD é o de oferecer aos usuários
uma visão abstrata dos dados. Isto é, o sistema esconde certos
detalhes de como o dado é armazenado e mantido. A complexidade
está escondida através de diversos níveis de abstração que simplificam
a interação do usuário do Sistema.
Profa. Elcione 68
Abstração de Dados
MundoRealMundo Real
nível conceitual
Modelo Entidade Relacionamento
Modelo Relacional
nível lógico
nível físico
Profa. Elcione 69
Nível Conceitual
É o nível mais alto de abstração, fala de objetos do mundo
real e suas respectivas operações. A ênfase está na
informação e não como ela será implementada.
Exemplo de Nível Conceitual
Profa. Elcione 71
Nível Lógico
É Neste nível de abstração são escolhidas as estruturas
lógicas que representarão os objetos do modelo
conceitual no computador.
Exemplo de Nível ConceitualEstrutura de dados utilizada: Tabelas
Profa. Elcione 73
Nível Físico
É o mais baixo nível de abstração e descreve como os dados
serão armazenados, como deve ser a representação física
das estruturas lógicas definidas no modelo lógico. Especifica-
se também as operações do modelo lógico usando-se a
representação física.
Exemplo de Nível Conceitual
CREATE TABLE Funcionario (
Matricula Integer PRIMARY KEY,
Rua Varchar(50),
Bairro varchar(50),
Telefone varchar(15),
Telefone varchar(15),
NroDepto Texto(1)
)
CREATE TABLE Departamento (
NroDepto Texto(1) PRIMARY KEY
)
CREATE TABLE Dependente (
Cod_Dependente Texto(1) PRIMARY KEY,
Teste Texto(1),
Matricula Integer,
FOREIGN KEY(Matricula) REFERENCES Funcionario (Matricula)
)
ALTER TABLE Funcionario ADD FOREIGN KEY(NroDepto) REFERENCES Departamento (NroDepto)
O Modelo Entidade
Relacionamento
Aula 8
MER
• A técnica de modelagem mais usada é a Abordagem
Entidade-Relacionamento (ER). O modelo de dados é
representado graficamente atraves de um Diagrama de
Entidade-Relacionamento (DER).
• Essa abordagem foi criada por Peter Chen (1976) é
considerada como um padrão para a modelagem
conceitual.
BANCO DE DADOS
“É uma coleção de dados inter-relacionados, representando
informações sobre um domínio específico (conceito geral)
Representa aspectos do mundo real. Mudanças no mundo
real são refletidas no BD
É uma coleção lógica e coerente de dados com
relacionamentos intrínsecos;
É projetado, construído, e mantido para uma proposta
específica. É direcionado a um grupo de usuários/aplicação
Pode ter qualquer tamanho/complexidade
MODELOS DE DADOS
Mundo Real Solução
Modelo é a representação abstrata e simplificada de uma
determinada realidade. É um conjunto de conceitos para
descrever os dados, de restrições e relacionamento entre
esses dados.
MODELOS DE DADOS
Modelo do
sistema na
mente do
cliente
Modelo de Entidade do
Modelo do cliente
Representação Tabular
do modelo
de entidadeServer
Tabelas no disco
Níveis de Abstração de BD
Modelo Entidade Relacionamento
Modelo Relacional-Objeto Relacional
Mundo Real
Nível Conceitual
nível lógico
nível físico
Modelo Entidade Relacionamento - MER
Proporciona uma visão lógica de alto nível dos dados
É uma descrição abstrata de uma porção do mundo real
Todos os dados são visualizados como fatos específicos sobre
entidades, relacionamentos e atributos
Através do MER, podemos ter uma fotografia do sistema
As entidades, relacionamentos e atributos descrevem as
regras de negócio da empresa
Modelo Entidade Relacionamento - MER
Modelo Entidade-Relacionamento (MER) Original:
– Fases do Projeto de Bases de Dados
– Definição e Objetivo do Modelo ER
– Entidades e Conjuntos-Entidade
– Atributos e Domínio de um Atributo
– Relacionamentos e Conjuntos-Relacionamento
– Projeto de Chaves
– Grau de um Relacionamento
– Restrições de Cardinalidade e Integridade Referencial
Modelo Entidade Relacionamento - MER
Extensões e Variações do MER :
– Agregação
– Generalização/Especialização
– Notação, Variações e Exemplos
– Dicas para Elaboração de Modelos E-R
Modelo Entidade Relacionamento - MER
Definição: modelo baseado na percepção do mundo real que consiste em um conjunto de objetos básicos, chamados entidades, e nos relacionamentos entre esses objetos.
Objetivo: facilitar o projeto de banco de dados, possibilitando especificar a estrutura lógica geral.
Modelo Entidade Relacionamento -
MER
FUNCIONÁRIO
DEPENDENTE
PROJETO
DEPARTAMENTOendereço
nome
número
salário
supervisor
1 N
possuir
trabalhar
gerenciar
N
1
horas
DataIni
nome
número
1
participar
N
1
DataNiver
nome
N
parentesco
controlar
nome
número
1
N
1
N
localização
Relacionamento
Entidade
Atributo
Modelo Entidade Relacionamento - Convenções
Entidade Fraca
Entidade
Relacionamento
Atributo
Atributo Identificador
Atributo Multivalorado
Relacionamento Identificador
z
Modelo Entidade Relacionamento -
Convenções
Atributo Composto
...
Atributo Derivado
Participação total de E2 em R
Ex: Agência e Conta CorrenteE1 R E2
Cardinalidade 1:N para E1:E2 em RE1 R E21 N
Constraint (min,max) de E em RR E2(min,max)E1
FUNCIONARIO
STATUS
CLIENTE
CLIENTE
ATOR
GENERO
FILME
FITA
endereçonome
código
salário
supervisor
4,N
1,1
possui
aluguelpossui
classifica
possui1,1
código descrição
0,N
nome endereço
1,N
1,N
dt aluguel
dt prev ret
dt retornovalor
previsto
1,N
multa
valor pago
*
2,N 1,N
1,1
1,N
0,N
1,1
código nome
principal
código descrição
nome
qtde fitas
preço
condição
código
código
código
Componentes do MER
ENTIDADE
Qualquer coisa para a qual desejamos guardar informação
Conjunto de objetos individuais chamados instâncias
Uma instância deve ter uma identidade distinta de todas as
outras
Tipos de entidade
INDEPENDENTES (FORTES)
entidade que existe por si só
NOTAÇÃO : retângulo
RESTRIÇÕES
Não pode existir duas entidades no mesmo model
DICA:
Geralmente tem mais de um atributo
O nome = substantivo
Tipos de entidade
DEPENDENTES(FRACAS)
Entidades que dependem de outras para sua existência
(dependência por existência)
Entidades que dependem de outras para sua identificação
(dependência por identificação)
NOTAÇÃO: Retângulo duplo
RESTRIÇÕES
Só existe enquanto a entidade forte existir
Entidades Fortes e Fracas
Funcionário
Dependente
Departamento
EndereçoNome
IdFunc
Salário
Tem
Trabalho1
Nome
NomeIdDeptoP-20
1 N
Entidade
Independente
Entidade
Dependente
MER - Atributos
Atributo- serve para qualificar a entidade
Simples
Multivalorado
Determinante ou Identificador
Composto
Derivado ou Calculado
Simples só pode assumir um único valor elementar
Exemplo: Nome, Idade, Data de Nascimento
Notação
IdadeNumRua
CEP
Endereço
Fone
Nome
PESSOAS
MER - Atributos
MER - Atributos
REGRAS
Começar o nome do atributo com uma inicial maiúscula e estar no singular
Distinção entre conjunto de entidades e atributo. Exemplo: AUTOR para livro de uma biblioteca
AUTOR para uma editora
Se um conjunto de entidades tem um único atributo, provavelmente aquele conjunto é atributo de um outro conjunto de entidades.
Cada atributo deve ocorrer uma única vez em apenas um conjunto de entidades.
Desconfiar da modelagem de um conjunto de entidades que tem um só atributo. Provavelmente, ele é um atributo de outro conjunto.
MER - Atributos
Multivalorado só pode assumir mais de uma valor
Exemplo: Fones
Notação
IdadeNum
Rua
CEP
Endereço
Nome
Fones
PESSOAS
MER - Atributos
Determinante Identifica unicamente uma entidade da outra
Lembra o conceito de Chave
Notação
IdadeNumRua
CEP
Endereço
Nome
Fones
PESSOASCódigo
MER - Atributos
Determinante Identifica unicamente uma entidade da outra
Lembra o conceito de Chave
Notação
FonesIdade
NumRua
CEP
Endereç
o
Nome
PESSOASCPF
IdPessoa
MER - Atributos
Composto Pode ser dividido em sub atributos Exemplo: Endereço
NotaçãoIdade NumRua
CEP
Endereço
Nome
Fones
PESSOASCódigo
MER - Atributos
Derivado ou Calculado Seu valor é gerado a partir do valor de outro
atributo Exemplo: Data de Nascimento e Idade
Notação
PACIENTES
IdadeDataNasc Nome
Sexo
*
Componentes do MER
RELACIONAMENTO
É uma ligação entre duas ou mais entidades
É representado por um losango
RESTRIÇÕES
Não se pode repetir nomes de relacionamentos
O relacionamento deve ligar, no mínimo, duas entidades
xx
Tipos de relacionamentos
DEPENDENTES (FORTES)
o conceito de entidade dependente e independente é
reforçado pelo tipo de relacionamento
quando se quer que uma entidade se torne dependente,
cria-se um relacionamento identificador
INDEPENDENTES (FRACOS)
Conecta entidades fortes e fracas
Relacionamento Fraco e Forte
Funcionário
Dependente
Departamento
EndereçoNome
Código
Salário
Supervisor
1
N
Tem
Trabalho1
Nome
NomeCódigo
Código
N
1 NÉ de
É C
om
posto
de
Trabalha no
possui
Entidade
Independente
Identificador
Entidade
Dependente
Não IdentificadorPapel do
Relacionamento
• É a propriedade do relacionamento que define
exatamente com quantas instâncias uma entidade de um
conjunto pode se relacionar com outras entidades de
outro conjunto;
• PODE SER:
• um para um
• um para muitos; e
• muitos para muitos
Cardinalidades do Relacionamento
Cardinalidade 1:N
E1
E2
E3
.
.
.
En
M1
M2
M3
.
.
.
Mn
1 : 1Médicos Especialidades
MÉDICOS ESPECIALIDADESpossuem1 1
Pós-Graduação em Projeto e
Administração de Banco de Dados-2006
CARDINALIDADE 1:N
E1
E2
E3
E4
.
.
.
En
M1
M2
M3
.
.
.
Mn
1 : NMédicos Especialidades
MÉDICOS ESPECIALIDADESpossuem1 N
P1
P2
P3
P4
.
.
.
Pn
M1
M2
M3
M4
.
.
.
Mn
N : N
Médicos Pacientes
MÉDICOS PACIENTESconsultasN N
MÉDICOS ESPECIALIDADESpossuem(0,1) (1,N)
Cardinalidade 1:N
• É a propriedade do relacionamento que define a
obrigatoriedade ou não de uma entidade participar (se
relacionar) de um relacionamento.
•Pode ser:
• total (obrigatória) ou
• parcial (opcional)
Participação do relacionamento
Pós-Graduação em Projeto e
Administração de Banco de Dados-2006
Participação do relacionamento: Total e Parcial
MÉDICOS PACIENTESconsultasN N
Auto Relacionamento
Situação em que uma entidade se relaciona com outra do
mesmo conjunto
Funcionário
EndereçoNome
Código
Salário
Supervisão
1 N
Supervisor Supervisionado
Grau do Relacionamento
VENDEDORES vendas PRODUTOSN N
CLIENTES
N
É dado pelo total de entidades envolvidas no relacionamento
• Binário, ternário, etc.
MÉDICOS PACIENTESconsultasN N
Relacionamentos n-ÁRIOS
VENDEDORES vendas PRODUTOSN N
CLIENTES
N
• É definido pela regra de negócio
VENDEDORES PRODUTOSvendasN N
CLIENTESvendem compram
N
N N
N
• Supondo que um médico faz consultas a
pacientes.
MÉDICOS PACIENTESconsultasN N
Relacionamentos n-ÁRIOS
• Supondo também que nessas consultas o médico pode fazer
solicitações de exames.
•Vários binários = inconsistência
MÉDICOS PACIENTESconsultasN N
EXAMESsolicita faz
N
N N
N
Agregação
• O ternário obriga que em toda consulta o médico solicite um
exame.
MÉDICOS PACIENTESconsultasN N
EXAMES
N
Agregação
• O MER não permite relacionamento entre
relacionamento
MÉDICOS PACIENTESconsultasN N
EXAMES
N
solicita
N
Agregação
• O melhor modo para representar a situação anterior é
usando a agregação.
• Na agregação não existe obrigatoriedade na entrevista
para encaminhar um candidato a um cargo
Agregação
• A agregação é a abstração que transforma um
relacionamento em uma entidade;
• Evita inconsistências
• Só pode ser em relacionamentos de cardinalidade N:N
• Não possui atributos
Agregação
Agregação
MÉDICOS PACIENTESconsultasN N
EXAMES
solicitações
N
N
MÉDICOS PACIENTESconsultasN N
EXAMES
solicitações
N
N
O MER - Especiliazação
Aula 10
• É a forma de agrupar um conjunto de entidades que compartilham
características comuns.
ESPECIALISTA MESTRE
IdTitulação Descrição
TITULAÇÕES
PESSOAS
FÍSICAS
PESSOAS
JURÍDICAS
IdPessoa Endereço
PESSOAS
Nome
CPF CGC
DtaNasc NomeFantasia
Herança: Generalização e
sobreposição
• É a forma de agrupar um conjunto de entidades que compartilham
características comuns.
PESSOAS
FÍSICAS
PESSOAS
JURÍDICAS
IdPessoa Diagnóstico
PESSOAS
Nome
CPF CGC
DtaNasc NomeFantasia
ESPECIALISTA MESTRE
IdTitulação Descrição
TITULAÇÕES
Herança: Generalização e
sobreposição
Herança: Generalização e
sobreposição• É a forma de agrupar um conjunto de entidades quecompartilham características comuns. Restrições:
d: mutuamente exclusivo - quando uma instância da entidadegeneralização só pode estar em uma entidade deespecialização
o: sobrepostos - quando uma instância da entidadegeneralização pode estar em duas ou mais entidade deespecialização
total: cada entidade da generalização deve pertencer a pelomenos uma entidade de especialização
parcial: cada entidade da generalização pode ou não pertencera uma entidade de especialização
Funcionário
EndereçoNome
Código
SexoTipo
Consultor
Horas Tx hora
Terceiro
Salário
d
Especialização
Generalização
Total
Herança: Generalização e
sobreposição
Funcionário
EndereçoNome
Código
SexoTipo
Consultor
Horas Tx hora
Terceiro
Salário
0
Especialização
Generalização
Parcial
Herança: Generalização e
sobreposição
Pós-Graduação em Projeto e
Administração de Banco de Dados-2006
HERANÇA: GENERALIZAÇÃO E ESPECIALIZAÇÃO
FUNCIONARIO
nomecódigo endereço
sexo
CONSULTOR
horas tx hora
tipo
especialização
generalização
mostra a direção do
relacionamento
superclasse/subclasse
Medologia para projetos de de banco de
dados
• Requerimentos e análise
• Projeto conceitual do banco de dados
• Escolha de um SGBD
• Mapeamento do modelo de dados
• Projeto físico do banco de dados
• Implementação e configuração do banco de dados
Exercícios
Uma empresa de TV à cabo necessita informatizar alguns dos seus serviços
de forma a atender as seguintes necessidades: O sistema deverá controlar o
cadastro dos clientes, pacotes (família, adulto, infantil, cinema, etc), da
programação (filmes, horários, etc) e do pagamento de mensalidades.
Cada pacote possui um preço e o cliente pode escolher uma combinação
dos mesmos, podendo mais tarde adicionar mais pacotes se assim o desejar.
O valor de sua mensalidade corresponde ao valor total dos pacotes e seu
vencimento será todos os meses no dia em que comprou o primeiro pacote.
O cliente poderá também escolher a quantidade de tv's para instalação do
cabo, e a cada 2 tv's ele paga um adicional em sua mensalidade.
Cada pacote possui um conjunto de canais exclusivos. Um canal é
identificado por um número e seu nome (33- HBO2, por exemplo). A
programação é composta de todos os filmes que serão exibidos, além de
seus horários e datas de exibição. Vale ressaltar que, um filme pode ser
exibido em mais de um horário e em várias datas diferentes.
Uma empresa de TV à cabo necessita informatizar alguns dos seus
serviços de forma a atender as seguintes necessidades: O sistema deverá
controlar o cadastro dos clientes, pacotes (família, adulto, infantil, cinema,
etc), da programação (filmes, horários, etc) e do pagamento de
mensalidades.
Cada pacote possui um preço e o cliente pode escolher uma combinação
dos mesmos, podendo mais tarde adicionar mais pacotes se assim o
desejar. O valor de sua mensalidade corresponde ao valor total dos
pacotes e seu vencimento será todos os meses no dia em que comprou o
primeiro pacote. O cliente poderá também escolher a quantidade de tv's
para instalação do cabo, e a cada 2 tv's ele paga um adicional em sua
mensalidade.
Cada pacote possui um conjunto de canais exclusivos. Um canal é
identificado por um número e seu nome (33- HBO2, por exemplo). A
programação é composta de todos os filmes que serão exibidos, além de
seus horários e datas de exibição. Vale ressaltar que, um filme pode ser
exibido em mais de um horário e em várias datas diferentes.
Uma loja de CDs deseja informatizar suas transações de venda e de aluguel de títulos,
mantendo cadastros atualizados de clientes, balconistas, títulos, dos distribuidores que os
fornecem e dos gêneros musicais em que estes se classificam.
Entre o cliente e o balconista, as vendas e locações de títulos de CD devem ser
armazenadas na base de dados juntamente com a data em que houve a transação (data
de venda e data de locação, respectivamente). Somente para a locação, o sistema deverá
também armazenar a data prevista para a devolução do titulo alugado (data de
devolução). É de interesse da loja, saber, através das informações armazenadas na base de
dados, que balconista vendeu ou alugou determinado titulo para qual cliente.
Eventualmente, um cliente também pode solicitar a encomenda de um CD que
não esteja disponível na loja. As encomendas feitas desta forma são pedidas
diretamente para o balconista, mas para a loja somente é interessante saber
qual cliente encomendou determinado titulo e em que data (data da
encomenda). Note que um cliente pode encomendar vários títulos e um título
pode ser encomendado por vários clientes. Normalmente, o processo de
encomenda é seguido por uma transação de venda (mas nunca de locação),
caso o(s) pedido(s) do cliente seja(m) atendido(s).
Cada título de CD é classificado somente num gênero musical(pelo menos, aquele gênero que predomina) dentre os váriosque a base de dados mantêm como disponíveis na loja. Alémdisso, cada título de CD é fornecido por apenas uma dentre asvárias distribuidoras com a qual a loja obedece a contratos derevenda. Para cada distribuidora é imprescindível, além deoutras informações, o nome do vendedor intermediário e dostelefones para contato.
Um título pode estar disponível somente para venda ousomente para locação. E não se esqueça que, somente quandoda disponibilidade de um CD ser para venda, o seu preçounitário, a quantidade de unidades vendidas no ato datransação e a sua quantidade, remanescente no estoque, sãoinformações importantíssimas, além do que, no caso de umtítulo disponível exclusivamente para locação, a sua venda nãoé permitida e vice-versa.
MER
• O modelo Entidade-Relacionamento (E-R) tempor base que o mundo real é formado por umconjunto de objetos chamados de entidades epelo conjunto dos relacionamentos entreesses objetos;
• O objetivo do modelo E-R é representar aestrutura lógica do banco de dados de umaempresa, especificando o esquema daempresa, quais as entidades e como elas serelacionam entre si.
MER O modelo E-R é chamado de Modelagem
Conceitual, cujo objetivo é representar de uma
forma abstrata, independente da
implementação em computador, os dados que
serão armazenados no banco de dados.
MER
• Conceitos Básicos:
– O modelo E-R trabalha com alguns conceitos básicos:
Atributos
Conjuntos de Entidade
Conjuntos de Relacionamento
MER
Atributos:
Simples e Compostos
Monovalorados e Multivalorados
Identificador
Derivados
Atributos Simples
São de uso comum para uma entidade, só possui
uma palavra. Ex: Nome, Idade.
Representação Atributo simples
Atributo Composto
Este tipo de atributo possui “sub- atributos” em sua
nomenclatura que podem ou não ser do mesmo tipo
os quais são agregados a ele no mundo real Ex: O
atributo endereço temos os “sub- atributos”, Rua, Nº da
casa, bairro, cidade, CEP, etc.
Endereço
CEP
Nº da Casa
Rua
Atributo Multivalorado
Possui vários valores dentro de uma único atributo,
mais todos os demais valores têm que ser do
mesmo tipo.
Ex: Telefones – Celular (92) 8175-1711, Residencial (92)
3671-9434, Comercial (92) 3614-9936
Representação Atributo
Multivalorado
Atributos Especiais
(Atributo Identificador)
Ele identifica a principal característica da entidade.
Ex: Entidade Homem – Identificador Nome
Entidade Aluno - Identificador Matricula
Representações Atributo Identificador
Conceituando atributo MER
Nome
Sócio
Endereco
Cod_Socio
Os atributos não são representados
graficamente, para não
sobrecarregar os diagramas.
Quando é utilizado um software
para a construção de modelos ER,
o software armazena a lista de
atributos de cada entidade em um
“Dicionário de Dados”.
Modelagem E-R
Empregado Dependente
Cod_Emp
Nome
(1,1)
(0,n)
Num_Seq
Nome
Conjunto de Entidades
Uma entidade é uma “coisa” ou um “objeto” nomundo real que pode ser identificada de formaúnica em relação aos outros objetos;
Um conjunto de Entidades é um conjunto queabrange entidades de mesmo tipo quecompartilham as mesmas propriedades:atributos.
representação de um objeto do mundo real doqual se deseja manter informações
Objetos concretos (pessoa, automóvel) ouabstrato (departamento, projeto)
Representação de Entidade
Empregado Departamento
Sócios Shows
Conjunto de Relacionamentos
Um relacionamento é uma associação entre umaou várias entidades (objetos da realidade)
Ex. um relacionamento entre um sócio “João” com o show “S-15”.
Esse relacionamento especifica que o sócio “João”compareceu ao show que foi designado com onumero “S-15”.
Um conjunto de relacionamentos é um conjuntode relacionamentos de mesmo tipo.
Representação de Relacionamentos
Sócios Shows Participa
Empregado DepartamentoTrabalha
Auto-Relacionamento
Ocorre quando uma entidade se associa a
outra do mesmo tipo.
esposamarido
Pessoa
Casamento
O MER - Cardinalidades
Aula 9
• A função que uma entidade desempenha em umrelacionamento é chamada Papel;
• Pode ocorrer de um mesmo conjunto de entidadesparticipar de um conjunto de relacionamentos mais deuma vez em diferentes papeis.
• O número de conjuntos de entidades que participa de umconjunto de relacionamento é também o grau desseconjunto de relacionamento. Um conjunto derelacionamento binário é de grau dois; umrelacionamento ternário é de grau três.
Mapeamento de Restrições
O esquema de E-R de uma empresa pode definircertas restrições, as quais o conteúdo dobanco de dados deve respeitar.
Isso é feito utilizando o Mapeamento deCardinalidade
Mapeamento de Cardinalidade
Expressa o número de entidades as quais outra
entidade pode estar associada via um conjunto
de relacionamentos.
Cardinalidade de Relacionamentos
Cardinalidade máxima: indica a quantidade
máxima de ocorrências de entidades que
podem estar associadas a uma ocorrência da
outra entidade (1 ou n).
Ex.: A entidade Empregado tem cardinalidade máxima 1 no
relacionamento Trabalha: uma ocorrência de Empregado
pode estar associada a no máximo uma ocorrência de
Departamento, ou em outros termos um empregado pode
estar trabalhando somente em um departamento.
A entidade Departamento tem cardinalidade máxima de
120 no relacionamento Trabalha: uma ocorrência de
Departamento pode esta associada a no máximo 120 de
Empregado, isto é, um departamento pode ter no máximo
120 empregados trabalhando nele.
Cardinalidade de Relacionamentos
• Duas cardinalidades máximas são relevantes:
– A cardinalidade máxima 1
– A cardinalidade máxima “muitos” representada
pela letra n
Empregado DepartamentoTrabalhan 1
Ocorrência
referente a
departamento
Ocorrência
referente a
empregado
Cardinalidade de Relacionamentos
Cardinalidade Mínima: especifica se a participação detodas as ocorrências das entidades no relacionamento éobrigatória ou opcional.
Em um projeto de BD é usada somente duas cardinalidadesmínimas: a cardinalidade mínima 0 e a cardinalidade mínima1.
A cardinalidade mínima 1 recebe a denominação de“associação obrigatória”.
A cardinalidade mínima 0 recebe a denominação de“associação opcional”.
A cardinalidade mínima em um Diagrama é anotada junto acardinalidade máxima.
Cardinalidade Mínima
Empregado Mesaalocado
(1,0 ) (1,1 )
Mapeamento de Cardinalidade
• Para um conjunto de relacionamentos R
binário entre os conjuntos de entidades A e B,
o mapeamento das cardinalidades deve seguir
uma das instruções abaixo:
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.
a1
a2
a3
a4
b1
b2
b3
b4
Um para muitos – 1:NUma entidade em A está associada a várias entidades em B.
Uma entidade em B, entretanto, deve estar associada no
máximo a uma entidade em A.
a1
a2
b1
b2
b3
b4
Muitos para muitos – N:N ou M:N
• Uma entidade em A está associada a qualquer
número de entidades em B e uma entidade em B
está associada a um número qualquer de
entidades em A.
a1
a2
a3
a4
b1
b2
b3
b4
• Toda a estrutura lógica do banco de dados é expressa
graficamente pelo diagrama de E-R.
• Os principais componentes de um E-R:
– Retângulos – representam os conjuntos de entidades;
– Elipses – representam os atributos;
– Losangos – representam os conjuntos de relacionamentos;
– Linhas – unem os atributos aos conjuntos de entidades e os
conjuntos de entidades aos conjuntos de relacionamentos;
– Elipses duplas – atributos multivalorados.
Diagrama Entidade Relacionamento
Engenharia de Informações
• O que foi apresentado até agora foi utilizado a
notação do Peter Chen.
• Com a evolução e a criação de ferramentas
CASE, foram criadas outros tipos de notação.
• Engenharia de Informações foi criado na
década de 80 por James Martin.
Modelagem E-R – James Martin
Exemplo de Modelagem, onde:
= muitos
= um
= a ocorrência do relacionamento é opcional;
= a ocorrência do relacionamento é obrigatória;
Empregado Departamento
Peter Chen X James Martin
Empregado Departamento
Empregado DepartamentoTrabalha(1,1) (0,n)
Modelagem E-R
Empregado
Dependente
Representação de uma entidade Fraca
Empregado
Dependente
Modelagem E-R – James Martin
• As principais diferenças entre as notações:
Os relacionamentos são representados apenas por
uma linha que une as duas entidades;
Somente relacionamentos binários;
A notação de cardinalidade máxima e mínima é
gráfica, sendo assim: o símbolo mais próximo ao
retângulo é a representação da cardinalidade
máxima e o mais distante a cardinalidade mínima.
Associações de “Muitos para Muitos”
Advogado Processo
Modelagem E-R
TáxiMotorista
Associações de “Um para Um”
Estado Cidade
Associações de “Um para Muitos”
Entidade Associativa
Em um banco de dados não é possível implementar um
relacionamento
M:N, sendo assim foi criado na modelagem a Entidade
Associativa.
Entidade Associativa é a associação entre uma entidade e um
relacionamento, ou a associação entre dois relacionamentos.
Advogado
Processo/
Advogado
Processo
O Modelo Relacional
Aula 10
Linguagens de Banco de Dados
171
As linguagens de Banco de Dados são declarativas
A DDL permite a definição da estrutura e dos esquemas em um Banco de
Dados
A DML permite a inserção, atualização, remoção e consulta sob os dados
Os SGBDs possuem um compilador cuja função é validar os comandos e
repassá-los para processamento
Comandos DMLs são utilizados em conjunto com linguagens de objetivo
geral como C ou Java, por exemplo