segunda-feira, 27 de janeiro de 2025

Dicas para Modelo E-R e Relacional ( Banco de Dados )

Bom, já que hoje tem prova de Banco de dados, resolvi postar aqui algumas dicas minha que pode facilitar o entendimento de vocês.
Primeiramente, temos que criar o modelo E-R de acordo com o texto passado. Em seguida é que fazemos o Modelo Relacional.
Aqui vai alguns significados:

Entidade Forte: É uma entidade que possui um Atributo Chave.
Representação: RENTANGULO.

Entidade Fraca: É uma entidade que não possui um Atributo Chave. É composta apenas por um Atributo Parcial.
Representação: DUPLO RENTANGULO.

Atributo Chave: É um atributo, cujo seu valor será único para cada cadastro.
Representação: ELIPSE SUBLINHADA.
Ex: CPF, Código, Matricula, CNPJ, etc.

Atributo Chave Parcial: É um atributo que não é tão único em uma entidade, tendo uma possibilidade de ter valor repetitivo nos cadastro. Para identificá-lo terá que existir um bom-senso.
Representação: ELIPSE SUBLINHADA (PONTILHADO)
Ex: Nome, Data_Nascimento, etc.

Atributo Monovalorado: É um atributo simples, será atribuido um único valor.
Representação: ELIPSE.
Ex: Nome, Sexo, Idade, etc.

Atributo Multivalorado: É um atributo que irá conter mais de um valor cadastrado.
Representação: DUPLA ELIPSE.
Ex: Emails, Fones, etc.

Atributo Determinante: É um atributo que irá definir o valor de outro atributo.
Representação: ELIPSE.
Ex: Data_Nascimento, Data_Construção, etc.

Atributo Derivado: É um atributo pré-determinado.
Representação: ELIPSE PONTILHADA.
Ex: Idade, Tempo_de_Obra, etc.

Atributo Composto: É um atributo que liga outros atributos que contém o mesmo conteúdo, criando um único atributo.
Representação: ELIPSE LIGANDO OUTRAS ELIPSES.
Ex: Endereço ( Cidade, CEP, Bairro ), Nome (Primeiro_Nome, Ultimo_Nome), etc.

Infelizmente eu não tive essa idéia antes, de criar um blog para colocar algumas explicações dos assuntos que poderiam cair nas provas. Mas vou começar a fazer isso. Segunda - feira irá ter prova de Estrutura de Dados. Brevemente aqui vai estar algo sobre pilha.

Mais tarde terá algo sobre o resto do Modelo E-R e as Regras do Modelo Relacional.

Aqui agora um exemplo simples.



segunda-feira, 12 de junho de 2023

Conceito - Banco de Dados

Postando aqui alguns Conceitos sobre Banco de Dados.

Esquema

- Representa as colunas ( Atributos ) em uma tabela de banco de dados.

Instancia

- Representa as linhas ( Valores ) em uma tabela de banco de dados

Banco de Dados

- É uma coleção de dados armazenados de maneira estruturada, que possuem uma ligação representando algo específico.

SGBD ( Sistema de Gerenciamento de Banco de Dados )

- É uma coleção de programa que serve para criar e manter os bancos.
Ex: Oracle, MySql, Access, FireBird, SqlServer, etc.

Observação: Cuidado com a seguinte pergunta: "Qual o melhor banco de dados: Oracle ou Acess?"

Oracle e Access não são banco de dados, e sim um Sistema de Gerenciamento de Banco de Dados.


Vantagens do SGBD:
  • Velocidade
  • Facilidade de Acesso
  • Evita-se inconsistência
  • Segurança
  • Entre outros.

Engenharia de Software

Falar um pouco sobre essa disciplina.

  • O que é Engenharia de Software?
  • Como surgiu?
  • Quais suas vantagens?

A Engenharia de Software consiste em uma engenharia relacionada a todos os aspectos de produção de softwares.

Surgiu em 1969 quando as empresa de desenvolvimento de software se uniram para discutir uma maneira de desenvolver sistemas sem ter tanto atraso e aumento nos custos prejudicando os seus clientes.

A vantagem da Engenharia de Software é a forma mais eficiente de desenvolvimento de um software. Sendo assim, melhorando a qualidade e diminuindo o tempo e os custos.

