A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Java Como Programar, 8/E Deitel/Deitel, 8e. Java – Como programar Copyright © 2010 Pearson Education Slide 1.

Apresentações semelhantes


Apresentação em tema: "Java Como Programar, 8/E Deitel/Deitel, 8e. Java – Como programar Copyright © 2010 Pearson Education Slide 1."— Transcrição da apresentação:

1 Java Como Programar, 8/E Deitel/Deitel, 8e. Java – Como programar Copyright © 2010 Pearson Education Slide 1

2 Deitel/Deitel, 8e. Java – Como programar Copyright © 2010 Pearson Education Slide 2

3 Deitel/Deitel, 8e. Java – Como programar Copyright © 2010 Pearson Education Slide 3

4 Deitel/Deitel, 8e. Java – Como programar Copyright © 2010 Pearson Education Slide 4

5 Deitel/Deitel, 8e. Java – Como programar Copyright © 2010 Pearson Education Slide 5 Um Banco de Dados é uma coleção organizada de dados; Um Sistema de Gerenciamento de Bancos de Dados (Database Management System – DBMS) fornece mecanismos para armazenar, organizar, recuperar e modificar dados para muitos usuários; SQL (Structured Query Language) é a linguagem padrão utilizada quase universalmente com bancos de dados relacionais para realizar consultas e para manipular dados; Sistemas de Gerenciamento de Banco de Dados Relacional (RDBMSs) populares: Microsoft SQL Server, Oracle, Sybase, IBM DB2, Informix, PostgreSQL, MySQL.

6 Deitel/Deitel, 8e. Java – Como programar Copyright © 2010 Pearson Education Slide 6 O JDK vem agora com um RDBMS puro Java chamado Java DB a versão da Sun para o Apache Derby; Os programas Java comunicam-se com bancos de dados e manipulam seus dados utilizando a Java Database Connectivity (JDBC) API, baseada na ideia do ODBC; Um driver JDBC permite aos aplicativos Java conectar-se a um banco de dados em um DBMS particular e permite a manipulação desse banco de dados utilizando o JDBC API; MySQL é um RDBMS de código-fonte aberto, disponível tanto para Windows quanto Linus. Site: dev.mysql.com

7 Deitel/Deitel, 8e. Java – Como programar Copyright © 2010 Pearson Education Slide 7 A separação entre API do JDBC e drivers de banco de dados particulares permite aos desenvolvedores alterar o banco de dados sem modificar o código Java que acessa o Banco de Dados. API Java: java.sql.* e javax.sql.* Exemplo de driver JDBC: Connector J (MySQL)

8 Deitel/Deitel, 8e. Java – Como programar Copyright © 2010 Pearson Education Slide 8

9 Deitel/Deitel, 8e. Java – Como programar Copyright © 2010 Pearson Education Slide 9 Quando um aplicativo Java acessa um banco de dados via JDBC, são executados os seguintes passos: 1 – Carregar o driver JDBC; 2 – Abrir uma conexão com o banco de dados (schema); 3 – Encapsular o comando SQL em um objeto ( Statement ); 4 – Enviar o comando SQL para o DBMS através da conexão criada; 5 – Processar o resultado encaminhado pelo DBMS, se necessário; 6 – Encerrar a conexão.

10 Deitel/Deitel, 8e. Java – Como programar Copyright © 2010 Pearson Education Slide 10 Um Banco de Dados Relacional é uma representação lógica de dados que permite acessar os dados sem considerar a estrutura física; Armazena dados em Tabelas (compostas por Linhas, que são compostas por Colunas, que armazenam valores); Chave Primária (PK – Primary Key) uma coluna (ou grupo de colunas) com um valor único que não pode ser duplicado em outras linhas, em cada tabela; Chave Estrangeira (FK – Foreign Key) – Permite relacionar diferentes tabelas.

11 Deitel/Deitel, 8e. Java – Como programar Copyright © 2010 Pearson Education Slide 11

12 Deitel/Deitel, 8e. Java – Como programar Copyright © 2010 Pearson Education Slide 12

13 Deitel/Deitel, 8e. Java – Como programar Copyright © 2010 Pearson Education Slide 13 O banco de dados exemplo (books) consiste nas tabelas: Authors, AuthorISBN e Titles. Chave Estrangeira coluna(s) em uma tabela que corresponde à(s) coluna(s) de chave primária em outra tabela, relacionando-as. Ajuda a manter a Regra de Integridade Referencial cada valor de chave estrangeira em uma tabela deve aparecer como valor de chave primária em outra tabela; Há um relacionamento um para muitos entre uma chave primária e sua chave estrangeira correspondente; Fornecer um valor de FK que não aparece como um valor de PK em outra tabela quebra a regra de integridade referencial e faz com que o DBM informe um erro.

