Você está na página 1de 18

Informática 2018

Introdução às bases de dados e aos sistemas de gestão de bases de dados

COMPONENTES DE UM SISTEMA DE INFORMAÇÃO


 Programas de aplicação
 S.G.B.D.
 Base de Dados

A informação constitui o conteúdo da base de dados. Para que possa ser armazenada e gerida, essa
informação necessita de uma estrutura. Essa estrutura é criada e mantida pelo software do sistema
de gestão de base de dados (SGBD).

O banco de dados é parte integrante dos chamados Sistemas de Informação, onde os dados são
colectados, processados, organizados e armazenados. A parte de colecta, tratamento e
processamento dos dados é feito por programas específicos como: ERP, CRM, Web service, sites,
etc. Porém, o armazenamento e organização desses dados são feitos em um banco de dados,
podendo ser ele Oracle, SQL Servidor, MySQL ou outro.

Atualmente os bancos de dados são chamados de relacionais, pois suas estruturas são formadas
por tabelas e relacionamento entre as tabelas. Tanto um banco robusto como o Oracle ou um
desktop como o Access adota este mesmo padrão, tornando assim fácil e possível a integração de
dados entre bancos

1
Informática 2018

Um Sistema de Banco de Dados consiste em uma colecção de dados inter-relacionados e uma


colecção de programas para prover o acesso a esses dados. O objectivo principal de um sistema de
banco de dados é prover um ambiente que seja adequado e eficiente para uso na recuperação e
armazenamento de informações.

Finalidade geral: Armazenar informações e permitir que os usuários busquem e actualizem estas
informações de forma eficiente e rápida quando necessário
Os usuários podem:
– Inserir,
– Buscar,
– Actualizar e
– Remover dados.

Vantagens
Organização dos dados: a estrutura dos dados é muito complicada para ser armazenada em tabelas
• Volume de dados: o volume dos dados é muito grande para ser armazenado em uma tabela
• Velocidade/Eficiência: Os dados são obtidos e actualizados rapidamente no BD
• Concorrência: diferentes aplicações/usuários podem compartilhar os mesmos dados
• Redundância controlada: dados compartilhados não precisam ser replicados
• Aplicabilidade: Diminuição no tempo de desenvolvimento da aplicação

2
Informática 2018

Os sistemas de gestão de base de dados são programas que permitem criar e manipular bases
de dados, em que dados estão estruturados com independência relativamente aos programas
de aplicação que os manipulam.

Características do SGBD

Controle de Concorrência – Limita alterações e leituras simultâneas do mesmo dado por


diferentes usuários;
Cópia de segurança – mecanismo de reconstrução que permite que a base de dados retorne ao
estado consistente;
Segurança – pode estabelecer restrições ao acesso de cada item de informação;
Integridade – manutenção da consistência da base de dados através da validação de restrições;
Atomicidade – ou a transacção ocorre ou não.

Tem 3 níveis de arquitectura de qualquer SGBD:

· Nível físico:

Os ficheiros são guardados em suportes de armazenamento informático e, a partir


daí são manipulados pelo SGBD em execução no computador;

3
Informática 2018

· Nível Conceptual

Organização da informação em tabelas e relacionamentos;

· Nível de visualização

Corresponde à forma como os dados são apresentados aos utilizadores finais, através de interfaces
gráficos proporcionados pelo SGBD.

Desvantagens de um sistema de gestão base de dados

As desvantagens dos SGBD e das Bases de Dados são as seguintes:

 O software deste sistema é complexo e os conceitos utilizados são, muitas vezes,


novos para os utilizadores. Assim, necessita de pessoal especializado em SI e , por
vezes, é necessária a redução dos utilizadores do SGBD;

O software causa um overhead (degradação de recursos) adicional, pois é mais lento na execução
e necessita de mais espaço em disco.

Operações típicas de trabalho com Base de dados

· Operações de definição e alteração da estrutura de uma base de dados

· Operações de manipulação de dados, sem alteração da estrutura da ase de dados

· Operações de controlo dos dados

O que é uma base de dados?

Uma base de dados é um simples repositório de informação relacionado com determinado


assunto ou finalidade, ou seja, é uma colecção de dados ou itens informação estruturados de
determinada maneira que permite a sua consulta, actualização e outros tipos de operação
processados por meios informáticos.

4
Informática 2018

Uma base de dados é uma colecção de informação relacionada


entre si, à volta de um determinado tema ou domínio

Modelos de Base de dados

