54
Banco de dados BD

Banco de dados - e Brito · Banco de dados •Objetivo: –Armazenar dados ... –Representam os dados usando estruturas de registro –Exemplo Modelo Relacional, Modelo Rede

  • Upload
    others

  • View
    9

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Banco de dados - e Brito · Banco de dados •Objetivo: –Armazenar dados ... –Representam os dados usando estruturas de registro –Exemplo Modelo Relacional, Modelo Rede

Banco de dados

BD

Page 2: Banco de dados - e Brito · Banco de dados •Objetivo: –Armazenar dados ... –Representam os dados usando estruturas de registro –Exemplo Modelo Relacional, Modelo Rede

Banco de dados

• Objetivo:

–Armazenar dados

–Consultar dados (dentro de um determinado contexto) gerando informações úteis

• Reter os dados de forma que possam ser utilizados em outros momentos

Page 3: Banco de dados - e Brito · Banco de dados •Objetivo: –Armazenar dados ... –Representam os dados usando estruturas de registro –Exemplo Modelo Relacional, Modelo Rede

• Trabalhar com desenvolvimento de software envolve trabalhar com banco de dados

• Vamos conhecer um pouco da evolução dos bancos de dados

Page 4: Banco de dados - e Brito · Banco de dados •Objetivo: –Armazenar dados ... –Representam os dados usando estruturas de registro –Exemplo Modelo Relacional, Modelo Rede

Década 50

Page 5: Banco de dados - e Brito · Banco de dados •Objetivo: –Armazenar dados ... –Representam os dados usando estruturas de registro –Exemplo Modelo Relacional, Modelo Rede

Década 50

Page 6: Banco de dados - e Brito · Banco de dados •Objetivo: –Armazenar dados ... –Representam os dados usando estruturas de registro –Exemplo Modelo Relacional, Modelo Rede

Em TI

Page 7: Banco de dados - e Brito · Banco de dados •Objetivo: –Armazenar dados ... –Representam os dados usando estruturas de registro –Exemplo Modelo Relacional, Modelo Rede

• Os arquivos físicos evoluíram para arquivos digitais.

Arquivos digitais

Page 8: Banco de dados - e Brito · Banco de dados •Objetivo: –Armazenar dados ... –Representam os dados usando estruturas de registro –Exemplo Modelo Relacional, Modelo Rede

Década 50

• Arquivo sequencial

• Fitas magnéticas • Cartões perfurados

Page 9: Banco de dados - e Brito · Banco de dados •Objetivo: –Armazenar dados ... –Representam os dados usando estruturas de registro –Exemplo Modelo Relacional, Modelo Rede

Dados isolados

• Mesmo nos arquivos digitais os dados eram mantidos isolados uns dos outros.

• Os dados armazenados precisavam relacionar-se.

Produto Fornecedor

Page 10: Banco de dados - e Brito · Banco de dados •Objetivo: –Armazenar dados ... –Representam os dados usando estruturas de registro –Exemplo Modelo Relacional, Modelo Rede

Década 50

• Armazenamento em disco – acesso não sequencial – acesso direto

• Índices

• Arquivo de acesso direto

Page 11: Banco de dados - e Brito · Banco de dados •Objetivo: –Armazenar dados ... –Representam os dados usando estruturas de registro –Exemplo Modelo Relacional, Modelo Rede

Década 60

• CODASIL -Evento com

– Departamento de defesa do EUA (militares)

– Empresas

– Universidades

• Surge COBOL

– Primeira linguagem a

se preocupar com estrutura de dados

• No CODASIL surge o banco de dados

Page 12: Banco de dados - e Brito · Banco de dados •Objetivo: –Armazenar dados ... –Representam os dados usando estruturas de registro –Exemplo Modelo Relacional, Modelo Rede

Década 60

Page 13: Banco de dados - e Brito · Banco de dados •Objetivo: –Armazenar dados ... –Representam os dados usando estruturas de registro –Exemplo Modelo Relacional, Modelo Rede

