TSI33A Banco de Dados 1 Semana 01 DBMS Database Management System

Tamanho: px
Começar a partir da página:

Download "TSI33A Banco de Dados 1 Semana 01 DBMS Database Management System"

Transcrição

1 Objetivo TSI33A Banco de Dados 1 Semana 01 DBMS Database Management System Compreender as estruturas de arquivos de dados Compreender a importância dos sistemas de banco de dados Leitura Complementar CSV: JSON: XML Document Type: Avaliação Exatidão: o programa desenvolvido está de acordo com os requisitos? Estilo: a estrutura do arquivo e o programa seguem as boas práticas? Começando Por muitos anos os sistemas de arquivos foram utilizados massivamente no desenvolvimente de programas. Os programas manipulavam seus dados em estruturas de arquivo próprias, cuja especificação era definida pela linguagem de programação adotada e pelos desenvolvedores do programa. Se os arquivos de dados fossem compartilhados entre dois ou mais programas, estes deveriam conhecer e manipular a mesma estrutura de arquivo, bem como implementar mecanismos de acesso concorrente. Considerando a figura acima, é possível ilustrar o acesso concorrente pelos sistemas A e B aos arquivos de dados (texto ou binário) A, B e C. Quando um programa precisa alterar a estrutura de um arquivo os demais programas devem ser readequados, caso contrário deixam de manipular este arquivo. Assim, um programa pode manipular duas ou mais estruturas diferentes de arquivo de dados, tornando-se complexo e de difícil manutenção. Portanto, a produtividade no desenvolvimento de programas com sistemas de arquivos é baixa não que hoje, com os sistemas de banco de dados, a produtividade é alta, mas evoluiu muito! :-). É implícito nesse modelo de armazenamento as dificuldades de integração e interoperabilidade dos arquivos. Também é possível deduzir alguns dos possíveis problemas na implementação das regras de negócio nas aplicações, tais como, redundância, diferença e/ou falta de regras de negócio em uma ou outra aplicação. Pg. 1/4

2 Ainda existem diversas aplicações que fazem uso de sistemas de arquivos. Algumas são aplicações maduras, tornando-se inviável a refatoração para sistemas de banco de dados. Outras são aplicações simples em que a inclusão de mais uma camada de aplicação (sistema de banco de dados) as tornariam menos eficientes; ou até mesmo inviáveis (e.g. alguns tipos de sistemas embarcados). Com o advento dos sistemas de banco de dados o modelo de arquivos não deixou de existir. É comum as aplicações utilizarem sistemas de arquivos para gerar arquivos de log ou estado das aplicações. Definindo uma estrutura de arquivo com o formato CSV Comma-Separated Values (CSV) é uma implementação de arquivo de texto cujos registros são separados pelo delimitador quebra de linha \n e os valores de cada registro pelo delimitador vírgula,. O formato CSV também usa aspas duplas "" para definir valores do tipo conjunto de caracteres. Considere o ficheiro de dados abaixo, denominado Regions. Cada registro é composto por um identificador da região e um nome da região. O identificador é do tipo de dados inteiro e o nome da região um conjunto de caracteres. Regions Id Name Europe 2 Americas 3 Asia 4 Middle East and Africa Uma possível estrutura de arquivo CSV para representar os registros do ficheiro Regions é: <Nome do Ficheiro>.csv Coluna A,Coluna B,...,Coluna N [valor_a1 ou "valor_a1"],[valor_b1 ou "valor_b1"],...,[valor_n1 ou "valor_n1"] [valor_a2 ou "valor_a2"],[valor_b2 ou "valor_b2"],...,[valor_n2 ou "valor_n2"]... [valor_am ou "valor_am"],[valor_bm ou "valor_bm"],...,[valor_nm ou "valor_nm"] A estrutura de arquivo acima é simples e não possui mecanismos de integridade (e.g. unicidade de registro, obrigatoriedade de valor, etc.) e distinção entre os diferentes tipos de valores numéricos (e.g. inteiro, real, data, etc.). Ou as colunas são do tipo numeral ou do tipo conjunto de caracteres (neste caso o ou é exclusivo). A primeira linha do arquivo refere-se ao cabeçalho das colunas e as demais aos registros. Cada linha armazena somente um registro. O cabeçalho das colunas e os registros são separados por vírgula,. Considerando a descrição acima, os dados do ficheiro Regions são armazenados da seguinte forma: Regions.csv "Id","Name" 1,"Europe" 2,"Americas" 3,"Asia" 4,"Middle East and Africa" Pg. 2/4

3 Manipulando o arquivo Regions.csv Na pasta do usuário aluno /home/aluno (ou c:/users/aluno/) crie uma pasta denominada TSI33A. Em seguida salve nesta pasta o arquivo CSV Regions.csv. Abra o arquivo Regions.csv a partir da aplicação LibreOffice (GNU-Linux) ou Microsoft Excel (MS- Windows). Caso a aplicação solicite a seleção do padrão do conjunto de caracteres ( character set), selecione Unicode(UTF-8). Na linha 6 da planilha insira o conjunto de valores (5,"South America"). Salve o arquivo no mesmo formato. Por se tratar de um arquivo de texto é possíel manipulá-lo com qualquer editor de texto. Faça um teste com um editor de texto simples (Sublime Text ou Notepad) O processo realizado anteriormente não funcionaria se o arquivo fosse do tipo binário. Apresentando a aplicação CSVApp para manipular o arquivo Regions.csv A aplicação CSVApp foi desenvolvida na linguagem de programação Java e visa incluir, alterar e excluir registros no arquivo Regions.csv. Na pasta /home/aluno/tsi33a (ou c:/users/aluno/tsi33a), criada na seção anterior, salve o arquivo CSVApp.jar. No terminal do GNU-Linux (CTRL+ALT+T) ou prompt de comando do MS-Windows (Iniciar cmd <ENTER> Iniciar cmd <ENTER>) execute os seguintes comandos (ou duplo clique sobre o arquivo.jar): $cd TSI33A $java -jar CSVApp.jar Após a aplicação CSVApp iniciar explore suas funcionalidades. Tente incluir o registro (5,"South America"). A aplicação identificou a duplicidade? Neste caso, as regras de integridade dos dados devem ser implementadas na própria aplicação, sendo uma atividade onerosa aos programadores :-(. Conhecendo outros formatos de arquivos de dados Javascript Object Notation (JSON) e Extensible Markup Language (XML) são formatos de texto simples, flexíveis e interoperáveis, utilizados para troca de dados entre aplicações - principalmente Aplicações Web. Esses formatos, como qualquer outro, são definidos através de um conjunto simples de regras sintáticas (mais completas se comparado ao formato CSV :-) ). JSON e XML são formatos equivalentes, por isso, tudo que pode ser representado em JSON também pode ser representado em XML. Então, por que optar entre um ou outro formato de dados? Em relação aos formatos JSON e XML uma das diferenças está no tamanho da representação dos dados. O formato JSON é menor, pois não possui tags para representação dos dados. Ambos formatos são amplamente utilizados (e.g. o Facebook utiliza o formato JSON e a NF-e o formato XML). Pg. 3/4

4 Não é o objetivo deste material avaliar os dois formatos, portanto, tenha uma excelente leitura complementar :-). Os próximos dois quadros mostram, respectivamente, a representação nos formatos XML e JSON dos registros do ficheiro Regions. XML <?xml version="1.0"?> <regions> <region id=1> <region_name>europe</region_name> </region> <region id=2> <region_name>americas</region_name> </region> <region id=3> <region_name>asia</region_name> </region> <region id=4> <region_name>middle East and Africa</region_name> </region> </regions> JSON { } "regions": {"region": [{"region_id":1,"region_name":"europe"}, {"region_id":2,"region_name":"americas"}, {"region_id":3,"region_name":"asia"}, {"region_id":4,"region_name":"middle East and Africa"}] } Muitos frameworks de desenvolvimento de aplicações Web utilizam os padrões JSON e XML para popular componentes (grids, combobox, autocomplete, text box, etc.), configurar conexões, etc - as vezes são extensões desses padrões. Exercitando 1. Após explorar as funcionalidades da aplicação CSVApp, desenvolva sua própria aplicação seguindo os seguintes requisitos: A aplicação pode ser desenvolvida em qualquer linguagem de programação ( de programação e não de script). A aplicação deve manipular (incluir, alterar e excluir) registros do ficheiro JSON ou CSV (desafio o JSON :-) ). Regions no formato A aplicação deve permitir que somente uma execução por vez da aplicação possa manipular o arquivo (controle primitido de acesso concorrente). Pg. 4/4

5 Objetivo TSI33A Banco de Dados 1 Semana 02 PostgreSQL Introdução aos utilitários básicos do PostgreSQL e a ferramenta pgadmin III Conhecer o catálogo do PostgreSQL Executar scripts SQL para criar e popular bases de dados Leitura Complementar Using pgadmin III: PostgreSQL Client Applications: Avaliação Exatidão: os comandos utilitários estão corretos? Estilo: os comandos utilitários fazem uso adequado dos parâmetros? Começando O PostgreSQL fornece utilitários de linha de comando que permitem aos usuários do sistema de banco de dados gerenciar bases de dados e usuários, bem como conectar e executar interativamente sentenças SQL. Nem todos os utilitários são de uso geral; alguns podem exigir privilégios especiais. createdb cria um novo banco de dados no PostgreSQL dropdb Remove um banco de dados no PostgreSQL createuser defne uma nova conta de usuário no PostgreSQL dropuser remove uma conta de usuário no PostgreSQL psql terminal interativo do PostgreSQL A característica comum destes utilitários é que eles podem ser executados em qualquer servidor, independentemente de onde o servidor do sistema de banco de dados reside. A lista completa dos programas utilitários está disponível no endereço eletrônico Criando o usuário userdb e banco de dados hr No terminal do GNU-Linux ou prompt de comando do MS-Windows execute: $createuser -h localhost -U postgres -d -S -P -e userdb Ao solicitar a senha, informe o mesmo nome do usuário (****** userdb). Detalhe dos parâmetros: -h especifca o servidor do sistema de banco de dados -U usuário do sistema de banco de dados com permissão de executar o comando -d permite o novo usuário criar bancos de dados -S retira o privilégio de superusuário do novo usuário -P solicita a defnição de uma senha para o novo usuário -e exibe o comando no terminal Pg. 1/4

6 O comando acima criou o usuário userdb para manipular a futura base de dados hr. É importante salientar que os usuários do sistema operacional e do PostgreSQL são distintos; podem ser os mesmos. Para maiores detalhes do comando createuser acesse a documentação no endereço eletrônico ou digite man createuser no terminal do GNU-Linux. Em seguida execute o comando: $createdb -h localhost -U userdb -e hr O comando createdb cria um novo banco de dados no PostgreSQL, cujo proprietário é o usuário userdb. Neste caso foi criado o banco de dados hr. Para maiores detalhes do comando createdb acesse a documentação no endereço eletrônico ou digite man createdb no terminal do GNU-Linux. Os próximos dois comandos remove e recria, respectivamente, o banco de dados hr; execute-os: $dropdb -h localhost -U userdb -e hr $createdb -h localhost -U userdb -e hr Acessando o banco de dados hr O utilitário psql permite aos usuários do sistema de banco de dados conectar e executar interativamente sentenças SQL. O usuário pode inserir as sentenças no prompt do psql ou salvar em um arquivo, executando-o a partir do comando \i. No terminal do GNU-Linux ou prompt de comando do MS-Windows execute: $psql -h localhost -U userdb -d hr Detalhe dos parâmetros: -h especifca o servidor do sistema de banco de dados -U usuário com permissão de executar o comando -d especifca o banco de dados da conexão Os símbolos =# e => referem-se, respectivamente, ao prompt de superusuário e usuário da linha de comando do psql nos sistemas operacionais GNU-Linux e Microsoft Windows. Qual é o seu prompt? Criando e populando o esquema do banco de dados hr As instruções SQL podem ser executadas individualmente no utilitário psql ou por meio de arquivos de lote, chamados de scripts SQL. Arquivos de script SQL.sql possuem instruções para criar, remover e alterar esquemas de banco de dados e inserir, remover e alterar dados do banco de dados. Na pasta do usuário aluno /home/aluno (ou c:/users/aluno/) crie uma pasta denominada TSI33A/pSet02. Em seguida salve nesta pasta os arquivos de script SQL HR_DDL_PostgreSQL.sql e HR_DML_PostgreSQL.sql. Pg. 2/4

7 Para criar o esquema e popular o banco de dados hr execute no prompt do psql: =>\i /home/aluno/tsi33a/pset02/hr_ddl_postgresql.sql =>\i /home/aluno/tsi33a/pset02/hr_dml_postgresql.sql Uma série de comandos será executado para criar e popular a base de dados, entre eles, CREATE, INSERT e ALTER. Execute o comando \d no prompt do psql para verifcar as tabelas do esquema do banco de dados. =>\d Demais comandos do utilitário psql podem ser visualizados a partir da ajuda. No prompt do psql execute o comando \? para visualizar os comandos disponíveis. =>\? Para sair do utiliário psql execute o comando \q no prompt do psql. =>\q O psql é um utilitário muito versátil que permite ao usuário enviar qualquer sentença SQL para execução. Toda instalação do PostgreSQL vem com este utilitário. Para detalhes acesse a documentação no endereço eletrônico ou digite man psql no terminal do GNU-Linux. Chega de linha de comando? Então vamos para um GUI Execute a aplicação pgadmin III. Em seguida adicione uma nova conexão (File seguintes dados: Add Server) com os Name: Conexão local Host: localhost ou Maintenance DB: hr User: userdb Password: userdb Por conseguinte, inicie a Conexão local e abra um editor SQL (Tools Query tool ou CTRL+E). Lembra dos scripts SQL HR_DDL_PostgreSQL.sql e HR_DML_PostgreSQL.sql? No Query tool abra o arquivo de script HR_DDL_PostgreSQL.sql (File Open) e o execute (Query Execute pgscript ou F6). Faça o mesmo com o arquivo de script HR_DML_PostgreSQL.sql. Pronto, aprendemos a executar scripts :-). Conhecendo o catálogo do PostgreSQL Os catálogos dos sistemas são repositórios onde os sistemas de banco de dados armazenam metadados do esquema, tais como informações sobre as tabelas, visões, funções e informações estatísticas do banco de dados. Pg. 3/4

