4º tsi jonathan de matoseventos.uepg.br/jonathan/bdw_2013_1/aula01.pdf · conteúdo operadores:...
TRANSCRIPT
![Page 1: 4º TSI Jonathan de Matoseventos.uepg.br/jonathan/bdw_2013_1/aula01.pdf · Conteúdo Operadores: lógicos, aritméticos, relacionais e especiais (like, between, null e is null ) inserção](https://reader033.vdocuments.pub/reader033/viewer/2022050201/5f5537f560f4da560b622b43/html5/thumbnails/1.jpg)
Banco de dados na Web
4º TSI
Jonathan de Matos
![Page 2: 4º TSI Jonathan de Matoseventos.uepg.br/jonathan/bdw_2013_1/aula01.pdf · Conteúdo Operadores: lógicos, aritméticos, relacionais e especiais (like, between, null e is null ) inserção](https://reader033.vdocuments.pub/reader033/viewer/2022050201/5f5537f560f4da560b622b43/html5/thumbnails/2.jpg)
Conteúdo
● Conceitos fundamentais
● diferenças entre mysql e postgresql
● programas clientes: psql - pgadmin 3 - phppgadmin
● terminal interativo psql: comandos
● linguagem SQL: sublinguagens DCL, DDL e DML
● criação de papéis (Roles): usuários e grupos
● criação de banco de dados
● esquemas e tablespaces
● tipo de dados
● criação de tabelas
● backup e restore
● concessão e revogação de privilégios
![Page 3: 4º TSI Jonathan de Matoseventos.uepg.br/jonathan/bdw_2013_1/aula01.pdf · Conteúdo Operadores: lógicos, aritméticos, relacionais e especiais (like, between, null e is null ) inserção](https://reader033.vdocuments.pub/reader033/viewer/2022050201/5f5537f560f4da560b622b43/html5/thumbnails/3.jpg)
Conteúdo
● Operadores:● lógicos, aritméticos, relacionais e especiais (like, between, null e is null )
● inserção de registros
● atualização de registros
● exclusão de registros
● consultas
● cláusula distinct
● cláusula limit e offset
● cláusula where
● funcoes básicas:● upper, lower, min, max, avg, count, sum, stddev
● classificação agrupamento e agregação (order, group e having)
![Page 4: 4º TSI Jonathan de Matoseventos.uepg.br/jonathan/bdw_2013_1/aula01.pdf · Conteúdo Operadores: lógicos, aritméticos, relacionais e especiais (like, between, null e is null ) inserção](https://reader033.vdocuments.pub/reader033/viewer/2022050201/5f5537f560f4da560b622b43/html5/thumbnails/4.jpg)
Conteúdo
● integração de linguagem de script com SGBD (técnica dos 5 passos)
● funções avançadas:● matemáticas, de string, de formatação e de data e hora
● subconsultas
● condicionalidade (case when then e else)
● junções:● self join
● cross join
● inner join
● qualified join
● left outer join, right outer join e full outer join
● combinação de consultas (unions)
![Page 5: 4º TSI Jonathan de Matoseventos.uepg.br/jonathan/bdw_2013_1/aula01.pdf · Conteúdo Operadores: lógicos, aritméticos, relacionais e especiais (like, between, null e is null ) inserção](https://reader033.vdocuments.pub/reader033/viewer/2022050201/5f5537f560f4da560b622b43/html5/thumbnails/5.jpg)
Conteúdo
● Visualizações (views)
● cláusulas de integridade restrições(constraint), domínios (domain) e
● verificações (check)
● Stored Procedures:● transactions
● funções SQL
● funções PL/PGSQL
● disparadores (triggers)
● manutenção e otimização de banco de dados:● otimização de SQL
● criação de índices (index)
● uso das ferramentas vacuum e analyse
![Page 6: 4º TSI Jonathan de Matoseventos.uepg.br/jonathan/bdw_2013_1/aula01.pdf · Conteúdo Operadores: lógicos, aritméticos, relacionais e especiais (like, between, null e is null ) inserção](https://reader033.vdocuments.pub/reader033/viewer/2022050201/5f5537f560f4da560b622b43/html5/thumbnails/6.jpg)
Softwares envolvidos
● Apache HTTP Server● PostgreSQL 8.4● PHP● PhpPgAdmin● Editor para códigos (notepad, Dreamweaver)● XAMP
![Page 7: 4º TSI Jonathan de Matoseventos.uepg.br/jonathan/bdw_2013_1/aula01.pdf · Conteúdo Operadores: lógicos, aritméticos, relacionais e especiais (like, between, null e is null ) inserção](https://reader033.vdocuments.pub/reader033/viewer/2022050201/5f5537f560f4da560b622b43/html5/thumbnails/7.jpg)
Dado e Informação● Apesar de serem termos interligados e fazerem
parte de um mesmo contexto, possuem significados totalmente distintos.
● Basicamente, um dado é um conjunto de símbolos (alfanumérico ou imagem), que não está agregado a nenhum conhecimento específico, tornando-o inutilizável para quem não souber em qual contexto está contido e o que representa.
● Ex.: 1549
![Page 8: 4º TSI Jonathan de Matoseventos.uepg.br/jonathan/bdw_2013_1/aula01.pdf · Conteúdo Operadores: lógicos, aritméticos, relacionais e especiais (like, between, null e is null ) inserção](https://reader033.vdocuments.pub/reader033/viewer/2022050201/5f5537f560f4da560b622b43/html5/thumbnails/8.jpg)
Dado e Informação
● Uma informação é a agregação de um determinado conhecimento a um dado.
● Uma informação pode ser interpretada, enquanto um dado apenas pode ser visualizado.
● Ex.: 1549 é número de garrafas de vinho vendidas por uma determinada loja no mês X
![Page 9: 4º TSI Jonathan de Matoseventos.uepg.br/jonathan/bdw_2013_1/aula01.pdf · Conteúdo Operadores: lógicos, aritméticos, relacionais e especiais (like, between, null e is null ) inserção](https://reader033.vdocuments.pub/reader033/viewer/2022050201/5f5537f560f4da560b622b43/html5/thumbnails/9.jpg)
Dados e Informações
● Hierarquicamente, o dado serve como matéria prima para o alcance de uma informação, pois é com base nele que pode ser feita qualquer interpretação sobre seu valor, objetivando-se o conhecimento.
● Ex.: 1549 + número de vendas mêx X = decisão futura de compras para o próximo mês
![Page 10: 4º TSI Jonathan de Matoseventos.uepg.br/jonathan/bdw_2013_1/aula01.pdf · Conteúdo Operadores: lógicos, aritméticos, relacionais e especiais (like, between, null e is null ) inserção](https://reader033.vdocuments.pub/reader033/viewer/2022050201/5f5537f560f4da560b622b43/html5/thumbnails/10.jpg)
Conceitos
● Bancos de dados (ou bases de dados): é uma coleção de dados interrelacionados, representando informações sobre um domínio específico.
● São conjuntos de registros dispostos em estrutura regular que possibilita a reorganização dos mesmos e produção de informação. Um banco de dados normalmente agrupa registros utilizáveis para um mesmo fim.
● Um banco de dados é usualmente mantido e acessado por meio de um software conhecido como Sistema Gerenciador de Banco de Dados (SGBD). Normalmente um SGBD adota um modelo de dados, de forma pura, reduzida ou estendida. Muitas vezes o termo banco de dados é usado como sinônimo de SGBD.
● Exemplos: Oracle, Paradox, Access, DBase, MySQL, Interbase
![Page 11: 4º TSI Jonathan de Matoseventos.uepg.br/jonathan/bdw_2013_1/aula01.pdf · Conteúdo Operadores: lógicos, aritméticos, relacionais e especiais (like, between, null e is null ) inserção](https://reader033.vdocuments.pub/reader033/viewer/2022050201/5f5537f560f4da560b622b43/html5/thumbnails/11.jpg)
Objetivos de um SGBD
● Isolar os usuários dos detalhes mais internos do banco de dados (abstração de dados).
● Prover independência de dados às aplicações (estrutura física de armazenamento e à estratégia de acesso).
![Page 12: 4º TSI Jonathan de Matoseventos.uepg.br/jonathan/bdw_2013_1/aula01.pdf · Conteúdo Operadores: lógicos, aritméticos, relacionais e especiais (like, between, null e is null ) inserção](https://reader033.vdocuments.pub/reader033/viewer/2022050201/5f5537f560f4da560b622b43/html5/thumbnails/12.jpg)
Vantagens de um SGBD
● rapidez na manipulação e no acesso à informação;
● redução do esforço humano (desenvolvimento e utilização);
● disponibilização da informação no tempo necessário;
● controle integrado de informações distribuídas fisicamente;
● redução de redundância e de inconsistência de informações;
● compartilhamento de dados;
● aplicação automática de restrições de segurança;
● redução de problemas de integridade.
![Page 13: 4º TSI Jonathan de Matoseventos.uepg.br/jonathan/bdw_2013_1/aula01.pdf · Conteúdo Operadores: lógicos, aritméticos, relacionais e especiais (like, between, null e is null ) inserção](https://reader033.vdocuments.pub/reader033/viewer/2022050201/5f5537f560f4da560b622b43/html5/thumbnails/13.jpg)
Desvantagens de um SGBD
● Sem dispositivos de controle adequados, a segurança pode ficar comprometida; por exemplo, no caso de acesso não autorizado a dados.
● A integridade das informações pode ser comprometida se não houver mecanismos de controle; por exemplo no caso de manipulação concorrente de dados.
● A operação do sistema de banco de dados e o desenvolvimento de aplicações precisam ser feitos com muita precisão para evitar que informações não correspondam à realidade.
● A administração do sistema de banco de dados pode se tornar muito complexa em ambientes distribuídos, com grande volume de informações manipuladas por uma grande quantidade de usuários.
![Page 14: 4º TSI Jonathan de Matoseventos.uepg.br/jonathan/bdw_2013_1/aula01.pdf · Conteúdo Operadores: lógicos, aritméticos, relacionais e especiais (like, between, null e is null ) inserção](https://reader033.vdocuments.pub/reader033/viewer/2022050201/5f5537f560f4da560b622b43/html5/thumbnails/14.jpg)
Modelos de Dados
![Page 15: 4º TSI Jonathan de Matoseventos.uepg.br/jonathan/bdw_2013_1/aula01.pdf · Conteúdo Operadores: lógicos, aritméticos, relacionais e especiais (like, between, null e is null ) inserção](https://reader033.vdocuments.pub/reader033/viewer/2022050201/5f5537f560f4da560b622b43/html5/thumbnails/15.jpg)
Modelos de Dados
![Page 16: 4º TSI Jonathan de Matoseventos.uepg.br/jonathan/bdw_2013_1/aula01.pdf · Conteúdo Operadores: lógicos, aritméticos, relacionais e especiais (like, between, null e is null ) inserção](https://reader033.vdocuments.pub/reader033/viewer/2022050201/5f5537f560f4da560b622b43/html5/thumbnails/16.jpg)
Modelos de Dados
![Page 17: 4º TSI Jonathan de Matoseventos.uepg.br/jonathan/bdw_2013_1/aula01.pdf · Conteúdo Operadores: lógicos, aritméticos, relacionais e especiais (like, between, null e is null ) inserção](https://reader033.vdocuments.pub/reader033/viewer/2022050201/5f5537f560f4da560b622b43/html5/thumbnails/17.jpg)
Modelos de Dados
![Page 18: 4º TSI Jonathan de Matoseventos.uepg.br/jonathan/bdw_2013_1/aula01.pdf · Conteúdo Operadores: lógicos, aritméticos, relacionais e especiais (like, between, null e is null ) inserção](https://reader033.vdocuments.pub/reader033/viewer/2022050201/5f5537f560f4da560b622b43/html5/thumbnails/18.jpg)
Modelos de Dados
![Page 19: 4º TSI Jonathan de Matoseventos.uepg.br/jonathan/bdw_2013_1/aula01.pdf · Conteúdo Operadores: lógicos, aritméticos, relacionais e especiais (like, between, null e is null ) inserção](https://reader033.vdocuments.pub/reader033/viewer/2022050201/5f5537f560f4da560b622b43/html5/thumbnails/19.jpg)
Banco de Dados RelacionalModelo conceitual
![Page 20: 4º TSI Jonathan de Matoseventos.uepg.br/jonathan/bdw_2013_1/aula01.pdf · Conteúdo Operadores: lógicos, aritméticos, relacionais e especiais (like, between, null e is null ) inserção](https://reader033.vdocuments.pub/reader033/viewer/2022050201/5f5537f560f4da560b622b43/html5/thumbnails/20.jpg)
Modelo Lógico
![Page 21: 4º TSI Jonathan de Matoseventos.uepg.br/jonathan/bdw_2013_1/aula01.pdf · Conteúdo Operadores: lógicos, aritméticos, relacionais e especiais (like, between, null e is null ) inserção](https://reader033.vdocuments.pub/reader033/viewer/2022050201/5f5537f560f4da560b622b43/html5/thumbnails/21.jpg)
Modelo Físico
![Page 22: 4º TSI Jonathan de Matoseventos.uepg.br/jonathan/bdw_2013_1/aula01.pdf · Conteúdo Operadores: lógicos, aritméticos, relacionais e especiais (like, between, null e is null ) inserção](https://reader033.vdocuments.pub/reader033/viewer/2022050201/5f5537f560f4da560b622b43/html5/thumbnails/22.jpg)
Porque usar um SGBD Relacional?
● Foram desenvolvidos para prover acesso facilitado aos dados, possibilitando que os usuários utilizassem uma grande variedade de abordagens no tratamento das informações.
● Enquanto em um banco de dados hierárquico os usuários precisam definir as questões de negócios de maneira específica, iniciando pela raiz do mesmo, nos
● Bancos de Dados Relacionais os usuários podem fazer perguntas relacionadas aos negócios através de vários pontos.
● A linguagem padrão dos Bancos de Dados
● Relacionais é a Structured Query Language, ou simplesmente SQL, como é mais conhecida.
![Page 23: 4º TSI Jonathan de Matoseventos.uepg.br/jonathan/bdw_2013_1/aula01.pdf · Conteúdo Operadores: lógicos, aritméticos, relacionais e especiais (like, between, null e is null ) inserção](https://reader033.vdocuments.pub/reader033/viewer/2022050201/5f5537f560f4da560b622b43/html5/thumbnails/23.jpg)
Tabelas (relações ou entidades)
● Na arquitetura de um banco de dados relacional usamos termos como: entidade(tabela), tupla(linhas) e atributo(coluna).
● Todos os dados de um banco de dados relacional são armazenados em tabelas.
● Uma tabela é uma simples estrutura de linhas e colunas.
● Em uma tabela, cada linha contém um mesmo conjunto de colunas (atributos).
● As tabelas associam-se entre si através de regras de relacionamentos, estas regras consistem em associar um ou vários atributos de uma tabela com um ou vários atributos de outra tabela.
![Page 24: 4º TSI Jonathan de Matoseventos.uepg.br/jonathan/bdw_2013_1/aula01.pdf · Conteúdo Operadores: lógicos, aritméticos, relacionais e especiais (like, between, null e is null ) inserção](https://reader033.vdocuments.pub/reader033/viewer/2022050201/5f5537f560f4da560b622b43/html5/thumbnails/24.jpg)
Registros (linhas ou tuplas)
● Cada linha formada por uma lista ordenada de colunas representa um registro, ou tupla.
● Os registros não precisam conter informações em todas as colunas, podendo assumir valores nulos quando assim se fizer necessário.
● Resumidamente, um registro é uma instância de uma tabela, ou entidade.
![Page 25: 4º TSI Jonathan de Matoseventos.uepg.br/jonathan/bdw_2013_1/aula01.pdf · Conteúdo Operadores: lógicos, aritméticos, relacionais e especiais (like, between, null e is null ) inserção](https://reader033.vdocuments.pub/reader033/viewer/2022050201/5f5537f560f4da560b622b43/html5/thumbnails/25.jpg)
Colunas (campos ou atributos)
● As colunas de uma tabela são também chamadas de Atributos.
● Ao conjunto de valores que um atributo pode assumir chama-se domínio.
● Por exemplo: em um campo do tipo numérico, serão somente armazenados números.
![Page 26: 4º TSI Jonathan de Matoseventos.uepg.br/jonathan/bdw_2013_1/aula01.pdf · Conteúdo Operadores: lógicos, aritméticos, relacionais e especiais (like, between, null e is null ) inserção](https://reader033.vdocuments.pub/reader033/viewer/2022050201/5f5537f560f4da560b622b43/html5/thumbnails/26.jpg)
Chave (key)
● As tabelas relacionam-se umas as outras através de chaves.
● Uma chave é um conjunto de um ou mais atributos que determinam a unicidade de cada registro.
● Chave primária: (PK - Primary Key) é a chave que identifica cada registro dando-lhe unicidade. A chave primária nunca se repetirá.
● Chave Estrangeira: (FK - Foreign Key) é a chave formada através de um relacionamento com a chave primária de outra tabela. Define um relacionamento entre as tabelas e pode ocorrer repetidas vezes. Caso a chave primária seja composta na origem, a chave estrangeira também o será.
![Page 27: 4º TSI Jonathan de Matoseventos.uepg.br/jonathan/bdw_2013_1/aula01.pdf · Conteúdo Operadores: lógicos, aritméticos, relacionais e especiais (like, between, null e is null ) inserção](https://reader033.vdocuments.pub/reader033/viewer/2022050201/5f5537f560f4da560b622b43/html5/thumbnails/27.jpg)
Relacionamento (cardinalidade)
● Relacionamento 1:1 (lê-se relação um-para-um) - indica que as tabelas têm relação unívoca entre si. Você escolhe qual tabela vai receber a chave estrangeira;
● Exemplo: Um cliente é um usuário do sistema e todo usuário do sistema é um cliente;
![Page 28: 4º TSI Jonathan de Matoseventos.uepg.br/jonathan/bdw_2013_1/aula01.pdf · Conteúdo Operadores: lógicos, aritméticos, relacionais e especiais (like, between, null e is null ) inserção](https://reader033.vdocuments.pub/reader033/viewer/2022050201/5f5537f560f4da560b622b43/html5/thumbnails/28.jpg)
Relacionamento (cardinalidade)
● Relacionamento 1:n (lê-se um-para-muitos) - a chave primária da tabela que tem o lado 1 vai para a tabela do lado N. No lado N ela é chamada de chave estrangeira;
● Exemplo: Uma região pode ter várias vinícolas, mas cada vinícola pertence apenas a essa região.
![Page 29: 4º TSI Jonathan de Matoseventos.uepg.br/jonathan/bdw_2013_1/aula01.pdf · Conteúdo Operadores: lógicos, aritméticos, relacionais e especiais (like, between, null e is null ) inserção](https://reader033.vdocuments.pub/reader033/viewer/2022050201/5f5537f560f4da560b622b43/html5/thumbnails/29.jpg)
Relacionamento (cardinalidade)
● Relacionamento n:n ou n:m (lê-se muitos-para-muitos) - quando tabelas têm entre si relação n:m, é necessário criar uma nova tabela com as chaves primárias das tabelas envolvidas, ficando assim uma chave composta, ou seja, formada por diversos campos-chave de outras tabelas. A relação então se reduz para uma relação 1:n, sendo que o lado n ficará com a nova tabela criada.
● Exemplo: Um pedido de compra pode ter várias mercadorias, e um tipo de mercadoria pode ser listada em vários pedidos.
![Page 30: 4º TSI Jonathan de Matoseventos.uepg.br/jonathan/bdw_2013_1/aula01.pdf · Conteúdo Operadores: lógicos, aritméticos, relacionais e especiais (like, between, null e is null ) inserção](https://reader033.vdocuments.pub/reader033/viewer/2022050201/5f5537f560f4da560b622b43/html5/thumbnails/30.jpg)
PostgreSQLModelos de aplicações
● Modelo standalone● Modelo cliente-servidor● Modelo em n camadas (sistemas distribuídos)● Modelo em 3 camadas (apresentação-negócio-
dados)● Sistemas baseados na Web
![Page 31: 4º TSI Jonathan de Matoseventos.uepg.br/jonathan/bdw_2013_1/aula01.pdf · Conteúdo Operadores: lógicos, aritméticos, relacionais e especiais (like, between, null e is null ) inserção](https://reader033.vdocuments.pub/reader033/viewer/2022050201/5f5537f560f4da560b622b43/html5/thumbnails/31.jpg)
Modelo standalone
![Page 32: 4º TSI Jonathan de Matoseventos.uepg.br/jonathan/bdw_2013_1/aula01.pdf · Conteúdo Operadores: lógicos, aritméticos, relacionais e especiais (like, between, null e is null ) inserção](https://reader033.vdocuments.pub/reader033/viewer/2022050201/5f5537f560f4da560b622b43/html5/thumbnails/32.jpg)
Modelo cliente-servidor
![Page 33: 4º TSI Jonathan de Matoseventos.uepg.br/jonathan/bdw_2013_1/aula01.pdf · Conteúdo Operadores: lógicos, aritméticos, relacionais e especiais (like, between, null e is null ) inserção](https://reader033.vdocuments.pub/reader033/viewer/2022050201/5f5537f560f4da560b622b43/html5/thumbnails/33.jpg)
Modelo Web
![Page 34: 4º TSI Jonathan de Matoseventos.uepg.br/jonathan/bdw_2013_1/aula01.pdf · Conteúdo Operadores: lógicos, aritméticos, relacionais e especiais (like, between, null e is null ) inserção](https://reader033.vdocuments.pub/reader033/viewer/2022050201/5f5537f560f4da560b622b43/html5/thumbnails/34.jpg)
Modelo WebPáginas estáticas
![Page 35: 4º TSI Jonathan de Matoseventos.uepg.br/jonathan/bdw_2013_1/aula01.pdf · Conteúdo Operadores: lógicos, aritméticos, relacionais e especiais (like, between, null e is null ) inserção](https://reader033.vdocuments.pub/reader033/viewer/2022050201/5f5537f560f4da560b622b43/html5/thumbnails/35.jpg)
Modelo WebPáginas dinâmicas
![Page 36: 4º TSI Jonathan de Matoseventos.uepg.br/jonathan/bdw_2013_1/aula01.pdf · Conteúdo Operadores: lógicos, aritméticos, relacionais e especiais (like, between, null e is null ) inserção](https://reader033.vdocuments.pub/reader033/viewer/2022050201/5f5537f560f4da560b622b43/html5/thumbnails/36.jpg)
Modelo WebPáginas dinâmicas + PostagreSQL
![Page 37: 4º TSI Jonathan de Matoseventos.uepg.br/jonathan/bdw_2013_1/aula01.pdf · Conteúdo Operadores: lógicos, aritméticos, relacionais e especiais (like, between, null e is null ) inserção](https://reader033.vdocuments.pub/reader033/viewer/2022050201/5f5537f560f4da560b622b43/html5/thumbnails/37.jpg)
PostgresSQL (características)
● Seu desenvolvimento teve início no ano de 1985 (Berkeley CA).
● É um SGBD relacional, orientado a objeto e com forte suporte a operações ACID (Atomicidade, Consistência, Isolamento e Durabilidade).
● É um software de livre distribuição, multiplataforma e tem seu código-fonte aberto.
● Oferece suporte à linguagem SQL nos padrões SQL92/SQL99.
● Em termos de recursos, pode ser comparado aos melhores
● SGBDs comerciais existentes, sendo inclusive superior a alguns deles.
● O PostgreSQL introduziu conceitos do modelo objeto-relacional que hoje estão disponíveis em alguns bancos de dados comerciais.