Académique Documents
Professionnel Documents
Culture Documents
UNIDADE 1 1.1
AS LINGUAGENS PARA MANIPULAO DE DADOS: .............................................................................................................. 4 CLASSIFICAO DOS SGBDS ........................................................................................................................................... 4 O MODELO DE REDE 3-3-1 ............................................................................................................................................ 4 O MODELO HIERRQUICO 3-3-2: ................................................................................................................................... 5 O MODELO RELACIONAL 3-3-3: ..................................................................................................................................... 5 MODELAGEM DE DADOS UTILIZANDO O MODELO ENTIDADE RELACIONAMENTO (ER) ........................... 8
ELEMENTOS DO MODELO ENTIDADE-RELACIONAMENTO ...................................................................................................... 8 TIPOS E INSTNCIAS DE RELACIONAMENTO: ..................................................................................................................... 10 RESUMO DOS OBJETOS GRFICOS:.................................................................................................................................. 14 MODELO ENTIDADE RELACIONAMENTO ESTENDIDO: ......................................................................................................... 15 ESPECIALIZAO ......................................................................................................................................................... 16 GENERALIZAO:........................................................................................................................................................ 17 LATTICE OU MLTIPLA HERANA: .............................................................................................................................. 19 DICAS PARA A ELABORAO DE UM DIAGRAMA E-R: .......................................................................................................... 20 O MODELO RELACIONAL ........................................................................................................................ 22
O MODELO RELACIONAL .............................................................................................................................................. 22 DOMNIOS, TUPLAS, ATRIBUTOS E RELAES ................................................................................................................... 22 ATRIBUTO CHAVE DE UMA RELAO .............................................................................................................................. 23 CHAVE PRIMRIA ....................................................................................................................................................... 24 CHAVE CANDIDATA ..................................................................................................................................................... 25 CHAVE ESTRANGEIRA .................................................................................................................................................. 25 MAPEAMENTO DO MODELO ENTIDADE RELACIONAMENTO PARA O MODELO RELACIONAL ....................................................... 25 NORMALIZAO DE DADOS .......................................................................................................................................... 29 SQL (STRUCTURED QUERY LANGUAGE) .................................................................................................. 33
INTRODUO ............................................................................................................................................................. 33 DML (DATA MANIPULATION LANGUAGE): ...................................................................................................................... 33 DCL (DATA CONTROL LANGUAGE): ............................................................................................................................... 33 TIPOS DE DADOS: ....................................................................................................................................................... 34 EXPRESSES E OPERADORES: ........................................................................................................................................ 34 TIPOS DE OPERADORES ................................................................................................................................................ 35 CRIAO DE TABELAS............................................................................................................................. 37
UNIDADE 6 6.1 6.2 6.3 6.4 6.5 6.6 6.7 6.8 6.9 6.10
TUTORIAL:................................................................................................................................................................. 37 CRIANDO TABELAS ...................................................................................................................................................... 37 PARMETROS DE CAMPOS NA CRIAO DE TABELAS: ........................................................................................................ 38 VALORES NULOS ........................................................................................................................................................ 38 CHAVE PRIMRIA ....................................................................................................................................................... 38 CHAVE ESTRANGEIRA: ................................................................................................................................................. 39 INTEGRIDADE REFERENCIAL: ......................................................................................................................................... 39 ON UPDATE: ........................................................................................................................................................... 39 ON DELETE: ............................................................................................................................................................ 40 REMOVENDO TABELAS................................................................................................................................................. 41 COMANDOS PARA ALTERAR TABELAS .................................................................................................... 42
UNIDADE 7 7.1
ADICIONAR COLUNAS A UMA TABELA ADD ................................................................................................................... 42 REMOVER COLUNAS DE UMA TABELA DROP ................................................................................................................. 42 RENOMEANDO COLUNAS DE UMA TABELA RENAME ..................................................................................................... 42 MODIFICANDO COLUNAS DE UMA TABELA MODIFY ...................................................................................................... 43 MODIFICANDO DADOS ........................................................................................................................... 44
INSERINDO DADOS ...................................................................................................................................................... 44 INSERINDO DADOS POR MEIO DE UM SELECT .................................................................................................................. 44 EXCLUINDO INFORMAES ........................................................................................................................................... 45 ATUALIZANDO DADOS DE UMA TABELA............................................................................................................................ 45 CONSULTA EM UMA NICA TABELA SQL ................................................................................................ 47
SINTAXE BSICA DE CONSULTAS SQL ............................................................................................................................. 47 EXEMPLOS DE CONSULTAS SQL ..................................................................................................................................... 47 SELEO DE TODOS OS REGISTROS COM COLUNAS ESPECFICAS ........................................................................................... 47 REDEFININDO O NOME DAS COLUNAS ............................................................................................................................ 48 SELEO DE REGISTROS COM EXIBIO DE STRINGS .......................................................................................................... 49 UNIDADE 10: FUNES COM STRINGS ............................................................................................... 51
FUNES COM STRINGS ............................................................................................................................................... 51 SINTAXE DA FUNO DE CONCATENAO DE STRINGS ....................................................................................................... 51 CONTROLE DE MAISCULAS E MINSCULAS .................................................................................................................... 51 SEGMENTANDO UMA STRING ........................................................................................................................................ 52 CRITRIOS DE CONSULTA CLUSULA WHERE .................................................................................. 54
CLUSULA WHERE ...................................................................................................................................................... 54 CONSULTAS SIMPLES COM CLUSULA WHERE .................................................................................................................. 55 SELECIONANDO DADOS NO REPETIDOS ......................................................................................................................... 56 SELECIONANDO ALGUNS DADOS..................................................................................................................................... 57 PREDICADOS ...................................................................................................................................... 60
PREDICADOS LIKE E NOT LIKE: .................................................................................................................................... 60 PREDICADOS BETWEEN... AND E NOT BETWEEN... AND ............................................................................................ 61 PREDICADOS IN E NOT IN:......................................................................................................................................... 61 PREDICADO IS NULL E IS NOT NULL ............................................................................................................................ 62 SELEO COM OPERADORES LGICOS ............................................................................................................................ 63 FUNES DE AGRUPAMENTO E ORDENAO .................................................................................... 64
OBTENDO INFORMAES ESTATSTICAS .......................................................................................................................... 64 AGRUPAMENTO UTILIZANDO GROUP BY: ...................................................................................................................... 65 UTILIZANDO WHERE E GROUP BY: ............................................................................................................................. 65 SELEO DE REGISTROS COM AGRUPAMENTO PELA CLUSULA GROUP BY E HAVING: .......................................................... 66 ORDENAO DAS CONSULTAS ....................................................................................................................................... 66 CONSULTAS EM MLTIPLAS TABELAS ................................................................................................ 68
UNIDADE 14 14.1 14.2 14.3 14.4 14.5 14.6 14.7 14.8 14.9
CONSULTAS EM MLTIPLAS TABELAS ............................................................................................................................. 68 JOIN ......................................................................................................................................................................... 68 EQUIJOIN JOIN DE IGUALDADE .................................................................................................................................... 69 EXERCCIOS SUGERIDOS ............................................................................................................................................... 70 EQUIJOINS E OPERADORES LGICOS: .............................................................................................................................. 70 EQUIJOINS ENTRE MAIS DE DUAS TABELAS ........................................................................................................................ 71 REDEFINIO DO NOME DE TABELAS .............................................................................................................................. 71 OUTROS TIPOS DE JOINS - OUTER JOINS.......................................................................................................................... 71 OUTROS TIPOS DE JOINS - SELF JOINS ............................................................................................................................. 72
DATAS EM MYSQL ..................................................................................................................................................... 75 RECUPERANDO INFORMAES ESPECFICAS DE DATA......................................................................................................... 75 EXERCCIOS EXTRAS ........................................................................................................................... 76 PROJETO FINAL - REVISO ................................................................................................................. 80 PRINCIPAIS BANCOS DE DADOS ......................................................................................................... 81 MICROSOFT ACCESS ........................................................................................................................... 82
UNIDADE 16 UNIDADE 17 UNIDADE 18 UNIDADE 19 19.1 19.2 19.3 19.4 19.5 19.6 19.7 19.8 19.9
INTRODUO ............................................................................................................................................................. 82 ARQUIVOS DE BANCO DE DADOS DO ACCESS ........................................................................................................ 82 INICIANDO O ACCESS ............................................................................................................................................. 86 PRIMEIROS CONTATOS .......................................................................................................................................... 86 MENUS E BARRAS DE FERRAMENTAS .................................................................................................................... 87 JANELA BANCO DE DADOS ..................................................................................................................................... 88 CRIANDO UM NOVO BANCO DE DADOS ................................................................................................................ 91 ABRINDO UM BANCO DE DADOS ........................................................................................................................... 92 FECHANDO UM BANCO DE DADOS ........................................................................................................................ 93 TABELAS ............................................................................................................................................. 95
CRIANDO UMA NOVA TABELA ............................................................................................................................... 98 CRIAR UMA TABELA USANDO O ASSISTENTE DE TABELA ....................................................................................................... 98 CRIAR UMA TABELA INSERINDO DADOS EM UMA FOLHA DE DADOS ........................................................................................ 99 CRIAR UMA TABELA NO MODO DESIGN .......................................................................................................................... 100 TIPOS DE DADOS .................................................................................................................................................. 101 PROPRIEDADES DE CAMPOS ................................................................................................................................ 103 BARRA DE FERRAMENTAS DO MODO DESIGN DE TABELA ................................................................................... 104 EDITANDO DADOS NO MODO FOLHA DE DADOS................................................................................................. 105 RELACIONAMENTOS ........................................................................................................................ 109
BANCO DE DADOS RELACIONAL ........................................................................................................................... 109 TIPOS DE RELACIONAMENTOS ............................................................................................................................. 109 DEFININDO OS RELACIONAMENTOS .................................................................................................................... 111 CONSULTAS...................................................................................................................................... 114
O QUE SO AS CONSULTAS NO ACCESS ............................................................................................................... 114 CRIAR UMA CONSULTA USANDO O ASSISTENTE DE CONSULTA ............................................................................................ 114 CRIAR UMA CONSULTA USANDO O MODO DESGIN............................................................................................................ 115 TIPOS DE CONSULTAS .......................................................................................................................................... 118 FORMULRIOS ................................................................................................................................. 126
O QUE SO FORMULRIOS? ................................................................................................................................ 126 CRIANDO UM NOVO FORMULRIO ..................................................................................................................... 127 CAIXA DE FERRAMENTAS ..................................................................................................................................... 130 SOBRE AS SEES DE UM FORMULRIO .............................................................................................................. 133 SUBFORMULRIOS .............................................................................................................................................. 135 RELATRIOS ..................................................................................................................................... 140
O QUE SO RELATRIOS? .................................................................................................................................... 140 CRIANDO UM NOVO RELATRIO ......................................................................................................................... 141 CAIXA DE FERRAMENTAS ..................................................................................................................................... 144
PARA CRIAR UMA PGINA DE ACESSO A DADOS ................................................................................................. 146 CRIAR UMA PGINA DE ACESSO .......................................................................................................................... 146 PERSONALIZAO E UTILITRIOS..................................................................................................... 152
CONFIGURAES DE INICIALIZAO ................................................................................................................... 152 COMPACTANDO UM BANCO DE DADOS ......................................................................................................................... 153 REPARANDO UM BANCO DE DADOS .................................................................................................................... 154 PROTEGENDO UM APLICATIVO............................................................................................................................ 154 MYSQL ............................................................................................................................................. 157
UNIDADE 27 27.1
UNIDADE 28 28.1
ATRAVS DE LINGUAGENS DE PROGRAMAO ................................................................................................................ 159 ATRAVS DO FRONT-END ........................................................................................................................................... 160 CONHECENDO A INTERFACE ............................................................................................................. 163
MYSQL QUERY BROWSER ......................................................................................................................................... 163 ACESSANDO UMA BASE DE DADOS ............................................................................................................................... 164 CRIANDO UMA NOVA BASE DE DADOS ............................................................................................ 166
UNIDADE 31 31.1
UNIDADE 32 32.1
UNIDADE 33 33.1
UNIDADE 34 34.1
UNIDADE 35 35.1
ATRAVS DE LINGUAGENS DE PROGRAMAO ................................................................................................................ 175 ATRAVS DO FRONT-END ........................................................................................................................................... 176 CONHECENDO A INTERFACE ............................................................................................................. 177
APLICATIVO NATIVO .................................................................................................................................................. 177 ACESSANDO UMA BASE DE DADOS ............................................................................................................................... 177 CRIANDO UMA NOVA BASE DE DADOS ............................................................................................ 178
UNIDADE 38 38.1
UNIDADE 39 39.1
UNIDADE 40 40.1
UNIDADE 41 41.1
CRIANDO COLUNAS DO TIPO XML ................................................................................................................................ 183 INSERINDO VALORES .................................................................................................................................................. 184 ATUALIZANDO VALORES ............................................................................................................................................. 185 DELETANDO VALORES ............................................................................................................................................... 189 TRABALHO FINAL ............................................................................................................................. 190
UNIDADE 43 43.1
Banco de Dados I
Banco de Dados I
Banco de Dados I
Banco de Dados I
Os meta dados so representados por tabelas, contendo linhas e colunas, onde so ligadas por colunas. Cada tabela contm uma ou mais colunas como identificadores.
Laboratrio Definir os seguintes termos: Sistema de bancos de dados: _______________________________________________________________________________ _______________________________________________________________________________ _______________________________________________________________________________ Banco de dados _______________________________________________________________________________ _______________________________________________________________________________ _______________________________________________________________________________ Sistema de gerenciamento de banco de dados _______________________________________________________________________________ _______________________________________________________________________________ _______________________________________________________________________________ Quais as vantagens e desvantagens da utilizao de um sistema de banco de dados? _______________________________________________________________________________ _______________________________________________________________________________ _______________________________________________________________________________
Banco de Dados I
Descrever o modelo relacional de dados. _______________________________________________________________________________ _______________________________________________________________________________ _______________________________________________________________________________ Definir os seguintes termos: Linguagem de definio de dados; _______________________________________________________________________________ _______________________________________________________________________________ _______________________________________________________________________________ Linguagem de manipulao de dados. _______________________________________________________________________________ _______________________________________________________________________________ _______________________________________________________________________________
Banco de Dados I
FUNCIONARIO
Cada entidade possui um conjunto particular de propriedades que a descreve chamado atributos. Atributos: So propriedades (caractersticas) que identificam as entidades. Cada entidade possui uma coleo de elementos de dados. A cada atributo de uma entidade associado um domnio de valores. Esses domnios podem ser um conjunto de nmeros inteiros, nmeros reais, cadeias de caracteres ou qualquer outro tipo de valor que o atributo pode assumir. Os atributos so representados apenas pelo seu nome ligado entidade por uma linha reta, por exemplo:
FUNCIONRIO
Nome
Banco de Dados I
Podemos ter vrios tipos de atributos: simples, composto, multivalorado e determinante. Vejamos as caractersticas de cada um deles: Simples ou atmico: no possui qualquer caracterstica especial. Por exemplo, o nome Da empresa um atributo sem qualquer caracterstica especial.
EMPRESA
Nome
Composto: o seu contedo formado por itens menores. O contedo de um atributo composto pode ser dividido em vrios atributos simples.
Multivalorado: o seu contedo pode ser formado por mais de uma informao. indicado colocando-se um asterisco procedendo ao nome do atributo, como no caso da empresa que pode possuir mais de um telefone. EMPRESA * Telefone
Determinante: o atributo determinante aquele que define univocamente as instncias de uma entidade, ou seja, nico para as instncias de uma entidade. indicado sublinhando-se o nome do atributo. No exemplo de uma empresa, o CNPJ um atributo determinante, pois no podem existir duas empresas com o mesmo valor nesse atributo. CNPJ
EMPRESA
Vejamos um exemplo no qual se aplicam os conceitos vistos at aqui: Uma empresa necessita armazenar os dados de seus funcionrios, atualmente em um fichrio. Os dados so a Matrcula, o Nome, o Endereo (Rua, CEP e Bairro), o Telefone (o funcionrio pode ter mais de um) e o cargo.
Banco de Dados I
Matrcula
* Telefone
Cargo
Laboratrio Identifique os atributos e o tipo do atributo nas seguintes entidades. CLIENTES - FUNCIONARIOS - EMPRESA - PRODUTOS
Pertence
Existem trs tipos de relacionamentos entre entidades: um-para-um, um-para-vrios e vrios-paravrios. Um-Para-Um: quando uma entidade de A se relaciona com uma entidade de B. Como exemplo, podemos citar uma empresa que dividida em departamentos e em cada departamento possui um nico gerente e um funcionrio-gerente s pode chefiar um nico departamento.
10
Banco de Dados I
A
Funcionrio e1 e2 e3 e4 e5 e6 e7
Gerencia
B
Departamento
d1 d2 d3
1:1
Funcionrio
chefia
Departamento
Este um caso particular, pois outra empresa poderia ter o mesmo gerente chefiando vrios departamentos. Vale lembrar que os modelos de dados so utilizados num determinado contexto. Muda-se o contexto, muda-se tambm o modelo de dados. Um-para-Vrios: quando cada entidade de (A) pode se relacionar com uma ou mais entidades de B. Quando se quer dizer uma ou mais de uma entidade, utiliza-se a letra N. No exemplo, uma empresa dividida em departamentos, um funcionrio s pode ser alocado em um nico departamento, porm num departamento podem trabalhar vrios funcionrios. A
Funcionrio Trabalha Para
B
Departamento
e1 e2 e3 e4 e5 e6 e7
d1 d2 d3
N:1
Funcionrio
Trabalha para
Departamento
11
Banco de Dados I
Vrios-para-vrios: quando vrias (N) entidade de A se relacionam com vrias(M) entidade de B. Exemplo para esse tipo de relacionamento o que ocorre entre um funcionrio e os projetos de uma empresa. Um funcionrio pode trabalhar em vrios projetos, e um projeto pode ser executado por mais de um funcionrio. A B Trabalha Em
Funcionrio e1 e2 e3 e4 Projeto
p1 p2 p3
N:M
Funcionrio
Trabalha em
M 1
Projeto
Cardinalidade: define o nmero mximo de ocorrncias em um relacionamento Para se determinar a cardinalidade, deve-se fazer a pergunta relativa ao relacionamento em ambas as direes. No exemplo a seguir, temos: 1 Departamento (1:N) N Funcionrio (1:1)
possui
- Um departamento possui quantos funcionrios? No mnimo 1 e no mximo N. - Um funcionrio est alocado em quantos departamentos? Em no mnimo 1 e no mximo 1. No primeiro caso a cardinalidade N, e no segundo 1. Somando-se as cardinalidade, definimos o resultado final do relacionamento, observado nos modelos de dados (no caso 1: N). Dois relacionamentos: uma entidade pode ter mais de um relacionamento com a outra entidade. A entidade departamento, por exemplo, pode ter uma relao de locao e outra de gerncia com a entidade Funcionrio. Nesse caso, existem dois relacionamentos entre as entidades.
12
Banco de Dados I
gerncia 1 Funcionrio 1 locao Traduzindo o diagrama temos: - cada departamento da empresa possui vrios (N) funcionrios lotados nele. - um departamento possui um nico funcionrio que ocupa o cargo de gerente. Grau de um Relacionamento: O grau de um tipo relacionamento o nmero de tipos entidade que participam do tipo relacionamento. O grau de um relacionamento ilimitado, porm, a partir do grau trs (ternrio), a compreenso e a dificuldade de se desenvolver a relao corretamente se tornam extremamente complexas. Relacionamento Ternrio: alguns relacionamentos precisam ligar 3 entidades, como no exemplo que se segue. Numa indstria, um fornecedor pode fornecer vrias peas para vrios projetos. Um projeto pode ter vrios fornecedores para vrias peas. E uma pea pode ter vrios fornecedores para vrios projetos. N Fornecedor M 1 1 N Departamento
PFPj
Pea
Projeto Auto relacionamento: uma entidade pode se relacionar com ela mesma. Observe o exemplo: Numa empresa, um funcionrio pode chefiar vrios funcionrios, porm ele tambm um funcionrio. Chefia N Funcionrio 1
Entidade Dependente: uma entidade pode ter sua existncia vinculada existncia de outra entidade.
13
Banco de Dados I
Uma empresa necessita armazenar os dados dos dependentes menores dos funcionrios. A entidade Dependente s existe porque existe a entidade Funcionrio
1 Funcionrio Possui
N Dependente
O smbolo que representa a entidade dependente um retngulo dentro de outro retngulo, com o nome da entidade escrito no seu interior. Relacionamento -Um (Generalizao/Especializao): ocorre quando uma entidade com seus atributos englobam entidades especializadas com seus atributos especficos. No esquema a seguir, a entidade Cliente engloba seus atributos e tambm os atributos especficos da entidade Pessoa Fsica, assim como os de Pessoa Jurdica.
Cliente
Pessoa Fsica
Pessoa Jurdica
14
Banco de Dados I
E1
E2
E1
E2
E1
N 1
E2
15
Banco de Dados I
Isto leva ao conceito de herana de atributos; ou seja, a subclasse herda todos os atributos da superclasse. Isto porque a entidade de subclasse representa as mesmas caractersticas de uma mesma entidade da superclasse. Uma subclasse pode herdar atributos de superclasses diferentes. A figura abaixo mostra a representao diagramtica do exemplo acima.
rg
Empregado Funo d
qualificao endere o
No registro
especializao
Engenheiro
Secretria
idiomas
3.5 Especializao
Especializao o processo de definio de um conjunto de classes de um tipo entidade; este tipo entidade chamado de superclasse da especializao. O conjunto de subclasses formado baseado em alguma caracterstica que distingue as entidades entre si. No exemplo da figura 12, temos uma especializao, a qual pode chamar de funo. Veja agora no exemplo da figura 13, temos a entidade empregado e duas especializaes.
Empregado Funo d
Categoria Salarial d
Engenheiro
Secretria
Horista
Mensalista
16
Banco de Dados I
Figura - Duas Especializaes para Empregado: Funo e Categoria Como visto anteriormente, uma subclasse pode ter relacionamentos especficos com outras entidades ou com a prpria entidade que a sua superclasse. Veja o exemplo da figura 14.
Figura - Relacionamentos Entre Subclasses e Entidades O processo de especializao nos permite: Definir um conjunto de subclasses de um tipo entidade; Associar atributos especficos adicionais para cada subclasse; Estabelecer tipos relacionamentos especficos entre subclasses e outros tipos entidades.
3.6 Generalizao:
A generalizao pode ser pensada como um processo de abstrao reverso ao da especializao, no qual so suprimidas as diferenas entre diversos tipos entidades, identificando suas caractersticas comuns e generalizando estas entidades em uma superclasse.
no. funcional
qualificao
especializao
Engenheiro
Secretria
idiomas
nome
rg
nome
rg
17
Banco de Dados I
rg
Empregado
d
qualificao
n registro
especializao
Engenheiro
Funo
Secretria
idiomas
Figura - Generalizao Empregado para os Tipos Entidades Engenheiro e Secretria importante destacar que existe diferena semntica entre a especializao e a generalizao. Na especializao, podemos notar que a ligao entre a superclasse e as subclasses feita atravs de um trao simples, indicando participao parcial por parte da superclasse. Analisando o exemplo da figura 12, observado que um empregado no obrigado a ser um engenheiro ou uma secretria. Na generalizao, podemos notar que a ligao entre a superclasse e as subclasses feita atravs de um trao duplo, indicando participao total por parte da superclasse. Analisando o exemplo da figura 16, observado que um empregado obrigado a ser um engenheiro ou uma secretria. A letra d dentro do crculo que especifica uma especializao ou uma generalizao significa disjuno. Uma disjuno em uma especializao ou generalizao indica que uma entidade do tipo entidade que representa a superclasse pode assumir apenas um papel dentro da mesma.
18
Banco de Dados I
Analisando o exemplo da figura 13 temos duas especializaes para a superclasse Empregado, as quais so restringidas atravs de uma disjuno. Neste caso, um empregado pode ser um engenheiro ou uma secretria e o mesmo pode ser horista ou mensalista. Alm da disjuno podemos ter um overlap, representado pela letra o. No caso do overlap, uma entidade de uma superclasse pode ser membro de mais que uma subclasse em uma especializao ou generalizao. Analise a generalizao no exemplo da figura 17. Suponha que uma pea fabricada em uma tornearia pode ser manufaturada ou torneada ou ainda, pode ter sido manufaturada e torneada.
no. da pea
Descri o
Pea
o
Data Ordem Servio No. Projeto
Manufaturada
Torneada
Preo
19
Secretaria Engenheiro Mensalista Horista
Banco de Dados I
Figura 18 - Um Lattice com a Subclasse Gerente Compartilhada Neste caso ento, um gerente ser um funcionrio que alm de possuir as caractersticas prprias de Gerente, herdar as caractersticas de Engenheiro e de Mensalista.
20
Banco de Dados I
7) Modifique o diagrama abaixo para especificar o seguinte: a) Um curso no pode estar vazio, isto , deve possuir alguma disciplina em seu currculo. b) Um aluno, mesmo que no inscrito em nenhum curso, deve permanecer por algum tempo no banco de dados. c) Um aluno pode fazer mais de um curso. 8) Esboce o diagrama do exerccio anterior na notao de Peter Chen, especificando as cardinalidades mnimas e mximas (min. Max).
21
Banco de Dados I
Um esquema de relao R, denotado por R(A1, A2,..., An), onde cada atributo Ai o nome do papel desempenhado por um domnio D no esquema relao R, onde D chamado domnio de Ai e denotado por dom (Ai). O grau de uma relao R o nmero de atributos presentes em seu esquema de relao. A instncia r de um esquema relao denotado por r(R) um conjunto de n-tuplas: r = [t1, t2, ... , tn] onde os valores de [t1, t2, ... , tn] devem estar contidos no domnio D. O valor nulo tambm pode fazer parte do domnio de um atributo e representa um valor no conhecido para uma determinada tupla.
22
Banco de Dados I
Tabela DEPENDENTES RG Responsvel 10101010 10101010 20202020 20202020 Nome Dependente Jorge Luiz Fernanda ngelo Dt. Nascimento 27/12/86 18/11/79 14/02/69 10/02/95 Relao Filho Filho Cnjuge Filho Sexo Masculin o Masculin o Feminin o Masculin o
Quando uma relao possui mais que uma chave (no confundir com chave composta) - como, por exemplo, RG e CIC para empregados - cada uma destas chaves so chamadas de chaves candidatas. Uma destas chaves candidatas deve ser escolhida como chave primria. Uma chave estrangeira CE de uma tabela R1 em R2 ou vice-versa, especifica um relacionamento entre as tabelas R1 e R2.
23
Banco de Dados I
Tabela DEPARTAMENTO Nome Contabilidade Engenharia Civil Engenharia Mecnica Nmer o 1 2 3 RG Gerente 10101010 30303030 20202020
Tabela EMPREGADO Nome Joo Luiz Fernando Ricardo Jorge Renato RG 10101010 20202020 30303030 40404040 50505050 CIC 11111111 22222222 33333333 44444444 55555555 Depto. 1 2 2 2 3 RG Supervisor NULO 10101010 10101010 20202020 20202020 Salrio 3.000,00 2.500,00 2.300,00 4.200,00 1.300,00
24
Banco de Dados I
Funcionrio Cdigo (PK) Nome Rua Numero CEP Bairro Data_nascimento CPF
25
Banco de Dados I
2. Para cada entidade fraca EF com entidade proprietria E no modelo ER, criada uma tabela T1 no Modelo Relacional incluindo todos os atributos simples de EF; para cada atributo composto, so inseridos apenas os componentes simples de cada um; a chave primria desta relao T1 ser composta pela chave parcial da entidade fraca EF mais a chave primria da entidade proprietria E;
3. Para cada relacionamento regular com cardinalidade 1:1 entre entidades E1 e E2 que geraram as tabelas T1 e T2 respectivamente, devemos escolher a chave primria de uma das relaes (T1, T2)e inseri-la como chave estrangeira na outra relao; se um dos lados do relacionamento tiver participao total e outro parcial, ento interessante que a chave do lado com participao parcial seja inserida como chave estrangeira no lado que tem participao total;
Relacionamento Gerncia Funcionario Codigo Nome Rua Numero CEP Bairro Departamento Codigo CodigoFuncionario (PK) Nome
26
Banco de Dados I
4. Para cada relacionamento regular com cardinalidade 1: N entre entidades E1 e E2 respectivamente e que geraram as tabelas T1 e T2 respectivamente, deve-se inserir a chave primria de T1 como chave estrangeira em T2;
Relacionamento Trabalha Funcionario Codigo CodigoDepartamento (PK) Nome Rua Numero CEP Bairro 5. Para cada relacionamento regular com cardinalidade N: N entre entidades E1 e E2, cria-se uma nova tabela T1, contendo todos os atributos do relacionamento mais o atributo chave de E1 e o atributo chave de E2; a chave primria de T1 ser composta pelos atributos chave de E1 e E2; Funcionario Codigo Nome Rua Numero CEP Bairro 6. Para cada atributo multivalorado A1, cria-se uma tabela T1, contendo o atributo multivalorado A1, mais o atributo chave C da tabela que representa a entidade ou relacionamento que contm A1; a chave primria de T1 ser composta por A1 mais C; se A1 for composto, ento a tabela T1 dever conter todos os atributos de A1; Funcionario Codigo Telefone CodigoFuncionario (PK) FuncionarioProjeto CodigoFuncionario (PK) CodigoProjeto (PK) Projeto Codigo Nome Descrio Tempo_previsto Departamento Codigo Nome
27
Banco de Dados I
7. Para cada relacionamento n-rio, n > 2, cria-se uma tabela T1, contendo todos os atributos do relacionamento; a chave primria de T1 ser composta pelos atributos chaves das entidades participantes do relacionamento; 8. Converta cada especializao com m subclasses {S1, S2, ..., Sm} e superclasse SC, onde os atributos de SC so {c, a1, a2, ..., an} onde c a chave primria de SC, em tabelas utilizando uma das seguintes opes: 8.1. Crie uma tabela T para SC com os atributos A(T) = {c, a1, a2, ..., an} e chave C(T) = c; crie uma tabela Ti para cada subclasse Si , 1 i m, com os atributos A(Ti) = {c} A(Si), onde C(T) = c; 8.2. Crie uma tabela Ti para cada subclasse Si, 1 i m, com os atributos A(Ti) = A(Si) {c, a1, a2, ..., an} e C(Ti) = c; 8.3. Crie uma tabela T com os atributos A(T) = {c, a1, a2, ..., an} A(S1) ... A(Sm) {t} e C(T) = c, onde t um atributo tipo que indica a subclasse qual cada tupla pertence, caso isto venha a ocorrer; 8.4. Crie uma tabela T com atributos A(T) = {c, a1, a2, ..., an} A(S1) ... A(Sm) {t1, t2, ..., tm} e C(T) = c; esta opo para generalizaes com overlapping, e todos os ti, 1 i m, um atributo booleano indicando se a tupla pertence ou no subclasse Si; embora funcional esta opo possa gerar uma quantidade muito grande de valores nulos; Figura - Mapeamento para o Modelo Relacional
1 Passo - Entidades Normais
o
E c
EF
28
Banco de Dados I
29
Banco de Dados I
Nome Endereco
Segunda Forma Normal (2FN) Uma tabela est na segunda forma normal se ela estiver na primeira forma normal e se cada coluna no-chave depender totalmente da coluna-chave. Consistem em retirar das estruturas que possuem chaves compostas (campo chave sendo formado por mais de um campo), os elementos que so funcionalmente dependentes de parte da chave. Podemos afirmar que uma estrutura est na 2FN, se ela estiver na 1FN e no possuir campos que so funcionalmente dependentes de parte da chave. Exemplo: Situao Venda NumeroNF CodigoMercadoria DescricaoMercadoria QuantidadeVendida PreoVenda TotalVenda Como resultado desta etapa, houve um desdobramento do arquivo de Vendas em duas estruturas, a saber: Primeira estrutura (Arquivo de Vendas): Contm os elementos originais, sendo excludos os dados que so dependentes apenas do campo Cdigo da Mercadoria. Segunda estrutura (Arquivo de Mercadorias): Contm os elementos que so identificados apenas pelo Cdigo da Mercadoria, ou seja, independentemente da Nota Fiscal, a descrio e o preo de venda sero constantes. Soluo Vendas NumNF CodigoMercadoria Quantidade Valor Mercadoria CodigoMercadoria DescricaoMercadoria PrecoVenda
Terceira Forma Normal (3FN) Consistem em retirar das estruturas os campos que so funcionalmente dependentes de outros campos que no so chaves. Podemos afirmar que uma estrutura est na 3FN, se ela estiver na 2FN e no possuir campos dependentes de outros campos no chaves. Exemplo: Situao Soluo
30
Banco de Dados I
Como resultado desta etapa, houve um desdobramento do arquivo de Notas Fiscais, por ser o nico que possua campos que no eram dependentes da chave principal (Num. NF), uma vez que independente da Nota Fiscal, o Nome e CGC do cliente so inalterados. Este procedimento permite evitar inconsistncia nos dados dos arquivos e economizar espao por eliminar o armazenamento frequente e repetidas vezes destes dados. A cada nota fiscal comprada pelo cliente, haver o armazenamento destes dados e poder ocorrer divergncia entre eles. Depois das alteraes: Primeira estrutura (Arquivo de Notas Fiscais): Contm os elementos originais, sendo excludos os dados que so dependentes apenas do campo Cdigo do Cliente (informaes referentes ao cliente). Segundo estrutura (Arquivo de Clientes): Contm os elementos que so identificados apenas pelo Cdigo do Cliente, ou seja, independente da Nota Fiscal, o Nome, Endereo e CGC dos clientes sero constantes. Aps a normalizao, as estruturas dos dados esto projetadas para eliminar as inconsistncias e redundncias dos dados, eliminando desta forma qualquer problema de atualizao e operacionalizao do sistema. A verso final dos dados poder sofrer alguma alterao, para atender as necessidades especficas do sistema, a critrio do analista de desenvolvimento durante o projeto fsico do sistema.
Resumo da Unidade O modelo relacional foi criado por Codd em 1970 e tem por finalidade representar os dados como uma coleo de relaes, onde cada relao representada por uma tabela, ou falando de uma forma mais direta, um arquivo. Porm, um arquivo mais restrito que uma tabela. Toda tabela pode ser considerada um arquivo, porm, nem todo arquivo pode ser considerado uma tabela. Quando uma relao pensada como uma tabela de valores, cada linha nesta tabela representa uma coleo de dados relacionados. Estes valores podem ser interpretados como fatos descrevendo uma instncia de uma entidade ou de um relacionamento. O nome da tabela e das colunas desta tabela utilizado para facilitar a interpretao dos valores armazenados em cada linha da tabela. Todos os valores em uma coluna so necessariamente do mesmo tipo. Na terminologia do modelo relacional, cada tabela chamada de relao; uma linha de uma tabela chamada de tupla; o nome de cada coluna chamado de atributo; o tipo de dado que descreve cada coluna chamado de domnio.
31
Banco de Dados I
IMPORTANTE Antes de comear o contedo sobre SQL, fazer o exerccio abaixo para servir de exemplo no prximo assunto. * Criar um banco de dados que represente uma empresa. Este banco deve ser capaz de informar: a) Dados sobre os funcionrios; b) Quantos funcionrios trabalham em um determinado setor; c) Qual o salrio mdio dos funcionrios.
32
Banco de Dados I
Unidade 5 -
5.1 Introduo
Quando os Bancos de Dados Relacionais estavam sendo desenvolvidos, foram criadas linguagens destinadas sua manipulao. De todas, sem dvida a que mais se popularizou foi a linguagem SQL. A linguagem SQL permite a criao e manipulao de dados do banco de dados sem que o programador precise se preocupar com detalhes internos do banco, como a forma como os dados so armazenados e organizados internamente. Foi criada para definir, modificar e consultar dados armazenados em banco de dados. Os grandes fabricantes de banco de dados criaram extenses prprias para a linguagem. Como exemplo, temos: Transact/SQL, Sysbase, Microsoft, PL/SQL, etc. Para evitar problemas na manipulao do cdigo, devido quantidade plataformas, um comit foi criado para torn-la independente. Este comit o comit da ANSI (american National Standards Institute). A linguagem SQL no procedural, como C, Basic, COBOL, Pascal, entre outras. Nestas linguagens o programador tem que dizer passo-a-passo o que o computador deve fazer. O SQL uma linguagem declarativa. Nesta linguagem o programador diz ao computador o que deve ser feito e este se encarrega de faz-lo. A linguagem SQL pode ser Interativa ou Embutida. A forma Interativa usada diretamente para operar um banco de dados, atravs de uma ferramenta que permite a execuo direta do cdigo SQL. A forma Embutida introduz o cdigo SQL dentro das linhas do programa, que atravs de variveis tratado adequadamente. A linguagem SQL subdividida em trs grupos de comando de forma parecida com a estrutura de um banco de dados: DDL (Data Definition Language): Comandos responsveis pela criao de objetos. Ex.: Create Table, Create View, Create Index.
33
Banco de Dados I
Texto Varchar Char Numrico Dec Numeric Int Smallint Float Real Nmero decimal com casas At 15 dgitos definidas Nmero com especificada preciso At 22 dgitos Caracteres varivel de tamanho At 254 caracteres At 254 caracteres
Inteiro sem parte decimal idntico a Int com limite de tamanho Nmero de ponto flutuante com base exponencial 10 Idntico a Float exceto que no usado um argumento para especificar o tamanho Idntico a Real, s que com preciso maior.
34
Banco de Dados I
Os operadores tm por finalidade permitir uma flexibilidade maior na manipulao dos dados de um banco. Estes seguem precedncias de utilizao conjunta.
35
Banco de Dados I
Verdadeiro se algum item for verdadeiro Verdadeiro se todo o conjunto for verdadeiro
36
Banco de Dados I
37
Banco de Dados I
Observe que, embora a tabela esteja vazia, aparecem os nomes dos dois campos criados, mostrando que a criao da tabela foi bem sucedida.
38
Banco de Dados I
6.8 ON UPDATE:
NO ACTION (RESTRICT) - quando o campo chave primria est para ser atualizado a atualizao abortada caso um registro em uma tabela referenciada tenha um valor mais antigo. Este parmetro o default quando esta clusula no recebe nenhum parmetro. Exemplo: ERRO Ao tentar usar "UPDATE clientes SET cdigo = 5 WHERE cdigo = 2.
39
Banco de Dados I
Ele vai tentar atualizar o cdigo para 5, mas como em pedidos existem registros do cliente 2 haver o erro. CASCADE (Em Cascata) - Quando o campo da chave primria atualizado, registros na tabela referenciada so atualizados. Exemplo: Funciona: Ao tentar usar "UPDATE clientes SET cdigo = 5 WHERE cdigo =2. Ele vai tentar atualizar o cdigo para 5 e vai atualizar esta chave tambm na tabela pedidos. SET NULL - Quando um registro na chave primria atualizado, todos os campos dos registros referenciados a este so setados para NULL. Exemplo: UPDATE clientes SET cdigo = 9 WHERE cdigo = 5; Na clientes o cdigo vai para 5 e em pedidos, todos os campos cod_cliente com valor 5 sero setados para NULL. SET DEFAULT - Quando um registro na chave primria atualizado, todos os campos nos registros relacionados so setados para seu valor DEFAULT. Exemplo: se o valor default do cdigo de clientes 999, ento. UPDATE clientes SET codigo = 10 WHERE codigo = 2. Aps esta consulta o campo cdigo com valor 2 em clientes vai para 999 e tambm todos os campos cod_cliente em pedidos.
6.9 ON DELETE:
NO ACTION (RESTRICT) - Quando um campo de chave primria est para ser deletado, a excluso ser abortada caso o valor de um registro na tabela referenciada seja mais velho. Este parmetro o default quando esta clusula no recebe nenhum parmetro. Exemplo: ERRO em DELETE FROM clientes WHERE cdigo = 2. No funcionar caso o cod_cliente em pedidos contenha um valor mais antigo que cdigo em clientes. CASCADE - Quando um registro com a chave primria excludo, todos os registros relacionados com aquela chave so excludos. SET NULL - Quando um registro com a chave primria excludos, os respectivos campos na tabela relacionada so setados para NULL. SET DEFAULT - Quando um registro com a chave primria excludo, os campos respectivos da tabela relacionada so setados para seu valor DEFAULT.
40
Banco de Dados I
41
Banco de Dados I
42
Banco de Dados I
Laboratrio Modifique as tabelas do exerccio anterior para que fiquem com o seguinte formato:
43
Banco de Dados I
44
Banco de Dados I
Agora vamos colocar nesta tabela todos os nomes de funcionrios da empresa: Comando: insert into NOME_DE_SUA_MAQUINA(Nome) select Nome from funcionarios Confira executando um comando SELECT * FROM NOME_DE_SUA_MAQUINA. Se tudo ocorrer corretamente, o resultado ser que voc ter uma nova tabela com todos os nomes presentes na tabela funcionrios.
45
Banco de Dados I
Insira 3 registros em cada tabela Delete 1 registro da tabela tbfornecedores Atualize o valor da matria prima em 20% Insira 2 registros na tabela tbmateriaprima Remova o ultimo registro da tabela tbestoquemat Atualize a tabela tbestoquemat para um aumento de 50% na quantidade Insira 2 registros na tbfornecedores Delete 1 registro da tabela tbtipomateria Insira 2 registros na tabela tbtipomateria Reduza em 13% o valor da tabela tbmateriaprima
46
Banco de Dados I
O campo nome da tabela define a tabela que estamos consultando, enquanto os campos nome do campoN representam os parmetros, e, portanto colunas, que desejamos recuperar.
47
Executando a consulta acima na tabela Transportadoras, contendo os dados mostrados, teremos o seguinte resultado:
Na mesma tabela, tambm podemos consultar mais parmetros, bastando especific-los separados por vrgulas. Confira a consulta a seguir e o resultado correspondente:
Select Nome, Telefone from transportadoras
Resultado:
Comando:
select nome as transportadoras from transportadoras
48
Banco de Dados I
Comando:
select nome, ' ocupa o cargo de', cargo from funcionarios
Resultado: ocupa o cargo de Cargo -------------------ocupa o cargo de ocupa o cargo de ocupa o cargo de ocupa o cargo de --------------------Presidente Gerente de Vendas Boy Telefonista
Consulta com Execuo de Clculos: Com o SQL podemos efetuar clculos entre elementos lidos do banco de dados e retorn-los na consulta. Para selecionar registros de uma tabela com a execuo de clculos matemticos necessrio utilizar os operadores '+' ,' -' , '/' , '*' e '^'. Sintaxe:
SELECT [nome do campo]*[nome do campo] as [nome da expresso] FROM [nome da tabela];
Para demonstrarmos este recurso do SQL, utilizaremos uma nova tabela, com dados numricos. Novamente, o instrutor poder utilizar estes mesmos dados ou criar exemplos prprios ao longo da aula:
Preo 10 20 18.6 20
49
Resultado:
Baseado nas tabelas criadas e as alteraes realizadas nas tabelas das unidades anteriores exiba os seguintes resultados: O fornecedor x tem a razo social y A matria prima x tem o valor de y e a quantidade z A matria prima x tem um valor total de quantidade * valor A quantidade x no estoque no pode chegar a 20% da quantidade O tipo de matria x tem o valor de y e com desconto fica em 80% do valor A matria x descrita como y 12% do valor so considerados custo da matria prima x Acesse o site x da empresa y 1/3 do valor * quantidade destinado ao pagamento de imposto da matria prima y Aps um aumento de 13% no estoque, a quantidade vai de xpara y
50
Banco de Dados I
Unidade 10 -
O exemplo a seguir mostra o uso desta funo para juntar o nome e sobrenome dos funcionrios em uma nica coluna. Observem o uso do espao para garantir que o nome e sobrenome vo ter uma separao. Exemplo:
select concat(Nome, ' ', Sobrenome) from funcionarios
51
Banco de Dados I
Onde: String1 a string da qual vai ser recuperado um segmento Valor1 onde comea a ser feita a separao Valor 2 o nmero de caracteres que sero separados. Exemplo:
Select Substring(Nome, 1, 3) from clientes
Onde, String1 a string de origem Valor1 o nmero de caracteres que sero separados a partir da esquerda. Exemplo:
Select Left(Nome, 1) from clientes;
Onde, String1 a string de origem Valor1 o nmero de caracteres que sero separados a partir da direita. Exemplo:
Select Right(Nome, 1) from clientes;
52
Banco de Dados I
Exemplo:
Select LENGTH(Nome) from clientes;
Laboratrio Baseado nas tabelas criadas e as alteraes realizadas nas tabelas das unidades anteriores exiba os seguintes resultados: O fornecedor apenas o 1 nome do tipo final da razo social A matria prima em maiscula tem o valor de y e a quantidade z A matria prima iniciadas em 1 letra tem um valor total de quantidade * valor O tipo de matria em minsculo tem o valor de y e com desconto fica em 80% do valor A matria duas letras iniciais descrita como em maisculo 12% do valor so considerados custo da matria prima 1 letra em maisculo,. Acesse o site retirar o WWW da empresa y 1/3 do valor * quantidade destinado ao pagamento de imposto da matria prima em maiscula A matria prima x formada por quantidade de letras letras O fornecedor x tem um fax de quantidade de letras letras
53
Banco de Dados I
Unidade 11 -
54
Banco de Dados I
Observe, tambm, que possvel a utilizao de um mesmo campo, mais de uma vez como critrio de uma consulta. Por exemplo, se desejar exibir os filmes lanados aps o ano 2000 com a exceo do ano de 2005, o comando seria desenhado da seguinte forma. SELECT nomefilame FROM filmes WHERE ano >= 2000 AND ano <> 2005 Estes critrios podem ser utilizados em qualquer tipo de consulta (seleo, excluso ou atualizao). Principalmente em consultas que realizam alteraes, recomenda-se atentar para o uso quase que obrigatrio da clusula where, pois sua omisso resulta na execuo da alterao em todo o conjunto de dados contemplados na sentena. Vejamos a seguinte situao: para os funcionrios com mais de 1 ano de tempo de trabalho a empresa deseja conceder um aumento de 15% em seus salrios. Se executarmos uma consulta conforme exemplo abaixo, todos os funcionrios receberam aumento independente do seu tempo na empresa: UPDATE funcionarios SET salario = salario * 1.15 Para que apenas os funcionrios que possuem o critrio estabelecido pela empresa para receber o aumento, sejam efetivamente beneficiados, necessrio incluir uma clusula. Observe a sintaxe correta abaixo. UPDATE funcionarios SET salario = salario * 1.15 WHERE tempo >= 1 Em consultas de deleo o cuidado deve ser ainda maior, pois uma execuo de uma sentena sem um critrio de forma correta ou mesmo sem a existncia de um, pode acarretar na perda significativa de dados importantes para a instituio. Como regra geral recomenda-se iniciar a escrita de seu script SQL, para consultas de alteraes, pelos critrios que as mesmas devem considerar, reduzindo assim, a chance de cometer qualquer tipo de equivoco, com consequncias mais graves.
Resultado:
55
Banco de Dados I
nome ----------------
O sinal de igualdade (=) foi utilizado porque o usurio sabia exatamente o que estava procurando. Verifique os operadores de comparao que esto no inicio da apostila. Cabe tambm, ressaltar que devemos sempre atentar para o tipo de dado armazenado nos campos que sero utilizados nos critrios de consulta. Pois esta observao nos mostra que tipos de critrios podem ser utilizados (para datas, por exemplo) e qual a forma correta de montagem do critrio ou seleo. No exemplo da consulta acima, podemos perceber que o critrio foi digitado entre aspas simples, pois o valor do campo do tipo texto, a exemplo do aconteceria com um campo data (apenas devemos atentar para seu formato). Para campos tipados como numricos no h a necessidade, alm de no ser recomendado, do uso de aspas simples. Entretendo, se estiver utilizando um banco de dados que voc no tenha estruturado, utilize comandos (veremos nas prximas unidades) que exibam a estrutura da tabela, pois podemos encontrar campos com valores numricos que tenham sido tipados como texto, o que pode atrapalhar a percepo do resultado final.
Executando a consulta abaixo, veremos que retornar os pases em que existem clientes armazenados no banco de dados:
select distinct pais from clientes
Resultado:
Pas Argentina
56
Banco de Dados I
Brasil
Case o comando seja executado novamente, porm sem a clusula DISTINCT e observe a teremos a repetio dos pases. O comando DISTINCT realiza um agrupamento dos dados exibidos, portanto devemos sempre estar atentos aos campos que inserimos antes da expresso FROM, pois se os mesmos forem nicos, pode no ocorrer o agrupamento de forma correta. No exemplo aqui citado os pases, aparecero apenas uma vez, pois somente a coluna pas foi exibida, se fosse inserido o campo nome, por exemplo, haveria a duplicao dos mesmos. Vejamos o caso na prtica
select distinct nome, pais from clientes
Resultado:
Nome
Pas Brasil
57
Banco de Dados I
SELECT [nome do campo] FROM [nome da tabela] WHERE [nome do campo] [operador de comparao ou restrio] [critrio de comparao ou restrio] LIMIT [valor] Se desejarmos, por exemplo, exibir apenas 5 clientes que sejam do pas Brasil, devemos construir a consulta no SQL SERVER. SELECT TOP 5 nome FROM clientes WHERE pais='brasil' A utilizao da clusula de limite de registros muito utilizada em testes de verificao do contedo de uma tabela. Tambm amplamente aplicada em subconsultas (tema do curso avanado).
Laboratrio. Para a realizao dos exerccios abaixo crie a seguinte tabela e insira os dados listados abaixo dela. Aps execute uma consulta que exiba cada
Cod_Celula r 1 2 3 4 5 6 7
Os dados de todos os celulares com mp3. Liste modelo de todos os celulares da Sansung. Liste nome de todos os modelos, junto com seu valor e marca.
58
Banco de Dados I
Liste nome de todos os celulares, junto com seus valores, para todos os celulares que foram lanados h pelo menos de 2 anos. Liste o modelo, marca e bateria do celular cdigo 4. Liste os celulares lanados a mais de 10 anos. Liste todos os celulares com bateria com mais de 4 horas e menos de 6 horas Liste 2 celulares com cmera Liste as marcas de celular existentes Liste celulares da marca Nokia com bateria de mais e 3 horas e com valor inferior a R$ 700,00 Atualize em 10% o valor dos celulares da Nokia Insira mais 4 modelos de celular Delete 2 celulares da Sansung Atualize a informao MP3 para NO em celulares com bateria inferior a 3 horas e valor superior a R$ R$ 500,00 Mude o nome do celular de cdigo 7 para MP15 Atualize o valor dos celulares em 2% para celulares com cmera e valor inferior a R$ 800,00 Atualize 3 celulares para cmera NO Mude o valor dos celulares Samsung para 80% de seu valor atual Insira 2 celulares com nomes novos utilizando os dados de outro celular Delete todos os celulares com valor inferior a R$ 300,00
59
Banco de Dados I
Predicados
Na unidade anterior, vimos como selecionar apenas algumas entradas de uma tabela, com o uso da clusula Where. Entretanto, apenas com os operadores de igualdade, que foi mostrado, e outros operadores aritmticos, como <, >, etc., no conseguiremos sempre selecionar o que desejamos. Em particular, quando desejamos selecionar entradas com base em um atributo de texto, precisamos de recursos mais poderosos. Por exemplo, podemos querer procurar por um cliente do qual no temos todo o nome, mas apenas um dos sobrenomes. Utilizar o operador = no ir nos atender neste caso. O predicado LIKE serve para este fim. Funciona como um tipo de pesquisador de sequncias podendo ser auxiliado por um % que significa qualquer caractere. Pode ser precedido por um NOT que expressa negao. Sua sintaxe mostrada abaixo:
Select * from [nome da tabela] WHERE [campo analisado] {NOT LIKE}{LIKE} [valor ou texto];
Para entender a vantagem de utilizar os comandos LIKE e NOT LIKE vamos primeiro executar uma consulta com o operador de igualdade. Nesta apostila utilizaremos uma tabela bastante simples, com fins didticos, sendo possvel que o instrutor opte por construir exemplos mais complexos junto com a turma. Tabela clientes: Nome Joo da Silva Borges Pedro lvaro Joo Augusto Comando:
select nome from clientes where nome = 'Joo'
A resposta para esta instruo ser uma tabela vazia. Apesar de existir um 'Joo' na tabela, o critrio de igualdade exige o nome completo. A consulta apenas retornaria o cliente se fosse colocado o nome completo: Joo da Silva' Assim, utilizar o sinal de igualdade nos retorna o resultado desejado somente se conhecermos o nome completo da pessoa. O comparativo lgico LIKE, permite selecionar por semelhana: Comando:
select nome from clientes where nome like 'Joo%'
60
Banco de Dados I
Da mesma forma como podemos pesquisar por informaes que comecem por um determinado conjunto de caracteres, tambm podemos definir que certas letras estejam no final ou em qualquer posio do texto, como mostramos no exemplo a seguir, que retorna todos os contatos que tem a string 'Silva' no meio do nome. Comando:
select nome from clientes where nome like '%silva%'
Comando:
select Nome, Estoque from produtos where estoque between 500 and 1000
61
Banco de Dados I Select * from [nome da tabela] WHERE [campo da tabela] {NOT} IN (valor ou texto, valor ou texto,...)
Comando:
select Nome, Pais from clientes where pais in ('Brasil', 'Argentina')
Resultado: Nome ------------------Pas --------------Brasil Empresa A Empresa B Empresa C Empresa X Brasil Brasil Argentina Brasil
Este predicado pode ser til para determinadas situaes em que algum campo esteja null porque no foi processado ainda, por exemplo, numa compra que no foi finalizada, ou em um pedido que no foi entregue. Observe o exemplo abaixo, que um exemplo tpico de uma consulta utilizando este predicado para identificar pedidos ainda no enviados. Comando:
select * from pedidos where DataEnvio Is Null
Analogamente, para verificarmos quais entradas possuem um valor de DataEnvio, e, portanto representam pedidos j enviados, podemos utilizar o comando abaixo: Comando:
select * from pedidos where DataEnvio Is Not Null
O predicado ISNULL(COALESCE em MySQL) tambm pode ser utilizado na exibio de algum valor caso um campo esteja nulo.
Comando: select ISNULL(taxa, ) Cobrana from pedidos
62
Banco de Dados I
Como exemplo, vamos selecionar todos os produtos cujo estoque seja maior que 500 e tenham um preo menor que 10. Comando:
select Nome, Estoque, Preco from produtos where estoque > 500 and preco < 10
Neste exemplo, a clusula AND obrigou que ambas as condies fossem atendidas. Podemos tambm definir que o item seja selecionado caso qualquer das condies seja atendida, como mostra o exemplo abaixo em que selecionamos os itens que tenham. preo menor que 10 ou um estoque maior que 1000. Comando:
select Nome, Estoque, preco from produtos where preco < 10 or estoque > 1000
Laboratrio. Para a realizao dos exerccios abaixo utilize a tabela criada no exerccio anterior
Os dados de todos os celulares com mp3 no nulo. Liste modelo de todos os celulares com nome contendo k. Liste nome de todos os modelos, junto com seu valor e marca que seu valor esteja entre R$ 300 e R$ 500. Liste nome de todos os celulares, junto com seus valores, para todos os celulares que no sejam da Nokia. Liste o modelo, marca e bateria do celular cdigo 4, 6, 2. Liste os celulares lanados a mais de 10 anos e que sua bateria dure entre 4 e 6 horas. Liste todos os celulares com bateria com mais de 4 horas e menos de 6 horas Liste 2 celulares com cmera com valor nulo Liste as marcas de celular existentes em letra maiscula e sem valores nulos Liste celulares da marca Apple com bateria de mais e 3 horas e com valor entre a R$ 700,00 e R$ 2.000,00 Delete todos os celulares com bateria com 1, 3 ou 4 horas de durao.
63
Banco de Dados I
Unidade 13 -
As funes de agrupamento utilizadas no SQL so: COUNT( ), AVG( ), MAX( ), MIN( ) e SUM( ). Abaixo mostramos um exemplo simples, mas bastante completo do uso de todas estas funes para processar clculos em cima de uma tabela de produtos, e um exemplo de retorno. Comando:
select SUM(Estoque) as 'Total no Estoque', MAX(Preco) as 'Preo mais caro', MIN(Preco) as 'Preo mais barato', AVG(Preco) as 'Preo mdio', COUNT(Preco) as 'Total de Registros' from produtos
Exemplo de Resultado: Total no Preo mais Preo Estoque caro barato --------3600 --------31 ---------5 mais Preo mdio --------16.0000 Total Registros -------------4 de
As funes agregadas no podem ser utilizadas dentro de uma clusula WHERE, porem possvel utilizar esta clusula para restringir o nmero de linhas que sero consideradas no clculo da resposta, como mostra o exemplo abaixo: Comando:
SELECT AVG(preco) from produtos where preco > 10
Nesta consulta acima o que estamos obtendo a mdia entre todos os produtos cujo preo maior que 10.
64
Banco de Dados I
Abaixo mostramos um exemplo em que agrupamos os clientes por pases para obtermos uma listagem de todos os pases de clientes. Comando:
select Pais from clientes group by pais
O resultado acima poderia ser obtido tambm com o uso do comando DISTINCT. Na realidade, geralmente o uso do comando GROUP BY s adequado em conjunto com funes de agrupamento, como mostramos no exemplo a seguir:
select count(*) as 'Total', pais from clientes group by pais
Resultado:
Total --------1 4
Como agrupamos por pases, conseguimos utilizar o comando de COUNT e descobrir quantas vezes cada um dos pases aparece.
65
Banco de Dados I
O comando abaixo mostra o uso de COUNT e WHERE para retornar o total de clientes com cargo do contato como sendo de gerente de vendas.
select count(*), Vendas' GROUP BY pais pais from clientes where CargoContato = 'Gerente de
Por exemplo, se quisermos ver o total de clientes de pases cujo total for maior que 3, usaramos o comando abaixo:
select count(*),pais from clientes group by pais having count(*) >= 3
Como s existe uma referncia a "Argentina", e portanto o total menor que 3, no aparece no resultado. Para entender melhor a diferena entre WHERE, GROUP BY e HAVING, preciso compreender a definio de cada uma, mostrada abaixo: a clusula WHERE utilizada para filtrar as linhas que resultam da consulta da tabela especificada pela clusula FROM. A clusula GROUP BY utilizada para agrupar as linhas filtradas por WHERE. A clusula HAVING usada para filtrar as linhas do grupo criado por GROUP BY.
66
Banco de Dados I
Se no utilizarmos a clusula ORDER BY, o resultado da instruo ser baseado no ndice da tabela analisada. Ao utilizarmos a clusula estamos definindo a ordem, como no caso abaixo em que os produtos so mostrados em ordem alfabtica: Comando:
select Nome from produtos order by Nome
No necessrio utilizar o complemento ASC para as ordenaes crescentes, porm para as ordenaes decrescentes deve-se utilizar DESC: Laboratrio. Para a realizao dos exerccios abaixo utilize a tabela criada no exerccio anterior
Some os valores dos celulares. Calcule o tempo mdio de durao da bateria Encontre o maior e o menor valor dos celulares. Conte o nmero de celulares por Marca. Encontre e mdia de valores por Marca. Calcule a mdia de valor das Marcas de celular com mais de um exemplar. Mostre as marcas de celular que tenham apenas 1 exemplar Liste as marcas de celular existentes em letra maiscula e sem valores nulos Liste todos os celulares por em ordem decrescente de lanamento Calcule a mdia de durao dos celulares com cmera
67
Banco de Dados I
Unidade 14 -
14.2 Join
Podemos definir Join como a juno de duas tabelas. O resultado da unio de duas tabelas ser a multiplicao das linhas da primeira pela segunda tabela, ou seja, para cada linha da primeira tabela, todas as linhas da segunda sero repetidas. Na prtica esta situao no muito comum, mas serve como base para entendermos o funcionamento de outros tipos de Join. Sintaxe:
Select [nome da tabela1].[nome do campo], campo] from [nome da tabela1], [nome da tabela2]; [nome da tabela2].[nome do
Observe a operao de JOIN entre duas tabelas pedido e clientes, sem a utilizao de nenhuma restrio na unio. Assumindo que existam 3 empresas e 3 pedidos, teremos um retorno com nova linha: Comando:
select clientes.Nome, pedidos.Id as 'ID do pedido' from pedidos, clientes
68
Banco de Dados I
Resultado: Nome ------ID do pedido ------------1 2 3 Empresa A Empresa A Empresa A Empresa B Empresa B Empresa B 1 2 3 1 2 3
O resultado um produto cartesiano entre elas, em que o total de linhas ser igual ao total de entradas de uma tabela multiplicado pelo total de entradas da outra. Para obtermos um resultado que faa sentido, geralmente utilizamos a clusula WHERE.
Vamos utilizar um inner join para obter uma lista dos produtos e suas respectivas categorias. Vamos assumir que em uma tabela produtos temos o cdigo da categoria, e esta informao - a chamada chave estrangeira nos permite descobrir dentro da tabela categoria o nome da categoria daquele produto. Comando:
select produtos.Nome as 'Nome Produto', categorias.Nome as 'Categoria' from produtos, categorias where produtos.CodCategoria = categorias.id
69
Banco de Dados I
Resultado: Nome Produto --------------Leite Suco Carne Po Categoria -----------------Bebidas Bebidas Carnes Outros Alimentos
Como exemplo, vamos criar uma consulta em tabelas produtos e categorias, selecionando produtos cujo preo maior que 10 e ainda exibindo a categoria a que pertencem: Comando:
70
Banco de Dados I select produtos.Nome as 'Nome Produto', categorias.Nome as 'Categoria' , Preco from produtos, categorias where produtos.CodCategoria = categorias.id and produtos.preco > 10
Comando:
select pedidos.id as 'Id do Pedido', produtos.nome as 'Nome do Produto', categorias.nome as 'Categoria' from pedidos, produtos, categorias where produtos.codcategoria = categorias.id AND pedidos.idProduto = produtos.id
Em situaes reais, muitas vezes sero criadas consultas entre diversas tabelas, geralmente com a ligao entre cada tabela e as demais sendo feita atravs de uma igualdade que ligue a chave primria de uma tabela com a chave estrangeira da outra.
71
Banco de Dados I
Em algumas plataformas utilizado o * (asterisco) para determinar o lado do outer join. Em outras utilizado o (+) (sinal de adio entre parnteses). Ambos utilizados em locais diferentes. Na maioria dos casos utilizado o comando LEFT JOIN que aceito pelo MySQL e ser utilizado nos exemplos abaixo. Sintaxe do Left Join:
Select [nome da tabela1].[nome do campo], [nome da tabela2].[nome do campo] from [nome da tabela1], [nome da tabela2] WHERE [nome da tabela1].[nome do campo] * = [nome da tabela2].[nome do campo]
ou
Select [nome da tabela1].[nome do campo], [nome da tabela2].[nome do campo] from [nome da tabela1], [nome da tabela2] WHERE [nome da tabela1].[nome do campo](+) = [nome da tabela2].[nome do campo]
ou
Select [nome da tabela1].[nome do campo], [nome da tabela2].[nome do campo] from [nome da tabela1] LEFT JOIN [nome da tabela2] ON [nome da tabela1].[nome do campo de relao] = [nome da tabela2].[nome do campo de relao]
Apenas a terceira sintaxe aceita pelo MySQL, por exemplo. Iremos inicialmente utilizar um comando LEFT JOIN para identificar clientes que no tem nenhum pedido. Para tanto teremos que restringir o retorno quelas linhas em que no existe uma ligao com a tabela 'pedidos' (portanto as entradas da tabela 'pedidos' retornam null):
select clientes.nome from clientes left join pedidos on IdCliente where pedidos.id is null clientes.Id =
Observao: o comando RIGHT JOIN no implementado em MySQL, mas invertendo-se as tabelas podese obter efeito equivalente.
Supondo uma tabela 'funcionarios' em que existe um campo que referencia a prpria tabela, o campo 'chefe', que contm o Id do chefe de cada funcionrio. Atravs de um self join podemos listar todos os funcionrios que possuem um chefe, indicando quem o mesmo:
select F2.Nome as 'funcionrio', ' subordinado a', F1.Nome as 'chefe' from funcionarios as F1, funcionarios as F2 where F2.Chefe = F1.Id
72
Banco de Dados I
Liste o nome e a quantidade de atendimentos por cliente Liste o nome e a quantidade de atendimentos por funcionrio Conte quantos produtos esto em cada pedido Calcule a mdia de valor dos pedidos de cada cliente Calcule o valor total de cada pedido Mostre a quantidade, total e mdia de pedidos por data Liste a mdia de pedidos que cada produto participou Liste o produto mais vendido por cada vendedor Mostre quantidade de pedidos por tipo de cliente e tipo de pedido Exiba todos os produtos que no tem pedido Liste os produtos por cliente que no foram solicitados por eles
73
Banco de Dados I
74
Banco de Dados I
A forma de trabalhar com datas pode variar um pouco em diferentes bancos de dados. Aqui apresentamos recursos tendo como base o MySQL.
Formato das Datas Para definir diretamente uma data, por exemplo para um clculo ou para inserir no banco de dados, o formato um texto (separado por aspas) na forma "ano-ms-dia". O exemplo abaixo retorna o ano do dia 19 de maio de 1980: Exemplo:
select year('1980-05-19')
75
Banco de Dados I
Unidade 16 -
Exerccios Extras
1. Uma loja de roupas deseja criar um cadastro com suas peas. Cada pea possui um cdigo que a identifica, uma descrio, um preo-unitrio e uma quantidade em estoque. Deseja tambm manter um cadastro de seus clientes com nome, telefone (o cliente pode ter mais de um, ou nenhum), e as peas que ele j comprou. A data em que o cliente comprou a pea guardada. 2. Uma empresa bancria mantm um cadastro com os dados dos seus clientes( identidade, nome, endereo{ rua, CEP e bairro} e telefone { o cliente pode ter mais de um}) e de suas contas (nmero da conta e saldo). Um cliente pode ter mais de uma conta no banco e uma conta pode ser de mais de um cliente (conta conjunta). O banco mantm tambm um cadastro com as suas agncias (cdigo e nome), em que cada agncia pode ter mais de uma conta. 3. desenhe o Modelo E-R que descreva a situao da Empresa Acme Problemas Ltda., que apresenta a seguinte estrutura: a) cada empregado representado a partir das seguintes informaes bsicas: cdigo-empresa, nome, endereo; b) cada departamento representado por meio de: nome, cdigo departamento; c) cada empregado chefia um ou mais departamentos; d) cada item vendido representado pelo seu nome, preo, fornecedor, nmero do modelo (dado pelo fornecedor) e nmero interno do item ( dado pelo responsvel pelo estoque); e) cada fornecedor descrito pelo seu nome, endereo, itens fornecidos ao estoque e preo; f) os clientes cadastrados tm os seguintes dados: nome, endereo e telefone; g) os representantes da empresa junto aos clientes so empregados; 4. Um banco de dados, utilizado por uma faculdade, usa um sistema de cadastro de inscrio de disciplinas que contm as informaes aluno e inscrio. As seguintes informaes devem estar includas. Aluno: cdigo de aluno, nome do aluno, ano da admisso e telefone de contato; Inscrio: cdigo do aluno, cdigo da disciplina, nome da disciplina, cdigo do curso, nome do curso e data da matrcula. Projete o banco de dados para esses dados. Faa quaisquer suposies razoveis sobre as dependncias envolvidas.
76
Banco de Dados I
77
Banco de Dados I
5.Voc acabou de fundar sua empresa de consultoria , a Beija-Flor Consultoria , e seu primeiro trabalho e desenvolver um sistema para cadastro de clientes voc recebeu o cliente uma lista com os dados que devero compor o sistema , com base nesta lista normalize a estrutura de dados de acordo com as formas normais. Lista de informaes que devero compor o sistema cadastro de clientes: Nome Nome do Pai Nome da Me Endereo Telefone1 Telefone2 Nmero do Fax Nmero do Celular Telefone do trabalho Data de Nascimento Naturalidade Nacionalidade Endereo de correspondncia Nome do filho 1 idade do filho 1 Nome do filho 2 idade do filho 2 Nome do filho 3 idade do filho 3 Nome do filho 4 idade do filho 4 Nome do Cnjuge Nmero do CPF Nmero da carteira de identidade 6. De acordo com as regras , normalize as estruturas abaixo. Relao de Programadores: Numero da Matrcula Nome do Programador
78
Banco de Dados I
Setor Nvel ( 1,2,3) Descrio do Nvel ( 1 - Jnior, 2 - Pleno, 3 - Snior) Programas Codigo do Programa Nome do Programa Tempo Estimado Nvel de Dificuldade ( 1, 2 ou 3 ) Descrio da Dificuldade ( Fcil, Mdio, Difcil) Regras do negcio: - Um programa pode ser feito por mais de um Programador; - Um programador pode fazer um ou mais programas; - O Nvel de dificuldade do programa depende do tempo estimado para a elaborao do mesmo;
7. Voc deve representar usando o modelo lgico a situao descrita a seguir: O Departamento de Vendas da Indstria Beleza Ltda., aps estudos de mercado, verificou que para atingir seus objetivos seria necessrio adquirir frota de veculos prprios para motorizar seus vendedores. O mercado consumidor foi dividido em regies de venda; foram estabelecidos percursos de entrega abrangendo pontos estratgicos dessas regies e vendedores foram designados para cobrir estes percursos. Um sistema deve ser construdo para administrao da nova sistemtica de vendas adotada pela empresa. Aps entrevistas com o gerente da rea, foram obtidas as seguintes informaes: cada regio identificada por um cdigo; uma regio composta de vrios pontos estratgicos; as regies no tm pontos estratgicos em comum; o vendedor tem a responsabilidade de cobrir uma regio; uma regio pode ser coberta por vrios vendedores; a cada dia, um veculo fica sob-responsabilidade de um vendedor; um vendedor pode vender quaisquer itens ativos da tabela de produtos; o vendedor responsvel pela identificao de cada cliente consumidor na nota fiscal; a nota fiscal contendo identificao do vendedor, itens e quantidades vendidas exigida para comprovao da venda.
79
Banco de Dados I
Unidade 17 -
Construa um Diagrama Entidade-Relacionamento (DER) para modelar cada um dos sistemas abaixo, mas, como as descries so informais, elas se prestam a diferentes interpretaes. Por este motivo, no existe somente uma soluo correta, mas o diagrama deve refletir de forma coerente a descrio. No final, gere o script SQL e crie o banco de dados, cadastrando no mnimo 5 itens para cada tabela (faa todas as consultas necessrias e possveis para verificar a funcionalidade do banco).
1) Sistema Locadora Uma pequena locadora de vdeos possui ao redor de 2000 fitas de vdeo, cujo emprstimo deve ser controlado. Cada fita possui um nmero. Para cada filme, necessrio saber seu ttulo e sua categoria (comdia, drama, aventura,... ). Cada filme recebe um identificador prprio. Cada fita controlada que filme ela contm. Para cada filme h pelo menos uma fita, e cada fita contm somente um filme. Alguns poucos filmes necessitam mais de uma fita. Os clientes podem desejar encontrar os filmes estrelados pelo seu ator predileto. Por isso, necessrio manter a informao dos atores que estrelam em cada filme. Nem todo filme possui estrelas. A locadora possui muitos clientes cadastrados. Somente clientes cadastrados podem alugar fitas. Para cada cliente necessrio saber seu prenome e seu sobrenome, seu telefone e seu endereo. Alm disso, cada cliente recebe um nmero de associado. Finalmente desejamos saber que fitas cada cliente tm emprestadas. Um cliente pode ter vrias fitas em um instante do tempo. No so mantidos registros histricos de aluguis.
80
Banco de Dados I
Unidade 18 -
O dinamismo da rea de tecnologia da informao nos proporciona contatos cada vez mais frequentes com uma infinidade de modelos de banco de dados. A cada dia vemos a notcia do lanamento de uma nova plataforma de gerenciamento de dados. No entanto alguns bancos de dados obtiveram maior notoriedade no mundo da informtica. Dentre estes bancos cabe destacar o Microsoft Access, que foi um dos precursores dos SGBDs. Sua inovao em termos de capacidade de armazenamento e dinamismo foi o principal responsvel pelo seu enorme sucesso. entretanto com a popularizao da Internet, e por sua vez, da distribuio das informaes em redes de grande alcance, sua limitaes foram fincando evidentes. Abriu-se ento espao para os chamados softwares livres. Esta nova realidade proporcionou o aparecimento do MySQL, PostGreSQL e tantos outros. Por sua maior capacidade de desempenho em um ambiente compartilhado, estes sistemas ganharam fora na internet, sendo responsveis por um grande mercado de sites pessoais e de pequeno-mdias corporaes. Quando nos referimos a grandes corporaes, que dependem criticamente do controle de seus dados, nos deparamos com a necessidade de bancos de dados que trabalhem, com recursos mais avanados, tais como replicao, servios de integrao, bussines inteligence, etc. Neste contexto encontramos como grandes expoentes o SQL SERVER e o ORACLE alm de outros com menor expresso. O SQL SERVER tem como grande diferencial ser da Microsoft o que faz com que sua integrao com linguagens .Net ocorra de forma natural. Nas prximas unidades de nosso material iremos trabalhar com 3 destes SGBDs. Cada um deles representado um formato de objetivo de uso do banco de Dados. Iniciaremos pelo precursor da popularizao do mesmo, o Microsoft Accces. Depois trataremos das principais caractersticas e formas de manipulao do MYSQL. Finalizando nosso trabalho falaremos do SQL SERVER e seus principais atributos.
81
Banco de Dados I
Unidade 19 -
Microsoft Access
19.1 Introduo
O Access um poderoso software de gerenciamento de banco de dados, que possibilita ao usurio um gerenciamento preciso de dados e a possibilidade de gerao de consultas, formulrios, relatrios, etiquetas e a criao de aplicativos personalizados, bem como a integrao com outros aplicativos.
82
Banco de Dados I
TABELAS E RELACIONAMENTOS Para armazenar dados, crie uma nica tabela para cada tipo de informao rastreada. Para reunir os dados de vrias tabelas em uma consulta, formulrio, relatrio ou pgina de acesso a dados, defina relacionamentos entre as tabelas.
83
Banco de Dados I
CONSULTAS Para localizar e recuperar somente os dados que atendem s condies especificadas, incluindo dados de vrias tabelas, crie uma consulta. Uma consulta tambm pode atualizar ou excluir diversos registros simultaneamente, alm de efetuar clculos predefinidos ou personalizados em seus dados.
FORMULRIOS Para exibir, inserir e alterar dados de maneira fcil e direta, crie um formulrio. Quando voc abre um formulrio, o Microsoft Access recupera os dados de uma ou mais tabelas e exibe-os na tela com o layout escolhido no Assistente de formulrio, ou com o layout criado por voc no modo de design.
RELATRIOS
84
Banco de Dados I
Para
analisar
os
dados crie
ou um
imprimi-los relatrio.
de Por
determinada
maneira,
exemplo, voc poderia imprimir um relatrio que agrupasse dados e calculasse totais, e outro relatrio com outros dados formatados para
85
Banco de Dados I
PGINA DE ACESSO A DADOS Para disponibilizar dados na Internet ou em uma intranet para relatrios interativos,
entrada ou anlise de dados, use uma pgina de acesso a dados. O Microsoft Access recupera os dados de uma ou mais tabelas e exibe-os na tela com o layout criado por voc no modo de design ou com o layout escolhido no Assistente de pgina.
86
Banco de Dados I
Barra de menu
Barra ttulo
de
Lista de Objetos
Barra de Satus
87
Banco de Dados I
88
Banco de Dados I
89
Banco de Dados I
90
Banco de Dados I
Criar um banco de dados utilizando um Assistente de banco de dados: Clique em Novo na barra de ferramentas. base em
No painel de tarefas Novo arquivo, em Novo com modelo, clique em Modelos gerais. Na guia Bancos de dados, clique no cone do tipo de dados que voc deseja criar e, em seguida, clique Na caixa de dilogo Novo arquivo de banco de especifique um nome e local para o banco de dados seguida, clique em Criar. Siga as instrues do Assistente de banco de dados.
de
banco
em OK. dados, e, em
Observao: No possvel usar o Assistente de banco de dados para adicionar novas tabelas, formulrios ou relatrios a um banco de dados existente.
Em verses mais atuais a exibio do assistente para a criao de um novo banco de dados, baseia-se na possibilidade de baixar novos modelos de bancos de dados. Segue uma imagem que retrata esta opo
91
Banco de Dados I
Criar um banco de dados sem utilizar um Assistente de banco de dados Clique em Novo na barra de ferramentas.
No painel de tarefas Novo arquivo, em Novo, clique em Banco de dados em branco. Na caixa de dilogo Novo arquivo de banco de dados, especifique um nome e local para o banco de dados e, em seguida, clique em Criar. A janela Banco de dados ser exibida para voc criar os objetos que deseja em seu banco de dados.
Clique em um atalho no lado esquerdo da caixa de dilogo Abrir ou, na caixa Examinar, clique na unidade de disco ou pasta que contm o banco de dados do Microsoft Access que voc deseja. Na lista de pastas, clique duas vezes nas pastas at abrir aquela que contm o banco de dados. Se voc no conseguir localizar o banco de dados que deseja abrir, clique em Ferramentas na barra de ferramentas da caixa de dilogo Abrir e, em seguida, clique em Pesquisar de dilogo Pesquisar, digite critrios de pesquisa adicionais. . Na caixa
92
Banco de Dados I
Siga um destes procedimentos: Clique duas vezes no banco de dados. Para abrir o banco de dados para acesso compartilhado em um ambiente multiusurio, de modo que voc e outros usurios possam ler e gravar no banco de dados, clique em Abrir. Para abrir o banco de dados para acesso somente leitura de modo a poder visualiz-lo mas no edit-lo, clique na seta prxima ao boto Abrir e, em seguida, clique em Abrir como somente leitura. Para abrir o banco de dados com acesso exclusivo, clique na seta prxima ao boto Abrir e, em seguida, clique em Abrir exclusivo. Para abrir o banco de dados para acesso somente leitura e tambm impedir que outros usurios o abram, clique na seta prxima ao boto Abrir e, em seguida, clique em Abrir exclusivo como somente leitura.
Observao: Voc pode abrir diretamente um arquivo de dados em um formato de arquivo externo, como dBASE, Paradox, Microsoft Exchange, ou Microsoft Excel; voc tambm pode abrir diretamente qualquer fonte de dados ODBC, como Microsoft SQL Server ou Microsoft FoxPro. O Access cria automaticamente um novo banco de dados do Access na mesma pasta do arquivo de dados e adiciona vnculos a cada tabela no banco de dados externo.
93
Banco de Dados I
Proceda da mesma forma utilizada para fechar os outros programas do pacote MS Office quando sair de um arquivo de banco de dados. Ative a opo Fechar do menu Arquivo do programa.
B.
C.
D.
E.
Ao copiar um arquivo de banco de dados, necessrio copiar tambm o arquivo com extenso LDB? Justifique:
F.
94
Banco de Dados I
Unidade 20 -
TABELAS
Uma tabela um conjunto de dados sobre um tpico especfico, como produtos ou fornecedores. Utilizar uma tabela separada para cada tpico significa armazenar os dados somente uma vez. Isso resulta em um banco de dados mais eficiente e em menos erros de entrada de dados. Como os dados so organizados em tabelas Tabelas organizam dados em colunas (chamadas campos) e linhas (chamados registros).
Por exemplo, cada campo em uma tabela Produtos contm o mesmo tipo de informao para cada produto, como o nome do produto. Cada registro nessa tabela contm todas as informaes sobre um produto, como o nome do produto, o nmero de identificao do fornecedor, as unidades em estoque etc. Modo de design da tabela No modo de design da tabela, possvel criar uma tabela inteira desde o incio ou adicionar, excluir ou personalizar os campos em uma tabela existente.
95
Banco de Dados I
Como relacionar duas tabelas Um campo comum relaciona duas tabelas a fim de que o Microsoft Access possa reunir os dados das duas tabelas para visualizao, edio ou impresso. Em uma tabela, o campo uma chave primria que voc define no modo de design da tabela. Esse mesmo campo tambm existe na tabela relacionada como uma chave externa.
Modo de folha de dados da tabela. Em uma tabela ou consulta, o modo de folha de dados fornece as ferramentas necessrias para voc trabalhar com dados. Usando as barras de ferramentas Folha de dados da tabela e Folha de dados da consulta As barras de ferramentas Folha de dados da tabela e Folha de dados da consulta fornecem muitas das ferramentas necessrias para localizar, editar e imprimir registros.
96
Banco de Dados I
Trabalhando com colunas, linhas e subfolhas de dados Voc pode encontrar ferramentas para trabalhar com colunas, linhas e subfolhas de dados na prpria folha de dados, ou clicando com o boto direito do mouse em um seletor de colunas.
Percorrendo registros Voc pode usar a barra de ferramentas de navegao para percorrer os registros de uma folha de dados.
97
Banco de Dados I
Para criar uma tabela em branco (vazia) a fim de inserir seus prprios dados, voc pode:
98
Banco de Dados I
99
Banco de Dados I
Quando voc tiver adicionado dados a todas as colunas que deseja utilizar, clique em Salvar na barra de ferramentas para salvar sua folha de dados. O Microsoft Access pergunta se voc deseja criar uma chave primria. Se voc no inseriu dados que possam ser utilizados para identificar cada linha de sua tabela de forma exclusiva, como nmeros de srie ou de identificao, recomendvel que voc clique em Sim. Se voc inseriu dados que possam identificar cada linha de forma exclusiva, clique em No e especifique o campo que contm os dados como sua chave primria no modo de design.
Para adicionar um campo ao final de uma tabela, clique na primeira linha em branco. Clique na coluna Nome do campo e digite um nome exclusivo para o campo. Na coluna Tipo de dados, mantenha o padro (Texto) ou clique na coluna Tipo de dados, clique na seta e selecione o tipo de dados desejado.
100
Banco de Dados I
Na coluna Descrio, digite uma descrio das informaes que constaro nesse campo. Essa descrio exibida na barra de status quando dados so adicionados ao campo e ela includa na definio do objeto da tabela. A descrio opcional. Defina um campo de chave primria antes de salvar sua tabela. Abra uma tabela no modo de design. Selecione o campo ou campos que voc deseja definir como chave primria. Para selecionar um campo, clique no seletor de linha do campo desejado. Para selecionar vrios campos, mantenha pressionada a tecla CTRL e, em seguida, clique no seletor de linha de cada campo. Clique em Chave primria na barra de ferramentas.
Observao Se voc deseja que a ordem dos campos em uma chave primria de campos mltiplos seja diferente da ordem desses campos na tabela, clique em ndices na barra de
ferramentas para exibir a janela ndices e, em seguida, ordene novamente os nomes dos campos para o ndice denominado Chave Primria. Observao: Voc no precisa definir uma chave primria, mas normalmente recomendvel faz-lo. Se voc no definir uma chave primria, o Microsoft Access perguntar se voc deseja que ele crie uma quando for salvar a tabela.
Texto Use para texto ou combinaes de texto e nmeros, como endereos, ou para nmeros que no exigem clculos, como cdigos postais, nmeros de telefone ou de peas. Armazena at 255 caracteres. A propriedade FieldSize controla o nmero mximo de caracteres que podem ser inseridos. Memorando Use para texto longo e nmeros, como anotaes ou descries. Armazena at 65.536 caracteres.
101
Banco de Dados I
Nmero Use para dados numricos a serem includos em clculos matemticos, exceto os que envolvam valores monetrios (use o tipo Moeda). Armazena 1, 2, 4 ou 8 bytes; 16 bytes para cdigo de replicao (GUID). A propriedade FieldSize define o tipo Nmero especfico. Data/Hora Use para datas e horas. Armazena 8 bytes. Moeda Use para valores monetrios e para evitar arredondamento durante os clculos. Armazena 8 bytes. AutoNumerao Use para nmeros sequenciais (incremento de 1) ou aleatrios exclusivos que so automaticamente inseridos quando um registro adicionado. Armazena 4 bytes; armazena 16 bytes para cdigo de replicao (GUID). Sim/No Use para dados que podem ter somente um de dois valores possveis, como Sim/No, Falso/Verdadeiro, Ativado/Desativado. Valores Nulo no so permitidos. Armazena 1 bit. Objeto OLE Use para objetos OLE (como documentos do Microsoft Word, planilhas do Microsoft Excel, imagens, sons ou outros dados binrios) que foram criados em outros programas usando o protocolo OLE. Armazena at 1 gigabyte (limitado pelo espao em disco). Hiperlink Use para hiperlinks. Um hiperlink pode ser um caminho UNC ou um URL. Armazena at 64.000 caracteres. Assistente de pesquisa Use para criar um campo que permite escolher um valor em outra tabela ou lista de valores usando uma caixa de combinao a escolha desta opo na lista de tipos de dados iniciar um assistente que definir isso para voc. Requer o mesmo tamanho de armazenamento que a chave primria que corresponde ao campo Pesquisa - normalmente 4 bytes.
102
Banco de Dados I
Propriedade
Descrio
Casas decimais
O nmero de casas aps a vrgula para dados do tipo nmero. Um texto que descreve o campo e serve como auxlio no modo folha de dados. O formato serve basicamente para alterar a exibio dos dados. Dependendo do tipo de dados o usurio poder escolher entre um dos formatos pr-definidos.
Descrio
Formato
Como exemplo de formatao pode citar : >[Vermelho] : Exibe maisculas e em vermelho mmm-aaaa : Exibe uma data no formato ms abreviado e ano completo. Quando for necessrio emitir um relatrio ou exibir uma os dados em letras
Indexado
consulta ordenada por um determinado campo o usurio poder criar um ndice para este campo que tornar a consulta ou relatrio mais rpidos de serem executados. A legenda o ttulo da coluna na tabela. Se no for
Legenda
especificada o usurio utilizar o prprio nome do campo como ttulo da coluna. Serve para restringir e auxiliar o usurio na entrada de dados.
Mscara de entrada
Por exemplo uma mscara de entrada para um campo CPF poderia ser informada da seguinte forma : 000.000.000-00
Novos valores
103
Banco de Dados I
Propriedade
Descrio
zero
Regra de validao
campo. Por exemplo a Regra de Validao <=Data() no permite a entrada de um data maior que a data atual.
Requerido
Define se um campo deve ser obrigatoriamente preenchido ou no. De acordo com o tipo de dados o usurio poder definir qual o tamanho do campo. Por exemplo ao utilizar um
Tamanho do campo
campo do tipo nmero, o usurio dever especificar um dos tamanhos permitidos de acordo com a tabela de tipos de dados.
Texto de validao
Um texto que exibido quando o usurio excede a regra de validao. Um valor que ser automaticamente colocado no
Valor padro
campo evitando que o usurio digite sempre o mesmo valor para um campo que no sofre muitas alteraes.
104
Banco de Dados I
Construir (Expresses) Define um campo como chave primria Propriedades Permite a ndices de primria edio dos uma tabela Inserir linha
Excluir linha
105
Banco de Dados I
A tabela abaixo descreve as alteraes da barra de ferramentas quando alternamos para o modo folha de dados.
Boto
Nome
Descrio
Alterna para o modo estrutura que permite a alterao das definies da tabela. Inserir Em um campo do tipo hyperlink permite que o usurio hyperlink informe um caminho vlido. Barra de Exibe a barra de ferramentas para navegao na ferramentas Web Internet. Classificao Classifica os dados na ordem crescente pelo campo crescente selecionado. Classificao Classifica os dados na ordem decrescente pelo campo decrescente selecionado. Filtrar por Ativa o modo de filtro exibindo somente os dados com a seleo seleo atual. Filtrar por Permite que o usurio defina um filtro mais complexo formulrio para a tabela atual. Aplicar/remov Aplica ou remove um filtro ativado pelos dois botes er filtro anteriores. Localizar Ativa a caixa de dilogo Localizar. Exibir Novo registro Excluir registro Permite a incluso de novos registros. Exclui o(s) registro(s) atualmente selecionados(s).
106
Banco de Dados I
LABORATRIO G. No Windows Explorer crie uma pasta chamada Curso de Access na unidade de disco C:\Meus Documentos
H.
Crie um banco de dados com o seu nome na pasta criada no item anterior:
I.
Crie as tabelas descritas a seguir: tblCargos Campo Cdigo do cargo Descrio do cargo Tipo de dados AutoNumerao Texto Tamanho Inteiro Longo 25
tblSetores Campo Cdigo do setor Descrio do setor Tipo de dados AutoNumerao Texto Tamanho Inteiro Longo 25
tblEmpresas Campo Cdigo empresa Razo Social Fone Fax Observaes Tipo de dados da AutoNumerao Texto Texto Texto Memorando Tamanho Inteiro Longo 50 10 07 >[Azul] (999) 9999 999-9999 999Mscara
tblFuncionrios Campo Cdigo do funcionrio Cdigo da empresa Nome do funcionrio Tipo de dados AutoNumerao Nmero Texto Tamanho Inteiro Longo Inteiro Longo 30
107
Banco de Dados I
Na tabela tblCargos cadastre os seguintes cargos: Gerente, Auxiliar administrativo, Diretor: Na tabela tblSetores cadastre os seguintes setores: Produo, Administrao, Recursos Humanos: Feche o banco de dados criado e saia do Access:
L.
108
Banco de Dados I
Unidade 21 -
RELACIONAMENTOS
Ao relacionarmos tabelas, as mesmas devem possuir campos equivalentes, no necessariamente como o mesmo nome, mas com o mesmo tamanho e tipo de dados.
109
Banco de Dados I
Relacionamentos Um-Para-Um Ocorre quando um registro na tabela primria se relaciona com apenas um registro na tabela secundria.
Relacionamentos Vrios-Para-Vrios Os relacionamentos vrios-para-vrios no so gerenciados diretamente pelo Access e devem ser evitados com a adio de uma tabela intermediria como no exemplo abaixo:
A incluso da tabela Detalhes da obra quebrou o relacionamento vrios-para-vrios existente entre as duas tabelas relacionando-as indiretamente.
110
Banco de Dados I
Alm do relacionamento em si tambm podem ser definidas algumas propriedades que so descritas abaixo:
Boto
Nome A integridade referencial um sistema de regras que o Microsoft Access utiliza para garantir que os relacionamentos entre registros de tabelas relacionadas sejam vlidos e que voc no exclua ou altere, acidentalmente, dados relacionados.
Atualiza dados na tabela secundria dos automaticamente quando os dados forem alterados na tabela primria. dos Exclui dados na tabela secundria automaticamente quando os dados forem excludos na tabela primria.
111
Banco de Dados I
Boto
Nome
Descrio
Adiciona novas tabelas a tela de relacionamentos. Mostrar Exibe todos os relacionamentos diretos da relacionamentos diretos tabela selecionado. Mostrar todos os Exibe todos os relacionamentos existentes no relacionamentos banco de dados atual Limpa todos os relacionamentos. Limpar layout Adicionar tabelas Para excluir um relacionamento existente basta apenas marcar a linha que representa o relacionamento desejado e pressionar a tecla DELETE. Caso o usurio exclua uma tabela da tela de relacionamentos, as relaes no sero excludas. Definindo as Propriedades de Pesquisa Um dos objetivos de relacionar tabelas evitar dados redundantes, aps ter criado as tabelas do banco de dados o usurio poder definir no modo estrutura de tabela as propriedades de pesquisa, que permitiro que determinados campos exibam dados de outras tabelas. Por exemplo, ao cadastrar um novo produto ao invs de termos que digitar o cdigo da categoria podemos definir as propriedades de pesquisa do campo cdigo da categoria para que seja exibida uma caixa de combinao com o nome das categorias. A maneira mais simples de definirmos as propriedades de pesquisa de um campo utilizarmos a opo Assistente de pesquisa no tipo de dados do campo. Ao definir as propriedades de pesquisa atravs do Assistente de pesquisa o Access criar automaticamente o relacionamento, porm no definir as regras de integridade referencial e propagao de atualizao e excluso.
112
Banco de Dados I
Atravs do Assistente de pesquisa no modo estrutura de tabela defina as propriedades de pesquisa para o campo Cdigo da empresa na tabela tblFuncionrios:
Atravs do Assistente de pesquisa no modo estrutura de tabela defina as propriedades de pesquisa para o campo Cdigo do cargo na tabela tblFuncionrios:
Atravs do Assistente de pesquisa no modo estrutura de tabela defina as propriedades de pesquisa para o campo Cdigo do setor na tabela tblFuncionrios:
Quais tabelas seriam necessrias para criar um banco de dados de uma locadora de veculos? Elabore um modelo. (Este laboratrio dever ser realizado em conjunto com o instrutor e a turma)
113
Banco de Dados I
Unidade 22 -
CONSULTAS
114
Banco de Dados I
Clique no boto Avanar e na prxima caixa de dialogo de um nome para sua consulta, em seguida clique em Concluir.
115
Banco de Dados I
Na caixa de dialogo Consulta1: consulta seleo, arraste os campos das tabelas, que voc queira verificar na sua consulta, para grande de design.
Para executar uma consulta no modo design clique no boto Executar na barra de ferramentas Design de consulta. As consultas no Access so realizadas na grade QBE (query by exemple) que permite a definio de consultas complexas sem a necessidade de programao em SQL (Structured Query Language). O exemplo abaixo mostra uma consulta para verificar os pedidos trimestrais entre 01/01/1997 e 31/12/1997.
116
Banco de Dados I
Boto Nome Tipo consulta Executar Adicionar tabelas Totais Valores principais
Descrio de Alterna entre os tipos de consultas permitidos pelo Access. Executa a consulta atualmente definida. Adiciona novas tabelas a tela de consultas.
Exibe a linha de Totais na grade QBE que permite a totalizao de dados. Permite a definio de percentuais de registros a serem exibidos como resultado.
117
Banco de Dados I
118
Banco de Dados I
Consulta de Tabela de Referncia Cruzada As consultas de referncia cruzada tm por objetivo resumir dados e utilizam basicamente um recurso semelhante ao utilizado nas tabelas dinmicas do Excel. A figura abaixo mostra um exemplo de consulta de referncia cruzada:
Consulta Criar Tabela A consulta do tipo Criar tabela permite que dados de uma ou mais tabelas sejam lanados em uma nova tabela. A interface semelhante ao das consultas de seleo a nica diferena que ao alterar o tipo de consulta o usurio dever informar o nome da tabela que ser gerada. O exemplo abaixo mostra um exemplo onde uma nova tabela ser criada com base em dados de trs tabelas existentes:
119
Banco de Dados I
Consulta Atualizao A consulta do tipo Atualizao permite que um grupo de registros seja atualizado rapidamente. Como no exemplo abaixo que mostra uma consulta que atualiza todos as Bebidas em 10%:
120
Banco de Dados I
Consulta Acrscimo A consulta do tipo acrscimo utilizada para transportar registros entre tabelas. O exemplo abaixo mostra uma consulta que anexa dados de uma tabela chamada Novos Produtos na tabela de Produtos existente:
Consulta Excluso A consulta do tipo excluso serve para excluir um conjunto de registro de uma tabela baseado em critrios informados. Os registros so excludos definitivamente. A tela abaixo exibe a definio de uma consulta que exclui todos os produtos da categoria Brinquedos da tabela de Produtos:
121
Banco de Dados I
Utilizando Parmetros Os parmetros so variveis definidas pelo usurio que tm seus valores informados na execuo da consulta. Por exemplo ao invs do usurio fornecer um critrio do tipo Bebidas para uma consulta que lista os produtos de uma categoria especfica o usurio pode utilizar um critrio do tipo [Entre com o nome da categoria]. No exemplo abaixo ilustramos a consulta descrita acima:
O texto utilizado como parmetro no pode ser um nome de campo e deve ter o seu tipo de dados especificado atravs do comando ConsultaParmetros.
122
Banco de Dados I
123
Banco de Dados I
LABORATRIO 4 M. Abra o banco de dados Testando as consultas.mdb na pasta Curso de Access 2003:
N.
Crie as consultas descritas logo abaixo: Nome da consulta Tabela/Campos Produtos: Lista de produtos Produto Preo Unitrio Pas dos Funcionrios Funcionrios por pas Funcionrios : Nome Pas Funcionrios: Pas Cdigo Categorias: Produtos por categoria Categoria Produtos: Produto Produtos: Produtos com estoque crtico produto Unidades em estoque Clientes: Empresas com fax empresa Fax Clientes: Clientes do Brasil e empresa Argentina Fone Pas Atualizao do preo em 10% Excluso dos clientes da Produtos: Unitrio Preo Atualizar para: [PreoUnitrio]*1 ,1 Clientes: Pas Critrio: Argentina Nome da Nome da empresa Nome da Nome da empresa Critrio: Negado nulo Nome do Nome do produto Critrio: Entre 10 e 20 Cdigo do Nome da Nome da Categoria Nome do Classificao Nome do Produto Critrios/Obs Critrio: Preo Unitrio >95
Pas
124
Banco de Dados I
Argentina Funcionrios: Nome do Exporta Funcionrios USA Funcionrio Cidade Pas Cidade Criao de tabela Critrio : Estados Unidos
Nmero do Funcionrio
categoria
125
Banco de Dados I
FORMULRIOS
Como foi descrito anteriormente um formulrio uma forma de visualizar e editar os dados de um banco de dados do Access. Os formulrios fornecem facilidade na edio de registros e apresentam os dados em uma forma personalizada. Voc pode utilizar diversos tipos de efeitos (cores/linha e fontes) em seus formulrios. Abaixo ilustramos o exemplo de um formulrio de um cadastro de clientes.
126
Banco de Dados I
Cada
campo
separada com
um rtulo sua esquerda. Auto Formulrio: Tabular: em cada registro aparecem com os rtulos exibidos uma superior do formulrio. Auto Formulrio: Folha de campos em cada registro um formato linha-e-coluna, dados: Os Os campos
aparecem em com um
registro em cada linha e um campo em cada coluna. Os nomes dos campos aparecem na parte superior de cada coluna. Auto Formulrio: Tabela dinmica: O formulrio abre em modo de tabela dinmica. possvel adicionar campos arrastando-os da lista de campos para as diferentes reas no modo de exibio. Auto Formulrio: Grfico dinmico: O formulrio abre em modo de grfico dinmico. possvel adicionar campos arrastando-os da lista de campos para as diferentes reas no modo de exibio. Clique na tabela ou consulta que contm os dados em que voc deseja basear o formulrio. Clique em OK. O Microsoft Access aplica o ltimo autoformato usado para o formulrio. Caso voc ainda no tenha criado um formulrio com um assistente ou no tenha usado o comando Auto Formatao no menu Formatar, ele usar o autoformato Padro
127
Banco de Dados I
DICA: Uma das maneiras mais rpidas para se criar um padro utilizar um dos Assistentes de Auto formulrio que automaticamente criaro formulrios com a mnima interveno usurio. Basta clicar na barra de ferramentas banco de dados comando Novo objeto No modo de design:
formulrio
do no
Voc cria um formulrio bsico e o personaliza no modo de design para atender s suas necessidades. Na janela Banco de Dados, clique em Formulrios em Objetos. Clique no boto Novo na barra de ferramentas da janela Banco de dados. Na caixa de dilogo Novo formulrio, clique em Modo de design. Clique no nome da tabela ou outra fonte do registro que inclua os dados nos quais voc deseja basear o seu formulrio. Se o formulrio no for conter dados (por exemplo, se for para utilizar como um menu de controle para abrir outros formulrios ou relatrios ou se voc desejar criar uma caixa de dilogo personalizada), no selecione nada nessa lista. Dica: Se voc deseja criar um formulrio que utilize dados de mais de uma tabela, baseie o seu formulrio em uma consulta. Clique em OK. O Microsoft Access exibe o formulrio no modo de design. Conforme figura abaixo: Barra de ferramentas Design do formulrio Barra de ferramentas de formatao (formulrio/relatrio)
128
Banco de Dados I
Layout
129
Banco de Dados I
Retngulo
ActiveX
Para utilizar a caixa de ferramentas, basta selecionar uma de suas opes e clicar na rea do formulrio onde o contedo ser colocado. Alm das barras de ferramentas e da caixa de ferramentas o usurio poder utilizar o boto direito do mouse para acessar as opes de um determinado objeto. Os menus do modo estrutura fornecem uma maneira simples de alinhar, distribuir e alterar a disposio dos objetos em um formulrio.
130
Banco de Dados I
Abra uma tabela, consulta, formulrio, relatrio ou uma pgina de acesso a dados no modo de design. Abra a folha de propriedades seguindo um destes procedimentos: No caso de um formulrio ou relatrio, clique duas vezes no seletor de formulrios ou no seletor de relatrios.
Em uma pgina de acesso a dados, clique em Selecionar pgina no menu Editar. Em uma tabela ou consulta, clique em Propriedades , na barra de ferramentas.
Para uma seo em um formulrio ou relatrio, clique duas vezes no seletor de sees.
Para uma seo em uma pgina de acesso a dados, clique duas vezes na barra de sees.
Para definir propriedades de um campo de consulta, clique na clula na linha Campo, e em Propriedades na barra de ferramentas.
Para definir propriedades de uma de lista de campo de consulta, clique em qualquer parte da lista, e em Propriedades na barra de ferramentas.
Para definir propriedades do corpo de uma pgina de acesso a dados, clique acima da primeira seo, e em Propriedades na barra de ferramentas. na barra de
Na folha de propriedades, clique na propriedade que voc deseja definir e, em seguida, siga um destes procedimentos: Se uma seta aparecer na caixa da propriedade, clique nela e selecione um valor da lista. Digite uma configurao ou expresso na caixa da propriedade.
131
Banco de Dados I
Dicas: Para obter Ajuda sobre qualquer propriedade na folha de propriedades, clique na propriedade e, em seguida, pressione F1. Se precisar de mais espao para inserir ou editar uma configurao de propriedade, pressione SHIFT+F2 para abrir a caixa Zoom
Observao: Se a propriedade AllowDesignChanges de um formulrio estiver definida como Todos os modos, voc tambm poder definir propriedades de formulrio no modo de formulrio e no modo de folha de dados.
Outro item importante no modo design de formulrio a folha de propriedades dos objetos que pode ser acessada pelo boto da barra de ou atravs do boto direito do mouse propriedades. Cada objeto possui vrias propriedades que definidas atravs da folha de propriedades. Na ilustrao abaixo exibida a folha de propriedades para o objeto formulrio: podem ser ferramentas
132
Banco de Dados I
As propriedades de um objeto so divididas em categorias para facilitar a localizao de uma propriedade especfica.
133
Banco de Dados I
Esta ilustrao mostra a aparncia que o formulrio Adicionar produtos ter ao ser impresso.
Um subformulrio tambm pode ter sees. Por exemplo, este subformulrio possui um cabealho e um rodap de formulrio, alm da seo de detalhes.
134
Banco de Dados I
Voc pode ocultar ou redimensionar uma seo, adicionar uma imagem ou definir a cor do plano de fundo de uma seo. Tambm possvel definir propriedades da seo para personalizar a maneira como o contedo de uma seo ser impresso.
23.5 SUBFORMULRIOS
Um subformulrio um formulrio dentro de outro. O formulrio primrio chamado de formulrio principal e o formulrio dentro do formulrio denominado subformulrio. Uma combinao formulrio/subformulrio sempre citada como um formulrio hierrquico, um formulrio mestre/detalhe ou um formulrio pai/filho. Os subformulrios so eficientes principalmente quando se deseja exibir dados de tabelas ou consultas com um relacionamento um-para-muitos. Por exemplo, voc poderia criar um formulrio com um subformulrio para exibir dados de uma tabela de categorias e de uma tabela de produtos. Os dados na tabela de categorias correspondem ao lado "um" do relacionamento. Os dados na tabela de produtos correspondem ao lado "muitos" do relacionamento cada categoria pode ter mais de um produto.
O formulrio principal e o subformulrio neste tipo de formulrio so vinculados de tal forma que o subformulrio exiba apenas registros que esto relacionados ao registro atual no formulrio principal. Por exemplo, quando o formulrio principal exibir a categoria Bebidas, o subformulrio exibir apenas os produtos na categoria Bebidas.
135
Banco de Dados I
Quando voc cria um subformulrio, possvel cri-lo de forma a ser exibido em modo folha de dados, modo de formulrio, modo de tabela dinmica ou modo de grfico dinmico. Tambm possvel definir o modo de exibio padro do subformulrio e desativar um ou mais modos de exibio. possvel alternar o modo de exibio de uma subformulrio quando o formulrio principal exibido em modo de formulrio.
Os subformulrios no so exibidos quando um formulrio aberto no modo de tabela dinmica ou modo de grfico dinmico.
136
Banco de Dados I
Sincronizando um formulrio e um subformulrio Quando voc cria um formulrio e um subformulrio com base em tabelas que possuem um relacionamento um-para-muitos, o formulrio principal exibe o lado "um" e o subformulrio exibe o lado "muitos" do relacionamento. O formulrio principal sincronizado com o subformulrio de tal forma que o subformulrio exiba apenas registros relacionados ao registro no formulrio principal. Se voc utilizar um assistente para criar um subformulrio ou se arrastar um formulrio, tabela ou consulta da janela Banco de dados para outro formulrio a fim de criar um subformulrio, o Microsoft Access sincronizar automaticamente o formulrio principal com o subformulrio se uma das seguintes condies for verdadeira. Se: Voc tiver definido relacionamentos para as tabelas selecionadas ou para as tabelas base das consultas selecionadas. O formulrio principal for baseado em uma tabela com uma chave primria e o subformulrio for baseado em uma tabela que contm um campo com o mesmo nome da chave primria e com o tipo de dados e tamanho de campo igual ou compatvel. Por exemplo, em um banco de dados do Microsoft Access, se a chave primria da tabela base do formulrio principal for um campo AutoNumerao e sua propriedade FieldSize for definida com Inteiro longo, o campo
137
Banco de Dados I
correspondente na tabela base do subformulrio deve ser um campo numrico com a propriedade FieldSize definida como Inteiro longo. Se voc selecionar uma ou mais consultas, as tabelas base da consulta ou consultas devero atender a essas condies. Aninhando nveis Um formulrio principal poder ter qualquer nmero de subformulrios se voc colocar cada um deles no formulrio principal. Voc tambm pode aninhar at sete nveis de subformulrios. Isto significa que voc pode ter um subformulrio dentro de um formulrio principal e um outro subformulrio dentro daquele subformulrio e assim por diante. Por exemplo, voc pode ter um formulrio principal que exiba clientes, um subformulrio que exiba pedidos e outro subformulrio que exiba detalhes do pedido. Entretanto, um formulrio no exibir subformulrios em modo de tabela dinmica ou modo de grfico dinmico. Inserindo dados usando um formulrio e subformulrio Quando voc utiliza um formulrio com um subformulrio para inserir novos registros, o Microsoft Access salva o registro atual no formulrio principal quando voc insere dados no subformulrio. Isto assegura que os registros na tabela "muitos" tero um registro na tabela "um" com o qual se relacionar. Isto tambm salva automaticamente cada registro medida que so adicionados ao subformulrio. Criar um subformulrio Se o subformulrio for vinculado ao formulrio principal, certifique-se de que as origens do registro base estejam relacionadas antes de usar este procedimento. No possvel adicionar um subformulrio a um formulrio quando ele exibido em modo de tabela dinmica ou em modo de grfico dinmico.
Criar um formulrio e um subformulrio ao mesmo tempo Na janela Banco de Dados, clique em Formulrios em Objetos.
Clique no boto Novo na barra de ferramentas da janela Banco de dados. Na caixa de dilogo Novo formulrio, clique duas vezes em Assistente de formulrio. Na primeira caixa de dilogo do assistente, selecione uma tabela ou consulta na lista. Por exemplo, para criar um formulrio Categorias que exiba produtos para cada categoria em um subformulrio, selecione a tabela Categorias (o lado "um" do relacionamento um-para-muitos). Observao: No importa qual tabela ou consulta voc escolhe primeiro. Clique duas vezes nos campos que voc deseja incluir desta tabela ou consulta.
138
Banco de Dados I
Na mesma caixa de dilogo do assistente, selecione outra tabela ou consulta da lista. Utilizando o mesmo exemplo, selecione a tabela Produtos (o lado " muitos" da relao um-para-muitos). Clique duas vezes nos campos que voc deseja incluir desta tabela ou consulta . Quando voc clicar em Avanar, se os relacionamentos tiverem sido corretamente definidos antes de iniciar o assistente, o assistente perguntar que tabela ou consulta voc deseja visualizar. Utilizando o mesmo exemplo, para criar o formulrio Categorias, clique em Por categorias. Na mesma caixa de dilogo do assistente, selecione a opo Formulrio com subformulrio (s) . Siga as instrues nas demais caixas de dilogo do assistente. Quando voc clicar em Concluir, o Microsoft Access criar dois formulrios, um para o formulrio principal e controle de subformulrio, e um para o subformulrio.
P.
Com a ajuda do Assistente de Auto formulrio Colunar crie um formulrio para cada tabela do banco de dados:
Q.
Em cada um dos formulrios criados no item anterior coloque um boto que feche o formulrio:
R.
Crie um formulrio chamado Menu Principal, que possua um boto que abra cada um dos formulrios criados no item B:
S.
T.
139
Banco de Dados I
RELATRIOS
Como foi descrito anteriormente um relatrio uma forma de criar listagens e etiquetas de um banco de dados do Access. Os relatrios fornecem facilidade na criao de apresentaes personalizadas com a utilizao de diferentes tipos de efeitos (fontes, linhas, cores), alm de permitir a incluso de frmulas de totalizao de dados. Abaixo ilustramos o exemplo de um relatrio de produtos e preos:
140
Banco de Dados I
Uma das maneiras mais rpidas para se criar um utilizar um dos Assistentes de Auto relatrio que automaticamente criar um relatrio com a mnima usurio. Clique no boto Novo Objeto na barra de banco de dados em seguida no comando Relatrio. ao lado.
relatrio padro
interveno
do
141
Banco de Dados I
No modo design que serve apara alterar relatrios existentes ou criao de novos relatrios ser exibida a seguinte tela:
142
Banco de Dados I
Boto
Nome Objeto
Descrio
Permite selecionar um objeto na estrutura atual atravs do seu nome. Altera o tipo de fonte de um objeto que possua esta Fonte propriedade. Tamanho da Altera o tamanho da fonte. fonte Aplica o estilo negrito. Negrito Aplica o estilo itlico. Itlico Sublinhado Esquerda Centro Direita Cor preenchimento Cor fonte Cor contorno Contorno Sombra Aplica o estilo sublinhado. Alinha o texto esquerda. Centraliza o texto. Alinha o texto direita. Altera a cor de preenchimento de um objeto. Altera a cor da fonte de um objeto. Altera a cor de contorno de um objeto. Altera a caneta de contorno de um objeto.
Aplica um dos diferentes efeitos de sombra aos objetos. Alterna a exibio entre o modo estrutura/relatrio e Exibir folha de dados. Exibe uma lista de campos, caso o relatrio esteja Campos baseado em uma consulta ou tabela. Exibe/Oculta a caixa de ferramentas. Ferramentas Classifica dados de um relatrio e/ou cria novas Subtotais sees (quebras de relatrio). Auto Permite a escolha de um estilo pronto de formatao. formatar Exibe a janela de cdigo do relatrio ou relatrio Mdulo atual. Propriedade Exibe as propriedades de um objeto. s Permite a construo de expresses/macros e cdigo Construtor VBA que pode ser utilizado nas propriedades de um de expresses objeto.
143
Banco de Dados I
Outro item importante no modo design de relatrios a folha de propriedades dos objetos que pode ser acessada pelo boto da barra de ferramentas ou boto direito do mouse propriedades. Cada objeto possui vrias propriedades que podem ser atravs da folha de propriedades. definidas atravs do
para
As propriedades de um objeto so divididas em categorias para facilitar a localizao de uma propriedade especfica.
144
Banco de Dados I
V.
Com a ajuda do Assistente de Auto relatrio tabular crie um relatrio para cada tabela do banco de dados:
W.
Crie um novo formulrio no modo estrutura que possua um boto para visualizar cada um dos relatrios criados no item B:
X.
Abra a estrutura do formulrio Menu Principal e crie um boto que abra o formulrio criado no item C:
145
Banco de Dados I
Unidade 25 -
Pgina de dados
Na barra de ferramentas da janela Banco de dados, clique em Novo. Na caixa de dilogo Nova pgina de acesso a dados, clique em AutoPgina: Colunar.
146
Banco de Dados I
Clique na tabela, na consulta ou no modo de exibio que contenha os dados nos quais voc deseja basear sua pgina. Clique em OK. Na pgina de acesso a dados concluda, cada campo ser exibido em uma linha separada com um rtulo esquerda. Se a pgina resultante no tiver a aparncia desejada, voc pode modificar a pgina no modo de design. Observao: Se voc definiu um tema padro, o Microsoft Access o aplica pgina. Criar uma pgina de acesso a dados que contm campos de vrias tabelas e consultas (Assistente de pgina) O assistente formula perguntas detalhadas sobre origens do registro, campos, layout e formato desejados e cria uma pgina com base nas suas respostas. Se o assistente no for iniciado Essa situao pode ocorrer porque o Access est em execuo no modo seguro, mas o componente Microsoft Jet 4.0 SP8 ou posterior no est instalado no computador. necessrio que o Jet 4.0 SP8 ou posterior esteja instalado para que o Access funcione plenamente quando o modo seguro estiver habilitado. Observao: Para obter mais informaes sobre a instalao da atualizao do Jet, consulte o artigo About Microsoft Jet 4.0 SP8 or later do Office Online, em
http://office.microsoft.com/assistance/preview.aspx?AssetID=HA010489351033. Para obter mais informaes sobre o modo seguro, consulte o artigo Sobre o modo seguro do Microsoft Jet Expression Service.
Na barra de ferramentas da janela Banco de dados, clique em Novo. Na caixa de dilogo Nova pgina de acesso a dados, clique em Assistente de pgina. Clique no nome da tabela, consulta ou modo de exibio que inclua os dados nos quais voc deseja basear sua pgina de acesso a dados. Observao Voc no precisa fazer isso agora voc pode especificar as origens do registro para a pgina no assistente. Clique em OK. Siga as instrues das caixas de dilogo do assistente.
147
Banco de Dados I
Se a pgina resultante no tiver a aparncia desejada, voc pode modificar a pgina no modo de design. Observaes: a) Caso voc queira incluir campos de vrias tabelas e consultas em sua pgina, no clique em Avanar nem em Concluir aps selecionar os campos da primeira tabela ou consulta no Assistente de pgina. Repita as etapas para selecionar uma tabela ou consulta e escolha os campos que deseja incluir no relatrio, at ter selecionado todos os campos necessrios. b) Se voc incluir campos de vrias tabelas ou consultas mas no criar nveis de grupo, os campos de uma das tabelas base podem oferecer suporte a atualizaes no modo de pgina ou no Microsoft Internet Explorer. O assistente listar as origens de registro da pgina e solicitar que voc especifique a fonte do recurso atualizvel.
148
Banco de Dados I
Criar uma pgina de acesso a dados no modo de design. Na guia Objetos da janela Banco de Dados, clique em Pginas .
Na barra de ferramentas da janela Banco de dados, clique em Novo. Na caixa de dilogo Nova pgina de acesso a dados, clique em Modo de design. Clique no nome da tabela, consulta ou modo de exibio que inclua os dados nos quais voc deseja basear sua pgina de acesso a dados. Observao Se voc quiser criar uma pgina em branco, no selecione uma fonte do registro nesta caixa de dilogo. Clique em OK. O Microsoft Access exibe a pgina de acesso a dados no modo de design, no qual voc poder modificar a pgina. Para adicionar dados pgina, arraste os campos da lista de campos para a pgina. Transformar uma pgina da Web existente em uma pgina de acesso a dados Na janela Banco de Dados, clique em Pginas , em Objetos.
Clique no boto Novo na barra de ferramentas da janela Banco de dados. Na caixa de dilogo Nova pgina de acesso a dados, clique em Pgina da Web existente. Clique em OK. Na caixa de dilogo Localizar pgina da Web, procure a pgina da Web ou arquivo HTML que voc deseja abrir. Observao: Voc pode localizar uma pgina da Web clicando em Pesquisar na Web na caixa de dilogo Localizar pgina da Web. Salve uma cpia da pgina usando o comando Salvar como no menu Arquivo do Microsoft Internet Explorer e inicie esse procedimento novamente para abrir a pgina no modo design. Clique em Abrir. O Microsoft Access cria um atalho para o arquivo HTML na janela Banco de dados e exibe a pgina no modo de design, onde voc pode modific-la.
Observao: Se voc especificou um arquivo de conexo padro para o banco de dados na guia Pginas da caixa de dilogo Opes, o Microsoft Access automaticamente definir as propriedades ConnectionFile e ConnectionString para todas as novas pginas. Criar uma pgina de acesso a dados autnoma Se um banco de dados for aberto no Microsoft Access, feche-o. No menu Arquivo, clique em Novo. Na caixa de dilogo Novo, clique em Pgina de acesso a dados. Na caixa de dilogo Selecionar fonte de dados, siga um destes procedimentos:
149
Banco de Dados I
150
Banco de Dados I
Conectar a pgina a um banco de dados do Microsoft Access Use o seguinte procedimento se voc quiser criar uma pgina e acopl-la a um banco de dados do Microsoft Access, sem criar um atalho no banco de dados. Na lista Arquivos do tipo, selecione Bancos de dados do Microsoft Access. Clique duas vezes no arquivo do banco de dados que voc deseja acoplar a pgina. Se voc no vir o banco de dados que deseja usar, navegue at a pasta que contm o arquivo e, em seguida, clique duas vezes no nome do arquivo. Clique em OK duas vezes. O Microsoft Access criar uma pgina em branco e a abrir em modo de design. A propriedade ConnectionString da pgina ser definida para conectar a pgina ao banco de dados selecionado. Para adicionar dados pgina, arraste os campos da lista de campos para a pgina
LABORATRIO 7 Y. Como base nas tabelas criadas no laboratrio 2, crie uma pagina de acesso. Layout Livre.
151
Banco de Dados I
Unidade 26 -
PERSONALIZAO E UTILITRIOS
Alm do ttulo, cone e formulrio padro o usurio poder definir se os menus podero ser utilizados ou no e se a Janela Banco de Dados ser exibida. No Access 2007 selecione o boto do Office (canto superior esquerdo) e clique em "Opes do Access". Selecione o menu "Banco de dados atual" e desmarque os itens: Permitir Menus Completos" e "Permitir Barras de Ferramentas Internas. Veja na figura abaixo
152
Banco de Dados I
153
Banco de Dados I
154
Banco de Dados I
Protegendo o Arquivo A proteo de arquivo solicitar uma senha do usurio todas as vezes que o mesmo tentar abrir o arquivo de banco de dados. Para ativar a proteo por senha escolha FerramentasSeguranaDefinir senha do banco de dados. Criando um Arquivo Mde Um arquivo MDE na verdade uma verso compilada do arquivo MDB. Um arquivo MDE permitir apenas alteraes e visualizao de estrutura para tabelas e consultas. Para criar um arquivo MDE menu FerramentasUtilitrios de Banco de dadosCriar um MDE Criptografando o Arquivo A criptografia tornar impossvel que outros aplicativos consigam ler o banco de dados do Access. Quando o Access for efetuar a abertura do arquivo ele mesmo efetuar a descriptografia dos dados, o que torna este recurso totalmente transparente para o usurio. No Access 2007 encontramos estas opes na barra de ferramentas
155
Banco de Dados I
LABORATRIO 8 Z. Defina o formulrio Menu Principal como formulrio de inicializao do seu banco de dados criado no laboratrio 2:
AA.
BB.
CC.
DD.
156
Banco de Dados I
Unidade 27 -
MySQL
27.1 Introduo
O MySQL mais um exemplo de SGBD que utiliza a linguagem SQL como forma de interagir com os dados armazenados. Obviamente, possui algumas sintaxes de comandos que mesmo provenientes da linguagem SQL so especficas deste banco. um dos bancos de dados mais utilizados por empresas e usurios pessoais Podemos citar vrios grandes exemplos de usurios deste sistema de gerenciamento de banco de dados, mas o maior case de sucesso, no poderia deixar de ser outro: o Google. Este sistema teve seu lanamento na dcada de 1980, de l para c o numero de usurios e pessoas responsveis por sua manuteno e testes s tem aumentado. Alm disso uma srie de sistemas satlite vem sendo desenvolvidos para agregar cada vez mais funcionalidades e este bando. Inicialmente o MySQL era um sistema que pertencia a uma empresa que o ofertava livremente, sem a inteno de gerar concorrncia. No entanto a sua grande expanso fez com que grandes corporaes como a SUN a adquirisse. Ironicamente a SUN foi adquirida pela ORACLE o que criou quase que uma guerra fria de bancos de dados, tendo a ORACLE de um lado e a Microsoft de outro. Este grande ganho de mercado que o MySQL obteve tem como um dos grandes fatores a integrao com uma das linguagens de programao de maior sucesso na Internet, o PHP. Esta configurao de uso do Linux(Sistema Operacional), MySQL, PHP e o Apache(Servidor), criou uma sigla conhecida como LAMP, que uma das opes mais aceitas pelos usurios na hora de hospedar seus sites. Tambm comum a visualizao da sigla WAMP, que nada mais do que troca do sistema operacional Linux pelo Windows Em seu princpio o MySQL era considerado um SGBD fraco e de poucos recursos. No entanto esta realidade mudou drasticamente nos ltimos anos e ele j utilizado na gesto de dados com grande volume de acesso como o Google e a Wikipdia alm de ter sua utilizao empregada em instituies que lidam com a segurana e preciso da informao como fatores determinantes de seu negcio. Podemos citar como exemplo a NASA e o exrcito Americano, alm de exemplos nacionais como o banco Bradesco e tantas outras instituies financeiras
157
Banco de Dados I
O Front-End
Manipular os dados armazenados em um banco de dados requer o uso de ferramentas especficas para esta operao. Estes sistemas so os chamados fron-ends. A instalao completa do MySQL acompanha o aplicativo desktop chamado MySQL Query Browser:
Este sistema bem completo e oferece suporte a linguagem, bem como interface amigvel ao banco em si. Alm desta possibilidade nativa, possumos uma srie de outros sistemas desktop, cabendo um destaque ao Navicat. Entretanto como a maior popularizao do MySQL se deu pelo grande casamento com a linguagem para web(PHP), no poderia deixar de existir um sistema nesta linguagem e que o mesmo fosse um dos mais utilizados. Estamos nos referindo ao phpMyAdmin Em nosso material vamos citar exemplos de manipulao de dados utilizando o phpMyAdmin bem como do MySQL Query Browser
158
Banco de Dados I
Unidade 29 -
159
Banco de Dados I
No caso de instalao local basta digitar http://localhost/phpmyadmin/ em seu navegador preferido, ou utilizar algum sistema para trabalhar com PHP, como por exemplo, o WAMP ou mesmo o easyPHP. Estes sistemas permitem o acesso de forma mais rpida e sem a necessidade de informar usurio e senha a todo o momento
160
Banco de Dados I
Por sua vez o MySQL Query Browser um software desktop, portanto, fica instalado na mquina que ir acessar o banco. Este programa pode ser facilmente baixado atravs do site da MYSQL ou em local prprios para download de aplicativos, tais como o superdownloads e o baixaki. A acessar este sistema a seguinte tela ser exibida:
161
Banco de Dados I
Nesta tela dever ser informado; O IP e a porta de conexo(normalmente 3306) com o servidor(localhost se for localmente) O usurio(normalmente o mesmo do painel de controle ou root se for localmente) A senha(definida pelo usurio) Base de dados padro(A base do projeto)
162
Banco de Dados I
Conhecendo a Interface
Ao acessar o phpMyAdmin nos exibida um tela com as principais funcionalidades do bando de dados. Veja uma tela de exemplo abaixo:
Esta tela nos mostra algumas informaes sobre a configurao do servidor em que o banco est hospedado bem como estatsticas sobre o funcionamento do banco de dados
163
Banco de Dados I
164
Banco de Dados I
No MySQL Query Browser localizamos estas mesmas opes no canto superior direito:
165
Banco de Dados I
Unidade 31 -
No MySQL Query Browser clicamos com o boto direito sobre uma base qualquer e escolhemos a opo Create New Schema
166
Banco de Dados I
Criando Tabelas
A criao de tabelas com a utilizao de scripts j foi vista em unidades anteriores, esto vamos nos deter na facilidade da criao de tabelas com a interao da interface dos font-ends phpMyAdmin Com a base de dados selecionada basta digitar o nome da nova tabela e o nmero de campos que a mesma ter (nmero de arquivos)
Logo apes este passo ser exibida uma tela para as devidas configuraes:
Formatao Campo
Autoincremento
167
Banco de Dados I
Salvar
Incluir campos
Executar
O preenchimento das informaes solicitadas nos campos, na realidade gera um script em SQL para a criao da referida tabela. Podemos verificar os scripts criados para a criao de tabelas bem como para insero do dados das mesmas atravs do boto exportar
Esta opo muito til quando precisamos criar uma srie de tabelas que desenvolvemos localmente para um servidor remoto. Alm disto este script, tambm utilizado para a instalao de sistemas web baseado em banco de dados MySQL MySQL Query Browser Para o MySQL Query Browser o processo simples, basta clicar com o boto direito sobre a base de dados na qual desejas que a tabela seja criada.
168
Banco de Dados I
Nome table
Base de Dados
Comentrio
Opes numricas ou update Autoincremento Nulo Tipo Dados Nome Campo Salvar Comentrio
Alm da informaes apontadas nas caixas de texto cabe destacar que na parte inferior da tela exibida a chave primria selecionada bem como os ndices. Alm disso tambm encontramos mais detalhes sobre a configurao de cada campo.
169
Banco de Dados I
Criando Consultas
A exemplo da criao de bases de dados e tabelas, no caso das consultas, tambm podemos realiz-las por scripts ou via interface. Vejamos como isso funciona em nossos front-ends phpMySQL Com sua base de dados selecionada, a lista com as tabelas exibida a direita. Ao lado de cada tabela temos o boto de suas propriedades( basta clicar na aba . ). Para a execuo de um script direto em SQL
Para utilizar um assistente na criao de suas consultas clique na aba A seguinte tela ser exibida;
Limite de registros(limit)
Critrios(where)
170
Banco de Dados I
MySQL Query Browser No Query Browser possumos botes que representam instrues em SQL. A clicar nestes botes e aps em um campo ou tabela a expresso montada na tela de consulta. Botes que representam o SQL
171
Banco de Dados I
Unidade 34 -
SQL Server
34.1 Introduo
O SQL Server um SGDB criado e mantido pela Microsoft. Ele utilizado em muitas empresas, principalmente por sua grande capacidade de gerenciamento de informaes em alto volume de dados. Este SGBD tem muitas ferramentas integradas ao ncleo que permitem um ganho realmente significativo em termos de controle de desempenho e extrao de informaes. Podemos citar a sua enorme capacidade de gerao de cubos de deciso, bem como seu elevado e confivel controle de espelhamento e distribuio de dados. Esta alta confiabilidade na gesto dos dados, bem como a solidez de sua empresa mantenedora fazem do SQL Server uma das que melhor equilibra a relao custo benefcio. Para empresas de pequeno porte ou mesmo usurio individual a Microsoft disponibiliza uma verso Express de seu banco de dados, que apesar de algumas limitaes de recursos, tais como replicao e espelhamento, supre a necessidade destes clientes. Um dos maiores concorrentes do SQL Server o SGDB ORACLE, e logicamente cada uma das empresas detentoras destas marcas coloca o seu sistema como o melhor. Logicamente que se fizermos uma avaliao fria(sem bandeiras a defender), veremos que cada um deles possui seus pontos positivos e negativos. A concluso que podemos chegar que cada um deles deve se adequar a realidade de infraestrutura e de capital que se est disposto a investir, mas ambos so uma boa opo para qualquer linguagem adotada.
172
Banco de Dados I
Cabe apenas destacar, que o SQL Server, por ser um banco da Microsoft utiliza bem melhor os recursos do sistema operacional quando combinado a plataforma Windows. Mesmo possuindo a possibilidade da instalao deste bando de dados em um sistema operacional baseado no ncleo do Linux, esta configurao no se mostra eficiente sob a tica de performance e confiabilidade dos dados armazenados. Neste tipo de servidor(com Linux), recomenda-se a utilizao de outro SGBD, tal como o ORACLE, MySQL, PostGre e tantos outros
173
Banco de Dados I
O Front-End
O SQL Server possui uma ferramenta nativa de acesso a sua base de dados, no sendo necessria a utilizao de qualquer outro sistema paralelo. Mesmo que o banco de dados no esteja fisicamente localizado em sua mquina, este aplicativo nativo do SQL Server, pode fazer o acesso a bases de dados remotas. Existem algumas empresas que desenvolvem aplicaes front-end para SQL Server, tais como o EMS SQL Manager for SQL Server. No entanto, esta ferramenta paga, no traz todas as funcionalidades que o aplicativo padro possui. Portanto em nosso material, vamos nos deter nica e exclusivamente na ferramenta padro deste SGBD.
174
Banco de Dados I
Unidade 36 -
conexao.Open() %> Alm deste exemplo existem outras linguagens que possuem seu prprio script de conexo
175
Banco de Dados I
No caso de instalao local basta digitar utilizar no nome de seu computador como o nome do servidor.
176
Banco de Dados I
Conhecendo a Interface
Ao acessar o SQL Server nos exibida um tela com as principais funcionalidades do bando de dados. Veja uma tela de exemplo abaixo:
Esta tela nos mostra algumas informaes sobre a configurao do servidor em que o banco est hospedado bem como estatsticas sobre o funcionamento do banco de dados
177
Banco de Dados I
Unidade 38 -
Aps isto ser exibida uma tela para colocarmos o nome de nossa nova base de dados:
178
Banco de Dados I
179
Banco de Dados I
Criando Tabelas
A criao de tabelas com a utilizao de scripts j foi vista em unidades anteriores, esto vamos nos deter na facilidade da criao de tabelas com a interao da interface dos font-ends Ao expandirmos as bases de dados existentes e posteriormente seu contedo, veremos que ser exibida a opo de tabelas. Basta clicar com o boto direito sobre a opo tabelas e por fim utilizar Nova Tabela
Ser exibida uma tela para informarmos quais sero os campos e quais so as suas principais caractersticas;
Script alterao Texto Completo Espacial Chave primria Restries Relacionamento XML ndices Nome Campo Tipo dado Nulo
180
Banco de Dados I
Criando Consultas
A exemplo da criao de bases de dados e tabelas, no caso das consultas, tambm podemos realiz-las por scripts ou via interface. Vejamos como isso funciona em nosso front-ends No canto superior esquerdo encontramos a opo Nova Consulta, ao clicar nela em nossa direita ser exibida uma tela para digitarmos nosso script em SQL
181
Banco de Dados I
Conhecendo XML
XML (eXtensible Markup Language) uma linguagem marcao para necessidades especiais, muito utilizada na Web, em podcasts e rss . um subtipo de SGML (acrnimo de Standard Generalized Markup Language, ou Linguagem Padronizada de Marcao Genrica) capaz de descrever diversos tipos de dados. Seu propsito principal a facilidade de compartilhamento de informaes atravs da Internet. Entre linguagens baseadas em XML incluem-se XHTML (formato para pginas Web), RDF,SDMX ,SMIL, MathML (formato para expresses matemticas), NCL, XBRL, XSIL e SVG (formato grfico vetorial). A principal caracterstica do XML, de criar uma infraestrutura nica para diversas linguagens, que linguagens desconhecidas e de pouco uso tambm podem ser definidas sem maior trabalho e sem necessidade de serem submetidas aos comits de padronizao.
182
Banco de Dados I
Unidade 42 -
Podemos usar o Front-end para tambm criar a coluna do tipo XML digitando diretamente a definio no editor conforme abaixo:
183
Banco de Dados I
Ao executarmos uma consulta de seleo para visualizarmos o resultado, teramos o seguinte retorno:
184
Banco de Dados I
Podemos observar o uso do mtodo modify em nosso update Para verificar se o comando foi executado corretamente vamos usar a instruo SELECT para exibir os dados da tabela :
185
Banco de Dados I
Clicando no link exibido na coluna dados iremos obter o arquivo XML abaixo:
Para que possamos incluir o elemento <produto descricao="Batata" valor="2.1" /> antes do elemento < produto descricao="Feijao" valor="2.8" /> ? Devemos executar o seguinte script: UPDATE MinhaTabela SET dados.modify ('insert <produto descricao="Batata" valor="2.1" /> before (/cliente/compras/produto)[2] ') WHERE codigoiD = 1
Perceba a utilizao da clusula before e que especificamos o produto (/cliente/compras/produto)[2]) atravs do ndice 2 para indicar a posio depois da qual vamos incluir o elemento. Naturalmente da mesma forma poderamos ter usado a clusula after para incluir depois da posio indicada na instruo SQL. Para efetuar uma alterao em dados XML j cadastrados devemos usar a instruo replace que idntica a instruo Update e permite alterar valores j cadastrados. A utilizao da instruo replace no pode ser usada para alterar ns, mas somente valores. Como exemplo vamos alterar o nome do produto Milho para Ervilha usando a instruo replace. UPDATE MinhaTabela Set dados.modify ('replace value of (/cliente/compras/produto[@descricao="Milho"] @descricao)[1] with "Ervilha"') /
186
Banco de Dados I
Where codigoId = 1
A instruo XPath - (/cliente/compras/produto[@descricao="Milho"][1] - vai procurar o primeiro produto que tenha a descrio Milho e vai substitu-lo pelo texto Ervilha. Para especificar que desejamos substituir o primeiro usamos o ndice [1]. Aps a execuo da instruo vamos novamente usar uma instruo SQL Select e posteriormente o link para verificar se o valor foi realmente alterado.
Podemos usar o operador last() para direcionar para o ltimo elemento independente da sua posio. Assim, para atualizar o valor do ultimo produto para 3.1 usamos a seguinte instruo: UPDATE MinhaTabela SET dados.modify ('replace "3.1"') value of (/cliente/compras/produto/@descricao)[last()] with
WHERE codigoid = 1
Aps a execuo da instruo vamos novamente usar uma instruo SQL Select e posteriormente o link para verificar se o valor foi realmente alterado.
187
Banco de Dados I
188
Banco de Dados I
Esta instruo exclui todos os elementos descricao cujo atributo nome contenha a string "o" Por isso voc sempre deve usar uma clusula WHERE em uma instruo DELETE, como no exemplo abaixo: UPDATE MinhaTabela SET dados.modify(' delete /cliente') WHERE codigoid = 1
A instruo acima exclui todo o contedo XML para o cliente de cdigo igual a 1. Como o cliente a raiz do documento XML basta definir a raiz do documento que todos os elementos sero excludos ao final o valor da coluna passa a conter uma string vazia ("").
189
Banco de Dados I
Trabalho Final
Uma empresa de manipulao deseja automatizar o processo de compra de matria prima, composio do produto acabado e venda dos produtos que manipulados. A empresa compra matria prima dos fornecedores. Esta matria prima armazenada com o Cdigo, Nome da Matria, Tipo, Valor por Grama, Estoque. A matria prima atualizada no estoque atravs de requisio quando da sua sada. Para a compra da matria prima necessrio gerar uma solicitao de compras. Quando a matria prima atinge seu ponto de reposio gerado uma solicitao de compras. A compra de matria prima efetuada atravs de uma nota fiscal, a qual obrigatoriamente contm Nmero da Nota Fiscal, Data da Emisso, Hora da Emisso, Unidade da Mercadoria, Preo Unitrio, Descrio da Mercadoria comprada. A nota fiscal atualiza estoque de matria prima e atualizao a solicitao que a gerou atravs do nmero desta nota. O produto manipulado composto por Cdigo, Nome do Produto, Frmula, Data de Validade, e Preo final. Um Produto pode possuir vrias matrias primas e uma matria prima pode ser um componente de vrios produtos. Um Fornecedor pode fornecer vrias matrias primas, e uma matria prima pode ser fornecida por vrios fornecedores. Um fornecedor composto de Cdigo do Fornecedor, Razo Social, CNPJ, IE, Endereo, E-mail, Site do Fornecedor, Telefone, FAX, Contato Comercial. O produto acabado atualiza o estoque de produtos acabados. A empresa tem uma carteira de clientes, que vo desde farmcias, clnicas, laboratrios, a atacados. Os clientes so atendidos no balco, por vendedores (funcionrios) tanto In loco como por televendas, gerando pedidos. As notas fiscais de vendas sero atendidas conforme os pedidos gerados, a qual contm obrigatoriamente as seguintes informaes: Nmero da Nota Fiscal, Data da Emisso, Hora da Emisso, Unidade da Mercadoria, Preo Unitrio, Preo Total do produto, total da nota fiscal, Descrio do produto, nome do vendedor, condies de pagamento, nmero do pedido. As vendas geram um arquivo de contas a receber, com as seguintes informaes: Cdigo, Cdigo do Cliente, Data da Emisso, Data do vencimento, Nmero da Parcela, Valor da Parcela, e Nmero da Nota Fiscal. A nota fiscal de venda atualiza o estoque de produtos acabados. Em caso de devoluo, gerada uma nota de devoluo e atualizado o estoque.
190
Banco de Dados I
191