Instituto Superior de Engenharia do Porto. Departamento de Engenharia Informática

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

Download "Instituto Superior de Engenharia do Porto. Departamento de Engenharia Informática"

Transcrição

1 Instituto Superior de Engenharia do Porto Departamento de Engenharia Informática Autor: Miguel João Vieira Carvalho Versão: 1.0 Data: Julho de 2003

2 Agradecimentos Agradecimentos Gostava de agradecer de forma muito especial ao meu orientador, o Eng. Jorge Coelho, pelo empenho que colocou neste projecto e pelas críticas e correcções que ao longo das treze versões do documento foi sempre fazendo. Gostava também de agradecer ao Eng. Alexandre Bragança pelo facto de ter-me ajudado logo desde o início a seleccionar os temas que deveriam ser abordados e também por ter sido um dos meus professores de bases de dados. Quero também agradecer ao Eng. Aníbal Oliveira, por me ter feito entender na cadeira de Bases de Dados I, de forma tão simples e eficaz, muitos dos conceitos que foram apresentados ao longo deste documento. Para finalizar queria agradecer ao meu irmão, João Carvalho, pelo apoio prestado na elaboração de alguns elementos gráficos. Página ii

3 Índice Índice 1. Conceitos Básicos Breve História do Aparecimento das Bases de Dados Requisitos Fundamentais de uma Base de Dados Segurança Integridade Controlo da Concorrência Recuperação/Tolerância a Falhas SGBD Vs Sistema de Gestão de Ficheiros Abstracção dos Dados Independência Programa/Dados Partilha dos Dados Diminuição da Redundância Desenvolvimento e Manutenção Integridade dos Dados Base de dados Relacionais SQL Aspectos do SQL Linguagem de Definição de Dados Linguagem de Manipulação de Dados Triggers Gestão de Transacções SQL Introdução SQL no PostgreSQL Instalação Linux 39 Página iii

4 Índice 3.1. Instalação Linux Através de RPM Instalação Linux Através de Source Code Como utilizar Clientes psql pgaccess pgadmin/ii winsql Como Utilizar Exemplo Prático Criação da Conta de Acesso Criação da Base de Dados Autorizar o Utilizador Activar a Nova Configuração Instalação do Driver ODBC do PostgreSQL Criar o DSN Programar com o PostgreSQL A Interface de Programação libpq Gestão de Ligações A Função PQconnectdb A função PQsetdbLogin Funções Para Processamento Síncrono de Queries A Função PQexec A Função PQresultStatus A Função PQclear Funções Para Obtenção de Informação do Resultado Funções Para Obtenção de Valores do Resultado Funções Para Processamento Assíncrono de Queries 67 Página iv

5 Índice 6. Funcionalidades Avançadas Índices Aparecimento dos Índices Os Índices nos SGDBs Representação por Árvores B Representação por Hashing Dicas para Uso de Índices Índices no PostgreSQL Índices Mono coluna Índices Multi coluna Índices Únicos Índices Funcionais Índices Parciais Avaliar o Uso dos Índices Stored Procedures Vantagens/Desvantagens A linguagem PL/pgSQL A linguagem PL/pgSQL Triggers Triggers no PostgreSQL Controlo da Concorrência Transacções Transacções no PostgreSQL Níveis de Isolamento Campos Binários (BLOBs) BLOBs no PostgreSQL Usar o PostgreSQL com o PHP na Web 111 Página v

6 Índice 8.1. Arquitectura Tecnológica Acesso a Campos Binários em PHP Comparação Entre SGBDs Comparação MySQL com PostgreSQL Conclusão Bibliografia Exemplo de execução síncrona usando libpq Exemplo de execução assíncrona usando libpq Modelo de dados de referência ao documento 143 Página vi

7 Índice de Figuras Índice de Figuras Figura 1 Resultado da execução do comando \d clientes 47 Figura 2 Ecrã pgaccess (Linux) que mostra o conteúdo de uma tabela 48 Figura 3 Ecrã principal do pgadminii no Windows XP 49 Figura 4 Ecrã do winsql que mostra a parte do dicionário de dados 50 Figura 5 Exemplo de um ficheiro pg_hba.conf 53 Figura 6 Exemplo de um ficheiro pg_hba.conf com métodos de autenticação password e md5 54 Figura 7 Secção (tab) UserDSN 58 Figura 8 Janela de criação de um DSN 58 Figura 9 Configuração de um DSN para o PostgreSQL 59 Figura 10 Caminho simplificado a percorrer desde um query até atingir os dados em disco 70 Figura 11 Camadas a percorrer para aceder aos dados através de um índice 72 Figura 12 Exemplo de uma árvore B+ de ordem dois 73 Figura 13 1º passo na inserção dum nó cheio 74 Figura 14 Divisão da raiz causada pelo novo nó 74 Figura 15 - Versão final da árvore após inserção do elemento 8* 75 Figura 16 Exemplo de uma tabela de hash 76 Figura 17 Função de hash, após a inserção das chaves 20 e Figura 18 Tabela de hash com overflow no bucket 3 77 Figura 19 Estrutura da tabela clientes 82 Figura 20 Exemplo de um resultado do planner a usar o índice ndx_cl_nome_idade_cp 83 Figura 21 - Exemplo de um resultado do planner que não pode usar o índice ndx_cl_nome_idade_cp 84 Figura 22 - Esquema simplificado da arquitectura tecnológica usando o PHP e PostgreSQL 111 Figura 23 - Estrutura da tabela imagens 115 Figura 24 Resultados do teste de concorrência Read/Update. Fonte: [33] 124 Figura 25 Resultados da página Bug Tracker. Fonte: [33] 125 Figura 26 Resultado do teste Forum. Fonte: [33] 126 Página vii

8 Índice de Tabelas Índice de Tabelas Tabela 1 Exemplos de domínios 23 Tabela 2 Relação entre tributes e tuplos 23 Tabela 3 Lista dos comandos internos do psql 47 Tabela 4 Informação necessária para a criação de um DSN 59 Tabela 5 As interfaces de programação (API) do PostgreSQL 61 Tabela 6 Alguns valores possíveis para os estados da execução de um query 65 Tabela 7 Funções para obtenção de informação sobre o resultado 66 Tabela 8 Funções para obtenção de valores do resultado 67 Tabela 9 Dicas para uso de índices 80 Tabela 10 Relação entre o tipo de índice, operadores suportados e aplicação prática 81 Tabela 11 Género de índices suportados 81 Tabela 12 Relação entre o nível de isolamento e os três fenómenos ligados às transacções 105 Tabela 13 Bytes que necessitam de tratmento especial na inserção 107 Tabela 14 Funções para tratamento anterior e posterior de BLOBs 108 Tabela 15 Exemplo código PHP para extrair bytes de um campo bytea 114 Página viii

9 Índice de Exemplos Índice de Exemplos Exemplo 1 - Query SELECT simples 34 Exemplo 2 - Query SELECT com filtragem 34 Exemplo 3 - Query SELECT com filtragem de duas expressões lógicas e a cláusula BETWEEN 34 Exemplo 4 - Uso da função agregadora count num query SELECT 34 Exemplo 5 Uso da função agregadora count juntamente com a cláusula WHERE 34 Exemplo 6 - Uso das funções agregadoras min, max juntamente com a cláusula GROUP BY 35 Exemplo 7 - Uso de sub queries 35 Exemplo 8 - Uso da cláusula AS juntamente com um join 36 Exemplo 9 - Uso de um join através da cláusula WHERE 36 Exemplo 10 - Uso de um join através da cláusula WHERE 37 Exemplo 11 - Uso da cláusula NOT IN e EXCEPT 37 Exemplo 12 Parâmetros mais frequentes usados na compilação e seu significado 41 Página ix

