51
Seminários Avançados Seminários Avançados I I Professor: Marcio Gonçalves; [email protected]; www.uniasselvi.com.br/marcio; SQL SQL

Seminários Avançados I Professor: Marcio Gonçalves; [email protected]; SQL

Embed Size (px)

Citation preview

Page 1: Seminários Avançados I Professor: Marcio Gonçalves; marcio@datainfo.inf.br;  SQL

Seminários Avançados ISeminários Avançados I

Professor: Marcio Gonçalves;

[email protected];www.uniasselvi.com.br/marcio;

SQLSQL

Page 2: Seminários Avançados I Professor: Marcio Gonçalves; marcio@datainfo.inf.br;  SQL

2

Conjunto de dados interrelacionados que objetivam atender as necessidades de um conjunto de usuários.

Inglês: DatabaseBD = Banco de Dados

Definição Banco de DadosDefinição Banco de Dados

Page 3: Seminários Avançados I Professor: Marcio Gonçalves; marcio@datainfo.inf.br;  SQL

3

Definição de SGBD’sDefinição de SGBD’s

Software que auxilia na definição, carga, recuperação, atualização e manutenção de um banco de dados.

Inglês: Database Management SystemSGBD = Sistema de Gerenciamento de BD

Page 4: Seminários Avançados I Professor: Marcio Gonçalves; marcio@datainfo.inf.br;  SQL

4

Linguagens Existentes em SGBD’sLinguagens Existentes em SGBD’s

DDL - “Data Definition Language”- Linguagem usada para descrever o modelo lógico.

DML - “Data Manipulation Language”- Linguagem usada para escrever instruções que trabalham sobre a base de dados.

Page 5: Seminários Avançados I Professor: Marcio Gonçalves; marcio@datainfo.inf.br;  SQL

5

Funções Envolvidas com SGBD’sFunções Envolvidas com SGBD’s

DBA - Administrador do Banco de Dados- Responsável pela parte física.

AD - Administrador de Dados- Responsável pela parte lógica.

Page 6: Seminários Avançados I Professor: Marcio Gonçalves; marcio@datainfo.inf.br;  SQL

6

Funções Envolvidas com SGBD’sFunções Envolvidas com SGBD’s

Projetista de Banco de Dados- Constrói partes do modelo da base de dados.

Analista de Sistemas- Define e projeta aplicações sobre a base de dados.

Page 7: Seminários Avançados I Professor: Marcio Gonçalves; marcio@datainfo.inf.br;  SQL

7

Funções Envolvidas com SGBD’sFunções Envolvidas com SGBD’s

Programador- Constrói aplicações usando os modelos lógicos existentes.

Usuários Finais- Acessam a base de dados através de aplicações.

Page 8: Seminários Avançados I Professor: Marcio Gonçalves; marcio@datainfo.inf.br;  SQL

8

Processamento sem BDProcessamento sem BD

Exemplo:

Page 9: Seminários Avançados I Professor: Marcio Gonçalves; marcio@datainfo.inf.br;  SQL

9

Processamento sem BDProcessamento sem BD

Dados de diferentes aplicações não estão integrados.

Dados estão projetados para atender uma aplicação específica.

Page 10: Seminários Avançados I Professor: Marcio Gonçalves; marcio@datainfo.inf.br;  SQL

10

Processamento sem BDProcessamento sem BD

O mesmo objeto da realidade é múltiplas vezes representado nas várias aplicações.

Redundância não controlada dos dados.

Page 11: Seminários Avançados I Professor: Marcio Gonçalves; marcio@datainfo.inf.br;  SQL

11

Processamento sem BDProcessamento sem BD

A redundância ocasiona em inconsistência dos dados; e

Na redigitação de informações.

Page 12: Seminários Avançados I Professor: Marcio Gonçalves; marcio@datainfo.inf.br;  SQL

12

Processamento com BDProcessamento com BD

Exemplo:

Page 13: Seminários Avançados I Professor: Marcio Gonçalves; marcio@datainfo.inf.br;  SQL

13

Processamento com BDProcessamento com BD

Cada informação é armazenada uma única vez.

Podem ocorrer eventuais redundâncias controladas pelo sistema, mas invisíveis para o usuário.