8 No PostgreSQL, os catálogos são tabelas normais. Se o usuário tiver permissão é possível remover e recriar as tabelas, adicionar e remover colunas, atualizar, inserir e remover valores (portanto, muito cuidado quando conectar com o usuário postgres :- ). No entanto, a manipulação incorreta do catálogo pode danifcar o sistema de banco de dados. Por isso, normalmente, não se deve alterar os catálogos do sistema de forma livre (à mão). Para isso, há sempre comandos SQL. Para detalhes, acesse a documentação no endereço eletrônico Exercitando 1. Use os utilitários do PostgreSQL para: Criar o usuário usertsi33a Criar um banco de dados denominado dbtsi33a. O proprietário do banco de dados deve ser o usuário usertsi33a Executar os scripts dados dbtsi33a SQL HR_DDL_PostgreSQL.sql e HR_DML_PostgreSQL.sql na base de Executar e interpretar o comando \d regions no prompt do psql 2. Para acessar o banco de dados dbtsi33a com o utilitário psql é necessário especifcar o parâmetro -U. No entanto, é possível suprimir o parâmetro -U se o usuário usertsi33a for criado no Sistema Operacional. Assim, será possível conectar ao banco de dados dbtsi33a com o seguinte comando $psql -h localhost -d dbtsi33a Crie o usuário usertsi33a (com as permissões adequadas) no Sistema Opercional GNU-Linux ou MS-Windows. Em seguida, teste o comando acima. 3. Conecte a ferramenta pgadmin III à base de dados dbtsi33a. Abra uma editor arbitrário de consultas e interprete a execução das seguintes consultas (copie a consulta, cole no editor e execute com F5): SELECT * FROM pg_catalog.pg_tables WHERE SCHEMANAME LIKE 'dbtsi33a'; SELECT * FROM pg_catalog.pg_tables; SELECT * FROM pg_catalog.pg_views WHERE SCHEMANAME LIKE 'dbtsi33a'; 4. Use os utilitários do PostgreSQL e do Sistema Operacional para: Remover o banco de dados dbtsi33a. remover o usuário usertsi33a do PostgreSQL. remover o usuário usertsi33a do Sistema Operacional. 5. Dois conceitos importantes em sistemas de banco de dados são os esquemas e as instâncias (estados). É peculiar a diferença entre esses conceitos, por isso, é recomendado estudá-los a partir de um banco de dados real. Considerando o banco de dados hr, responda: Qual é o esquema do banco de dados hr? É possível mensurar o tamanho da instância hr? Se sim, como? Pg. 4/4

9 Objetivo TSI33A Banco de Dados 1 Semana 03 Relational Model Apresentar a existência de outros modelos de dados Compreender o modelo relacional a partir de um estudo de caso ( Order Entity) Leitura Complementar Capítulo 11 e Capítulo 12: ELMASRI, Ramez; NAVATHE, Shamkant B. Sistemas de banco de dados. 6 ed. São Paulo: Pearson Addison Wesley, Human Resources (HR): Avaliação Exatidão: as regras de integridades do modelo OE foram identificadas adequadamente? Estilo: as regras de integridade estão coesas com o domínio da aplicação? Começando O modelo relacional é amplamente utilizado nos diversos segmentos do desenvolvimento de software. Sua estrutura foi proposta por Edgar Frank Codd e publicada no artigo Relational Model of Data for Large Shared Data Banks em O artigo está disponível na ACM Digital Library (acesse com o proxy da UTFPR :-) ) Na década de 70 outros modelos de banco de dados já existiam (e.g. modelo hierárquico e modelo em rede), contudo, esses modelos apresentavam complexidade na recuperação das informações e eram fortemente dependentes da aplicação. Portanto, o modelo de dados relacional passou a ser utilizado pelos fornecedores de sistemas de banco de dados. Com a evolução do desenvolvimento de software, a massificação das linguagens orientadas a objetos, a interoperabildiade entre aplicações e a necessidade de novos tipos de dados, novos modelos de dados foram propostos. Dentre eles estão o modelo de dados de objetos e o modelo de dados XML. O modelo de dados de objetos foi concebido de modo a integrar diretamente a base de dados ao software desenvolvido por uma linguagem de programação orientada a objetos. No modelo relacional a comunicação entre o banco de dados e a aplicação orientada a objetos necessita de um mapeamento mapeamento objeto-relacional, portanto, com o uso de banco de dados de objetos esse mapeamento deixa de ser realizado. O Hibernate é um exemplo de framework que faz o mapeamento objeto-relacional (se alcançarmos as metas, veremos até o final da disciplina TSI33A :-) ). Nesse mesmo contexto, o modelo de dados XML foi proposto devido à evolução das aplicações web e fontes de dados que disponibilizam dados XML na web. É importante destacar que os modelos supracitados possuem linguagens próprias de definição, manipulação e consulta de dados, implementados pelos sistemas de banco de dados que comportam esses modelos. Por exemplo, as linguagens Object Definition Language (ODL) e Object Query Language (OQL) referem-se ao modelo de dados de objetos e as linguagens XML Path (Xpath) )e XQuery (XML Query) ao modelo de dados XML. Pg. 1/4

10 Fornecedores de SGBDRs reconheceram a necessidade de incorporar outros padrões de modelos de dados e, consequentemente, sistemas de banco de dados híbridos surgiram no mercado (e.g. IBM DB2 Database, Oracle Database, PostgreSQL, etc.). Estudando um modelo de dados relacional No website da ferramente SQL Developer Data Modeler ( estão disponíveis quatro modelos de dados relacionais. Um desses modelos é o HR data model. A descrição do domínio do negócio está disponível no endereço Na base de dados HR cada colaborador tem uma identificação, um , o código do seu cargo, o código do seu departamento, um salário e o código do seu gerente. Alguns colaboradores ganham uma comissão além do seu salário. A base de dados também controla informações sobre os departamentos e cargos da empresa. Cada cargo tem um identificador, um título e o piso e teto salarial. Cada departamento tem um identificador, um nome, o código do gerente e uma localização. Cada departamento está associada a um único local. Cada localização tem um endereço, um CEP, uma cidade, um estado e o código do país. Alguns colaborares trabalham por um longo período na empresa e já ocuparam diferentes cargos. Quando um colaborador muda de cargo a empresa registra o seu histórico, armazenando a data de início e fim do cargo, o identificador do cargo e o identificador do departamento de lotação. Por se tratar de uma empresa multinacional existem diversas filiais. Desta forma, os departamentos estão distribuídos em diversos países. Cada país possui um identificador, um nome e o identificador da região. A região refere-se ao continente do país, portanto, as instalações da empresa são distribuídas em regiões. Cada região possui um identificador e um nome. Pg. 2/4

11 Estudando as regras de integridade do modelo de dados relacional O modelo relacional possui um conjunto de regras que visam à integridade dos dados. São quatro as principais regras de integridade (domínio, mandatório ou nulo, chaves e semântica.), sendo estas exemplificadas através do diagrama acima. A regra de integridade de domínio limita os valores de atributo das relações. Por exemplo, a relação JOBS possui os atributos MIN_SALARY e MAX_SALARY, cujos valores não podem ser, respectivamente, inferior a zero e inferior a MIN_SALARY. Outro exemplo refere-se à relação JOB_HISTORY, cujo valor do atributo START_DATE deve ser igual ou inferior ao atributo END_DATE. A regra de integridade de valor mandatório ou nulo define valores madatórios ou opcionais de atributos das relações. Por exemplo, alguns departamentos não possuem gerente por estratégia organizacional, portanto, o atributo MANAGER_ID da relação DEPARTMENTS deve ser opcional e não mandatório. Por outro lado, o atributo DEPARTMENT_NAME é mandatório, pois os departamentos devem ter um nome. A regra de integridade de chaves é subdividida em chave primária, chave única e chave estrangeira. A chave primária refere-se ao atributo ou conjunto de atributos cujo valor garante a unicidade da tupla, sendo este valor madatório. Por exemplo, em uma situação homônima na relação EMPLOYEES, em que os colaboradores possuem o mesmo cargo e estão alocados no mesmo departamento, o atributo EMPLOYEE_ID deve distinguí-los (diferenciá-los), portanto, este atributo é a chave primária da relação. A chave estrangeira refere-se à integridade referencial dos dados, ou seja, o conjunto de valores que o atributo pode assumir deve existir em uma relação de referência entre este atributo e a chave primária da relação. Por exemplo, os países estão situados em regiões, contudo, o atributo REGION_ID da relação COUNTRIES só pode receber valores que existam para o atributo REGION_ID da relação REGIONS. O mesmo ocorre entre os atributos DEPARTAMENT_ID da relação EMPLOYEES e o atributo DEPARTMENT_ID da relação DEPARTMENTS. Assim como a chave primária, a chave única também garante a unicidade do valor do atributo ou conjunto de atributos. No entanto, a chave única não é mandatório e, consequentemente, permite valor nulo ao atributo. Outra diferença é que a chave única não permite integridade referencial, ou seja, não é possível definir uma chave estrangeira com um atributo ou conjunto de atributos chave única. A regra de integridade semântica está associada a definição de regras de negócio ao esquema do modelo de dados. Entende-se por regras de negócio as regras de lógica, processos, etc. Por exemplo, para toda alteração de cargo ou departamento de um colaborador uma tupla deve ser inserida na relação JOB_HISTORY com os valores anteriores. Esse processo deve ser automático a partir da alteração dos atributos JOB_ID e/ou DEPARTMENT_ID da relação EMPLOYEES. Assim, é possível manter um histórico dos colaboradores (cargos e departmentos que ele atuou). A integridade semântica é abrangente e pode envolver qualquer restrição que ocorre no mundo real. Por exemplo, o número de seguridade social ou cadastro de pessoa física possui uma lógica de definição. O valor desse atributo pode ser validado a partir da definição de regras semânticas. Caso a regra não seja satisfeita, a tupla não poderá ser inserida na relação (e.g. função para validar o CPF). Pg. 3/4

12 Exercitando 1. Considerando a descrição do domínio de negócio Order Entry (OE), disponvível no endereço e o modelo lógico abaixo, identifique e descreva: As regras de integridade de domínio As regras de integridade de valor mandatório ou nulo As regras de integridade de chaves (primária, única e estrangeira) As regras de integridade semântica 2. Obter informações organizacionais em sistemas de processamento de arquivos apresenta numerosas desvantagens (SILBERSHATZ, 1999). Podemos citar como desvantagem os problemas de integridade dos dados. Por exemplo, um sistema acadêmico não deve permitir a exclusão de registros de alunos que foram matriculados e possuem qualquer modalidade de lançamento no sistema (notas bimestrais, nota final, boletos, registros de empréstimo de livros, etc). Marque e justifique a alternativa que expressa o tipo de integridade do modelo relacional que trata a questão apresentada. Integridade de obrigatoriedade Integridade referencial Integridade de domínio Integridade de atomicidade Pg. 4/4

13 Objetivo TSI33A Banco de Dados 1 Semana 04 Structured Query Language (SQL) && Consultas Introduzir os diferentes padrões da SQL Construir consultas SQL básicas Avaliação Exatidão: a sintaxe das consultas SQL estão corretas? Estilo: as consultas SQL são claras e seguem as boas práticas? Começando A Structured Query Language (SQL) é a linguagem padrão dos sistemas de banco de dados relacionais comerciais (proprietários e opensource) e foi padronizada em 1986 pelos órgãos American National Standards Institute (ANSI) e International Standards Organization (ISO). A especificação do primeiro padrão é a norma ISO/IEC 9075 e, como qualquer outra linguagem, a SQL evoluiu desde a sua concepção; o padrão mais recente foi publicado em Popularmente o primeiro padrão é chamado de SQL-86 ou SQL1, com sua revisão em 1989 (SQL-89). Em 1992 o padrão SQL-86/89 foi revisado e expandido, resultando no padrão SQL-92 ou SQL2 (especificado pela norma ISO/IEC 9075:1992). A principal novidade deste padrão foi a especificação de funcionalidades comuns (core), que toda implementação de sistema de banco de dados em conformidade deve implementar, e demais funcionalidades ( extensions), normalmente disponibilizadas em pacotes pelos fornecedores de sistemas de banco de dados. Uma diferença entre os padrões SQL-92 e SQL-89 é o estilo e a performance de consultas com a operação de junção. Abaixo é apresentado um exemplo de junção externa a esquerda (LEFT JOIN) nos padrões SQL-86 e SQL-92. SQL-86 SELECT E.FIRST_NAME, J.JOB_TITLE FROM EMPLOYEES E, JOBS J WHERE J.JOB_ID(+) = E.JOB_ID; SQL-92 SELECT E.FIRST_NAME, J.JOB_TITLE FROM EMPLOYEES E, LEFT JOIN JOBS J ON E.JOB_ID = J.JOB_ID; Outras diferenças envolveram: tipos de dados; operações de junções; e projeção condicionada (CASE). Para manter a compatibilidade os novos padrões SQL mantêm as funcionalidades dos padrões anteriores. Assim, o padrão SQL-92 é compatível com o padrão SQL-86/89 ( cuidado - o inverso não é verdadeiro). Alguns sistemas de banco de dados não admitem todos os estilos da mesma instrução. Por exemplo, o PostgreSQL iniciou no padrão SQL-92, portanto, não admite a junção externa no padrão SQL-86. Já o Oracle Database admite todos os estilos de comandos. Pg. 1/5

14 O próximo padrão reconhecido foi o SQL:1999, chamada de SQL3, que consiste em uma série de especificações (ISO/IEC :1999,ISO/IEC :1999,ISO/IEC :1999, entre outras). Os padrões SQL:2003 e SQL:2006 incorporaram poucas funcionalidades ao padrão SQL:1999. A principal mudança ocorreu na SQL:2003, dividindo a especificação em partes: ISO/IEC Framework (SQL/Framework) ISO/IEC Foundation (SQL/Foundation) ISO/IEC Call Level Interface (SQL/CLI) ISO/IEC Persistent Stored Modules (SQL/PSM) ISO/IEC Management of External Data (SQL/MED) ISO/IEC Object Language Bindings (SQL/OLB) ISO/IEC Information and Definition Schemas (SQL/Schemata) ISO/IEC Routines and Types using the Java Language (SQL/JRT) ISO/IEC XML-related specifications (SQL/XML) Cada sistema de banco de dados cobre um conjunto de partes da especificação SQL. Por exemplo, o PostgreSQL 9.4 cobre as partes 1, 2, 9, 11 e 14. A parte 3 é coberta pelo driver ODBC e a parte 13 pelo plugin PL/Java. As partes 4 e 10 não são implementadas pelo PostgreSQL 9.4. Em geral, os padrões SQL:2003/2006 introduziram funcionalidades de XML (SQL/XML) e funções de janelas (windows functions). Por exemplo, a consulta abaixo faz uso de funções de janelas para agrupar por cargo a soma dos salários dos colaboradores (e.g. 5 Analistas com salário U$ 2, resulta em U$ 10,000.00). SELECT DISTINCT JOB_ID, SUM(SALARY) OVER (PARTITION BY JOB_ID) FROM EMPLOYEES; O padrão SQL:2008 também é dividido em diversas partes e incorporou, pincipalmente, recursos de objetos (banco de dados de objetos). Por fim, novas revisões originaram o padrão SQL:2011 (ISO/IEC 9075:2011). Muitos dos novos recursos dos padrões SQL já haviam sido implementados por fornecedores de sistemas de banco de dados antes da especificação e publicação dos padrões. Portanto, os grandes fornecedores e as grandes comunidades de sistemas de banco de dados são colaboradores e participantes da evolução da SQL. Brincando com os padrões SQL no SQLFiddle SQLFiddle é uma ferramenta online de fácil manipulação para testes SQL. A ferramenta está disponível no endereço Abra um navegador de Internet (Google Chrome, Mozilla Firefox ou Internet Explorer) e acesse a ferramenta SQLFiddle. Na ferramenta, selecione o sistema de banco de dados Oracle 11g R2 (lado superior esquerdo). Em seguida copie as instruções abaixo e cole no quadro esquerdo da ferramenta. Clique no botão Build Schema. Pg. 2/5

15 CREATE TABLE JOBS ( JOB_ID CHAR(10) NOT NULL, JOB_TITLE VARCHAR(35) NOT NULL ); INSERT INTO JOBS (JOB_ID,JOB_TITLE) VALUES ('AD_PRES','President'); INSERT INTO JOBS (JOB_ID,JOB_TITLE) VALUES ('SA_MAN','Sales Manager'); INSERT INTO JOBS (JOB_ID,JOB_TITLE) VALUES ('IT_PROG','Programmer'); CREATE TABLE EMPLOYEES ( EMPLOYEE_ID INTEGER NOT NULL, FIRST_NAME VARCHAR(20), JOB_ID CHAR(10), SALARY NUMERIC(8,2) ); INSERT INTO EMPLOYEES (EMPLOYEE_ID,FIRST_NAME,JOB_ID,SALARY) VALUES (100,'Steven','AD_PRES',24000); INSERT INTO EMPLOYEES (EMPLOYEE_ID,FIRST_NAME,JOB_ID,SALARY) VALUES (104,'Bruce','IT_PROG',6000); INSERT INTO EMPLOYEES (EMPLOYEE_ID,FIRST_NAME,JOB_ID,SALARY) VALUES (107,'Diana','',4200); INSERT INTO EMPLOYEES (EMPLOYEE_ID,FIRST_NAME,JOB_ID,SALARY) VALUES (145,'John','SA_MAN',14000); INSERT INTO EMPLOYEES (EMPLOYEE_ID,FIRST_NAME,JOB_ID,SALARY) VALUES (146,'Karen','SA_MAN',13500); Por conseguinte, copie a consulta abaixo e cole no quadro direito. Clique no botão Run SQL. Observe se a consulta executará com sucesso. SELECT E.FIRST_NAME, J.JOB_TITLE FROM EMPLOYEES E LEFT JOIN JOBS J ON J.JOB_ID = E.JOB_ID; Faça o mesmo com a consulta abaixo. Observe que a consulta foi escrita de outra forma, contudo, possui o mesmo retorno. SELECT E.FIRST_NAME, J.JOB_TITLE FROM EMPLOYEES E, JOBS J WHERE J.JOB_ID(+) = E.JOB_ID; Agora selecione o sistema de banco de dados MySQL Em seguida, clique novamente no botão Build Schema. Execute novamente as duas consultas acima. Observe que a segunda consulta gerou um erro de sintaxe, pois a sintaxe da junção externa da segunda consulta não é interpredada pela versão do sistema banco de dados MySQL Apresentando um novo modelo A base de dados BM registra os movimentos bancários das empresas cadastradas. Cada empresa possui um identificador, uma nome e o saldo geral atualizado. O saldo geral refere-se ao saldo de todos as contas da empresa. A base de dados também controla informações das contas das empresas. Cada conta tem um identificador, um número da conta, uma descrição, um banco e o saldo atualizado da conta. As empresas registram os movimentos bancários (lançamentos de crédito e débido) de cada conta. Cada movimento tem um identificador de movimento, a empresa e conta que realizou o movimento, a descrição do movimento, a data, tipo e valor do movimento. A fim de otimizar a recuperação dos dados, um resumo mensal das movimentações é armazenado. Por exemplo, uma determinada empresa possui movimentos diários entre os anos 2000 e Mensalmente é registrado o saldo mensal na tabela resumo. Se a empresa recuperar o saldo do mês de Agosto de 2010, somente verificará o resumo deste mês não é necessário somar os créditos e débitos de todos os movimentos até essa data. Pg. 3/5

16 Inteprete o modelo físico abaixo. Na pasta do usuário aluno /home/aluno (ou c:/users/aluno/) crie uma pasta denominada TSI33A/pSet04. Em seguida salve nesta pasta o arquivo de script SQL BM_DDL_DML_PostgreSQL. No terminal do GNU-Linux ou prompt de comandos do MS-Windows execute: $createuser -h localhost -U postgres -d -S -P -e userlocal Em seguida execute os comandos: $createdb -h localhost -U userlocal -e bm $psql -h localhost -U userlocal -d bm Após acessar a base de dados, crie o esquema e popule o banco de dados bm com o arquivo de script BM_DDL_DML_PostgreSQL. =>\i /home/aluno/tsi33a/pset04/bm_ddl_dml_postgresql.sql Uma série de comandos será executado para criar e popular a base de dados, entre eles, CREATE, INSERT e ALTER. Execute o comando \d no prompt do psql para verificar as tabelas do esquema do banco de dados. Por conseguinte, fecha o utiliário psql. =>\q Pg. 4/5

17 Exercitando 1. Conectar a ferramenta pgadmin III a base de dados bm. Abra uma editor arbitrário de consultas e elabore as seguintes consultas: Recupere o saldo geral atualizado das empresas (use a tabela empresa) Recupere o saldo de cada conta da empresa Cooperativa de Pesquisa Agrícola Liste os movimentos de débido da empresa Jacar Materiais de Construção Recupere as empresas ordenando-as pela maior saldo 2. Verifique por meio de consultas se a empresa Transportadora Ortox possui: Depósitos em dinheiro Depósito em cheque Movimento de débido superior ao movimento de crédito 3. Você recorda do modelo Order Entity do pset03? Vamos criá-lo :-) Execute as seguintes instruções $createdb -h localhost -U userlocal -e tsi33a $psql -h localhost -U userlocal -d tsi33a (os próximos comandos exigem primeiro a execução dos scripts HR_DDL_PostgreSQL.sql e HR_DML_PostgreSQL.sql, pois existe uma dependência entre os scripts) =>\i /home/aluno/tsi33a/pset04/oe_ddl_postgresql.sql =>\i /home/aluno/tsi33a/pset04/oe_dml_postgresql.sql Considere a base de dasdos Order Entity (OE), a partir do pgadmin III elabore as seguintes consultas: Recupere o código, o nome e a descrição dos produtos da categoria 17 Recupere os dados dos produtos que possuem catálogo de endereço eletrônico (url) Recupere o nome e sobrenome dos clientes solteiros do sexo feminino Crie uma consulta para responder a pergunta: Todos os clientes italianos são solteiros? Crie uma consulta para responder a pergunta: Existe um armazém em New Jersey? Pg. 5/5

