Buscar

Administração de Banco de Dados slides

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 279 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 279 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 279 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Profa. MSc. Sandra Bozolan
UNIDADE I
Administração de
Banco de Dados
 O desenvolvimento de um sistema de informação envolve a análise e o projeto de dois 
componentes: os dados e os processos. 
 O projeto de dados é considerado a parte estática do sistema, uma vez que diz 
respeito a um universo persistente de características que dificilmente sofre 
modificações após a sua definição.
Introdução a banco de dados
 O projeto de processos, por sua vez, é chamado de parte dinâmica, uma vez que as tarefas 
a serem realizadas sobre os dados podem variar conforme ocorre a evolução do sistema.
 Considera-se projeto de um banco de dados a análise, o projeto e a implementação dos 
dados persistentes de uma aplicação, levando em conta a determinação da sua semântica 
(abstração dos dados de uma realidade) e, posteriormente, o modelo de dados e o Sistema 
Gerenciador de Banco de Dados (SGBD) a serem adotados.
Introdução a banco de dados
 Etapa em que são coletadas informações sobre os dados de interesse da aplicação, seu uso, 
ou seja, as operações de manipulação sobre elas e suas relações. Para a realização dessa 
etapa, são necessárias tarefas como entrevistas com os futuros usuários do sistema, análise 
de documentações disponíveis, arquivos, relatórios etc. O resultado normalmente é uma 
descrição dos requisitos da aplicação mais detalhada e clara possível. Caso nenhuma 
metodologia de engenharia de software esteja sendo empregada. 
 Nível de abstração: modelo lógico.
Análise de requisitos (modelo lógico)
Categoria (@codCat: inteiro, nomeCat: literal[30])
Produto (@codCat: inteiro, descProd: literal [50], 
quantProd: real, precoProd:real, codcatProd; inteiro)
 Nessa etapa, é realizado o que chamamos de modelagem conceitual: são analisados os fatos 
de interesse, isto é, as entidades ou conjunto de ocorrências de dados e seus 
relacionamentos, juntamente com seus atributos e propriedades ou características, e 
construída uma notação gráfica para facilitar o entendimento dos dados e suas relações, tanto 
para os analistas quanto para os futuros usuários.
 Essa etapa resulta em um modelo conceitual, em que a semântica da realidade deve estar 
correta. A ferramenta mais usada nessa etapa é o Diagrama Entidade-Relacionamento (E-R).
Projeto conceitual
 Nessa etapa, o desenvolvimento do banco de dados começa a se voltar para o ambiente de 
implementação, uma vez que é feita a conversão do modelo conceitual para um modelo de 
dados de um banco de dados (modelo lógico). Esse modelo de dados pode ser relacional, 
orientado a objetos ou dimensional, por exemplo. Essa etapa se baseia no uso de regras de 
mapeamento de um tipo de diagrama de acordo com o modelo de dados definido. Pode ser 
um diagrama E-R ou um diagrama de classes, entre outros. 
Projeto lógico
 Esta última etapa realiza a adequação do modelo lógico gerado na etapa anterior ao formato 
de representação de dados do Sistema Gerenciador de Banco de Dados escolhido para a 
implementação. Para a realização dessa etapa, deve-se conhecer os elementos e o 
funcionamento do SGBD, para a criação da estrutura lógica definida no modelo. O resultado 
é a especificação do esquema da aplicação e da implementação das restrições 
de integridade.
Projeto físico
 O Modelo Relacional é o modelo de dados dominante no mercado ainda hoje e surgiu na 
década de 1970. Ele foi proposto por Edgar Frank Codd e se tornou um marco em como 
pensar em banco de dados. Codd desconectou a estrutura lógica do banco de dados do 
método de armazenamento físico, organizando os dados em um conjunto de relações.
Modelo de Chen
Fonte: 
https://www.lucidchart.com/page
s/pt/o-que-e-diagrama-entidade-
relacionamento
 A partir da década de 1980, com o advento da computação pessoal, novos modelos 
começaram a ser definidos, visando atender às necessidades de aplicações ditas não 
convencionais, ou seja, aplicações cujas entidades apresentam uma estrutura que não se 
adéqua bem com a organização relacional de dados. 
 A Linguagem Estruturada de Consultas (SQL) se torna a linguagem padrão mundial para os 
Sistemas Gerenciadores de Banco de Dados. Nessa década, surge também o modelo 
cliente-servidor, que muda a forma como os sistemas seriam concebidos.
A Linguagem estruturada de consultas
A grande maioria dos bancos de dados conhecidos hoje comercialmente foi criada nessa 
época. Com a evolução, começaram a surgir conceitos que são utilizados até os dias 
de hoje, como: 
 OLTP – Online Transaction Process (Processos de Transação em Tempo Real) 
 OLAP – Online Analytical Process (Processos Analíticos em Tempo Real)
Conceitos de tipos de banco de dados
Open Source – software livre, que são os que mudariam o conceito de posse de um software. 
Os sistemas open source se baseiam em quatro leis, ou quatro liberdades, que são:
 Liberdade nº 0: a liberdade de executar o programa, para qualquer propósito. 
 Liberdade nº 1: a liberdade de estudar como o programa funciona e adaptá-lo para suas 
necessidades. Acesso ao código-fonte é um pré-requisito para essa liberdade.
Conceitos de tipos de banco de dados
 Liberdade nº 2: a liberdade de redistribuir cópias de modo que você possa ajudar ao 
seu próximo. 
 Liberdade nº 3: a liberdade de aperfeiçoar o programa e liberar seus aperfeiçoamentos, de 
modo que toda a comunidade se beneficie. Acesso ao código-fonte é um pré-requisito para 
essa liberdade.
Conceitos de tipos de banco de dados
Considerada uma das fases mais importantes no projeto de banco de dados. Nessa etapa, o 
desenvolvimento do banco de dados começa a se voltar para o ambiente de implementação, 
uma vez que é feita a conversão do modelo conceitual para um modelo de dados de um banco 
de dados. A qual modelo de dados estamos nos referindo?
a) Projeto conceitual.
b) Projeto estrutural.
c) Projeto lógico.
d) Projeto físico
e) Projeto de rede.
Interatividade
Considerada uma das fases mais importantes no projeto de banco de dados. Nessa etapa, o 
desenvolvimento do banco de dados começa a se voltar para o ambiente de implementação, 
uma vez que é feita a conversão do modelo conceitual para um modelo de dados de um banco 
de dados. A qual modelo de dados estamos nos referindo?
a) Projeto conceitual.
b) Projeto estrutural.
c) Projeto lógico.
d) Projeto físico
e) Projeto de rede.
Resposta
 O modelo hierárquico foi definido com base na observação de que muitas entidades do 
mundo real são organizadas hierarquicamente. Nesse modelo, os dados são organizados em 
um conjunto de tipos de registros (entidades), interconectados por meio de 
ligações (relacionamentos).
Modelo hierárquico
Fonte: Livro-texto.
Cecília Taubaté 526-7890 Lauro Mauá 257-6425 Elaine Guarujá 257-1376
800,004876-2100,682576-53584-7 576,805657-3 300,00
 Similar ao modelo hierárquico, os dados no modelo de redes são organizados em tipos e 
ligações entre dois tipos de registros. Não existe restrição hierárquica, ou seja, quaisquer 
dois tipos de registros podem se relacionar. 
 Assim, tanto o esquema quanto as ocorrências de dados são visualizados como 
um grafo direcionado. Um esquema no modelo de redes é chamado de diagrama de 
estrutura de dados.
Modelo em rede
Fonte: Livro-texto.
Nome_Cli Cidade_Cli Tel_Cli
Cliente Conta
#_CC Saldo
Um banco de dados é uma estante de coleção de dados que, tipicamente, descreve as 
atividades de uma ou mais organizações relacionadas. Por exemplo, um banco de dados de 
uma universidade poderia conter informações sobre:
 Entidades como: alunos, professores, cursos e turmas;
 Relacionamentos entre as entidades, como a matrícula dos alunos nos cursos, os cursos 
ministrados pelos professores e o uso de salas por cursos.
Banco de dados
Fonte: https://portal.educacao.go.gov.br/ 
Exemplo de entidades:
Alunos e professores
 Elmasri (2011) dá uma definição: “[...] um banco de dados é uma coleção de dados 
relacionados. Dadossão traduzidos em fatos conhecidos que podem ser registrados e 
possuem significado implícito. Por exemplo, considere os nomes, números de telefone e 
endereços das pessoas que você conhece. Essa coleção de dados relacionados, com um 
significado implícito, é um banco de dados”.
Banco de dados – SGBD
Fonte: https://roxpartner.com/consultoria-de-banco-de-dados-rox-partner/
 Existem diversas plataformas de banco de dados, e a escolha depende do orçamento e de 
políticas de investimento em TI nas organizações. Houve um tempo em que apenas as 
plataformas proprietárias ofereciam produtos de qualidade e segurança, e somente 
empresas com elevado capital tinham condições de adquirir esses produtos. Mas com o 
amadurecimento das plataformas open source, as pequenas empresas também podem 
desenvolver seu projeto de banco de dados de forma tão eficiente e segura quanto as 
empresas de grande porte. 
Dentre as empresas fornecedoras de plataformas proprietárias de banco de dados, 
destacamos as seguintes: 
 Oracle – www.oracle.com 
 Microsoft – www.microsoft.com 
 Sybase (SAP) – www.sybase.com 
 IBM – www.ibm.com
Banco de dados de plataformas proprietárias 
 Apesar de oferecerem plataformas pagas, elas costumam disponibilizar uma versão gratuita 
do banco de dados. Mas essas versões gratuitas não são recomendadas para projetos em 
sistemas de produção, porque possuem limitações se comparadas com a versão paga. No 
site dos fornecedores, há as recomendações e restrições para o uso dessas versões. 
Normalmente elas são usadas na fase inicial do projeto para ajudar na escolha da plataforma 
definitiva que será posteriormente adquirida. Funcionam como um test drive, em que podemos 
conhecer o produto sem custos: 
 MySQL – www.mysql.com
 PostgreSQL – www.postgresql.org 
 Cassandra – cassandra.apache.org 
 SQLite – www.sqlite.org
Banco de dados de plataformas open source
 Existem diferentes tipos de bancos de dados, os mais conhecidos são:
 relacionais; 
 não relacionais; 
 orientados a objeto.
Tipo de banco de dados
 Bancos relacionais são os bancos derivados das primeiras pesquisas, realizadas em meados 