Década 70

• Especificar relações

• Como?

• Linguagem de exploração

– Sequel

– SQL

Page 14: Banco de dados - e Brito · Banco de dados •Objetivo: –Armazenar dados ... –Representam os dados usando estruturas de registro –Exemplo Modelo Relacional, Modelo Rede

Atualmente

Page 15: Banco de dados - e Brito · Banco de dados •Objetivo: –Armazenar dados ... –Representam os dados usando estruturas de registro –Exemplo Modelo Relacional, Modelo Rede

Atualmente

Page 16: Banco de dados - e Brito · Banco de dados •Objetivo: –Armazenar dados ... –Representam os dados usando estruturas de registro –Exemplo Modelo Relacional, Modelo Rede

O que é um banco de dados?

• Um banco de dados (sua abreviatura é BD, em inglês DB, database) é uma entidade na qual é possível armazenar dados de maneira estruturada e com a menor redundância possível.

• Estes dados devem poder ser utilizados por programas, por usuários diferentes.

Page 17: Banco de dados - e Brito · Banco de dados •Objetivo: –Armazenar dados ... –Representam os dados usando estruturas de registro –Exemplo Modelo Relacional, Modelo Rede

Utilidade de um banco de dados ?

• Um banco de dados permite colocar dados à disposição de usuários para uma consulta, uma inclusão ou uma atualização, de acordo com os direitos desses usuários.

• A vantagem essencial da utilização dos bancos de

dados é a possibilidade de poder ser acessada por vários usuários, simultaneamente.

Page 18: Banco de dados - e Brito · Banco de dados •Objetivo: –Armazenar dados ... –Representam os dados usando estruturas de registro –Exemplo Modelo Relacional, Modelo Rede

A gestão dos bancos de dados

• A fim de poder controlar os dados bem como os usuários, é necessário um sistema de gestão.

• A gestão do banco de dados é feito por um sistema chamado SGBD (sistema de gestão de bancos de dados) ou em inglês DBMS (Database managment system).

• O SGBD é um conjunto de serviços (aplicações, software) que permitem gerenciar os bancos de dados, quer dizer :

– permitir o acesso aos dados de maneira simples

– autorizar um acesso às informações a múltiplos usuários

– manipular os dados presentes no banco de dados (inserção, exclusão, alteração)

Page 19: Banco de dados - e Brito · Banco de dados •Objetivo: –Armazenar dados ... –Representam os dados usando estruturas de registro –Exemplo Modelo Relacional, Modelo Rede

Objetivos de um sistema eficiente

• Informações precisas

• Oportunas

• Exatas

• Relevantes

Facilitar acesso das informações aos usuários • Só facilita quando as informações estão:

– Bem organizadas

– Bem administradas

– Bem mantidas

Page 20: Banco de dados - e Brito · Banco de dados •Objetivo: –Armazenar dados ... –Representam os dados usando estruturas de registro –Exemplo Modelo Relacional, Modelo Rede

Porquê usar um SGDB?

• Controlar redundância

• Compartilhamento de dados

• Independência de dados

• Segurança

• Backup e recuperação à falhas

• Forçar restrições de integridade

• Aumentar a produtividade e disponibilidade

• Flexibilidade, padronização

Page 21: Banco de dados - e Brito · Banco de dados •Objetivo: –Armazenar dados ... –Representam os dados usando estruturas de registro –Exemplo Modelo Relacional, Modelo Rede

Arquitetura de um SGBD

• Nível Interno – É o mais próximo ao armazenamento físico – Relaciona-se à forma como são realmente

armazenados os dados

• Nível externo – É o mais próximo aos usuários. – Relaciona-se à forma como os dados são vistos pelos

usuários individuais

• Nível conceitual – É o nível da simulação entre os dois outros – Pode ser considerado a visão de grupos de usuários

