Você está na página 1de 47

Técnicas e Linguagens de Programação

Sistemas de Informação

INTRODUÇÃO ÀS BASES
DE DADOS
Glória Gonçalves
As Disciplinas de TLP e SI
Professora: Glória Gonçalves
gloria.mgoncalves@gmail.com
Tipo de Aula: Teóricas e práticas
Forma de Avaliação:
• Provas
• Projectos
• Participação nas aulas

2019 2
Objectivos
Geral
Compreender os conceitos inerentes às bases de dados e aplicá-los no
desenvolvimento de projectos tecnológicos.
No final do ano, o aluno, perante um problema de informatização deverá ser capaz de:
• Argumentar sobre o conceito de base de dados, com foco em bases de dados
relacionais;
• Obter um esquema de base de dados com foco no modelo relacional;
• Definir um modelo de dados de acordo com os métodos e teorias de normalização;
• Manipular bases de dados através da linguagem SQL;
• Desenvolver aplicativos que utilizem base de dados.

2019 3
Conteúdo programático
I. Fundamentos de Base de Dados V. Modelação de Dados
– Conceito de base de dados – Modelo ER
– História – Diagrama ER
– O SGBD VI. Normalização
II. Modelo Relacional de Base de Dados – Dependências funcionais
– Conceitos Chave – Formas normais
– Modelação de dados
III. Ferramenta de BD VII . Programabilidade
IV. Linguagens de BD – Procedimentos armazenados
– DDL – Triggers
– DML VIII. Reports
– Consultas

2019 4
Bibliografia Recomendada

• Date, C. J. Introdução a Sistemas de Bancos de Dados. Rio de Janeiro: Campus,


2000.
• Gouveia, Feliz, Fundamentos de Bases de Dados. FCA, 2014
• Damas, Luís. SQL. Lisboa, FCA 2013
• Coelho, Pedro. Java Curso Completo. Lisboa, FCA, 2016
• Silberchatz, A., Korth, H. F., Sudarshan, S. Sistema de Banco de Dados. Elsevier,
2006
• Korth, H. E.; Silberschatz, A. Fundamentos de Bases de Datos. 2da Edição
McGrawHill Interoamericana de España. 1993.
• Deitel & Deitel. Java Como Programar. Pearson Prentice. 2010 (A partir da 8ª Ed.)

2019 5
I. FUNDAMENTOS DE
BASES DE DADOS

2019 6
Introdução
■ Com os avanços tecnológicos e com a necessidade de
cada vez mais ter maior capacidade de tratamento e
processamento de dados as organizações (empresas)
viram na informática a solução para os seus
problemas.
■ Qualquer solução informática tem como elemento
fundamental a informação. O que faz com que um
repositório de dados seja o núcleo dos sistemas
informáticos.

2019 7
Dados vs Informação
■ Dados – elementos ou valores discretos que isoladamente, não têm
qualquer significado específico. (Damas,2005)
■ São conjunto de factos em sua forma primária.
■ Exemplo: Respostas de um inquérito

■ Informação – resulta da transformação (ordenação, formatação) dos


dados de modo significativo. I.e, a informação tem que ser algo útil para o
utilizador, num determinado contexto.
■ Exemplo: resultados estatísticos de um inquérito

2019 8
Necessidade de Informatização
Porquê informatizar?
Gestão – a necessidade de organizar a informação.

Compactação – não existe a necessidade de se usar arquivos em papel volumosos;

Automatização – automatização de algumas tarefas referentes ao processamento de


dados;

Velocidade – por se tratar de um sistema computorizado a recuperação e actualização dos


dados é muito mais rápida;

Menos esforço – elimina-se grande parte de trabalhos feitos à mão.

2019 9
Sistema de Gestão de Ficheiros
O que é?
– conjunto de ficheiros, directórios, descritores e estruturas de dados auxiliares geridos por um módulo
do sistema operativo (Sistema de Gestão
de Ficheiros).
– permitem estruturar o armazenamento e a recuperação de dados persistentes em um ou mais
dispositivos de memória secundária (discos ou bandas magnéticas).

