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.
Top Related