Modelo de Dados e Dicionário de dados da Base do SQL(PG).
De ontem em diante este site passa a apresentar o dicionário de dados da base de exercício do SQL(PG).
Resolvi fazer assim por um motivo simples: O SITE É MAIS FÁCIL DE ATUALIZAR.

Quase todos os semestres que apresento a Base de Dados do SQL(PG) o dicionário de dados apresenta 'ajustes' que devem ser feitos... pode ser coisa simples como um comentário de um campo de uma tabela que referencia o nome de outra tabela, ou pode ser o tipo de dado de um campo CP em uma tabela ser diferente do tipo de dados da correspondente CE (daí a criação da chave estrangeira não consegue ser feita). Muitas vezes os alunos me avisam e eu tenho um trabalho... alterar o Texto do SQL(PG) (em WORD) depois gerar o PDF e daí o trabalho é do aluno... ele baixa a nova versão do SQL e procura as alterações. Agora o aluno simplesmente consulta pelo site.
Este problema de edição fica mais complicado quando alguns alunos começam a 'terminar' a fase de ajuste na base de dados e começam a responder as questões de SQL.... e daí algum colega percebe uma alteração no Dicioário de Dados... Daí (depois de feita a alteração), o aluno tem que baixar a nova versão do TesteSQL e mover as suas respostas da versão antiga para a versão nova... Isso dá trabalho.
Como 100% das alterações eram no DD, resolvi publicar o DD em HTML e deixar o PDF só com as perguntas.
Todas as vezes que for alterado algum conteúdo aqui o alterado aparece em AZUL.
Eu dividi esta página em duas partes: Os modelos de dados e o Dicionário de Dados propriamente dito.
Modelo de Dados da Base do SQL(PG).
O modelo de dados e a Base de Dados lbdpgSQL foram desenvolvidos com o objetivo de praticar os comandos em SQL. O Modelo de Dados NÃO representa nenhuma realidade específica, por isso foi sendo 'montado' com a colagem de vários segmentos de modelos de outros sistemas. À medida que foi aumentando foi-se percebendo que existem três entidades com muitos relacionamentos. A entidade LOGRADOUROS 'empresta' seu atributo identificador para várias outras, do mesmo modo a entidade TIPOSTELEFONES. A entidade FUNCIONÁRIOS tem atributos de ligação e seu atributo identificador aparece em várias outras entidades. Por este motivo o Modelo de Dados foi dividido em três diagramas. A base tem cerca de 100 tabelas. Isso mesmo: cerca de... este número varia de semestre a semestre para que os alunos sejam sempre apresentados a um novo estudo do SQL.
Destas quase 100 tabelas, três delas apresentam uma quantidade maior de relacionamentos. Sendo assim centramos os diagramas 'em torno' destas entidades.
Note que quando existe uma entidade que se relaciona com duas ou mais destas três principais elas são representadas em dois diagramas.
Este é o caso da entidade funcionarios. Ela tem muitos relacionamentos em sub-modelos que apresentam cada um seu motivo e contexto. Assim, funcionarios aparece em mais de um diagrama.
O primeiro diagrama mostra como centro a entidade logradouros.

Estes são os modelos:

Modelo 1. Tabelas que recebem a CP de logradouros como CE. Exceção: medicos que tem dois relacionamentos com logradouros.



Modelo 2. Tabelas relacionadas com telefonestipos (através do relacionamento N:N __tels).



Modelo 3. Sistema de compra-venda e inventário de produtos. As tabelas centrais são: Funcionarios e Produtos.



Modelo 4. Sistema de controle de agendamento de consultas. Atenção sobre o relacionamento de medicos e logradouros.



Modelo 5. Sistema de controle das atividades profissionais de funcionarios. Atenção ao relacionamento reflexivo em Departamentos.



Modelo 6. Sistema de controle de viagens feitas por funcionarios.



Modelo 7. Sistema de controle das atividades acadêmicas dos funcionários.



Modelo 8. Sistema de controle dos carros e seguros dos carros dos funcionários.



Modelo 9. Origem de carros e ônibus como herança de veículos. No PG, carros|ônibus são implementados como visões de veículos



Estes modelos giram principalmente em torno da tabela funcionários, mas apresentam características de estudo interessantes para o aprendizado de SQL.

Dicionário de dados da Base do TesteSQL.
Agora apresenta-se o Dicionário de Dados das tabelas. Estas tabelas devem ser implementadas em PostgreSQL.
Uma primeira parte deste trabalho é ajustar a base de dados para DEPOIS executar comandos SQL.
Por isso foi escrito um script que cria boa parte das tabelas da base de dados. Este script cria as TABELAS, mas NÃO CRIA A BASE DE DADOS.
Algumas tabelas estão com alguma característica errada, ou alguma tabela está faltando ou sobrando na base de dados. Daí vem a primeira etapa no trabalho: Ajustar a base de dados.
As tabelas podem ser criadas, entretanto, sem a execução do Script (o que dá um pouco MAIS de trabalho), mas se alguém quiser e gostar:
Edita o SCRIPT copia o comando que cria a tabela, verifica se está certo (comparando com o DD) e faz os ajustes e finalmente executa o comando na base criando a tabela.
Bem, eis o DD.
Para agilizar a implementação da base de dados, no site da disciplina existe um acesso para o download de um script que gera muitas das tabelas desta base de dados (GERADOR.SQL).
O script GERADOR.SQL cria parcialmente as tabelas da base. Algumas estão corretas, algumas estão com alguns campos definidos de modo errado, algumas tabelas nem deveriam estar na base e outras que deveriam estar, NÃO estão definidas.
A Lista com as definições corretas de todas as tabelas da base de dados é apresentada neste item (a seguir na tabela 2). Por conta disso o trabalho sobre esta base deve ser realizado em etapas:
  • Criar uma base de dados (SUGESTÃO: com nome lbdpgsql). Faça o download do Script GERADOR.SQL e execute o script (criando as tabelas iniciais).
  • Faça os ajustes de estrutura em todas as tabelas desta base. Note: os campos devem estar definidos como neste dicionário de dados. Entretanto, NÃO É PRECISO que estejam na mesma ordem como os campos aparecem neste dicionário de dados. Faça o ajuste em duas 'passadas' sobre a base de dados:
    • Primeira passada: ajuste os campos e defina a chave primária de cada tabela.
    • Segunda passada: defina as chaves estrangeiras analisando cada relacionamento envolvendo duas tabelas. Na base não existem relacionamentos reflexivos, mas existem visões que devem ser deixadas para serem criadas no final da segunda passada.
  • O SCRIPT GERADOR já traz muitas das tabelas com suas Tuplas. No processo de ajuste é possível manter as tuplas nas tabelas.
  • Depois de terminados os ajustes está na hora de começar a prática de SQL. Note: os dados mantidos nas tabelas ajudam a ver o resultado do processamento dos comandos.
    A Etapa de prática de SQL é dividida em três fases:
    • Traduzindo AR para SQL
    • Escrevendo AR que respondem à perguntas e depois traduzindo para SQL (sem otimização de comandos SQL).
    • Escrevendo comandos em SQL que respondam à perguntas (otimizados ou não). SUGESTÃO: escrevam a AR, depois os comandos SQL e depois tentem otimizá-los.
É importante destacar: Esta base de dados é fundamental para o desenvolvimento de Gatilhos e Relatórios (que é o alvo do segundo projeto da disciplina). Por conta disso, depois de ajustada a base, o aluno pode 'ATACAR' por duas frentes: A Prática do SQL ou o Desenvolvimento de Gatilhos&Relatórios.