■ Ficheiro – conjunto de dados persistentes, geralmente relacionados, identificado por um nome.


Um ficheiro possui ainda outro tipo de informação que facilita a sua localização e gestão:
– dimensão, datas de criação, modificação e acesso, direitos de acesso, e localização da informação
em memória secundária.
– O conjunto destes dados é usualmente designado por meta-informação.
Nota: O termo persistente significa que os dados continuam a existir mesmo após terminar a aplicação,
terminar a sessão e desligar o PC.

2019 10
Sistema de Gestão de Ficheiros

■ Redundância de Dados - Os
mesmos dados são armazenados
em vários ficheiros
■ Isolamento dos Dados - As
aplicações dificilmente acedem aos
ficheiros de outras aplicações
■ Inconsistência dos Dados - Várias
cópias diferentes dos mesmos
dados

2019 11
Base de Dados
Definição Segundo alguns autores:
Uma coleção de arquivos de dados computorizados. (Date, 2001)
Uma base de dados é:
– Uma coleção de dados relacionados, representando algum aspecto do mundo real;
– Logicamente coerente, com algum significado;
– Projetada, construída e gerada para uma aplicação específica. (Marcos André
Gonçalves, 2004)
Conjunto de dados estruturados, armazenados de maneira persistente e organizados de
acordo com determinado contexto. (Damas,2005)

2019 12
Exemplo de Base de Dados
■ Bancos – informação de clientes, contas bancárias, transações bancárias.

■ Linhas aéreas – voos, aviões, reservas de bilhetes, passageiros, pilotos.

■ Escolas – informação de alunos, professores, disciplinas, matrículas, notas.

■ Vendas – informação de clientes, produtos recebidos e faturas.

■ Recursos humanos – informação de funcionários, departamentos, salários,


impostos, mapa de férias.

2019 13
Base de Dados vs Gestão de Ficheiros
Porquê BD ao invés de sistemas de ficheiros?
Normalmente as informações num computador são armazenadas em ficheiros (arquivos) do
sistema, mas tem alguns inconvenientes:
Redundância e inconsistência – dados armazenados em vários ficheiros o que leva à
duplicação de dados e cópias dos mesmos dados podem não coincidir;
Dificuldade de acesso e localização de dados – como saber em que ficheiros está
armazenado determinado dado?
Dependência de dados – dados armazenados em vários ficheiros e com formato de dados
diferentes havendo a necessidade de usar diferentes aplicações para recuperá-los. Existe
uma dependência entre os dados e os programas;
Concorrência – dificuldade em actualizar simultaneamente os ficheiros;
Segurança – quem pode aceder a quê?

2019 14
Necessidade de uso de BD – cont.
As bases de dados surgiram para suprir todas as dificuldades encontradas com o o sistema
de gestão de ficheiros. Assim as bases de dados permitem:
Armazenamento centralizado – os dados são armazenados numa única unidade integrada
de armazenamento o que evita a redundância e inconsistência dos mesmos;
Controlo centralizado – todo o acesso aos dados passa a ser controlada por uma única
entidade, o sistema de gestão de base de dados (SGBD) o que permite actualizações e
consultas simultâneas;
Isolamento – existe uma separação entre dados e os programas de acesso aos dados;
Actualidade – informação precisa e actualizada a qualquer momento;
Desenvolvimento – disponibiliza meios de desenvolvimento dos programas mais rápidos;