Os modelos que são utilizados para a criação de bases de dados podem ser classificados em
dois agrupamentos prin.cipais:

 Modelos baseados em objectos


 Modelos baseados em registos

Os modelos baseados em objectos têm o comum facto de procurarem representar a realidade


através de objectos – este são aqui entendidos e podem ser transpostas para o campo da
programação, contendo informação relevante sobre as entidades reais que representam

Os modelos baseados em registos têm o comum facto de procurarem representar a realidade


através de registos. Estes registos equivalem aos registos utilizado em programação contendo
informação estruturada com formato de campos.

Dentro deste agrupamento de modelos de base de dados incluem-se , tradicionalmente, 3


modelos:

۵ Modelo hierárquico
۵ Modelo de rede
۵ Modelo relacional

Vantagens de uma base de dados

- Pouco espaço físico ocupado


- Eliminação da redundância de utilização
- Facilidade e rapidez de manipulação da informação armazenada
- Menor deterioração do suporte utilizado (micro-ficha, magnético, óptico)
- Mais verdade na combinação dos dados, mais informação

5
Informática 2018

Existem no mercado muitas ferramentas para informatizar uma base de dados:

Microsoft Access
FileMaker
Microsoft SQL
Oracle
Informix
DB2
Etc.

Estes são alguns dos produtos que permitem criar, utilizar e manter bases de dados.

Para construir uma base de dados temos que reflectir sobre alguns aspectos:

 Qual o tema que escolher para a nossa B.D ??

- A nossa agenda de moradas


- As nossas músicas, os desafios
- Os golos do nosso clube
- Os tempos e classificações do campeonato de F1
- As nossas receitas, etc.
 Que perguntas podemos fazer à nossa B.D ??

- Quantos.., quais…, que…, desde quando, etc…


 Onde coleccionar os dados para introduzir na B.D ?

- Na Internet, nos arquivos, em revistas, etc…

Começamos por definir as tabelas, isto é… as gavetas dos dados…

Arrumamos melhor os dados se os distribuirmos segundo um critério por diversas gavetas…

6
Informática 2018

Até certo ponto podemos traduzir para as tabelas quase todo o tipo de entidades, situações,
acontecimentos, etc… Para tal basta que possamos definir algumas das características dessas
entidades como CAMPOS.

Os CAMPOS passam a ser as colunas da tabela e as linhas a ser REGISTOS.

Noção de tabela

 Parte integrante de uma B.D., é utilizada para guardar informação relativa a um assunto
específico, como, por exemplo, alunos, livros, autores, países, códigos de postal, etc…

A informação guardada numa tabela deve ser coerente com os critérios utilizados para a
sua criação – conter apenas os dados que digam respeito ao assunto, a que se dá o
nome de entidade.

Noção de campo

 Elemento constituinte de uma tabela.

É utilizado para especificar os diversos tipos de dados ou categorias, em dividimos a


informação que pretendemos utilizar.

Noção de registo

 Conjunto de campos relacionados

 Cada linha de uma tabela corresponde a um registo

Noção de relação

 Associação estabelecida entre campos comuns (colunas) de duas tabelas, permitindo que
a consciência da informação seja garantida

7
Informática 2018

o relacionamento entre os campos comuns das tabelas permite garantir que a consciência
da informação não seja colocada em causa e também associar os dados de duas ou
mais tabelas para a visualização, edição ou impressão da informação.

Noção de associação

 Representa a forma com duas ou mais entidades se relacionam entre si

 Existem três tipos de associações:

- Unárias – relação entre uma entidade e ela própria

- Binárias – existência de um qualquer tipo de relação entre duas entidades

- Complexas – possibilidade de estabelecer relações entre mais do que duas


entidades.

Noção de chave

A chave de uma tabela é constituída por um ou mais campos que possam ser utilizados como
identificadores de cada registo.

Os campos – chave devem permitir identificar o registo de forma unívoca.

O campo ou conjunto de campos seleccionados para chave de uma tabela não pode conter
informação repetida.

O TIPO DE CAMPO…

…deve ser escolhido de acordo com as características dos dados que queremos que ele guarde.

A escolha acertada do tipo de campo facilita a sua utilização superior:

1. Se quisermos comparar datas, convém que o campo esteja definido como data/hora,

2. Se quisermos fazer cálculos, temos que o definir como numérico. Existir 2 registos com
o mesmo conteúdo para a chave primária.

3. Não Nulo: Não podem existir nenhum atributo chave primária que contenha campo nulo.

8
Informática 2018

Modelo relacional

 O que é banco de dados relacional?


