banco de dados introdução

51
Banco de Dados – Introdução por: Mário Sergio da Silva

Upload: mario-sergio

Post on 15-Apr-2017

1.603 views

Category:

Technology


4 download

TRANSCRIPT

Page 1: Banco de dados introdução

Banco de Dados – Introdução por: Mário Sergio da Silva

Page 2: Banco de dados introdução

Banco de Dados - Introdução

Prof. Mário Sergio da Silva [email protected] Lattes: http://lattes.cnpq.br/1161794053211014

Atualizado em Maio/2016

Este material é uma adaptação didática que utiliza ilustrações e textos retirados de uma seleção criteriosa de publicações disponíveis livremente na internet, juntamente com conteúdo inédito. (bibliografia disponível no final dos slides)

Page 3: Banco de dados introdução

Conteúdo Motivação: Importância, exemplos

Conceitos Básicos: Dados, Informação, Banco de Dados

Um pouco de história

Sistemas de Arquivos e Sistemas de Banco de Dados

SGDB´s: Definição, Características, Arquitetura em 3 Níveis, Metadados e Instâncias

Modelos de Banco de Dados: Hierárquico, Redes, Relacional, OO

Banco de Dados Relacional: Projeto de Banco de Dados: Modelagens: Conceitual, Lógica, Física

Exemplo de Projeto: “Sistema Bancário Simplificado”

Page 4: Banco de dados introdução

4

O que NÃO é um banco de dados

Prof. Mário Sergio

Page 5: Banco de dados introdução

5

Por que estudar BD?

A importância dos dados para a sociedade moderna:

o Vivemos na Sociedade da Informação. Onde as

informações são guardadas mesmo ???

o Grandes empresas/organizações produzem mais dados em uma semana do que muitas pessoas irão ler em toda uma vida!

o Os dados armazenados digitalmente sofreram um aumento drástico nos últimos 40 anos e continuam a crescer cada vez mais....

Prof. Mário Sergio

Page 6: Banco de dados introdução

6

Por que estudar BD? Os Bancos de Dados fazem parte do

nosso dia-a-dia:

Prof. Mário Sergio

Uma simples Agenda telefônica

Controle Comercial (vendas)

Operação bancária

Reserva de hotel

Matrícula em uma disciplina da universidade

Cadastro na vídeo locadora (nem existe mais !)

Page 7: Banco de dados introdução

7

Conceitos básicos

Dado: Fato do mundo real que está registrado

exemplos: data, valor e cliente de um pedido de venda. (Não faz sentido sozinho)

Informação: Fato útil que pode ser extraído direta ou indiretamente a partir dos dados

exemplos: total de vendas mensal por cliente/região. (Resultado de vários dados para fazer sentido, gerar conhecimento.)

Prof. Mário Sergio

Page 8: Banco de dados introdução

8

Conceitos básicos Dados X Informação

Dado: A tempera hoje é de 38 graus Celsius. Informação: Está muito quente hoje.

Prof. Mário Sergio

Page 9: Banco de dados introdução

9

Conceitos básicos Agora sim: O que É banco de dados

“Bancos de dados, ou bases de dados (em Portugal), são coleções de fatos (dados) que se relacionam de forma que crie um sentido.

São de vital importância para empresas, e se tornaram a principal peça dos sistemas de informação. “

Prof. Mário Sergio

Page 10: Banco de dados introdução

10

Conceitos básicos Outra Definição:

Banco de Dados (BD): coleção de dados inter-relacionados e persistentes que representa um sub-conjunto dos fatos presentes em um domínio de aplicação (mini-mundo).

Prof. Mário Sergio

Simplificação do Mundo Real

Page 11: Banco de dados introdução

11

Conceitos básicos Mais Definições:

(Slides prof Wanderson Dantas)

Prof. Mário Sergio

Page 12: Banco de dados introdução

12

Conceitos básicos Um pouco de historia: Mídias de Armazenamento

Prof. Mário Sergio

Page 13: Banco de dados introdução

13

Conceitos básicos Um pouco de historia: Modelo de Armazenamento/Dados

Prof. Mário Sergio

Page 14: Banco de dados introdução

14

Conceitos básicos Um pouco de historia: Sistemas e Modelo de Dados

Prof. Mário Sergio