2019 15
História
■ Os seres humanos começaram a armazenar informações à muito tempo atrás, através de
arquivos em papel.
■ Com o surgimento dos computadores, o armazenamento e gestão de informação passou a
ser o foco de muitas organizações.
■ 1950s – Automatização dos dados e armazenamento em fitas magnéticas.
■ 1960s – Uso de discos de memória.
■ 1960s – Charles Bachman desenhou a Integrated Data Store, que era baseado no modelo
de dados em rede, que foi padronizado e conhecido como CODASYL. A IBM desenvolveu o
IMS (Information Management System) baseado no modelo de dados hierárquico.
■ 1970s – Edgar Codd propôs o modelo de dados relacional, que veio mudar completamente a
panorâmica do mundo das bases de dados.
■ 1980s – Sistemas de base de dados relacionais tornaram-se um sucesso comercial.
Surgimento da Structured Query Language – SQL.
■ 1990s – Modelo de dados por objectos. Era da internet, acesso via Web.

2019 16
Sistema de Base de Dados

■ Um sistema de base de dados ou


sistema de informação tem quatro
componentes principais:
– Dados
– Hardware
– Software
– Utilizadores

2019 17
SGBD – Definição
■ Um SGBD é um software desenhado para gerir e utilizar grandes colecções de
dados.

■ Sistema computorizado cujo objectivo é armazenar dados e permitir que os


utilizadores recuperem e actualizem esses mesmos dados mediante “pedidos”.
(Date,2001)

■ Aplicação ou conjunto de aplicações que serve para definir, aceder e gerir dados
existentes numa base de dados (Damas,2005).

■ O SGBD é a única entidade que manipula directamente a base de dados.


■ Em inglês DBMS – Database Management System.

2019 18
SGBD Objectivo – cont.

■ Objectivo – fornecer um ambiente apropriado para aceder e armazenar os dados na


base de dados de forma fiável e eficiente, fornecendo ao utilizador uma visão
abstracta da base de dados.

■ Um SGBD tem como principal objectivo fornecer uma visão abstracta dos dados ao
utilizador. Ou seja, esconde detalhes de como e onde os dados estão armazenados.

2019 19
SGBD Características

■ O SGBD é responsável por:


■ Gestão dos dados – dados centralizados e geridos unicamente pelo SGBD;
■ Integridade – verificar se as alterações à base de dados estão de acordo com as
regras estabelecidas;
■ Segurança – assegurar que os utilizadores apenas têm acesso as informações
necessárias;
■ Backup e recuperação – capacidade de detectar falhas e repor a base de dados;
■ Gestão de concorrência – gerir acessos de múltiplos utilizadores.

2019 20
Exemplos de SGBD

– Access
– DB2
– Firebird
– Ingres
– Interbase
– MySQL
– Oracle
– Postgree
– SQL Server
– Sybase

2019 21
Classificação de SGBD

■ Quanto ao modelo de dados


– Relacional
– De rede
– Hierárquicos
– Orientado à objectos
■ Quanto aos utilizadores
– Mono-utilizador
– Multi-utilizador
■ Quanto a localização
– Centralizados
– Distribuído

2019 22
Modelo Hierárquico

■ Dados e relacionamento entre eles


são representados por registos e
ligações.
■ Os registos são organizados como
coleções arbitrárias de árvores.

2019 23
Modelo de Rede

■ Os dados são organizados como


grafos.
■ Extensão do modelo hirárquico,
com estrutura semelhante. com
diferença de que cada cada registo
“filho” pode ser ligado a mais de
um registro “pai”

2019 24
Modelo orientado à objectos

■ Os dados são organizados em


forma de objectos, tal como em
POO.
■ São considerados modelos de
dados híbridos.

2019 25
Modelo Relacional

■ Os dados são organizados em


tuplas e agrupados em relações ou
tabelas.
■ Proposto em 1969 por Edgar Codd.

2019 26
Arquitectura básica do SGBD
■ Processador de consultas processa as operações
de consulta à base de dados. Faz a tradução dos
comandos das linguagens de BD em instruções de
baixo nível;
■ Gestor de ficheiros (gerenciador de memória) gere
e aloca espaço em disco e as estruturas de dados
utilizadas para representar a informação;
■ Gestor (gerenciador) de transações garante a
consistência da base de dados a despeito de
falhas no sistema, além de garantir que
transações concorrentes serão executadas sem
conflitos;
■ Arquivo de dados retém os dados propriamente
ditos;
■ Dicionário de dados armazena os metadados
relativos à estrutura da base de dados;
■ Índices proporcionam acesso rápido aos itens de
dados que são associados a valores
determinados.

