Tecnologias e Linguagens para Banco de Dados

Texto

(1)

Tecnologias e Linguagens

Tecnologias e Linguagens

para Banco de Dados

para Banco de Dados

Prof. Bruno Guedes

Prof. Bruno Guedes

E

E--mailmail: brunofguedes@gmail.com: brunofguedes@gmail.com

Bibliografia Sugerida

Bibliografia Sugerida

Introdução aos Sistemas de Banco de Dados. 8.ed. Autor: C. J. Date

Editora: Campus

Sistema de Banco de Dados. 3.ed.

Autor: A. Silberschatz, H. F. Korth, S. Sudarshan, Editora: Makroon Books

Banco de Dados – Fundamentos, Projetos e Implementação. 6.ed. Autor: David M.Kroenke

(2)

Banco de Dados

Banco de Dados –

Definiç

Defini

ç

ões

ões

Conjunto de dados inter-relacionais

Conjuntos de registros dispostos em

estrutura regular que possibilita a

reorganização dos mesmos e produção

de informação

.

Ex: Fichas de Biblioteca; Agenda de Telefones

Banco de Dados

Banco de Dados

-

-

Defini

Defini

ç

ç

ão Geral

ão Geral

Banco de Dados: Coleção de dados relacionados;

Dados: Valor de um campo armazenado,

matéria-prima para obtenção de informação;

(3)

Banco de Dados

Banco de Dados

-

-

Propriedades

Propriedades

• Um banco de dados é uma coleção de dados logicamente relacionados, com algum significado. Associações aleatórias de dados não podem ser chamadas de banco de dados;

• Um banco de dados é projetado, construído e preenchido (instanciado) com dados para um propósito específico. Ele tem um grupo de usuários e algumas aplicações pré-concebidas para atendê-los;

• Um banco de dados representa algum aspecto do mundo real, algumas vezes chamado de “mini-mundo”. Mudanças no mini-mundo provocam mudanças no banco de dados.

Sistemas Baseados em

Sistemas Baseados em

Processamento de Arquivos

Processamento de Arquivos

Sistema de Pagamento

Sistema de Controle de Projetos

Funcionários

Projetos Funcionários

(4)

Sistemas Baseados em

Sistemas Baseados em

Processamento de Arquivos

Processamento de Arquivos

Problemas:

1 – Redundância e Inconsistência nos dados. 2 – Dificuldade de Acesso.

3 – Segurança de Acesso.

Sistema de Pagamento Sistema de Controle de Projetos

Definição: Um Sistema Gerenciador de Banco de Dados (SGBD) é uma coleção de programas que permitem aos usuários criarem e manipularem um banco de dados.

Sistemas Gerenciadores de

Sistemas Gerenciadores de

Banco de Dados

Banco de Dados

Sistema Gerenciador de Banco de Dados

Funcionários

(5)

Sistemas Gerenciadores de

Sistemas Gerenciadores de

Banco de Dados

Banco de Dados

Um SGBD é, assim, um sistema de software de propósito geral que facilita o processo de definir, construir e

manipular bancos de dados de diversas aplicações.

Definiruma base de dados envolve a especificação de tipos de dados a serem armazenados na base de dados.

Construiruma base de dados é o processo de armazenar os dados em algum meio que seja controlado pelo SGBD.

Manipularuma base de dados indica a utilização de funções como a de consulta, para recuperar dados específicos, modificação da base de dados para refletir mudanças no mini-mundo (inserções, atualizações e remoções), e geração de relatórios

.

Sistemas Gerenciadores de

Sistemas Gerenciadores de

Banco de Dados

Banco de Dados

Componentes:

1 – Dados: dados dos usuários; Metadados (Dados sobre dado) 2 – Hardware: Conjunto de discos, memória, processadores, etc. 3 – Software: SGBD.

(6)

Profissionais e Atividades envolvidas

em um SGBD

Administrador do Banco de Dados:em qualquer

organização onde muitas pessoas compartilham muitos recursos, existe a necessidade de um administrador chefe para supervisionar e gerenciar estes recursos. Num