Page 22: Banco de dados - e Brito · Banco de dados •Objetivo: –Armazenar dados ... –Representam os dados usando estruturas de registro –Exemplo Modelo Relacional, Modelo Rede

Arquitetura de um SGBD

Page 23: Banco de dados - e Brito · Banco de dados •Objetivo: –Armazenar dados ... –Representam os dados usando estruturas de registro –Exemplo Modelo Relacional, Modelo Rede

Modelos de dados Conjunto de conceitos que podem ser usados para descrever o BD. Divide-se em:

•Modelos Conceituais: – Proveem conceitos próximos aos percebidos por muitos usuários. – Usam conceitos como entidades, atributos e relacionamentos. – Exemplo: Modelo ER, modelo OO

•Modelos de Implementação: – Tem conceitos que podem ser entendidos pelos usuários e não estão muito

distantes da maneira como os dados são organizados fisicamente. – São usados frequentemente em SGBD’s comerciais. – Representam os dados usando estruturas de registro – Exemplo Modelo Relacional, Modelo Rede

•Modelos Físicos – Descrevem como os dados são armazenados representando informação como

formato de registro, ordenação de registros, método de acesso.

Page 24: Banco de dados - e Brito · Banco de dados •Objetivo: –Armazenar dados ... –Representam os dados usando estruturas de registro –Exemplo Modelo Relacional, Modelo Rede

MODELO ENTIDADE-RELACIONAMENTO (MER)

• 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. Esse modelo pode ser expresso graficamente por meio do diagrama E-R, assim cada elemento do MER tem uma notação própria com a qual ele é representado no DER.

Page 25: Banco de dados - e Brito · Banco de dados •Objetivo: –Armazenar dados ... –Representam os dados usando estruturas de registro –Exemplo Modelo Relacional, Modelo Rede

CONJUNTO DE ENTIDADES

• Uma entidade é uma "coisa" ou um "objeto" do mundo real que pode ser identificado por outros objetos.

• Por exemplo, cada pessoa é uma entidade, cada conta de cliente de um banco também podem ser considerada uma entidade.

• Ao conjunto de todas as contas do banco chamamos de conjunto de entidades.

• Os conjuntos de entidades modelados no MER serão tabelas dos bancos de dados.

• Cada entidade será uma linha da tabela ou registro ou ainda tupla.

Page 26: Banco de dados - e Brito · Banco de dados •Objetivo: –Armazenar dados ... –Representam os dados usando estruturas de registro –Exemplo Modelo Relacional, Modelo Rede

Entidade

• Conjuntos de entidades são representados por Retângulos no DER com o nome em letra maiúscula.

• Para identificar entidades fazemos a seguinte pergunta:

• “a respeito do que ou de quem quero guardar informações?”

Aluno Paciente Venda Produto

Page 27: Banco de dados - e Brito · Banco de dados •Objetivo: –Armazenar dados ... –Representam os dados usando estruturas de registro –Exemplo Modelo Relacional, Modelo Rede

Exemplo:

• Identifique entidade para :

a) controlar aniversários e e-mail dos amigos

b) controlar uma coleção de livros

c) controlar pacientes de um consultório odontológico

Page 28: Banco de dados - e Brito · Banco de dados •Objetivo: –Armazenar dados ... –Representam os dados usando estruturas de registro –Exemplo Modelo Relacional, Modelo Rede

ATRIBUTOS

• As entidades são descritas no banco de dados por meio de seus atributos. Por exemplo, os atributos número conta e saldo descrevem uma conta bancária em particular.

• Os atributos serão as colunas das tabelas.

Page 29: Banco de dados - e Brito · Banco de dados •Objetivo: –Armazenar dados ... –Representam os dados usando estruturas de registro –Exemplo Modelo Relacional, Modelo Rede

Tipos de atributos