10 Introdução Introdução Este documento pretende ser um tutorial sobre uma base de dados relacional e open source que se chama PostgreSQL. O público-alvo deste documento visa em primeiro lugar os principiantes na área das bases de dados, sem nunca esquecer os utilizadores mais avançados. No que respeita aos principiantes as abordagens dos assuntos, são feitas usando situações do dia a dia, seguidas de exemplos de utilização prática e de alguns conselhos para um melhor desempenho. Em relação aos utilizadores com mais experiência, estes podem sem dúvida tirar partido deste documento, uma vez que são abordados tópicos avançados. Para dar suporte aos exemplos apresentados, usar-se um modelo de dados que foi criado propositadamente no decurso deste trabalho. Este modelo diz respeito a um cinema. Este foi o modelo de dados que me pareceu mais apropriado tendo em conta o público alvo. No primeiro capítulo e a pensar nos utilizadores novatos, começa-se por explicar como é que apareceram bases de dados. São referidas características tais como: segurança, integridade, acessos concorrentes, recuperação e tolerância a falhas. Para explicar porque é que as bases de dados são importantes, faz-se uma analogia entre um sistema de gestão de ficheiros e um SGBD Sistema de Gestão de Bases de Dados a vários níveis: abstracção dos dados; independência entre aplicação e dados; partilha de dados; redução da redundância; integridade dos dados. Após vistas as diferenças entre os sistemas anteriores, é feita a definição de SQL Structured Query Language e abordadas as sub linguagens de definição e manipulação dos dados. São abordados mecanismos adicionais de manutenção de integridade, triggers e transacções. No segundo capítulo é feita uma introdução ao SQL em que são explicadas as instruções de definição e manipulação de dados. Relativamente às de definição de dados é explicada cada uma das instruções e significado de cada uma das várias cláusulas, usando-se como base a criação do modelo de dados de referência. Em relação às de manipulação, são abordadas as quatro instruções SQL (SELECT, INSERT, UPDATE e DELETE). Em relação à instrução de criação de registos é explicada cada uma Página 10

11 Introdução das várias formas que esta apresenta, juntamente com conselhos de utilização e exemplos. Uma vez completa a introdução ao SQL, são apresentadas as características da implementação do SQL a nível do PostgreSQL. A seguir dá-se início à apresentação de perguntas em linguagem natural e o equivalente em termos de SQL usando o modelo de referência. Ao longo das várias perguntas, vão sendo introduzidos lentamente conceitos relacionados com forma de escrita dos queries. Sempre que possível são apresentadas várias alternativas e respectivos prós e contras para o uso de cada uma, abordando-se cláusulas desde as mais simples até às mais complexas (ousa seja: INTERSECT, EXCEPT, etc.). No terceiro capítulo é explicado todo o processo de instalação passo a passo do PostgreSQL (acompanhado sempre que necessário de comentários) no Linux, quer através de packages binários (RPMs) quer através de código fonte. No quarto capítulo começa-se por enumerar alguns dos clientes Linux e Windows que se podem usar para ligar ao PostgreSQL. Para cada um destes são mostradas as características mais relevantes e ecrãs. Ainda relativamente aos clientes é explicado como usar o cliente psql o qual é instalado por omissão. Uma vez terminada a apresentação dos clientes, avança-se para um exemplo prático do que se deve fazer para se ter acesso ao PostgreSQL. Em concreto, explica-se a criação de utilizadores; criação de bases de dados; autorização de utilizadores usando os vários métodos de autenticação. A pensar nos utilizadores que queiram aceder ou que tenham instalado o PostgreSQL no Windows, é explicado passo a passo como é que se cria um Data Source Name para ser usado pelos clientes que suportem ODBC - Open Database Connectivity. No quinto capítulo abordam-se assuntos relacionados com a utilização de linguagens de programação com o PostgreSQL. Em concreto são identificadas todas as linguagens em que é possível usar o PostgreSQL. É explicado e demonstrado através de exemplos em linguagem C, o modo de funcionamento da interface de programação. Nos últimos destacam-se: funcionamento do estabelecimento de ligações quer assíncronas que síncronas; execução assíncrona e síncrona de queries; obtenção de resultados e informações relativas aos resultados. Página 11

12 Introdução No sexto capítulo são abordados todos os temas que julgo serem de uso mais avançado, entre o qual se destacam: os índices; stored procedures; triggers; controlo da concorrência e transacções. Em relação aos índices explicam-se quais os motivos que levaram ao seu aparecimento. Apresentam-se as camadas a percorrer desde o índice até aos dados para que o leitor fique com uma ideia de como estes funcionam. Demonstra-se de seguida dois métodos de indexação, recorrendo a árvores B+ e funções de hash. Relativamente a cada um dos métodos são explicados os mecanismos usados na implementação e enumeradas as vantagens e as desvantagens de cada um deles. Após a explicação dos métodos de indexação, fornecem-se dicas relativamente a situações em que é oportuna a criação de índices e em que situações não se devem sequer criar índices. Seguidamente são apresentados os tipos e géneros de índices suportados pelo PostgreSQL. Durante a apresentação de cada um dos géneros dos índices suportados, são mostrados exemplos de comandos para criação de índices dos respectivos tipos e géneros. São ainda demonstrados e explicados quais os factores que levam a que certos queries usem índices e outros não o usem. A demonstração do uso e não uso dos índices é feita através da análise de planos de execução de queries executados. No final da secção destinada aos índices são apresentadas formas de como se deve verificar e avaliar o uso dos índices. Em relação aos stored procedures é explicado o que são; quais as linguagens em que podem ser escritos; enumeradas as vantagens do uso destes. Após a apresentação dos stored procedures explica-se a linguagem procedimental PL/pgSQL recorrendo a analogias e a exemplos práticos simples. Após introduzida a linguagem e apresentada a estrutura base de um stored procedure em PL/pgSQL, são apresentados e explicados alguns tipos de dados especiais, passando de seguida para a definição e uso de cursores. No que se refere aos triggers, explica-se o que é, para que servem e como devem ser usados. Explicam-se os vários tipos de triggers suportados e os eventos que podem ser usados e relação que existe entre o eventos e certas variáveis especiais criadas pelo PostgreSQL. Após a definição dos eventos, avança-se para uma explicação prática de como se define um trigger numa tabela. Com a informação geral sobre triggers apresentada, são enumeradas algumas das funcionalidades que não são implementadas ou são implementadas parcialmente pelo PostgreSQL a nível dos triggers. Página 12

13 Introdução No que respeita ao controlo da concorrência, é explicado no início o que se entende por concorrência no âmbito dos SGBD. Seguidamente são apresentados os vários mecanismos de bloqueio (tabelas, data pages, registos) usando um exemplo do dia a dia como suporte. Ao longo da apresentação de cada um dos mecanismos de bloqueio são apresentadas vantagens e desvantagens e respectivas consequências do uso. Na abordagem das transacções é explicado o que é e para que servem, usando o contexto do exemplo usado nos mecanismos de controlo da concorrência. São apresentadas e explicadas as quatro características principais de uma transacção, mais concretamente o princípio ACID Atomicity, Consistency, Isolation and Durability. Seguidamente será explicado qual o mecanismo usado pelo PostgreSQL para que as transacções possam existir. Neste ponto é introduzido o conceito WAL Write Ahead Logging. De seguida é apresentada e explicada a forma como o PostgreSQL e outros SGBDs conseguem manter a consistência sem que seja necessário usar bloqueios quer de leitores quer escritores e vice-versa. Depois serão apresentados os dois níveis de isolamento que o PostgreSQL suporta. No sétimo capítulo e a pensar naqueles utilizadores que necessitem de armazenar conteúdos binários (BLOBs) dentro das bases de dados, é explicada a forma standard de o fazer e uma forma específica do PostgreSQL. No oitavo capítulo fala-se sobre a arquitectura tecnológica necessária à interligação entre PHP e PostgreSQL. Durante a apresentação, são desmistificados alguns erros frequentes relacionados com as ligações às bases de dados por parte dos utilizadores PHP. Seguidamente é explicado através de código PHP (comentado) e usando o exemplo de referência do documento, como é que se insere uma imagem num BLOB e como se extrai a mesma a partir da base de dados. No nono capítulo faz-se uma comparação entre SGBDs open source e entre o PostgreSQL e as implementações comerciais. Analisa-se alguns resultados de benchmark realizados entre o MySQL e o PostgreSQL. Mostram-se algumas opiniões de utilizadores que usam quer o MySQL quer o PostgreSQL. No décimo capítulo será apresentada a conclusão do documento. Uma vez o PostgreSQL é open source, será também abordado alguns dos receios dos utilizadores em usar software open source. Página 13

14 Introdução No décimo primeiro capítulo, são apresentadas as referências bibliográficas e links que são mencionados ao longo do documento. No décimo segundo capítulo são apresentados dois exemplos em linguagem C que usam quer ligações síncronas que assíncronas. São ainda apresentados nesses mesmos exemplos funções que permitem efectuar processamento síncrono e assíncrono de queries. No final deste encontram-se as instruções DDL usadas para criar o modelo de dados de suporte aos exemplos do documento. Página 14

15 Breve História do Aparecimento das Bases de Dados Requisitos Fundamentais de uma Base de Dados Segurança Integridade Controlo da Concorrência Recuperação/Tolerância a Falhas SGBD Vs Sistema de Gestão de Ficheiros Abstracção dos Dados Independência Programa/Dados Partilha dos Dados Diminuição da Redundância Desenvolvimento e Manutenção Integridade dos Dados Base de dados Relacionais SQL Linguagem de Definição de Dados Linguagem de Manipulação de Dados Triggers Gestão de Transacções 27