Page 14: Seminários Avançados I Professor: Marcio Gonçalves; marcio@datainfo.inf.br;  SQL

14

Propostas dos Bancos de DadosPropostas dos Bancos de Dados

Prover independência das aplicações em relação aos dados.

O SGBD é quem oferece o isolamento das aplicações em relação aos dados.

Page 15: Seminários Avançados I Professor: Marcio Gonçalves; marcio@datainfo.inf.br;  SQL

15

Propostas dos Bancos de DadosPropostas dos Bancos de Dados

As aplicações devem ver os dados de forma abstrata, independente de detalhes físicos de implementação.

Page 16: Seminários Avançados I Professor: Marcio Gonçalves; marcio@datainfo.inf.br;  SQL

16

Arquiteturas de Hardware/SoftwareArquiteturas de Hardware/Software

Modelos de Plataformas para Banco de Dados: - Mono-Usuário- Centralizada- Cliente/Servidor

Page 17: Seminários Avançados I Professor: Marcio Gonçalves; marcio@datainfo.inf.br;  SQL

17

Arquiteturas de Hardware/SoftwareArquiteturas de Hardware/Software

Mono-Usuário- O banco de dados encontra-

se no mesmo computador em que são executadas as aplicações.

- Não há múltiplos usuários.- Típico de computadores

pessoais.

Page 18: Seminários Avançados I Professor: Marcio Gonçalves; marcio@datainfo.inf.br;  SQL

18

Arquiteturas de Hardware/SoftwareArquiteturas de Hardware/Software

Esquema gráfico de uma arquitetura Mono-Usuário:

Page 19: Seminários Avançados I Professor: Marcio Gonçalves; marcio@datainfo.inf.br;  SQL

19

Arquiteturas de Hardware/SoftwareArquiteturas de Hardware/Software

Centralizada- O banco de dados encontra-se no mesmo computador em que são executadas as aplicações.

- Múltiplos usuários acessam através de terminais “burros”.

- Arquitetura típica de “mainframe”.

Page 20: Seminários Avançados I Professor: Marcio Gonçalves; marcio@datainfo.inf.br;  SQL

20

Arquiteturas de Hardware/SoftwareArquiteturas de Hardware/Software

Esquema gráfico de uma arquitetura Centralizada:

Page 21: Seminários Avançados I Professor: Marcio Gonçalves; marcio@datainfo.inf.br;  SQL

21

Arquiteturas de Hardware/SoftwareArquiteturas de Hardware/Software

Cliente/Servidor- Múltiplos usuários.- Servidor de banco de dados

(um computador contém todos os arquivos do banco mais o SGBD).

- Os clientes executam as aplicações.

Page 22: Seminários Avançados I Professor: Marcio Gonçalves; marcio@datainfo.inf.br;  SQL

22

Arquiteturas de Hardware/SoftwareArquiteturas de Hardware/Software

Cliente/Servidor- Trafegam na rede comandos de alto nível para o SGBD.

- Arquitetura mais utilizada.

Page 23: Seminários Avançados I Professor: Marcio Gonçalves; marcio@datainfo.inf.br;  SQL

Cada pessoa tem que construir a sua história.

Page 24: Seminários Avançados I Professor: Marcio Gonçalves; marcio@datainfo.inf.br;  SQL

24

Histórico de Banco de DadosHistórico de Banco de Dados

O conceito surgiu da dificuldade das organizações em manter os “sistemas legados”.

Os primeiros sistemas de banco de dados chegaram no fim da década de 60.

Page 25: Seminários Avançados I Professor: Marcio Gonçalves; marcio@datainfo.inf.br;  SQL

25

Histórico de Banco de DadosHistórico de Banco de Dados

Modelos de Sistemas de Banco de Dados:- Hierárquico- Rede- Relacionais- Orientado a Objetos

Page 26: Seminários Avançados I Professor: Marcio Gonçalves; marcio@datainfo.inf.br;  SQL

26

Modelo HierárquicoModelo Hierárquico

Largamente utilizado durante a década de 70 e início da década de 80.

A IBM teve o IMS (DL/1) um dos bancos de dados hierárquicos mais conhecidos.

Outros: System 2000.