2019 27
Vantagens do uso de SGBD

– Controle de redundância dos dados


– Controle de acesso (segurança)
– Armazenamento persistente dos dados
– Existência de múltiplas interfaces para os usuários
– Representação de relacionamentos complexos entre os dados
– Manutenção de restrições de integridade
– Recuperação de falhas

2019 28
Evolução de SGBD

Fonte:
https://www.iseg.ulisboa.pt/aquila/getFile.do?fileId=8207&method=getFile
2019 29
II. MODELO RELACIONAL
DE BASE DE DADOS

2019 30
Conceitos sobre o modelo relacional de
Base de Dados
• Em base de dados modelo de dados é a forma lógica de representação dos dados.
• Existem vários modelos, sendo o Modelo Relacional é o mais utilizado.
• A estrutura básica deste modelo é a relação ou tabela.

■ Relação ou Tabela – estrutura bidimensional (colunas e linhas). O esquema da relação é


constituído por um ou mais atributos, que traduzem o tipo de dados a armazenar.

■ Relação é o termo matemático para uma tabela. Assim sendo, o modelo relacional usa
um conjunto de tabelas para representar os dados e as relações entre estes mesmos
dados.
■ Uma base de dados relacional é uma colecção de tabelas.

2019 31
Relação ou Tabela
– Estrutura fundamental do
modelo de dados relacional;
– O esquema é constituído por um
ou mais atributos (campos ou
colunas);
– Numero de atributos é fixo;
– Atributos não podem ser
ambíguos (i.e, possuem nomes
únicos);
– Cada linha chama-se tupla
(registo);
– Do cruzamento de uma coluna
com uma linha apenas resulta
num único valor.
– Exemplo: tabela de clientes

2019 32
Atributos/Campos

– Tem um tipo de dados


associado, i.e, domínio;

– Cada domínio representa uma


gama de valores que este
atributo pode receber;

– O valor de um atributo numa


tupla é atómico;

– Os atributos não podem ser


ambíguos.

2019 33
Domínio
Um domínio refere-se aos valores que os atributos (campos) podem assumir.
Um domínio é sempre atómico.
O valor Nulo é membro de todos os domínios e significa que o valor não existe ou é
desconhecido.

2019 34
Tuplas/Registos
– Representa cada linha de uma
tabela;

– As tuplas devem ser distintas;

– A ordem das tuplas não tem


qualquer significado na tabela;

– Uma tabela pode ter 0 ou mais


tuplas;

– Um conjunto de tuplas de uma


mesma tabela contém o mesmo
número de campos, pela mesma
ordem e com a mesma estrutura.

2019 35
Chaves (Superchave)

■ É necessário ter uma maneira de especificar como as tuplas dentro de uma tabela são
distinguidas.

■ Os valores dos atributos de uma tupla precisam ser tais que se possa identificar
unicamente uma tupla.

■ Superchave – é o conjunto de um ou mais atributos, que tomados colectivamente,


permitem identificar unicamente uma tupla numa tabela.

■ Nota: No limite todos os campos de uma tabela constituem uma superchave.

2019 36
Chaves (Superchave) – cont.

■ A combinação de todos os atributos formam uma superchave


{ID, Nome, Morada, Tel}
■ A combinação ID e nome do cliente também é uma superchave da tabela
{ID, Nome}
■ ID do cliente é uma superchave da tabela cliente
{ID}

■ Mas apenas o nome não é superchave, pois vários clientes podem ter o mesmo nome.

