SBD
Gerenciamento de um Sistema de
Banco de Dados
Prof. Michel Nobre Muza
[email protected]
Agradecimentos ao Prof. Marcos Antonio Viana Nascimento
Motivação
Por que é importante:
– Participar na organização e no acesso aos
bancos de dados meteorológicos.
• Você pode!
– Conhecer os fundamentos de estrutura de
banco de dados;
– Saber elaborar projetos de bancos de dados
de pequeno porte;
– Saber realizar consultas em banco de dados
utilizando a linguagem Sequency Quere
Language.
Dado e Informação
• Dado
– Fato do mundo real que está registrado e possui um significado
implícito no contexto de um domínio de aplicação.
• Informação
–
Fato útil que pode ser extraído diretamente ou indiretamente a
partir dos dados.
• Ferramentas para Processamento de Dados
– Processadores de texto, Planilhas Eletrônicas, SGBD.
Banco de Dados
• Banco de Dados
– Coleção de dados inter-relacionados, representando
informações sobre um domínio específico.
• Sistema de Banco de Dados
– Dados, Hardware, Software, Usuários.
• SGBD - Sistema Gerenciador de Banco de Dados
– Software com recursos específicos para facilitar a manipulação
das informações dos bancos de dados e o desenvolvimento de
programas aplicativos.
Gerenciamento dos dados
• Considere um simples Sistema para Controle de
Vendas
–
–
–
–
–
–
Persistência
Integridade
Concorrência
Segurança
Compartilhamento
...
SGBD - Sistema de Gerenciamento
de Banco de Dados
• Objetivos
– Fornece a interface entre os dados de baixo nível armazenados
num banco de dados e os programas aplicativos ou as
solicitações submetidas ao sistema.
– Isolar os usuários dos detalhes mais internos do banco de
dados.
– Redução no esforço de desenvolvimento.
SGBD - Sistema de Gerenciamento
de Banco de Dados
• Características Principais
– Controle de integridade: tanto de tipo de dado como de relação
entre tabelas;
– Concorrência: deve permitir a manipulação simultânea dos
dados do banco por diversos usuários;
– Controle de acesso: definição de permissões por usuário;
– Controle transacional: conjunto de operações que devem ser
executadas completamente;
– Múltiplas interfaces: deve disponibilizar interface para acesso
por diferentes tecnologias;
– Administração: Backup, Recuperação, etc;
SGBD - Sistema de Gerenciamento
de Banco de Dados
• Acesso ao BD Através do SGBD
Definição e Manipulação de
Dados
• Esquema do Banco de Dados
– É um projeto geral do banco de dados.
• Linguagem de Definição de Dados (DDL)
– Permite especificar o esquema do banco de dados, através de
um conjunto de definições de dados.
• Linguagem de Manipulação de Dados (DML)
– Permite manipular os dados, acessando-os pelo nível de
abstração mais alto do modelo de dados utilizado.
Modelo de Dados
• Definição
– Método de descrição dos dados, dos relacionamento entre os
mesmos e das restrições de consistência e integridade, de
maneira a permitir a compreensão da estrutura dos dados
armazenados e a sua manipulação.
• Tipos
–
–
–
–
Relacional
Objeto-relacional
Hierárquico
Outros
Modelo de Dados Relacional
• Tabelas ou entidades
– Conjunto não ordenado de
linhas
– Cada linha é composta por
uma série de campos
– Cada campo é identificado
por um nome
Modelo de Dados Relacional
• Chaves
– Conceito básico para identificar linhas e estabelecer relações
entre linhas de diferentes tabelas
– Chave Primária: coluna cujos valores distinguem uma linha das
demais dentro de uma tabela
– Chave Estrangeira: mecanismo que permite a implementação
de relacionamentos em um Banco de Dados Relacional
Modelo de Dados Relacional
• Restrições de integridade
– Restrições de domínio (UR entre 0 e 100 %)
– Integridade de vazio (null, not null)
– Integridade de chave ou entidades (primária, estrangeira, única)
– Integridade referencial (não registra dados met., se não registrar
a estação meteorológica)
Projeto de Banco de Dados
• Fases do projeto
– Modelagem Conceitual
• Construção de um modelo conceitual, na forma de um
diagrama entidade-relacionamento. Este modelo captura as
necessidades da organização em termos de armazenamento
de dados de forma independente de implementação.
– Modelagem Lógica
• Construção de um modelo lógico pela transformação do
modelo conceitual construído na primeira fase. O modelo
lógico define como o banco de dados será implementado em
um SGBD específico.
Modelos de Banco de Dados
 Modelo Conceitual: não contém detalhes sobre a
