You are on page 1of 16

Modelagem de Banco de Dados

Fernando Jos Igncio fjignacio@yahoo.com.br

Criando Views
Para definir Views em um banco de dados, utilize a declarao CREATE VIEW, a qual tem a seguinte sintaxe: CREATE [OR REPLACE] [ALGORITHM = algorithm_type] VIEW VIEW view_name [(column_list)] AS select_statement [WITH [CASCADED | LOCAL] CHECK OPTION]

ALGORITHM: essa clusula define qual algoritmo interno utilizar para processar a View quando a mesma for invocada. Estes podem ser UNDEFINED (clusula em branco), MERGE ou TEMPTABLE.
WITH CHECK OPTION: todas as declaraes que tentarem modificar dados de uma view definida com essa clusula sero revisadas para checar se as modificaes respeitaro a condio WHERE, definida no SELECT da View.

Criando Views
Para definir Views em um banco de dados, utilize a declarao CREATE VIEW, a qual tem a seguinte sintaxe: CREATE [OR REPLACE] [ALGORITHM = algorithm_type] VIEW VIEW view_name [(column_list)] AS select_statement [WITH [CASCADED | LOCAL] CHECK OPTION]

view_name: o nome que damos ao objeto View que criarmos. Esse nome poder ser no qualificado, quando criado no banco de dados corrente ou totalmente qualificado quando criarmos em um banco de dados que no est definido no contexto atual (db_name.view_name).
column_list: recurso para que possamos sobrescrever os nomes das colunas que sero recuperadas pela declarao SELECT;

Criando Views
Para definir Views em um banco de dados, utilize a declarao CREATE VIEW, a qual tem a seguinte sintaxe: CREATE [OR REPLACE] [ALGORITHM = algorithm_type] VIEW VIEW view_name [(column_list)] AS select_statement [WITH [CASCADED | LOCAL] CHECK OPTION]

select_statement: a sua declarao SELECT e indica a forma na qual voc deseja que os dados sejam retornados. Tal declarao dever indicar a forma a qual voc deseja retornar os dados, podendo ser utilizado funes, JOINs e UNION. Podem ser utilizadas quaisquer tabelas ou views contidas no servidor de bancos de dados MySQL, observando a questo de nomes totalmente qualificados ou no.
OR REPLACE: pode ser utilizada para substituir uma View de mesmo nome existente no banco de dados ao qual ela pertence. Pode-se utilizar ALTER TABLE para o mesmo efeito;

Definindo Views
Exemplo Para iniciarmos com a mo na massa, definiremos uma View simples para listar cidades da tabela City, do banco de dados World, como segue na figura 01.

Definindo Views
Exemplo Se dermos um SHOW TABLES no banco de dados, veremos que uma tabela adicional foi criada, que a View que criamos. Para uma conceituao mais ampla, uma View um mapeamento lgico de vrias tabelas contidas em um ou mais bancos de dados que por sua vez esto em um servidor MySQL.

Exemplo de construo de uma View


Create view minha_consulta { Nome_credor, Telefone, nrconta Nome_conta } as Select credor.nome, credor.tel, conta.id, conta.nome From credor inner join conta

Como executamos, aps a sua criao? Select * from minha_consulta

Como executamos, aps a sua criao?


Select * from minha_consulta

Exemplo de construo de uma View


CREATE VIEW teste.view Teste AS SELECT * FROM tabela1; Neste exemplo simples, criamos uma view com o nome viewTeste, na base de dados teste, onde o contedo da view SELECT * da tabela base tabela1. Tabelas base e views compartilham o mesmo namespace na base de dados, ento a base de dados no pode contar a mesma tabela base e uma view que tenha o mesmo nome. Uma view pode ser criada a partir de diversos tipos de SELECT. Pode referir-se s tabelas de base ou outras views. Pode user JOINS, UNION e subqueries.

Exemplo de construo de uma View


Neste exemplo, estamos criando a tabela t, com 2 campos do tipo INT. Inserimos algum valor na tabela, criamos a view v e realizamos um SELECT na view.
1. mysql> CREATE TABLE t (qtde INT, valor INT); 2. mysql> INSERT INTO t VALUES(3, 50); 3. mysql> CREATE VIEW v AS SELECT qtde, valor, qtde*valor AS Total FROM t; 4. mysql> SELECT * FROM v; +---+-----+----------+ | qtde| valor | Total | +---+-----+----------+ | 3 | 50 | 150 | +---+-+-+------------+