- Existem vários tipos para o Desenvolvimento de um Software.

  1. Cascata
  2. Prototipação
  3. Iterativo
  4. Espiral

Qual o melhor? DEPENDE DO CLIENTE.

  • Cascata:

Levantamento de Requisitos - Analise de Requisitos - Projeto - Implementação - Teste - Implantação.

Levantamento de Requisitos = Principal fase para um desenvolvimento de software, pois colhe os requisitos de uma empresa ( A nessecidade da Empresa).

Análise de Requisitos = Tenta entender essa "necessidade" que a Empresa tem.

Projeto = Desenha a Planta Baixa do Software para ser codificada.

Implementação = Codifica o Software.

Teste = Faz testes no software buscando os problemas na codificação para que esses erros sejam corrigidos antes de ser implantado no cliente.

Implantação = É a parte de instalação/treinamento do sistemas.

O modelo Cascata é mais indicado para Clientes de Pequeno porte, pois é um sistema que corre o risco de sair com o custo maior que o esperado.

  • Prototipação

A Primeira fase desse moledo é a criação de um protótipo, para que o cliente veja como o sistema irá ser.

LADO POSITIVO

- O Cliente visualiza a construção

- Requisitos Adequados

LADO NEGATIVO

- O Cliente pode pensar que já está pronto o sistema

- Baixo re-uso

- Dificil manutenção

- Risco no Projeto

É indicado para clientes que querem ver como a "cara" do sistema irá ser, pois ele pode querer mudar quando o sistema tiver feito, e assim causando um atraso na entrega.

  • Iterativo

Utiliza a mesma estrutura do Espiral, porem existe uma ligação direta entre as fases do desenvolvimento.

LADO POSITIVO

- Desenvolvimento Evolutivo

- Projeto Componentizado

LADO NEGATIVO

- Refactoring

- Custo de Mudança

É indicado para empresa que podem mudar alguns requisitos durante o desenvolvimento.

  • Espiral

Requisitos - Engenharia - Implementação - Avaliação

É um sistema de desenvolvimento que é indicado para altos investimentos, pois tem um baixo risco de erros, pois é desenvolvida por cada requisito e sempre interagindo com a empresa.

Revisão - Banco de Dados Avançado (FAFICA)

Revisão de Banco de Dados Avançado

1- Explique DETALHADAMENTE cada um os códigos a seguir evitando AMBIGÜIDADES e levando em consideração que o usuário sicrano criou as tabelas DVD e cliente:

a) Usuário sicrano: grant insert, select on cliente to public

R- O usuário sicrano deu permissão de inserção e busca de dados para qualquer um usuário na tabela cliente.

b) Usuário sicrano: grant all on dvd to beltrano with grant option

R- O usuário sicrano deu todas as permissões ao usuário beltrano, podendo também repassar as mesmas permissões para outros usuários.

c) Usuário beltrano: grant update, delete on dvd to fulano with grant option

R- O usuário beltrano deu a permissão de atualizar e deletar dados da tabela DVD para fulano, podendo também repassar as mesmas permissões para outros usuários

d) Usuário fulano: grant update on dvd to josias

R- O usuário fulano deu permissão de atualizar dados na tabela dvd para josias

e) Usuário sicrano: revoke update on dvd from beltrano

R- O usuário sicrano retirou a permissão de atualizar dados na tabela dvd de beltrano, por isso o usuário fulano também perdeu essa permissão, por receber a mesma de beltrano e conseqüentemente o usuário josias também perdeu a mesma permissão por receber de fulano.

2- Tomando como base os tipos de RESTIÇÃO DE INTEGRIDADE apresentados em sala de aula (Integridade Referencial, Restrição de Chave, de Domínio e de Entidade) e os códigos abaixo, favor responder:

Codigo 1

Create table departamentos (

codDepto integer,

nome varchar(20) check (nome in ‘Vendas’, ‘Pessoal’,’Finanças’, ‘Administrativo’),

andar integer check (andar between 1 and 10),

orçamento numeric (20,2),

constraint DeptPK primary key (codDepto));

Código 2

Create table Aluno_Disciplina (

id_aluno int,

id_disciplina int,

constraint fkAluno foreign key (id_aluno) references Aluno(id_aluno),

constraint fkDisciplina foreign key (id_disciplina) references Disciplina (id_disciplina),

);