Um marco na história dos bancos de dados, largamente utilizado

até os dias atuais.

Page 15: Banco de dados introdução

15

Conceitos básicos Sistemas de arquivos

Sistemas de Arquivos (armazenados em pastas, no disco):

No começo, as aplicações acessavam diretamente os sistemas de arquivos do Sistema Operacional para armazenar seus dados.

Prof. Mário Sergio

Page 16: Banco de dados introdução

16

Conceitos básicos Sistemas de arquivos Exemplo

Em uma fábrica com os dados em sistemas de arquivos:

Sistema para Setor de Vendas

Sistema para Setor de Produção

Sistema para Setor de Engenharia

Arquivos de vendas

Arquivos de engenharia

Arquivos de produção

Dados repetidos aparecem em todos os arquivos da fábrica

Teclado TC60 R$ 20,00 Monitor 15´ M60 R$ 150,00 Mouse MS09 R$ 10,00

Teclado TC60 10/11/2000 Monitor 15´ M60 20/11/2000 Mouse MS09 09/11/2000

Teclado TC60 teclado.gif Monitor 15´ M60 monitor.gif Mouse MS09 mouse.gif

[baseado em Heuser] Prof. Mário Sergio

Page 17: Banco de dados introdução

17

Conceitos básicos Sistemas de arquivos Desvantagens

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

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

Redundância não controlada de dados, Redundância leva a:

O Mesmo dado é representado várias vezes na base de dados Exemplo: teclado, monitor e mouse inconsistência dos dados re-digitação de informações dificuldade de extração de informações

Prof. Mário Sergio

Page 18: Banco de dados introdução

18

Acesso • Bloqueio de arquivo e registro, não permitindo acesso por mais de um usuário por vez • Falta de índices para acesso rápido

Tolerância a falhas

• Falta de luz, erro de disco, interrupção de funcionamento, etc • Cópias? restauração do estado anterior?

Segurança

• Acesso idêntico para todos os usuários

Outros problemas: • Número máximo de arquivos • Tamanho de memória • Limitações do tipo de arquivo

Prof. Mário Sergio

Conceitos básicos Sistemas de arquivos Desvantagens

Page 19: Banco de dados introdução

19

Um SGBD (Sistema Gerenciador de Banco de Dados) consiste em uma coleção de dados inter-relacionados e em uma camada de software para acessá-los.

Garante a separação entre programa (aplicativo) e Dados

Prof. Mário Sergio

SGBD – Sistema Gerencial de Banco de Dados

Page 20: Banco de dados introdução

20

SGBD – Sistema Gerencial de Banco de Dados Sistema de Arquivos X Sistema de Banco de Dados

Prof. Mário Sergio (ref: Slides prof Wanderson Dantas)

Page 21: Banco de dados introdução

21

SGBD – Sistema Gerencial de Banco de Dados Características Natureza auto descritiva: possui um catálogo (metadados),

onde todas as informações sobre a estrutura dos dados ficam armazenadas.

Níveis de abstração: Isola os usuários dos detalhes mais internos

do banco de dados (abstração de dados). (ver slide 21)

Oferecer Múltiplas visões dos mesmos dados.

Prover Independência de dados às aplicações (estrutura física de

armazenamento e à estratégia de acesso).

Garantir a integridade dos dados e o controle de concorrência: acesso por diversos usuários simultâneamente.

Vantagens: Resolve todas as desvantagens apontadas nos Sistemas de Arquivos (slides 15, 16)

Page 22: Banco de dados introdução

22

BD de uma fábrica: Sistema para

Setor de Vendas Sistema para

Setor de Produção Sistema para

Setor de Engenharia

Banco de dados

Teclado TC60 Monitor 15´ M60 Mouse MS09

R$ 20,00 R$ 150,00 R$ 10,00 10/11/2000

20/11/2000 09/11/2000

teclado.gif monitor.gif mouse.gif

SGBD Software que permite a criação e gerência da base de dados

Exemplos destes Softwares: • Livres:

• FireBird, PostgreSQL e MySQL

• Comerciais (pagos) • Oracle, DB2 e SQLServer

Prof. Mário Sergio

SGBD – Sistema Gerencial de Banco de Dados Visão Geral

Page 23: Banco de dados introdução

