Vous êtes sur la page 1sur 22

47

R
e
v
i
s

o
:

A
n
d
r

i
a

D
o
m
e
s
/
M
i
c
h
e
l

A
p
t

-

D
i
a
g
r
a
m
a

o
:

J
e
f
f
e
r
s
o
n

-

2
0
/
0
7
/
2
0
1
2
ADMINISTRAO DE BANCO DE DADOS
Unidade III
5 PROJETO DE BANCO DE DADOS
Antes de iniciar um projeto de banco de dados, voc precisa conhecer como ele funciona e qual a
linguagem de comunicao. De modo geral, os Sistemas Gerenciadores de Banco de Dados (SGBD) so
compostos de diversos mdulos e cada um deles responsvel por um conjunto de funcionalidades.
Como existem muitos sistemas, cada um com suas particularidades, muito raro um prossional
dominar o funcionamento de todos. Normalmente, encontramos nas empresas um especialista que
conhece profundamente o SGBD que a organizao comprou. Por ser um prossional altamente
qualicado, somente as grandes organizaes costumam mant-lo como um funcionrio de carreira.
As pequenas empresas tm o hbito de contratar esses especialistas somente na etapa de concepo e
implementao do projeto e manter um contrato de consultoria para os momentos crticos, ou quando
necessita de atualizao e otimizao do ambiente.
5.1 Linguagens de banco de dados
A linguagem para acessar um banco de dados depende do tipo de banco de dados. Aqueles do tipo
relacional usam a linguagem SQL (Structured Query Language).
Essa linguagem originalmente foi criada pela IBM, e de forma muito rpida comearam a surgir
diversas variaes criadas por outros fabricantes. Para solucionar esse problema, houve a necessidade
de se criar uma linguagem-padro, mantida pela American National Standards Institute (ANSI) desde
1986; aqui no Brasil, pela ISO desde 1987, sendo ambos os rgos governamentais que cuidam das
normas e padres.
Em 1992, o SQL foi revisto e surgiu o SQL-92. Com a reviso em 1999, foi criado o SQL-99 (SQL3) e
depois, em 2003, com nova reviso, surgiu o SQL:2003. No entanto, mesmo com a padronizao da ANSI
e do ISO, o SQL possui muitas variaes e extenses produzidas pelos fabricantes de SGBD.
A maioria das instrues no SQL funciona da mesma forma nos diversos bancos de dados, mas nem
todas as funes tm a mesma caracterstica e forma de escrita. Por exemplo, o comando SELECT funciona
igual para todos. Se voc executar: SELECT * FROM PRODUTO, esse comando retornar todos os dados de
todos os atributos da tabela produto, independentemente se o seu banco de dados SQL Server, Sybase,
MySQL ou Oracle. Mas, se voc executar o comando SELECT GETDATE() no banco de dados Oracle, ele no
vai funcionar, por se tratar de um comando do SQL Server, que tambm funciona no Sybase. Para obter a
data corrente no Oracle, voc dever executar o comando SELECT SYSDATE FROM DUAL.
No caso de banco de dados multidimensionais, a linguagem mais apropriada a MDX (Multidimensional
Expressions), que semelhante sintaxe do SQL. O MDX no uma extenso do SQL. Para criar expresses
48
Unidade III
R
e
v
i
s

o
:

A
n
d
r

i
a

D
o
m
e
s
/
M
i
c
h
e
l

A
p
t

-

D
i
a
g
r
a
m
a

o
:

J
e
f
f
e
r
s
o
n

-

2
0
/
0
7
/
2
0
1
2
MDX usadas para desenhar ou projetar cubos, ou para criar consultas para retornar e formatar dados
multidimensionais, voc precisa entender os conceitos bsicos de modelagem dimensional, pois essa
linguagem tem elementos de sintaxe, operadores, instrues e funes prprias diferentes do SQL.
5.2 Tipos de linguagem SQL
A linguagem SQL pode ser dividida em tipos de acordo com a sua funcionalidade. Os tipos usados
nos sistemas gerenciadores de banco de dados so denidos a seguir.
5.2.1 Data Denition Language (DDL)
o tipo de linguagem que interage com os objetos do banco de dados: tabelas, procedures, functions,
views, triggers, entre outros. Cada SGBD tem seus manuais tcnicos com a lista completa de comandos
DDL e suas respectivas sintaxes completas.
So exemplos de comandos DDL:
CREATE
ALTER
DROP
Para criar uma tabela para armazenar o registro do aluno (RA) e o nome do aluno, a sintaxe do comando :
create table ALUNO ( RA char(7), NOME varchar(100) )
Para incluir uma nova coluna na tabela aluno, que ser usada para armazenar a data de nascimento,
precisamos alterar a tabela criada anteriormente por meio do comando ALTER TABLE:
alter table ALUNO add DATA_NASCIMENTO date
Caso voc precise alterar a propriedade do campo RA para NULL, o comando a ser executado :
alter table ALUNO alter column RA char(7) NULL
Observao
Alguns SGBD, quando no informamos a nulidade do atributo, o padro
do gerenciador considerar como nulo. Recomendamos ler os manuais de
referncia do SGBD com que voc for trabalhar.
Importante: altamente recomendado que voc conhea o SGBD de que voc est cuidando,
pois, no caso de criar um atributo nulo, mas depois precisar alter-lo para no nulo, nem todos os
49
R
e
v
i
s

o
:

A
n
d
r

i
a

D
o
m
e
s
/
M
i
c
h
e
l

A
p
t

-

D
i
a
g
r
a
m
a

o
:

J
e
f
f
e
r
s
o
n

-