da década de 1970. São o tipo de banco mais utilizado no mundo. Os dados são separados 
em entidades, conforme cada assunto, e gravados como atributos dessas entidades. 
Permitem que essas entidades se relacionem entre si e proporcionam uma forma rápida e 
segura de armazenar e recuperar os dados.
Os mais conhecidos são: 
 SQL Server Microsoft – www.microsoft.com/sqlserver
 MySQL – www.mysql.com 
 PostgreSQL – www.postgresql.org 
 Informix – www-01.ibm.com/software/data/Informix 
 DB2 – www-01.ibm.com/software/data/db2 
 Sybase – www.sybase.com 
 Oracle – www.oracle.com
Banco de dados relacionais
 Um banco de dados é dito não relacional quando não suporta instruções e operações de 
junção na linguagem SQL. São muito utilizados em sistemas para a internet, por causa da 
velocidade e da escalabilidade maior em relação aos bancos relacionais. As primeiras 
pesquisas surgiram em 1998, mas o termo NoSQL (not only sql) como conhecemos hoje 
surgiu em 2009. 
Os mais conhecidos são: 
 Hadoop – hadoop.apache.org 
 Cassandra – cassandra.apache.org 
 Hypertable – hypertable.org 
 Amazon Simple DB – aws.amazon.com/pt/simpledb 
 CloudData – www.cloudata.org
Banco de dados não relacionais
 Dizemos que um banco de dados é orientado a objetos quando cada informação é 
armazenada na forma de objetos, ou seja, utiliza a estrutura de dados chamada de 
orientação a objetos. 
Os mais conhecidos são:
 db4objects – www.db4o.com
 GemStone – www.gemstone.com
 Caché – www.intersystems.com.br
 Zope – zope.org
Banco de dados orientados a objetos
 Um sistema de gerenciamento de banco de dados (SGBD) é uma aplicação informalizada 
que fornece a interface entre os dados que serão armazenados fisicamente no banco de 
dados e os usuários (pessoa ou aplicação) desses dados. 
 Assim, o usuário deixa de saber o formato dos dados e como e onde eles serão 
armazenados, pesquisados, ordenados etc. 
 É o sistema de gerenciamento de banco de dados que tem a responsabilidade de executar 
cada uma das tarefas.
Sistema de gerenciamento de banco de dados
Fonte: D365 Database Sync Solution | Connecting Software
Um banco de dados é dito não relacional quando não suporta instruções e operações de 
junção na linguagem SQL. São muito utilizados em sistemas para a internet, por causa da 
velocidade e da escalabilidade maior em relação aos bancos relacionais. Assinale abaixo qual 
dos bancos de dados não é conhecido com um banco de dados não relacional:
a) Hadoop – hadoop.apache.org.
b) Hypertable – hypertable.org. 
c) Amazon Simple DB – aws.amazon.com/pt/simpledb. 
d) CloudData – www.cloudata.org.
e) Sybase – www.sybase.com.
Interatividade
Um banco de dados é dito não relacional quando não suporta instruções e operações de 
junção na linguagem SQL. São muito utilizados em sistemas para a internet, por causa da 
velocidade e da escalabilidade maior em relação aos bancos relacionais. Assinale abaixo qual 
dos bancos de dados não é conhecido com um banco de dados não relacional:
a) Hadoop – hadoop.apache.org.
b) Hypertable – hypertable.org. 
c) Amazon Simple DB – aws.amazon.com/pt/simpledb. 
d) CloudData – www.cloudata.org.
e) Sybase – www.sybase.com.
Resposta
Com base na definição, as seguintes funções básicas são encontradas:
Método de acesso: duas categorias de linguagem conhecidas como:
 DDL (Data Definition Language) e;
 DML (Data Manipulation Language) devem ser suportadas. 
 A DDL permite a especificação do esquema da organização, ou seja, entidades com seus 
atributos e tipos de dados associados, os relacionamentos entre essas entidades e os 
índices de acesso associados aos atributos. Por esquema, entende-se uma organização 
lógica dos dados de uma realidade, adequados ao modelo de dados do SGBD.
Funções básicas de um SGBD
 A DML permite as operações de manipulação de dados, executadas pelas aplicações 
inclusão, alteração, exclusão e consulta. As consultas devem ser executadas de maneira 
eficaz, procurando minimizar o número de acessos ao meio de armazenamento secundário, 
assim como o volume de dados gerados nos resultados intermediários do processamento 
da consulta. 
 Para tanto, a antecipação da aplicação de filtros e a busca apenas de dados relevantes para 
os relacionamentos, em uma certa etapa do processamento, são exemplos de estratégias 
que são consideradas.
Funções básicas de um SGBD
 Integridade está associada à ideia de dados corretos, consistentes no banco de dados. As 
restrições de integridade se preocupam em manter dados sempre coerentes, verdadeiros 
com a realidade em questão. 
 Para tanto, o SGBD deve disponibilizar uma linguagem para especificação de restrições de 
integridade, chamada de DCL (Data Constraint Language), e por meio dessa linguagem é 
possível programar testes e ações.
Restrições de Integridade (RI)
 Esse controle evita a violação dos dados por agentes e/ou situações não previstas, ou seja, 
as falhas. Políticas de autorização de acesso devem permitir que apenas agentes 
autorizados, sejam usuários ou aplicações, realizem certas operações sobre certos dados. 
Para tanto, faz-se necessário manter uma matriz de autorização, que especifica, para cada 
agente e cada dado, as operações autorizadas. 
 Por dado, entende-se alguma porção do banco de dados, como um ou mais registros, um 
arquivo completo ou vários, alguns campos de um registro etc. O mecanismo de visões 
permite especificar a porção do banco de dados a que um agente tem direito.
Segurança
 A recuperação de falhas deve possibilitar o retorno do banco de dados a um estado 
consistente de seus dados após a ocorrência de uma falha. Para tanto, o SGBD deve manter 
arquivos históricos (log), que cadastram todas as alterações realizadas no banco de dados 
portransações. Entende-se por transação um conjunto de operações de manipulação de 
dados a que é submetido o banco de dados, sendo que todas essas operações devem ser 
efetivadas ou, na ocorrência de uma falha, nada deve ser efetivado, para preservar a 
consistência dos dados.
Segurança
 Os arquivos históricos (log) devem registrar, entre outras coisas, a identificação das 
transações, os arquivos manipulados, os registros atualizados, a operação feita e os valores 
atual e antigo. No caso de falhas de transação ou de sistema, o arquivo histórico (log) deve 
ser consultado e as ações realizadas por transações inacabadas devem ser desfeitas. Caso 
todas as modificações da transação estejam registradas, é possível refazê-la. 
 Já para falhas de meio de armazenamento, que tornam inoperantes as unidades de disco 
onde se encontra o banco de dados, deve-se restaurar o banco de dados a partir do último 
backup realizado e consultar o log para refazer ou desfazer as transações cadastradas após 
esse backup.
Segurança
 Esse controle evita conflitos de acesso simultâneo a um dado por mais de uma transação. Se 
esse controle não existisse, os dados consultados por uma transação poderiam se tornar 
inválidos caso fossem atualizados por outra transação. Esse controle geralmente é feito pelo 
uso de estratégias de bloqueio (lock), que garantem que apenas uma transação manipule um 
dado, durante o espaço de tempo que necessitar, sem que ocorra interferência de 
outras transações.
Controle de concorrência
 Essa funcionalidade do SGBD é uma decorrência direta das vantagens trazidas pelo uso de 
um banco de dados. Independência de dados significa transparência de gerenciamento e 
armazenamento, assim como do esquema global da organização para as aplicações. O 
primeiro caso é chamado de independência física, ou seja, a aplicação não se preocupa com 
detalhes de localização física dos dados ou controles de integridade e segurança.
 A independência lógica garante, pelo mecanismo de visões, que uma aplicação tenha 
condições de especificar a porção do banco de dados a que deseja ter acesso, não 
precisando ter conhecimento do esquema global.
Independência dos dados
 Um SGBD geralmente interage com diversas aplicações de uma organização, assim como 
com os meios de armazenamento de dados. No primeiro caso, a aplicação se vale de 
comandos DML embutidos no seu código. No segundo caso, geralmente existe uma interface 
com o sistema operacional do equipamento para leitura e gravação de dados. 
 Assim, um SGBD lida com diversos níveis de visão de um mesmo dado, de maneira a 
abstrair detalhes da organização dos dados.
Arquitetura básica de um SGBD
 Nível mesmo abstrato, em que se sabem detalhes físicos da organização de um dado, ou 
seja, o esquema físico. É uma estruturação de baixo nível, em que é descrito como os dados 
estão armazenados em termos de bytes. 
 O módulo de gerenciamento de arquivos lida com esse nível de visão dos dados, uma vez 
que localiza, lê e grava registros.
Nível físico
 Nível intermediário, que suporta uma descrição de mais alto nível em relação ao nível físico, 
em que a preocupação está em descrever quais dados são significativos para uma 
organização, isto é, têm semântica, são relevantes para o dia a dia da organização. Nesse 
caso, trabalha-se com os dados em nível de entidades e relacionamentos, tais quais estão 
definidos no esquema. 
 É similar, por analogia, à descrição de um registro em uma linguagem de programação, ou 
seja, trabalha-se com nomes de arquivos e campos, e não com sequências de bytes. Os 
usuários que lidam nesse nível devem ter conhecimento completo de todo o esquema da 
organização, como o administrador do banco de dados ou o usuário especializado.
Nível conceitual
 Nível mais alto de abstração, sendo particular de cada aplicação que manipula dados do 
banco de dados. Nesse caso, cada aplicação pode determinar o universo de dados a que 
deseja ter acesso. Esse universo de dados pode ser uma porção do esquema global da 
organização. Assim sendo, cada aplicação abstrai detalhes irrelevantes, desnecessários para 
seu processamento. Os usuários desse nível são os programas de aplicação. 
Nível de visão
 Os dados são armazenados em áreas chamadas páginas. O tamanho dessas páginas pode 
variar de banco para banco. Nelas, são armazenados os dados e os metadados (são os 
dados dos dados).
 Olhe para o dados em categorias, onde cada dados possui uma forma diferente. 
