Arquivos de Categoria: Uncategorized

Using T-SQL in a relational way

(P. 5) Como mencionado, o T-SQL é baseado em SQL, que por sua vez é baseado no modelo relacional. Contudo,há várias maneiras pelas quais o SQL e, portanto, o T-SQL, se desviam do modelo relacional. Mas o T-SQL oferece ferramentas suficientes para que, se você entenda o modelo relacional, e você pode usar a linguagem de forma relacional e, assim, escrever um código mais correto.

Lembre-se de que uma relação tem um título e um corpo. O título é um conjunto de atributos e o corpo é um conjunto de tuplas. Lembre-se de que um conjunto deve ser considerado como um todo.

(P. 6) O que isso se traduz em T-SQL é que você deveria escrever consultas que interagem com as tabelas como um todo. Você deve tentar evitar o uso de construções iterativas como cursores e loops que iteram pelas linhas uma de cada vez. Você também deve tentar evitar pensar em termos iterativos porque esse tipo de pensamento é o que leva a soluções iterativas.Para pessoas com um pouco de programação processual, a maneira natural de interagir com dados (em um arquivo, conjunto de registros ou leitor de dados) é com iterações. Então, usar cursores e outras construções iterativas no T-SQL é, de certo modo, uma extensão para o que eles já conhecem. No entanto, a maneira correta da perspectiva do modelo relacional não é interagir com as linhas uma de cada vez, em vez disso, usar operações relacionais e retornar um resultado relacional. Isso, no T-SQL, se traduz em questões da escrita.

Anúncios

Installing and Configuring Prerequisites for GRID Infrastructure – Part 06

Instalando e configurando pré-requisitos para a Infraestrutura do GRID – Parte 06

Antes de fazer a instalação do Oracle Database, precisamos fazer a instalação e configuração do GRID, a qual faz parte da maioria das instalações do Oracle.

Através do putty, acesso como usuário oracle, e posteriormente se transforme em super usuário (su -)

ScreenHunter_186 Jul. 19 21.28

Precisarão ser criados mais grupos e usuários no Oracle Linux.

groupadd -g 503 oper
groupadd -g 504 asmadmin
groupadd -g 505 asmoper
groupadd -g 506 asmdba

Inclua o usuário oracle nos grupos seguintes

usermod -g oinstall -G dba, asmdba, oper oracle

ScreenHunter_187 Jul. 19 21.43

Verifique se o nome do host está correto. O comando abaixo pode ser digitado para tal verificação:

cat /etc/hosts

Observe que no caso abaixo, está configurado o número ip da máquina seguido de oracle.localhost

ScreenHunter_188 Jul. 19 21.48

Verifique se o arquivo config do selinux está disabled. Digite o comando abaixo para verificar o arquivo

cat /etc/selinux/config

ScreenHunter_189 Jul. 19 21.54.jpg

Verifique se o oracleasm está ativo e montado. Digite o comando abaixo para fazer a verificação:

oracleasm status

ScreenHunter_190 Jul. 19 21.56.jpg

Verifique se o seu arquivo .bash_profile do usuário oracle é apresentado da forma abaixo, pelo comando abaixo. (Caso necessário, ajuste o arquivo para que fique com as configurações abaixo, faça o logout e login novamente)

cat /home/oracle/.bash_profile

ou  vi /home/oracle/.bash_profile.

Salve e se necessário, feche o putty e abra novamente para carregar as variáveis de ambiente.

ORACLE_BASE=/u01/app/oracle; export ORACLE_BASE
ORACLE_HOME=$ORACLE_BASE/product/11.2.0/dbhome_1; export ORACLE_HOME
GRID_HOME=$ORACLE_BASE/product/11.2.0/grid; export GRID_HOME
ORACLE_SID=orcl; export ORACLE_SID
ORACLE_TERM=xterm; export ORACLE_TERM
PATH=/usr/sbin:$PATH; export PATH
PATH=$ORACLE_HOME/bin:$PATH; export PATH LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib; export LD_LIBRARY_PATH
#DISPLAY=localhost:0.0; export DISPLAY