Código 3

Create table Aluno_Disciplina (

id_aluno int,

id_disciplina int,

constraint fkAluno foreign key (id_aluno) references Aluno(id_aluno)

ON DELETE CASCADE,

constraint fkDisciplina foreign key (id_disciplina) references Disciplina (id_disciplina)

ON DELETE CASCADE

);

a) Quais tipos de Restrições de Integridade são respeitadas de acordo com o código 1? Justifique sua resposta apontando que partes do código asseguram cada restrição.

R – O primeiro código se refere às Restrições de Chave e de Entidade(constraint DeptPK primary key (codDepto));) onde a chave primária não pode ser nula (NOT NULL) e única (UNIQUE). Também utiliza a Restrição de Domínio (nome varchar(20) check (nome in ‘Vendas’, ‘Pessoal’,’Finanças’, ‘Administrativo’),andar integer check (andar between 1 and 10),) pois coloca um limite nos dados da tabela.

b) Que tipo de Restrição de Integridade os códigos 2 e 3 asseguram? Justifique suas respostas apontando a parte do código que assegura a mesma.

R- Ambos estão aderindo a Restrição de Integridade Referencial (constraint fkAluno foreign key (id_aluno) references Aluno(id_aluno)), ou seja, garante a integridade da base de dados quando os P.ks são referenciadas em outras relações. O terceiro código acrescenta o ON DELETE CASCADE, onde se o atributo pai for deletado, todos os filhos também serão. Com isso, no Codigo 2, se o atributo pai tentar se deletado, não será permitido, pois terá atributos dependente dele em outras tabelas.

3- A tabela abaixo respeita a segunda forma normal? Justifique suas resposta.

ALUNOS ( CodAluno, Nome, Morada, CodDisciplina, Disciplina)

R- Não, pois não são todos os atributos que depende das chaves primárias. O jeito certo de fazer essa tabela seria separá-los por dependência. Ou seja:

ALUNOS(CodAluno, Nome, Morada)

DISCIPLINA(CodDisciplina, Disciplina)

4- A tabela abaixo respeita a primeira forma normal? Justifique sua resposta.

CodAluno

Nome

Morada

Disciplinas

1214

Rua Costa

Rua A

Português, Matemática, Física

1250

Ana Maria

Rua B

Latim, Português, inglês

1356

Carla Silva

Av. ABC

Economia, Matemática, Direito

1456

Hugo Leal

Bairro DEF

Português, Matemática

R- Não, pois a Primeira Forma exige que todos os atributos sejam Monovalorados, ou seja, possuam apenas um valor. O Atributo DISCIPLINA não obedece a essa regra.

5- De acordo com a figura abaixo e tomando como base os conceitos de Modelo EER, favor assinalar a alternativa falsa:

FIGURA

( ) Um empregado pode ser apenas um docente

( ) Um empregado pode ser apenas um pesquisador

( ) O símbolo ‘o’ presente na figura representa uma restrição de especialização do tipo overlap ou sobreposição.

( ) Um empregado pode ser um pesquisado e um docente ao mesmo tempo.

(X ) Um empregado não pode exercer o cargo de docente e pesquisador ao mesmo tempo.

6- Com base nos comandos básicos de SQL, e sempre que necessário, fazendo o uso das sintaxes dadas, faça o que se pede nos itens abaixo:

Select nome(s)_da(s)_coluna(s) from nome_da_tabela where condição

Cliente (id, nome, sexo, data_de_nascimento, idade, cidade, estado)

DVD (id, nome, gênero, direto, duração)

Cliente_loca_dvd (id_cliente, id_dvd, data_locacao)

a) Escreva um código para visualização apenas dos campos nome e idade da tabela cliente

Select nome,idade from cliente

b) Escreva um código para visualização de todos os dados da tabela cliente

Select * from cliente

c) Escreva um código para visualização dos nomes dos clientes do sexo masculino

Select nome from cliente where sexo =’M’

d) Escreva um código para visualização dos nomes dos clientes que moram no estado de Pernambuco

Select nome from cliente where estado = ‘PE’

e) Escreva um código para visualização dos nomes dos clientes que NÃO moram no estado de Pernambuco

