Escolar Documentos
Profissional Documentos
Cultura Documentos
CÓDIGO UNISCED1-GSI03
GSITOTAL HORAS/ 1
SEMESTRE 150
CRÉDITOS (SNATCA) 60
NÚMERO DE TEMAS 14
UNISCED CURSO: GESTÃO DE SISTEMAS DE INFORMAÇÃO; 20 Ano Disciplina/Módulo: Desenho de
base de dados
Fax: 23323501
E-mail:direcção@unUNISCED.edu.mz
Website: www.unUNISCED.edu.mz
UNISCED CURSO: GESTÃO DE SISTEMAS DE INFORMAÇÃO; 20 Ano Disciplina/Módulo: Desenho de
base de dados
Agradecimentos
Índice
1 VISÃO GERAL 1
1.1 Benvindo à Disciplina/Módulo de Contabilidade Geral ......................................... 1
1.2 Objectivos do Módulo ............................................................................................. 1
1.3 Quem deveria estudar este módulo ........................................................................ . 1
1.4 Como está estruturado este módulo ......................................................................... 2
1.5 Ícones de actividade ................................................................................................ 5
1.6 Habilidades de estudo .............................................................................................. 5
1.7 Precisa de apoio? ..................................................................................................... 7
1.8 Tarefas (avaliação e auto-avaliação) ....................................................................... 7
1.9 Avaliação ................................................................................................................. 8
iii
UNISCED CURSO: GESTÃO DE SISTEMAS DE INFORMAÇÃO; 20 Ano Disciplina/Módulo: Desenho de
base de dados
iv
UNISCED CURSO: GESTÃO DE SISTEMAS DE INFORMAÇÃO; 20 Ano Disciplina/Módulo: Desenho de
base de dados
6 PL/SQL
6.1 Introdução .............................................................................................................. 90
6.2 Extensões procedurais usose benefícios ................................................................ 90
6.2.1 Reuso de Código .................................................................................. 91
6.2.2 performance de tráfego de rede ........................................................... 91
6.2.3 Elementos chaves da linguagem procedural ........................................ 91
6.2.4 Variáveis e atribuição .......................................................................... 91
6.2.5 Módulos, sub programas e blocos de estruturas. ................................. 92
6.2.6 Passagem de parâmetros ...................................................................... 92
6.2.7 Bloco condicional ................................................................................ 93
6.2.8 Repetição de execução (LOOP) .......................................................... 93
6.2.9 Cursores ............................................................................................... 94
6.2.10 Tratamento de excepções ..................................................................... 95
6.2.11 Procedimentos armazenados (Store procedures) ................................. 96
6.2.12 ..................................................................................................................... 97
6.2.13 Funções (Fuctions) .............................................................................. 98
6.2.14 Gatilhos (Triggers) ............................................................................ 100
7 Exercícios 101
8 Referências 108
v
1 VISÃO GERAL
Saber os conceitos de banco de dados, sistemas de
gerenciamento de banco de dados.
Conhecer a história evolutiva dos bancos de dados.
Objectivos Específicos
Conhecer e entender os conceitos relacionados a bancos de
dados relacionais.
Conhecer os diferentes tipos de estrutura de armazenamento
dos bancos de dados.
Saber criar e manipular bancos de dados relacionais usando a
linguagem SQL.
Saber criar funcionalidades avançadas trazidas pela extensão
PL/SQL
1
ocorrer, contudo, que haja leitores que queiram se actualizar e
consolidar seus conhecimentos nessa disciplina, esses serão bem-
vindos, não sendo necessário para tal se inscrever. Mas poderá
adquirir o manual.
Este módulo está estruturado em Temas. Cada tema, por sua vez
comporta certo número de unidades temáticas ou simplesmente
unidades. Cada unidade temática se caracteriza por conter uma
introdução, objectivos, conteúdos.
No final de cada unidade temática ou do próprio tema, são
incorporados antes o sumário, exercícios de auto-avaliação, só
depois é que aparecem os exercícios de avaliação.
Os exercícios de avaliação têm as seguintes características: Puros
exercícios teóricos/Práticos, Problemas não resolvidos e
actividades práticas, incluído estudo de caso.
2
Outros recursos
3
Auto-avaliação e Tarefas de avaliação
Métodos de avaliação
Comentários e sugestões
4
1.5 Ícones de actividade
5
É impossível estudar numa noite tudo o que devia ter sido
estudado durante um determinado período de tempo; Deve
estudar cada ponto da matéria em profundidade e passar só ao
seguinte quando achar que já domina bem o anterior.
6
Utilizar o dicionário sempre que surja um conceito cujo significado
não conhece ou não lhe é familiar;
Caro estudante, temos a certeza que por uma ou por outra razão, o
material de estudos impresso, lhe pode suscitar algumas dúvidas
como falta de clareza, alguns erros de concordância, prováveis
erros ortográficos, falta de clareza, fraca visibilidade, página
trocada ou invertidas, etc). Nestes casos, contacte os serviços de
atendimento e apoio ao estudante do seu Centro de Recursos (CR),
via telefone, sms, E-mail, se tiver tempo, escreva mesmo uma carta
participando a preocupação.
Uma das atribuições dos Gestores dos CR e seus assistentes
(Pedagógico e Administrativo), é a de monitorar e garantir a sua
aprendizagem com qualidade e sucesso. Dai a relevância da
comunicação no Ensino a Distância (EAD), onde o recurso as TIC se
torna incontornável: entre estudantes, estudante – Tutor, estudante
– CR, etc.
As sessões presenciais são um momento em que você caro
estudante, tem a oportunidade de interagir fisicamente com staff
do seu CR, com tutores ou com parte da equipa central do
UNISCED indigitada para acompanhar as sua sessões presenciais.
Neste período pode apresentar dúvidas, tratar assuntos de
natureza pedagógica e/ou administrativa.
O estudo em grupo, que está estimado para ocupar cerca de 30%
do tempo de estudos a distância, é muita importância, na medida
em que lhe permite situar, em termos do grau de aprendizagem
com relação aos outros colegas. Desta maneira ficará a saber se
precisa de apoio ou precisa de apoiar aos colegas. Desenvolver
hábito de debater assuntos relacionados com os conteúdos
programáticos, constantes nos diferentes temas e unidade
temática, no módulo.
7
campo conta e é decisiva para ser admitido ao exame final da
disciplina/módulo.
Os trabalhos devem ser entregues ao Centro de Recursos (CR) e os
mesmos devem ser dirigidos ao tutor/docente.
Podem ser utilizadas diferentes fontes e materiais de pesquisa,
contudo os mesmos devem ser devidamente referenciados,
respeitando os direitos do autor.
1.9 Avaliação
1
Plágio - copiar ou assinar parcial ou totalmente uma obra literária, propriedade
intelectual de outras pessoas, sem prévia autorização.
8
recomendações, a identificação das referências bibliográficas
utilizadas, o respeito pelos direitos do autor, entre outros.
Os objectivos e critérios de avaliação constam do Regulamento de
Avaliação.
9
2 TEMA – I: SISTEMA DE BASE DE DADOS.
Objectivos
específicos Ao completar esta unidade, você deverá ser capaz de:
11
Segundo (Quickbase, 2018), A necessidade por organização de
informação surgiu desde os primórdios da nossa historia. No passado,
elaborados sistemas de banco de dados foram desenvolvidos por
grandes escritórios governamentais e privados, bibliotecas, hospitais e
organizações empresariais. Alguns dos princípios básicos desses
sistemas de armazenamento ainda são usados hoje. Já na década de
1960, o banco de dados informatizado começaram a surgir, quando o
uso de computadores se tornou uma opção mais econômica para
organizações privadas. Havia dois modelos de dados populares nesta
década, sendo um modelo de rede chamado CODASYL e um modelo
hierárquico chamado IMS. Um sistema de banco de dados que provou
ser um sucesso comercial foi o sistema SABRE que foi usado pela IBM
para ajudar a American Airlines a gerenciar seus dados de reservas. De
1970 a 1972, E.F. Codd publicou um artigo importante para propor o
uso de um modelo de banco de dados relacional, e suas ideias
mudaram a forma como as pessoas pensavam sobre bancos de dados.
Em seu modelo, o esquema do banco de dados, ou organização lógica,
é desconectado do armazenamento de informações físicas, e isso se
tornou o principal padrão dos sistemas de banco de dados.
12
Dbase III e IV, Database Manager OS / 2. e Watcom SQL. (Quickbase,
2018)
2.1.2 Sumário
O processo de evolutivo das tecnologias na área de armazenamento
dos dados deu-se muito pela necessidade de melhoria de processos e
métodos que permitissem melhorar o armazenamento, acesso e
manipulação de informações. O necessidade de armazenamento vem
desde primórdios da nossa historia, evoluindo para grandes salas de
organizações governamentais e privadas no formato físico, passando
para meios de armazenamentos
13
digitais em ficheiros de computadores. Contudo o processo evolutivo
continuo visando melhorar as formas de armazenamento, tal situação
originou a criação de métodos como em rede, hierárquico, relacional,
orientado em objeto. Visto que a necessidade de aprimorar ainda
continua, novos métodos surgiam ao longo dos tempos.
14
4. A linguagem de consulta que tornou padrão foi?
Respostas: 1 - B, 2 - A, 3 - B, 4 - D.
Descrever o que é um banco de dados,
sistema, sistema de banco de dados e sistema
de gerenciamento de banco de dados.
Conhecer o conceito de dados e informação;
Objectivos
específicos Entender a estrutura de um sistema de banco de dados.
Conhecer a estrutura de um sistema de gerenciamento de banco de dados.
2.2.1 Introdução
Todo e qualquer sistema trabalha para um propósito, os sistemas de base de
dados tem com propósito o armazenamento e processamento de informação.
A capacidade de armazenamento está associada ao banco de dados e o
processo de manipulação associado um conjunto de ferramentas.
2.2.2 Sistema
Um Sistema é um conjunto de elementos que trabalham de forma
colaborativa por um determinado propósito. Nele, cada componente atua
como parte importante no sistema, sendo responsável por determinadas
atividades. As atividades executadas por um determinado componente
podem servir como entrada para outro componente. Os sistemas operam
num determinado ambiente.
15
2.2.2.1 Sistema de informação
Refere-se a Sistemas de Informação todo o sistema que seja ele automatizado
ou manual, que tenha por objetivo coletar, processar, transmitir e disseminar
dados que representam informação.
16
1. Sistema de processamento de transações (SPT) - Sistemas que Têm a
função de realizar e registrar as transações e informações necessárias
para funcionamento da organização. Auxiliando a condução do
negócio, constituindo a base operacional da organização.
2. Sistemas de informações gerenciais (SIG) - responsáveis pelo
desenvolvimento de relatórios sobre o desempenho atual da
organização, permitindo monitorar e controlar a empresa e até
mesmo prever o seu desempenho futuro.
17
2.2.2.2.1 Base de dados
Banco da dados nada mais são do que uma coleção de informação
organizada, ou seja uma repositório contendo um conjunto de informação
organizada. O enfoque dos bancos de dados estão na informação organizada.
quer isso dizer que, conjunto de informação não organizada, não pode ser
considerada um banco de dados.
18
Figura 2 - Função de SGBD – FONTE : autor, 2018
Arquiteturas
19
resultados ao cliente. Apesar de ser uma arquitetura bastante popular,
são necessárias soluções sofisticadas de software que possibilitem o
tratamento de transações, as confirmações de transações (commits),
desfazer transações (rollbacks), linguagens de consultas (stored
procedures) e gatilhos (triggers). A principal vantagem desta arquitetura
é a divisão do processamento entredois sistemas, o que reduz o
tráfego de dados na rede.
20
Figura 3 - Arquitetura Three-Schema – FONTE: (Osvaldo Kotaro Takai, 2005).
21
Figura 4 - Visão interna do SGBD – FONTE: (Juliano, 2014).
Capacidades
Os sistemas de gerenciamentos de bancos de dados são responsáveis por
uma serie de atividades de gestão de bancos de dados. Para que ela possa
executar essas atividades elas deve ter algumas caraterísticas e capacidades.
22
relacionados de muitas maneiras. Um SGBD deve ter a capacidade de
representar uma variedade de relacionamentos complexos entre
dados, bem como recuperar e modificar dados relacionados de
maneira fácil e eficiente;
23
B. programadores de aplicações implementam estas
especificações produzindo programas e, então, testam,
depuram, documentam e mantêm estes programas. Analistas e
programadores devem estar familiarizados com todas as
capacidades fornecidas pelo SGBD para desempenhar estas
tarefas.
III. Usuários Finais - existem profissionais que precisam ter acesso à base
de dados para consultar, modificar e gerar relatórios. A base de dados
existe para estes usuários. Existem algumas categorias de usuários
finais:
2.2.3 Sumário
Um sistema de base de dados inclui o banco de dados e o conjunto de
programas que permitem a manipulação desses dados. A necessidade
de organização e estruturação de informações foi um dos factores que
contribui para o desenvolvimento de banco de dados e sistema de
gerenciamentos dos bancos. Atores com Ted Codd e Peter Chen
participaram de forma activa no processo de criação de padrões e
soluções na área de bancos de dados.
24
A. Conjunto de elemento trabalhando de forma colaborativa
para atingir determinado objetivo.
B. Uma coleção desorganizada de dados.
C. Uma coleção não organizada de dados ou informação.
D. Conjunto de elemento trabalhando sem objetivos comuns
2. Base de dados?
A. Um coleção de dados.
B. Uma coleção de desorganizada de dados.
C. Uma coleção organizada de dados.
D. Conjunto de elemento trabalhando por objetivo comum.
25
2. Um Dados representa?
A. Factos brutos que descrevem eventos e factos.
B. Resultado do processamento dos dados.
C. Instância de informação.
D. Descrição informal das tecnologias.
26
2.3 UNIDADE Temática 2.2.: Modelos de base de dados
banco de dados e sua
Conhecer e entender os diferentes modelos de
estrutura de armazenamento de informação.
Objectivos
específicos
2.3.1 Introdução.
1. Rede – 1970.
2. Hierárquico – 1960 – 1970.
3. Relacional – 1980.
4. Entidade relacionamento -1970
5. Relacional estendido - 1980
6. Semântico - 1970 - 1980
7. Orientado objeto 1980- 1990
8. Objeto relacional – 1980 - 1990
9. Semiestruturado (XML) -1990 – presente.
27
2.3.2 Modelo hierárquico
28
Figura 5 - Diagrama de estrutura de árvore Cliente - Conta
Corrente –
FONTE: (Osvaldo Kotaro Takai, 2005)
29
Os geradores de relatórios da CODASYL também definiram sintaxes
para dois aspectos chaves dos sistemas gerenciadores
de dados: concorrência e segurança. O mecanismo de segurança
fornecia uma facilidade na qual parte do banco de dados (ou área)
pudesse ser bloqueada para prevenir acessos simultâneos, quando
necessário.
A sintaxe da segurança permitia que uma senha fosse associada a cada
objeto descrito no esquema. Ao contrário do Modelo Hierárquico, em
que qualquer acesso aos dados passa pela raiz, o modelo em rede
possibilita acesso a qualquer nó da rede sem passar pela raiz.
30
Prover um conjunto de funções apoiadas em álgebra relacional
para armazenamento e recuperação de dados;
Permitir processamento ad hoc (Processamento dedicado,
exclusivo).
O modelo relacional, tendo por base a teoria dos conjuntos e álgebra
relacional, foi resultado de um estudo teórico realizado por CODD
(investigador da IBM) . O Modelo relacional revelou-se ser o mais
flexível e adequado ao solucionar os vários problemas que se colocam
no nível da concepção e implementação da base de dados.
A estrutura fundamental do modelo relacional são as relações
(tabela). Uma relação é constituída por um ou mais atributos
(campos) que definem o tipo de dados a armazenar. Cada instância
do esquema (linha) é chamada de tupla (registro). O modelo
relacional não tem caminhos pré-definidos para se fazer acesso aos
dados como nos modelos em rede e hierárquico. Ela, implementa
estruturas de dados organizadas em relações. Porém, para trabalhar
com essas tabelas, algumas restrições precisaram ser impostas para
evitar aspectos indesejáveis, como: Repetição de informação,
incapacidade de representar parte da informação e perda de
informação. Essas restrições são: integridade referencial, chaves e
integridade de junções de relações.
31
Contudo, estes sistemas necessitam guardar representações das
estruturas de dados que utilizam no armazenamento permanente. A
estrutura padrão para os bancos de dados orientados a objetos foi
feita pelo Object Database Management Group (ODMG). Esse grupo é
formado por representantes dos principais fabricantes de banco de
dados orientados a objeto disponíveis comercialmente. Membros do
grupo têm o compromisso de incorporar o padrão em seus produtos.
O termo Modelo Orientado a Objetos é usado para documentar o
padrão que contém a descrição geral das facilidades de um conjunto
de linguagens de programação orientadas a objetos e a biblioteca de
classes que pode formar a base para o Sistema de Banco de Dados.
Quando os bancos de dados orientados a objetos foram introduzidos,
algumas das falhas perceptíveis do modelo relacional pareceram ter
sido solucionadas com esta tecnologia e acreditava-se que tais bancos
de dados ganhariam grande parcela do mercado. Hoje, porém,
acredita-se que os Bancos de Dados Orientados a Objetos serão
usados em aplicações especializadas, enquanto os sistemas relacionais
continuarão a sustentar os negócios tradicionais, onde as estruturas
de dados baseadas em relações são suficientes. O diagrama de classes
UML serve geralmente como o esquema para o modelo de dados
orientado a objetos.
2.3.7 Sumário
Modelos de dados, definem como os dados estarão organizados noa
bancos de dados. Cada modelo de dados arquiteta os dados segundo
suas normas. Modelo relacional é até os dias de hoje o modelo mais
implementado, nele os dados são organizados em tabelas (entidades),
com um conjunto de atributos e registros (linhas ou tuplas). Outros
modelos como o em rede, organizam seus dados numa arquitetura de
rede, definindo suas restrições e regras.
32
2.3.8 Exercícios da autoavaliação
1. Qual dos modelos abaixo continua sendo o mais utilizado
atualmente.
A. Relaciona. B. registro. C. Hierárquico. D.
Tuplas.
33
A. As Formas de acesso aos dados nos bancos de dados
B. As Formas de manipulação de dados nos bancos de dados
C. As formas como os dados estarão organizados nos bancos de
dados.
D. As formas de restrição de segurança nos bancos de dados.
Respostas: 1- D, 2 – C, 3 – C, 4- B, 5 – C.
34
3.1.2 Conceitos Básicos.
3.1.2.1 Atributos
3.1.2.2 Domínio
Um domínio representa um conjunto de valores atómicos em que tais
valor são todos do mesmo tipo ou possuem propriedades em comum.
Ao conjunto de todos os valores possíveis para um determinado
atributo dá-se o nome de domínio. Os dados do domínio são atómicos
ou simples, porque não podem sofrer mais nenhuma decomposição.
35
aluno, é composto por todos os cursos disponíveis. O domínio do
atributo nome é composto por todos valores que podem ser
resultados de caracteres.
3.1.2.3 Tuplas
Uma tupla ou linha de uma tabela, é um conjunto ordenado de valores
que representam características de dados num determinado período
do tempo. Podemos ver uma tupla como uma instância da tabela, que
associa valores aos atributos da tabela.
3.1.2.4 Relações
Uma relação representa o elemento principal do modelo relacional.
Ela consiste num corpo e um cabeçalho. O cabeçalho consiste num
conjunto fixo de atributos A1, A2, A3,…….,.An, sendo que para um
atributo Ai, corresponde somente a exatamente um único numa
determinada relação. O Corpo de uma relação corresponde a um
conjunto variável no tempo de tuplas.
36
• A intersecção de uma coluna com uma linha corresponde a
um valor. Não é permitida a existência de grupos de atributos
repetidos;
• Os dados, ou valores, são sempre atómicos.
3.1.2.5 Schemas
Um esquema no modelo relacional, é uma descrição formal de todos
bancos de dados relacionais e todas as relações existentes entre elas.
(Neeraj Sharma, 2010)
3.1.2.6 Chaves
O modelo relacional utiliza chaves para identificar tuplas. As chaves
são utilizadas para garantir a segurança e restrições no banco de
dados. Essas restrições garantiram a consistência e integridade dos
dados. Existem três tipos de chaves: Chaves candidatas, chaves
primárias e chaves estrangeiras.
A. Chaves candidatas.
É um identificador único para uma tupla numa relação. Por
predefinição, uma relação teve conter pelo menos uma chave
candidata.
Segundo (C.J.Date, apude Neeraj Sharma, 2010), uma chave
candidata pode ser difinida da seguinte forma:
Seja R uma relação com atributos A1, A2, A3, . . . . An. O conjuto
K={Ai, Aj . . . . . , Ak} de R é chamado de chave candidata de R se e
so se satisfaça as seguintes propriedades independentes:
I. Singularidade: em qualquer período do tempo, a
relação R, não pode conter duas tuplas com mesmo
valor Ai, mesmo valor Aj e mesmo valor Ak.
II. Minimalidade: Nenhum dos atributos Ai, Aj….Ak,
pode ser descartado de K sem a destruição da
propriedade singularidade.
B. Chave primária
Representa um identificador único de um tupla numa relação.
Uma chave primária é uma chave candidata escolhida para
representar a relação no banco de dados e para fornecer uma
maneira única de presentar cada tupla na relação. Uma relação
possui sempre uma chave primária.
Os sistemas de gerenciamento de banco de dados permitem a
definição da chave primária no momento da criação das tabelas.
Contudo ela também pode ser especificada despois do processo
de criação das tabelas. A sub-linguagem DDL geralmente permite
a definição de chave primária a partir da construção
PRIMARY KEY.
37
Na relação aluno definida nas sessões anteriores, o atributo
num (número do aluno) pode ser utilizada como chave
primária da relação.
C. Chave estrangeira
Uma chave estrangeira, é um atributo ou conjunto de atributos
numa relação R1 cujos valores devem ser iguais a chave primária
de uma determinada relação R2. Na relação Aluno, o atributo
curso pode ser considerado como uma chave estrangeira se
considerar-mos que existem uma tabela que armazena a
informação dos cursos. Sendo assim, o atributo curso está
referenciando um atributo de uma outra tabela (tabela cursos).
3. Restrição de domínio
Essa restrição permite Definir o conjunto de valores possíveis
ou permitidos por um atributo.
4. Restrição do nulo.
38
Define que um atributo não pode receber valor nulo.
Respostas: 1- B, 2- C, 3- B, 4- D, 5- B.
39
3.1.4 Exercícios de avaliação
Respostas: 1-A , 2- B , 3- C , 4- A , 5- A.
40
3.2 Álgebra relacional
Descrever e compreender os conceitos abordados na álgebra relacional.
Conhecer o saber aplicar as operações deponibilizadas pela álgebra
Objectivos relaciona.
específicos
3.2.1 Introdução.
3.2.1.1 União
A união entre duas relações univeis-compativelmente R1 e R2, R1
union R2 , resulta numa nova relação com todas as tuplas de R1 e R2.
41
Figura 9 - Exemplo de uma união – FONTE: (Neeraj Sharma, 2010)
3.2.1.2 Intercessão
A união entre duas relações uníveis-compativelmente R1 e R2, R1
interception R2, resulta num conjuto de tuplas que pertencem ambos
a R1 e R2. A interceção goza da prorpidade comutativa e associativa.
Formalmente representada por ᴖ.
3.2.1.3 Diferença
A diferença entre duas relações uníveis-compativelmente R1 e R2, R1
Minus R2, resulta num conjuto de tuplas que pertencem a R1 e não a
R2. A diferença não goza das prorpidade comutativa e associativa.
Formalmente representada por ̶.
42
Figura 11 - Operação diferença. FONTE: (Neeraj Sharma, 2010).
43
Figura 12 - representação do produto cartesiano. FONTE: (Neeraj
Sharma, 2010).
3.2.1.5 Seleção
O operador seleção é unário, ela seleciona um subconjunto de tuplas
de uma relação. O subconjunto de tuplas resultantes, deve satisfazer a
condição de seleção ou o predicado.
Os operadores de comparação podem ser <, >, <=, >=, =, <>. Contudo,
dependendo do domínio do atributo, certos operadores podem não
ser válidos.
44
Figura 13 - Aplicação da operação seleção – FONTE: (Neeraj Sharma,
2010)
3.2.1.6 Projeção
O operador projeção é também um operador unário, ela seleciona um
conjunto de atributo de uma determinada relação. Tuplas duplicadas
resultantes da seleção são eliminadas.
45
Figura 14 – Demostração da operação projeção. FONTE: (Neeraj
Sharma, 2010)
3.2.1.7 Join
A operação join (junção), concatena duas relações baseando-se na
condição ou predicado da junção. As relações devem possuir no
mínimo um atributo em comum pertencente ao mesmo domínio para
que a junção aconteça.
46
Segue-se da definição que o resultado de uma junção deve incluir dois
atributos idênticos do ponto de vista de seus valores. Se um desses dois
atributos for eliminado, o resultado será chamado de junção natural.
47
Figura 16 - Exemplo da junção Natural e right outer join. FONTE:
(Neeraj Sharma, 2010)
3.2.1.8 Divisão
O operador divisão divide uma relação R1 de grau (n+m) por uma
relação R2 de grau me produz com resultado uma relação de grau n.
Divisão é uma operação da álgebra relacional utilizada quando se
deseja extrair de uma relação R1 uma determinada parte que possui
as características (valores de atributos) da relação R2.
48
3.2.2 Exercícios de auto avaliação
1. No âmbito da álgebra relacional, os símbolos π (Pi) e σ
(Sigma) são utilizados, respectivamente, em operações de:
49
3.2.3 Exercícios de avaliação
50
3.2.4 Normalização e dependência funcional
Descrever ecompreender os conceitos normalização e dependências
funcionais.
Conhecer o saber aplicar as 3 formas normais.
Objectivos
específicos
3.2.5 Introdução.
Normalização é um processo a partir do qual se aplicam regras a todas
as tabelas do banco de dados com o objetivo de evitar falhas no
projeto, como redundância de dados e mistura de várias informações
numa mesma relação.
Anomalia de inserção
Essa anomalia acontece quando a inserção de registro de dados se
torna impossível a não ser que se tenha que adicionar alguns dados
não relacionados aos registros dos dados. Por exemplo inserir
informação sobre estudante obrigaria que se inserisse informações
sobre a faculdade e nível.
51
Além disso, existirá repetição de informação em diferentes
localizações no banco de dados uma vez que o nível precisará ser
inserido para cada estudante.
Anomalia de eliminação
Anomalia de actualização
Está anomalia ocorre quando atualização de dados para uma entidade
num determinado lugar pode criar inconsistência com dados
redundantes num outro lugar na tabela. Por exemplo, se actualizar-se
o nível para ‘1’ do id_estudante 0003, então a faculdade de ciências
passa ter conflito de informação com dois níveis 1 e 4.
52
seguir, é possível garantir um banco de dados mais íntegros, sem
redundâncias e inconsistências.
Existem 3 formas normais mais conhecidas:
Para que uma relação esteja na 2FN, ela deve primeiramente estar na
1FN. Além disso, todos os atributos não chaves da tabela devem
depender unicamente da chave primária não podendo depender
apenas de parte dela.
Para deixar na segunda forma normal, é preciso:
1. Identificar as colunas que não são funcionalmente
dependentes da chave primária da tabela.
2. Em seguida, remove-las da tabela principal e criar uma nova
tabela com esses dados.
ALUNOS_CURSOS={ID_ALUNO+ID_CURSO+NOTA+DESCRICAO_CURSO
}
53
Na tabela acima, o atributo DESCRICAO_CURSO depende apenas da
parte da chave primária (ID_CURSO) uma vez que a chave primária é
ID_ALUNO+ID_CURSO. Dessa forma, a tabela não está na 2FN.
Para deixa-la na 2FN, cria-se uma nova tabela chamada CURSOS que
tem como chave primária ID_CURSO e atributo DESCRICAO retirando,
assim, o atributo DESCRICAO_CURSO da tabela ALUNOS_CURSOS.
Para que uma relação esteja na 3FN, é necessário que esteja na 2FN.
Adicionado a isso, os atributos não chave de uma relação devem ser
mutuamente independentes e dependentes unicamente e
exclusivamente da chave primária.
Para atingir essa forma normal, é preciso:
1. Identificar as colunas que são funcionalmente dependentes das
outras colunas não chave e extraí-las para outra tabela.
Considere, como exemplo, a tabela FUNCIONARIOS a seguir.
54
que existe uma dependência funcional de X para Y ou que Y é
dependente funcionalmente de X. A abreviatura de dependência
funcional é DF.
3.2.7 Exercícios
55
D. Obter arquivos adequados ao backup do banco de dados.
56
4 TEMA – IV: MODELAGEM RELACIONAL.
Objectivos
específicos
4.1.1 Modelo entidade relacionamento.
O modelo entidade relacionamento, geralmente é usada como como uma
ferramenta de desenho de bancos de dados relacionais, ao não como um
modelo de dados como tal. O diagrama entidade relacionamento (DER) é muitas
vezes usada para representar requisitos de dados independentes do tipo de
banco de dados a ser utilizado, ela é a representação a estrutura de dados.
Conjunto de
entidade; Atributo;
Conjunto de
relacionamentos; Restrições
Domínio
Extensão
Intensão.
57
Figura 19 - Exemplo de entidades e conjunto de entidades.
FONTE: (Neeraj Sharma, 2010)
Atributos.
Um atributo é um dado que descreve uma propriedade ou característica
das entidades. Atributos determinam, explicam ou organizam um
conjunto de entidades. Atributos possuem valores que podem ser de
diferentes tipos como números, caracteres, datas. Cada atributo pode ter
um valor para cada entidade ou instância de conjunto de entidades.
58
atributo multi valorado, deve-se transferir o atributo para
outro conjunto de entidade.
Derivado – atributo cujo valor é obtido através do
processamento de outros atributos ou atributo. Por
exemplo a idade pode ser obtido a partir da data do
nascimento e a data actual. Atributos derivados não fazem
parte da tabela no banco de dados mas são mostrados
para clarificar ou incluídos para propósitos de desenho.
Instáveis - atributos cujos valores estão mudando
frequentemente. Ex: ano do estudo do estudante.
Estáveis – atributo que os valores podem em poucas
circunstâncias ou nunca mudam. Ex: ano de inscrição do
estudante.
Mandatários - atributos que devem possuir valores. O
atributo nome do estudante no processo de inscrição é
necessário.
Opcional - atributos que podem ter valores ou podem ser
deixados como nulos.
Identificador único – esses atributos que distinguem uma
entidade das outras. Exemplo numa sala de aula pode-se
distinguir um estudante dos outros através do uso de um
atributo ID.
59
Chave simples – são aquelas que são composta por um único
atributo.
Chaves compostas – aquelas compostas por mais de um
atributo.
Chave estrangeira – essas chaves existem quando existem
mais de uma relação. Atributos de uma relação devem existir
noutra relação. Deve existir relacionamento entre os atributos.
Existem situações especiais em que a chave estrangeira surge
através de relacionamentos unários, isso é, caso em que uma
relação se relaciona com a mesma relação.
Domínio
O domínio representa um conjunto de valores possíveis que um ou vários
atributos podem assumir. Elas permitem definir os tipos de dados que os
atributos podem aceitar. Ex: INT, CHAR, DATE, DOUBLE, etc.
Extensão
Sabe-se que os dados no banco de dados variam com o tempo. Uma
extensão representa dados num banco de dado num determinado
período do tempo. Uma extensão refere o conjunto de tuplas
existentes actualmente em uma relação. É uma instância do conjunto
de registro e a relação existentes entre elas.
Intensão
Intensão ou Schema é o modelo lógico do banco de dados e a
representado pelo conjunto de entidades.
Conjunto de relacionamento
Conjunto de relacionamento é um conjunto de relacionamento entre
dois ou mais conjunto de entidades. Elas são representadas usando
verbos. Já o relacionamento é uma instância de conjunto de
relacionamento que servem para relacionar duas ou mais entidades
relacionadas.
Um relacionamento sempre existem entre dois conjuntos de
entidades ou com um único conjunto de entidade quando possui
relacionamento com ele próprio. O conjunto de relacionamento deve
nos dois sentidos de um para outro conjunto de relacionamento.
Cardinalidade
Definem o número possível de conjunto de relacionamento para cada
conjunto de entidade.
A cardinalidade é um conceito importante para ajudar a definir o
relacionamento, ela define o número de ocorrências em um
relacionamento.
Dado um relacionamento R entre entidades E (esquerda) e F (direita),
diz-se que o relacionamento R é:
60
Um para um (1:1) – é usado quando uma entidade E se
relaciona com uma entidade F e vice-versa.
Participação
Determina se a existência de uma entidade está condicionada ou não
ao seu relacionamento com outra entidade. Existem dois tipos de
participação:
61
4.2 UNIDADE Temática 4.1: Diagrama entidade relacionamento.
62
Para além da notação Chen, outros tipos de notações utilizados para o
desenho de diagramas entidades relacionamentos como:
Notação Bachman
Notação IDEF1x
Notação Barker
Notação Crow´s Foot/ Martin/ engenharia de informação
63
B. Elemento de permite a cominicação com outros objectos no
esquema do modelo recional.
5. Atributo monovalorado
A. São atributos formado por um ou mais sub- atributos.
1. Atributos multivalorados:
A. São atributos que assumem um único valor para cada elemento.
64
C. São atributos que podes assumir vários valores ao mesmo tempo.
2. Atributos compostos
A. São atributos que assumem um único valor para cada elemento.
3. Atributos determinantes
65
7. Qual das opções não representa um tipo de cardinalidade nos
relacionamentos entre entidades.
A. Nenhum para um.
B. um para um.
C. um para muitos.
D. muitos para muitos.
5 TEMA – 4: SQL
Objectivos
66
específicos Conhecer e saber implementar comandos de consulta e
manipulação de dados de dados relacionais usando declarativas
SQL.
5.1.1 Introdução
67
5.1.2 Histórial
68
5.2 UNIDADE Temática 4.2.: DDL
Objectivos
específicos
5.2.1 DDL
Linguagem de definição de dados DDL, (Data Definition Language) é
um conjunto de comandos dentro da SQL usada para a definição das
estruturas de dados, fornecendo as instruções que permitem a
criação, alteração e remoção das tabelas, índices e views. Durante o
processo de criação as instruções permitem definir a estrutura de uma
base de dados, incluindo as linhas, colunas, tabelas, índices, e outros
meta dados.
69
(
Nome_atributo tipo_dado,
…………
);
EX:
5.2.2.3 Restrições
Em SQL, restrições permitem que se define um conjunto de regras sobre
os dados das tabelas. As restrições são definidas durante o processo de
criação das tabelas, contudo podem ser atualizadas posteriormente em
caso de necessidade. Existem diferentes tipos de restrições:
71
possui NULL como dado, nenhum outro pode conter o valor
NULL.
72
5.2.2.4 Integridade referencial
Integridade referencial, é uma restrição definida nos bancos de dados
relacionais com objetivo de manter a integridade dos dados nas
tabelas que se relacionam. Através da utilização de chaves primária e
chaves estrangeiras, elas garantem a validades dos dados.
73
CREATE TABLE product_avail
(
prodID INT(10) PRIMARY KEY NOT NULL,
supplier VARCHAR(20) NOT NULL,
avail_start DATE,
avail_end DAte
);
Exemplo:
……………..
);
Tipos de indexes
Os sitemas de gerenciamentos de bancos de dados relacionais usuam
os seguintes tipos de indexes:
Btree indexe - também chamado de binary indexes, nele cada nó só
pode conter dois ramos filhos.
Bitmap índex – aquele que contém uma representação binaria de
cada registro, usando 0’ e 1’.
ISAM indexes – indexed sequencial Acces Method em português
método de acesso sequencial indexado, usa uma simples estrutura
com a lista do registros.
76
Hash table (tabela Hash) – tabela hash, é uma copia dados mas
reorganizada de uma forma diferente e com ordem de acesso mais
eficiente, dependendo do algoritmo hash utilizado.
Para além dos tipos de indexes acima referenciado, existem outros
utilizados pelos sistemas de base de dados para, melhorar a eficiência
no acesso aos dados.
Para além das alterações (ALTER) das colunas, o comando ALTER, pode
ser usado para adicionar novas colunas (ADD) e Eliminar colunas
(DROP). A baixa a sintaxe para cada uma das ações.
Alterar tabela:
Eliminar coluna:
Adicionar coluna:
77
5.2.7 Renomeando objetos no banco de dados.
Os objetos dentro dos bancos de dados podem ser renomeados
sempre que for necessário. Pode acontecer que durante a criação de
uma tabela, por error, não se definiu o nome correto da tabela. A ação
renomear é feita a partir do comando RENAME como ilustra a sintaxe
abaixo.
Por vezes por situações adversas como libertar espaço no disco pode
ser que precisemos eliminar objectos no sistema de arquivo. A SQL
com a declaração DROP, permite que se elimine objectos. A sintaxe
SQL utilizada para eliminação de objectos é apresentada abaixo.
Exemplo:
Exemplo:
5.3 DML
5.3.1 Cláusulas
Operador Descrição
< Menor
> Maior
<= Menor ou igual
>= Maior ou igual
= Igual
<> Diferente
79
BETWEEN (entre) – usado para definir valores dentro de um
intervalo fechado.
LIKE (como) – Utilizado para buscar todos resultados que
tenham subparte definido no operador LIKE.
IN - Utilizado para verificar se o valor pretendido está dentro
de uma lista consultada.
Exemplo 1:
Exemplo 2:
80
INSERT INTO alunos VALUES (30, ‘Jose’, ‘Albano, 05/11/1993,
000000000, 2015, ´software´);
Exemplo:
Exemplo:
81
Caso se deseje buscar todos os campos de tabela, usas a caractere
especial *. O mesmo equivale a especificar todos os campos na
declaração SELECT.
Exemplo:
Exemplo:
Essa instrução pode ser lida como: buscar todos as colunas (SELECT *),
na tabela alunos (FROM alunos), que tenha como numero_estudante
igual a 25 (WHERE numero_estudante=25).
Exemplo:
5.4 DCL
82
User – representa uma entidade que faz o uso de serviços do
sistema de gerenciamento de banco de dados.
Comando GRANT:
On <objecto>
TO <usuário|role>
Exemplo1:
GRANT SELECT
ON alunos
TO ‘joao’
Exemplo2:
ON alunos
TO ‘professores’
Exemplo3
83
O exemplo 1 atribui ao usuário joao o privilégio de fazer consultas na
tabela alunos, supondo que exista o usuário João no sistema.
Comando REVOKE:
ON objecto
Exemplo:
REVOKE SELECT
ON alunos
FROM ‘joao’
84
bancários usando bancos de dados, estas que implicam execução
múltiplas instruções, pressupõem a implementação de técnicas que
permitam tais atividades sejam atómicas, isto é, que somente se sejam
validades caso todas instruções sejam executas e não simplesmente
uma parta evitando inconsistência de informação. Para contornar essa
situação, a SQL fornece o mecanismo chamado de transação. Falar-se-
á neste sessão sobre controlo de concorrência e transações.
5.5.1 Transações
1. Atomicidade
2. Consistência
3. Isolamento
4. Durabilidade
85
O COMMIT e ROLLBACK, são as principais comandos usados na
declaração de uma transação, uma responsável por persistir os dados
no banco de dados (COMMIT) em caso de uma execução com sucesso
e outra anula todas atividades executadas (ROLLBACK) no corpo da
transação, geralmente chamada em caso de algum erro na execução
da transação.
START TRASATION
<corpo da transação>
COMMIT;
ROLLBACK;
a. DDL
b. LCD
c. DML
87
d. SDL
a. DML
b. LCD
c. SDL
d. DDL
88
D. SQL é usada como linguagem de construção e acesso a
Banco de Dados.
A. DROP.
B. ALTER.
C. CHANGE.
D. UPDATE.
6 TEMA – I PL/SQL.
89
6.1 Introdução e conceitos.
Objectivos
específicos Ao completar esta unidade, você deverá ser capaz de:
6.2 Introdução
90
6.3.1 Reuso de Código
O PL/SQL, permite que instruções possam ser armazenados e
utilizados posteriormente. Procedimentos armazenados e funções
após serem compilados, poderão ser utilizados dentro de outros
módulos e outras aplicações permitindo assim redução de tempo. O
reuso de código aqui, é feito usuo e criação de módulos.
PL/SQL (Oracle)
Na sintaxe de declaração de variáveis, o PL/SQL, omite a palavra-chave
DECLARE.
Nome-variável TIPO.
91
Ex: idade INT
A inicialização de variáveis é feita a partir do operador:=.
Ex: idade:=25;
92
CREATE PROCEDURE SP_INSERT_USER
(
Nome VARCHAR (50),
Apelido VARCHAR (40),
Idade INT
)
IF (condição) THEN
<Bloco de instrução>
ELSE (condição)
<Bloco de instrução>
END IF
O Loop WHILE, pode emular todos os três tipos de loops. Segue abaixo
a sintaxe de declaração de Loop While.
WHILE <condição>
DO
<declaraçã>
………
………
END WHILE;
6.3.9 Cursores
94
Os cursores permitem que se trabalha como cada linha ao invés de todas
as linhas resultantes de uma declaração. Cursores permitem definir uma
variável que receberá o resultado da declaração, permitindo assim que
identifiquemos o cursor para posterior manipulação.
BEGIN
………
END
95
CONTINUE – continua a execução do programa depois de terminar o
handler
96
CREATE PROCEDURE nome_procedimento
BEGIN
<corpo do procedimento>
END
BEGIN
END IF
END
6.3.12
Após a criação, os procedimentos são armazenados nos servidores
onde se localizam o SGBD. A chamada para execução de uns
procedimentos armazenado é feito a partir do camando CALL como
demostrado na sintax abaixo.
97
O exemplo acima definido pode ser chamado da seguinte forma:
Essa chamada fará que seja armazenado um usuário com nome Jorge
e idade 26 anos.
Os procedimentos armazenados, podem ser eliminados apartir do
comando DROP, usando a sintax abaixo definido.
DROP armezenar_funcionario
RETURNS tipo_dado
BEGIN
RETURN valor
98
END
END
99
6.3.14 Gatilhos (Triggers)
Triggers são componentes conduzidos por eventos. É um tipo especial
de procedimento armazenado, que é executado quando uma
determinada acção é realizada. Por exemplo, pode-se invocar um
gatilho quando insere-se uma determinada linha na tabela ou quando
actualizamos um determinado campo.
100
7 Exercícios
1. Sistema?
A. Conjunto de elemento trabalhando de forma colaborativa
para atingir determinado objetivo.
B. Uma coleção desorganizada de dados.
C. Uma coleção não organizada de dados ou informação.
D. Conjunto de elemento trabalhando sem objetivos comuns
2. Base de dados?
A. Um coleção de dados.
B. Uma coleção de desorganizada de dados.
C. Uma coleção organizada de dados.
D. Conjunto de elemento trabalhando por objetivo comum.
101
7. O modelo entidade relacionamento foi proposto por:
A. Cood. B. Peter Chen. C. SYBASE. D. Microsoft.
102
D. Uma linha da relação.
103
23. No modelo relacional um relacionamento é:
A. Elemento de permite a comunicação com outros objectos no
esquema do modelo relacional.
B. Representa uma determinada característica de uma
determinada entidade no Modelo Relacional.
C. Objecto composto por um conjunto de características que se
relaciona como outros objectos no esquema do Modelo
Relacional.
D. Representa cada de linha ou instância de uma tabela no
modelo relacional.
104
27. Num banco de dados relacional, restrição de
integridade referencial:
A. Define que os valores dos campos que aparecem em uma
chave estrangeira devem aparecer na chave primária da
tabela referenciada.
B. define que os valores dos campos que aparecem em uma
chave primária devem aparecer na chave primária da
tabela referenciada.
C. Define que os valores dos campos que aparecem em uma
chave estrangeira devem aparecer na chave estrangeira
da tabela referenciada.
D. Define que os valores dos campos que aparecem em uma
chave primária não devem aparecer na chave estrangeira
da tabela referenciada.
Produto
105
30. O cabeçalho da relação representa-se por?
A. (idProduto=10, nome_produto=banana,
preco_produto=10, quant_produto=120).
B. (10000, banana, 10. 120).
C. Produto(10000, banana, 10. 120).
D. Producto(idProduto, nome_produto,
preco_produto, quant_produto).
106
C. Uma da tupla da relação que não repete.
D. Uma tupla da relação.
Resposta:
107
8 Referências
108