Banco de dados introdução

Post on 15-Apr-2017

1.603 views 4 download

Transcript of Banco de dados introdução

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

Banco de Dados - Introdução

Prof. Mário Sergio da Silva mariosergio30@gmail.com 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)

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”

4

O que NÃO é um banco de dados

Prof. Mário Sergio

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

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 !)

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

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

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

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

11

Conceitos básicos Mais Definições:

(Slides prof Wanderson Dantas)

Prof. Mário Sergio

12

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

Prof. Mário Sergio

13

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

Prof. Mário Sergio

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.

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

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

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

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

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

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)

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)

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

23

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

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

25

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

Prof. Mário Sergio

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

27 Prof. Mário Sergio

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

28 Prof. Mário Sergio

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

29 Prof. Mário Sergio

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

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.

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:

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)

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

33 33 Prof. Mário Sergio 33

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

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)

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)

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

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

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

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)

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)

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)

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)

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)

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)

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

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

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

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

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

51

Links sobre Linguagens/Banco de Dados

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