PSI 12ºANO » MÓDULO 13 - TÉCNICAS DE MODELAÇÃO DE DADOS

PROGRAMAÇÃO E SISTEMAS DE INFORMAÇÃO

1. Necessidade das bases de dados

Base de Dados PT

 

Nos dias de hoje, o uso do computador é uma prática comum. A necessidade de registar os dados no computador prende-se com o grande crescimento, ao nível do volume, da informação armazenada. Em bases de dados tradicionais, de dados de clientes de uma empresa, por exemplo, o suporte utilizado (papel ou cartão) era de fácil deterioração, sendo difícil a alteração e pesquisa de informação armazenada quando o arquivo tomava grandes dimensões. Uma base de dados neste suporte traz também o inconveniente do espaço físico ocupado, havendo também forte possibilidade de duplicação da informação. A utilização de bases de dados em computador veio solucionar diversos problemas. O suporte utilizado é de menor deterioração, ocupando menor espaço físico, a manipulação de informação é facilitada, podendo ser eliminados dados redundantes.


2. Base de Dados

Uma Base de Dados é um sistema de armazenamento de dados relacionados entre si, de uma forma permanente, num sistema informático, com redundância controlada, acessíveis a um grupo de utilizadores e estruturado sob a forma de ficheiros de dados ou tabelas. Assim, por exemplo, uma lista de endereços, um conjunto de dados sobre clientes ou ainda uma lista organizada de CD’s podem ser consideradas bases de dados.

A Base de Dados (database) pode também ser designada por Banco de Dados (databank). Estes dois termos são sinónimos. Quando falamos de bases de dados, é importante distinguir Dados de Informação. Os Dados são os elementos isolados, significativos, rigorosos e relevantes. São os factos do mundo real. Podem ser vistos como a matéria-prima necessária para um determinado processamento. A Informação é o conjunto de dados, organizados e sujeitos a um tratamento, tornando assim possível a sua utilização num determinado contexto. Os dados não têm qualquer valor e só se transformam em informação quando relacionados, ou interpretados, de alguma forma.

Para uma base de dados deve existir um Administrador. Este é o responsável máximo da base de dados. Cabe-lhe gerir todos os acessos e realizar a coordenação e monitorização do seu uso.

Existe uma grande variedade de classificações para bases de dados, de acordo com o modelo de programação associado. Durante muito tempo, foi usual considerar três principais modelos conceptuais de bases de dados: modelo hierárquico, modelo em rede e modelo relacional. O modelo mais utilizado é o modelo relacional, que se baseia num conjunto de operações lógicas de álgebra e cálculo relacionais. Neste modelo, as bases de dados são constituídas por tabelas e relacionamentos entre elas. A correcta estruturação das tabelas e seus relacionamentos garantirá, conjuntamente com um sistema de gestão de bases de dados relacional, um funcionamento coerente de uma base de dados, relativamente a operações típicas como consulta, actualização, adição e eliminação.


3. Sistemas de Gestão de Base de Dados

Para gerir as bases de dados foram criadas ferramentas do tipo SGBD – Sistema de Gestão de Bases de Dados. Um sistema de gestão de bases de dados (SGBD) é um programa que disponibiliza todos os serviços básicos relacionados com as bases de dados, como operações de definição de estrutura, manipulação dos dados e controlo dos dados.

Existem diversas escolhas no mercado de SGBD, podendo dividir-se em dois grandes grupos:

Grande porte – Exemplos: ORACLE, Microsoft SQL Server, MySQL, Ingres, Informix e DB2.
Uso pessoal (doméstico) e/ou de pequenas empresas – Exemplos: Dbase, FoxPro, Microsoft Access e OpenOffice Base.

O PHP e as Bases de Dados - O PHPMYADMIN


4. Base de Dados Relacional

O termo base de dados está intimamente associado à noção de “uma colecção de informação”. De um ponto de vista mais teórico pode-se afirmar que uma base de dados é um conjunto estruturado de informação. Uma base de dados é uma colecção de dados formalmente definida, informatizada, partilhável e sujeita a um controlo central.

Uma base de dados é uma colecção de dados inter-relacionados com múltiplas utilizações.

Uma base de dados relacional é um sistema de gestão de informação relativamente complexo.

Se a função de uma base de dados fosse simplesmente a de armazenar dados, a sua organização seria relativamente simples.

O Modelo relacional organiza os dados em tabelas logo a base de dados é composta por um conjunto de tabelas e associações entre as tabelas. A associação entre os dados é o ponto forte dos sistemas relacionais.
As tabelas são formadas por linhas e colunas onde figuram os dados. Numa base de dados relacional os dados estão todos representados como valores nas colunas das tabelas.


