• Nenhum resultado encontrado

_ B A S E D E D A D O S P A R A I N T E R N E T ( S E R V E R S I D E )

N/A
N/A
Protected

Academic year: 2022

Share "_ B A S E D E D A D O S P A R A I N T E R N E T ( S E R V E R S I D E )"

Copied!
11
0
0

Texto

(1)

0 1 5 5 _ B A S E D E D A D O S P A R A I N T E R N E T ( S E R V E R S I D E )

EFA NÍVEL SECUNDÁRIO – TECNOLOGIAS DE INFORMAÇÃO E COMUNICAÇÃO MULTIMÉDIA (TICM)

04-05-2011

0155_Base de dados para Internet (Server Side) Formando: Fernando Duarte

(2)

2

T R A B A L H O I N D I V I D U A L

ÍNDICE:

Introdução 1. Definições

a. Base de dados.

b. Sistema de gestão de base de dados.

c. Modelo relacional.

d. Tabela

i. Campo

ii. Chave primária

iii. Chave externa ou estrangeira.

iv. Constraints (restrições).

e. Integridade referencial f. Linguagem Sql

2. Base de dados existentes no mercado a. Access

b. Oracle c. SQL Server d. Mysql

3. Vantagens de uma base de dados a. Persistência

b. Redundância c. Concorrência d. Segurança

e. Integridade dos dados f. Transacção

g. Replicação 4. Linguagem SQL - Sintaxe

a. Comando Create Database b. Comando Create table c. Comando Insert Into d. Comando UPDATE e. Comando DELETE f. Comando SELECT

i. Uso do Alias ii. Cláusula WHERE iii. Operador BETWEEN iv. Operador IN v. Operador LIKE vi. Operador DISTINCT vii. Cláusula GROUP BY viii. Cláusula HAVING ix. Operador EXISTS x. Operador Order By 5. View

6. Trigger

7. Stored procedures

(3)

3

INTRODUÇÃO AO SQL

SQL é uma linguagem padrão para aceder e manipular dados.

O QUE É SQL?

SQL é uma linguagem padrão para aceder e manipular dados.

SQL significa (Structured Query Language) linguagem de consulta estruturada SQL permite aceder e manipular dados

O SQL PODE FAZER?

 SQL pode executar consultas em banco de dados

 SQL pode recuperar dados de um banco de dados

 SQL pode inserir registos em um banco de dados

 SQL pode actualizar registos em um banco de dados

 SQL pode excluir registos de um banco de dados

 SQL pode criar novas bases de dados

 SQL pode criar novas tabelas em um banco de dados

 SQL pode criar procedimentos armazenados em um banco de dados

 SQL pode criar exibições em um banco de dados

 SQL pode definir permissões em tabelas, procedures e views

1. Definições

a)

Base de Dados

Uma base de dados é um simples repositório de informação relacionado com determinado assunto ou finalidade, ou seja, é uma colecção de dados ou itens informação estruturados de determinada maneira que permite a sua consulta, actualização e outros tipos de operação processados por meios informáticos.

b)

Sistema de gestão de base de dados

Os sistemas de gestão de base de dados são programas que permitem criar e manipular bases de dados, em que dados estão estruturados com independência relativamente aos programas de aplicação que os manipulam.

c

) Modelo relacional

Trata-se de um modelo bastante potente e ao mesmo tempo bastante simples, que não representa problemas. O elemento principal deste modelo é a relação. Por tanto, podemos dizer que um banco de dados relacional está composto por um conjunto de relações. A relação representa-se mediante uma tabela, esta tabela representa ao que no modelo entidade -relação chamávamos entidade. Esta tabela contém os atributos (colunas) e as tuplas (filas).

 Atributo: trata-se de cada uma das colunas da tabela. Vêem definidas por um nome e podem conter um conjunto de valores.

 Tupla: trata-se de cada uma das filas da tabela. É importante assinalar que não se podem ter tuplas duplicadas em uma tabela.

d)

Tabela