representação em meio físico das informações;
 Modelo Lógico: descrição de como as
informações estão organizadas internamente,
visão do usuário do SGBD; e
 Modelo Físico: descreve os dados no nível mais
baixo (interno); trata dos aspectos de
implementação do SGBD.
MODELO CONCEITUAL
Dados Meteorológicos
N
LOTADO
1
Rede de Estações
Meteorológicas
Automáticas
MODELO LÓGICO (RELACIONAL)
MODELO FÍSICA RELACIONAL
ENTIDADE
(TABELA)
PCD_MET
ENTIDADE
REDE_PCD
codigo: INT(2), PRIMARY KEY, auto_increment, NOT NULL
pcd: VARCHAR(50), Foreign KEY, NOT NULL
data: INT(8) NULL
time: INT(2) NULL
prec: DECIMAL(5,1), NULL
temp: DECIMAL(4,1), NULL
ur: DECIMAL(4,1), NULL
rad: DECIMAL(6,2), NULL
... ...
Id rede: INT(2), PRIMARY KEY, auto_increment, NOT NULL
num_pcd: VARCHAR(40), NULL
Cidade: TEXT
Estado: TEXT
Lat: DECIMAL(4,1), NULL
Lon: DECIMAL(4,1), NULL
Tipo: TEXT
Descricao: TEXT
Status:: TEXT
Modelos de Banco de Dados
• Os três modelos lógicos mais conhecido
são:
 Modelo de Rede: representado por um conjunto de
registros; sendo as relações através de ponteiros;
 Modelo Hierárquico: similar ao modelo de rede; a
diferença é gráfica, sendo os registros organizados
em árvores;
 Modelo Relacional: usa um conjunto de tabelas
para representar os dados, compostas por linhas e
colunas.
O que são Metadados?
São dados que descrevem
completamente os dados (bases) que
representam, permitindo ao usuário
decidir sobre a utilização desses dados
da melhor forma possível.
São dados que permitem informar as
pessoas sobre a existência de um
conjunto de dados ligados às suas
necessidades específicas.
(ALMEIDA, 1998)
Esquemas de Metadados
1. Dado
2. Dado trabalhado
3. Coleção de dados
4. Software-dadosusuarios
5. Descricão dos dados
6. Tabelas
7. Colunas
8. Linhas
9. Identificação
10.Ligação entre
entidades
11.Consistencias nos
dados
12.Pesquisar
A. Chave estrangeira
B. Registros
C. Metadado
D. Campos
E. Banco de dados
F. Integridade
G. Consultas
H. SGBD
I. Informacao
J. Entidades
K. Registros
L. Chave primaria
1. Dado
2. Dado trabalhado
3. Coleção de dados
4. Software-dadosusuarios
5. Descricão dos dados
6. Tabelas
7. Colunas
8. Linhas
9. Identificação
10.Ligação entre
entidades
11.Consistencias nos
dados
12.Pesquisar
Registros
Informacao
Banco de dados
SGBD
Metadado
Entidades
Campos
Registros
Chave primaria
Chave estrangeira
Integridade
Consultas
Structured Query Language
• SQL
– Linguagem padrão para Acesso a SGBD Relacionais
• Recursos
– Manipulação de dados
– Definição de bases de dados
• Formas de uso
– Interativamente
– Embutida em linguagens de programação
• Vantagens
– Utilização padronizada para diferentes SGBD
– Processamento no lado do Servidor
Structured Query Language
• Definição de Esquema de BD
– CREATE TABLE – criação de tabela
– DROP TABLE – exclusão de tabela
– ALTER TABLE – alteração de tabela
– CREATE INDEX – criação de índice
Structured Query Language
• Criação de tabela
CREATE TABLE meteoro_pcd
(
cod_pcd INT NOT NULL,
descricao VARCHAR(32),
PRIMARY KEY (cod_pcd)
);