2
0
/
0
7
/
2
0
1
2
ADMINISTRAO DE BANCO DE DADOS
gerenciadores permitem esse tipo de alterao sem a denio de um valor default de preenchimento
do atributo na execuo do comando ALTER TABLE. Caso no exista um valor-padro para todas as
linhas, voc no conseguir executar o comando e ter que recriar a tabela novamente.
Para denir, isto , criar a chave primria na tabela aluno, caso voc no tenha usado o comando
completo do CREATE TABLE, voc pode fazer uma nova alterao na tabela, por meio do comando:
alter table ALUNO add constraint PK_ALUNO primary key(RA)
Se voc precisar excluir a tabela aluno do seu banco de dados, basta executar o comando:
drop table ALUNO
Para excluir apenas uma coluna da tabela, o comando :
alter table ALUNO drop column DT_NASCIMENTO
5.2.2 Data Manipulation Language (DML)
o tipo de linguagem que interage com os dados armazenados dentro das tabelas do banco de
dados. So comandos DML:
INSERT
UPDATE
DELETE
TRUNCATE
Depois de criar a tabela aluno, precisamos cadastrar os dados dos alunos, ou seja, inserir dados na
tabela por meio do comando INSERT:
insert into ALUNO (RA,
NOME,
DT_NASCIMENTO)
values (1234567,
LUIZ FERNANDO,
1978-08-28)
Caso voc precise alterar algum dado na tabela, o comando a ser executado o UPDATE:
update ALUNO set NOME = LUIS FERNANDO where RA = 1234567
O comando update ALUNO set NOME = LUIS FERNANDO sem a informao da clusula where RA
= 12345671 far a alterao do nome de todos os alunos cadastrados na tabela para LUIS FERNANDO.
50
Unidade III
R
e
v
i
s

o
:

A
n
d
r

i
a

D
o
m
e
s
/
M
i
c
h
e
l

A
p
t

-

D
i
a
g
r
a
m
a

o
:

J
e
f
f
e
r
s
o
n

-

2
0
/
0
7
/
2
0
1
2
Lembrete
Para realizar alteraes nos dados da tabela, voc precisa realizar a
operao de UPDATE com muita ateno e cautela. Se voc no informar
a chave primria na clusula where do comando, a alterao ser realizada
para todos os registros da tabela.
Para excluir dados de uma tabela, o comando utilizado :
delete from ALUNO where RA = 1234567
Se voc quiser excluir todos os dados de uma tabela, s executar o comando delete from ALUNO.
O comando DELETE deve ser usado com ateno, pois, se voc no informar o valor da chave
primria na clusula where, todos os dados da tabela sero excludos.
Para efetuar alteraes e excluses em dados, no caso de as tabelas se relacionarem com outras,
voc s poder efetuar as alteraes respeitando a hierarquia desses relacionamentos. Portanto, antes
de executar os comandos de DML, voc deve conhecer o modelo de dados que est implementado.
Para excluir todos os dados, voc tambm pode usar o comando TRUNCATE. A diferena entre ele e
o comando DELETE que a ao de truncate no gravada no log de transaes.
truncate table ALUNO
Observao
Como a ao de truncate no uma transao gravada no log do
banco de dados, ela no recomendada para ser usada nas aplicaes.
Por questes de segurana, as transaes que modicam os dados (insert,
delete e update) so auditadas, ou seja, o administrador de banco de dados
consegue identicar e rastrear essas aes. Mas se a transao de excluso
de dados for executada por meio do comando TRUNCATE, no deixar
nenhum rastro.
5.2.3 Data Control Language (DCL)
o tipo de linguagem que interage com a parte de segurana do banco de dados. Baseado na poltica
de segurana denida para o sistema desenvolvido, com esses comandos que podemos garantir quais
dados sero acessados, que tipo de aes podero ser realizadas por uma pessoa ou um grupo de
pessoas. So comandos DCL:
51
R
e
v
i
s

o
:

A
n
d
r

i
a

D
o
m
e
s
/
M
i
c
h
e
l

A
p
t

-

D
i
a
g
r
a
m
a

o
:

J
e
f
f
e
r
s
o
n

-

2
0
/
0
7
/
2
0
1
2
ADMINISTRAO DE BANCO DE DADOS
GRANT (select, insert, delete, update)
GRANT EXECUTE
REVOKE (select, insert, delete, update)
REVOKE EXECUTE
O comando para permisso de execuo em todas as procedures do banco de dados :
grant execute to usuario
Lembrete
A sintaxe sempre vai depender do SGBD que voc est usando. No
caso de um SGBD da Sybase, por exemplo, no possvel executar o
GRANT EXECUTE para todas as procedures num nico comando. Voc
ter que escrever um script contendo o GRANT EXECUTE para cada uma
delas e depois executar esse script, que far a execuo do comando
linha a linha.
Para garantir a permisso de execuo da procedure SPalterarMeuNome para uma determinada
pessoa, o comando :
grant execute on SPalterarMeuNome to usuario
Para dar permisso de execuo na procedure para um grupo de pessoas, o comando :
grant execute on SPalterarMeuNome to grupoRH
Quando criamos as tabelas no banco de dados, precisamos aplicar as permisses adequadas para os
tipos de operaes que a tabela pode sofrer. Por exemplo, os dados da tabela aluno podem ser vistos
por todos os alunos e funcionrios da Seo de Alunos, mas somente alguns funcionrios dela e o
prprio aluno podero alterar os dados da tabela. Para garantir essas aes, usamos o comando GRANT,
conforme sintaxe a seguir:
grant select on ALUNO to grupo_alunos
grant select on ALUNO to secao-alunos
grant update on ALUNO to aluno
grant delete on ALUNO to funcionrio
52
Unidade III
R
e
v
i
s

