Allynson Praxedes Soares [email protected] Java Avançado Introdução a Banco de dados.

28
Allynson Praxedes Soares [email protected] Java Avançado Introdução a Banco de dados

Transcript of Allynson Praxedes Soares [email protected] Java Avançado Introdução a Banco de dados.

Page 1: Allynson Praxedes Soares aps2@cin.ufpe.br Java Avançado Introdução a Banco de dados.

Allynson Praxedes Soares

[email protected]

Java Avançado

Introdução a Banco de dados

Page 2: Allynson Praxedes Soares aps2@cin.ufpe.br Java Avançado Introdução a Banco de dados.

Allynson Praxedes Soares – [email protected]

Conceitos Iniciais

• DADOS– Fatos registrados

• INFORMAÇÃO– O que pode ser inferido dos dados

• CONHECIMENTO– Informação que é integrada e entendida por alguém

Page 3: Allynson Praxedes Soares aps2@cin.ufpe.br Java Avançado Introdução a Banco de dados.

Allynson Praxedes Soares – [email protected]

Conceitos inicias

• Dados devem ser armazenados.

– PEDRA, PAPEL, BITS

• Devem estar organizados

– Transformar aspectos do mundo real em um modelos de dados formal.

Page 4: Allynson Praxedes Soares aps2@cin.ufpe.br Java Avançado Introdução a Banco de dados.

Allynson Praxedes Soares – [email protected]

Conceitos iniciais

• Banco de dados– Dados que são manipulados por diferentes usuários

concorrentes

• Arquivos– Registro de dados compostos por campos e

manipulado por um usuário

Page 5: Allynson Praxedes Soares aps2@cin.ufpe.br Java Avançado Introdução a Banco de dados.

Allynson Praxedes Soares – [email protected]

Conceitos iniciais

Integridade Transacional– Atomicidade

• Todas a operações são executadas ou nenhuma delas.

– Consistência • A correta execução da transação deve levar o Banco de

Dados de um estado consistente para outro estado consistente.

– Isolamento • Uma transação não poderá interferir nem sofrer

interferências de outras transações.

– Durabilidade • Depois de confirmados os efeitos de uma transação, são

tidos como permanentes mesmo após falhas subseqüentes.

Page 6: Allynson Praxedes Soares aps2@cin.ufpe.br Java Avançado Introdução a Banco de dados.

Allynson Praxedes Soares – [email protected]

Conceitos iniciais

• Formato dos dados– Dados do mundo real são representados por algum

formato de dados

– Relacional– Objeto Relacional– Orientado a Objetos

Page 7: Allynson Praxedes Soares aps2@cin.ufpe.br Java Avançado Introdução a Banco de dados.

Allynson Praxedes Soares – [email protected]

SGBD

• É formado por um conjunto de dados inter-relacionados e um conjunto de o de programas para acessá-los.

Page 8: Allynson Praxedes Soares aps2@cin.ufpe.br Java Avançado Introdução a Banco de dados.

Allynson Praxedes Soares – [email protected]

SGBD

• Serve como um ambiente conveniente para armazenar e recuperar informações do banco de dados

• Redundância e inconsistência dos dados• Dificuldade de acesso aos dados• Isolamento dos dados• Anomalias de acesso concorrente• Problemas de segurança

Page 9: Allynson Praxedes Soares aps2@cin.ufpe.br Java Avançado Introdução a Banco de dados.

Allynson Praxedes Soares – [email protected]

SGBD

• Linguagens

– DDL - Data Definition Language

– DML - Data Manipulation Language

– QL - Query Language

– Linguagem de 4ª geração

Page 10: Allynson Praxedes Soares aps2@cin.ufpe.br Java Avançado Introdução a Banco de dados.

Allynson Praxedes Soares – [email protected]

SGBD

• Evolução

Page 11: Allynson Praxedes Soares aps2@cin.ufpe.br Java Avançado Introdução a Banco de dados.

Allynson Praxedes Soares – [email protected]

SGBD

• Sistemas relacionais– Baseado na teria dos conjuntos

– Exemplos: DB/2, UNIFY, PROGRESS, SYBASE, ORACLE, MySQL, MS SQL Server

– Dados representados segundo tabelas

Page 12: Allynson Praxedes Soares aps2@cin.ufpe.br Java Avançado Introdução a Banco de dados.

Allynson Praxedes Soares – [email protected]

SGBD

• Evolução– Classificação

• Primeira geração (Fim dos anos 60)– Hierárquico– Rede

• Segunda geração (Fim dos anos 70)– Relacional

• Terceira geração (A partir do meio da década de 80)

– Modelos semânticos– Extensões do modelo relacional– Orientação a objetos– Objeto-relacionais

Page 13: Allynson Praxedes Soares aps2@cin.ufpe.br Java Avançado Introdução a Banco de dados.

Allynson Praxedes Soares – [email protected]

Modelagem dos dados

• Transformar Aspectos do mundo real em um modelo de dados formal