Conforme a imagem:
Como os dados são armazenados
Fonte: Livro Use A Cabeça! 
Qual nível de arquitetura de banco de dados é considerado uma descrição de um registro em 
uma linguagem de programação, ou seja, trabalha-se com nomes de arquivos e campos, e não 
com sequências de bytes? Os usuários que lidam nesse nível devem ter conhecimento 
completo de todo o esquema da organização, como o administrador do banco de dados ou o 
usuário especializado.
a) Nível conceitual.
b) Nível estrutural.
c) Nível lógico.
d) Nível físico
e) Nível de rede.
Interatividade
Qual nível de arquitetura de banco de dados é considerado uma descrição de um registro em 
uma linguagem de programação, ou seja, trabalha-se com nomes de arquivos e campos, e não 
com sequências de bytes? Os usuários que lidam nesse nível devem ter conhecimento 
completo de todo o esquema da organização, como o administrador do banco de dados ou o 
usuário especializado.
a) Nível conceitual.
b) Nível estrutural.
c) Nível lógico.
d) Nível físico
e) Nível de rede.
Resposta
 No SQL Server, cada coluna, variável local, expressão e parâmetro têm um tipo de dados 
relacionados. Os tipos de dados são atributos que especificam o tipo de dados que o objeto 
pode manter: dados inteiros, dados de caracteres, dados monetários, data e hora, cadeias 
de caracteres binárias etc.
 A seleção de tipos de dados costuma ser determinada pela natureza dos dados e pela 
utilização pretendida
Por exemplo:
 Number(L,D), Integer, Smallint, Decimal(L,D)
 Char(L), Varchar(L), Varchar2(L)
 Date, Time, Timestamp
 Entre outros
Tipos de dados
 A maioria dos programadores utiliza uma linha por definição de coluna (atributo).
 São utilizados espaços para alinhar as características e as restrições dos atributos.
 Tanto os nomes de tabelas como de atributos aparecem totalmente em letras maiúsculas.
 Especificações NOT NULL.
 Especificação UNIQUE.
Tipos de dados
 Restrição NOT NULL
 Garante que uma coluna não aceite nulos.
 Restrição UNIQUE
 Garante que todos os valores de uma coluna sejam exclusivos
 Restrição DEFAULT
 Atribui um valor a um atributo quando uma nova linha é adicionada à tabela
 Restrição CHECK
 Valida dados quando é inserido um valor de atributo
Restrições
 É o catálogo responsável pela manutenção dos metadados que dizem respeito à estrutura do 
esquema, à integridade, às configurações do SGBD para efeitos de controle, segurança e 
desempenho (performance), às estimativas de acesso e estimativas sobre os dados. É 
constantemente consultado durante a realização de várias das suas tarefas, como 
processamento de consultas, pré-compilação de comandos DML, verificação de integridade 
em operações de atualização etc. 
 O administrador do banco de dados tem acesso às suas informações por meio de 
ferramentas especiais.
Dicionário de Dados (DD)
 Um SGBD deve se comunicar com vários agentes (usuários ou programas), com o objetivo 
de atender às necessidades de dados de diversas aplicações, permitir o desenvolvimento de 
aplicações que utilizam um banco de dados, assim como possibilitar que aspectos de 
performance possam ser otimizados, conforme a demanda de acesso a dados 
pelas aplicações.
Agentes de interação com o SGBD
 Os sistemas gerenciadores de banco de dados são projetados com muitos recursos visuais e 
aplicações internas que servem como verdadeiros assistentes. Ainda assim, eles nãose 
autoadministram, ou seja, não eliminam a necessidade dos profissionais especializados, 
apenas agilizam tarefas trabalhosas, como escrever scripts. 
Agentes de interação com o SGBD
 Especialista no SGBD adotado pela organização, o DBA (Administrador de Banco de Dados) 
é o profissional que controla diversos aspectos funcionais, como definição e modificação do 
esquema, das autorizações de acesso e das regras de integridade. Além disso, tem o 
controle dos procedimentos de segurança, execução de backups e recuperação de falhas de 
meio de armazenamento, assim como monitoração de performance de acesso de dados e 
tomada de decisões para melhorias no SGBD.
DBA – Data Base Administrator
 É o profissional responsável pelos dados armazenados, especializado em Projeto de Banco 
de Dados. É de sua responsabilidade o desenvolvimento de relatórios gerenciais e a 
distribuição da informação dentro da empresa em todos os níveis. Interage com os usuários 
da aplicação a ser desenvolvida, com o objetivo de definir os requisitos de dados e 
especificar o esquema do banco de dados. Deve ser um especialista em desenvolvimento 
de sistemas.
Administrador de dados
 É o profissional responsável pelo desenvolvimento de programas de aplicação dentro do 
banco de dados. Esses programas interagem com o SGBD por meio de comandos de 
manipulação de dados (DML) embutidos no seu código. São desenvolvidos usando a 
linguagem padrão do banco de dados, como Oracle PL-SQL, Microsoft T-SQL, Transact SQL 
da Sybase, entre outros, e podem ser rotinas que são executadas sob outras aplicações ou 
mesmo em conjunto com elas.
Desenvolvedor de banco de dados
 É o profissional que desenvolve aplicações utilizando ferramentas compatíveis com o SGBD. 
Essas ferramentas podem ser compiladores de linguagens de programação tradicionais que 
permitem a integração de comandos da linguagem da DML no seu código, programas que 
usam alguma linguagem de programação (C#, PHP, VB.NET, DELPHI, JAVA etc.), 
programação de sistemas e aplicativos de manipulação de dados, geradores de interfaces 
gráficas, geradores de relatórios etc.
Programador
 Dentro do mercado de tecnologia como um todo, além do tempo de atuação na área e a 
experiência, outra forma de se comprovar o domínio de um profissional sobre uma 
determinada tecnologia é por meio de certificações. Essas certificações são criadas e 
mantidas pelos fornecedores das soluções de tecnologia por meio de provas aplicadas e 
gerenciadas por parceiros globais. A seguir, veremos as certificações mais importantes 
dentro da área de banco de dados.
Certificações
 -server&resource_type=certification
Certificações Microsoft
Fonte: https://docs.microsoft.com/pt-br/learn/certifications/browse/?roles=developer&products=sql-
server&resource_type=certification
Os tipos de dados definem como um atributo pode ser utilizado no SGBD SQL Server e são elementos 
fundamentais. As definições se referem a quais tipos de dados respectivamente?
I. Trata-se de um datatype que aceita como valor qualquer dígito, sendo que o espaço ocupado no 
disco é de um dígito por caractere.
II. É um tipo de dado inteiro (conhecido também como booleano), cujo valor pode corresponder 
a NULL, 0 ou 1.
III. Considerado um sinônimo do datatype decimal. 
IV. Permite o uso de valores entre 1/1/1753 e 31/12/9999
V. Datatype usado somente quando trabalhamos com variáveis de 
memória.
a) CHAR, BIT, NUMERICO, DATETIME, TABLE.
b) VARCHAR, REAL, BOOLEAN, DATE, IMAGE.
c) VARCHAR, BOOLEAN, REAL, DATE, TABLE.
d) VARCHAR, BOOLEAN, REAL, DATETIME TABLE.
e) STRING, BOOLEAN, REAL, DATE, TABLE.
Interatividade
Os tipos de dados definem como um atributo pode ser utilizado no SGBD SQL Server e são elementos 
fundamentais. As definições se referem a quais tipos de dados respectivamente?
I. Trata-se de um datatype que aceita como valor qualquer dígito, sendo que o espaço ocupado no 
disco é de um dígito por caractere.
II. É um tipo de dado inteiro (conhecido também como booleano), cujo valor pode corresponder 
a NULL, 0 ou 1.
III. Considerado um sinônimo do datatype decimal. 
IV. Permite o uso de valores entre 1/1/1753 e 31/12/9999
V. Datatype usado somente quando trabalhamos com variáveis de 
memória.
a) CHAR, BIT, NUMERICO, DATETIME, TABLE.
b) VARCHAR, REAL, BOOLEAN, DATE, IMAGE.
c) VARCHAR, BOOLEAN, REAL, DATE, TABLE.
d) VARCHAR, BOOLEAN, REAL, DATETIME TABLE.
e) STRING, BOOLEAN, REAL, DATE, TABLE.
Resposta
ELMASRI, R.; NAVATHE, S. B. Sistemas de banco de dados: fundamentos e aplicações. 4. ed. 
São Paulo: Pearson, 2011.
RAMAKRISHNAN, R., GEHRKE, J. Sistemas de Gerenciamento de Banco de Dados. Porto 
Alegre: Bookman, 2011.
Referências
ATÉ A PRÓXIMA!
Profa. MSc. Sandra Bozolan
UNIDADE II
Administração de
Banco de Dados
 O modelo entidade-relacionamento possui uma técnica de diagramação e de um conjunto de 
conceitos que devem ser bem entendidos e não devem ser desrespeitados quanto à
simbologia. Nessa técnica de diagramação a simplicidade é um dos preceitos e serve como 
meio de representação dos próprios conceitos por ela manipulados. Utiliza-se um retângulo 
para representar as entidades, um losango para representar os relacionamentos e pequenos 
balões para indicar os atributos que cada entidade possui.
Modelo entidade relacionamento (MER)
Entidade1 Entidade2
relacionamento
Atr1
Atr2
Fonte: Adaptado de Ramakrishnan e Gehrke (2011).
Envolve diversas escolhas, incluindo as seguintes:
 Uma entidade ou um atributo deve possuir um conceito para que possa ser modelado?
 Uma entidade ou um relacionamento deve possuir um conceito para que 
possa ser modelado?
 Quais são os conjuntos de relacionamentos e seus conjuntos de entidades participantes?
 Devemos usar relacionamentos binários ou ternários?
 Devemos usar agregação?
 Discutiremos agora os aspectos envolvidos ao fazer essas escolhas.
O desenvolvimento de um diagrama ER 
 Representam uma associação entre duas entidades, representada por um losango nomeado 
com linhas para as duas entidades envolvidas. Um relacionamento indica uma função 
cumprida pelas duas entidades envolvidas. Sugere-se que esse nome seja um 
substantivo no plural, uma vez que o uso de verbos limita mais a criatividade para a 
determinação de nomes.
Relacionamentos binários
 Relacionamento deve definir também a cardinalidade dessa associação, por meio de dois 
pares de valores, no qual o valor da esquerda indica o número mínimo esperado de 
ocorrências de uma entidade que se relaciona com a entidade questionada, e o valor da 
direita o número máximo.
Relacionamentos binários
 É um tipo de associação que envolve ocorrências de uma mesma entidade (parte e chega da 
mesma entidade). Nesse caso, recomenda-se a indicação explícita do papel assumido por 
cada lado da associação, para tornar mais clara a interpretação do relacionamento. Por 
exemplo, em uma relação de chefia entre um empregado e outro, é interessante a indicação 
dos papéis de superior e subordinado.
 Alguns controles de integridade, não expressos no diagrama E-R, podem ser necessários, 