5. Conceitos do Modelo Relacional

• O modelo relacional representa os dados numa BD como uma coleção de tabelas (relações);
• Cada tabela terá um nome, que será único, e um conjunto de atributos (representados pelas colunas) com os seus respectivos nomes e domínio:

• Todos os valores de uma coluna são do mesmo tipo de dados;
• O nome de cada coluna é chamado de atributo;
• A cada domínio está associado um tipo de dados ou formato.

• Na terminologia de BD Relacional uma linha é chamada tupla, um nome de coluna é chamado de atributo e cada tabela é chamada de relação;
• Cada linha da tabela (tupla) tem um conjunto de atributos ou atributo chamado de campo chave que a identifica de maneira única na relação;
• Nenhum valor de chave primária poderá ser NULO.


Domínios, Relações e Atributos

O modelo relacional baseia-se em três conceitos básicos: domínio, relação e atributo.

O domínio é um conjunto de valores que possuem determinadas propriedades em comum; ao conjunto de todos os valores possíveis para um determinado atributo dá-se o nome de domínio. O domínio engloba dados atómicos ou simples, porque não podem sofrer mais nenhuma decomposição.
Uma relação representa um conjunto de objectos dum tipo particular. Os objectos que pertencem à relação são, no essencial, os elementos que obedecem às propriedades da relação. Assim, a relação é um conjunto com propriedades próprias, em que os seus elementos se designam por tuplas ou linhas.
Uma relação representa um conjunto de objectos dum tipo particular. Os objectos que pertencem à relação são, no essencial, os elementos que obedecem às propriedades da relação. Assim, a relação é um conjunto com propriedades próprias, em que os seus elementos se designam por tuplas ou linhas.

Chave Primária e Chave Estrangeira

Cada tabela deve incluir um campo ou conjunto de campos que identifique de forma exclusiva, cada registo (linha) armazenado na tabela. Esse(s) campo(s) são chamado(s) de chave primária da tabela.

Desta forma, com a chave primária cria-se uma identificação única, o que dá total segurança para que aplicações possam aceder, alterar e excluir dados sem correr o risco de apagar ou alterar os registos (linhas) errados.

A chave estrangeira ocorre quando um atributo de uma relação é chave primária noutra relação.
Por exemplo:


6. Vantagens (e Desvantagens) dos Sistemas de Base de Dados

Resposta rápida aos pedidos de informação. Como os dados estão integrados numa única estrutura (a base de dados) a resposta a questões complexas processa-se com rapidez.
Acesso múltiplo. O software de gestão de base de dados permite que os dados sejam acedidos de diversíssimas maneiras. Nomeadamente, os dados podem ser visualizados através de pesquisas sobre qualquer um dos campos da tabela.
Flexibilidade. Em consequência da independência entre dados e programas, qualquer alteração num desses elementos não implica modificações drásticas no outro.
Integridade da informação. Dada a absoluta exigência de não permitir a redundância, as modificações de dados são feitas num só sítio, evitando-se assim possíveis conflitos entre diferentes versões da mesma informação.
Melhor gestão da informação. Em consequência da localização central dos dados, sabe-se sempre como e onde está a informação.

A principal, e mais significativa, desvantagem dos sistemas de gestão de base de dados é o seu custo, não tanto em termos de preço do software de base, mas fundamentalmente em despesas de desenvolvimento. É um tipo de software altamente sofisticado que requer, para o seu desenho e desenvolvimento, pessoal com uma formação adequada.
Os custos resultantes duma má conceptualização são enormes. A construção duma base de dados deficiente tem consequências nefastas numa organização. Tanto em custos directos, como em termos psicológicos, ficando na memória da organização uma animosidade contra as “geniais” inovações tecnológicas.


7. Conceptualização de Modelos de Dados

Uma base de dados é um modelo das necessidades em informação do utilizador final, ou seja, do sistema real.

Os modelos de dados não se referem apenas a dados. São eles próprios feitos de dados.

O desenvolvimento do modelo conceptual é, sem dúvida, o passo mais importante na criação de uma base de dados relacional. Este passo deve ser sempre a primeira etapa do projeto.

O esquema conceptual deve obedecer são as seguintes propriedades:

1. Simplicidade
Simplicidade compreende a facilidade de se deixar compreender e manipular, devendo obedecer a algumas condições:
• O número de objectos básicos deve ser pequeno.
O esquema conceptual deve ser construído com recurso a somente meia dúzia de conceitos e objectos.
• Não se devem misturar nem agrupar os conceitos.
Para que um conceito seja claro não deve ser utilizado para aglutinar outros objectos ou conceitos.
• A redundância deve ser sempre eficazmente controlada.
Não deve ser permitido que o mesmo facto seja mencionado em dois ou mais lugares. Um facto representa a associação entre uma entidade e alguma das suas propriedades. Por exemplo, a associação entre a batata-semente e o seu preço numa certa data.

