pratica 1 labbd

11

Click here to load reader

Upload: marco-silva

Post on 07-Jul-2015

593 views

Category:

Documents


1 download

DESCRIPTION

Aula 1 Elaine

TRANSCRIPT

Page 1: Pratica 1 LabBD

1

Laboratório de Bases de Dados

Profa. Elaine Parros Machado de Sousa

Aula 1 - Revisão

Conteúdo

SGBDsconceitos básicosarquitetura em três níveis de esquemacomponentes

Modelo RelacionalMapeamento MER-Rel

SGBD – Sistema de Gerenciamento de Bases de Dados

SGBD - Sistema de armazenamento de dados de propósito geral

completamente autônomo em relação às aplicações

Objetivos:armazenar, de maneira eficiente, grandes volumes de dados

conjuntos lógicos e coerentes de dadostornar dados disponíveis para busca e atualização

SGBD

BD1

SGBD

Aplicação Aplicação Aplicação

BD2 BD3 BDn...

Definição da base dedados armazenada

Base de dados armazenada

SGBD

Aplicação Aplicação Aplicação

ESQUEMAESQUEMA INSTÂNCIAINSTÂNCIA

SGBDVantagens:

armazenamento persistente de dados;INDEPENDÊNCIA DE DADOS;INTEGRIDADE DE DADOS;

consistênciavalidade

acesso compartilhado à informação multi-usuário e concorrente

distribuição de informações

Page 2: Pratica 1 LabBD

2

SGBD

Vantagens (cont...)reduz complexidade das aplicaçõessegurança

controle de acesso ao SGBDcontrole de acesso aos dados

backuputilização de padrões...

SGBD

UsuáriosDBAProjetistasProgramadoresFinais

Three-Schema ArchitectureNível Externo ou de Visão Visão 1 Visão 2 Visão N...

Nível Conceitual ou Lógico

Nível Interno ou Físico

Esquema Conceituale/ou Esquema Lógico

Esquema Físico

Sub-Esquemas

Interfaces

Nível Externo ou de Visão

Visão 1 Visão 2 Visão N...

Nível Conceitual ou Lógico

Nível Interno ou Físico

mapeamento externo/conceitual

mapeamento conceitual/interno

Componentes de um SGBD

Os componentes funcionais do SGBD podem ser divididos:

componentes de processamento de consultas componentes de gerenciamento de armazenamento

Dados eMetadados

Processador de Consultas

Gerenciador de Armazenamento

SGBDSGBDBanco de DadosBanco de Dados

Usuários LeigosProgramadores de aplicações Usuários

SofisticadosDBAs

Interfaces de aplicação

Programas de Aplicações

Ferramenta de Consulta

Ferramenta Administrativa

Pré-compilador de Comandos

DML

Programas de Aplicações em Código Objeto

Compilador DML

Interpretador DDL

Componente de execução de consultas

Gerenciador de Buffer

Gerenciador de Transações

Gerenciador de Arquivos Gerenciador de Armazenamento

Processador de Consultas

SGBD

Page 3: Pratica 1 LabBD

3

Pré-compilador de Comandos

DML

Programas de Aplicações em Código Objeto

Compilador DML

Interpretador DDL

Componente de execução de consultas

Gerenciador de Buffer

Gerenciador de Transações

Gerenciador de ArquivosGerenciador de

Armazenamento

Processador de Consultas

SGBD

ÍndicesDados

EstatísticosDicionário de

DadosArquivos de Dados

[Silb

esrc

hats

]

Usuários LeigosProgramadores de aplicações Usuários

SofisticadosDBAs

Interfaces de aplicação

Programas de Aplicações

Pré-compilador de Comandos

DML

Programas de Aplicações em Código Objeto

Compilador DML

Interpretador DDL

Componente de execução de consultas

Gerenciador de Buffer

Gerenciador de Transações

Gerenciador de Arquivos Gerenciador de Armazenamento

Processador de Consultas

SGBD

Ferramenta de Consulta

Ferramenta Administrativa

