SQL para meninas parte 2

tumblr_lxjo73xtkw1r2qi9wo1_500

Quando se ingressa no mundo de banco de dados se você já souber o básico é o primeiro passo para se tornar um DBA Jr. dedicado, muitas vezes o básico é ignorado por aqueles que mal sabem SQL e já querem aprender PL ou SQL avançado como Trigger e Procedures.

DML: Não modifica a estrutura.

Modifica por dentro
Modifica por dentro

Exemplo: na tabela Estante se quisermos colocar uma coluna a mais essa ação não seria no DML e sim no DDL, no caso do DML ele inseri, exclui ou modifica ’objetos’ dentro da estrutura, como mudar um dado dentro da coluna Livro ‘mochileiro da galaxia’ para ‘Guia do mochileiro da galaxia’. SELECT, INSERT, UPDATE, DELETE e MERGE.

DDL: modifica a estrutura.

Modifica por fora.
Modifica por fora.

 

Exemplo: eu quero acrescentar uma coluna chamada ‘ano de compra’ na tabela Estante isso é feito no DDL, com isso vai ser acrescentando uma nova coluna na tabela ou alterar o nome de uma coluna. ALTER, DROP, CREATE, RENAME, TRUNCATE e COMMENT.

DCL: manipulação de privilégios.

 

Quem pode ou não ter acesso a sua estrutura e até onde
Quem pode ou não ter acesso a sua estrutura e até onde

 

 Exemplo: quem pode mexer ou não em suas coisas. GRANT e REVOKE.

Criei essas tabelas no banco de dados Oracle e esse foi o script gerado:

 

CREATE TABLE  "BIJU" 
   (	"CHAVE_BJ" NUMBER NOT NULL ENABLE, 
	"NOME_BIJU" VARCHAR2(60) NOT NULL ENABLE, 
	 CONSTRAINT "BIJU_PK" PRIMARY KEY ("CHAVE_BJ") ENABLE
   )

CREATE TABLE  "TIPO" 
   (	"ID_TIPO" NUMBER, 
	"NOME_TIPO" VARCHAR2(70), 
	 CONSTRAINT "TIPO_PK" PRIMARY KEY ("ID_TIPO") ENABLE
   )

CREATE TABLE  "ROUPA" 
   (	"ID_ROUPA" NUMBER NOT NULL ENABLE, 
	"NOME_ROUPA" VARCHAR2(150), 
	 CONSTRAINT "ROUPA_PK" PRIMARY KEY ("ID_ROUPA") ENABLE
   )

CREATE TABLE  "PRATELEIRA" 
   (	"IDPRATELEIRA" NUMBER NOT NULL ENABLE, 
	"NOME_PRATELEIRA" VARCHAR2(70), 
	 CONSTRAINT "PRATELEIRA_PK" PRIMARY KEY ("IDPRATELEIRA") ENABLE
   )

CREATE TABLE  "PORTA" 
   (	"IDPORTA" NUMBER NOT NULL ENABLE, 
	"NOME_PORTA" VARCHAR2(70), 
	 CONSTRAINT "PORTA_PK" PRIMARY KEY ("IDPORTA") ENABLE
   )

 

CREATE TABLE  "GUARDA_ROUPA" 
   (	"CHAVE_GR" NUMBER NOT NULL ENABLE, 
	"NOME_GR" VARCHAR2(150), 
	"MARCA_GR" VARCHAR2(150), 
	"PORTA" NUMBER, 
	"BIJU" NUMBER, 
	"ROUPA" NUMBER, 
	 CONSTRAINT "GUARDA_ROUPA_PK" PRIMARY KEY ("CHAVE_GR") ENABLE, 
	 CONSTRAINT "GUARDA_ROUPA_FK" FOREIGN KEY ("PORTA")
	  REFERENCES  "PORTA" ("IDPORTA") ENABLE, 
	 CONSTRAINT "GUARDA_ROUPA_FK2" FOREIGN KEY ("BIJU")
	  REFERENCES  "BIJU" ("CHAVE_BJ") ENABLE, 
	 CONSTRAINT "GUARDA_ROUPA_FK3" FOREIGN KEY ("ROUPA")
	  REFERENCES  "ROUPA" ("ID_ROUPA") ENABLE
   )

CREATE TABLE  "ESTANTE" 
   (	"CHAVE_E" NUMBER NOT NULL ENABLE, 
	"NOME" VARCHAR2(60), 
	"TIPO" NUMBER, 
	"PRATILEIRA" NUMBER, 
	 CONSTRAINT "ESTANTE_PK" PRIMARY KEY ("CHAVE_E") ENABLE, 
	 CONSTRAINT "ESTANTE_FK" FOREIGN KEY ("TIPO")
	  REFERENCES  "TIPO" ("ID_TIPO") ENABLE, 
	 CONSTRAINT "ESTANTE_FK2" FOREIGN KEY ("PRATILEIRA")
	  REFERENCES  "PRATELEIRA" ("IDPRATELEIRA") ENABLE
   )