2. Base Teórica
Dada a importância deste nível conceptual, é essencial que este tenha como suporte um conjunto sólido de conceitos.
A abordagem relacional satisfaz globalmente todos esses requisitos.
• Toda a informação é representada por um só conceito, a relação. A relação é um conceito familiar ao utilizador - há várias centenas (talvez milhares) de anos que as pessoas utilizam tabelas. A relação é um conceito sólido facilmente manipulável.
• A teoria da normalização (conjunto de normas associadas ao modelo relacional) garante que um mesmo facto não apareça em mais de um sítio.


8. Processo de desenho de uma base de dados

O primeiro passo centra-se na recolha e análise das especificações. Para isso, a equipa de desenvolvimento conduzirá uma série de entrevistas aos utilizadores, e procurará reunir toda a documentação existente sobre as actividades em estudo.
Depois da análise das especificações, o passo seguinte é na direcção da criação de um esquema conceptual da futura base de dados. Este esquema será estabelecido através de um modelo de dados conceptual de alto nível. O esquema conceptual é uma descrição rigorosa das necessidades (em dados e informação) dos utilizadores.
A última etapa consiste na construção física da base de dados através de um sistema de gestão de base de dados.


Modelo ER (Entidade-Relação)

Entidade - é um conjunto de pessoas, lugares, objectos, acontecimentos ou conceitos sobre o qual pretendemos armazenar dados.
Ex.: Alunos, Professores, Cursos, …

Relacionamento - é uma associação entre duas entidades.
Ex.: pertence, lecciona, compra, …

Atributo - Atributo é uma característica específica de uma Entidade.
Ex.: Nome, data de nascimento, morada, telefone, curso, …

Notação:

Num Diagrama E-R as entidades são representadas por retângulos e os relacionamentos por linhas entre esses retângulos. Nos retângulos colocam-se os nomes das diferentes entidades.

ENTIDADE

RELACIONAMENTO 

 

 A notação 1:1, 1:M e M:N caracteriza o tipo de relacionamento existente entre duas entidades.


Tipos de Relacionamentos



Caracterização das Entidades

Atributos: elementos ou propriedades que caracterizam uma entidade.

Domínio de um atributo: conjunto de valores possíveis para esse atributo.

Chave Primária: atributo(s) que identificam de forma unívoca cada instância de uma entidade.

Chave Estrangeira: atributo(s) cujo valor coincide com a chave primária de outra entidade.


Passos para construir um ER

1. Identificar as Entidades
2. Para cada Entidade identificar os seus atributos e definir a chave primária
3. Identificar todos os relacionamentos entre as Entidades
4. Validar o modelo obtido e repetir este processo desde o 1º passo, se necessário.


Normalização de dados

Trata-se de uma técnica de decomposição de tabelas que visa a simplificação das estruturas de dados de forma evitar as chamadas anomalias de atualização.

Formas Normais:
Primeira Forma Normal (1FN)
Segunda Forma Normal (2FN)
Terceira Forma Normal (3FN)

1FN

Uma relação está na 1ª Forma Normal se
. Cada atributo contém apenas valores atómicos.
. Não há conjuntos de atributos repetidos descrevendo a mesma característica.

Exemplo de relações que não estão na 1ºForma Normal:

Nome Endereço NIF Cursos
Artur Covilhã 123456789 Programador
Ana Fundão 222222222 Operador, Programador
Carlos Covilhã 222333444 Analista, Programador, Operador

 Na 1FN retiram-se os grupos repetitivos;

Observe:

R( N_nota_enc, Cod_cliente, Nome_cliente, Morada_cliente, (Cod_produto, Desc_produto, Preco_produto, Quantidade)* )

Nesta relação constata-se que na nota de encomenda existem várias linhas de produtos:

Encomendas
N_nota_enc
Cod_cliente
Nome_cliente
Morada_cliente
Produtos*
Cod_produto
Desc_produto
Preço_produto
Quantidade

 (decompor a estrutura para obter a 1FN)
1FN: retirar grupos repetitivos e definir os campos chave

 Nota_de_enc ( N_nota_enc, Cod_cliente, Nome_cliente, Morada_cliente)

Linha_nota_enc (N_nota_encCod_produto, Desc_produto,Preco_produto, Quantidade)

 Ambas as relações estão na 1ª Forma Normal (não têm grupos repetitivos).

 