Tabelas são objectos de banco de dados que contêm todos os dados em um banco de dados. Uma definição de tabela é uma colecção de colunas. Nas tabelas, os dados são organizados em um formato de linha - e - coluna como numa planilha. Cada linha representa um registo exclusivo e cada coluna representa um campo dentro do registo. Por exemplo, uma tabela que contém dados de funcionários de uma empresa pode conter uma linha para cada funcionário e colunas representando as informações sobre o funcionário, como número, nome, endereço, cargo e número do telefone residencial do funcionário.

(4)

4

i. Campo - corresponde a uma das colunas da tabela. Local onde se armazena informação com uma mesma característica.

ii. Chave primária – todas as tabelas do modelo relacional têm de ser identificadas com uma chave primária. Uma chave primária é composta por um ou mais atributos que identificam de forma unívoca cada registo de uma tabela.

O campo da chave primária é de preenchimento obrigatório e não pode ter informação duplicada.

Os atributos que formam a chave primária surgem sublinhados no esquema da relação.

iii. Chave externa ou estrangeira – um atributo ou conjunto de atributos de um relação, em relacionamento com a chave primária de outra relação, diz-se uma chave estrangeira (ou externa) Esta chave é “herdada” de outra tabela, onde é chave primária.

A relação entre tabelas é feita através das chaves (primárias e estrangeiras).

iv. Constrains (restrições) - são objectos no banco de dados que servem para definir sua integridade. Ou seja, são as chaves primárias, chaves estrangeiras, chaves secundárias e outros elementos que dão uma segurança aos dados das tabelas, evitando que sejam excluídos ou alterados indevidamente.

e)

Integridade referencial

Em alguns relacionamentos o MSAccess pode reforçar a integridade referencial, quando podemos inserir ou apagar registos em tabelas relacionadas. A integridade referencial ajuda a garantir que os relacionamentos entre os registos são válidos, e que nós, acidentalmente, não apagamos dados relacionados.

O MSAccess pode reforçar a integridade referencial quando as condições são conhecidas:

 Os campos relacionados têm o mesmo tipo de dados.

 Ambas as tabelas pertencem à mesma base de dados do MSAccess (se as tabelas estão ligadas, elas têm que pertencer à mesma base de dados do MSAccess).

As opções são as seguintes:

• IMPOR A INTEGRIDADE REFERENCIAL

Não é permitido introduzir um valor de um registo num campo que é chave estrangeira, se esse valor não existir num registo da tabela onde aquele campo é chave primária.

• PROPAGAR ACTUALIZAÇÃO DOS CAMPOS RELACIONADOS

Não pode ser alterado o valor de um registo num campo que é chave primária numa tabela, se, numa outra tabela relacionada com a primeira, existirem registos que apresentam esse mesmo valor no campo correspondente (chave estrangeira).

• PROPAGAR ELIMINAÇÃO DOS CAMPOS RELACIONADOS

Não pode ser eliminado um registo numa tabela, se, numa outra tabela relacionada com a primeira, existirem registos que apresentem, no campo chave externa, valores que correspondem ao registo que se pretende eliminar.

f)

Linguagem Sql

A linguagem SQL (Strucured Query Language) é uma linguagem declarativa, ao contrário das linguagens habituais que são do tipo procedimental. Permite ao utilizador expressar aquilo que pretende sem ter que entrar em grandes detalhes sobre a localização física dos componentes, etc.

Na linguagem SQL, os utilizadores apenas indicam aquilo que pretendem sem dizer exactamente de que forma o computador terá que operar para obter os resultados solicitados. Por exemplo, ao indicar que se pretende apresentar o resultado de uma pesquisa de forma ordenada, apenas iremos adicionar ao comando de selecção a cláusula ORDER BY não indicando o algoritmo de ordenação que o computador deverá realizar.

Embora as linguagens procedimentais sejam mais rápidas a executar, as linguagens declarativas são flexíveis pois referenciam os seus elementos através de um nome perceptível e não através de uma posição física em disco ou memória.

(5)

5

A linguagem SQL é constituída por três sub linguagens:

DML - Data Manipulation Language (SELECT, INSERT, UPDATE, DELETE, etc.);

DDL - Data Defenition Language (CREATE, ALTER, DROP, etc.);

DCL - Data Controle Language (GRANT, REVOKE, etc.).

Comando SELECT

A sintaxe do comando SELECT é a seguinte:

SELECT Campo1, Campo2, ... , CampoN, * FROM Tabela1, Tabela2, ... , TabelaK (WHERE Condição)

(GROUP BY ... ) (HAVING ... ) (ORDER BY ...) ( ... )

Os campos entre parêntesis são componentes facultativas, isto é, podem ou não ser utilizadas.

Os únicos componentes que são obrigatórios do comando SELECT são:

SELECT Campo1, Campo2, ... , CampoN, * FROM Tabela1, Tabela2, ... , TabelaK

2. Base de dados existentes no mercado a)Access

O Access considera como base das actividades de banco de dados, os objectos, como - tabelas de dados, formulários de entrada e impressão, consultas que fornecem as respostas de determinadas perguntas e relatórios que resumem as informações - e as propriedades que os descrevem. Através desse modelo de objectos, o Access permite configurar estrutura, inter-relacionar dados, definir cores e valores, actividades essas, que são descritas na lista de propriedades dos objectos.

b)

Oracle

Oracle é basicamente uma ferramenta cliente/servidor para a gestão de Bases de Dados. É um produto vendido a nível mundial, embora a grande potência que tem e seu elevado preço, faz com que só se veja em empresas muito grandes e multinacionais, por norma geral. No desenvolvimento de páginas web acontece o mesmo: como é um sistema muito caro não está tão espalhado como outras bases de dados, por exemplo, Access, MySQL, SQL Server, etc.

c)

SQL Server

As aplicações em rede são cada dia mais numerosas e versáteis. Em muitos casos, o esquema básico de operação é uma série de scripts que dirigem o comportamento de uma base de dados.

Devido à diversidade de linguagens e de base de dados existentes, a maneira de comunicar entre umas e outras seria realmente complicado de providenciar, a não ser pela existência de padrões que nos permite realizar as operações básicas de una forma universal.

É justamente disso que se trata o Structured Query Language que não é mais do que uma linguagem padrão de comunicação com base de dados. Falamos portanto, de uma linguagem normalizada que nos permite trabalhar com qualquer tipo de linguagem (ASP ou PHP) em combinação com qualquer tipo de base de dados (MS Access, SQL Server, MySQL...).

O fato de ser padrão não quer dizer que seja idêntico para cada base de dados. Na prática, determinadas bases de dados implementam funções específicas que não têm necessariamente que funcionar em outras.

À parte desta universalidade, o SQL possui outras duas características muito apreciadas. Por uma parte, apresenta potência e versatilidade notáveis que contrasta, por outra, com sua acessibilidade de aprendizagem.

(6)

6

d)

Mysql

O MySQL é um sistema de gestão de base de dados (SGBD), que utiliza a linguagem SQL (Linguagem de Consulta Estruturada) como interface. É actualmente um dos bancos de dados mais populares, com mais de 10 milhões de instalações pelo mundo.

Entre os utilizadores do banco de dados MySQL estão: NASA, Friendster, Banco Bradesco, Dataprev, HP, Nokia, Sony, Lufthansa, U.S Army, U.S Federal Reserve Bank, Associated Press, Alcatel, Slashdot, Cisco System, Google CanaVialis S.A e outros.

3. Vantagens de uma base de dados

a)

Persistência

• Os dados “persistem”, isto é, uma vez aceitos no banco de dados, só podem ser removidos por alguma solicitação explícita;

• Diferem de outros dados transitórios, que são apenas temporários: dados de entrada, dados de saída, resultados intermediários, etc.

b)

Redundância

• Os diversos sectores de uma empresa compartilham informações que podem estar replicadas Por ex.: Nome de Cia Aérea;

• Essa redundância pode levar a um estado inconsistente, além de gastar espaço de armazenamento;

• O SGBD deve oferecer mecanismos para esse controle sem prejudicar as aplicações dos diversos sectores.

Exemplo: Notas de Estudante

c)

Concorrência

• Permite que leituras e modificações “simultâneas” não deixem o banco de dados inconsistente.

Controle de Concorrência

• Limita as leituras e modificações simultâneas disparadas ao mesmo dado por diferentes utilizadores;