o
:

A
n
d
r

i
a

D
o
m
e
s
/
M
i
c
h
e
l

A
p
t

-

D
i
a
g
r
a
m
a

o
:

J
e
f
f
e
r
s
o
n

-

2
0
/
0
7
/
2
0
1
2
Observao
Podemos aplicar todas as permisses (select, insert, delete, update) em
uma tabela com a execuo do comando grant all on TABELA to usurio.
No caso de necessitar retirar a permisso de algum objeto do banco de dados, voc deve executar
o comando REVOKE. Por exemplo, para remover a permisso de execuo em todas as procedures do
banco de dados, voc deve executar o comando:
revoke execute to usurio
Para remover a permisso de execuo de apenas uma procedure de um determinado usurio ou
grupo de usurios, o comando :
revoke execute on SPminhaProcedure to usuario
Como voc pode ter notado, o comando REVOKE o oposto do comando de GRANT, e as
mesmas recomendaes e observaes feitas para o comando de GRANT se aplicam para o
comando REVOKE.
5.2.4 Data Transaction Language (DTL)
o tipo de linguagem que controla as transaes que so executadas em um banco de dados.
Transao uma unidade de execuo de programa que acessa e atualiza os dados.
A transao consiste em todas as operaes executadas entre o comeo (BEGIN TRANSACTION) e
o m (END TRANSACTION) da transao.
Quando executamos qualquer um dos comandos DML (INSERT, DELETE, UPDATE) ou de DDL
(CREATE, ALTER, DROP), tambm estamos realizando uma transao dentro do banco de dados.
Durante o tempo em que a transao estiver em aberto, os comandos DML esto sendo
realizados em memria. Assim que a transao for confirmada pela instruo denominada commit,
todas as operaes sero efetuadas fisicamente no banco de dados. No caso de falha de alguma das
operaes, a transao ser desfeita pela instruo de rollback, e nenhuma operao ser realizada
no banco de dados.
O comando COMMIT efetiva todas as alteraes realizadas no banco de dados. A operao de commit
aplica-se a todos os comandos SQL, incluindo comandos DDL. As transaes que esto bloqueadas
(lock), aguardando o trmino de uma transao, so sempre liberadas depois do commit na transao
que est causando o bloqueio.
53
R
e
v
i
s

o
:

A
n
d
r

i
a

D
o
m
e
s
/
M
i
c
h
e
l

A
p
t

-

D
i
a
g
r
a
m
a

o
:

J
e
f
f
e
r
s
o
n

-

2
0
/
0
7
/
2
0
1
2
ADMINISTRAO DE BANCO DE DADOS
O comando ROLLBACK naliza uma transao atual. Quando ele executado, o SQL aborta a
transao atual. Isso restaura o banco de dados ou at o estado em que ele estava antes do ltimo
commit ou rollback.
Lembrete
Enquanto nenhuma das instrues, seja de commit ou de rollback, no
for processada, as alteraes cam esperando e consumindo recursos de
memria, por exemplo.
Os comandos DTL so normalmente utilizados dentro de procedimentos (procedures) ou triggers,
pois esses objetos costumam ter diversas aes de alteraes nos bancos de dados.
Os comandos da DTL so os seguintes:
BEGIN TRANSACTION
COMMIT TRANSACTION
ROLLBACK TRANSACTION
END TRANSACTION
5.2.5 Data Query Language (DQL)
o tipo de linguagem que cuida da parte de queries (consultas) aos dados. Apesar de interagir com
os dados como a DML, ela no produz alteraes neles, serve apenas para consulta.
O formato-padro para consulta :
SELECT atributo FROM relao WHERE condio
Observao
Relao pode ser uma tabela fsica no banco ou vrias tabelas
relacionadas. Atributo a coluna da tabela.
Em algumas bibliograas, o comando SQL est dentro de DML.
Exemplos de instruo DQL:
Consideramos a seguinte relao (tabela) Aluno e seus respectivos atributos, assim denidos:
54
Unidade III
R
e
v
i
s

o
:

A
n
d
r

i
a

D
o
m
e
s
/
M
i
c
h
e
l

A
p
t

-

D
i
a
g
r
a
m
a

o
:

J
e
f
f
e
r
s
o
n

-

2
0
/
0
7
/
2
0
1
2
Aluno (nome, idade, curso, ra_aluno)
Para obter a lista de todos os atributos de todos os alunos da tabela aluno, voc deve executar o
comando:
SELECT * FROM aluno
ou
SELECT nome, idade, curso, ra_aluno FROM aluno
Quando usamos asterisco (*), queremos dizer que todas as colunas da tabela devem ser retornadas.
Para obter todas as informaes do aluno cujo RA 1234567, o comando :
SELECT * FROM aluno
WHERE ra_aluno = 1234567
Para selecionar o nome dos alunos que cursam Gesto de Tecnologia da Informao, o comando :
SELECT nome FROM aluno
WHERE curso = Gesto de Tecnologia da Informao
Para saber quais os alunos que tm mais de 25 anos:
SELECT nome FROM aluno
WHERE idade > 25
O comando SELECT o mais utilizado dentro de um banco de dados. Ele serve para retornar dados
de uma ou mais tabelas. Como ele no gera nenhuma modicao nos dados, voc pode us-lo antes
de fazer a alterao. Por exemplo, suponha que voc fosse alterar alguma informao do aluno cujo RA
1234567. Antes de executar o comando UPDATE, voc deve executar o comando SELECT e analisar o
resultado. Isso evita o risco de realizar alteraes indevidas.
Para retornar dados de mais de uma tabela, utilizamos o conceito de join. extremamente
importante conhecer o modelo de dados e como as tabelas esto relacionadas, para obter resultados
corretos.
O comando JOIN ou juno baseado na teoria dos conjuntos. Considere as tabelas como um
conjunto de dados sobre um determinado assunto.
55
R
e
v
i
s