2FN

Na segunda forma normal removem-se as dependências funcionais: 
quando alguns dos atributos dependem apenas de parte da chave e não da chave completa.

 Observe:

Linha_nota_enc (N_nota_encCod_produto, Desc_produto,Preco_produto, Quantidade)

Desc_produto depende exclusivamente Cod_produto e não da nota de encomenda; o preço gera subjectividade;
considerando que se trata do preço de compra, permanece na relação se se trata do preço de venda do produto então deve ser transportado para a tabela produtos.

 (decompor a estrutura para obter a 2FN)
2FN: retirar dependencias funcionais

 Nota_de_enc ( N_nota_enc, Cod_cliente, Nome_cliente, Morada_cliente)

Linha_nota_enc (N_nota_encCod_produto, Quantidade)

Produto (Cod_produto, Desc_produto, Preco_produto)

 Em conclusão uma relação está na 2ª forma normal se está na 1ª FN e os atributos que não são chave dependem  da totalidade da chave.

 Para vermos se uma relação está na 2FN:
1 – Identificamos a chave da tabela. Se a chave for apenas um atributo, ou for constituída por todos os atributos da relação, então podemos concluir que está na 2FN.
2 – Se a chave for composta (tiver mais do que um atributo) verificamos se há atributos que não são chave e que dependem apenas de parte da chave. Se não houver, então está na 2FN.
Se houver, então decompor de acordo com o esquema anterior.

 

3FN

Na terceira forma normal removem-se as dependências transitivas: quando alguns dos atributos não chave apresentam dependências entre si.

 Observe:

Nota_de_enc ( N_nota_enc, Cod_cliente, Nome_cliente, Morada_cliente)

O Nome_cliente e a Morada_cliente dependem exclusivamente do Cod_cliente.

 (decompor a estrutura para obter a 3FN)
3FN: retirar dependencias transitivas

 Nota_de_enc ( N_nota_enc, Cod_cliente)

Cliente ( Cod_cliente, Nome_cliente, Morada_cliente)

Linha_nota_enc (N_nota_encCod_produto, Quantidade)

Produto (Cod_produto, Desc_produto, Preco_produto)

 Em conclusão uma relação está na 3FN se está na 2FN e nenhum dos atributos não chave depende de outro também não chave.



9. O phpMYADMIN

O phpMyAdmin é uma ferramenta gratuita, escrita em PHP, e que permite de forma muito simples fazer a administração das bases de dados (MySql) através do browser.

Na atualidade a maior parte dos sites usam bases de dados MySQL para guardar os seus conteúdos. Para gerir a base de dados MySQL dos sites usa-se na maioria das vezes a aplicação web  phpMyAdmin, que está que está disponível em 99,9% dos servidores de alojamento web.

phpMyAdmin é muito utilizado pelos webmasters. Está disponível em 54 idiomas. É uma ferramenta obrigatória em quase todos os web hostings e também é incluída com os pacotes de servidores offline, como por exemplo o XAMPP. Com o phpMyadmin é possível:

O phpMYADMIN requer um servidor web e um servidor de base de dados. Se for instalado com o pacote XAMPP o servidor web é o APACHE e o servidor de base de dados é o MySQL.


SERVIDOR WEB - APACHE

Sempre que um utilizador acede a um site é enviada uma requisição ao servidor que aloja o site. O servidor baseado nestas requisições responde à solicitação com algum serviço. Um servidor é um computador disponibilizado numa rede com o objetivo de prover serviços para outros hostsNo caso de sites trata-se de um servidor Web.

O apache opera no modelo cliente-servidor, ou seja, o servidor web Apache, recebe as requisições  do cliente (browser) e responde ao cliente em codificação HTML.  O servidor web  interpreta a codificação HTML e não interpreta o código PHP Ao receber uma solicitação .php o servidor aciona o Interpretador PHP que processa as solicitações do código PHP.

 

SERVIDOR WEB - MySQL

O MySQL é um sistema de gestão de base de dados (SGBD), que utiliza a linguagem SQL (Linguagem de Consulta Estruturada, do inglês Structured Query Language) como interface. É atualmente uma das bases de dados mais populares, com mais de 10 milhões de instalações pelo mundo.

O sucesso do MySQL deve-se à fácil integração com o PHP incluído, quase que obrigatoriamente, nos pacotes de hospedagem de sites da Internet oferecidos atualmente.

Características