16 Conceitos Básicos - Capítulo 1 1. Conceitos Básicos Pretende-se com este capítulo abordar algumas das fases pelas quais o processamento da informação foi passando ao longo dos tempos. Uma vez mencionados os factores históricos, explica-se qual a finalidade de uma base de dados e quais os motivos pelos quais estas devem ser usadas. Por fim explica-se como é que se pode tirar o devido partido de uma base de dados. Os conceitos expostos neste capítulo serão amplamente usados ao longo de todo o documento, daí que é aconselhável que o leitor os compreenda Breve História do Aparecimento das Bases de Dados Desde sempre as pessoas tiveram necessidade de registar e alterar os dados inerentes às suas actividades. O meio empresarial foi aquele que mais sentiu a necessidade de guardar os dados relativos às actividades empresariais uma vez que os negócios dependiam desses mesmos dados armazenados. No início a organização era feita através de arquivos que no seu interior guardavam fichas de papel (organizadas de forma alfabética) que continham os dados relativos a cada transacção efectuada. Caso fosse necessário, por exemplo, saber qual o total da facturação para um dado momento da vida da empresa, era necessário que alguém somasse o valor de cada transacção para cada um dos clientes. De regra geral, cada departamento da empresa armazenava informação duplicada (ou seja: dados do cliente como morada, contactos, etc.). Todo este processo por mais organizado que o arquivo estivesse não apresentava um elevado grau de coerência e era como seria de esperar um processo bastante lento. Com o aparecimento dos primeiros computadores, apareceram aplicações que passaram a possibilitar a consulta da mesma informação (anteriormente armazenada em arquivo e pastas de papel) mas de forma mais rápida. Desta forma havia várias aplicações por departamento para fins específicos (facturar, consultar stocks, etc.). Estas aplicações tinham como base uma série de ficheiros que eram independentes entre cada uma das aplicações e que geralmente só podiam ser usados (salvo raras excepções) por um único programa. Página 16

17 Conceitos Básicos - Capítulo 1 Contudo, com o uso das novas aplicações o processo embora fosse mais simples e rápido continuava a haver a mesma informação (Por exemplo: morada, contactos dos clientes, etc.) em vários ficheiros diferentes. Caso um cliente tivesse por algum motivo que alterar a sua ficha de cliente, comunicava a alteração a alguém da empresa, mas essa informação actualizada, raramente era fornecida aos outros departamentos, causando desta forma incoerências. Embora o processo estivesse bastante melhor, sempre que era necessário criar uma listagem que ainda não tivesse sido criada anteriormente, era inevitável que alguém criasse um programa que através da consulta directa dos ficheiros fosse capaz de calcular os dados. Escusado será dizer que os recursos informáticos da altura não tinham as mesmas capacidades de processamento dos que existem actualmente. Por isso, mesmo que o processo fosse efectuado com o auxílio do computador este continuava a demorar algum tempo e nestas coisas de negócios tempo é dinheiro. Para combater os problemas mencionados até ao momento, as empresas viram necessidade de agrupar todos os dados relativos a cada departamento da empresa (Por exemplo: armazém, contabilidade, recursos humanos, etc.) num único sítio. Desta forma todo o processo passou a ser mais rápido e mais coerente. Uma base de dados não é mais do que um colecção de dados relativa a várias actividades de uma ou mais instituições Requisitos Fundamentais de uma Base de Dados Nesta secção serão abordadas características e conceitos que permitem compreender e tirar o máximo partido das bases de dados Segurança Da mesma forma que existe controlo de acessos aos recursos num sistema operativo multiutilizador, geralmente suportado por um login/password, os SGBD também usam esta forma de controlo de acessos para garantir um nível de segurança básico. Uma vez que este mecanismo de segurança apresenta um grau de controlo muito Página 17

18 Conceitos Básicos - Capítulo 1 baixo e por isso é pouco flexível, é necessário utilizar mecanismos mais sofisticados. Para que o grau de segurança seja aceitável é necessário que o SGBD permita definir para cada um dos utilizadores autorizados quais as regras de acesso: o Quem pode aceder utilizadores aos quais se vai dar acesso à informação. Por exemplo: o pessoal administrativo pode ter acesso, o pessoal do armazém também, mas os operários não. o Aceder a quê dependendo do grau de sensibilidade da informação armazenada na base de dados, poderá ser necessário autorizar e/ou negar acesso a certo tipo de informações para alguns utilizadores da base de dados. Por exemplo: o pessoal da contabilidade pode ver o salário de cada funcionário, mas os operários já não. o Aceder de que modo tendo em conta as características de cada utilizador, poderá ser necessário permitir um tipo de operações a uns e só alguns tipos de operações a outros. Por exemplo: os gestores de uma empresa só puderam consultar os dados, os funcionários administrativos só podem criar novos registos e o administrador da base de dados pode executar todo o tipo de operações Integridade Diz-se que uma base de dados está num estado de integridade quando a base de dados contem apenas dados que não contradigam a realidade que estão a representar. Por exemplo: uma empresa tem uma base de dados com dados relativos ao processo produtivo. Essa empresa tem três máquinas, a máquina A,B e C. Um dos operadores registou uma encomenda que será realizada na máquina X. A manutenção da integridade pressupõe proteger a base de dados de executar operações que tentem comprometer a realidade dos próprios dados. Trata-se por isso de um conjunto de medidas muito especial. Página 18

19 Conceitos Básicos - Capítulo 1 Desta forma todas as operações que ponham em causa a integridade da base de dados são regidas por um conjunto de regras a que se chamam restrições de integridade. Exemplos de algumas restrições de integridade: o Saldo de uma conta bancária superior ou igual a zero. o Na matrícula de um aluno, o nome não pode estar em branco. o Autorizar um aluno a fazer um exame de recurso se tiver efectuado o pagamento do pedido de exame Controlo da Concorrência É um dos factores mais importantes a ter em conta no acesso por vários utilizadores (em simultâneo) a uma base de dados. Este controlo permite que o utilizador não pressinta a presença de outros utilizadores sobre a mesma base de dados. Assim sendo cada utilizador tem a percepção de estar sozinho a trabalhar na base de dados, quando na realidade podem estar vários utilizadores a executar operações muito diferentes (consultas, actualizações a dados já existentes, criação de novos registos, etc.). No caso de uma base de dados não suportar acessos concorrentes e se os utilizadores acederem em simultâneo à base de dados, é muito provável que a integridade de toda a base de dados possa ficar comprometida. Desta forma torna-se necessário que uma base de dados multiutilizador tenha obrigatoriamente mecanismos para gerir o controlo da concorrência Recuperação/Tolerância a Falhas Para que seja possível ter a base de dados num estado de integridade válido é necessário que haja a possibilidade de a recuperar de falhas através de uma forma simples e rápida. Para tal é aconselhada a realização de cópias de segurança de toda a base de dados de uma forma regular. As cópias devem ser feitas em suportes amovíveis (ou seja: tape) e armazenadas em locais fisicamente distantes do local onde se encontra o servidor. No caso de ocorrer uma falha (crítica ou não) é sempre possível usar as cópias de segurança para repor a base de dados num estado de integridade anterior. Para que seja possível garantir todas estas características previamente referidas é necessário que haja uma entidade que assegure tais funcionalidades. Página 19

20 Conceitos Básicos - Capítulo 1 À entidade que gere e controla o funcionamento das bases de dados dá-se o nome de Sistema Gestor de Bases de Dados (SGBD) que provém do Inglês Database Management System (DBMS) SGBD Vs Sistema de Gestão de Ficheiros Muito antes de aparecerem as bases de dados as aplicações armazenavam os dados em ficheiros do próprio sistema, usando por isso as funcionalidades disponibilizadas pelo sistema de ficheiros do sistema operativo. Algumas das operações disponibilizadas são: criar ficheiros; deslocar para o byte n do ficheiro; deslocar para o início do ficheiro; escrever no ficheiro, etc. Estas aplicações de forma geral estavam associadas à estrutura de um ou mais ficheiros. Estrutura de dados essa que geralmente consiste num conjuntos de dados de comprimento fixo. A seguir encontram-se algumas das características mais importantes dos SGBDs Abstracção dos Dados Através da tecnologia das bases de dados não é necessário que as aplicações conheçam pormenores dos dados tais como: comprimentos dos registos criados pelo SGBD ou a localização física dos ficheiros no disco, uma vez que o utilizador/programador trabalha sobre um modelo abstracto de dados Independência Programa/Dados Usando um sistema de gestão de ficheiros como suporte de armazenamento uma aplicação, leva a que os ficheiros fiquem ligados à própria aplicação. No caso de ser necessário alterar a estrutura do ficheiro, torna-se também necessário alterar as aplicações que usem esses mesmos ficheiros. Ao usar-se um SGBD as aplicações passam a ser escritas de forma independente dos métodos de armazenamento usados pelo próprio SGBD. Por exemplo: uma escola tem uma aplicação para gerir a informação relativa aos dados pessoais dos seus alunos. Página 20