o
:

A
n
d
r

i
a

D
o
m
e
s
/
M
i
c
h
e
l

A
p
t

-

D
i
a
g
r
a
m
a

o
:

J
e
f
f
e
r
s
o
n

-

2
0
/
0
7
/
2
0
1
2
ADMINISTRAO DE BANCO DE DADOS
Observao
A sintaxe do comando JOIN entre duas ou mais tabelas relacionadas
diferente entre os diversos dialetos do SQL. Para escrever o comando
corretamente, voc dever consultar o manual do gerenciador de banco
de dados.
Os exemplos de JOIN que sero mostrados a seguir esto usando a sintaxe do SQL padro ANSI. Caso
voc queira testar os comandos em um banco de dados, voc precisa estar atento se ele compatvel
com o SQL ANSI, pois a sintaxe do JOIN difere muito.
Exemplo de sintaxe do comando SELECT com mais de uma tabela. Por exemplo, vamos considerar
as tabelas:
Turma (id_turma, nome, sala, disciplina)
Disciplina (disciplina, sigla, crditos)
Queremos a lista das salas de cada turma, indicando o nome da turma e a sigla de cada disciplina
correspondente. O comando SELECT car assim:
SQL padro ANSI:
SELECT sala, nome, sigla FROM Turma, Disciplina
INNER JOIN Disciplina
ON Turma.disciplina = Disciplina.disciplina
ou
Transact-SQL:
SELECT sala, nome, sigla FROM Turma, Disciplina
WHERE Turma.disciplina = Disciplina.disciplina
Para entender como esse JOIN funciona, com base na teoria dos conjuntos, vamos considerar as
tabelas como conjuntos da seguinte forma: o conjunto das turmas ser denominado conjunto A; o
conjunto das disciplinas ser o conjunto B, conforme a gura seguinte.
56
Unidade III
R
e
v
i
s

o
:

A
n
d
r

i
a

D
o
m
e
s
/
M
i
c
h
e
l

A
p
t

-

D
i
a
g
r
a
m
a

o
:

J
e
f
f
e
r
s
o
n

-

2
0
/
0
7
/
2
0
1
2
Conjunto/Tabela A Conjunto/Tabela B
Figura 27 Tabelas como diagramas de conjuntos
INNER JOIN o tipo de JOIN mais usado. Retorna apenas os dados que existem em comum nas
duas tabelas. Com base na teoria dos conjuntos, podemos dizer que a interseco entre os conjuntos,
conforme representado na gura a seguir.
Conjunto/Tabela A
Conjunto/Tabela B
Figura 28 Representao grca do INNER JOIN
Sintaxe do INNER JOIN usando o SQL padro ANSI:
select * from A
inner join B on A.atributo_chave = B.atributo_chave
E agora utilizando o Transact-SQL:
select * from A, B
where A.atributo_chave = B.atributo_chave
LEFT JOIN usado quando necessrio retornar todos os dados de uma tabela, mesmo que no
exista na outra tabela. O LEFT JOIN retorna os dados da tabela da esquerda, conforme a gura a seguir.
57
R
e
v
i
s

o
:

A
n
d
r

i
a

D
o
m
e
s
/
M
i
c
h
e
l

A
p
t

-

D
i
a
g
r
a
m
a

o
:

J
e
f
f
e
r
s
o
n

-

2
0
/
0
7
/
2
0
1
2
ADMINISTRAO DE BANCO DE DADOS
Conjunto/Tabela A
Conjunto/Tabela B
Figura 29 Representao grca do LEFT JOIN
Sintaxe do LEFT JOIN usando o SQL padro ANSI:
select * from A
left join B on A.atributo_chave = B.atributo_chave
Agora, utilizando o Transact-SQL:
select * from A, B
where A.atributo_chave *= B.atributo_chave
RIGHT JOIN assim como o LEFT JOIN, usado quando necessrio retornar todos os dados de
uma tabela, mesmo que no existam na outra tabela. O RIGHT JOIN retorna os dados da tabela da
direita, conforme a gura a seguir.
Conjunto/Tabela A
Conjunto/Tabela B
Figura 30 Representao grca do RIGHT JOIN
Sintaxe do RIGHT JOIN usando o SQL padro ANSI:
58
Unidade III
R
e
v
i
s

o
:

A
n
d
r

i
a

D
o
m
e
s
/
M
i
c
h
e
l

A
p
t

-

D
i
a
g
r
a
m
a

o
:

J
e
f
f
e
r
s
o
n

-

