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
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
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
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
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

Aula 01

  • 1.
    09/03/2015 1 BANCO DE DADOS Fundamentosde 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