No dicionário de dados apresentado a seguir, foi usada uma normatização nos nomes dos campos das tabelas.
O objetivo desta norma é indicar o tipo de dado e o conteúdo que o campo da tabela contém nas linhas da tabela.
Todo o nome de campo é escrito com letras minúsculas e sem acentuação e sem espaço em branco entre partes eventuais do nome.
As duas primeiras letras do nome do campo são usadas para indicar o tipo de dado ou o conteúdo do campo.
As letras e os tipos correspondentes apresentam-se na tabela 1.
LetrasTipo de dado associado
pkCampo que é uma chave primária ou é parte da chave primária da tabela.
fkCampo que é uma chave estrangeira (ou faz parte de uma chave estrangeira).
txCampo com conteúdo alfanumérico (Letras e números podem constar no conteúdo deste tipo de campo).
nuCampo numérico sem processamento de operação matética (número de telefone, CEP ou CPF, por exemplo), na tabela o tipo de dado seria o CHAR.
vlCampo com valor numérico com o qual se pode fazer uma operação matemática (usado para valores monetários).
qtCampo com valor numérico com o qual se pode fazer uma operação matemática (quantidade em estoque é um exemplo).
dtCampo com valor de uma Data (temporal)
tsCampo com valor de selo de tempo (em muitos SGBDs é o tipo timestamp).
ukCampo da tabela que pode ser uma chave primária (por isso é uma Unique Key).
Tabela 1. Sigla e Tipos de dados associados apresentados nos nomes dos campos das tabelas.
Neste dicionário de dados segue-se a seguinte notação: Negrito é Chave Primária (PK-Primary Key), se for composta, todos os campos aparecem em negrito, Itálico é Chave Estrangeira (FK-Foreign Key), Chave Candidata não tem notação (note que aparece o uk no início do nome, ou Unique Key), somente são explicadas no campo comentário. Foi também usada a coluna CP com a letra 'S' indicando se o campo faz parte ou é a Chave Primária da Tabela. Do mesmo modo, a coluna CE indica se o campo é ou faz parte de uma chave estrangeira. Este dicionário também tem a coluna ÑNULO para indicar se o campo aceita ou não valores nulos (Lembre-se que toda Chave Primária NÃO pode ser nula). Para completar os campos das tabelas tem um campo de comentário que apresenta uma descrição semântica de cada campo das tabelas.
Se, ao analisar o Dicionário de Dados, você perceber qualquer imperfeição na definição de campos das tabelas avise o professor. A anomalia será analisada e atualizada no Dicionário de Dados (sendo destacada em cor AZUL) e uma nova data passará a constar na estrutura de menus que dá acesso ao TesteSQL.
Os dados técnicos do SGBD Postgresql estão na documentação oficial em: https://www.postgresql.org/
Explicando, agora as partes da tabela com o Dicionário de Dados:
  • O nome da tabela está em Negrito escrito em uma linha em tom AZUL.
    Na mesma linha aparece um texto explicando o conteúdo da tabela.
  • Os nomes dos campos estão listados abaixo do nome da tabela.
  • Na mesma linha aparecem os Tipos de Dados ao lado de cada campo.
  • A coluna PK indica se o campo é ou faz parte da Chave Primária da Tabela.
  • A coluna FK indica se o campo é uma Chave Estrangeira.
  • A coluna ÑNulo recebe 'Sim' ou Não, para indicar se o campo é requerido ou não no registro.
  • O campo comentário é a descrição semântica do campo (o que deve ser preenchido em seu valor e/ou qual o seu comportamento).