2
0
/
0
7
/
2
0
1
2
select * from A
right join B on A.atributo_chave = B.atributo_chave
Agora, utilizando o Transact-SQL:
select * from A, B
where A.atributo_chave =* B.atributo_chave
5.3 Mdulos de funcionamento do SGBD
O ncleo de um SGBD composto pelo mdulo central, que o mdulo gerenciador do banco
de dados, responsvel pela transparncia do acesso fsico aos dados armazenados, seja para
aplicaes, seja para os usurios especializados e o DBA. O SGBD apenas solicita os dados a esse
mdulo, que se encarrega de localizar os registros fisicamente em disco e transferi-los para as
estruturas de dados.
Esse mdulo realiza a comunicao com o sistema operacional do equipamento onde se encontram
os dados, por meio do mapeamento de registros em memria para as pginas de disco onde se encontram,
ou vice-versa.
Em outras palavras, esse mdulo responsvel pelo atendimento das requisies de dados e
metadados feitas pelos mdulos que interagem com os agentes. Atende tambm s solicitaes de
operaes sobre dados enviados pelo cdigo objeto das aplicaes. Retornam dados e/ou status que
indicam situaes como execuo realizada com sucesso, erros de acesso, violaes de integridade ou
permisso etc.
o nico mdulo que se comunica com o mdulo gerenciador de arquivos. Os controles de segurana
e concorrncia so de responsabilidade desse mdulo central.
O mdulo gerenciador de arquivos gerencia o acesso aos dispositivos de armazenamento. Recebe
e realiza requisies para leitura e gravao de dados, metadados e dados de segurana do mdulo
gerenciador do banco de dados.
Responsvel pela traduo de comandos DML, temos o mdulo compilador DML. No caso em que os
comandos DML so embutidos em um programa de aplicao, esse mdulo realiza a pr-compilao e
a gerao do cdigo objeto para esses comandos, criando um programa pr-compilado que remetido
para o compilador do ambiente de desenvolvimento utilizado pelo programador. J no caso em que os
comandos DML so enviados de forma ad hoc por usurios especializados, o mdulo traduz e j executa
o comando, caso esteja correto.
Em ambos os casos, o mdulo compilador DML solicita metadados ao mdulo gerenciador do banco
de dados, para poder traduzir os comandos; caso a solicitao seja uma consulta, ele a remete ao
mdulo processador de consultas, recebendo-a modicada.
59
R
e
v
i
s

o
:

A
n
d
r

i
a

D
o
m
e
s
/
M
i
c
h
e
l

A
p
t

-

D
i
a
g
r
a
m
a

o
:

J
e
f
f
e
r
s
o
n

-

2
0
/
0
7
/
2
0
1
2
ADMINISTRAO DE BANCO DE DADOS
O mdulo processador de consultas recebe um comando de consulta do mdulo pr-compilador
DML e dene a melhor estratgia de acesso para process-la. Para tanto, esse mdulo necessita solicitar
metadados ao mdulo gerenciador do bando de dados, com o objetivo de analisar o tamanho dos
arquivos envolvidos na consulta, os relacionamentos existentes, a estimativa de valores distintos de
atributos, visando determinar um procedimento que processe a consulta mais rapidamente. Esse
procedimento, uma vez determinado, enviado ao mdulo compilador DML para ser traduzido.
Para traduzir o programa-fonte da aplicao, escrito em alguma das linguagens de programao
suportadas pelo SGBD, temos o mdulo compilador do utilitrio. Esse mdulo retorna um cdigo de
status ferramenta de desenvolvimento e gera, no caso de uma traduo bem-sucedida, o cdigo
objeto da aplicao.
J o mdulo compilador DDL traduz comandos DDL e gera os esquemas conceitual e fsico, ou seja,
solicita a criao do banco de dados da aplicao para o mdulo gerenciador do banco de dados, que
por sua vez solicita ao mdulo gerenciador de arquivos a criao de arquivos de dados e metadados.
O mdulo compilador DCL e de autorizao gera procedimentos para vericao de integridade e
permisso de acesso. Esses procedimentos so remetidos ao mdulo gerenciador do banco de dados,
que por sua vez solicita ao mdulo gerenciador de arquivos o armazenamento deles no dicionrio de
dados.
Os procedimentos para monitoramento de performance e congurao do banco de dados, e
tambm recuperao de falhas, so funcionalidades do mdulo de administrao. A primeira classe de
procedimentos solicita e/ou modica dados de congurao e solicita estimativas sobre performance
ao mdulo gerenciador do banco de dados, que os obtm no dicionrio de dados e/ou nos dispositivos
que mantm dados de segurana. A segunda classe de procedimentos solicita dados ao banco de dados
de recovery para restaurar os dados do banco de dados na ocorrncia de uma falha.
5.4 Etapas do projeto de banco de dados
O desenvolvimento de um sistema de informao envolve a anlise e o projeto de dois componentes
importantes: os dados e os processos.
O projeto de dados considerado a parte esttica do sistema, uma vez que diz respeito a um universo
persistente de caractersticas que dicilmente sofre modicaes aps a sua denio.
O projeto de processos, por sua vez, chamado de parte dinmica, uma vez que as tarefas a serem
realizadas sobre os dados podem variar, conforme ocorre a evoluo do sistema.
Consideram-se projeto de um banco de dados a anlise, o projeto e a implementao dos dados
persistentes de uma aplicao, levando em conta a determinao da sua semntica (abstrao dos
dados de uma realidade) e, posteriormente, o modelo de dados e o SGBD a serem adotados.
O projeto de um banco de dados composto de quatro etapas, descritas a seguir.
60
Unidade III
R
e
v
i
s

o
:

A
n
d
r

i
a

D
o
m
e
s
/
M
i
c
h
e
l

A
p
t

-

D
i
a
g
r
a
m
a

o
:

J
e
f
f
e
r
s
o
n

-