• A técnica mais usada consiste em bloquear os dados envolvidos em determinada operação Por ex.: Caso um passageiro queira transferir sua reserva de um voo para outro é necessário que os dois voos estejam bloqueados

• O bloqueio pode ser lógico ou físico:

Lógico: linguagem de consulta.

Físico: registo, página ou tabela

• Bloqueio perpétuo (“deadlock”)

d)

Segurança

• Cuida para que o conteúdo da base de dados não seja compreendido por usuários não autorizados;

• Criptografia/Decriptografia;

• Padrões de criptografia;

• Criptografia através de chaves.

(7)

7

e)

Integridade dos dados

• Manutenção da consistência da base de dados através da validação de restrições definidas sobre os dados.

• Controle de valores que um campo pode ter.

Por ex.: O número de assentos de um voo só pode variar entre 100 e 700.

• Controle de relacionamento entre dois registos.

Por ex.: Um voo só pode pertencer a uma Cia já cadastrada.

• O SGBD deve oferecer dois mecanismos:

• Especificação de restrições de integridade

• Validação das restrições de integridade f)

Transacção

• Transacções são unidades lógicas de trabalho numa aplicação Por ex.: Caso da transferência da reserva de voo

• Transacções de diferentes usuários que envolvem dados compartilhados são executadas em sequência;

• Transacções controlam melhor a concorrência e a reconstrução;

• Operações Commit e Rollback.

Controle de Transacções Propriedades ACID

• Atomicidade

Deve garantir que toda transacção iniciada, ou termina com sucesso ou é desfeita.

• Consistência

O banco de dados deve sair de um estado consistente para outro estado consistente após a execução de uma transacção

• Isolamento

A execução de uma transacção não pode interferir em outras transacções executadas concorrentemente

• Durabilidade

As transacções confirmadas devem permanecer persistentes g)

Replicação

 Uma relação ou fragmento de uma relação está replicado, ou seja, está guardado redundantemente em dois ou mais sites.

 Replicação total de uma relação acontece quando uma relação está guardada em todos os sites.

 Bases de dados com redundância total são aquelas onde cada site tem uma cópia de toda a base de dados.

Vantagens da Replicação

 Disponibilidade: a falha de um site contendo a relação

x

não resulta na indisponibilidade de

x

se existirem réplicas.

 Paralelismo: consultas sobre

x

podem ser processadas por vários nós em paralelo.

 Redução dos dados a transferir: uma relação

x

está disponível localmente em cada site que contenha uma réplica de

x

.

Desvantagens da Replicação

 Aumento do custo de actualizações: cada réplica de uma relação

x

tem de ser actualizada.

(8)

8

 Aumento da complexidade do controlo de concorrência: actualizações concorrentes em réplicas distintas poderão levar a dados inconsistentes a não ser que mecanismos especiais de controlo de concorrência sejam implementados.

 Uma solução: escolher uma cópia como cópia primária e aplicar operações de controlo de concorrência sobre a cópia primária.

4. Linguagem SQL - Sintaxe

a. Comando Create Database - A instrução CREATE DATABASE é utilizado para criar um banco de dados.

Ex.: CREATE DATABASE “my_db”

b. Comando Create table - A instrução CREATE TABLE é usado para criar uma tabela em um banco de dados.

Ex.: CREATE TABLE “table_name”

(

column_name1 data_type, column_name2 data_type, column_name3 data_type, ....

)

c. Comando Insert Into - A instrução INSERT INTO é utilizado para inserir uma nova linha em uma tabela.

Ex.: INSERT INTO” table_name”

VALUES (value1, value2, value3,...)

d. Comando UPDATE - A instrução UPDATE é usado para actualizar os registos existentes em uma tabela.

Ex.: UPDATE “table_name”

SET column1=value, column2=value2,...

WHERE some_column=some_value

e. Comando DELETE - A instrução DELETE é usado para apagar linhas de uma tabela.

Ex.: DELETE FROM “table_name”

WHERE some_column=some_value

f. Comando SELECT - A instrução SELECT é usado para seleccionar dados de um banco de dados.

Ex.: SELECT column_name(s) FROM “table_name”

i. Uso do Alias - Podemos dar a uma tabela ou a uma coluna outro nome, usando um pseudónimo. Este comando pode ser bom para tabelas muito longas ou complexas ou nomes de coluna.

