banco de dados - ebrito.com.brebrito.com.br/profa-elaine/bd.pdf · disposição de usuários para...

58
Banco de dados BD

Upload: doanthu

Post on 18-Nov-2018

220 views

Category:

Documents


0 download

TRANSCRIPT

Banco de dados

BD

Dados x Informações

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

• Banco de dados

– Informação armazenada de forma permanente

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

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

Década 50

Década 50

Em TI

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

Arquivos digitais

Década 50

• Arquivo sequencial

• Fitas magnéticas • Cartões perfurados

Dados isolados

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

• Os dados armazenados precisavam relacionar-se.

Produto Fornecedor

Década 50

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

• Índices

• Arquivo de acesso direto

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

Década 60

Década 70

• Especificar relações

• Como?

• Linguagem de exploração

– Sequel

– SQL

Atualmente

Atualmente

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.

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.

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)

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

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

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

Arquitetura de um SGBD

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.

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.

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.

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

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

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.

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.

Atributos Simples ou Compostos

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

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.

Atributos monovalorados ou multivalorados

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

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;

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.

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.

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.

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.

Exercícios

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

Relacionamento

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

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

Relacionamento

• Podemos associar um determinado cliente a um pedido.

Relacionamento

• Relacionamentos são representados por losangos no DER

Curso Aluno

Encomenda Cliente

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.

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

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

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

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

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

Relacionamento 1:N

Encomenda Cliente N 1

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

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

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.

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.

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

• Cada departamento pode lotar nenhum ou vários funcionários. Logo, o relacionamento Lotação é parcial em relação a entidade Departamento, já que vai existir Departamento que não vai se associar a funcionário através de Lotação.

• Cada funcionário deve estar lotado a um e somente um departamento. Neste caso, o relacionamento Lotação é total em relação a entidade Funcionário, pois para cada ocorrência de Funcionário vai existir um associação a um ocorrência de Departamento através do relacionamento

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

Exercícios

• Identifique a cardinalidade dos relacionamentos

Encomenda Cliente ( , ) ( , ) possui

ConsultaAgendada Medico ( , ) ( , ) possui

Dependente Funcionário ( , ) ( , ) possui