Portabilidade (suporta praticamente qualquer plataforma atual);
Compatibilidade (existem drivers ODBC, JDBC e .NET e módulos de interface para diversas linguagens de programação, como Delphi, Java, C/C++, Python, Perl, PHP, ASP e Ruby)
Excelente desempenho e estabilidade;
Pouco exigente quanto a recursos de hardware;
Facilidade de uso; É um Software Livre com base na GPL;
Contempla a utilização de vários Storage Engines como MyISAM, InnoDB, Falcon, BDB, Archive, Federated, CSV, Solid... Suporta controle transacional;
Suporta Triggers;
Suporta Cursors (Non-Scrollable e Non-Updatable);
Suporta Stored Procedures e Functions;
Replicação facilmente configurável;
Interfaces gráficas (MySQL Toolkit) de fácil utilização cedidos pela MySQL Inc.


10. phpMYADMIN e comandos básicos do SQL


CREATE DATABASE [IF NOT EXISTS] nome_bd;


CREATE TABLE nome _ da_ tabela 

campo1 tipo_do_campo, 
campo2 tipo_do_campo,
PRIMARY KEY (campo1) 
);


INSERT INTO nome _ da_ tabela (campo1,campo2,..) Values (valor1,valor2,..)


SELECT campo1,campo2,.. FROM nome_tabela


SELECT campo1,campo2,.. FROM nome_tabela WHERE campo operador valor



EXERCÍCIO 1

 

1. Crie no MYSQL uma base de dados designada por "bd_psi".

2. Adicione a seguinte tabela à BD:

3. Introduza os seguintes registos na tabela "modulos":

4. Escreva e execute as instruções SQL para:

4.1 Obter uma listagem de todos os módulos;

4.2 Obter os dados do módulo 1;

4.3 Obter os dados do módulo 4;

4.4 Mostrar os módulos com 20 horas;

4.5 Mostrar os módulos com 30 horas.

5. Acrescente os seguintes registos à tabela "modulos":

6. Escreva e execute as instruções SQL para:


6.1 Obter uma listagem de todos os módulos com mais de 20 horas;
6.2 Mostrar os módulos com as horas compreendidas entre 30 e 45.

UPDATE nome_tabela SET campo1=valor1,campo2=valor2,... WHERE campo operador valor;

 

EXERCÍCIO 2

 

1. Escreva e execute as instruções SQL para:

1.1 Alterar a designacao do modulo "Estruturas de dados III" para "Projeto".

1.2 Alterar o total_horas de todos os módulos com 20 horas para 25 horas.



DELETE FROM nome_tabela WHERE campo operador valor;

 


11. OPERADORES LÓGICOS


12. SQL: FUNÇÕES DE AGREGAÇÃO

ESTUDO de CASO

AVG - média de valores

determinar a média do preço dos produtos


SUM - soma de valores

determinar o total em stocks (quantidade)


COUNT - contar

determinar quantos produtos existem na loja


MAX - máximo

determinar o maior preço

 


13. PHP + SQL

LIGAR UMA PÁGINA .PHP AO SERVIDOR MYSQL

A função mysqli_connect () abre uma nova ligação com o servidor MySQL.

Sintaxe

mysqli_connect(host,username,password,dbname,port,socket);

 

Parâmetro Descrição
host Opcional. Especifica o host name ou um IP address
username Opcional. Especifica o MySQL username
password Opcional. Especifica a MySQL password
dbname Opcional. Especifica a database default
port Optional. Especifica o número da porta para ligar ao MySQL server
socket Optional. Especifica o socket

Exemplo: Ligar ao MySql

LIGAR UMA PÁGINA .PHP A UMA BASE DE DADOS

A função mysqli_select_db () é utilizada para alterar a base de dados de padrão para a ligação.

Sintaxe

mysqli_select_db(connection,dbname);

Parâmetro Descrição
connection Obrigatório. Especifica a ligação de MySQL
dbname Obrigatório. Especifica o nome da base de dados

Exemplo: Ligar a uma Base de Dados

CONSULTAR UMA TABELA DA BASE DE DADOS

Bases de dados:


SQL campo AUTO_INCREMENT

Auto-incremento permite que um número único seja gerado quando um novo registo é inserido numa tabela.

Sintaxe para MySQL

A seguinte instrução SQL define a coluna "ID" com um campo de chave primária auto-increment na tabela "stock":

CREATE TABLE stock
(
ID int NOT NULL AUTO_INCREMENT,
referencia varchar(20) NOT NULL,
designacao varchar(100),
quantidade int,
preco double,
fotografia varchar(100),
PRIMARY KEY (ID)
)


 

Estrutura de ficheiros/pastas do Site


Página joias.php:

 

 VER CÓDIGO FONTE


PROCURAR LINHAS NUMA TABELA

Página procura_joias.php:

 VER CÓDIGO FONTE