como a proibição de um empregado ser chefiado por ele mesmo (valores iguais no 
relacionamento) ou uma hierarquia de gerência com ciclos. 
É interessante que esses controles, se desejados, sejam 
explicitamente comentados como um anexo ao diagrama E-R.
Relacionamentos reflexivos
 Relacionam três ocorrências de entidades. Só é interessante utilizar esse tipo de 
relacionamento quando realmente é obrigatório associar, ao mesmo tempo, um par de 
entidades com uma terceira. Por exemplo, um empregado que trabalha num projeto 
necessariamente realiza alguma tarefa nesse trabalho. 
 A determinação da cardinalidade de um relacionamento ternário é feita questionando um par 
em relação à terceira entidade envolvida. Por exemplo, no caso de um empregado 
trabalhando em um projeto, temos o par empregado-projeto querealiza de 1 a N tarefas. 
Logo, a cardinalidade (1,N) é colocada ao lado da entidade TAREFAS.
Relacionamentos ternários
 Representam uma propriedade de uma entidade ou de um relacionamento, como salário de 
um empregado ou o tempo que um empregado estará alocado em um projeto. 
 São representados por círculos nomeados, ligados por linhas a uma entidade ou 
relacionamento. Atributos identificadores de entidades, ou que sejam necessários na 
identificação de relacionamentos, são indicados por um círculo preenchido ou pelo 
nome sublinhado
Atributos do DER
Fonte: Adaptado de Ramakrishnan e Gehrke (2011).
Funcionário
Figura: Entidade Funcionário
 Entidade: é um objeto ou evento (real ou abstrato) que se torna um ponto de interesse 
dentro de uma determinada realidade, e ao qual podem ser associados dados, 
relacionamentos etc. 
 O retângulo representa o tipo Entidade.
 Exemplo: Cliente, Fornecedor, Produto, Aluno etc.
Elementos de um modelo de dados
Fonte: Adaptado de Ramakrishnan e Gehrke (2011).
Figura: Objeto Funcionário
 Atributos: São propriedades (características) que identificam as entidades. 
 Uma entidade é representada por um conjunto de atributos. 
 Os atributos podem ser simples, compostos ou multivalorados. 
 Um atributo no DER é representado por uma elipse ligada ao Tipo Entidade.
Elementos de um modelo de dados
Fonte: Adaptado de Ramakrishnan e Gehrke (2011).
Funcionário
Figura: Entidade Funcionário
 Atributo opcional – Atributos com propriedades que podem assumir NULL. 
 São indicados por um traço que corta a linha que liga o atributo à 
entidade ou relacionamento.
Tipos de atributos
Fonte: Próprio autor.
 Atributo composto – Representa uma abstração de outros atributos, como um endereço 
que abstrai (agrega) outros dados como rua, CEP, cidade etc. É representado por uma 
elipse, com ligações (linhas) para os atributos componentes (convencionais).
Tipos de atributos
Fonte: Adaptado de Ramakrishnan e Gehrke (2011).
Funcionário
Figura: Entidade Funcionário – multivalorado (telefone)
 Atributo multivalorado – Atributos com propriedades que podem assumir mais de um valor, 
como os números de telefone de um departamento. São representados por uma 
cardinalidade mínima e máxima que é colocada ao lado do nome do atributo, indicando as 
quantidades de valores mínimos e máximos permitidos.
 Exemplo: Telefone. Uma pessoa poderá ter mais de um número de telefone. 
Tipos de atributos
Fonte: Adaptado de Ramakrishnan e Gehrke (2011).
Funcionário
Figura: Entidade Funcionário – multivalorado (telefone)
 Entidades cujas existências dependem da existência de outra entidade, dita fork. É 
representada por um retângulo duplo, podendo, opcionalmente, ser indicada uma seta que 
parte dela e chega à sua entidade forte, para tornar mais clara a dependência. 
 A cardinalidade de uma ocorrência de uma entidade fraca com a forte é sempre (1,1), 
indicando que ela sempre depende de uma ocorrência da entidade forte. 
Entidades fracas
 O conceito de Generalização/Especialização é amplamente utilizado na programação 
orientada a objeto, e remete ao recurso POO de herança.
Generalização/Especialização
Fonte: Ramakrishnan e Gehrke (2011).
C
BA
 A generalização/especialização mostrada nesta figura expressa que a entidade CLIENTE é 
dividida em dois subconjuntos, as entidades PESSOA FÍSICA e PESSOA JURÍDICA, cada 
uma com propriedades próprias.
Generalização/Especialização
Fonte: Ramakrishnan e Gehrke (2011).
 Salienta que algumas ocorrências de uma entidade assumem papéis específicos, ou seja, 
são especializações, como o fato de um empregado ser um motorista ou secretário, inclusive 
com a possibilidade de terem atributos específicos. 
São classificadas em dois tipos, descritos a seguir:
Especialização com ou sem exclusão mútua
 Indica se uma ocorrência de uma entidade genérica pode 
assumir apenas uma ou várias 
especializações, respectivamente.
 Especialização com ou sem obrigatoriedade
 Indica se uma especialização é obrigatória ou não.
Especialização
 Uma agregação é representada por um polígono fechado que envolve as entidades e o 
relacionamento entre elas, determinando a entidade agregada. 
 Essa entidade agregada é considerada, então, uma entidade normal do diagrama E-R, que 
pode se relacionar com outras entidades.
Agregação
A definição: é um objeto ou evento (real ou abstrato) que se torna um ponto de interesse dentro 
de uma determinada realidade, e ao qual podem ser associados dados, relacionamentos etc. 
Refere-se a:
a) Objeto.
b) Entidade.
c) Relacionamento.
d) Atributos.
e) Chave primária.
Interatividade
A definição: é um objeto ou evento (real ou abstrato) que se torna um ponto de interesse dentro 
de uma determinada realidade, e ao qual podem ser associados dados, relacionamentos etc. 
Refere-se a:
a) Objeto.
b) Entidade.
c) Relacionamento.
d) Atributos.
e) Chave primária.
Resposta
 É um modelo abstrato desenvolvido pelo professor Peter Chen, a fim de representar as 
estruturas de dados de forma mais natural e mais próxima do mundo real dos negócios. 
Seus aspectos estruturais formalizam matematicamente a maneira como os dados estão 
organizados no modelo relacional (a seguir, serão descritos os conceitos básicos de um 
modelo relacional).
Modelo Entidade Relacionamento (MER)
Fonte: Livro-texto.
Pessoa
TEL
Possui
Retângulos representam as entidades
Losangos representam as relações entre as entidades
Elipses representam os 
atributos de uma entidade
 O domínio define o universo de valores permitidos para certo item de dado. Por exemplo, o 
domínio para o item de dado salário pode ser o conjunto dos números reais; o domínio do 
item de dado idade pode ser o conjunto dos números inteiros no intervalo [0,150]; o domínio 
do item sexo pode ser o conjunto limitado (masculino, feminino).
 Domínio compreende um tipo de dado predefinido mais um conjunto de restrições de 
integridade que limitam os valores permitidos para esse tipo de dado.
Domínio
 Um atributo é um nome dado a um domínio utilizado para representar um item de dado. 
Matematicamente falando, um atributo é o nome de um conjunto.
 Em uma tabela, representa uma coluna. Um atributo pode apresentar um valor condizente 
com o domínio associado a ele ou NULL, que indica a ausência de valor ou valor 
desconhecido. Um atributo pode conter apenas um valor atômico, ou seja, um 
valor indivisível.
Atributo do MER
 É um conjunto de pares (atributo – valor) que define uma linha da tabela, ou seja, uma 
ocorrência de uma entidade ou relacionamento. Se imaginarmos uma tabela como um 
conjunto, uma tupla seria um elemento desse conjunto.
Tupla
 Pode ser definida como um subconjunto do produto cartesiano dos domínios (d1, d2, d3,..., 
dn) que correspondem aos atributos (a1, a2, a3,..., an) de uma tabela. O produto cartesiano 
gera (d1 x d2 x d3 x...x dn) tuplas e a relação mantém apenas aquelas tuplas que contêm 
valores de atributos relacionados que estão presentes na realidade. Uma relação, portanto, é 
um subconjunto. É vista como uma tabela no modelo relacional, composta de um cabeçalho 
e um corpo. 
 O cabeçalho é formado por um conjunto fixo de atributos que possuem nomes distintos, para 
evitar ambiguidade na localização de um item de dado. O grau de uma relação significa seu 
número de atributos.
Relação
 O conceito de chave é fundamental no modelo para garantir a identificação de tuplas e 
estabelecer relacionamentos entre relações.
 Chave primária (PK) – primary key: atributo ou grupo de atributos que permite a 
identificação única de uma tupla em uma relação, ou seja, o valor da PK (primary key) de 
uma tupla nunca se repetirá nas demais tuplas da mesma relação.
 Uma PK é escolhida entre várias chaves candidatas, que podem estar presentes na relação. 
As chaves candidatas não selecionadas são ditas chaves alternativas. A cada chavealternativa deve ser associada uma Relação de Integridade (RI) que garanta que seus 
valores sejam únicos.
Chave
 Quando a chave primária tem um atributo, dizemos que é uma chave primária simples, e 
quando ela tem dois ou mais atributos, dizemos que é uma chave primária composta. 
Utilizamos uma chave primária simples para armazenar o ESTADO (UF) porque 
eles são únicos.
Chave
Fonte: Livro-texto.
 Utilizamos uma chave composta para CIDADE porque pode-se ter mais de uma cidade com 
o mesmo nome, por isso temos que associar o nome da cidade com o estado ao qual ela 
pertence, para poder garantir a unicidade da tupla.
Chave
Fonte: Livro-texto.
 Chave estrangeira (FK) – foreign key: Atributo ou grupo de atributos de uma relação R1 
que estabelece um relacionamento de equivalência, por valor, com uma PK (primary key) de 
uma relação R2. 
 O domínio da FK (foreign key) de R1 deve ser compatível com o domínio da PK (primary key) 
de R2. Nada impede que R1 e R2 sejam a mesma relação.
Chave
Chave artificial ou delegada (SK) – surrogate key 
 Serve para substituir a chave original da tabela. Normalmente composta de números 
sequenciais, é muito utilizada em Modelos Multidimensionais, em que o processo de 
dimensionamento associa a chave natural do modelo relacional, que vão ser apenas 
atributos da dimensão, e para garantir a unicidade é criada a chave delegada 
(surrogate key).
Chave
 Os aspectos de integridade do modelo relacional estão associados aos conceitos de chave 