ScreenHunter_194 Jul. 19 23.21.jpg

Confirme se as variáveis de ambiente estão corretas, com o usuário simples oracle (prompt $)

ScreenHunter_195 Jul. 19 23.26.jpg

Baixe o sofware GRID do site da Oracle

ScreenHunter_193 Jul. 19 23.20.jpg

Enquando o software é baixado, será necessário criar os diretórios para instalação e dar as devidas permissões nas pastas.

mkdir ‑p /u01/app/oracle/product/11.2.0/grid
chown -R oracle:dba /u01
chmod -R 775 /u01/

ScreenHunter_196 Jul. 19 23.31.jpg

Verifique que não temos espaço necessário em disco para poder copiar arquivos de instalação do grid e do banco de dados na partição /

ScreenHunter_198 Jul. 20 00.00

Iremos criar um novo disco com o ponto de montagem /stage, contendo 5 GB. Será praticamente o mesmo processo que fizemos para o ponto de montagem /u01. Para isso, vamos precisar baixar (desligar) a máquina virtual.

Vá na configuração da máquina virtual, em armazenamento e adicione mais um disco.

ScreenHunter_199 Jul. 20 00.05

Configure o disco conforme especificação abaixo:

ScreenHunter_200 Jul. 20 00.09.jpg

Verifique que o disco foi criado com sucesso:

ScreenHunter_201 Jul. 20 00.10.jpg

Ligue novamente a máquina virtual, e por ambiente gráfico, será necessário configurar o disco.

Abra um terminal, conecte como super usuário (su -) e liste os drives disponíveis:

[oracle@oracle ~]$ su –
Password:
Last login: Wed Jul 19 23:29:45 BRT 2017 on pts/0
[root@oracle ~]# fdisk -l

Crie a partição para o novo dispositivo /dev/sdd

ScreenHunter_202 Jul. 20 07.13.jpg

Vá no ambiente gráfico Applications / Utilities / Disks, clique no dispositivo /dev/sdd (de 5 GB), clique na engrenagem e em formatar

ScreenHunter_203 Jul. 20 07.15.jpg

Escolha o Sistema de Arquivos Ext4 e clique em [Format]

ScreenHunter_204 Jul. 20 07.16

O sistema pedirá a confirmação. Clique em [Format]

ScreenHunter_205 Jul. 20 07.17

Confirme com a senha oracle e clique em [Authenticate]

ScreenHunter_206 Jul. 20 07.17

Clique na engrenagem novamente e escolha a opção [Edit Mount options]. Deixe a configuração como a tela seguinte. Clique em [OK] e confirme com a senha oracle novamente.

ScreenHunter_207 Jul. 20 07.18

Observe que o disco dev/sdd1 está montado no ponto de montagem stage

ScreenHunter_208 Jul. 20 07.19

No terminal, confira no arquivo /dev/fstab está com a linha do ponto de montagem do /stage para que seja montado automaticamente.

ScreenHunter_209 Jul. 20 07.25.jpg

Crie a seguinte pasta para copiar o arquivo do grid baixado:

mkdir ‑p /stage/11.2.0/clusterware
chown -R oracle:oinstall /stage
chmod -R 775 /stage

ScreenHunter_210 Jul. 20 07.34

Copie o arquivo baixado para a pasta criada (Criei uma pasta compartilhada entre o Windows (host físico) e a máquina virtual, e configurei para que a pasta fosse montada na inicialização; nas configurações da máquina virtual). Desligue a máquina virtual, configure a máquina virtual em Pastas Compartilhadas, confirme todas as telas com [OK] e inicie a máquina novamente.

ScreenHunter_211 Jul. 20 18.39.jpg

Após ter logado com usuário oracle, (e sendo super usuário), o linux montou a pasta automaticamente a pasta em media/fs_comp (vai variar conforme o nome da sua pasta compartilhada)

ScreenHunter_212 Jul. 20 18.43

copie o arquivo linux.x64_11gR2_grid.zip para a pasta clusterware que está dentro de /stage, com o comando:

cp /media/sf_comp/linux.x64_11gR2_grid.zip /stage/11.2.0/clusterware/

ScreenHunter_214 Jul. 20 18.47.jpg

Descompacte o conteúdo do arquivo .zip na própria pasta onde foi copiada o arquivo

cd /stage/11.2.0/clusterware/

unzip linux.x64_11gR2_grid.zip

ScreenHunter_215 Jul. 20 18.53.jpg

É necessário alterar o done e grupo dos arquivos descompactados. vá para a pasta /stage/11.2.0 (com o comando cd /stage/11.2.0)

chown -R oracle:oinstall clusterware

ScreenHunter_218 Jul. 20 19.51

O dispositivo /dev/oracleasm também deve ser alterado. Dentro do diretório /dev, dê o comando:

chown -R oracle:dba oracleasm

ScreenHunter_219 Jul. 20 20.15.jpg

Pré requisitos para instalação e configuração do GRID e do Oracle Database

De acordo com o site de referencia http://blog.ronnyegner-consulting.de/2009/09/14/oracle-11g-release-2-install-guide-%E2%80%93-grid-infrastructure-installation/, temos vários requisitos para fazer a instalação do grid antes de abrir o ambiente OUI.

Alteração/verificação do Kernel.sem

Não focarei detalhes sobre os parametros de kernel, mas é possivel entender um pouco mais sobre esses parametros nos sites http://www.dicas-l.com.br/arquivo/semaforos_kernel_memoria_compartilhada_e_cia.php#.WXEpEIjyu00 e https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/5/html/Tuning_and_Optimizing_Red_Hat_Enterprise_Linux_for_Oracle_9i_and_10g_Databases/sect-Oracle_9i_and_10g_Tuning_Guide-Setting_Semaphores-Setting_Semaphore_Parameters.html

Edite o arquivo /etc/sysctl.conf e complete/altere com a linha seguinte:

kernel.sem=250 32000 100 128

Pacotes de requito

De acordo com a documentação da Oracle, referencia https://docs.oracle.com/cd/E11882_01/install.112/e47689/pre_install.htm#LADBI1091, precisaremos instalar os seguintes pacotes. De o comando yum update para atualizar os pacotes do sistema já instalados:

#cd /etc/yum.repos.d/
#wget http://public-yum.oracle.com/public-yum-ol7.repo
#yum install oracle-rdbms-server-11gR2-preinstall
#yum update

(referencia em https://oracle-base.com/blog/2015/03/26/oracle-linux-7-1-preinstall-packages-available-for-11gr2-and-12cr1/)

ScreenHunter_217 Jul. 20 19.46.jpg

Irá demorar um pouco dependendo do quuanto de tempo voce não atualiza.

ScreenHunter_216 Jul. 20 19.25

 

Com o usuário oracle, configure a variável display.

DISPLAY=localhost:0.0
export DISPLAY
echo $DISPLAY

ScreenHunter_220 Jul. 20 20.26

Com o Xming Server acionado na máquina Windows (host), vá no diretório

cd /stage/11.2.0/clusterware/grid

Execute

./runInstaller

No ambiente gráfico, o installer irá reclamar os seguintes pacotes faltantes:

libaio-0.3.105 glibc-2.3.4-2.4.1 compat-libstdc++-33-3.2.3 elfutilf-devel-0.97 libaio-devel-0.3.105 libgcc-3.4.6 libstdc++-3.4.6 unixODBC-2.2.11 unixODBC-devel-2.2.11 pdksh-5.2.14

ScreenHunter_336 Jul. 26 12.57

Verifiquei em um blog da Oracle, e o ultimo comentário consta que existe libs mais atualis, porém há algumas libs que não são referenciadas pelas atualizações: https://community.oracle.com/thread/2377516. Clique em ignore all e clique em [Next].

 

 

 

 

 

Create a database by using the Database Configuration Assistant (DBCA)

A instância, o banco de dados e o dicionário de dados

Até a versão 11g , um servidor Oracle é uma instância e um banco de dados, sendo separados mas ao mesmo tempo conectados. Uma única instância suporta um único banco de dados.

A instância possui estrutura e processos na memória RAM e na CPU, sendo sua existência temporária (enquanto o servidor físico estiver ligado).

O banco de dados são os arquivos gravados em disco, que uma vez criados, permanecerão até serem excluídos.

A crição do banco de dados é executado pela instância, sendo executado uma única vez e a instância poderá gerenciá-lo abrindo e fechando várias vezes.

 

Instalação do Oracle Database 11g XE no Oracle Linux 5

Após fazer a instalação do Sistema Operacional linux em uma máquina virtual, é necessário fazer algumas configurações e ajustes para se fazer a instalação do Oracle Database 11g XE.

Caso não tenha o pacote RPM do Oracle Database 11g XE para Linux, o arquivo pode ser baixado em:

https://1drv.ms/f/s!Aq7T8CnyCjV7iOpWB5L7ljw6C3umlA

Algumas das instruções:

 

 

A máquina virtual com o Oracle Database 11g Express pode ser baixada em:

https://1drv.ms/f/s!Aq7T8CnyCjV7hZRHu-1sAO44Tk7j8Q

Exercícios de SQL no Oracle utilizando o Schema HR

Feita uma lista de exercícios para resolução com joins, para que a mesma fosse resolvida.

Utilize o Schema HR do Oracle para resolver os problemas abaixo:

1 – Selecione todos os ids, nomes e sobrenomes de empregados, que estajam nas faixas de salários de 0 a 2000 e maiores ou iguais a 5000. De 3 tipos de consultas para resolver esse problema)