• Atributos simples (não podem ser divididos) ou compostos (podem ser divididos em partes exemplo, Endereço pode ser dividido em Nome da Rua, Cidade, Estado e CEP) Atributos compostos são úteis quando os usuários referenciam o atributo composto como uma unidade e, em outros momentos, referenciam especificamente a seus componentes. Se o atributo composto for sempre referenciado como um todo, não existe razão para subdividi-lo em componentes elementares.

Page 30: Banco de dados - e Brito · Banco de dados •Objetivo: –Armazenar dados ... –Representam os dados usando estruturas de registro –Exemplo Modelo Relacional, Modelo Rede

Atributos Simples ou Compostos

• Observe a notação usada para cada um deles

Page 31: Banco de dados - e Brito · Banco de dados •Objetivo: –Armazenar dados ... –Representam os dados usando estruturas de registro –Exemplo Modelo Relacional, Modelo Rede

Tipos de atributos

• Atributos monovalorados ou multivalorados Monovalorados são atributos que têm apenas um único valor (exemplo, Data de nascimento). Em outros casos, um atributo pode ter um conjunto de valores e são chamados de atributos multivalorados (exemplo, Telefone ). Atributos multivalorados podem possuir uma multiplicidade, indicando as quantidades mínima e máxima de valores.

Page 32: Banco de dados - e Brito · Banco de dados •Objetivo: –Armazenar dados ... –Representam os dados usando estruturas de registro –Exemplo Modelo Relacional, Modelo Rede

Atributos monovalorados ou multivalorados

• Observe a notação usada para cada um deles

Page 33: Banco de dados - e Brito · Banco de dados •Objetivo: –Armazenar dados ... –Representam os dados usando estruturas de registro –Exemplo Modelo Relacional, Modelo Rede

Exercícios:

Identifique e modele as Entidades e seus respectivos atributos para cada situação a seguir:

a) controlar uma escola;

b) controlar uma loja;

c) controlar um consultório médico;

Page 34: Banco de dados - e Brito · Banco de dados •Objetivo: –Armazenar dados ... –Representam os dados usando estruturas de registro –Exemplo Modelo Relacional, Modelo Rede

Chave

• Dentro de um conjunto de entidades cada entidade (cada registro) deve ser diferenciada de outra através de seus atributos. Os atributos utilizados para fazer essa distinção são as chaves. Uma chave nunca pode ser repetida, ou seja, o conjunto de valores dos atributos constituintes de uma chave deve ser único para cada registro dentro de uma determinada tabela.

Page 35: Banco de dados - e Brito · Banco de dados •Objetivo: –Armazenar dados ... –Representam os dados usando estruturas de registro –Exemplo Modelo Relacional, Modelo Rede

Chave Primária

• A chave primária nunca deve ser repetida;

• A chave primária nunca pode ser nula;

• O tamanho da chave primária afeta a velocidade das operações do seu banco de dados.

• O campo chave primária sempre vai estar indexado.

Page 36: Banco de dados - e Brito · Banco de dados •Objetivo: –Armazenar dados ... –Representam os dados usando estruturas de registro –Exemplo Modelo Relacional, Modelo Rede

Chave Primária

• Chave Primária Simples: possui um atributo. Exemplo: CPF

• Chave Primária Composta: composta de mais de um atributo. Neste caso, o conjunto de atributos é que não deve ser repetido. E cada atributo pode ser repetido individualmente. Ex. O número de uma conta corrente normalmente é formado por dois atributos: número da agência e número da conta.

Page 37: Banco de dados - e Brito · Banco de dados •Objetivo: –Armazenar dados ... –Representam os dados usando estruturas de registro –Exemplo Modelo Relacional, Modelo Rede

Chave Única

• Uma chave única é um meio que utilizamos quando um determinado campo não deve ser repetido e não foi escolhido como chave primária. Com esse método, damos mais consistência ao banco de dados.