primária e chave estrangeira. Garantir a integridade de um esquema relacional significa 
assegurar o acesso individualizado a todas as tuplas de uma relação, assim como a 
relacionamentos válidos e condizentes com a realidade. 
 O modelo relacional é regido por duas regras de integridade básicas: a de integridade de 
entidade e a de entidade referencial, descritas a seguir.
Restrições de integridades básicas
 Diz respeito à chave primária de uma relação. Ela diz que nenhum atributo que faz parte da 
chave primária pode ter NULL em alguma tupla. A manutenção dessa regra garante que toda 
tupla possa ser identificada unicamente.
Regra integridade de entidade
 Diz respeito às chaves estrangeiras de uma relação. Ela diz que o valor de um atributo que 
faz parte de uma chave estrangeira pode assumir NULL desde que não faça parte da chave 
primária. Ainda, esse mesmo atributo pode assumir um valor qualquer, condizente com o seu 
domínio, desde que esse mesmo valor exista na chave primária de uma tupla da relação 
referida por ele. Com isso, nunca existirão relacionamentos incorretos entre dados.
 Para que essas regras sejam sempre respeitadas, o SGBD deve implementar rotinas de 
verificações automáticas. Isso implica testes e ações a serem realizados pelo SGBD toda vez 
que uma operação de atualização ocorrer. 
Regra de integridade relacional
No caso da regra de integridade de entidade, o seguinte algoritmo deve ser executado toda vez 
que for incluída uma nova tupla em uma relação ou for alterado um valor de um atributo de 
uma tupla que faz parte da chave primária de uma relação: 
 SE a chave primária da tupla for NULL.
 OU existir tupla com o mesmo valor da chave primária ENTÃO impedir a efetivação da 
operação 
 SENÃO efetivar a operação 
 Já para o caso da regra de integridade referencial, três alternativas de ações são geralmente 
tomadas pelo SGBD quando se percebe que uma violação irá ocorrer.
Regra de integridade relacional
 Já para o caso da regra de integridade referencial, três alternativas de ações são geralmente 
tomadas pelo SGBD quando se percebe que uma violação irá ocorrer:
 Impedimento, a operação não é efetivada. 
 Cascata, para o caso de exclusões de tuplas ou alterações de chave primária na relação 
referida, realizar a mesma operação em todas as tuplas que se referem a ela. 
 Anulação, para o caso de exclusões de tuplas ou alterações 
de chave primária na relação referida, altera-se para NULL 
o(s) atributo(s) que compõe(m) a chave estrangeira que 
estabelece o relacionamento com essa relação. Uma variante 
dessa alternativa é anular apenas a chave estrangeira de 
uma única tupla.
Regra de integridade relacional
Quais são as três alternativas de ações que são geralmente tomadas pelo SGBD quando se 
percebe que uma violação irá ocorre?
a) Impedimento, Cascata, Anulação.
b) Se, Então, Senão.
c) Impedimento, Cascata, Refinamento.
d) Impedimento, Refinamento, Anulação.
e) Refinamento, Cascata, Anulação.
Interatividade
Quais são as três alternativas de ações que são geralmente tomadas pelo SGBD quando se 
percebe que uma violação irá ocorre?
a) Impedimento, Cascata, Anulação.
b) Se, Então, Senão.
c) Impedimento, Cascata, Refinamento.
d) Impedimento, Refinamento, Anulação.
e) Refinamento, Cascata, Anulação.
Resposta
Se uma operação de atualização é submetida à relação referida (possui a chave primária), o 
seguinte algoritmo deve ser executado toda vez que for excluída uma tupla ou for alterado o 
valor de um atributo que faz parte da chave primária:
 SE a chave estrangeira fizer parte da chave primária
 ENTÃO aplicar impedimento OU aplicar cascata 
 SENÃO aplicar impedimento
 OU aplicar cascata 
 OU aplicar anulação
Regra de integridade relacional
 Entidades, do original entity type, servem para representar objetos, coisas, pessoas que 
existem na realidade. No MER, os relacionamentos são identificados com um verbo:
Regra de integridade relacional
Fonte: Livro-texto.
Pessoa Possui Automóvel
Uma pessoa possui um automóvel.
Um automóvel pertencente a uma pessoa.
1 1
11
 Dentro de um modelo relacional, temos que ver como as entidades se relacionam entre si, ou 
seja, ver como a entidade Pessoa se relaciona com a entidade Automóvel e como a entidade 
Automóvel se relaciona com a entidade Pessoa, e podemos concluir que:
Regra de integridade relacional
Fonte: Livro-texto.
Pessoa Possui Automóvel
1
1 1
N
Uma pessoa possui vários automóveis.
vários automóveis pertencem a uma pessoa.
 Aqui fazemos os mesmos passos para a obtenção da cardinalidade, verificamos o 
relacionamento de Pessoa com Automóvel e de Automóvel com Pessoa. 
 1 Pessoa possui N (vários) automóveis. 
 1 Automóvel que pertence a 1 Pessoa:
Regra de integridade relacional
Fonte: Livro-texto.
Pessoa Possui Automóvel
1
1 1
N
Uma pessoa possui vários automóveis.
vários automóveis pertencem a uma pessoa.
 Na Figura abaixo, temos a seguinte definição: 1 aluno possui N (vários) professores e 1 
professor possui N (vários) alunos.
 Para obter a cardinalidade final, devemos usar a multiplicação. Em cada um dos lados, 
pegamos os dois números, que estão em destaque ao lado da entidade.
Nesse caso, em aluno temos 1 e N, 1 x N = N (qualquer número multiplicado por 1 é ele 
mesmo). Já em professor, temos N e 1. N x 1 = N. Assim, obtemos um relacionamento 
de N para N:
Regra de integridade relacional
Fonte: Livro-texto.
Aluno Possui Professor
Um professor possui vários alunos.
Um aluno possui vários professores.
1
N
N
1
 Quando fazemos o relacionamento entre duas ou mais tabelas, esse relacionamento pode 
ser classificado de duas formas:
 Identificado: também conhecido como relacionamento forte. Identifica que a chave 
estrangeira da tabela “pai” faz parte da chave da tabela “filha”. 
 Não identificado: também conhecido como relacionamento fraco. Identifica que a chave 
estrangeira da tabela “pai” não faz parte da chave primária da tabela filha, sendo esse 
apenas mais um atributo.
Tipos de relacionamento
 A seguir, mostramos a representação desses tipos de relacionamento, com exemplos, nas 
figuras abaixo:
Tipos de relacionamento
Fonte: Livro-texto.
Figura 15 – Exemplo de relacionamento forte
Figura 16 – Exemplo de relacionamento fraco
 A cardinalidade expressa o número mínimo e máximo de ocorrências de cada uma das 
entidades que participam do mesmo relacionamentode uma dada entidade. 
 No DER, a cardinalidade é indicada colocando-se os respectivos números dos lados das 
entidades, utilizando o formato (x, y). 
 O primeiro valor representa o número mínimo de entidades associadas, enquanto o segundo, 
o número máximo.
Cardinalidade do Relacionamento
 Ferramentas de modelagem de ER baseado na notação pé de galinha não apresentam a 
faixa de cardinalidade numérica no diagrama. 
 Em vez disso, o usuário pode adicioná-la como texto. Na notação pé de galinha, a 
cardinalidade é denotada pela utilização dos símbolos. 
 A faixa de cardinalidade numérica pode ser adicionada utilizando-se a ferramenta de 
inserção de texto, conforme figura.
Cardinalidade do Relacionamento
Fonte: Bob (2011).
 As conectividades e cardinalidades são estabelecidas por afirmações muito concisas 
conhecidas como regras de negócio. 
 Essas regras, resultantes da descrição precisa e detalhada do ambiente de dados de uma 
organização, também estabelecem as entidades, atributos, relacionamentos, conectividades, 
cardinalidades e restrições do ER. 
 Como as regras de negócio definem os componentes do ER, assegurar que todas estejam 
identificadas é uma parte importante do trabalho de um projetista de banco de dados.
Cardinalidade do Relacionamento
 Regras (Baseadas nos tipos de relacionamento).
Regras do Relacionamento
Fonte: Bob (2011).
 Um-para-um: A entidade A está associada no máximo a uma entidade B e uma entidade B 
está associada no máximo à entidade de A;
 Um-para-muitos: A entidade A está associada a qualquer número de entidades de B. Uma 
entidade de B, entretanto, pode estar associada no máximo a uma entidade de A;
 Muitos-para-um: A entidade A está associada no máximo a uma entidade de B. Uma 
entidade de B, entretanto, pode estar associada a qualquer número de entidades de A;
 Muitos-para-muitos: A entidade A está associada a qualquer número de entidades de B e 
uma entidade de B está associada a qualquer número de entidades de A.
Regras do Relacionamento
Um conjunto de entidades pode desempenhar mais do que um papel, o digrama abaixo mostra 
o indicador de papel concatenado a um nome de atributo do conjunto de entidades nos 
fornecerá uma ligação entre as entidades. Assinale abaixo, qual atributo representa este elo de 
ligação;
a) Nome.
b) CPF.
c) Vaga.
d) Funcionário.
e) Reporta_a.
Interatividade
Funcionário
Reporta__a
CPF
NOME
VAGA
Fonte: Adaptado de Ramakrishnan e Gehrke (2011).
Um conjunto de entidades pode desempenhar mais do que um papel, o digrama abaixo mostra 
o indicador de papel concatenado a um nome de atributo do conjunto de entidades nos 
fornecerá uma ligação entre as entidades. Assinale abaixo, qual atributo representa este elo de 
ligação;
a) Nome.
b) CPF.
c) Vaga.
d) Funcionário.
e) Reporta_a.
Resposta
Funcionário
Reporta__a
CPF
NOME
VAGA
Fonte: Adaptado de Ramakrishnan e Gehrke (2011).
 Normalização de dados é o processo formal passo a passo que examina os atributos de uma 
entidade, com o objetivo de evitar redundâncias e anomalias observadas na inclusão, na 
exclusão e na alteração de registros.
 Primeira Forma Normal (1FN). Uma relação estará na Primeira Forma Normal 1FN se, e 
somente se, todos os domínios básicos contiverem somente valores atômicos (não 
contiverem grupos repetitivos).
Normalização
Procedimentos: 
 identificar a chave primária da entidade;
 identificar o grupo repetitivo e removê-lo da entidade; 
 criar uma nova entidade com a chave primária da entidade anterior e o grupo repetitivo; 
 a chave primária da nova entidade será obtida pela concatenação da chave primária da 