18 Objetivo TSI33A Banco de Dados 1 Semana 05 Junções && Base de Dados Remota Compreender a confguração de acesso remoto do PostgreSQL Consolidar o conteúdo de junções da SQL Leitura Complementar Chapter 19. Client Authentication: Coderwall: Avaliação Exatidão: a estrutura das consultas está correta? Estilo: a estrutura das consultas está indentada e segue as boas práticas? Começando A confguração padrão de instalação do PostgreSQL perminte somente acesso local ao sistema de banco de dados, (i.e., através dos endereços ou localhost). Essa confguração inicial garante a segurança do sistema de banco de dados até que sejam defnidas políticas e estratégias de acesso e uso das bases de dados e manutenção do sistema de banco de dados. Em ambientes corporativos, cujos dados são valiosos, é comum o servidor de banco de dados ser acessível somente na rede interna. Assim, as aplicações ou executam na mesma rede do sistema de banco de dados ou por meio de containers ou servidores de aplicação. Por exemplo, aplicações desktop são instaladas nas estações de trabalho e, por meio da rede interna, acessam o sistema de banco de dados para recuperar, armazenar, alterar e excluir dados. Também é possível que aplicações dektop acessem o sistema de banco de dados a partir de redes privadas ou acesso remoto (e.g. Virtual Private Network VPN, Terminal Server TS). Outro viés de acesso são as aplicações para web. Estas possuem containers ou servidores de aplicações (e.g. Apache Tomcat, JBoss, Glassfsh) que estão, normalmente, na mesma rede do sistema de banco de dados. Outras estratégias de acesso envolvendo redes de computadores também são empregadas (e.g. roteamento, fltros - IPTables, etc.). Além da infraestrutura de acesso também é possível administrar o sistema de banco de dados em relação aos usuários, ao acesso as bases de dados, aos utilitários e às instruções SQL. Uma breve exemplifcação será apresentanda para posterior acesso ao servidor amazonia.td.utfpr.br (PostgreSQL 9.4). Configurando o acesso remoto no PostgreSQL Após a instalação do PostgreSQL no servidor de banco de dados, além de outros serviços essenciais para a manutenção remota (e.g. SSH), faz-se necessário confgurar os arquivos pg_hba.conf e postresql.conf. A localização destes arquivos depende do sistema operacional e da instalação do PostgreSQL, portanto, o material será baseado no GNU-Linux distro Ubuntu LTS com a instalação padrão do PostgreSQL 9.4. Pg. 1/6

19 O primeiro passo é adicionar registros de autenticação de cliente no arquivo pg_hba.conf. No terminal, execute: $sudo pico /etc/postgresql/9.4/main/pg_hba.conf Como indicado abaixo, a confguração aceita conexões somente a partir do localhost. # host DATABASE USER ADDRESS METHOD # "local" is for Unix domain socket connections only local all all peer # IPv4 local connections: host all all /32 md5 # IPv6 local connections: host all all ::1/128 md5 Para permitir conexões de qualquer host, somente para a base de dados tsi33a, altere a linha indicada para: # host DATABASE USER ADDRESS METHOD # IPv4 local connections: host tsi33a all /0 md5 O pg_hba.conf permite controlar o acesso combinando o IP ou máscara de rede, banco, usuário e método de acesso. Consulte o endereço %C3%A1tico/Confgura%C3%A7%C3%B5es/Confgurar_acessos para maiores detalhes. O segundo passo é alterar o arquivo postgresql.conf. No terminal, execute: $sudo pico /etc/postgresql/9.4/main/postgresql.conf Como indicado abaixo, o serviço do sistema de banco de dados aceita somente sessões do localhost. #listen_addresses = 'localhost' max_connections = 100 # what IP address(es) to listen on; # (change requires restart) O máximo de conexões também pode ser alterado para prover maior segurança. Sabendo o número máximo de usuários ou conexões simultâneas, defna esse número como valor do parâmetro max_connections. Altere a linha indicada para: listen_addresses = '*' max_connections = 15 # what IP address(es) to listen on; # (change requires restart) Reinicie o serviço do PostgreSQL para que os novos valores sejam aplicados. No terminal, execute: $sudo service postgresql restart Outras confgurações são possíveis para os arquivos pg_hba.conf e postgresql.conf. Procure conhecer como administrar a segurança das conexões com o PosgreSQL. Pg. 2/6

20 Acessando o sistema de banco de dados do servidor amazonia.td.utfpr.edu.br No terminal do GNU-Linux ou prompt de comando do MS-Windows execute (substitua <RA> pelo registro acadêmico) : $psql -h amazonia.td.utfpr.edu.br -U <RA> -d tsi33a Cada aluno possui um usuário do sistema de banco de dados (seu registro acadêmico) e um esquema de banco de dados (com o mesmo nome do usuário). Todos os usuários podem acessar a base de dados tsi33a, contudo, só podem manipular o seu próprio esquema. Um esquema é uma organização lógica de objetos de banco de dados. Por default, a senha padrão é o próprio nome do usuário. Desta forma, após conectar à base de dados tsi33a, execute o comando abaixo para alterar a senha (substitua o valor nova_senha): =>ALTER ROLE " " WITH PASSWORD 'nova_senha'; A mesma conexão pode ser realizada na ferramenta pgadmin III. Certifque-se de desconectar do utilitário psql, pois cada usuário pode utilizar somente duas sessão do sistema de banco de dados. Essa regra de segurança foi defnida no momento da criação dos usuários. Exemplo de criação do usuário do sistema de banco de dados (prompt psql e utilitário createuser): #>CREATE ROLE " " WITH NOSUPERUSER NOCREATEDB NOCREATEROLE NOINHERIT NOREPLICATION CONNECTION LIMIT 2 LOGIN PASSWORD ' ' VALID UNTIL ' '; $createuser -S -D -R -I --no-replication -c 2 -l -h localhost -P -e Os comandos acima exigem privilégios administrativos para serem executados, potanto, se desejar, teste no sistema de banco de dados local (não é possível em amozonia.td.utfpr.edu.br). Por que duas sessões de conexão e não apenas uma? Bom, A ferramenta PgAdmin III trata as sessões de forma diferente do utilitário psql. Cada janela do PgAdmin III exige uma sessão com o sistema de banco de dados. Desta forma, o janela principal possui uma sessão e o editor arbitrário de SQL outra sessão. Criando e populando a base de dados tsi33a no servidor amazonia.td.utfpr.edu.br Na pasta do usuário aluno /home/aluno (ou c:/users/aluno/) crie uma pasta denominada TSI33A/pSet05. Salve nesta pasta o arquivo de script SQL HR_DDL_DML_PostgreSQL.sql. Em seguida, execute o comando abaixo no terminal (GNU_Linux) ou prompt de comando (MS-Windows): $psql -h amazonia.td.utfpr.edu.br -U <RA> -d tsi33a -f /home/aluno/tsi33a/pset05/hr_ddl_dml_postgresql.sql O parâmetro -f do utilitário psql invoca de forma implícita o comando \i. Com o parâmetro -f é possível executar o script que cria e popula a base de dados tsi33a em sistema de banco de dados remoto. Pg. 3/6

21 Exercitando 1. Acesse a base de dados tsi33a no servidor amazonia.utfpr.edu.br (use o utilitário psql ou a ferramenta PgAdmin III). Em seguida, elabore as seguintes consultas: Recupere o nome completo, cargo e valor do salário por hora dos programadores. Assuma que os colaboradores trabalham 160 horas/mês EMPLOYEE_ID EMPLOYEE_NAME JOB_ID JOB_TITLE SALALRY/HOUR Alexander Hunold IT_PROG Programmer Bruce Ernst IT_PROG Programmer David Austin IT_PROG Programmer Valli Pataballa IT_PROG Programmer Diana Lorentz IT_PROG Programmer Recupere o cargo atual e os cargos anteriores dos colaboradores que alteraram de cargo desde a data de contratação. Ordene os registros por pelo primeiro nome FIRST_NAME JOB_CURRENT JOB_PREVIOUS Den Purchasing Manager Stock Clerk Jonathon Sales Representative Sales Manager Jonathon Sales Representative Sales Representative Lex Administration Vice President Programmer Michael Marketing Manager Marketing Representative Neena Administration Vice President Public Accountant Neena Administration Vice President Accounting Manager Payam Stock Manager Stock Clerk Recupere o nome e país dos departamentos que não possuem gerente DEPARTMENT_NAME COUNTRY_NAME Payroll United States of America Recruiting United States of America Retail Sales United States of America Government Sales United States of America IT Helpdesk United States of America NOC United States of America IT Support United States of America Operations United States of America Contracting United States of America Construction United States of America Manufacturing United States of America Benefits United States of America Shareholder Services United States of America Control And Credit United States of America Corporate Tax United States of America Treasury United States of America 2. As informações sobre os cargos da empresa (e.g. programadores, analistas de TI, contadores, etc.) são armazenadas na tabela JOBS. Além do identifcador e da descrição do cargo também são registrados o piso e teto salarial. Considerando que a tabela EMPLOYEES não possui mecanismo para restringir a inclusão de colaboradores com salário inferior ao piso salarial ou superior ao teto salarial, alguns registros podem estar inconsistentes em relação ao domínio do negócio. Como responsável pelas consultas no banco de dados: elabore uma consulta que recupere os registros com inconsistência de salário inferior ao piso salarial ou superior ao teto salarial. Liste o nome completo dos colaboradores, o salário e os respectivos piso e teto salarial. EMPLOYEE_NAME SALARY MIN_SALARY MAX_SALARY Matthew Weiss Pg. 4/6

