SBD Gerenciamento de um Sistema de Banco de Dados Prof. o Michel c e Nobre ob e Muza u a [email protected] 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 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. 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. aplicativos Gerenciamento dos dados • Considere um simples Sistema para Controle de Vendas – – – – – – Persistência Integridade Concorrência Segurança Co pa t a e to 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 f 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: f deve disponibilizar interface f 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 p o esquema q 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 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 – Conjunto não ordenado de linhas – Cada linha é composta por uma série de campos – Cada campo é identificado por um nome Modelo M d l de d Dados D d Relacional R l i l • 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 BDR Modelo M d l de d Dados D d Relacional R l i l • Restrições de integridade – Restrições de domínio – Integridade de vazio – Integridade de chave – Integridade referencial Projeto de Banco de Dados • Fases do projeto – Modelagem Conceitual • Construção de um modelo conceitual 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 implementação. – Modelagem Lógica • Construção C de um modelo lógico ó pela transformação f 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. 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 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 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: M Modelo d l de d Rede: R d representado t d por um conjunto j t d 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 d que d São d dados descrevem completamente os dados (bases) que representam, t permitindo iti d ao usuário ái decidir sobre a utilização desses dados da melhor forma possí possível. el São dados que permitem informar as pessoas sobre b a existência i tê i d de um conjunto de dados ligados às suas necessidades id d específicas. ífi (ALMEIDA, 1998) Esquemas de Metadados 1. Dado 2. Dado trabalhado 3 Coleção 3. C l ã d de d dados d 4. Software-dadosusuarios 5. Descricão dos dados 6 Tabelas 6. 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 R i t Registros Chave primaria Chave estrangeira Integridade Consultas 1. Dado 2. Dado trabalhado 3 Coleção 3. C l ã d de d dados d 4. Software-dadosusuarios 5. Descricão dos dados 6 Tabelas 6. 7. Colunas 8. Linhas 9. Identificação 10.Ligação entre entidades 11.Consistencias nos dados 12.Pesquisar A. Chave estrangeira B. Registros g C. Metadado D Campos D. E. Banco de dados F Integridade F. G. Consultas H SGBD H. I. Informacao J. Entidades K. Registros L. Chave primaria Structured Query Language • SQL – Linguagem padrão para Acesso a SGBD Relacionais • Recursos R – Manipulação de dados – Definição ç de bases de dados • Formas de uso – Interativamente – Embutida E b tid em lilinguagens d de programação ã • Vantagens – Utilização ç padronizada p p 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 meteoro_pcd 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 d INT INT; ALTER TABLE meteoro_pcd 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 num pcd VALUES (1, (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 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 p i,, p produto p WHERE (i.codpro = p.codpro) AND (i.codped = 2) SELECT p.descri p descri produto produto, ii.qtde 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 g p e Agregação g g ç ((COUNT, SUM, MIN, MAX, AVG, GROUP BY...) SELECT COUNT(cod) FROM pcd_met p GROUP BY datped SELECT MAX(prec) FROM pcd_met – Ordenação (ORDER BY, DESC) SELECT prec p FROM pcd_met ORDER BY prec Structured Query Language • Consulta – Operadores p Aritméticos ((+, -, *,/,...)) SELECT CONCAT('Produto: ', descri) descrição, (preco * 0.9) Preço FROM pcd_met – 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 MySql. – A utilização é similar a maioria dos banco de dados: 1) 2) 3) 4) – Abrir Ab i a conexão; ã Criar e executar uma consulta; Iterar sobre o conjunto de resultados; R t Retornar ao passo 2 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 á i alguma l condição di ã d depois i d do WHERE WHERE; REFERÊNCIAS • • • • • ALMEIDA, Luís Fernando Barbosa. A Metodologia de Disseminação da Informação Geográfica e os Metadados Tese de Doutorado. Metadados. Doutorado Centro de Ciências Matemáticas e da Natureza – UFRJ. Rio de Janeiro, 1999. DAY M DAY, M. Issues and approaches to preservation metadata, 1998. Disponível em: www.rlg.org/preserv/joint/day.html DEMPSEY L DEMPSEY, L. and HEERY HEERY, R R. Metada: A Current View of Practice and Issues. Journal of Documentation, v. 54, n.2, march 1998. HOWE, D., 1996, Free on-line on line Dictionary of Computing (FOLDOC), URL: http://wombat.doc.ic.ac.uk/ TAYLOR, Chris. An Introduction to Metadata. University y Australia,, 1999. Disponível p em: of Queensland Library. 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, DATE C. C JJ. Introdução I t d ã a Sistemas Si t de d Bancos B de Dados. Rio de Janeiro : Campus. • SCHNEIDER, SCHNEIDER M.P., M P 2004: INTEGRAÇÃO DE BANCO DE DADOS Um Estudo de Caso. Trabalho de conclusão de curso. UFL