Note:
O texto que aparece na mesma linha que o nome da tabela é o comentário que explica a finalidade da tabela.
Os comentários devem ser incluídos na descrição da tabela e dos campos, respectivamente. Em sala de aula é explicado como fazer esta atualização usando o pgAdmin 4.
Segue a tabela 2:
areaestudosCadastro das áreas de estudo de interesse geral, tais como EXATAS, HUMANAS, etc., e suas subdivisões.
CampoTipoPKUKFKÑNuloComentário
pkareaestudosmallintSSimPK da Tabela. Número inteiro sequencial crescente de 1 em 1.
txnomeareacharacter varying(250)SimNome da area de estudo (ou área de conhecimento).
txdescricaoareatextNãoDescrição detalhada de uma área de Estudo (ou área de conhecimento).
dtcadareaestudodateSimData de geração do registro
areaestudocursosRegistro das áreas de estudos de cada curso. É o desmembramento de um relacionamento N:M.
CampoTipoPKUKFKÑNuloComentário
pkareaestcursointegerSSimPK da Tabela. Número inteiro sequencial crescente de 1 em 1.
fkcursosintegerSSSimParte da UK (com fkareaestudo), FK para a tabela Cursos.
fkareaestudosintegerSSSimParte da UK (com fkcurso), FK para a tabela áreas de Estudos (areaestudos).
dtcadareaestcursodateSimData de geração do registro.
areaestudodisciplinasRegistro das áreas de estudo de cada disciplina de curso. É o desmembramento de um relacionamento N:M.
CampoTipoPKUKFKÑNuloComentário
pkareaestdisciplinaintegerSSimPK da Tabela. Número inteiro sequencial crescente de 1 em 1.
fkdisciplinasintegerSSSimParte da UK (com fkareaestudos), FK para a Tabela Disciplinas.
fkareaestudosintegerSSSimParte da UK (com fkdisciplinas), FK para a tabela áreas de Estudos (areaestudos).
dtcadareaestdiscipldateSimData de geração do registro.
areaestudolivrosRegistro das áreas de estudos de cada livro. É o desmembramento de um relacionamento N:M.
CampoTipoPKUKFKÑNuloComentário
pkareaestlivrointegerSSimPK da Tabela. Número inteiro sequencial crescente de 1 em 1.
fklivrointegerSSSimParte da UK (com fkareaestudo), FK para a tabela livros.
fkareaestudointegerSSSimParte da UK (com fklivro), FK para tabela áreas de Estudos (areaestudos).
nugrauinfluencianumeric(3,0)NãoPercentagem de cobertura da área de Estudo no livro (num. inteiro).
dtcadareaestllivrodateSimData de geração do registro.
armazensCadastro dos Armazens dos clientes para onde as vendas registradas por um funcionario podem ser entregues.
CampoTipoPKUKFKÑNuloComentário
pkarmazemsmallintSSimPK da Tabela. Número inteiro sequencial crescente de 1 em 1.
txnomearmazemcharacter varying(50)SimNome curto ou usual do Armazem. Como ele É identificado informalmente.
txdescricaogeralcharacter varying(500)NãoTexto com descrição completa do armazÉm (capacidade, pÉ direito mÉdio, etc.).
fklogradourointegerSNãoFK indicando o logradouro onde se localiza o armazÉm.
txcomplementocharacter varying(50)NãoTexto com o complemento do logradouro do armazem (número, andar, etc.)
fkclienteintegerSSimFK indicando o cliente que É dono ou aluga o armazÉm.
nutelefonecharacter(12)NãoNúmero de telefone. Formato OP-DD-TTTT-RRRR, sem o ZERO no início, só numeros.
nucepcharacter(8)NãoNúmero do CEP (somente números).
qtareadouble precisionSimNúmero inteiro indicando a área total.
dtcadarmazemdateSimData de geração do registro
atividadesCadastro com as atividades profissionais desempenhadas por um funcionário.
CampoTipoPKUKFKÑNuloComentário
pkatividadeintegerSSimPK da Tabela. Número inteiro sequencial crescente de 1 em 1.
txnomeatividadecharacter varying(50)SimNome curto ou usual.
txdescricaocharacter varying(500)SimDescrição detalhada e completa de uma atividade profissional.
dtcadatividdateSimData de geração do registro
atribuicoesRegistro dos Professores de cada uma da Disciplinas. É o desmembramento do relacionamento N:M. Tem a UK composta.
CampoTipoPKUKFKÑNuloComentário
pkatribuicaointegerSSimPK da Tabela. Número sequencial crescente de 5 em 5 unidades.
fkprofessorsmallintSSSimParte da UK Composta com fkdisciplina, FK para a tabela professores.
fkdisciplinasmallintSSSimParte da UK Composta com fkprofessor, FK para a tabela disciplinas.
qthorasatribuidassmallintSimQuantidade de horas de uma disciplina atribuídas ao professor para a disciplina.
dtatribuicaodateSimData de atribuição da disciplina ao professor.
dtcadatribdateSimData de geração do registro.
atuacoesRegistro das atuações profissionais dos funcionários nos projetos. É um desmembramento de um N:M e tem uma UK composta.
CampoTipoPKUKFKÑNuloComentário
pkatuacaosmallintSSimPK da tabela. Número inteiro sequencial crescente de 1 em 1.
fktarefaprojetointegerSSSimParte da UK Composta com fkfuncionario e dtinicio, FK para a tabela tarefasprojetos.
fkfuncionariointegerSSSimParte da UK Composta com fktarefaprojeto e dtinicio, FK para tabela funcionários.
dtiniciodateSSimParte da UK Composta com fkfuncionario e fktarefaprojeto, É a Data de início de atuação do Funcionário em uma tarefa de um projeto.
dtterminodateNãoData de tÉrmino de atuação do funcionário em uma tarefa de um projeto.
qttempoduracaosmallintNãoQuantidade de horas de participação do funcionário em uma tarefa de um projeto.
dtcadatuacaodateSimData de geração do registro
autoresCadastro dos autores de alguma forma de publicação de conhecimento. Na maioria dos casos são autores de livros.
CampoTipoPKUKFKÑNuloComentário
pkautorintegerSSimPK da Tabela. Número inteiro sequencial crescente de 1 em 1.
txnomeautorcharacter varying(90)SimNome completo do autor.
fklogradourointegerSNãoFK para a tabela logradouros da cidade residência do autor.
txcomplementocharacter varying(25)NãoTexto com o complemento do logradouro de residência do autor (número, andar, etc.)
nucepcharacter(8)NãoNúmero do CEP (somente números).
dtnascimentodateNãoData de nascimento do autor
dtcadautordateSimData de geração do registro
autorestelsRegistro dos telefones de cada autor de publicação.
CampoTipoPKUKFKÑNuloComentário
pkautortelintegerSSimPK da Tabela. Número inteiro sequencial crescente de 1 em 1.
fkautorintegerSSimFK para a tabela autores
fktelefonetiposmallintSNãoFK para a tabela telefonestipos
nutelefonecharacter(15)SimNúmero do telefone (com operadora e DDD - somente os números)
dtcadautorteldateSimData de geração do registro.
autoriasRegistro dos autores de um livro. É o desmembramento de um relacionamento N:M. A Chave Primária É composta.
CampoTipoPKUKFKÑNuloComentário
pkautoriaintegerSSimPK da Tabela. Número inteiro sequencial crescente de 1 em 1.
fklivrointegerSSSimParte de uma UK composta com fkautor, FK para a tabela Livros.
fkautorintegerSSSimParte de uma UK composta com fklivro, FK para a tabela Autores
dtcadautoriadateSimData de geração do registro
bairrosCadastro dos bairros das cidades.
CampoTipoPKUKFKÑNuloComentário
pkbairrointegerSSimPK da Tabela. Número inteiro sequencial crescente de 1 em 1.
txnomebairrocharacter varying(120)NãoTexto com o nome do bairro da cidade.
fkcidadeintegerSSimFK para a tabela cidades onde se localiza o bairro.
dtcadbairrodateSimData de geração do registro.
bairrologradourosCadastro dos bairros das cidades.
CampoTipoPKUKFKÑNuloComentário
pkbairrologradourointegerSSimPK da Tabela.
fkbairrointegerNãoFK para a tabela bairros.
fklogradourointegerSSimFK para a tabela logradouros.
dtcadbairrologradourodateSimData de geração do registro.
bibliografiaRegistro dos livros da bilbiografia das disciplinas de um curso. É o desmembramento de um N:M. Tem a PK composta.
CampoTipoPKUKFKÑNuloComentário
pkbibliografiaintegerSSSimPK da Tabela. Número inteiro sequencial iniciando de 1.
fkdisciplinasmallintSSSimParte da UK (composta) e FK indicando o código da disciplina
fklivrointegerSSSimParte da UK (composta) e FK para a tabela livro.
aotipocharacter(1)SimLetra indicando o tipo de bibliografia Básico ou Complementar
dtadocaodolivrodateSimData que o livro passou a fazer parte da bibliografia da disciplina.
dtcadbibliografiadateSimData de geração do registro.
capacitacoesRegistro dos cursos concluídos pelos funcionários. É o desmembramento do relacionamento N:M. Tem uma PK composta.
CampoTipoPKUKFKÑNuloComentário
pkcapacitacaosmallintSSimPK da tabela. Número inteiro sequencial iniciando de 1.
fkcursosmallintSSimParte da UK (composta com fkfuncionario) e FK para a tabela cursos.
fkfuncionariointegerSSimParte da UK (composta com fkcurso) e FK para a tabela funcionário.
nucertificadosmallintSimNúmero do Certificado emitido para o curso concluído.
dtregistrodateSimData de registro do diploma do funcionário (em órgão público competente).
dtcapacitacaodateSimData de capacitação do funcionário (quando terminou o curso).
dtcadcapacitacaodateSimData de geração do registro.
cidadesCadastro das cidades. A partir delas os bairros e por fim os logradouros.
CampoTipoPKUKFKÑNuloComentário
pkcidadeintegerSSimPK da Tabela. Número inteiro sequencial crescente de 1 em 1.
txnomecidadecharacter varying(250)NãoNome completo da cidade
fkestadodopaischaracter(2)SNãoSigla do estado onde a cidade está fundada.
txformaacessotextNãoDescrição das formas de acesso à cidade (hidrovias, estrada, ferrovias, etc)
qtpopulacaorealNãoPopulação estimada
qtarearealNãoárea total municipal
dtfundacaodateNãoData de fundação da cidade.
dtcadcidadedateSimData de geração do registro
clientestelsRegistros dos telefones de cada cliente.
CampoTipoPKUKFKÑNuloComentário
pkclientetelsmallintSSimPK da Tabela. Número inteiro sequencial crescente de 1 em 1.
fkclienteintegerSSimFK para a tabela clientes
fktelefonetiposmallintSNãoFK para a tabela telefonestipos
nutelefonecharacter(15)SimNúmero do telefone (com operadora, DDD e somente os números)
txnomecontatocharacter(50)NãoNome de uma pessoa que atende como contato no telefone.
dtcadclienteteldateSimData de geração do registro
clientesCadastro dos Clientes de uma empresa.
CampoTipoPKUKFKÑNuloComentário
pkclienteintegerSSimPK da Tabela. Número inteiro sequencial crescente de 1 em 1.
txnomeclientecharacter varying(250)SimNome usual completo (sem abreviações) do cliente
txrazaosocialcharacter varying(250)NãoRazão social completa do Cliente
nudocumentochar(15)SimNúmero do Documento que caracteriza o cliente (CNPJ | CPF | RG).
aotipodocumentocharacter(1)SimF-(Pessoa Física) CPF | J-(Pessoa Jurídica) CNPJ | R-(Pessoa Física) RG
fklogradourointegerSNãoFK com o código do comercial do cliente.
txcomplementocharacter varying(25)NãoTexto com o complemento do logradouro comercial do cliente (número, andar, etc.)
nucepcharacter(8)NãoNúmero do CEP (somente números)
vllimitecomprarealSimValor limite de compra para o cliente
aosituacaocharacter(1)SimAtributo Operacional indicando a Situação do Cliente (A-Ativo ou B-Bloqueado).
dtcadclientedateSimData de geração do registro
consultasRegistros das consultas marcadas para os funcionarios.
CampoTipoPKUKFKÑNuloComentário
pkconsultaintegerSSimPK da Tabela. Número inteiro sequencial crescente de 1 em 1.
fkfuncionariointegerSSimFK para a tabela funcionário.
fkmedicosmallintSSimFK para a tabela mÉdico.
dthoraconsultatimestamp without time zoneSimData e hora da consulta (programada).
dthorarealizadatimestamp without time zoneNãoData e hora da realização da consulta.
fkplanodesaudesmallintSSimFK para a tabela planosdesaude
aosituacaoconsultacharacter(1)SimAtributo Operacional indicando Agendada, Realizada ou Cancelada
dtcadconsultadateSimData de geração do registro
coresveiculosCadastro dos carros de funcionários e as respectivas cores dos carros.
CampoTipoPKUKFKÑNuloComentário
fkveiculointegerSSimParte da PK da tabela. FK para a tabela veiculos (visão -> carros).
fkcorintegerSSimParte da PK da tabela. FK para tabela cores.
dtcadcorveiculodateSimData de geração do registro
coresCadastro de cores pantone usados para veículos.
CampoTipoPKUKFKÑNuloComentário
pkcorintegerSSimPK da Tabela
txnomecorcharacter varying(250)SimNome usual completo (sem abreviações)
nupantoneintegerSimNúmero da cor na tabela Pantone (indicativo de cor)
dtcadcordateSimData de geração do registro
cursosCadastro de cursos de uma instituição.
CampoTipoPKUKFKÑNuloComentário
pkcursosmallintSSimPK da Tabela
txnomecursocharacter varying(250)SimNome completo (sem abreviações)
fkinstituicaosmallintSSimFK com o código da instituição de ensino.
qtcargahorariasmallintSimQuantidade de horas do curso
dtcadcursodateSimData de geração do registro
departamentosCadastro dos departamentos da empresa onde os funcionarios trabalham.
CampoTipoPKUKFKÑNuloComentário
pkdeptocharacter(3)SSimPK da Tabela. Sequência de UMA letra e dois números, informados pelo usuário.
txnomedeptocharacter varying(90)SimNome usual completo (sem abreviações)
fkfuncionariogerenteintegerSNãoFK para a tabela funcionarios (gerente do departamento).
fkdeptosuperiorcharacter(3)SNãoFK para a tabela departamentos. Código do departamento superior na empresa.
txlocalizacaocharacter varying(80)NãoDescrição da localização do departamento (Bloco, andar, sala,etc)
qtareatotalsmallintNãoQuantidade da área ocupada pelo departamento
dtcriacaodeptodateNãoData da criação do departamento na empresa
dtcaddeptodateSimData de geração do registro
departamentostelsRegistro com os telefones de cada departamento.
CampoTipoPKUKFKÑNuloComentário
pkdeptotelsmallintSSimPK da Tabela
fkdeptocharacter(3)SSimFK para a tabela departamentos
fktelefonetiposmallintSNãoFK para a tabela telefonestipos
nutelefonecharacter(15)SimNúmero do telefone com operadora+DDD+número sem traços ou parenteses.
txnomecontatocharacter varying (30)NãoNome de uma pessoa que atende como contato no telefone.
dtcaddeptoteldateSimData de geração do registro
disciplinasCadastro das disciplinas oferecidas em um curso
CampoTipoPKUKFKÑNuloComentário
pkdisciplinaintegerSSimPK da Tabela
fkcursosmallintSSimFK para a tabela cursos
txnomecharacter varying(250)SimNome completo da Disciplina
txementacharacter varying(250)NãoTexto com a ementa disciplinar
txcriterioavaliacaocharacter varying(500)NãoTexto com a descrição do critÉrio de avaliação da disciplina.
qthorassmallintSimQuantidade de horas-aulas (de 60 min.) que ocupa e disciplina
dtcaddisciplinadateSimData de geração do registro
duplicatasCadastro das Duplicatas que devem ser recebidas pelas vendas feitas em uma empresa.
CampoTipoPKUKFKÑNuloComentário
pkduplicataintegerSSimPK da Tabela.
fknfvendaintegerSSimFK apontando para a Nota Fiscal da qual se gera a Duplicata.
dtvencimentoDateSimData de vencimento da duplicata.
dtpagamentoDateNãoData de pagamento da duplicata.
vlduplicatarealNãoValor da Duplicata.
vldescontorealSimValor de Desconto.
vlliquidorealSimValor Líquido da Duplicata.
vlmultarealSimValor da Multa por atraso de pagamento da Duplicata.
dtcadduplicataDateSimData de geração do registro.
editorastelsRegistros de telefones de cada editora.
CampoTipoPKUKFKÑNuloComentário
pkeditoratelsmallintSSimPK da Tabela
fkeditorasmallintSSimFK apontando para a Tabela Editoras.
fktipotelefonesmallintSNãoFK apontando para a tabela telefonestipos.
nutelefonecharacter(15)SimNúmero do telefone (somente os números)
txnomecontatocharacter(30)NãoNome de uma pessoa que atende como contato no telefone.
dtcadeditteldateSimData de geração do registro
editorasCadastro das Editoras de Livros, Revistas e/ou periódicos.
CampoTipoPKUKFKÑNuloComentário
pkeditoraintegerSSimPK da Tabela
txnomeeditoracharacter(70)SimNome usual da editora (sem abreviações ).
txrazaosocialcharacter varying(250)NãoRazão social completa.
nucnpjcharacter(16)NãoNúmero do CNPJ da Editora (somente números).
fklogradourointegerSNãoFK com o código do logradouro da editora
txcomplementocharacter varying(25)NãoTexto com o complemento do logradouro comercial do cliente (número, andar, etc.)
nucepcharacter(8)NãoNúmero do CEP (somente números).
aoporteeditoracharacter(1)SimP|M|G - Porte da editora (Pequena|MÉdia|Grande).
aoabrangenciacharacter(1)SimL|E|N|I - Abrangência da editora (Local|Estadual|Nacional|Internacional)
dtfundacaodateSimData de fundação da editora.
dtcadeditoradateSimData de geração do registro
empresasCadastro de empresas onde os funcionarios trabalham ou trabalharam.
CampoTipoPKUKFKÑNuloComentário
pkempresasmallintSSimPK da Tabela
txnomeusualcharacter varying(150)SimNome usual completo (sem abreviações).
txrazaosocialcharacter varying(250)SimRazão social completa
nucnpjcharacter(16)NãoNúmero do CNPJ da Empresa (somente números).
fklogradourointegerSNãoFK apontando o logradouro da empresa
txcomplementocharacter varying(25)NãoTexto com o complemento do logradouro comercial do cliente (número, andar, etc.)
nucepcharacter(8)NãoNúmero do CEP (somente números).
fksetoratuacaointegerSNãoFK apontando o setor de atuação da empresa.
aoporteempresacharacter(1)SimP|M|G - Porte da empresa (Pequena | MÉdia | Grande).
dtfundacaodateSimData de fundação da empresa.
dtcadempresadateSimData de geração do registro
empresastelsRegistros dos telefones de cada empresa.
CampoTipoPKUKFKÑNuloComentário
pkempresatelsmallintSSimPK da Tabela
fkempresasmallintSSimFK apontando para a tabela empresas
fktipotelefonesmallintSNãoFK para a tabela telefonestipos
nutelefonecharacter(15)SimNúmero do telefone (somente os números)
txnomecontatocharacter varying(30)NãoNome de uma pessoa que atende como contato no telefone.
dtcadempresateldateSimData de geração do registro
especmedicasCadastro das Especialidades MÉdicas.
CampoTipoPKUKFKÑNuloComentário
pkespecialidadesmallintSSimPK da Tabela
txnomeespecialidadecharacter varying(200)SimNome usual completo (sem abreviações)
txdescricaoespecialidadetextSimDescrição completa das principais atribuições da especialidade (sem abreviações).
dtcadespecmeddateSimData de geração do registro
estadosdauniaoCadastro dos Estados da República Federativa do Brasil
CampoTipoPKUKFKÑNuloComentário
pkestadouniaocharacter(2)SSimPK da Tabela - Sigla do estado
txnomecharacter varying(250)SimNome completo (sem abreviações).
txnomecapitalcharacter varying(250)SimNome da cidade que É capital do estado
qtareatotalintegerNãoValor da área total em km2
qtcidadessmallintSNãoQuantidade de cidades que tem o estado
qtpopulacaointegerSNãoQuantidade de pessoas que moram no estado
dtcadestadodateNãoData de geração do registro
fabricantesCadastro dos Fabricantes.
CampoTipoPKUKFKÑNuloComentário
pkfabricantesmallintSSimPK da Tabela
txnomecharacter varying(250)SimNome usual completo (sem abreviações).
txrazaosocialcharacter varying(250)SimRazão social completa.
nucnpjcharacter(15)SNãoNúmero do CNPJ do fabricante (somente números).
fklogradourointegerSNãoFK apontando o logradouro do fabricante.
txcomplementocharacter varying(25)NãoComplemento do logradouro comercial do cliente (número, andar, etc.)
nucepcharacter(8)NãoNúmero do CEP (somente números).
fksetoratuacaosmallintSNãoFK apontando o setor de atuação da fabricante.
aoportefabricantecharacter(1)SimP|M|G - Porte do fabricante (Pequena | MÉdia | Grande).
dtfundacaodateSimData de fundação (criação da empresa) do fabricante.
dtcadfabricantedateSimData de geração do registro
fabricantestelsCadastro dos telefones dos fabricantes
CampoTipoPKUKFKÑNuloComentário
pkfabricantetelintegerSSimPK da Tabela
fabricantesIDsmallintSSimFK para a tabela fabricantes.
fktipotelefonesmallintSNãoFK para a tabela telefonestipos
nutelefonecharacter(15)SimNúmero do telefone com operadora e DDD (somente os números).
txnomecontatocharacter(30)NãoNome de uma pessoa que atende como contato no telefone.
dtcadfabricteldateSimData de geração do registro
faturasCadastro das Duplicatas que devem ser recebidas pelas vendas feitas em uma empresa.
CampoTipoPKUKFKÑNuloComentário
pkfaturasmallintSSimPK da Tabela.
fknunfcompraintegerSSimFK apontando para a Nota Fiscal da qual se gera a Fatura.
dtvencimentoDateSimData de vencimento da Fatura.
dtpagamentoDateSimData de pagamento da Fatura.
vlfaturarealNãoValor da Fatura.
vldescontorealSimValor de Desconto da Fatura
vlliquidorealSimValor Líquido da Fatura.
vlmultarealSimValor da Multa por atraso de pagamento da Fatura.
dtcadfaturaDateSimData de geração do registro.
feitosporRegistros dos Serviços feitos pelas oficinas.
CampoTipoPKUKFKÑNuloComentário
pkfeitosporintegerSSimPK da Tabela. Número inteiro sequencial crescente de 1 em 1.
fkoficinaintegerSSSimFK para tabela oficinas (que realiza um serviço).
fkservicointegerSSSimFK para tabela serviços (prestados por uma oficina).
txdescricaocomplementarcharacter varying(250)NãoDescrição complementar do serviço prestado (se preciso).
nudiasprevistossmallintNãoPrazo inicialmente previsto para o serviço.
dtcadfeitopordateSimData de geração do registro
fornecedoresCadastro dos Fabricantes.
CampoTipoPKUKFKÑNuloComentário
pkfornecedorsmallintSSimPK da Tabela
txnomecharacter varying(250)SimNome usual completo (sem abreviações).
txrazaosocialcharacter varying(250)SimRazão social completa.
nucnpjcharacter(15)SNãoNúmero do CNPJ do fornecedor (somente números).
fklogradourointegerSNãoFK apontando o logradouro do fornecedor.
txcomplementocharacter varying(25)NãoComplemento do logradouro comercial do fornecedor (número, andar, etc.)
nucepcharacter(8)NãoNúmero do CEP (somente números).
nusedesnumeric(3,0)SimNúmero de sedes que o fornecedor possui (loja central e filiais).
vllimitecompradouble precisonSimValor Limite para compra com o Fornecedor.
fksetoratuacaosmallintSNãoFK para a tabela setoresdeatuacao (setor de atuação do fornecedor).
aoportefornecedorcharacter(1)SimP|M|G - Porte do fornecedor (Pequena | MÉdia | Grande).
dtfundacaodateSimData de fundação do fornecedor.
dtcadfornecedordateSimData de geração do registro
fornecorestelsCadastro de telefones dos fornecedores
CampoTipoPKUKFKÑNuloComentário
pkfornecedortelsmallintSSimPK da Tabela
fkfornecedorsmallintSSimFK para a tabela fornecedores.
fktipotelefonesmallintSNãoFK para a tabela telefonestipos
nutelefonecharacter(15)SimNúmero do telefone com operadora e DDD (somente os números).
txnomecontatocharacter(30)NãoNomes das pessoas que atendem como contato no telefone.
dtcadfabricteldateSimData de geração do registro
fornecimentosCadastro dos Fornecimentos de produtos feitos por fornecedores
CampoTipoPKUKFKÑNuloComentário
pkfornecimentosmallintSSimPK da Tabela
fkprodutocharacter(12)SSNãoFK para a tabela produtos. Forma com fkfornecedor uma UK
fkfornecedorsmallintSSNãoFK para a tabela fornecedores. Forma com fkproduto uma UK
dtcadfornecimentodateSimData de geração do registro
funcionariosCadastro dos Funcionários
CampoTipoPKUKFKÑNuloComentário
pkfuncionariointegerSSimPK da Tabela
nucpfcharacter(11)SNãoNúmero no Cadastro de Pessoas Físicas (Brasil).
txprenomescharacter varying(40)SimNomes do funcionário sem abreviações e sem o sobrenome.
txsobrenomecharacter varying(15)SimSobrenome completo (sem abreviações)
fkdeptocharacter(3)SNãoFK apontando para a tabela departamentos
fkfuncaosmallintSNãoFK apontando para a tabela Funções.
fkniveleducacaosmallintSNãoFK com o código do nível de educação (escolaridade)
fklogradourointegerSNãoFK com o código do Logradouro de moradia do Funcionário
txcomplementocharacter varying(25)NãoTexto com o complemento do logradouro comercial do cliente (número, andar, etc.)
nuramalcharacter(4)NãoNúmero do ramal telefônico do funcionario
dtcontratacaodateNãoData de contratação
aosexocharacter(1)NãoAtributo Operacional indicando o Sexo como Masculino e Feminino
dtnascimentodateNãoData de nascimento
txresenhatext (3000)NãoTexto descrevendo a personalidade e dinÂmica profissional do funcionário
vlsalariorealNãoValor do salário base do funcionário.
vlbonusrealNãoValor do Bônus de ganho (se não houver deve ser 0-Zero).
vlcomissaorealNãoValor de Comissão (se não houver deve ser 0-Zero)
nucepcharacter(8)NãoNúmero do CEP (somente números).
dtcadfuncionariodateSimData de geração do registro
funcionariosplanosRegistro dos planos de saúde dos funcionários.
CampoTipoPKUKFKÑNuloComentário
pkfuncionarioplanosmallintSSimPK da tabela.
fkfuncionariosmallintSSimFK apontando para a tabela funcionarios.
fkplanodesaudeintegerSNãoFK apontando para a tabela plano de saúde.
dtvinculacaodateSimData de vinculação do funcionário ao plano de saúde.
dtdesligamentodateSimData de desligamento do funcionário ao plano de saúde.
dtcadfuncplanodateSimData de geração do registro
funcionariostelsRegistros dos telefones de cada funcionário.
CampoTipoPKUKFKÑNuloComentário
pkfuncionariotelintegerSSimPK da Tabela
fkfuncionariointegerSSimFK para a tabela funcionarios.
fktipotelefonesmallintSNãoFK apontando para a tabela telefonestipos
nutelefonecharacter(15)SimNúmero do telefone (somente os números)
txnomecontatocharacter(30)NãoNome de uma pessoa que atende como contato no telefone.
dtcadfuncionarioteldateSimData de geração do registro
funcoesCadastro das funções que podem ser exercidas por funcionários.
CampoTipoPKUKFKÑNuloComentário
pkfuncaosmallintSSimPK da Tabela
txnomefuncaocharacter varying(60)SimNome completo e sem abreviações
qtanosprefuncaosmallintNãoQuantidade de anos na empresa para assumir a função.
dtcadfuncaodateSimData de geração do registro
grausdeescolaridadeCadastro dos Níveis de Educação.
CampoTipoPKUKFKÑNuloComentário
pkgrauescolaridadesmallintSSimPK da Tabela
txnomecomumcharacter varying(30)SimNome do grau de escolaridade (sem abreviações).
qtanosdeestudosmallintSimQuantidade de anos de estudo para alcançar o grau de escolaridade.
dtcadgrauescolaridadedateSimData de geração do registro
habilitacoesRegistro dos Cursos que cada professor tem habilitação para atuar.
CampoTipoPKUKFKÑNuloComentário
pkhabilitacaointegerSSimPK da Tabela
fkcursosmallintSSSimPK (composta) da tabela. FK para a tabela curso.
fkprofessorsmallintSSSimPK (composta) da tabela. FK para a tabela professor.
dthabilitacaodateSimData de habilitação do professor para ministrar a disciplina.
dtcapacitacaodateSimData quando o professor conseguiu a capacitação para ministrar a disciplina.
dtcadhabilitacaodateSimData de geração do registro
historicoprofissionalRegistro do histórico profissional de um funcionário.
CampoTipoPKUKFKÑNuloComentário
pkhistoricosmallintSSimPK da Tabela
fkfuncionariointegerSSimFK para tabela funcionários.
fkempresasmallintSNãoFK para tabela empresas.
fkatividadesmallintSSimFK para tabela atividades.
dtiniciodateSimData de inicio de atividade do funcionário na empresa (na atividade)
dtterminodateSimData de termino de atividade do funcionário na empresa (na atividade)
dtcadhistprofdateSimData de geração do registro
instituicoesensinoCadastro de Instituições de Ensino.
CampoTipoPKUKFKÑNuloComentário
pkinstituicaosmallintSSimPK da Tabela
txnomeinstituicaocharacter varying(200)SimNome usual completo (sem abreviações)
fklogradourointegerSNãoFK com o código do logradouro da instituição de ensino.
txcomplementocharacter varying(25)NãoTexto com o complemento do logradouro comercial do cliente (número, andar, etc.)
nucepcharacter(8)NãoNúmero do CEP
aotipoinstituicaocharacter(1)NãoG-pública (Gratuíta) | P-Particular.
dtfundacaodateSimData de fundação da instituição de ensino.
dtcadinstensdateSimData de geração do registro
instituicoestelsRegistros dos telefones das Instituições de Ensino.
CampoTipoPKUKFKÑNuloComentário
pkinstituicaotelsmallintSSimPK da Tabela
fkinstituicaosmallintSSimFK para a tabela instituições de ensino
fktipotelefonesmallintSNãoFK para a tabela telefonestipos
nutelefonecharacter(15)SimNúmero do telefone (somente os números)
txnomecontatocharacter varying(30)NãoNome de uma pessoa que atende como contato no telefone.
dtcadinstensteldateSimData de geração do registro
inventariosCadastro com o levantamento de itens de estoque feitos pelos funcionários.
CampoTipoPKUKFKÑNuloComentário
pkinventariosmallintSSimPK da tabela.
fkprodutocharacter(12)SSSimParte da UK (com fkfuncionario e dtinventario). FK para a tabela produto.
fkfuncionariointegerSSSimParte da UK (com fkproduto e dtinventario). FK para a tabela funcionário.
dtinventariodateSSimParte da UK (com fkfuncionario e fkproduto). Data de realização do inventário de estoque.
qtestoquedecimalSimQuantidade contabilizada do item de produto.
txlocalcharacter varying(250)NãoLocal de realização do Inventário
dtcadinventariodateSimData de geração do registro
livrosCadastro dos Livros que podem ser usados em bibliografias de disciplinas.
CampoTipoPKUKFKÑNuloComentário
pklivrointegerSSimPK da Tabela
txtituloacervocharacter varying(90)SimTexto com o título do acervo
nuisbnbigintSSimNúmero do ISBN (International Standard Book Number)
fkeditoraintegerSNãoFK com o código da editora que publicou o livro.
dtpublicacaodateNãoData de publicação do Livro
nuanopublicacaochar(4)NãoAno de Publicação do Livro
qtpaginassmallintNãoQuantidade de páginas que tem o livro (sem contar capa e contracapa.
qtexemplaresacervosmallintNãoQuantidade total do livro no acervo, É alterada no movimento de retirada
qtexemplaresconsultasmallintNãoQuantidade mínima (em consulta) para o livro no acervo
dtcadlivrodateSimData de geração do registro
logradourosCadastro dos logradouros.
CampoTipoPKUKFKÑNuloComentário
pklogradourointegerSSimPK da tabela.
txnomelogradourocharacter varying(250)SimTexto com o nome do logradouro com o tipo (praça, rua, etc.) indicado.
fkcidadeintegerSNãoFK para a tabela de Cidades.
fklogradourotipointegerSNãoFK para a tabela de Bairros.
aotipodepisocharacter(1)NãoT-Terra,C-Cascalho,P-Paralelepípedo, A-Asfalto, O-Concreto e X-Sem definição
dtcadlogradourodateSimData de geração do registro
logradourostiposCadastro dos tipos de logradouros.
CampoTipoPKUKFKÑNuloComentário
pklogradourotipointegerSSimPK da tabela.
txnometipologradourocharacter varying(250)SimTexto com o nome do logradouro com o tipo (praça, rua, etc.) indicado.
dtcadtipologradourodateSimData de geração do registro
matriculasRegistros das matrículas de funcionários em turmas de cursos.
CampoTipoPKUKFKÑNuloComentário
pkmatriculasmallintSSimPK da Tabela
fkatribuicaointegerSSimFK para a tabela atribuicoes (que relaciona professores com disciplinas).
fkfuncionariointegerSNãoFK para a tabela funcionários
dtmatriculadateSimData de Matrícula
dtvalidadedateSimData de Validade da Matrícula (duração do vinculo funcionário-disciplina).
dtcadmatriculadateSimData de geração do registro
medicosCadastro de médicos.
CampoTipoPKUKFKÑNuloComentário
pkmedicosmallintSSimPK da Tabela
txnomemedicocharacter varying(200)SimNome completo e sem abreviação
nucrmintegerSimNúmero do registro do mÉdico no Conselho Regional dos mÉdicos.
fkespecialidadesmallintSNãoFK com o código da especialidade mÉdica
instituicoesensinoIDsmallintSSimFK com o código da instituição de ensino onde o mÉdico se formou
fklogradouromoradiaintegerSNãoFK com o código do Logradouro de moradia do MÉdico
txcomplementomoradiacharacter varying(25)NãoTexto com o complemento do logradouro comercial do cliente (número, andar, etc.)
fklogradouroclinicaintegerSNãoFK com o código do Logradouro da Clínica Principal do MÉdico
txcomplementoclinicacharacter varying(25)NãoTexto com o complemento do logradouro comercial do cliente (número, andar, etc.)
aoativocharacter(1)SimAtributo operacional com valor A | D (Ativo | Desligado)
dtcadmedicodateSimData de geração do registro
medicostelsRegistros dos telefones dos médicos.
CampoTipoPKUKFKÑNuloComentário
idsmallintSSimPK da Tabela
medicosIDsmallintSSimFK para a tabela medicos
telefonestiposIDsmallintSNãoFK para a tabela telefonestipos
nutelefonecharacter(15)SimNúmero do telefone (somente os números)
txnomecontatocharacter varying(30)NãoNome de uma pessoa que atende como contato no telefone.
dtcadmedicoteldateSimData de geração do registro
movimentosRegistro de movimentos de livros realizados pelos funcionários.
CampoTipoPKUKFKÑNuloComentário
pkmovimentointegerSSimPK da Tabela
fklivrointegerSNãoFK para a tabela livros (registrado no movimento).
fkfuncionariointegerSNãoFK para a tabela funcionarios (que faz o movimento).
dtmovimentodateSimData de realização do movimento
fktipomovimentosmallintSNãoFK com o código do tipo de movimento
dtprevistadevolucaodateNãoData prevista de devolução do livro
dtrealdevolucaodateNãoData real da devolução
dtcadmovimentodateSimData de geração do registro
movimentostiposRegistro de movimentos de livros realizados pelos funcionários.
CampoTipoPKUKFKÑNuloComentário
pktipomovimentosmallintSSimPK da Tabela
txnometipomovcharacter varying(250)SimNome do tipo de movimento (sem abreviações).
aopermiteretiradacharacter(1)SimS|N para 'permite' ou 'não permite' retirada do exemplo do espaço da biblioteca.
dtcadmovimtipodateSimData de geração do registro
nfcomprasCadastro das Notas Fiscais de Compras. É a entidade forte entre nfcompras e nfcomprasitens.
CampoTipoPKUKFKÑNuloComentário
pknfcompraintegerSSimPK da Tabela
fkfornecedorintegerSNãoFK com o código do Fornecedor da compra.
fkfuncionariointegerSNãoFK com o código do funcionário.
dtnfcompradateSimData de realização da venda que gera a nota de compra
vltotalnfcomprarealNãoValor total da nota fiscal de compra
aosituacaocharacter(1)SimIndicador da situação da Nota como 'A' (a pagar) ou 'P' (paga).
txcomentariostextNãoComentário geral sobre a Nota de Compra
dtcadnfcompradateSimData de geração do registro
nfcomprasitensCadastro das Notas Fiscais de compras. É a entidade fraca entre nfcompras e nfcomprasitens.
CampoTipoPKUKFKÑNuloComentário
fknfcomprasmallintSSSimParte da PK e FK com o código da nota fiscal de compra
fkprodutocharacter(12)SSSimParte da PK e FK com o código do produto na nota
qtcomprasmallintSimQuantidade de produto da compra
vlunitariorealSimValor unitário do produto na Nota de compra (pode ser ? do valor do estoque)
nfvendasCadastro das Notas Fiscais de Vendas. É a entidade forte entre nfvendas e nfvendasitens.
CampoTipoPKUKFKÑNuloComentário
pknfvendaintegerSSimPK da Tabela
fkclienteintegerSNãoFK para a tabela clientes (para o qual se faz a venda).
fkfuncionariointegerSNãoFK para a tabela funcionarios.
fkarmazemsmallintSNãoFK para a tabela armazens.
vltotalnfvendarealNãoValor total da nota fiscal de venda
dtvendadateSimData de realização da venda que gera a nota de venda.
dtemissaodateSimData de emissão da nota de venda.
dtcadnfvendadateSimData de geração do registro.
nfvendasitensCadastro das Notas Fiscais de Vendas. É a entidade fraca entre nfvendas e nfvendasitens.
CampoTipoPKUKFKÑNuloComentário
fknfvendasmallintSSSimParte da PK e FK com o código da nota fiscal de venda
fkprodutocharacter(12)SSSimParte da PK e FK com o código do produto na nota
qtvendidasmallintSimQuantidade de produto vendida
vlunitariorealSimValor unitário do produto na Nota de venda (pode ser ? do valor do estoque)
ocorrenciasRegistros da ocorrência de Sinistros nos veículos segurados de uma seguradora.
CampoTipoPKUKFKÑNuloComentário
pkocorrenciasmallintSSimPK da Tabela.
fksinistrosmallintSSimFK para a tabela sinistro
fkveiculointegerSSimFK para a tabela veículo que sofreu o sinistro
fknumeroapolicesmallintSSimFK para a tabela seguros (que cobre o sinistro do veículo).
fklogradouroprincipalintegerSSimFK com o código do Logradouro principal da ocorrência do sinistro.
fklogradourosecundariointegerSNãoFK com o código do Logradouro secundário da ocorrência do sinistro
txlogradouroocorrenciaTextSimTexto descrevendo os logradouros e localidade da ocorrência do sinistro.
dtcadocorrenciadateSimData de geração do registro
oficinasCadastro das Oficinas que prestam serviços para reparos em veículos.
CampoTipoPKUKFKÑNuloComentário
pkoficinasmallintSSimPK da Tabela
txrazaosocialcharacter(100)SimPlaca do carro (somente letras e números)
nucnpjcharacter(14)SNãoNúmero do CNPJ da Oficina.
txapelidocharacter varying(30)NãoNome de apelido da oficina
fklogradourointegerSNãoFK com o código do Logradouro da Oficina
dtfundacaodateNãoData de fundação ou criação da oficina.
dtcadoficinadateSimData de geração do registro
oficinastelsRegistro dos telefones de cada Plano de Saúde.
CampoTipoPKUKFKÑNuloComentário
pkoficinatelsmallintSSimPK da Tabela
fkoficinasmallintSSimFK para a tabela oficinas
fktipotelefonesmallintSNãoFK para a tabela telefonestipos
nutelefonecharacter(15)SimNúmero do telefone (somente os números)
txnomecontatocharacter(30)NãoNome de uma pessoa que atende como contato no telefone.
dtcadplanoteldateSimData de geração do registro
palavraschavesCadastro das palavras-chaves para pesquisa por títulos de exemplares de um acervo de uma biblioteca.
CampoTipoPKUKFKÑNuloComentário
pkpalavraintegerSSimPK da Tabela
txnomepalavracharacter varying(15)SimPalavra-chave de pesquisa complete e se abreviações
dtcadpalavrachavedateSimData de geração do registro
palavraslivrosRegistro das palavras-chaves de cada exemplar de um acervo.
CampoTipoPKUKFKÑNuloComentário
fkpalavraschavessmallintSSSimParte da PK e FK com o código da Palavra-Chave de Pesquisa
fklivrosintegerSSSimParte da PK e FK com o código do livro
dtcadpalavrachavelivrodateSimData de geração do registro
passagensCadastro das passagens vendidas para funcionários em cada ônibus para cada viagem.
CampoTipoPKUKFKÑNuloComentário
pkpassagemintegerSSimPK da Tabela - número sequencial crescente.
fkviagemintegerSSimFK com o código da viagem para o qual se vende a passagem
fkonibusintegerSSimFK com o código do ônibus para o qual se vende a passagem
nupoltronasmallintSimIndica o número da poltrona do ônibus que 'e alocada na venda da passagem
fkfuncionariointegerSNãoFK com o código do funcionário que compra a passagem.
dtcadpassagemdateSimData de geração do registro
pedcomprasCadastro das Notas Fiscais de Vendas. É a entidade forte entre nfvendas e nfvendasitens.
CampoTipoPKUKFKÑNuloComentário
pkpedcompraintegerSSimPK da Tabela.
fkfornecedorsmallintSNãoFK para a tabela fornecedores (do Pedido de compra).
fkfuncionariointegerSNãoFK para a tabela funcionários (que emitem o Pedido de Compra).
dtpedcompradateSimData de realização do pedido de venda.
txcomentarioscharacter varying(250)SimTexto com comentários complementares do pedido de compra.
vltotalpedcomprarealNãoValor total do Pedido de Compra.
aosituacaocharacter(1)SimAtributo Operacional indicando: (A)berto|(E)ntregue|(P)ago.
dtcadpedcompradateSimData de geração do registro.
pedcomprasitensCadastro dos Itens dos Pedidos de Compras. É a entidade fraca entre pedcompras e pedcomprasitens.
CampoTipoPKUKFKÑNuloComentário
fkpedcompraintegerSSSimParte da UK e FK para a tabela pedido de compra
fkprodutocharacter(12)SSSimParte da UK e FK para a tabela produtos do pedido de compra
qtpedcomprasmallintSimQuantidade de produto da compra
vlunitariorealSimValor unitário do produto negociado com o fornecedor.
pedvendasCadastro dos Pedidos de Vendas. É a entidade forte entre pedvendas e pedvendasitens.
CampoTipoPKUKFKÑNuloComentário
pkpedvendaintegerSSimPK da Tabela
fkclienteintegerSNãoFK para a tabela clientes.
fkfuncionariointegerSNãoFK para a tabela funcionarios.
dtpedvendadateSimData de realização da venda que gera a nota de compra
txcomentarioscharacter varying(250)SimTexto com comentarios complementares do pedido de venda.
vltotalpedvendarealNãoValor total do Pedido de Venda
aosituacaocharacter(1)SimAtributo Operacional indicando: (A)berto|(E)ntregue|(P)ago.
dtcadpedvendadateSimData de geração do registro
pedvendasitensCadastro das Notas Fiscais de Vendas. É a entidade fraca entre nfvendas e nfvendasitens.
CampoTipoPKUKFKÑNuloComentário
fkpedvendaintegerSSSimParte da PK e FK com o código da nota fiscal de compra
fkprodutocharacter(12)SSSimParte da PK e FK com o código do produto na nota
qtpedcomprasmallintSimQuantidade de produto da compra
vlunitariorealSimValor unitário do produto na Nota de compra (pode ser ? do valor do estoque)
planosdesaudeCadastro dos planos de saúde.
CampoTipoPKUKFKÑNuloComentário
pkplanodesaudesmallintSSimPK da Tabela
txnomeplanocharacter varying(200)SimNome completo e usual para o plano de saúde
txrazaosocialcharacter varying(250)NãoRazão social completa.
nucnpjcharacter(15)SNãoNúmero do CNPJ.
fklogradourointegerNãoFK com o código do logradouro do escritório do Plano de Saúde.
txcomplementocharacter varying(25)NãoTexto com o complemento do logradouro comercial do cliente (número, andar, etc.)
nucepcharacter(8)NãoNúmero do CEP
dtcadplanosaudedateSimData de geração do registro
planosmedicosCadastro dos mÉdicos de cada Plano de Saúde.
CampoTipoPKUKFKÑNuloComentário
pkplanomedicosmallintSSimPK da Tabela
fkplanodesaudeintegerSSimFK para a tabela planosdesaude.
fkmedicointegerSNãoFK para a tabela medicos.
dtassociacaodateSimData de associação do mÉdico ao plano de saúde.
dtcadplanomedicodateNãoData de geração do registro.
planostelsRegistro dos telefones de cada Plano de Saúde.
CampoTipoPKUKFKÑNuloComentário
pkplanostelsmallintSSimPK da Tabela
fkplanodesaudesmallintSSimFK para a tabela planos de saúde
fktipotelefonesmallintSNãoFK para a tabela telefonestipos
nutelefonecharacter(15)SimNúmero do telefone (somente os números)
txnomecontatocharacter(30)NãoNome de uma pessoa que atende como contato no telefone.
dtcadplanoteldateSimData de geração do registro
produtosCadastro dos produtos que são feitos e vendidos pela empresa onde o funcionário trabalha.
CampoTipoPKUKFKÑNuloComentário
pkprodutocharacter(12)SSimPK da Tabela
txnomecharacter varying(250)NãoNome completo e usual
vlprecodouble precisionNãoValor do preço
vlprecopromocaodouble precisionNãoValor do preço de venda para promoção (com desconto máximo)
vlprecominimodouble precisionNãoValor do preço mínimo (contabilizando os custos de produção)
qtestoquerealNãoQuantidade do produto em estoque.
qtdiaspromocaosmallint(3)NãoQuant. De dias para execução de uma promoção do produto
txdescricaocompletacharacter varying(2000)NãoTexto com a descrição complete do produto.
dtcadprodutodateSimData de geração do registro
professoresCadastro dos Professores de uma Instituição de ensino
CampoTipoPKUKFKÑNuloComentário
pkprofessorsmallintSSimPK da Tabela
txnomeprofessorcharacter varying(250)SimNome complete e sem abreviações
fklogradourointegerSNãoFK com o código do Logradouro de residência do Professor.
txcomplementocharacter varying(25)NãoTexto com o complemento do logradouro comercial do cliente (número, andar, etc.)
nucepcharacter(8)NãoNúmero do CEP
dtnascimentodateNãoData de nascimento
dtcadprofessordateNãoData de geração do registro
professorestelsRegistro dos telefones de cada professor.
CampoTipoPKUKFKÑNuloComentário
pkprofessortelsmallintSSimPK da Tabela
fkprofessorsmallintSSimFK para a tabela professores
fktipotelefonesmallintSNãoFK para a tabela telefonestipos
nutelefonecharacter(15)SimNúmero do telefone (somente os números)
dtcadprofteldateSimData de geração do registro
projetosCadastro dos projetos que são desenvolvidos pelos funcionários de uma empresa.
CampoTipoPKUKFKÑNuloComentário
pkprojetocharacter(6)SSimPK da Tabela
txnomeprojetocharacter varying(24)SimNome complete e sem abreviações
fkdeptocharacter(3)SNãoFK com o código do departamento que lidera ou coordena o projeto
fkfuncionarioresponsavelintegerSNãoFK com o código do funcionário responsável pelo projeto
vlestimadonumeric(13,2)NãoValor estimado do projeto
dtiniciodateNãoData de inicio do projeto (após conclusão de estudos de viabilidade)
dtterminodateNãoData de tÉrmino do projeto (após a conclusão dos testes)
fkprojetosuperiorcharacter(6)SNãoFK com o código de projeto superior.
dtcadprojetodateSimData de geração do registro
rotasviariasCadastro das rotas viárias de viagens entre cidades.
CampoTipoPKUKFKÑNuloComentário
pkrotaintegerSSimPK da Tabela.
txnomerotacharacter varying(60)SimNome completo e sem abreviações.
txdescrperiodocharacter varying(250)SimTexto com a descrição do período de ocorrência de viagens na rota viária
fkcidadeorigemsmallintSNãoFK com o código da cidade de origem da rota viária
fkcidadedestinosmallintSNãoFK com o código da cidade de destino da rota viária
dtcadrotaviariadateSimData de geração do registro
roteirosCadastro dos roteiros de cada Rota Viária. É a lista de cidades por onde um ônibus passa em uma rota.
CampoTipoPKUKFKÑNuloComentário
pkroteirosmallintSSimPK da tabela.
fkrotaintegerSSSimFK para a tabela rotasviarias.
fkcidadesmallintSSSimFK para a tabela cidades.
nuordemsmallintSimNúmero de ordem da cidade na rota indicada no roteiro.
dtcadroteirodateSimData de geração do registro
seguradorasCadastro das Seguradoras de valores.
CampoTipoPKUKFKÑNuloComentário
pkseguradorasmallintSSimPK da Tabela.
txnomeseguradoracharacter varying(250)SimNome completo e sem abreviações.
fklogradourointegerSNãoTexto com o endereço de residência.
txcomplementocharacter varying(25)NãoTexto com o complemento do logradouro comercial do cliente (número, andar, etc.)
nucepcharacter(8)NãoNúmero do CEP
dtcadseguradoradateSimData de geração do registro
seguradorastelsCadastro dos telefones de cada Seguradora.
CampoTipoPKUKFKÑNuloComentário
pkseguradoratelsmallintSSimPK da Tabela
fkseguradorasmallintSSimFK para a tabela seguradoras
fktipotelefonesmallintSNãoFK para a tabela telefonestipos
nutelefonecharacter(15)SimNúmero do telefone (somente os números)
txnomecontatocharacter(30)NãoNome de uma pessoa que atende como contato no telefone.
dtcadseguradorateldateSimData de geração do registro
segurosCadastro dos Seguros assumidos para cada Seguradora.
CampoTipoPKUKFKÑNuloComentário
pknumeroapoliceintegerSSimPK da Tabela. Pode ser o Número da Apólice de Seguro.
fkveiculointegerSSimFK com o código do veículo.
fkseguradorasmallintSSimFK com o código da Seguradora
dtcontratacaodateSimData da contratação
dtlimitecoberturadateSimData limite da cobertura do seguro.
vlcoberturarealSimValor da cobertura da apólice de seguro
dtcadseguroDateSimData de geração do registro
servicosCadastro dos serviços oferecidos pelas oficinas que cobrem os sinistros das seguradoras.
CampoTipoPKUKFKÑNuloComentário
pkservicointegerSSimPK da Tabela.
txnomecurtocharacter varying(90)SimNome completo e sem abreviações
txdescricaocharacter varying(250)SimTexto descrevendo o setor de atuação
vlestimadonumeric(8,2)NãoValor aproximado do serviço.
dtcadservicodateSimData de geração do registro
servicosprestadosRegistro com os serviços de manutenção feitos em cada ônibus.
CampoTipoPKUKFKÑNuloComentário
pkservicoprestadosmallintSSimPK da Tabela.
fkfeitosporsmallintSSimFK com o código do serviço feitopor qual oficina no veículo.
fkveiculointegerSSimFK com o código do veiculo no qual se faz um serviço de manutenção em uma oficina.
txdescricaoproblemacharacter varying(250)SimNome completo e sem abreviações
txdescricaosolucaocharacter varying(250)SimTexto descrevendo o setor de atuação
vlestimadonumeric(7,2)NãoValor estimado do serviço realizado no veículo.
dtpreviniciodateNãoData prevista para inicio da prestação de serviço.
dtprevterminodateNãoData prevista para tÉrmino da prestação de serviço.
vlcobradonumeric(7,2)NãoValor final cobrado pela prestação do serviço feito pela oficina no veículo.
dtrealiniciodateNãoData de inicio da prestação do serviço.
dtrealterminodateNãoData de tÉrmino da prestação do serviço.
dtcadservicoprestadodateSimData de geração do registro
setoresdeatuacaoCadastro dos setores de atuação das empresas onde funcionários já trabalharam.
CampoTipoPKUKFKÑNuloComentário
pksetoratuacaosmallintSSimPK da Tabela.
txnomesetordeatuacaocharacter varying(90)SimNome completo do setor de atuação (sem abreviações).
txdescricaosetordeatuacaocharacter varying(250)SimTexto descrevendo o setor de atuação.
dtcadsetordeatuacaodateSimData de geração do registro
sinistrosCadastro dos Sinistros (acidentes) que podem ocorrer nos veículos segurados de uma seguradora.
CampoTipoPKUKFKÑNuloComentário
pksinistrointegerSSimPK da Tabela.
txnomesinistrocharacter varying(90)SimNome completo e sem abreviações
txdescricaosinistrocharacter varying(250)SimTexto descrevendo o sinistro que pode ocorrer em um veículo (incêndio, roubo, etc)
dtcadsinistrodateSimData de geração do registro
tarefasCadastro das tarefas que podem ser desenvolvidas pelos funcionários em projetos.
CampoTipoPKUKFKÑNuloComentário
pktarefasmallintSSimPK da Tabela
txnometarefacharacter(40)SimNome curto da ação de projeto
txdescricaotarefacharacter varying(250)SimDescrição completa de uma ação que É usada em projetos.
qthoraspadraosmallintNãoQuantidade de Horas padrão para a ação em qualquer projeto.
dtcadtarefadateNãoData de geração do registro
tarefasprojetosRegistro das tarefas que são necessárisa em cada projeto.
CampoTipoPKUKFKÑNuloComentário
pktarefaprojetointegerSSimPK da tabela.
fkprojetocharacter(6)SSSimFK para a tabela projetos
fktarefasmallintSSSimFK para a tabela tarefas (de projetos).
qthorasenvolvidassmallintSimQuantidade de horas comprometidas da ação no projeto
nuordemsmallintNãoNúmero de ordem da tarefa dentro do projeto
dtcadtarefprojetodateNãoData de geração do registro
telefonestiposCadastro dos tipos de telefones (fixo, celular, empresarial, etc.).
CampoTipoPKUKFKÑNuloComentário
pktipotelefonesmallintSSimPK da Tabela
txdescricaotptelefonecharacter varying(250)SimTexto descrevendo o tipo de telefone
dtcadtipotelefonedateSimData de geração do registro
titulacoesRegistro dos Títulos alcançados pelos professores.
CampoTipoPKUKFKÑNuloComentário
pktitulacaosmallintSSimPK da Tabela
fkprofessorsmallintSSSimFK para professores
fkgrauescolaridadesmallintSSNãoFK para títulos (que professores podem alcançar).
fkinstituicaosmallintSSimFk para a tabela institucoesensino (onde o professor obteve o tiutlo).
dttitulacaodateSimData quando o professor conseguiu o título.
dtcadtitulacaodateSimData de cadastro da titulação
veiculosCadastro dos carros que pertecem aos funcionarios.
CampoTipoPKUKFKÑNuloComentário
pkveiculointegerSSimPK da tabela.
ukplacacharacter(7)SSimChave Candidata. Placa do carro (letras e números sem separação).
ukchassicharacter(20)SSimChave Candidata. Identificador do Chassi do Veículo (letras e números sem separação).
fktipoveiculosmallintSSimFK para a tabela veiculotipos (Tipos de Veículos).
fkmarcasmallintSimFK para a tabela veiculosmarcas (Marcas de Veículos).
fkfuncionariointegerSNãoFK para a tabela funcionarios (funcionário proprietário do carro).
aotipocarrocharacter(1)NãoIndica o tipo do veículo do Funcionário (P=Principal e S=Secundário).
txapelidocharacter varying(60)NãoNome de apelido do ônibus
qtcapacidadesmallintSimQuantidade de assentos no veículo
nuanofabricacaocharacter(4)SimAno de fabricação do veículo
aocategoriacharacter(1)SimCategoria do Veículo indicando se é C-carro ou O-ônibus.
dtcadveiculodateSimData de geração do registro.
veiculosmarcasCadastro de modelos de marcas de veículos desenvolvidos por fabricantes.
CampoTipoPKUKFKÑNuloComentário
pkmarcasmallintSSimPK da Tabela
txnomemarcacharacter varying(250)SimTexto com a descrição do modelo
fkfabricantesmallintSSimFK para a tabela fabricantes (da marca de veículos).
dtcadmarcaveiculodateSimData de geração do registro.
veiculosmodelosCadastro de modelos de marcas de veículos desenvolvidos por fabricantes.
CampoTipoPKUKFKÑNuloComentário
pkmodelointegerSSimPK da Tabela
fkmarcaintegerSSimFK para a tabela veiculosmarcas (Marcas de Veículos).
txdescricaomodelocharacter varying(250)SimTexto com a descrição do modelo
dtcadmodeloveiculodateSimData de geração do registro.
veiculostiposCadastro de tipos de veículos (ferroviários, terrestres, aÉreos, aquáticos, etc.).
CampoTipoPKUKFKÑNuloComentário
pktipoveiculointegerSSimPK da Tabela
txdescricaotpveiculocharacter varying(250)SimTexto que descreve completamente o tipo de veículo.
dtcadtipoveiculodateSimData de geração do registro.
viagensCadastro de viagens feitas pelos ônibus
CampoTipoPKUKFKÑNuloComentário
pkviagemintegerSSimPK da Tabela
fkrotaintegerNãoFK com o código da rota viária da viagem.
dtsaidaviagemdateSimData de realização da viagem
hrsaidatimeSimHora de saída da viagem
dtchegadaviagemdateSimData prevista de chegada da viagem
hrchegadaprevtimeSimHora de chegada prevista da viagem
dtcadviagemdateSimData de geração do registro
Tabela 2. - Dicionário de dados da Base de Exercício.

Ainda precisamos caraterizar as duas visões que devem ser criadas para esta base de dados.
As visões carros e onibus estão apresentadas na Tabela 3.
1. onibusCadastro dos ônibus que realizam viagens
CampoTipoPKUKFKÑNulo Comentário
pkonibusintegerS SimPK da visão onibus. PK da Tabela veiculos.
ukplacacharacter(7) SimChave Candidata. Placa do carro (letras e números sem separação).
fkmodelosmallint SSimFK para a tabela veiculosmodelo (Modelos de Veículos).
txapelidocharacter varying(60) NãoNome de apelido do ônibus
qtcapacidadesmallint SimQuantidade de assentos no veículo
nuanofabricacaocharacter(4) SimAno de fabricação do veículo
dtcadonibusdate SimData de geração do registro
2. carrosCadastro dos carros que pertecem aos funcionarios.
CampoTipoPKUKFKÑNulo Comentário
pkcarrointegerS SimPK da visão carros. É a PK da tabela veículo
ukplacacharacter(7) SimChave Candidata. Placa do carro (letras e números sem separação).
fkmodelosmallint SSimFK para a tabela veiculosmodelo (Modelos de Veículos).
fkfuncionariointeger SSimFK para a tabela funcionarios (funcionário proprietário do carro).
aotipocarrocharacter(1) NãoIndica o tipo do veículo do Funcionário (P=Principal e S=Secundário).
qtcapacidadesmallint SimQuantidade de assentos no veículo
nuanofabricacaocharacter(4) SimAno de fabricação do veículo
dtcadcarrodate SimData de geração do registro
Tabela 3. - Visões da Base de Dados do Exercício.