2019 37
Chaves (Candidata)
■ Chave candidata ou mínima – subconjunto dos atributos de uma superchave
mínimas. i.e, superchaves que não podem ser reduzidas sem perder a qualidade de
superchave.
■ Exemplo: Ainda tendo em conta uma tabela cliente, o atributo ID do cliente, a
combinação de nome de cliente e morada são exemplos de chaves candidatas,
partindo do princípio de que a combinação nome e morada será única e suficiente
para distinguir as tuplas.
■ Chaves candidatas:
■ {ID}
■ {Nome, Morada}

2019 38
Chaves (Primária)
■ Chave primária (Primary Key PK) – chave selecionada dentre todas as chaves
candidatas para identificar, efectivamente, cada tupla.
■ Exemplo: ID do cliente na tabela cliente.
■ Chave Primária: {ID}

2019 39
Chaves (Primária) – cont.
As chaves primárias podem ser simples ou compostas. I.e, podem ser constituída por um
ou mais atributos.

■ Uma chave primária tem que respeitar as seguintes regras:


– Unicidade
– Não nula

■ Nota: A chave primária é escolhida pela pessoa responsável por projectar a base de
dados. E deve-se ter em conta que os valores de uma chave primária nunca ou muito
raramente são modificados, ao contrário de outros atributos da relação.

2019 40
Chaves (estrangeiras)

■ Chave estrangeira ou externa (Foreign Key FK) – atributo ou conjuntos de atributos de


uma tabela que são chaves primárias noutra tabela.

■ Exemplo: Seja t1 um esquema de tabela, t1 pode conter dentro dos seus atributos a
chave primária de um esquema t2.
■ O atributo em t1 é chamado de chave estrangeira, referenciando t2.
■ A tabela de t1 é chamada de tabela referenciadora da dependência de chave
estrangeira, e t2 é chamada de tabela referenciada.

■ Nota: As chaves estrangeiras permitem definir o relacionamento entre tabelas.

2019 41
Chaves (estrangeiras) – cont.

2019 42
Regras de integridade

■ Permitem especificar a semântica dos dados e garantem que os dados estão de


acordo com as regras especificadas no negócio. (Damas, 2005)
■ As regras de integridade protegem a base de dados contra danos acidentais.
(Silberschatz et al., 2006)
■ Tipos de regras de integridade:
– Domínio;
– Chave primária;
– Referencial;

Ano lectivo
43
2017
Integridade de Domínio
Asseguram que os valores dos atributos satisfaçam uma determinada condição.
- Especificam que o valor de um atributo A de uma tabela deve ser um valor atômico do
domínio dom(A).
Regra valores nulos
Especifica se a um atributo é permitido ter valores nulos (null). Quando o valor obrigatório
atribuição a NOT NULL.
Regra unicidade
Indica que os valores associados a determinado atributo não se podem repetir, i.e, devem
ser únicos na tabela.
Regra valores por defeito
Especifica um valor padrão para o atributo
Nota: O valor nulo é membro de todos os domínios, sendo valor padrão para todos os
domínios.

Ano lectivo
44
2017
Integridade de Chave Primária

■ Uma chave primária identifica de forma única cada tupla.

■ Nenhum componente de uma chave primária pode ser nulo.

■ A regra de integridade de chave primária é equivalente as regras de Unicidade +


Valor não nulo.

Ano lectivo
45
2017
Integridade Referencial

■ Usada para garantir que um valor aparece numa tabela para um determinado conjunto
de atributos também apareça em outro conjunto de atributos em outra tabela. I.e,
permite validar chaves estrangeiras.
■ Mantêm a consistencia entre tuplas de duas tabelas.

Resultam das relações entre entidades.

A regra de integridade referencial pode ser expressa pela notação:

T1[FK] →T2[PK]

Onde: PK é a chave primária de RT e FK é a chave estrangeira de T1

Ano lectivo
46
2017
Exercício

■ Identifique as possíveis chaves primárias, candidatas e estrangeiras, em cada uma


das entidades abaixo:

2019 47

Você também pode gostar