2
0
/
0
7
/
2
0
1
2
5.4.1 Levantamento de requisitos
a fase principal de todo o projeto de banco de dados, em que necessrio entender do que
o usurio realmente necessita. Nessa etapa, so coletadas informaes sobre os dados de interesse
da aplicao, o seu uso e as suas operaes de manipulao sobre os dados, e suas relaes. Para a
realizao dessa etapa, so necessrias tarefas como:
entrevistas com os futuros usurios do sistema;
anlise de documentaes disponveis (arquivos, relatrios etc.).
O resultado dessa etapa normalmente uma descrio dos requisitos da aplicao, o mais detalhado
e claro possvel. Caso nenhuma metodologia de engenharia de software esteja sendo empregada, essa
descrio de requisitos informal, no formato de um texto, por exemplo, que narra as informaes
comentadas anteriormente.
5.4.2 Projeto conceitual
Pode ser considerada a fase de anlise dos dados e dos requisitos capturados na etapa anterior.
Nessa etapa, realizado o que se chama de desenho da soluo ou modelagem conceitual, momento
em que so analisados os fatos (entidades ou conjunto de ocorrncias de dados) de interesse e seus
relacionamentos, juntamente com seus atributos (propriedades ou caractersticas), e construda uma
notao grca (abstrata, uma representao de alto nvel) para facilitar o entendimento dos dados e
suas relaes, tanto para os analistas quanto para os futuros usurios.
Essa etapa resulta em um modelo conceitual, em que a semntica da realidade deve estar correta.
A ferramenta mais empregada nessa etapa o Diagrama Entidade-Relacionamento (DER). Ainda nessa
fase, as reunies com o usurio so constantes, para mais entendimentos sobre o projeto e validao do
modelo conceitual.
5.4.3 Projeto lgico
Nessa etapa, o desenvolvimento do banco de dados comea a se voltar para o ambiente de
implementao, uma vez que feita a converso do modelo de dados de um banco de dados (modelo
lgico). Esse modelo de dados pode ser o modelo relacional, orientado a objetos, multidimensional etc.
Essa etapa se baseia no uso de regras de mapeamento de um DER para o modelo de dados escolhido.
O resultado uma estrutura lgica, como um conjunto de tabelas relacionadas, caso o modelo de dados
escolhido seja o relacional. Aqui, denimos efetivamente a chave primria, bem como renamos os
relacionamentos que vm do diagrama construdo na etapa anterior.
Nessa etapa, realizamos o processo de normalizao das tabelas, a m de remover as redundncias
e inconsistncias.
61
R
e
v
i
s

o
:

A
n
d
r

i
a

D
o
m
e
s
/
M
i
c
h
e
l

A
p
t

-

D
i
a
g
r
a
m
a

o
:

J
e
f
f
e
r
s
o
n

-

2
0
/
0
7
/
2
0
1
2
ADMINISTRAO DE BANCO DE DADOS
5.4.4 Projeto fsico
Essa ltima etapa realiza a adequao do modelo lgico gerado na etapa anterior ao formato de
representao de dados do SGBD escolhido para a implementao.
Para a realizao dessa etapa, devem-se conhecer a DDL e a DCL do SGBD, para realizar a descrio do
modelo lgico. O resultado a especicao do esquema da aplicao, juntamente com a implementao
de restries de integridade e vises.
Observao
Nessa etapa do projeto, criamos um mapa do banco de dados, da
forma como ele ser criado em SQL. Aqui, denimos os tipos de dados de
cada atributo e, quando necessrio, alteremos os nomes dos campos e das
tabelas para que se ajustem ao padro da organizao.
5.4.5 Criao do banco de dados
Essa a etapa da programao propriamente dita. Aqui, seguindo o que foi denido no modelo
fsico, sero criados todos os objetos dentro do banco de dados, utilizando a linguagem SQL.
5.4.6 Exemplo de projeto de banco de dados
1. etapa: levantamento de requisitos
Seu usurio pede que voc crie um cadastro de pessoas. Durante a entrevista, voc far diversas
perguntas para saber o que ele pretende com esse cadastro de pessoas. Alm do nome e do CPF, ele quer
ter o cadastro do telefone. No nal dessa etapa, voc ter um documento descrevendo da forma mais
detalhada possvel todas as operaes que envolvem esse cadastro de pessoas.
2. etapa: projeto conceitual
Nessa etapa, voc criar o modelo conceitual, identicando e analisando os fatos ou as entidades, e
construir uma representao grca para facilitar o entendimento do usurio, conforme por ser visto
na gura a seguir.
62
Unidade III
R
e
v
i
s

o
:

A
n
d
r

i
a

D
o
m
e
s
/
M
i
c
h
e
l

A
p
t

-

D
i
a
g
r
a
m
a

o
:

J
e
f
f
e
r
s
o
n

-

2
0
/
0
7
/
2
0
1
2
CPF
NOME
TEL
PESSOA
Figura 31 Representao grca do modelo conceitual
3. etapa: projeto lgico
Nessa etapa, com o modelo conceitual analisado e aprovado pelo usurio, voc comear a fazer a converso
para um modelo de dados adequado com as especicaes realizadas nas etapas anteriores. Em nosso exemplo,
podemos usar o modelo relacional, pois, no caso de o usurio querer incluir no seu cadastro de pessoas outra
informao como dados do endereo residencial, dados sobre as caractersticas dessa pessoa dentro do sistema
, voc ter que alterar o seu modelo e incluir mais tabelas e seus respectivos relacionamentos. Por enquanto,
a estrutura lgica que temos est representada na gura a seguir. At aqui, sabemos que j temos uma tabela
denominada pessoa, com os atributos CPF, nome e tel, e o atributo que ir garantir a identicao de uma
nica pessoa ser o CPF, ou seja, o atributo candidato a ser considerado como chave primria j est denido.
Pessoa
PK CPF
NOME
TEL
Figura 32 Modelo lgico de uma entidade
4. etapa: projeto fsico
Nessa etapa, estamos prontos para criar a tabela no banco de dados, e, se j existir um arquivo com
os dados, tambm poderemos providenciar a carga da primeira massa de dados. Tudo ser realizado no
banco de dados escolhido e com a utilizao dos comandos DDL e DCL.
Para facilitar o trabalho, podermos gerar um arquivo (script) com a sequncia dos comandos de
criao da tabela, os comandos de permisso de acesso e manipulao e tambm os comandos para
inserir a primeira massa de dados.
Pessoa
PK CPF CHAR(11)
NOME
TEL
VARCHAR(100)
CHAR(10)
Figura 33 Modelo fsico de uma entidade
63
R
e
v
i
s