Page 27: Seminários Avançados I Professor: Marcio Gonçalves; marcio@datainfo.inf.br;  SQL

27

Modelo HierárquicoModelo Hierárquico

Um BD hierárquico é composto de árvores de registros.

Entre os diferentes tipos de registros (segmentos) existem as ligações pai-filho.

Um determinado registro somente pode possuir um registro pai.

Page 28: Seminários Avançados I Professor: Marcio Gonçalves; marcio@datainfo.inf.br;  SQL

28

Modelo HierárquicoModelo Hierárquico

Um registro (segmento) pai pode possuir filhos de diferentes tipos.

A hierarquia pode estender-se por diversos níveis.

Page 29: Seminários Avançados I Professor: Marcio Gonçalves; marcio@datainfo.inf.br;  SQL

29

Modelo HierárquicoModelo Hierárquico

Este modelo somente era adequado para problemas hierárquicos.

Em caso de problemas não hierárquicos criava a redundância de dados.

Page 30: Seminários Avançados I Professor: Marcio Gonçalves; marcio@datainfo.inf.br;  SQL

30

Modelo HierárquicoModelo Hierárquico

O modelador tinha que escolher um tipo de registro pai com base em considerações de performance.

Em caso de problemas não hierárquicos cria anomalias nas instruções de modificação da base de dados.

Page 31: Seminários Avançados I Professor: Marcio Gonçalves; marcio@datainfo.inf.br;  SQL

31

Modelo em RedeModelo em Rede

Grande família de SGBD’s baseada em um padrão CODASYL e mais tarde no ANSI.

O IDMS da Cullinet Software tornou-se um dos mais conhecidos.

Outros: IDS/2, RMS (Digital)

Page 32: Seminários Avançados I Professor: Marcio Gonçalves; marcio@datainfo.inf.br;  SQL

32

Modelo em RedeModelo em Rede

Em um BD em Rede um determinado registro pode possuir diversos registros pai.

A única restrição é que em um tipo de ligação um registro somente pode participar uma vez.

Page 33: Seminários Avançados I Professor: Marcio Gonçalves; marcio@datainfo.inf.br;  SQL

33

Modelo em RedeModelo em Rede

Na abordagem em rede não aparecem as anomalias de manutenção da base de dados que aparecem em modelos hierárquicos.

A abordagem em rede não está restrita somente a atender problemas hierárquicos.

Page 34: Seminários Avançados I Professor: Marcio Gonçalves; marcio@datainfo.inf.br;  SQL

34

Modelo em RedeModelo em Rede

O programador tem que conhecer as ligações existentes na base de dados.

A independência de dados fica prejudicada, pois a criação e eliminação de ligações implica em alteração dos programas.

Page 35: Seminários Avançados I Professor: Marcio Gonçalves; marcio@datainfo.inf.br;  SQL

35

Modelo RelacionalModelo Relacional

Surgiu dos trabalhos teóricos de Edgard F. Codd (IBM) procurando um modelo lógico independente de detalhes de implementação.

Baseado na álgebra relacional.

Page 36: Seminários Avançados I Professor: Marcio Gonçalves; marcio@datainfo.inf.br;  SQL

36

Modelo RelacionalModelo Relacional

Pesquisas e construções de protótipos iniciaram em meados da década de 70.

Como primeiros produtos surgiram o System R (IBM) e o INGRES (Universidade da Califórnia).

Page 37: Seminários Avançados I Professor: Marcio Gonçalves; marcio@datainfo.inf.br;  SQL

37

Modelo RelacionalModelo Relacional

Produtos conhecidos atualmente:

- ORACLE, DB2, SYBASE, SQL SERVER, INTERBASE, MYSQL, INFORMIX, POSTGRES, etc.

Page 38: Seminários Avançados I Professor: Marcio Gonçalves; marcio@datainfo.inf.br;  SQL

38

Modelo RelacionalModelo Relacional

Sistema relacional é aquele no qual os dados são percebidos pelos usuários como tabelas.

As ligações entre linhas de diferentes tabelas são feitas através do uso de valores de atributos.

Page 39: Seminários Avançados I Professor: Marcio Gonçalves; marcio@datainfo.inf.br;  SQL

39

Modelo RelacionalModelo Relacional