2 – Selecione todos os ids e nomes de departamentos, o id do gerente do departamento que estejam no id de locais entre 1500 a 2000;

3 – Selecione todos os nomes de departamentos e nomes dos gerentes de departamentos onde a cidade de localização seja Sao Paulo (faça pela antiga e nova sintaxe. Se possível, resolva também em algebra relacional)

4 – Selecione todos os ids, nomes e sobrenome de empregados que possuem salario maior que 5000 (Dê duas soluções para este problema. Se possível, resolva também em algebra relacional)

5 – Selecione todos ids, nomes e sobrenomes (como um único campo – nome completo) de empregados, a data de admissao (hire date),data de inicio e fim (end_date) dos determinados serviços (jobs). Obs: um empregado pode ter trabalhado em mais de um servico em um período de tempo; (Dê 2 soluções para esse problema. Se possível, resolva também em algebra relacional)

6 – Selecione todos o nome da região, o nome do pais que os nomes de paises iniciem com as letras A,B,J (Dê 2 soluções para esse problema. Se possível, resolva também em algebra relacional)

7 – Selecione todos os id´s e nomes dos gerentes, ids e nomes de departamentos gerenciados por esses gerentes. (De 3 soluções para esse problema)

8 – Selecione todos os ids e nomes de departamentos, a qual não possuem nenhum empregado alocado (dê 2 soluções para esse problema);

9 – Selecione todos os ids e nomes de empregados, o nome do departamento, o nome do pais e o nome da região, onde as regiões devem ser iguais a Europe e Asia (dê 3 soluções para esse problema);

learningdatabase.com.br

Tecnologias em Banco de Dados Relacionais, Modelagem de dados dimencionais, tecnologias SQL Servere e Oracle

Aprendendo Programação

Algorítmos, C, C++,Pascal, Python, R

WikiDBA

by Virendra Yaduvanshi - Microsoft SQL Server Database Architect | Consultant | Blogger | Specialist | DBA | Speaker

Blog - Fabiano Neves Amorim

SELECT * FROM [Coisas Da Minha Cabeça] WHERE dbo.fn_TempoParaPost() < dbo.fn_TempoLivre()

Tércio Costa, Oracle Developer, OCE SQL, ACE Associate

Guia de estudos para certificação ORACLE SQL(1Z0-047, 1Z0-051, 1Z0-061 e 1Z0-071) e PL/SQL(1Z0-144, 1Z0-146 e 1Z0-148)

Strate SQL

Data Adventures with an Architect