Pré-compilador de Comandos

DML

Programas de Aplicações em Código Objeto

Compilador DML

Interpretador DDL

Componente de execução de consultas

Gerenciador de Buffer

Gerenciador de Transações

Gerenciador de ArquivosGerenciador de

Armazenamento

Processador de Consultas

SGBD

ÍndicesDados

EstatísticosDicionário de

DadosArquivos de Dados

[Silb

esrc

hats

]

Usuários LeigosProgramadores de aplicações Usuários

SofisticadosDBAs

Interfaces de aplicação

Programas de Aplicações

Pré-compilador de Comandos

DML

Programas de Aplicações em Código Objeto

Compilador DML

Interpretador DDL

Componente de execução de consultas

Gerenciador de Buffer

Gerenciador de Transações

Gerenciador de Arquivos Gerenciador de Armazenamento

Processador de Consultas

SGBD

Ferramenta de Consulta

Ferramenta Administrativa

Pré-compilador de Comandos

DML

Programas de Aplicações em Código Objeto

Compilador DML

Interpretador DDL

Componente de execução de consultas

Gerenciador de Buffer

Gerenciador de Transações

Gerenciador de ArquivosGerenciador de

Armazenamento

Processador de Consultas

SGBD

ÍndicesDados

EstatísticosDicionário de

DadosArquivos de Dados

[Silb

esrc

hats

]

Usuários LeigosProgramadores de aplicações Usuários

SofisticadosDBAs

Interfaces de aplicação

Programas de Aplicações

Pré-compilador de Comandos

DML

Programas de Aplicações em Código Objeto

Compilador DML

Interpretador DDL

Componente de execução de consultas

Gerenciador de Buffer

Gerenciador de Transações

Gerenciador de Arquivos Gerenciador de Armazenamento

Processador de Consultas

SGBD

Ferramenta de Consulta

Ferramenta Administrativa

Page 4: Pratica 1 LabBD

4

Pré-compilador de Comandos

DML

Programas de Aplicações em Código Objeto

Compilador DML

Interpretador DDL

Componente de execução de consultas

Gerenciador de Buffer

Gerenciador de Transações

Gerenciador de ArquivosGerenciador de

Armazenamento

Processador de Consultas

SGBD

ÍndicesDados

EstatísticosDicionário de

DadosArquivos de Dados

[Silb

esrc

hats

]

Usuários LeigosProgramadores de aplicações Usuários

SofisticadosDBAs

Interfaces de aplicação

Programas de Aplicações

Pré-compilador de Comandos

DML

Programas de Aplicações em Código Objeto

Compilador DML

Interpretador DDL

Componente de execução de consultas

Gerenciador de Buffer

Gerenciador de Transações

Gerenciador de Arquivos Gerenciador de Armazenamento

Processador de Consultas

SGBD

Ferramenta de Consulta

Ferramenta Administrativa

Pré-compilador de Comandos

DML

Programas de Aplicações em Código Objeto

Compilador DML

Interpretador DDL

Componente de execução de consultas

Gerenciador de Buffer

Gerenciador de Transações

Gerenciador de ArquivosGerenciador de

Armazenamento

Processador de Consultas

SGBD

ÍndicesDados

EstatísticosDicionário de

DadosArquivos de Dados

[Silb

esrc

hats

]

Conteúdo

SGBDsconceitos básicosarquitetura em três níveis de esquemacomponentes

Modelo RelacionalMapeamento MER-Rel

Modelo Relacional

▪ “O modelo relacional representa uma base de dados como uma coleção de relações ”[Elmasri2000]

▪ Modelo Relacional – base teórica em Teoria de Conjuntos

Modelo Relacional

Esquema

Instância

Nome NUSP Curso

PauloIzabellaJoão

999988881111

InfoInfoComp

Page 5: Pratica 1 LabBD

5

Modelo Relacional

Nome NUSP Curso

PauloIzabellaJoão

999988881111

InfoInfoComp

Relação

AtributoTupla

Valor

Esquema deRelação ▪ Na relação