21 Conceitos Básicos - Capítulo 1 Uma vez que na altura em que a aplicação foi desenvolvida não havia telemóveis, não foi reservado espaço no registo do aluno para esse efeito. Por decisão da direcção da escola as funcionárias administrativas vão passar a armazenar os telemóveis dos alunos juntamente com o registo do aluno. Como o ficheiro com a informação dos alunos é necessário em quase todas as aplicações, então essas mesmas aplicações terão que ser também alteradas, porque o comprimento dos registos também foi alterado. No exemplo anterior, se estivesse a ser usado um SGBD, era somente necessário reservar espaço para o número de telemóvel e alterar a parte da aplicação que regista a parte do número de telemóvel. Todas as restantes aplicações não teriam que ser alteradas (se não necessitassem do número de telemóvel) Partilha dos Dados Numa abordagem baseada no Sistema de Gestão de Ficheiros, requisitos como segurança e acessos concorrentes terão que ser fornecidos pela própria aplicação. No caso de se usar um SGBD tais funcionalidades passam a ser fornecidas pelo próprio SGBD, libertando assim a aplicação para a realização dos objectivos para que foi criada Diminuição da Redundância Nos SGBDs é possível conceber modelos de dados de forma a obter-se um grau de redundância quase nulo. Desta forma torna-se mais simples manter a coerência dos dados, bem como obter um grau de desempenho desejável. Há situações em que é necessário adicionar alguma redundância (processo conhecido como desnormalização), nomeadamente devido a motivos relacionados com o desempenho. No entanto estes casos têm que ser pensados com muito cuidado, porque uma desnormalização implica obrigatoriamente redundância. Na maioria das vezes é possível melhorar o grau de desempenho sem ter que adicionar redundância. Para mais informações consulte a secção 6.1. Página 21

22 Conceitos Básicos - Capítulo Desenvolvimento e Manutenção Uma vez que ao usar-se um SGBD estamos a trabalhar com um grau de abstracção elevado, logo os programadores não têm que perder tempo com certos pormenores irrelevantes à solução dos problemas (Por exemplo: concorrência, etc.) permitindo assim que estes se dediquem à implementação das funcionalidades necessárias. Desta forma os programadores tem mais tempo para melhorar a parte funcional da aplicação, deixando responsabilidades tais como: gestão da concorrência e integridade para o SGBD Integridade dos Dados Através da definição de restrições de integridade e outros mecanismos é cada vez mais, possível e aconselhável retirar certas regras de negócio das aplicações. Desta forma a integridade da base de dados fica cada vez menos dependente das aplicações. Ou seja em vez de se ter as regras de negócio dispersas por várias aplicações estas passam a residir num único local Base de dados Relacionais Dentro da tecnologia das bases de dados há modelos variadíssimos, entre os quais se salientam os seguintes (ordenado cronologicamente) Modelo Hierárquico. Modelo de Rede. Modelo Relacional (RBDMS Relational Database Management Systems). Modelo Relacional Orientado Objectos (OORDBMS Object Oriented Relational Database Management Systems). Modelo Orientado Objecto (OODBMS Object Oriented Database Management Systems). Outros modelos. Neste documento será abordado somente os modelos Relacional e Relacional Orientado a Objectos uma vez que são os modelos suportados pelo PostgreSQL. O Modelo Relacional foi sem dúvida o que melhor se adaptou à realidade. Página 22

Comandos de Manipulação

Comandos de Manipulação SQL - Avançado Inserção de dados; Atualização de dados; Remoção de dados; Projeção; Seleção; Junções; Operadores: aritméticos, de comparação,de agregação e lógicos; Outros comandos relacionados. SQL SQL

Leia mais

SQL (Structured Query Language)

SQL (Structured Query Language) (Structured Query Language) I DDL (Definição de Esquemas Relacionais)... 2 I.2 Domínios... 2 I.3 Criação de Tabelas... 2 I.4 Triggers... 4 II DML Linguagem para manipulação de dados... 5 II.2 Comando SELECT...

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

Uma Base de Dados é uma colecção de dados partilhados, interrelacionados e usados para múltiplos objectivos.

Uma Base de Dados é uma colecção de dados partilhados, interrelacionados e usados para múltiplos objectivos. 1. Introdução aos Sistemas de Bases de Dados Uma Base de Dados é uma colecção de dados partilhados, interrelacionados e usados para múltiplos objectivos. O conceito de base de dados faz hoje parte do nosso

Leia mais

UFCD 787. Administração de base de dados. Elsa Marisa S. Almeida

UFCD 787. Administração de base de dados. Elsa Marisa S. Almeida UFCD 787 Administração de base de dados Elsa Marisa S. Almeida 1 Objectivos Replicação de base de dados Gestão de transacções Cópias de segurança Importação e exportação de dados Elsa Marisa S. Almeida

Leia mais

SQL é uma linguagem de consulta que implementa as operações da álgebra relacional de forma bem amigável.

SQL é uma linguagem de consulta que implementa as operações da álgebra relacional de forma bem amigável. SQL (Structured Query Language) SQL é uma linguagem de consulta que implementa as operações da álgebra relacional de forma bem amigável. Além de permitir a realização de consultas, SQL possibilita: definição

Leia mais

Bases de Dados 2005/2006. Aula 5

Bases de Dados 2005/2006. Aula 5 Bases de Dados 2005/2006 Aula 5 Sumário -1. (T.P.C.) Indique diferenças entre uma tabela e uma relação. 0. A base de dados Projecto 1. SQL Join (variantes) a. Cross Join b. Equi-Join c. Natural Join d.

Leia mais

COMPETÊNCIAS ESPECÍFICAS Compreender e utilizar a linguagem SQL, na construção e manutenção de uma base de dados.

COMPETÊNCIAS ESPECÍFICAS Compreender e utilizar a linguagem SQL, na construção e manutenção de uma base de dados. PLANIFICAÇÃO DA DISCIPLINA DE SISTEMAS DE INFORMAÇÃO 12.ºH CURSO PROFISSIONAL DE TÉCNICO MULTIMÉDIA ANO LECTIVO 2013/2014 6. LINGUAGENS DE PROGRAMAÇÃO IV Pré-requisitos: - Planificar e estruturar bases

Leia mais

PROGRAMA. Objectivos Gerais :

PROGRAMA. Objectivos Gerais : PROGRAMA ANO LECTIVO : 2005/2006 CURSO : ENGENHARIA MULTIMÉDIA ANO: 2.º DISCIPLINA : SISTEMA DE GESTÃO DE BASE DE DADOS DOCENTE RESPONSÁVEL PELA REGÊNCIA : Licenciado Lino Oliveira Objectivos Gerais :

Leia mais

SQL. SQL (Structured Query Language) Comando CREATE TABLE. SQL é uma linguagem de consulta que possibilita:

SQL. SQL (Structured Query Language) Comando CREATE TABLE. SQL é uma linguagem de consulta que possibilita: SQL Tópicos Especiais Modelagem de Dados Prof. Guilherme Tavares de Assis Universidade Federal de Ouro Preto UFOP Instituto de Ciências Exatas e Biológicas ICEB Mestrado Profissional em Ensino de Ciências

Leia mais

UNIVERSIDADE VEIGA DE ALMEIDA CURSO DE BACHARELADO EM CIÊNCIA DA COMPUTAÇÃO CURSO SUPERIOR DE TECNOLOGIA EM PROCESSAMENTO DE DADOS BANCO DE DADOS

UNIVERSIDADE VEIGA DE ALMEIDA CURSO DE BACHARELADO EM CIÊNCIA DA COMPUTAÇÃO CURSO SUPERIOR DE TECNOLOGIA EM PROCESSAMENTO DE DADOS BANCO DE DADOS CURSO DE BACHARELADO EM CIÊNCIA DA COMPUTAÇÃO CURSO SUPERIOR DE TECNOLOGIA EM PROCESSAMENTO DE DADOS CLAUDIO RIBEIRO DA SILVA MARÇO 1997 2 1 - CONCEITOS GERAIS DE 1.1 - Conceitos Banco de Dados - Representa

Leia mais

PROVA ESPECÍFICA Cargo 04