O modelo de dados onde as estruturas tem a forma de tabelas, compostas por linhas e
colunas. Essas tabelas podem ser relacionadas entre si. É o modelo mais usado hoje.

Modelo Relacional
• Os dados são percebidos como tabelas (relações);
• Atributos (campos da tabela);
• Chaves:
– Primárias: atributo que identifica a entidade.
Deve ser único para cada registo;
– Estrangeiras: atributo para referenciar entidades em outras tabelas.

Vantagens
- Pouco espaço físico ocupado
- Eliminação da redundância de utilização
- Facilidade e rapidez de manipulação da informação armazenada
- Menor deterioração do suporte utilizado (micro-ficha, magnético, óptico)
- Mais verdade na combinação dos dados, mais informação

Características de uma base de dados de modelo relacional

• Organização dos dados


• Conceitos do modelo
• Atributo, relação, chave,
• Integridade
• Restrições básicas para dados e relacionamentos
• Manipulação
• Linguagens formais e SQL

9
Informática 2018

CHAVES PRIMÁRIAS E EXTERNAS (SECUNDARIA)


Para introduzir as bases do modelo relacional é muito importante o conceito de chave: um atributo
ou conjunto de atributos designa-se por chave quando nos permite identificar de modo único ou
unívoco cada entidade concreta ou registo da tabela.

CONCEITO DE CHAVES
Uma chave é um atributo ou um conjunto de atributos que permite identificar de modo unívoco os
registos (entidades ou ocorrências) de uma tabela. Todas as chaves possíveis de uma tabela ou
entidade – simples ou composta – são designadas chaves candidatas. Entre as chaves candidatas
existentes numa tabela, uma delas será a mais indicada ou escolhida para desempenhar o papel de
chave – essa será designada por chave primária. Uma chave primária é, por conseguinte, um
atributo ou conjunto de atributos que assume a função de identificar de modo unívoco as entidades
ou registos de uma tabela.

UMA CHAVE PRIMÁRIA DEVE RESPEITAR AS SEGUINTES CARACTERÍSTICAS


OU REGRAS:
Ser unívoca – o ou os atributos que desempenham o papel de chave primária, por definição, tem
de ter um valor único para cada entidade concreta;
Não nula – nenhum dos atributos que formam uma chave primária poderá conter um valor nulo
em nenhum registo;
Não redundante – no caso de uma chave primária ser composta, não deve ser incluídos mais
atributos do que os mínimos necessários para identificar os registos de modo unívoco; um atributo
de uma chave composta não poderá ser retirado dessa chave, pois se o for, o atributo ou os atributos
restantes deixam de ser unívocos.

RELACIONAMENTOS E CHAVES SECUNDARIAS


A característica essencial do modelo relacional é que permite estabelecer relacionamentos entre
entidades ou tabelas de entidades. Esses relacionamentos são estabelecidos precisamente através
dos atributos ou campos que desempenham o papel de chaves primárias nas respectivas tabelas. A
tabela de relacionamento deverá incluir, entre os seus campos, as chaves das tabelas das entidades
que entram no relacionamento. Quando a chave de uma tabela é incluída como campo numa outra

10
Informática 2018

tabela, então, do ponto de vista desta última tabela, disse que se trata de chave externa
(secundaria). Portanto, uma chave externa (secundaria) é um atributo que é chave primária de
uma tabela e que vai aparecer como atributo de uma outra tabela. É fundamentalmente através da
inclusão de atributos que são chaves primárias (nas suas tabelas de origem) em outras tabelas (onde
são chaves secundarias) que são estabelecidos os relacionamentos entre as diferentes entidades de
uma base de dados relacional.

Com o advento do Modelo de Entidades e Relacionamentos foi causada uma confusão entre os
termos relação e relacionamento

O Modelo Relacional, quando descrito de forma matemática, é definido como um modelo formado
por relações (no sentido matemático) entre os domínios. Cada tupla é um elemento do conjunto
relação.

Ou seja, a relação é a tabela.

Um relacionamento do Modelo de Entidades e Relacionamentos é uma associação entre entidades


distintas. Não há relação directa entre o nome relacionamento e o nome relação.

Porém, um relacionamento, do Modelo de Entidades e Relacionamentos é traduzido para a criação


de atributos com chaves externas do Modelo Relacional. Esta tradução é feita ligando-se um campo
de uma tabela X com um campo de uma tabela Y, por meio da inclusão do campo chave da tabela
Y como um campo (conhecido como chave estrangeira) da tabela X.

Por meio das chaves estrangeiras, é possível implementar restrições nos SGBDR.