ambiente de banco de dados, o recurso primário é a próprio banco de dados e os recursos secundários são o próprio SGBD e softwares relacionados. A administração desses recursos é de responsabilidade do DBA (“Database

Administrator”). O DBA é responsável por autorizar acesso ao banco de dados e coordenar e monitorar seu uso. O DBA é responsável por problemas, tais como, quebra de segurança ou baixo desempenho. Em grandes

organizações, o DBA é auxiliado por técnicos;

Profissionais e Atividades envolvidas

em um SGBD

Analistas de Sistemas e Programadores de Aplicação: 1) Analistas de sistemasdeterminam os requisitos de usuários finais, especialmente dos usuários comuns, e desenvolvem especificações das transações para atender a estes requisitos;

2) Programadores de aplicações implementam estas especificações produzindo programas e, então, testam, depuram, documentam e mantêm estes programas.

OBS:Analistas e programadores devem estar

(7)

Profissionais e Atividades envolvidas

em um SGBD

Usuários Finais: existem profissionais que precisam ter acesso à base de dados para consultar, modificar e gerar relatórios. A base de dados existe para estes usuários. Existem algumas categorias de usuários finais:

1) Usuários ocasionais:ocasionalmente fazem acesso à base de dados, mas eles podem necessitar de diferentes informações a cada vez que fazem acesso. Eles podem usar uma linguagem de consulta sofisticada para

especificar suas requisições e são, tipicamente, gerentes de médio ou alto-nível;

Profissionais e Atividades envolvidas

em um SGBD

2) Usuários comuns ou paramétricos: estes usuários realizam operações padrões de consultas e atualizações, chamadas TRANSAÇÕES PERMITIDAS, que foram cuidadosamente programadas e testadas. Estes usuários constantemente realizam recuperações e modificações na base de dados;

(8)

Modelos de Dados

•Uma das características fundamentais da abordagem de banco de dados é que ela fornece algum nível de abstração de dados, pela omissão de detalhes de armazenamento de dados que não são necessários para a maioria dos

usuários.

•O modelo de dados é a principal ferramenta que fornece esta abstração.

•Um Modelo de Dados é um conjunto de conceitos que podem ser usados para descrever a estrutura de um banco de dados.

•Por estrutura de um banco de dados entende-se os tipos de dados, relacionamentos e restrições pertinentes aos dados.

Modelos de Dados

Modelo Relacional

A estrutura fundamental do modelo relacional é a relação (tabela).

Uma relação é constituída por um ou mais atributos (campos) que traduzem o tipo de dados a armazenar.

Cada instância do esquema (linha) é chamada de tupla (registro).

O modelo relacional não tem caminhos pré-definidos para se fazer acesso aos dados como nos modelos que o precederam.

Porém, para trabalhar com essas tabelas, algumas restrições precisaram ser impostas para evitar aspectos indesejáveis, como: Repetição de informação, incapacidade de representar parte da informação e perda de informação.

(9)

Modelos de Dados

Modelo Orientado a Objetos

A motivação para seu surgimento está em função dos limites de armazenamento e representação semântica impostas no modelo relacional.

Um exemplo é o sistema de informações geográficas (SIG), que são mais facilmente construídos usando tipos complexos de dados.

Quando os bancos de dados orientados a objetos foram introduzidos, algumas das falhas perceptíveis do modelo relacional pareceram ter sido solucionadas com esta tecnologia e acreditava-se que tais bancos de dados ganhariam grande parcela do mercado.

Hoje, porém, acredita-se que os Bancos de Dados Orientados a Objetos serão usados em aplicações especializadas, enquanto os sistemas relacionais continuarão a sustentar os negócios tradicionais, onde as estruturas de dados baseadas em relações são suficientes.

Modelos de Dados

Modelo Conceitual Realidade

Modelo Lógico Modelo Físico

B. D

Descreve a realidade, capturando entidades e suas associações.

Descreve a implementação do modelo conceitual de acordo com o tipo de SGBD (Relacional; Orientado a Objetos; etc)

(10)

Modelo Conceitual

É um processo de análise.

•Descreve a estrutura de todo o banco de dados.

•É uma descrição global do banco de dados, que