22 3. A folha de pagamento é, normalmente, uma lista mensal referente à remuneração dos colaboradores de uma empresa. A empresa gera a folha de pagamento a partir de uma série de procedimentos trabalhistas. Considerando apenas as tabelas do Instituto Nacional do Seguro Social (INSS) e Imposto de Renda Retido na Fonte (IRRF), que são alíquotas descontadas do salário do colaborador, recupere do banco de dados os seguintes dados (utilize a projeção condiconal para os impostos do INSS e IRRF): nome completo dos colaboradores o nome do cargo dos colaboradores salário bruto (valor armazenado na base de dados) alíquota do INSS ( vigência 01/01/ valor a ser descontado do INSS alíquota do IRRF ( exercício valor a ser descontado do IRRF EMPLOYEE_NAME JOB_TITLE SALARY (%)INSS INSS (%)IRRF IRRF Steven King President Neena Kochhar Administration Vice President David Austin Programmer Valli Pataballa Programmer Nancy Greenberg Finance Manager Daniel Faviet Accountant John Chen Accountant Alexander Khoo Purchasing Clerk Karen Colmenares Purchasing Clerk Adam Fripp Stock Manager Julia Nayer Stock Clerk James Landry Stock Clerk Steven Markle Stock Clerk TJ Olson Stock Clerk Renske Ladwig Stock Clerk Trenna Rajs Stock Clerk Curtis Davies Stock Clerk John Russell Sales Manager Jennifer Dilly Shipping Clerk Timothy Gates Shipping Clerk Randall Perkins Shipping Clerk Sarah Bell Shipping Clerk Kevin Feeney Shipping Clerk Jennifer Whalen Administration Assistant Em relação ao exercício 3, incluir na consulta a projeção do salário líquido dos colaboradores 5. Considerando a instalação padrão do PostgreSQL nos laboratórios de informática do Campus Toledo da UTFPR (user=postgres, password=postgres), altere a confguração permitindo o acesso remoto a partir da rede interna. Em seguida: Teste o acesso remoto com o seu vizinho de bancada 6. Na pasta do pset05 /home/aluno/tsi33a/pset05 (ou c:/users/aluno/tsi33a/pset05) salve os arquivos de script SQL OE_DDL_PostgreSQL.sql e OE_DML_PostgreSQL.sql. Em seguida, execute os comandos abaixo no terminal (GNU_Linux) ou prompt de comando (MS-Windows): Pg. 5/6

23 $psql -h amazonia.td.utfpr.edu.br -U <RA> -d tsi33a -f /home/aluno/tsi33a/pset05/oe_ddl_postgresql.sql $psql -h amazonia.td.utfpr.edu.br -U <RA> -d tsi33a -f /home/aluno/tsi33a/pset05/oe_dml_postgresql.sql Posterior a execução dos comandos, acesse a base de dados tsi33a no servidor amazonia.utfpr.edu.br (use o utilitário psql ou a ferramenta PgAdmin III) e elabore as seguintes consultas: Projete o nome completo dos clientes e de seus respectivos gerentes de conta. Sabe-se que o campo CUSTOMERS.ACCOUNT_MGR_ID é chave estrangeira de EMPLOYEES.EMPLOYEE_ID. Projete o nome dos armazéns e de seus respectivos países. Sabe-se que o campo WAREHOUSES.LOCATION_ID é chave estrangeira de LOCATIONS.LOCATION_ID. Pg. 6/6

24 Objetivo TSI33A Banco de Dados 1 Semana 06 Subcadeias de Caracteres && Funções de Agregação && Paginação Introduzir as cláusulas LIMIT e OFFSET Consolidar o uso das funções de manipulação de caracteres Consolidar o uso das funções de agregação Leitura Complementar Chapter 7. Queries: Chapter 9. Functions and Operators: Avaliação Exatidão: a estrutura das consultas está correta? Estilo: a estrutura das consultas está indentada e segue as boas práticas? Começando No desenvolvimento de software, principalmente software para Internet, é comum o uso da técnica de paginação para dividir os registros da consulta em pequenas páginas. Por exemplo, o GMail utiliza a paginação para exibir os s (aproximadamente 50 s por página), o Gestional Libre de Parc Informatique (GLPI) faz uso da paginação para exibir os chamados de manutenção ou serviço (entre 10 a 1000 registros por página). Portanto, a paginação é comum no desenvolvimento de software para Web. Além de proporcionar um bom layout de impressão, a paginação também maximiza a velocidade de recuperação e apresentação dos dados, pois exige menos recursos para obtê-los. Outra vantagem da paginação é o carregamento mais rápido das páginas web (AJAX também facilita nesse tarefa). Enfim, e como fazer a paginação? A paginação pode ser realizada com regras na camada de aplicação, frameworks ou por consultas SQL. Se todos os registros forem recuperados da base de dados, a paginação deve ser tratada na camada de aplicação, contudo, é possível recuperar os registros já paginados por meio de frameworks ou da própria SQL. Este material abordará paginação em SQL com PostgreSQL. As cláusulas LIMIT e OFFSET As cláusulas LIMIT e OFFSET permitem recuperar apenas uma parte dos registros da consulta, possibilitando a montagem da paginação. A cláusula LIMIT permite que seja recuperado somente a quantidade de registros especificado pelo parâmetro, desconsiderando o restante dos registros. Em suma, a consulta é executada no lado servidor e retorna para o lado cliente somente a quantidade especificada de registros. O exemplo abaixo recupera os 5 primeiros nomes da relação EMPLOYEES. Pg. 1/4

25 SELECT FIRST_NAME, LAST_NAME FROM EMPLOYEES LIMIT 5; FIRST_NAME LAST_NAME Steven King Neena Kochhar Lex De Haan Alexander Hunold Bruce Ernst O próximo exemplo também recupera os 5 primeiros nomes da relação EMPLOYEES, contudo, do conjunto ordenado por ordem alfabética. SELECT FIRST_NAME, LAST_NAME FROM EMPLOYEES ORDER BY FIRST_NAME LIMIT 5; FIRST_NAME LAST_NAME Adam Fripp Alana Walsh Alberto Errazuriz Alexander Khoo Alexander Hunold A cláusula OFFSET permite ignorar uma determinada quantidade de registros antes de começar a retornálos. O exemplo abaixo recupera 5 nomes da relação EMPLOYEES, iniciando do 2 registro (o valor 1 na cláusula OFFSET indica ignorar 1 registro). SELECT FIRST_NAME, LAST_NAME FROM EMPLOYEES ORDER BY FIRST_NAME LIMIT 5 OFFSET 1; FIRST_NAME LAST_NAME Alana Walsh Alberto Errazuriz Alexander Khoo Alexander Hunold Alexis Bull Perceba que o próximo registro após o Alexander,Hunold ( Alexis,Bull ) foi exibido ao invés do registro Adam,Fripp. Consultas com as cláusulas LIMIT e OFFSET são mais eficientes e possuem um custo menor comparado ao uso de grids de dados nas linguagem de programação. Quando utilizamos grids de dados estamos aplicando uma paginação no lado cliente (a partir de filtros da grid); e isso exige a recuperação de todos os registros. Como dica, sempre use a cláusula ORDER BY para definir uma ordem única para os registros, caso contrário, a consulta retornará um subconjunto imprevisível de registros (normalmente a ordem de inserção). Pg. 2/4

26 Subcadeias de caracteres O uso de funções e operadores de subconjuntos de caracteres é simples, o difícil é saber quais são as funções e operadores existentes no sistema de banco de dados utilizado. Assim, faça uma leitura das tabelas Table 9-6. SQL String Functions and Operators e Table 9-7. Other String Functions no endereço Funções de agregação Da mesma forma que no tópico Subcadeias de caracteres, faça uma leitura das tabelas Table General-Purpose Aggretate Functions e Table Aggregate Fuctions for Statistics no endereço Exercitando 1. Acesse a base de dados tsi33a no servidor amazonia.utfpr.edu.br (use o utilitário psql ou a ferramenta PgAdmin III). Em seguida, elabore as seguintes consultas: Recupere a quantidade de colaboradores dos departamentos que possuem dois ou mais colaboradores. Ordene o resultado em ordem descrescente pela quantidade de colaboradores DEPARTMENT_ID DEPARTMENT_NAME QTD Shipping Sales Finance 6 30 Purchasing 6 60 IT 5 90 Executive 3 20 Marketing Accounting 2 Recupere, pela técnica de paginação e em ordem alfabética, o tempo de serviço dos cinco primeiros colaboradores NAME YEARS Adam Fripp 9 years Alana Walsh 8 years Alberto Errazuriz 9 years Alexander Khoo 11 years Alexander Hunold 9 years Repita a consulta do item anterior recuperando a segunda página de registros. Use a cláusula OFFSET para isso NAME YEARS Alexis Bull 9 years Allan McEwen 10 years Alyssa Hutton 9 years Amit Banda 6 years Anthony Cabrio 7 years Pg. 3/4

27 2. Considerando a base de dados tsi33a e a consulta abaixo para recuperar os primeiros 50 nomes da relação EMPLOYEES, responda: SELECT FIRST_NAME, LAST_NAME FROM EMPLOYEES ORDER BY FIRST_NAME LIMIT 25 OFFSET 0; Para as próximas páginas basta alterar o valor da cláusula OFFSET por múltiplos de 25? Assim, tem-se uma paginação de 25 registros para exibir os 107 registros Quantas páginas são necessárias para exibir os 107 registros? Quantos registros a última página exibirá? 3. Considerando o modelo Order Entity (OE), acesse a base de dados tsi33a no servidor amazonia.utfpr.edu.br (use o utilitário psql ou a ferramenta PgAdmin III). Em seguida, elabore as seguintes consultas: Recupere o valor total dos pedidos para cada cliente do sexo masculino Recupere o valor total, os valores maior e menor e o valor médio dos pedidos Recupere distintamente (independente de quantos pedidos) a quantidade de clientes que possuem pedidos Recupere a quantidade total e o valor total de "Mobile phone" que foram pedidos em 2014 Recupere todos os dados (pedidos e itens de pedido) dos pedidos , , , , Além dos códigos do produto, cliente e representante comercial, os respectivos nomes, se existirem, também devem ser projetados (nome do produto, nome do cliente e nome do representante comercial). Sabe-se que o campo ORERS.SALES_REP_ID é chave estrangeira de EMPLOYEES.EMPLOYEE_ID. Pg. 4/4

28 Objetivo TSI33A Banco de Dados 1 Semana 07 Subconsultas && Operações de Conjuntos Introduzir a verifcação de integridade de dados com o MD5 Exercitar o conteúdo de subconsultas Exercitar o conteúdo de operações de conjuntos Leitura Complementar MDT5summer: Avaliação Exatidão: a estrutura das consultas está correta? Estilo: a estrutura das consultas está indentada e segue as boas práticas? Começando O Message-Digest algorithm 5 (MD5) é um algoritmo de hash de 128 bits especifcado pela RFC 1321 e muito utilizado na verifcação de integridade de arquivos. Algoritmos de hash são referências em relação à criptografa e integridade de dados, pois a partir de uma quantidade de dados (arquivo de texto ou binário) geram um valor de tamanho conhecido. Por exemplo, o arquivo da aula OE_PostgreSQL.tar possui o seguinte hash MD5: 745f1cfca068d65ef924f06d Não importa quantas vezes seja gerado o hash MD5 do arquivo OE_PostgreSQL.tar, sempre resultará no mesmo valor. O hash gerado pelo MD5 é de 32 caracteres, independente do formato, nome ou tamanho do arquivo. O MD5 é utilizado na distribuição de software livre para verifcar a integridade do download. Comumente, o software é disponibilizado juntamente com o seu valor hash. Após os usuários realizarem download do arquivo binário ou compactado, eles podem comparar o valor hash gerado por eles com o hash disponível no site. Se os valores forem diferentes, então o conteúdo está corrompido ou foi alterado. Ressalta-se que o MD5 não possui como fnalidade a garantia da procedência de um arquivo, somente a verifcação da integridade dos dados recuperados. Gerando o MD5 de arquivos No GNU-Linux, o utilitário md5sum permite calcular o código hash dos arquivos. A maioria das distribuições possui o md5sum instalado de forma nativa, portanto, acesse o sistema operacional GNU- Linux. Na pasta do usuário aluno /home/aluno/ crie uma pasta denominada TSI33A/pSet07. Em seguida salve nesta pasta o arquivo OE_PostgreSQL.tar. Pg. 1/3

29 Verifque a sintaxe básica e documentação do utilitário através do comando abaixo (execute no terminal): $man md5sum Para gerar o MD5 do arquivo OE_PostgreSQL.tar execute no terminal: $md5sum -t /home/aluno/tsi33a/pset07/oe_postgresql.tar O parâmetro -t indica que o arquivo é texto. Caso seja um arquivo binário, especifque o parâmetro -b. O comando abaixo direciona a saída para o arquivo OE_PostgreSQL.txt. $md5sum -t /home/aluno/tsi33a/pset07/oe_postgresql.tar > OE_PostgreSQL.txt Compare o MD5 do arquivo OE_PostgreSQL.txt gerado no comando acima com o arquivo OE_PostgreSQL.hash.txt disponível no pset-s07. O arquivo está íntegro? Exercitando 1. Na pasta do usuário aluno /home/aluno/ (ou c:/users/aluno/) crie uma pasta denominada TSI33A/pSet07. Salve nesta pasta o arquivo compactado OE_PostgreSQL.tar. Verifque se o MD5 do download do arquivo OE_PostgreSQL.tar corresponde ao MD5 do arquivo OE_PostgreSQL.hash.txt. Em seguida, extraia os arquivos OE_DDL_PostgreSQL.sql e OE_DML_PostgreSQL.sql do arquivo OE_PostgreSQL.tar. Execute os comandos abaixo no terminal (GNU-Linux) ou prompt de comando (MS-Windows): $md5sum -t OE_PostgreSQL.tar $cat OE_DDL_PostgreSQL.sql OE_DML_PostgreSQL.sql md5sum -t Agora responda. Se o conteúdo dos arquivos é o mesmo, por que os MD5s gerados não são iguais? 2. Considerando os diagramas lógicos dos modelos Order Entry (OE) e Human Resources (HR), acesse a base de dados tsi33a do servidor amazonia.td.utfpr.edu.br e elabore as seguintes consultas: Recupere o nome completo dos colaboradores e clientes. Projete uma coluna extra (PERSON_TP) para identifcar se o registro refer-se ao colaborador (EMP) ou ao cliente (CUS) Recupere o nome completo dos colaboradores que são gerentes e clientes. Refaça a consulta do item anterior utilizando a operação de diferença. Cuidado, o resultado deve ser o mesmo Recupere o nome completo dos clientes que possuem o mesmo nome dos colaboradores Pg. 2/3

30 Recupere os clientes que possuem o produto "Laptop 128/12/56/v90/110" em seus pedidos Recupere a quantidade e o valor de pedido dos produtos "Mouse" (considere que a palavra mouse em qualquer parte do nome do produto) 3. Buscando recompensar os representantes comerciais, a empresa solicitou ao analista de banco de dados o desenvolvimento de uma consulta que recupere os principais dados dos representantes comerciais mais efcientes. A efciência, neste caso, está relacionada ao valor dos pedidos emitidos por estes representantes. A ideia da empresa é prospectar o aumento de 5% para os primeiros 10 representantes mais efcientes, 3% para os próximos 5 mais efcientes e 2% para os demais representantes que possuam ao menos U$ 50, em pedidos. Para isso, a consulta deve projetar os seguintes dados: identifcador, primeiro nome, último nome e salário dos representantes comerciais; valor total dos pedidos realizados; e prospecção do percentual de aumento (novo salário). Enfm, você é o analista e eu solicitei a consulta :-), mãos a obra! Pg. 3/3

31 Objetivo TSI33A Banco de Dados 1 Semana 08 Data Manipulation Language && Backup/Restore Introduzir os utilitários de backup e restore do PostgreSQL Consolidar o conteúdo de linguagem de manipulação de dados Avaliação Exatidão: os comandos e as instruções SQL estão corretas? Estilo: os comandos fazem uso adequado dos parâmetros? Começando Quantas vezes você ouviu a pergunta: Tem backup né?. No mundo corporativo os dados são tão valiosos que não se pode pensar em uma infraestrutura de sistema de banco de dados sem considerar os procedimentos de backup e restore. Desta forma, todo sistema de banco de dados possui comandos para realizar regularmente o backup e restore dos dados. Regularmente backup e restore? Não seria regularmente backup e esporadicamente restore? Cuidado, quantas vezes você ouviu a frase: O O backup não funcionou!. Certo de que arquivos grandes podem ser facilmente corrompidos e as pequenas mudanças no sistema de banco de dados ou no schema dos dados podem influenciar no restore, faça o restore regularmente. Atenção, faça os testes de restore em uma base de dados de homologação ou teste e nunca na base de produção, salvo quando necessário. No sistema de banco de dados PostgreSQL 9.4 há três abordagens para fazer o backup dos dados: SQL dump; File system level backup; e Continuous archiving. Devido a compatibilidade do restore entre versões mais recentes do sistema de banco de dados PostgreSQL (ou futuras versões) e a independência da arquitetura de máquina (e.g. 32bits, 64bits), neste pset será abordado o método SQL dump. Para conhecer os outros métodos de backup/restore acesso o endereço eletrônico Fazendo o backup com o utilitário pg_dump A ideia do método SQL dump é gerar um arquivo com os comandos SQL que, quando alimentado de volta ao sistema de banco de dados, recriará o banco de dados no mesmo estado em que estava no momento do dump. Esse método foi utilizado para criar e popular a base de dados tsi33a do amazonia.td.utfpr.edu.br com os modelos Human Resources (HR) e Order Entity (OE) :-). Durante os psets anteriores o método também foi utilizado parcialmente com a execução dos scripts SQL. O pg_dump é um utilitário poderoso e responsável pelo SQL dump. Ele permite realizar o procedimento de backup a partir de qualquer host que tenha acesso ao banco de dados (a conexão está sujeita aos mecanismos de autenticação de clientes). Pg. 1/4