No modelo relacional a independência de dados aumenta, pois programas não são influenciados pela existência ou não de caminhos de acesso.

Page 40: Seminários Avançados I Professor: Marcio Gonçalves; marcio@datainfo.inf.br;  SQL

40

Modelo Orientado à ObjetosModelo Orientado à Objetos

Os bancos de dados orientados a objeto iniciaram-se primeiramente em projetos de pesquisa nas universidades e centros de pesquisa (início dos anos 80).

Existem atualmente ainda poucos produtos no mercado.

Page 41: Seminários Avançados I Professor: Marcio Gonçalves; marcio@datainfo.inf.br;  SQL

41

Modelo Orientado à ObjetosModelo Orientado à Objetos

Os bancos de dados orientados a objetos tem como objetivo integrar a orientação a objeto com as aptidões dos bancos de dados.

Disponibilizando mais abstração da estrutura de dados do que os bancos de dados convencionais.

Page 42: Seminários Avançados I Professor: Marcio Gonçalves; marcio@datainfo.inf.br;  SQL

42

Modelo Orientado à ObjetosModelo Orientado à Objetos

Os bancos de dados orientados a objetos atualmente estão direcionados a disponibilizar soluções para apoiar aplicações que utilizam tipos de dados complexos (como multimídia e desenho).

Page 43: Seminários Avançados I Professor: Marcio Gonçalves; marcio@datainfo.inf.br;  SQL

43

Modelo Orientado à ObjetosModelo Orientado à Objetos

Isto deve-se ao fato que os bancos de dados convencionais (no momento) encontram algumas dificuldades para tratar estes tipos de dados.

Page 44: Seminários Avançados I Professor: Marcio Gonçalves; marcio@datainfo.inf.br;  SQL

Quanto mais cultura melhor.

Page 45: Seminários Avançados I Professor: Marcio Gonçalves; marcio@datainfo.inf.br;  SQL

45

Banco de Dados RelacionalBanco de Dados Relacional

Os bancos de dados relacionais possuem regras básicas de integridade que permitem o controle de preenchimento das colunas das tabelas existentes no banco de dados.

Page 46: Seminários Avançados I Professor: Marcio Gonçalves; marcio@datainfo.inf.br;  SQL

46

Regras de IntegridadeRegras de Integridade

- Chave Primária: coluna ou colunas cujos valores diferenciam uma linha das demais para todos os possíveis valores de uma tabela.

- O valor da chave primária não pode ser vazio.

Page 47: Seminários Avançados I Professor: Marcio Gonçalves; marcio@datainfo.inf.br;  SQL

47

Regras de IntegridadeRegras de Integridade

- Obrigatoriedade / Opcionalidade: as informações de cada coluna da tabela podem ser opcionais ou obrigatórias.

- A obrigatoriedade indica que na inclusão de novas linhas ou na atualização de campos, os campos obrigatórios deverão estar preenchidos.

Page 48: Seminários Avançados I Professor: Marcio Gonçalves; marcio@datainfo.inf.br;  SQL

48

Regras de IntegridadeRegras de Integridade

- Validação a nível de campo: os valores de um determinado campo podem ser predefinidos (domínio).

- Valores entre dois ou mais campos também podem ser comparados em uma mesma linha.

Page 49: Seminários Avançados I Professor: Marcio Gonçalves; marcio@datainfo.inf.br;  SQL

49

Regras de IntegridadeRegras de Integridade- Chave Candidata: coluna ou

colunas de uma tabela, cujos valores diferenciam uma linha das demais para todos os possíveis valores de uma tabela. Porém, por questões funcionais não foram escolhidas para chave primária.

Page 50: Seminários Avançados I Professor: Marcio Gonçalves; marcio@datainfo.inf.br;  SQL

50

Regras de IntegridadeRegras de Integridade

- Chave Estrangeira: coluna ou colunas de uma tabela, cujos valores devem aparecer na chave primária de uma tabela (de outra tabela ou da mesma).

Page 51: Seminários Avançados I Professor: Marcio Gonçalves; marcio@datainfo.inf.br;  SQL

51

Modelagem de DadosModelagem de Dados

Modelo de Clientes e Pedidos

Cliente Pedido

Item Peça