Olá a todos estou literalmente queimando os miolos aqui, sou iniciante em SQL estou desenvolvendo um banco de dados com a seguinte estrutura:
Funcionário > Cargo > Função > Treinamentos
Todo funcionário cadastrado tem apenas 1 cargo, mais esse cargo pode desenvolver diversas funções e cada uma dessas funções tem que receber um treinamento especifico.
Ex:
Funcionário: Robison
Cargo: Analista de Sistema
Função - 1: Administrador de Redes.
Treinamento - 1: Redes
Função - 2: Coordenador
Treinamento - 1: Coordenação
Função ? 3: Help Desk
Treinamento - 1: Suporte
Detalhe não necessariamente todos os Analistas de Sistemas terão as mesmas Funções.
Segue abaixo o diagrama que desenvolvi mais como já havia dito sou iniciante, não sei se é a melhor solução(Nem sei se é uma solução). Quem puder me ajudar agradeço.
http://img218.imageshack.us/img218/5412/desenho1.jpg
Abraço
Funcionário tem várias funções, então é melhor você criar uma tabela que relacione o código do funcionário com o código da função:
Se uma função tem um único treinamento, função deve ter código do treinamento.
Se um treinamento é de apenas uma função, treinamento deve ter o código da função.
Se um treinamento é de uma função e uma função é de um treinamento, você tem que criar uma PK que seja (codFuncao,codTreinamento).
Deve ter mais alguma coisa que eu deixei passar, mas assim rápido só foi isso que vi. Espero q ajude…XD
Olá luciano@@, obrigado pela ajuda.
O maior problema que estou encontarndo é relacionar as 3 funções da tabela funcionário com a ID tabela de função.
Como no diagrama postado fiz o seguinte:
Na tabela funcionário criei 3 campos com atributos únicos: Funcao1, Funcao2, Funcao3
Cada um desses campos abre um relacionamento, (3 relacionamentos ao todo) com a IDfuncao na tabela Funcao.
Não sei se isso é o correto pois eu mesmo nunca vi algo do gênero. :shock:
Abraço
Oi brother…
Estou estudando o mesmo (mesma dificuldade) que vc… rs… Se eu achar algo te dou um toque…
abs,

AS
Cara pelo que estou vendo acho que a melhor solução é esse diagrama que montei mesmo.
Percebi algo que seria interessante constar nesse banco de dados também, caso o funcionário mude de cargo ou função seria legal ter um controle com a data e motivo da modificação…
kkkkkkkkk nossa vou ficar louco com esse banco de dados :roll: . Estou tentando montar o mais próximo da realidade possível.
Abraço
Estou a Fazer um projecto de Base de Dados e preciso da vossa ajuda na elaboração do modelo conceptual
Cada Aquário vai estar registado com informações quanto á sua localização no oceanario(8 pontos cardeais), nome, a capaciade em litros, e uma percentagem de adequação a cada um dos habitats previstos para o Oceanário. Cada um destes habitats é registado com um nome e um conjunhto de caracteristicas considerados ideais: o iluminamento(em lx), a salinidade(de 0 a 30%o = gramas de sal/litros de água), o pH(de 3 a 10), a dureza em ppm (0 a 500 ppm = partes por milhão de CaCO^3), oxigenação(%) e a temperatura (de 1 a 50º Celsius ) da água.
Não consigo fazer o modelo conceptual destes dados. Por favor Preciso URGENTEMENTE desta resolução visto que ja fiz outra parte e me falta fazer esta parte
o dado pede:
a) Obtenha o diagrama E/A que o modelo
b) COntrua o esuquema relacional do Modelo Conceptual
c) Defina o script SQL-DDL
me ajude por favor
robison.Aleixo
Isso é meio complicado, pq tudo depende do tipo de relacionamento.
Se funcionario tem apenas uma função, o funcionário deve ter o código da função.
Se o funcionário tem várias funções, a função deve ter o código do funcionário.
Se o funcionário tem varias funções e outros funcionários podem ter as mesmas funções, então você deve criar uma nova tabela funcionárioXfunção que tenha código do funcionário e código da função.
explique como é o relacionamento para que eu possa te ajudar melhor.
passwordvc
Seria interessante que você cria-se outro tópico com sua duvida para não confundir esse. de qualquer forma vou tentar ajudar
luciano@@
Cara muito obrigado mesmo pela ajuda.
Pois bem de acordo com sua explicação a opção que se enquadra no que pretendo fazer é:
"Se o funcionário tem varias funções e outros funcionários podem ter as mesmas funções, então você deve criar uma nova tabela funcionárioXfunção que tenha código do funcionário e código da função. "
Fiz um diagrama da mesma, segue ele abaixo:
http://img696.imageshack.us/img696/2584/semttuloyjf.jpg
De acordo com a minha pesquisa seria um relacionamento N:N. Realmente fica algo muito mais agradável desse jeito. Só que como eu faria para ter um controle de quando ocorresse alguma modificação nesses dados,
Ex: Fulano mudou de função/cargo Y para X na data: 01/01/2010
O funcionário pode ter N funções. Estas funções não estão ligadas ao cargo então dessa forma para ter um controle das funções do funcionário, é bom você ter uma data inicio e data fim na tabela funcionário função. quando o funcionário ganha uma nova função esta função é inserida na tabela funcionário função com a data inicio. Quando ele sai da função deve ser colocada a data fim. Dessa forma essa tabela mantém um histórico. As funções do funcionário são somente as que tem a data fim nula.
Quando ao controle de funcionário X cargo pode seguir o mesmo modelo.
Cara muito obrigado, acho que entendi finalmente o conceito de relacionamento de tabelas.
Segue o meu Diagrama atual.
http://img215.imageshack.us/i/diagramabancodedados.png/
Abraço
Está legal mais tem umas coisas que eu não consegui entender porque você fez.
Ex: Funcionário_treinamentoFuncao
Se funcionario se relaciona com funcionarioFuncao, que se relaciona com funcao, que se relaciona com TreinamentoFuncao, que se relaciona com trienamento , logo a partir de funcionário você consegue chegar nos trienamentos da função dele sem precisar criar a tabela Funcionário_treinamentoFuncao
Na minha visão ela se torna desnecessária, se existe outro motivo para você manter essa tabela ai tudo bem.
O resto ta legal !!!
Verdade cara além de diminuir uma tabela fica muito mais fácil o entendimento.
Às vezes dá um “nó no cérebro e sai essas coisas” 
Abraço