Tecnologias e Linguagens
Tecnologias e Linguagens
para Banco de Dados
para Banco de Dados
Prof. Bruno Guedes
Prof. Bruno Guedes
E
E--mailmail: brunofguedes@gmail.com: brunofguedes@gmail.com
Bibliografia Sugerida
Bibliografia Sugerida
Introdução aos Sistemas de Banco de Dados. 8.ed. Autor: C. J. Date
Editora: Campus
Sistema de Banco de Dados. 3.ed.
Autor: A. Silberschatz, H. F. Korth, S. Sudarshan, Editora: Makroon Books
Banco de Dados – Fundamentos, Projetos e Implementação. 6.ed. Autor: David M.Kroenke
Banco de Dados
Banco de Dados –
–
Definiç
Defini
ç
ões
ões
Conjunto de dados inter-relacionais
Conjuntos de registros dispostos em
estrutura regular que possibilita a
reorganização dos mesmos e produção
de informação
.
Ex: Fichas de Biblioteca; Agenda de Telefones
Banco de Dados
Banco de Dados
-
-
Defini
Defini
ç
ç
ão Geral
ão Geral
Banco de Dados: Coleção de dados relacionados;
Dados: Valor de um campo armazenado,
matéria-prima para obtenção de informação;
Banco de Dados
Banco de Dados
-
-
Propriedades
Propriedades
• Um banco de dados é uma coleção de dados logicamente relacionados, com algum significado. Associações aleatórias de dados não podem ser chamadas de banco de dados;
• Um banco de dados é projetado, construído e preenchido (instanciado) com dados para um propósito específico. Ele tem um grupo de usuários e algumas aplicações pré-concebidas para atendê-los;
• Um banco de dados representa algum aspecto do mundo real, algumas vezes chamado de “mini-mundo”. Mudanças no mini-mundo provocam mudanças no banco de dados.
Sistemas Baseados em
Sistemas Baseados em
Processamento de Arquivos
Processamento de Arquivos
Sistema de Pagamento
Sistema de Controle de Projetos
Funcionários
Projetos Funcionários
Sistemas Baseados em
Sistemas Baseados em
Processamento de Arquivos
Processamento de Arquivos
Problemas:
1 – Redundância e Inconsistência nos dados. 2 – Dificuldade de Acesso.
3 – Segurança de Acesso.
Sistema de Pagamento Sistema de Controle de Projetos
•Definição: Um Sistema Gerenciador de Banco de Dados (SGBD) é uma coleção de programas que permitem aos usuários criarem e manipularem um banco de dados.
Sistemas Gerenciadores de
Sistemas Gerenciadores de
Banco de Dados
Banco de Dados
Sistema Gerenciador de Banco de Dados
Funcionários
Sistemas Gerenciadores de
Sistemas Gerenciadores de
Banco de Dados
Banco de Dados
Um SGBD é, assim, um sistema de software de propósito geral que facilita o processo de definir, construir e
manipular bancos de dados de diversas aplicações.
Definiruma base de dados envolve a especificação de tipos de dados a serem armazenados na base de dados.
Construiruma base de dados é o processo de armazenar os dados em algum meio que seja controlado pelo SGBD.
Manipularuma base de dados indica a utilização de funções como a de consulta, para recuperar dados específicos, modificação da base de dados para refletir mudanças no mini-mundo (inserções, atualizações e remoções), e geração de relatórios
.
Sistemas Gerenciadores de
Sistemas Gerenciadores de
Banco de Dados
Banco de Dados
Componentes:
1 – Dados: dados dos usuários; Metadados (Dados sobre dado) 2 – Hardware: Conjunto de discos, memória, processadores, etc. 3 – Software: SGBD.
Profissionais e Atividades envolvidas
em um SGBD
•Administrador do Banco de Dados:em qualquer
organização onde muitas pessoas compartilham muitos recursos, existe a necessidade de um administrador chefe para supervisionar e gerenciar estes recursos. Num
ambiente de banco de dados, o recurso primário é a próprio banco de dados e os recursos secundários são o próprio SGBD e softwares relacionados. A administração desses recursos é de responsabilidade do DBA (“Database
Administrator”). O DBA é responsável por autorizar acesso ao banco de dados e coordenar e monitorar seu uso. O DBA é responsável por problemas, tais como, quebra de segurança ou baixo desempenho. Em grandes
organizações, o DBA é auxiliado por técnicos;
Profissionais e Atividades envolvidas
em um SGBD
•Analistas de Sistemas e Programadores de Aplicação: 1) Analistas de sistemasdeterminam os requisitos de usuários finais, especialmente dos usuários comuns, e desenvolvem especificações das transações para atender a estes requisitos;
2) Programadores de aplicações implementam estas especificações produzindo programas e, então, testam, depuram, documentam e mantêm estes programas.
OBS:Analistas e programadores devem estar
Profissionais e Atividades envolvidas
em um SGBD
•Usuários Finais: existem profissionais que precisam ter acesso à base de dados para consultar, modificar e gerar relatórios. A base de dados existe para estes usuários. Existem algumas categorias de usuários finais:
1) Usuários ocasionais:ocasionalmente fazem acesso à base de dados, mas eles podem necessitar de diferentes informações a cada vez que fazem acesso. Eles podem usar uma linguagem de consulta sofisticada para
especificar suas requisições e são, tipicamente, gerentes de médio ou alto-nível;
Profissionais e Atividades envolvidas
em um SGBD
2) Usuários comuns ou paramétricos: estes usuários realizam operações padrões de consultas e atualizações, chamadas TRANSAÇÕES PERMITIDAS, que foram cuidadosamente programadas e testadas. Estes usuários constantemente realizam recuperações e modificações na base de dados;
Modelos de Dados
•Uma das características fundamentais da abordagem de banco de dados é que ela fornece algum nível de abstração de dados, pela omissão de detalhes de armazenamento de dados que não são necessários para a maioria dos
usuários.
•O modelo de dados é a principal ferramenta que fornece esta abstração.
•Um Modelo de Dados é um conjunto de conceitos que podem ser usados para descrever a estrutura de um banco de dados.
•Por estrutura de um banco de dados entende-se os tipos de dados, relacionamentos e restrições pertinentes aos dados.
Modelos de Dados
Modelo Relacional
• A estrutura fundamental do modelo relacional é a relação (tabela).
•Uma relação é constituída por um ou mais atributos (campos) que traduzem o tipo de dados a armazenar.
•Cada instância do esquema (linha) é chamada de tupla (registro).
•O modelo relacional não tem caminhos pré-definidos para se fazer acesso aos dados como nos modelos que o precederam.
•Porém, para trabalhar com essas tabelas, algumas restrições precisaram ser impostas para evitar aspectos indesejáveis, como: Repetição de informação, incapacidade de representar parte da informação e perda de informação.
Modelos de Dados
Modelo Orientado a Objetos
•A motivação para seu surgimento está em função dos limites de armazenamento e representação semântica impostas no modelo relacional.
•Um exemplo é o sistema de informações geográficas (SIG), que são mais facilmente construídos usando tipos complexos de dados.
•Quando os bancos de dados orientados a objetos foram introduzidos, algumas das falhas perceptíveis do modelo relacional pareceram ter sido solucionadas com esta tecnologia e acreditava-se que tais bancos de dados ganhariam grande parcela do mercado.
•Hoje, porém, acredita-se que os Bancos de Dados Orientados a Objetos serão usados em aplicações especializadas, enquanto os sistemas relacionais continuarão a sustentar os negócios tradicionais, onde as estruturas de dados baseadas em relações são suficientes.
Modelos de Dados
Modelo Conceitual Realidade
Modelo Lógico Modelo Físico
B. D
Descreve a realidade, capturando entidades e suas associações.
Descreve a implementação do modelo conceitual de acordo com o tipo de SGBD (Relacional; Orientado a Objetos; etc)
Modelo Conceitual
•
É um processo de análise.
•Descreve a estrutura de todo o banco de dados.
•É uma descrição global do banco de dados, que
omite detalhes da estrutura de armazenamento
físico e se concentra na descrição de entidades,
tipos de dados, relacionamentos e restrições.
•Para obtenção desse modelo, utilizamos o M.E.R
(Modelo Entidade Relacionamento).
• O M.E.R é constituído de entidades,
relacionamentos e atributos.
Modelo Entidade Relacionamento (MER)
•
Entidade:
é tudo aquilo que se deseja guardar
dados. São descritos pelos seus atributos.
•
Atributo:
São os campos as características.
OBS:
Os atributos que identificam unicamente
cada ocorrência de uma entidade é chamado de
atributo chave ou chave primária.
EX.:
Cliente
Código Nome
Endereço telefone
Modelo Entidade Relacionamento (MER)
Tipos Atributos:
1. Simples ou atômicos:
São aqueles que não
podem ser divididos. Ex.: Código.
2. Compostos:
São aqueles formados pela
combinação de atributos simples. Ex.:
Endereço (rua + número + bairro + ...).
3. Multivalorados:
São aqueles que podem
apresentar mais de um valor. Ex.: Telefone.
Modelo Entidade Relacionamento (MER)
Relacionamentos:
É uma associação entre
entidades. Assim como a entidade, os
relacionamentos podem ter atributos.
EX.: Cliente
Matrícula
Entidades
Cliente
Pedido Conta Faz
Tem
Funcionário Trabalha
Relacionamentos
Nome Cargo
Projeto Horas
Atributos
Código
Modelo Entidade Relacionamento (MER)
Características dos Relacionamentos:
Grau:Especifica a quantidade de entidades presentes no
relacionamento. Podem ser: Binário(2 entidades); Ternário(3
entidades); Auto-relacionamento(1 entidade).
Participação:Especifica de forma quantitativa como uma entidade
se relaciona com ocorrências de outra entidade.
Ex.: Um professor pode lecionar nenhuma ou no máximo 4
disciplinas. Uma disciplina pode ser lecionado por nenhum ou no máximo 2 professores.
Professor 0 : 2 Leciona 0 : 4 Disciplina
OBS:Quando o limite inferior é zero, é dito que a participação da entidade
no relacionamento é opcional. Do contrário a participação é obrigatória ou mandatória.
Limite inferior
Modelo Entidade Relacionamento (MER)
Exercícios:
Estabelecer a participação das entidades nosrelacionamentos abaixo:
Cliente Faz a)
b)
Pedido
Peça Contém Pedido
Projeto Chefia Funcionário c)
d) Projeto Trabalha Funcionário Imóvel Possui Pessoa
Automóvel Possui Pessoa
Aluno Matrícula Disciplina e)
f) g)
Modelo Entidade Relacionamento (MER)
Cardinalidade : É definido pelos limites superiores (máximos) da participação.
Podem ser de 3 tipos:
•1:1 (um para um)
•1:N (um para muitos)
•N:N (muitos para muitos)
A R B
A R B
A R B
1
1
N
1
N
N
Modelo Entidade Relacionamento (MER)
•1:1 (um para um)
Uma ocorrência da entidade A pode se
relacionar com no máximo uma ocorrência da
entidade B, e uma ocorrência da entidade B
pode se relacionar com no máximo uma
ocorrência da entidade A.
A
1
R1
BHomem 1 É casado 1 Mulher
Modelo Entidade Relacionamento (MER)
•1:N (um para muitos)
Uma ocorrência da entidade A pode se
relacionar com mais de uma ocorrência da
entidade B, e uma ocorrência da entidade B
pode se relacionar com no máximo uma
ocorrência da entidade A.
A
1
RN
BDepartamento 1 Trabalha N Funcionário
EX.:
Modelo Entidade Relacionamento (MER)
•N:N (muitos para muitos)
Uma ocorrência da entidade A pode se
relacionar com mais de uma ocorrência da
entidade B, e uma ocorrência da entidade B
pode se relacionar com mais de uma
ocorrência da entidade A.
A
N
RN
BImóvel N possui N Pessoa
Modelo Entidade Relacionamento (MER)
Exercício:
Uma instituição bancária deseja controlar a
movimentação das suas contas correntes. A
instituição possui agências espalhadas por várias
cidades e o seu cadastro contém informações do
código, nome e endereço onde a agência está
localizada. Cadastro de clientes tem armazenado
nome, CPF e endereço de cada cliente. As contas
correntes são identificadas por um código e
fornecem o saldo atualizado das mesmas. Faça
um M.E.R para solução do problema proposto.
Modelo Entidade Relacionamento (MER)
Relacionamentos Especiais:
Relacionamentos não binários
1 – Relacionamento Ternário:Envolve 3 entidades simultaneamente.
Deve ser usado quando é necessário relaciona um par de entidades com uma terceira ao mesmo tempo.
OBS:A participação das 3 entidades é mandatória (obrigatória).
Ex.: Fornecedor N Fornece Peça
Projeto N
N
Agência 1 possui C / C
Cliente N
N a)
Modelo Entidade Relacionamento (MER)
Relacionamentos Especiais:
Relacionamentos não binários
2 – Auto-Relacionamento (Relacionamento Recursivo) :É um
relacionamento entre ocorrências de uma mesma entidade..
Ex.:
Funcionário N Chefia
Disciplina N Pré-requisito
a)
b)
1
N N:N
(muitos para muitos) 1:N
(um para muitos)
Modelo Entidade Relacionamento (MER)
Exercício 1:
Uma empresa de agenciamento de mão de obra pretende informatizar o cadastro de profissionais candidatos a empregos temporários. Pretende construir um banco de dados onde possa manter os dados cadastrais dos profissionais e seus contratos temporários com as
empresas clientes. O profissional é identificado por um nº de controle e além desta identificação ficam registrados nome, endereço, data de nascimento e profissão. Os contratos de mão de obra temporárias são feitos
Modelo Entidade Relacionamento (MER)
Exercício 2:
Certa universidade está desenvolvendo um sistema de
informações para gerenciar os cursos de graduação oferecidos. Esta instituição possui as seguintes características:
a) A universidade possui diversos cursos.
b) Os professores podem lecionar em diversos cursos. c) Os professores podem lecionar várias disciplinas. d) Cada curso possui várias disciplinas.
e) Uma disciplina pode ser ensinada em vários cursos. f) Os alunos podem estar inscritos em somente um curso. g) Os alunos podem se matricular em no máximo 8 disciplinas. h) As disciplinas podem ter pré-requisitos.
i) As disciplinas podem ser ensinadas por vários professores. - Faça o M.E.R para resolução do problema
Modelo Entidade Relacionamento (MER)
Relacionamentos Especiais:
Agregação
• Utilizado para indicar situações onde entidades relacionadas podem ainda se relacionar com outra entidade.
• É recomendado para representar situações onde existe parcialidade na participação entre 3 entidades.
Ex.:
Funcionário alocado
Equipamento Projeto N
a)
b)
usa
Médico atende
Remédio
1:N Paciente
N
receita
1:N 1:N
1:N 0:N
0:N
agregação
Modelo Entidade Relacionamento (MER)
Relacionamentos Especiais:
Generalização / Especialização
• Entidades podem ter superclasses ou supertipos e subclasses ou subtipos.
• A relação entre uma entidade subtipo e uma entidade supertipo é chamada “É um” (ISA).
• A entidade supertipo é uma generalização das entidades subtipos
• As entidades subtipos herdam os atributos da entidade supertipo.
Ex.:
Agência possui
Corrente
1 N Conta
Código Nome
Poupança limite
Data abert.
Número Saldo
Tx-juros
É um
Modelo Entidade Relacionamento (MER)
Exercício :
Derivação do Modelo Conceitual para o
Modelo Lógico
OBJETIVO: Obter um esquema que seja implementável
em um banco de dados.
Funcionário
Matrícula
Nome
Regra 1:
Toda entidade vira uma tabela.
EX.:
Endereço
Funcionário (Matrícula, nome, endereço)
Derivação do Modelo Conceitual para o
Modelo Lógico
Funcionário
Matrícula Nome
Regra 2:
Relacionamentos 1: N
•
O relacionamento 1:N é implementado através da
incorporação da chave primária da entidade pai
(departamento) na entidade filho (funcionário). Esta
chave primária é chamada de chave estrangeira na
outra tabela.
Endereço Departamento
Código Nome
Trabalha
1 N
Derivação do Modelo Conceitual para o
Modelo Lógico
Regra 2:
Relacionamentos 1: N (Continuação)
Funcionário (Matrícula, nome, endereço, Depto) Departamento (Código, nome)
Chave primária
Chave primária Chave estrangeira
Vendas 20 Compras 10 Nome Código 20 YYY Ana 2005 XXX AAA Endereço José Luiz Nome 10 1005 10 1002 Depto Matrícula
OBS:A regra é a mesma no relacionamento 1:1, só que, por não
possuir entidade filho, escolha a chave primária de uma das tabelas e transforme-a em chave estrangeira da outra.
Derivação do Modelo Conceitual para o
Modelo Lógico
Funcionário
Matrícula Nome
Regra 3:
Relacionamentos N: N
•
O relacionamento N:N é implementado através da
criação de uma nova tabela, cujos campos são as
chaves primárias das duas entidades e os atributos
do relacionamento, caso existam.
Endereço Projeto Código Nome Alocado N N EX.:
OBS:A chave primária desta nova tabela é em geral, formada
Derivação do Modelo Conceitual para o
Modelo Lógico
Regra 3:
Relacionamentos N: N (Continuação)
Funcionário (Matrícula, nome, endereço) Projeto (Código, nome)
Chave primária P2 20 P1 10 Nome Código YYY Ana 2005 XXX AAA Endereço José Luiz Nome 1005 1002 Matrícula
Alocado (Projeto, Funcionário, Horas)
4 1002 20 8 4 Horas 2005 1002 Funcionário 10 10 Projeto
Chave primária concatenada
Derivação do Modelo Conceitual para o
Modelo Lógico
Exercício:
•
Construa o modelo lógico, a partir do modelo
conceitual abaixo e depois implemente esse modelo
em um software de banco de dados, como o Access
por exemplo,respeitando os atributos,
relacionamentos e cardinalidade.
Derivação do Modelo Conceitual para o
Modelo Lógico
Matrícula Nome
Auto-Relacionamento:
1: N (Um para Muitos)
•
Aplica-se a mesma regra que usamos para
relacionamentos 1:N.
DT_Nasc EX.:
Funcionário N Chefia
1 30 10/11/1978 Ana 20 03/08/1981 30/07/1987 DT_Nasc José Luiz Nome -30 30 10 Chefia Matrícula Funcionário (Matrícula, Nome, Data Nasc., Chefe)
Modelo Lógico
Chave estrangeira
Derivação do Modelo Conceitual para o
Modelo Lógico
Código
Nome
Auto-Relacionamento:
N: N (Muitos para Muitos)
•
Aplica-se a mesma regra que usamos para
relacionamentos N:N.
EX.:
Disciplina N Pré-Requisito
N Redes II RD2 Banco Redes I Nome BCO RD1 Código
Derivação do Modelo Conceitual para o
Modelo Lógico
Relacionamento Ternário
• Todo relacionamento ternário vira tabela. A chave primária é formada pela concatenação das chaves primárias das 3 entidades.
Fornecedor (Código, nome)
Fornecedor N Fornece Peça
Projeto N
N
Peça (Código, nome) Projeto (Código, nome)
Fornece (Fornecedor, Peça, Projeto)
Código Nome
Código Nome
Código Nome
Modelo Lógico
Derivação do Modelo Conceitual para o
Modelo Lógico
Estrutura de Generalização / Especialização
Conta (Número, saldo) Corrente (Número, limite)
Aniversário Corrente
Conta
Poupança limite
Número Saldo
Tx-juros
Modelo Lógico (1ª Forma)
Poupança (Número, aniversário, Tx-Juros) Corrente (Número, saldo, limite)
Modelo Lógico (2ª Forma)