esse script ficou grandinho...
esse script ficou grandinho…

 

DML:

Selecionando:

select * from BIJU;

 Inserindo:

Insert into BIJU values(1,’relogio’);

Insert into BIJU values(2,’colar’);

Insert into BIJU values(3,’brinco’);

Alterando linha:

Update BIJU Set NOME_BIJU=’COLAR DE PRATA’ Where CHAVE_BJ=2;

Deletando uma linha ‘remover linhas de uma tabela’:

Delete From BIJU Where CHAVE_BJ=1;

separando
DDL:

Inserindo uma coluna na tabela:

Alter table BIJU add MARCA_BIJU varchar2(50);

Excluindo uma tabela ‘remove tabelas do banco de dados, todas as linhas, privilégios e indices serão apagados’:

Drop table BIJU;

Renomeando a tabela:

alter table   BIJU rename to

BIJUTESTE;

Truncando uma tabela ‘remove todas as linhas de uma tabela’:

Truncate table biju;

Comentado:

/* comente aqui */

GRANT e REVOKE(DCL) e MERGE (DML)são meio complexos, por isso falarei deles num post a parte.

 

sql-guia-pratico-rogerio-luis-de-c-costa-brasport-isbn-9788574522951-grande-85-246976

Um livro que recomendo para quem esta começando é o SQL – guia prático – Rogério Luís de C. Costa, eu o lia na época da faculdade e gostei muito, ele pode ajudar muito para iniciantes assim como me ajudou.

 

por hoje é só gente....
por hoje é só gente….

 

Anúncios

SAP e o mundo da Moda?

Parece que o mundo das redes sociais e da tecnologia mais uma vez esta tornando nossas vidas mais fáceis, a SAP que não é boba nem nada, esta na onda do Big data, apostando em analises para um mercado promissor e com grande retorno financeiro que é a “MODA”.

desfile-lafort-pbc-inverno-2013-fotos-ricardo-pacak-650-330-01

É! falem rapazes, mas os gráficos não metem, uma boa parte do lucro do pais é por causa das coisas que compramos e consumimos exageradamente. 😀

Hummmm!!!
Hummmm!!!

Clientes como Adidas, Tommy Hilfiger e a luxo Luxottica estão trabalham em parceria com á SAP, na qual tem a intenção de apresentar uma solução para análise de grandes volumes de dados ‘BIG DATA’ em tempo real para o setor da moda.

tumblr_mggkvoOKsv1qksequo1_400

Isso fará com que às marcas vendam de forma mais eficiente.  

adidas-originals-jeremy-scott-2013-fall-winter-lookbook-11        DJW_0128_Brand-Pages_Tommy-Hilfiger     tumblr_lohxnw5rg91qm7zueo1_500_large

Problemas com estoque e as novas tendências, que as vezes tem um pouco de demora na inclusão do mercado, são alguns dos fatores complexo do mundo da moda que terminar por exigir respostas rápidas. O uso da analise de grandes dados facilitaria isso, bem pelo menos não só as empresas sitadas mas a própria SAP estão com essas expectativas.

“Uma solução baseada em Big Data pode dar às empresas do mundo da moda uma visão unificada dos estoques”, Elia Chatah, especialista de soluções para o setor de varejo da SAP Brasil.

XOXO!!!
XOXO!!!

 

 

Jeito diferente de aprender SQL para meninas Parte 01

 

tumblr_lak2uymV7I1qbhz7no1_400

Uma coisa que aprendi nesses tempos é que não tem formula para se estudar, mas sim uma adaptação ao seu mundo, como estou fazendo especialização em banco de dados Oracle, queria ter uma maneira mais pratica de aprender o SQL.

Vamos lá:

Modelagem: pra mim se resumi ao mini mundo e a normalização de dados evitando assim as redundâncias.

Como você vai construir algo se não tem o principal! a arquitetura?

Property of TVS, Inc.

 

Mini mundo: Imagina você em seu apartamento em New York e como uma garota como outra qualquer, tem muitas coisas como roupas, vários sapatos, livros, bijuterias, mangás, dvds e quer deixar isso super organizado. Com seu guarda roupa novo enorme seus pertences tem que ficar bem organizados assim como sua linda estante para seus livros e revistinhas, mas como fazer isso em um sistema e deixar tudo organizado com fácil acesso?

tumblr_m0hjskxtVm1rqvqcno1_500

 

  1. Forma Normal

É começar a “separar” e “excluir” as repetições, vamos pro exemplo:

Temos vários objetos no quarto: sapatos, blusas, livros, brincos, relógio, calças, rímel, batom, blush, lápis, vestidos, mangá, DVDs .

O lugar onde fica os livros e mangás são bem diferentes das roupas, sapatos e outros,também tem o caso das repetições como calça azul, calça preta ou blusa branca, sapatilha azul veludo, antes de mais nada vamos criar duas entidades (Guarda_Roupa e Estante) nelas vamos criar um atributo chamado Nome_roupas para Guarda_Roupa e Nome_Estante para a Estante podendo assim incluir essas variedades de dados, podemos também criar uma categoria chamada maquiagem para (rímel, batom, blush e lápis). Com isso vamos separar tudo para podermos ter tudo em seu devido lugar.

