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

 

 

Anúncios

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s