Escolar Documentos
Profissional Documentos
Cultura Documentos
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
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
2019 8
Necessidade de Informatização
Porquê informatizar?
Gestão – a necessidade de organizar a informaçã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).
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.
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
2019 17
SGBD – Definição
■ Um SGBD é um software desenhado para gerir e utilizar grandes colecções de
dados.
■ Aplicação ou conjunto de aplicações que serve para definir, aceder e gerir dados
existentes numa base de dados (Damas,2005).
2019 18
SGBD Objectivo – cont.
■ 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
2019 20
Exemplos de SGBD
– Access
– DB2
– Firebird
– Ingres
– Interbase
– MySQL
– Oracle
– Postgree
– SQL Server
– Sybase
2019 21
Classificação de SGBD
2019 22
Modelo Hierárquico
2019 23
Modelo de Rede
2019 24
Modelo orientado à objectos
2019 25
Modelo Relacional
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
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 é 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
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;
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.
2019 36
Chaves (Superchave) – cont.
■ 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.
■ 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)
■ 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.
2019 41
Chaves (estrangeiras) – cont.
2019 42
Regras de integridade
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
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.
T1[FK] →T2[PK]
Ano lectivo
46
2017
Exercício
2019 47