Exclusão de tabela
DROP TABLE meteoro_pcd;
Structured Query Language
• Alteração de tabela
ALTER TABLE meteoro_pcd
DROP COLUMN descricao;
ALTER TABLE meteoro_pcd
ADD COLUMN num_pcd INT;
ALTER TABLE meteoro_pcd
MODIFY num_pcd BIGINT NOT NULL;
Structured Query Language
• Manipulação de Dados
–
–
–
–
–
INSERT – inserção de registros
UPDATE – atualização de registros
DELETE – exclusão de registros
SELECT – consulta tabela
TRANSACTION - transações
Structured Query Language
• Inserção
INSERT INTO num_pcd VALUES (1, 832298');

Alteração
UPDATE rede_pcd SET cidade = ‘Palhoça’
WHERE id_met = 1

Exclusão
DELETE FROM pcd_met
WHERE id_met = 1
Structured Query Language
• Consulta
– Básica
SELECT *
FROM pcd_met
– Condição
SELECT date, prec
FROM pcd_met
WHERE (prec >= 1.0)
and (date LIKE ‘2012%‘)
Structured Query Language
• Consulta
– Junção (INNER, LEFT, RIGHT)
SELECT p.descri Produto, i.qtde Quantidade
FROM itempedido i, produto p
WHERE (i.codpro = p.codpro) AND (i.codped = 2)
SELECT p.descri produto, i.qtde Quantidade
FROM itempedido i INNER JOIN produto p ON i.codpro = p.codpro
WHERE (i.codped = 2)
MODELO LÓGICO (RELACIONAL)
Structured Query Language
• Consulta
– Agrupamento e Agregação (COUNT, SUM, MIN, MAX,
AVG, GROUP BY...)
SELECT COUNT(cod) FROM pcd_met
GROUP BY datped
SELECT MAX(prec)
FROM pcd_met
– Ordenação (ORDER BY, DESC)
SELECT prec
FROM pcd_met
ORDER BY prec
Structured Query Language
• Consulta
– Operadores Aritméticos (+, -, *,/,...)
SELECT CONCAT('Produto: ', descri) descrição, (preco * 0.9) Preço
FROM pcd_met
Ex: 100/10 – 5, 100/(10 – 5), 100/10*5, 100+10*5
– Consultas Aninhadas
SELECT descri Descrição
FROM pcd_met (SELECT MAX(preco) preco
FROM produto) mp
WHERE p.preco = mp.preco
Structured Query Language
• Transações
– Habilitar transações
START TRANSACTION;
INSERT INTO PEDIDO VALUES (1,1,'2006-10-20',NULL);
INSERT INTO ITEMPEDIDO VALUES (1,2,1);
INSERT INTO ITEMPEDIDO VALUES (1,4,1);
COMMIT;
– Transação
SET AUTOCOMMIT=0
MySql – MySql++
•
Visão Geral
–
Poderosa interface que permite acessar as diversas
funcionalidades do MySql.
–
A utilização é similar a maioria dos banco de dados:
1)
2)
3)
4)
–
Abrir a conexão;
Criar e executar uma consulta;
Iterar sobre o conjunto de resultados;
Retornar ao passo 2.
Para o passo 2, você precisa decidir:
1)
2)
3)
Em quais entidades estão os dados requeridos, usar INNER
JOIN ou não;
É necessário usar as funções SUM ou AVG etc;
É necessário alguma condição depois do WHERE;
REFERÊNCIAS
•
•
•
•
•
ALMEIDA, Luís Fernando Barbosa. A Metodologia de
Disseminação da Informação Geográfica e os
Metadados. Tese de Doutorado. Centro de Ciências
Matemáticas e da Natureza – UFRJ. Rio de Janeiro,
1999.
DAY, M. Issues and approaches to preservation
metadata, 1998. Disponível em:
www.rlg.org/preserv/joint/day.html
DEMPSEY, L. and HEERY, R. Metada: A Current View
of Practice and Issues. Journal of Documentation, v. 54,
n.2, march 1998.
HOWE, D., 1996, Free on-line Dictionary of Computing
(FOLDOC), URL: http://wombat.doc.ic.ac.uk/
TAYLOR, Chris. An Introduction to Metadata. University
of Queensland Library. Australia, 1999. Disponível em:
www.library.uq.edu.au/iad/cteta4.html
Referências
•
•
•
Heuser, Carlos Alberto. Projeto de Banco de Dados,
4 ed., Livros Didáticos, Porto Alegre, 2001.
MySql – MySql Documentation, disponível em
www.mysql.org, acessado em 10/2006.
TangentSoft – Mysql++ Docs, disponível em
http://tangentsoft.net/mysql++, acessado em 10/2006.
Bibliografia
• SILBERSCHATZ, A; KORTH, H. Sistema de
banco de dados. São Paulo : Makron Books.
• HEUSER, C. A. Projeto de Banco de Dados.
Porto Alegre : Saggra Luzzato.
• DATE, C. J. Introdução a Sistemas de Bancos
de Dados. Rio de Janeiro : Campus.
• SCHNEIDER, M.P., 2004: INTEGRAÇÃO DE
BANCO DE DADOS Um Estudo de Caso.
Trabalho de conclusão de curso. UFL
Download

Projeto de Banco de Dados