pratica 1 labbd
DESCRIPTION
Aula 1 ElaineTRANSCRIPT
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
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
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
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
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
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
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
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}
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
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
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