entidade inicial e a do grupo repetitivo.
Normalização
 Primeira Forma Normal (1FN).
Normalização
Fonte: Livro-texto.
ID Nome Telefone Endereço
1 João
(11) 1234-5678
(11) 2345-6789
Rua Seis, 85
Morumbi
12536-965
2 Maria
(11) 3456-7890
(11) 4567-8901
Rua Onze, 64
Moema
65985-963
3 José
(11) 5678-9012
(11) 6789-0123
Praça Ramos
Liberdade
68858-456
 Aqui temos os mesmos grupos de dados agrupados para todas as linhas.
 Foi resolvido o problema do endereço, quebrando a 
informação em três colunas; porém, ainda persiste o problema 
da coluna telefone e, diferentemente do que se dá no caso 
anterior, não tem a mesma repetição do outro grupo.
Normalização
Fonte: Livro-texto.
ID Nome Telefone Rua Bairro CEP
1 João
(11) 1234-5678
(11) 2345-6789
Rua Seis, 85 Morumbi 12536-956
2 Maria
(11) 3456-7890
(11) 4567-8901
Rua Onze, 64 Moema 65985-963
3 José
(11) 5678-9012
(11) 6789-0123
(11) 7890-1234
Praça Ramos Liberdade 68858-456
 Para resolvermos esse caso, teremos que quebrar essa tabela em duas.
Normalização
Fonte: Livro-texto.
ID Nome Rua Bairro CEP
1 João Rua Seis, 85 Morumbi 12536-956
2 Maria Rua Onze, 64 Moema 65985-963
3 José Praça Ramos Liberdade 68858-456
 A primeira, sem a informação de telefone.
A segunda, apenas com a informação de telefone, associada 
com a primeira pelo código do cliente.
Normalização
Fonte: Livro-texto.
Telefone ID
(11) 1234-5678 1
(11) 2345-6789 1
(11) 3456-7890 2
(11) 4567-8901 2
(11) 5678-9012 3
Telefone ID
(11) 6789-0123 3
(11) 7890-1234 3
 Uma relação estará na Segunda Forma Normal 2FN se já estiver na 1FN e não existir 
nenhum atributo que não seja dependente de todo da chave da tabela. 
Procedimentos: 
 identificar os atributos que não são funcionalmente dependentes de toda a chave primária; 
 remover da entidade todos esses atributos identificados e criar uma nova entidade com eles. 
Segunda Forma Normal (2FN)
Exemplo:
Não está na Segunda Forma Normal porque temos atributos 
que não dependem da chave primária.
Segunda Forma Normal (2FN)
Fonte: Livro-texto.
C_Produto N_Produto Qtd Vl_Unitário Subtotal
1 1234 Impressora Matricial 4 100,00 400,00
2 2345
Impressora Jato de 
Tinta
3 200,00 600,00
3 3456 Impressora Laser 2 1000,00 2000,00
4 5678
Impressora 
Multifuncional
1 350,00 350,00
Para resolver, separamos a informação em duas tabelas: 
Segunda Forma Normal (2FN)
Fonte: Livro-texto.
C_Produto N_Produto
1234 Impressora Matricial
2345 Impressora Jato de Tinta
3456 Impressora Laser
5678 Impressora Multifuncional
N_Produto C_Produto Qtd Vi_Unitário Subtotal
1 1234 4 100,00 400,00
2 2345 3 200,00 600,00
3 3456 2 1000,00 2000,00
4 5678 1 350,00 350,00
Para resolver, separamos a informação em duas tabelas:
Segunda Forma Normal (2FN)
Da tabela de pedidos foi retirada a descrição do produto, 
porque o atributo é dependente apenas do código do produto. 
Foi criada uma nova tabela chamada de Produto, composta de 
Código do Produto e Nome do Produto. Foi mantido o Código 
do Produto na tabela de Pedido para o relacionamento. 
Fonte: Livro-texto.
C_Produto N_Produto
1234 Impressora Matricial
2345 Impressora Jato de Tinta
3456 Impressora Laser
5678 Impressora Multifuncional
N_Produto C_Produto Qtd Vi_Unitário Subtotal
1 1234 4 100,00 400,00
2 2345 3 200,00 600,00
3 3456 2 1000,00 2000,00
4 5678 1 350,00 350,00
Uma tabela está na Terceira Forma Normal 3FN se estiver na 2FN e se nenhuma coluna não 
chave depender de outra coluna não chave. Procedimentos: 
 identificar todos os atributos que são funcionalmente dependentes de outros atributos não 
chave e removê-los; 
 a chave primária da nova entidade será o atributo do qual os atributos removidos são 
funcionalmente dependentes. 
Terceira Forma Normal (3FN)
Terceira Forma Normal (3FN)
Ainda existe um atributo que 
está relacionado a outro 
atributo não chave.
O atributo SUBTOTAL é derivado 
do cálculo da quantidade que 
multiplica o valor unitário.
Nesse caso, removemos a coluna, já 
que, entre outras coisas, ela era 
derivada de um cálculo.
Fonte: Livro-texto.
N_Produto C_Produto Qtd Vl_Unitário Subtotal
1 1234 4 100,00 400,00
2 2345 3 200,00 600,00
3 3456 2 1000,00 2000,00
4 5678 1 350,00 350,00
N_Produto C_Produto Qtd Vl_Unitário
1 1234 4 100,002 2345 3 200,00
3 3456 2 1000,00
4 5678 1 350,00
Normalização de dados é o processo formal passo a passo que examina os atributos de uma 
entidade, com o objetivo de evitar redundâncias e anomalias observadas na inclusão, na 
exclusão e na alteração de registros. Uma relação estará na Primeira Forma Normal 1FN se, e 
somente se, todos os domínios básicos contiverem somente valores atômicos. Assinale abaixo 
qual dos itens não pode ser encontrado na Primeira Forma Normal 1FN.
a) Identificar a chave primária da entidade.
b) Identificar a chave composta de entidade.
c) Identificar o grupo repetitivo e removê-lo da entidade.
d) Criar uma nova entidade com a chave primária da entidade anterior e o grupo repetitivo.
e) A chave primária da nova entidade será obtida pela 
concatenação da chave primária da entidade inicial 
e a do grupo repetitivo.
Interatividade
Normalização de dados é o processo formal passo a passo que examina os atributos de uma 
entidade, com o objetivo de evitar redundâncias e anomalias observadas na inclusão, na 
exclusão e na alteração de registros. Uma relação estará na Primeira Forma Normal 1FN se, e 
somente se, todos os domínios básicos contiverem somente valores atômicos. Assinale abaixo 
qual dos itens não pode ser encontrado na Primeira Forma Normal 1FN.
a) Identificar a chave primária da entidade.
b) Identificar a chave composta de entidade.
c) Identificar o grupo repetitivo e removê-lo da entidade.
d) Criar uma nova entidade com a chave primária da entidade anterior e o grupo repetitivo.
e) A chave primária da nova entidade será obtida pela 
concatenação da chave primária da entidade inicial 
e a do grupo repetitivo.
Resposta
ATÉ A PRÓXIMA!
Profa. MSc. Sandra Bozolan
UNIDADE III
Administração de
Banco de Dados
 A linguagem SQL padrão frequentemente é utilizada para representar as mais diversas 
funções relacionadas a banco de dados e programação. 
Ela suporta uma série de funções específicas que serão exploradas mais à frente:
Linguagem SQL
Fonte: Próprio autor.
Linguagem T-SQL ou Transact-SQL utilizada no SGBD MS SQL Server é composta por:
 DDL (Data Definition Language): manipulação e estrutura do banco de dados;
 DML (Data Manipulation Language): permite a manutenção dos dados;
 DQL (Data Query Language): permite a pesquisa de dados;
 DCL (Data Control Language): permite o controle de autorização (acesso) dos dados.
Linguagem SQL
Linguagem de Definição de Dados (DDL – Data Definition Language): esse subconjunto da 
SQL suporta criação, exclusão e modificação das definições das tabelas e das visões. As 
restrições de integridade podem ser definidas nas tabelas, tanto quando a tabela é criada como 
posteriormente. Fornece ainda a dinâmica para criação e exclusão de índices. Os comandos 
SQL desse subconjunto são:
 CREATE: utilizado para criar objetos no banco de dados.
 Exemplo (criar uma tabela): CREATE TABLE CLIENTE (ID INT PRIMARY KEY, 
NOME VARCHAR(50));
Linguagem SQL
DDL (Data Definition Language):
 Comandos responsáveis pela criação, alteração e deleção da estrutura de banco de dados, 
de tabelas e índices etc.;
 Comandos de DDL;
 CREATE: Criação de objetos do banco de dados;
 DROP: Exclusão de objetos do banco de dados;
 ALTER: Alteração da estrutura de objetos do banco de dados;
 USE: Selecionar um banco de dados para uso.
 Objetos manipulados pelos comandos acima:
 DATABASE, TABLE, VIEW, INDEX, TRIGGER, etc....
Linguagem SQL
 ALTER: utilizado para alterar a estrutura de um objeto.
 Exemplo (adicionar uma coluna em uma tabela existente): ALTER TABLE CLIENTE ADD 
SEXO CHAR(1);
 DROP: utilizado para remover um objeto do banco de dados.
 Exemplo (remover uma tabela): DROP TABLE CLIENTE;
Linguagem SQL
Linguagem SQL
 Executando o procedimento ALTER DATABASE, modificam-se os dados de um banco de 
dados ou os arquivos e grupos de arquivos associados ao banco de dados, adicionam ou 
removem-se arquivos e grupos de arquivos de um banco de dados, alteram-se os atributos 
de um banco de dados ou seus arquivos e grupos de arquivos, altera-se o agrupamento de 
banco de dados e definem-se opções de banco de dados. Instantâneos de banco de dados 
não podem ser modificados.
Linguagem SQL
DDL (Data Definition Language): 
 Exemplos de sintaxe:
 Comando TABLE: tabela(s) ou entidade(s).
Linguagem SQL
Comando
CREATE
Objetivo Sintaxe
Cria a estrutura de uma tabela
(arquivo) definindo colunas
(campos) e as chaves primárias e
estrangeiras existentes.
CREATE TABLE <nome-da-tabela>(
<nome-coluna1><tipo-dado> [null | not null | unique],
<nome-colunaN><tipo-dado> [null | not null | unique],
PRIMARY KEY (nome-da-coluna-chave)
)
DDL (Data Definition Language): 
 Comando IDENTITY (Campo de autonumeração): coluna identidade definida pelo SQL 