Neste exemplo, na linha 3, criamos a view onde temos 3 campos e o terceiro campo a multiplicao dos campos qtde e valor e recebe o label Total.

Exerccios
Considere o banco de dados ESCOLA, cuja estrutura de tabelas mostrada abaixo: TABELA alunos

ATRIBUTO aluno_cod aluno_nome

TIPO Nmero inteiro Alfanumrico

DESCRIO Cdigo do aluno Nome do aluno

aluno_endereco
aluno_cidade

Alfanumrico
Alfanumrico

Endereo do aluno
Cidade do aluno

Exerccios
Considere o banco de dados ESCOLA, cuja estrutura de tabelas mostrada abaixo: TABELA disciplina

ATRIBUTO dis_cod dis_nome dis_carga

TIPO Nmero inteiro Alfanumrico Nmero inteiro

DESCRIO Cdigo da disciplina Nome da disciplina Carga horria da disciplina

dis_professor

Alfanumrico

Professor da disciplina

Exerccios
Considere o banco de dados ESCOLA, cuja estrutura de tabelas mostrada abaixo: TABELA professores

ATRIBUTO prof_cod prof_nome prof_endereco

TIPO Nmero inteiro Alfanumrico Alfanumrico

DESCRIO Cdigo do professor Nome do professor Endereo do professor

prof_cidade

Alfanumrico

Cidade do professor

Exerccios
Considere o banco de dados ESCOLA, cuja estrutura de tabelas mostrada abaixo: TABELA notaFalta
ATRIBUTO ID_NotaFalta aluno_cod TIPO Nmero inteiro ? DESCRIO ID Notas e Faltas Cdigo do Aluno

dis_cod
MediaBim1 QtdeFaltasBim1 MediaBim2

?
? ? ?

Cdigo da Disciplina
Mdia do 1 Bimestre Qtde de faltas do 1 Bim Mdia do 2 Bimestre

QtdeFaltasBim2
MediaBim3 QtdeFaltas3 MediaBim4 QtdeFaltas4

?
? ? ? ?

Qtde de faltas do 2 Bim


Mdia do 3 Bimestre Qtde de faltas do 3 Bim Mdia do 4 Bimestre Qtde de faltas do 4 Bim

Exerccio - 1
Com Base nas Classes desenvolvidas; Insira registros em cada uma das tabelas. TABELA alunos - 15 TABELA disciplina - 08 TABELA professores - 04 TABELA notaFalta - 30

Crie uma viso que mostre os nomes dos professores que moram em Natal. Consulte a viso criada. Crie uma viso que mostre a quantidade de alunos que moram em cada cidade. Consulte a viso criada. Crie uma viso que mostre o nome das disciplinas e seus respectivos professores. Consulte a viso criada. Crie uma viso que mostre o nome dos professores e a quantidade de disciplinas por ele ministradas. Consulte a viso criada.

Exerccio - 2
Com Base nas Classes desenvolvidas; Insira registros em cada uma das tabelas. TABELA alunos - 15 TABELA disciplina - 08 TABELA professores - 04 TABELA notaFalta - 30

Crie uma viso da tabela notaFalta que exiba os nomes dos alunos, nome do professor, a disciplina ministrada, a carga horaria. Consulte a viso criada. Crie uma viso da tabela notaFalta que exiba os nomes dos alunos, o nome da disciplina, MediaBim1, MediaBim2, MediaBim3, MediaBim4, calcule a media dessas 4 mdias bimestrais. Consulte a viso criada. Crie uma viso da tabela notaFalta que exiba os nomes dos alunos, o Nome da disciplina, QtdeFaltasBim1, QtdeFaltasBim2, QtdeFaltasBim3, QtdeFaltasBim4, calcule o total de faltas dos 4 bimestrais. Consulte a viso criada. Crie uma viso da tabela notaFalta que exiba os nomes dos alunos, o Nome da disciplina, QtdeFaltasBim1, QtdeFaltasBim2, QtdeFaltasBim3, QtdeFaltasBim4, calcule o total das faltas dos4 bimestrais, exiba o carga horaria da disciplina (dis_carga), Calcule a porcentagem de frequencias e ausencias. Consulte a viso criada.

You might also like