• Algumas vezes a chave primária é um atributo gerado pelo sistema como por exemplo o RA de um aluno. Se por algum equívoco o aluno se cadastrasse duas vezes seriam gerados dois RAs. Podemos usar RG como chave única, e evitar que o aluno seja cadastrado duas vezes.

Page 38: Banco de dados - e Brito · Banco de dados •Objetivo: –Armazenar dados ... –Representam os dados usando estruturas de registro –Exemplo Modelo Relacional, Modelo Rede

Exercícios

•Identifique as chaves para as entidades identificadas nos exercícios anteriores.

Page 39: Banco de dados - e Brito · Banco de dados •Objetivo: –Armazenar dados ... –Representam os dados usando estruturas de registro –Exemplo Modelo Relacional, Modelo Rede

Relacionamento

• Um relacionamento é uma associação entre entidades.

• Por exemplo, na escola um relacionamento cursa associa um aluno ao curso que ele está matriculado.

Page 40: Banco de dados - e Brito · Banco de dados •Objetivo: –Armazenar dados ... –Representam os dados usando estruturas de registro –Exemplo Modelo Relacional, Modelo Rede

Relacionamento

• Podemos associar um determinado cliente a um pedido.

Page 41: Banco de dados - e Brito · Banco de dados •Objetivo: –Armazenar dados ... –Representam os dados usando estruturas de registro –Exemplo Modelo Relacional, Modelo Rede

Relacionamento

• Relacionamentos são representados por losangos no DER

Curso Aluno

Encomenda Cliente

Page 42: Banco de dados - e Brito · Banco de dados •Objetivo: –Armazenar dados ... –Representam os dados usando estruturas de registro –Exemplo Modelo Relacional, Modelo Rede

Cardinalidade

• Além das entidades e dos relacionamentos, o MER representa certas regras, as quais o conteúdo do banco de dados precisa respeitar. Uma regra importante é o mapeamento das cardinalidades, as quais expressam o número de entidades às quais a outra entidade se relaciona por meio daquele conjunto de relacionamentos.

Page 43: Banco de dados - e Brito · Banco de dados •Objetivo: –Armazenar dados ... –Representam os dados usando estruturas de registro –Exemplo Modelo Relacional, Modelo Rede

Cardinalidade Máxima

• Expressa o número máximo de ocorrências de outra entidade associadas a entidade em questão.

• Uma ocorrência de Funcionário pode estar associado no máximo a uma ocorrência de Departamento.

• Uma ocorrência de Departamento pode estar associada a várias ocorrências de Funcionário.

Departamento Funcionario 1 N

Page 44: Banco de dados - e Brito · Banco de dados •Objetivo: –Armazenar dados ... –Representam os dados usando estruturas de registro –Exemplo Modelo Relacional, Modelo Rede

Cardinalidade Máxima

• A cardinalidade máxima é utilizada para classificar os relacionamentos em:

1 : 1 - lê-se um-para-um

1 : n - lê-se um-para-muitos

n : n - lê-se muitos-para-muitos

Page 45: Banco de dados - e Brito · Banco de dados •Objetivo: –Armazenar dados ... –Representam os dados usando estruturas de registro –Exemplo Modelo Relacional, Modelo Rede

Relacionamento 1:1

• Em um relacionamento um-para-um, cada registro na tabela X pode ter somente um registro coincidente na tabela Y, e cada registro na tabela Y pode ter somente um registro coincidente na tabela X.

• Exemplo: Vamos criar uma entidade funcionários e outra armários. Um funcionário só pode ter um armário e vice-versa.

Armario Funcionario 1 1

Page 46: Banco de dados - e Brito · Banco de dados •Objetivo: –Armazenar dados ... –Representam os dados usando estruturas de registro –Exemplo Modelo Relacional, Modelo Rede

Relacionamento 1:1

• Esse tipo de relacionamento é incomum, pois a maioria das informações assim relacionadas estaria em uma só tabela. A utilização de um relacionamento um-para-um é recomendada quando você deseja dividir uma tabela com muitos campos, isolar parte de uma tabela por segurança ou armazenar informações que se apliquem somente a um subconjunto da tabela principal