32 Em geral, para realilzar o backup de toda a base de dados (e.g. tsi33a e todos os schemas) é necessário ter acesso à base de dados e aos objetos da base de dados (tabelas, visões, esquemas etc), por isso, as vezes o comando deve ser executado como superusuário. Se você não tem privilégios suficientes para fazer backup de todo o banco de dados, é possível fazer backup de porções do banco de dados (determinados esquemas, determinadas tabelas, visões, etc.). A sintaxe básica do pg_dump é: pg_dump [connection-option...][option...][dbname] Veja o exemplo abaixo de backup do esquema user da base de dados tsi33a. $pg_dump -h amazonia.td.utfpr.edu.br -U user -n user --inserts -c -v tsi33a > tsi33a_user.sql Detalhe dos parâmetros: -h especifica o servidor do sistema de banco de dados -U usuário do sistema de banco de dados com permissão de executar o comando -n o schema da base de dados (omitir o parâmetro para selecionar todos os esquemas) --inserts os dados serão gerados conforme a sintaxe INSERT INTO...VALUES -c remove os objetos do banco de dados para recriá-los -v exibe as saídas no terminal ou prompt de comando > direcionamento da saída para o arquivo No exemplo anterior o arquivo tsi33a_user.sql foi gerado em formato texto. Isso significa que é possível abrí-lo e identificar seus comandos por meio de qualquer editor de texto. Além disso, o arquivo não é comprimido. Essas são características do formato de saída padrão de arquivo do pg_dump. Outro formato de arquivo é o.dump. Esse formato de saída é flexível e comprime os dados (compacta), além de realizar o backup mais rápido. Para especificar esse formato de arquivo utilize o parâmetro -Fc. $pg_dump -h amazonia.td.utfpr.edu.br -U user -n user -v -Fc tsi33a > tsi33a_user.dump Agora vamos realizar o backup do seu esquema na base de dados tsi33a do amazonia.td.utfpr.edu.br. No terminal do GNU-Linux ou prompt de comando do MS-Windows execute (substitua <RA> pelo número do registro acadêmico): $pg_dump -h amazonia.td.utfpr.edu.br -U <RA> -n <RA> --inserts -c -v tsi33a > tsi33a_<ra>.sql Em seguida execute: $pg_dump -h amazonia.td.utfpr.edu.br -U <RA> -n <RA> -v -Fc tsi33a > tsi33a_<ra>.dump Após a execução dos dois comandos abra os arquivos tsi33a_<ra>.sql e tsi33a_<ra>.dump em um editor de texto simples. Os arquivos possuem o mesmo conteúdo? Em seguida veja a propriedade tamanho dos arquivos. Qual arquivo possui o menor tamanho? Pg. 2/4

33 Para detalhes do utilitário pg_dump acesse a documentação no endereço eletrônico ou digite man pg_dump no terminal do GNU-Linux. Recuperando o backup com o utilitário psql e pg_restore O restore do banco de dados depende do formato de arquivo. Se o formato do arquivo for.sql utilize o utilitário psql. Por exemplo: $psql -h amazonia.td.utfpr.edu.br -U user -d tsi33a -f tsi33a_user.sql Esse comando não é novidade. Ele foi executado na criação dos modelos Human Resources (HR) e Order Entity (OE) no servidor amazonia.td.utfpr.edu.br. Quando o formato do arquivo for.dump, utilize o utilitário pg_restore. A sintaxe básica do pg_dump é: pg_restore [connection-option...][option...][filename] Veja o exemplo abaixo de restore do arquivo tsi33a_user.dump no servidor amazonia.td.utfpr.edu.br. $pg_restore -h amazonia.td.utfpr.edu.br -U user -Fc -d tsi33a -n user -c -v tsi33a_user.dump Agora é a sua vez de recuperar o backup Considere que você é um estagiário e execute o comando abaixo na base de dados tsi33a. UPDATE EMPLOYEES SET MANAGER_ID = 101; Ops! Você acaba fazer um belo trabalho na base de dados. Sabe o que você fez? Definiou a colaboradora Neena Kochhar como gerente de todos os colaboradores, inclusive ela mesma. Agora você precisa realizar o restore e desfazer esse belo trabalho. No terminal do GNU-Linux ou prompt de comando do MS-Windows execute (substitua <RA> pelo número do registro acadêmico): $psql -h amazonia.td.utfpr.edu.br -U <RA> -d tsi33a -f tsi33a-user.sql Verifique se a mudança feita anteriormente foi desfeita. Faça novamente o belo trabalho. Em seguida execute: $pg_restore -h amazonia.td.utfpr.edu.br -U user -Fc -d tsi33a -n <RA> -c -v tsi33a_user.dump Verifique novamente o estado da tabela EMPLOYEES. Para detalhes do utilitário pg_restore acesse a documentação no endereço eletrônico ou digite man pg_resotre no terminal do GNU-Linux. Pg. 3/4

34 Exercitando 1. A base de dados tsi33a possui 359 produtos cadastrados. É possível verificar essa quantidade a partir da consulta abaixo: SELECT COUNT(PRODUCT_ID) FROM PRODUCT_INFORMATION; Cada produto possui um status que pode assumir o valor: obsoleto (obsolete), planejado (planned), disponível (orderable), em desenvolvimento (under development) ou sem status (NULL). A consulta abaixo recupera os possíveis valores de status dos produtos: SELECT DISTINCT PRODUCT_STATUS FROM PRODUCT_INFORMATION; Informações sobre o estoque dos produtos são registradas na tabela INVENTORIES, incluindo o armazém e a quantidade disponível. Alguns produtos novos ainda não possuem estoque e outros a quantidade disponível no estoque é zero. Informações sobre o estoque dos produtos são importantes para as estratégias de logística e remanejamento, por isso, sua tarefa é: Recuperar os produtos que não possuem estoque ou a quantidade no estoque é zero. Projete o identificador, nome e status dos produtos e, para os produtos com estoque zero, o identificador e nome do armazém, bem como a quantidade em estoque PRODUCT_ID PRODUCT_NAME PRODUCT_STATUS WAREHOUSE_ID WAREHOUSE_NAME QUANTITY_ON_HAND ESD Bracelet/Clip orderable 9 Bombay LCD Monitor 11/PM under development 1743 HD /E planned 1761 CD-ROM 600/I/32x under development 1782 Compact 400/DQ obsolete 1910 FG Stock - H orderable Soy Formula Rice Formula Leakguard Overnight Analisar o resultado do item anterior. Atualizar para 10 a quantidade em estoque dos produtos disponíveis em um armazém e que possuem quantidade zero. Verificar se existem lançamentos de pedido para os produtos sem status. Caso existam, atualizar o valor do status para obsolete, caso contrário, atualizar para planned Inserir um novo armazém, chamado Brazil, na localidade Rua Frei Caneca 1360, São Paulo/SP- BR (verificar se a localidade já está cadastrada) Inserir um estoque de 100 unidades (tabela disponíveis e que não possuem estoque/armazém INVENTORIES) no armazém Brasil para os produtos 2. Remover os armazéns que não possuem produtos armazenados Pg. 4/4

35 Objetivo TSI33A Banco de Dados 1 Semana 09 Data Definition Language && Backup Regular (.sh pgagent) Introdução à automatização de backups Consolidar o conteúdo de instruções DDL Leitura Complementar Automated Backup on Linux: Livro: NEVES, Julio Cezar. Programação Shell Linux. 8. ed. Rio de Janeiro, RJ: Brasport, p. ISBN Avaliação Exatidão: a estrutura das instruções SQL e dos comandos de backup estão corretos? Estilo: a estrutura das instruções SQL e dos comandos de backup seguem as boas práticas? Começando No pset08 os utilitários pg_dump e pg_restore foram apresentados como instrumentos para realizar as atividades de backup e restore. Ambos utilitários são comumente utilizados no mundo do PostgreSQL, contudo, o pg_dump é complementado com técnicas para realizar de forma automática e regular o backup das bases de dados. Assim, a atividade diária de backup deixa de ser uma preocupação para o administrador do sistema de banco de dados. No PostgreSQL duas abordagens são utilizadas: Shell Script + cron e pgagent. Neste pset (pset09) a abordagem Shell Script + cron será explorada. Programando seu script de backup com Shell Script Shell script é uma linguagem de script usada em vários sistemas operacionais, com diferentes dialetos, dependendo do interpretador de comandos utilizado. No GNU-Linux o interpretador de comandos é o bash. O bloco de código abaixo é um Shell script de execução do utilitário pg_dump para criar um arquivo de backup (.dump) conforme os valores das variáveis HOSTNAME, PORT, USER e DATABASE. Para não ocorrer substituição do backup o nome do arquivo é formado pelo nome da base de dados mais a data e hora de geração do backup. #!/bin/sh # variáveis do comando de backup HOSTNAME="amazonia.td.utfpr.edu.br" PORT="5432" USER="user" DATABASE="tsi33a" # arquivo de backup em /tmp com no formato: $DATABSE<ano><mês><dia>_<hora><min.><seg.> pg_dump -h $HOSTNAME -p $PORT -U $USER -C -Fc $DATABASE > /tmp/$database-`date +"%Y%m%d_%H%M%S"`.dump Pg. 1/5

36 Na pasta do usuário aluno /home/aluno crie uma subpasta denominada TSI33A/pSet09. Em seguida, salve nesta pasta o arquivo de Shell script cronpgbackup.sh. No terminal do GNU-Linux adicione a permissão de execução para o arquivo cronpgbackup.sh: $chmod +x /home/aluno/cronpgbackup.sh Execute o script através do comando: $./home/aluno/cronpgbackup.sh Para ver o resultado (o o arquivo de backup gerado pelo script) liste o conteúdo da pasta temporária. $ls /tmp/ Não é o objetivo deste pset ensinar a programação Shell script, apenas exemplificar seu uso para geração de backups. Portanto, para saber mais sobre Shell Script consulte o livro Programação Shell Linux (Julio Cezar Neves) disponível na biblioteca do Campus Toledo da UTFPR. Entendendo o daemon cron O cron é um daemon que permite agendar a execução de comandos e processos nos sistemas GNU- Linux. Uau! O que é um daemon? Daemons são programas ou serviços que executam em background (segundo plano) e são, normalmente, inicializados no boot do sistema operacional. Para executar os comandos e processos agendados, denominados de tarefas, o cron usa um arquivo de tabela de agendamento (crontab). O arquivo crontab situa-se no diretório geral /etc ou no diretório específico (e exclusivo) para cada usuário /var/spool/cron/. Execute no terminal do GNU-Linux os seguintes comandos (a senha é o mesmo nome do usuário postgres :-) ): $su postgres $crontab -e O crontab possui o seguinte formato e entrada: [minutos] [horas] [dias_do_mês] [mês] [dias_da_semana] [usuário] [comando] Detalhes de cada coluna: minutos: 0 a 59 (* para quaquer minuto) horas: 0 a 23 (* para qualquer hora) dias_do_mês: 1 a 31 (* para todos os dias do mês) mês: 1 a 12 (* para todos os meses) dias_da_semana: 0 a 7 (* para todos os dias da semana) usuário: usuário que executará o comando comando: tarefa a ser executada Pg. 2/5