Ex.: Alias sintaxe SQL para tabelas SELECT column_name(s) FROM table_name AS alias_name Alias sintaxe SQL para Colunas

SELECT column_name AS alias_name FROM table_name

ii. Cláusula WHERE - A cláusula WHERE é usada para extrair apenas os registos que satisfazem o critério especificado

Ex.: SELECT column_name(s) FROM table_name

WHERE column_name operator value

(9)

9

ii. Operador BETWEEN - O operador BETWEEN selecciona um intervalo de dados entre dois valores. Os valores podem ser números, texto ou datas.

Ex.: SELECT column_name(s) FROM table_name WHERE column_name BETWEEN value1 AND value2

iv. Operador IN - O operador IN permite especificar vários valores de uma cláusula WHERE.

Ex.: SELECT column_name(s) FROM table_name

WHERE column_name IN (value1,value2,...)

v. Operador LIKE - O operador LIKE é utilizado para procurar um padrão especificado em uma coluna.

Ex.: SELECT column_name(s) FROM table_name

WHERE column_name LIKE pattern

vi. Operador DISTINCT – Numa tabela, algumas das colunas podem conter valores duplicados. Este não é um problema, no entanto, às vezes podemos querer listar apenas os valores diferentes de uma tabela.

A palavra-chave DISTINCT pode ser utilizada para devolver apenas valores diferentes.

Ex.: SELECT DISTINCT column_name(s) FROM table_name

vii. Cláusula GROUP BY - A instrução GROUP BY é utilizada em conjunto com as funções agregadas ao grupo, o resultado é definido por uma ou mais colunas.

Ex.: SELECT column_name, aggregate_function(column_name) FROM table_name

WHERE column_name operator value GROUP BY column_name

viii. Cláusula HAVING - A cláusula HAVING foi adicionada ao SQL porque a palavra-chave WHERE não pode ser usado com funções de agregação.

Ex.: SELECT column_name, aggregate_function(column_name) FROM table_name

WHERE column_name operator value GROUP BY column_name

HAVING aggregate_function(column_name) operator value

ix. Operador EXISTS - Eletesta quando um valor existe. (NOT EXISTS garante que não existe).

Se o valor existir será devolvido Verdadeiro, se não existir será devolvido Falso.

Ex.: SELECT "nome_coluna1"

FROM "nome_tabela1"

WHERE EXISTS (SELECT *

FROM "nome_tabela2"

WHERE [condição])

x. Operador Order By - A palavra-chave ORDER BY é usada para classificar o conjunto de resultados por uma coluna especificada.

A palavra-chave ORDER BY classificar os registos em ordem crescente por padrão.

(10)

10

Ex.: SELECT column_name(s) FROM table_name

ORDER BY column_name(s) ASC|DESC

5. View

No SQL, uma visão é uma tabela virtual baseada no resultado do set de uma instrução SQL.

A exibição contém linhas e colunas, como uma tabela real. Os campos em vista são os campos de uma ou mais tabelas no banco de dados real.

O utilizador pode adicionar funções SQL, WHERE e JOIN declarações à vista e apresentar os dados como se os dados fossem provenientes de uma única tabela.

Ex.: CREATE VIEW view_name AS

SELECT column_name(s) FROM table_name WHERE condition

6. Trigger

Um Trigger é bloco de comandos Transact-SQL que é automaticamente executado quando um comando INSERT , DELETE ou UPDATE for executado em uma tabela do banco de dados.

Os Triggers são usados para realizar tarefas relacionadas com validações, restrições de acesso , rotinas de segurança e consistência de dados ; desta forma estes controles deixam de ser executados pela aplicação e passam a ser executados pelos Triggers em determinadas situações:

 Mecanismos de validação envolvendo múltiplas tabelam

 Criação de conteúdo de uma coluna derivada de outras colunas da tabela

 Realizar análise e actualizações em outras tabelas com base em alterações e/ou inclusões da tabela actual

