37
Banco de dados na Web 4º TSI Jonathan de Matos

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

  • Upload
    others

  • View
    8

  • Download
    0

Embed Size (px)

Citation preview

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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.