37 Insira o conteúdo abaixo após a última linha do arquivo em edição (substitua <RA> pelo número do registro acadêmico; <X> pela hora corrente e <Y> pelo minuto corrente + 5 min): # backup database tsi33a schema <RA> <Y> <X> * * * postgres pg_dump -h amazonia.td.utfpr.edu.br -U <RA> -n <RA> -v -Fc tsi33a > /tmp/tsi33a_<ra>.dump Salve o conteúdo do arquivo e aguarde o comando ser executado na hora e no minuto agendado no crontab. Em seguida, verifique se o arquivo foi gerado na pasta /tmp: $ls /tmp/ Se o arquivo foi gerado, parabéns! Caso o arquivo não seja gerado você falhou :-) - tente novamente. Agendando seu script de backup no crontab Em grandes ambientes corporativos, cujo volume de dados também é grande, o backup é realizado duas ou mais vezes ao dia. Vamos contextualizar esse tipo de ambiente: A Cooperativa Central de Pesquisa Agrícola COODETEC é uma empresa de base tecnológica voltada à agricultura que pesquisa e comercializa sementes de milho, soja e trigo de alta qualidade e adaptadas a diferentes climas e solos, com mais rendimento e menos risco. A COODETEC tem sede em Cascavel/PR, onde mantém escritório central, centro de treinamento, além dos laboratórios, câmaras secas e casas de vegetação. Outros centros da COODETEC estão localizados em Palotina/PR, Goioerê/PR, Paracatu/MG, Rio Verde/GO e Primavera do Leste/MT (Fonte: Entre os anos de 2008 e 2012 (período que eu trabalhei na COODETEC) a empresa gerava grandes volumes de dados, provenientes da produção, análise de qualidade, comercialização e pesquisa de sementes, além de outras fontes de dados, tais como, análise de solos, frota de veículos, relacionamento com produtores e clientes, informações contábies, informações de recursos humanos, etc. O backup da base de dados de empresas de porte igual ou superior a COODETEC é na escala de Gigabytes/Terabytes. Gerar um backup desse tamanho é oneroso e demorado, por isso é necessário que essa tarefa seja automatizada com verificações. Uma forma de automatizar e verificar possíveis problemas é por meio de scripts e agendamento de tarefas. Agora agende a execução diária do script cronpgbackup.sh. Exercitando 1. Conside um sistema multi-empresa e multi-filial que gerencia representantes, fornecedores, clientes e usuários. Os representantes, fornecedores, clientes e usuários possuem um conjunto de dados que são comuns entre eles e outro conjunto de dados que são específicos. Portanto, a representação no modelo relacional possui um conjunto de entidades generalistas (pessoas) e um conjunto de entidades especializadas (representantes, fornecedor,es clientes e usuários). Pg. 3/5

38 Uma relaçao pessoa (generalista) possui um ou mais endereços (i.e. um representante, fornecedor, cliente ou usuário possui um ou mais endereços). Uma relação cliente, além do endereço padrão na relação generalista, possui mais dois endereços: endereço de cobrança e endereço de entrega. A relação usuário possui um login, uma senha e a relação de empresas e filiais que possui acesso. As relações empresa, filial e pessoa possuem o atributo situação, cujo objetivo é indicar se a entidade está ativa ou inativa. A situação do usuário indica se a entidade está ativa ou inativa para acessar o sistema. Analise o diagrama abaixo e identifique as regras de integridade (valor mandatório, chaves, domínio e semântica) e os tipos de dados. Sua missão é: Definir as instruções DDL do diagrama (com as regras de integridade e os tipos de dados) Criar a base de dados homologacao no servidor localhost $createdb -h localhost -U postgres homologacao Recuperar o backup somente dos dados a partir do arquivo homologacao.dump $pg_restore -h localhost -U postgres -d homologacao -a -Fc -v homologacao.dump Se o backup homologacao.dump não funcionar, significa que você falhou. 2. Considerando a resolução do Exercício 1, 1 elabore as seguintes consultas: Recuperar o nome e CPF dos clientes que também são fornecedores Pg. 4/5

Programação Orientada a Objetos com PHP & MySQL Sistema Gerenciador de Banco de Dados: Introdução e configuração de bases de dados com Postgre e MySQL

Programação Orientada a Objetos com PHP & MySQL Sistema Gerenciador de Banco de Dados: Introdução e configuração de bases de dados com Postgre e MySQL Programação Orientada a Objetos com PHP & MySQL Sistema Gerenciador de Banco de Dados: Introdução e configuração de bases de dados com Postgre e MySQL Prof. MSc. Hugo Souza Iniciando nossas aulas sobre

Leia mais

Noções de. Microsoft SQL Server. Microsoft SQL Server

Noções de. Microsoft SQL Server. Microsoft SQL Server Noções de 1 Considerações Iniciais Basicamente existem dois tipos de usuários do SQL Server: Implementadores Administradores 2 1 Implementadores Utilizam o SQL Server para criar e alterar base de dados

Leia mais

Projeto Integrador Programação para Internet

Projeto Integrador Programação para Internet FACULDADE DE TECNOLOGIA SENAC GOIÁS SEGURANÇA DA INFORMAÇÃO Projeto Integrador Programação para Internet AYLSON SANTOS EDFRANCIS MARQUES HEVERTHON LUIZ THIAGO SHITINOE AYLSON SANTOS EDFRANCIS MARQUES HEVERTHON

Leia mais

Procedimentos para Reinstalação do Sisloc

Procedimentos para Reinstalação do Sisloc Procedimentos para Reinstalação do Sisloc Sumário: 1. Informações Gerais... 3 2. Criação de backups importantes... 3 3. Reinstalação do Sisloc... 4 Passo a passo... 4 4. Instalação da base de dados Sisloc...

Leia mais

Bases de Dados. Lab 1: Introdução ao ambiente

Bases de Dados. Lab 1: Introdução ao ambiente Departamento de Engenharia Informática 2010/2011 Bases de Dados Lab 1: Introdução ao ambiente 1º semestre O ficheiro bank.sql contém um conjunto de instruções SQL para criar a base de dados de exemplo

Leia mais

Bases de Dados. O ficheiro create-bank.sql contém um conjunto de instruções SQL para criar a base de dados de exemplo ilustrada na figura 1.

Bases de Dados. O ficheiro create-bank.sql contém um conjunto de instruções SQL para criar a base de dados de exemplo ilustrada na figura 1. Departamento de Engenharia Informática 2008/2009 Bases de Dados Lab 1: Introdução ao ambiente 1º semestre O ficheiro create-bank.sql contém um conjunto de instruções SQL para criar a base de dados de exemplo

Leia mais

BANCO DE DADOS WEB AULA 4. linguagem SQL: subconjuntos DCL, DDL e DML. professor Luciano Roberto Rocha. www.lrocha.com

BANCO DE DADOS WEB AULA 4. linguagem SQL: subconjuntos DCL, DDL e DML. professor Luciano Roberto Rocha. www.lrocha.com BANCO DE DADOS WEB AULA 4 linguagem SQL: subconjuntos DCL, DDL e DML professor Luciano Roberto Rocha www.lrocha.com O que é SQL? Structured Query Language, ou Linguagem de Consulta Estruturada ou SQL,

Leia mais

LINX POSTOS AUTOSYSTEM

LINX POSTOS AUTOSYSTEM LINX POSTOS AUTOSYSTEM Manual Sumário 1 INTRODUÇÃO AO POSTGRES...3 2 INSTALAÇÃO...3 2.1 Download...3 2.2 Instalação...4 3 CONFIGURAÇÃO...7 3.1 CIDR-ADDRESS...8 3.2 Biometria...9 4 LINHA DE COMANDO...10

Leia mais

Persistência e Banco de Dados em Jogos Digitais

Persistência e Banco de Dados em Jogos Digitais Persistência e Banco de Dados em Jogos Digitais Prof. Marcos Francisco Pereira da Silva Especialista em Engenharia de Software Jogos Digitais - Computação Gráfica 1 Agenda Vantagens de usar a abordagem

Leia mais

UNIVERSIDADE FEDERAL DE SANTA MARIA - UFSM COLÉGIO AGRÍCOLA DE FREDERICO WESTPHALEN BANCO DE DADOS II

UNIVERSIDADE FEDERAL DE SANTA MARIA - UFSM COLÉGIO AGRÍCOLA DE FREDERICO WESTPHALEN BANCO DE DADOS II UNIVERSIDADE FEDERAL DE SANTA MARIA - UFSM COLÉGIO AGRÍCOLA DE FREDERICO WESTPHALEN BANCO DE DADOS II BANCO DE DADOS II AULA 1 Linguagem SQL Linguagem de definição de dados (DDL) DISCIPLINA: Banco de Dados

Leia mais

GUIA DE INÍCIO RÁPIDO NHS NOBREAK MANAGER 4.0 TOPOLOGIA MÍNIMA DE REDE PARA A INSTALAÇÃO E USO DO SOFTWARE COM GPRS

GUIA DE INÍCIO RÁPIDO NHS NOBREAK MANAGER 4.0 TOPOLOGIA MÍNIMA DE REDE PARA A INSTALAÇÃO E USO DO SOFTWARE COM GPRS GUIA DE INÍCIO RÁPIDO NHS NOBREAK MANAGER 4.0 TOPOLOGIA MÍNIMA DE REDE PARA A INSTALAÇÃO E USO DO SOFTWARE COM GPRS CONFIGURAÇÃO DO GPRS 1. Entre no site da NHS na página de homologação do NHS NOBREAK

Leia mais

Manual do Visualizador NF e KEY BEST

Manual do Visualizador NF e KEY BEST Manual do Visualizador NF e KEY BEST Versão 1.0 Maio/2011 INDICE SOBRE O VISUALIZADOR...................................................... 02 RISCOS POSSÍVEIS PARA O EMITENTE DA NOTA FISCAL ELETRÔNICA.................

Leia mais

O que são Bancos de Dados?

O que são Bancos de Dados? SQL Básico Liojes de Oliveira Carneiro professor.liojes@gmail.com www.professor-liojes.blogspot.com O que são Bancos de Dados? É o software que armazena, organiza, controla, trata e distribui os dados

Leia mais

SCIM 1.0. Guia Rápido. Instalando, Parametrizando e Utilizando o Sistema de Controle Interno Municipal. Introdução

SCIM 1.0. Guia Rápido. Instalando, Parametrizando e Utilizando o Sistema de Controle Interno Municipal. Introdução SCIM 1.0 Guia Rápido Instalando, Parametrizando e Utilizando o Sistema de Controle Interno Municipal Introdução Nesta Edição O sistema de Controle Interno administra o questionário que será usado no chek-list

Leia mais

AULA 2 INTERAÇÃO COM O BANCO DE DADOS

AULA 2 INTERAÇÃO COM O BANCO DE DADOS AULA 2 INTERAÇÃO COM O BANCO DE DADOS BANCO DE DADOS POSTGRESQL O PostgreSQL é um sistema gerenciador de banco de dados dos mais robustos e avançados do mundo. Seu código é aberto e é totalmente gratuito,

Leia mais

ArpPrintServer. Sistema de Gerenciamento de Impressão By Netsource www.netsource.com.br Rev: 02

ArpPrintServer. Sistema de Gerenciamento de Impressão By Netsource www.netsource.com.br Rev: 02 ArpPrintServer Sistema de Gerenciamento de Impressão By Netsource www.netsource.com.br Rev: 02 1 Sumário INTRODUÇÃO... 3 CARACTERÍSTICAS PRINCIPAIS DO SISTEMA... 3 REQUISITOS DE SISTEMA... 4 INSTALAÇÃO

Leia mais

www.neteye.com.br NetEye Guia de Instalação

www.neteye.com.br NetEye Guia de Instalação www.neteye.com.br NetEye Guia de Instalação Índice 1. Introdução... 3 2. Funcionamento básico dos componentes do NetEye...... 3 3. Requisitos mínimos para a instalação dos componentes do NetEye... 4 4.

Leia mais

Desenvolvendo Websites com PHP

Desenvolvendo Websites com PHP Desenvolvendo Websites com PHP Aprenda a criar Websites dinâmicos e interativos com PHP e bancos de dados Juliano Niederauer 19 Capítulo 1 O que é o PHP? O PHP é uma das linguagens mais utilizadas na Web.

Leia mais

Despachante Express - Software para o despachante documentalista veicular DESPACHANTE EXPRESS MANUAL DO USUÁRIO VERSÃO 1.1

Despachante Express - Software para o despachante documentalista veicular DESPACHANTE EXPRESS MANUAL DO USUÁRIO VERSÃO 1.1 DESPACHANTE EXPRESS MANUAL DO USUÁRIO VERSÃO 1.1 1 Sumário 1 - Instalação Normal do Despachante Express... 3 2 - Instalação do Despachante Express em Rede... 5 3 - Registrando o Despachante Express...

Leia mais

PHP INTEGRAÇÃO COM MYSQL PARTE 1

PHP INTEGRAÇÃO COM MYSQL PARTE 1 INTRODUÇÃO PHP INTEGRAÇÃO COM MYSQL PARTE 1 Leonardo Pereira leonardo@estudandoti.com.br Facebook: leongamerti http://www.estudandoti.com.br Informações que precisam ser manipuladas com mais segurança

Leia mais

ADMINISTRAÇÃO DE SISTEMAS OPERACIONAIS SERVIÇOS IMPRESSÃO. Professor Carlos Muniz

ADMINISTRAÇÃO DE SISTEMAS OPERACIONAIS SERVIÇOS IMPRESSÃO. Professor Carlos Muniz ADMINISTRAÇÃO DE SISTEMAS OPERACIONAIS SERVIÇOS IMPRESSÃO Serviços de impressão Os serviços de impressão permitem compartilhar impressoras em uma rede, bem como centralizar as tarefas de gerenciamento

Leia mais

MANUAL DO PVP SUMÁRIO

MANUAL DO PVP SUMÁRIO Manual PVP - Professores SUMÁRIO 1 INTRODUÇÃO... 6 2 ACESSANDO O PVP... 8 3 TELA PRINCIPAL... 10 3.1 USUÁRIO... 10 3.2 INICIAL/PARAR... 10 3.3 RELATÓRIO... 10 3.4 INSTITUIÇÕES... 11 3.5 CONFIGURAR... 11

Leia mais

Introdução ao Sistema. Características

Introdução ao Sistema. Características Introdução ao Sistema O sistema Provinha Brasil foi desenvolvido com o intuito de cadastrar as resposta da avaliação que é sugerida pelo MEC e que possui o mesmo nome do sistema. Após a digitação, os dados

Leia mais

1. Introdução pág.3 2. Apresentação do sistema Joomla! pág.4 3. Acessando a administração do site pág.4 4. Artigos 4.1. Criando um Artigo 4.2.

1. Introdução pág.3 2. Apresentação do sistema Joomla! pág.4 3. Acessando a administração do site pág.4 4. Artigos 4.1. Criando um Artigo 4.2. 1. Introdução pág.3 2. Apresentação do sistema Joomla! pág.4 3. Acessando a administração do site pág.4 4. Artigos 4.1. Criando um Artigo 4.2. Editando um Artigo 4.3. Excluindo um Artigo 4.4. Publicar

Leia mais

PgAdmin. O pgadmin é um software gráfico para administração do SGBD PostgreSQL disponível para Windows e UNIX.

PgAdmin. O pgadmin é um software gráfico para administração do SGBD PostgreSQL disponível para Windows e UNIX. 1/20 PgAdmin O pgadmin é um software gráfico para administração do SGBD PostgreSQL disponível para Windows e UNIX. Site para download. Caso queira a última versão - http://www.pgadmin.org/download/ É uma

Leia mais

Introdução a Banco de Dados

Introdução a Banco de Dados Introdução a Banco de Dados Ricardo Henrique Tassi - Departamento de Replicação Índice 1- Introdução... 03 2- Quais são os bancos de dados mais conhecidos hoje em dia...04 3- Quais são os tipos de banco...05

Leia mais

Procedimentos para Instalação do Sisloc

Procedimentos para Instalação do Sisloc Procedimentos para Instalação do Sisloc Sumário: 1. Informações Gerais... 3 2. Instalação do Sisloc... 3 Passo a passo... 3 3. Instalação da base de dados Sisloc... 16 Passo a passo... 16 4. Instalação

Leia mais

Manual de Instalação do Servidor Orion Phoenix Versão 1.0 - Novembro/2010

Manual de Instalação do Servidor Orion Phoenix Versão 1.0 - Novembro/2010 Manual de Instalação do Servidor Orion Phoenix Versão 1.0 - Novembro/2010 Manual de Instalação do Sistema Orion Phoenix 1.0 - Novembro/2010 Página 1 SUMÁRIO 1. INTRODUÇÃO...3 2. VISÃO GERAL...3 3. PROCEDIMENTOS