omite detalhes da estrutura de armazenamento

físico e se concentra na descrição de entidades,

tipos de dados, relacionamentos e restrições.

•Para obtenção desse modelo, utilizamos o M.E.R

(Modelo Entidade Relacionamento).

• O M.E.R é constituído de entidades,

relacionamentos e atributos.

Modelo Entidade Relacionamento (MER)

Entidade:

é tudo aquilo que se deseja guardar

dados. São descritos pelos seus atributos.

Atributo:

São os campos as características.

OBS:

Os atributos que identificam unicamente

cada ocorrência de uma entidade é chamado de

atributo chave ou chave primária.

EX.:

Cliente

Código Nome

Endereço telefone

(11)

Modelo Entidade Relacionamento (MER)

Tipos Atributos:

1. Simples ou atômicos:

São aqueles que não

podem ser divididos. Ex.: Código.

2. Compostos:

São aqueles formados pela

combinação de atributos simples. Ex.:

Endereço (rua + número + bairro + ...).

3. Multivalorados:

São aqueles que podem

apresentar mais de um valor. Ex.: Telefone.

Modelo Entidade Relacionamento (MER)

Relacionamentos:

É uma associação entre

entidades. Assim como a entidade, os

relacionamentos podem ter atributos.

EX.: Cliente

Matrícula

Entidades

Cliente

Pedido Conta Faz

Tem

Funcionário Trabalha

Relacionamentos

Nome Cargo

Projeto Horas

Atributos

Código

(12)

Modelo Entidade Relacionamento (MER)

Características dos Relacionamentos:

Grau:Especifica a quantidade de entidades presentes no

relacionamento. Podem ser: Binário(2 entidades); Ternário(3

entidades); Auto-relacionamento(1 entidade).

Participação:Especifica de forma quantitativa como uma entidade

se relaciona com ocorrências de outra entidade.

Ex.: Um professor pode lecionar nenhuma ou no máximo 4

disciplinas. Uma disciplina pode ser lecionado por nenhum ou no máximo 2 professores.

Professor 0 : 2 Leciona 0 : 4 Disciplina

OBS:Quando o limite inferior é zero, é dito que a participação da entidade

no relacionamento é opcional. Do contrário a participação é obrigatória ou mandatória.

Limite inferior

Modelo Entidade Relacionamento (MER)

Exercícios:

Estabelecer a participação das entidades nos

relacionamentos abaixo:

Cliente Faz a)

b)

Pedido

Peça Contém Pedido

Projeto Chefia Funcionário c)

d) Projeto Trabalha Funcionário Imóvel Possui Pessoa

Automóvel Possui Pessoa

Aluno Matrícula Disciplina e)

f) g)

(13)

Modelo Entidade Relacionamento (MER)

Cardinalidade : É definido pelos limites superiores (máximos) da participação.

Podem ser de 3 tipos:

•1:1 (um para um)

•1:N (um para muitos)

•N:N (muitos para muitos)

A R B

A R B

A R B

1

1

N

1

N

N

Modelo Entidade Relacionamento (MER)

•1:1 (um para um)

Uma ocorrência da entidade A pode se

relacionar com no máximo uma ocorrência da

entidade B, e uma ocorrência da entidade B

pode se relacionar com no máximo uma

ocorrência da entidade A.

A

1

R

1

B

Homem 1 É casado 1 Mulher

(14)

Modelo Entidade Relacionamento (MER)

•1:N (um para muitos)

Uma ocorrência da entidade A pode se

relacionar com mais de uma ocorrência da

entidade B, e uma ocorrência da entidade B

pode se relacionar com no máximo uma

ocorrência da entidade A.

A

1

R

N

B

Departamento 1 Trabalha N Funcionário

EX.:

Modelo Entidade Relacionamento (MER)

•N:N (muitos para muitos)

Uma ocorrência da entidade A pode se

relacionar com mais de uma ocorrência da

entidade B, e uma ocorrência da entidade B

pode se relacionar com mais de uma

ocorrência da entidade A.

A

N

R

N

B

Imóvel N possui N Pessoa

(15)

