Banco de Dados
Prof. Christiano Lima Santos
Conteúdo do Curso
Introdução a Banco de Dados
 Modelo Relacional
 Modelo Entidade-Relacionamento
 Normalização
 Álgebra Relacional
 O SGBD MySQL
 Introdução à linguagem SQL

Linguagem de Definição de Dados – DDL
 Linguagem de Manipulação de Dados - DML

Quem sou eu?

Formação:

Graduado em Ciência da Computação (Universidade Federal de Sergipe);

Especialista em Gestão de Negócios (Universidade Cidade de São Paulo);

Mestre em Ciência da Computação (Universidade Federal de Sergipe);


Linha de pesquisa: Engenharia de Software.
Áreas de Interesse:

Informática Educativa (Jogos Educativos e Ambientes Virtuais de
Aprendizagem);

Engenharia de Software (Desenvolvimento Dirigido por Modelos);

Computação Inteligente (Geração de Linguagem Natural).
Introdução a Banco de
Dados
Parte 01
Sumário

Armazenamento e recuperação de dados

O que é um Banco de Dados?

Vantagens dos Bancos de Dados sobre os Arquivos de Dados

Arquitetura em três níveis de um SGBD

Modelos de Dados

Linguagens de Banco de Dados
Dado x Informação

Dado – todo valor (numérico, textual, lógico etc.) que
pode ser armazenado em um computador;

Informação – todo dado ou conjunto de dados que, após
algum tipo de processamento ou manipulação, apresenta
algum significado útil.
Armazenamento e recuperação de dados

Todo sistema de informação pode lidar com
armazenamento e recuperação de dados por meio
de arquivos de dados;
Armazenamento e recuperação de dados

Entretanto, certos sistemas de informação podem
apresentar problemas ao utilizar tal forma de
armazenamento e recuperação de dados;
 Sistemas
 Risco
monousuários x sistemas multiusuários;
de redundância e inconsistência dos dados;
 Recuperação,
processamento ou filtragem de grandes
volumes de dados.

Bancos de dados podem solucionar tais problemas.
O que é um Banco de Dados?

É uma coleção de dados relacionados;

Podemos considerar como sendo um repositório para
armazenamento de informações persistente;

Uma boa analogia pode ser um armário de arquivo.

Assim, um Sistema Gerenciador de Banco de Dados (SGBD) é um
sistema que permite o armazenamento, atualização e
recuperação das informações presentes nesse repositório.

Por meio de tal sistema, um usuário pode:

Adicionar, alterar ou remover arquivos (tabelas) no banco de
dados;

Inserir, alterar, remover ou recuperar dados (registros) dos
arquivos (tabelas).
Exemplo de um Banco de Dados
(Sistema de Biblioteca)
Dados de Usuários
Dados de Livros
LivroID
Nome
Autores
UsuarioID
Nome
1
Engenharia de Software
R. Pressman
1
Christiano
2
Banco de Dados
C. J. Date
2
Davi
3
Segurança da Informação
J. Smith
3
Márcio
Dados de Empréstimos
EmprestimoID LivroID
UsuarioID
DataEmprestimo DataDevolucao
1
1
1
01/06/2015
2
2
1
05/06/2015
3
3
2
07/06/2015
05/06/2015
Representação simplificada de um SGBD
Fonte: (DATE, 2004)
Componentes de um sistema de banco
de dados

Hardware, em que o SGBD será mantido;

Software, já que o SGBD é um software (ou conjunto de
softwares) responsável por gerenciar os dados;

Procedimentos, isto é, instruções e regras que ditam
como projetar e usar o banco de dados (forma de log on,
aplicações para acesso ao SGBD, política de backup etc.);

Dados, ponto central de todo SGBD;

Usuários, ou seja, todos que, de alguma forma, se
utilizam do SGBD.
Tipos de usuário de um SGBD
1.
Usuários finais – acessam o banco de dados por meio dos
softwares criados pelos desenvolvedores de aplicação ou
específicos para consultas a bancos de dados;

Usuários simples – utilizam somente softwares criados pelos
desenvolvedores de aplicação e não precisam conhecer a estrutura
do banco de dados ou linguagens para consultas;

