![]() |
|
|
Planilha de Dimensionamento de Tubulações
Hidráulicas Água Fria e Água Quente CompletaNossa planilha automática de dimensionamento de tubulações de água fria e quente é uma ferramenta desenvolvida para auxiliar engenheiros e projetistas no cálculo rápido e preciso das redes hidráulicas de edificaçoes. Por meio da inserçao de dados como vazao, diâmetro da tubulaçao, comprimento da rede, material do tubo e coeficientes hidráulicos, a planilha realiza automaticamente os cálculos necessários para verificar velocidade da água, perda de carga e dimensionamento adequado das tubulaçoes. |
||
Você está aqui: Cards de AutoCAD Civil 3D |
||
|
||
|
|
||
MySQL ::: Dicas & Truques ::: Chaves, Índices e Restrições de Integridade Referencial |
Como criar chaves estrangeiras no MySQL - Como criar Foreign Keys em tabelas do MySQLQuantidade de visualizações: 90562 vezes |
|
O que é chave estrangeira (foreign key)? O papel da chave estrangeira é manter uma referência a um registro presente em outra tabela. Imagine o seguinte cenário. Temos uma tabela livros e uma tabela autores. Neste cenário, um autor pode escrever vários livros e um livro pode ser escrito somente por um determinado autor. Aqui temos uma relação 1:N, ou seja, um para muitos: um autor pode escrever zero, um ou vários livros. Comece analisando a tabela autores: Field Type Null Key Default Extra id int(10) unsigned NO PRI - auto_increment nome varchar(45) NO - email varchar(45) NO - CREATE TABLE autores( id int(10) unsigned NOT NULL auto_increment, nome varchar(45) NOT NULL, email varchar(45) NOT NULL, PRIMARY KEY(id) )ENGINE=InnoDB; Analise agora a tabela livros: Field Type Null Key Default Extra id int(10) unsigned NO PRI - auto_increment titulo varchar(45) NO - paginas int(10) unsigned NO - id_autor int(10) unsigned NO - CREATE TABLE livros( id INTEGER UNSIGNED NOT NULL DEFAULT NULL AUTO_INCREMENT, titulo VARCHAR(45) NOT NULL, paginas INTEGER UNSIGNED NOT NULL, id_autor INTEGER UNSIGNED NOT NULL, PRIMARY KEY(id) )ENGINE = InnoDB; O campo id é do tipo int, auto-incremento e foi marcado como chave primária. Dessa forma, o campo id identifica unicamente cada livro. O campo id_autor é do tipo int e sua função é guardar o id do autor que escreveu um determinado livro. Ao trazer o valor do campo id da tabela autores para o campo id_autor da tabela livros nós estamos relacionando as duas tabelas. O campo id_autor, neste cenário, é a chave estrangeira, pois seu valor sempre refletirá o valor do campo id da tabela autores (a única exceção é quando queremos deixar, temporariamente, um livro sem autor). Lembre-se, em uma relação 1:N, a chave estrangeira, em geral, ficará no lado N da relação. Integridade Referencial (Restrições de Chave Estrangeira) - Referential Integrity (Foreign Key Constraints) Imagine agora que você inseriu alguns registros na tabela autores e na tabela livros. Todas as vezes que o valor do campo id_autor na tabela livros for igual ao valor do campo id na tabela autores nós estaremos criando um relação autor-livro. É possível, a qualquer momento, listar um livro e saber de imediato o id do seu autor (isso permite fazer um join com a tabela autores para obter os dados do respectivo autor). Mas, o que acontecerá se excluirmos um registro na tabela autores e, mais tarde, descobrirmos que o campo id_autor da tabela livros guardava uma referência para o autor excluído? Teremos a quebra da integridade referencial. Para evitar tais situações, é responsabilidade do programador escrever códigos de verificações para prevenir estas ocorrências. Os bancos de dados, e principalmente o MySQL, possuem mecanismos para reforçar esta proteção: restrições de chave estrangeira. As restrições de chave estrangeira asseguram duas situações possíveis: 1) Não permitir que um autor seja excluído quando qualquer livro possuir uma referência a ele; 2) Se o autor for excluído, todos os livros que o referenciam também o serão. Definindo a chave estrangeira na tabela livros usando o atributo CONSTRAINT FOREIGN KEY REFERENCES Vamos agora reescrever o comando DDL CREATE TABLE para a tabela livros de forma a aplicar as restrições de chaves estrangeiras. Veja a nova versão: CREATE TABLE livros( id INTEGER UNSIGNED NOT NULL DEFAULT NULL AUTO_INCREMENT, titulo VARCHAR(45) NOT NULL, paginas INTEGER UNSIGNED NOT NULL, id_autor INTEGER UNSIGNED NOT NULL, PRIMARY KEY(id), CONSTRAINT livros_autores FOREIGN KEY(id_autor) REFERENCES autores(id) )ENGINE = InnoDB; A estrutura da tabela livros será alterada para aquela mostrada abaixo: Field Type Null Key Default Extra id int(10) unsigned NO PRI - auto_increment titulo varchar(45) NO - paginas int(10) unsigned NO - id_autor int(10) unsigned NO MUL - ErrorNr. 1451: Cannot delete or update a parent row: a foreign key constraint fails (`estudos/livros`, CONSTRAINT `livros_autores` FOREIGN KEY (`id_autor`) REFERENCES `autores` (`id`)) Em mais dicas desta seção você aprenderá a usar as cláusulas ON DELETE e ON UPDATE e as ações RESTRICT, SET NULL, CASCADE e NO ACTION. Todas estas cláusulas e ações são usadas para reforçar a integridade referencial de suas bases de dados. |
Java ::: Coleções (Collections) ::: HashMap |
Java HashMap - Como fornecer uma chave e obter seu valor correspondente em um HashMapQuantidade de visualizações: 9621 vezes |
O uso de um HashMap só se justifica quando podemos guardar os mapeamentos e recuperá-los de forma rápida e fácil. Para isso, a classe HashMap nos fornece o método get(). Este método recebe a chave a ser pesquisada e retorna o valor associado a ela. Veja sua assinatura:public V get(Object key) Veja um exemplo no qual usamos o método get() para retornar o valor associado à chave informada:
package arquivodecodigos;
import java.util.*;
public class Estudos{
public static void main(String[] args){
// vamos criar uma instância de HashMap
HashMap<Integer, String> clientes = new HashMap<Integer, String>();
// vamos adicionar três chaves e seus valores
clientes.put(new Integer(1), "Osmar J. Silva");
clientes.put(new Integer(2), "Salvador Miranda de Andrade");
clientes.put(new Integer(3), "Marcos da Costa Santos");
// vamos obter o valor correspondente à chave 2
String c = clientes.get(2);
// vamos exibir o resultado
if(c != null){
System.out.println("O valor para esta chave é: " + c);
}
else{
System.out.println("O HashMap não contém a chave informada.");
}
System.exit(0);
}
}
Ao executarmos este código Java nós teremos o seguinte resultado: O valor para esta chave é: Salvador Miranda de Andrade |
PHP ::: Dicas & Truques ::: Matemática e Estatística |
Como usar a função min() do PHP para obter o menor entre dois ou mais valoresQuantidade de visualizações: 8017 vezes |
A função min() do PHP é útil quando precisamos obter o menor entre dois ou mais valores. Veja um exemplo de seu uso:<? // vamos usar a função min() para obter o menor // entre três valores inteiros $menor = min(5, 12, 4); // vamos exibir o resultado echo "O menor valor é: " . $menor; ?> Quando executamos este exemplo temos o seguinte resultado: O menor valor é: 4 Veja que é possível também fornecer uma matriz para a função min(). Neste caso a função retornará o elemento com o menor valor na matriz. Veja: <? // vamos usar a função min() para obter o elemento // com menor valor em uma matriz // vamos criar uma matriz com cinco elementos $valores = array(9, 3, 21, 49, 2); // vamos obter o menor elemento $menor = min($valores); // vamos exibir o resultado echo "O menor valor é: " . $menor; ?> Ao executar este exemplo você terá o seguinte resultado: O menor valor é: 2 |
Python ::: wxPython ::: Controles Visuais Básicos do wxPython |
Como obter o texto de um botão wx.Button do wxPython e exibí-lo em uma mensagem wx.MessageDialog usando a função GetLabel()Quantidade de visualizações: 7327 vezes |
|
Como obter o texto de um botão wx.Button do wxPython e exibí-lo em uma mensagem wx.MessageDialog usando a função GetLabel() O texto (rótulo) de um wx.Button do framework wxPython pode ser obtido com uma chamada à função GetLabel(). O exemplo abaixo mostra uma aplicação completa e detalha como clicar em um botão, obter seu texto e exibí-lo em uma caixa de mensagem:
# vamos importar a biblioteca wxPython
import wx
class Janela(wx.Frame):
def __init__(self):
wx.Frame.__init__(self, None, -1,
"Usando wx.Button", size=(350, 200))
# Cria um painel
panel = wx.Panel(self)
# Cria um botão e o adiciona no painel
self.btn = wx.Button(panel, label="Clique Aqui",
pos=(10, 10), size=(100, 25))
# Anexa um evento ao botão
self.Bind(wx.EVT_BUTTON, self.OnBtnClick, self.btn)
# Método que será chamado ao clicar o botão
def OnBtnClick(self, event):
texto_btn = self.btn.GetLabel()
dlg = wx.MessageDialog(None, u"O texto do botão é: "
+ texto_btn, "Usando wx.Button", wx.OK | wx.ICON_INFORMATION)
result = dlg.ShowModal()
dlg.Destroy()
if __name__ == "__main__":
app = wx.App()
janela = Janela()
janela.Show(True)
app.MainLoop()
|
Java ::: Fundamentos da Linguagem ::: Tipos de Dados |
Java para iniciantes - Como usar o tipo de dados byte da linguagem JavaQuantidade de visualizações: 13100 vezes |
O tipo de dados byte pode ser usado quando queremos armazenar valores inteiros na faixa ?128 à 127. Veja um exemplo:
public class Estudos{
static byte valor = 102;
public static void main(String args[]){
System.out.println("O valor da variável é: "
+ valor);
System.exit(0);
}
}
Porém, é preciso estar atento a um detalhe muito importante (testado na versão 6 do SDK). Veja o trecho de código seguinte:
public class Estudos{
public static void main(String args[]){
byte a = 5;
byte b = 6;
byte soma = a + b;
System.out.println("O resultado é: " + soma);
System.exit(0);
}
}
À primeira vista este código está correto, visto que a soma das variáveis a e b não ultrapassam a faixa do tipo byte. Porém, ao tentarmos compilar, temos a seguinte mensagem de erro:
Estudos.java:5: possible loss of precision
found : int
required: byte
byte soma = a + b;
^
1 error
Isso acontece porque o tipo de dados resultante da aplicação do operador de adição (e demais operadores binários) a dois números, é no mínimo int. Podemos, é claro, fazer uma coerção de dados (cast). Veja: byte a = 5; byte b = 6; byte soma = (byte)(a + b); O tipo de dados byte pode ser convertido (sem a necessidade de cast) para os seguintes tipos: byte -> short -> int -> long -> float -> double Um tipo byte não pode ser convertido implicitamente para o tipo char. Isso acontece porque o tipo char não possui sinal. |
Desafios, Exercícios e Algoritmos Resolvidos de Java |
Veja mais Dicas e truques de Java |
Dicas e truques de outras linguagens |
E-Books em PDF |
||||
|
||||
|
||||
Linguagens Mais Populares |
||||
|
1º lugar: Java |