23

SGBD – Sistema Gerencial de Banco de Dados Arquitetura: Esquema em 3 Níveis

Page 24: Banco de dados introdução

24

SGBD – Sistema Gerencial de Banco de Dados Metadados e Instância

Banco de dados = meta-dados + instância de dado

Meta-dados - Dicionário de Dados (mudanças ocasionais) • Esquemas (estrutura) da base de dados: Tabelas, colunas, relações e

chaves • Acessado através da linguagem de definição de dados

Instância de dado (muda constantemente)

• Dado propriamente: Registros e campos (colunas) • Acessado através da linguagem de manipulação de dados

Prof. Mário Sergio

Page 25: Banco de dados introdução

25

SGBD – Sistema Gerencial de Banco de Dados Metadados e Instância

Prof. Mário Sergio

Page 26: Banco de dados introdução

26

Modelos de Banco de Dados (tipos de SGDB)

Prof. Mário Sergio

Modelo Hierárquico

Modelo em Redes

Modelo Relacional

Modelo Orientado a Objetos

Page 27: Banco de dados introdução

27 Prof. Mário Sergio

Modelos de Banco de Dados (tipos de SGDB) Modelo Hierárquico

Page 28: Banco de dados introdução

28 Prof. Mário Sergio

Modelos de Banco de Dados (tipos de SGDB) Modelo em Rede

Page 29: Banco de dados introdução

29 Prof. Mário Sergio

Modelos de Banco de Dados (tipos de SGDB) Modelo Relacional

Page 30: Banco de dados introdução

30 Prof. Mário Sergio

Modelos de Banco de Dados (tipos de SGDB) Modelo Relacional

• O modelo relacional de dados é uma maneira de conceber a organização de um banco de dados como uma coleção de tabelas e associações entre outras tabelas. Por exemplo:

• Cada linha é um registro e tem um conteúdo único na tabela.

• Cada coluna é um campo, com um nome que representa o tipo de dados contido na coluna.

Page 31: Banco de dados introdução

31 Prof. Mário Sergio

Modelos de Banco de Dados (tipos de SGDB) Modelo Relacional

• Um exemplo de projeto lógico de banco de dados para uma empresa de Eventos:

Page 32: Banco de dados introdução

32 Prof. Mário Sergio

Modelos de Banco de Dados (tipos de SGDB) Modelo Orientado a Objetos (BD OO)

• BD com conceitos de Herança, agregação e composição

Obs: é utilizado em segmentos específicos, que exigem modelagem de dados complexos (geográficos, espaciais)

Page 33: Banco de dados introdução

Projeto de Banco de Dados Definições básicas

33 33 Prof. Mário Sergio 33

Page 34: Banco de dados introdução

Projeto de Banco de Dados

34 34

Modelagem de Dados

Prof. Mário Sergio 34

Identificação dos Requisitos: entrevistas

com as pessoas envolvidas no processo

Page 35: Banco de dados introdução

Projeto de Banco de Dados Modelagem de Dados

O Projeto de banco de dados visa entender as necessidades do usuário, modelar o minimundo e construir o banco de dados, de maneira a garantir uma correta implantação e facilitar sua manutenção. Modelagem de Dados (modelo de dados) é a maneira utilizada para descrever, em diferentes níveis de abstração, a estrutura e os tipos de dados que estão armazenadas em um banco de dado. No projeto de banco de dados a modelagem ocorre em três fases:

Modelo conceitual (MER) Modelo lógico Modelo físico

35 35 Prof. Mário Sergio 35 Aviso: não confundir com modelos (tipos de SGBD) (slide 26)

Page 36: Banco de dados introdução

Projeto de Banco de Dados Modelagem de Dados

Essas fases possuem Níveis de Abstração distintos:

36 36 Prof. Mário Sergio 36

Um modelo de dados que servirá para explicar a um usuário leigo em informática qual é a organização de um banco de dados não conterá detalhes sobre técnicos a respeito da dos dados, por isso é mais abstrato. Já um modelo de dados usado por um técnico para otimizar a performance de acesso ao banco de dados conterá mais detalhes de como as informações estão organizadas internamente e, portanto, será menos abstrato.

Aviso: não confundir com os 3 níveis de arquitetura (slide 23)

