Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
paulo1410@hotmail.com
10/10/2009
Esse é o terceiro memorex destinado aos concurseiros de TI. Neste material, foram compilados os
principais conceitos sobre banco de dados e as cláusulas SQL avançadas (grupos, funções agregadas,
subconsultas, etc) que costumam confundir até os candidatos mais experientes sobre o assunto. Questões
comentadas encontram-se ao final do material. Agradecimento ao concurseiro Diogo Fagundes [diofagor]
que pacientemente comentou a maioria das questões. Bons estudos a todos!
Memorex anteriores:
http://www.scribd.com/doc/16787717/Memorex-Redes
http://www.scribd.com/doc/17101886/Memorex-PMBOK-2004
Errata:
No Memorex de Redes a seguinte questão elaborada pelo cespe: “O criptossistema Diffie Hellman
define uma forma segura de troca de chaves” está errada devido a vulnerabilidade ao ataque man-in-the-
middle e nada tem a ver com termo “criptossistema” como consta no material.
O texto a seguir foi compartilhado por um membro da lista timaster. Fica a reflexão.
'Quem quer fazer alguma coisa, encontra um meio'. 'Quem não quer fazer nada, encontra uma
desculpa'.
Roberto Shinyashiki
Normatização - Um aspecto importante na modelagem de dados consiste na normalização de dados, realizada com o
objetivo de eliminar redundâncias e possíveis inconsistências no modelo de dados. Várias tabelas estreitas com menos
colunas são características de um banco de dados normalizado. Poucas tabelas largas com mais colunas são características
de um banco de dados não normalizado.
1FN: Diz-se que uma tabela está na primeira forma normal quando ela não contém tabelas aninhadas (grupo repetido
ou coluna multivalorada ou coluna não atômica)
2FN: Uma tabela está na 2FN se, além de estar na 1FN, não possuir dependências funcionais parciais, ou seja, todos
os atributos não-chave devem depender funcionalmente da chave primária inteira. Só ocorre com chaves
primárias compostas
3NF: Uma tabela está na 3FN se, além de estar na 2FN, não possuir dependências transitivas entre os atributos.
Dependências transitivas ocorrem quando um atributo não-chave depende de outro que não é chave da relação
BCNF : Uma tabela está na BCNF, se e somente se, estiver na 3FN e houve dependências funcionais não triviais.
CESPE: No modelo ER, um atributo cujos valores são distintos para cada entidade individual de um conjunto de
entidades de determinado tipo é denominado atributo-chave. [CORRETO]
CESPE: O grau de um tipo de relacionamento é o número de tipos de entidades participantes desse tipo de
relacionamento. [CORRETO] Trata do conceito de grau para o modelo entidade-relacionamento que é o número de
entidades que participam de relação, por exemplo, no relacionamento ternário o grau é 3, uma vez que três entidades se
relacionam.
CESPE: No modelo de banco de dados relacional, o grau de uma relação é o número de atributos do esquema dessa
relação [CORRETO] O conceito de grau no Modelo Relacional é diferente do de Modelo E/R. No Modelo Relacional o grau é
dado pelo número de atributos, enquanto no E/R é dado pelo número de entidades
2) Para cada relacionamento binário M:N, será criado três relações: duas
relações a partir das entidades envolvidas e uma nova relação (tabela auxiliar).
A tabela auxiliar terá duas chaves estrangeiras referenciando as demais
relações, cada chave estrangeira corresponderá a chave primária das relações
referenciadas.
CESPE - Os relacionamentos muitos-para-muitos entre dois tipos de entidades, tais como relacionamentos entre
funcionários e projetos, não podem ser representados diretamente na modelagem E-R.
[ERRADO] O modelo entidade-relacionamento pode representar todas as restrições de cardinalidade: um para um,
um para muitos, muitos para um e muitos para muitos.
CESPE - O modelo relacional clássico não permite a realização de relacionamentos com multiplicidade de muitos para
muitos.
[CORRETO] Deve-se adicionar uma tabela para deixar o modelo relacional na forma 1:N
[CORRETA] Imagine que você queira identificar filhos de uma entidade Pessoa! Como identificá-los (escolher o mais velho,
por exemplo) sem um identificador como a ordem de nascimento deles? Você realmente precisa de um identificador da
entidade fraca! Além, é claro, da chave primária da entidade forte! [WelkeyCosta]
[CORRETO] No MER não há unidirecinamento como na UML, entretanto esse não é o único conceito que diferencia o MER
da UML, na UML podemos representar a visibilidade de um atributo e representar os métodos, no MER não; etc.
Dependência Não Transitiva: Ocorre quando cada atributo for funcionalmente dependente apenas dos atributos
componentes da chave primária ou se todos os seus atributos não chave forem independentes entre si.
RESTRIÇÕES/ INTEGRIDADES
Uma restrição de unicidade (também chamada “integridade de entidade” ou unique constraint) é uma regra que previne
valores duplicados em uma ou mais colunas em uma tabela. Restrições de unicidade são chaves únicas e chaves primárias.
Por exemplo, uma restrição de unicidade pode ser definida em um identificador de fornecedor (supplier identifier) em
uma tabela de fornecedor (supplier table) para assegurar que o mesmo identificador de fornecedor não seja atribuído a
dois fornecedores (suppliers).
Uma restrição referencial é uma regra sobre valores em uma ou mais colunas em uma ou mais tabelas. Por exemplo, um
conjunto de tabelas compartilha informação sobre fornecedores de uma corporação. Ocasionalmente, um identificador
(ID) de fornecedor muda. Pode-se definir uma restrição referencial ditando que o ID do fornecedor na tabela deve (must)
igualar-se ao ID do fornecedor nas informações sobre o fornecedor. A restrição previne operações de inserção, atualização
ou deleção que poderiam de outro modo resultar no desaparecimento de informações do fornecedor.
Uma restrição de checagem (também chamada integridade de domínio) determina restrições em dados adicionados a
uma tabela específica. Por exemplo, a restrição pode ser adicionada para definir que o nível salarial de um empregado
nunca seja menor que um determinado valor quando os dados salariais forem adicinados ou atualizados em uma tabela
de informações de pessoal.
(CESPE/STF2008) Integridade referencial pode ser definida como uma condição imposta a um conjunto de atributos de uma
relação para que valores que apareçam nesse conjunto também apareçam em um certo conjunto de atributos de uma
outra relação. GAB: C
Junção: você pode usar o recurso de junção da linguagem SQL para reunir dados armazenados em diferentes tabelas,
criando um vínculo entre eles.
A álgebra relacional consiste de operações cujos nomes vêm da teoria de conjuntos e as principais são:
UNIÃO (UNION)
Que produz uma tabela resultado da união das tabelas operadas
INTERSEÇÃO (INTERSECT)
Que cria uma tabela resultado da interseção das tabelas operadas
PRODUTO CARTESIANO
Que gera todas as combinações possíveis entre as t-uplas de duas tabelas.
Esquema
Descrição (textual ou gráfica) da estrutura de um banco de dados de acordo com um determinado modelo de
dados
Instância
Conjunto de dados armazenados em um banco de dados em um determinado instante de tempo.
CONSISTÊNCIA
Na propriedade de Consistência, a execução de uma transação isolada (isto é, sem a execução concorrente de outra
transação) preserva a consistência do banco de dados. A Consistência garante que uma transação deve ser um programa
correto, e suas ações não devem resultar em violações de restrições de integridade definidas para o banco de dados.
Assegurar a propriedade de Consistência após uma transação é tarefa do programador que codifica a transação.