Leia mais

Polycom RealPresence Content Sharing Suite Guia rápido do usuário

Polycom RealPresence Content Sharing Suite Guia rápido do usuário Polycom RealPresence Content Sharing Suite Guia rápido do usuário Versão 1.2 3725-69877-001 Rev.A Novembro de 2013 Neste guia, você aprenderá a compartilhar e visualizar conteúdos durante uma conferência

Leia mais

Manual de Instalação e Configuração do SQL Express

Manual de Instalação e Configuração do SQL Express Manual de Instalação e Configuração do SQL Express Data alteração: 19/07/11 Pré Requisitos: Acesse o seguinte endereço e faça o download gratuito do SQL SRVER EXPRESS, conforme a sua plataforma x32 ou

Leia mais

SQL Linguagem de Definição de Dados. Banco de Dados Profa. Dra. Cristina Dutra de Aguiar Ciferri

SQL Linguagem de Definição de Dados. Banco de Dados Profa. Dra. Cristina Dutra de Aguiar Ciferri SQL Linguagem de Definição de Dados Banco de Dados SQL Structured Query Language Uma das mais importantes linguagens relacionais (se não a mais importante) Exemplos de SGBD que utilizam SQL Oracle Informix

Leia mais

Está apto a utilizar o sistema, o usuário que tenha conhecimentos básicos de informática e navegação na internet.

Está apto a utilizar o sistema, o usuário que tenha conhecimentos básicos de informática e navegação na internet. 1. Descrição Geral Este manual descreve as operações disponíveis no módulo VTWEB Client, cuja finalidade é gerenciar cadastros de funcionários, realização de pedidos e controle financeiro dos pedidos.

Leia mais

SQL. Curso Prático. Celso Henrique Poderoso de Oliveira. Novatec

SQL. Curso Prático. Celso Henrique Poderoso de Oliveira. Novatec SQL Curso Prático Celso Henrique Poderoso de Oliveira Novatec 1 Introdução Desde o início da utilização dos computadores, sabemos que um sistema é feito para aceitar entrada de dados, realizar processamentos

Leia mais

Sistema de Controle de Solicitação de Desenvolvimento

Sistema de Controle de Solicitação de Desenvolvimento Sistema de Controle de Solicitação de Desenvolvimento Introdução O presente documento descreverá de forma objetiva as principais operações para abertura e consulta de uma solicitação ao Setor de Desenvolvimento

Leia mais

02 - Usando o SiteMaster - Informações importantes

02 - Usando o SiteMaster - Informações importantes 01 - Apresentação do SiteMaster - News Edition O SiteMaster foi desenvolvido para ser um sistema simples de gerenciamento de notícias, instalado em seu próprio computador e com configuração simplificada,

Leia mais

FERRAMENTAS DE COLABORAÇÃO CORPORATIVA

FERRAMENTAS DE COLABORAÇÃO CORPORATIVA FERRAMENTAS DE COLABORAÇÃO CORPORATIVA Compartilhamento de Arquivos no Google Drive Sumário (Clique sobre a opção desejada para ir direto à página correspondente) Utilização do Google Grupos Introdução...

Leia mais

Sistema de de Bilhetagem Eletrônica MANUAL MÓDULO PDV

Sistema de de Bilhetagem Eletrônica MANUAL MÓDULO PDV Sistema de de Eletrônica SETRANSP DOTFLEX MANUAL MÓDULO PDV REGIÃO MANUAL METROPOLITANA MÓDULO PESSOA Revisão JURÍDICA 02 / Setembro SBE de 2008 - DOTFLEX Revisão 00 / Março de 2009 MANUAL MÓDULO EMPRESA

Leia mais

GUIA PRÁTICO DE INSTALAÇÃO

GUIA PRÁTICO DE INSTALAÇÃO GUIA PRÁTICO DE INSTALAÇÃO 1 1. PROCEDIMENTOS ANTES DA INSTALAÇÃO SIGEP WEB - Gerenciador de Postagens dos Correios 1.1. Solicitar Senha para Fechamento de PLP Solicitar ao seu consultor comercial a senha

Leia mais

Manual de Instalação do e.sic - Sistema Municipal de Informações ao Cidadão

Manual de Instalação do e.sic - Sistema Municipal de Informações ao Cidadão Manual de Instalação do e.sic - Sistema Municipal de Informações ao Cidadão Companhia de Processamento de Dados do Estado de São Paulo DDS Diretoria de Desenvolvimento de Sistemas SDS Superintendência

Leia mais

Lição 1 - Criação de campos calculados em consultas

Lição 1 - Criação de campos calculados em consultas 1 de 5 21-08-2011 22:15 Lição 1 - Criação de campos calculados em consultas Adição de Colunas com Valores Calculados: Vamos, inicialmente, relembrar, rapidamente alguns conceitos básicos sobre Consultas

Leia mais

GEPLANES GESTÃO DE PLANEJAMENTO ESTRATÉGICO MANUAL DE INSTALAÇÃO DO GEPLANES EM UM AMBIENTE WINDOWS

GEPLANES GESTÃO DE PLANEJAMENTO ESTRATÉGICO MANUAL DE INSTALAÇÃO DO GEPLANES EM UM AMBIENTE WINDOWS GEPLANES GESTÃO DE PLANEJAMENTO ESTRATÉGICO MANUAL DE INSTALAÇÃO DO GEPLANES EM UM AMBIENTE WINDOWS JANEIRO 2015 1 Sumário 1. Introdução...3 2. Pré-Requisitos...4 2.1. Instalação do Java Development Kit

Leia mais

MANUAL DE INSTALAÇÃO E CONFIGURAÇÃO

MANUAL DE INSTALAÇÃO E CONFIGURAÇÃO MANUAL DE INSTALAÇÃO E CONFIGURAÇÃO Utilização do Certificado Tipo A3 Com Navegador Mozilla Firefox 35.0.1 1/17 Controle de Revisões Tabela 1: Controle de alterações do documento Nome do responsável Assunto/

Leia mais

MANUAL DE INSTALAÇÃO 1) ORACLE VIRTUALBOX ; 2) MICROSOFT WINDOWS ; 3) SUMÁRIOS GENEPLUS.

MANUAL DE INSTALAÇÃO 1) ORACLE VIRTUALBOX ; 2) MICROSOFT WINDOWS ; 3) SUMÁRIOS GENEPLUS. PROGRAMA EMBRAPA DE MELHORAMENTO DE GADO DE CORTE MANUAL DE INSTALAÇÃO 1) ORACLE VIRTUALBOX ; 2) MICROSOFT WINDOWS ; 3) SUMÁRIOS GENEPLUS. MANUAL DE INSTALAÇÃO: 1) ORACLE VIRTUALBOX ; 2) MICROSOFT WINDOWS

Leia mais

Faça um Site PHP 5.2 com MySQL 5.0 Comércio Eletrônico

Faça um Site PHP 5.2 com MySQL 5.0 Comércio Eletrônico Editora Carlos A. J. Oliviero Faça um Site PHP 5.2 com MySQL 5.0 Comércio Eletrônico Orientado por Projeto 1a Edição 2 Reimpressão São Paulo 2011 Érica Ltda. Noções Livrarse Preparação muitas muita Sumário

Leia mais

Instalação: permite baixar o pacote de instalação do agente de coleta do sistema.

Instalação: permite baixar o pacote de instalação do agente de coleta do sistema. O que é o projeto O PROINFODATA - programa de coleta de dados do projeto ProInfo/MEC de inclusão digital nas escolas públicas brasileiras tem como objetivo acompanhar o estado de funcionamento dos laboratórios

Leia mais

Prof.: Clayton Maciel Costa clayton.maciel@ifrn.edu.br

Prof.: Clayton Maciel Costa clayton.maciel@ifrn.edu.br Programação com acesso a BD Prof.: Clayton Maciel Costa clayton.maciel@ifrn.edu.br 1 Modelos de Dados, Esquemas e Instâncias 2 Modelos de Dados, Esquemas e Instâncias Modelo de dados: Conjunto de conceitos

Leia mais

Manual de backup do banco de dados PostgreSQL - Versão 2. Setembro-2011

Manual de backup do banco de dados PostgreSQL - Versão 2. Setembro-2011 Manual de backup do banco de dados PostgreSQL - Versão 2 Setembro-2011 E-Sales Oobj Tecnologia da Informação Av. D, n. 246, Qd. A-04, Lt.02, Ap. 02, Jardim Goiás Goiânia/GO, CEP: 74805-090 Fone: (62) 3086-5750

Leia mais

Atualizações de Software Guia do Usuário

Atualizações de Software Guia do Usuário Atualizações de Software Guia do Usuário Copyright 2009 Hewlett-Packard Development Company, L.P. Windows e Windows Vista são marcas registradas da Microsoft Corporation nos EUA. Aviso sobre o produto

Leia mais

TUTORIAL DE CRIAÇÃO DE BANCO DE DADOS ESPACIAL

TUTORIAL DE CRIAÇÃO DE BANCO DE DADOS ESPACIAL TUTORIAL DE CRIAÇÃO DE BANCO DE DADOS ESPACIAL Este tutorial tem por objetivo explicar a criação de bancos de dados espaciais usando o Postgis que é a extensão espacial do PostgreSQL. Os passos que serão

Leia mais

Treinamento sobre SQL

Treinamento sobre SQL Treinamento sobre SQL Como Usar o SQL Os dois programas que você mais utilizara no SQL Server são: Enterprise Manager e Query Analyzer. No Enterprise Manager, você pode visualizar e fazer alterações na

Leia mais

Fox Gerenciador de Sistemas

Fox Gerenciador de Sistemas Fox Gerenciador de Sistemas Índice 1. FOX GERENCIADOR DE SISTEMAS... 4 2. ACESSO AO SISTEMA... 5 3. TELA PRINCIPAL... 6 4. MENU SISTEMAS... 7 5. MENU SERVIÇOS... 8 5.1. Ativação Fox... 8 5.2. Atualização

Leia mais

Introdução à Banco de Dados. Nathalia Sautchuk Patrício

Introdução à Banco de Dados. Nathalia Sautchuk Patrício Introdução à Banco de Dados Nathalia Sautchuk Patrício Histórico Início da computação: dados guardados em arquivos de texto Problemas nesse modelo: redundância não-controlada de dados aplicações devem

Leia mais

AP_ Conta Aplicativo para digitação e envio de contas médicas no padrão TISS

AP_ Conta Aplicativo para digitação e envio de contas médicas no padrão TISS AP_ Conta Aplicativo para digitação e envio de contas médicas no padrão TISS Manual de Instalação Tempro Software StavTISS Sumário 1. INTRODUÇÃO... 2 2. REQUISITOS DO SISTEMA... 3 3. INSTALAÇÃO... 4 4.

Leia mais

PostgreSQL & PostGIS: Instalação do Banco de Dados Espacial no Windows 7

PostgreSQL & PostGIS: Instalação do Banco de Dados Espacial no Windows 7 PostgreSQL & PostGIS: Instalação do Banco de Dados Espacial no Windows 7 PostgreSQL & PostGIS: Instalação do Banco de Dados Espacial no Windows 7 Sobre o PostGIS PostGIS é um Add-on (complemento, extensão)

Leia mais

INTRODUÇÃO BANCO DE DADOS. Prof. Msc. Hélio Esperidião

INTRODUÇÃO BANCO DE DADOS. Prof. Msc. Hélio Esperidião INTRODUÇÃO BANCO DE DADOS Prof. Msc. Hélio Esperidião BANCO DE DADOS Podemos entender por banco de dados qualquer sistema que reúna e mantenha organizada uma série de informações relacionadas a um determinado

Leia mais

Introdução à Engenharia da Computação. Banco de Dados Professor Machado

Introdução à Engenharia da Computação. Banco de Dados Professor Machado Introdução à Engenharia da Computação Banco de Dados Professor Machado 1 Sistemas isolados Produção Vendas Compras Banco de Dados Produtos... Banco de Dados Produtos... Banco de Dados Produtos... Desvantagens:

Leia mais

Instalando e Atualizando a Solução... 3. Arquivos de Instalação... 4. Instalação do Servidor de Aplicação... 7. Instalação JDK...

Instalando e Atualizando a Solução... 3. Arquivos de Instalação... 4. Instalação do Servidor de Aplicação... 7. Instalação JDK... Instalando e Atualizando a Solução... 3 Arquivos de Instalação... 4 Instalação do Servidor de Aplicação... 7 Instalação JDK... 7 Instalação Apache Tomcat... 8 Configurando Tomcat... 9 Configurando Banco

Leia mais

MANUAL DE INSTALAÇÃO E CONFIGURAÇÃO. Motor Periférico Versão 8.0

MANUAL DE INSTALAÇÃO E CONFIGURAÇÃO. Motor Periférico Versão 8.0 MANUAL DE INSTALAÇÃO E CONFIGURAÇÃO Motor Periférico Versão 8.0 1. Apresentação... 3 2. Instalação do Java... 3 2.1 Download e Instalação... 3 2.2 Verificar Instalação... 3 3. Download do Motor Periférico...

Leia mais

http://aurelio.net/vim/vim-basico.txt Entrar neste site/arquivo e estudar esse aplicativo Prof. Ricardo César de Carvalho

http://aurelio.net/vim/vim-basico.txt Entrar neste site/arquivo e estudar esse aplicativo Prof. Ricardo César de Carvalho vi http://aurelio.net/vim/vim-basico.txt Entrar neste site/arquivo e estudar esse aplicativo Administração de Redes de Computadores Resumo de Serviços em Rede Linux Controlador de Domínio Servidor DNS

Leia mais

Revisão: Introdução. - Integração com o AutoManager; 1 Atualização de versão do banco de dados PostgreSQL

Revisão: Introdução. - Integração com o AutoManager; 1 Atualização de versão do banco de dados PostgreSQL Urano Indústria de Balanças e Equipamentos Eletrônicos Ltda. Rua Irmão Pedro 709 Vila Rosa Canoas RS Fone: (51) 3462.8700 Fax: (51) 3477.4441 Características do Software Urano Integra 2.2 Data: 12/05/2014

Leia mais

BH PARK Software de Estacionamento

BH PARK Software de Estacionamento BH PARK Software de Estacionamento WWW.ASASSOFTWARES.COM.BR Índice 1 Informações Básicas... 1 1.1 Sair da aplicação... 1 1.2 Travar aplicação... 1 1.3 Licenciando a aplicação... 1 1.4 Contrato de Manutenção...

Leia mais

WF Processos. Manual de Instruções

WF Processos. Manual de Instruções WF Processos Manual de Instruções O WF Processos é um sistema simples e fácil de ser utilizado, contudo para ajudar os novos usuários a se familiarizarem com o sistema, criamos este manual. Recomendamos

Leia mais

Anote aqui as informações necessárias:

Anote aqui as informações necessárias: banco de mídias Anote aqui as informações necessárias: URL E-mail Senha Sumário Instruções de uso Cadastro Login Página principal Abrir arquivos Área de trabalho Refine sua pesquisa Menu superior Fazer

Leia mais

Aplicativo da Manifestação do Destinatário. Manual