▪ não existe a idéia de ordem para as tuplas

▪ Na tupla▪ ordem determinada de acordo com a disposição dos atributos no esquema da relação▪ valores atômicos e monovalorados▪ valor nulo (null )

Relações

Restrições das RelaçõesRestrição de domínio

o valor de cada atributo A deve ser um valor atômico pertencente a Dom(A)

Restrição de unicidade (CHAVE)deve ser possível identificar univocamente cada tupla da relação

chave primária

Restrição em null para atributodetermina quando o valor especial null é ou não permitido para um atributo

Restrições de Integridade

Objetivo: garantir consistênciaRestrição de Integridade de Entidade

chave primária não pode ser nulaRestrição de Integridade Referencial

chave estrangeiracompatibilidade de domínio

ExemploAluno = {Nome, Nusp, Idade, DataNasc}

Professor = {Nome, NFunc, Idade, Titulação}

Disciplina = {Sigla, Nome, NCred, Professor, Livro}

Turma = {Sigla, Numero, NAlunos}

Matrícula = {Sigla, Numero, Aluno, Ano, Nota}

Conteúdo

SGBDsconceitos básicosarquitetura em três níveis de esquemacomponentes

Modelo RelacionalMapeamento MER-Rel

Page 6: Pratica 1 LabBD

6

Mapeamento entre Esquemas –Mapeamento MER MRel

▪ MER - modelo conceitual▪ usado para especificar conceitualmente a estrutura

dos dados de uma aplicação▪ Esquema Conceitual

▪ Modelo Relacional - modelo de implementação▪ usado para suportar a implementação de

aplicações▪ Esquema Lógico

▪ SGBDR ⇒ SGBD que se apóia no modelo relacional

HorárioSala

Disciplina

NomeNo. Créditos

1Turma

Número

N Corresponde

Sigla

Horário

Aula Prática

Laboratório

Tem

Código

Disciplina = {Sigla, Nome, NroCreditos}N

1

Turma = {Número, Sigla, Horário, Sala}

Aula_Prática = {Código, Horário, Laboratório, Número, Sigla}

Entidades

Nome

ComissãoorganizaConferência

Data Instalação

1 1

Conferência = {Nome}

Comissão = {Cod, NroMembros, Conferência}

NroMembrosCod

Relacionamentos Binários –▪ Cardinalidade 1:1

Nome

ComissãoorganizaConferência

Data Instalação

1 1

Conferência = {Nome, CodComissão, DataInstalação}

Comissão = {Cod, NroMembros}

NroMembrosCod

Relacionamentos Binários –▪ Cardinalidade 1:1

Nome

ProjetoparticipaGerente1 1

Cod

Relacionamentos Binários –▪ Cardinalidade 1:1

Gerente = {Nome, Projeto}

Projeto = {Cod}

⇒ Restrição de null: na relação Gerente o atributo Projeto deve ser definido como não nulo.

(obrigatoriamente!) Nome

Disciplina

NomeNo. Créditos

MinistraProfessor

Horário

1 N

Professor = {Nome}

Disciplina = {Sigla, Nome, Créditos, Professor, Horário}

Relacionamentos Binários –

Sigla

▪ Cardinalidade 1:N

Page 7: Pratica 1 LabBD

7

NomeNUSP

Disciplina

NomeNo. Créditos

Matriculado Aluno

Nota

M N

Disciplina = {Sigla, Nome, Créditos}

Aluno = {NUSP, Nome}

Relacionamentos Binários –

Sigla

▪ Cardinalidade M:N

Matriculado = {NUSP, Sigla, Nota}

NomeInícioCodP

Fornecedor

CodF

ForneceProjeto

Qtde

P N

Nome

PeçaM

Relacionamentos Ternários

Projeto = {CodP, Início}

Fornecedor = {CodF, Nome}

Peça = {Nome}

Fornece= {CodP, Nome, CodF, Qtde}

No. CréditosNomeNome

NUSP

Disciplina

Sigla

MonitoraAluno

Horário

1 N