Entidade: guarda-roupa: Nome_Roupa, Maquiagem, Biju.

Entidade: estante: Nome_Estante.

!DICAS:

Entidade: objetos do “mundo real” sobre os quais deseja-se manter informações no banco de dados.(Cliente, Fornecedor, Empregado).

Atributo: propriedades que descrevem entidades.(Nome_Cliente, Salario_Empregado, Cnpj_Fornecedor)

Vale lembrar da chave que vai ser uma para o guarda-roupa e a outro para  estante, isso é visto também na primeira forma normal.

Entidade: guarda-roupa: chave_gr,Nome_Roupa, Maquiagem, Biju.

Entidade: estante: chave_e, Nome_Estante.

!DICAS:

Chave Primaria: é tipo um cpf ou modo de localização do campo da tabela. (id_fornecedor, id_cliente).

Bem como temos que tornar a tabela mais leve vamos criar outras entidade para que só tenhamos que buscar por um informação, as tabelas sofreram outra transformação. Será criada uma tabela chamada Tipo_gr e outra  Tipo_e onde livros, dvds e mangás serão um tipo para Estante se tornando assim uma chave estrangera, o mesmo vai acontecer para Tipo_gr que terá vários tipos de roupa, sapatos e maquiagem dentro dela para ser ligada a guarda_roupa.

Entidade: guarda-roupa: chave_gr, Nome_gr, Tipo_guardaroupa_Id.

Entidade: estante: chave_e, Nome_e, Tipo_estante_Id.

Entidade: tipo_e: id, nome_tipoe.

Entidade: tipo_gr: id, nome_tipogr.

!DICAS:

Chave Estrangeira: serve para “dizer” ao banco que um campo recebe relacionamento de outra tabela.

até agora indo bem
até agora indo bem
  1. Formal Normal:

Depois de separar todos em seu devido lugar e criar a chave primaria vamos ver quem depende dela e se há algum atributo que tenha mais de um valor ou vários valores dentro dele, biju mesmo é um exemplo de vários valores, afinal relógio, colares, pulseiras, anéis e brincos fazem parte do conjunto biju, esse tipo de informação pode ser chamada de atributo composto ou multivalorado. Vamos criar uma entidade chamada “biju” para todos os tipos de joias, com isso a tabela não se repete e nem ficará pesada.

Entidade: guarda-roupa: chave_gr, nome_gr, Biju_chave_bj, id_tipo_gr.

Entidade: Biju: chave_bj, Nome_biju.

Entidade: estante: chave_e, nome_e, id_tipo_e.

Entidade: tipo_e: id, nome_tipoe.

Entidade: tipo_gr: id, nome_tipogr.

!DICAS:

Composto: é quando um atributo pode ter mais de uma informação.( maquiagem é composta por um conjunto de itens como pó, batom, rímel, lápis e isso vale para Biju também)

Multivalorado: é quando em um campo do atributo há de ter mais de uma informação. ( atributo telefone, uma pessoa pode ter mais de 1 numero)

Vamos dar outra separada, criando uma entidade chamada Prateleira para sabermos a localização exata dos objetos , também será criado uma entidade chamada Porta para saber a localização dos sapatos, vestidos, blusas, calças e o atributo ‘marca’  dentro de guarda-roupa para diferenciar as marcas dos produtos dentro do guarda roupa.

Entidade: guarda-roupa: chave_gr, nome_gr, Biju_chave_bj, Porta_id, marca_gr, Tipo_guardaroupa_Id.

Entidade: biju: chave_bj, Nome_biju.

Entidade: estante: chave_e, nome, Tipo_Estante_Id, Prateleira_id.

Entidade: tipo_e: id, nome_tipoe.

Entidade: tipo_gr: id, nome_tipogr.

Entidade: prateleira: idprateleira, Numero_prateleira.

Entidade: porta: idporta, Nome_porta.

clap-clap-clap-eccbc87e4b5ce2fe28308fd9f2a7baf3-2244

  1. Formal Normal:

São atributos não chave que dependem de outros atributos não chave também. Exemplos: blusa, dvd, vestido, sapato são eles são atributos não chave, em nossa tabela não existe esses atributos, mas vamos imaginar se eu criasse um atributo chamado ‘total’ na tabela biju e esse campo ficaria dependendo dos campos relógio, brinco, anel e os outros para mostrar o total, não há necessidade de ter um campo desse, quando for fazer um relatório ou uma busca por quantidade é só dar um select para obter essa informação.

Abaixo como ficará mais ou menos nossa tabela;

modelagem_NewYork_FINAL02

PS.essa é a primeira parte, no segundo post vou falar sobre sql e como pode ser aprendido de forma pratica.

POR HOJE É SÓ GUYS!!!!

tumblr_lqx303Z5Z81qzmowao1_500