PROVA ESPECÍFICA Cargo 04 10 PROVA ESPECÍFICA Cargo 04 QUESTÃO 21 Analise as seguintes afirmativas: I. Uma das funções de um DBA é gerenciar os mecanismos de segurança de acesso aos dados armazenados em um SGBD (Sistema Gerenciador

Leia mais

Bases de Dados II 6638: BSc in Information Systems and Technologies. Cap. 1 Arquitectura de Sistemas de Bases de Dados. Module Introduction

Bases de Dados II 6638: BSc in Information Systems and Technologies. Cap. 1 Arquitectura de Sistemas de Bases de Dados. Module Introduction Bases de Dados II 6638: BSc in Information Systems and Technologies Cap. 1 Module Introduction Objectivos O propósito e a origem da arquitectura de base de dados a três níveis. O conteúdo dos níveis externo,

Leia mais

Bases de Dados. Bibliografia. 1. Parte I Componente Teórica. Pedro Quaresma

Bases de Dados. Bibliografia. 1. Parte I Componente Teórica. Pedro Quaresma Índice Bases de Dados Pedro Quaresma Departamento de Matemática Universidade de Coimbra 2010/2011 1. Parte I Componente Teórica 1.1 Introdução 1.2 Modelo ER 1.3 Modelo Relacional 1.4 SQL 1.5 Integridade

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

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

SQL Linguagem de Manipulação de Dados. Banco de Dados Profa. Dra. Cristina Dutra de Aguiar Ciferri SQL Linguagem de Manipulação de Dados Banco de Dados SQL DML SELECT... FROM... WHERE... lista atributos de uma ou mais tabelas de acordo com alguma condição INSERT INTO... insere dados em uma tabela DELETE

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

SQL. Prof. Márcio Bueno. {bd2tarde,bd2noite}@marciobueno.com

SQL. Prof. Márcio Bueno. {bd2tarde,bd2noite}@marciobueno.com SQL Prof. Márcio Bueno {bd2tarde,bd2noite}@marciobueno.com Material dos professores Ana Carolina Salgado, Fernando Foncesa e Valéria Times (CIn/UFPE) SQL SQL - Structured Query Language Linguagem de Consulta

Leia mais

SQL TGD/JMB 1. Projecto de Bases de Dados. Linguagem SQL

SQL TGD/JMB 1. Projecto de Bases de Dados. Linguagem SQL SQL TGD/JMB 1 Projecto de Bases de Dados Linguagem SQL SQL TGD/JMB 2 O que é o SQL? SQL ("ess-que-el") significa Structured Query Language. É uma linguagem standard (universal) para comunicação com sistemas

Leia mais

Programação SQL. Introdução

Programação SQL. Introdução Introdução Principais estruturas duma Base de Dados: Uma BD relacional é constituída por diversas estruturas (ou objectos ) de informação. Podemos destacar: Database: designa a própria BD; Table/Tabela:

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

Sumário 1 0.1 Introdução 1 0.2 Breve História da Linguagem SQL l 0.3 Características da Linguagem SQL 3 0.4 A Composição deste Livro 3

Sumário 1 0.1 Introdução 1 0.2 Breve História da Linguagem SQL l 0.3 Características da Linguagem SQL 3 0.4 A Composição deste Livro 3 ÍNDICE o -INTRODUÇÃO Sumário 1 0.1 Introdução 1 0.2 Breve História da Linguagem SQL l 0.3 Características da Linguagem SQL 3 0.4 A Composição deste Livro 3 0.5 Sistemas Utilizados 6 0.5.1 Access 2003 (Microsoft)

Leia mais

Structured Query Language (SQL)

Structured Query Language (SQL) SQL Histórico Structured Query Language (SQL) Foi desenvolvido pela IBM em meados dos anos 70 como uma linguagem de manipulação de dados (DML - Data Manipulation Language) para suas primeiras tentativas

Leia mais

Banco de Dados. Prof. Antonio

Banco de Dados. Prof. Antonio Banco de Dados Prof. Antonio SQL - Structured Query Language O que é SQL? A linguagem SQL (Structure query Language - Linguagem de Consulta Estruturada) é a linguagem padrão ANSI (American National Standards

Leia mais

Banco de Dados I. Aula 12 - Prof. Bruno Moreno 04/10/2011

Banco de Dados I. Aula 12 - Prof. Bruno Moreno 04/10/2011 Banco de Dados I Aula 12 - Prof. Bruno Moreno 04/10/2011 Plano de Aula SQL Definição Histórico SQL e sublinguagens Definição de dados (DDL) CREATE Restrições básicas em SQL ALTER DROP 08:20 Definição de

Leia mais

Gabarito - Banco de Dados SQL - 30/07/2013 AULA 01

Gabarito - Banco de Dados SQL - 30/07/2013 AULA 01 Gabarito - Banco de Dados SQL - 30/07/2013 AULA 01 1 1- Bancos de dados compreendem desde agendas telefônicas até sistemas computadorizados. (Sim) 2- Só podemos instalar o SQL Server Express se tivermos

Leia mais

Princípio dos anos 70 IBM desenvolve a linguagem Sequel para o System R. Standards ISO e ANSI SQL-86, SQL-89, SQL-92, SQL:1999, SQL:2003

Princípio dos anos 70 IBM desenvolve a linguagem Sequel para o System R. Standards ISO e ANSI SQL-86, SQL-89, SQL-92, SQL:1999, SQL:2003 Bases de Dados Introdução à linguagem SQL História Princípio dos anos 70 IBM desenvolve a linguagem Sequel para o System R Renomeada para SQL (Structured Query Language) Standards ISO e ANSI SQL-86, SQL-89,

Leia mais

Faculdade Pitágoras 16/08/2011. Curso Superior de Tecnologia: Banco de Dados Sistemas para Internet

Faculdade Pitágoras 16/08/2011. Curso Superior de Tecnologia: Banco de Dados Sistemas para Internet Faculdade Pitágoras Curso Superior de Tecnologia: Banco de Dados Sistemas para Internet Disciplina: Banco de Dados Prof.: Fernando Hadad Zaidan SQL A linguagem SQL é responsável por garantir um bom nível

Leia mais

Faculdade Pitágoras. Curso Superior de Tecnologia: Banco de Dados. Disciplina: Banco de Dados Prof.: Fernando Hadad Zaidan SQL

Faculdade Pitágoras. Curso Superior de Tecnologia: Banco de Dados. Disciplina: Banco de Dados Prof.: Fernando Hadad Zaidan SQL Faculdade Pitágoras Curso Superior de Tecnologia: Banco de Dados Disciplina: Banco de Dados Prof.: Fernando Hadad Zaidan SQL A linguagem SQL é responsável por garantir um bom nível de independência do

Leia mais

Programação SQL. INTRODUÇÃO II parte

Programação SQL. INTRODUÇÃO II parte Programação SQL INTRODUÇÃO II parte Programação SQL SELECT; INSERT; UPDATE; DELETE. Este conjunto de comandos faz parte da sublinguagem denominada por DML Data Manipulation Language (Linguagem de manipulação

Leia mais

P L A N I F I C A Ç Ã O A N U A L

P L A N I F I C A Ç Ã O A N U A L P L A N I F I C A Ç Ã O A N U A L DEPARTAMENTO: MATEMÁTICA E CIÊNCIAS EXPERIMENTAIS ÁREA DISCIPLINAR: 550 - INFORMÁTICA DISCIPLINA: PSI CURSO: Profissional DE: Téc. de Gestão e Programação de Sist. Informáticos

Leia mais

SQL (Structured Querie Language) Escola Secundária de Emídio Navarro 2001/2002 Estruturas, Tratamento e Organização de Dados

SQL (Structured Querie Language) Escola Secundária de Emídio Navarro 2001/2002 Estruturas, Tratamento e Organização de Dados SQL (Structured Querie Language) SQL é mais que uma linguagem de interrogação estruturada. Inclui características para a definição da estrutura de dados, para alterar os dados de uma base de dados, e para

Leia mais

PROGRAMA. Aquisição dos conceitos teóricos mais importantes sobre bases de dados contextualizados à luz de exemplos da sua aplicação no mundo real.

PROGRAMA. Aquisição dos conceitos teóricos mais importantes sobre bases de dados contextualizados à luz de exemplos da sua aplicação no mundo real. PROGRAMA ANO LECTIVO: 2005/2006 CURSO: LICENCIATURA BI-ETÁPICA EM INFORMÁTICA ANO: 2.º DISCIPLINA: BASE DE DADOS DOCENTE RESPONSÁVEL PELA REGÊNCIA: Licenciado Lino Oliveira Objectivos Gerais: Aquisição

Leia mais

Tarefa Orientada 13 Agrupamento e sumário de dados

Tarefa Orientada 13 Agrupamento e sumário de dados Tarefa Orientada 13 Agrupamento e sumário de dados Objectivos: Funções de agregação Agrupamento e sumário de dados Funções de agregação Nesta tarefa orientada iremos formular consultas que sumariam os

Leia mais

Bases de Dados. O que é uma Base de Dados? Pós-Grduação em SIG

Bases de Dados. O que é uma Base de Dados? Pós-Grduação em SIG Bases de Dados O que é uma Base de Dados? Dados Pode-se começar por tentar dar uma definição do que são Dados. Os dados são factos em bruto, que não são necessáriamente relevantes para qualquer coisa que

Leia mais

Exemplos de Vistas SQL. Tipos em SQL. Linguagem de Definição de Dados (DDL) CREATE VIEW todososclientes As

Exemplos de Vistas SQL. Tipos em SQL. Linguagem de Definição de Dados (DDL) CREATE VIEW todososclientes As Exemplos de Vistas SQL Considere-se a vista (com o nome todososconsumidores) contento os nomes das agências e seus clientes CREATE VIEW todososclientes As Π nomebalcao,nomecliente (temconta conta) Π nomebalcao,nomecliente

Leia mais

António Rocha Nuno Melo e Castro

António Rocha Nuno Melo e Castro António Rocha Nuno Melo e Castro SQL- Strutured Query Language é a linguagem mais usada nas bases dados relacionais. Originalmente desenvolvida pela IBM Actualmente é um standard, o mais recente é o SQL:2003

Leia mais

SQL Structured Query Language

SQL Structured Query Language Janai Maciel SQL Structured Query Language (Banco de Dados) Conceitos de Linguagens de Programação 2013.2 Structured Query Language ( Linguagem de Consulta Estruturada ) Conceito: É a linguagem de pesquisa

Leia mais

Os dados no MySQL são armazenado em tabelas. Uma tabela é uma colecção de informação relacionada e consiste em colunas e linhas.

Os dados no MySQL são armazenado em tabelas. Uma tabela é uma colecção de informação relacionada e consiste em colunas e linhas. MySQL 101 Recapitulando Os dados no MySQL são armazenado em tabelas. Uma tabela é uma colecção de informação relacionada e consiste em colunas e linhas. As bases de dados são úteis quando necessitamos

Leia mais

Introdução a Informática. Prof.: Roberto Franciscatto

Introdução a Informática. Prof.: Roberto Franciscatto Introdução a Informática Prof.: Roberto Franciscatto 6.1 ARQUIVOS E REGISTROS De um modo geral os dados estão organizados em arquivos. Define-se arquivo como um conjunto de informações referentes aos elementos

Leia mais

BANCO DE DADOS Parte 4

BANCO DE DADOS Parte 4 BANCO DE DADOS Parte 4 A Linguagem SQL Introdução Desenvolvida pelo depto de pesquisa da IBM na década de 1970 (System R) Linguagem padrão de BD Relacionais; Apresenta várias padrões evolutivos: SQL86,

Leia mais

SQL - Structured Query Language, ou Linguagem de Consulta Estruturada ou SQL

SQL - Structured Query Language, ou Linguagem de Consulta Estruturada ou SQL SQL - Structured Query Language, ou Linguagem de Consulta Estruturada ou SQL Criar uma base de dados (criar um banco de dados) No mysql: create database locadora; No postgresql: createdb locadora Criar

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

INTRODUÇÃO À LINGUAGEM SQL CRIAÇÃO DE BANCO DE DADOS E OTIMIZAÇÃO DE CONSULTAS

INTRODUÇÃO À LINGUAGEM SQL CRIAÇÃO DE BANCO DE DADOS E OTIMIZAÇÃO DE CONSULTAS Esclarecimento Licenciamento de Uso Este documento é propriedade intelectual 2012 da NRSYSTEM COMÉRCIO E SERVIÇOS DE INFORMÁTICA LTDA-ME, consiste de uma compilação de diversos materiais entre livros,

Leia mais

Álgebra Relacional. Conjunto de operações que usa uma ou duas relações como entrada e gera uma relação de saída. Operações básicas:

Álgebra Relacional. Conjunto de operações que usa uma ou duas relações como entrada e gera uma relação de saída. Operações básicas: Álgebra Relacional Conjunto de operações que usa uma ou duas relações como entrada e gera uma relação de saída operação (REL 1 ) REL 2 operação (REL 1,REL 2 ) REL 3 Operações básicas: seleção projeção

Leia mais

Bases de Dados Distribuídas

Bases de Dados Distribuídas Introdução Devido ao ambiente de grande competitividade em que as organizações de hoje têm que actuar, estas são forçadas a distribuir-se geograficamente, procurando as condições locais mais favoráveis

Leia mais

SQL92 DDL( RIS, ACTUALIZAÇÕES E VISTAS) DML (QUERIES, SUBQUERIES,JUNÇÕES, E OPERAÇÕES SOBRE CONJUNTOS)

SQL92 DDL( RIS, ACTUALIZAÇÕES E VISTAS) DML (QUERIES, SUBQUERIES,JUNÇÕES, E OPERAÇÕES SOBRE CONJUNTOS) SQL92 DDL( RIS, ACTUALIZAÇÕES E VISTAS) DML (QUERIES, SUBQUERIES,JUNÇÕES, E OPERAÇÕES SOBRE CONJUNTOS) SQL SQL, é uma linguagem de programação que foi desenvolvida para questionar bases de dados relacionais

Leia mais

Linguagem de Consulta Estruturada SQL- DML

Linguagem de Consulta Estruturada SQL- DML Linguagem de Consulta Estruturada SQL- DML INTRODUÇÃO A SQL - Structured Query Language, foi desenvolvido pela IBM em meados dos anos 70 como uma linguagem de manipulação de dados (DML - Data Manipulation

Leia mais

SQL Linguagem de Definição de Dados. Laboratório de Bases de Dados Profa. Dra. Cristina Dutra de Aguiar Ciferri

SQL Linguagem de Definição de Dados. Laboratório de Bases de Dados Profa. Dra. Cristina Dutra de Aguiar Ciferri SQL Linguagem de Definição 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 Ingress SQL

Leia mais

Tarefa Orientada 12 Junção Externa, Auto-Junção e União

Tarefa Orientada 12 Junção Externa, Auto-Junção e União Tarefa Orientada 12 Junção Externa, Auto-Junção e União Objectivos: Junção externa (Outer JOIN) Junção externa à esquerda (LEFT Outer JOIN) Junção externa à direita (RIGHT Outer JOIN) Junção externa completa

Leia mais

LINGUAGEM SQL. DML - Linguagem de Manipulação de Dados

LINGUAGEM SQL. DML - Linguagem de Manipulação de Dados LINGUAGEM SQL Structured Query Language, ou Linguagem de Consulta Estruturada ou SQL, é uma linguagem de pesquisa declarativa para banco de dados relacional (base de dados relacional). Muitas das características

Leia mais

Tarefa Orientada 15 Manipulação de dados

Tarefa Orientada 15 Manipulação de dados Tarefa Orientada 15 Manipulação de dados Objectivos: Criação de tabelas teste Comando INSERT INTO Inserção de dados Comando INSERT Actualização de dados Comando UPDATE Eliminação de dados Comando DELETE

Leia mais

Operação de União JOIN

Operação de União JOIN Operação de União JOIN Professor Victor Sotero SGD 1 JOIN O join é uma operação de multi-tabelas Select: o nome da coluna deve ser precedido pelo nome da tabela, se mais de uma coluna na tabela especificada

Leia mais

Bases de Dados! 2014/15! http://ssdi.di.fct.unl.pt/bd!! João Leite (jleite@fct.unl.pt)!!!

Bases de Dados! 2014/15! http://ssdi.di.fct.unl.pt/bd!! João Leite (jleite@fct.unl.pt)!!! Bases de Dados 2014/15 http://ssdi.di.fct.unl.pt/bd João Leite (jleite@fct.unl.pt) Capítulo 1: Introdução Função dos Sistemas de Bases de Dados Visão dos dados Modelos de dados Linguagem de Definição de

Leia mais

S Q L 31/03/2010. SQL - Structured Query Language Linguagem de Consulta Estruturada

S Q L 31/03/2010. SQL - Structured Query Language Linguagem de Consulta Estruturada Gerenciamento de Dados e Informação Fernando Fonseca Ana Carolina Robson Fidalgo SQL SQL - Structured Query Language Linguagem de Consulta Estruturada Apesar do QUERY no nome, não é apenas de consulta,

Leia mais

Banco de Dados. Maurício Edgar Stivanello

Banco de Dados. Maurício Edgar Stivanello Banco de Dados Maurício Edgar Stivanello Agenda Conceitos Básicos SGBD Projeto de Banco de Dados SQL Ferramentas Exemplo Dado e Informação Dado Fato do mundo real que está registrado e possui um significado

Leia mais

ETEC Dr. Emílio Hernandez Aguilar

ETEC Dr. Emílio Hernandez Aguilar ETEC Dr. Emílio Hernandez Aguilar Grupo: Leonardo; Ronaldo; Lucas; Gustavo; Fabio. 2º Informática Tarde 2º Semestre de 2009 Introdução O PostgreSQL é um SGBD (Sistema Gerenciador de Banco de Dados) objeto-relacional

Leia mais

Esta aula tem o objetivo de nos orientar durante este período em nossas aulas de Banco de Dados, não tem a pretensão de ser a única fonte de

Esta aula tem o objetivo de nos orientar durante este período em nossas aulas de Banco de Dados, não tem a pretensão de ser a única fonte de BD Esta aula tem o objetivo de nos orientar durante este período em nossas aulas de Banco de Dados, não tem a pretensão de ser a única fonte de informação para nosso êxito no curso. A intenção de elaborar

Leia mais

Bases de Dados. Lab 1: Introdução ao ambiente. Figura 1. Base de dados de exemplo

Bases de Dados. Lab 1: Introdução ao ambiente. Figura 1. Base de dados de exemplo Departamento de Engenharia Informática 2014/2015 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

S Q L 15/01/2013. Enfoques de SQL. Enfoques de SQL SQL. Usos de SQL. SQL - Origem/Histórico. Gerenciamento de Dados e Informação

S Q L 15/01/2013. Enfoques de SQL. Enfoques de SQL SQL. Usos de SQL. SQL - Origem/Histórico. Gerenciamento de Dados e Informação Enfoques de SQL Gerenciamento de Dados e Informação Fernando Fonseca Ana Carolina Valeria Times Bernadette Loscio Linguagem interativa de consulta (ad-hoc): usuários podem definir consultas independente

Leia mais

SQL. Hélder Antero Amaral Nunes

SQL. Hélder Antero Amaral Nunes SQL Hélder Antero Amaral Nunes 2 Introdução Desenvolvida pelo departamento de pesquisa da IBM na década de 1970 (System R); Linguagem padrão de BD Relacionais; Apresenta várias padrões evolutivos: SQL86,

Leia mais

Básico da Linguagem SQL. Definição de Esquemas em SQL. SQL(Structured Query Language)

Básico da Linguagem SQL. Definição de Esquemas em SQL. SQL(Structured Query Language) Básico da Linguagem SQL Definição de Esquemas em SQL SQL(Structured Query Language) Desenvolvida como a linguagem de consulta do protótipo de SGBD Sistema R (IBM, 1976). Adotada como linguagem padrão de

Leia mais

ROTEIRO. A Linguagem SQL (I parte) CEFET.PHB - PI Prof. Jefferson Silva. As partes da linguagem SQL. A Linguagem de Definição de Dados (SQL-DDL)

ROTEIRO. A Linguagem SQL (I parte) CEFET.PHB - PI Prof. Jefferson Silva. As partes da linguagem SQL. A Linguagem de Definição de Dados (SQL-DDL) CEFET.PHB - PI Prof. Jefferson Silva SQL (MySql) ROTEIRO I PARTE - INTRODUÇÃO AO SQL COMANDOS E SUAS PARTES DA LINGUAGEM SQL II PARTE ADMINSTRAÇÃO DE BANCO DE DADOS UTILIZANDO MYSQL PRINCIPAIS INSTRUÇÕES

Leia mais

FEAP - Faculdade de Estudos Avançados do Pará PROFª LENA VEIGA PROJETOS DE BANCO DE DADOS UNIDADE V- SQL

FEAP - Faculdade de Estudos Avançados do Pará PROFª LENA VEIGA PROJETOS DE BANCO DE DADOS UNIDADE V- SQL Quando os Bancos de Dados Relacionais estavam sendo desenvolvidos, foram criadas linguagens destinadas à sua manipulação. O Departamento de Pesquisas da IBM desenvolveu a SQL como forma de interface para

Leia mais

0 1 5 5 _ B A S E D E D A D O S P A R A I N T E R N E T ( S E R V E R S I D E )

0 1 5 5 _ B A S E D E D A D O S P A R A I N T E R N E T ( S E R V E R S I D E ) 0 1 5 5 _ B A S E D E D A D O S P A R A I N T E R N E T ( S E R V E R S I D E ) EFA NÍVEL SECUNDÁRIO TECNOLOGIAS DE INFORMAÇÃO E COMUNICAÇÃO MULTIMÉDIA (TICM) 04-05-2011 0155_Base de dados para Internet

Leia mais

Banco de Dados. Marcio de Carvalho Victorino www.dominandoti.eng.br. Exercícios SQL

Banco de Dados. Marcio de Carvalho Victorino www.dominandoti.eng.br. Exercícios SQL Banco de Dados Exercícios SQL 1 TRF (ESAF 2006) 32. Analise as seguintes afirmações relacionadas a Bancos de Dados e à linguagem SQL: I. A cláusula GROUP BY do comando SELECT é utilizada para dividir colunas

Leia mais

Programação SQL. Manipulação de Dados. DML Data Manipulation Language

Programação SQL. Manipulação de Dados. DML Data Manipulation Language Programação SQL Manipulação de Dados DML Data Manipulation Language Manipulação de Dados (DML) Os comandos INSERT, UPDATE, DELETE, são normalmente classificados como pertencendo a uma sublinguagem da linguagem

Leia mais

BANCO DE DADOS CONCEITOS BÁSICOS

BANCO DE DADOS CONCEITOS BÁSICOS Universidade Federal da Paraíba UFPB Centro de Energias Alternativas e Renováveis - CEAR Departamento de Eng. Elétrica DEE BANCO DE DADOS CONCEITOS BÁSICOS Isaac Maia Pessoa Introdução O que é um BD? Operações

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

NOME SEXO CPF NASCIMENTO SALARIO

NOME SEXO CPF NASCIMENTO SALARIO Tutorial SQL Fonte: http://www.devmedia.com.br/articles/viewcomp.asp?comp=2973 Para começar Os Sistemas Gerenciadores de Bancos de Dados Relacionais (SGBDr) são o principal mecanismo de suporte ao armazenamento

Leia mais

Tarefa Orientada 16 Vistas

Tarefa Orientada 16 Vistas Tarefa Orientada 16 Vistas Objectivos: Vistas só de leitura Vistas de manipulação de dados Uma vista consiste numa instrução de SELECT que é armazenada como um objecto na base de dados. Deste modo, um

Leia mais

Linguagem de Consulta Estruturada (SQL)

Linguagem de Consulta Estruturada (SQL) Linguagem de Consulta Estruturada (SQL) Conceitos sobre a versão ANSI da SQL, a sublinguagem de definição de dados (DDL) e a sublinguagem de manipulação de dados (DML) Prof. Flavio Augusto C. Correia 1

Leia mais

Administração de Banco de Dados

Administração de Banco de Dados Administração de Banco de Dados Professora conteudista: Cida Atum Sumário Administração de Banco de Dados Unidade I 1 INTRODUÇÃO A BANCO DE DADOS...1 1.1 Histórico...1 1.2 Definições...2 1.3 Importância

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

Sistemas Operativos I

Sistemas Operativos I Componentes de um Sistema Operativo Maria João Viamonte / Luis Lino Ferreira Fevereiro de 2006 Sistema Operativo Um Sistema Operativo pode ser visto como um programa de grande complexidade, responsável

Leia mais

TECNOLOGIAS DA INFORMAÇÃO E COMUNICAÇÃO. SISTEMAS DE GESTÃO DE BASE DE DADOS Microsoft Access TECNOLOGIAS DA INFORMAÇÃO E COMUNICAÇÃO

TECNOLOGIAS DA INFORMAÇÃO E COMUNICAÇÃO. SISTEMAS DE GESTÃO DE BASE DE DADOS Microsoft Access TECNOLOGIAS DA INFORMAÇÃO E COMUNICAÇÃO TECNOLOGIAS DA INFORMAÇÃO E COMUNICAÇÃO Microsoft Access TECNOLOGIAS DA INFORMAÇÃO E COMUNICAÇÃO CONCEITOS BÁSICOS 1 Necessidade das base de dados Permite guardar dados dos mais variados tipos; Permite

Leia mais

Structured Query Language (SQL) Ambiente Simplificado de um SGBD

Structured Query Language (SQL) Ambiente Simplificado de um SGBD Structured Query Language (SQL) Ambiente Simplificado de um SGBD 2 1 Características dos SGBDs Natureza auto-contida de um sistema de banco de dados: metadados armazenados num catálogo ou dicionário de

Leia mais

SQL DDL. Frederico D. Bortoloti freddb@ltc.ufes.br

SQL DDL. Frederico D. Bortoloti freddb@ltc.ufes.br Banco de Dados I SQL DDL Frederico D. Bortoloti freddb@ltc.ufes.br Introdução Modelo relacional encontra-se padronizado pela indústria de informática. Ele é chamado de padrão SQL (Structured Query Language)

Leia mais

Definida pelo American National Standard Institute (ANSI) em 1986

Definida pelo American National Standard Institute (ANSI) em 1986 2.3. Linguagens Relacionais SQL Structured Query Language Linguagem para o modelo relacional: Definida pelo American National Standard Institute (ANSI) em 1986 Adoptada em 1987 como um standard internacional

Leia mais

2008.1. A linguagem SQL

2008.1. A linguagem SQL SQL 2008.1 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 primeira versão

Leia mais

BD SQL Server. Licenciatura em Engenharia Informática e Computação. Bases de Dados 2003/04

BD SQL Server. Licenciatura em Engenharia Informática e Computação. Bases de Dados 2003/04 BD SQL Server SGBD SQL Server Licenciatura em Engenharia Informática e Computação Bases de Dados 2003/04 BD SQL Server Criação da Ligação ao SGBD Entrar no Microsoft SQL Server / Enterprise Manager Criar

Leia mais

SQL - Criação de Tabelas

SQL - Criação de Tabelas SQL - Criação de Tabelas André Restivo Faculdade de Engenharia da Universidade do Porto February 24, 2012 André Restivo (FEUP) SQL - Criação de Tabelas February 24, 2012 1 / 25 Sumário 1 Introdução 2 Tabelas

Leia mais

BANCO DE DADOS -INTRODUÇÃO AO SQL. Prof. Angelo Augusto Frozza, M.Sc. frozza@ifc-camboriu.edu.br

BANCO DE DADOS -INTRODUÇÃO AO SQL. Prof. Angelo Augusto Frozza, M.Sc. frozza@ifc-camboriu.edu.br BANCO DE DADOS -INTRODUÇÃO AO SQL Prof. Angelo Augusto Frozza, M.Sc. frozza@ifc-camboriu.edu.br Os comandos SQL podem ser agrupados em 3 classes: DDL Data Definition Language Comandos para a Definição

Leia mais

Bases de Dados 2012/2013 Restrições de Integridade em SQL. Helena Galhardas 2012 IST. Bibliografia

Bases de Dados 2012/2013 Restrições de Integridade em SQL. Helena Galhardas 2012 IST. Bibliografia Bases de Dados 2012/2013 Restrições de Integridade em SQL Helena Galhardas Bibliografia Raghu Ramakrishnan, Database Management Systems, Cap. 3 e 5 1 1 Sumário Restrições de Integridade (RIs) em SQL Chave

Leia mais

Exercícios de Lógica Exercícios de Fixação 08

Exercícios de Lógica Exercícios de Fixação 08 Exercícios Exercícios de Lógica Exercícios de Fixação 08 1. A linguagem SQL apresenta uma série de comandos que permitem a definição dos dados, chamada de DDL (Data Definition Language). Assinale a alternativa

Leia mais

Tarefa Orientada 19 Triggers

Tarefa Orientada 19 Triggers Tarefa Orientada 19 Triggers Objectivos: Criar triggers AFTER Criar triggers INSTEAD OF Exemplos de utilização Os triggers são um tipo especial de procedimento que são invocados, ou activados, de forma

Leia mais

UFCD 786. Instalação e configuração de sistemas de bases de dados

UFCD 786. Instalação e configuração de sistemas de bases de dados UFCD 786 Instalação e configuração de sistemas de bases de dados 1 Noção de Base de Dados De uma forma genérica uma base de dados é um conjunto de dados (BD) Exemplos de BD s: Uma agenda de moradas Uma

Leia mais

A compreensão do mecanismo de transações é essencial, sempre que a

A compreensão do mecanismo de transações é essencial, sempre que a Transações A compreensão do mecanismo de transações é essencial, sempre que a base de dados d servir várias clientes simultaneamente. Em SQL é possível definir explicitamente os limites de uma transação.

Leia mais

EXCEL. Listas como Bases de Dados

EXCEL. Listas como Bases de Dados Informática II Gestão Comercial e da Produção EXCEL Listas como Bases de Dados (TÓPICOS ABORDADOS NAS AULAS DE INFORMÁTICA II) Curso de Gestão Comercial e da Produção Ano Lectivo 2002/2003 Por: Cristina

Leia mais

Núcleo de Pós Graduação Pitágoras

Núcleo de Pós Graduação Pitágoras Núcleo de Pós Graduação Pitágoras Professor: Fernando Zaidan Disciplina: Modelagem e Projeto de Banco de Dados Especialização em Tecnologia da Informação - Ênfases Março- 2009 1 Modelo Físico Introdução

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

Introdução aos Sistemas de Bases de Dados

Introdução aos Sistemas de Bases de Dados Sistemas de Bases de Dados Edição 2004 Introdução aos Sistemas de Bases de Dados Orlando Belo Departamento de Informática Escola de Engenharia Universidade do Minho Índice Introdução ao armazenamento de

Leia mais

SQL - Banco de Dados. Disciplina: Banco de Dados. Professor: José Antônio. José Antônio - CEFET-RN 23/09/2015

SQL - Banco de Dados. Disciplina: Banco de Dados. Professor: José Antônio. José Antônio - CEFET-RN 23/09/2015 SQL - Banco de Dados 1 Disciplina: Banco de Dados Professor: José Antônio 2 Tópicos de discussão Criando um banco de dados Incluindo, atualizando e excluindo linhas nas tabelas Pesquisa básica em tabelas

Leia mais

Banco de Dados II. Introdução Revisão - normalização -modelagem - sql básico

Banco de Dados II. Introdução Revisão - normalização -modelagem - sql básico Banco de Dados II Introdução Revisão - normalização -modelagem - sql básico Prof. Rodrigo Rocha prof.rodrigorocha@yahoo.com http://www.bolinhabolinha.com Apresentação Prof. Rodrigo Rocha prof.rodrigorocha@yahoo.com

Leia mais

BASES DE DADOS I LTSI/2. Universidade da Beira Interior, Departamento de Informática Hugo Pedro Proença, 2010/2011

BASES DE DADOS I LTSI/2. Universidade da Beira Interior, Departamento de Informática Hugo Pedro Proença, 2010/2011 BASES DE DADOS I LTSI/2 Universidade da Beira Interior, Departamento de Informática Hugo Pedro Proença, 2010/2011 A Linguagem SQL As raízes da linguagem SQL remontam a 1974, altura em que a IBM desenvolvia

Leia mais

Ao conjunto total de tabelas, chamamos de Base de Dados.

Ao conjunto total de tabelas, chamamos de Base de Dados. O QUE É O ACCESS? É um sistema gestor de base de dados relacional. É um programa que permite a criação de Sistemas Gestores de Informação sofisticados sem conhecer linguagem de programação. SISTEMA DE

Leia mais

Ex.: INSERT INTO tmpautor (CDAUTOR, NMAUTOR) VALUES (1, Renato Araújo )

Ex.: INSERT INTO tmpautor (CDAUTOR, NMAUTOR) VALUES (1, Renato Araújo ) PRONATEC - Programador de Sistemas Banco de Dados 1) Incluindo linhas nas tabelas a. Para incluir linhas em tabelas utilize o comando INSERT INTO INSERT INTO tabela [ ( coluna [, coluna,...] ) ] VALUES

Leia mais

EXEMPLOS DE COMANDOS NO SQL SERVER

EXEMPLOS DE COMANDOS NO SQL SERVER EXEMPLOS DE COMANDOS NO SQL SERVER Gerenciando Tabelas: DDL - DATA DEFINITION LANGUAG Criando uma tabela: CREATE TABLE CLIENTES ID VARCHAR4 NOT NULL, NOME VARCHAR30 NOT NULL, PAGAMENTO DECIMAL4,2 NOT NULL;

Leia mais

BANCO DE DADOS II Prof. Ricardo Rodrigues Barcelar http://www.ricardobarcelar.com

BANCO DE DADOS II Prof. Ricardo Rodrigues Barcelar http://www.ricardobarcelar.com - Aula 11-1. INTRODUÇÃO TRIGGERS (GATILHOS OU AUTOMATISMOS) Desenvolver uma aplicação para gerenciar os dados significa criar uma aplicação que faça o controle sobre todo ambiente desde a interface, passando

Leia mais

Structured Query Language (SQL) SQL é uma linguagem normalizada (ANSI) para consultas e actualizações de bases de dados relacionais.

Structured Query Language (SQL) SQL é uma linguagem normalizada (ANSI) para consultas e actualizações de bases de dados relacionais. Structured Query Language (SQL) SQL é uma linguagem normalizada (ANSI) para consultas e actualizações de bases de dados relacionais. A instrução SELECT As consultas a uma base de dados relacional fazem-se

Leia mais