• Componentes

– Um conjunto de tipos de dados– Um conjunto de operadores (Algebra

relacional)– Um conjunto de regras de integridade

Page 14: Allynson Praxedes Soares aps2@cin.ufpe.br Java Avançado Introdução a Banco de dados.

Allynson Praxedes Soares – [email protected]

Modelagem de dados

• Entidade– Representação Abstrata dos Objetos do Mundo Real

algo sobre que dados são armazenados (um Ser, um Fato)

• Relacionamentos– Associação entre Objetos dos Sistema – Ex: Departamento D1 EMPREGA o Funcionário F3

• Atributos– Toda Propriedade de uma Entidade ou

Relacionamento– Ex: Nome, Endereço e Salário são Propriedades de

FUNCIONÁRIO

Page 15: Allynson Praxedes Soares aps2@cin.ufpe.br Java Avançado Introdução a Banco de dados.

Allynson Praxedes Soares – [email protected]

Modelagem de dados

• Atributo determinante– Chaves

Page 16: Allynson Praxedes Soares aps2@cin.ufpe.br Java Avançado Introdução a Banco de dados.

Allynson Praxedes Soares – [email protected]

Modelagem de dados

• Diagrama Conceitual

– Entidade

– Relacionamento

NOME DA ENTIDADE

Nome

Page 17: Allynson Praxedes Soares aps2@cin.ufpe.br Java Avançado Introdução a Banco de dados.

Allynson Praxedes Soares – [email protected]

Modelagem dos dados

• Papéis em relacionamentos

• Mais de um relacionamento

Page 18: Allynson Praxedes Soares aps2@cin.ufpe.br Java Avançado Introdução a Banco de dados.

Allynson Praxedes Soares – [email protected]

Modelagem dos dados

Page 19: Allynson Praxedes Soares aps2@cin.ufpe.br Java Avançado Introdução a Banco de dados.

Allynson Praxedes Soares – [email protected]

Modelagem dos dados

• Relacionamento fraco

Page 20: Allynson Praxedes Soares aps2@cin.ufpe.br Java Avançado Introdução a Banco de dados.

Allynson Praxedes Soares – [email protected]

Modelagem dos dados

• Atributos

Nome do atributo

Page 21: Allynson Praxedes Soares aps2@cin.ufpe.br Java Avançado Introdução a Banco de dados.

Allynson Praxedes Soares – [email protected]

• Atributos Multivalorados

Nome do atributo Multivalorado

Page 22: Allynson Praxedes Soares aps2@cin.ufpe.br Java Avançado Introdução a Banco de dados.

Allynson Praxedes Soares – [email protected]

Modelagem de dados

• Cardinalidade

Page 23: Allynson Praxedes Soares aps2@cin.ufpe.br Java Avançado Introdução a Banco de dados.

Allynson Praxedes Soares – [email protected]

Modelagem de dados

• Relacionamento total ou Obrigatório

• Relacionamento parcial

Page 24: Allynson Praxedes Soares aps2@cin.ufpe.br Java Avançado Introdução a Banco de dados.

Allynson Praxedes Soares – [email protected]

Modelagem de dados

Page 25: Allynson Praxedes Soares aps2@cin.ufpe.br Java Avançado Introdução a Banco de dados.

Allynson Praxedes Soares – [email protected]

Modelagem de dados

• Relacionamentos podem conter atributos

Page 26: Allynson Praxedes Soares aps2@cin.ufpe.br Java Avançado Introdução a Banco de dados.

Allynson Praxedes Soares – [email protected]

Modelagem de dados

• Exemplo:• Deseja-se guardar dados sobre empregados,

departamentos e projetos de uma companhia.

• Suponha que, depois da fase de análise de requisitos, os projetistas chegaram à seguinte descrição do “mini-mundo”, ou seja, a parte da companhia a ser representada no banco de dados:

Page 27: Allynson Praxedes Soares aps2@cin.ufpe.br Java Avançado Introdução a Banco de dados.

Allynson Praxedes Soares – [email protected]

Modelagem de dados

• A companhia é organizada em departamentos e cada depto tem um nome, um número e um empregado que o gerencia. Deseja-se guardar a data na qual o empregado começou a gerenciar o depto. Um departamento pode estar em vários locais.

• Um depto controla um número de projetos, os quais possuem número, nome e um único local.

• Um empregado é caracterizado por um cadastro, nome, sexo e salário. Ele está associado a um depto mas pode trabalhar em vários projetos que não necessariamente são controlados pelo mesmo depto. Deseja-se guardar o número de horas que um empregado trabalha em umprojeto e o supervisor direto de cada empregado.

• Cada empregado possui dependentes caracterizados por nome, data de nascimento e grau de parentesco.

Page 28: Allynson Praxedes Soares aps2@cin.ufpe.br Java Avançado Introdução a Banco de dados.

Allynson Praxedes Soares – [email protected]

Modelagem de dados