Page 47: Banco de dados - e Brito · Banco de dados •Objetivo: –Armazenar dados ... –Representam os dados usando estruturas de registro –Exemplo Modelo Relacional, Modelo Rede

Relacionamento 1:N • Um relacionamento um-para-muitos

estabelece que um registro em uma tabela X pode ter vários registros associados em uma tabela Y. Este é o mais comum dos relacionamentos.

• Exemplo:

• Um curso pode ter vários alunos, mas um aluno só pode cursar um curso.

Curso Aluno 1 N

Page 48: Banco de dados - e Brito · Banco de dados •Objetivo: –Armazenar dados ... –Representam os dados usando estruturas de registro –Exemplo Modelo Relacional, Modelo Rede

Relacionamento 1:N

Encomenda Cliente N 1

Page 49: Banco de dados - e Brito · Banco de dados •Objetivo: –Armazenar dados ... –Representam os dados usando estruturas de registro –Exemplo Modelo Relacional, Modelo Rede

Relacionamento N:N

• Em um relacionamento muitos-para-muitos, um registro na tabela X pode ter vários registros coincidentes na tabela Y, e um registro na tabela Y pode ter vários registros coincidentes na tabela X.

• Neste exemplo um aluno tem muitas disciplinas e uma disciplina tem muitos alunos.

Disciplina Aluno N N

Page 50: Banco de dados - e Brito · Banco de dados •Objetivo: –Armazenar dados ... –Representam os dados usando estruturas de registro –Exemplo Modelo Relacional, Modelo Rede

Cardinalidade Mínima

• A cardinalidade mínima expressa o número mínimo de ocorrências de outra entidade associada a entidade em questão através do relacionamento.

• São considerados duas cardinalidades mínimas: 1 ou 0

Page 51: Banco de dados - e Brito · Banco de dados •Objetivo: –Armazenar dados ... –Representam os dados usando estruturas de registro –Exemplo Modelo Relacional, Modelo Rede

Cardinalidade Mínima

• Cardinalidade mínima 1 ou associação obrigatória - significa que o relacionamento entidade deve obrigatoriamente associar uma ocorrência de entidade a cada ocorrência da entidade em questão.

• Cardinalidade mínima 0 ou associação opcional - significa que uma ocorrência da entidade em questão pode existir sem a necessidade de se associar a uma ocorrência de outra entidade.

Page 52: Banco de dados - e Brito · Banco de dados •Objetivo: –Armazenar dados ... –Representam os dados usando estruturas de registro –Exemplo Modelo Relacional, Modelo Rede

Cardinalidade Mínima

• A cardinalidade mínima é anotada no diagrama junto à cardinalidade máxima através dos pares (0,x) e (1,x) onde:

0 - cardinalidade mínima opcional;

1 - cardinalidade mínima obrigatória ;

x - cardinalidade máxima.

Page 53: Banco de dados - e Brito · Banco de dados •Objetivo: –Armazenar dados ... –Representam os dados usando estruturas de registro –Exemplo Modelo Relacional, Modelo Rede

• Relacionamento binário cuja classe do relacionamento é 1:n (um-para-muitos)

• Cada departamento pode lotar nenhum ou vários funcionários.

• Cada funcionário deve estar lotado a um e somente um departamento.

Departamento Funcionario (1,1) (0,N) lotacao

Page 54: Banco de dados - e Brito · Banco de dados •Objetivo: –Armazenar dados ... –Representam os dados usando estruturas de registro –Exemplo Modelo Relacional, Modelo Rede

Exercícios

• Identifique a cardinalidade dos relacionamentos

Encomenda Cliente ( , ) ( , ) possui

ConsultaAgendada Medico ( , ) ( , ) possui

Dependente Funcionário ( , ) ( , ) possui