4º TSI Jonathan de Matoseventos.uepg.br/jonathan/bdw_2013_1/aula01.pdf · Conteúdo Operadores:...

Post on 18-Jul-2020

10 views 0 download

Transcript of 4º TSI Jonathan de Matoseventos.uepg.br/jonathan/bdw_2013_1/aula01.pdf · Conteúdo Operadores:...

Banco de dados na Web

4º TSI

Jonathan de Matos

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

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)

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)

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

Softwares envolvidos

● Apache HTTP Server● PostgreSQL 8.4● PHP● PhpPgAdmin● Editor para códigos (notepad, Dreamweaver)● XAMP

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

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

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

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

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).

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.

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.

Modelos de Dados

Modelos de Dados

Modelos de Dados

Modelos de Dados

Modelos de Dados

Banco de Dados RelacionalModelo conceitual

Modelo Lógico

Modelo Físico

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.

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.

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.

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.

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á.

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;

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.

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.

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

Modelo standalone

Modelo cliente-servidor

Modelo Web

Modelo WebPáginas estáticas

Modelo WebPáginas dinâmicas

Modelo WebPáginas dinâmicas + PostagreSQL

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.