14 Deitel/Deitel, 8e. Java – Como programar Copyright © 2010 Pearson Education Slide 14

15 Deitel/Deitel, 8e. Java – Como programar Copyright © 2010 Pearson Education Slide 15

16 Deitel/Deitel, 8e. Java – Como programar Copyright © 2010 Pearson Education Slide 16

17 Deitel/Deitel, 8e. Java – Como programar Copyright © 2010 Pearson Education Slide 17

18 Deitel/Deitel, 8e. Java – Como programar Copyright © 2010 Pearson Education Slide 18

19 Deitel/Deitel, 8e. Java – Como programar Copyright © 2010 Pearson Education Slide 19

20 Deitel/Deitel, 8e. Java – Como programar Copyright © 2010 Pearson Education Slide 20 Diagrama de Relacionamento de Entidade (Entity- Relationship – ER) Mostra graficamente as tabelas de banco de dados e as relações entre eles; Os nomes em itálico são chaves primárias; Permite que se modele o BD antes de construí-lo fisicamente; Regra de Integridade de Entidade. Uma chave primária da tabela identifica unicamente cada linha na tabela; Cada linha deve ter um valor de chave primária, e esse valor deve ser único na tabela.

21 Deitel/Deitel, 8e. Java – Como programar Copyright © 2010 Pearson Education Slide 21

22 Deitel/Deitel, 8e. Java – Como programar Copyright © 2010 Pearson Education Slide 22

23 Deitel/Deitel, 8e. Java – Como programar Copyright © 2010 Pearson Education Slide 23

24 Deitel/Deitel, 8e. Java – Como programar Copyright © 2010 Pearson Education Slide 24 As várias subseções a seguir discutem as palavras-chave de SQL listadas na Figura no contexto de consultas e instruções SQL. Há várias outras possibilidades. Esta é uma introdução simples; Outras palavras-chave de SQL estão além do escopo deste texto.

25 Deitel/Deitel, 8e. Java – Como programar Copyright © 2010 Pearson Education Slide 25

26 Deitel/Deitel, 8e. Java – Como programar Copyright © 2010 Pearson Education Slide 26 Uma consulta de SQL seleciona linhas e colunas de uma ou mais tabelas em um banco de dados; Formato básico: SELECT * FROM nomeDaTabela em que o asterisco ( * ) indica que todas as colunas da tabela nomeDaTabela devem ser recuperadas; Para recuperar todos os dados na tabela Authors, utilize SELECT * FROM Authors Para recuperar somente colunas específicas de uma tabela, substitua o asterisco ( * ) por uma lista dos nomes de coluna, separados por vírgulas SELECT AuthorID, LastName FROM Authors

27 Deitel/Deitel, 8e. Java – Como programar Copyright © 2010 Pearson Education Slide 27

28 Deitel/Deitel, 8e. Java – Como programar Copyright © 2010 Pearson Education Slide 28

29 Deitel/Deitel, 8e. Java – Como programar Copyright © 2010 Pearson Education Slide 29

30 Deitel/Deitel, 8e. Java – Como programar Copyright © 2010 Pearson Education Slide 30 Em vários casos, apenas linhas que atendem aos critérios de seleção são necessárias; SQL utiliza a cláusula WHERE opcional em uma consulta para especificar os critérios de seleção; Forma básica de uma consulta com critérios de seleção: SELECT nomeDaColuna1, nomeDaColuna2, … FROM nomeDaTabela WHERE critérios Para selecionar as colunas Title, EditionNumber e Copyright da tabela Titles para a qual a data do Copyright é maior que 2005, use a consulta: SELECT Title, EditionNumber, Copyright FROM Titles WHERE Copyright > '2005'