o
:

A
n
d
r

i
a

D
o
m
e
s
/
M
i
c
h
e
l

A
p
t

-

D
i
a
g
r
a
m
a

o
:

J
e
f
f
e
r
s
o
n

-

2
0
/
0
7
/
2
0
1
2
ADMINISTRAO DE BANCO DE DADOS
Exemplo do arquivo (script) de criao dos objetos de banco de dados:
create table PESSOA ( CPF char(11) not null,
NOME varchar(100) not null,
TEL char(10) null,
constraint PK_PESSOA primary key (CPF) )
grant select on PESSOA to grupo_usario
grant insert on PESSOA to usuario1
grant update on PESSOA to usuario1
grant delete on PESSOA to usuario1
BEGIN TRANSACTION
insert to PESSOA (CPF, NOME, TEL)
values (13515794-22, Joo da Silva, (011) 2244-56789
insert to PESSOA (CPF, NOME, TEL)
values (9995794-22, Pedro Toledo, (011) 7644-53789
insert to PESSOA (CPF, NOME, TEL)
values (5691800-09, Clara Nunes, (011) 3450-9900
insert to PESSOA (CPF, NOME, TEL)
values (09873456-35, Luis Alves, null)
COMMIT TRANSACTION
insert to PESSOA (CPF, NOME, TEL)
values (19565797-02, Paulo da Silva)
insert to PESSOA (CPF, NOME, TEL)
values (4569579-12, Carlos Manuel, (011) 9084-13689
insert to PESSOA (CPF, NOME, TEL)
values (7891800-49, Maria Oliveira, (011) 3400-9000
insert to PESSOA (CPF, NOME, TEL)
values (09803454-36, Ricardo Veiga, null)
COMMIT TRANSACTION
END TRANSACTION
64
Unidade III
R
e
v
i
s

o
:

A
n
d
r

i
a

D
o
m
e
s
/
M
i
c
h
e
l

A
p
t

-

D
i
a
g
r
a
m
a

o
:

J
e
f
f
e
r
s
o
n

-

2
0
/
0
7
/
2
0
1
2
6 TIPOS DE DADOS (DATA TYPES)
Um banco de dados existe para armazenar dados de forma efetiva para posteriormente recuper-los.
Para auxiliar nessa tarefa, existem tipos diferentes de dados para melhor armazen-los.
Os bancos de dados possuem vrios tipos e subtipos de dados. Recomendados a leitura do manual do
banco de dados fornecido pelo fabricante para voc conhecer os tipos de dados. muito comum fazer
algumas converses de um tipo de dados para outro durante uma consulta dos dados armazenados no
banco de dados.
Alguns gerenciadores de bancos de dados consegue fazer essas converses diretamente, sem
a necessidade de explicitar por meio de funes prprias de converso. Os elementos de dados
bsicos e as estruturas de dados mais comuns, utilizadas em diversas linguagens e bancos de dados,
esto a seguir.
6.1 Elementos de dados
Byte, Integer: nmeros inteiros positivos, negativos ou o zero.
Real: nmeros inteiros positivos ou negativos compostos por uma parte inteira e outra fracionada.
Exemplo: 8,2.
Char: caractere alfanumrico como letras, algarismos ou smbolos especiais ocupando uma nica
posio de memria. Na verdade, esse elemento armazena um numero da tabela ASCII.
Boolean: armazena estados de uma operao lgica, podendo receber valores de verdadeiro ou
falso, armazenando o bit 0 ou 1 dependendo do resultado.
Quando os dados esto organizados de forma coerente, temos uma estrutura de dados. As estruturas
tambm so chamadas tipos de dados compostos e podem ser:
Homogneos: conjunto de dados formado pelo mesmo elemento de dado.
Heterogneos: conjunto de dados formado por mais de um elemento de dado.
Alguns bancos de dados, alm de ter uma vasta coleo de elementos de dados, permitem a criao
de novos elementos, por exemplo, o PostgreSQL, que permite a criao por meio do comando CREATE
TYPE.
Existem elementos de dados nativos de um banco de dados que no existem em outros bancos de
dados.
6.1.1 Estrutura de dados
As mais comuns sero descritas a seguir. Lembrando que nem todas as estruturas existem nos
diferentes bancos de dados. Por exemplo, a estrutura de dados conhecida como vetor no existe no
65
R
e
v
i
s

o
:

A
n
d
r

i
a

D
o
m
e
s
/
M
i
c
h
e
l

A
p
t

-

D
i
a
g
r
a
m
a

o
:

J
e
f
f
e
r
s
o
n

-

2
0
/
0
7
/
2
0
1
2
ADMINISTRAO DE BANCO DE DADOS
bando de dados Sybase, mas por meio do conceito de cursor podemos lidar com os dados com a mesma
funcionalidade dos vetores.
Vetores
Tambm conhecidos como array, so uma estrutura de dados simples linear e esttica que mantm
uma srie nita de elementos de dados do mesmo tamanho e tipo.
Lista
Cada elemento de dados referencia o seu sucessor. Os tipos de lista so:
Lista encadeada
Os elementos so armazenados em sequncia, no tendo como acessar um segundo elemento sem
acessar o primeiro.
Lista ordenada
Os elementos so armazenados seguindo algum critrio de ordenao.
Fila
Estruturas que se comportam como las tradicionais e tm como poltica de funcionamento o FIFO
(First in, rst out primeiro que entra, primeiro que sai). As inseres so realizadas no nal, e a remoo
no incio.
Existem duas operaes nas las, que so:
Enqueue: adiciona um elemento ao nal da la.
Dequeue: remove um elemento do incio da la.
5 3 7 1 4
Comeo Fim
Figura 34 Exemplo de estrutura de dados em la
Pilha
baseada no princpio LIFO (Last in, rst out ltimo que entra, primeiro que sai). O topo o nico
local possvel de inserir elementos e a remoo da pilha s ocorre nas extremidades do topo, isto , os
elementos so removidos na ordem inversa da insero.
66
Unidade III
R
e
v
i
s

o
:

A
n
d
r

i
a

D
o
m
e
s
/
M
i
c
h
e
l

A
p
t

-

D
i
a
g
r
a
m
a

o
:

J
e
f
f
e
r
s
o
n

-

2
0
/
0
7
/
2
0
1
2
As funes que se aplicam a pilhas so:
PUSH: insere um dado no topo da pilha.
POP: remove o item no topo da pilha.
TOP: retorna o elemento no topo.
rvores
Os dados esto dispostos de forma hierrquica, tendo seu elemento principal chamado de raiz, que
possui ligao com os outros elementos denominados ramos. Uma rvore binria aquela em que cada
ramo possui mais dois ramos, como na gura a seguir.
Figura 35 Exemplo de estrutura de dados em rvore
Saiba mais
Para se aprofundar no assunto, recomendamos alguns livros de estrutura
de dados, que esto relacionados na bibliograa ao nal do livro-texto.
6.1.2 Unidades de medidas
Os computadores entendem impulsos eltricos, positivos ou negativos, que so representados por
1 ou 0. A cada impulso eltrico, damos o nome de bit (BInary digiT). Um conjunto de 8 bits reunidos
como uma nica unidade forma um byte. A seguir, apresentamos algumas converses de medidas.
1 byte = 8 bits
1 kilobyte (KB ou Kbytes) = 1024 bytes
1 megabyte (MB ou Mbytes) = 1024 kilobytes
1 gigabyte (GB ou Gbytes) = 1024 megabytes
67
R
e
v
i
s

o
:

A
n
d
r

i
a

D
o
m
e
s
/
M
i
c
h
e
l

A
p
t

-

D
i
a
g
r
a
m
a

o
:

J
e
f
f
e
r
s
o
n

-

2
0
/
0
7
/
2
0
1
2
ADMINISTRAO DE BANCO DE DADOS
1 terabyte (TB ou Tbytes) = 1024 gigabytes
1 petabyte (PB ou Pbytes) = 1024 terabytes
1 exabyte (EB ou Ebytes) = 1024 petabytes
1 zettabyte (ZB ou Zbytes) = 1024 exabytes
1 yottabyte (YB ou Ybytes) = 1024 zettabytes
tambm por meio dos bytes que se determina o comprimento da palavra de um computador, ou
seja, a quantidade de bits que o dispositivo utiliza na composio das instrues internas, por exemplo:
8 bits palavra de 1 byte
16 bits palavra de 2 bytes
32 bits palavra de 4 bytes
Na transmisso de dados entre dispositivos, geralmente, usam-se medies relacionadas a bits e no
a bytes. Assim, h tambm os seguintes termos:
1 kilobit (Kb ou Kbit) = 1024 bits
1 megabit (Mb ou Mbit) = 1024 kilobits
1 gigabit (Gb ou Gbit) = 1024 megabits
1 terabit (Tb ou Tbit) = 1024 gigabits
Observao
Quando a medio baseada em bytes, a letra b da sigla maiscula
(como em GB). Quando a medio feita em bits, o b da sigla ca em
minsculo (como em Gb).
Como j dito, a utilizao de medies em bits comum para informar o volume de dados em
transmisses. Geralmente, indica-se a quantidade de bits transmitidos por segundo. Assim, quando
queremos dizer que um determinado dispositivo capaz de trabalhar, por exemplo, com 54 megabits
por segundo, usa-se a expresso 54 Mb/s:
1 Kb/s = 1 kilobit por segundo
68
Unidade III
R
e
v
i
s

o
:

A
n
d
r

i
a

D
o
m
e
s
/
M
i
c
h
e
l

A
p
t

-

D
i
a
g
r
a
m
a

o
:

J
e
f
f
e
r
s
o
n

-

2
0
/
0
7
/
2
0
1
2
1 Mb/s = 1 megabit por segundo
1 Gb/s = 1 gigabit por segundo
Resumo
Vimos nesta unidade que a etapa de projeto conceitual de um banco
de dados consiste na elaborao de um modelo conceitual, ou seja, um
modelo de representao de categorias de fatos do mundo real (entidades)
e os relacionamentos existentes entre eles.
dito um modelo de alto nvel, pois no est vinculado a nenhum
modelo de banco de dados. Sua inteno facilitar a real compreenso dos
fatos de uma realidade (semntica da realidade).
A etapa de projeto conceitual uma das mais importantes do projeto
do banco de dados, pois, se for mal denida, ir gerar uma estruturao de
dados ineciente no esquema implementado em um banco de dados.
As principais vantagens da confeco de um modelo conceitual so:
melhor compreenso do modelo por parte de um usurio leigo;
independncia de detalhes de implementao, podendo ser
facilmente modicado sem comprometer as outras etapas;
traduo para qualquer modelo de dados (relacional, orientado a
objetos, multidimensional);
ferramenta indispensvel para o processo de engenharia reversa de
um banco de dados (isto , obter o modelo conceitual a partir do
modelo lgico de um banco de dados);
maior estabilidade diante das mudanas de implementao;
mais adequado para o exerccio da criatividade durante a interpretao
da realidade para ser traduzida para o modelo.

Vous aimerez peut-être aussi