Nome

ProfessorM

Relacionamentos Ternários

Aluno = {NUSP, Nome}

Disciplina = {Sigla, Nome, No.Créditos}

Professor = {Nome}

Monitora= {NUSP, NomeProf, Sigla, Horário}

Diretor = {Nome, NomeAntecessor}

SucedeDiretor1

1

Anterior

Sucessor

Papéis dos Relacionamentos

Nome

Atributo Composto

Pessoa = {Nome, NUSP, Rua, Número, CEP, Cidade}

RuaNúmero

CEPCidade

Pessoa

Nome

NUSP

Endereço

Atributos Multivalorados

Aluno = {Nome, NSerMed}

N.Ser.Med.

Alergias

Aluno

Nome

Alergias = {Nome, Alergia}

1a Opção de Mapeamento

Page 8: Pratica 1 LabBD

8

Aluno = {Nome, NSerMed, GrauEsq, GrauDir}

Atributos Multivalorados

2a Opção de Mapeamento

N.Ser.Med.

Grau Lentes

Aluno

Nome

valores possíveis: grau do olho direitograu do olho esquerdo

O MER-X suporta duas abstrações de dados:

Agregação

Generalização

Extensão do Mapeamento MER-MREL para suporte às abstrações

Mapeamento de Abstrações de Dados

Caso 1: CE Agregação é identificado por atributo próprio + chaves dos CEs que participam do CR gerador

uma mesma instância do CR gerador resulta em mais de uma entidade agregada

SalaData

Paciente MédicoAtendeN M

Consulta

NomeNomeRG CRM

Mapeamento de Agregação

Médico = {CRM, Nome}

Paciente = {RG, Nome}

Mapeamento de Agregação

SalaData

Paciente MédicoAtendeN M

Consulta

NomeNomeRG CRM

Consulta = {Paciente, Medico, Data, Sala}

Caso 2: CE Agregação é identificado por um de seus atributos

as chaves dos CE que participam do CR gerador não são necessárias para identificar a agregação

Mapeamento de Agregação

Título

Professor Aluno-Pós

Orienta

Projeto

NomeNFunc

NomeNUSP

MN

Caso 2a: cada instância do CR gera apenas uma entidade agregada...

Mapeamento de Agregação

Título

Professor Aluno-Pós

Orienta MN

Projeto

NomeNFunc

NomeNUSP

Aluno = {NUSP, Nome}

Professor = {Nfunc, Nome}

Projeto = {Título, Orientador, Aluno}

Page 9: Pratica 1 LabBD

9

Caso 2b: cada instância do CR gera mais de uma entidade agregada...

Mapeamento de Agregação

Título

Professor Aluno-Pós

Orienta MN

Projeto

NomeNFunc

NomeNUSP

Aluno = {NUSP, Nome}

Professor = {Nfunc, Nome}

Projeto = {Título, Orientador, Aluno}

Caso 3: mistura dos casos 1 e 2b. Duas formas de identificar CE Agregação:

1. chaves dos CE que participam do CR gerador + atributo da agregação

2. atributo próprio da agregação

SalaData

Paciente MédicoAtendeN M

Consulta

NomeNomeRG CRM

Mapeamento de Agregação

NroRegistroConsulta

também identifica univocamente cada consulta

SalaData

Paciente MédicoAtendeN M

Consulta

NomeNomeRG CRM

NroRegistroConsulta

Médico = {CRM, Nome}

Paciente = {RG, Nome}

Consulta = {Paciente, Medico, Data,

NroRegistroConsulta, Sala}

Exemplo: um relacionamento R1 entre o Professor P1 e a Disciplina D1 pode gerar várias entidades Aula, mas o Livro Texto não muda para cada uma destas aulas....

Data/Horário

Professor DisciplinaMinistra

Livro Texto

NN

Aula

NomeNFunc

NomeSigla

Professor = {Nfunc, Nome} Disciplina = {Sigla, Nome}

Ministra = {Nfunc, Sigla, LivroTexto}