Ex.: CREATE TRIGGER trigger_name ON { table | view } [ WITH ENCRYPTION ] {

{ { FOR | AFTER | INSTEAD OF } { [ INSERT ] [ , ] [ UPDATE ] } [ WITH APPEND ]

[ NOT FOR REPLICATION ] AS

[ { IF UPDATE ( column )

[ { AND | OR } UPDATE ( column ) ] [ ...n ]

| IF ( COLUMNS_UPDATED ( ) { bitwise_operator } updated_bitmask )

{ comparison_operator } column_bitmask [ ...n ] } ]

sql_statement [ ...n ] }

}

7. Stored procedures

Stored Procedure é um conjunto de comandos, ao qual é atribuído um nome. Este conjunto fica armazenado no Banco de Dados e pode ser chamado a qualquer momento tanto pelo SGBD (sistema de Gestão de Banco de Dados) quanto por um sistema que faz interface com o mesmo.

A utilização de Stored Procedures é uma técnica eficiente de executarmos operações repetitivas. Ao invés de digitar os comandos cada vez que determinada operação necessite ser executada, criamos um Stored Procedure e o chamamos. Com um Stored Procedure também podemos ter estruturas de controlo e decisão, típicas das linguagens de programação.

(11)

11

Ex.: CREATE PROCEDURE nome_do_stored_procedure [

{@parametro tipo_de_dados_parametro}[=valor_default] [output]

] [,...n]

AS

comando1, comando2, comando3, ...,

comando2 GO

CLASSE DE UTILIZADORES

Um sistema de base de dados faz parte de um sistema mais amplo, conhecido como sistema de informação, cujos componentes, além da tecnologia, são a organização ou empresa e os recursos humanos.

Os componentes humanos podem ser classificados em três grandes classes de usuários do banco de dados:

 Administradores;

 Desenvolvedores;

 Utilizadores Finais.

CONCLUSÃO

Os Sistemas de Gestão de Base Dados (SGBD) não são caracterizados somente pelos seus modelos de base de dados, um SGBD também é caracterizado pelas suas funções, que implementam um conjunto básico de facilidades e serviços que definem a capacidade da base de dados que um sistema deve possuir para ser considerado uma base de dados. Um SGBD deve também prover mecanismos de segurança de acesso para consulta ou actualização dos objectos persistentes. Em geral, estes mecanismos são implementados por meio de comandos de concessão/revogação de privilégios de acesso a utilizadores individuais ou grupos de utilizadores. Dependendo da aplicação, o nível de segurança pode ser de colecções de dados (tabelas e registos ou linhas), atributos isolados (campos ou colunas) e até mesmo de conteúdo (valores de dados).

Uma base de dados deve estar sempre num estado consistente, satisfazendo permanentemente algumas condições de consistência, chamadas restrições de integridade. O SGBD tem a incumbência de garantir a integridade do banco de dados na passagem de um estado para outro, que ocorre ao final de cada transacção.

Referências

Documentos relacionados

SISTEMA DE JOGO: LUSITANO (Infantis e Juniores) MARCEL CORBILLON (Veteranos). DIRETOR DA PROVA:

2- Discutir e debater a pauta da campanha salarial 2019 adequando-a a nova realidade bem como estabelecer um calendário de luta em defesa dos servidores e dos

“Trabalhar com a equipa Meu Super ajuda-nos a melhorar o nosso trabalho dia a dia, de forma a estarmos mais preparados para continuar a dar o melhor aos nossos clientes. A

Riscos, através do qual atestam que (A) tiveram acesso aos documentos indicados no Quadro “Documentos Obrigatórios”, conforme consta das “Condições

aos cuidadores, que constou de dados sociodemográficos (sexo, idade, estado civil, escolaridade e renda ), tipo de cuidador (formal ou informal), tipo de vínculo com o idoso,

Em virtude da baixa ocorrência da afecção e da dificuldade de obtenção do diagnóstico definitivo, este artigo objetiva relatar e discutir os achados

Com o objetivo geral proposto de identificar a ferramenta (OCRA, RULA, REBA e TOR-TOM) que se adapta melhor à realidade de frigorífico de suínos para cálculo de risco

2- Cartão de Crédito via PAG SEGURO (para pagamento parcelado taxas do PAG SEGURO serão acrescidas) Assim que recebermos sua ficha de inscrição e verificarmos que o