Page 37: Banco de dados introdução

Projeto de Banco de Dados Modelagem de Dados

A modelagem pode ser descrita em de duas formas, exemplos:

◦Linguagem Gráfica: Linguagem Textual:

A representação do modelo de dados por uma linguagem de modelagem de dados recebe o nome de esquema de banco de dados: Esquema Textual ou Esquema Gráfico

37 37 37

Médico Paciente Consulta

CRM nome

Page 38: Banco de dados introdução

A modelagem descreve a estrutura dos dados, assim:

o No caso de um sistema de controle acadêmico, por exemplo, modelo de dados informa que o banco de dados armazena dados sobre alunos e que, para cada aluno, são armazenados seu número, Nome, idade, etc...

o Observe que o modelo de dados não informa quais os alunos (instâncias) estão armazenados no banco de dados, mas apenas que o banco de dados contém informações sobre alunos, disciplinas, Pré-Requisitos e Histórico Escolar.

38 38 Prof. Mário Sergio 38

Projeto de Banco de Dados Modelagem de Dados

Page 39: Banco de dados introdução

39

Mundo Real

Modelo Conceitual (modelo abstrato dos dados) – Mini-mundo

Independente do modelo de dados Independente do

SGBD específico

Modelo Lógico (estrutura dos dados)

Dependente do modelo de dados Independente do

SGBD específico

Tabelas, Campos, Relacionamentos

Modelo Físico Dependente do

modelo de dados Dependente do SGBD

específico

Modelagem física dos dados Estruturas de hardware/Software Oracle, Mysql, Postgree...

Médico Paciente Consulta

CRM nome

Médico (CRM, Nome)

Sistema Médico

Prof. Mário Sergio

Projeto de Banco de Dados Modelagem de Dados – Visão Geral

Page 40: Banco de dados introdução

40 40

O Modelo Conceitual descreve a estrutura de um Banco de Dados em uma visão macro do banco de dados.

É uma descrição de alto nível da estrutura do BD. Também chamado de Modelo Entidade-Relacionamento (MER)

Levantamento do “mini-mundo” com a participação de pessoas não técnicas, clientes e gestores do negócio, utiliza para isso o conceito de Entidade e Relacionamento. Independente de SGBD: não descreve COMO os dados estão armazenados no SGBD. E sim, descreve QUAIS dados estão armazenados;

A técnica mais difundida é o Diagrama Entidade-Relacionamento (DER);

Prof. Mário Sergio 40

Projeto de Banco de Dados Modelagem de Dados: Conceitual MER (Alto Nível)

Page 41: Banco de dados introdução

41 41

É o modelo com o maior nível de abstração. O DER apresenta os elementos a seguir: entidades, relacionamentos e atributos.

Prof. Mário Sergio 41

DER Vendas

Projeto de Banco de Dados Modelagem de Dados: Conceitual MER (Alto Nível)

Atributo Identificador (chave)

Page 42: Banco de dados introdução

42 42

O Modelo Lógico descreve mais detalhes sobre como os dados serão devem ser armazenados (metadados). Nesta fase, as entidades e relacionamentos do modelo conceitual são transformadas em tabelas (relações).

Descreve a estrutura dos atributos, que nesta fase passam a ser chamados de campos/colunas. Especificando tipo, tamanho, e restrições de integridade (de unicidade, obrigatoriedade, referencial) dos campos: Ex: codigo inteiro; descricao caractere(20) not null;

Ainda é possível ser Independente de SGBD *(discutível);

No final, o resultado de um projeto lógico é um esquema do banco de dados, podendo ser textual ou parecido com o modelo conceitual, porém com mais detalhes de banco de dados, e não apenas conceitos.

Prof. Mário Sergio 42

Projeto de Banco de Dados Modelagem de Dados: Lógico (Nível Intermediário)

Page 43: Banco de dados introdução

43 43

O modelo lógico apresenta um nível intermediário de abstração. O diagrama lógico apresenta os seguintes elementos: tabelas, campos, chaves primárias e estrangeiras, entre outros.

Prof. Mário Sergio 43

Projeto de Banco de Dados Modelagem de Dados: Lógico (Nível Intermediário)

Page 44: Banco de dados introdução

44 44