Server, cria números em sequência para linhas que forem posteriormente inseridas na tabela 
em que a coluna de identidade está localizada.
 Comando PRIMARY KEY: Define a chave primária da tabela;
Linguagem SQL
A linguagem SQL frequentemente é utilizada para representar as mais diversas funções 
relacionadas a banco de dados e programação. Analise as afirmações abaixo:
DDL: Linguagem de Definição de Dados;
DML: Linguagem de Manipulação de Dados;
DTL: Linguagem de Controle de Transações.
Interatividade
I. No item Linguagem de definição de dados, os comandos COMMIT e ROLLBACK são 
usados com muita frequência.
II. No item Linguagem de manipulação de dados usamos o comando CREATE para criar 
tabelas e Banco de dados.
III. No item Linguagem de controle de transações, além de criar Procedures e Functions, 
podemos ainda executá-los.
IV. Para Executar uma atualização em um dado em banco devemos usar um comando que se 
encontra no item DML.
Assinale a alternativa correta:
a) Todas as afirmativas estão corretas.
b) Apenas as afirmativas III e IV estão corretas. 
c) Apenas as afirmativas I, II e IV estão corretas.
d) Apenas as afirmativas II e IV estão corretas.
e) Apenas as afirmativas I e II estão corretas.
Interatividade
I. No item Linguagem de definição de dados, os comandos COMMIT e ROLLBACK são 
usados com muita frequência.
II. No item Linguagem de manipulação de dados usamos o comando CREATE para criar 
tabelas e Banco de dados.
III. No item Linguagem de controle de transações, além de criar Procedures e Functions, 
podemos ainda executá-los.
IV. Para Executar uma atualização em um dado em banco devemos usar um comando que se 
encontra no item DML.
Assinale a alternativa correta:
a) Todas as afirmativas estão corretas.
b) Apenas as afirmativas III e IV estão corretas. 
c) Apenas as afirmativas I, II e IV estão corretas.
d) Apenas as afirmativas II e IV estão corretas.
e) Apenas as afirmativas I e II estão corretas.
Resposta
Linguagem de Manipulação de Dados (DML – Data Manipulation Language): esse 
subconjunto da SQL permite que os usuários formulem consultas e insiram, excluam e 
modifiquem tuplas. Os comandos SQL desse subconjunto são:
 INSERT: utilizado para inserir registros (tuplas) em uma tabela.
 Exemplo: INSERT into CLIENTE(ID, NOME) values(1,'Rafaela');
Linguagem SQL
UPDATE: utilizado para alterar valores de uma ou mais linhas (tuplas) de uma tabela.
 Exemplo: UPDATE CLIENTE set NOME = 'Roberta' WHERE ID = 1;
DELETE: utilizado para excluir um ou mais registros (tupla) de uma tabela.
 Exemplo: DELETE FROM CLIENTE WHERE ID = 1;
SELECT: o principal comando da SQL, o comando SELECT é utilizado para efetuar consultas 
no banco de dados.
 Exemplo: SELECT ID, NOME FROM CLIENTE;
Linguagem SQL
 Os comandos básicos de manipulação de dados em SQL são: INSERT, SELECT, COMMIT, 
UPDATE, ROLLBACK E DELETE. 
 INSERÇÃO DE DADOS EM LINHAS DE TABELAS
 A SQL exige a utilização do comando INSERT para inserir dados em uma tabela. A sintaxe 
básica desse comando será abordada abaixo:
 INSERT INTO nome da tabela VALUES (valor1, valor2,...,valorN).
Comandosde manipulação de dados
 UPDATE ATUALIZAÇÃO DE LINHAS DA TABELA
Utilize o comando UPDATE para modificar os dados de uma tabela. A sintaxe 
desse comando é:
 UPDATE nome da tabela
 SET nome da tabela = expressão [, nome da coluna=expressão]
 [WHERE lista de condições];
Comandos de manipulação de dados
 DELETE – EXCLUINDO LINHAS DA TABELA
 Um dos comandos mais fáceis de executar é o de exclusão de dados de uma tabela 
utilizando o comando DELETE. A sintaxe é:
 DELETE FROM nome da tabela
 [WHERE lista de condições]
Comandos de manipulação de dados
 Linguagem de Consulta de Dados (DQL – Data Query Language): esse subconjunto tem 
apenas um comando e é considerado como o coringa em todos os procedimentos SQL. O 
comando SELECT permite ao usuário especificar uma consulta (“query”) como uma 
descrição do resultado desejado.
SELECT 
 realiza consultas em uma tabela;
 composto de várias cláusulas e opções, possibilitando elaborar consultas das mais simples 
às mais elaboradas;
 SELECT <função de agregação> <nome do campo da 
tabela> ou * (tudo)
 FROM <nome da tabela>
 Opcional:
 <cláusula>
Linguagem SQL
Operadores de comparação
 A qualificação da cláusula FROM é uma combinação booleana (isto é, uma expressão 
usando os conectivos lógicos AND, OR e NOT) de condições no formato expressão op 
expressão, em que op é um dos operadores de comparação { <, <=> = < >, >=, > }. 
 Uma expressão é um nome de coluna, uma constante ou uma expressão 
(aritmética ou de string).
Select e operações 
SÍMBOLO SIGNIFICADO
 Linguagem de Controle de Dados (DCL – Data Control Language): esse subconjunto da 
SQL suporta controlar o acesso aos dados, basicamente com dois comandos que permitem 
ou bloqueiam o acesso de usuários a dados. Vejamos estes comandos:
 GRANT: autoriza um usuário a executar alguma operação.
 Exemplo (dar permissão de consulta na tabela cliente para o usuário diogo): GRANT 
SELECT ON cliente TO diogo;
 REVOKE: restringe ou remove a permissão de um usuário executar alguma operação.
 Exemplo (não permitir que o usuário diogo crie tabelas no banco de dados): REVOKE 
CREATE TABLE FROM diogo;
Linguagem SQL
Sobre o comando UPDATE utilizado para modificar os dados de uma tabela, assinale abaixo a 
sintaxe correta desse comando.
a) UPDATE NOMECAMPO FROM NOMETABELA
SET NOMECAMPO = ‘DADOS CAMPO’
WHERE NOMECAMPO ='ALTERAÇÃO CAMPO’ ;
b) UPDATE * FROM NOMETABELA 
SET NOMECAMPO = ‘DADOS CAMPO’
WHERE NOMECAMPO ='ALTERAÇÃO CAMPO' ;
c) UPDATE ALTER FROM NOMETABELA
SET NOMECAMPO = ‘DADOS CAMPO’
WHERE NOMECAMPO ='ALTERAÇÃO CAMPO' ;
d) UPDATE NOMETABELA
SET NOMECAMPO = ‘DADOS CAMPO’
WHERE NOMECAMPO ='ALTERAÇÃO CAMPO' ;
e) UPDATE NOMECAMPO FROM NOMETABELA
ALTER NOMECAMPO = ‘DADOS CAMPO’
WHERE NOMECAMPO ='ALTERAÇÃO CAMPO' ;
Interatividade
Sobre o comando UPDATE utilizado para modificar os dados de uma tabela, assinale abaixo a 
sintaxe correta desse comando.
a) UPDATE NOMECAMPO FROM NOMETABELA
SET NOMECAMPO = ‘DADOS CAMPO’
WHERE NOMECAMPO ='ALTERAÇÃO CAMPO’ ;
b) UPDATE * FROM NOMETABELA 
SET NOMECAMPO = ‘DADOS CAMPO’
WHERE NOMECAMPO ='ALTERAÇÃO CAMPO' ;
c) UPDATE ALTER FROM NOMETABELA
SET NOMECAMPO = ‘DADOS CAMPO’
WHERE NOMECAMPO ='ALTERAÇÃO CAMPO' ;
d) UPDATE NOMETABELA
SET NOMECAMPO = ‘DADOS CAMPO’
WHERE NOMECAMPO ='ALTERAÇÃO CAMPO' ;
e) UPDATE NOMECAMPO FROM NOMETABELA
ALTER NOMECAMPO = ‘DADOS CAMPO’
WHERE NOMECAMPO ='ALTERAÇÃO CAMPO' ;
Resposta
 No SQL Server, cada coluna, variável local, expressão e parâmetro têm um tipo de dado 
relacionado. O tipo de dado é um atributo que especifica os tipos de dados que o objeto 
pode manter: dados inteiros, dados de caractere, dados monetários, data e hora, cadeias de 
caracteres binários etc.
 A seleção de tipos de dados costuma ser determinada pela natureza dos dados e pela
utilização pretendida.
Por exemplo:
– Number(L,D), Integer, Smallint, Decimal(L,D)
– Char(L), Varchar(L), Varchar2(L)
– Date, Time, Timestamp
– Entre outros
Tipos de dados
 O comando JOIN ou junção é baseado na teoria dos conjuntos. Considere as tabelas como 
um conjunto de dados sobre um determinado assunto.
 A sintaxe do comando JOIN entre duas ou mais tabelas relacionadas é diferente entre os 
diversos dialetos do SQL. Para escrever o comando corretamente, você deverá consultar o 
manual do gerenciador de banco de dados.
 Os exemplos de JOIN que serão mostrados a seguir estão usando a sintaxe do SQL padrão 
ANSI. Caso você queira testar os comandos em um banco de dados, você precisa estar 
atento se ele é compatível com o SQL ANSI, pois a sintaxe do JOIN difere muito.
Join
 Exemplo de sintaxe do comando SELECT com mais de uma tabela: vamos considerar as 
tabelas indicadas a seguir. 
 Turma (id_turma, nome, sala, disciplina) 
 Disciplina (disciplina, sigla, créditos). Queremos a lista das salas de cada turma, indicando o 
nome da turma e a sigla de cada disciplina correspondente. 
O comando SELECT ficará assim: SQL padrão ANSI:
Join
 Para entender como esse JOIN funciona, com base na teoria dos conjuntos, vamos 
considerar as tabelas conjuntos, da seguinte forma: o conjunto das turmas será denominado 
conjunto A; o conjunto das disciplinas será o conjunto B, conforme a figura seguinte:
Join
Fonte: Livro-texto.
Conjunto/Tabela A Conjunto/Tabela B
 INNER JOIN – é o tipo de JOIN mais usado. Retorna apenas os dados que existem em 
comum nas duas tabelas. 
 Com base na teoria dos conjuntos, podemos dizer que é a intersecção entre os conjuntos, 
