IBD Aulas
IBD Aulas
IBD Aulas
17 de fevereiro de 2024
Sistema de Gerenciamento de Banco de Dados
Banco de Dados
Um banco de dados é uma coleção de dados relacionados. Sendo que os dados são fatos
conhecidos que podem ser registrados e possuem significado implı́cito. Por exemplo, consi-
dere os nomes, números de telefone e endereços das pessoas que você conhece. Você pode
ter registrado esses dados em uma agenda ou, talvez, os tenha armazenado em um disco
rı́gido, usando um computador pessoal e um software como Microsoft Access ou Excel. Essa
coleção de dados relacionados, com um significado implı́cito, é um banco de dados.
(Centro Educacional Stella Dos Cherubins Guimarães Trois) • IBD • 17 de fevereiro de 2024 • (2/132)
Sistema de Gerenciamento de Banco de Dados
Banco de Dados
Porém, o uso comum do termo banco de dados normalmente é mais restrito e tem as seguintes
propriedades implı́citas:
• Um banco de dados representa algum aspecto do mundo real, às vezes chamado de
minimundo ou de universo de discurso (UoD — Universe of Discourse). As mudanças
no minimundo são refletidas no banco de dados.
• Um banco de dados é uma coleção logicamente coerente de dados com algum significado
inerente. Uma variedade aleatória de dados não pode ser corretamente chamada de
banco de dados.
• Um banco de dados é projetado, construı́do e populado com dados para uma finalidade
especı́fica. Ele possui um grupo definido de usuários e algumas aplicações previamente
concebidas nas quais esses usuários estão interessados.
(Centro Educacional Stella Dos Cherubins Guimarães Trois) • IBD • 17 de fevereiro de 2024 • (3/132)
Sistema de Gerenciamento de Banco de Dados
Banco de Dados
Em outras palavras, um banco de dados tem alguma fonte da qual o dado é derivado, algum
grau de interação com eventos no mundo real e um público que está ativamente interessado
em seu conteúdo. Os usuários finais de um banco de dados podem realizar transações
comerciais (por exemplo, um cliente compra uma câmera) ou eventos podem acontecer (por
exemplo, uma funcionária tem um filho), fazendo que a informação no banco de dados mude.
Para que um banco de dados seja preciso e confiável o tempo todo, ele precisa ser um reflexo
verdadeiro do minimundo que representa; portanto, as mudanças precisam ser refletidas no
banco de dados o mais breve possı́vel.
(Centro Educacional Stella Dos Cherubins Guimarães Trois) • IBD • 17 de fevereiro de 2024 • (4/132)
Sistema de Gerenciamento de Banco de Dados
(Centro Educacional Stella Dos Cherubins Guimarães Trois) • IBD • 17 de fevereiro de 2024 • (5/132)
Sistema de Gerenciamento de Banco de Dados
Outras funções importantes fornecidas pelo SGBD incluem proteção do banco de dados e sua
manutenção por um longo perı́odo. A proteção inclui proteção do sistema contra defeitos
(ou falhas) de hardware ou software e proteção de segurança contra acesso não autorizado
ou malicioso. Um banco de dados grande pode ter um ciclo de vida de muitos anos, de modo
que o SGBD precisa ser capaz de manter o sistema, permitindo que ele evolua à medida que
os requisitos mudam com o tempo.
(Centro Educacional Stella Dos Cherubins Guimarães Trois) • IBD • 17 de fevereiro de 2024 • (6/132)
Sistema de Gerenciamento de Banco de Dados
Não é absolutamente necessário utilizar software de SGBD de uso geral para implementar um
banco de dados computadorizado. Poderı́amos escrever nosso próprio conjunto de programas
para criar e manter o banco de dados, com efeito criando nosso próprio software de SGBD
de uso especial. Em ambos os casos — se usarmos um SGBD de uso geral ou não —, em
geral temos de implementar uma quantidade considerável de software complexo. De fato, a
maioria dos SGBDs é constituı́da de sistemas de software muito complexos.
A união do banco de dados com o software de SGBD é chamada sistema de banco de dados.
(Centro Educacional Stella Dos Cherubins Guimarães Trois) • IBD • 17 de fevereiro de 2024 • (7/132)
Sistema de Gerenciamento de Banco de Dados
Banco de Dados
(Centro Educacional Stella Dos Cherubins Guimarães Trois) • IBD • 17 de fevereiro de 2024 • (8/132)
Banco de Dados
Antes dos Sistemas Gerenciadores de Banco de Dados (SGBD) as aplicações utilizavam sis-
temas de arquivos do Sistema Operacional. Através de arquivos, as aplicações armazenavam
seus dados através das interações com a aplicação. Sendo armazenados em diversos arqui-
vos, precisando de diferentes programas de aplicações para extrair e acrescentar registros,
elevando de formas os custos destas aplicações. Cada um vê o banco de dados ao seu modo;
Representam a abstração de mais alto nı́vel da arquitetura; Construı́dos de forma que sejam
removidos os conflitos entre duas ou mais visões.
(Centro Educacional Stella Dos Cherubins Guimarães Trois) • IBD • 17 de fevereiro de 2024 • (9/132)
Banco de Dados
(Centro Educacional Stella Dos Cherubins Guimarães Trois) • IBD • 17 de fevereiro de 2024 • (10/132)
Banco de Dados
(Centro Educacional Stella Dos Cherubins Guimarães Trois) • IBD • 17 de fevereiro de 2024 • (11/132)
Banco de Dados
Sistema de Arquivo
Vantagens:
• É padrão aberto, não sendo preciso pagar por nenhum software;
• Existem várias ferramentas e editores bons no mercado;
• Simplicidade tanto para usuário como para computadores;
• Separação do conteúdo para a formatação;
• Possibilidade de criar sua própria sintaxe de dados;
• Permite validação, o que torna os testes mais efetivos, e a construção de aplicações bem
mais fáceis.
• Possui suporte a Unicode;
(Centro Educacional Stella Dos Cherubins Guimarães Trois) • IBD • 17 de fevereiro de 2024 • (12/132)
Banco de Dados
Sistema de Arquivo
Desvantagens:
• Problemas de integridades;
• A redundância pode afetar a eficiência para armazenamento, afetando a transmissão e
o processamento, elevando os custos;
• Dificuldade no acesso aos dados;
• Redundância e inconsistência dos dados;
• Isolamento dos dados;
• Problemas de segurança.
• Anomalia de acesso concorrente;
(Centro Educacional Stella Dos Cherubins Guimarães Trois) • IBD • 17 de fevereiro de 2024 • (13/132)
Sistema de Gerenciamento de Banco de Dados
(Centro Educacional Stella Dos Cherubins Guimarães Trois) • IBD • 17 de fevereiro de 2024 • (14/132)
Banco de Dados
(Centro Educacional Stella Dos Cherubins Guimarães Trois) • IBD • 17 de fevereiro de 2024 • (15/132)
Sistema de Gerenciamento de Banco de Dados
(Centro Educacional Stella Dos Cherubins Guimarães Trois) • IBD • 17 de fevereiro de 2024 • (16/132)
Banco de Dados
(Centro Educacional Stella Dos Cherubins Guimarães Trois) • IBD • 17 de fevereiro de 2024 • (17/132)
Banco de Dados
O DBA precisa manter um banco de dados corporativo “no ar” por todo o tempo que o
sistema necessita, sem erros, com rapidez e confiabilidade. Ele precisa conhecer o banco e
suas peculiaridades, pois ele é o responsável pela criação, manutenção e segurança do banco
de dados da empresa. Isto inclui instalar o SGBD e o ajuste da infra-estrutura para permitir
que as aplicações alcancem as bases de dados.
(Centro Educacional Stella Dos Cherubins Guimarães Trois) • IBD • 17 de fevereiro de 2024 • (18/132)
Banco de Dados
(Centro Educacional Stella Dos Cherubins Guimarães Trois) • IBD • 17 de fevereiro de 2024 • (19/132)
Banco de Dados
(Centro Educacional Stella Dos Cherubins Guimarães Trois) • IBD • 17 de fevereiro de 2024 • (20/132)
Banco de Dados
Integridade
(Centro Educacional Stella Dos Cherubins Guimarães Trois) • IBD • 17 de fevereiro de 2024 • (21/132)
Banco de Dados
Redundância
Isso pode significar dois campos diferentes em um único banco de dados ou dois pontos dife-
rentes em vários ambientes ou plataformas de software. Sempre que os dados são repetidos,
basicamente constitui redundância de dados.
A redundância de dados pode ocorrer por acidente, mas também é feita deliberadamente
para fins de backup e recuperação.
(Centro Educacional Stella Dos Cherubins Guimarães Trois) • IBD • 17 de fevereiro de 2024 • (22/132)
Banco de Dados
Inconsistência
A inconsistência trata-se de informações imprecisas, de elementos que não batem uns com
os outros. Quando os mesmos dados existem em formatos diferentes em várias tabelas.
Significa que arquivos diferentes contêm informações diferentes sobre um determinado objeto
ou pessoa. Isso pode causar informações não confiáveis e sem sentido. A redundância de
dados leva à inconsistência de dados.
(Centro Educacional Stella Dos Cherubins Guimarães Trois) • IBD • 17 de fevereiro de 2024 • (23/132)
Sistema de Gerenciamento de Banco de Dados
O MySQL
(Centro Educacional Stella Dos Cherubins Guimarães Trois) • IBD • 17 de fevereiro de 2024 • (24/132)
Sistema de Gerenciamento de Banco de Dados
Um banco de dados relacional armazena dados em tabelas separadas em vez de colocar todos
os dados em um só local. Isso proporciona velocidade e flexibilidade. SQL é a linguagem
padrão mais comum usada para acessar bancos de dados e é definida pelo Padrão ANSI/ISO
SQL. (O padrão SQL vem evoluindo desde 1986 e existem diversas versões disponibilizadas).
(Centro Educacional Stella Dos Cherubins Guimarães Trois) • IBD • 17 de fevereiro de 2024 • (25/132)
Sistema de Gerenciamento de Banco de Dados
O MySQL
Código fonte aberto significa dizer que é possı́vel para qualquer um usar e modificar o
programa. Qualquer pessoa pode fazer download do MySQL pela Internet e usá-lo sem
pagar nada (o MySQL só é cobrado em alguns poucos casos). Se você quiser pode estudar
o código fonte e alterá-lo para adequá-lo às suas necessidades. O MySQL usa a GPL (GNU
General Public License - Licenca Pública Geral GNU) http://www.fsf.org/licenses, para
definir o que você pode e não pode fazer com o software em diferentes situações. Se voce
sentir desconforto com a GPL ou precisar embutir o MySQL em uma aplicação comercial
você pode adquirir a versão comercial licenciada.
(Centro Educacional Stella Dos Cherubins Guimarães Trois) • IBD • 17 de fevereiro de 2024 • (26/132)
Sistema de Gerenciamento de Banco de Dados
O MySQL
(Centro Educacional Stella Dos Cherubins Guimarães Trois) • IBD • 17 de fevereiro de 2024 • (27/132)
Banco de Dados
Para se utilizar, administrar, e trabalhar com um banco de dados é utilizada uma linguagem
padrão, que a maior parte dos SGBD aceitam. Essa linguagem é a SQL (Structured Query
Language - Linguagem de Consulta Estruturada).
A SQL é um conjunto de declarações que são utilizadas para acessar os dados utilizando
gerenciadores de banco de dados. Apesar de nem todos os gerenciadores utilizarem a SQL
a maior parte deles aceitam suas declarações.
A SQL pode ser utilizada para todas as atividades relativas a um banco de dados, podendo
ser utilizada pelo administrador de sistemas, pelo DBA, por programadores, sistemas de
suporte à tomada de decisões e outros usuários finais.
É através dela que você irá criar tabelas, inserir dados, e utilizar o seu banco de dados.
(Centro Educacional Stella Dos Cherubins Guimarães Trois) • IBD • 17 de fevereiro de 2024 • (28/132)
Banco de Dados
Os tipos de dados básicos disponı́veis para atributos são numérico, cadeia ou sequência
de caracteres, cadeia ou sequência de bits, booleano, data e hora.
(Centro Educacional Stella Dos Cherubins Guimarães Trois) • IBD • 17 de fevereiro de 2024 • (29/132)
Banco de Dados
(Centro Educacional Stella Dos Cherubins Guimarães Trois) • IBD • 17 de fevereiro de 2024 • (30/132)
Banco de Dados
(Centro Educacional Stella Dos Cherubins Guimarães Trois) • IBD • 17 de fevereiro de 2024 • (31/132)
Banco de Dados
(Centro Educacional Stella Dos Cherubins Guimarães Trois) • IBD • 17 de fevereiro de 2024 • (32/132)
Banco de Dados
(Centro Educacional Stella Dos Cherubins Guimarães Trois) • IBD • 17 de fevereiro de 2024 • (33/132)
Banco de Dados
(Centro Educacional Stella Dos Cherubins Guimarães Trois) • IBD • 17 de fevereiro de 2024 • (34/132)
Banco de Dados
A cláusula PRIMARY KEY especifica um ou mais atributos que compõem a chave primária
de uma relação. Se uma chave primária tiver um único atributo, a cláusula pode acompanhar
o atributo diretamente.
Exemplo: Dnumero INT PRIMARY KEY;
A integridade referencial é especificada por meio da cláusula FOREIGN KEY (chave estran-
geira)
(Centro Educacional Stella Dos Cherubins Guimarães Trois) • IBD • 17 de fevereiro de 2024 • (35/132)
Banco de Dados
A SQL possui comandos que são utilizados para manipular os bancos de dados, as tabelas
e os registros existentes.
(Centro Educacional Stella Dos Cherubins Guimarães Trois) • IBD • 17 de fevereiro de 2024 • (36/132)
Banco de Dados
(Centro Educacional Stella Dos Cherubins Guimarães Trois) • IBD • 17 de fevereiro de 2024 • (37/132)
Banco de Dados
É um conjunto de instruções usada nas consultas e modificações dos dados armazenados nas
tabelas do banco de dados.
Alguns exemplos:
SELECT - Recupera linhas do banco de dados e permite a seleção de uma ou várias linhas
ou colunas de uma ou várias tabelas
INSERT - Instrução utilizada para inserir dados a uma ou mais tabelas no banco de dados
UPDATE - Instrução utilizada para atualizar dados de uma ou mais tabelas no banco de
dados
DELETE - Instrução utilizada para excluir dados de uma ou mais tabelas no banco de dados
MERGE - Realiza operações de inserção, atualização ou exclusão em uma tabela de destino
com base nos resultados da junção com a tabela de origem
BULK INSET - Importa um arquivo de dados em uma tabela ou exibição do banco de dados
em um formato especificado pelo usuário
(Centro Educacional Stella Dos Cherubins Guimarães Trois) • IBD • 17 de fevereiro de 2024 • (38/132)
Banco de Dados
(Centro Educacional Stella Dos Cherubins Guimarães Trois) • IBD • 17 de fevereiro de 2024 • (40/132)
Banco de Dados
São usados para gerenciar as mudanças feitas por instruções DML . Ele permite que as
declarações a serem agrupadas em transações lógicas.
Alguns exemplos:
COMMIT - É usado para salvar permanentemente qualquer transação no banco de dados.
ROLLBACK - Este comando restaura o banco de dados para o último estado commited.
(Centro Educacional Stella Dos Cherubins Guimarães Trois) • IBD • 17 de fevereiro de 2024 • (41/132)
Banco de Dados
Sintaxe:
CREATE DATABASE nome db ;
onde:
nome db: indica o nome do Banco de Dados a ser criado.
(Centro Educacional Stella Dos Cherubins Guimarães Trois) • IBD • 17 de fevereiro de 2024 • (42/132)
Banco de Dados
Sintaxe:
CREATE TABLE nome tabela (
nome atributo1 tipo [ NOT NULL ],
nome atributo2 tipo [ NOT NULL ],
......
nome atributoN tipo [ NOT NULL ]
PRIMARY KEY(nome atributo)
);
onde:
nome tabela: indica o nome da tabela a ser criada.
nome atributo: indica o nome do campo a ser criado na tabela.
tipo: indica a definição do tipo de atributo ( integer(n), char(n), ... ).
(Centro Educacional Stella Dos Cherubins Guimarães Trois) • IBD • 17 de fevereiro de 2024 • (43/132)
Banco de Dados
PRIMARY KEY: esse é o campo utilizado para que não exista na tabela dois registros
iguais. Ele mantém a integridade do banco de dados. Caso você tente inserir num banco
de dados um registro com uma PRIMARY KEY já existente ele emitirá uma mensagem de
erro e impedirá que o registro seja inserido.
Exemplo:
CREATE table alunos(
codigo int NOT NULL AUTO INCREMENT,
nome VARCHAR(20) NOT NULL ,
telefone CHAR(8) NOT NULL,
PRIMARY KEY(codigo)
);
(Centro Educacional Stella Dos Cherubins Guimarães Trois) • IBD • 17 de fevereiro de 2024 • (44/132)
Banco de Dados
(Centro Educacional Stella Dos Cherubins Guimarães Trois) • IBD • 17 de fevereiro de 2024 • (45/132)
Banco de Dados
Resposta:
CREATE TABLE estudantes(
numerocadastro int NOT NULL auto increment,
nome varchar(35) not null,
turma int,
primary key(numerocadastro)
);
(Centro Educacional Stella Dos Cherubins Guimarães Trois) • IBD • 17 de fevereiro de 2024 • (46/132)
Banco de Dados
COMANDO DROP: Este comando elimina a definição da tabela, seus dados e referências
ou um banco de dados existente.
Sintaxe:
DROP TABLE nome tabela ;
DROP DATABASE nome banco de dados;
Exemplo:
DROP TABLE alunos;
DROP DATABASE curso;
DROP TABLE estudantes;
(Centro Educacional Stella Dos Cherubins Guimarães Trois) • IBD • 17 de fevereiro de 2024 • (47/132)
Banco de Dados
COMANDO ALTER: Este comando permite inserir/eliminar atributos nas tabelas já
existentes.
Sintaxe:
ALTER TABLE nome tabela ADD / DROP (
nome atributo1 tipo [ NOT NULL ],
nome atributoN tipo [ NOT NULL ]
);
(Centro Educacional Stella Dos Cherubins Guimarães Trois) • IBD • 17 de fevereiro de 2024 • (48/132)
Banco de Dados
COMANDO INSERT INTO: A partir do momento em que uma tabela está criada, ela
já pode receber a entrada de dados. Normalmente os programas de gerenciamento de banco
de dados possuem recursos apropriados para executar esta ação, no entanto a linguagem de
consulta estruturada SQL possui o comando INSERT INTO.
Sintaxe:
INSERT INTO nome tabela (campos da tabela)
VALUES (valores);
(Centro Educacional Stella Dos Cherubins Guimarães Trois) • IBD • 17 de fevereiro de 2024 • (49/132)
Banco de Dados
Exemplo:
CREATE TABLE cadfun (
CodFun INTEGER NOT NULL PRIMARY KEY,
Nome CHAR (40) NOT NULL,
Depto CHAR (2),
Funcao CHAR (20),
Salario DECIMAL (10));
(Centro Educacional Stella Dos Cherubins Guimarães Trois) • IBD • 17 de fevereiro de 2024 • (50/132)
Banco de Dados
A obtenção de uma listagem de registros armazenados em uma tabela é uma das tarefas
mais requisitadas em um sistema de gerenciamento de banco de dados. Ela passa a ser uma
das mais importantes no trabalho de gerenciamento e manutenção de dados.
Sintaxe:
SELECT [tipo] campos FROM nome tabela [condição];
VALUES (valores);
(Centro Educacional Stella Dos Cherubins Guimarães Trois) • IBD • 17 de fevereiro de 2024 • (51/132)
Banco de Dados
(Centro Educacional Stella Dos Cherubins Guimarães Trois) • IBD • 17 de fevereiro de 2024 • (52/132)
Banco de Dados
Sintaxe:
UPDATE nome tabela SET campo = expressão [condição];
Em que nome tabela é a indicação da tabela em que se deseja efetuar a atualização dos
registros, campo é a indicação de um campo da tabela, expressão é a indicação do valor
do campo a ser atualizado, condição caracteriza-se por ser um parâmetro opcional que
determina a condição de ação da pesquisa baseada no argumento WHERE.
(Centro Educacional Stella Dos Cherubins Guimarães Trois) • IBD • 17 de fevereiro de 2024 • (53/132)
Banco de Dados
Sintaxe:
DELETE FROM nome tabela [condição];
(Centro Educacional Stella Dos Cherubins Guimarães Trois) • IBD • 17 de fevereiro de 2024 • (54/132)
Banco de Dados
(Centro Educacional Stella Dos Cherubins Guimarães Trois) • IBD • 17 de fevereiro de 2024 • (55/132)
Banco de Dados
Figura: Elmasri and Navathe. Sistemas de banco de dados - 6ª edição. Pearson Education, 2011
(Centro Educacional Stella Dos Cherubins Guimarães Trois) • IBD • 17 de fevereiro de 2024 • (56/132)
Banco de Dados
Um exemplo de aplicação de banco de dados, chamado EMPRESA, que serve para ilustrar
os conceitos básicos do modelo ER e seu uso no projeto do esquema será apresentado. Serão
listados os requisitos de dados para o banco de dados, e depois será criado seu esquema
conceitual passo a passo. O banco de dados EMPRESA registra os funcionários, departa-
mentos e projetos de uma empresa. Suponha que, depois da fase de levantamento e análise
de requisitos, os projetistas de banco de dados ofereçam a seguinte descrição do minimundo
- a parte da empresa que será representada no banco de dados:
(Centro Educacional Stella Dos Cherubins Guimarães Trois) • IBD • 17 de fevereiro de 2024 • (57/132)
Banco de Dados
A digura do slide a seguir mostra como o esquema para essa aplicação de banco de dados
pode ser exibido por meio da notação gráfica conhecida como diagramas ER. Essa figura
será explicada gradualmente à medida que os conceitos do modelo ER forem apresentados.
(Centro Educacional Stella Dos Cherubins Guimarães Trois) • IBD • 17 de fevereiro de 2024 • (59/132)
Banco de Dados
Figura: Elmasri and Navathe. Sistemas de banco de dados - 6ª edição. Pearson Education, 2011
(Centro Educacional Stella Dos Cherubins Guimarães Trois) • IBD • 17 de fevereiro de 2024 • (60/132)
Banco de Dados
Entidades e atributos
Entidades e seus atributos. O objeto básico que o modelo ER representa é uma entidade, que
é algo no mundo real com uma existência independente. Uma entidade pode ser um objeto
com uma existência fı́sica (por exemplo, uma pessoa em particular, um carro, uma casa
ou um funcionário), ou pode ser um objeto com uma existência conceitual (por exemplo,
uma empresa, um cargo ou um curso universitário). Cada entidade possui atributos —
as propriedades especı́ficas que a descrevem. Por exemplo, uma entidade FUNCIONARIO
pode ser descrita pelo nome, idade, endereço, salário e cargo do funcionário. Uma entidade
em particular terá um valor para cada um de seus atributos. Os valores de atributo que
descrevem cada entidade tornam-se uma parte importante dos dados armazenados no banco
de dados.
(Centro Educacional Stella Dos Cherubins Guimarães Trois) • IBD • 17 de fevereiro de 2024 • (61/132)
Banco de Dados
Entidades e atributos
A Figura a seguir mostra duas entidades e os valores de seus atributos. A entidade FUNCIO-
NARIO f1 tem quatro atributos: Nome, Endereco, Idade e Telefone residencial; seus valores
são ‘João Silva,’ ‘Rua das Flores, 751, São Paulo, SP, 07700110’, ‘55’ e ‘13-4749-2630’, res-
pectivamente. A entidade EMPRESA e1 tem três atributos: Nome, Matriz e Presidente;
seus valores são ‘Companhia Modelo’, ‘São Paulo’ e ‘João Silva’, respectivamente.
Figura: Elmasri and Navathe. Sistemas de banco de dados - 6ª edição. Pearson Education, 2011
(Centro Educacional Stella Dos Cherubins Guimarães Trois) • IBD • 17 de fevereiro de 2024 • (62/132)
Banco de Dados
Entidades e atributos
Vários tipos de atributos ocorrem no modelo ER: simples versus composto, valor único
versus multivalorado, e armazenado versus derivado. Primeiro, vamos definir esses tipos de
atributo e ilustrar seu uso por meio de exemplos. Depois, discutiremos o conceito de um
valor NULL para um atributo.
(Centro Educacional Stella Dos Cherubins Guimarães Trois) • IBD • 17 de fevereiro de 2024 • (63/132)
Banco de Dados
(Centro Educacional Stella Dos Cherubins Guimarães Trois) • IBD • 17 de fevereiro de 2024 • (64/132)
Banco de Dados
Atributos compostos são úteis para modelar situações em que um usuário às vezes se refere
ao atributo composto como uma unidade, mas outras vezes se refere especificamente a seus
componentes. Se o atributo composto for referenciado apenas como um todo, não é ne-
cessário subdividi-lo em atributos componentes. Por exemplo, se não for preciso referenciar
os componentes individuais de um endereço (CEP, rua etc.), então o endereço inteiro pode
ser designado como um atributo simples.
(Centro Educacional Stella Dos Cherubins Guimarães Trois) • IBD • 17 de fevereiro de 2024 • (65/132)
Banco de Dados
A maioria dos atributos possui um valor único para uma entidade em particular; tais atri-
butos são chamados de valor único. Por exemplo, Idade é um atributo de valor único
de uma pessoa. Em alguns casos, um atributo pode ter um conjunto de valores para a
mesma entidade — por exemplo, um atributo Cores para um carro, ou um atributo Forma-
cao academica para uma pessoa. Os carros com uma cor têm um único valor, enquanto os
carros com duas cores possuem dois valores de cor. De modo semelhante, uma pessoa pode
não ter formação acadêmica, outra pessoa pode ter, e uma terceira pode ter duas ou mais
formações; portanto, diferentes pessoas podem ter distintos números de valores para o atri-
buto Formacao academica. Esses atributos são chamados de multivalorados. Um atributo
multivalorado pode ter um limite mı́nimo e um máximo para restringir o número de valores
permitidos para cada entidade individual. Por exemplo, o atributo Cores de um carro pode
ser restrito a ter entre um e três valores, se considerarmos que um carro pode ter no máximo
três cores.
(Centro Educacional Stella Dos Cherubins Guimarães Trois) • IBD • 17 de fevereiro de 2024 • (66/132)
Banco de Dados
Em alguns casos, dois (ou mais) valores de atributo estão relacionados - por exemplo, os atri-
butos Idade e Data nascimento de uma pessoa. Para uma entidadede pessoa em particular,
o valor de Idade pode ser determinado pela data atual (hoje) e o valor da Data nascimento
dessa pessoa. O atributo Idade, portanto, é chamado de atributo derivado e considerado de-
rivável do atributo Data nascimento, que é chamado, por sua vez, de atributo armazenado.
Alguns valores de atributo podem ser derivados de entidades relacionadas; por exemplo,
um atributo Numero funcionarios de uma entidade DEPARTAMENTO pode ser derivado
contando-se o número de funcionários relacionados a (trabalhando para) esse departamento.
(Centro Educacional Stella Dos Cherubins Guimarães Trois) • IBD • 17 de fevereiro de 2024 • (67/132)
Banco de Dados
Valores NULL
Em alguns casos, uma entidade em particular pode não ter um valor aplicável para um
atributo. Por exemplo, o atributo Numero apartamento de um endereço só se aplica a
endereços que estão em prédios de apartamento, e não a outros tipos de residências, como
casas. De modo semelhante, um atributo Formacao academica só se aplica a pessoas com
esse tipo de formação. Para tais situações, foi criado um valor especial, chamado NULL. Um
endereço de uma casa teria NULL para seu atributo Numero apartamento, e uma pessoa
sem formação acadêmica teria NULL para Formacao academica. NULL também pode ser
usado quando não conhecemos o valor de um atributo para determinada entidade - por
exemplo, se não soubermos o número do telefone residencial de ‘João Silva’. O significado do
primeiro tipo de NULL é não aplicável, enquanto o significado do segundo é desconhecido. A
categoria desconhecido de NULL pode ser classificada ainda em mais dois casos. O primeiro
caso acontece quando se sabe que o valor do atributo existe, mas está faltando - por exemplo,
se o atributo Altura de uma pessoa for listado como NULL. O segundo caso surge quando
não se sabe se o valor do atributo existe - por exemplo, se o atributo Telefone residencial de
uma pessoa for NULL.
(Centro Educacional Stella Dos Cherubins Guimarães Trois) • IBD • 17 de fevereiro de 2024 • (68/132)
Banco de Dados
Atributos complexos
Observe que, em geral, os atributos compostos e multivalorados podem ser aninhados ar-
bitrariamente. Podemos representar o aninhamento arbitrário ao agrupar componentes de
um atributo composto entre parênteses ( ) e separá-los com vı́rgulas, e ao exibir os atributos
multivalorados entre chaves . Esses atributos são chamados de atributos complexos. Por
exemplo, se uma pessoa pode ter mais de uma residência e cada residência pode ter um
único endereço e vários telefones, um atributo Endereço telefone para uma pessoa pode ser
especificado como a a seguir. Tanto Telefone quanto Endereco são atributos compostos.
(Centro Educacional Stella Dos Cherubins Guimarães Trois) • IBD • 17 de fevereiro de 2024 • (69/132)
Banco de Dados
(Centro Educacional Stella Dos Cherubins Guimarães Trois) • IBD • 17 de fevereiro de 2024 • (70/132)
Banco de Dados
Figura: Elmasri and Navathe. Sistemas de banco de dados - 6ª edição. Pearson Education, 2011
(Centro Educacional Stella Dos Cherubins Guimarães Trois) • IBD • 17 de fevereiro de 2024 • (71/132)
Banco de Dados
(Centro Educacional Stella Dos Cherubins Guimarães Trois) • IBD • 17 de fevereiro de 2024 • (73/132)
Banco de Dados
(Centro Educacional Stella Dos Cherubins Guimarães Trois) • IBD • 17 de fevereiro de 2024 • (74/132)
Banco de Dados
Especificar que um atributo é uma chave de um tipo de entidade significa que a propriedade
anterior da exclusividade precisa ser mantida para cada conjunto de entidades do tipo de
entidade. Logo, essa é uma restrição que proı́be que duas entidades tenham o mesmo valor
para o atributo-chave ao mesmo tempo. Um tipo de entidade também pode não ter chave;
nesse caso, ele é chamado de tipo de entidade fraca.
Diferentemente do modelo relacional, não existe o conceito de chave primária no modelo
ER apresentado; a chave primária será escolhida durante o mapeamento para um esquema
relacional.
(Centro Educacional Stella Dos Cherubins Guimarães Trois) • IBD • 17 de fevereiro de 2024 • (75/132)
Banco de Dados
Figura: Elmasri and Navathe. Sistemas de banco de dados - 6ª edição. Pearson Education, 2011
(Centro Educacional Stella Dos Cherubins Guimarães Trois) • IBD • 17 de fevereiro de 2024 • (76/132)
Banco de Dados
Figura: Elmasri and Navathe. Sistemas de banco de dados - 6ª edição. Pearson Education, 2011
(Centro Educacional Stella Dos Cherubins Guimarães Trois) • IBD • 17 de fevereiro de 2024 • (77/132)
Banco de Dados
Figura: Elmasri and Navathe. Sistemas de banco de dados - 6ª edição. Pearson Education, 2011
(Centro Educacional Stella Dos Cherubins Guimarães Trois) • IBD • 17 de fevereiro de 2024 • (78/132)
Banco de Dados
Figura: Elmasri and Navathe. Sistemas de banco de dados - 6ª edição. Pearson Education, 2011
(Centro Educacional Stella Dos Cherubins Guimarães Trois) • IBD • 17 de fevereiro de 2024 • (79/132)
Banco de Dados
(Centro Educacional Stella Dos Cherubins Guimarães Trois) • IBD • 17 de fevereiro de 2024 • (80/132)
Banco de Dados
(Centro Educacional Stella Dos Cherubins Guimarães Trois) • IBD • 17 de fevereiro de 2024 • (81/132)
Banco de Dados
Por exemplo, considere um tipo de relacionamento TRABALHA PARA entre os dois tipos
de entidade FUNCIONARIO e DEPARTAMENTO, que associa cada funcionário ao depar-
tamento para o qual o funcionário trabalha no conjunto de entidades correspondente. Cada
instância de relacionamento no conjunto de relacionamentos TRABALHA PARA associa
uma entidade FUNCIONARIO a uma entidade DEPARTAMENTO.
(Centro Educacional Stella Dos Cherubins Guimarães Trois) • IBD • 17 de fevereiro de 2024 • (82/132)
Banco de Dados
Figura: Elmasri and Navathe. Sistemas de banco de dados - 6ª edição. Pearson Education, 2011
(Centro Educacional Stella Dos Cherubins Guimarães Trois) • IBD • 17 de fevereiro de 2024 • (83/132)
Banco de Dados
Nos diagramas ER, os tipos de relacionamento são exibidos como caixas em forma de losango,
que são conectadas por linhas retas às caixas retangulares que representam os tipos de
entidade participantes. O nome do relacionamento é exibido na caixa em forma de losango.
(Centro Educacional Stella Dos Cherubins Guimarães Trois) • IBD • 17 de fevereiro de 2024 • (84/132)
Banco de Dados
(Centro Educacional Stella Dos Cherubins Guimarães Trois) • IBD • 17 de fevereiro de 2024 • (85/132)
Banco de Dados
(Centro Educacional Stella Dos Cherubins Guimarães Trois) • IBD • 17 de fevereiro de 2024 • (86/132)
Banco de Dados
(Centro Educacional Stella Dos Cherubins Guimarães Trois) • IBD • 17 de fevereiro de 2024 • (87/132)
Banco de Dados
(Centro Educacional Stella Dos Cherubins Guimarães Trois) • IBD • 17 de fevereiro de 2024 • (88/132)
Banco de Dados
Por outro lado, não esperamos que cada funcionário gerencie um departamento, de modo
que a participação de FUNCIONARIO no tipo de relacionamento GERENCIA é parcial,
significando que uma parte do conjunto de entidades de funcionário está relacionada a alguma
entidade de departamento por meio de GERENCIA, mas não necessariamente todas. Vamos
nos referir à razão de cardinalidade e restrições de participação, juntas, como as restrições
estruturais de um tipo de relacionamento.
Em diagramas ER, a participação total (ou dependência de existência) é exibida como uma
linha dupla que conecta o tipo de entidade participante ao relacionamento, enquanto a
participação parcial é representada por uma linha simples
(Centro Educacional Stella Dos Cherubins Guimarães Trois) • IBD • 17 de fevereiro de 2024 • (89/132)
Banco de Dados
(Centro Educacional Stella Dos Cherubins Guimarães Trois) • IBD • 17 de fevereiro de 2024 • (90/132)
Banco de Dados
(Centro Educacional Stella Dos Cherubins Guimarães Trois) • IBD • 17 de fevereiro de 2024 • (91/132)
Banco de Dados
Para tipos de relacionamento M:N, alguns atributos podem ser determinados pela com-
binação de entidades participantes em uma instância de relacionamento, e não por qualquer
entidade isolada. Esses atributos precisam ser especificados como atributos de relaciona-
mento. Um exemplo é o atributo Horas do relacionamento M:N de TRABALHA EM. O
número de horas por semana que um funcionário trabalha atualmente em um projeto é
determinado por uma combinação funcionário-projeto, e não de maneira separada por qual-
quer entidade.
(Centro Educacional Stella Dos Cherubins Guimarães Trois) • IBD • 17 de fevereiro de 2024 • (92/132)
Banco de Dados
(Centro Educacional Stella Dos Cherubins Guimarães Trois) • IBD • 17 de fevereiro de 2024 • (93/132)
Banco de Dados
Em diagramas ER, tanto um tipo de entidade fraca quanto seu relacionamento de identi-
ficação são distinguidos ao delimitar suas caixas e losangos com linhas duplas. O atributo
de chave parcial é sublinhado com uma linha tracejada ou pontilhada.
(Centro Educacional Stella Dos Cherubins Guimarães Trois) • IBD • 17 de fevereiro de 2024 • (94/132)
Banco de Dados
(Centro Educacional Stella Dos Cherubins Guimarães Trois) • IBD • 17 de fevereiro de 2024 • (95/132)
Banco de Dados
(Centro Educacional Stella Dos Cherubins Guimarães Trois) • IBD • 17 de fevereiro de 2024 • (96/132)
Banco de Dados
Depois de especificar os seis tipos de relacionamento citados, removemos dos tipos de enti-
dade todos os atributos que foram refinados para relacionamentos. Estes incluem Gerente e
Data inicio gerente de DEPARTAMENTO; Departamento gerenciador de PROJETO; De-
partamento, Supervisor e Trabalha em de FUNCIONARIO; e Funcionario de DEPEN-
DENTE. É importante ter o mı́nimo possı́vel de redundância quando projetamos o esquema
conceitual de um banco de dados. Se alguma redundância for desejada no nı́vel de armaze-
namento ou no nı́vel de visão do usuário, ela pode ser introduzida mais tarde.
(Centro Educacional Stella Dos Cherubins Guimarães Trois) • IBD • 17 de fevereiro de 2024 • (97/132)
Banco de Dados
Figura: Elmasri and Navathe. Sistemas de banco de dados - 6ª edição. Pearson Education, 2011
(Centro Educacional Stella Dos Cherubins Guimarães Trois) • IBD • 17 de fevereiro de 2024 • (98/132)
Banco de Dados
Figura: Elmasri and Navathe. Sistemas de banco de dados - 6ª edição. Pearson Education, 2011
(Centro Educacional Stella Dos Cherubins Guimarães Trois) • IBD • 17 de fevereiro de 2024 • (99/132)
Banco de Dados
Figura: Elmasri and Navathe. Sistemas de banco de dados - 6ª edição. Pearson Education, 2011
(Centro Educacional Stella Dos Cherubins Guimarães Trois) • IBD • 17 de fevereiro de 2024 • (100/132)
Banco de Dados
Figura: Elmasri and Navathe. Sistemas de banco de dados - 6ª edição. Pearson Education, 2011
(Centro Educacional Stella Dos Cherubins Guimarães Trois) • IBD • 17 de fevereiro de 2024 • (101/132)
Banco de Dados
Exercı́cio
Desenvolva o Diagrama Entidade Relacionamento para cada uma das seguintes situações:
1. Um aluno realiza vários trabalhos. Um trabalho é realizado por um ou mais alunos.
2. Um diretor dirige no máximo um departamento. Um departamento tem no máximo um
diretor.
3. Um autor escreve vários livros. Um livro pode ser escrito por vários autores.
4. Uma equipe é composta por vários jogadores. Um jogador joga apenas em uma equipe.
5. Um cliente realiza várias encomendas. Uma encomenda diz respeito apenas a um cliente.
(Centro Educacional Stella Dos Cherubins Guimarães Trois) • IBD • 17 de fevereiro de 2024 • (102/132)
Banco de Dados
Respostas
Questão 1:
Questão 2:
(Centro Educacional Stella Dos Cherubins Guimarães Trois) • IBD • 17 de fevereiro de 2024 • (103/132)
Banco de Dados
Respostas
Questão 3:
Questão 4:
Questão 5:
(Centro Educacional Stella Dos Cherubins Guimarães Trois) • IBD • 17 de fevereiro de 2024 • (104/132)
Banco de Dados
Operadores Aritméticos
(Centro Educacional Stella Dos Cherubins Guimarães Trois) • IBD • 17 de fevereiro de 2024 • (105/132)
Banco de Dados
Operadores Aritméticos
Pode-se utilizar o comando SELECT para selecionar registros em que a condição está for-
necida com um cálculo.
Por exemplo, apresentar os registros dos funcionários que ganham acima de 1.700,00 (valor
do salário) mais comissão de 50,00 (totalizando 1.750,00). Desta forma poderia ser executado
o comando:
É possı́vel efetuar cálculos tanto para apresentação de listagem como para efetivação de
atualizações de registros, por exemplo:
UPDATE Cadfun SET Salario = Salario * 10 WHERE CodFun = 7;
Os cálculos podem Ter sua prioridade matemática alterada com a utilização de parênteses.
(Centro Educacional Stella Dos Cherubins Guimarães Trois) • IBD • 17 de fevereiro de 2024 • (106/132)
Banco de Dados
Operadores Relacionais
(Centro Educacional Stella Dos Cherubins Guimarães Trois) • IBD • 17 de fevereiro de 2024 • (107/132)
Banco de Dados
Operadores Lógicos
(Centro Educacional Stella Dos Cherubins Guimarães Trois) • IBD • 17 de fevereiro de 2024 • (108/132)
Banco de Dados
Operadores Lógicos
O operador do tipo AND é utilizado quando dois ou mais relacionamentos lógicos de uma de-
terminada condição necessitam ser verdadeiros. Em seguida é apresentada a tabela-verdade
para este tipo de operador:
Condição 1 Condição 2 Resultado
Falsa Falsa Falso
Verdadeira Falsa Falso
Falsa Verdadeira Falso
Verdadeira Verdadeira Verdadeiro
O operador do tipo AND faz com que somente seja executada uma determinada operação
se todas as condições mencionadas forem simultaneamente verdadeiras, gerando assim um
resultado lógico verdadeiro.
SELECT * FROM cadfun WHERE (Depto = ‘5’ ) AND (Funcao = ‘VENDE-
DOR’);
O exemplo anterior efetua a apresentação dos dados de todos os funcionários que pertencem
ao departamento 5 e que sejam vendedores.
(Centro Educacional Stella Dos Cherubins Guimarães Trois) • IBD • 17 de fevereiro de 2024 • (109/132)
Banco de Dados
Operadores Lógicos
O operador OR é utilizado quando pelo menos um dos relacionamentos lógicos (quando
houver mais de um relacionamento) de uma condição necessita ser verdadeiro. Em seguida
é apresentada a tabela-verdade para este tipo de operador:
Condição 1 Condição 2 Resultado
Falsa Falsa Falso
Verdadeira Falsa Verdadeiro
Falsa Verdadeira Verdadeiro
Verdadeira Verdadeira Verdadeiro
O operador OR faz com que seja executada uma determinada operação se pelo menos uma
das condições mencionadas gerar um resultado lógico verdadeiro.
SELECT * FROM cadfun WHERE (Funcao = ‘SUPERVISORA’ ) OR (Funcao
= ‘SUPERVISOR’);
O exemplo anterior efetua a apresentação dos dados de todos os funcionários que tenham a
função de supervisora ou a função de supervisor.
(Centro Educacional Stella Dos Cherubins Guimarães Trois) • IBD • 17 de fevereiro de 2024 • (110/132)
Banco de Dados
Operadores Lógicos
O operador do tipo NOT é utilizado quando se necessita estabelecer que uma determinada
condição deve não ser verdadeira ou deve não ser falsa. O operador NOT se caracteriza por
inverter o estado lógico de uma condição. Em seguida é apresentada a tabela-verdade para
este tipo de operador:
Condição Resultado
Verdadeira Falso
Falsa Verdadeiro
O operador NOT faz com que seja executada uma determinada operação, invertendo o
resultado lógico da condição.
SELECT * FROM cadfun WHERE NOT (Funcao = ‘VENDEDOR’ );
O exemplo anterior efetua a apresentação dos dados de todos os funcionários que na sua
função não são vendedores (VENDEDOR)
(Centro Educacional Stella Dos Cherubins Guimarães Trois) • IBD • 17 de fevereiro de 2024 • (111/132)
Banco de Dados
Operadores Auxiliares
A linguagem de consulta estruturada SQL possui, além dos operadores aritméticos, relaci-
onais e lógicos, alguns outros operadores auxiliares que facilitam a definição de condições
para comandos como SELECT, UPDATE e DELETE, quando da utilização da cláusula
WHERE.
• Definição de Intervalos: A definição de intervalos de valores para a cláusula WHERE
em uma condição pode ser obtida com BETWEEN, que possui a seguinte sintaxe:
expressão [NOT] BETWEEN valor mı́nimo AND valor máximo
em que expressão pode ser a definição de um campo, valor numérico, sequência de
caracteres, sendo que este parâmetro serve para definir a efetivação da comparação;
valor mı́nimo é a definição do menor valor da faixa de intervalo e valor máximo é a
definição do maior valor da faixa de intervalo.
SELECT * FROM cadfun WHERE Salario BETWEEN 1700 AND 2000;
(Centro Educacional Stella Dos Cherubins Guimarães Trois) • IBD • 17 de fevereiro de 2024 • (112/132)
Banco de Dados
Operadores Auxiliares
(Centro Educacional Stella Dos Cherubins Guimarães Trois) • IBD • 17 de fevereiro de 2024 • (113/132)
Banco de Dados
Operadores Auxiliares
• Verificação de Caracteres: Para verificar sequências de caracteres dentro de um
determinado campo do tipo string (CHAR ou VARCHAR), pode-se utilizar junto à
cláusula WHERE uma condição baseada no uso do operador LIKE que possui a seguinte
sintaxe:
expressão [NOT] LIKE valor
Em que expressão pode ser a definição de um campo, valor numérico, seqüência de
caracteres, sendo que este parâmetro serve para definir a efetivação da comparação;
valor é a definição do que será pesquisado.
Caso a expressão analisada coincida com o valor indicado após o operador LIKE, a ação
estabelecida antes da cláusula WHERE será executada.
O exemplo seguinte efetua a apresentação dos dados de todos os funcionários cujo
nome comece com a letra A note no exemplo o uso do caractere % (porcentagem) que
representa um conjunto de caracteres que será desconsiderado na sequência avaliada.
SELECT * FROM cadfun WHERE Nome LIKE ‘A%’;
(Centro Educacional Stella Dos Cherubins Guimarães Trois) • IBD • 17 de fevereiro de 2024 • (114/132)
Banco de Dados
Operadores Auxiliares
• Verificação de Caracteres:
O exemplo seguinte efetua a apresentação dos dados de todos os funcionários que pos-
suam como Segunda letra de seus nomes A. Note no exemplo o uso do caractere
(underline), que representa um úncio caractere na seqüênica avaliada.
SELECT * FROM cadfun WHERE Nome LIKE ‘ A%’;
O próximo exemplo apresenta os dados de todos os funcionários que possuam a seqüência
de caracteres AN em qualquer posição de seu nome.
SELECT * FROM cadfun WHERE Nome LIKE ‘%AN%’;
(Centro Educacional Stella Dos Cherubins Guimarães Trois) • IBD • 17 de fevereiro de 2024 • (115/132)
Banco de Dados
Operadores Auxiliares
• Se vazio: Uma ocorrência bastante útil é verificar a existência de campos que possuam
valores em branco ou não. Nesses casos, utiliza-se junto à cláusula WHERE em uma
condição o operador IS NULL que possui a seguinte sintaxe:
expressão IS NOT NULL
Em que a expressão pode ser a definição de um campo, valor numérico, sequência de
caracteres, sendo que este parâmetro serve par definir a efetivação da comparação.
O exemplo seguinte apresentaria os dados de todos os registros que tivessem o campo
Nome gravado em brando, sem nenhum conteúdo (NULL).
SELECT * FROM cadfun WHERE Nome IS NULL;
Como não existe nenhum registro que atenda a este critério, não será apresentado
nenhum registro.
Observação: o operador lógico NOT é opcional e serve para inverter a ação condicional
dos operadores BETWEEN, IN, LIKE e IS NULL.
(Centro Educacional Stella Dos Cherubins Guimarães Trois) • IBD • 17 de fevereiro de 2024 • (116/132)
Banco de Dados
Funções Agregadas
Em que função pode ser AVG, MAX, MIN e SUM (no caso da função COUNT, terá um
parâmetro a mais, antes do valor ALL, que será a representado por um caractere asterisco
do número de registros da tabela que atenda a uma condição); all representa a contagem de
todos os valores não vazios (NULL) no campo indicado; distinct é a definição dos valores
não vazios e únicos existentes no campo avaliado; expressão corresponde ao valor avaliado
ou campo da tabela informado.
(Centro Educacional Stella Dos Cherubins Guimarães Trois) • IBD • 17 de fevereiro de 2024 • (117/132)
Banco de Dados
Funções Agregadas
O exemplo seguinte apresenta a média aritmética dos salários de todos os funcionários.
SELECT AVG(Salario) FROM cadfun;
Este exemplo apresenta a média aritmética dos salários de todos os funcionários do depar-
tamento 3.
SELECT AVG(Salario) FROM cadfun WHERE Depto = ‘3’;
O exemplo seguinte apresenta a soma aritmética dos salários de todos os funcionários.
SELECT SUM(Salario) FROM cadfun;
O exemplo seguinte apresenta a soma aritmética dos salários de todos os funcionários do
departamento 5.
SELECT SUM(Salario) FROM cadfun WHERE Depto = ‘5’;
O exemplo seguinte apresenta o maior salário existente entre todos os funcionários.
SELECT MAX(Salario) FROM cadfun;
(Centro Educacional Stella Dos Cherubins Guimarães Trois) • IBD • 17 de fevereiro de 2024 • (118/132)
Banco de Dados
Funções Agregadas
(Centro Educacional Stella Dos Cherubins Guimarães Trois) • IBD • 17 de fevereiro de 2024 • (119/132)
Banco de Dados
Nas atividades anteriores foram vistos detalhes de como criar um banco de dados, criar uma
tabela, inserir dados, atualizar dados, remover dados, alterar a estrutura de uma tabela
existentes e diversos outros detalhes, mas todos relacionados a apenas uma tabela.
Para exemplificar este tipo de operação, vamos criar um banco de dados denominado dep-
cobra (Departamento de cobrança), o qual possuirá duas tabelas: uma denominada cliente
e a outra denominada venda, que serão posteriormente relacionadas.
(Centro Educacional Stella Dos Cherubins Guimarães Trois) • IBD • 17 de fevereiro de 2024 • (120/132)
Banco de Dados
Tabela cliente: A tabela cliente será utilizada para armazenar os dados dos clientes que
efetuam compras a prazo. Ela deve ser criada de acordo com a seguinte estrutura:
(Centro Educacional Stella Dos Cherubins Guimarães Trois) • IBD • 17 de fevereiro de 2024 • (121/132)
Banco de Dados
Tabela cobrança: A tabela de cobranca será utilizada para armazenar os dados das com-
pras a prazo efetuadas pelos clientes. Ela deve ser criada de acordo com a seguinte estrutura:
(Centro Educacional Stella Dos Cherubins Guimarães Trois) • IBD • 17 de fevereiro de 2024 • (122/132)
Banco de Dados
(Centro Educacional Stella Dos Cherubins Guimarães Trois) • IBD • 17 de fevereiro de 2024 • (123/132)
Banco de Dados
(Centro Educacional Stella Dos Cherubins Guimarães Trois) • IBD • 17 de fevereiro de 2024 • (124/132)
Banco de Dados
Observe que a linha de código anterior determina após o comando SELECT a apresentação
em primeiro lugar do campo Duplic da tabela venda, depois a apresentação do campo Nome
da tabela cliente. Perceba que após o comando FROM estão sendo mencionados os nomes
das tabelas que devem ser lidas e por último, após a cláusula WHERE, está sendo indicada a
relação dos campos Codigo da tabela cliente com o campo CodCli da tabela venda. Perceba
que a relação existente determina apresentação dos dados que possuam os mesmos valores
entre os campos Codigo e CodCli.
(Centro Educacional Stella Dos Cherubins Guimarães Trois) • IBD • 17 de fevereiro de 2024 • (125/132)
Banco de Dados
Outro exemplo de extração relacionada pode ser a apresentação de uma listagem ordenada
por nomes de clientes, mostrando a relação de duplicatas que cada um possui em carteira
(a pagar) e seus respectivos valores.
(Centro Educacional Stella Dos Cherubins Guimarães Trois) • IBD • 17 de fevereiro de 2024 • (126/132)
Banco de Dados
(Centro Educacional Stella Dos Cherubins Guimarães Trois) • IBD • 17 de fevereiro de 2024 • (127/132)
Banco de Dados
Uma outra situação poderia ser a apresentação dos nomes dos clientes e a data de venci-
mento de todas as duplicatas pendentes no mês de novembro de 2002. A listagem deve ser
apresentada na ordem cronológica de vencimento.
(Centro Educacional Stella Dos Cherubins Guimarães Trois) • IBD • 17 de fevereiro de 2024 • (128/132)
Banco de Dados
Informações agrupadas
O agrupamento de informações entre tabelas relacionadas vai depender da forma como a
relação é projetada. Outra informação a ser obtida é a quantidade de duplicatas existente
em carteira de cada cliente.
Para solucionar esta necessidade, deve-se utilizar junto a WHERE a cláusula GROUP BY,
como é demonstrado em seguida.
SELECT cliente.Nome, COUNT(*) FROM cliente, venda
WHERE cleinte.Codigo = venda.CodCli
GROUP BY cliente.Nome;
O comando anterior irá fazer a apresentação de uma listagem com duas colunas: a primeira
como o nome do cliente da tabela cliente e a segunda com o valor total de referências
encontradas na tabela venda. Perceba que a cláusula GROUP BY faz com que as informações
sejam agrupadas pelo nome do cliente.
A função COUNT efetua a contagem de acordo com a condição estabelecida em WHERE,
segundo a forma de agrupamento. Isto faz com que a contagem seja inicializada para cada
grupo de informação, fornecendo o valor total de referências de um determina cliente da
tabela cliente existente na tabela venda.
(Centro Educacional Stella Dos Cherubins Guimarães Trois) • IBD • 17 de fevereiro de 2024 • (129/132)
Banco de Dados
Definição de apelidos
A linguagem de consulta estruturada SQL fornece um recurso muito útil para facilitar a
leitura e a definição de referências de nomes de tabelas, colunas (campos) e fórmulas. Este
recurso se baseia na possibilidade de dar um nome (de apelidar) diferente de uma tabela,
campo ou fórmula do nome nela existente. Isto é conseguido com um comando adicional
utilizado junto do comando SELECT. Trata-se do comando AS.
Imagine a necessidade de apresentar uma listagem identificada pelos apelidos Cliente (para
representar o campo Nome) e Vencidos (para representar o número de duplicatas vencidas
existente na tabela venda que será calculada pela função COUNT) de todos os clientes que
possuem tı́tulos com vencimento anterior a 31/12/1999.
SELECT cliente.Nome AS Cliente, COUNT(*) AS Vencidos
FROM cliente, venda
WHERE cliente.Codigo = venda.CodCli
AND Vencto <= ‘1999-12-31’
GROUP BY cliente.Nome
ORDER BY cliente.Nome;
(Centro Educacional Stella Dos Cherubins Guimarães Trois) • IBD • 17 de fevereiro de 2024 • (130/132)
Banco de Dados
Normalização
(Centro Educacional Stella Dos Cherubins Guimarães Trois) • IBD • 17 de fevereiro de 2024 • (131/132)
Banco de Dados
Normalização
(Centro Educacional Stella Dos Cherubins Guimarães Trois) • IBD • 17 de fevereiro de 2024 • (132/132)
References I
(Centro Educacional Stella Dos Cherubins Guimarães Trois) • IBD • 17 de fevereiro de 2024 • (132/132)