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