Usuários sofisticados – podem utilizar os mesmos softwares
empregados pelo grupo anterior, mas conhecem a estrutura do
banco de dados e uma linguagem para consultas (geralmente SQL)
e por isso podem realizar consultas mais personalizadas aos dados.
Tipos de usuário de um SGBD
2.
Desenvolvedores de aplicação – responsáveis por
desenvolver e/ou manter softwares que acessarão o banco
de dados. Tais aplicações poderão recuperar, inserir,
atualizar ou remover dados do banco;
Tipos de usuário de um SGBD
3.
Projetistas de banco de dados (database designers) –
responsáveis por identificar os dados, relacionamentos
entre dados e quaisquer restrições sobre os dados (isto é,
as regras de negócios). Assim, são responsáveis pelo
projeto de banco de dados conceitual, lógico e físico;
Tipos de usuário de um SGBD
4.
Administradores:

Administradores de dados (DA) – responsáveis por gerenciar os
recursos de dados planejando, desenvolvendo e mantendo
padrões, políticas e procedimentos referentes ao projeto e uso de
banco de dados. Sua função é garantir que os bancos de dados da
organização suportam os objetivos corporativos;

Administradores de banco de dados (DBA) – atuam diretamente
sobre o SGBD, projetando melhorias para os bancos de dados bem
como gerenciando seus recursos e possíveis falhas. Focam
aspectos como otimização, segurança e desempenho.
Vantagens dos Bancos de Dados sobre
Arquivos de Dados

Dados podem ser compartilhados;

Melhor gerenciamento de acesso multiusuário aos dados;

Redundância pode ser reduzida ou eliminada;

Inconsistência pode ser evitada;

Integridade pode ser mantida;

Suporte a transações;

Maior transparência na manipulação dos dados;

Flexibilidade de acesso aos dados.
Vantagens dos Bancos de Dados sobre
Arquivos de Dados

Requisitos conflitantes podem ser equilibrados;

Redução do tempo para armazenamento, recuperação e
processamento dos dados;

Segurança pode ser melhorada;


Maior proteção aos dados contra acessos indevidos ou perdas
não intencionais;
“Relacionabilidade” dos dados;

Possibilidade de estabelecer relacionamentos entre
diferentes tipos de dados.
Arquitetura em três níveis de um SGBD

Nível externo – nível mais próximo dos usuários de um
sistema, referindo-se à forma como os usuários vêem os
dados;


Nível conceitual – representa a união de todas as visões
de usuário do nível externo;


A forma como um usuário ou grupo de usuários com necessidades
similares vê os dados é chamada de visão do usuário;
O banco de dados, neste nível é descrito em um esquema lógico;
Nível interno – corresponde à representação real (física)
dos dados em um computador e os métodos usados para
acessá-los;

Também referenciado como nível físico.
Independência dos dados

Sistemas de banco de dados proporcionam dois
tipos de independência dos dados:
 Independência
física – o nível conceitual é
independente de mudanças no nível interno ou físico;
 Independência
lógica - o nível externo é independente
de mudanças no nível conceitual.
Modelos de Dados

Um modelo de dados é uma coleção de
ferramentas conceituais para descrever dados e
seus relacionamentos e semântica bem como
restrições de consistência (SILBERSCHATZ, KORTH
e SUDARSHAN, 2011).
Modelos de Dados

Classificação dos modelos de dados:
 Modelo
Relacional – usa uma coleção de tabelas
(relações) para representar dados e relacionamentos
entre dados, onde cada tabela é formada por colunas
(atributos) e cada linha pode ser considerada um
registro. A maioria dos sistemas de bancos de dados
baseiam-se no modelo relacional;
Modelos de Dados

Classificação dos modelos de dados:
 Modelo
Entidade-Relacionamento – emprega uma
coleção de objetos (entidades) e relacionamentos
entre tais objetos e é usado na modelagem de bancos
de dados;
Modelos de Dados

Classificação dos modelos de dados:
 Modelo
Orientado a Objetos – pode ser visto como
uma extensão do modelo ER com aspectos de
orientação a objetos (encapsulamento, métodos etc.).
O modelo objeto-relacional nasce como um híbrido dos
modelos orientados a objetos e dos modelos
relacionais;
Modelos de Dados

Classificação dos modelos de dados:
 Modelo
de Dados Semiestruturados – diferentemente
dos modelos anteriores, permite que a especificação
de dados de cada item apresente diferente conjunto de
atributos. A linguagem de marcação XML é amplamente
usada para representar dados semiestruturados.
Modelos de Dados
OBS: Antes de tais modelos, houveram o modelo em rede e
o modelo hierárquico, mas devido à dificuldade de modelar
os dados nos mesmos, caíram em desuso.
Linguagens de Banco de Dados