Modelo Entidade Relacionamento (MER)

Exercício:

Uma instituição bancária deseja controlar a

movimentação das suas contas correntes. A

instituição possui agências espalhadas por várias

cidades e o seu cadastro contém informações do

código, nome e endereço onde a agência está

localizada. Cadastro de clientes tem armazenado

nome, CPF e endereço de cada cliente. As contas

correntes são identificadas por um código e

fornecem o saldo atualizado das mesmas. Faça

um M.E.R para solução do problema proposto.

Modelo Entidade Relacionamento (MER)

Relacionamentos Especiais:

Relacionamentos não binários

1 – Relacionamento Ternário:Envolve 3 entidades simultaneamente.

Deve ser usado quando é necessário relaciona um par de entidades com uma terceira ao mesmo tempo.

OBS:A participação das 3 entidades é mandatória (obrigatória).

Ex.: Fornecedor N Fornece Peça

Projeto N

N

Agência 1 possui C / C

Cliente N

N a)

(16)

Modelo Entidade Relacionamento (MER)

Relacionamentos Especiais:

Relacionamentos não binários

2 – Auto-Relacionamento (Relacionamento Recursivo) :É um

relacionamento entre ocorrências de uma mesma entidade..

Ex.:

Funcionário N Chefia

Disciplina N Pré-requisito

a)

b)

1

N N:N

(muitos para muitos) 1:N

(um para muitos)

Modelo Entidade Relacionamento (MER)

Exercício 1:

Uma empresa de agenciamento de mão de obra pretende informatizar o cadastro de profissionais candidatos a empregos temporários. Pretende construir um banco de dados onde possa manter os dados cadastrais dos profissionais e seus contratos temporários com as

empresas clientes. O profissional é identificado por um nº de controle e além desta identificação ficam registrados nome, endereço, data de nascimento e profissão. Os contratos de mão de obra temporárias são feitos

(17)

Modelo Entidade Relacionamento (MER)

Exercício 2:

Certa universidade está desenvolvendo um sistema de

informações para gerenciar os cursos de graduação oferecidos. Esta instituição possui as seguintes características:

a) A universidade possui diversos cursos.

b) Os professores podem lecionar em diversos cursos. c) Os professores podem lecionar várias disciplinas. d) Cada curso possui várias disciplinas.

e) Uma disciplina pode ser ensinada em vários cursos. f) Os alunos podem estar inscritos em somente um curso. g) Os alunos podem se matricular em no máximo 8 disciplinas. h) As disciplinas podem ter pré-requisitos.

i) As disciplinas podem ser ensinadas por vários professores. - Faça o M.E.R para resolução do problema

Modelo Entidade Relacionamento (MER)

Relacionamentos Especiais:

Agregação

Utilizado para indicar situações onde entidades relacionadas podem ainda se relacionar com outra entidade.

É recomendado para representar situações onde existe parcialidade na participação entre 3 entidades.

Ex.:

Funcionário alocado

Equipamento Projeto N

a)

b)

usa

Médico atende

Remédio

1:N Paciente

N

receita

1:N 1:N

1:N 0:N

0:N

agregação

(18)

Modelo Entidade Relacionamento (MER)

Relacionamentos Especiais:

Generalização / Especialização

Entidades podem ter superclasses ou supertipos e subclasses ou subtipos.

A relação entre uma entidade subtipo e uma entidade supertipo é chamada “É um” (ISA).

A entidade supertipo é uma generalização das entidades subtipos

As entidades subtipos herdam os atributos da entidade supertipo.

Ex.:

Agência possui

Corrente

1 N Conta

Código Nome

Poupança limite

Data abert.

Número Saldo

Tx-juros

É um

Modelo Entidade Relacionamento (MER)

Exercício :

(19)

Derivação do Modelo Conceitual para o

Modelo Lógico

OBJETIVO: Obter um esquema que seja implementável

em um banco de dados.

Funcionário

Matrícula

Nome

Regra 1:

Toda entidade vira uma tabela.

EX.:

Endereço

Funcionário (Matrícula, nome, endereço)

Derivação do Modelo Conceitual para o

Modelo Lógico