conforme representado na figura a seguir.
Inner Join
Fonte: Livro-texto.
Conjunto/Tabela A
Conjunto/Tabela B
 Usado quando é necessário retornar todos os dados de uma tabela, mesmo que não exista 
na outra tabela. 
 O LEFT JOIN retorna os dados da tabela da esquerda, conforme a figura a seguir.
Left Join
Fonte: Livro-texto.
Conjunto/Tabela A
Conjunto/Tabela B
 Assim como o LEFT JOIN, é usado quando é necessário retornar todos os dados de uma 
tabela, mesmo que não existam na outra tabela. 
 O RIGHT JOIN retorna os dados da tabela da direita, conforme a figura a seguir
Right Join
Fonte: Livro-texto.
Conjunto/Tabela A
Conjunto/Tabela B
O JOIN funciona, com base na teoria dos conjuntos, e entre suas funções principais 
precisamos considerar o conjunto de tabelas que queremos relacionar. Com base nesta 
afirmação, assinale a alternativa de JOIN que retorna apenas os dados que existem em comum 
nas duas tabelas. 
a) Full Join
b) Inner Join; 
c) Join;
d) Left Join;
e) Right Join;
Interatividade
O JOIN funciona, com base na teoria dos conjuntos, e entre suas funções principais 
precisamos considerar o conjunto de tabelas que queremos relacionar. Com base nesta 
afirmação, assinale a alternativa de JOIN que retorna apenas os dados que existem em comum 
nas duas tabelas. 
a) Full Join
b) Inner Join; 
c) Join;
d) Left Join;
e) Right Join;
Resposta
 O desenvolvimento de um sistema de informação envolve a análise e o projeto de dois 
componentes importantes: os dados e os processos. 
 O projeto de dados é considerado a parte estática do sistema, uma vez que diz 
respeito a um universo persistente de características que dificilmente sofre modificações 
após a sua definição. 
 O projeto de processos, por sua vez, é chamado de parte dinâmica, uma vez que as tarefas 
a serem realizadas sobre os dados podem variar, conforme ocorre a evolução do sistema.
O projeto de um banco de dados é composto de quatro etapas, 
descritas a seguir:
Etapas do projeto de banco de dados
33
 Fase inicial de um projeto de banco de dados, que permite compreender quais dados devem 
ser armazenados, que informações os aplicativos devem manipular, quais as operações mais 
importantes e quais estão sujeitas a requisitos de desempenho. Reuniões informais com os 
usuários da aplicação devem ser realizadas visando definir quais alterações serão 
trabalhadas, a análise de toda a documentação disponívelsobre os aplicativos existentes 
que se deseja substituir ou complementar com o banco de dados, e assim por diante. 
Muitas metodologias são propostas com o foco de organizar e apresentar as informações 
coletadas, quase sempre se usam as ferramentas automatizadas.
Levantamento de requisitos
Fonte: 
https://supremapropaganda.com.br/agencia-
de-marketing-digital-publicidade-e-
propaganda-em-itajai-sc/
 Nesta etapa, as coletas de dados da fase de análise de requisitos serão utilizadas para 
fornecer uma descrição de dados a serem armazenados, levando em consideração as 
informações mais importantes. O modelo Entidade Relacionamento (ER) disponibiliza 
diversos modelos de dados semânticos ou de alto nível, utilizados no projeto de banco de 
dados. Tem como objetivo criar uma descrição simples dos dados que melhor corresponda 
à visão ou à ideia, que os usuários e desenvolvedores têm em relação aos dados (e às 
pessoas e aos processos a serem representados nos dados).
Projeto Conceitual
Fonte: 
https://onsafety.com.br/entenda-
como-funciona-gestao-a-vista/
 A partir da conversão do projeto conceitual de banco de dados, um SGBD será escolhido 
para implementar as informações de um esquema ER para um esquema de banco 
de dados relacional.
As três etapas restantes do projeto de banco de dados:
 A partir do esquema lógico, novas funções devem receber atenção;
 Desempenho e protótipos dos esquemas físicos;
 Aspectos de segurança que assegurem que os usuários sejam capazes de acessar os dados 
de que eles precisam, mas não os dados que desejamos ocultar deles.
Projeto Lógico
Fonte: Próprio autor.
 Nesta etapa, todas as alterações devem, ainda, suportar o refinamento maior do projeto de 
banco de dados, para assegurar que este satisfaça os critérios de desempenho desejados. 
Criação de índices em algumas tabelas e agrupamento de tabelas serão inicializados nesta 
fase, e pode envolver um reprojeto substancial de partes do esquema de banco de dados 
obtido das etapas anteriores de projeto.
Projeto Físico
Fonte: Livro-texto.
 Os bancos de dados possuem vários tipos e subtipos de dados. Recomendada a leitura do 
manual do banco de dados fornecido pelo fabricante para você conhecer os tipos de dados. 
É muito comum fazer algumas conversões de um tipo de dado para outro durante uma 
consulta dos dados armazenados no banco de dados.
 Alguns gerenciadores de bancos de dados conseguem fazer essas conversões diretamente, 
sem a necessidade de explicitar por meio de funções próprias de conversão. Os elementos 
de dados básicos e as estruturas de dados mais comuns, utilizadas em diversas linguagens 
e bancos de dados, estão a seguir.
Tipos de dados (data types)
 Byte, Integer: números inteiros positivos, negativos ou o zero.
 Real: números inteiros positivos ou negativos compostos por uma parte inteira e outra 
fracionada. Exemplo: 8,2. 
 Char: caractere alfanumérico como letras, algarismos ou símbolos especiais 
ocupando uma única posição de memória. Na verdade, esse elemento armazena 
um número da tabela ASCII. 
 Boolean: armazena estados de uma operação lógica, podendo 
receber valores de verdadeiro ou falso, armazenando o bit 0 
ou 1 dependendo do resultado.
Elementos de dados
 Quando os dados estão organizados de forma coerente, temos uma estrutura de dados.
 As estruturas também são chamadas tipos de dados compostos e podem ser:
 Homogêneos: conjunto de dados formado pelo mesmo elemento de dado. 
 Heterogêneos: conjunto de dados formado por mais de um elemento de dado.
Elementos de dados
 As mais comuns serão descritas a seguir. Lembrando que nem todas as estruturas existem 
nos diferentes bancos de dados. 
 Por exemplo, a estrutura de dados conhecida como vetor não existe no banco de dados 
Sybase, mas por meio do conceito de cursor podemos lidar com os dados com a mesma 
funcionalidade dos vetores. 
 Vetores, também conhecidos como array, são uma estrutura de dados simples, linear e 
estática que mantém uma série finita de elementos de dados do mesmo tamanho e tipo.
Estrutura de dados
Lista.
 Cada elemento de dados referencia o seu sucessor. 
Os tipos de lista são: 
 Lista encadeada: Os elementos são armazenados em sequência, não tendo como acessar 
um segundo elemento sem acessar o primeiro. 
 Lista ordenada: Os elementos são armazenados seguindo algum critério de ordenação. • 
Fila Estruturas que se comportam como filas tradicionais e têm como política de 
funcionamento o FIFO (First in, first out – primeiro que entra, primeiro que sai). As inserções 
são realizadas no final, e a remoção no início. Existem duas operações nas filas, que são:
Estrutura de dados
Fonte: Livro-texto.
FimComeço
- Enqueue: adiciona um elemento ao final da fila.
- Dequeue: remove um elemento do início da fila.
Figura 33 – Exemplo de estrutura de dados em fila
5 3 7 1 4
Pilha
 É baseada no princípio LIFO (Last in, first out – último que entra, primeiro que sai). O topo é 
o único local possível de inserir elementos e a remoção da pilha só ocorre nas extremidades 
do topo, isto é, os elementos são removidos na ordem inversa da inserção. 
As funções que se aplicam a pilhas são:
 PUSH: insere um dado no topo da pilha. 
 POP: remove o item no topo da pilha.
 TOP: retorna o elemento no topo.
Estrutura de dados
Árvores
 Os dados estão dispostos de forma hierárquica, tendo seu elemento principal chamado de 
raiz, que possui ligação com os outros elementos denominados ramos. 
Uma árvore binária é aquela em que cada ramo possui mais dois ramos, como 
na figura a seguir:
Estrutura de dados
Fonte: Livro-texto.
Figura 34 – Exemplo de estrutura de dados em árvore
O projeto de dados é considerado a parte estática do sistema, uma vez que diz respeito a um 
universo persistente de características que dificilmente sofre modificações após a sua 
definição. E durante sua criação podemos fazer uso de regras de mapeamento de um DER 
para o modelo de dados escolhido. Em qual etapa é possível encontrar essa descrição?
a) Projeto lógico.
b) Projeto conceitual.
c) Levantamento de requisitos.
d) Projeto físico.
e) Validação e testes.
Interatividade
O projeto de dados é considerado a parte estática do sistema, uma vez que diz respeito a um 
universo persistente de características que dificilmente sofre modificações após a sua 
definição. E durante sua criação podemos fazer uso de regras de mapeamento de um DER 
para o modelo de dados escolhido. Em qual etapa é possível encontrar essa descrição?
a) Projeto lógico.
b) Projeto conceitual.
c) Levantamento de requisitos.
d) Projeto físico.
e) Validação e testes. 
Resposta
ATÉ A PRÓXIMA!
Profa. MSc. Sandra Bozolan
UNIDADE IV
Administração de
Banco de Dados
 De modo geral, os SGBD costumam armazenar os dados e as estruturas de bancos de 
dados em locais e arquivos diferentes de onde são armazenadas as informações sobre as 
operações efetuadas sobre os dados e as estruturas.
 Por exemplo, o SGBD Microsoft SQL Server armazena os dados em dois arquivos distintos: 
 Um arquivo com a extensão mdf.
 Arquivo principal do banco de dados. 
 Nesse arquivo são gravados os dados e a estrutura do banco de dados. 
 Um arquivo com a extenção ldf. 
 Arquivo de log do banco de dados. Grava todas as operações 
realizadas dentro do banco de dados. Funciona como um 
diário de tudo o que acontece lá dentro.
Administração de banco de dados
 A escolha do banco de dados da empresa é uma decisão muito delicada, na medida em que 
irá acarretar troca de aplicativos e de hardware. Os investimentos diretamente aplicados no 
banco de dados costumam ser infinitamente menores do que aqueles a serem aplicados na 
empresa, visando sua perfeita adequação ao novo SGBD. 
 Essa decisão, sempre que possível, deve ser tomada por especialistas em banco de dados, 
com profundos conhecimentos de análise de sistemas, de banco de dados e de software

Continue navegando