Linguagem de Definição dos Dados (DDL);

Usada para especificar o esquema do banco de dados;

Provê operações para descrever e nomear as entidades, atributos
e relacionamentos que representarão os dados para uma dada
aplicação;
Linguagem de Manipulação dos Dados (DML);

Usada para recuperar ou atualizar os dados em um banco;

Provê operações para inserir, modificar, remover ou recuperar os
dados.
Exercícios
Introdução a Banco de Dados
Parte 01
Modelo Relacional
Parte 02
Sumário
Introdução ao Modelo Relacional

Introduzido por E. F. Codd em 1970 (IBM);

Fundamentado na teoria dos conjuntos;

Lida com conceitos simples de:


Relações (tabelas);

Atributos (colunas);

Domínios (intervalos de valores);

Tuplas (linhas/registros).
Modelo seguido pela maioria dos atuais SGBD.
Objetivos

Permitir um alto grau de independência dos
dados;

Prover o alicerce necessário para lidar com
problemas de semântica, consistência e
redundância dos dados;
 Ideia

de relações normalizadas.
Habilitar a expansão das linguagens de
manipulação de dados orientadas a conjuntos.
Principais conceitos

Relação;

Atributo;

Domínio;

Tupla;

Esquema.
Relação

Representa uma tabela, isto é, um conjunto de
dados que apresentam alguma relação entre si,
dispostos logicamente em colunas (atributos) e
linhas (tuplas).

Matematicamente, um conjunto, onde seus
elementos são as tuplas, que podem ser descritas
pelos seus atributos (cada atributo admitindo um
valor dentro de um domínio);

Em um banco de dados relacional, cada relação
possui um nome único!
Relação

Enfim, aqui estão três exemplos de relações:
Relação Usuário
Relação Livro
LivroID
Nome
Autores
UsuarioID
Nome
1
Engenharia de Software
R. Pressman
1
Christiano
2
Banco de Dados
C. J. Date
2
Davi
3
Segurança da Informação
J. Smith
3
Márcio
Relação Empréstimo
EmprestimoID LivroID
UsuarioID
DataEmprestimo DataDevolucao
1
1
1
01/06/2015
2
2
1
05/06/2015
3
3
2
07/06/2015
05/06/2015
Atributo

Representa uma coluna dentro de uma relação;

Um conjunto de atributos descrevem uma
relação;

Em uma relação, cada atributo possui um nome
único!
Atributo

A relação Usuário (abaixo) possui dois atributos (UsuarioID
e Nome):
Relação Usuário
UsuarioID Nome
1
Christiano
2
Davi
3
Márcio
Atributo

Um atributo pode ser do tipo:
 Simples
– quando apresenta um valor de um único
domínio;
 Composto
– quando seu valor é na verdade uma tupla
formada por vários domínios (ideia de “sub-atributos”);
 Multivalorado
– quando pode armazenar mais de um
valor (ideia de listas).
Domínio

É o conjunto de valores admissíveis para um ou
mais atributos;

Isto é, intervalo de valores que podem ser
atribuídos a uma coluna da tabela;

Em uma relação, dois ou mais atributos podem
admitir o mesmo domínio.
Domínio

Na relação Usuário, podemos dizer
que:
 Domínio
do atributo UsuarioID é o
domínio dos valores inteiros;
Em MySQL, INT.
 Domínio
do atributo Nome é o
domínio dos valores textuais;
Em MySQL, CHAR ou VARCHAR.
Relação Usuário
UsuarioID Nome
1
Christiano
2
Davi
3
Márcio
Tupla

Trata-se de uma linha de uma relação;

Em outras palavras, é um registro de uma tabela,
composto por valores que satisfazem os domínios
dos atributos da mesma;

Em uma relação, não podemos ter duas tuplas
idênticas, isto é, com os mesmos valores!
Tupla

A relação Usuário possui três tuplas:
Relação Usuário
UsuarioID Nome
1
Christiano
2
3
Davi
Márcio
Esquema

Esquema de uma relação é a relação definida por
um conjunto de atributos e seus respectivos
domínios;
 RUsuario

= (UsuarioID:INT, Nome:VARCHAR(50))
Esquema de um banco de dados relacional é o
conjunto de esquemas das relações, cada qual com
nomes distintos.
R
= { RLivro, RUsuario, REmprestimo }
Outros conceitos