Select nome from cliente where estado != ‘PE’

f) Escreva um código para visualização de todos os dados da tabela DVD apresentados em ordem decrescente de nome de filme.[ORDER BY]

Select * from DVD order by nome desc

g) Escreva um código para visualização dos nomes dos DVDs que tem duração maior que 150 OU são do gênero drama. [OPERADOR LOGICO]

Select nome from DVD where duração > 150 or genero = ‘drama’

h) Escreva um código para visualização dos campos nome e estado na tabela cliente, dos clientes que moram nos estados começados com a letra “P”.[LIKE]

Select nome,estado from cliente where estado like = ‘P%’

i) Escreva um código para visualização dos clientes nascidos ente janeiro e abril

Select nome from cliente where month(data_nascimento) between 1 and 4

j) Escreva um código para visualização da data_de_locacao e dos nomes dos clientes que locaram o filme “Tropa de Elite 2”.[JUNÇÕES]

Select c.nome, cld.data_de_locacao

From cliente c, dvd d, cliente_loca_dvd cld

Where d.nome = ‘Tropa de Elite’

and c.id = cld.id_cliente

and d.id = cld.id_dvd

k) Escreve o código para criação de uma view que permita a visualização dos nomes dos clientes do sexo feminino que possuam a menor idade. [SUBCONSULTA]

Create view Nome_Cliente as

Select nome from cliente where sexo = ‘F’ and idade < (select min(idade) from cliente)

l) Escreve o código para criação de uma view que permita a visualização dos nomes do DVDs cujo tempo de duração é acima da média.[SUBCONSULTA].

Create view Nome_DVDs as

Select nome from DVD where duração > (select avg(duracao) from DVD)

m) Escreva os códigos que permitem a visualização destas views

Select * from nomedaview

n) Escreva os códigos que permitem a remoção desta view.

Drop view Nomedaview

terça-feira, 28 de abril de 2020

Visto criado para Profissionais de TI na Europa

Olá pessoALL,

O texto de hoje será importante para informa-lhes o quanto a Área de TI é privilegiada ao redor do mundo. Claro que o foco aqui é falarmos da Europa e o que foi criado para que houvesse uma maior aceleração no Visto de Trabalho dos profissionais estrangeiros.

Bom, vale salientar que o processo de visto, geralmente, é realizado ainda com o profissional no Brasil e não aqui na Europa. Toda parte de documentação deve ser apresentada para o Consulado Português, mas não como antes.

Desde meados de 2019 o processo mudou um pouco, agora existe uma empresa (VFS Global) que faz uma pré-analise da sua documentação antes de chegar no Consulado. O intuito é justamente acelerar a solicitação, visto que anteriormente essa análise era feita diretamente no orgão e demorava mais para uma resposta positiva ou não para andamento da requisição.

 O processo demora até 90 dias para finalizar, isso em relação ao prazo máximo, porém o tipo Tech Visa tende a demorar no máximo 60 dias para sua emissão. Para que seja possível, a empresa que está solicitando a contratação deverá enviar alguns documentos, tais como:

  • Pré-proposta de trabalho 
  • IAPMEI
Claro que existem outros documentos, mas esses dois citados são os mais importantes, pois eles serão responsáveis por, de fato, direcionar a solicitação de visto para o fluxo do Tech Visa.

Bom, todo texto acima é falado na experiencia vivida para minha vinda à Portugal, porém é sabido que outros países existe uma flexibilização para contratação de profissionais de TI, por exemplo no UK.

Com o Visto em mãos, é apenas comprar suas passagens e ser feliz.

Ah, não falei de passaporte né? Não preciso nem explicar que é necessário ter passaporte para emissão do visto. Então primeiro passo antes de tudo é procurar tira-lo.

Boa sorte e até mais.


segunda-feira, 27 de abril de 2020

Como chegar na Europa?

Olá pessoALL,

Você tem o sonho de sair do Brasil para se aventurar na Europa? Se a resposta for SIM, então está no lugar certo.

Aqui iremos passar várias informações importantes sobre quais os primeiros passos para conseguir vim à Europa com emprego garantido, claro, falando no Profissional de TI.