o É a parte final, de mais baixo nível, do projeto de banco de dados, define-se detalhes técnicos da implementação do banco de dados: infra estrutura física (hardware), Sistema Operacional, índices de busca etc.

o É fortemente dependente do SGBD que será utilizado,

nesta fase há a definição do SGDB a ser utilizado: Oracle, SQLServer, MySQL, Postgress, etc.

o Utilização de scripts (DDL, DCL), para definição dos metadados, incluindo diretivas de conexão e permissão de acesso de usuários.

o A otimização de desempenho do banco de dados é trabalhada

nesta fase do projeto.

Prof. Mário Sergio 44

Projeto de Banco de Dados Modelagem de Dados: Físico (Baixo Nível)

Page 45: Banco de dados introdução

45 45

No modelo físico se faz a tradução do modelo lógico utilizando a Linguagem de Definição de dados DDL, e pode conter instruções específicas de cada fabricante de SGDB. Exemplos:

Prof. Mário Sergio 45

Projeto de Banco de Dados Modelagem de Dados: Físico (Baixo Nível)

Page 46: Banco de dados introdução

46

Projeto de Banco de Dados Exemplo: Modelagem de Sistema Bancário

Prof. Mário Sergio

Conceitual

Lógico

CREATE TABLE CLIENTE ( cliente_cod char(3) PRIMARY KEY, nome Varchar(200), cidade Varchar100), rua Varchar (200) ); CREATE TABLE CONTA ( conta_num char(3) PRIMARY KEY, agencia Varchar(50), cliente_cod char(3), FOREIGN KEY(cliente_cod) REFERENCES CLIENTE (cliente_cod) ); CREATE TABLE TRANSACAO ( valor Numeric (8,2), Operacao Integer, conta_num char(3) FOREIGN KEY(conta_num) REFERENCES CONTA (conta_num) )

Físico

Page 47: Banco de dados introdução

47

conta_num valor operacao 900 55.02 1 556 1000.50 1 648 4568.00 1 247 5366.00 1 648 2568.00 -1 801 10533.85 1 900 10.22 -1 801 3000.00 -1

Tabela TRANSACAO

Tabela CLIENTE cliente_cod nome rua cidade 015 José Figueiras Campinas021 João Laranjeiras Campinas 037 Antônio Ipê São Paulo

cliente_cod conta_num agencia 015 900 1247 021 556 1052 021 648 1247 037 247 1052 037 801 1052

Tabela CONTA

Projeto de Banco de Dados Exemplo: Dados armazenados (instâncias)

Tabelas

Registros (Instâncias)

Colunas/Campos OBS: Ainda poderíamos melhorar, criando uma tabela para eliminar a redundância de dados presente na tabela CLIENTE

Prof. Mário Sergio

Page 48: Banco de dados introdução

48

nome rua cidade conta valor José Figueiras Campinas 900 55,02 João Laranjeiras Campinas 556 1.000,50 João Laranjeiras Campinas 648 4.568,00 Antônio Ipê São Paulo 247 5.366,00 João Laranjeiras Campinas 648 -2.568,00 Antônio Ipê São Paulo 801 10.533,85 José Figueiras Campinas 900 -10,22 Antônio Ipê São Paulo 801 -3.000,00

Projeto de Banco de Dados Exemplo: uma visão de dados do usuário

Transações bancárias de crédito e débito:

Prof. Mário Sergio

Page 49: Banco de dados introdução

49

Exercícios

1. Defina: Dados, informação e Banco de Dados.

2. Cite exemplos de Banco de Dados não computacionais.

3. O que é SGDB, e quais são suas vantagens em relação aos sistemas de arquivos ?

4. Quais são as fases em um projeto de Banco de Dados ? explique cada uma delas

5. Defina: Metadados e Instância

Prof. Mário Sergio

Page 50: Banco de dados introdução

50

Bibliografia

Elmasri & Navathe – Fundamentos de Bancos de Dados

Carlos Alberto Heuser – Projeto de Banco de Dados

Korth e Silberchatz – Sistema de Bancos de Dados

Baseado nos Slides de Vania Bogorny

Prof. Mário Sergio

Page 51: Banco de dados introdução

51

Links sobre Linguagens/Banco de Dados

http://www.dialetodigital.com/blog/conteudos-programacao/