Viso geral
Apresentao da disciplina:
A disciplina Banco de Dados na Web tem a finalidade de
apresentar os conceitos do modelo entidade relacionamento,
modelo relacional normalizado, debater sobre a importncia
destas etapas e tambm conceitual os principais comandos
padro SQL com as operaes CRUD e as propriedades ACID de
uma transao. Finalizamos com os controles de acesso aos
dados, que garantem a segurana da informao.
Todas estas etapas so fundamentais pois os sistemas voltadas
para a Web necessitam de maior ateno por parte dos analistas
de sistemas e desenvolvedores, uma vez que este tipo de
sistema muito diferente do modelo Cliente/Servidor.
Objetivos:
Conceituar ao aluno os principais pontos a serem observados no
item banco de dados durante o projeto e desenvolvimento de um
sistema voltado para a Web.
Contedo Programtico:
Modelo Entidade Relacionamento.
modelagem
entidade
- diagrama entidade relacionamento.
relacionamento.
Codd
Forma
Forma
Forma
Forma
Normal.
Normal.
Normal.
Normal.
Create
Read
Update
(Criar).
(Recuperar).
(Atualizar).
tradutor
analisador
- dicionrio de dados.
de
de
consultas.
estratgia.
de
Atomicidade.
Consistncia.
Integridade.
Durabilidade.
transao.
Propriedades ACID.
conceitos
- operaes DML.
Direitos de acesso.
concesso
revogao
- papis / perfis (Role).
de
de
direitos
direitos
(Grant).
(Revoke).
Metodologia:
Na unidade utilizaremos todos os recursos necessrios e
disponveis para o desenvolvimento da discusso do contedo,
sendo assim, faremos uso de:
Avaliao Prevista:
Cada web-aula conter uma avaliao virtual composta de 5
questes (sendo assim, temos 2 web-aulas com 5 questes
cada). Quando houver frum de discusso o aluno ser avaliado
quanto ao contedo de sua postagem, onde dever comentar o
tpico apresentando respostas completas e com nvel crtico de
avaliao pertinente ao nvel de ps-graduao.
Habilidades e competncias
Espera-se que no final do curso os alunos possam:
Compreender a necessidade de uma boa modelagem de dados
para que o banco de dados possa ser o mais gil e organizado
possvel.
Aplicar a normalizao fundamental para este passo.
Compreender os mecanismos de funcionamento nas operaes
fundamentais e essenciais do banco de dados, uma vez que
sistemas voltados para ambiente Web so totalmente diferente
em sua arquitetura dos sistemas cliente servidor.
Este modelo prega a identificao e organizao dos dados que se pretende armazenar,
tudo isto obedecendo s regras do negcio em questo e que vo permitir a integrao
e entrelaamento dos dados.
O projeto de banco de dados envolve as etapas de construo do modelo conceitual de
dados, do modelo lgico de dados e do modelo fsico de dados.
Estes modelos so projetados e desenhados com figuras geomtricas prestabelecidas, onde esta representao recebe o nome de diagrama entidade
relacionamento (DER).
As figuras geomtricas utilizadas como padro so:
- retngulo, representando as entidades;
MODELO CONCEITUAL
Nesta fase inicial do projeto de banco de dados, devemos representar o nosso cenrio
sistmico o mais prximo da realidade do nosso usurio, sempre colocando o
armazenamento dos dados de uma forma que possa haver a compreenso do que se
pretende guardar com como ser guardado.
MODELO FSICO
Aqui estamos tratando j dos comandos padro SQL para a criao fsica do banco de
dados, com as caractersticas e sintaxes apropriadas ao SGBD escolhido.
Em linhas gerais, o projeto fsico contm uma srie de comandos CREATE e ALTER.
Dependendo do SGBD adotado, ele pode ter uma sintaxe muito parecida com outro
SGBD, mas sempre que for necessrio utilizar um projeto fsico de um SGBD especfico
em outro SGBD, uma reviso completa de sintaxe deve ser feita, seno voc corre o
risco do seu projeto fsico no funcionar de acordo com o esperado.
Normalmente como o Modelo Fsico j esta ajustado sintaticamente para um SGBD,
caso o mesmo projeto seja utilizado em outro SGBD, provavelmente alguns trechos e
formatos dos comandos devero ser ajustados. Isto faz com que um Modelo Fsico seja
<http://www.devmedia.com.br/conceitos-fundamentais-de-banco-de-dados-parte2/1678>.
Desnormalizado Conceitual
Desnormalizado Lgico
1 FN Conceitual
1 FN Lgico
2 FN Lgico
Aps aplicar a 3 FN
3 FN Conceitual
3 FN Lgico
Este exemplo acima demonstra uma situao onde o relacionamento ternrio inicial foi
desmembrado em 3 relacionamentos binrios, uma situao que pode contemplar a
todas as necessidades de regras de negcio.
As cardinalidades neste caso no foram mantidas para efeito de demonstrao, mas no
seu dia a dia, deve-se prestar muita ateno para no montar um looping de
relacionamento.
VDEO AULA 02 - MRN
Pessoal, vamos participar do frum colocando suas opinies, dvidas, ponto de vista e
aproveitarmos o momento para troca de conhecimento.
Comandos DML fazem a manipulao dos dados onde escolha do melhor caminho
pode ser feita pelo prprio usurio (DML procedural) ou pelo prprio SGBD (DML no
procedural).
J os comandos DDL fazem a manipulao das estruturas de armazenamento e acesso,
definindo, alterando, modificando ou eliminando estes objetos do banco de dados.
COMANDOS DML
Os comandos DML (Linguagem de Manipulao de Dados) permitem manipularmos os
dados das tabelas do banco de dados, seja incluindo novos dados, atualizando dados
que j estejam gravados no banco de dados, eliminando dados armazenados e
principalmente consultando dados armazenados.
Um comando DML procedural, o usurio deve especificar quais dados ele deseja
localizar no banco de dados e tambm precisa especificar no mesmo comando, como
fazer para chegar at estes dados. conhecido entre os analistas e programadores
como passar o HINT no comando select, quando o analista indica qual ndice de
pesquisa ele deseja que seja utilizado, apenas lembrando que a responsabilidade de
escolher um ndice correto passa para o analista e tira do banco de dados a
responsabilidade desta escolha.
J o comando DML no procedural, geralmente o mais utilizado no nosso dia a dia,
pois o usurio simplesmente especifica quais dados ele quer e a escolha do melhor
caminho para este acesso passado para o banco de dados. O banco de dados por sua
vez faz acesso e utiliza os dados que esto armazenados no dicionrio de dados, mais
especificamente na parte dos dados estatsticos para realizar a analise da melhor
estratgia de acesso.
ESTRUTURA DE COMANDO SQL
O SGBD pode interpretar os comandos SQL de duas formas, a primeira atravs de
alguma ferramenta que faa o acesso intrusivo no banco de dados onde geralmente os
comandos so interpretados e executados ou na segunda forma que atravs de
objetos no prprio banco de dados, por exemplo: procedures de banco, triggers,
packages, funcionts.
Apesar dos resultados serem os mesmos, ser feitas duas anlises distintas, com
provavelmente a indicao da mesma estratgia de acesso, mas isso no 100%
garantido.
A economia parece pequena, mas se a consulta for executada milhares de vezes ao
dia, so muitas etapas de anlise que podem ser economizadas.
Esta fase onde o comando SQL estruturado muito importante pois dois usurios
diferentes podem pedir a mesma solicitao de dados para o SGBD e receber
interpretaes diferentes e consequentemente, ser executado por caminhos diferentes
com performances diferentes tambm.
COMANDO SELECT
O comando SELECT faz a leitura dos dados nas tabelas, procurando pela informao
solicitada e depois apresentando os resultados ao usurio solicitante.
O acesso pode ser feito em uma nica tabela ou em vrias tabelas ao mesmo tempo,
quando utilizamos duas ou mais tabelas, conhecido como join de tabelas.
Um comando SELECT pode trazer como resposta uma linha de informao ou vrias
linhas de informao, bem como pode no trazer linha nenhuma, ou seja, uma resposta
vazia (no encontrou nada que satisfizesse a consulta).
Veja que se o comando SELECT esta sintaticamente correta, o mesmo ser executado,
mas a resposta vai depender diretamente dos dados que estiverem armazenados
dentro do banco de dados.
Por isso mesmo, um comando SELECT pode ter comportamento e resposta diferente se
for executado em dois bancos de dados com a mesma estrutura de tabelas, mas com
dados diferentes armazenados em cada um deles ( o famoso caso de banco de
produo e banco de teste, onde o comando tem um resultado no desenvolvimento e
outro na produo).
Alguns cuidados devem ser tomados no uso do comando SELECT como o uso correto
da clusula WHERE, pois a peneira para que os dados sejam retornados de acordo
com a sua necessidade.
COMANDO INSERT
O comando INSERT permite que seja gravada uma informao nova dentro de uma
tabela.
A insero feita em uma tabela de cada vez, ou seja, na mesma sintaxe no possvel
(ainda) gravar dados em duas ou mais tabelas ao mesmo tempo.
Em cada insero, gravado apenas um registro de cada vez. Existem sintaxes que
permitem gravar dois ou mais registros num mesmo comando SQL, porm neste caso
fica evidente que o comando est fora do padro SQL ANSI. Pode at ser que em breve
uma nova reviso do padro SQL inclua esta nova sintaxe, mas no momento est fora.
Quando executado o comando INSERT, verificada a validade dos dados em questo,
como por exemplo, se o contedo do campo chave primria nico ou no, se existem
atributos de preenchimento obrigatrio, se existem valores de atributo tipo DATA
invlidos ou no, se existem atributos com valores pr-determinados / definidos, se
existem atributos que so chaves estrangeiras e a sua validade com a chave primria
correspondente.
Estas validaes so conhecidas como regras de negcio ou constraints, como estas
validaes so executadas pelo banco de dados, os programas aplicativos no precisam
programar estas regras em sua estrutura.
Caso ocorra algum problema, uma mensagem de erro emitida e o comando no
completado.
COMANDO UPDATE
COMANDO DROP
O comando DROP permite eliminar definitivamente uma tabela do banco de dados, ou
seja, alm de todos os dados, a estrutura de armazenamento tambm eliminada.
Caso a tabela em questo seja parte de uma regra de integridade referencial, ou seja,
possui chave primria sendo doado para outra tabela, o comando no vai ser executada
de forma natural, uma mensagem de erro emitida.
Voc ter duas alternativas, a primeira desativar a integridade referencial e depois
eliminar a tabela. E a segunda eliminar a tabela acrescentando na sua sintaxe a
clusula CASCADE CONSTRAINTS que faz este papel de eliminar a integridade
referencial para voc.
1 ) Este comando apresentar erro pois o ID_MARCA com valor igual a 7 j existe
dentro da tabela, receber mensagem de chave primria duplicada.
2 ) Este comando apresentar erro pois a troca de valores de campos chave primria
no so permitidos, seria necessrio deletar o valor antigo e depois incluir o valor novo.
3 ) Sintaticamente este comando est correto e a resposta ser nenhum valor
encontrado pois a marca KIA ainda no est cadastrada na tabela MARCA.
4 ) Apesar deste comando estar sintaticamente correto, ele no poder ser executado
pois o ID_MARCA = 2 tem registros referenciados na tabela MODELO, que no podem
ficar rfos, necessrio remover os modelos primeiro.
5 ) Apesar deste comando estar sintaticamente correto, ele no poder ser executado
pois o campo NM_MARCA apesar de no ser a chave primria da tabela MARCA, com o
contedo TOYOTA possui registros na tabela MODELO que so referenciados pela
chave primria de forma automtica (conhecido como integridade referencial).
6 ) Este comando est sintaticamente correto, porm faz o uso de um valor para
ID_MARCA = 11, e este valor no existe na tabela MARCA, por isso viola a integridade
referencial por fazer referencia a um valor inexistente.
7 ) Este comando est sintaticamente correto e a resposta ser nenhum registro
deletado, pois na tabela MODELO no temos o valor FOX em nenhuma das ocorrncias
da tabela.
8 ) Este comando est sintaticamente correto e a resposta ser 1 registro deletado.
9 ) Este comando est sintaticamente correto e ser executado OK, para o banco de
dados, ele no sabe que PUNTO no da VOLKSWAGEM mas a partir deste momento
esta uma informao verdadeira para o banco de dados.
10) Este comando est sintaticamente correto porm no pode ser executado pois no
permitido alterar / atualizar valores em campos que sejam parte da chave primria,
como o caso do ID_MARCA na tabela MODELO ( chave primria e chave estrangeira
ao mesmo tempo).
Estas foram apenas algumas dicas para demonstrar que o mundo do banco de dados
bem organizado e a utilizao do padro SQL facilita muito o dia a dia.
A prtica o melhor caminho para o seu aperfeioamento e nunca se esquea de que
o mesmo comando pode ser comportamento e resultados diferentes em bancos de
dados diferentes.
ENCERRAMENTO
Chegamos ao final da nossa disciplina, espero que tenham gostado do nosso contedo
e compreendido que um banco de dados para web precisa de um cuidado especial,
principalmente porque o seu funcionamento um pouco diferente do modelo
tradicional.
Questo para reflexo Unidade II
Na unidade II da web aula, o padro SQL com as operaes CRUD e propriedades ACID
que foram os pontos de ateno.
Como a padronizao de comandos entre softwares concorrentes pode ser considerado
algo vantajoso? Participe do frum.
Usurio feliz
Analista feliz
Obrigado