Antes de tudo, é importante falar que nada é fácil e irá exigir de você um certo esforço. Se achar que vale apena essa dedicação, então vamos nessa!

Primeiramente é importante falar que o mercado de TI sempre está bombando. Nessa pandemia do COVID-19, era pensado que ele seria impacto devido a questão econômica mundial. Mas pelo que tenho visto aqui, parece que o efeito foi o contrário.

Muitas empresas querem contratar e realmente falta profissional disponivel na área. "Ok, mas você está falando em qual país?". Estou falando de vários países, inclusive Portugal.

Portugal se tornou a porta de entrada dos brasileiros que queiram entrar no Velho Continente. Realmente é um mercado muito aquecido, pois é visto como um país "barato" em relação a mão-de-obra.

Certo, mas como eu consigo começar a pensar em ter essa oportunidade ainda do Brasil? Vamos começar com uma pergunta bem simples:

Você tem LinkedIn?

Sem dúvidas, o LinkedIn é uma ferramenta que facilita muito esse meio-campo. É simples buscar vagas de empregos em todo o mundo. Se você ainda não tem uma conta, então trate de criá-la.

Então, com a vaga aberta mais o seu desejo de vim para a Europa, já temos 50% do problema resolvido. A questão é, os outros 50% é o maior problema, pois envolve a parte burocrática desse tema, que é o Visto.

Existem alguns pré-requisitos importantes que podem se encaixar em várias vagas aqui:

  1. Conhecimento em BackEnd (JAVA)
  2. Conhecimento em FrontEnd (Angular)
  3. Conhecimento em Inglês (Avançado)
Iremos posteriormente avançar um pouco mais nesse tema, mas em resumo se tens conhecimentos desses três itens, existe um leque enorme de vagas em empresas europeias.

Bom meus queridos, acho que aqui já temos algumas informações que são relevantes. Em outros tópicos irei entrar em outros temas, tais como:
  • Processo de Visto de Trabalho
  • Tendências Tecnológicas
  • Empresas de TI
  • Impacto na mudança de País 

Muito obrigado pela sua presença no nosso blog.

quarta-feira, 23 de fevereiro de 2011

Servlet + JSP

Nesses últimos meses, passei um bom tempo sem atualizar aqui.
Mas agora estou voltando com força total para mostrar alguns exemplos de um determinado assunto.

Hoje eu trabalho com Servlet e JSP, então o que faço no dia-a-dia no trabalho, vou postar aqui pequenas
demonstrações, onde, com certeza, irão ajudar vocês.

Muitos pensam que programação é algo do outro mundo, pelo fato de lidar com várias letrinhas (códigos) onde quem vê, não entende nada. Na verdade, nada é fácil, e o que é fácil não presta.
Na área de Desenvolvimento de Sistemas, o que faz com que o programador saiba dominar bem uma certa linguagem é, além da prática, o estudo.

Quem trabalha na área, consegue adquirir uma ampla experiência por um fato óbvio, a pratica daquela linguagem todos os dias. O difícil talvez aqui em Caruaru e Região seja arrumar esse trabalho.

Falando um pouco do JSP, Java Server Page, é uma linguagem Web que manipula dados vindo de um formulário HTML. Isso estou falando de forma bem simples. Como o JSP recebe esses dados, pelo Servlet.
Está explicado a função do Servlet agora né?!

A logica é o seguinte: HTML -> Servlet -> Controlador -> DAO -> Banco de Dados.

Essa é a ordem de entrada de dados, recebendo pelo método Post no formulario HTML.
No Servlet exitem dois métodos, o Post e o Get. Vou nem falar para que serve, é algo lógico. Conseqüentemente, em um formulário HTML, tambem existem esses dois tipos de form.

O Controlador servirá para tratar informações, questão de validações de dados, condições e etc.
O DAO servirá como repositório, ou seja, comandos de SQL.
- Ponto Positivo:  para funcionalidades básicas como o CRUD, o DAO ja possui métodos prontos, isso quer dizer que você não precisa se estressar com comandos SQL.
- Ponto Negativo: para funcionalidades com condições, envolvendo WHERE em consultas, por exemplo, você irá ter que aprofundar mais o conhecimento.

Claro que eu vou postar aqui alguns exemplos. Relaxe!


Bom, até logo.




Rosemberg Lima -