31 Deitel/Deitel, 8e. Java – Como programar Copyright © 2010 Pearson Education Slide 31 As strings em SQL são delimitadas por aspas simples ( ' ) em vez de aspas duplas ( " ). Os critérios da cláusula WHERE podem conter os operadores, =, =, <> e LIKE.

32 Deitel/Deitel, 8e. Java – Como programar Copyright © 2010 Pearson Education Slide 32 O operador LIKE é usado para correspondência de padrão com os curingas percentagem ( % ) e sublinhado ( _ ). % - aceitar qualquer quantidade de caracteres na posição do %; _ - cada sublinhado indica 1 único caracter de qualquer tipo; Em outras linguagens, os símbolos podem ser diferentes; E xemplo: retornar as linhas de todos os autores cujo sobrenome começa com a letra D : SELECT AuthorID, FirstName, LastName FROM Authors WHERE LastName LIKE 'D%'

33 Deitel/Deitel, 8e. Java – Como programar Copyright © 2010 Pearson Education Slide 33

34 Deitel/Deitel, 8e. Java – Como programar Copyright © 2010 Pearson Education Slide 34

35 Deitel/Deitel, 8e. Java – Como programar Copyright © 2010 Pearson Education Slide 35

36 Deitel/Deitel, 8e. Java – Como programar Copyright © 2010 Pearson Education Slide 36 Exemplo: retornar as linhas de todos os autores cujos sobrenomes começam com qualquer caractere (especificado por _ ), seguido pela letra o, seguida por qualquer número de caracteres adicionais (especificado por % ): SELECT AuthorID, FirstName, LastName FROM Authors WHERE LastName LIKE '_o%'

37 Deitel/Deitel, 8e. Java – Como programar Copyright © 2010 Pearson Education Slide 37

38 Deitel/Deitel, 8e. Java – Como programar Copyright © 2010 Pearson Education Slide 38 O resultado de uma consulta podem ser classificadas em ordem crescente ou decrescente através da cláusula ORDER BY ; Formato básico : SELECT nomeDaColuna1, nomeDaColuna2, … FROM nomeDaTabela ORDER BY coluna ASC / DESC ASC especifica a ordem ascendente (do mais baixo para o mais alto); DESC especifica ordem descendente (do mais alto para o mais baixo); coluna especifica a coluna em que a classificação é baseada.

39 Deitel/Deitel, 8e. Java – Como programar Copyright © 2010 Pearson Education Slide 39 Para obter a lista de autores em ordem crescente por sobrenome (): SELECT AuthorID, FirstName, LastName FROM Authors ORDER BY LastName ASC Para obter a lista de autores em ordem decrescente por sobrenome (): SELECT AuthorID, FirstName, LastName FROM Authors ORDER BY LastName DESC Múltiplas colunas podem ser utilizadas para classificação. ORDER BY coluna1 ASC / DESC, coluna2 ASC / DESC, … Classifica todas as linhas em ordem crescente por sobrenome, e depois por nome. SELECT AuthorID, FirstName, LastName FROM Authors ORDER BY LastName, FirstName

40 Deitel/Deitel, 8e. Java – Como programar Copyright © 2010 Pearson Education Slide 40

41 Deitel/Deitel, 8e. Java – Como programar Copyright © 2010 Pearson Education Slide 41

42 Deitel/Deitel, 8e. Java – Como programar Copyright © 2010 Pearson Education Slide 42

43 Deitel/Deitel, 8e. Java – Como programar Copyright © 2010 Pearson Education Slide 43 As cláusulas WHERE e ORDER BY podem ser combinadas para realizar consultas mais restritas, como em SELECT ISBN, Title, EditionNumber, Copyright FROM Titles WHERE Title LIKE '%How to Program' ORDER BY Title ASC que retorna o ISBN, Title, EditionNumber e Copyright de cada livro na tabela Titles que tem um Title terminando com "How to Program" e os classifica em ordem crescente por Title.

44 Deitel/Deitel, 8e. Java – Como programar Copyright © 2010 Pearson Education Slide 44

45 Deitel/Deitel, 8e. Java – Como programar Copyright © 2010 Pearson Education Slide 45 É prática-comum dividir dados relacionados em tabelas separadas para assegurar que um banco de dados não armazene dados de maneira redundante; Assim, é frequente mesclar dados de múltiplas tabelas em um único resultado. Isso é chamado de junção, ou join, de tabelas. Uma INNER JOIN mescla linhas de duas tabelas correspondendo valores em colunas que são comuns às tabelas. SELECT nomeDaColuna1, nomeDaColuna2, … FROM tabela1 INNER JOIN tabela2 ON tabela1. nomeDaColuna = tabela2. nomeDaColuna A cláusula ON especifica as colunas de cada tabela que são comparadas para determinar as linhas que são mescladas.

46 Deitel/Deitel, 8e. Java – Como programar Copyright © 2010 Pearson Education Slide 46 A consulta a seguir produz uma lista de autores acompanhados pelos ISBNs de livros escritos por cada autor: SELECT FirstName, LastName, ISBN FROM Authors INNER JOIN AuthorISBN ON Authors.AuthorID = AuthorISBN.AuthorID ORDER BY LastName, FirstName A sintaxe nomeDaTabela. nomeDaColuna na cláusula ON, chamada de nome qualificado, especifica as colunas de cada tabela que devem ser comparadas para mesclar as tabelas.

47 Deitel/Deitel, 8e. Java – Como programar Copyright © 2010 Pearson Education Slide 47

48 Deitel/Deitel, 8e. Java – Como programar Copyright © 2010 Pearson Education Slide 48

49 Deitel/Deitel, 8e. Java – Como programar Copyright © 2010 Pearson Education Slide 49

50 Deitel/Deitel, 8e. Java – Como programar Copyright © 2010 Pearson Education Slide 50 A instrução INSERT insere uma linha em uma tabela. INSERT INTO nomeDaTabela ( nomeDaColuna1, nomeDaColuna2, …, nomeDaColunaN ) VALUES ( valor1, valor2, …, valorN ) onde nomeDaTabela é a tabela na qual inserir a linha. nomeDaTabela é seguido por uma lista separada por vírgulas de nomes de coluna entre parênteses. Tal lista não necessária se a operação INSERT especificar um valor para cada coluna da tabela na ordem correta A lista de nomes de coluna é seguida pela palavra-chave de SQL VALUES e uma lista separada por vírgulas de valores entre parênteses. Os valores especificados aqui devem corresponder às colunas especificadas depois do nome da tabela tanto em ordem como em tipo.

51 Deitel/Deitel, 8e. Java – Como programar Copyright © 2010 Pearson Education Slide 51 A instrução INSERT INSERT INTO Authors (FirstName, LastName) VALUES ( 'Sue', 'Smith' ) A instrução acima indica que os valores são fornecidos para as colunas FirstName e LastName. Os valores correspondentes são 'Sue' e 'Smith ; Não especificamos um AuthorID nesse exemplo porque AuthorID é uma coluna autoincrementada na tabela Authors ; Nem todo sistema de gerenciamento de bancos de dados suporta colunas auto-incrementadas.

52 Deitel/Deitel, 8e. Java – Como programar Copyright © 2010 Pearson Education Slide 52

53 Deitel/Deitel, 8e. Java – Como programar Copyright © 2010 Pearson Education Slide 53

54 Deitel/Deitel, 8e. Java – Como programar Copyright © 2010 Pearson Education Slide 54

55 Deitel/Deitel, 8e. Java – Como programar Copyright © 2010 Pearson Education Slide 55 Uma instrução UPDATE modifica os dados em uma tabela. UPDATE nomeDaTabela SET nomeDaColuna1 = valor1, nomeDaColuna2 = valor2, …, nomeDaColunaN = valorN WHERE critérios onde nomeDaTabela é a tabela a atualizar. nomeDaTabela é seguido pela palavra-chave SET e uma lista separada por vírgulas de pares nome/valor de coluna, no formato nomeDaColuna = valor. A cláusula WHERE fornece critérios que determinam quais linhas atualizar; Exemplo: UPDATE Authors SET LastName = 'Jones' WHERE LastName = 'Smith' AND FirstName = 'Sue' indica que LastName receberá o valor Jones para a linha em que LastName é igual a Smith e FirstName é igual a Sue.

56 Deitel/Deitel, 8e. Java – Como programar Copyright © 2010 Pearson Education Slide 56

57 Deitel/Deitel, 8e. Java – Como programar Copyright © 2010 Pearson Education Slide 57 Uma instrução DELETE remove as linhas de uma tabela. DELETE FROM nomeDaTabela WHERE critérios onde nomeDaTabela é a tabela a partir da qual excluir; A cláusula WHERE opcional especifica os critérios utilizados para determinar quais linhas excluir. Se essa cláusula for omitida, todas as linhas da tabela serão excluídas. Exemplo: DELETE FROM Authors WHERE LastName = 'Jones' AND FirstName = 'Sue' exclui a linha para Sue Jones na tabela Authors.

58 Deitel/Deitel, 8e. Java – Como programar Copyright © 2010 Pearson Education Slide 58


Carregar ppt "Java Como Programar, 8/E Deitel/Deitel, 8e. Java – Como programar Copyright © 2010 Pearson Education Slide 1."

Apresentações semelhantes


Anúncios Google