Aula = {Nfunc, Sigla, Data/Horário}

Três alternativas principais:1. Mapear o CEG e os CEE em relações

diferentes2. Mapear o CEG e todos os CEE em uma única

relação3. Mapear cada CEE (e apenas) em sua própria

relação, junto com seus respectivos atributos genéricos

Mapeamento da Generalização

CEG

CEE1 CEEk

Ch

AG

Ae1 Aek

...

CEG = { Ch, AtC, AG } CEE1 = { Ch, Ae1}... CEEk = { Ch, Aek}

Mapeamento da Generalização - Alternativa 1Procedimento Padrão 1

disjunção

DAtC

Page 10: Pratica 1 LabBD

10

CEG = { Ch, AtC, AG } CEE1 = { Ch, Ae1}... CEEk = { Ch, Aek}

CEG

CEE1 CEEk

Ch

AG

Ae1 Aek

...

Mapeamento da Generalização - Alternativa 1Procedimento Padrão 2

sobreposição

OAtC CEG

CEE1 CEEk

Ch

AG

Ae1 Aek

...

CEG = { Ch, AG } CEEk = { Ch, Aek} CEC={ Ch, AtC}

Mapeamento da Generalização - Alternativa 1Procedimento Padrão 3

OAtC

sobreposição

CEG

CEE1 CEEk

Ch

AG

Ae1 Aek

...

CEG = { Ch, AtC, AG, Ae1, ... Aek }

Mapeamento da Generalização - Alternativa 2Procedimento Padrão 4

DAtC

disjunção

CEG

CEE1 CEEk

Ch

AG

Ae1 Aek

...

Mapeamento da Generalização - Alternativa 2Procedimento Padrão 5

CEG = { Ch, AtC, AG, Ae1, ... Aek }

O

AtC

sobreposição

CEG

CEE1 CEEk

Ch

AG

Ae1 Aek

...

CEG = { Ch, AG, Ae1,... Aek, BCEE1, .... BCEEk}

Mapeamento da Generalização - Alternativa 2Procedimento Padrão 6

OAtC

sobreposição

CEG

CEE1 CEEk

Ch

AG

Ae1 Aek

...

CEE1 = { Ch, AG, AE1 }...CEEk = { Ch, AG, AEk }

Mapeamento da Generalização - Alternativa 3Procedimento Padrão 7

AtC

participação total

Page 11: Pratica 1 LabBD

11

Mapeamento da Generalização - Alternativa 3Procedimento Padrão 8

CEG

CEE1 CEEk

Ch

AG

Ae1 Aek

...

CEEk = { Ch, AG, AEk }CEC={ Ch, AtC}

AtCD

participação totalCEG

CEE1 CEEk

Ch

AG

Ae1 Aek

...

CEEk = { Ch, AG, AEk }

CEC={ Ch, AtC}

Mapeamento da Generalização - Alternativa 3Procedimento Padrão 9

AtCO

participação total

1 CEG = {Ch, AtC, AG} CEEi = {Ch, Aei}

2 CEG = {Ch, AG} CEEi = {Ch, Aei}

3 CEG = {Ch, AG} CEEi = {Ch, Aei} CEC = {Ch, AtC}

4 CEG = {Ch, AG, AtC, Ae1, Ae2, .... Aem}

5 CEG = {Ch, AG, Ae1, Ae2, .... Aem}

6 CEG = {Ch, AG, Ae1, Ae2, .... Aem, BCEE1, BCEE2, ...BCEEm}}

7 CEEi = {Ch, AG, Aei}

8 CEEi = {Ch, AG, Aei} CEC = {Ch, AtC}

9 CEEi = {Ch, AG, Aei} CEC = {Ch, AtC}

Os 9 Procedimentos Padrão

Critério de Especialização Definido pelo Usuário - pode ser atendido por procedimentos padrão que não utilizam o critério

o usuário indica em qual especialização a nova entidade deve ser incluída, sem que exista um valor de atributo associado

Mapeamento de GeneralizaçãoCaso Especial

PRÁTICA 1