Grau – o grau de uma relação é o número de
atributos que ela contém;

Cardinalidade – a cardinalidade de uma relação é
o número de tuplas que ela contém;

Banco de dados relacional – uma coleção de
relações normalizadas com nomes de relações
distintos.
Propriedades das relações
(CONNOLLY e BEGG, 2005)

Cada relação possui um nome distinto de todas as
outras relações no esquema relacional a que
pertence;

Cada célula da relação (normalizada) contém
exatamente um único valor atômico;

Cada atributo em uma relação tem um nome
distinto;
Propriedades das relações
(CONNOLLY e BEGG, 2005)

Os valores de um atributo são todos do mesmo
domínio;

Cada tupla é distinta, não há tuplas duplicadas;

A ordem dos atributos não tem significância;

A ordem das tuplas não tem significância, em
teoria (pois na prática, é importante para
otimizar armazenamento e indexação das
mesmas)!
Chaves de uma relação

Não há tuplas duplicadas em uma relação;

Consequentemente, há um conjunto de um ou mais
atributos capazes de identificar unicamente cada tupla
em uma relação, tal conjunto é a superchave;

Se uma chave é composta por mais de um atributo, ela é uma
chave composta;
Chaves de uma relação

Uma superchave pode conter atributos não necessários
para identificar unicamente uma tupla, mas se não houver
tais atributos desnecessários, então ela será uma chave
candidata. Unicidade e irredutibilidade são, então,
propriedades de uma chave candidata;
Chaves de uma relação

A chave candidata que for escolhida para identificar
unicamente as tuplas de uma relação é chamada de chave
primária (PK);
Livro
PK LivroID: INT
Nome: VARCHAR(50)
Autores: VARCHAR(50)
Usuario
PK UsuarioID: INT
Nome: VARCHAR(50)
Chaves de uma relação

E se um atributo ou conjunto de atributos de uma relação
refere-se a uma chave candidata de alguma relação (outra
relação ou a própria), tem-se então uma chave
estrangeira (FK).
Livro
PK LivroID: INT
Emprestimo
Nome: VARCHAR(50)
PK EmprestimoID: INT
Autores: VARCHAR(50)
FK LivroID: INT
Usuario
PK UsuarioID: INT
Nome: VARCHAR(50)
FK UsuarioID: int
DataEmprestimo: Date
DataDevolucao: Date
Chaves de uma relação

Resumindo:

Superchave - conjunto de um ou mais atributos capazes de
identificar unicamente cada tupla em uma relação;

Chave candidata - uma superchave da qual nenhum atributo pode
ser removido sem prejudicar a unicidade da tupla;

Chave primária - chave candidata escolhida para identificar
unicamente as tuplas de uma relação;

Chave estrangeira - atributo ou conjunto de atributos de uma
relação que se refere a uma chave candidata de alguma relação
(outra relação ou a própria).
Restrições de integridade

Integridade de Entidade

Em uma relação, nenhum atributo de uma chave primária pode
assumir valor null (nulo);

Null – Representa um valor para um atributo que é atualmente
desconhecido ou não é aplicável para aquela tupla;
Restrições de integridade

Integridade Referencial

Se uma chave estrangeira existir em uma relação, o valor da chave
estrangeira deve “casar” com o valor de uma chave candidata de
alguma tupla da relação de origem ou seu valor deve ser null;
Restrições de integridade

Restrições Gerais

Regras adicionais especificadas por usuários ou administradores de
banco de dados que definem ou restringem alguns aspectos
importantes para a corporação (regras de negócio).
Referências Bibliográficas

CONNOLLY, Thomas; BEGG, Carolyn. Database Systems – A practical
approach to design, implementation and management. Ed. 4,
Addison Wesley, 2005.

COURTNEY, J. F.; PARADICE, D. B.; BREWER, K. L.; GRAHAM, J. C.
Database Systems for Management. Ed. 3, 2010.

DATE, C. J. An Introduction to Database Systems. Ed. 8, Pearson
Education, 2004.

ELMASRI, Ramez; NAVATHE, Shamkant. Sistemas de Banco de Dados.
6ª ed. São Paulo : Pearson Addison-Wesley, 2011.

SILBERSCHATZ, A.; KORTH, H.; SUDARSHAN, S. Database System
Concepts. Ed. 6, 2011.
Download

Slides das aulas - Christiano Santos