Funcionário

Matrícula Nome

Regra 2:

Relacionamentos 1: N

O relacionamento 1:N é implementado através da

incorporação da chave primária da entidade pai

(departamento) na entidade filho (funcionário). Esta

chave primária é chamada de chave estrangeira na

outra tabela.

Endereço Departamento

Código Nome

Trabalha

1 N

(20)

Derivação do Modelo Conceitual para o

Modelo Lógico

Regra 2:

Relacionamentos 1: N (Continuação)

Funcionário (Matrícula, nome, endereço, Depto) Departamento (Código, nome)

Chave primária

Chave primária Chave estrangeira

Vendas 20 Compras 10 Nome Código 20 YYY Ana 2005 XXX AAA Endereço José Luiz Nome 10 1005 10 1002 Depto Matrícula

OBS:A regra é a mesma no relacionamento 1:1, só que, por não

possuir entidade filho, escolha a chave primária de uma das tabelas e transforme-a em chave estrangeira da outra.

Derivação do Modelo Conceitual para o

Modelo Lógico

Funcionário

Matrícula Nome

Regra 3:

Relacionamentos N: N

O relacionamento N:N é implementado através da

criação de uma nova tabela, cujos campos são as

chaves primárias das duas entidades e os atributos

do relacionamento, caso existam.

Endereço Projeto Código Nome Alocado N N EX.:

OBS:A chave primária desta nova tabela é em geral, formada

(21)

Derivação do Modelo Conceitual para o

Modelo Lógico

Regra 3:

Relacionamentos N: N (Continuação)

Funcionário (Matrícula, nome, endereço) Projeto (Código, nome)

Chave primária P2 20 P1 10 Nome Código YYY Ana 2005 XXX AAA Endereço José Luiz Nome 1005 1002 Matrícula

Alocado (Projeto, Funcionário, Horas)

4 1002 20 8 4 Horas 2005 1002 Funcionário 10 10 Projeto

Chave primária concatenada

Derivação do Modelo Conceitual para o

Modelo Lógico

Exercício:

Construa o modelo lógico, a partir do modelo

conceitual abaixo e depois implemente esse modelo

em um software de banco de dados, como o Access

por exemplo,respeitando os atributos,

relacionamentos e cardinalidade.

(22)

Derivação do Modelo Conceitual para o

Modelo Lógico

Matrícula Nome

Auto-Relacionamento:

1: N (Um para Muitos)

Aplica-se a mesma regra que usamos para

relacionamentos 1:N.

DT_Nasc EX.:

Funcionário N Chefia

1 30 10/11/1978 Ana 20 03/08/1981 30/07/1987 DT_Nasc José Luiz Nome -30 30 10 Chefia Matrícula Funcionário (Matrícula, Nome, Data Nasc., Chefe)

Modelo Lógico

Chave estrangeira

Derivação do Modelo Conceitual para o

Modelo Lógico

Código

Nome

Auto-Relacionamento:

N: N (Muitos para Muitos)

Aplica-se a mesma regra que usamos para

relacionamentos N:N.

EX.:

Disciplina N Pré-Requisito

N Redes II RD2 Banco Redes I Nome BCO RD1 Código

(23)

Derivação do Modelo Conceitual para o

Modelo Lógico

Relacionamento Ternário

Todo relacionamento ternário vira tabela. A chave primária é formada pela concatenação das chaves primárias das 3 entidades.

Fornecedor (Código, nome)

Fornecedor N Fornece Peça

Projeto N

N

Peça (Código, nome) Projeto (Código, nome)

Fornece (Fornecedor, Peça, Projeto)

Código Nome

Código Nome

Código Nome

Modelo Lógico

Derivação do Modelo Conceitual para o

Modelo Lógico

Estrutura de Generalização / Especialização

Conta (Número, saldo) Corrente (Número, limite)

Aniversário Corrente

Conta

Poupança limite

Número Saldo

Tx-juros

Modelo Lógico (1ª Forma)

Poupança (Número, aniversário, Tx-Juros) Corrente (Número, saldo, limite)

Modelo Lógico (2ª Forma)

Imagem

Referências