Aplicativo da Manifestação do Destinatário. Manual Aplicativo da Manifestação do Destinatário Manual Novembro de 2012 1 Sumário 1 Aplicativo de Manifestação do Destinatário...4 2 Iniciando o aplicativo...4 3 Menus...5 3.1 Manifestação Destinatário...5

Leia mais

SuperStore Sistema para Automação de Óticas

SuperStore Sistema para Automação de Óticas SuperStore Sistema para Automação de Óticas MANUAL DO USUÁRIO (Administrador) Contato: (34) 9974-7848 http://www.superstoreudi.com.br superstoreudi@superstoreudi.com.br SUMÁRIO 1 ACESSANDO O SISTEMA PELA

Leia mais

UNIVERSIDADE FEDERAL DO VALE DO SÃO FRANCISCO UNIVASF SECRETARIA DE TECNOLOGIA DA INFORMAÇÃO STI DEPARTAMENTO DE SISTEMAS DE INFORMAÇÕES

UNIVERSIDADE FEDERAL DO VALE DO SÃO FRANCISCO UNIVASF SECRETARIA DE TECNOLOGIA DA INFORMAÇÃO STI DEPARTAMENTO DE SISTEMAS DE INFORMAÇÕES UNIVERSIDADE FEDERAL DO VALE DO SÃO FRANCISCO UNIVASF SECRETARIA DE TECNOLOGIA DA INFORMAÇÃO STI DEPARTAMENTO DE SISTEMAS DE INFORMAÇÕES MANUAL DO USUÁRIO SISTEMA DE SUPORTE DA PREFEITURA UNIVERSITÁRIA

Leia mais

Polycom RealPresence Content Sharing Suite Guia rápido do usuário

Polycom RealPresence Content Sharing Suite Guia rápido do usuário Polycom RealPresence Content Sharing Suite Guia rápido do usuário Versão 1.4 3725-03261-003 Rev.A Dezembro de 2014 Neste guia, você aprenderá a compartilhar e visualizar conteúdo durante uma conferência

Leia mais

Manual de Instalação. SafeSign Standard 3.0.77. (Para MAC OS 10.7)

Manual de Instalação. SafeSign Standard 3.0.77. (Para MAC OS 10.7) SafeSign Standard 3.0.77 (Para MAC OS 10.7) 2/23 Sumário 1 Introdução... 3 2 Pré-Requisitos Para Instalação... 3 3 Ambientes Homologados... 4 4 Hardware Homologado... 4 5 Instruções de Instalação... 5

Leia mais

Procedimentos para Instalação do SISLOC

Procedimentos para Instalação do SISLOC Procedimentos para Instalação do SISLOC Sumário 1. Informações Gerais...3 2. Instalação do SISLOC...3 Passo a passo...3 3. Instalação da Base de Dados SISLOC... 11 Passo a passo... 11 4. Instalação de

Leia mais

Lógica de Programação

Lógica de Programação Lógica de Programação Softblue Logic IDE Guia de Instalação www.softblue.com.br Sumário 1 O Ensino da Lógica de Programação... 1 2 A Ferramenta... 1 3 Funcionalidades... 2 4 Instalação... 3 4.1 Windows...

Leia mais

UNIVERSIDADE FEDERAL DE GOIÁS CERCOMP (CENTRO DE RECURSOS COMPUTACIONAIS) TUTORIAL DE USO DO WEBMAIL - UFG

UNIVERSIDADE FEDERAL DE GOIÁS CERCOMP (CENTRO DE RECURSOS COMPUTACIONAIS) TUTORIAL DE USO DO WEBMAIL - UFG UNIVERSIDADE FEDERAL DE GOIÁS CERCOMP (CENTRO DE RECURSOS COMPUTACIONAIS) TUTORIAL DE USO DO WEBMAIL - UFG Página 1 de 26 Sumário Introdução...3 Layout do Webmail...4 Zimbra: Nível Intermediário...5 Fazer

Leia mais

Manual do Painel Administrativo

Manual do Painel Administrativo Manual do Painel Administrativo versão 1.0 Autores César A Miggiolaro Marcos J Lazarin Índice Índice... 2 Figuras... 3 Inicio... 5 Funcionalidades... 7 Analytics... 9 Cidades... 9 Conteúdo... 10 Referência...

Leia mais

Manual QuotServ Todos os direitos reservados 2006/2007

Manual QuotServ Todos os direitos reservados 2006/2007 Todos os direitos reservados 2006/2007 Índice 1. Descrição 3 2. Instalação 3 3. Configurações 4 4. Usando arquivo texto delimitado 5 5. Usando arquivo texto com posições fixas 7 6. Usando uma conexão MySQL

Leia mais

CONTRA CONTROLE DE ACESSOS E MODULARIZADOR DE SISTEMAS

CONTRA CONTROLE DE ACESSOS E MODULARIZADOR DE SISTEMAS MINISTÉRIO DO DESENVOLVIMENTO AGRÁRIO SUBSECRETARIA DE PLANEJAMENTO, ORÇAMENTO E ADMINISTRAÇÃO COORDENAÇÃO-GERAL DE MODERNIZAÇÃO E INFORMÁTICA CONTRA CONTROLE DE ACESSOS E MODULARIZADOR DE SISTEMAS MANUAL

Leia mais

2008.1 SQL. Autor: Renata Viegas

2008.1 SQL. Autor: Renata Viegas SQL Autor: Renata Viegas A linguagem SQL SQL - Structured Query Language. Foi definida nos laboratórios de pesquisa da IBM em San Jose, California, em 1974. Teve seus fundamentos no modelo relacional Sua

Leia mais

Ferramenta: Spider-CL. Manual do Usuário. Versão da Ferramenta: 1.1. www.ufpa.br/spider

Ferramenta: Spider-CL. Manual do Usuário. Versão da Ferramenta: 1.1. www.ufpa.br/spider Ferramenta: Spider-CL Manual do Usuário Versão da Ferramenta: 1.1 www.ufpa.br/spider Histórico de Revisões Data Versão Descrição Autor 14/07/2009 1.0 15/07/2009 1.1 16/07/2009 1.2 20/05/2010 1.3 Preenchimento

Leia mais

Sua mais nova e completa ferramenta

Sua mais nova e completa ferramenta TUTORIAL PORTAL CLIENTE LUCIOS Sua mais nova e completa ferramenta SOLICITE SEU ACESSO PRÉ-REQUISITO NAVEGADOR IE MICROSOFT O Navegador IE - Internet Explore, vem instalado como padrão em qualquer distribuição

Leia mais

Banco de Dados Microsoft Access: Criar tabelas

Banco de Dados Microsoft Access: Criar tabelas Banco de Dados Microsoft Access: Criar s Vitor Valerio de Souza Campos Objetivos do curso 1. Criar uma no modo de exibição Folha de Dados. 2. Definir tipos de dados para os campos na. 3. Criar uma no modo

Leia mais

Escritório Virtual Administrativo

Escritório Virtual Administrativo 1 Treinamento Módulos Escritório Virtual Administrativo Sistema Office Instruções para configuração e utilização do módulo Escritório Virtual e módulo Administrativo do sistema Office 2 3 1. Escritório

Leia mais

Instruções de Instalação do IBM SPSS Modeler (Licença Simultânea)

Instruções de Instalação do IBM SPSS Modeler (Licença Simultânea) Instruções de Instalação do IBM SPSS Modeler (Licença Simultânea) Índice Instruções de Instalação....... 1 Requisitos de Sistema........... 1 Instalando............... 1 Instalando a Partir de um Arquivo

Leia mais

MANUAL DO GERENCIADOR ESCOLAR WEB

MANUAL DO GERENCIADOR ESCOLAR WEB CNS LEARNING MANUAL DO GERENCIADOR ESCOLAR WEB Versão Online 13 Índice ÍNDICE... 1 VISÃO GERAL... 2 CONCEITO E APRESENTAÇÃO VISUAL... 2 PRINCIPAIS MÓDULOS... 3 ESTRUTURAÇÃO... 3 CURSOS... 4 TURMAS... 4

Leia mais

Administração do Windows Server 2003

Administração do Windows Server 2003 Administração do Windows Server 2003 Visão geral O Centro de Ajuda e Suporte do Windows 2003 Tarefas do administrador Ferramentas administrativas Centro de Ajuda e Suporte do 2003 Usando o recurso de pesquisa

Leia mais

Principais Comandos SQL Usados no MySql

Principais Comandos SQL Usados no MySql Principais Comandos SQL Usados no MySql O que é um SGBD? Um Sistema Gerenciador de Banco de Dados (como no Brasil) ou Sistema Gestor de Base de Dados (SGBD) é o conjunto de programas de computador (softwares)

Leia mais

Programação Orientada a Objetos com PHP & MySQL Cookies e Sessões. Prof. MSc. Hugo Souza

Programação Orientada a Objetos com PHP & MySQL Cookies e Sessões. Prof. MSc. Hugo Souza Programação Orientada a Objetos com PHP & MySQL Cookies e Sessões Prof. MSc. Hugo Souza Se você precisar manter informações sobre seus usuários enquanto eles navegam pelo seu site, ou até quando eles saem

Leia mais

Banco de Dados Microsoft Access: Criar tabelas. Vitor Valerio de Souza Campos

Banco de Dados Microsoft Access: Criar tabelas. Vitor Valerio de Souza Campos Banco de Dados Microsoft Access: Criar tabelas Vitor Valerio de Souza Campos Objetivos do curso 1. Criar uma tabela no modo de exibição Folha de Dados. 2. Definir tipos de dados para os campos na tabela.

Leia mais

FERRAMENTA WEB PARA MODELAGEM LÓGICA EM PROJETOS DE BANCOS DE DADOS RELACIONAIS

FERRAMENTA WEB PARA MODELAGEM LÓGICA EM PROJETOS DE BANCOS DE DADOS RELACIONAIS FERRAMENTA WEB PARA MODELAGEM LÓGICA EM PROJETOS DE BANCOS DE DADOS RELACIONAIS PAULO ALBERTO BUGMANN ORIENTADOR: ALEXANDER ROBERTO VALDAMERI Roteiro Introdução Objetivos Fundamentação teórica Desenvolvimento

Leia mais

Professor: Macêdo Firmino Disciplina: Sistemas Operacionais de Rede

Professor: Macêdo Firmino Disciplina: Sistemas Operacionais de Rede Professor: Macêdo Firmino Disciplina: Sistemas Operacionais de Rede O sistema de nome de domínio (DNS) é um sistema que nomeia computadores e serviços de rede e é organizado em uma hierarquia de domínios.

Leia mais

Prof. Omero, pág. 63. Banco de Dados InterBase.

Prof. Omero, pág. 63. Banco de Dados InterBase. Prof. Omero, pág. 63 O que é o InterBase? O InterBase é um SGBDR - Sistema Gerenciador de Banco de Dados Cliente/Servidor Relacional 1 que está baseado no padrão SQL ANSI-9, de alta performance, independente

Leia mais

INTRODUÇÃO: 1 - Conectando na sua conta

INTRODUÇÃO: 1 - Conectando na sua conta INTRODUÇÃO: Com certeza a reação da maioria dos que lerem esse mini manual e utilizarem o servidor vão pensar: "mas porque eu tenho que usar um console se em casa eu tenho uma interface gráfica bonito

Leia mais

Instalando, configurando e utilizando a Área de trabalho remota via Web

Instalando, configurando e utilizando a Área de trabalho remota via Web Página 1 de 14 Mapa do Site Brasil Home Worldwide Procurar no Microsoft.com por: Ir Home TechNet USA MS Brasil Desenvolvedores Sharepedia TopIT Fale Conosco Meu TechNet Pesquisa rápida TechNet Boletins

Leia mais

Disciplina: Unidade III: Prof.: E-mail: Período:

Disciplina: Unidade III: Prof.: E-mail: Período: Encontro 08 Disciplina: Sistemas de Banco de Dados Unidade III: Modelagem Lógico de Dados Prof.: Mario Filho E-mail: pro@mariofilho.com.br Período: 5º. SIG - ADM Relembrando... Necessidade de Dados Projeto

Leia mais

Microsoft Access XP Módulo Um

Microsoft Access XP Módulo Um Microsoft Access XP Módulo Um Neste primeiro módulo de aula do curso completo de Access XP vamos nos dedicar ao estudo de alguns termos relacionados com banco de dados e as principais novidades do novo

Leia mais

Prof. Marcelo Machado Cunha www.marcelomachado.com mcelobr@yahoo.com.br

Prof. Marcelo Machado Cunha www.marcelomachado.com mcelobr@yahoo.com.br Prof. Marcelo Machado Cunha www.marcelomachado.com mcelobr@yahoo.com.br Ementa Introdução a Banco de Dados (Conceito, propriedades), Arquivos de dados x Bancos de dados, Profissionais de Banco de dados,

Leia mais

Instalação e utilização do Document Distributor

Instalação e utilização do Document Distributor Para ver ou fazer o download desta ou de outras publicações do Lexmark Document Solutions, clique aqui. Instalação e utilização do Document Distributor O Lexmark Document Distributor é composto por pacotes

Leia mais

Personata Recorder. Manual de Instalação e Configuração

Personata Recorder. Manual de Instalação e Configuração Personata Recorder Manual de Instalação e Configuração Julho / 2013 1 Índice 1- Pré-requisitos......3 2 Verificação do Hardware......3 3 Instalação......5 4 Configuração Inicial......8 4.1 Localização......8

Leia mais

Satélite. Manual de instalação e configuração. CENPECT Informática www.cenpect.com.br cenpect@cenpect.com.br

Satélite. Manual de instalação e configuração. CENPECT Informática www.cenpect.com.br cenpect@cenpect.com.br Satélite Manual de instalação e configuração CENPECT Informática www.cenpect.com.br cenpect@cenpect.com.br Índice Índice 1.Informações gerais 1.1.Sobre este manual 1.2.Visão geral do sistema 1.3.História

Leia mais

Conceitos de Banco de Dados

Conceitos de Banco de Dados Conceitos de Banco de Dados Autor: Luiz Antonio Junior 1 INTRODUÇÃO Objetivos Introduzir conceitos básicos de Modelo de dados Introduzir conceitos básicos de Banco de dados Capacitar o aluno a construir

Leia mais

Listando itens em ComboBox e gravando os dados no Banco de Dados MySQL.

Listando itens em ComboBox e gravando os dados no Banco de Dados MySQL. Listando itens em ComboBox e gravando os dados no Banco de Dados MySQL. Prof. Vitor H. Migoto de Gouvêa Colégio IDESA 2012 Edição 7 Listando e Gravando Listando itens em ComboBox e gravando os dados no

Leia mais

IBM SPSS Modeler - Princípios Básicos do R: Instruções de Instalação

IBM SPSS Modeler - Princípios Básicos do R: Instruções de Instalação IBM SPSS Modeler - Princípios Básicos do R: Instruções de Instalação Índice IBM SPSS Modeler - Essentials for R: Instruções de Instalação....... 1 IBM SPSS Modeler - Essentials for R: Instruções de Instalação...............

Leia mais

Disciplina: Tecnologias de Banco de Dados para SI s

Disciplina: Tecnologias de Banco de Dados para SI s Curso de Gestão em SI Disciplina: Tecnologias de Banco de Dados para SI s Rodrigo da Silva Gomes (Extraído do material do prof. Ronaldo Melo - UFSC) Banco de Dados (BD) BD fazem parte do nosso dia-a-dia!

Leia mais