Existem alguns tipos de relacionamentos possíveis no MER:

 Um para um (1 para 1) - indica que as tabelas têm relação unívoca entre si. Você escolhe
qual tabela vai receber a chave estrangeira;
 Um para muitos (1 para N) - a chave primária da tabela que tem o lado 1 vai para a tabela
do lado N. No lado N ela é chamada de chave estrangeira;
 Muitos para muitos (N para N) - quando tabelas têm entre si relação n.n, é necessário criar
uma nova tabela com as chaves primárias das tabelas envolvidas, ficando assim uma chave

11
Informática 2018

composta, ou seja, formada por diversos campos-chave de outras tabelas. A relação então
se reduz para uma relação 1.n, sendo que o lado n ficará com a nova tabela criada.

Os relacionamentos 1 para 1 e 1 para N podem ser mapeados directamente em chaves estrangeiras


nas tabelas originais. Já o relacionamento N para N exige o uso de uma tabela auxiliar.

Formas normais e Normalizaçã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
diferentes assuntos numa mesma tabela.

Ao projetar um banco de dados, se temos um modelo de entidades e relacionamentos e a partir


dele construirmos o modelo relacional seguindo as regras de transformação corretamente, o
modelo relacional resultante estará, provavelmente, normalizado. Mas, nem sempre os modelos
que nos deparamos são implementados dessa forma e, quando isso acontece, o suporte ao banco
de dados é dificultado.

Em ambos os casos, é necessário aplicar as técnicas de normalização, ou para normalizar


(segundo caso citado), ou apenas para validar o esquema criado (primeiro caso citado). Aplicando
as regras descritas a seguir, é possível garantir um banco de dados mais íntegro, sem redundâncias
e inconsistências.

Existem 3 formas normais mais conhecidas:

 1FN - 1ª Forma Normal:todos os atributos de uma tabela devem ser atômicos, ou seja, a
tabela não deve conter grupos repetidos e nem atributos com mais de um valor. Para deixar
nesta forma normal, é preciso identificar a chave primária da tabela, identificar a(s)
coluna(s) que tem(êm) dados repetidos e removê-la(s), criar uma nova tabela com a chave
primária para armazenar o dado repetido e, por fim, criar uma relação entre a tabela
principal e a tabela secundária. Por exemplo, considere a tabela Pessoas a seguir.

PESSOAS = {ID+ NOME + ENDERECO + TELEFONES}

12
Informática 2018

Ela contém a chave primária ID e o atributo TELEFONES é um atributo multivalorado e,


portanto, a tabela não está na 1FN. Para deixá-la na 1FN, vamos criar uma nova tabela
chamada TELEFONES que conterá PESSOA_ID como chave estrangeira de PESSOAS e
TELEFONE como o valor multivalorado que será armazenado.

PESSOAS = { ID + NOME + ENDERECO }

TELEFONES = {PESSOA_ID + TELEFONE}

 2FN - 2ª Forma Normal:antes de mais nada, para estar na 2FN é preciso 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 identificar as colunas que não são funcionalmente dependentes da chave
primária da tabela e, em seguida, remover essa coluna da tabela principal e criar uma nova
tabela com esses dados. Por exemplo, considere a tabela ALUNOS_CURSOS a seguir.

ALUNOS_CURSOS = { ID_ALUNO + ID_CURSO + NOTA + DESCRICAO_CURSO


}

Nessa tabela, o atributo DESCRICAO_CURSO depende apenas da chave primária


ID_CURSO. Dessa forma, a tabela não está na 2FN. Para tanto, 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.

ALUNOS_CURSOS = {ID_ALUNO + ID_CURSO + NOTA}

CURSOS = {ID_CURSO + DESCRICAO}

 3FN - 3ª Forma Normal:para estar na 3FN, é preciso estar na 2FN. Além disso, os
atributos não chave de uma tabela devem ser mutuamente independentes e dependentes
unicamente e exclusivamente da chave primária (um atributo B é funcionalmente
dependente de A se, e somente se, para cada valor de A só existe um valor de B). Para
atingir essa forma normal, é preciso identificar as colunas que são funcionalmente

13
Informática 2018

dependentes das outras colunas não chave e extraí-las para outra tabela. Considere, como
exemplo, a tabela FUNCIONARIOS a seguir.

FUNCIONARIOS = { ID + NOME + ID_CARGO + DESCRICAO_CARGO }

O atributo DESCRICAO_CARGO depende exclusivamente de ID_CARGO (atributo não


chave) e, portanto, deve-se criar uma nova tabela com esses atributos. Dessa forma,
ficamos com as seguintes tabelas:

FUNCIONARIOS = { ID + NOME + ID_CARGO }

CARGOS = { ID_CARGO + DESCRICAO }

Exemplo 2

1ª Forma Normal

Uma relação está na 1ª Forma Normal se e só se cada linha contém exactamente um valor para
cada atributo Exemplo (dados referentes a uma encomenda de livros - estrutura não normalizada):

Pedido_Livro ( Nome-cliente, ISBN, Data-pedido, Título, Autor(es), Quantidade, Preço, Valor-


total)

Na 1ª Forma Normal:

Pedido_Livro ( Nome-cliente, ISBN, Data-pedido, Título, Quantidade, Preço, Valor-total)

Autoria (ISBN, Autor)

2ª Forma Normal

Uma relação está na 2ª Forma Normal se está na primeira e se todos os atributos descritores
dependerem da totalidade das chaves candidatas.

Exemplo (na 1ª FN):

14
Informática 2018

Pedido_Livro ( Nome-cliente, ISBN, Data-pedido, Título, Quantidade, Preço, Valor-total) Autoria


(ISBN, Autor)

Aplicando a 2ª Forma Normal:

Pedido_Livro ( Nome-cliente, ISBN, Data-pedido, Quantidade, Valor-total)

Autoria (ISBN, Autor)

Livro (ISBN, Título, Preço)

3ª Forma Normal

Uma relação está na 3ª Forma Normal se está na 2ª Forma Normal e se não existirem atributos
descritores a dependerem funcionalmente de outros atributos descritores (que não pertencem a
nenhuma chave candidata).

Exemplo (na 2ª FN):

Pedido_Livro (Nome-cliente, ISBN, Data-pedido, Quantidade, Valor-total)

Autoria (ISBN, Autor)

Livro (ISBN, Título, Preço)

Este esquema relacional está na 3ª Forma Normal porque, em nenhuma das relações existem
dependências funcionais transitivas e está na FNBC porque cada relação tem uma única chave
candidata

Exemplo 3

1ª Forma Normal - 1FN

Segundo a 1FN, todas as ocorrências de um registro devem conter os mesmos números de campos.
A 1FN não admite repetições, ou campos que contém mais de um valor. Observe o exemplo:

15
Informática 2018

Neste caso, para realizar a completa normalização, seguindo a 1FN, teríamos as seguintes tabelas:

Neste exemplo, os telefones ficaram separados, por haver a possibilidade de um dos registros
possuír mais de um telefone, o que, se cadastrado na mesma tabela, ocasionaria a
“desnormalização” dos dados. Quanto ao CEP, encontra-se em um campo separado do Endereço,
bem como o Bairro e os registros estão, assim, de forma aninhada.

2ª Forma Normal - 2FN

Podemos dizer que uma tabela está na 2FN se ela estiver na 1FN e todos os atributos não
chave forem totalmente dependentes da chave primária (dependente de toda a chave e não apenas
de parte dela – em caso de chaves compostas).

Entenda: se o nome do cliente já existe na tabela Clientes, então, ele não é necessário na
tabela Atendimentos. É disso que a 2FN trata, dessas anomalias, redundâncias no banco de dados.

Veja um exemplo, com um cenário de vendas de produtos:

16
Informática 2018

De fato, isto está errado, uma vez, que os produtos são cadastrados em outra tabela (a tabela de
produtos) onde, no ato do cadastro, já informamos seu nome. O correto seria assim:

Observe que só é necessário fazer referência a chave primária (ao código) do produto, e nada mais!

3ª Forma Normal - 3FN

Sabemos que uma tabela está na 3FN se ela estiver na 2FN e se nenhuma coluna não-
chave depender de outra coluna não-chave.
Basicamente, o objetivo é eliminar os campos que podem ser obtidos pela equação (cálculo
matemático ou lógico) de outros campos da mesma tabela.
A chave primária da nova entidade será o atributo do qual os atributos removidos são
funcionalmente dependentes.

Vamos considerar a seguinte tabela:

17
Informática 2018

Observe que o valor da coluna “Subtotal” pode (e deve), tranquilamente ser obtido através do
cálculo do valor da coluna “Quant” multiplicado pelo valor da coluna “Valor_unit”. Isso eliminaria
da nossa tabela (da tabela acima) a coluna “Subtotal”, deixando-a assim:

Exercícios sobre normalização


1) Passe para a 1FN, 2FN e 3FN

18

Você também pode gostar