View
1.603
Download
4
Category
Preview:
Citation preview
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/
Recommended