O documento apresenta os fundamentos de sistemas de gerenciamento de banco de dados. Discute conceitos como banco de dados, sistemas de gerenciamento de banco de dados, características desejáveis, comandos SQL, modelagem conceitual e lógica. O professor Felipe Frederico apresenta esses tópicos e exemplifica com diagramas de entidade-relacionamento.
1. 09/03/2015
1
BANCO DE DADOS
Fundamentos de Sistemas de
Gerência de Banco de Dados
Prof. Felipe Frederico
BANCO DE DADOS
• Conceito:
Coleção de dados logicamente coerente que
possui um significado implícito cuja
interpretação é dada por uma determinada
aplicação.
Prof. Felipe Frederico
BANCO DE DADOS
• Sistema de Gerenciamento de Bando de Dados (SGBD)
Um sistema de gerenciamento de banco de dados
(SGBD) é um software que possui recursos
capazes de manipular as informações do banco
de dados e interagir com o usuário.
Exemplos de SGBDs são: Oracle, SQL Server,
PostgreSQL, MySQL, o próprio Access, entre
outros.
Prof. Felipe Frederico
BANCO DE DADOS
• Características desejáveis
– Recuperação de dados armazenados de forma eficiente;
– Tratamento correto e eficiente de acessos simultâneos
aos dados armazenados;
– A garantia de satisfação das restrições impostas sobre os
dados;
– Processamento e execução de comandos da LDD e da
LMD do modelo de dados correspondente;
– Garantia da recuperação contra falhas;
– Suporte a gerência de backups.
Prof. Felipe Frederico
BANCO DE DADOS
• Comandos em banco de dados - SQL
SQL é a sigla de “Structured Query Language”
que significa, em Português, Linguagem de
Consulta Estruturada. É uma linguagem padrão
de gerenciamento de dados que interage com os
principais bancos de dados baseados no modelo
relacional.
Prof. Felipe Frederico
BANCO DE DADOS
• Tipos de Comandos em SQL
• LMD (DML)
Linguagem de manipulação de dados (DML - Data
Manipulation Language) conceituava-se inicialmente por ser um
conjunto de subcomandos da linguagem SQL utilizadas para a
recuperação, inclusão, remoção e modificação de informações em
bancos de dados.
Hoje é usada em um sentido genérico para referir-se a
qualquer linguagem formal.
Ex.: Insert, Update, Delete.
Prof. Felipe Frederico
2. 09/03/2015
2
BANCO DE DADOS
• Tipos de Comandos em SQL
• LDD (DDL)
Linguagem de definição de dados (DDL - Data Definition
Language). Seguindo o mesmo conceito da anterior onde
inicialmente era remetido à um subconjunto de comandos SQL,
mas neste caso, utilizada para definição de estruturas de dados.
Hoje também é usada em um sentido genérico para referir-se
a qualquer linguagem formal.
Ex.: Alter, Drop, Create.
Prof. Felipe Frederico
BANCO DE DADOS NA PRÁTICA
Prof. Felipe Frederico
BANCO DE DADOS
• Por que utilizar Banco de Dados?
– Os objetivos de um sistema de banco de dados são o
de isolar o usuário dos detalhes internos do banco de
dados (promover a abstração de dados) e promover a
independência dos dados em relação às aplicações, ou
seja, tornar independente da aplicação, a estratégia
de acesso e
a forma de armazenamento.
Prof. Felipe Frederico
BANCO DE DADOS
• Por que utilizar Banco de Dados?
– Os objetivos de um sistema de banco de dados são o
de isolar o usuário dos detalhes internos do banco de
dados (promover a abstração de dados) e promover a
independência dos dados em relação às aplicações, ou
seja, tornar independente da aplicação, a estratégia
de acesso e
a forma de armazenamento.
Prof. Felipe Frederico
BANCO DE DADOS
• Características desejáveis
1. Controle de Redundância;
2. Compartilhamento de Dados;
3. Controle de Acesso aos Dados;
4. Múltiplas Interfaces;
5. Representação de associações complexas;
6. Garantia de restrições de Integridade;
7. Recuperação de falhas.
Prof. Felipe Frederico
BANCO DE DADOS
• Modelo de Dados
– 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.
Prof. Felipe Frederico
3. 09/03/2015
3
BANCO DE DADOS
• Projeto de Banco de Dados
– Todo bom sistema de banco de dados deve
apresentar um projeto, que visa a organização das
informações e utilização de técnicas para que o
futuro sistema obtenha boa performance e
também facilite infinitamente as manutenções
que venham a acontecer.
Prof. Felipe Frederico
BANCO DE DADOS
• Observação:
Estas duas etapas se referem a um sistema de banco de dados
ainda não implementado, ou seja, que ainda não exista, um novo
projeto.
Para os casos em que o banco de dados já exista, mas é um
sistema legado, por exemplo, ou um sistema muito antigo sem
documentação, o processo de projeto de banco de dados se dará
através da utilização de uma técnica chamada de Engenharia
Reversa.
Prof. Felipe Frederico
BANCO DE DADOS
• Projetos de Banco de Dados:
• O projeto de banco de dados se dá em duas fases:
– Modelagem conceitual;
– Projeto lógico.
Prof. Felipe Frederico
BANCO DE DADOS
• Modelo conceitual
– É a descrição do BD de maneira independente ao
SGBD, ou seja, define quais os dados que
aparecerão no BD, mas sem se importar com a
implementação que se dará ao BD. Desta forma,
há uma abstração em nível de SGBD.
Prof. Felipe Frederico
BANCO DE DADOS
• Modelo conceitual
– Uma das técnicas mais utilizadas dentre os profissionais da área é a
abordagem entidade-relacionamento (ER), onde o modelo é
representado graficamente através do diagrama entidade-
relacionamento (DER).
Prof. Felipe Frederico
BANCO DE DADOS
• Cardinalidade
– Definição da quantidade de ocorrências de uma entidade que poderá
estar associada a outra entidade.
Ex.:
- Um vendedor pode vender apenas um tipo de produto? Ou dois? Ou três?
- Um produto pode ser vendido por apenas um vendedor, ou por todos?
Prof. Felipe Frederico
4. 09/03/2015
4
BANCO DE DADOS
• Cardinalidade
– Relacionamento binário Um-para-Um (1:1) Indica que uma ocorrência
da entidade A pode se relacionar exclusivamente com uma ocorrência
da entidade B e vice versa.
Ex.:
- Um vendedor ocupa um único escritório e um escritório pode ser ocupado por um
único vendedor.
Prof. Felipe Frederico
BANCO DE DADOS
• Cardinalidade
– Relacionamento Um-para-Muitos (1:n) – uma ocorrência da entidade
A pode se relacionar com várias ocorrências da entidade B, porém o
inverso não é permitido.
Ex.:
- Um vendedor atende muitos clientes. Porém, cada cliente tem um vendedor
específico.
Prof. Felipe Frederico
BANCO DE DADOS
• Cardinalidade
– Relacionamento Muitos-para-Muitos (n:m) – uma ocorrência da
entidade A pode se relacionar com muitas ocorrências da unidade B e
vice versa.
Ex.:
- Um vendedor atende muitos clientes, e um cliente pode ser atendido por diversos
vendedores.
Prof. Felipe Frederico
BANCO DE DADOS
• MODELO ER - EXEMPLO
Prof. Felipe Frederico
BANCO DE DADOS
• MODELO LÓGICO
– Descreve o BD no nível do SGBD, ou seja, depende do tipo particular de SGBD
que será usado. Não podemos confundir com o Software que será usado. O
tipo de SGBD que o modelo lógico trata é se o mesmo é relacional, orientado
a objetos, hierárquico, etc. Abordaremos o SGBD relacional, por serem os mais
difundidos. Nele, os dados são organizados em tabelas.
Prof. Felipe Frederico
BANCO DE DADOS
Prof. Felipe Frederico
5. 09/03/2015
5
BANCO DE DADOS
• MODELO LÓGICO
O modelo lógico do BD relacional deve definir quais as tabelas e o nome das
colunas que compõem estas tabelas. Para o nosso exemplo, poderíamos
definir nosso modelo lógico conforme o seguinte:
Corretor(corretor_id, nome, endereco)
É importante salientar que os detalhes internos de armazenamento, por
exemplo, não são descritos no modelo lógico, pois estas informações fazem
parte do modelo físico, que nada mais é que a tradução do modelo lógico para
a linguagem do software escolhido para implementar o sistema.
Prof. Felipe Frederico